letta-client 0.1.232__py3-none-any.whl → 0.1.234__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of letta-client might be problematic. Click here for more details.

Files changed (440) hide show
  1. letta_client/__init__.py +4 -0
  2. letta_client/agents/__init__.py +2 -0
  3. letta_client/agents/blocks/__init__.py +2 -0
  4. letta_client/agents/blocks/client.py +72 -313
  5. letta_client/agents/blocks/raw_client.py +654 -0
  6. letta_client/agents/client.py +329 -869
  7. letta_client/agents/context/__init__.py +2 -0
  8. letta_client/agents/context/client.py +31 -66
  9. letta_client/agents/context/raw_client.py +122 -0
  10. letta_client/agents/core_memory/__init__.py +2 -0
  11. letta_client/agents/core_memory/client.py +31 -66
  12. letta_client/agents/core_memory/raw_client.py +124 -0
  13. letta_client/agents/files/__init__.py +2 -0
  14. letta_client/agents/files/client.py +39 -178
  15. letta_client/agents/files/raw_client.py +349 -0
  16. letta_client/agents/folders/__init__.py +2 -0
  17. letta_client/agents/folders/client.py +39 -178
  18. letta_client/agents/folders/raw_client.py +327 -0
  19. letta_client/agents/groups/__init__.py +2 -0
  20. letta_client/agents/groups/client.py +31 -72
  21. letta_client/agents/groups/raw_client.py +142 -0
  22. letta_client/agents/memory_variables/__init__.py +2 -0
  23. letta_client/agents/memory_variables/client.py +31 -65
  24. letta_client/agents/memory_variables/raw_client.py +125 -0
  25. letta_client/agents/memory_variables/types/__init__.py +2 -0
  26. letta_client/agents/memory_variables/types/memory_variables_list_response.py +3 -2
  27. letta_client/agents/messages/__init__.py +2 -0
  28. letta_client/agents/messages/client.py +150 -589
  29. letta_client/agents/messages/raw_client.py +1384 -0
  30. letta_client/agents/messages/types/__init__.py +2 -0
  31. letta_client/agents/messages/types/letta_streaming_response.py +6 -5
  32. letta_client/agents/messages/types/messages_modify_request.py +3 -2
  33. letta_client/agents/messages/types/messages_modify_response.py +5 -4
  34. letta_client/agents/messages/types/messages_preview_raw_payload_request.py +1 -0
  35. letta_client/agents/passages/__init__.py +2 -0
  36. letta_client/agents/passages/client.py +89 -301
  37. letta_client/agents/passages/raw_client.py +678 -0
  38. letta_client/agents/raw_client.py +2068 -0
  39. letta_client/agents/sources/__init__.py +2 -0
  40. letta_client/agents/sources/client.py +39 -178
  41. letta_client/agents/sources/raw_client.py +327 -0
  42. letta_client/agents/templates/__init__.py +2 -0
  43. letta_client/agents/templates/client.py +57 -276
  44. letta_client/agents/templates/raw_client.py +505 -0
  45. letta_client/agents/templates/types/__init__.py +2 -0
  46. letta_client/agents/templates/types/templates_create_response.py +5 -4
  47. letta_client/agents/templates/types/templates_migrate_response.py +3 -2
  48. letta_client/agents/tools/__init__.py +2 -0
  49. letta_client/agents/tools/client.py +40 -179
  50. letta_client/agents/tools/raw_client.py +327 -0
  51. letta_client/agents/types/__init__.py +2 -0
  52. letta_client/agents/types/agents_search_request_search_item.py +4 -3
  53. letta_client/agents/types/agents_search_request_search_item_field.py +4 -3
  54. letta_client/agents/types/agents_search_request_search_item_one.py +4 -3
  55. letta_client/agents/types/agents_search_request_search_item_three.py +3 -2
  56. letta_client/agents/types/agents_search_request_search_item_two.py +3 -2
  57. letta_client/agents/types/agents_search_request_search_item_zero.py +3 -2
  58. letta_client/agents/types/agents_search_response.py +5 -4
  59. letta_client/agents/types/create_agent_request_response_format.py +1 -0
  60. letta_client/agents/types/create_agent_request_tool_rules_item.py +4 -3
  61. letta_client/agents/types/update_agent_response_format.py +1 -0
  62. letta_client/agents/types/update_agent_tool_rules_item.py +4 -3
  63. letta_client/base_client.py +41 -49
  64. letta_client/batches/__init__.py +2 -0
  65. letta_client/batches/client.py +45 -253
  66. letta_client/batches/raw_client.py +457 -0
  67. letta_client/blocks/__init__.py +2 -0
  68. letta_client/blocks/agents/__init__.py +2 -0
  69. letta_client/blocks/agents/client.py +33 -70
  70. letta_client/blocks/agents/raw_client.py +144 -0
  71. letta_client/blocks/client.py +126 -424
  72. letta_client/blocks/raw_client.py +973 -0
  73. letta_client/client_side_access_tokens/__init__.py +2 -0
  74. letta_client/client_side_access_tokens/client.py +45 -216
  75. letta_client/client_side_access_tokens/raw_client.py +435 -0
  76. letta_client/client_side_access_tokens/types/__init__.py +2 -0
  77. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_request_policy_item.py +4 -3
  78. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response.py +6 -5
  79. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy.py +4 -3
  80. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy_data_item.py +4 -3
  81. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response.py +6 -5
  82. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item.py +6 -5
  83. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy.py +4 -3
  84. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy_data_item.py +4 -3
  85. letta_client/core/__init__.py +5 -0
  86. letta_client/core/api_error.py +13 -5
  87. letta_client/core/client_wrapper.py +14 -5
  88. letta_client/core/force_multipart.py +16 -0
  89. letta_client/core/http_client.py +70 -26
  90. letta_client/core/http_response.py +55 -0
  91. letta_client/core/jsonable_encoder.py +0 -1
  92. letta_client/core/pydantic_utilities.py +70 -111
  93. letta_client/core/serialization.py +7 -3
  94. letta_client/core/unchecked_base_model.py +40 -4
  95. letta_client/embedding_models/__init__.py +2 -0
  96. letta_client/embedding_models/client.py +31 -65
  97. letta_client/embedding_models/raw_client.py +117 -0
  98. letta_client/errors/__init__.py +2 -0
  99. letta_client/errors/bad_request_error.py +4 -3
  100. letta_client/errors/conflict_error.py +4 -2
  101. letta_client/errors/internal_server_error.py +4 -3
  102. letta_client/errors/not_found_error.py +4 -3
  103. letta_client/errors/payment_required_error.py +4 -2
  104. letta_client/errors/unprocessable_entity_error.py +4 -2
  105. letta_client/folders/__init__.py +2 -0
  106. letta_client/folders/client.py +100 -564
  107. letta_client/folders/files/__init__.py +2 -0
  108. letta_client/folders/files/client.py +44 -189
  109. letta_client/folders/files/raw_client.py +391 -0
  110. letta_client/folders/passages/__init__.py +2 -0
  111. letta_client/folders/passages/client.py +33 -74
  112. letta_client/folders/passages/raw_client.py +162 -0
  113. letta_client/folders/raw_client.py +1084 -0
  114. letta_client/groups/__init__.py +2 -0
  115. letta_client/groups/client.py +87 -406
  116. letta_client/groups/messages/__init__.py +2 -0
  117. letta_client/groups/messages/client.py +110 -371
  118. letta_client/groups/messages/raw_client.py +881 -0
  119. letta_client/groups/messages/types/__init__.py +2 -0
  120. letta_client/groups/messages/types/letta_streaming_response.py +5 -4
  121. letta_client/groups/messages/types/messages_modify_request.py +3 -2
  122. letta_client/groups/messages/types/messages_modify_response.py +5 -4
  123. letta_client/groups/raw_client.py +807 -0
  124. letta_client/groups/types/__init__.py +2 -0
  125. letta_client/groups/types/group_create_manager_config.py +1 -0
  126. letta_client/groups/types/group_update_manager_config.py +1 -0
  127. letta_client/health/__init__.py +2 -0
  128. letta_client/health/client.py +31 -43
  129. letta_client/health/raw_client.py +85 -0
  130. letta_client/identities/__init__.py +2 -0
  131. letta_client/identities/client.py +115 -498
  132. letta_client/identities/properties/__init__.py +2 -0
  133. letta_client/identities/properties/client.py +32 -76
  134. letta_client/identities/properties/raw_client.py +152 -0
  135. letta_client/identities/raw_client.py +1010 -0
  136. letta_client/jobs/__init__.py +2 -0
  137. letta_client/jobs/client.py +67 -310
  138. letta_client/jobs/raw_client.py +624 -0
  139. letta_client/messages/__init__.py +2 -0
  140. letta_client/messages/client.py +41 -74
  141. letta_client/messages/raw_client.py +186 -0
  142. letta_client/models/__init__.py +2 -0
  143. letta_client/models/client.py +39 -73
  144. letta_client/models/raw_client.py +151 -0
  145. letta_client/projects/__init__.py +2 -0
  146. letta_client/projects/client.py +31 -53
  147. letta_client/projects/raw_client.py +125 -0
  148. letta_client/projects/types/__init__.py +2 -0
  149. letta_client/projects/types/projects_list_response.py +5 -4
  150. letta_client/projects/types/projects_list_response_projects_item.py +3 -2
  151. letta_client/providers/__init__.py +2 -0
  152. letta_client/providers/client.py +62 -335
  153. letta_client/providers/raw_client.py +664 -0
  154. letta_client/runs/__init__.py +2 -0
  155. letta_client/runs/client.py +56 -258
  156. letta_client/runs/messages/__init__.py +2 -0
  157. letta_client/runs/messages/client.py +34 -79
  158. letta_client/runs/messages/raw_client.py +209 -0
  159. letta_client/runs/raw_client.py +440 -0
  160. letta_client/runs/steps/__init__.py +2 -0
  161. letta_client/runs/steps/client.py +33 -76
  162. letta_client/runs/steps/raw_client.py +192 -0
  163. letta_client/runs/usage/__init__.py +2 -0
  164. letta_client/runs/usage/client.py +31 -66
  165. letta_client/runs/usage/raw_client.py +122 -0
  166. letta_client/sources/__init__.py +2 -0
  167. letta_client/sources/client.py +107 -625
  168. letta_client/sources/files/__init__.py +2 -0
  169. letta_client/sources/files/client.py +44 -189
  170. letta_client/sources/files/raw_client.py +391 -0
  171. letta_client/sources/passages/__init__.py +2 -0
  172. letta_client/sources/passages/client.py +33 -74
  173. letta_client/sources/passages/raw_client.py +162 -0
  174. letta_client/sources/raw_client.py +1209 -0
  175. letta_client/steps/__init__.py +2 -0
  176. letta_client/steps/client.py +65 -153
  177. letta_client/steps/feedback/__init__.py +2 -0
  178. letta_client/steps/feedback/client.py +32 -73
  179. letta_client/steps/feedback/raw_client.py +141 -0
  180. letta_client/steps/raw_client.py +355 -0
  181. letta_client/steps/types/__init__.py +2 -0
  182. letta_client/tags/__init__.py +2 -0
  183. letta_client/tags/client.py +33 -73
  184. letta_client/tags/raw_client.py +148 -0
  185. letta_client/telemetry/__init__.py +2 -0
  186. letta_client/telemetry/client.py +31 -66
  187. letta_client/telemetry/raw_client.py +118 -0
  188. letta_client/templates/__init__.py +2 -0
  189. letta_client/templates/agents/__init__.py +2 -0
  190. letta_client/templates/agents/client.py +48 -96
  191. letta_client/templates/agents/raw_client.py +227 -0
  192. letta_client/templates/agents/types/__init__.py +2 -0
  193. letta_client/templates/agents/types/agents_create_request_initial_message_sequence_item.py +4 -3
  194. letta_client/templates/agents/types/agents_create_response.py +4 -3
  195. letta_client/templates/client.py +36 -57
  196. letta_client/templates/raw_client.py +133 -0
  197. letta_client/templates/types/__init__.py +2 -0
  198. letta_client/templates/types/templates_list_response.py +5 -4
  199. letta_client/templates/types/templates_list_response_templates_item.py +3 -2
  200. letta_client/tools/__init__.py +2 -0
  201. letta_client/tools/client.py +195 -1322
  202. letta_client/tools/raw_client.py +2565 -0
  203. letta_client/tools/types/__init__.py +2 -0
  204. letta_client/tools/types/add_mcp_server_request.py +2 -1
  205. letta_client/tools/types/add_mcp_server_response_item.py +2 -1
  206. letta_client/tools/types/connect_mcp_server_request.py +2 -1
  207. letta_client/tools/types/delete_mcp_server_response_item.py +2 -1
  208. letta_client/tools/types/list_mcp_servers_response_value.py +1 -0
  209. letta_client/tools/types/streaming_response.py +5 -4
  210. letta_client/tools/types/test_mcp_server_request.py +2 -1
  211. letta_client/tools/types/update_mcp_server_request.py +2 -1
  212. letta_client/tools/types/update_mcp_server_response.py +2 -1
  213. letta_client/types/__init__.py +4 -0
  214. letta_client/types/action_model.py +6 -5
  215. letta_client/types/action_parameters_model.py +3 -2
  216. letta_client/types/action_response_model.py +3 -2
  217. letta_client/types/agent_environment_variable.py +3 -2
  218. letta_client/types/agent_schema.py +7 -6
  219. letta_client/types/agent_schema_tool_rules_item.py +2 -1
  220. letta_client/types/agent_state.py +9 -8
  221. letta_client/types/agent_state_response_format.py +1 -0
  222. letta_client/types/agent_state_tool_rules_item.py +4 -3
  223. letta_client/types/app_auth_scheme.py +4 -3
  224. letta_client/types/app_model.py +5 -4
  225. letta_client/types/assistant_message.py +3 -2
  226. letta_client/types/assistant_message_content.py +1 -0
  227. letta_client/types/audio.py +3 -2
  228. letta_client/types/auth_request.py +2 -1
  229. letta_client/types/auth_response.py +5 -4
  230. letta_client/types/auth_scheme_field.py +3 -2
  231. letta_client/types/bad_request_error_body.py +3 -2
  232. letta_client/types/base_64_image.py +2 -1
  233. letta_client/types/base_tool_rule_schema.py +3 -2
  234. letta_client/types/batch_job.py +4 -3
  235. letta_client/types/block.py +3 -2
  236. letta_client/types/block_update.py +2 -1
  237. letta_client/types/chat_completion_assistant_message_param.py +5 -4
  238. letta_client/types/chat_completion_assistant_message_param_content.py +1 -0
  239. letta_client/types/chat_completion_assistant_message_param_content_item.py +2 -1
  240. letta_client/types/chat_completion_audio_param.py +4 -3
  241. letta_client/types/chat_completion_content_part_image_param.py +4 -3
  242. letta_client/types/chat_completion_content_part_input_audio_param.py +4 -3
  243. letta_client/types/chat_completion_content_part_refusal_param.py +3 -2
  244. letta_client/types/chat_completion_content_part_text_param.py +3 -2
  245. letta_client/types/chat_completion_developer_message_param.py +4 -3
  246. letta_client/types/chat_completion_developer_message_param_content.py +1 -0
  247. letta_client/types/chat_completion_function_call_option_param.py +3 -2
  248. letta_client/types/chat_completion_function_message_param.py +3 -2
  249. letta_client/types/chat_completion_message_tool_call.py +4 -3
  250. letta_client/types/chat_completion_message_tool_call_param.py +4 -3
  251. letta_client/types/chat_completion_named_tool_choice_param.py +4 -3
  252. letta_client/types/chat_completion_prediction_content_param.py +4 -3
  253. letta_client/types/chat_completion_prediction_content_param_content.py +1 -0
  254. letta_client/types/chat_completion_stream_options_param.py +3 -2
  255. letta_client/types/chat_completion_system_message_param.py +4 -3
  256. letta_client/types/chat_completion_system_message_param_content.py +1 -0
  257. letta_client/types/chat_completion_tool_message_param.py +4 -3
  258. letta_client/types/chat_completion_tool_message_param_content.py +1 -0
  259. letta_client/types/chat_completion_tool_param.py +4 -3
  260. letta_client/types/chat_completion_user_message_param.py +4 -3
  261. letta_client/types/chat_completion_user_message_param_content.py +1 -0
  262. letta_client/types/chat_completion_user_message_param_content_item.py +2 -1
  263. letta_client/types/child_tool_rule.py +3 -2
  264. letta_client/types/child_tool_rule_schema.py +3 -2
  265. letta_client/types/code_input.py +3 -2
  266. letta_client/types/completion_create_params_non_streaming.py +10 -9
  267. letta_client/types/completion_create_params_non_streaming_function_call.py +1 -0
  268. letta_client/types/completion_create_params_non_streaming_messages_item.py +4 -3
  269. letta_client/types/completion_create_params_non_streaming_response_format.py +3 -2
  270. letta_client/types/completion_create_params_non_streaming_tool_choice.py +1 -0
  271. letta_client/types/completion_create_params_streaming.py +10 -9
  272. letta_client/types/completion_create_params_streaming_function_call.py +1 -0
  273. letta_client/types/completion_create_params_streaming_messages_item.py +4 -3
  274. letta_client/types/completion_create_params_streaming_response_format.py +3 -2
  275. letta_client/types/completion_create_params_streaming_tool_choice.py +1 -0
  276. letta_client/types/conditional_tool_rule.py +3 -2
  277. letta_client/types/conditional_tool_rule_schema.py +3 -2
  278. letta_client/types/conflict_error_body.py +3 -2
  279. letta_client/types/context_window_overview.py +4 -3
  280. letta_client/types/continue_tool_rule.py +3 -2
  281. letta_client/types/core_memory_block_schema.py +4 -3
  282. letta_client/types/create_block.py +3 -2
  283. letta_client/types/dynamic_manager.py +2 -1
  284. letta_client/types/dynamic_manager_update.py +2 -1
  285. letta_client/types/e_2_b_sandbox_config.py +2 -1
  286. letta_client/types/embedding_config.py +4 -3
  287. letta_client/types/file.py +4 -3
  288. letta_client/types/file_block.py +4 -3
  289. letta_client/types/file_file.py +3 -2
  290. letta_client/types/file_metadata.py +5 -4
  291. letta_client/types/file_stats.py +3 -2
  292. letta_client/types/folder.py +5 -4
  293. letta_client/types/function_call.py +3 -2
  294. letta_client/types/function_definition_input.py +3 -2
  295. letta_client/types/function_definition_output.py +3 -2
  296. letta_client/types/function_output.py +3 -2
  297. letta_client/types/function_tool.py +4 -3
  298. letta_client/types/generate_tool_input.py +3 -2
  299. letta_client/types/generate_tool_output.py +4 -3
  300. letta_client/types/group.py +4 -3
  301. letta_client/types/health.py +3 -2
  302. letta_client/types/hidden_reasoning_message.py +4 -3
  303. letta_client/types/http_validation_error.py +4 -3
  304. letta_client/types/identity.py +4 -3
  305. letta_client/types/identity_property.py +5 -4
  306. letta_client/types/image_content.py +3 -2
  307. letta_client/types/image_content_source.py +1 -0
  308. letta_client/types/image_url.py +4 -3
  309. letta_client/types/init_tool_rule.py +3 -2
  310. letta_client/types/input_audio.py +4 -3
  311. letta_client/types/internal_server_error_body.py +3 -2
  312. letta_client/types/job.py +4 -3
  313. letta_client/types/json_object_response_format.py +3 -2
  314. letta_client/types/json_schema.py +4 -3
  315. letta_client/types/json_schema_response_format.py +2 -1
  316. letta_client/types/letta_batch_messages.py +4 -3
  317. letta_client/types/letta_batch_request.py +4 -3
  318. letta_client/types/letta_image.py +2 -1
  319. letta_client/types/letta_message_content_union.py +4 -3
  320. letta_client/types/letta_message_union.py +5 -4
  321. letta_client/types/letta_ping.py +2 -1
  322. letta_client/types/letta_request.py +4 -3
  323. letta_client/types/letta_request_config.py +3 -2
  324. letta_client/types/letta_response.py +4 -3
  325. letta_client/types/letta_stop_reason.py +3 -2
  326. letta_client/types/letta_streaming_request.py +9 -3
  327. letta_client/types/letta_usage_statistics.py +3 -2
  328. letta_client/types/letta_user_message_content_union.py +2 -1
  329. letta_client/types/llm_config.py +6 -5
  330. letta_client/types/local_sandbox_config.py +3 -2
  331. letta_client/types/max_count_per_step_tool_rule.py +3 -2
  332. letta_client/types/max_count_per_step_tool_rule_schema.py +3 -2
  333. letta_client/types/mcp_tool.py +4 -3
  334. letta_client/types/memory.py +4 -3
  335. letta_client/types/message.py +6 -5
  336. letta_client/types/message_content_item.py +1 -0
  337. letta_client/types/message_create.py +5 -4
  338. letta_client/types/message_create_content.py +1 -0
  339. letta_client/types/message_schema.py +4 -3
  340. letta_client/types/modal_sandbox_config.py +28 -0
  341. letta_client/types/not_found_error_body.py +3 -2
  342. letta_client/types/omitted_reasoning_content.py +3 -2
  343. letta_client/types/openai_types_chat_chat_completion_message_tool_call_param_function.py +3 -2
  344. letta_client/types/openai_types_chat_chat_completion_named_tool_choice_param_function.py +3 -2
  345. letta_client/types/openai_types_chat_completion_create_params_function.py +3 -2
  346. letta_client/types/organization.py +3 -2
  347. letta_client/types/organization_create.py +2 -1
  348. letta_client/types/organization_sources_stats.py +3 -2
  349. letta_client/types/organization_update.py +2 -1
  350. letta_client/types/parameter_properties.py +3 -2
  351. letta_client/types/parameters_schema.py +4 -3
  352. letta_client/types/parent_tool_rule.py +3 -2
  353. letta_client/types/passage.py +4 -3
  354. letta_client/types/payment_required_error_body.py +3 -2
  355. letta_client/types/pip_requirement.py +3 -2
  356. letta_client/types/provider.py +5 -4
  357. letta_client/types/provider_check.py +4 -3
  358. letta_client/types/provider_trace.py +3 -2
  359. letta_client/types/reasoning_content.py +2 -1
  360. letta_client/types/reasoning_message.py +4 -3
  361. letta_client/types/redacted_reasoning_content.py +2 -1
  362. letta_client/types/required_before_exit_tool_rule.py +3 -2
  363. letta_client/types/response_format_json_object.py +3 -2
  364. letta_client/types/response_format_json_schema.py +4 -3
  365. letta_client/types/response_format_text.py +3 -2
  366. letta_client/types/round_robin_manager.py +2 -1
  367. letta_client/types/round_robin_manager_update.py +2 -1
  368. letta_client/types/run.py +4 -3
  369. letta_client/types/sandbox_config.py +4 -3
  370. letta_client/types/sandbox_config_create.py +4 -3
  371. letta_client/types/sandbox_config_create_config.py +4 -2
  372. letta_client/types/sandbox_config_update.py +3 -2
  373. letta_client/types/sandbox_config_update_config.py +4 -2
  374. letta_client/types/sandbox_environment_variable.py +3 -2
  375. letta_client/types/sandbox_environment_variable_create.py +3 -2
  376. letta_client/types/sandbox_environment_variable_update.py +2 -1
  377. letta_client/types/sandbox_type.py +1 -1
  378. letta_client/types/sleeptime_manager.py +2 -1
  379. letta_client/types/sleeptime_manager_update.py +2 -1
  380. letta_client/types/source.py +5 -4
  381. letta_client/types/source_create.py +4 -3
  382. letta_client/types/source_stats.py +4 -3
  383. letta_client/types/source_update.py +3 -2
  384. letta_client/types/sse_server_config.py +4 -3
  385. letta_client/types/stdio_server_config.py +4 -3
  386. letta_client/types/step.py +5 -4
  387. letta_client/types/streamable_http_server_config.py +4 -3
  388. letta_client/types/supervisor_manager.py +2 -1
  389. letta_client/types/supervisor_manager_update.py +2 -1
  390. letta_client/types/system_message.py +2 -1
  391. letta_client/types/tag_schema.py +3 -2
  392. letta_client/types/terminal_tool_rule.py +3 -2
  393. letta_client/types/text_content.py +2 -1
  394. letta_client/types/text_response_format.py +3 -2
  395. letta_client/types/tool.py +5 -4
  396. letta_client/types/tool_annotations.py +4 -3
  397. letta_client/types/tool_call.py +3 -2
  398. letta_client/types/tool_call_content.py +2 -1
  399. letta_client/types/tool_call_delta.py +3 -2
  400. letta_client/types/tool_call_message.py +4 -3
  401. letta_client/types/tool_call_message_tool_call.py +1 -0
  402. letta_client/types/tool_create.py +3 -2
  403. letta_client/types/tool_env_var_schema.py +3 -2
  404. letta_client/types/tool_json_schema.py +4 -3
  405. letta_client/types/tool_return.py +4 -3
  406. letta_client/types/tool_return_content.py +2 -1
  407. letta_client/types/tool_return_message.py +4 -3
  408. letta_client/types/tool_schema.py +5 -4
  409. letta_client/types/tool_type.py +0 -1
  410. letta_client/types/update_assistant_message.py +3 -2
  411. letta_client/types/update_assistant_message_content.py +1 -0
  412. letta_client/types/update_reasoning_message.py +3 -2
  413. letta_client/types/update_ssemcp_server.py +2 -1
  414. letta_client/types/update_stdio_mcp_server.py +3 -2
  415. letta_client/types/update_streamable_httpmcp_server.py +2 -1
  416. letta_client/types/update_system_message.py +2 -1
  417. letta_client/types/update_user_message.py +3 -2
  418. letta_client/types/update_user_message_content.py +1 -0
  419. letta_client/types/url_image.py +2 -1
  420. letta_client/types/usage_statistics.py +5 -4
  421. letta_client/types/usage_statistics_completion_token_details.py +3 -2
  422. letta_client/types/usage_statistics_prompt_token_details.py +3 -2
  423. letta_client/types/user.py +3 -2
  424. letta_client/types/user_create.py +3 -2
  425. letta_client/types/user_message.py +3 -2
  426. letta_client/types/user_message_content.py +1 -0
  427. letta_client/types/user_update.py +3 -2
  428. letta_client/types/validation_error.py +4 -3
  429. letta_client/types/voice_sleeptime_manager.py +2 -1
  430. letta_client/types/voice_sleeptime_manager_update.py +2 -1
  431. letta_client/types/web_search_options.py +4 -3
  432. letta_client/types/web_search_options_user_location.py +4 -3
  433. letta_client/types/web_search_options_user_location_approximate.py +3 -2
  434. letta_client/voice/__init__.py +2 -0
  435. letta_client/voice/client.py +33 -74
  436. letta_client/voice/raw_client.py +154 -0
  437. {letta_client-0.1.232.dist-info → letta_client-0.1.234.dist-info}/METADATA +24 -3
  438. letta_client-0.1.234.dist-info/RECORD +503 -0
  439. letta_client-0.1.232.dist-info/RECORD +0 -454
  440. {letta_client-0.1.232.dist-info → letta_client-0.1.234.dist-info}/WHEEL +0 -0
@@ -0,0 +1,654 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from json.decoder import JSONDecodeError
5
+
6
+ from ...core.api_error import ApiError
7
+ from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
+ from ...core.http_response import AsyncHttpResponse, HttpResponse
9
+ from ...core.jsonable_encoder import jsonable_encoder
10
+ from ...core.request_options import RequestOptions
11
+ from ...core.unchecked_base_model import construct_type
12
+ from ...errors.unprocessable_entity_error import UnprocessableEntityError
13
+ from ...types.agent_state import AgentState
14
+ from ...types.block import Block
15
+ from ...types.http_validation_error import HttpValidationError
16
+
17
+ # this is used as the default value for optional parameters
18
+ OMIT = typing.cast(typing.Any, ...)
19
+
20
+
21
+ class RawBlocksClient:
22
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
23
+ self._client_wrapper = client_wrapper
24
+
25
+ def retrieve(
26
+ self, agent_id: str, block_label: str, *, request_options: typing.Optional[RequestOptions] = None
27
+ ) -> HttpResponse[Block]:
28
+ """
29
+ Retrieve a core memory block from an agent.
30
+
31
+ Parameters
32
+ ----------
33
+ agent_id : str
34
+
35
+ block_label : str
36
+
37
+ request_options : typing.Optional[RequestOptions]
38
+ Request-specific configuration.
39
+
40
+ Returns
41
+ -------
42
+ HttpResponse[Block]
43
+ Successful Response
44
+ """
45
+ _response = self._client_wrapper.httpx_client.request(
46
+ f"v1/agents/{jsonable_encoder(agent_id)}/core-memory/blocks/{jsonable_encoder(block_label)}",
47
+ method="GET",
48
+ request_options=request_options,
49
+ )
50
+ try:
51
+ if 200 <= _response.status_code < 300:
52
+ _data = typing.cast(
53
+ Block,
54
+ construct_type(
55
+ type_=Block, # type: ignore
56
+ object_=_response.json(),
57
+ ),
58
+ )
59
+ return HttpResponse(response=_response, data=_data)
60
+ if _response.status_code == 422:
61
+ raise UnprocessableEntityError(
62
+ headers=dict(_response.headers),
63
+ body=typing.cast(
64
+ HttpValidationError,
65
+ construct_type(
66
+ type_=HttpValidationError, # type: ignore
67
+ object_=_response.json(),
68
+ ),
69
+ ),
70
+ )
71
+ _response_json = _response.json()
72
+ except JSONDecodeError:
73
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
74
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
75
+
76
+ def modify(
77
+ self,
78
+ agent_id: str,
79
+ block_label: str,
80
+ *,
81
+ value: typing.Optional[str] = OMIT,
82
+ limit: typing.Optional[int] = OMIT,
83
+ project_id: typing.Optional[str] = OMIT,
84
+ name: typing.Optional[str] = OMIT,
85
+ is_template: typing.Optional[bool] = OMIT,
86
+ preserve_on_migration: typing.Optional[bool] = OMIT,
87
+ label: typing.Optional[str] = OMIT,
88
+ read_only: typing.Optional[bool] = OMIT,
89
+ description: typing.Optional[str] = OMIT,
90
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
91
+ request_options: typing.Optional[RequestOptions] = None,
92
+ ) -> HttpResponse[Block]:
93
+ """
94
+ Updates a core memory block of an agent.
95
+
96
+ Parameters
97
+ ----------
98
+ agent_id : str
99
+
100
+ block_label : str
101
+
102
+ value : typing.Optional[str]
103
+ Value of the block.
104
+
105
+ limit : typing.Optional[int]
106
+ Character limit of the block.
107
+
108
+ project_id : typing.Optional[str]
109
+ The associated project id.
110
+
111
+ name : typing.Optional[str]
112
+ Name of the block if it is a template.
113
+
114
+ is_template : typing.Optional[bool]
115
+ Whether the block is a template (e.g. saved human/persona options).
116
+
117
+ preserve_on_migration : typing.Optional[bool]
118
+ Preserve the block on template migration.
119
+
120
+ label : typing.Optional[str]
121
+ Label of the block (e.g. 'human', 'persona') in the context window.
122
+
123
+ read_only : typing.Optional[bool]
124
+ Whether the agent has read-only access to the block.
125
+
126
+ description : typing.Optional[str]
127
+ Description of the block.
128
+
129
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
130
+ Metadata of the block.
131
+
132
+ request_options : typing.Optional[RequestOptions]
133
+ Request-specific configuration.
134
+
135
+ Returns
136
+ -------
137
+ HttpResponse[Block]
138
+ Successful Response
139
+ """
140
+ _response = self._client_wrapper.httpx_client.request(
141
+ f"v1/agents/{jsonable_encoder(agent_id)}/core-memory/blocks/{jsonable_encoder(block_label)}",
142
+ method="PATCH",
143
+ json={
144
+ "value": value,
145
+ "limit": limit,
146
+ "project_id": project_id,
147
+ "name": name,
148
+ "is_template": is_template,
149
+ "preserve_on_migration": preserve_on_migration,
150
+ "label": label,
151
+ "read_only": read_only,
152
+ "description": description,
153
+ "metadata": metadata,
154
+ },
155
+ headers={
156
+ "content-type": "application/json",
157
+ },
158
+ request_options=request_options,
159
+ omit=OMIT,
160
+ )
161
+ try:
162
+ if 200 <= _response.status_code < 300:
163
+ _data = typing.cast(
164
+ Block,
165
+ construct_type(
166
+ type_=Block, # type: ignore
167
+ object_=_response.json(),
168
+ ),
169
+ )
170
+ return HttpResponse(response=_response, data=_data)
171
+ if _response.status_code == 422:
172
+ raise UnprocessableEntityError(
173
+ headers=dict(_response.headers),
174
+ body=typing.cast(
175
+ HttpValidationError,
176
+ construct_type(
177
+ type_=HttpValidationError, # type: ignore
178
+ object_=_response.json(),
179
+ ),
180
+ ),
181
+ )
182
+ _response_json = _response.json()
183
+ except JSONDecodeError:
184
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
185
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
186
+
187
+ def list(
188
+ self, agent_id: str, *, request_options: typing.Optional[RequestOptions] = None
189
+ ) -> HttpResponse[typing.List[Block]]:
190
+ """
191
+ Retrieve the core memory blocks of a specific agent.
192
+
193
+ Parameters
194
+ ----------
195
+ agent_id : str
196
+
197
+ request_options : typing.Optional[RequestOptions]
198
+ Request-specific configuration.
199
+
200
+ Returns
201
+ -------
202
+ HttpResponse[typing.List[Block]]
203
+ Successful Response
204
+ """
205
+ _response = self._client_wrapper.httpx_client.request(
206
+ f"v1/agents/{jsonable_encoder(agent_id)}/core-memory/blocks",
207
+ method="GET",
208
+ request_options=request_options,
209
+ )
210
+ try:
211
+ if 200 <= _response.status_code < 300:
212
+ _data = typing.cast(
213
+ typing.List[Block],
214
+ construct_type(
215
+ type_=typing.List[Block], # type: ignore
216
+ object_=_response.json(),
217
+ ),
218
+ )
219
+ return HttpResponse(response=_response, data=_data)
220
+ if _response.status_code == 422:
221
+ raise UnprocessableEntityError(
222
+ headers=dict(_response.headers),
223
+ body=typing.cast(
224
+ HttpValidationError,
225
+ construct_type(
226
+ type_=HttpValidationError, # type: ignore
227
+ object_=_response.json(),
228
+ ),
229
+ ),
230
+ )
231
+ _response_json = _response.json()
232
+ except JSONDecodeError:
233
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
234
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
235
+
236
+ def attach(
237
+ self, agent_id: str, block_id: str, *, request_options: typing.Optional[RequestOptions] = None
238
+ ) -> HttpResponse[AgentState]:
239
+ """
240
+ Attach a core memory block to an agent.
241
+
242
+ Parameters
243
+ ----------
244
+ agent_id : str
245
+
246
+ block_id : str
247
+
248
+ request_options : typing.Optional[RequestOptions]
249
+ Request-specific configuration.
250
+
251
+ Returns
252
+ -------
253
+ HttpResponse[AgentState]
254
+ Successful Response
255
+ """
256
+ _response = self._client_wrapper.httpx_client.request(
257
+ f"v1/agents/{jsonable_encoder(agent_id)}/core-memory/blocks/attach/{jsonable_encoder(block_id)}",
258
+ method="PATCH",
259
+ request_options=request_options,
260
+ )
261
+ try:
262
+ if 200 <= _response.status_code < 300:
263
+ _data = typing.cast(
264
+ AgentState,
265
+ construct_type(
266
+ type_=AgentState, # type: ignore
267
+ object_=_response.json(),
268
+ ),
269
+ )
270
+ return HttpResponse(response=_response, data=_data)
271
+ if _response.status_code == 422:
272
+ raise UnprocessableEntityError(
273
+ headers=dict(_response.headers),
274
+ body=typing.cast(
275
+ HttpValidationError,
276
+ construct_type(
277
+ type_=HttpValidationError, # type: ignore
278
+ object_=_response.json(),
279
+ ),
280
+ ),
281
+ )
282
+ _response_json = _response.json()
283
+ except JSONDecodeError:
284
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
285
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
286
+
287
+ def detach(
288
+ self, agent_id: str, block_id: str, *, request_options: typing.Optional[RequestOptions] = None
289
+ ) -> HttpResponse[AgentState]:
290
+ """
291
+ Detach a core memory block from an agent.
292
+
293
+ Parameters
294
+ ----------
295
+ agent_id : str
296
+
297
+ block_id : str
298
+
299
+ request_options : typing.Optional[RequestOptions]
300
+ Request-specific configuration.
301
+
302
+ Returns
303
+ -------
304
+ HttpResponse[AgentState]
305
+ Successful Response
306
+ """
307
+ _response = self._client_wrapper.httpx_client.request(
308
+ f"v1/agents/{jsonable_encoder(agent_id)}/core-memory/blocks/detach/{jsonable_encoder(block_id)}",
309
+ method="PATCH",
310
+ request_options=request_options,
311
+ )
312
+ try:
313
+ if 200 <= _response.status_code < 300:
314
+ _data = typing.cast(
315
+ AgentState,
316
+ construct_type(
317
+ type_=AgentState, # type: ignore
318
+ object_=_response.json(),
319
+ ),
320
+ )
321
+ return HttpResponse(response=_response, data=_data)
322
+ if _response.status_code == 422:
323
+ raise UnprocessableEntityError(
324
+ headers=dict(_response.headers),
325
+ body=typing.cast(
326
+ HttpValidationError,
327
+ construct_type(
328
+ type_=HttpValidationError, # type: ignore
329
+ object_=_response.json(),
330
+ ),
331
+ ),
332
+ )
333
+ _response_json = _response.json()
334
+ except JSONDecodeError:
335
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
336
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
337
+
338
+
339
+ class AsyncRawBlocksClient:
340
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
341
+ self._client_wrapper = client_wrapper
342
+
343
+ async def retrieve(
344
+ self, agent_id: str, block_label: str, *, request_options: typing.Optional[RequestOptions] = None
345
+ ) -> AsyncHttpResponse[Block]:
346
+ """
347
+ Retrieve a core memory block from an agent.
348
+
349
+ Parameters
350
+ ----------
351
+ agent_id : str
352
+
353
+ block_label : str
354
+
355
+ request_options : typing.Optional[RequestOptions]
356
+ Request-specific configuration.
357
+
358
+ Returns
359
+ -------
360
+ AsyncHttpResponse[Block]
361
+ Successful Response
362
+ """
363
+ _response = await self._client_wrapper.httpx_client.request(
364
+ f"v1/agents/{jsonable_encoder(agent_id)}/core-memory/blocks/{jsonable_encoder(block_label)}",
365
+ method="GET",
366
+ request_options=request_options,
367
+ )
368
+ try:
369
+ if 200 <= _response.status_code < 300:
370
+ _data = typing.cast(
371
+ Block,
372
+ construct_type(
373
+ type_=Block, # type: ignore
374
+ object_=_response.json(),
375
+ ),
376
+ )
377
+ return AsyncHttpResponse(response=_response, data=_data)
378
+ if _response.status_code == 422:
379
+ raise UnprocessableEntityError(
380
+ headers=dict(_response.headers),
381
+ body=typing.cast(
382
+ HttpValidationError,
383
+ construct_type(
384
+ type_=HttpValidationError, # type: ignore
385
+ object_=_response.json(),
386
+ ),
387
+ ),
388
+ )
389
+ _response_json = _response.json()
390
+ except JSONDecodeError:
391
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
392
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
393
+
394
+ async def modify(
395
+ self,
396
+ agent_id: str,
397
+ block_label: str,
398
+ *,
399
+ value: typing.Optional[str] = OMIT,
400
+ limit: typing.Optional[int] = OMIT,
401
+ project_id: typing.Optional[str] = OMIT,
402
+ name: typing.Optional[str] = OMIT,
403
+ is_template: typing.Optional[bool] = OMIT,
404
+ preserve_on_migration: typing.Optional[bool] = OMIT,
405
+ label: typing.Optional[str] = OMIT,
406
+ read_only: typing.Optional[bool] = OMIT,
407
+ description: typing.Optional[str] = OMIT,
408
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
409
+ request_options: typing.Optional[RequestOptions] = None,
410
+ ) -> AsyncHttpResponse[Block]:
411
+ """
412
+ Updates a core memory block of an agent.
413
+
414
+ Parameters
415
+ ----------
416
+ agent_id : str
417
+
418
+ block_label : str
419
+
420
+ value : typing.Optional[str]
421
+ Value of the block.
422
+
423
+ limit : typing.Optional[int]
424
+ Character limit of the block.
425
+
426
+ project_id : typing.Optional[str]
427
+ The associated project id.
428
+
429
+ name : typing.Optional[str]
430
+ Name of the block if it is a template.
431
+
432
+ is_template : typing.Optional[bool]
433
+ Whether the block is a template (e.g. saved human/persona options).
434
+
435
+ preserve_on_migration : typing.Optional[bool]
436
+ Preserve the block on template migration.
437
+
438
+ label : typing.Optional[str]
439
+ Label of the block (e.g. 'human', 'persona') in the context window.
440
+
441
+ read_only : typing.Optional[bool]
442
+ Whether the agent has read-only access to the block.
443
+
444
+ description : typing.Optional[str]
445
+ Description of the block.
446
+
447
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
448
+ Metadata of the block.
449
+
450
+ request_options : typing.Optional[RequestOptions]
451
+ Request-specific configuration.
452
+
453
+ Returns
454
+ -------
455
+ AsyncHttpResponse[Block]
456
+ Successful Response
457
+ """
458
+ _response = await self._client_wrapper.httpx_client.request(
459
+ f"v1/agents/{jsonable_encoder(agent_id)}/core-memory/blocks/{jsonable_encoder(block_label)}",
460
+ method="PATCH",
461
+ json={
462
+ "value": value,
463
+ "limit": limit,
464
+ "project_id": project_id,
465
+ "name": name,
466
+ "is_template": is_template,
467
+ "preserve_on_migration": preserve_on_migration,
468
+ "label": label,
469
+ "read_only": read_only,
470
+ "description": description,
471
+ "metadata": metadata,
472
+ },
473
+ headers={
474
+ "content-type": "application/json",
475
+ },
476
+ request_options=request_options,
477
+ omit=OMIT,
478
+ )
479
+ try:
480
+ if 200 <= _response.status_code < 300:
481
+ _data = typing.cast(
482
+ Block,
483
+ construct_type(
484
+ type_=Block, # type: ignore
485
+ object_=_response.json(),
486
+ ),
487
+ )
488
+ return AsyncHttpResponse(response=_response, data=_data)
489
+ if _response.status_code == 422:
490
+ raise UnprocessableEntityError(
491
+ headers=dict(_response.headers),
492
+ body=typing.cast(
493
+ HttpValidationError,
494
+ construct_type(
495
+ type_=HttpValidationError, # type: ignore
496
+ object_=_response.json(),
497
+ ),
498
+ ),
499
+ )
500
+ _response_json = _response.json()
501
+ except JSONDecodeError:
502
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
503
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
504
+
505
+ async def list(
506
+ self, agent_id: str, *, request_options: typing.Optional[RequestOptions] = None
507
+ ) -> AsyncHttpResponse[typing.List[Block]]:
508
+ """
509
+ Retrieve the core memory blocks of a specific agent.
510
+
511
+ Parameters
512
+ ----------
513
+ agent_id : str
514
+
515
+ request_options : typing.Optional[RequestOptions]
516
+ Request-specific configuration.
517
+
518
+ Returns
519
+ -------
520
+ AsyncHttpResponse[typing.List[Block]]
521
+ Successful Response
522
+ """
523
+ _response = await self._client_wrapper.httpx_client.request(
524
+ f"v1/agents/{jsonable_encoder(agent_id)}/core-memory/blocks",
525
+ method="GET",
526
+ request_options=request_options,
527
+ )
528
+ try:
529
+ if 200 <= _response.status_code < 300:
530
+ _data = typing.cast(
531
+ typing.List[Block],
532
+ construct_type(
533
+ type_=typing.List[Block], # type: ignore
534
+ object_=_response.json(),
535
+ ),
536
+ )
537
+ return AsyncHttpResponse(response=_response, data=_data)
538
+ if _response.status_code == 422:
539
+ raise UnprocessableEntityError(
540
+ headers=dict(_response.headers),
541
+ body=typing.cast(
542
+ HttpValidationError,
543
+ construct_type(
544
+ type_=HttpValidationError, # type: ignore
545
+ object_=_response.json(),
546
+ ),
547
+ ),
548
+ )
549
+ _response_json = _response.json()
550
+ except JSONDecodeError:
551
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
552
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
553
+
554
+ async def attach(
555
+ self, agent_id: str, block_id: str, *, request_options: typing.Optional[RequestOptions] = None
556
+ ) -> AsyncHttpResponse[AgentState]:
557
+ """
558
+ Attach a core memory block to an agent.
559
+
560
+ Parameters
561
+ ----------
562
+ agent_id : str
563
+
564
+ block_id : str
565
+
566
+ request_options : typing.Optional[RequestOptions]
567
+ Request-specific configuration.
568
+
569
+ Returns
570
+ -------
571
+ AsyncHttpResponse[AgentState]
572
+ Successful Response
573
+ """
574
+ _response = await self._client_wrapper.httpx_client.request(
575
+ f"v1/agents/{jsonable_encoder(agent_id)}/core-memory/blocks/attach/{jsonable_encoder(block_id)}",
576
+ method="PATCH",
577
+ request_options=request_options,
578
+ )
579
+ try:
580
+ if 200 <= _response.status_code < 300:
581
+ _data = typing.cast(
582
+ AgentState,
583
+ construct_type(
584
+ type_=AgentState, # type: ignore
585
+ object_=_response.json(),
586
+ ),
587
+ )
588
+ return AsyncHttpResponse(response=_response, data=_data)
589
+ if _response.status_code == 422:
590
+ raise UnprocessableEntityError(
591
+ headers=dict(_response.headers),
592
+ body=typing.cast(
593
+ HttpValidationError,
594
+ construct_type(
595
+ type_=HttpValidationError, # type: ignore
596
+ object_=_response.json(),
597
+ ),
598
+ ),
599
+ )
600
+ _response_json = _response.json()
601
+ except JSONDecodeError:
602
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
603
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
604
+
605
+ async def detach(
606
+ self, agent_id: str, block_id: str, *, request_options: typing.Optional[RequestOptions] = None
607
+ ) -> AsyncHttpResponse[AgentState]:
608
+ """
609
+ Detach a core memory block from an agent.
610
+
611
+ Parameters
612
+ ----------
613
+ agent_id : str
614
+
615
+ block_id : str
616
+
617
+ request_options : typing.Optional[RequestOptions]
618
+ Request-specific configuration.
619
+
620
+ Returns
621
+ -------
622
+ AsyncHttpResponse[AgentState]
623
+ Successful Response
624
+ """
625
+ _response = await self._client_wrapper.httpx_client.request(
626
+ f"v1/agents/{jsonable_encoder(agent_id)}/core-memory/blocks/detach/{jsonable_encoder(block_id)}",
627
+ method="PATCH",
628
+ request_options=request_options,
629
+ )
630
+ try:
631
+ if 200 <= _response.status_code < 300:
632
+ _data = typing.cast(
633
+ AgentState,
634
+ construct_type(
635
+ type_=AgentState, # type: ignore
636
+ object_=_response.json(),
637
+ ),
638
+ )
639
+ return AsyncHttpResponse(response=_response, data=_data)
640
+ if _response.status_code == 422:
641
+ raise UnprocessableEntityError(
642
+ headers=dict(_response.headers),
643
+ body=typing.cast(
644
+ HttpValidationError,
645
+ construct_type(
646
+ type_=HttpValidationError, # type: ignore
647
+ object_=_response.json(),
648
+ ),
649
+ ),
650
+ )
651
+ _response_json = _response.json()
652
+ except JSONDecodeError:
653
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
654
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)