letta-client 0.0.1285__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 (564) hide show
  1. letta_client/__init__.py +1000 -0
  2. letta_client/agents/__init__.py +358 -0
  3. letta_client/agents/archival_memory/__init__.py +2 -0
  4. letta_client/agents/archival_memory/client.py +466 -0
  5. letta_client/agents/client.py +1598 -0
  6. letta_client/agents/context/__init__.py +2 -0
  7. letta_client/agents/context/client.py +147 -0
  8. letta_client/agents/core_memory/__init__.py +2 -0
  9. letta_client/agents/core_memory/client.py +878 -0
  10. letta_client/agents/memory_variables/__init__.py +5 -0
  11. letta_client/agents/memory_variables/client.py +150 -0
  12. letta_client/agents/memory_variables/types/__init__.py +5 -0
  13. letta_client/agents/memory_variables/types/memory_variables_list_response.py +19 -0
  14. letta_client/agents/messages/__init__.py +5 -0
  15. letta_client/agents/messages/client.py +1061 -0
  16. letta_client/agents/messages/types/__init__.py +6 -0
  17. letta_client/agents/messages/types/letta_streaming_response.py +20 -0
  18. letta_client/agents/messages/types/message_update_content.py +6 -0
  19. letta_client/agents/sources/__init__.py +2 -0
  20. letta_client/agents/sources/client.py +406 -0
  21. letta_client/agents/templates/__init__.py +5 -0
  22. letta_client/agents/templates/client.py +573 -0
  23. letta_client/agents/templates/types/__init__.py +6 -0
  24. letta_client/agents/templates/types/templates_create_response.py +22 -0
  25. letta_client/agents/templates/types/templates_migrate_response.py +19 -0
  26. letta_client/agents/tools/__init__.py +2 -0
  27. letta_client/agents/tools/client.py +406 -0
  28. letta_client/agents/types/__init__.py +565 -0
  29. letta_client/agents/types/agents_search_request_search_item.py +10 -0
  30. letta_client/agents/types/agents_search_request_search_item_field.py +21 -0
  31. letta_client/agents/types/agents_search_request_search_item_one.py +22 -0
  32. letta_client/agents/types/agents_search_request_search_item_one_operator.py +5 -0
  33. letta_client/agents/types/agents_search_request_search_item_zero.py +20 -0
  34. letta_client/agents/types/agents_search_response.py +23 -0
  35. letta_client/agents/types/agents_search_response_agents_item.py +63 -0
  36. letta_client/agents/types/agents_search_response_agents_item_agent_type.py +7 -0
  37. letta_client/agents/types/agents_search_response_agents_item_base_template_id.py +11 -0
  38. letta_client/agents/types/agents_search_response_agents_item_base_template_id_item.py +5 -0
  39. letta_client/agents/types/agents_search_response_agents_item_created_at.py +11 -0
  40. letta_client/agents/types/agents_search_response_agents_item_created_at_item.py +5 -0
  41. letta_client/agents/types/agents_search_response_agents_item_created_by_id.py +11 -0
  42. letta_client/agents/types/agents_search_response_agents_item_created_by_id_item.py +5 -0
  43. letta_client/agents/types/agents_search_response_agents_item_description.py +11 -0
  44. letta_client/agents/types/agents_search_response_agents_item_description_item.py +5 -0
  45. letta_client/agents/types/agents_search_response_agents_item_embedding_config.py +48 -0
  46. letta_client/agents/types/agents_search_response_agents_item_embedding_config_azure_deployment.py +13 -0
  47. letta_client/agents/types/agents_search_response_agents_item_embedding_config_azure_deployment_item.py +5 -0
  48. letta_client/agents/types/agents_search_response_agents_item_embedding_config_azure_endpoint.py +13 -0
  49. letta_client/agents/types/agents_search_response_agents_item_embedding_config_azure_endpoint_item.py +5 -0
  50. letta_client/agents/types/agents_search_response_agents_item_embedding_config_azure_version.py +13 -0
  51. letta_client/agents/types/agents_search_response_agents_item_embedding_config_azure_version_item.py +5 -0
  52. letta_client/agents/types/agents_search_response_agents_item_embedding_config_embedding_chunk_size.py +13 -0
  53. letta_client/agents/types/agents_search_response_agents_item_embedding_config_embedding_chunk_size_item.py +5 -0
  54. letta_client/agents/types/agents_search_response_agents_item_embedding_config_embedding_endpoint.py +13 -0
  55. letta_client/agents/types/agents_search_response_agents_item_embedding_config_embedding_endpoint_item.py +5 -0
  56. letta_client/agents/types/agents_search_response_agents_item_embedding_config_embedding_endpoint_type.py +27 -0
  57. letta_client/agents/types/agents_search_response_agents_item_embedding_config_handle.py +13 -0
  58. letta_client/agents/types/agents_search_response_agents_item_embedding_config_handle_item.py +5 -0
  59. letta_client/agents/types/agents_search_response_agents_item_last_updated_by_id.py +13 -0
  60. letta_client/agents/types/agents_search_response_agents_item_last_updated_by_id_item.py +5 -0
  61. letta_client/agents/types/agents_search_response_agents_item_llm_config.py +46 -0
  62. letta_client/agents/types/agents_search_response_agents_item_llm_config_handle.py +11 -0
  63. letta_client/agents/types/agents_search_response_agents_item_llm_config_handle_item.py +5 -0
  64. letta_client/agents/types/agents_search_response_agents_item_llm_config_max_tokens.py +13 -0
  65. letta_client/agents/types/agents_search_response_agents_item_llm_config_max_tokens_item.py +5 -0
  66. letta_client/agents/types/agents_search_response_agents_item_llm_config_model_endpoint.py +13 -0
  67. letta_client/agents/types/agents_search_response_agents_item_llm_config_model_endpoint_item.py +5 -0
  68. letta_client/agents/types/agents_search_response_agents_item_llm_config_model_endpoint_type.py +27 -0
  69. letta_client/agents/types/agents_search_response_agents_item_llm_config_model_wrapper.py +13 -0
  70. letta_client/agents/types/agents_search_response_agents_item_llm_config_model_wrapper_item.py +5 -0
  71. letta_client/agents/types/agents_search_response_agents_item_llm_config_put_inner_thoughts_in_kwargs.py +13 -0
  72. letta_client/agents/types/agents_search_response_agents_item_llm_config_put_inner_thoughts_in_kwargs_item.py +5 -0
  73. letta_client/agents/types/agents_search_response_agents_item_llm_config_temperature.py +5 -0
  74. letta_client/agents/types/agents_search_response_agents_item_memory.py +24 -0
  75. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item.py +57 -0
  76. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_created_by_id.py +13 -0
  77. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_created_by_id_item.py +5 -0
  78. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_description.py +13 -0
  79. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_description_item.py +5 -0
  80. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_id.py +5 -0
  81. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_is_template.py +5 -0
  82. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_label.py +13 -0
  83. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_label_item.py +5 -0
  84. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_last_updated_by_id.py +13 -0
  85. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_last_updated_by_id_item.py +5 -0
  86. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_limit.py +5 -0
  87. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_metadata.py +12 -0
  88. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_metadata_item.py +7 -0
  89. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_name.py +13 -0
  90. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_name_item.py +5 -0
  91. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_organization_id.py +13 -0
  92. letta_client/agents/types/agents_search_response_agents_item_memory_blocks_item_organization_id_item.py +5 -0
  93. letta_client/agents/types/agents_search_response_agents_item_memory_prompt_template.py +5 -0
  94. letta_client/agents/types/agents_search_response_agents_item_message_ids.py +11 -0
  95. letta_client/agents/types/agents_search_response_agents_item_message_ids_item.py +5 -0
  96. letta_client/agents/types/agents_search_response_agents_item_metadata.py +10 -0
  97. letta_client/agents/types/agents_search_response_agents_item_metadata_item.py +5 -0
  98. letta_client/agents/types/agents_search_response_agents_item_organization_id.py +11 -0
  99. letta_client/agents/types/agents_search_response_agents_item_organization_id_item.py +5 -0
  100. letta_client/agents/types/agents_search_response_agents_item_project_id.py +11 -0
  101. letta_client/agents/types/agents_search_response_agents_item_project_id_item.py +5 -0
  102. letta_client/agents/types/agents_search_response_agents_item_sources_item.py +51 -0
  103. letta_client/agents/types/agents_search_response_agents_item_sources_item_created_at.py +13 -0
  104. letta_client/agents/types/agents_search_response_agents_item_sources_item_created_at_item.py +5 -0
  105. letta_client/agents/types/agents_search_response_agents_item_sources_item_created_by_id.py +13 -0
  106. letta_client/agents/types/agents_search_response_agents_item_sources_item_created_by_id_item.py +5 -0
  107. letta_client/agents/types/agents_search_response_agents_item_sources_item_description.py +13 -0
  108. letta_client/agents/types/agents_search_response_agents_item_sources_item_description_item.py +5 -0
  109. letta_client/agents/types/agents_search_response_agents_item_sources_item_embedding_config.py +52 -0
  110. letta_client/agents/types/agents_search_response_agents_item_sources_item_embedding_config_azure_deployment.py +13 -0
  111. letta_client/agents/types/agents_search_response_agents_item_sources_item_embedding_config_azure_deployment_item.py +5 -0
  112. letta_client/agents/types/agents_search_response_agents_item_sources_item_embedding_config_azure_endpoint.py +13 -0
  113. letta_client/agents/types/agents_search_response_agents_item_sources_item_embedding_config_azure_endpoint_item.py +5 -0
  114. letta_client/agents/types/agents_search_response_agents_item_sources_item_embedding_config_azure_version.py +13 -0
  115. letta_client/agents/types/agents_search_response_agents_item_sources_item_embedding_config_azure_version_item.py +5 -0
  116. letta_client/agents/types/agents_search_response_agents_item_sources_item_embedding_config_embedding_chunk_size.py +13 -0
  117. letta_client/agents/types/agents_search_response_agents_item_sources_item_embedding_config_embedding_chunk_size_item.py +7 -0
  118. letta_client/agents/types/agents_search_response_agents_item_sources_item_embedding_config_embedding_endpoint.py +13 -0
  119. letta_client/agents/types/agents_search_response_agents_item_sources_item_embedding_config_embedding_endpoint_item.py +5 -0
  120. letta_client/agents/types/agents_search_response_agents_item_sources_item_embedding_config_embedding_endpoint_type.py +27 -0
  121. letta_client/agents/types/agents_search_response_agents_item_sources_item_embedding_config_handle.py +13 -0
  122. letta_client/agents/types/agents_search_response_agents_item_sources_item_embedding_config_handle_item.py +5 -0
  123. letta_client/agents/types/agents_search_response_agents_item_sources_item_id.py +5 -0
  124. letta_client/agents/types/agents_search_response_agents_item_sources_item_last_updated_by_id.py +13 -0
  125. letta_client/agents/types/agents_search_response_agents_item_sources_item_last_updated_by_id_item.py +5 -0
  126. letta_client/agents/types/agents_search_response_agents_item_sources_item_metadata.py +12 -0
  127. letta_client/agents/types/agents_search_response_agents_item_sources_item_metadata_item.py +5 -0
  128. letta_client/agents/types/agents_search_response_agents_item_sources_item_organization_id.py +13 -0
  129. letta_client/agents/types/agents_search_response_agents_item_sources_item_organization_id_item.py +5 -0
  130. letta_client/agents/types/agents_search_response_agents_item_sources_item_updated_at.py +13 -0
  131. letta_client/agents/types/agents_search_response_agents_item_sources_item_updated_at_item.py +5 -0
  132. letta_client/agents/types/agents_search_response_agents_item_template_id.py +11 -0
  133. letta_client/agents/types/agents_search_response_agents_item_template_id_item.py +5 -0
  134. letta_client/agents/types/agents_search_response_agents_item_tool_exec_environment_variables.py +10 -0
  135. letta_client/agents/types/agents_search_response_agents_item_tool_exec_environment_variables_item.py +53 -0
  136. letta_client/agents/types/agents_search_response_agents_item_tool_exec_environment_variables_item_created_at.py +13 -0
  137. letta_client/agents/types/agents_search_response_agents_item_tool_exec_environment_variables_item_created_at_item.py +5 -0
  138. letta_client/agents/types/agents_search_response_agents_item_tool_exec_environment_variables_item_created_by_id.py +13 -0
  139. letta_client/agents/types/agents_search_response_agents_item_tool_exec_environment_variables_item_created_by_id_item.py +5 -0
  140. letta_client/agents/types/agents_search_response_agents_item_tool_exec_environment_variables_item_description.py +13 -0
  141. letta_client/agents/types/agents_search_response_agents_item_tool_exec_environment_variables_item_description_item.py +5 -0
  142. letta_client/agents/types/agents_search_response_agents_item_tool_exec_environment_variables_item_id.py +5 -0
  143. letta_client/agents/types/agents_search_response_agents_item_tool_exec_environment_variables_item_last_updated_by_id.py +13 -0
  144. letta_client/agents/types/agents_search_response_agents_item_tool_exec_environment_variables_item_last_updated_by_id_item.py +7 -0
  145. letta_client/agents/types/agents_search_response_agents_item_tool_exec_environment_variables_item_organization_id.py +13 -0
  146. letta_client/agents/types/agents_search_response_agents_item_tool_exec_environment_variables_item_organization_id_item.py +7 -0
  147. letta_client/agents/types/agents_search_response_agents_item_tool_exec_environment_variables_item_updated_at.py +13 -0
  148. letta_client/agents/types/agents_search_response_agents_item_tool_exec_environment_variables_item_updated_at_item.py +5 -0
  149. letta_client/agents/types/agents_search_response_agents_item_tool_rules.py +11 -0
  150. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item.py +8 -0
  151. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_child_output_mapping.py +34 -0
  152. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_child_output_mapping_default_child.py +13 -0
  153. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_child_output_mapping_default_child_item.py +5 -0
  154. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_child_output_mapping_require_output_mapping.py +7 -0
  155. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_child_output_mapping_type.py +7 -0
  156. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_children.py +24 -0
  157. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_children_type.py +7 -0
  158. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_item.py +22 -0
  159. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_item_child_output_mapping.py +34 -0
  160. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_item_child_output_mapping_default_child.py +13 -0
  161. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_item_child_output_mapping_default_child_item.py +7 -0
  162. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_item_child_output_mapping_require_output_mapping.py +7 -0
  163. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_item_child_output_mapping_type.py +7 -0
  164. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_item_children.py +24 -0
  165. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_item_children_type.py +7 -0
  166. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_item_one.py +23 -0
  167. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_item_one_type.py +7 -0
  168. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_item_two.py +23 -0
  169. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_item_two_type.py +7 -0
  170. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_one.py +23 -0
  171. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_one_type.py +7 -0
  172. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_two.py +23 -0
  173. letta_client/agents/types/agents_search_response_agents_item_tool_rules_item_two_type.py +7 -0
  174. letta_client/agents/types/agents_search_response_agents_item_tools_item.py +47 -0
  175. letta_client/agents/types/agents_search_response_agents_item_tools_item_created_by_id.py +10 -0
  176. letta_client/agents/types/agents_search_response_agents_item_tools_item_created_by_id_item.py +5 -0
  177. letta_client/agents/types/agents_search_response_agents_item_tools_item_description.py +10 -0
  178. letta_client/agents/types/agents_search_response_agents_item_tools_item_description_item.py +5 -0
  179. letta_client/agents/types/agents_search_response_agents_item_tools_item_json_schema.py +12 -0
  180. letta_client/agents/types/agents_search_response_agents_item_tools_item_json_schema_item.py +5 -0
  181. letta_client/agents/types/agents_search_response_agents_item_tools_item_last_updated_by_id.py +10 -0
  182. letta_client/agents/types/agents_search_response_agents_item_tools_item_last_updated_by_id_item.py +5 -0
  183. letta_client/agents/types/agents_search_response_agents_item_tools_item_name.py +8 -0
  184. letta_client/agents/types/agents_search_response_agents_item_tools_item_name_item.py +5 -0
  185. letta_client/agents/types/agents_search_response_agents_item_tools_item_organization_id.py +10 -0
  186. letta_client/agents/types/agents_search_response_agents_item_tools_item_organization_id_item.py +5 -0
  187. letta_client/agents/types/agents_search_response_agents_item_tools_item_source_code.py +10 -0
  188. letta_client/agents/types/agents_search_response_agents_item_tools_item_source_code_item.py +5 -0
  189. letta_client/agents/types/agents_search_response_agents_item_tools_item_source_type.py +10 -0
  190. letta_client/agents/types/agents_search_response_agents_item_tools_item_source_type_item.py +5 -0
  191. letta_client/agents/types/agents_search_response_agents_item_tools_item_tool_type.py +10 -0
  192. letta_client/agents/types/agents_search_response_agents_item_updated_at.py +11 -0
  193. letta_client/agents/types/agents_search_response_agents_item_updated_at_item.py +5 -0
  194. letta_client/agents/types/create_agent_request_tool_rules_item.py +9 -0
  195. letta_client/agents/types/update_agent_tool_rules_item.py +9 -0
  196. letta_client/base_client.py +184 -0
  197. letta_client/blocks/__init__.py +2 -0
  198. letta_client/blocks/client.py +933 -0
  199. letta_client/client.py +76 -0
  200. letta_client/core/__init__.py +51 -0
  201. letta_client/core/api_error.py +15 -0
  202. letta_client/core/client_wrapper.py +65 -0
  203. letta_client/core/datetime_utils.py +28 -0
  204. letta_client/core/file.py +67 -0
  205. letta_client/core/http_client.py +499 -0
  206. letta_client/core/jsonable_encoder.py +101 -0
  207. letta_client/core/pydantic_utilities.py +296 -0
  208. letta_client/core/query_encoder.py +58 -0
  209. letta_client/core/remove_none_from_dict.py +11 -0
  210. letta_client/core/request_options.py +35 -0
  211. letta_client/core/serialization.py +272 -0
  212. letta_client/core/unchecked_base_model.py +305 -0
  213. letta_client/environment.py +8 -0
  214. letta_client/errors/__init__.py +8 -0
  215. letta_client/errors/conflict_error.py +9 -0
  216. letta_client/errors/internal_server_error.py +9 -0
  217. letta_client/errors/not_found_error.py +9 -0
  218. letta_client/errors/unprocessable_entity_error.py +9 -0
  219. letta_client/health/__init__.py +2 -0
  220. letta_client/health/client.py +108 -0
  221. letta_client/jobs/__init__.py +2 -0
  222. letta_client/jobs/client.py +503 -0
  223. letta_client/models/__init__.py +2 -0
  224. letta_client/models/client.py +201 -0
  225. letta_client/providers/__init__.py +2 -0
  226. letta_client/providers/client.py +597 -0
  227. letta_client/py.typed +0 -0
  228. letta_client/runs/__init__.py +2 -0
  229. letta_client/runs/client.py +824 -0
  230. letta_client/sources/__init__.py +5 -0
  231. letta_client/sources/client.py +878 -0
  232. letta_client/sources/files/__init__.py +2 -0
  233. letta_client/sources/files/client.py +436 -0
  234. letta_client/sources/passages/__init__.py +2 -0
  235. letta_client/sources/passages/client.py +145 -0
  236. letta_client/steps/__init__.py +2 -0
  237. letta_client/steps/client.py +339 -0
  238. letta_client/tag/__init__.py +2 -0
  239. letta_client/tag/client.py +169 -0
  240. letta_client/templates/__init__.py +327 -0
  241. letta_client/templates/client.py +198 -0
  242. letta_client/templates/types/__init__.py +643 -0
  243. letta_client/templates/types/templates_create_agents_from_template_response.py +22 -0
  244. letta_client/templates/types/templates_create_agents_from_template_response_agents_item.py +100 -0
  245. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_agent_type.py +7 -0
  246. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_base_template_id.py +13 -0
  247. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_base_template_id_item.py +5 -0
  248. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_created_at.py +13 -0
  249. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_created_at_item.py +5 -0
  250. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_created_by_id.py +13 -0
  251. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_created_by_id_item.py +5 -0
  252. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_description.py +13 -0
  253. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_description_item.py +5 -0
  254. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config.py +58 -0
  255. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_azure_deployment.py +13 -0
  256. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_azure_deployment_item.py +7 -0
  257. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_azure_endpoint.py +13 -0
  258. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_azure_endpoint_item.py +7 -0
  259. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_azure_version.py +13 -0
  260. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_azure_version_item.py +7 -0
  261. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_embedding_chunk_size.py +15 -0
  262. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_embedding_chunk_size_item.py +7 -0
  263. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_embedding_endpoint.py +15 -0
  264. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_embedding_endpoint_item.py +7 -0
  265. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_embedding_endpoint_type.py +27 -0
  266. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_handle.py +13 -0
  267. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_handle_item.py +5 -0
  268. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_last_updated_by_id.py +13 -0
  269. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_last_updated_by_id_item.py +5 -0
  270. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config.py +50 -0
  271. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_handle.py +13 -0
  272. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_handle_item.py +5 -0
  273. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_max_tokens.py +13 -0
  274. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_max_tokens_item.py +5 -0
  275. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_model_endpoint.py +13 -0
  276. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_model_endpoint_item.py +5 -0
  277. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_model_endpoint_type.py +27 -0
  278. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_model_wrapper.py +13 -0
  279. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_model_wrapper_item.py +5 -0
  280. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_put_inner_thoughts_in_kwargs.py +15 -0
  281. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_put_inner_thoughts_in_kwargs_item.py +7 -0
  282. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_temperature.py +7 -0
  283. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory.py +26 -0
  284. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item.py +65 -0
  285. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_created_by_id.py +13 -0
  286. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_created_by_id_item.py +7 -0
  287. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_description.py +13 -0
  288. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_description_item.py +7 -0
  289. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_id.py +5 -0
  290. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_is_template.py +7 -0
  291. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_label.py +13 -0
  292. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_label_item.py +5 -0
  293. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_last_updated_by_id.py +15 -0
  294. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_last_updated_by_id_item.py +7 -0
  295. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_limit.py +7 -0
  296. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_metadata.py +12 -0
  297. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_metadata_item.py +7 -0
  298. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_name.py +13 -0
  299. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_name_item.py +5 -0
  300. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_organization_id.py +13 -0
  301. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_organization_id_item.py +7 -0
  302. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_prompt_template.py +5 -0
  303. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_message_ids.py +13 -0
  304. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_message_ids_item.py +5 -0
  305. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_metadata.py +12 -0
  306. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_metadata_item.py +7 -0
  307. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_organization_id.py +13 -0
  308. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_organization_id_item.py +5 -0
  309. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_project_id.py +13 -0
  310. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_project_id_item.py +5 -0
  311. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item.py +59 -0
  312. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_created_at.py +13 -0
  313. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_created_at_item.py +5 -0
  314. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_created_by_id.py +13 -0
  315. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_created_by_id_item.py +5 -0
  316. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_description.py +13 -0
  317. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_description_item.py +5 -0
  318. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config.py +60 -0
  319. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_azure_deployment.py +17 -0
  320. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_azure_deployment_item.py +7 -0
  321. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_azure_endpoint.py +15 -0
  322. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_azure_endpoint_item.py +7 -0
  323. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_azure_version.py +15 -0
  324. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_azure_version_item.py +7 -0
  325. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_embedding_chunk_size.py +17 -0
  326. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_embedding_chunk_size_item.py +7 -0
  327. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_embedding_endpoint.py +17 -0
  328. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_embedding_endpoint_item.py +7 -0
  329. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_embedding_endpoint_type.py +27 -0
  330. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_handle.py +15 -0
  331. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_handle_item.py +7 -0
  332. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_id.py +5 -0
  333. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_last_updated_by_id.py +13 -0
  334. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_last_updated_by_id_item.py +7 -0
  335. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_metadata.py +12 -0
  336. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_metadata_item.py +7 -0
  337. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_organization_id.py +13 -0
  338. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_organization_id_item.py +7 -0
  339. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_updated_at.py +13 -0
  340. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_updated_at_item.py +5 -0
  341. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_template_id.py +13 -0
  342. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_template_id_item.py +5 -0
  343. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables.py +11 -0
  344. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item.py +61 -0
  345. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_created_at.py +17 -0
  346. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_created_at_item.py +7 -0
  347. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_created_by_id.py +17 -0
  348. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_created_by_id_item.py +7 -0
  349. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_description.py +17 -0
  350. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_description_item.py +7 -0
  351. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_id.py +7 -0
  352. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_last_updated_by_id.py +17 -0
  353. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_last_updated_by_id_item.py +7 -0
  354. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_organization_id.py +17 -0
  355. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_organization_id_item.py +7 -0
  356. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_updated_at.py +17 -0
  357. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_updated_at_item.py +7 -0
  358. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules.py +13 -0
  359. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item.py +10 -0
  360. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_output_mapping.py +36 -0
  361. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_output_mapping_default_child.py +17 -0
  362. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_output_mapping_default_child_item.py +7 -0
  363. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_output_mapping_require_output_mapping.py +7 -0
  364. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_output_mapping_type.py +7 -0
  365. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_children.py +24 -0
  366. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_children_type.py +7 -0
  367. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item.py +22 -0
  368. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_output_mapping.py +38 -0
  369. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_output_mapping_default_child.py +17 -0
  370. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_output_mapping_default_child_item.py +7 -0
  371. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_output_mapping_require_output_mapping.py +7 -0
  372. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_output_mapping_type.py +7 -0
  373. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_children.py +24 -0
  374. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_children_type.py +7 -0
  375. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_one.py +23 -0
  376. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_one_type.py +7 -0
  377. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_two.py +23 -0
  378. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_two_type.py +7 -0
  379. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_one.py +23 -0
  380. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_one_type.py +7 -0
  381. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_two.py +23 -0
  382. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_two_type.py +7 -0
  383. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item.py +59 -0
  384. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_created_by_id.py +12 -0
  385. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_created_by_id_item.py +5 -0
  386. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_description.py +12 -0
  387. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_description_item.py +5 -0
  388. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_json_schema.py +12 -0
  389. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_json_schema_item.py +7 -0
  390. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_last_updated_by_id.py +12 -0
  391. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_last_updated_by_id_item.py +7 -0
  392. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_name.py +12 -0
  393. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_name_item.py +5 -0
  394. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_organization_id.py +12 -0
  395. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_organization_id_item.py +5 -0
  396. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_source_code.py +12 -0
  397. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_source_code_item.py +5 -0
  398. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_source_type.py +12 -0
  399. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_source_type_item.py +5 -0
  400. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_tool_type.py +10 -0
  401. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_updated_at.py +13 -0
  402. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_updated_at_item.py +5 -0
  403. letta_client/tools/__init__.py +2 -0
  404. letta_client/tools/client.py +1665 -0
  405. letta_client/types/__init__.py +321 -0
  406. letta_client/types/action_model.py +38 -0
  407. letta_client/types/action_parameters_model.py +26 -0
  408. letta_client/types/action_response_model.py +26 -0
  409. letta_client/types/agent_environment_variable.py +63 -0
  410. letta_client/types/agent_state.py +153 -0
  411. letta_client/types/agent_state_tool_rules_item.py +9 -0
  412. letta_client/types/agent_type.py +7 -0
  413. letta_client/types/app_auth_scheme.py +34 -0
  414. letta_client/types/app_auth_scheme_auth_mode.py +7 -0
  415. letta_client/types/app_model.py +44 -0
  416. letta_client/types/assistant_message.py +24 -0
  417. letta_client/types/assistant_message_content.py +6 -0
  418. letta_client/types/audio.py +19 -0
  419. letta_client/types/auth_request.py +22 -0
  420. letta_client/types/auth_response.py +29 -0
  421. letta_client/types/auth_scheme_field.py +30 -0
  422. letta_client/types/block.py +82 -0
  423. letta_client/types/block_update.py +56 -0
  424. letta_client/types/chat_completion_assistant_message_param.py +29 -0
  425. letta_client/types/chat_completion_assistant_message_param_content.py +8 -0
  426. letta_client/types/chat_completion_assistant_message_param_content_item.py +9 -0
  427. letta_client/types/chat_completion_audio_param.py +22 -0
  428. letta_client/types/chat_completion_audio_param_format.py +5 -0
  429. letta_client/types/chat_completion_audio_param_voice.py +7 -0
  430. letta_client/types/chat_completion_content_part_image_param.py +21 -0
  431. letta_client/types/chat_completion_content_part_input_audio_param.py +21 -0
  432. letta_client/types/chat_completion_content_part_refusal_param.py +20 -0
  433. letta_client/types/chat_completion_content_part_text_param.py +20 -0
  434. letta_client/types/chat_completion_developer_message_param.py +22 -0
  435. letta_client/types/chat_completion_developer_message_param_content.py +6 -0
  436. letta_client/types/chat_completion_function_call_option_param.py +19 -0
  437. letta_client/types/chat_completion_function_message_param.py +21 -0
  438. letta_client/types/chat_completion_message_tool_call_input.py +24 -0
  439. letta_client/types/chat_completion_message_tool_call_output.py +22 -0
  440. letta_client/types/chat_completion_message_tool_call_param.py +24 -0
  441. letta_client/types/chat_completion_named_tool_choice_param.py +23 -0
  442. letta_client/types/chat_completion_prediction_content_param.py +21 -0
  443. letta_client/types/chat_completion_prediction_content_param_content.py +6 -0
  444. letta_client/types/chat_completion_stream_options_param.py +19 -0
  445. letta_client/types/chat_completion_system_message_param.py +22 -0
  446. letta_client/types/chat_completion_system_message_param_content.py +6 -0
  447. letta_client/types/chat_completion_tool_message_param.py +22 -0
  448. letta_client/types/chat_completion_tool_message_param_content.py +6 -0
  449. letta_client/types/chat_completion_tool_param.py +21 -0
  450. letta_client/types/chat_completion_user_message_param.py +22 -0
  451. letta_client/types/chat_completion_user_message_param_content.py +6 -0
  452. letta_client/types/chat_completion_user_message_param_content_item.py +10 -0
  453. letta_client/types/child_tool_rule.py +32 -0
  454. letta_client/types/completion_create_params_non_streaming.py +62 -0
  455. letta_client/types/completion_create_params_non_streaming_function_call.py +8 -0
  456. letta_client/types/completion_create_params_non_streaming_messages_item.py +18 -0
  457. letta_client/types/completion_create_params_non_streaming_modalities_item.py +5 -0
  458. letta_client/types/completion_create_params_non_streaming_model.py +46 -0
  459. letta_client/types/completion_create_params_non_streaming_reasoning_effort.py +5 -0
  460. letta_client/types/completion_create_params_non_streaming_response_format.py +10 -0
  461. letta_client/types/completion_create_params_non_streaming_service_tier.py +5 -0
  462. letta_client/types/completion_create_params_non_streaming_stop.py +5 -0
  463. letta_client/types/completion_create_params_non_streaming_tool_choice.py +8 -0
  464. letta_client/types/completion_create_params_streaming.py +62 -0
  465. letta_client/types/completion_create_params_streaming_function_call.py +8 -0
  466. letta_client/types/completion_create_params_streaming_messages_item.py +18 -0
  467. letta_client/types/completion_create_params_streaming_modalities_item.py +5 -0
  468. letta_client/types/completion_create_params_streaming_model.py +46 -0
  469. letta_client/types/completion_create_params_streaming_reasoning_effort.py +5 -0
  470. letta_client/types/completion_create_params_streaming_response_format.py +10 -0
  471. letta_client/types/completion_create_params_streaming_service_tier.py +5 -0
  472. letta_client/types/completion_create_params_streaming_stop.py +5 -0
  473. letta_client/types/completion_create_params_streaming_tool_choice.py +8 -0
  474. letta_client/types/conditional_tool_rule.py +42 -0
  475. letta_client/types/conflict_error_body.py +21 -0
  476. letta_client/types/context_window_overview.py +108 -0
  477. letta_client/types/create_block.py +52 -0
  478. letta_client/types/e_2_b_sandbox_config.py +32 -0
  479. letta_client/types/embedding_config.py +77 -0
  480. letta_client/types/embedding_config_embedding_endpoint_type.py +27 -0
  481. letta_client/types/file_metadata.py +77 -0
  482. letta_client/types/function_call.py +20 -0
  483. letta_client/types/function_definition_input.py +22 -0
  484. letta_client/types/function_definition_output.py +22 -0
  485. letta_client/types/function_output.py +20 -0
  486. letta_client/types/function_tool.py +21 -0
  487. letta_client/types/health.py +24 -0
  488. letta_client/types/http_validation_error.py +20 -0
  489. letta_client/types/image_url.py +21 -0
  490. letta_client/types/image_url_detail.py +5 -0
  491. letta_client/types/init_tool_rule.py +28 -0
  492. letta_client/types/input_audio.py +21 -0
  493. letta_client/types/input_audio_format.py +5 -0
  494. letta_client/types/internal_server_error_body.py +19 -0
  495. letta_client/types/job.py +76 -0
  496. letta_client/types/job_status.py +5 -0
  497. letta_client/types/job_type.py +5 -0
  498. letta_client/types/json_schema.py +26 -0
  499. letta_client/types/letta_message_union.py +13 -0
  500. letta_client/types/letta_request.py +38 -0
  501. letta_client/types/letta_request_config.py +32 -0
  502. letta_client/types/letta_response.py +38 -0
  503. letta_client/types/letta_usage_statistics.py +48 -0
  504. letta_client/types/llm_config.py +77 -0
  505. letta_client/types/llm_config_model_endpoint_type.py +27 -0
  506. letta_client/types/local_sandbox_config.py +38 -0
  507. letta_client/types/memory.py +32 -0
  508. letta_client/types/message.py +102 -0
  509. letta_client/types/message_create.py +38 -0
  510. letta_client/types/message_create_content.py +6 -0
  511. letta_client/types/message_create_role.py +5 -0
  512. letta_client/types/message_role.py +5 -0
  513. letta_client/types/not_found_error_body.py +19 -0
  514. letta_client/types/not_found_error_body_message.py +11 -0
  515. letta_client/types/openai_types_chat_chat_completion_message_tool_call_function.py +20 -0
  516. letta_client/types/openai_types_chat_chat_completion_message_tool_call_param_function.py +20 -0
  517. letta_client/types/openai_types_chat_chat_completion_named_tool_choice_param_function.py +19 -0
  518. letta_client/types/openai_types_chat_completion_create_params_function.py +21 -0
  519. letta_client/types/organization.py +33 -0
  520. letta_client/types/organization_create.py +22 -0
  521. letta_client/types/passage.py +98 -0
  522. letta_client/types/pip_requirement.py +27 -0
  523. letta_client/types/provider.py +38 -0
  524. letta_client/types/reasoning_message.py +32 -0
  525. letta_client/types/response_format_json_object.py +19 -0
  526. letta_client/types/response_format_json_schema.py +21 -0
  527. letta_client/types/response_format_text.py +19 -0
  528. letta_client/types/run.py +79 -0
  529. letta_client/types/sandbox_config.py +54 -0
  530. letta_client/types/sandbox_config_create.py +23 -0
  531. letta_client/types/sandbox_config_create_config.py +7 -0
  532. letta_client/types/sandbox_config_update.py +27 -0
  533. letta_client/types/sandbox_config_update_config.py +7 -0
  534. letta_client/types/sandbox_environment_variable.py +63 -0
  535. letta_client/types/sandbox_environment_variable_create.py +32 -0
  536. letta_client/types/sandbox_environment_variable_update.py +32 -0
  537. letta_client/types/sandbox_type.py +5 -0
  538. letta_client/types/source.py +76 -0
  539. letta_client/types/step.py +95 -0
  540. letta_client/types/system_message.py +33 -0
  541. letta_client/types/system_message_content.py +6 -0
  542. letta_client/types/terminal_tool_rule.py +28 -0
  543. letta_client/types/text_content.py +23 -0
  544. letta_client/types/tool.py +84 -0
  545. letta_client/types/tool_call.py +21 -0
  546. letta_client/types/tool_call_delta.py +21 -0
  547. letta_client/types/tool_call_message.py +33 -0
  548. letta_client/types/tool_call_message_tool_call.py +7 -0
  549. letta_client/types/tool_create.py +47 -0
  550. letta_client/types/tool_return_message.py +41 -0
  551. letta_client/types/tool_return_message_status.py +5 -0
  552. letta_client/types/tool_type.py +10 -0
  553. letta_client/types/usage_statistics.py +21 -0
  554. letta_client/types/user.py +52 -0
  555. letta_client/types/user_create.py +22 -0
  556. letta_client/types/user_message.py +33 -0
  557. letta_client/types/user_message_content.py +6 -0
  558. letta_client/types/user_update.py +27 -0
  559. letta_client/types/validation_error.py +22 -0
  560. letta_client/types/validation_error_loc_item.py +5 -0
  561. letta_client/version.py +3 -0
  562. letta_client-0.0.1285.dist-info/METADATA +189 -0
  563. letta_client-0.0.1285.dist-info/RECORD +564 -0
  564. letta_client-0.0.1285.dist-info/WHEEL +4 -0
@@ -0,0 +1,499 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import asyncio
4
+ import email.utils
5
+ import json
6
+ import re
7
+ import time
8
+ import typing
9
+ import urllib.parse
10
+ from contextlib import asynccontextmanager, contextmanager
11
+ from random import random
12
+
13
+ import httpx
14
+
15
+ from .file import File, convert_file_dict_to_httpx_tuples
16
+ from .jsonable_encoder import jsonable_encoder
17
+ from .query_encoder import encode_query
18
+ from .remove_none_from_dict import remove_none_from_dict
19
+ from .request_options import RequestOptions
20
+
21
+ INITIAL_RETRY_DELAY_SECONDS = 0.5
22
+ MAX_RETRY_DELAY_SECONDS = 10
23
+ MAX_RETRY_DELAY_SECONDS_FROM_HEADER = 30
24
+
25
+
26
+ def _parse_retry_after(response_headers: httpx.Headers) -> typing.Optional[float]:
27
+ """
28
+ This function parses the `Retry-After` header in a HTTP response and returns the number of seconds to wait.
29
+
30
+ Inspired by the urllib3 retry implementation.
31
+ """
32
+ retry_after_ms = response_headers.get("retry-after-ms")
33
+ if retry_after_ms is not None:
34
+ try:
35
+ return int(retry_after_ms) / 1000 if retry_after_ms > 0 else 0
36
+ except Exception:
37
+ pass
38
+
39
+ retry_after = response_headers.get("retry-after")
40
+ if retry_after is None:
41
+ return None
42
+
43
+ # Attempt to parse the header as an int.
44
+ if re.match(r"^\s*[0-9]+\s*$", retry_after):
45
+ seconds = float(retry_after)
46
+ # Fallback to parsing it as a date.
47
+ else:
48
+ retry_date_tuple = email.utils.parsedate_tz(retry_after)
49
+ if retry_date_tuple is None:
50
+ return None
51
+ if retry_date_tuple[9] is None: # Python 2
52
+ # Assume UTC if no timezone was specified
53
+ # On Python2.7, parsedate_tz returns None for a timezone offset
54
+ # instead of 0 if no timezone is given, where mktime_tz treats
55
+ # a None timezone offset as local time.
56
+ retry_date_tuple = retry_date_tuple[:9] + (0,) + retry_date_tuple[10:]
57
+
58
+ retry_date = email.utils.mktime_tz(retry_date_tuple)
59
+ seconds = retry_date - time.time()
60
+
61
+ if seconds < 0:
62
+ seconds = 0
63
+
64
+ return seconds
65
+
66
+
67
+ def _retry_timeout(response: httpx.Response, retries: int) -> float:
68
+ """
69
+ Determine the amount of time to wait before retrying a request.
70
+ This function begins by trying to parse a retry-after header from the response, and then proceeds to use exponential backoff
71
+ with a jitter to determine the number of seconds to wait.
72
+ """
73
+
74
+ # If the API asks us to wait a certain amount of time (and it's a reasonable amount), just do what it says.
75
+ retry_after = _parse_retry_after(response.headers)
76
+ if retry_after is not None and retry_after <= MAX_RETRY_DELAY_SECONDS_FROM_HEADER:
77
+ return retry_after
78
+
79
+ # Apply exponential backoff, capped at MAX_RETRY_DELAY_SECONDS.
80
+ retry_delay = min(INITIAL_RETRY_DELAY_SECONDS * pow(2.0, retries), MAX_RETRY_DELAY_SECONDS)
81
+
82
+ # Add a randomness / jitter to the retry delay to avoid overwhelming the server with retries.
83
+ timeout = retry_delay * (1 - 0.25 * random())
84
+ return timeout if timeout >= 0 else 0
85
+
86
+
87
+ def _should_retry(response: httpx.Response) -> bool:
88
+ retriable_400s = [429, 408, 409]
89
+ return response.status_code >= 500 or response.status_code in retriable_400s
90
+
91
+
92
+ def remove_omit_from_dict(
93
+ original: typing.Dict[str, typing.Optional[typing.Any]],
94
+ omit: typing.Optional[typing.Any],
95
+ ) -> typing.Dict[str, typing.Any]:
96
+ if omit is None:
97
+ return original
98
+ new: typing.Dict[str, typing.Any] = {}
99
+ for key, value in original.items():
100
+ if value is not omit:
101
+ new[key] = value
102
+ return new
103
+
104
+
105
+ def maybe_filter_request_body(
106
+ data: typing.Optional[typing.Any],
107
+ request_options: typing.Optional[RequestOptions],
108
+ omit: typing.Optional[typing.Any],
109
+ ) -> typing.Optional[typing.Any]:
110
+ if data is None:
111
+ return (
112
+ jsonable_encoder(request_options.get("additional_body_parameters", {})) or {}
113
+ if request_options is not None
114
+ else None
115
+ )
116
+ elif not isinstance(data, typing.Mapping):
117
+ data_content = jsonable_encoder(data)
118
+ else:
119
+ data_content = {
120
+ **(jsonable_encoder(remove_omit_from_dict(data, omit))), # type: ignore
121
+ **(
122
+ jsonable_encoder(request_options.get("additional_body_parameters", {})) or {}
123
+ if request_options is not None
124
+ else {}
125
+ ),
126
+ }
127
+ return data_content
128
+
129
+
130
+ # Abstracted out for testing purposes
131
+ def get_request_body(
132
+ *,
133
+ json: typing.Optional[typing.Any],
134
+ data: typing.Optional[typing.Any],
135
+ request_options: typing.Optional[RequestOptions],
136
+ omit: typing.Optional[typing.Any],
137
+ ) -> typing.Tuple[typing.Optional[typing.Any], typing.Optional[typing.Any]]:
138
+ json_body = None
139
+ data_body = None
140
+ if data is not None:
141
+ data_body = maybe_filter_request_body(data, request_options, omit)
142
+ else:
143
+ # If both data and json are None, we send json data in the event extra properties are specified
144
+ json_body = maybe_filter_request_body(json, request_options, omit)
145
+
146
+ # If you have an empty JSON body, you should just send None
147
+ return (json_body if json_body != {} else None), data_body if data_body != {} else None
148
+
149
+
150
+ class HttpClient:
151
+ def __init__(
152
+ self,
153
+ *,
154
+ httpx_client: httpx.Client,
155
+ base_timeout: typing.Callable[[], typing.Optional[float]],
156
+ base_headers: typing.Callable[[], typing.Dict[str, str]],
157
+ base_url: typing.Optional[typing.Callable[[], str]] = None,
158
+ ):
159
+ self.base_url = base_url
160
+ self.base_timeout = base_timeout
161
+ self.base_headers = base_headers
162
+ self.httpx_client = httpx_client
163
+
164
+ def get_base_url(self, maybe_base_url: typing.Optional[str]) -> str:
165
+ base_url = maybe_base_url
166
+ if self.base_url is not None and base_url is None:
167
+ base_url = self.base_url()
168
+
169
+ if base_url is None:
170
+ raise ValueError("A base_url is required to make this request, please provide one and try again.")
171
+ return base_url
172
+
173
+ def request(
174
+ self,
175
+ path: typing.Optional[str] = None,
176
+ *,
177
+ method: str,
178
+ base_url: typing.Optional[str] = None,
179
+ params: typing.Optional[typing.Dict[str, typing.Any]] = None,
180
+ json: typing.Optional[typing.Any] = None,
181
+ data: typing.Optional[typing.Any] = None,
182
+ content: typing.Optional[typing.Union[bytes, typing.Iterator[bytes], typing.AsyncIterator[bytes]]] = None,
183
+ files: typing.Optional[typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]] = None,
184
+ headers: typing.Optional[typing.Dict[str, typing.Any]] = None,
185
+ request_options: typing.Optional[RequestOptions] = None,
186
+ retries: int = 0,
187
+ omit: typing.Optional[typing.Any] = None,
188
+ ) -> httpx.Response:
189
+ base_url = self.get_base_url(base_url)
190
+ timeout = (
191
+ request_options.get("timeout_in_seconds")
192
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
193
+ else self.base_timeout()
194
+ )
195
+
196
+ json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit)
197
+
198
+ response = self.httpx_client.request(
199
+ method=method,
200
+ url=urllib.parse.urljoin(f"{base_url}/", path),
201
+ headers=jsonable_encoder(
202
+ remove_none_from_dict(
203
+ {
204
+ **self.base_headers(),
205
+ **(headers if headers is not None else {}),
206
+ **(request_options.get("additional_headers", {}) or {} if request_options is not None else {}),
207
+ }
208
+ )
209
+ ),
210
+ params=encode_query(
211
+ jsonable_encoder(
212
+ remove_none_from_dict(
213
+ remove_omit_from_dict(
214
+ {
215
+ **(params if params is not None else {}),
216
+ **(
217
+ request_options.get("additional_query_parameters", {}) or {}
218
+ if request_options is not None
219
+ else {}
220
+ ),
221
+ },
222
+ omit,
223
+ )
224
+ )
225
+ )
226
+ ),
227
+ json=json_body,
228
+ data=data_body,
229
+ content=content,
230
+ files=(
231
+ convert_file_dict_to_httpx_tuples(remove_omit_from_dict(remove_none_from_dict(files), omit))
232
+ if (files is not None and files is not omit)
233
+ else None
234
+ ),
235
+ timeout=timeout,
236
+ )
237
+
238
+ max_retries: int = request_options.get("max_retries", 0) if request_options is not None else 0
239
+ if _should_retry(response=response):
240
+ if max_retries > retries:
241
+ time.sleep(_retry_timeout(response=response, retries=retries))
242
+ return self.request(
243
+ path=path,
244
+ method=method,
245
+ base_url=base_url,
246
+ params=params,
247
+ json=json,
248
+ content=content,
249
+ files=files,
250
+ headers=headers,
251
+ request_options=request_options,
252
+ retries=retries + 1,
253
+ omit=omit,
254
+ )
255
+
256
+ return response
257
+
258
+ @contextmanager
259
+ def stream(
260
+ self,
261
+ path: typing.Optional[str] = None,
262
+ *,
263
+ method: str,
264
+ base_url: typing.Optional[str] = None,
265
+ params: typing.Optional[typing.Dict[str, typing.Any]] = None,
266
+ json: typing.Optional[typing.Any] = None,
267
+ data: typing.Optional[typing.Any] = None,
268
+ content: typing.Optional[typing.Union[bytes, typing.Iterator[bytes], typing.AsyncIterator[bytes]]] = None,
269
+ files: typing.Optional[typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]] = None,
270
+ headers: typing.Optional[typing.Dict[str, typing.Any]] = None,
271
+ request_options: typing.Optional[RequestOptions] = None,
272
+ retries: int = 0,
273
+ omit: typing.Optional[typing.Any] = None,
274
+ ) -> typing.Iterator[httpx.Response]:
275
+ base_url = self.get_base_url(base_url)
276
+ timeout = (
277
+ request_options.get("timeout_in_seconds")
278
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
279
+ else self.base_timeout()
280
+ )
281
+
282
+ json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit)
283
+
284
+ with self.httpx_client.stream(
285
+ method=method,
286
+ url=urllib.parse.urljoin(f"{base_url}/", path),
287
+ headers=jsonable_encoder(
288
+ remove_none_from_dict(
289
+ {
290
+ **self.base_headers(),
291
+ **(headers if headers is not None else {}),
292
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
293
+ }
294
+ )
295
+ ),
296
+ params=encode_query(
297
+ jsonable_encoder(
298
+ remove_none_from_dict(
299
+ remove_omit_from_dict(
300
+ {
301
+ **(params if params is not None else {}),
302
+ **(
303
+ request_options.get("additional_query_parameters", {})
304
+ if request_options is not None
305
+ else {}
306
+ ),
307
+ },
308
+ omit,
309
+ )
310
+ )
311
+ )
312
+ ),
313
+ json=json_body,
314
+ data=data_body,
315
+ content=content,
316
+ files=(
317
+ convert_file_dict_to_httpx_tuples(remove_omit_from_dict(remove_none_from_dict(files), omit))
318
+ if (files is not None and files is not omit)
319
+ else None
320
+ ),
321
+ timeout=timeout,
322
+ ) as stream:
323
+ yield stream
324
+
325
+
326
+ class AsyncHttpClient:
327
+ def __init__(
328
+ self,
329
+ *,
330
+ httpx_client: httpx.AsyncClient,
331
+ base_timeout: typing.Callable[[], typing.Optional[float]],
332
+ base_headers: typing.Callable[[], typing.Dict[str, str]],
333
+ base_url: typing.Optional[typing.Callable[[], str]] = None,
334
+ ):
335
+ self.base_url = base_url
336
+ self.base_timeout = base_timeout
337
+ self.base_headers = base_headers
338
+ self.httpx_client = httpx_client
339
+
340
+ def get_base_url(self, maybe_base_url: typing.Optional[str]) -> str:
341
+ base_url = maybe_base_url
342
+ if self.base_url is not None and base_url is None:
343
+ base_url = self.base_url()
344
+
345
+ if base_url is None:
346
+ raise ValueError("A base_url is required to make this request, please provide one and try again.")
347
+ return base_url
348
+
349
+ async def request(
350
+ self,
351
+ path: typing.Optional[str] = None,
352
+ *,
353
+ method: str,
354
+ base_url: typing.Optional[str] = None,
355
+ params: typing.Optional[typing.Dict[str, typing.Any]] = None,
356
+ json: typing.Optional[typing.Any] = None,
357
+ data: typing.Optional[typing.Any] = None,
358
+ content: typing.Optional[typing.Union[bytes, typing.Iterator[bytes], typing.AsyncIterator[bytes]]] = None,
359
+ files: typing.Optional[typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]] = None,
360
+ headers: typing.Optional[typing.Dict[str, typing.Any]] = None,
361
+ request_options: typing.Optional[RequestOptions] = None,
362
+ retries: int = 0,
363
+ omit: typing.Optional[typing.Any] = None,
364
+ ) -> httpx.Response:
365
+ base_url = self.get_base_url(base_url)
366
+ timeout = (
367
+ request_options.get("timeout_in_seconds")
368
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
369
+ else self.base_timeout()
370
+ )
371
+
372
+ json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit)
373
+
374
+ # Add the input to each of these and do None-safety checks
375
+ response = await self.httpx_client.request(
376
+ method=method,
377
+ url=urllib.parse.urljoin(f"{base_url}/", path),
378
+ headers=jsonable_encoder(
379
+ remove_none_from_dict(
380
+ {
381
+ **self.base_headers(),
382
+ **(headers if headers is not None else {}),
383
+ **(request_options.get("additional_headers", {}) or {} if request_options is not None else {}),
384
+ }
385
+ )
386
+ ),
387
+ params=encode_query(
388
+ jsonable_encoder(
389
+ remove_none_from_dict(
390
+ remove_omit_from_dict(
391
+ {
392
+ **(params if params is not None else {}),
393
+ **(
394
+ request_options.get("additional_query_parameters", {}) or {}
395
+ if request_options is not None
396
+ else {}
397
+ ),
398
+ },
399
+ omit,
400
+ )
401
+ )
402
+ )
403
+ ),
404
+ json=json_body,
405
+ data=data_body,
406
+ content=content,
407
+ files=(
408
+ convert_file_dict_to_httpx_tuples(remove_omit_from_dict(remove_none_from_dict(files), omit))
409
+ if files is not None
410
+ else None
411
+ ),
412
+ timeout=timeout,
413
+ )
414
+
415
+ max_retries: int = request_options.get("max_retries", 0) if request_options is not None else 0
416
+ if _should_retry(response=response):
417
+ if max_retries > retries:
418
+ await asyncio.sleep(_retry_timeout(response=response, retries=retries))
419
+ return await self.request(
420
+ path=path,
421
+ method=method,
422
+ base_url=base_url,
423
+ params=params,
424
+ json=json,
425
+ content=content,
426
+ files=files,
427
+ headers=headers,
428
+ request_options=request_options,
429
+ retries=retries + 1,
430
+ omit=omit,
431
+ )
432
+ return response
433
+
434
+ @asynccontextmanager
435
+ async def stream(
436
+ self,
437
+ path: typing.Optional[str] = None,
438
+ *,
439
+ method: str,
440
+ base_url: typing.Optional[str] = None,
441
+ params: typing.Optional[typing.Dict[str, typing.Any]] = None,
442
+ json: typing.Optional[typing.Any] = None,
443
+ data: typing.Optional[typing.Any] = None,
444
+ content: typing.Optional[typing.Union[bytes, typing.Iterator[bytes], typing.AsyncIterator[bytes]]] = None,
445
+ files: typing.Optional[typing.Dict[str, typing.Optional[typing.Union[File, typing.List[File]]]]] = None,
446
+ headers: typing.Optional[typing.Dict[str, typing.Any]] = None,
447
+ request_options: typing.Optional[RequestOptions] = None,
448
+ retries: int = 0,
449
+ omit: typing.Optional[typing.Any] = None,
450
+ ) -> typing.AsyncIterator[httpx.Response]:
451
+ base_url = self.get_base_url(base_url)
452
+ timeout = (
453
+ request_options.get("timeout_in_seconds")
454
+ if request_options is not None and request_options.get("timeout_in_seconds") is not None
455
+ else self.base_timeout()
456
+ )
457
+
458
+ json_body, data_body = get_request_body(json=json, data=data, request_options=request_options, omit=omit)
459
+
460
+ async with self.httpx_client.stream(
461
+ method=method,
462
+ url=urllib.parse.urljoin(f"{base_url}/", path),
463
+ headers=jsonable_encoder(
464
+ remove_none_from_dict(
465
+ {
466
+ **self.base_headers(),
467
+ **(headers if headers is not None else {}),
468
+ **(request_options.get("additional_headers", {}) if request_options is not None else {}),
469
+ }
470
+ )
471
+ ),
472
+ params=encode_query(
473
+ jsonable_encoder(
474
+ remove_none_from_dict(
475
+ remove_omit_from_dict(
476
+ {
477
+ **(params if params is not None else {}),
478
+ **(
479
+ request_options.get("additional_query_parameters", {})
480
+ if request_options is not None
481
+ else {}
482
+ ),
483
+ },
484
+ omit=omit,
485
+ )
486
+ )
487
+ )
488
+ ),
489
+ json=json_body,
490
+ data=data_body,
491
+ content=content,
492
+ files=(
493
+ convert_file_dict_to_httpx_tuples(remove_omit_from_dict(remove_none_from_dict(files), omit))
494
+ if files is not None
495
+ else None
496
+ ),
497
+ timeout=timeout,
498
+ ) as stream:
499
+ yield stream
@@ -0,0 +1,101 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ """
4
+ jsonable_encoder converts a Python object to a JSON-friendly dict
5
+ (e.g. datetimes to strings, Pydantic models to dicts).
6
+
7
+ Taken from FastAPI, and made a bit simpler
8
+ https://github.com/tiangolo/fastapi/blob/master/fastapi/encoders.py
9
+ """
10
+
11
+ import base64
12
+ import dataclasses
13
+ import datetime as dt
14
+ from enum import Enum
15
+ from pathlib import PurePath
16
+ from types import GeneratorType
17
+ from typing import Any, Callable, Dict, List, Optional, Set, Union
18
+
19
+ import pydantic
20
+
21
+ from .datetime_utils import serialize_datetime
22
+ from .pydantic_utilities import (
23
+ IS_PYDANTIC_V2,
24
+ encode_by_type,
25
+ to_jsonable_with_fallback,
26
+ )
27
+
28
+ SetIntStr = Set[Union[int, str]]
29
+ DictIntStrAny = Dict[Union[int, str], Any]
30
+
31
+
32
+ def jsonable_encoder(obj: Any, custom_encoder: Optional[Dict[Any, Callable[[Any], Any]]] = None) -> Any:
33
+ custom_encoder = custom_encoder or {}
34
+ if custom_encoder:
35
+ if type(obj) in custom_encoder:
36
+ return custom_encoder[type(obj)](obj)
37
+ else:
38
+ for encoder_type, encoder_instance in custom_encoder.items():
39
+ if isinstance(obj, encoder_type):
40
+ return encoder_instance(obj)
41
+ if isinstance(obj, pydantic.BaseModel):
42
+ if IS_PYDANTIC_V2:
43
+ encoder = getattr(obj.model_config, "json_encoders", {}) # type: ignore # Pydantic v2
44
+ else:
45
+ encoder = getattr(obj.__config__, "json_encoders", {}) # type: ignore # Pydantic v1
46
+ if custom_encoder:
47
+ encoder.update(custom_encoder)
48
+ obj_dict = obj.dict(by_alias=True)
49
+ if "__root__" in obj_dict:
50
+ obj_dict = obj_dict["__root__"]
51
+ if "root" in obj_dict:
52
+ obj_dict = obj_dict["root"]
53
+ return jsonable_encoder(obj_dict, custom_encoder=encoder)
54
+ if dataclasses.is_dataclass(obj):
55
+ obj_dict = dataclasses.asdict(obj) # type: ignore
56
+ return jsonable_encoder(obj_dict, custom_encoder=custom_encoder)
57
+ if isinstance(obj, bytes):
58
+ return base64.b64encode(obj).decode("utf-8")
59
+ if isinstance(obj, Enum):
60
+ return obj.value
61
+ if isinstance(obj, PurePath):
62
+ return str(obj)
63
+ if isinstance(obj, (str, int, float, type(None))):
64
+ return obj
65
+ if isinstance(obj, dt.datetime):
66
+ return serialize_datetime(obj)
67
+ if isinstance(obj, dt.date):
68
+ return str(obj)
69
+ if isinstance(obj, dict):
70
+ encoded_dict = {}
71
+ allowed_keys = set(obj.keys())
72
+ for key, value in obj.items():
73
+ if key in allowed_keys:
74
+ encoded_key = jsonable_encoder(key, custom_encoder=custom_encoder)
75
+ encoded_value = jsonable_encoder(value, custom_encoder=custom_encoder)
76
+ encoded_dict[encoded_key] = encoded_value
77
+ return encoded_dict
78
+ if isinstance(obj, (list, set, frozenset, GeneratorType, tuple)):
79
+ encoded_list = []
80
+ for item in obj:
81
+ encoded_list.append(jsonable_encoder(item, custom_encoder=custom_encoder))
82
+ return encoded_list
83
+
84
+ def fallback_serializer(o: Any) -> Any:
85
+ attempt_encode = encode_by_type(o)
86
+ if attempt_encode is not None:
87
+ return attempt_encode
88
+
89
+ try:
90
+ data = dict(o)
91
+ except Exception as e:
92
+ errors: List[Exception] = []
93
+ errors.append(e)
94
+ try:
95
+ data = vars(o)
96
+ except Exception as e:
97
+ errors.append(e)
98
+ raise ValueError(errors) from e
99
+ return jsonable_encoder(data, custom_encoder=custom_encoder)
100
+
101
+ return to_jsonable_with_fallback(obj, fallback_serializer)