letta-client 0.1.226__py3-none-any.whl → 1.7.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- letta_client/__init__.py +91 -672
- letta_client/_base_client.py +2125 -0
- letta_client/_client.py +1136 -0
- letta_client/_compat.py +219 -0
- letta_client/_constants.py +14 -0
- letta_client/_exceptions.py +108 -0
- letta_client/_files.py +123 -0
- letta_client/_models.py +872 -0
- letta_client/_qs.py +150 -0
- letta_client/_resource.py +43 -0
- letta_client/_response.py +832 -0
- letta_client/_streaming.py +371 -0
- letta_client/_types.py +270 -0
- letta_client/_utils/__init__.py +64 -0
- letta_client/_utils/_compat.py +45 -0
- letta_client/_utils/_datetime_parse.py +136 -0
- letta_client/_utils/_logs.py +25 -0
- letta_client/_utils/_proxy.py +65 -0
- letta_client/_utils/_reflection.py +42 -0
- letta_client/_utils/_resources_proxy.py +24 -0
- letta_client/_utils/_streams.py +12 -0
- letta_client/_utils/_sync.py +58 -0
- letta_client/_utils/_transform.py +457 -0
- letta_client/_utils/_typing.py +156 -0
- letta_client/_utils/_utils.py +421 -0
- letta_client/_version.py +4 -0
- letta_client/lib/.keep +4 -0
- letta_client/pagination.py +280 -0
- letta_client/resources/__init__.py +215 -0
- letta_client/resources/access_tokens.py +396 -0
- letta_client/resources/agents/__init__.py +131 -0
- letta_client/resources/agents/agents.py +2148 -0
- letta_client/resources/agents/archives.py +260 -0
- letta_client/resources/agents/blocks.py +736 -0
- letta_client/resources/agents/files.py +541 -0
- letta_client/resources/agents/folders.py +422 -0
- letta_client/resources/agents/identities.py +260 -0
- letta_client/resources/agents/messages.py +1800 -0
- letta_client/resources/agents/passages.py +638 -0
- letta_client/resources/agents/tools.py +651 -0
- letta_client/resources/archives/__init__.py +33 -0
- letta_client/resources/archives/archives.py +650 -0
- letta_client/resources/archives/passages.py +309 -0
- letta_client/resources/blocks/__init__.py +33 -0
- letta_client/resources/blocks/agents.py +289 -0
- letta_client/resources/blocks/blocks.py +977 -0
- letta_client/resources/conversations/__init__.py +33 -0
- letta_client/resources/conversations/conversations.py +611 -0
- letta_client/resources/conversations/messages.py +650 -0
- letta_client/resources/folders/__init__.py +47 -0
- letta_client/resources/folders/agents.py +234 -0
- letta_client/resources/folders/files.py +581 -0
- letta_client/resources/folders/folders.py +734 -0
- letta_client/resources/mcp_servers/__init__.py +33 -0
- letta_client/resources/mcp_servers/mcp_servers.py +670 -0
- letta_client/resources/mcp_servers/tools.py +351 -0
- letta_client/resources/messages.py +455 -0
- letta_client/resources/models/__init__.py +33 -0
- letta_client/resources/models/embeddings.py +149 -0
- letta_client/resources/models/models.py +233 -0
- letta_client/resources/passages.py +259 -0
- letta_client/resources/runs/__init__.py +75 -0
- letta_client/resources/runs/messages.py +363 -0
- letta_client/resources/runs/runs.py +502 -0
- letta_client/resources/runs/steps.py +229 -0
- letta_client/resources/runs/trace.py +197 -0
- letta_client/resources/runs/usage.py +163 -0
- letta_client/resources/steps/__init__.py +75 -0
- letta_client/resources/steps/feedback.py +198 -0
- letta_client/resources/steps/messages.py +237 -0
- letta_client/resources/steps/metrics.py +167 -0
- letta_client/resources/steps/steps.py +505 -0
- letta_client/resources/steps/trace.py +169 -0
- letta_client/resources/tags.py +240 -0
- letta_client/resources/templates/__init__.py +33 -0
- letta_client/resources/templates/agents.py +229 -0
- letta_client/resources/templates/templates.py +540 -0
- letta_client/resources/tools.py +1721 -0
- letta_client/types/__init__.py +148 -530
- letta_client/types/access_token_create_params.py +32 -0
- letta_client/types/access_token_create_response.py +34 -0
- letta_client/types/access_token_delete_params.py +11 -0
- letta_client/types/access_token_list_params.py +23 -0
- letta_client/types/access_token_list_response.py +40 -0
- letta_client/types/agent_create_params.py +444 -0
- letta_client/types/agent_environment_variable.py +40 -63
- letta_client/types/agent_export_file_params.py +26 -0
- letta_client/types/agent_export_file_response.py +7 -0
- letta_client/types/agent_import_file_params.py +57 -0
- letta_client/types/agent_import_file_response.py +14 -0
- letta_client/types/agent_list_params.py +100 -0
- letta_client/types/agent_retrieve_params.py +37 -0
- letta_client/types/agent_state.py +651 -138
- letta_client/types/agent_type.py +14 -14
- letta_client/types/agent_update_params.py +386 -0
- letta_client/types/agents/__init__.py +76 -0
- letta_client/types/agents/approval_create_param.py +35 -0
- letta_client/types/agents/approval_request_message.py +57 -0
- letta_client/types/agents/approval_response_message.py +61 -0
- letta_client/types/agents/approval_return.py +22 -0
- letta_client/types/agents/approval_return_param.py +22 -0
- letta_client/types/agents/assistant_message.py +48 -0
- letta_client/types/agents/block.py +68 -0
- letta_client/types/agents/block_list_params.py +34 -0
- letta_client/types/agents/block_update_params.py +63 -0
- letta_client/types/agents/event_message.py +40 -0
- letta_client/types/agents/file_close_all_response.py +8 -0
- letta_client/types/agents/file_list_params.py +40 -0
- letta_client/types/agents/file_list_response.py +42 -0
- letta_client/types/agents/file_open_response.py +8 -0
- letta_client/types/agents/folder_list_params.py +34 -0
- letta_client/types/agents/folder_list_response.py +49 -0
- letta_client/types/agents/hidden_reasoning_message.py +49 -0
- letta_client/types/agents/image_content.py +67 -0
- letta_client/types/agents/image_content_param.py +64 -0
- letta_client/types/agents/internal_message.py +271 -0
- letta_client/types/agents/job_status.py +7 -0
- letta_client/types/agents/job_type.py +7 -0
- letta_client/types/agents/letta_assistant_message_content_union.py +19 -0
- letta_client/types/agents/letta_response.py +76 -0
- letta_client/types/agents/letta_streaming_response.py +155 -0
- letta_client/types/agents/letta_user_message_content_union.py +14 -0
- letta_client/types/agents/message.py +36 -0
- letta_client/types/agents/message_cancel_params.py +15 -0
- letta_client/types/agents/message_cancel_response.py +8 -0
- letta_client/types/agents/message_compact_params.py +145 -0
- letta_client/types/agents/message_compact_response.py +13 -0
- letta_client/types/agents/message_create_async_params.py +145 -0
- letta_client/types/agents/message_create_params.py +181 -0
- letta_client/types/agents/message_list_params.py +55 -0
- letta_client/types/agents/message_reset_params.py +12 -0
- letta_client/types/agents/message_role.py +7 -0
- letta_client/types/agents/message_stream_params.py +166 -0
- letta_client/types/agents/message_type.py +17 -0
- letta_client/types/agents/omitted_reasoning_content.py +20 -0
- letta_client/types/agents/omitted_reasoning_content_param.py +20 -0
- letta_client/types/agents/passage_create_params.py +23 -0
- letta_client/types/agents/passage_create_response.py +10 -0
- letta_client/types/agents/passage_list_params.py +28 -0
- letta_client/types/agents/passage_list_response.py +10 -0
- letta_client/types/agents/passage_search_params.py +35 -0
- letta_client/types/agents/passage_search_response.py +29 -0
- letta_client/types/agents/reasoning_content.py +27 -0
- letta_client/types/agents/reasoning_content_param.py +27 -0
- letta_client/types/agents/reasoning_message.py +50 -0
- letta_client/types/agents/redacted_reasoning_content.py +18 -0
- letta_client/types/agents/redacted_reasoning_content_param.py +17 -0
- letta_client/types/agents/run.py +91 -0
- letta_client/types/agents/summary_message.py +38 -0
- letta_client/types/agents/system_message.py +46 -0
- letta_client/types/agents/text_content.py +19 -0
- letta_client/types/agents/text_content_param.py +19 -0
- letta_client/types/agents/tool_call.py +13 -0
- letta_client/types/agents/tool_call_content.py +28 -0
- letta_client/types/agents/tool_call_content_param.py +28 -0
- letta_client/types/agents/tool_call_delta.py +15 -0
- letta_client/types/agents/tool_call_message.py +52 -0
- letta_client/types/agents/tool_execution_result.py +33 -0
- letta_client/types/agents/tool_list_params.py +34 -0
- letta_client/types/agents/tool_return.py +29 -0
- letta_client/types/agents/tool_return_content.py +22 -0
- letta_client/types/agents/tool_return_content_param.py +21 -0
- letta_client/types/agents/tool_return_param.py +30 -0
- letta_client/types/agents/tool_run_params.py +16 -0
- letta_client/types/agents/tool_update_approval_params.py +21 -0
- letta_client/types/agents/user_message.py +50 -0
- letta_client/types/anthropic_model_settings.py +62 -0
- letta_client/types/anthropic_model_settings_param.py +59 -0
- letta_client/types/archive.py +46 -0
- letta_client/types/archive_create_params.py +22 -0
- letta_client/types/archive_list_params.py +40 -0
- letta_client/types/archive_update_params.py +14 -0
- letta_client/types/archives/__init__.py +5 -0
- letta_client/types/archives/passage_create_params.py +21 -0
- letta_client/types/azure_model_settings.py +36 -0
- letta_client/types/azure_model_settings_param.py +33 -0
- letta_client/types/bedrock_model_settings.py +36 -0
- letta_client/types/bedrock_model_settings_param.py +33 -0
- letta_client/types/block_create_params.py +59 -0
- letta_client/types/block_list_params.py +102 -0
- letta_client/types/block_response.py +66 -0
- letta_client/types/block_update_params.py +60 -0
- letta_client/types/blocks/__init__.py +5 -0
- letta_client/types/blocks/agent_list_params.py +61 -0
- letta_client/types/child_tool_rule.py +37 -26
- letta_client/types/child_tool_rule_param.py +50 -0
- letta_client/types/conditional_tool_rule.py +19 -35
- letta_client/types/conditional_tool_rule_param.py +31 -0
- letta_client/types/continue_tool_rule.py +13 -23
- letta_client/types/continue_tool_rule_param.py +22 -0
- letta_client/types/conversation.py +42 -0
- letta_client/types/conversation_cancel_response.py +8 -0
- letta_client/types/conversation_create_params.py +25 -0
- letta_client/types/conversation_list_params.py +19 -0
- letta_client/types/conversation_list_response.py +10 -0
- letta_client/types/conversation_update_params.py +13 -0
- letta_client/types/conversations/__init__.py +7 -0
- letta_client/types/conversations/message_create_params.py +166 -0
- letta_client/types/conversations/message_list_params.py +43 -0
- letta_client/types/conversations/message_stream_params.py +28 -0
- letta_client/types/create_block_param.py +61 -0
- letta_client/types/create_sse_mcp_server_param.py +26 -0
- letta_client/types/create_stdio_mcp_server_param.py +25 -0
- letta_client/types/create_streamable_http_mcp_server_param.py +26 -0
- letta_client/types/deepseek_model_settings.py +36 -0
- letta_client/types/deepseek_model_settings_param.py +33 -0
- letta_client/types/embedding_config.py +47 -67
- letta_client/types/embedding_config_param.py +64 -0
- letta_client/types/embedding_model.py +81 -0
- letta_client/types/folder.py +28 -66
- letta_client/types/folder_create_params.py +33 -0
- letta_client/types/folder_list_params.py +37 -0
- letta_client/types/folder_update_params.py +27 -0
- letta_client/types/folders/__init__.py +12 -0
- letta_client/types/folders/agent_list_params.py +34 -0
- letta_client/types/folders/agent_list_response.py +8 -0
- letta_client/types/folders/file_list_params.py +37 -0
- letta_client/types/folders/file_list_response.py +70 -0
- letta_client/types/folders/file_retrieve_params.py +15 -0
- letta_client/types/folders/file_retrieve_response.py +70 -0
- letta_client/types/folders/file_upload_params.py +20 -0
- letta_client/types/folders/file_upload_response.py +70 -0
- letta_client/types/google_ai_model_settings.py +47 -0
- letta_client/types/google_ai_model_settings_param.py +44 -0
- letta_client/types/google_vertex_model_settings.py +47 -0
- letta_client/types/google_vertex_model_settings_param.py +44 -0
- letta_client/types/groq_model_settings.py +36 -0
- letta_client/types/groq_model_settings_param.py +33 -0
- letta_client/types/health_response.py +13 -0
- letta_client/types/init_tool_rule.py +24 -24
- letta_client/types/init_tool_rule_param.py +32 -0
- letta_client/types/json_object_response_format.py +9 -17
- letta_client/types/json_object_response_format_param.py +14 -0
- letta_client/types/json_schema_response_format.py +12 -21
- letta_client/types/json_schema_response_format_param.py +18 -0
- letta_client/types/letta_message_content_union_param.py +26 -0
- letta_client/types/llm_config.py +124 -75
- letta_client/types/llm_config_param.py +155 -0
- letta_client/types/max_count_per_step_tool_rule.py +16 -25
- letta_client/types/max_count_per_step_tool_rule_param.py +28 -0
- letta_client/types/mcp_server_create_params.py +23 -0
- letta_client/types/mcp_server_create_response.py +12 -0
- letta_client/types/mcp_server_list_response.py +14 -0
- letta_client/types/mcp_server_refresh_params.py +12 -0
- letta_client/types/mcp_server_retrieve_response.py +12 -0
- letta_client/types/mcp_server_update_params.py +23 -0
- letta_client/types/mcp_server_update_response.py +12 -0
- letta_client/types/mcp_servers/__init__.py +6 -0
- letta_client/types/mcp_servers/tool_list_response.py +10 -0
- letta_client/types/mcp_servers/tool_run_params.py +15 -0
- letta_client/types/message_create_param.py +38 -0
- letta_client/types/message_list_params.py +34 -0
- letta_client/types/message_list_response.py +10 -0
- letta_client/types/message_retrieve_response.py +10 -0
- letta_client/types/message_search_params.py +34 -0
- letta_client/types/message_search_response.py +124 -0
- letta_client/types/model.py +148 -0
- letta_client/types/model_list_params.py +19 -0
- letta_client/types/model_list_response.py +10 -0
- letta_client/types/models/__init__.py +5 -0
- letta_client/types/models/embedding_list_response.py +10 -0
- letta_client/types/npm_requirement.py +15 -0
- letta_client/types/npm_requirement_param.py +16 -0
- letta_client/types/openai_model_settings.py +51 -0
- letta_client/types/openai_model_settings_param.py +48 -0
- letta_client/types/parent_tool_rule.py +15 -27
- letta_client/types/parent_tool_rule_param.py +27 -0
- letta_client/types/passage.py +56 -101
- letta_client/types/passage_search_params.py +41 -0
- letta_client/types/passage_search_response.py +25 -0
- letta_client/types/pip_requirement.py +9 -21
- letta_client/types/pip_requirement_param.py +16 -0
- letta_client/types/provider_category.py +5 -3
- letta_client/types/provider_trace.py +43 -48
- letta_client/types/provider_type.py +25 -23
- letta_client/types/required_before_exit_tool_rule.py +13 -23
- letta_client/types/required_before_exit_tool_rule_param.py +22 -0
- letta_client/types/requires_approval_tool_rule.py +25 -0
- letta_client/types/requires_approval_tool_rule_param.py +25 -0
- letta_client/types/run_list_params.py +67 -0
- letta_client/types/runs/__init__.py +10 -0
- letta_client/types/runs/message_list_params.py +34 -0
- letta_client/types/runs/message_stream_params.py +28 -0
- letta_client/types/runs/step_list_params.py +28 -0
- letta_client/types/runs/trace_retrieve_params.py +12 -0
- letta_client/types/runs/trace_retrieve_response.py +8 -0
- letta_client/types/runs/usage_retrieve_response.py +31 -0
- letta_client/types/sse_mcp_server.py +32 -0
- letta_client/types/stdio_mcp_server.py +29 -0
- letta_client/types/step.py +71 -97
- letta_client/types/step_list_params.py +57 -0
- letta_client/types/steps/__init__.py +8 -0
- letta_client/types/steps/feedback_create_params.py +18 -0
- letta_client/types/steps/message_list_params.py +34 -0
- letta_client/types/steps/message_list_response.py +36 -0
- letta_client/types/steps/metric_retrieve_response.py +45 -0
- letta_client/types/stop_reason_type.py +17 -5
- letta_client/types/streamable_http_mcp_server.py +32 -0
- letta_client/types/tag_list_params.py +40 -0
- letta_client/types/tag_list_response.py +8 -0
- letta_client/types/template_create_params.py +46 -0
- letta_client/types/template_create_response.py +29 -0
- letta_client/types/template_delete_response.py +9 -0
- letta_client/types/template_update_params.py +25 -0
- letta_client/types/template_update_response.py +13 -0
- letta_client/types/templates/__init__.py +6 -0
- letta_client/types/templates/agent_create_params.py +50 -0
- letta_client/types/templates/agent_create_response.py +20 -0
- letta_client/types/terminal_tool_rule.py +13 -23
- letta_client/types/terminal_tool_rule_param.py +22 -0
- letta_client/types/text_response_format.py +9 -17
- letta_client/types/text_response_format_param.py +14 -0
- letta_client/types/together_model_settings.py +36 -0
- letta_client/types/together_model_settings_param.py +33 -0
- letta_client/types/tool.py +154 -81
- letta_client/types/tool_create_params.py +53 -0
- letta_client/types/tool_list_params.py +57 -0
- letta_client/types/tool_return_message.py +44 -31
- letta_client/types/tool_search_params.py +27 -0
- letta_client/types/tool_search_response.py +10 -0
- letta_client/types/tool_search_result.py +27 -0
- letta_client/types/tool_type.py +16 -17
- letta_client/types/tool_update_params.py +57 -0
- letta_client/types/tool_upsert_params.py +53 -0
- letta_client/types/update_sse_mcp_server_param.py +26 -0
- letta_client/types/update_stdio_mcp_server_param.py +25 -0
- letta_client/types/update_streamable_http_mcp_server_param.py +26 -0
- letta_client/types/vector_db_provider.py +7 -0
- letta_client/types/xai_model_settings.py +36 -0
- letta_client/types/xai_model_settings_param.py +33 -0
- letta_client-1.7.2.dist-info/METADATA +436 -0
- letta_client-1.7.2.dist-info/RECORD +335 -0
- {letta_client-0.1.226.dist-info → letta_client-1.7.2.dist-info}/WHEEL +1 -1
- letta_client-1.7.2.dist-info/licenses/LICENSE +201 -0
- letta_client/agents/__init__.py +0 -77
- letta_client/agents/blocks/__init__.py +0 -2
- letta_client/agents/blocks/client.py +0 -793
- letta_client/agents/client.py +0 -2371
- letta_client/agents/context/__init__.py +0 -2
- letta_client/agents/context/client.py +0 -149
- letta_client/agents/core_memory/__init__.py +0 -2
- letta_client/agents/core_memory/client.py +0 -147
- letta_client/agents/files/__init__.py +0 -2
- letta_client/agents/files/client.py +0 -430
- letta_client/agents/folders/__init__.py +0 -2
- letta_client/agents/folders/client.py +0 -412
- letta_client/agents/groups/__init__.py +0 -2
- letta_client/agents/groups/client.py +0 -169
- letta_client/agents/memory_variables/__init__.py +0 -5
- letta_client/agents/memory_variables/client.py +0 -152
- letta_client/agents/memory_variables/types/__init__.py +0 -5
- letta_client/agents/memory_variables/types/memory_variables_list_response.py +0 -19
- letta_client/agents/messages/__init__.py +0 -15
- letta_client/agents/messages/client.py +0 -1638
- letta_client/agents/messages/types/__init__.py +0 -13
- letta_client/agents/messages/types/letta_streaming_response.py +0 -22
- letta_client/agents/messages/types/messages_modify_request.py +0 -11
- letta_client/agents/messages/types/messages_modify_response.py +0 -20
- letta_client/agents/messages/types/messages_preview_raw_payload_request.py +0 -7
- letta_client/agents/passages/__init__.py +0 -2
- letta_client/agents/passages/client.py +0 -793
- letta_client/agents/sources/__init__.py +0 -2
- letta_client/agents/sources/client.py +0 -412
- letta_client/agents/templates/__init__.py +0 -5
- letta_client/agents/templates/client.py +0 -588
- letta_client/agents/templates/types/__init__.py +0 -7
- letta_client/agents/templates/types/templates_create_response.py +0 -22
- letta_client/agents/templates/types/templates_create_version_request_return_agent_state.py +0 -5
- letta_client/agents/templates/types/templates_migrate_response.py +0 -19
- letta_client/agents/tools/__init__.py +0 -2
- letta_client/agents/tools/client.py +0 -412
- letta_client/agents/types/__init__.py +0 -33
- letta_client/agents/types/agents_search_request_search_item.py +0 -16
- letta_client/agents/types/agents_search_request_search_item_field.py +0 -22
- letta_client/agents/types/agents_search_request_search_item_field_operator.py +0 -5
- letta_client/agents/types/agents_search_request_search_item_one.py +0 -22
- letta_client/agents/types/agents_search_request_search_item_one_operator.py +0 -5
- letta_client/agents/types/agents_search_request_search_item_three.py +0 -21
- letta_client/agents/types/agents_search_request_search_item_two.py +0 -21
- letta_client/agents/types/agents_search_request_search_item_zero.py +0 -20
- letta_client/agents/types/agents_search_request_sort_by.py +0 -5
- letta_client/agents/types/agents_search_response.py +0 -23
- letta_client/agents/types/create_agent_request_response_format.py +0 -8
- letta_client/agents/types/create_agent_request_tool_rules_item.py +0 -22
- letta_client/agents/types/update_agent_response_format.py +0 -8
- letta_client/agents/types/update_agent_tool_rules_item.py +0 -22
- letta_client/base_client.py +0 -232
- letta_client/batches/__init__.py +0 -2
- letta_client/batches/client.py +0 -587
- letta_client/blocks/__init__.py +0 -5
- letta_client/blocks/agents/__init__.py +0 -2
- letta_client/blocks/agents/client.py +0 -171
- letta_client/blocks/client.py +0 -1038
- letta_client/client.py +0 -661
- letta_client/client_side_access_tokens/__init__.py +0 -29
- letta_client/client_side_access_tokens/client.py +0 -524
- letta_client/client_side_access_tokens/types/__init__.py +0 -43
- letta_client/client_side_access_tokens/types/client_side_access_tokens_create_request_policy_item.py +0 -24
- letta_client/client_side_access_tokens/types/client_side_access_tokens_create_request_policy_item_access_item.py +0 -7
- letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response.py +0 -25
- letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy.py +0 -23
- letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy_data_item.py +0 -24
- letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy_data_item_access_item.py +0 -7
- letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response.py +0 -25
- letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item.py +0 -27
- letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy.py +0 -23
- letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy_data_item.py +0 -24
- 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
- letta_client/core/__init__.py +0 -51
- letta_client/core/api_error.py +0 -15
- letta_client/core/client_wrapper.py +0 -77
- letta_client/core/datetime_utils.py +0 -28
- letta_client/core/file.py +0 -67
- letta_client/core/http_client.py +0 -499
- letta_client/core/jsonable_encoder.py +0 -101
- letta_client/core/pydantic_utilities.py +0 -296
- letta_client/core/query_encoder.py +0 -58
- letta_client/core/remove_none_from_dict.py +0 -11
- letta_client/core/request_options.py +0 -35
- letta_client/core/serialization.py +0 -272
- letta_client/core/unchecked_base_model.py +0 -305
- letta_client/embedding_models/__init__.py +0 -2
- letta_client/embedding_models/client.py +0 -136
- letta_client/environment.py +0 -8
- letta_client/errors/__init__.py +0 -17
- letta_client/errors/bad_request_error.py +0 -9
- letta_client/errors/conflict_error.py +0 -9
- letta_client/errors/internal_server_error.py +0 -9
- letta_client/errors/not_found_error.py +0 -9
- letta_client/errors/payment_required_error.py +0 -9
- letta_client/errors/unprocessable_entity_error.py +0 -9
- letta_client/folders/__init__.py +0 -5
- letta_client/folders/client.py +0 -1307
- letta_client/folders/files/__init__.py +0 -2
- letta_client/folders/files/client.py +0 -474
- letta_client/folders/passages/__init__.py +0 -2
- letta_client/folders/passages/client.py +0 -189
- letta_client/groups/__init__.py +0 -14
- letta_client/groups/client.py +0 -964
- letta_client/groups/messages/__init__.py +0 -5
- letta_client/groups/messages/client.py +0 -1015
- letta_client/groups/messages/types/__init__.py +0 -7
- letta_client/groups/messages/types/letta_streaming_response.py +0 -20
- letta_client/groups/messages/types/messages_modify_request.py +0 -11
- letta_client/groups/messages/types/messages_modify_response.py +0 -20
- letta_client/groups/types/__init__.py +0 -6
- letta_client/groups/types/group_create_manager_config.py +0 -12
- letta_client/groups/types/group_update_manager_config.py +0 -16
- letta_client/health/__init__.py +0 -2
- letta_client/health/client.py +0 -110
- letta_client/identities/__init__.py +0 -5
- letta_client/identities/client.py +0 -1201
- letta_client/identities/properties/__init__.py +0 -2
- letta_client/identities/properties/client.py +0 -183
- letta_client/jobs/__init__.py +0 -2
- letta_client/jobs/client.py +0 -749
- letta_client/messages/__init__.py +0 -2
- letta_client/messages/client.py +0 -213
- letta_client/models/__init__.py +0 -2
- letta_client/models/client.py +0 -174
- letta_client/projects/__init__.py +0 -5
- letta_client/projects/client.py +0 -150
- letta_client/projects/types/__init__.py +0 -6
- letta_client/projects/types/projects_list_response.py +0 -23
- letta_client/projects/types/projects_list_response_projects_item.py +0 -21
- letta_client/providers/__init__.py +0 -2
- letta_client/providers/client.py +0 -789
- letta_client/runs/__init__.py +0 -5
- letta_client/runs/client.py +0 -551
- letta_client/runs/messages/__init__.py +0 -2
- letta_client/runs/messages/client.py +0 -236
- letta_client/runs/steps/__init__.py +0 -2
- letta_client/runs/steps/client.py +0 -219
- letta_client/runs/usage/__init__.py +0 -2
- letta_client/runs/usage/client.py +0 -147
- letta_client/sources/__init__.py +0 -5
- letta_client/sources/client.py +0 -1462
- letta_client/sources/files/__init__.py +0 -2
- letta_client/sources/files/client.py +0 -474
- letta_client/sources/passages/__init__.py +0 -2
- letta_client/sources/passages/client.py +0 -189
- letta_client/steps/__init__.py +0 -6
- letta_client/steps/client.py +0 -408
- letta_client/steps/feedback/__init__.py +0 -2
- letta_client/steps/feedback/client.py +0 -168
- letta_client/steps/types/__init__.py +0 -5
- letta_client/steps/types/steps_list_request_feedback.py +0 -5
- letta_client/tags/__init__.py +0 -2
- letta_client/tags/client.py +0 -171
- letta_client/telemetry/__init__.py +0 -2
- letta_client/telemetry/client.py +0 -145
- letta_client/templates/__init__.py +0 -18
- letta_client/templates/agents/__init__.py +0 -13
- letta_client/templates/agents/client.py +0 -256
- letta_client/templates/agents/types/__init__.py +0 -11
- letta_client/templates/agents/types/agents_create_request_initial_message_sequence_item.py +0 -26
- letta_client/templates/agents/types/agents_create_request_initial_message_sequence_item_role.py +0 -7
- letta_client/templates/agents/types/agents_create_response.py +0 -20
- letta_client/templates/client.py +0 -162
- letta_client/templates/types/__init__.py +0 -6
- letta_client/templates/types/templates_list_response.py +0 -23
- letta_client/templates/types/templates_list_response_templates_item.py +0 -20
- letta_client/tools/__init__.py +0 -27
- letta_client/tools/client.py +0 -3063
- letta_client/tools/types/__init__.py +0 -25
- letta_client/tools/types/add_mcp_server_request.py +0 -8
- letta_client/tools/types/add_mcp_server_response_item.py +0 -8
- letta_client/tools/types/connect_mcp_server_request.py +0 -8
- letta_client/tools/types/connect_mcp_server_response_event.py +0 -8
- letta_client/tools/types/delete_mcp_server_response_item.py +0 -8
- letta_client/tools/types/list_mcp_servers_response_value.py +0 -8
- letta_client/tools/types/streaming_response.py +0 -23
- letta_client/tools/types/test_mcp_server_request.py +0 -8
- letta_client/tools/types/update_mcp_server_request.py +0 -8
- letta_client/tools/types/update_mcp_server_response.py +0 -8
- letta_client/types/action_model.py +0 -38
- letta_client/types/action_parameters_model.py +0 -27
- letta_client/types/action_response_model.py +0 -27
- letta_client/types/agent_schema.py +0 -49
- letta_client/types/agent_schema_tool_rules_item.py +0 -11
- letta_client/types/agent_state_response_format.py +0 -8
- letta_client/types/agent_state_tool_rules_item.py +0 -22
- letta_client/types/app_auth_scheme.py +0 -34
- letta_client/types/app_auth_scheme_auth_mode.py +0 -19
- letta_client/types/app_model.py +0 -44
- letta_client/types/assistant_message.py +0 -42
- letta_client/types/assistant_message_content.py +0 -6
- letta_client/types/audio.py +0 -19
- letta_client/types/auth_request.py +0 -22
- letta_client/types/auth_response.py +0 -29
- letta_client/types/auth_scheme_field.py +0 -30
- letta_client/types/bad_request_error_body.py +0 -19
- letta_client/types/base_64_image.py +0 -33
- letta_client/types/base_tool_rule_schema.py +0 -20
- letta_client/types/batch_job.py +0 -81
- letta_client/types/block.py +0 -97
- letta_client/types/block_update.py +0 -71
- letta_client/types/chat_completion_assistant_message_param.py +0 -29
- letta_client/types/chat_completion_assistant_message_param_content.py +0 -8
- letta_client/types/chat_completion_assistant_message_param_content_item.py +0 -9
- letta_client/types/chat_completion_audio_param.py +0 -22
- letta_client/types/chat_completion_audio_param_format.py +0 -5
- letta_client/types/chat_completion_audio_param_voice.py +0 -18
- letta_client/types/chat_completion_content_part_image_param.py +0 -21
- letta_client/types/chat_completion_content_part_input_audio_param.py +0 -21
- letta_client/types/chat_completion_content_part_refusal_param.py +0 -20
- letta_client/types/chat_completion_content_part_text_param.py +0 -20
- letta_client/types/chat_completion_developer_message_param.py +0 -22
- letta_client/types/chat_completion_developer_message_param_content.py +0 -6
- letta_client/types/chat_completion_function_call_option_param.py +0 -19
- letta_client/types/chat_completion_function_message_param.py +0 -21
- letta_client/types/chat_completion_message_tool_call.py +0 -22
- letta_client/types/chat_completion_message_tool_call_param.py +0 -24
- letta_client/types/chat_completion_named_tool_choice_param.py +0 -23
- letta_client/types/chat_completion_prediction_content_param.py +0 -21
- letta_client/types/chat_completion_prediction_content_param_content.py +0 -6
- letta_client/types/chat_completion_stream_options_param.py +0 -19
- letta_client/types/chat_completion_system_message_param.py +0 -22
- letta_client/types/chat_completion_system_message_param_content.py +0 -6
- letta_client/types/chat_completion_tool_message_param.py +0 -22
- letta_client/types/chat_completion_tool_message_param_content.py +0 -6
- letta_client/types/chat_completion_tool_param.py +0 -21
- letta_client/types/chat_completion_user_message_param.py +0 -22
- letta_client/types/chat_completion_user_message_param_content.py +0 -6
- letta_client/types/chat_completion_user_message_param_content_item.py +0 -14
- letta_client/types/child_tool_rule_schema.py +0 -21
- letta_client/types/code_input.py +0 -22
- letta_client/types/completion_create_params_non_streaming.py +0 -64
- letta_client/types/completion_create_params_non_streaming_function_call.py +0 -8
- letta_client/types/completion_create_params_non_streaming_messages_item.py +0 -18
- letta_client/types/completion_create_params_non_streaming_modalities_item.py +0 -5
- letta_client/types/completion_create_params_non_streaming_model.py +0 -62
- letta_client/types/completion_create_params_non_streaming_reasoning_effort.py +0 -5
- letta_client/types/completion_create_params_non_streaming_response_format.py +0 -10
- letta_client/types/completion_create_params_non_streaming_service_tier.py +0 -7
- letta_client/types/completion_create_params_non_streaming_stop.py +0 -5
- letta_client/types/completion_create_params_non_streaming_tool_choice.py +0 -8
- letta_client/types/completion_create_params_streaming.py +0 -64
- letta_client/types/completion_create_params_streaming_function_call.py +0 -8
- letta_client/types/completion_create_params_streaming_messages_item.py +0 -18
- letta_client/types/completion_create_params_streaming_modalities_item.py +0 -5
- letta_client/types/completion_create_params_streaming_model.py +0 -62
- letta_client/types/completion_create_params_streaming_reasoning_effort.py +0 -5
- letta_client/types/completion_create_params_streaming_response_format.py +0 -10
- letta_client/types/completion_create_params_streaming_service_tier.py +0 -7
- letta_client/types/completion_create_params_streaming_stop.py +0 -5
- letta_client/types/completion_create_params_streaming_tool_choice.py +0 -8
- letta_client/types/components_schemas_text_content.py +0 -5
- letta_client/types/conditional_tool_rule_schema.py +0 -23
- letta_client/types/conflict_error_body.py +0 -21
- letta_client/types/context_window_overview.py +0 -108
- letta_client/types/core_memory_block_schema.py +0 -31
- letta_client/types/create_block.py +0 -67
- letta_client/types/duplicate_file_handling.py +0 -5
- letta_client/types/dynamic_manager.py +0 -33
- letta_client/types/dynamic_manager_update.py +0 -33
- letta_client/types/e_2_b_sandbox_config.py +0 -32
- letta_client/types/embedding_config_embedding_endpoint_type.py +0 -29
- letta_client/types/feedback_type.py +0 -5
- letta_client/types/file.py +0 -21
- letta_client/types/file_block.py +0 -103
- letta_client/types/file_file.py +0 -21
- letta_client/types/file_metadata.py +0 -108
- letta_client/types/file_processing_status.py +0 -5
- letta_client/types/file_stats.py +0 -36
- letta_client/types/function_call.py +0 -20
- letta_client/types/function_definition_input.py +0 -22
- letta_client/types/function_definition_output.py +0 -22
- letta_client/types/function_output.py +0 -20
- letta_client/types/function_tool.py +0 -21
- letta_client/types/generate_tool_input.py +0 -42
- letta_client/types/generate_tool_output.py +0 -33
- letta_client/types/group.py +0 -88
- letta_client/types/health.py +0 -24
- letta_client/types/hidden_reasoning_message.py +0 -43
- letta_client/types/hidden_reasoning_message_state.py +0 -5
- letta_client/types/http_validation_error.py +0 -20
- letta_client/types/identity.py +0 -59
- letta_client/types/identity_property.py +0 -38
- letta_client/types/identity_property_type.py +0 -5
- letta_client/types/identity_property_value.py +0 -5
- letta_client/types/identity_type.py +0 -5
- letta_client/types/image_content.py +0 -24
- letta_client/types/image_content_source.py +0 -8
- letta_client/types/image_url.py +0 -21
- letta_client/types/image_url_detail.py +0 -5
- letta_client/types/input_audio.py +0 -21
- letta_client/types/input_audio_format.py +0 -5
- letta_client/types/internal_server_error_body.py +0 -19
- letta_client/types/job.py +0 -96
- letta_client/types/job_status.py +0 -7
- letta_client/types/job_type.py +0 -5
- letta_client/types/json_schema.py +0 -26
- letta_client/types/letta_batch_messages.py +0 -20
- letta_client/types/letta_batch_request.py +0 -59
- letta_client/types/letta_image.py +0 -38
- letta_client/types/letta_message_content_union.py +0 -13
- letta_client/types/letta_message_union.py +0 -20
- letta_client/types/letta_request.py +0 -54
- letta_client/types/letta_request_config.py +0 -38
- letta_client/types/letta_response.py +0 -40
- letta_client/types/letta_stop_reason.py +0 -32
- letta_client/types/letta_streaming_request.py +0 -59
- letta_client/types/letta_usage_statistics.py +0 -59
- letta_client/types/letta_user_message_content_union.py +0 -7
- letta_client/types/llm_config_model_endpoint_type.py +0 -31
- letta_client/types/llm_config_reasoning_effort.py +0 -5
- letta_client/types/local_sandbox_config.py +0 -38
- letta_client/types/manager_type.py +0 -7
- letta_client/types/max_count_per_step_tool_rule_schema.py +0 -21
- letta_client/types/mcp_server_type.py +0 -5
- letta_client/types/mcp_tool.py +0 -38
- letta_client/types/memory.py +0 -38
- letta_client/types/message.py +0 -139
- letta_client/types/message_content_item.py +0 -20
- letta_client/types/message_create.py +0 -58
- letta_client/types/message_create_content.py +0 -6
- letta_client/types/message_create_role.py +0 -5
- letta_client/types/message_role.py +0 -5
- letta_client/types/message_schema.py +0 -29
- letta_client/types/message_type.py +0 -16
- letta_client/types/not_found_error_body.py +0 -19
- letta_client/types/not_found_error_body_message.py +0 -11
- letta_client/types/omitted_reasoning_content.py +0 -19
- letta_client/types/openai_types_chat_chat_completion_message_tool_call_param_function.py +0 -20
- letta_client/types/openai_types_chat_chat_completion_named_tool_choice_param_function.py +0 -19
- letta_client/types/openai_types_chat_completion_create_params_function.py +0 -21
- letta_client/types/organization.py +0 -38
- letta_client/types/organization_create.py +0 -27
- letta_client/types/organization_sources_stats.py +0 -42
- letta_client/types/organization_update.py +0 -27
- letta_client/types/parameter_properties.py +0 -20
- letta_client/types/parameters_schema.py +0 -22
- letta_client/types/payment_required_error_body.py +0 -20
- letta_client/types/provider.py +0 -65
- letta_client/types/provider_check.py +0 -38
- letta_client/types/reasoning_content.py +0 -33
- letta_client/types/reasoning_message.py +0 -44
- letta_client/types/reasoning_message_source.py +0 -5
- letta_client/types/redacted_reasoning_content.py +0 -23
- letta_client/types/response_format_json_object.py +0 -19
- letta_client/types/response_format_json_schema.py +0 -21
- letta_client/types/response_format_text.py +0 -19
- letta_client/types/round_robin_manager.py +0 -23
- letta_client/types/round_robin_manager_update.py +0 -23
- letta_client/types/run.py +0 -99
- letta_client/types/sandbox_config.py +0 -54
- letta_client/types/sandbox_config_create.py +0 -23
- letta_client/types/sandbox_config_create_config.py +0 -7
- letta_client/types/sandbox_config_update.py +0 -27
- letta_client/types/sandbox_config_update_config.py +0 -7
- letta_client/types/sandbox_environment_variable.py +0 -63
- letta_client/types/sandbox_environment_variable_create.py +0 -32
- letta_client/types/sandbox_environment_variable_update.py +0 -32
- letta_client/types/sandbox_type.py +0 -5
- letta_client/types/sleeptime_manager.py +0 -28
- letta_client/types/sleeptime_manager_update.py +0 -28
- letta_client/types/source.py +0 -81
- letta_client/types/source_create.py +0 -57
- letta_client/types/source_stats.py +0 -47
- letta_client/types/source_update.py +0 -47
- letta_client/types/sse_server_config.py +0 -55
- letta_client/types/stdio_server_config.py +0 -39
- letta_client/types/step_feedback.py +0 -5
- letta_client/types/streamable_http_server_config.py +0 -55
- letta_client/types/supervisor_manager.py +0 -23
- letta_client/types/supervisor_manager_update.py +0 -23
- letta_client/types/system_message.py +0 -41
- letta_client/types/tag_schema.py +0 -19
- letta_client/types/text_content.py +0 -23
- letta_client/types/tool_annotations.py +0 -36
- letta_client/types/tool_call.py +0 -21
- letta_client/types/tool_call_content.py +0 -33
- letta_client/types/tool_call_delta.py +0 -21
- letta_client/types/tool_call_message.py +0 -39
- letta_client/types/tool_call_message_tool_call.py +0 -7
- letta_client/types/tool_create.py +0 -58
- letta_client/types/tool_env_var_schema.py +0 -23
- letta_client/types/tool_json_schema.py +0 -24
- letta_client/types/tool_return.py +0 -33
- letta_client/types/tool_return_content.py +0 -33
- letta_client/types/tool_return_message_status.py +0 -5
- letta_client/types/tool_return_status.py +0 -5
- letta_client/types/tool_schema.py +0 -35
- letta_client/types/update_assistant_message.py +0 -24
- letta_client/types/update_assistant_message_content.py +0 -6
- letta_client/types/update_reasoning_message.py +0 -20
- letta_client/types/update_ssemcp_server.py +0 -41
- letta_client/types/update_stdio_mcp_server.py +0 -32
- letta_client/types/update_streamable_httpmcp_server.py +0 -46
- letta_client/types/update_system_message.py +0 -23
- letta_client/types/update_user_message.py +0 -24
- letta_client/types/update_user_message_content.py +0 -6
- letta_client/types/url_image.py +0 -23
- letta_client/types/usage_statistics.py +0 -25
- letta_client/types/usage_statistics_completion_token_details.py +0 -19
- letta_client/types/usage_statistics_prompt_token_details.py +0 -19
- letta_client/types/user.py +0 -52
- letta_client/types/user_create.py +0 -22
- letta_client/types/user_message.py +0 -42
- letta_client/types/user_message_content.py +0 -6
- letta_client/types/user_update.py +0 -27
- letta_client/types/validation_error.py +0 -22
- letta_client/types/validation_error_loc_item.py +0 -5
- letta_client/types/voice_sleeptime_manager.py +0 -33
- letta_client/types/voice_sleeptime_manager_update.py +0 -33
- letta_client/types/web_search_options.py +0 -22
- letta_client/types/web_search_options_search_context_size.py +0 -5
- letta_client/types/web_search_options_user_location.py +0 -21
- letta_client/types/web_search_options_user_location_approximate.py +0 -22
- letta_client/version.py +0 -3
- letta_client/voice/__init__.py +0 -2
- letta_client/voice/client.py +0 -177
- letta_client-0.1.226.dist-info/METADATA +0 -190
- letta_client-0.1.226.dist-info/RECORD +0 -452
letta_client/_client.py
ADDED
|
@@ -0,0 +1,1136 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import os
|
|
6
|
+
from typing import TYPE_CHECKING, Any, Dict, Mapping, cast
|
|
7
|
+
from typing_extensions import Self, Literal, override
|
|
8
|
+
|
|
9
|
+
import httpx
|
|
10
|
+
|
|
11
|
+
from . import _exceptions
|
|
12
|
+
from ._qs import Querystring
|
|
13
|
+
from ._types import (
|
|
14
|
+
Body,
|
|
15
|
+
Omit,
|
|
16
|
+
Query,
|
|
17
|
+
Headers,
|
|
18
|
+
Timeout,
|
|
19
|
+
NotGiven,
|
|
20
|
+
Transport,
|
|
21
|
+
ProxiesTypes,
|
|
22
|
+
RequestOptions,
|
|
23
|
+
not_given,
|
|
24
|
+
)
|
|
25
|
+
from ._utils import is_given, get_async_library
|
|
26
|
+
from ._compat import cached_property
|
|
27
|
+
from ._version import __version__
|
|
28
|
+
from ._response import (
|
|
29
|
+
to_raw_response_wrapper,
|
|
30
|
+
to_streamed_response_wrapper,
|
|
31
|
+
async_to_raw_response_wrapper,
|
|
32
|
+
async_to_streamed_response_wrapper,
|
|
33
|
+
)
|
|
34
|
+
from ._streaming import Stream as Stream, AsyncStream as AsyncStream
|
|
35
|
+
from ._exceptions import APIStatusError
|
|
36
|
+
from ._base_client import (
|
|
37
|
+
DEFAULT_MAX_RETRIES,
|
|
38
|
+
SyncAPIClient,
|
|
39
|
+
AsyncAPIClient,
|
|
40
|
+
make_request_options,
|
|
41
|
+
)
|
|
42
|
+
from .types.health_response import HealthResponse
|
|
43
|
+
|
|
44
|
+
if TYPE_CHECKING:
|
|
45
|
+
from .resources import (
|
|
46
|
+
runs,
|
|
47
|
+
tags,
|
|
48
|
+
steps,
|
|
49
|
+
tools,
|
|
50
|
+
agents,
|
|
51
|
+
blocks,
|
|
52
|
+
models,
|
|
53
|
+
folders,
|
|
54
|
+
archives,
|
|
55
|
+
messages,
|
|
56
|
+
passages,
|
|
57
|
+
templates,
|
|
58
|
+
mcp_servers,
|
|
59
|
+
access_tokens,
|
|
60
|
+
conversations,
|
|
61
|
+
)
|
|
62
|
+
from .resources.tags import TagsResource, AsyncTagsResource
|
|
63
|
+
from .resources.tools import ToolsResource, AsyncToolsResource
|
|
64
|
+
from .resources.messages import MessagesResource, AsyncMessagesResource
|
|
65
|
+
from .resources.passages import PassagesResource, AsyncPassagesResource
|
|
66
|
+
from .resources.runs.runs import RunsResource, AsyncRunsResource
|
|
67
|
+
from .resources.steps.steps import StepsResource, AsyncStepsResource
|
|
68
|
+
from .resources.access_tokens import AccessTokensResource, AsyncAccessTokensResource
|
|
69
|
+
from .resources.agents.agents import AgentsResource, AsyncAgentsResource
|
|
70
|
+
from .resources.blocks.blocks import BlocksResource, AsyncBlocksResource
|
|
71
|
+
from .resources.models.models import ModelsResource, AsyncModelsResource
|
|
72
|
+
from .resources.folders.folders import FoldersResource, AsyncFoldersResource
|
|
73
|
+
from .resources.archives.archives import ArchivesResource, AsyncArchivesResource
|
|
74
|
+
from .resources.templates.templates import TemplatesResource, AsyncTemplatesResource
|
|
75
|
+
from .resources.mcp_servers.mcp_servers import McpServersResource, AsyncMcpServersResource
|
|
76
|
+
from .resources.conversations.conversations import ConversationsResource, AsyncConversationsResource
|
|
77
|
+
|
|
78
|
+
__all__ = [
|
|
79
|
+
"ENVIRONMENTS",
|
|
80
|
+
"Timeout",
|
|
81
|
+
"Transport",
|
|
82
|
+
"ProxiesTypes",
|
|
83
|
+
"RequestOptions",
|
|
84
|
+
"Letta",
|
|
85
|
+
"AsyncLetta",
|
|
86
|
+
"Client",
|
|
87
|
+
"AsyncClient",
|
|
88
|
+
]
|
|
89
|
+
|
|
90
|
+
ENVIRONMENTS: Dict[str, str] = {
|
|
91
|
+
"cloud": "https://api.letta.com",
|
|
92
|
+
"local": "http://localhost:8283",
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
class Letta(SyncAPIClient):
|
|
97
|
+
# client options
|
|
98
|
+
api_key: str | None
|
|
99
|
+
project_id: str | None
|
|
100
|
+
project: str | None
|
|
101
|
+
|
|
102
|
+
_environment: Literal["cloud", "local"] | NotGiven
|
|
103
|
+
|
|
104
|
+
def __init__(
|
|
105
|
+
self,
|
|
106
|
+
*,
|
|
107
|
+
api_key: str | None = None,
|
|
108
|
+
project_id: str | None = None,
|
|
109
|
+
project: str | None = None,
|
|
110
|
+
environment: Literal["cloud", "local"] | NotGiven = not_given,
|
|
111
|
+
base_url: str | httpx.URL | None | NotGiven = not_given,
|
|
112
|
+
timeout: float | Timeout | None | NotGiven = not_given,
|
|
113
|
+
max_retries: int = DEFAULT_MAX_RETRIES,
|
|
114
|
+
default_headers: Mapping[str, str] | None = None,
|
|
115
|
+
default_query: Mapping[str, object] | None = None,
|
|
116
|
+
# Configure a custom httpx client.
|
|
117
|
+
# We provide a `DefaultHttpxClient` class that you can pass to retain the default values we use for `limits`, `timeout` & `follow_redirects`.
|
|
118
|
+
# See the [httpx documentation](https://www.python-httpx.org/api/#client) for more details.
|
|
119
|
+
http_client: httpx.Client | None = None,
|
|
120
|
+
# Enable or disable schema validation for data returned by the API.
|
|
121
|
+
# When enabled an error APIResponseValidationError is raised
|
|
122
|
+
# if the API responds with invalid data for the expected schema.
|
|
123
|
+
#
|
|
124
|
+
# This parameter may be removed or changed in the future.
|
|
125
|
+
# If you rely on this feature, please open a GitHub issue
|
|
126
|
+
# outlining your use-case to help us decide if it should be
|
|
127
|
+
# part of our public interface in the future.
|
|
128
|
+
_strict_response_validation: bool = False,
|
|
129
|
+
) -> None:
|
|
130
|
+
"""Construct a new synchronous Letta client instance.
|
|
131
|
+
|
|
132
|
+
This automatically infers the `api_key` argument from the `LETTA_API_KEY` environment variable if it is not provided.
|
|
133
|
+
"""
|
|
134
|
+
if api_key is None:
|
|
135
|
+
api_key = os.environ.get("LETTA_API_KEY")
|
|
136
|
+
self.api_key = api_key
|
|
137
|
+
|
|
138
|
+
self.project_id = project_id
|
|
139
|
+
|
|
140
|
+
self.project = project
|
|
141
|
+
|
|
142
|
+
self._environment = environment
|
|
143
|
+
|
|
144
|
+
base_url_env = os.environ.get("LETTA_BASE_URL")
|
|
145
|
+
if is_given(base_url) and base_url is not None:
|
|
146
|
+
# cast required because mypy doesn't understand the type narrowing
|
|
147
|
+
base_url = cast("str | httpx.URL", base_url) # pyright: ignore[reportUnnecessaryCast]
|
|
148
|
+
elif is_given(environment):
|
|
149
|
+
if base_url_env and base_url is not None:
|
|
150
|
+
raise ValueError(
|
|
151
|
+
"Ambiguous URL; The `LETTA_BASE_URL` env var and the `environment` argument are given. If you want to use the environment, you must pass base_url=None",
|
|
152
|
+
)
|
|
153
|
+
|
|
154
|
+
try:
|
|
155
|
+
base_url = ENVIRONMENTS[environment]
|
|
156
|
+
except KeyError as exc:
|
|
157
|
+
raise ValueError(f"Unknown environment: {environment}") from exc
|
|
158
|
+
elif base_url_env is not None:
|
|
159
|
+
base_url = base_url_env
|
|
160
|
+
else:
|
|
161
|
+
self._environment = environment = "cloud"
|
|
162
|
+
|
|
163
|
+
try:
|
|
164
|
+
base_url = ENVIRONMENTS[environment]
|
|
165
|
+
except KeyError as exc:
|
|
166
|
+
raise ValueError(f"Unknown environment: {environment}") from exc
|
|
167
|
+
|
|
168
|
+
super().__init__(
|
|
169
|
+
version=__version__,
|
|
170
|
+
base_url=base_url,
|
|
171
|
+
max_retries=max_retries,
|
|
172
|
+
timeout=timeout,
|
|
173
|
+
http_client=http_client,
|
|
174
|
+
custom_headers=default_headers,
|
|
175
|
+
custom_query=default_query,
|
|
176
|
+
_strict_response_validation=_strict_response_validation,
|
|
177
|
+
)
|
|
178
|
+
|
|
179
|
+
self._default_stream_cls = Stream
|
|
180
|
+
|
|
181
|
+
@cached_property
|
|
182
|
+
def agents(self) -> AgentsResource:
|
|
183
|
+
from .resources.agents import AgentsResource
|
|
184
|
+
|
|
185
|
+
return AgentsResource(self)
|
|
186
|
+
|
|
187
|
+
@cached_property
|
|
188
|
+
def tools(self) -> ToolsResource:
|
|
189
|
+
from .resources.tools import ToolsResource
|
|
190
|
+
|
|
191
|
+
return ToolsResource(self)
|
|
192
|
+
|
|
193
|
+
@cached_property
|
|
194
|
+
def blocks(self) -> BlocksResource:
|
|
195
|
+
from .resources.blocks import BlocksResource
|
|
196
|
+
|
|
197
|
+
return BlocksResource(self)
|
|
198
|
+
|
|
199
|
+
@cached_property
|
|
200
|
+
def archives(self) -> ArchivesResource:
|
|
201
|
+
from .resources.archives import ArchivesResource
|
|
202
|
+
|
|
203
|
+
return ArchivesResource(self)
|
|
204
|
+
|
|
205
|
+
@cached_property
|
|
206
|
+
def folders(self) -> FoldersResource:
|
|
207
|
+
from .resources.folders import FoldersResource
|
|
208
|
+
|
|
209
|
+
return FoldersResource(self)
|
|
210
|
+
|
|
211
|
+
@cached_property
|
|
212
|
+
def models(self) -> ModelsResource:
|
|
213
|
+
from .resources.models import ModelsResource
|
|
214
|
+
|
|
215
|
+
return ModelsResource(self)
|
|
216
|
+
|
|
217
|
+
@cached_property
|
|
218
|
+
def mcp_servers(self) -> McpServersResource:
|
|
219
|
+
from .resources.mcp_servers import McpServersResource
|
|
220
|
+
|
|
221
|
+
return McpServersResource(self)
|
|
222
|
+
|
|
223
|
+
@cached_property
|
|
224
|
+
def runs(self) -> RunsResource:
|
|
225
|
+
from .resources.runs import RunsResource
|
|
226
|
+
|
|
227
|
+
return RunsResource(self)
|
|
228
|
+
|
|
229
|
+
@cached_property
|
|
230
|
+
def steps(self) -> StepsResource:
|
|
231
|
+
from .resources.steps import StepsResource
|
|
232
|
+
|
|
233
|
+
return StepsResource(self)
|
|
234
|
+
|
|
235
|
+
@cached_property
|
|
236
|
+
def templates(self) -> TemplatesResource:
|
|
237
|
+
from .resources.templates import TemplatesResource
|
|
238
|
+
|
|
239
|
+
return TemplatesResource(self)
|
|
240
|
+
|
|
241
|
+
@cached_property
|
|
242
|
+
def tags(self) -> TagsResource:
|
|
243
|
+
from .resources.tags import TagsResource
|
|
244
|
+
|
|
245
|
+
return TagsResource(self)
|
|
246
|
+
|
|
247
|
+
@cached_property
|
|
248
|
+
def messages(self) -> MessagesResource:
|
|
249
|
+
from .resources.messages import MessagesResource
|
|
250
|
+
|
|
251
|
+
return MessagesResource(self)
|
|
252
|
+
|
|
253
|
+
@cached_property
|
|
254
|
+
def passages(self) -> PassagesResource:
|
|
255
|
+
from .resources.passages import PassagesResource
|
|
256
|
+
|
|
257
|
+
return PassagesResource(self)
|
|
258
|
+
|
|
259
|
+
@cached_property
|
|
260
|
+
def conversations(self) -> ConversationsResource:
|
|
261
|
+
from .resources.conversations import ConversationsResource
|
|
262
|
+
|
|
263
|
+
return ConversationsResource(self)
|
|
264
|
+
|
|
265
|
+
@cached_property
|
|
266
|
+
def access_tokens(self) -> AccessTokensResource:
|
|
267
|
+
from .resources.access_tokens import AccessTokensResource
|
|
268
|
+
|
|
269
|
+
return AccessTokensResource(self)
|
|
270
|
+
|
|
271
|
+
@cached_property
|
|
272
|
+
def with_raw_response(self) -> LettaWithRawResponse:
|
|
273
|
+
return LettaWithRawResponse(self)
|
|
274
|
+
|
|
275
|
+
@cached_property
|
|
276
|
+
def with_streaming_response(self) -> LettaWithStreamedResponse:
|
|
277
|
+
return LettaWithStreamedResponse(self)
|
|
278
|
+
|
|
279
|
+
@property
|
|
280
|
+
@override
|
|
281
|
+
def qs(self) -> Querystring:
|
|
282
|
+
return Querystring(nested_format="dots", array_format="repeat")
|
|
283
|
+
|
|
284
|
+
@property
|
|
285
|
+
@override
|
|
286
|
+
def auth_headers(self) -> dict[str, str]:
|
|
287
|
+
api_key = self.api_key
|
|
288
|
+
if api_key is None:
|
|
289
|
+
return {}
|
|
290
|
+
return {"Authorization": f"Bearer {api_key}"}
|
|
291
|
+
|
|
292
|
+
@property
|
|
293
|
+
@override
|
|
294
|
+
def default_headers(self) -> dict[str, str | Omit]:
|
|
295
|
+
return {
|
|
296
|
+
**super().default_headers,
|
|
297
|
+
"X-Stainless-Async": "false",
|
|
298
|
+
"X-Project-Id": self.project_id if self.project_id is not None else Omit(),
|
|
299
|
+
"X-Project": self.project if self.project is not None else Omit(),
|
|
300
|
+
**self._custom_headers,
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
def copy(
|
|
304
|
+
self,
|
|
305
|
+
*,
|
|
306
|
+
api_key: str | None = None,
|
|
307
|
+
project_id: str | None = None,
|
|
308
|
+
project: str | None = None,
|
|
309
|
+
environment: Literal["cloud", "local"] | None = None,
|
|
310
|
+
base_url: str | httpx.URL | None = None,
|
|
311
|
+
timeout: float | Timeout | None | NotGiven = not_given,
|
|
312
|
+
http_client: httpx.Client | None = None,
|
|
313
|
+
max_retries: int | NotGiven = not_given,
|
|
314
|
+
default_headers: Mapping[str, str] | None = None,
|
|
315
|
+
set_default_headers: Mapping[str, str] | None = None,
|
|
316
|
+
default_query: Mapping[str, object] | None = None,
|
|
317
|
+
set_default_query: Mapping[str, object] | None = None,
|
|
318
|
+
_extra_kwargs: Mapping[str, Any] = {},
|
|
319
|
+
) -> Self:
|
|
320
|
+
"""
|
|
321
|
+
Create a new client instance re-using the same options given to the current client with optional overriding.
|
|
322
|
+
"""
|
|
323
|
+
if default_headers is not None and set_default_headers is not None:
|
|
324
|
+
raise ValueError("The `default_headers` and `set_default_headers` arguments are mutually exclusive")
|
|
325
|
+
|
|
326
|
+
if default_query is not None and set_default_query is not None:
|
|
327
|
+
raise ValueError("The `default_query` and `set_default_query` arguments are mutually exclusive")
|
|
328
|
+
|
|
329
|
+
headers = self._custom_headers
|
|
330
|
+
if default_headers is not None:
|
|
331
|
+
headers = {**headers, **default_headers}
|
|
332
|
+
elif set_default_headers is not None:
|
|
333
|
+
headers = set_default_headers
|
|
334
|
+
|
|
335
|
+
params = self._custom_query
|
|
336
|
+
if default_query is not None:
|
|
337
|
+
params = {**params, **default_query}
|
|
338
|
+
elif set_default_query is not None:
|
|
339
|
+
params = set_default_query
|
|
340
|
+
|
|
341
|
+
http_client = http_client or self._client
|
|
342
|
+
return self.__class__(
|
|
343
|
+
api_key=api_key or self.api_key,
|
|
344
|
+
project_id=project_id or self.project_id,
|
|
345
|
+
project=project or self.project,
|
|
346
|
+
base_url=base_url or self.base_url,
|
|
347
|
+
environment=environment or self._environment,
|
|
348
|
+
timeout=self.timeout if isinstance(timeout, NotGiven) else timeout,
|
|
349
|
+
http_client=http_client,
|
|
350
|
+
max_retries=max_retries if is_given(max_retries) else self.max_retries,
|
|
351
|
+
default_headers=headers,
|
|
352
|
+
default_query=params,
|
|
353
|
+
**_extra_kwargs,
|
|
354
|
+
)
|
|
355
|
+
|
|
356
|
+
# Alias for `copy` for nicer inline usage, e.g.
|
|
357
|
+
# client.with_options(timeout=10).foo.create(...)
|
|
358
|
+
with_options = copy
|
|
359
|
+
|
|
360
|
+
def health(
|
|
361
|
+
self,
|
|
362
|
+
*,
|
|
363
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
364
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
365
|
+
extra_headers: Headers | None = None,
|
|
366
|
+
extra_query: Query | None = None,
|
|
367
|
+
extra_body: Body | None = None,
|
|
368
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
369
|
+
) -> HealthResponse:
|
|
370
|
+
"""Async health check endpoint."""
|
|
371
|
+
return self.get(
|
|
372
|
+
"/v1/health/",
|
|
373
|
+
options=make_request_options(
|
|
374
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
375
|
+
),
|
|
376
|
+
cast_to=HealthResponse,
|
|
377
|
+
)
|
|
378
|
+
|
|
379
|
+
@override
|
|
380
|
+
def _make_status_error(
|
|
381
|
+
self,
|
|
382
|
+
err_msg: str,
|
|
383
|
+
*,
|
|
384
|
+
body: object,
|
|
385
|
+
response: httpx.Response,
|
|
386
|
+
) -> APIStatusError:
|
|
387
|
+
if response.status_code == 400:
|
|
388
|
+
return _exceptions.BadRequestError(err_msg, response=response, body=body)
|
|
389
|
+
|
|
390
|
+
if response.status_code == 401:
|
|
391
|
+
return _exceptions.AuthenticationError(err_msg, response=response, body=body)
|
|
392
|
+
|
|
393
|
+
if response.status_code == 403:
|
|
394
|
+
return _exceptions.PermissionDeniedError(err_msg, response=response, body=body)
|
|
395
|
+
|
|
396
|
+
if response.status_code == 404:
|
|
397
|
+
return _exceptions.NotFoundError(err_msg, response=response, body=body)
|
|
398
|
+
|
|
399
|
+
if response.status_code == 409:
|
|
400
|
+
return _exceptions.ConflictError(err_msg, response=response, body=body)
|
|
401
|
+
|
|
402
|
+
if response.status_code == 422:
|
|
403
|
+
return _exceptions.UnprocessableEntityError(err_msg, response=response, body=body)
|
|
404
|
+
|
|
405
|
+
if response.status_code == 429:
|
|
406
|
+
return _exceptions.RateLimitError(err_msg, response=response, body=body)
|
|
407
|
+
|
|
408
|
+
if response.status_code >= 500:
|
|
409
|
+
return _exceptions.InternalServerError(err_msg, response=response, body=body)
|
|
410
|
+
return APIStatusError(err_msg, response=response, body=body)
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
class AsyncLetta(AsyncAPIClient):
|
|
414
|
+
# client options
|
|
415
|
+
api_key: str | None
|
|
416
|
+
project_id: str | None
|
|
417
|
+
project: str | None
|
|
418
|
+
|
|
419
|
+
_environment: Literal["cloud", "local"] | NotGiven
|
|
420
|
+
|
|
421
|
+
def __init__(
|
|
422
|
+
self,
|
|
423
|
+
*,
|
|
424
|
+
api_key: str | None = None,
|
|
425
|
+
project_id: str | None = None,
|
|
426
|
+
project: str | None = None,
|
|
427
|
+
environment: Literal["cloud", "local"] | NotGiven = not_given,
|
|
428
|
+
base_url: str | httpx.URL | None | NotGiven = not_given,
|
|
429
|
+
timeout: float | Timeout | None | NotGiven = not_given,
|
|
430
|
+
max_retries: int = DEFAULT_MAX_RETRIES,
|
|
431
|
+
default_headers: Mapping[str, str] | None = None,
|
|
432
|
+
default_query: Mapping[str, object] | None = None,
|
|
433
|
+
# Configure a custom httpx client.
|
|
434
|
+
# We provide a `DefaultAsyncHttpxClient` class that you can pass to retain the default values we use for `limits`, `timeout` & `follow_redirects`.
|
|
435
|
+
# See the [httpx documentation](https://www.python-httpx.org/api/#asyncclient) for more details.
|
|
436
|
+
http_client: httpx.AsyncClient | None = None,
|
|
437
|
+
# Enable or disable schema validation for data returned by the API.
|
|
438
|
+
# When enabled an error APIResponseValidationError is raised
|
|
439
|
+
# if the API responds with invalid data for the expected schema.
|
|
440
|
+
#
|
|
441
|
+
# This parameter may be removed or changed in the future.
|
|
442
|
+
# If you rely on this feature, please open a GitHub issue
|
|
443
|
+
# outlining your use-case to help us decide if it should be
|
|
444
|
+
# part of our public interface in the future.
|
|
445
|
+
_strict_response_validation: bool = False,
|
|
446
|
+
) -> None:
|
|
447
|
+
"""Construct a new async AsyncLetta client instance.
|
|
448
|
+
|
|
449
|
+
This automatically infers the `api_key` argument from the `LETTA_API_KEY` environment variable if it is not provided.
|
|
450
|
+
"""
|
|
451
|
+
if api_key is None:
|
|
452
|
+
api_key = os.environ.get("LETTA_API_KEY")
|
|
453
|
+
self.api_key = api_key
|
|
454
|
+
|
|
455
|
+
self.project_id = project_id
|
|
456
|
+
|
|
457
|
+
self.project = project
|
|
458
|
+
|
|
459
|
+
self._environment = environment
|
|
460
|
+
|
|
461
|
+
base_url_env = os.environ.get("LETTA_BASE_URL")
|
|
462
|
+
if is_given(base_url) and base_url is not None:
|
|
463
|
+
# cast required because mypy doesn't understand the type narrowing
|
|
464
|
+
base_url = cast("str | httpx.URL", base_url) # pyright: ignore[reportUnnecessaryCast]
|
|
465
|
+
elif is_given(environment):
|
|
466
|
+
if base_url_env and base_url is not None:
|
|
467
|
+
raise ValueError(
|
|
468
|
+
"Ambiguous URL; The `LETTA_BASE_URL` env var and the `environment` argument are given. If you want to use the environment, you must pass base_url=None",
|
|
469
|
+
)
|
|
470
|
+
|
|
471
|
+
try:
|
|
472
|
+
base_url = ENVIRONMENTS[environment]
|
|
473
|
+
except KeyError as exc:
|
|
474
|
+
raise ValueError(f"Unknown environment: {environment}") from exc
|
|
475
|
+
elif base_url_env is not None:
|
|
476
|
+
base_url = base_url_env
|
|
477
|
+
else:
|
|
478
|
+
self._environment = environment = "cloud"
|
|
479
|
+
|
|
480
|
+
try:
|
|
481
|
+
base_url = ENVIRONMENTS[environment]
|
|
482
|
+
except KeyError as exc:
|
|
483
|
+
raise ValueError(f"Unknown environment: {environment}") from exc
|
|
484
|
+
|
|
485
|
+
super().__init__(
|
|
486
|
+
version=__version__,
|
|
487
|
+
base_url=base_url,
|
|
488
|
+
max_retries=max_retries,
|
|
489
|
+
timeout=timeout,
|
|
490
|
+
http_client=http_client,
|
|
491
|
+
custom_headers=default_headers,
|
|
492
|
+
custom_query=default_query,
|
|
493
|
+
_strict_response_validation=_strict_response_validation,
|
|
494
|
+
)
|
|
495
|
+
|
|
496
|
+
self._default_stream_cls = AsyncStream
|
|
497
|
+
|
|
498
|
+
@cached_property
|
|
499
|
+
def agents(self) -> AsyncAgentsResource:
|
|
500
|
+
from .resources.agents import AsyncAgentsResource
|
|
501
|
+
|
|
502
|
+
return AsyncAgentsResource(self)
|
|
503
|
+
|
|
504
|
+
@cached_property
|
|
505
|
+
def tools(self) -> AsyncToolsResource:
|
|
506
|
+
from .resources.tools import AsyncToolsResource
|
|
507
|
+
|
|
508
|
+
return AsyncToolsResource(self)
|
|
509
|
+
|
|
510
|
+
@cached_property
|
|
511
|
+
def blocks(self) -> AsyncBlocksResource:
|
|
512
|
+
from .resources.blocks import AsyncBlocksResource
|
|
513
|
+
|
|
514
|
+
return AsyncBlocksResource(self)
|
|
515
|
+
|
|
516
|
+
@cached_property
|
|
517
|
+
def archives(self) -> AsyncArchivesResource:
|
|
518
|
+
from .resources.archives import AsyncArchivesResource
|
|
519
|
+
|
|
520
|
+
return AsyncArchivesResource(self)
|
|
521
|
+
|
|
522
|
+
@cached_property
|
|
523
|
+
def folders(self) -> AsyncFoldersResource:
|
|
524
|
+
from .resources.folders import AsyncFoldersResource
|
|
525
|
+
|
|
526
|
+
return AsyncFoldersResource(self)
|
|
527
|
+
|
|
528
|
+
@cached_property
|
|
529
|
+
def models(self) -> AsyncModelsResource:
|
|
530
|
+
from .resources.models import AsyncModelsResource
|
|
531
|
+
|
|
532
|
+
return AsyncModelsResource(self)
|
|
533
|
+
|
|
534
|
+
@cached_property
|
|
535
|
+
def mcp_servers(self) -> AsyncMcpServersResource:
|
|
536
|
+
from .resources.mcp_servers import AsyncMcpServersResource
|
|
537
|
+
|
|
538
|
+
return AsyncMcpServersResource(self)
|
|
539
|
+
|
|
540
|
+
@cached_property
|
|
541
|
+
def runs(self) -> AsyncRunsResource:
|
|
542
|
+
from .resources.runs import AsyncRunsResource
|
|
543
|
+
|
|
544
|
+
return AsyncRunsResource(self)
|
|
545
|
+
|
|
546
|
+
@cached_property
|
|
547
|
+
def steps(self) -> AsyncStepsResource:
|
|
548
|
+
from .resources.steps import AsyncStepsResource
|
|
549
|
+
|
|
550
|
+
return AsyncStepsResource(self)
|
|
551
|
+
|
|
552
|
+
@cached_property
|
|
553
|
+
def templates(self) -> AsyncTemplatesResource:
|
|
554
|
+
from .resources.templates import AsyncTemplatesResource
|
|
555
|
+
|
|
556
|
+
return AsyncTemplatesResource(self)
|
|
557
|
+
|
|
558
|
+
@cached_property
|
|
559
|
+
def tags(self) -> AsyncTagsResource:
|
|
560
|
+
from .resources.tags import AsyncTagsResource
|
|
561
|
+
|
|
562
|
+
return AsyncTagsResource(self)
|
|
563
|
+
|
|
564
|
+
@cached_property
|
|
565
|
+
def messages(self) -> AsyncMessagesResource:
|
|
566
|
+
from .resources.messages import AsyncMessagesResource
|
|
567
|
+
|
|
568
|
+
return AsyncMessagesResource(self)
|
|
569
|
+
|
|
570
|
+
@cached_property
|
|
571
|
+
def passages(self) -> AsyncPassagesResource:
|
|
572
|
+
from .resources.passages import AsyncPassagesResource
|
|
573
|
+
|
|
574
|
+
return AsyncPassagesResource(self)
|
|
575
|
+
|
|
576
|
+
@cached_property
|
|
577
|
+
def conversations(self) -> AsyncConversationsResource:
|
|
578
|
+
from .resources.conversations import AsyncConversationsResource
|
|
579
|
+
|
|
580
|
+
return AsyncConversationsResource(self)
|
|
581
|
+
|
|
582
|
+
@cached_property
|
|
583
|
+
def access_tokens(self) -> AsyncAccessTokensResource:
|
|
584
|
+
from .resources.access_tokens import AsyncAccessTokensResource
|
|
585
|
+
|
|
586
|
+
return AsyncAccessTokensResource(self)
|
|
587
|
+
|
|
588
|
+
@cached_property
|
|
589
|
+
def with_raw_response(self) -> AsyncLettaWithRawResponse:
|
|
590
|
+
return AsyncLettaWithRawResponse(self)
|
|
591
|
+
|
|
592
|
+
@cached_property
|
|
593
|
+
def with_streaming_response(self) -> AsyncLettaWithStreamedResponse:
|
|
594
|
+
return AsyncLettaWithStreamedResponse(self)
|
|
595
|
+
|
|
596
|
+
@property
|
|
597
|
+
@override
|
|
598
|
+
def qs(self) -> Querystring:
|
|
599
|
+
return Querystring(nested_format="dots", array_format="repeat")
|
|
600
|
+
|
|
601
|
+
@property
|
|
602
|
+
@override
|
|
603
|
+
def auth_headers(self) -> dict[str, str]:
|
|
604
|
+
api_key = self.api_key
|
|
605
|
+
if api_key is None:
|
|
606
|
+
return {}
|
|
607
|
+
return {"Authorization": f"Bearer {api_key}"}
|
|
608
|
+
|
|
609
|
+
@property
|
|
610
|
+
@override
|
|
611
|
+
def default_headers(self) -> dict[str, str | Omit]:
|
|
612
|
+
return {
|
|
613
|
+
**super().default_headers,
|
|
614
|
+
"X-Stainless-Async": f"async:{get_async_library()}",
|
|
615
|
+
"X-Project-Id": self.project_id if self.project_id is not None else Omit(),
|
|
616
|
+
"X-Project": self.project if self.project is not None else Omit(),
|
|
617
|
+
**self._custom_headers,
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
def copy(
|
|
621
|
+
self,
|
|
622
|
+
*,
|
|
623
|
+
api_key: str | None = None,
|
|
624
|
+
project_id: str | None = None,
|
|
625
|
+
project: str | None = None,
|
|
626
|
+
environment: Literal["cloud", "local"] | None = None,
|
|
627
|
+
base_url: str | httpx.URL | None = None,
|
|
628
|
+
timeout: float | Timeout | None | NotGiven = not_given,
|
|
629
|
+
http_client: httpx.AsyncClient | None = None,
|
|
630
|
+
max_retries: int | NotGiven = not_given,
|
|
631
|
+
default_headers: Mapping[str, str] | None = None,
|
|
632
|
+
set_default_headers: Mapping[str, str] | None = None,
|
|
633
|
+
default_query: Mapping[str, object] | None = None,
|
|
634
|
+
set_default_query: Mapping[str, object] | None = None,
|
|
635
|
+
_extra_kwargs: Mapping[str, Any] = {},
|
|
636
|
+
) -> Self:
|
|
637
|
+
"""
|
|
638
|
+
Create a new client instance re-using the same options given to the current client with optional overriding.
|
|
639
|
+
"""
|
|
640
|
+
if default_headers is not None and set_default_headers is not None:
|
|
641
|
+
raise ValueError("The `default_headers` and `set_default_headers` arguments are mutually exclusive")
|
|
642
|
+
|
|
643
|
+
if default_query is not None and set_default_query is not None:
|
|
644
|
+
raise ValueError("The `default_query` and `set_default_query` arguments are mutually exclusive")
|
|
645
|
+
|
|
646
|
+
headers = self._custom_headers
|
|
647
|
+
if default_headers is not None:
|
|
648
|
+
headers = {**headers, **default_headers}
|
|
649
|
+
elif set_default_headers is not None:
|
|
650
|
+
headers = set_default_headers
|
|
651
|
+
|
|
652
|
+
params = self._custom_query
|
|
653
|
+
if default_query is not None:
|
|
654
|
+
params = {**params, **default_query}
|
|
655
|
+
elif set_default_query is not None:
|
|
656
|
+
params = set_default_query
|
|
657
|
+
|
|
658
|
+
http_client = http_client or self._client
|
|
659
|
+
return self.__class__(
|
|
660
|
+
api_key=api_key or self.api_key,
|
|
661
|
+
project_id=project_id or self.project_id,
|
|
662
|
+
project=project or self.project,
|
|
663
|
+
base_url=base_url or self.base_url,
|
|
664
|
+
environment=environment or self._environment,
|
|
665
|
+
timeout=self.timeout if isinstance(timeout, NotGiven) else timeout,
|
|
666
|
+
http_client=http_client,
|
|
667
|
+
max_retries=max_retries if is_given(max_retries) else self.max_retries,
|
|
668
|
+
default_headers=headers,
|
|
669
|
+
default_query=params,
|
|
670
|
+
**_extra_kwargs,
|
|
671
|
+
)
|
|
672
|
+
|
|
673
|
+
# Alias for `copy` for nicer inline usage, e.g.
|
|
674
|
+
# client.with_options(timeout=10).foo.create(...)
|
|
675
|
+
with_options = copy
|
|
676
|
+
|
|
677
|
+
async def health(
|
|
678
|
+
self,
|
|
679
|
+
*,
|
|
680
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
681
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
682
|
+
extra_headers: Headers | None = None,
|
|
683
|
+
extra_query: Query | None = None,
|
|
684
|
+
extra_body: Body | None = None,
|
|
685
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
686
|
+
) -> HealthResponse:
|
|
687
|
+
"""Async health check endpoint."""
|
|
688
|
+
return await self.get(
|
|
689
|
+
"/v1/health/",
|
|
690
|
+
options=make_request_options(
|
|
691
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
692
|
+
),
|
|
693
|
+
cast_to=HealthResponse,
|
|
694
|
+
)
|
|
695
|
+
|
|
696
|
+
@override
|
|
697
|
+
def _make_status_error(
|
|
698
|
+
self,
|
|
699
|
+
err_msg: str,
|
|
700
|
+
*,
|
|
701
|
+
body: object,
|
|
702
|
+
response: httpx.Response,
|
|
703
|
+
) -> APIStatusError:
|
|
704
|
+
if response.status_code == 400:
|
|
705
|
+
return _exceptions.BadRequestError(err_msg, response=response, body=body)
|
|
706
|
+
|
|
707
|
+
if response.status_code == 401:
|
|
708
|
+
return _exceptions.AuthenticationError(err_msg, response=response, body=body)
|
|
709
|
+
|
|
710
|
+
if response.status_code == 403:
|
|
711
|
+
return _exceptions.PermissionDeniedError(err_msg, response=response, body=body)
|
|
712
|
+
|
|
713
|
+
if response.status_code == 404:
|
|
714
|
+
return _exceptions.NotFoundError(err_msg, response=response, body=body)
|
|
715
|
+
|
|
716
|
+
if response.status_code == 409:
|
|
717
|
+
return _exceptions.ConflictError(err_msg, response=response, body=body)
|
|
718
|
+
|
|
719
|
+
if response.status_code == 422:
|
|
720
|
+
return _exceptions.UnprocessableEntityError(err_msg, response=response, body=body)
|
|
721
|
+
|
|
722
|
+
if response.status_code == 429:
|
|
723
|
+
return _exceptions.RateLimitError(err_msg, response=response, body=body)
|
|
724
|
+
|
|
725
|
+
if response.status_code >= 500:
|
|
726
|
+
return _exceptions.InternalServerError(err_msg, response=response, body=body)
|
|
727
|
+
return APIStatusError(err_msg, response=response, body=body)
|
|
728
|
+
|
|
729
|
+
|
|
730
|
+
class LettaWithRawResponse:
|
|
731
|
+
_client: Letta
|
|
732
|
+
|
|
733
|
+
def __init__(self, client: Letta) -> None:
|
|
734
|
+
self._client = client
|
|
735
|
+
|
|
736
|
+
self.health = to_raw_response_wrapper(
|
|
737
|
+
client.health,
|
|
738
|
+
)
|
|
739
|
+
|
|
740
|
+
@cached_property
|
|
741
|
+
def agents(self) -> agents.AgentsResourceWithRawResponse:
|
|
742
|
+
from .resources.agents import AgentsResourceWithRawResponse
|
|
743
|
+
|
|
744
|
+
return AgentsResourceWithRawResponse(self._client.agents)
|
|
745
|
+
|
|
746
|
+
@cached_property
|
|
747
|
+
def tools(self) -> tools.ToolsResourceWithRawResponse:
|
|
748
|
+
from .resources.tools import ToolsResourceWithRawResponse
|
|
749
|
+
|
|
750
|
+
return ToolsResourceWithRawResponse(self._client.tools)
|
|
751
|
+
|
|
752
|
+
@cached_property
|
|
753
|
+
def blocks(self) -> blocks.BlocksResourceWithRawResponse:
|
|
754
|
+
from .resources.blocks import BlocksResourceWithRawResponse
|
|
755
|
+
|
|
756
|
+
return BlocksResourceWithRawResponse(self._client.blocks)
|
|
757
|
+
|
|
758
|
+
@cached_property
|
|
759
|
+
def archives(self) -> archives.ArchivesResourceWithRawResponse:
|
|
760
|
+
from .resources.archives import ArchivesResourceWithRawResponse
|
|
761
|
+
|
|
762
|
+
return ArchivesResourceWithRawResponse(self._client.archives)
|
|
763
|
+
|
|
764
|
+
@cached_property
|
|
765
|
+
def folders(self) -> folders.FoldersResourceWithRawResponse:
|
|
766
|
+
from .resources.folders import FoldersResourceWithRawResponse
|
|
767
|
+
|
|
768
|
+
return FoldersResourceWithRawResponse(self._client.folders)
|
|
769
|
+
|
|
770
|
+
@cached_property
|
|
771
|
+
def models(self) -> models.ModelsResourceWithRawResponse:
|
|
772
|
+
from .resources.models import ModelsResourceWithRawResponse
|
|
773
|
+
|
|
774
|
+
return ModelsResourceWithRawResponse(self._client.models)
|
|
775
|
+
|
|
776
|
+
@cached_property
|
|
777
|
+
def mcp_servers(self) -> mcp_servers.McpServersResourceWithRawResponse:
|
|
778
|
+
from .resources.mcp_servers import McpServersResourceWithRawResponse
|
|
779
|
+
|
|
780
|
+
return McpServersResourceWithRawResponse(self._client.mcp_servers)
|
|
781
|
+
|
|
782
|
+
@cached_property
|
|
783
|
+
def runs(self) -> runs.RunsResourceWithRawResponse:
|
|
784
|
+
from .resources.runs import RunsResourceWithRawResponse
|
|
785
|
+
|
|
786
|
+
return RunsResourceWithRawResponse(self._client.runs)
|
|
787
|
+
|
|
788
|
+
@cached_property
|
|
789
|
+
def steps(self) -> steps.StepsResourceWithRawResponse:
|
|
790
|
+
from .resources.steps import StepsResourceWithRawResponse
|
|
791
|
+
|
|
792
|
+
return StepsResourceWithRawResponse(self._client.steps)
|
|
793
|
+
|
|
794
|
+
@cached_property
|
|
795
|
+
def templates(self) -> templates.TemplatesResourceWithRawResponse:
|
|
796
|
+
from .resources.templates import TemplatesResourceWithRawResponse
|
|
797
|
+
|
|
798
|
+
return TemplatesResourceWithRawResponse(self._client.templates)
|
|
799
|
+
|
|
800
|
+
@cached_property
|
|
801
|
+
def tags(self) -> tags.TagsResourceWithRawResponse:
|
|
802
|
+
from .resources.tags import TagsResourceWithRawResponse
|
|
803
|
+
|
|
804
|
+
return TagsResourceWithRawResponse(self._client.tags)
|
|
805
|
+
|
|
806
|
+
@cached_property
|
|
807
|
+
def messages(self) -> messages.MessagesResourceWithRawResponse:
|
|
808
|
+
from .resources.messages import MessagesResourceWithRawResponse
|
|
809
|
+
|
|
810
|
+
return MessagesResourceWithRawResponse(self._client.messages)
|
|
811
|
+
|
|
812
|
+
@cached_property
|
|
813
|
+
def passages(self) -> passages.PassagesResourceWithRawResponse:
|
|
814
|
+
from .resources.passages import PassagesResourceWithRawResponse
|
|
815
|
+
|
|
816
|
+
return PassagesResourceWithRawResponse(self._client.passages)
|
|
817
|
+
|
|
818
|
+
@cached_property
|
|
819
|
+
def conversations(self) -> conversations.ConversationsResourceWithRawResponse:
|
|
820
|
+
from .resources.conversations import ConversationsResourceWithRawResponse
|
|
821
|
+
|
|
822
|
+
return ConversationsResourceWithRawResponse(self._client.conversations)
|
|
823
|
+
|
|
824
|
+
@cached_property
|
|
825
|
+
def access_tokens(self) -> access_tokens.AccessTokensResourceWithRawResponse:
|
|
826
|
+
from .resources.access_tokens import AccessTokensResourceWithRawResponse
|
|
827
|
+
|
|
828
|
+
return AccessTokensResourceWithRawResponse(self._client.access_tokens)
|
|
829
|
+
|
|
830
|
+
|
|
831
|
+
class AsyncLettaWithRawResponse:
|
|
832
|
+
_client: AsyncLetta
|
|
833
|
+
|
|
834
|
+
def __init__(self, client: AsyncLetta) -> None:
|
|
835
|
+
self._client = client
|
|
836
|
+
|
|
837
|
+
self.health = async_to_raw_response_wrapper(
|
|
838
|
+
client.health,
|
|
839
|
+
)
|
|
840
|
+
|
|
841
|
+
@cached_property
|
|
842
|
+
def agents(self) -> agents.AsyncAgentsResourceWithRawResponse:
|
|
843
|
+
from .resources.agents import AsyncAgentsResourceWithRawResponse
|
|
844
|
+
|
|
845
|
+
return AsyncAgentsResourceWithRawResponse(self._client.agents)
|
|
846
|
+
|
|
847
|
+
@cached_property
|
|
848
|
+
def tools(self) -> tools.AsyncToolsResourceWithRawResponse:
|
|
849
|
+
from .resources.tools import AsyncToolsResourceWithRawResponse
|
|
850
|
+
|
|
851
|
+
return AsyncToolsResourceWithRawResponse(self._client.tools)
|
|
852
|
+
|
|
853
|
+
@cached_property
|
|
854
|
+
def blocks(self) -> blocks.AsyncBlocksResourceWithRawResponse:
|
|
855
|
+
from .resources.blocks import AsyncBlocksResourceWithRawResponse
|
|
856
|
+
|
|
857
|
+
return AsyncBlocksResourceWithRawResponse(self._client.blocks)
|
|
858
|
+
|
|
859
|
+
@cached_property
|
|
860
|
+
def archives(self) -> archives.AsyncArchivesResourceWithRawResponse:
|
|
861
|
+
from .resources.archives import AsyncArchivesResourceWithRawResponse
|
|
862
|
+
|
|
863
|
+
return AsyncArchivesResourceWithRawResponse(self._client.archives)
|
|
864
|
+
|
|
865
|
+
@cached_property
|
|
866
|
+
def folders(self) -> folders.AsyncFoldersResourceWithRawResponse:
|
|
867
|
+
from .resources.folders import AsyncFoldersResourceWithRawResponse
|
|
868
|
+
|
|
869
|
+
return AsyncFoldersResourceWithRawResponse(self._client.folders)
|
|
870
|
+
|
|
871
|
+
@cached_property
|
|
872
|
+
def models(self) -> models.AsyncModelsResourceWithRawResponse:
|
|
873
|
+
from .resources.models import AsyncModelsResourceWithRawResponse
|
|
874
|
+
|
|
875
|
+
return AsyncModelsResourceWithRawResponse(self._client.models)
|
|
876
|
+
|
|
877
|
+
@cached_property
|
|
878
|
+
def mcp_servers(self) -> mcp_servers.AsyncMcpServersResourceWithRawResponse:
|
|
879
|
+
from .resources.mcp_servers import AsyncMcpServersResourceWithRawResponse
|
|
880
|
+
|
|
881
|
+
return AsyncMcpServersResourceWithRawResponse(self._client.mcp_servers)
|
|
882
|
+
|
|
883
|
+
@cached_property
|
|
884
|
+
def runs(self) -> runs.AsyncRunsResourceWithRawResponse:
|
|
885
|
+
from .resources.runs import AsyncRunsResourceWithRawResponse
|
|
886
|
+
|
|
887
|
+
return AsyncRunsResourceWithRawResponse(self._client.runs)
|
|
888
|
+
|
|
889
|
+
@cached_property
|
|
890
|
+
def steps(self) -> steps.AsyncStepsResourceWithRawResponse:
|
|
891
|
+
from .resources.steps import AsyncStepsResourceWithRawResponse
|
|
892
|
+
|
|
893
|
+
return AsyncStepsResourceWithRawResponse(self._client.steps)
|
|
894
|
+
|
|
895
|
+
@cached_property
|
|
896
|
+
def templates(self) -> templates.AsyncTemplatesResourceWithRawResponse:
|
|
897
|
+
from .resources.templates import AsyncTemplatesResourceWithRawResponse
|
|
898
|
+
|
|
899
|
+
return AsyncTemplatesResourceWithRawResponse(self._client.templates)
|
|
900
|
+
|
|
901
|
+
@cached_property
|
|
902
|
+
def tags(self) -> tags.AsyncTagsResourceWithRawResponse:
|
|
903
|
+
from .resources.tags import AsyncTagsResourceWithRawResponse
|
|
904
|
+
|
|
905
|
+
return AsyncTagsResourceWithRawResponse(self._client.tags)
|
|
906
|
+
|
|
907
|
+
@cached_property
|
|
908
|
+
def messages(self) -> messages.AsyncMessagesResourceWithRawResponse:
|
|
909
|
+
from .resources.messages import AsyncMessagesResourceWithRawResponse
|
|
910
|
+
|
|
911
|
+
return AsyncMessagesResourceWithRawResponse(self._client.messages)
|
|
912
|
+
|
|
913
|
+
@cached_property
|
|
914
|
+
def passages(self) -> passages.AsyncPassagesResourceWithRawResponse:
|
|
915
|
+
from .resources.passages import AsyncPassagesResourceWithRawResponse
|
|
916
|
+
|
|
917
|
+
return AsyncPassagesResourceWithRawResponse(self._client.passages)
|
|
918
|
+
|
|
919
|
+
@cached_property
|
|
920
|
+
def conversations(self) -> conversations.AsyncConversationsResourceWithRawResponse:
|
|
921
|
+
from .resources.conversations import AsyncConversationsResourceWithRawResponse
|
|
922
|
+
|
|
923
|
+
return AsyncConversationsResourceWithRawResponse(self._client.conversations)
|
|
924
|
+
|
|
925
|
+
@cached_property
|
|
926
|
+
def access_tokens(self) -> access_tokens.AsyncAccessTokensResourceWithRawResponse:
|
|
927
|
+
from .resources.access_tokens import AsyncAccessTokensResourceWithRawResponse
|
|
928
|
+
|
|
929
|
+
return AsyncAccessTokensResourceWithRawResponse(self._client.access_tokens)
|
|
930
|
+
|
|
931
|
+
|
|
932
|
+
class LettaWithStreamedResponse:
|
|
933
|
+
_client: Letta
|
|
934
|
+
|
|
935
|
+
def __init__(self, client: Letta) -> None:
|
|
936
|
+
self._client = client
|
|
937
|
+
|
|
938
|
+
self.health = to_streamed_response_wrapper(
|
|
939
|
+
client.health,
|
|
940
|
+
)
|
|
941
|
+
|
|
942
|
+
@cached_property
|
|
943
|
+
def agents(self) -> agents.AgentsResourceWithStreamingResponse:
|
|
944
|
+
from .resources.agents import AgentsResourceWithStreamingResponse
|
|
945
|
+
|
|
946
|
+
return AgentsResourceWithStreamingResponse(self._client.agents)
|
|
947
|
+
|
|
948
|
+
@cached_property
|
|
949
|
+
def tools(self) -> tools.ToolsResourceWithStreamingResponse:
|
|
950
|
+
from .resources.tools import ToolsResourceWithStreamingResponse
|
|
951
|
+
|
|
952
|
+
return ToolsResourceWithStreamingResponse(self._client.tools)
|
|
953
|
+
|
|
954
|
+
@cached_property
|
|
955
|
+
def blocks(self) -> blocks.BlocksResourceWithStreamingResponse:
|
|
956
|
+
from .resources.blocks import BlocksResourceWithStreamingResponse
|
|
957
|
+
|
|
958
|
+
return BlocksResourceWithStreamingResponse(self._client.blocks)
|
|
959
|
+
|
|
960
|
+
@cached_property
|
|
961
|
+
def archives(self) -> archives.ArchivesResourceWithStreamingResponse:
|
|
962
|
+
from .resources.archives import ArchivesResourceWithStreamingResponse
|
|
963
|
+
|
|
964
|
+
return ArchivesResourceWithStreamingResponse(self._client.archives)
|
|
965
|
+
|
|
966
|
+
@cached_property
|
|
967
|
+
def folders(self) -> folders.FoldersResourceWithStreamingResponse:
|
|
968
|
+
from .resources.folders import FoldersResourceWithStreamingResponse
|
|
969
|
+
|
|
970
|
+
return FoldersResourceWithStreamingResponse(self._client.folders)
|
|
971
|
+
|
|
972
|
+
@cached_property
|
|
973
|
+
def models(self) -> models.ModelsResourceWithStreamingResponse:
|
|
974
|
+
from .resources.models import ModelsResourceWithStreamingResponse
|
|
975
|
+
|
|
976
|
+
return ModelsResourceWithStreamingResponse(self._client.models)
|
|
977
|
+
|
|
978
|
+
@cached_property
|
|
979
|
+
def mcp_servers(self) -> mcp_servers.McpServersResourceWithStreamingResponse:
|
|
980
|
+
from .resources.mcp_servers import McpServersResourceWithStreamingResponse
|
|
981
|
+
|
|
982
|
+
return McpServersResourceWithStreamingResponse(self._client.mcp_servers)
|
|
983
|
+
|
|
984
|
+
@cached_property
|
|
985
|
+
def runs(self) -> runs.RunsResourceWithStreamingResponse:
|
|
986
|
+
from .resources.runs import RunsResourceWithStreamingResponse
|
|
987
|
+
|
|
988
|
+
return RunsResourceWithStreamingResponse(self._client.runs)
|
|
989
|
+
|
|
990
|
+
@cached_property
|
|
991
|
+
def steps(self) -> steps.StepsResourceWithStreamingResponse:
|
|
992
|
+
from .resources.steps import StepsResourceWithStreamingResponse
|
|
993
|
+
|
|
994
|
+
return StepsResourceWithStreamingResponse(self._client.steps)
|
|
995
|
+
|
|
996
|
+
@cached_property
|
|
997
|
+
def templates(self) -> templates.TemplatesResourceWithStreamingResponse:
|
|
998
|
+
from .resources.templates import TemplatesResourceWithStreamingResponse
|
|
999
|
+
|
|
1000
|
+
return TemplatesResourceWithStreamingResponse(self._client.templates)
|
|
1001
|
+
|
|
1002
|
+
@cached_property
|
|
1003
|
+
def tags(self) -> tags.TagsResourceWithStreamingResponse:
|
|
1004
|
+
from .resources.tags import TagsResourceWithStreamingResponse
|
|
1005
|
+
|
|
1006
|
+
return TagsResourceWithStreamingResponse(self._client.tags)
|
|
1007
|
+
|
|
1008
|
+
@cached_property
|
|
1009
|
+
def messages(self) -> messages.MessagesResourceWithStreamingResponse:
|
|
1010
|
+
from .resources.messages import MessagesResourceWithStreamingResponse
|
|
1011
|
+
|
|
1012
|
+
return MessagesResourceWithStreamingResponse(self._client.messages)
|
|
1013
|
+
|
|
1014
|
+
@cached_property
|
|
1015
|
+
def passages(self) -> passages.PassagesResourceWithStreamingResponse:
|
|
1016
|
+
from .resources.passages import PassagesResourceWithStreamingResponse
|
|
1017
|
+
|
|
1018
|
+
return PassagesResourceWithStreamingResponse(self._client.passages)
|
|
1019
|
+
|
|
1020
|
+
@cached_property
|
|
1021
|
+
def conversations(self) -> conversations.ConversationsResourceWithStreamingResponse:
|
|
1022
|
+
from .resources.conversations import ConversationsResourceWithStreamingResponse
|
|
1023
|
+
|
|
1024
|
+
return ConversationsResourceWithStreamingResponse(self._client.conversations)
|
|
1025
|
+
|
|
1026
|
+
@cached_property
|
|
1027
|
+
def access_tokens(self) -> access_tokens.AccessTokensResourceWithStreamingResponse:
|
|
1028
|
+
from .resources.access_tokens import AccessTokensResourceWithStreamingResponse
|
|
1029
|
+
|
|
1030
|
+
return AccessTokensResourceWithStreamingResponse(self._client.access_tokens)
|
|
1031
|
+
|
|
1032
|
+
|
|
1033
|
+
class AsyncLettaWithStreamedResponse:
|
|
1034
|
+
_client: AsyncLetta
|
|
1035
|
+
|
|
1036
|
+
def __init__(self, client: AsyncLetta) -> None:
|
|
1037
|
+
self._client = client
|
|
1038
|
+
|
|
1039
|
+
self.health = async_to_streamed_response_wrapper(
|
|
1040
|
+
client.health,
|
|
1041
|
+
)
|
|
1042
|
+
|
|
1043
|
+
@cached_property
|
|
1044
|
+
def agents(self) -> agents.AsyncAgentsResourceWithStreamingResponse:
|
|
1045
|
+
from .resources.agents import AsyncAgentsResourceWithStreamingResponse
|
|
1046
|
+
|
|
1047
|
+
return AsyncAgentsResourceWithStreamingResponse(self._client.agents)
|
|
1048
|
+
|
|
1049
|
+
@cached_property
|
|
1050
|
+
def tools(self) -> tools.AsyncToolsResourceWithStreamingResponse:
|
|
1051
|
+
from .resources.tools import AsyncToolsResourceWithStreamingResponse
|
|
1052
|
+
|
|
1053
|
+
return AsyncToolsResourceWithStreamingResponse(self._client.tools)
|
|
1054
|
+
|
|
1055
|
+
@cached_property
|
|
1056
|
+
def blocks(self) -> blocks.AsyncBlocksResourceWithStreamingResponse:
|
|
1057
|
+
from .resources.blocks import AsyncBlocksResourceWithStreamingResponse
|
|
1058
|
+
|
|
1059
|
+
return AsyncBlocksResourceWithStreamingResponse(self._client.blocks)
|
|
1060
|
+
|
|
1061
|
+
@cached_property
|
|
1062
|
+
def archives(self) -> archives.AsyncArchivesResourceWithStreamingResponse:
|
|
1063
|
+
from .resources.archives import AsyncArchivesResourceWithStreamingResponse
|
|
1064
|
+
|
|
1065
|
+
return AsyncArchivesResourceWithStreamingResponse(self._client.archives)
|
|
1066
|
+
|
|
1067
|
+
@cached_property
|
|
1068
|
+
def folders(self) -> folders.AsyncFoldersResourceWithStreamingResponse:
|
|
1069
|
+
from .resources.folders import AsyncFoldersResourceWithStreamingResponse
|
|
1070
|
+
|
|
1071
|
+
return AsyncFoldersResourceWithStreamingResponse(self._client.folders)
|
|
1072
|
+
|
|
1073
|
+
@cached_property
|
|
1074
|
+
def models(self) -> models.AsyncModelsResourceWithStreamingResponse:
|
|
1075
|
+
from .resources.models import AsyncModelsResourceWithStreamingResponse
|
|
1076
|
+
|
|
1077
|
+
return AsyncModelsResourceWithStreamingResponse(self._client.models)
|
|
1078
|
+
|
|
1079
|
+
@cached_property
|
|
1080
|
+
def mcp_servers(self) -> mcp_servers.AsyncMcpServersResourceWithStreamingResponse:
|
|
1081
|
+
from .resources.mcp_servers import AsyncMcpServersResourceWithStreamingResponse
|
|
1082
|
+
|
|
1083
|
+
return AsyncMcpServersResourceWithStreamingResponse(self._client.mcp_servers)
|
|
1084
|
+
|
|
1085
|
+
@cached_property
|
|
1086
|
+
def runs(self) -> runs.AsyncRunsResourceWithStreamingResponse:
|
|
1087
|
+
from .resources.runs import AsyncRunsResourceWithStreamingResponse
|
|
1088
|
+
|
|
1089
|
+
return AsyncRunsResourceWithStreamingResponse(self._client.runs)
|
|
1090
|
+
|
|
1091
|
+
@cached_property
|
|
1092
|
+
def steps(self) -> steps.AsyncStepsResourceWithStreamingResponse:
|
|
1093
|
+
from .resources.steps import AsyncStepsResourceWithStreamingResponse
|
|
1094
|
+
|
|
1095
|
+
return AsyncStepsResourceWithStreamingResponse(self._client.steps)
|
|
1096
|
+
|
|
1097
|
+
@cached_property
|
|
1098
|
+
def templates(self) -> templates.AsyncTemplatesResourceWithStreamingResponse:
|
|
1099
|
+
from .resources.templates import AsyncTemplatesResourceWithStreamingResponse
|
|
1100
|
+
|
|
1101
|
+
return AsyncTemplatesResourceWithStreamingResponse(self._client.templates)
|
|
1102
|
+
|
|
1103
|
+
@cached_property
|
|
1104
|
+
def tags(self) -> tags.AsyncTagsResourceWithStreamingResponse:
|
|
1105
|
+
from .resources.tags import AsyncTagsResourceWithStreamingResponse
|
|
1106
|
+
|
|
1107
|
+
return AsyncTagsResourceWithStreamingResponse(self._client.tags)
|
|
1108
|
+
|
|
1109
|
+
@cached_property
|
|
1110
|
+
def messages(self) -> messages.AsyncMessagesResourceWithStreamingResponse:
|
|
1111
|
+
from .resources.messages import AsyncMessagesResourceWithStreamingResponse
|
|
1112
|
+
|
|
1113
|
+
return AsyncMessagesResourceWithStreamingResponse(self._client.messages)
|
|
1114
|
+
|
|
1115
|
+
@cached_property
|
|
1116
|
+
def passages(self) -> passages.AsyncPassagesResourceWithStreamingResponse:
|
|
1117
|
+
from .resources.passages import AsyncPassagesResourceWithStreamingResponse
|
|
1118
|
+
|
|
1119
|
+
return AsyncPassagesResourceWithStreamingResponse(self._client.passages)
|
|
1120
|
+
|
|
1121
|
+
@cached_property
|
|
1122
|
+
def conversations(self) -> conversations.AsyncConversationsResourceWithStreamingResponse:
|
|
1123
|
+
from .resources.conversations import AsyncConversationsResourceWithStreamingResponse
|
|
1124
|
+
|
|
1125
|
+
return AsyncConversationsResourceWithStreamingResponse(self._client.conversations)
|
|
1126
|
+
|
|
1127
|
+
@cached_property
|
|
1128
|
+
def access_tokens(self) -> access_tokens.AsyncAccessTokensResourceWithStreamingResponse:
|
|
1129
|
+
from .resources.access_tokens import AsyncAccessTokensResourceWithStreamingResponse
|
|
1130
|
+
|
|
1131
|
+
return AsyncAccessTokensResourceWithStreamingResponse(self._client.access_tokens)
|
|
1132
|
+
|
|
1133
|
+
|
|
1134
|
+
Client = Letta
|
|
1135
|
+
|
|
1136
|
+
AsyncClient = AsyncLetta
|