letta-client 0.1.233__py3-none-any.whl → 0.1.235__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (438) hide show
  1. letta_client/__init__.py +2 -0
  2. letta_client/agents/__init__.py +2 -0
  3. letta_client/agents/blocks/__init__.py +2 -0
  4. letta_client/agents/blocks/client.py +72 -313
  5. letta_client/agents/blocks/raw_client.py +654 -0
  6. letta_client/agents/client.py +349 -869
  7. letta_client/agents/context/__init__.py +2 -0
  8. letta_client/agents/context/client.py +31 -66
  9. letta_client/agents/context/raw_client.py +122 -0
  10. letta_client/agents/core_memory/__init__.py +2 -0
  11. letta_client/agents/core_memory/client.py +31 -66
  12. letta_client/agents/core_memory/raw_client.py +124 -0
  13. letta_client/agents/files/__init__.py +2 -0
  14. letta_client/agents/files/client.py +39 -178
  15. letta_client/agents/files/raw_client.py +349 -0
  16. letta_client/agents/folders/__init__.py +2 -0
  17. letta_client/agents/folders/client.py +39 -178
  18. letta_client/agents/folders/raw_client.py +327 -0
  19. letta_client/agents/groups/__init__.py +2 -0
  20. letta_client/agents/groups/client.py +31 -72
  21. letta_client/agents/groups/raw_client.py +142 -0
  22. letta_client/agents/memory_variables/__init__.py +2 -0
  23. letta_client/agents/memory_variables/client.py +31 -65
  24. letta_client/agents/memory_variables/raw_client.py +125 -0
  25. letta_client/agents/memory_variables/types/__init__.py +2 -0
  26. letta_client/agents/memory_variables/types/memory_variables_list_response.py +3 -2
  27. letta_client/agents/messages/__init__.py +2 -0
  28. letta_client/agents/messages/client.py +150 -589
  29. letta_client/agents/messages/raw_client.py +1384 -0
  30. letta_client/agents/messages/types/__init__.py +2 -0
  31. letta_client/agents/messages/types/letta_streaming_response.py +6 -5
  32. letta_client/agents/messages/types/messages_modify_request.py +3 -2
  33. letta_client/agents/messages/types/messages_modify_response.py +5 -4
  34. letta_client/agents/messages/types/messages_preview_raw_payload_request.py +1 -0
  35. letta_client/agents/passages/__init__.py +2 -0
  36. letta_client/agents/passages/client.py +89 -301
  37. letta_client/agents/passages/raw_client.py +678 -0
  38. letta_client/agents/raw_client.py +2088 -0
  39. letta_client/agents/sources/__init__.py +2 -0
  40. letta_client/agents/sources/client.py +39 -178
  41. letta_client/agents/sources/raw_client.py +327 -0
  42. letta_client/agents/templates/__init__.py +2 -0
  43. letta_client/agents/templates/client.py +57 -276
  44. letta_client/agents/templates/raw_client.py +505 -0
  45. letta_client/agents/templates/types/__init__.py +2 -0
  46. letta_client/agents/templates/types/templates_create_response.py +5 -4
  47. letta_client/agents/templates/types/templates_migrate_response.py +3 -2
  48. letta_client/agents/tools/__init__.py +2 -0
  49. letta_client/agents/tools/client.py +40 -179
  50. letta_client/agents/tools/raw_client.py +327 -0
  51. letta_client/agents/types/__init__.py +2 -0
  52. letta_client/agents/types/agents_search_request_search_item.py +4 -3
  53. letta_client/agents/types/agents_search_request_search_item_field.py +4 -3
  54. letta_client/agents/types/agents_search_request_search_item_one.py +4 -3
  55. letta_client/agents/types/agents_search_request_search_item_three.py +3 -2
  56. letta_client/agents/types/agents_search_request_search_item_two.py +3 -2
  57. letta_client/agents/types/agents_search_request_search_item_zero.py +3 -2
  58. letta_client/agents/types/agents_search_response.py +5 -4
  59. letta_client/agents/types/create_agent_request_response_format.py +1 -0
  60. letta_client/agents/types/create_agent_request_tool_rules_item.py +4 -3
  61. letta_client/agents/types/update_agent_response_format.py +1 -0
  62. letta_client/agents/types/update_agent_tool_rules_item.py +4 -3
  63. letta_client/base_client.py +41 -49
  64. letta_client/batches/__init__.py +2 -0
  65. letta_client/batches/client.py +45 -253
  66. letta_client/batches/raw_client.py +457 -0
  67. letta_client/blocks/__init__.py +2 -0
  68. letta_client/blocks/agents/__init__.py +2 -0
  69. letta_client/blocks/agents/client.py +33 -70
  70. letta_client/blocks/agents/raw_client.py +144 -0
  71. letta_client/blocks/client.py +126 -424
  72. letta_client/blocks/raw_client.py +973 -0
  73. letta_client/client_side_access_tokens/__init__.py +2 -0
  74. letta_client/client_side_access_tokens/client.py +45 -216
  75. letta_client/client_side_access_tokens/raw_client.py +435 -0
  76. letta_client/client_side_access_tokens/types/__init__.py +2 -0
  77. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_request_policy_item.py +4 -3
  78. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response.py +6 -5
  79. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy.py +4 -3
  80. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy_data_item.py +4 -3
  81. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response.py +6 -5
  82. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item.py +6 -5
  83. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy.py +4 -3
  84. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy_data_item.py +4 -3
  85. letta_client/core/__init__.py +5 -0
  86. letta_client/core/api_error.py +13 -5
  87. letta_client/core/client_wrapper.py +14 -5
  88. letta_client/core/force_multipart.py +16 -0
  89. letta_client/core/http_client.py +70 -26
  90. letta_client/core/http_response.py +55 -0
  91. letta_client/core/jsonable_encoder.py +0 -1
  92. letta_client/core/pydantic_utilities.py +70 -111
  93. letta_client/core/serialization.py +7 -3
  94. letta_client/core/unchecked_base_model.py +40 -4
  95. letta_client/embedding_models/__init__.py +2 -0
  96. letta_client/embedding_models/client.py +31 -65
  97. letta_client/embedding_models/raw_client.py +117 -0
  98. letta_client/errors/__init__.py +2 -0
  99. letta_client/errors/bad_request_error.py +4 -3
  100. letta_client/errors/conflict_error.py +4 -2
  101. letta_client/errors/internal_server_error.py +4 -3
  102. letta_client/errors/not_found_error.py +4 -3
  103. letta_client/errors/payment_required_error.py +4 -2
  104. letta_client/errors/unprocessable_entity_error.py +4 -2
  105. letta_client/folders/__init__.py +2 -0
  106. letta_client/folders/client.py +100 -564
  107. letta_client/folders/files/__init__.py +2 -0
  108. letta_client/folders/files/client.py +44 -189
  109. letta_client/folders/files/raw_client.py +391 -0
  110. letta_client/folders/passages/__init__.py +2 -0
  111. letta_client/folders/passages/client.py +33 -74
  112. letta_client/folders/passages/raw_client.py +162 -0
  113. letta_client/folders/raw_client.py +1084 -0
  114. letta_client/groups/__init__.py +2 -0
  115. letta_client/groups/client.py +87 -406
  116. letta_client/groups/messages/__init__.py +2 -0
  117. letta_client/groups/messages/client.py +110 -371
  118. letta_client/groups/messages/raw_client.py +881 -0
  119. letta_client/groups/messages/types/__init__.py +2 -0
  120. letta_client/groups/messages/types/letta_streaming_response.py +5 -4
  121. letta_client/groups/messages/types/messages_modify_request.py +3 -2
  122. letta_client/groups/messages/types/messages_modify_response.py +5 -4
  123. letta_client/groups/raw_client.py +807 -0
  124. letta_client/groups/types/__init__.py +2 -0
  125. letta_client/groups/types/group_create_manager_config.py +1 -0
  126. letta_client/groups/types/group_update_manager_config.py +1 -0
  127. letta_client/health/__init__.py +2 -0
  128. letta_client/health/client.py +31 -43
  129. letta_client/health/raw_client.py +85 -0
  130. letta_client/identities/__init__.py +2 -0
  131. letta_client/identities/client.py +115 -498
  132. letta_client/identities/properties/__init__.py +2 -0
  133. letta_client/identities/properties/client.py +32 -76
  134. letta_client/identities/properties/raw_client.py +152 -0
  135. letta_client/identities/raw_client.py +1010 -0
  136. letta_client/jobs/__init__.py +2 -0
  137. letta_client/jobs/client.py +67 -310
  138. letta_client/jobs/raw_client.py +624 -0
  139. letta_client/messages/__init__.py +2 -0
  140. letta_client/messages/client.py +41 -74
  141. letta_client/messages/raw_client.py +186 -0
  142. letta_client/models/__init__.py +2 -0
  143. letta_client/models/client.py +39 -73
  144. letta_client/models/raw_client.py +151 -0
  145. letta_client/projects/__init__.py +2 -0
  146. letta_client/projects/client.py +31 -53
  147. letta_client/projects/raw_client.py +125 -0
  148. letta_client/projects/types/__init__.py +2 -0
  149. letta_client/projects/types/projects_list_response.py +5 -4
  150. letta_client/projects/types/projects_list_response_projects_item.py +3 -2
  151. letta_client/providers/__init__.py +2 -0
  152. letta_client/providers/client.py +62 -335
  153. letta_client/providers/raw_client.py +664 -0
  154. letta_client/runs/__init__.py +2 -0
  155. letta_client/runs/client.py +56 -258
  156. letta_client/runs/messages/__init__.py +2 -0
  157. letta_client/runs/messages/client.py +34 -79
  158. letta_client/runs/messages/raw_client.py +209 -0
  159. letta_client/runs/raw_client.py +440 -0
  160. letta_client/runs/steps/__init__.py +2 -0
  161. letta_client/runs/steps/client.py +33 -76
  162. letta_client/runs/steps/raw_client.py +192 -0
  163. letta_client/runs/usage/__init__.py +2 -0
  164. letta_client/runs/usage/client.py +31 -66
  165. letta_client/runs/usage/raw_client.py +122 -0
  166. letta_client/sources/__init__.py +2 -0
  167. letta_client/sources/client.py +107 -625
  168. letta_client/sources/files/__init__.py +2 -0
  169. letta_client/sources/files/client.py +44 -189
  170. letta_client/sources/files/raw_client.py +391 -0
  171. letta_client/sources/passages/__init__.py +2 -0
  172. letta_client/sources/passages/client.py +33 -74
  173. letta_client/sources/passages/raw_client.py +162 -0
  174. letta_client/sources/raw_client.py +1209 -0
  175. letta_client/steps/__init__.py +2 -0
  176. letta_client/steps/client.py +65 -153
  177. letta_client/steps/feedback/__init__.py +2 -0
  178. letta_client/steps/feedback/client.py +32 -73
  179. letta_client/steps/feedback/raw_client.py +141 -0
  180. letta_client/steps/raw_client.py +355 -0
  181. letta_client/steps/types/__init__.py +2 -0
  182. letta_client/tags/__init__.py +2 -0
  183. letta_client/tags/client.py +33 -73
  184. letta_client/tags/raw_client.py +148 -0
  185. letta_client/telemetry/__init__.py +2 -0
  186. letta_client/telemetry/client.py +31 -66
  187. letta_client/telemetry/raw_client.py +118 -0
  188. letta_client/templates/__init__.py +2 -0
  189. letta_client/templates/agents/__init__.py +2 -0
  190. letta_client/templates/agents/client.py +48 -96
  191. letta_client/templates/agents/raw_client.py +227 -0
  192. letta_client/templates/agents/types/__init__.py +2 -0
  193. letta_client/templates/agents/types/agents_create_request_initial_message_sequence_item.py +4 -3
  194. letta_client/templates/agents/types/agents_create_response.py +4 -3
  195. letta_client/templates/client.py +36 -57
  196. letta_client/templates/raw_client.py +133 -0
  197. letta_client/templates/types/__init__.py +2 -0
  198. letta_client/templates/types/templates_list_response.py +5 -4
  199. letta_client/templates/types/templates_list_response_templates_item.py +3 -2
  200. letta_client/tools/__init__.py +2 -0
  201. letta_client/tools/client.py +195 -1322
  202. letta_client/tools/raw_client.py +2565 -0
  203. letta_client/tools/types/__init__.py +2 -0
  204. letta_client/tools/types/add_mcp_server_request.py +2 -1
  205. letta_client/tools/types/add_mcp_server_response_item.py +2 -1
  206. letta_client/tools/types/connect_mcp_server_request.py +2 -1
  207. letta_client/tools/types/delete_mcp_server_response_item.py +2 -1
  208. letta_client/tools/types/list_mcp_servers_response_value.py +1 -0
  209. letta_client/tools/types/streaming_response.py +5 -4
  210. letta_client/tools/types/test_mcp_server_request.py +2 -1
  211. letta_client/tools/types/update_mcp_server_request.py +2 -1
  212. letta_client/tools/types/update_mcp_server_response.py +2 -1
  213. letta_client/types/__init__.py +2 -0
  214. letta_client/types/action_model.py +6 -5
  215. letta_client/types/action_parameters_model.py +3 -2
  216. letta_client/types/action_response_model.py +3 -2
  217. letta_client/types/agent_environment_variable.py +3 -2
  218. letta_client/types/agent_schema.py +7 -6
  219. letta_client/types/agent_schema_tool_rules_item.py +2 -1
  220. letta_client/types/agent_state.py +14 -8
  221. letta_client/types/agent_state_response_format.py +1 -0
  222. letta_client/types/agent_state_tool_rules_item.py +4 -3
  223. letta_client/types/app_auth_scheme.py +4 -3
  224. letta_client/types/app_model.py +5 -4
  225. letta_client/types/assistant_message.py +3 -2
  226. letta_client/types/assistant_message_content.py +1 -0
  227. letta_client/types/audio.py +3 -2
  228. letta_client/types/auth_request.py +2 -1
  229. letta_client/types/auth_response.py +5 -4
  230. letta_client/types/auth_scheme_field.py +3 -2
  231. letta_client/types/bad_request_error_body.py +3 -2
  232. letta_client/types/base_64_image.py +2 -1
  233. letta_client/types/base_tool_rule_schema.py +3 -2
  234. letta_client/types/batch_job.py +4 -3
  235. letta_client/types/block.py +3 -2
  236. letta_client/types/block_update.py +2 -1
  237. letta_client/types/chat_completion_assistant_message_param.py +5 -4
  238. letta_client/types/chat_completion_assistant_message_param_content.py +1 -0
  239. letta_client/types/chat_completion_assistant_message_param_content_item.py +2 -1
  240. letta_client/types/chat_completion_audio_param.py +4 -3
  241. letta_client/types/chat_completion_content_part_image_param.py +4 -3
  242. letta_client/types/chat_completion_content_part_input_audio_param.py +4 -3
  243. letta_client/types/chat_completion_content_part_refusal_param.py +3 -2
  244. letta_client/types/chat_completion_content_part_text_param.py +3 -2
  245. letta_client/types/chat_completion_developer_message_param.py +4 -3
  246. letta_client/types/chat_completion_developer_message_param_content.py +1 -0
  247. letta_client/types/chat_completion_function_call_option_param.py +3 -2
  248. letta_client/types/chat_completion_function_message_param.py +3 -2
  249. letta_client/types/chat_completion_message_tool_call.py +4 -3
  250. letta_client/types/chat_completion_message_tool_call_param.py +4 -3
  251. letta_client/types/chat_completion_named_tool_choice_param.py +4 -3
  252. letta_client/types/chat_completion_prediction_content_param.py +4 -3
  253. letta_client/types/chat_completion_prediction_content_param_content.py +1 -0
  254. letta_client/types/chat_completion_stream_options_param.py +3 -2
  255. letta_client/types/chat_completion_system_message_param.py +4 -3
  256. letta_client/types/chat_completion_system_message_param_content.py +1 -0
  257. letta_client/types/chat_completion_tool_message_param.py +4 -3
  258. letta_client/types/chat_completion_tool_message_param_content.py +1 -0
  259. letta_client/types/chat_completion_tool_param.py +4 -3
  260. letta_client/types/chat_completion_user_message_param.py +4 -3
  261. letta_client/types/chat_completion_user_message_param_content.py +1 -0
  262. letta_client/types/chat_completion_user_message_param_content_item.py +2 -1
  263. letta_client/types/child_tool_rule.py +3 -2
  264. letta_client/types/child_tool_rule_schema.py +3 -2
  265. letta_client/types/code_input.py +3 -2
  266. letta_client/types/completion_create_params_non_streaming.py +10 -9
  267. letta_client/types/completion_create_params_non_streaming_function_call.py +1 -0
  268. letta_client/types/completion_create_params_non_streaming_messages_item.py +4 -3
  269. letta_client/types/completion_create_params_non_streaming_response_format.py +3 -2
  270. letta_client/types/completion_create_params_non_streaming_tool_choice.py +1 -0
  271. letta_client/types/completion_create_params_streaming.py +10 -9
  272. letta_client/types/completion_create_params_streaming_function_call.py +1 -0
  273. letta_client/types/completion_create_params_streaming_messages_item.py +4 -3
  274. letta_client/types/completion_create_params_streaming_response_format.py +3 -2
  275. letta_client/types/completion_create_params_streaming_tool_choice.py +1 -0
  276. letta_client/types/conditional_tool_rule.py +3 -2
  277. letta_client/types/conditional_tool_rule_schema.py +3 -2
  278. letta_client/types/conflict_error_body.py +3 -2
  279. letta_client/types/context_window_overview.py +4 -3
  280. letta_client/types/continue_tool_rule.py +3 -2
  281. letta_client/types/core_memory_block_schema.py +4 -3
  282. letta_client/types/create_block.py +3 -2
  283. letta_client/types/dynamic_manager.py +2 -1
  284. letta_client/types/dynamic_manager_update.py +2 -1
  285. letta_client/types/e_2_b_sandbox_config.py +2 -1
  286. letta_client/types/embedding_config.py +4 -3
  287. letta_client/types/file.py +4 -3
  288. letta_client/types/file_block.py +4 -3
  289. letta_client/types/file_file.py +3 -2
  290. letta_client/types/file_metadata.py +5 -4
  291. letta_client/types/file_stats.py +3 -2
  292. letta_client/types/folder.py +5 -4
  293. letta_client/types/function_call.py +3 -2
  294. letta_client/types/function_definition_input.py +3 -2
  295. letta_client/types/function_definition_output.py +3 -2
  296. letta_client/types/function_output.py +3 -2
  297. letta_client/types/function_tool.py +4 -3
  298. letta_client/types/generate_tool_input.py +3 -2
  299. letta_client/types/generate_tool_output.py +4 -3
  300. letta_client/types/group.py +4 -3
  301. letta_client/types/health.py +3 -2
  302. letta_client/types/hidden_reasoning_message.py +4 -3
  303. letta_client/types/http_validation_error.py +4 -3
  304. letta_client/types/identity.py +4 -3
  305. letta_client/types/identity_property.py +5 -4
  306. letta_client/types/image_content.py +3 -2
  307. letta_client/types/image_content_source.py +1 -0
  308. letta_client/types/image_url.py +4 -3
  309. letta_client/types/init_tool_rule.py +3 -2
  310. letta_client/types/input_audio.py +4 -3
  311. letta_client/types/internal_server_error_body.py +3 -2
  312. letta_client/types/job.py +4 -3
  313. letta_client/types/json_object_response_format.py +3 -2
  314. letta_client/types/json_schema.py +4 -3
  315. letta_client/types/json_schema_response_format.py +2 -1
  316. letta_client/types/letta_batch_messages.py +4 -3
  317. letta_client/types/letta_batch_request.py +4 -3
  318. letta_client/types/letta_image.py +2 -1
  319. letta_client/types/letta_message_content_union.py +4 -3
  320. letta_client/types/letta_message_union.py +5 -4
  321. letta_client/types/letta_ping.py +2 -1
  322. letta_client/types/letta_request.py +4 -3
  323. letta_client/types/letta_request_config.py +3 -2
  324. letta_client/types/letta_response.py +4 -3
  325. letta_client/types/letta_stop_reason.py +3 -2
  326. letta_client/types/letta_streaming_request.py +9 -3
  327. letta_client/types/letta_usage_statistics.py +3 -2
  328. letta_client/types/letta_user_message_content_union.py +2 -1
  329. letta_client/types/llm_config.py +6 -5
  330. letta_client/types/local_sandbox_config.py +3 -2
  331. letta_client/types/max_count_per_step_tool_rule.py +3 -2
  332. letta_client/types/max_count_per_step_tool_rule_schema.py +3 -2
  333. letta_client/types/mcp_tool.py +4 -3
  334. letta_client/types/memory.py +4 -3
  335. letta_client/types/message.py +6 -5
  336. letta_client/types/message_content_item.py +1 -0
  337. letta_client/types/message_create.py +5 -4
  338. letta_client/types/message_create_content.py +1 -0
  339. letta_client/types/message_schema.py +4 -3
  340. letta_client/types/modal_sandbox_config.py +2 -1
  341. letta_client/types/not_found_error_body.py +3 -2
  342. letta_client/types/omitted_reasoning_content.py +3 -2
  343. letta_client/types/openai_types_chat_chat_completion_message_tool_call_param_function.py +3 -2
  344. letta_client/types/openai_types_chat_chat_completion_named_tool_choice_param_function.py +3 -2
  345. letta_client/types/openai_types_chat_completion_create_params_function.py +3 -2
  346. letta_client/types/organization.py +3 -2
  347. letta_client/types/organization_create.py +2 -1
  348. letta_client/types/organization_sources_stats.py +3 -2
  349. letta_client/types/organization_update.py +2 -1
  350. letta_client/types/parameter_properties.py +3 -2
  351. letta_client/types/parameters_schema.py +4 -3
  352. letta_client/types/parent_tool_rule.py +3 -2
  353. letta_client/types/passage.py +4 -3
  354. letta_client/types/payment_required_error_body.py +3 -2
  355. letta_client/types/pip_requirement.py +3 -2
  356. letta_client/types/provider.py +5 -4
  357. letta_client/types/provider_check.py +4 -3
  358. letta_client/types/provider_trace.py +3 -2
  359. letta_client/types/reasoning_content.py +2 -1
  360. letta_client/types/reasoning_message.py +4 -3
  361. letta_client/types/redacted_reasoning_content.py +2 -1
  362. letta_client/types/required_before_exit_tool_rule.py +3 -2
  363. letta_client/types/response_format_json_object.py +3 -2
  364. letta_client/types/response_format_json_schema.py +4 -3
  365. letta_client/types/response_format_text.py +3 -2
  366. letta_client/types/round_robin_manager.py +2 -1
  367. letta_client/types/round_robin_manager_update.py +2 -1
  368. letta_client/types/run.py +4 -3
  369. letta_client/types/sandbox_config.py +4 -3
  370. letta_client/types/sandbox_config_create.py +4 -3
  371. letta_client/types/sandbox_config_create_config.py +2 -1
  372. letta_client/types/sandbox_config_update.py +3 -2
  373. letta_client/types/sandbox_config_update_config.py +2 -1
  374. letta_client/types/sandbox_environment_variable.py +3 -2
  375. letta_client/types/sandbox_environment_variable_create.py +3 -2
  376. letta_client/types/sandbox_environment_variable_update.py +2 -1
  377. letta_client/types/sleeptime_manager.py +2 -1
  378. letta_client/types/sleeptime_manager_update.py +2 -1
  379. letta_client/types/source.py +5 -4
  380. letta_client/types/source_create.py +4 -3
  381. letta_client/types/source_stats.py +4 -3
  382. letta_client/types/source_update.py +3 -2
  383. letta_client/types/sse_server_config.py +4 -3
  384. letta_client/types/stdio_server_config.py +4 -3
  385. letta_client/types/step.py +5 -4
  386. letta_client/types/streamable_http_server_config.py +4 -3
  387. letta_client/types/supervisor_manager.py +2 -1
  388. letta_client/types/supervisor_manager_update.py +2 -1
  389. letta_client/types/system_message.py +2 -1
  390. letta_client/types/tag_schema.py +3 -2
  391. letta_client/types/terminal_tool_rule.py +3 -2
  392. letta_client/types/text_content.py +2 -1
  393. letta_client/types/text_response_format.py +3 -2
  394. letta_client/types/tool.py +5 -4
  395. letta_client/types/tool_annotations.py +4 -3
  396. letta_client/types/tool_call.py +3 -2
  397. letta_client/types/tool_call_content.py +2 -1
  398. letta_client/types/tool_call_delta.py +3 -2
  399. letta_client/types/tool_call_message.py +4 -3
  400. letta_client/types/tool_call_message_tool_call.py +1 -0
  401. letta_client/types/tool_create.py +3 -2
  402. letta_client/types/tool_env_var_schema.py +3 -2
  403. letta_client/types/tool_json_schema.py +4 -3
  404. letta_client/types/tool_return.py +4 -3
  405. letta_client/types/tool_return_content.py +2 -1
  406. letta_client/types/tool_return_message.py +4 -3
  407. letta_client/types/tool_schema.py +5 -4
  408. letta_client/types/update_assistant_message.py +3 -2
  409. letta_client/types/update_assistant_message_content.py +1 -0
  410. letta_client/types/update_reasoning_message.py +3 -2
  411. letta_client/types/update_ssemcp_server.py +2 -1
  412. letta_client/types/update_stdio_mcp_server.py +3 -2
  413. letta_client/types/update_streamable_httpmcp_server.py +2 -1
  414. letta_client/types/update_system_message.py +2 -1
  415. letta_client/types/update_user_message.py +3 -2
  416. letta_client/types/update_user_message_content.py +1 -0
  417. letta_client/types/url_image.py +2 -1
  418. letta_client/types/usage_statistics.py +5 -4
  419. letta_client/types/usage_statistics_completion_token_details.py +3 -2
  420. letta_client/types/usage_statistics_prompt_token_details.py +3 -2
  421. letta_client/types/user.py +3 -2
  422. letta_client/types/user_create.py +3 -2
  423. letta_client/types/user_message.py +3 -2
  424. letta_client/types/user_message_content.py +1 -0
  425. letta_client/types/user_update.py +3 -2
  426. letta_client/types/validation_error.py +4 -3
  427. letta_client/types/voice_sleeptime_manager.py +2 -1
  428. letta_client/types/voice_sleeptime_manager_update.py +2 -1
  429. letta_client/types/web_search_options.py +4 -3
  430. letta_client/types/web_search_options_user_location.py +4 -3
  431. letta_client/types/web_search_options_user_location_approximate.py +3 -2
  432. letta_client/voice/__init__.py +2 -0
  433. letta_client/voice/client.py +33 -74
  434. letta_client/voice/raw_client.py +154 -0
  435. {letta_client-0.1.233.dist-info → letta_client-0.1.235.dist-info}/METADATA +24 -3
  436. letta_client-0.1.235.dist-info/RECORD +503 -0
  437. letta_client-0.1.233.dist-info/RECORD +0 -455
  438. {letta_client-0.1.233.dist-info → letta_client-0.1.235.dist-info}/WHEEL +0 -0
@@ -0,0 +1,457 @@
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.serialization import convert_and_respect_annotation_metadata
12
+ from ..core.unchecked_base_model import construct_type
13
+ from ..errors.unprocessable_entity_error import UnprocessableEntityError
14
+ from ..types.batch_job import BatchJob
15
+ from ..types.http_validation_error import HttpValidationError
16
+ from ..types.letta_batch_request import LettaBatchRequest
17
+
18
+ # this is used as the default value for optional parameters
19
+ OMIT = typing.cast(typing.Any, ...)
20
+
21
+
22
+ class RawBatchesClient:
23
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
24
+ self._client_wrapper = client_wrapper
25
+
26
+ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[typing.List[BatchJob]]:
27
+ """
28
+ List all batch runs.
29
+
30
+ Parameters
31
+ ----------
32
+ request_options : typing.Optional[RequestOptions]
33
+ Request-specific configuration.
34
+
35
+ Returns
36
+ -------
37
+ HttpResponse[typing.List[BatchJob]]
38
+ Successful Response
39
+ """
40
+ _response = self._client_wrapper.httpx_client.request(
41
+ "v1/messages/batches",
42
+ method="GET",
43
+ request_options=request_options,
44
+ )
45
+ try:
46
+ if 200 <= _response.status_code < 300:
47
+ _data = typing.cast(
48
+ typing.List[BatchJob],
49
+ construct_type(
50
+ type_=typing.List[BatchJob], # type: ignore
51
+ object_=_response.json(),
52
+ ),
53
+ )
54
+ return HttpResponse(response=_response, data=_data)
55
+ if _response.status_code == 422:
56
+ raise UnprocessableEntityError(
57
+ headers=dict(_response.headers),
58
+ body=typing.cast(
59
+ HttpValidationError,
60
+ construct_type(
61
+ type_=HttpValidationError, # type: ignore
62
+ object_=_response.json(),
63
+ ),
64
+ ),
65
+ )
66
+ _response_json = _response.json()
67
+ except JSONDecodeError:
68
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
69
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
70
+
71
+ def create(
72
+ self,
73
+ *,
74
+ requests: typing.Sequence[LettaBatchRequest],
75
+ callback_url: typing.Optional[str] = OMIT,
76
+ request_options: typing.Optional[RequestOptions] = None,
77
+ ) -> HttpResponse[BatchJob]:
78
+ """
79
+ Submit a batch of agent messages for asynchronous processing.
80
+ Creates a job that will fan out messages to all listed agents and process them in parallel.
81
+
82
+ Parameters
83
+ ----------
84
+ requests : typing.Sequence[LettaBatchRequest]
85
+ List of requests to be processed in batch.
86
+
87
+ callback_url : typing.Optional[str]
88
+ Optional URL to call via POST when the batch completes. The callback payload will be a JSON object with the following fields: {'job_id': string, 'status': string, 'completed_at': string}. Where 'job_id' is the unique batch job identifier, 'status' is the final batch status (e.g., 'completed', 'failed'), and 'completed_at' is an ISO 8601 timestamp indicating when the batch job completed.
89
+
90
+ request_options : typing.Optional[RequestOptions]
91
+ Request-specific configuration.
92
+
93
+ Returns
94
+ -------
95
+ HttpResponse[BatchJob]
96
+ Successful Response
97
+ """
98
+ _response = self._client_wrapper.httpx_client.request(
99
+ "v1/messages/batches",
100
+ method="POST",
101
+ json={
102
+ "requests": convert_and_respect_annotation_metadata(
103
+ object_=requests, annotation=typing.Sequence[LettaBatchRequest], direction="write"
104
+ ),
105
+ "callback_url": callback_url,
106
+ },
107
+ headers={
108
+ "content-type": "application/json",
109
+ },
110
+ request_options=request_options,
111
+ omit=OMIT,
112
+ )
113
+ try:
114
+ if 200 <= _response.status_code < 300:
115
+ _data = typing.cast(
116
+ BatchJob,
117
+ construct_type(
118
+ type_=BatchJob, # type: ignore
119
+ object_=_response.json(),
120
+ ),
121
+ )
122
+ return HttpResponse(response=_response, data=_data)
123
+ if _response.status_code == 422:
124
+ raise UnprocessableEntityError(
125
+ headers=dict(_response.headers),
126
+ body=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, headers=dict(_response.headers), body=_response.text)
137
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
138
+
139
+ def retrieve(
140
+ self, batch_id: str, *, request_options: typing.Optional[RequestOptions] = None
141
+ ) -> HttpResponse[BatchJob]:
142
+ """
143
+ Get the status of a batch run.
144
+
145
+ Parameters
146
+ ----------
147
+ batch_id : str
148
+
149
+ request_options : typing.Optional[RequestOptions]
150
+ Request-specific configuration.
151
+
152
+ Returns
153
+ -------
154
+ HttpResponse[BatchJob]
155
+ Successful Response
156
+ """
157
+ _response = self._client_wrapper.httpx_client.request(
158
+ f"v1/messages/batches/{jsonable_encoder(batch_id)}",
159
+ method="GET",
160
+ request_options=request_options,
161
+ )
162
+ try:
163
+ if 200 <= _response.status_code < 300:
164
+ _data = typing.cast(
165
+ BatchJob,
166
+ construct_type(
167
+ type_=BatchJob, # type: ignore
168
+ object_=_response.json(),
169
+ ),
170
+ )
171
+ return HttpResponse(response=_response, data=_data)
172
+ if _response.status_code == 422:
173
+ raise UnprocessableEntityError(
174
+ headers=dict(_response.headers),
175
+ body=typing.cast(
176
+ HttpValidationError,
177
+ construct_type(
178
+ type_=HttpValidationError, # type: ignore
179
+ object_=_response.json(),
180
+ ),
181
+ ),
182
+ )
183
+ _response_json = _response.json()
184
+ except JSONDecodeError:
185
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
186
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
187
+
188
+ def cancel(
189
+ self, batch_id: str, *, request_options: typing.Optional[RequestOptions] = None
190
+ ) -> HttpResponse[typing.Optional[typing.Any]]:
191
+ """
192
+ Cancel a batch run.
193
+
194
+ Parameters
195
+ ----------
196
+ batch_id : str
197
+
198
+ request_options : typing.Optional[RequestOptions]
199
+ Request-specific configuration.
200
+
201
+ Returns
202
+ -------
203
+ HttpResponse[typing.Optional[typing.Any]]
204
+ Successful Response
205
+ """
206
+ _response = self._client_wrapper.httpx_client.request(
207
+ f"v1/messages/batches/{jsonable_encoder(batch_id)}/cancel",
208
+ method="PATCH",
209
+ request_options=request_options,
210
+ )
211
+ try:
212
+ if _response is None or not _response.text.strip():
213
+ return HttpResponse(response=_response, data=None)
214
+ if 200 <= _response.status_code < 300:
215
+ _data = typing.cast(
216
+ typing.Optional[typing.Any],
217
+ construct_type(
218
+ type_=typing.Optional[typing.Any], # type: ignore
219
+ object_=_response.json(),
220
+ ),
221
+ )
222
+ return HttpResponse(response=_response, data=_data)
223
+ if _response.status_code == 422:
224
+ raise UnprocessableEntityError(
225
+ headers=dict(_response.headers),
226
+ body=typing.cast(
227
+ HttpValidationError,
228
+ construct_type(
229
+ type_=HttpValidationError, # type: ignore
230
+ object_=_response.json(),
231
+ ),
232
+ ),
233
+ )
234
+ _response_json = _response.json()
235
+ except JSONDecodeError:
236
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
237
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
238
+
239
+
240
+ class AsyncRawBatchesClient:
241
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
242
+ self._client_wrapper = client_wrapper
243
+
244
+ async def list(
245
+ self, *, request_options: typing.Optional[RequestOptions] = None
246
+ ) -> AsyncHttpResponse[typing.List[BatchJob]]:
247
+ """
248
+ List all batch runs.
249
+
250
+ Parameters
251
+ ----------
252
+ request_options : typing.Optional[RequestOptions]
253
+ Request-specific configuration.
254
+
255
+ Returns
256
+ -------
257
+ AsyncHttpResponse[typing.List[BatchJob]]
258
+ Successful Response
259
+ """
260
+ _response = await self._client_wrapper.httpx_client.request(
261
+ "v1/messages/batches",
262
+ method="GET",
263
+ request_options=request_options,
264
+ )
265
+ try:
266
+ if 200 <= _response.status_code < 300:
267
+ _data = typing.cast(
268
+ typing.List[BatchJob],
269
+ construct_type(
270
+ type_=typing.List[BatchJob], # type: ignore
271
+ object_=_response.json(),
272
+ ),
273
+ )
274
+ return AsyncHttpResponse(response=_response, data=_data)
275
+ if _response.status_code == 422:
276
+ raise UnprocessableEntityError(
277
+ headers=dict(_response.headers),
278
+ body=typing.cast(
279
+ HttpValidationError,
280
+ construct_type(
281
+ type_=HttpValidationError, # type: ignore
282
+ object_=_response.json(),
283
+ ),
284
+ ),
285
+ )
286
+ _response_json = _response.json()
287
+ except JSONDecodeError:
288
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
289
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
290
+
291
+ async def create(
292
+ self,
293
+ *,
294
+ requests: typing.Sequence[LettaBatchRequest],
295
+ callback_url: typing.Optional[str] = OMIT,
296
+ request_options: typing.Optional[RequestOptions] = None,
297
+ ) -> AsyncHttpResponse[BatchJob]:
298
+ """
299
+ Submit a batch of agent messages for asynchronous processing.
300
+ Creates a job that will fan out messages to all listed agents and process them in parallel.
301
+
302
+ Parameters
303
+ ----------
304
+ requests : typing.Sequence[LettaBatchRequest]
305
+ List of requests to be processed in batch.
306
+
307
+ callback_url : typing.Optional[str]
308
+ Optional URL to call via POST when the batch completes. The callback payload will be a JSON object with the following fields: {'job_id': string, 'status': string, 'completed_at': string}. Where 'job_id' is the unique batch job identifier, 'status' is the final batch status (e.g., 'completed', 'failed'), and 'completed_at' is an ISO 8601 timestamp indicating when the batch job completed.
309
+
310
+ request_options : typing.Optional[RequestOptions]
311
+ Request-specific configuration.
312
+
313
+ Returns
314
+ -------
315
+ AsyncHttpResponse[BatchJob]
316
+ Successful Response
317
+ """
318
+ _response = await self._client_wrapper.httpx_client.request(
319
+ "v1/messages/batches",
320
+ method="POST",
321
+ json={
322
+ "requests": convert_and_respect_annotation_metadata(
323
+ object_=requests, annotation=typing.Sequence[LettaBatchRequest], direction="write"
324
+ ),
325
+ "callback_url": callback_url,
326
+ },
327
+ headers={
328
+ "content-type": "application/json",
329
+ },
330
+ request_options=request_options,
331
+ omit=OMIT,
332
+ )
333
+ try:
334
+ if 200 <= _response.status_code < 300:
335
+ _data = typing.cast(
336
+ BatchJob,
337
+ construct_type(
338
+ type_=BatchJob, # type: ignore
339
+ object_=_response.json(),
340
+ ),
341
+ )
342
+ return AsyncHttpResponse(response=_response, data=_data)
343
+ if _response.status_code == 422:
344
+ raise UnprocessableEntityError(
345
+ headers=dict(_response.headers),
346
+ body=typing.cast(
347
+ HttpValidationError,
348
+ construct_type(
349
+ type_=HttpValidationError, # type: ignore
350
+ object_=_response.json(),
351
+ ),
352
+ ),
353
+ )
354
+ _response_json = _response.json()
355
+ except JSONDecodeError:
356
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
357
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
358
+
359
+ async def retrieve(
360
+ self, batch_id: str, *, request_options: typing.Optional[RequestOptions] = None
361
+ ) -> AsyncHttpResponse[BatchJob]:
362
+ """
363
+ Get the status of a batch run.
364
+
365
+ Parameters
366
+ ----------
367
+ batch_id : str
368
+
369
+ request_options : typing.Optional[RequestOptions]
370
+ Request-specific configuration.
371
+
372
+ Returns
373
+ -------
374
+ AsyncHttpResponse[BatchJob]
375
+ Successful Response
376
+ """
377
+ _response = await self._client_wrapper.httpx_client.request(
378
+ f"v1/messages/batches/{jsonable_encoder(batch_id)}",
379
+ method="GET",
380
+ request_options=request_options,
381
+ )
382
+ try:
383
+ if 200 <= _response.status_code < 300:
384
+ _data = typing.cast(
385
+ BatchJob,
386
+ construct_type(
387
+ type_=BatchJob, # type: ignore
388
+ object_=_response.json(),
389
+ ),
390
+ )
391
+ return AsyncHttpResponse(response=_response, data=_data)
392
+ if _response.status_code == 422:
393
+ raise UnprocessableEntityError(
394
+ headers=dict(_response.headers),
395
+ body=typing.cast(
396
+ HttpValidationError,
397
+ construct_type(
398
+ type_=HttpValidationError, # type: ignore
399
+ object_=_response.json(),
400
+ ),
401
+ ),
402
+ )
403
+ _response_json = _response.json()
404
+ except JSONDecodeError:
405
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
406
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
407
+
408
+ async def cancel(
409
+ self, batch_id: str, *, request_options: typing.Optional[RequestOptions] = None
410
+ ) -> AsyncHttpResponse[typing.Optional[typing.Any]]:
411
+ """
412
+ Cancel a batch run.
413
+
414
+ Parameters
415
+ ----------
416
+ batch_id : str
417
+
418
+ request_options : typing.Optional[RequestOptions]
419
+ Request-specific configuration.
420
+
421
+ Returns
422
+ -------
423
+ AsyncHttpResponse[typing.Optional[typing.Any]]
424
+ Successful Response
425
+ """
426
+ _response = await self._client_wrapper.httpx_client.request(
427
+ f"v1/messages/batches/{jsonable_encoder(batch_id)}/cancel",
428
+ method="PATCH",
429
+ request_options=request_options,
430
+ )
431
+ try:
432
+ if _response is None or not _response.text.strip():
433
+ return AsyncHttpResponse(response=_response, data=None)
434
+ if 200 <= _response.status_code < 300:
435
+ _data = typing.cast(
436
+ typing.Optional[typing.Any],
437
+ construct_type(
438
+ type_=typing.Optional[typing.Any], # type: ignore
439
+ object_=_response.json(),
440
+ ),
441
+ )
442
+ return AsyncHttpResponse(response=_response, data=_data)
443
+ if _response.status_code == 422:
444
+ raise UnprocessableEntityError(
445
+ headers=dict(_response.headers),
446
+ body=typing.cast(
447
+ HttpValidationError,
448
+ construct_type(
449
+ type_=HttpValidationError, # type: ignore
450
+ object_=_response.json(),
451
+ ),
452
+ ),
453
+ )
454
+ _response_json = _response.json()
455
+ except JSONDecodeError:
456
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
457
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -1,5 +1,7 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ # isort: skip_file
4
+
3
5
  from . import agents
4
6
 
5
7
  __all__ = ["agents"]
@@ -1,2 +1,4 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ # isort: skip_file
4
+
@@ -1,21 +1,27 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
- from ...core.client_wrapper import SyncClientWrapper
4
3
  import typing
4
+
5
+ from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
5
6
  from ...core.request_options import RequestOptions
6
7
  from ...types.agent_state import AgentState
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 ...core.client_wrapper import AsyncClientWrapper
8
+ from .raw_client import AsyncRawAgentsClient, RawAgentsClient
14
9
 
15
10
 
16
11
  class AgentsClient:
17
12
  def __init__(self, *, client_wrapper: SyncClientWrapper):
18
- self._client_wrapper = client_wrapper
13
+ self._raw_client = RawAgentsClient(client_wrapper=client_wrapper)
14
+
15
+ @property
16
+ def with_raw_response(self) -> RawAgentsClient:
17
+ """
18
+ Retrieves a raw implementation of this client that returns raw responses.
19
+
20
+ Returns
21
+ -------
22
+ RawAgentsClient
23
+ """
24
+ return self._raw_client
19
25
 
20
26
  def list(
21
27
  self,
@@ -55,42 +61,26 @@ class AgentsClient:
55
61
  block_id="block_id",
56
62
  )
57
63
  """
58
- _response = self._client_wrapper.httpx_client.request(
59
- f"v1/blocks/{jsonable_encoder(block_id)}/agents",
60
- method="GET",
61
- params={
62
- "include_relationships": include_relationships,
63
- },
64
- request_options=request_options,
64
+ _response = self._raw_client.list(
65
+ block_id, include_relationships=include_relationships, request_options=request_options
65
66
  )
66
- try:
67
- if 200 <= _response.status_code < 300:
68
- return typing.cast(
69
- typing.List[AgentState],
70
- construct_type(
71
- type_=typing.List[AgentState], # type: ignore
72
- object_=_response.json(),
73
- ),
74
- )
75
- if _response.status_code == 422:
76
- raise UnprocessableEntityError(
77
- typing.cast(
78
- HttpValidationError,
79
- construct_type(
80
- type_=HttpValidationError, # type: ignore
81
- object_=_response.json(),
82
- ),
83
- )
84
- )
85
- _response_json = _response.json()
86
- except JSONDecodeError:
87
- raise ApiError(status_code=_response.status_code, body=_response.text)
88
- raise ApiError(status_code=_response.status_code, body=_response_json)
67
+ return _response.data
89
68
 
90
69
 
91
70
  class AsyncAgentsClient:
92
71
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
93
- self._client_wrapper = client_wrapper
72
+ self._raw_client = AsyncRawAgentsClient(client_wrapper=client_wrapper)
73
+
74
+ @property
75
+ def with_raw_response(self) -> AsyncRawAgentsClient:
76
+ """
77
+ Retrieves a raw implementation of this client that returns raw responses.
78
+
79
+ Returns
80
+ -------
81
+ AsyncRawAgentsClient
82
+ """
83
+ return self._raw_client
94
84
 
95
85
  async def list(
96
86
  self,
@@ -138,34 +128,7 @@ class AsyncAgentsClient:
138
128
 
139
129
  asyncio.run(main())
140
130
  """
141
- _response = await self._client_wrapper.httpx_client.request(
142
- f"v1/blocks/{jsonable_encoder(block_id)}/agents",
143
- method="GET",
144
- params={
145
- "include_relationships": include_relationships,
146
- },
147
- request_options=request_options,
131
+ _response = await self._raw_client.list(
132
+ block_id, include_relationships=include_relationships, request_options=request_options
148
133
  )
149
- try:
150
- if 200 <= _response.status_code < 300:
151
- return typing.cast(
152
- typing.List[AgentState],
153
- construct_type(
154
- type_=typing.List[AgentState], # type: ignore
155
- object_=_response.json(),
156
- ),
157
- )
158
- if _response.status_code == 422:
159
- raise UnprocessableEntityError(
160
- typing.cast(
161
- HttpValidationError,
162
- construct_type(
163
- type_=HttpValidationError, # type: ignore
164
- object_=_response.json(),
165
- ),
166
- )
167
- )
168
- _response_json = _response.json()
169
- except JSONDecodeError:
170
- raise ApiError(status_code=_response.status_code, body=_response.text)
171
- raise ApiError(status_code=_response.status_code, body=_response_json)
134
+ return _response.data