letta-nightly 0.6.2.dev20241210104242__py3-none-any.whl → 0.6.2.dev20241211031658__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.
Potentially problematic release.
This version of letta-nightly might be problematic. Click here for more details.
- letta/agent.py +32 -43
- letta/agent_store/db.py +12 -54
- letta/agent_store/storage.py +10 -9
- letta/cli/cli.py +1 -0
- letta/client/client.py +3 -2
- letta/config.py +2 -2
- letta/data_sources/connectors.py +4 -3
- letta/embeddings.py +29 -9
- letta/functions/function_sets/base.py +36 -11
- letta/metadata.py +13 -2
- letta/o1_agent.py +2 -3
- letta/offline_memory_agent.py +2 -1
- letta/orm/__init__.py +1 -0
- letta/orm/file.py +1 -0
- letta/orm/mixins.py +12 -2
- letta/orm/organization.py +3 -0
- letta/orm/passage.py +72 -0
- letta/orm/sqlalchemy_base.py +36 -7
- letta/orm/sqlite_functions.py +140 -0
- letta/orm/user.py +1 -1
- letta/schemas/agent.py +4 -3
- letta/schemas/letta_message.py +5 -1
- letta/schemas/letta_request.py +3 -3
- letta/schemas/passage.py +6 -4
- letta/schemas/sandbox_config.py +1 -0
- letta/schemas/tool_rule.py +0 -3
- letta/server/rest_api/app.py +34 -12
- letta/server/rest_api/routers/v1/agents.py +19 -6
- letta/server/server.py +118 -44
- letta/server/static_files/assets/{index-4848e3d7.js → index-048c9598.js} +1 -1
- letta/server/static_files/assets/{index-43ab4d62.css → index-0e31b727.css} +1 -1
- letta/server/static_files/index.html +2 -2
- letta/services/passage_manager.py +225 -0
- letta/services/source_manager.py +2 -1
- letta/services/tool_execution_sandbox.py +18 -6
- letta/settings.py +2 -0
- {letta_nightly-0.6.2.dev20241210104242.dist-info → letta_nightly-0.6.2.dev20241211031658.dist-info}/METADATA +10 -15
- {letta_nightly-0.6.2.dev20241210104242.dist-info → letta_nightly-0.6.2.dev20241211031658.dist-info}/RECORD +41 -39
- letta/agent_store/chroma.py +0 -297
- {letta_nightly-0.6.2.dev20241210104242.dist-info → letta_nightly-0.6.2.dev20241211031658.dist-info}/LICENSE +0 -0
- {letta_nightly-0.6.2.dev20241210104242.dist-info → letta_nightly-0.6.2.dev20241211031658.dist-info}/WHEEL +0 -0
- {letta_nightly-0.6.2.dev20241210104242.dist-info → letta_nightly-0.6.2.dev20241211031658.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
from typing import List, Optional, Dict, Tuple
|
|
2
|
+
from letta.constants import MAX_EMBEDDING_DIM
|
|
3
|
+
from datetime import datetime
|
|
4
|
+
import numpy as np
|
|
5
|
+
|
|
6
|
+
from letta.orm.errors import NoResultFound
|
|
7
|
+
from letta.utils import enforce_types
|
|
8
|
+
|
|
9
|
+
from letta.embeddings import embedding_model, parse_and_chunk_text
|
|
10
|
+
from letta.schemas.embedding_config import EmbeddingConfig
|
|
11
|
+
|
|
12
|
+
from letta.orm.passage import Passage as PassageModel
|
|
13
|
+
from letta.orm.sqlalchemy_base import AccessType
|
|
14
|
+
from letta.schemas.agent import AgentState
|
|
15
|
+
from letta.schemas.passage import Passage as PydanticPassage
|
|
16
|
+
from letta.schemas.user import User as PydanticUser
|
|
17
|
+
|
|
18
|
+
class PassageManager:
|
|
19
|
+
"""Manager class to handle business logic related to Passages."""
|
|
20
|
+
|
|
21
|
+
def __init__(self):
|
|
22
|
+
from letta.server.server import db_context
|
|
23
|
+
self.session_maker = db_context
|
|
24
|
+
|
|
25
|
+
@enforce_types
|
|
26
|
+
def get_passage_by_id(self, passage_id: str, actor: PydanticUser) -> Optional[PydanticPassage]:
|
|
27
|
+
"""Fetch a passage by ID."""
|
|
28
|
+
with self.session_maker() as session:
|
|
29
|
+
try:
|
|
30
|
+
passage = PassageModel.read(db_session=session, identifier=passage_id, actor=actor)
|
|
31
|
+
return passage.to_pydantic()
|
|
32
|
+
except NoResultFound:
|
|
33
|
+
return None
|
|
34
|
+
|
|
35
|
+
@enforce_types
|
|
36
|
+
def create_passage(self, pydantic_passage: PydanticPassage, actor: PydanticUser) -> PydanticPassage:
|
|
37
|
+
"""Create a new passage."""
|
|
38
|
+
with self.session_maker() as session:
|
|
39
|
+
passage = PassageModel(**pydantic_passage.model_dump())
|
|
40
|
+
passage.create(session, actor=actor)
|
|
41
|
+
return passage.to_pydantic()
|
|
42
|
+
|
|
43
|
+
@enforce_types
|
|
44
|
+
def create_many_passages(self, passages: List[PydanticPassage], actor: PydanticUser) -> List[PydanticPassage]:
|
|
45
|
+
"""Create multiple passages."""
|
|
46
|
+
return [self.create_passage(p, actor) for p in passages]
|
|
47
|
+
|
|
48
|
+
@enforce_types
|
|
49
|
+
def insert_passage(self,
|
|
50
|
+
agent_state: AgentState,
|
|
51
|
+
agent_id: str,
|
|
52
|
+
text: str,
|
|
53
|
+
actor: PydanticUser,
|
|
54
|
+
return_ids: bool = False
|
|
55
|
+
) -> List[PydanticPassage]:
|
|
56
|
+
""" Insert passage(s) into archival memory """
|
|
57
|
+
|
|
58
|
+
embedding_chunk_size = agent_state.embedding_config.embedding_chunk_size
|
|
59
|
+
embed_model = embedding_model(agent_state.embedding_config)
|
|
60
|
+
|
|
61
|
+
passages = []
|
|
62
|
+
|
|
63
|
+
try:
|
|
64
|
+
# breakup string into passages
|
|
65
|
+
for text in parse_and_chunk_text(text, embedding_chunk_size):
|
|
66
|
+
embedding = embed_model.get_text_embedding(text)
|
|
67
|
+
if isinstance(embedding, dict):
|
|
68
|
+
try:
|
|
69
|
+
embedding = embedding["data"][0]["embedding"]
|
|
70
|
+
except (KeyError, IndexError):
|
|
71
|
+
# TODO as a fallback, see if we can find any lists in the payload
|
|
72
|
+
raise TypeError(
|
|
73
|
+
f"Got back an unexpected payload from text embedding function, type={type(embedding)}, value={embedding}"
|
|
74
|
+
)
|
|
75
|
+
passage = self.create_passage(
|
|
76
|
+
PydanticPassage(
|
|
77
|
+
organization_id=actor.organization_id,
|
|
78
|
+
agent_id=agent_id,
|
|
79
|
+
text=text,
|
|
80
|
+
embedding=embedding,
|
|
81
|
+
embedding_config=agent_state.embedding_config
|
|
82
|
+
),
|
|
83
|
+
actor=actor
|
|
84
|
+
)
|
|
85
|
+
passages.append(passage)
|
|
86
|
+
|
|
87
|
+
ids = [str(p.id) for p in passages]
|
|
88
|
+
|
|
89
|
+
if return_ids:
|
|
90
|
+
return ids
|
|
91
|
+
|
|
92
|
+
return passages
|
|
93
|
+
|
|
94
|
+
except Exception as e:
|
|
95
|
+
raise e
|
|
96
|
+
|
|
97
|
+
@enforce_types
|
|
98
|
+
def update_passage_by_id(self, passage_id: str, passage: PydanticPassage, actor: PydanticUser, **kwargs) -> Optional[PydanticPassage]:
|
|
99
|
+
"""Update a passage."""
|
|
100
|
+
if not passage_id:
|
|
101
|
+
raise ValueError("Passage ID must be provided.")
|
|
102
|
+
|
|
103
|
+
with self.session_maker() as session:
|
|
104
|
+
try:
|
|
105
|
+
# Fetch existing message from database
|
|
106
|
+
curr_passage = PassageModel.read(
|
|
107
|
+
db_session=session,
|
|
108
|
+
identifier=passage_id,
|
|
109
|
+
actor=actor,
|
|
110
|
+
)
|
|
111
|
+
if not curr_passage:
|
|
112
|
+
raise ValueError(f"Passage with id {passage_id} does not exist.")
|
|
113
|
+
|
|
114
|
+
# Update the database record with values from the provided record
|
|
115
|
+
update_data = passage.model_dump(exclude_unset=True, exclude_none=True)
|
|
116
|
+
for key, value in update_data.items():
|
|
117
|
+
setattr(curr_passage, key, value)
|
|
118
|
+
|
|
119
|
+
# Commit changes
|
|
120
|
+
curr_passage.update(session, actor=actor)
|
|
121
|
+
return curr_passage.to_pydantic()
|
|
122
|
+
except NoResultFound:
|
|
123
|
+
return None
|
|
124
|
+
|
|
125
|
+
@enforce_types
|
|
126
|
+
def delete_passage_by_id(self, passage_id: str, actor: PydanticUser) -> bool:
|
|
127
|
+
"""Delete a passage."""
|
|
128
|
+
if not passage_id:
|
|
129
|
+
raise ValueError("Passage ID must be provided.")
|
|
130
|
+
|
|
131
|
+
with self.session_maker() as session:
|
|
132
|
+
try:
|
|
133
|
+
passage = PassageModel.read(db_session=session, identifier=passage_id, actor=actor)
|
|
134
|
+
passage.hard_delete(session, actor=actor)
|
|
135
|
+
except NoResultFound:
|
|
136
|
+
raise ValueError(f"Passage with id {passage_id} not found.")
|
|
137
|
+
|
|
138
|
+
@enforce_types
|
|
139
|
+
def list_passages(self,
|
|
140
|
+
actor : PydanticUser,
|
|
141
|
+
agent_id : Optional[str] = None,
|
|
142
|
+
file_id : Optional[str] = None,
|
|
143
|
+
cursor : Optional[str] = None,
|
|
144
|
+
limit : Optional[int] = 50,
|
|
145
|
+
query_text : Optional[str] = None,
|
|
146
|
+
start_date : Optional[datetime] = None,
|
|
147
|
+
end_date : Optional[datetime] = None,
|
|
148
|
+
source_id : Optional[str] = None,
|
|
149
|
+
embed_query : bool = False,
|
|
150
|
+
embedding_config: Optional[EmbeddingConfig] = None
|
|
151
|
+
) -> List[PydanticPassage]:
|
|
152
|
+
"""List passages with pagination."""
|
|
153
|
+
with self.session_maker() as session:
|
|
154
|
+
filters = {"organization_id": actor.organization_id}
|
|
155
|
+
if agent_id:
|
|
156
|
+
filters["agent_id"] = agent_id
|
|
157
|
+
if file_id:
|
|
158
|
+
filters["file_id"] = file_id
|
|
159
|
+
if source_id:
|
|
160
|
+
filters["source_id"] = source_id
|
|
161
|
+
|
|
162
|
+
embedded_text = None
|
|
163
|
+
if embed_query:
|
|
164
|
+
assert embedding_config is not None
|
|
165
|
+
|
|
166
|
+
# Embed the text
|
|
167
|
+
embedded_text = embedding_model(embedding_config).get_text_embedding(query_text)
|
|
168
|
+
|
|
169
|
+
# Pad the embedding with zeros
|
|
170
|
+
embedded_text = np.array(embedded_text)
|
|
171
|
+
embedded_text = np.pad(embedded_text, (0, MAX_EMBEDDING_DIM - embedded_text.shape[0]), mode="constant").tolist()
|
|
172
|
+
|
|
173
|
+
results = PassageModel.list(
|
|
174
|
+
db_session=session,
|
|
175
|
+
cursor=cursor,
|
|
176
|
+
start_date=start_date,
|
|
177
|
+
end_date=end_date,
|
|
178
|
+
limit=limit,
|
|
179
|
+
query_text=query_text if not embedded_text else None,
|
|
180
|
+
query_embedding=embedded_text,
|
|
181
|
+
**filters
|
|
182
|
+
)
|
|
183
|
+
return [p.to_pydantic() for p in results]
|
|
184
|
+
|
|
185
|
+
@enforce_types
|
|
186
|
+
def size(
|
|
187
|
+
self,
|
|
188
|
+
actor : PydanticUser,
|
|
189
|
+
agent_id : Optional[str] = None,
|
|
190
|
+
**kwargs
|
|
191
|
+
) -> int:
|
|
192
|
+
"""Get the total count of messages with optional filters.
|
|
193
|
+
|
|
194
|
+
Args:
|
|
195
|
+
actor : The user requesting the count
|
|
196
|
+
agent_id: The agent ID
|
|
197
|
+
"""
|
|
198
|
+
with self.session_maker() as session:
|
|
199
|
+
return PassageModel.size(db_session=session, actor=actor, agent_id=agent_id, **kwargs)
|
|
200
|
+
|
|
201
|
+
def delete_passages(self,
|
|
202
|
+
actor: PydanticUser,
|
|
203
|
+
agent_id: Optional[str] = None,
|
|
204
|
+
file_id: Optional[str] = None,
|
|
205
|
+
start_date: Optional[datetime] = None,
|
|
206
|
+
end_date: Optional[datetime] = None,
|
|
207
|
+
limit: Optional[int] = 50,
|
|
208
|
+
cursor: Optional[str] = None,
|
|
209
|
+
query_text: Optional[str] = None,
|
|
210
|
+
source_id: Optional[str] = None
|
|
211
|
+
) -> bool:
|
|
212
|
+
|
|
213
|
+
passages = self.list_passages(
|
|
214
|
+
actor=actor,
|
|
215
|
+
agent_id=agent_id,
|
|
216
|
+
file_id=file_id,
|
|
217
|
+
cursor=cursor,
|
|
218
|
+
limit=limit,
|
|
219
|
+
start_date=start_date,
|
|
220
|
+
end_date=end_date,
|
|
221
|
+
query_text=query_text,
|
|
222
|
+
source_id=source_id)
|
|
223
|
+
|
|
224
|
+
for passage in passages:
|
|
225
|
+
self.delete_passage_by_id(passage_id=passage.id, actor=actor)
|
letta/services/source_manager.py
CHANGED
|
@@ -64,7 +64,7 @@ class SourceManager:
|
|
|
64
64
|
return source.to_pydantic()
|
|
65
65
|
|
|
66
66
|
@enforce_types
|
|
67
|
-
def list_sources(self, actor: PydanticUser, cursor: Optional[str] = None, limit: Optional[int] = 50) -> List[PydanticSource]:
|
|
67
|
+
def list_sources(self, actor: PydanticUser, cursor: Optional[str] = None, limit: Optional[int] = 50, **kwargs) -> List[PydanticSource]:
|
|
68
68
|
"""List all sources with optional pagination."""
|
|
69
69
|
with self.session_maker() as session:
|
|
70
70
|
sources = SourceModel.list(
|
|
@@ -72,6 +72,7 @@ class SourceManager:
|
|
|
72
72
|
cursor=cursor,
|
|
73
73
|
limit=limit,
|
|
74
74
|
organization_id=actor.organization_id,
|
|
75
|
+
**kwargs,
|
|
75
76
|
)
|
|
76
77
|
return [source.to_pydantic() for source in sources]
|
|
77
78
|
|
|
@@ -127,11 +127,12 @@ class ToolExecutionSandbox:
|
|
|
127
127
|
|
|
128
128
|
# Save the old stdout
|
|
129
129
|
old_stdout = sys.stdout
|
|
130
|
+
old_stderr = sys.stderr
|
|
130
131
|
try:
|
|
131
132
|
if local_configs.use_venv:
|
|
132
133
|
return self.run_local_dir_sandbox_venv(sbx_config, env, temp_file_path)
|
|
133
134
|
else:
|
|
134
|
-
return self.run_local_dir_sandbox_runpy(sbx_config, env_vars, temp_file_path, old_stdout)
|
|
135
|
+
return self.run_local_dir_sandbox_runpy(sbx_config, env_vars, temp_file_path, old_stdout, old_stderr)
|
|
135
136
|
except Exception as e:
|
|
136
137
|
logger.error(f"Executing tool {self.tool_name} has an unexpected error: {e}")
|
|
137
138
|
logger.error(f"Logging out tool {self.tool_name} auto-generated code for debugging: \n\n{code}")
|
|
@@ -139,6 +140,7 @@ class ToolExecutionSandbox:
|
|
|
139
140
|
finally:
|
|
140
141
|
# Clean up the temp file and restore stdout
|
|
141
142
|
sys.stdout = old_stdout
|
|
143
|
+
sys.stderr = old_stderr
|
|
142
144
|
os.remove(temp_file_path)
|
|
143
145
|
|
|
144
146
|
def run_local_dir_sandbox_venv(self, sbx_config: SandboxConfig, env: Dict[str, str], temp_file_path: str) -> SandboxRunResult:
|
|
@@ -201,7 +203,11 @@ class ToolExecutionSandbox:
|
|
|
201
203
|
func_result, stdout = self.parse_out_function_results_markers(result.stdout)
|
|
202
204
|
func_return, agent_state = self.parse_best_effort(func_result)
|
|
203
205
|
return SandboxRunResult(
|
|
204
|
-
func_return=func_return,
|
|
206
|
+
func_return=func_return,
|
|
207
|
+
agent_state=agent_state,
|
|
208
|
+
stdout=[stdout],
|
|
209
|
+
stderr=[result.stderr],
|
|
210
|
+
sandbox_config_fingerprint=sbx_config.fingerprint(),
|
|
205
211
|
)
|
|
206
212
|
except subprocess.TimeoutExpired:
|
|
207
213
|
raise TimeoutError(f"Executing tool {self.tool_name} has timed out.")
|
|
@@ -213,11 +219,13 @@ class ToolExecutionSandbox:
|
|
|
213
219
|
raise e
|
|
214
220
|
|
|
215
221
|
def run_local_dir_sandbox_runpy(
|
|
216
|
-
self, sbx_config: SandboxConfig, env_vars: Dict[str, str], temp_file_path: str, old_stdout: TextIO
|
|
222
|
+
self, sbx_config: SandboxConfig, env_vars: Dict[str, str], temp_file_path: str, old_stdout: TextIO, old_stderr: TextIO
|
|
217
223
|
) -> SandboxRunResult:
|
|
218
|
-
# Redirect stdout to capture script output
|
|
224
|
+
# Redirect stdout and stderr to capture script output
|
|
219
225
|
captured_stdout = io.StringIO()
|
|
226
|
+
captured_stderr = io.StringIO()
|
|
220
227
|
sys.stdout = captured_stdout
|
|
228
|
+
sys.stderr = captured_stderr
|
|
221
229
|
|
|
222
230
|
# Execute the temp file
|
|
223
231
|
with self.temporary_env_vars(env_vars):
|
|
@@ -227,14 +235,17 @@ class ToolExecutionSandbox:
|
|
|
227
235
|
func_result = result.get(self.LOCAL_SANDBOX_RESULT_VAR_NAME)
|
|
228
236
|
func_return, agent_state = self.parse_best_effort(func_result)
|
|
229
237
|
|
|
230
|
-
# Restore stdout and collect captured output
|
|
238
|
+
# Restore stdout and stderr and collect captured output
|
|
231
239
|
sys.stdout = old_stdout
|
|
240
|
+
sys.stderr = old_stderr
|
|
232
241
|
stdout_output = captured_stdout.getvalue()
|
|
242
|
+
stderr_output = captured_stderr.getvalue()
|
|
233
243
|
|
|
234
244
|
return SandboxRunResult(
|
|
235
245
|
func_return=func_return,
|
|
236
246
|
agent_state=agent_state,
|
|
237
247
|
stdout=[stdout_output],
|
|
248
|
+
stderr=[stderr_output],
|
|
238
249
|
sandbox_config_fingerprint=sbx_config.fingerprint(),
|
|
239
250
|
)
|
|
240
251
|
|
|
@@ -294,7 +305,8 @@ class ToolExecutionSandbox:
|
|
|
294
305
|
return SandboxRunResult(
|
|
295
306
|
func_return=func_return,
|
|
296
307
|
agent_state=agent_state,
|
|
297
|
-
stdout=execution.logs.stdout
|
|
308
|
+
stdout=execution.logs.stdout,
|
|
309
|
+
stderr=execution.logs.stderr,
|
|
298
310
|
sandbox_config_fingerprint=sbx_config.fingerprint(),
|
|
299
311
|
)
|
|
300
312
|
|
letta/settings.py
CHANGED
|
@@ -17,6 +17,8 @@ class ToolSettings(BaseSettings):
|
|
|
17
17
|
|
|
18
18
|
class ModelSettings(BaseSettings):
|
|
19
19
|
|
|
20
|
+
model_config = SettingsConfigDict(env_file='.env')
|
|
21
|
+
|
|
20
22
|
# env_prefix='my_prefix_'
|
|
21
23
|
|
|
22
24
|
# when we use /completions APIs (instead of /chat/completions), we need to specify a model wrapper
|
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: letta-nightly
|
|
3
|
-
Version: 0.6.2.
|
|
3
|
+
Version: 0.6.2.dev20241211031658
|
|
4
4
|
Summary: Create LLM agents with long-term memory and custom tools
|
|
5
5
|
License: Apache License
|
|
6
6
|
Author: Letta Team
|
|
7
7
|
Author-email: contact@letta.com
|
|
8
|
-
Requires-Python: >=3.10,<
|
|
8
|
+
Requires-Python: >=3.10,<4.0
|
|
9
9
|
Classifier: License :: Other/Proprietary License
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.10
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.11
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
14
14
|
Provides-Extra: all
|
|
15
|
-
Provides-Extra: autogen
|
|
16
15
|
Provides-Extra: cloud-tool-sandbox
|
|
17
16
|
Provides-Extra: dev
|
|
18
17
|
Provides-Extra: external-tools
|
|
19
|
-
Provides-Extra: milvus
|
|
20
|
-
Provides-Extra: ollama
|
|
21
18
|
Provides-Extra: postgres
|
|
22
19
|
Provides-Extra: qdrant
|
|
23
20
|
Provides-Extra: server
|
|
@@ -25,7 +22,7 @@ Provides-Extra: tests
|
|
|
25
22
|
Requires-Dist: alembic (>=1.13.3,<2.0.0)
|
|
26
23
|
Requires-Dist: autoflake (>=2.3.0,<3.0.0) ; extra == "dev" or extra == "all"
|
|
27
24
|
Requires-Dist: black[jupyter] (>=24.2.0,<25.0.0) ; extra == "dev" or extra == "all"
|
|
28
|
-
Requires-Dist:
|
|
25
|
+
Requires-Dist: brotli (>=1.1.0,<2.0.0)
|
|
29
26
|
Requires-Dist: composio-core (>=0.5.51,<0.6.0)
|
|
30
27
|
Requires-Dist: composio-langchain (>=0.5.28,<0.6.0)
|
|
31
28
|
Requires-Dist: datasets (>=2.14.6,<3.0.0) ; extra == "dev" or extra == "all"
|
|
@@ -33,18 +30,19 @@ Requires-Dist: demjson3 (>=3.0.6,<4.0.0)
|
|
|
33
30
|
Requires-Dist: docker (>=7.1.0,<8.0.0) ; extra == "external-tools" or extra == "all"
|
|
34
31
|
Requires-Dist: docstring-parser (>=0.16,<0.17)
|
|
35
32
|
Requires-Dist: docx2txt (>=0.8,<0.9)
|
|
36
|
-
Requires-Dist: e2b-code-interpreter (>=1.0.
|
|
37
|
-
Requires-Dist: fastapi (>=0.
|
|
33
|
+
Requires-Dist: e2b-code-interpreter (>=1.0.3,<2.0.0) ; extra == "cloud-tool-sandbox"
|
|
34
|
+
Requires-Dist: fastapi (>=0.115.6,<0.116.0) ; extra == "server" or extra == "all"
|
|
35
|
+
Requires-Dist: grpcio (>=1.68.1,<2.0.0)
|
|
36
|
+
Requires-Dist: grpcio-tools (>=1.68.1,<2.0.0)
|
|
38
37
|
Requires-Dist: html2text (>=2020.1.16,<2021.0.0)
|
|
39
|
-
Requires-Dist: httpx (>=0.
|
|
38
|
+
Requires-Dist: httpx (>=0.28.0,<0.29.0)
|
|
40
39
|
Requires-Dist: httpx-sse (>=0.4.0,<0.5.0)
|
|
41
40
|
Requires-Dist: isort (>=5.13.2,<6.0.0) ; extra == "dev" or extra == "all"
|
|
42
41
|
Requires-Dist: jinja2 (>=3.1.4,<4.0.0)
|
|
43
42
|
Requires-Dist: langchain (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "all"
|
|
44
43
|
Requires-Dist: langchain-community (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "all"
|
|
45
|
-
Requires-Dist: llama-index (>=0.
|
|
46
|
-
Requires-Dist: llama-index-embeddings-
|
|
47
|
-
Requires-Dist: llama-index-embeddings-openai (>=0.2.5,<0.3.0)
|
|
44
|
+
Requires-Dist: llama-index (>=0.12.2,<0.13.0)
|
|
45
|
+
Requires-Dist: llama-index-embeddings-openai (>=0.3.1,<0.4.0)
|
|
48
46
|
Requires-Dist: locust (>=2.31.5,<3.0.0) ; extra == "dev" or extra == "all"
|
|
49
47
|
Requires-Dist: nltk (>=3.8.1,<4.0.0)
|
|
50
48
|
Requires-Dist: numpy (>=1.26.2,<2.0.0)
|
|
@@ -56,11 +54,9 @@ Requires-Dist: pre-commit (>=3.5.0,<4.0.0) ; extra == "dev" or extra == "all"
|
|
|
56
54
|
Requires-Dist: prettytable (>=3.9.0,<4.0.0)
|
|
57
55
|
Requires-Dist: psycopg2 (>=2.9.10,<3.0.0) ; extra == "postgres" or extra == "all"
|
|
58
56
|
Requires-Dist: psycopg2-binary (>=2.9.10,<3.0.0) ; extra == "postgres" or extra == "all"
|
|
59
|
-
Requires-Dist: pyautogen (==0.2.22) ; extra == "autogen"
|
|
60
57
|
Requires-Dist: pydantic (>=2.7.4,<2.10.0)
|
|
61
58
|
Requires-Dist: pydantic-settings (>=2.2.1,<3.0.0)
|
|
62
59
|
Requires-Dist: pyhumps (>=3.8.0,<4.0.0)
|
|
63
|
-
Requires-Dist: pymilvus (>=2.4.3,<3.0.0) ; extra == "milvus"
|
|
64
60
|
Requires-Dist: pyright (>=1.1.347,<2.0.0) ; extra == "dev" or extra == "all"
|
|
65
61
|
Requires-Dist: pytest-asyncio (>=0.23.2,<0.24.0) ; extra == "dev" or extra == "all"
|
|
66
62
|
Requires-Dist: pytest-order (>=1.2.0,<2.0.0) ; extra == "dev" or extra == "all"
|
|
@@ -76,7 +72,6 @@ Requires-Dist: sqlalchemy (>=2.0.25,<3.0.0)
|
|
|
76
72
|
Requires-Dist: sqlalchemy-json (>=0.7.0,<0.8.0)
|
|
77
73
|
Requires-Dist: sqlalchemy-utils (>=0.41.2,<0.42.0)
|
|
78
74
|
Requires-Dist: sqlmodel (>=0.0.16,<0.0.17)
|
|
79
|
-
Requires-Dist: tiktoken (>=0.7.0,<0.8.0)
|
|
80
75
|
Requires-Dist: tqdm (>=4.66.1,<5.0.0)
|
|
81
76
|
Requires-Dist: typer[all] (>=0.9.0,<0.10.0)
|
|
82
77
|
Requires-Dist: uvicorn (>=0.24.0.post1,<0.25.0) ; extra == "server" or extra == "all"
|
|
@@ -1,30 +1,29 @@
|
|
|
1
1
|
letta/__init__.py,sha256=S2_Nsg1zpIrParZLJeOiVVM0JlAKG9zxlIi_-KMBkmI,1035
|
|
2
2
|
letta/__main__.py,sha256=6Hs2PV7EYc5Tid4g4OtcLXhqVHiNYTGzSBdoOnW2HXA,29
|
|
3
|
-
letta/agent.py,sha256=
|
|
4
|
-
letta/agent_store/
|
|
5
|
-
letta/agent_store/db.py,sha256=0AdN1-LpvIUhmiayTwzhKPaXTdlyOILtHGZ7zmS7pPs,20314
|
|
3
|
+
letta/agent.py,sha256=D4staw-NnTzsG31kV7cvb7fvLIpkeZii1rXsQIRPC0s,78058
|
|
4
|
+
letta/agent_store/db.py,sha256=Rzgodcr-eT6DXnFr5bt4psiVpeH0Gy1BS16Ethf2CHw,19016
|
|
6
5
|
letta/agent_store/milvus.py,sha256=xUu-D9a6N10MuGJ-R-QWR2IHX77ueqAp88tV4gg9B4M,8470
|
|
7
6
|
letta/agent_store/qdrant.py,sha256=6_33V-FEDpT9LG5zmr6-3y9slw1YFLswxpahiyMkvHA,7880
|
|
8
|
-
letta/agent_store/storage.py,sha256=
|
|
7
|
+
letta/agent_store/storage.py,sha256=F0kpHr8ALaph630ItxZ1ijYOMNq7P7sRrkP-2LkywVU,6547
|
|
9
8
|
letta/benchmark/benchmark.py,sha256=ebvnwfp3yezaXOQyGXkYCDYpsmre-b9hvNtnyx4xkG0,3701
|
|
10
9
|
letta/benchmark/constants.py,sha256=aXc5gdpMGJT327VuxsT5FngbCK2J41PQYeICBO7g_RE,536
|
|
11
10
|
letta/chat_only_agent.py,sha256=606FQybmeN9s04rIFQlDkWOHirrT0p48_3pMKY8d5Ts,4740
|
|
12
|
-
letta/cli/cli.py,sha256=
|
|
11
|
+
letta/cli/cli.py,sha256=w05rgSquJrkT7gq13NplT6Eag0rdF7YG9uMz-WV2INs,16913
|
|
13
12
|
letta/cli/cli_config.py,sha256=tB0Wgz3O9j6KiCsU1HWfsKmhNM9RqLsAxzxEDFQFGnM,8565
|
|
14
13
|
letta/cli/cli_load.py,sha256=xFw-CuzjChcIptaqQ1XpDROENt0JSjyPeiQ0nmEeO1k,2706
|
|
15
14
|
letta/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
-
letta/client/client.py,sha256=
|
|
15
|
+
letta/client/client.py,sha256=x1GAvNhHkrD4f7CyyaTtXDuQ68NoS8tapaY2TRh5Q7o,127162
|
|
17
16
|
letta/client/streaming.py,sha256=Hh5pjlyrdCuO2V75ZCxSSOCPd3BmHdKFGaIUJC6fBp0,4775
|
|
18
17
|
letta/client/utils.py,sha256=OJlAKWrldc4I6M1WpcTWNtPJ4wfxlzlZqWLfCozkFtI,2872
|
|
19
|
-
letta/config.py,sha256=
|
|
18
|
+
letta/config.py,sha256=06F-kPu9r6AMOvz5uX6WKVrgE8h6QqSxWni3TT16ZdY,18923
|
|
20
19
|
letta/constants.py,sha256=l2IyZpVG-d_raFFX5bN6mCbprnnc1IA-z-oCKPoyPSM,6902
|
|
21
20
|
letta/credentials.py,sha256=D9mlcPsdDWlIIXQQD8wSPE9M_QvsRrb0p3LB5i9OF5Q,5806
|
|
22
|
-
letta/data_sources/connectors.py,sha256=
|
|
21
|
+
letta/data_sources/connectors.py,sha256=o6XhyeONu4FB7CM7l9K705M9zV8jE2ExddYy_ZjgYgs,10010
|
|
23
22
|
letta/data_sources/connectors_helper.py,sha256=2TQjCt74fCgT5sw1AP8PalDEk06jPBbhrPG4HVr-WLs,3371
|
|
24
|
-
letta/embeddings.py,sha256=
|
|
23
|
+
letta/embeddings.py,sha256=XyecUdJaG3ENi5v3wAexVcgpG2g7_oTEEYLgUpm-Zvs,9080
|
|
25
24
|
letta/errors.py,sha256=Voy_BP0W_M816-vWudKLBlgydRufPPA-Q2PNd-SvZYc,3897
|
|
26
25
|
letta/functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
-
letta/functions/function_sets/base.py,sha256=
|
|
26
|
+
letta/functions/function_sets/base.py,sha256=DxHFODrqEOepjsbWBrwHNqnM_b3AfvNhPCUiaOVDDzU,9599
|
|
28
27
|
letta/functions/function_sets/extras.py,sha256=Jik3UiDqYTm4Lam1XPTvuVjvgUHwIAhopsnbmVhGMBg,4732
|
|
29
28
|
letta/functions/functions.py,sha256=evH6GKnIJwVVre1Xre2gaSIqREv4eNM4DiWOhn8PMqg,3299
|
|
30
29
|
letta/functions/helpers.py,sha256=fJo4gPvWpkvR7jn0HucRorz4VlpYVqmYsiX1RetnnSY,8569
|
|
@@ -85,30 +84,32 @@ letta/local_llm/webui/settings.py,sha256=gmLHfiOl1u4JmlAZU2d2O8YKF9lafdakyjwR_ft
|
|
|
85
84
|
letta/log.py,sha256=FxkAk2f8Bl-u9dfImSj1DYnjAsmV6PL3tjTSnEiNP48,2218
|
|
86
85
|
letta/main.py,sha256=3rvn5rHMpChmgDsYKAH8GX7lLVsIzxLmkPhDJt6nFKA,19067
|
|
87
86
|
letta/memory.py,sha256=R4Z_MYD5ve04FBe2yohux1pzp8MTjOSI1AZ5oLCdGRA,14568
|
|
88
|
-
letta/metadata.py,sha256=
|
|
89
|
-
letta/o1_agent.py,sha256=
|
|
90
|
-
letta/offline_memory_agent.py,sha256=
|
|
87
|
+
letta/metadata.py,sha256=iU2KZewl_oqyB6mjKeSGH33BsvRUPeWb1K_qRgme5jo,15507
|
|
88
|
+
letta/o1_agent.py,sha256=Jbc4Id15tMQ_1ek74hxRUJdfTegmsaIHQyRNc31g6dA,3092
|
|
89
|
+
letta/offline_memory_agent.py,sha256=Pa4HmKMFYhmkzl6SyHHtHpdYIZkrJqbG0-fwPAU6Muo,7912
|
|
91
90
|
letta/openai_backcompat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
92
91
|
letta/openai_backcompat/openai_object.py,sha256=Y1ZS1sATP60qxJiOsjOP3NbwSzuzvkNAvb3DeuhM5Uk,13490
|
|
93
92
|
letta/orm/__all__.py,sha256=2gh2MZTkA3Hw67VWVKK3JIStJOqTeLdpCvYSVYNeEDA,692
|
|
94
|
-
letta/orm/__init__.py,sha256=
|
|
93
|
+
letta/orm/__init__.py,sha256=NswamGS2dTrzCmwALtKu-Jn5LnVE6w6niuptYnXFQFc,580
|
|
95
94
|
letta/orm/agents_tags.py,sha256=Qa7Yt9imL8xbGP57fflccAMy7Z32CQiU_7eZKSSPngc,1119
|
|
96
95
|
letta/orm/base.py,sha256=K_LpNUURbsj44ycHbzvNXG_n8pBOjf1YvDaikIPDpQA,2716
|
|
97
96
|
letta/orm/block.py,sha256=xymYeCTJJFkzADW6wjfP2LXNZZN9yg4mCSybbvEEMMM,2356
|
|
98
97
|
letta/orm/blocks_agents.py,sha256=o6cfblODja7so4444npW0vusqKcvDPp8YJdsWsOePus,1164
|
|
99
98
|
letta/orm/enums.py,sha256=KfHcFt_fR6GUmSlmfsa-TetvmuRxGESNve8MStRYW64,145
|
|
100
99
|
letta/orm/errors.py,sha256=nv1HnF3z4-u9m_g7SO5TO5u2nmJN677_n8F0iIjluUI,460
|
|
101
|
-
letta/orm/file.py,sha256=
|
|
100
|
+
letta/orm/file.py,sha256=xUhWGBiYeOG0xL_-N2lzk135Rhm2IEXLPTw1wdgeyPw,1659
|
|
102
101
|
letta/orm/job.py,sha256=If-qSTJW4t5h-6Jolw3tS3-xMZEaPIbXe3S0GMf_FXI,1102
|
|
103
102
|
letta/orm/message.py,sha256=IcG2UkwmUCq0PiIlV_U7L0bKynPEahgqgo0luAgtfQo,2538
|
|
104
|
-
letta/orm/mixins.py,sha256=
|
|
105
|
-
letta/orm/organization.py,sha256=
|
|
103
|
+
letta/orm/mixins.py,sha256=xXPpOBvq5XuxiPOHS1aSc6j1UVpxookOCXMLnrxI6cM,1783
|
|
104
|
+
letta/orm/organization.py,sha256=LmF2UrA9xS6ljTM1jei6AU8irXPIhemupfQ51f_u0Ck,2543
|
|
105
|
+
letta/orm/passage.py,sha256=4LxiKNIJz_EVgXlcY1ijU38LvkCUvXD1QQ9LS4jF5MY,2942
|
|
106
106
|
letta/orm/sandbox_config.py,sha256=PCMHE-eJPzBT-90OYtXjEMRF4f9JB8AJIGETE7bu-f0,2870
|
|
107
107
|
letta/orm/source.py,sha256=Ib0XHCMt345RjBSC30A398rZ21W5mA4PXX00XNXyd24,2021
|
|
108
|
-
letta/orm/sqlalchemy_base.py,sha256=
|
|
108
|
+
letta/orm/sqlalchemy_base.py,sha256=AmFfyNZAT7HhdNuBXMbjmqqSjR2W7lVu3FTRreZbYhg,16543
|
|
109
|
+
letta/orm/sqlite_functions.py,sha256=PVJXVw_e3cC5yIWkfsCP_yBjuXwIniLEGdXP6lx6Wgs,4380
|
|
109
110
|
letta/orm/tool.py,sha256=seND1kw-GvdtIumGDrsUH0EtE7F59YUzK-XYenOZ4vE,3070
|
|
110
111
|
letta/orm/tools_agents.py,sha256=mBMGQsTEx_ckfhZb2-2nqbxHBEMhvDXim6w6tFHHWBQ,1195
|
|
111
|
-
letta/orm/user.py,sha256=
|
|
112
|
+
letta/orm/user.py,sha256=0qdnBQiwXx3TGQLZKIGiI2WWyt0VceA8s5FRcRt7St0,1163
|
|
112
113
|
letta/personas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
113
114
|
letta/personas/examples/anna_pa.txt,sha256=zgiNdSNhy1HQy58cF_6RFPzcg2i37F9v38YuL1CW40A,1849
|
|
114
115
|
letta/personas/examples/google_search_persona.txt,sha256=RyObU80MIk2oeJJDWOK1aX5pHOtbHSSjIrbUpxov240,1194
|
|
@@ -137,7 +138,7 @@ letta/prompts/system/memgpt_offline_memory.txt,sha256=rWEJeF-6aiinjkJM9hgLUYCmlE
|
|
|
137
138
|
letta/prompts/system/memgpt_offline_memory_chat.txt,sha256=ituh7gDuio7nC2UKFB7GpBq6crxb8bYedQfJ0ADoPgg,3949
|
|
138
139
|
letta/providers.py,sha256=0j6WPRn70WNSOjWS7smhTI3ZZOlfVAVF0ZFcrdQDmMY,25321
|
|
139
140
|
letta/pytest.ini,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
140
|
-
letta/schemas/agent.py,sha256=
|
|
141
|
+
letta/schemas/agent.py,sha256=BxUuewMX3TLLvcOMV_A9gmauDlaG2rIidl8DRZvGypE,8592
|
|
141
142
|
letta/schemas/agents_tags.py,sha256=9DGr8fN2DHYdWvZ_qcXmrKI0w7YKCGz2lfEcrX2KAkI,1130
|
|
142
143
|
letta/schemas/api_key.py,sha256=u07yzzMn-hBAHZIIKbWY16KsgiFjSNR8lAghpMUo3_4,682
|
|
143
144
|
letta/schemas/block.py,sha256=pVDH8jr5r-oxdX4cK9dX2wXyLBzgGKQOBWOzqZSeBog,5944
|
|
@@ -148,8 +149,8 @@ letta/schemas/file.py,sha256=ChN2CWzLI2TT9WLItcfElEH0E8b7kzPylF2OQBr6Beg,1550
|
|
|
148
149
|
letta/schemas/health.py,sha256=zT6mYovvD17iJRuu2rcaQQzbEEYrkwvAE9TB7iU824c,139
|
|
149
150
|
letta/schemas/job.py,sha256=vRVVpMCHTxot9uaalLS8RARnqzJWvcLB1XP5XRBioPc,1398
|
|
150
151
|
letta/schemas/letta_base.py,sha256=v3OvpVFVUfcuK1lIyTjM0x4fmWeWQw1DdlhKXHBUCz8,3608
|
|
151
|
-
letta/schemas/letta_message.py,sha256=
|
|
152
|
-
letta/schemas/letta_request.py,sha256=
|
|
152
|
+
letta/schemas/letta_message.py,sha256=fBPKrHBRS9eTo8NAmLiaP5TNJATsrVn9QCxYmD6a7UY,6833
|
|
153
|
+
letta/schemas/letta_request.py,sha256=Hfb66FB1tXmrpEX4_yLQVfTrTSMbPYeEvZY-vqW9Tj8,981
|
|
153
154
|
letta/schemas/letta_response.py,sha256=vQV5uqe-kq9fc4wCo-sVB_PJt5yUk8DB2zOgHsrmN-k,6189
|
|
154
155
|
letta/schemas/llm_config.py,sha256=RbgnCaqYd_yl-Xs7t-DEI1NhpKD8WiVWjxcwq5mZd5M,4467
|
|
155
156
|
letta/schemas/memory.py,sha256=80Y7gqWQQndhNkJ-0j38d2m619gTlfes_qJNA6_ant8,10040
|
|
@@ -160,11 +161,11 @@ letta/schemas/openai/chat_completions.py,sha256=V0ZPIIk-ds3O6MAkNHMz8zh1hqMFSPrT
|
|
|
160
161
|
letta/schemas/openai/embedding_response.py,sha256=WKIZpXab1Av7v6sxKG8feW3ZtpQUNosmLVSuhXYa_xU,357
|
|
161
162
|
letta/schemas/openai/openai.py,sha256=Hilo5BiLAGabzxCwnwfzK5QrWqwYD8epaEKFa4Pwndk,7970
|
|
162
163
|
letta/schemas/organization.py,sha256=d2oN3IK2HeruEHKXwIzCbJ3Fxdi_BEe9JZ8J9aDbHwQ,698
|
|
163
|
-
letta/schemas/passage.py,sha256=
|
|
164
|
-
letta/schemas/sandbox_config.py,sha256=
|
|
164
|
+
letta/schemas/passage.py,sha256=HeplPyKzcy4d8DLnjfIVukXRMHMZdGkerQY65RN70FI,3682
|
|
165
|
+
letta/schemas/sandbox_config.py,sha256=A-pcBcrpnxp-XJ0OB1ferYu8hGtDkR2YDOa8FzDr0C0,5217
|
|
165
166
|
letta/schemas/source.py,sha256=B1VbaDJV-EGPv1nQXwCx_RAzeAJd50UqP_1m1cIRT8c,2854
|
|
166
167
|
letta/schemas/tool.py,sha256=_9_JkGSlIn2PCbyJ18aQrNueZgxHFUT093GcJSWYqT4,10346
|
|
167
|
-
letta/schemas/tool_rule.py,sha256=
|
|
168
|
+
letta/schemas/tool_rule.py,sha256=jVGdGsp2K-qnrcaWF3WjCSvxpDlF2wVxeNMXzmoYLtc,1072
|
|
168
169
|
letta/schemas/tools_agents.py,sha256=DGfmX7qXSBMCjykHyy0FRxgep2tJgYXf1rqDTmP6Tfo,1313
|
|
169
170
|
letta/schemas/usage.py,sha256=lvn1ooHwLEdv6gwQpw5PBUbcwn_gwdT6HA-fCiix6sY,817
|
|
170
171
|
letta/schemas/user.py,sha256=V32Tgl6oqB3KznkxUz12y7agkQicjzW7VocSpj78i6Q,1526
|
|
@@ -172,7 +173,7 @@ letta/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
172
173
|
letta/server/constants.py,sha256=yAdGbLkzlOU_dLTx0lKDmAnj0ZgRXCEaIcPJWO69eaE,92
|
|
173
174
|
letta/server/generate_openapi_schema.sh,sha256=0OtBhkC1g6CobVmNEd_m2B6sTdppjbJLXaM95icejvE,371
|
|
174
175
|
letta/server/rest_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
175
|
-
letta/server/rest_api/app.py,sha256=
|
|
176
|
+
letta/server/rest_api/app.py,sha256=GG5pfsgzqljS2TCy2WVTyo70pgr-yFJm4M1hAYaM-9U,10177
|
|
176
177
|
letta/server/rest_api/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
177
178
|
letta/server/rest_api/auth/index.py,sha256=fQBGyVylGSRfEMLQ17cZzrHd5Y1xiVylvPqH5Rl-lXQ,1378
|
|
178
179
|
letta/server/rest_api/auth_token.py,sha256=725EFEIiNj4dh70hrSd94UysmFD8vcJLrTRfNHkzxDo,774
|
|
@@ -186,7 +187,7 @@ letta/server/rest_api/routers/openai/assistants/threads.py,sha256=g8iu98__tQEMY9
|
|
|
186
187
|
letta/server/rest_api/routers/openai/chat_completions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
187
188
|
letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=qFMpxfYIlJ-PW08IQt09RW44u6hwkssdsUT-h_GuOvE,4836
|
|
188
189
|
letta/server/rest_api/routers/v1/__init__.py,sha256=RZc0fIHNN4BGretjU6_TGK7q49RyV4jfYNudoiK_sUo,762
|
|
189
|
-
letta/server/rest_api/routers/v1/agents.py,sha256=
|
|
190
|
+
letta/server/rest_api/routers/v1/agents.py,sha256=qeBtbZCxBvJuUz64ih3ucKOFPyJK1u3-eeUFqsqTB2w,28380
|
|
190
191
|
letta/server/rest_api/routers/v1/blocks.py,sha256=hLGwm56xCA09KdEi8P0V3s__pD_yyl07p17cdSfDj8g,4878
|
|
191
192
|
letta/server/rest_api/routers/v1/health.py,sha256=pKCuVESlVOhGIb4VC4K-H82eZqfghmT6kvj2iOkkKuc,401
|
|
192
193
|
letta/server/rest_api/routers/v1/jobs.py,sha256=gnu__rjcd9SpKdQkSD_sci-xJYH0fw828PuHMcYwsCw,2678
|
|
@@ -198,12 +199,12 @@ letta/server/rest_api/routers/v1/tools.py,sha256=ajYUo_cgUBDfm4Ja_EufxSdhBWoAb5N
|
|
|
198
199
|
letta/server/rest_api/routers/v1/users.py,sha256=M1wEr2IyHzuRwINYxLXTkrbAH3osLe_cWjzrWrzR1aw,3729
|
|
199
200
|
letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
|
|
200
201
|
letta/server/rest_api/utils.py,sha256=6Z0T0kHIwDAgTIFh38Q1JQ_nhANgdqXcSlsuY41pL6M,3158
|
|
201
|
-
letta/server/server.py,sha256=
|
|
202
|
+
letta/server/server.py,sha256=FrZy8eM0dC-9q5mrpoCFB8eXdAsxXInjHoOQNvP76Us,83300
|
|
202
203
|
letta/server/startup.sh,sha256=722uKJWB2C4q3vjn39De2zzPacaZNw_1fN1SpLGjKIo,1569
|
|
203
|
-
letta/server/static_files/assets/index-
|
|
204
|
-
letta/server/static_files/assets/index-
|
|
204
|
+
letta/server/static_files/assets/index-048c9598.js,sha256=mR16XppvselwKCcNgONs4L7kZEVa4OEERm4lNZYtLSk,146819
|
|
205
|
+
letta/server/static_files/assets/index-0e31b727.css,sha256=DjG3J3RSFLcinzoisOYYLiyTAIe5Uaxge3HE-DmQIsU,7688
|
|
205
206
|
letta/server/static_files/favicon.ico,sha256=DezhLdFSbM8o81wCOZcV3riq7tFUOGQD4h6-vr-HuU0,342
|
|
206
|
-
letta/server/static_files/index.html,sha256
|
|
207
|
+
letta/server/static_files/index.html,sha256=-9bodsoqpeSavIpNlaM3Z36_xjaotjXPCLLq9J8xFWg,1198
|
|
207
208
|
letta/server/static_files/memgpt_logo_transparent.png,sha256=7l6niNb4MlUILxLlUZPxIE1TEHj_Z9f9XDxoST3d7Vw,85383
|
|
208
209
|
letta/server/utils.py,sha256=rRvW6L1lzau4u9boamiyZH54lf5tQ91ypXzUW9cfSPA,1667
|
|
209
210
|
letta/server/ws_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -218,21 +219,22 @@ letta/services/blocks_agents_manager.py,sha256=mfO3EMW9os_E1_r4SRlC2wmBFFLpt8p-y
|
|
|
218
219
|
letta/services/job_manager.py,sha256=FrkSXloke48CZKuzlYdysxM5gKWoTu7FRigPrs_YW4A,3645
|
|
219
220
|
letta/services/message_manager.py,sha256=ucFJLbK835YSfEENoxdKB3wPZgO-NYFO9EvDV0W-sc0,7682
|
|
220
221
|
letta/services/organization_manager.py,sha256=B7BgHkZcAOP1fzbg2fFF8eTfKmqOiGvoojQ8ys7JVY4,3412
|
|
222
|
+
letta/services/passage_manager.py,sha256=1z3tzIm3jm1DQZPfQap1wggzmaOh_Pwj7Y4H27b52-I,8956
|
|
221
223
|
letta/services/per_agent_lock_manager.py,sha256=porM0cKKANQ1FvcGXOO_qM7ARk5Fgi1HVEAhXsAg9-4,546
|
|
222
224
|
letta/services/sandbox_config_manager.py,sha256=PqlS47FAYYmiUFd9bUV4W1t4FjhMqiDoh3Blw_1tiCM,13269
|
|
223
|
-
letta/services/source_manager.py,sha256=
|
|
224
|
-
letta/services/tool_execution_sandbox.py,sha256=
|
|
225
|
+
letta/services/source_manager.py,sha256=yfb6fYcuoit7d4-w62Mip4fpPbpl8EmTSQ-A49o3FeA,6596
|
|
226
|
+
letta/services/tool_execution_sandbox.py,sha256=MjDhtwO_riee7tBfsl1lY2_-zq_8_8ae7cuF9ougVMc,21726
|
|
225
227
|
letta/services/tool_manager.py,sha256=lfrfWyxiFUWcEf-nATHs7r76XWutMYbOPyePs543ZOo,7681
|
|
226
228
|
letta/services/tool_sandbox_env/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
227
229
|
letta/services/tools_agents_manager.py,sha256=kF6yIsUO154_Q3l-cEeSU56QW-VUr_M6B-9csqhHBkg,4847
|
|
228
230
|
letta/services/user_manager.py,sha256=cfXgnVlnfqPCk7c-wYRsU3RegHs-4stksk186RW89Do,4403
|
|
229
|
-
letta/settings.py,sha256=
|
|
231
|
+
letta/settings.py,sha256=IBODJU3ZxFQAgzpB-nZtBbYuak6ad9rwhjLWv9oCgBo,3664
|
|
230
232
|
letta/streaming_interface.py,sha256=_FPUWy58j50evHcpXyd7zB1wWqeCc71NCFeWh_TBvnw,15736
|
|
231
233
|
letta/streaming_utils.py,sha256=329fsvj1ZN0r0LpQtmMPZ2vSxkDBIUUwvGHZFkjm2I8,11745
|
|
232
234
|
letta/system.py,sha256=buKYPqG5n2x41hVmWpu6JUpyd7vTWED9Km2_M7dLrvk,6960
|
|
233
235
|
letta/utils.py,sha256=L8c6S77gyMYFgVP6ncGRaNbGjWtg6BOU_whI1vjt9Ts,32915
|
|
234
|
-
letta_nightly-0.6.2.
|
|
235
|
-
letta_nightly-0.6.2.
|
|
236
|
-
letta_nightly-0.6.2.
|
|
237
|
-
letta_nightly-0.6.2.
|
|
238
|
-
letta_nightly-0.6.2.
|
|
236
|
+
letta_nightly-0.6.2.dev20241211031658.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
|
|
237
|
+
letta_nightly-0.6.2.dev20241211031658.dist-info/METADATA,sha256=xG8Iw6NE0rq7sAO3scI-MD8XpG2u280xVoGmWVeoZxU,11212
|
|
238
|
+
letta_nightly-0.6.2.dev20241211031658.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
239
|
+
letta_nightly-0.6.2.dev20241211031658.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
|
|
240
|
+
letta_nightly-0.6.2.dev20241211031658.dist-info/RECORD,,
|