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
@@ -0,0 +1,1136 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ import os
6
+ from typing import TYPE_CHECKING, Any, Dict, Mapping, cast
7
+ from typing_extensions import Self, Literal, override
8
+
9
+ import httpx
10
+
11
+ from . import _exceptions
12
+ from ._qs import Querystring
13
+ from ._types import (
14
+ Body,
15
+ Omit,
16
+ Query,
17
+ Headers,
18
+ Timeout,
19
+ NotGiven,
20
+ Transport,
21
+ ProxiesTypes,
22
+ RequestOptions,
23
+ not_given,
24
+ )
25
+ from ._utils import is_given, get_async_library
26
+ from ._compat import cached_property
27
+ from ._version import __version__
28
+ from ._response import (
29
+ to_raw_response_wrapper,
30
+ to_streamed_response_wrapper,
31
+ async_to_raw_response_wrapper,
32
+ async_to_streamed_response_wrapper,
33
+ )
34
+ from ._streaming import Stream as Stream, AsyncStream as AsyncStream
35
+ from ._exceptions import APIStatusError
36
+ from ._base_client import (
37
+ DEFAULT_MAX_RETRIES,
38
+ SyncAPIClient,
39
+ AsyncAPIClient,
40
+ make_request_options,
41
+ )
42
+ from .types.health_response import HealthResponse
43
+
44
+ if TYPE_CHECKING:
45
+ from .resources import (
46
+ runs,
47
+ tags,
48
+ steps,
49
+ tools,
50
+ agents,
51
+ blocks,
52
+ models,
53
+ folders,
54
+ archives,
55
+ messages,
56
+ passages,
57
+ templates,
58
+ mcp_servers,
59
+ access_tokens,
60
+ conversations,
61
+ )
62
+ from .resources.tags import TagsResource, AsyncTagsResource
63
+ from .resources.tools import ToolsResource, AsyncToolsResource
64
+ from .resources.messages import MessagesResource, AsyncMessagesResource
65
+ from .resources.passages import PassagesResource, AsyncPassagesResource
66
+ from .resources.runs.runs import RunsResource, AsyncRunsResource
67
+ from .resources.steps.steps import StepsResource, AsyncStepsResource
68
+ from .resources.access_tokens import AccessTokensResource, AsyncAccessTokensResource
69
+ from .resources.agents.agents import AgentsResource, AsyncAgentsResource
70
+ from .resources.blocks.blocks import BlocksResource, AsyncBlocksResource
71
+ from .resources.models.models import ModelsResource, AsyncModelsResource
72
+ from .resources.folders.folders import FoldersResource, AsyncFoldersResource
73
+ from .resources.archives.archives import ArchivesResource, AsyncArchivesResource
74
+ from .resources.templates.templates import TemplatesResource, AsyncTemplatesResource
75
+ from .resources.mcp_servers.mcp_servers import McpServersResource, AsyncMcpServersResource
76
+ from .resources.conversations.conversations import ConversationsResource, AsyncConversationsResource
77
+
78
+ __all__ = [
79
+ "ENVIRONMENTS",
80
+ "Timeout",
81
+ "Transport",
82
+ "ProxiesTypes",
83
+ "RequestOptions",
84
+ "Letta",
85
+ "AsyncLetta",
86
+ "Client",
87
+ "AsyncClient",
88
+ ]
89
+
90
+ ENVIRONMENTS: Dict[str, str] = {
91
+ "cloud": "https://api.letta.com",
92
+ "local": "http://localhost:8283",
93
+ }
94
+
95
+
96
+ class Letta(SyncAPIClient):
97
+ # client options
98
+ api_key: str | None
99
+ project_id: str | None
100
+ project: str | None
101
+
102
+ _environment: Literal["cloud", "local"] | NotGiven
103
+
104
+ def __init__(
105
+ self,
106
+ *,
107
+ api_key: str | None = None,
108
+ project_id: str | None = None,
109
+ project: str | None = None,
110
+ environment: Literal["cloud", "local"] | NotGiven = not_given,
111
+ base_url: str | httpx.URL | None | NotGiven = not_given,
112
+ timeout: float | Timeout | None | NotGiven = not_given,
113
+ max_retries: int = DEFAULT_MAX_RETRIES,
114
+ default_headers: Mapping[str, str] | None = None,
115
+ default_query: Mapping[str, object] | None = None,
116
+ # Configure a custom httpx client.
117
+ # We provide a `DefaultHttpxClient` class that you can pass to retain the default values we use for `limits`, `timeout` & `follow_redirects`.
118
+ # See the [httpx documentation](https://www.python-httpx.org/api/#client) for more details.
119
+ http_client: httpx.Client | None = None,
120
+ # Enable or disable schema validation for data returned by the API.
121
+ # When enabled an error APIResponseValidationError is raised
122
+ # if the API responds with invalid data for the expected schema.
123
+ #
124
+ # This parameter may be removed or changed in the future.
125
+ # If you rely on this feature, please open a GitHub issue
126
+ # outlining your use-case to help us decide if it should be
127
+ # part of our public interface in the future.
128
+ _strict_response_validation: bool = False,
129
+ ) -> None:
130
+ """Construct a new synchronous Letta client instance.
131
+
132
+ This automatically infers the `api_key` argument from the `LETTA_API_KEY` environment variable if it is not provided.
133
+ """
134
+ if api_key is None:
135
+ api_key = os.environ.get("LETTA_API_KEY")
136
+ self.api_key = api_key
137
+
138
+ self.project_id = project_id
139
+
140
+ self.project = project
141
+
142
+ self._environment = environment
143
+
144
+ base_url_env = os.environ.get("LETTA_BASE_URL")
145
+ if is_given(base_url) and base_url is not None:
146
+ # cast required because mypy doesn't understand the type narrowing
147
+ base_url = cast("str | httpx.URL", base_url) # pyright: ignore[reportUnnecessaryCast]
148
+ elif is_given(environment):
149
+ if base_url_env and base_url is not None:
150
+ raise ValueError(
151
+ "Ambiguous URL; The `LETTA_BASE_URL` env var and the `environment` argument are given. If you want to use the environment, you must pass base_url=None",
152
+ )
153
+
154
+ try:
155
+ base_url = ENVIRONMENTS[environment]
156
+ except KeyError as exc:
157
+ raise ValueError(f"Unknown environment: {environment}") from exc
158
+ elif base_url_env is not None:
159
+ base_url = base_url_env
160
+ else:
161
+ self._environment = environment = "cloud"
162
+
163
+ try:
164
+ base_url = ENVIRONMENTS[environment]
165
+ except KeyError as exc:
166
+ raise ValueError(f"Unknown environment: {environment}") from exc
167
+
168
+ super().__init__(
169
+ version=__version__,
170
+ base_url=base_url,
171
+ max_retries=max_retries,
172
+ timeout=timeout,
173
+ http_client=http_client,
174
+ custom_headers=default_headers,
175
+ custom_query=default_query,
176
+ _strict_response_validation=_strict_response_validation,
177
+ )
178
+
179
+ self._default_stream_cls = Stream
180
+
181
+ @cached_property
182
+ def agents(self) -> AgentsResource:
183
+ from .resources.agents import AgentsResource
184
+
185
+ return AgentsResource(self)
186
+
187
+ @cached_property
188
+ def tools(self) -> ToolsResource:
189
+ from .resources.tools import ToolsResource
190
+
191
+ return ToolsResource(self)
192
+
193
+ @cached_property
194
+ def blocks(self) -> BlocksResource:
195
+ from .resources.blocks import BlocksResource
196
+
197
+ return BlocksResource(self)
198
+
199
+ @cached_property
200
+ def archives(self) -> ArchivesResource:
201
+ from .resources.archives import ArchivesResource
202
+
203
+ return ArchivesResource(self)
204
+
205
+ @cached_property
206
+ def folders(self) -> FoldersResource:
207
+ from .resources.folders import FoldersResource
208
+
209
+ return FoldersResource(self)
210
+
211
+ @cached_property
212
+ def models(self) -> ModelsResource:
213
+ from .resources.models import ModelsResource
214
+
215
+ return ModelsResource(self)
216
+
217
+ @cached_property
218
+ def mcp_servers(self) -> McpServersResource:
219
+ from .resources.mcp_servers import McpServersResource
220
+
221
+ return McpServersResource(self)
222
+
223
+ @cached_property
224
+ def runs(self) -> RunsResource:
225
+ from .resources.runs import RunsResource
226
+
227
+ return RunsResource(self)
228
+
229
+ @cached_property
230
+ def steps(self) -> StepsResource:
231
+ from .resources.steps import StepsResource
232
+
233
+ return StepsResource(self)
234
+
235
+ @cached_property
236
+ def templates(self) -> TemplatesResource:
237
+ from .resources.templates import TemplatesResource
238
+
239
+ return TemplatesResource(self)
240
+
241
+ @cached_property
242
+ def tags(self) -> TagsResource:
243
+ from .resources.tags import TagsResource
244
+
245
+ return TagsResource(self)
246
+
247
+ @cached_property
248
+ def messages(self) -> MessagesResource:
249
+ from .resources.messages import MessagesResource
250
+
251
+ return MessagesResource(self)
252
+
253
+ @cached_property
254
+ def passages(self) -> PassagesResource:
255
+ from .resources.passages import PassagesResource
256
+
257
+ return PassagesResource(self)
258
+
259
+ @cached_property
260
+ def conversations(self) -> ConversationsResource:
261
+ from .resources.conversations import ConversationsResource
262
+
263
+ return ConversationsResource(self)
264
+
265
+ @cached_property
266
+ def access_tokens(self) -> AccessTokensResource:
267
+ from .resources.access_tokens import AccessTokensResource
268
+
269
+ return AccessTokensResource(self)
270
+
271
+ @cached_property
272
+ def with_raw_response(self) -> LettaWithRawResponse:
273
+ return LettaWithRawResponse(self)
274
+
275
+ @cached_property
276
+ def with_streaming_response(self) -> LettaWithStreamedResponse:
277
+ return LettaWithStreamedResponse(self)
278
+
279
+ @property
280
+ @override
281
+ def qs(self) -> Querystring:
282
+ return Querystring(nested_format="dots", array_format="repeat")
283
+
284
+ @property
285
+ @override
286
+ def auth_headers(self) -> dict[str, str]:
287
+ api_key = self.api_key
288
+ if api_key is None:
289
+ return {}
290
+ return {"Authorization": f"Bearer {api_key}"}
291
+
292
+ @property
293
+ @override
294
+ def default_headers(self) -> dict[str, str | Omit]:
295
+ return {
296
+ **super().default_headers,
297
+ "X-Stainless-Async": "false",
298
+ "X-Project-Id": self.project_id if self.project_id is not None else Omit(),
299
+ "X-Project": self.project if self.project is not None else Omit(),
300
+ **self._custom_headers,
301
+ }
302
+
303
+ def copy(
304
+ self,
305
+ *,
306
+ api_key: str | None = None,
307
+ project_id: str | None = None,
308
+ project: str | None = None,
309
+ environment: Literal["cloud", "local"] | None = None,
310
+ base_url: str | httpx.URL | None = None,
311
+ timeout: float | Timeout | None | NotGiven = not_given,
312
+ http_client: httpx.Client | None = None,
313
+ max_retries: int | NotGiven = not_given,
314
+ default_headers: Mapping[str, str] | None = None,
315
+ set_default_headers: Mapping[str, str] | None = None,
316
+ default_query: Mapping[str, object] | None = None,
317
+ set_default_query: Mapping[str, object] | None = None,
318
+ _extra_kwargs: Mapping[str, Any] = {},
319
+ ) -> Self:
320
+ """
321
+ Create a new client instance re-using the same options given to the current client with optional overriding.
322
+ """
323
+ if default_headers is not None and set_default_headers is not None:
324
+ raise ValueError("The `default_headers` and `set_default_headers` arguments are mutually exclusive")
325
+
326
+ if default_query is not None and set_default_query is not None:
327
+ raise ValueError("The `default_query` and `set_default_query` arguments are mutually exclusive")
328
+
329
+ headers = self._custom_headers
330
+ if default_headers is not None:
331
+ headers = {**headers, **default_headers}
332
+ elif set_default_headers is not None:
333
+ headers = set_default_headers
334
+
335
+ params = self._custom_query
336
+ if default_query is not None:
337
+ params = {**params, **default_query}
338
+ elif set_default_query is not None:
339
+ params = set_default_query
340
+
341
+ http_client = http_client or self._client
342
+ return self.__class__(
343
+ api_key=api_key or self.api_key,
344
+ project_id=project_id or self.project_id,
345
+ project=project or self.project,
346
+ base_url=base_url or self.base_url,
347
+ environment=environment or self._environment,
348
+ timeout=self.timeout if isinstance(timeout, NotGiven) else timeout,
349
+ http_client=http_client,
350
+ max_retries=max_retries if is_given(max_retries) else self.max_retries,
351
+ default_headers=headers,
352
+ default_query=params,
353
+ **_extra_kwargs,
354
+ )
355
+
356
+ # Alias for `copy` for nicer inline usage, e.g.
357
+ # client.with_options(timeout=10).foo.create(...)
358
+ with_options = copy
359
+
360
+ def health(
361
+ self,
362
+ *,
363
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
364
+ # The extra values given here take precedence over values defined on the client or passed to this method.
365
+ extra_headers: Headers | None = None,
366
+ extra_query: Query | None = None,
367
+ extra_body: Body | None = None,
368
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
369
+ ) -> HealthResponse:
370
+ """Async health check endpoint."""
371
+ return self.get(
372
+ "/v1/health/",
373
+ options=make_request_options(
374
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
375
+ ),
376
+ cast_to=HealthResponse,
377
+ )
378
+
379
+ @override
380
+ def _make_status_error(
381
+ self,
382
+ err_msg: str,
383
+ *,
384
+ body: object,
385
+ response: httpx.Response,
386
+ ) -> APIStatusError:
387
+ if response.status_code == 400:
388
+ return _exceptions.BadRequestError(err_msg, response=response, body=body)
389
+
390
+ if response.status_code == 401:
391
+ return _exceptions.AuthenticationError(err_msg, response=response, body=body)
392
+
393
+ if response.status_code == 403:
394
+ return _exceptions.PermissionDeniedError(err_msg, response=response, body=body)
395
+
396
+ if response.status_code == 404:
397
+ return _exceptions.NotFoundError(err_msg, response=response, body=body)
398
+
399
+ if response.status_code == 409:
400
+ return _exceptions.ConflictError(err_msg, response=response, body=body)
401
+
402
+ if response.status_code == 422:
403
+ return _exceptions.UnprocessableEntityError(err_msg, response=response, body=body)
404
+
405
+ if response.status_code == 429:
406
+ return _exceptions.RateLimitError(err_msg, response=response, body=body)
407
+
408
+ if response.status_code >= 500:
409
+ return _exceptions.InternalServerError(err_msg, response=response, body=body)
410
+ return APIStatusError(err_msg, response=response, body=body)
411
+
412
+
413
+ class AsyncLetta(AsyncAPIClient):
414
+ # client options
415
+ api_key: str | None
416
+ project_id: str | None
417
+ project: str | None
418
+
419
+ _environment: Literal["cloud", "local"] | NotGiven
420
+
421
+ def __init__(
422
+ self,
423
+ *,
424
+ api_key: str | None = None,
425
+ project_id: str | None = None,
426
+ project: str | None = None,
427
+ environment: Literal["cloud", "local"] | NotGiven = not_given,
428
+ base_url: str | httpx.URL | None | NotGiven = not_given,
429
+ timeout: float | Timeout | None | NotGiven = not_given,
430
+ max_retries: int = DEFAULT_MAX_RETRIES,
431
+ default_headers: Mapping[str, str] | None = None,
432
+ default_query: Mapping[str, object] | None = None,
433
+ # Configure a custom httpx client.
434
+ # We provide a `DefaultAsyncHttpxClient` class that you can pass to retain the default values we use for `limits`, `timeout` & `follow_redirects`.
435
+ # See the [httpx documentation](https://www.python-httpx.org/api/#asyncclient) for more details.
436
+ http_client: httpx.AsyncClient | None = None,
437
+ # Enable or disable schema validation for data returned by the API.
438
+ # When enabled an error APIResponseValidationError is raised
439
+ # if the API responds with invalid data for the expected schema.
440
+ #
441
+ # This parameter may be removed or changed in the future.
442
+ # If you rely on this feature, please open a GitHub issue
443
+ # outlining your use-case to help us decide if it should be
444
+ # part of our public interface in the future.
445
+ _strict_response_validation: bool = False,
446
+ ) -> None:
447
+ """Construct a new async AsyncLetta client instance.
448
+
449
+ This automatically infers the `api_key` argument from the `LETTA_API_KEY` environment variable if it is not provided.
450
+ """
451
+ if api_key is None:
452
+ api_key = os.environ.get("LETTA_API_KEY")
453
+ self.api_key = api_key
454
+
455
+ self.project_id = project_id
456
+
457
+ self.project = project
458
+
459
+ self._environment = environment
460
+
461
+ base_url_env = os.environ.get("LETTA_BASE_URL")
462
+ if is_given(base_url) and base_url is not None:
463
+ # cast required because mypy doesn't understand the type narrowing
464
+ base_url = cast("str | httpx.URL", base_url) # pyright: ignore[reportUnnecessaryCast]
465
+ elif is_given(environment):
466
+ if base_url_env and base_url is not None:
467
+ raise ValueError(
468
+ "Ambiguous URL; The `LETTA_BASE_URL` env var and the `environment` argument are given. If you want to use the environment, you must pass base_url=None",
469
+ )
470
+
471
+ try:
472
+ base_url = ENVIRONMENTS[environment]
473
+ except KeyError as exc:
474
+ raise ValueError(f"Unknown environment: {environment}") from exc
475
+ elif base_url_env is not None:
476
+ base_url = base_url_env
477
+ else:
478
+ self._environment = environment = "cloud"
479
+
480
+ try:
481
+ base_url = ENVIRONMENTS[environment]
482
+ except KeyError as exc:
483
+ raise ValueError(f"Unknown environment: {environment}") from exc
484
+
485
+ super().__init__(
486
+ version=__version__,
487
+ base_url=base_url,
488
+ max_retries=max_retries,
489
+ timeout=timeout,
490
+ http_client=http_client,
491
+ custom_headers=default_headers,
492
+ custom_query=default_query,
493
+ _strict_response_validation=_strict_response_validation,
494
+ )
495
+
496
+ self._default_stream_cls = AsyncStream
497
+
498
+ @cached_property
499
+ def agents(self) -> AsyncAgentsResource:
500
+ from .resources.agents import AsyncAgentsResource
501
+
502
+ return AsyncAgentsResource(self)
503
+
504
+ @cached_property
505
+ def tools(self) -> AsyncToolsResource:
506
+ from .resources.tools import AsyncToolsResource
507
+
508
+ return AsyncToolsResource(self)
509
+
510
+ @cached_property
511
+ def blocks(self) -> AsyncBlocksResource:
512
+ from .resources.blocks import AsyncBlocksResource
513
+
514
+ return AsyncBlocksResource(self)
515
+
516
+ @cached_property
517
+ def archives(self) -> AsyncArchivesResource:
518
+ from .resources.archives import AsyncArchivesResource
519
+
520
+ return AsyncArchivesResource(self)
521
+
522
+ @cached_property
523
+ def folders(self) -> AsyncFoldersResource:
524
+ from .resources.folders import AsyncFoldersResource
525
+
526
+ return AsyncFoldersResource(self)
527
+
528
+ @cached_property
529
+ def models(self) -> AsyncModelsResource:
530
+ from .resources.models import AsyncModelsResource
531
+
532
+ return AsyncModelsResource(self)
533
+
534
+ @cached_property
535
+ def mcp_servers(self) -> AsyncMcpServersResource:
536
+ from .resources.mcp_servers import AsyncMcpServersResource
537
+
538
+ return AsyncMcpServersResource(self)
539
+
540
+ @cached_property
541
+ def runs(self) -> AsyncRunsResource:
542
+ from .resources.runs import AsyncRunsResource
543
+
544
+ return AsyncRunsResource(self)
545
+
546
+ @cached_property
547
+ def steps(self) -> AsyncStepsResource:
548
+ from .resources.steps import AsyncStepsResource
549
+
550
+ return AsyncStepsResource(self)
551
+
552
+ @cached_property
553
+ def templates(self) -> AsyncTemplatesResource:
554
+ from .resources.templates import AsyncTemplatesResource
555
+
556
+ return AsyncTemplatesResource(self)
557
+
558
+ @cached_property
559
+ def tags(self) -> AsyncTagsResource:
560
+ from .resources.tags import AsyncTagsResource
561
+
562
+ return AsyncTagsResource(self)
563
+
564
+ @cached_property
565
+ def messages(self) -> AsyncMessagesResource:
566
+ from .resources.messages import AsyncMessagesResource
567
+
568
+ return AsyncMessagesResource(self)
569
+
570
+ @cached_property
571
+ def passages(self) -> AsyncPassagesResource:
572
+ from .resources.passages import AsyncPassagesResource
573
+
574
+ return AsyncPassagesResource(self)
575
+
576
+ @cached_property
577
+ def conversations(self) -> AsyncConversationsResource:
578
+ from .resources.conversations import AsyncConversationsResource
579
+
580
+ return AsyncConversationsResource(self)
581
+
582
+ @cached_property
583
+ def access_tokens(self) -> AsyncAccessTokensResource:
584
+ from .resources.access_tokens import AsyncAccessTokensResource
585
+
586
+ return AsyncAccessTokensResource(self)
587
+
588
+ @cached_property
589
+ def with_raw_response(self) -> AsyncLettaWithRawResponse:
590
+ return AsyncLettaWithRawResponse(self)
591
+
592
+ @cached_property
593
+ def with_streaming_response(self) -> AsyncLettaWithStreamedResponse:
594
+ return AsyncLettaWithStreamedResponse(self)
595
+
596
+ @property
597
+ @override
598
+ def qs(self) -> Querystring:
599
+ return Querystring(nested_format="dots", array_format="repeat")
600
+
601
+ @property
602
+ @override
603
+ def auth_headers(self) -> dict[str, str]:
604
+ api_key = self.api_key
605
+ if api_key is None:
606
+ return {}
607
+ return {"Authorization": f"Bearer {api_key}"}
608
+
609
+ @property
610
+ @override
611
+ def default_headers(self) -> dict[str, str | Omit]:
612
+ return {
613
+ **super().default_headers,
614
+ "X-Stainless-Async": f"async:{get_async_library()}",
615
+ "X-Project-Id": self.project_id if self.project_id is not None else Omit(),
616
+ "X-Project": self.project if self.project is not None else Omit(),
617
+ **self._custom_headers,
618
+ }
619
+
620
+ def copy(
621
+ self,
622
+ *,
623
+ api_key: str | None = None,
624
+ project_id: str | None = None,
625
+ project: str | None = None,
626
+ environment: Literal["cloud", "local"] | None = None,
627
+ base_url: str | httpx.URL | None = None,
628
+ timeout: float | Timeout | None | NotGiven = not_given,
629
+ http_client: httpx.AsyncClient | None = None,
630
+ max_retries: int | NotGiven = not_given,
631
+ default_headers: Mapping[str, str] | None = None,
632
+ set_default_headers: Mapping[str, str] | None = None,
633
+ default_query: Mapping[str, object] | None = None,
634
+ set_default_query: Mapping[str, object] | None = None,
635
+ _extra_kwargs: Mapping[str, Any] = {},
636
+ ) -> Self:
637
+ """
638
+ Create a new client instance re-using the same options given to the current client with optional overriding.
639
+ """
640
+ if default_headers is not None and set_default_headers is not None:
641
+ raise ValueError("The `default_headers` and `set_default_headers` arguments are mutually exclusive")
642
+
643
+ if default_query is not None and set_default_query is not None:
644
+ raise ValueError("The `default_query` and `set_default_query` arguments are mutually exclusive")
645
+
646
+ headers = self._custom_headers
647
+ if default_headers is not None:
648
+ headers = {**headers, **default_headers}
649
+ elif set_default_headers is not None:
650
+ headers = set_default_headers
651
+
652
+ params = self._custom_query
653
+ if default_query is not None:
654
+ params = {**params, **default_query}
655
+ elif set_default_query is not None:
656
+ params = set_default_query
657
+
658
+ http_client = http_client or self._client
659
+ return self.__class__(
660
+ api_key=api_key or self.api_key,
661
+ project_id=project_id or self.project_id,
662
+ project=project or self.project,
663
+ base_url=base_url or self.base_url,
664
+ environment=environment or self._environment,
665
+ timeout=self.timeout if isinstance(timeout, NotGiven) else timeout,
666
+ http_client=http_client,
667
+ max_retries=max_retries if is_given(max_retries) else self.max_retries,
668
+ default_headers=headers,
669
+ default_query=params,
670
+ **_extra_kwargs,
671
+ )
672
+
673
+ # Alias for `copy` for nicer inline usage, e.g.
674
+ # client.with_options(timeout=10).foo.create(...)
675
+ with_options = copy
676
+
677
+ async def health(
678
+ self,
679
+ *,
680
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
681
+ # The extra values given here take precedence over values defined on the client or passed to this method.
682
+ extra_headers: Headers | None = None,
683
+ extra_query: Query | None = None,
684
+ extra_body: Body | None = None,
685
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
686
+ ) -> HealthResponse:
687
+ """Async health check endpoint."""
688
+ return await self.get(
689
+ "/v1/health/",
690
+ options=make_request_options(
691
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
692
+ ),
693
+ cast_to=HealthResponse,
694
+ )
695
+
696
+ @override
697
+ def _make_status_error(
698
+ self,
699
+ err_msg: str,
700
+ *,
701
+ body: object,
702
+ response: httpx.Response,
703
+ ) -> APIStatusError:
704
+ if response.status_code == 400:
705
+ return _exceptions.BadRequestError(err_msg, response=response, body=body)
706
+
707
+ if response.status_code == 401:
708
+ return _exceptions.AuthenticationError(err_msg, response=response, body=body)
709
+
710
+ if response.status_code == 403:
711
+ return _exceptions.PermissionDeniedError(err_msg, response=response, body=body)
712
+
713
+ if response.status_code == 404:
714
+ return _exceptions.NotFoundError(err_msg, response=response, body=body)
715
+
716
+ if response.status_code == 409:
717
+ return _exceptions.ConflictError(err_msg, response=response, body=body)
718
+
719
+ if response.status_code == 422:
720
+ return _exceptions.UnprocessableEntityError(err_msg, response=response, body=body)
721
+
722
+ if response.status_code == 429:
723
+ return _exceptions.RateLimitError(err_msg, response=response, body=body)
724
+
725
+ if response.status_code >= 500:
726
+ return _exceptions.InternalServerError(err_msg, response=response, body=body)
727
+ return APIStatusError(err_msg, response=response, body=body)
728
+
729
+
730
+ class LettaWithRawResponse:
731
+ _client: Letta
732
+
733
+ def __init__(self, client: Letta) -> None:
734
+ self._client = client
735
+
736
+ self.health = to_raw_response_wrapper(
737
+ client.health,
738
+ )
739
+
740
+ @cached_property
741
+ def agents(self) -> agents.AgentsResourceWithRawResponse:
742
+ from .resources.agents import AgentsResourceWithRawResponse
743
+
744
+ return AgentsResourceWithRawResponse(self._client.agents)
745
+
746
+ @cached_property
747
+ def tools(self) -> tools.ToolsResourceWithRawResponse:
748
+ from .resources.tools import ToolsResourceWithRawResponse
749
+
750
+ return ToolsResourceWithRawResponse(self._client.tools)
751
+
752
+ @cached_property
753
+ def blocks(self) -> blocks.BlocksResourceWithRawResponse:
754
+ from .resources.blocks import BlocksResourceWithRawResponse
755
+
756
+ return BlocksResourceWithRawResponse(self._client.blocks)
757
+
758
+ @cached_property
759
+ def archives(self) -> archives.ArchivesResourceWithRawResponse:
760
+ from .resources.archives import ArchivesResourceWithRawResponse
761
+
762
+ return ArchivesResourceWithRawResponse(self._client.archives)
763
+
764
+ @cached_property
765
+ def folders(self) -> folders.FoldersResourceWithRawResponse:
766
+ from .resources.folders import FoldersResourceWithRawResponse
767
+
768
+ return FoldersResourceWithRawResponse(self._client.folders)
769
+
770
+ @cached_property
771
+ def models(self) -> models.ModelsResourceWithRawResponse:
772
+ from .resources.models import ModelsResourceWithRawResponse
773
+
774
+ return ModelsResourceWithRawResponse(self._client.models)
775
+
776
+ @cached_property
777
+ def mcp_servers(self) -> mcp_servers.McpServersResourceWithRawResponse:
778
+ from .resources.mcp_servers import McpServersResourceWithRawResponse
779
+
780
+ return McpServersResourceWithRawResponse(self._client.mcp_servers)
781
+
782
+ @cached_property
783
+ def runs(self) -> runs.RunsResourceWithRawResponse:
784
+ from .resources.runs import RunsResourceWithRawResponse
785
+
786
+ return RunsResourceWithRawResponse(self._client.runs)
787
+
788
+ @cached_property
789
+ def steps(self) -> steps.StepsResourceWithRawResponse:
790
+ from .resources.steps import StepsResourceWithRawResponse
791
+
792
+ return StepsResourceWithRawResponse(self._client.steps)
793
+
794
+ @cached_property
795
+ def templates(self) -> templates.TemplatesResourceWithRawResponse:
796
+ from .resources.templates import TemplatesResourceWithRawResponse
797
+
798
+ return TemplatesResourceWithRawResponse(self._client.templates)
799
+
800
+ @cached_property
801
+ def tags(self) -> tags.TagsResourceWithRawResponse:
802
+ from .resources.tags import TagsResourceWithRawResponse
803
+
804
+ return TagsResourceWithRawResponse(self._client.tags)
805
+
806
+ @cached_property
807
+ def messages(self) -> messages.MessagesResourceWithRawResponse:
808
+ from .resources.messages import MessagesResourceWithRawResponse
809
+
810
+ return MessagesResourceWithRawResponse(self._client.messages)
811
+
812
+ @cached_property
813
+ def passages(self) -> passages.PassagesResourceWithRawResponse:
814
+ from .resources.passages import PassagesResourceWithRawResponse
815
+
816
+ return PassagesResourceWithRawResponse(self._client.passages)
817
+
818
+ @cached_property
819
+ def conversations(self) -> conversations.ConversationsResourceWithRawResponse:
820
+ from .resources.conversations import ConversationsResourceWithRawResponse
821
+
822
+ return ConversationsResourceWithRawResponse(self._client.conversations)
823
+
824
+ @cached_property
825
+ def access_tokens(self) -> access_tokens.AccessTokensResourceWithRawResponse:
826
+ from .resources.access_tokens import AccessTokensResourceWithRawResponse
827
+
828
+ return AccessTokensResourceWithRawResponse(self._client.access_tokens)
829
+
830
+
831
+ class AsyncLettaWithRawResponse:
832
+ _client: AsyncLetta
833
+
834
+ def __init__(self, client: AsyncLetta) -> None:
835
+ self._client = client
836
+
837
+ self.health = async_to_raw_response_wrapper(
838
+ client.health,
839
+ )
840
+
841
+ @cached_property
842
+ def agents(self) -> agents.AsyncAgentsResourceWithRawResponse:
843
+ from .resources.agents import AsyncAgentsResourceWithRawResponse
844
+
845
+ return AsyncAgentsResourceWithRawResponse(self._client.agents)
846
+
847
+ @cached_property
848
+ def tools(self) -> tools.AsyncToolsResourceWithRawResponse:
849
+ from .resources.tools import AsyncToolsResourceWithRawResponse
850
+
851
+ return AsyncToolsResourceWithRawResponse(self._client.tools)
852
+
853
+ @cached_property
854
+ def blocks(self) -> blocks.AsyncBlocksResourceWithRawResponse:
855
+ from .resources.blocks import AsyncBlocksResourceWithRawResponse
856
+
857
+ return AsyncBlocksResourceWithRawResponse(self._client.blocks)
858
+
859
+ @cached_property
860
+ def archives(self) -> archives.AsyncArchivesResourceWithRawResponse:
861
+ from .resources.archives import AsyncArchivesResourceWithRawResponse
862
+
863
+ return AsyncArchivesResourceWithRawResponse(self._client.archives)
864
+
865
+ @cached_property
866
+ def folders(self) -> folders.AsyncFoldersResourceWithRawResponse:
867
+ from .resources.folders import AsyncFoldersResourceWithRawResponse
868
+
869
+ return AsyncFoldersResourceWithRawResponse(self._client.folders)
870
+
871
+ @cached_property
872
+ def models(self) -> models.AsyncModelsResourceWithRawResponse:
873
+ from .resources.models import AsyncModelsResourceWithRawResponse
874
+
875
+ return AsyncModelsResourceWithRawResponse(self._client.models)
876
+
877
+ @cached_property
878
+ def mcp_servers(self) -> mcp_servers.AsyncMcpServersResourceWithRawResponse:
879
+ from .resources.mcp_servers import AsyncMcpServersResourceWithRawResponse
880
+
881
+ return AsyncMcpServersResourceWithRawResponse(self._client.mcp_servers)
882
+
883
+ @cached_property
884
+ def runs(self) -> runs.AsyncRunsResourceWithRawResponse:
885
+ from .resources.runs import AsyncRunsResourceWithRawResponse
886
+
887
+ return AsyncRunsResourceWithRawResponse(self._client.runs)
888
+
889
+ @cached_property
890
+ def steps(self) -> steps.AsyncStepsResourceWithRawResponse:
891
+ from .resources.steps import AsyncStepsResourceWithRawResponse
892
+
893
+ return AsyncStepsResourceWithRawResponse(self._client.steps)
894
+
895
+ @cached_property
896
+ def templates(self) -> templates.AsyncTemplatesResourceWithRawResponse:
897
+ from .resources.templates import AsyncTemplatesResourceWithRawResponse
898
+
899
+ return AsyncTemplatesResourceWithRawResponse(self._client.templates)
900
+
901
+ @cached_property
902
+ def tags(self) -> tags.AsyncTagsResourceWithRawResponse:
903
+ from .resources.tags import AsyncTagsResourceWithRawResponse
904
+
905
+ return AsyncTagsResourceWithRawResponse(self._client.tags)
906
+
907
+ @cached_property
908
+ def messages(self) -> messages.AsyncMessagesResourceWithRawResponse:
909
+ from .resources.messages import AsyncMessagesResourceWithRawResponse
910
+
911
+ return AsyncMessagesResourceWithRawResponse(self._client.messages)
912
+
913
+ @cached_property
914
+ def passages(self) -> passages.AsyncPassagesResourceWithRawResponse:
915
+ from .resources.passages import AsyncPassagesResourceWithRawResponse
916
+
917
+ return AsyncPassagesResourceWithRawResponse(self._client.passages)
918
+
919
+ @cached_property
920
+ def conversations(self) -> conversations.AsyncConversationsResourceWithRawResponse:
921
+ from .resources.conversations import AsyncConversationsResourceWithRawResponse
922
+
923
+ return AsyncConversationsResourceWithRawResponse(self._client.conversations)
924
+
925
+ @cached_property
926
+ def access_tokens(self) -> access_tokens.AsyncAccessTokensResourceWithRawResponse:
927
+ from .resources.access_tokens import AsyncAccessTokensResourceWithRawResponse
928
+
929
+ return AsyncAccessTokensResourceWithRawResponse(self._client.access_tokens)
930
+
931
+
932
+ class LettaWithStreamedResponse:
933
+ _client: Letta
934
+
935
+ def __init__(self, client: Letta) -> None:
936
+ self._client = client
937
+
938
+ self.health = to_streamed_response_wrapper(
939
+ client.health,
940
+ )
941
+
942
+ @cached_property
943
+ def agents(self) -> agents.AgentsResourceWithStreamingResponse:
944
+ from .resources.agents import AgentsResourceWithStreamingResponse
945
+
946
+ return AgentsResourceWithStreamingResponse(self._client.agents)
947
+
948
+ @cached_property
949
+ def tools(self) -> tools.ToolsResourceWithStreamingResponse:
950
+ from .resources.tools import ToolsResourceWithStreamingResponse
951
+
952
+ return ToolsResourceWithStreamingResponse(self._client.tools)
953
+
954
+ @cached_property
955
+ def blocks(self) -> blocks.BlocksResourceWithStreamingResponse:
956
+ from .resources.blocks import BlocksResourceWithStreamingResponse
957
+
958
+ return BlocksResourceWithStreamingResponse(self._client.blocks)
959
+
960
+ @cached_property
961
+ def archives(self) -> archives.ArchivesResourceWithStreamingResponse:
962
+ from .resources.archives import ArchivesResourceWithStreamingResponse
963
+
964
+ return ArchivesResourceWithStreamingResponse(self._client.archives)
965
+
966
+ @cached_property
967
+ def folders(self) -> folders.FoldersResourceWithStreamingResponse:
968
+ from .resources.folders import FoldersResourceWithStreamingResponse
969
+
970
+ return FoldersResourceWithStreamingResponse(self._client.folders)
971
+
972
+ @cached_property
973
+ def models(self) -> models.ModelsResourceWithStreamingResponse:
974
+ from .resources.models import ModelsResourceWithStreamingResponse
975
+
976
+ return ModelsResourceWithStreamingResponse(self._client.models)
977
+
978
+ @cached_property
979
+ def mcp_servers(self) -> mcp_servers.McpServersResourceWithStreamingResponse:
980
+ from .resources.mcp_servers import McpServersResourceWithStreamingResponse
981
+
982
+ return McpServersResourceWithStreamingResponse(self._client.mcp_servers)
983
+
984
+ @cached_property
985
+ def runs(self) -> runs.RunsResourceWithStreamingResponse:
986
+ from .resources.runs import RunsResourceWithStreamingResponse
987
+
988
+ return RunsResourceWithStreamingResponse(self._client.runs)
989
+
990
+ @cached_property
991
+ def steps(self) -> steps.StepsResourceWithStreamingResponse:
992
+ from .resources.steps import StepsResourceWithStreamingResponse
993
+
994
+ return StepsResourceWithStreamingResponse(self._client.steps)
995
+
996
+ @cached_property
997
+ def templates(self) -> templates.TemplatesResourceWithStreamingResponse:
998
+ from .resources.templates import TemplatesResourceWithStreamingResponse
999
+
1000
+ return TemplatesResourceWithStreamingResponse(self._client.templates)
1001
+
1002
+ @cached_property
1003
+ def tags(self) -> tags.TagsResourceWithStreamingResponse:
1004
+ from .resources.tags import TagsResourceWithStreamingResponse
1005
+
1006
+ return TagsResourceWithStreamingResponse(self._client.tags)
1007
+
1008
+ @cached_property
1009
+ def messages(self) -> messages.MessagesResourceWithStreamingResponse:
1010
+ from .resources.messages import MessagesResourceWithStreamingResponse
1011
+
1012
+ return MessagesResourceWithStreamingResponse(self._client.messages)
1013
+
1014
+ @cached_property
1015
+ def passages(self) -> passages.PassagesResourceWithStreamingResponse:
1016
+ from .resources.passages import PassagesResourceWithStreamingResponse
1017
+
1018
+ return PassagesResourceWithStreamingResponse(self._client.passages)
1019
+
1020
+ @cached_property
1021
+ def conversations(self) -> conversations.ConversationsResourceWithStreamingResponse:
1022
+ from .resources.conversations import ConversationsResourceWithStreamingResponse
1023
+
1024
+ return ConversationsResourceWithStreamingResponse(self._client.conversations)
1025
+
1026
+ @cached_property
1027
+ def access_tokens(self) -> access_tokens.AccessTokensResourceWithStreamingResponse:
1028
+ from .resources.access_tokens import AccessTokensResourceWithStreamingResponse
1029
+
1030
+ return AccessTokensResourceWithStreamingResponse(self._client.access_tokens)
1031
+
1032
+
1033
+ class AsyncLettaWithStreamedResponse:
1034
+ _client: AsyncLetta
1035
+
1036
+ def __init__(self, client: AsyncLetta) -> None:
1037
+ self._client = client
1038
+
1039
+ self.health = async_to_streamed_response_wrapper(
1040
+ client.health,
1041
+ )
1042
+
1043
+ @cached_property
1044
+ def agents(self) -> agents.AsyncAgentsResourceWithStreamingResponse:
1045
+ from .resources.agents import AsyncAgentsResourceWithStreamingResponse
1046
+
1047
+ return AsyncAgentsResourceWithStreamingResponse(self._client.agents)
1048
+
1049
+ @cached_property
1050
+ def tools(self) -> tools.AsyncToolsResourceWithStreamingResponse:
1051
+ from .resources.tools import AsyncToolsResourceWithStreamingResponse
1052
+
1053
+ return AsyncToolsResourceWithStreamingResponse(self._client.tools)
1054
+
1055
+ @cached_property
1056
+ def blocks(self) -> blocks.AsyncBlocksResourceWithStreamingResponse:
1057
+ from .resources.blocks import AsyncBlocksResourceWithStreamingResponse
1058
+
1059
+ return AsyncBlocksResourceWithStreamingResponse(self._client.blocks)
1060
+
1061
+ @cached_property
1062
+ def archives(self) -> archives.AsyncArchivesResourceWithStreamingResponse:
1063
+ from .resources.archives import AsyncArchivesResourceWithStreamingResponse
1064
+
1065
+ return AsyncArchivesResourceWithStreamingResponse(self._client.archives)
1066
+
1067
+ @cached_property
1068
+ def folders(self) -> folders.AsyncFoldersResourceWithStreamingResponse:
1069
+ from .resources.folders import AsyncFoldersResourceWithStreamingResponse
1070
+
1071
+ return AsyncFoldersResourceWithStreamingResponse(self._client.folders)
1072
+
1073
+ @cached_property
1074
+ def models(self) -> models.AsyncModelsResourceWithStreamingResponse:
1075
+ from .resources.models import AsyncModelsResourceWithStreamingResponse
1076
+
1077
+ return AsyncModelsResourceWithStreamingResponse(self._client.models)
1078
+
1079
+ @cached_property
1080
+ def mcp_servers(self) -> mcp_servers.AsyncMcpServersResourceWithStreamingResponse:
1081
+ from .resources.mcp_servers import AsyncMcpServersResourceWithStreamingResponse
1082
+
1083
+ return AsyncMcpServersResourceWithStreamingResponse(self._client.mcp_servers)
1084
+
1085
+ @cached_property
1086
+ def runs(self) -> runs.AsyncRunsResourceWithStreamingResponse:
1087
+ from .resources.runs import AsyncRunsResourceWithStreamingResponse
1088
+
1089
+ return AsyncRunsResourceWithStreamingResponse(self._client.runs)
1090
+
1091
+ @cached_property
1092
+ def steps(self) -> steps.AsyncStepsResourceWithStreamingResponse:
1093
+ from .resources.steps import AsyncStepsResourceWithStreamingResponse
1094
+
1095
+ return AsyncStepsResourceWithStreamingResponse(self._client.steps)
1096
+
1097
+ @cached_property
1098
+ def templates(self) -> templates.AsyncTemplatesResourceWithStreamingResponse:
1099
+ from .resources.templates import AsyncTemplatesResourceWithStreamingResponse
1100
+
1101
+ return AsyncTemplatesResourceWithStreamingResponse(self._client.templates)
1102
+
1103
+ @cached_property
1104
+ def tags(self) -> tags.AsyncTagsResourceWithStreamingResponse:
1105
+ from .resources.tags import AsyncTagsResourceWithStreamingResponse
1106
+
1107
+ return AsyncTagsResourceWithStreamingResponse(self._client.tags)
1108
+
1109
+ @cached_property
1110
+ def messages(self) -> messages.AsyncMessagesResourceWithStreamingResponse:
1111
+ from .resources.messages import AsyncMessagesResourceWithStreamingResponse
1112
+
1113
+ return AsyncMessagesResourceWithStreamingResponse(self._client.messages)
1114
+
1115
+ @cached_property
1116
+ def passages(self) -> passages.AsyncPassagesResourceWithStreamingResponse:
1117
+ from .resources.passages import AsyncPassagesResourceWithStreamingResponse
1118
+
1119
+ return AsyncPassagesResourceWithStreamingResponse(self._client.passages)
1120
+
1121
+ @cached_property
1122
+ def conversations(self) -> conversations.AsyncConversationsResourceWithStreamingResponse:
1123
+ from .resources.conversations import AsyncConversationsResourceWithStreamingResponse
1124
+
1125
+ return AsyncConversationsResourceWithStreamingResponse(self._client.conversations)
1126
+
1127
+ @cached_property
1128
+ def access_tokens(self) -> access_tokens.AsyncAccessTokensResourceWithStreamingResponse:
1129
+ from .resources.access_tokens import AsyncAccessTokensResourceWithStreamingResponse
1130
+
1131
+ return AsyncAccessTokensResourceWithStreamingResponse(self._client.access_tokens)
1132
+
1133
+
1134
+ Client = Letta
1135
+
1136
+ AsyncClient = AsyncLetta