letta-nightly 0.9.0.dev20250726104256__tar.gz → 0.9.1.dev20250727063635__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.
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/PKG-INFO +3 -2
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/__init__.py +1 -1
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/agents/base_agent.py +1 -1
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/agents/letta_agent.py +6 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/helpers/datetime_helpers.py +1 -1
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/helpers/json_helpers.py +1 -1
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/agent.py +2 -3
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/agents_tags.py +1 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/block.py +2 -2
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/group.py +2 -2
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/identity.py +3 -4
- letta_nightly-0.9.1.dev20250727063635/letta/orm/mcp_oauth.py +62 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/step.py +2 -4
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/agent_file.py +31 -5
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/block.py +3 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/enums.py +4 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/group.py +3 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/mcp.py +70 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/memory.py +35 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/message.py +98 -91
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/openai.py +1 -1
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/app.py +19 -21
- letta_nightly-0.9.1.dev20250727063635/letta/server/rest_api/middleware/__init__.py +4 -0
- letta_nightly-0.9.1.dev20250727063635/letta/server/rest_api/middleware/check_password.py +24 -0
- letta_nightly-0.9.1.dev20250727063635/letta/server/rest_api/middleware/profiler_context.py +25 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/blocks.py +2 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/sources.py +26 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/tools.py +224 -23
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/agent_manager.py +15 -9
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/agent_serialization_manager.py +84 -3
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/block_manager.py +4 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_manager.py +23 -13
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_processor/file_processor.py +12 -10
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/mcp/base_client.py +20 -28
- letta_nightly-0.9.1.dev20250727063635/letta/services/mcp/oauth_utils.py +433 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/mcp/sse_client.py +12 -1
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/mcp/streamable_http_client.py +17 -5
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/mcp/types.py +9 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/mcp_manager.py +304 -42
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/provider_manager.py +2 -2
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_executor/tool_executor.py +6 -2
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_manager.py +8 -4
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_sandbox/base.py +3 -3
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_sandbox/e2b_sandbox.py +1 -1
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_sandbox/local_sandbox.py +16 -9
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/settings.py +11 -1
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/system.py +1 -1
- letta_nightly-0.9.1.dev20250727063635/letta/templates/template_helper.py +40 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/utils.py +19 -35
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/pyproject.toml +5 -4
- letta_nightly-0.9.0.dev20250726104256/letta/templates/template_helper.py +0 -16
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/LICENSE +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/README.md +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/agent.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/agents/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/agents/ephemeral_agent.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/agents/ephemeral_summary_agent.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/agents/exceptions.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/agents/helpers.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/agents/letta_agent_batch.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/agents/voice_agent.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/agents/voice_sleeptime_agent.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/cli/cli.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/cli/cli_load.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/client/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/client/client.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/client/streaming.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/client/utils.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/config.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/constants.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/data_sources/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/data_sources/connectors.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/data_sources/connectors_helper.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/data_sources/redis_client.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/embeddings.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/errors.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/ast_parsers.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/async_composio_toolset.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/composio_helpers.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/function_sets/base.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/function_sets/builtin.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/function_sets/extras.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/function_sets/files.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/function_sets/multi_agent.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/function_sets/voice.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/functions.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/helpers.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/interface.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/mcp_client/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/mcp_client/base_client.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/mcp_client/exceptions.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/mcp_client/sse_client.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/mcp_client/stdio_client.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/mcp_client/types.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/prompts.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/schema_generator.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/functions/types.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/groups/dynamic_multi_agent.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/groups/helpers.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/groups/round_robin_multi_agent.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/groups/sleeptime_multi_agent.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/groups/sleeptime_multi_agent_v2.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/groups/supervisor_multi_agent.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/helpers/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/helpers/composio_helpers.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/helpers/converters.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/helpers/decorators.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/helpers/message_helper.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/helpers/pinecone_utils.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/helpers/singleton.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/helpers/tool_execution_helper.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/helpers/tool_rule_solver.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/humans/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/humans/examples/basic.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/humans/examples/cs_phd.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/interface.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/interfaces/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/interfaces/anthropic_streaming_interface.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/interfaces/openai_chat_completions_streaming_interface.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/interfaces/openai_streaming_interface.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/interfaces/utils.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/jobs/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/jobs/helpers.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/jobs/llm_batch_job_polling.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/jobs/scheduler.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/jobs/types.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/anthropic.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/anthropic_client.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/aws_bedrock.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/azure_openai.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/azure_openai_constants.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/bedrock_client.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/cohere.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/deepseek.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/google_ai_client.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/google_constants.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/google_vertex_client.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/helpers.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/llm_api_tools.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/llm_client.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/llm_client_base.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/mistral.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/openai.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/openai_client.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/sample_response_jsons/aws_bedrock.json +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/sample_response_jsons/lmstudio_embedding_list.json +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/llm_api/sample_response_jsons/lmstudio_model_list.json +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/README.md +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/chat_completion_proxy.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/constants.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/function_parser.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/grammars/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/grammars/gbnf_grammar_generator.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/grammars/json.gbnf +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/grammars/json_func_calls_with_inner_thoughts.gbnf +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/json_parser.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/koboldcpp/api.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/koboldcpp/settings.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/llamacpp/api.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/llamacpp/settings.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/llm_chat_completion_wrappers/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/llm_chat_completion_wrappers/airoboros.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/llm_chat_completion_wrappers/chatml.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/llm_chat_completion_wrappers/configurable_wrapper.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/llm_chat_completion_wrappers/dolphin.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/llm_chat_completion_wrappers/llama3.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/llm_chat_completion_wrappers/simple_summary_wrapper.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/llm_chat_completion_wrappers/wrapper_base.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/llm_chat_completion_wrappers/zephyr.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/lmstudio/api.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/lmstudio/settings.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/ollama/api.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/ollama/settings.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/settings/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/settings/deterministic_mirostat.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/settings/settings.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/settings/simple.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/utils.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/vllm/api.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/webui/api.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/webui/legacy_api.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/webui/legacy_settings.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/local_llm/webui/settings.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/log.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/main.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/memory.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/openai_backcompat/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/openai_backcompat/openai_object.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/__all__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/base.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/block_history.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/blocks_agents.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/custom_columns.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/enums.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/errors.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/file.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/files_agents.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/groups_agents.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/groups_blocks.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/identities_agents.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/identities_blocks.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/job.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/job_messages.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/llm_batch_items.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/llm_batch_job.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/mcp_server.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/message.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/mixins.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/organization.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/passage.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/prompt.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/provider.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/provider_trace.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/sandbox_config.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/source.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/sources_agents.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/sqlalchemy_base.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/sqlite_functions.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/tool.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/tools_agents.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/user.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/otel/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/otel/context.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/otel/db_pool_monitoring.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/otel/events.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/otel/metric_registry.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/otel/metrics.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/otel/resource.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/otel/sqlalchemy_instrumentation.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/otel/sqlalchemy_instrumentation_integration.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/otel/tracing.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/personas/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/personas/examples/anna_pa.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/personas/examples/google_search_persona.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/personas/examples/memgpt_doc.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/personas/examples/memgpt_starter.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/personas/examples/o1_persona.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/personas/examples/sam.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/personas/examples/sam_pov.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/personas/examples/sam_simple_pov_gpt35.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/personas/examples/sleeptime_doc_persona.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/personas/examples/sleeptime_memory_persona.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/personas/examples/sqldb/test.db +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/personas/examples/voice_memory_persona.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/plugins/README.md +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/plugins/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/plugins/defaults.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/plugins/plugins.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/gpt_summarize.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/gpt_system.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/memgpt_base.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/memgpt_chat.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/memgpt_chat_compressed.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/memgpt_chat_fstring.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/memgpt_convo_only.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/memgpt_doc.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/memgpt_gpt35_extralong.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/memgpt_intuitive_knowledge.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/memgpt_memory_only.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/memgpt_modified_chat.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/memgpt_modified_o1.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/memgpt_offline_memory.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/memgpt_offline_memory_chat.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/memgpt_sleeptime_chat.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/memgpt_v2_chat.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/react.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/sleeptime.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/sleeptime_doc_ingest.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/sleeptime_v2.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/summary_system_prompt.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/voice_chat.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/voice_sleeptime.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/prompts/system/workflow.txt +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/pytest.ini +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/agent.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/embedding_config.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/embedding_config_overrides.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/environment_variables.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/file.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/folder.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/health.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/identity.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/job.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/letta_base.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/letta_message.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/letta_message_content.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/letta_request.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/letta_response.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/letta_stop_reason.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/llm_batch_job.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/llm_config.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/llm_config_overrides.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/openai/chat_completion_request.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/openai/chat_completion_response.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/openai/chat_completions.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/openai/embedding_response.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/openai/openai.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/organization.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/passage.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/pip_requirement.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/prompt.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/provider_trace.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/anthropic.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/azure.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/base.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/bedrock.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/cerebras.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/cohere.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/deepseek.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/google_gemini.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/google_vertex.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/groq.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/letta.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/lmstudio.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/mistral.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/ollama.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/together.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/vllm.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers/xai.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/providers.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/response_format.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/run.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/sandbox_config.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/source.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/source_metadata.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/step.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/tool.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/tool_execution_result.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/tool_rule.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/usage.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/user.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/serialize_schemas/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/serialize_schemas/marshmallow_agent.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/serialize_schemas/marshmallow_agent_environment_variable.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/serialize_schemas/marshmallow_base.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/serialize_schemas/marshmallow_block.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/serialize_schemas/marshmallow_custom_fields.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/serialize_schemas/marshmallow_message.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/serialize_schemas/marshmallow_tag.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/serialize_schemas/marshmallow_tool.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/serialize_schemas/pydantic_agent_schema.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/constants.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/db.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/generate_openapi_schema.sh +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/auth/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/auth/index.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/auth_token.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/chat_completions_interface.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/interface.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/json_parser.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/openai/chat_completions/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/agents.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/embeddings.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/folders.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/groups.py +1 -1
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/health.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/identities.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/jobs.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/llms.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/messages.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/organizations.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/providers.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/runs.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/sandbox_configs.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/steps.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/tags.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/telemetry.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/users.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/routers/v1/voice.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/static_files.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/streaming_response.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/rest_api/utils.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/server.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/startup.sh +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/static_files/assets/index-048c9598.js +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/static_files/assets/index-0e31b727.css +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/static_files/favicon.ico +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/static_files/index.html +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/static_files/memgpt_logo_transparent.png +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/utils.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/ws_api/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/ws_api/example_client.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/ws_api/interface.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/ws_api/protocol.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/server/ws_api/server.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/agent_file_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/context_window_calculator/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/context_window_calculator/context_window_calculator.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/context_window_calculator/token_counter.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_processor/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_processor/chunker/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_processor/chunker/line_chunker.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_processor/chunker/llama_index_chunker.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_processor/embedder/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_processor/embedder/base_embedder.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_processor/embedder/openai_embedder.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_processor/embedder/pinecone_embedder.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_processor/file_types.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_processor/parser/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_processor/parser/base_parser.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_processor/parser/markitdown_parser.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_processor/parser/mistral_parser.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/file_processor/types.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/files_agents_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/group_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/helpers/agent_manager_helper.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/helpers/tool_execution_helper.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/helpers/tool_parser_helper.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/identity_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/job_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/llm_batch_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/mcp/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/mcp/stdio_client.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/message_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/organization_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/passage_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/per_agent_lock_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/sandbox_config_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/source_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/step_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/summarizer/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/summarizer/enums.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/summarizer/summarizer.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/telemetry_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_executor/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_executor/builtin_tool_executor.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_executor/composio_tool_executor.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_executor/core_tool_executor.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_executor/files_tool_executor.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_executor/mcp_tool_executor.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_executor/multi_agent_tool_executor.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_executor/tool_execution_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_executor/tool_execution_sandbox.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_executor/tool_executor_base.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/tool_sandbox/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/services/user_manager.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/streaming_interface.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/streaming_utils.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/templates/__init__.py +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/templates/sandbox_code_file.py.j2 +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/templates/sandbox_code_file_async.py.j2 +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/templates/summary_request_text.j2 +0 -0
- {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/types/__init__.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: letta-nightly
|
3
|
-
Version: 0.9.
|
3
|
+
Version: 0.9.1.dev20250727063635
|
4
4
|
Summary: Create LLM agents with long-term memory and custom tools
|
5
5
|
License: Apache License
|
6
6
|
Author: Letta Team
|
@@ -45,6 +45,7 @@ Requires-Dist: e2b-code-interpreter (>=1.0.3,<2.0.0) ; extra == "cloud-tool-sand
|
|
45
45
|
Requires-Dist: faker (>=36.1.0,<37.0.0)
|
46
46
|
Requires-Dist: fastapi (>=0.115.6,<0.116.0) ; extra == "server" or extra == "desktop" or extra == "all"
|
47
47
|
Requires-Dist: firecrawl-py (>=2.8.0,<3.0.0) ; extra == "external-tools"
|
48
|
+
Requires-Dist: google-cloud-profiler (>=4.1.0,<5.0.0) ; extra == "experimental" or extra == "all"
|
48
49
|
Requires-Dist: google-genai (>=1.15.0,<2.0.0) ; extra == "google"
|
49
50
|
Requires-Dist: granian[reload,uvloop] (>=2.3.2,<3.0.0) ; extra == "experimental" or extra == "all"
|
50
51
|
Requires-Dist: grpcio (>=1.68.1,<2.0.0)
|
@@ -56,7 +57,7 @@ Requires-Dist: isort (>=5.13.2,<6.0.0) ; extra == "dev" or extra == "all"
|
|
56
57
|
Requires-Dist: jinja2 (>=3.1.5,<4.0.0)
|
57
58
|
Requires-Dist: langchain (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "desktop" or extra == "all"
|
58
59
|
Requires-Dist: langchain-community (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "desktop" or extra == "all"
|
59
|
-
Requires-Dist: letta_client (>=0.1.
|
60
|
+
Requires-Dist: letta_client (>=0.1.220,<0.2.0)
|
60
61
|
Requires-Dist: llama-index (>=0.12.2,<0.13.0)
|
61
62
|
Requires-Dist: llama-index-embeddings-openai (>=0.3.1,<0.4.0)
|
62
63
|
Requires-Dist: locust (>=2.31.5,<3.0.0) ; extra == "dev" or extra == "desktop" or extra == "all"
|
@@ -122,7 +122,7 @@ class BaseAgent(ABC):
|
|
122
122
|
curr_dynamic_section = extract_dynamic_section(curr_system_message_text)
|
123
123
|
|
124
124
|
# generate just the memory string with current state for comparison
|
125
|
-
curr_memory_str = agent_state.memory.
|
125
|
+
curr_memory_str = await agent_state.memory.compile_async(
|
126
126
|
tool_usage_rules=tool_constraint_block, sources=agent_state.sources, max_files_open=agent_state.max_files_open
|
127
127
|
)
|
128
128
|
new_dynamic_section = extract_dynamic_section(curr_memory_str)
|
@@ -359,6 +359,8 @@ class LettaAgent(BaseAgent):
|
|
359
359
|
# Update step if it needs to be updated
|
360
360
|
finally:
|
361
361
|
if settings.track_stop_reason:
|
362
|
+
if step_progression == StepProgression.FINISHED and should_continue:
|
363
|
+
continue
|
362
364
|
self.logger.info("Running final update. Step Progression: %s", step_progression)
|
363
365
|
try:
|
364
366
|
if step_progression < StepProgression.STEP_LOGGED:
|
@@ -586,6 +588,8 @@ class LettaAgent(BaseAgent):
|
|
586
588
|
# Update step if it needs to be updated
|
587
589
|
finally:
|
588
590
|
if settings.track_stop_reason:
|
591
|
+
if step_progression == StepProgression.FINISHED and should_continue:
|
592
|
+
continue
|
589
593
|
self.logger.info("Running final update. Step Progression: %s", step_progression)
|
590
594
|
try:
|
591
595
|
if step_progression < StepProgression.STEP_LOGGED:
|
@@ -897,6 +901,8 @@ class LettaAgent(BaseAgent):
|
|
897
901
|
# Update step if it needs to be updated
|
898
902
|
finally:
|
899
903
|
if settings.track_stop_reason:
|
904
|
+
if step_progression == StepProgression.FINISHED and should_continue:
|
905
|
+
continue
|
900
906
|
self.logger.info("Running final update. Step Progression: %s", step_progression)
|
901
907
|
try:
|
902
908
|
if step_progression < StepProgression.STEP_LOGGED:
|
@@ -42,7 +42,7 @@ def get_local_time_timezone(timezone=DEFAULT_TIMEZONE):
|
|
42
42
|
return formatted_time
|
43
43
|
|
44
44
|
|
45
|
-
def get_local_time(timezone=DEFAULT_TIMEZONE):
|
45
|
+
def get_local_time(timezone: str | None = DEFAULT_TIMEZONE):
|
46
46
|
if timezone is not None:
|
47
47
|
time_str = get_local_time_timezone(timezone)
|
48
48
|
else:
|
{letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/agent.py
RENAMED
@@ -10,7 +10,7 @@ from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
10
10
|
from letta.orm.block import Block
|
11
11
|
from letta.orm.custom_columns import EmbeddingConfigColumn, LLMConfigColumn, ResponseFormatColumn, ToolRulesColumn
|
12
12
|
from letta.orm.identity import Identity
|
13
|
-
from letta.orm.mixins import OrganizationMixin
|
13
|
+
from letta.orm.mixins import OrganizationMixin, ProjectMixin
|
14
14
|
from letta.orm.organization import Organization
|
15
15
|
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
16
16
|
from letta.schemas.agent import AgentState as PydanticAgentState
|
@@ -31,7 +31,7 @@ if TYPE_CHECKING:
|
|
31
31
|
from letta.orm.tool import Tool
|
32
32
|
|
33
33
|
|
34
|
-
class Agent(SqlalchemyBase, OrganizationMixin, AsyncAttrs):
|
34
|
+
class Agent(SqlalchemyBase, OrganizationMixin, ProjectMixin, AsyncAttrs):
|
35
35
|
__tablename__ = "agents"
|
36
36
|
__pydantic_model__ = PydanticAgentState
|
37
37
|
__table_args__ = (Index("ix_agents_created_at", "created_at", "id"),)
|
@@ -67,7 +67,6 @@ class Agent(SqlalchemyBase, OrganizationMixin, AsyncAttrs):
|
|
67
67
|
embedding_config: Mapped[Optional[EmbeddingConfig]] = mapped_column(
|
68
68
|
EmbeddingConfigColumn, doc="the embedding configuration object for this agent."
|
69
69
|
)
|
70
|
-
project_id: Mapped[Optional[str]] = mapped_column(String, nullable=True, doc="The id of the project the agent belongs to.")
|
71
70
|
template_id: Mapped[Optional[str]] = mapped_column(String, nullable=True, doc="The id of the template the agent belongs to.")
|
72
71
|
base_template_id: Mapped[Optional[str]] = mapped_column(String, nullable=True, doc="The base template id of the agent.")
|
73
72
|
|
@@ -9,6 +9,7 @@ class AgentsTags(Base):
|
|
9
9
|
__table_args__ = (
|
10
10
|
UniqueConstraint("agent_id", "tag", name="unique_agent_tag"),
|
11
11
|
Index("ix_agents_tags_agent_id_tag", "agent_id", "tag"),
|
12
|
+
Index("ix_agents_tags_tag_agent_id", "tag", "agent_id"),
|
12
13
|
)
|
13
14
|
|
14
15
|
# # agent generates its own id
|
{letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/block.py
RENAMED
@@ -6,7 +6,7 @@ from sqlalchemy.orm import Mapped, attributes, declared_attr, mapped_column, rel
|
|
6
6
|
from letta.constants import CORE_MEMORY_BLOCK_CHAR_LIMIT
|
7
7
|
from letta.orm.block_history import BlockHistory
|
8
8
|
from letta.orm.blocks_agents import BlocksAgents
|
9
|
-
from letta.orm.mixins import OrganizationMixin
|
9
|
+
from letta.orm.mixins import OrganizationMixin, ProjectMixin
|
10
10
|
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
11
11
|
from letta.schemas.block import Block as PydanticBlock
|
12
12
|
from letta.schemas.block import Human, Persona
|
@@ -16,7 +16,7 @@ if TYPE_CHECKING:
|
|
16
16
|
from letta.orm.identity import Identity
|
17
17
|
|
18
18
|
|
19
|
-
class Block(OrganizationMixin, SqlalchemyBase):
|
19
|
+
class Block(OrganizationMixin, SqlalchemyBase, ProjectMixin):
|
20
20
|
"""Blocks are sections of the LLM context, representing a specific part of the total Memory"""
|
21
21
|
|
22
22
|
__tablename__ = "block"
|
{letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/group.py
RENAMED
@@ -4,12 +4,12 @@ from typing import List, Optional
|
|
4
4
|
from sqlalchemy import JSON, ForeignKey, String
|
5
5
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
6
6
|
|
7
|
-
from letta.orm.mixins import OrganizationMixin
|
7
|
+
from letta.orm.mixins import OrganizationMixin, ProjectMixin
|
8
8
|
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
9
9
|
from letta.schemas.group import Group as PydanticGroup
|
10
10
|
|
11
11
|
|
12
|
-
class Group(SqlalchemyBase, OrganizationMixin):
|
12
|
+
class Group(SqlalchemyBase, OrganizationMixin, ProjectMixin):
|
13
13
|
|
14
14
|
__tablename__ = "groups"
|
15
15
|
__pydantic_model__ = PydanticGroup
|
@@ -1,17 +1,17 @@
|
|
1
1
|
import uuid
|
2
|
-
from typing import List
|
2
|
+
from typing import List
|
3
3
|
|
4
4
|
from sqlalchemy import String, UniqueConstraint
|
5
5
|
from sqlalchemy.dialects.postgresql import JSON
|
6
6
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
7
7
|
|
8
|
-
from letta.orm.mixins import OrganizationMixin
|
8
|
+
from letta.orm.mixins import OrganizationMixin, ProjectMixin
|
9
9
|
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
10
10
|
from letta.schemas.identity import Identity as PydanticIdentity
|
11
11
|
from letta.schemas.identity import IdentityProperty
|
12
12
|
|
13
13
|
|
14
|
-
class Identity(SqlalchemyBase, OrganizationMixin):
|
14
|
+
class Identity(SqlalchemyBase, OrganizationMixin, ProjectMixin):
|
15
15
|
"""Identity ORM class"""
|
16
16
|
|
17
17
|
__tablename__ = "identities"
|
@@ -32,7 +32,6 @@ class Identity(SqlalchemyBase, OrganizationMixin):
|
|
32
32
|
identifier_key: Mapped[str] = mapped_column(nullable=False, doc="External, user-generated identifier key of the identity.")
|
33
33
|
name: Mapped[str] = mapped_column(nullable=False, doc="The name of the identity.")
|
34
34
|
identity_type: Mapped[str] = mapped_column(nullable=False, doc="The type of the identity.")
|
35
|
-
project_id: Mapped[Optional[str]] = mapped_column(nullable=True, doc="The project id of the identity.")
|
36
35
|
properties: Mapped[List["IdentityProperty"]] = mapped_column(
|
37
36
|
JSON, nullable=False, default=list, doc="List of properties associated with the identity"
|
38
37
|
)
|
@@ -0,0 +1,62 @@
|
|
1
|
+
import uuid
|
2
|
+
from datetime import datetime
|
3
|
+
from enum import Enum
|
4
|
+
from typing import Optional
|
5
|
+
|
6
|
+
from sqlalchemy import DateTime, ForeignKey, String, Text
|
7
|
+
from sqlalchemy.orm import Mapped, mapped_column
|
8
|
+
|
9
|
+
from letta.orm.mixins import OrganizationMixin, UserMixin
|
10
|
+
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
11
|
+
|
12
|
+
|
13
|
+
class OAuthSessionStatus(str, Enum):
|
14
|
+
"""OAuth session status enumeration."""
|
15
|
+
|
16
|
+
PENDING = "pending"
|
17
|
+
AUTHORIZED = "authorized"
|
18
|
+
ERROR = "error"
|
19
|
+
|
20
|
+
|
21
|
+
class MCPOAuth(SqlalchemyBase, OrganizationMixin, UserMixin):
|
22
|
+
"""OAuth session model for MCP server authentication."""
|
23
|
+
|
24
|
+
__tablename__ = "mcp_oauth"
|
25
|
+
|
26
|
+
# Override the id field to match database UUID generation
|
27
|
+
id: Mapped[str] = mapped_column(String, primary_key=True, default=lambda: f"{uuid.uuid4()}")
|
28
|
+
|
29
|
+
# Core session information
|
30
|
+
state: Mapped[str] = mapped_column(String(255), unique=True, nullable=False, doc="OAuth state parameter")
|
31
|
+
server_id: Mapped[str] = mapped_column(String(255), ForeignKey("mcp_server.id", ondelete="CASCADE"), nullable=True, doc="MCP server ID")
|
32
|
+
server_url: Mapped[str] = mapped_column(Text, nullable=False, doc="MCP server URL")
|
33
|
+
server_name: Mapped[str] = mapped_column(Text, nullable=False, doc="MCP server display name")
|
34
|
+
|
35
|
+
# OAuth flow data
|
36
|
+
authorization_url: Mapped[Optional[str]] = mapped_column(Text, nullable=True, doc="OAuth authorization URL")
|
37
|
+
authorization_code: Mapped[Optional[str]] = mapped_column(Text, nullable=True, doc="OAuth authorization code")
|
38
|
+
|
39
|
+
# Token data
|
40
|
+
access_token: Mapped[Optional[str]] = mapped_column(Text, nullable=True, doc="OAuth access token")
|
41
|
+
refresh_token: Mapped[Optional[str]] = mapped_column(Text, nullable=True, doc="OAuth refresh token")
|
42
|
+
token_type: Mapped[str] = mapped_column(String(50), default="Bearer", doc="Token type")
|
43
|
+
expires_at: Mapped[Optional[datetime]] = mapped_column(DateTime(timezone=True), nullable=True, doc="Token expiry time")
|
44
|
+
scope: Mapped[Optional[str]] = mapped_column(Text, nullable=True, doc="OAuth scope")
|
45
|
+
|
46
|
+
# Client configuration
|
47
|
+
client_id: Mapped[Optional[str]] = mapped_column(Text, nullable=True, doc="OAuth client ID")
|
48
|
+
client_secret: Mapped[Optional[str]] = mapped_column(Text, nullable=True, doc="OAuth client secret")
|
49
|
+
redirect_uri: Mapped[Optional[str]] = mapped_column(Text, nullable=True, doc="OAuth redirect URI")
|
50
|
+
|
51
|
+
# Session state
|
52
|
+
status: Mapped[OAuthSessionStatus] = mapped_column(String(20), default=OAuthSessionStatus.PENDING, doc="Session status")
|
53
|
+
|
54
|
+
# Timestamps
|
55
|
+
created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=lambda: datetime.now(), doc="Session creation time")
|
56
|
+
updated_at: Mapped[datetime] = mapped_column(
|
57
|
+
DateTime(timezone=True), default=lambda: datetime.now(), onupdate=lambda: datetime.now(), doc="Last update time"
|
58
|
+
)
|
59
|
+
|
60
|
+
# Relationships (if needed in the future)
|
61
|
+
# user: Mapped[Optional["User"]] = relationship("User", back_populates="oauth_sessions")
|
62
|
+
# organization: Mapped["Organization"] = relationship("Organization", back_populates="oauth_sessions")
|
{letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/orm/step.py
RENAMED
@@ -4,6 +4,7 @@ from typing import TYPE_CHECKING, Dict, List, Optional
|
|
4
4
|
from sqlalchemy import JSON, ForeignKey, String
|
5
5
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
6
6
|
|
7
|
+
from letta.orm.mixins import ProjectMixin
|
7
8
|
from letta.orm.sqlalchemy_base import SqlalchemyBase
|
8
9
|
from letta.schemas.letta_stop_reason import StopReasonType
|
9
10
|
from letta.schemas.step import Step as PydanticStep
|
@@ -13,7 +14,7 @@ if TYPE_CHECKING:
|
|
13
14
|
from letta.orm.provider import Provider
|
14
15
|
|
15
16
|
|
16
|
-
class Step(SqlalchemyBase):
|
17
|
+
class Step(SqlalchemyBase, ProjectMixin):
|
17
18
|
"""Tracks all metadata for agent step."""
|
18
19
|
|
19
20
|
__tablename__ = "steps"
|
@@ -53,9 +54,6 @@ class Step(SqlalchemyBase):
|
|
53
54
|
feedback: Mapped[Optional[str]] = mapped_column(
|
54
55
|
None, nullable=True, doc="The feedback for this step. Must be either 'positive' or 'negative'."
|
55
56
|
)
|
56
|
-
project_id: Mapped[Optional[str]] = mapped_column(
|
57
|
-
None, nullable=True, doc="The project that the agent that executed this step belongs to (cloud only)."
|
58
|
-
)
|
59
57
|
|
60
58
|
# Relationships (foreign keys)
|
61
59
|
organization: Mapped[Optional["Organization"]] = relationship("Organization")
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from datetime import datetime
|
2
|
-
from typing import Dict, List, Optional
|
2
|
+
from typing import Any, Dict, List, Optional
|
3
3
|
|
4
4
|
from pydantic import BaseModel, Field
|
5
5
|
|
@@ -8,6 +8,7 @@ from letta.schemas.block import Block, CreateBlock
|
|
8
8
|
from letta.schemas.enums import MessageRole
|
9
9
|
from letta.schemas.file import FileAgent, FileAgentBase, FileMetadata, FileMetadataBase
|
10
10
|
from letta.schemas.group import GroupCreate
|
11
|
+
from letta.schemas.mcp import MCPServer
|
11
12
|
from letta.schemas.message import Message, MessageCreate
|
12
13
|
from letta.schemas.source import Source, SourceCreate
|
13
14
|
from letta.schemas.tool import Tool
|
@@ -264,9 +265,34 @@ class ToolSchema(Tool):
|
|
264
265
|
return cls(**tool.model_dump())
|
265
266
|
|
266
267
|
|
267
|
-
|
268
|
-
|
269
|
-
|
268
|
+
class MCPServerSchema(BaseModel):
|
269
|
+
"""MCP server schema for agent files with remapped ID."""
|
270
|
+
|
271
|
+
__id_prefix__ = "mcp_server"
|
272
|
+
|
273
|
+
id: str = Field(..., description="Human-readable MCP server ID")
|
274
|
+
server_type: str
|
275
|
+
server_name: str
|
276
|
+
server_url: Optional[str] = None
|
277
|
+
stdio_config: Optional[Dict[str, Any]] = None
|
278
|
+
metadata_: Optional[Dict[str, Any]] = None
|
279
|
+
|
280
|
+
@classmethod
|
281
|
+
def from_mcp_server(cls, mcp_server: MCPServer) -> "MCPServerSchema":
|
282
|
+
"""Convert MCPServer to MCPServerSchema (excluding auth fields)."""
|
283
|
+
return cls(
|
284
|
+
id=mcp_server.id, # remapped by serialization manager
|
285
|
+
server_type=mcp_server.server_type,
|
286
|
+
server_name=mcp_server.server_name,
|
287
|
+
server_url=mcp_server.server_url,
|
288
|
+
# exclude token, custom_headers, and the env field in stdio_config that may contain authentication credentials
|
289
|
+
stdio_config=cls.strip_env_from_stdio_config(mcp_server.stdio_config.model_dump()) if mcp_server.stdio_config else None,
|
290
|
+
metadata_=mcp_server.metadata_,
|
291
|
+
)
|
292
|
+
|
293
|
+
def strip_env_from_stdio_config(stdio_config: Dict[str, Any]) -> Dict[str, Any]:
|
294
|
+
"""Strip out the env field from the stdio config."""
|
295
|
+
return {k: v for k, v in stdio_config.items() if k != "env"}
|
270
296
|
|
271
297
|
|
272
298
|
class AgentFileSchema(BaseModel):
|
@@ -278,7 +304,7 @@ class AgentFileSchema(BaseModel):
|
|
278
304
|
files: List[FileSchema] = Field(..., description="List of files in this agent file")
|
279
305
|
sources: List[SourceSchema] = Field(..., description="List of sources in this agent file")
|
280
306
|
tools: List[ToolSchema] = Field(..., description="List of tools in this agent file")
|
281
|
-
|
307
|
+
mcp_servers: List[MCPServerSchema] = Field(..., description="List of MCP servers in this agent file")
|
282
308
|
metadata: Dict[str, str] = Field(
|
283
309
|
default_factory=dict, description="Metadata for this agent file, including revision_id and other export information."
|
284
310
|
)
|
@@ -19,6 +19,7 @@ class BaseBlock(LettaBase, validate_assignment=True):
|
|
19
19
|
value: str = Field(..., description="Value of the block.")
|
20
20
|
limit: int = Field(CORE_MEMORY_BLOCK_CHAR_LIMIT, description="Character limit of the block.")
|
21
21
|
|
22
|
+
project_id: Optional[str] = Field(None, description="The associated project id.")
|
22
23
|
# template data (optional)
|
23
24
|
template_name: Optional[str] = Field(None, description="Name of the block if it is a template.", alias="name")
|
24
25
|
is_template: bool = Field(False, description="Whether the block is a template (e.g. saved human/persona options).")
|
@@ -112,6 +113,7 @@ class BlockUpdate(BaseBlock):
|
|
112
113
|
|
113
114
|
limit: Optional[int] = Field(None, description="Character limit of the block.")
|
114
115
|
value: Optional[str] = Field(None, description="Value of the block.")
|
116
|
+
project_id: Optional[str] = Field(None, description="The associated project id.")
|
115
117
|
|
116
118
|
class Config:
|
117
119
|
extra = "ignore" # Ignores extra fields
|
@@ -124,6 +126,7 @@ class CreateBlock(BaseBlock):
|
|
124
126
|
limit: int = Field(CORE_MEMORY_BLOCK_CHAR_LIMIT, description="Character limit of the block.")
|
125
127
|
value: str = Field(..., description="Value of the block.")
|
126
128
|
|
129
|
+
project_id: Optional[str] = Field(None, description="The associated project id.")
|
127
130
|
# block templates
|
128
131
|
is_template: bool = False
|
129
132
|
template_name: Optional[str] = Field(None, description="Name of the block if it is a template.", alias="name")
|
@@ -102,6 +102,10 @@ class FileProcessingStatus(str, Enum):
|
|
102
102
|
COMPLETED = "completed"
|
103
103
|
ERROR = "error"
|
104
104
|
|
105
|
+
def is_terminal_state(self) -> bool:
|
106
|
+
"""Check if the processing status is in a terminal state (completed or error)."""
|
107
|
+
return self in (FileProcessingStatus.COMPLETED, FileProcessingStatus.ERROR)
|
108
|
+
|
105
109
|
|
106
110
|
class ToolType(str, Enum):
|
107
111
|
CUSTOM = "custom"
|
@@ -24,6 +24,7 @@ class Group(GroupBase):
|
|
24
24
|
manager_type: ManagerType = Field(..., description="")
|
25
25
|
agent_ids: List[str] = Field(..., description="")
|
26
26
|
description: str = Field(..., description="")
|
27
|
+
project_id: Optional[str] = Field(None, description="The associated project id.")
|
27
28
|
shared_block_ids: List[str] = Field([], description="")
|
28
29
|
# Pattern fields
|
29
30
|
manager_agent_id: Optional[str] = Field(None, description="")
|
@@ -138,6 +139,7 @@ class GroupCreate(BaseModel):
|
|
138
139
|
agent_ids: List[str] = Field(..., description="")
|
139
140
|
description: str = Field(..., description="")
|
140
141
|
manager_config: ManagerConfigUnion = Field(RoundRobinManager(), description="")
|
142
|
+
project_id: Optional[str] = Field(None, description="The associated project id.")
|
141
143
|
shared_block_ids: List[str] = Field([], description="")
|
142
144
|
|
143
145
|
|
@@ -145,4 +147,5 @@ class GroupUpdate(BaseModel):
|
|
145
147
|
agent_ids: Optional[List[str]] = Field(None, description="")
|
146
148
|
description: Optional[str] = Field(None, description="")
|
147
149
|
manager_config: Optional[ManagerConfigUpdateUnion] = Field(None, description="")
|
150
|
+
project_id: Optional[str] = Field(None, description="The associated project id.")
|
148
151
|
shared_block_ids: Optional[List[str]] = Field(None, description="")
|
{letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727063635}/letta/schemas/mcp.py
RENAMED
@@ -1,3 +1,4 @@
|
|
1
|
+
from datetime import datetime
|
1
2
|
from typing import Any, Dict, Optional, Union
|
2
3
|
|
3
4
|
from pydantic import Field
|
@@ -10,6 +11,7 @@ from letta.functions.mcp_client.types import (
|
|
10
11
|
StdioServerConfig,
|
11
12
|
StreamableHTTPServerConfig,
|
12
13
|
)
|
14
|
+
from letta.orm.mcp_oauth import OAuthSessionStatus
|
13
15
|
from letta.schemas.letta_base import LettaBase
|
14
16
|
|
15
17
|
|
@@ -119,3 +121,71 @@ class UpdateStreamableHTTPMCPServer(LettaBase):
|
|
119
121
|
|
120
122
|
UpdateMCPServer = Union[UpdateSSEMCPServer, UpdateStdioMCPServer, UpdateStreamableHTTPMCPServer]
|
121
123
|
RegisterMCPServer = Union[RegisterSSEMCPServer, RegisterStdioMCPServer, RegisterStreamableHTTPMCPServer]
|
124
|
+
|
125
|
+
|
126
|
+
# OAuth-related schemas
|
127
|
+
class BaseMCPOAuth(LettaBase):
|
128
|
+
__id_prefix__ = "mcp-oauth"
|
129
|
+
|
130
|
+
|
131
|
+
class MCPOAuthSession(BaseMCPOAuth):
|
132
|
+
"""OAuth session for MCP server authentication."""
|
133
|
+
|
134
|
+
id: str = BaseMCPOAuth.generate_id_field()
|
135
|
+
state: str = Field(..., description="OAuth state parameter")
|
136
|
+
server_id: Optional[str] = Field(None, description="MCP server ID")
|
137
|
+
server_url: str = Field(..., description="MCP server URL")
|
138
|
+
server_name: str = Field(..., description="MCP server display name")
|
139
|
+
|
140
|
+
# User and organization context
|
141
|
+
user_id: Optional[str] = Field(None, description="User ID associated with the session")
|
142
|
+
organization_id: str = Field(..., description="Organization ID associated with the session")
|
143
|
+
|
144
|
+
# OAuth flow data
|
145
|
+
authorization_url: Optional[str] = Field(None, description="OAuth authorization URL")
|
146
|
+
authorization_code: Optional[str] = Field(None, description="OAuth authorization code")
|
147
|
+
|
148
|
+
# Token data
|
149
|
+
access_token: Optional[str] = Field(None, description="OAuth access token")
|
150
|
+
refresh_token: Optional[str] = Field(None, description="OAuth refresh token")
|
151
|
+
token_type: str = Field(default="Bearer", description="Token type")
|
152
|
+
expires_at: Optional[datetime] = Field(None, description="Token expiry time")
|
153
|
+
scope: Optional[str] = Field(None, description="OAuth scope")
|
154
|
+
|
155
|
+
# Client configuration
|
156
|
+
client_id: Optional[str] = Field(None, description="OAuth client ID")
|
157
|
+
client_secret: Optional[str] = Field(None, description="OAuth client secret")
|
158
|
+
redirect_uri: Optional[str] = Field(None, description="OAuth redirect URI")
|
159
|
+
|
160
|
+
# Session state
|
161
|
+
status: OAuthSessionStatus = Field(default=OAuthSessionStatus.PENDING, description="Session status")
|
162
|
+
|
163
|
+
# Timestamps
|
164
|
+
created_at: datetime = Field(default_factory=datetime.now, description="Session creation time")
|
165
|
+
updated_at: datetime = Field(default_factory=datetime.now, description="Last update time")
|
166
|
+
|
167
|
+
|
168
|
+
class MCPOAuthSessionCreate(BaseMCPOAuth):
|
169
|
+
"""Create a new OAuth session."""
|
170
|
+
|
171
|
+
server_url: str = Field(..., description="MCP server URL")
|
172
|
+
server_name: str = Field(..., description="MCP server display name")
|
173
|
+
user_id: Optional[str] = Field(None, description="User ID associated with the session")
|
174
|
+
organization_id: str = Field(..., description="Organization ID associated with the session")
|
175
|
+
state: Optional[str] = Field(None, description="OAuth state parameter")
|
176
|
+
|
177
|
+
|
178
|
+
class MCPOAuthSessionUpdate(BaseMCPOAuth):
|
179
|
+
"""Update an existing OAuth session."""
|
180
|
+
|
181
|
+
authorization_url: Optional[str] = Field(None, description="OAuth authorization URL")
|
182
|
+
authorization_code: Optional[str] = Field(None, description="OAuth authorization code")
|
183
|
+
access_token: Optional[str] = Field(None, description="OAuth access token")
|
184
|
+
refresh_token: Optional[str] = Field(None, description="OAuth refresh token")
|
185
|
+
token_type: Optional[str] = Field(None, description="Token type")
|
186
|
+
expires_at: Optional[datetime] = Field(None, description="Token expiry time")
|
187
|
+
scope: Optional[str] = Field(None, description="OAuth scope")
|
188
|
+
client_id: Optional[str] = Field(None, description="OAuth client ID")
|
189
|
+
client_secret: Optional[str] = Field(None, description="OAuth client secret")
|
190
|
+
redirect_uri: Optional[str] = Field(None, description="OAuth redirect URI")
|
191
|
+
status: Optional[OAuthSessionStatus] = Field(None, description="Session status")
|
@@ -133,6 +133,25 @@ class Memory(BaseModel, validate_assignment=True):
|
|
133
133
|
except Exception as e:
|
134
134
|
raise ValueError(f"Prompt template is not compatible with current memory structure: {str(e)}")
|
135
135
|
|
136
|
+
async def set_prompt_template_async(self, prompt_template: str):
|
137
|
+
"""
|
138
|
+
Async version of set_prompt_template that doesn't block the event loop.
|
139
|
+
"""
|
140
|
+
try:
|
141
|
+
# Validate Jinja2 syntax with async enabled
|
142
|
+
Template(prompt_template, enable_async=True)
|
143
|
+
|
144
|
+
# Validate compatibility with current memory structure - use async rendering
|
145
|
+
template = Template(prompt_template, enable_async=True)
|
146
|
+
await template.render_async(blocks=self.blocks, file_blocks=self.file_blocks, sources=[], max_files_open=None)
|
147
|
+
|
148
|
+
# If we get here, the template is valid and compatible
|
149
|
+
self.prompt_template = prompt_template
|
150
|
+
except TemplateSyntaxError as e:
|
151
|
+
raise ValueError(f"Invalid Jinja2 template syntax: {str(e)}")
|
152
|
+
except Exception as e:
|
153
|
+
raise ValueError(f"Prompt template is not compatible with current memory structure: {str(e)}")
|
154
|
+
|
136
155
|
def compile(self, tool_usage_rules=None, sources=None, max_files_open=None) -> str:
|
137
156
|
"""Generate a string representation of the memory in-context using the Jinja2 template"""
|
138
157
|
try:
|
@@ -149,6 +168,22 @@ class Memory(BaseModel, validate_assignment=True):
|
|
149
168
|
except Exception as e:
|
150
169
|
raise ValueError(f"Prompt template is not compatible with current memory structure: {str(e)}")
|
151
170
|
|
171
|
+
async def compile_async(self, tool_usage_rules=None, sources=None, max_files_open=None) -> str:
|
172
|
+
"""Async version of compile that doesn't block the event loop"""
|
173
|
+
try:
|
174
|
+
template = Template(self.prompt_template, enable_async=True)
|
175
|
+
return await template.render_async(
|
176
|
+
blocks=self.blocks,
|
177
|
+
file_blocks=self.file_blocks,
|
178
|
+
tool_usage_rules=tool_usage_rules,
|
179
|
+
sources=sources,
|
180
|
+
max_files_open=max_files_open,
|
181
|
+
)
|
182
|
+
except TemplateSyntaxError as e:
|
183
|
+
raise ValueError(f"Invalid Jinja2 template syntax: {str(e)}")
|
184
|
+
except Exception as e:
|
185
|
+
raise ValueError(f"Prompt template is not compatible with current memory structure: {str(e)}")
|
186
|
+
|
152
187
|
def list_block_labels(self) -> List[str]:
|
153
188
|
"""Return a list of the block names held inside the memory object"""
|
154
189
|
# return list(self.memory.keys())
|