letta-nightly 0.6.40.dev20250314173529__tar.gz → 0.6.40.dev20250314222759__tar.gz
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-nightly might be problematic. Click here for more details.
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/PKG-INFO +1 -1
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/__init__.py +1 -1
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/agent.py +1 -1
- letta_nightly-0.6.40.dev20250314222759/letta/functions/mcp_client/base_client.py +61 -0
- letta_nightly-0.6.40.dev20250314222759/letta/functions/mcp_client/sse_client.py +21 -0
- letta_nightly-0.6.40.dev20250314222759/letta/functions/mcp_client/stdio_client.py +103 -0
- letta_nightly-0.6.40.dev20250314222759/letta/functions/mcp_client/types.py +48 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/functions/schema_generator.py +1 -1
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/tool.py +1 -1
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/tools.py +1 -1
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/server.py +8 -13
- letta_nightly-0.6.40.dev20250314222759/letta/services/summarizer/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/pyproject.toml +1 -1
- letta_nightly-0.6.40.dev20250314173529/letta/helpers/mcp_helpers.py +0 -129
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/LICENSE +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/README.md +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/__main__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/agents/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/agents/base_agent.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/agents/ephemeral_agent.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/agents/low_latency_agent.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/benchmark/benchmark.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/benchmark/constants.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/cli/cli.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/cli/cli_config.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/cli/cli_load.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/client/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/client/client.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/client/streaming.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/client/utils.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/config.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/constants.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/data_sources/connectors.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/data_sources/connectors_helper.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/dynamic_multi_agent.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/embeddings.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/errors.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/functions/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/functions/ast_parsers.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/functions/function_sets/base.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/functions/function_sets/extras.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/functions/function_sets/multi_agent.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/functions/functions.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/functions/helpers.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/functions/interface.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/humans → letta_nightly-0.6.40.dev20250314222759/letta/functions/mcp_client}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/helpers/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/helpers/composio_helpers.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/helpers/converters.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/helpers/datetime_helpers.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/helpers/json_helpers.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/helpers/tool_execution_helper.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/helpers/tool_rule_solver.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/interfaces → letta_nightly-0.6.40.dev20250314222759/letta/humans}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/humans/examples/basic.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/humans/examples/cs_phd.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/interface.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/llm_api → letta_nightly-0.6.40.dev20250314222759/letta/interfaces}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/interfaces/openai_chat_completions_streaming_interface.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/interfaces/utils.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/local_llm → letta_nightly-0.6.40.dev20250314222759/letta/llm_api}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/anthropic.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/aws_bedrock.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/azure_openai.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/azure_openai_constants.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/cohere.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/deepseek.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/google_ai.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/google_ai_client.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/google_constants.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/google_vertex.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/google_vertex_client.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/helpers.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/llm_api_tools.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/llm_client.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/llm_client_base.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/mistral.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/llm_api/openai.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/README.md +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/local_llm/grammars → letta_nightly-0.6.40.dev20250314222759/letta/local_llm}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/chat_completion_proxy.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/constants.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/function_parser.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/local_llm/llm_chat_completion_wrappers → letta_nightly-0.6.40.dev20250314222759/letta/local_llm/grammars}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/grammars/gbnf_grammar_generator.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/grammars/json.gbnf +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/grammars/json_func_calls_with_inner_thoughts.gbnf +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/json_parser.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/koboldcpp/api.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/koboldcpp/settings.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/llamacpp/api.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/llamacpp/settings.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/local_llm/settings → letta_nightly-0.6.40.dev20250314222759/letta/local_llm/llm_chat_completion_wrappers}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/llm_chat_completion_wrappers/airoboros.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/llm_chat_completion_wrappers/chatml.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/llm_chat_completion_wrappers/configurable_wrapper.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/llm_chat_completion_wrappers/dolphin.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/llm_chat_completion_wrappers/llama3.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/llm_chat_completion_wrappers/simple_summary_wrapper.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/llm_chat_completion_wrappers/wrapper_base.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/llm_chat_completion_wrappers/zephyr.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/lmstudio/api.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/lmstudio/settings.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/ollama/api.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/ollama/settings.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/openai_backcompat → letta_nightly-0.6.40.dev20250314222759/letta/local_llm/settings}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/settings/deterministic_mirostat.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/settings/settings.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/settings/simple.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/utils.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/vllm/api.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/webui/api.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/webui/legacy_api.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/webui/legacy_settings.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/local_llm/webui/settings.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/log.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/main.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/memory.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/offline_memory_agent.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/personas → letta_nightly-0.6.40.dev20250314222759/letta/openai_backcompat}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/openai_backcompat/openai_object.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/__all__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/agent.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/agents_tags.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/base.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/block.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/blocks_agents.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/custom_columns.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/enums.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/errors.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/file.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/group.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/groups_agents.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/identities_agents.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/identities_blocks.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/identity.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/job.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/job_messages.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/message.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/mixins.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/organization.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/passage.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/provider.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/sandbox_config.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/source.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/sources_agents.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/sqlalchemy_base.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/sqlite_functions.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/step.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/tool.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/tools_agents.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/orm/user.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/prompts → letta_nightly-0.6.40.dev20250314222759/letta/personas}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/personas/examples/anna_pa.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/personas/examples/google_search_persona.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/personas/examples/memgpt_doc.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/personas/examples/memgpt_starter.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/personas/examples/o1_persona.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/personas/examples/offline_memory_persona.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/personas/examples/sam.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/personas/examples/sam_pov.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/personas/examples/sam_simple_pov_gpt35.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/personas/examples/sqldb/test.db +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/server → letta_nightly-0.6.40.dev20250314222759/letta/prompts}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/prompts/gpt_summarize.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/prompts/gpt_system.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/prompts/system/memgpt_base.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/prompts/system/memgpt_chat.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/prompts/system/memgpt_chat_compressed.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/prompts/system/memgpt_chat_fstring.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/prompts/system/memgpt_convo_only.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/prompts/system/memgpt_doc.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/prompts/system/memgpt_gpt35_extralong.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/prompts/system/memgpt_intuitive_knowledge.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/prompts/system/memgpt_memory_only.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/prompts/system/memgpt_modified_chat.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/prompts/system/memgpt_modified_o1.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/prompts/system/memgpt_offline_memory.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/prompts/system/memgpt_offline_memory_chat.txt +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/pytest.ini +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/round_robin_multi_agent.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/agent.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/block.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/embedding_config.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/embedding_config_overrides.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/enums.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/environment_variables.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/file.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/group.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/health.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/identity.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/job.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/letta_base.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/letta_message.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/letta_message_content.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/letta_request.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/letta_response.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/llm_config.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/llm_config_overrides.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/memory.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/message.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/openai/chat_completion_request.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/openai/chat_completion_response.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/openai/chat_completions.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/openai/embedding_response.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/openai/openai.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/organization.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/passage.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/providers.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/run.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/sandbox_config.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/source.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/step.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/tool_rule.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/usage.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/schemas/user.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/serialize_schemas/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/serialize_schemas/marshmallow_agent.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/serialize_schemas/marshmallow_agent_environment_variable.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/serialize_schemas/marshmallow_base.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/serialize_schemas/marshmallow_block.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/serialize_schemas/marshmallow_custom_fields.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/serialize_schemas/marshmallow_message.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/serialize_schemas/marshmallow_tag.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/serialize_schemas/marshmallow_tool.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/serialize_schemas/pydantic_agent_schema.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/server/rest_api → letta_nightly-0.6.40.dev20250314222759/letta/server}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/constants.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/db.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/generate_openapi_schema.sh +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/server/rest_api/auth → letta_nightly-0.6.40.dev20250314222759/letta/server/rest_api}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/app.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/server/rest_api/routers → letta_nightly-0.6.40.dev20250314222759/letta/server/rest_api/auth}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/auth/index.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/auth_token.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/chat_completions_interface.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/interface.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/optimistic_json_parser.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/server/rest_api/routers/openai/chat_completions → letta_nightly-0.6.40.dev20250314222759/letta/server/rest_api/routers}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/server/ws_api → letta_nightly-0.6.40.dev20250314222759/letta/server/rest_api/routers/openai/chat_completions}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/agents.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/blocks.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/groups.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/health.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/identities.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/jobs.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/llms.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/organizations.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/providers.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/runs.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/sandbox_configs.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/sources.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/steps.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/tags.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/users.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/routers/v1/voice.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/static_files.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/rest_api/utils.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/startup.sh +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/static_files/assets/index-048c9598.js +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/static_files/assets/index-0e31b727.css +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/static_files/favicon.ico +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/static_files/index.html +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/static_files/memgpt_logo_transparent.png +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/utils.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/services → letta_nightly-0.6.40.dev20250314222759/letta/server/ws_api}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/ws_api/example_client.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/ws_api/interface.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/ws_api/protocol.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/server/ws_api/server.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529/letta/services/summarizer → letta_nightly-0.6.40.dev20250314222759/letta/services}/__init__.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/agent_manager.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/block_manager.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/group_manager.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/helpers/agent_manager_helper.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/helpers/tool_execution_helper.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/identity_manager.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/job_manager.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/message_manager.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/organization_manager.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/passage_manager.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/per_agent_lock_manager.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/provider_manager.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/sandbox_config_manager.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/source_manager.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/step_manager.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/summarizer/enums.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/summarizer/summarizer.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/tool_execution_sandbox.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/tool_manager.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/services/user_manager.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/settings.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/streaming_interface.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/streaming_utils.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/supervisor_multi_agent.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/system.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/tracing.py +0 -0
- {letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/utils.py +0 -0
{letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/agent.py
RENAMED
|
@@ -22,11 +22,11 @@ from letta.errors import ContextWindowExceededError
|
|
|
22
22
|
from letta.functions.ast_parsers import coerce_dict_args_by_annotations, get_function_annotations_from_source
|
|
23
23
|
from letta.functions.functions import get_function_from_module
|
|
24
24
|
from letta.functions.helpers import execute_composio_action, generate_composio_action_from_func_name
|
|
25
|
+
from letta.functions.mcp_client.base_client import BaseMCPClient
|
|
25
26
|
from letta.helpers import ToolRulesSolver
|
|
26
27
|
from letta.helpers.composio_helpers import get_composio_api_key
|
|
27
28
|
from letta.helpers.datetime_helpers import get_utc_time
|
|
28
29
|
from letta.helpers.json_helpers import json_dumps, json_loads
|
|
29
|
-
from letta.helpers.mcp_helpers import BaseMCPClient
|
|
30
30
|
from letta.interface import AgentInterface
|
|
31
31
|
from letta.llm_api.helpers import calculate_summarizer_cutoff, get_token_counts_for_messages, is_context_overflow_error
|
|
32
32
|
from letta.llm_api.llm_api_tools import create
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
from typing import List, Optional, Tuple
|
|
3
|
+
|
|
4
|
+
from mcp import ClientSession, Tool
|
|
5
|
+
|
|
6
|
+
from letta.functions.mcp_client.types import BaseServerConfig
|
|
7
|
+
from letta.log import get_logger
|
|
8
|
+
|
|
9
|
+
logger = get_logger(__name__)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class BaseMCPClient:
|
|
13
|
+
def __init__(self):
|
|
14
|
+
self.session: Optional[ClientSession] = None
|
|
15
|
+
self.stdio = None
|
|
16
|
+
self.write = None
|
|
17
|
+
self.initialized = False
|
|
18
|
+
self.loop = asyncio.new_event_loop()
|
|
19
|
+
self.cleanup_funcs = []
|
|
20
|
+
|
|
21
|
+
def connect_to_server(self, server_config: BaseServerConfig):
|
|
22
|
+
asyncio.set_event_loop(self.loop)
|
|
23
|
+
success = self._initialize_connection(server_config)
|
|
24
|
+
|
|
25
|
+
if success:
|
|
26
|
+
self.loop.run_until_complete(self.session.initialize())
|
|
27
|
+
self.initialized = True
|
|
28
|
+
else:
|
|
29
|
+
raise RuntimeError(
|
|
30
|
+
f"Connecting to MCP server failed. Please review your server config: {server_config.model_dump_json(indent=4)}"
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
def _initialize_connection(self, server_config: BaseServerConfig) -> bool:
|
|
34
|
+
raise NotImplementedError("Subclasses must implement _initialize_connection")
|
|
35
|
+
|
|
36
|
+
def list_tools(self) -> List[Tool]:
|
|
37
|
+
self._check_initialized()
|
|
38
|
+
response = self.loop.run_until_complete(self.session.list_tools())
|
|
39
|
+
return response.tools
|
|
40
|
+
|
|
41
|
+
def execute_tool(self, tool_name: str, tool_args: dict) -> Tuple[str, bool]:
|
|
42
|
+
self._check_initialized()
|
|
43
|
+
result = self.loop.run_until_complete(self.session.call_tool(tool_name, tool_args))
|
|
44
|
+
return str(result.content), result.isError
|
|
45
|
+
|
|
46
|
+
def _check_initialized(self):
|
|
47
|
+
if not self.initialized:
|
|
48
|
+
logger.error("MCPClient has not been initialized")
|
|
49
|
+
raise RuntimeError("MCPClient has not been initialized")
|
|
50
|
+
|
|
51
|
+
def cleanup(self):
|
|
52
|
+
try:
|
|
53
|
+
for cleanup_func in self.cleanup_funcs:
|
|
54
|
+
cleanup_func()
|
|
55
|
+
self.initialized = False
|
|
56
|
+
if not self.loop.is_closed():
|
|
57
|
+
self.loop.close()
|
|
58
|
+
except Exception as e:
|
|
59
|
+
logger.warning(e)
|
|
60
|
+
finally:
|
|
61
|
+
logger.info("Cleaned up MCP clients on shutdown.")
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from mcp import ClientSession
|
|
2
|
+
from mcp.client.sse import sse_client
|
|
3
|
+
|
|
4
|
+
from letta.functions.mcp_client.base_client import BaseMCPClient
|
|
5
|
+
from letta.functions.mcp_client.types import SSEServerConfig
|
|
6
|
+
|
|
7
|
+
# see: https://modelcontextprotocol.io/quickstart/user
|
|
8
|
+
MCP_CONFIG_TOPLEVEL_KEY = "mcpServers"
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class SSEMCPClient(BaseMCPClient):
|
|
12
|
+
def _initialize_connection(self, server_config: SSEServerConfig) -> bool:
|
|
13
|
+
sse_cm = sse_client(url=server_config.server_url)
|
|
14
|
+
sse_transport = self.loop.run_until_complete(sse_cm.__aenter__())
|
|
15
|
+
self.stdio, self.write = sse_transport
|
|
16
|
+
self.cleanup_funcs.append(lambda: self.loop.run_until_complete(sse_cm.__aexit__(None, None, None)))
|
|
17
|
+
|
|
18
|
+
session_cm = ClientSession(self.stdio, self.write)
|
|
19
|
+
self.session = self.loop.run_until_complete(session_cm.__aenter__())
|
|
20
|
+
self.cleanup_funcs.append(lambda: self.loop.run_until_complete(session_cm.__aexit__(None, None, None)))
|
|
21
|
+
return True
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
from contextlib import asynccontextmanager
|
|
3
|
+
|
|
4
|
+
import anyio
|
|
5
|
+
import anyio.lowlevel
|
|
6
|
+
import mcp.types as types
|
|
7
|
+
from anyio.streams.text import TextReceiveStream
|
|
8
|
+
from mcp import ClientSession, StdioServerParameters
|
|
9
|
+
from mcp.client.stdio import get_default_environment
|
|
10
|
+
|
|
11
|
+
from letta.functions.mcp_client.base_client import BaseMCPClient
|
|
12
|
+
from letta.functions.mcp_client.types import StdioServerConfig
|
|
13
|
+
from letta.log import get_logger
|
|
14
|
+
|
|
15
|
+
logger = get_logger(__name__)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class StdioMCPClient(BaseMCPClient):
|
|
19
|
+
def _initialize_connection(self, server_config: StdioServerConfig) -> bool:
|
|
20
|
+
try:
|
|
21
|
+
server_params = StdioServerParameters(command=server_config.command, args=server_config.args)
|
|
22
|
+
stdio_cm = forked_stdio_client(server_params)
|
|
23
|
+
stdio_transport = self.loop.run_until_complete(stdio_cm.__aenter__())
|
|
24
|
+
self.stdio, self.write = stdio_transport
|
|
25
|
+
self.cleanup_funcs.append(lambda: self.loop.run_until_complete(stdio_cm.__aexit__(None, None, None)))
|
|
26
|
+
|
|
27
|
+
session_cm = ClientSession(self.stdio, self.write)
|
|
28
|
+
self.session = self.loop.run_until_complete(session_cm.__aenter__())
|
|
29
|
+
self.cleanup_funcs.append(lambda: self.loop.run_until_complete(session_cm.__aexit__(None, None, None)))
|
|
30
|
+
return True
|
|
31
|
+
except Exception:
|
|
32
|
+
return False
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@asynccontextmanager
|
|
36
|
+
async def forked_stdio_client(server: StdioServerParameters):
|
|
37
|
+
"""
|
|
38
|
+
Client transport for stdio: this will connect to a server by spawning a
|
|
39
|
+
process and communicating with it over stdin/stdout.
|
|
40
|
+
"""
|
|
41
|
+
read_stream_writer, read_stream = anyio.create_memory_object_stream(0)
|
|
42
|
+
write_stream, write_stream_reader = anyio.create_memory_object_stream(0)
|
|
43
|
+
|
|
44
|
+
try:
|
|
45
|
+
process = await anyio.open_process(
|
|
46
|
+
[server.command, *server.args],
|
|
47
|
+
env=server.env or get_default_environment(),
|
|
48
|
+
stderr=sys.stderr, # Consider logging stderr somewhere instead of silencing it
|
|
49
|
+
)
|
|
50
|
+
except OSError as exc:
|
|
51
|
+
raise RuntimeError(f"Failed to spawn process: {server.command} {server.args}") from exc
|
|
52
|
+
|
|
53
|
+
async def stdout_reader():
|
|
54
|
+
assert process.stdout, "Opened process is missing stdout"
|
|
55
|
+
buffer = ""
|
|
56
|
+
try:
|
|
57
|
+
async with read_stream_writer:
|
|
58
|
+
async for chunk in TextReceiveStream(
|
|
59
|
+
process.stdout,
|
|
60
|
+
encoding=server.encoding,
|
|
61
|
+
errors=server.encoding_error_handler,
|
|
62
|
+
):
|
|
63
|
+
lines = (buffer + chunk).split("\n")
|
|
64
|
+
buffer = lines.pop()
|
|
65
|
+
for line in lines:
|
|
66
|
+
try:
|
|
67
|
+
message = types.JSONRPCMessage.model_validate_json(line)
|
|
68
|
+
except Exception as exc:
|
|
69
|
+
await read_stream_writer.send(exc)
|
|
70
|
+
continue
|
|
71
|
+
await read_stream_writer.send(message)
|
|
72
|
+
except anyio.ClosedResourceError:
|
|
73
|
+
await anyio.lowlevel.checkpoint()
|
|
74
|
+
|
|
75
|
+
async def stdin_writer():
|
|
76
|
+
assert process.stdin, "Opened process is missing stdin"
|
|
77
|
+
try:
|
|
78
|
+
async with write_stream_reader:
|
|
79
|
+
async for message in write_stream_reader:
|
|
80
|
+
json = message.model_dump_json(by_alias=True, exclude_none=True)
|
|
81
|
+
await process.stdin.send(
|
|
82
|
+
(json + "\n").encode(
|
|
83
|
+
encoding=server.encoding,
|
|
84
|
+
errors=server.encoding_error_handler,
|
|
85
|
+
)
|
|
86
|
+
)
|
|
87
|
+
except anyio.ClosedResourceError:
|
|
88
|
+
await anyio.lowlevel.checkpoint()
|
|
89
|
+
|
|
90
|
+
async def watch_process_exit():
|
|
91
|
+
returncode = await process.wait()
|
|
92
|
+
if returncode != 0:
|
|
93
|
+
raise RuntimeError(f"Subprocess exited with code {returncode}. Command: {server.command} {server.args}")
|
|
94
|
+
|
|
95
|
+
async with anyio.create_task_group() as tg, process:
|
|
96
|
+
tg.start_soon(stdout_reader)
|
|
97
|
+
tg.start_soon(stdin_writer)
|
|
98
|
+
tg.start_soon(watch_process_exit)
|
|
99
|
+
|
|
100
|
+
with anyio.move_on_after(0.2):
|
|
101
|
+
await anyio.sleep_forever()
|
|
102
|
+
|
|
103
|
+
yield read_stream, write_stream
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
from typing import List, Optional
|
|
3
|
+
|
|
4
|
+
from mcp import Tool
|
|
5
|
+
from pydantic import BaseModel, Field
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class MCPTool(Tool):
|
|
9
|
+
"""A simple wrapper around MCP's tool definition (to avoid conflict with our own)"""
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class MCPServerType(str, Enum):
|
|
13
|
+
SSE = "sse"
|
|
14
|
+
STDIO = "stdio"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class BaseServerConfig(BaseModel):
|
|
18
|
+
server_name: str = Field(..., description="The name of the server")
|
|
19
|
+
type: MCPServerType
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class SSEServerConfig(BaseServerConfig):
|
|
23
|
+
type: MCPServerType = MCPServerType.SSE
|
|
24
|
+
server_url: str = Field(..., description="The URL of the server (MCP SSE client will connect to this URL)")
|
|
25
|
+
|
|
26
|
+
def to_dict(self) -> dict:
|
|
27
|
+
values = {
|
|
28
|
+
"transport": "sse",
|
|
29
|
+
"url": self.server_url,
|
|
30
|
+
}
|
|
31
|
+
return values
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class StdioServerConfig(BaseServerConfig):
|
|
35
|
+
type: MCPServerType = MCPServerType.STDIO
|
|
36
|
+
command: str = Field(..., description="The command to run (MCP 'local' client will run this command)")
|
|
37
|
+
args: List[str] = Field(..., description="The arguments to pass to the command")
|
|
38
|
+
env: Optional[dict[str, str]] = Field(None, description="Environment variables to set")
|
|
39
|
+
|
|
40
|
+
def to_dict(self) -> dict:
|
|
41
|
+
values = {
|
|
42
|
+
"transport": "stdio",
|
|
43
|
+
"command": self.command,
|
|
44
|
+
"args": self.args,
|
|
45
|
+
}
|
|
46
|
+
if self.env is not None:
|
|
47
|
+
values["env"] = self.env
|
|
48
|
+
return values
|
|
@@ -6,7 +6,7 @@ from composio.client.collections import ActionParametersModel
|
|
|
6
6
|
from docstring_parser import parse
|
|
7
7
|
from pydantic import BaseModel
|
|
8
8
|
|
|
9
|
-
from letta.
|
|
9
|
+
from letta.functions.mcp_client.types import MCPTool
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def is_optional(annotation):
|
|
@@ -17,12 +17,12 @@ from letta.functions.helpers import (
|
|
|
17
17
|
generate_mcp_tool_wrapper,
|
|
18
18
|
generate_model_from_args_json_schema,
|
|
19
19
|
)
|
|
20
|
+
from letta.functions.mcp_client.types import MCPTool
|
|
20
21
|
from letta.functions.schema_generator import (
|
|
21
22
|
generate_schema_from_args_schema_v2,
|
|
22
23
|
generate_tool_schema_for_composio,
|
|
23
24
|
generate_tool_schema_for_mcp,
|
|
24
25
|
)
|
|
25
|
-
from letta.helpers.mcp_helpers import MCPTool
|
|
26
26
|
from letta.log import get_logger
|
|
27
27
|
from letta.orm.enums import ToolType
|
|
28
28
|
from letta.schemas.letta_base import LettaBase
|
|
@@ -12,8 +12,8 @@ from composio.exceptions import (
|
|
|
12
12
|
from fastapi import APIRouter, Body, Depends, Header, HTTPException
|
|
13
13
|
|
|
14
14
|
from letta.errors import LettaToolCreateError
|
|
15
|
+
from letta.functions.mcp_client.types import MCPTool, SSEServerConfig, StdioServerConfig
|
|
15
16
|
from letta.helpers.composio_helpers import get_composio_api_key
|
|
16
|
-
from letta.helpers.mcp_helpers import MCPTool, SSEServerConfig, StdioServerConfig
|
|
17
17
|
from letta.log import get_logger
|
|
18
18
|
from letta.orm.errors import UniqueConstraintViolationError
|
|
19
19
|
from letta.schemas.letta_message import ToolReturnMessage
|
|
@@ -20,18 +20,12 @@ from letta.agent import Agent, save_agent
|
|
|
20
20
|
from letta.config import LettaConfig
|
|
21
21
|
from letta.data_sources.connectors import DataConnector, load_data
|
|
22
22
|
from letta.dynamic_multi_agent import DynamicMultiAgent
|
|
23
|
+
from letta.functions.mcp_client.base_client import BaseMCPClient
|
|
24
|
+
from letta.functions.mcp_client.sse_client import MCP_CONFIG_TOPLEVEL_KEY, SSEMCPClient
|
|
25
|
+
from letta.functions.mcp_client.stdio_client import StdioMCPClient
|
|
26
|
+
from letta.functions.mcp_client.types import MCPServerType, MCPTool, SSEServerConfig, StdioServerConfig
|
|
23
27
|
from letta.helpers.datetime_helpers import get_utc_time
|
|
24
28
|
from letta.helpers.json_helpers import json_dumps, json_loads
|
|
25
|
-
from letta.helpers.mcp_helpers import (
|
|
26
|
-
MCP_CONFIG_TOPLEVEL_KEY,
|
|
27
|
-
BaseMCPClient,
|
|
28
|
-
MCPServerType,
|
|
29
|
-
MCPTool,
|
|
30
|
-
SSEMCPClient,
|
|
31
|
-
SSEServerConfig,
|
|
32
|
-
StdioMCPClient,
|
|
33
|
-
StdioServerConfig,
|
|
34
|
-
)
|
|
35
29
|
|
|
36
30
|
# TODO use custom interface
|
|
37
31
|
from letta.interface import AgentInterface # abstract
|
|
@@ -343,11 +337,12 @@ class SyncServer(Server):
|
|
|
343
337
|
self.mcp_clients[server_name] = StdioMCPClient()
|
|
344
338
|
else:
|
|
345
339
|
raise ValueError(f"Invalid MCP server config: {server_config}")
|
|
340
|
+
|
|
346
341
|
try:
|
|
347
342
|
self.mcp_clients[server_name].connect_to_server(server_config)
|
|
348
|
-
except:
|
|
349
|
-
logger.
|
|
350
|
-
|
|
343
|
+
except Exception as e:
|
|
344
|
+
logger.error(e)
|
|
345
|
+
self.mcp_clients.pop(server_name)
|
|
351
346
|
|
|
352
347
|
# Print out the tools that are connected
|
|
353
348
|
for server_name, client in self.mcp_clients.items():
|
|
File without changes
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
from enum import Enum
|
|
3
|
-
from typing import List, Optional, Tuple
|
|
4
|
-
|
|
5
|
-
from mcp import ClientSession, StdioServerParameters, Tool
|
|
6
|
-
from mcp.client.sse import sse_client
|
|
7
|
-
from mcp.client.stdio import stdio_client
|
|
8
|
-
from pydantic import BaseModel, Field
|
|
9
|
-
|
|
10
|
-
from letta.log import get_logger
|
|
11
|
-
|
|
12
|
-
logger = get_logger(__name__)
|
|
13
|
-
|
|
14
|
-
# see: https://modelcontextprotocol.io/quickstart/user
|
|
15
|
-
MCP_CONFIG_TOPLEVEL_KEY = "mcpServers"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class MCPTool(Tool):
|
|
19
|
-
"""A simple wrapper around MCP's tool definition (to avoid conflict with our own)"""
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class MCPServerType(str, Enum):
|
|
23
|
-
SSE = "sse"
|
|
24
|
-
STDIO = "stdio"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
class BaseServerConfig(BaseModel):
|
|
28
|
-
server_name: str = Field(..., description="The name of the server")
|
|
29
|
-
type: MCPServerType
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
class SSEServerConfig(BaseServerConfig):
|
|
33
|
-
type: MCPServerType = MCPServerType.SSE
|
|
34
|
-
server_url: str = Field(..., description="The URL of the server (MCP SSE client will connect to this URL)")
|
|
35
|
-
|
|
36
|
-
def to_dict(self) -> dict:
|
|
37
|
-
values = {
|
|
38
|
-
"transport": "sse",
|
|
39
|
-
"url": self.server_url,
|
|
40
|
-
}
|
|
41
|
-
return values
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
class StdioServerConfig(BaseServerConfig):
|
|
45
|
-
type: MCPServerType = MCPServerType.STDIO
|
|
46
|
-
command: str = Field(..., description="The command to run (MCP 'local' client will run this command)")
|
|
47
|
-
args: List[str] = Field(..., description="The arguments to pass to the command")
|
|
48
|
-
env: Optional[dict[str, str]] = Field(None, description="Environment variables to set")
|
|
49
|
-
|
|
50
|
-
def to_dict(self) -> dict:
|
|
51
|
-
values = {
|
|
52
|
-
"transport": "stdio",
|
|
53
|
-
"command": self.command,
|
|
54
|
-
"args": self.args,
|
|
55
|
-
}
|
|
56
|
-
if self.env is not None:
|
|
57
|
-
values["env"] = self.env
|
|
58
|
-
return values
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
class BaseMCPClient:
|
|
62
|
-
def __init__(self):
|
|
63
|
-
self.session: Optional[ClientSession] = None
|
|
64
|
-
self.stdio = None
|
|
65
|
-
self.write = None
|
|
66
|
-
self.initialized = False
|
|
67
|
-
self.loop = asyncio.new_event_loop()
|
|
68
|
-
self.cleanup_funcs = []
|
|
69
|
-
|
|
70
|
-
def connect_to_server(self, server_config: BaseServerConfig):
|
|
71
|
-
asyncio.set_event_loop(self.loop)
|
|
72
|
-
self._initialize_connection(server_config)
|
|
73
|
-
self.loop.run_until_complete(self.session.initialize())
|
|
74
|
-
self.initialized = True
|
|
75
|
-
|
|
76
|
-
def _initialize_connection(self, server_config: BaseServerConfig):
|
|
77
|
-
raise NotImplementedError("Subclasses must implement _initialize_connection")
|
|
78
|
-
|
|
79
|
-
def list_tools(self) -> List[Tool]:
|
|
80
|
-
self._check_initialized()
|
|
81
|
-
response = self.loop.run_until_complete(self.session.list_tools())
|
|
82
|
-
return response.tools
|
|
83
|
-
|
|
84
|
-
def execute_tool(self, tool_name: str, tool_args: dict) -> Tuple[str, bool]:
|
|
85
|
-
self._check_initialized()
|
|
86
|
-
result = self.loop.run_until_complete(self.session.call_tool(tool_name, tool_args))
|
|
87
|
-
return str(result.content), result.isError
|
|
88
|
-
|
|
89
|
-
def _check_initialized(self):
|
|
90
|
-
if not self.initialized:
|
|
91
|
-
logger.error("MCPClient has not been initialized")
|
|
92
|
-
raise RuntimeError("MCPClient has not been initialized")
|
|
93
|
-
|
|
94
|
-
def cleanup(self):
|
|
95
|
-
try:
|
|
96
|
-
for cleanup_func in self.cleanup_funcs:
|
|
97
|
-
cleanup_func()
|
|
98
|
-
self.initialized = False
|
|
99
|
-
if not self.loop.is_closed():
|
|
100
|
-
self.loop.close()
|
|
101
|
-
except Exception as e:
|
|
102
|
-
logger.warning(e)
|
|
103
|
-
finally:
|
|
104
|
-
logger.info("Cleaned up MCP clients on shutdown.")
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
class StdioMCPClient(BaseMCPClient):
|
|
108
|
-
def _initialize_connection(self, server_config: StdioServerConfig):
|
|
109
|
-
server_params = StdioServerParameters(command=server_config.command, args=server_config.args)
|
|
110
|
-
stdio_cm = stdio_client(server_params)
|
|
111
|
-
stdio_transport = self.loop.run_until_complete(stdio_cm.__aenter__())
|
|
112
|
-
self.stdio, self.write = stdio_transport
|
|
113
|
-
self.cleanup_funcs.append(lambda: self.loop.run_until_complete(stdio_cm.__aexit__(None, None, None)))
|
|
114
|
-
|
|
115
|
-
session_cm = ClientSession(self.stdio, self.write)
|
|
116
|
-
self.session = self.loop.run_until_complete(session_cm.__aenter__())
|
|
117
|
-
self.cleanup_funcs.append(lambda: self.loop.run_until_complete(session_cm.__aexit__(None, None, None)))
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
class SSEMCPClient(BaseMCPClient):
|
|
121
|
-
def _initialize_connection(self, server_config: SSEServerConfig):
|
|
122
|
-
sse_cm = sse_client(url=server_config.server_url)
|
|
123
|
-
sse_transport = self.loop.run_until_complete(sse_cm.__aenter__())
|
|
124
|
-
self.stdio, self.write = sse_transport
|
|
125
|
-
self.cleanup_funcs.append(lambda: self.loop.run_until_complete(sse_cm.__aexit__(None, None, None)))
|
|
126
|
-
|
|
127
|
-
session_cm = ClientSession(self.stdio, self.write)
|
|
128
|
-
self.session = self.loop.run_until_complete(session_cm.__aenter__())
|
|
129
|
-
self.cleanup_funcs.append(lambda: self.loop.run_until_complete(session_cm.__aexit__(None, None, None)))
|
|
File without changes
|
|
File without changes
|
{letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/cli/cli.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/config.py
RENAMED
|
File without changes
|
{letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/errors.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{letta_nightly-0.6.40.dev20250314173529 → letta_nightly-0.6.40.dev20250314222759}/letta/interface.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|