letta-client 1.0.0a4__py3-none-any.whl → 1.0.0a6__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 (1540) hide show
  1. letta_client-1.0.0a6.dist-info/METADATA +456 -0
  2. letta_client-1.0.0a6.dist-info/RECORD +420 -0
  3. letta_client-1.0.0a6.dist-info/WHEEL +4 -0
  4. letta_client-1.0.0a6.dist-info/licenses/LICENSE +201 -0
  5. letta_sdk/__init__.py +104 -0
  6. letta_sdk/_base_client.py +1995 -0
  7. letta_sdk/_client.py +679 -0
  8. letta_sdk/_compat.py +219 -0
  9. letta_sdk/_constants.py +14 -0
  10. letta_sdk/_exceptions.py +108 -0
  11. letta_sdk/_files.py +123 -0
  12. letta_sdk/_models.py +835 -0
  13. letta_sdk/_qs.py +150 -0
  14. letta_sdk/_resource.py +43 -0
  15. letta_sdk/_response.py +830 -0
  16. letta_sdk/_streaming.py +333 -0
  17. letta_sdk/_types.py +260 -0
  18. letta_sdk/_utils/__init__.py +64 -0
  19. letta_sdk/_utils/_compat.py +45 -0
  20. letta_sdk/_utils/_datetime_parse.py +136 -0
  21. letta_sdk/_utils/_logs.py +25 -0
  22. letta_sdk/_utils/_proxy.py +65 -0
  23. letta_sdk/_utils/_reflection.py +42 -0
  24. letta_sdk/_utils/_resources_proxy.py +24 -0
  25. letta_sdk/_utils/_streams.py +12 -0
  26. letta_sdk/_utils/_sync.py +86 -0
  27. letta_sdk/_utils/_transform.py +457 -0
  28. letta_sdk/_utils/_typing.py +156 -0
  29. letta_sdk/_utils/_utils.py +421 -0
  30. letta_sdk/_version.py +4 -0
  31. letta_sdk/lib/.keep +4 -0
  32. letta_sdk/resources/__init__.py +327 -0
  33. letta_sdk/resources/_internal_templates/__init__.py +33 -0
  34. letta_sdk/resources/_internal_templates/_internal_templates.py +961 -0
  35. letta_sdk/resources/_internal_templates/deployment.py +268 -0
  36. letta_sdk/resources/agents/__init__.py +117 -0
  37. letta_sdk/resources/agents/agents.py +2501 -0
  38. letta_sdk/resources/agents/archival_memory.py +581 -0
  39. letta_sdk/resources/agents/core_memory/__init__.py +33 -0
  40. letta_sdk/resources/agents/core_memory/blocks.py +627 -0
  41. letta_sdk/resources/agents/core_memory/core_memory.py +278 -0
  42. letta_sdk/resources/agents/files.py +475 -0
  43. letta_sdk/resources/agents/folders.py +332 -0
  44. letta_sdk/resources/agents/messages.py +1712 -0
  45. letta_sdk/resources/agents/sources.py +332 -0
  46. letta_sdk/resources/agents/tools.py +432 -0
  47. letta_sdk/resources/archives.py +325 -0
  48. letta_sdk/resources/blocks.py +1087 -0
  49. letta_sdk/resources/client_side_access_tokens.py +402 -0
  50. letta_sdk/resources/embeddings.py +164 -0
  51. letta_sdk/resources/folders.py +1562 -0
  52. letta_sdk/resources/groups/__init__.py +33 -0
  53. letta_sdk/resources/groups/groups.py +833 -0
  54. letta_sdk/resources/groups/messages.py +949 -0
  55. letta_sdk/resources/health.py +135 -0
  56. letta_sdk/resources/identities.py +1254 -0
  57. letta_sdk/resources/jobs.py +610 -0
  58. letta_sdk/resources/messages/__init__.py +33 -0
  59. letta_sdk/resources/messages/batches.py +646 -0
  60. letta_sdk/resources/messages/messages.py +102 -0
  61. letta_sdk/resources/models.py +300 -0
  62. letta_sdk/resources/projects.py +189 -0
  63. letta_sdk/resources/providers.py +800 -0
  64. letta_sdk/resources/runs.py +1016 -0
  65. letta_sdk/resources/sources/__init__.py +33 -0
  66. letta_sdk/resources/sources/files.py +341 -0
  67. letta_sdk/resources/sources/sources.py +1371 -0
  68. letta_sdk/resources/steps.py +784 -0
  69. letta_sdk/resources/tags.py +240 -0
  70. letta_sdk/resources/telemetry.py +180 -0
  71. letta_sdk/resources/templates.py +1310 -0
  72. letta_sdk/resources/tools/__init__.py +47 -0
  73. letta_sdk/resources/tools/composio/__init__.py +33 -0
  74. letta_sdk/resources/tools/composio/apps.py +214 -0
  75. letta_sdk/resources/tools/composio/composio.py +201 -0
  76. letta_sdk/resources/tools/mcp/__init__.py +47 -0
  77. letta_sdk/resources/tools/mcp/mcp.py +134 -0
  78. letta_sdk/resources/tools/mcp/oauth.py +214 -0
  79. letta_sdk/resources/tools/mcp/servers/__init__.py +33 -0
  80. letta_sdk/resources/tools/mcp/servers/servers.py +1785 -0
  81. letta_sdk/resources/tools/mcp/servers/tools.py +263 -0
  82. letta_sdk/resources/tools/tools.py +1373 -0
  83. letta_sdk/resources/voice_beta/__init__.py +33 -0
  84. letta_sdk/resources/voice_beta/chat.py +170 -0
  85. letta_sdk/resources/voice_beta/voice_beta.py +102 -0
  86. letta_sdk/types/__init__.py +226 -0
  87. letta_sdk/types/_internal_templates/__init__.py +7 -0
  88. letta_sdk/types/_internal_templates/deployment_delete_response.py +17 -0
  89. letta_sdk/types/_internal_templates/deployment_list_entities_params.py +15 -0
  90. letta_sdk/types/_internal_templates/deployment_list_entities_response.py +31 -0
  91. letta_sdk/types/agent_count_response.py +7 -0
  92. letta_sdk/types/agent_create_params.py +215 -0
  93. letta_sdk/types/agent_environment_variable.py +37 -0
  94. letta_sdk/types/agent_export_params.py +17 -0
  95. letta_sdk/types/agent_export_response.py +7 -0
  96. letta_sdk/types/agent_import_params.py +39 -0
  97. letta_sdk/types/agent_import_response.py +12 -0
  98. letta_sdk/types/agent_list_groups_params.py +13 -0
  99. letta_sdk/types/agent_list_groups_response.py +10 -0
  100. letta_sdk/types/agent_list_params.py +78 -0
  101. letta_sdk/types/agent_list_response.py +10 -0
  102. letta_sdk/types/agent_migrate_params.py +19 -0
  103. letta_sdk/types/agent_migrate_response.py +11 -0
  104. letta_sdk/types/agent_reset_messages_params.py +12 -0
  105. letta_sdk/types/agent_retrieve_context_response.py +110 -0
  106. letta_sdk/types/agent_retrieve_params.py +19 -0
  107. letta_sdk/types/agent_search_params.py +78 -0
  108. letta_sdk/types/agent_search_response.py +16 -0
  109. letta_sdk/types/agent_state.py +170 -0
  110. letta_sdk/types/agent_summarize_params.py +12 -0
  111. letta_sdk/types/agent_type.py +16 -0
  112. letta_sdk/types/agent_update_params.py +149 -0
  113. letta_sdk/types/agents/__init__.py +85 -0
  114. letta_sdk/types/agents/approval_create_param.py +22 -0
  115. letta_sdk/types/agents/approval_request_message.py +39 -0
  116. letta_sdk/types/agents/approval_response_message.py +41 -0
  117. letta_sdk/types/agents/archival_memory_create_params.py +23 -0
  118. letta_sdk/types/agents/archival_memory_create_response.py +10 -0
  119. letta_sdk/types/agents/archival_memory_list_params.py +28 -0
  120. letta_sdk/types/agents/archival_memory_list_response.py +10 -0
  121. letta_sdk/types/agents/archival_memory_search_params.py +35 -0
  122. letta_sdk/types/agents/archival_memory_search_response.py +26 -0
  123. letta_sdk/types/agents/assistant_message.py +39 -0
  124. letta_sdk/types/agents/core_memory/__init__.py +7 -0
  125. letta_sdk/types/agents/core_memory/block.py +60 -0
  126. letta_sdk/types/agents/core_memory/block_list_response.py +10 -0
  127. letta_sdk/types/agents/core_memory/block_update_params.py +54 -0
  128. letta_sdk/types/agents/core_memory_retrieve_variables_response.py +11 -0
  129. letta_sdk/types/agents/file_close_all_response.py +8 -0
  130. letta_sdk/types/agents/file_list_params.py +19 -0
  131. letta_sdk/types/agents/file_list_response.py +51 -0
  132. letta_sdk/types/agents/file_open_response.py +8 -0
  133. letta_sdk/types/agents/folder_list_response.py +10 -0
  134. letta_sdk/types/agents/hidden_reasoning_message.py +36 -0
  135. letta_sdk/types/agents/image_content.py +67 -0
  136. letta_sdk/types/agents/image_content_param.py +64 -0
  137. letta_sdk/types/agents/job_status.py +7 -0
  138. letta_sdk/types/agents/job_type.py +7 -0
  139. letta_sdk/types/agents/letta_assistant_message_content_union.py +16 -0
  140. letta_sdk/types/agents/letta_assistant_message_content_union_param.py +15 -0
  141. letta_sdk/types/agents/letta_message_union.py +32 -0
  142. letta_sdk/types/agents/letta_request_param.py +45 -0
  143. letta_sdk/types/agents/letta_response.py +52 -0
  144. letta_sdk/types/agents/letta_streaming_request_param.py +60 -0
  145. letta_sdk/types/agents/letta_user_message_content_union.py +14 -0
  146. letta_sdk/types/agents/letta_user_message_content_union_param.py +13 -0
  147. letta_sdk/types/agents/memory.py +92 -0
  148. letta_sdk/types/agents/message.py +149 -0
  149. letta_sdk/types/agents/message_cancel_params.py +15 -0
  150. letta_sdk/types/agents/message_cancel_response.py +8 -0
  151. letta_sdk/types/agents/message_list_params.py +37 -0
  152. letta_sdk/types/agents/message_list_response.py +10 -0
  153. letta_sdk/types/agents/message_preview_raw_payload_params.py +103 -0
  154. letta_sdk/types/agents/message_preview_raw_payload_response.py +8 -0
  155. letta_sdk/types/agents/message_role.py +7 -0
  156. letta_sdk/types/agents/message_search_params.py +38 -0
  157. letta_sdk/types/agents/message_search_response.py +29 -0
  158. letta_sdk/types/agents/message_send_async_params.py +49 -0
  159. letta_sdk/types/agents/message_send_params.py +46 -0
  160. letta_sdk/types/agents/message_send_stream_params.py +61 -0
  161. letta_sdk/types/agents/message_type.py +17 -0
  162. letta_sdk/types/agents/message_update_params.py +66 -0
  163. letta_sdk/types/agents/message_update_response.py +32 -0
  164. letta_sdk/types/agents/omitted_reasoning_content.py +13 -0
  165. letta_sdk/types/agents/omitted_reasoning_content_param.py +12 -0
  166. letta_sdk/types/agents/reasoning_content.py +25 -0
  167. letta_sdk/types/agents/reasoning_content_param.py +25 -0
  168. letta_sdk/types/agents/reasoning_message.py +38 -0
  169. letta_sdk/types/agents/redacted_reasoning_content.py +16 -0
  170. letta_sdk/types/agents/redacted_reasoning_content_param.py +15 -0
  171. letta_sdk/types/agents/run.py +84 -0
  172. letta_sdk/types/agents/source_list_response.py +10 -0
  173. letta_sdk/types/agents/system_message.py +35 -0
  174. letta_sdk/types/agents/text_content.py +16 -0
  175. letta_sdk/types/agents/text_content_param.py +15 -0
  176. letta_sdk/types/agents/tool_call.py +13 -0
  177. letta_sdk/types/agents/tool_call_content.py +25 -0
  178. letta_sdk/types/agents/tool_call_content_param.py +25 -0
  179. letta_sdk/types/agents/tool_call_delta.py +15 -0
  180. letta_sdk/types/agents/tool_call_message.py +38 -0
  181. letta_sdk/types/agents/tool_list_response.py +10 -0
  182. letta_sdk/types/agents/tool_modify_approval_params.py +13 -0
  183. letta_sdk/types/agents/tool_return.py +19 -0
  184. letta_sdk/types/agents/tool_return_content.py +22 -0
  185. letta_sdk/types/agents/tool_return_content_param.py +21 -0
  186. letta_sdk/types/agents/update_assistant_message_param.py +20 -0
  187. letta_sdk/types/agents/update_reasoning_message_param.py +13 -0
  188. letta_sdk/types/agents/update_system_message_param.py +17 -0
  189. letta_sdk/types/agents/update_user_message_param.py +20 -0
  190. letta_sdk/types/agents/user_message.py +39 -0
  191. letta_sdk/types/archive.py +38 -0
  192. letta_sdk/types/archive_retrieve_params.py +37 -0
  193. letta_sdk/types/archive_retrieve_response.py +10 -0
  194. letta_sdk/types/archive_update_params.py +14 -0
  195. letta_sdk/types/block_count_response.py +7 -0
  196. letta_sdk/types/block_create_params.py +51 -0
  197. letta_sdk/types/block_list_agents_params.py +43 -0
  198. letta_sdk/types/block_list_agents_response.py +10 -0
  199. letta_sdk/types/block_list_params.py +89 -0
  200. letta_sdk/types/block_list_response.py +10 -0
  201. letta_sdk/types/block_update_params.py +52 -0
  202. letta_sdk/types/child_tool_rule.py +21 -0
  203. letta_sdk/types/child_tool_rule_param.py +23 -0
  204. letta_sdk/types/client_side_access_token_create_params.py +32 -0
  205. letta_sdk/types/client_side_access_token_create_response.py +34 -0
  206. letta_sdk/types/client_side_access_token_delete_params.py +11 -0
  207. letta_sdk/types/client_side_access_token_list_params.py +23 -0
  208. letta_sdk/types/client_side_access_token_list_response.py +40 -0
  209. letta_sdk/types/conditional_tool_rule.py +27 -0
  210. letta_sdk/types/conditional_tool_rule_param.py +27 -0
  211. letta_sdk/types/continue_tool_rule.py +18 -0
  212. letta_sdk/types/continue_tool_rule_param.py +18 -0
  213. letta_sdk/types/create_block_param.py +51 -0
  214. letta_sdk/types/duplicate_file_handling.py +7 -0
  215. letta_sdk/types/dynamic_manager_param.py +18 -0
  216. letta_sdk/types/embedding_config.py +60 -0
  217. letta_sdk/types/embedding_config_param.py +62 -0
  218. letta_sdk/types/embedding_get_total_storage_size_response.py +7 -0
  219. letta_sdk/types/file_metadata.py +65 -0
  220. letta_sdk/types/file_processing_status.py +7 -0
  221. letta_sdk/types/folder.py +41 -0
  222. letta_sdk/types/folder_count_response.py +7 -0
  223. letta_sdk/types/folder_create_params.py +33 -0
  224. letta_sdk/types/folder_get_by_name_response.py +7 -0
  225. letta_sdk/types/folder_list_agents_params.py +34 -0
  226. letta_sdk/types/folder_list_agents_response.py +8 -0
  227. letta_sdk/types/folder_list_files_params.py +37 -0
  228. letta_sdk/types/folder_list_files_response.py +10 -0
  229. letta_sdk/types/folder_list_params.py +37 -0
  230. letta_sdk/types/folder_list_passages_params.py +34 -0
  231. letta_sdk/types/folder_list_passages_response.py +10 -0
  232. letta_sdk/types/folder_list_response.py +10 -0
  233. letta_sdk/types/folder_retrieve_metadata_params.py +11 -0
  234. letta_sdk/types/folder_update_params.py +27 -0
  235. letta_sdk/types/folder_upload_file_params.py +21 -0
  236. letta_sdk/types/group.py +61 -0
  237. letta_sdk/types/group_count_response.py +7 -0
  238. letta_sdk/types/group_create_params.py +44 -0
  239. letta_sdk/types/group_list_params.py +42 -0
  240. letta_sdk/types/group_list_response.py +10 -0
  241. letta_sdk/types/group_update_params.py +93 -0
  242. letta_sdk/types/groups/__init__.py +10 -0
  243. letta_sdk/types/groups/message_list_params.py +43 -0
  244. letta_sdk/types/groups/message_list_response.py +10 -0
  245. letta_sdk/types/groups/message_send_params.py +46 -0
  246. letta_sdk/types/groups/message_send_stream_params.py +61 -0
  247. letta_sdk/types/groups/message_update_params.py +66 -0
  248. letta_sdk/types/groups/message_update_response.py +32 -0
  249. letta_sdk/types/health_check_response.py +11 -0
  250. letta_sdk/types/identity.py +35 -0
  251. letta_sdk/types/identity_count_response.py +7 -0
  252. letta_sdk/types/identity_create_params.py +39 -0
  253. letta_sdk/types/identity_list_agents_params.py +34 -0
  254. letta_sdk/types/identity_list_agents_response.py +10 -0
  255. letta_sdk/types/identity_list_blocks_params.py +34 -0
  256. letta_sdk/types/identity_list_blocks_response.py +10 -0
  257. letta_sdk/types/identity_list_params.py +45 -0
  258. letta_sdk/types/identity_list_response.py +10 -0
  259. letta_sdk/types/identity_modify_params.py +32 -0
  260. letta_sdk/types/identity_property.py +19 -0
  261. letta_sdk/types/identity_property_param.py +19 -0
  262. letta_sdk/types/identity_type.py +7 -0
  263. letta_sdk/types/identity_upsert_params.py +39 -0
  264. letta_sdk/types/identity_upsert_properties_params.py +14 -0
  265. letta_sdk/types/init_tool_rule.py +21 -0
  266. letta_sdk/types/init_tool_rule_param.py +21 -0
  267. letta_sdk/types/internal_template_create_agent_params.py +217 -0
  268. letta_sdk/types/internal_template_create_block_params.py +54 -0
  269. letta_sdk/types/internal_template_create_group_params.py +49 -0
  270. letta_sdk/types/job.py +61 -0
  271. letta_sdk/types/job_list_active_params.py +28 -0
  272. letta_sdk/types/job_list_active_response.py +10 -0
  273. letta_sdk/types/job_list_params.py +31 -0
  274. letta_sdk/types/job_list_response.py +10 -0
  275. letta_sdk/types/json_object_response_format.py +13 -0
  276. letta_sdk/types/json_object_response_format_param.py +12 -0
  277. letta_sdk/types/json_schema_response_format.py +16 -0
  278. letta_sdk/types/json_schema_response_format_param.py +16 -0
  279. letta_sdk/types/letta_message_content_union_param.py +26 -0
  280. letta_sdk/types/llm_config.py +110 -0
  281. letta_sdk/types/llm_config_param.py +111 -0
  282. letta_sdk/types/manager_type.py +7 -0
  283. letta_sdk/types/max_count_per_step_tool_rule.py +24 -0
  284. letta_sdk/types/max_count_per_step_tool_rule_param.py +24 -0
  285. letta_sdk/types/message_create_param.py +36 -0
  286. letta_sdk/types/messages/__init__.py +10 -0
  287. letta_sdk/types/messages/batch_create_params.py +64 -0
  288. letta_sdk/types/messages/batch_job.py +60 -0
  289. letta_sdk/types/messages/batch_list_messages_params.py +37 -0
  290. letta_sdk/types/messages/batch_list_messages_response.py +12 -0
  291. letta_sdk/types/messages/batch_list_params.py +34 -0
  292. letta_sdk/types/messages/batch_list_response.py +10 -0
  293. letta_sdk/types/model_list_embedding_response.py +10 -0
  294. letta_sdk/types/model_list_params.py +19 -0
  295. letta_sdk/types/model_list_response.py +10 -0
  296. letta_sdk/types/npm_requirement.py +15 -0
  297. letta_sdk/types/npm_requirement_param.py +16 -0
  298. letta_sdk/types/organization_sources_stats.py +49 -0
  299. letta_sdk/types/parent_tool_rule.py +21 -0
  300. letta_sdk/types/parent_tool_rule_param.py +23 -0
  301. letta_sdk/types/passage.py +56 -0
  302. letta_sdk/types/pip_requirement.py +15 -0
  303. letta_sdk/types/pip_requirement_param.py +16 -0
  304. letta_sdk/types/project_list_params.py +16 -0
  305. letta_sdk/types/project_list_response.py +23 -0
  306. letta_sdk/types/provider.py +42 -0
  307. letta_sdk/types/provider_category.py +7 -0
  308. letta_sdk/types/provider_check_params.py +30 -0
  309. letta_sdk/types/provider_create_params.py +33 -0
  310. letta_sdk/types/provider_list_params.py +42 -0
  311. letta_sdk/types/provider_list_response.py +10 -0
  312. letta_sdk/types/provider_trace.py +34 -0
  313. letta_sdk/types/provider_type.py +25 -0
  314. letta_sdk/types/provider_update_params.py +25 -0
  315. letta_sdk/types/required_before_exit_tool_rule.py +18 -0
  316. letta_sdk/types/required_before_exit_tool_rule_param.py +18 -0
  317. letta_sdk/types/requires_approval_tool_rule.py +21 -0
  318. letta_sdk/types/requires_approval_tool_rule_param.py +21 -0
  319. letta_sdk/types/round_robin_manager_param.py +14 -0
  320. letta_sdk/types/run_list_active_params.py +18 -0
  321. letta_sdk/types/run_list_active_response.py +10 -0
  322. letta_sdk/types/run_list_messages_params.py +31 -0
  323. letta_sdk/types/run_list_messages_response.py +10 -0
  324. letta_sdk/types/run_list_params.py +40 -0
  325. letta_sdk/types/run_list_response.py +10 -0
  326. letta_sdk/types/run_list_steps_params.py +25 -0
  327. letta_sdk/types/run_list_steps_response.py +10 -0
  328. letta_sdk/types/run_retrieve_stream_params.py +28 -0
  329. letta_sdk/types/run_retrieve_usage_response.py +27 -0
  330. letta_sdk/types/sleeptime_manager_param.py +16 -0
  331. letta_sdk/types/source.py +45 -0
  332. letta_sdk/types/source_count_response.py +7 -0
  333. letta_sdk/types/source_create_params.py +33 -0
  334. letta_sdk/types/source_get_agents_response.py +8 -0
  335. letta_sdk/types/source_get_by_name_response.py +7 -0
  336. letta_sdk/types/source_get_metadata_params.py +11 -0
  337. letta_sdk/types/source_list_passages_params.py +19 -0
  338. letta_sdk/types/source_list_passages_response.py +10 -0
  339. letta_sdk/types/source_list_response.py +10 -0
  340. letta_sdk/types/source_update_params.py +27 -0
  341. letta_sdk/types/source_upload_file_params.py +21 -0
  342. letta_sdk/types/sources/__init__.py +7 -0
  343. letta_sdk/types/sources/file_list_params.py +26 -0
  344. letta_sdk/types/sources/file_list_response.py +10 -0
  345. letta_sdk/types/sources/file_retrieve_params.py +14 -0
  346. letta_sdk/types/step.py +92 -0
  347. letta_sdk/types/step_list_messages_params.py +34 -0
  348. letta_sdk/types/step_list_messages_response.py +34 -0
  349. letta_sdk/types/step_list_params.py +61 -0
  350. letta_sdk/types/step_list_response.py +10 -0
  351. letta_sdk/types/step_retrieve_metrics_response.py +45 -0
  352. letta_sdk/types/step_update_feedback_params.py +18 -0
  353. letta_sdk/types/stop_reason_type.py +18 -0
  354. letta_sdk/types/supervisor_manager_param.py +13 -0
  355. letta_sdk/types/tag_list_params.py +40 -0
  356. letta_sdk/types/tag_list_response.py +8 -0
  357. letta_sdk/types/template_create_agents_params.py +52 -0
  358. letta_sdk/types/template_create_agents_response.py +12 -0
  359. letta_sdk/types/template_create_params.py +40 -0
  360. letta_sdk/types/template_create_response.py +29 -0
  361. letta_sdk/types/template_delete_response.py +9 -0
  362. letta_sdk/types/template_fork_params.py +17 -0
  363. letta_sdk/types/template_fork_response.py +29 -0
  364. letta_sdk/types/template_get_snapshot_response.py +258 -0
  365. letta_sdk/types/template_list_params.py +34 -0
  366. letta_sdk/types/template_list_response.py +35 -0
  367. letta_sdk/types/template_list_versions_params.py +16 -0
  368. letta_sdk/types/template_list_versions_response.py +29 -0
  369. letta_sdk/types/template_rename_params.py +14 -0
  370. letta_sdk/types/template_rename_response.py +9 -0
  371. letta_sdk/types/template_save_version_params.py +32 -0
  372. letta_sdk/types/template_save_version_response.py +29 -0
  373. letta_sdk/types/template_update_description_params.py +14 -0
  374. letta_sdk/types/template_update_description_response.py +9 -0
  375. letta_sdk/types/terminal_tool_rule.py +18 -0
  376. letta_sdk/types/terminal_tool_rule_param.py +18 -0
  377. letta_sdk/types/text_response_format.py +13 -0
  378. letta_sdk/types/text_response_format_param.py +12 -0
  379. letta_sdk/types/tool.py +62 -0
  380. letta_sdk/types/tool_count_params.py +35 -0
  381. letta_sdk/types/tool_count_response.py +7 -0
  382. letta_sdk/types/tool_create_params.py +47 -0
  383. letta_sdk/types/tool_list_params.py +57 -0
  384. letta_sdk/types/tool_list_response.py +10 -0
  385. letta_sdk/types/tool_modify_params.py +51 -0
  386. letta_sdk/types/tool_return_message.py +42 -0
  387. letta_sdk/types/tool_run_params.py +43 -0
  388. letta_sdk/types/tool_type.py +19 -0
  389. letta_sdk/types/tool_upsert_base_response.py +10 -0
  390. letta_sdk/types/tool_upsert_params.py +47 -0
  391. letta_sdk/types/tools/__init__.py +3 -0
  392. letta_sdk/types/tools/composio/__init__.py +6 -0
  393. letta_sdk/types/tools/composio/app_list_actions_response.py +70 -0
  394. letta_sdk/types/tools/composio/app_list_response.py +103 -0
  395. letta_sdk/types/tools/mcp/__init__.py +21 -0
  396. letta_sdk/types/tools/mcp/mcp_server_type.py +7 -0
  397. letta_sdk/types/tools/mcp/oauth_callback_params.py +22 -0
  398. letta_sdk/types/tools/mcp/server_add_params.py +68 -0
  399. letta_sdk/types/tools/mcp/server_add_response.py +14 -0
  400. letta_sdk/types/tools/mcp/server_connect_params.py +68 -0
  401. letta_sdk/types/tools/mcp/server_delete_response.py +14 -0
  402. letta_sdk/types/tools/mcp/server_list_response.py +14 -0
  403. letta_sdk/types/tools/mcp/server_resync_params.py +12 -0
  404. letta_sdk/types/tools/mcp/server_test_params.py +68 -0
  405. letta_sdk/types/tools/mcp/server_update_params.py +43 -0
  406. letta_sdk/types/tools/mcp/server_update_response.py +12 -0
  407. letta_sdk/types/tools/mcp/servers/__init__.py +6 -0
  408. letta_sdk/types/tools/mcp/servers/tool_execute_params.py +15 -0
  409. letta_sdk/types/tools/mcp/servers/tool_list_response.py +85 -0
  410. letta_sdk/types/tools/mcp/sse_server_config.py +27 -0
  411. letta_sdk/types/tools/mcp/sse_server_config_param.py +29 -0
  412. letta_sdk/types/tools/mcp/stdio_server_config.py +24 -0
  413. letta_sdk/types/tools/mcp/stdio_server_config_param.py +27 -0
  414. letta_sdk/types/tools/mcp/streamable_http_server_config.py +27 -0
  415. letta_sdk/types/tools/mcp/streamable_http_server_config_param.py +29 -0
  416. letta_sdk/types/vector_db_provider.py +7 -0
  417. letta_sdk/types/voice_beta/__init__.py +5 -0
  418. letta_sdk/types/voice_beta/chat_create_completion_params.py +12 -0
  419. letta_sdk/types/voice_sleeptime_manager_param.py +27 -0
  420. letta_client/__init__.py +0 -1804
  421. letta_client/agents/__init__.py +0 -83
  422. letta_client/agents/blocks/__init__.py +0 -7
  423. letta_client/agents/blocks/client.py +0 -679
  424. letta_client/agents/blocks/raw_client.py +0 -769
  425. letta_client/agents/blocks/types/__init__.py +0 -7
  426. letta_client/agents/blocks/types/blocks_list_request_order.py +0 -5
  427. letta_client/agents/client.py +0 -1945
  428. letta_client/agents/context/__init__.py +0 -4
  429. letta_client/agents/context/client.py +0 -116
  430. letta_client/agents/context/raw_client.py +0 -124
  431. letta_client/agents/core_memory/__init__.py +0 -4
  432. letta_client/agents/core_memory/client.py +0 -114
  433. letta_client/agents/core_memory/raw_client.py +0 -126
  434. letta_client/agents/files/__init__.py +0 -7
  435. letta_client/agents/files/client.py +0 -473
  436. letta_client/agents/files/raw_client.py +0 -541
  437. letta_client/agents/files/types/__init__.py +0 -7
  438. letta_client/agents/files/types/files_list_request_order.py +0 -5
  439. letta_client/agents/folders/__init__.py +0 -7
  440. letta_client/agents/folders/client.py +0 -356
  441. letta_client/agents/folders/raw_client.py +0 -398
  442. letta_client/agents/folders/types/__init__.py +0 -7
  443. letta_client/agents/folders/types/folders_list_request_order.py +0 -5
  444. letta_client/agents/groups/__init__.py +0 -7
  445. letta_client/agents/groups/client.py +0 -199
  446. letta_client/agents/groups/raw_client.py +0 -195
  447. letta_client/agents/groups/types/__init__.py +0 -7
  448. letta_client/agents/groups/types/groups_list_request_order.py +0 -5
  449. letta_client/agents/memory_variables/__init__.py +0 -7
  450. letta_client/agents/memory_variables/client.py +0 -118
  451. letta_client/agents/memory_variables/raw_client.py +0 -125
  452. letta_client/agents/memory_variables/types/__init__.py +0 -7
  453. letta_client/agents/memory_variables/types/memory_variables_list_response.py +0 -20
  454. letta_client/agents/messages/__init__.py +0 -23
  455. letta_client/agents/messages/client.py +0 -1514
  456. letta_client/agents/messages/raw_client.py +0 -1731
  457. letta_client/agents/messages/types/__init__.py +0 -21
  458. letta_client/agents/messages/types/letta_async_request_messages_item.py +0 -8
  459. letta_client/agents/messages/types/letta_streaming_response.py +0 -31
  460. letta_client/agents/messages/types/message_search_request_search_mode.py +0 -5
  461. letta_client/agents/messages/types/messages_list_request_order.py +0 -5
  462. letta_client/agents/messages/types/messages_modify_request.py +0 -12
  463. letta_client/agents/messages/types/messages_modify_response.py +0 -25
  464. letta_client/agents/messages/types/messages_preview_request.py +0 -8
  465. letta_client/agents/passages/__init__.py +0 -7
  466. letta_client/agents/passages/client.py +0 -637
  467. letta_client/agents/passages/raw_client.py +0 -685
  468. letta_client/agents/passages/types/__init__.py +0 -7
  469. letta_client/agents/passages/types/passages_search_request_tag_match_mode.py +0 -5
  470. letta_client/agents/raw_client.py +0 -2145
  471. letta_client/agents/sources/__init__.py +0 -7
  472. letta_client/agents/sources/client.py +0 -356
  473. letta_client/agents/sources/raw_client.py +0 -398
  474. letta_client/agents/sources/types/__init__.py +0 -7
  475. letta_client/agents/sources/types/sources_list_request_order.py +0 -5
  476. letta_client/agents/tools/__init__.py +0 -7
  477. letta_client/agents/tools/client.py +0 -458
  478. letta_client/agents/tools/raw_client.py +0 -522
  479. letta_client/agents/tools/types/__init__.py +0 -7
  480. letta_client/agents/tools/types/tools_list_request_order.py +0 -5
  481. letta_client/agents/types/__init__.py +0 -37
  482. letta_client/agents/types/agents_list_request_order.py +0 -5
  483. letta_client/agents/types/agents_list_request_order_by.py +0 -5
  484. letta_client/agents/types/agents_search_request_search_item.py +0 -17
  485. letta_client/agents/types/agents_search_request_search_item_field.py +0 -22
  486. letta_client/agents/types/agents_search_request_search_item_one.py +0 -23
  487. letta_client/agents/types/agents_search_request_search_item_one_operator.py +0 -5
  488. letta_client/agents/types/agents_search_request_search_item_three.py +0 -22
  489. letta_client/agents/types/agents_search_request_search_item_two.py +0 -22
  490. letta_client/agents/types/agents_search_request_search_item_zero.py +0 -21
  491. letta_client/agents/types/agents_search_request_sort_by.py +0 -5
  492. letta_client/agents/types/agents_search_response.py +0 -24
  493. letta_client/agents/types/create_agent_request_response_format.py +0 -9
  494. letta_client/agents/types/create_agent_request_tool_rules_item.py +0 -25
  495. letta_client/agents/types/update_agent_response_format.py +0 -9
  496. letta_client/agents/types/update_agent_tool_rules_item.py +0 -25
  497. letta_client/archives/__init__.py +0 -7
  498. letta_client/archives/client.py +0 -378
  499. letta_client/archives/raw_client.py +0 -450
  500. letta_client/archives/types/__init__.py +0 -7
  501. letta_client/archives/types/list_archives_request_order.py +0 -5
  502. letta_client/base_client.py +0 -224
  503. letta_client/batches/__init__.py +0 -9
  504. letta_client/batches/client.py +0 -449
  505. letta_client/batches/messages/__init__.py +0 -7
  506. letta_client/batches/messages/client.py +0 -197
  507. letta_client/batches/messages/raw_client.py +0 -193
  508. letta_client/batches/messages/types/__init__.py +0 -7
  509. letta_client/batches/messages/types/messages_list_request_order.py +0 -5
  510. letta_client/batches/raw_client.py +0 -522
  511. letta_client/batches/types/__init__.py +0 -7
  512. letta_client/batches/types/batches_list_request_order.py +0 -5
  513. letta_client/blocks/__init__.py +0 -9
  514. letta_client/blocks/agents/__init__.py +0 -7
  515. letta_client/blocks/agents/client.py +0 -199
  516. letta_client/blocks/agents/raw_client.py +0 -197
  517. letta_client/blocks/agents/types/__init__.py +0 -7
  518. letta_client/blocks/agents/types/agents_list_request_order.py +0 -5
  519. letta_client/blocks/client.py +0 -957
  520. letta_client/blocks/raw_client.py +0 -1080
  521. letta_client/blocks/types/__init__.py +0 -7
  522. letta_client/blocks/types/blocks_list_request_order.py +0 -5
  523. letta_client/chat/__init__.py +0 -7
  524. letta_client/chat/client.py +0 -255
  525. letta_client/chat/raw_client.py +0 -269
  526. letta_client/chat/types/__init__.py +0 -8
  527. letta_client/chat/types/chat_completion_request_messages_item.py +0 -19
  528. letta_client/chat/types/chat_completion_request_stop.py +0 -5
  529. letta_client/client.py +0 -706
  530. letta_client/client_side_access_tokens/__init__.py +0 -31
  531. letta_client/client_side_access_tokens/client.py +0 -361
  532. letta_client/client_side_access_tokens/raw_client.py +0 -435
  533. letta_client/client_side_access_tokens/types/__init__.py +0 -45
  534. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_request_policy_item.py +0 -25
  535. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_request_policy_item_access_item.py +0 -7
  536. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response.py +0 -26
  537. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy.py +0 -24
  538. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy_data_item.py +0 -25
  539. letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy_data_item_access_item.py +0 -7
  540. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response.py +0 -26
  541. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item.py +0 -28
  542. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy.py +0 -24
  543. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy_data_item.py +0 -25
  544. letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy_data_item_access_item.py +0 -7
  545. letta_client/core/__init__.py +0 -56
  546. letta_client/core/api_error.py +0 -23
  547. letta_client/core/client_wrapper.py +0 -86
  548. letta_client/core/datetime_utils.py +0 -28
  549. letta_client/core/file.py +0 -67
  550. letta_client/core/force_multipart.py +0 -16
  551. letta_client/core/http_client.py +0 -543
  552. letta_client/core/http_response.py +0 -55
  553. letta_client/core/jsonable_encoder.py +0 -100
  554. letta_client/core/pydantic_utilities.py +0 -255
  555. letta_client/core/query_encoder.py +0 -58
  556. letta_client/core/remove_none_from_dict.py +0 -11
  557. letta_client/core/request_options.py +0 -35
  558. letta_client/core/serialization.py +0 -276
  559. letta_client/core/unchecked_base_model.py +0 -341
  560. letta_client/environment.py +0 -8
  561. letta_client/errors/__init__.py +0 -21
  562. letta_client/errors/bad_request_error.py +0 -10
  563. letta_client/errors/conflict_error.py +0 -11
  564. letta_client/errors/gone_error.py +0 -10
  565. letta_client/errors/internal_server_error.py +0 -10
  566. letta_client/errors/not_found_error.py +0 -10
  567. letta_client/errors/payment_required_error.py +0 -11
  568. letta_client/errors/unprocessable_entity_error.py +0 -11
  569. letta_client/folders/__init__.py +0 -19
  570. letta_client/folders/agents/__init__.py +0 -7
  571. letta_client/folders/agents/client.py +0 -184
  572. letta_client/folders/agents/raw_client.py +0 -182
  573. letta_client/folders/agents/types/__init__.py +0 -7
  574. letta_client/folders/agents/types/agents_list_request_order.py +0 -5
  575. letta_client/folders/client.py +0 -869
  576. letta_client/folders/files/__init__.py +0 -7
  577. letta_client/folders/files/client.py +0 -390
  578. letta_client/folders/files/raw_client.py +0 -432
  579. letta_client/folders/files/types/__init__.py +0 -7
  580. letta_client/folders/files/types/files_list_request_order.py +0 -5
  581. letta_client/folders/passages/__init__.py +0 -7
  582. letta_client/folders/passages/client.py +0 -185
  583. letta_client/folders/passages/raw_client.py +0 -183
  584. letta_client/folders/passages/types/__init__.py +0 -7
  585. letta_client/folders/passages/types/passages_list_request_order.py +0 -5
  586. letta_client/folders/raw_client.py +0 -1063
  587. letta_client/folders/types/__init__.py +0 -7
  588. letta_client/folders/types/folders_list_request_order.py +0 -5
  589. letta_client/groups/__init__.py +0 -18
  590. letta_client/groups/client.py +0 -696
  591. letta_client/groups/messages/__init__.py +0 -7
  592. letta_client/groups/messages/client.py +0 -812
  593. letta_client/groups/messages/raw_client.py +0 -925
  594. letta_client/groups/messages/types/__init__.py +0 -10
  595. letta_client/groups/messages/types/letta_streaming_response.py +0 -21
  596. letta_client/groups/messages/types/messages_list_request_order.py +0 -5
  597. letta_client/groups/messages/types/messages_modify_request.py +0 -12
  598. letta_client/groups/messages/types/messages_modify_response.py +0 -25
  599. letta_client/groups/raw_client.py +0 -844
  600. letta_client/groups/types/__init__.py +0 -9
  601. letta_client/groups/types/group_create_manager_config.py +0 -13
  602. letta_client/groups/types/group_update_manager_config.py +0 -17
  603. letta_client/groups/types/groups_list_request_order.py +0 -5
  604. letta_client/health/__init__.py +0 -4
  605. letta_client/health/client.py +0 -98
  606. letta_client/health/raw_client.py +0 -85
  607. letta_client/identities/__init__.py +0 -17
  608. letta_client/identities/agents/__init__.py +0 -7
  609. letta_client/identities/agents/client.py +0 -187
  610. letta_client/identities/agents/raw_client.py +0 -185
  611. letta_client/identities/agents/types/__init__.py +0 -7
  612. letta_client/identities/agents/types/agents_list_request_order.py +0 -5
  613. letta_client/identities/blocks/__init__.py +0 -7
  614. letta_client/identities/blocks/client.py +0 -187
  615. letta_client/identities/blocks/raw_client.py +0 -185
  616. letta_client/identities/blocks/types/__init__.py +0 -7
  617. letta_client/identities/blocks/types/blocks_list_request_order.py +0 -5
  618. letta_client/identities/client.py +0 -879
  619. letta_client/identities/properties/__init__.py +0 -4
  620. letta_client/identities/properties/client.py +0 -141
  621. letta_client/identities/properties/raw_client.py +0 -154
  622. letta_client/identities/raw_client.py +0 -1043
  623. letta_client/identities/types/__init__.py +0 -7
  624. letta_client/identities/types/identities_list_request_order.py +0 -5
  625. letta_client/jobs/__init__.py +0 -7
  626. letta_client/jobs/client.py +0 -569
  627. letta_client/jobs/raw_client.py +0 -659
  628. letta_client/jobs/types/__init__.py +0 -7
  629. letta_client/jobs/types/jobs_list_request_order.py +0 -5
  630. letta_client/models/__init__.py +0 -7
  631. letta_client/models/client.py +0 -205
  632. letta_client/models/embeddings/__init__.py +0 -4
  633. letta_client/models/embeddings/client.py +0 -102
  634. letta_client/models/embeddings/raw_client.py +0 -117
  635. letta_client/models/raw_client.py +0 -201
  636. letta_client/projects/__init__.py +0 -7
  637. letta_client/projects/client.py +0 -136
  638. letta_client/projects/raw_client.py +0 -125
  639. letta_client/projects/types/__init__.py +0 -8
  640. letta_client/projects/types/projects_list_response.py +0 -24
  641. letta_client/projects/types/projects_list_response_projects_item.py +0 -22
  642. letta_client/providers/__init__.py +0 -7
  643. letta_client/providers/client.py +0 -863
  644. letta_client/providers/raw_client.py +0 -1031
  645. letta_client/providers/types/__init__.py +0 -7
  646. letta_client/providers/types/providers_list_request_order.py +0 -5
  647. letta_client/runs/__init__.py +0 -18
  648. letta_client/runs/client.py +0 -711
  649. letta_client/runs/messages/__init__.py +0 -7
  650. letta_client/runs/messages/client.py +0 -185
  651. letta_client/runs/messages/raw_client.py +0 -183
  652. letta_client/runs/messages/types/__init__.py +0 -7
  653. letta_client/runs/messages/types/messages_list_request_order.py +0 -5
  654. letta_client/runs/raw_client.py +0 -858
  655. letta_client/runs/steps/__init__.py +0 -7
  656. letta_client/runs/steps/client.py +0 -185
  657. letta_client/runs/steps/raw_client.py +0 -183
  658. letta_client/runs/steps/types/__init__.py +0 -7
  659. letta_client/runs/steps/types/steps_list_request_order.py +0 -5
  660. letta_client/runs/types/__init__.py +0 -8
  661. letta_client/runs/types/letta_streaming_response.py +0 -31
  662. letta_client/runs/types/runs_list_request_order.py +0 -5
  663. letta_client/runs/usage/__init__.py +0 -4
  664. letta_client/runs/usage/client.py +0 -112
  665. letta_client/runs/usage/raw_client.py +0 -122
  666. letta_client/sources/__init__.py +0 -7
  667. letta_client/sources/client.py +0 -962
  668. letta_client/sources/files/__init__.py +0 -4
  669. letta_client/sources/files/client.py +0 -375
  670. letta_client/sources/files/raw_client.py +0 -419
  671. letta_client/sources/passages/__init__.py +0 -4
  672. letta_client/sources/passages/client.py +0 -156
  673. letta_client/sources/passages/raw_client.py +0 -164
  674. letta_client/sources/raw_client.py +0 -1221
  675. letta_client/steps/__init__.py +0 -18
  676. letta_client/steps/client.py +0 -370
  677. letta_client/steps/feedback/__init__.py +0 -4
  678. letta_client/steps/feedback/client.py +0 -144
  679. letta_client/steps/feedback/raw_client.py +0 -166
  680. letta_client/steps/messages/__init__.py +0 -7
  681. letta_client/steps/messages/client.py +0 -187
  682. letta_client/steps/messages/raw_client.py +0 -185
  683. letta_client/steps/messages/types/__init__.py +0 -8
  684. letta_client/steps/messages/types/messages_list_request_order.py +0 -5
  685. letta_client/steps/messages/types/messages_list_response_item.py +0 -25
  686. letta_client/steps/metrics/__init__.py +0 -4
  687. letta_client/steps/metrics/client.py +0 -112
  688. letta_client/steps/metrics/raw_client.py +0 -124
  689. letta_client/steps/raw_client.py +0 -366
  690. letta_client/steps/trace/__init__.py +0 -4
  691. letta_client/steps/trace/client.py +0 -112
  692. letta_client/steps/trace/raw_client.py +0 -124
  693. letta_client/steps/types/__init__.py +0 -8
  694. letta_client/steps/types/steps_list_request_feedback.py +0 -5
  695. letta_client/steps/types/steps_list_request_order.py +0 -5
  696. letta_client/tags/__init__.py +0 -7
  697. letta_client/tags/client.py +0 -198
  698. letta_client/tags/raw_client.py +0 -195
  699. letta_client/tags/types/__init__.py +0 -7
  700. letta_client/tags/types/tags_list_request_order.py +0 -5
  701. letta_client/telemetry/__init__.py +0 -4
  702. letta_client/telemetry/client.py +0 -118
  703. letta_client/telemetry/raw_client.py +0 -130
  704. letta_client/templates/__init__.py +0 -1019
  705. letta_client/templates/agents/__init__.py +0 -4
  706. letta_client/templates/agents/client.py +0 -113
  707. letta_client/templates/agents/raw_client.py +0 -80
  708. letta_client/templates/client.py +0 -1631
  709. letta_client/templates/raw_client.py +0 -2106
  710. letta_client/templates/types/__init__.py +0 -1977
  711. letta_client/templates/types/templates_create_agents_from_template_request_initial_message_sequence_item.py +0 -29
  712. letta_client/templates/types/templates_create_agents_from_template_request_initial_message_sequence_item_role.py +0 -7
  713. letta_client/templates/types/templates_create_agents_from_template_response.py +0 -29
  714. letta_client/templates/types/templates_create_agents_from_template_response_agents_item.py +0 -157
  715. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_agent_type.py +0 -18
  716. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_base_template_id.py +0 -14
  717. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_base_template_id_item.py +0 -5
  718. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_created_at.py +0 -14
  719. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_created_at_item.py +0 -5
  720. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_created_by_id.py +0 -14
  721. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_created_by_id_item.py +0 -5
  722. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_deployment_id.py +0 -14
  723. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_deployment_id_item.py +0 -5
  724. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_description.py +0 -14
  725. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_description_item.py +0 -5
  726. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config.py +0 -63
  727. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_azure_deployment.py +0 -14
  728. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_azure_deployment_item.py +0 -7
  729. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_azure_endpoint.py +0 -14
  730. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_azure_endpoint_item.py +0 -7
  731. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_azure_version.py +0 -14
  732. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_azure_version_item.py +0 -7
  733. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_batch_size.py +0 -7
  734. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_embedding_chunk_size.py +0 -16
  735. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_embedding_chunk_size_item.py +0 -7
  736. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_embedding_endpoint.py +0 -16
  737. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_embedding_endpoint_item.py +0 -7
  738. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_embedding_endpoint_type.py +0 -28
  739. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_handle.py +0 -14
  740. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_embedding_config_handle_item.py +0 -5
  741. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_enable_sleeptime.py +0 -14
  742. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_enable_sleeptime_item.py +0 -5
  743. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_entity_id.py +0 -14
  744. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_entity_id_item.py +0 -5
  745. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_hidden.py +0 -14
  746. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_hidden_item.py +0 -5
  747. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_identity_ids.py +0 -7
  748. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_last_run_completion.py +0 -14
  749. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_last_run_completion_item.py +0 -5
  750. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_last_run_duration_ms.py +0 -14
  751. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_last_run_duration_ms_item.py +0 -5
  752. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_last_updated_by_id.py +0 -14
  753. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_last_updated_by_id_item.py +0 -5
  754. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config.py +0 -107
  755. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_compatibility_type.py +0 -15
  756. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_compatibility_type_item.py +0 -7
  757. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_display_name.py +0 -14
  758. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_display_name_item.py +0 -5
  759. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_enable_reasoner.py +0 -7
  760. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_frequency_penalty.py +0 -14
  761. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_frequency_penalty_item.py +0 -7
  762. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_handle.py +0 -14
  763. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_handle_item.py +0 -5
  764. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_max_reasoning_tokens.py +0 -7
  765. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_max_tokens.py +0 -14
  766. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_max_tokens_item.py +0 -5
  767. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_model_endpoint.py +0 -14
  768. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_model_endpoint_item.py +0 -5
  769. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_model_endpoint_type.py +0 -30
  770. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_model_wrapper.py +0 -14
  771. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_model_wrapper_item.py +0 -5
  772. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_parallel_tool_calls.py +0 -14
  773. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_parallel_tool_calls_item.py +0 -7
  774. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_provider_category.py +0 -15
  775. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_provider_category_item.py +0 -7
  776. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_provider_name.py +0 -14
  777. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_provider_name_item.py +0 -5
  778. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_put_inner_thoughts_in_kwargs.py +0 -16
  779. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_put_inner_thoughts_in_kwargs_item.py +0 -7
  780. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_reasoning_effort.py +0 -17
  781. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_reasoning_effort_item.py +0 -11
  782. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_temperature.py +0 -7
  783. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_tier.py +0 -14
  784. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_tier_item.py +0 -5
  785. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_verbosity.py +0 -16
  786. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_verbosity_item.py +0 -7
  787. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_max_files_open.py +0 -14
  788. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_max_files_open_item.py +0 -5
  789. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory.py +0 -35
  790. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_agent_type.py +0 -23
  791. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_agent_type_item.py +0 -17
  792. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item.py +0 -94
  793. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_base_template_id.py +0 -14
  794. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_base_template_id_item.py +0 -7
  795. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_created_by_id.py +0 -14
  796. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_created_by_id_item.py +0 -7
  797. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_deployment_id.py +0 -14
  798. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_deployment_id_item.py +0 -7
  799. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_description.py +0 -14
  800. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_description_item.py +0 -7
  801. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_entity_id.py +0 -14
  802. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_entity_id_item.py +0 -7
  803. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_hidden.py +0 -14
  804. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_hidden_item.py +0 -5
  805. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_id.py +0 -5
  806. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_is_template.py +0 -7
  807. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_label.py +0 -14
  808. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_label_item.py +0 -5
  809. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_last_updated_by_id.py +0 -16
  810. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_last_updated_by_id_item.py +0 -7
  811. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_limit.py +0 -7
  812. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_metadata.py +0 -13
  813. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_metadata_item.py +0 -7
  814. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_name.py +0 -14
  815. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_name_item.py +0 -5
  816. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_preserve_on_migration.py +0 -16
  817. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_preserve_on_migration_item.py +0 -7
  818. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_project_id.py +0 -14
  819. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_project_id_item.py +0 -7
  820. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_blocks_item_read_only.py +0 -7
  821. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks.py +0 -11
  822. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item.py +0 -107
  823. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_base_template_id.py +0 -16
  824. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_base_template_id_item.py +0 -7
  825. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_created_by_id.py +0 -16
  826. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_created_by_id_item.py +0 -7
  827. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_deployment_id.py +0 -16
  828. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_deployment_id_item.py +0 -7
  829. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_description.py +0 -16
  830. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_description_item.py +0 -7
  831. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_entity_id.py +0 -14
  832. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_entity_id_item.py +0 -7
  833. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_hidden.py +0 -14
  834. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_hidden_item.py +0 -7
  835. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_id.py +0 -7
  836. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_is_template.py +0 -7
  837. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_label.py +0 -14
  838. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_label_item.py +0 -7
  839. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_last_accessed_at.py +0 -16
  840. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_last_accessed_at_item.py +0 -7
  841. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_last_updated_by_id.py +0 -16
  842. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_last_updated_by_id_item.py +0 -7
  843. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_limit.py +0 -7
  844. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_metadata.py +0 -13
  845. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_metadata_item.py +0 -7
  846. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_name.py +0 -14
  847. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_name_item.py +0 -7
  848. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_preserve_on_migration.py +0 -16
  849. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_preserve_on_migration_item.py +0 -7
  850. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_project_id.py +0 -14
  851. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_project_id_item.py +0 -7
  852. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_file_blocks_item_read_only.py +0 -7
  853. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_memory_prompt_template.py +0 -5
  854. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_message_buffer_autoclear.py +0 -7
  855. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_message_ids.py +0 -14
  856. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_message_ids_item.py +0 -5
  857. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_metadata.py +0 -13
  858. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_metadata_item.py +0 -7
  859. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group.py +0 -17
  860. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids.py +0 -108
  861. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_base_template_id.py +0 -16
  862. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_base_template_id_item.py +0 -7
  863. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_deployment_id.py +0 -16
  864. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_deployment_id_item.py +0 -7
  865. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_hidden.py +0 -14
  866. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_hidden_item.py +0 -7
  867. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_last_processed_message_id.py +0 -18
  868. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_last_processed_message_id_item.py +0 -7
  869. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_manager_agent_id.py +0 -16
  870. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_manager_agent_id_item.py +0 -7
  871. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_manager_type.py +0 -7
  872. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_max_message_buffer_length.py +0 -18
  873. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_max_message_buffer_length_item.py +0 -7
  874. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_max_turns.py +0 -16
  875. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_max_turns_item.py +0 -7
  876. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_min_message_buffer_length.py +0 -18
  877. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_min_message_buffer_length_item.py +0 -7
  878. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_project_id.py +0 -16
  879. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_project_id_item.py +0 -7
  880. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_shared_block_ids.py +0 -7
  881. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_sleeptime_agent_frequency.py +0 -18
  882. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_sleeptime_agent_frequency_item.py +0 -7
  883. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_template_id.py +0 -16
  884. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_template_id_item.py +0 -7
  885. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_termination_token.py +0 -16
  886. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_termination_token_item.py +0 -7
  887. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_turns_counter.py +0 -16
  888. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_agent_ids_turns_counter_item.py +0 -7
  889. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item.py +0 -11
  890. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids.py +0 -108
  891. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_base_template_id.py +0 -18
  892. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_base_template_id_item.py +0 -7
  893. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_deployment_id.py +0 -16
  894. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_deployment_id_item.py +0 -7
  895. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_hidden.py +0 -16
  896. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_hidden_item.py +0 -7
  897. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_last_processed_message_id.py +0 -18
  898. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_last_processed_message_id_item.py +0 -7
  899. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_manager_agent_id.py +0 -18
  900. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_manager_agent_id_item.py +0 -7
  901. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_manager_type.py +0 -7
  902. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_max_message_buffer_length.py +0 -18
  903. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_max_message_buffer_length_item.py +0 -7
  904. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_max_turns.py +0 -16
  905. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_max_turns_item.py +0 -7
  906. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_min_message_buffer_length.py +0 -18
  907. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_min_message_buffer_length_item.py +0 -7
  908. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_project_id.py +0 -16
  909. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_project_id_item.py +0 -7
  910. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_shared_block_ids.py +0 -7
  911. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_sleeptime_agent_frequency.py +0 -18
  912. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_sleeptime_agent_frequency_item.py +0 -7
  913. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_template_id.py +0 -16
  914. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_template_id_item.py +0 -7
  915. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_termination_token.py +0 -18
  916. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_termination_token_item.py +0 -7
  917. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_turns_counter.py +0 -16
  918. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_multi_agent_group_item_agent_ids_turns_counter_item.py +0 -7
  919. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_per_file_view_window_char_limit.py +0 -14
  920. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_per_file_view_window_char_limit_item.py +0 -7
  921. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_project_id.py +0 -14
  922. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_project_id_item.py +0 -5
  923. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_response_format.py +0 -25
  924. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_response_format_item.py +0 -20
  925. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_response_format_item_json_schema.py +0 -24
  926. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_response_format_item_json_schema_type.py +0 -7
  927. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_response_format_item_type.py +0 -20
  928. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_response_format_item_zero.py +0 -20
  929. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_response_format_json_schema.py +0 -24
  930. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_response_format_json_schema_type.py +0 -7
  931. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_response_format_type.py +0 -20
  932. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_response_format_zero.py +0 -20
  933. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets.py +0 -11
  934. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item.py +0 -58
  935. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_created_at.py +0 -14
  936. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_created_at_item.py +0 -5
  937. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_created_by_id.py +0 -14
  938. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_created_by_id_item.py +0 -5
  939. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_description.py +0 -14
  940. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_description_item.py +0 -5
  941. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_id.py +0 -5
  942. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_last_updated_by_id.py +0 -14
  943. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_last_updated_by_id_item.py +0 -7
  944. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_organization_id.py +0 -14
  945. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_organization_id_item.py +0 -7
  946. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_updated_at.py +0 -14
  947. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_updated_at_item.py +0 -5
  948. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_value_enc.py +0 -14
  949. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_value_enc_item.py +0 -5
  950. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item.py +0 -70
  951. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_created_at.py +0 -14
  952. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_created_at_item.py +0 -5
  953. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_created_by_id.py +0 -14
  954. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_created_by_id_item.py +0 -5
  955. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_description.py +0 -14
  956. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_description_item.py +0 -5
  957. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config.py +0 -67
  958. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_azure_deployment.py +0 -18
  959. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_azure_deployment_item.py +0 -7
  960. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_azure_endpoint.py +0 -16
  961. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_azure_endpoint_item.py +0 -7
  962. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_azure_version.py +0 -16
  963. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_azure_version_item.py +0 -7
  964. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_batch_size.py +0 -7
  965. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_embedding_chunk_size.py +0 -18
  966. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_embedding_chunk_size_item.py +0 -7
  967. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_embedding_endpoint.py +0 -18
  968. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_embedding_endpoint_item.py +0 -7
  969. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_embedding_endpoint_type.py +0 -28
  970. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_handle.py +0 -16
  971. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_embedding_config_handle_item.py +0 -7
  972. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_id.py +0 -5
  973. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_instructions.py +0 -14
  974. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_instructions_item.py +0 -5
  975. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_last_updated_by_id.py +0 -14
  976. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_last_updated_by_id_item.py +0 -7
  977. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_metadata.py +0 -13
  978. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_metadata_item.py +0 -7
  979. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_organization_id.py +0 -14
  980. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_organization_id_item.py +0 -7
  981. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_updated_at.py +0 -14
  982. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_updated_at_item.py +0 -5
  983. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_sources_item_vector_db_provider.py +0 -7
  984. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_template_id.py +0 -14
  985. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_template_id_item.py +0 -5
  986. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_timezone.py +0 -14
  987. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_timezone_item.py +0 -5
  988. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables.py +0 -12
  989. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item.py +0 -68
  990. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_created_at.py +0 -18
  991. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_created_at_item.py +0 -7
  992. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_created_by_id.py +0 -18
  993. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_created_by_id_item.py +0 -7
  994. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_description.py +0 -18
  995. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_description_item.py +0 -7
  996. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_id.py +0 -7
  997. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_last_updated_by_id.py +0 -18
  998. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_last_updated_by_id_item.py +0 -7
  999. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_organization_id.py +0 -18
  1000. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_organization_id_item.py +0 -7
  1001. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_updated_at.py +0 -18
  1002. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_updated_at_item.py +0 -7
  1003. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_value_enc.py +0 -16
  1004. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_value_enc_item.py +0 -7
  1005. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules.py +0 -14
  1006. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item.py +0 -11
  1007. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_args.py +0 -34
  1008. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_args_args.py +0 -13
  1009. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_args_args_item.py +0 -7
  1010. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_args_prompt_template.py +0 -16
  1011. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_args_prompt_template_item.py +0 -7
  1012. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_args_type.py +0 -7
  1013. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_arg_nodes.py +0 -37
  1014. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_arg_nodes_child_arg_nodes.py +0 -16
  1015. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_arg_nodes_child_arg_nodes_item.py +0 -12
  1016. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_arg_nodes_child_arg_nodes_item_args.py +0 -17
  1017. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_arg_nodes_child_arg_nodes_item_args_item.py +0 -7
  1018. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_arg_nodes_child_arg_nodes_item_item.py +0 -28
  1019. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_arg_nodes_child_arg_nodes_item_item_args.py +0 -17
  1020. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_arg_nodes_child_arg_nodes_item_item_args_item.py +0 -7
  1021. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_arg_nodes_prompt_template.py +0 -16
  1022. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_arg_nodes_prompt_template_item.py +0 -7
  1023. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_arg_nodes_type.py +0 -7
  1024. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_output_mapping.py +0 -43
  1025. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_output_mapping_default_child.py +0 -18
  1026. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_output_mapping_default_child_item.py +0 -7
  1027. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_output_mapping_prompt_template.py +0 -18
  1028. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_output_mapping_prompt_template_item.py +0 -7
  1029. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_output_mapping_require_output_mapping.py +0 -7
  1030. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_output_mapping_type.py +0 -7
  1031. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_five.py +0 -30
  1032. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_five_prompt_template.py +0 -16
  1033. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_five_prompt_template_item.py +0 -7
  1034. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_five_type.py +0 -7
  1035. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_four.py +0 -30
  1036. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_four_prompt_template.py +0 -16
  1037. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_four_prompt_template_item.py +0 -7
  1038. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_four_type.py +0 -7
  1039. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item.py +0 -43
  1040. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_args.py +0 -34
  1041. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_args_args.py +0 -13
  1042. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_args_args_item.py +0 -7
  1043. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_args_prompt_template.py +0 -16
  1044. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_args_prompt_template_item.py +0 -7
  1045. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_args_type.py +0 -7
  1046. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_arg_nodes.py +0 -37
  1047. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_arg_nodes_child_arg_nodes.py +0 -18
  1048. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_arg_nodes_child_arg_nodes_item.py +0 -12
  1049. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_arg_nodes_child_arg_nodes_item_args.py +0 -17
  1050. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_arg_nodes_child_arg_nodes_item_args_item.py +0 -7
  1051. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_arg_nodes_child_arg_nodes_item_item.py +0 -28
  1052. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_arg_nodes_child_arg_nodes_item_item_args.py +0 -17
  1053. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_arg_nodes_child_arg_nodes_item_item_args_item.py +0 -7
  1054. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_arg_nodes_prompt_template.py +0 -18
  1055. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_arg_nodes_prompt_template_item.py +0 -7
  1056. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_arg_nodes_type.py +0 -7
  1057. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_output_mapping.py +0 -45
  1058. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_output_mapping_default_child.py +0 -18
  1059. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_output_mapping_default_child_item.py +0 -7
  1060. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_output_mapping_prompt_template.py +0 -18
  1061. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_output_mapping_prompt_template_item.py +0 -7
  1062. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_output_mapping_require_output_mapping.py +0 -7
  1063. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_output_mapping_type.py +0 -7
  1064. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_five.py +0 -30
  1065. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_five_prompt_template.py +0 -16
  1066. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_five_prompt_template_item.py +0 -7
  1067. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_five_type.py +0 -7
  1068. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_four.py +0 -30
  1069. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_four_prompt_template.py +0 -16
  1070. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_four_prompt_template_item.py +0 -7
  1071. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_four_type.py +0 -7
  1072. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_max_count_limit.py +0 -31
  1073. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_max_count_limit_prompt_template.py +0 -18
  1074. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_max_count_limit_prompt_template_item.py +0 -7
  1075. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_max_count_limit_type.py +0 -7
  1076. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_prompt_template.py +0 -30
  1077. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_prompt_template_prompt_template.py +0 -18
  1078. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_prompt_template_prompt_template_item.py +0 -7
  1079. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_prompt_template_type.py +0 -7
  1080. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_seven.py +0 -31
  1081. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_seven_prompt_template.py +0 -16
  1082. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_seven_prompt_template_item.py +0 -7
  1083. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_seven_type.py +0 -7
  1084. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_two.py +0 -30
  1085. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_two_prompt_template.py +0 -16
  1086. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_two_prompt_template_item.py +0 -7
  1087. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_two_type.py +0 -7
  1088. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_max_count_limit.py +0 -31
  1089. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_max_count_limit_prompt_template.py +0 -16
  1090. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_max_count_limit_prompt_template_item.py +0 -7
  1091. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_max_count_limit_type.py +0 -7
  1092. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_prompt_template.py +0 -30
  1093. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_prompt_template_prompt_template.py +0 -18
  1094. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_prompt_template_prompt_template_item.py +0 -7
  1095. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_prompt_template_type.py +0 -7
  1096. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_seven.py +0 -31
  1097. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_seven_prompt_template.py +0 -16
  1098. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_seven_prompt_template_item.py +0 -7
  1099. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_seven_type.py +0 -7
  1100. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_two.py +0 -30
  1101. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_two_prompt_template.py +0 -14
  1102. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_two_prompt_template_item.py +0 -7
  1103. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_two_type.py +0 -5
  1104. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item.py +0 -93
  1105. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_args_json_schema.py +0 -13
  1106. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_args_json_schema_item.py +0 -7
  1107. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_created_by_id.py +0 -13
  1108. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_created_by_id_item.py +0 -5
  1109. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_default_requires_approval.py +0 -15
  1110. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_default_requires_approval_item.py +0 -7
  1111. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_description.py +0 -13
  1112. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_description_item.py +0 -5
  1113. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_enable_parallel_execution.py +0 -15
  1114. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_enable_parallel_execution_item.py +0 -7
  1115. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_json_schema.py +0 -13
  1116. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_json_schema_item.py +0 -7
  1117. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_last_updated_by_id.py +0 -13
  1118. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_last_updated_by_id_item.py +0 -7
  1119. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_metadata.py +0 -13
  1120. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_metadata_item.py +0 -7
  1121. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_name.py +0 -13
  1122. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_name_item.py +0 -5
  1123. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_npm_requirements.py +0 -13
  1124. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_npm_requirements_item.py +0 -12
  1125. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_npm_requirements_item_item.py +0 -26
  1126. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_npm_requirements_item_item_version.py +0 -16
  1127. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_npm_requirements_item_item_version_item.py +0 -7
  1128. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_npm_requirements_item_version.py +0 -16
  1129. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_npm_requirements_item_version_item.py +0 -7
  1130. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_pip_requirements.py +0 -13
  1131. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_pip_requirements_item.py +0 -12
  1132. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_pip_requirements_item_item.py +0 -26
  1133. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_pip_requirements_item_item_version.py +0 -16
  1134. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_pip_requirements_item_item_version_item.py +0 -7
  1135. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_pip_requirements_item_version.py +0 -16
  1136. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_pip_requirements_item_version_item.py +0 -7
  1137. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_source_code.py +0 -13
  1138. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_source_code_item.py +0 -5
  1139. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_source_type.py +0 -13
  1140. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_source_type_item.py +0 -5
  1141. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_tool_type.py +0 -20
  1142. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_updated_at.py +0 -14
  1143. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_updated_at_item.py +0 -5
  1144. letta_client/templates/types/templates_create_agents_from_template_response_group.py +0 -90
  1145. letta_client/templates/types/templates_create_agents_from_template_response_group_base_template_id.py +0 -14
  1146. letta_client/templates/types/templates_create_agents_from_template_response_group_base_template_id_item.py +0 -5
  1147. letta_client/templates/types/templates_create_agents_from_template_response_group_deployment_id.py +0 -14
  1148. letta_client/templates/types/templates_create_agents_from_template_response_group_deployment_id_item.py +0 -5
  1149. letta_client/templates/types/templates_create_agents_from_template_response_group_hidden.py +0 -14
  1150. letta_client/templates/types/templates_create_agents_from_template_response_group_hidden_item.py +0 -5
  1151. letta_client/templates/types/templates_create_agents_from_template_response_group_last_processed_message_id.py +0 -14
  1152. letta_client/templates/types/templates_create_agents_from_template_response_group_last_processed_message_id_item.py +0 -5
  1153. letta_client/templates/types/templates_create_agents_from_template_response_group_manager_agent_id.py +0 -14
  1154. letta_client/templates/types/templates_create_agents_from_template_response_group_manager_agent_id_item.py +0 -5
  1155. letta_client/templates/types/templates_create_agents_from_template_response_group_manager_type.py +0 -7
  1156. letta_client/templates/types/templates_create_agents_from_template_response_group_max_message_buffer_length.py +0 -14
  1157. letta_client/templates/types/templates_create_agents_from_template_response_group_max_message_buffer_length_item.py +0 -5
  1158. letta_client/templates/types/templates_create_agents_from_template_response_group_max_turns.py +0 -14
  1159. letta_client/templates/types/templates_create_agents_from_template_response_group_max_turns_item.py +0 -5
  1160. letta_client/templates/types/templates_create_agents_from_template_response_group_min_message_buffer_length.py +0 -14
  1161. letta_client/templates/types/templates_create_agents_from_template_response_group_min_message_buffer_length_item.py +0 -5
  1162. letta_client/templates/types/templates_create_agents_from_template_response_group_project_id.py +0 -14
  1163. letta_client/templates/types/templates_create_agents_from_template_response_group_project_id_item.py +0 -5
  1164. letta_client/templates/types/templates_create_agents_from_template_response_group_shared_block_ids.py +0 -7
  1165. letta_client/templates/types/templates_create_agents_from_template_response_group_sleeptime_agent_frequency.py +0 -14
  1166. letta_client/templates/types/templates_create_agents_from_template_response_group_sleeptime_agent_frequency_item.py +0 -5
  1167. letta_client/templates/types/templates_create_agents_from_template_response_group_template_id.py +0 -14
  1168. letta_client/templates/types/templates_create_agents_from_template_response_group_template_id_item.py +0 -5
  1169. letta_client/templates/types/templates_create_agents_from_template_response_group_termination_token.py +0 -14
  1170. letta_client/templates/types/templates_create_agents_from_template_response_group_termination_token_item.py +0 -5
  1171. letta_client/templates/types/templates_create_agents_from_template_response_group_turns_counter.py +0 -14
  1172. letta_client/templates/types/templates_create_agents_from_template_response_group_turns_counter_item.py +0 -5
  1173. letta_client/templates/types/templates_create_template_request.py +0 -10
  1174. letta_client/templates/types/templates_create_template_request_agent_file.py +0 -38
  1175. letta_client/templates/types/templates_create_template_request_agent_id.py +0 -33
  1176. letta_client/templates/types/templates_create_template_response.py +0 -42
  1177. letta_client/templates/types/templates_delete_template_response.py +0 -20
  1178. letta_client/templates/types/templates_fork_template_response.py +0 -42
  1179. letta_client/templates/types/templates_get_template_snapshot_response.py +0 -32
  1180. letta_client/templates/types/templates_get_template_snapshot_response_agents_item.py +0 -62
  1181. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_agent_type.py +0 -18
  1182. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_memory_variables.py +0 -24
  1183. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_memory_variables_data_item.py +0 -24
  1184. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_properties.py +0 -36
  1185. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_properties_reasoning_effort.py +0 -7
  1186. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_properties_verbosity_level.py +0 -7
  1187. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_tool_rules_item.py +0 -43
  1188. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_tool_rules_item_args.py +0 -23
  1189. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_tool_rules_item_child_arg_nodes.py +0 -29
  1190. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_tool_rules_item_child_arg_nodes_child_arg_nodes_item.py +0 -21
  1191. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_tool_rules_item_child_output_mapping.py +0 -25
  1192. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_tool_rules_item_five.py +0 -22
  1193. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_tool_rules_item_four.py +0 -22
  1194. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_tool_rules_item_max_count_limit.py +0 -23
  1195. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_tool_rules_item_prompt_template.py +0 -22
  1196. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_tool_rules_item_seven.py +0 -23
  1197. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_tool_rules_item_two.py +0 -22
  1198. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_tool_variables.py +0 -24
  1199. letta_client/templates/types/templates_get_template_snapshot_response_agents_item_tool_variables_data_item.py +0 -24
  1200. letta_client/templates/types/templates_get_template_snapshot_response_blocks_item.py +0 -30
  1201. letta_client/templates/types/templates_get_template_snapshot_response_configuration.py +0 -36
  1202. letta_client/templates/types/templates_get_template_snapshot_response_relationships_item.py +0 -23
  1203. letta_client/templates/types/templates_get_template_snapshot_response_type.py +0 -8
  1204. letta_client/templates/types/templates_list_request_sort_by.py +0 -5
  1205. letta_client/templates/types/templates_list_response.py +0 -22
  1206. letta_client/templates/types/templates_list_response_templates_item.py +0 -42
  1207. letta_client/templates/types/templates_list_template_versions_response.py +0 -23
  1208. letta_client/templates/types/templates_list_template_versions_response_versions_item.py +0 -38
  1209. letta_client/templates/types/templates_migrate_deployment_response.py +0 -21
  1210. letta_client/templates/types/templates_rename_template_response.py +0 -20
  1211. letta_client/templates/types/templates_save_template_version_response.py +0 -42
  1212. letta_client/templates/types/templates_set_current_template_from_snapshot_response.py +0 -21
  1213. letta_client/templates/types/templates_update_current_template_from_agent_file_response.py +0 -21
  1214. letta_client/templates/types/templates_update_template_description_response.py +0 -20
  1215. letta_client/tools/__init__.py +0 -31
  1216. letta_client/tools/client.py +0 -2034
  1217. letta_client/tools/raw_client.py +0 -2551
  1218. letta_client/tools/types/__init__.py +0 -29
  1219. letta_client/tools/types/add_mcp_server_request.py +0 -9
  1220. letta_client/tools/types/add_mcp_server_response_item.py +0 -9
  1221. letta_client/tools/types/connect_mcp_server_request.py +0 -9
  1222. letta_client/tools/types/connect_mcp_server_response_event.py +0 -8
  1223. letta_client/tools/types/delete_mcp_server_response_item.py +0 -9
  1224. letta_client/tools/types/list_mcp_servers_response_value.py +0 -9
  1225. letta_client/tools/types/streaming_response.py +0 -24
  1226. letta_client/tools/types/test_mcp_server_request.py +0 -9
  1227. letta_client/tools/types/tools_list_request_order.py +0 -5
  1228. letta_client/tools/types/update_mcp_server_request.py +0 -9
  1229. letta_client/tools/types/update_mcp_server_response.py +0 -9
  1230. letta_client/types/__init__.py +0 -623
  1231. letta_client/types/agent_environment_variable.py +0 -69
  1232. letta_client/types/agent_file_attachment.py +0 -73
  1233. letta_client/types/agent_file_schema.py +0 -75
  1234. letta_client/types/agent_state.py +0 -226
  1235. letta_client/types/agent_state_response_format.py +0 -9
  1236. letta_client/types/agent_state_tool_rules_item.py +0 -25
  1237. letta_client/types/agent_type.py +0 -18
  1238. letta_client/types/annotation.py +0 -22
  1239. letta_client/types/annotation_url_citation.py +0 -23
  1240. letta_client/types/approval_create.py +0 -48
  1241. letta_client/types/approval_create_approvals_item.py +0 -8
  1242. letta_client/types/approval_request_message.py +0 -57
  1243. letta_client/types/approval_request_message_allowed_tool_calls.py +0 -8
  1244. letta_client/types/approval_request_message_requested_tool_calls.py +0 -8
  1245. letta_client/types/approval_request_message_tool_call.py +0 -8
  1246. letta_client/types/approval_response_message.py +0 -62
  1247. letta_client/types/approval_response_message_approvals_item.py +0 -8
  1248. letta_client/types/approval_return.py +0 -34
  1249. letta_client/types/archival_memory_search_response.py +0 -29
  1250. letta_client/types/archival_memory_search_result.py +0 -33
  1251. letta_client/types/archive.py +0 -77
  1252. letta_client/types/assistant_message.py +0 -45
  1253. letta_client/types/assistant_message_content.py +0 -7
  1254. letta_client/types/audio.py +0 -20
  1255. letta_client/types/auth_request.py +0 -23
  1256. letta_client/types/auth_response.py +0 -30
  1257. letta_client/types/bad_request_error_body.py +0 -20
  1258. letta_client/types/base_64_image.py +0 -34
  1259. letta_client/types/base_tool_rule_schema.py +0 -21
  1260. letta_client/types/batch_job.py +0 -108
  1261. letta_client/types/block.py +0 -118
  1262. letta_client/types/block_schema.py +0 -93
  1263. letta_client/types/block_update.py +0 -92
  1264. letta_client/types/body_export_agent.py +0 -25
  1265. letta_client/types/chat_completion.py +0 -30
  1266. letta_client/types/chat_completion_assistant_message_param.py +0 -30
  1267. letta_client/types/chat_completion_assistant_message_param_content.py +0 -9
  1268. letta_client/types/chat_completion_assistant_message_param_content_item.py +0 -10
  1269. letta_client/types/chat_completion_assistant_message_param_tool_calls_item.py +0 -10
  1270. letta_client/types/chat_completion_audio.py +0 -23
  1271. letta_client/types/chat_completion_content_part_image_param.py +0 -22
  1272. letta_client/types/chat_completion_content_part_input_audio_param.py +0 -22
  1273. letta_client/types/chat_completion_content_part_refusal_param.py +0 -21
  1274. letta_client/types/chat_completion_content_part_text_param.py +0 -21
  1275. letta_client/types/chat_completion_developer_message_param.py +0 -23
  1276. letta_client/types/chat_completion_developer_message_param_content.py +0 -7
  1277. letta_client/types/chat_completion_function_message_param.py +0 -22
  1278. letta_client/types/chat_completion_message.py +0 -30
  1279. letta_client/types/chat_completion_message_custom_tool_call.py +0 -23
  1280. letta_client/types/chat_completion_message_custom_tool_call_param.py +0 -23
  1281. letta_client/types/chat_completion_message_function_tool_call_input.py +0 -25
  1282. letta_client/types/chat_completion_message_function_tool_call_output.py +0 -23
  1283. letta_client/types/chat_completion_message_function_tool_call_param.py +0 -25
  1284. letta_client/types/chat_completion_message_tool_calls_item.py +0 -10
  1285. letta_client/types/chat_completion_service_tier.py +0 -5
  1286. letta_client/types/chat_completion_system_message_param.py +0 -23
  1287. letta_client/types/chat_completion_system_message_param_content.py +0 -7
  1288. letta_client/types/chat_completion_token_logprob.py +0 -24
  1289. letta_client/types/chat_completion_tool_message_param.py +0 -23
  1290. letta_client/types/chat_completion_tool_message_param_content.py +0 -7
  1291. letta_client/types/chat_completion_user_message_param.py +0 -23
  1292. letta_client/types/chat_completion_user_message_param_content.py +0 -7
  1293. letta_client/types/chat_completion_user_message_param_content_item.py +0 -15
  1294. letta_client/types/child_tool_rule.py +0 -44
  1295. letta_client/types/child_tool_rule_schema.py +0 -22
  1296. letta_client/types/choice.py +0 -26
  1297. letta_client/types/choice_finish_reason.py +0 -7
  1298. letta_client/types/choice_logprobs.py +0 -22
  1299. letta_client/types/code_input.py +0 -28
  1300. letta_client/types/completion_tokens_details.py +0 -23
  1301. letta_client/types/completion_usage.py +0 -26
  1302. letta_client/types/components_schemas_text_content.py +0 -5
  1303. letta_client/types/conditional_tool_rule.py +0 -48
  1304. letta_client/types/conditional_tool_rule_schema.py +0 -24
  1305. letta_client/types/conflict_error_body.py +0 -20
  1306. letta_client/types/context_window_overview.py +0 -109
  1307. letta_client/types/continue_tool_rule.py +0 -33
  1308. letta_client/types/core_memory_block_schema.py +0 -32
  1309. letta_client/types/create_block.py +0 -88
  1310. letta_client/types/custom_input.py +0 -21
  1311. letta_client/types/custom_output.py +0 -21
  1312. letta_client/types/delete_deployment_response.py +0 -27
  1313. letta_client/types/deployment_entity.py +0 -29
  1314. letta_client/types/duplicate_file_handling.py +0 -5
  1315. letta_client/types/dynamic_manager.py +0 -34
  1316. letta_client/types/dynamic_manager_update.py +0 -34
  1317. letta_client/types/e_2_b_sandbox_config.py +0 -33
  1318. letta_client/types/embedding_config.py +0 -73
  1319. letta_client/types/embedding_config_embedding_endpoint_type.py +0 -28
  1320. letta_client/types/feedback_type.py +0 -5
  1321. letta_client/types/file.py +0 -22
  1322. letta_client/types/file_agent_schema.py +0 -73
  1323. letta_client/types/file_block.py +0 -124
  1324. letta_client/types/file_file.py +0 -22
  1325. letta_client/types/file_metadata.py +0 -104
  1326. letta_client/types/file_processing_status.py +0 -5
  1327. letta_client/types/file_schema.py +0 -93
  1328. letta_client/types/file_stats.py +0 -37
  1329. letta_client/types/folder.py +0 -82
  1330. letta_client/types/function_call_input.py +0 -21
  1331. letta_client/types/function_call_output.py +0 -21
  1332. letta_client/types/function_definition.py +0 -23
  1333. letta_client/types/function_output.py +0 -21
  1334. letta_client/types/function_tool.py +0 -22
  1335. letta_client/types/generate_tool_input.py +0 -43
  1336. letta_client/types/generate_tool_output.py +0 -34
  1337. letta_client/types/group.py +0 -109
  1338. letta_client/types/group_schema.py +0 -58
  1339. letta_client/types/group_schema_manager_config.py +0 -13
  1340. letta_client/types/health.py +0 -25
  1341. letta_client/types/hidden_reasoning_message.py +0 -46
  1342. letta_client/types/hidden_reasoning_message_state.py +0 -5
  1343. letta_client/types/http_validation_error.py +0 -21
  1344. letta_client/types/identity.py +0 -60
  1345. letta_client/types/identity_property.py +0 -39
  1346. letta_client/types/identity_property_type.py +0 -5
  1347. letta_client/types/identity_property_value.py +0 -5
  1348. letta_client/types/identity_type.py +0 -5
  1349. letta_client/types/image_content.py +0 -25
  1350. letta_client/types/image_content_source.py +0 -9
  1351. letta_client/types/image_url.py +0 -22
  1352. letta_client/types/image_url_detail.py +0 -5
  1353. letta_client/types/imported_agents_response.py +0 -27
  1354. letta_client/types/init_tool_rule.py +0 -38
  1355. letta_client/types/input_audio.py +0 -22
  1356. letta_client/types/input_audio_format.py +0 -5
  1357. letta_client/types/internal_server_error_body.py +0 -20
  1358. letta_client/types/internal_template_agent_create.py +0 -266
  1359. letta_client/types/internal_template_agent_create_response_format.py +0 -11
  1360. letta_client/types/internal_template_agent_create_tool_rules_item.py +0 -25
  1361. letta_client/types/internal_template_block_create.py +0 -93
  1362. letta_client/types/internal_template_group_create.py +0 -68
  1363. letta_client/types/internal_template_group_create_manager_config.py +0 -13
  1364. letta_client/types/job.py +0 -123
  1365. letta_client/types/job_status.py +0 -7
  1366. letta_client/types/job_type.py +0 -5
  1367. letta_client/types/json_object_response_format.py +0 -24
  1368. letta_client/types/json_schema_response_format.py +0 -28
  1369. letta_client/types/letta_batch_messages.py +0 -21
  1370. letta_client/types/letta_batch_request.py +0 -60
  1371. letta_client/types/letta_batch_request_messages_item.py +0 -8
  1372. letta_client/types/letta_image.py +0 -39
  1373. letta_client/types/letta_message_content_union.py +0 -14
  1374. letta_client/types/letta_message_union.py +0 -25
  1375. letta_client/types/letta_ping.py +0 -27
  1376. letta_client/types/letta_request.py +0 -55
  1377. letta_client/types/letta_request_config.py +0 -39
  1378. letta_client/types/letta_request_messages_item.py +0 -8
  1379. letta_client/types/letta_response.py +0 -41
  1380. letta_client/types/letta_schemas_agent_file_agent_schema.py +0 -285
  1381. letta_client/types/letta_schemas_agent_file_agent_schema_response_format.py +0 -11
  1382. letta_client/types/letta_schemas_agent_file_agent_schema_tool_rules_item.py +0 -25
  1383. letta_client/types/letta_schemas_agent_file_message_schema.py +0 -125
  1384. letta_client/types/letta_schemas_agent_file_message_schema_approvals_item.py +0 -8
  1385. letta_client/types/letta_schemas_agent_file_message_schema_content.py +0 -7
  1386. letta_client/types/letta_schemas_agent_file_tool_schema.py +0 -114
  1387. letta_client/types/letta_schemas_letta_message_tool_return.py +0 -26
  1388. letta_client/types/letta_schemas_letta_message_tool_return_status.py +0 -5
  1389. letta_client/types/letta_schemas_message_tool_return.py +0 -40
  1390. letta_client/types/letta_schemas_message_tool_return_status.py +0 -5
  1391. letta_client/types/letta_serialize_schemas_pydantic_agent_schema_agent_schema.py +0 -56
  1392. letta_client/types/letta_serialize_schemas_pydantic_agent_schema_agent_schema_tool_rules_item.py +0 -12
  1393. letta_client/types/letta_serialize_schemas_pydantic_agent_schema_message_schema.py +0 -30
  1394. letta_client/types/letta_serialize_schemas_pydantic_agent_schema_tool_schema.py +0 -36
  1395. letta_client/types/letta_stop_reason.py +0 -33
  1396. letta_client/types/letta_streaming_request.py +0 -70
  1397. letta_client/types/letta_streaming_request_messages_item.py +0 -8
  1398. letta_client/types/letta_usage_statistics.py +0 -60
  1399. letta_client/types/letta_user_message_content_union.py +0 -8
  1400. letta_client/types/list_deployment_entities_response.py +0 -28
  1401. letta_client/types/llm_config.py +0 -127
  1402. letta_client/types/llm_config_compatibility_type.py +0 -5
  1403. letta_client/types/llm_config_model_endpoint_type.py +0 -30
  1404. letta_client/types/llm_config_reasoning_effort.py +0 -5
  1405. letta_client/types/llm_config_verbosity.py +0 -5
  1406. letta_client/types/local_sandbox_config.py +0 -39
  1407. letta_client/types/manager_type.py +0 -7
  1408. letta_client/types/max_count_per_step_tool_rule.py +0 -38
  1409. letta_client/types/max_count_per_step_tool_rule_schema.py +0 -22
  1410. letta_client/types/mcp_server_schema.py +0 -37
  1411. letta_client/types/mcp_server_type.py +0 -5
  1412. letta_client/types/mcp_tool.py +0 -44
  1413. letta_client/types/mcp_tool_execute_request.py +0 -23
  1414. letta_client/types/mcp_tool_health.py +0 -32
  1415. letta_client/types/memory.py +0 -45
  1416. letta_client/types/memory_agent_type.py +0 -7
  1417. letta_client/types/message.py +0 -166
  1418. letta_client/types/message_approvals_item.py +0 -8
  1419. letta_client/types/message_content_item.py +0 -23
  1420. letta_client/types/message_create.py +0 -64
  1421. letta_client/types/message_create_content.py +0 -7
  1422. letta_client/types/message_create_role.py +0 -5
  1423. letta_client/types/message_role.py +0 -5
  1424. letta_client/types/message_search_result.py +0 -48
  1425. letta_client/types/message_type.py +0 -18
  1426. letta_client/types/modal_sandbox_config.py +0 -36
  1427. letta_client/types/modal_sandbox_config_language.py +0 -5
  1428. letta_client/types/not_found_error_body.py +0 -20
  1429. letta_client/types/npm_requirement.py +0 -28
  1430. letta_client/types/omitted_reasoning_content.py +0 -28
  1431. letta_client/types/openai_types_chat_chat_completion_message_function_tool_call_function.py +0 -21
  1432. letta_client/types/openai_types_chat_chat_completion_message_function_tool_call_param_function.py +0 -21
  1433. letta_client/types/organization.py +0 -39
  1434. letta_client/types/organization_create.py +0 -28
  1435. letta_client/types/organization_sources_stats.py +0 -43
  1436. letta_client/types/organization_update.py +0 -28
  1437. letta_client/types/paginated_agent_files.py +0 -38
  1438. letta_client/types/parameter_properties.py +0 -21
  1439. letta_client/types/parameters_schema.py +0 -23
  1440. letta_client/types/parent_tool_rule.py +0 -38
  1441. letta_client/types/passage.py +0 -109
  1442. letta_client/types/payment_required_error_body.py +0 -21
  1443. letta_client/types/pip_requirement.py +0 -28
  1444. letta_client/types/prompt_tokens_details.py +0 -21
  1445. letta_client/types/provider.py +0 -81
  1446. letta_client/types/provider_category.py +0 -5
  1447. letta_client/types/provider_trace.py +0 -71
  1448. letta_client/types/provider_type.py +0 -26
  1449. letta_client/types/reasoning_content.py +0 -38
  1450. letta_client/types/reasoning_message.py +0 -47
  1451. letta_client/types/reasoning_message_source.py +0 -5
  1452. letta_client/types/redacted_reasoning_content.py +0 -28
  1453. letta_client/types/required_before_exit_tool_rule.py +0 -33
  1454. letta_client/types/requires_approval_tool_rule.py +0 -33
  1455. letta_client/types/round_robin_manager.py +0 -24
  1456. letta_client/types/round_robin_manager_update.py +0 -24
  1457. letta_client/types/run.py +0 -113
  1458. letta_client/types/run_metrics.py +0 -63
  1459. letta_client/types/run_status.py +0 -5
  1460. letta_client/types/sandbox_config.py +0 -55
  1461. letta_client/types/sandbox_config_create.py +0 -24
  1462. letta_client/types/sandbox_config_create_config.py +0 -9
  1463. letta_client/types/sandbox_config_update.py +0 -28
  1464. letta_client/types/sandbox_config_update_config.py +0 -9
  1465. letta_client/types/sandbox_environment_variable.py +0 -69
  1466. letta_client/types/sandbox_environment_variable_create.py +0 -33
  1467. letta_client/types/sandbox_environment_variable_update.py +0 -33
  1468. letta_client/types/sandbox_type.py +0 -5
  1469. letta_client/types/sleeptime_manager.py +0 -29
  1470. letta_client/types/sleeptime_manager_update.py +0 -29
  1471. letta_client/types/source.py +0 -88
  1472. letta_client/types/source_create.py +0 -58
  1473. letta_client/types/source_schema.py +0 -63
  1474. letta_client/types/source_stats.py +0 -48
  1475. letta_client/types/source_update.py +0 -48
  1476. letta_client/types/sse_server_config.py +0 -56
  1477. letta_client/types/stdio_server_config.py +0 -40
  1478. letta_client/types/step.py +0 -144
  1479. letta_client/types/step_feedback.py +0 -5
  1480. letta_client/types/step_metrics.py +0 -78
  1481. letta_client/types/step_status.py +0 -5
  1482. letta_client/types/stop_reason_type.py +0 -19
  1483. letta_client/types/streamable_http_server_config.py +0 -56
  1484. letta_client/types/summarized_reasoning_content.py +0 -39
  1485. letta_client/types/summarized_reasoning_content_part.py +0 -28
  1486. letta_client/types/supervisor_manager.py +0 -24
  1487. letta_client/types/supervisor_manager_update.py +0 -24
  1488. letta_client/types/system_message.py +0 -44
  1489. letta_client/types/tag_schema.py +0 -20
  1490. letta_client/types/terminal_tool_rule.py +0 -33
  1491. letta_client/types/text_content.py +0 -29
  1492. letta_client/types/text_response_format.py +0 -24
  1493. letta_client/types/tool.py +0 -121
  1494. letta_client/types/tool_annotations.py +0 -37
  1495. letta_client/types/tool_call.py +0 -22
  1496. letta_client/types/tool_call_content.py +0 -39
  1497. letta_client/types/tool_call_delta.py +0 -22
  1498. letta_client/types/tool_call_message.py +0 -44
  1499. letta_client/types/tool_call_message_tool_call.py +0 -8
  1500. letta_client/types/tool_call_message_tool_calls.py +0 -8
  1501. letta_client/types/tool_call_node.py +0 -35
  1502. letta_client/types/tool_create.py +0 -75
  1503. letta_client/types/tool_env_var_schema.py +0 -24
  1504. letta_client/types/tool_json_schema.py +0 -25
  1505. letta_client/types/tool_return_content.py +0 -34
  1506. letta_client/types/tool_return_message.py +0 -53
  1507. letta_client/types/tool_return_message_status.py +0 -5
  1508. letta_client/types/tool_type.py +0 -20
  1509. letta_client/types/top_logprob.py +0 -22
  1510. letta_client/types/update_assistant_message.py +0 -25
  1511. letta_client/types/update_assistant_message_content.py +0 -7
  1512. letta_client/types/update_reasoning_message.py +0 -21
  1513. letta_client/types/update_ssemcp_server.py +0 -37
  1514. letta_client/types/update_stdio_mcp_server.py +0 -28
  1515. letta_client/types/update_streamable_httpmcp_server.py +0 -42
  1516. letta_client/types/update_system_message.py +0 -24
  1517. letta_client/types/update_user_message.py +0 -25
  1518. letta_client/types/update_user_message_content.py +0 -7
  1519. letta_client/types/url_image.py +0 -24
  1520. letta_client/types/usage_statistics.py +0 -26
  1521. letta_client/types/usage_statistics_completion_token_details.py +0 -20
  1522. letta_client/types/usage_statistics_prompt_token_details.py +0 -20
  1523. letta_client/types/user.py +0 -53
  1524. letta_client/types/user_create.py +0 -23
  1525. letta_client/types/user_message.py +0 -45
  1526. letta_client/types/user_message_content.py +0 -7
  1527. letta_client/types/user_update.py +0 -28
  1528. letta_client/types/validation_error.py +0 -23
  1529. letta_client/types/validation_error_loc_item.py +0 -5
  1530. letta_client/types/vector_db_provider.py +0 -5
  1531. letta_client/types/voice_sleeptime_manager.py +0 -34
  1532. letta_client/types/voice_sleeptime_manager_update.py +0 -34
  1533. letta_client/version.py +0 -3
  1534. letta_client/voice/__init__.py +0 -4
  1535. letta_client/voice/client.py +0 -144
  1536. letta_client/voice/raw_client.py +0 -183
  1537. letta_client-1.0.0a4.dist-info/METADATA +0 -422
  1538. letta_client-1.0.0a4.dist-info/RECORD +0 -1121
  1539. letta_client-1.0.0a4.dist-info/WHEEL +0 -4
  1540. {letta_client → letta_sdk}/py.typed +0 -0
@@ -0,0 +1,1995 @@
1
+ from __future__ import annotations
2
+
3
+ import sys
4
+ import json
5
+ import time
6
+ import uuid
7
+ import email
8
+ import asyncio
9
+ import inspect
10
+ import logging
11
+ import platform
12
+ import email.utils
13
+ from types import TracebackType
14
+ from random import random
15
+ from typing import (
16
+ TYPE_CHECKING,
17
+ Any,
18
+ Dict,
19
+ Type,
20
+ Union,
21
+ Generic,
22
+ Mapping,
23
+ TypeVar,
24
+ Iterable,
25
+ Iterator,
26
+ Optional,
27
+ Generator,
28
+ AsyncIterator,
29
+ cast,
30
+ overload,
31
+ )
32
+ from typing_extensions import Literal, override, get_origin
33
+
34
+ import anyio
35
+ import httpx
36
+ import distro
37
+ import pydantic
38
+ from httpx import URL
39
+ from pydantic import PrivateAttr
40
+
41
+ from . import _exceptions
42
+ from ._qs import Querystring
43
+ from ._files import to_httpx_files, async_to_httpx_files
44
+ from ._types import (
45
+ Body,
46
+ Omit,
47
+ Query,
48
+ Headers,
49
+ Timeout,
50
+ NotGiven,
51
+ ResponseT,
52
+ AnyMapping,
53
+ PostParser,
54
+ RequestFiles,
55
+ HttpxSendArgs,
56
+ RequestOptions,
57
+ HttpxRequestFiles,
58
+ ModelBuilderProtocol,
59
+ not_given,
60
+ )
61
+ from ._utils import is_dict, is_list, asyncify, is_given, lru_cache, is_mapping
62
+ from ._compat import PYDANTIC_V1, model_copy, model_dump
63
+ from ._models import GenericModel, FinalRequestOptions, validate_type, construct_type
64
+ from ._response import (
65
+ APIResponse,
66
+ BaseAPIResponse,
67
+ AsyncAPIResponse,
68
+ extract_response_type,
69
+ )
70
+ from ._constants import (
71
+ DEFAULT_TIMEOUT,
72
+ MAX_RETRY_DELAY,
73
+ DEFAULT_MAX_RETRIES,
74
+ INITIAL_RETRY_DELAY,
75
+ RAW_RESPONSE_HEADER,
76
+ OVERRIDE_CAST_TO_HEADER,
77
+ DEFAULT_CONNECTION_LIMITS,
78
+ )
79
+ from ._streaming import Stream, SSEDecoder, AsyncStream, SSEBytesDecoder
80
+ from ._exceptions import (
81
+ APIStatusError,
82
+ APITimeoutError,
83
+ APIConnectionError,
84
+ APIResponseValidationError,
85
+ )
86
+
87
+ log: logging.Logger = logging.getLogger(__name__)
88
+
89
+ # TODO: make base page type vars covariant
90
+ SyncPageT = TypeVar("SyncPageT", bound="BaseSyncPage[Any]")
91
+ AsyncPageT = TypeVar("AsyncPageT", bound="BaseAsyncPage[Any]")
92
+
93
+
94
+ _T = TypeVar("_T")
95
+ _T_co = TypeVar("_T_co", covariant=True)
96
+
97
+ _StreamT = TypeVar("_StreamT", bound=Stream[Any])
98
+ _AsyncStreamT = TypeVar("_AsyncStreamT", bound=AsyncStream[Any])
99
+
100
+ if TYPE_CHECKING:
101
+ from httpx._config import (
102
+ DEFAULT_TIMEOUT_CONFIG, # pyright: ignore[reportPrivateImportUsage]
103
+ )
104
+
105
+ HTTPX_DEFAULT_TIMEOUT = DEFAULT_TIMEOUT_CONFIG
106
+ else:
107
+ try:
108
+ from httpx._config import DEFAULT_TIMEOUT_CONFIG as HTTPX_DEFAULT_TIMEOUT
109
+ except ImportError:
110
+ # taken from https://github.com/encode/httpx/blob/3ba5fe0d7ac70222590e759c31442b1cab263791/httpx/_config.py#L366
111
+ HTTPX_DEFAULT_TIMEOUT = Timeout(5.0)
112
+
113
+
114
+ class PageInfo:
115
+ """Stores the necessary information to build the request to retrieve the next page.
116
+
117
+ Either `url` or `params` must be set.
118
+ """
119
+
120
+ url: URL | NotGiven
121
+ params: Query | NotGiven
122
+ json: Body | NotGiven
123
+
124
+ @overload
125
+ def __init__(
126
+ self,
127
+ *,
128
+ url: URL,
129
+ ) -> None: ...
130
+
131
+ @overload
132
+ def __init__(
133
+ self,
134
+ *,
135
+ params: Query,
136
+ ) -> None: ...
137
+
138
+ @overload
139
+ def __init__(
140
+ self,
141
+ *,
142
+ json: Body,
143
+ ) -> None: ...
144
+
145
+ def __init__(
146
+ self,
147
+ *,
148
+ url: URL | NotGiven = not_given,
149
+ json: Body | NotGiven = not_given,
150
+ params: Query | NotGiven = not_given,
151
+ ) -> None:
152
+ self.url = url
153
+ self.json = json
154
+ self.params = params
155
+
156
+ @override
157
+ def __repr__(self) -> str:
158
+ if self.url:
159
+ return f"{self.__class__.__name__}(url={self.url})"
160
+ if self.json:
161
+ return f"{self.__class__.__name__}(json={self.json})"
162
+ return f"{self.__class__.__name__}(params={self.params})"
163
+
164
+
165
+ class BasePage(GenericModel, Generic[_T]):
166
+ """
167
+ Defines the core interface for pagination.
168
+
169
+ Type Args:
170
+ ModelT: The pydantic model that represents an item in the response.
171
+
172
+ Methods:
173
+ has_next_page(): Check if there is another page available
174
+ next_page_info(): Get the necessary information to make a request for the next page
175
+ """
176
+
177
+ _options: FinalRequestOptions = PrivateAttr()
178
+ _model: Type[_T] = PrivateAttr()
179
+
180
+ def has_next_page(self) -> bool:
181
+ items = self._get_page_items()
182
+ if not items:
183
+ return False
184
+ return self.next_page_info() is not None
185
+
186
+ def next_page_info(self) -> Optional[PageInfo]: ...
187
+
188
+ def _get_page_items(self) -> Iterable[_T]: # type: ignore[empty-body]
189
+ ...
190
+
191
+ def _params_from_url(self, url: URL) -> httpx.QueryParams:
192
+ # TODO: do we have to preprocess params here?
193
+ return httpx.QueryParams(cast(Any, self._options.params)).merge(url.params)
194
+
195
+ def _info_to_options(self, info: PageInfo) -> FinalRequestOptions:
196
+ options = model_copy(self._options)
197
+ options._strip_raw_response_header()
198
+
199
+ if not isinstance(info.params, NotGiven):
200
+ options.params = {**options.params, **info.params}
201
+ return options
202
+
203
+ if not isinstance(info.url, NotGiven):
204
+ params = self._params_from_url(info.url)
205
+ url = info.url.copy_with(params=params)
206
+ options.params = dict(url.params)
207
+ options.url = str(url)
208
+ return options
209
+
210
+ if not isinstance(info.json, NotGiven):
211
+ if not is_mapping(info.json):
212
+ raise TypeError("Pagination is only supported with mappings")
213
+
214
+ if not options.json_data:
215
+ options.json_data = {**info.json}
216
+ else:
217
+ if not is_mapping(options.json_data):
218
+ raise TypeError("Pagination is only supported with mappings")
219
+
220
+ options.json_data = {**options.json_data, **info.json}
221
+ return options
222
+
223
+ raise ValueError("Unexpected PageInfo state")
224
+
225
+
226
+ class BaseSyncPage(BasePage[_T], Generic[_T]):
227
+ _client: SyncAPIClient = pydantic.PrivateAttr()
228
+
229
+ def _set_private_attributes(
230
+ self,
231
+ client: SyncAPIClient,
232
+ model: Type[_T],
233
+ options: FinalRequestOptions,
234
+ ) -> None:
235
+ if (not PYDANTIC_V1) and getattr(self, "__pydantic_private__", None) is None:
236
+ self.__pydantic_private__ = {}
237
+
238
+ self._model = model
239
+ self._client = client
240
+ self._options = options
241
+
242
+ # Pydantic uses a custom `__iter__` method to support casting BaseModels
243
+ # to dictionaries. e.g. dict(model).
244
+ # As we want to support `for item in page`, this is inherently incompatible
245
+ # with the default pydantic behaviour. It is not possible to support both
246
+ # use cases at once. Fortunately, this is not a big deal as all other pydantic
247
+ # methods should continue to work as expected as there is an alternative method
248
+ # to cast a model to a dictionary, model.dict(), which is used internally
249
+ # by pydantic.
250
+ def __iter__(self) -> Iterator[_T]: # type: ignore
251
+ for page in self.iter_pages():
252
+ for item in page._get_page_items():
253
+ yield item
254
+
255
+ def iter_pages(self: SyncPageT) -> Iterator[SyncPageT]:
256
+ page = self
257
+ while True:
258
+ yield page
259
+ if page.has_next_page():
260
+ page = page.get_next_page()
261
+ else:
262
+ return
263
+
264
+ def get_next_page(self: SyncPageT) -> SyncPageT:
265
+ info = self.next_page_info()
266
+ if not info:
267
+ raise RuntimeError(
268
+ "No next page expected; please check `.has_next_page()` before calling `.get_next_page()`."
269
+ )
270
+
271
+ options = self._info_to_options(info)
272
+ return self._client._request_api_list(self._model, page=self.__class__, options=options)
273
+
274
+
275
+ class AsyncPaginator(Generic[_T, AsyncPageT]):
276
+ def __init__(
277
+ self,
278
+ client: AsyncAPIClient,
279
+ options: FinalRequestOptions,
280
+ page_cls: Type[AsyncPageT],
281
+ model: Type[_T],
282
+ ) -> None:
283
+ self._model = model
284
+ self._client = client
285
+ self._options = options
286
+ self._page_cls = page_cls
287
+
288
+ def __await__(self) -> Generator[Any, None, AsyncPageT]:
289
+ return self._get_page().__await__()
290
+
291
+ async def _get_page(self) -> AsyncPageT:
292
+ def _parser(resp: AsyncPageT) -> AsyncPageT:
293
+ resp._set_private_attributes(
294
+ model=self._model,
295
+ options=self._options,
296
+ client=self._client,
297
+ )
298
+ return resp
299
+
300
+ self._options.post_parser = _parser
301
+
302
+ return await self._client.request(self._page_cls, self._options)
303
+
304
+ async def __aiter__(self) -> AsyncIterator[_T]:
305
+ # https://github.com/microsoft/pyright/issues/3464
306
+ page = cast(
307
+ AsyncPageT,
308
+ await self, # type: ignore
309
+ )
310
+ async for item in page:
311
+ yield item
312
+
313
+
314
+ class BaseAsyncPage(BasePage[_T], Generic[_T]):
315
+ _client: AsyncAPIClient = pydantic.PrivateAttr()
316
+
317
+ def _set_private_attributes(
318
+ self,
319
+ model: Type[_T],
320
+ client: AsyncAPIClient,
321
+ options: FinalRequestOptions,
322
+ ) -> None:
323
+ if (not PYDANTIC_V1) and getattr(self, "__pydantic_private__", None) is None:
324
+ self.__pydantic_private__ = {}
325
+
326
+ self._model = model
327
+ self._client = client
328
+ self._options = options
329
+
330
+ async def __aiter__(self) -> AsyncIterator[_T]:
331
+ async for page in self.iter_pages():
332
+ for item in page._get_page_items():
333
+ yield item
334
+
335
+ async def iter_pages(self: AsyncPageT) -> AsyncIterator[AsyncPageT]:
336
+ page = self
337
+ while True:
338
+ yield page
339
+ if page.has_next_page():
340
+ page = await page.get_next_page()
341
+ else:
342
+ return
343
+
344
+ async def get_next_page(self: AsyncPageT) -> AsyncPageT:
345
+ info = self.next_page_info()
346
+ if not info:
347
+ raise RuntimeError(
348
+ "No next page expected; please check `.has_next_page()` before calling `.get_next_page()`."
349
+ )
350
+
351
+ options = self._info_to_options(info)
352
+ return await self._client._request_api_list(self._model, page=self.__class__, options=options)
353
+
354
+
355
+ _HttpxClientT = TypeVar("_HttpxClientT", bound=Union[httpx.Client, httpx.AsyncClient])
356
+ _DefaultStreamT = TypeVar("_DefaultStreamT", bound=Union[Stream[Any], AsyncStream[Any]])
357
+
358
+
359
+ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
360
+ _client: _HttpxClientT
361
+ _version: str
362
+ _base_url: URL
363
+ max_retries: int
364
+ timeout: Union[float, Timeout, None]
365
+ _strict_response_validation: bool
366
+ _idempotency_header: str | None
367
+ _default_stream_cls: type[_DefaultStreamT] | None = None
368
+
369
+ def __init__(
370
+ self,
371
+ *,
372
+ version: str,
373
+ base_url: str | URL,
374
+ _strict_response_validation: bool,
375
+ max_retries: int = DEFAULT_MAX_RETRIES,
376
+ timeout: float | Timeout | None = DEFAULT_TIMEOUT,
377
+ custom_headers: Mapping[str, str] | None = None,
378
+ custom_query: Mapping[str, object] | None = None,
379
+ ) -> None:
380
+ self._version = version
381
+ self._base_url = self._enforce_trailing_slash(URL(base_url))
382
+ self.max_retries = max_retries
383
+ self.timeout = timeout
384
+ self._custom_headers = custom_headers or {}
385
+ self._custom_query = custom_query or {}
386
+ self._strict_response_validation = _strict_response_validation
387
+ self._idempotency_header = None
388
+ self._platform: Platform | None = None
389
+
390
+ if max_retries is None: # pyright: ignore[reportUnnecessaryComparison]
391
+ raise TypeError(
392
+ "max_retries cannot be None. If you want to disable retries, pass `0`; if you want unlimited retries, pass `math.inf` or a very high number; if you want the default behavior, pass `letta_sdk.DEFAULT_MAX_RETRIES`"
393
+ )
394
+
395
+ def _enforce_trailing_slash(self, url: URL) -> URL:
396
+ if url.raw_path.endswith(b"/"):
397
+ return url
398
+ return url.copy_with(raw_path=url.raw_path + b"/")
399
+
400
+ def _make_status_error_from_response(
401
+ self,
402
+ response: httpx.Response,
403
+ ) -> APIStatusError:
404
+ if response.is_closed and not response.is_stream_consumed:
405
+ # We can't read the response body as it has been closed
406
+ # before it was read. This can happen if an event hook
407
+ # raises a status error.
408
+ body = None
409
+ err_msg = f"Error code: {response.status_code}"
410
+ else:
411
+ err_text = response.text.strip()
412
+ body = err_text
413
+
414
+ try:
415
+ body = json.loads(err_text)
416
+ err_msg = f"Error code: {response.status_code} - {body}"
417
+ except Exception:
418
+ err_msg = err_text or f"Error code: {response.status_code}"
419
+
420
+ return self._make_status_error(err_msg, body=body, response=response)
421
+
422
+ def _make_status_error(
423
+ self,
424
+ err_msg: str,
425
+ *,
426
+ body: object,
427
+ response: httpx.Response,
428
+ ) -> _exceptions.APIStatusError:
429
+ raise NotImplementedError()
430
+
431
+ def _build_headers(self, options: FinalRequestOptions, *, retries_taken: int = 0) -> httpx.Headers:
432
+ custom_headers = options.headers or {}
433
+ headers_dict = _merge_mappings(self.default_headers, custom_headers)
434
+ self._validate_headers(headers_dict, custom_headers)
435
+
436
+ # headers are case-insensitive while dictionaries are not.
437
+ headers = httpx.Headers(headers_dict)
438
+
439
+ idempotency_header = self._idempotency_header
440
+ if idempotency_header and options.idempotency_key and idempotency_header not in headers:
441
+ headers[idempotency_header] = options.idempotency_key
442
+
443
+ # Don't set these headers if they were already set or removed by the caller. We check
444
+ # `custom_headers`, which can contain `Omit()`, instead of `headers` to account for the removal case.
445
+ lower_custom_headers = [header.lower() for header in custom_headers]
446
+ if "x-stainless-retry-count" not in lower_custom_headers:
447
+ headers["x-stainless-retry-count"] = str(retries_taken)
448
+ if "x-stainless-read-timeout" not in lower_custom_headers:
449
+ timeout = self.timeout if isinstance(options.timeout, NotGiven) else options.timeout
450
+ if isinstance(timeout, Timeout):
451
+ timeout = timeout.read
452
+ if timeout is not None:
453
+ headers["x-stainless-read-timeout"] = str(timeout)
454
+
455
+ return headers
456
+
457
+ def _prepare_url(self, url: str) -> URL:
458
+ """
459
+ Merge a URL argument together with any 'base_url' on the client,
460
+ to create the URL used for the outgoing request.
461
+ """
462
+ # Copied from httpx's `_merge_url` method.
463
+ merge_url = URL(url)
464
+ if merge_url.is_relative_url:
465
+ merge_raw_path = self.base_url.raw_path + merge_url.raw_path.lstrip(b"/")
466
+ return self.base_url.copy_with(raw_path=merge_raw_path)
467
+
468
+ return merge_url
469
+
470
+ def _make_sse_decoder(self) -> SSEDecoder | SSEBytesDecoder:
471
+ return SSEDecoder()
472
+
473
+ def _build_request(
474
+ self,
475
+ options: FinalRequestOptions,
476
+ *,
477
+ retries_taken: int = 0,
478
+ ) -> httpx.Request:
479
+ if log.isEnabledFor(logging.DEBUG):
480
+ log.debug("Request options: %s", model_dump(options, exclude_unset=True))
481
+
482
+ kwargs: dict[str, Any] = {}
483
+
484
+ json_data = options.json_data
485
+ if options.extra_json is not None:
486
+ if json_data is None:
487
+ json_data = cast(Body, options.extra_json)
488
+ elif is_mapping(json_data):
489
+ json_data = _merge_mappings(json_data, options.extra_json)
490
+ else:
491
+ raise RuntimeError(f"Unexpected JSON data type, {type(json_data)}, cannot merge with `extra_body`")
492
+
493
+ headers = self._build_headers(options, retries_taken=retries_taken)
494
+ params = _merge_mappings(self.default_query, options.params)
495
+ content_type = headers.get("Content-Type")
496
+ files = options.files
497
+
498
+ # If the given Content-Type header is multipart/form-data then it
499
+ # has to be removed so that httpx can generate the header with
500
+ # additional information for us as it has to be in this form
501
+ # for the server to be able to correctly parse the request:
502
+ # multipart/form-data; boundary=---abc--
503
+ if content_type is not None and content_type.startswith("multipart/form-data"):
504
+ if "boundary" not in content_type:
505
+ # only remove the header if the boundary hasn't been explicitly set
506
+ # as the caller doesn't want httpx to come up with their own boundary
507
+ headers.pop("Content-Type")
508
+
509
+ # As we are now sending multipart/form-data instead of application/json
510
+ # we need to tell httpx to use it, https://www.python-httpx.org/advanced/clients/#multipart-file-encoding
511
+ if json_data:
512
+ if not is_dict(json_data):
513
+ raise TypeError(
514
+ f"Expected query input to be a dictionary for multipart requests but got {type(json_data)} instead."
515
+ )
516
+ kwargs["data"] = self._serialize_multipartform(json_data)
517
+
518
+ # httpx determines whether or not to send a "multipart/form-data"
519
+ # request based on the truthiness of the "files" argument.
520
+ # This gets around that issue by generating a dict value that
521
+ # evaluates to true.
522
+ #
523
+ # https://github.com/encode/httpx/discussions/2399#discussioncomment-3814186
524
+ if not files:
525
+ files = cast(HttpxRequestFiles, ForceMultipartDict())
526
+
527
+ prepared_url = self._prepare_url(options.url)
528
+ if "_" in prepared_url.host:
529
+ # work around https://github.com/encode/httpx/discussions/2880
530
+ kwargs["extensions"] = {"sni_hostname": prepared_url.host.replace("_", "-")}
531
+
532
+ is_body_allowed = options.method.lower() != "get"
533
+
534
+ if is_body_allowed:
535
+ if isinstance(json_data, bytes):
536
+ kwargs["content"] = json_data
537
+ else:
538
+ kwargs["json"] = json_data if is_given(json_data) else None
539
+ kwargs["files"] = files
540
+ else:
541
+ headers.pop("Content-Type", None)
542
+ kwargs.pop("data", None)
543
+
544
+ # TODO: report this error to httpx
545
+ return self._client.build_request( # pyright: ignore[reportUnknownMemberType]
546
+ headers=headers,
547
+ timeout=self.timeout if isinstance(options.timeout, NotGiven) else options.timeout,
548
+ method=options.method,
549
+ url=prepared_url,
550
+ # the `Query` type that we use is incompatible with qs'
551
+ # `Params` type as it needs to be typed as `Mapping[str, object]`
552
+ # so that passing a `TypedDict` doesn't cause an error.
553
+ # https://github.com/microsoft/pyright/issues/3526#event-6715453066
554
+ params=self.qs.stringify(cast(Mapping[str, Any], params)) if params else None,
555
+ **kwargs,
556
+ )
557
+
558
+ def _serialize_multipartform(self, data: Mapping[object, object]) -> dict[str, object]:
559
+ items = self.qs.stringify_items(
560
+ # TODO: type ignore is required as stringify_items is well typed but we can't be
561
+ # well typed without heavy validation.
562
+ data, # type: ignore
563
+ array_format="brackets",
564
+ )
565
+ serialized: dict[str, object] = {}
566
+ for key, value in items:
567
+ existing = serialized.get(key)
568
+
569
+ if not existing:
570
+ serialized[key] = value
571
+ continue
572
+
573
+ # If a value has already been set for this key then that
574
+ # means we're sending data like `array[]=[1, 2, 3]` and we
575
+ # need to tell httpx that we want to send multiple values with
576
+ # the same key which is done by using a list or a tuple.
577
+ #
578
+ # Note: 2d arrays should never result in the same key at both
579
+ # levels so it's safe to assume that if the value is a list,
580
+ # it was because we changed it to be a list.
581
+ if is_list(existing):
582
+ existing.append(value)
583
+ else:
584
+ serialized[key] = [existing, value]
585
+
586
+ return serialized
587
+
588
+ def _maybe_override_cast_to(self, cast_to: type[ResponseT], options: FinalRequestOptions) -> type[ResponseT]:
589
+ if not is_given(options.headers):
590
+ return cast_to
591
+
592
+ # make a copy of the headers so we don't mutate user-input
593
+ headers = dict(options.headers)
594
+
595
+ # we internally support defining a temporary header to override the
596
+ # default `cast_to` type for use with `.with_raw_response` and `.with_streaming_response`
597
+ # see _response.py for implementation details
598
+ override_cast_to = headers.pop(OVERRIDE_CAST_TO_HEADER, not_given)
599
+ if is_given(override_cast_to):
600
+ options.headers = headers
601
+ return cast(Type[ResponseT], override_cast_to)
602
+
603
+ return cast_to
604
+
605
+ def _should_stream_response_body(self, request: httpx.Request) -> bool:
606
+ return request.headers.get(RAW_RESPONSE_HEADER) == "stream" # type: ignore[no-any-return]
607
+
608
+ def _process_response_data(
609
+ self,
610
+ *,
611
+ data: object,
612
+ cast_to: type[ResponseT],
613
+ response: httpx.Response,
614
+ ) -> ResponseT:
615
+ if data is None:
616
+ return cast(ResponseT, None)
617
+
618
+ if cast_to is object:
619
+ return cast(ResponseT, data)
620
+
621
+ try:
622
+ if inspect.isclass(cast_to) and issubclass(cast_to, ModelBuilderProtocol):
623
+ return cast(ResponseT, cast_to.build(response=response, data=data))
624
+
625
+ if self._strict_response_validation:
626
+ return cast(ResponseT, validate_type(type_=cast_to, value=data))
627
+
628
+ return cast(ResponseT, construct_type(type_=cast_to, value=data))
629
+ except pydantic.ValidationError as err:
630
+ raise APIResponseValidationError(response=response, body=data) from err
631
+
632
+ @property
633
+ def qs(self) -> Querystring:
634
+ return Querystring()
635
+
636
+ @property
637
+ def custom_auth(self) -> httpx.Auth | None:
638
+ return None
639
+
640
+ @property
641
+ def auth_headers(self) -> dict[str, str]:
642
+ return {}
643
+
644
+ @property
645
+ def default_headers(self) -> dict[str, str | Omit]:
646
+ return {
647
+ "Accept": "application/json",
648
+ "Content-Type": "application/json",
649
+ "User-Agent": self.user_agent,
650
+ **self.platform_headers(),
651
+ **self.auth_headers,
652
+ **self._custom_headers,
653
+ }
654
+
655
+ @property
656
+ def default_query(self) -> dict[str, object]:
657
+ return {
658
+ **self._custom_query,
659
+ }
660
+
661
+ def _validate_headers(
662
+ self,
663
+ headers: Headers, # noqa: ARG002
664
+ custom_headers: Headers, # noqa: ARG002
665
+ ) -> None:
666
+ """Validate the given default headers and custom headers.
667
+
668
+ Does nothing by default.
669
+ """
670
+ return
671
+
672
+ @property
673
+ def user_agent(self) -> str:
674
+ return f"{self.__class__.__name__}/Python {self._version}"
675
+
676
+ @property
677
+ def base_url(self) -> URL:
678
+ return self._base_url
679
+
680
+ @base_url.setter
681
+ def base_url(self, url: URL | str) -> None:
682
+ self._base_url = self._enforce_trailing_slash(url if isinstance(url, URL) else URL(url))
683
+
684
+ def platform_headers(self) -> Dict[str, str]:
685
+ # the actual implementation is in a separate `lru_cache` decorated
686
+ # function because adding `lru_cache` to methods will leak memory
687
+ # https://github.com/python/cpython/issues/88476
688
+ return platform_headers(self._version, platform=self._platform)
689
+
690
+ def _parse_retry_after_header(self, response_headers: Optional[httpx.Headers] = None) -> float | None:
691
+ """Returns a float of the number of seconds (not milliseconds) to wait after retrying, or None if unspecified.
692
+
693
+ About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After
694
+ See also https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After#syntax
695
+ """
696
+ if response_headers is None:
697
+ return None
698
+
699
+ # First, try the non-standard `retry-after-ms` header for milliseconds,
700
+ # which is more precise than integer-seconds `retry-after`
701
+ try:
702
+ retry_ms_header = response_headers.get("retry-after-ms", None)
703
+ return float(retry_ms_header) / 1000
704
+ except (TypeError, ValueError):
705
+ pass
706
+
707
+ # Next, try parsing `retry-after` header as seconds (allowing nonstandard floats).
708
+ retry_header = response_headers.get("retry-after")
709
+ try:
710
+ # note: the spec indicates that this should only ever be an integer
711
+ # but if someone sends a float there's no reason for us to not respect it
712
+ return float(retry_header)
713
+ except (TypeError, ValueError):
714
+ pass
715
+
716
+ # Last, try parsing `retry-after` as a date.
717
+ retry_date_tuple = email.utils.parsedate_tz(retry_header)
718
+ if retry_date_tuple is None:
719
+ return None
720
+
721
+ retry_date = email.utils.mktime_tz(retry_date_tuple)
722
+ return float(retry_date - time.time())
723
+
724
+ def _calculate_retry_timeout(
725
+ self,
726
+ remaining_retries: int,
727
+ options: FinalRequestOptions,
728
+ response_headers: Optional[httpx.Headers] = None,
729
+ ) -> float:
730
+ max_retries = options.get_max_retries(self.max_retries)
731
+
732
+ # If the API asks us to wait a certain amount of time (and it's a reasonable amount), just do what it says.
733
+ retry_after = self._parse_retry_after_header(response_headers)
734
+ if retry_after is not None and 0 < retry_after <= 60:
735
+ return retry_after
736
+
737
+ # Also cap retry count to 1000 to avoid any potential overflows with `pow`
738
+ nb_retries = min(max_retries - remaining_retries, 1000)
739
+
740
+ # Apply exponential backoff, but not more than the max.
741
+ sleep_seconds = min(INITIAL_RETRY_DELAY * pow(2.0, nb_retries), MAX_RETRY_DELAY)
742
+
743
+ # Apply some jitter, plus-or-minus half a second.
744
+ jitter = 1 - 0.25 * random()
745
+ timeout = sleep_seconds * jitter
746
+ return timeout if timeout >= 0 else 0
747
+
748
+ def _should_retry(self, response: httpx.Response) -> bool:
749
+ # Note: this is not a standard header
750
+ should_retry_header = response.headers.get("x-should-retry")
751
+
752
+ # If the server explicitly says whether or not to retry, obey.
753
+ if should_retry_header == "true":
754
+ log.debug("Retrying as header `x-should-retry` is set to `true`")
755
+ return True
756
+ if should_retry_header == "false":
757
+ log.debug("Not retrying as header `x-should-retry` is set to `false`")
758
+ return False
759
+
760
+ # Retry on request timeouts.
761
+ if response.status_code == 408:
762
+ log.debug("Retrying due to status code %i", response.status_code)
763
+ return True
764
+
765
+ # Retry on lock timeouts.
766
+ if response.status_code == 409:
767
+ log.debug("Retrying due to status code %i", response.status_code)
768
+ return True
769
+
770
+ # Retry on rate limits.
771
+ if response.status_code == 429:
772
+ log.debug("Retrying due to status code %i", response.status_code)
773
+ return True
774
+
775
+ # Retry internal errors.
776
+ if response.status_code >= 500:
777
+ log.debug("Retrying due to status code %i", response.status_code)
778
+ return True
779
+
780
+ log.debug("Not retrying")
781
+ return False
782
+
783
+ def _idempotency_key(self) -> str:
784
+ return f"stainless-python-retry-{uuid.uuid4()}"
785
+
786
+
787
+ class _DefaultHttpxClient(httpx.Client):
788
+ def __init__(self, **kwargs: Any) -> None:
789
+ kwargs.setdefault("timeout", DEFAULT_TIMEOUT)
790
+ kwargs.setdefault("limits", DEFAULT_CONNECTION_LIMITS)
791
+ kwargs.setdefault("follow_redirects", True)
792
+ super().__init__(**kwargs)
793
+
794
+
795
+ if TYPE_CHECKING:
796
+ DefaultHttpxClient = httpx.Client
797
+ """An alias to `httpx.Client` that provides the same defaults that this SDK
798
+ uses internally.
799
+
800
+ This is useful because overriding the `http_client` with your own instance of
801
+ `httpx.Client` will result in httpx's defaults being used, not ours.
802
+ """
803
+ else:
804
+ DefaultHttpxClient = _DefaultHttpxClient
805
+
806
+
807
+ class SyncHttpxClientWrapper(DefaultHttpxClient):
808
+ def __del__(self) -> None:
809
+ if self.is_closed:
810
+ return
811
+
812
+ try:
813
+ self.close()
814
+ except Exception:
815
+ pass
816
+
817
+
818
+ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
819
+ _client: httpx.Client
820
+ _default_stream_cls: type[Stream[Any]] | None = None
821
+
822
+ def __init__(
823
+ self,
824
+ *,
825
+ version: str,
826
+ base_url: str | URL,
827
+ max_retries: int = DEFAULT_MAX_RETRIES,
828
+ timeout: float | Timeout | None | NotGiven = not_given,
829
+ http_client: httpx.Client | None = None,
830
+ custom_headers: Mapping[str, str] | None = None,
831
+ custom_query: Mapping[str, object] | None = None,
832
+ _strict_response_validation: bool,
833
+ ) -> None:
834
+ if not is_given(timeout):
835
+ # if the user passed in a custom http client with a non-default
836
+ # timeout set then we use that timeout.
837
+ #
838
+ # note: there is an edge case here where the user passes in a client
839
+ # where they've explicitly set the timeout to match the default timeout
840
+ # as this check is structural, meaning that we'll think they didn't
841
+ # pass in a timeout and will ignore it
842
+ if http_client and http_client.timeout != HTTPX_DEFAULT_TIMEOUT:
843
+ timeout = http_client.timeout
844
+ else:
845
+ timeout = DEFAULT_TIMEOUT
846
+
847
+ if http_client is not None and not isinstance(http_client, httpx.Client): # pyright: ignore[reportUnnecessaryIsInstance]
848
+ raise TypeError(
849
+ f"Invalid `http_client` argument; Expected an instance of `httpx.Client` but got {type(http_client)}"
850
+ )
851
+
852
+ super().__init__(
853
+ version=version,
854
+ # cast to a valid type because mypy doesn't understand our type narrowing
855
+ timeout=cast(Timeout, timeout),
856
+ base_url=base_url,
857
+ max_retries=max_retries,
858
+ custom_query=custom_query,
859
+ custom_headers=custom_headers,
860
+ _strict_response_validation=_strict_response_validation,
861
+ )
862
+ self._client = http_client or SyncHttpxClientWrapper(
863
+ base_url=base_url,
864
+ # cast to a valid type because mypy doesn't understand our type narrowing
865
+ timeout=cast(Timeout, timeout),
866
+ )
867
+
868
+ def is_closed(self) -> bool:
869
+ return self._client.is_closed
870
+
871
+ def close(self) -> None:
872
+ """Close the underlying HTTPX client.
873
+
874
+ The client will *not* be usable after this.
875
+ """
876
+ # If an error is thrown while constructing a client, self._client
877
+ # may not be present
878
+ if hasattr(self, "_client"):
879
+ self._client.close()
880
+
881
+ def __enter__(self: _T) -> _T:
882
+ return self
883
+
884
+ def __exit__(
885
+ self,
886
+ exc_type: type[BaseException] | None,
887
+ exc: BaseException | None,
888
+ exc_tb: TracebackType | None,
889
+ ) -> None:
890
+ self.close()
891
+
892
+ def _prepare_options(
893
+ self,
894
+ options: FinalRequestOptions, # noqa: ARG002
895
+ ) -> FinalRequestOptions:
896
+ """Hook for mutating the given options"""
897
+ return options
898
+
899
+ def _prepare_request(
900
+ self,
901
+ request: httpx.Request, # noqa: ARG002
902
+ ) -> None:
903
+ """This method is used as a callback for mutating the `Request` object
904
+ after it has been constructed.
905
+ This is useful for cases where you want to add certain headers based off of
906
+ the request properties, e.g. `url`, `method` etc.
907
+ """
908
+ return None
909
+
910
+ @overload
911
+ def request(
912
+ self,
913
+ cast_to: Type[ResponseT],
914
+ options: FinalRequestOptions,
915
+ *,
916
+ stream: Literal[True],
917
+ stream_cls: Type[_StreamT],
918
+ ) -> _StreamT: ...
919
+
920
+ @overload
921
+ def request(
922
+ self,
923
+ cast_to: Type[ResponseT],
924
+ options: FinalRequestOptions,
925
+ *,
926
+ stream: Literal[False] = False,
927
+ ) -> ResponseT: ...
928
+
929
+ @overload
930
+ def request(
931
+ self,
932
+ cast_to: Type[ResponseT],
933
+ options: FinalRequestOptions,
934
+ *,
935
+ stream: bool = False,
936
+ stream_cls: Type[_StreamT] | None = None,
937
+ ) -> ResponseT | _StreamT: ...
938
+
939
+ def request(
940
+ self,
941
+ cast_to: Type[ResponseT],
942
+ options: FinalRequestOptions,
943
+ *,
944
+ stream: bool = False,
945
+ stream_cls: type[_StreamT] | None = None,
946
+ ) -> ResponseT | _StreamT:
947
+ cast_to = self._maybe_override_cast_to(cast_to, options)
948
+
949
+ # create a copy of the options we were given so that if the
950
+ # options are mutated later & we then retry, the retries are
951
+ # given the original options
952
+ input_options = model_copy(options)
953
+ if input_options.idempotency_key is None and input_options.method.lower() != "get":
954
+ # ensure the idempotency key is reused between requests
955
+ input_options.idempotency_key = self._idempotency_key()
956
+
957
+ response: httpx.Response | None = None
958
+ max_retries = input_options.get_max_retries(self.max_retries)
959
+
960
+ retries_taken = 0
961
+ for retries_taken in range(max_retries + 1):
962
+ options = model_copy(input_options)
963
+ options = self._prepare_options(options)
964
+
965
+ remaining_retries = max_retries - retries_taken
966
+ request = self._build_request(options, retries_taken=retries_taken)
967
+ self._prepare_request(request)
968
+
969
+ kwargs: HttpxSendArgs = {}
970
+ if self.custom_auth is not None:
971
+ kwargs["auth"] = self.custom_auth
972
+
973
+ if options.follow_redirects is not None:
974
+ kwargs["follow_redirects"] = options.follow_redirects
975
+
976
+ log.debug("Sending HTTP Request: %s %s", request.method, request.url)
977
+
978
+ response = None
979
+ try:
980
+ response = self._client.send(
981
+ request,
982
+ stream=stream or self._should_stream_response_body(request=request),
983
+ **kwargs,
984
+ )
985
+ except httpx.TimeoutException as err:
986
+ log.debug("Encountered httpx.TimeoutException", exc_info=True)
987
+
988
+ if remaining_retries > 0:
989
+ self._sleep_for_retry(
990
+ retries_taken=retries_taken,
991
+ max_retries=max_retries,
992
+ options=input_options,
993
+ response=None,
994
+ )
995
+ continue
996
+
997
+ log.debug("Raising timeout error")
998
+ raise APITimeoutError(request=request) from err
999
+ except Exception as err:
1000
+ log.debug("Encountered Exception", exc_info=True)
1001
+
1002
+ if remaining_retries > 0:
1003
+ self._sleep_for_retry(
1004
+ retries_taken=retries_taken,
1005
+ max_retries=max_retries,
1006
+ options=input_options,
1007
+ response=None,
1008
+ )
1009
+ continue
1010
+
1011
+ log.debug("Raising connection error")
1012
+ raise APIConnectionError(request=request) from err
1013
+
1014
+ log.debug(
1015
+ 'HTTP Response: %s %s "%i %s" %s',
1016
+ request.method,
1017
+ request.url,
1018
+ response.status_code,
1019
+ response.reason_phrase,
1020
+ response.headers,
1021
+ )
1022
+
1023
+ try:
1024
+ response.raise_for_status()
1025
+ except httpx.HTTPStatusError as err: # thrown on 4xx and 5xx status code
1026
+ log.debug("Encountered httpx.HTTPStatusError", exc_info=True)
1027
+
1028
+ if remaining_retries > 0 and self._should_retry(err.response):
1029
+ err.response.close()
1030
+ self._sleep_for_retry(
1031
+ retries_taken=retries_taken,
1032
+ max_retries=max_retries,
1033
+ options=input_options,
1034
+ response=response,
1035
+ )
1036
+ continue
1037
+
1038
+ # If the response is streamed then we need to explicitly read the response
1039
+ # to completion before attempting to access the response text.
1040
+ if not err.response.is_closed:
1041
+ err.response.read()
1042
+
1043
+ log.debug("Re-raising status error")
1044
+ raise self._make_status_error_from_response(err.response) from None
1045
+
1046
+ break
1047
+
1048
+ assert response is not None, "could not resolve response (should never happen)"
1049
+ return self._process_response(
1050
+ cast_to=cast_to,
1051
+ options=options,
1052
+ response=response,
1053
+ stream=stream,
1054
+ stream_cls=stream_cls,
1055
+ retries_taken=retries_taken,
1056
+ )
1057
+
1058
+ def _sleep_for_retry(
1059
+ self, *, retries_taken: int, max_retries: int, options: FinalRequestOptions, response: httpx.Response | None
1060
+ ) -> None:
1061
+ remaining_retries = max_retries - retries_taken
1062
+ if remaining_retries == 1:
1063
+ log.debug("1 retry left")
1064
+ else:
1065
+ log.debug("%i retries left", remaining_retries)
1066
+
1067
+ timeout = self._calculate_retry_timeout(remaining_retries, options, response.headers if response else None)
1068
+ log.info("Retrying request to %s in %f seconds", options.url, timeout)
1069
+
1070
+ time.sleep(timeout)
1071
+
1072
+ def _process_response(
1073
+ self,
1074
+ *,
1075
+ cast_to: Type[ResponseT],
1076
+ options: FinalRequestOptions,
1077
+ response: httpx.Response,
1078
+ stream: bool,
1079
+ stream_cls: type[Stream[Any]] | type[AsyncStream[Any]] | None,
1080
+ retries_taken: int = 0,
1081
+ ) -> ResponseT:
1082
+ origin = get_origin(cast_to) or cast_to
1083
+
1084
+ if (
1085
+ inspect.isclass(origin)
1086
+ and issubclass(origin, BaseAPIResponse)
1087
+ # we only want to actually return the custom BaseAPIResponse class if we're
1088
+ # returning the raw response, or if we're not streaming SSE, as if we're streaming
1089
+ # SSE then `cast_to` doesn't actively reflect the type we need to parse into
1090
+ and (not stream or bool(response.request.headers.get(RAW_RESPONSE_HEADER)))
1091
+ ):
1092
+ if not issubclass(origin, APIResponse):
1093
+ raise TypeError(f"API Response types must subclass {APIResponse}; Received {origin}")
1094
+
1095
+ response_cls = cast("type[BaseAPIResponse[Any]]", cast_to)
1096
+ return cast(
1097
+ ResponseT,
1098
+ response_cls(
1099
+ raw=response,
1100
+ client=self,
1101
+ cast_to=extract_response_type(response_cls),
1102
+ stream=stream,
1103
+ stream_cls=stream_cls,
1104
+ options=options,
1105
+ retries_taken=retries_taken,
1106
+ ),
1107
+ )
1108
+
1109
+ if cast_to == httpx.Response:
1110
+ return cast(ResponseT, response)
1111
+
1112
+ api_response = APIResponse(
1113
+ raw=response,
1114
+ client=self,
1115
+ cast_to=cast("type[ResponseT]", cast_to), # pyright: ignore[reportUnnecessaryCast]
1116
+ stream=stream,
1117
+ stream_cls=stream_cls,
1118
+ options=options,
1119
+ retries_taken=retries_taken,
1120
+ )
1121
+ if bool(response.request.headers.get(RAW_RESPONSE_HEADER)):
1122
+ return cast(ResponseT, api_response)
1123
+
1124
+ return api_response.parse()
1125
+
1126
+ def _request_api_list(
1127
+ self,
1128
+ model: Type[object],
1129
+ page: Type[SyncPageT],
1130
+ options: FinalRequestOptions,
1131
+ ) -> SyncPageT:
1132
+ def _parser(resp: SyncPageT) -> SyncPageT:
1133
+ resp._set_private_attributes(
1134
+ client=self,
1135
+ model=model,
1136
+ options=options,
1137
+ )
1138
+ return resp
1139
+
1140
+ options.post_parser = _parser
1141
+
1142
+ return self.request(page, options, stream=False)
1143
+
1144
+ @overload
1145
+ def get(
1146
+ self,
1147
+ path: str,
1148
+ *,
1149
+ cast_to: Type[ResponseT],
1150
+ options: RequestOptions = {},
1151
+ stream: Literal[False] = False,
1152
+ ) -> ResponseT: ...
1153
+
1154
+ @overload
1155
+ def get(
1156
+ self,
1157
+ path: str,
1158
+ *,
1159
+ cast_to: Type[ResponseT],
1160
+ options: RequestOptions = {},
1161
+ stream: Literal[True],
1162
+ stream_cls: type[_StreamT],
1163
+ ) -> _StreamT: ...
1164
+
1165
+ @overload
1166
+ def get(
1167
+ self,
1168
+ path: str,
1169
+ *,
1170
+ cast_to: Type[ResponseT],
1171
+ options: RequestOptions = {},
1172
+ stream: bool,
1173
+ stream_cls: type[_StreamT] | None = None,
1174
+ ) -> ResponseT | _StreamT: ...
1175
+
1176
+ def get(
1177
+ self,
1178
+ path: str,
1179
+ *,
1180
+ cast_to: Type[ResponseT],
1181
+ options: RequestOptions = {},
1182
+ stream: bool = False,
1183
+ stream_cls: type[_StreamT] | None = None,
1184
+ ) -> ResponseT | _StreamT:
1185
+ opts = FinalRequestOptions.construct(method="get", url=path, **options)
1186
+ # cast is required because mypy complains about returning Any even though
1187
+ # it understands the type variables
1188
+ return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
1189
+
1190
+ @overload
1191
+ def post(
1192
+ self,
1193
+ path: str,
1194
+ *,
1195
+ cast_to: Type[ResponseT],
1196
+ body: Body | None = None,
1197
+ options: RequestOptions = {},
1198
+ files: RequestFiles | None = None,
1199
+ stream: Literal[False] = False,
1200
+ ) -> ResponseT: ...
1201
+
1202
+ @overload
1203
+ def post(
1204
+ self,
1205
+ path: str,
1206
+ *,
1207
+ cast_to: Type[ResponseT],
1208
+ body: Body | None = None,
1209
+ options: RequestOptions = {},
1210
+ files: RequestFiles | None = None,
1211
+ stream: Literal[True],
1212
+ stream_cls: type[_StreamT],
1213
+ ) -> _StreamT: ...
1214
+
1215
+ @overload
1216
+ def post(
1217
+ self,
1218
+ path: str,
1219
+ *,
1220
+ cast_to: Type[ResponseT],
1221
+ body: Body | None = None,
1222
+ options: RequestOptions = {},
1223
+ files: RequestFiles | None = None,
1224
+ stream: bool,
1225
+ stream_cls: type[_StreamT] | None = None,
1226
+ ) -> ResponseT | _StreamT: ...
1227
+
1228
+ def post(
1229
+ self,
1230
+ path: str,
1231
+ *,
1232
+ cast_to: Type[ResponseT],
1233
+ body: Body | None = None,
1234
+ options: RequestOptions = {},
1235
+ files: RequestFiles | None = None,
1236
+ stream: bool = False,
1237
+ stream_cls: type[_StreamT] | None = None,
1238
+ ) -> ResponseT | _StreamT:
1239
+ opts = FinalRequestOptions.construct(
1240
+ method="post", url=path, json_data=body, files=to_httpx_files(files), **options
1241
+ )
1242
+ return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
1243
+
1244
+ def patch(
1245
+ self,
1246
+ path: str,
1247
+ *,
1248
+ cast_to: Type[ResponseT],
1249
+ body: Body | None = None,
1250
+ options: RequestOptions = {},
1251
+ ) -> ResponseT:
1252
+ opts = FinalRequestOptions.construct(method="patch", url=path, json_data=body, **options)
1253
+ return self.request(cast_to, opts)
1254
+
1255
+ def put(
1256
+ self,
1257
+ path: str,
1258
+ *,
1259
+ cast_to: Type[ResponseT],
1260
+ body: Body | None = None,
1261
+ files: RequestFiles | None = None,
1262
+ options: RequestOptions = {},
1263
+ ) -> ResponseT:
1264
+ opts = FinalRequestOptions.construct(
1265
+ method="put", url=path, json_data=body, files=to_httpx_files(files), **options
1266
+ )
1267
+ return self.request(cast_to, opts)
1268
+
1269
+ def delete(
1270
+ self,
1271
+ path: str,
1272
+ *,
1273
+ cast_to: Type[ResponseT],
1274
+ body: Body | None = None,
1275
+ options: RequestOptions = {},
1276
+ ) -> ResponseT:
1277
+ opts = FinalRequestOptions.construct(method="delete", url=path, json_data=body, **options)
1278
+ return self.request(cast_to, opts)
1279
+
1280
+ def get_api_list(
1281
+ self,
1282
+ path: str,
1283
+ *,
1284
+ model: Type[object],
1285
+ page: Type[SyncPageT],
1286
+ body: Body | None = None,
1287
+ options: RequestOptions = {},
1288
+ method: str = "get",
1289
+ ) -> SyncPageT:
1290
+ opts = FinalRequestOptions.construct(method=method, url=path, json_data=body, **options)
1291
+ return self._request_api_list(model, page, opts)
1292
+
1293
+
1294
+ class _DefaultAsyncHttpxClient(httpx.AsyncClient):
1295
+ def __init__(self, **kwargs: Any) -> None:
1296
+ kwargs.setdefault("timeout", DEFAULT_TIMEOUT)
1297
+ kwargs.setdefault("limits", DEFAULT_CONNECTION_LIMITS)
1298
+ kwargs.setdefault("follow_redirects", True)
1299
+ super().__init__(**kwargs)
1300
+
1301
+
1302
+ try:
1303
+ import httpx_aiohttp
1304
+ except ImportError:
1305
+
1306
+ class _DefaultAioHttpClient(httpx.AsyncClient):
1307
+ def __init__(self, **_kwargs: Any) -> None:
1308
+ raise RuntimeError("To use the aiohttp client you must have installed the package with the `aiohttp` extra")
1309
+ else:
1310
+
1311
+ class _DefaultAioHttpClient(httpx_aiohttp.HttpxAiohttpClient): # type: ignore
1312
+ def __init__(self, **kwargs: Any) -> None:
1313
+ kwargs.setdefault("timeout", DEFAULT_TIMEOUT)
1314
+ kwargs.setdefault("limits", DEFAULT_CONNECTION_LIMITS)
1315
+ kwargs.setdefault("follow_redirects", True)
1316
+
1317
+ super().__init__(**kwargs)
1318
+
1319
+
1320
+ if TYPE_CHECKING:
1321
+ DefaultAsyncHttpxClient = httpx.AsyncClient
1322
+ """An alias to `httpx.AsyncClient` that provides the same defaults that this SDK
1323
+ uses internally.
1324
+
1325
+ This is useful because overriding the `http_client` with your own instance of
1326
+ `httpx.AsyncClient` will result in httpx's defaults being used, not ours.
1327
+ """
1328
+
1329
+ DefaultAioHttpClient = httpx.AsyncClient
1330
+ """An alias to `httpx.AsyncClient` that changes the default HTTP transport to `aiohttp`."""
1331
+ else:
1332
+ DefaultAsyncHttpxClient = _DefaultAsyncHttpxClient
1333
+ DefaultAioHttpClient = _DefaultAioHttpClient
1334
+
1335
+
1336
+ class AsyncHttpxClientWrapper(DefaultAsyncHttpxClient):
1337
+ def __del__(self) -> None:
1338
+ if self.is_closed:
1339
+ return
1340
+
1341
+ try:
1342
+ # TODO(someday): support non asyncio runtimes here
1343
+ asyncio.get_running_loop().create_task(self.aclose())
1344
+ except Exception:
1345
+ pass
1346
+
1347
+
1348
+ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1349
+ _client: httpx.AsyncClient
1350
+ _default_stream_cls: type[AsyncStream[Any]] | None = None
1351
+
1352
+ def __init__(
1353
+ self,
1354
+ *,
1355
+ version: str,
1356
+ base_url: str | URL,
1357
+ _strict_response_validation: bool,
1358
+ max_retries: int = DEFAULT_MAX_RETRIES,
1359
+ timeout: float | Timeout | None | NotGiven = not_given,
1360
+ http_client: httpx.AsyncClient | None = None,
1361
+ custom_headers: Mapping[str, str] | None = None,
1362
+ custom_query: Mapping[str, object] | None = None,
1363
+ ) -> None:
1364
+ if not is_given(timeout):
1365
+ # if the user passed in a custom http client with a non-default
1366
+ # timeout set then we use that timeout.
1367
+ #
1368
+ # note: there is an edge case here where the user passes in a client
1369
+ # where they've explicitly set the timeout to match the default timeout
1370
+ # as this check is structural, meaning that we'll think they didn't
1371
+ # pass in a timeout and will ignore it
1372
+ if http_client and http_client.timeout != HTTPX_DEFAULT_TIMEOUT:
1373
+ timeout = http_client.timeout
1374
+ else:
1375
+ timeout = DEFAULT_TIMEOUT
1376
+
1377
+ if http_client is not None and not isinstance(http_client, httpx.AsyncClient): # pyright: ignore[reportUnnecessaryIsInstance]
1378
+ raise TypeError(
1379
+ f"Invalid `http_client` argument; Expected an instance of `httpx.AsyncClient` but got {type(http_client)}"
1380
+ )
1381
+
1382
+ super().__init__(
1383
+ version=version,
1384
+ base_url=base_url,
1385
+ # cast to a valid type because mypy doesn't understand our type narrowing
1386
+ timeout=cast(Timeout, timeout),
1387
+ max_retries=max_retries,
1388
+ custom_query=custom_query,
1389
+ custom_headers=custom_headers,
1390
+ _strict_response_validation=_strict_response_validation,
1391
+ )
1392
+ self._client = http_client or AsyncHttpxClientWrapper(
1393
+ base_url=base_url,
1394
+ # cast to a valid type because mypy doesn't understand our type narrowing
1395
+ timeout=cast(Timeout, timeout),
1396
+ )
1397
+
1398
+ def is_closed(self) -> bool:
1399
+ return self._client.is_closed
1400
+
1401
+ async def close(self) -> None:
1402
+ """Close the underlying HTTPX client.
1403
+
1404
+ The client will *not* be usable after this.
1405
+ """
1406
+ await self._client.aclose()
1407
+
1408
+ async def __aenter__(self: _T) -> _T:
1409
+ return self
1410
+
1411
+ async def __aexit__(
1412
+ self,
1413
+ exc_type: type[BaseException] | None,
1414
+ exc: BaseException | None,
1415
+ exc_tb: TracebackType | None,
1416
+ ) -> None:
1417
+ await self.close()
1418
+
1419
+ async def _prepare_options(
1420
+ self,
1421
+ options: FinalRequestOptions, # noqa: ARG002
1422
+ ) -> FinalRequestOptions:
1423
+ """Hook for mutating the given options"""
1424
+ return options
1425
+
1426
+ async def _prepare_request(
1427
+ self,
1428
+ request: httpx.Request, # noqa: ARG002
1429
+ ) -> None:
1430
+ """This method is used as a callback for mutating the `Request` object
1431
+ after it has been constructed.
1432
+ This is useful for cases where you want to add certain headers based off of
1433
+ the request properties, e.g. `url`, `method` etc.
1434
+ """
1435
+ return None
1436
+
1437
+ @overload
1438
+ async def request(
1439
+ self,
1440
+ cast_to: Type[ResponseT],
1441
+ options: FinalRequestOptions,
1442
+ *,
1443
+ stream: Literal[False] = False,
1444
+ ) -> ResponseT: ...
1445
+
1446
+ @overload
1447
+ async def request(
1448
+ self,
1449
+ cast_to: Type[ResponseT],
1450
+ options: FinalRequestOptions,
1451
+ *,
1452
+ stream: Literal[True],
1453
+ stream_cls: type[_AsyncStreamT],
1454
+ ) -> _AsyncStreamT: ...
1455
+
1456
+ @overload
1457
+ async def request(
1458
+ self,
1459
+ cast_to: Type[ResponseT],
1460
+ options: FinalRequestOptions,
1461
+ *,
1462
+ stream: bool,
1463
+ stream_cls: type[_AsyncStreamT] | None = None,
1464
+ ) -> ResponseT | _AsyncStreamT: ...
1465
+
1466
+ async def request(
1467
+ self,
1468
+ cast_to: Type[ResponseT],
1469
+ options: FinalRequestOptions,
1470
+ *,
1471
+ stream: bool = False,
1472
+ stream_cls: type[_AsyncStreamT] | None = None,
1473
+ ) -> ResponseT | _AsyncStreamT:
1474
+ if self._platform is None:
1475
+ # `get_platform` can make blocking IO calls so we
1476
+ # execute it earlier while we are in an async context
1477
+ self._platform = await asyncify(get_platform)()
1478
+
1479
+ cast_to = self._maybe_override_cast_to(cast_to, options)
1480
+
1481
+ # create a copy of the options we were given so that if the
1482
+ # options are mutated later & we then retry, the retries are
1483
+ # given the original options
1484
+ input_options = model_copy(options)
1485
+ if input_options.idempotency_key is None and input_options.method.lower() != "get":
1486
+ # ensure the idempotency key is reused between requests
1487
+ input_options.idempotency_key = self._idempotency_key()
1488
+
1489
+ response: httpx.Response | None = None
1490
+ max_retries = input_options.get_max_retries(self.max_retries)
1491
+
1492
+ retries_taken = 0
1493
+ for retries_taken in range(max_retries + 1):
1494
+ options = model_copy(input_options)
1495
+ options = await self._prepare_options(options)
1496
+
1497
+ remaining_retries = max_retries - retries_taken
1498
+ request = self._build_request(options, retries_taken=retries_taken)
1499
+ await self._prepare_request(request)
1500
+
1501
+ kwargs: HttpxSendArgs = {}
1502
+ if self.custom_auth is not None:
1503
+ kwargs["auth"] = self.custom_auth
1504
+
1505
+ if options.follow_redirects is not None:
1506
+ kwargs["follow_redirects"] = options.follow_redirects
1507
+
1508
+ log.debug("Sending HTTP Request: %s %s", request.method, request.url)
1509
+
1510
+ response = None
1511
+ try:
1512
+ response = await self._client.send(
1513
+ request,
1514
+ stream=stream or self._should_stream_response_body(request=request),
1515
+ **kwargs,
1516
+ )
1517
+ except httpx.TimeoutException as err:
1518
+ log.debug("Encountered httpx.TimeoutException", exc_info=True)
1519
+
1520
+ if remaining_retries > 0:
1521
+ await self._sleep_for_retry(
1522
+ retries_taken=retries_taken,
1523
+ max_retries=max_retries,
1524
+ options=input_options,
1525
+ response=None,
1526
+ )
1527
+ continue
1528
+
1529
+ log.debug("Raising timeout error")
1530
+ raise APITimeoutError(request=request) from err
1531
+ except Exception as err:
1532
+ log.debug("Encountered Exception", exc_info=True)
1533
+
1534
+ if remaining_retries > 0:
1535
+ await self._sleep_for_retry(
1536
+ retries_taken=retries_taken,
1537
+ max_retries=max_retries,
1538
+ options=input_options,
1539
+ response=None,
1540
+ )
1541
+ continue
1542
+
1543
+ log.debug("Raising connection error")
1544
+ raise APIConnectionError(request=request) from err
1545
+
1546
+ log.debug(
1547
+ 'HTTP Response: %s %s "%i %s" %s',
1548
+ request.method,
1549
+ request.url,
1550
+ response.status_code,
1551
+ response.reason_phrase,
1552
+ response.headers,
1553
+ )
1554
+
1555
+ try:
1556
+ response.raise_for_status()
1557
+ except httpx.HTTPStatusError as err: # thrown on 4xx and 5xx status code
1558
+ log.debug("Encountered httpx.HTTPStatusError", exc_info=True)
1559
+
1560
+ if remaining_retries > 0 and self._should_retry(err.response):
1561
+ await err.response.aclose()
1562
+ await self._sleep_for_retry(
1563
+ retries_taken=retries_taken,
1564
+ max_retries=max_retries,
1565
+ options=input_options,
1566
+ response=response,
1567
+ )
1568
+ continue
1569
+
1570
+ # If the response is streamed then we need to explicitly read the response
1571
+ # to completion before attempting to access the response text.
1572
+ if not err.response.is_closed:
1573
+ await err.response.aread()
1574
+
1575
+ log.debug("Re-raising status error")
1576
+ raise self._make_status_error_from_response(err.response) from None
1577
+
1578
+ break
1579
+
1580
+ assert response is not None, "could not resolve response (should never happen)"
1581
+ return await self._process_response(
1582
+ cast_to=cast_to,
1583
+ options=options,
1584
+ response=response,
1585
+ stream=stream,
1586
+ stream_cls=stream_cls,
1587
+ retries_taken=retries_taken,
1588
+ )
1589
+
1590
+ async def _sleep_for_retry(
1591
+ self, *, retries_taken: int, max_retries: int, options: FinalRequestOptions, response: httpx.Response | None
1592
+ ) -> None:
1593
+ remaining_retries = max_retries - retries_taken
1594
+ if remaining_retries == 1:
1595
+ log.debug("1 retry left")
1596
+ else:
1597
+ log.debug("%i retries left", remaining_retries)
1598
+
1599
+ timeout = self._calculate_retry_timeout(remaining_retries, options, response.headers if response else None)
1600
+ log.info("Retrying request to %s in %f seconds", options.url, timeout)
1601
+
1602
+ await anyio.sleep(timeout)
1603
+
1604
+ async def _process_response(
1605
+ self,
1606
+ *,
1607
+ cast_to: Type[ResponseT],
1608
+ options: FinalRequestOptions,
1609
+ response: httpx.Response,
1610
+ stream: bool,
1611
+ stream_cls: type[Stream[Any]] | type[AsyncStream[Any]] | None,
1612
+ retries_taken: int = 0,
1613
+ ) -> ResponseT:
1614
+ origin = get_origin(cast_to) or cast_to
1615
+
1616
+ if (
1617
+ inspect.isclass(origin)
1618
+ and issubclass(origin, BaseAPIResponse)
1619
+ # we only want to actually return the custom BaseAPIResponse class if we're
1620
+ # returning the raw response, or if we're not streaming SSE, as if we're streaming
1621
+ # SSE then `cast_to` doesn't actively reflect the type we need to parse into
1622
+ and (not stream or bool(response.request.headers.get(RAW_RESPONSE_HEADER)))
1623
+ ):
1624
+ if not issubclass(origin, AsyncAPIResponse):
1625
+ raise TypeError(f"API Response types must subclass {AsyncAPIResponse}; Received {origin}")
1626
+
1627
+ response_cls = cast("type[BaseAPIResponse[Any]]", cast_to)
1628
+ return cast(
1629
+ "ResponseT",
1630
+ response_cls(
1631
+ raw=response,
1632
+ client=self,
1633
+ cast_to=extract_response_type(response_cls),
1634
+ stream=stream,
1635
+ stream_cls=stream_cls,
1636
+ options=options,
1637
+ retries_taken=retries_taken,
1638
+ ),
1639
+ )
1640
+
1641
+ if cast_to == httpx.Response:
1642
+ return cast(ResponseT, response)
1643
+
1644
+ api_response = AsyncAPIResponse(
1645
+ raw=response,
1646
+ client=self,
1647
+ cast_to=cast("type[ResponseT]", cast_to), # pyright: ignore[reportUnnecessaryCast]
1648
+ stream=stream,
1649
+ stream_cls=stream_cls,
1650
+ options=options,
1651
+ retries_taken=retries_taken,
1652
+ )
1653
+ if bool(response.request.headers.get(RAW_RESPONSE_HEADER)):
1654
+ return cast(ResponseT, api_response)
1655
+
1656
+ return await api_response.parse()
1657
+
1658
+ def _request_api_list(
1659
+ self,
1660
+ model: Type[_T],
1661
+ page: Type[AsyncPageT],
1662
+ options: FinalRequestOptions,
1663
+ ) -> AsyncPaginator[_T, AsyncPageT]:
1664
+ return AsyncPaginator(client=self, options=options, page_cls=page, model=model)
1665
+
1666
+ @overload
1667
+ async def get(
1668
+ self,
1669
+ path: str,
1670
+ *,
1671
+ cast_to: Type[ResponseT],
1672
+ options: RequestOptions = {},
1673
+ stream: Literal[False] = False,
1674
+ ) -> ResponseT: ...
1675
+
1676
+ @overload
1677
+ async def get(
1678
+ self,
1679
+ path: str,
1680
+ *,
1681
+ cast_to: Type[ResponseT],
1682
+ options: RequestOptions = {},
1683
+ stream: Literal[True],
1684
+ stream_cls: type[_AsyncStreamT],
1685
+ ) -> _AsyncStreamT: ...
1686
+
1687
+ @overload
1688
+ async def get(
1689
+ self,
1690
+ path: str,
1691
+ *,
1692
+ cast_to: Type[ResponseT],
1693
+ options: RequestOptions = {},
1694
+ stream: bool,
1695
+ stream_cls: type[_AsyncStreamT] | None = None,
1696
+ ) -> ResponseT | _AsyncStreamT: ...
1697
+
1698
+ async def get(
1699
+ self,
1700
+ path: str,
1701
+ *,
1702
+ cast_to: Type[ResponseT],
1703
+ options: RequestOptions = {},
1704
+ stream: bool = False,
1705
+ stream_cls: type[_AsyncStreamT] | None = None,
1706
+ ) -> ResponseT | _AsyncStreamT:
1707
+ opts = FinalRequestOptions.construct(method="get", url=path, **options)
1708
+ return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)
1709
+
1710
+ @overload
1711
+ async def post(
1712
+ self,
1713
+ path: str,
1714
+ *,
1715
+ cast_to: Type[ResponseT],
1716
+ body: Body | None = None,
1717
+ files: RequestFiles | None = None,
1718
+ options: RequestOptions = {},
1719
+ stream: Literal[False] = False,
1720
+ ) -> ResponseT: ...
1721
+
1722
+ @overload
1723
+ async def post(
1724
+ self,
1725
+ path: str,
1726
+ *,
1727
+ cast_to: Type[ResponseT],
1728
+ body: Body | None = None,
1729
+ files: RequestFiles | None = None,
1730
+ options: RequestOptions = {},
1731
+ stream: Literal[True],
1732
+ stream_cls: type[_AsyncStreamT],
1733
+ ) -> _AsyncStreamT: ...
1734
+
1735
+ @overload
1736
+ async def post(
1737
+ self,
1738
+ path: str,
1739
+ *,
1740
+ cast_to: Type[ResponseT],
1741
+ body: Body | None = None,
1742
+ files: RequestFiles | None = None,
1743
+ options: RequestOptions = {},
1744
+ stream: bool,
1745
+ stream_cls: type[_AsyncStreamT] | None = None,
1746
+ ) -> ResponseT | _AsyncStreamT: ...
1747
+
1748
+ async def post(
1749
+ self,
1750
+ path: str,
1751
+ *,
1752
+ cast_to: Type[ResponseT],
1753
+ body: Body | None = None,
1754
+ files: RequestFiles | None = None,
1755
+ options: RequestOptions = {},
1756
+ stream: bool = False,
1757
+ stream_cls: type[_AsyncStreamT] | None = None,
1758
+ ) -> ResponseT | _AsyncStreamT:
1759
+ opts = FinalRequestOptions.construct(
1760
+ method="post", url=path, json_data=body, files=await async_to_httpx_files(files), **options
1761
+ )
1762
+ return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)
1763
+
1764
+ async def patch(
1765
+ self,
1766
+ path: str,
1767
+ *,
1768
+ cast_to: Type[ResponseT],
1769
+ body: Body | None = None,
1770
+ options: RequestOptions = {},
1771
+ ) -> ResponseT:
1772
+ opts = FinalRequestOptions.construct(method="patch", url=path, json_data=body, **options)
1773
+ return await self.request(cast_to, opts)
1774
+
1775
+ async def put(
1776
+ self,
1777
+ path: str,
1778
+ *,
1779
+ cast_to: Type[ResponseT],
1780
+ body: Body | None = None,
1781
+ files: RequestFiles | None = None,
1782
+ options: RequestOptions = {},
1783
+ ) -> ResponseT:
1784
+ opts = FinalRequestOptions.construct(
1785
+ method="put", url=path, json_data=body, files=await async_to_httpx_files(files), **options
1786
+ )
1787
+ return await self.request(cast_to, opts)
1788
+
1789
+ async def delete(
1790
+ self,
1791
+ path: str,
1792
+ *,
1793
+ cast_to: Type[ResponseT],
1794
+ body: Body | None = None,
1795
+ options: RequestOptions = {},
1796
+ ) -> ResponseT:
1797
+ opts = FinalRequestOptions.construct(method="delete", url=path, json_data=body, **options)
1798
+ return await self.request(cast_to, opts)
1799
+
1800
+ def get_api_list(
1801
+ self,
1802
+ path: str,
1803
+ *,
1804
+ model: Type[_T],
1805
+ page: Type[AsyncPageT],
1806
+ body: Body | None = None,
1807
+ options: RequestOptions = {},
1808
+ method: str = "get",
1809
+ ) -> AsyncPaginator[_T, AsyncPageT]:
1810
+ opts = FinalRequestOptions.construct(method=method, url=path, json_data=body, **options)
1811
+ return self._request_api_list(model, page, opts)
1812
+
1813
+
1814
+ def make_request_options(
1815
+ *,
1816
+ query: Query | None = None,
1817
+ extra_headers: Headers | None = None,
1818
+ extra_query: Query | None = None,
1819
+ extra_body: Body | None = None,
1820
+ idempotency_key: str | None = None,
1821
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
1822
+ post_parser: PostParser | NotGiven = not_given,
1823
+ ) -> RequestOptions:
1824
+ """Create a dict of type RequestOptions without keys of NotGiven values."""
1825
+ options: RequestOptions = {}
1826
+ if extra_headers is not None:
1827
+ options["headers"] = extra_headers
1828
+
1829
+ if extra_body is not None:
1830
+ options["extra_json"] = cast(AnyMapping, extra_body)
1831
+
1832
+ if query is not None:
1833
+ options["params"] = query
1834
+
1835
+ if extra_query is not None:
1836
+ options["params"] = {**options.get("params", {}), **extra_query}
1837
+
1838
+ if not isinstance(timeout, NotGiven):
1839
+ options["timeout"] = timeout
1840
+
1841
+ if idempotency_key is not None:
1842
+ options["idempotency_key"] = idempotency_key
1843
+
1844
+ if is_given(post_parser):
1845
+ # internal
1846
+ options["post_parser"] = post_parser # type: ignore
1847
+
1848
+ return options
1849
+
1850
+
1851
+ class ForceMultipartDict(Dict[str, None]):
1852
+ def __bool__(self) -> bool:
1853
+ return True
1854
+
1855
+
1856
+ class OtherPlatform:
1857
+ def __init__(self, name: str) -> None:
1858
+ self.name = name
1859
+
1860
+ @override
1861
+ def __str__(self) -> str:
1862
+ return f"Other:{self.name}"
1863
+
1864
+
1865
+ Platform = Union[
1866
+ OtherPlatform,
1867
+ Literal[
1868
+ "MacOS",
1869
+ "Linux",
1870
+ "Windows",
1871
+ "FreeBSD",
1872
+ "OpenBSD",
1873
+ "iOS",
1874
+ "Android",
1875
+ "Unknown",
1876
+ ],
1877
+ ]
1878
+
1879
+
1880
+ def get_platform() -> Platform:
1881
+ try:
1882
+ system = platform.system().lower()
1883
+ platform_name = platform.platform().lower()
1884
+ except Exception:
1885
+ return "Unknown"
1886
+
1887
+ if "iphone" in platform_name or "ipad" in platform_name:
1888
+ # Tested using Python3IDE on an iPhone 11 and Pythonista on an iPad 7
1889
+ # system is Darwin and platform_name is a string like:
1890
+ # - Darwin-21.6.0-iPhone12,1-64bit
1891
+ # - Darwin-21.6.0-iPad7,11-64bit
1892
+ return "iOS"
1893
+
1894
+ if system == "darwin":
1895
+ return "MacOS"
1896
+
1897
+ if system == "windows":
1898
+ return "Windows"
1899
+
1900
+ if "android" in platform_name:
1901
+ # Tested using Pydroid 3
1902
+ # system is Linux and platform_name is a string like 'Linux-5.10.81-android12-9-00001-geba40aecb3b7-ab8534902-aarch64-with-libc'
1903
+ return "Android"
1904
+
1905
+ if system == "linux":
1906
+ # https://distro.readthedocs.io/en/latest/#distro.id
1907
+ distro_id = distro.id()
1908
+ if distro_id == "freebsd":
1909
+ return "FreeBSD"
1910
+
1911
+ if distro_id == "openbsd":
1912
+ return "OpenBSD"
1913
+
1914
+ return "Linux"
1915
+
1916
+ if platform_name:
1917
+ return OtherPlatform(platform_name)
1918
+
1919
+ return "Unknown"
1920
+
1921
+
1922
+ @lru_cache(maxsize=None)
1923
+ def platform_headers(version: str, *, platform: Platform | None) -> Dict[str, str]:
1924
+ return {
1925
+ "X-Stainless-Lang": "python",
1926
+ "X-Stainless-Package-Version": version,
1927
+ "X-Stainless-OS": str(platform or get_platform()),
1928
+ "X-Stainless-Arch": str(get_architecture()),
1929
+ "X-Stainless-Runtime": get_python_runtime(),
1930
+ "X-Stainless-Runtime-Version": get_python_version(),
1931
+ }
1932
+
1933
+
1934
+ class OtherArch:
1935
+ def __init__(self, name: str) -> None:
1936
+ self.name = name
1937
+
1938
+ @override
1939
+ def __str__(self) -> str:
1940
+ return f"other:{self.name}"
1941
+
1942
+
1943
+ Arch = Union[OtherArch, Literal["x32", "x64", "arm", "arm64", "unknown"]]
1944
+
1945
+
1946
+ def get_python_runtime() -> str:
1947
+ try:
1948
+ return platform.python_implementation()
1949
+ except Exception:
1950
+ return "unknown"
1951
+
1952
+
1953
+ def get_python_version() -> str:
1954
+ try:
1955
+ return platform.python_version()
1956
+ except Exception:
1957
+ return "unknown"
1958
+
1959
+
1960
+ def get_architecture() -> Arch:
1961
+ try:
1962
+ machine = platform.machine().lower()
1963
+ except Exception:
1964
+ return "unknown"
1965
+
1966
+ if machine in ("arm64", "aarch64"):
1967
+ return "arm64"
1968
+
1969
+ # TODO: untested
1970
+ if machine == "arm":
1971
+ return "arm"
1972
+
1973
+ if machine == "x86_64":
1974
+ return "x64"
1975
+
1976
+ # TODO: untested
1977
+ if sys.maxsize <= 2**32:
1978
+ return "x32"
1979
+
1980
+ if machine:
1981
+ return OtherArch(machine)
1982
+
1983
+ return "unknown"
1984
+
1985
+
1986
+ def _merge_mappings(
1987
+ obj1: Mapping[_T_co, Union[_T, Omit]],
1988
+ obj2: Mapping[_T_co, Union[_T, Omit]],
1989
+ ) -> Dict[_T_co, _T]:
1990
+ """Merge two mappings of the same type, removing any values that are instances of `Omit`.
1991
+
1992
+ In cases with duplicate keys the second mapping takes precedence.
1993
+ """
1994
+ merged = {**obj1, **obj2}
1995
+ return {key: value for key, value in merged.items() if not isinstance(value, Omit)}