letta-client 0.1.233__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 (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 +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 +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 +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 +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.234.dist-info}/METADATA +24 -3
  436. letta_client-0.1.234.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.234.dist-info}/WHEEL +0 -0
@@ -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 .types import GroupCreateManagerConfig, GroupUpdateManagerConfig
4
6
  from . import messages
5
7
  from .messages import LettaStreamingResponse, MessagesModifyRequest, MessagesModifyResponse
@@ -1,22 +1,15 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  import typing
4
- from ..core.client_wrapper import SyncClientWrapper
5
- from .messages.client import MessagesClient
6
- from ..types.manager_type import ManagerType
4
+
5
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
7
6
  from ..core.request_options import RequestOptions
8
7
  from ..types.group import Group
9
- from ..core.unchecked_base_model import construct_type
10
- from ..errors.unprocessable_entity_error import UnprocessableEntityError
11
- from ..types.http_validation_error import HttpValidationError
12
- from json.decoder import JSONDecodeError
13
- from ..core.api_error import ApiError
8
+ from ..types.manager_type import ManagerType
9
+ from .messages.client import AsyncMessagesClient, MessagesClient
10
+ from .raw_client import AsyncRawGroupsClient, RawGroupsClient
14
11
  from .types.group_create_manager_config import GroupCreateManagerConfig
15
- from ..core.serialization import convert_and_respect_annotation_metadata
16
- from ..core.jsonable_encoder import jsonable_encoder
17
12
  from .types.group_update_manager_config import GroupUpdateManagerConfig
18
- from ..core.client_wrapper import AsyncClientWrapper
19
- from .messages.client import AsyncMessagesClient
20
13
 
21
14
  # this is used as the default value for optional parameters
22
15
  OMIT = typing.cast(typing.Any, ...)
@@ -24,8 +17,19 @@ OMIT = typing.cast(typing.Any, ...)
24
17
 
25
18
  class GroupsClient:
26
19
  def __init__(self, *, client_wrapper: SyncClientWrapper):
27
- self._client_wrapper = client_wrapper
28
- self.messages = MessagesClient(client_wrapper=self._client_wrapper)
20
+ self._raw_client = RawGroupsClient(client_wrapper=client_wrapper)
21
+ self.messages = MessagesClient(client_wrapper=client_wrapper)
22
+
23
+ @property
24
+ def with_raw_response(self) -> RawGroupsClient:
25
+ """
26
+ Retrieves a raw implementation of this client that returns raw responses.
27
+
28
+ Returns
29
+ -------
30
+ RawGroupsClient
31
+ """
32
+ return self._raw_client
29
33
 
30
34
  def list(
31
35
  self,
@@ -75,41 +79,15 @@ class GroupsClient:
75
79
  )
76
80
  client.groups.list()
77
81
  """
78
- _response = self._client_wrapper.httpx_client.request(
79
- "v1/groups/",
80
- method="GET",
81
- params={
82
- "manager_type": manager_type,
83
- "before": before,
84
- "after": after,
85
- "limit": limit,
86
- "project_id": project_id,
87
- },
82
+ _response = self._raw_client.list(
83
+ manager_type=manager_type,
84
+ before=before,
85
+ after=after,
86
+ limit=limit,
87
+ project_id=project_id,
88
88
  request_options=request_options,
89
89
  )
90
- try:
91
- if 200 <= _response.status_code < 300:
92
- return typing.cast(
93
- typing.List[Group],
94
- construct_type(
95
- type_=typing.List[Group], # type: ignore
96
- object_=_response.json(),
97
- ),
98
- )
99
- if _response.status_code == 422:
100
- raise UnprocessableEntityError(
101
- typing.cast(
102
- HttpValidationError,
103
- construct_type(
104
- type_=HttpValidationError, # type: ignore
105
- object_=_response.json(),
106
- ),
107
- )
108
- )
109
- _response_json = _response.json()
110
- except JSONDecodeError:
111
- raise ApiError(status_code=_response.status_code, body=_response.text)
112
- raise ApiError(status_code=_response.status_code, body=_response_json)
90
+ return _response.data
113
91
 
114
92
  def create(
115
93
  self,
@@ -162,47 +140,15 @@ class GroupsClient:
162
140
  description="description",
163
141
  )
164
142
  """
165
- _response = self._client_wrapper.httpx_client.request(
166
- "v1/groups/",
167
- method="POST",
168
- json={
169
- "agent_ids": agent_ids,
170
- "description": description,
171
- "manager_config": convert_and_respect_annotation_metadata(
172
- object_=manager_config, annotation=GroupCreateManagerConfig, direction="write"
173
- ),
174
- "project_id": project_id,
175
- "shared_block_ids": shared_block_ids,
176
- },
177
- headers={
178
- "content-type": "application/json",
179
- },
143
+ _response = self._raw_client.create(
144
+ agent_ids=agent_ids,
145
+ description=description,
146
+ manager_config=manager_config,
147
+ project_id=project_id,
148
+ shared_block_ids=shared_block_ids,
180
149
  request_options=request_options,
181
- omit=OMIT,
182
150
  )
183
- try:
184
- if 200 <= _response.status_code < 300:
185
- return typing.cast(
186
- Group,
187
- construct_type(
188
- type_=Group, # type: ignore
189
- object_=_response.json(),
190
- ),
191
- )
192
- if _response.status_code == 422:
193
- raise UnprocessableEntityError(
194
- typing.cast(
195
- HttpValidationError,
196
- construct_type(
197
- type_=HttpValidationError, # type: ignore
198
- object_=_response.json(),
199
- ),
200
- )
201
- )
202
- _response_json = _response.json()
203
- except JSONDecodeError:
204
- raise ApiError(status_code=_response.status_code, body=_response.text)
205
- raise ApiError(status_code=_response.status_code, body=_response_json)
151
+ return _response.data
206
152
 
207
153
  def count(self, *, request_options: typing.Optional[RequestOptions] = None) -> int:
208
154
  """
@@ -228,34 +174,8 @@ class GroupsClient:
228
174
  )
229
175
  client.groups.count()
230
176
  """
231
- _response = self._client_wrapper.httpx_client.request(
232
- "v1/groups/count",
233
- method="GET",
234
- request_options=request_options,
235
- )
236
- try:
237
- if 200 <= _response.status_code < 300:
238
- return typing.cast(
239
- int,
240
- construct_type(
241
- type_=int, # type: ignore
242
- object_=_response.json(),
243
- ),
244
- )
245
- if _response.status_code == 422:
246
- raise UnprocessableEntityError(
247
- typing.cast(
248
- HttpValidationError,
249
- construct_type(
250
- type_=HttpValidationError, # type: ignore
251
- object_=_response.json(),
252
- ),
253
- )
254
- )
255
- _response_json = _response.json()
256
- except JSONDecodeError:
257
- raise ApiError(status_code=_response.status_code, body=_response.text)
258
- raise ApiError(status_code=_response.status_code, body=_response_json)
177
+ _response = self._raw_client.count(request_options=request_options)
178
+ return _response.data
259
179
 
260
180
  def retrieve(self, group_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Group:
261
181
  """
@@ -285,34 +205,8 @@ class GroupsClient:
285
205
  group_id="group_id",
286
206
  )
287
207
  """
288
- _response = self._client_wrapper.httpx_client.request(
289
- f"v1/groups/{jsonable_encoder(group_id)}",
290
- method="GET",
291
- request_options=request_options,
292
- )
293
- try:
294
- if 200 <= _response.status_code < 300:
295
- return typing.cast(
296
- Group,
297
- construct_type(
298
- type_=Group, # type: ignore
299
- object_=_response.json(),
300
- ),
301
- )
302
- if _response.status_code == 422:
303
- raise UnprocessableEntityError(
304
- typing.cast(
305
- HttpValidationError,
306
- construct_type(
307
- type_=HttpValidationError, # type: ignore
308
- object_=_response.json(),
309
- ),
310
- )
311
- )
312
- _response_json = _response.json()
313
- except JSONDecodeError:
314
- raise ApiError(status_code=_response.status_code, body=_response.text)
315
- raise ApiError(status_code=_response.status_code, body=_response_json)
208
+ _response = self._raw_client.retrieve(group_id, request_options=request_options)
209
+ return _response.data
316
210
 
317
211
  def delete(
318
212
  self, group_id: str, *, request_options: typing.Optional[RequestOptions] = None
@@ -344,34 +238,8 @@ class GroupsClient:
344
238
  group_id="group_id",
345
239
  )
346
240
  """
347
- _response = self._client_wrapper.httpx_client.request(
348
- f"v1/groups/{jsonable_encoder(group_id)}",
349
- method="DELETE",
350
- request_options=request_options,
351
- )
352
- try:
353
- if 200 <= _response.status_code < 300:
354
- return typing.cast(
355
- typing.Optional[typing.Any],
356
- construct_type(
357
- type_=typing.Optional[typing.Any], # type: ignore
358
- object_=_response.json(),
359
- ),
360
- )
361
- if _response.status_code == 422:
362
- raise UnprocessableEntityError(
363
- typing.cast(
364
- HttpValidationError,
365
- construct_type(
366
- type_=HttpValidationError, # type: ignore
367
- object_=_response.json(),
368
- ),
369
- )
370
- )
371
- _response_json = _response.json()
372
- except JSONDecodeError:
373
- raise ApiError(status_code=_response.status_code, body=_response.text)
374
- raise ApiError(status_code=_response.status_code, body=_response_json)
241
+ _response = self._raw_client.delete(group_id, request_options=request_options)
242
+ return _response.data
375
243
 
376
244
  def modify(
377
245
  self,
@@ -426,53 +294,33 @@ class GroupsClient:
426
294
  group_id="group_id",
427
295
  )
428
296
  """
429
- _response = self._client_wrapper.httpx_client.request(
430
- f"v1/groups/{jsonable_encoder(group_id)}",
431
- method="PATCH",
432
- json={
433
- "agent_ids": agent_ids,
434
- "description": description,
435
- "manager_config": convert_and_respect_annotation_metadata(
436
- object_=manager_config, annotation=GroupUpdateManagerConfig, direction="write"
437
- ),
438
- "project_id": project_id,
439
- "shared_block_ids": shared_block_ids,
440
- },
441
- headers={
442
- "content-type": "application/json",
443
- },
297
+ _response = self._raw_client.modify(
298
+ group_id,
299
+ agent_ids=agent_ids,
300
+ description=description,
301
+ manager_config=manager_config,
302
+ project_id=project_id,
303
+ shared_block_ids=shared_block_ids,
444
304
  request_options=request_options,
445
- omit=OMIT,
446
305
  )
447
- try:
448
- if 200 <= _response.status_code < 300:
449
- return typing.cast(
450
- Group,
451
- construct_type(
452
- type_=Group, # type: ignore
453
- object_=_response.json(),
454
- ),
455
- )
456
- if _response.status_code == 422:
457
- raise UnprocessableEntityError(
458
- typing.cast(
459
- HttpValidationError,
460
- construct_type(
461
- type_=HttpValidationError, # type: ignore
462
- object_=_response.json(),
463
- ),
464
- )
465
- )
466
- _response_json = _response.json()
467
- except JSONDecodeError:
468
- raise ApiError(status_code=_response.status_code, body=_response.text)
469
- raise ApiError(status_code=_response.status_code, body=_response_json)
306
+ return _response.data
470
307
 
471
308
 
472
309
  class AsyncGroupsClient:
473
310
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
474
- self._client_wrapper = client_wrapper
475
- self.messages = AsyncMessagesClient(client_wrapper=self._client_wrapper)
311
+ self._raw_client = AsyncRawGroupsClient(client_wrapper=client_wrapper)
312
+ self.messages = AsyncMessagesClient(client_wrapper=client_wrapper)
313
+
314
+ @property
315
+ def with_raw_response(self) -> AsyncRawGroupsClient:
316
+ """
317
+ Retrieves a raw implementation of this client that returns raw responses.
318
+
319
+ Returns
320
+ -------
321
+ AsyncRawGroupsClient
322
+ """
323
+ return self._raw_client
476
324
 
477
325
  async def list(
478
326
  self,
@@ -530,41 +378,15 @@ class AsyncGroupsClient:
530
378
 
531
379
  asyncio.run(main())
532
380
  """
533
- _response = await self._client_wrapper.httpx_client.request(
534
- "v1/groups/",
535
- method="GET",
536
- params={
537
- "manager_type": manager_type,
538
- "before": before,
539
- "after": after,
540
- "limit": limit,
541
- "project_id": project_id,
542
- },
381
+ _response = await self._raw_client.list(
382
+ manager_type=manager_type,
383
+ before=before,
384
+ after=after,
385
+ limit=limit,
386
+ project_id=project_id,
543
387
  request_options=request_options,
544
388
  )
545
- try:
546
- if 200 <= _response.status_code < 300:
547
- return typing.cast(
548
- typing.List[Group],
549
- construct_type(
550
- type_=typing.List[Group], # type: ignore
551
- object_=_response.json(),
552
- ),
553
- )
554
- if _response.status_code == 422:
555
- raise UnprocessableEntityError(
556
- typing.cast(
557
- HttpValidationError,
558
- construct_type(
559
- type_=HttpValidationError, # type: ignore
560
- object_=_response.json(),
561
- ),
562
- )
563
- )
564
- _response_json = _response.json()
565
- except JSONDecodeError:
566
- raise ApiError(status_code=_response.status_code, body=_response.text)
567
- raise ApiError(status_code=_response.status_code, body=_response_json)
389
+ return _response.data
568
390
 
569
391
  async def create(
570
392
  self,
@@ -625,47 +447,15 @@ class AsyncGroupsClient:
625
447
 
626
448
  asyncio.run(main())
627
449
  """
628
- _response = await self._client_wrapper.httpx_client.request(
629
- "v1/groups/",
630
- method="POST",
631
- json={
632
- "agent_ids": agent_ids,
633
- "description": description,
634
- "manager_config": convert_and_respect_annotation_metadata(
635
- object_=manager_config, annotation=GroupCreateManagerConfig, direction="write"
636
- ),
637
- "project_id": project_id,
638
- "shared_block_ids": shared_block_ids,
639
- },
640
- headers={
641
- "content-type": "application/json",
642
- },
450
+ _response = await self._raw_client.create(
451
+ agent_ids=agent_ids,
452
+ description=description,
453
+ manager_config=manager_config,
454
+ project_id=project_id,
455
+ shared_block_ids=shared_block_ids,
643
456
  request_options=request_options,
644
- omit=OMIT,
645
457
  )
646
- try:
647
- if 200 <= _response.status_code < 300:
648
- return typing.cast(
649
- Group,
650
- construct_type(
651
- type_=Group, # type: ignore
652
- object_=_response.json(),
653
- ),
654
- )
655
- if _response.status_code == 422:
656
- raise UnprocessableEntityError(
657
- typing.cast(
658
- HttpValidationError,
659
- construct_type(
660
- type_=HttpValidationError, # type: ignore
661
- object_=_response.json(),
662
- ),
663
- )
664
- )
665
- _response_json = _response.json()
666
- except JSONDecodeError:
667
- raise ApiError(status_code=_response.status_code, body=_response.text)
668
- raise ApiError(status_code=_response.status_code, body=_response_json)
458
+ return _response.data
669
459
 
670
460
  async def count(self, *, request_options: typing.Optional[RequestOptions] = None) -> int:
671
461
  """
@@ -699,34 +489,8 @@ class AsyncGroupsClient:
699
489
 
700
490
  asyncio.run(main())
701
491
  """
702
- _response = await self._client_wrapper.httpx_client.request(
703
- "v1/groups/count",
704
- method="GET",
705
- request_options=request_options,
706
- )
707
- try:
708
- if 200 <= _response.status_code < 300:
709
- return typing.cast(
710
- int,
711
- construct_type(
712
- type_=int, # type: ignore
713
- object_=_response.json(),
714
- ),
715
- )
716
- if _response.status_code == 422:
717
- raise UnprocessableEntityError(
718
- typing.cast(
719
- HttpValidationError,
720
- construct_type(
721
- type_=HttpValidationError, # type: ignore
722
- object_=_response.json(),
723
- ),
724
- )
725
- )
726
- _response_json = _response.json()
727
- except JSONDecodeError:
728
- raise ApiError(status_code=_response.status_code, body=_response.text)
729
- raise ApiError(status_code=_response.status_code, body=_response_json)
492
+ _response = await self._raw_client.count(request_options=request_options)
493
+ return _response.data
730
494
 
731
495
  async def retrieve(self, group_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Group:
732
496
  """
@@ -764,34 +528,8 @@ class AsyncGroupsClient:
764
528
 
765
529
  asyncio.run(main())
766
530
  """
767
- _response = await self._client_wrapper.httpx_client.request(
768
- f"v1/groups/{jsonable_encoder(group_id)}",
769
- method="GET",
770
- request_options=request_options,
771
- )
772
- try:
773
- if 200 <= _response.status_code < 300:
774
- return typing.cast(
775
- Group,
776
- construct_type(
777
- type_=Group, # type: ignore
778
- object_=_response.json(),
779
- ),
780
- )
781
- if _response.status_code == 422:
782
- raise UnprocessableEntityError(
783
- typing.cast(
784
- HttpValidationError,
785
- construct_type(
786
- type_=HttpValidationError, # type: ignore
787
- object_=_response.json(),
788
- ),
789
- )
790
- )
791
- _response_json = _response.json()
792
- except JSONDecodeError:
793
- raise ApiError(status_code=_response.status_code, body=_response.text)
794
- raise ApiError(status_code=_response.status_code, body=_response_json)
531
+ _response = await self._raw_client.retrieve(group_id, request_options=request_options)
532
+ return _response.data
795
533
 
796
534
  async def delete(
797
535
  self, group_id: str, *, request_options: typing.Optional[RequestOptions] = None
@@ -831,34 +569,8 @@ class AsyncGroupsClient:
831
569
 
832
570
  asyncio.run(main())
833
571
  """
834
- _response = await self._client_wrapper.httpx_client.request(
835
- f"v1/groups/{jsonable_encoder(group_id)}",
836
- method="DELETE",
837
- request_options=request_options,
838
- )
839
- try:
840
- if 200 <= _response.status_code < 300:
841
- return typing.cast(
842
- typing.Optional[typing.Any],
843
- construct_type(
844
- type_=typing.Optional[typing.Any], # type: ignore
845
- object_=_response.json(),
846
- ),
847
- )
848
- if _response.status_code == 422:
849
- raise UnprocessableEntityError(
850
- typing.cast(
851
- HttpValidationError,
852
- construct_type(
853
- type_=HttpValidationError, # type: ignore
854
- object_=_response.json(),
855
- ),
856
- )
857
- )
858
- _response_json = _response.json()
859
- except JSONDecodeError:
860
- raise ApiError(status_code=_response.status_code, body=_response.text)
861
- raise ApiError(status_code=_response.status_code, body=_response_json)
572
+ _response = await self._raw_client.delete(group_id, request_options=request_options)
573
+ return _response.data
862
574
 
863
575
  async def modify(
864
576
  self,
@@ -921,44 +633,13 @@ class AsyncGroupsClient:
921
633
 
922
634
  asyncio.run(main())
923
635
  """
924
- _response = await self._client_wrapper.httpx_client.request(
925
- f"v1/groups/{jsonable_encoder(group_id)}",
926
- method="PATCH",
927
- json={
928
- "agent_ids": agent_ids,
929
- "description": description,
930
- "manager_config": convert_and_respect_annotation_metadata(
931
- object_=manager_config, annotation=GroupUpdateManagerConfig, direction="write"
932
- ),
933
- "project_id": project_id,
934
- "shared_block_ids": shared_block_ids,
935
- },
936
- headers={
937
- "content-type": "application/json",
938
- },
636
+ _response = await self._raw_client.modify(
637
+ group_id,
638
+ agent_ids=agent_ids,
639
+ description=description,
640
+ manager_config=manager_config,
641
+ project_id=project_id,
642
+ shared_block_ids=shared_block_ids,
939
643
  request_options=request_options,
940
- omit=OMIT,
941
644
  )
942
- try:
943
- if 200 <= _response.status_code < 300:
944
- return typing.cast(
945
- Group,
946
- construct_type(
947
- type_=Group, # type: ignore
948
- object_=_response.json(),
949
- ),
950
- )
951
- if _response.status_code == 422:
952
- raise UnprocessableEntityError(
953
- typing.cast(
954
- HttpValidationError,
955
- construct_type(
956
- type_=HttpValidationError, # type: ignore
957
- object_=_response.json(),
958
- ),
959
- )
960
- )
961
- _response_json = _response.json()
962
- except JSONDecodeError:
963
- raise ApiError(status_code=_response.status_code, body=_response.text)
964
- raise ApiError(status_code=_response.status_code, body=_response_json)
645
+ return _response.data
@@ -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 .types import LettaStreamingResponse, MessagesModifyRequest, MessagesModifyResponse
4
6
 
5
7
  __all__ = ["LettaStreamingResponse", "MessagesModifyRequest", "MessagesModifyResponse"]