letta-nightly 0.11.7.dev20250916104104__py3-none-any.whl → 0.11.7.dev20250918104055__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 (63) hide show
  1. letta/__init__.py +10 -2
  2. letta/adapters/letta_llm_request_adapter.py +0 -1
  3. letta/adapters/letta_llm_stream_adapter.py +0 -1
  4. letta/agent.py +4 -4
  5. letta/agents/agent_loop.py +2 -1
  6. letta/agents/base_agent.py +1 -1
  7. letta/agents/letta_agent.py +1 -4
  8. letta/agents/letta_agent_v2.py +5 -4
  9. letta/agents/temporal/activities/__init__.py +4 -0
  10. letta/agents/temporal/activities/example_activity.py +7 -0
  11. letta/agents/temporal/activities/prepare_messages.py +10 -0
  12. letta/agents/temporal/temporal_agent_workflow.py +56 -0
  13. letta/agents/temporal/types.py +25 -0
  14. letta/agents/voice_agent.py +3 -3
  15. letta/helpers/converters.py +8 -2
  16. letta/helpers/crypto_utils.py +144 -0
  17. letta/llm_api/llm_api_tools.py +0 -1
  18. letta/llm_api/llm_client_base.py +0 -2
  19. letta/orm/__init__.py +1 -0
  20. letta/orm/agent.py +9 -4
  21. letta/orm/job.py +3 -1
  22. letta/orm/mcp_oauth.py +6 -0
  23. letta/orm/mcp_server.py +7 -1
  24. letta/orm/sqlalchemy_base.py +2 -1
  25. letta/prompts/prompt_generator.py +4 -4
  26. letta/schemas/agent.py +14 -200
  27. letta/schemas/enums.py +15 -0
  28. letta/schemas/job.py +10 -0
  29. letta/schemas/mcp.py +146 -6
  30. letta/schemas/memory.py +216 -103
  31. letta/schemas/provider_trace.py +0 -2
  32. letta/schemas/run.py +2 -0
  33. letta/schemas/secret.py +378 -0
  34. letta/schemas/step.py +5 -1
  35. letta/schemas/tool_rule.py +34 -44
  36. letta/serialize_schemas/marshmallow_agent.py +4 -0
  37. letta/server/rest_api/routers/v1/__init__.py +2 -0
  38. letta/server/rest_api/routers/v1/agents.py +9 -4
  39. letta/server/rest_api/routers/v1/archives.py +113 -0
  40. letta/server/rest_api/routers/v1/jobs.py +7 -2
  41. letta/server/rest_api/routers/v1/runs.py +9 -1
  42. letta/server/rest_api/routers/v1/steps.py +29 -0
  43. letta/server/rest_api/routers/v1/tools.py +7 -26
  44. letta/server/server.py +2 -2
  45. letta/services/agent_manager.py +21 -15
  46. letta/services/agent_serialization_manager.py +11 -3
  47. letta/services/archive_manager.py +73 -0
  48. letta/services/helpers/agent_manager_helper.py +10 -5
  49. letta/services/job_manager.py +18 -2
  50. letta/services/mcp_manager.py +198 -82
  51. letta/services/step_manager.py +26 -0
  52. letta/services/summarizer/summarizer.py +25 -3
  53. letta/services/telemetry_manager.py +2 -0
  54. letta/services/tool_executor/composio_tool_executor.py +1 -1
  55. letta/services/tool_executor/sandbox_tool_executor.py +2 -2
  56. letta/services/tool_sandbox/base.py +135 -9
  57. letta/settings.py +2 -2
  58. {letta_nightly-0.11.7.dev20250916104104.dist-info → letta_nightly-0.11.7.dev20250918104055.dist-info}/METADATA +6 -3
  59. {letta_nightly-0.11.7.dev20250916104104.dist-info → letta_nightly-0.11.7.dev20250918104055.dist-info}/RECORD +62 -55
  60. letta/templates/template_helper.py +0 -53
  61. {letta_nightly-0.11.7.dev20250916104104.dist-info → letta_nightly-0.11.7.dev20250918104055.dist-info}/WHEEL +0 -0
  62. {letta_nightly-0.11.7.dev20250916104104.dist-info → letta_nightly-0.11.7.dev20250918104055.dist-info}/entry_points.txt +0 -0
  63. {letta_nightly-0.11.7.dev20250916104104.dist-info → letta_nightly-0.11.7.dev20250918104055.dist-info}/licenses/LICENSE +0 -0
@@ -78,13 +78,8 @@ class AsyncToolSandboxBase(ABC):
78
78
  async def generate_execution_script(self, agent_state: Optional[AgentState], wrap_print_with_markers: bool = False) -> str:
79
79
  """
80
80
  Generate code to run inside of execution sandbox. Serialize the agent state and arguments, call the tool,
81
- then base64-encode/pickle the result. Runs a jinja2 template constructing the python file.
81
+ then base64-encode/pickle the result. Constructs the python file.
82
82
  """
83
- from letta.templates.template_helper import render_template_in_thread
84
-
85
- # Select the appropriate template based on whether the function is async
86
- TEMPLATE_NAME = "sandbox_code_file_async.py.j2" if self.is_async_function else "sandbox_code_file.py.j2"
87
-
88
83
  future_import = False
89
84
  schema_code = None
90
85
 
@@ -107,11 +102,10 @@ class AsyncToolSandboxBase(ABC):
107
102
 
108
103
  agent_state_pickle = pickle.dumps(agent_state) if self.inject_agent_state else None
109
104
 
110
- return await render_template_in_thread(
111
- TEMPLATE_NAME,
105
+ code = self._render_sandbox_code(
112
106
  future_import=future_import,
113
107
  inject_agent_state=self.inject_agent_state,
114
- schema_imports=schema_code,
108
+ schema_imports=schema_code or "",
115
109
  agent_state_pickle=agent_state_pickle,
116
110
  tool_args=tool_args,
117
111
  tool_source_code=self.tool.source_code,
@@ -121,6 +115,138 @@ class AsyncToolSandboxBase(ABC):
121
115
  start_marker=self.LOCAL_SANDBOX_RESULT_START_MARKER,
122
116
  use_top_level_await=self.use_top_level_await(),
123
117
  )
118
+ return code
119
+
120
+ def _render_sandbox_code(
121
+ self,
122
+ *,
123
+ future_import: bool,
124
+ inject_agent_state: bool,
125
+ schema_imports: str,
126
+ agent_state_pickle: bytes | None,
127
+ tool_args: str,
128
+ tool_source_code: str,
129
+ local_sandbox_result_var_name: str,
130
+ invoke_function_call: str,
131
+ wrap_print_with_markers: bool,
132
+ start_marker: bytes,
133
+ use_top_level_await: bool,
134
+ ) -> str:
135
+ lines: list[str] = []
136
+ if future_import:
137
+ lines.append("from __future__ import annotations")
138
+ lines.extend(
139
+ [
140
+ "from typing import *",
141
+ "import pickle",
142
+ "import sys",
143
+ "import base64",
144
+ "import struct",
145
+ "import hashlib",
146
+ ]
147
+ )
148
+ if self.is_async_function:
149
+ lines.append("import asyncio")
150
+
151
+ if inject_agent_state:
152
+ lines.extend(["import letta", "from letta import *"]) # noqa: F401
153
+
154
+ if schema_imports:
155
+ lines.append(schema_imports.rstrip())
156
+
157
+ if agent_state_pickle is not None:
158
+ lines.append(f"agent_state = pickle.loads({repr(agent_state_pickle)})")
159
+ else:
160
+ lines.append("agent_state = None")
161
+
162
+ if tool_args:
163
+ lines.append(tool_args.rstrip())
164
+
165
+ if tool_source_code:
166
+ lines.append(tool_source_code.rstrip())
167
+
168
+ if not self.is_async_function:
169
+ # sync variant
170
+ lines.append(f"_function_result = {invoke_function_call}")
171
+ lines.extend(
172
+ [
173
+ "try:",
174
+ " from pydantic import BaseModel, ConfigDict",
175
+ " from typing import Any",
176
+ "",
177
+ " class _TempResultWrapper(BaseModel):",
178
+ " model_config = ConfigDict(arbitrary_types_allowed=True)",
179
+ " result: Any",
180
+ "",
181
+ " _wrapped = _TempResultWrapper(result=_function_result)",
182
+ " _serialized_result = _wrapped.model_dump()['result']",
183
+ "except ImportError:",
184
+ ' print("Pydantic not available in sandbox environment, falling back to string conversion")',
185
+ " _serialized_result = str(_function_result)",
186
+ "except Exception as e:",
187
+ ' print(f"Failed to serialize result with Pydantic wrapper: {e}")',
188
+ " _serialized_result = str(_function_result)",
189
+ "",
190
+ f"{local_sandbox_result_var_name} = {{",
191
+ ' "results": _serialized_result,',
192
+ ' "agent_state": agent_state',
193
+ "}",
194
+ f"{local_sandbox_result_var_name}_pkl = pickle.dumps({local_sandbox_result_var_name})",
195
+ ]
196
+ )
197
+ else:
198
+ # async variant
199
+ lines.extend(
200
+ [
201
+ "async def _async_wrapper():",
202
+ f" _function_result = await {invoke_function_call}",
203
+ " try:",
204
+ " from pydantic import BaseModel, ConfigDict",
205
+ " from typing import Any",
206
+ "",
207
+ " class _TempResultWrapper(BaseModel):",
208
+ " model_config = ConfigDict(arbitrary_types_allowed=True)",
209
+ " result: Any",
210
+ "",
211
+ " _wrapped = _TempResultWrapper(result=_function_result)",
212
+ " _serialized_result = _wrapped.model_dump()['result']",
213
+ " except ImportError:",
214
+ ' print("Pydantic not available in sandbox environment, falling back to string conversion")',
215
+ " _serialized_result = str(_function_result)",
216
+ " except Exception as e:",
217
+ ' print(f"Failed to serialize result with Pydantic wrapper: {e}")',
218
+ " _serialized_result = str(_function_result)",
219
+ "",
220
+ " return {",
221
+ ' "results": _serialized_result,',
222
+ ' "agent_state": agent_state',
223
+ " }",
224
+ ]
225
+ )
226
+ if use_top_level_await:
227
+ lines.append(f"{local_sandbox_result_var_name} = await _async_wrapper()")
228
+ else:
229
+ lines.append(f"{local_sandbox_result_var_name} = asyncio.run(_async_wrapper())")
230
+ lines.append(f"{local_sandbox_result_var_name}_pkl = pickle.dumps({local_sandbox_result_var_name})")
231
+
232
+ if wrap_print_with_markers:
233
+ lines.extend(
234
+ [
235
+ f"data_checksum = hashlib.md5({local_sandbox_result_var_name}_pkl).hexdigest().encode('ascii')",
236
+ f"{local_sandbox_result_var_name}_msg = (",
237
+ f" {repr(start_marker)} +",
238
+ f" struct.pack('>I', len({local_sandbox_result_var_name}_pkl)) +",
239
+ " data_checksum +",
240
+ f" {local_sandbox_result_var_name}_pkl",
241
+ ")",
242
+ f"sys.stdout.buffer.write({local_sandbox_result_var_name}_msg)",
243
+ "sys.stdout.buffer.flush()",
244
+ ]
245
+ )
246
+ else:
247
+ lines.append(f"base64.b64encode({local_sandbox_result_var_name}_pkl).decode('utf-8')")
248
+
249
+ return "\n".join(lines) + "\n"
124
250
 
125
251
  def initialize_param(self, name: str, raw_value: JsonValue) -> str:
126
252
  """
letta/settings.py CHANGED
@@ -42,8 +42,8 @@ class ToolSettings(BaseSettings):
42
42
  def sandbox_type(self) -> SandboxType:
43
43
  if self.e2b_api_key:
44
44
  return SandboxType.E2B
45
- elif self.modal_token_id and self.modal_token_secret:
46
- return SandboxType.MODAL
45
+ # elif self.modal_token_id and self.modal_token_secret:
46
+ # return SandboxType.MODAL
47
47
  else:
48
48
  return SandboxType.LOCAL
49
49
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: letta-nightly
3
- Version: 0.11.7.dev20250916104104
3
+ Version: 0.11.7.dev20250918104055
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
@@ -25,7 +25,6 @@ Requires-Dist: grpcio>=1.68.1
25
25
  Requires-Dist: html2text>=2020.1.16
26
26
  Requires-Dist: httpx-sse>=0.4.0
27
27
  Requires-Dist: httpx>=0.28.0
28
- Requires-Dist: jinja2>=3.1.5
29
28
  Requires-Dist: letta-client>=0.1.319
30
29
  Requires-Dist: llama-index-embeddings-openai>=0.3.1
31
30
  Requires-Dist: llama-index>=0.12.2
@@ -64,6 +63,7 @@ Requires-Dist: sqlalchemy[asyncio]>=2.0.41
64
63
  Requires-Dist: sqlmodel>=0.0.16
65
64
  Requires-Dist: structlog>=25.4.0
66
65
  Requires-Dist: tavily-python>=0.7.2
66
+ Requires-Dist: temporalio>=1.8.0
67
67
  Requires-Dist: tqdm>=4.66.1
68
68
  Requires-Dist: trafilatura
69
69
  Requires-Dist: typer>=0.15.2
@@ -150,9 +150,12 @@ Letta is the platform for building stateful agents: open AI with advanced memory
150
150
  * [**Letta Desktop**](https://docs.letta.com/guides/ade/desktop): A fully-local version of the ADE, available on MacOS and Windows
151
151
  * [**Letta Cloud**](https://app.letta.com/): The fastest way to try Letta, with agents running in the cloud
152
152
 
153
+
153
154
  ## Get started
154
155
 
155
- To get started, install the Letta SDK (available for both Python and TypeScript):
156
+ ### [One-Shot Vibecoding ⚡️ Prompts](https://github.com/letta-ai/letta/blob/main/fern/pages/getting-started/prompts.mdx)
157
+
158
+ Or install the Letta SDK (available for both Python and TypeScript):
156
159
 
157
160
  ### [Python SDK](https://github.com/letta-ai/letta-python)
158
161
  ```sh
@@ -1,5 +1,5 @@
1
- letta/__init__.py,sha256=6TcK-qChYY5eusgOFTows6FWBDFJ8CZW5vJFQKcrvMA,1321
2
- letta/agent.py,sha256=dhUyEpEZBearfm3xHh2gW8fvCBfsYAwNziQxOm33nbc,89640
1
+ letta/__init__.py,sha256=ZwTfnKwttBN_OlSwb4a3-r8foHZiqx9VfpbsM3BT7xA,1620
2
+ letta/agent.py,sha256=xP13DDysFq-h3Ny7DiTN5ZC2txRripMNvPFt8dfFDbE,89498
3
3
  letta/config.py,sha256=JFGY4TWW0Wm5fTbZamOwWqk5G8Nn-TXyhgByGoAqy2c,12375
4
4
  letta/constants.py,sha256=8QzePPRAQvlC2diFt4v_HhD_x8MNbvWFe5Ad40SqNA8,16195
5
5
  letta/embeddings.py,sha256=d2o1nOVTaofBk6j-WwsE0_ugvxa1nIOcceqGuJ4w_pc,2045
@@ -9,27 +9,32 @@ letta/log.py,sha256=-hkEaSIru3cvO8ynHPWb91jemJHzgWjmVc3fqGJrjvU,2294
9
9
  letta/main.py,sha256=wj4cawl4HP2ok-CqKVvqzSiOMahHC4t8FWxvuKKTWUA,317
10
10
  letta/memory.py,sha256=l5iNhLAR_xzgTb0GBlQx4SVgH8kuZh8siJdC_CFPKEs,4278
11
11
  letta/pytest.ini,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- letta/settings.py,sha256=QEjNUwRXGBgsQpQAs2kksQmGN5CbxKlxPPydrklx_Ms,15011
12
+ letta/settings.py,sha256=u-OL3mxyenrz_tVEw-1eZnV7W0osVFfQysXczq7IiGA,15014
13
13
  letta/streaming_interface.py,sha256=rPMfwUcjqITWk2tVqFQm1hmP99tU2IOHg9gU2dgPSo8,16400
14
14
  letta/streaming_utils.py,sha256=ZRFGFpQqn9ujCEbgZdLM7yTjiuNNvqQ47sNhV8ix-yQ,16553
15
15
  letta/system.py,sha256=kHF7n3Viq7gV5UIUEXixod2gWa2jroUgztpEzMC1Sew,8925
16
16
  letta/utils.py,sha256=c108IxvNVf0NeuQRrr2NK-asqjpzOI79YKSHYyhEqrQ,43541
17
17
  letta/adapters/letta_llm_adapter.py,sha256=11wkOkEQfPXUuJoJxbK22wCa-8gnWiDAb3UOXOxLt5U,3427
18
- letta/adapters/letta_llm_request_adapter.py,sha256=wJhK5M_qOhRPAhgMmYI7EJcM8Op19tClnXe0kJ29a3Q,4831
19
- letta/adapters/letta_llm_stream_adapter.py,sha256=G8IqtXor0LUuW-dKtGJWsUt6DfJreVCn5h6W2lHEPBg,7658
18
+ letta/adapters/letta_llm_request_adapter.py,sha256=Hv4Ox55KQ79qisNyCV1vrAz4mPnPRZQKksl6CdHgPgA,4772
19
+ letta/adapters/letta_llm_stream_adapter.py,sha256=4sCjBF_KvuWUad2pAAtlnwUmLO8H356tV8RcAY5Y_90,7599
20
20
  letta/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- letta/agents/agent_loop.py,sha256=cTSlGt1g9aZWG5vIMYtzdeJG1UcrqfjpLGmZU6j89zU,854
22
- letta/agents/base_agent.py,sha256=rUAcPxWmTnmi50AWOXwrWc-v5sPIod0W_xXaPQShjcE,8540
21
+ letta/agents/agent_loop.py,sha256=aXPcTuGrqllmw-3Fl8z_PKzRIusVzO5WhiLySqLPOs0,885
22
+ letta/agents/base_agent.py,sha256=TAc5quD9KRMKOurz_-ZHoAPZe13ZWFlE6sDjaPqN-fk,8518
23
23
  letta/agents/base_agent_v2.py,sha256=t7XtUv3RZNvKwk1uqmSKxAV_2ZGSXYektlzyhXB3N-M,2558
24
24
  letta/agents/ephemeral_agent.py,sha256=el-SUF_16vv_7OouIR-6z0pAE9Yc0PLibygvfCKwqfo,2736
25
25
  letta/agents/ephemeral_summary_agent.py,sha256=tOldA_daa_PduTJ2RA7fAo9Rv6sUb-C_9dJaD6iujS4,4454
26
26
  letta/agents/exceptions.py,sha256=BQY4D4w32OYHM63CM19ko7dPwZiAzUs3NbKvzmCTcJg,318
27
27
  letta/agents/helpers.py,sha256=eCHsvZEkTe0L_uZHYkfNAztsEJW0FTnKZMgVbqlI0Yg,11618
28
- letta/agents/letta_agent.py,sha256=6nRTh5kzUpqK7eNMk4DlcgEoPmDxFmRb5ysoVHa-vh8,99488
28
+ letta/agents/letta_agent.py,sha256=-qLbq_vuQnT_EpJoR4uT-4s6NLvNZl_J4U4N771eU6E,99236
29
29
  letta/agents/letta_agent_batch.py,sha256=17RpYVXpGh9dlKxdMOLMCOHWFsi6N5S9FJHxooxkJCI,27998
30
- letta/agents/letta_agent_v2.py,sha256=vMzVZL6Px5XBODEh3BHbbADtBSDIuNJrjsHqMGQfnwg,59930
31
- letta/agents/voice_agent.py,sha256=y-n6qadfKsswvGODzXH02pLIQQ44wnaDSE6oUgKHVkA,23381
30
+ letta/agents/letta_agent_v2.py,sha256=XnuX5wb_tr3ybWnMdlg47dPoKFYVg-OZ_IX2zHgrYXI,59992
31
+ letta/agents/voice_agent.py,sha256=DlmpObZ2vHIsO4NPOCpOQ0NmCY6umwaubESRHN3o_f8,23357
32
32
  letta/agents/voice_sleeptime_agent.py,sha256=_JzCbWBOKrmo1cTaqZFTrQudpJEapwAyrXYtAHUILGo,8675
33
+ letta/agents/temporal/temporal_agent_workflow.py,sha256=b_2G5_5zpBcsOHT_hHEX7u-a1ms3D1Sdb1Eiu-UrSCY,2224
34
+ letta/agents/temporal/types.py,sha256=dUPgEnx-s8ftL7dtygqSz0ODKV_t1Kq3qzqUF_ax8ak,663
35
+ letta/agents/temporal/activities/__init__.py,sha256=c_qgOfdf7gBrf-TilUhyoNcopV0qccJhkFy6VvI86Co,153
36
+ letta/agents/temporal/activities/example_activity.py,sha256=FKevH3E-AQAvzpNPI3XflTgyA5ultTiQTLSnBmsYo0I,231
37
+ letta/agents/temporal/activities/prepare_messages.py,sha256=0BQRvO8FJ8Jp4O04ExcYEfpNRxrAuH_NKJ4_IgXjSMY,323
33
38
  letta/cli/cli.py,sha256=tKtghlX36Rp0_HbkMosvlAapL07JXhA0vKLGTNKnxSQ,1615
34
39
  letta/cli/cli_load.py,sha256=paAyDq6e-8D1ZWo8JvXIiA1N7FeKcQMSWgcr2vU_1Gs,319
35
40
  letta/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -68,7 +73,8 @@ letta/groups/sleeptime_multi_agent_v3.py,sha256=KjeHsuXNZup3FIw2CaqBuLo21j1nzI2f
68
73
  letta/groups/supervisor_multi_agent.py,sha256=IWe5sNg6JoTaXwsN_8T9aiGHnFpJc7UVnlC3ly2rlBU,4459
69
74
  letta/helpers/__init__.py,sha256=p0luQ1Oe3Skc6sH4O58aHHA3Qbkyjifpuq0DZ1GAY0U,59
70
75
  letta/helpers/composio_helpers.py,sha256=X3RaJSqa8z-oXmHJjJjAs1fJroZ5A8yu4-Yg2oDiTdA,1712
71
- letta/helpers/converters.py,sha256=R4xbuVPx9nwK4X9-8GwGTyeRTnyJvMEf5mmAb8obxME,16459
76
+ letta/helpers/converters.py,sha256=DUEKubq8zxvReG1w6ahCvEF3DD_fnSxBOM6W4e93WmM,16703
77
+ letta/helpers/crypto_utils.py,sha256=jFfmjacrYw04WiXsE94L9oLlbNL-zkTSbE3BmoUzzt0,4950
72
78
  letta/helpers/datetime_helpers.py,sha256=d72h4YTA2vZoNh48_T3RUfYKlN_0RrqPTgdXGqMRDdM,4564
73
79
  letta/helpers/decorators.py,sha256=KbYLW0RdTnBaXlXFq-Dw3G-PNTGKywfFLMcEOYHLcPA,5889
74
80
  letta/helpers/json_helpers.py,sha256=aaNQey5rPv8Loyg1Bv36RJL5GL5ttZve3Mjsc8QkYSI,730
@@ -102,9 +108,9 @@ letta/llm_api/google_constants.py,sha256=eOjOv-FImyJ4b4QGIaod-mEROMtrBFz0yhuYHqO
102
108
  letta/llm_api/google_vertex_client.py,sha256=p6MNUFHhkzFkGfWgldjVJC6SIvSMriMeCoenNYynU6E,34970
103
109
  letta/llm_api/groq_client.py,sha256=nNeWSgDVOLn3iFiicDKyhHj7f73JxrB9-7_M2Pv2e1I,3192
104
110
  letta/llm_api/helpers.py,sha256=GXV_SuaU7uSCDj6bxDcCCF7CUjuZQCVWd5qZ3OsHVNk,17587
105
- letta/llm_api/llm_api_tools.py,sha256=lsZ6OeIHesyOfbNQi5CVw5hn1lTQP5gJyforp-D0nk8,12294
111
+ letta/llm_api/llm_api_tools.py,sha256=FXHBjLg7UyX1-pBH5h6VlXXxop_vqhQlI2OJx33xx0Y,12239
106
112
  letta/llm_api/llm_client.py,sha256=iXiPbrhluP2DBczv9nkFlAXdwWGOkg0lNDA9LzLrG4o,3606
107
- letta/llm_api/llm_client_base.py,sha256=RFo8H4ILxVyzB3DeF4rJoJJYjRF8ScVO4yyDrhuN0DY,10052
113
+ letta/llm_api/llm_client_base.py,sha256=8vnkEm7DPdHuGd3uaMAtZ_y-N5AQJJs-vXvN45TC10Y,9916
108
114
  letta/llm_api/mistral.py,sha256=ruOTBt07Uzx7S30_eXhedVWngtpjtlzG6Ox1Iw0_mQs,662
109
115
  letta/llm_api/openai.py,sha256=56cwdS9l-75cMTtY9df6Dbb1M9crH8YQsSdF3Pm3Rpg,27393
110
116
  letta/llm_api/openai_client.py,sha256=QDIRIG-4MVA-Jug8qx0HUkhg3qtUfHGvE6QCbSYGK-c,22597
@@ -152,8 +158,8 @@ letta/local_llm/webui/legacy_settings.py,sha256=BLmd3TSx5StnY3ibjwaxYATPt_Lvq-o1
152
158
  letta/local_llm/webui/settings.py,sha256=gmLHfiOl1u4JmlAZU2d2O8YKF9lafdakyjwR_ftVPh8,552
153
159
  letta/openai_backcompat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
160
  letta/openai_backcompat/openai_object.py,sha256=GSzeCTwLpLD2fH4X8wVqzwdmoTjKK2I4PnriBY453lc,13505
155
- letta/orm/__init__.py,sha256=CNDfeCRle9h5EnqFMXadlUCFN0AtlPihMrlAjt9Ikv0,1637
156
- letta/orm/agent.py,sha256=MF4MvWEP9-51ynhgct_B7zvr6ikkUnjXHDhLj_FFpaA,17224
161
+ letta/orm/__init__.py,sha256=oBQ8_9ynUrh3aotFMXnqa5womb-GYbE0-ibJk4nYnNM,1678
162
+ letta/orm/agent.py,sha256=qr4C3ZMoKZwqUfbGdXwD6Yz6qC1JH879FI6INJ2uWKE,17357
157
163
  letta/orm/agents_tags.py,sha256=-rWR8DoEiHM4yc9vAHgHuvjIwgMXMWzKnTKFlBBu3TQ,1076
158
164
  letta/orm/archive.py,sha256=82engq9ZfNrp1yu8QS5df4vsIwQC33CADZA-05doNko,3920
159
165
  letta/orm/archives_agents.py,sha256=hIhaIRQPuNv-etQVWnIQhEomiumLC1OWR-T_s0Y7snM,1273
@@ -171,12 +177,12 @@ letta/orm/groups_blocks.py,sha256=ou18XqI9tkb0fcecUd4eHTVmmndGuby1DIdmHM5lHF4,48
171
177
  letta/orm/identities_agents.py,sha256=cfIQ6UsbwmjxtGVmFt1ArK2zbKr9k6VWoELuISDnLSc,502
172
178
  letta/orm/identities_blocks.py,sha256=oS0DnDXKzcWtlH2dDFREkNF1JHJ3Kyg8fN9GI8DKtcg,501
173
179
  letta/orm/identity.py,sha256=NRgC6ArQZCrs3LYhGHoBMHNJzi_uoYFvJAr0HoRhqLg,2924
174
- letta/orm/job.py,sha256=nlDw6Y7zT96jFW-OOjf-vY66Py7S6_3jTRmhOmNnIUw,3357
180
+ letta/orm/job.py,sha256=RwbWHDItgeggkz53s4-IPHlzWmaJJye6EjH4bpxy0V4,3557
175
181
  letta/orm/job_messages.py,sha256=SgwaYPYwwAC3dBtl9Xye_TWUl9H_-m95S95TTcfPyOg,1245
176
182
  letta/orm/llm_batch_items.py,sha256=LZI9vjOrswiGXPVLvLOT5uObDtyTXX1p7yljSiiMH7g,2725
177
183
  letta/orm/llm_batch_job.py,sha256=LaeOrnNf6FMm6ff2kOCEAjtbSuz4C5KYU5OmM90F1PY,2368
178
- letta/orm/mcp_oauth.py,sha256=lr0XIcj9zwQpWlqQHIWAaT73YnunsrkEnLzBLP-8L2k,3095
179
- letta/orm/mcp_server.py,sha256=PT3Edqn0Er1ZDExsXdjhC--iGL4Vi3XjPPgxNfbNRDA,2155
184
+ letta/orm/mcp_oauth.py,sha256=eIEIoZTyAT3bJhLgSoZXlB_-JR2rok4zaat0Wib5aWI,3453
185
+ letta/orm/mcp_server.py,sha256=6d84WVeyUSFmmUntfCvmNpx-FWjiOtOxKrj6PDvNYPs,2554
180
186
  letta/orm/message.py,sha256=sGMH7XJRErtIEngFV08b9A_zk5veyLkpQsU3zKN0AhM,9335
181
187
  letta/orm/mixins.py,sha256=moZyS4e9gXGULKNsOqQuZrBn55IlrFF7MQOAVl68Aq0,2688
182
188
  letta/orm/organization.py,sha256=wZ3yvPa6Vy-c_74S_XGjzjWND1oR7U7xzrdrdipZM8A,4205
@@ -188,7 +194,7 @@ letta/orm/provider_trace.py,sha256=CJMGz-rLqagJ-yXh9SJRbiGr5nAYdxY524hmiTgDFx4,1
188
194
  letta/orm/sandbox_config.py,sha256=XmBfYSQzocewuCGkuXNq4QwBpzfJpygX0dBVag0ELOc,4189
189
195
  letta/orm/source.py,sha256=tRxqjWM8n1LBhlDTIiKhJ82-tpWErTeiDXMFz1rwY4g,1715
190
196
  letta/orm/sources_agents.py,sha256=Fvo8ujDNeeqleiiqXk-0VUPiQDawLAN-d28RxdvWnbs,554
191
- letta/orm/sqlalchemy_base.py,sha256=mw_leKRvSskRswfiUTYP3Jk9Q7Io9rQJWyVEUGWyTaw,44900
197
+ letta/orm/sqlalchemy_base.py,sha256=eTkfMcM57UilADXI8CvP6NumUmsKHJks6lOkAgfY3go,44917
192
198
  letta/orm/sqlite_functions.py,sha256=tbwePL5XciJIttoehyt1H17zdUXWAdjFqH0t-XaFJfk,7256
193
199
  letta/orm/step.py,sha256=S5G4uPMx74_629Fa1IZAdttTk0BQw-an3Amw6fhw9VA,4495
194
200
  letta/orm/step_metrics.py,sha256=5UDJYyGIYMsidKzBDru5CzJXzA0AycaO_e23xFIvEvE,4391
@@ -225,7 +231,7 @@ letta/plugins/plugins.py,sha256=Um9avvRxz4d5vJQTudLJCwv5EDUtIlVQZw8Xlf4S3Gw,2079
225
231
  letta/prompts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
232
  letta/prompts/gpt_summarize.py,sha256=dbOsMdc6VGApFtXv7ZfqsGN2SZ_31K_nUWMLBTcChrY,1146
227
233
  letta/prompts/gpt_system.py,sha256=Y-Wj8n8PFHwGjbsJhb-dghNXXQts5zrnBRI1FfDkocg,907
228
- letta/prompts/prompt_generator.py,sha256=sdSZpDRG3PnWdh7Iz2Tg0G1i_9bAHAhGM5Oh1X9NV7Y,8955
234
+ letta/prompts/prompt_generator.py,sha256=yqsCilNNiUHcVYzQA0uk7b4Q01d37pm38k8S5H3-YxE,8902
229
235
  letta/prompts/system_prompts/__init__.py,sha256=ak_AgWgx7oEQ9woxSyCWz7qvGogbsY2_cO501C_eD0I,735
230
236
  letta/prompts/system_prompts/memgpt_chat.py,sha256=WEeP-RqjROG0a3Pqt-fQJSMj0ocE0Zt-4c5I3HXroNA,5438
231
237
  letta/prompts/system_prompts/memgpt_generate_tool.py,sha256=k6X0DgWDxJz1ma31LT4V4HqfLjQHBYVs2-QAjbuQIek,6613
@@ -237,20 +243,20 @@ letta/prompts/system_prompts/summary_system_prompt.py,sha256=-jy_PL6Cwxjs3p3AiTR
237
243
  letta/prompts/system_prompts/voice_chat.py,sha256=WLhjlVsVcQPc5S6y5hgw1SdVhdhtflNiwdpfSx3abwk,1871
238
244
  letta/prompts/system_prompts/voice_sleeptime.py,sha256=2rgZYqJEqSp5bcEAXNuqM1PVsvPF1vm8sAqmhoOfQow,3714
239
245
  letta/prompts/system_prompts/workflow.py,sha256=mth_46sY9JWx0rV-kqiGcu2IZGzZQfKY345qBUjvP-s,852
240
- letta/schemas/agent.py,sha256=Goy1S7U8JBjiBtHQ1e0haBJwP4O40MU6mkRhHsxhPU0,29569
246
+ letta/schemas/agent.py,sha256=XUABr2jWneARpbVW0j9Omfn_KCX6cE41RDs9PpZDGrE,22323
241
247
  letta/schemas/agent_file.py,sha256=ueNumYpINPrOBHEeJeSLQdbgs2VKPpqvbfOZA4UGbRI,14884
242
248
  letta/schemas/archive.py,sha256=bZCls6-lMaPKiH-jJBYFEW5saI1Qw2S6mv2wB8YaBUo,1883
243
249
  letta/schemas/block.py,sha256=0vvkfwDq_WRT1Lm2E89FwqKPyZpRho7nA_BOxAZlYbI,7447
244
250
  letta/schemas/embedding_config.py,sha256=ZaD40UeeAX6A9C6bQVhrKwNDiMEuOn7-5uHcj9_T_D0,3740
245
251
  letta/schemas/embedding_config_overrides.py,sha256=lkTa4y-EQ2RnaEKtKDM0sEAk7EwNa67REw8DGNNtGQY,84
246
- letta/schemas/enums.py,sha256=8qVSD2La97deCTwJzfBzbANDWKk_-uB2LiJRbFWyreg,4690
252
+ letta/schemas/enums.py,sha256=XYJLxI3V-TDrPeq_wGZ8_zfN1WqnsFOt7-c51RRskgU,5255
247
253
  letta/schemas/environment_variables.py,sha256=VRtzOjdeQdHcSHXisk7oJUQlheruxhSWNS0xqlfGzbs,2429
248
254
  letta/schemas/file.py,sha256=78aTJuYqhhTu95hKFmcJmCa5_wJMZ521aiRzPM2plAM,6242
249
255
  letta/schemas/folder.py,sha256=OpTj9idfGx6CEKDySeDEu3ZNDYjl8jJ02CH96RWPAVk,3309
250
256
  letta/schemas/group.py,sha256=X4ioNEUraBa_pGN1bNBNugkQieGMLvh6rXisFgcHwoo,8663
251
257
  letta/schemas/health.py,sha256=zT6mYovvD17iJRuu2rcaQQzbEEYrkwvAE9TB7iU824c,139
252
258
  letta/schemas/identity.py,sha256=-6ABqAuz-VfGcAoAX5oVyzpjBiY4jAN-gJUM-PLBQQY,3984
253
- letta/schemas/job.py,sha256=Qj22obbFzJBG3tikHZlxrTnLbjzz-2sxsfxGAlPBIZM,4528
259
+ letta/schemas/job.py,sha256=I4g3aKjyFyM7nemGFPR9NU4laGiB55aRAAWbSVraSJE,4979
254
260
  letta/schemas/letta_base.py,sha256=LhVKaSAUr7HzrvuEJE_1ZKJMe-nJKoYR-ZgLe1IUTpY,4020
255
261
  letta/schemas/letta_message.py,sha256=RZiWiqan_fxJBjoSi8JpSMjdrvlxEEF4jmq-HGBCMtw,18021
256
262
  letta/schemas/letta_message_content.py,sha256=7FuholmKauP5Z-FJdsCH_-4IUGl_8jVqi5IQ0rLHhds,9820
@@ -261,26 +267,27 @@ letta/schemas/letta_stop_reason.py,sha256=6vF66Dsyzog3X_d2PjfQxJLyiDarlqJ-hG7NMJ
261
267
  letta/schemas/llm_batch_job.py,sha256=xr7RmMc9ItmL344vcIn1MJaT2nOf0F7qEHrsXkQNFQI,3136
262
268
  letta/schemas/llm_config.py,sha256=8nyi9r3o3feh_hUy6pdRWp3E6M612xZhvV3gkFB4aqE,13642
263
269
  letta/schemas/llm_config_overrides.py,sha256=E6qJuVA8TwAAy3VjGitJ5jSQo5PbN-6VPcZOF5qhP9A,1815
264
- letta/schemas/mcp.py,sha256=JMz-e2qlttNIgICJHm6Q_Pu908i41060EBQc6MGKIDM,8985
265
- letta/schemas/memory.py,sha256=MH5Cha-HtezSWg3W7ij0fBOxvCERnu59h-sE8lyRGH4,15010
270
+ letta/schemas/mcp.py,sha256=Wiu3FL5qupaHFaMqKFp-w1Ev6ShQ5dPfAtKIMGmRiF8,15527
271
+ letta/schemas/memory.py,sha256=Mvzl58IHIxRzXgejC-GSV6KNvtmqpesrj0nie_zjeKg,20188
266
272
  letta/schemas/message.py,sha256=zgDFz87xBRnkGFCp4xqpi4CdRysiAOWRRs10Ddlh0ew,55855
267
273
  letta/schemas/npm_requirement.py,sha256=HkvBF7KjHUH-MG-RAEYJHO2MLRS2rxFUcmbpbZVznLk,457
268
274
  letta/schemas/organization.py,sha256=TXrHN4IBQnX-mWvRuCOH57XZSLYCVOY0wWm2_UzDQIA,1279
269
275
  letta/schemas/passage.py,sha256=_bO19zOIQtQ3F3VqDSgIJqh15V0IIrJ_KdlbCt6-4D0,3940
270
276
  letta/schemas/pip_requirement.py,sha256=OgcEPFjXyByTkhW30mQCM-CoU3C0V23opXmdcBV0rrw,488
271
277
  letta/schemas/prompt.py,sha256=BRTY-JiKSKdFVPa6rrDHDe7v4sg1qeF-k3w3JKRMTxU,363
272
- letta/schemas/provider_trace.py,sha256=gsgo1CdfTUFSnm1ep1tSZ0fZfGSx45EdPaVyVJREt_U,1958
278
+ letta/schemas/provider_trace.py,sha256=L-L5gEt9X1wMiI5w1fQ79qvJ1g1Kvo2TobeQC1p9ajQ,1766
273
279
  letta/schemas/providers.py,sha256=oHDHP3wUVPe3S2RfefUcsgE2DFCnkMFXx75FE7h0Pzw,69393
274
280
  letta/schemas/response_format.py,sha256=b2onyfSDCxnNkSHd4NsfJg_4ni5qBIK_F6zeJoMvjq0,2131
275
- letta/schemas/run.py,sha256=1lVOWlHVbk9MYIOiIrE1gCoQvBhErKo7UMSeWyMExbw,2089
281
+ letta/schemas/run.py,sha256=Hf0OTWCLw6RoK4lHOyNMsvyZMFCf8KVTye2qZu0QPSI,2255
276
282
  letta/schemas/sandbox_config.py,sha256=iw3-QS7PNy649tdynTJUxBbaruprykYAuGO6q28w-gU,5974
283
+ letta/schemas/secret.py,sha256=1vq33Z-Oe2zSeVnGuj6j04YoO0Y9LxX1bmkprg6C1NA,15659
277
284
  letta/schemas/source.py,sha256=Uxsm8-XA3vuIt5Ihu_l2Aau7quuqmyIDg7qIryklUqY,3565
278
285
  letta/schemas/source_metadata.py,sha256=_dGjuXhGcVMlc53ja9yuk16Uj64ggEzilRDgmkqYfNs,1334
279
- letta/schemas/step.py,sha256=SKJfcaaqdaGZtaqsfzwAx_O_maDzsxYJYUtSBUZxSfE,3456
286
+ letta/schemas/step.py,sha256=o7AQDXImVyO2XK-S6RafMYOgfORQRE_XE9m_5e4QVlM,3572
280
287
  letta/schemas/step_metrics.py,sha256=u9dGPbc0AkXsMaqU09m4XtAu8EDjprakDBnISAFWseU,1606
281
288
  letta/schemas/tool.py,sha256=Yxj36CKnBDtKaidSoTUZvd7GuUcciDGHaCjAhk6DcdA,15099
282
289
  letta/schemas/tool_execution_result.py,sha256=17tMU01ACtpA41MTeWPqnF0uFpOYeaprORgGAd4XztA,895
283
- letta/schemas/tool_rule.py,sha256=qFY1SDkozIdEr2FuVFiRJEFYPdWbzIMsXr9_OSy8fBc,13048
290
+ letta/schemas/tool_rule.py,sha256=Opn6EgSyr3uP0-mbaS6EWoKrzaSwIDr1PEHL1d7d6gU,12618
284
291
  letta/schemas/usage.py,sha256=9SSTH5kUliwiVF14b-yKbDcmxQBOLg4YH5xhXDbW9UU,1281
285
292
  letta/schemas/user.py,sha256=GanbgD80N33FBjWKkv-MvUO01C0GHzrYmJ-o80wgLLI,1481
286
293
  letta/schemas/openai/chat_completion_request.py,sha256=MZjNm5R-1_e3Ar6UsQvLCG5jKkzFh-zevdUWix03aXQ,4496
@@ -307,7 +314,7 @@ letta/schemas/providers/together.py,sha256=jsaziBEfVKg_70c3-m0FdYYBnbYpYkCEPVDKB
307
314
  letta/schemas/providers/vllm.py,sha256=CwM260cxWLkviVzY4wwkw4NmDAK69fv531AofRGa9JA,2480
308
315
  letta/schemas/providers/xai.py,sha256=KCYqE75msyhxTwy_ZxRU3t46UWCWATE4pSCJmBbf4Vo,2494
309
316
  letta/serialize_schemas/__init__.py,sha256=cosMjvWz7cubC1azbUofzYrcDBTuSgjJImUdsrSs3p0,77
310
- letta/serialize_schemas/marshmallow_agent.py,sha256=BlEaAC2QR5B5l4YVjigjZKI3wLO3P6AFqNRYoEDt6vA,10349
317
+ letta/serialize_schemas/marshmallow_agent.py,sha256=m2G5nF9Di2GqiaFyVsVujYi9AWo6grF0NTtOBkefcc8,10559
311
318
  letta/serialize_schemas/marshmallow_agent_environment_variable.py,sha256=9RYJkaNH2UiRoIFzrNklVAGl3uMmu3n6NwzFdviPPVA,653
312
319
  letta/serialize_schemas/marshmallow_base.py,sha256=GP0ImCRfJ-BqNKe-T44Feal18pmFQG-p8JllOsSSNRk,1379
313
320
  letta/serialize_schemas/marshmallow_block.py,sha256=qV17pbztsb9MD-632aC66aBJ5m-HK780ifOO9YnoKoo,1043
@@ -320,7 +327,7 @@ letta/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
320
327
  letta/server/constants.py,sha256=yAdGbLkzlOU_dLTx0lKDmAnj0ZgRXCEaIcPJWO69eaE,92
321
328
  letta/server/db.py,sha256=AULPiuS0b_EmNsQIS9b0yy3WBTpJv41vqF6Hxq9VXYg,17854
322
329
  letta/server/generate_openapi_schema.sh,sha256=14Q6r0fbNNVVdf4X3Z-H0ZtyrVw5zYLzL5Doom3kM9k,351
323
- letta/server/server.py,sha256=KFFbyl7Djn8CS0aPxz3jL8RwmXPr9nKY3wDu3ymUWjI,109265
330
+ letta/server/server.py,sha256=OkODdquY1sWkRC17CP10z-nysX97S4ddDCgFxtdPsPc,109265
324
331
  letta/server/startup.sh,sha256=z-Fea-7LiuS_aG1tJqS8JAsDQaamwC_kuDhv9D3PPPY,2698
325
332
  letta/server/utils.py,sha256=rRvW6L1lzau4u9boamiyZH54lf5tQ91ypXzUW9cfSPA,1667
326
333
  letta/server/rest_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -342,8 +349,9 @@ letta/server/rest_api/middleware/profiler_context.py,sha256=MbOFOXhkOCuq6vlOiv0D
342
349
  letta/server/rest_api/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
343
350
  letta/server/rest_api/routers/openai/chat_completions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
344
351
  letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=bY3Ei_uxr_eIo4Z-k_gGeKSzyC1ALZOP3dbaXxacihE,5229
345
- letta/server/rest_api/routers/v1/__init__.py,sha256=9MnEA7CgtIxyU_dDNG0jm-Ziqu1somBml-e5gKjgd9I,1997
346
- letta/server/rest_api/routers/v1/agents.py,sha256=V-z5bm1DKWq9qCZ1VHACvr8D2S6Hgo7ZRY7XBAh1u4Q,76513
352
+ letta/server/rest_api/routers/v1/__init__.py,sha256=YzQlO7hewnB5fAfuFPVxe7EQnGeNBfuTNOvUloQKqa8,2098
353
+ letta/server/rest_api/routers/v1/agents.py,sha256=O986H03zQQEBF28Oqtn4obCI30Y1Zqupdvyn1hsD2kA,76785
354
+ letta/server/rest_api/routers/v1/archives.py,sha256=Hy1p-nZOApVRPC6Prli2swmOxYhkfjzpy3cGEJDvuww,4114
347
355
  letta/server/rest_api/routers/v1/blocks.py,sha256=6WBsGCcOkcIgAxI_v9c4xmEoxVSOcRs3--GRv1YleX8,8862
348
356
  letta/server/rest_api/routers/v1/embeddings.py,sha256=WxMRMf2x-DCsHOVvCRxJ8Nz1PE7ri8KgmKiYlmBaPwI,957
349
357
  letta/server/rest_api/routers/v1/folders.py,sha256=PsfRd7Acy-kAjqR30fmN8aa4C7me1wy1RrIwT11I1T0,25811
@@ -351,18 +359,18 @@ letta/server/rest_api/routers/v1/groups.py,sha256=wvUrrEBIsDfS1jkraxXlP8k3E1VB6b
351
359
  letta/server/rest_api/routers/v1/health.py,sha256=j43UoGJ7Yh5WzdwvqbKTEdWzlcKJBF6ZI5I1kslWim0,399
352
360
  letta/server/rest_api/routers/v1/identities.py,sha256=eUqO_6HNdXwmlas28sZWr1SA4npd0FgzPD_0ZtoVYY0,11484
353
361
  letta/server/rest_api/routers/v1/internal_templates.py,sha256=2O8Ci2LpBFjAq81emX_UMUP9NkYBA0GjC_cuWIAcZ7s,11924
354
- letta/server/rest_api/routers/v1/jobs.py,sha256=4yZuqkz_eTkzbsk5JOaj9GQMXtU_myK2eXu4Dc1Vms8,4818
362
+ letta/server/rest_api/routers/v1/jobs.py,sha256=zRz60DY817wEElXTNqtNHkmVaoCaWpS-MJCt79hOj_Y,4978
355
363
  letta/server/rest_api/routers/v1/llms.py,sha256=sv5VWqB0-iSRi6LyzqsM1fLmOFm9UhM9ofzR9WHvJdE,1808
356
364
  letta/server/rest_api/routers/v1/messages.py,sha256=eHHupTPyon-Gwsbg0-0vzp7cRGoXHkOIn10vrxyNxbQ,8547
357
365
  letta/server/rest_api/routers/v1/organizations.py,sha256=Un7qRo-69m9bC_TYyMnIRNLXf3fHHbNh1aVghnzzips,2932
358
366
  letta/server/rest_api/routers/v1/providers.py,sha256=_gKcCbEN2tW7c0BO7_cMFEYdhhsxDlKaopqXlZXMU1s,5996
359
- letta/server/rest_api/routers/v1/runs.py,sha256=_5bLcTyyrHTzI8pE0QHwwK2JoJVqwux-ANQlDk-YoRA,12845
367
+ letta/server/rest_api/routers/v1/runs.py,sha256=3GzFN1T5n6sqmBTV7oisFyapjWipWQ2Zqtx3QJV7DpE,13254
360
368
  letta/server/rest_api/routers/v1/sandbox_configs.py,sha256=FULVD8W-lhrhQSrLmpXVgDJpkulkRyKnxvZZtwDL52A,9065
361
369
  letta/server/rest_api/routers/v1/sources.py,sha256=8fkCbprC4PZlcf5HnBYj2-8PjWFIkL0TWZBlp95N7nE,22319
362
- letta/server/rest_api/routers/v1/steps.py,sha256=rJ9W1dHOpSm6pHn9zHD3gAA44TZRfnbb8-LH3VZ7SGo,6788
370
+ letta/server/rest_api/routers/v1/steps.py,sha256=OIExfKSwilCmtrVHhF80h8g3yqhf5ww533FIw7N8noI,8251
363
371
  letta/server/rest_api/routers/v1/tags.py,sha256=rGPO5GaVBn18hu7D3Ysyo45ka47g9DUir3UVh433DEc,1826
364
372
  letta/server/rest_api/routers/v1/telemetry.py,sha256=8rzSii17BK8BjRRfV4Yr6mrKrbZEHySlUaQBGBWhxwY,1124
365
- letta/server/rest_api/routers/v1/tools.py,sha256=YQo69QjPH8XbFvdrxMFS6b6YOvZJW7jB34wiZm8ev84,51334
373
+ letta/server/rest_api/routers/v1/tools.py,sha256=OIlqmx-pLfWVXYxCrHzZORsnaLTSx1tFKwKVMDlQ5vc,50424
366
374
  letta/server/rest_api/routers/v1/users.py,sha256=l3xejXISNB9gQmVuS_nYP1V5QqeqEtdDpgpJcPlxYy4,2373
367
375
  letta/server/rest_api/routers/v1/voice.py,sha256=kzsROKCQltHfsgRBg1iMz-AiPDnSuCvE9IOBCBRhD3c,2040
368
376
  letta/server/static_files/favicon.ico,sha256=DezhLdFSbM8o81wCOZcV3riq7tFUOGQD4h6-vr-HuU0,342
@@ -377,17 +385,17 @@ letta/server/ws_api/protocol.py,sha256=5mDgpfNZn_kNwHnpt5Dsuw8gdNH298sgxTGed3etz
377
385
  letta/server/ws_api/server.py,sha256=_16TQafm509rqRztZYqo0HKKZoe8ccBrNftd_kbIJTE,5833
378
386
  letta/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
379
387
  letta/services/agent_file_manager.py,sha256=bgYTyQA90Iqo3W-LprPtyyOKf2itoqivcRhh4EOUXss,30847
380
- letta/services/agent_manager.py,sha256=C-k9S8_TwLRDSdCqu0YZXbwgSRn4_hPOpP2O62NkaMM,169791
381
- letta/services/agent_serialization_manager.py,sha256=lWXTzYItqVxJMyy9ZYlcCDQwC3ZKk9XPCHvBkoVuszA,46388
382
- letta/services/archive_manager.py,sha256=P10BjZ2PxLoIkCwJ8rx7qLzchNVBsqNG3_KzxTanCLQ,14060
388
+ letta/services/agent_manager.py,sha256=16ADzA-4OFLe0tDfS8AHkDjFA1qJELrXYpt-r54UDWQ,170057
389
+ letta/services/agent_serialization_manager.py,sha256=A3bOAjC73P6f9VWUOzXYiG_LXmFVzYFwtr_RJnFcZvc,46947
390
+ letta/services/archive_manager.py,sha256=xuvqHLjr5t_QVi7pwPbcxt_BYeSOOnxvSKvox64Xq9k,16388
383
391
  letta/services/block_manager.py,sha256=mohj12QqHenSBbBx0Xmry1Rw25Gy5DSljOITzAwqMtw,33683
384
392
  letta/services/file_manager.py,sha256=wNbBNmgZyZmEj7ZHuN5HYbAu5gDU1j7XR9SK8zg3LE0,31607
385
393
  letta/services/files_agents_manager.py,sha256=QJrJTgDn3RXUjZIGiIw4GQ5k2iKj-Wvzs-WQetpQ154,30059
386
394
  letta/services/group_manager.py,sha256=LgSVukIe1Jh_aIUP3PtraT5Ys7a7wKQA11CwRucFgYQ,29220
387
395
  letta/services/identity_manager.py,sha256=t-0D7aK6ea3RFmvuBjlIYv4GgdaYTXxLr9RGTOie1l0,14423
388
- letta/services/job_manager.py,sha256=E-w9_4BMErMuqVf2dFlTPTobrvBKhPyyEDfuqLnbACI,35970
396
+ letta/services/job_manager.py,sha256=6QeJT_Nt5AxbDInOBwHGw0BoKPD8OFJU_blPP8D2ZVg,36561
389
397
  letta/services/llm_batch_manager.py,sha256=iDzLFfmgpQooGY4zpN_w8q1SZ27fr2Cv6Ks3ltZErL8,20929
390
- letta/services/mcp_manager.py,sha256=QuvKQnwxMXrhiCaYlF50GZwXmbSU7PxmcOZ85sQ3t7I,47848
398
+ letta/services/mcp_manager.py,sha256=HecfO1oxsfC13s19WsAaSRscPz-S1F8UklYEnu9VFUA,53466
391
399
  letta/services/message_manager.py,sha256=tomsZidPT-I95sJsEsls-vj3qglehV7XNTs-m2zF8Bg,60629
392
400
  letta/services/organization_manager.py,sha256=JMW5oS_sr6vQQ27OgRV3BR1JL0MqyoGUDcpEOs3SLRY,5800
393
401
  letta/services/passage_manager.py,sha256=kOQjlJFz7Dy6e0NEECoFHhcH8hPIMNeEHxZ1JJ-R2Cs,52372
@@ -395,8 +403,8 @@ letta/services/per_agent_lock_manager.py,sha256=cMaW8r-qhucQbiK27jVqz8wzhlr2yuRN
395
403
  letta/services/provider_manager.py,sha256=93IlJurJDAIP8FVfblI9CW1myWNISiZJia0t8E6gaHg,11244
396
404
  letta/services/sandbox_config_manager.py,sha256=BwN3bebiFvcliTJpRkbOwGxmV5dUJ8B64kFfXAgAqDw,25989
397
405
  letta/services/source_manager.py,sha256=IteOcn9ydoO7KARoPh-JuuYwO4jWcsBoTsrkGWvDk9c,18864
398
- letta/services/step_manager.py,sha256=vfXhE-cuE40dv2Uv6pICrpleJeXMjYeEOrkvGcY_sqI,20987
399
- letta/services/telemetry_manager.py,sha256=zDdSsRrBYunmlemtUUL1Qh3bcKu5-nhL2n7AlAmVrgs,3297
406
+ letta/services/step_manager.py,sha256=psAer1Akg8DfHCFN1nRaMBv6WfVsh8b8hCmevmQC5LM,21883
407
+ letta/services/telemetry_manager.py,sha256=vES00FtL33aifIZs1ijE9yYrnzwE-zfgy-fhX4wRn94,3431
400
408
  letta/services/tool_manager.py,sha256=Iz7noHEv4A3gZBa6H4rJul4onygCgjIw1GqxHrmmr5c,44857
401
409
  letta/services/user_manager.py,sha256=XuG9eFrvax69sONx7t_D5kgpt5zNwyER-MhqLSDs8L4,9949
402
410
  letta/services/context_window_calculator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -418,7 +426,7 @@ letta/services/file_processor/parser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
418
426
  letta/services/file_processor/parser/base_parser.py,sha256=WfnXP6fL-xQz4eIHEWa6-ZNEAARbF_alowqH4BAUzJo,238
419
427
  letta/services/file_processor/parser/markitdown_parser.py,sha256=BpCM82ocDKbNTKhb2Zu3ffYUXR5fqudiUiwxmmUePg4,3715
420
428
  letta/services/file_processor/parser/mistral_parser.py,sha256=NmCdVdpAB5f-VjILJp85pz2rSjlghKEg7qKTFzZLhP8,2384
421
- letta/services/helpers/agent_manager_helper.py,sha256=JZP6PQFRVUV7tF2pzxG2aks3tqN4JWgkIcSXvp50hgU,50760
429
+ letta/services/helpers/agent_manager_helper.py,sha256=9rtIOvryf9Jw-8ZhA2UHDpL-Aam87xIR4vESFfenxX8,50880
422
430
  letta/services/helpers/tool_execution_helper.py,sha256=45L7woJ98jK5MQAnhE_4NZdCeyOOzC4328FTQPM7iTA,9159
423
431
  letta/services/helpers/tool_parser_helper.py,sha256=gJ-XwvqIgVPlnPVbseHL0YPfTUtk6svqC43-U4VcM5k,4467
424
432
  letta/services/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -430,20 +438,20 @@ letta/services/mcp/streamable_http_client.py,sha256=d-5wmrZ7MjLTFbaAUAITEC699TBz
430
438
  letta/services/mcp/types.py,sha256=8LYlBwWvdbvfy6ZdXJoin-7QmgmJC7samYXjQZL4KZs,1662
431
439
  letta/services/summarizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
432
440
  letta/services/summarizer/enums.py,sha256=lo2E1DKB-s2Ydx4PcLia1PIRUOY5yTSsFt_0EZVV2r0,279
433
- letta/services/summarizer/summarizer.py,sha256=hRGkiPvcX3u5PSOxCrbwL4G1RCSlFaHAaB5FObZCuSY,18977
441
+ letta/services/summarizer/summarizer.py,sha256=mnagbPoGvvQqgFIIdSX0kZTp4KokAVG4E8skcFtEflA,20041
434
442
  letta/services/tool_executor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
435
443
  letta/services/tool_executor/builtin_tool_executor.py,sha256=QKPFXbgzYQobqWRuFs9RhVcQ1d53q8-yV_GFdR2IX88,9718
436
- letta/services/tool_executor/composio_tool_executor.py,sha256=ia2AA_WDOseR8Ylam-HEayR7OiyfNSb1sSUrjwqlmFM,2308
444
+ letta/services/tool_executor/composio_tool_executor.py,sha256=BmQokzS1Ze-8oyHSWNX_T2dQ-Y-YqKuShbz8B1czIIk,2284
437
445
  letta/services/tool_executor/core_tool_executor.py,sha256=bd9x0M9Ttj3FqoIUU66k2FHa2PVY0OlUHqs1aLZYxFI,22624
438
446
  letta/services/tool_executor/files_tool_executor.py,sha256=nlXk0w-t_dLiN7fpUrnBrHGIwWIEmSkcXa7b_YJs2ME,37781
439
447
  letta/services/tool_executor/mcp_tool_executor.py,sha256=2zEXmkKsH-IGbMG2Xw1S9op4eL21g25RA4vGImB29KY,2000
440
448
  letta/services/tool_executor/multi_agent_tool_executor.py,sha256=LIg9yh8BlfYokP_29WryLZPPSMqEsJUwc0mZGMlhc00,5724
441
- letta/services/tool_executor/sandbox_tool_executor.py,sha256=LamEZUVqsiBfBL9S1uQMXFGQOXqJlXK9ZrfpZBk5jsA,6258
449
+ letta/services/tool_executor/sandbox_tool_executor.py,sha256=bwMeoQehXdUvCDli-QMkyVn6HM6_mHOSDqPWlrlrRJc,6214
442
450
  letta/services/tool_executor/tool_execution_manager.py,sha256=Jz05CfUJAiVngwLV_qAgY8LwSHZGmp7poRcVJxOJPRE,6950
443
451
  letta/services/tool_executor/tool_execution_sandbox.py,sha256=mDK8ZrtC-Fe8MY9gmhONMsjxiiSCJtL4bTrpECKksgQ,25908
444
452
  letta/services/tool_executor/tool_executor_base.py,sha256=4b1GU0LZc8iwbM3TisqBVOxsE2H6BiFZ3-r11IrtZ1U,1566
445
453
  letta/services/tool_sandbox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
446
- letta/services/tool_sandbox/base.py,sha256=afzDoYo-Jw9shnAEzQubIV6H8Q2kJQ_6elWlQUr-sGY,8120
454
+ letta/services/tool_sandbox/base.py,sha256=BhpAU657kqmtsFCYxxrEgMqawl9Fz8cOhfuePmszlUI,13476
447
455
  letta/services/tool_sandbox/e2b_sandbox.py,sha256=7h7quhbJRV1eIztZPVPgJLYwgHS3ZiaaMvTPrt01F1U,10294
448
456
  letta/services/tool_sandbox/local_sandbox.py,sha256=4DnzszQ0VRIKo9kejfYyp4UTOQW_NTTfebhjeLtqOIs,11992
449
457
  letta/services/tool_sandbox/modal_constants.py,sha256=AaXPxSlCj2BhfY5DGwQvqHXfikpurhV2iFsN7zxM3Is,454
@@ -456,10 +464,9 @@ letta/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
456
464
  letta/templates/sandbox_code_file.py.j2,sha256=eXga5J_04Z8-pGdwfOCDjcRnMceIqcF5ii0rUY3lmq4,2270
457
465
  letta/templates/sandbox_code_file_async.py.j2,sha256=lb7nh_P2W9VZHzU_9TxSCEMUod7SDziPXgvT75xVds0,2748
458
466
  letta/templates/summary_request_text.j2,sha256=ZttQwXonW2lk4pJLYzLK0pmo4EO4EtUUIXjgXKiizuc,842
459
- letta/templates/template_helper.py,sha256=HkG3zwRc5NVGmSTQu5PUTpz7LevK43bzXVaQuN8urf0,1634
460
467
  letta/types/__init__.py,sha256=hokKjCVFGEfR7SLMrtZsRsBfsC7yTIbgKPLdGg4K1eY,147
461
- letta_nightly-0.11.7.dev20250916104104.dist-info/METADATA,sha256=cSWgtOFp4KesOjDOUO2LAvt6UtJDRJKEnWXBgqRFLsA,24424
462
- letta_nightly-0.11.7.dev20250916104104.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
463
- letta_nightly-0.11.7.dev20250916104104.dist-info/entry_points.txt,sha256=m-94Paj-kxiR6Ktu0us0_2qfhn29DzF2oVzqBE6cu8w,41
464
- letta_nightly-0.11.7.dev20250916104104.dist-info/licenses/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
465
- letta_nightly-0.11.7.dev20250916104104.dist-info/RECORD,,
468
+ letta_nightly-0.11.7.dev20250918104055.dist-info/METADATA,sha256=cqEH7fCArhF3PxAVUcyA7a2DAN_gPOdVNCdzEpcf8Ew,24546
469
+ letta_nightly-0.11.7.dev20250918104055.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
470
+ letta_nightly-0.11.7.dev20250918104055.dist-info/entry_points.txt,sha256=m-94Paj-kxiR6Ktu0us0_2qfhn29DzF2oVzqBE6cu8w,41
471
+ letta_nightly-0.11.7.dev20250918104055.dist-info/licenses/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
472
+ letta_nightly-0.11.7.dev20250918104055.dist-info/RECORD,,
@@ -1,53 +0,0 @@
1
- import asyncio
2
- import os
3
-
4
- from jinja2 import Environment, FileSystemLoader, StrictUndefined, Template
5
-
6
- from letta.otel.tracing import trace_method
7
-
8
- TEMPLATE_DIR = os.path.dirname(__file__)
9
-
10
- # Synchronous environment (for backward compatibility)
11
- jinja_env = Environment(
12
- loader=FileSystemLoader(TEMPLATE_DIR),
13
- undefined=StrictUndefined,
14
- trim_blocks=True,
15
- lstrip_blocks=True,
16
- )
17
-
18
- # Async-enabled environment
19
- jinja_async_env = Environment(
20
- loader=FileSystemLoader(TEMPLATE_DIR),
21
- undefined=StrictUndefined,
22
- trim_blocks=True,
23
- lstrip_blocks=True,
24
- enable_async=True, # Enable async support
25
- )
26
-
27
-
28
- @trace_method
29
- def render_template(template_name: str, **kwargs):
30
- """Synchronous template rendering function (kept for backward compatibility)"""
31
- template = jinja_env.get_template(template_name)
32
- return template.render(**kwargs)
33
-
34
-
35
- @trace_method
36
- async def render_template_async(template_name: str, **kwargs):
37
- """Asynchronous template rendering function that doesn't block the event loop"""
38
- template = jinja_async_env.get_template(template_name)
39
- return await template.render_async(**kwargs)
40
-
41
-
42
- @trace_method
43
- async def render_template_in_thread(template_name: str, **kwargs):
44
- """Asynchronously render a template from a string"""
45
- template = jinja_env.get_template(template_name)
46
- return await asyncio.to_thread(template.render, **kwargs)
47
-
48
-
49
- @trace_method
50
- async def render_string_async(template_string: str, **kwargs):
51
- """Asynchronously render a template from a string"""
52
- template = Template(template_string, enable_async=True)
53
- return await template.render_async(**kwargs)