letta-nightly 0.6.27.dev20250220104103__py3-none-any.whl → 0.6.29.dev20250221033538__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.

Files changed (66) hide show
  1. letta/__init__.py +1 -1
  2. letta/agent.py +19 -2
  3. letta/client/client.py +2 -0
  4. letta/constants.py +2 -0
  5. letta/functions/schema_generator.py +6 -6
  6. letta/helpers/converters.py +153 -0
  7. letta/helpers/tool_rule_solver.py +11 -1
  8. letta/llm_api/anthropic.py +10 -5
  9. letta/llm_api/aws_bedrock.py +1 -1
  10. letta/llm_api/deepseek.py +303 -0
  11. letta/llm_api/helpers.py +20 -10
  12. letta/llm_api/llm_api_tools.py +85 -2
  13. letta/llm_api/openai.py +16 -1
  14. letta/local_llm/chat_completion_proxy.py +15 -2
  15. letta/local_llm/lmstudio/api.py +75 -1
  16. letta/orm/__init__.py +2 -0
  17. letta/orm/agent.py +11 -4
  18. letta/orm/custom_columns.py +31 -110
  19. letta/orm/identities_agents.py +13 -0
  20. letta/orm/identity.py +60 -0
  21. letta/orm/organization.py +2 -0
  22. letta/orm/sqlalchemy_base.py +4 -0
  23. letta/schemas/agent.py +11 -1
  24. letta/schemas/identity.py +67 -0
  25. letta/schemas/llm_config.py +2 -0
  26. letta/schemas/message.py +1 -1
  27. letta/schemas/openai/chat_completion_response.py +2 -0
  28. letta/schemas/providers.py +72 -1
  29. letta/schemas/tool_rule.py +9 -1
  30. letta/serialize_schemas/__init__.py +1 -0
  31. letta/serialize_schemas/agent.py +36 -0
  32. letta/serialize_schemas/base.py +12 -0
  33. letta/serialize_schemas/custom_fields.py +69 -0
  34. letta/serialize_schemas/message.py +15 -0
  35. letta/server/db.py +111 -0
  36. letta/server/rest_api/app.py +8 -0
  37. letta/server/rest_api/chat_completions_interface.py +45 -21
  38. letta/server/rest_api/interface.py +114 -9
  39. letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +98 -24
  40. letta/server/rest_api/routers/v1/__init__.py +2 -0
  41. letta/server/rest_api/routers/v1/agents.py +14 -3
  42. letta/server/rest_api/routers/v1/identities.py +121 -0
  43. letta/server/rest_api/utils.py +183 -4
  44. letta/server/server.py +23 -117
  45. letta/services/agent_manager.py +53 -6
  46. letta/services/block_manager.py +1 -1
  47. letta/services/identity_manager.py +156 -0
  48. letta/services/job_manager.py +1 -1
  49. letta/services/message_manager.py +1 -1
  50. letta/services/organization_manager.py +1 -1
  51. letta/services/passage_manager.py +1 -1
  52. letta/services/provider_manager.py +1 -1
  53. letta/services/sandbox_config_manager.py +1 -1
  54. letta/services/source_manager.py +1 -1
  55. letta/services/step_manager.py +1 -1
  56. letta/services/tool_manager.py +1 -1
  57. letta/services/user_manager.py +1 -1
  58. letta/settings.py +3 -0
  59. letta/streaming_interface.py +6 -2
  60. letta/tracing.py +205 -0
  61. letta/utils.py +4 -0
  62. {letta_nightly-0.6.27.dev20250220104103.dist-info → letta_nightly-0.6.29.dev20250221033538.dist-info}/METADATA +9 -2
  63. {letta_nightly-0.6.27.dev20250220104103.dist-info → letta_nightly-0.6.29.dev20250221033538.dist-info}/RECORD +66 -52
  64. {letta_nightly-0.6.27.dev20250220104103.dist-info → letta_nightly-0.6.29.dev20250221033538.dist-info}/LICENSE +0 -0
  65. {letta_nightly-0.6.27.dev20250220104103.dist-info → letta_nightly-0.6.29.dev20250221033538.dist-info}/WHEEL +0 -0
  66. {letta_nightly-0.6.27.dev20250220104103.dist-info → letta_nightly-0.6.29.dev20250221033538.dist-info}/entry_points.txt +0 -0
@@ -48,7 +48,9 @@ class AgentChunkStreamingInterface(ABC):
48
48
  raise NotImplementedError
49
49
 
50
50
  @abstractmethod
51
- def process_chunk(self, chunk: ChatCompletionChunkResponse, message_id: str, message_date: datetime):
51
+ def process_chunk(
52
+ self, chunk: ChatCompletionChunkResponse, message_id: str, message_date: datetime, expect_reasoning_content: bool = False
53
+ ):
52
54
  """Process a streaming chunk from an OpenAI-compatible server"""
53
55
  raise NotImplementedError
54
56
 
@@ -92,7 +94,9 @@ class StreamingCLIInterface(AgentChunkStreamingInterface):
92
94
  def _flush(self):
93
95
  pass
94
96
 
95
- def process_chunk(self, chunk: ChatCompletionChunkResponse, message_id: str, message_date: datetime):
97
+ def process_chunk(
98
+ self, chunk: ChatCompletionChunkResponse, message_id: str, message_date: datetime, expect_reasoning_content: bool = False
99
+ ):
96
100
  assert len(chunk.choices) == 1, chunk
97
101
 
98
102
  message_delta = chunk.choices[0].delta
letta/tracing.py ADDED
@@ -0,0 +1,205 @@
1
+ import asyncio
2
+ import inspect
3
+ import sys
4
+ import time
5
+ from functools import wraps
6
+ from typing import Any, Dict, Optional
7
+
8
+ from fastapi import Request
9
+ from opentelemetry import trace
10
+ from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
11
+ from opentelemetry.instrumentation.requests import RequestsInstrumentor
12
+ from opentelemetry.sdk.resources import Resource
13
+ from opentelemetry.sdk.trace import TracerProvider
14
+ from opentelemetry.sdk.trace.export import BatchSpanProcessor
15
+ from opentelemetry.trace import Span, Status, StatusCode
16
+
17
+ # Get a tracer instance - will be no-op until setup_tracing is called
18
+ tracer = trace.get_tracer(__name__)
19
+
20
+ # Track if tracing has been initialized
21
+ _is_tracing_initialized = False
22
+
23
+
24
+ def is_pytest_environment():
25
+ """Check if we're running in pytest"""
26
+ return "pytest" in sys.modules
27
+
28
+
29
+ def trace_method(name=None):
30
+ """Decorator to add tracing to a method"""
31
+
32
+ def decorator(func):
33
+ @wraps(func)
34
+ async def async_wrapper(*args, **kwargs):
35
+ # Skip tracing if not initialized
36
+ if not _is_tracing_initialized:
37
+ return await func(*args, **kwargs)
38
+
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
+
44
+ if len(args) > 0 and hasattr(args[0], "__class__"):
45
+ span.set_attribute("code.class", args[0].__class__.__name__)
46
+
47
+ request = _extract_request_info(args, span)
48
+ if request and len(request) > 0:
49
+ span.set_attribute("agent.id", kwargs.get("agent_id"))
50
+ span.set_attribute("actor.id", request.get("http.user_id"))
51
+
52
+ try:
53
+ result = await func(*args, **kwargs)
54
+ span.set_status(Status(StatusCode.OK))
55
+ return result
56
+ except Exception as e:
57
+ span.set_status(Status(StatusCode.ERROR))
58
+ span.record_exception(e)
59
+ raise
60
+
61
+ @wraps(func)
62
+ def sync_wrapper(*args, **kwargs):
63
+ # Skip tracing if not initialized
64
+ if not _is_tracing_initialized:
65
+ return func(*args, **kwargs)
66
+
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
+
72
+ if len(args) > 0 and hasattr(args[0], "__class__"):
73
+ span.set_attribute("code.class", args[0].__class__.__name__)
74
+
75
+ request = _extract_request_info(args, span)
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"))
79
+
80
+ try:
81
+ result = func(*args, **kwargs)
82
+ span.set_status(Status(StatusCode.OK))
83
+ return result
84
+ except Exception as e:
85
+ span.set_status(Status(StatusCode.ERROR))
86
+ span.record_exception(e)
87
+ raise
88
+
89
+ return async_wrapper if asyncio.iscoroutinefunction(func) else sync_wrapper
90
+
91
+ return decorator
92
+
93
+
94
+ def log_attributes(attributes: Dict[str, Any]) -> None:
95
+ """
96
+ Log multiple attributes to the current active span.
97
+
98
+ Args:
99
+ attributes: Dictionary of attribute key-value pairs
100
+ """
101
+ current_span = trace.get_current_span()
102
+ if current_span:
103
+ current_span.set_attributes(attributes)
104
+
105
+
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
+
120
+ current_span.add_event(name=name, attributes=attributes, timestamp=timestamp)
121
+
122
+
123
+ def get_trace_id() -> str:
124
+ current_span = trace.get_current_span()
125
+ if current_span:
126
+ return format(current_span.get_span_context().trace_id, "032x")
127
+ else:
128
+ return ""
129
+
130
+
131
+ def request_hook(span: Span, _request_context: Optional[Dict] = None, response: Optional[Any] = None):
132
+ """Hook to update span based on response status code"""
133
+ if response is not None:
134
+ if hasattr(response, "status_code"):
135
+ span.set_attribute("http.status_code", response.status_code)
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))
140
+
141
+
142
+ def setup_tracing(endpoint: str, service_name: str = "memgpt-server") -> None:
143
+ """
144
+ Sets up OpenTelemetry tracing with OTLP exporter for specific endpoints
145
+
146
+ Args:
147
+ endpoint: OTLP endpoint URL
148
+ service_name: Name of the service for tracing
149
+ """
150
+ global _is_tracing_initialized
151
+
152
+ # Skip tracing in pytest environment
153
+ if is_pytest_environment():
154
+ print("ℹ️ Skipping tracing setup in pytest environment")
155
+ return
156
+
157
+ # Create a Resource to identify our service
158
+ resource = Resource.create({"service.name": service_name, "service.namespace": "default", "deployment.environment": "production"})
159
+
160
+ # Initialize the TracerProvider with the resource
161
+ provider = TracerProvider(resource=resource)
162
+
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
+
204
+ span.set_attributes(attributes)
205
+ return attributes
letta/utils.py CHANGED
@@ -824,12 +824,16 @@ def parse_json(string) -> dict:
824
824
  result = None
825
825
  try:
826
826
  result = json_loads(string)
827
+ if not isinstance(result, dict):
828
+ raise ValueError(f"JSON from string input ({string}) is not a dictionary (type {type(result)}): {result}")
827
829
  return result
828
830
  except Exception as e:
829
831
  print(f"Error parsing json with json package: {e}")
830
832
 
831
833
  try:
832
834
  result = demjson.decode(string)
835
+ if not isinstance(result, dict):
836
+ raise ValueError(f"JSON from string input ({string}) is not a dictionary (type {type(result)}): {result}")
833
837
  return result
834
838
  except demjson.JSONDecodeError as e:
835
839
  print(f"Error parsing json with demjson package: {e}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-nightly
3
- Version: 0.6.27.dev20250220104103
3
+ Version: 0.6.29.dev20250221033538
4
4
  Summary: Create LLM agents with long-term memory and custom tools
5
5
  License: Apache License
6
6
  Author: Letta Team
@@ -20,11 +20,13 @@ Provides-Extra: google
20
20
  Provides-Extra: postgres
21
21
  Provides-Extra: qdrant
22
22
  Provides-Extra: server
23
+ Provides-Extra: telemetry
23
24
  Provides-Extra: tests
24
25
  Requires-Dist: alembic (>=1.13.3,<2.0.0)
25
26
  Requires-Dist: anthropic (>=0.43.0,<0.44.0)
26
27
  Requires-Dist: autoflake (>=2.3.0,<3.0.0) ; extra == "dev" or extra == "all"
27
28
  Requires-Dist: black[jupyter] (>=24.2.0,<25.0.0) ; extra == "dev" or extra == "all"
29
+ Requires-Dist: boto3 (>=1.36.24,<2.0.0) ; extra == "bedrock" or extra == "all"
28
30
  Requires-Dist: brotli (>=1.1.0,<2.0.0)
29
31
  Requires-Dist: colorama (>=0.4.6,<0.5.0)
30
32
  Requires-Dist: composio-core (>=0.7.2,<0.8.0)
@@ -37,7 +39,7 @@ Requires-Dist: docx2txt (>=0.8,<0.9)
37
39
  Requires-Dist: e2b-code-interpreter (>=1.0.3,<2.0.0) ; extra == "cloud-tool-sandbox"
38
40
  Requires-Dist: faker (>=36.1.0,<37.0.0)
39
41
  Requires-Dist: fastapi (>=0.115.6,<0.116.0) ; extra == "server" or extra == "all"
40
- Requires-Dist: google-genai (>=1.1.0,<2.0.0) ; extra == "google"
42
+ Requires-Dist: google-genai (>=1.1.0,<2.0.0) ; extra == "google" or extra == "all"
41
43
  Requires-Dist: grpcio (>=1.68.1,<2.0.0)
42
44
  Requires-Dist: grpcio-tools (>=1.68.1,<2.0.0)
43
45
  Requires-Dist: html2text (>=2020.1.16,<2021.0.0)
@@ -51,9 +53,14 @@ Requires-Dist: letta_client (>=0.1.23,<0.2.0)
51
53
  Requires-Dist: llama-index (>=0.12.2,<0.13.0)
52
54
  Requires-Dist: llama-index-embeddings-openai (>=0.3.1,<0.4.0)
53
55
  Requires-Dist: locust (>=2.31.5,<3.0.0) ; extra == "dev" or extra == "all"
56
+ Requires-Dist: marshmallow-sqlalchemy (>=1.4.1,<2.0.0)
54
57
  Requires-Dist: nltk (>=3.8.1,<4.0.0)
55
58
  Requires-Dist: numpy (>=1.26.2,<2.0.0)
56
59
  Requires-Dist: openai (>=1.60.0,<2.0.0)
60
+ Requires-Dist: opentelemetry-api (==1.30.0) ; extra == "telemetry" or extra == "all"
61
+ Requires-Dist: opentelemetry-exporter-otlp (==1.30.0) ; extra == "telemetry" or extra == "all"
62
+ Requires-Dist: opentelemetry-instrumentation-requests (==0.51b0) ; extra == "telemetry" or extra == "all"
63
+ Requires-Dist: opentelemetry-sdk (==1.30.0) ; extra == "telemetry" or extra == "all"
57
64
  Requires-Dist: pathvalidate (>=3.2.1,<4.0.0)
58
65
  Requires-Dist: pexpect (>=4.9.0,<5.0.0) ; extra == "dev" or extra == "all"
59
66
  Requires-Dist: pg8000 (>=1.30.3,<2.0.0) ; extra == "postgres" or extra == "all"
@@ -1,6 +1,6 @@
1
- letta/__init__.py,sha256=GFX4ppYbghJdXx6Fu9PxSfN1WaCjMRNiFKoz97vINbc,918
1
+ letta/__init__.py,sha256=AszTrvA12qPiq-KNlJEZgwz6FiVOZcYLcHlO3LEPyrs,918
2
2
  letta/__main__.py,sha256=6Hs2PV7EYc5Tid4g4OtcLXhqVHiNYTGzSBdoOnW2HXA,29
3
- letta/agent.py,sha256=qdBP_rO-35W_m9K-HMl_ZZm803MgARAHaNEG4kjn4gU,59768
3
+ letta/agent.py,sha256=cHbzAFuqSGS3-H0qODtjyQXvuBZwgAwvDv1TYGHtRX4,60694
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=zJz78-qDUz-depb7VQWkg87RBKiETQU4h9DI6ukQBa8,16477
8
8
  letta/cli/cli_config.py,sha256=MNMhIAAjXiAy2gX_gAtqiY0Ya6VNbzXJWjIcRVEZa-k,8597
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=y6ApfSvoboqAHkQgDCVLOueZUow5QZgzo82M0pGEGyo,138587
11
+ letta/client/client.py,sha256=7RQjZ-3yn_Hc9QsZoNCFRilyvfTq-Xie2sNbs1Lmbh4,138697
12
12
  letta/client/streaming.py,sha256=lN9vamc07sfQlRbFif327GvURLUPhx-4AC_oUOPvs6w,4543
13
13
  letta/client/utils.py,sha256=VCGV-op5ZSmurd4yw7Vhf93XDQ0BkyBT8qsuV7EqfiU,2859
14
14
  letta/config.py,sha256=JFGY4TWW0Wm5fTbZamOwWqk5G8Nn-TXyhgByGoAqy2c,12375
15
- letta/constants.py,sha256=zwG5CnXtM3wYIrVBa5c-1Z3024-_FjZqhn1ubSV1PYw,7194
15
+ letta/constants.py,sha256=p_PviHcjrCtSwoLc8uPtMYKBl-i9xn4p4gw4hZMO5OA,7254
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=zqlfbN3aCgSOlNd9M2NW9zrwx4WwQzketb8oa5BzzE8,10831
@@ -25,32 +25,34 @@ letta/functions/function_sets/multi_agent.py,sha256=BcMeod0-lMhnKeaVWJp2T1PzRV0q
25
25
  letta/functions/functions.py,sha256=NyWLh7a-f4mXti5vM1oWDwXzfA58VmVVqL03O9vosKY,5672
26
26
  letta/functions/helpers.py,sha256=TBji0j7hWT6DvjYY5gfN0CzxCRsVGh8uA6ACp9V3v3M,23185
27
27
  letta/functions/interface.py,sha256=s_PPp5WDvGH_y9KUpMlORkdC141ITczFk3wsevrrUD8,2866
28
- letta/functions/schema_generator.py,sha256=qosgp3p27QRTqOCPLrSkCGVdyQsyTTZunXQ_g-YaTkw,20138
28
+ letta/functions/schema_generator.py,sha256=C_UYD9ahgR9C0Lk_CqPULDk_5VaS1RBklIAKTXrNtY8,20120
29
29
  letta/helpers/__init__.py,sha256=p0luQ1Oe3Skc6sH4O58aHHA3Qbkyjifpuq0DZ1GAY0U,59
30
30
  letta/helpers/composio_helpers.py,sha256=ku6jRVCO8gVixeaCORVn0RZWUza9rob-18Q-g4t41fE,909
31
+ letta/helpers/converters.py,sha256=TL3g69RsSByx0IzO434nO3c8zwfPKEIj0R5QAiBsyKM,5415
31
32
  letta/helpers/datetime_helpers.py,sha256=7U5ZJkE0cLki4sG8ukIHZSAoFfQpLWQu2kFekETy6Zg,2633
32
33
  letta/helpers/json_helpers.py,sha256=PWZ5HhSqGXO4e563dM_8M72q7ScirjXQ4Rv1ckohaV8,396
33
- letta/helpers/tool_rule_solver.py,sha256=VnJfqb5L1Lcipc_tBVGj0om60GKQkMkNLgg6X9VZl2c,6210
34
+ letta/helpers/tool_rule_solver.py,sha256=z-2Zq_qWykgWanFZYxtxUee4FkMnxqvntXe2tomoH68,6774
34
35
  letta/humans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
36
  letta/humans/examples/basic.txt,sha256=Lcp8YESTWvOJgO4Yf_yyQmgo5bKakeB1nIVrwEGG6PA,17
36
37
  letta/humans/examples/cs_phd.txt,sha256=9C9ZAV_VuG7GB31ksy3-_NAyk8rjE6YtVOkhp08k1xw,297
37
38
  letta/interface.py,sha256=6CrnvydRZfVY9BQ4fCn85rmQU6D9udcsGww8nTnT95E,12793
38
39
  letta/llm_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- letta/llm_api/anthropic.py,sha256=aHv0nXS2ar9bslP1HAgDpOw2OJibx9M_4l9jE9nbicc,36254
40
- letta/llm_api/aws_bedrock.py,sha256=-ms9tdROu8DLrEZJ9XgL-IyIOU_0UJKuhfRbjLs0_Gc,3838
40
+ letta/llm_api/anthropic.py,sha256=4wvjrqJ1SziZ8pzKeiSLhkUcfwg2scz3efM8jGyPMzc,36457
41
+ letta/llm_api/aws_bedrock.py,sha256=J_oCM810-m2T-tgo3iRwSM0BuykBN5AK3SbkyiOaGbc,3835
41
42
  letta/llm_api/azure_openai.py,sha256=Y1HKPog1XzM_f7ujUK_Gv2zQkoy5pU-1bKiUnvSxSrs,6297
42
43
  letta/llm_api/azure_openai_constants.py,sha256=ZaR2IasJThijG0uhLKJThrixdAxLPD2IojfeaJ-KQMQ,294
43
44
  letta/llm_api/cohere.py,sha256=A5uUoxoRsXsaMDCIIWiVXeyCbiQ7gUfiASb8Ovv2I_o,14852
45
+ letta/llm_api/deepseek.py,sha256=b1mSW8gnBrpAI8d2GcBpDyLYDnuC-P1UP6xJPalfQS4,12456
44
46
  letta/llm_api/google_ai.py,sha256=VnoxG6QYcwgFEbH8iJ8MHaMQrW4ROekZy6ZV5ZdHxzI,18000
45
47
  letta/llm_api/google_constants.py,sha256=ZdABT9l9l-qKcV2QCkVsv9kQbttx6JyIJoOWS8IMS5o,448
46
48
  letta/llm_api/google_vertex.py,sha256=Cqr73-jZJJvii1M_0QEmasNajOIJ5TDs5GabsCJjI04,14149
47
- letta/llm_api/helpers.py,sha256=8rM_grbeCIQN27Uh-adhmAFcg2NPFSg6SA9WmogoZzY,16231
48
- letta/llm_api/llm_api_tools.py,sha256=Ss6RLmrNpqplHYVcl7QkK4xXeHZBAnzG1m0KTIqMW-c,22068
49
+ letta/llm_api/helpers.py,sha256=pXBemF43Ywbwub5dc5V7Slw5K7lNlO0ae8dQBOXgDHs,16773
50
+ letta/llm_api/llm_api_tools.py,sha256=wOm_NqBipE2M_XUN8y5KCDpZrXaEJuuvZ0llqfWFROo,26205
49
51
  letta/llm_api/mistral.py,sha256=fHdfD9ug-rQIk2qn8tRKay1U6w9maF11ryhKi91FfXM,1593
50
- letta/llm_api/openai.py,sha256=T69e4oveJw1IdzuONIaK4t1aRqXggTdfQ6n6eW0Uh8Q,20371
52
+ letta/llm_api/openai.py,sha256=NCL_pT35BfSsQ7LSfUdNuhI2hi1nEhBiGffLz_81Mcw,21271
51
53
  letta/local_llm/README.md,sha256=hFJyw5B0TU2jrh9nb0zGZMgdH-Ei1dSRfhvPQG_NSoU,168
52
54
  letta/local_llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- letta/local_llm/chat_completion_proxy.py,sha256=JIZi0mtS_5im5kYEa0hgXNePeml-7KskX6r8eXPxOk0,13028
55
+ letta/local_llm/chat_completion_proxy.py,sha256=44rvabj2iXPswe5jFt0qWYCasSVXjkT31DivvDoWVMM,13543
54
56
  letta/local_llm/constants.py,sha256=MwdXcv2TtH4dh4h6jSdIUor7mfhB7VjJHRweXjpl3Zk,1303
55
57
  letta/local_llm/function_parser.py,sha256=QOCp-ipk88VnKJ17h_-oP8_AR3o5QDt4tEd5QTn2P0o,2622
56
58
  letta/local_llm/grammars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -71,7 +73,7 @@ letta/local_llm/llm_chat_completion_wrappers/llama3.py,sha256=AE__YoBIE4U_il7-4E
71
73
  letta/local_llm/llm_chat_completion_wrappers/simple_summary_wrapper.py,sha256=oorTrARKGnJJY1yUKEVKHejGYyZmXQbHk5-XqP399ak,6212
72
74
  letta/local_llm/llm_chat_completion_wrappers/wrapper_base.py,sha256=DBZqajfHz-yhifkLe-H0i27TL7xv7do2IMTJIKsSBlY,408
73
75
  letta/local_llm/llm_chat_completion_wrappers/zephyr.py,sha256=yaws_qe0tlRC7ibDXbUHIR7ykbvjaTxl-GT-aMF6kWk,14379
74
- letta/local_llm/lmstudio/api.py,sha256=3gZbcMjLU4kO0teYqOtTh4ta5oZqfW0O-QpqhLxGidQ,4608
76
+ letta/local_llm/lmstudio/api.py,sha256=GNhEx4gnFMIdMPSXALlLko8klovZSdFMrBHFftScMqk,7642
75
77
  letta/local_llm/lmstudio/settings.py,sha256=3yPzVnTT6vw3Q6zHy5aOKza9lS-cLF9563EDxTNJPS8,815
76
78
  letta/local_llm/ollama/api.py,sha256=Zm_6BXXbMs2ZcJ5T9FKCMtJ-V47QDCCVgQOYm2AECi4,3637
77
79
  letta/local_llm/ollama/settings.py,sha256=L_2wWQo2bxr2Mw_wmgpryd9jGPOzMC0axNQD8uS7SW8,853
@@ -92,27 +94,29 @@ letta/offline_memory_agent.py,sha256=P_rm6GmKAH6lg7-njuv7dK29f7v5-tAQy-rMOwcPfwk
92
94
  letta/openai_backcompat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
95
  letta/openai_backcompat/openai_object.py,sha256=GSzeCTwLpLD2fH4X8wVqzwdmoTjKK2I4PnriBY453lc,13505
94
96
  letta/orm/__all__.py,sha256=2gh2MZTkA3Hw67VWVKK3JIStJOqTeLdpCvYSVYNeEDA,692
95
- letta/orm/__init__.py,sha256=wPokP-EvOri2LhKLjmYVtI_FWchaxgFvJeF_NAfqJIo,842
96
- letta/orm/agent.py,sha256=kjvTgERjObH4PnJzvYaV3uYWfIGjhwRqCZqY3rsTWPM,7548
97
+ letta/orm/__init__.py,sha256=I_6UgqHfv5H4OyB48-acXxtY2u0PGdV4Z_Y1UeXr5YQ,939
98
+ letta/orm/agent.py,sha256=LYMAfDfUlLTpOu5hw8mrQ1AKOOkT39BvLMp12IdGrik,7742
97
99
  letta/orm/agents_tags.py,sha256=dYSnHz4IWBjyOiQ4RJomX3P0QN76JTlEZEw5eJM6Emg,925
98
100
  letta/orm/base.py,sha256=VjvxF9TwKF9Trf8BJkDgf7D6KrWWopOkUiF18J3IElk,3071
99
101
  letta/orm/block.py,sha256=EjH8lXexHtFIHJ8G-RjNo2oAH834x0Hbn4CER9S4U74,3880
100
102
  letta/orm/blocks_agents.py,sha256=W0dykl9OchAofSuAYZD5zNmhyMabPr9LTJrz-I3A0m4,983
101
- letta/orm/custom_columns.py,sha256=APR3ylle9hUutQoy8m-toTV53F1mpcQhEcnf32XTmQA,5447
103
+ letta/orm/custom_columns.py,sha256=NnTpOhSdnlFb45AkQg8RZQU2aMm7hxjZc_ubleza_nw,2142
102
104
  letta/orm/enums.py,sha256=g4qbX_6a1NQpCt3rScAySbwSbkwqGmnOEaNbkMmCWF4,474
103
105
  letta/orm/errors.py,sha256=Se0Guz-gqi-D36NUWSh7AP9zTVCSph9KgZh_trwng4o,734
104
106
  letta/orm/file.py,sha256=7_p7LxityP3NQZVURQYG0kgcZhEkVuMN0Fj4h9YOe1w,1780
107
+ letta/orm/identities_agents.py,sha256=cfIQ6UsbwmjxtGVmFt1ArK2zbKr9k6VWoELuISDnLSc,502
108
+ letta/orm/identity.py,sha256=a5KjfSUVbpz3UDJlIacs3w-8fYA4bebSN0uhQGYzBj0,2462
105
109
  letta/orm/job.py,sha256=G2P-xUpTapD4lhU2FwMZET1b5QR4ju9WOB3uiTKD_mw,2157
106
110
  letta/orm/job_messages.py,sha256=SgwaYPYwwAC3dBtl9Xye_TWUl9H_-m95S95TTcfPyOg,1245
107
111
  letta/orm/message.py,sha256=qY5lhSq5JDOSGKnEnLryKr2bHYLr60pk2LqYBxGeONQ,2718
108
112
  letta/orm/mixins.py,sha256=9c79Kfr-Z1hL-SDYKeoptx_yMTbBwJJBo9nrKEzSDAc,1622
109
- letta/orm/organization.py,sha256=b12iASuskPnG2yHyFh8p2BFROkoqMPEYUFMuVcFPCHs,2897
113
+ letta/orm/organization.py,sha256=ciF2ffCBMddfOQ9O1gHv_cFMTPUlSQZNDYYXFgH_z1E,3070
110
114
  letta/orm/passage.py,sha256=tQi-fZZFBFVz0KZxd0foKPkAOaempgiYOHHK6lJ98gw,3332
111
115
  letta/orm/provider.py,sha256=-qA9tvKTZgaM4D7CoDZZiA7zTgjaaWDV4jZvifQv_MM,805
112
116
  letta/orm/sandbox_config.py,sha256=DyOy_1_zCMlp13elCqPcuuA6OwUove6mrjhcpROTg50,4150
113
117
  letta/orm/source.py,sha256=cpaleNiP-DomM2oopwgL2DGn38ITQwLMs5mKODf_c_4,2167
114
118
  letta/orm/sources_agents.py,sha256=Ik_PokCBrXRd9wXWomeNeb8EtLUwjb9VMZ8LWXqpK5A,473
115
- letta/orm/sqlalchemy_base.py,sha256=jhhF3A_k5j3wxyZ-C_n6kwvQIZ1iU3-vvcke3QarLBA,21901
119
+ letta/orm/sqlalchemy_base.py,sha256=tIuKJ0CH4tYCzhpDqqr2EDD6AxGlnXI752oYZtlvM6o,22151
116
120
  letta/orm/sqlite_functions.py,sha256=JCScKiRlYCKxy9hChQ8wsk4GMKknZE24MunnG3fM1Gw,4255
117
121
  letta/orm/step.py,sha256=6t_PlVd8pW1Rd6JeECImBG2n9P-yif0Sl9Uzhb-m77w,2982
118
122
  letta/orm/tool.py,sha256=JEPHlM4ePaLaGtHpHhYdKCteHTRJnOFgQmfR5wL8TpA,2379
@@ -145,7 +149,7 @@ letta/prompts/system/memgpt_modified_o1.txt,sha256=objnDgnxpF3-MmU28ZqZ7-TOG8UlH
145
149
  letta/prompts/system/memgpt_offline_memory.txt,sha256=rWEJeF-6aiinjkJM9hgLUYCmlEcC_HekYB1bjEUYq6M,2460
146
150
  letta/prompts/system/memgpt_offline_memory_chat.txt,sha256=ituh7gDuio7nC2UKFB7GpBq6crxb8bYedQfJ0ADoPgg,3949
147
151
  letta/pytest.ini,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
148
- letta/schemas/agent.py,sha256=XhfKNQdDykaJHn_WSRJVTaknkbx5mj8HN80Uz8DJthQ,13710
152
+ letta/schemas/agent.py,sha256=vERl22iOcNfWOqcuFadKGUSy03pHDSgctdn5OTd5qFI,14387
149
153
  letta/schemas/block.py,sha256=FYYmRWjH4d4QHMUx_nmIXjv_qJna_l-Ip_4i51wDBPA,5942
150
154
  letta/schemas/embedding_config.py,sha256=ufboqW9ctSBJdhwzJRbrGtTzOTwSKfT0LY0mowpr6fs,3398
151
155
  letta/schemas/embedding_config_overrides.py,sha256=lkTa4y-EQ2RnaEKtKDM0sEAk7EwNa67REw8DGNNtGQY,84
@@ -153,49 +157,57 @@ letta/schemas/enums.py,sha256=jfuke35XP_AKfHHBnH1rx1wYjUDWqgDsKnRxdrCpTKA,1213
153
157
  letta/schemas/environment_variables.py,sha256=VRtzOjdeQdHcSHXisk7oJUQlheruxhSWNS0xqlfGzbs,2429
154
158
  letta/schemas/file.py,sha256=ChN2CWzLI2TT9WLItcfElEH0E8b7kzPylF2OQBr6Beg,1550
155
159
  letta/schemas/health.py,sha256=zT6mYovvD17iJRuu2rcaQQzbEEYrkwvAE9TB7iU824c,139
160
+ letta/schemas/identity.py,sha256=028DseEyCErZ_fifQdFp4ON5QKlDWp-6hrrlekqko_g,2883
156
161
  letta/schemas/job.py,sha256=MX9EiLDDIeHm3q52ImOjp7UzXEdYTXAWWobRCAxwV0w,2225
157
162
  letta/schemas/letta_base.py,sha256=HTnSHJ2YSyhEdpY-vg9Y7ywqS1zzTjb9j5iVPYsuVSk,3991
158
163
  letta/schemas/letta_message.py,sha256=QHzIEwnEJEkE02biCwyQo5IvL2fVq_whBRQD3vPYO48,9837
159
164
  letta/schemas/letta_request.py,sha256=dzy3kwb5j2QLaSV0sDlwISEMt2xxH3IiK-vR9xJV65k,1123
160
165
  letta/schemas/letta_response.py,sha256=pq-SxXQy5yZo1-DiAwV2mMURlUvz1Uu7HHR_tB1hMho,7139
161
- letta/schemas/llm_config.py,sha256=FjpOGD0JuwH7wd8hlCZr36QQR4yYDmjWQGRE_iZHM_E,5540
166
+ letta/schemas/llm_config.py,sha256=R0GQvw3DzsShpxZY6eWte4A2f1QjUrAAJ928DvLuBZs,5596
162
167
  letta/schemas/llm_config_overrides.py,sha256=-oRglCTcajF6UAK3RAa0FLWVuKODPI1v403fDIWMAtA,1815
163
168
  letta/schemas/memory.py,sha256=GOYDfPKzbWftUWO9Hv4KW7xAi1EIQmC8zpP7qvEkVHw,10245
164
- letta/schemas/message.py,sha256=xNzV9m1q8-ERp8frel6ou0Fbb_8XWlWtYCs__wAVCdU,37691
169
+ letta/schemas/message.py,sha256=3-0zd-WuasJ1rZPDSqwJ7mRex399icPgpsVk19T7CoQ,37687
165
170
  letta/schemas/openai/chat_completion_request.py,sha256=AOIwgbN3CZKVqkuXeMHeSa53u4h0wVq69t3T_LJ0vIE,3389
166
- letta/schemas/openai/chat_completion_response.py,sha256=Kaz9T0_ZvhWdVgGcouBuUuAG8-Nl3kC3dRymBQlONZ4,3980
171
+ letta/schemas/openai/chat_completion_response.py,sha256=koEb_NTiz5YsAAX81Z0cSqSFX4a6MdD2lhoXtxF_rw4,4100
167
172
  letta/schemas/openai/chat_completions.py,sha256=l0e9sT9boTD5VBU5YtJ0s7qUtCfFGB2K-gQLeEZ2LHU,3599
168
173
  letta/schemas/openai/embedding_response.py,sha256=WKIZpXab1Av7v6sxKG8feW3ZtpQUNosmLVSuhXYa_xU,357
169
174
  letta/schemas/openai/openai.py,sha256=Hilo5BiLAGabzxCwnwfzK5QrWqwYD8epaEKFa4Pwndk,7970
170
175
  letta/schemas/organization.py,sha256=_RR8jlOOdJyG31q53IDdIvBVvIfAZrQWAGuvc5HmW24,788
171
176
  letta/schemas/passage.py,sha256=RG0vkaewEu4a_NAZM-FVyMammHjqpPP0RDYAdu27g6A,3723
172
- letta/schemas/providers.py,sha256=7cWbdanlWi2NoP6aJM1V0BP_cK4hce7u4W9O2YdwYCA,37307
177
+ letta/schemas/providers.py,sha256=FDa5DMzzFGmBGaRMz0CZhre06lBzXp2wUKB8r528Za4,39957
173
178
  letta/schemas/run.py,sha256=SRqPRziINIiPunjOhE_NlbnQYgxTvqmbauni_yfBQRA,2085
174
179
  letta/schemas/sandbox_config.py,sha256=Nz8K5brqe6jpf66KnTJ0-E7ZeFdPoBFGN-XOI35OeaY,5926
175
180
  letta/schemas/source.py,sha256=-BQVolcXA2ziCu2ztR6cbTdGUc8G7vGJy7rvpdf1hpg,2880
176
181
  letta/schemas/step.py,sha256=wQ-AzhMjH7tLFgZbJfcPkW9a9V81JYWzJCQtTfcb11E,2034
177
182
  letta/schemas/tool.py,sha256=dDyzvLZ_gw9DdcFplGTHoH9aFQnF2ez-ApYLRtxAfys,11051
178
- letta/schemas/tool_rule.py,sha256=tS7ily6NJD8E4n7Hla38jMUe6OIdhdc1ckq0AiRpu5Y,1893
183
+ letta/schemas/tool_rule.py,sha256=2YQZba4fXS3u4j8pIk7BDujfq8rnxSVMwJSyaVgApH4,2149
179
184
  letta/schemas/usage.py,sha256=8oYRH-JX0PfjIu2zkT5Uu3UWQ7Unnz_uHiO8hRGI4m0,912
180
185
  letta/schemas/user.py,sha256=V32Tgl6oqB3KznkxUz12y7agkQicjzW7VocSpj78i6Q,1526
186
+ letta/serialize_schemas/__init__.py,sha256=mflGEZvM3NuMG9Q6dccEdVk73BUHoX-v7hmfk025Gmc,64
187
+ letta/serialize_schemas/agent.py,sha256=sa59t30C6HegMhsilolMZBW2dblFkAvi8iUAMnY4-H8,1366
188
+ letta/serialize_schemas/base.py,sha256=QMSl1HajcopfNd-iw51wUdE6_Cb8IhIyNTQnGibsVDU,293
189
+ letta/serialize_schemas/custom_fields.py,sha256=HPonsK5DIU9EezXmQG0vAq2CWZVucld6Fqm3-VcJBg8,2101
190
+ letta/serialize_schemas/message.py,sha256=VAw39wVxrdQt2-aCylwYzNGJNuLK6inuRGVRkzFy9Ss,419
181
191
  letta/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
192
  letta/server/constants.py,sha256=yAdGbLkzlOU_dLTx0lKDmAnj0ZgRXCEaIcPJWO69eaE,92
193
+ letta/server/db.py,sha256=cA1MHpMCTTC1MX7VWppJ-cKq1XW93Vws_vTV0-bKmTE,3642
183
194
  letta/server/generate_openapi_schema.sh,sha256=0OtBhkC1g6CobVmNEd_m2B6sTdppjbJLXaM95icejvE,371
184
195
  letta/server/rest_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
185
- letta/server/rest_api/app.py,sha256=9cf9H6vZhN-iBJqkqjBdFWjA3PlKfok-q48ltI71qls,11805
196
+ letta/server/rest_api/app.py,sha256=F9XAwZt5nPAE75gHSurXGe4mGmNvmI8DD7RssK8l124,12101
186
197
  letta/server/rest_api/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
187
198
  letta/server/rest_api/auth/index.py,sha256=fQBGyVylGSRfEMLQ17cZzrHd5Y1xiVylvPqH5Rl-lXQ,1378
188
199
  letta/server/rest_api/auth_token.py,sha256=725EFEIiNj4dh70hrSd94UysmFD8vcJLrTRfNHkzxDo,774
189
- letta/server/rest_api/chat_completions_interface.py,sha256=XAMbQ-f0KDUeMAtnazwbjcrUn8ZpF8vBBtYw_kEPZ-8,10932
190
- letta/server/rest_api/interface.py,sha256=RHfyPKL1DNiC-P0NRgUrgsJdgXgHThxfrY-1hY6aJls,53157
200
+ letta/server/rest_api/chat_completions_interface.py,sha256=ORkZ-UmkmSx-FyGp85BDs9sQdNE49GehlmxVSxq4vLs,12073
201
+ letta/server/rest_api/interface.py,sha256=jAt7azrk27sNKNCZHgoIzYDIUbEgJ8hsC3Ef7OevH7U,57605
191
202
  letta/server/rest_api/optimistic_json_parser.py,sha256=1z4d9unmxMb0ou7owJ62uUQoNjNYf21FmaNdg0ZcqUU,6567
192
203
  letta/server/rest_api/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
193
204
  letta/server/rest_api/routers/openai/chat_completions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
194
- letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=TjeiyEMkpWR3PBazUWs4W2XVwGVEW5NRTOFXWag62oU,6657
195
- letta/server/rest_api/routers/v1/__init__.py,sha256=tzD8Oh6ynPkg8ULcITWcwalLL81SIh6eztPqV9l7VGk,1162
196
- letta/server/rest_api/routers/v1/agents.py,sha256=AkoJWxn-cJEURGXBarJtasTJsldPe6vv9TFOiGpJRlY,25473
205
+ letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=xEi3nPOkrGiv3lQJbLsVtEJuFQYR1mZFvHqExJO6MDY,8982
206
+ letta/server/rest_api/routers/v1/__init__.py,sha256=kQUDemPYl4ZcOndpsexbLQRAObkuDN00ZYTnQJYiHNk,1269
207
+ letta/server/rest_api/routers/v1/agents.py,sha256=OrP-F58ca8D2uZcsj2dqHrkrcMcsdszxTUP48HOGXkc,26081
197
208
  letta/server/rest_api/routers/v1/blocks.py,sha256=oJYOpGUTd4AhKwVolVlZPIXO2EoOrBHkyi2PdrmbtmA,3888
198
209
  letta/server/rest_api/routers/v1/health.py,sha256=MoOjkydhGcJXTiuJrKIB0etVXiRMdTa51S8RQ8-50DQ,399
210
+ letta/server/rest_api/routers/v1/identities.py,sha256=CA9hhUcqcGX-5n4GTIK14ydfxEHiiTbvUS--JbkTqd8,4969
199
211
  letta/server/rest_api/routers/v1/jobs.py,sha256=pKihW12hQdFwt6tHQXs94yOMv6xotlhBB3Vl7Q5ASKQ,2738
200
212
  letta/server/rest_api/routers/v1/llms.py,sha256=lYp5URXtZk1yu_Pe-p1Wq1uQ0qeb6aWtx78rXSB7N_E,881
201
213
  letta/server/rest_api/routers/v1/organizations.py,sha256=8n-kA9LHtKImdY2xL-v7m6nYAbFWqH1vjBCJhQbv7Is,2077
@@ -208,8 +220,8 @@ letta/server/rest_api/routers/v1/tags.py,sha256=45G0cmcP-ER0OO5OanT_fGtGQfl9ZjRK
208
220
  letta/server/rest_api/routers/v1/tools.py,sha256=DD01gnqDNd5UKYCw8qZ_SV7ktOzzc73C5vbFUrIk2mk,13127
209
221
  letta/server/rest_api/routers/v1/users.py,sha256=G5DBHSkPfBgVHN2Wkm-rVYiLQAudwQczIq2Z3YLdbVo,2277
210
222
  letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
211
- letta/server/rest_api/utils.py,sha256=X7D6PsSVOAH6_irY0bgxdnS2yZ5ux-OA4eAiYqVgAPE,4438
212
- letta/server/server.py,sha256=RtgMZFEcr0kg93WOveIWA5Gyl-lFXMaFJ5AIwQytJg0,60181
223
+ letta/server/rest_api/utils.py,sha256=lOLqSWPq3yh3AzbAOxCI89Y4laXSDmIhDQ34s4VVhp8,12025
224
+ letta/server/server.py,sha256=3TjO0sef8UeQc_0efCoPT6vGz7f673KDZHwd15qKW2Q,57384
213
225
  letta/server/startup.sh,sha256=qEi6dQHJRzEzDIgnIODj-RYp-O1XstfFpc6cFLkUzVs,1576
214
226
  letta/server/static_files/assets/index-048c9598.js,sha256=mR16XppvselwKCcNgONs4L7kZEVa4OEERm4lNZYtLSk,146819
215
227
  letta/server/static_files/assets/index-0e31b727.css,sha256=SBbja96uiQVLDhDOroHgM6NSl7tS4lpJRCREgSS_hA8,7672
@@ -223,29 +235,31 @@ letta/server/ws_api/interface.py,sha256=TWl9vkcMCnLsUtgsuENZ-ku2oMDA-OUTzLh_yNRo
223
235
  letta/server/ws_api/protocol.py,sha256=5mDgpfNZn_kNwHnpt5Dsuw8gdNH298sgxTGed3etzYg,1836
224
236
  letta/server/ws_api/server.py,sha256=cBSzf-V4zT1bL_0i54OTI3cMXhTIIxqjSRF8pYjk7fg,5835
225
237
  letta/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
- letta/services/agent_manager.py,sha256=7cCFlSZVBtgc39a1MYHrmAHRDjw2DnrvYxaPS0tCyDQ,51281
227
- letta/services/block_manager.py,sha256=u56TXG46QDMbQZadDGCO7fY1vreJ69Xr_0MUF53xw4k,5519
238
+ letta/services/agent_manager.py,sha256=rS5WqtFPrPYg_1C1EgB74uABTypuSv-j-mndql2_PM4,53648
239
+ letta/services/block_manager.py,sha256=VQvaMAuIdvJcboaGK1NUznvaoPGf13uzeUDhKzN7EhY,5515
228
240
  letta/services/helpers/agent_manager_helper.py,sha256=MexqAGoc2e8Bso4_hJhBR6qyiFXtiB2MiMMqL-ur1a0,11302
229
241
  letta/services/helpers/tool_execution_helper.py,sha256=q8uSiQcX6VH_iNg5VNloZgC2JkH9lIOXBKCXYPx2Yac,6097
230
- letta/services/job_manager.py,sha256=eF5YUba8kdPi4cIK29dtD-8h1rtn4MH5ZyzdnHiBVao,13159
231
- letta/services/message_manager.py,sha256=kR32nkGJZR1SOcsVC3FM6Tx2laF7t-ty5JGi5X1v5GE,10647
232
- letta/services/organization_manager.py,sha256=h3hrknBhA3YQt90OeBzFnqjYM9NWKnk8jDKzXGm4AUg,3392
233
- letta/services/passage_manager.py,sha256=oyTFguEa5Z1JgciKHSmQkgC3kV4Q4fV-4NgUQxfxafU,8647
242
+ letta/services/identity_manager.py,sha256=oLeeqRdjh-uhZHQ8S6QeSrTpAm7NZKhzjbcXHejha_g,6781
243
+ letta/services/job_manager.py,sha256=y7P03ijWrOY1HzhphrRdeEPUQz-wHcNvoi-zrefjbuE,13155
244
+ letta/services/message_manager.py,sha256=GOjDXSyYXUbXJafFshz-4-wVyg2szV73q-f4cWp0Ogs,10643
245
+ letta/services/organization_manager.py,sha256=dhQ3cFPXWNYLfMjdahr2HsOAMJ1JtCEWj1G8Nei5MQc,3388
246
+ letta/services/passage_manager.py,sha256=mwShFO_xRaTi82fvANb_ngO0TmGaZPA9FPu8KuZ6Gd8,8643
234
247
  letta/services/per_agent_lock_manager.py,sha256=porM0cKKANQ1FvcGXOO_qM7ARk5Fgi1HVEAhXsAg9-4,546
235
- letta/services/provider_manager.py,sha256=jEal0A0XWobWH5CVfmzPtcFhsflI-sanqyg26FqpDKk,3575
236
- letta/services/sandbox_config_manager.py,sha256=MGKZsAYNICPFMZVkoEcJ9qQESZjCXQqQOpMVTALSdGo,13361
237
- letta/services/source_manager.py,sha256=0JLKIv405oS5wc6bY5k2bxxZpS9O-VwUGHVdGPbJ3e4,7676
238
- letta/services/step_manager.py,sha256=_PJUgaXyUHKCdlwt9CAmKhdeCNzKE_0_8-SRdUzpZaA,4970
248
+ letta/services/provider_manager.py,sha256=PFi029lFp2tV4p9IA27xNZ9F0olIF94R-l-dOpyEnWM,3571
249
+ letta/services/sandbox_config_manager.py,sha256=AlZFtESHfEQf3T6WEpn7-B4nZgmnoO_-FxB5FCxSqpY,13357
250
+ letta/services/source_manager.py,sha256=SE24AiPPhpvZMGDD047H3_ZDD7OM4zHbTW1JXjPEv7U,7672
251
+ letta/services/step_manager.py,sha256=lA1n3fYOHcB_5Ov5Ycp3WdAcW5hpPc1pVShI-B5Iwt0,4966
239
252
  letta/services/tool_execution_sandbox.py,sha256=mev4oCHy4B_uoXRccTirDNp_pSX_s5wbUVNz1oKrvBU,22067
240
- letta/services/tool_manager.py,sha256=9Y15q0GqnADk-tnUeWDFFsDOt_ZjwsPU2oteDVtHAF4,9572
241
- letta/services/user_manager.py,sha256=1U8BQ_-MBkEW2wnSFV_OsTwBmRAZLN8uHLFjnDjK3hA,4308
242
- letta/settings.py,sha256=fwkBQSElZuqgQB5eKKQh_Wg91Dcb4Odu9yfi8etUV6Q,6520
243
- letta/streaming_interface.py,sha256=lo2VAQRUJOdWTijwnXuKOC9uejqr2siUAEmZiQUXkj8,15710
253
+ letta/services/tool_manager.py,sha256=Q-J8mZKw3zi5Ymxy48DiwpOcv1s6rqdSkRHE6pbnzKk,9568
254
+ letta/services/user_manager.py,sha256=ScHbdJK9kNF8QXjsd3ZWGEL87n_Uyp3YwfKetOJmpHs,4304
255
+ letta/settings.py,sha256=l6jrMyIK3tqLTXhBx5rN06nEEnJh4vafxBQWhUa2WAI,6579
256
+ letta/streaming_interface.py,sha256=1vuAckIxo1p1UsXtDzE8LTUve5RoTZRdXUe-WBIYDWU,15818
244
257
  letta/streaming_utils.py,sha256=jLqFTVhUL76FeOuYk8TaRQHmPTf3HSRc2EoJwxJNK6U,11946
245
258
  letta/system.py,sha256=dnOrS2FlRMwijQnOvfrky0Lg8wEw-FUq2zzfAJOUSKA,8477
246
- letta/utils.py,sha256=E1Kfbezh_yOivlr9RniZid_uWdZkedRPrH5Vd76-Fu4,31805
247
- letta_nightly-0.6.27.dev20250220104103.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
248
- letta_nightly-0.6.27.dev20250220104103.dist-info/METADATA,sha256=J94wJ38X4dDD3XtuKzbVNytDL6fHuCc2ggUhkJQ7O5k,22203
249
- letta_nightly-0.6.27.dev20250220104103.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
250
- letta_nightly-0.6.27.dev20250220104103.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
251
- letta_nightly-0.6.27.dev20250220104103.dist-info/RECORD,,
259
+ letta/tracing.py,sha256=0uCH8j2ipTpS8Vt7bFl74sG5ckgBHy9fu-cyG9SBSsc,7464
260
+ letta/utils.py,sha256=AdHrQ2OQ3V4XhJ1LtYwbLUO71j2IJY37cIUxXPgaaRY,32125
261
+ letta_nightly-0.6.29.dev20250221033538.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
262
+ letta_nightly-0.6.29.dev20250221033538.dist-info/METADATA,sha256=-nQzzujtRWyHik1L8_JwgpCxz_s4xWr0sXN6QU5B84c,22752
263
+ letta_nightly-0.6.29.dev20250221033538.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
264
+ letta_nightly-0.6.29.dev20250221033538.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
265
+ letta_nightly-0.6.29.dev20250221033538.dist-info/RECORD,,