letta-client 0.1.232__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 (757) hide show
  1. letta_client/__init__.py +91 -676
  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 -534
  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 +123 -80
  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.232.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 -24
  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 -1118
  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 -15
  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 -103
  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_ping.py +0 -26
  640. letta_client/types/letta_request.py +0 -54
  641. letta_client/types/letta_request_config.py +0 -38
  642. letta_client/types/letta_response.py +0 -40
  643. letta_client/types/letta_stop_reason.py +0 -32
  644. letta_client/types/letta_streaming_request.py +0 -59
  645. letta_client/types/letta_usage_statistics.py +0 -59
  646. letta_client/types/letta_user_message_content_union.py +0 -7
  647. letta_client/types/llm_config_compatibility_type.py +0 -5
  648. letta_client/types/llm_config_model_endpoint_type.py +0 -31
  649. letta_client/types/llm_config_reasoning_effort.py +0 -5
  650. letta_client/types/local_sandbox_config.py +0 -38
  651. letta_client/types/manager_type.py +0 -7
  652. letta_client/types/max_count_per_step_tool_rule_schema.py +0 -21
  653. letta_client/types/mcp_server_type.py +0 -5
  654. letta_client/types/mcp_tool.py +0 -38
  655. letta_client/types/memory.py +0 -38
  656. letta_client/types/message.py +0 -139
  657. letta_client/types/message_content_item.py +0 -20
  658. letta_client/types/message_create.py +0 -58
  659. letta_client/types/message_create_content.py +0 -6
  660. letta_client/types/message_create_role.py +0 -5
  661. letta_client/types/message_role.py +0 -5
  662. letta_client/types/message_schema.py +0 -29
  663. letta_client/types/message_type.py +0 -16
  664. letta_client/types/not_found_error_body.py +0 -19
  665. letta_client/types/not_found_error_body_message.py +0 -11
  666. letta_client/types/omitted_reasoning_content.py +0 -19
  667. letta_client/types/openai_types_chat_chat_completion_message_tool_call_param_function.py +0 -20
  668. letta_client/types/openai_types_chat_chat_completion_named_tool_choice_param_function.py +0 -19
  669. letta_client/types/openai_types_chat_completion_create_params_function.py +0 -21
  670. letta_client/types/organization.py +0 -38
  671. letta_client/types/organization_create.py +0 -27
  672. letta_client/types/organization_sources_stats.py +0 -42
  673. letta_client/types/organization_update.py +0 -27
  674. letta_client/types/parameter_properties.py +0 -20
  675. letta_client/types/parameters_schema.py +0 -22
  676. letta_client/types/payment_required_error_body.py +0 -20
  677. letta_client/types/provider.py +0 -65
  678. letta_client/types/provider_check.py +0 -38
  679. letta_client/types/reasoning_content.py +0 -33
  680. letta_client/types/reasoning_message.py +0 -44
  681. letta_client/types/reasoning_message_source.py +0 -5
  682. letta_client/types/redacted_reasoning_content.py +0 -23
  683. letta_client/types/response_format_json_object.py +0 -19
  684. letta_client/types/response_format_json_schema.py +0 -21
  685. letta_client/types/response_format_text.py +0 -19
  686. letta_client/types/round_robin_manager.py +0 -23
  687. letta_client/types/round_robin_manager_update.py +0 -23
  688. letta_client/types/run.py +0 -99
  689. letta_client/types/sandbox_config.py +0 -54
  690. letta_client/types/sandbox_config_create.py +0 -23
  691. letta_client/types/sandbox_config_create_config.py +0 -7
  692. letta_client/types/sandbox_config_update.py +0 -27
  693. letta_client/types/sandbox_config_update_config.py +0 -7
  694. letta_client/types/sandbox_environment_variable.py +0 -63
  695. letta_client/types/sandbox_environment_variable_create.py +0 -32
  696. letta_client/types/sandbox_environment_variable_update.py +0 -32
  697. letta_client/types/sandbox_type.py +0 -5
  698. letta_client/types/sleeptime_manager.py +0 -28
  699. letta_client/types/sleeptime_manager_update.py +0 -28
  700. letta_client/types/source.py +0 -81
  701. letta_client/types/source_create.py +0 -57
  702. letta_client/types/source_stats.py +0 -47
  703. letta_client/types/source_update.py +0 -47
  704. letta_client/types/sse_server_config.py +0 -55
  705. letta_client/types/stdio_server_config.py +0 -39
  706. letta_client/types/step_feedback.py +0 -5
  707. letta_client/types/streamable_http_server_config.py +0 -55
  708. letta_client/types/supervisor_manager.py +0 -23
  709. letta_client/types/supervisor_manager_update.py +0 -23
  710. letta_client/types/system_message.py +0 -41
  711. letta_client/types/tag_schema.py +0 -19
  712. letta_client/types/text_content.py +0 -23
  713. letta_client/types/tool_annotations.py +0 -36
  714. letta_client/types/tool_call.py +0 -21
  715. letta_client/types/tool_call_content.py +0 -33
  716. letta_client/types/tool_call_delta.py +0 -21
  717. letta_client/types/tool_call_message.py +0 -39
  718. letta_client/types/tool_call_message_tool_call.py +0 -7
  719. letta_client/types/tool_create.py +0 -58
  720. letta_client/types/tool_env_var_schema.py +0 -23
  721. letta_client/types/tool_json_schema.py +0 -24
  722. letta_client/types/tool_return.py +0 -33
  723. letta_client/types/tool_return_content.py +0 -33
  724. letta_client/types/tool_return_message_status.py +0 -5
  725. letta_client/types/tool_return_status.py +0 -5
  726. letta_client/types/tool_schema.py +0 -35
  727. letta_client/types/update_assistant_message.py +0 -24
  728. letta_client/types/update_assistant_message_content.py +0 -6
  729. letta_client/types/update_reasoning_message.py +0 -20
  730. letta_client/types/update_ssemcp_server.py +0 -41
  731. letta_client/types/update_stdio_mcp_server.py +0 -32
  732. letta_client/types/update_streamable_httpmcp_server.py +0 -46
  733. letta_client/types/update_system_message.py +0 -23
  734. letta_client/types/update_user_message.py +0 -24
  735. letta_client/types/update_user_message_content.py +0 -6
  736. letta_client/types/url_image.py +0 -23
  737. letta_client/types/usage_statistics.py +0 -25
  738. letta_client/types/usage_statistics_completion_token_details.py +0 -19
  739. letta_client/types/usage_statistics_prompt_token_details.py +0 -19
  740. letta_client/types/user.py +0 -52
  741. letta_client/types/user_create.py +0 -22
  742. letta_client/types/user_message.py +0 -42
  743. letta_client/types/user_message_content.py +0 -6
  744. letta_client/types/user_update.py +0 -27
  745. letta_client/types/validation_error.py +0 -22
  746. letta_client/types/validation_error_loc_item.py +0 -5
  747. letta_client/types/voice_sleeptime_manager.py +0 -33
  748. letta_client/types/voice_sleeptime_manager_update.py +0 -33
  749. letta_client/types/web_search_options.py +0 -22
  750. letta_client/types/web_search_options_search_context_size.py +0 -5
  751. letta_client/types/web_search_options_user_location.py +0 -21
  752. letta_client/types/web_search_options_user_location_approximate.py +0 -22
  753. letta_client/version.py +0 -3
  754. letta_client/voice/__init__.py +0 -2
  755. letta_client/voice/client.py +0 -177
  756. letta_client-0.1.232.dist-info/METADATA +0 -190
  757. letta_client-0.1.232.dist-info/RECORD +0 -454
@@ -1,1638 +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 ...core.request_options import RequestOptions
6
- from ...types.letta_message_union import LettaMessageUnion
7
- from ...core.jsonable_encoder import jsonable_encoder
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.message_create import MessageCreate
14
- from ...types.message_type import MessageType
15
- from ...types.letta_response import LettaResponse
16
- from ...core.serialization import convert_and_respect_annotation_metadata
17
- from .types.messages_modify_request import MessagesModifyRequest
18
- from .types.messages_modify_response import MessagesModifyResponse
19
- from .types.letta_streaming_response import LettaStreamingResponse
20
- import httpx_sse
21
- import json
22
- from ...types.run import Run
23
- from ...types.agent_state import AgentState
24
- from .types.messages_preview_raw_payload_request import MessagesPreviewRawPayloadRequest
25
- from ...core.client_wrapper import AsyncClientWrapper
26
-
27
- # this is used as the default value for optional parameters
28
- OMIT = typing.cast(typing.Any, ...)
29
-
30
-
31
- class MessagesClient:
32
- def __init__(self, *, client_wrapper: SyncClientWrapper):
33
- self._client_wrapper = client_wrapper
34
-
35
- def list(
36
- self,
37
- agent_id: str,
38
- *,
39
- after: typing.Optional[str] = None,
40
- before: typing.Optional[str] = None,
41
- limit: typing.Optional[int] = None,
42
- group_id: typing.Optional[str] = None,
43
- use_assistant_message: typing.Optional[bool] = None,
44
- assistant_message_tool_name: typing.Optional[str] = None,
45
- assistant_message_tool_kwarg: typing.Optional[str] = None,
46
- include_err: typing.Optional[bool] = None,
47
- request_options: typing.Optional[RequestOptions] = None,
48
- ) -> typing.List[LettaMessageUnion]:
49
- """
50
- Retrieve message history for an agent.
51
-
52
- Parameters
53
- ----------
54
- agent_id : str
55
-
56
- after : typing.Optional[str]
57
- Message after which to retrieve the returned messages.
58
-
59
- before : typing.Optional[str]
60
- Message before which to retrieve the returned messages.
61
-
62
- limit : typing.Optional[int]
63
- Maximum number of messages to retrieve.
64
-
65
- group_id : typing.Optional[str]
66
- Group ID to filter messages by.
67
-
68
- use_assistant_message : typing.Optional[bool]
69
- Whether to use assistant messages
70
-
71
- assistant_message_tool_name : typing.Optional[str]
72
- The name of the designated message tool.
73
-
74
- assistant_message_tool_kwarg : typing.Optional[str]
75
- The name of the message argument.
76
-
77
- include_err : typing.Optional[bool]
78
- Whether to include error messages and error statuses. For debugging purposes only.
79
-
80
- request_options : typing.Optional[RequestOptions]
81
- Request-specific configuration.
82
-
83
- Returns
84
- -------
85
- typing.List[LettaMessageUnion]
86
- Successful Response
87
-
88
- Examples
89
- --------
90
- from letta_client import Letta
91
-
92
- client = Letta(
93
- project="YOUR_PROJECT",
94
- token="YOUR_TOKEN",
95
- )
96
- client.agents.messages.list(
97
- agent_id="agent_id",
98
- )
99
- """
100
- _response = self._client_wrapper.httpx_client.request(
101
- f"v1/agents/{jsonable_encoder(agent_id)}/messages",
102
- method="GET",
103
- params={
104
- "after": after,
105
- "before": before,
106
- "limit": limit,
107
- "group_id": group_id,
108
- "use_assistant_message": use_assistant_message,
109
- "assistant_message_tool_name": assistant_message_tool_name,
110
- "assistant_message_tool_kwarg": assistant_message_tool_kwarg,
111
- "include_err": include_err,
112
- },
113
- request_options=request_options,
114
- )
115
- try:
116
- if 200 <= _response.status_code < 300:
117
- return typing.cast(
118
- typing.List[LettaMessageUnion],
119
- construct_type(
120
- type_=typing.List[LettaMessageUnion], # type: ignore
121
- object_=_response.json(),
122
- ),
123
- )
124
- if _response.status_code == 422:
125
- raise UnprocessableEntityError(
126
- typing.cast(
127
- HttpValidationError,
128
- construct_type(
129
- type_=HttpValidationError, # type: ignore
130
- object_=_response.json(),
131
- ),
132
- )
133
- )
134
- _response_json = _response.json()
135
- except JSONDecodeError:
136
- raise ApiError(status_code=_response.status_code, body=_response.text)
137
- raise ApiError(status_code=_response.status_code, body=_response_json)
138
-
139
- def create(
140
- self,
141
- agent_id: str,
142
- *,
143
- messages: typing.Sequence[MessageCreate],
144
- max_steps: typing.Optional[int] = OMIT,
145
- use_assistant_message: typing.Optional[bool] = OMIT,
146
- assistant_message_tool_name: typing.Optional[str] = OMIT,
147
- assistant_message_tool_kwarg: typing.Optional[str] = OMIT,
148
- include_return_message_types: typing.Optional[typing.Sequence[MessageType]] = OMIT,
149
- enable_thinking: typing.Optional[str] = OMIT,
150
- request_options: typing.Optional[RequestOptions] = None,
151
- ) -> LettaResponse:
152
- """
153
- Process a user message and return the agent's response.
154
- This endpoint accepts a message from a user and processes it through the agent.
155
-
156
- Parameters
157
- ----------
158
- agent_id : str
159
-
160
- messages : typing.Sequence[MessageCreate]
161
- The messages to be sent to the agent.
162
-
163
- max_steps : typing.Optional[int]
164
- Maximum number of steps the agent should take to process the request.
165
-
166
- use_assistant_message : typing.Optional[bool]
167
- Whether the server should parse specific tool call arguments (default `send_message`) as `AssistantMessage` objects.
168
-
169
- assistant_message_tool_name : typing.Optional[str]
170
- The name of the designated message tool.
171
-
172
- assistant_message_tool_kwarg : typing.Optional[str]
173
- The name of the message argument in the designated message tool.
174
-
175
- include_return_message_types : typing.Optional[typing.Sequence[MessageType]]
176
- Only return specified message types in the response. If `None` (default) returns all messages.
177
-
178
- enable_thinking : typing.Optional[str]
179
- If set to True, enables reasoning before responses or tool calls from the agent.
180
-
181
- request_options : typing.Optional[RequestOptions]
182
- Request-specific configuration.
183
-
184
- Returns
185
- -------
186
- LettaResponse
187
- Successful Response
188
-
189
- Examples
190
- --------
191
- from letta_client import Letta, MessageCreate, TextContent
192
-
193
- client = Letta(
194
- project="YOUR_PROJECT",
195
- token="YOUR_TOKEN",
196
- )
197
- client.agents.messages.create(
198
- agent_id="agent_id",
199
- messages=[
200
- MessageCreate(
201
- role="user",
202
- content=[
203
- TextContent(
204
- text="text",
205
- )
206
- ],
207
- )
208
- ],
209
- )
210
- """
211
- _response = self._client_wrapper.httpx_client.request(
212
- f"v1/agents/{jsonable_encoder(agent_id)}/messages",
213
- method="POST",
214
- json={
215
- "messages": convert_and_respect_annotation_metadata(
216
- object_=messages, annotation=typing.Sequence[MessageCreate], direction="write"
217
- ),
218
- "max_steps": max_steps,
219
- "use_assistant_message": use_assistant_message,
220
- "assistant_message_tool_name": assistant_message_tool_name,
221
- "assistant_message_tool_kwarg": assistant_message_tool_kwarg,
222
- "include_return_message_types": include_return_message_types,
223
- "enable_thinking": enable_thinking,
224
- },
225
- request_options=request_options,
226
- omit=OMIT,
227
- )
228
- try:
229
- if 200 <= _response.status_code < 300:
230
- return typing.cast(
231
- LettaResponse,
232
- construct_type(
233
- type_=LettaResponse, # type: ignore
234
- object_=_response.json(),
235
- ),
236
- )
237
- if _response.status_code == 422:
238
- raise UnprocessableEntityError(
239
- typing.cast(
240
- HttpValidationError,
241
- construct_type(
242
- type_=HttpValidationError, # type: ignore
243
- object_=_response.json(),
244
- ),
245
- )
246
- )
247
- _response_json = _response.json()
248
- except JSONDecodeError:
249
- raise ApiError(status_code=_response.status_code, body=_response.text)
250
- raise ApiError(status_code=_response.status_code, body=_response_json)
251
-
252
- def modify(
253
- self,
254
- agent_id: str,
255
- message_id: str,
256
- *,
257
- request: MessagesModifyRequest,
258
- request_options: typing.Optional[RequestOptions] = None,
259
- ) -> MessagesModifyResponse:
260
- """
261
- Update the details of a message associated with an agent.
262
-
263
- Parameters
264
- ----------
265
- agent_id : str
266
-
267
- message_id : str
268
-
269
- request : MessagesModifyRequest
270
-
271
- request_options : typing.Optional[RequestOptions]
272
- Request-specific configuration.
273
-
274
- Returns
275
- -------
276
- MessagesModifyResponse
277
- Successful Response
278
-
279
- Examples
280
- --------
281
- from letta_client import Letta, UpdateSystemMessage
282
-
283
- client = Letta(
284
- project="YOUR_PROJECT",
285
- token="YOUR_TOKEN",
286
- )
287
- client.agents.messages.modify(
288
- agent_id="agent_id",
289
- message_id="message_id",
290
- request=UpdateSystemMessage(
291
- content="content",
292
- ),
293
- )
294
- """
295
- _response = self._client_wrapper.httpx_client.request(
296
- f"v1/agents/{jsonable_encoder(agent_id)}/messages/{jsonable_encoder(message_id)}",
297
- method="PATCH",
298
- json=convert_and_respect_annotation_metadata(
299
- object_=request, annotation=MessagesModifyRequest, direction="write"
300
- ),
301
- request_options=request_options,
302
- omit=OMIT,
303
- )
304
- try:
305
- if 200 <= _response.status_code < 300:
306
- return typing.cast(
307
- MessagesModifyResponse,
308
- construct_type(
309
- type_=MessagesModifyResponse, # type: ignore
310
- object_=_response.json(),
311
- ),
312
- )
313
- if _response.status_code == 422:
314
- raise UnprocessableEntityError(
315
- typing.cast(
316
- HttpValidationError,
317
- construct_type(
318
- type_=HttpValidationError, # type: ignore
319
- object_=_response.json(),
320
- ),
321
- )
322
- )
323
- _response_json = _response.json()
324
- except JSONDecodeError:
325
- raise ApiError(status_code=_response.status_code, body=_response.text)
326
- raise ApiError(status_code=_response.status_code, body=_response_json)
327
-
328
- def create_stream(
329
- self,
330
- agent_id: str,
331
- *,
332
- messages: typing.Sequence[MessageCreate],
333
- max_steps: typing.Optional[int] = OMIT,
334
- use_assistant_message: typing.Optional[bool] = OMIT,
335
- assistant_message_tool_name: typing.Optional[str] = OMIT,
336
- assistant_message_tool_kwarg: typing.Optional[str] = OMIT,
337
- include_return_message_types: typing.Optional[typing.Sequence[MessageType]] = OMIT,
338
- enable_thinking: typing.Optional[str] = OMIT,
339
- stream_tokens: typing.Optional[bool] = OMIT,
340
- request_options: typing.Optional[RequestOptions] = None,
341
- ) -> typing.Iterator[LettaStreamingResponse]:
342
- """
343
- Process a user message and return the agent's response.
344
- This endpoint accepts a message from a user and processes it through the agent.
345
- It will stream the steps of the response always, and stream the tokens if 'stream_tokens' is set to True.
346
-
347
- Parameters
348
- ----------
349
- agent_id : str
350
-
351
- messages : typing.Sequence[MessageCreate]
352
- The messages to be sent to the agent.
353
-
354
- max_steps : typing.Optional[int]
355
- Maximum number of steps the agent should take to process the request.
356
-
357
- use_assistant_message : typing.Optional[bool]
358
- Whether the server should parse specific tool call arguments (default `send_message`) as `AssistantMessage` objects.
359
-
360
- assistant_message_tool_name : typing.Optional[str]
361
- The name of the designated message tool.
362
-
363
- assistant_message_tool_kwarg : typing.Optional[str]
364
- The name of the message argument in the designated message tool.
365
-
366
- include_return_message_types : typing.Optional[typing.Sequence[MessageType]]
367
- Only return specified message types in the response. If `None` (default) returns all messages.
368
-
369
- enable_thinking : typing.Optional[str]
370
- If set to True, enables reasoning before responses or tool calls from the agent.
371
-
372
- stream_tokens : typing.Optional[bool]
373
- Flag to determine if individual tokens should be streamed. Set to True for token streaming (requires stream_steps = True).
374
-
375
- request_options : typing.Optional[RequestOptions]
376
- Request-specific configuration.
377
-
378
- Yields
379
- ------
380
- typing.Iterator[LettaStreamingResponse]
381
- Successful response
382
-
383
- Examples
384
- --------
385
- from letta_client import Letta, MessageCreate, TextContent
386
-
387
- client = Letta(
388
- project="YOUR_PROJECT",
389
- token="YOUR_TOKEN",
390
- )
391
- response = client.agents.messages.create_stream(
392
- agent_id="agent_id",
393
- messages=[
394
- MessageCreate(
395
- role="user",
396
- content=[
397
- TextContent(
398
- text="text",
399
- )
400
- ],
401
- )
402
- ],
403
- )
404
- for chunk in response:
405
- yield chunk
406
- """
407
- with self._client_wrapper.httpx_client.stream(
408
- f"v1/agents/{jsonable_encoder(agent_id)}/messages/stream",
409
- method="POST",
410
- json={
411
- "messages": convert_and_respect_annotation_metadata(
412
- object_=messages, annotation=typing.Sequence[MessageCreate], direction="write"
413
- ),
414
- "max_steps": max_steps,
415
- "use_assistant_message": use_assistant_message,
416
- "assistant_message_tool_name": assistant_message_tool_name,
417
- "assistant_message_tool_kwarg": assistant_message_tool_kwarg,
418
- "include_return_message_types": include_return_message_types,
419
- "enable_thinking": enable_thinking,
420
- "stream_tokens": stream_tokens,
421
- },
422
- request_options=request_options,
423
- omit=OMIT,
424
- ) as _response:
425
- try:
426
- if 200 <= _response.status_code < 300:
427
- _event_source = httpx_sse.EventSource(_response)
428
- for _sse in _event_source.iter_sse():
429
- try:
430
- yield typing.cast(
431
- LettaStreamingResponse,
432
- construct_type(
433
- type_=LettaStreamingResponse, # type: ignore
434
- object_=json.loads(_sse.data),
435
- ),
436
- )
437
- except:
438
- pass
439
- return
440
- _response.read()
441
- if _response.status_code == 422:
442
- raise UnprocessableEntityError(
443
- typing.cast(
444
- HttpValidationError,
445
- construct_type(
446
- type_=HttpValidationError, # type: ignore
447
- object_=_response.json(),
448
- ),
449
- )
450
- )
451
- _response_json = _response.json()
452
- except JSONDecodeError:
453
- raise ApiError(status_code=_response.status_code, body=_response.text)
454
- raise ApiError(status_code=_response.status_code, body=_response_json)
455
-
456
- def cancel(
457
- self,
458
- agent_id: str,
459
- *,
460
- request: typing.Optional[typing.Sequence[str]] = None,
461
- request_options: typing.Optional[RequestOptions] = None,
462
- ) -> typing.Dict[str, typing.Optional[typing.Any]]:
463
- """
464
- Cancel runs associated with an agent. If run_ids are passed in, cancel those in particular.
465
-
466
- Note to cancel active runs associated with an agent, redis is required.
467
-
468
- Parameters
469
- ----------
470
- agent_id : str
471
-
472
- request : typing.Optional[typing.Sequence[str]]
473
-
474
- request_options : typing.Optional[RequestOptions]
475
- Request-specific configuration.
476
-
477
- Returns
478
- -------
479
- typing.Dict[str, typing.Optional[typing.Any]]
480
- Successful Response
481
-
482
- Examples
483
- --------
484
- from letta_client import Letta
485
-
486
- client = Letta(
487
- project="YOUR_PROJECT",
488
- token="YOUR_TOKEN",
489
- )
490
- client.agents.messages.cancel(
491
- agent_id="agent_id",
492
- )
493
- """
494
- _response = self._client_wrapper.httpx_client.request(
495
- f"v1/agents/{jsonable_encoder(agent_id)}/messages/cancel",
496
- method="POST",
497
- json=request,
498
- request_options=request_options,
499
- omit=OMIT,
500
- )
501
- try:
502
- if 200 <= _response.status_code < 300:
503
- return typing.cast(
504
- typing.Dict[str, typing.Optional[typing.Any]],
505
- construct_type(
506
- type_=typing.Dict[str, typing.Optional[typing.Any]], # type: ignore
507
- object_=_response.json(),
508
- ),
509
- )
510
- if _response.status_code == 422:
511
- raise UnprocessableEntityError(
512
- typing.cast(
513
- HttpValidationError,
514
- construct_type(
515
- type_=HttpValidationError, # type: ignore
516
- object_=_response.json(),
517
- ),
518
- )
519
- )
520
- _response_json = _response.json()
521
- except JSONDecodeError:
522
- raise ApiError(status_code=_response.status_code, body=_response.text)
523
- raise ApiError(status_code=_response.status_code, body=_response_json)
524
-
525
- def create_async(
526
- self,
527
- agent_id: str,
528
- *,
529
- messages: typing.Sequence[MessageCreate],
530
- max_steps: typing.Optional[int] = OMIT,
531
- use_assistant_message: typing.Optional[bool] = OMIT,
532
- assistant_message_tool_name: typing.Optional[str] = OMIT,
533
- assistant_message_tool_kwarg: typing.Optional[str] = OMIT,
534
- include_return_message_types: typing.Optional[typing.Sequence[MessageType]] = OMIT,
535
- enable_thinking: typing.Optional[str] = OMIT,
536
- callback_url: typing.Optional[str] = OMIT,
537
- request_options: typing.Optional[RequestOptions] = None,
538
- ) -> Run:
539
- """
540
- Asynchronously process a user message and return a run object.
541
- The actual processing happens in the background, and the status can be checked using the run ID.
542
-
543
- This is "asynchronous" in the sense that it's a background job and explicitly must be fetched by the run ID.
544
- This is more like `send_message_job`
545
-
546
- Parameters
547
- ----------
548
- agent_id : str
549
-
550
- messages : typing.Sequence[MessageCreate]
551
- The messages to be sent to the agent.
552
-
553
- max_steps : typing.Optional[int]
554
- Maximum number of steps the agent should take to process the request.
555
-
556
- use_assistant_message : typing.Optional[bool]
557
- Whether the server should parse specific tool call arguments (default `send_message`) as `AssistantMessage` objects.
558
-
559
- assistant_message_tool_name : typing.Optional[str]
560
- The name of the designated message tool.
561
-
562
- assistant_message_tool_kwarg : typing.Optional[str]
563
- The name of the message argument in the designated message tool.
564
-
565
- include_return_message_types : typing.Optional[typing.Sequence[MessageType]]
566
- Only return specified message types in the response. If `None` (default) returns all messages.
567
-
568
- enable_thinking : typing.Optional[str]
569
- If set to True, enables reasoning before responses or tool calls from the agent.
570
-
571
- callback_url : typing.Optional[str]
572
- Optional callback URL to POST to when the job completes
573
-
574
- request_options : typing.Optional[RequestOptions]
575
- Request-specific configuration.
576
-
577
- Returns
578
- -------
579
- Run
580
- Successful Response
581
-
582
- Examples
583
- --------
584
- from letta_client import Letta, MessageCreate, TextContent
585
-
586
- client = Letta(
587
- project="YOUR_PROJECT",
588
- token="YOUR_TOKEN",
589
- )
590
- client.agents.messages.create_async(
591
- agent_id="agent_id",
592
- messages=[
593
- MessageCreate(
594
- role="user",
595
- content=[
596
- TextContent(
597
- text="text",
598
- )
599
- ],
600
- )
601
- ],
602
- )
603
- """
604
- _response = self._client_wrapper.httpx_client.request(
605
- f"v1/agents/{jsonable_encoder(agent_id)}/messages/async",
606
- method="POST",
607
- json={
608
- "messages": convert_and_respect_annotation_metadata(
609
- object_=messages, annotation=typing.Sequence[MessageCreate], direction="write"
610
- ),
611
- "max_steps": max_steps,
612
- "use_assistant_message": use_assistant_message,
613
- "assistant_message_tool_name": assistant_message_tool_name,
614
- "assistant_message_tool_kwarg": assistant_message_tool_kwarg,
615
- "include_return_message_types": include_return_message_types,
616
- "enable_thinking": enable_thinking,
617
- "callback_url": callback_url,
618
- },
619
- headers={
620
- "content-type": "application/json",
621
- },
622
- request_options=request_options,
623
- omit=OMIT,
624
- )
625
- try:
626
- if 200 <= _response.status_code < 300:
627
- return typing.cast(
628
- Run,
629
- construct_type(
630
- type_=Run, # type: ignore
631
- object_=_response.json(),
632
- ),
633
- )
634
- if _response.status_code == 422:
635
- raise UnprocessableEntityError(
636
- typing.cast(
637
- HttpValidationError,
638
- construct_type(
639
- type_=HttpValidationError, # type: ignore
640
- object_=_response.json(),
641
- ),
642
- )
643
- )
644
- _response_json = _response.json()
645
- except JSONDecodeError:
646
- raise ApiError(status_code=_response.status_code, body=_response.text)
647
- raise ApiError(status_code=_response.status_code, body=_response_json)
648
-
649
- def reset(
650
- self,
651
- agent_id: str,
652
- *,
653
- add_default_initial_messages: typing.Optional[bool] = None,
654
- request_options: typing.Optional[RequestOptions] = None,
655
- ) -> AgentState:
656
- """
657
- Resets the messages for an agent
658
-
659
- Parameters
660
- ----------
661
- agent_id : str
662
-
663
- add_default_initial_messages : typing.Optional[bool]
664
- If true, adds the default initial messages after resetting.
665
-
666
- request_options : typing.Optional[RequestOptions]
667
- Request-specific configuration.
668
-
669
- Returns
670
- -------
671
- AgentState
672
- Successful Response
673
-
674
- Examples
675
- --------
676
- from letta_client import Letta
677
-
678
- client = Letta(
679
- project="YOUR_PROJECT",
680
- token="YOUR_TOKEN",
681
- )
682
- client.agents.messages.reset(
683
- agent_id="agent_id",
684
- )
685
- """
686
- _response = self._client_wrapper.httpx_client.request(
687
- f"v1/agents/{jsonable_encoder(agent_id)}/reset-messages",
688
- method="PATCH",
689
- params={
690
- "add_default_initial_messages": add_default_initial_messages,
691
- },
692
- request_options=request_options,
693
- )
694
- try:
695
- if 200 <= _response.status_code < 300:
696
- return typing.cast(
697
- AgentState,
698
- construct_type(
699
- type_=AgentState, # type: ignore
700
- object_=_response.json(),
701
- ),
702
- )
703
- if _response.status_code == 422:
704
- raise UnprocessableEntityError(
705
- typing.cast(
706
- HttpValidationError,
707
- construct_type(
708
- type_=HttpValidationError, # type: ignore
709
- object_=_response.json(),
710
- ),
711
- )
712
- )
713
- _response_json = _response.json()
714
- except JSONDecodeError:
715
- raise ApiError(status_code=_response.status_code, body=_response.text)
716
- raise ApiError(status_code=_response.status_code, body=_response_json)
717
-
718
- def preview_raw_payload(
719
- self,
720
- agent_id: str,
721
- *,
722
- request: MessagesPreviewRawPayloadRequest,
723
- request_options: typing.Optional[RequestOptions] = None,
724
- ) -> typing.Dict[str, typing.Optional[typing.Any]]:
725
- """
726
- Inspect the raw LLM request payload without sending it.
727
-
728
- This endpoint processes the message through the agent loop up until
729
- the LLM request, then returns the raw request payload that would
730
- be sent to the LLM provider. Useful for debugging and inspection.
731
-
732
- Parameters
733
- ----------
734
- agent_id : str
735
-
736
- request : MessagesPreviewRawPayloadRequest
737
-
738
- request_options : typing.Optional[RequestOptions]
739
- Request-specific configuration.
740
-
741
- Returns
742
- -------
743
- typing.Dict[str, typing.Optional[typing.Any]]
744
- Successful Response
745
-
746
- Examples
747
- --------
748
- from letta_client import Letta, LettaRequest, MessageCreate, TextContent
749
-
750
- client = Letta(
751
- project="YOUR_PROJECT",
752
- token="YOUR_TOKEN",
753
- )
754
- client.agents.messages.preview_raw_payload(
755
- agent_id="agent_id",
756
- request=LettaRequest(
757
- messages=[
758
- MessageCreate(
759
- role="user",
760
- content=[
761
- TextContent(
762
- text="text",
763
- )
764
- ],
765
- )
766
- ],
767
- ),
768
- )
769
- """
770
- _response = self._client_wrapper.httpx_client.request(
771
- f"v1/agents/{jsonable_encoder(agent_id)}/messages/preview-raw-payload",
772
- method="POST",
773
- json=convert_and_respect_annotation_metadata(
774
- object_=request, annotation=MessagesPreviewRawPayloadRequest, direction="write"
775
- ),
776
- request_options=request_options,
777
- omit=OMIT,
778
- )
779
- try:
780
- if 200 <= _response.status_code < 300:
781
- return typing.cast(
782
- typing.Dict[str, typing.Optional[typing.Any]],
783
- construct_type(
784
- type_=typing.Dict[str, typing.Optional[typing.Any]], # type: ignore
785
- object_=_response.json(),
786
- ),
787
- )
788
- if _response.status_code == 422:
789
- raise UnprocessableEntityError(
790
- typing.cast(
791
- HttpValidationError,
792
- construct_type(
793
- type_=HttpValidationError, # type: ignore
794
- object_=_response.json(),
795
- ),
796
- )
797
- )
798
- _response_json = _response.json()
799
- except JSONDecodeError:
800
- raise ApiError(status_code=_response.status_code, body=_response.text)
801
- raise ApiError(status_code=_response.status_code, body=_response_json)
802
-
803
-
804
- class AsyncMessagesClient:
805
- def __init__(self, *, client_wrapper: AsyncClientWrapper):
806
- self._client_wrapper = client_wrapper
807
-
808
- async def list(
809
- self,
810
- agent_id: str,
811
- *,
812
- after: typing.Optional[str] = None,
813
- before: typing.Optional[str] = None,
814
- limit: typing.Optional[int] = None,
815
- group_id: typing.Optional[str] = None,
816
- use_assistant_message: typing.Optional[bool] = None,
817
- assistant_message_tool_name: typing.Optional[str] = None,
818
- assistant_message_tool_kwarg: typing.Optional[str] = None,
819
- include_err: typing.Optional[bool] = None,
820
- request_options: typing.Optional[RequestOptions] = None,
821
- ) -> typing.List[LettaMessageUnion]:
822
- """
823
- Retrieve message history for an agent.
824
-
825
- Parameters
826
- ----------
827
- agent_id : str
828
-
829
- after : typing.Optional[str]
830
- Message after which to retrieve the returned messages.
831
-
832
- before : typing.Optional[str]
833
- Message before which to retrieve the returned messages.
834
-
835
- limit : typing.Optional[int]
836
- Maximum number of messages to retrieve.
837
-
838
- group_id : typing.Optional[str]
839
- Group ID to filter messages by.
840
-
841
- use_assistant_message : typing.Optional[bool]
842
- Whether to use assistant messages
843
-
844
- assistant_message_tool_name : typing.Optional[str]
845
- The name of the designated message tool.
846
-
847
- assistant_message_tool_kwarg : typing.Optional[str]
848
- The name of the message argument.
849
-
850
- include_err : typing.Optional[bool]
851
- Whether to include error messages and error statuses. For debugging purposes only.
852
-
853
- request_options : typing.Optional[RequestOptions]
854
- Request-specific configuration.
855
-
856
- Returns
857
- -------
858
- typing.List[LettaMessageUnion]
859
- Successful Response
860
-
861
- Examples
862
- --------
863
- import asyncio
864
-
865
- from letta_client import AsyncLetta
866
-
867
- client = AsyncLetta(
868
- project="YOUR_PROJECT",
869
- token="YOUR_TOKEN",
870
- )
871
-
872
-
873
- async def main() -> None:
874
- await client.agents.messages.list(
875
- agent_id="agent_id",
876
- )
877
-
878
-
879
- asyncio.run(main())
880
- """
881
- _response = await self._client_wrapper.httpx_client.request(
882
- f"v1/agents/{jsonable_encoder(agent_id)}/messages",
883
- method="GET",
884
- params={
885
- "after": after,
886
- "before": before,
887
- "limit": limit,
888
- "group_id": group_id,
889
- "use_assistant_message": use_assistant_message,
890
- "assistant_message_tool_name": assistant_message_tool_name,
891
- "assistant_message_tool_kwarg": assistant_message_tool_kwarg,
892
- "include_err": include_err,
893
- },
894
- request_options=request_options,
895
- )
896
- try:
897
- if 200 <= _response.status_code < 300:
898
- return typing.cast(
899
- typing.List[LettaMessageUnion],
900
- construct_type(
901
- type_=typing.List[LettaMessageUnion], # type: ignore
902
- object_=_response.json(),
903
- ),
904
- )
905
- if _response.status_code == 422:
906
- raise UnprocessableEntityError(
907
- typing.cast(
908
- HttpValidationError,
909
- construct_type(
910
- type_=HttpValidationError, # type: ignore
911
- object_=_response.json(),
912
- ),
913
- )
914
- )
915
- _response_json = _response.json()
916
- except JSONDecodeError:
917
- raise ApiError(status_code=_response.status_code, body=_response.text)
918
- raise ApiError(status_code=_response.status_code, body=_response_json)
919
-
920
- async def create(
921
- self,
922
- agent_id: str,
923
- *,
924
- messages: typing.Sequence[MessageCreate],
925
- max_steps: typing.Optional[int] = OMIT,
926
- use_assistant_message: typing.Optional[bool] = OMIT,
927
- assistant_message_tool_name: typing.Optional[str] = OMIT,
928
- assistant_message_tool_kwarg: typing.Optional[str] = OMIT,
929
- include_return_message_types: typing.Optional[typing.Sequence[MessageType]] = OMIT,
930
- enable_thinking: typing.Optional[str] = OMIT,
931
- request_options: typing.Optional[RequestOptions] = None,
932
- ) -> LettaResponse:
933
- """
934
- Process a user message and return the agent's response.
935
- This endpoint accepts a message from a user and processes it through the agent.
936
-
937
- Parameters
938
- ----------
939
- agent_id : str
940
-
941
- messages : typing.Sequence[MessageCreate]
942
- The messages to be sent to the agent.
943
-
944
- max_steps : typing.Optional[int]
945
- Maximum number of steps the agent should take to process the request.
946
-
947
- use_assistant_message : typing.Optional[bool]
948
- Whether the server should parse specific tool call arguments (default `send_message`) as `AssistantMessage` objects.
949
-
950
- assistant_message_tool_name : typing.Optional[str]
951
- The name of the designated message tool.
952
-
953
- assistant_message_tool_kwarg : typing.Optional[str]
954
- The name of the message argument in the designated message tool.
955
-
956
- include_return_message_types : typing.Optional[typing.Sequence[MessageType]]
957
- Only return specified message types in the response. If `None` (default) returns all messages.
958
-
959
- enable_thinking : typing.Optional[str]
960
- If set to True, enables reasoning before responses or tool calls from the agent.
961
-
962
- request_options : typing.Optional[RequestOptions]
963
- Request-specific configuration.
964
-
965
- Returns
966
- -------
967
- LettaResponse
968
- Successful Response
969
-
970
- Examples
971
- --------
972
- import asyncio
973
-
974
- from letta_client import AsyncLetta, MessageCreate, TextContent
975
-
976
- client = AsyncLetta(
977
- project="YOUR_PROJECT",
978
- token="YOUR_TOKEN",
979
- )
980
-
981
-
982
- async def main() -> None:
983
- await client.agents.messages.create(
984
- agent_id="agent_id",
985
- messages=[
986
- MessageCreate(
987
- role="user",
988
- content=[
989
- TextContent(
990
- text="text",
991
- )
992
- ],
993
- )
994
- ],
995
- )
996
-
997
-
998
- asyncio.run(main())
999
- """
1000
- _response = await self._client_wrapper.httpx_client.request(
1001
- f"v1/agents/{jsonable_encoder(agent_id)}/messages",
1002
- method="POST",
1003
- json={
1004
- "messages": convert_and_respect_annotation_metadata(
1005
- object_=messages, annotation=typing.Sequence[MessageCreate], direction="write"
1006
- ),
1007
- "max_steps": max_steps,
1008
- "use_assistant_message": use_assistant_message,
1009
- "assistant_message_tool_name": assistant_message_tool_name,
1010
- "assistant_message_tool_kwarg": assistant_message_tool_kwarg,
1011
- "include_return_message_types": include_return_message_types,
1012
- "enable_thinking": enable_thinking,
1013
- },
1014
- request_options=request_options,
1015
- omit=OMIT,
1016
- )
1017
- try:
1018
- if 200 <= _response.status_code < 300:
1019
- return typing.cast(
1020
- LettaResponse,
1021
- construct_type(
1022
- type_=LettaResponse, # type: ignore
1023
- object_=_response.json(),
1024
- ),
1025
- )
1026
- if _response.status_code == 422:
1027
- raise UnprocessableEntityError(
1028
- typing.cast(
1029
- HttpValidationError,
1030
- construct_type(
1031
- type_=HttpValidationError, # type: ignore
1032
- object_=_response.json(),
1033
- ),
1034
- )
1035
- )
1036
- _response_json = _response.json()
1037
- except JSONDecodeError:
1038
- raise ApiError(status_code=_response.status_code, body=_response.text)
1039
- raise ApiError(status_code=_response.status_code, body=_response_json)
1040
-
1041
- async def modify(
1042
- self,
1043
- agent_id: str,
1044
- message_id: str,
1045
- *,
1046
- request: MessagesModifyRequest,
1047
- request_options: typing.Optional[RequestOptions] = None,
1048
- ) -> MessagesModifyResponse:
1049
- """
1050
- Update the details of a message associated with an agent.
1051
-
1052
- Parameters
1053
- ----------
1054
- agent_id : str
1055
-
1056
- message_id : str
1057
-
1058
- request : MessagesModifyRequest
1059
-
1060
- request_options : typing.Optional[RequestOptions]
1061
- Request-specific configuration.
1062
-
1063
- Returns
1064
- -------
1065
- MessagesModifyResponse
1066
- Successful Response
1067
-
1068
- Examples
1069
- --------
1070
- import asyncio
1071
-
1072
- from letta_client import AsyncLetta, UpdateSystemMessage
1073
-
1074
- client = AsyncLetta(
1075
- project="YOUR_PROJECT",
1076
- token="YOUR_TOKEN",
1077
- )
1078
-
1079
-
1080
- async def main() -> None:
1081
- await client.agents.messages.modify(
1082
- agent_id="agent_id",
1083
- message_id="message_id",
1084
- request=UpdateSystemMessage(
1085
- content="content",
1086
- ),
1087
- )
1088
-
1089
-
1090
- asyncio.run(main())
1091
- """
1092
- _response = await self._client_wrapper.httpx_client.request(
1093
- f"v1/agents/{jsonable_encoder(agent_id)}/messages/{jsonable_encoder(message_id)}",
1094
- method="PATCH",
1095
- json=convert_and_respect_annotation_metadata(
1096
- object_=request, annotation=MessagesModifyRequest, direction="write"
1097
- ),
1098
- request_options=request_options,
1099
- omit=OMIT,
1100
- )
1101
- try:
1102
- if 200 <= _response.status_code < 300:
1103
- return typing.cast(
1104
- MessagesModifyResponse,
1105
- construct_type(
1106
- type_=MessagesModifyResponse, # type: ignore
1107
- object_=_response.json(),
1108
- ),
1109
- )
1110
- if _response.status_code == 422:
1111
- raise UnprocessableEntityError(
1112
- typing.cast(
1113
- HttpValidationError,
1114
- construct_type(
1115
- type_=HttpValidationError, # type: ignore
1116
- object_=_response.json(),
1117
- ),
1118
- )
1119
- )
1120
- _response_json = _response.json()
1121
- except JSONDecodeError:
1122
- raise ApiError(status_code=_response.status_code, body=_response.text)
1123
- raise ApiError(status_code=_response.status_code, body=_response_json)
1124
-
1125
- async def create_stream(
1126
- self,
1127
- agent_id: str,
1128
- *,
1129
- messages: typing.Sequence[MessageCreate],
1130
- max_steps: typing.Optional[int] = OMIT,
1131
- use_assistant_message: typing.Optional[bool] = OMIT,
1132
- assistant_message_tool_name: typing.Optional[str] = OMIT,
1133
- assistant_message_tool_kwarg: typing.Optional[str] = OMIT,
1134
- include_return_message_types: typing.Optional[typing.Sequence[MessageType]] = OMIT,
1135
- enable_thinking: typing.Optional[str] = OMIT,
1136
- stream_tokens: typing.Optional[bool] = OMIT,
1137
- request_options: typing.Optional[RequestOptions] = None,
1138
- ) -> typing.AsyncIterator[LettaStreamingResponse]:
1139
- """
1140
- Process a user message and return the agent's response.
1141
- This endpoint accepts a message from a user and processes it through the agent.
1142
- It will stream the steps of the response always, and stream the tokens if 'stream_tokens' is set to True.
1143
-
1144
- Parameters
1145
- ----------
1146
- agent_id : str
1147
-
1148
- messages : typing.Sequence[MessageCreate]
1149
- The messages to be sent to the agent.
1150
-
1151
- max_steps : typing.Optional[int]
1152
- Maximum number of steps the agent should take to process the request.
1153
-
1154
- use_assistant_message : typing.Optional[bool]
1155
- Whether the server should parse specific tool call arguments (default `send_message`) as `AssistantMessage` objects.
1156
-
1157
- assistant_message_tool_name : typing.Optional[str]
1158
- The name of the designated message tool.
1159
-
1160
- assistant_message_tool_kwarg : typing.Optional[str]
1161
- The name of the message argument in the designated message tool.
1162
-
1163
- include_return_message_types : typing.Optional[typing.Sequence[MessageType]]
1164
- Only return specified message types in the response. If `None` (default) returns all messages.
1165
-
1166
- enable_thinking : typing.Optional[str]
1167
- If set to True, enables reasoning before responses or tool calls from the agent.
1168
-
1169
- stream_tokens : typing.Optional[bool]
1170
- Flag to determine if individual tokens should be streamed. Set to True for token streaming (requires stream_steps = True).
1171
-
1172
- request_options : typing.Optional[RequestOptions]
1173
- Request-specific configuration.
1174
-
1175
- Yields
1176
- ------
1177
- typing.AsyncIterator[LettaStreamingResponse]
1178
- Successful response
1179
-
1180
- Examples
1181
- --------
1182
- import asyncio
1183
-
1184
- from letta_client import AsyncLetta, MessageCreate, TextContent
1185
-
1186
- client = AsyncLetta(
1187
- project="YOUR_PROJECT",
1188
- token="YOUR_TOKEN",
1189
- )
1190
-
1191
-
1192
- async def main() -> None:
1193
- response = await client.agents.messages.create_stream(
1194
- agent_id="agent_id",
1195
- messages=[
1196
- MessageCreate(
1197
- role="user",
1198
- content=[
1199
- TextContent(
1200
- text="text",
1201
- )
1202
- ],
1203
- )
1204
- ],
1205
- )
1206
- async for chunk in response:
1207
- yield chunk
1208
-
1209
-
1210
- asyncio.run(main())
1211
- """
1212
- async with self._client_wrapper.httpx_client.stream(
1213
- f"v1/agents/{jsonable_encoder(agent_id)}/messages/stream",
1214
- method="POST",
1215
- json={
1216
- "messages": convert_and_respect_annotation_metadata(
1217
- object_=messages, annotation=typing.Sequence[MessageCreate], direction="write"
1218
- ),
1219
- "max_steps": max_steps,
1220
- "use_assistant_message": use_assistant_message,
1221
- "assistant_message_tool_name": assistant_message_tool_name,
1222
- "assistant_message_tool_kwarg": assistant_message_tool_kwarg,
1223
- "include_return_message_types": include_return_message_types,
1224
- "enable_thinking": enable_thinking,
1225
- "stream_tokens": stream_tokens,
1226
- },
1227
- request_options=request_options,
1228
- omit=OMIT,
1229
- ) as _response:
1230
- try:
1231
- if 200 <= _response.status_code < 300:
1232
- _event_source = httpx_sse.EventSource(_response)
1233
- async for _sse in _event_source.aiter_sse():
1234
- try:
1235
- yield typing.cast(
1236
- LettaStreamingResponse,
1237
- construct_type(
1238
- type_=LettaStreamingResponse, # type: ignore
1239
- object_=json.loads(_sse.data),
1240
- ),
1241
- )
1242
- except:
1243
- pass
1244
- return
1245
- await _response.aread()
1246
- if _response.status_code == 422:
1247
- raise UnprocessableEntityError(
1248
- typing.cast(
1249
- HttpValidationError,
1250
- construct_type(
1251
- type_=HttpValidationError, # type: ignore
1252
- object_=_response.json(),
1253
- ),
1254
- )
1255
- )
1256
- _response_json = _response.json()
1257
- except JSONDecodeError:
1258
- raise ApiError(status_code=_response.status_code, body=_response.text)
1259
- raise ApiError(status_code=_response.status_code, body=_response_json)
1260
-
1261
- async def cancel(
1262
- self,
1263
- agent_id: str,
1264
- *,
1265
- request: typing.Optional[typing.Sequence[str]] = None,
1266
- request_options: typing.Optional[RequestOptions] = None,
1267
- ) -> typing.Dict[str, typing.Optional[typing.Any]]:
1268
- """
1269
- Cancel runs associated with an agent. If run_ids are passed in, cancel those in particular.
1270
-
1271
- Note to cancel active runs associated with an agent, redis is required.
1272
-
1273
- Parameters
1274
- ----------
1275
- agent_id : str
1276
-
1277
- request : typing.Optional[typing.Sequence[str]]
1278
-
1279
- request_options : typing.Optional[RequestOptions]
1280
- Request-specific configuration.
1281
-
1282
- Returns
1283
- -------
1284
- typing.Dict[str, typing.Optional[typing.Any]]
1285
- Successful Response
1286
-
1287
- Examples
1288
- --------
1289
- import asyncio
1290
-
1291
- from letta_client import AsyncLetta
1292
-
1293
- client = AsyncLetta(
1294
- project="YOUR_PROJECT",
1295
- token="YOUR_TOKEN",
1296
- )
1297
-
1298
-
1299
- async def main() -> None:
1300
- await client.agents.messages.cancel(
1301
- agent_id="agent_id",
1302
- )
1303
-
1304
-
1305
- asyncio.run(main())
1306
- """
1307
- _response = await self._client_wrapper.httpx_client.request(
1308
- f"v1/agents/{jsonable_encoder(agent_id)}/messages/cancel",
1309
- method="POST",
1310
- json=request,
1311
- request_options=request_options,
1312
- omit=OMIT,
1313
- )
1314
- try:
1315
- if 200 <= _response.status_code < 300:
1316
- return typing.cast(
1317
- typing.Dict[str, typing.Optional[typing.Any]],
1318
- construct_type(
1319
- type_=typing.Dict[str, typing.Optional[typing.Any]], # type: ignore
1320
- object_=_response.json(),
1321
- ),
1322
- )
1323
- if _response.status_code == 422:
1324
- raise UnprocessableEntityError(
1325
- typing.cast(
1326
- HttpValidationError,
1327
- construct_type(
1328
- type_=HttpValidationError, # type: ignore
1329
- object_=_response.json(),
1330
- ),
1331
- )
1332
- )
1333
- _response_json = _response.json()
1334
- except JSONDecodeError:
1335
- raise ApiError(status_code=_response.status_code, body=_response.text)
1336
- raise ApiError(status_code=_response.status_code, body=_response_json)
1337
-
1338
- async def create_async(
1339
- self,
1340
- agent_id: str,
1341
- *,
1342
- messages: typing.Sequence[MessageCreate],
1343
- max_steps: typing.Optional[int] = OMIT,
1344
- use_assistant_message: typing.Optional[bool] = OMIT,
1345
- assistant_message_tool_name: typing.Optional[str] = OMIT,
1346
- assistant_message_tool_kwarg: typing.Optional[str] = OMIT,
1347
- include_return_message_types: typing.Optional[typing.Sequence[MessageType]] = OMIT,
1348
- enable_thinking: typing.Optional[str] = OMIT,
1349
- callback_url: typing.Optional[str] = OMIT,
1350
- request_options: typing.Optional[RequestOptions] = None,
1351
- ) -> Run:
1352
- """
1353
- Asynchronously process a user message and return a run object.
1354
- The actual processing happens in the background, and the status can be checked using the run ID.
1355
-
1356
- This is "asynchronous" in the sense that it's a background job and explicitly must be fetched by the run ID.
1357
- This is more like `send_message_job`
1358
-
1359
- Parameters
1360
- ----------
1361
- agent_id : str
1362
-
1363
- messages : typing.Sequence[MessageCreate]
1364
- The messages to be sent to the agent.
1365
-
1366
- max_steps : typing.Optional[int]
1367
- Maximum number of steps the agent should take to process the request.
1368
-
1369
- use_assistant_message : typing.Optional[bool]
1370
- Whether the server should parse specific tool call arguments (default `send_message`) as `AssistantMessage` objects.
1371
-
1372
- assistant_message_tool_name : typing.Optional[str]
1373
- The name of the designated message tool.
1374
-
1375
- assistant_message_tool_kwarg : typing.Optional[str]
1376
- The name of the message argument in the designated message tool.
1377
-
1378
- include_return_message_types : typing.Optional[typing.Sequence[MessageType]]
1379
- Only return specified message types in the response. If `None` (default) returns all messages.
1380
-
1381
- enable_thinking : typing.Optional[str]
1382
- If set to True, enables reasoning before responses or tool calls from the agent.
1383
-
1384
- callback_url : typing.Optional[str]
1385
- Optional callback URL to POST to when the job completes
1386
-
1387
- request_options : typing.Optional[RequestOptions]
1388
- Request-specific configuration.
1389
-
1390
- Returns
1391
- -------
1392
- Run
1393
- Successful Response
1394
-
1395
- Examples
1396
- --------
1397
- import asyncio
1398
-
1399
- from letta_client import AsyncLetta, MessageCreate, TextContent
1400
-
1401
- client = AsyncLetta(
1402
- project="YOUR_PROJECT",
1403
- token="YOUR_TOKEN",
1404
- )
1405
-
1406
-
1407
- async def main() -> None:
1408
- await client.agents.messages.create_async(
1409
- agent_id="agent_id",
1410
- messages=[
1411
- MessageCreate(
1412
- role="user",
1413
- content=[
1414
- TextContent(
1415
- text="text",
1416
- )
1417
- ],
1418
- )
1419
- ],
1420
- )
1421
-
1422
-
1423
- asyncio.run(main())
1424
- """
1425
- _response = await self._client_wrapper.httpx_client.request(
1426
- f"v1/agents/{jsonable_encoder(agent_id)}/messages/async",
1427
- method="POST",
1428
- json={
1429
- "messages": convert_and_respect_annotation_metadata(
1430
- object_=messages, annotation=typing.Sequence[MessageCreate], direction="write"
1431
- ),
1432
- "max_steps": max_steps,
1433
- "use_assistant_message": use_assistant_message,
1434
- "assistant_message_tool_name": assistant_message_tool_name,
1435
- "assistant_message_tool_kwarg": assistant_message_tool_kwarg,
1436
- "include_return_message_types": include_return_message_types,
1437
- "enable_thinking": enable_thinking,
1438
- "callback_url": callback_url,
1439
- },
1440
- headers={
1441
- "content-type": "application/json",
1442
- },
1443
- request_options=request_options,
1444
- omit=OMIT,
1445
- )
1446
- try:
1447
- if 200 <= _response.status_code < 300:
1448
- return typing.cast(
1449
- Run,
1450
- construct_type(
1451
- type_=Run, # type: ignore
1452
- object_=_response.json(),
1453
- ),
1454
- )
1455
- if _response.status_code == 422:
1456
- raise UnprocessableEntityError(
1457
- typing.cast(
1458
- HttpValidationError,
1459
- construct_type(
1460
- type_=HttpValidationError, # type: ignore
1461
- object_=_response.json(),
1462
- ),
1463
- )
1464
- )
1465
- _response_json = _response.json()
1466
- except JSONDecodeError:
1467
- raise ApiError(status_code=_response.status_code, body=_response.text)
1468
- raise ApiError(status_code=_response.status_code, body=_response_json)
1469
-
1470
- async def reset(
1471
- self,
1472
- agent_id: str,
1473
- *,
1474
- add_default_initial_messages: typing.Optional[bool] = None,
1475
- request_options: typing.Optional[RequestOptions] = None,
1476
- ) -> AgentState:
1477
- """
1478
- Resets the messages for an agent
1479
-
1480
- Parameters
1481
- ----------
1482
- agent_id : str
1483
-
1484
- add_default_initial_messages : typing.Optional[bool]
1485
- If true, adds the default initial messages after resetting.
1486
-
1487
- request_options : typing.Optional[RequestOptions]
1488
- Request-specific configuration.
1489
-
1490
- Returns
1491
- -------
1492
- AgentState
1493
- Successful Response
1494
-
1495
- Examples
1496
- --------
1497
- import asyncio
1498
-
1499
- from letta_client import AsyncLetta
1500
-
1501
- client = AsyncLetta(
1502
- project="YOUR_PROJECT",
1503
- token="YOUR_TOKEN",
1504
- )
1505
-
1506
-
1507
- async def main() -> None:
1508
- await client.agents.messages.reset(
1509
- agent_id="agent_id",
1510
- )
1511
-
1512
-
1513
- asyncio.run(main())
1514
- """
1515
- _response = await self._client_wrapper.httpx_client.request(
1516
- f"v1/agents/{jsonable_encoder(agent_id)}/reset-messages",
1517
- method="PATCH",
1518
- params={
1519
- "add_default_initial_messages": add_default_initial_messages,
1520
- },
1521
- request_options=request_options,
1522
- )
1523
- try:
1524
- if 200 <= _response.status_code < 300:
1525
- return typing.cast(
1526
- AgentState,
1527
- construct_type(
1528
- type_=AgentState, # type: ignore
1529
- object_=_response.json(),
1530
- ),
1531
- )
1532
- if _response.status_code == 422:
1533
- raise UnprocessableEntityError(
1534
- typing.cast(
1535
- HttpValidationError,
1536
- construct_type(
1537
- type_=HttpValidationError, # type: ignore
1538
- object_=_response.json(),
1539
- ),
1540
- )
1541
- )
1542
- _response_json = _response.json()
1543
- except JSONDecodeError:
1544
- raise ApiError(status_code=_response.status_code, body=_response.text)
1545
- raise ApiError(status_code=_response.status_code, body=_response_json)
1546
-
1547
- async def preview_raw_payload(
1548
- self,
1549
- agent_id: str,
1550
- *,
1551
- request: MessagesPreviewRawPayloadRequest,
1552
- request_options: typing.Optional[RequestOptions] = None,
1553
- ) -> typing.Dict[str, typing.Optional[typing.Any]]:
1554
- """
1555
- Inspect the raw LLM request payload without sending it.
1556
-
1557
- This endpoint processes the message through the agent loop up until
1558
- the LLM request, then returns the raw request payload that would
1559
- be sent to the LLM provider. Useful for debugging and inspection.
1560
-
1561
- Parameters
1562
- ----------
1563
- agent_id : str
1564
-
1565
- request : MessagesPreviewRawPayloadRequest
1566
-
1567
- request_options : typing.Optional[RequestOptions]
1568
- Request-specific configuration.
1569
-
1570
- Returns
1571
- -------
1572
- typing.Dict[str, typing.Optional[typing.Any]]
1573
- Successful Response
1574
-
1575
- Examples
1576
- --------
1577
- import asyncio
1578
-
1579
- from letta_client import AsyncLetta, LettaRequest, MessageCreate, TextContent
1580
-
1581
- client = AsyncLetta(
1582
- project="YOUR_PROJECT",
1583
- token="YOUR_TOKEN",
1584
- )
1585
-
1586
-
1587
- async def main() -> None:
1588
- await client.agents.messages.preview_raw_payload(
1589
- agent_id="agent_id",
1590
- request=LettaRequest(
1591
- messages=[
1592
- MessageCreate(
1593
- role="user",
1594
- content=[
1595
- TextContent(
1596
- text="text",
1597
- )
1598
- ],
1599
- )
1600
- ],
1601
- ),
1602
- )
1603
-
1604
-
1605
- asyncio.run(main())
1606
- """
1607
- _response = await self._client_wrapper.httpx_client.request(
1608
- f"v1/agents/{jsonable_encoder(agent_id)}/messages/preview-raw-payload",
1609
- method="POST",
1610
- json=convert_and_respect_annotation_metadata(
1611
- object_=request, annotation=MessagesPreviewRawPayloadRequest, direction="write"
1612
- ),
1613
- request_options=request_options,
1614
- omit=OMIT,
1615
- )
1616
- try:
1617
- if 200 <= _response.status_code < 300:
1618
- return typing.cast(
1619
- typing.Dict[str, typing.Optional[typing.Any]],
1620
- construct_type(
1621
- type_=typing.Dict[str, typing.Optional[typing.Any]], # type: ignore
1622
- object_=_response.json(),
1623
- ),
1624
- )
1625
- if _response.status_code == 422:
1626
- raise UnprocessableEntityError(
1627
- typing.cast(
1628
- HttpValidationError,
1629
- construct_type(
1630
- type_=HttpValidationError, # type: ignore
1631
- object_=_response.json(),
1632
- ),
1633
- )
1634
- )
1635
- _response_json = _response.json()
1636
- except JSONDecodeError:
1637
- raise ApiError(status_code=_response.status_code, body=_response.text)
1638
- raise ApiError(status_code=_response.status_code, body=_response_json)