letta-nightly 0.6.9.dev20250120104049__py3-none-any.whl → 0.6.11.dev20250120212046__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 (35) hide show
  1. letta/__init__.py +1 -1
  2. letta/agent.py +40 -23
  3. letta/client/client.py +10 -2
  4. letta/errors.py +14 -0
  5. letta/functions/ast_parsers.py +105 -0
  6. letta/llm_api/anthropic.py +130 -82
  7. letta/llm_api/aws_bedrock.py +134 -0
  8. letta/llm_api/llm_api_tools.py +30 -7
  9. letta/orm/__init__.py +1 -0
  10. letta/orm/job.py +2 -4
  11. letta/orm/message.py +5 -1
  12. letta/orm/step.py +54 -0
  13. letta/schemas/embedding_config.py +1 -0
  14. letta/schemas/letta_message.py +24 -0
  15. letta/schemas/letta_response.py +1 -9
  16. letta/schemas/llm_config.py +1 -0
  17. letta/schemas/message.py +1 -0
  18. letta/schemas/providers.py +60 -3
  19. letta/schemas/step.py +31 -0
  20. letta/server/rest_api/app.py +21 -6
  21. letta/server/rest_api/routers/v1/agents.py +15 -2
  22. letta/server/rest_api/routers/v1/llms.py +2 -2
  23. letta/server/rest_api/routers/v1/runs.py +12 -2
  24. letta/server/server.py +9 -3
  25. letta/services/agent_manager.py +4 -3
  26. letta/services/job_manager.py +11 -13
  27. letta/services/provider_manager.py +19 -7
  28. letta/services/step_manager.py +87 -0
  29. letta/settings.py +21 -1
  30. {letta_nightly-0.6.9.dev20250120104049.dist-info → letta_nightly-0.6.11.dev20250120212046.dist-info}/METADATA +9 -6
  31. {letta_nightly-0.6.9.dev20250120104049.dist-info → letta_nightly-0.6.11.dev20250120212046.dist-info}/RECORD +34 -30
  32. letta/credentials.py +0 -149
  33. {letta_nightly-0.6.9.dev20250120104049.dist-info → letta_nightly-0.6.11.dev20250120212046.dist-info}/LICENSE +0 -0
  34. {letta_nightly-0.6.9.dev20250120104049.dist-info → letta_nightly-0.6.11.dev20250120212046.dist-info}/WHEEL +0 -0
  35. {letta_nightly-0.6.9.dev20250120104049.dist-info → letta_nightly-0.6.11.dev20250120212046.dist-info}/entry_points.txt +0 -0
letta/server/server.py CHANGED
@@ -17,7 +17,6 @@ import letta.server.utils as server_utils
17
17
  import letta.system as system
18
18
  from letta.agent import Agent, save_agent
19
19
  from letta.chat_only_agent import ChatOnlyAgent
20
- from letta.credentials import LettaCredentials
21
20
  from letta.data_sources.connectors import DataConnector, load_data
22
21
 
23
22
  # TODO use custom interface
@@ -43,6 +42,7 @@ from letta.schemas.message import Message, MessageCreate, MessageRole, MessageUp
43
42
  from letta.schemas.organization import Organization
44
43
  from letta.schemas.passage import Passage
45
44
  from letta.schemas.providers import (
45
+ AnthropicBedrockProvider,
46
46
  AnthropicProvider,
47
47
  AzureProvider,
48
48
  GoogleAIProvider,
@@ -72,6 +72,7 @@ from letta.services.per_agent_lock_manager import PerAgentLockManager
72
72
  from letta.services.provider_manager import ProviderManager
73
73
  from letta.services.sandbox_config_manager import SandboxConfigManager
74
74
  from letta.services.source_manager import SourceManager
75
+ from letta.services.step_manager import StepManager
75
76
  from letta.services.tool_execution_sandbox import ToolExecutionSandbox
76
77
  from letta.services.tool_manager import ToolManager
77
78
  from letta.services.user_manager import UserManager
@@ -271,8 +272,6 @@ class SyncServer(Server):
271
272
  # The default interface that will get assigned to agents ON LOAD
272
273
  self.default_interface_factory = default_interface_factory
273
274
 
274
- self.credentials = LettaCredentials.load()
275
-
276
275
  # Initialize the metadata store
277
276
  config = LettaConfig.load()
278
277
  if settings.letta_pg_uri_no_default:
@@ -295,6 +294,7 @@ class SyncServer(Server):
295
294
  self.job_manager = JobManager()
296
295
  self.agent_manager = AgentManager()
297
296
  self.provider_manager = ProviderManager()
297
+ self.step_manager = StepManager()
298
298
 
299
299
  # Managers that interface with parallelism
300
300
  self.per_agent_lock_manager = PerAgentLockManager()
@@ -384,6 +384,12 @@ class SyncServer(Server):
384
384
  base_url=model_settings.vllm_api_base,
385
385
  )
386
386
  )
387
+ if model_settings.aws_access_key and model_settings.aws_secret_access_key and model_settings.aws_region:
388
+ self._enabled_providers.append(
389
+ AnthropicBedrockProvider(
390
+ aws_region=model_settings.aws_region,
391
+ )
392
+ )
387
393
 
388
394
  def load_agent(self, agent_id: str, actor: User, interface: Union[AgentInterface, None] = None) -> Agent:
389
395
  """Updated method to load agents from persisted storage"""
@@ -79,9 +79,10 @@ class AgentManager:
79
79
 
80
80
  # create blocks (note: cannot be linked into the agent_id is created)
81
81
  block_ids = list(agent_create.block_ids or []) # Create a local copy to avoid modifying the original
82
- for create_block in agent_create.memory_blocks:
83
- block = self.block_manager.create_or_update_block(PydanticBlock(**create_block.model_dump()), actor=actor)
84
- block_ids.append(block.id)
82
+ if agent_create.memory_blocks:
83
+ for create_block in agent_create.memory_blocks:
84
+ block = self.block_manager.create_or_update_block(PydanticBlock(**create_block.model_dump()), actor=actor)
85
+ block_ids.append(block.id)
85
86
 
86
87
  # TODO: Remove this block once we deprecate the legacy `tools` field
87
88
  # create passed in `tools`
@@ -1,3 +1,5 @@
1
+ from functools import reduce
2
+ from operator import add
1
3
  from typing import List, Literal, Optional, Union
2
4
 
3
5
  from sqlalchemy import select
@@ -7,9 +9,9 @@ from letta.orm.enums import JobType
7
9
  from letta.orm.errors import NoResultFound
8
10
  from letta.orm.job import Job as JobModel
9
11
  from letta.orm.job_messages import JobMessage
10
- from letta.orm.job_usage_statistics import JobUsageStatistics
11
12
  from letta.orm.message import Message as MessageModel
12
13
  from letta.orm.sqlalchemy_base import AccessType
14
+ from letta.orm.step import Step
13
15
  from letta.schemas.enums import JobStatus, MessageRole
14
16
  from letta.schemas.job import Job as PydanticJob
15
17
  from letta.schemas.job import JobUpdate
@@ -193,12 +195,7 @@ class JobManager:
193
195
  self._verify_job_access(session, job_id, actor)
194
196
 
195
197
  # Get the latest usage statistics for the job
196
- latest_stats = (
197
- session.query(JobUsageStatistics)
198
- .filter(JobUsageStatistics.job_id == job_id)
199
- .order_by(JobUsageStatistics.created_at.desc())
200
- .first()
201
- )
198
+ latest_stats = session.query(Step).filter(Step.job_id == job_id).order_by(Step.created_at.desc()).all()
202
199
 
203
200
  if not latest_stats:
204
201
  return LettaUsageStatistics(
@@ -209,10 +206,10 @@ class JobManager:
209
206
  )
210
207
 
211
208
  return LettaUsageStatistics(
212
- completion_tokens=latest_stats.completion_tokens,
213
- prompt_tokens=latest_stats.prompt_tokens,
214
- total_tokens=latest_stats.total_tokens,
215
- step_count=latest_stats.step_count,
209
+ completion_tokens=reduce(add, (step.completion_tokens or 0 for step in latest_stats), 0),
210
+ prompt_tokens=reduce(add, (step.prompt_tokens or 0 for step in latest_stats), 0),
211
+ total_tokens=reduce(add, (step.total_tokens or 0 for step in latest_stats), 0),
212
+ step_count=len(latest_stats),
216
213
  )
217
214
 
218
215
  @enforce_types
@@ -239,8 +236,9 @@ class JobManager:
239
236
  # First verify job exists and user has access
240
237
  self._verify_job_access(session, job_id, actor, access=["write"])
241
238
 
242
- # Create new usage statistics entry
243
- usage_stats = JobUsageStatistics(
239
+ # Manually log step with usage data
240
+ # TODO(@caren): log step under the hood and remove this
241
+ usage_stats = Step(
244
242
  job_id=job_id,
245
243
  completion_tokens=usage.completion_tokens,
246
244
  prompt_tokens=usage.prompt_tokens,
@@ -48,9 +48,13 @@ class ProviderManager:
48
48
  def delete_provider_by_id(self, provider_id: str):
49
49
  """Delete a provider."""
50
50
  with self.session_maker() as session:
51
- # Delete from provider table
52
- provider = ProviderModel.read(db_session=session, identifier=provider_id)
53
- provider.hard_delete(session)
51
+ # Clear api key field
52
+ existing_provider = ProviderModel.read(db_session=session, identifier=provider_id)
53
+ existing_provider.api_key = None
54
+ existing_provider.update(session)
55
+
56
+ # Soft delete in provider table
57
+ existing_provider.delete(session)
54
58
 
55
59
  session.commit()
56
60
 
@@ -62,9 +66,17 @@ class ProviderManager:
62
66
  return [provider.to_pydantic() for provider in results]
63
67
 
64
68
  @enforce_types
65
- def get_anthropic_key_override(self) -> Optional[str]:
69
+ def get_anthropic_override_provider_id(self) -> Optional[str]:
70
+ """Helper function to fetch custom anthropic provider id for v0 BYOK feature"""
71
+ anthropic_provider = [provider for provider in self.list_providers() if provider.name == "anthropic"]
72
+ if len(anthropic_provider) != 0:
73
+ return anthropic_provider[0].id
74
+ return None
75
+
76
+ @enforce_types
77
+ def get_anthropic_override_key(self) -> Optional[str]:
66
78
  """Helper function to fetch custom anthropic key for v0 BYOK feature"""
67
- providers = self.list_providers(limit=1)
68
- if len(providers) == 1 and providers[0].name == "anthropic":
69
- return providers[0].api_key
79
+ anthropic_provider = [provider for provider in self.list_providers() if provider.name == "anthropic"]
80
+ if len(anthropic_provider) != 0:
81
+ return anthropic_provider[0].api_key
70
82
  return None
@@ -0,0 +1,87 @@
1
+ from typing import List, Literal, Optional
2
+
3
+ from sqlalchemy import select
4
+ from sqlalchemy.orm import Session
5
+
6
+ from letta.orm.errors import NoResultFound
7
+ from letta.orm.job import Job as JobModel
8
+ from letta.orm.sqlalchemy_base import AccessType
9
+ from letta.orm.step import Step as StepModel
10
+ from letta.schemas.openai.chat_completion_response import UsageStatistics
11
+ from letta.schemas.step import Step as PydanticStep
12
+ from letta.schemas.user import User as PydanticUser
13
+ from letta.utils import enforce_types
14
+
15
+
16
+ class StepManager:
17
+
18
+ def __init__(self):
19
+ from letta.server.server import db_context
20
+
21
+ self.session_maker = db_context
22
+
23
+ @enforce_types
24
+ def log_step(
25
+ self,
26
+ actor: PydanticUser,
27
+ provider_name: str,
28
+ model: str,
29
+ context_window_limit: int,
30
+ usage: UsageStatistics,
31
+ provider_id: Optional[str] = None,
32
+ job_id: Optional[str] = None,
33
+ ) -> PydanticStep:
34
+ step_data = {
35
+ "origin": None,
36
+ "organization_id": actor.organization_id,
37
+ "provider_id": provider_id,
38
+ "provider_name": provider_name,
39
+ "model": model,
40
+ "context_window_limit": context_window_limit,
41
+ "completion_tokens": usage.completion_tokens,
42
+ "prompt_tokens": usage.prompt_tokens,
43
+ "total_tokens": usage.total_tokens,
44
+ "job_id": job_id,
45
+ "tags": [],
46
+ "tid": None,
47
+ }
48
+ with self.session_maker() as session:
49
+ if job_id:
50
+ self._verify_job_access(session, job_id, actor, access=["write"])
51
+ new_step = StepModel(**step_data)
52
+ new_step.create(session)
53
+ return new_step.to_pydantic()
54
+
55
+ @enforce_types
56
+ def get_step(self, step_id: str) -> PydanticStep:
57
+ with self.session_maker() as session:
58
+ step = StepModel.read(db_session=session, identifier=step_id)
59
+ return step.to_pydantic()
60
+
61
+ def _verify_job_access(
62
+ self,
63
+ session: Session,
64
+ job_id: str,
65
+ actor: PydanticUser,
66
+ access: List[Literal["read", "write", "delete"]] = ["read"],
67
+ ) -> JobModel:
68
+ """
69
+ Verify that a job exists and the user has the required access.
70
+
71
+ Args:
72
+ session: The database session
73
+ job_id: The ID of the job to verify
74
+ actor: The user making the request
75
+
76
+ Returns:
77
+ The job if it exists and the user has access
78
+
79
+ Raises:
80
+ NoResultFound: If the job does not exist or user does not have access
81
+ """
82
+ job_query = select(JobModel).where(JobModel.id == job_id)
83
+ job_query = JobModel.apply_access_predicate(job_query, actor, access, AccessType.USER)
84
+ job = session.execute(job_query).scalar_one_or_none()
85
+ if not job:
86
+ raise NoResultFound(f"Job with id {job_id} does not exist or user does not have access")
87
+ return job
letta/settings.py CHANGED
@@ -35,6 +35,12 @@ class ModelSettings(BaseSettings):
35
35
  # groq
36
36
  groq_api_key: Optional[str] = None
37
37
 
38
+ # Bedrock
39
+ aws_access_key: Optional[str] = None
40
+ aws_secret_access_key: Optional[str] = None
41
+ aws_region: Optional[str] = None
42
+ bedrock_anthropic_version: Optional[str] = "bedrock-2023-05-31"
43
+
38
44
  # anthropic
39
45
  anthropic_api_key: Optional[str] = None
40
46
 
@@ -74,6 +80,20 @@ cors_origins = [
74
80
  "http://localhost:4200",
75
81
  ]
76
82
 
83
+ # read pg_uri from ~/.letta/pg_uri or set to none, this is to support Letta Desktop
84
+ default_pg_uri = None
85
+
86
+ ## check if --use-file-pg-uri is passed
87
+ import sys
88
+
89
+ if "--use-file-pg-uri" in sys.argv:
90
+ try:
91
+ with open(Path.home() / ".letta/pg_uri", "r") as f:
92
+ default_pg_uri = f.read()
93
+ print("Read pg_uri from ~/.letta/pg_uri")
94
+ except FileNotFoundError:
95
+ pass
96
+
77
97
 
78
98
  class Settings(BaseSettings):
79
99
  model_config = SettingsConfigDict(env_prefix="letta_", extra="ignore")
@@ -88,7 +108,7 @@ class Settings(BaseSettings):
88
108
  pg_password: Optional[str] = None
89
109
  pg_host: Optional[str] = None
90
110
  pg_port: Optional[int] = None
91
- pg_uri: Optional[str] = None # option to specify full uri
111
+ pg_uri: Optional[str] = default_pg_uri # option to specify full uri
92
112
  pg_pool_size: int = 20 # Concurrent connections
93
113
  pg_max_overflow: int = 10 # Overflow limit
94
114
  pg_pool_timeout: int = 30 # Seconds to wait for a connection
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-nightly
3
- Version: 0.6.9.dev20250120104049
3
+ Version: 0.6.11.dev20250120212046
4
4
  Summary: Create LLM agents with long-term memory and custom tools
5
5
  License: Apache License
6
6
  Author: Letta Team
@@ -12,6 +12,7 @@ Classifier: Programming Language :: Python :: 3.10
12
12
  Classifier: Programming Language :: Python :: 3.11
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Provides-Extra: all
15
+ Provides-Extra: bedrock
15
16
  Provides-Extra: cloud-tool-sandbox
16
17
  Provides-Extra: dev
17
18
  Provides-Extra: external-tools
@@ -20,9 +21,11 @@ Provides-Extra: qdrant
20
21
  Provides-Extra: server
21
22
  Provides-Extra: tests
22
23
  Requires-Dist: alembic (>=1.13.3,<2.0.0)
24
+ Requires-Dist: anthropic (>=0.43.0,<0.44.0)
23
25
  Requires-Dist: autoflake (>=2.3.0,<3.0.0) ; extra == "dev" or extra == "all"
24
26
  Requires-Dist: black[jupyter] (>=24.2.0,<25.0.0) ; extra == "dev" or extra == "all"
25
27
  Requires-Dist: brotli (>=1.1.0,<2.0.0)
28
+ Requires-Dist: colorama (>=0.4.6,<0.5.0)
26
29
  Requires-Dist: composio-core (>=0.6.15,<0.7.0)
27
30
  Requires-Dist: composio-langchain (>=0.6.15,<0.7.0)
28
31
  Requires-Dist: datasets (>=2.14.6,<3.0.0) ; extra == "dev" or extra == "all"
@@ -38,10 +41,10 @@ Requires-Dist: html2text (>=2020.1.16,<2021.0.0)
38
41
  Requires-Dist: httpx (>=0.28.0,<0.29.0)
39
42
  Requires-Dist: httpx-sse (>=0.4.0,<0.5.0)
40
43
  Requires-Dist: isort (>=5.13.2,<6.0.0) ; extra == "dev" or extra == "all"
41
- Requires-Dist: jinja2 (>=3.1.4,<4.0.0)
44
+ Requires-Dist: jinja2 (>=3.1.5,<4.0.0)
42
45
  Requires-Dist: langchain (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "all"
43
46
  Requires-Dist: langchain-community (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "all"
44
- Requires-Dist: letta_client (>=0.1.15,<0.2.0)
47
+ Requires-Dist: letta_client (>=0.1.16,<0.2.0)
45
48
  Requires-Dist: llama-index (>=0.12.2,<0.13.0)
46
49
  Requires-Dist: llama-index-embeddings-openai (>=0.3.1,<0.4.0)
47
50
  Requires-Dist: locust (>=2.31.5,<3.0.0) ; extra == "dev" or extra == "all"
@@ -62,20 +65,20 @@ Requires-Dist: pyright (>=1.1.347,<2.0.0) ; extra == "dev" or extra == "all"
62
65
  Requires-Dist: pytest-asyncio (>=0.23.2,<0.24.0) ; extra == "dev" or extra == "all"
63
66
  Requires-Dist: pytest-order (>=1.2.0,<2.0.0) ; extra == "dev" or extra == "all"
64
67
  Requires-Dist: python-box (>=7.1.1,<8.0.0)
65
- Requires-Dist: python-multipart (>=0.0.9,<0.0.10)
68
+ Requires-Dist: python-multipart (>=0.0.19,<0.0.20)
66
69
  Requires-Dist: pytz (>=2023.3.post1,<2024.0)
67
70
  Requires-Dist: pyyaml (>=6.0.1,<7.0.0)
68
71
  Requires-Dist: qdrant-client (>=1.9.1,<2.0.0) ; extra == "qdrant"
69
72
  Requires-Dist: questionary (>=2.0.1,<3.0.0)
70
73
  Requires-Dist: rich (>=13.9.4,<14.0.0)
71
74
  Requires-Dist: sentry-sdk[fastapi] (==2.19.1)
72
- Requires-Dist: setuptools (>=68.2.2,<69.0.0)
75
+ Requires-Dist: setuptools (>=70,<71)
73
76
  Requires-Dist: sqlalchemy (>=2.0.25,<3.0.0)
74
77
  Requires-Dist: sqlalchemy-json (>=0.7.0,<0.8.0)
75
78
  Requires-Dist: sqlalchemy-utils (>=0.41.2,<0.42.0)
76
79
  Requires-Dist: sqlmodel (>=0.0.16,<0.0.17)
77
80
  Requires-Dist: tqdm (>=4.66.1,<5.0.0)
78
- Requires-Dist: typer[all] (>=0.9.0,<0.10.0)
81
+ Requires-Dist: typer (>=0.12,<1.0)
79
82
  Requires-Dist: uvicorn (>=0.24.0.post1,<0.25.0) ; extra == "server" or extra == "all"
80
83
  Requires-Dist: websockets (>=12.0,<13.0) ; extra == "server" or extra == "all"
81
84
  Requires-Dist: wikipedia (>=1.4.0,<2.0.0) ; extra == "external-tools" or extra == "tests" or extra == "all"
@@ -1,6 +1,6 @@
1
- letta/__init__.py,sha256=dZ6eX45fWEiZbLPIX4FvSuKAarufQRaBCt6C65P0lg4,992
1
+ letta/__init__.py,sha256=QaqMJBz4atxaXsgFGXhOht6gYc1g_HKntbHwsiwep3s,993
2
2
  letta/__main__.py,sha256=6Hs2PV7EYc5Tid4g4OtcLXhqVHiNYTGzSBdoOnW2HXA,29
3
- letta/agent.py,sha256=zNRG_gZq2FxM8mWEcKYS4QcQzU2hYloWrZJzmIVPNNU,56747
3
+ letta/agent.py,sha256=m4g4gbx4Y0SFPsGzNi6lmkwVSWPfvh2bYoQTKf1CL6A,57854
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=ECqJS7KzXOsNkJc9mv7reKbcxBI_PKP_PQyk95tsT1Y,4761
@@ -8,17 +8,17 @@ letta/cli/cli.py,sha256=_uGKM-RvGLGf7y8iWjkLgLTxIw7uWrdCdL5ETUOCkUs,16472
8
8
  letta/cli/cli_config.py,sha256=I5J8D0OpsDDXCTOWFqjmxQuZCGrC1oCuNbVkrKwg4VM,8544
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=-9TyJ3Tj-FbdrOfQ1DszBDEInsZ-Zhi1QzLvWfhwdf0,135235
11
+ letta/client/client.py,sha256=EPLzfx_05J4ihIJtKwQ5rI_ncPxeK9-zLNyYaQ-ubg4,135712
12
12
  letta/client/streaming.py,sha256=Hz2j_hQZG2g7uhucjx2p3ybf2qjPT-vmIGCHGo87iCQ,4677
13
13
  letta/client/utils.py,sha256=VCGV-op5ZSmurd4yw7Vhf93XDQ0BkyBT8qsuV7EqfiU,2859
14
14
  letta/config.py,sha256=JFGY4TWW0Wm5fTbZamOwWqk5G8Nn-TXyhgByGoAqy2c,12375
15
15
  letta/constants.py,sha256=qkH98awgWUW1g9Qpb-IWqVULcLHH-lpblWeUZdLDzkY,7528
16
- letta/credentials.py,sha256=D9mlcPsdDWlIIXQQD8wSPE9M_QvsRrb0p3LB5i9OF5Q,5806
17
16
  letta/data_sources/connectors.py,sha256=L-WL-znjaRstMwSunHf3xDywjvgnbjnUR9rUpL6Ypo0,7023
18
17
  letta/data_sources/connectors_helper.py,sha256=2TQjCt74fCgT5sw1AP8PalDEk06jPBbhrPG4HVr-WLs,3371
19
18
  letta/embeddings.py,sha256=VgqbUqYL6oTuLOKGOd_8swTRMYIpRTIWJbBthjT8eR8,8838
20
- letta/errors.py,sha256=bzHXK2co-cQOUWCjKjgphEJ-_-BihO3wTfwGfK570_Q,5093
19
+ letta/errors.py,sha256=6fQXg2unP-2fo3R7db0ayKKWlD2XMusOPNi9TgJplCg,5558
21
20
  letta/functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
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=sNY5oavQ5ZmO5GpAtnm8hkWokqwqB8ClPB2VOL-B8MM,4719
24
24
  letta/functions/function_sets/multi_agent.py,sha256=kF1k-MccbRRvzH0Y93Dw5FjqwgToOwlhFCNRGWcQMMw,3851
@@ -32,13 +32,14 @@ letta/humans/examples/basic.txt,sha256=Lcp8YESTWvOJgO4Yf_yyQmgo5bKakeB1nIVrwEGG6
32
32
  letta/humans/examples/cs_phd.txt,sha256=9C9ZAV_VuG7GB31ksy3-_NAyk8rjE6YtVOkhp08k1xw,297
33
33
  letta/interface.py,sha256=JszHyhIK34dpV0h5KL0CD1W4svh4eijaHGgfOYyZOhg,12755
34
34
  letta/llm_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
- letta/llm_api/anthropic.py,sha256=iq2iwEWEa53T7WX9ROyvzVzBgqfJP32tPqBdFBAHpG0,14151
35
+ letta/llm_api/anthropic.py,sha256=4FZpIst8pBGTslL4uIfNLCo0xXjMfvQ4Z2v7DmYVIN0,14841
36
+ letta/llm_api/aws_bedrock.py,sha256=-ms9tdROu8DLrEZJ9XgL-IyIOU_0UJKuhfRbjLs0_Gc,3838
36
37
  letta/llm_api/azure_openai.py,sha256=Y1HKPog1XzM_f7ujUK_Gv2zQkoy5pU-1bKiUnvSxSrs,6297
37
38
  letta/llm_api/azure_openai_constants.py,sha256=oXtKrgBFHf744gyt5l1thILXgyi8NDNUrKEa2GGGpjw,278
38
39
  letta/llm_api/cohere.py,sha256=H5kzYH_aQAnGNq7lip7XyKGLEOKC318Iw0_tiTP6kc4,14772
39
40
  letta/llm_api/google_ai.py,sha256=MIX4nmyC6448AvyPPSE8JZ_tzSpKJTArkZSfQGGoy0M,17920
40
41
  letta/llm_api/helpers.py,sha256=iP9EswPflaRzsmLqQuMGt1OCUQgPrPq1xTjrqmMKPiA,13675
41
- letta/llm_api/llm_api_tools.py,sha256=DnWsyowH_re5Zvd8-XNfGvB7KkjqcfdkqjmlVvM7_BU,18444
42
+ letta/llm_api/llm_api_tools.py,sha256=-cLTeYwhwA6Dy9Io_W3DYrZ-gvYaAtp3TY2Snh1L13o,19512
42
43
  letta/llm_api/mistral.py,sha256=fHdfD9ug-rQIk2qn8tRKay1U6w9maF11ryhKi91FfXM,1593
43
44
  letta/llm_api/openai.py,sha256=vEQOk_8DA6-qhj3KFk5gcIlE4kAuf6307IVljn8xRRM,25390
44
45
  letta/local_llm/README.md,sha256=hFJyw5B0TU2jrh9nb0zGZMgdH-Ei1dSRfhvPQG_NSoU,168
@@ -85,7 +86,7 @@ letta/offline_memory_agent.py,sha256=Wc2_je3oXxXcaiPPNPxc78A3IXVsiK6Q7X3t_SrlHck
85
86
  letta/openai_backcompat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
87
  letta/openai_backcompat/openai_object.py,sha256=Y1ZS1sATP60qxJiOsjOP3NbwSzuzvkNAvb3DeuhM5Uk,13490
87
88
  letta/orm/__all__.py,sha256=2gh2MZTkA3Hw67VWVKK3JIStJOqTeLdpCvYSVYNeEDA,692
88
- letta/orm/__init__.py,sha256=ku3Trl5wwTfcv-VqabDjcCrN_EqU2LzBVJyZ4yK733o,810
89
+ letta/orm/__init__.py,sha256=wPokP-EvOri2LhKLjmYVtI_FWchaxgFvJeF_NAfqJIo,842
89
90
  letta/orm/agent.py,sha256=X-u2qUlI3O6RqGlZVWKSDK722YaovIHpuGy5yy9DQDE,6099
90
91
  letta/orm/agents_tags.py,sha256=dYSnHz4IWBjyOiQ4RJomX3P0QN76JTlEZEw5eJM6Emg,925
91
92
  letta/orm/base.py,sha256=VjvxF9TwKF9Trf8BJkDgf7D6KrWWopOkUiF18J3IElk,3071
@@ -95,10 +96,10 @@ letta/orm/custom_columns.py,sha256=dBYJn3yc1BIy7ZntIFfq9oEdQav-u0r412C2HyDeUPU,5
95
96
  letta/orm/enums.py,sha256=oCvGwxK8heYtBV7wtxOQGlBZ2rocWLlKXP6elkqm0IM,384
96
97
  letta/orm/errors.py,sha256=Se0Guz-gqi-D36NUWSh7AP9zTVCSph9KgZh_trwng4o,734
97
98
  letta/orm/file.py,sha256=7_p7LxityP3NQZVURQYG0kgcZhEkVuMN0Fj4h9YOe1w,1780
98
- letta/orm/job.py,sha256=T5UafHWQ6AT3ZF7hrFqlpadOcNo4C-yMU3ufal1Zwog,2178
99
+ letta/orm/job.py,sha256=hTW6INcSc_snMiv8pxCNTAQZACrVXxGMJ-XhCToo6Fk,2088
99
100
  letta/orm/job_messages.py,sha256=SgwaYPYwwAC3dBtl9Xye_TWUl9H_-m95S95TTcfPyOg,1245
100
101
  letta/orm/job_usage_statistics.py,sha256=gR-lp-ZEBDK8TIFEgwFSDt382l6CFLWHciB-KCISbCQ,1380
101
- letta/orm/message.py,sha256=367Pypm0cTUvgWiWVuirlzR0Zr9K9WR4Putb2UNYFuA,1949
102
+ letta/orm/message.py,sha256=cMnHbZALDgcUHiVkXs8xnMK61LYD5v2cw3Q-P3FFJ5Y,2229
102
103
  letta/orm/mixins.py,sha256=9c79Kfr-Z1hL-SDYKeoptx_yMTbBwJJBo9nrKEzSDAc,1622
103
104
  letta/orm/organization.py,sha256=b12iASuskPnG2yHyFh8p2BFROkoqMPEYUFMuVcFPCHs,2897
104
105
  letta/orm/passage.py,sha256=tm5YhUozLR9hN7odGCqCniTl-3GDiFNz3LWAxullaGA,3132
@@ -108,6 +109,7 @@ letta/orm/source.py,sha256=xM3Iwy3xzYdoZja9BZrQwyAnPf5iksaQOs8HlNCvb_c,2031
108
109
  letta/orm/sources_agents.py,sha256=Ik_PokCBrXRd9wXWomeNeb8EtLUwjb9VMZ8LWXqpK5A,473
109
110
  letta/orm/sqlalchemy_base.py,sha256=yMb-gGVuy1KKUqcVC42xCG8GpXnjtFT9AKpvGHOgr7E,19169
110
111
  letta/orm/sqlite_functions.py,sha256=JCScKiRlYCKxy9hChQ8wsk4GMKknZE24MunnG3fM1Gw,4255
112
+ letta/orm/step.py,sha256=6ygEnkQSIMxNH08Om0a-UK-f2E66QSpp9GdGm7mGjFg,2853
111
113
  letta/orm/tool.py,sha256=dJi56QksOCYsz2RvXyGQODyuHmx0rEoU3E1wHt_jPOI,2293
112
114
  letta/orm/tools_agents.py,sha256=r6t-V21w2_mG8n38zuUb5jOi_3hRxsjgezsLA4sg0m4,626
113
115
  letta/orm/user.py,sha256=rK5N5ViDxmesZMqVVHB7FcQNpcSoM-hB42MyI6q3MnI,1004
@@ -140,19 +142,19 @@ letta/prompts/system/memgpt_offline_memory_chat.txt,sha256=ituh7gDuio7nC2UKFB7Gp
140
142
  letta/pytest.ini,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
143
  letta/schemas/agent.py,sha256=ABPLu0bIiYE1h91TwqLV0WZdnmT548lbLGki6tXEdxY,11812
142
144
  letta/schemas/block.py,sha256=pVDH8jr5r-oxdX4cK9dX2wXyLBzgGKQOBWOzqZSeBog,5944
143
- letta/schemas/embedding_config.py,sha256=8K2EGVQ26F3zjY1Wj3v_hsrA-1qICshVMGRlKPSATfg,3354
145
+ letta/schemas/embedding_config.py,sha256=RkLbUorFkMWr1tPkn6c2aHrnICjWTbhPY86tIncwXyA,3373
144
146
  letta/schemas/enums.py,sha256=f8SVJqb0dzhlNCBN2SgeM4ZMHX5LMyhln1SCJAgXeow,1068
145
147
  letta/schemas/environment_variables.py,sha256=ZTMH_2YMzDQc62eRnHRh1Mmmcvfj8d0aXGDAAOnTlIA,2446
146
148
  letta/schemas/file.py,sha256=ChN2CWzLI2TT9WLItcfElEH0E8b7kzPylF2OQBr6Beg,1550
147
149
  letta/schemas/health.py,sha256=zT6mYovvD17iJRuu2rcaQQzbEEYrkwvAE9TB7iU824c,139
148
150
  letta/schemas/job.py,sha256=CXjCvYj0afe8TivOYroL9DiHelDqJzxI9u_fFORvmV4,1521
149
151
  letta/schemas/letta_base.py,sha256=cfnDxsys0mnGQjocBUL61SmjSZlktWl62vr0vuCaQCo,3773
150
- letta/schemas/letta_message.py,sha256=SpAxAEFQa-JMzxIQ5cqz0TENB5S9WsdrTAHGUJBLCQQ,8040
152
+ letta/schemas/letta_message.py,sha256=ZifuFk_5H4xsSyRRrKARhPGc0mB25HNgHqZp69fXrEQ,9120
151
153
  letta/schemas/letta_request.py,sha256=YRLjzGHQusj0NIue2AjCN-6j0cvxZ_DJQKjgTpT3fPc,1355
152
- letta/schemas/letta_response.py,sha256=1Z7nDm5fPSWeiGVTtA-JkoLOaFbeyE4FZPK2kGlQ_Uw,7610
153
- letta/schemas/llm_config.py,sha256=86NqwEYers64PHJpEGL-NV1h-Qv_7XcPjERxi23IEcs,4584
154
+ letta/schemas/letta_response.py,sha256=yL0w-cdUazgEqg6_F4LJz2tugKNAZsB83Gr5jfXwa5U,7124
155
+ letta/schemas/llm_config.py,sha256=HQrwXk6LGJVoOmZwTUXfK0jwVSeX9kCsL-GUcv7loWQ,4603
154
156
  letta/schemas/memory.py,sha256=dWF1AWhQKEp1MJ6yz8wVYrWNsmA2ADREAz2lS3d8I6c,10229
155
- letta/schemas/message.py,sha256=H_QS-gE1p7TjC-R-vxPayCar-CkVqy2BFuS-tJlxAPY,34062
157
+ letta/schemas/message.py,sha256=VJb987frMGIuOvx3H4u5LQpdUhhEXyalX08fPb8ZLTs,34171
156
158
  letta/schemas/openai/chat_completion_request.py,sha256=AOIwgbN3CZKVqkuXeMHeSa53u4h0wVq69t3T_LJ0vIE,3389
157
159
  letta/schemas/openai/chat_completion_response.py,sha256=ub-oVSyLpuJd-5_yzCSIRR8tD3GM83IeDO1c1uAATa4,3970
158
160
  letta/schemas/openai/chat_completions.py,sha256=V0ZPIIk-ds3O6MAkNHMz8zh1hqMFSPrTcYr88WDYzWE,3588
@@ -160,10 +162,11 @@ letta/schemas/openai/embedding_response.py,sha256=WKIZpXab1Av7v6sxKG8feW3ZtpQUNo
160
162
  letta/schemas/openai/openai.py,sha256=Hilo5BiLAGabzxCwnwfzK5QrWqwYD8epaEKFa4Pwndk,7970
161
163
  letta/schemas/organization.py,sha256=WWbUWVSp_VQRFwWN4fdHg1yObiV6x9rZnvIY8x5BPs0,746
162
164
  letta/schemas/passage.py,sha256=t_bSI8hpEuh-mj8bV8qOiIA1tAgyjGKrZMVe9l5oIaY,3675
163
- letta/schemas/providers.py,sha256=t8i-JiCmxmUs9byd-rkfztQtztmMTmPU1kzKP3ctiIQ,27646
165
+ letta/schemas/providers.py,sha256=8sEM3J_KgHkYy7zy8IAsYgltqGMHt15nlNEdK6MpOTo,29668
164
166
  letta/schemas/run.py,sha256=OyuAXXjL96ftOeLdqkiIKi9csGeewy-pN5SgWk-vYGg,2124
165
167
  letta/schemas/sandbox_config.py,sha256=v32V5T73X-VxhDk0g_1RGniK985KMvg2xyLVi1dvMQY,4215
166
168
  letta/schemas/source.py,sha256=B1VbaDJV-EGPv1nQXwCx_RAzeAJd50UqP_1m1cIRT8c,2854
169
+ letta/schemas/step.py,sha256=cCmDChQMndy7aMJGH0Z19VbzJkAeFTYuA0cJpzjW2g0,1928
167
170
  letta/schemas/tool.py,sha256=E1MSm2THSyQ5LMEDDm0zdJa7AyweC3rEeDPNIuYr1nY,11138
168
171
  letta/schemas/tool_rule.py,sha256=LJwi1T474-3zbFGiW7_fegyfduC3F2u7cdlBsV0U_IU,1679
169
172
  letta/schemas/usage.py,sha256=8oYRH-JX0PfjIu2zkT5Uu3UWQ7Unnz_uHiO8hRGI4m0,912
@@ -172,7 +175,7 @@ letta/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
175
  letta/server/constants.py,sha256=yAdGbLkzlOU_dLTx0lKDmAnj0ZgRXCEaIcPJWO69eaE,92
173
176
  letta/server/generate_openapi_schema.sh,sha256=0OtBhkC1g6CobVmNEd_m2B6sTdppjbJLXaM95icejvE,371
174
177
  letta/server/rest_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
175
- letta/server/rest_api/app.py,sha256=xa34qWm8rpcb_pYnOL9k7sQ0qZAeVhH32uvbb6Xnu8g,11007
178
+ letta/server/rest_api/app.py,sha256=Frxt6N7gbUs_BiPHZNJk0c8vjW6GzBfA0uEiN7dswPs,11850
176
179
  letta/server/rest_api/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
177
180
  letta/server/rest_api/auth/index.py,sha256=fQBGyVylGSRfEMLQ17cZzrHd5Y1xiVylvPqH5Rl-lXQ,1378
178
181
  letta/server/rest_api/auth_token.py,sha256=725EFEIiNj4dh70hrSd94UysmFD8vcJLrTRfNHkzxDo,774
@@ -185,14 +188,14 @@ letta/server/rest_api/routers/openai/assistants/schemas.py,sha256=ZWUrmkvDMeywlx
185
188
  letta/server/rest_api/routers/openai/chat_completions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
189
  letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=Sx_D1WvMDuI42Bt66_w4_h3-eT4hyn5pBPEn5yYlKc4,4600
187
190
  letta/server/rest_api/routers/v1/__init__.py,sha256=bXEZzmvHNX7N11NDwsxyajjci7yxP-2dYIvbeJi33vA,1070
188
- letta/server/rest_api/routers/v1/agents.py,sha256=u5aNvoSZ8FdjkQAHqiSgEfvYVjY3_I9GKgQJRu4fnuQ,26751
191
+ letta/server/rest_api/routers/v1/agents.py,sha256=SLl-S6yO-sSoGM7VDp_eEOA4WzR700n1_tSOJX9l3_Y,27128
189
192
  letta/server/rest_api/routers/v1/blocks.py,sha256=IJ2pppwNooaUjIwyBALnKL4sJ8idW8cVJlY-VH_J9HY,4803
190
193
  letta/server/rest_api/routers/v1/health.py,sha256=pKCuVESlVOhGIb4VC4K-H82eZqfghmT6kvj2iOkkKuc,401
191
194
  letta/server/rest_api/routers/v1/jobs.py,sha256=-tEyuIxlXZfPREeMks-sRzHwhKE2xxgzbXeEbBAS2Q8,2730
192
- letta/server/rest_api/routers/v1/llms.py,sha256=TcyvSx6MEM3je5F4DysL7ligmssL_pFlJaaO4uL95VY,877
195
+ letta/server/rest_api/routers/v1/llms.py,sha256=lYp5URXtZk1yu_Pe-p1Wq1uQ0qeb6aWtx78rXSB7N_E,881
193
196
  letta/server/rest_api/routers/v1/organizations.py,sha256=tyqVzXTpMtk3sKxI3Iz4aS6RhbGEbXDzFBB_CpW18v4,2080
194
197
  letta/server/rest_api/routers/v1/providers.py,sha256=ftYyPgqFinfPbjCS4y77xQaq2SPFj8k8wwaErieAppU,2445
195
- letta/server/rest_api/routers/v1/runs.py,sha256=u7_4QBcSCIoNdV6PiBA90vu8AOmx-bDOwHlARW0tQr8,4880
198
+ letta/server/rest_api/routers/v1/runs.py,sha256=pp-5vaIpe-mVu3ryjZVaxYNgGYIjxiya0TXglyLTXH0,5099
196
199
  letta/server/rest_api/routers/v1/sandbox_configs.py,sha256=DJ8mz7HsXCuGypNaxTgoMW8xR1kMOwdVnon00srRdCo,5266
197
200
  letta/server/rest_api/routers/v1/sources.py,sha256=EJ-VCqiKtaiYuivZrWx1gYSNUKnWJuduSm-L_2ljhLc,9913
198
201
  letta/server/rest_api/routers/v1/tags.py,sha256=-AyPJ7kCvQNRgyUE5eQGWcRz58oUXhpiMIm6j1ryjEg,880
@@ -200,7 +203,7 @@ letta/server/rest_api/routers/v1/tools.py,sha256=rGw3hDUFYmY_kmJw5hsQWnBOWQqJFdf
200
203
  letta/server/rest_api/routers/v1/users.py,sha256=EBQe9IfCG3kzHpKmotz4yVGZioXz3SCSRy5yEhJK8hU,2293
201
204
  letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
202
205
  letta/server/rest_api/utils.py,sha256=dsjkZzgo9Rk3fjUf1ajjiiql1eeO5DAzmXprttI7bJU,3993
203
- letta/server/server.py,sha256=cdF7NRnOr-lL5-QN948alrX70sRLUqS4buhtPYZs4G0,56740
206
+ letta/server/server.py,sha256=fhgtAieokRiX9aS18n_6FgPJOzJoFpLGNXRRyjz6bc8,57054
204
207
  letta/server/startup.sh,sha256=722uKJWB2C4q3vjn39De2zzPacaZNw_1fN1SpLGjKIo,1569
205
208
  letta/server/static_files/assets/index-048c9598.js,sha256=mR16XppvselwKCcNgONs4L7kZEVa4OEERm4lNZYtLSk,146819
206
209
  letta/server/static_files/assets/index-0e31b727.css,sha256=SBbja96uiQVLDhDOroHgM6NSl7tS4lpJRCREgSS_hA8,7672
@@ -214,27 +217,28 @@ letta/server/ws_api/interface.py,sha256=TWl9vkcMCnLsUtgsuENZ-ku2oMDA-OUTzLh_yNRo
214
217
  letta/server/ws_api/protocol.py,sha256=M_-gM5iuDBwa1cuN2IGNCG5GxMJwU2d3XW93XALv9s8,1821
215
218
  letta/server/ws_api/server.py,sha256=cBSzf-V4zT1bL_0i54OTI3cMXhTIIxqjSRF8pYjk7fg,5835
216
219
  letta/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
217
- letta/services/agent_manager.py,sha256=vQZwXV4esZwzds9Z39vDIjygZeigx_Hxll4_sRvETP0,46140
220
+ letta/services/agent_manager.py,sha256=Z2Q6ahrbF-cT-EjVTZIM-ajEv3a8Ycns_2c0bvw8cos,46191
218
221
  letta/services/block_manager.py,sha256=HUj9HKW2LvAsENEsgCO3Pf3orvSy6XOimev38VKmRZ8,4929
219
222
  letta/services/helpers/agent_manager_helper.py,sha256=ytNViS18ubRbj90yZ2B3jf1on5pzxT9xaQOpCLFA-ss,10451
220
- letta/services/job_manager.py,sha256=-tTcFFXrd8UHwDTCjmb8nWO0mdHGJt2H4ExhZ1P6udI,12777
223
+ letta/services/job_manager.py,sha256=0YdpM4344AVTTMd9hhDWXKr4OxIzLDBtcY91_qZoXcY,12842
221
224
  letta/services/message_manager.py,sha256=a7U0MfgaNAdjbls7ZtUdS7eJ6prJaMkE0NIHgtzh4us,8552
222
225
  letta/services/organization_manager.py,sha256=hJI86_FErkRaW-VLBBmvmmciIXN59LN0mEMm78C36kQ,3331
223
226
  letta/services/passage_manager.py,sha256=Lq1caspE1VGmT7vlsUOuJVRflJZ122qfG0dmNGm_6o8,7691
224
227
  letta/services/per_agent_lock_manager.py,sha256=porM0cKKANQ1FvcGXOO_qM7ARk5Fgi1HVEAhXsAg9-4,546
225
- letta/services/provider_manager.py,sha256=QsiKXnl-TuVLpL1keAkkMmCbJj4KehGgqu-SZACgbg0,2926
228
+ letta/services/provider_manager.py,sha256=I_4sY0DQ9zr7gOMH1PqaCCIf_1kjbyLS_FbECVYTbFU,3500
226
229
  letta/services/sandbox_config_manager.py,sha256=YWJES09KX5POXwL-hijaf87zW3az3Ioh8lWDeZYPY6k,13290
227
230
  letta/services/source_manager.py,sha256=ZtLQikeJjwAq49f0d4WxUzyUN3LZBqWCZI4a-AzEMWQ,7643
231
+ letta/services/step_manager.py,sha256=RngrVs2Sd_oDZv_UoQ1ToLY0RnH-6wS1DqIBPRm-Imc,2961
228
232
  letta/services/tool_execution_sandbox.py,sha256=yKHSSVeIVXg7-11BXDu1nfjCuIPu19YD4hx6ZuMBgEY,23119
229
233
  letta/services/tool_manager.py,sha256=CdI6aYQZr2Ar9-iDSMnjMcLIh8n8y_gkKte6FnUy9uE,8164
230
234
  letta/services/user_manager.py,sha256=oqLF9C4mGbN0TaGj7wMpb2RH2bUg6OJJcdyaWv370rQ,4272
231
- letta/settings.py,sha256=5R0VeNaoIz5KWPtsCk3LWHPCI9b70ifIiHd9p0y92Ak,4114
235
+ letta/settings.py,sha256=LJAMa0APYBPn9oFtpAGotH10drrzaoFGL88RFoc8QTI,4733
232
236
  letta/streaming_interface.py,sha256=lo2VAQRUJOdWTijwnXuKOC9uejqr2siUAEmZiQUXkj8,15710
233
237
  letta/streaming_utils.py,sha256=329fsvj1ZN0r0LpQtmMPZ2vSxkDBIUUwvGHZFkjm2I8,11745
234
238
  letta/system.py,sha256=buKYPqG5n2x41hVmWpu6JUpyd7vTWED9Km2_M7dLrvk,6960
235
239
  letta/utils.py,sha256=FQgWuYF0CTCIyH41rVy_rD5_ATPIlBZ24ovBtf3T1tI,33291
236
- letta_nightly-0.6.9.dev20250120104049.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
237
- letta_nightly-0.6.9.dev20250120104049.dist-info/METADATA,sha256=eb-o9buw1FWILc-TSIXx_G96gvoUWDZS6XVYzL50d18,21742
238
- letta_nightly-0.6.9.dev20250120104049.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
239
- letta_nightly-0.6.9.dev20250120104049.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
240
- letta_nightly-0.6.9.dev20250120104049.dist-info/RECORD,,
240
+ letta_nightly-0.6.11.dev20250120212046.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
241
+ letta_nightly-0.6.11.dev20250120212046.dist-info/METADATA,sha256=Z21zU_CpTlyI4NA1xkzTaSJLfRn7P2gMWF45VYhB1pY,21836
242
+ letta_nightly-0.6.11.dev20250120212046.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
243
+ letta_nightly-0.6.11.dev20250120212046.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
244
+ letta_nightly-0.6.11.dev20250120212046.dist-info/RECORD,,