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
@@ -0,0 +1,664 @@
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
+ from ..types.provider import Provider
15
+ from ..types.provider_type import ProviderType
16
+
17
+ # this is used as the default value for optional parameters
18
+ OMIT = typing.cast(typing.Any, ...)
19
+
20
+
21
+ class RawProvidersClient:
22
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
23
+ self._client_wrapper = client_wrapper
24
+
25
+ def list(
26
+ self,
27
+ *,
28
+ name: typing.Optional[str] = None,
29
+ provider_type: typing.Optional[ProviderType] = None,
30
+ after: typing.Optional[str] = None,
31
+ limit: typing.Optional[int] = None,
32
+ request_options: typing.Optional[RequestOptions] = None,
33
+ ) -> HttpResponse[typing.List[Provider]]:
34
+ """
35
+ Get a list of all custom providers in the database
36
+
37
+ Parameters
38
+ ----------
39
+ name : typing.Optional[str]
40
+
41
+ provider_type : typing.Optional[ProviderType]
42
+
43
+ after : typing.Optional[str]
44
+
45
+ limit : typing.Optional[int]
46
+
47
+ request_options : typing.Optional[RequestOptions]
48
+ Request-specific configuration.
49
+
50
+ Returns
51
+ -------
52
+ HttpResponse[typing.List[Provider]]
53
+ Successful Response
54
+ """
55
+ _response = self._client_wrapper.httpx_client.request(
56
+ "v1/providers/",
57
+ method="GET",
58
+ params={
59
+ "name": name,
60
+ "provider_type": provider_type,
61
+ "after": after,
62
+ "limit": limit,
63
+ },
64
+ request_options=request_options,
65
+ )
66
+ try:
67
+ if 200 <= _response.status_code < 300:
68
+ _data = typing.cast(
69
+ typing.List[Provider],
70
+ construct_type(
71
+ type_=typing.List[Provider], # type: ignore
72
+ object_=_response.json(),
73
+ ),
74
+ )
75
+ return HttpResponse(response=_response, data=_data)
76
+ if _response.status_code == 422:
77
+ raise UnprocessableEntityError(
78
+ headers=dict(_response.headers),
79
+ body=typing.cast(
80
+ HttpValidationError,
81
+ construct_type(
82
+ type_=HttpValidationError, # type: ignore
83
+ object_=_response.json(),
84
+ ),
85
+ ),
86
+ )
87
+ _response_json = _response.json()
88
+ except JSONDecodeError:
89
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
90
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
91
+
92
+ def create(
93
+ self,
94
+ *,
95
+ name: str,
96
+ provider_type: ProviderType,
97
+ api_key: str,
98
+ access_key: typing.Optional[str] = OMIT,
99
+ region: typing.Optional[str] = OMIT,
100
+ request_options: typing.Optional[RequestOptions] = None,
101
+ ) -> HttpResponse[Provider]:
102
+ """
103
+ Create a new custom provider
104
+
105
+ Parameters
106
+ ----------
107
+ name : str
108
+ The name of the provider.
109
+
110
+ provider_type : ProviderType
111
+ The type of the provider.
112
+
113
+ api_key : str
114
+ API key or secret key used for requests to the provider.
115
+
116
+ access_key : typing.Optional[str]
117
+ Access key used for requests to the provider.
118
+
119
+ region : typing.Optional[str]
120
+ Region used for requests to the provider.
121
+
122
+ request_options : typing.Optional[RequestOptions]
123
+ Request-specific configuration.
124
+
125
+ Returns
126
+ -------
127
+ HttpResponse[Provider]
128
+ Successful Response
129
+ """
130
+ _response = self._client_wrapper.httpx_client.request(
131
+ "v1/providers/",
132
+ method="POST",
133
+ json={
134
+ "name": name,
135
+ "provider_type": provider_type,
136
+ "api_key": api_key,
137
+ "access_key": access_key,
138
+ "region": region,
139
+ },
140
+ headers={
141
+ "content-type": "application/json",
142
+ },
143
+ request_options=request_options,
144
+ omit=OMIT,
145
+ )
146
+ try:
147
+ if 200 <= _response.status_code < 300:
148
+ _data = typing.cast(
149
+ Provider,
150
+ construct_type(
151
+ type_=Provider, # type: ignore
152
+ object_=_response.json(),
153
+ ),
154
+ )
155
+ return HttpResponse(response=_response, data=_data)
156
+ if _response.status_code == 422:
157
+ raise UnprocessableEntityError(
158
+ headers=dict(_response.headers),
159
+ body=typing.cast(
160
+ HttpValidationError,
161
+ construct_type(
162
+ type_=HttpValidationError, # type: ignore
163
+ object_=_response.json(),
164
+ ),
165
+ ),
166
+ )
167
+ _response_json = _response.json()
168
+ except JSONDecodeError:
169
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
170
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
171
+
172
+ def delete(
173
+ self, provider_id: str, *, request_options: typing.Optional[RequestOptions] = None
174
+ ) -> HttpResponse[typing.Optional[typing.Any]]:
175
+ """
176
+ Delete an existing custom provider
177
+
178
+ Parameters
179
+ ----------
180
+ provider_id : str
181
+
182
+ request_options : typing.Optional[RequestOptions]
183
+ Request-specific configuration.
184
+
185
+ Returns
186
+ -------
187
+ HttpResponse[typing.Optional[typing.Any]]
188
+ Successful Response
189
+ """
190
+ _response = self._client_wrapper.httpx_client.request(
191
+ f"v1/providers/{jsonable_encoder(provider_id)}",
192
+ method="DELETE",
193
+ request_options=request_options,
194
+ )
195
+ try:
196
+ if _response is None or not _response.text.strip():
197
+ return HttpResponse(response=_response, data=None)
198
+ if 200 <= _response.status_code < 300:
199
+ _data = typing.cast(
200
+ typing.Optional[typing.Any],
201
+ construct_type(
202
+ type_=typing.Optional[typing.Any], # type: ignore
203
+ object_=_response.json(),
204
+ ),
205
+ )
206
+ return HttpResponse(response=_response, data=_data)
207
+ if _response.status_code == 422:
208
+ raise UnprocessableEntityError(
209
+ headers=dict(_response.headers),
210
+ body=typing.cast(
211
+ HttpValidationError,
212
+ construct_type(
213
+ type_=HttpValidationError, # type: ignore
214
+ object_=_response.json(),
215
+ ),
216
+ ),
217
+ )
218
+ _response_json = _response.json()
219
+ except JSONDecodeError:
220
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
221
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
222
+
223
+ def modify(
224
+ self,
225
+ provider_id: str,
226
+ *,
227
+ api_key: str,
228
+ access_key: typing.Optional[str] = OMIT,
229
+ region: typing.Optional[str] = OMIT,
230
+ request_options: typing.Optional[RequestOptions] = None,
231
+ ) -> HttpResponse[Provider]:
232
+ """
233
+ Update an existing custom provider
234
+
235
+ Parameters
236
+ ----------
237
+ provider_id : str
238
+
239
+ api_key : str
240
+ API key or secret key used for requests to the provider.
241
+
242
+ access_key : typing.Optional[str]
243
+ Access key used for requests to the provider.
244
+
245
+ region : typing.Optional[str]
246
+ Region used for requests to the provider.
247
+
248
+ request_options : typing.Optional[RequestOptions]
249
+ Request-specific configuration.
250
+
251
+ Returns
252
+ -------
253
+ HttpResponse[Provider]
254
+ Successful Response
255
+ """
256
+ _response = self._client_wrapper.httpx_client.request(
257
+ f"v1/providers/{jsonable_encoder(provider_id)}",
258
+ method="PATCH",
259
+ json={
260
+ "api_key": api_key,
261
+ "access_key": access_key,
262
+ "region": region,
263
+ },
264
+ headers={
265
+ "content-type": "application/json",
266
+ },
267
+ request_options=request_options,
268
+ omit=OMIT,
269
+ )
270
+ try:
271
+ if 200 <= _response.status_code < 300:
272
+ _data = typing.cast(
273
+ Provider,
274
+ construct_type(
275
+ type_=Provider, # type: ignore
276
+ object_=_response.json(),
277
+ ),
278
+ )
279
+ return HttpResponse(response=_response, data=_data)
280
+ if _response.status_code == 422:
281
+ raise UnprocessableEntityError(
282
+ headers=dict(_response.headers),
283
+ body=typing.cast(
284
+ HttpValidationError,
285
+ construct_type(
286
+ type_=HttpValidationError, # type: ignore
287
+ object_=_response.json(),
288
+ ),
289
+ ),
290
+ )
291
+ _response_json = _response.json()
292
+ except JSONDecodeError:
293
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
294
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
295
+
296
+ def check(
297
+ self, *, request_options: typing.Optional[RequestOptions] = None
298
+ ) -> HttpResponse[typing.Optional[typing.Any]]:
299
+ """
300
+ Parameters
301
+ ----------
302
+ request_options : typing.Optional[RequestOptions]
303
+ Request-specific configuration.
304
+
305
+ Returns
306
+ -------
307
+ HttpResponse[typing.Optional[typing.Any]]
308
+ Successful Response
309
+ """
310
+ _response = self._client_wrapper.httpx_client.request(
311
+ "v1/providers/check",
312
+ method="GET",
313
+ request_options=request_options,
314
+ )
315
+ try:
316
+ if _response is None or not _response.text.strip():
317
+ return HttpResponse(response=_response, data=None)
318
+ if 200 <= _response.status_code < 300:
319
+ _data = typing.cast(
320
+ typing.Optional[typing.Any],
321
+ construct_type(
322
+ type_=typing.Optional[typing.Any], # type: ignore
323
+ object_=_response.json(),
324
+ ),
325
+ )
326
+ return HttpResponse(response=_response, data=_data)
327
+ if _response.status_code == 422:
328
+ raise UnprocessableEntityError(
329
+ headers=dict(_response.headers),
330
+ body=typing.cast(
331
+ HttpValidationError,
332
+ construct_type(
333
+ type_=HttpValidationError, # type: ignore
334
+ object_=_response.json(),
335
+ ),
336
+ ),
337
+ )
338
+ _response_json = _response.json()
339
+ except JSONDecodeError:
340
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
341
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
342
+
343
+
344
+ class AsyncRawProvidersClient:
345
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
346
+ self._client_wrapper = client_wrapper
347
+
348
+ async def list(
349
+ self,
350
+ *,
351
+ name: typing.Optional[str] = None,
352
+ provider_type: typing.Optional[ProviderType] = None,
353
+ after: typing.Optional[str] = None,
354
+ limit: typing.Optional[int] = None,
355
+ request_options: typing.Optional[RequestOptions] = None,
356
+ ) -> AsyncHttpResponse[typing.List[Provider]]:
357
+ """
358
+ Get a list of all custom providers in the database
359
+
360
+ Parameters
361
+ ----------
362
+ name : typing.Optional[str]
363
+
364
+ provider_type : typing.Optional[ProviderType]
365
+
366
+ after : typing.Optional[str]
367
+
368
+ limit : typing.Optional[int]
369
+
370
+ request_options : typing.Optional[RequestOptions]
371
+ Request-specific configuration.
372
+
373
+ Returns
374
+ -------
375
+ AsyncHttpResponse[typing.List[Provider]]
376
+ Successful Response
377
+ """
378
+ _response = await self._client_wrapper.httpx_client.request(
379
+ "v1/providers/",
380
+ method="GET",
381
+ params={
382
+ "name": name,
383
+ "provider_type": provider_type,
384
+ "after": after,
385
+ "limit": limit,
386
+ },
387
+ request_options=request_options,
388
+ )
389
+ try:
390
+ if 200 <= _response.status_code < 300:
391
+ _data = typing.cast(
392
+ typing.List[Provider],
393
+ construct_type(
394
+ type_=typing.List[Provider], # type: ignore
395
+ object_=_response.json(),
396
+ ),
397
+ )
398
+ return AsyncHttpResponse(response=_response, data=_data)
399
+ if _response.status_code == 422:
400
+ raise UnprocessableEntityError(
401
+ headers=dict(_response.headers),
402
+ body=typing.cast(
403
+ HttpValidationError,
404
+ construct_type(
405
+ type_=HttpValidationError, # type: ignore
406
+ object_=_response.json(),
407
+ ),
408
+ ),
409
+ )
410
+ _response_json = _response.json()
411
+ except JSONDecodeError:
412
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
413
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
414
+
415
+ async def create(
416
+ self,
417
+ *,
418
+ name: str,
419
+ provider_type: ProviderType,
420
+ api_key: str,
421
+ access_key: typing.Optional[str] = OMIT,
422
+ region: typing.Optional[str] = OMIT,
423
+ request_options: typing.Optional[RequestOptions] = None,
424
+ ) -> AsyncHttpResponse[Provider]:
425
+ """
426
+ Create a new custom provider
427
+
428
+ Parameters
429
+ ----------
430
+ name : str
431
+ The name of the provider.
432
+
433
+ provider_type : ProviderType
434
+ The type of the provider.
435
+
436
+ api_key : str
437
+ API key or secret key used for requests to the provider.
438
+
439
+ access_key : typing.Optional[str]
440
+ Access key used for requests to the provider.
441
+
442
+ region : typing.Optional[str]
443
+ Region used for requests to the provider.
444
+
445
+ request_options : typing.Optional[RequestOptions]
446
+ Request-specific configuration.
447
+
448
+ Returns
449
+ -------
450
+ AsyncHttpResponse[Provider]
451
+ Successful Response
452
+ """
453
+ _response = await self._client_wrapper.httpx_client.request(
454
+ "v1/providers/",
455
+ method="POST",
456
+ json={
457
+ "name": name,
458
+ "provider_type": provider_type,
459
+ "api_key": api_key,
460
+ "access_key": access_key,
461
+ "region": region,
462
+ },
463
+ headers={
464
+ "content-type": "application/json",
465
+ },
466
+ request_options=request_options,
467
+ omit=OMIT,
468
+ )
469
+ try:
470
+ if 200 <= _response.status_code < 300:
471
+ _data = typing.cast(
472
+ Provider,
473
+ construct_type(
474
+ type_=Provider, # type: ignore
475
+ object_=_response.json(),
476
+ ),
477
+ )
478
+ return AsyncHttpResponse(response=_response, data=_data)
479
+ if _response.status_code == 422:
480
+ raise UnprocessableEntityError(
481
+ headers=dict(_response.headers),
482
+ body=typing.cast(
483
+ HttpValidationError,
484
+ construct_type(
485
+ type_=HttpValidationError, # type: ignore
486
+ object_=_response.json(),
487
+ ),
488
+ ),
489
+ )
490
+ _response_json = _response.json()
491
+ except JSONDecodeError:
492
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
493
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
494
+
495
+ async def delete(
496
+ self, provider_id: str, *, request_options: typing.Optional[RequestOptions] = None
497
+ ) -> AsyncHttpResponse[typing.Optional[typing.Any]]:
498
+ """
499
+ Delete an existing custom provider
500
+
501
+ Parameters
502
+ ----------
503
+ provider_id : str
504
+
505
+ request_options : typing.Optional[RequestOptions]
506
+ Request-specific configuration.
507
+
508
+ Returns
509
+ -------
510
+ AsyncHttpResponse[typing.Optional[typing.Any]]
511
+ Successful Response
512
+ """
513
+ _response = await self._client_wrapper.httpx_client.request(
514
+ f"v1/providers/{jsonable_encoder(provider_id)}",
515
+ method="DELETE",
516
+ request_options=request_options,
517
+ )
518
+ try:
519
+ if _response is None or not _response.text.strip():
520
+ return AsyncHttpResponse(response=_response, data=None)
521
+ if 200 <= _response.status_code < 300:
522
+ _data = typing.cast(
523
+ typing.Optional[typing.Any],
524
+ construct_type(
525
+ type_=typing.Optional[typing.Any], # type: ignore
526
+ object_=_response.json(),
527
+ ),
528
+ )
529
+ return AsyncHttpResponse(response=_response, data=_data)
530
+ if _response.status_code == 422:
531
+ raise UnprocessableEntityError(
532
+ headers=dict(_response.headers),
533
+ body=typing.cast(
534
+ HttpValidationError,
535
+ construct_type(
536
+ type_=HttpValidationError, # type: ignore
537
+ object_=_response.json(),
538
+ ),
539
+ ),
540
+ )
541
+ _response_json = _response.json()
542
+ except JSONDecodeError:
543
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
544
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
545
+
546
+ async def modify(
547
+ self,
548
+ provider_id: str,
549
+ *,
550
+ api_key: str,
551
+ access_key: typing.Optional[str] = OMIT,
552
+ region: typing.Optional[str] = OMIT,
553
+ request_options: typing.Optional[RequestOptions] = None,
554
+ ) -> AsyncHttpResponse[Provider]:
555
+ """
556
+ Update an existing custom provider
557
+
558
+ Parameters
559
+ ----------
560
+ provider_id : str
561
+
562
+ api_key : str
563
+ API key or secret key used for requests to the provider.
564
+
565
+ access_key : typing.Optional[str]
566
+ Access key used for requests to the provider.
567
+
568
+ region : typing.Optional[str]
569
+ Region used for requests to the provider.
570
+
571
+ request_options : typing.Optional[RequestOptions]
572
+ Request-specific configuration.
573
+
574
+ Returns
575
+ -------
576
+ AsyncHttpResponse[Provider]
577
+ Successful Response
578
+ """
579
+ _response = await self._client_wrapper.httpx_client.request(
580
+ f"v1/providers/{jsonable_encoder(provider_id)}",
581
+ method="PATCH",
582
+ json={
583
+ "api_key": api_key,
584
+ "access_key": access_key,
585
+ "region": region,
586
+ },
587
+ headers={
588
+ "content-type": "application/json",
589
+ },
590
+ request_options=request_options,
591
+ omit=OMIT,
592
+ )
593
+ try:
594
+ if 200 <= _response.status_code < 300:
595
+ _data = typing.cast(
596
+ Provider,
597
+ construct_type(
598
+ type_=Provider, # type: ignore
599
+ object_=_response.json(),
600
+ ),
601
+ )
602
+ return AsyncHttpResponse(response=_response, data=_data)
603
+ if _response.status_code == 422:
604
+ raise UnprocessableEntityError(
605
+ headers=dict(_response.headers),
606
+ body=typing.cast(
607
+ HttpValidationError,
608
+ construct_type(
609
+ type_=HttpValidationError, # type: ignore
610
+ object_=_response.json(),
611
+ ),
612
+ ),
613
+ )
614
+ _response_json = _response.json()
615
+ except JSONDecodeError:
616
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
617
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
618
+
619
+ async def check(
620
+ self, *, request_options: typing.Optional[RequestOptions] = None
621
+ ) -> AsyncHttpResponse[typing.Optional[typing.Any]]:
622
+ """
623
+ Parameters
624
+ ----------
625
+ request_options : typing.Optional[RequestOptions]
626
+ Request-specific configuration.
627
+
628
+ Returns
629
+ -------
630
+ AsyncHttpResponse[typing.Optional[typing.Any]]
631
+ Successful Response
632
+ """
633
+ _response = await self._client_wrapper.httpx_client.request(
634
+ "v1/providers/check",
635
+ method="GET",
636
+ request_options=request_options,
637
+ )
638
+ try:
639
+ if _response is None or not _response.text.strip():
640
+ return AsyncHttpResponse(response=_response, data=None)
641
+ if 200 <= _response.status_code < 300:
642
+ _data = typing.cast(
643
+ typing.Optional[typing.Any],
644
+ construct_type(
645
+ type_=typing.Optional[typing.Any], # type: ignore
646
+ object_=_response.json(),
647
+ ),
648
+ )
649
+ return AsyncHttpResponse(response=_response, data=_data)
650
+ if _response.status_code == 422:
651
+ raise UnprocessableEntityError(
652
+ headers=dict(_response.headers),
653
+ body=typing.cast(
654
+ HttpValidationError,
655
+ construct_type(
656
+ type_=HttpValidationError, # type: ignore
657
+ object_=_response.json(),
658
+ ),
659
+ ),
660
+ )
661
+ _response_json = _response.json()
662
+ except JSONDecodeError:
663
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
664
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -1,5 +1,7 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ # isort: skip_file
4
+
3
5
  from . import messages, steps, usage
4
6
 
5
7
  __all__ = ["messages", "steps", "usage"]