lionagi 0.0.315__py3-none-any.whl → 0.1.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. lionagi/core/__init__.py +19 -8
  2. lionagi/core/agent/__init__.py +0 -3
  3. lionagi/core/agent/base_agent.py +26 -30
  4. lionagi/core/branch/__init__.py +0 -4
  5. lionagi/core/branch/{base_branch.py → base.py} +13 -14
  6. lionagi/core/branch/branch.py +22 -20
  7. lionagi/core/branch/executable_branch.py +0 -347
  8. lionagi/core/branch/{branch_flow_mixin.py → flow_mixin.py} +6 -6
  9. lionagi/core/branch/util.py +1 -1
  10. lionagi/core/direct/__init__.py +13 -1
  11. lionagi/core/direct/cot.py +123 -1
  12. lionagi/core/direct/plan.py +164 -0
  13. lionagi/core/direct/predict.py +13 -9
  14. lionagi/core/direct/react.py +12 -8
  15. lionagi/core/direct/score.py +4 -4
  16. lionagi/core/direct/select.py +4 -4
  17. lionagi/core/direct/utils.py +23 -0
  18. lionagi/core/direct/vote.py +2 -2
  19. lionagi/core/execute/base_executor.py +50 -0
  20. lionagi/core/execute/branch_executor.py +233 -0
  21. lionagi/core/execute/instruction_map_executor.py +131 -0
  22. lionagi/core/execute/structure_executor.py +218 -0
  23. lionagi/core/flow/monoflow/ReAct.py +4 -4
  24. lionagi/core/flow/monoflow/chat.py +6 -6
  25. lionagi/core/flow/monoflow/chat_mixin.py +24 -34
  26. lionagi/core/flow/monoflow/followup.py +4 -4
  27. lionagi/core/flow/polyflow/__init__.py +1 -1
  28. lionagi/core/flow/polyflow/chat.py +15 -12
  29. lionagi/core/{prompt/action_template.py → form/action_form.py} +2 -2
  30. lionagi/core/{prompt → form}/field_validator.py +40 -31
  31. lionagi/core/form/form.py +302 -0
  32. lionagi/core/form/mixin.py +214 -0
  33. lionagi/core/{prompt/scored_template.py → form/scored_form.py} +2 -2
  34. lionagi/core/generic/__init__.py +37 -0
  35. lionagi/core/generic/action.py +26 -0
  36. lionagi/core/generic/component.py +457 -0
  37. lionagi/core/generic/condition.py +44 -0
  38. lionagi/core/generic/data_logger.py +305 -0
  39. lionagi/core/generic/edge.py +110 -0
  40. lionagi/core/generic/mail.py +90 -0
  41. lionagi/core/generic/mailbox.py +36 -0
  42. lionagi/core/generic/node.py +285 -0
  43. lionagi/core/generic/relation.py +70 -0
  44. lionagi/core/generic/signal.py +22 -0
  45. lionagi/core/generic/structure.py +362 -0
  46. lionagi/core/generic/transfer.py +20 -0
  47. lionagi/core/generic/work.py +40 -0
  48. lionagi/core/graph/graph.py +126 -0
  49. lionagi/core/graph/tree.py +190 -0
  50. lionagi/core/mail/__init__.py +0 -8
  51. lionagi/core/mail/mail_manager.py +12 -10
  52. lionagi/core/mail/schema.py +9 -2
  53. lionagi/core/messages/__init__.py +0 -3
  54. lionagi/core/messages/schema.py +17 -225
  55. lionagi/core/session/__init__.py +0 -3
  56. lionagi/core/session/session.py +25 -23
  57. lionagi/core/tool/__init__.py +3 -1
  58. lionagi/core/tool/tool.py +28 -0
  59. lionagi/core/tool/tool_manager.py +75 -75
  60. lionagi/integrations/chunker/chunk.py +7 -7
  61. lionagi/integrations/config/oai_configs.py +4 -4
  62. lionagi/integrations/loader/load.py +6 -6
  63. lionagi/integrations/loader/load_util.py +8 -8
  64. lionagi/libs/ln_api.py +3 -3
  65. lionagi/libs/ln_parse.py +43 -6
  66. lionagi/libs/ln_validate.py +288 -0
  67. lionagi/libs/sys_util.py +28 -6
  68. lionagi/tests/libs/test_async.py +0 -0
  69. lionagi/tests/libs/test_field_validators.py +353 -0
  70. lionagi/tests/test_core/test_base_branch.py +0 -1
  71. lionagi/tests/test_core/test_branch.py +3 -0
  72. lionagi/tests/test_core/test_session_base_util.py +1 -0
  73. lionagi/version.py +1 -1
  74. {lionagi-0.0.315.dist-info → lionagi-0.1.0.dist-info}/METADATA +1 -1
  75. lionagi-0.1.0.dist-info/RECORD +136 -0
  76. lionagi/core/prompt/prompt_template.py +0 -312
  77. lionagi/core/schema/__init__.py +0 -22
  78. lionagi/core/schema/action_node.py +0 -29
  79. lionagi/core/schema/base_mixin.py +0 -296
  80. lionagi/core/schema/base_node.py +0 -199
  81. lionagi/core/schema/condition.py +0 -24
  82. lionagi/core/schema/data_logger.py +0 -354
  83. lionagi/core/schema/data_node.py +0 -93
  84. lionagi/core/schema/prompt_template.py +0 -67
  85. lionagi/core/schema/structure.py +0 -912
  86. lionagi/core/tool/manual.py +0 -1
  87. lionagi-0.0.315.dist-info/RECORD +0 -121
  88. /lionagi/core/{branch/base → execute}/__init__.py +0 -0
  89. /lionagi/core/flow/{base/baseflow.py → baseflow.py} +0 -0
  90. /lionagi/core/flow/{base/__init__.py → mono_chat_mixin.py} +0 -0
  91. /lionagi/core/{prompt → form}/__init__.py +0 -0
  92. /lionagi/{tests/test_integrations → core/graph}/__init__.py +0 -0
  93. /lionagi/tests/{test_libs → integrations}/__init__.py +0 -0
  94. /lionagi/tests/{test_libs/test_async.py → libs/__init__.py} +0 -0
  95. /lionagi/tests/{test_libs → libs}/test_api.py +0 -0
  96. /lionagi/tests/{test_libs → libs}/test_convert.py +0 -0
  97. /lionagi/tests/{test_libs → libs}/test_func_call.py +0 -0
  98. /lionagi/tests/{test_libs → libs}/test_nested.py +0 -0
  99. /lionagi/tests/{test_libs → libs}/test_parse.py +0 -0
  100. /lionagi/tests/{test_libs → libs}/test_sys_util.py +0 -0
  101. {lionagi-0.0.315.dist-info → lionagi-0.1.0.dist-info}/LICENSE +0 -0
  102. {lionagi-0.0.315.dist-info → lionagi-0.1.0.dist-info}/WHEEL +0 -0
  103. {lionagi-0.0.315.dist-info → lionagi-0.1.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,353 @@
1
+ import unittest
2
+ from unittest.mock import patch
3
+ from lionagi.libs.ln_validate import (
4
+ check_dict_field,
5
+ check_action_field,
6
+ check_number_field,
7
+ check_bool_field,
8
+ check_str_field,
9
+ check_enum_field,
10
+ _fix_action_field,
11
+ _fix_number_field,
12
+ _fix_bool_field,
13
+ _fix_str_field,
14
+ _fix_enum_field,
15
+ )
16
+
17
+
18
+ class TestValidationFunctions(unittest.TestCase):
19
+ def test_check_dict_field_valid(self):
20
+ x = {"key": "value"}
21
+ keys = ["key"]
22
+ result = check_dict_field(x, keys)
23
+ self.assertEqual(result, x)
24
+
25
+ def test_fix_action_field_invalid_string(self):
26
+ x = '[{"invalid_key": "value"}]'
27
+ try:
28
+ _fix_action_field(x)
29
+ except ValueError as e:
30
+ self.assertEqual(str(e), "Invalid action field: {'invalid_key': 'value'}")
31
+
32
+ def test_fix_action_field_invalid_discard_disabled(self):
33
+ x = '[{"function": "func1", "arguments": {}}, {"invalid_key": "value"}]'
34
+ try:
35
+ _fix_action_field(x, discard_=False)
36
+ except ValueError as e:
37
+ self.assertEqual(str(e), "Invalid action field: {'invalid_key': 'value'}")
38
+
39
+ def test_check_dict_field_invalid_fixable(self):
40
+ x = '{"key": "value"}'
41
+ keys = ["key"]
42
+ result = check_dict_field(x, keys, fix_=True)
43
+ self.assertEqual(result, {"key": "value"})
44
+
45
+ def test_check_dict_field_invalid_not_fixable(self):
46
+ x = '{"invalid_key": "value"}'
47
+ keys = ["key"]
48
+ with self.assertRaises(ValueError) as cm:
49
+ check_dict_field(x, keys, fix_=False)
50
+ self.assertEqual(
51
+ str(cm.exception), "Default value for DICT must be a dict, got str"
52
+ )
53
+
54
+ def test_check_action_field_invalid_not_fixable(self):
55
+ x = '[{"invalid_key": "value"}]'
56
+ try:
57
+ check_action_field(x, fix_=False)
58
+ except ValueError as e:
59
+ self.assertEqual(str(e), "Invalid action field type.")
60
+
61
+ def test_check_action_field_invalid_fix_disabled(self):
62
+ x = '[{"function": "func1", "arguments": {}}, {"invalid_key": "value"}]'
63
+ try:
64
+ check_action_field(x, fix_=False)
65
+ except ValueError as e:
66
+ self.assertEqual(str(e), "Invalid action field type.")
67
+
68
+ def test_check_action_field_valid(self):
69
+ x = [
70
+ {"function": "func1", "arguments": {}},
71
+ {"function": "func2", "arguments": {}},
72
+ ]
73
+ result = check_action_field(x)
74
+ self.assertEqual(result, x)
75
+
76
+ def test_check_action_field_invalid_fixable(self):
77
+ x = '[{"function": "func1", "arguments": {}}, {"function": "func2", "arguments": {}}]'
78
+ result = check_action_field(x, fix_=True)
79
+ self.assertEqual(
80
+ result,
81
+ [
82
+ {"function": "func1", "arguments": {}},
83
+ {"function": "func2", "arguments": {}},
84
+ ],
85
+ )
86
+
87
+ def test_check_action_field_invalid_fix_disabled(self):
88
+ x = '[{"function": "func1", "arguments": {}}, {"invalid_key": "value"}]'
89
+ try:
90
+ check_action_field(x, fix_=False)
91
+ except ValueError as e:
92
+ self.assertEqual(str(e), "Invalid action field type.")
93
+
94
+ def test_check_number_field_valid(self):
95
+ x = 42
96
+ result = check_number_field(x)
97
+ self.assertEqual(result, x)
98
+
99
+ def test_check_number_field_invalid_fixable(self):
100
+ x = "42"
101
+ result = check_number_field(x, fix_=True)
102
+ self.assertEqual(result, 42)
103
+
104
+ def test_check_number_field_invalid_not_fixable(self):
105
+ x = "not_a_number"
106
+ with self.assertRaises(ValueError) as cm:
107
+ check_number_field(x, fix_=True)
108
+ self.assertEqual(
109
+ str(cm.exception), "Failed to convert not_a_number into a numeric value"
110
+ )
111
+
112
+ def test_check_number_field_invalid_fix_disabled(self):
113
+ x = "42"
114
+ with self.assertRaises(ValueError) as cm:
115
+ check_number_field(x, fix_=False)
116
+ self.assertEqual(
117
+ str(cm.exception),
118
+ "Default value for NUMERIC must be an int or float, got str",
119
+ )
120
+
121
+ def test_check_bool_field_valid(self):
122
+ x = True
123
+ result = check_bool_field(x)
124
+ self.assertEqual(result, x)
125
+
126
+ def test_check_bool_field_invalid_fixable(self):
127
+ x = "true"
128
+ result = check_bool_field(x, fix_=True)
129
+ self.assertTrue(result)
130
+
131
+ def test_check_bool_field_invalid_not_fixable(self):
132
+ x = "not_a_boolean"
133
+ with self.assertRaises(ValueError) as cm:
134
+ check_bool_field(x, fix_=True)
135
+ self.assertEqual(
136
+ str(cm.exception), "Failed to convert not_a_boolean into a boolean value"
137
+ )
138
+
139
+ def test_check_bool_field_invalid_fix_disabled(self):
140
+ x = "true"
141
+ with self.assertRaises(ValueError) as cm:
142
+ check_bool_field(x, fix_=False)
143
+ self.assertEqual(
144
+ str(cm.exception), "Default value for BOOLEAN must be a bool, got str"
145
+ )
146
+
147
+ def test_check_str_field_valid(self):
148
+ x = "hello"
149
+ result = check_str_field(x)
150
+ self.assertEqual(result, x)
151
+
152
+ def test_check_str_field_invalid_fixable(self):
153
+ x = 42
154
+ result = check_str_field(x, fix_=True)
155
+ self.assertEqual(result, "42")
156
+
157
+ def test_check_str_field_invalid_not_fixable(self):
158
+ x = object()
159
+ try:
160
+ check_str_field(x, fix_=False)
161
+ except ValueError as e:
162
+ self.assertEqual(
163
+ str(e), "Default value for STRING must be a str, got object"
164
+ )
165
+
166
+ def test_check_str_field_invalid_fix_disabled(self):
167
+ x = 42
168
+ with self.assertRaises(ValueError) as cm:
169
+ check_str_field(x, fix_=False)
170
+ self.assertEqual(
171
+ str(cm.exception), "Default value for STRING must be a str, got int"
172
+ )
173
+
174
+ def test_check_enum_field_valid(self):
175
+ x = "option1"
176
+ choices = ["option1", "option2"]
177
+ result = check_enum_field(x, choices)
178
+ self.assertEqual(result, x)
179
+
180
+ def test_check_enum_field_invalid_fixable(self):
181
+ x = "option3"
182
+ choices = ["option1", "option2"]
183
+ with patch("lionagi.libs.ln_validate._fix_enum_field", return_value="option1"):
184
+ result = check_enum_field(x, choices, fix_=True)
185
+ self.assertEqual(result, "option1")
186
+
187
+ def test_check_enum_field_invalid_not_fixable(self):
188
+ x = "option3"
189
+ choices = ["option1", "option2"]
190
+ with self.assertRaises(ValueError) as cm:
191
+ check_enum_field(x, choices, fix_=False)
192
+ self.assertEqual(
193
+ str(cm.exception),
194
+ "Default value for ENUM must be one of the ['option1', 'option2'], got option3",
195
+ )
196
+
197
+ def test_check_enum_field_invalid_choices(self):
198
+ x = "option1"
199
+ choices = ["option1", 42]
200
+ with self.assertRaises(ValueError) as cm:
201
+ check_enum_field(x, choices)
202
+ self.assertEqual(
203
+ str(cm.exception),
204
+ "Field type ENUM requires all choices to be of the same type, got ['option1', 42]",
205
+ )
206
+
207
+ def test_check_enum_field_invalid_type(self):
208
+ x = 42
209
+ choices = ["option1", "option2"]
210
+ with self.assertRaises(ValueError) as cm:
211
+ check_enum_field(x, choices)
212
+ self.assertEqual(
213
+ str(cm.exception),
214
+ "Default value for ENUM must be an instance of the str, got int",
215
+ )
216
+
217
+ def test_fix_action_field_string(self):
218
+ x = '[{"function": "func1", "arguments": {}}, {"function": "func2", "arguments": {}}]'
219
+ result = _fix_action_field(x)
220
+ self.assertEqual(
221
+ result,
222
+ [
223
+ {"function": "func1", "arguments": {}},
224
+ {"function": "func2", "arguments": {}},
225
+ ],
226
+ )
227
+
228
+ def test_fix_action_field_invalid_string(self):
229
+ x = '[{"invalid_key": "value"}]'
230
+ try:
231
+ _fix_action_field(x)
232
+ except ValueError as e:
233
+ self.assertEqual(str(e), "Invalid action field: {'invalid_key': 'value'}")
234
+
235
+ def test_fix_action_field_invalid_discard_disabled(self):
236
+ x = '[{"function": "func1", "arguments": {}}, {"invalid_key": "value"}]'
237
+ try:
238
+ _fix_action_field(x, discard_=False)
239
+ except ValueError as e:
240
+ self.assertEqual(str(e), "Invalid action field: {'invalid_key': 'value'}")
241
+
242
+ def test_fix_number_field_valid(self):
243
+ x = "42"
244
+ result = _fix_number_field(x)
245
+ self.assertEqual(result, 42)
246
+
247
+ def test_fix_number_field_invalid(self):
248
+ x = "not_a_number"
249
+ with self.assertRaises(ValueError) as cm:
250
+ _fix_number_field(x)
251
+ self.assertEqual(
252
+ str(cm.exception), "Failed to convert not_a_number into a numeric value"
253
+ )
254
+
255
+ def test_fix_bool_field_true(self):
256
+ x = "true"
257
+ result = _fix_bool_field(x)
258
+ self.assertTrue(result)
259
+
260
+ def test_fix_bool_field_false(self):
261
+ x = "false"
262
+ result = _fix_bool_field(x)
263
+ self.assertFalse(result)
264
+
265
+ def test_fix_bool_field_invalid(self):
266
+ x = "not_a_boolean"
267
+ with self.assertRaises(ValueError) as cm:
268
+ _fix_bool_field(x)
269
+ self.assertEqual(
270
+ str(cm.exception), "Failed to convert not_a_boolean into a boolean value"
271
+ )
272
+
273
+ def test_fix_str_field_valid(self):
274
+ x = 42
275
+ result = _fix_str_field(x)
276
+ self.assertEqual(result, "42")
277
+
278
+ def test_fix_str_field_invalid(self):
279
+ x = object()
280
+ try:
281
+ _fix_str_field(x)
282
+ except ValueError as e:
283
+ self.assertEqual(
284
+ str(e),
285
+ "Failed to convert <object object at 0x{:x}> into a string value".format(
286
+ id(x)
287
+ ),
288
+ )
289
+
290
+ def test_fix_enum_field_valid(self):
291
+ x = "option3"
292
+ choices = ["option1", "option2"]
293
+ with patch(
294
+ "lionagi.libs.StringMatch.choose_most_similar", return_value="option1"
295
+ ):
296
+ result = _fix_enum_field(x, choices)
297
+ self.assertEqual(result, "option1")
298
+
299
+ def test_fix_enum_field_invalid(self):
300
+ x = "option3"
301
+ choices = ["option1", "option2"]
302
+ with patch(
303
+ "lionagi.libs.StringMatch.choose_most_similar",
304
+ side_effect=ValueError("No match found"),
305
+ ):
306
+ with self.assertRaises(ValueError) as cm:
307
+ _fix_enum_field(x, choices)
308
+ self.assertEqual(
309
+ str(cm.exception), "Failed to convert option3 into one of the choices"
310
+ )
311
+
312
+ def test_fix_bool_field_false(self):
313
+ x = "false"
314
+ result = _fix_bool_field(x)
315
+ self.assertFalse(result)
316
+
317
+ def test_fix_str_field_invalid(self):
318
+ x = object()
319
+ try:
320
+ _fix_str_field(x)
321
+ except ValueError as e:
322
+ self.assertEqual(
323
+ str(e),
324
+ "Failed to convert <object object at 0x{:x}> into a string value".format(
325
+ id(x)
326
+ ),
327
+ )
328
+
329
+ def test_fix_enum_field_valid(self):
330
+ x = "option3"
331
+ choices = ["option1", "option2"]
332
+ with patch(
333
+ "lionagi.libs.StringMatch.choose_most_similar", return_value="option1"
334
+ ):
335
+ result = _fix_enum_field(x, choices)
336
+ self.assertEqual(result, "option1")
337
+
338
+ def test_fix_enum_field_invalid(self):
339
+ x = "option3"
340
+ choices = ["option1", "option2"]
341
+ with patch(
342
+ "lionagi.libs.StringMatch.choose_most_similar",
343
+ side_effect=ValueError("No match found"),
344
+ ):
345
+ with self.assertRaises(ValueError) as cm:
346
+ _fix_enum_field(x, choices)
347
+ self.assertEqual(
348
+ str(cm.exception), "Failed to convert option3 into one of the choices"
349
+ )
350
+
351
+
352
+ if __name__ == "__main__":
353
+ unittest.main()
@@ -3,7 +3,6 @@
3
3
  # from lionagi.core.messages.schema import System
4
4
  # from lionagi.core.schema import DataLogger
5
5
 
6
-
7
6
  # import unittest
8
7
  # from unittest.mock import patch, MagicMock
9
8
  # import pandas as pd
@@ -11,6 +11,7 @@
11
11
  # from collections import deque
12
12
 
13
13
 
14
+
14
15
  # class TestBranch(unittest.TestCase):
15
16
  # def setUp(self):
16
17
  # # Assuming no need for actual files or external services for initialization
@@ -84,6 +85,7 @@
84
85
  # self.branch.register_tools(self.tool)
85
86
  # self.assertTrue(self.branch.has_tools)
86
87
 
88
+
87
89
  # # @patch("lionagi.core.branch.BaseBranch._from_csv")
88
90
  # # def test_from_csv(self, mock_from_csv):
89
91
  # # """Test creating a Branch instance from a CSV file."""
@@ -118,6 +120,7 @@
118
120
  # # tool_manager=None,
119
121
  # # )
120
122
 
123
+
121
124
  # def test_messages_describe(self):
122
125
  # """Test the messages_describe method for accuracy."""
123
126
  # # Assuming self.branch has been set up with some messages
@@ -1,6 +1,7 @@
1
1
  # from lionagi.core.branch.util import MessageUtil
2
2
  # from lionagi.core.messages.schema import System, Instruction, Response
3
3
 
4
+
4
5
  # import unittest
5
6
  # import pandas as pd
6
7
  # import json
lionagi/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.0.315"
1
+ __version__ = "0.1.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lionagi
3
- Version: 0.0.315
3
+ Version: 0.1.0
4
4
  Summary: Towards automated general intelligence.
5
5
  Author: HaiyangLi
6
6
  Author-email: Haiyang Li <ocean@lionagi.ai>
@@ -0,0 +1,136 @@
1
+ lionagi/__init__.py,sha256=i6Ci7FebU2s4EVVnBFj1Dsi5RvP80JqeSqW-iripRPg,418
2
+ lionagi/version.py,sha256=kUR5RAFc7HCeiqdlX36dZOHkUI5wI6V_43RpEcD8b-0,22
3
+ lionagi/core/__init__.py,sha256=IC9rZ8-9LuOPmJL9k6K6Geqi9jdURDUTsgC_h58O_MY,484
4
+ lionagi/core/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ lionagi/core/agent/base_agent.py,sha256=6z8js5G-_iOFSruML3hUoLVroCKaHxqN5muxsKd7N8g,2899
6
+ lionagi/core/branch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ lionagi/core/branch/base.py,sha256=cbQTIqdP9Z6A9cCyI3siWDjkeaOprgI1Sf0teOkuJKU,22168
8
+ lionagi/core/branch/branch.py,sha256=dbvqBZx3G6OdZrshUObyPXuf6DfolcEPYLn7lH37wBk,17989
9
+ lionagi/core/branch/executable_branch.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
+ lionagi/core/branch/flow_mixin.py,sha256=HUnM0eHKI7DsvjzTfOGjwZ8kz7V-CYSjdNaOtYAfa5c,2581
11
+ lionagi/core/branch/util.py,sha256=WOmZX8vMVMjDkTm3N0YdpUcNTQrv8AZSLX_NYcY5rf4,11812
12
+ lionagi/core/direct/__init__.py,sha256=5cIJ81ipDljFymfbTfXT9bfFSxzkHix6NPL5JJGRGPQ,345
13
+ lionagi/core/direct/cot.py,sha256=Y05dVCxkSyMzxsjWxgaQJyusvZ4N4dFyE11z9Em7R40,3189
14
+ lionagi/core/direct/plan.py,sha256=zexb-DwhlzN5ECcjtHSX14HTjC20bNxP_JstX3mdKHw,4038
15
+ lionagi/core/direct/predict.py,sha256=cntycNF3p_Tss-0bRGuQa-Ak1Qnixg5tHmGQkb0O3ZE,6539
16
+ lionagi/core/direct/react.py,sha256=kc7jviimPhww0aKmlb6vYM_adGah17BHzBbrzuwmVQA,4321
17
+ lionagi/core/direct/score.py,sha256=UyyLRtJbGponyVxbIeCjVWHlpEMiQeNUL01WPTrJ88U,10332
18
+ lionagi/core/direct/select.py,sha256=ocQYdD11u8ElRTARsf5eyxeZQTYhWhlVbkMEuH1ejA0,6131
19
+ lionagi/core/direct/sentiment.py,sha256=rNwBs-I2XICOwsXxFvfM1Tlc_afsVcRCNCXCxfxm_2k,27
20
+ lionagi/core/direct/utils.py,sha256=1bYOGVClMneEN7x1BWmxxTtZiqlnLFuREizhDVcqLYg,3020
21
+ lionagi/core/direct/vote.py,sha256=rchs7H07v7rDmJknJdQKFfCru7FPbTgN-0g2_zTIhs0,2487
22
+ lionagi/core/execute/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ lionagi/core/execute/base_executor.py,sha256=ACGeNbIpPDxWYQ6oZFdI5kd9daqFVsAsWFgZTWM56C0,1656
24
+ lionagi/core/execute/branch_executor.py,sha256=VGKVu8TOfLtVi9JKk7hHE1xTBsU_oELo6gJgZl-7qqM,8298
25
+ lionagi/core/execute/instruction_map_executor.py,sha256=trDE-M21eaE01e92SHLhz_BcqzH1oiXLxKoaCMR7xNs,5403
26
+ lionagi/core/execute/structure_executor.py,sha256=SYQy-DE1Od30dmVsbSOlwzv43W6Y6dXD_phEBy9hf70,7895
27
+ lionagi/core/flow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
+ lionagi/core/flow/baseflow.py,sha256=rbxDYfBCUt0ctja4zN85Y6sAh7BznR3MxteP4xa9izw,396
29
+ lionagi/core/flow/mono_chat_mixin.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ lionagi/core/flow/monoflow/ReAct.py,sha256=UElfSWy14fBmYwolr8YYqLoy2uHc1ZWb8kLs_yNDfxA,9727
31
+ lionagi/core/flow/monoflow/__init__.py,sha256=naNpq-RWnNfVytUgn61xbRYe8Pt0qz8jYy_CRrpUojw,159
32
+ lionagi/core/flow/monoflow/chat.py,sha256=J2TgZT7FEYf_bHjJk6gNeZAN2tNg1CG8WVwoUDSFV6M,3239
33
+ lionagi/core/flow/monoflow/chat_mixin.py,sha256=Fb4hSkhM_BXWbMScE5yuqxeGt1FWUDL9Fr05dvAJiis,8392
34
+ lionagi/core/flow/monoflow/followup.py,sha256=9DfxfN0q2PkG3CdRAuxZHNzXfBmF3ePdYZSFXawGjHk,8948
35
+ lionagi/core/flow/polyflow/__init__.py,sha256=wyl0HGisnJZ-EDsk0ecAfF06An5VoGWjG4JVjwxgu2o,26
36
+ lionagi/core/flow/polyflow/chat.py,sha256=RWDD_1ox1MzV65SWFrfY23Cx-kOenUX5y5vPveyjGQU,10466
37
+ lionagi/core/form/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ lionagi/core/form/action_form.py,sha256=GkOLArXHwjxSVbtXXr_kiPicllOdDzR7gHedvfWPgP4,1034
39
+ lionagi/core/form/field_validator.py,sha256=u_AY-kofojRqyETSZZOrtFP3PKXySXZLcdkRHmZ7Mnc,8411
40
+ lionagi/core/form/form.py,sha256=82wsOiFBtXddXAMY_A-w9RzJEYk-kReh3hbl-Ahm1gw,9926
41
+ lionagi/core/form/mixin.py,sha256=naCJDJ-u4F7RndLcHlBbOo0cecr31SiR-Qe9mFZ4l1U,6921
42
+ lionagi/core/form/scored_form.py,sha256=96EOKXrHB9MVEhvEY4DPEjC57T1_dTqQ4tZjc8xTk-c,392
43
+ lionagi/core/generic/__init__.py,sha256=ynRqaY9kId2Z7g77FLU-OjEdwieTbRhEjp9bcBfq7Zk,772
44
+ lionagi/core/generic/action.py,sha256=a9nToGSkHhOqlBxrN_xD9PSTrhCdXde3TKYL7MKAj8k,712
45
+ lionagi/core/generic/component.py,sha256=J3xp6ahw7TRv-xg2u_hL0cHwIJ4D_pApMYpzY4LYKlc,14013
46
+ lionagi/core/generic/condition.py,sha256=Q087aupnf5-IIFm0Dt2dBQXxqoI3AVCAUb50CtxMc3Y,1174
47
+ lionagi/core/generic/data_logger.py,sha256=1OLTS9CLpXPtxgINEXaZwJB3MSyUmmNFhljhg93BxIQ,11236
48
+ lionagi/core/generic/edge.py,sha256=e2v5a5WlT_u3k4QAgcqut8CqWLkBzTK0qINkSgL1x3c,3614
49
+ lionagi/core/generic/mail.py,sha256=KR8IA2ryYpvK0C-GY25xfMboqjKl4Bks4rumuV42SvE,2532
50
+ lionagi/core/generic/mailbox.py,sha256=wgvAEOLMQXIaYCly8HI7KcF9MdQIl3JKNgwsC-TS4-s,1034
51
+ lionagi/core/generic/node.py,sha256=8aymSTHKLzXD1veO-bKyUsav9Jv69Z6JBayTrqkeUjQ,9880
52
+ lionagi/core/generic/relation.py,sha256=2YL05250DLXvcg4hnCQS8v41RBAgdo4ZxrLkOtdjvSE,2581
53
+ lionagi/core/generic/signal.py,sha256=vTDo2zJeIBlFrsGrQHN5pa59e3bbRc2A8iYd1APC2kg,625
54
+ lionagi/core/generic/structure.py,sha256=SSUhEBHxKEKLvKxRdO2UQpdcA5F1qjqK0GwYSwhB9yo,11972
55
+ lionagi/core/generic/transfer.py,sha256=YxULB_Rh1GVTNqkgp7ovq2wF7MHh3kWU8bJGQUWVrZc,564
56
+ lionagi/core/generic/work.py,sha256=0oaokRHB0CYpxOJKf5n8OKxiF7x5rvssTXl6a2g51rY,825
57
+ lionagi/core/graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
+ lionagi/core/graph/graph.py,sha256=nsRcxPMIicDR8V9JYbf7Lpc8bPjopnJbx7e0hSpxTcs,3739
59
+ lionagi/core/graph/tree.py,sha256=nqOauYI_l4rjzQYrCoVqzV_tW2K6OadHwnKdhlPGC8U,5869
60
+ lionagi/core/mail/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
+ lionagi/core/mail/mail_manager.py,sha256=3tqMxhFHPj8MZYHfto3phYbtsGosKSWm4yz7WWBiZmE,4016
62
+ lionagi/core/mail/schema.py,sha256=_69QOxwv4s-tbgb6Ao6ocEJq5YcTeV_C8JnsOXRpN8Q,1735
63
+ lionagi/core/messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
+ lionagi/core/messages/schema.py,sha256=d-Xe2CzExl8Rf5uwrvwxntuxvCtlEniFPl5KKmV7tV8,10577
65
+ lionagi/core/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
+ lionagi/core/session/session.py,sha256=6QcZEV62iOw3FVa5jGGEBD4qX53p3zLRVnwEs1-S5NU,38110
67
+ lionagi/core/tool/__init__.py,sha256=zU3nSR6BVvwhNMtijwlH0b_09o_QvKB1I_MmLlu_77c,151
68
+ lionagi/core/tool/tool.py,sha256=KoQEH8QF6YPRuF_ymwshh45xrEV86s13TyCSY9kA53E,844
69
+ lionagi/core/tool/tool_manager.py,sha256=v72VJR2a7fysq9zTMzU4Z4PTclasvrCRRPy8_WyCTCM,10667
70
+ lionagi/integrations/__init__.py,sha256=Il5Q9ATdX8yXqVxtP_nYqUhExzxPC_qk_WXQ_4h0exg,16
71
+ lionagi/integrations/bridge/__init__.py,sha256=ee5IeCkDOD2uhbzqxg_xDxaG-Q3BPPZCYltBjzg2gSs,169
72
+ lionagi/integrations/bridge/langchain_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
+ lionagi/integrations/bridge/langchain_/documents.py,sha256=jpKtaQFaBDdiLqkrOjXIm-ddJVHb8JOKO-Wjm0SkoqY,4804
74
+ lionagi/integrations/bridge/langchain_/langchain_bridge.py,sha256=-lnJtyf4iJEwHKQAwBRN6YZ7CTsyFLetl5e8_9UGouY,3163
75
+ lionagi/integrations/bridge/llamaindex_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ lionagi/integrations/bridge/llamaindex_/index.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
+ lionagi/integrations/bridge/llamaindex_/llama_index_bridge.py,sha256=SSnLSIu06xVsghTios01QKGrc2xCq3oC8fVNGO4QkF8,5064
78
+ lionagi/integrations/bridge/llamaindex_/node_parser.py,sha256=d8SPD6EMf9bZ6824jjeZOWmwm7BHBZQ0qGq1JnsKh9k,3458
79
+ lionagi/integrations/bridge/llamaindex_/reader.py,sha256=VxdTk5h3a3_5RQzN15q75XGli52umhz9gLUrKk1Sg90,8235
80
+ lionagi/integrations/bridge/llamaindex_/textnode.py,sha256=OszGitHZ36zbG4DCGWUnSV6EO7wChEH2VA5M50iBojs,2322
81
+ lionagi/integrations/bridge/pydantic_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
+ lionagi/integrations/bridge/pydantic_/pydantic_bridge.py,sha256=TVh7sQX_LKERUvv1nxsA2JICY1S6ptPr3qFqzgHfGCY,87
83
+ lionagi/integrations/chunker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
+ lionagi/integrations/chunker/chunk.py,sha256=bmkJlu16WXC151h0fh35EtmyDMZ5x1oiAdsVRcn_Ias,5080
85
+ lionagi/integrations/config/__init__.py,sha256=zzQGZe3H5vofcNWSjjoqe_gqHpCO8Yl7FefmrUpLqnw,133
86
+ lionagi/integrations/config/mlx_configs.py,sha256=xbostqjnk3aAN-qKyC54YBprHPA38C8YDevXMMEHXWY,44
87
+ lionagi/integrations/config/oai_configs.py,sha256=4cMiqA4FbJDyzBh0GNmZM1eBMO46lb-TjcsvRV-TtXs,2782
88
+ lionagi/integrations/config/ollama_configs.py,sha256=Np73p86bTJtxYwAj3lr5l8V9IMu7rHJPdyzHEqyzI2Q,17
89
+ lionagi/integrations/config/openrouter_configs.py,sha256=Sz4IHrriXoB8RQ0Pj23Q13Ps4AnZ0BWrh5DhL18NLwQ,1379
90
+ lionagi/integrations/loader/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
+ lionagi/integrations/loader/load.py,sha256=CX1F5VeoTany58WX_RD8QMoNJWkbWXoPEkvgFK6Tp6I,4559
92
+ lionagi/integrations/loader/load_util.py,sha256=-MEF3LPomGGyP53WcPHHA9KiKLJekgKRLghmbymWu9o,8338
93
+ lionagi/integrations/provider/__init__.py,sha256=MJhnq2tkBRcMH-3utc0G-Co20MmsxLBbp3fUwHrJGQ8,198
94
+ lionagi/integrations/provider/litellm.py,sha256=l3sTtIPDeM_9soTLj9gpVfFWWDzFfIZ7rbVcuzeql2w,1181
95
+ lionagi/integrations/provider/mistralai.py,sha256=G-StbfrnUcWZvl0eRby6CZYXxmJf6BRMFzDaix-brmU,7
96
+ lionagi/integrations/provider/mlx_service.py,sha256=ilbBupRs3HeOeO2iwW0prVq57krPu9db8aYLgq_cN0A,1325
97
+ lionagi/integrations/provider/oai.py,sha256=ZxfVz-ZdpeYqXQFq_1_Lqlz4sG8zmp48MosGIpV5ggU,4222
98
+ lionagi/integrations/provider/ollama.py,sha256=dOKqzqjpwYYGw9vGKDVzVh9PAem7oFG09cfKEEB__oc,1314
99
+ lionagi/integrations/provider/openrouter.py,sha256=ZEG2lLbp-qb7r95CFAuPz7EqAdsMuJxMJXfgWhaBHsk,1856
100
+ lionagi/integrations/provider/services.py,sha256=zLX_C0p1eI5cfxkxlxIVEsU0k_fknhV1-LoXPJZFE4w,5388
101
+ lionagi/integrations/provider/transformers.py,sha256=E6CTtm7pa3aa0IqYklWvhXz9YWlh3p_lgKaJXYfXeyA,3397
102
+ lionagi/libs/__init__.py,sha256=OF_HuVdyTiTx5hkiMqe8oce1J2u7GOKxiVFqCbZW3_I,768
103
+ lionagi/libs/ln_api.py,sha256=M6VZz2pVySSwknY15kNrgL92u5-RkkbBvQ1msyfYYZ4,34577
104
+ lionagi/libs/ln_async.py,sha256=fOlFmg2nTYHzFKwJNIPQNJRr_hB7HXRKEhsN7j-XPLg,6074
105
+ lionagi/libs/ln_convert.py,sha256=_Qfi2hBC9VFRVtxcaIDY_zmMzqXsYGMiKk4bEgj46Gk,23535
106
+ lionagi/libs/ln_dataframe.py,sha256=d6oJQ1Xk7Mnl8FZj0lBCPf3QdFfPQpPqnnXsiG-ubUI,5539
107
+ lionagi/libs/ln_func_call.py,sha256=sNaOXuYVLYJvnKzGpDosFCYhmb9XeExRKR80rqwITTM,49096
108
+ lionagi/libs/ln_nested.py,sha256=Xu7xiOWLs0n5kwTR8uGXQ380o1-SnCS7SHJZv9chp90,29640
109
+ lionagi/libs/ln_parse.py,sha256=g5jsbI08np6QUgDRiXj0NND7fbPN8asnTx-ZsM_SYxY,25007
110
+ lionagi/libs/ln_validate.py,sha256=qe9dQfsXCrXXVCkAHo789P6wyZrm05BUAcpXLExM1Ao,8404
111
+ lionagi/libs/sys_util.py,sha256=GnnTG2DuZB4_ljFBhEWHw8hf2mfLitMFmaw63CaWC0g,17351
112
+ lionagi/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
+ lionagi/tests/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
+ lionagi/tests/libs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
+ lionagi/tests/libs/test_api.py,sha256=wi8uEsV7vO-stJxvdajtOGBdnO76nGsZ_wjN0qXESEQ,1681
116
+ lionagi/tests/libs/test_async.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
+ lionagi/tests/libs/test_convert.py,sha256=o8xqmrd3RtSQ5Rrrujek8-RWdikhxwMbn4nyUmujoWI,2796
118
+ lionagi/tests/libs/test_field_validators.py,sha256=ZzIvBsNg8AXzYS-3l-sAf_TEFtaIh-v9oMhHEFqoRBU,11901
119
+ lionagi/tests/libs/test_func_call.py,sha256=xvs19YBNxqh3RbWLjQXY19L06b1_uZY611J6_JhNgcM,20782
120
+ lionagi/tests/libs/test_nested.py,sha256=eEcE4BXJEkjoPZsd9-0rUxOJHjmu8W2hgVClUTwXEFY,13106
121
+ lionagi/tests/libs/test_parse.py,sha256=aa74kfOoJwDU7L7-59EcgBGYc5-OtafPIP2oGTI3Zrk,6814
122
+ lionagi/tests/libs/test_sys_util.py,sha256=Y-9jxLGxgbFNp78Z0PJyGUjRROMuRAG3Vo3i5LAH8Hs,7849
123
+ lionagi/tests/test_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
124
+ lionagi/tests/test_core/test_base_branch.py,sha256=QtNbE1eJHkF_3xOO4TFXLa9gmELMLlBaVZ8v3xnoJy4,18628
125
+ lionagi/tests/test_core/test_branch.py,sha256=JFC6nhLO0Eq6EggFIL1wANg_aqj2yrO6pwdfw045KPA,11713
126
+ lionagi/tests/test_core/test_chat_flow.py,sha256=mjG7LV4yora7HG2_rIraxxpMROettQzZs6Eb85vaFS8,2596
127
+ lionagi/tests/test_core/test_mail_manager.py,sha256=yT7Hw-9BEMIlva8FvFu6843i1fQKbu98q8StLK7TTvo,2887
128
+ lionagi/tests/test_core/test_prompts.py,sha256=TusAnaw1HGzDe6z26YZDKmMbDpoHK7NDvptCkf56nq4,1757
129
+ lionagi/tests/test_core/test_session.py,sha256=ErAkQe4ZK2yy6nouc0G6srhj8-1Gw8PAEF3SJ-KY0kc,9335
130
+ lionagi/tests/test_core/test_session_base_util.py,sha256=S40di_G_XLkOWK_451o4NJ_h543bKur9sajPP_vx8q4,10619
131
+ lionagi/tests/test_core/test_tool_manager.py,sha256=WwQ2M900f3a76LQQVX7I-wgREj_rwARBnsIIZGqbeW0,3431
132
+ lionagi-0.1.0.dist-info/LICENSE,sha256=vfczrx-xFNkybZ7Ef-lGUnA1Vorky6wL4kwb1Fd5o3I,1089
133
+ lionagi-0.1.0.dist-info/METADATA,sha256=3uj82Um8qcNT_ac35FIvjHl69ETJYelhrIv2lHpkF3E,7932
134
+ lionagi-0.1.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
135
+ lionagi-0.1.0.dist-info/top_level.txt,sha256=szvch_d2jE1Lu9ZIKsl26Ll6BGfYfbOgt5lm-UpFSo4,8
136
+ lionagi-0.1.0.dist-info/RECORD,,