letta-client 0.1.233__py3-none-any.whl → 0.1.235__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 (438) hide show
  1. letta_client/__init__.py +2 -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 +349 -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 +2088 -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 +2 -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 +14 -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 +2 -1
  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 +2 -1
  372. letta_client/types/sandbox_config_update.py +3 -2
  373. letta_client/types/sandbox_config_update_config.py +2 -1
  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/sleeptime_manager.py +2 -1
  378. letta_client/types/sleeptime_manager_update.py +2 -1
  379. letta_client/types/source.py +5 -4
  380. letta_client/types/source_create.py +4 -3
  381. letta_client/types/source_stats.py +4 -3
  382. letta_client/types/source_update.py +3 -2
  383. letta_client/types/sse_server_config.py +4 -3
  384. letta_client/types/stdio_server_config.py +4 -3
  385. letta_client/types/step.py +5 -4
  386. letta_client/types/streamable_http_server_config.py +4 -3
  387. letta_client/types/supervisor_manager.py +2 -1
  388. letta_client/types/supervisor_manager_update.py +2 -1
  389. letta_client/types/system_message.py +2 -1
  390. letta_client/types/tag_schema.py +3 -2
  391. letta_client/types/terminal_tool_rule.py +3 -2
  392. letta_client/types/text_content.py +2 -1
  393. letta_client/types/text_response_format.py +3 -2
  394. letta_client/types/tool.py +5 -4
  395. letta_client/types/tool_annotations.py +4 -3
  396. letta_client/types/tool_call.py +3 -2
  397. letta_client/types/tool_call_content.py +2 -1
  398. letta_client/types/tool_call_delta.py +3 -2
  399. letta_client/types/tool_call_message.py +4 -3
  400. letta_client/types/tool_call_message_tool_call.py +1 -0
  401. letta_client/types/tool_create.py +3 -2
  402. letta_client/types/tool_env_var_schema.py +3 -2
  403. letta_client/types/tool_json_schema.py +4 -3
  404. letta_client/types/tool_return.py +4 -3
  405. letta_client/types/tool_return_content.py +2 -1
  406. letta_client/types/tool_return_message.py +4 -3
  407. letta_client/types/tool_schema.py +5 -4
  408. letta_client/types/update_assistant_message.py +3 -2
  409. letta_client/types/update_assistant_message_content.py +1 -0
  410. letta_client/types/update_reasoning_message.py +3 -2
  411. letta_client/types/update_ssemcp_server.py +2 -1
  412. letta_client/types/update_stdio_mcp_server.py +3 -2
  413. letta_client/types/update_streamable_httpmcp_server.py +2 -1
  414. letta_client/types/update_system_message.py +2 -1
  415. letta_client/types/update_user_message.py +3 -2
  416. letta_client/types/update_user_message_content.py +1 -0
  417. letta_client/types/url_image.py +2 -1
  418. letta_client/types/usage_statistics.py +5 -4
  419. letta_client/types/usage_statistics_completion_token_details.py +3 -2
  420. letta_client/types/usage_statistics_prompt_token_details.py +3 -2
  421. letta_client/types/user.py +3 -2
  422. letta_client/types/user_create.py +3 -2
  423. letta_client/types/user_message.py +3 -2
  424. letta_client/types/user_message_content.py +1 -0
  425. letta_client/types/user_update.py +3 -2
  426. letta_client/types/validation_error.py +4 -3
  427. letta_client/types/voice_sleeptime_manager.py +2 -1
  428. letta_client/types/voice_sleeptime_manager_update.py +2 -1
  429. letta_client/types/web_search_options.py +4 -3
  430. letta_client/types/web_search_options_user_location.py +4 -3
  431. letta_client/types/web_search_options_user_location_approximate.py +3 -2
  432. letta_client/voice/__init__.py +2 -0
  433. letta_client/voice/client.py +33 -74
  434. letta_client/voice/raw_client.py +154 -0
  435. {letta_client-0.1.233.dist-info → letta_client-0.1.235.dist-info}/METADATA +24 -3
  436. letta_client-0.1.235.dist-info/RECORD +503 -0
  437. letta_client-0.1.233.dist-info/RECORD +0 -455
  438. {letta_client-0.1.233.dist-info → letta_client-0.1.235.dist-info}/WHEEL +0 -0
@@ -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,18 +1,13 @@
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
5
  from ... import core
6
- from ...types.duplicate_file_handling import DuplicateFileHandling
6
+ from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
7
7
  from ...core.request_options import RequestOptions
8
+ from ...types.duplicate_file_handling import DuplicateFileHandling
8
9
  from ...types.file_metadata import FileMetadata
9
- from ...core.jsonable_encoder import jsonable_encoder
10
- from ...core.unchecked_base_model import construct_type
11
- from ...errors.unprocessable_entity_error import UnprocessableEntityError
12
- from ...types.http_validation_error import HttpValidationError
13
- from json.decoder import JSONDecodeError
14
- from ...core.api_error import ApiError
15
- from ...core.client_wrapper import AsyncClientWrapper
10
+ from .raw_client import AsyncRawFilesClient, RawFilesClient
16
11
 
17
12
  # this is used as the default value for optional parameters
18
13
  OMIT = typing.cast(typing.Any, ...)
@@ -20,7 +15,18 @@ OMIT = typing.cast(typing.Any, ...)
20
15
 
21
16
  class FilesClient:
22
17
  def __init__(self, *, client_wrapper: SyncClientWrapper):
23
- self._client_wrapper = client_wrapper
18
+ self._raw_client = RawFilesClient(client_wrapper=client_wrapper)
19
+
20
+ @property
21
+ def with_raw_response(self) -> RawFilesClient:
22
+ """
23
+ Retrieves a raw implementation of this client that returns raw responses.
24
+
25
+ Returns
26
+ -------
27
+ RawFilesClient
28
+ """
29
+ return self._raw_client
24
30
 
25
31
  def upload(
26
32
  self,
@@ -63,42 +69,10 @@ class FilesClient:
63
69
  folder_id="folder_id",
64
70
  )
65
71
  """
66
- _response = self._client_wrapper.httpx_client.request(
67
- f"v1/folders/{jsonable_encoder(folder_id)}/upload",
68
- method="POST",
69
- params={
70
- "duplicate_handling": duplicate_handling,
71
- },
72
- data={},
73
- files={
74
- "file": file,
75
- },
76
- request_options=request_options,
77
- omit=OMIT,
72
+ _response = self._raw_client.upload(
73
+ folder_id, file=file, duplicate_handling=duplicate_handling, request_options=request_options
78
74
  )
79
- try:
80
- if 200 <= _response.status_code < 300:
81
- return typing.cast(
82
- FileMetadata,
83
- construct_type(
84
- type_=FileMetadata, # type: ignore
85
- object_=_response.json(),
86
- ),
87
- )
88
- if _response.status_code == 422:
89
- raise UnprocessableEntityError(
90
- typing.cast(
91
- HttpValidationError,
92
- construct_type(
93
- type_=HttpValidationError, # type: ignore
94
- object_=_response.json(),
95
- ),
96
- )
97
- )
98
- _response_json = _response.json()
99
- except JSONDecodeError:
100
- raise ApiError(status_code=_response.status_code, body=_response.text)
101
- raise ApiError(status_code=_response.status_code, body=_response_json)
75
+ return _response.data
102
76
 
103
77
  def list(
104
78
  self,
@@ -145,39 +119,10 @@ class FilesClient:
145
119
  folder_id="folder_id",
146
120
  )
147
121
  """
148
- _response = self._client_wrapper.httpx_client.request(
149
- f"v1/folders/{jsonable_encoder(folder_id)}/files",
150
- method="GET",
151
- params={
152
- "limit": limit,
153
- "after": after,
154
- "include_content": include_content,
155
- },
156
- request_options=request_options,
122
+ _response = self._raw_client.list(
123
+ folder_id, limit=limit, after=after, include_content=include_content, request_options=request_options
157
124
  )
158
- try:
159
- if 200 <= _response.status_code < 300:
160
- return typing.cast(
161
- typing.List[FileMetadata],
162
- construct_type(
163
- type_=typing.List[FileMetadata], # type: ignore
164
- object_=_response.json(),
165
- ),
166
- )
167
- if _response.status_code == 422:
168
- raise UnprocessableEntityError(
169
- typing.cast(
170
- HttpValidationError,
171
- construct_type(
172
- type_=HttpValidationError, # type: ignore
173
- object_=_response.json(),
174
- ),
175
- )
176
- )
177
- _response_json = _response.json()
178
- except JSONDecodeError:
179
- raise ApiError(status_code=_response.status_code, body=_response.text)
180
- raise ApiError(status_code=_response.status_code, body=_response_json)
125
+ return _response.data
181
126
 
182
127
  def delete(self, folder_id: str, file_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None:
183
128
  """
@@ -209,33 +154,24 @@ class FilesClient:
209
154
  file_id="file_id",
210
155
  )
211
156
  """
212
- _response = self._client_wrapper.httpx_client.request(
213
- f"v1/folders/{jsonable_encoder(folder_id)}/{jsonable_encoder(file_id)}",
214
- method="DELETE",
215
- request_options=request_options,
216
- )
217
- try:
218
- if 200 <= _response.status_code < 300:
219
- return
220
- if _response.status_code == 422:
221
- raise UnprocessableEntityError(
222
- typing.cast(
223
- HttpValidationError,
224
- construct_type(
225
- type_=HttpValidationError, # type: ignore
226
- object_=_response.json(),
227
- ),
228
- )
229
- )
230
- _response_json = _response.json()
231
- except JSONDecodeError:
232
- raise ApiError(status_code=_response.status_code, body=_response.text)
233
- raise ApiError(status_code=_response.status_code, body=_response_json)
157
+ _response = self._raw_client.delete(folder_id, file_id, request_options=request_options)
158
+ return _response.data
234
159
 
235
160
 
236
161
  class AsyncFilesClient:
237
162
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
238
- self._client_wrapper = client_wrapper
163
+ self._raw_client = AsyncRawFilesClient(client_wrapper=client_wrapper)
164
+
165
+ @property
166
+ def with_raw_response(self) -> AsyncRawFilesClient:
167
+ """
168
+ Retrieves a raw implementation of this client that returns raw responses.
169
+
170
+ Returns
171
+ -------
172
+ AsyncRawFilesClient
173
+ """
174
+ return self._raw_client
239
175
 
240
176
  async def upload(
241
177
  self,
@@ -286,42 +222,10 @@ class AsyncFilesClient:
286
222
 
287
223
  asyncio.run(main())
288
224
  """
289
- _response = await self._client_wrapper.httpx_client.request(
290
- f"v1/folders/{jsonable_encoder(folder_id)}/upload",
291
- method="POST",
292
- params={
293
- "duplicate_handling": duplicate_handling,
294
- },
295
- data={},
296
- files={
297
- "file": file,
298
- },
299
- request_options=request_options,
300
- omit=OMIT,
225
+ _response = await self._raw_client.upload(
226
+ folder_id, file=file, duplicate_handling=duplicate_handling, request_options=request_options
301
227
  )
302
- try:
303
- if 200 <= _response.status_code < 300:
304
- return typing.cast(
305
- FileMetadata,
306
- construct_type(
307
- type_=FileMetadata, # type: ignore
308
- object_=_response.json(),
309
- ),
310
- )
311
- if _response.status_code == 422:
312
- raise UnprocessableEntityError(
313
- typing.cast(
314
- HttpValidationError,
315
- construct_type(
316
- type_=HttpValidationError, # type: ignore
317
- object_=_response.json(),
318
- ),
319
- )
320
- )
321
- _response_json = _response.json()
322
- except JSONDecodeError:
323
- raise ApiError(status_code=_response.status_code, body=_response.text)
324
- raise ApiError(status_code=_response.status_code, body=_response_json)
228
+ return _response.data
325
229
 
326
230
  async def list(
327
231
  self,
@@ -376,39 +280,10 @@ class AsyncFilesClient:
376
280
 
377
281
  asyncio.run(main())
378
282
  """
379
- _response = await self._client_wrapper.httpx_client.request(
380
- f"v1/folders/{jsonable_encoder(folder_id)}/files",
381
- method="GET",
382
- params={
383
- "limit": limit,
384
- "after": after,
385
- "include_content": include_content,
386
- },
387
- request_options=request_options,
283
+ _response = await self._raw_client.list(
284
+ folder_id, limit=limit, after=after, include_content=include_content, request_options=request_options
388
285
  )
389
- try:
390
- if 200 <= _response.status_code < 300:
391
- return typing.cast(
392
- typing.List[FileMetadata],
393
- construct_type(
394
- type_=typing.List[FileMetadata], # type: ignore
395
- object_=_response.json(),
396
- ),
397
- )
398
- if _response.status_code == 422:
399
- raise UnprocessableEntityError(
400
- typing.cast(
401
- HttpValidationError,
402
- construct_type(
403
- type_=HttpValidationError, # type: ignore
404
- object_=_response.json(),
405
- ),
406
- )
407
- )
408
- _response_json = _response.json()
409
- except JSONDecodeError:
410
- raise ApiError(status_code=_response.status_code, body=_response.text)
411
- raise ApiError(status_code=_response.status_code, body=_response_json)
286
+ return _response.data
412
287
 
413
288
  async def delete(
414
289
  self, folder_id: str, file_id: str, *, request_options: typing.Optional[RequestOptions] = None
@@ -450,25 +325,5 @@ class AsyncFilesClient:
450
325
 
451
326
  asyncio.run(main())
452
327
  """
453
- _response = await self._client_wrapper.httpx_client.request(
454
- f"v1/folders/{jsonable_encoder(folder_id)}/{jsonable_encoder(file_id)}",
455
- method="DELETE",
456
- request_options=request_options,
457
- )
458
- try:
459
- if 200 <= _response.status_code < 300:
460
- return
461
- if _response.status_code == 422:
462
- raise UnprocessableEntityError(
463
- typing.cast(
464
- HttpValidationError,
465
- construct_type(
466
- type_=HttpValidationError, # type: ignore
467
- object_=_response.json(),
468
- ),
469
- )
470
- )
471
- _response_json = _response.json()
472
- except JSONDecodeError:
473
- raise ApiError(status_code=_response.status_code, body=_response.text)
474
- raise ApiError(status_code=_response.status_code, body=_response_json)
328
+ _response = await self._raw_client.delete(folder_id, file_id, request_options=request_options)
329
+ return _response.data
@@ -0,0 +1,391 @@
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 ... import core
7
+ from ...core.api_error import ApiError
8
+ from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
9
+ from ...core.http_response import AsyncHttpResponse, HttpResponse
10
+ from ...core.jsonable_encoder import jsonable_encoder
11
+ from ...core.request_options import RequestOptions
12
+ from ...core.unchecked_base_model import construct_type
13
+ from ...errors.unprocessable_entity_error import UnprocessableEntityError
14
+ from ...types.duplicate_file_handling import DuplicateFileHandling
15
+ from ...types.file_metadata import FileMetadata
16
+ from ...types.http_validation_error import HttpValidationError
17
+
18
+ # this is used as the default value for optional parameters
19
+ OMIT = typing.cast(typing.Any, ...)
20
+
21
+
22
+ class RawFilesClient:
23
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
24
+ self._client_wrapper = client_wrapper
25
+
26
+ def upload(
27
+ self,
28
+ folder_id: str,
29
+ *,
30
+ file: core.File,
31
+ duplicate_handling: typing.Optional[DuplicateFileHandling] = None,
32
+ request_options: typing.Optional[RequestOptions] = None,
33
+ ) -> HttpResponse[FileMetadata]:
34
+ """
35
+ Upload a file to a data folder.
36
+
37
+ Parameters
38
+ ----------
39
+ folder_id : str
40
+
41
+ file : core.File
42
+ See core.File for more documentation
43
+
44
+ duplicate_handling : typing.Optional[DuplicateFileHandling]
45
+ How to handle duplicate filenames
46
+
47
+ request_options : typing.Optional[RequestOptions]
48
+ Request-specific configuration.
49
+
50
+ Returns
51
+ -------
52
+ HttpResponse[FileMetadata]
53
+ Successful Response
54
+ """
55
+ _response = self._client_wrapper.httpx_client.request(
56
+ f"v1/folders/{jsonable_encoder(folder_id)}/upload",
57
+ method="POST",
58
+ params={
59
+ "duplicate_handling": duplicate_handling,
60
+ },
61
+ data={},
62
+ files={
63
+ "file": file,
64
+ },
65
+ request_options=request_options,
66
+ omit=OMIT,
67
+ force_multipart=True,
68
+ )
69
+ try:
70
+ if 200 <= _response.status_code < 300:
71
+ _data = typing.cast(
72
+ FileMetadata,
73
+ construct_type(
74
+ type_=FileMetadata, # type: ignore
75
+ object_=_response.json(),
76
+ ),
77
+ )
78
+ return HttpResponse(response=_response, data=_data)
79
+ if _response.status_code == 422:
80
+ raise UnprocessableEntityError(
81
+ headers=dict(_response.headers),
82
+ body=typing.cast(
83
+ HttpValidationError,
84
+ construct_type(
85
+ type_=HttpValidationError, # type: ignore
86
+ object_=_response.json(),
87
+ ),
88
+ ),
89
+ )
90
+ _response_json = _response.json()
91
+ except JSONDecodeError:
92
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
93
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
94
+
95
+ def list(
96
+ self,
97
+ folder_id: str,
98
+ *,
99
+ limit: typing.Optional[int] = None,
100
+ after: typing.Optional[str] = None,
101
+ include_content: typing.Optional[bool] = None,
102
+ request_options: typing.Optional[RequestOptions] = None,
103
+ ) -> HttpResponse[typing.List[FileMetadata]]:
104
+ """
105
+ List paginated files associated with a data folder.
106
+
107
+ Parameters
108
+ ----------
109
+ folder_id : str
110
+
111
+ limit : typing.Optional[int]
112
+ Number of files to return
113
+
114
+ after : typing.Optional[str]
115
+ Pagination cursor to fetch the next set of results
116
+
117
+ include_content : typing.Optional[bool]
118
+ Whether to include full file content
119
+
120
+ request_options : typing.Optional[RequestOptions]
121
+ Request-specific configuration.
122
+
123
+ Returns
124
+ -------
125
+ HttpResponse[typing.List[FileMetadata]]
126
+ Successful Response
127
+ """
128
+ _response = self._client_wrapper.httpx_client.request(
129
+ f"v1/folders/{jsonable_encoder(folder_id)}/files",
130
+ method="GET",
131
+ params={
132
+ "limit": limit,
133
+ "after": after,
134
+ "include_content": include_content,
135
+ },
136
+ request_options=request_options,
137
+ )
138
+ try:
139
+ if 200 <= _response.status_code < 300:
140
+ _data = typing.cast(
141
+ typing.List[FileMetadata],
142
+ construct_type(
143
+ type_=typing.List[FileMetadata], # type: ignore
144
+ object_=_response.json(),
145
+ ),
146
+ )
147
+ return HttpResponse(response=_response, data=_data)
148
+ if _response.status_code == 422:
149
+ raise UnprocessableEntityError(
150
+ headers=dict(_response.headers),
151
+ body=typing.cast(
152
+ HttpValidationError,
153
+ construct_type(
154
+ type_=HttpValidationError, # type: ignore
155
+ object_=_response.json(),
156
+ ),
157
+ ),
158
+ )
159
+ _response_json = _response.json()
160
+ except JSONDecodeError:
161
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
162
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
163
+
164
+ def delete(
165
+ self, folder_id: str, file_id: str, *, request_options: typing.Optional[RequestOptions] = None
166
+ ) -> HttpResponse[None]:
167
+ """
168
+ Delete a file from a folder.
169
+
170
+ Parameters
171
+ ----------
172
+ folder_id : str
173
+
174
+ file_id : str
175
+
176
+ request_options : typing.Optional[RequestOptions]
177
+ Request-specific configuration.
178
+
179
+ Returns
180
+ -------
181
+ HttpResponse[None]
182
+ """
183
+ _response = self._client_wrapper.httpx_client.request(
184
+ f"v1/folders/{jsonable_encoder(folder_id)}/{jsonable_encoder(file_id)}",
185
+ method="DELETE",
186
+ request_options=request_options,
187
+ )
188
+ try:
189
+ if 200 <= _response.status_code < 300:
190
+ return HttpResponse(response=_response, data=None)
191
+ if _response.status_code == 422:
192
+ raise UnprocessableEntityError(
193
+ headers=dict(_response.headers),
194
+ body=typing.cast(
195
+ HttpValidationError,
196
+ construct_type(
197
+ type_=HttpValidationError, # type: ignore
198
+ object_=_response.json(),
199
+ ),
200
+ ),
201
+ )
202
+ _response_json = _response.json()
203
+ except JSONDecodeError:
204
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
205
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
206
+
207
+
208
+ class AsyncRawFilesClient:
209
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
210
+ self._client_wrapper = client_wrapper
211
+
212
+ async def upload(
213
+ self,
214
+ folder_id: str,
215
+ *,
216
+ file: core.File,
217
+ duplicate_handling: typing.Optional[DuplicateFileHandling] = None,
218
+ request_options: typing.Optional[RequestOptions] = None,
219
+ ) -> AsyncHttpResponse[FileMetadata]:
220
+ """
221
+ Upload a file to a data folder.
222
+
223
+ Parameters
224
+ ----------
225
+ folder_id : str
226
+
227
+ file : core.File
228
+ See core.File for more documentation
229
+
230
+ duplicate_handling : typing.Optional[DuplicateFileHandling]
231
+ How to handle duplicate filenames
232
+
233
+ request_options : typing.Optional[RequestOptions]
234
+ Request-specific configuration.
235
+
236
+ Returns
237
+ -------
238
+ AsyncHttpResponse[FileMetadata]
239
+ Successful Response
240
+ """
241
+ _response = await self._client_wrapper.httpx_client.request(
242
+ f"v1/folders/{jsonable_encoder(folder_id)}/upload",
243
+ method="POST",
244
+ params={
245
+ "duplicate_handling": duplicate_handling,
246
+ },
247
+ data={},
248
+ files={
249
+ "file": file,
250
+ },
251
+ request_options=request_options,
252
+ omit=OMIT,
253
+ force_multipart=True,
254
+ )
255
+ try:
256
+ if 200 <= _response.status_code < 300:
257
+ _data = typing.cast(
258
+ FileMetadata,
259
+ construct_type(
260
+ type_=FileMetadata, # type: ignore
261
+ object_=_response.json(),
262
+ ),
263
+ )
264
+ return AsyncHttpResponse(response=_response, data=_data)
265
+ if _response.status_code == 422:
266
+ raise UnprocessableEntityError(
267
+ headers=dict(_response.headers),
268
+ body=typing.cast(
269
+ HttpValidationError,
270
+ construct_type(
271
+ type_=HttpValidationError, # type: ignore
272
+ object_=_response.json(),
273
+ ),
274
+ ),
275
+ )
276
+ _response_json = _response.json()
277
+ except JSONDecodeError:
278
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
279
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
280
+
281
+ async def list(
282
+ self,
283
+ folder_id: str,
284
+ *,
285
+ limit: typing.Optional[int] = None,
286
+ after: typing.Optional[str] = None,
287
+ include_content: typing.Optional[bool] = None,
288
+ request_options: typing.Optional[RequestOptions] = None,
289
+ ) -> AsyncHttpResponse[typing.List[FileMetadata]]:
290
+ """
291
+ List paginated files associated with a data folder.
292
+
293
+ Parameters
294
+ ----------
295
+ folder_id : str
296
+
297
+ limit : typing.Optional[int]
298
+ Number of files to return
299
+
300
+ after : typing.Optional[str]
301
+ Pagination cursor to fetch the next set of results
302
+
303
+ include_content : typing.Optional[bool]
304
+ Whether to include full file content
305
+
306
+ request_options : typing.Optional[RequestOptions]
307
+ Request-specific configuration.
308
+
309
+ Returns
310
+ -------
311
+ AsyncHttpResponse[typing.List[FileMetadata]]
312
+ Successful Response
313
+ """
314
+ _response = await self._client_wrapper.httpx_client.request(
315
+ f"v1/folders/{jsonable_encoder(folder_id)}/files",
316
+ method="GET",
317
+ params={
318
+ "limit": limit,
319
+ "after": after,
320
+ "include_content": include_content,
321
+ },
322
+ request_options=request_options,
323
+ )
324
+ try:
325
+ if 200 <= _response.status_code < 300:
326
+ _data = typing.cast(
327
+ typing.List[FileMetadata],
328
+ construct_type(
329
+ type_=typing.List[FileMetadata], # type: ignore
330
+ object_=_response.json(),
331
+ ),
332
+ )
333
+ return AsyncHttpResponse(response=_response, data=_data)
334
+ if _response.status_code == 422:
335
+ raise UnprocessableEntityError(
336
+ headers=dict(_response.headers),
337
+ body=typing.cast(
338
+ HttpValidationError,
339
+ construct_type(
340
+ type_=HttpValidationError, # type: ignore
341
+ object_=_response.json(),
342
+ ),
343
+ ),
344
+ )
345
+ _response_json = _response.json()
346
+ except JSONDecodeError:
347
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
348
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
349
+
350
+ async def delete(
351
+ self, folder_id: str, file_id: str, *, request_options: typing.Optional[RequestOptions] = None
352
+ ) -> AsyncHttpResponse[None]:
353
+ """
354
+ Delete a file from a folder.
355
+
356
+ Parameters
357
+ ----------
358
+ folder_id : str
359
+
360
+ file_id : str
361
+
362
+ request_options : typing.Optional[RequestOptions]
363
+ Request-specific configuration.
364
+
365
+ Returns
366
+ -------
367
+ AsyncHttpResponse[None]
368
+ """
369
+ _response = await self._client_wrapper.httpx_client.request(
370
+ f"v1/folders/{jsonable_encoder(folder_id)}/{jsonable_encoder(file_id)}",
371
+ method="DELETE",
372
+ request_options=request_options,
373
+ )
374
+ try:
375
+ if 200 <= _response.status_code < 300:
376
+ return AsyncHttpResponse(response=_response, data=None)
377
+ if _response.status_code == 422:
378
+ raise UnprocessableEntityError(
379
+ headers=dict(_response.headers),
380
+ body=typing.cast(
381
+ HttpValidationError,
382
+ construct_type(
383
+ type_=HttpValidationError, # type: ignore
384
+ object_=_response.json(),
385
+ ),
386
+ ),
387
+ )
388
+ _response_json = _response.json()
389
+ except JSONDecodeError:
390
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
391
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -1,2 +1,4 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ # isort: skip_file
4
+