letta-nightly 0.7.11.dev20250507230415__tar.gz → 0.7.12.dev20250508104250__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 (347) hide show
  1. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/PKG-INFO +2 -2
  2. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/__init__.py +1 -1
  3. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/anthropic.py +15 -1
  4. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/google_ai_client.py +20 -0
  5. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/google_constants.py +2 -0
  6. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/google_vertex_client.py +4 -4
  7. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/openai.py +16 -0
  8. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/enums.py +1 -0
  9. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/providers.py +25 -1
  10. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/providers.py +21 -3
  11. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/provider_manager.py +16 -1
  12. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/pyproject.toml +2 -2
  13. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/LICENSE +0 -0
  14. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/README.md +0 -0
  15. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/__main__.py +0 -0
  16. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/agent.py +0 -0
  17. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/agents/__init__.py +0 -0
  18. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/agents/base_agent.py +0 -0
  19. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/agents/ephemeral_agent.py +0 -0
  20. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/agents/exceptions.py +0 -0
  21. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/agents/helpers.py +0 -0
  22. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/agents/letta_agent.py +0 -0
  23. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/agents/letta_agent_batch.py +0 -0
  24. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/agents/voice_agent.py +0 -0
  25. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/agents/voice_sleeptime_agent.py +0 -0
  26. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/benchmark/benchmark.py +0 -0
  27. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/benchmark/constants.py +0 -0
  28. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/cli/cli.py +0 -0
  29. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/cli/cli_config.py +0 -0
  30. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/cli/cli_load.py +0 -0
  31. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/client/__init__.py +0 -0
  32. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/client/client.py +0 -0
  33. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/client/streaming.py +0 -0
  34. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/client/utils.py +0 -0
  35. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/config.py +0 -0
  36. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/constants.py +0 -0
  37. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/data_sources/connectors.py +0 -0
  38. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/data_sources/connectors_helper.py +0 -0
  39. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/embeddings.py +0 -0
  40. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/errors.py +0 -0
  41. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/__init__.py +0 -0
  42. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/ast_parsers.py +0 -0
  43. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/async_composio_toolset.py +0 -0
  44. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/composio_helpers.py +0 -0
  45. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/function_sets/base.py +0 -0
  46. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/function_sets/extras.py +0 -0
  47. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/function_sets/multi_agent.py +0 -0
  48. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/function_sets/voice.py +0 -0
  49. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/functions.py +0 -0
  50. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/helpers.py +0 -0
  51. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/interface.py +0 -0
  52. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/mcp_client/__init__.py +0 -0
  53. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/mcp_client/base_client.py +0 -0
  54. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/mcp_client/exceptions.py +0 -0
  55. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/mcp_client/sse_client.py +0 -0
  56. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/mcp_client/stdio_client.py +0 -0
  57. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/mcp_client/types.py +0 -0
  58. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/functions/schema_generator.py +0 -0
  59. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/groups/dynamic_multi_agent.py +0 -0
  60. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/groups/helpers.py +0 -0
  61. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/groups/round_robin_multi_agent.py +0 -0
  62. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/groups/sleeptime_multi_agent.py +0 -0
  63. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/groups/sleeptime_multi_agent_v2.py +0 -0
  64. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/groups/supervisor_multi_agent.py +0 -0
  65. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/helpers/__init__.py +0 -0
  66. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/helpers/composio_helpers.py +0 -0
  67. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/helpers/converters.py +0 -0
  68. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/helpers/datetime_helpers.py +0 -0
  69. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/helpers/json_helpers.py +0 -0
  70. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/helpers/message_helper.py +0 -0
  71. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/helpers/tool_execution_helper.py +0 -0
  72. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/helpers/tool_rule_solver.py +0 -0
  73. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/humans/__init__.py +0 -0
  74. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/humans/examples/basic.txt +0 -0
  75. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/humans/examples/cs_phd.txt +0 -0
  76. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/interface.py +0 -0
  77. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/interfaces/__init__.py +0 -0
  78. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/interfaces/anthropic_streaming_interface.py +0 -0
  79. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/interfaces/openai_chat_completions_streaming_interface.py +0 -0
  80. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/interfaces/utils.py +0 -0
  81. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/jobs/__init__.py +0 -0
  82. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/jobs/helpers.py +0 -0
  83. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/jobs/llm_batch_job_polling.py +0 -0
  84. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/jobs/scheduler.py +0 -0
  85. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/jobs/types.py +0 -0
  86. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/__init__.py +0 -0
  87. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/anthropic_client.py +0 -0
  88. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/aws_bedrock.py +0 -0
  89. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/azure_openai.py +0 -0
  90. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/azure_openai_constants.py +0 -0
  91. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/cohere.py +0 -0
  92. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/deepseek.py +0 -0
  93. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/helpers.py +0 -0
  94. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/llm_api_tools.py +0 -0
  95. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/llm_client.py +0 -0
  96. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/llm_client_base.py +0 -0
  97. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/mistral.py +0 -0
  98. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/llm_api/openai_client.py +0 -0
  99. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/README.md +0 -0
  100. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/__init__.py +0 -0
  101. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/chat_completion_proxy.py +0 -0
  102. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/constants.py +0 -0
  103. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/function_parser.py +0 -0
  104. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/grammars/__init__.py +0 -0
  105. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/grammars/gbnf_grammar_generator.py +0 -0
  106. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/grammars/json.gbnf +0 -0
  107. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/grammars/json_func_calls_with_inner_thoughts.gbnf +0 -0
  108. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/json_parser.py +0 -0
  109. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/koboldcpp/api.py +0 -0
  110. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/koboldcpp/settings.py +0 -0
  111. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/llamacpp/api.py +0 -0
  112. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/llamacpp/settings.py +0 -0
  113. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/llm_chat_completion_wrappers/__init__.py +0 -0
  114. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/llm_chat_completion_wrappers/airoboros.py +0 -0
  115. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/llm_chat_completion_wrappers/chatml.py +0 -0
  116. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/llm_chat_completion_wrappers/configurable_wrapper.py +0 -0
  117. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/llm_chat_completion_wrappers/dolphin.py +0 -0
  118. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/llm_chat_completion_wrappers/llama3.py +0 -0
  119. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/llm_chat_completion_wrappers/simple_summary_wrapper.py +0 -0
  120. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/llm_chat_completion_wrappers/wrapper_base.py +0 -0
  121. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/llm_chat_completion_wrappers/zephyr.py +0 -0
  122. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/lmstudio/api.py +0 -0
  123. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/lmstudio/settings.py +0 -0
  124. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/ollama/api.py +0 -0
  125. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/ollama/settings.py +0 -0
  126. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/settings/__init__.py +0 -0
  127. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/settings/deterministic_mirostat.py +0 -0
  128. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/settings/settings.py +0 -0
  129. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/settings/simple.py +0 -0
  130. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/utils.py +0 -0
  131. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/vllm/api.py +0 -0
  132. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/webui/api.py +0 -0
  133. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/webui/legacy_api.py +0 -0
  134. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/webui/legacy_settings.py +0 -0
  135. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/local_llm/webui/settings.py +0 -0
  136. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/log.py +0 -0
  137. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/main.py +0 -0
  138. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/memory.py +0 -0
  139. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/openai_backcompat/__init__.py +0 -0
  140. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/openai_backcompat/openai_object.py +0 -0
  141. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/__all__.py +0 -0
  142. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/__init__.py +0 -0
  143. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/agent.py +0 -0
  144. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/agents_tags.py +0 -0
  145. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/base.py +0 -0
  146. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/block.py +0 -0
  147. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/block_history.py +0 -0
  148. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/blocks_agents.py +0 -0
  149. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/custom_columns.py +0 -0
  150. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/enums.py +0 -0
  151. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/errors.py +0 -0
  152. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/file.py +0 -0
  153. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/group.py +0 -0
  154. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/groups_agents.py +0 -0
  155. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/groups_blocks.py +0 -0
  156. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/identities_agents.py +0 -0
  157. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/identities_blocks.py +0 -0
  158. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/identity.py +0 -0
  159. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/job.py +0 -0
  160. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/job_messages.py +0 -0
  161. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/llm_batch_items.py +0 -0
  162. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/llm_batch_job.py +0 -0
  163. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/message.py +0 -0
  164. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/mixins.py +0 -0
  165. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/organization.py +0 -0
  166. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/passage.py +0 -0
  167. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/provider.py +0 -0
  168. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/sandbox_config.py +0 -0
  169. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/source.py +0 -0
  170. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/sources_agents.py +0 -0
  171. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/sqlalchemy_base.py +0 -0
  172. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/sqlite_functions.py +0 -0
  173. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/step.py +0 -0
  174. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/tool.py +0 -0
  175. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/tools_agents.py +0 -0
  176. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/orm/user.py +0 -0
  177. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/personas/__init__.py +0 -0
  178. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/personas/examples/anna_pa.txt +0 -0
  179. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/personas/examples/google_search_persona.txt +0 -0
  180. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/personas/examples/memgpt_doc.txt +0 -0
  181. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/personas/examples/memgpt_starter.txt +0 -0
  182. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/personas/examples/o1_persona.txt +0 -0
  183. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/personas/examples/sam.txt +0 -0
  184. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/personas/examples/sam_pov.txt +0 -0
  185. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/personas/examples/sam_simple_pov_gpt35.txt +0 -0
  186. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/personas/examples/sleeptime_doc_persona.txt +0 -0
  187. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/personas/examples/sleeptime_memory_persona.txt +0 -0
  188. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/personas/examples/sqldb/test.db +0 -0
  189. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/personas/examples/voice_memory_persona.txt +0 -0
  190. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/__init__.py +0 -0
  191. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/gpt_summarize.py +0 -0
  192. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/gpt_system.py +0 -0
  193. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/memgpt_base.txt +0 -0
  194. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/memgpt_chat.txt +0 -0
  195. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/memgpt_chat_compressed.txt +0 -0
  196. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/memgpt_chat_fstring.txt +0 -0
  197. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/memgpt_convo_only.txt +0 -0
  198. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/memgpt_doc.txt +0 -0
  199. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/memgpt_gpt35_extralong.txt +0 -0
  200. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/memgpt_intuitive_knowledge.txt +0 -0
  201. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/memgpt_memory_only.txt +0 -0
  202. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/memgpt_modified_chat.txt +0 -0
  203. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/memgpt_modified_o1.txt +0 -0
  204. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/memgpt_offline_memory.txt +0 -0
  205. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/memgpt_offline_memory_chat.txt +0 -0
  206. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/memgpt_sleeptime_chat.txt +0 -0
  207. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/sleeptime.txt +0 -0
  208. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/sleeptime_doc_ingest.txt +0 -0
  209. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/voice_chat.txt +0 -0
  210. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/prompts/system/voice_sleeptime.txt +0 -0
  211. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/pytest.ini +0 -0
  212. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/agent.py +0 -0
  213. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/block.py +0 -0
  214. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/embedding_config.py +0 -0
  215. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/embedding_config_overrides.py +0 -0
  216. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/environment_variables.py +0 -0
  217. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/file.py +0 -0
  218. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/group.py +0 -0
  219. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/health.py +0 -0
  220. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/identity.py +0 -0
  221. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/job.py +0 -0
  222. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/letta_base.py +0 -0
  223. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/letta_message.py +0 -0
  224. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/letta_message_content.py +0 -0
  225. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/letta_request.py +0 -0
  226. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/letta_response.py +0 -0
  227. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/llm_batch_job.py +0 -0
  228. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/llm_config.py +0 -0
  229. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/llm_config_overrides.py +0 -0
  230. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/memory.py +0 -0
  231. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/message.py +0 -0
  232. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/openai/chat_completion_request.py +0 -0
  233. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/openai/chat_completion_response.py +0 -0
  234. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/openai/chat_completions.py +0 -0
  235. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/openai/embedding_response.py +0 -0
  236. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/openai/openai.py +0 -0
  237. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/organization.py +0 -0
  238. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/passage.py +0 -0
  239. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/response_format.py +0 -0
  240. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/run.py +0 -0
  241. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/sandbox_config.py +0 -0
  242. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/source.py +0 -0
  243. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/step.py +0 -0
  244. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/tool.py +0 -0
  245. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/tool_execution_result.py +0 -0
  246. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/tool_rule.py +0 -0
  247. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/usage.py +0 -0
  248. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/schemas/user.py +0 -0
  249. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/serialize_schemas/__init__.py +0 -0
  250. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/serialize_schemas/marshmallow_agent.py +0 -0
  251. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/serialize_schemas/marshmallow_agent_environment_variable.py +0 -0
  252. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/serialize_schemas/marshmallow_base.py +0 -0
  253. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/serialize_schemas/marshmallow_block.py +0 -0
  254. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/serialize_schemas/marshmallow_custom_fields.py +0 -0
  255. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/serialize_schemas/marshmallow_message.py +0 -0
  256. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/serialize_schemas/marshmallow_tag.py +0 -0
  257. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/serialize_schemas/marshmallow_tool.py +0 -0
  258. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/serialize_schemas/pydantic_agent_schema.py +0 -0
  259. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/__init__.py +0 -0
  260. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/constants.py +0 -0
  261. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/db.py +0 -0
  262. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/generate_openapi_schema.sh +0 -0
  263. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/__init__.py +0 -0
  264. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/app.py +0 -0
  265. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/auth/__init__.py +0 -0
  266. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/auth/index.py +0 -0
  267. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/auth_token.py +0 -0
  268. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/chat_completions_interface.py +0 -0
  269. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/interface.py +0 -0
  270. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/json_parser.py +0 -0
  271. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/__init__.py +0 -0
  272. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/openai/chat_completions/__init__.py +0 -0
  273. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +0 -0
  274. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/__init__.py +0 -0
  275. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/agents.py +0 -0
  276. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/blocks.py +0 -0
  277. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/embeddings.py +0 -0
  278. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/groups.py +0 -0
  279. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/health.py +0 -0
  280. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/identities.py +0 -0
  281. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/jobs.py +0 -0
  282. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/llms.py +0 -0
  283. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/messages.py +0 -0
  284. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/organizations.py +0 -0
  285. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/runs.py +0 -0
  286. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/sandbox_configs.py +0 -0
  287. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/sources.py +0 -0
  288. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/steps.py +0 -0
  289. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/tags.py +0 -0
  290. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/tools.py +0 -0
  291. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/users.py +0 -0
  292. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/routers/v1/voice.py +0 -0
  293. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/static_files.py +0 -0
  294. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/rest_api/utils.py +0 -0
  295. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/server.py +0 -0
  296. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/startup.sh +0 -0
  297. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/static_files/assets/index-048c9598.js +0 -0
  298. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/static_files/assets/index-0e31b727.css +0 -0
  299. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/static_files/favicon.ico +0 -0
  300. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/static_files/index.html +0 -0
  301. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/static_files/memgpt_logo_transparent.png +0 -0
  302. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/utils.py +0 -0
  303. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/ws_api/__init__.py +0 -0
  304. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/ws_api/example_client.py +0 -0
  305. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/ws_api/interface.py +0 -0
  306. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/ws_api/protocol.py +0 -0
  307. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/server/ws_api/server.py +0 -0
  308. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/__init__.py +0 -0
  309. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/agent_manager.py +0 -0
  310. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/block_manager.py +0 -0
  311. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/group_manager.py +0 -0
  312. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/helpers/agent_manager_helper.py +0 -0
  313. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/helpers/tool_execution_helper.py +0 -0
  314. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/identity_manager.py +0 -0
  315. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/job_manager.py +0 -0
  316. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/llm_batch_manager.py +0 -0
  317. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/mcp/__init__.py +0 -0
  318. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/mcp/base_client.py +0 -0
  319. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/mcp/sse_client.py +0 -0
  320. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/mcp/stdio_client.py +0 -0
  321. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/mcp/types.py +0 -0
  322. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/message_manager.py +0 -0
  323. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/organization_manager.py +0 -0
  324. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/passage_manager.py +0 -0
  325. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/per_agent_lock_manager.py +0 -0
  326. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/sandbox_config_manager.py +0 -0
  327. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/source_manager.py +0 -0
  328. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/step_manager.py +0 -0
  329. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/summarizer/__init__.py +0 -0
  330. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/summarizer/enums.py +0 -0
  331. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/summarizer/summarizer.py +0 -0
  332. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/tool_executor/__init__.py +0 -0
  333. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/tool_executor/tool_execution_manager.py +0 -0
  334. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/tool_executor/tool_execution_sandbox.py +0 -0
  335. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/tool_executor/tool_executor.py +0 -0
  336. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/tool_manager.py +0 -0
  337. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/tool_sandbox/__init__.py +0 -0
  338. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/tool_sandbox/base.py +0 -0
  339. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/tool_sandbox/e2b_sandbox.py +0 -0
  340. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/tool_sandbox/local_sandbox.py +0 -0
  341. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/services/user_manager.py +0 -0
  342. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/settings.py +0 -0
  343. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/streaming_interface.py +0 -0
  344. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/streaming_utils.py +0 -0
  345. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/system.py +0 -0
  346. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/tracing.py +0 -0
  347. {letta_nightly-0.7.11.dev20250507230415 → letta_nightly-0.7.12.dev20250508104250}/letta/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-nightly
3
- Version: 0.7.11.dev20250507230415
3
+ Version: 0.7.12.dev20250508104250
4
4
  Summary: Create LLM agents with long-term memory and custom tools
5
5
  License: Apache License
6
6
  Author: Letta Team
@@ -50,7 +50,7 @@ Requires-Dist: isort (>=5.13.2,<6.0.0) ; extra == "dev" or extra == "all"
50
50
  Requires-Dist: jinja2 (>=3.1.5,<4.0.0)
51
51
  Requires-Dist: langchain (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "desktop" or extra == "all"
52
52
  Requires-Dist: langchain-community (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "desktop" or extra == "all"
53
- Requires-Dist: letta_client (>=0.1.136,<0.2.0)
53
+ Requires-Dist: letta_client (>=0.1.141,<0.2.0)
54
54
  Requires-Dist: llama-index (>=0.12.2,<0.13.0)
55
55
  Requires-Dist: llama-index-embeddings-openai (>=0.3.1,<0.4.0)
56
56
  Requires-Dist: locust (>=2.31.5,<3.0.0) ; extra == "dev" or extra == "desktop" or extra == "all"
@@ -1,4 +1,4 @@
1
- __version__ = "0.7.11"
1
+ __version__ = "0.7.12"
2
2
 
3
3
  # import clients
4
4
  from letta.client.client import LocalClient, RESTClient, create_client
@@ -19,7 +19,7 @@ from anthropic.types.beta import (
19
19
  BetaToolUseBlock,
20
20
  )
21
21
 
22
- from letta.errors import BedrockError, BedrockPermissionError
22
+ from letta.errors import BedrockError, BedrockPermissionError, ErrorCode, LLMAuthenticationError, LLMError
23
23
  from letta.helpers.datetime_helpers import get_utc_time_int, timestamp_to_datetime
24
24
  from letta.llm_api.aws_bedrock import get_bedrock_client
25
25
  from letta.llm_api.helpers import add_inner_thoughts_to_functions
@@ -119,6 +119,20 @@ DUMMY_FIRST_USER_MESSAGE = "User initializing bootup sequence."
119
119
  VALID_EVENT_TYPES = {"content_block_stop", "message_stop"}
120
120
 
121
121
 
122
+ def anthropic_check_valid_api_key(api_key: Union[str, None]) -> None:
123
+ if api_key:
124
+ anthropic_client = anthropic.Anthropic(api_key=api_key)
125
+ try:
126
+ # just use a cheap model to count some tokens - as of 5/7/2025 this is faster than fetching the list of models
127
+ anthropic_client.messages.count_tokens(model=MODEL_LIST[-1]["name"], messages=[{"role": "user", "content": "a"}])
128
+ except anthropic.AuthenticationError as e:
129
+ raise LLMAuthenticationError(message=f"Failed to authenticate with Anthropic: {e}", code=ErrorCode.UNAUTHENTICATED)
130
+ except Exception as e:
131
+ raise LLMError(message=f"{e}", code=ErrorCode.INTERNAL_SERVER_ERROR)
132
+ else:
133
+ raise ValueError("No API key provided")
134
+
135
+
122
136
  def antropic_get_model_context_window(url: str, api_key: Union[str, None], model: str) -> int:
123
137
  for model_dict in anthropic_get_model_list(url=url, api_key=api_key):
124
138
  if model_dict["name"] == model:
@@ -3,11 +3,14 @@ import uuid
3
3
  from typing import List, Optional, Tuple
4
4
 
5
5
  import requests
6
+ from google import genai
6
7
  from google.genai.types import FunctionCallingConfig, FunctionCallingConfigMode, ToolConfig
7
8
 
8
9
  from letta.constants import NON_USER_MSG_PREFIX
10
+ from letta.errors import ErrorCode, LLMAuthenticationError, LLMError
9
11
  from letta.helpers.datetime_helpers import get_utc_time_int
10
12
  from letta.helpers.json_helpers import json_dumps
13
+ from letta.llm_api.google_constants import GOOGLE_MODEL_FOR_API_KEY_CHECK
11
14
  from letta.llm_api.helpers import make_post_request
12
15
  from letta.llm_api.llm_client_base import LLMClientBase
13
16
  from letta.local_llm.json_parser import clean_json_string_extra_backslash
@@ -443,6 +446,23 @@ def get_gemini_endpoint_and_headers(
443
446
  return url, headers
444
447
 
445
448
 
449
+ def google_ai_check_valid_api_key(api_key: str):
450
+ client = genai.Client(api_key=api_key)
451
+ # use the count token endpoint for a cheap model - as of 5/7/2025 this is slightly faster than fetching the list of models
452
+ try:
453
+ client.models.count_tokens(
454
+ model=GOOGLE_MODEL_FOR_API_KEY_CHECK,
455
+ contents="",
456
+ )
457
+ except genai.errors.ClientError as e:
458
+ # google api returns 400 invalid argument for invalid api key
459
+ if e.code == 400:
460
+ raise LLMAuthenticationError(message=f"Failed to authenticate with Google AI: {e}", code=ErrorCode.UNAUTHENTICATED)
461
+ raise e
462
+ except Exception as e:
463
+ raise LLMError(message=f"{e}", code=ErrorCode.INTERNAL_SERVER_ERROR)
464
+
465
+
446
466
  def google_ai_get_model_list(base_url: str, api_key: str, key_in_header: bool = True) -> List[dict]:
447
467
  from letta.utils import printd
448
468
 
@@ -14,3 +14,5 @@ GOOGLE_MODEL_TO_CONTEXT_LENGTH = {
14
14
  GOOGLE_MODEL_TO_OUTPUT_LENGTH = {"gemini-2.0-flash-001": 8192, "gemini-2.5-pro-exp-03-25": 65536}
15
15
 
16
16
  GOOGLE_EMBEDING_MODEL_TO_DIM = {"text-embedding-005": 768, "text-multilingual-embedding-002": 768}
17
+
18
+ GOOGLE_MODEL_FOR_API_KEY_CHECK = "gemini-2.0-flash-lite"
@@ -207,12 +207,12 @@ class GoogleVertexClient(GoogleAIClient):
207
207
 
208
208
  # NOTE: this also involves stripping the inner monologue out of the function
209
209
  if llm_config.put_inner_thoughts_in_kwargs:
210
- from letta.local_llm.constants import INNER_THOUGHTS_KWARG
210
+ from letta.local_llm.constants import INNER_THOUGHTS_KWARG_VERTEX
211
211
 
212
212
  assert (
213
- INNER_THOUGHTS_KWARG in function_args
213
+ INNER_THOUGHTS_KWARG_VERTEX in function_args
214
214
  ), f"Couldn't find inner thoughts in function args:\n{function_call}"
215
- inner_thoughts = function_args.pop(INNER_THOUGHTS_KWARG)
215
+ inner_thoughts = function_args.pop(INNER_THOUGHTS_KWARG_VERTEX)
216
216
  assert inner_thoughts is not None, f"Expected non-null inner thoughts function arg:\n{function_call}"
217
217
  else:
218
218
  inner_thoughts = None
@@ -233,7 +233,7 @@ class GoogleVertexClient(GoogleAIClient):
233
233
  ],
234
234
  )
235
235
 
236
- except:
236
+ except json.decoder.JSONDecodeError:
237
237
  # Inner thoughts are the content by default
238
238
  inner_thoughts = response_message.text
239
239
 
@@ -5,6 +5,7 @@ import requests
5
5
  from openai import OpenAI
6
6
 
7
7
  from letta.constants import LETTA_MODEL_ENDPOINT
8
+ from letta.errors import ErrorCode, LLMAuthenticationError, LLMError
8
9
  from letta.helpers.datetime_helpers import timestamp_to_datetime
9
10
  from letta.llm_api.helpers import add_inner_thoughts_to_functions, convert_to_structured_output, make_post_request
10
11
  from letta.llm_api.openai_client import accepts_developer_role, supports_parallel_tool_calling, supports_temperature_param
@@ -34,6 +35,21 @@ from letta.utils import get_tool_call_id, smart_urljoin
34
35
  logger = get_logger(__name__)
35
36
 
36
37
 
38
+ def openai_check_valid_api_key(base_url: str, api_key: Union[str, None]) -> None:
39
+ if api_key:
40
+ try:
41
+ # just get model list to check if the api key is valid until we find a cheaper / quicker endpoint
42
+ openai_get_model_list(url=base_url, api_key=api_key)
43
+ except requests.HTTPError as e:
44
+ if e.response.status_code == 401:
45
+ raise LLMAuthenticationError(message=f"Failed to authenticate with OpenAI: {e}", code=ErrorCode.UNAUTHENTICATED)
46
+ raise e
47
+ except Exception as e:
48
+ raise LLMError(message=f"{e}", code=ErrorCode.INTERNAL_SERVER_ERROR)
49
+ else:
50
+ raise ValueError("No API key provided")
51
+
52
+
37
53
  def openai_get_model_list(
38
54
  url: str, api_key: Optional[str] = None, fix_url: Optional[bool] = False, extra_params: Optional[dict] = None
39
55
  ) -> dict:
@@ -3,6 +3,7 @@ from enum import Enum
3
3
 
4
4
  class ProviderType(str, Enum):
5
5
  anthropic = "anthropic"
6
+ anthropic_bedrock = "bedrock"
6
7
  google_ai = "google_ai"
7
8
  google_vertex = "google_vertex"
8
9
  openai = "openai"
@@ -2,7 +2,7 @@ import warnings
2
2
  from datetime import datetime
3
3
  from typing import List, Literal, Optional
4
4
 
5
- from pydantic import Field, model_validator
5
+ from pydantic import BaseModel, Field, model_validator
6
6
 
7
7
  from letta.constants import LETTA_MODEL_ENDPOINT, LLM_MAX_TOKENS, MIN_CONTEXT_WINDOW
8
8
  from letta.llm_api.azure_openai import get_azure_chat_completions_endpoint, get_azure_embeddings_endpoint
@@ -40,6 +40,10 @@ class Provider(ProviderBase):
40
40
  if not self.id:
41
41
  self.id = ProviderBase.generate_id(prefix=ProviderBase.__id_prefix__)
42
42
 
43
+ def check_api_key(self):
44
+ """Check if the API key is valid for the provider"""
45
+ raise NotImplementedError
46
+
43
47
  def list_llm_models(self) -> List[LLMConfig]:
44
48
  return []
45
49
 
@@ -112,6 +116,11 @@ class ProviderUpdate(ProviderBase):
112
116
  api_key: str = Field(..., description="API key used for requests to the provider.")
113
117
 
114
118
 
119
+ class ProviderCheck(BaseModel):
120
+ provider_type: ProviderType = Field(..., description="The type of the provider.")
121
+ api_key: str = Field(..., description="API key used for requests to the provider.")
122
+
123
+
115
124
  class LettaProvider(Provider):
116
125
  provider_type: Literal[ProviderType.letta] = Field(ProviderType.letta, description="The type of the provider.")
117
126
  provider_category: ProviderCategory = Field(ProviderCategory.base, description="The category of the provider (base or byok)")
@@ -148,6 +157,11 @@ class OpenAIProvider(Provider):
148
157
  api_key: str = Field(..., description="API key for the OpenAI API.")
149
158
  base_url: str = Field(..., description="Base URL for the OpenAI API.")
150
159
 
160
+ def check_api_key(self):
161
+ from letta.llm_api.openai import openai_check_valid_api_key
162
+
163
+ openai_check_valid_api_key(self.base_url, self.api_key)
164
+
151
165
  def list_llm_models(self) -> List[LLMConfig]:
152
166
  from letta.llm_api.openai import openai_get_model_list
153
167
 
@@ -549,6 +563,11 @@ class AnthropicProvider(Provider):
549
563
  api_key: str = Field(..., description="API key for the Anthropic API.")
550
564
  base_url: str = "https://api.anthropic.com/v1"
551
565
 
566
+ def check_api_key(self):
567
+ from letta.llm_api.anthropic import anthropic_check_valid_api_key
568
+
569
+ anthropic_check_valid_api_key(self.api_key)
570
+
552
571
  def list_llm_models(self) -> List[LLMConfig]:
553
572
  from letta.llm_api.anthropic import MODEL_LIST, anthropic_get_model_list
554
573
 
@@ -951,6 +970,11 @@ class GoogleAIProvider(Provider):
951
970
  api_key: str = Field(..., description="API key for the Google AI API.")
952
971
  base_url: str = "https://generativelanguage.googleapis.com"
953
972
 
973
+ def check_api_key(self):
974
+ from letta.llm_api.google_ai_client import google_ai_check_valid_api_key
975
+
976
+ google_ai_check_valid_api_key(self.api_key)
977
+
954
978
  def list_llm_models(self):
955
979
  from letta.llm_api.google_ai_client import google_ai_get_model_list
956
980
 
@@ -3,9 +3,10 @@ from typing import TYPE_CHECKING, List, Optional
3
3
  from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, status
4
4
  from fastapi.responses import JSONResponse
5
5
 
6
+ from letta.errors import LLMAuthenticationError
6
7
  from letta.orm.errors import NoResultFound
7
8
  from letta.schemas.enums import ProviderType
8
- from letta.schemas.providers import Provider, ProviderCreate, ProviderUpdate
9
+ from letta.schemas.providers import Provider, ProviderCheck, ProviderCreate, ProviderUpdate
9
10
  from letta.server.rest_api.utils import get_letta_server
10
11
 
11
12
  if TYPE_CHECKING:
@@ -47,7 +48,8 @@ def create_provider(
47
48
  """
48
49
  actor = server.user_manager.get_user_or_default(user_id=actor_id)
49
50
 
50
- provider = Provider(**request.model_dump())
51
+ provider = ProviderCreate(**request.model_dump())
52
+
51
53
  provider = server.provider_manager.create_provider(provider, actor=actor)
52
54
  return provider
53
55
 
@@ -63,7 +65,23 @@ def modify_provider(
63
65
  Update an existing custom provider
64
66
  """
65
67
  actor = server.user_manager.get_user_or_default(user_id=actor_id)
66
- return server.provider_manager.update_provider(provider_id=provider_id, request=request, actor=actor)
68
+ return server.provider_manager.update_provider(provider_id=provider_id, provider_update=request, actor=actor)
69
+
70
+
71
+ @router.get("/check", response_model=None, operation_id="check_provider")
72
+ def check_provider(
73
+ provider_type: ProviderType = Query(...),
74
+ api_key: str = Header(..., alias="x-api-key"),
75
+ server: "SyncServer" = Depends(get_letta_server),
76
+ ):
77
+ try:
78
+ provider_check = ProviderCheck(provider_type=provider_type, api_key=api_key)
79
+ server.provider_manager.check_provider_api_key(provider_check=provider_check)
80
+ return JSONResponse(status_code=status.HTTP_200_OK, content={"message": f"Valid api key for provider_type={provider_type.value}"})
81
+ except LLMAuthenticationError as e:
82
+ raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail=f"{e.message}")
83
+ except Exception as e:
84
+ raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=f"{e}")
67
85
 
68
86
 
69
87
  @router.delete("/{provider_id}", response_model=None, operation_id="delete_provider")
@@ -3,7 +3,7 @@ from typing import List, Optional, Union
3
3
  from letta.orm.provider import Provider as ProviderModel
4
4
  from letta.schemas.enums import ProviderCategory, ProviderType
5
5
  from letta.schemas.providers import Provider as PydanticProvider
6
- from letta.schemas.providers import ProviderCreate, ProviderUpdate
6
+ from letta.schemas.providers import ProviderCheck, ProviderCreate, ProviderUpdate
7
7
  from letta.schemas.user import User as PydanticUser
8
8
  from letta.utils import enforce_types
9
9
 
@@ -99,3 +99,18 @@ class ProviderManager:
99
99
  def get_override_key(self, provider_name: Union[str, None], actor: PydanticUser) -> Optional[str]:
100
100
  providers = self.list_providers(name=provider_name, actor=actor)
101
101
  return providers[0].api_key if providers else None
102
+
103
+ @enforce_types
104
+ def check_provider_api_key(self, provider_check: ProviderCheck) -> None:
105
+ provider = PydanticProvider(
106
+ name=provider_check.provider_type.value,
107
+ provider_type=provider_check.provider_type,
108
+ api_key=provider_check.api_key,
109
+ provider_category=ProviderCategory.byok,
110
+ ).cast_to_subtype()
111
+
112
+ # TODO: add more string sanity checks here before we hit actual endpoints
113
+ if not provider.api_key:
114
+ raise ValueError("API key is required")
115
+
116
+ provider.check_api_key()
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "letta-nightly"
3
- version = "0.7.11.dev20250507230415"
3
+ version = "0.7.12.dev20250508104250"
4
4
  packages = [
5
5
  {include = "letta"},
6
6
  ]
@@ -73,7 +73,7 @@ llama-index = "^0.12.2"
73
73
  llama-index-embeddings-openai = "^0.3.1"
74
74
  e2b-code-interpreter = {version = "^1.0.3", optional = true}
75
75
  anthropic = "^0.49.0"
76
- letta_client = "^0.1.136"
76
+ letta_client = "^0.1.141"
77
77
  openai = "^1.60.0"
78
78
  opentelemetry-api = "1.30.0"
79
79
  opentelemetry-sdk = "1.30.0"