letta-client 0.1.226__py3-none-any.whl → 1.7.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (755) hide show
  1. letta_client/__init__.py +91 -672
  2. letta_client/_base_client.py +2125 -0
  3. letta_client/_client.py +1136 -0
  4. letta_client/_compat.py +219 -0
  5. letta_client/_constants.py +14 -0
  6. letta_client/_exceptions.py +108 -0
  7. letta_client/_files.py +123 -0
  8. letta_client/_models.py +872 -0
  9. letta_client/_qs.py +150 -0
  10. letta_client/_resource.py +43 -0
  11. letta_client/_response.py +832 -0
  12. letta_client/_streaming.py +371 -0
  13. letta_client/_types.py +270 -0
  14. letta_client/_utils/__init__.py +64 -0
  15. letta_client/_utils/_compat.py +45 -0
  16. letta_client/_utils/_datetime_parse.py +136 -0
  17. letta_client/_utils/_logs.py +25 -0
  18. letta_client/_utils/_proxy.py +65 -0
  19. letta_client/_utils/_reflection.py +42 -0
  20. letta_client/_utils/_resources_proxy.py +24 -0
  21. letta_client/_utils/_streams.py +12 -0
  22. letta_client/_utils/_sync.py +58 -0
  23. letta_client/_utils/_transform.py +457 -0
  24. letta_client/_utils/_typing.py +156 -0
  25. letta_client/_utils/_utils.py +421 -0
  26. letta_client/_version.py +4 -0
  27. letta_client/lib/.keep +4 -0
  28. letta_client/pagination.py +280 -0
  29. letta_client/resources/__init__.py +215 -0
  30. letta_client/resources/access_tokens.py +396 -0
  31. letta_client/resources/agents/__init__.py +131 -0
  32. letta_client/resources/agents/agents.py +2148 -0
  33. letta_client/resources/agents/archives.py +260 -0
  34. letta_client/resources/agents/blocks.py +736 -0
  35. letta_client/resources/agents/files.py +541 -0
  36. letta_client/resources/agents/folders.py +422 -0
  37. letta_client/resources/agents/identities.py +260 -0
  38. letta_client/resources/agents/messages.py +1800 -0
  39. letta_client/resources/agents/passages.py +638 -0
  40. letta_client/resources/agents/tools.py +651 -0
  41. letta_client/resources/archives/__init__.py +33 -0
  42. letta_client/resources/archives/archives.py +650 -0
  43. letta_client/resources/archives/passages.py +309 -0
  44. letta_client/resources/blocks/__init__.py +33 -0
  45. letta_client/resources/blocks/agents.py +289 -0
  46. letta_client/resources/blocks/blocks.py +977 -0
  47. letta_client/resources/conversations/__init__.py +33 -0
  48. letta_client/resources/conversations/conversations.py +611 -0
  49. letta_client/resources/conversations/messages.py +650 -0
  50. letta_client/resources/folders/__init__.py +47 -0
  51. letta_client/resources/folders/agents.py +234 -0
  52. letta_client/resources/folders/files.py +581 -0
  53. letta_client/resources/folders/folders.py +734 -0
  54. letta_client/resources/mcp_servers/__init__.py +33 -0
  55. letta_client/resources/mcp_servers/mcp_servers.py +670 -0
  56. letta_client/resources/mcp_servers/tools.py +351 -0
  57. letta_client/resources/messages.py +455 -0
  58. letta_client/resources/models/__init__.py +33 -0
  59. letta_client/resources/models/embeddings.py +149 -0
  60. letta_client/resources/models/models.py +233 -0
  61. letta_client/resources/passages.py +259 -0
  62. letta_client/resources/runs/__init__.py +75 -0
  63. letta_client/resources/runs/messages.py +363 -0
  64. letta_client/resources/runs/runs.py +502 -0
  65. letta_client/resources/runs/steps.py +229 -0
  66. letta_client/resources/runs/trace.py +197 -0
  67. letta_client/resources/runs/usage.py +163 -0
  68. letta_client/resources/steps/__init__.py +75 -0
  69. letta_client/resources/steps/feedback.py +198 -0
  70. letta_client/resources/steps/messages.py +237 -0
  71. letta_client/resources/steps/metrics.py +167 -0
  72. letta_client/resources/steps/steps.py +505 -0
  73. letta_client/resources/steps/trace.py +169 -0
  74. letta_client/resources/tags.py +240 -0
  75. letta_client/resources/templates/__init__.py +33 -0
  76. letta_client/resources/templates/agents.py +229 -0
  77. letta_client/resources/templates/templates.py +540 -0
  78. letta_client/resources/tools.py +1721 -0
  79. letta_client/types/__init__.py +148 -530
  80. letta_client/types/access_token_create_params.py +32 -0
  81. letta_client/types/access_token_create_response.py +34 -0
  82. letta_client/types/access_token_delete_params.py +11 -0
  83. letta_client/types/access_token_list_params.py +23 -0
  84. letta_client/types/access_token_list_response.py +40 -0
  85. letta_client/types/agent_create_params.py +444 -0
  86. letta_client/types/agent_environment_variable.py +40 -63
  87. letta_client/types/agent_export_file_params.py +26 -0
  88. letta_client/types/agent_export_file_response.py +7 -0
  89. letta_client/types/agent_import_file_params.py +57 -0
  90. letta_client/types/agent_import_file_response.py +14 -0
  91. letta_client/types/agent_list_params.py +100 -0
  92. letta_client/types/agent_retrieve_params.py +37 -0
  93. letta_client/types/agent_state.py +651 -138
  94. letta_client/types/agent_type.py +14 -14
  95. letta_client/types/agent_update_params.py +386 -0
  96. letta_client/types/agents/__init__.py +76 -0
  97. letta_client/types/agents/approval_create_param.py +35 -0
  98. letta_client/types/agents/approval_request_message.py +57 -0
  99. letta_client/types/agents/approval_response_message.py +61 -0
  100. letta_client/types/agents/approval_return.py +22 -0
  101. letta_client/types/agents/approval_return_param.py +22 -0
  102. letta_client/types/agents/assistant_message.py +48 -0
  103. letta_client/types/agents/block.py +68 -0
  104. letta_client/types/agents/block_list_params.py +34 -0
  105. letta_client/types/agents/block_update_params.py +63 -0
  106. letta_client/types/agents/event_message.py +40 -0
  107. letta_client/types/agents/file_close_all_response.py +8 -0
  108. letta_client/types/agents/file_list_params.py +40 -0
  109. letta_client/types/agents/file_list_response.py +42 -0
  110. letta_client/types/agents/file_open_response.py +8 -0
  111. letta_client/types/agents/folder_list_params.py +34 -0
  112. letta_client/types/agents/folder_list_response.py +49 -0
  113. letta_client/types/agents/hidden_reasoning_message.py +49 -0
  114. letta_client/types/agents/image_content.py +67 -0
  115. letta_client/types/agents/image_content_param.py +64 -0
  116. letta_client/types/agents/internal_message.py +271 -0
  117. letta_client/types/agents/job_status.py +7 -0
  118. letta_client/types/agents/job_type.py +7 -0
  119. letta_client/types/agents/letta_assistant_message_content_union.py +19 -0
  120. letta_client/types/agents/letta_response.py +76 -0
  121. letta_client/types/agents/letta_streaming_response.py +155 -0
  122. letta_client/types/agents/letta_user_message_content_union.py +14 -0
  123. letta_client/types/agents/message.py +36 -0
  124. letta_client/types/agents/message_cancel_params.py +15 -0
  125. letta_client/types/agents/message_cancel_response.py +8 -0
  126. letta_client/types/agents/message_compact_params.py +145 -0
  127. letta_client/types/agents/message_compact_response.py +13 -0
  128. letta_client/types/agents/message_create_async_params.py +145 -0
  129. letta_client/types/agents/message_create_params.py +181 -0
  130. letta_client/types/agents/message_list_params.py +55 -0
  131. letta_client/types/agents/message_reset_params.py +12 -0
  132. letta_client/types/agents/message_role.py +7 -0
  133. letta_client/types/agents/message_stream_params.py +166 -0
  134. letta_client/types/agents/message_type.py +17 -0
  135. letta_client/types/agents/omitted_reasoning_content.py +20 -0
  136. letta_client/types/agents/omitted_reasoning_content_param.py +20 -0
  137. letta_client/types/agents/passage_create_params.py +23 -0
  138. letta_client/types/agents/passage_create_response.py +10 -0
  139. letta_client/types/agents/passage_list_params.py +28 -0
  140. letta_client/types/agents/passage_list_response.py +10 -0
  141. letta_client/types/agents/passage_search_params.py +35 -0
  142. letta_client/types/agents/passage_search_response.py +29 -0
  143. letta_client/types/agents/reasoning_content.py +27 -0
  144. letta_client/types/agents/reasoning_content_param.py +27 -0
  145. letta_client/types/agents/reasoning_message.py +50 -0
  146. letta_client/types/agents/redacted_reasoning_content.py +18 -0
  147. letta_client/types/agents/redacted_reasoning_content_param.py +17 -0
  148. letta_client/types/agents/run.py +91 -0
  149. letta_client/types/agents/summary_message.py +38 -0
  150. letta_client/types/agents/system_message.py +46 -0
  151. letta_client/types/agents/text_content.py +19 -0
  152. letta_client/types/agents/text_content_param.py +19 -0
  153. letta_client/types/agents/tool_call.py +13 -0
  154. letta_client/types/agents/tool_call_content.py +28 -0
  155. letta_client/types/agents/tool_call_content_param.py +28 -0
  156. letta_client/types/agents/tool_call_delta.py +15 -0
  157. letta_client/types/agents/tool_call_message.py +52 -0
  158. letta_client/types/agents/tool_execution_result.py +33 -0
  159. letta_client/types/agents/tool_list_params.py +34 -0
  160. letta_client/types/agents/tool_return.py +29 -0
  161. letta_client/types/agents/tool_return_content.py +22 -0
  162. letta_client/types/agents/tool_return_content_param.py +21 -0
  163. letta_client/types/agents/tool_return_param.py +30 -0
  164. letta_client/types/agents/tool_run_params.py +16 -0
  165. letta_client/types/agents/tool_update_approval_params.py +21 -0
  166. letta_client/types/agents/user_message.py +50 -0
  167. letta_client/types/anthropic_model_settings.py +62 -0
  168. letta_client/types/anthropic_model_settings_param.py +59 -0
  169. letta_client/types/archive.py +46 -0
  170. letta_client/types/archive_create_params.py +22 -0
  171. letta_client/types/archive_list_params.py +40 -0
  172. letta_client/types/archive_update_params.py +14 -0
  173. letta_client/types/archives/__init__.py +5 -0
  174. letta_client/types/archives/passage_create_params.py +21 -0
  175. letta_client/types/azure_model_settings.py +36 -0
  176. letta_client/types/azure_model_settings_param.py +33 -0
  177. letta_client/types/bedrock_model_settings.py +36 -0
  178. letta_client/types/bedrock_model_settings_param.py +33 -0
  179. letta_client/types/block_create_params.py +59 -0
  180. letta_client/types/block_list_params.py +102 -0
  181. letta_client/types/block_response.py +66 -0
  182. letta_client/types/block_update_params.py +60 -0
  183. letta_client/types/blocks/__init__.py +5 -0
  184. letta_client/types/blocks/agent_list_params.py +61 -0
  185. letta_client/types/child_tool_rule.py +37 -26
  186. letta_client/types/child_tool_rule_param.py +50 -0
  187. letta_client/types/conditional_tool_rule.py +19 -35
  188. letta_client/types/conditional_tool_rule_param.py +31 -0
  189. letta_client/types/continue_tool_rule.py +13 -23
  190. letta_client/types/continue_tool_rule_param.py +22 -0
  191. letta_client/types/conversation.py +42 -0
  192. letta_client/types/conversation_cancel_response.py +8 -0
  193. letta_client/types/conversation_create_params.py +25 -0
  194. letta_client/types/conversation_list_params.py +19 -0
  195. letta_client/types/conversation_list_response.py +10 -0
  196. letta_client/types/conversation_update_params.py +13 -0
  197. letta_client/types/conversations/__init__.py +7 -0
  198. letta_client/types/conversations/message_create_params.py +166 -0
  199. letta_client/types/conversations/message_list_params.py +43 -0
  200. letta_client/types/conversations/message_stream_params.py +28 -0
  201. letta_client/types/create_block_param.py +61 -0
  202. letta_client/types/create_sse_mcp_server_param.py +26 -0
  203. letta_client/types/create_stdio_mcp_server_param.py +25 -0
  204. letta_client/types/create_streamable_http_mcp_server_param.py +26 -0
  205. letta_client/types/deepseek_model_settings.py +36 -0
  206. letta_client/types/deepseek_model_settings_param.py +33 -0
  207. letta_client/types/embedding_config.py +47 -67
  208. letta_client/types/embedding_config_param.py +64 -0
  209. letta_client/types/embedding_model.py +81 -0
  210. letta_client/types/folder.py +28 -66
  211. letta_client/types/folder_create_params.py +33 -0
  212. letta_client/types/folder_list_params.py +37 -0
  213. letta_client/types/folder_update_params.py +27 -0
  214. letta_client/types/folders/__init__.py +12 -0
  215. letta_client/types/folders/agent_list_params.py +34 -0
  216. letta_client/types/folders/agent_list_response.py +8 -0
  217. letta_client/types/folders/file_list_params.py +37 -0
  218. letta_client/types/folders/file_list_response.py +70 -0
  219. letta_client/types/folders/file_retrieve_params.py +15 -0
  220. letta_client/types/folders/file_retrieve_response.py +70 -0
  221. letta_client/types/folders/file_upload_params.py +20 -0
  222. letta_client/types/folders/file_upload_response.py +70 -0
  223. letta_client/types/google_ai_model_settings.py +47 -0
  224. letta_client/types/google_ai_model_settings_param.py +44 -0
  225. letta_client/types/google_vertex_model_settings.py +47 -0
  226. letta_client/types/google_vertex_model_settings_param.py +44 -0
  227. letta_client/types/groq_model_settings.py +36 -0
  228. letta_client/types/groq_model_settings_param.py +33 -0
  229. letta_client/types/health_response.py +13 -0
  230. letta_client/types/init_tool_rule.py +24 -24
  231. letta_client/types/init_tool_rule_param.py +32 -0
  232. letta_client/types/json_object_response_format.py +9 -17
  233. letta_client/types/json_object_response_format_param.py +14 -0
  234. letta_client/types/json_schema_response_format.py +12 -21
  235. letta_client/types/json_schema_response_format_param.py +18 -0
  236. letta_client/types/letta_message_content_union_param.py +26 -0
  237. letta_client/types/llm_config.py +124 -75
  238. letta_client/types/llm_config_param.py +155 -0
  239. letta_client/types/max_count_per_step_tool_rule.py +16 -25
  240. letta_client/types/max_count_per_step_tool_rule_param.py +28 -0
  241. letta_client/types/mcp_server_create_params.py +23 -0
  242. letta_client/types/mcp_server_create_response.py +12 -0
  243. letta_client/types/mcp_server_list_response.py +14 -0
  244. letta_client/types/mcp_server_refresh_params.py +12 -0
  245. letta_client/types/mcp_server_retrieve_response.py +12 -0
  246. letta_client/types/mcp_server_update_params.py +23 -0
  247. letta_client/types/mcp_server_update_response.py +12 -0
  248. letta_client/types/mcp_servers/__init__.py +6 -0
  249. letta_client/types/mcp_servers/tool_list_response.py +10 -0
  250. letta_client/types/mcp_servers/tool_run_params.py +15 -0
  251. letta_client/types/message_create_param.py +38 -0
  252. letta_client/types/message_list_params.py +34 -0
  253. letta_client/types/message_list_response.py +10 -0
  254. letta_client/types/message_retrieve_response.py +10 -0
  255. letta_client/types/message_search_params.py +34 -0
  256. letta_client/types/message_search_response.py +124 -0
  257. letta_client/types/model.py +148 -0
  258. letta_client/types/model_list_params.py +19 -0
  259. letta_client/types/model_list_response.py +10 -0
  260. letta_client/types/models/__init__.py +5 -0
  261. letta_client/types/models/embedding_list_response.py +10 -0
  262. letta_client/types/npm_requirement.py +15 -0
  263. letta_client/types/npm_requirement_param.py +16 -0
  264. letta_client/types/openai_model_settings.py +51 -0
  265. letta_client/types/openai_model_settings_param.py +48 -0
  266. letta_client/types/parent_tool_rule.py +15 -27
  267. letta_client/types/parent_tool_rule_param.py +27 -0
  268. letta_client/types/passage.py +56 -101
  269. letta_client/types/passage_search_params.py +41 -0
  270. letta_client/types/passage_search_response.py +25 -0
  271. letta_client/types/pip_requirement.py +9 -21
  272. letta_client/types/pip_requirement_param.py +16 -0
  273. letta_client/types/provider_category.py +5 -3
  274. letta_client/types/provider_trace.py +43 -48
  275. letta_client/types/provider_type.py +25 -23
  276. letta_client/types/required_before_exit_tool_rule.py +13 -23
  277. letta_client/types/required_before_exit_tool_rule_param.py +22 -0
  278. letta_client/types/requires_approval_tool_rule.py +25 -0
  279. letta_client/types/requires_approval_tool_rule_param.py +25 -0
  280. letta_client/types/run_list_params.py +67 -0
  281. letta_client/types/runs/__init__.py +10 -0
  282. letta_client/types/runs/message_list_params.py +34 -0
  283. letta_client/types/runs/message_stream_params.py +28 -0
  284. letta_client/types/runs/step_list_params.py +28 -0
  285. letta_client/types/runs/trace_retrieve_params.py +12 -0
  286. letta_client/types/runs/trace_retrieve_response.py +8 -0
  287. letta_client/types/runs/usage_retrieve_response.py +31 -0
  288. letta_client/types/sse_mcp_server.py +32 -0
  289. letta_client/types/stdio_mcp_server.py +29 -0
  290. letta_client/types/step.py +71 -97
  291. letta_client/types/step_list_params.py +57 -0
  292. letta_client/types/steps/__init__.py +8 -0
  293. letta_client/types/steps/feedback_create_params.py +18 -0
  294. letta_client/types/steps/message_list_params.py +34 -0
  295. letta_client/types/steps/message_list_response.py +36 -0
  296. letta_client/types/steps/metric_retrieve_response.py +45 -0
  297. letta_client/types/stop_reason_type.py +17 -5
  298. letta_client/types/streamable_http_mcp_server.py +32 -0
  299. letta_client/types/tag_list_params.py +40 -0
  300. letta_client/types/tag_list_response.py +8 -0
  301. letta_client/types/template_create_params.py +46 -0
  302. letta_client/types/template_create_response.py +29 -0
  303. letta_client/types/template_delete_response.py +9 -0
  304. letta_client/types/template_update_params.py +25 -0
  305. letta_client/types/template_update_response.py +13 -0
  306. letta_client/types/templates/__init__.py +6 -0
  307. letta_client/types/templates/agent_create_params.py +50 -0
  308. letta_client/types/templates/agent_create_response.py +20 -0
  309. letta_client/types/terminal_tool_rule.py +13 -23
  310. letta_client/types/terminal_tool_rule_param.py +22 -0
  311. letta_client/types/text_response_format.py +9 -17
  312. letta_client/types/text_response_format_param.py +14 -0
  313. letta_client/types/together_model_settings.py +36 -0
  314. letta_client/types/together_model_settings_param.py +33 -0
  315. letta_client/types/tool.py +154 -81
  316. letta_client/types/tool_create_params.py +53 -0
  317. letta_client/types/tool_list_params.py +57 -0
  318. letta_client/types/tool_return_message.py +44 -31
  319. letta_client/types/tool_search_params.py +27 -0
  320. letta_client/types/tool_search_response.py +10 -0
  321. letta_client/types/tool_search_result.py +27 -0
  322. letta_client/types/tool_type.py +16 -17
  323. letta_client/types/tool_update_params.py +57 -0
  324. letta_client/types/tool_upsert_params.py +53 -0
  325. letta_client/types/update_sse_mcp_server_param.py +26 -0
  326. letta_client/types/update_stdio_mcp_server_param.py +25 -0
  327. letta_client/types/update_streamable_http_mcp_server_param.py +26 -0
  328. letta_client/types/vector_db_provider.py +7 -0
  329. letta_client/types/xai_model_settings.py +36 -0
  330. letta_client/types/xai_model_settings_param.py +33 -0
  331. letta_client-1.7.2.dist-info/METADATA +436 -0
  332. letta_client-1.7.2.dist-info/RECORD +335 -0
  333. {letta_client-0.1.226.dist-info → letta_client-1.7.2.dist-info}/WHEEL +1 -1
  334. letta_client-1.7.2.dist-info/licenses/LICENSE +201 -0
  335. letta_client/agents/__init__.py +0 -77
  336. letta_client/agents/blocks/__init__.py +0 -2
  337. letta_client/agents/blocks/client.py +0 -793
  338. letta_client/agents/client.py +0 -2371
  339. letta_client/agents/context/__init__.py +0 -2
  340. letta_client/agents/context/client.py +0 -149
  341. letta_client/agents/core_memory/__init__.py +0 -2
  342. letta_client/agents/core_memory/client.py +0 -147
  343. letta_client/agents/files/__init__.py +0 -2
  344. letta_client/agents/files/client.py +0 -430
  345. letta_client/agents/folders/__init__.py +0 -2
  346. letta_client/agents/folders/client.py +0 -412
  347. letta_client/agents/groups/__init__.py +0 -2
  348. letta_client/agents/groups/client.py +0 -169
  349. letta_client/agents/memory_variables/__init__.py +0 -5
  350. letta_client/agents/memory_variables/client.py +0 -152
  351. letta_client/agents/memory_variables/types/__init__.py +0 -5
  352. letta_client/agents/memory_variables/types/memory_variables_list_response.py +0 -19
  353. letta_client/agents/messages/__init__.py +0 -15
  354. letta_client/agents/messages/client.py +0 -1638
  355. letta_client/agents/messages/types/__init__.py +0 -13
  356. letta_client/agents/messages/types/letta_streaming_response.py +0 -22
  357. letta_client/agents/messages/types/messages_modify_request.py +0 -11
  358. letta_client/agents/messages/types/messages_modify_response.py +0 -20
  359. letta_client/agents/messages/types/messages_preview_raw_payload_request.py +0 -7
  360. letta_client/agents/passages/__init__.py +0 -2
  361. letta_client/agents/passages/client.py +0 -793
  362. letta_client/agents/sources/__init__.py +0 -2
  363. letta_client/agents/sources/client.py +0 -412
  364. letta_client/agents/templates/__init__.py +0 -5
  365. letta_client/agents/templates/client.py +0 -588
  366. letta_client/agents/templates/types/__init__.py +0 -7
  367. letta_client/agents/templates/types/templates_create_response.py +0 -22
  368. letta_client/agents/templates/types/templates_create_version_request_return_agent_state.py +0 -5
  369. letta_client/agents/templates/types/templates_migrate_response.py +0 -19
  370. letta_client/agents/tools/__init__.py +0 -2
  371. letta_client/agents/tools/client.py +0 -412
  372. letta_client/agents/types/__init__.py +0 -33
  373. letta_client/agents/types/agents_search_request_search_item.py +0 -16
  374. letta_client/agents/types/agents_search_request_search_item_field.py +0 -22
  375. letta_client/agents/types/agents_search_request_search_item_field_operator.py +0 -5
  376. letta_client/agents/types/agents_search_request_search_item_one.py +0 -22
  377. letta_client/agents/types/agents_search_request_search_item_one_operator.py +0 -5
  378. letta_client/agents/types/agents_search_request_search_item_three.py +0 -21
  379. letta_client/agents/types/agents_search_request_search_item_two.py +0 -21
  380. letta_client/agents/types/agents_search_request_search_item_zero.py +0 -20
  381. letta_client/agents/types/agents_search_request_sort_by.py +0 -5
  382. letta_client/agents/types/agents_search_response.py +0 -23
  383. letta_client/agents/types/create_agent_request_response_format.py +0 -8
  384. letta_client/agents/types/create_agent_request_tool_rules_item.py +0 -22
  385. letta_client/agents/types/update_agent_response_format.py +0 -8
  386. letta_client/agents/types/update_agent_tool_rules_item.py +0 -22
  387. letta_client/base_client.py +0 -232
  388. letta_client/batches/__init__.py +0 -2
  389. letta_client/batches/client.py +0 -587
  390. letta_client/blocks/__init__.py +0 -5
  391. letta_client/blocks/agents/__init__.py +0 -2
  392. letta_client/blocks/agents/client.py +0 -171
  393. letta_client/blocks/client.py +0 -1038
  394. letta_client/client.py +0 -661
  395. letta_client/client_side_access_tokens/__init__.py +0 -29
  396. letta_client/client_side_access_tokens/client.py +0 -524
  397. letta_client/client_side_access_tokens/types/__init__.py +0 -43
  398. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_request_policy_item.py +0 -24
  399. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_request_policy_item_access_item.py +0 -7
  400. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response.py +0 -25
  401. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy.py +0 -23
  402. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy_data_item.py +0 -24
  403. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy_data_item_access_item.py +0 -7
  404. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response.py +0 -25
  405. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item.py +0 -27
  406. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy.py +0 -23
  407. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy_data_item.py +0 -24
  408. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy_data_item_access_item.py +0 -7
  409. letta_client/core/__init__.py +0 -51
  410. letta_client/core/api_error.py +0 -15
  411. letta_client/core/client_wrapper.py +0 -77
  412. letta_client/core/datetime_utils.py +0 -28
  413. letta_client/core/file.py +0 -67
  414. letta_client/core/http_client.py +0 -499
  415. letta_client/core/jsonable_encoder.py +0 -101
  416. letta_client/core/pydantic_utilities.py +0 -296
  417. letta_client/core/query_encoder.py +0 -58
  418. letta_client/core/remove_none_from_dict.py +0 -11
  419. letta_client/core/request_options.py +0 -35
  420. letta_client/core/serialization.py +0 -272
  421. letta_client/core/unchecked_base_model.py +0 -305
  422. letta_client/embedding_models/__init__.py +0 -2
  423. letta_client/embedding_models/client.py +0 -136
  424. letta_client/environment.py +0 -8
  425. letta_client/errors/__init__.py +0 -17
  426. letta_client/errors/bad_request_error.py +0 -9
  427. letta_client/errors/conflict_error.py +0 -9
  428. letta_client/errors/internal_server_error.py +0 -9
  429. letta_client/errors/not_found_error.py +0 -9
  430. letta_client/errors/payment_required_error.py +0 -9
  431. letta_client/errors/unprocessable_entity_error.py +0 -9
  432. letta_client/folders/__init__.py +0 -5
  433. letta_client/folders/client.py +0 -1307
  434. letta_client/folders/files/__init__.py +0 -2
  435. letta_client/folders/files/client.py +0 -474
  436. letta_client/folders/passages/__init__.py +0 -2
  437. letta_client/folders/passages/client.py +0 -189
  438. letta_client/groups/__init__.py +0 -14
  439. letta_client/groups/client.py +0 -964
  440. letta_client/groups/messages/__init__.py +0 -5
  441. letta_client/groups/messages/client.py +0 -1015
  442. letta_client/groups/messages/types/__init__.py +0 -7
  443. letta_client/groups/messages/types/letta_streaming_response.py +0 -20
  444. letta_client/groups/messages/types/messages_modify_request.py +0 -11
  445. letta_client/groups/messages/types/messages_modify_response.py +0 -20
  446. letta_client/groups/types/__init__.py +0 -6
  447. letta_client/groups/types/group_create_manager_config.py +0 -12
  448. letta_client/groups/types/group_update_manager_config.py +0 -16
  449. letta_client/health/__init__.py +0 -2
  450. letta_client/health/client.py +0 -110
  451. letta_client/identities/__init__.py +0 -5
  452. letta_client/identities/client.py +0 -1201
  453. letta_client/identities/properties/__init__.py +0 -2
  454. letta_client/identities/properties/client.py +0 -183
  455. letta_client/jobs/__init__.py +0 -2
  456. letta_client/jobs/client.py +0 -749
  457. letta_client/messages/__init__.py +0 -2
  458. letta_client/messages/client.py +0 -213
  459. letta_client/models/__init__.py +0 -2
  460. letta_client/models/client.py +0 -174
  461. letta_client/projects/__init__.py +0 -5
  462. letta_client/projects/client.py +0 -150
  463. letta_client/projects/types/__init__.py +0 -6
  464. letta_client/projects/types/projects_list_response.py +0 -23
  465. letta_client/projects/types/projects_list_response_projects_item.py +0 -21
  466. letta_client/providers/__init__.py +0 -2
  467. letta_client/providers/client.py +0 -789
  468. letta_client/runs/__init__.py +0 -5
  469. letta_client/runs/client.py +0 -551
  470. letta_client/runs/messages/__init__.py +0 -2
  471. letta_client/runs/messages/client.py +0 -236
  472. letta_client/runs/steps/__init__.py +0 -2
  473. letta_client/runs/steps/client.py +0 -219
  474. letta_client/runs/usage/__init__.py +0 -2
  475. letta_client/runs/usage/client.py +0 -147
  476. letta_client/sources/__init__.py +0 -5
  477. letta_client/sources/client.py +0 -1462
  478. letta_client/sources/files/__init__.py +0 -2
  479. letta_client/sources/files/client.py +0 -474
  480. letta_client/sources/passages/__init__.py +0 -2
  481. letta_client/sources/passages/client.py +0 -189
  482. letta_client/steps/__init__.py +0 -6
  483. letta_client/steps/client.py +0 -408
  484. letta_client/steps/feedback/__init__.py +0 -2
  485. letta_client/steps/feedback/client.py +0 -168
  486. letta_client/steps/types/__init__.py +0 -5
  487. letta_client/steps/types/steps_list_request_feedback.py +0 -5
  488. letta_client/tags/__init__.py +0 -2
  489. letta_client/tags/client.py +0 -171
  490. letta_client/telemetry/__init__.py +0 -2
  491. letta_client/telemetry/client.py +0 -145
  492. letta_client/templates/__init__.py +0 -18
  493. letta_client/templates/agents/__init__.py +0 -13
  494. letta_client/templates/agents/client.py +0 -256
  495. letta_client/templates/agents/types/__init__.py +0 -11
  496. letta_client/templates/agents/types/agents_create_request_initial_message_sequence_item.py +0 -26
  497. letta_client/templates/agents/types/agents_create_request_initial_message_sequence_item_role.py +0 -7
  498. letta_client/templates/agents/types/agents_create_response.py +0 -20
  499. letta_client/templates/client.py +0 -162
  500. letta_client/templates/types/__init__.py +0 -6
  501. letta_client/templates/types/templates_list_response.py +0 -23
  502. letta_client/templates/types/templates_list_response_templates_item.py +0 -20
  503. letta_client/tools/__init__.py +0 -27
  504. letta_client/tools/client.py +0 -3063
  505. letta_client/tools/types/__init__.py +0 -25
  506. letta_client/tools/types/add_mcp_server_request.py +0 -8
  507. letta_client/tools/types/add_mcp_server_response_item.py +0 -8
  508. letta_client/tools/types/connect_mcp_server_request.py +0 -8
  509. letta_client/tools/types/connect_mcp_server_response_event.py +0 -8
  510. letta_client/tools/types/delete_mcp_server_response_item.py +0 -8
  511. letta_client/tools/types/list_mcp_servers_response_value.py +0 -8
  512. letta_client/tools/types/streaming_response.py +0 -23
  513. letta_client/tools/types/test_mcp_server_request.py +0 -8
  514. letta_client/tools/types/update_mcp_server_request.py +0 -8
  515. letta_client/tools/types/update_mcp_server_response.py +0 -8
  516. letta_client/types/action_model.py +0 -38
  517. letta_client/types/action_parameters_model.py +0 -27
  518. letta_client/types/action_response_model.py +0 -27
  519. letta_client/types/agent_schema.py +0 -49
  520. letta_client/types/agent_schema_tool_rules_item.py +0 -11
  521. letta_client/types/agent_state_response_format.py +0 -8
  522. letta_client/types/agent_state_tool_rules_item.py +0 -22
  523. letta_client/types/app_auth_scheme.py +0 -34
  524. letta_client/types/app_auth_scheme_auth_mode.py +0 -19
  525. letta_client/types/app_model.py +0 -44
  526. letta_client/types/assistant_message.py +0 -42
  527. letta_client/types/assistant_message_content.py +0 -6
  528. letta_client/types/audio.py +0 -19
  529. letta_client/types/auth_request.py +0 -22
  530. letta_client/types/auth_response.py +0 -29
  531. letta_client/types/auth_scheme_field.py +0 -30
  532. letta_client/types/bad_request_error_body.py +0 -19
  533. letta_client/types/base_64_image.py +0 -33
  534. letta_client/types/base_tool_rule_schema.py +0 -20
  535. letta_client/types/batch_job.py +0 -81
  536. letta_client/types/block.py +0 -97
  537. letta_client/types/block_update.py +0 -71
  538. letta_client/types/chat_completion_assistant_message_param.py +0 -29
  539. letta_client/types/chat_completion_assistant_message_param_content.py +0 -8
  540. letta_client/types/chat_completion_assistant_message_param_content_item.py +0 -9
  541. letta_client/types/chat_completion_audio_param.py +0 -22
  542. letta_client/types/chat_completion_audio_param_format.py +0 -5
  543. letta_client/types/chat_completion_audio_param_voice.py +0 -18
  544. letta_client/types/chat_completion_content_part_image_param.py +0 -21
  545. letta_client/types/chat_completion_content_part_input_audio_param.py +0 -21
  546. letta_client/types/chat_completion_content_part_refusal_param.py +0 -20
  547. letta_client/types/chat_completion_content_part_text_param.py +0 -20
  548. letta_client/types/chat_completion_developer_message_param.py +0 -22
  549. letta_client/types/chat_completion_developer_message_param_content.py +0 -6
  550. letta_client/types/chat_completion_function_call_option_param.py +0 -19
  551. letta_client/types/chat_completion_function_message_param.py +0 -21
  552. letta_client/types/chat_completion_message_tool_call.py +0 -22
  553. letta_client/types/chat_completion_message_tool_call_param.py +0 -24
  554. letta_client/types/chat_completion_named_tool_choice_param.py +0 -23
  555. letta_client/types/chat_completion_prediction_content_param.py +0 -21
  556. letta_client/types/chat_completion_prediction_content_param_content.py +0 -6
  557. letta_client/types/chat_completion_stream_options_param.py +0 -19
  558. letta_client/types/chat_completion_system_message_param.py +0 -22
  559. letta_client/types/chat_completion_system_message_param_content.py +0 -6
  560. letta_client/types/chat_completion_tool_message_param.py +0 -22
  561. letta_client/types/chat_completion_tool_message_param_content.py +0 -6
  562. letta_client/types/chat_completion_tool_param.py +0 -21
  563. letta_client/types/chat_completion_user_message_param.py +0 -22
  564. letta_client/types/chat_completion_user_message_param_content.py +0 -6
  565. letta_client/types/chat_completion_user_message_param_content_item.py +0 -14
  566. letta_client/types/child_tool_rule_schema.py +0 -21
  567. letta_client/types/code_input.py +0 -22
  568. letta_client/types/completion_create_params_non_streaming.py +0 -64
  569. letta_client/types/completion_create_params_non_streaming_function_call.py +0 -8
  570. letta_client/types/completion_create_params_non_streaming_messages_item.py +0 -18
  571. letta_client/types/completion_create_params_non_streaming_modalities_item.py +0 -5
  572. letta_client/types/completion_create_params_non_streaming_model.py +0 -62
  573. letta_client/types/completion_create_params_non_streaming_reasoning_effort.py +0 -5
  574. letta_client/types/completion_create_params_non_streaming_response_format.py +0 -10
  575. letta_client/types/completion_create_params_non_streaming_service_tier.py +0 -7
  576. letta_client/types/completion_create_params_non_streaming_stop.py +0 -5
  577. letta_client/types/completion_create_params_non_streaming_tool_choice.py +0 -8
  578. letta_client/types/completion_create_params_streaming.py +0 -64
  579. letta_client/types/completion_create_params_streaming_function_call.py +0 -8
  580. letta_client/types/completion_create_params_streaming_messages_item.py +0 -18
  581. letta_client/types/completion_create_params_streaming_modalities_item.py +0 -5
  582. letta_client/types/completion_create_params_streaming_model.py +0 -62
  583. letta_client/types/completion_create_params_streaming_reasoning_effort.py +0 -5
  584. letta_client/types/completion_create_params_streaming_response_format.py +0 -10
  585. letta_client/types/completion_create_params_streaming_service_tier.py +0 -7
  586. letta_client/types/completion_create_params_streaming_stop.py +0 -5
  587. letta_client/types/completion_create_params_streaming_tool_choice.py +0 -8
  588. letta_client/types/components_schemas_text_content.py +0 -5
  589. letta_client/types/conditional_tool_rule_schema.py +0 -23
  590. letta_client/types/conflict_error_body.py +0 -21
  591. letta_client/types/context_window_overview.py +0 -108
  592. letta_client/types/core_memory_block_schema.py +0 -31
  593. letta_client/types/create_block.py +0 -67
  594. letta_client/types/duplicate_file_handling.py +0 -5
  595. letta_client/types/dynamic_manager.py +0 -33
  596. letta_client/types/dynamic_manager_update.py +0 -33
  597. letta_client/types/e_2_b_sandbox_config.py +0 -32
  598. letta_client/types/embedding_config_embedding_endpoint_type.py +0 -29
  599. letta_client/types/feedback_type.py +0 -5
  600. letta_client/types/file.py +0 -21
  601. letta_client/types/file_block.py +0 -103
  602. letta_client/types/file_file.py +0 -21
  603. letta_client/types/file_metadata.py +0 -108
  604. letta_client/types/file_processing_status.py +0 -5
  605. letta_client/types/file_stats.py +0 -36
  606. letta_client/types/function_call.py +0 -20
  607. letta_client/types/function_definition_input.py +0 -22
  608. letta_client/types/function_definition_output.py +0 -22
  609. letta_client/types/function_output.py +0 -20
  610. letta_client/types/function_tool.py +0 -21
  611. letta_client/types/generate_tool_input.py +0 -42
  612. letta_client/types/generate_tool_output.py +0 -33
  613. letta_client/types/group.py +0 -88
  614. letta_client/types/health.py +0 -24
  615. letta_client/types/hidden_reasoning_message.py +0 -43
  616. letta_client/types/hidden_reasoning_message_state.py +0 -5
  617. letta_client/types/http_validation_error.py +0 -20
  618. letta_client/types/identity.py +0 -59
  619. letta_client/types/identity_property.py +0 -38
  620. letta_client/types/identity_property_type.py +0 -5
  621. letta_client/types/identity_property_value.py +0 -5
  622. letta_client/types/identity_type.py +0 -5
  623. letta_client/types/image_content.py +0 -24
  624. letta_client/types/image_content_source.py +0 -8
  625. letta_client/types/image_url.py +0 -21
  626. letta_client/types/image_url_detail.py +0 -5
  627. letta_client/types/input_audio.py +0 -21
  628. letta_client/types/input_audio_format.py +0 -5
  629. letta_client/types/internal_server_error_body.py +0 -19
  630. letta_client/types/job.py +0 -96
  631. letta_client/types/job_status.py +0 -7
  632. letta_client/types/job_type.py +0 -5
  633. letta_client/types/json_schema.py +0 -26
  634. letta_client/types/letta_batch_messages.py +0 -20
  635. letta_client/types/letta_batch_request.py +0 -59
  636. letta_client/types/letta_image.py +0 -38
  637. letta_client/types/letta_message_content_union.py +0 -13
  638. letta_client/types/letta_message_union.py +0 -20
  639. letta_client/types/letta_request.py +0 -54
  640. letta_client/types/letta_request_config.py +0 -38
  641. letta_client/types/letta_response.py +0 -40
  642. letta_client/types/letta_stop_reason.py +0 -32
  643. letta_client/types/letta_streaming_request.py +0 -59
  644. letta_client/types/letta_usage_statistics.py +0 -59
  645. letta_client/types/letta_user_message_content_union.py +0 -7
  646. letta_client/types/llm_config_model_endpoint_type.py +0 -31
  647. letta_client/types/llm_config_reasoning_effort.py +0 -5
  648. letta_client/types/local_sandbox_config.py +0 -38
  649. letta_client/types/manager_type.py +0 -7
  650. letta_client/types/max_count_per_step_tool_rule_schema.py +0 -21
  651. letta_client/types/mcp_server_type.py +0 -5
  652. letta_client/types/mcp_tool.py +0 -38
  653. letta_client/types/memory.py +0 -38
  654. letta_client/types/message.py +0 -139
  655. letta_client/types/message_content_item.py +0 -20
  656. letta_client/types/message_create.py +0 -58
  657. letta_client/types/message_create_content.py +0 -6
  658. letta_client/types/message_create_role.py +0 -5
  659. letta_client/types/message_role.py +0 -5
  660. letta_client/types/message_schema.py +0 -29
  661. letta_client/types/message_type.py +0 -16
  662. letta_client/types/not_found_error_body.py +0 -19
  663. letta_client/types/not_found_error_body_message.py +0 -11
  664. letta_client/types/omitted_reasoning_content.py +0 -19
  665. letta_client/types/openai_types_chat_chat_completion_message_tool_call_param_function.py +0 -20
  666. letta_client/types/openai_types_chat_chat_completion_named_tool_choice_param_function.py +0 -19
  667. letta_client/types/openai_types_chat_completion_create_params_function.py +0 -21
  668. letta_client/types/organization.py +0 -38
  669. letta_client/types/organization_create.py +0 -27
  670. letta_client/types/organization_sources_stats.py +0 -42
  671. letta_client/types/organization_update.py +0 -27
  672. letta_client/types/parameter_properties.py +0 -20
  673. letta_client/types/parameters_schema.py +0 -22
  674. letta_client/types/payment_required_error_body.py +0 -20
  675. letta_client/types/provider.py +0 -65
  676. letta_client/types/provider_check.py +0 -38
  677. letta_client/types/reasoning_content.py +0 -33
  678. letta_client/types/reasoning_message.py +0 -44
  679. letta_client/types/reasoning_message_source.py +0 -5
  680. letta_client/types/redacted_reasoning_content.py +0 -23
  681. letta_client/types/response_format_json_object.py +0 -19
  682. letta_client/types/response_format_json_schema.py +0 -21
  683. letta_client/types/response_format_text.py +0 -19
  684. letta_client/types/round_robin_manager.py +0 -23
  685. letta_client/types/round_robin_manager_update.py +0 -23
  686. letta_client/types/run.py +0 -99
  687. letta_client/types/sandbox_config.py +0 -54
  688. letta_client/types/sandbox_config_create.py +0 -23
  689. letta_client/types/sandbox_config_create_config.py +0 -7
  690. letta_client/types/sandbox_config_update.py +0 -27
  691. letta_client/types/sandbox_config_update_config.py +0 -7
  692. letta_client/types/sandbox_environment_variable.py +0 -63
  693. letta_client/types/sandbox_environment_variable_create.py +0 -32
  694. letta_client/types/sandbox_environment_variable_update.py +0 -32
  695. letta_client/types/sandbox_type.py +0 -5
  696. letta_client/types/sleeptime_manager.py +0 -28
  697. letta_client/types/sleeptime_manager_update.py +0 -28
  698. letta_client/types/source.py +0 -81
  699. letta_client/types/source_create.py +0 -57
  700. letta_client/types/source_stats.py +0 -47
  701. letta_client/types/source_update.py +0 -47
  702. letta_client/types/sse_server_config.py +0 -55
  703. letta_client/types/stdio_server_config.py +0 -39
  704. letta_client/types/step_feedback.py +0 -5
  705. letta_client/types/streamable_http_server_config.py +0 -55
  706. letta_client/types/supervisor_manager.py +0 -23
  707. letta_client/types/supervisor_manager_update.py +0 -23
  708. letta_client/types/system_message.py +0 -41
  709. letta_client/types/tag_schema.py +0 -19
  710. letta_client/types/text_content.py +0 -23
  711. letta_client/types/tool_annotations.py +0 -36
  712. letta_client/types/tool_call.py +0 -21
  713. letta_client/types/tool_call_content.py +0 -33
  714. letta_client/types/tool_call_delta.py +0 -21
  715. letta_client/types/tool_call_message.py +0 -39
  716. letta_client/types/tool_call_message_tool_call.py +0 -7
  717. letta_client/types/tool_create.py +0 -58
  718. letta_client/types/tool_env_var_schema.py +0 -23
  719. letta_client/types/tool_json_schema.py +0 -24
  720. letta_client/types/tool_return.py +0 -33
  721. letta_client/types/tool_return_content.py +0 -33
  722. letta_client/types/tool_return_message_status.py +0 -5
  723. letta_client/types/tool_return_status.py +0 -5
  724. letta_client/types/tool_schema.py +0 -35
  725. letta_client/types/update_assistant_message.py +0 -24
  726. letta_client/types/update_assistant_message_content.py +0 -6
  727. letta_client/types/update_reasoning_message.py +0 -20
  728. letta_client/types/update_ssemcp_server.py +0 -41
  729. letta_client/types/update_stdio_mcp_server.py +0 -32
  730. letta_client/types/update_streamable_httpmcp_server.py +0 -46
  731. letta_client/types/update_system_message.py +0 -23
  732. letta_client/types/update_user_message.py +0 -24
  733. letta_client/types/update_user_message_content.py +0 -6
  734. letta_client/types/url_image.py +0 -23
  735. letta_client/types/usage_statistics.py +0 -25
  736. letta_client/types/usage_statistics_completion_token_details.py +0 -19
  737. letta_client/types/usage_statistics_prompt_token_details.py +0 -19
  738. letta_client/types/user.py +0 -52
  739. letta_client/types/user_create.py +0 -22
  740. letta_client/types/user_message.py +0 -42
  741. letta_client/types/user_message_content.py +0 -6
  742. letta_client/types/user_update.py +0 -27
  743. letta_client/types/validation_error.py +0 -22
  744. letta_client/types/validation_error_loc_item.py +0 -5
  745. letta_client/types/voice_sleeptime_manager.py +0 -33
  746. letta_client/types/voice_sleeptime_manager_update.py +0 -33
  747. letta_client/types/web_search_options.py +0 -22
  748. letta_client/types/web_search_options_search_context_size.py +0 -5
  749. letta_client/types/web_search_options_user_location.py +0 -21
  750. letta_client/types/web_search_options_user_location_approximate.py +0 -22
  751. letta_client/version.py +0 -3
  752. letta_client/voice/__init__.py +0 -2
  753. letta_client/voice/client.py +0 -177
  754. letta_client-0.1.226.dist-info/METADATA +0 -190
  755. letta_client-0.1.226.dist-info/RECORD +0 -452
@@ -1,1307 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
- from ..core.client_wrapper import SyncClientWrapper
5
- from .files.client import FilesClient
6
- from .passages.client import PassagesClient
7
- from ..core.request_options import RequestOptions
8
- from ..core.unchecked_base_model import construct_type
9
- from ..errors.unprocessable_entity_error import UnprocessableEntityError
10
- from ..types.http_validation_error import HttpValidationError
11
- from json.decoder import JSONDecodeError
12
- from ..core.api_error import ApiError
13
- from ..types.folder import Folder
14
- from ..core.jsonable_encoder import jsonable_encoder
15
- from ..types.embedding_config import EmbeddingConfig
16
- from ..core.serialization import convert_and_respect_annotation_metadata
17
- from ..types.organization_sources_stats import OrganizationSourcesStats
18
- from ..core.client_wrapper import AsyncClientWrapper
19
- from .files.client import AsyncFilesClient
20
- from .passages.client import AsyncPassagesClient
21
-
22
- # this is used as the default value for optional parameters
23
- OMIT = typing.cast(typing.Any, ...)
24
-
25
-
26
- class FoldersClient:
27
- def __init__(self, *, client_wrapper: SyncClientWrapper):
28
- self._client_wrapper = client_wrapper
29
- self.files = FilesClient(client_wrapper=self._client_wrapper)
30
- self.passages = PassagesClient(client_wrapper=self._client_wrapper)
31
-
32
- def count(self, *, request_options: typing.Optional[RequestOptions] = None) -> int:
33
- """
34
- Count all data folders created by a user.
35
-
36
- Parameters
37
- ----------
38
- request_options : typing.Optional[RequestOptions]
39
- Request-specific configuration.
40
-
41
- Returns
42
- -------
43
- int
44
- Successful Response
45
-
46
- Examples
47
- --------
48
- from letta_client import Letta
49
-
50
- client = Letta(
51
- project="YOUR_PROJECT",
52
- token="YOUR_TOKEN",
53
- )
54
- client.folders.count()
55
- """
56
- _response = self._client_wrapper.httpx_client.request(
57
- "v1/folders/count",
58
- method="GET",
59
- request_options=request_options,
60
- )
61
- try:
62
- if 200 <= _response.status_code < 300:
63
- return typing.cast(
64
- int,
65
- construct_type(
66
- type_=int, # type: ignore
67
- object_=_response.json(),
68
- ),
69
- )
70
- if _response.status_code == 422:
71
- raise UnprocessableEntityError(
72
- typing.cast(
73
- HttpValidationError,
74
- construct_type(
75
- type_=HttpValidationError, # type: ignore
76
- object_=_response.json(),
77
- ),
78
- )
79
- )
80
- _response_json = _response.json()
81
- except JSONDecodeError:
82
- raise ApiError(status_code=_response.status_code, body=_response.text)
83
- raise ApiError(status_code=_response.status_code, body=_response_json)
84
-
85
- def retrieve(self, folder_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Folder:
86
- """
87
- Get a folder by ID
88
-
89
- Parameters
90
- ----------
91
- folder_id : str
92
-
93
- request_options : typing.Optional[RequestOptions]
94
- Request-specific configuration.
95
-
96
- Returns
97
- -------
98
- Folder
99
- Successful Response
100
-
101
- Examples
102
- --------
103
- from letta_client import Letta
104
-
105
- client = Letta(
106
- project="YOUR_PROJECT",
107
- token="YOUR_TOKEN",
108
- )
109
- client.folders.retrieve(
110
- folder_id="folder_id",
111
- )
112
- """
113
- _response = self._client_wrapper.httpx_client.request(
114
- f"v1/folders/{jsonable_encoder(folder_id)}",
115
- method="GET",
116
- request_options=request_options,
117
- )
118
- try:
119
- if 200 <= _response.status_code < 300:
120
- return typing.cast(
121
- Folder,
122
- construct_type(
123
- type_=Folder, # type: ignore
124
- object_=_response.json(),
125
- ),
126
- )
127
- if _response.status_code == 422:
128
- raise UnprocessableEntityError(
129
- typing.cast(
130
- HttpValidationError,
131
- construct_type(
132
- type_=HttpValidationError, # type: ignore
133
- object_=_response.json(),
134
- ),
135
- )
136
- )
137
- _response_json = _response.json()
138
- except JSONDecodeError:
139
- raise ApiError(status_code=_response.status_code, body=_response.text)
140
- raise ApiError(status_code=_response.status_code, body=_response_json)
141
-
142
- def delete(
143
- self, folder_id: str, *, request_options: typing.Optional[RequestOptions] = None
144
- ) -> typing.Optional[typing.Any]:
145
- """
146
- Delete a data folder.
147
-
148
- Parameters
149
- ----------
150
- folder_id : str
151
-
152
- request_options : typing.Optional[RequestOptions]
153
- Request-specific configuration.
154
-
155
- Returns
156
- -------
157
- typing.Optional[typing.Any]
158
- Successful Response
159
-
160
- Examples
161
- --------
162
- from letta_client import Letta
163
-
164
- client = Letta(
165
- project="YOUR_PROJECT",
166
- token="YOUR_TOKEN",
167
- )
168
- client.folders.delete(
169
- folder_id="folder_id",
170
- )
171
- """
172
- _response = self._client_wrapper.httpx_client.request(
173
- f"v1/folders/{jsonable_encoder(folder_id)}",
174
- method="DELETE",
175
- request_options=request_options,
176
- )
177
- try:
178
- if 200 <= _response.status_code < 300:
179
- return typing.cast(
180
- typing.Optional[typing.Any],
181
- construct_type(
182
- type_=typing.Optional[typing.Any], # type: ignore
183
- object_=_response.json(),
184
- ),
185
- )
186
- if _response.status_code == 422:
187
- raise UnprocessableEntityError(
188
- typing.cast(
189
- HttpValidationError,
190
- construct_type(
191
- type_=HttpValidationError, # type: ignore
192
- object_=_response.json(),
193
- ),
194
- )
195
- )
196
- _response_json = _response.json()
197
- except JSONDecodeError:
198
- raise ApiError(status_code=_response.status_code, body=_response.text)
199
- raise ApiError(status_code=_response.status_code, body=_response_json)
200
-
201
- def modify(
202
- self,
203
- folder_id: str,
204
- *,
205
- name: typing.Optional[str] = OMIT,
206
- description: typing.Optional[str] = OMIT,
207
- instructions: typing.Optional[str] = OMIT,
208
- metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
209
- embedding_config: typing.Optional[EmbeddingConfig] = OMIT,
210
- request_options: typing.Optional[RequestOptions] = None,
211
- ) -> Folder:
212
- """
213
- Update the name or documentation of an existing data folder.
214
-
215
- Parameters
216
- ----------
217
- folder_id : str
218
-
219
- name : typing.Optional[str]
220
- The name of the source.
221
-
222
- description : typing.Optional[str]
223
- The description of the source.
224
-
225
- instructions : typing.Optional[str]
226
- Instructions for how to use the source.
227
-
228
- metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
229
- Metadata associated with the source.
230
-
231
- embedding_config : typing.Optional[EmbeddingConfig]
232
- The embedding configuration used by the source.
233
-
234
- request_options : typing.Optional[RequestOptions]
235
- Request-specific configuration.
236
-
237
- Returns
238
- -------
239
- Folder
240
- Successful Response
241
-
242
- Examples
243
- --------
244
- from letta_client import Letta
245
-
246
- client = Letta(
247
- project="YOUR_PROJECT",
248
- token="YOUR_TOKEN",
249
- )
250
- client.folders.modify(
251
- folder_id="folder_id",
252
- )
253
- """
254
- _response = self._client_wrapper.httpx_client.request(
255
- f"v1/folders/{jsonable_encoder(folder_id)}",
256
- method="PATCH",
257
- json={
258
- "name": name,
259
- "description": description,
260
- "instructions": instructions,
261
- "metadata": metadata,
262
- "embedding_config": convert_and_respect_annotation_metadata(
263
- object_=embedding_config, annotation=EmbeddingConfig, direction="write"
264
- ),
265
- },
266
- request_options=request_options,
267
- omit=OMIT,
268
- )
269
- try:
270
- if 200 <= _response.status_code < 300:
271
- return typing.cast(
272
- Folder,
273
- construct_type(
274
- type_=Folder, # type: ignore
275
- object_=_response.json(),
276
- ),
277
- )
278
- if _response.status_code == 422:
279
- raise UnprocessableEntityError(
280
- typing.cast(
281
- HttpValidationError,
282
- construct_type(
283
- type_=HttpValidationError, # type: ignore
284
- object_=_response.json(),
285
- ),
286
- )
287
- )
288
- _response_json = _response.json()
289
- except JSONDecodeError:
290
- raise ApiError(status_code=_response.status_code, body=_response.text)
291
- raise ApiError(status_code=_response.status_code, body=_response_json)
292
-
293
- def retrieve_by_name(self, folder_name: str, *, request_options: typing.Optional[RequestOptions] = None) -> str:
294
- """
295
- Get a folder by name
296
-
297
- Parameters
298
- ----------
299
- folder_name : str
300
-
301
- request_options : typing.Optional[RequestOptions]
302
- Request-specific configuration.
303
-
304
- Returns
305
- -------
306
- str
307
- Successful Response
308
-
309
- Examples
310
- --------
311
- from letta_client import Letta
312
-
313
- client = Letta(
314
- project="YOUR_PROJECT",
315
- token="YOUR_TOKEN",
316
- )
317
- client.folders.retrieve_by_name(
318
- folder_name="folder_name",
319
- )
320
- """
321
- _response = self._client_wrapper.httpx_client.request(
322
- f"v1/folders/name/{jsonable_encoder(folder_name)}",
323
- method="GET",
324
- request_options=request_options,
325
- )
326
- try:
327
- if 200 <= _response.status_code < 300:
328
- return typing.cast(
329
- str,
330
- construct_type(
331
- type_=str, # type: ignore
332
- object_=_response.json(),
333
- ),
334
- )
335
- if _response.status_code == 422:
336
- raise UnprocessableEntityError(
337
- 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, body=_response.text)
348
- raise ApiError(status_code=_response.status_code, body=_response_json)
349
-
350
- def get_folders_metadata(
351
- self,
352
- *,
353
- include_detailed_per_source_metadata: typing.Optional[bool] = None,
354
- request_options: typing.Optional[RequestOptions] = None,
355
- ) -> OrganizationSourcesStats:
356
- """
357
- Get aggregated metadata for all folders in an organization.
358
-
359
- Returns structured metadata including:
360
- - Total number of folders
361
- - Total number of files across all folders
362
- - Total size of all files
363
- - Per-source breakdown with file details (file_name, file_size per file) if include_detailed_per_source_metadata is True
364
-
365
- Parameters
366
- ----------
367
- include_detailed_per_source_metadata : typing.Optional[bool]
368
-
369
- request_options : typing.Optional[RequestOptions]
370
- Request-specific configuration.
371
-
372
- Returns
373
- -------
374
- OrganizationSourcesStats
375
- Successful Response
376
-
377
- Examples
378
- --------
379
- from letta_client import Letta
380
-
381
- client = Letta(
382
- project="YOUR_PROJECT",
383
- token="YOUR_TOKEN",
384
- )
385
- client.folders.get_folders_metadata()
386
- """
387
- _response = self._client_wrapper.httpx_client.request(
388
- "v1/folders/metadata",
389
- method="GET",
390
- params={
391
- "include_detailed_per_source_metadata": include_detailed_per_source_metadata,
392
- },
393
- request_options=request_options,
394
- )
395
- try:
396
- if 200 <= _response.status_code < 300:
397
- return typing.cast(
398
- OrganizationSourcesStats,
399
- construct_type(
400
- type_=OrganizationSourcesStats, # type: ignore
401
- object_=_response.json(),
402
- ),
403
- )
404
- if _response.status_code == 422:
405
- raise UnprocessableEntityError(
406
- typing.cast(
407
- HttpValidationError,
408
- construct_type(
409
- type_=HttpValidationError, # type: ignore
410
- object_=_response.json(),
411
- ),
412
- )
413
- )
414
- _response_json = _response.json()
415
- except JSONDecodeError:
416
- raise ApiError(status_code=_response.status_code, body=_response.text)
417
- raise ApiError(status_code=_response.status_code, body=_response_json)
418
-
419
- def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> typing.List[Folder]:
420
- """
421
- List all data folders created by a user.
422
-
423
- Parameters
424
- ----------
425
- request_options : typing.Optional[RequestOptions]
426
- Request-specific configuration.
427
-
428
- Returns
429
- -------
430
- typing.List[Folder]
431
- Successful Response
432
-
433
- Examples
434
- --------
435
- from letta_client import Letta
436
-
437
- client = Letta(
438
- project="YOUR_PROJECT",
439
- token="YOUR_TOKEN",
440
- )
441
- client.folders.list()
442
- """
443
- _response = self._client_wrapper.httpx_client.request(
444
- "v1/folders/",
445
- method="GET",
446
- request_options=request_options,
447
- )
448
- try:
449
- if 200 <= _response.status_code < 300:
450
- return typing.cast(
451
- typing.List[Folder],
452
- construct_type(
453
- type_=typing.List[Folder], # type: ignore
454
- object_=_response.json(),
455
- ),
456
- )
457
- if _response.status_code == 422:
458
- raise UnprocessableEntityError(
459
- typing.cast(
460
- HttpValidationError,
461
- construct_type(
462
- type_=HttpValidationError, # type: ignore
463
- object_=_response.json(),
464
- ),
465
- )
466
- )
467
- _response_json = _response.json()
468
- except JSONDecodeError:
469
- raise ApiError(status_code=_response.status_code, body=_response.text)
470
- raise ApiError(status_code=_response.status_code, body=_response_json)
471
-
472
- def create(
473
- self,
474
- *,
475
- name: str,
476
- description: typing.Optional[str] = OMIT,
477
- instructions: typing.Optional[str] = OMIT,
478
- metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
479
- embedding: typing.Optional[str] = OMIT,
480
- embedding_chunk_size: typing.Optional[int] = OMIT,
481
- embedding_config: typing.Optional[EmbeddingConfig] = OMIT,
482
- request_options: typing.Optional[RequestOptions] = None,
483
- ) -> Folder:
484
- """
485
- Create a new data folder.
486
-
487
- Parameters
488
- ----------
489
- name : str
490
- The name of the source.
491
-
492
- description : typing.Optional[str]
493
- The description of the source.
494
-
495
- instructions : typing.Optional[str]
496
- Instructions for how to use the source.
497
-
498
- metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
499
- Metadata associated with the source.
500
-
501
- embedding : typing.Optional[str]
502
- The handle for the embedding config used by the source.
503
-
504
- embedding_chunk_size : typing.Optional[int]
505
- The chunk size of the embedding.
506
-
507
- embedding_config : typing.Optional[EmbeddingConfig]
508
- (Legacy) The embedding configuration used by the source.
509
-
510
- request_options : typing.Optional[RequestOptions]
511
- Request-specific configuration.
512
-
513
- Returns
514
- -------
515
- Folder
516
- Successful Response
517
-
518
- Examples
519
- --------
520
- from letta_client import Letta
521
-
522
- client = Letta(
523
- project="YOUR_PROJECT",
524
- token="YOUR_TOKEN",
525
- )
526
- client.folders.create(
527
- name="name",
528
- )
529
- """
530
- _response = self._client_wrapper.httpx_client.request(
531
- "v1/folders/",
532
- method="POST",
533
- json={
534
- "name": name,
535
- "description": description,
536
- "instructions": instructions,
537
- "metadata": metadata,
538
- "embedding": embedding,
539
- "embedding_chunk_size": embedding_chunk_size,
540
- "embedding_config": convert_and_respect_annotation_metadata(
541
- object_=embedding_config, annotation=EmbeddingConfig, direction="write"
542
- ),
543
- },
544
- request_options=request_options,
545
- omit=OMIT,
546
- )
547
- try:
548
- if 200 <= _response.status_code < 300:
549
- return typing.cast(
550
- Folder,
551
- construct_type(
552
- type_=Folder, # type: ignore
553
- object_=_response.json(),
554
- ),
555
- )
556
- if _response.status_code == 422:
557
- raise UnprocessableEntityError(
558
- typing.cast(
559
- HttpValidationError,
560
- construct_type(
561
- type_=HttpValidationError, # type: ignore
562
- object_=_response.json(),
563
- ),
564
- )
565
- )
566
- _response_json = _response.json()
567
- except JSONDecodeError:
568
- raise ApiError(status_code=_response.status_code, body=_response.text)
569
- raise ApiError(status_code=_response.status_code, body=_response_json)
570
-
571
- def get_agents_for_folder(
572
- self, folder_id: str, *, request_options: typing.Optional[RequestOptions] = None
573
- ) -> typing.List[str]:
574
- """
575
- Get all agent IDs that have the specified folder attached.
576
-
577
- Parameters
578
- ----------
579
- folder_id : str
580
-
581
- request_options : typing.Optional[RequestOptions]
582
- Request-specific configuration.
583
-
584
- Returns
585
- -------
586
- typing.List[str]
587
- Successful Response
588
-
589
- Examples
590
- --------
591
- from letta_client import Letta
592
-
593
- client = Letta(
594
- project="YOUR_PROJECT",
595
- token="YOUR_TOKEN",
596
- )
597
- client.folders.get_agents_for_folder(
598
- folder_id="folder_id",
599
- )
600
- """
601
- _response = self._client_wrapper.httpx_client.request(
602
- f"v1/folders/{jsonable_encoder(folder_id)}/agents",
603
- method="GET",
604
- request_options=request_options,
605
- )
606
- try:
607
- if 200 <= _response.status_code < 300:
608
- return typing.cast(
609
- typing.List[str],
610
- construct_type(
611
- type_=typing.List[str], # type: ignore
612
- object_=_response.json(),
613
- ),
614
- )
615
- if _response.status_code == 422:
616
- raise UnprocessableEntityError(
617
- typing.cast(
618
- HttpValidationError,
619
- construct_type(
620
- type_=HttpValidationError, # type: ignore
621
- object_=_response.json(),
622
- ),
623
- )
624
- )
625
- _response_json = _response.json()
626
- except JSONDecodeError:
627
- raise ApiError(status_code=_response.status_code, body=_response.text)
628
- raise ApiError(status_code=_response.status_code, body=_response_json)
629
-
630
-
631
- class AsyncFoldersClient:
632
- def __init__(self, *, client_wrapper: AsyncClientWrapper):
633
- self._client_wrapper = client_wrapper
634
- self.files = AsyncFilesClient(client_wrapper=self._client_wrapper)
635
- self.passages = AsyncPassagesClient(client_wrapper=self._client_wrapper)
636
-
637
- async def count(self, *, request_options: typing.Optional[RequestOptions] = None) -> int:
638
- """
639
- Count all data folders created by a user.
640
-
641
- Parameters
642
- ----------
643
- request_options : typing.Optional[RequestOptions]
644
- Request-specific configuration.
645
-
646
- Returns
647
- -------
648
- int
649
- Successful Response
650
-
651
- Examples
652
- --------
653
- import asyncio
654
-
655
- from letta_client import AsyncLetta
656
-
657
- client = AsyncLetta(
658
- project="YOUR_PROJECT",
659
- token="YOUR_TOKEN",
660
- )
661
-
662
-
663
- async def main() -> None:
664
- await client.folders.count()
665
-
666
-
667
- asyncio.run(main())
668
- """
669
- _response = await self._client_wrapper.httpx_client.request(
670
- "v1/folders/count",
671
- method="GET",
672
- request_options=request_options,
673
- )
674
- try:
675
- if 200 <= _response.status_code < 300:
676
- return typing.cast(
677
- int,
678
- construct_type(
679
- type_=int, # type: ignore
680
- object_=_response.json(),
681
- ),
682
- )
683
- if _response.status_code == 422:
684
- raise UnprocessableEntityError(
685
- typing.cast(
686
- HttpValidationError,
687
- construct_type(
688
- type_=HttpValidationError, # type: ignore
689
- object_=_response.json(),
690
- ),
691
- )
692
- )
693
- _response_json = _response.json()
694
- except JSONDecodeError:
695
- raise ApiError(status_code=_response.status_code, body=_response.text)
696
- raise ApiError(status_code=_response.status_code, body=_response_json)
697
-
698
- async def retrieve(self, folder_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Folder:
699
- """
700
- Get a folder by ID
701
-
702
- Parameters
703
- ----------
704
- folder_id : str
705
-
706
- request_options : typing.Optional[RequestOptions]
707
- Request-specific configuration.
708
-
709
- Returns
710
- -------
711
- Folder
712
- Successful Response
713
-
714
- Examples
715
- --------
716
- import asyncio
717
-
718
- from letta_client import AsyncLetta
719
-
720
- client = AsyncLetta(
721
- project="YOUR_PROJECT",
722
- token="YOUR_TOKEN",
723
- )
724
-
725
-
726
- async def main() -> None:
727
- await client.folders.retrieve(
728
- folder_id="folder_id",
729
- )
730
-
731
-
732
- asyncio.run(main())
733
- """
734
- _response = await self._client_wrapper.httpx_client.request(
735
- f"v1/folders/{jsonable_encoder(folder_id)}",
736
- method="GET",
737
- request_options=request_options,
738
- )
739
- try:
740
- if 200 <= _response.status_code < 300:
741
- return typing.cast(
742
- Folder,
743
- construct_type(
744
- type_=Folder, # type: ignore
745
- object_=_response.json(),
746
- ),
747
- )
748
- if _response.status_code == 422:
749
- raise UnprocessableEntityError(
750
- typing.cast(
751
- HttpValidationError,
752
- construct_type(
753
- type_=HttpValidationError, # type: ignore
754
- object_=_response.json(),
755
- ),
756
- )
757
- )
758
- _response_json = _response.json()
759
- except JSONDecodeError:
760
- raise ApiError(status_code=_response.status_code, body=_response.text)
761
- raise ApiError(status_code=_response.status_code, body=_response_json)
762
-
763
- async def delete(
764
- self, folder_id: str, *, request_options: typing.Optional[RequestOptions] = None
765
- ) -> typing.Optional[typing.Any]:
766
- """
767
- Delete a data folder.
768
-
769
- Parameters
770
- ----------
771
- folder_id : str
772
-
773
- request_options : typing.Optional[RequestOptions]
774
- Request-specific configuration.
775
-
776
- Returns
777
- -------
778
- typing.Optional[typing.Any]
779
- Successful Response
780
-
781
- Examples
782
- --------
783
- import asyncio
784
-
785
- from letta_client import AsyncLetta
786
-
787
- client = AsyncLetta(
788
- project="YOUR_PROJECT",
789
- token="YOUR_TOKEN",
790
- )
791
-
792
-
793
- async def main() -> None:
794
- await client.folders.delete(
795
- folder_id="folder_id",
796
- )
797
-
798
-
799
- asyncio.run(main())
800
- """
801
- _response = await self._client_wrapper.httpx_client.request(
802
- f"v1/folders/{jsonable_encoder(folder_id)}",
803
- method="DELETE",
804
- request_options=request_options,
805
- )
806
- try:
807
- if 200 <= _response.status_code < 300:
808
- return typing.cast(
809
- typing.Optional[typing.Any],
810
- construct_type(
811
- type_=typing.Optional[typing.Any], # type: ignore
812
- object_=_response.json(),
813
- ),
814
- )
815
- if _response.status_code == 422:
816
- raise UnprocessableEntityError(
817
- typing.cast(
818
- HttpValidationError,
819
- construct_type(
820
- type_=HttpValidationError, # type: ignore
821
- object_=_response.json(),
822
- ),
823
- )
824
- )
825
- _response_json = _response.json()
826
- except JSONDecodeError:
827
- raise ApiError(status_code=_response.status_code, body=_response.text)
828
- raise ApiError(status_code=_response.status_code, body=_response_json)
829
-
830
- async def modify(
831
- self,
832
- folder_id: str,
833
- *,
834
- name: typing.Optional[str] = OMIT,
835
- description: typing.Optional[str] = OMIT,
836
- instructions: typing.Optional[str] = OMIT,
837
- metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
838
- embedding_config: typing.Optional[EmbeddingConfig] = OMIT,
839
- request_options: typing.Optional[RequestOptions] = None,
840
- ) -> Folder:
841
- """
842
- Update the name or documentation of an existing data folder.
843
-
844
- Parameters
845
- ----------
846
- folder_id : str
847
-
848
- name : typing.Optional[str]
849
- The name of the source.
850
-
851
- description : typing.Optional[str]
852
- The description of the source.
853
-
854
- instructions : typing.Optional[str]
855
- Instructions for how to use the source.
856
-
857
- metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
858
- Metadata associated with the source.
859
-
860
- embedding_config : typing.Optional[EmbeddingConfig]
861
- The embedding configuration used by the source.
862
-
863
- request_options : typing.Optional[RequestOptions]
864
- Request-specific configuration.
865
-
866
- Returns
867
- -------
868
- Folder
869
- Successful Response
870
-
871
- Examples
872
- --------
873
- import asyncio
874
-
875
- from letta_client import AsyncLetta
876
-
877
- client = AsyncLetta(
878
- project="YOUR_PROJECT",
879
- token="YOUR_TOKEN",
880
- )
881
-
882
-
883
- async def main() -> None:
884
- await client.folders.modify(
885
- folder_id="folder_id",
886
- )
887
-
888
-
889
- asyncio.run(main())
890
- """
891
- _response = await self._client_wrapper.httpx_client.request(
892
- f"v1/folders/{jsonable_encoder(folder_id)}",
893
- method="PATCH",
894
- json={
895
- "name": name,
896
- "description": description,
897
- "instructions": instructions,
898
- "metadata": metadata,
899
- "embedding_config": convert_and_respect_annotation_metadata(
900
- object_=embedding_config, annotation=EmbeddingConfig, direction="write"
901
- ),
902
- },
903
- request_options=request_options,
904
- omit=OMIT,
905
- )
906
- try:
907
- if 200 <= _response.status_code < 300:
908
- return typing.cast(
909
- Folder,
910
- construct_type(
911
- type_=Folder, # type: ignore
912
- object_=_response.json(),
913
- ),
914
- )
915
- if _response.status_code == 422:
916
- raise UnprocessableEntityError(
917
- typing.cast(
918
- HttpValidationError,
919
- construct_type(
920
- type_=HttpValidationError, # type: ignore
921
- object_=_response.json(),
922
- ),
923
- )
924
- )
925
- _response_json = _response.json()
926
- except JSONDecodeError:
927
- raise ApiError(status_code=_response.status_code, body=_response.text)
928
- raise ApiError(status_code=_response.status_code, body=_response_json)
929
-
930
- async def retrieve_by_name(
931
- self, folder_name: str, *, request_options: typing.Optional[RequestOptions] = None
932
- ) -> str:
933
- """
934
- Get a folder by name
935
-
936
- Parameters
937
- ----------
938
- folder_name : str
939
-
940
- request_options : typing.Optional[RequestOptions]
941
- Request-specific configuration.
942
-
943
- Returns
944
- -------
945
- str
946
- Successful Response
947
-
948
- Examples
949
- --------
950
- import asyncio
951
-
952
- from letta_client import AsyncLetta
953
-
954
- client = AsyncLetta(
955
- project="YOUR_PROJECT",
956
- token="YOUR_TOKEN",
957
- )
958
-
959
-
960
- async def main() -> None:
961
- await client.folders.retrieve_by_name(
962
- folder_name="folder_name",
963
- )
964
-
965
-
966
- asyncio.run(main())
967
- """
968
- _response = await self._client_wrapper.httpx_client.request(
969
- f"v1/folders/name/{jsonable_encoder(folder_name)}",
970
- method="GET",
971
- request_options=request_options,
972
- )
973
- try:
974
- if 200 <= _response.status_code < 300:
975
- return typing.cast(
976
- str,
977
- construct_type(
978
- type_=str, # type: ignore
979
- object_=_response.json(),
980
- ),
981
- )
982
- if _response.status_code == 422:
983
- raise UnprocessableEntityError(
984
- typing.cast(
985
- HttpValidationError,
986
- construct_type(
987
- type_=HttpValidationError, # type: ignore
988
- object_=_response.json(),
989
- ),
990
- )
991
- )
992
- _response_json = _response.json()
993
- except JSONDecodeError:
994
- raise ApiError(status_code=_response.status_code, body=_response.text)
995
- raise ApiError(status_code=_response.status_code, body=_response_json)
996
-
997
- async def get_folders_metadata(
998
- self,
999
- *,
1000
- include_detailed_per_source_metadata: typing.Optional[bool] = None,
1001
- request_options: typing.Optional[RequestOptions] = None,
1002
- ) -> OrganizationSourcesStats:
1003
- """
1004
- Get aggregated metadata for all folders in an organization.
1005
-
1006
- Returns structured metadata including:
1007
- - Total number of folders
1008
- - Total number of files across all folders
1009
- - Total size of all files
1010
- - Per-source breakdown with file details (file_name, file_size per file) if include_detailed_per_source_metadata is True
1011
-
1012
- Parameters
1013
- ----------
1014
- include_detailed_per_source_metadata : typing.Optional[bool]
1015
-
1016
- request_options : typing.Optional[RequestOptions]
1017
- Request-specific configuration.
1018
-
1019
- Returns
1020
- -------
1021
- OrganizationSourcesStats
1022
- Successful Response
1023
-
1024
- Examples
1025
- --------
1026
- import asyncio
1027
-
1028
- from letta_client import AsyncLetta
1029
-
1030
- client = AsyncLetta(
1031
- project="YOUR_PROJECT",
1032
- token="YOUR_TOKEN",
1033
- )
1034
-
1035
-
1036
- async def main() -> None:
1037
- await client.folders.get_folders_metadata()
1038
-
1039
-
1040
- asyncio.run(main())
1041
- """
1042
- _response = await self._client_wrapper.httpx_client.request(
1043
- "v1/folders/metadata",
1044
- method="GET",
1045
- params={
1046
- "include_detailed_per_source_metadata": include_detailed_per_source_metadata,
1047
- },
1048
- request_options=request_options,
1049
- )
1050
- try:
1051
- if 200 <= _response.status_code < 300:
1052
- return typing.cast(
1053
- OrganizationSourcesStats,
1054
- construct_type(
1055
- type_=OrganizationSourcesStats, # type: ignore
1056
- object_=_response.json(),
1057
- ),
1058
- )
1059
- if _response.status_code == 422:
1060
- raise UnprocessableEntityError(
1061
- typing.cast(
1062
- HttpValidationError,
1063
- construct_type(
1064
- type_=HttpValidationError, # type: ignore
1065
- object_=_response.json(),
1066
- ),
1067
- )
1068
- )
1069
- _response_json = _response.json()
1070
- except JSONDecodeError:
1071
- raise ApiError(status_code=_response.status_code, body=_response.text)
1072
- raise ApiError(status_code=_response.status_code, body=_response_json)
1073
-
1074
- async def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> typing.List[Folder]:
1075
- """
1076
- List all data folders created by a user.
1077
-
1078
- Parameters
1079
- ----------
1080
- request_options : typing.Optional[RequestOptions]
1081
- Request-specific configuration.
1082
-
1083
- Returns
1084
- -------
1085
- typing.List[Folder]
1086
- Successful Response
1087
-
1088
- Examples
1089
- --------
1090
- import asyncio
1091
-
1092
- from letta_client import AsyncLetta
1093
-
1094
- client = AsyncLetta(
1095
- project="YOUR_PROJECT",
1096
- token="YOUR_TOKEN",
1097
- )
1098
-
1099
-
1100
- async def main() -> None:
1101
- await client.folders.list()
1102
-
1103
-
1104
- asyncio.run(main())
1105
- """
1106
- _response = await self._client_wrapper.httpx_client.request(
1107
- "v1/folders/",
1108
- method="GET",
1109
- request_options=request_options,
1110
- )
1111
- try:
1112
- if 200 <= _response.status_code < 300:
1113
- return typing.cast(
1114
- typing.List[Folder],
1115
- construct_type(
1116
- type_=typing.List[Folder], # type: ignore
1117
- object_=_response.json(),
1118
- ),
1119
- )
1120
- if _response.status_code == 422:
1121
- raise UnprocessableEntityError(
1122
- typing.cast(
1123
- HttpValidationError,
1124
- construct_type(
1125
- type_=HttpValidationError, # type: ignore
1126
- object_=_response.json(),
1127
- ),
1128
- )
1129
- )
1130
- _response_json = _response.json()
1131
- except JSONDecodeError:
1132
- raise ApiError(status_code=_response.status_code, body=_response.text)
1133
- raise ApiError(status_code=_response.status_code, body=_response_json)
1134
-
1135
- async def create(
1136
- self,
1137
- *,
1138
- name: str,
1139
- description: typing.Optional[str] = OMIT,
1140
- instructions: typing.Optional[str] = OMIT,
1141
- metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
1142
- embedding: typing.Optional[str] = OMIT,
1143
- embedding_chunk_size: typing.Optional[int] = OMIT,
1144
- embedding_config: typing.Optional[EmbeddingConfig] = OMIT,
1145
- request_options: typing.Optional[RequestOptions] = None,
1146
- ) -> Folder:
1147
- """
1148
- Create a new data folder.
1149
-
1150
- Parameters
1151
- ----------
1152
- name : str
1153
- The name of the source.
1154
-
1155
- description : typing.Optional[str]
1156
- The description of the source.
1157
-
1158
- instructions : typing.Optional[str]
1159
- Instructions for how to use the source.
1160
-
1161
- metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
1162
- Metadata associated with the source.
1163
-
1164
- embedding : typing.Optional[str]
1165
- The handle for the embedding config used by the source.
1166
-
1167
- embedding_chunk_size : typing.Optional[int]
1168
- The chunk size of the embedding.
1169
-
1170
- embedding_config : typing.Optional[EmbeddingConfig]
1171
- (Legacy) The embedding configuration used by the source.
1172
-
1173
- request_options : typing.Optional[RequestOptions]
1174
- Request-specific configuration.
1175
-
1176
- Returns
1177
- -------
1178
- Folder
1179
- Successful Response
1180
-
1181
- Examples
1182
- --------
1183
- import asyncio
1184
-
1185
- from letta_client import AsyncLetta
1186
-
1187
- client = AsyncLetta(
1188
- project="YOUR_PROJECT",
1189
- token="YOUR_TOKEN",
1190
- )
1191
-
1192
-
1193
- async def main() -> None:
1194
- await client.folders.create(
1195
- name="name",
1196
- )
1197
-
1198
-
1199
- asyncio.run(main())
1200
- """
1201
- _response = await self._client_wrapper.httpx_client.request(
1202
- "v1/folders/",
1203
- method="POST",
1204
- json={
1205
- "name": name,
1206
- "description": description,
1207
- "instructions": instructions,
1208
- "metadata": metadata,
1209
- "embedding": embedding,
1210
- "embedding_chunk_size": embedding_chunk_size,
1211
- "embedding_config": convert_and_respect_annotation_metadata(
1212
- object_=embedding_config, annotation=EmbeddingConfig, direction="write"
1213
- ),
1214
- },
1215
- request_options=request_options,
1216
- omit=OMIT,
1217
- )
1218
- try:
1219
- if 200 <= _response.status_code < 300:
1220
- return typing.cast(
1221
- Folder,
1222
- construct_type(
1223
- type_=Folder, # type: ignore
1224
- object_=_response.json(),
1225
- ),
1226
- )
1227
- if _response.status_code == 422:
1228
- raise UnprocessableEntityError(
1229
- typing.cast(
1230
- HttpValidationError,
1231
- construct_type(
1232
- type_=HttpValidationError, # type: ignore
1233
- object_=_response.json(),
1234
- ),
1235
- )
1236
- )
1237
- _response_json = _response.json()
1238
- except JSONDecodeError:
1239
- raise ApiError(status_code=_response.status_code, body=_response.text)
1240
- raise ApiError(status_code=_response.status_code, body=_response_json)
1241
-
1242
- async def get_agents_for_folder(
1243
- self, folder_id: str, *, request_options: typing.Optional[RequestOptions] = None
1244
- ) -> typing.List[str]:
1245
- """
1246
- Get all agent IDs that have the specified folder attached.
1247
-
1248
- Parameters
1249
- ----------
1250
- folder_id : str
1251
-
1252
- request_options : typing.Optional[RequestOptions]
1253
- Request-specific configuration.
1254
-
1255
- Returns
1256
- -------
1257
- typing.List[str]
1258
- Successful Response
1259
-
1260
- Examples
1261
- --------
1262
- import asyncio
1263
-
1264
- from letta_client import AsyncLetta
1265
-
1266
- client = AsyncLetta(
1267
- project="YOUR_PROJECT",
1268
- token="YOUR_TOKEN",
1269
- )
1270
-
1271
-
1272
- async def main() -> None:
1273
- await client.folders.get_agents_for_folder(
1274
- folder_id="folder_id",
1275
- )
1276
-
1277
-
1278
- asyncio.run(main())
1279
- """
1280
- _response = await self._client_wrapper.httpx_client.request(
1281
- f"v1/folders/{jsonable_encoder(folder_id)}/agents",
1282
- method="GET",
1283
- request_options=request_options,
1284
- )
1285
- try:
1286
- if 200 <= _response.status_code < 300:
1287
- return typing.cast(
1288
- typing.List[str],
1289
- construct_type(
1290
- type_=typing.List[str], # type: ignore
1291
- object_=_response.json(),
1292
- ),
1293
- )
1294
- if _response.status_code == 422:
1295
- raise UnprocessableEntityError(
1296
- typing.cast(
1297
- HttpValidationError,
1298
- construct_type(
1299
- type_=HttpValidationError, # type: ignore
1300
- object_=_response.json(),
1301
- ),
1302
- )
1303
- )
1304
- _response_json = _response.json()
1305
- except JSONDecodeError:
1306
- raise ApiError(status_code=_response.status_code, body=_response.text)
1307
- raise ApiError(status_code=_response.status_code, body=_response_json)