letta-client 0.1.232__py3-none-any.whl → 0.1.234__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.

Potentially problematic release.


This version of letta-client might be problematic. Click here for more details.

Files changed (440) hide show
  1. letta_client/__init__.py +4 -0
  2. letta_client/agents/__init__.py +2 -0
  3. letta_client/agents/blocks/__init__.py +2 -0
  4. letta_client/agents/blocks/client.py +72 -313
  5. letta_client/agents/blocks/raw_client.py +654 -0
  6. letta_client/agents/client.py +329 -869
  7. letta_client/agents/context/__init__.py +2 -0
  8. letta_client/agents/context/client.py +31 -66
  9. letta_client/agents/context/raw_client.py +122 -0
  10. letta_client/agents/core_memory/__init__.py +2 -0
  11. letta_client/agents/core_memory/client.py +31 -66
  12. letta_client/agents/core_memory/raw_client.py +124 -0
  13. letta_client/agents/files/__init__.py +2 -0
  14. letta_client/agents/files/client.py +39 -178
  15. letta_client/agents/files/raw_client.py +349 -0
  16. letta_client/agents/folders/__init__.py +2 -0
  17. letta_client/agents/folders/client.py +39 -178
  18. letta_client/agents/folders/raw_client.py +327 -0
  19. letta_client/agents/groups/__init__.py +2 -0
  20. letta_client/agents/groups/client.py +31 -72
  21. letta_client/agents/groups/raw_client.py +142 -0
  22. letta_client/agents/memory_variables/__init__.py +2 -0
  23. letta_client/agents/memory_variables/client.py +31 -65
  24. letta_client/agents/memory_variables/raw_client.py +125 -0
  25. letta_client/agents/memory_variables/types/__init__.py +2 -0
  26. letta_client/agents/memory_variables/types/memory_variables_list_response.py +3 -2
  27. letta_client/agents/messages/__init__.py +2 -0
  28. letta_client/agents/messages/client.py +150 -589
  29. letta_client/agents/messages/raw_client.py +1384 -0
  30. letta_client/agents/messages/types/__init__.py +2 -0
  31. letta_client/agents/messages/types/letta_streaming_response.py +6 -5
  32. letta_client/agents/messages/types/messages_modify_request.py +3 -2
  33. letta_client/agents/messages/types/messages_modify_response.py +5 -4
  34. letta_client/agents/messages/types/messages_preview_raw_payload_request.py +1 -0
  35. letta_client/agents/passages/__init__.py +2 -0
  36. letta_client/agents/passages/client.py +89 -301
  37. letta_client/agents/passages/raw_client.py +678 -0
  38. letta_client/agents/raw_client.py +2068 -0
  39. letta_client/agents/sources/__init__.py +2 -0
  40. letta_client/agents/sources/client.py +39 -178
  41. letta_client/agents/sources/raw_client.py +327 -0
  42. letta_client/agents/templates/__init__.py +2 -0
  43. letta_client/agents/templates/client.py +57 -276
  44. letta_client/agents/templates/raw_client.py +505 -0
  45. letta_client/agents/templates/types/__init__.py +2 -0
  46. letta_client/agents/templates/types/templates_create_response.py +5 -4
  47. letta_client/agents/templates/types/templates_migrate_response.py +3 -2
  48. letta_client/agents/tools/__init__.py +2 -0
  49. letta_client/agents/tools/client.py +40 -179
  50. letta_client/agents/tools/raw_client.py +327 -0
  51. letta_client/agents/types/__init__.py +2 -0
  52. letta_client/agents/types/agents_search_request_search_item.py +4 -3
  53. letta_client/agents/types/agents_search_request_search_item_field.py +4 -3
  54. letta_client/agents/types/agents_search_request_search_item_one.py +4 -3
  55. letta_client/agents/types/agents_search_request_search_item_three.py +3 -2
  56. letta_client/agents/types/agents_search_request_search_item_two.py +3 -2
  57. letta_client/agents/types/agents_search_request_search_item_zero.py +3 -2
  58. letta_client/agents/types/agents_search_response.py +5 -4
  59. letta_client/agents/types/create_agent_request_response_format.py +1 -0
  60. letta_client/agents/types/create_agent_request_tool_rules_item.py +4 -3
  61. letta_client/agents/types/update_agent_response_format.py +1 -0
  62. letta_client/agents/types/update_agent_tool_rules_item.py +4 -3
  63. letta_client/base_client.py +41 -49
  64. letta_client/batches/__init__.py +2 -0
  65. letta_client/batches/client.py +45 -253
  66. letta_client/batches/raw_client.py +457 -0
  67. letta_client/blocks/__init__.py +2 -0
  68. letta_client/blocks/agents/__init__.py +2 -0
  69. letta_client/blocks/agents/client.py +33 -70
  70. letta_client/blocks/agents/raw_client.py +144 -0
  71. letta_client/blocks/client.py +126 -424
  72. letta_client/blocks/raw_client.py +973 -0
  73. letta_client/client_side_access_tokens/__init__.py +2 -0
  74. letta_client/client_side_access_tokens/client.py +45 -216
  75. letta_client/client_side_access_tokens/raw_client.py +435 -0
  76. letta_client/client_side_access_tokens/types/__init__.py +2 -0
  77. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_request_policy_item.py +4 -3
  78. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response.py +6 -5
  79. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy.py +4 -3
  80. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy_data_item.py +4 -3
  81. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response.py +6 -5
  82. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item.py +6 -5
  83. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy.py +4 -3
  84. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy_data_item.py +4 -3
  85. letta_client/core/__init__.py +5 -0
  86. letta_client/core/api_error.py +13 -5
  87. letta_client/core/client_wrapper.py +14 -5
  88. letta_client/core/force_multipart.py +16 -0
  89. letta_client/core/http_client.py +70 -26
  90. letta_client/core/http_response.py +55 -0
  91. letta_client/core/jsonable_encoder.py +0 -1
  92. letta_client/core/pydantic_utilities.py +70 -111
  93. letta_client/core/serialization.py +7 -3
  94. letta_client/core/unchecked_base_model.py +40 -4
  95. letta_client/embedding_models/__init__.py +2 -0
  96. letta_client/embedding_models/client.py +31 -65
  97. letta_client/embedding_models/raw_client.py +117 -0
  98. letta_client/errors/__init__.py +2 -0
  99. letta_client/errors/bad_request_error.py +4 -3
  100. letta_client/errors/conflict_error.py +4 -2
  101. letta_client/errors/internal_server_error.py +4 -3
  102. letta_client/errors/not_found_error.py +4 -3
  103. letta_client/errors/payment_required_error.py +4 -2
  104. letta_client/errors/unprocessable_entity_error.py +4 -2
  105. letta_client/folders/__init__.py +2 -0
  106. letta_client/folders/client.py +100 -564
  107. letta_client/folders/files/__init__.py +2 -0
  108. letta_client/folders/files/client.py +44 -189
  109. letta_client/folders/files/raw_client.py +391 -0
  110. letta_client/folders/passages/__init__.py +2 -0
  111. letta_client/folders/passages/client.py +33 -74
  112. letta_client/folders/passages/raw_client.py +162 -0
  113. letta_client/folders/raw_client.py +1084 -0
  114. letta_client/groups/__init__.py +2 -0
  115. letta_client/groups/client.py +87 -406
  116. letta_client/groups/messages/__init__.py +2 -0
  117. letta_client/groups/messages/client.py +110 -371
  118. letta_client/groups/messages/raw_client.py +881 -0
  119. letta_client/groups/messages/types/__init__.py +2 -0
  120. letta_client/groups/messages/types/letta_streaming_response.py +5 -4
  121. letta_client/groups/messages/types/messages_modify_request.py +3 -2
  122. letta_client/groups/messages/types/messages_modify_response.py +5 -4
  123. letta_client/groups/raw_client.py +807 -0
  124. letta_client/groups/types/__init__.py +2 -0
  125. letta_client/groups/types/group_create_manager_config.py +1 -0
  126. letta_client/groups/types/group_update_manager_config.py +1 -0
  127. letta_client/health/__init__.py +2 -0
  128. letta_client/health/client.py +31 -43
  129. letta_client/health/raw_client.py +85 -0
  130. letta_client/identities/__init__.py +2 -0
  131. letta_client/identities/client.py +115 -498
  132. letta_client/identities/properties/__init__.py +2 -0
  133. letta_client/identities/properties/client.py +32 -76
  134. letta_client/identities/properties/raw_client.py +152 -0
  135. letta_client/identities/raw_client.py +1010 -0
  136. letta_client/jobs/__init__.py +2 -0
  137. letta_client/jobs/client.py +67 -310
  138. letta_client/jobs/raw_client.py +624 -0
  139. letta_client/messages/__init__.py +2 -0
  140. letta_client/messages/client.py +41 -74
  141. letta_client/messages/raw_client.py +186 -0
  142. letta_client/models/__init__.py +2 -0
  143. letta_client/models/client.py +39 -73
  144. letta_client/models/raw_client.py +151 -0
  145. letta_client/projects/__init__.py +2 -0
  146. letta_client/projects/client.py +31 -53
  147. letta_client/projects/raw_client.py +125 -0
  148. letta_client/projects/types/__init__.py +2 -0
  149. letta_client/projects/types/projects_list_response.py +5 -4
  150. letta_client/projects/types/projects_list_response_projects_item.py +3 -2
  151. letta_client/providers/__init__.py +2 -0
  152. letta_client/providers/client.py +62 -335
  153. letta_client/providers/raw_client.py +664 -0
  154. letta_client/runs/__init__.py +2 -0
  155. letta_client/runs/client.py +56 -258
  156. letta_client/runs/messages/__init__.py +2 -0
  157. letta_client/runs/messages/client.py +34 -79
  158. letta_client/runs/messages/raw_client.py +209 -0
  159. letta_client/runs/raw_client.py +440 -0
  160. letta_client/runs/steps/__init__.py +2 -0
  161. letta_client/runs/steps/client.py +33 -76
  162. letta_client/runs/steps/raw_client.py +192 -0
  163. letta_client/runs/usage/__init__.py +2 -0
  164. letta_client/runs/usage/client.py +31 -66
  165. letta_client/runs/usage/raw_client.py +122 -0
  166. letta_client/sources/__init__.py +2 -0
  167. letta_client/sources/client.py +107 -625
  168. letta_client/sources/files/__init__.py +2 -0
  169. letta_client/sources/files/client.py +44 -189
  170. letta_client/sources/files/raw_client.py +391 -0
  171. letta_client/sources/passages/__init__.py +2 -0
  172. letta_client/sources/passages/client.py +33 -74
  173. letta_client/sources/passages/raw_client.py +162 -0
  174. letta_client/sources/raw_client.py +1209 -0
  175. letta_client/steps/__init__.py +2 -0
  176. letta_client/steps/client.py +65 -153
  177. letta_client/steps/feedback/__init__.py +2 -0
  178. letta_client/steps/feedback/client.py +32 -73
  179. letta_client/steps/feedback/raw_client.py +141 -0
  180. letta_client/steps/raw_client.py +355 -0
  181. letta_client/steps/types/__init__.py +2 -0
  182. letta_client/tags/__init__.py +2 -0
  183. letta_client/tags/client.py +33 -73
  184. letta_client/tags/raw_client.py +148 -0
  185. letta_client/telemetry/__init__.py +2 -0
  186. letta_client/telemetry/client.py +31 -66
  187. letta_client/telemetry/raw_client.py +118 -0
  188. letta_client/templates/__init__.py +2 -0
  189. letta_client/templates/agents/__init__.py +2 -0
  190. letta_client/templates/agents/client.py +48 -96
  191. letta_client/templates/agents/raw_client.py +227 -0
  192. letta_client/templates/agents/types/__init__.py +2 -0
  193. letta_client/templates/agents/types/agents_create_request_initial_message_sequence_item.py +4 -3
  194. letta_client/templates/agents/types/agents_create_response.py +4 -3
  195. letta_client/templates/client.py +36 -57
  196. letta_client/templates/raw_client.py +133 -0
  197. letta_client/templates/types/__init__.py +2 -0
  198. letta_client/templates/types/templates_list_response.py +5 -4
  199. letta_client/templates/types/templates_list_response_templates_item.py +3 -2
  200. letta_client/tools/__init__.py +2 -0
  201. letta_client/tools/client.py +195 -1322
  202. letta_client/tools/raw_client.py +2565 -0
  203. letta_client/tools/types/__init__.py +2 -0
  204. letta_client/tools/types/add_mcp_server_request.py +2 -1
  205. letta_client/tools/types/add_mcp_server_response_item.py +2 -1
  206. letta_client/tools/types/connect_mcp_server_request.py +2 -1
  207. letta_client/tools/types/delete_mcp_server_response_item.py +2 -1
  208. letta_client/tools/types/list_mcp_servers_response_value.py +1 -0
  209. letta_client/tools/types/streaming_response.py +5 -4
  210. letta_client/tools/types/test_mcp_server_request.py +2 -1
  211. letta_client/tools/types/update_mcp_server_request.py +2 -1
  212. letta_client/tools/types/update_mcp_server_response.py +2 -1
  213. letta_client/types/__init__.py +4 -0
  214. letta_client/types/action_model.py +6 -5
  215. letta_client/types/action_parameters_model.py +3 -2
  216. letta_client/types/action_response_model.py +3 -2
  217. letta_client/types/agent_environment_variable.py +3 -2
  218. letta_client/types/agent_schema.py +7 -6
  219. letta_client/types/agent_schema_tool_rules_item.py +2 -1
  220. letta_client/types/agent_state.py +9 -8
  221. letta_client/types/agent_state_response_format.py +1 -0
  222. letta_client/types/agent_state_tool_rules_item.py +4 -3
  223. letta_client/types/app_auth_scheme.py +4 -3
  224. letta_client/types/app_model.py +5 -4
  225. letta_client/types/assistant_message.py +3 -2
  226. letta_client/types/assistant_message_content.py +1 -0
  227. letta_client/types/audio.py +3 -2
  228. letta_client/types/auth_request.py +2 -1
  229. letta_client/types/auth_response.py +5 -4
  230. letta_client/types/auth_scheme_field.py +3 -2
  231. letta_client/types/bad_request_error_body.py +3 -2
  232. letta_client/types/base_64_image.py +2 -1
  233. letta_client/types/base_tool_rule_schema.py +3 -2
  234. letta_client/types/batch_job.py +4 -3
  235. letta_client/types/block.py +3 -2
  236. letta_client/types/block_update.py +2 -1
  237. letta_client/types/chat_completion_assistant_message_param.py +5 -4
  238. letta_client/types/chat_completion_assistant_message_param_content.py +1 -0
  239. letta_client/types/chat_completion_assistant_message_param_content_item.py +2 -1
  240. letta_client/types/chat_completion_audio_param.py +4 -3
  241. letta_client/types/chat_completion_content_part_image_param.py +4 -3
  242. letta_client/types/chat_completion_content_part_input_audio_param.py +4 -3
  243. letta_client/types/chat_completion_content_part_refusal_param.py +3 -2
  244. letta_client/types/chat_completion_content_part_text_param.py +3 -2
  245. letta_client/types/chat_completion_developer_message_param.py +4 -3
  246. letta_client/types/chat_completion_developer_message_param_content.py +1 -0
  247. letta_client/types/chat_completion_function_call_option_param.py +3 -2
  248. letta_client/types/chat_completion_function_message_param.py +3 -2
  249. letta_client/types/chat_completion_message_tool_call.py +4 -3
  250. letta_client/types/chat_completion_message_tool_call_param.py +4 -3
  251. letta_client/types/chat_completion_named_tool_choice_param.py +4 -3
  252. letta_client/types/chat_completion_prediction_content_param.py +4 -3
  253. letta_client/types/chat_completion_prediction_content_param_content.py +1 -0
  254. letta_client/types/chat_completion_stream_options_param.py +3 -2
  255. letta_client/types/chat_completion_system_message_param.py +4 -3
  256. letta_client/types/chat_completion_system_message_param_content.py +1 -0
  257. letta_client/types/chat_completion_tool_message_param.py +4 -3
  258. letta_client/types/chat_completion_tool_message_param_content.py +1 -0
  259. letta_client/types/chat_completion_tool_param.py +4 -3
  260. letta_client/types/chat_completion_user_message_param.py +4 -3
  261. letta_client/types/chat_completion_user_message_param_content.py +1 -0
  262. letta_client/types/chat_completion_user_message_param_content_item.py +2 -1
  263. letta_client/types/child_tool_rule.py +3 -2
  264. letta_client/types/child_tool_rule_schema.py +3 -2
  265. letta_client/types/code_input.py +3 -2
  266. letta_client/types/completion_create_params_non_streaming.py +10 -9
  267. letta_client/types/completion_create_params_non_streaming_function_call.py +1 -0
  268. letta_client/types/completion_create_params_non_streaming_messages_item.py +4 -3
  269. letta_client/types/completion_create_params_non_streaming_response_format.py +3 -2
  270. letta_client/types/completion_create_params_non_streaming_tool_choice.py +1 -0
  271. letta_client/types/completion_create_params_streaming.py +10 -9
  272. letta_client/types/completion_create_params_streaming_function_call.py +1 -0
  273. letta_client/types/completion_create_params_streaming_messages_item.py +4 -3
  274. letta_client/types/completion_create_params_streaming_response_format.py +3 -2
  275. letta_client/types/completion_create_params_streaming_tool_choice.py +1 -0
  276. letta_client/types/conditional_tool_rule.py +3 -2
  277. letta_client/types/conditional_tool_rule_schema.py +3 -2
  278. letta_client/types/conflict_error_body.py +3 -2
  279. letta_client/types/context_window_overview.py +4 -3
  280. letta_client/types/continue_tool_rule.py +3 -2
  281. letta_client/types/core_memory_block_schema.py +4 -3
  282. letta_client/types/create_block.py +3 -2
  283. letta_client/types/dynamic_manager.py +2 -1
  284. letta_client/types/dynamic_manager_update.py +2 -1
  285. letta_client/types/e_2_b_sandbox_config.py +2 -1
  286. letta_client/types/embedding_config.py +4 -3
  287. letta_client/types/file.py +4 -3
  288. letta_client/types/file_block.py +4 -3
  289. letta_client/types/file_file.py +3 -2
  290. letta_client/types/file_metadata.py +5 -4
  291. letta_client/types/file_stats.py +3 -2
  292. letta_client/types/folder.py +5 -4
  293. letta_client/types/function_call.py +3 -2
  294. letta_client/types/function_definition_input.py +3 -2
  295. letta_client/types/function_definition_output.py +3 -2
  296. letta_client/types/function_output.py +3 -2
  297. letta_client/types/function_tool.py +4 -3
  298. letta_client/types/generate_tool_input.py +3 -2
  299. letta_client/types/generate_tool_output.py +4 -3
  300. letta_client/types/group.py +4 -3
  301. letta_client/types/health.py +3 -2
  302. letta_client/types/hidden_reasoning_message.py +4 -3
  303. letta_client/types/http_validation_error.py +4 -3
  304. letta_client/types/identity.py +4 -3
  305. letta_client/types/identity_property.py +5 -4
  306. letta_client/types/image_content.py +3 -2
  307. letta_client/types/image_content_source.py +1 -0
  308. letta_client/types/image_url.py +4 -3
  309. letta_client/types/init_tool_rule.py +3 -2
  310. letta_client/types/input_audio.py +4 -3
  311. letta_client/types/internal_server_error_body.py +3 -2
  312. letta_client/types/job.py +4 -3
  313. letta_client/types/json_object_response_format.py +3 -2
  314. letta_client/types/json_schema.py +4 -3
  315. letta_client/types/json_schema_response_format.py +2 -1
  316. letta_client/types/letta_batch_messages.py +4 -3
  317. letta_client/types/letta_batch_request.py +4 -3
  318. letta_client/types/letta_image.py +2 -1
  319. letta_client/types/letta_message_content_union.py +4 -3
  320. letta_client/types/letta_message_union.py +5 -4
  321. letta_client/types/letta_ping.py +2 -1
  322. letta_client/types/letta_request.py +4 -3
  323. letta_client/types/letta_request_config.py +3 -2
  324. letta_client/types/letta_response.py +4 -3
  325. letta_client/types/letta_stop_reason.py +3 -2
  326. letta_client/types/letta_streaming_request.py +9 -3
  327. letta_client/types/letta_usage_statistics.py +3 -2
  328. letta_client/types/letta_user_message_content_union.py +2 -1
  329. letta_client/types/llm_config.py +6 -5
  330. letta_client/types/local_sandbox_config.py +3 -2
  331. letta_client/types/max_count_per_step_tool_rule.py +3 -2
  332. letta_client/types/max_count_per_step_tool_rule_schema.py +3 -2
  333. letta_client/types/mcp_tool.py +4 -3
  334. letta_client/types/memory.py +4 -3
  335. letta_client/types/message.py +6 -5
  336. letta_client/types/message_content_item.py +1 -0
  337. letta_client/types/message_create.py +5 -4
  338. letta_client/types/message_create_content.py +1 -0
  339. letta_client/types/message_schema.py +4 -3
  340. letta_client/types/modal_sandbox_config.py +28 -0
  341. letta_client/types/not_found_error_body.py +3 -2
  342. letta_client/types/omitted_reasoning_content.py +3 -2
  343. letta_client/types/openai_types_chat_chat_completion_message_tool_call_param_function.py +3 -2
  344. letta_client/types/openai_types_chat_chat_completion_named_tool_choice_param_function.py +3 -2
  345. letta_client/types/openai_types_chat_completion_create_params_function.py +3 -2
  346. letta_client/types/organization.py +3 -2
  347. letta_client/types/organization_create.py +2 -1
  348. letta_client/types/organization_sources_stats.py +3 -2
  349. letta_client/types/organization_update.py +2 -1
  350. letta_client/types/parameter_properties.py +3 -2
  351. letta_client/types/parameters_schema.py +4 -3
  352. letta_client/types/parent_tool_rule.py +3 -2
  353. letta_client/types/passage.py +4 -3
  354. letta_client/types/payment_required_error_body.py +3 -2
  355. letta_client/types/pip_requirement.py +3 -2
  356. letta_client/types/provider.py +5 -4
  357. letta_client/types/provider_check.py +4 -3
  358. letta_client/types/provider_trace.py +3 -2
  359. letta_client/types/reasoning_content.py +2 -1
  360. letta_client/types/reasoning_message.py +4 -3
  361. letta_client/types/redacted_reasoning_content.py +2 -1
  362. letta_client/types/required_before_exit_tool_rule.py +3 -2
  363. letta_client/types/response_format_json_object.py +3 -2
  364. letta_client/types/response_format_json_schema.py +4 -3
  365. letta_client/types/response_format_text.py +3 -2
  366. letta_client/types/round_robin_manager.py +2 -1
  367. letta_client/types/round_robin_manager_update.py +2 -1
  368. letta_client/types/run.py +4 -3
  369. letta_client/types/sandbox_config.py +4 -3
  370. letta_client/types/sandbox_config_create.py +4 -3
  371. letta_client/types/sandbox_config_create_config.py +4 -2
  372. letta_client/types/sandbox_config_update.py +3 -2
  373. letta_client/types/sandbox_config_update_config.py +4 -2
  374. letta_client/types/sandbox_environment_variable.py +3 -2
  375. letta_client/types/sandbox_environment_variable_create.py +3 -2
  376. letta_client/types/sandbox_environment_variable_update.py +2 -1
  377. letta_client/types/sandbox_type.py +1 -1
  378. letta_client/types/sleeptime_manager.py +2 -1
  379. letta_client/types/sleeptime_manager_update.py +2 -1
  380. letta_client/types/source.py +5 -4
  381. letta_client/types/source_create.py +4 -3
  382. letta_client/types/source_stats.py +4 -3
  383. letta_client/types/source_update.py +3 -2
  384. letta_client/types/sse_server_config.py +4 -3
  385. letta_client/types/stdio_server_config.py +4 -3
  386. letta_client/types/step.py +5 -4
  387. letta_client/types/streamable_http_server_config.py +4 -3
  388. letta_client/types/supervisor_manager.py +2 -1
  389. letta_client/types/supervisor_manager_update.py +2 -1
  390. letta_client/types/system_message.py +2 -1
  391. letta_client/types/tag_schema.py +3 -2
  392. letta_client/types/terminal_tool_rule.py +3 -2
  393. letta_client/types/text_content.py +2 -1
  394. letta_client/types/text_response_format.py +3 -2
  395. letta_client/types/tool.py +5 -4
  396. letta_client/types/tool_annotations.py +4 -3
  397. letta_client/types/tool_call.py +3 -2
  398. letta_client/types/tool_call_content.py +2 -1
  399. letta_client/types/tool_call_delta.py +3 -2
  400. letta_client/types/tool_call_message.py +4 -3
  401. letta_client/types/tool_call_message_tool_call.py +1 -0
  402. letta_client/types/tool_create.py +3 -2
  403. letta_client/types/tool_env_var_schema.py +3 -2
  404. letta_client/types/tool_json_schema.py +4 -3
  405. letta_client/types/tool_return.py +4 -3
  406. letta_client/types/tool_return_content.py +2 -1
  407. letta_client/types/tool_return_message.py +4 -3
  408. letta_client/types/tool_schema.py +5 -4
  409. letta_client/types/tool_type.py +0 -1
  410. letta_client/types/update_assistant_message.py +3 -2
  411. letta_client/types/update_assistant_message_content.py +1 -0
  412. letta_client/types/update_reasoning_message.py +3 -2
  413. letta_client/types/update_ssemcp_server.py +2 -1
  414. letta_client/types/update_stdio_mcp_server.py +3 -2
  415. letta_client/types/update_streamable_httpmcp_server.py +2 -1
  416. letta_client/types/update_system_message.py +2 -1
  417. letta_client/types/update_user_message.py +3 -2
  418. letta_client/types/update_user_message_content.py +1 -0
  419. letta_client/types/url_image.py +2 -1
  420. letta_client/types/usage_statistics.py +5 -4
  421. letta_client/types/usage_statistics_completion_token_details.py +3 -2
  422. letta_client/types/usage_statistics_prompt_token_details.py +3 -2
  423. letta_client/types/user.py +3 -2
  424. letta_client/types/user_create.py +3 -2
  425. letta_client/types/user_message.py +3 -2
  426. letta_client/types/user_message_content.py +1 -0
  427. letta_client/types/user_update.py +3 -2
  428. letta_client/types/validation_error.py +4 -3
  429. letta_client/types/voice_sleeptime_manager.py +2 -1
  430. letta_client/types/voice_sleeptime_manager_update.py +2 -1
  431. letta_client/types/web_search_options.py +4 -3
  432. letta_client/types/web_search_options_user_location.py +4 -3
  433. letta_client/types/web_search_options_user_location_approximate.py +3 -2
  434. letta_client/voice/__init__.py +2 -0
  435. letta_client/voice/client.py +33 -74
  436. letta_client/voice/raw_client.py +154 -0
  437. {letta_client-0.1.232.dist-info → letta_client-0.1.234.dist-info}/METADATA +24 -3
  438. letta_client-0.1.234.dist-info/RECORD +503 -0
  439. letta_client-0.1.232.dist-info/RECORD +0 -454
  440. {letta_client-0.1.232.dist-info → letta_client-0.1.234.dist-info}/WHEEL +0 -0
@@ -1,11 +1,12 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from ..core.unchecked_base_model import UncheckedBaseModel
4
3
  import typing
5
- from .usage_statistics_prompt_token_details import UsageStatisticsPromptTokenDetails
6
- from .usage_statistics_completion_token_details import UsageStatisticsCompletionTokenDetails
7
- from ..core.pydantic_utilities import IS_PYDANTIC_V2
4
+
8
5
  import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ from ..core.unchecked_base_model import UncheckedBaseModel
8
+ from .usage_statistics_completion_token_details import UsageStatisticsCompletionTokenDetails
9
+ from .usage_statistics_prompt_token_details import UsageStatisticsPromptTokenDetails
9
10
 
10
11
 
11
12
  class UsageStatistics(UncheckedBaseModel):
@@ -1,9 +1,10 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from ..core.unchecked_base_model import UncheckedBaseModel
4
3
  import typing
5
- from ..core.pydantic_utilities import IS_PYDANTIC_V2
4
+
6
5
  import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ from ..core.unchecked_base_model import UncheckedBaseModel
7
8
 
8
9
 
9
10
  class UsageStatisticsCompletionTokenDetails(UncheckedBaseModel):
@@ -1,9 +1,10 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from ..core.unchecked_base_model import UncheckedBaseModel
4
3
  import typing
5
- from ..core.pydantic_utilities import IS_PYDANTIC_V2
4
+
6
5
  import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ from ..core.unchecked_base_model import UncheckedBaseModel
7
8
 
8
9
 
9
10
  class UsageStatisticsPromptTokenDetails(UncheckedBaseModel):
@@ -1,10 +1,11 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from ..core.unchecked_base_model import UncheckedBaseModel
3
+ import datetime as dt
4
4
  import typing
5
+
5
6
  import pydantic
6
- import datetime as dt
7
7
  from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
+ from ..core.unchecked_base_model import UncheckedBaseModel
8
9
 
9
10
 
10
11
  class User(UncheckedBaseModel):
@@ -1,9 +1,10 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from ..core.unchecked_base_model import UncheckedBaseModel
3
+ import typing
4
+
4
5
  import pydantic
5
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2
6
- import typing
7
+ from ..core.unchecked_base_model import UncheckedBaseModel
7
8
 
8
9
 
9
10
  class UserCreate(UncheckedBaseModel):
@@ -1,11 +1,12 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from ..core.unchecked_base_model import UncheckedBaseModel
4
3
  import datetime as dt
5
4
  import typing
6
- from .user_message_content import UserMessageContent
5
+
7
6
  import pydantic
8
7
  from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
+ from ..core.unchecked_base_model import UncheckedBaseModel
9
+ from .user_message_content import UserMessageContent
9
10
 
10
11
 
11
12
  class UserMessage(UncheckedBaseModel):
@@ -1,6 +1,7 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  import typing
4
+
4
5
  from .letta_user_message_content_union import LettaUserMessageContentUnion
5
6
 
6
7
  UserMessageContent = typing.Union[typing.List[LettaUserMessageContentUnion], str]
@@ -1,9 +1,10 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from ..core.unchecked_base_model import UncheckedBaseModel
4
- import pydantic
5
3
  import typing
4
+
5
+ import pydantic
6
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ from ..core.unchecked_base_model import UncheckedBaseModel
7
8
 
8
9
 
9
10
  class UserUpdate(UncheckedBaseModel):
@@ -1,10 +1,11 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from ..core.unchecked_base_model import UncheckedBaseModel
4
3
  import typing
5
- from .validation_error_loc_item import ValidationErrorLocItem
6
- from ..core.pydantic_utilities import IS_PYDANTIC_V2
4
+
7
5
  import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ from ..core.unchecked_base_model import UncheckedBaseModel
8
+ from .validation_error_loc_item import ValidationErrorLocItem
8
9
 
9
10
 
10
11
  class ValidationError(UncheckedBaseModel):
@@ -1,9 +1,10 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from ..core.unchecked_base_model import UncheckedBaseModel
4
3
  import typing
4
+
5
5
  import pydantic
6
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ from ..core.unchecked_base_model import UncheckedBaseModel
7
8
 
8
9
 
9
10
  class VoiceSleeptimeManager(UncheckedBaseModel):
@@ -1,9 +1,10 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from ..core.unchecked_base_model import UncheckedBaseModel
4
3
  import typing
4
+
5
5
  import pydantic
6
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ from ..core.unchecked_base_model import UncheckedBaseModel
7
8
 
8
9
 
9
10
  class VoiceSleeptimeManagerUpdate(UncheckedBaseModel):
@@ -1,11 +1,12 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from ..core.unchecked_base_model import UncheckedBaseModel
4
3
  import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ from ..core.unchecked_base_model import UncheckedBaseModel
5
8
  from .web_search_options_search_context_size import WebSearchOptionsSearchContextSize
6
9
  from .web_search_options_user_location import WebSearchOptionsUserLocation
7
- from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
- import pydantic
9
10
 
10
11
 
11
12
  class WebSearchOptions(UncheckedBaseModel):
@@ -1,10 +1,11 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from ..core.unchecked_base_model import UncheckedBaseModel
4
- from .web_search_options_user_location_approximate import WebSearchOptionsUserLocationApproximate
5
3
  import typing
6
- from ..core.pydantic_utilities import IS_PYDANTIC_V2
4
+
7
5
  import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ from ..core.unchecked_base_model import UncheckedBaseModel
8
+ from .web_search_options_user_location_approximate import WebSearchOptionsUserLocationApproximate
8
9
 
9
10
 
10
11
  class WebSearchOptionsUserLocation(UncheckedBaseModel):
@@ -1,9 +1,10 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from ..core.unchecked_base_model import UncheckedBaseModel
4
3
  import typing
5
- from ..core.pydantic_utilities import IS_PYDANTIC_V2
4
+
6
5
  import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ from ..core.unchecked_base_model import UncheckedBaseModel
7
8
 
8
9
 
9
10
  class WebSearchOptionsUserLocationApproximate(UncheckedBaseModel):
@@ -1,2 +1,4 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ # isort: skip_file
4
+
@@ -1,15 +1,10 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  import typing
4
- from ..core.client_wrapper import SyncClientWrapper
4
+
5
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
5
6
  from ..core.request_options import RequestOptions
6
- from ..core.jsonable_encoder import jsonable_encoder
7
- from ..core.unchecked_base_model import construct_type
8
- from ..errors.unprocessable_entity_error import UnprocessableEntityError
9
- from ..types.http_validation_error import HttpValidationError
10
- from json.decoder import JSONDecodeError
11
- from ..core.api_error import ApiError
12
- from ..core.client_wrapper import AsyncClientWrapper
7
+ from .raw_client import AsyncRawVoiceClient, RawVoiceClient
13
8
 
14
9
  # this is used as the default value for optional parameters
15
10
  OMIT = typing.cast(typing.Any, ...)
@@ -17,7 +12,18 @@ OMIT = typing.cast(typing.Any, ...)
17
12
 
18
13
  class VoiceClient:
19
14
  def __init__(self, *, client_wrapper: SyncClientWrapper):
20
- self._client_wrapper = client_wrapper
15
+ self._raw_client = RawVoiceClient(client_wrapper=client_wrapper)
16
+
17
+ @property
18
+ def with_raw_response(self) -> RawVoiceClient:
19
+ """
20
+ Retrieves a raw implementation of this client that returns raw responses.
21
+
22
+ Returns
23
+ -------
24
+ RawVoiceClient
25
+ """
26
+ return self._raw_client
21
27
 
22
28
  def create_voice_chat_completions(
23
29
  self,
@@ -57,44 +63,26 @@ class VoiceClient:
57
63
  request={"key": "value"},
58
64
  )
59
65
  """
60
- _response = self._client_wrapper.httpx_client.request(
61
- f"v1/voice-beta/{jsonable_encoder(agent_id)}/chat/completions",
62
- method="POST",
63
- json=request,
64
- headers={
65
- "user-id": str(user_id) if user_id is not None else None,
66
- },
67
- request_options=request_options,
68
- omit=OMIT,
66
+ _response = self._raw_client.create_voice_chat_completions(
67
+ agent_id, request=request, user_id=user_id, request_options=request_options
69
68
  )
70
- try:
71
- if 200 <= _response.status_code < 300:
72
- return typing.cast(
73
- typing.Optional[typing.Any],
74
- construct_type(
75
- type_=typing.Optional[typing.Any], # type: ignore
76
- object_=_response.json(),
77
- ),
78
- )
79
- if _response.status_code == 422:
80
- raise UnprocessableEntityError(
81
- typing.cast(
82
- HttpValidationError,
83
- construct_type(
84
- type_=HttpValidationError, # type: ignore
85
- object_=_response.json(),
86
- ),
87
- )
88
- )
89
- _response_json = _response.json()
90
- except JSONDecodeError:
91
- raise ApiError(status_code=_response.status_code, body=_response.text)
92
- raise ApiError(status_code=_response.status_code, body=_response_json)
69
+ return _response.data
93
70
 
94
71
 
95
72
  class AsyncVoiceClient:
96
73
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
97
- self._client_wrapper = client_wrapper
74
+ self._raw_client = AsyncRawVoiceClient(client_wrapper=client_wrapper)
75
+
76
+ @property
77
+ def with_raw_response(self) -> AsyncRawVoiceClient:
78
+ """
79
+ Retrieves a raw implementation of this client that returns raw responses.
80
+
81
+ Returns
82
+ -------
83
+ AsyncRawVoiceClient
84
+ """
85
+ return self._raw_client
98
86
 
99
87
  async def create_voice_chat_completions(
100
88
  self,
@@ -142,36 +130,7 @@ class AsyncVoiceClient:
142
130
 
143
131
  asyncio.run(main())
144
132
  """
145
- _response = await self._client_wrapper.httpx_client.request(
146
- f"v1/voice-beta/{jsonable_encoder(agent_id)}/chat/completions",
147
- method="POST",
148
- json=request,
149
- headers={
150
- "user-id": str(user_id) if user_id is not None else None,
151
- },
152
- request_options=request_options,
153
- omit=OMIT,
133
+ _response = await self._raw_client.create_voice_chat_completions(
134
+ agent_id, request=request, user_id=user_id, request_options=request_options
154
135
  )
155
- try:
156
- if 200 <= _response.status_code < 300:
157
- return typing.cast(
158
- typing.Optional[typing.Any],
159
- construct_type(
160
- type_=typing.Optional[typing.Any], # type: ignore
161
- object_=_response.json(),
162
- ),
163
- )
164
- if _response.status_code == 422:
165
- raise UnprocessableEntityError(
166
- typing.cast(
167
- HttpValidationError,
168
- construct_type(
169
- type_=HttpValidationError, # type: ignore
170
- object_=_response.json(),
171
- ),
172
- )
173
- )
174
- _response_json = _response.json()
175
- except JSONDecodeError:
176
- raise ApiError(status_code=_response.status_code, body=_response.text)
177
- raise ApiError(status_code=_response.status_code, body=_response_json)
136
+ return _response.data
@@ -0,0 +1,154 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from json.decoder import JSONDecodeError
5
+
6
+ from ..core.api_error import ApiError
7
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
+ from ..core.http_response import AsyncHttpResponse, HttpResponse
9
+ from ..core.jsonable_encoder import jsonable_encoder
10
+ from ..core.request_options import RequestOptions
11
+ from ..core.unchecked_base_model import construct_type
12
+ from ..errors.unprocessable_entity_error import UnprocessableEntityError
13
+ from ..types.http_validation_error import HttpValidationError
14
+
15
+ # this is used as the default value for optional parameters
16
+ OMIT = typing.cast(typing.Any, ...)
17
+
18
+
19
+ class RawVoiceClient:
20
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
21
+ self._client_wrapper = client_wrapper
22
+
23
+ def create_voice_chat_completions(
24
+ self,
25
+ agent_id: str,
26
+ *,
27
+ request: typing.Dict[str, typing.Optional[typing.Any]],
28
+ user_id: typing.Optional[str] = None,
29
+ request_options: typing.Optional[RequestOptions] = None,
30
+ ) -> HttpResponse[typing.Optional[typing.Any]]:
31
+ """
32
+ Parameters
33
+ ----------
34
+ agent_id : str
35
+
36
+ request : typing.Dict[str, typing.Optional[typing.Any]]
37
+
38
+ user_id : typing.Optional[str]
39
+
40
+ request_options : typing.Optional[RequestOptions]
41
+ Request-specific configuration.
42
+
43
+ Returns
44
+ -------
45
+ HttpResponse[typing.Optional[typing.Any]]
46
+ Successful response
47
+ """
48
+ _response = self._client_wrapper.httpx_client.request(
49
+ f"v1/voice-beta/{jsonable_encoder(agent_id)}/chat/completions",
50
+ method="POST",
51
+ json=request,
52
+ headers={
53
+ "content-type": "application/json",
54
+ "user-id": str(user_id) if user_id is not None else None,
55
+ },
56
+ request_options=request_options,
57
+ omit=OMIT,
58
+ )
59
+ try:
60
+ if _response is None or not _response.text.strip():
61
+ return HttpResponse(response=_response, data=None)
62
+ if 200 <= _response.status_code < 300:
63
+ _data = typing.cast(
64
+ typing.Optional[typing.Any],
65
+ construct_type(
66
+ type_=typing.Optional[typing.Any], # type: ignore
67
+ object_=_response.json(),
68
+ ),
69
+ )
70
+ return HttpResponse(response=_response, data=_data)
71
+ if _response.status_code == 422:
72
+ raise UnprocessableEntityError(
73
+ headers=dict(_response.headers),
74
+ body=typing.cast(
75
+ HttpValidationError,
76
+ construct_type(
77
+ type_=HttpValidationError, # type: ignore
78
+ object_=_response.json(),
79
+ ),
80
+ ),
81
+ )
82
+ _response_json = _response.json()
83
+ except JSONDecodeError:
84
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
85
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
86
+
87
+
88
+ class AsyncRawVoiceClient:
89
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
90
+ self._client_wrapper = client_wrapper
91
+
92
+ async def create_voice_chat_completions(
93
+ self,
94
+ agent_id: str,
95
+ *,
96
+ request: typing.Dict[str, typing.Optional[typing.Any]],
97
+ user_id: typing.Optional[str] = None,
98
+ request_options: typing.Optional[RequestOptions] = None,
99
+ ) -> AsyncHttpResponse[typing.Optional[typing.Any]]:
100
+ """
101
+ Parameters
102
+ ----------
103
+ agent_id : str
104
+
105
+ request : typing.Dict[str, typing.Optional[typing.Any]]
106
+
107
+ user_id : typing.Optional[str]
108
+
109
+ request_options : typing.Optional[RequestOptions]
110
+ Request-specific configuration.
111
+
112
+ Returns
113
+ -------
114
+ AsyncHttpResponse[typing.Optional[typing.Any]]
115
+ Successful response
116
+ """
117
+ _response = await self._client_wrapper.httpx_client.request(
118
+ f"v1/voice-beta/{jsonable_encoder(agent_id)}/chat/completions",
119
+ method="POST",
120
+ json=request,
121
+ headers={
122
+ "content-type": "application/json",
123
+ "user-id": str(user_id) if user_id is not None else None,
124
+ },
125
+ request_options=request_options,
126
+ omit=OMIT,
127
+ )
128
+ try:
129
+ if _response is None or not _response.text.strip():
130
+ return AsyncHttpResponse(response=_response, data=None)
131
+ if 200 <= _response.status_code < 300:
132
+ _data = typing.cast(
133
+ typing.Optional[typing.Any],
134
+ construct_type(
135
+ type_=typing.Optional[typing.Any], # type: ignore
136
+ object_=_response.json(),
137
+ ),
138
+ )
139
+ return AsyncHttpResponse(response=_response, data=_data)
140
+ if _response.status_code == 422:
141
+ raise UnprocessableEntityError(
142
+ headers=dict(_response.headers),
143
+ body=typing.cast(
144
+ HttpValidationError,
145
+ construct_type(
146
+ type_=HttpValidationError, # type: ignore
147
+ object_=_response.json(),
148
+ ),
149
+ ),
150
+ )
151
+ _response_json = _response.json()
152
+ except JSONDecodeError:
153
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
154
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-client
3
- Version: 0.1.232
3
+ Version: 0.1.234
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -21,7 +21,7 @@ Classifier: Typing :: Typed
21
21
  Requires-Dist: httpx (>=0.21.2)
22
22
  Requires-Dist: httpx-sse (==0.4.0)
23
23
  Requires-Dist: pydantic (>=1.9.2)
24
- Requires-Dist: pydantic-core (>=2.18.2,<3.0.0)
24
+ Requires-Dist: pydantic-core (>=2.18.2)
25
25
  Requires-Dist: typing_extensions (>=4.0.0)
26
26
  Description-Content-Type: text/markdown
27
27
 
@@ -115,12 +115,32 @@ response = client.tools.connect_mcp_server(
115
115
  args=["args"],
116
116
  ),
117
117
  )
118
- for chunk in response:
118
+ for chunk in response.data:
119
119
  yield chunk
120
120
  ```
121
121
 
122
122
  ## Advanced
123
123
 
124
+ ### Access Raw Response Data
125
+
126
+ The SDK provides access to raw response data, including headers, through the `.with_raw_response` property.
127
+ The `.with_raw_response` property returns a "raw" client that can be used to access the `.headers` and `.data` attributes.
128
+
129
+ ```python
130
+ from letta_client import Letta
131
+
132
+ client = Letta(
133
+ ...,
134
+ )
135
+ response = client.tools.with_raw_response.create(...)
136
+ print(response.headers) # access the response headers
137
+ print(response.data) # access the underlying object
138
+ with client.tools.with_raw_response.connect_mcp_server(...) as response:
139
+ print(response.headers) # access the response headers
140
+ for chunk in response.data:
141
+ print(chunk) # access the underlying object(s)
142
+ ```
143
+
124
144
  ### Retries
125
145
 
126
146
  The SDK is instrumented with automatic retries with exponential backoff. A request will be retried as long
@@ -165,6 +185,7 @@ client.tools.create(..., request_options={
165
185
 
166
186
  You can override the `httpx` client to customize it for your use-case. Some common use-cases include support for proxies
167
187
  and transports.
188
+
168
189
  ```python
169
190
  import httpx
170
191
  from letta_client import Letta