letta-nightly 0.7.21.dev20250522104246__py3-none-any.whl → 0.7.22.dev20250523104244__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.
- letta/__init__.py +2 -2
- letta/agents/base_agent.py +4 -2
- letta/agents/letta_agent.py +3 -10
- letta/agents/letta_agent_batch.py +6 -6
- letta/cli/cli.py +0 -316
- letta/cli/cli_load.py +0 -52
- letta/client/client.py +2 -1554
- letta/data_sources/connectors.py +4 -2
- letta/functions/ast_parsers.py +33 -43
- letta/groups/sleeptime_multi_agent_v2.py +49 -13
- letta/jobs/llm_batch_job_polling.py +3 -3
- letta/jobs/scheduler.py +20 -19
- letta/llm_api/anthropic_client.py +3 -0
- letta/llm_api/google_vertex_client.py +5 -0
- letta/llm_api/openai_client.py +5 -0
- letta/main.py +2 -362
- letta/server/db.py +5 -0
- letta/server/rest_api/routers/v1/agents.py +72 -43
- letta/server/rest_api/routers/v1/llms.py +2 -2
- letta/server/rest_api/routers/v1/messages.py +5 -3
- letta/server/rest_api/routers/v1/sandbox_configs.py +18 -18
- letta/server/rest_api/routers/v1/sources.py +49 -36
- letta/server/server.py +53 -22
- letta/services/agent_manager.py +797 -124
- letta/services/block_manager.py +14 -62
- letta/services/group_manager.py +37 -0
- letta/services/identity_manager.py +9 -0
- letta/services/job_manager.py +17 -0
- letta/services/llm_batch_manager.py +88 -64
- letta/services/message_manager.py +19 -0
- letta/services/organization_manager.py +10 -0
- letta/services/passage_manager.py +13 -0
- letta/services/per_agent_lock_manager.py +4 -0
- letta/services/provider_manager.py +34 -0
- letta/services/sandbox_config_manager.py +130 -0
- letta/services/source_manager.py +59 -44
- letta/services/step_manager.py +8 -1
- letta/services/tool_manager.py +21 -0
- letta/services/tool_sandbox/e2b_sandbox.py +4 -2
- letta/services/tool_sandbox/local_sandbox.py +7 -3
- letta/services/user_manager.py +16 -0
- {letta_nightly-0.7.21.dev20250522104246.dist-info → letta_nightly-0.7.22.dev20250523104244.dist-info}/METADATA +1 -1
- {letta_nightly-0.7.21.dev20250522104246.dist-info → letta_nightly-0.7.22.dev20250523104244.dist-info}/RECORD +46 -50
- letta/__main__.py +0 -3
- letta/benchmark/benchmark.py +0 -98
- letta/benchmark/constants.py +0 -14
- letta/cli/cli_config.py +0 -227
- {letta_nightly-0.7.21.dev20250522104246.dist-info → letta_nightly-0.7.22.dev20250523104244.dist-info}/LICENSE +0 -0
- {letta_nightly-0.7.21.dev20250522104246.dist-info → letta_nightly-0.7.22.dev20250523104244.dist-info}/WHEEL +0 -0
- {letta_nightly-0.7.21.dev20250522104246.dist-info → letta_nightly-0.7.22.dev20250523104244.dist-info}/entry_points.txt +0 -0
letta/services/tool_manager.py
CHANGED
@@ -26,6 +26,7 @@ from letta.schemas.tool import Tool as PydanticTool
|
|
26
26
|
from letta.schemas.tool import ToolCreate, ToolUpdate
|
27
27
|
from letta.schemas.user import User as PydanticUser
|
28
28
|
from letta.server.db import db_registry
|
29
|
+
from letta.tracing import trace_method
|
29
30
|
from letta.utils import enforce_types, printd
|
30
31
|
|
31
32
|
logger = get_logger(__name__)
|
@@ -36,6 +37,7 @@ class ToolManager:
|
|
36
37
|
|
37
38
|
# TODO: Refactor this across the codebase to use CreateTool instead of passing in a Tool object
|
38
39
|
@enforce_types
|
40
|
+
@trace_method
|
39
41
|
def create_or_update_tool(self, pydantic_tool: PydanticTool, actor: PydanticUser) -> PydanticTool:
|
40
42
|
"""Create a new tool based on the ToolCreate schema."""
|
41
43
|
tool_id = self.get_tool_id_by_name(tool_name=pydantic_tool.name, actor=actor)
|
@@ -62,6 +64,7 @@ class ToolManager:
|
|
62
64
|
return tool
|
63
65
|
|
64
66
|
@enforce_types
|
67
|
+
@trace_method
|
65
68
|
async def create_or_update_tool_async(self, pydantic_tool: PydanticTool, actor: PydanticUser) -> PydanticTool:
|
66
69
|
"""Create a new tool based on the ToolCreate schema."""
|
67
70
|
tool_id = await self.get_tool_id_by_name_async(tool_name=pydantic_tool.name, actor=actor)
|
@@ -88,6 +91,7 @@ class ToolManager:
|
|
88
91
|
return tool
|
89
92
|
|
90
93
|
@enforce_types
|
94
|
+
@trace_method
|
91
95
|
def create_or_update_mcp_tool(self, tool_create: ToolCreate, mcp_server_name: str, actor: PydanticUser) -> PydanticTool:
|
92
96
|
metadata = {MCP_TOOL_TAG_NAME_PREFIX: {"server_name": mcp_server_name}}
|
93
97
|
return self.create_or_update_tool(
|
@@ -98,18 +102,21 @@ class ToolManager:
|
|
98
102
|
)
|
99
103
|
|
100
104
|
@enforce_types
|
105
|
+
@trace_method
|
101
106
|
def create_or_update_composio_tool(self, tool_create: ToolCreate, actor: PydanticUser) -> PydanticTool:
|
102
107
|
return self.create_or_update_tool(
|
103
108
|
PydanticTool(tool_type=ToolType.EXTERNAL_COMPOSIO, name=tool_create.json_schema["name"], **tool_create.model_dump()), actor
|
104
109
|
)
|
105
110
|
|
106
111
|
@enforce_types
|
112
|
+
@trace_method
|
107
113
|
def create_or_update_langchain_tool(self, tool_create: ToolCreate, actor: PydanticUser) -> PydanticTool:
|
108
114
|
return self.create_or_update_tool(
|
109
115
|
PydanticTool(tool_type=ToolType.EXTERNAL_LANGCHAIN, name=tool_create.json_schema["name"], **tool_create.model_dump()), actor
|
110
116
|
)
|
111
117
|
|
112
118
|
@enforce_types
|
119
|
+
@trace_method
|
113
120
|
def create_tool(self, pydantic_tool: PydanticTool, actor: PydanticUser) -> PydanticTool:
|
114
121
|
"""Create a new tool based on the ToolCreate schema."""
|
115
122
|
with db_registry.session() as session:
|
@@ -125,6 +132,7 @@ class ToolManager:
|
|
125
132
|
return tool.to_pydantic()
|
126
133
|
|
127
134
|
@enforce_types
|
135
|
+
@trace_method
|
128
136
|
async def create_tool_async(self, pydantic_tool: PydanticTool, actor: PydanticUser) -> PydanticTool:
|
129
137
|
"""Create a new tool based on the ToolCreate schema."""
|
130
138
|
async with db_registry.async_session() as session:
|
@@ -140,6 +148,7 @@ class ToolManager:
|
|
140
148
|
return tool.to_pydantic()
|
141
149
|
|
142
150
|
@enforce_types
|
151
|
+
@trace_method
|
143
152
|
def get_tool_by_id(self, tool_id: str, actor: PydanticUser) -> PydanticTool:
|
144
153
|
"""Fetch a tool by its ID."""
|
145
154
|
with db_registry.session() as session:
|
@@ -149,6 +158,7 @@ class ToolManager:
|
|
149
158
|
return tool.to_pydantic()
|
150
159
|
|
151
160
|
@enforce_types
|
161
|
+
@trace_method
|
152
162
|
async def get_tool_by_id_async(self, tool_id: str, actor: PydanticUser) -> PydanticTool:
|
153
163
|
"""Fetch a tool by its ID."""
|
154
164
|
async with db_registry.async_session() as session:
|
@@ -158,6 +168,7 @@ class ToolManager:
|
|
158
168
|
return tool.to_pydantic()
|
159
169
|
|
160
170
|
@enforce_types
|
171
|
+
@trace_method
|
161
172
|
def get_tool_by_name(self, tool_name: str, actor: PydanticUser) -> Optional[PydanticTool]:
|
162
173
|
"""Retrieve a tool by its name and a user. We derive the organization from the user, and retrieve that tool."""
|
163
174
|
try:
|
@@ -168,6 +179,7 @@ class ToolManager:
|
|
168
179
|
return None
|
169
180
|
|
170
181
|
@enforce_types
|
182
|
+
@trace_method
|
171
183
|
async def get_tool_by_name_async(self, tool_name: str, actor: PydanticUser) -> Optional[PydanticTool]:
|
172
184
|
"""Retrieve a tool by its name and a user. We derive the organization from the user, and retrieve that tool."""
|
173
185
|
try:
|
@@ -178,6 +190,7 @@ class ToolManager:
|
|
178
190
|
return None
|
179
191
|
|
180
192
|
@enforce_types
|
193
|
+
@trace_method
|
181
194
|
def get_tool_id_by_name(self, tool_name: str, actor: PydanticUser) -> Optional[str]:
|
182
195
|
"""Retrieve a tool by its name and a user. We derive the organization from the user, and retrieve that tool."""
|
183
196
|
try:
|
@@ -188,6 +201,7 @@ class ToolManager:
|
|
188
201
|
return None
|
189
202
|
|
190
203
|
@enforce_types
|
204
|
+
@trace_method
|
191
205
|
async def get_tool_id_by_name_async(self, tool_name: str, actor: PydanticUser) -> Optional[str]:
|
192
206
|
"""Retrieve a tool by its name and a user. We derive the organization from the user, and retrieve that tool."""
|
193
207
|
try:
|
@@ -198,6 +212,7 @@ class ToolManager:
|
|
198
212
|
return None
|
199
213
|
|
200
214
|
@enforce_types
|
215
|
+
@trace_method
|
201
216
|
async def list_tools_async(self, actor: PydanticUser, after: Optional[str] = None, limit: Optional[int] = 50) -> List[PydanticTool]:
|
202
217
|
"""List all tools with optional pagination."""
|
203
218
|
async with db_registry.async_session() as session:
|
@@ -223,6 +238,7 @@ class ToolManager:
|
|
223
238
|
return results
|
224
239
|
|
225
240
|
@enforce_types
|
241
|
+
@trace_method
|
226
242
|
def size(
|
227
243
|
self,
|
228
244
|
actor: PydanticUser,
|
@@ -239,6 +255,7 @@ class ToolManager:
|
|
239
255
|
return ToolModel.size(db_session=session, actor=actor, name=LETTA_TOOL_SET)
|
240
256
|
|
241
257
|
@enforce_types
|
258
|
+
@trace_method
|
242
259
|
def update_tool_by_id(
|
243
260
|
self, tool_id: str, tool_update: ToolUpdate, actor: PydanticUser, updated_tool_type: Optional[ToolType] = None
|
244
261
|
) -> PydanticTool:
|
@@ -267,6 +284,7 @@ class ToolManager:
|
|
267
284
|
return tool.update(db_session=session, actor=actor).to_pydantic()
|
268
285
|
|
269
286
|
@enforce_types
|
287
|
+
@trace_method
|
270
288
|
async def update_tool_by_id_async(
|
271
289
|
self, tool_id: str, tool_update: ToolUpdate, actor: PydanticUser, updated_tool_type: Optional[ToolType] = None
|
272
290
|
) -> PydanticTool:
|
@@ -296,6 +314,7 @@ class ToolManager:
|
|
296
314
|
return tool.to_pydantic()
|
297
315
|
|
298
316
|
@enforce_types
|
317
|
+
@trace_method
|
299
318
|
def delete_tool_by_id(self, tool_id: str, actor: PydanticUser) -> None:
|
300
319
|
"""Delete a tool by its ID."""
|
301
320
|
with db_registry.session() as session:
|
@@ -306,6 +325,7 @@ class ToolManager:
|
|
306
325
|
raise ValueError(f"Tool with id {tool_id} not found.")
|
307
326
|
|
308
327
|
@enforce_types
|
328
|
+
@trace_method
|
309
329
|
def upsert_base_tools(self, actor: PydanticUser) -> List[PydanticTool]:
|
310
330
|
"""Add default tools in base.py and multi_agent.py"""
|
311
331
|
functions_to_schema = {}
|
@@ -371,6 +391,7 @@ class ToolManager:
|
|
371
391
|
return tools
|
372
392
|
|
373
393
|
@enforce_types
|
394
|
+
@trace_method
|
374
395
|
async def upsert_base_tools_async(self, actor: PydanticUser) -> List[PydanticTool]:
|
375
396
|
"""Add default tools in base.py and multi_agent.py"""
|
376
397
|
functions_to_schema = {}
|
@@ -53,7 +53,9 @@ class AsyncToolSandboxE2B(AsyncToolSandboxBase):
|
|
53
53
|
if self.provided_sandbox_config:
|
54
54
|
sbx_config = self.provided_sandbox_config
|
55
55
|
else:
|
56
|
-
sbx_config = self.sandbox_config_manager.
|
56
|
+
sbx_config = await self.sandbox_config_manager.get_or_create_default_sandbox_config_async(
|
57
|
+
sandbox_type=SandboxType.E2B, actor=self.user
|
58
|
+
)
|
57
59
|
# TODO: So this defaults to force recreating always
|
58
60
|
# TODO: Eventually, provision one sandbox PER agent, and that agent re-uses that one specifically
|
59
61
|
e2b_sandbox = await self.create_e2b_sandbox_with_metadata_hash(sandbox_config=sbx_config)
|
@@ -71,7 +73,7 @@ class AsyncToolSandboxE2B(AsyncToolSandboxBase):
|
|
71
73
|
if self.provided_sandbox_env_vars:
|
72
74
|
env_vars.update(self.provided_sandbox_env_vars)
|
73
75
|
else:
|
74
|
-
db_env_vars = self.sandbox_config_manager.
|
76
|
+
db_env_vars = await self.sandbox_config_manager.get_sandbox_env_vars_as_dict_async(
|
75
77
|
sandbox_config_id=sbx_config.id, actor=self.user, limit=100
|
76
78
|
)
|
77
79
|
env_vars.update(db_env_vars)
|
@@ -60,14 +60,16 @@ class AsyncToolSandboxLocal(AsyncToolSandboxBase):
|
|
60
60
|
additional_env_vars: Optional[Dict],
|
61
61
|
) -> ToolExecutionResult:
|
62
62
|
"""
|
63
|
-
Unified
|
63
|
+
Unified asynchronous method to run the tool in a local sandbox environment,
|
64
64
|
always via subprocess for multi-core parallelism.
|
65
65
|
"""
|
66
66
|
# Get sandbox configuration
|
67
67
|
if self.provided_sandbox_config:
|
68
68
|
sbx_config = self.provided_sandbox_config
|
69
69
|
else:
|
70
|
-
sbx_config = self.sandbox_config_manager.
|
70
|
+
sbx_config = await self.sandbox_config_manager.get_or_create_default_sandbox_config_async(
|
71
|
+
sandbox_type=SandboxType.LOCAL, actor=self.user
|
72
|
+
)
|
71
73
|
local_configs = sbx_config.get_local_config()
|
72
74
|
use_venv = local_configs.use_venv
|
73
75
|
|
@@ -76,7 +78,9 @@ class AsyncToolSandboxLocal(AsyncToolSandboxBase):
|
|
76
78
|
if self.provided_sandbox_env_vars:
|
77
79
|
env.update(self.provided_sandbox_env_vars)
|
78
80
|
else:
|
79
|
-
env_vars = self.sandbox_config_manager.
|
81
|
+
env_vars = await self.sandbox_config_manager.get_sandbox_env_vars_as_dict_async(
|
82
|
+
sandbox_config_id=sbx_config.id, actor=self.user, limit=100
|
83
|
+
)
|
80
84
|
env.update(env_vars)
|
81
85
|
|
82
86
|
if agent_state:
|
letta/services/user_manager.py
CHANGED
@@ -7,6 +7,7 @@ from letta.schemas.user import User as PydanticUser
|
|
7
7
|
from letta.schemas.user import UserUpdate
|
8
8
|
from letta.server.db import db_registry
|
9
9
|
from letta.services.organization_manager import OrganizationManager
|
10
|
+
from letta.tracing import trace_method
|
10
11
|
from letta.utils import enforce_types
|
11
12
|
|
12
13
|
|
@@ -17,6 +18,7 @@ class UserManager:
|
|
17
18
|
DEFAULT_USER_ID = "user-00000000-0000-4000-8000-000000000000"
|
18
19
|
|
19
20
|
@enforce_types
|
21
|
+
@trace_method
|
20
22
|
def create_default_user(self, org_id: str = OrganizationManager.DEFAULT_ORG_ID) -> PydanticUser:
|
21
23
|
"""Create the default user."""
|
22
24
|
with db_registry.session() as session:
|
@@ -37,6 +39,7 @@ class UserManager:
|
|
37
39
|
return user.to_pydantic()
|
38
40
|
|
39
41
|
@enforce_types
|
42
|
+
@trace_method
|
40
43
|
def create_user(self, pydantic_user: PydanticUser) -> PydanticUser:
|
41
44
|
"""Create a new user if it doesn't already exist."""
|
42
45
|
with db_registry.session() as session:
|
@@ -45,6 +48,7 @@ class UserManager:
|
|
45
48
|
return new_user.to_pydantic()
|
46
49
|
|
47
50
|
@enforce_types
|
51
|
+
@trace_method
|
48
52
|
async def create_actor_async(self, pydantic_user: PydanticUser) -> PydanticUser:
|
49
53
|
"""Create a new user if it doesn't already exist (async version)."""
|
50
54
|
async with db_registry.async_session() as session:
|
@@ -53,6 +57,7 @@ class UserManager:
|
|
53
57
|
return new_user.to_pydantic()
|
54
58
|
|
55
59
|
@enforce_types
|
60
|
+
@trace_method
|
56
61
|
def update_user(self, user_update: UserUpdate) -> PydanticUser:
|
57
62
|
"""Update user details."""
|
58
63
|
with db_registry.session() as session:
|
@@ -69,6 +74,7 @@ class UserManager:
|
|
69
74
|
return existing_user.to_pydantic()
|
70
75
|
|
71
76
|
@enforce_types
|
77
|
+
@trace_method
|
72
78
|
async def update_actor_async(self, user_update: UserUpdate) -> PydanticUser:
|
73
79
|
"""Update user details (async version)."""
|
74
80
|
async with db_registry.async_session() as session:
|
@@ -85,6 +91,7 @@ class UserManager:
|
|
85
91
|
return existing_user.to_pydantic()
|
86
92
|
|
87
93
|
@enforce_types
|
94
|
+
@trace_method
|
88
95
|
def delete_user_by_id(self, user_id: str):
|
89
96
|
"""Delete a user and their associated records (agents, sources, mappings)."""
|
90
97
|
with db_registry.session() as session:
|
@@ -95,6 +102,7 @@ class UserManager:
|
|
95
102
|
session.commit()
|
96
103
|
|
97
104
|
@enforce_types
|
105
|
+
@trace_method
|
98
106
|
async def delete_actor_by_id_async(self, user_id: str):
|
99
107
|
"""Delete a user and their associated records (agents, sources, mappings) asynchronously."""
|
100
108
|
async with db_registry.async_session() as session:
|
@@ -103,6 +111,7 @@ class UserManager:
|
|
103
111
|
await user.hard_delete_async(session)
|
104
112
|
|
105
113
|
@enforce_types
|
114
|
+
@trace_method
|
106
115
|
def get_user_by_id(self, user_id: str) -> PydanticUser:
|
107
116
|
"""Fetch a user by ID."""
|
108
117
|
with db_registry.session() as session:
|
@@ -110,6 +119,7 @@ class UserManager:
|
|
110
119
|
return user.to_pydantic()
|
111
120
|
|
112
121
|
@enforce_types
|
122
|
+
@trace_method
|
113
123
|
async def get_actor_by_id_async(self, actor_id: str) -> PydanticUser:
|
114
124
|
"""Fetch a user by ID asynchronously."""
|
115
125
|
async with db_registry.async_session() as session:
|
@@ -117,6 +127,7 @@ class UserManager:
|
|
117
127
|
return user.to_pydantic()
|
118
128
|
|
119
129
|
@enforce_types
|
130
|
+
@trace_method
|
120
131
|
def get_default_user(self) -> PydanticUser:
|
121
132
|
"""Fetch the default user. If it doesn't exist, create it."""
|
122
133
|
try:
|
@@ -125,6 +136,7 @@ class UserManager:
|
|
125
136
|
return self.create_default_user()
|
126
137
|
|
127
138
|
@enforce_types
|
139
|
+
@trace_method
|
128
140
|
def get_user_or_default(self, user_id: Optional[str] = None):
|
129
141
|
"""Fetch the user or default user."""
|
130
142
|
if not user_id:
|
@@ -136,6 +148,7 @@ class UserManager:
|
|
136
148
|
return self.get_default_user()
|
137
149
|
|
138
150
|
@enforce_types
|
151
|
+
@trace_method
|
139
152
|
async def get_default_actor_async(self) -> PydanticUser:
|
140
153
|
"""Fetch the default user asynchronously. If it doesn't exist, create it."""
|
141
154
|
try:
|
@@ -145,6 +158,7 @@ class UserManager:
|
|
145
158
|
return self.create_default_user(org_id=self.DEFAULT_ORG_ID)
|
146
159
|
|
147
160
|
@enforce_types
|
161
|
+
@trace_method
|
148
162
|
async def get_actor_or_default_async(self, actor_id: Optional[str] = None):
|
149
163
|
"""Fetch the user or default user asynchronously."""
|
150
164
|
if not actor_id:
|
@@ -156,6 +170,7 @@ class UserManager:
|
|
156
170
|
return await self.get_default_actor_async()
|
157
171
|
|
158
172
|
@enforce_types
|
173
|
+
@trace_method
|
159
174
|
def list_users(self, after: Optional[str] = None, limit: Optional[int] = 50) -> List[PydanticUser]:
|
160
175
|
"""List all users with optional pagination."""
|
161
176
|
with db_registry.session() as session:
|
@@ -167,6 +182,7 @@ class UserManager:
|
|
167
182
|
return [user.to_pydantic() for user in users]
|
168
183
|
|
169
184
|
@enforce_types
|
185
|
+
@trace_method
|
170
186
|
async def list_actors_async(self, after: Optional[str] = None, limit: Optional[int] = 50) -> List[PydanticUser]:
|
171
187
|
"""List all users with optional pagination (async version)."""
|
172
188
|
async with db_registry.async_session() as session:
|
@@ -1,32 +1,28 @@
|
|
1
|
-
letta/__init__.py,sha256=
|
2
|
-
letta/__main__.py,sha256=6Hs2PV7EYc5Tid4g4OtcLXhqVHiNYTGzSBdoOnW2HXA,29
|
1
|
+
letta/__init__.py,sha256=AkQ-S44jf9AYGDZrBONaQfZis2Gxwo-wIMuyk9rGkyA,888
|
3
2
|
letta/agent.py,sha256=2r6xovRHeUnmWZ6WJoIP217ryse5Q3Bkco1JXiV599w,87459
|
4
3
|
letta/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
|
-
letta/agents/base_agent.py,sha256
|
4
|
+
letta/agents/base_agent.py,sha256=mdFEpYBVyFjmt6BzO9YrpJnH99RkBWZ9gnP3Q_bnbBI,5505
|
6
5
|
letta/agents/ephemeral_agent.py,sha256=el-SUF_16vv_7OouIR-6z0pAE9Yc0PLibygvfCKwqfo,2736
|
7
6
|
letta/agents/exceptions.py,sha256=BQY4D4w32OYHM63CM19ko7dPwZiAzUs3NbKvzmCTcJg,318
|
8
7
|
letta/agents/helpers.py,sha256=nwmgbtxAANwUsuwZqU4SFiQ3Kc_ULk78H76Z_K6I-ZQ,6127
|
9
|
-
letta/agents/letta_agent.py,sha256=
|
10
|
-
letta/agents/letta_agent_batch.py,sha256=
|
8
|
+
letta/agents/letta_agent.py,sha256=OyshUQQ0IdhS0KM6pyRMUsrMPzwjZAKsmZnJN2hPmKc,32673
|
9
|
+
letta/agents/letta_agent_batch.py,sha256=0q7L2klbWm4IsE677pR6lT0Imz71UHQgXTkEeUscOKI,27238
|
11
10
|
letta/agents/voice_agent.py,sha256=bZX31bsf3290zuuElx93JnAoKHVoiLRuBiYhQh2aGSc,21462
|
12
11
|
letta/agents/voice_sleeptime_agent.py,sha256=gB44pOeIQJer_XqdxSNt7Txv0JaQAv9pzsiEFO9GYdY,7346
|
13
|
-
letta/
|
14
|
-
letta/
|
15
|
-
letta/cli/cli.py,sha256=Y3UC0mCvGR283sdegnqgq-6Fcwie59baXy3P0Cf0V-k,16569
|
16
|
-
letta/cli/cli_config.py,sha256=MNMhIAAjXiAy2gX_gAtqiY0Ya6VNbzXJWjIcRVEZa-k,8597
|
17
|
-
letta/cli/cli_load.py,sha256=vER0PwpHnsCZtCHcR2YjEXM-VVuO9jhfQibdo3gI3S0,2703
|
12
|
+
letta/cli/cli.py,sha256=tKtghlX36Rp0_HbkMosvlAapL07JXhA0vKLGTNKnxSQ,1615
|
13
|
+
letta/cli/cli_load.py,sha256=paAyDq6e-8D1ZWo8JvXIiA1N7FeKcQMSWgcr2vU_1Gs,319
|
18
14
|
letta/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
|
-
letta/client/client.py,sha256=
|
15
|
+
letta/client/client.py,sha256=mCVob5MI5hegCHedeg88aiYwpPs8NiiLjOIoAmEFiS8,84826
|
20
16
|
letta/client/streaming.py,sha256=UsDS_tDTsA3HgYryIDvGGmx_dWfnfQwtmEwLi4Z89Ik,4701
|
21
17
|
letta/client/utils.py,sha256=VCGV-op5ZSmurd4yw7Vhf93XDQ0BkyBT8qsuV7EqfiU,2859
|
22
18
|
letta/config.py,sha256=JFGY4TWW0Wm5fTbZamOwWqk5G8Nn-TXyhgByGoAqy2c,12375
|
23
19
|
letta/constants.py,sha256=c7EsZ3p3ki-MYH8ILFugpL71NeESeH-F4lTiGT3tZvE,11287
|
24
|
-
letta/data_sources/connectors.py,sha256=
|
20
|
+
letta/data_sources/connectors.py,sha256=szuEaPgjsOOg7HUFv4hOcJDSIwq7SguO_rqi2La_Mmo,7261
|
25
21
|
letta/data_sources/connectors_helper.py,sha256=oQpVlc-BjSz9sTZ7sp4PsJSXJbBKpZPi3Dam03CURTQ,3376
|
26
22
|
letta/embeddings.py,sha256=KvC2bl5tARpVY9xcFmw4Cwu1vN0DoH266v2mSUZqwkY,10528
|
27
23
|
letta/errors.py,sha256=GCgFBvluPxebfz1_wB0y-82N8rlVPhGIn-x7UfV3wVU,6961
|
28
24
|
letta/functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
|
-
letta/functions/ast_parsers.py,sha256=
|
25
|
+
letta/functions/ast_parsers.py,sha256=PnHLWg0NQM665RLmK5A1BvWwyjk2FcfqkYZPQAXEdAU,5213
|
30
26
|
letta/functions/async_composio_toolset.py,sha256=J6iOOT_rFRS4cpOAaH6R3YDvutPr4fTgpTFHgeaUzu4,4633
|
31
27
|
letta/functions/composio_helpers.py,sha256=mpybCYcB93HWoKrmQIqcuRQG9IH2lHWhsPQx2i8XP_8,3593
|
32
28
|
letta/functions/function_sets/base.py,sha256=GqInIQ7hMPiuPlrHF_u7A3Gds7G1Za-mu9ML8A5Rg6k,16096
|
@@ -48,7 +44,7 @@ letta/groups/dynamic_multi_agent.py,sha256=OLCxhICFLYyx8wjKGPr1INc6pniEuk4YGZyZh
|
|
48
44
|
letta/groups/helpers.py,sha256=AcrguRkshtXEV31eWKRfGYEVub8plHsU2kg3QpezbZw,4500
|
49
45
|
letta/groups/round_robin_multi_agent.py,sha256=uUJff0bO68udOREiKFWeS7eEQlk3bF7hcfLSFXMScqI,6999
|
50
46
|
letta/groups/sleeptime_multi_agent.py,sha256=umA62MpAuML-vhfkcY0nmqj2O4KAZsnEgyaNhYlPrDo,10483
|
51
|
-
letta/groups/sleeptime_multi_agent_v2.py,sha256=
|
47
|
+
letta/groups/sleeptime_multi_agent_v2.py,sha256=Cu-iCQRIXcodq5EXE0EiUyfM3pUwiYj81LLCAyUftYg,11618
|
52
48
|
letta/groups/supervisor_multi_agent.py,sha256=ml8Gi9gyVjPuVZjAJAkpGZDjnM7GOS50NkKf5SIutvQ,4455
|
53
49
|
letta/helpers/__init__.py,sha256=p0luQ1Oe3Skc6sH4O58aHHA3Qbkyjifpuq0DZ1GAY0U,59
|
54
50
|
letta/helpers/composio_helpers.py,sha256=5SznD1Y0Y1rV4_wu-uCaZdDU2tNedk-RIX0M9-0r6yo,947
|
@@ -69,12 +65,12 @@ letta/interfaces/openai_streaming_interface.py,sha256=XEfjm8lvjDiP5aHr9W1PsV69Tj
|
|
69
65
|
letta/interfaces/utils.py,sha256=c6jvO0dBYHh8DQnlN-B0qeNC64d3CSunhfqlFA4pJTY,278
|
70
66
|
letta/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
71
67
|
letta/jobs/helpers.py,sha256=kO4aj954xsQ1RAmkjY6LQQ7JEIGuhaxB1e9pzrYKHAY,914
|
72
|
-
letta/jobs/llm_batch_job_polling.py,sha256=
|
73
|
-
letta/jobs/scheduler.py,sha256=
|
68
|
+
letta/jobs/llm_batch_job_polling.py,sha256=Qv2zkV6ziu5t0Jd3WfGu092oG6CNRBnuX8CI0fpkS8c,10136
|
69
|
+
letta/jobs/scheduler.py,sha256=yVlXWn98gidCuvBU0ikrHFWLXxdKdkL1Kw55GugVARk,10510
|
74
70
|
letta/jobs/types.py,sha256=K8GKEnqEgAT6Kq4F2hUrBC4ZAFM9OkfOjVMStzxKuXQ,742
|
75
71
|
letta/llm_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
76
72
|
letta/llm_api/anthropic.py,sha256=_FIeOSpvynzYf9vWG1VAB7h1xOJgOAMMSeCdD3CfBRA,47009
|
77
|
-
letta/llm_api/anthropic_client.py,sha256=
|
73
|
+
letta/llm_api/anthropic_client.py,sha256=SwKwhXL_lGAj9G2cAQnkeesFB0ipAiWQYSVBqqbGH_Y,25888
|
78
74
|
letta/llm_api/aws_bedrock.py,sha256=kAPpKPRe4ZUa6fkxFbo8xwQgq4fJf3QoZEAP1LOCfaw,4168
|
79
75
|
letta/llm_api/azure_openai.py,sha256=YAkXwKyfnJFNhB45pkJVFsoxUNB_M74rQYchtw_CN6I,5099
|
80
76
|
letta/llm_api/azure_openai_constants.py,sha256=ZaR2IasJThijG0uhLKJThrixdAxLPD2IojfeaJ-KQMQ,294
|
@@ -82,14 +78,14 @@ letta/llm_api/cohere.py,sha256=IZ6LXyOFMYjWHTeNG9lvFxCdV_NIl0hY2q9SPFYXNkQ,14849
|
|
82
78
|
letta/llm_api/deepseek.py,sha256=b1mSW8gnBrpAI8d2GcBpDyLYDnuC-P1UP6xJPalfQS4,12456
|
83
79
|
letta/llm_api/google_ai_client.py,sha256=yIP4lJ1sJoryS_76FjSyzOTCOEnXZoyoo-MarR9YzU8,9401
|
84
80
|
letta/llm_api/google_constants.py,sha256=4PKWUNNbBHgHi4K5u9YaHr_8UC3fokfI6Qb6Dfpt4mU,693
|
85
|
-
letta/llm_api/google_vertex_client.py,sha256=
|
81
|
+
letta/llm_api/google_vertex_client.py,sha256=OCjEp0tTsTKkDVgY-3EwHSJRfyXvAv5ikYzNfIHACaU,22814
|
86
82
|
letta/llm_api/helpers.py,sha256=rpZInutKVKgoywreclisNSi2zVxwFinAzJIuxF6ll4I,17041
|
87
83
|
letta/llm_api/llm_api_tools.py,sha256=gMYoEvs5vSyvjos2eYJN6_BpQ2aNpt3zvyF7D2phbqY,30044
|
88
84
|
letta/llm_api/llm_client.py,sha256=sO9MwiSOJ_ycOFnYrQP0_g6cFkMSnrZqFDz1sUeBHD8,2098
|
89
85
|
letta/llm_api/llm_client_base.py,sha256=nbW70WZmk9bwLPzjgJ9ATeKjm3xzfZs7vk5lQE0QJ3U,6494
|
90
86
|
letta/llm_api/mistral.py,sha256=fHdfD9ug-rQIk2qn8tRKay1U6w9maF11ryhKi91FfXM,1593
|
91
87
|
letta/llm_api/openai.py,sha256=428s_NFgzah6ccEZFOfI5WS0uGafYKgOgE7KN_c0KfQ,27353
|
92
|
-
letta/llm_api/openai_client.py,sha256=
|
88
|
+
letta/llm_api/openai_client.py,sha256=eh07Oxwphau_GHvB2wvrFSj7OK_ed96IA27DFDXjxKk,15210
|
93
89
|
letta/local_llm/README.md,sha256=hFJyw5B0TU2jrh9nb0zGZMgdH-Ei1dSRfhvPQG_NSoU,168
|
94
90
|
letta/local_llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
95
91
|
letta/local_llm/chat_completion_proxy.py,sha256=gc5gaKoHP8QaWRulDeEYPk7Onl8KdCBmpF2l9znXKeQ,13853
|
@@ -128,7 +124,7 @@ letta/local_llm/webui/legacy_api.py,sha256=k3H3y4qp2Fs-XmP24iSIEyvq6wjWFWBzklY3-
|
|
128
124
|
letta/local_llm/webui/legacy_settings.py,sha256=BLmd3TSx5StnY3ibjwaxYATPt_Lvq-o1rlcc_-Q1JcU,538
|
129
125
|
letta/local_llm/webui/settings.py,sha256=gmLHfiOl1u4JmlAZU2d2O8YKF9lafdakyjwR_ftVPh8,552
|
130
126
|
letta/log.py,sha256=FbFwU9KEX7k0FBYhPl7fJ6uQ3NO3-ZbsnM2OpcTFXjo,2217
|
131
|
-
letta/main.py,sha256=
|
127
|
+
letta/main.py,sha256=wj4cawl4HP2ok-CqKVvqzSiOMahHC4t8FWxvuKKTWUA,317
|
132
128
|
letta/memory.py,sha256=HzAQxMLCKEUhb9q6fb4ZMeoAA8s4Tu7QLBXANv8OnXY,4273
|
133
129
|
letta/openai_backcompat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
134
130
|
letta/openai_backcompat/openai_object.py,sha256=GSzeCTwLpLD2fH4X8wVqzwdmoTjKK2I4PnriBY453lc,13505
|
@@ -256,7 +252,7 @@ letta/serialize_schemas/marshmallow_tool.py,sha256=jwU69BDCakPlYPSk-ta21kuvsURKO
|
|
256
252
|
letta/serialize_schemas/pydantic_agent_schema.py,sha256=NKq70niUVMI3_lxMKc3u3rOBUhm77bIFaPRj9aidMUQ,3006
|
257
253
|
letta/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
258
254
|
letta/server/constants.py,sha256=yAdGbLkzlOU_dLTx0lKDmAnj0ZgRXCEaIcPJWO69eaE,92
|
259
|
-
letta/server/db.py,sha256=
|
255
|
+
letta/server/db.py,sha256=Ob8_W7HXUduJS94a3d0jZ50EtSkYuv8kgOk6AjusyJ8,9985
|
260
256
|
letta/server/generate_openapi_schema.sh,sha256=0OtBhkC1g6CobVmNEd_m2B6sTdppjbJLXaM95icejvE,371
|
261
257
|
letta/server/rest_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
262
258
|
letta/server/rest_api/app.py,sha256=8Y5R_t_s4IAG7wRfdbmCeF5YT9pfGG4h6_kpUAaUwoQ,14771
|
@@ -270,20 +266,20 @@ letta/server/rest_api/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
|
|
270
266
|
letta/server/rest_api/routers/openai/chat_completions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
271
267
|
letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=QBWab1fn2LXVDMtc6li3gOzmrNzDiUw5WUJsMeeMZII,5076
|
272
268
|
letta/server/rest_api/routers/v1/__init__.py,sha256=JfSSttkEWu0W18NVVDxl8AGnd8Qhj0BXJNxntOB7070,1768
|
273
|
-
letta/server/rest_api/routers/v1/agents.py,sha256=
|
269
|
+
letta/server/rest_api/routers/v1/agents.py,sha256=evL3IHe5PR2Jmo3edT6hGv2BkHd7hB1EfC4Y4z3qOVc,38631
|
274
270
|
letta/server/rest_api/routers/v1/blocks.py,sha256=am8VeLcpWtZ1V6c9hl0q141uogijGWPbI3rlEoVzBPA,4677
|
275
271
|
letta/server/rest_api/routers/v1/embeddings.py,sha256=P-Dvt_HNKoTyjRwkScAMg1hlB3cNxMeAQwV7bSatsKI,957
|
276
272
|
letta/server/rest_api/routers/v1/groups.py,sha256=DT2tc4wwiq_gzmxefltEIrFSoqOntzhvmgqQy23varA,10738
|
277
273
|
letta/server/rest_api/routers/v1/health.py,sha256=MoOjkydhGcJXTiuJrKIB0etVXiRMdTa51S8RQ8-50DQ,399
|
278
274
|
letta/server/rest_api/routers/v1/identities.py,sha256=bPPjQd_UPMJ-IbBbaVmgwNFfbnBwF8zPGA-j3x2XeeU,7676
|
279
275
|
letta/server/rest_api/routers/v1/jobs.py,sha256=kQzn6CrH7y2lP0LR4x7e3FsERxJ_ZstlFXqE3kek1hQ,2778
|
280
|
-
letta/server/rest_api/routers/v1/llms.py,sha256=
|
281
|
-
letta/server/rest_api/routers/v1/messages.py,sha256=
|
276
|
+
letta/server/rest_api/routers/v1/llms.py,sha256=0VJuuGW9_ta0cBnSDtXd3Ngw7GjsqEN2NBf5U3b6M3I,1920
|
277
|
+
letta/server/rest_api/routers/v1/messages.py,sha256=z6K6HJlyML7LTqWizz4VU1p0MQJx6eo1BiFHObBizZs,7924
|
282
278
|
letta/server/rest_api/routers/v1/organizations.py,sha256=r7rj-cA3shgAgM0b2JCMqjYsDIFv3ruZjU7SYbPGGqg,2831
|
283
279
|
letta/server/rest_api/routers/v1/providers.py,sha256=qp6XT20tcZac64XDGF2QUyLhselnShrRcTDQBHExEbQ,4322
|
284
280
|
letta/server/rest_api/routers/v1/runs.py,sha256=rq-k5kYN0On7VBNSzoPJxZcBf13hZFaDx0IUJJ04_K8,8875
|
285
|
-
letta/server/rest_api/routers/v1/sandbox_configs.py,sha256=
|
286
|
-
letta/server/rest_api/routers/v1/sources.py,sha256=
|
281
|
+
letta/server/rest_api/routers/v1/sandbox_configs.py,sha256=g6JE1Xcl4vQPRduPdKZL04FexHttK0ZPJuTGds_Heig,8782
|
282
|
+
letta/server/rest_api/routers/v1/sources.py,sha256=6qL59NYCTv8uJ7SBOPk09c8q90KghnehPB6NTYLVJ7Y,11896
|
287
283
|
letta/server/rest_api/routers/v1/steps.py,sha256=ra7ttm7HDs3N52M6s80XdpwiSMTLyf776_SmEILWDvo,3276
|
288
284
|
letta/server/rest_api/routers/v1/tags.py,sha256=ef94QitUSJ3NQVffWF1ZqANUZ2b2jRyGHp_I3UUjhno,912
|
289
285
|
letta/server/rest_api/routers/v1/telemetry.py,sha256=z53BW3Pefi3eWy47FPJyGhFWbZicX9jPJUi5LC5c3sk,790
|
@@ -293,7 +289,7 @@ letta/server/rest_api/routers/v1/voice.py,sha256=NZa7ksEqXTWSqh7CqmbVMClO7wOmrql
|
|
293
289
|
letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
|
294
290
|
letta/server/rest_api/streaming_response.py,sha256=yYTuZHfuZ-DYYbA1Ta6axkBn5MvC6OHuVRHSiBqRNUk,3939
|
295
291
|
letta/server/rest_api/utils.py,sha256=UVWlJI026oBB3uWxjhnA9DRlUiYtCoqBzmekI2JhvOQ,16612
|
296
|
-
letta/server/server.py,sha256=
|
292
|
+
letta/server/server.py,sha256=g2C3Nv1_fer9vv_DpUXMVWva1F8KLWe5guj1vtIv52I,96158
|
297
293
|
letta/server/startup.sh,sha256=MRXh1RKbS5lyA7XAsk7O6Q4LEKOqnv5B-dwe0SnTHeQ,2514
|
298
294
|
letta/server/static_files/assets/index-048c9598.js,sha256=mR16XppvselwKCcNgONs4L7kZEVa4OEERm4lNZYtLSk,146819
|
299
295
|
letta/server/static_files/assets/index-0e31b727.css,sha256=SBbja96uiQVLDhDOroHgM6NSl7tS4lpJRCREgSS_hA8,7672
|
@@ -307,28 +303,28 @@ letta/server/ws_api/interface.py,sha256=TWl9vkcMCnLsUtgsuENZ-ku2oMDA-OUTzLh_yNRo
|
|
307
303
|
letta/server/ws_api/protocol.py,sha256=5mDgpfNZn_kNwHnpt5Dsuw8gdNH298sgxTGed3etzYg,1836
|
308
304
|
letta/server/ws_api/server.py,sha256=cBSzf-V4zT1bL_0i54OTI3cMXhTIIxqjSRF8pYjk7fg,5835
|
309
305
|
letta/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
310
|
-
letta/services/agent_manager.py,sha256=
|
311
|
-
letta/services/block_manager.py,sha256=
|
312
|
-
letta/services/group_manager.py,sha256=
|
306
|
+
letta/services/agent_manager.py,sha256=QQ-5Xfnjvbfm4MaP26yEhjWZ6WJtnmnOACAx92NTSaQ,131609
|
307
|
+
letta/services/block_manager.py,sha256=lZewHLhG5QKAceE3LIh2ty9OmAzvNu4uDGUSln3JULo,19240
|
308
|
+
letta/services/group_manager.py,sha256=zzxrPlk3FTUfiOMPwdjuVr9loxInjtXlJsO_TKReJqk,17267
|
313
309
|
letta/services/helpers/agent_manager_helper.py,sha256=q7GfVgKI-e8k0BZS-V_PuUCjK-PYciZDoig_sYHi_Go,21334
|
314
310
|
letta/services/helpers/noop_helper.py,sha256=OZ6wZLsdNEAg9Q2t5oFTOMK6jp-YUMBPdoyiR8M3T1c,272
|
315
311
|
letta/services/helpers/tool_execution_helper.py,sha256=JdH6VTWFrXfwPWsWNSZFKuRFhhXp8qiDYWjbPc8PLLI,7649
|
316
|
-
letta/services/identity_manager.py,sha256=
|
317
|
-
letta/services/job_manager.py,sha256=
|
318
|
-
letta/services/llm_batch_manager.py,sha256=
|
312
|
+
letta/services/identity_manager.py,sha256=WZl5wTz_572FelNjnwyDX9QEDguZOsQvc9QfQTasGNI,10331
|
313
|
+
letta/services/job_manager.py,sha256=EsbMPkJwmF-5-qEKKT0c0qaHxBKJmOzB_0Is41gBTFc,22494
|
314
|
+
letta/services/llm_batch_manager.py,sha256=2Jcj2tqsspy0kR6Dwr83J4CzJYEksXXHlSA963oY5NQ,20420
|
319
315
|
letta/services/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
320
316
|
letta/services/mcp/base_client.py,sha256=YoRb9eKKTGaLxaMVtuH5UcC74iXyWlcyYbC5xOeGr4k,2571
|
321
317
|
letta/services/mcp/sse_client.py,sha256=Vj0AgaadgMnpFQOWkSoPfeOI00ZvURMf3TIU7fv_DN8,1012
|
322
318
|
letta/services/mcp/stdio_client.py,sha256=wdPzTqSRkibjt9pXhwi0Nul_z_cTAPim-OHjLc__yBE,925
|
323
319
|
letta/services/mcp/types.py,sha256=nmcnQn2EpxXzXg5_pWPsHZobfxO6OucaUgz1bVvam7o,1411
|
324
|
-
letta/services/message_manager.py,sha256=
|
325
|
-
letta/services/organization_manager.py,sha256=
|
326
|
-
letta/services/passage_manager.py,sha256=
|
327
|
-
letta/services/per_agent_lock_manager.py,sha256=
|
328
|
-
letta/services/provider_manager.py,sha256=
|
329
|
-
letta/services/sandbox_config_manager.py,sha256=
|
330
|
-
letta/services/source_manager.py,sha256=
|
331
|
-
letta/services/step_manager.py,sha256=
|
320
|
+
letta/services/message_manager.py,sha256=61xlbsaMYRDFpP9cpbI1u6bUiU_lLUJwePTVPTHqGc0,27146
|
321
|
+
letta/services/organization_manager.py,sha256=JO8YDgw5cbG1irPDrsb00-d4S8rhrG5hHqXIieepdms,3961
|
322
|
+
letta/services/passage_manager.py,sha256=asubxcTzXefxzcAUrMEHjV-J2SvrfPjfWOlHq0R_R-g,10676
|
323
|
+
letta/services/per_agent_lock_manager.py,sha256=9CVr8PeRm4qaPs61mfHhQYe0rtbXINoFXmWeNeN3jaQ,622
|
324
|
+
letta/services/provider_manager.py,sha256=ZXoNVaEKv9gDAfyawuzVrxrUBRr6zg-rMExIxj6Y5V0,5819
|
325
|
+
letta/services/sandbox_config_manager.py,sha256=bgLZYojaIZitYl3n-sWdOEHLZukEWGc-yQ4gPZx-zJU,20822
|
326
|
+
letta/services/source_manager.py,sha256=XwqRgNQo3MAhc8uksQ0r8GvF5gpParqe27RnYs7eA3M,8761
|
327
|
+
letta/services/step_manager.py,sha256=BJpV8TVZNaWS1uaPGd1zigNHemnwOCMQteXExWYBJQ0,10530
|
332
328
|
letta/services/summarizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
333
329
|
letta/services/summarizer/enums.py,sha256=szzPX2OBRRJEZsBTGYQThrNz02ELFqhuLwvOR7ozi7A,208
|
334
330
|
letta/services/summarizer/summarizer.py,sha256=LVFZ8NLtS1lz4Pdr7M_cixFYBYsllt2vXNzTOT3Wkxc,7658
|
@@ -337,12 +333,12 @@ letta/services/tool_executor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
337
333
|
letta/services/tool_executor/tool_execution_manager.py,sha256=4LEuULGkk0OACbtqcDT7qZ8J11FZyPFkilJCEUxp9vQ,6222
|
338
334
|
letta/services/tool_executor/tool_execution_sandbox.py,sha256=U67qpZN_phLbAU-y1g_a5jb3pRnHgbcO9hl8HElzNKQ,26410
|
339
335
|
letta/services/tool_executor/tool_executor.py,sha256=NcmDpDrJE78RtjD-qlOVC_VmeZpIigK5BZxYrKGye5k,36950
|
340
|
-
letta/services/tool_manager.py,sha256=
|
336
|
+
letta/services/tool_manager.py,sha256=Oml8r8jg2m9stCkS5qbcFfKiv_STuAOicLPvDXodZwY,20435
|
341
337
|
letta/services/tool_sandbox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
342
338
|
letta/services/tool_sandbox/base.py,sha256=pUnPFkEg9I5ktMuT4AOOxbTnTmZTGcTA2phLe1H1EdY,8306
|
343
|
-
letta/services/tool_sandbox/e2b_sandbox.py,sha256=
|
344
|
-
letta/services/tool_sandbox/local_sandbox.py,sha256=
|
345
|
-
letta/services/user_manager.py,sha256=
|
339
|
+
letta/services/tool_sandbox/e2b_sandbox.py,sha256=x7dkuHmFUTC75N7g0rxAe5CpuWfqWmC0UuxmUE-XRNQ,8214
|
340
|
+
letta/services/tool_sandbox/local_sandbox.py,sha256=4CzQfDHLd7nNAoKhWJyU55ERB3I0OYzS4F3S-BJoZfg,10552
|
341
|
+
letta/services/user_manager.py,sha256=vO8UHk5-TzVv0zMHDTBjj1hxsXjlrG5lxAVctq7tJho,7858
|
346
342
|
letta/settings.py,sha256=HQq5JAJiPRB1jplsOY5-VKlX0zuJglFnykiZ94vGwdU,9049
|
347
343
|
letta/streaming_interface.py,sha256=c-T7zoMTXGXFwDWJJXrv7UypeMPXwPOmNHeuuh0b9zk,16398
|
348
344
|
letta/streaming_utils.py,sha256=jLqFTVhUL76FeOuYk8TaRQHmPTf3HSRc2EoJwxJNK6U,11946
|
@@ -350,8 +346,8 @@ letta/system.py,sha256=mKxmvvekuP8mdgsebRINGBoFbUdJhxLJ260crPBNVyk,8386
|
|
350
346
|
letta/tracing.py,sha256=YMb9KgoBVz7nwCPwnErk2EJEKMiQ_ohctW1nOwhHd1Y,8458
|
351
347
|
letta/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
352
348
|
letta/utils.py,sha256=W8J1FfhRADFqoyx3J8-Z1_aWyG433PBoEh_b5wdOZIg,32262
|
353
|
-
letta_nightly-0.7.
|
354
|
-
letta_nightly-0.7.
|
355
|
-
letta_nightly-0.7.
|
356
|
-
letta_nightly-0.7.
|
357
|
-
letta_nightly-0.7.
|
349
|
+
letta_nightly-0.7.22.dev20250523104244.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
|
350
|
+
letta_nightly-0.7.22.dev20250523104244.dist-info/METADATA,sha256=7kL5TRf_bsjxCPwhEy-PSW1SC2PY4uKT5Ru1ZOkvjLc,22321
|
351
|
+
letta_nightly-0.7.22.dev20250523104244.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
352
|
+
letta_nightly-0.7.22.dev20250523104244.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
|
353
|
+
letta_nightly-0.7.22.dev20250523104244.dist-info/RECORD,,
|
letta/__main__.py
DELETED