letta-nightly 0.11.7.dev20250910104051__py3-none-any.whl → 0.11.7.dev20250912104045__py3-none-any.whl

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 (45) hide show
  1. letta/adapters/letta_llm_request_adapter.py +4 -2
  2. letta/adapters/letta_llm_stream_adapter.py +4 -2
  3. letta/agents/agent_loop.py +23 -0
  4. letta/agents/letta_agent_v2.py +34 -12
  5. letta/functions/helpers.py +3 -2
  6. letta/groups/sleeptime_multi_agent_v2.py +4 -2
  7. letta/groups/sleeptime_multi_agent_v3.py +4 -2
  8. letta/helpers/tpuf_client.py +41 -9
  9. letta/interfaces/anthropic_streaming_interface.py +10 -6
  10. letta/interfaces/openai_streaming_interface.py +9 -74
  11. letta/llm_api/google_vertex_client.py +6 -1
  12. letta/llm_api/openai_client.py +9 -8
  13. letta/orm/agent.py +4 -1
  14. letta/orm/block.py +1 -0
  15. letta/orm/blocks_agents.py +1 -0
  16. letta/orm/job.py +5 -1
  17. letta/orm/organization.py +2 -0
  18. letta/orm/sources_agents.py +2 -1
  19. letta/orm/tools_agents.py +5 -2
  20. letta/schemas/message.py +19 -2
  21. letta/server/rest_api/interface.py +34 -2
  22. letta/server/rest_api/json_parser.py +2 -0
  23. letta/server/rest_api/redis_stream_manager.py +17 -3
  24. letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +4 -2
  25. letta/server/rest_api/routers/v1/agents.py +49 -180
  26. letta/server/rest_api/routers/v1/folders.py +2 -2
  27. letta/server/rest_api/routers/v1/sources.py +2 -2
  28. letta/server/rest_api/routers/v1/tools.py +23 -39
  29. letta/server/rest_api/streaming_response.py +2 -1
  30. letta/server/server.py +7 -5
  31. letta/services/agent_serialization_manager.py +4 -3
  32. letta/services/job_manager.py +5 -2
  33. letta/services/mcp_manager.py +66 -5
  34. letta/services/summarizer/summarizer.py +2 -1
  35. letta/services/tool_executor/files_tool_executor.py +2 -2
  36. letta/services/tool_executor/multi_agent_tool_executor.py +17 -14
  37. letta/services/tool_sandbox/local_sandbox.py +2 -2
  38. letta/services/tool_sandbox/modal_version_manager.py +2 -1
  39. letta/streaming_utils.py +29 -4
  40. letta/utils.py +72 -3
  41. {letta_nightly-0.11.7.dev20250910104051.dist-info → letta_nightly-0.11.7.dev20250912104045.dist-info}/METADATA +3 -3
  42. {letta_nightly-0.11.7.dev20250910104051.dist-info → letta_nightly-0.11.7.dev20250912104045.dist-info}/RECORD +45 -44
  43. {letta_nightly-0.11.7.dev20250910104051.dist-info → letta_nightly-0.11.7.dev20250912104045.dist-info}/WHEEL +0 -0
  44. {letta_nightly-0.11.7.dev20250910104051.dist-info → letta_nightly-0.11.7.dev20250912104045.dist-info}/entry_points.txt +0 -0
  45. {letta_nightly-0.11.7.dev20250910104051.dist-info → letta_nightly-0.11.7.dev20250912104045.dist-info}/licenses/LICENSE +0 -0
letta/utils.py CHANGED
@@ -39,6 +39,7 @@ from letta.constants import (
39
39
  )
40
40
  from letta.helpers.json_helpers import json_dumps, json_loads
41
41
  from letta.log import get_logger
42
+ from letta.otel.tracing import log_attributes, trace_method
42
43
  from letta.schemas.openai.chat_completion_response import ChatCompletionResponse
43
44
 
44
45
  logger = get_logger(__name__)
@@ -1093,14 +1094,68 @@ def make_key(*args, **kwargs):
1093
1094
  return str((args, tuple(sorted(kwargs.items()))))
1094
1095
 
1095
1096
 
1096
- def safe_create_task(coro, logger: Logger, label: str = "background task"):
1097
+ # Global set to keep strong references to background tasks
1098
+ _background_tasks: set = set()
1099
+
1100
+
1101
+ def get_background_task_count() -> int:
1102
+ """Get the current number of background tasks for debugging/monitoring."""
1103
+ return len(_background_tasks)
1104
+
1105
+
1106
+ @trace_method
1107
+ def safe_create_task(coro, label: str = "background task"):
1097
1108
  async def wrapper():
1098
1109
  try:
1099
1110
  await coro
1100
1111
  except Exception as e:
1101
1112
  logger.exception(f"{label} failed with {type(e).__name__}: {e}")
1102
1113
 
1103
- return asyncio.create_task(wrapper())
1114
+ task = asyncio.create_task(wrapper())
1115
+
1116
+ # Add task to the set to maintain strong reference
1117
+ _background_tasks.add(task)
1118
+
1119
+ # Log task count to trace
1120
+ log_attributes({"total_background_task_count": get_background_task_count()})
1121
+
1122
+ # Remove task from set when done to prevent memory leaks
1123
+ task.add_done_callback(_background_tasks.discard)
1124
+
1125
+ return task
1126
+
1127
+
1128
+ def safe_create_shielded_task(coro, label: str = "shielded background task"):
1129
+ """
1130
+ Create a shielded background task that cannot be cancelled externally.
1131
+
1132
+ This is useful for critical operations that must complete even if the
1133
+ parent operation is cancelled. The task is internally shielded but the
1134
+ returned task can still have callbacks added to it.
1135
+ """
1136
+
1137
+ async def shielded_wrapper():
1138
+ try:
1139
+ # Shield the original coroutine to prevent cancellation
1140
+ result = await asyncio.shield(coro)
1141
+ return result
1142
+ except Exception as e:
1143
+ logger.exception(f"{label} failed with {type(e).__name__}: {e}")
1144
+ raise
1145
+
1146
+ # Create the task with the shielded wrapper
1147
+ task = asyncio.create_task(shielded_wrapper())
1148
+
1149
+ # Add task to the set to maintain strong reference
1150
+ _background_tasks.add(task)
1151
+
1152
+ # Log task count to trace
1153
+ log_attributes({"total_background_task_count": get_background_task_count()})
1154
+
1155
+ # Remove task from set when done to prevent memory leaks
1156
+ task.add_done_callback(_background_tasks.discard)
1157
+
1158
+ return task
1104
1159
 
1105
1160
 
1106
1161
  def safe_create_file_processing_task(coro, file_metadata, server, actor, logger: Logger, label: str = "file processing task"):
@@ -1137,7 +1192,15 @@ def safe_create_file_processing_task(coro, file_metadata, server, actor, logger:
1137
1192
  except Exception as update_error:
1138
1193
  logger.error(f"Failed to update file status to ERROR for {file_metadata.id}: {update_error}")
1139
1194
 
1140
- return asyncio.create_task(wrapper())
1195
+ task = asyncio.create_task(wrapper())
1196
+
1197
+ # Add task to the set to maintain strong reference
1198
+ _background_tasks.add(task)
1199
+
1200
+ # Remove task from set when done to prevent memory leaks
1201
+ task.add_done_callback(_background_tasks.discard)
1202
+
1203
+ return task
1141
1204
 
1142
1205
 
1143
1206
  class CancellationSignal:
@@ -1289,6 +1352,12 @@ def fire_and_forget(coro, task_name: Optional[str] = None, error_callback: Optio
1289
1352
 
1290
1353
  task = asyncio.create_task(coro)
1291
1354
 
1355
+ # Add task to the set to maintain strong reference
1356
+ _background_tasks.add(task)
1357
+
1358
+ # Remove task from set when done to prevent memory leaks
1359
+ task.add_done_callback(_background_tasks.discard)
1360
+
1292
1361
  def callback(t):
1293
1362
  try:
1294
1363
  t.result() # this re-raises exceptions from the task
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: letta-nightly
3
- Version: 0.11.7.dev20250910104051
3
+ Version: 0.11.7.dev20250912104045
4
4
  Summary: Create LLM agents with long-term memory and custom tools
5
5
  Author-email: Letta Team <contact@letta.com>
6
6
  License: Apache License
@@ -84,7 +84,7 @@ Requires-Dist: magika>=0.6.2; extra == 'desktop'
84
84
  Requires-Dist: pgvector>=0.2.3; extra == 'desktop'
85
85
  Requires-Dist: sqlite-vec>=0.1.7a2; extra == 'desktop'
86
86
  Requires-Dist: tiktoken>=0.11.0; extra == 'desktop'
87
- Requires-Dist: uvicorn>=0.24.0.post1; extra == 'desktop'
87
+ Requires-Dist: uvicorn==0.29.0; extra == 'desktop'
88
88
  Requires-Dist: websockets; extra == 'desktop'
89
89
  Requires-Dist: wikipedia>=1.4.0; extra == 'desktop'
90
90
  Provides-Extra: dev
@@ -125,7 +125,7 @@ Provides-Extra: redis
125
125
  Requires-Dist: redis>=6.2.0; extra == 'redis'
126
126
  Provides-Extra: server
127
127
  Requires-Dist: fastapi>=0.115.6; extra == 'server'
128
- Requires-Dist: uvicorn>=0.24.0.post1; extra == 'server'
128
+ Requires-Dist: uvicorn==0.29.0; extra == 'server'
129
129
  Requires-Dist: websockets; extra == 'server'
130
130
  Provides-Extra: sqlite
131
131
  Requires-Dist: aiosqlite>=0.21.0; extra == 'sqlite'
@@ -11,13 +11,14 @@ letta/memory.py,sha256=l5iNhLAR_xzgTb0GBlQx4SVgH8kuZh8siJdC_CFPKEs,4278
11
11
  letta/pytest.ini,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  letta/settings.py,sha256=QEjNUwRXGBgsQpQAs2kksQmGN5CbxKlxPPydrklx_Ms,15011
13
13
  letta/streaming_interface.py,sha256=rPMfwUcjqITWk2tVqFQm1hmP99tU2IOHg9gU2dgPSo8,16400
14
- letta/streaming_utils.py,sha256=g6QPibjT5kwnJ55IwLb7mBQ9EYp61aBWgYeV_IUuTr8,12009
14
+ letta/streaming_utils.py,sha256=_UhLa0EtUkd6WL_oBYIU65tDcJ9jf3uWEHuzfQ4HCa8,13769
15
15
  letta/system.py,sha256=kHF7n3Viq7gV5UIUEXixod2gWa2jroUgztpEzMC1Sew,8925
16
- letta/utils.py,sha256=VdDPyWUlyjFSMI-Mmz1oXM8KaXJpMLAn5OshfWVWbAI,41101
16
+ letta/utils.py,sha256=bSq3St7MUw9gN1g0ICdOhNNaUFYBC3EfJLG6qsRLSFA,43290
17
17
  letta/adapters/letta_llm_adapter.py,sha256=11wkOkEQfPXUuJoJxbK22wCa-8gnWiDAb3UOXOxLt5U,3427
18
- letta/adapters/letta_llm_request_adapter.py,sha256=gYQmM8elvwZohyih5L7aOgMz36wNyVN6Eaph4V5RHf0,4749
19
- letta/adapters/letta_llm_stream_adapter.py,sha256=GZhRoJyEwiaQ1JwAhq70ZTaZKFTASp_80QIIzVxk8HE,7548
18
+ letta/adapters/letta_llm_request_adapter.py,sha256=wJhK5M_qOhRPAhgMmYI7EJcM8Op19tClnXe0kJ29a3Q,4831
19
+ letta/adapters/letta_llm_stream_adapter.py,sha256=Q6nFr8uKc1DyAHHiHxHGNmqhRIScEKXO3TwsBgqW5QI,7630
20
20
  letta/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ letta/agents/agent_loop.py,sha256=cTSlGt1g9aZWG5vIMYtzdeJG1UcrqfjpLGmZU6j89zU,854
21
22
  letta/agents/base_agent.py,sha256=rUAcPxWmTnmi50AWOXwrWc-v5sPIod0W_xXaPQShjcE,8540
22
23
  letta/agents/base_agent_v2.py,sha256=t7XtUv3RZNvKwk1uqmSKxAV_2ZGSXYektlzyhXB3N-M,2558
23
24
  letta/agents/ephemeral_agent.py,sha256=el-SUF_16vv_7OouIR-6z0pAE9Yc0PLibygvfCKwqfo,2736
@@ -26,7 +27,7 @@ letta/agents/exceptions.py,sha256=BQY4D4w32OYHM63CM19ko7dPwZiAzUs3NbKvzmCTcJg,31
26
27
  letta/agents/helpers.py,sha256=eCHsvZEkTe0L_uZHYkfNAztsEJW0FTnKZMgVbqlI0Yg,11618
27
28
  letta/agents/letta_agent.py,sha256=6nRTh5kzUpqK7eNMk4DlcgEoPmDxFmRb5ysoVHa-vh8,99488
28
29
  letta/agents/letta_agent_batch.py,sha256=17RpYVXpGh9dlKxdMOLMCOHWFsi6N5S9FJHxooxkJCI,27998
29
- letta/agents/letta_agent_v2.py,sha256=tmaxcUhnLz2V5h75s88KADZZR6tAIQI19j6ROhF7Xbo,58179
30
+ letta/agents/letta_agent_v2.py,sha256=Xs54mewx9SgHHFAz8uLJ_6OHv9RHU1PtkwAB_Pu0XMk,58992
30
31
  letta/agents/voice_agent.py,sha256=y-n6qadfKsswvGODzXH02pLIQQ44wnaDSE6oUgKHVkA,23381
31
32
  letta/agents/voice_sleeptime_agent.py,sha256=_JzCbWBOKrmo1cTaqZFTrQudpJEapwAyrXYtAHUILGo,8675
32
33
  letta/cli/cli.py,sha256=tKtghlX36Rp0_HbkMosvlAapL07JXhA0vKLGTNKnxSQ,1615
@@ -43,7 +44,7 @@ letta/functions/ast_parsers.py,sha256=0dXAN4qx3pWL_Y0aoEkaBpMKwI-kpoLEJftjW3v2I4
43
44
  letta/functions/async_composio_toolset.py,sha256=IuhZTVghPDXRsehOOZsEEiJGYyjWjDTQc2xrjTg0yBo,4786
44
45
  letta/functions/composio_helpers.py,sha256=mpybCYcB93HWoKrmQIqcuRQG9IH2lHWhsPQx2i8XP_8,3593
45
46
  letta/functions/functions.py,sha256=bSYEcUPzbKXx6IztZkE1o7O7zuhFgbLzKSG5SuP8JVk,16009
46
- letta/functions/helpers.py,sha256=-NeFjYNhKm_qAwZaxZsVr65Pi3PNvcNKwO1IykKIgtc,25155
47
+ letta/functions/helpers.py,sha256=KALhhEBbFND1Ft5WWcCDvtWx-jvE26QQfppOR0pF8p4,25273
47
48
  letta/functions/interface.py,sha256=pN1gpDnLISW44gRcic1IX6I6pDwOT9UbkST_4ICuMvQ,2936
48
49
  letta/functions/prompts.py,sha256=jNl83xjNpoSs8KzGtuc6jzN8jp_T4BC_5f4FMJ88_K0,1145
49
50
  letta/functions/schema_generator.py,sha256=EgHC3UHRNF4FG7CKWNIxajUyryLo5UIZB2KJP9MrKMg,30903
@@ -62,8 +63,8 @@ letta/groups/dynamic_multi_agent.py,sha256=-IugnQJTxe4FOTKd0UX3lbSKVcD-S0noZDjwo
62
63
  letta/groups/helpers.py,sha256=yAr05Keoz_7vdzPG6A9x5CsWrJjtvF8A0GSQWDe29UM,4660
63
64
  letta/groups/round_robin_multi_agent.py,sha256=uUJff0bO68udOREiKFWeS7eEQlk3bF7hcfLSFXMScqI,6999
64
65
  letta/groups/sleeptime_multi_agent.py,sha256=MCmgLyJubzgst_FaPOCR8BfDmss4MCGEdvnZOLXD8z8,10461
65
- letta/groups/sleeptime_multi_agent_v2.py,sha256=yT7MHhrjec7QZ1_9goo1L1c2V3W7mkkcz4BxpxC7i8I,13733
66
- letta/groups/sleeptime_multi_agent_v3.py,sha256=9R2aBSu_-dDPtb5gKddzCBEUKjtDlPKbSggu03qCYrE,9128
66
+ letta/groups/sleeptime_multi_agent_v2.py,sha256=t2Ef-066RxB6DksRXcRO5tMCWaLi0ovkjCoq5RVPayE,13838
67
+ letta/groups/sleeptime_multi_agent_v3.py,sha256=KjeHsuXNZup3FIw2CaqBuLo21j1nzI2fAcNyRPUYjHU,9233
67
68
  letta/groups/supervisor_multi_agent.py,sha256=IWe5sNg6JoTaXwsN_8T9aiGHnFpJc7UVnlC3ly2rlBU,4459
68
69
  letta/helpers/__init__.py,sha256=p0luQ1Oe3Skc6sH4O58aHHA3Qbkyjifpuq0DZ1GAY0U,59
69
70
  letta/helpers/composio_helpers.py,sha256=X3RaJSqa8z-oXmHJjJjAs1fJroZ5A8yu4-Yg2oDiTdA,1712
@@ -77,14 +78,14 @@ letta/helpers/reasoning_helper.py,sha256=8P5AJo-UFsYhZC3yNx4N-pIkVUsjfz7ZPmydsVK
77
78
  letta/helpers/singleton.py,sha256=Y4dG_ZBCcrogvl9iZ69bSLq-QltrdP8wHqKkhef8OBI,370
78
79
  letta/helpers/tool_execution_helper.py,sha256=Oz9xNDrSFUIrYhEhLaw8yoXdHbfijuxwtS1tJv-lH2A,5149
79
80
  letta/helpers/tool_rule_solver.py,sha256=dd5gvj67_8FgXrC0_Px5TWXE8A9CMFvH_E26idPrkKY,9848
80
- letta/helpers/tpuf_client.py,sha256=dZuR5ZZqWOUYwXS4aX5YDEkw1Wf3zo_r5hpL8x7xFig,60993
81
+ letta/helpers/tpuf_client.py,sha256=7x6dP7MeHfINs_aVxQAmEXYYM3bJcw3fiyrJYG1ZpAk,62211
81
82
  letta/humans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
83
  letta/humans/examples/basic.txt,sha256=Lcp8YESTWvOJgO4Yf_yyQmgo5bKakeB1nIVrwEGG6PA,17
83
84
  letta/humans/examples/cs_phd.txt,sha256=9C9ZAV_VuG7GB31ksy3-_NAyk8rjE6YtVOkhp08k1xw,297
84
85
  letta/interfaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
- letta/interfaces/anthropic_streaming_interface.py,sha256=rsrznVkNl8Ov06RE2QTAcY-pkWwGll76jyz2-VO40uI,25378
86
+ letta/interfaces/anthropic_streaming_interface.py,sha256=0VyK8kTRgCLNDLQN6vX1gJ0dfJhqguL_NL1GYgFr6fU,25614
86
87
  letta/interfaces/openai_chat_completions_streaming_interface.py,sha256=3xHXh8cW79EkiMUTYfvcH_s92nkLjxXfvtVOVC3bfLo,5050
87
- letta/interfaces/openai_streaming_interface.py,sha256=m2QeZo4w5lclwTypqAcHOJ4disaHqwb9yeqQaukfesA,28157
88
+ letta/interfaces/openai_streaming_interface.py,sha256=t_TKcZSH0Bv_ajOh2mTd4RetrCr-rahkjmGIZIIGDXQ,23593
88
89
  letta/interfaces/utils.py,sha256=c6jvO0dBYHh8DQnlN-B0qeNC64d3CSunhfqlFA4pJTY,278
89
90
  letta/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
91
  letta/jobs/helpers.py,sha256=kO4aj954xsQ1RAmkjY6LQQ7JEIGuhaxB1e9pzrYKHAY,914
@@ -98,7 +99,7 @@ letta/llm_api/bedrock_client.py,sha256=gNKSFGCbrrLMPvtBItAOz1nme4K_opgkZdFa3cUzp
98
99
  letta/llm_api/deepseek_client.py,sha256=di6ApSQu1DewXw0_JIP7AK4IHvXQHd0e32tQfFf5F34,16975
99
100
  letta/llm_api/google_ai_client.py,sha256=JweTUHZXvK6kcZBGXA7XEU53KP4vM7_zdD7AorCtsdI,8166
100
101
  letta/llm_api/google_constants.py,sha256=eOjOv-FImyJ4b4QGIaod-mEROMtrBFz0yhuYHqOEkwY,797
101
- letta/llm_api/google_vertex_client.py,sha256=3bM3O1XwZJfE2t2Vzoa51_xhiVwOTDCyB00S_rFNdaY,28670
102
+ letta/llm_api/google_vertex_client.py,sha256=57qrBe5dY-ERB9xI9_tWRwW_uSxGbHqR02mvnWmCLGY,28910
102
103
  letta/llm_api/groq_client.py,sha256=nNeWSgDVOLn3iFiicDKyhHj7f73JxrB9-7_M2Pv2e1I,3192
103
104
  letta/llm_api/helpers.py,sha256=GXV_SuaU7uSCDj6bxDcCCF7CUjuZQCVWd5qZ3OsHVNk,17587
104
105
  letta/llm_api/llm_api_tools.py,sha256=lsZ6OeIHesyOfbNQi5CVw5hn1lTQP5gJyforp-D0nk8,12294
@@ -106,7 +107,7 @@ letta/llm_api/llm_client.py,sha256=iXiPbrhluP2DBczv9nkFlAXdwWGOkg0lNDA9LzLrG4o,3
106
107
  letta/llm_api/llm_client_base.py,sha256=RFo8H4ILxVyzB3DeF4rJoJJYjRF8ScVO4yyDrhuN0DY,10052
107
108
  letta/llm_api/mistral.py,sha256=ruOTBt07Uzx7S30_eXhedVWngtpjtlzG6Ox1Iw0_mQs,662
108
109
  letta/llm_api/openai.py,sha256=56cwdS9l-75cMTtY9df6Dbb1M9crH8YQsSdF3Pm3Rpg,27393
109
- letta/llm_api/openai_client.py,sha256=rnWMspbJ7ZcpFPhIJDBNACRJPk_Y3v8DtRzSMbl76ZU,22396
110
+ letta/llm_api/openai_client.py,sha256=Ww68D103uQolsALOzfPD5-CTuEaIFBbkdnrtMBIaZlc,22475
110
111
  letta/llm_api/together_client.py,sha256=HeDMDDa525yfDTKciODDfX_t93QBfFmX0n2P-FT1QTU,2284
111
112
  letta/llm_api/xai_client.py,sha256=3mpSQ9OoWyjqo2VhNM_m0EPBzS69r4p-OEwL7UWc9oY,3772
112
113
  letta/llm_api/sample_response_jsons/aws_bedrock.json,sha256=RS3VqyxPB9hQQCPm42hWoga0bisKv_0e8ZF-c3Ag1FA,930
@@ -152,14 +153,14 @@ letta/local_llm/webui/settings.py,sha256=gmLHfiOl1u4JmlAZU2d2O8YKF9lafdakyjwR_ft
152
153
  letta/openai_backcompat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
153
154
  letta/openai_backcompat/openai_object.py,sha256=GSzeCTwLpLD2fH4X8wVqzwdmoTjKK2I4PnriBY453lc,13505
154
155
  letta/orm/__init__.py,sha256=CNDfeCRle9h5EnqFMXadlUCFN0AtlPihMrlAjt9Ikv0,1637
155
- letta/orm/agent.py,sha256=9N8eDhyIxPfMhylSrmjedUoYa5yF1JGNxr-Q5TyRPPc,17147
156
+ letta/orm/agent.py,sha256=MF4MvWEP9-51ynhgct_B7zvr6ikkUnjXHDhLj_FFpaA,17224
156
157
  letta/orm/agents_tags.py,sha256=-rWR8DoEiHM4yc9vAHgHuvjIwgMXMWzKnTKFlBBu3TQ,1076
157
158
  letta/orm/archive.py,sha256=82engq9ZfNrp1yu8QS5df4vsIwQC33CADZA-05doNko,3920
158
159
  letta/orm/archives_agents.py,sha256=hIhaIRQPuNv-etQVWnIQhEomiumLC1OWR-T_s0Y7snM,1273
159
160
  letta/orm/base.py,sha256=7XoaeFP-EbypTaEZqALTIOXyW1PqI2bJOKT85FWoRGU,3044
160
- letta/orm/block.py,sha256=ZqgE_qqGtFjSc1nCo13_0nrgxfcDfPev0cODajGcCDA,6059
161
+ letta/orm/block.py,sha256=arPKI9vNrDtl3fJQgOTIWjqYjj1V-WuMK6NDTSBHNcc,6101
161
162
  letta/orm/block_history.py,sha256=XLbdTkc9Ga_W5oolzRPRxry7x5rS-PHqW11MKpBxyrA,2109
162
- letta/orm/blocks_agents.py,sha256=NttkDNp6-sZ-uDkRzowibXkUmuMZ0YX8F3f17oszSTg,1128
163
+ letta/orm/blocks_agents.py,sha256=b5PWmA4CrDJvMMcTVVdt7tWIFFWPK6XhMna_2SUTCjg,1184
163
164
  letta/orm/custom_columns.py,sha256=gVq4opV0sIuThphX7z3QdyF8RKbcxUO6IHX2J4al27U,5585
164
165
  letta/orm/errors.py,sha256=Se0Guz-gqi-D36NUWSh7AP9zTVCSph9KgZh_trwng4o,734
165
166
  letta/orm/file.py,sha256=LynuEajZM7QeO4Y_J84iAB9dqXHPCY-xTur0q022n48,5298
@@ -170,7 +171,7 @@ letta/orm/groups_blocks.py,sha256=ou18XqI9tkb0fcecUd4eHTVmmndGuby1DIdmHM5lHF4,48
170
171
  letta/orm/identities_agents.py,sha256=cfIQ6UsbwmjxtGVmFt1ArK2zbKr9k6VWoELuISDnLSc,502
171
172
  letta/orm/identities_blocks.py,sha256=oS0DnDXKzcWtlH2dDFREkNF1JHJ3Kyg8fN9GI8DKtcg,501
172
173
  letta/orm/identity.py,sha256=NRgC6ArQZCrs3LYhGHoBMHNJzi_uoYFvJAr0HoRhqLg,2924
173
- letta/orm/job.py,sha256=kTRnIWBjfwt0fSKmu3XPC1sPpjVukWJx672PRhJrQG0,3019
174
+ letta/orm/job.py,sha256=nlDw6Y7zT96jFW-OOjf-vY66Py7S6_3jTRmhOmNnIUw,3357
174
175
  letta/orm/job_messages.py,sha256=SgwaYPYwwAC3dBtl9Xye_TWUl9H_-m95S95TTcfPyOg,1245
175
176
  letta/orm/llm_batch_items.py,sha256=LZI9vjOrswiGXPVLvLOT5uObDtyTXX1p7yljSiiMH7g,2725
176
177
  letta/orm/llm_batch_job.py,sha256=LaeOrnNf6FMm6ff2kOCEAjtbSuz4C5KYU5OmM90F1PY,2368
@@ -178,7 +179,7 @@ letta/orm/mcp_oauth.py,sha256=lr0XIcj9zwQpWlqQHIWAaT73YnunsrkEnLzBLP-8L2k,3095
178
179
  letta/orm/mcp_server.py,sha256=PT3Edqn0Er1ZDExsXdjhC--iGL4Vi3XjPPgxNfbNRDA,2155
179
180
  letta/orm/message.py,sha256=sGMH7XJRErtIEngFV08b9A_zk5veyLkpQsU3zKN0AhM,9335
180
181
  letta/orm/mixins.py,sha256=moZyS4e9gXGULKNsOqQuZrBn55IlrFF7MQOAVl68Aq0,2688
181
- letta/orm/organization.py,sha256=g7d4rFMdVM3r7TwHnx_uSCKLoOw5kXzAgKd2bPr7S6U,4058
182
+ letta/orm/organization.py,sha256=wZ3yvPa6Vy-c_74S_XGjzjWND1oR7U7xzrdrdipZM8A,4205
182
183
  letta/orm/passage.py,sha256=qjBZdyZV05ZGe6Dprn4GIwdc3wjYRuchZO2Ja9I9bT4,4404
183
184
  letta/orm/passage_tag.py,sha256=TtT00DjXh9n0BshehBBcTjo3lnR1d-wNBi-ePJTZ_0M,2121
184
185
  letta/orm/prompt.py,sha256=NpFPTm3jD8Aewxhlnq8s4eIzANJ3bAEtbq6UmFqyc3U,489
@@ -186,13 +187,13 @@ letta/orm/provider.py,sha256=DYh-rvK0Bwl540hS902zK02mTiK5YJNmxD2GgBhgbpc,1656
186
187
  letta/orm/provider_trace.py,sha256=CJMGz-rLqagJ-yXh9SJRbiGr5nAYdxY524hmiTgDFx4,1153
187
188
  letta/orm/sandbox_config.py,sha256=XmBfYSQzocewuCGkuXNq4QwBpzfJpygX0dBVag0ELOc,4189
188
189
  letta/orm/source.py,sha256=tRxqjWM8n1LBhlDTIiKhJ82-tpWErTeiDXMFz1rwY4g,1715
189
- letta/orm/sources_agents.py,sha256=Ik_PokCBrXRd9wXWomeNeb8EtLUwjb9VMZ8LWXqpK5A,473
190
+ letta/orm/sources_agents.py,sha256=Fvo8ujDNeeqleiiqXk-0VUPiQDawLAN-d28RxdvWnbs,554
190
191
  letta/orm/sqlalchemy_base.py,sha256=mw_leKRvSskRswfiUTYP3Jk9Q7Io9rQJWyVEUGWyTaw,44900
191
192
  letta/orm/sqlite_functions.py,sha256=tbwePL5XciJIttoehyt1H17zdUXWAdjFqH0t-XaFJfk,7256
192
193
  letta/orm/step.py,sha256=S5G4uPMx74_629Fa1IZAdttTk0BQw-an3Amw6fhw9VA,4495
193
194
  letta/orm/step_metrics.py,sha256=5UDJYyGIYMsidKzBDru5CzJXzA0AycaO_e23xFIvEvE,4391
194
195
  letta/orm/tool.py,sha256=W31LI3zT-2cPg8rWwqdLfIZqhG5dg87_Qeb8TTHKOzw,3055
195
- letta/orm/tools_agents.py,sha256=r6t-V21w2_mG8n38zuUb5jOi_3hRxsjgezsLA4sg0m4,626
196
+ letta/orm/tools_agents.py,sha256=aUvXqoE9VrEBIEbGUVdWtSIt0yEtAVbZScNUVr8PgoM,700
196
197
  letta/orm/user.py,sha256=rK5N5ViDxmesZMqVVHB7FcQNpcSoM-hB42MyI6q3MnI,1004
197
198
  letta/otel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
198
199
  letta/otel/context.py,sha256=GUTxFpWMdCmib1Qy80TpAs0Qb5fNH_m5sCYZ1LN3HmM,789
@@ -275,7 +276,7 @@ letta/schemas/llm_config.py,sha256=8nyi9r3o3feh_hUy6pdRWp3E6M612xZhvV3gkFB4aqE,1
275
276
  letta/schemas/llm_config_overrides.py,sha256=E6qJuVA8TwAAy3VjGitJ5jSQo5PbN-6VPcZOF5qhP9A,1815
276
277
  letta/schemas/mcp.py,sha256=JMz-e2qlttNIgICJHm6Q_Pu908i41060EBQc6MGKIDM,8985
277
278
  letta/schemas/memory.py,sha256=MH5Cha-HtezSWg3W7ij0fBOxvCERnu59h-sE8lyRGH4,15010
278
- letta/schemas/message.py,sha256=8yt1m4fc3vW_ani0Eytovw5pLEvSK_GPaDh8VFvPX78,55336
279
+ letta/schemas/message.py,sha256=zgDFz87xBRnkGFCp4xqpi4CdRysiAOWRRs10Ddlh0ew,55855
279
280
  letta/schemas/npm_requirement.py,sha256=HkvBF7KjHUH-MG-RAEYJHO2MLRS2rxFUcmbpbZVznLk,457
280
281
  letta/schemas/organization.py,sha256=TXrHN4IBQnX-mWvRuCOH57XZSLYCVOY0wWm2_UzDQIA,1279
281
282
  letta/schemas/passage.py,sha256=_bO19zOIQtQ3F3VqDSgIJqh15V0IIrJ_KdlbCt6-4D0,3940
@@ -332,18 +333,18 @@ letta/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
332
333
  letta/server/constants.py,sha256=yAdGbLkzlOU_dLTx0lKDmAnj0ZgRXCEaIcPJWO69eaE,92
333
334
  letta/server/db.py,sha256=AULPiuS0b_EmNsQIS9b0yy3WBTpJv41vqF6Hxq9VXYg,17854
334
335
  letta/server/generate_openapi_schema.sh,sha256=14Q6r0fbNNVVdf4X3Z-H0ZtyrVw5zYLzL5Doom3kM9k,351
335
- letta/server/server.py,sha256=fvIYO5NSMTIYliAIb7XOJiLACuuZ4grPxLH_pUbR6Rw,109160
336
+ letta/server/server.py,sha256=KFFbyl7Djn8CS0aPxz3jL8RwmXPr9nKY3wDu3ymUWjI,109265
336
337
  letta/server/startup.sh,sha256=z-Fea-7LiuS_aG1tJqS8JAsDQaamwC_kuDhv9D3PPPY,2698
337
338
  letta/server/utils.py,sha256=rRvW6L1lzau4u9boamiyZH54lf5tQ91ypXzUW9cfSPA,1667
338
339
  letta/server/rest_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
339
340
  letta/server/rest_api/app.py,sha256=W3lCWe2iGumNIAyuDyH2sNO1EwGKqh7iSo82NXCXrVw,19270
340
341
  letta/server/rest_api/auth_token.py,sha256=725EFEIiNj4dh70hrSd94UysmFD8vcJLrTRfNHkzxDo,774
341
342
  letta/server/rest_api/chat_completions_interface.py,sha256=-7wO7pNBWXMqblVkJpuZ8JPJ-LjudLTtT6BJu-q_XAM,11138
342
- letta/server/rest_api/interface.py,sha256=CSPxpSjffLwoAJawxJ9zvSypLM2iEUSDQYXs5hd_36U,68911
343
- letta/server/rest_api/json_parser.py,sha256=K3dEbXXEo6SRdy-_x-rYZp0cHlZXuADiWgFjgh0j2qA,9086
344
- letta/server/rest_api/redis_stream_manager.py,sha256=d-4ZbMYXn6v5nlPptaG3946xQ1QTQfvNFTeBFB43S7E,10111
343
+ letta/server/rest_api/interface.py,sha256=X5NZ8oerDcipG9y1AfD92zJ_2TgVMO4eJ42RP82GFF8,70952
344
+ letta/server/rest_api/json_parser.py,sha256=yoakaCkSMdf0Y_pyILoFKZlvzXeqF-E1KNeHzatLMDc,9157
345
+ letta/server/rest_api/redis_stream_manager.py,sha256=hz85CigFWdLkK1FWUmF-i6ObgoKkuoEgkiwshZ6QPKI,10764
345
346
  letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
346
- letta/server/rest_api/streaming_response.py,sha256=j1OZuLGRelrt7ChkqOxdjPKdnolG09CiPrdd7D5YL40,14397
347
+ letta/server/rest_api/streaming_response.py,sha256=wfhby6skucjGtw9d9pcfa856lI1r6JKaosCYbutKD2k,14458
347
348
  letta/server/rest_api/utils.py,sha256=IT3RnZJWNIaTdFEEyveZb47o9PIzDT_2pIgpPBVN7iU,19326
348
349
  letta/server/rest_api/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
349
350
  letta/server/rest_api/auth/index.py,sha256=oaWNZREyuTyldHBx0vQYlqtePruL21H1atZj_TO_nyg,1377
@@ -352,12 +353,12 @@ letta/server/rest_api/middleware/check_password.py,sha256=LKR_rlhzZ-93o0FpkwDn8v
352
353
  letta/server/rest_api/middleware/profiler_context.py,sha256=MbOFOXhkOCuq6vlOiv0DGgmlLVKxC-9tRZ0OTOn_0GA,859
353
354
  letta/server/rest_api/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
354
355
  letta/server/rest_api/routers/openai/chat_completions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
355
- letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=QBWab1fn2LXVDMtc6li3gOzmrNzDiUw5WUJsMeeMZII,5076
356
+ letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=ohM1i8BsNxTiw8duuRT5X_0tSUzBwctQM4fJ5DXURic,5157
356
357
  letta/server/rest_api/routers/v1/__init__.py,sha256=9MnEA7CgtIxyU_dDNG0jm-Ziqu1somBml-e5gKjgd9I,1997
357
- letta/server/rest_api/routers/v1/agents.py,sha256=8GVSCv4pXr2cTyf3_l2LTvrdmRAUWEanXt6gYM0Jgpo,81902
358
+ letta/server/rest_api/routers/v1/agents.py,sha256=2eo7EDXTpybTPfOvgEGhm81LenIJcXNxv-bf5CcqjkU,75673
358
359
  letta/server/rest_api/routers/v1/blocks.py,sha256=ykI77xnmIxPLqdAy5kzGyGw0w0ZRyVXn-O5Xcdj6-70,7690
359
360
  letta/server/rest_api/routers/v1/embeddings.py,sha256=PRaQlrmEXPiIdWsTbadrFsv3Afyv5oEFUdhgHA8FTi8,989
360
- letta/server/rest_api/routers/v1/folders.py,sha256=x2sc1p73Wgebq_QONbFStRgoJnD-htsZIzPrwAptRIM,23519
361
+ letta/server/rest_api/routers/v1/folders.py,sha256=8Yb-bw2JdXBxMfrJNIZQk9_FKN2fet9Ccp8T83_c2sc,23539
361
362
  letta/server/rest_api/routers/v1/groups.py,sha256=PlCKfG1ZUubg-bNVRBmqJNBMvvZtHDvT50LUKKd0w9I,11466
362
363
  letta/server/rest_api/routers/v1/health.py,sha256=MoOjkydhGcJXTiuJrKIB0etVXiRMdTa51S8RQ8-50DQ,399
363
364
  letta/server/rest_api/routers/v1/identities.py,sha256=KUfw6avQIVHNw2lWz4pXOyTOPVy1g19CJGG-zayORl8,7858
@@ -369,11 +370,11 @@ letta/server/rest_api/routers/v1/organizations.py,sha256=OnG2vMDZEmN4eEvj24CPwiV
369
370
  letta/server/rest_api/routers/v1/providers.py,sha256=rypNWQ1VMjmZJYd48uvNGJsE2N22jDTxn89qvbDaOMs,4765
370
371
  letta/server/rest_api/routers/v1/runs.py,sha256=WnYwoFNjHNZicTnCkvoXCxl0XiyVAEvF70TTaMCBhPw,12982
371
372
  letta/server/rest_api/routers/v1/sandbox_configs.py,sha256=f0xEOwR3PXqCS2HOjEv7UKfMWTwEaTHx105HW_X-LI4,8852
372
- letta/server/rest_api/routers/v1/sources.py,sha256=2Tsk74QkN_r78R_wqt7ZYG-9SyZUTUnKXQAgD492xRc,22659
373
+ letta/server/rest_api/routers/v1/sources.py,sha256=nXZxtHi40281VltWmx1RwGBbau_00UpzDS6teTLvt2w,22679
373
374
  letta/server/rest_api/routers/v1/steps.py,sha256=bTzfz1GR3VEZdJRYUGiSr6ZLd12i5faPsf3oAqu1eMk,5570
374
375
  letta/server/rest_api/routers/v1/tags.py,sha256=ef94QitUSJ3NQVffWF1ZqANUZ2b2jRyGHp_I3UUjhno,912
375
376
  letta/server/rest_api/routers/v1/telemetry.py,sha256=eSTg7mWbuwPb2OTHQxwRM0EUEl49wHzNB6i1xJtH8BQ,1036
376
- letta/server/rest_api/routers/v1/tools.py,sha256=aYp__U2PgTCpL3eypYUJ6V5C4iQA6LeFBHTSo8w-WOg,51890
377
+ letta/server/rest_api/routers/v1/tools.py,sha256=UMtJj3bX8fVe0VuuU5JS0TeaFimEzZ4YRyphSO2tQMU,51085
377
378
  letta/server/rest_api/routers/v1/users.py,sha256=J1vaTbS1UrBMgnPya7GdZ2wr3L9XHmkm6qdGY6pWaOI,2366
378
379
  letta/server/rest_api/routers/v1/voice.py,sha256=ghMBp5Uovbf0-3nN6d9P5kpl1hHACLRMhIDGQp96G9Q,1986
379
380
  letta/server/static_files/favicon.ico,sha256=DezhLdFSbM8o81wCOZcV3riq7tFUOGQD4h6-vr-HuU0,342
@@ -389,16 +390,16 @@ letta/server/ws_api/server.py,sha256=_16TQafm509rqRztZYqo0HKKZoe8ccBrNftd_kbIJTE
389
390
  letta/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
390
391
  letta/services/agent_file_manager.py,sha256=bgYTyQA90Iqo3W-LprPtyyOKf2itoqivcRhh4EOUXss,30847
391
392
  letta/services/agent_manager.py,sha256=KaJRTWwvA1SpfKQFPPVCeYxIOKwpKmLMioeyHuGw63Y,168884
392
- letta/services/agent_serialization_manager.py,sha256=QMfxh3n3hLrxJdCojcwbVOequ9nyk1b7RL9UFJS__jo,46295
393
+ letta/services/agent_serialization_manager.py,sha256=lWXTzYItqVxJMyy9ZYlcCDQwC3ZKk9XPCHvBkoVuszA,46388
393
394
  letta/services/archive_manager.py,sha256=P10BjZ2PxLoIkCwJ8rx7qLzchNVBsqNG3_KzxTanCLQ,14060
394
395
  letta/services/block_manager.py,sha256=mohj12QqHenSBbBx0Xmry1Rw25Gy5DSljOITzAwqMtw,33683
395
396
  letta/services/file_manager.py,sha256=d4uX8RblmqNGk1MsfeGzQ5uDWKVFP-AH63Jz5xOkj2c,31364
396
397
  letta/services/files_agents_manager.py,sha256=QJrJTgDn3RXUjZIGiIw4GQ5k2iKj-Wvzs-WQetpQ154,30059
397
398
  letta/services/group_manager.py,sha256=dD4DDHjOptMrtbWqw1ErlhpBqChw2ubLJdILjeLTY8I,29183
398
399
  letta/services/identity_manager.py,sha256=JI9Xc7EsBagSwDS2na4rFNhoO_LuaxlkVO_1oIK_ITQ,11841
399
- letta/services/job_manager.py,sha256=31AKBwQWkjOFH2n4Cx3KCv1g_n499C_1VRIVviUGsLI,35312
400
+ letta/services/job_manager.py,sha256=nDrnr_r8ELwf8KMKyRRrWHsysrTGldgCTplJdaSiNiQ,35543
400
401
  letta/services/llm_batch_manager.py,sha256=iDzLFfmgpQooGY4zpN_w8q1SZ27fr2Cv6Ks3ltZErL8,20929
401
- letta/services/mcp_manager.py,sha256=__q2rQB_VsLKVeSUT3_XDonHvJfXmop9AAKfPV0AO6w,45035
402
+ letta/services/mcp_manager.py,sha256=QuvKQnwxMXrhiCaYlF50GZwXmbSU7PxmcOZ85sQ3t7I,47848
402
403
  letta/services/message_manager.py,sha256=tomsZidPT-I95sJsEsls-vj3qglehV7XNTs-m2zF8Bg,60629
403
404
  letta/services/organization_manager.py,sha256=JMW5oS_sr6vQQ27OgRV3BR1JL0MqyoGUDcpEOs3SLRY,5800
404
405
  letta/services/passage_manager.py,sha256=kOQjlJFz7Dy6e0NEECoFHhcH8hPIMNeEHxZ1JJ-R2Cs,52372
@@ -441,14 +442,14 @@ letta/services/mcp/streamable_http_client.py,sha256=d-5wmrZ7MjLTFbaAUAITEC699TBz
441
442
  letta/services/mcp/types.py,sha256=8LYlBwWvdbvfy6ZdXJoin-7QmgmJC7samYXjQZL4KZs,1662
442
443
  letta/services/summarizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
443
444
  letta/services/summarizer/enums.py,sha256=lo2E1DKB-s2Ydx4PcLia1PIRUOY5yTSsFt_0EZVV2r0,279
444
- letta/services/summarizer/summarizer.py,sha256=BzosRSrAnP1tnrN-utx0TN806uphif2mrWDHMs7LfX4,18903
445
+ letta/services/summarizer/summarizer.py,sha256=hRGkiPvcX3u5PSOxCrbwL4G1RCSlFaHAaB5FObZCuSY,18977
445
446
  letta/services/tool_executor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
446
447
  letta/services/tool_executor/builtin_tool_executor.py,sha256=QKPFXbgzYQobqWRuFs9RhVcQ1d53q8-yV_GFdR2IX88,9718
447
448
  letta/services/tool_executor/composio_tool_executor.py,sha256=ia2AA_WDOseR8Ylam-HEayR7OiyfNSb1sSUrjwqlmFM,2308
448
449
  letta/services/tool_executor/core_tool_executor.py,sha256=bd9x0M9Ttj3FqoIUU66k2FHa2PVY0OlUHqs1aLZYxFI,22624
449
- letta/services/tool_executor/files_tool_executor.py,sha256=HyJ2RXYMVOhvKoLAamgMA2YsgQJmu6CcjioXiaGfAn0,37808
450
+ letta/services/tool_executor/files_tool_executor.py,sha256=nlXk0w-t_dLiN7fpUrnBrHGIwWIEmSkcXa7b_YJs2ME,37781
450
451
  letta/services/tool_executor/mcp_tool_executor.py,sha256=2zEXmkKsH-IGbMG2Xw1S9op4eL21g25RA4vGImB29KY,2000
451
- letta/services/tool_executor/multi_agent_tool_executor.py,sha256=h_LVtn-TGFn1febe561D23l2ouvf7PDA4CiSPN7ETfY,5512
452
+ letta/services/tool_executor/multi_agent_tool_executor.py,sha256=LIg9yh8BlfYokP_29WryLZPPSMqEsJUwc0mZGMlhc00,5724
452
453
  letta/services/tool_executor/sandbox_tool_executor.py,sha256=LamEZUVqsiBfBL9S1uQMXFGQOXqJlXK9ZrfpZBk5jsA,6258
453
454
  letta/services/tool_executor/tool_execution_manager.py,sha256=Jz05CfUJAiVngwLV_qAgY8LwSHZGmp7poRcVJxOJPRE,6950
454
455
  letta/services/tool_executor/tool_execution_sandbox.py,sha256=mDK8ZrtC-Fe8MY9gmhONMsjxiiSCJtL4bTrpECKksgQ,25908
@@ -456,12 +457,12 @@ letta/services/tool_executor/tool_executor_base.py,sha256=4b1GU0LZc8iwbM3TisqBVO
456
457
  letta/services/tool_sandbox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
457
458
  letta/services/tool_sandbox/base.py,sha256=afzDoYo-Jw9shnAEzQubIV6H8Q2kJQ_6elWlQUr-sGY,8120
458
459
  letta/services/tool_sandbox/e2b_sandbox.py,sha256=7h7quhbJRV1eIztZPVPgJLYwgHS3ZiaaMvTPrt01F1U,10294
459
- letta/services/tool_sandbox/local_sandbox.py,sha256=DymefshNLr_OqsbBzmxi3cszRTcaOAVgcvTw2OkigFU,11955
460
+ letta/services/tool_sandbox/local_sandbox.py,sha256=4DnzszQ0VRIKo9kejfYyp4UTOQW_NTTfebhjeLtqOIs,11992
460
461
  letta/services/tool_sandbox/modal_constants.py,sha256=AaXPxSlCj2BhfY5DGwQvqHXfikpurhV2iFsN7zxM3Is,454
461
462
  letta/services/tool_sandbox/modal_deployment_manager.py,sha256=rNDcaHSC3ALA8gAgwAnMG-sbz67zqm6Oa8lgSku0Ah0,9157
462
463
  letta/services/tool_sandbox/modal_sandbox.py,sha256=bgzcj1ysGiFanr1pYkiWxWd1YjHv9OkXd32iuwDpRA8,17814
463
464
  letta/services/tool_sandbox/modal_sandbox_v2.py,sha256=8GcGG20lirNU33375SFfhecS6EvGlYojjUGzwU34sQ0,18483
464
- letta/services/tool_sandbox/modal_version_manager.py,sha256=Arcwf8c0SOWVWkSQpmvhJvyIgbpBjHT4K4ZG-m5d-Jk,11401
465
+ letta/services/tool_sandbox/modal_version_manager.py,sha256=Xj1xwAjdHq7IafwaKnhzXkWEjxywsm7OrI396Zfo4G4,11485
465
466
  letta/services/tool_sandbox/safe_pickle.py,sha256=p8NJy3zVj-LrvXj8pwJ-SG8r-VhD86NVGWoboaF3ir4,5964
466
467
  letta/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
467
468
  letta/templates/sandbox_code_file.py.j2,sha256=eXga5J_04Z8-pGdwfOCDjcRnMceIqcF5ii0rUY3lmq4,2270
@@ -469,8 +470,8 @@ letta/templates/sandbox_code_file_async.py.j2,sha256=lb7nh_P2W9VZHzU_9TxSCEMUod7
469
470
  letta/templates/summary_request_text.j2,sha256=ZttQwXonW2lk4pJLYzLK0pmo4EO4EtUUIXjgXKiizuc,842
470
471
  letta/templates/template_helper.py,sha256=HkG3zwRc5NVGmSTQu5PUTpz7LevK43bzXVaQuN8urf0,1634
471
472
  letta/types/__init__.py,sha256=hokKjCVFGEfR7SLMrtZsRsBfsC7yTIbgKPLdGg4K1eY,147
472
- letta_nightly-0.11.7.dev20250910104051.dist-info/METADATA,sha256=fLEDVsUHdCNMkPO6bBilKXO-jDHEjh1_ga57YN2Nric,24436
473
- letta_nightly-0.11.7.dev20250910104051.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
474
- letta_nightly-0.11.7.dev20250910104051.dist-info/entry_points.txt,sha256=m-94Paj-kxiR6Ktu0us0_2qfhn29DzF2oVzqBE6cu8w,41
475
- letta_nightly-0.11.7.dev20250910104051.dist-info/licenses/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
476
- letta_nightly-0.11.7.dev20250910104051.dist-info/RECORD,,
473
+ letta_nightly-0.11.7.dev20250912104045.dist-info/METADATA,sha256=tqJlpOfovWrr9Go7iI1cwIOkAgFx0Qwf7JYX11vg2JI,24424
474
+ letta_nightly-0.11.7.dev20250912104045.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
475
+ letta_nightly-0.11.7.dev20250912104045.dist-info/entry_points.txt,sha256=m-94Paj-kxiR6Ktu0us0_2qfhn29DzF2oVzqBE6cu8w,41
476
+ letta_nightly-0.11.7.dev20250912104045.dist-info/licenses/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
477
+ letta_nightly-0.11.7.dev20250912104045.dist-info/RECORD,,