lionagi 0.17.10__py3-none-any.whl → 0.18.0__py3-none-any.whl

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 (164) hide show
  1. lionagi/__init__.py +1 -2
  2. lionagi/_class_registry.py +1 -2
  3. lionagi/_errors.py +1 -2
  4. lionagi/adapters/async_postgres_adapter.py +2 -10
  5. lionagi/config.py +1 -2
  6. lionagi/fields/action.py +1 -2
  7. lionagi/fields/base.py +3 -0
  8. lionagi/fields/code.py +3 -0
  9. lionagi/fields/file.py +3 -0
  10. lionagi/fields/instruct.py +1 -2
  11. lionagi/fields/reason.py +1 -2
  12. lionagi/fields/research.py +3 -0
  13. lionagi/libs/__init__.py +1 -2
  14. lionagi/libs/file/__init__.py +1 -2
  15. lionagi/libs/file/chunk.py +1 -2
  16. lionagi/libs/file/process.py +1 -2
  17. lionagi/libs/schema/__init__.py +1 -2
  18. lionagi/libs/schema/as_readable.py +1 -2
  19. lionagi/libs/schema/extract_code_block.py +1 -2
  20. lionagi/libs/schema/extract_docstring.py +1 -2
  21. lionagi/libs/schema/function_to_schema.py +1 -2
  22. lionagi/libs/schema/load_pydantic_model_from_schema.py +1 -2
  23. lionagi/libs/schema/minimal_yaml.py +98 -0
  24. lionagi/libs/validate/__init__.py +1 -2
  25. lionagi/libs/validate/common_field_validators.py +1 -2
  26. lionagi/libs/validate/validate_boolean.py +1 -2
  27. lionagi/ln/fuzzy/_string_similarity.py +1 -2
  28. lionagi/ln/types.py +32 -5
  29. lionagi/models/__init__.py +1 -2
  30. lionagi/models/field_model.py +9 -1
  31. lionagi/models/hashable_model.py +4 -2
  32. lionagi/models/model_params.py +1 -2
  33. lionagi/models/operable_model.py +1 -2
  34. lionagi/models/schema_model.py +1 -2
  35. lionagi/operations/ReAct/ReAct.py +475 -239
  36. lionagi/operations/ReAct/__init__.py +1 -2
  37. lionagi/operations/ReAct/utils.py +4 -2
  38. lionagi/operations/__init__.py +1 -2
  39. lionagi/operations/act/__init__.py +2 -0
  40. lionagi/operations/act/act.py +206 -0
  41. lionagi/operations/brainstorm/__init__.py +1 -2
  42. lionagi/operations/brainstorm/brainstorm.py +1 -2
  43. lionagi/operations/brainstorm/prompt.py +1 -2
  44. lionagi/operations/builder.py +1 -2
  45. lionagi/operations/chat/__init__.py +1 -2
  46. lionagi/operations/chat/chat.py +131 -116
  47. lionagi/operations/communicate/communicate.py +102 -44
  48. lionagi/operations/flow.py +5 -6
  49. lionagi/operations/instruct/__init__.py +1 -2
  50. lionagi/operations/instruct/instruct.py +1 -2
  51. lionagi/operations/interpret/__init__.py +1 -2
  52. lionagi/operations/interpret/interpret.py +66 -22
  53. lionagi/operations/operate/__init__.py +1 -2
  54. lionagi/operations/operate/operate.py +213 -108
  55. lionagi/operations/parse/__init__.py +1 -2
  56. lionagi/operations/parse/parse.py +171 -144
  57. lionagi/operations/plan/__init__.py +1 -2
  58. lionagi/operations/plan/plan.py +1 -2
  59. lionagi/operations/plan/prompt.py +1 -2
  60. lionagi/operations/select/__init__.py +1 -2
  61. lionagi/operations/select/select.py +79 -19
  62. lionagi/operations/select/utils.py +2 -3
  63. lionagi/operations/types.py +120 -25
  64. lionagi/operations/utils.py +1 -2
  65. lionagi/protocols/__init__.py +1 -2
  66. lionagi/protocols/_concepts.py +1 -2
  67. lionagi/protocols/action/__init__.py +1 -2
  68. lionagi/protocols/action/function_calling.py +3 -20
  69. lionagi/protocols/action/manager.py +34 -4
  70. lionagi/protocols/action/tool.py +1 -2
  71. lionagi/protocols/contracts.py +1 -2
  72. lionagi/protocols/forms/__init__.py +1 -2
  73. lionagi/protocols/forms/base.py +1 -2
  74. lionagi/protocols/forms/flow.py +1 -2
  75. lionagi/protocols/forms/form.py +1 -2
  76. lionagi/protocols/forms/report.py +1 -2
  77. lionagi/protocols/generic/__init__.py +1 -2
  78. lionagi/protocols/generic/element.py +17 -65
  79. lionagi/protocols/generic/event.py +1 -2
  80. lionagi/protocols/generic/log.py +17 -14
  81. lionagi/protocols/generic/pile.py +3 -4
  82. lionagi/protocols/generic/processor.py +1 -2
  83. lionagi/protocols/generic/progression.py +1 -2
  84. lionagi/protocols/graph/__init__.py +1 -2
  85. lionagi/protocols/graph/edge.py +1 -2
  86. lionagi/protocols/graph/graph.py +1 -2
  87. lionagi/protocols/graph/node.py +1 -2
  88. lionagi/protocols/ids.py +1 -2
  89. lionagi/protocols/mail/__init__.py +1 -2
  90. lionagi/protocols/mail/exchange.py +1 -2
  91. lionagi/protocols/mail/mail.py +1 -2
  92. lionagi/protocols/mail/mailbox.py +1 -2
  93. lionagi/protocols/mail/manager.py +1 -2
  94. lionagi/protocols/mail/package.py +1 -2
  95. lionagi/protocols/messages/__init__.py +28 -2
  96. lionagi/protocols/messages/action_request.py +87 -186
  97. lionagi/protocols/messages/action_response.py +74 -133
  98. lionagi/protocols/messages/assistant_response.py +131 -161
  99. lionagi/protocols/messages/base.py +27 -20
  100. lionagi/protocols/messages/instruction.py +281 -626
  101. lionagi/protocols/messages/manager.py +113 -64
  102. lionagi/protocols/messages/message.py +88 -199
  103. lionagi/protocols/messages/system.py +53 -125
  104. lionagi/protocols/operatives/__init__.py +1 -2
  105. lionagi/protocols/operatives/operative.py +1 -2
  106. lionagi/protocols/operatives/step.py +1 -2
  107. lionagi/protocols/types.py +1 -4
  108. lionagi/service/connections/__init__.py +1 -2
  109. lionagi/service/connections/api_calling.py +1 -2
  110. lionagi/service/connections/endpoint.py +1 -10
  111. lionagi/service/connections/endpoint_config.py +1 -2
  112. lionagi/service/connections/header_factory.py +1 -2
  113. lionagi/service/connections/match_endpoint.py +1 -2
  114. lionagi/service/connections/mcp/__init__.py +1 -2
  115. lionagi/service/connections/mcp/wrapper.py +1 -2
  116. lionagi/service/connections/providers/__init__.py +1 -2
  117. lionagi/service/connections/providers/anthropic_.py +1 -2
  118. lionagi/service/connections/providers/claude_code_cli.py +1 -2
  119. lionagi/service/connections/providers/exa_.py +1 -2
  120. lionagi/service/connections/providers/nvidia_nim_.py +2 -27
  121. lionagi/service/connections/providers/oai_.py +30 -96
  122. lionagi/service/connections/providers/ollama_.py +4 -4
  123. lionagi/service/connections/providers/perplexity_.py +1 -2
  124. lionagi/service/hooks/__init__.py +1 -1
  125. lionagi/service/hooks/_types.py +1 -1
  126. lionagi/service/hooks/_utils.py +1 -1
  127. lionagi/service/hooks/hook_event.py +1 -1
  128. lionagi/service/hooks/hook_registry.py +1 -1
  129. lionagi/service/hooks/hooked_event.py +3 -4
  130. lionagi/service/imodel.py +1 -2
  131. lionagi/service/manager.py +1 -2
  132. lionagi/service/rate_limited_processor.py +1 -2
  133. lionagi/service/resilience.py +1 -2
  134. lionagi/service/third_party/anthropic_models.py +1 -2
  135. lionagi/service/third_party/claude_code.py +4 -4
  136. lionagi/service/third_party/openai_models.py +433 -0
  137. lionagi/service/token_calculator.py +1 -2
  138. lionagi/session/__init__.py +1 -2
  139. lionagi/session/branch.py +171 -180
  140. lionagi/session/session.py +4 -11
  141. lionagi/tools/__init__.py +1 -2
  142. lionagi/tools/base.py +1 -2
  143. lionagi/tools/file/__init__.py +1 -2
  144. lionagi/tools/file/reader.py +3 -4
  145. lionagi/tools/types.py +1 -2
  146. lionagi/utils.py +1 -2
  147. lionagi/version.py +1 -1
  148. {lionagi-0.17.10.dist-info → lionagi-0.18.0.dist-info}/METADATA +1 -2
  149. lionagi-0.18.0.dist-info/RECORD +191 -0
  150. lionagi/operations/_act/__init__.py +0 -3
  151. lionagi/operations/_act/act.py +0 -87
  152. lionagi/protocols/messages/templates/README.md +0 -28
  153. lionagi/protocols/messages/templates/action_request.jinja2 +0 -5
  154. lionagi/protocols/messages/templates/action_response.jinja2 +0 -9
  155. lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -6
  156. lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -61
  157. lionagi/protocols/messages/templates/system_message.jinja2 +0 -11
  158. lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -7
  159. lionagi/service/connections/providers/types.py +0 -28
  160. lionagi/service/third_party/openai_model_names.py +0 -198
  161. lionagi/service/types.py +0 -59
  162. lionagi-0.17.10.dist-info/RECORD +0 -199
  163. {lionagi-0.17.10.dist-info → lionagi-0.18.0.dist-info}/WHEEL +0 -0
  164. {lionagi-0.17.10.dist-info → lionagi-0.18.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,191 @@
1
+ lionagi/__init__.py,sha256=JJlMMYTLN1B9OradguqKL-HdWec5X0jqc2laoqhSdbQ,2470
2
+ lionagi/_class_registry.py,sha256=vp3YkOelyv9azuQFfhGN_9N_n5fAKAY2MtpSLeNpjW0,3108
3
+ lionagi/_errors.py,sha256=QRFdr2ycJZiUS6PZk6JqFwTf36-daaKlGyiGInrxFtA,3744
4
+ lionagi/_types.py,sha256=nGtsaSee7FaIZvym3PH8NPaN5PN8QscTgcZfpMNaMEo,1296
5
+ lionagi/config.py,sha256=meBzsT7xYDh1FwxGz_Q-XfOw3XkxPtlSJ1vqx9xk5YE,4779
6
+ lionagi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ lionagi/utils.py,sha256=j4wRrPiuHprx7l7j3z8U9NlPWMzrM8lHv5q3K_DJLPU,7080
8
+ lionagi/version.py,sha256=0EHw4xygmgkGSyfwNfEoMlQyN0uHxjHtlSFF79s6120,23
9
+ lionagi/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
+ lionagi/adapters/_utils.py,sha256=sniMG1LDDkwJNzUF2K32jv7rA6Y1QcohgyNclYsptzI,453
11
+ lionagi/adapters/async_postgres_adapter.py,sha256=-7Ah0A8JQvEEYBe2zMkze-65gYiUbpcJGxhYnzrv9ok,3285
12
+ lionagi/fields/__init__.py,sha256=yrn9NDAM6_v73kK7aJeb-Pvqigeu8WASaV-My-6CDsc,939
13
+ lionagi/fields/action.py,sha256=Zt8G59MgszgaxWqpiAie2-qnYnWmiLDpkntSgIrIcmY,5829
14
+ lionagi/fields/base.py,sha256=IoeVMGKFpPqdUDnJHT97FkFsb9EaD6_DPn3dAS6onio,3923
15
+ lionagi/fields/code.py,sha256=mcQcDai7kLeJxcq_Emr8WYAy4jmn9RSPIriZuB0WraU,7822
16
+ lionagi/fields/file.py,sha256=6piGyjKQm0bIZrnWjge3-DrxaGti6Ii4BCbohwQ3neo,7406
17
+ lionagi/fields/instruct.py,sha256=2rgDaEqnZkh6MHyC8mc0YdIT1EHNIxrxD77HdW7EoYE,4330
18
+ lionagi/fields/reason.py,sha256=Ay2b0s-vQeBaWpQxGcKrw96Q5xGoeRa0nDFh7HcXOVc,1486
19
+ lionagi/fields/research.py,sha256=lNf3XW0MiqJ4EUN1AL4it9s-N2Zm9y7aSah7W4oWoy8,1530
20
+ lionagi/libs/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
21
+ lionagi/libs/file/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
22
+ lionagi/libs/file/chunk.py,sha256=_wHdZY9OCDILWWwWOvvS22T9CYGV9bW1zRUi96-UqDg,8970
23
+ lionagi/libs/file/process.py,sha256=A0dF2HZEZHRBNPKboKTlQBh03Rn0tHC_dRaQYMphOhE,6074
24
+ lionagi/libs/schema/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
25
+ lionagi/libs/schema/as_readable.py,sha256=LeiZ4bXCZfmkfJvdduets2s50XS4hgUvn3Ay2xYdVr4,12023
26
+ lionagi/libs/schema/breakdown_pydantic_annotation.py,sha256=x-mfXroICPHXtNcLtAoC_SyFwao42dEaEAUZA9l3yWQ,1296
27
+ lionagi/libs/schema/extract_code_block.py,sha256=ZaDucwumx2rBE3AwWb4EDMeYO7Mb2IJFLlYvOan6-fM,2390
28
+ lionagi/libs/schema/extract_docstring.py,sha256=T_wiQfprlJniKNCeKuCxf_Oj7_6Pj_8HJ02ZjB3LelI,5710
29
+ lionagi/libs/schema/function_to_schema.py,sha256=uRMkpjXYgmL8kxdyVfOSTB-i0dRAbztSZPHI1LilRH8,5600
30
+ lionagi/libs/schema/load_pydantic_model_from_schema.py,sha256=IWPKhF_drI3VKABon45ufkiIb5hRYTS0sGWxhQLObpI,10112
31
+ lionagi/libs/schema/minimal_yaml.py,sha256=fj3LFn35o_KpFostcCYpJ6pQMrb1DICqIgxpnWriQRg,3085
32
+ lionagi/libs/validate/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
33
+ lionagi/libs/validate/common_field_validators.py,sha256=9PUabJZVFGeXShOOZ5jliRaXLefBovACllynAQCU0Ow,4774
34
+ lionagi/libs/validate/to_num.py,sha256=ZRHDjpTCykPfDIZZa4rZKNaR_8ZHbPDFlw9rc02DrII,11610
35
+ lionagi/libs/validate/validate_boolean.py,sha256=WcszKSMksFBCels2OMd0qElqDauyq53-h7cuOM_nIKU,3610
36
+ lionagi/ln/__init__.py,sha256=dQvfTU1MHUrG4C4KoqEs7Xg801seML-GNjihbdUtp3E,1575
37
+ lionagi/ln/_async_call.py,sha256=hjei0sW-G92xDwQo_OI4qKVp1iP8N2eccJT1fAftV9w,9607
38
+ lionagi/ln/_hash.py,sha256=dIrQgOAdrWkVQcaCJXN-XIaA1sIZSYtAU302fywrtJU,4756
39
+ lionagi/ln/_json_dump.py,sha256=zOeoOE3JbaGAzL-lfAdMqdgaXWYXFliqcgXsZ_pxonI,10347
40
+ lionagi/ln/_list_call.py,sha256=zvISmCeNAH7yjBcusQI1s17n556tILgePhRMdAM2plA,2831
41
+ lionagi/ln/_to_list.py,sha256=V9hC3dpyMhRJwuuyOCU_wJygzEB6sJVZ0fmIRtM6uTg,6993
42
+ lionagi/ln/_utils.py,sha256=5Z_AsDxdtH5wNB-P4IiihhH0dYUcZMT-hTxFQBQPwL0,4303
43
+ lionagi/ln/types.py,sha256=vUprqqW1nfHDNrOGk417NHEeEXpTpJqP9eqlMuEOaBI,11118
44
+ lionagi/ln/concurrency/__init__.py,sha256=xt_GLZ1Zb-nC-RnrNt8jOBWb_uf1md__B1R5cplMShg,1190
45
+ lionagi/ln/concurrency/_compat.py,sha256=itxdRzl95PLEBQvNY0zTriF39kymaNRpKncT8QsOomA,2065
46
+ lionagi/ln/concurrency/cancel.py,sha256=8JlWy_EVto4Fls1yQLBteCbpn4zP6ydnqIa_EL5kxZc,3313
47
+ lionagi/ln/concurrency/errors.py,sha256=Tg76ods-CG_9rz7TksTiRGqpTzWHi-Wm9JPotGB9iEM,869
48
+ lionagi/ln/concurrency/patterns.py,sha256=08eebVxbBxkcMFgJqZB-cXS7lRZduH1Y-zorb8fTTZs,9447
49
+ lionagi/ln/concurrency/primitives.py,sha256=-mXU-mUThbr9YUH2viw8mY5iOuKn5E5CoiTlG41NO3k,9543
50
+ lionagi/ln/concurrency/resource_tracker.py,sha256=ffLr0FkHyaHsUa4UDyWwse-8wGLaLMnAyfyeTDyzrDA,1512
51
+ lionagi/ln/concurrency/task.py,sha256=VS5keFI3Ct0fqCKbFl4kEWT5I2CgjIYizPU-S2YjGKo,2675
52
+ lionagi/ln/concurrency/utils.py,sha256=MUWupnFtWxR15hWnligLZrS4Z1SAQ7j3cuCG08cK3GQ,431
53
+ lionagi/ln/fuzzy/__init__.py,sha256=Py7hPV7uk5rPRGvQ4yPjMzXS32aQ7QVkO-mX69FfsMM,544
54
+ lionagi/ln/fuzzy/_extract_json.py,sha256=rYHaK36yzRpie8qO-T7mZKOue2yqCLx3ixiuKhsaKvg,2224
55
+ lionagi/ln/fuzzy/_fuzzy_json.py,sha256=S0lCkNvprn7XZHoYdRfzXueexSbjxTeLPkpyJ9IAO3A,3860
56
+ lionagi/ln/fuzzy/_fuzzy_match.py,sha256=-rmYVjPtiAYaUAacQfhSwahVqQP03FBpfZrGFH7Zq98,5832
57
+ lionagi/ln/fuzzy/_fuzzy_validate.py,sha256=XuafNXflTerQrQYV0S6MrQHR3_6DuYBv6BAYTLSxgfI,5161
58
+ lionagi/ln/fuzzy/_string_similarity.py,sha256=01u73Bp4YPN-s7YMzQjbYM5d6mjKGSjJpar14Wab_5U,8792
59
+ lionagi/ln/fuzzy/_to_dict.py,sha256=Crz4sDIIcTZS3idxynWK7U4EdHvZooPDJIsOH3t6xgQ,12068
60
+ lionagi/models/__init__.py,sha256=Nq0RqoT7DXrpS1_lVgfrlZXl2_E2_E_HHANcbPlDfh8,418
61
+ lionagi/models/field_model.py,sha256=KDz1fVznJZgKSKIj5Lqb9d4rt8vtxmvZiiK-Og5HAh0,29618
62
+ lionagi/models/hashable_model.py,sha256=ny-eOj6kdPr2TLzKXt3Kyrg0kOylJd8AxWRK3VM4KQE,3300
63
+ lionagi/models/model_params.py,sha256=ZFknRIm1Qj-gBTNG1_jz7mjmoogXd2NpFObYPK42OK4,12110
64
+ lionagi/models/operable_model.py,sha256=t6EKeJzG4wqo4tHroPe873R_hMLpcWq4gUiwCC_8pcM,20175
65
+ lionagi/models/schema_model.py,sha256=atgySn8e3zcQdFDERMrfSS1ZKzRZjQCAlNNlnp22vIg,663
66
+ lionagi/operations/__init__.py,sha256=A9GvZqRuzxV98wrwo0-Y2bOTpz0TTPePHDTOj0cYR9Y,440
67
+ lionagi/operations/_visualize_graph.py,sha256=F0KadgRthP-6-R-FPgvlwiiaiWH3ueO-rjSd1bzRUbE,8594
68
+ lionagi/operations/builder.py,sha256=6fwihDDRiabjliw5LRwChMY7It9oQkYXwOU1K1ag5qc,14718
69
+ lionagi/operations/flow.py,sha256=wCcChUWkxB8y2nMUS9BXvNVboa_q1t8WnfytHLfduks,25153
70
+ lionagi/operations/manager.py,sha256=YZr3VjPAZVVFd_bIjF1aoQqzzKZHNA1kcqefNi5QFFM,683
71
+ lionagi/operations/node.py,sha256=zntelS3kO6q4H6vpS2lpw3iNUTLR3a6I3dp07fdSGJs,3465
72
+ lionagi/operations/types.py,sha256=b0TR6xsTxw3eJKEbt_1UfpJBcoaT_uRLezQ7h5G2ux0,3947
73
+ lionagi/operations/utils.py,sha256=_SlmfXRXiPoK5GHJDEK9zxzJT6RAHhU1VTqxhsxMFG4,1369
74
+ lionagi/operations/ReAct/ReAct.py,sha256=d153LHTbZnti8onydK7c_6Yx6aQEBJRHe_zEYLsGHZY,20686
75
+ lionagi/operations/ReAct/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
76
+ lionagi/operations/ReAct/utils.py,sha256=YzKZaqD_Yb016grdx7hqSR2irM-idY9-FgCjgp9zffg,4300
77
+ lionagi/operations/act/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
78
+ lionagi/operations/act/act.py,sha256=xMe0iYS_ziuPHzyEOXvKeBlQ4uSMJgsh656HLX5c1N0,6471
79
+ lionagi/operations/brainstorm/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
80
+ lionagi/operations/brainstorm/brainstorm.py,sha256=daLcfhJxV8vZTZ83XENLCFr0k3rnki3MXqMjnCoybUI,18793
81
+ lionagi/operations/brainstorm/prompt.py,sha256=Ma-9cAGS5UdDtidK28A4WldS2712-NVGxtXvhSuBet4,606
82
+ lionagi/operations/chat/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
83
+ lionagi/operations/chat/chat.py,sha256=j21Zxdc_pkuFskT6HH2rXgh6fkvbwqp4C77L7xfWs9Y,6667
84
+ lionagi/operations/communicate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
+ lionagi/operations/communicate/communicate.py,sha256=zQ-15MwJmw6sic0HdOBl8EJvVUBOThj5bu55Stg9YdA,5569
86
+ lionagi/operations/instruct/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
87
+ lionagi/operations/instruct/instruct.py,sha256=aaWzn3bnN4HCfe2uF0-u0VbSPsTJye83EsAUhmNsVRI,790
88
+ lionagi/operations/interpret/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
89
+ lionagi/operations/interpret/interpret.py,sha256=uVK9Yk4-n92DZfEQrNQ-IU7PJd_IfVJWJENbmVCf_Ns,2497
90
+ lionagi/operations/operate/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
91
+ lionagi/operations/operate/operate.py,sha256=iH0sg1a4HXKElcKrcxbl50-LHR1Dw_Ndm9GEeQnJAgY,10433
92
+ lionagi/operations/parse/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
93
+ lionagi/operations/parse/parse.py,sha256=LwQoKNbkADSnhkrwMZeOPlTFAjsKC1QmnorbtKsdNX8,6699
94
+ lionagi/operations/plan/__init__.py,sha256=_I1NOEn9w7ymriCXW-6gN3dDwJPM35H2nNHy2IJj4FU,152
95
+ lionagi/operations/plan/plan.py,sha256=04mr8tu3BQmCczf324pm-FlmP_NulZ1sS7JTFrdT5jI,15311
96
+ lionagi/operations/plan/prompt.py,sha256=WhnND5JjafKgKgcaHBPR5hxwdtwSHfWulVRyomL1rVU,989
97
+ lionagi/operations/select/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
98
+ lionagi/operations/select/select.py,sha256=kj_nOBpZVey98k3ZAJKWLgedBXhU4Zjj2RjQZ3A_E4A,4449
99
+ lionagi/operations/select/utils.py,sha256=E7fQ0esYcBKVadCmPla3wXTtI1JaU2dCKU6nxP63a0o,3684
100
+ lionagi/protocols/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
101
+ lionagi/protocols/_concepts.py,sha256=eheWQxlHTo36uGpkSpINLO-OmTdjpJEFrVX1hJ7N590,1551
102
+ lionagi/protocols/contracts.py,sha256=thdhmP600E0FO7nBZKM2LoQaSuxQkg7YDi3QYUJRxaI,1394
103
+ lionagi/protocols/ids.py,sha256=zoErFMeyBsRdq7ld89e7YviLyDF1qF4DpzwVQGg1IG8,2468
104
+ lionagi/protocols/types.py,sha256=h06gvQuBq7DGxiDJq6E98MU9525GLqp94_nlOBcGgTw,2391
105
+ lionagi/protocols/action/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
106
+ lionagi/protocols/action/function_calling.py,sha256=Qu5wCBGZk-c0D-rKMF8nYI3mzJGphosLWi7NCySSErY,4534
107
+ lionagi/protocols/action/manager.py,sha256=joz83NXCqA2TjAOiPmnwuunZ71_vi2tHze1tGSJKhjU,20041
108
+ lionagi/protocols/action/tool.py,sha256=A4WNMUkR05ivE_2bruSfgVKSgpP9iKSgIpLBp3C1Q6Q,5846
109
+ lionagi/protocols/forms/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
110
+ lionagi/protocols/forms/base.py,sha256=ob1hwe3xgt7egFtnEUyf5o6pwNbtCWcU9VZ1QWmkvdI,2834
111
+ lionagi/protocols/forms/flow.py,sha256=O9mWreqpbAIhApDc7X_j0ep_sM5xa27T-1jOk6nhMG0,2698
112
+ lionagi/protocols/forms/form.py,sha256=-KH3ofRM14-aUAoIssNvJt-J3yT1tnPLkI5OnRQ9MSc,3058
113
+ lionagi/protocols/forms/report.py,sha256=zc-2bnVZJRzZnj6QOy1ba4dsfZkqzC0yOqtR_y-iHwc,1605
114
+ lionagi/protocols/generic/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
115
+ lionagi/protocols/generic/element.py,sha256=CKHzIfKRxg1kh-FyvVB1l06AzU79WTfqSvISzF2XKaA,14628
116
+ lionagi/protocols/generic/event.py,sha256=oTDHFZeLTlX_olNN-6IFAVUU0bAlxn7nBOi5mu5kMnY,6546
117
+ lionagi/protocols/generic/log.py,sha256=flAk8NrYQN6yfY9w0D8y2Q-MIpESUK-1XaQCLnYtJ_I,8393
118
+ lionagi/protocols/generic/pile.py,sha256=RONqbLygSVeQhfr_9HNMR7btvME1nsmrCPWDdNoi2sY,37125
119
+ lionagi/protocols/generic/processor.py,sha256=e4s9pf0yjx-VIGN0uYnJ48TKDVpc_O_98_L-0hwawEk,11701
120
+ lionagi/protocols/generic/progression.py,sha256=LKUkyMI2ONH78YGAnCu6AO0-iDeXqHvJpe7XKuKXRjo,15186
121
+ lionagi/protocols/graph/__init__.py,sha256=oHHzwu1ystmRqn6MMaZ0emiscmw09v7doL_-QaJN2Z4,249
122
+ lionagi/protocols/graph/edge.py,sha256=d9eWoy242PAY1gnOYxxKE8A4MHjibRg69Enb4InnBcQ,5237
123
+ lionagi/protocols/graph/graph.py,sha256=_zGQ6ypCYVyDuTBTMAR2dXtI8niOwX_vbgXEQM4YPvo,11155
124
+ lionagi/protocols/graph/node.py,sha256=e9LDNDGJoqp0l6WwVLrv_87ll00_5FxqBpj3hg6NPLg,5301
125
+ lionagi/protocols/mail/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
126
+ lionagi/protocols/mail/exchange.py,sha256=7KZIDmyAnwYzs6ksg2p5be9jGcpRV7SjlOWpyQrXNmI,7037
127
+ lionagi/protocols/mail/mail.py,sha256=RmGd8dJD1om8qxCDlb4UlxDrcWXItKL9ZhFgzWUWIfk,1352
128
+ lionagi/protocols/mail/mailbox.py,sha256=F6-9do52IKfQKewtwOTxdlPCDYmBT4tDGKlMvFhc-BI,2729
129
+ lionagi/protocols/mail/manager.py,sha256=QqH5IgnAGwLOpUS8sJmDYLNYKVqbUdz-3sZgVCbl7gw,6960
130
+ lionagi/protocols/mail/package.py,sha256=RebLIMmkx1V7q1940NsmSXKsNKNPXigwZnI6Aewp3HM,2655
131
+ lionagi/protocols/messages/__init__.py,sha256=VtHtfD41BezXk2VKgRXlVGBj-Gxc3c5rvomb7g2Qsu0,898
132
+ lionagi/protocols/messages/action_request.py,sha256=VDmdxxKYJhSOE0oui8mNIPpVb3mmA_46Db_Xo8twV_I,3588
133
+ lionagi/protocols/messages/action_response.py,sha256=AioBkMKzBworwk7LtlxWZR7rQB6nrvEsjNGTk_v1XYQ,2989
134
+ lionagi/protocols/messages/assistant_response.py,sha256=jv1svk_pk4sc_AslHMDn7CtIAFCM5aKmaiPbqNyD4Ds,6071
135
+ lionagi/protocols/messages/base.py,sha256=-feOzxTrfqe-1F74Y5bloTaSGwiF4bRhI_txawTPgXA,2649
136
+ lionagi/protocols/messages/instruction.py,sha256=o8A3nBIqU_82G86Kg4UgiVpAznzzRSnWiEm9LvlBpM4,11815
137
+ lionagi/protocols/messages/manager.py,sha256=ZbQ1VfphbS7ddr4SHmnSqLTo8lnZ4Vtl8pKL8xnLPD0,18900
138
+ lionagi/protocols/messages/message.py,sha256=tgy_drcKB-CbAqFaKi6oQkhBPFuBQYREZU8DqQTz2BE,4457
139
+ lionagi/protocols/messages/system.py,sha256=A9RqcNUUCFq6GcGBvMpv7Y6R4igFt1sER9sZMXyyFWg,2380
140
+ lionagi/protocols/operatives/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
141
+ lionagi/protocols/operatives/operative.py,sha256=StMHk8EShQXeBLN9GYsLfzne94jsIO0x2vf988bQWos,14368
142
+ lionagi/protocols/operatives/step.py,sha256=9GEsKOvTSrnBcDEtJV7PryJuR7Uk7CRjhwtFKFEZEe4,9276
143
+ lionagi/service/__init__.py,sha256=MYcfEFFLSdRS4blwYdx883T8Px2bn81JAeqSIPW9SFs,2545
144
+ lionagi/service/broadcaster.py,sha256=XvaUaBb6awcq-DJGVNJnnAIZUrrtOPnhWcgVgZTnGq8,1941
145
+ lionagi/service/imodel.py,sha256=Q29fRHaWpI-IKThuUE_1EoGCG746FgKPzYqzqNNPyAc,16605
146
+ lionagi/service/manager.py,sha256=ZQWj_QKYsKVblsNHeDBMMQllduMArjLqaZHlP3F1_tE,1160
147
+ lionagi/service/rate_limited_processor.py,sha256=D983_04YqurcA-svjDKXVzmlD1bWoVkFHtwqQhB-fGo,6095
148
+ lionagi/service/resilience.py,sha256=djIDMJHe2XHoULa3x0wygt3kjeMgElSmWf0RFeyD3SU,18717
149
+ lionagi/service/token_calculator.py,sha256=s5meEIhulrkemCkY8sYPUOdKGH5jxEkz87Qt0Nwb2zE,6453
150
+ lionagi/service/connections/__init__.py,sha256=xgym7BxiQv-QxDMRfvvq6V9PvYmSZklU0-epGj1Beng,365
151
+ lionagi/service/connections/api_calling.py,sha256=8NpgyFzz9oU6lTXq_gBetaqH_M6RnOoxIg4rbcS1Jco,6003
152
+ lionagi/service/connections/endpoint.py,sha256=T4JKy-fQ9_LFDpaTP0SEzUFIlfnhlnMJFcEb-qgThVg,14833
153
+ lionagi/service/connections/endpoint_config.py,sha256=L-DQdxVLBA8ZapVSvLhjmlo0pP1199aRA8lccquGoHI,5172
154
+ lionagi/service/connections/header_factory.py,sha256=vwVV3jNHIUePvUzbcC5Sj7yDoxB2yVSyLZxgBm-kNjg,1824
155
+ lionagi/service/connections/match_endpoint.py,sha256=cOPdoEgOpvFE2iJ24zqGJ51fB6s20qg4-RDjTI_bx-0,2571
156
+ lionagi/service/connections/mcp/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
157
+ lionagi/service/connections/mcp/wrapper.py,sha256=EDbAm9gj4_zGBRdXf9yS0ZpyMNLfkEuDV2zo_YRt9QA,9161
158
+ lionagi/service/connections/providers/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
159
+ lionagi/service/connections/providers/anthropic_.py,sha256=7xShtS2Whg-F2DpueSyI0X3ZknqTYeDXi1AvkEDQOBc,3160
160
+ lionagi/service/connections/providers/claude_code_cli.py,sha256=pCAXdPCH0AaKYnA3SXL8zGTvvheipR5dZ7Aw7fmqG8g,4451
161
+ lionagi/service/connections/providers/exa_.py,sha256=p2mVkuztpHuS4Ud2dR082dPPEiVp6MFUXlehU9fD9lc,1051
162
+ lionagi/service/connections/providers/nvidia_nim_.py,sha256=S1Z8XhL7W5uANiNTkHK_ffeBL3_lD9KuthI70NSd_4g,2412
163
+ lionagi/service/connections/providers/oai_.py,sha256=vXYecSAHkMONpbFoVivldBbyPlU2y8pWKYY-LiXzsBE,4289
164
+ lionagi/service/connections/providers/ollama_.py,sha256=Y1e8dR7uDOxnCI45f9qvPh4NtVUd0qDppohNb-g6tQM,4564
165
+ lionagi/service/connections/providers/perplexity_.py,sha256=9eXYXsGQuDy8WdEbZ3Och9qDl-lZTBmocMo9-FsTIeE,1649
166
+ lionagi/service/hooks/__init__.py,sha256=toX-rQji-pxglI4yKzu-0Xp7E4xVvh0__Z70G_Gz2Y0,469
167
+ lionagi/service/hooks/_types.py,sha256=53Wh0N1pHUZ_IG8iPxP4MbRNNy_e6vzK-y9Mxu8u8Eo,1260
168
+ lionagi/service/hooks/_utils.py,sha256=oVVDIJOX8HFAHVErPJGTuh57YEGhiwm5_ykFN2GRPyI,2632
169
+ lionagi/service/hooks/hook_event.py,sha256=VGcpdrbnH6U47mNkSINT8FlwWrR8_QX_kGoCy55RXTc,2836
170
+ lionagi/service/hooks/hook_registry.py,sha256=SGwWoFTHhKn0hGrb2GeDi2ecLrt8ax_kiJoHPZgz5Ls,8532
171
+ lionagi/service/hooks/hooked_event.py,sha256=iBN7dCpYwJBndai94vm9FwpFvQHcUonEDOg7C9g75iI,4318
172
+ lionagi/service/third_party/README.md,sha256=qFjWnI8rmLivIyr6Tc-hRZh-rQwntROp76af4MBNJJc,2214
173
+ lionagi/service/third_party/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
+ lionagi/service/third_party/anthropic_models.py,sha256=8Ioc2YjQkHIwsqrnzbfyXAADIIPpP21mPDhx7XkGpRo,4022
175
+ lionagi/service/third_party/claude_code.py,sha256=jy7Xe2lQ85uKUayaHHdLfSQqWVNhgC9A71z1TA6cYS0,23831
176
+ lionagi/service/third_party/exa_models.py,sha256=G_hnekcy-DillPLzMoDQ8ZisVAL8Mp7iMAK4xqAT_3w,5470
177
+ lionagi/service/third_party/openai_models.py,sha256=UCuIlYejgEAReQh1ldm-k1HC1Xk_lDM0aY0UBhbA7KA,11357
178
+ lionagi/service/third_party/pplx_models.py,sha256=-EhyJgOWR6rzSv3zczUtk80X6c19p18Dg9KC6l8BFRQ,6473
179
+ lionagi/session/__init__.py,sha256=KqR6ZzF0JZmPxa0Yb5Ocm88MTMQR1alhlm00QTbHOvA,198
180
+ lionagi/session/branch.py,sha256=I-0Yn3nkNvAZTjuC1imTSrr3DYzRsi0ZiZEsBiHOSz8,59756
181
+ lionagi/session/prompts.py,sha256=GPr0jibyAAqS3awDzGC8SoCL6aWJLLCCbXY0JUuxOC0,3170
182
+ lionagi/session/session.py,sha256=DAt7pU5l2J6t6Uzon0zlC0eWsOtIHFUs2VuLolH0Bcw,12810
183
+ lionagi/tools/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
184
+ lionagi/tools/base.py,sha256=ypzT7-XPGW_KzIAAGwlzwRx594zcIPoBqW_WqAozwo4,1893
185
+ lionagi/tools/types.py,sha256=HD3lkxKFFxVKPgxVLOerJ-VNxQiXA0Cw2TrlxEEBQWU,226
186
+ lionagi/tools/file/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
187
+ lionagi/tools/file/reader.py,sha256=JCKDyOcKv07Iee8oJls8y5Qg0_PefnfqsIp_FiZQrsQ,9660
188
+ lionagi-0.18.0.dist-info/METADATA,sha256=3j0lkBH0hhEThs8UwMZbPvqUZZc-DKQaL3H4_Eo0-k4,23416
189
+ lionagi-0.18.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
190
+ lionagi-0.18.0.dist-info/licenses/LICENSE,sha256=VXFWsdoN5AAknBCgFqQNgPWYx7OPp-PFEP961zGdOjc,11288
191
+ lionagi-0.18.0.dist-info/RECORD,,
@@ -1,3 +0,0 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
3
- # SPDX-License-Identifier: Apache-2.0
@@ -1,87 +0,0 @@
1
- # Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
2
- #
3
- # SPDX-License-Identifier: Apache-2.0
4
-
5
- import logging
6
- from typing import TYPE_CHECKING
7
-
8
- from pydantic import BaseModel
9
-
10
- from lionagi.fields.action import ActionResponseModel
11
- from lionagi.protocols.types import ActionRequest, Log
12
-
13
- if TYPE_CHECKING:
14
- from lionagi.session.branch import Branch
15
-
16
-
17
- async def _act(
18
- branch: "Branch",
19
- action_request: BaseModel | dict,
20
- suppress_errors: bool = False,
21
- verbose_action: bool = False,
22
- ) -> "ActionResponseModel":
23
- _request = {}
24
-
25
- if isinstance(action_request, BaseModel):
26
- if hasattr(action_request, "function") and hasattr(
27
- action_request, "arguments"
28
- ):
29
- _request["function"] = action_request.function
30
- _request["arguments"] = action_request.arguments
31
- elif isinstance(action_request, dict):
32
- if {"function", "arguments"} <= set(action_request.keys()):
33
- _request["function"] = action_request["function"]
34
- _request["arguments"] = action_request["arguments"]
35
-
36
- try:
37
- if verbose_action:
38
- args_ = str(_request["arguments"])
39
- args_ = args_[:50] + "..." if len(args_) > 50 else args_
40
- print(f"Invoking action {_request['function']} with {args_}.")
41
-
42
- func_call = await branch._action_manager.invoke(_request)
43
- if verbose_action:
44
- print(
45
- f"Action {_request['function']} invoked, status: {func_call.status}."
46
- )
47
-
48
- except Exception as e:
49
- content = {
50
- "error": str(e),
51
- "function": _request.get("function"),
52
- "arguments": _request.get("arguments"),
53
- "branch": str(branch.id),
54
- }
55
- branch._log_manager.log(Log(content=content))
56
- if verbose_action:
57
- print(f"Action {_request['function']} failed, error: {str(e)}.")
58
- if suppress_errors:
59
- logging.error(
60
- f"Error invoking action '{_request['function']}': {e}"
61
- )
62
- return None
63
- raise e
64
-
65
- branch._log_manager.log(Log.create(func_call))
66
-
67
- if not isinstance(action_request, ActionRequest):
68
- action_request = ActionRequest.create(
69
- sender=branch.id,
70
- recipient=func_call.func_tool.id,
71
- **_request,
72
- )
73
-
74
- # Add the action request/response to the message manager, if not present
75
- if action_request not in branch.messages:
76
- branch.msgs.add_message(action_request=action_request)
77
-
78
- branch.msgs.add_message(
79
- action_request=action_request,
80
- action_output=func_call.response,
81
- )
82
-
83
- return ActionResponseModel(
84
- function=action_request.function,
85
- arguments=action_request.arguments,
86
- output=func_call.response,
87
- )
@@ -1,28 +0,0 @@
1
- ## Rendering Templates
2
-
3
- Once templates are defined, you can load and render them using Jinja2:
4
-
5
- ```python
6
- from jinja2 import Environment, FileSystemLoader
7
-
8
- env = Environment(loader=FileSystemLoader('templates'))
9
-
10
- # Example: Rendering an instruction message
11
- template = env.get_template('instruction_message.jinja2')
12
- args = {
13
- "guidance": "Please ensure accuracy.",
14
- "instruction": "Summarize the document",
15
- "context": ["Doc1: ...", "Doc2: ..."],
16
- "request_fields": {"summary": "...", "key_points": "..."}
17
- }
18
- message_text = template.render(**args)
19
- print(message_text)
20
- ```
21
-
22
- Benefits and Customization
23
- • You can easily rearrange sections within these templates without changing your code logic.
24
- • Each message type is clearly separated, making it simpler to maintain or adjust one message format without affecting the others.
25
- • If you find that you use some snippet (like rendering a schema) in multiple templates, you can factor it out into its own partial template (like tool_schemas.jinja2) and include it where needed.
26
- • Over time, you can add more templates or split existing ones if certain messages become too complex.
27
-
28
- By establishing this set of base templates and arguments, you have a starting point. You can expand or refine as your requirements evolve.
@@ -1,5 +0,0 @@
1
- Please perform the following action:
2
- - Function: {{ function }}
3
- - Arguments:
4
- ```json
5
- {{ arguments | tojson(indent=2) }}
@@ -1,9 +0,0 @@
1
- The action has been performed. Results:
2
-
3
- Function: {{ function }}
4
- Arguments:
5
- ```json
6
- {{ arguments | tojson(indent=2) }}
7
-
8
- Output:
9
- {{ output }}
@@ -1,6 +0,0 @@
1
- # Assistant Response
2
- {% if name is defined %}
3
- **Name** {{ name }}:
4
- {% endif %}
5
- **Response**:
6
- {{ assistant_response }}
@@ -1,61 +0,0 @@
1
- {%- set content = [] -%}
2
-
3
- {# If plain_content is provided, we use it directly. Otherwise, we build a text block from guidance, instruction, context, etc. #}
4
- {% if plain_content %}
5
- {% set content = content + [{"type": "text", "text": plain_content}] %}
6
- {% else %}
7
- {# Build a text block from the available sections #}
8
- {% set text_block = "" %}
9
-
10
- {% if guidance %}
11
- ## Guidance
12
- {{ guidance }}
13
-
14
- {% endif %}
15
-
16
- {% if instruction %}
17
- ## Instruction
18
- {{ instruction }}
19
-
20
- {% endif %}
21
-
22
- {% if context %}
23
- ## Context
24
- {% for item in context %}
25
- - {{ item }}
26
- {% endfor %}
27
- {% endif %}
28
-
29
- {% if tool_schemas %}
30
- ## Tool Schemas
31
- {% include "tool_schemas.jinja2" %}
32
- {% endif %}
33
-
34
- {% if request_fields %}
35
- ## Requested Fields
36
- Please return a JSON object with the following fields:
37
- ```json
38
- {{ request_fields | tojson(indent=2) }}
39
-
40
- {% endif %}
41
-
42
- {% if request_response_format %}
43
-
44
- Response Format
45
-
46
- {{ request_response_format }}
47
- {% endif %}
48
-
49
- {# Append the built sections into text_block #}
50
- {% set text_block = text_block + self %}
51
- {% set content = content + [{"type": "text", "text": text_block.strip()}] %}
52
- {% endif %}
53
-
54
- {# If images are present, we append image_url items to content #}
55
- {% if images %}
56
- {% for img in images %}
57
- {% set content = content + [{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64," ~ img, "detail": image_detail}}] %}
58
- {% endfor %}
59
- {% endif %}
60
-
61
- {{ content | tojson(indent=2) }}
@@ -1,11 +0,0 @@
1
- {{ system_message }}
2
- {% if system_datetime %}
3
- System datetime: {{ system_datetime }}
4
- {% endif %}
5
-
6
- {% if additional_context %}
7
- Additional Context:
8
- {% for c in additional_context %}
9
- - {{ c }}
10
- {% endfor %}
11
- {% endif %}
@@ -1,7 +0,0 @@
1
- {% for name, schema in tool_schemas.items() %}
2
- Tool: {{ name }}
3
- Schema:
4
- ```json
5
- {{ schema | tojson(indent=2) }}
6
-
7
- {% endfor %}
@@ -1,28 +0,0 @@
1
- from .anthropic_ import AnthropicMessagesEndpoint
2
- from .claude_code_cli import ClaudeCodeCLIEndpoint, ClaudeCodeRequest
3
- from .exa_ import ExaSearchEndpoint, ExaSearchRequest
4
- from .oai_ import (
5
- GroqChatEndpoint,
6
- OpenaiChatEndpoint,
7
- OpenaiEmbedEndpoint,
8
- OpenaiResponseEndpoint,
9
- OpenrouterChatEndpoint,
10
- )
11
- from .ollama_ import OllamaChatEndpoint
12
- from .perplexity_ import PerplexityChatEndpoint, PerplexityChatRequest
13
-
14
- __all__ = (
15
- "AnthropicMessagesEndpoint",
16
- "ClaudeCodeRequest",
17
- "ClaudeCodeCLIEndpoint",
18
- "ExaSearchEndpoint",
19
- "ExaSearchRequest",
20
- "OpenaiChatEndpoint",
21
- "OpenaiEmbedEndpoint",
22
- "OpenaiResponseEndpoint",
23
- "OpenrouterChatEndpoint",
24
- "GroqChatEndpoint",
25
- "OllamaChatEndpoint",
26
- "PerplexityChatEndpoint",
27
- "PerplexityChatRequest",
28
- )
@@ -1,198 +0,0 @@
1
- """
2
- OpenAI Model Names extracted from generated models.
3
-
4
- This module provides lists of allowed model names for different OpenAI services,
5
- extracted from the auto-generated openai_models.py file.
6
- """
7
-
8
- from typing import Literal, get_args
9
-
10
- # Manually define the chat models from the ChatModel class in openai_models.py
11
- # These are extracted from the Literal type definition
12
- CHAT_MODELS = [
13
- "gpt-5",
14
- "gpt-5-mini",
15
- "gpt-5-nano",
16
- "gpt-5-2025-08-07",
17
- "gpt-5-mini-2025-08-07",
18
- "gpt-5-nano-2025-08-07",
19
- "gpt-5-chat-latest",
20
- "gpt-4.1",
21
- "gpt-4.1-mini",
22
- "gpt-4.1-nano",
23
- "gpt-4.1-2025-04-14",
24
- "gpt-4.1-mini-2025-04-14",
25
- "gpt-4.1-nano-2025-04-14",
26
- "o4-mini",
27
- "o4-mini-2025-04-16",
28
- "o3",
29
- "o3-2025-04-16",
30
- "o3-mini",
31
- "o3-mini-2025-01-31",
32
- "o1",
33
- "o1-2024-12-17",
34
- "o1-preview",
35
- "o1-preview-2024-09-12",
36
- "o1-mini",
37
- "o1-mini-2024-09-12",
38
- "gpt-4o",
39
- "gpt-4o-2024-11-20",
40
- "gpt-4o-2024-08-06",
41
- "gpt-4o-2024-05-13",
42
- "gpt-4o-audio-preview",
43
- "gpt-4o-audio-preview-2024-10-01",
44
- "gpt-4o-audio-preview-2024-12-17",
45
- "gpt-4o-audio-preview-2025-06-03",
46
- "gpt-4o-mini-audio-preview",
47
- "gpt-4o-mini-audio-preview-2024-12-17",
48
- "gpt-4o-search-preview",
49
- "gpt-4o-mini-search-preview",
50
- "gpt-4o-search-preview-2025-03-11",
51
- "gpt-4o-mini-search-preview-2025-03-11",
52
- "chatgpt-4o-latest",
53
- "codex-mini-latest",
54
- "gpt-4o-mini",
55
- "gpt-4o-mini-2024-07-18",
56
- "gpt-4-turbo",
57
- "gpt-4-turbo-2024-04-09",
58
- "gpt-4-0125-preview",
59
- "gpt-4-turbo-preview",
60
- "gpt-4-1106-preview",
61
- "gpt-4-vision-preview",
62
- "gpt-4",
63
- "gpt-4-0314",
64
- "gpt-4-0613",
65
- "gpt-4-32k",
66
- "gpt-4-32k-0314",
67
- "gpt-4-32k-0613",
68
- "gpt-3.5-turbo",
69
- "gpt-3.5-turbo-16k",
70
- "gpt-3.5-turbo-0301",
71
- "gpt-3.5-turbo-0613",
72
- "gpt-3.5-turbo-1106",
73
- "gpt-3.5-turbo-0125",
74
- "gpt-3.5-turbo-16k-0613",
75
- ]
76
-
77
- # Reasoning models (o1, o3, o4 series)
78
- # Note: Add o1-pro models that may not be in the generated list yet
79
- ADDITIONAL_REASONING_MODELS = [
80
- "o1-pro",
81
- "o1-pro-2025-03-19",
82
- "o3-pro",
83
- "o3-pro-2025-06-10",
84
- ]
85
-
86
- REASONING_MODELS = [
87
- model
88
- for model in CHAT_MODELS
89
- if model.startswith(("o1", "o1-", "o3", "o3-", "o4", "o4-", "gpt-5"))
90
- ] + ADDITIONAL_REASONING_MODELS
91
-
92
- # GPT models (excluding reasoning models)
93
- GPT_MODELS = [
94
- model
95
- for model in CHAT_MODELS
96
- if model.startswith("gpt")
97
- or model.startswith("chatgpt")
98
- or model.startswith("codex")
99
- ]
100
-
101
- # Embedding models
102
- EMBEDDING_MODELS = [
103
- "text-embedding-ada-002",
104
- "text-embedding-3-small",
105
- "text-embedding-3-large",
106
- ]
107
-
108
- # Audio models
109
- AUDIO_MODELS = {
110
- "tts": ["tts-1", "tts-1-hd", "gpt-4o-mini-tts"],
111
- "transcription": [
112
- "whisper-1",
113
- "gpt-4o-transcribe",
114
- "gpt-4o-mini-transcribe",
115
- ],
116
- }
117
-
118
- # Image models
119
- IMAGE_MODELS = ["dall-e-2", "dall-e-3", "gpt-image-1"]
120
-
121
- # Moderation models
122
- MODERATION_MODELS = ["text-moderation-latest", "text-moderation-stable"]
123
-
124
-
125
- def is_reasoning_model(model: str) -> bool:
126
- """Check if a model is a reasoning model (o1/o3/o4 series)."""
127
- return model in REASONING_MODELS
128
-
129
-
130
- def is_valid_chat_model(model: str) -> bool:
131
- """Check if a model is a valid chat model."""
132
- return model in CHAT_MODELS
133
-
134
-
135
- def is_valid_embedding_model(model: str) -> bool:
136
- """Check if a model is a valid embedding model."""
137
- return model in EMBEDDING_MODELS
138
-
139
-
140
- def get_model_category(model: str) -> str:
141
- """Get the category of a model."""
142
- if model in REASONING_MODELS:
143
- return "reasoning"
144
- elif model in GPT_MODELS:
145
- return "gpt"
146
- elif model in EMBEDDING_MODELS:
147
- return "embedding"
148
- elif model in AUDIO_MODELS["tts"]:
149
- return "tts"
150
- elif model in AUDIO_MODELS["transcription"]:
151
- return "transcription"
152
- elif model in IMAGE_MODELS:
153
- return "image"
154
- elif model in MODERATION_MODELS:
155
- return "moderation"
156
- else:
157
- return "unknown"
158
-
159
-
160
- def validate_model(model: str, category: str = None) -> bool:
161
- """
162
- Validate if a model is valid, optionally checking category.
163
-
164
- Args:
165
- model: The model name to validate
166
- category: Optional category to check against ('chat', 'embedding', etc.)
167
-
168
- Returns:
169
- True if model is valid (and in the specified category if provided)
170
- """
171
- if category == "chat":
172
- return model in CHAT_MODELS or model in ADDITIONAL_REASONING_MODELS
173
- elif category == "reasoning":
174
- return is_reasoning_model(model)
175
- elif category == "embedding":
176
- return is_valid_embedding_model(model)
177
- elif category:
178
- return get_model_category(model) == category
179
- else:
180
- # Check if model exists in any category
181
- return get_model_category(model) != "unknown"
182
-
183
-
184
- # Export all model lists
185
- __all__ = [
186
- "CHAT_MODELS",
187
- "REASONING_MODELS",
188
- "GPT_MODELS",
189
- "EMBEDDING_MODELS",
190
- "AUDIO_MODELS",
191
- "IMAGE_MODELS",
192
- "MODERATION_MODELS",
193
- "is_reasoning_model",
194
- "is_valid_chat_model",
195
- "is_valid_embedding_model",
196
- "get_model_category",
197
- "validate_model",
198
- ]