letta-nightly 0.9.0.dev20250726104256__tar.gz → 0.9.1.dev20250727104258__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.
Files changed (455) hide show
  1. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/PKG-INFO +3 -2
  2. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/__init__.py +1 -1
  3. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/agents/base_agent.py +1 -1
  4. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/agents/letta_agent.py +6 -0
  5. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/helpers/datetime_helpers.py +1 -1
  6. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/helpers/json_helpers.py +1 -1
  7. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/agent.py +2 -3
  8. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/agents_tags.py +1 -0
  9. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/block.py +2 -2
  10. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/group.py +2 -2
  11. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/identity.py +3 -4
  12. letta_nightly-0.9.1.dev20250727104258/letta/orm/mcp_oauth.py +62 -0
  13. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/step.py +2 -4
  14. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/agent_file.py +31 -5
  15. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/block.py +3 -0
  16. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/enums.py +4 -0
  17. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/group.py +3 -0
  18. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/mcp.py +70 -0
  19. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/memory.py +35 -0
  20. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/message.py +98 -91
  21. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/openai.py +1 -1
  22. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/app.py +19 -21
  23. letta_nightly-0.9.1.dev20250727104258/letta/server/rest_api/middleware/__init__.py +4 -0
  24. letta_nightly-0.9.1.dev20250727104258/letta/server/rest_api/middleware/check_password.py +24 -0
  25. letta_nightly-0.9.1.dev20250727104258/letta/server/rest_api/middleware/profiler_context.py +25 -0
  26. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/blocks.py +2 -0
  27. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/sources.py +26 -0
  28. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/tools.py +224 -23
  29. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/agent_manager.py +15 -9
  30. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/agent_serialization_manager.py +84 -3
  31. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/block_manager.py +4 -0
  32. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_manager.py +23 -13
  33. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_processor/file_processor.py +12 -10
  34. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/mcp/base_client.py +20 -28
  35. letta_nightly-0.9.1.dev20250727104258/letta/services/mcp/oauth_utils.py +433 -0
  36. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/mcp/sse_client.py +12 -1
  37. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/mcp/streamable_http_client.py +17 -5
  38. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/mcp/types.py +9 -0
  39. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/mcp_manager.py +304 -42
  40. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/provider_manager.py +2 -2
  41. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_executor/tool_executor.py +6 -2
  42. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_manager.py +8 -4
  43. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_sandbox/base.py +3 -3
  44. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_sandbox/e2b_sandbox.py +1 -1
  45. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_sandbox/local_sandbox.py +16 -9
  46. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/settings.py +11 -1
  47. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/system.py +1 -1
  48. letta_nightly-0.9.1.dev20250727104258/letta/templates/template_helper.py +40 -0
  49. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/utils.py +19 -35
  50. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/pyproject.toml +5 -4
  51. letta_nightly-0.9.0.dev20250726104256/letta/templates/template_helper.py +0 -16
  52. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/LICENSE +0 -0
  53. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/README.md +0 -0
  54. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/agent.py +0 -0
  55. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/agents/__init__.py +0 -0
  56. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/agents/ephemeral_agent.py +0 -0
  57. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/agents/ephemeral_summary_agent.py +0 -0
  58. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/agents/exceptions.py +0 -0
  59. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/agents/helpers.py +0 -0
  60. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/agents/letta_agent_batch.py +0 -0
  61. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/agents/voice_agent.py +0 -0
  62. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/agents/voice_sleeptime_agent.py +0 -0
  63. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/cli/cli.py +0 -0
  64. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/cli/cli_load.py +0 -0
  65. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/client/__init__.py +0 -0
  66. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/client/client.py +0 -0
  67. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/client/streaming.py +0 -0
  68. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/client/utils.py +0 -0
  69. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/config.py +0 -0
  70. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/constants.py +0 -0
  71. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/data_sources/__init__.py +0 -0
  72. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/data_sources/connectors.py +0 -0
  73. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/data_sources/connectors_helper.py +0 -0
  74. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/data_sources/redis_client.py +0 -0
  75. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/embeddings.py +0 -0
  76. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/errors.py +0 -0
  77. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/__init__.py +0 -0
  78. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/ast_parsers.py +0 -0
  79. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/async_composio_toolset.py +0 -0
  80. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/composio_helpers.py +0 -0
  81. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/function_sets/base.py +0 -0
  82. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/function_sets/builtin.py +0 -0
  83. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/function_sets/extras.py +0 -0
  84. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/function_sets/files.py +0 -0
  85. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/function_sets/multi_agent.py +0 -0
  86. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/function_sets/voice.py +0 -0
  87. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/functions.py +0 -0
  88. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/helpers.py +0 -0
  89. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/interface.py +0 -0
  90. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/mcp_client/__init__.py +0 -0
  91. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/mcp_client/base_client.py +0 -0
  92. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/mcp_client/exceptions.py +0 -0
  93. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/mcp_client/sse_client.py +0 -0
  94. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/mcp_client/stdio_client.py +0 -0
  95. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/mcp_client/types.py +0 -0
  96. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/prompts.py +0 -0
  97. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/schema_generator.py +0 -0
  98. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/functions/types.py +0 -0
  99. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/groups/dynamic_multi_agent.py +0 -0
  100. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/groups/helpers.py +0 -0
  101. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/groups/round_robin_multi_agent.py +0 -0
  102. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/groups/sleeptime_multi_agent.py +0 -0
  103. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/groups/sleeptime_multi_agent_v2.py +0 -0
  104. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/groups/supervisor_multi_agent.py +0 -0
  105. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/helpers/__init__.py +0 -0
  106. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/helpers/composio_helpers.py +0 -0
  107. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/helpers/converters.py +0 -0
  108. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/helpers/decorators.py +0 -0
  109. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/helpers/message_helper.py +0 -0
  110. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/helpers/pinecone_utils.py +0 -0
  111. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/helpers/singleton.py +0 -0
  112. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/helpers/tool_execution_helper.py +0 -0
  113. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/helpers/tool_rule_solver.py +0 -0
  114. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/humans/__init__.py +0 -0
  115. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/humans/examples/basic.txt +0 -0
  116. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/humans/examples/cs_phd.txt +0 -0
  117. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/interface.py +0 -0
  118. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/interfaces/__init__.py +0 -0
  119. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/interfaces/anthropic_streaming_interface.py +0 -0
  120. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/interfaces/openai_chat_completions_streaming_interface.py +0 -0
  121. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/interfaces/openai_streaming_interface.py +0 -0
  122. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/interfaces/utils.py +0 -0
  123. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/jobs/__init__.py +0 -0
  124. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/jobs/helpers.py +0 -0
  125. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/jobs/llm_batch_job_polling.py +0 -0
  126. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/jobs/scheduler.py +0 -0
  127. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/jobs/types.py +0 -0
  128. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/__init__.py +0 -0
  129. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/anthropic.py +0 -0
  130. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/anthropic_client.py +0 -0
  131. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/aws_bedrock.py +0 -0
  132. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/azure_openai.py +0 -0
  133. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/azure_openai_constants.py +0 -0
  134. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/bedrock_client.py +0 -0
  135. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/cohere.py +0 -0
  136. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/deepseek.py +0 -0
  137. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/google_ai_client.py +0 -0
  138. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/google_constants.py +0 -0
  139. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/google_vertex_client.py +0 -0
  140. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/helpers.py +0 -0
  141. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/llm_api_tools.py +0 -0
  142. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/llm_client.py +0 -0
  143. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/llm_client_base.py +0 -0
  144. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/mistral.py +0 -0
  145. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/openai.py +0 -0
  146. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/openai_client.py +0 -0
  147. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/sample_response_jsons/aws_bedrock.json +0 -0
  148. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/sample_response_jsons/lmstudio_embedding_list.json +0 -0
  149. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/llm_api/sample_response_jsons/lmstudio_model_list.json +0 -0
  150. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/README.md +0 -0
  151. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/__init__.py +0 -0
  152. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/chat_completion_proxy.py +0 -0
  153. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/constants.py +0 -0
  154. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/function_parser.py +0 -0
  155. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/grammars/__init__.py +0 -0
  156. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/grammars/gbnf_grammar_generator.py +0 -0
  157. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/grammars/json.gbnf +0 -0
  158. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/grammars/json_func_calls_with_inner_thoughts.gbnf +0 -0
  159. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/json_parser.py +0 -0
  160. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/koboldcpp/api.py +0 -0
  161. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/koboldcpp/settings.py +0 -0
  162. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/llamacpp/api.py +0 -0
  163. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/llamacpp/settings.py +0 -0
  164. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/llm_chat_completion_wrappers/__init__.py +0 -0
  165. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/llm_chat_completion_wrappers/airoboros.py +0 -0
  166. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/llm_chat_completion_wrappers/chatml.py +0 -0
  167. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/llm_chat_completion_wrappers/configurable_wrapper.py +0 -0
  168. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/llm_chat_completion_wrappers/dolphin.py +0 -0
  169. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/llm_chat_completion_wrappers/llama3.py +0 -0
  170. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/llm_chat_completion_wrappers/simple_summary_wrapper.py +0 -0
  171. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/llm_chat_completion_wrappers/wrapper_base.py +0 -0
  172. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/llm_chat_completion_wrappers/zephyr.py +0 -0
  173. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/lmstudio/api.py +0 -0
  174. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/lmstudio/settings.py +0 -0
  175. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/ollama/api.py +0 -0
  176. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/ollama/settings.py +0 -0
  177. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/settings/__init__.py +0 -0
  178. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/settings/deterministic_mirostat.py +0 -0
  179. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/settings/settings.py +0 -0
  180. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/settings/simple.py +0 -0
  181. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/utils.py +0 -0
  182. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/vllm/api.py +0 -0
  183. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/webui/api.py +0 -0
  184. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/webui/legacy_api.py +0 -0
  185. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/webui/legacy_settings.py +0 -0
  186. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/local_llm/webui/settings.py +0 -0
  187. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/log.py +0 -0
  188. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/main.py +0 -0
  189. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/memory.py +0 -0
  190. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/openai_backcompat/__init__.py +0 -0
  191. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/openai_backcompat/openai_object.py +0 -0
  192. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/__all__.py +0 -0
  193. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/__init__.py +0 -0
  194. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/base.py +0 -0
  195. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/block_history.py +0 -0
  196. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/blocks_agents.py +0 -0
  197. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/custom_columns.py +0 -0
  198. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/enums.py +0 -0
  199. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/errors.py +0 -0
  200. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/file.py +0 -0
  201. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/files_agents.py +0 -0
  202. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/groups_agents.py +0 -0
  203. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/groups_blocks.py +0 -0
  204. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/identities_agents.py +0 -0
  205. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/identities_blocks.py +0 -0
  206. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/job.py +0 -0
  207. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/job_messages.py +0 -0
  208. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/llm_batch_items.py +0 -0
  209. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/llm_batch_job.py +0 -0
  210. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/mcp_server.py +0 -0
  211. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/message.py +0 -0
  212. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/mixins.py +0 -0
  213. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/organization.py +0 -0
  214. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/passage.py +0 -0
  215. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/prompt.py +0 -0
  216. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/provider.py +0 -0
  217. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/provider_trace.py +0 -0
  218. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/sandbox_config.py +0 -0
  219. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/source.py +0 -0
  220. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/sources_agents.py +0 -0
  221. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/sqlalchemy_base.py +0 -0
  222. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/sqlite_functions.py +0 -0
  223. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/tool.py +0 -0
  224. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/tools_agents.py +0 -0
  225. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/orm/user.py +0 -0
  226. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/otel/__init__.py +0 -0
  227. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/otel/context.py +0 -0
  228. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/otel/db_pool_monitoring.py +0 -0
  229. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/otel/events.py +0 -0
  230. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/otel/metric_registry.py +0 -0
  231. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/otel/metrics.py +0 -0
  232. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/otel/resource.py +0 -0
  233. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/otel/sqlalchemy_instrumentation.py +0 -0
  234. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/otel/sqlalchemy_instrumentation_integration.py +0 -0
  235. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/otel/tracing.py +0 -0
  236. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/personas/__init__.py +0 -0
  237. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/personas/examples/anna_pa.txt +0 -0
  238. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/personas/examples/google_search_persona.txt +0 -0
  239. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/personas/examples/memgpt_doc.txt +0 -0
  240. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/personas/examples/memgpt_starter.txt +0 -0
  241. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/personas/examples/o1_persona.txt +0 -0
  242. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/personas/examples/sam.txt +0 -0
  243. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/personas/examples/sam_pov.txt +0 -0
  244. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/personas/examples/sam_simple_pov_gpt35.txt +0 -0
  245. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/personas/examples/sleeptime_doc_persona.txt +0 -0
  246. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/personas/examples/sleeptime_memory_persona.txt +0 -0
  247. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/personas/examples/sqldb/test.db +0 -0
  248. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/personas/examples/voice_memory_persona.txt +0 -0
  249. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/plugins/README.md +0 -0
  250. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/plugins/__init__.py +0 -0
  251. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/plugins/defaults.py +0 -0
  252. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/plugins/plugins.py +0 -0
  253. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/__init__.py +0 -0
  254. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/gpt_summarize.py +0 -0
  255. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/gpt_system.py +0 -0
  256. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/memgpt_base.txt +0 -0
  257. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/memgpt_chat.txt +0 -0
  258. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/memgpt_chat_compressed.txt +0 -0
  259. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/memgpt_chat_fstring.txt +0 -0
  260. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/memgpt_convo_only.txt +0 -0
  261. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/memgpt_doc.txt +0 -0
  262. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/memgpt_gpt35_extralong.txt +0 -0
  263. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/memgpt_intuitive_knowledge.txt +0 -0
  264. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/memgpt_memory_only.txt +0 -0
  265. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/memgpt_modified_chat.txt +0 -0
  266. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/memgpt_modified_o1.txt +0 -0
  267. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/memgpt_offline_memory.txt +0 -0
  268. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/memgpt_offline_memory_chat.txt +0 -0
  269. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/memgpt_sleeptime_chat.txt +0 -0
  270. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/memgpt_v2_chat.txt +0 -0
  271. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/react.txt +0 -0
  272. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/sleeptime.txt +0 -0
  273. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/sleeptime_doc_ingest.txt +0 -0
  274. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/sleeptime_v2.txt +0 -0
  275. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/summary_system_prompt.txt +0 -0
  276. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/voice_chat.txt +0 -0
  277. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/voice_sleeptime.txt +0 -0
  278. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/prompts/system/workflow.txt +0 -0
  279. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/pytest.ini +0 -0
  280. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/agent.py +0 -0
  281. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/embedding_config.py +0 -0
  282. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/embedding_config_overrides.py +0 -0
  283. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/environment_variables.py +0 -0
  284. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/file.py +0 -0
  285. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/folder.py +0 -0
  286. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/health.py +0 -0
  287. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/identity.py +0 -0
  288. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/job.py +0 -0
  289. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/letta_base.py +0 -0
  290. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/letta_message.py +0 -0
  291. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/letta_message_content.py +0 -0
  292. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/letta_request.py +0 -0
  293. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/letta_response.py +0 -0
  294. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/letta_stop_reason.py +0 -0
  295. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/llm_batch_job.py +0 -0
  296. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/llm_config.py +0 -0
  297. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/llm_config_overrides.py +0 -0
  298. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/openai/chat_completion_request.py +0 -0
  299. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/openai/chat_completion_response.py +0 -0
  300. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/openai/chat_completions.py +0 -0
  301. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/openai/embedding_response.py +0 -0
  302. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/openai/openai.py +0 -0
  303. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/organization.py +0 -0
  304. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/passage.py +0 -0
  305. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/pip_requirement.py +0 -0
  306. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/prompt.py +0 -0
  307. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/provider_trace.py +0 -0
  308. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/__init__.py +0 -0
  309. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/anthropic.py +0 -0
  310. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/azure.py +0 -0
  311. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/base.py +0 -0
  312. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/bedrock.py +0 -0
  313. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/cerebras.py +0 -0
  314. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/cohere.py +0 -0
  315. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/deepseek.py +0 -0
  316. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/google_gemini.py +0 -0
  317. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/google_vertex.py +0 -0
  318. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/groq.py +0 -0
  319. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/letta.py +0 -0
  320. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/lmstudio.py +0 -0
  321. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/mistral.py +0 -0
  322. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/ollama.py +0 -0
  323. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/together.py +0 -0
  324. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/vllm.py +0 -0
  325. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers/xai.py +0 -0
  326. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/providers.py +0 -0
  327. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/response_format.py +0 -0
  328. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/run.py +0 -0
  329. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/sandbox_config.py +0 -0
  330. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/source.py +0 -0
  331. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/source_metadata.py +0 -0
  332. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/step.py +0 -0
  333. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/tool.py +0 -0
  334. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/tool_execution_result.py +0 -0
  335. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/tool_rule.py +0 -0
  336. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/usage.py +0 -0
  337. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/schemas/user.py +0 -0
  338. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/serialize_schemas/__init__.py +0 -0
  339. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/serialize_schemas/marshmallow_agent.py +0 -0
  340. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/serialize_schemas/marshmallow_agent_environment_variable.py +0 -0
  341. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/serialize_schemas/marshmallow_base.py +0 -0
  342. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/serialize_schemas/marshmallow_block.py +0 -0
  343. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/serialize_schemas/marshmallow_custom_fields.py +0 -0
  344. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/serialize_schemas/marshmallow_message.py +0 -0
  345. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/serialize_schemas/marshmallow_tag.py +0 -0
  346. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/serialize_schemas/marshmallow_tool.py +0 -0
  347. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/serialize_schemas/pydantic_agent_schema.py +0 -0
  348. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/__init__.py +0 -0
  349. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/constants.py +0 -0
  350. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/db.py +0 -0
  351. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/generate_openapi_schema.sh +0 -0
  352. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/__init__.py +0 -0
  353. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/auth/__init__.py +0 -0
  354. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/auth/index.py +0 -0
  355. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/auth_token.py +0 -0
  356. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/chat_completions_interface.py +0 -0
  357. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/interface.py +0 -0
  358. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/json_parser.py +0 -0
  359. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/__init__.py +0 -0
  360. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/openai/chat_completions/__init__.py +0 -0
  361. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +0 -0
  362. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/__init__.py +0 -0
  363. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/agents.py +0 -0
  364. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/embeddings.py +0 -0
  365. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/folders.py +0 -0
  366. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/groups.py +1 -1
  367. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/health.py +0 -0
  368. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/identities.py +0 -0
  369. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/jobs.py +0 -0
  370. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/llms.py +0 -0
  371. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/messages.py +0 -0
  372. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/organizations.py +0 -0
  373. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/providers.py +0 -0
  374. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/runs.py +0 -0
  375. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/sandbox_configs.py +0 -0
  376. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/steps.py +0 -0
  377. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/tags.py +0 -0
  378. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/telemetry.py +0 -0
  379. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/users.py +0 -0
  380. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/routers/v1/voice.py +0 -0
  381. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/static_files.py +0 -0
  382. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/streaming_response.py +0 -0
  383. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/rest_api/utils.py +0 -0
  384. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/server.py +0 -0
  385. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/startup.sh +0 -0
  386. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/static_files/assets/index-048c9598.js +0 -0
  387. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/static_files/assets/index-0e31b727.css +0 -0
  388. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/static_files/favicon.ico +0 -0
  389. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/static_files/index.html +0 -0
  390. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/static_files/memgpt_logo_transparent.png +0 -0
  391. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/utils.py +0 -0
  392. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/ws_api/__init__.py +0 -0
  393. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/ws_api/example_client.py +0 -0
  394. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/ws_api/interface.py +0 -0
  395. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/ws_api/protocol.py +0 -0
  396. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/server/ws_api/server.py +0 -0
  397. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/__init__.py +0 -0
  398. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/agent_file_manager.py +0 -0
  399. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/context_window_calculator/__init__.py +0 -0
  400. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/context_window_calculator/context_window_calculator.py +0 -0
  401. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/context_window_calculator/token_counter.py +0 -0
  402. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_processor/__init__.py +0 -0
  403. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_processor/chunker/__init__.py +0 -0
  404. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_processor/chunker/line_chunker.py +0 -0
  405. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_processor/chunker/llama_index_chunker.py +0 -0
  406. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_processor/embedder/__init__.py +0 -0
  407. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_processor/embedder/base_embedder.py +0 -0
  408. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_processor/embedder/openai_embedder.py +0 -0
  409. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_processor/embedder/pinecone_embedder.py +0 -0
  410. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_processor/file_types.py +0 -0
  411. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_processor/parser/__init__.py +0 -0
  412. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_processor/parser/base_parser.py +0 -0
  413. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_processor/parser/markitdown_parser.py +0 -0
  414. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_processor/parser/mistral_parser.py +0 -0
  415. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/file_processor/types.py +0 -0
  416. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/files_agents_manager.py +0 -0
  417. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/group_manager.py +0 -0
  418. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/helpers/agent_manager_helper.py +0 -0
  419. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/helpers/tool_execution_helper.py +0 -0
  420. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/helpers/tool_parser_helper.py +0 -0
  421. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/identity_manager.py +0 -0
  422. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/job_manager.py +0 -0
  423. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/llm_batch_manager.py +0 -0
  424. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/mcp/__init__.py +0 -0
  425. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/mcp/stdio_client.py +0 -0
  426. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/message_manager.py +0 -0
  427. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/organization_manager.py +0 -0
  428. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/passage_manager.py +0 -0
  429. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/per_agent_lock_manager.py +0 -0
  430. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/sandbox_config_manager.py +0 -0
  431. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/source_manager.py +0 -0
  432. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/step_manager.py +0 -0
  433. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/summarizer/__init__.py +0 -0
  434. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/summarizer/enums.py +0 -0
  435. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/summarizer/summarizer.py +0 -0
  436. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/telemetry_manager.py +0 -0
  437. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_executor/__init__.py +0 -0
  438. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_executor/builtin_tool_executor.py +0 -0
  439. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_executor/composio_tool_executor.py +0 -0
  440. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_executor/core_tool_executor.py +0 -0
  441. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_executor/files_tool_executor.py +0 -0
  442. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_executor/mcp_tool_executor.py +0 -0
  443. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_executor/multi_agent_tool_executor.py +0 -0
  444. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_executor/tool_execution_manager.py +0 -0
  445. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_executor/tool_execution_sandbox.py +0 -0
  446. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_executor/tool_executor_base.py +0 -0
  447. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/tool_sandbox/__init__.py +0 -0
  448. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/services/user_manager.py +0 -0
  449. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/streaming_interface.py +0 -0
  450. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/streaming_utils.py +0 -0
  451. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/templates/__init__.py +0 -0
  452. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/templates/sandbox_code_file.py.j2 +0 -0
  453. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/templates/sandbox_code_file_async.py.j2 +0 -0
  454. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/letta/templates/summary_request_text.j2 +0 -0
  455. {letta_nightly-0.9.0.dev20250726104256 → letta_nightly-0.9.1.dev20250727104258}/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.0.dev20250726104256
3
+ Version: 0.9.1.dev20250727104258
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.219,<0.2.0)
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"
@@ -5,7 +5,7 @@ try:
5
5
  __version__ = version("letta")
6
6
  except PackageNotFoundError:
7
7
  # Fallback for development installations
8
- __version__ = "0.9.0"
8
+ __version__ = "0.9.1"
9
9
 
10
10
  if os.environ.get("LETTA_VERSION"):
11
11
  __version__ = os.environ["LETTA_VERSION"]
@@ -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.compile(
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:
@@ -7,7 +7,7 @@ def json_loads(data):
7
7
  return json.loads(data, strict=False)
8
8
 
9
9
 
10
- def json_dumps(data, indent=2):
10
+ def json_dumps(data, indent=2) -> str:
11
11
  def safe_serializer(obj):
12
12
  if isinstance(obj, datetime):
13
13
  return obj.isoformat()
@@ -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
@@ -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"
@@ -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, Optional
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")
@@ -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
- # class MCPServerSchema(RegisterMCPServer):
268
- # """MCP Server with human-readable ID for agent file"""
269
- # id: str = Field(..., description="Human-readable identifier for this MCP server in the file")
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
- # mcp_servers: List[MCPServerSchema] = Field(..., description="List of MCP servers in this agent file")
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="")
@@ -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())