letta-nightly 0.11.3.dev20250819104229__tar.gz → 0.11.4.dev20250820213507__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 (475) hide show
  1. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/PKG-INFO +2 -2
  2. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/__init__.py +1 -1
  3. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/agents/helpers.py +4 -0
  4. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/agents/letta_agent.py +142 -5
  5. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/constants.py +10 -7
  6. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/data_sources/connectors.py +70 -53
  7. letta_nightly-0.11.4.dev20250820213507/letta/embeddings.py +53 -0
  8. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/errors.py +28 -0
  9. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/function_sets/base.py +4 -4
  10. letta_nightly-0.11.4.dev20250820213507/letta/functions/functions.py +412 -0
  11. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/mcp_client/types.py +11 -0
  12. letta_nightly-0.11.4.dev20250820213507/letta/functions/schema_validator.py +187 -0
  13. letta_nightly-0.11.4.dev20250820213507/letta/functions/typescript_parser.py +196 -0
  14. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/helpers/datetime_helpers.py +8 -4
  15. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/helpers/tool_execution_helper.py +25 -2
  16. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/anthropic_client.py +23 -18
  17. letta_nightly-0.11.4.dev20250820213507/letta/llm_api/azure_client.py +73 -0
  18. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/bedrock_client.py +8 -4
  19. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/google_vertex_client.py +14 -5
  20. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/llm_api_tools.py +2 -217
  21. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/llm_client.py +15 -1
  22. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/llm_client_base.py +32 -1
  23. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/openai.py +1 -0
  24. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/openai_client.py +18 -28
  25. letta_nightly-0.11.4.dev20250820213507/letta/llm_api/together_client.py +55 -0
  26. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/provider.py +1 -0
  27. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/step_metrics.py +40 -1
  28. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/otel/db_pool_monitoring.py +1 -1
  29. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/agent.py +3 -4
  30. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/agent_file.py +2 -0
  31. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/block.py +11 -5
  32. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/embedding_config.py +4 -5
  33. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/enums.py +1 -1
  34. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/job.py +2 -3
  35. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/llm_config.py +79 -7
  36. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/mcp.py +0 -24
  37. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/message.py +0 -108
  38. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/openai/chat_completion_request.py +1 -0
  39. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/__init__.py +0 -2
  40. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/anthropic.py +106 -8
  41. letta_nightly-0.11.4.dev20250820213507/letta/schemas/providers/azure.py +174 -0
  42. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/base.py +10 -3
  43. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/bedrock.py +28 -16
  44. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/letta.py +3 -3
  45. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/ollama.py +2 -12
  46. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/openai.py +4 -4
  47. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/together.py +14 -2
  48. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/sandbox_config.py +2 -1
  49. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/tool.py +46 -22
  50. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/agents.py +179 -38
  51. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/folders.py +13 -8
  52. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/providers.py +10 -3
  53. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/sources.py +14 -8
  54. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/steps.py +17 -1
  55. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/tools.py +96 -5
  56. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/streaming_response.py +91 -45
  57. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/server.py +27 -38
  58. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/agent_manager.py +92 -20
  59. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/agent_serialization_manager.py +11 -7
  60. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/context_window_calculator/context_window_calculator.py +40 -2
  61. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/helpers/agent_manager_helper.py +73 -12
  62. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/mcp_manager.py +109 -15
  63. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/passage_manager.py +28 -109
  64. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/provider_manager.py +24 -0
  65. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/step_manager.py +68 -0
  66. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/summarizer/summarizer.py +1 -4
  67. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_executor/core_tool_executor.py +1 -1
  68. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_executor/sandbox_tool_executor.py +26 -9
  69. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_manager.py +82 -5
  70. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_sandbox/base.py +3 -11
  71. letta_nightly-0.11.4.dev20250820213507/letta/services/tool_sandbox/modal_constants.py +17 -0
  72. letta_nightly-0.11.4.dev20250820213507/letta/services/tool_sandbox/modal_deployment_manager.py +242 -0
  73. letta_nightly-0.11.4.dev20250820213507/letta/services/tool_sandbox/modal_sandbox.py +420 -0
  74. letta_nightly-0.11.4.dev20250820213507/letta/services/tool_sandbox/modal_sandbox_v2.py +429 -0
  75. letta_nightly-0.11.4.dev20250820213507/letta/services/tool_sandbox/modal_version_manager.py +273 -0
  76. letta_nightly-0.11.4.dev20250820213507/letta/services/tool_sandbox/safe_pickle.py +193 -0
  77. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/settings.py +5 -3
  78. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/templates/sandbox_code_file.py.j2 +2 -4
  79. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/templates/sandbox_code_file_async.py.j2 +2 -4
  80. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/utils.py +1 -1
  81. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/pyproject.toml +2 -2
  82. letta_nightly-0.11.3.dev20250819104229/letta/embeddings.py +0 -290
  83. letta_nightly-0.11.3.dev20250819104229/letta/functions/functions.py +0 -157
  84. letta_nightly-0.11.3.dev20250819104229/letta/llm_api/anthropic.py +0 -1206
  85. letta_nightly-0.11.3.dev20250819104229/letta/llm_api/aws_bedrock.py +0 -104
  86. letta_nightly-0.11.3.dev20250819104229/letta/llm_api/azure_openai.py +0 -118
  87. letta_nightly-0.11.3.dev20250819104229/letta/llm_api/azure_openai_constants.py +0 -11
  88. letta_nightly-0.11.3.dev20250819104229/letta/llm_api/cohere.py +0 -391
  89. letta_nightly-0.11.3.dev20250819104229/letta/schemas/providers/azure.py +0 -80
  90. letta_nightly-0.11.3.dev20250819104229/letta/schemas/providers/cohere.py +0 -18
  91. letta_nightly-0.11.3.dev20250819104229/letta/services/tool_sandbox/modal_sandbox.py +0 -205
  92. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/LICENSE +0 -0
  93. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/README.md +0 -0
  94. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/agent.py +0 -0
  95. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/agents/__init__.py +0 -0
  96. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/agents/base_agent.py +0 -0
  97. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/agents/ephemeral_agent.py +0 -0
  98. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/agents/ephemeral_summary_agent.py +0 -0
  99. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/agents/exceptions.py +0 -0
  100. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/agents/letta_agent_batch.py +0 -0
  101. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/agents/voice_agent.py +0 -0
  102. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/agents/voice_sleeptime_agent.py +0 -0
  103. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/cli/cli.py +0 -0
  104. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/cli/cli_load.py +0 -0
  105. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/client/__init__.py +0 -0
  106. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/client/streaming.py +0 -0
  107. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/client/utils.py +0 -0
  108. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/config.py +0 -0
  109. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/data_sources/__init__.py +0 -0
  110. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/data_sources/connectors_helper.py +0 -0
  111. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/data_sources/redis_client.py +0 -0
  112. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/__init__.py +0 -0
  113. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/ast_parsers.py +0 -0
  114. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/async_composio_toolset.py +0 -0
  115. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/composio_helpers.py +0 -0
  116. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/function_sets/builtin.py +0 -0
  117. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/function_sets/extras.py +0 -0
  118. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/function_sets/files.py +0 -0
  119. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/function_sets/multi_agent.py +0 -0
  120. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/function_sets/voice.py +0 -0
  121. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/helpers.py +0 -0
  122. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/interface.py +0 -0
  123. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/mcp_client/__init__.py +0 -0
  124. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/mcp_client/base_client.py +0 -0
  125. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/mcp_client/exceptions.py +0 -0
  126. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/mcp_client/sse_client.py +0 -0
  127. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/mcp_client/stdio_client.py +0 -0
  128. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/prompts.py +0 -0
  129. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/schema_generator.py +0 -0
  130. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/functions/types.py +0 -0
  131. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/groups/dynamic_multi_agent.py +0 -0
  132. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/groups/helpers.py +0 -0
  133. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/groups/round_robin_multi_agent.py +0 -0
  134. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/groups/sleeptime_multi_agent.py +0 -0
  135. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/groups/sleeptime_multi_agent_v2.py +0 -0
  136. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/groups/supervisor_multi_agent.py +0 -0
  137. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/helpers/__init__.py +0 -0
  138. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/helpers/composio_helpers.py +0 -0
  139. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/helpers/converters.py +0 -0
  140. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/helpers/decorators.py +0 -0
  141. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/helpers/json_helpers.py +0 -0
  142. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/helpers/message_helper.py +0 -0
  143. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/helpers/pinecone_utils.py +0 -0
  144. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/helpers/reasoning_helper.py +0 -0
  145. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/helpers/singleton.py +0 -0
  146. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/helpers/tool_rule_solver.py +0 -0
  147. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/humans/__init__.py +0 -0
  148. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/humans/examples/basic.txt +0 -0
  149. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/humans/examples/cs_phd.txt +0 -0
  150. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/interface.py +0 -0
  151. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/interfaces/__init__.py +0 -0
  152. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/interfaces/anthropic_streaming_interface.py +0 -0
  153. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/interfaces/openai_chat_completions_streaming_interface.py +0 -0
  154. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/interfaces/openai_streaming_interface.py +0 -0
  155. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/interfaces/utils.py +0 -0
  156. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/jobs/__init__.py +0 -0
  157. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/jobs/helpers.py +0 -0
  158. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/jobs/llm_batch_job_polling.py +0 -0
  159. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/jobs/scheduler.py +0 -0
  160. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/jobs/types.py +0 -0
  161. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/__init__.py +0 -0
  162. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/deepseek.py +0 -0
  163. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/google_ai_client.py +0 -0
  164. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/google_constants.py +0 -0
  165. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/helpers.py +0 -0
  166. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/mistral.py +0 -0
  167. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/sample_response_jsons/aws_bedrock.json +0 -0
  168. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/sample_response_jsons/lmstudio_embedding_list.json +0 -0
  169. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/llm_api/sample_response_jsons/lmstudio_model_list.json +0 -0
  170. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/README.md +0 -0
  171. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/__init__.py +0 -0
  172. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/chat_completion_proxy.py +0 -0
  173. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/constants.py +0 -0
  174. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/function_parser.py +0 -0
  175. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/grammars/__init__.py +0 -0
  176. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/grammars/gbnf_grammar_generator.py +0 -0
  177. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/grammars/json.gbnf +0 -0
  178. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/grammars/json_func_calls_with_inner_thoughts.gbnf +0 -0
  179. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/json_parser.py +0 -0
  180. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/koboldcpp/api.py +0 -0
  181. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/koboldcpp/settings.py +0 -0
  182. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/llamacpp/api.py +0 -0
  183. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/llamacpp/settings.py +0 -0
  184. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/llm_chat_completion_wrappers/__init__.py +0 -0
  185. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/llm_chat_completion_wrappers/airoboros.py +0 -0
  186. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/llm_chat_completion_wrappers/chatml.py +0 -0
  187. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/llm_chat_completion_wrappers/configurable_wrapper.py +0 -0
  188. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/llm_chat_completion_wrappers/dolphin.py +0 -0
  189. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/llm_chat_completion_wrappers/llama3.py +0 -0
  190. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/llm_chat_completion_wrappers/simple_summary_wrapper.py +0 -0
  191. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/llm_chat_completion_wrappers/wrapper_base.py +0 -0
  192. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/llm_chat_completion_wrappers/zephyr.py +0 -0
  193. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/lmstudio/api.py +0 -0
  194. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/lmstudio/settings.py +0 -0
  195. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/ollama/api.py +0 -0
  196. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/ollama/settings.py +0 -0
  197. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/settings/__init__.py +0 -0
  198. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/settings/deterministic_mirostat.py +0 -0
  199. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/settings/settings.py +0 -0
  200. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/settings/simple.py +0 -0
  201. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/utils.py +0 -0
  202. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/vllm/api.py +0 -0
  203. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/webui/api.py +0 -0
  204. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/webui/legacy_api.py +0 -0
  205. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/webui/legacy_settings.py +0 -0
  206. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/local_llm/webui/settings.py +0 -0
  207. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/log.py +0 -0
  208. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/main.py +0 -0
  209. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/memory.py +0 -0
  210. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/openai_backcompat/__init__.py +0 -0
  211. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/openai_backcompat/openai_object.py +0 -0
  212. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/__init__.py +0 -0
  213. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/agent.py +0 -0
  214. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/agents_tags.py +0 -0
  215. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/archive.py +0 -0
  216. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/archives_agents.py +0 -0
  217. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/base.py +0 -0
  218. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/block.py +0 -0
  219. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/block_history.py +0 -0
  220. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/blocks_agents.py +0 -0
  221. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/custom_columns.py +0 -0
  222. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/errors.py +0 -0
  223. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/file.py +0 -0
  224. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/files_agents.py +0 -0
  225. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/group.py +0 -0
  226. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/groups_agents.py +0 -0
  227. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/groups_blocks.py +0 -0
  228. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/identities_agents.py +0 -0
  229. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/identities_blocks.py +0 -0
  230. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/identity.py +0 -0
  231. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/job.py +0 -0
  232. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/job_messages.py +0 -0
  233. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/llm_batch_items.py +0 -0
  234. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/llm_batch_job.py +0 -0
  235. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/mcp_oauth.py +0 -0
  236. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/mcp_server.py +0 -0
  237. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/message.py +0 -0
  238. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/mixins.py +0 -0
  239. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/organization.py +0 -0
  240. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/passage.py +0 -0
  241. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/prompt.py +0 -0
  242. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/provider_trace.py +0 -0
  243. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/sandbox_config.py +0 -0
  244. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/source.py +0 -0
  245. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/sources_agents.py +0 -0
  246. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/sqlalchemy_base.py +0 -0
  247. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/sqlite_functions.py +0 -0
  248. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/step.py +0 -0
  249. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/tool.py +0 -0
  250. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/tools_agents.py +0 -0
  251. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/orm/user.py +0 -0
  252. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/otel/__init__.py +0 -0
  253. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/otel/context.py +0 -0
  254. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/otel/events.py +0 -0
  255. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/otel/metric_registry.py +0 -0
  256. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/otel/metrics.py +0 -0
  257. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/otel/resource.py +0 -0
  258. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/otel/sqlalchemy_instrumentation.py +0 -0
  259. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/otel/sqlalchemy_instrumentation_integration.py +0 -0
  260. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/otel/tracing.py +0 -0
  261. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/personas/__init__.py +0 -0
  262. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/personas/examples/anna_pa.txt +0 -0
  263. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/personas/examples/google_search_persona.txt +0 -0
  264. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/personas/examples/memgpt_doc.txt +0 -0
  265. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/personas/examples/memgpt_starter.txt +0 -0
  266. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/personas/examples/o1_persona.txt +0 -0
  267. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/personas/examples/sam.txt +0 -0
  268. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/personas/examples/sam_pov.txt +0 -0
  269. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/personas/examples/sam_simple_pov_gpt35.txt +0 -0
  270. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/personas/examples/sleeptime_doc_persona.txt +0 -0
  271. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/personas/examples/sleeptime_memory_persona.txt +0 -0
  272. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/personas/examples/sqldb/test.db +0 -0
  273. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/personas/examples/voice_memory_persona.txt +0 -0
  274. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/plugins/README.md +0 -0
  275. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/plugins/__init__.py +0 -0
  276. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/plugins/defaults.py +0 -0
  277. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/plugins/plugins.py +0 -0
  278. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/__init__.py +0 -0
  279. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/gpt_summarize.py +0 -0
  280. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/gpt_system.py +0 -0
  281. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_base.txt +0 -0
  282. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_chat.txt +0 -0
  283. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_chat_compressed.txt +0 -0
  284. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_chat_fstring.txt +0 -0
  285. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_convo_only.txt +0 -0
  286. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_doc.txt +0 -0
  287. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_generate_tool.txt +0 -0
  288. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_gpt35_extralong.txt +0 -0
  289. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_intuitive_knowledge.txt +0 -0
  290. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_memory_only.txt +0 -0
  291. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_modified_chat.txt +0 -0
  292. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_modified_o1.txt +0 -0
  293. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_offline_memory.txt +0 -0
  294. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_offline_memory_chat.txt +0 -0
  295. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_sleeptime_chat.txt +0 -0
  296. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/memgpt_v2_chat.txt +0 -0
  297. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/react.txt +0 -0
  298. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/sleeptime.txt +0 -0
  299. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/sleeptime_doc_ingest.txt +0 -0
  300. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/sleeptime_v2.txt +0 -0
  301. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/summary_system_prompt.txt +0 -0
  302. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/voice_chat.txt +0 -0
  303. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/voice_sleeptime.txt +0 -0
  304. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/prompts/system/workflow.txt +0 -0
  305. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/pytest.ini +0 -0
  306. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/archive.py +0 -0
  307. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/embedding_config_overrides.py +0 -0
  308. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/environment_variables.py +0 -0
  309. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/file.py +0 -0
  310. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/folder.py +0 -0
  311. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/group.py +0 -0
  312. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/health.py +0 -0
  313. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/identity.py +0 -0
  314. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/letta_base.py +0 -0
  315. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/letta_message.py +0 -0
  316. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/letta_message_content.py +0 -0
  317. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/letta_ping.py +0 -0
  318. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/letta_request.py +0 -0
  319. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/letta_response.py +0 -0
  320. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/letta_stop_reason.py +0 -0
  321. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/llm_batch_job.py +0 -0
  322. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/llm_config_overrides.py +0 -0
  323. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/memory.py +0 -0
  324. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/npm_requirement.py +0 -0
  325. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/openai/chat_completion_response.py +0 -0
  326. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/openai/chat_completions.py +0 -0
  327. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/openai/embedding_response.py +0 -0
  328. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/openai/openai.py +0 -0
  329. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/organization.py +0 -0
  330. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/passage.py +0 -0
  331. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/pip_requirement.py +0 -0
  332. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/prompt.py +0 -0
  333. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/provider_trace.py +0 -0
  334. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/cerebras.py +0 -0
  335. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/deepseek.py +0 -0
  336. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/google_gemini.py +0 -0
  337. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/google_vertex.py +0 -0
  338. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/groq.py +0 -0
  339. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/lmstudio.py +0 -0
  340. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/mistral.py +0 -0
  341. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/vllm.py +0 -0
  342. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers/xai.py +0 -0
  343. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/providers.py +0 -0
  344. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/response_format.py +0 -0
  345. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/run.py +0 -0
  346. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/source.py +0 -0
  347. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/source_metadata.py +0 -0
  348. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/step.py +0 -0
  349. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/step_metrics.py +0 -0
  350. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/tool_execution_result.py +0 -0
  351. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/tool_rule.py +0 -0
  352. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/usage.py +0 -0
  353. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/schemas/user.py +0 -0
  354. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/serialize_schemas/__init__.py +0 -0
  355. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/serialize_schemas/marshmallow_agent.py +0 -0
  356. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/serialize_schemas/marshmallow_agent_environment_variable.py +0 -0
  357. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/serialize_schemas/marshmallow_base.py +0 -0
  358. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/serialize_schemas/marshmallow_block.py +0 -0
  359. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/serialize_schemas/marshmallow_custom_fields.py +0 -0
  360. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/serialize_schemas/marshmallow_message.py +0 -0
  361. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/serialize_schemas/marshmallow_tag.py +0 -0
  362. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/serialize_schemas/marshmallow_tool.py +0 -0
  363. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/serialize_schemas/pydantic_agent_schema.py +0 -0
  364. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/__init__.py +0 -0
  365. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/constants.py +0 -0
  366. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/db.py +0 -0
  367. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/generate_openapi_schema.sh +0 -0
  368. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/__init__.py +0 -0
  369. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/app.py +0 -0
  370. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/auth/__init__.py +0 -0
  371. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/auth/index.py +0 -0
  372. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/auth_token.py +0 -0
  373. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/chat_completions_interface.py +0 -0
  374. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/interface.py +0 -0
  375. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/json_parser.py +0 -0
  376. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/middleware/__init__.py +0 -0
  377. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/middleware/check_password.py +0 -0
  378. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/middleware/profiler_context.py +0 -0
  379. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/__init__.py +0 -0
  380. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/openai/chat_completions/__init__.py +0 -0
  381. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +0 -0
  382. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/__init__.py +0 -0
  383. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/blocks.py +0 -0
  384. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/embeddings.py +0 -0
  385. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/groups.py +0 -0
  386. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/health.py +0 -0
  387. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/identities.py +0 -0
  388. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/jobs.py +0 -0
  389. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/llms.py +0 -0
  390. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/messages.py +0 -0
  391. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/organizations.py +0 -0
  392. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/runs.py +0 -0
  393. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/sandbox_configs.py +0 -0
  394. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/tags.py +0 -0
  395. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/telemetry.py +0 -0
  396. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/users.py +0 -0
  397. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/routers/v1/voice.py +0 -0
  398. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/static_files.py +0 -0
  399. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/rest_api/utils.py +0 -0
  400. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/startup.sh +0 -0
  401. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/static_files/assets/index-048c9598.js +0 -0
  402. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/static_files/assets/index-0e31b727.css +0 -0
  403. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/static_files/favicon.ico +0 -0
  404. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/static_files/index.html +0 -0
  405. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/static_files/memgpt_logo_transparent.png +0 -0
  406. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/utils.py +0 -0
  407. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/ws_api/__init__.py +0 -0
  408. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/ws_api/example_client.py +0 -0
  409. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/ws_api/interface.py +0 -0
  410. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/ws_api/protocol.py +0 -0
  411. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/server/ws_api/server.py +0 -0
  412. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/__init__.py +0 -0
  413. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/agent_file_manager.py +0 -0
  414. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/archive_manager.py +0 -0
  415. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/block_manager.py +0 -0
  416. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/context_window_calculator/__init__.py +0 -0
  417. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/context_window_calculator/token_counter.py +0 -0
  418. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_manager.py +0 -0
  419. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_processor/__init__.py +0 -0
  420. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_processor/chunker/__init__.py +0 -0
  421. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_processor/chunker/line_chunker.py +0 -0
  422. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_processor/chunker/llama_index_chunker.py +0 -0
  423. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_processor/embedder/__init__.py +0 -0
  424. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_processor/embedder/base_embedder.py +0 -0
  425. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_processor/embedder/openai_embedder.py +0 -0
  426. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_processor/embedder/pinecone_embedder.py +0 -0
  427. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_processor/file_processor.py +0 -0
  428. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_processor/file_types.py +0 -0
  429. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_processor/parser/__init__.py +0 -0
  430. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_processor/parser/base_parser.py +0 -0
  431. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_processor/parser/markitdown_parser.py +0 -0
  432. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_processor/parser/mistral_parser.py +0 -0
  433. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/file_processor/types.py +0 -0
  434. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/files_agents_manager.py +0 -0
  435. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/group_manager.py +0 -0
  436. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/helpers/tool_execution_helper.py +0 -0
  437. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/helpers/tool_parser_helper.py +0 -0
  438. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/identity_manager.py +0 -0
  439. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/job_manager.py +0 -0
  440. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/llm_batch_manager.py +0 -0
  441. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/mcp/__init__.py +0 -0
  442. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/mcp/base_client.py +0 -0
  443. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/mcp/oauth_utils.py +0 -0
  444. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/mcp/sse_client.py +0 -0
  445. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/mcp/stdio_client.py +0 -0
  446. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/mcp/streamable_http_client.py +0 -0
  447. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/mcp/types.py +0 -0
  448. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/message_manager.py +0 -0
  449. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/organization_manager.py +0 -0
  450. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/per_agent_lock_manager.py +0 -0
  451. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/sandbox_config_manager.py +0 -0
  452. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/source_manager.py +0 -0
  453. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/summarizer/__init__.py +0 -0
  454. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/summarizer/enums.py +0 -0
  455. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/telemetry_manager.py +0 -0
  456. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_executor/__init__.py +0 -0
  457. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_executor/builtin_tool_executor.py +0 -0
  458. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_executor/composio_tool_executor.py +0 -0
  459. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_executor/files_tool_executor.py +0 -0
  460. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_executor/mcp_tool_executor.py +0 -0
  461. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_executor/multi_agent_tool_executor.py +0 -0
  462. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_executor/tool_execution_manager.py +0 -0
  463. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_executor/tool_execution_sandbox.py +0 -0
  464. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_executor/tool_executor_base.py +0 -0
  465. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_sandbox/__init__.py +0 -0
  466. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_sandbox/e2b_sandbox.py +0 -0
  467. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/tool_sandbox/local_sandbox.py +0 -0
  468. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/services/user_manager.py +0 -0
  469. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/streaming_interface.py +0 -0
  470. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/streaming_utils.py +0 -0
  471. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/system.py +0 -0
  472. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/templates/__init__.py +0 -0
  473. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/templates/summary_request_text.j2 +0 -0
  474. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/templates/template_helper.py +0 -0
  475. {letta_nightly-0.11.3.dev20250819104229 → letta_nightly-0.11.4.dev20250820213507}/letta/types/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-nightly
3
- Version: 0.11.3.dev20250819104229
3
+ Version: 0.11.4.dev20250820213507
4
4
  Summary: Create LLM agents with long-term memory and custom tools
5
5
  License: Apache License
6
6
  Author: Letta Team
@@ -68,7 +68,7 @@ Requires-Dist: mistralai (>=1.8.1,<2.0.0)
68
68
  Requires-Dist: modal (>=1.1.0,<2.0.0) ; extra == "cloud-tool-sandbox"
69
69
  Requires-Dist: nltk (>=3.8.1,<4.0.0)
70
70
  Requires-Dist: numpy (>=2.1.0,<3.0.0)
71
- Requires-Dist: openai (>=1.60.0,<2.0.0)
71
+ Requires-Dist: openai (>=1.99.9,<2.0.0)
72
72
  Requires-Dist: opentelemetry-api (==1.30.0)
73
73
  Requires-Dist: opentelemetry-exporter-otlp (==1.30.0)
74
74
  Requires-Dist: opentelemetry-instrumentation-requests (==0.51b0)
@@ -5,7 +5,7 @@ try:
5
5
  __version__ = version("letta")
6
6
  except PackageNotFoundError:
7
7
  # Fallback for development installations
8
- __version__ = "0.11.3"
8
+ __version__ = "0.11.4"
9
9
 
10
10
  if os.environ.get("LETTA_VERSION"):
11
11
  __version__ = os.environ["LETTA_VERSION"]
@@ -4,6 +4,7 @@ import xml.etree.ElementTree as ET
4
4
  from typing import List, Optional, Tuple
5
5
 
6
6
  from letta.helpers import ToolRulesSolver
7
+ from letta.log import get_logger
7
8
  from letta.schemas.agent import AgentState
8
9
  from letta.schemas.letta_message import MessageType
9
10
  from letta.schemas.letta_response import LettaResponse
@@ -15,6 +16,8 @@ from letta.schemas.user import User
15
16
  from letta.server.rest_api.utils import create_input_messages
16
17
  from letta.services.message_manager import MessageManager
17
18
 
19
+ logger = get_logger(__name__)
20
+
18
21
 
19
22
  def _create_letta_response(
20
23
  new_in_context_messages: list[Message],
@@ -222,6 +225,7 @@ def _safe_load_tool_call_str(tool_call_args_str: str) -> dict:
222
225
  # Load it again - this is due to sometimes Anthropic returning weird json @caren
223
226
  tool_args = json.loads(tool_args)
224
227
  except json.JSONDecodeError:
228
+ logger.error("Failed to JSON decode tool call argument string: %s", tool_call_args_str)
225
229
  tool_args = {}
226
230
 
227
231
  return tool_args
@@ -44,6 +44,7 @@ from letta.schemas.message import Message, MessageCreate
44
44
  from letta.schemas.openai.chat_completion_response import ToolCall, UsageStatistics
45
45
  from letta.schemas.provider_trace import ProviderTraceCreate
46
46
  from letta.schemas.step import StepProgression
47
+ from letta.schemas.step_metrics import StepMetrics
47
48
  from letta.schemas.tool_execution_result import ToolExecutionResult
48
49
  from letta.schemas.usage import LettaUsageStatistics
49
50
  from letta.schemas.user import User
@@ -242,6 +243,7 @@ class LettaAgent(BaseAgent):
242
243
 
243
244
  step_progression = StepProgression.START
244
245
  should_continue = False
246
+ step_metrics = StepMetrics(id=step_id) # Initialize metrics tracking
245
247
 
246
248
  # Create step early with PENDING status
247
249
  logged_step = await self.step_manager.log_step_async(
@@ -271,6 +273,7 @@ class LettaAgent(BaseAgent):
271
273
  llm_client,
272
274
  tool_rules_solver,
273
275
  agent_step_span,
276
+ step_metrics,
274
277
  )
275
278
  )
276
279
  in_context_messages = current_in_context_messages + new_in_context_messages
@@ -320,6 +323,7 @@ class LettaAgent(BaseAgent):
320
323
  initial_messages=initial_messages,
321
324
  agent_step_span=agent_step_span,
322
325
  is_final_step=(i == max_steps - 1),
326
+ step_metrics=step_metrics,
323
327
  )
324
328
  step_progression = StepProgression.STEP_LOGGED
325
329
 
@@ -365,6 +369,17 @@ class LettaAgent(BaseAgent):
365
369
 
366
370
  MetricRegistry().step_execution_time_ms_histogram.record(get_utc_timestamp_ns() - step_start, get_ctx_attributes())
367
371
  step_progression = StepProgression.FINISHED
372
+
373
+ # Record step metrics for successful completion
374
+ if logged_step and step_metrics:
375
+ # Set the step_ns that was already calculated
376
+ step_metrics.step_ns = step_ns
377
+ await self._record_step_metrics(
378
+ step_id=step_id,
379
+ agent_state=agent_state,
380
+ step_metrics=step_metrics,
381
+ )
382
+
368
383
  except Exception as e:
369
384
  # Handle any unexpected errors during step processing
370
385
  self.logger.error(f"Error during step processing: {e}")
@@ -416,7 +431,7 @@ class LettaAgent(BaseAgent):
416
431
 
417
432
  if step_progression <= StepProgression.RESPONSE_RECEIVED:
418
433
  # TODO (cliandy): persist response if we get it back
419
- if settings.track_errored_messages:
434
+ if settings.track_errored_messages and initial_messages:
420
435
  for message in initial_messages:
421
436
  message.is_err = True
422
437
  message.step_id = effective_step_id
@@ -433,6 +448,17 @@ class LettaAgent(BaseAgent):
433
448
  if settings.track_stop_reason:
434
449
  await self._log_request(request_start_timestamp_ns, request_span, job_update_metadata, is_error=True)
435
450
 
451
+ # Record partial step metrics on failure (capture whatever timing data we have)
452
+ if logged_step and step_metrics and step_progression < StepProgression.FINISHED:
453
+ # Calculate total step time up to the failure point
454
+ step_metrics.step_ns = get_utc_timestamp_ns() - step_start
455
+ await self._record_step_metrics(
456
+ step_id=step_id,
457
+ agent_state=agent_state,
458
+ step_metrics=step_metrics,
459
+ job_id=locals().get("run_id", self.current_run_id),
460
+ )
461
+
436
462
  except Exception as e:
437
463
  self.logger.error("Failed to update step: %s", e)
438
464
 
@@ -513,6 +539,7 @@ class LettaAgent(BaseAgent):
513
539
 
514
540
  step_progression = StepProgression.START
515
541
  should_continue = False
542
+ step_metrics = StepMetrics(id=step_id) # Initialize metrics tracking
516
543
 
517
544
  # Create step early with PENDING status
518
545
  logged_step = await self.step_manager.log_step_async(
@@ -536,7 +563,13 @@ class LettaAgent(BaseAgent):
536
563
  try:
537
564
  request_data, response_data, current_in_context_messages, new_in_context_messages, valid_tool_names = (
538
565
  await self._build_and_request_from_llm(
539
- current_in_context_messages, new_in_context_messages, agent_state, llm_client, tool_rules_solver, agent_step_span
566
+ current_in_context_messages,
567
+ new_in_context_messages,
568
+ agent_state,
569
+ llm_client,
570
+ tool_rules_solver,
571
+ agent_step_span,
572
+ step_metrics,
540
573
  )
541
574
  )
542
575
  in_context_messages = current_in_context_messages + new_in_context_messages
@@ -587,6 +620,7 @@ class LettaAgent(BaseAgent):
587
620
  agent_step_span=agent_step_span,
588
621
  is_final_step=(i == max_steps - 1),
589
622
  run_id=run_id,
623
+ step_metrics=step_metrics,
590
624
  )
591
625
  step_progression = StepProgression.STEP_LOGGED
592
626
 
@@ -622,6 +656,17 @@ class LettaAgent(BaseAgent):
622
656
  MetricRegistry().step_execution_time_ms_histogram.record(get_utc_timestamp_ns() - step_start, get_ctx_attributes())
623
657
  step_progression = StepProgression.FINISHED
624
658
 
659
+ # Record step metrics for successful completion
660
+ if logged_step and step_metrics:
661
+ # Set the step_ns that was already calculated
662
+ step_metrics.step_ns = step_ns
663
+ await self._record_step_metrics(
664
+ step_id=step_id,
665
+ agent_state=agent_state,
666
+ step_metrics=step_metrics,
667
+ job_id=run_id if run_id else self.current_run_id,
668
+ )
669
+
625
670
  except Exception as e:
626
671
  # Handle any unexpected errors during step processing
627
672
  self.logger.error(f"Error during step processing: {e}")
@@ -669,7 +714,7 @@ class LettaAgent(BaseAgent):
669
714
 
670
715
  if step_progression <= StepProgression.RESPONSE_RECEIVED:
671
716
  # TODO (cliandy): persist response if we get it back
672
- if settings.track_errored_messages:
717
+ if settings.track_errored_messages and initial_messages:
673
718
  for message in initial_messages:
674
719
  message.is_err = True
675
720
  message.step_id = effective_step_id
@@ -686,6 +731,17 @@ class LettaAgent(BaseAgent):
686
731
  if settings.track_stop_reason:
687
732
  await self._log_request(request_start_timestamp_ns, request_span, job_update_metadata, is_error=True)
688
733
 
734
+ # Record partial step metrics on failure (capture whatever timing data we have)
735
+ if logged_step and step_metrics and step_progression < StepProgression.FINISHED:
736
+ # Calculate total step time up to the failure point
737
+ step_metrics.step_ns = get_utc_timestamp_ns() - step_start
738
+ await self._record_step_metrics(
739
+ step_id=step_id,
740
+ agent_state=agent_state,
741
+ step_metrics=step_metrics,
742
+ job_id=locals().get("run_id", self.current_run_id),
743
+ )
744
+
689
745
  except Exception as e:
690
746
  self.logger.error("Failed to update step: %s", e)
691
747
 
@@ -774,6 +830,7 @@ class LettaAgent(BaseAgent):
774
830
 
775
831
  step_progression = StepProgression.START
776
832
  should_continue = False
833
+ step_metrics = StepMetrics(id=step_id) # Initialize metrics tracking
777
834
 
778
835
  # Create step early with PENDING status
779
836
  logged_step = await self.step_manager.log_step_async(
@@ -875,7 +932,10 @@ class LettaAgent(BaseAgent):
875
932
  )
876
933
 
877
934
  # log LLM request time
878
- llm_request_ms = ns_to_ms(stream_end_time_ns - provider_request_start_timestamp_ns)
935
+ llm_request_ns = stream_end_time_ns - provider_request_start_timestamp_ns
936
+ step_metrics.llm_request_ns = llm_request_ns
937
+
938
+ llm_request_ms = ns_to_ms(llm_request_ns)
879
939
  agent_step_span.add_event(name="llm_request_ms", attributes={"duration_ms": llm_request_ms})
880
940
  MetricRegistry().llm_execution_time_ms_histogram.record(
881
941
  llm_request_ms,
@@ -908,6 +968,7 @@ class LettaAgent(BaseAgent):
908
968
  initial_messages=initial_messages,
909
969
  agent_step_span=agent_step_span,
910
970
  is_final_step=(i == max_steps - 1),
971
+ step_metrics=step_metrics,
911
972
  )
912
973
  step_progression = StepProgression.STEP_LOGGED
913
974
 
@@ -979,6 +1040,25 @@ class LettaAgent(BaseAgent):
979
1040
  MetricRegistry().step_execution_time_ms_histogram.record(get_utc_timestamp_ns() - step_start, get_ctx_attributes())
980
1041
  step_progression = StepProgression.FINISHED
981
1042
 
1043
+ # Record step metrics for successful completion
1044
+ if logged_step and step_metrics:
1045
+ try:
1046
+ # Set the step_ns that was already calculated
1047
+ step_metrics.step_ns = step_ns
1048
+
1049
+ # Get context attributes for project and template IDs
1050
+ ctx_attrs = get_ctx_attributes()
1051
+
1052
+ await self._record_step_metrics(
1053
+ step_id=step_id,
1054
+ agent_state=agent_state,
1055
+ step_metrics=step_metrics,
1056
+ ctx_attrs=ctx_attrs,
1057
+ job_id=self.current_run_id,
1058
+ )
1059
+ except Exception as metrics_error:
1060
+ self.logger.warning(f"Failed to record step metrics: {metrics_error}")
1061
+
982
1062
  except Exception as e:
983
1063
  # Handle any unexpected errors during step processing
984
1064
  self.logger.error(f"Error during step processing: {e}")
@@ -1029,7 +1109,7 @@ class LettaAgent(BaseAgent):
1029
1109
  )
1030
1110
 
1031
1111
  if step_progression <= StepProgression.STREAM_RECEIVED:
1032
- if first_chunk and settings.track_errored_messages:
1112
+ if first_chunk and settings.track_errored_messages and initial_messages:
1033
1113
  for message in initial_messages:
1034
1114
  message.is_err = True
1035
1115
  message.step_id = effective_step_id
@@ -1047,6 +1127,25 @@ class LettaAgent(BaseAgent):
1047
1127
  if settings.track_stop_reason:
1048
1128
  await self._log_request(request_start_timestamp_ns, request_span, job_update_metadata, is_error=True)
1049
1129
 
1130
+ # Record partial step metrics on failure (capture whatever timing data we have)
1131
+ if logged_step and step_metrics and step_progression < StepProgression.FINISHED:
1132
+ try:
1133
+ # Calculate total step time up to the failure point
1134
+ step_metrics.step_ns = get_utc_timestamp_ns() - step_start
1135
+
1136
+ # Get context attributes for project and template IDs
1137
+ ctx_attrs = get_ctx_attributes()
1138
+
1139
+ await self._record_step_metrics(
1140
+ step_id=step_id,
1141
+ agent_state=agent_state,
1142
+ step_metrics=step_metrics,
1143
+ ctx_attrs=ctx_attrs,
1144
+ job_id=locals().get("run_id", self.current_run_id),
1145
+ )
1146
+ except Exception as metrics_error:
1147
+ self.logger.warning(f"Failed to record step metrics: {metrics_error}")
1148
+
1050
1149
  except Exception as e:
1051
1150
  self.logger.error("Failed to update step: %s", e)
1052
1151
 
@@ -1087,6 +1186,32 @@ class LettaAgent(BaseAgent):
1087
1186
  if request_span:
1088
1187
  request_span.end()
1089
1188
 
1189
+ async def _record_step_metrics(
1190
+ self,
1191
+ *,
1192
+ step_id: str,
1193
+ agent_state: AgentState,
1194
+ step_metrics: StepMetrics,
1195
+ ctx_attrs: dict | None = None,
1196
+ job_id: str | None = None,
1197
+ ) -> None:
1198
+ try:
1199
+ attrs = ctx_attrs or get_ctx_attributes()
1200
+ await self.step_manager.record_step_metrics_async(
1201
+ actor=self.actor,
1202
+ step_id=step_id,
1203
+ llm_request_ns=step_metrics.llm_request_ns,
1204
+ tool_execution_ns=step_metrics.tool_execution_ns,
1205
+ step_ns=step_metrics.step_ns,
1206
+ agent_id=agent_state.id,
1207
+ job_id=job_id or self.current_run_id,
1208
+ project_id=attrs.get("project.id") or agent_state.project_id,
1209
+ template_id=attrs.get("template.id"),
1210
+ base_template_id=attrs.get("base_template.id"),
1211
+ )
1212
+ except Exception as metrics_error:
1213
+ self.logger.warning(f"Failed to record step metrics: {metrics_error}")
1214
+
1090
1215
  # noinspection PyInconsistentReturns
1091
1216
  async def _build_and_request_from_llm(
1092
1217
  self,
@@ -1096,6 +1221,7 @@ class LettaAgent(BaseAgent):
1096
1221
  llm_client: LLMClientBase,
1097
1222
  tool_rules_solver: ToolRulesSolver,
1098
1223
  agent_step_span: "Span",
1224
+ step_metrics: StepMetrics,
1099
1225
  ) -> tuple[dict, dict, list[Message], list[Message], list[str]] | None:
1100
1226
  for attempt in range(self.max_summarization_retries + 1):
1101
1227
  try:
@@ -1112,6 +1238,10 @@ class LettaAgent(BaseAgent):
1112
1238
  async with AsyncTimer() as timer:
1113
1239
  # Attempt LLM request
1114
1240
  response = await llm_client.request_async(request_data, agent_state.llm_config)
1241
+
1242
+ # Track LLM request time
1243
+ step_metrics.llm_request_ns = int(timer.elapsed_ns)
1244
+
1115
1245
  MetricRegistry().llm_execution_time_ms_histogram.record(
1116
1246
  timer.elapsed_ms,
1117
1247
  dict(get_ctx_attributes(), **{"model.name": agent_state.llm_config.model}),
@@ -1352,6 +1482,7 @@ class LettaAgent(BaseAgent):
1352
1482
  agent_step_span: Optional["Span"] = None,
1353
1483
  is_final_step: bool | None = None,
1354
1484
  run_id: str | None = None,
1485
+ step_metrics: StepMetrics = None,
1355
1486
  ) -> tuple[list[Message], bool, LettaStopReason | None]:
1356
1487
  """
1357
1488
  Handle the final AI response once streaming completes, execute / validate the
@@ -1378,6 +1509,8 @@ class LettaAgent(BaseAgent):
1378
1509
  if tool_rule_violated:
1379
1510
  tool_execution_result = _build_rule_violation_result(tool_call_name, valid_tool_names, tool_rules_solver)
1380
1511
  else:
1512
+ # Track tool execution time
1513
+ tool_start_time = get_utc_timestamp_ns()
1381
1514
  tool_execution_result = await self._execute_tool(
1382
1515
  tool_name=tool_call_name,
1383
1516
  tool_args=tool_args,
@@ -1385,6 +1518,10 @@ class LettaAgent(BaseAgent):
1385
1518
  agent_step_span=agent_step_span,
1386
1519
  step_id=step_id,
1387
1520
  )
1521
+ tool_end_time = get_utc_timestamp_ns()
1522
+
1523
+ # Store tool execution time in metrics
1524
+ step_metrics.tool_execution_ns = tool_end_time - tool_start_time
1388
1525
 
1389
1526
  log_telemetry(
1390
1527
  self.logger, "_handle_ai_response execute tool finish", tool_execution_result=tool_execution_result, tool_call_id=tool_call_id
@@ -36,6 +36,7 @@ LETTA_TOOL_MODULE_NAMES = [
36
36
  DEFAULT_ORG_ID = "org-00000000-0000-4000-8000-000000000000"
37
37
  DEFAULT_ORG_NAME = "default_org"
38
38
 
39
+ AGENT_ID_PATTERN = re.compile(r"^agent-[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", re.IGNORECASE)
39
40
 
40
41
  # String in the error message for when the context window is too large
41
42
  # Example full message:
@@ -330,15 +331,15 @@ READ_ONLY_BLOCK_EDIT_ERROR = f"{ERROR_MESSAGE_PREFIX} This block is read-only an
330
331
  MESSAGE_SUMMARY_REQUEST_ACK = "Understood, I will respond with a summary of the message (and only the summary, nothing else) once I receive the conversation history. I'm ready."
331
332
 
332
333
  # Maximum length of an error message
333
- MAX_ERROR_MESSAGE_CHAR_LIMIT = 500
334
+ MAX_ERROR_MESSAGE_CHAR_LIMIT = 1000
334
335
 
335
336
  # Default memory limits
336
- CORE_MEMORY_PERSONA_CHAR_LIMIT: int = 5000
337
- CORE_MEMORY_HUMAN_CHAR_LIMIT: int = 5000
338
- CORE_MEMORY_BLOCK_CHAR_LIMIT: int = 5000
337
+ CORE_MEMORY_PERSONA_CHAR_LIMIT: int = 20000
338
+ CORE_MEMORY_HUMAN_CHAR_LIMIT: int = 20000
339
+ CORE_MEMORY_BLOCK_CHAR_LIMIT: int = 20000
339
340
 
340
341
  # Function return limits
341
- FUNCTION_RETURN_CHAR_LIMIT = 6000 # ~300 words
342
+ FUNCTION_RETURN_CHAR_LIMIT = 50000 # ~300 words
342
343
  BASE_FUNCTION_RETURN_CHAR_LIMIT = 1000000 # very high (we rely on implementation)
343
344
  FILE_IS_TRUNCATED_WARNING = "# NOTE: This block is truncated, use functions to view the full content."
344
345
 
@@ -396,5 +397,7 @@ PINECONE_THROTTLE_DELAY = 0.75 # seconds base delay between batches
396
397
  WEB_SEARCH_MODEL_ENV_VAR_NAME = "LETTA_BUILTIN_WEBSEARCH_OPENAI_MODEL_NAME"
397
398
  WEB_SEARCH_MODEL_ENV_VAR_DEFAULT_VALUE = "gpt-4.1-mini-2025-04-14"
398
399
 
399
- # Excluded providers from base tool rules
400
- EXCLUDED_PROVIDERS_FROM_BASE_TOOL_RULES = {"anthropic", "openai", "google_ai", "google_vertex"}
400
+ # Excluded model keywords from base tool rules
401
+ EXCLUDE_MODEL_KEYWORDS_FROM_BASE_TOOL_RULES = ["claude-4-sonnet", "claude-3-5-sonnet", "gpt-5", "gemini-2.5-pro"]
402
+ # But include models with these keywords in base tool rules (overrides exclusion)
403
+ INCLUDE_MODEL_KEYWORDS_BASE_TOOL_RULES = ["mini"]
@@ -4,7 +4,6 @@ import typer
4
4
 
5
5
  from letta.constants import EMBEDDING_BATCH_SIZE
6
6
  from letta.data_sources.connectors_helper import assert_all_files_exist_locally, extract_metadata_from_files, get_filenames_in_dir
7
- from letta.embeddings import embedding_model
8
7
  from letta.schemas.file import FileMetadata
9
8
  from letta.schemas.passage import Passage
10
9
  from letta.schemas.source import Source
@@ -40,61 +39,29 @@ class DataConnector:
40
39
 
41
40
  async def load_data(connector: DataConnector, source: Source, passage_manager: PassageManager, file_manager: FileManager, actor: "User"):
42
41
  from letta.llm_api.llm_client import LLMClient
43
- from letta.schemas.embedding_config import EmbeddingConfig
44
42
 
45
43
  """Load data from a connector (generates file and passages) into a specified source_id, associated with a user_id."""
46
44
  embedding_config = source.embedding_config
47
45
 
48
46
  # insert passages/file
49
- texts = []
50
47
  embedding_to_document_name = {}
51
48
  passage_count = 0
52
49
  file_count = 0
53
50
 
54
- async def generate_embeddings(texts: List[str], embedding_config: EmbeddingConfig) -> List[Passage]:
55
- passages = []
56
- if embedding_config.embedding_endpoint_type == "openai":
57
- texts.append(passage_text)
58
-
59
- client = LLMClient.create(
60
- provider_type=embedding_config.embedding_endpoint_type,
61
- actor=actor,
62
- )
63
- embeddings = await client.request_embeddings(texts, embedding_config)
64
-
65
- else:
66
- embed_model = embedding_model(embedding_config)
67
- embeddings = [embed_model.get_text_embedding(text) for text in texts]
68
-
69
- # collate passage and embedding
70
- for text, embedding in zip(texts, embeddings):
71
- passage = Passage(
72
- text=text,
73
- file_id=file_metadata.id,
74
- source_id=source.id,
75
- metadata=passage_metadata,
76
- organization_id=source.organization_id,
77
- embedding_config=source.embedding_config,
78
- embedding=embedding,
79
- )
80
- hashable_embedding = tuple(passage.embedding)
81
- file_name = file_metadata.file_name
82
- if hashable_embedding in embedding_to_document_name:
83
- typer.secho(
84
- f"Warning: Duplicate embedding found for passage in {file_name} (already exists in {embedding_to_document_name[hashable_embedding]}), skipping insert into VectorDB.",
85
- fg=typer.colors.YELLOW,
86
- )
87
- continue
88
-
89
- passages.append(passage)
90
- embedding_to_document_name[hashable_embedding] = file_name
91
- return passages
51
+ # Use the new LLMClient for all embedding requests
52
+ client = LLMClient.create(
53
+ provider_type=embedding_config.embedding_endpoint_type,
54
+ actor=actor,
55
+ )
92
56
 
93
57
  for file_metadata in connector.find_files(source):
94
58
  file_count += 1
95
59
  await file_manager.create_file(file_metadata, actor)
96
60
 
97
- # generate passages
61
+ # generate passages for this file
62
+ texts = []
63
+ metadatas = []
64
+
98
65
  for passage_text, passage_metadata in connector.generate_passages(file_metadata, chunk_size=embedding_config.embedding_chunk_size):
99
66
  # for some reason, llama index parsers sometimes return empty strings
100
67
  if len(passage_text) == 0:
@@ -104,24 +71,74 @@ async def load_data(connector: DataConnector, source: Source, passage_manager: P
104
71
  )
105
72
  continue
106
73
 
107
- # get embedding
108
74
  texts.append(passage_text)
75
+ metadatas.append(passage_metadata)
76
+
109
77
  if len(texts) >= EMBEDDING_BATCH_SIZE:
110
- passages = await generate_embeddings(texts, embedding_config)
78
+ # Process the batch
79
+ embeddings = await client.request_embeddings(texts, embedding_config)
80
+ passages = []
81
+
82
+ for text, embedding, passage_metadata in zip(texts, embeddings, metadatas):
83
+ passage = Passage(
84
+ text=text,
85
+ file_id=file_metadata.id,
86
+ source_id=source.id,
87
+ metadata=passage_metadata,
88
+ organization_id=source.organization_id,
89
+ embedding_config=source.embedding_config,
90
+ embedding=embedding,
91
+ )
92
+ hashable_embedding = tuple(passage.embedding)
93
+ file_name = file_metadata.file_name
94
+ if hashable_embedding in embedding_to_document_name:
95
+ typer.secho(
96
+ f"Warning: Duplicate embedding found for passage in {file_name} (already exists in {embedding_to_document_name[hashable_embedding]}), skipping insert into VectorDB.",
97
+ fg=typer.colors.YELLOW,
98
+ )
99
+ continue
100
+
101
+ passages.append(passage)
102
+ embedding_to_document_name[hashable_embedding] = file_name
103
+
104
+ # insert passages into passage store
105
+ await passage_manager.create_many_passages_async(passages, actor)
106
+ passage_count += len(passages)
107
+
108
+ # Reset for next batch
111
109
  texts = []
112
- else:
113
- continue
110
+ metadatas = []
111
+
112
+ # Process final remaining texts for this file
113
+ if len(texts) > 0:
114
+ embeddings = await client.request_embeddings(texts, embedding_config)
115
+ passages = []
116
+
117
+ for text, embedding, passage_metadata in zip(texts, embeddings, metadatas):
118
+ passage = Passage(
119
+ text=text,
120
+ file_id=file_metadata.id,
121
+ source_id=source.id,
122
+ metadata=passage_metadata,
123
+ organization_id=source.organization_id,
124
+ embedding_config=source.embedding_config,
125
+ embedding=embedding,
126
+ )
127
+ hashable_embedding = tuple(passage.embedding)
128
+ file_name = file_metadata.file_name
129
+ if hashable_embedding in embedding_to_document_name:
130
+ typer.secho(
131
+ f"Warning: Duplicate embedding found for passage in {file_name} (already exists in {embedding_to_document_name[hashable_embedding]}), skipping insert into VectorDB.",
132
+ fg=typer.colors.YELLOW,
133
+ )
134
+ continue
135
+
136
+ passages.append(passage)
137
+ embedding_to_document_name[hashable_embedding] = file_name
114
138
 
115
- # insert passages into passage store
116
139
  await passage_manager.create_many_passages_async(passages, actor)
117
140
  passage_count += len(passages)
118
141
 
119
- # final remaining
120
- if len(texts) > 0:
121
- passages = await generate_embeddings(texts, embedding_config)
122
- await passage_manager.create_many_passages_async(passages, actor)
123
- passage_count += len(passages)
124
-
125
142
  return passage_count, file_count
126
143
 
127
144
 
@@ -0,0 +1,53 @@
1
+ from typing import List
2
+
3
+ import tiktoken
4
+
5
+ from letta.constants import EMBEDDING_TO_TOKENIZER_DEFAULT, EMBEDDING_TO_TOKENIZER_MAP
6
+ from letta.utils import printd
7
+
8
+
9
+ def parse_and_chunk_text(text: str, chunk_size: int) -> List[str]:
10
+ from llama_index.core import Document as LlamaIndexDocument
11
+ from llama_index.core.node_parser import SentenceSplitter
12
+
13
+ parser = SentenceSplitter(chunk_size=chunk_size)
14
+ llama_index_docs = [LlamaIndexDocument(text=text)]
15
+ nodes = parser.get_nodes_from_documents(llama_index_docs)
16
+ return [n.text for n in nodes]
17
+
18
+
19
+ def truncate_text(text: str, max_length: int, encoding) -> str:
20
+ # truncate the text based on max_length and encoding
21
+ encoded_text = encoding.encode(text)[:max_length]
22
+ return encoding.decode(encoded_text)
23
+
24
+
25
+ def check_and_split_text(text: str, embedding_model: str) -> List[str]:
26
+ """Split text into chunks of max_length tokens or less"""
27
+
28
+ if embedding_model in EMBEDDING_TO_TOKENIZER_MAP:
29
+ encoding = tiktoken.get_encoding(EMBEDDING_TO_TOKENIZER_MAP[embedding_model])
30
+ else:
31
+ print(f"Warning: couldn't find tokenizer for model {embedding_model}, using default tokenizer {EMBEDDING_TO_TOKENIZER_DEFAULT}")
32
+ encoding = tiktoken.get_encoding(EMBEDDING_TO_TOKENIZER_DEFAULT)
33
+
34
+ num_tokens = len(encoding.encode(text))
35
+
36
+ # determine max length
37
+ if hasattr(encoding, "max_length"):
38
+ # TODO(fix) this is broken
39
+ max_length = encoding.max_length
40
+ else:
41
+ # TODO: figure out the real number
42
+ printd(f"Warning: couldn't find max_length for tokenizer {embedding_model}, using default max_length 8191")
43
+ max_length = 8191
44
+
45
+ # truncate text if too long
46
+ if num_tokens > max_length:
47
+ print(f"Warning: text is too long ({num_tokens} tokens), truncating to {max_length} tokens.")
48
+ # First, apply any necessary formatting
49
+ formatted_text = format_text(text, embedding_model)
50
+ # Then truncate
51
+ text = truncate_text(formatted_text, max_length, encoding)
52
+
53
+ return [text]
@@ -236,5 +236,33 @@ class AgentFileExportError(Exception):
236
236
  """Exception raised during agent file export operations"""
237
237
 
238
238
 
239
+ class AgentNotFoundForExportError(AgentFileExportError):
240
+ """Exception raised when requested agents are not found during export"""
241
+
242
+ def __init__(self, missing_ids: List[str]):
243
+ self.missing_ids = missing_ids
244
+ super().__init__(f"The following agent IDs were not found: {missing_ids}")
245
+
246
+
247
+ class AgentExportIdMappingError(AgentFileExportError):
248
+ """Exception raised when ID mapping fails during export conversion"""
249
+
250
+ def __init__(self, db_id: str, entity_type: str):
251
+ self.db_id = db_id
252
+ self.entity_type = entity_type
253
+ super().__init__(
254
+ f"Unexpected new {entity_type} ID '{db_id}' encountered during conversion. "
255
+ f"All IDs should have been mapped during agent processing."
256
+ )
257
+
258
+
259
+ class AgentExportProcessingError(AgentFileExportError):
260
+ """Exception raised when general export processing fails"""
261
+
262
+ def __init__(self, message: str, original_error: Optional[Exception] = None):
263
+ self.original_error = original_error
264
+ super().__init__(f"Export failed: {message}")
265
+
266
+
239
267
  class AgentFileImportError(Exception):
240
268
  """Exception raised during agent file import operations"""