letta-nightly 0.6.37.dev20250311104150__py3-none-any.whl → 0.6.38.dev20250312104155__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 +34 -12
- letta/client/client.py +1 -50
- letta/constants.py +1 -1
- letta/functions/function_sets/multi_agent.py +9 -8
- letta/functions/helpers.py +33 -6
- letta/llm_api/google_ai_client.py +332 -0
- letta/llm_api/google_vertex_client.py +214 -0
- letta/llm_api/llm_client.py +48 -0
- letta/llm_api/llm_client_base.py +129 -0
- letta/orm/step.py +1 -0
- letta/schemas/block.py +4 -48
- letta/schemas/letta_message.py +26 -0
- letta/schemas/message.py +1 -1
- letta/schemas/step.py +1 -0
- letta/serialize_schemas/agent.py +8 -1
- letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +2 -7
- letta/server/rest_api/routers/v1/agents.py +12 -8
- letta/server/rest_api/routers/v1/steps.py +2 -0
- letta/server/rest_api/routers/v1/voice.py +3 -6
- letta/services/agent_manager.py +56 -3
- letta/services/helpers/agent_manager_helper.py +12 -1
- letta/services/identity_manager.py +7 -1
- letta/services/message_manager.py +40 -0
- letta/services/step_manager.py +8 -1
- {letta_nightly-0.6.37.dev20250311104150.dist-info → letta_nightly-0.6.38.dev20250312104155.dist-info}/METADATA +18 -17
- {letta_nightly-0.6.37.dev20250311104150.dist-info → letta_nightly-0.6.38.dev20250312104155.dist-info}/RECORD +30 -26
- {letta_nightly-0.6.37.dev20250311104150.dist-info → letta_nightly-0.6.38.dev20250312104155.dist-info}/LICENSE +0 -0
- {letta_nightly-0.6.37.dev20250311104150.dist-info → letta_nightly-0.6.38.dev20250312104155.dist-info}/WHEEL +0 -0
- {letta_nightly-0.6.37.dev20250311104150.dist-info → letta_nightly-0.6.38.dev20250312104155.dist-info}/entry_points.txt +0 -0
|
@@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Optional
|
|
|
2
2
|
|
|
3
3
|
import httpx
|
|
4
4
|
import openai
|
|
5
|
-
from fastapi import APIRouter, Body, Depends, Header
|
|
5
|
+
from fastapi import APIRouter, Body, Depends, Header
|
|
6
6
|
from fastapi.responses import StreamingResponse
|
|
7
7
|
from openai.types.chat.completion_create_params import CompletionCreateParams
|
|
8
8
|
|
|
@@ -22,7 +22,7 @@ logger = get_logger(__name__)
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
@router.post(
|
|
25
|
-
"/chat/completions",
|
|
25
|
+
"/{agent_id}/chat/completions",
|
|
26
26
|
response_model=None,
|
|
27
27
|
operation_id="create_voice_chat_completions",
|
|
28
28
|
responses={
|
|
@@ -35,16 +35,13 @@ logger = get_logger(__name__)
|
|
|
35
35
|
},
|
|
36
36
|
)
|
|
37
37
|
async def create_voice_chat_completions(
|
|
38
|
+
agent_id: str,
|
|
38
39
|
completion_request: CompletionCreateParams = Body(...),
|
|
39
40
|
server: "SyncServer" = Depends(get_letta_server),
|
|
40
41
|
user_id: Optional[str] = Header(None, alias="user_id"),
|
|
41
42
|
):
|
|
42
43
|
actor = server.user_manager.get_user_or_default(user_id=user_id)
|
|
43
44
|
|
|
44
|
-
agent_id = str(completion_request.get("user", None))
|
|
45
|
-
if agent_id is None:
|
|
46
|
-
raise HTTPException(status_code=400, detail="Must pass agent_id in the 'user' field")
|
|
47
|
-
|
|
48
45
|
# Also parse the user's new input
|
|
49
46
|
input_message = UserMessage(**get_messages_from_completion_request(completion_request)[-1])
|
|
50
47
|
|
letta/services/agent_manager.py
CHANGED
|
@@ -358,6 +358,49 @@ class AgentManager:
|
|
|
358
358
|
|
|
359
359
|
return [agent.to_pydantic() for agent in agents]
|
|
360
360
|
|
|
361
|
+
@enforce_types
|
|
362
|
+
def list_agents_matching_tags(
|
|
363
|
+
self,
|
|
364
|
+
actor: PydanticUser,
|
|
365
|
+
match_all: List[str],
|
|
366
|
+
match_some: List[str],
|
|
367
|
+
limit: Optional[int] = 50,
|
|
368
|
+
) -> List[PydanticAgentState]:
|
|
369
|
+
"""
|
|
370
|
+
Retrieves agents in the same organization that match all specified `match_all` tags
|
|
371
|
+
and at least one tag from `match_some`. The query is optimized for efficiency by
|
|
372
|
+
leveraging indexed filtering and aggregation.
|
|
373
|
+
|
|
374
|
+
Args:
|
|
375
|
+
actor (PydanticUser): The user requesting the agent list.
|
|
376
|
+
match_all (List[str]): Agents must have all these tags.
|
|
377
|
+
match_some (List[str]): Agents must have at least one of these tags.
|
|
378
|
+
limit (Optional[int]): Maximum number of agents to return.
|
|
379
|
+
|
|
380
|
+
Returns:
|
|
381
|
+
List[PydanticAgentState: The filtered list of matching agents.
|
|
382
|
+
"""
|
|
383
|
+
with self.session_maker() as session:
|
|
384
|
+
query = select(AgentModel).where(AgentModel.organization_id == actor.organization_id)
|
|
385
|
+
|
|
386
|
+
if match_all:
|
|
387
|
+
# Subquery to find agent IDs that contain all match_all tags
|
|
388
|
+
subquery = (
|
|
389
|
+
select(AgentsTags.agent_id)
|
|
390
|
+
.where(AgentsTags.tag.in_(match_all))
|
|
391
|
+
.group_by(AgentsTags.agent_id)
|
|
392
|
+
.having(func.count(AgentsTags.tag) == literal(len(match_all)))
|
|
393
|
+
)
|
|
394
|
+
query = query.where(AgentModel.id.in_(subquery))
|
|
395
|
+
|
|
396
|
+
if match_some:
|
|
397
|
+
# Ensures agents match at least one tag in match_some
|
|
398
|
+
query = query.join(AgentsTags).where(AgentsTags.tag.in_(match_some))
|
|
399
|
+
|
|
400
|
+
query = query.group_by(AgentModel.id).limit(limit)
|
|
401
|
+
|
|
402
|
+
return list(session.execute(query).scalars())
|
|
403
|
+
|
|
361
404
|
@enforce_types
|
|
362
405
|
def get_agent_by_id(self, agent_id: str, actor: PydanticUser) -> PydanticAgentState:
|
|
363
406
|
"""Fetch an agent by its ID."""
|
|
@@ -401,7 +444,12 @@ class AgentManager:
|
|
|
401
444
|
|
|
402
445
|
@enforce_types
|
|
403
446
|
def deserialize(
|
|
404
|
-
self,
|
|
447
|
+
self,
|
|
448
|
+
serialized_agent: dict,
|
|
449
|
+
actor: PydanticUser,
|
|
450
|
+
append_copy_suffix: bool = True,
|
|
451
|
+
override_existing_tools: bool = True,
|
|
452
|
+
project_id: Optional[str] = None,
|
|
405
453
|
) -> PydanticAgentState:
|
|
406
454
|
tool_data_list = serialized_agent.pop("tools", [])
|
|
407
455
|
|
|
@@ -410,7 +458,9 @@ class AgentManager:
|
|
|
410
458
|
agent = schema.load(serialized_agent, session=session)
|
|
411
459
|
if append_copy_suffix:
|
|
412
460
|
agent.name += "_copy"
|
|
413
|
-
|
|
461
|
+
if project_id:
|
|
462
|
+
agent.project_id = project_id
|
|
463
|
+
agent = agent.create(session, actor=actor)
|
|
414
464
|
pydantic_agent = agent.to_pydantic()
|
|
415
465
|
|
|
416
466
|
# Need to do this separately as there's some fancy upsert logic that SqlAlchemy cannot handle
|
|
@@ -548,6 +598,7 @@ class AgentManager:
|
|
|
548
598
|
system_prompt=agent_state.system,
|
|
549
599
|
in_context_memory=agent_state.memory,
|
|
550
600
|
in_context_memory_last_edit=memory_edit_timestamp,
|
|
601
|
+
recent_passages=self.list_passages(actor=actor, agent_id=agent_id, ascending=False, limit=10),
|
|
551
602
|
)
|
|
552
603
|
|
|
553
604
|
diff = united_diff(curr_system_message_openai["content"], new_system_message_str)
|
|
@@ -718,7 +769,9 @@ class AgentManager:
|
|
|
718
769
|
# Commit the changes
|
|
719
770
|
agent.update(session, actor=actor)
|
|
720
771
|
|
|
721
|
-
#
|
|
772
|
+
# Force rebuild of system prompt so that the agent is updated with passage count
|
|
773
|
+
# and recent passages and add system message alert to agent
|
|
774
|
+
self.rebuild_system_prompt(agent_id=agent_id, actor=actor, force=True)
|
|
722
775
|
self.append_system_message(
|
|
723
776
|
agent_id=agent_id,
|
|
724
777
|
content=DATA_SOURCE_ATTACH_ALERT,
|
|
@@ -13,6 +13,7 @@ from letta.schemas.agent import AgentState, AgentType
|
|
|
13
13
|
from letta.schemas.enums import MessageRole
|
|
14
14
|
from letta.schemas.memory import Memory
|
|
15
15
|
from letta.schemas.message import Message, MessageCreate, TextContent
|
|
16
|
+
from letta.schemas.passage import Passage as PydanticPassage
|
|
16
17
|
from letta.schemas.tool_rule import ToolRule
|
|
17
18
|
from letta.schemas.user import User
|
|
18
19
|
from letta.system import get_initial_boot_messages, get_login_event
|
|
@@ -99,7 +100,10 @@ def derive_system_message(agent_type: AgentType, system: Optional[str] = None):
|
|
|
99
100
|
|
|
100
101
|
# TODO: This code is kind of wonky and deserves a rewrite
|
|
101
102
|
def compile_memory_metadata_block(
|
|
102
|
-
memory_edit_timestamp: datetime.datetime,
|
|
103
|
+
memory_edit_timestamp: datetime.datetime,
|
|
104
|
+
previous_message_count: int = 0,
|
|
105
|
+
archival_memory_size: int = 0,
|
|
106
|
+
recent_passages: List[PydanticPassage] = None,
|
|
103
107
|
) -> str:
|
|
104
108
|
# Put the timestamp in the local timezone (mimicking get_local_time())
|
|
105
109
|
timestamp_str = memory_edit_timestamp.astimezone().strftime("%Y-%m-%d %I:%M:%S %p %Z%z").strip()
|
|
@@ -110,6 +114,11 @@ def compile_memory_metadata_block(
|
|
|
110
114
|
f"### Memory [last modified: {timestamp_str}]",
|
|
111
115
|
f"{previous_message_count} previous messages between you and the user are stored in recall memory (use functions to access them)",
|
|
112
116
|
f"{archival_memory_size} total memories you created are stored in archival memory (use functions to access them)",
|
|
117
|
+
(
|
|
118
|
+
f"Most recent archival passages {len(recent_passages)} recent passages: {[passage.text for passage in recent_passages]}"
|
|
119
|
+
if recent_passages is not None
|
|
120
|
+
else ""
|
|
121
|
+
),
|
|
113
122
|
"\nCore memory shown below (limited in size, additional information stored in archival / recall memory):",
|
|
114
123
|
]
|
|
115
124
|
)
|
|
@@ -146,6 +155,7 @@ def compile_system_message(
|
|
|
146
155
|
template_format: Literal["f-string", "mustache", "jinja2"] = "f-string",
|
|
147
156
|
previous_message_count: int = 0,
|
|
148
157
|
archival_memory_size: int = 0,
|
|
158
|
+
recent_passages: Optional[List[PydanticPassage]] = None,
|
|
149
159
|
) -> str:
|
|
150
160
|
"""Prepare the final/full system message that will be fed into the LLM API
|
|
151
161
|
|
|
@@ -170,6 +180,7 @@ def compile_system_message(
|
|
|
170
180
|
memory_edit_timestamp=in_context_memory_last_edit,
|
|
171
181
|
previous_message_count=previous_message_count,
|
|
172
182
|
archival_memory_size=archival_memory_size,
|
|
183
|
+
recent_passages=recent_passages,
|
|
173
184
|
)
|
|
174
185
|
full_memory_string = memory_metadata_string + "\n" + in_context_memory.compile()
|
|
175
186
|
|
|
@@ -78,7 +78,13 @@ class IdentityManager:
|
|
|
78
78
|
if existing_identity is None:
|
|
79
79
|
return self.create_identity(identity=identity, actor=actor)
|
|
80
80
|
else:
|
|
81
|
-
identity_update = IdentityUpdate(
|
|
81
|
+
identity_update = IdentityUpdate(
|
|
82
|
+
name=identity.name,
|
|
83
|
+
identifier_key=identity.identifier_key,
|
|
84
|
+
identity_type=identity.identity_type,
|
|
85
|
+
agent_ids=identity.agent_ids,
|
|
86
|
+
properties=identity.properties,
|
|
87
|
+
)
|
|
82
88
|
return self._update_identity(
|
|
83
89
|
session=session, existing_identity=existing_identity, identity=identity_update, actor=actor, replace=True
|
|
84
90
|
)
|
|
@@ -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,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: letta-nightly
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.38.dev20250312104155
|
|
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) ; extra == "dev" or extra == "all"
|
|
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) ; extra == "dev" or extra == "desktop" or extra == "all"
|
|
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,12 +48,12 @@ 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"
|
|
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"
|
|
52
53
|
Requires-Dist: letta_client (>=0.1.54,<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)
|
|
57
58
|
Requires-Dist: nltk (>=3.8.1,<4.0.0)
|
|
58
59
|
Requires-Dist: numpy (>=1.26.2,<2.0.0)
|
|
@@ -63,16 +64,16 @@ Requires-Dist: opentelemetry-instrumentation-requests (==0.51b0)
|
|
|
63
64
|
Requires-Dist: opentelemetry-sdk (==1.30.0)
|
|
64
65
|
Requires-Dist: pathvalidate (>=3.2.1,<4.0.0)
|
|
65
66
|
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"
|
|
67
|
+
Requires-Dist: pg8000 (>=1.30.3,<2.0.0) ; extra == "postgres" or extra == "desktop" or extra == "all"
|
|
68
|
+
Requires-Dist: pgvector (>=0.2.3,<0.3.0) ; extra == "postgres" or extra == "desktop" or extra == "all"
|
|
68
69
|
Requires-Dist: pre-commit (>=3.5.0,<4.0.0) ; extra == "dev" or extra == "all"
|
|
69
70
|
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"
|
|
71
|
+
Requires-Dist: psycopg2 (>=2.9.10,<3.0.0) ; extra == "postgres" or extra == "desktop" or extra == "all"
|
|
72
|
+
Requires-Dist: psycopg2-binary (>=2.9.10,<3.0.0) ; extra == "postgres" or extra == "desktop" or extra == "all"
|
|
72
73
|
Requires-Dist: pydantic (>=2.7.4,<2.10.0)
|
|
73
74
|
Requires-Dist: pydantic-settings (>=2.2.1,<3.0.0)
|
|
74
75
|
Requires-Dist: pyhumps (>=3.8.0,<4.0.0)
|
|
75
|
-
Requires-Dist: pyright (>=1.1.347,<2.0.0) ; extra == "dev" or extra == "all"
|
|
76
|
+
Requires-Dist: pyright (>=1.1.347,<2.0.0) ; extra == "dev" or extra == "desktop" or extra == "all"
|
|
76
77
|
Requires-Dist: pytest-asyncio (>=0.23.2,<0.24.0) ; extra == "dev" or extra == "all"
|
|
77
78
|
Requires-Dist: pytest-order (>=1.2.0,<2.0.0) ; extra == "dev" or extra == "all"
|
|
78
79
|
Requires-Dist: python-box (>=7.1.1,<8.0.0)
|
|
@@ -90,8 +91,8 @@ Requires-Dist: sqlalchemy-utils (>=0.41.2,<0.42.0)
|
|
|
90
91
|
Requires-Dist: sqlmodel (>=0.0.16,<0.0.17)
|
|
91
92
|
Requires-Dist: tqdm (>=4.66.1,<5.0.0)
|
|
92
93
|
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"
|
|
94
|
+
Requires-Dist: uvicorn (>=0.24.0.post1,<0.25.0) ; extra == "server" or extra == "desktop" or extra == "all"
|
|
95
|
+
Requires-Dist: wikipedia (>=1.4.0,<2.0.0) ; extra == "external-tools" or extra == "tests" or extra == "desktop" or extra == "all"
|
|
95
96
|
Description-Content-Type: text/markdown
|
|
96
97
|
|
|
97
98
|
<p align="center">
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
letta/__init__.py,sha256=
|
|
1
|
+
letta/__init__.py,sha256=_G0k0AZTJzGGwOZm0tg_LWPG5xPGtcckEWRzbfR08GY,918
|
|
2
2
|
letta/__main__.py,sha256=6Hs2PV7EYc5Tid4g4OtcLXhqVHiNYTGzSBdoOnW2HXA,29
|
|
3
|
-
letta/agent.py,sha256=
|
|
3
|
+
letta/agent.py,sha256=OJkvScBj89k6DPbMUg1TpeYuh9LuE6yzhOoCHQFCZOY,65503
|
|
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
|
|
@@ -11,11 +11,11 @@ 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=S-z4e_yBCQHAPZyJxR7M0OrAabZKvqgHh3Jd0na9fEQ,7671
|
|
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
|
|
@@ -24,9 +24,9 @@ letta/functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
24
24
|
letta/functions/ast_parsers.py,sha256=CQI0rUoIXcLKAev_GYrXcldRIGN5ZQtk5u4FLoHe5sE,5728
|
|
25
25
|
letta/functions/function_sets/base.py,sha256=M3_1Pge2GiyITp_U73T_Sd9O2rFoNlbuT8KgzMjexfs,5999
|
|
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=XTpSqTdSTUUp2AagX3th30NFlzF1M6nVj6eErH1nzv4,27054
|
|
30
30
|
letta/functions/interface.py,sha256=s_PPp5WDvGH_y9KUpMlORkdC141ITczFk3wsevrrUD8,2866
|
|
31
31
|
letta/functions/schema_generator.py,sha256=dLM8pQ9UP1vP9cnKHgA-UhGllMNvyEIjsO-r47RP9LM,20765
|
|
32
32
|
letta/helpers/__init__.py,sha256=p0luQ1Oe3Skc6sH4O58aHHA3Qbkyjifpuq0DZ1GAY0U,59
|
|
@@ -51,10 +51,14 @@ letta/llm_api/azure_openai_constants.py,sha256=ZaR2IasJThijG0uhLKJThrixdAxLPD2Io
|
|
|
51
51
|
letta/llm_api/cohere.py,sha256=A5uUoxoRsXsaMDCIIWiVXeyCbiQ7gUfiASb8Ovv2I_o,14852
|
|
52
52
|
letta/llm_api/deepseek.py,sha256=b1mSW8gnBrpAI8d2GcBpDyLYDnuC-P1UP6xJPalfQS4,12456
|
|
53
53
|
letta/llm_api/google_ai.py,sha256=oeGH6dTKfNTQ1Ip4HWkZ5KkVoujdru6XjQPWsirRBSM,18162
|
|
54
|
+
letta/llm_api/google_ai_client.py,sha256=114KoGp-6AecNE5BITHdjEvXnhqw6m4FSPrbwrl_Bkg,14486
|
|
54
55
|
letta/llm_api/google_constants.py,sha256=ZdABT9l9l-qKcV2QCkVsv9kQbttx6JyIJoOWS8IMS5o,448
|
|
55
56
|
letta/llm_api/google_vertex.py,sha256=-8ERH8YPsQIAi6ZuYNcvny7Jz-Q4IFIbV7xqDspUUD4,14399
|
|
57
|
+
letta/llm_api/google_vertex_client.py,sha256=Cu1AVKxLCSvip1h8lleJ8voatSH2d6XnGmQjdKqmVoo,9648
|
|
56
58
|
letta/llm_api/helpers.py,sha256=pXBemF43Ywbwub5dc5V7Slw5K7lNlO0ae8dQBOXgDHs,16773
|
|
57
59
|
letta/llm_api/llm_api_tools.py,sha256=OHhwSWRwl4Ubv8_g-zoQZvgWYIkK5PWy6yzLeArIcf8,28427
|
|
60
|
+
letta/llm_api/llm_client.py,sha256=u7nnmtSgwhqNDiaNmv6i0G-I-WgwLH35uxJnXM0C33o,1767
|
|
61
|
+
letta/llm_api/llm_client_base.py,sha256=754JOj33J2kowxSYdP7hkQ_dx47zZ5qCQXy2w5NiywM,4881
|
|
58
62
|
letta/llm_api/mistral.py,sha256=fHdfD9ug-rQIk2qn8tRKay1U6w9maF11ryhKi91FfXM,1593
|
|
59
63
|
letta/llm_api/openai.py,sha256=UnCh2NYYJWpwUai6P2enFop3K_5JS4-VHuoFoBx7yRs,22398
|
|
60
64
|
letta/local_llm/README.md,sha256=hFJyw5B0TU2jrh9nb0zGZMgdH-Ei1dSRfhvPQG_NSoU,168
|
|
@@ -125,7 +129,7 @@ letta/orm/source.py,sha256=z89VZUHV9K8Ew9JCYoZqUeRb1WEUKmrn0MMFkppaphE,2117
|
|
|
125
129
|
letta/orm/sources_agents.py,sha256=Ik_PokCBrXRd9wXWomeNeb8EtLUwjb9VMZ8LWXqpK5A,473
|
|
126
130
|
letta/orm/sqlalchemy_base.py,sha256=8037lD9w5vY7rXhqmXg1mG78UywdHczef7-XGhW7b1U,22511
|
|
127
131
|
letta/orm/sqlite_functions.py,sha256=JCScKiRlYCKxy9hChQ8wsk4GMKknZE24MunnG3fM1Gw,4255
|
|
128
|
-
letta/orm/step.py,sha256=
|
|
132
|
+
letta/orm/step.py,sha256=fjm7fLtYLCtFM6Mj6e2boP6P7dHSFG24Nem85VfVqHg,3216
|
|
129
133
|
letta/orm/tool.py,sha256=x58lmVG5IhXTVt82CnoN-ExuObnQCbeSMx_yOhUMmA4,2515
|
|
130
134
|
letta/orm/tools_agents.py,sha256=r6t-V21w2_mG8n38zuUb5jOi_3hRxsjgezsLA4sg0m4,626
|
|
131
135
|
letta/orm/user.py,sha256=rK5N5ViDxmesZMqVVHB7FcQNpcSoM-hB42MyI6q3MnI,1004
|
|
@@ -158,7 +162,7 @@ letta/prompts/system/memgpt_offline_memory.txt,sha256=rWEJeF-6aiinjkJM9hgLUYCmlE
|
|
|
158
162
|
letta/prompts/system/memgpt_offline_memory_chat.txt,sha256=ituh7gDuio7nC2UKFB7GpBq6crxb8bYedQfJ0ADoPgg,3949
|
|
159
163
|
letta/pytest.ini,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
160
164
|
letta/schemas/agent.py,sha256=4pTHrTV_FYyJuujtSglRsJQ2ouF0FRYWNmvObbLeL2g,14123
|
|
161
|
-
letta/schemas/block.py,sha256=
|
|
165
|
+
letta/schemas/block.py,sha256=rMWflyj982qW86dQK-9saXBHKaLCu3aUG2gQTckG3Ik,4984
|
|
162
166
|
letta/schemas/embedding_config.py,sha256=ufboqW9ctSBJdhwzJRbrGtTzOTwSKfT0LY0mowpr6fs,3398
|
|
163
167
|
letta/schemas/embedding_config_overrides.py,sha256=lkTa4y-EQ2RnaEKtKDM0sEAk7EwNa67REw8DGNNtGQY,84
|
|
164
168
|
letta/schemas/enums.py,sha256=jfuke35XP_AKfHHBnH1rx1wYjUDWqgDsKnRxdrCpTKA,1213
|
|
@@ -168,13 +172,13 @@ letta/schemas/health.py,sha256=zT6mYovvD17iJRuu2rcaQQzbEEYrkwvAE9TB7iU824c,139
|
|
|
168
172
|
letta/schemas/identity.py,sha256=028DseEyCErZ_fifQdFp4ON5QKlDWp-6hrrlekqko_g,2883
|
|
169
173
|
letta/schemas/job.py,sha256=MX9EiLDDIeHm3q52ImOjp7UzXEdYTXAWWobRCAxwV0w,2225
|
|
170
174
|
letta/schemas/letta_base.py,sha256=DuMqiNFmYwTAsXUHYdX--EWgtFUVzph5ptLZvu7aguI,3988
|
|
171
|
-
letta/schemas/letta_message.py,sha256=
|
|
175
|
+
letta/schemas/letta_message.py,sha256=3AXGiSwXf9m3Ta2A0Z8BlCq80n4fRC3c66V7LkiDUHw,10648
|
|
172
176
|
letta/schemas/letta_request.py,sha256=dzy3kwb5j2QLaSV0sDlwISEMt2xxH3IiK-vR9xJV65k,1123
|
|
173
177
|
letta/schemas/letta_response.py,sha256=pq-SxXQy5yZo1-DiAwV2mMURlUvz1Uu7HHR_tB1hMho,7139
|
|
174
178
|
letta/schemas/llm_config.py,sha256=bqq4LGE9layPcnnkzd_8d2SB8o1x8XdDzfd2ZkYQwcY,5611
|
|
175
179
|
letta/schemas/llm_config_overrides.py,sha256=-oRglCTcajF6UAK3RAa0FLWVuKODPI1v403fDIWMAtA,1815
|
|
176
180
|
letta/schemas/memory.py,sha256=GOYDfPKzbWftUWO9Hv4KW7xAi1EIQmC8zpP7qvEkVHw,10245
|
|
177
|
-
letta/schemas/message.py,sha256=
|
|
181
|
+
letta/schemas/message.py,sha256=saWK-hhPjPryE8VeqQhxSlJ5aN-SiDVLnnegELIn0h8,38841
|
|
178
182
|
letta/schemas/openai/chat_completion_request.py,sha256=3tALmbBV2pv1CcqzNLBxxIPOQ8Z85woucT7FN0fuDic,3402
|
|
179
183
|
letta/schemas/openai/chat_completion_response.py,sha256=koEb_NTiz5YsAAX81Z0cSqSFX4a6MdD2lhoXtxF_rw4,4100
|
|
180
184
|
letta/schemas/openai/chat_completions.py,sha256=l0e9sT9boTD5VBU5YtJ0s7qUtCfFGB2K-gQLeEZ2LHU,3599
|
|
@@ -186,13 +190,13 @@ letta/schemas/providers.py,sha256=2Ijzjj1gPETiFyl8yb4ZbwaTljw5WSCdGayAgCsBeYE,43
|
|
|
186
190
|
letta/schemas/run.py,sha256=SRqPRziINIiPunjOhE_NlbnQYgxTvqmbauni_yfBQRA,2085
|
|
187
191
|
letta/schemas/sandbox_config.py,sha256=SZCo3FSMz-DIBMKGu0atT4tsVFXGsqMFPaJnjrxpkX4,5993
|
|
188
192
|
letta/schemas/source.py,sha256=-BQVolcXA2ziCu2ztR6cbTdGUc8G7vGJy7rvpdf1hpg,2880
|
|
189
|
-
letta/schemas/step.py,sha256=
|
|
193
|
+
letta/schemas/step.py,sha256=WkcVnruUUOWLKwiWPn2Gfal4EQZPNLqlsd9859xhgsw,2224
|
|
190
194
|
letta/schemas/tool.py,sha256=3K3csZrk0m9e1lg05tNrO5WCTBiCT9lS-WCVL8jM7mk,11201
|
|
191
195
|
letta/schemas/tool_rule.py,sha256=2YQZba4fXS3u4j8pIk7BDujfq8rnxSVMwJSyaVgApH4,2149
|
|
192
196
|
letta/schemas/usage.py,sha256=8oYRH-JX0PfjIu2zkT5Uu3UWQ7Unnz_uHiO8hRGI4m0,912
|
|
193
197
|
letta/schemas/user.py,sha256=V32Tgl6oqB3KznkxUz12y7agkQicjzW7VocSpj78i6Q,1526
|
|
194
198
|
letta/serialize_schemas/__init__.py,sha256=mflGEZvM3NuMG9Q6dccEdVk73BUHoX-v7hmfk025Gmc,64
|
|
195
|
-
letta/serialize_schemas/agent.py,sha256=
|
|
199
|
+
letta/serialize_schemas/agent.py,sha256=BqtIBiMbGnupr6CGCF4Z4wKtkT90ACnxLN0qcRgkieM,3281
|
|
196
200
|
letta/serialize_schemas/agent_environment_variable.py,sha256=IDcivP-xB1j6Fn0onSM4T1l4CSlXhOLWNmKHG2psOoU,641
|
|
197
201
|
letta/serialize_schemas/base.py,sha256=X5cs1U4P0Vjem4SKNCYBiSAIboThJdM2Oyphu_Nl9Ag,2040
|
|
198
202
|
letta/serialize_schemas/block.py,sha256=BeZ2FZO59IWUHiPMSNKlZMi9dH9Gbys0rJpsoCFBjdg,420
|
|
@@ -214,9 +218,9 @@ letta/server/rest_api/interface.py,sha256=0FHLtFKHYyjLIpKUmA87cbd9A1m_yBIh3uB5Jl
|
|
|
214
218
|
letta/server/rest_api/optimistic_json_parser.py,sha256=1z4d9unmxMb0ou7owJ62uUQoNjNYf21FmaNdg0ZcqUU,6567
|
|
215
219
|
letta/server/rest_api/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
216
220
|
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=
|
|
221
|
+
letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=OgjWs4zJaIi5Ps67iCTeOLmLXcW0S5Xccd-TcNa9obQ,5321
|
|
218
222
|
letta/server/rest_api/routers/v1/__init__.py,sha256=Zi2th-okqT_RWAjB8MYGHX8CpHt1OSRyO5V8SJEp6UU,1361
|
|
219
|
-
letta/server/rest_api/routers/v1/agents.py,sha256=
|
|
223
|
+
letta/server/rest_api/routers/v1/agents.py,sha256=EN1QIeC5IRwn7ZPRAhYltOBfX3sO6tFManZe60DbH-Y,29464
|
|
220
224
|
letta/server/rest_api/routers/v1/blocks.py,sha256=0j7JX2BQzk31RyhvPZeEb-zh9ImXsVU4_8y5XMiR_WA,3900
|
|
221
225
|
letta/server/rest_api/routers/v1/health.py,sha256=MoOjkydhGcJXTiuJrKIB0etVXiRMdTa51S8RQ8-50DQ,399
|
|
222
226
|
letta/server/rest_api/routers/v1/identities.py,sha256=gRTcOXxbpiTzQzzVA_I1Sc9aUSKhW6YcQcJb__HxOX4,5957
|
|
@@ -227,11 +231,11 @@ letta/server/rest_api/routers/v1/providers.py,sha256=qyZsNTXgLVsoLZoCVY4qaqiG34z
|
|
|
227
231
|
letta/server/rest_api/routers/v1/runs.py,sha256=-2_YA2nuxcLqiPjG9CPHeZbyrtlNQZnAsaNohGn5fMg,8278
|
|
228
232
|
letta/server/rest_api/routers/v1/sandbox_configs.py,sha256=9hqnnMwJ3wCwO-Bezu3Xl8i3TDSIuInw3gSeHaKUXfE,8526
|
|
229
233
|
letta/server/rest_api/routers/v1/sources.py,sha256=rpQhaRHyzGUK43LX623L8BBLqL85HJ6fUYPMvI4k3kA,8434
|
|
230
|
-
letta/server/rest_api/routers/v1/steps.py,sha256=
|
|
234
|
+
letta/server/rest_api/routers/v1/steps.py,sha256=DVVwaxLNbNAgWpr2oQkrNjdS-wi0bP8kVJZUO-hiaf8,3275
|
|
231
235
|
letta/server/rest_api/routers/v1/tags.py,sha256=coydgvL6-9cuG2Hy5Ea7QY3inhTHlsf69w0tcZenBus,880
|
|
232
236
|
letta/server/rest_api/routers/v1/tools.py,sha256=B9zRyc2PeHdPBA6hvHqpTrVWsjgd1uBkyG1J_5E8Rgw,13207
|
|
233
237
|
letta/server/rest_api/routers/v1/users.py,sha256=G5DBHSkPfBgVHN2Wkm-rVYiLQAudwQczIq2Z3YLdbVo,2277
|
|
234
|
-
letta/server/rest_api/routers/v1/voice.py,sha256=
|
|
238
|
+
letta/server/rest_api/routers/v1/voice.py,sha256=7J0L-Nkz65m0PXcpQI2ATMIZzumDDSUzgtIus7d-tv8,2461
|
|
235
239
|
letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
|
|
236
240
|
letta/server/rest_api/utils.py,sha256=TlVzgtsg0jmaXzvGubtzOE9WSyvRe6_DFoIBK9EDYt8,13820
|
|
237
241
|
letta/server/server.py,sha256=LrIVbKJeEhSTbbiUQdg0gGvpXveY6ITJINWZ9gqehEA,58118
|
|
@@ -248,20 +252,20 @@ letta/server/ws_api/interface.py,sha256=TWl9vkcMCnLsUtgsuENZ-ku2oMDA-OUTzLh_yNRo
|
|
|
248
252
|
letta/server/ws_api/protocol.py,sha256=5mDgpfNZn_kNwHnpt5Dsuw8gdNH298sgxTGed3etzYg,1836
|
|
249
253
|
letta/server/ws_api/server.py,sha256=cBSzf-V4zT1bL_0i54OTI3cMXhTIIxqjSRF8pYjk7fg,5835
|
|
250
254
|
letta/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
251
|
-
letta/services/agent_manager.py,sha256=
|
|
255
|
+
letta/services/agent_manager.py,sha256=jfTcDt7xklYaBPTsGgxNJrVrcyj_ZD5p5b5TTtPw4KM,60149
|
|
252
256
|
letta/services/block_manager.py,sha256=PkbiO59VimLyK6PolWR5O29uHxksCH6pP6K4Vkov3NA,5573
|
|
253
|
-
letta/services/helpers/agent_manager_helper.py,sha256=
|
|
257
|
+
letta/services/helpers/agent_manager_helper.py,sha256=0xpFUQlLoben1_1sARDFSULOk2_ueWiCtGvl1UMJqTg,11643
|
|
254
258
|
letta/services/helpers/tool_execution_helper.py,sha256=lLoebs1kZKjw62y1PxHbIDkHq_heJN2ZT0gKje-R8oo,6941
|
|
255
|
-
letta/services/identity_manager.py,sha256=
|
|
259
|
+
letta/services/identity_manager.py,sha256=cLWJ04d-GrvLj-q0YGJIZeBZp7VvmeD8C_NRI6dwcYs,7311
|
|
256
260
|
letta/services/job_manager.py,sha256=ejcv_nMljByimiWJjvj7aqUFQktL1kK-vx_cra2L2cs,16317
|
|
257
|
-
letta/services/message_manager.py,sha256=
|
|
261
|
+
letta/services/message_manager.py,sha256=ZcHn3xQC86LY0_6mecux9WyxPQqMDAhMRjXIjAFLVdc,13079
|
|
258
262
|
letta/services/organization_manager.py,sha256=dhQ3cFPXWNYLfMjdahr2HsOAMJ1JtCEWj1G8Nei5MQc,3388
|
|
259
263
|
letta/services/passage_manager.py,sha256=mwShFO_xRaTi82fvANb_ngO0TmGaZPA9FPu8KuZ6Gd8,8643
|
|
260
264
|
letta/services/per_agent_lock_manager.py,sha256=porM0cKKANQ1FvcGXOO_qM7ARk5Fgi1HVEAhXsAg9-4,546
|
|
261
265
|
letta/services/provider_manager.py,sha256=QOKMSZOM6eAWa2-nANWQc1frKBh8N3gqDq0V87fnSuc,3748
|
|
262
266
|
letta/services/sandbox_config_manager.py,sha256=ATgZNWNpkdIQDUPy4ABsguHQba2PZf51-c4Ji60MzLE,13361
|
|
263
267
|
letta/services/source_manager.py,sha256=SE24AiPPhpvZMGDD047H3_ZDD7OM4zHbTW1JXjPEv7U,7672
|
|
264
|
-
letta/services/step_manager.py,sha256=
|
|
268
|
+
letta/services/step_manager.py,sha256=B64iYn6Dt9yRKsSJ5vLxWQR2t-apvPLfUZyzrUsJTpI,5335
|
|
265
269
|
letta/services/summarizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
266
270
|
letta/services/summarizer/enums.py,sha256=szzPX2OBRRJEZsBTGYQThrNz02ELFqhuLwvOR7ozi7A,208
|
|
267
271
|
letta/services/summarizer/summarizer.py,sha256=u3WNTPAK0hSyUS8Jb6NDz-BWIZ7bEQj9RBW6AfP4BAc,4746
|
|
@@ -274,8 +278,8 @@ letta/streaming_utils.py,sha256=jLqFTVhUL76FeOuYk8TaRQHmPTf3HSRc2EoJwxJNK6U,1194
|
|
|
274
278
|
letta/system.py,sha256=dnOrS2FlRMwijQnOvfrky0Lg8wEw-FUq2zzfAJOUSKA,8477
|
|
275
279
|
letta/tracing.py,sha256=h_-c2lIKHmA7yCLOvgaHijMabmRC__FAl2rZtVKufUM,8017
|
|
276
280
|
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.
|
|
281
|
+
letta_nightly-0.6.38.dev20250312104155.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
|
|
282
|
+
letta_nightly-0.6.38.dev20250312104155.dist-info/METADATA,sha256=SLcZPieYc2mk86Mq3gstYldfAcHVlDe2M2NlUaXEB-c,22949
|
|
283
|
+
letta_nightly-0.6.38.dev20250312104155.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
284
|
+
letta_nightly-0.6.38.dev20250312104155.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
|
|
285
|
+
letta_nightly-0.6.38.dev20250312104155.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|