letta-nightly 0.6.37.dev20250311104150__py3-none-any.whl → 0.6.39.dev20250313104142__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 +83 -23
- letta/agents/low_latency_agent.py +3 -2
- letta/client/client.py +1 -50
- letta/constants.py +4 -1
- letta/functions/function_sets/base.py +1 -1
- letta/functions/function_sets/multi_agent.py +9 -8
- letta/functions/helpers.py +47 -6
- letta/functions/schema_generator.py +47 -0
- letta/helpers/mcp_helpers.py +108 -0
- letta/llm_api/cohere.py +1 -1
- letta/llm_api/google_ai_client.py +332 -0
- letta/llm_api/google_vertex_client.py +214 -0
- letta/llm_api/helpers.py +1 -2
- letta/llm_api/llm_api_tools.py +0 -1
- letta/llm_api/llm_client.py +48 -0
- letta/llm_api/llm_client_base.py +129 -0
- letta/local_llm/utils.py +30 -20
- letta/log.py +1 -1
- letta/memory.py +1 -1
- letta/orm/__init__.py +1 -0
- letta/orm/block.py +8 -0
- letta/orm/enums.py +2 -0
- letta/orm/identities_blocks.py +13 -0
- letta/orm/identity.py +9 -0
- letta/orm/sqlalchemy_base.py +4 -4
- letta/orm/step.py +1 -0
- letta/schemas/block.py +4 -48
- letta/schemas/identity.py +3 -0
- letta/schemas/letta_message.py +26 -0
- letta/schemas/message.py +69 -63
- letta/schemas/step.py +1 -0
- letta/schemas/tool.py +39 -2
- letta/serialize_schemas/agent.py +8 -1
- letta/server/rest_api/app.py +15 -0
- letta/server/rest_api/chat_completions_interface.py +2 -0
- letta/server/rest_api/interface.py +46 -13
- letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +2 -7
- letta/server/rest_api/routers/v1/agents.py +14 -10
- letta/server/rest_api/routers/v1/blocks.py +5 -1
- letta/server/rest_api/routers/v1/steps.py +2 -0
- letta/server/rest_api/routers/v1/tools.py +71 -1
- letta/server/rest_api/routers/v1/voice.py +3 -6
- letta/server/server.py +102 -5
- letta/services/agent_manager.py +58 -3
- letta/services/block_manager.py +10 -1
- letta/services/helpers/agent_manager_helper.py +12 -1
- letta/services/identity_manager.py +61 -15
- letta/services/message_manager.py +40 -0
- letta/services/step_manager.py +8 -1
- letta/services/summarizer/summarizer.py +1 -1
- letta/services/tool_manager.py +6 -0
- letta/settings.py +11 -12
- {letta_nightly-0.6.37.dev20250311104150.dist-info → letta_nightly-0.6.39.dev20250313104142.dist-info}/METADATA +20 -18
- {letta_nightly-0.6.37.dev20250311104150.dist-info → letta_nightly-0.6.39.dev20250313104142.dist-info}/RECORD +58 -52
- {letta_nightly-0.6.37.dev20250311104150.dist-info → letta_nightly-0.6.39.dev20250313104142.dist-info}/LICENSE +0 -0
- {letta_nightly-0.6.37.dev20250311104150.dist-info → letta_nightly-0.6.39.dev20250313104142.dist-info}/WHEEL +0 -0
- {letta_nightly-0.6.37.dev20250311104150.dist-info → letta_nightly-0.6.39.dev20250313104142.dist-info}/entry_points.txt +0 -0
|
@@ -5,6 +5,7 @@ from sqlalchemy.exc import NoResultFound
|
|
|
5
5
|
from sqlalchemy.orm import Session
|
|
6
6
|
|
|
7
7
|
from letta.orm.agent import Agent as AgentModel
|
|
8
|
+
from letta.orm.block import Block as BlockModel
|
|
8
9
|
from letta.orm.identity import Identity as IdentityModel
|
|
9
10
|
from letta.schemas.identity import Identity as PydanticIdentity
|
|
10
11
|
from letta.schemas.identity import IdentityCreate, IdentityType, IdentityUpdate
|
|
@@ -58,9 +59,24 @@ class IdentityManager:
|
|
|
58
59
|
@enforce_types
|
|
59
60
|
def create_identity(self, identity: IdentityCreate, actor: PydanticUser) -> PydanticIdentity:
|
|
60
61
|
with self.session_maker() as session:
|
|
61
|
-
new_identity = IdentityModel(**identity.model_dump(exclude={"agent_ids"}, exclude_unset=True))
|
|
62
|
+
new_identity = IdentityModel(**identity.model_dump(exclude={"agent_ids", "block_ids"}, exclude_unset=True))
|
|
62
63
|
new_identity.organization_id = actor.organization_id
|
|
63
|
-
self.
|
|
64
|
+
self._process_relationship(
|
|
65
|
+
session=session,
|
|
66
|
+
identity=new_identity,
|
|
67
|
+
relationship_name="agents",
|
|
68
|
+
model_class=AgentModel,
|
|
69
|
+
item_ids=identity.agent_ids,
|
|
70
|
+
allow_partial=False,
|
|
71
|
+
)
|
|
72
|
+
self._process_relationship(
|
|
73
|
+
session=session,
|
|
74
|
+
identity=new_identity,
|
|
75
|
+
relationship_name="blocks",
|
|
76
|
+
model_class=BlockModel,
|
|
77
|
+
item_ids=identity.block_ids,
|
|
78
|
+
allow_partial=False,
|
|
79
|
+
)
|
|
64
80
|
new_identity.create(session, actor=actor)
|
|
65
81
|
return new_identity.to_pydantic()
|
|
66
82
|
|
|
@@ -78,7 +94,13 @@ class IdentityManager:
|
|
|
78
94
|
if existing_identity is None:
|
|
79
95
|
return self.create_identity(identity=identity, actor=actor)
|
|
80
96
|
else:
|
|
81
|
-
identity_update = IdentityUpdate(
|
|
97
|
+
identity_update = IdentityUpdate(
|
|
98
|
+
name=identity.name,
|
|
99
|
+
identifier_key=identity.identifier_key,
|
|
100
|
+
identity_type=identity.identity_type,
|
|
101
|
+
agent_ids=identity.agent_ids,
|
|
102
|
+
properties=identity.properties,
|
|
103
|
+
)
|
|
82
104
|
return self._update_identity(
|
|
83
105
|
session=session, existing_identity=existing_identity, identity=identity_update, actor=actor, replace=True
|
|
84
106
|
)
|
|
@@ -118,9 +140,26 @@ class IdentityManager:
|
|
|
118
140
|
new_properties = existing_identity.properties + [prop.model_dump() for prop in identity.properties]
|
|
119
141
|
existing_identity.properties = new_properties
|
|
120
142
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
143
|
+
if identity.agent_ids is not None:
|
|
144
|
+
self._process_relationship(
|
|
145
|
+
session=session,
|
|
146
|
+
identity=existing_identity,
|
|
147
|
+
relationship_name="agents",
|
|
148
|
+
model_class=AgentModel,
|
|
149
|
+
item_ids=identity.agent_ids,
|
|
150
|
+
allow_partial=False,
|
|
151
|
+
replace=replace,
|
|
152
|
+
)
|
|
153
|
+
if identity.block_ids is not None:
|
|
154
|
+
self._process_relationship(
|
|
155
|
+
session=session,
|
|
156
|
+
identity=existing_identity,
|
|
157
|
+
relationship_name="blocks",
|
|
158
|
+
model_class=BlockModel,
|
|
159
|
+
item_ids=identity.block_ids,
|
|
160
|
+
allow_partial=False,
|
|
161
|
+
replace=replace,
|
|
162
|
+
)
|
|
124
163
|
existing_identity.update(session, actor=actor)
|
|
125
164
|
return existing_identity.to_pydantic()
|
|
126
165
|
|
|
@@ -135,26 +174,33 @@ class IdentityManager:
|
|
|
135
174
|
session.delete(identity)
|
|
136
175
|
session.commit()
|
|
137
176
|
|
|
138
|
-
def
|
|
139
|
-
self,
|
|
177
|
+
def _process_relationship(
|
|
178
|
+
self,
|
|
179
|
+
session: Session,
|
|
180
|
+
identity: PydanticIdentity,
|
|
181
|
+
relationship_name: str,
|
|
182
|
+
model_class,
|
|
183
|
+
item_ids: List[str],
|
|
184
|
+
allow_partial=False,
|
|
185
|
+
replace=True,
|
|
140
186
|
):
|
|
141
|
-
current_relationship = getattr(identity,
|
|
142
|
-
if not
|
|
187
|
+
current_relationship = getattr(identity, relationship_name, [])
|
|
188
|
+
if not item_ids:
|
|
143
189
|
if replace:
|
|
144
|
-
setattr(identity,
|
|
190
|
+
setattr(identity, relationship_name, [])
|
|
145
191
|
return
|
|
146
192
|
|
|
147
193
|
# Retrieve models for the provided IDs
|
|
148
|
-
found_items = session.query(
|
|
194
|
+
found_items = session.query(model_class).filter(model_class.id.in_(item_ids)).all()
|
|
149
195
|
|
|
150
196
|
# Validate all items are found if allow_partial is False
|
|
151
|
-
if not allow_partial and len(found_items) != len(
|
|
152
|
-
missing = set(
|
|
197
|
+
if not allow_partial and len(found_items) != len(item_ids):
|
|
198
|
+
missing = set(item_ids) - {item.id for item in found_items}
|
|
153
199
|
raise NoResultFound(f"Items not found in agents: {missing}")
|
|
154
200
|
|
|
155
201
|
if replace:
|
|
156
202
|
# Replace the relationship
|
|
157
|
-
setattr(identity,
|
|
203
|
+
setattr(identity, relationship_name, found_items)
|
|
158
204
|
else:
|
|
159
205
|
# Extend the relationship (only add new items)
|
|
160
206
|
current_ids = {item.id for item in current_relationship}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import json
|
|
1
2
|
from typing import List, Optional
|
|
2
3
|
|
|
3
4
|
from sqlalchemy import and_, or_
|
|
@@ -7,6 +8,7 @@ from letta.orm.agent import Agent as AgentModel
|
|
|
7
8
|
from letta.orm.errors import NoResultFound
|
|
8
9
|
from letta.orm.message import Message as MessageModel
|
|
9
10
|
from letta.schemas.enums import MessageRole
|
|
11
|
+
from letta.schemas.letta_message import LettaMessageUpdateUnion
|
|
10
12
|
from letta.schemas.message import Message as PydanticMessage
|
|
11
13
|
from letta.schemas.message import MessageUpdate
|
|
12
14
|
from letta.schemas.user import User as PydanticUser
|
|
@@ -64,6 +66,44 @@ class MessageManager:
|
|
|
64
66
|
"""Create multiple messages."""
|
|
65
67
|
return [self.create_message(m, actor=actor) for m in pydantic_msgs]
|
|
66
68
|
|
|
69
|
+
@enforce_types
|
|
70
|
+
def update_message_by_letta_message(
|
|
71
|
+
self, message_id: str, letta_message_update: LettaMessageUpdateUnion, actor: PydanticUser
|
|
72
|
+
) -> PydanticMessage:
|
|
73
|
+
"""
|
|
74
|
+
Updated the underlying messages table giving an update specified to the user-facing LettaMessage
|
|
75
|
+
"""
|
|
76
|
+
message = self.get_message_by_id(message_id=message_id, actor=actor)
|
|
77
|
+
if letta_message_update.message_type == "assistant_message":
|
|
78
|
+
# modify the tool call for send_message
|
|
79
|
+
# TODO: fix this if we add parallel tool calls
|
|
80
|
+
# TODO: note this only works if the AssistantMessage is generated by the standard send_message
|
|
81
|
+
assert (
|
|
82
|
+
message.tool_calls[0].function.name == "send_message"
|
|
83
|
+
), f"Expected the first tool call to be send_message, but got {message.tool_calls[0].function.name}"
|
|
84
|
+
original_args = json.loads(message.tool_calls[0].function.arguments)
|
|
85
|
+
original_args["message"] = letta_message_update.content # override the assistant message
|
|
86
|
+
update_tool_call = message.tool_calls[0].__deepcopy__()
|
|
87
|
+
update_tool_call.function.arguments = json.dumps(original_args)
|
|
88
|
+
|
|
89
|
+
update_message = MessageUpdate(tool_calls=[update_tool_call])
|
|
90
|
+
elif letta_message_update.message_type == "reasoning_message":
|
|
91
|
+
update_message = MessageUpdate(content=letta_message_update.reasoning)
|
|
92
|
+
elif letta_message_update.message_type == "user_message" or letta_message_update.message_type == "system_message":
|
|
93
|
+
update_message = MessageUpdate(content=letta_message_update.content)
|
|
94
|
+
else:
|
|
95
|
+
raise ValueError(f"Unsupported message type for modification: {letta_message_update.message_type}")
|
|
96
|
+
|
|
97
|
+
message = self.update_message_by_id(message_id=message_id, message_update=update_message, actor=actor)
|
|
98
|
+
|
|
99
|
+
# convert back to LettaMessage
|
|
100
|
+
for letta_msg in message.to_letta_message(use_assistant_message=True):
|
|
101
|
+
if letta_msg.message_type == letta_message_update.message_type:
|
|
102
|
+
return letta_msg
|
|
103
|
+
|
|
104
|
+
# raise error if message type got modified
|
|
105
|
+
raise ValueError(f"Message type got modified: {letta_message_update.message_type}")
|
|
106
|
+
|
|
67
107
|
@enforce_types
|
|
68
108
|
def update_message_by_id(self, message_id: str, message_update: MessageUpdate, actor: PydanticUser) -> PydanticMessage:
|
|
69
109
|
"""
|
letta/services/step_manager.py
CHANGED
|
@@ -33,10 +33,15 @@ class StepManager:
|
|
|
33
33
|
limit: Optional[int] = 50,
|
|
34
34
|
order: Optional[str] = None,
|
|
35
35
|
model: Optional[str] = None,
|
|
36
|
+
agent_id: Optional[str] = None,
|
|
36
37
|
) -> List[PydanticStep]:
|
|
37
38
|
"""List all jobs with optional pagination and status filter."""
|
|
38
39
|
with self.session_maker() as session:
|
|
39
|
-
filter_kwargs = {"organization_id": actor.organization_id
|
|
40
|
+
filter_kwargs = {"organization_id": actor.organization_id}
|
|
41
|
+
if model:
|
|
42
|
+
filter_kwargs["model"] = model
|
|
43
|
+
if agent_id:
|
|
44
|
+
filter_kwargs["agent_id"] = agent_id
|
|
40
45
|
|
|
41
46
|
steps = StepModel.list(
|
|
42
47
|
db_session=session,
|
|
@@ -54,6 +59,7 @@ class StepManager:
|
|
|
54
59
|
def log_step(
|
|
55
60
|
self,
|
|
56
61
|
actor: PydanticUser,
|
|
62
|
+
agent_id: str,
|
|
57
63
|
provider_name: str,
|
|
58
64
|
model: str,
|
|
59
65
|
model_endpoint: Optional[str],
|
|
@@ -65,6 +71,7 @@ class StepManager:
|
|
|
65
71
|
step_data = {
|
|
66
72
|
"origin": None,
|
|
67
73
|
"organization_id": actor.organization_id,
|
|
74
|
+
"agent_id": agent_id,
|
|
68
75
|
"provider_id": provider_id,
|
|
69
76
|
"provider_name": provider_name,
|
|
70
77
|
"model": model,
|
|
@@ -96,7 +96,7 @@ class Summarizer:
|
|
|
96
96
|
)
|
|
97
97
|
|
|
98
98
|
messages = await self.summarizer_agent.step(UserMessage(content=summary_request_text))
|
|
99
|
-
current_summary = "\n".join([m.text for m in messages])
|
|
99
|
+
current_summary = "\n".join([m.content[0].text for m in messages])
|
|
100
100
|
current_summary = f"{self.summary_prefix}{current_summary}"
|
|
101
101
|
|
|
102
102
|
return updated_in_context_messages, current_summary, True
|
letta/services/tool_manager.py
CHANGED
|
@@ -56,6 +56,12 @@ class ToolManager:
|
|
|
56
56
|
|
|
57
57
|
return tool
|
|
58
58
|
|
|
59
|
+
@enforce_types
|
|
60
|
+
def create_or_update_mcp_tool(self, tool_create: ToolCreate, actor: PydanticUser) -> PydanticTool:
|
|
61
|
+
return self.create_or_update_tool(
|
|
62
|
+
PydanticTool(tool_type=ToolType.EXTERNAL_MCP, name=tool_create.json_schema["name"], **tool_create.model_dump()), actor
|
|
63
|
+
)
|
|
64
|
+
|
|
59
65
|
@enforce_types
|
|
60
66
|
def create_or_update_composio_tool(self, tool_create: ToolCreate, actor: PydanticUser) -> PydanticTool:
|
|
61
67
|
return self.create_or_update_tool(
|
letta/settings.py
CHANGED
|
@@ -119,18 +119,17 @@ class ModelSettings(BaseSettings):
|
|
|
119
119
|
|
|
120
120
|
env_cors_origins = os.getenv("ACCEPTABLE_ORIGINS")
|
|
121
121
|
|
|
122
|
-
cors_origins =
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
)
|
|
122
|
+
cors_origins = [
|
|
123
|
+
"http://letta.localhost",
|
|
124
|
+
"http://localhost:8283",
|
|
125
|
+
"http://localhost:8083",
|
|
126
|
+
"http://localhost:3000",
|
|
127
|
+
"http://localhost:4200",
|
|
128
|
+
]
|
|
129
|
+
|
|
130
|
+
# attach the env_cors_origins to the cors_origins if it exists
|
|
131
|
+
if env_cors_origins:
|
|
132
|
+
cors_origins.extend(env_cors_origins.split(","))
|
|
134
133
|
|
|
135
134
|
# read pg_uri from ~/.letta/pg_uri or set to none, this is to support Letta Desktop
|
|
136
135
|
default_pg_uri = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: letta-nightly
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.39.dev20250313104142
|
|
4
4
|
Summary: Create LLM agents with long-term memory and custom tools
|
|
5
5
|
License: Apache License
|
|
6
6
|
Author: Letta Team
|
|
@@ -14,6 +14,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
14
14
|
Provides-Extra: all
|
|
15
15
|
Provides-Extra: bedrock
|
|
16
16
|
Provides-Extra: cloud-tool-sandbox
|
|
17
|
+
Provides-Extra: desktop
|
|
17
18
|
Provides-Extra: dev
|
|
18
19
|
Provides-Extra: external-tools
|
|
19
20
|
Provides-Extra: google
|
|
@@ -28,17 +29,17 @@ Requires-Dist: black[jupyter] (>=24.2.0,<25.0.0) ; extra == "dev" or extra == "a
|
|
|
28
29
|
Requires-Dist: boto3 (>=1.36.24,<2.0.0) ; extra == "bedrock"
|
|
29
30
|
Requires-Dist: brotli (>=1.1.0,<2.0.0)
|
|
30
31
|
Requires-Dist: colorama (>=0.4.6,<0.5.0)
|
|
31
|
-
Requires-Dist: composio-core (>=0.7.
|
|
32
|
-
Requires-Dist: composio-langchain (>=0.7.
|
|
33
|
-
Requires-Dist: datamodel-code-generator[http] (>=0.25.0,<0.26.0)
|
|
34
|
-
Requires-Dist: datasets (>=2.14.6,<3.0.0)
|
|
32
|
+
Requires-Dist: composio-core (>=0.7.7,<0.8.0)
|
|
33
|
+
Requires-Dist: composio-langchain (>=0.7.7,<0.8.0)
|
|
34
|
+
Requires-Dist: datamodel-code-generator[http] (>=0.25.0,<0.26.0) ; extra == "desktop" or extra == "all"
|
|
35
|
+
Requires-Dist: datasets (>=2.14.6,<3.0.0)
|
|
35
36
|
Requires-Dist: demjson3 (>=3.0.6,<4.0.0)
|
|
36
|
-
Requires-Dist: docker (>=7.1.0,<8.0.0) ; extra == "external-tools" or extra == "all"
|
|
37
|
+
Requires-Dist: docker (>=7.1.0,<8.0.0) ; extra == "external-tools" or extra == "desktop" or extra == "all"
|
|
37
38
|
Requires-Dist: docstring-parser (>=0.16,<0.17)
|
|
38
39
|
Requires-Dist: docx2txt (>=0.8,<0.9)
|
|
39
40
|
Requires-Dist: e2b-code-interpreter (>=1.0.3,<2.0.0) ; extra == "cloud-tool-sandbox"
|
|
40
41
|
Requires-Dist: faker (>=36.1.0,<37.0.0)
|
|
41
|
-
Requires-Dist: fastapi (>=0.115.6,<0.116.0) ; extra == "server" or extra == "all"
|
|
42
|
+
Requires-Dist: fastapi (>=0.115.6,<0.116.0) ; extra == "server" or extra == "desktop" or extra == "all"
|
|
42
43
|
Requires-Dist: google-genai (>=1.1.0,<2.0.0) ; extra == "google"
|
|
43
44
|
Requires-Dist: grpcio (>=1.68.1,<2.0.0)
|
|
44
45
|
Requires-Dist: grpcio-tools (>=1.68.1,<2.0.0)
|
|
@@ -47,13 +48,14 @@ Requires-Dist: httpx (>=0.28.0,<0.29.0)
|
|
|
47
48
|
Requires-Dist: httpx-sse (>=0.4.0,<0.5.0)
|
|
48
49
|
Requires-Dist: isort (>=5.13.2,<6.0.0) ; extra == "dev" or extra == "all"
|
|
49
50
|
Requires-Dist: jinja2 (>=3.1.5,<4.0.0)
|
|
50
|
-
Requires-Dist: langchain (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "all"
|
|
51
|
-
Requires-Dist: langchain-community (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "all"
|
|
52
|
-
Requires-Dist: letta_client (>=0.1.
|
|
51
|
+
Requires-Dist: langchain (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "desktop" or extra == "all"
|
|
52
|
+
Requires-Dist: langchain-community (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "desktop" or extra == "all"
|
|
53
|
+
Requires-Dist: letta_client (>=0.1.65,<0.2.0)
|
|
53
54
|
Requires-Dist: llama-index (>=0.12.2,<0.13.0)
|
|
54
55
|
Requires-Dist: llama-index-embeddings-openai (>=0.3.1,<0.4.0)
|
|
55
|
-
Requires-Dist: locust (>=2.31.5,<3.0.0) ; extra == "dev" or extra == "all"
|
|
56
|
+
Requires-Dist: locust (>=2.31.5,<3.0.0) ; extra == "dev" or extra == "desktop" or extra == "all"
|
|
56
57
|
Requires-Dist: marshmallow-sqlalchemy (>=1.4.1,<2.0.0)
|
|
58
|
+
Requires-Dist: mcp (>=1.3.0,<2.0.0)
|
|
57
59
|
Requires-Dist: nltk (>=3.8.1,<4.0.0)
|
|
58
60
|
Requires-Dist: numpy (>=1.26.2,<2.0.0)
|
|
59
61
|
Requires-Dist: openai (>=1.60.0,<2.0.0)
|
|
@@ -63,16 +65,16 @@ Requires-Dist: opentelemetry-instrumentation-requests (==0.51b0)
|
|
|
63
65
|
Requires-Dist: opentelemetry-sdk (==1.30.0)
|
|
64
66
|
Requires-Dist: pathvalidate (>=3.2.1,<4.0.0)
|
|
65
67
|
Requires-Dist: pexpect (>=4.9.0,<5.0.0) ; extra == "dev" or extra == "all"
|
|
66
|
-
Requires-Dist: pg8000 (>=1.30.3,<2.0.0) ; extra == "postgres" or extra == "all"
|
|
67
|
-
Requires-Dist: pgvector (>=0.2.3,<0.3.0) ; extra == "postgres" or extra == "all"
|
|
68
|
+
Requires-Dist: pg8000 (>=1.30.3,<2.0.0) ; extra == "postgres" or extra == "desktop" or extra == "all"
|
|
69
|
+
Requires-Dist: pgvector (>=0.2.3,<0.3.0) ; extra == "postgres" or extra == "desktop" or extra == "all"
|
|
68
70
|
Requires-Dist: pre-commit (>=3.5.0,<4.0.0) ; extra == "dev" or extra == "all"
|
|
69
71
|
Requires-Dist: prettytable (>=3.9.0,<4.0.0)
|
|
70
|
-
Requires-Dist: psycopg2 (>=2.9.10,<3.0.0) ; extra == "postgres" or extra == "all"
|
|
71
|
-
Requires-Dist: psycopg2-binary (>=2.9.10,<3.0.0) ; extra == "postgres" or extra == "all"
|
|
72
|
+
Requires-Dist: psycopg2 (>=2.9.10,<3.0.0) ; extra == "postgres" or extra == "desktop" or extra == "all"
|
|
73
|
+
Requires-Dist: psycopg2-binary (>=2.9.10,<3.0.0) ; extra == "postgres" or extra == "desktop" or extra == "all"
|
|
72
74
|
Requires-Dist: pydantic (>=2.7.4,<2.10.0)
|
|
73
75
|
Requires-Dist: pydantic-settings (>=2.2.1,<3.0.0)
|
|
74
76
|
Requires-Dist: pyhumps (>=3.8.0,<4.0.0)
|
|
75
|
-
Requires-Dist: pyright (>=1.1.347,<2.0.0) ; extra == "dev" or extra == "all"
|
|
77
|
+
Requires-Dist: pyright (>=1.1.347,<2.0.0) ; extra == "dev" or extra == "desktop" or extra == "all"
|
|
76
78
|
Requires-Dist: pytest-asyncio (>=0.23.2,<0.24.0) ; extra == "dev" or extra == "all"
|
|
77
79
|
Requires-Dist: pytest-order (>=1.2.0,<2.0.0) ; extra == "dev" or extra == "all"
|
|
78
80
|
Requires-Dist: python-box (>=7.1.1,<8.0.0)
|
|
@@ -90,8 +92,8 @@ Requires-Dist: sqlalchemy-utils (>=0.41.2,<0.42.0)
|
|
|
90
92
|
Requires-Dist: sqlmodel (>=0.0.16,<0.0.17)
|
|
91
93
|
Requires-Dist: tqdm (>=4.66.1,<5.0.0)
|
|
92
94
|
Requires-Dist: typer[all] (>=0.9.0,<0.10.0)
|
|
93
|
-
Requires-Dist: uvicorn (>=0.24.0.post1,<0.25.0) ; extra == "server" or extra == "all"
|
|
94
|
-
Requires-Dist: wikipedia (>=1.4.0,<2.0.0) ; extra == "external-tools" or extra == "tests" or extra == "all"
|
|
95
|
+
Requires-Dist: uvicorn (>=0.24.0.post1,<0.25.0) ; extra == "server" or extra == "desktop" or extra == "all"
|
|
96
|
+
Requires-Dist: wikipedia (>=1.4.0,<2.0.0) ; extra == "external-tools" or extra == "tests" or extra == "desktop" or extra == "all"
|
|
95
97
|
Description-Content-Type: text/markdown
|
|
96
98
|
|
|
97
99
|
<p align="center">
|
|
@@ -1,39 +1,40 @@
|
|
|
1
|
-
letta/__init__.py,sha256=
|
|
1
|
+
letta/__init__.py,sha256=q6k2pwvx7XD4fcSf0faPYn9dD9Yj6778hhgrULdXd6s,918
|
|
2
2
|
letta/__main__.py,sha256=6Hs2PV7EYc5Tid4g4OtcLXhqVHiNYTGzSBdoOnW2HXA,29
|
|
3
|
-
letta/agent.py,sha256=
|
|
3
|
+
letta/agent.py,sha256=2n0GTPjWnBT9jQib_qulOlq4_hdcLIfgzIB9A2u1LbE,67778
|
|
4
4
|
letta/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
letta/agents/base_agent.py,sha256=8IMB7UK4ft-Wi-ZYjX7akqQUhk_cSswRgepqeZyvCMs,1550
|
|
6
6
|
letta/agents/ephemeral_agent.py,sha256=XOQ5rj3cn7i7Imr_aFaL8DbH7oAizrHbmUy8QZuz9yk,2704
|
|
7
|
-
letta/agents/low_latency_agent.py,sha256=
|
|
7
|
+
letta/agents/low_latency_agent.py,sha256=CfldT1b0jZ_iTySES4woyXLOQUsIzCnlEHP8treekN4,13990
|
|
8
8
|
letta/benchmark/benchmark.py,sha256=ebvnwfp3yezaXOQyGXkYCDYpsmre-b9hvNtnyx4xkG0,3701
|
|
9
9
|
letta/benchmark/constants.py,sha256=aXc5gdpMGJT327VuxsT5FngbCK2J41PQYeICBO7g_RE,536
|
|
10
10
|
letta/cli/cli.py,sha256=zJz78-qDUz-depb7VQWkg87RBKiETQU4h9DI6ukQBa8,16477
|
|
11
11
|
letta/cli/cli_config.py,sha256=MNMhIAAjXiAy2gX_gAtqiY0Ya6VNbzXJWjIcRVEZa-k,8597
|
|
12
12
|
letta/cli/cli_load.py,sha256=vER0PwpHnsCZtCHcR2YjEXM-VVuO9jhfQibdo3gI3S0,2703
|
|
13
13
|
letta/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
-
letta/client/client.py,sha256=
|
|
14
|
+
letta/client/client.py,sha256=wUhjvA2isZI0-2l0vM3-7lgNZOtjAxF85-F75jZj0eE,137450
|
|
15
15
|
letta/client/streaming.py,sha256=lN9vamc07sfQlRbFif327GvURLUPhx-4AC_oUOPvs6w,4543
|
|
16
16
|
letta/client/utils.py,sha256=VCGV-op5ZSmurd4yw7Vhf93XDQ0BkyBT8qsuV7EqfiU,2859
|
|
17
17
|
letta/config.py,sha256=JFGY4TWW0Wm5fTbZamOwWqk5G8Nn-TXyhgByGoAqy2c,12375
|
|
18
|
-
letta/constants.py,sha256=
|
|
18
|
+
letta/constants.py,sha256=_QI06HD6yLmGFrTqexLkUnUWSsKUiBlM1QtbiLGEq4k,7773
|
|
19
19
|
letta/data_sources/connectors.py,sha256=R2AssXpqS7wN6VI8AfxvqaZs5S1ZACc4E_FewmR9iZI,7022
|
|
20
20
|
letta/data_sources/connectors_helper.py,sha256=oQpVlc-BjSz9sTZ7sp4PsJSXJbBKpZPi3Dam03CURTQ,3376
|
|
21
21
|
letta/embeddings.py,sha256=zqlfbN3aCgSOlNd9M2NW9zrwx4WwQzketb8oa5BzzE8,10831
|
|
22
22
|
letta/errors.py,sha256=6fQXg2unP-2fo3R7db0ayKKWlD2XMusOPNi9TgJplCg,5558
|
|
23
23
|
letta/functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
24
|
letta/functions/ast_parsers.py,sha256=CQI0rUoIXcLKAev_GYrXcldRIGN5ZQtk5u4FLoHe5sE,5728
|
|
25
|
-
letta/functions/function_sets/base.py,sha256=
|
|
25
|
+
letta/functions/function_sets/base.py,sha256=Rc1fKCExxTR66DmEh4OTCtvHIpC0s28ggx9tFgh_0QQ,6010
|
|
26
26
|
letta/functions/function_sets/extras.py,sha256=R1a97EKepEPDxJKsxQPFdXXWQrkVppOvKbEkRc_79tc,4852
|
|
27
|
-
letta/functions/function_sets/multi_agent.py,sha256=
|
|
27
|
+
letta/functions/function_sets/multi_agent.py,sha256=MmLw42ztpjoZj6bPR6BKq9ttRWa9NMwuod48YQq5Qzw,4024
|
|
28
28
|
letta/functions/functions.py,sha256=NyWLh7a-f4mXti5vM1oWDwXzfA58VmVVqL03O9vosKY,5672
|
|
29
|
-
letta/functions/helpers.py,sha256=
|
|
29
|
+
letta/functions/helpers.py,sha256=Eh-6FLVCv7eJZP_IwP4Ib374oYzfvdkAOtYJX7p1t6c,27495
|
|
30
30
|
letta/functions/interface.py,sha256=s_PPp5WDvGH_y9KUpMlORkdC141ITczFk3wsevrrUD8,2866
|
|
31
|
-
letta/functions/schema_generator.py,sha256=
|
|
31
|
+
letta/functions/schema_generator.py,sha256=wbV8tDx5RIkrSP9JNVo3PUuulN-WZie1WWLg69QTOjE,22320
|
|
32
32
|
letta/helpers/__init__.py,sha256=p0luQ1Oe3Skc6sH4O58aHHA3Qbkyjifpuq0DZ1GAY0U,59
|
|
33
33
|
letta/helpers/composio_helpers.py,sha256=6CWV483vE3N-keQlblexxBiQHxorMAgQuvbok4adGO4,949
|
|
34
34
|
letta/helpers/converters.py,sha256=yM0slUU4YMW6K260JT88xnCxK2jB4RstSmaOezsT_Ik,6679
|
|
35
35
|
letta/helpers/datetime_helpers.py,sha256=7U5ZJkE0cLki4sG8ukIHZSAoFfQpLWQu2kFekETy6Zg,2633
|
|
36
36
|
letta/helpers/json_helpers.py,sha256=PWZ5HhSqGXO4e563dM_8M72q7ScirjXQ4Rv1ckohaV8,396
|
|
37
|
+
letta/helpers/mcp_helpers.py,sha256=kq2CH4PtnawUuO409_G3Q1ZUB0WSB0fzYb7JDpPUxo4,4196
|
|
37
38
|
letta/helpers/tool_execution_helper.py,sha256=bskCscuz2nqoUboFcYA7sQGeikdEyqiYnNpO4gLQTdc,7469
|
|
38
39
|
letta/helpers/tool_rule_solver.py,sha256=z-2Zq_qWykgWanFZYxtxUee4FkMnxqvntXe2tomoH68,6774
|
|
39
40
|
letta/humans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -48,13 +49,17 @@ letta/llm_api/anthropic.py,sha256=pDj9W_Myz4fe05eoMiApO45G8jqzVoO9QyfFpCs-uV0,38
|
|
|
48
49
|
letta/llm_api/aws_bedrock.py,sha256=J_oCM810-m2T-tgo3iRwSM0BuykBN5AK3SbkyiOaGbc,3835
|
|
49
50
|
letta/llm_api/azure_openai.py,sha256=GP50e3WyoU2O_vb_b06GYTA1S157I0G21lF9-qv9nsA,6459
|
|
50
51
|
letta/llm_api/azure_openai_constants.py,sha256=ZaR2IasJThijG0uhLKJThrixdAxLPD2IojfeaJ-KQMQ,294
|
|
51
|
-
letta/llm_api/cohere.py,sha256=
|
|
52
|
+
letta/llm_api/cohere.py,sha256=uzSXkvDPg4CV6tNnbX3yYkYsXRXAm4FvclUX8ln1etM,14863
|
|
52
53
|
letta/llm_api/deepseek.py,sha256=b1mSW8gnBrpAI8d2GcBpDyLYDnuC-P1UP6xJPalfQS4,12456
|
|
53
54
|
letta/llm_api/google_ai.py,sha256=oeGH6dTKfNTQ1Ip4HWkZ5KkVoujdru6XjQPWsirRBSM,18162
|
|
55
|
+
letta/llm_api/google_ai_client.py,sha256=114KoGp-6AecNE5BITHdjEvXnhqw6m4FSPrbwrl_Bkg,14486
|
|
54
56
|
letta/llm_api/google_constants.py,sha256=ZdABT9l9l-qKcV2QCkVsv9kQbttx6JyIJoOWS8IMS5o,448
|
|
55
57
|
letta/llm_api/google_vertex.py,sha256=-8ERH8YPsQIAi6ZuYNcvny7Jz-Q4IFIbV7xqDspUUD4,14399
|
|
56
|
-
letta/llm_api/
|
|
57
|
-
letta/llm_api/
|
|
58
|
+
letta/llm_api/google_vertex_client.py,sha256=Cu1AVKxLCSvip1h8lleJ8voatSH2d6XnGmQjdKqmVoo,9648
|
|
59
|
+
letta/llm_api/helpers.py,sha256=sLYv30UnKBRVPuhU_KDXfKFdbkUONiDAyVEwGr86l3A,16780
|
|
60
|
+
letta/llm_api/llm_api_tools.py,sha256=g6Rm7srSNzJKDEUDIKA-dJ9W9GLynLOSgt_2lHj2Lqg,28426
|
|
61
|
+
letta/llm_api/llm_client.py,sha256=u7nnmtSgwhqNDiaNmv6i0G-I-WgwLH35uxJnXM0C33o,1767
|
|
62
|
+
letta/llm_api/llm_client_base.py,sha256=754JOj33J2kowxSYdP7hkQ_dx47zZ5qCQXy2w5NiywM,4881
|
|
58
63
|
letta/llm_api/mistral.py,sha256=fHdfD9ug-rQIk2qn8tRKay1U6w9maF11ryhKi91FfXM,1593
|
|
59
64
|
letta/llm_api/openai.py,sha256=UnCh2NYYJWpwUai6P2enFop3K_5JS4-VHuoFoBx7yRs,22398
|
|
60
65
|
letta/local_llm/README.md,sha256=hFJyw5B0TU2jrh9nb0zGZMgdH-Ei1dSRfhvPQG_NSoU,168
|
|
@@ -88,31 +93,32 @@ letta/local_llm/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
|
|
|
88
93
|
letta/local_llm/settings/deterministic_mirostat.py,sha256=kgRikcxYHfIbPFydHW6W7IO9jmp6NeA7JNAhnI3DPsc,1221
|
|
89
94
|
letta/local_llm/settings/settings.py,sha256=QBuuOLl3OFxN6koBGxFuXSllf4EryQuJCHB5_0IttFU,2962
|
|
90
95
|
letta/local_llm/settings/simple.py,sha256=HAO2jBJ_hJCEsXWIJcD0sckR0tI0zs3x2CPdf6ORQLs,719
|
|
91
|
-
letta/local_llm/utils.py,sha256=
|
|
96
|
+
letta/local_llm/utils.py,sha256=QOOBg8VQdFzwEvn6MPbV85LPUQTTLTqVXhELZqtISXA,14080
|
|
92
97
|
letta/local_llm/vllm/api.py,sha256=2kAGZjc_GH9ILJnVRq-45yfsfKELVfbC9VEl_cIC6vg,2590
|
|
93
98
|
letta/local_llm/webui/api.py,sha256=kkxncdCFq1vjgvaHOoQ__j7rcDPgC1F64KcEm94Y6Rs,2639
|
|
94
99
|
letta/local_llm/webui/legacy_api.py,sha256=k3H3y4qp2Fs-XmP24iSIEyvq6wjWFWBzklY3-wRAJNI,2335
|
|
95
100
|
letta/local_llm/webui/legacy_settings.py,sha256=BLmd3TSx5StnY3ibjwaxYATPt_Lvq-o1rlcc_-Q1JcU,538
|
|
96
101
|
letta/local_llm/webui/settings.py,sha256=gmLHfiOl1u4JmlAZU2d2O8YKF9lafdakyjwR_ftVPh8,552
|
|
97
|
-
letta/log.py,sha256=
|
|
102
|
+
letta/log.py,sha256=FbFwU9KEX7k0FBYhPl7fJ6uQ3NO3-ZbsnM2OpcTFXjo,2217
|
|
98
103
|
letta/main.py,sha256=_agyaYPJq70OL0goNwO34zENL2KupnTgqlg-HVcNaTY,15379
|
|
99
|
-
letta/memory.py,sha256=
|
|
104
|
+
letta/memory.py,sha256=26cwXeUxlB_UfTMPjKyXs19foNxMe-gecEggOiR5Eiw,3364
|
|
100
105
|
letta/offline_memory_agent.py,sha256=P_rm6GmKAH6lg7-njuv7dK29f7v5-tAQy-rMOwcPfwk,7499
|
|
101
106
|
letta/openai_backcompat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
102
107
|
letta/openai_backcompat/openai_object.py,sha256=GSzeCTwLpLD2fH4X8wVqzwdmoTjKK2I4PnriBY453lc,13505
|
|
103
108
|
letta/orm/__all__.py,sha256=2gh2MZTkA3Hw67VWVKK3JIStJOqTeLdpCvYSVYNeEDA,692
|
|
104
|
-
letta/orm/__init__.py,sha256=
|
|
109
|
+
letta/orm/__init__.py,sha256=QNrBCBcz4Z-xVObkWngCkJTp7LWJfIZQ1IMWUylFPyg,996
|
|
105
110
|
letta/orm/agent.py,sha256=LYMAfDfUlLTpOu5hw8mrQ1AKOOkT39BvLMp12IdGrik,7742
|
|
106
111
|
letta/orm/agents_tags.py,sha256=dYSnHz4IWBjyOiQ4RJomX3P0QN76JTlEZEw5eJM6Emg,925
|
|
107
112
|
letta/orm/base.py,sha256=VjvxF9TwKF9Trf8BJkDgf7D6KrWWopOkUiF18J3IElk,3071
|
|
108
|
-
letta/orm/block.py,sha256=
|
|
113
|
+
letta/orm/block.py,sha256=Ci_CO54CDb4vpZkrRircmYjc-Y00Zhs9T14s3Bf_dF4,4134
|
|
109
114
|
letta/orm/blocks_agents.py,sha256=W0dykl9OchAofSuAYZD5zNmhyMabPr9LTJrz-I3A0m4,983
|
|
110
115
|
letta/orm/custom_columns.py,sha256=UW_qhIJGYlPn7TMMeTILYKXibdZ2CKVlhXDX5UmnNxA,2567
|
|
111
|
-
letta/orm/enums.py,sha256=
|
|
116
|
+
letta/orm/enums.py,sha256=gUmlsCN04RiwtbN1FysjgqDqbR7WiU546iNPjCEzTNk,610
|
|
112
117
|
letta/orm/errors.py,sha256=Se0Guz-gqi-D36NUWSh7AP9zTVCSph9KgZh_trwng4o,734
|
|
113
118
|
letta/orm/file.py,sha256=7_p7LxityP3NQZVURQYG0kgcZhEkVuMN0Fj4h9YOe1w,1780
|
|
114
119
|
letta/orm/identities_agents.py,sha256=cfIQ6UsbwmjxtGVmFt1ArK2zbKr9k6VWoELuISDnLSc,502
|
|
115
|
-
letta/orm/
|
|
120
|
+
letta/orm/identities_blocks.py,sha256=oS0DnDXKzcWtlH2dDFREkNF1JHJ3Kyg8fN9GI8DKtcg,501
|
|
121
|
+
letta/orm/identity.py,sha256=DQlyqQtszv8AlP0HYftBbewoHbCr-_vQllzEvNuGrxA,2867
|
|
116
122
|
letta/orm/job.py,sha256=G2P-xUpTapD4lhU2FwMZET1b5QR4ju9WOB3uiTKD_mw,2157
|
|
117
123
|
letta/orm/job_messages.py,sha256=SgwaYPYwwAC3dBtl9Xye_TWUl9H_-m95S95TTcfPyOg,1245
|
|
118
124
|
letta/orm/message.py,sha256=Q3Tx8MqImgmyxiGnfxrgkosZdhWeOiHP9XUOM4Y9KFk,3085
|
|
@@ -123,9 +129,9 @@ letta/orm/provider.py,sha256=-qA9tvKTZgaM4D7CoDZZiA7zTgjaaWDV4jZvifQv_MM,805
|
|
|
123
129
|
letta/orm/sandbox_config.py,sha256=DyOy_1_zCMlp13elCqPcuuA6OwUove6mrjhcpROTg50,4150
|
|
124
130
|
letta/orm/source.py,sha256=z89VZUHV9K8Ew9JCYoZqUeRb1WEUKmrn0MMFkppaphE,2117
|
|
125
131
|
letta/orm/sources_agents.py,sha256=Ik_PokCBrXRd9wXWomeNeb8EtLUwjb9VMZ8LWXqpK5A,473
|
|
126
|
-
letta/orm/sqlalchemy_base.py,sha256=
|
|
132
|
+
letta/orm/sqlalchemy_base.py,sha256=IKkMSQ5LLGqP6gNL_Q4pdsYlOd5XM_8YM0vh606Gyc4,22501
|
|
127
133
|
letta/orm/sqlite_functions.py,sha256=JCScKiRlYCKxy9hChQ8wsk4GMKknZE24MunnG3fM1Gw,4255
|
|
128
|
-
letta/orm/step.py,sha256=
|
|
134
|
+
letta/orm/step.py,sha256=fjm7fLtYLCtFM6Mj6e2boP6P7dHSFG24Nem85VfVqHg,3216
|
|
129
135
|
letta/orm/tool.py,sha256=x58lmVG5IhXTVt82CnoN-ExuObnQCbeSMx_yOhUMmA4,2515
|
|
130
136
|
letta/orm/tools_agents.py,sha256=r6t-V21w2_mG8n38zuUb5jOi_3hRxsjgezsLA4sg0m4,626
|
|
131
137
|
letta/orm/user.py,sha256=rK5N5ViDxmesZMqVVHB7FcQNpcSoM-hB42MyI6q3MnI,1004
|
|
@@ -158,23 +164,23 @@ letta/prompts/system/memgpt_offline_memory.txt,sha256=rWEJeF-6aiinjkJM9hgLUYCmlE
|
|
|
158
164
|
letta/prompts/system/memgpt_offline_memory_chat.txt,sha256=ituh7gDuio7nC2UKFB7GpBq6crxb8bYedQfJ0ADoPgg,3949
|
|
159
165
|
letta/pytest.ini,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
160
166
|
letta/schemas/agent.py,sha256=4pTHrTV_FYyJuujtSglRsJQ2ouF0FRYWNmvObbLeL2g,14123
|
|
161
|
-
letta/schemas/block.py,sha256=
|
|
167
|
+
letta/schemas/block.py,sha256=rMWflyj982qW86dQK-9saXBHKaLCu3aUG2gQTckG3Ik,4984
|
|
162
168
|
letta/schemas/embedding_config.py,sha256=ufboqW9ctSBJdhwzJRbrGtTzOTwSKfT0LY0mowpr6fs,3398
|
|
163
169
|
letta/schemas/embedding_config_overrides.py,sha256=lkTa4y-EQ2RnaEKtKDM0sEAk7EwNa67REw8DGNNtGQY,84
|
|
164
170
|
letta/schemas/enums.py,sha256=jfuke35XP_AKfHHBnH1rx1wYjUDWqgDsKnRxdrCpTKA,1213
|
|
165
171
|
letta/schemas/environment_variables.py,sha256=VRtzOjdeQdHcSHXisk7oJUQlheruxhSWNS0xqlfGzbs,2429
|
|
166
172
|
letta/schemas/file.py,sha256=ChN2CWzLI2TT9WLItcfElEH0E8b7kzPylF2OQBr6Beg,1550
|
|
167
173
|
letta/schemas/health.py,sha256=zT6mYovvD17iJRuu2rcaQQzbEEYrkwvAE9TB7iU824c,139
|
|
168
|
-
letta/schemas/identity.py,sha256=
|
|
174
|
+
letta/schemas/identity.py,sha256=9emyusE65zFSW7IDKDMsGzMwqDbadF0eKjvYNDtpS1s,3220
|
|
169
175
|
letta/schemas/job.py,sha256=MX9EiLDDIeHm3q52ImOjp7UzXEdYTXAWWobRCAxwV0w,2225
|
|
170
176
|
letta/schemas/letta_base.py,sha256=DuMqiNFmYwTAsXUHYdX--EWgtFUVzph5ptLZvu7aguI,3988
|
|
171
|
-
letta/schemas/letta_message.py,sha256=
|
|
177
|
+
letta/schemas/letta_message.py,sha256=3AXGiSwXf9m3Ta2A0Z8BlCq80n4fRC3c66V7LkiDUHw,10648
|
|
172
178
|
letta/schemas/letta_request.py,sha256=dzy3kwb5j2QLaSV0sDlwISEMt2xxH3IiK-vR9xJV65k,1123
|
|
173
179
|
letta/schemas/letta_response.py,sha256=pq-SxXQy5yZo1-DiAwV2mMURlUvz1Uu7HHR_tB1hMho,7139
|
|
174
180
|
letta/schemas/llm_config.py,sha256=bqq4LGE9layPcnnkzd_8d2SB8o1x8XdDzfd2ZkYQwcY,5611
|
|
175
181
|
letta/schemas/llm_config_overrides.py,sha256=-oRglCTcajF6UAK3RAa0FLWVuKODPI1v403fDIWMAtA,1815
|
|
176
182
|
letta/schemas/memory.py,sha256=GOYDfPKzbWftUWO9Hv4KW7xAi1EIQmC8zpP7qvEkVHw,10245
|
|
177
|
-
letta/schemas/message.py,sha256=
|
|
183
|
+
letta/schemas/message.py,sha256=73F0UwRpi1DkQi_MOTLYctIgIUkxoeMqLaA-EiKdqX4,39544
|
|
178
184
|
letta/schemas/openai/chat_completion_request.py,sha256=3tALmbBV2pv1CcqzNLBxxIPOQ8Z85woucT7FN0fuDic,3402
|
|
179
185
|
letta/schemas/openai/chat_completion_response.py,sha256=koEb_NTiz5YsAAX81Z0cSqSFX4a6MdD2lhoXtxF_rw4,4100
|
|
180
186
|
letta/schemas/openai/chat_completions.py,sha256=l0e9sT9boTD5VBU5YtJ0s7qUtCfFGB2K-gQLeEZ2LHU,3599
|
|
@@ -186,13 +192,13 @@ letta/schemas/providers.py,sha256=2Ijzjj1gPETiFyl8yb4ZbwaTljw5WSCdGayAgCsBeYE,43
|
|
|
186
192
|
letta/schemas/run.py,sha256=SRqPRziINIiPunjOhE_NlbnQYgxTvqmbauni_yfBQRA,2085
|
|
187
193
|
letta/schemas/sandbox_config.py,sha256=SZCo3FSMz-DIBMKGu0atT4tsVFXGsqMFPaJnjrxpkX4,5993
|
|
188
194
|
letta/schemas/source.py,sha256=-BQVolcXA2ziCu2ztR6cbTdGUc8G7vGJy7rvpdf1hpg,2880
|
|
189
|
-
letta/schemas/step.py,sha256=
|
|
190
|
-
letta/schemas/tool.py,sha256=
|
|
195
|
+
letta/schemas/step.py,sha256=WkcVnruUUOWLKwiWPn2Gfal4EQZPNLqlsd9859xhgsw,2224
|
|
196
|
+
letta/schemas/tool.py,sha256=A6HS_nHoxAOVyv4u6NMxzMNsp0PG40kY2uDS8FA06M4,12284
|
|
191
197
|
letta/schemas/tool_rule.py,sha256=2YQZba4fXS3u4j8pIk7BDujfq8rnxSVMwJSyaVgApH4,2149
|
|
192
198
|
letta/schemas/usage.py,sha256=8oYRH-JX0PfjIu2zkT5Uu3UWQ7Unnz_uHiO8hRGI4m0,912
|
|
193
199
|
letta/schemas/user.py,sha256=V32Tgl6oqB3KznkxUz12y7agkQicjzW7VocSpj78i6Q,1526
|
|
194
200
|
letta/serialize_schemas/__init__.py,sha256=mflGEZvM3NuMG9Q6dccEdVk73BUHoX-v7hmfk025Gmc,64
|
|
195
|
-
letta/serialize_schemas/agent.py,sha256=
|
|
201
|
+
letta/serialize_schemas/agent.py,sha256=BqtIBiMbGnupr6CGCF4Z4wKtkT90ACnxLN0qcRgkieM,3281
|
|
196
202
|
letta/serialize_schemas/agent_environment_variable.py,sha256=IDcivP-xB1j6Fn0onSM4T1l4CSlXhOLWNmKHG2psOoU,641
|
|
197
203
|
letta/serialize_schemas/base.py,sha256=X5cs1U4P0Vjem4SKNCYBiSAIboThJdM2Oyphu_Nl9Ag,2040
|
|
198
204
|
letta/serialize_schemas/block.py,sha256=BeZ2FZO59IWUHiPMSNKlZMi9dH9Gbys0rJpsoCFBjdg,420
|
|
@@ -205,19 +211,19 @@ letta/server/constants.py,sha256=yAdGbLkzlOU_dLTx0lKDmAnj0ZgRXCEaIcPJWO69eaE,92
|
|
|
205
211
|
letta/server/db.py,sha256=cA1MHpMCTTC1MX7VWppJ-cKq1XW93Vws_vTV0-bKmTE,3642
|
|
206
212
|
letta/server/generate_openapi_schema.sh,sha256=0OtBhkC1g6CobVmNEd_m2B6sTdppjbJLXaM95icejvE,371
|
|
207
213
|
letta/server/rest_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
208
|
-
letta/server/rest_api/app.py,sha256=
|
|
214
|
+
letta/server/rest_api/app.py,sha256=_rJ6XzvmACjaZwtuGbTLPcqd40pa9FIUyAUHPJCTvow,12723
|
|
209
215
|
letta/server/rest_api/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
210
216
|
letta/server/rest_api/auth/index.py,sha256=fQBGyVylGSRfEMLQ17cZzrHd5Y1xiVylvPqH5Rl-lXQ,1378
|
|
211
217
|
letta/server/rest_api/auth_token.py,sha256=725EFEIiNj4dh70hrSd94UysmFD8vcJLrTRfNHkzxDo,774
|
|
212
|
-
letta/server/rest_api/chat_completions_interface.py,sha256=
|
|
213
|
-
letta/server/rest_api/interface.py,sha256=
|
|
218
|
+
letta/server/rest_api/chat_completions_interface.py,sha256=W2Zxm-RuahS5Ll8OzwUJoPC5fGliVGc3yN_icybI3G4,10953
|
|
219
|
+
letta/server/rest_api/interface.py,sha256=4wwQmmM1Fqiy4ll4YlH_hv0Wks0skfh-M06HZbo01hM,60776
|
|
214
220
|
letta/server/rest_api/optimistic_json_parser.py,sha256=1z4d9unmxMb0ou7owJ62uUQoNjNYf21FmaNdg0ZcqUU,6567
|
|
215
221
|
letta/server/rest_api/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
216
222
|
letta/server/rest_api/routers/openai/chat_completions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
217
|
-
letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=
|
|
223
|
+
letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=OgjWs4zJaIi5Ps67iCTeOLmLXcW0S5Xccd-TcNa9obQ,5321
|
|
218
224
|
letta/server/rest_api/routers/v1/__init__.py,sha256=Zi2th-okqT_RWAjB8MYGHX8CpHt1OSRyO5V8SJEp6UU,1361
|
|
219
|
-
letta/server/rest_api/routers/v1/agents.py,sha256=
|
|
220
|
-
letta/server/rest_api/routers/v1/blocks.py,sha256=
|
|
225
|
+
letta/server/rest_api/routers/v1/agents.py,sha256=ViQuKsVtqYciLXHkQkC03gz5TtF2CORZg4d6fhH9D0M,29458
|
|
226
|
+
letta/server/rest_api/routers/v1/blocks.py,sha256=OqX-YHC8e-yi-IoZ8OQJQjZ4QIjJ4xcio0tUlRhv8H0,4168
|
|
221
227
|
letta/server/rest_api/routers/v1/health.py,sha256=MoOjkydhGcJXTiuJrKIB0etVXiRMdTa51S8RQ8-50DQ,399
|
|
222
228
|
letta/server/rest_api/routers/v1/identities.py,sha256=gRTcOXxbpiTzQzzVA_I1Sc9aUSKhW6YcQcJb__HxOX4,5957
|
|
223
229
|
letta/server/rest_api/routers/v1/jobs.py,sha256=4oeJfI2odNGubU_g7WSORJhn_usFsbRaD-qm86rve1E,2746
|
|
@@ -227,14 +233,14 @@ letta/server/rest_api/routers/v1/providers.py,sha256=qyZsNTXgLVsoLZoCVY4qaqiG34z
|
|
|
227
233
|
letta/server/rest_api/routers/v1/runs.py,sha256=-2_YA2nuxcLqiPjG9CPHeZbyrtlNQZnAsaNohGn5fMg,8278
|
|
228
234
|
letta/server/rest_api/routers/v1/sandbox_configs.py,sha256=9hqnnMwJ3wCwO-Bezu3Xl8i3TDSIuInw3gSeHaKUXfE,8526
|
|
229
235
|
letta/server/rest_api/routers/v1/sources.py,sha256=rpQhaRHyzGUK43LX623L8BBLqL85HJ6fUYPMvI4k3kA,8434
|
|
230
|
-
letta/server/rest_api/routers/v1/steps.py,sha256=
|
|
236
|
+
letta/server/rest_api/routers/v1/steps.py,sha256=DVVwaxLNbNAgWpr2oQkrNjdS-wi0bP8kVJZUO-hiaf8,3275
|
|
231
237
|
letta/server/rest_api/routers/v1/tags.py,sha256=coydgvL6-9cuG2Hy5Ea7QY3inhTHlsf69w0tcZenBus,880
|
|
232
|
-
letta/server/rest_api/routers/v1/tools.py,sha256=
|
|
238
|
+
letta/server/rest_api/routers/v1/tools.py,sha256=1nBJdYijMVf1RYHgVw01QPnAVsFI5LEYqC5z69AE6YQ,16060
|
|
233
239
|
letta/server/rest_api/routers/v1/users.py,sha256=G5DBHSkPfBgVHN2Wkm-rVYiLQAudwQczIq2Z3YLdbVo,2277
|
|
234
|
-
letta/server/rest_api/routers/v1/voice.py,sha256=
|
|
240
|
+
letta/server/rest_api/routers/v1/voice.py,sha256=7J0L-Nkz65m0PXcpQI2ATMIZzumDDSUzgtIus7d-tv8,2461
|
|
235
241
|
letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
|
|
236
242
|
letta/server/rest_api/utils.py,sha256=TlVzgtsg0jmaXzvGubtzOE9WSyvRe6_DFoIBK9EDYt8,13820
|
|
237
|
-
letta/server/server.py,sha256=
|
|
243
|
+
letta/server/server.py,sha256=CaG1oIS_uAI6MwuNDNZA_l7mfWyDn9ouITzmOLTi0HU,62929
|
|
238
244
|
letta/server/startup.sh,sha256=eo7zz4HGu5ryOshfbOSGbXpUDDyoaP7fTq4z8269uaw,1939
|
|
239
245
|
letta/server/static_files/assets/index-048c9598.js,sha256=mR16XppvselwKCcNgONs4L7kZEVa4OEERm4lNZYtLSk,146819
|
|
240
246
|
letta/server/static_files/assets/index-0e31b727.css,sha256=SBbja96uiQVLDhDOroHgM6NSl7tS4lpJRCREgSS_hA8,7672
|
|
@@ -248,34 +254,34 @@ letta/server/ws_api/interface.py,sha256=TWl9vkcMCnLsUtgsuENZ-ku2oMDA-OUTzLh_yNRo
|
|
|
248
254
|
letta/server/ws_api/protocol.py,sha256=5mDgpfNZn_kNwHnpt5Dsuw8gdNH298sgxTGed3etzYg,1836
|
|
249
255
|
letta/server/ws_api/server.py,sha256=cBSzf-V4zT1bL_0i54OTI3cMXhTIIxqjSRF8pYjk7fg,5835
|
|
250
256
|
letta/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
251
|
-
letta/services/agent_manager.py,sha256=
|
|
252
|
-
letta/services/block_manager.py,sha256=
|
|
253
|
-
letta/services/helpers/agent_manager_helper.py,sha256=
|
|
257
|
+
letta/services/agent_manager.py,sha256=Lb3dr3n-La2-yKsQQPwQDjZIgiQetjaqTsu3QFYusD4,60233
|
|
258
|
+
letta/services/block_manager.py,sha256=vfFs7T00WZWKfyKn50QjK5N1T7b2xjuxou7ffjGVf0Y,5838
|
|
259
|
+
letta/services/helpers/agent_manager_helper.py,sha256=0xpFUQlLoben1_1sARDFSULOk2_ueWiCtGvl1UMJqTg,11643
|
|
254
260
|
letta/services/helpers/tool_execution_helper.py,sha256=lLoebs1kZKjw62y1PxHbIDkHq_heJN2ZT0gKje-R8oo,6941
|
|
255
|
-
letta/services/identity_manager.py,sha256=
|
|
261
|
+
letta/services/identity_manager.py,sha256=DJzvq5TqzgmVdnH401YAJUycXTE0tNN70KRZTwu6ko8,8505
|
|
256
262
|
letta/services/job_manager.py,sha256=ejcv_nMljByimiWJjvj7aqUFQktL1kK-vx_cra2L2cs,16317
|
|
257
|
-
letta/services/message_manager.py,sha256=
|
|
263
|
+
letta/services/message_manager.py,sha256=ZcHn3xQC86LY0_6mecux9WyxPQqMDAhMRjXIjAFLVdc,13079
|
|
258
264
|
letta/services/organization_manager.py,sha256=dhQ3cFPXWNYLfMjdahr2HsOAMJ1JtCEWj1G8Nei5MQc,3388
|
|
259
265
|
letta/services/passage_manager.py,sha256=mwShFO_xRaTi82fvANb_ngO0TmGaZPA9FPu8KuZ6Gd8,8643
|
|
260
266
|
letta/services/per_agent_lock_manager.py,sha256=porM0cKKANQ1FvcGXOO_qM7ARk5Fgi1HVEAhXsAg9-4,546
|
|
261
267
|
letta/services/provider_manager.py,sha256=QOKMSZOM6eAWa2-nANWQc1frKBh8N3gqDq0V87fnSuc,3748
|
|
262
268
|
letta/services/sandbox_config_manager.py,sha256=ATgZNWNpkdIQDUPy4ABsguHQba2PZf51-c4Ji60MzLE,13361
|
|
263
269
|
letta/services/source_manager.py,sha256=SE24AiPPhpvZMGDD047H3_ZDD7OM4zHbTW1JXjPEv7U,7672
|
|
264
|
-
letta/services/step_manager.py,sha256=
|
|
270
|
+
letta/services/step_manager.py,sha256=B64iYn6Dt9yRKsSJ5vLxWQR2t-apvPLfUZyzrUsJTpI,5335
|
|
265
271
|
letta/services/summarizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
266
272
|
letta/services/summarizer/enums.py,sha256=szzPX2OBRRJEZsBTGYQThrNz02ELFqhuLwvOR7ozi7A,208
|
|
267
|
-
letta/services/summarizer/summarizer.py,sha256=
|
|
273
|
+
letta/services/summarizer/summarizer.py,sha256=qPcR7VsHsgUsUtxmKx_73l3XdDhFvDzZ8VeIs4w3NBc,4757
|
|
268
274
|
letta/services/tool_execution_sandbox.py,sha256=6AB3rFS34PzoyE9dxtUmuaUUWvKrwdE083NuBRa1eC0,22969
|
|
269
|
-
letta/services/tool_manager.py,sha256=
|
|
275
|
+
letta/services/tool_manager.py,sha256=rXOdB2quTWE9EGjkg9Q4EY6-hAwX2R9gGBCXFs8hR4w,9862
|
|
270
276
|
letta/services/user_manager.py,sha256=ScHbdJK9kNF8QXjsd3ZWGEL87n_Uyp3YwfKetOJmpHs,4304
|
|
271
|
-
letta/settings.py,sha256=
|
|
277
|
+
letta/settings.py,sha256=wBgZgIFQaoUOyeTRl-vD61gY2M1Q89FHP0X1IS0yz50,6885
|
|
272
278
|
letta/streaming_interface.py,sha256=1vuAckIxo1p1UsXtDzE8LTUve5RoTZRdXUe-WBIYDWU,15818
|
|
273
279
|
letta/streaming_utils.py,sha256=jLqFTVhUL76FeOuYk8TaRQHmPTf3HSRc2EoJwxJNK6U,11946
|
|
274
280
|
letta/system.py,sha256=dnOrS2FlRMwijQnOvfrky0Lg8wEw-FUq2zzfAJOUSKA,8477
|
|
275
281
|
letta/tracing.py,sha256=h_-c2lIKHmA7yCLOvgaHijMabmRC__FAl2rZtVKufUM,8017
|
|
276
282
|
letta/utils.py,sha256=AdHrQ2OQ3V4XhJ1LtYwbLUO71j2IJY37cIUxXPgaaRY,32125
|
|
277
|
-
letta_nightly-0.6.
|
|
278
|
-
letta_nightly-0.6.
|
|
279
|
-
letta_nightly-0.6.
|
|
280
|
-
letta_nightly-0.6.
|
|
281
|
-
letta_nightly-0.6.
|
|
283
|
+
letta_nightly-0.6.39.dev20250313104142.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
|
|
284
|
+
letta_nightly-0.6.39.dev20250313104142.dist-info/METADATA,sha256=eZHLP3nnMg2yRtFa_8YOolT1efPgbAnEqfTH_oIWQ_Q,22928
|
|
285
|
+
letta_nightly-0.6.39.dev20250313104142.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
286
|
+
letta_nightly-0.6.39.dev20250313104142.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
|
|
287
|
+
letta_nightly-0.6.39.dev20250313104142.dist-info/RECORD,,
|