letta-nightly 0.6.16.dev20250128104041__py3-none-any.whl → 0.6.17.dev20250129174639__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 +0 -3
- letta/client/client.py +5 -5
- letta/client/streaming.py +29 -20
- letta/constants.py +1 -1
- letta/functions/function_sets/multi_agent.py +55 -49
- letta/functions/functions.py +0 -1
- letta/functions/helpers.py +149 -9
- letta/llm_api/llm_api_tools.py +20 -12
- letta/llm_api/openai.py +15 -13
- letta/orm/agent.py +14 -2
- letta/orm/job.py +1 -1
- letta/orm/sqlalchemy_base.py +12 -4
- letta/schemas/job.py +17 -1
- letta/schemas/letta_request.py +2 -7
- letta/schemas/llm_config.py +9 -0
- letta/schemas/message.py +51 -22
- letta/schemas/openai/chat_completion_response.py +2 -2
- letta/schemas/run.py +1 -2
- letta/server/rest_api/app.py +5 -1
- letta/server/rest_api/chat_completions_interface.py +256 -0
- letta/server/rest_api/optimistic_json_parser.py +185 -0
- letta/server/rest_api/routers/openai/chat_completions/__init__.py +0 -0
- letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +161 -0
- letta/server/rest_api/routers/v1/agents.py +22 -32
- letta/server/server.py +12 -12
- letta/services/job_manager.py +7 -12
- letta/services/tool_manager.py +17 -1
- letta/system.py +20 -0
- letta/utils.py +24 -1
- {letta_nightly-0.6.16.dev20250128104041.dist-info → letta_nightly-0.6.17.dev20250129174639.dist-info}/METADATA +4 -4
- {letta_nightly-0.6.16.dev20250128104041.dist-info → letta_nightly-0.6.17.dev20250129174639.dist-info}/RECORD +35 -31
- {letta_nightly-0.6.16.dev20250128104041.dist-info → letta_nightly-0.6.17.dev20250129174639.dist-info}/LICENSE +0 -0
- {letta_nightly-0.6.16.dev20250128104041.dist-info → letta_nightly-0.6.17.dev20250129174639.dist-info}/WHEEL +0 -0
- {letta_nightly-0.6.16.dev20250128104041.dist-info → letta_nightly-0.6.17.dev20250129174639.dist-info}/entry_points.txt +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from datetime import datetime
|
|
2
|
-
from typing import Annotated, List, Optional
|
|
2
|
+
from typing import Annotated, List, Optional
|
|
3
3
|
|
|
4
4
|
from fastapi import APIRouter, BackgroundTasks, Body, Depends, Header, HTTPException, Query, status
|
|
5
5
|
from fastapi.responses import JSONResponse
|
|
@@ -10,7 +10,7 @@ from letta.log import get_logger
|
|
|
10
10
|
from letta.orm.errors import NoResultFound
|
|
11
11
|
from letta.schemas.agent import AgentState, CreateAgent, UpdateAgent
|
|
12
12
|
from letta.schemas.block import Block, BlockUpdate, CreateBlock # , BlockLabelUpdate, BlockLimitUpdate
|
|
13
|
-
from letta.schemas.job import JobStatus, JobUpdate
|
|
13
|
+
from letta.schemas.job import JobStatus, JobUpdate, LettaRequestConfig
|
|
14
14
|
from letta.schemas.letta_message import LettaMessageUnion
|
|
15
15
|
from letta.schemas.letta_request import LettaRequest, LettaStreamingRequest
|
|
16
16
|
from letta.schemas.letta_response import LettaResponse
|
|
@@ -392,15 +392,7 @@ def delete_archival_memory(
|
|
|
392
392
|
|
|
393
393
|
|
|
394
394
|
AgentMessagesResponse = Annotated[
|
|
395
|
-
|
|
396
|
-
Field(
|
|
397
|
-
json_schema_extra={
|
|
398
|
-
"anyOf": [
|
|
399
|
-
{"type": "array", "items": {"$ref": "#/components/schemas/Message"}},
|
|
400
|
-
{"type": "array", "items": {"$ref": "#/components/schemas/LettaMessageUnion"}},
|
|
401
|
-
]
|
|
402
|
-
}
|
|
403
|
-
),
|
|
395
|
+
List[LettaMessageUnion], Field(json_schema_extra={"type": "array", "items": {"$ref": "#/components/schemas/LettaMessageUnion"}})
|
|
404
396
|
]
|
|
405
397
|
|
|
406
398
|
|
|
@@ -411,16 +403,9 @@ def list_messages(
|
|
|
411
403
|
after: Optional[str] = Query(None, description="Message after which to retrieve the returned messages."),
|
|
412
404
|
before: Optional[str] = Query(None, description="Message before which to retrieve the returned messages."),
|
|
413
405
|
limit: int = Query(10, description="Maximum number of messages to retrieve."),
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
DEFAULT_MESSAGE_TOOL,
|
|
418
|
-
description="The name of the designated message tool.",
|
|
419
|
-
),
|
|
420
|
-
assistant_message_tool_kwarg: str = Query(
|
|
421
|
-
DEFAULT_MESSAGE_TOOL_KWARG,
|
|
422
|
-
description="The name of the message argument in the designated message tool.",
|
|
423
|
-
),
|
|
406
|
+
use_assistant_message: bool = Query(True, description="Whether to use assistant messages"),
|
|
407
|
+
assistant_message_tool_name: str = Query(DEFAULT_MESSAGE_TOOL, description="The name of the designated message tool."),
|
|
408
|
+
assistant_message_tool_kwarg: str = Query(DEFAULT_MESSAGE_TOOL_KWARG, description="The name of the message argument."),
|
|
424
409
|
user_id: Optional[str] = Header(None, alias="user_id"), # Extract user_id from header, default to None if not present
|
|
425
410
|
):
|
|
426
411
|
"""
|
|
@@ -435,7 +420,8 @@ def list_messages(
|
|
|
435
420
|
before=before,
|
|
436
421
|
limit=limit,
|
|
437
422
|
reverse=True,
|
|
438
|
-
return_message_object=
|
|
423
|
+
return_message_object=False,
|
|
424
|
+
use_assistant_message=use_assistant_message,
|
|
439
425
|
assistant_message_tool_name=assistant_message_tool_name,
|
|
440
426
|
assistant_message_tool_kwarg=assistant_message_tool_kwarg,
|
|
441
427
|
)
|
|
@@ -480,9 +466,9 @@ async def send_message(
|
|
|
480
466
|
stream_steps=False,
|
|
481
467
|
stream_tokens=False,
|
|
482
468
|
# Support for AssistantMessage
|
|
483
|
-
use_assistant_message=request.
|
|
484
|
-
assistant_message_tool_name=request.
|
|
485
|
-
assistant_message_tool_kwarg=request.
|
|
469
|
+
use_assistant_message=request.use_assistant_message,
|
|
470
|
+
assistant_message_tool_name=request.assistant_message_tool_name,
|
|
471
|
+
assistant_message_tool_kwarg=request.assistant_message_tool_kwarg,
|
|
486
472
|
)
|
|
487
473
|
return result
|
|
488
474
|
|
|
@@ -520,9 +506,9 @@ async def send_message_streaming(
|
|
|
520
506
|
stream_steps=True,
|
|
521
507
|
stream_tokens=request.stream_tokens,
|
|
522
508
|
# Support for AssistantMessage
|
|
523
|
-
use_assistant_message=request.
|
|
524
|
-
assistant_message_tool_name=request.
|
|
525
|
-
assistant_message_tool_kwarg=request.
|
|
509
|
+
use_assistant_message=request.use_assistant_message,
|
|
510
|
+
assistant_message_tool_name=request.assistant_message_tool_name,
|
|
511
|
+
assistant_message_tool_kwarg=request.assistant_message_tool_kwarg,
|
|
526
512
|
)
|
|
527
513
|
return result
|
|
528
514
|
|
|
@@ -597,7 +583,11 @@ async def send_message_async(
|
|
|
597
583
|
"job_type": "send_message_async",
|
|
598
584
|
"agent_id": agent_id,
|
|
599
585
|
},
|
|
600
|
-
request_config=
|
|
586
|
+
request_config=LettaRequestConfig(
|
|
587
|
+
use_assistant_message=request.use_assistant_message,
|
|
588
|
+
assistant_message_tool_name=request.assistant_message_tool_name,
|
|
589
|
+
assistant_message_tool_kwarg=request.assistant_message_tool_kwarg,
|
|
590
|
+
),
|
|
601
591
|
)
|
|
602
592
|
run = server.job_manager.create_job(pydantic_job=run, actor=actor)
|
|
603
593
|
|
|
@@ -609,9 +599,9 @@ async def send_message_async(
|
|
|
609
599
|
actor=actor,
|
|
610
600
|
agent_id=agent_id,
|
|
611
601
|
messages=request.messages,
|
|
612
|
-
use_assistant_message=request.
|
|
613
|
-
assistant_message_tool_name=request.
|
|
614
|
-
assistant_message_tool_kwarg=request.
|
|
602
|
+
use_assistant_message=request.use_assistant_message,
|
|
603
|
+
assistant_message_tool_name=request.assistant_message_tool_name,
|
|
604
|
+
assistant_message_tool_kwarg=request.assistant_message_tool_kwarg,
|
|
615
605
|
)
|
|
616
606
|
|
|
617
607
|
return run
|
letta/server/server.py
CHANGED
|
@@ -62,6 +62,7 @@ from letta.schemas.source import Source
|
|
|
62
62
|
from letta.schemas.tool import Tool
|
|
63
63
|
from letta.schemas.usage import LettaUsageStatistics
|
|
64
64
|
from letta.schemas.user import User
|
|
65
|
+
from letta.server.rest_api.chat_completions_interface import ChatCompletionsStreamingInterface
|
|
65
66
|
from letta.server.rest_api.interface import StreamingServerInterface
|
|
66
67
|
from letta.server.rest_api.utils import sse_async_generator
|
|
67
68
|
from letta.services.agent_manager import AgentManager
|
|
@@ -206,7 +207,7 @@ if settings.letta_pg_uri_no_default:
|
|
|
206
207
|
else:
|
|
207
208
|
# TODO: don't rely on config storage
|
|
208
209
|
engine_path = "sqlite:///" + os.path.join(config.recall_storage_path, "sqlite.db")
|
|
209
|
-
|
|
210
|
+
logger.info("Creating sqlite engine " + engine_path)
|
|
210
211
|
|
|
211
212
|
engine = create_engine(engine_path)
|
|
212
213
|
|
|
@@ -719,7 +720,7 @@ class SyncServer(Server):
|
|
|
719
720
|
# whether or not to wrap user and system message as MemGPT-style stringified JSON
|
|
720
721
|
wrap_user_message: bool = True,
|
|
721
722
|
wrap_system_message: bool = True,
|
|
722
|
-
interface: Union[AgentInterface, None] = None, # needed to getting responses
|
|
723
|
+
interface: Union[AgentInterface, ChatCompletionsStreamingInterface, None] = None, # needed to getting responses
|
|
723
724
|
metadata: Optional[dict] = None, # Pass through metadata to interface
|
|
724
725
|
) -> LettaUsageStatistics:
|
|
725
726
|
"""Send a list of messages to the agent
|
|
@@ -735,7 +736,7 @@ class SyncServer(Server):
|
|
|
735
736
|
for message in messages:
|
|
736
737
|
assert isinstance(message, MessageCreate)
|
|
737
738
|
|
|
738
|
-
# If wrapping is
|
|
739
|
+
# If wrapping is enabled, wrap with metadata before placing content inside the Message object
|
|
739
740
|
if message.role == MessageRole.user and wrap_user_message:
|
|
740
741
|
message.content = system.package_user_message(user_message=message.content)
|
|
741
742
|
elif message.role == MessageRole.system and wrap_system_message:
|
|
@@ -870,6 +871,7 @@ class SyncServer(Server):
|
|
|
870
871
|
limit: Optional[int] = 100,
|
|
871
872
|
reverse: Optional[bool] = False,
|
|
872
873
|
return_message_object: bool = True,
|
|
874
|
+
use_assistant_message: bool = True,
|
|
873
875
|
assistant_message_tool_name: str = constants.DEFAULT_MESSAGE_TOOL,
|
|
874
876
|
assistant_message_tool_kwarg: str = constants.DEFAULT_MESSAGE_TOOL_KWARG,
|
|
875
877
|
) -> Union[List[Message], List[LettaMessage]]:
|
|
@@ -889,14 +891,12 @@ class SyncServer(Server):
|
|
|
889
891
|
)
|
|
890
892
|
|
|
891
893
|
if not return_message_object:
|
|
892
|
-
records =
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
)
|
|
899
|
-
]
|
|
894
|
+
records = Message.to_letta_messages_from_list(
|
|
895
|
+
messages=records,
|
|
896
|
+
use_assistant_message=use_assistant_message,
|
|
897
|
+
assistant_message_tool_name=assistant_message_tool_name,
|
|
898
|
+
assistant_message_tool_kwarg=assistant_message_tool_kwarg,
|
|
899
|
+
)
|
|
900
900
|
|
|
901
901
|
if reverse:
|
|
902
902
|
records = records[::-1]
|
|
@@ -1289,7 +1289,7 @@ class SyncServer(Server):
|
|
|
1289
1289
|
llm_config.model_endpoint_type not in ["openai", "anthropic"] or "inference.memgpt.ai" in llm_config.model_endpoint
|
|
1290
1290
|
):
|
|
1291
1291
|
warnings.warn(
|
|
1292
|
-
"Token streaming is only supported for models with type 'openai'
|
|
1292
|
+
f"Token streaming is only supported for models with type 'openai' or 'anthropic' in the model_endpoint: agent has endpoint type {llm_config.model_endpoint_type} and {llm_config.model_endpoint}. Setting stream_tokens to False."
|
|
1293
1293
|
)
|
|
1294
1294
|
stream_tokens = False
|
|
1295
1295
|
|
letta/services/job_manager.py
CHANGED
|
@@ -14,9 +14,8 @@ from letta.orm.sqlalchemy_base import AccessType
|
|
|
14
14
|
from letta.orm.step import Step
|
|
15
15
|
from letta.schemas.enums import JobStatus, MessageRole
|
|
16
16
|
from letta.schemas.job import Job as PydanticJob
|
|
17
|
-
from letta.schemas.job import JobUpdate
|
|
17
|
+
from letta.schemas.job import JobUpdate, LettaRequestConfig
|
|
18
18
|
from letta.schemas.letta_message import LettaMessage
|
|
19
|
-
from letta.schemas.letta_request import LettaRequestConfig
|
|
20
19
|
from letta.schemas.message import Message as PydanticMessage
|
|
21
20
|
from letta.schemas.run import Run as PydanticRun
|
|
22
21
|
from letta.schemas.usage import LettaUsageStatistics
|
|
@@ -303,16 +302,12 @@ class JobManager:
|
|
|
303
302
|
|
|
304
303
|
request_config = self._get_run_request_config(run_id)
|
|
305
304
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
assistant_message_tool_name=request_config["assistant_message_tool_name"],
|
|
313
|
-
assistant_message_tool_kwarg=request_config["assistant_message_tool_kwarg"],
|
|
314
|
-
)
|
|
315
|
-
]
|
|
305
|
+
messages = PydanticMessage.to_letta_messages_from_list(
|
|
306
|
+
messages=messages,
|
|
307
|
+
use_assistant_message=request_config["use_assistant_message"],
|
|
308
|
+
assistant_message_tool_name=request_config["assistant_message_tool_name"],
|
|
309
|
+
assistant_message_tool_kwarg=request_config["assistant_message_tool_kwarg"],
|
|
310
|
+
)
|
|
316
311
|
|
|
317
312
|
return messages
|
|
318
313
|
|
letta/services/tool_manager.py
CHANGED
|
@@ -4,6 +4,7 @@ from typing import List, Optional
|
|
|
4
4
|
|
|
5
5
|
from letta.constants import BASE_MEMORY_TOOLS, BASE_TOOLS, MULTI_AGENT_TOOLS
|
|
6
6
|
from letta.functions.functions import derive_openai_json_schema, load_function_set
|
|
7
|
+
from letta.log import get_logger
|
|
7
8
|
from letta.orm.enums import ToolType
|
|
8
9
|
|
|
9
10
|
# TODO: Remove this once we translate all of these to the ORM
|
|
@@ -14,6 +15,8 @@ from letta.schemas.tool import ToolUpdate
|
|
|
14
15
|
from letta.schemas.user import User as PydanticUser
|
|
15
16
|
from letta.utils import enforce_types, printd
|
|
16
17
|
|
|
18
|
+
logger = get_logger(__name__)
|
|
19
|
+
|
|
17
20
|
|
|
18
21
|
class ToolManager:
|
|
19
22
|
"""Manager class to handle business logic related to Tools."""
|
|
@@ -102,7 +105,20 @@ class ToolManager:
|
|
|
102
105
|
limit=limit,
|
|
103
106
|
organization_id=actor.organization_id,
|
|
104
107
|
)
|
|
105
|
-
|
|
108
|
+
|
|
109
|
+
# Remove any malformed tools
|
|
110
|
+
results = []
|
|
111
|
+
for tool in tools:
|
|
112
|
+
try:
|
|
113
|
+
pydantic_tool = tool.to_pydantic()
|
|
114
|
+
results.append(pydantic_tool)
|
|
115
|
+
except (ValueError, ModuleNotFoundError, AttributeError) as e:
|
|
116
|
+
logger.warning(f"Deleting malformed tool with id={tool.id} and name={tool.name}, error was:\n{e}")
|
|
117
|
+
logger.warning("Deleted tool: ")
|
|
118
|
+
logger.warning(tool.pretty_print_columns())
|
|
119
|
+
self.delete_tool_by_id(tool.id, actor=actor)
|
|
120
|
+
|
|
121
|
+
return results
|
|
106
122
|
|
|
107
123
|
@enforce_types
|
|
108
124
|
def update_tool_by_id(self, tool_id: str, tool_update: ToolUpdate, actor: PydanticUser) -> PydanticTool:
|
letta/system.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import uuid
|
|
3
|
+
import warnings
|
|
3
4
|
from typing import Optional
|
|
4
5
|
|
|
5
6
|
from .constants import (
|
|
@@ -205,3 +206,22 @@ def get_token_limit_warning():
|
|
|
205
206
|
}
|
|
206
207
|
|
|
207
208
|
return json_dumps(packaged_message)
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
def unpack_message(packed_message) -> str:
|
|
212
|
+
"""Take a packed message string and attempt to extract the inner message content"""
|
|
213
|
+
|
|
214
|
+
try:
|
|
215
|
+
message_json = json.loads(packed_message)
|
|
216
|
+
except:
|
|
217
|
+
warnings.warn(f"Was unable to load message as JSON to unpack: ''{packed_message}")
|
|
218
|
+
return packed_message
|
|
219
|
+
|
|
220
|
+
if "message" not in message_json:
|
|
221
|
+
if "type" in message_json and message_json["type"] in ["login", "heartbeat"]:
|
|
222
|
+
# This is a valid user message that the ADE expects, so don't print warning
|
|
223
|
+
return packed_message
|
|
224
|
+
warnings.warn(f"Was unable to find 'message' field in packed message object: '{packed_message}'")
|
|
225
|
+
return packed_message
|
|
226
|
+
else:
|
|
227
|
+
return message_json.get("message")
|
letta/utils.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import asyncio
|
|
1
2
|
import copy
|
|
2
3
|
import difflib
|
|
3
4
|
import hashlib
|
|
@@ -15,7 +16,7 @@ import uuid
|
|
|
15
16
|
from contextlib import contextmanager
|
|
16
17
|
from datetime import datetime, timedelta, timezone
|
|
17
18
|
from functools import wraps
|
|
18
|
-
from typing import List, Union, _GenericAlias, get_args, get_origin, get_type_hints
|
|
19
|
+
from typing import Any, Coroutine, List, Union, _GenericAlias, get_args, get_origin, get_type_hints
|
|
19
20
|
from urllib.parse import urljoin, urlparse
|
|
20
21
|
|
|
21
22
|
import demjson3 as demjson
|
|
@@ -1127,3 +1128,25 @@ def get_friendly_error_msg(function_name: str, exception_name: str, exception_me
|
|
|
1127
1128
|
if len(error_msg) > MAX_ERROR_MESSAGE_CHAR_LIMIT:
|
|
1128
1129
|
error_msg = error_msg[:MAX_ERROR_MESSAGE_CHAR_LIMIT]
|
|
1129
1130
|
return error_msg
|
|
1131
|
+
|
|
1132
|
+
|
|
1133
|
+
def run_async_task(coro: Coroutine[Any, Any, Any]) -> Any:
|
|
1134
|
+
"""
|
|
1135
|
+
Safely runs an asynchronous coroutine in a synchronous context.
|
|
1136
|
+
|
|
1137
|
+
If an event loop is already running, it uses `asyncio.ensure_future`.
|
|
1138
|
+
Otherwise, it creates a new event loop and runs the coroutine.
|
|
1139
|
+
|
|
1140
|
+
Args:
|
|
1141
|
+
coro: The coroutine to execute.
|
|
1142
|
+
|
|
1143
|
+
Returns:
|
|
1144
|
+
The result of the coroutine.
|
|
1145
|
+
"""
|
|
1146
|
+
try:
|
|
1147
|
+
# If there's already a running event loop, schedule the coroutine
|
|
1148
|
+
loop = asyncio.get_running_loop()
|
|
1149
|
+
return asyncio.run_until_complete(coro) if loop.is_closed() else asyncio.ensure_future(coro)
|
|
1150
|
+
except RuntimeError:
|
|
1151
|
+
# If no event loop is running, create a new one
|
|
1152
|
+
return asyncio.run(coro)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: letta-nightly
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.17.dev20250129174639
|
|
4
4
|
Summary: Create LLM agents with long-term memory and custom tools
|
|
5
5
|
License: Apache License
|
|
6
6
|
Author: Letta Team
|
|
@@ -26,8 +26,8 @@ Requires-Dist: autoflake (>=2.3.0,<3.0.0) ; extra == "dev" or extra == "all"
|
|
|
26
26
|
Requires-Dist: black[jupyter] (>=24.2.0,<25.0.0) ; extra == "dev" or extra == "all"
|
|
27
27
|
Requires-Dist: brotli (>=1.1.0,<2.0.0)
|
|
28
28
|
Requires-Dist: colorama (>=0.4.6,<0.5.0)
|
|
29
|
-
Requires-Dist: composio-core (>=0.6.
|
|
30
|
-
Requires-Dist: composio-langchain (>=0.6.
|
|
29
|
+
Requires-Dist: composio-core (>=0.6.19,<0.7.0)
|
|
30
|
+
Requires-Dist: composio-langchain (>=0.6.19,<0.7.0)
|
|
31
31
|
Requires-Dist: datasets (>=2.14.6,<3.0.0) ; extra == "dev" or extra == "all"
|
|
32
32
|
Requires-Dist: demjson3 (>=3.0.6,<4.0.0)
|
|
33
33
|
Requires-Dist: docker (>=7.1.0,<8.0.0) ; extra == "external-tools" or extra == "all"
|
|
@@ -44,7 +44,7 @@ Requires-Dist: isort (>=5.13.2,<6.0.0) ; extra == "dev" or extra == "all"
|
|
|
44
44
|
Requires-Dist: jinja2 (>=3.1.5,<4.0.0)
|
|
45
45
|
Requires-Dist: langchain (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "all"
|
|
46
46
|
Requires-Dist: langchain-community (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "all"
|
|
47
|
-
Requires-Dist: letta_client (>=0.1.
|
|
47
|
+
Requires-Dist: letta_client (>=0.1.23,<0.2.0)
|
|
48
48
|
Requires-Dist: llama-index (>=0.12.2,<0.13.0)
|
|
49
49
|
Requires-Dist: llama-index-embeddings-openai (>=0.3.1,<0.4.0)
|
|
50
50
|
Requires-Dist: locust (>=2.31.5,<3.0.0) ; extra == "dev" or extra == "all"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
letta/__init__.py,sha256=
|
|
1
|
+
letta/__init__.py,sha256=45zX5RUC_aJSVvqltsKJXMJfygW8OOpzVbqb9unbegU,919
|
|
2
2
|
letta/__main__.py,sha256=6Hs2PV7EYc5Tid4g4OtcLXhqVHiNYTGzSBdoOnW2HXA,29
|
|
3
|
-
letta/agent.py,sha256=
|
|
3
|
+
letta/agent.py,sha256=VzVh9ZpRElA1n0pGqMkb70FXatOn_Yk1Zaa-aWIpUZE,56526
|
|
4
4
|
letta/benchmark/benchmark.py,sha256=ebvnwfp3yezaXOQyGXkYCDYpsmre-b9hvNtnyx4xkG0,3701
|
|
5
5
|
letta/benchmark/constants.py,sha256=aXc5gdpMGJT327VuxsT5FngbCK2J41PQYeICBO7g_RE,536
|
|
6
6
|
letta/chat_only_agent.py,sha256=71Lf-df8y3nsE9IFKpEigaZaWHoWnXnhVChkp1L-83I,4760
|
|
@@ -8,11 +8,11 @@ letta/cli/cli.py,sha256=_uGKM-RvGLGf7y8iWjkLgLTxIw7uWrdCdL5ETUOCkUs,16472
|
|
|
8
8
|
letta/cli/cli_config.py,sha256=2oo4vui1GXQarAD6Ru4SRzPvcW4eX2mCXOBusfYGvJw,8533
|
|
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=-h6V_PUunYouEmw_TI0BalEvQcQ9uIOfLBnDMrDSYQQ,138785
|
|
12
|
+
letta/client/streaming.py,sha256=DzE86XJTg_0j9eC45Hrpy9vPt-Wfo1F-sIv_B7iNV6I,5509
|
|
13
13
|
letta/client/utils.py,sha256=VCGV-op5ZSmurd4yw7Vhf93XDQ0BkyBT8qsuV7EqfiU,2859
|
|
14
14
|
letta/config.py,sha256=JFGY4TWW0Wm5fTbZamOwWqk5G8Nn-TXyhgByGoAqy2c,12375
|
|
15
|
-
letta/constants.py,sha256=
|
|
15
|
+
letta/constants.py,sha256=FHCoIheWu7DQwKjn_x6JbMUCgv99AzNAXylVsKYeCfs,7159
|
|
16
16
|
letta/data_sources/connectors.py,sha256=R2AssXpqS7wN6VI8AfxvqaZs5S1ZACc4E_FewmR9iZI,7022
|
|
17
17
|
letta/data_sources/connectors_helper.py,sha256=2TQjCt74fCgT5sw1AP8PalDEk06jPBbhrPG4HVr-WLs,3371
|
|
18
18
|
letta/embeddings.py,sha256=VgqbUqYL6oTuLOKGOd_8swTRMYIpRTIWJbBthjT8eR8,8838
|
|
@@ -21,9 +21,9 @@ letta/functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
21
21
|
letta/functions/ast_parsers.py,sha256=MEFfGxpflUsw34JiY9zdunkpbczAYxte8t4rDPOmXfQ,3620
|
|
22
22
|
letta/functions/function_sets/base.py,sha256=bOiitkhzqYKwZBiRYrx29AlordiA5IrXw25eVSRK8BY,5984
|
|
23
23
|
letta/functions/function_sets/extras.py,sha256=Z9yEdBpQFtTjpxkgbtkWMA8GtDWC6ai2bdsRpnv0H_w,4837
|
|
24
|
-
letta/functions/function_sets/multi_agent.py,sha256=
|
|
25
|
-
letta/functions/functions.py,sha256=
|
|
26
|
-
letta/functions/helpers.py,sha256=
|
|
24
|
+
letta/functions/function_sets/multi_agent.py,sha256=QPtAW70V93W6BL1CfPD9xI2eE8Y0aIwdVU2V0CkJ_9I,4832
|
|
25
|
+
letta/functions/functions.py,sha256=NyWLh7a-f4mXti5vM1oWDwXzfA58VmVVqL03O9vosKY,5672
|
|
26
|
+
letta/functions/helpers.py,sha256=7T02M73oWwUn3rAAFEIPnNLbewqJ0MB81gF4ok9py00,19300
|
|
27
27
|
letta/functions/schema_generator.py,sha256=qosgp3p27QRTqOCPLrSkCGVdyQsyTTZunXQ_g-YaTkw,20138
|
|
28
28
|
letta/helpers/__init__.py,sha256=p0luQ1Oe3Skc6sH4O58aHHA3Qbkyjifpuq0DZ1GAY0U,59
|
|
29
29
|
letta/helpers/tool_rule_solver.py,sha256=VnJfqb5L1Lcipc_tBVGj0om60GKQkMkNLgg6X9VZl2c,6210
|
|
@@ -39,9 +39,9 @@ letta/llm_api/azure_openai_constants.py,sha256=oXtKrgBFHf744gyt5l1thILXgyi8NDNUr
|
|
|
39
39
|
letta/llm_api/cohere.py,sha256=H5kzYH_aQAnGNq7lip7XyKGLEOKC318Iw0_tiTP6kc4,14772
|
|
40
40
|
letta/llm_api/google_ai.py,sha256=MIX4nmyC6448AvyPPSE8JZ_tzSpKJTArkZSfQGGoy0M,17920
|
|
41
41
|
letta/llm_api/helpers.py,sha256=ov9WHsLSvkceIpSNJ3PUgCvufD862Bcrum-bWrUVJko,16193
|
|
42
|
-
letta/llm_api/llm_api_tools.py,sha256=
|
|
42
|
+
letta/llm_api/llm_api_tools.py,sha256=Ur3Wr5FnrcnRpJi5EpSbVe0yVB4iij81VOS278faYwY,20174
|
|
43
43
|
letta/llm_api/mistral.py,sha256=fHdfD9ug-rQIk2qn8tRKay1U6w9maF11ryhKi91FfXM,1593
|
|
44
|
-
letta/llm_api/openai.py,sha256=
|
|
44
|
+
letta/llm_api/openai.py,sha256=FRGtfE10fyv2QxePKjHUKBfzG1954E1BKyrbHy74kV4,20331
|
|
45
45
|
letta/local_llm/README.md,sha256=hFJyw5B0TU2jrh9nb0zGZMgdH-Ei1dSRfhvPQG_NSoU,168
|
|
46
46
|
letta/local_llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
47
|
letta/local_llm/chat_completion_proxy.py,sha256=ElYR0M5SY2zL4NQzInye21MxqtiP3AUXX9Ia0KbkD4Y,12948
|
|
@@ -87,7 +87,7 @@ letta/openai_backcompat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
|
|
|
87
87
|
letta/openai_backcompat/openai_object.py,sha256=Y1ZS1sATP60qxJiOsjOP3NbwSzuzvkNAvb3DeuhM5Uk,13490
|
|
88
88
|
letta/orm/__all__.py,sha256=2gh2MZTkA3Hw67VWVKK3JIStJOqTeLdpCvYSVYNeEDA,692
|
|
89
89
|
letta/orm/__init__.py,sha256=wPokP-EvOri2LhKLjmYVtI_FWchaxgFvJeF_NAfqJIo,842
|
|
90
|
-
letta/orm/agent.py,sha256=
|
|
90
|
+
letta/orm/agent.py,sha256=CdcpVFfuFkGeaInVTaUTCjavUOhOZ3HsguCXs6fYBY4,6859
|
|
91
91
|
letta/orm/agents_tags.py,sha256=dYSnHz4IWBjyOiQ4RJomX3P0QN76JTlEZEw5eJM6Emg,925
|
|
92
92
|
letta/orm/base.py,sha256=VjvxF9TwKF9Trf8BJkDgf7D6KrWWopOkUiF18J3IElk,3071
|
|
93
93
|
letta/orm/block.py,sha256=EjH8lXexHtFIHJ8G-RjNo2oAH834x0Hbn4CER9S4U74,3880
|
|
@@ -96,7 +96,7 @@ letta/orm/custom_columns.py,sha256=EML5AE5FQ4ugI8MGj4yqfmwBrw7YAcp4_dO6i9oQs6I,5
|
|
|
96
96
|
letta/orm/enums.py,sha256=HzX3eXhBH-PnpxhBWtWbkV4J6wrStlJaX_OVdZgAdLU,428
|
|
97
97
|
letta/orm/errors.py,sha256=Se0Guz-gqi-D36NUWSh7AP9zTVCSph9KgZh_trwng4o,734
|
|
98
98
|
letta/orm/file.py,sha256=7_p7LxityP3NQZVURQYG0kgcZhEkVuMN0Fj4h9YOe1w,1780
|
|
99
|
-
letta/orm/job.py,sha256=
|
|
99
|
+
letta/orm/job.py,sha256=G2P-xUpTapD4lhU2FwMZET1b5QR4ju9WOB3uiTKD_mw,2157
|
|
100
100
|
letta/orm/job_messages.py,sha256=SgwaYPYwwAC3dBtl9Xye_TWUl9H_-m95S95TTcfPyOg,1245
|
|
101
101
|
letta/orm/message.py,sha256=qY5lhSq5JDOSGKnEnLryKr2bHYLr60pk2LqYBxGeONQ,2718
|
|
102
102
|
letta/orm/mixins.py,sha256=9c79Kfr-Z1hL-SDYKeoptx_yMTbBwJJBo9nrKEzSDAc,1622
|
|
@@ -106,7 +106,7 @@ letta/orm/provider.py,sha256=-qA9tvKTZgaM4D7CoDZZiA7zTgjaaWDV4jZvifQv_MM,805
|
|
|
106
106
|
letta/orm/sandbox_config.py,sha256=DyOy_1_zCMlp13elCqPcuuA6OwUove6mrjhcpROTg50,4150
|
|
107
107
|
letta/orm/source.py,sha256=cpaleNiP-DomM2oopwgL2DGn38ITQwLMs5mKODf_c_4,2167
|
|
108
108
|
letta/orm/sources_agents.py,sha256=Ik_PokCBrXRd9wXWomeNeb8EtLUwjb9VMZ8LWXqpK5A,473
|
|
109
|
-
letta/orm/sqlalchemy_base.py,sha256=
|
|
109
|
+
letta/orm/sqlalchemy_base.py,sha256=jhhF3A_k5j3wxyZ-C_n6kwvQIZ1iU3-vvcke3QarLBA,21901
|
|
110
110
|
letta/orm/sqlite_functions.py,sha256=JCScKiRlYCKxy9hChQ8wsk4GMKknZE24MunnG3fM1Gw,4255
|
|
111
111
|
letta/orm/step.py,sha256=6ygEnkQSIMxNH08Om0a-UK-f2E66QSpp9GdGm7mGjFg,2853
|
|
112
112
|
letta/orm/tool.py,sha256=JEPHlM4ePaLaGtHpHhYdKCteHTRJnOFgQmfR5wL8TpA,2379
|
|
@@ -147,24 +147,24 @@ letta/schemas/enums.py,sha256=UUkeGQNw-9vButo1AXVZLKggLo8QsfO8Zm_fM5pD_zA,1125
|
|
|
147
147
|
letta/schemas/environment_variables.py,sha256=VRtzOjdeQdHcSHXisk7oJUQlheruxhSWNS0xqlfGzbs,2429
|
|
148
148
|
letta/schemas/file.py,sha256=ChN2CWzLI2TT9WLItcfElEH0E8b7kzPylF2OQBr6Beg,1550
|
|
149
149
|
letta/schemas/health.py,sha256=zT6mYovvD17iJRuu2rcaQQzbEEYrkwvAE9TB7iU824c,139
|
|
150
|
-
letta/schemas/job.py,sha256=
|
|
150
|
+
letta/schemas/job.py,sha256=MX9EiLDDIeHm3q52ImOjp7UzXEdYTXAWWobRCAxwV0w,2225
|
|
151
151
|
letta/schemas/letta_base.py,sha256=HTnSHJ2YSyhEdpY-vg9Y7ywqS1zzTjb9j5iVPYsuVSk,3991
|
|
152
152
|
letta/schemas/letta_message.py,sha256=QHzIEwnEJEkE02biCwyQo5IvL2fVq_whBRQD3vPYO48,9837
|
|
153
|
-
letta/schemas/letta_request.py,sha256=
|
|
153
|
+
letta/schemas/letta_request.py,sha256=dzy3kwb5j2QLaSV0sDlwISEMt2xxH3IiK-vR9xJV65k,1123
|
|
154
154
|
letta/schemas/letta_response.py,sha256=yL0w-cdUazgEqg6_F4LJz2tugKNAZsB83Gr5jfXwa5U,7124
|
|
155
|
-
letta/schemas/llm_config.py,sha256=
|
|
155
|
+
letta/schemas/llm_config.py,sha256=lycAmLNvAm6D35jlLBN333x3tpzdk2Fwkx6yJl3pXjQ,5273
|
|
156
156
|
letta/schemas/llm_config_overrides.py,sha256=-oRglCTcajF6UAK3RAa0FLWVuKODPI1v403fDIWMAtA,1815
|
|
157
157
|
letta/schemas/memory.py,sha256=GOYDfPKzbWftUWO9Hv4KW7xAi1EIQmC8zpP7qvEkVHw,10245
|
|
158
|
-
letta/schemas/message.py,sha256=
|
|
158
|
+
letta/schemas/message.py,sha256=4L0-B2gCA2krF34AkKi_G4L2X5aALQnH997MowIcQgs,37457
|
|
159
159
|
letta/schemas/openai/chat_completion_request.py,sha256=AOIwgbN3CZKVqkuXeMHeSa53u4h0wVq69t3T_LJ0vIE,3389
|
|
160
|
-
letta/schemas/openai/chat_completion_response.py,sha256=
|
|
160
|
+
letta/schemas/openai/chat_completion_response.py,sha256=Kaz9T0_ZvhWdVgGcouBuUuAG8-Nl3kC3dRymBQlONZ4,3980
|
|
161
161
|
letta/schemas/openai/chat_completions.py,sha256=l0e9sT9boTD5VBU5YtJ0s7qUtCfFGB2K-gQLeEZ2LHU,3599
|
|
162
162
|
letta/schemas/openai/embedding_response.py,sha256=WKIZpXab1Av7v6sxKG8feW3ZtpQUNosmLVSuhXYa_xU,357
|
|
163
163
|
letta/schemas/openai/openai.py,sha256=Hilo5BiLAGabzxCwnwfzK5QrWqwYD8epaEKFa4Pwndk,7970
|
|
164
164
|
letta/schemas/organization.py,sha256=WWbUWVSp_VQRFwWN4fdHg1yObiV6x9rZnvIY8x5BPs0,746
|
|
165
165
|
letta/schemas/passage.py,sha256=pdCLZgOn0gWK1gB6aFHLS0gfdWCBqLaiHDA0iQ12Zd8,3704
|
|
166
166
|
letta/schemas/providers.py,sha256=Wd0d0jgv6z3X5t7cT1ZVoX_Qa85ecsm1gQzkOPgQFUo,34890
|
|
167
|
-
letta/schemas/run.py,sha256=
|
|
167
|
+
letta/schemas/run.py,sha256=SRqPRziINIiPunjOhE_NlbnQYgxTvqmbauni_yfBQRA,2085
|
|
168
168
|
letta/schemas/sandbox_config.py,sha256=v32V5T73X-VxhDk0g_1RGniK985KMvg2xyLVi1dvMQY,4215
|
|
169
169
|
letta/schemas/source.py,sha256=-BQVolcXA2ziCu2ztR6cbTdGUc8G7vGJy7rvpdf1hpg,2880
|
|
170
170
|
letta/schemas/step.py,sha256=cCmDChQMndy7aMJGH0Z19VbzJkAeFTYuA0cJpzjW2g0,1928
|
|
@@ -176,14 +176,18 @@ letta/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
176
176
|
letta/server/constants.py,sha256=yAdGbLkzlOU_dLTx0lKDmAnj0ZgRXCEaIcPJWO69eaE,92
|
|
177
177
|
letta/server/generate_openapi_schema.sh,sha256=0OtBhkC1g6CobVmNEd_m2B6sTdppjbJLXaM95icejvE,371
|
|
178
178
|
letta/server/rest_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
179
|
-
letta/server/rest_api/app.py,sha256=
|
|
179
|
+
letta/server/rest_api/app.py,sha256=PapV6EQHCGy0pxEuCj6MpawU_u3vXUb2-czyzYIBfS0,11698
|
|
180
180
|
letta/server/rest_api/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
181
181
|
letta/server/rest_api/auth/index.py,sha256=fQBGyVylGSRfEMLQ17cZzrHd5Y1xiVylvPqH5Rl-lXQ,1378
|
|
182
182
|
letta/server/rest_api/auth_token.py,sha256=725EFEIiNj4dh70hrSd94UysmFD8vcJLrTRfNHkzxDo,774
|
|
183
|
+
letta/server/rest_api/chat_completions_interface.py,sha256=i9tfb9oSh14QNY-1ghWYtdgP7_RiyPHD5NcA2FKF3Dw,10195
|
|
183
184
|
letta/server/rest_api/interface.py,sha256=5lf5k5GJgUaRb8NCKotSK5PZDAcpYFmKjyPlMqtc964,51881
|
|
185
|
+
letta/server/rest_api/optimistic_json_parser.py,sha256=1z4d9unmxMb0ou7owJ62uUQoNjNYf21FmaNdg0ZcqUU,6567
|
|
184
186
|
letta/server/rest_api/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
187
|
+
letta/server/rest_api/routers/openai/chat_completions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
188
|
+
letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=TjeiyEMkpWR3PBazUWs4W2XVwGVEW5NRTOFXWag62oU,6657
|
|
185
189
|
letta/server/rest_api/routers/v1/__init__.py,sha256=bXEZzmvHNX7N11NDwsxyajjci7yxP-2dYIvbeJi33vA,1070
|
|
186
|
-
letta/server/rest_api/routers/v1/agents.py,sha256
|
|
190
|
+
letta/server/rest_api/routers/v1/agents.py,sha256=-eRRQDyWyBnP6aj6z9rJTiaidqPls1TQB1xSqGdIYGA,25041
|
|
187
191
|
letta/server/rest_api/routers/v1/blocks.py,sha256=oJYOpGUTd4AhKwVolVlZPIXO2EoOrBHkyi2PdrmbtmA,3888
|
|
188
192
|
letta/server/rest_api/routers/v1/health.py,sha256=pKCuVESlVOhGIb4VC4K-H82eZqfghmT6kvj2iOkkKuc,401
|
|
189
193
|
letta/server/rest_api/routers/v1/jobs.py,sha256=pKihW12hQdFwt6tHQXs94yOMv6xotlhBB3Vl7Q5ASKQ,2738
|
|
@@ -198,7 +202,7 @@ letta/server/rest_api/routers/v1/tools.py,sha256=Rp2_YH7KHeP_-WHjlwqu0wxtR27wvaO
|
|
|
198
202
|
letta/server/rest_api/routers/v1/users.py,sha256=G5DBHSkPfBgVHN2Wkm-rVYiLQAudwQczIq2Z3YLdbVo,2277
|
|
199
203
|
letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
|
|
200
204
|
letta/server/rest_api/utils.py,sha256=dsjkZzgo9Rk3fjUf1ajjiiql1eeO5DAzmXprttI7bJU,3993
|
|
201
|
-
letta/server/server.py,sha256=
|
|
205
|
+
letta/server/server.py,sha256=Des6W1ebnorwTB6hJtalYAltmkJWUlT7ioZB3dg-1lA,59997
|
|
202
206
|
letta/server/startup.sh,sha256=722uKJWB2C4q3vjn39De2zzPacaZNw_1fN1SpLGjKIo,1569
|
|
203
207
|
letta/server/static_files/assets/index-048c9598.js,sha256=mR16XppvselwKCcNgONs4L7kZEVa4OEERm4lNZYtLSk,146819
|
|
204
208
|
letta/server/static_files/assets/index-0e31b727.css,sha256=SBbja96uiQVLDhDOroHgM6NSl7tS4lpJRCREgSS_hA8,7672
|
|
@@ -215,7 +219,7 @@ letta/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
215
219
|
letta/services/agent_manager.py,sha256=I6F-nED9Q6O_FY2-O1gHDY-OaQIxbt3FsL88DENVTfE,50287
|
|
216
220
|
letta/services/block_manager.py,sha256=u56TXG46QDMbQZadDGCO7fY1vreJ69Xr_0MUF53xw4k,5519
|
|
217
221
|
letta/services/helpers/agent_manager_helper.py,sha256=RH0MXLZASkP2LVbVNUfSYHrcBYZnVxFd9ejGjRK90Hw,11283
|
|
218
|
-
letta/services/job_manager.py,sha256=
|
|
222
|
+
letta/services/job_manager.py,sha256=7awEHraoEmqlDQvcQTEkb_dcZsG9eIYGWYct8exzm2E,13117
|
|
219
223
|
letta/services/message_manager.py,sha256=w6-B9Zz5z9UXcd6mKhinsaCINTsmxDsH9JJsV2_qlH4,8878
|
|
220
224
|
letta/services/organization_manager.py,sha256=h3hrknBhA3YQt90OeBzFnqjYM9NWKnk8jDKzXGm4AUg,3392
|
|
221
225
|
letta/services/passage_manager.py,sha256=INxeNiFAluAkzmCL5jeWWimA3ONUZcck8BuCa0UYajk,7714
|
|
@@ -225,15 +229,15 @@ letta/services/sandbox_config_manager.py,sha256=eWDNTscRG9Gt_Ixho3-daOOno_9Kcebx
|
|
|
225
229
|
letta/services/source_manager.py,sha256=0JLKIv405oS5wc6bY5k2bxxZpS9O-VwUGHVdGPbJ3e4,7676
|
|
226
230
|
letta/services/step_manager.py,sha256=RngrVs2Sd_oDZv_UoQ1ToLY0RnH-6wS1DqIBPRm-Imc,2961
|
|
227
231
|
letta/services/tool_execution_sandbox.py,sha256=Tjufm58V9XzeYr8oF6g5b3OV5zZ7oPWUTqcC8GsBi9k,23162
|
|
228
|
-
letta/services/tool_manager.py,sha256=
|
|
232
|
+
letta/services/tool_manager.py,sha256=dSjzjafWGrN2ksCtIMB1bwKwBDzxogyHnfe2bx3-C-4,9069
|
|
229
233
|
letta/services/user_manager.py,sha256=1U8BQ_-MBkEW2wnSFV_OsTwBmRAZLN8uHLFjnDjK3hA,4308
|
|
230
234
|
letta/settings.py,sha256=sHJEaLPtEnWNZDew69F9tC8YTrkBh5BWXXtzOtAneFY,6071
|
|
231
235
|
letta/streaming_interface.py,sha256=lo2VAQRUJOdWTijwnXuKOC9uejqr2siUAEmZiQUXkj8,15710
|
|
232
236
|
letta/streaming_utils.py,sha256=jLqFTVhUL76FeOuYk8TaRQHmPTf3HSRc2EoJwxJNK6U,11946
|
|
233
|
-
letta/system.py,sha256=
|
|
234
|
-
letta/utils.py,sha256=
|
|
235
|
-
letta_nightly-0.6.
|
|
236
|
-
letta_nightly-0.6.
|
|
237
|
-
letta_nightly-0.6.
|
|
238
|
-
letta_nightly-0.6.
|
|
239
|
-
letta_nightly-0.6.
|
|
237
|
+
letta/system.py,sha256=3jevN1QOScahsuEW-cavI3GsmiNDTkWryEukb1WTRTo,7752
|
|
238
|
+
letta/utils.py,sha256=lgBDWKmrQrmJGPxcgamFC2aJyi6I0dX7bzLBt3YC6j0,34051
|
|
239
|
+
letta_nightly-0.6.17.dev20250129174639.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
|
|
240
|
+
letta_nightly-0.6.17.dev20250129174639.dist-info/METADATA,sha256=tgyuWyEUF9fknxPR4_UDvj-vfT9yORcFe47L17LOpJk,22156
|
|
241
|
+
letta_nightly-0.6.17.dev20250129174639.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
242
|
+
letta_nightly-0.6.17.dev20250129174639.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
|
|
243
|
+
letta_nightly-0.6.17.dev20250129174639.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|