letta-nightly 0.6.34.dev20250303104329__py3-none-any.whl → 0.6.35.dev20250304104154__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 +40 -15
- letta/agents/__init__.py +0 -0
- letta/agents/base_agent.py +51 -0
- letta/agents/ephemeral_agent.py +72 -0
- letta/agents/low_latency_agent.py +315 -0
- letta/constants.py +3 -1
- letta/functions/ast_parsers.py +50 -1
- letta/functions/helpers.py +79 -2
- letta/functions/schema_generator.py +3 -0
- letta/helpers/converters.py +3 -3
- letta/interfaces/__init__.py +0 -0
- letta/interfaces/openai_chat_completions_streaming_interface.py +109 -0
- letta/interfaces/utils.py +11 -0
- letta/llm_api/anthropic.py +9 -1
- letta/llm_api/azure_openai.py +3 -0
- letta/llm_api/google_ai.py +3 -0
- letta/llm_api/google_vertex.py +4 -0
- letta/llm_api/llm_api_tools.py +1 -1
- letta/llm_api/openai.py +6 -0
- letta/local_llm/chat_completion_proxy.py +6 -1
- letta/log.py +2 -2
- letta/orm/step.py +1 -0
- letta/orm/tool.py +1 -1
- letta/prompts/system/memgpt_convo_only.txt +3 -5
- letta/prompts/system/memgpt_memory_only.txt +29 -0
- letta/schemas/agent.py +0 -1
- letta/schemas/step.py +1 -1
- letta/schemas/tool.py +16 -2
- letta/server/rest_api/app.py +5 -1
- letta/server/rest_api/routers/v1/agents.py +32 -21
- letta/server/rest_api/routers/v1/identities.py +9 -1
- letta/server/rest_api/routers/v1/runs.py +49 -0
- letta/server/rest_api/routers/v1/tools.py +1 -0
- letta/server/rest_api/routers/v1/voice.py +19 -255
- letta/server/rest_api/utils.py +3 -2
- letta/server/server.py +15 -7
- letta/services/agent_manager.py +10 -6
- letta/services/helpers/agent_manager_helper.py +0 -2
- letta/services/helpers/tool_execution_helper.py +18 -0
- letta/services/job_manager.py +98 -0
- letta/services/step_manager.py +2 -0
- letta/services/summarizer/__init__.py +0 -0
- letta/services/summarizer/enums.py +9 -0
- letta/services/summarizer/summarizer.py +102 -0
- letta/services/tool_execution_sandbox.py +20 -3
- letta/services/tool_manager.py +1 -1
- letta/settings.py +2 -0
- letta/tracing.py +176 -156
- {letta_nightly-0.6.34.dev20250303104329.dist-info → letta_nightly-0.6.35.dev20250304104154.dist-info}/METADATA +6 -5
- {letta_nightly-0.6.34.dev20250303104329.dist-info → letta_nightly-0.6.35.dev20250304104154.dist-info}/RECORD +54 -44
- letta/chat_only_agent.py +0 -101
- {letta_nightly-0.6.34.dev20250303104329.dist-info → letta_nightly-0.6.35.dev20250304104154.dist-info}/LICENSE +0 -0
- {letta_nightly-0.6.34.dev20250303104329.dist-info → letta_nightly-0.6.35.dev20250304104154.dist-info}/WHEEL +0 -0
- {letta_nightly-0.6.34.dev20250303104329.dist-info → letta_nightly-0.6.35.dev20250304104154.dist-info}/entry_points.txt +0 -0
letta/tracing.py
CHANGED
|
@@ -1,205 +1,225 @@
|
|
|
1
|
-
import asyncio
|
|
2
1
|
import inspect
|
|
2
|
+
import re
|
|
3
3
|
import sys
|
|
4
4
|
import time
|
|
5
5
|
from functools import wraps
|
|
6
|
-
from typing import Any, Dict, Optional
|
|
6
|
+
from typing import Any, Dict, List, Optional
|
|
7
7
|
|
|
8
|
-
from fastapi import Request
|
|
8
|
+
from fastapi import Depends, FastAPI, HTTPException, Request
|
|
9
|
+
from fastapi.exceptions import RequestValidationError
|
|
10
|
+
from fastapi.responses import JSONResponse
|
|
9
11
|
from opentelemetry import trace
|
|
10
|
-
from opentelemetry.exporter.otlp.proto.
|
|
12
|
+
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
|
|
11
13
|
from opentelemetry.instrumentation.requests import RequestsInstrumentor
|
|
12
14
|
from opentelemetry.sdk.resources import Resource
|
|
13
15
|
from opentelemetry.sdk.trace import TracerProvider
|
|
14
16
|
from opentelemetry.sdk.trace.export import BatchSpanProcessor
|
|
15
|
-
from opentelemetry.trace import
|
|
17
|
+
from opentelemetry.trace import Status, StatusCode
|
|
16
18
|
|
|
17
|
-
# Get a tracer instance - will be no-op until setup_tracing is called
|
|
18
19
|
tracer = trace.get_tracer(__name__)
|
|
19
|
-
|
|
20
|
-
# Track if tracing has been initialized
|
|
21
20
|
_is_tracing_initialized = False
|
|
21
|
+
_excluded_v1_endpoints_regex: List[str] = [
|
|
22
|
+
"^GET /v1/agents/(?P<agent_id>[^/]+)/messages$",
|
|
23
|
+
"^GET /v1/agents/(?P<agent_id>[^/]+)/context$",
|
|
24
|
+
"^GET /v1/agents/(?P<agent_id>[^/]+)/archival-memory$",
|
|
25
|
+
"^GET /v1/agents/(?P<agent_id>[^/]+)/sources$",
|
|
26
|
+
]
|
|
22
27
|
|
|
23
28
|
|
|
24
29
|
def is_pytest_environment():
|
|
25
|
-
"""Check if we're running in pytest"""
|
|
26
30
|
return "pytest" in sys.modules
|
|
27
31
|
|
|
28
32
|
|
|
29
|
-
def
|
|
30
|
-
|
|
33
|
+
async def trace_request_middleware(request: Request, call_next):
|
|
34
|
+
if not _is_tracing_initialized:
|
|
35
|
+
return await call_next(request)
|
|
36
|
+
initial_span_name = f"{request.method} {request.url.path}"
|
|
37
|
+
if any(re.match(regex, initial_span_name) for regex in _excluded_v1_endpoints_regex):
|
|
38
|
+
return await call_next(request)
|
|
31
39
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
with tracer.start_as_current_span(
|
|
41
|
+
initial_span_name,
|
|
42
|
+
kind=trace.SpanKind.SERVER,
|
|
43
|
+
) as span:
|
|
44
|
+
try:
|
|
45
|
+
response = await call_next(request)
|
|
46
|
+
span.set_attribute("http.status_code", response.status_code)
|
|
47
|
+
span.set_status(Status(StatusCode.OK if response.status_code < 400 else StatusCode.ERROR))
|
|
48
|
+
return response
|
|
49
|
+
except Exception as e:
|
|
50
|
+
span.set_status(Status(StatusCode.ERROR))
|
|
51
|
+
span.record_exception(e)
|
|
52
|
+
raise
|
|
38
53
|
|
|
39
|
-
span_name = name or func.__name__
|
|
40
|
-
with tracer.start_as_current_span(span_name) as span:
|
|
41
|
-
span.set_attribute("code.namespace", inspect.getmodule(func).__name__)
|
|
42
|
-
span.set_attribute("code.function", func.__name__)
|
|
43
54
|
|
|
44
|
-
|
|
45
|
-
|
|
55
|
+
async def update_trace_attributes(request: Request):
|
|
56
|
+
"""Dependency to update trace attributes after FastAPI has processed the request"""
|
|
57
|
+
if not _is_tracing_initialized:
|
|
58
|
+
return
|
|
46
59
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
span.set_attribute("actor.id", request.get("http.user_id"))
|
|
60
|
+
span = trace.get_current_span()
|
|
61
|
+
if not span:
|
|
62
|
+
return
|
|
51
63
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
64
|
+
# Update span name with route pattern
|
|
65
|
+
route = request.scope.get("route")
|
|
66
|
+
if route and hasattr(route, "path"):
|
|
67
|
+
span.update_name(f"{request.method} {route.path}")
|
|
68
|
+
|
|
69
|
+
# Add request info
|
|
70
|
+
span.set_attribute("http.method", request.method)
|
|
71
|
+
span.set_attribute("http.url", str(request.url))
|
|
72
|
+
|
|
73
|
+
# Add path params
|
|
74
|
+
for key, value in request.path_params.items():
|
|
75
|
+
span.set_attribute(f"http.{key}", value)
|
|
76
|
+
|
|
77
|
+
# Add request body if available
|
|
78
|
+
try:
|
|
79
|
+
body = await request.json()
|
|
80
|
+
for key, value in body.items():
|
|
81
|
+
span.set_attribute(f"http.request.body.{key}", str(value))
|
|
82
|
+
except Exception:
|
|
83
|
+
pass
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
async def trace_error_handler(_request: Request, exc: Exception) -> JSONResponse:
|
|
87
|
+
status_code = getattr(exc, "status_code", 500)
|
|
88
|
+
error_msg = str(exc)
|
|
89
|
+
|
|
90
|
+
# Add error details to current span
|
|
91
|
+
span = trace.get_current_span()
|
|
92
|
+
if span:
|
|
93
|
+
span.add_event(
|
|
94
|
+
name="exception",
|
|
95
|
+
attributes={
|
|
96
|
+
"exception.message": error_msg,
|
|
97
|
+
"exception.type": type(exc).__name__,
|
|
98
|
+
},
|
|
99
|
+
)
|
|
60
100
|
|
|
61
|
-
|
|
62
|
-
def sync_wrapper(*args, **kwargs):
|
|
63
|
-
# Skip tracing if not initialized
|
|
64
|
-
if not _is_tracing_initialized:
|
|
65
|
-
return func(*args, **kwargs)
|
|
101
|
+
return JSONResponse(status_code=status_code, content={"detail": error_msg, "trace_id": get_trace_id() or ""})
|
|
66
102
|
|
|
67
|
-
span_name = name or func.__name__
|
|
68
|
-
with tracer.start_as_current_span(span_name) as span:
|
|
69
|
-
span.set_attribute("code.namespace", inspect.getmodule(func).__name__)
|
|
70
|
-
span.set_attribute("code.function", func.__name__)
|
|
71
103
|
|
|
72
|
-
|
|
73
|
-
|
|
104
|
+
def setup_tracing(
|
|
105
|
+
endpoint: str,
|
|
106
|
+
app: Optional[FastAPI] = None,
|
|
107
|
+
service_name: str = "memgpt-server",
|
|
108
|
+
) -> None:
|
|
109
|
+
if is_pytest_environment():
|
|
110
|
+
return
|
|
74
111
|
|
|
75
|
-
|
|
76
|
-
if request and len(request) > 0:
|
|
77
|
-
span.set_attribute("agent.id", kwargs.get("agent_id"))
|
|
78
|
-
span.set_attribute("actor.id", request.get("http.user_id"))
|
|
112
|
+
global _is_tracing_initialized
|
|
79
113
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
span.set_status(Status(StatusCode.ERROR))
|
|
86
|
-
span.record_exception(e)
|
|
87
|
-
raise
|
|
114
|
+
provider = TracerProvider(resource=Resource.create({"service.name": service_name}))
|
|
115
|
+
if endpoint:
|
|
116
|
+
provider.add_span_processor(BatchSpanProcessor(OTLPSpanExporter(endpoint=endpoint)))
|
|
117
|
+
_is_tracing_initialized = True
|
|
118
|
+
trace.set_tracer_provider(provider)
|
|
88
119
|
|
|
89
|
-
|
|
120
|
+
def requests_callback(span: trace.Span, _: Any, response: Any) -> None:
|
|
121
|
+
if hasattr(response, "status_code"):
|
|
122
|
+
span.set_status(Status(StatusCode.OK if response.status_code < 400 else StatusCode.ERROR))
|
|
90
123
|
|
|
91
|
-
|
|
124
|
+
RequestsInstrumentor().instrument(response_hook=requests_callback)
|
|
92
125
|
|
|
126
|
+
if app:
|
|
127
|
+
# Add middleware first
|
|
128
|
+
app.middleware("http")(trace_request_middleware)
|
|
93
129
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
Log multiple attributes to the current active span.
|
|
130
|
+
# Add dependency to v1 routes
|
|
131
|
+
from letta.server.rest_api.routers.v1 import ROUTERS as v1_routes
|
|
97
132
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
current_span.set_attributes(attributes)
|
|
133
|
+
for router in v1_routes:
|
|
134
|
+
for route in router.routes:
|
|
135
|
+
full_path = ((next(iter(route.methods)) + " ") if route.methods else "") + "/v1" + route.path
|
|
136
|
+
if not any(re.match(regex, full_path) for regex in _excluded_v1_endpoints_regex):
|
|
137
|
+
route.dependencies.append(Depends(update_trace_attributes))
|
|
104
138
|
|
|
139
|
+
# Register exception handlers
|
|
140
|
+
app.exception_handler(HTTPException)(trace_error_handler)
|
|
141
|
+
app.exception_handler(RequestValidationError)(trace_error_handler)
|
|
142
|
+
app.exception_handler(Exception)(trace_error_handler)
|
|
105
143
|
|
|
106
|
-
def log_event(name: str, attributes: Optional[Dict[str, Any]] = None, timestamp: Optional[int] = None) -> None:
|
|
107
|
-
"""
|
|
108
|
-
Log an event to the current active span.
|
|
109
|
-
|
|
110
|
-
Args:
|
|
111
|
-
name: Name of the event
|
|
112
|
-
attributes: Optional dictionary of event attributes
|
|
113
|
-
timestamp: Optional timestamp in nanoseconds
|
|
114
|
-
"""
|
|
115
|
-
current_span = trace.get_current_span()
|
|
116
|
-
if current_span:
|
|
117
|
-
if timestamp is None:
|
|
118
|
-
timestamp = int(time.perf_counter_ns())
|
|
119
144
|
|
|
120
|
-
|
|
145
|
+
def trace_method(func):
|
|
146
|
+
"""Decorator that traces function execution with OpenTelemetry"""
|
|
121
147
|
|
|
148
|
+
def _get_span_name(func, args):
|
|
149
|
+
if args and hasattr(args[0], "__class__"):
|
|
150
|
+
class_name = args[0].__class__.__name__
|
|
151
|
+
else:
|
|
152
|
+
class_name = func.__module__
|
|
153
|
+
return f"{class_name}.{func.__name__}"
|
|
122
154
|
|
|
123
|
-
def
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
155
|
+
def _add_parameters_to_span(span, func, args, kwargs):
|
|
156
|
+
try:
|
|
157
|
+
# Add method parameters as span attributes
|
|
158
|
+
sig = inspect.signature(func)
|
|
159
|
+
bound_args = sig.bind(*args, **kwargs)
|
|
160
|
+
bound_args.apply_defaults()
|
|
129
161
|
|
|
162
|
+
# Skip 'self' when adding parameters if it exists
|
|
163
|
+
param_items = list(bound_args.arguments.items())
|
|
164
|
+
if args and hasattr(args[0], "__class__"):
|
|
165
|
+
param_items = param_items[1:]
|
|
130
166
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
if response.status_code >= 400:
|
|
137
|
-
span.set_status(Status(StatusCode.ERROR))
|
|
138
|
-
elif 200 <= response.status_code < 300:
|
|
139
|
-
span.set_status(Status(StatusCode.OK))
|
|
167
|
+
for name, value in param_items:
|
|
168
|
+
# Convert value to string to avoid serialization issues
|
|
169
|
+
span.set_attribute(f"parameter.{name}", str(value))
|
|
170
|
+
except:
|
|
171
|
+
pass
|
|
140
172
|
|
|
173
|
+
@wraps(func)
|
|
174
|
+
async def async_wrapper(*args, **kwargs):
|
|
175
|
+
if not _is_tracing_initialized:
|
|
176
|
+
return await func(*args, **kwargs)
|
|
141
177
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
Sets up OpenTelemetry tracing with OTLP exporter for specific endpoints
|
|
178
|
+
with tracer.start_as_current_span(_get_span_name(func, args)) as span:
|
|
179
|
+
_add_parameters_to_span(span, func, args, kwargs)
|
|
145
180
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
"""
|
|
150
|
-
global _is_tracing_initialized
|
|
181
|
+
result = await func(*args, **kwargs)
|
|
182
|
+
span.set_status(Status(StatusCode.OK))
|
|
183
|
+
return result
|
|
151
184
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
185
|
+
@wraps(func)
|
|
186
|
+
def sync_wrapper(*args, **kwargs):
|
|
187
|
+
if not _is_tracing_initialized:
|
|
188
|
+
return func(*args, **kwargs)
|
|
156
189
|
|
|
157
|
-
|
|
158
|
-
|
|
190
|
+
with tracer.start_as_current_span(_get_span_name(func, args)) as span:
|
|
191
|
+
_add_parameters_to_span(span, func, args, kwargs)
|
|
159
192
|
|
|
160
|
-
|
|
161
|
-
|
|
193
|
+
result = func(*args, **kwargs)
|
|
194
|
+
span.set_status(Status(StatusCode.OK))
|
|
195
|
+
return result
|
|
196
|
+
|
|
197
|
+
return async_wrapper if inspect.iscoroutinefunction(func) else sync_wrapper
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
def log_attributes(attributes: Dict[str, Any]) -> None:
|
|
201
|
+
current_span = trace.get_current_span()
|
|
202
|
+
if current_span:
|
|
203
|
+
current_span.set_attributes(attributes)
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
def log_event(name: str, attributes: Optional[Dict[str, Any]] = None, timestamp: Optional[int] = None) -> None:
|
|
207
|
+
current_span = trace.get_current_span()
|
|
208
|
+
if current_span:
|
|
209
|
+
if timestamp is None:
|
|
210
|
+
timestamp = int(time.perf_counter_ns())
|
|
211
|
+
|
|
212
|
+
def _safe_convert(v):
|
|
213
|
+
if isinstance(v, (str, bool, int, float)):
|
|
214
|
+
return v
|
|
215
|
+
return str(v)
|
|
216
|
+
|
|
217
|
+
attributes = {k: _safe_convert(v) for k, v in attributes.items()} if attributes else None
|
|
218
|
+
current_span.add_event(name=name, attributes=attributes, timestamp=timestamp)
|
|
162
219
|
|
|
163
|
-
# Only set up OTLP export if endpoint is provided
|
|
164
|
-
if endpoint:
|
|
165
|
-
otlp_exporter = OTLPSpanExporter(endpoint=endpoint)
|
|
166
|
-
processor = BatchSpanProcessor(otlp_exporter)
|
|
167
|
-
provider.add_span_processor(processor)
|
|
168
|
-
_is_tracing_initialized = True
|
|
169
|
-
else:
|
|
170
|
-
print("⚠️ Warning: Tracing endpoint not provided, tracing will be disabled")
|
|
171
|
-
|
|
172
|
-
# Set the global TracerProvider
|
|
173
|
-
trace.set_tracer_provider(provider)
|
|
174
|
-
|
|
175
|
-
# Initialize automatic instrumentation for the requests library with response hook
|
|
176
|
-
if _is_tracing_initialized:
|
|
177
|
-
RequestsInstrumentor().instrument(response_hook=request_hook)
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
def _extract_request_info(args: tuple, span: Span) -> Dict[str, Any]:
|
|
181
|
-
"""
|
|
182
|
-
Safely extracts request information from function arguments.
|
|
183
|
-
Works with both FastAPI route handlers and inner functions.
|
|
184
|
-
"""
|
|
185
|
-
attributes = {}
|
|
186
|
-
|
|
187
|
-
# Look for FastAPI Request object in args
|
|
188
|
-
request = next((arg for arg in args if isinstance(arg, Request)), None)
|
|
189
|
-
|
|
190
|
-
if request:
|
|
191
|
-
attributes.update(
|
|
192
|
-
{
|
|
193
|
-
"http.route": request.url.path,
|
|
194
|
-
"http.method": request.method,
|
|
195
|
-
"http.scheme": request.url.scheme,
|
|
196
|
-
"http.target": str(request.url.path),
|
|
197
|
-
"http.url": str(request.url),
|
|
198
|
-
"http.flavor": request.scope.get("http_version", ""),
|
|
199
|
-
"http.client_ip": request.client.host if request.client else None,
|
|
200
|
-
"http.user_id": request.headers.get("user_id"),
|
|
201
|
-
}
|
|
202
|
-
)
|
|
203
220
|
|
|
204
|
-
|
|
205
|
-
|
|
221
|
+
def get_trace_id() -> Optional[str]:
|
|
222
|
+
span = trace.get_current_span()
|
|
223
|
+
if span and span.get_span_context().trace_id:
|
|
224
|
+
return format(span.get_span_context().trace_id, "032x")
|
|
225
|
+
return None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: letta-nightly
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.35.dev20250304104154
|
|
4
4
|
Summary: Create LLM agents with long-term memory and custom tools
|
|
5
5
|
License: Apache License
|
|
6
6
|
Author: Letta Team
|
|
@@ -30,6 +30,7 @@ Requires-Dist: brotli (>=1.1.0,<2.0.0)
|
|
|
30
30
|
Requires-Dist: colorama (>=0.4.6,<0.5.0)
|
|
31
31
|
Requires-Dist: composio-core (>=0.7.2,<0.8.0)
|
|
32
32
|
Requires-Dist: composio-langchain (>=0.7.2,<0.8.0)
|
|
33
|
+
Requires-Dist: datamodel-code-generator[http] (>=0.25.0,<0.26.0)
|
|
33
34
|
Requires-Dist: datasets (>=2.14.6,<3.0.0) ; extra == "dev" or extra == "all"
|
|
34
35
|
Requires-Dist: demjson3 (>=3.0.6,<4.0.0)
|
|
35
36
|
Requires-Dist: docker (>=7.1.0,<8.0.0) ; extra == "external-tools" or extra == "all"
|
|
@@ -56,10 +57,10 @@ Requires-Dist: marshmallow-sqlalchemy (>=1.4.1,<2.0.0)
|
|
|
56
57
|
Requires-Dist: nltk (>=3.8.1,<4.0.0)
|
|
57
58
|
Requires-Dist: numpy (>=1.26.2,<2.0.0)
|
|
58
59
|
Requires-Dist: openai (>=1.60.0,<2.0.0)
|
|
59
|
-
Requires-Dist: opentelemetry-api (
|
|
60
|
-
Requires-Dist: opentelemetry-exporter-otlp (
|
|
61
|
-
Requires-Dist: opentelemetry-instrumentation-requests (
|
|
62
|
-
Requires-Dist: opentelemetry-sdk (
|
|
60
|
+
Requires-Dist: opentelemetry-api (==1.30.0)
|
|
61
|
+
Requires-Dist: opentelemetry-exporter-otlp (==1.30.0)
|
|
62
|
+
Requires-Dist: opentelemetry-instrumentation-requests (==0.51b0)
|
|
63
|
+
Requires-Dist: opentelemetry-sdk (==1.30.0)
|
|
63
64
|
Requires-Dist: pathvalidate (>=3.2.1,<4.0.0)
|
|
64
65
|
Requires-Dist: pexpect (>=4.9.0,<5.0.0) ; extra == "dev" or extra == "all"
|
|
65
66
|
Requires-Dist: pg8000 (>=1.30.3,<2.0.0) ; extra == "postgres" or extra == "all"
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
letta/__init__.py,sha256=
|
|
1
|
+
letta/__init__.py,sha256=4ym40mjr7-1tSGCMdgCrprX97F8XePgils4ZWFvEFxM,918
|
|
2
2
|
letta/__main__.py,sha256=6Hs2PV7EYc5Tid4g4OtcLXhqVHiNYTGzSBdoOnW2HXA,29
|
|
3
|
-
letta/agent.py,sha256=
|
|
3
|
+
letta/agent.py,sha256=VljWPlG9bh22cF0o0s9lGw0Qi5Ua2O2JLSOiFtH1SfE,62823
|
|
4
|
+
letta/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
+
letta/agents/base_agent.py,sha256=8IMB7UK4ft-Wi-ZYjX7akqQUhk_cSswRgepqeZyvCMs,1550
|
|
6
|
+
letta/agents/ephemeral_agent.py,sha256=XOQ5rj3cn7i7Imr_aFaL8DbH7oAizrHbmUy8QZuz9yk,2704
|
|
7
|
+
letta/agents/low_latency_agent.py,sha256=ZH7BfIS3j4e5mjWRCArwZrGzZDQKUPcsuxfTCg86h-o,13919
|
|
4
8
|
letta/benchmark/benchmark.py,sha256=ebvnwfp3yezaXOQyGXkYCDYpsmre-b9hvNtnyx4xkG0,3701
|
|
5
9
|
letta/benchmark/constants.py,sha256=aXc5gdpMGJT327VuxsT5FngbCK2J41PQYeICBO7g_RE,536
|
|
6
|
-
letta/chat_only_agent.py,sha256=71Lf-df8y3nsE9IFKpEigaZaWHoWnXnhVChkp1L-83I,4760
|
|
7
10
|
letta/cli/cli.py,sha256=zJz78-qDUz-depb7VQWkg87RBKiETQU4h9DI6ukQBa8,16477
|
|
8
11
|
letta/cli/cli_config.py,sha256=MNMhIAAjXiAy2gX_gAtqiY0Ya6VNbzXJWjIcRVEZa-k,8597
|
|
9
12
|
letta/cli/cli_load.py,sha256=xFw-CuzjChcIptaqQ1XpDROENt0JSjyPeiQ0nmEeO1k,2706
|
|
@@ -12,23 +15,23 @@ letta/client/client.py,sha256=7RQjZ-3yn_Hc9QsZoNCFRilyvfTq-Xie2sNbs1Lmbh4,138697
|
|
|
12
15
|
letta/client/streaming.py,sha256=lN9vamc07sfQlRbFif327GvURLUPhx-4AC_oUOPvs6w,4543
|
|
13
16
|
letta/client/utils.py,sha256=VCGV-op5ZSmurd4yw7Vhf93XDQ0BkyBT8qsuV7EqfiU,2859
|
|
14
17
|
letta/config.py,sha256=JFGY4TWW0Wm5fTbZamOwWqk5G8Nn-TXyhgByGoAqy2c,12375
|
|
15
|
-
letta/constants.py,sha256=
|
|
18
|
+
letta/constants.py,sha256=Dl_MEUMMSLorS-hVRnbAMzOUAtC8UbW969c2jGy1iLU,7512
|
|
16
19
|
letta/data_sources/connectors.py,sha256=R2AssXpqS7wN6VI8AfxvqaZs5S1ZACc4E_FewmR9iZI,7022
|
|
17
20
|
letta/data_sources/connectors_helper.py,sha256=2TQjCt74fCgT5sw1AP8PalDEk06jPBbhrPG4HVr-WLs,3371
|
|
18
21
|
letta/embeddings.py,sha256=zqlfbN3aCgSOlNd9M2NW9zrwx4WwQzketb8oa5BzzE8,10831
|
|
19
22
|
letta/errors.py,sha256=6fQXg2unP-2fo3R7db0ayKKWlD2XMusOPNi9TgJplCg,5558
|
|
20
23
|
letta/functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
-
letta/functions/ast_parsers.py,sha256=
|
|
24
|
+
letta/functions/ast_parsers.py,sha256=CQI0rUoIXcLKAev_GYrXcldRIGN5ZQtk5u4FLoHe5sE,5728
|
|
22
25
|
letta/functions/function_sets/base.py,sha256=M3_1Pge2GiyITp_U73T_Sd9O2rFoNlbuT8KgzMjexfs,5999
|
|
23
26
|
letta/functions/function_sets/extras.py,sha256=R1a97EKepEPDxJKsxQPFdXXWQrkVppOvKbEkRc_79tc,4852
|
|
24
27
|
letta/functions/function_sets/multi_agent.py,sha256=BcMeod0-lMhnKeaVWJp2T1PzRV0qvCuTWAPMJxAbgHI,4073
|
|
25
28
|
letta/functions/functions.py,sha256=NyWLh7a-f4mXti5vM1oWDwXzfA58VmVVqL03O9vosKY,5672
|
|
26
|
-
letta/functions/helpers.py,sha256=
|
|
29
|
+
letta/functions/helpers.py,sha256=QA953uRT_syzTJs3iju2TbK9tH71m08hZXL5-BmUK2c,26704
|
|
27
30
|
letta/functions/interface.py,sha256=s_PPp5WDvGH_y9KUpMlORkdC141ITczFk3wsevrrUD8,2866
|
|
28
|
-
letta/functions/schema_generator.py,sha256=
|
|
31
|
+
letta/functions/schema_generator.py,sha256=dLM8pQ9UP1vP9cnKHgA-UhGllMNvyEIjsO-r47RP9LM,20765
|
|
29
32
|
letta/helpers/__init__.py,sha256=p0luQ1Oe3Skc6sH4O58aHHA3Qbkyjifpuq0DZ1GAY0U,59
|
|
30
33
|
letta/helpers/composio_helpers.py,sha256=6CWV483vE3N-keQlblexxBiQHxorMAgQuvbok4adGO4,949
|
|
31
|
-
letta/helpers/converters.py,sha256=
|
|
34
|
+
letta/helpers/converters.py,sha256=p-_9bzq_DXerQE9abHcQ8xxdQlvu9nwbmMzdefFNCuQ,5541
|
|
32
35
|
letta/helpers/datetime_helpers.py,sha256=7U5ZJkE0cLki4sG8ukIHZSAoFfQpLWQu2kFekETy6Zg,2633
|
|
33
36
|
letta/helpers/json_helpers.py,sha256=PWZ5HhSqGXO4e563dM_8M72q7ScirjXQ4Rv1ckohaV8,396
|
|
34
37
|
letta/helpers/tool_execution_helper.py,sha256=bskCscuz2nqoUboFcYA7sQGeikdEyqiYnNpO4gLQTdc,7469
|
|
@@ -37,23 +40,26 @@ letta/humans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
37
40
|
letta/humans/examples/basic.txt,sha256=Lcp8YESTWvOJgO4Yf_yyQmgo5bKakeB1nIVrwEGG6PA,17
|
|
38
41
|
letta/humans/examples/cs_phd.txt,sha256=9C9ZAV_VuG7GB31ksy3-_NAyk8rjE6YtVOkhp08k1xw,297
|
|
39
42
|
letta/interface.py,sha256=6CrnvydRZfVY9BQ4fCn85rmQU6D9udcsGww8nTnT95E,12793
|
|
43
|
+
letta/interfaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
44
|
+
letta/interfaces/openai_chat_completions_streaming_interface.py,sha256=SfqVp7V7AbBqv8D_IwyqrcztNiI0nKhjAvqtZQE_jfM,4729
|
|
45
|
+
letta/interfaces/utils.py,sha256=c6jvO0dBYHh8DQnlN-B0qeNC64d3CSunhfqlFA4pJTY,278
|
|
40
46
|
letta/llm_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
-
letta/llm_api/anthropic.py,sha256=
|
|
47
|
+
letta/llm_api/anthropic.py,sha256=4hoOme916XkBOkm08y6U5dQ1-tTiVQG_VIcvJQxu4aQ,37937
|
|
42
48
|
letta/llm_api/aws_bedrock.py,sha256=J_oCM810-m2T-tgo3iRwSM0BuykBN5AK3SbkyiOaGbc,3835
|
|
43
|
-
letta/llm_api/azure_openai.py,sha256=
|
|
49
|
+
letta/llm_api/azure_openai.py,sha256=GP50e3WyoU2O_vb_b06GYTA1S157I0G21lF9-qv9nsA,6459
|
|
44
50
|
letta/llm_api/azure_openai_constants.py,sha256=ZaR2IasJThijG0uhLKJThrixdAxLPD2IojfeaJ-KQMQ,294
|
|
45
51
|
letta/llm_api/cohere.py,sha256=A5uUoxoRsXsaMDCIIWiVXeyCbiQ7gUfiASb8Ovv2I_o,14852
|
|
46
52
|
letta/llm_api/deepseek.py,sha256=b1mSW8gnBrpAI8d2GcBpDyLYDnuC-P1UP6xJPalfQS4,12456
|
|
47
|
-
letta/llm_api/google_ai.py,sha256=
|
|
53
|
+
letta/llm_api/google_ai.py,sha256=oeGH6dTKfNTQ1Ip4HWkZ5KkVoujdru6XjQPWsirRBSM,18162
|
|
48
54
|
letta/llm_api/google_constants.py,sha256=ZdABT9l9l-qKcV2QCkVsv9kQbttx6JyIJoOWS8IMS5o,448
|
|
49
|
-
letta/llm_api/google_vertex.py,sha256
|
|
55
|
+
letta/llm_api/google_vertex.py,sha256=-8ERH8YPsQIAi6ZuYNcvny7Jz-Q4IFIbV7xqDspUUD4,14399
|
|
50
56
|
letta/llm_api/helpers.py,sha256=pXBemF43Ywbwub5dc5V7Slw5K7lNlO0ae8dQBOXgDHs,16773
|
|
51
|
-
letta/llm_api/llm_api_tools.py,sha256=
|
|
57
|
+
letta/llm_api/llm_api_tools.py,sha256=OHhwSWRwl4Ubv8_g-zoQZvgWYIkK5PWy6yzLeArIcf8,28427
|
|
52
58
|
letta/llm_api/mistral.py,sha256=fHdfD9ug-rQIk2qn8tRKay1U6w9maF11ryhKi91FfXM,1593
|
|
53
|
-
letta/llm_api/openai.py,sha256=
|
|
59
|
+
letta/llm_api/openai.py,sha256=UnCh2NYYJWpwUai6P2enFop3K_5JS4-VHuoFoBx7yRs,22398
|
|
54
60
|
letta/local_llm/README.md,sha256=hFJyw5B0TU2jrh9nb0zGZMgdH-Ei1dSRfhvPQG_NSoU,168
|
|
55
61
|
letta/local_llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
|
-
letta/local_llm/chat_completion_proxy.py,sha256=
|
|
62
|
+
letta/local_llm/chat_completion_proxy.py,sha256=k8_8kIKglMSXnthIdc4TnR3ACJVQsk6MHJY_Y3lM6B0,13845
|
|
57
63
|
letta/local_llm/constants.py,sha256=MwdXcv2TtH4dh4h6jSdIUor7mfhB7VjJHRweXjpl3Zk,1303
|
|
58
64
|
letta/local_llm/function_parser.py,sha256=QOCp-ipk88VnKJ17h_-oP8_AR3o5QDt4tEd5QTn2P0o,2622
|
|
59
65
|
letta/local_llm/grammars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -88,7 +94,7 @@ letta/local_llm/webui/api.py,sha256=kkxncdCFq1vjgvaHOoQ__j7rcDPgC1F64KcEm94Y6Rs,
|
|
|
88
94
|
letta/local_llm/webui/legacy_api.py,sha256=k3H3y4qp2Fs-XmP24iSIEyvq6wjWFWBzklY3-wRAJNI,2335
|
|
89
95
|
letta/local_llm/webui/legacy_settings.py,sha256=BLmd3TSx5StnY3ibjwaxYATPt_Lvq-o1rlcc_-Q1JcU,538
|
|
90
96
|
letta/local_llm/webui/settings.py,sha256=gmLHfiOl1u4JmlAZU2d2O8YKF9lafdakyjwR_ftVPh8,552
|
|
91
|
-
letta/log.py,sha256=
|
|
97
|
+
letta/log.py,sha256=spiTumfM4Ayk9-pmyKs_jyLvMTyzbQDZay1Vg0ROoZ8,2214
|
|
92
98
|
letta/main.py,sha256=_agyaYPJq70OL0goNwO34zENL2KupnTgqlg-HVcNaTY,15379
|
|
93
99
|
letta/memory.py,sha256=Jqh6Uz4mMAC1aAO2sH8zw4TuMWZr1OI-ZgkSUDh2TQI,3353
|
|
94
100
|
letta/offline_memory_agent.py,sha256=P_rm6GmKAH6lg7-njuv7dK29f7v5-tAQy-rMOwcPfwk,7499
|
|
@@ -119,8 +125,8 @@ letta/orm/source.py,sha256=z89VZUHV9K8Ew9JCYoZqUeRb1WEUKmrn0MMFkppaphE,2117
|
|
|
119
125
|
letta/orm/sources_agents.py,sha256=Ik_PokCBrXRd9wXWomeNeb8EtLUwjb9VMZ8LWXqpK5A,473
|
|
120
126
|
letta/orm/sqlalchemy_base.py,sha256=8037lD9w5vY7rXhqmXg1mG78UywdHczef7-XGhW7b1U,22511
|
|
121
127
|
letta/orm/sqlite_functions.py,sha256=JCScKiRlYCKxy9hChQ8wsk4GMKknZE24MunnG3fM1Gw,4255
|
|
122
|
-
letta/orm/step.py,sha256=
|
|
123
|
-
letta/orm/tool.py,sha256=
|
|
128
|
+
letta/orm/step.py,sha256=Y5hJa7KFJmfIGB21kYBYtooH6esfqUsKK-bh3ZTpHQk,3094
|
|
129
|
+
letta/orm/tool.py,sha256=x58lmVG5IhXTVt82CnoN-ExuObnQCbeSMx_yOhUMmA4,2515
|
|
124
130
|
letta/orm/tools_agents.py,sha256=r6t-V21w2_mG8n38zuUb5jOi_3hRxsjgezsLA4sg0m4,626
|
|
125
131
|
letta/orm/user.py,sha256=rK5N5ViDxmesZMqVVHB7FcQNpcSoM-hB42MyI6q3MnI,1004
|
|
126
132
|
letta/personas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -141,16 +147,17 @@ letta/prompts/system/memgpt_base.txt,sha256=dOHdqibJIth9lHZMxl4hUGxKjT6DWXvvVBb1
|
|
|
141
147
|
letta/prompts/system/memgpt_chat.txt,sha256=2tOfLG89vOxBBD7vYOQhIWardJFJ4tO2VUFYcA0NAZo,5420
|
|
142
148
|
letta/prompts/system/memgpt_chat_compressed.txt,sha256=_gMDjc8tcigLfJ3fOXryz31_DJxSQM812T3J-aw7x0w,1056
|
|
143
149
|
letta/prompts/system/memgpt_chat_fstring.txt,sha256=N6KSRwu-dcnDBLpCeqCdgM9lI0CnR3uIVPFcrCCa0V0,4720
|
|
144
|
-
letta/prompts/system/memgpt_convo_only.txt,sha256
|
|
150
|
+
letta/prompts/system/memgpt_convo_only.txt,sha256=-x2NDaV_lz5C-sRK1Fo_U_XGW7jtY_br6VBM2NgtM9Y,868
|
|
145
151
|
letta/prompts/system/memgpt_doc.txt,sha256=AsT55NOORoH-K-p0fxklrDRZ3qHs4MIKMuR-M4SSU4E,4768
|
|
146
152
|
letta/prompts/system/memgpt_gpt35_extralong.txt,sha256=FheNhYoIzNz6qnJKhVquZVSMj3HduC48reFaX7Pf7ig,5046
|
|
147
153
|
letta/prompts/system/memgpt_intuitive_knowledge.txt,sha256=sA7c3urYqREVnSBI81nTGImXAekqC0Fxc7RojFqud1g,2966
|
|
154
|
+
letta/prompts/system/memgpt_memory_only.txt,sha256=p63yl5dRigC9dj1h4g0gRuYmScp1j43efhFnfNxSbUs,2509
|
|
148
155
|
letta/prompts/system/memgpt_modified_chat.txt,sha256=F_yD4ZcR4aGDE3Z98tI7e609GYekY-fEYomNsCcuV6o,4656
|
|
149
156
|
letta/prompts/system/memgpt_modified_o1.txt,sha256=objnDgnxpF3-MmU28ZqZ7-TOG8UlHBM_HMyAdSDWK88,5492
|
|
150
157
|
letta/prompts/system/memgpt_offline_memory.txt,sha256=rWEJeF-6aiinjkJM9hgLUYCmlEcC_HekYB1bjEUYq6M,2460
|
|
151
158
|
letta/prompts/system/memgpt_offline_memory_chat.txt,sha256=ituh7gDuio7nC2UKFB7GpBq6crxb8bYedQfJ0ADoPgg,3949
|
|
152
159
|
letta/pytest.ini,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
153
|
-
letta/schemas/agent.py,sha256=
|
|
160
|
+
letta/schemas/agent.py,sha256=6wYcMCDi920UdyUwBm_-xt-cS2Q4G3vfJXYeB9r3BT8,14347
|
|
154
161
|
letta/schemas/block.py,sha256=FYYmRWjH4d4QHMUx_nmIXjv_qJna_l-Ip_4i51wDBPA,5942
|
|
155
162
|
letta/schemas/embedding_config.py,sha256=ufboqW9ctSBJdhwzJRbrGtTzOTwSKfT0LY0mowpr6fs,3398
|
|
156
163
|
letta/schemas/embedding_config_overrides.py,sha256=lkTa4y-EQ2RnaEKtKDM0sEAk7EwNa67REw8DGNNtGQY,84
|
|
@@ -179,8 +186,8 @@ letta/schemas/providers.py,sha256=k02mAFMn9F8zW6vjHSIL-OfBlfFharJQM43SrJfdmbs,43
|
|
|
179
186
|
letta/schemas/run.py,sha256=SRqPRziINIiPunjOhE_NlbnQYgxTvqmbauni_yfBQRA,2085
|
|
180
187
|
letta/schemas/sandbox_config.py,sha256=Nz8K5brqe6jpf66KnTJ0-E7ZeFdPoBFGN-XOI35OeaY,5926
|
|
181
188
|
letta/schemas/source.py,sha256=-BQVolcXA2ziCu2ztR6cbTdGUc8G7vGJy7rvpdf1hpg,2880
|
|
182
|
-
letta/schemas/step.py,sha256=
|
|
183
|
-
letta/schemas/tool.py,sha256=
|
|
189
|
+
letta/schemas/step.py,sha256=8rfOW4gbEIB7yp05pqmZn4P3U3XrvXeUd9lPg9yh6x8,2122
|
|
190
|
+
letta/schemas/tool.py,sha256=3K3csZrk0m9e1lg05tNrO5WCTBiCT9lS-WCVL8jM7mk,11201
|
|
184
191
|
letta/schemas/tool_rule.py,sha256=2YQZba4fXS3u4j8pIk7BDujfq8rnxSVMwJSyaVgApH4,2149
|
|
185
192
|
letta/schemas/usage.py,sha256=8oYRH-JX0PfjIu2zkT5Uu3UWQ7Unnz_uHiO8hRGI4m0,912
|
|
186
193
|
letta/schemas/user.py,sha256=V32Tgl6oqB3KznkxUz12y7agkQicjzW7VocSpj78i6Q,1526
|
|
@@ -194,7 +201,7 @@ letta/server/constants.py,sha256=yAdGbLkzlOU_dLTx0lKDmAnj0ZgRXCEaIcPJWO69eaE,92
|
|
|
194
201
|
letta/server/db.py,sha256=cA1MHpMCTTC1MX7VWppJ-cKq1XW93Vws_vTV0-bKmTE,3642
|
|
195
202
|
letta/server/generate_openapi_schema.sh,sha256=0OtBhkC1g6CobVmNEd_m2B6sTdppjbJLXaM95icejvE,371
|
|
196
203
|
letta/server/rest_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
197
|
-
letta/server/rest_api/app.py,sha256=
|
|
204
|
+
letta/server/rest_api/app.py,sha256=Di1FRxlgb056Bj9lncsGAc_HX9Cs8OntV9puT6463bs,12157
|
|
198
205
|
letta/server/rest_api/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
199
206
|
letta/server/rest_api/auth/index.py,sha256=fQBGyVylGSRfEMLQ17cZzrHd5Y1xiVylvPqH5Rl-lXQ,1378
|
|
200
207
|
letta/server/rest_api/auth_token.py,sha256=725EFEIiNj4dh70hrSd94UysmFD8vcJLrTRfNHkzxDo,774
|
|
@@ -205,25 +212,25 @@ letta/server/rest_api/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
|
|
|
205
212
|
letta/server/rest_api/routers/openai/chat_completions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
206
213
|
letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=yJo_oiv75QsD324lC0uR2B9su9WG1FxabQhAJKS--6s,5530
|
|
207
214
|
letta/server/rest_api/routers/v1/__init__.py,sha256=Zi2th-okqT_RWAjB8MYGHX8CpHt1OSRyO5V8SJEp6UU,1361
|
|
208
|
-
letta/server/rest_api/routers/v1/agents.py,sha256=
|
|
215
|
+
letta/server/rest_api/routers/v1/agents.py,sha256=I5V06th-lpUZ2fX2wtlYLD8SC2W1AkEIHRR4lr098YM,26658
|
|
209
216
|
letta/server/rest_api/routers/v1/blocks.py,sha256=0j7JX2BQzk31RyhvPZeEb-zh9ImXsVU4_8y5XMiR_WA,3900
|
|
210
217
|
letta/server/rest_api/routers/v1/health.py,sha256=MoOjkydhGcJXTiuJrKIB0etVXiRMdTa51S8RQ8-50DQ,399
|
|
211
|
-
letta/server/rest_api/routers/v1/identities.py,sha256=
|
|
218
|
+
letta/server/rest_api/routers/v1/identities.py,sha256=yqehnyLCRMetPHXu1Hfb9DqqiRLnlryR7_VF6t_HUm4,5449
|
|
212
219
|
letta/server/rest_api/routers/v1/jobs.py,sha256=4oeJfI2odNGubU_g7WSORJhn_usFsbRaD-qm86rve1E,2746
|
|
213
220
|
letta/server/rest_api/routers/v1/llms.py,sha256=lYp5URXtZk1yu_Pe-p1Wq1uQ0qeb6aWtx78rXSB7N_E,881
|
|
214
221
|
letta/server/rest_api/routers/v1/organizations.py,sha256=8n-kA9LHtKImdY2xL-v7m6nYAbFWqH1vjBCJhQbv7Is,2077
|
|
215
222
|
letta/server/rest_api/routers/v1/providers.py,sha256=qyZsNTXgLVsoLZoCVY4qaqiG34zCEVmRUP2Cn6maK_4,2949
|
|
216
|
-
letta/server/rest_api/routers/v1/runs.py,sha256
|
|
223
|
+
letta/server/rest_api/routers/v1/runs.py,sha256=-2_YA2nuxcLqiPjG9CPHeZbyrtlNQZnAsaNohGn5fMg,8278
|
|
217
224
|
letta/server/rest_api/routers/v1/sandbox_configs.py,sha256=9hqnnMwJ3wCwO-Bezu3Xl8i3TDSIuInw3gSeHaKUXfE,8526
|
|
218
225
|
letta/server/rest_api/routers/v1/sources.py,sha256=rpQhaRHyzGUK43LX623L8BBLqL85HJ6fUYPMvI4k3kA,8434
|
|
219
226
|
letta/server/rest_api/routers/v1/steps.py,sha256=IpCQuxpS34-4Qpgdv0FQJO-SffkFkW-OaRjWHquB_1w,3136
|
|
220
227
|
letta/server/rest_api/routers/v1/tags.py,sha256=coydgvL6-9cuG2Hy5Ea7QY3inhTHlsf69w0tcZenBus,880
|
|
221
|
-
letta/server/rest_api/routers/v1/tools.py,sha256=
|
|
228
|
+
letta/server/rest_api/routers/v1/tools.py,sha256=B9zRyc2PeHdPBA6hvHqpTrVWsjgd1uBkyG1J_5E8Rgw,13207
|
|
222
229
|
letta/server/rest_api/routers/v1/users.py,sha256=G5DBHSkPfBgVHN2Wkm-rVYiLQAudwQczIq2Z3YLdbVo,2277
|
|
223
|
-
letta/server/rest_api/routers/v1/voice.py,sha256=
|
|
230
|
+
letta/server/rest_api/routers/v1/voice.py,sha256=0Yk-2c4Ec_viqMLMAn_9kZPAYeUgLQoikpocLfK_qKE,2623
|
|
224
231
|
letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
|
|
225
|
-
letta/server/rest_api/utils.py,sha256=
|
|
226
|
-
letta/server/server.py,sha256=
|
|
232
|
+
letta/server/rest_api/utils.py,sha256=TlVzgtsg0jmaXzvGubtzOE9WSyvRe6_DFoIBK9EDYt8,13820
|
|
233
|
+
letta/server/server.py,sha256=LrIVbKJeEhSTbbiUQdg0gGvpXveY6ITJINWZ9gqehEA,58118
|
|
227
234
|
letta/server/startup.sh,sha256=qEi6dQHJRzEzDIgnIODj-RYp-O1XstfFpc6cFLkUzVs,1576
|
|
228
235
|
letta/server/static_files/assets/index-048c9598.js,sha256=mR16XppvselwKCcNgONs4L7kZEVa4OEERm4lNZYtLSk,146819
|
|
229
236
|
letta/server/static_files/assets/index-0e31b727.css,sha256=SBbja96uiQVLDhDOroHgM6NSl7tS4lpJRCREgSS_hA8,7672
|
|
@@ -237,12 +244,12 @@ letta/server/ws_api/interface.py,sha256=TWl9vkcMCnLsUtgsuENZ-ku2oMDA-OUTzLh_yNRo
|
|
|
237
244
|
letta/server/ws_api/protocol.py,sha256=5mDgpfNZn_kNwHnpt5Dsuw8gdNH298sgxTGed3etzYg,1836
|
|
238
245
|
letta/server/ws_api/server.py,sha256=cBSzf-V4zT1bL_0i54OTI3cMXhTIIxqjSRF8pYjk7fg,5835
|
|
239
246
|
letta/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
240
|
-
letta/services/agent_manager.py,sha256=
|
|
247
|
+
letta/services/agent_manager.py,sha256=6faeX7u5CCF5qfwUPNNbQfDNUcIMNcNMV0dGTzM-Aj8,55684
|
|
241
248
|
letta/services/block_manager.py,sha256=PkbiO59VimLyK6PolWR5O29uHxksCH6pP6K4Vkov3NA,5573
|
|
242
|
-
letta/services/helpers/agent_manager_helper.py,sha256=
|
|
243
|
-
letta/services/helpers/tool_execution_helper.py,sha256=
|
|
249
|
+
letta/services/helpers/agent_manager_helper.py,sha256=uvQsmk2ZCAvG4AuI9r3Cs3IDe3Ra8X-qP3B3RbBVMtg,11179
|
|
250
|
+
letta/services/helpers/tool_execution_helper.py,sha256=lLoebs1kZKjw62y1PxHbIDkHq_heJN2ZT0gKje-R8oo,6941
|
|
244
251
|
letta/services/identity_manager.py,sha256=o1XMd5NG2gZ_YWrPOmisfFN0i-2ohoq8n1GM8F49Lf4,7144
|
|
245
|
-
letta/services/job_manager.py,sha256=
|
|
252
|
+
letta/services/job_manager.py,sha256=ejcv_nMljByimiWJjvj7aqUFQktL1kK-vx_cra2L2cs,16317
|
|
246
253
|
letta/services/message_manager.py,sha256=miGZ24h6NC16wHiTP95ooo-M-o2x1rxRnj67p8vQyOY,10702
|
|
247
254
|
letta/services/organization_manager.py,sha256=dhQ3cFPXWNYLfMjdahr2HsOAMJ1JtCEWj1G8Nei5MQc,3388
|
|
248
255
|
letta/services/passage_manager.py,sha256=mwShFO_xRaTi82fvANb_ngO0TmGaZPA9FPu8KuZ6Gd8,8643
|
|
@@ -250,18 +257,21 @@ letta/services/per_agent_lock_manager.py,sha256=porM0cKKANQ1FvcGXOO_qM7ARk5Fgi1H
|
|
|
250
257
|
letta/services/provider_manager.py,sha256=QOKMSZOM6eAWa2-nANWQc1frKBh8N3gqDq0V87fnSuc,3748
|
|
251
258
|
letta/services/sandbox_config_manager.py,sha256=AlZFtESHfEQf3T6WEpn7-B4nZgmnoO_-FxB5FCxSqpY,13357
|
|
252
259
|
letta/services/source_manager.py,sha256=SE24AiPPhpvZMGDD047H3_ZDD7OM4zHbTW1JXjPEv7U,7672
|
|
253
|
-
letta/services/step_manager.py,sha256=
|
|
254
|
-
letta/services/
|
|
255
|
-
letta/services/
|
|
260
|
+
letta/services/step_manager.py,sha256=5wAxv3OzoYwW9aDcg26hC3foQqOl5qA0tno3vg_Ai5U,5107
|
|
261
|
+
letta/services/summarizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
262
|
+
letta/services/summarizer/enums.py,sha256=szzPX2OBRRJEZsBTGYQThrNz02ELFqhuLwvOR7ozi7A,208
|
|
263
|
+
letta/services/summarizer/summarizer.py,sha256=u3WNTPAK0hSyUS8Jb6NDz-BWIZ7bEQj9RBW6AfP4BAc,4746
|
|
264
|
+
letta/services/tool_execution_sandbox.py,sha256=6AB3rFS34PzoyE9dxtUmuaUUWvKrwdE083NuBRa1eC0,22969
|
|
265
|
+
letta/services/tool_manager.py,sha256=HJIDtXmBjoaAfHtuVDBi-j-L4akHelqjkPkeWlLfQo8,9555
|
|
256
266
|
letta/services/user_manager.py,sha256=ScHbdJK9kNF8QXjsd3ZWGEL87n_Uyp3YwfKetOJmpHs,4304
|
|
257
|
-
letta/settings.py,sha256=
|
|
267
|
+
letta/settings.py,sha256=bDJUHGzcGs04LIvxnISwg27M_kSCRXntcj2cNcgXftc,6685
|
|
258
268
|
letta/streaming_interface.py,sha256=1vuAckIxo1p1UsXtDzE8LTUve5RoTZRdXUe-WBIYDWU,15818
|
|
259
269
|
letta/streaming_utils.py,sha256=jLqFTVhUL76FeOuYk8TaRQHmPTf3HSRc2EoJwxJNK6U,11946
|
|
260
270
|
letta/system.py,sha256=dnOrS2FlRMwijQnOvfrky0Lg8wEw-FUq2zzfAJOUSKA,8477
|
|
261
|
-
letta/tracing.py,sha256=
|
|
271
|
+
letta/tracing.py,sha256=h_-c2lIKHmA7yCLOvgaHijMabmRC__FAl2rZtVKufUM,8017
|
|
262
272
|
letta/utils.py,sha256=AdHrQ2OQ3V4XhJ1LtYwbLUO71j2IJY37cIUxXPgaaRY,32125
|
|
263
|
-
letta_nightly-0.6.
|
|
264
|
-
letta_nightly-0.6.
|
|
265
|
-
letta_nightly-0.6.
|
|
266
|
-
letta_nightly-0.6.
|
|
267
|
-
letta_nightly-0.6.
|
|
273
|
+
letta_nightly-0.6.35.dev20250304104154.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
|
|
274
|
+
letta_nightly-0.6.35.dev20250304104154.dist-info/METADATA,sha256=mL10QPcVMpdtQMGKTgInGcSxk4BKrgCbLpP-3_XgSsw,22627
|
|
275
|
+
letta_nightly-0.6.35.dev20250304104154.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
276
|
+
letta_nightly-0.6.35.dev20250304104154.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
|
|
277
|
+
letta_nightly-0.6.35.dev20250304104154.dist-info/RECORD,,
|