letta-nightly 0.6.5.dev20241220104040__py3-none-any.whl → 0.6.6.dev20241221104005__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/__init__.py +1 -1
- letta/agent.py +97 -665
- letta/chat_only_agent.py +2 -2
- letta/client/client.py +16 -9
- letta/client/streaming.py +2 -2
- letta/constants.py +2 -0
- letta/main.py +0 -76
- letta/offline_memory_agent.py +1 -2
- letta/orm/source.py +10 -3
- letta/orm/sources_agents.py +2 -2
- letta/providers.py +20 -3
- letta/schemas/agent.py +1 -0
- letta/schemas/embedding_config.py +1 -0
- letta/schemas/llm_config.py +1 -0
- letta/schemas/usage.py +2 -1
- letta/server/rest_api/interface.py +2 -2
- letta/server/rest_api/routers/v1/agents.py +9 -8
- letta/server/rest_api/routers/v1/sources.py +4 -7
- letta/server/rest_api/routers/v1/tools.py +2 -0
- letta/server/rest_api/utils.py +1 -1
- letta/server/server.py +19 -265
- letta/services/agent_manager.py +152 -2
- letta/services/helpers/agent_manager_helper.py +172 -2
- letta/services/message_manager.py +15 -0
- letta/settings.py +0 -3
- letta/utils.py +2 -1
- {letta_nightly-0.6.5.dev20241220104040.dist-info → letta_nightly-0.6.6.dev20241221104005.dist-info}/METADATA +1 -1
- {letta_nightly-0.6.5.dev20241220104040.dist-info → letta_nightly-0.6.6.dev20241221104005.dist-info}/RECORD +31 -31
- {letta_nightly-0.6.5.dev20241220104040.dist-info → letta_nightly-0.6.6.dev20241221104005.dist-info}/LICENSE +0 -0
- {letta_nightly-0.6.5.dev20241220104040.dist-info → letta_nightly-0.6.6.dev20241221104005.dist-info}/WHEEL +0 -0
- {letta_nightly-0.6.5.dev20241220104040.dist-info → letta_nightly-0.6.6.dev20241221104005.dist-info}/entry_points.txt +0 -0
|
@@ -1,10 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
import datetime
|
|
2
|
+
from typing import List, Literal, Optional
|
|
2
3
|
|
|
4
|
+
from letta import system
|
|
5
|
+
from letta.constants import IN_CONTEXT_MEMORY_KEYWORD, STRUCTURED_OUTPUT_MODELS
|
|
6
|
+
from letta.helpers import ToolRulesSolver
|
|
3
7
|
from letta.orm.agent import Agent as AgentModel
|
|
4
8
|
from letta.orm.agents_tags import AgentsTags
|
|
5
9
|
from letta.orm.errors import NoResultFound
|
|
6
10
|
from letta.prompts import gpt_system
|
|
7
|
-
from letta.schemas.agent import AgentType
|
|
11
|
+
from letta.schemas.agent import AgentState, AgentType
|
|
12
|
+
from letta.schemas.enums import MessageRole
|
|
13
|
+
from letta.schemas.memory import Memory
|
|
14
|
+
from letta.schemas.message import Message, MessageCreate
|
|
15
|
+
from letta.schemas.tool_rule import ToolRule
|
|
16
|
+
from letta.schemas.user import User
|
|
17
|
+
from letta.system import get_initial_boot_messages, get_login_event
|
|
18
|
+
from letta.utils import get_local_time
|
|
8
19
|
|
|
9
20
|
|
|
10
21
|
# Static methods
|
|
@@ -88,3 +99,162 @@ def derive_system_message(agent_type: AgentType, system: Optional[str] = None):
|
|
|
88
99
|
raise ValueError(f"Invalid agent type: {agent_type}")
|
|
89
100
|
|
|
90
101
|
return system
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
# TODO: This code is kind of wonky and deserves a rewrite
|
|
105
|
+
def compile_memory_metadata_block(
|
|
106
|
+
memory_edit_timestamp: datetime.datetime, previous_message_count: int = 0, archival_memory_size: int = 0
|
|
107
|
+
) -> str:
|
|
108
|
+
# Put the timestamp in the local timezone (mimicking get_local_time())
|
|
109
|
+
timestamp_str = memory_edit_timestamp.astimezone().strftime("%Y-%m-%d %I:%M:%S %p %Z%z").strip()
|
|
110
|
+
|
|
111
|
+
# Create a metadata block of info so the agent knows about the metadata of out-of-context memories
|
|
112
|
+
memory_metadata_block = "\n".join(
|
|
113
|
+
[
|
|
114
|
+
f"### Memory [last modified: {timestamp_str}]",
|
|
115
|
+
f"{previous_message_count} previous messages between you and the user are stored in recall memory (use functions to access them)",
|
|
116
|
+
f"{archival_memory_size} total memories you created are stored in archival memory (use functions to access them)",
|
|
117
|
+
"\nCore memory shown below (limited in size, additional information stored in archival / recall memory):",
|
|
118
|
+
]
|
|
119
|
+
)
|
|
120
|
+
return memory_metadata_block
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def compile_system_message(
|
|
124
|
+
system_prompt: str,
|
|
125
|
+
in_context_memory: Memory,
|
|
126
|
+
in_context_memory_last_edit: datetime.datetime, # TODO move this inside of BaseMemory?
|
|
127
|
+
user_defined_variables: Optional[dict] = None,
|
|
128
|
+
append_icm_if_missing: bool = True,
|
|
129
|
+
template_format: Literal["f-string", "mustache", "jinja2"] = "f-string",
|
|
130
|
+
previous_message_count: int = 0,
|
|
131
|
+
archival_memory_size: int = 0,
|
|
132
|
+
) -> str:
|
|
133
|
+
"""Prepare the final/full system message that will be fed into the LLM API
|
|
134
|
+
|
|
135
|
+
The base system message may be templated, in which case we need to render the variables.
|
|
136
|
+
|
|
137
|
+
The following are reserved variables:
|
|
138
|
+
- CORE_MEMORY: the in-context memory of the LLM
|
|
139
|
+
"""
|
|
140
|
+
|
|
141
|
+
if user_defined_variables is not None:
|
|
142
|
+
# TODO eventually support the user defining their own variables to inject
|
|
143
|
+
raise NotImplementedError
|
|
144
|
+
else:
|
|
145
|
+
variables = {}
|
|
146
|
+
|
|
147
|
+
# Add the protected memory variable
|
|
148
|
+
if IN_CONTEXT_MEMORY_KEYWORD in variables:
|
|
149
|
+
raise ValueError(f"Found protected variable '{IN_CONTEXT_MEMORY_KEYWORD}' in user-defined vars: {str(user_defined_variables)}")
|
|
150
|
+
else:
|
|
151
|
+
# TODO should this all put into the memory.__repr__ function?
|
|
152
|
+
memory_metadata_string = compile_memory_metadata_block(
|
|
153
|
+
memory_edit_timestamp=in_context_memory_last_edit,
|
|
154
|
+
previous_message_count=previous_message_count,
|
|
155
|
+
archival_memory_size=archival_memory_size,
|
|
156
|
+
)
|
|
157
|
+
full_memory_string = memory_metadata_string + "\n" + in_context_memory.compile()
|
|
158
|
+
|
|
159
|
+
# Add to the variables list to inject
|
|
160
|
+
variables[IN_CONTEXT_MEMORY_KEYWORD] = full_memory_string
|
|
161
|
+
|
|
162
|
+
if template_format == "f-string":
|
|
163
|
+
|
|
164
|
+
# Catch the special case where the system prompt is unformatted
|
|
165
|
+
if append_icm_if_missing:
|
|
166
|
+
memory_variable_string = "{" + IN_CONTEXT_MEMORY_KEYWORD + "}"
|
|
167
|
+
if memory_variable_string not in system_prompt:
|
|
168
|
+
# In this case, append it to the end to make sure memory is still injected
|
|
169
|
+
# warnings.warn(f"{IN_CONTEXT_MEMORY_KEYWORD} variable was missing from system prompt, appending instead")
|
|
170
|
+
system_prompt += "\n" + memory_variable_string
|
|
171
|
+
|
|
172
|
+
# render the variables using the built-in templater
|
|
173
|
+
try:
|
|
174
|
+
formatted_prompt = system_prompt.format_map(variables)
|
|
175
|
+
except Exception as e:
|
|
176
|
+
raise ValueError(f"Failed to format system prompt - {str(e)}. System prompt value:\n{system_prompt}")
|
|
177
|
+
|
|
178
|
+
else:
|
|
179
|
+
# TODO support for mustache and jinja2
|
|
180
|
+
raise NotImplementedError(template_format)
|
|
181
|
+
|
|
182
|
+
return formatted_prompt
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def initialize_message_sequence(
|
|
186
|
+
agent_state: AgentState,
|
|
187
|
+
memory_edit_timestamp: Optional[datetime.datetime] = None,
|
|
188
|
+
include_initial_boot_message: bool = True,
|
|
189
|
+
previous_message_count: int = 0,
|
|
190
|
+
archival_memory_size: int = 0,
|
|
191
|
+
) -> List[dict]:
|
|
192
|
+
if memory_edit_timestamp is None:
|
|
193
|
+
memory_edit_timestamp = get_local_time()
|
|
194
|
+
|
|
195
|
+
full_system_message = compile_system_message(
|
|
196
|
+
system_prompt=agent_state.system,
|
|
197
|
+
in_context_memory=agent_state.memory,
|
|
198
|
+
in_context_memory_last_edit=memory_edit_timestamp,
|
|
199
|
+
user_defined_variables=None,
|
|
200
|
+
append_icm_if_missing=True,
|
|
201
|
+
previous_message_count=previous_message_count,
|
|
202
|
+
archival_memory_size=archival_memory_size,
|
|
203
|
+
)
|
|
204
|
+
first_user_message = get_login_event() # event letting Letta know the user just logged in
|
|
205
|
+
|
|
206
|
+
if include_initial_boot_message:
|
|
207
|
+
if agent_state.llm_config.model is not None and "gpt-3.5" in agent_state.llm_config.model:
|
|
208
|
+
initial_boot_messages = get_initial_boot_messages("startup_with_send_message_gpt35")
|
|
209
|
+
else:
|
|
210
|
+
initial_boot_messages = get_initial_boot_messages("startup_with_send_message")
|
|
211
|
+
messages = (
|
|
212
|
+
[
|
|
213
|
+
{"role": "system", "content": full_system_message},
|
|
214
|
+
]
|
|
215
|
+
+ initial_boot_messages
|
|
216
|
+
+ [
|
|
217
|
+
{"role": "user", "content": first_user_message},
|
|
218
|
+
]
|
|
219
|
+
)
|
|
220
|
+
|
|
221
|
+
else:
|
|
222
|
+
messages = [
|
|
223
|
+
{"role": "system", "content": full_system_message},
|
|
224
|
+
{"role": "user", "content": first_user_message},
|
|
225
|
+
]
|
|
226
|
+
|
|
227
|
+
return messages
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
def package_initial_message_sequence(
|
|
231
|
+
agent_id: str, initial_message_sequence: List[MessageCreate], model: str, actor: User
|
|
232
|
+
) -> List[Message]:
|
|
233
|
+
# create the agent object
|
|
234
|
+
init_messages = []
|
|
235
|
+
for message_create in initial_message_sequence:
|
|
236
|
+
|
|
237
|
+
if message_create.role == MessageRole.user:
|
|
238
|
+
packed_message = system.package_user_message(
|
|
239
|
+
user_message=message_create.text,
|
|
240
|
+
)
|
|
241
|
+
elif message_create.role == MessageRole.system:
|
|
242
|
+
packed_message = system.package_system_message(
|
|
243
|
+
system_message=message_create.text,
|
|
244
|
+
)
|
|
245
|
+
else:
|
|
246
|
+
raise ValueError(f"Invalid message role: {message_create.role}")
|
|
247
|
+
|
|
248
|
+
init_messages.append(
|
|
249
|
+
Message(role=message_create.role, text=packed_message, organization_id=actor.organization_id, agent_id=agent_id, model=model)
|
|
250
|
+
)
|
|
251
|
+
return init_messages
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
def check_supports_structured_output(model: str, tool_rules: List[ToolRule]) -> bool:
|
|
255
|
+
if model not in STRUCTURED_OUTPUT_MODELS:
|
|
256
|
+
if len(ToolRulesSolver(tool_rules=tool_rules).init_tool_rules) > 1:
|
|
257
|
+
raise ValueError("Multiple initial tools are not supported for non-structured models. Please use only one initial tool rule.")
|
|
258
|
+
return False
|
|
259
|
+
else:
|
|
260
|
+
return True
|
|
@@ -28,6 +28,21 @@ class MessageManager:
|
|
|
28
28
|
except NoResultFound:
|
|
29
29
|
return None
|
|
30
30
|
|
|
31
|
+
@enforce_types
|
|
32
|
+
def get_messages_by_ids(self, message_ids: List[str], actor: PydanticUser) -> List[PydanticMessage]:
|
|
33
|
+
"""Fetch messages by ID and return them in the requested order."""
|
|
34
|
+
with self.session_maker() as session:
|
|
35
|
+
results = MessageModel.list(db_session=session, id=message_ids, organization_id=actor.organization_id, limit=len(message_ids))
|
|
36
|
+
|
|
37
|
+
if len(results) != len(message_ids):
|
|
38
|
+
raise NoResultFound(
|
|
39
|
+
f"Expected {len(message_ids)} messages, but found {len(results)}. Missing ids={set(message_ids) - set([r.id for r in results])}"
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
# Sort results directly based on message_ids
|
|
43
|
+
result_dict = {msg.id: msg.to_pydantic() for msg in results}
|
|
44
|
+
return [result_dict[msg_id] for msg_id in message_ids]
|
|
45
|
+
|
|
31
46
|
@enforce_types
|
|
32
47
|
def create_message(self, pydantic_msg: PydanticMessage, actor: PydanticUser) -> PydanticMessage:
|
|
33
48
|
"""Create a new message."""
|
letta/settings.py
CHANGED
|
@@ -83,9 +83,6 @@ class Settings(BaseSettings):
|
|
|
83
83
|
pg_pool_recycle: int = 1800 # When to recycle connections
|
|
84
84
|
pg_echo: bool = False # Logging
|
|
85
85
|
|
|
86
|
-
# tools configuration
|
|
87
|
-
load_default_external_tools: Optional[bool] = None
|
|
88
|
-
|
|
89
86
|
@property
|
|
90
87
|
def letta_pg_uri(self) -> str:
|
|
91
88
|
if self.pg_uri:
|
letta/utils.py
CHANGED
|
@@ -28,6 +28,7 @@ from letta.constants import (
|
|
|
28
28
|
CLI_WARNING_PREFIX,
|
|
29
29
|
CORE_MEMORY_HUMAN_CHAR_LIMIT,
|
|
30
30
|
CORE_MEMORY_PERSONA_CHAR_LIMIT,
|
|
31
|
+
ERROR_MESSAGE_PREFIX,
|
|
31
32
|
LETTA_DIR,
|
|
32
33
|
MAX_FILENAME_LENGTH,
|
|
33
34
|
TOOL_CALL_ID_MAX_LEN,
|
|
@@ -1122,7 +1123,7 @@ def sanitize_filename(filename: str) -> str:
|
|
|
1122
1123
|
def get_friendly_error_msg(function_name: str, exception_name: str, exception_message: str):
|
|
1123
1124
|
from letta.constants import MAX_ERROR_MESSAGE_CHAR_LIMIT
|
|
1124
1125
|
|
|
1125
|
-
error_msg = f"
|
|
1126
|
+
error_msg = f"{ERROR_MESSAGE_PREFIX} executing function {function_name}: {exception_name}: {exception_message}"
|
|
1126
1127
|
if len(error_msg) > MAX_ERROR_MESSAGE_CHAR_LIMIT:
|
|
1127
1128
|
error_msg = error_msg[:MAX_ERROR_MESSAGE_CHAR_LIMIT]
|
|
1128
1129
|
return error_msg
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
letta/__init__.py,sha256=
|
|
1
|
+
letta/__init__.py,sha256=kBJPc_H6xrNs2Y1U-Otm4HteKlgr6AfbLp8nRxMwfiQ,1014
|
|
2
2
|
letta/__main__.py,sha256=6Hs2PV7EYc5Tid4g4OtcLXhqVHiNYTGzSBdoOnW2HXA,29
|
|
3
|
-
letta/agent.py,sha256=
|
|
3
|
+
letta/agent.py,sha256=4mkn4YzXv4e3DbQOOXcrBGTPDBhM9OlpRLVs_kY768s,54619
|
|
4
4
|
letta/benchmark/benchmark.py,sha256=ebvnwfp3yezaXOQyGXkYCDYpsmre-b9hvNtnyx4xkG0,3701
|
|
5
5
|
letta/benchmark/constants.py,sha256=aXc5gdpMGJT327VuxsT5FngbCK2J41PQYeICBO7g_RE,536
|
|
6
|
-
letta/chat_only_agent.py,sha256=
|
|
6
|
+
letta/chat_only_agent.py,sha256=ECqJS7KzXOsNkJc9mv7reKbcxBI_PKP_PQyk95tsT1Y,4761
|
|
7
7
|
letta/cli/cli.py,sha256=N6jCmysldhAGTQPkGDmRVMAIID7GlgECXqarcMV5h3M,16502
|
|
8
8
|
letta/cli/cli_config.py,sha256=tB0Wgz3O9j6KiCsU1HWfsKmhNM9RqLsAxzxEDFQFGnM,8565
|
|
9
9
|
letta/cli/cli_load.py,sha256=xFw-CuzjChcIptaqQ1XpDROENt0JSjyPeiQ0nmEeO1k,2706
|
|
10
10
|
letta/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
letta/client/client.py,sha256=
|
|
12
|
-
letta/client/streaming.py,sha256=
|
|
11
|
+
letta/client/client.py,sha256=esDIKxZ7_g7tqV52z7uGhqc2nfnWwri4FGLhYFUmuKQ,126981
|
|
12
|
+
letta/client/streaming.py,sha256=01BxjMpF4NiUOVlbK87wq753d036pX5ViXxhodTrYag,4750
|
|
13
13
|
letta/client/utils.py,sha256=OJlAKWrldc4I6M1WpcTWNtPJ4wfxlzlZqWLfCozkFtI,2872
|
|
14
14
|
letta/config.py,sha256=JFGY4TWW0Wm5fTbZamOwWqk5G8Nn-TXyhgByGoAqy2c,12375
|
|
15
|
-
letta/constants.py,sha256=
|
|
15
|
+
letta/constants.py,sha256=Yelpw8qUuAXPJhaGPitkab9_e6SzaYZDokbwVEZzXE4,7086
|
|
16
16
|
letta/credentials.py,sha256=D9mlcPsdDWlIIXQQD8wSPE9M_QvsRrb0p3LB5i9OF5Q,5806
|
|
17
17
|
letta/data_sources/connectors.py,sha256=Bwgf6mW55rDrdX69dY3bLzQW9Uuk_o9w4skwbx1NioY,7039
|
|
18
18
|
letta/data_sources/connectors_helper.py,sha256=2TQjCt74fCgT5sw1AP8PalDEk06jPBbhrPG4HVr-WLs,3371
|
|
@@ -78,10 +78,10 @@ letta/local_llm/webui/legacy_api.py,sha256=k3H3y4qp2Fs-XmP24iSIEyvq6wjWFWBzklY3-
|
|
|
78
78
|
letta/local_llm/webui/legacy_settings.py,sha256=BLmd3TSx5StnY3ibjwaxYATPt_Lvq-o1rlcc_-Q1JcU,538
|
|
79
79
|
letta/local_llm/webui/settings.py,sha256=gmLHfiOl1u4JmlAZU2d2O8YKF9lafdakyjwR_ftVPh8,552
|
|
80
80
|
letta/log.py,sha256=FxkAk2f8Bl-u9dfImSj1DYnjAsmV6PL3tjTSnEiNP48,2218
|
|
81
|
-
letta/main.py,sha256=
|
|
81
|
+
letta/main.py,sha256=_agyaYPJq70OL0goNwO34zENL2KupnTgqlg-HVcNaTY,15379
|
|
82
82
|
letta/memory.py,sha256=tt7xuknsId1c9LK0gNIfsMQgcrPXFa6aWHALlDeoHMc,3277
|
|
83
83
|
letta/o1_agent.py,sha256=lQ7nX61DFhICWLdh8KpJnAurpwnR1V7PnOVIoCHXdas,2950
|
|
84
|
-
letta/offline_memory_agent.py,sha256=
|
|
84
|
+
letta/offline_memory_agent.py,sha256=Wc2_je3oXxXcaiPPNPxc78A3IXVsiK6Q7X3t_SrlHck,7651
|
|
85
85
|
letta/openai_backcompat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
86
86
|
letta/openai_backcompat/openai_object.py,sha256=Y1ZS1sATP60qxJiOsjOP3NbwSzuzvkNAvb3DeuhM5Uk,13490
|
|
87
87
|
letta/orm/__all__.py,sha256=2gh2MZTkA3Hw67VWVKK3JIStJOqTeLdpCvYSVYNeEDA,692
|
|
@@ -101,8 +101,8 @@ letta/orm/mixins.py,sha256=fBT4WjKDfDgGkkOHD8lFAaofDKElTLOx3oM1d6yQHSk,1620
|
|
|
101
101
|
letta/orm/organization.py,sha256=PSu9pHBT_YYdZo7Z7AZBBM4veOzD7x2H2NYN4SjD82E,2519
|
|
102
102
|
letta/orm/passage.py,sha256=tm5YhUozLR9hN7odGCqCniTl-3GDiFNz3LWAxullaGA,3132
|
|
103
103
|
letta/orm/sandbox_config.py,sha256=PCMHE-eJPzBT-90OYtXjEMRF4f9JB8AJIGETE7bu-f0,2870
|
|
104
|
-
letta/orm/source.py,sha256=
|
|
105
|
-
letta/orm/sources_agents.py,sha256=
|
|
104
|
+
letta/orm/source.py,sha256=xM3Iwy3xzYdoZja9BZrQwyAnPf5iksaQOs8HlNCvb_c,2031
|
|
105
|
+
letta/orm/sources_agents.py,sha256=Ik_PokCBrXRd9wXWomeNeb8EtLUwjb9VMZ8LWXqpK5A,473
|
|
106
106
|
letta/orm/sqlalchemy_base.py,sha256=b4O-TPZKNf22Prr0yNtjhCRUXF5mroZC_eSY0ThBCAc,17774
|
|
107
107
|
letta/orm/sqlite_functions.py,sha256=PVJXVw_e3cC5yIWkfsCP_yBjuXwIniLEGdXP6lx6Wgs,4380
|
|
108
108
|
letta/orm/tool.py,sha256=qvDul85Gq0XORx6gyMGk0As3C1bSt9nASqezdPOikQ4,2216
|
|
@@ -134,11 +134,11 @@ letta/prompts/system/memgpt_modified_chat.txt,sha256=F_yD4ZcR4aGDE3Z98tI7e609GYe
|
|
|
134
134
|
letta/prompts/system/memgpt_modified_o1.txt,sha256=objnDgnxpF3-MmU28ZqZ7-TOG8UlHBM_HMyAdSDWK88,5492
|
|
135
135
|
letta/prompts/system/memgpt_offline_memory.txt,sha256=rWEJeF-6aiinjkJM9hgLUYCmlEcC_HekYB1bjEUYq6M,2460
|
|
136
136
|
letta/prompts/system/memgpt_offline_memory_chat.txt,sha256=ituh7gDuio7nC2UKFB7GpBq6crxb8bYedQfJ0ADoPgg,3949
|
|
137
|
-
letta/providers.py,sha256
|
|
137
|
+
letta/providers.py,sha256=-TPVSKEDK9Gvdg-5YDE2Q0XcIADnhzdyWbiIJG39pU0,26374
|
|
138
138
|
letta/pytest.ini,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
139
|
-
letta/schemas/agent.py,sha256=
|
|
139
|
+
letta/schemas/agent.py,sha256=nBhYJchI945DCEg89rYcjh_KWxaR2nR7aKSeeZ2Xzsk,10318
|
|
140
140
|
letta/schemas/block.py,sha256=pVDH8jr5r-oxdX4cK9dX2wXyLBzgGKQOBWOzqZSeBog,5944
|
|
141
|
-
letta/schemas/embedding_config.py,sha256=
|
|
141
|
+
letta/schemas/embedding_config.py,sha256=8K2EGVQ26F3zjY1Wj3v_hsrA-1qICshVMGRlKPSATfg,3354
|
|
142
142
|
letta/schemas/enums.py,sha256=_ar3z6H_HP5c4cQEIf4xYO1nqFHQQXWKy6VdcaOX-lQ,1064
|
|
143
143
|
letta/schemas/file.py,sha256=ChN2CWzLI2TT9WLItcfElEH0E8b7kzPylF2OQBr6Beg,1550
|
|
144
144
|
letta/schemas/health.py,sha256=zT6mYovvD17iJRuu2rcaQQzbEEYrkwvAE9TB7iU824c,139
|
|
@@ -147,7 +147,7 @@ letta/schemas/letta_base.py,sha256=v3OvpVFVUfcuK1lIyTjM0x4fmWeWQw1DdlhKXHBUCz8,3
|
|
|
147
147
|
letta/schemas/letta_message.py,sha256=SpAxAEFQa-JMzxIQ5cqz0TENB5S9WsdrTAHGUJBLCQQ,8040
|
|
148
148
|
letta/schemas/letta_request.py,sha256=Hfb66FB1tXmrpEX4_yLQVfTrTSMbPYeEvZY-vqW9Tj8,981
|
|
149
149
|
letta/schemas/letta_response.py,sha256=PSHnIzGAz1MP1ACA_f7zyt4zXDnYJhNfcDRbV1HJpo4,6940
|
|
150
|
-
letta/schemas/llm_config.py,sha256=
|
|
150
|
+
letta/schemas/llm_config.py,sha256=zxygt_4imoEAgxMLO1nxNVAL-2ePGsOKEt-vQJOc0ow,4585
|
|
151
151
|
letta/schemas/memory.py,sha256=iWEm15qMa4pWQQUMIt6mnlrBQvACII0MpfNX8QujGE8,10072
|
|
152
152
|
letta/schemas/message.py,sha256=Z_k8YpURh0Dbx4BaFbo6Z7YP9JIkItL1UKtDnmZfVHE,34149
|
|
153
153
|
letta/schemas/openai/chat_completion_request.py,sha256=AOIwgbN3CZKVqkuXeMHeSa53u4h0wVq69t3T_LJ0vIE,3389
|
|
@@ -161,7 +161,7 @@ letta/schemas/sandbox_config.py,sha256=3CZyClISK3722MWstwOcKp_ppOI1LOE98i84Q4E2U
|
|
|
161
161
|
letta/schemas/source.py,sha256=B1VbaDJV-EGPv1nQXwCx_RAzeAJd50UqP_1m1cIRT8c,2854
|
|
162
162
|
letta/schemas/tool.py,sha256=_9_JkGSlIn2PCbyJ18aQrNueZgxHFUT093GcJSWYqT4,10346
|
|
163
163
|
letta/schemas/tool_rule.py,sha256=R3KiU3m5LDhiQsK-ZNOHqicMeTLhA7yW0cVZOBH57Uk,1678
|
|
164
|
-
letta/schemas/usage.py,sha256=
|
|
164
|
+
letta/schemas/usage.py,sha256=y_nwjzJQ_hl_ZEtJ-jbrM8-Y-MJ5ZI8xV9ouQJfOBrI,910
|
|
165
165
|
letta/schemas/user.py,sha256=V32Tgl6oqB3KznkxUz12y7agkQicjzW7VocSpj78i6Q,1526
|
|
166
166
|
letta/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
167
167
|
letta/server/constants.py,sha256=yAdGbLkzlOU_dLTx0lKDmAnj0ZgRXCEaIcPJWO69eaE,92
|
|
@@ -171,7 +171,7 @@ letta/server/rest_api/app.py,sha256=ulEJeVgH5w9TdzqDJntmDfs8DCjIlImwLDoe6X1sPOc,
|
|
|
171
171
|
letta/server/rest_api/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
172
172
|
letta/server/rest_api/auth/index.py,sha256=fQBGyVylGSRfEMLQ17cZzrHd5Y1xiVylvPqH5Rl-lXQ,1378
|
|
173
173
|
letta/server/rest_api/auth_token.py,sha256=725EFEIiNj4dh70hrSd94UysmFD8vcJLrTRfNHkzxDo,774
|
|
174
|
-
letta/server/rest_api/interface.py,sha256=
|
|
174
|
+
letta/server/rest_api/interface.py,sha256=6uf0vVG_NrGb6Py3NsZ0PU5NXW5Me9XI-H74Q6huy8A,45766
|
|
175
175
|
letta/server/rest_api/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
176
176
|
letta/server/rest_api/routers/openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
177
177
|
letta/server/rest_api/routers/openai/assistants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -180,19 +180,19 @@ letta/server/rest_api/routers/openai/assistants/schemas.py,sha256=d3LdBLUI-mMUCP
|
|
|
180
180
|
letta/server/rest_api/routers/openai/chat_completions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
181
181
|
letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=UoZCLvAsC2SzfnJg7LOz0h2wfcn8hmU33d2CW18erKw,4841
|
|
182
182
|
letta/server/rest_api/routers/v1/__init__.py,sha256=RZc0fIHNN4BGretjU6_TGK7q49RyV4jfYNudoiK_sUo,762
|
|
183
|
-
letta/server/rest_api/routers/v1/agents.py,sha256=
|
|
183
|
+
letta/server/rest_api/routers/v1/agents.py,sha256=FyN8FJ9eHRTTJ_b7Jmz4sfi9KkvkJadY0lJaN7-Nipk,30463
|
|
184
184
|
letta/server/rest_api/routers/v1/blocks.py,sha256=IJ2pppwNooaUjIwyBALnKL4sJ8idW8cVJlY-VH_J9HY,4803
|
|
185
185
|
letta/server/rest_api/routers/v1/health.py,sha256=pKCuVESlVOhGIb4VC4K-H82eZqfghmT6kvj2iOkkKuc,401
|
|
186
186
|
letta/server/rest_api/routers/v1/jobs.py,sha256=-tEyuIxlXZfPREeMks-sRzHwhKE2xxgzbXeEbBAS2Q8,2730
|
|
187
187
|
letta/server/rest_api/routers/v1/llms.py,sha256=TcyvSx6MEM3je5F4DysL7ligmssL_pFlJaaO4uL95VY,877
|
|
188
188
|
letta/server/rest_api/routers/v1/organizations.py,sha256=tyqVzXTpMtk3sKxI3Iz4aS6RhbGEbXDzFBB_CpW18v4,2080
|
|
189
189
|
letta/server/rest_api/routers/v1/sandbox_configs.py,sha256=pG3X3bYbmsq90kRc-06qfnM6yalvYEpVVEQnTuZVm0o,5134
|
|
190
|
-
letta/server/rest_api/routers/v1/sources.py,sha256=
|
|
191
|
-
letta/server/rest_api/routers/v1/tools.py,sha256=
|
|
190
|
+
letta/server/rest_api/routers/v1/sources.py,sha256=shjy4gbKulKfbK94GF52EW4ZbiDatcNgnyBysONCBCA,9946
|
|
191
|
+
letta/server/rest_api/routers/v1/tools.py,sha256=bWgI5SExyfwqPASLf8o9reFWInSuMYyyJRV1DTTATps,11266
|
|
192
192
|
letta/server/rest_api/routers/v1/users.py,sha256=EBQe9IfCG3kzHpKmotz4yVGZioXz3SCSRy5yEhJK8hU,2293
|
|
193
193
|
letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
|
|
194
|
-
letta/server/rest_api/utils.py,sha256=
|
|
195
|
-
letta/server/server.py,sha256=
|
|
194
|
+
letta/server/rest_api/utils.py,sha256=78n6FMnCS7O3T_z1OXKmL8wKQVTnGnQ1LDlLTI-T5Kc,3952
|
|
195
|
+
letta/server/server.py,sha256=3WcSiVT6v51CIi9Ksce31eretItLo1bQuY9CPOgSyp8,49254
|
|
196
196
|
letta/server/startup.sh,sha256=722uKJWB2C4q3vjn39De2zzPacaZNw_1fN1SpLGjKIo,1569
|
|
197
197
|
letta/server/static_files/assets/index-048c9598.js,sha256=mR16XppvselwKCcNgONs4L7kZEVa4OEERm4lNZYtLSk,146819
|
|
198
198
|
letta/server/static_files/assets/index-0e31b727.css,sha256=DjG3J3RSFLcinzoisOYYLiyTAIe5Uaxge3HE-DmQIsU,7688
|
|
@@ -206,11 +206,11 @@ letta/server/ws_api/interface.py,sha256=TWl9vkcMCnLsUtgsuENZ-ku2oMDA-OUTzLh_yNRo
|
|
|
206
206
|
letta/server/ws_api/protocol.py,sha256=M_-gM5iuDBwa1cuN2IGNCG5GxMJwU2d3XW93XALv9s8,1821
|
|
207
207
|
letta/server/ws_api/server.py,sha256=cBSzf-V4zT1bL_0i54OTI3cMXhTIIxqjSRF8pYjk7fg,5835
|
|
208
208
|
letta/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
209
|
-
letta/services/agent_manager.py,sha256=
|
|
209
|
+
letta/services/agent_manager.py,sha256=y8020VlCWvTtDmKfhaBxJ4XOi-9zwEXyh9q2oK6Tpwg,38935
|
|
210
210
|
letta/services/block_manager.py,sha256=HUj9HKW2LvAsENEsgCO3Pf3orvSy6XOimev38VKmRZ8,4929
|
|
211
|
-
letta/services/helpers/agent_manager_helper.py,sha256=
|
|
211
|
+
letta/services/helpers/agent_manager_helper.py,sha256=Q_nRk-eovoYTzLxOYvUbnsQVLWdRvFvjk8OcLUfjkJU,10568
|
|
212
212
|
letta/services/job_manager.py,sha256=FrkSXloke48CZKuzlYdysxM5gKWoTu7FRigPrs_YW4A,3645
|
|
213
|
-
letta/services/message_manager.py,sha256=
|
|
213
|
+
letta/services/message_manager.py,sha256=a7U0MfgaNAdjbls7ZtUdS7eJ6prJaMkE0NIHgtzh4us,8552
|
|
214
214
|
letta/services/organization_manager.py,sha256=hJI86_FErkRaW-VLBBmvmmciIXN59LN0mEMm78C36kQ,3331
|
|
215
215
|
letta/services/passage_manager.py,sha256=3wR9ZV3nIkJ-oSywA2SVR2yLoNe2Nv5WyfaLtoNN5i8,7867
|
|
216
216
|
letta/services/per_agent_lock_manager.py,sha256=porM0cKKANQ1FvcGXOO_qM7ARk5Fgi1HVEAhXsAg9-4,546
|
|
@@ -220,13 +220,13 @@ letta/services/tool_execution_sandbox.py,sha256=NtjSXdm86_lbTeW2gF08tyf2KSoxBP0B
|
|
|
220
220
|
letta/services/tool_manager.py,sha256=eKhvGYNBq8MOwfuk-GyqiTdEcxRn4srYvTJqj-HgTKA,7686
|
|
221
221
|
letta/services/tool_sandbox_env/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
222
222
|
letta/services/user_manager.py,sha256=oqLF9C4mGbN0TaGj7wMpb2RH2bUg6OJJcdyaWv370rQ,4272
|
|
223
|
-
letta/settings.py,sha256=
|
|
223
|
+
letta/settings.py,sha256=RBLpItl13wJ8xhatgsmPqJPb19F_knID7PuT1c74uU8,3897
|
|
224
224
|
letta/streaming_interface.py,sha256=_FPUWy58j50evHcpXyd7zB1wWqeCc71NCFeWh_TBvnw,15736
|
|
225
225
|
letta/streaming_utils.py,sha256=329fsvj1ZN0r0LpQtmMPZ2vSxkDBIUUwvGHZFkjm2I8,11745
|
|
226
226
|
letta/system.py,sha256=buKYPqG5n2x41hVmWpu6JUpyd7vTWED9Km2_M7dLrvk,6960
|
|
227
|
-
letta/utils.py,sha256=
|
|
228
|
-
letta_nightly-0.6.
|
|
229
|
-
letta_nightly-0.6.
|
|
230
|
-
letta_nightly-0.6.
|
|
231
|
-
letta_nightly-0.6.
|
|
232
|
-
letta_nightly-0.6.
|
|
227
|
+
letta/utils.py,sha256=JZbKq-3KhbmilATo-SbY0OgOnwN-zkE40UD7dfAZMWI,33381
|
|
228
|
+
letta_nightly-0.6.6.dev20241221104005.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
|
|
229
|
+
letta_nightly-0.6.6.dev20241221104005.dist-info/METADATA,sha256=NjjF2UtUvzhYQzthHiAMd13gE9iWpiN76ruPjoOlDMk,21693
|
|
230
|
+
letta_nightly-0.6.6.dev20241221104005.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
231
|
+
letta_nightly-0.6.6.dev20241221104005.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
|
|
232
|
+
letta_nightly-0.6.6.dev20241221104005.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|