letta-nightly 0.6.4.dev20241216104246__py3-none-any.whl → 0.6.4.dev20241217104233__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.

@@ -1,12 +1,13 @@
1
- from datetime import datetime
2
1
  from typing import List, Optional
3
-
2
+ from datetime import datetime
4
3
  import numpy as np
5
4
 
5
+ from sqlalchemy import select, union_all, literal
6
+
6
7
  from letta.constants import MAX_EMBEDDING_DIM
7
8
  from letta.embeddings import embedding_model, parse_and_chunk_text
8
9
  from letta.orm.errors import NoResultFound
9
- from letta.orm.passage import Passage as PassageModel
10
+ from letta.orm.passage import AgentPassage, SourcePassage
10
11
  from letta.schemas.agent import AgentState
11
12
  from letta.schemas.embedding_config import EmbeddingConfig
12
13
  from letta.schemas.passage import Passage as PydanticPassage
@@ -14,6 +15,7 @@ from letta.schemas.user import User as PydanticUser
14
15
  from letta.utils import enforce_types
15
16
 
16
17
 
18
+
17
19
  class PassageManager:
18
20
  """Manager class to handle business logic related to Passages."""
19
21
 
@@ -26,14 +28,51 @@ class PassageManager:
26
28
  def get_passage_by_id(self, passage_id: str, actor: PydanticUser) -> Optional[PydanticPassage]:
27
29
  """Fetch a passage by ID."""
28
30
  with self.session_maker() as session:
29
- passage = PassageModel.read(db_session=session, identifier=passage_id, actor=actor)
30
- return passage.to_pydantic()
31
+ # Try source passages first
32
+ try:
33
+ passage = SourcePassage.read(db_session=session, identifier=passage_id, actor=actor)
34
+ return passage.to_pydantic()
35
+ except NoResultFound:
36
+ # Try archival passages
37
+ try:
38
+ passage = AgentPassage.read(db_session=session, identifier=passage_id, actor=actor)
39
+ return passage.to_pydantic()
40
+ except NoResultFound:
41
+ raise NoResultFound(f"Passage with id {passage_id} not found in database.")
31
42
 
32
43
  @enforce_types
33
44
  def create_passage(self, pydantic_passage: PydanticPassage, actor: PydanticUser) -> PydanticPassage:
34
- """Create a new passage."""
45
+ """Create a new passage in the appropriate table based on whether it has agent_id or source_id."""
46
+ # Common fields for both passage types
47
+ data = pydantic_passage.model_dump()
48
+ common_fields = {
49
+ "id": data.get("id"),
50
+ "text": data["text"],
51
+ "embedding": data["embedding"],
52
+ "embedding_config": data["embedding_config"],
53
+ "organization_id": data["organization_id"],
54
+ "metadata_": data.get("metadata_", {}),
55
+ "is_deleted": data.get("is_deleted", False),
56
+ "created_at": data.get("created_at", datetime.utcnow()),
57
+ }
58
+
59
+ if "agent_id" in data and data["agent_id"]:
60
+ assert not data.get("source_id"), "Passage cannot have both agent_id and source_id"
61
+ agent_fields = {
62
+ "agent_id": data["agent_id"],
63
+ }
64
+ passage = AgentPassage(**common_fields, **agent_fields)
65
+ elif "source_id" in data and data["source_id"]:
66
+ assert not data.get("agent_id"), "Passage cannot have both agent_id and source_id"
67
+ source_fields = {
68
+ "source_id": data["source_id"],
69
+ "file_id": data.get("file_id"),
70
+ }
71
+ passage = SourcePassage(**common_fields, **source_fields)
72
+ else:
73
+ raise ValueError("Passage must have either agent_id or source_id")
74
+
35
75
  with self.session_maker() as session:
36
- passage = PassageModel(**pydantic_passage.model_dump())
37
76
  passage.create(session, actor=actor)
38
77
  return passage.to_pydantic()
39
78
 
@@ -93,14 +132,23 @@ class PassageManager:
93
132
  raise ValueError("Passage ID must be provided.")
94
133
 
95
134
  with self.session_maker() as session:
96
- # Fetch existing message from database
97
- curr_passage = PassageModel.read(
98
- db_session=session,
99
- identifier=passage_id,
100
- actor=actor,
101
- )
102
- if not curr_passage:
103
- raise ValueError(f"Passage with id {passage_id} does not exist.")
135
+ # Try source passages first
136
+ try:
137
+ curr_passage = SourcePassage.read(
138
+ db_session=session,
139
+ identifier=passage_id,
140
+ actor=actor,
141
+ )
142
+ except NoResultFound:
143
+ # Try agent passages
144
+ try:
145
+ curr_passage = AgentPassage.read(
146
+ db_session=session,
147
+ identifier=passage_id,
148
+ actor=actor,
149
+ )
150
+ except NoResultFound:
151
+ raise ValueError(f"Passage with id {passage_id} does not exist.")
104
152
 
105
153
  # Update the database record with values from the provided record
106
154
  update_data = passage.model_dump(exclude_unset=True, exclude_none=True)
@@ -113,104 +161,32 @@ class PassageManager:
113
161
 
114
162
  @enforce_types
115
163
  def delete_passage_by_id(self, passage_id: str, actor: PydanticUser) -> bool:
116
- """Delete a passage."""
164
+ """Delete a passage from either source or archival passages."""
117
165
  if not passage_id:
118
166
  raise ValueError("Passage ID must be provided.")
119
167
 
120
168
  with self.session_maker() as session:
169
+ # Try source passages first
121
170
  try:
122
- passage = PassageModel.read(db_session=session, identifier=passage_id, actor=actor)
171
+ passage = SourcePassage.read(db_session=session, identifier=passage_id, actor=actor)
123
172
  passage.hard_delete(session, actor=actor)
173
+ return True
124
174
  except NoResultFound:
125
- raise ValueError(f"Passage with id {passage_id} not found.")
126
-
127
- @enforce_types
128
- def list_passages(
129
- self,
130
- actor: PydanticUser,
131
- agent_id: Optional[str] = None,
132
- file_id: Optional[str] = None,
133
- cursor: Optional[str] = None,
134
- limit: Optional[int] = 50,
135
- query_text: Optional[str] = None,
136
- start_date: Optional[datetime] = None,
137
- end_date: Optional[datetime] = None,
138
- ascending: bool = True,
139
- source_id: Optional[str] = None,
140
- embed_query: bool = False,
141
- embedding_config: Optional[EmbeddingConfig] = None,
142
- ) -> List[PydanticPassage]:
143
- """List passages with pagination."""
144
- with self.session_maker() as session:
145
- filters = {"organization_id": actor.organization_id}
146
- if agent_id:
147
- filters["agent_id"] = agent_id
148
- if file_id:
149
- filters["file_id"] = file_id
150
- if source_id:
151
- filters["source_id"] = source_id
152
-
153
- embedded_text = None
154
- if embed_query:
155
- assert embedding_config is not None
156
-
157
- # Embed the text
158
- embedded_text = embedding_model(embedding_config).get_text_embedding(query_text)
159
-
160
- # Pad the embedding with zeros
161
- embedded_text = np.array(embedded_text)
162
- embedded_text = np.pad(embedded_text, (0, MAX_EMBEDDING_DIM - embedded_text.shape[0]), mode="constant").tolist()
163
-
164
- results = PassageModel.list(
165
- db_session=session,
166
- cursor=cursor,
167
- start_date=start_date,
168
- end_date=end_date,
169
- limit=limit,
170
- ascending=ascending,
171
- query_text=query_text if not embedded_text else None,
172
- query_embedding=embedded_text,
173
- **filters,
174
- )
175
- return [p.to_pydantic() for p in results]
176
-
177
- @enforce_types
178
- def size(self, actor: PydanticUser, agent_id: Optional[str] = None, **kwargs) -> int:
179
- """Get the total count of messages with optional filters.
180
-
181
- Args:
182
- actor : The user requesting the count
183
- agent_id: The agent ID
184
- """
185
- with self.session_maker() as session:
186
- return PassageModel.size(db_session=session, actor=actor, agent_id=agent_id, **kwargs)
175
+ # Try archival passages
176
+ try:
177
+ passage = AgentPassage.read(db_session=session, identifier=passage_id, actor=actor)
178
+ passage.hard_delete(session, actor=actor)
179
+ return True
180
+ except NoResultFound:
181
+ raise NoResultFound(f"Passage with id {passage_id} not found.")
187
182
 
188
183
  def delete_passages(
189
184
  self,
190
185
  actor: PydanticUser,
191
- agent_id: Optional[str] = None,
192
- file_id: Optional[str] = None,
193
- start_date: Optional[datetime] = None,
194
- end_date: Optional[datetime] = None,
195
- limit: Optional[int] = 50,
196
- cursor: Optional[str] = None,
197
- query_text: Optional[str] = None,
198
- source_id: Optional[str] = None,
186
+ passages: List[PydanticPassage],
199
187
  ) -> bool:
200
-
201
- passages = self.list_passages(
202
- actor=actor,
203
- agent_id=agent_id,
204
- file_id=file_id,
205
- cursor=cursor,
206
- limit=limit,
207
- start_date=start_date,
208
- end_date=end_date,
209
- query_text=query_text,
210
- source_id=source_id,
211
- )
212
-
213
188
  # TODO: This is very inefficient
214
189
  # TODO: We should have a base `delete_all_matching_filters`-esque function
215
190
  for passage in passages:
216
191
  self.delete_passage_by_id(passage_id=passage.id, actor=actor)
192
+ return True
letta/settings.py CHANGED
@@ -91,7 +91,7 @@ class Settings(BaseSettings):
91
91
  return f"postgresql+pg8000://letta:letta@localhost:5432/letta"
92
92
 
93
93
  # add this property to avoid being returned the default
94
- # reference: https://github.com/cpacker/Letta/issues/1362
94
+ # reference: https://github.com/letta-ai/letta/issues/1362
95
95
  @property
96
96
  def letta_pg_uri_no_default(self) -> str:
97
97
  if self.pg_uri:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-nightly
3
- Version: 0.6.4.dev20241216104246
3
+ Version: 0.6.4.dev20241217104233
4
4
  Summary: Create LLM agents with long-term memory and custom tools
5
5
  License: Apache License
6
6
  Author: Letta Team
@@ -167,7 +167,7 @@ Once the Letta server is running, you can access it via port `8283` (e.g. sendin
167
167
  > [!NOTE]
168
168
  > The Letta ADE is a graphical user interface for creating, deploying, interacting and observing with your Letta agents.
169
169
  >
170
- > For example, if you're running a Letta server to power an end-user application (such as a customer support chatbot), you can use the ADE to test, debug, and observe the agents in your server. You can also use the ADE as a general chat interface to interacting with your Letta agents.
170
+ > For example, if you're running a Letta server to power an end-user application (such as a customer support chatbot), you can use the ADE to test, debug, and observe the agents in your server. You can also use the ADE as a general chat interface to interact with your Letta agents.
171
171
 
172
172
  <p align="center">
173
173
  <picture>
@@ -221,7 +221,7 @@ No, you can install Letta using `pip` (via `pip install -U letta`), as well as f
221
221
 
222
222
  Letta gives your agents persistence (they live indefinitely) by storing all your agent data in a database. Letta is designed to be used with a [PostgreSQL](https://en.wikipedia.org/wiki/PostgreSQL) (the world's most popular database), however, it is not possible to install PostgreSQL via `pip`, so the `pip` install of Letta defaults to using [SQLite](https://www.sqlite.org/). If you have a PostgreSQL instance running on your own computer, you can still connect Letta (installed via `pip`) to PostgreSQL by setting the environment variable `LETTA_PG_URI`.
223
223
 
224
- **Database migrations are not officially supported for Letta when using SQLite**, so you would like to ensure that if you're able to upgrade to the latest Letta version and migrate your Letta agents data, make sure that you're using PostgreSQL as your Letta database backend. Full compatability table below:
224
+ **Database migrations are not officially supported for Letta when using SQLite**, so if you would like to ensure that you're able to upgrade to the latest Letta version and migrate your Letta agents data, make sure that you're using PostgreSQL as your Letta database backend. Full compatability table below:
225
225
 
226
226
  | Installation method | Start server command | Database backend | Data migrations supported? |
227
227
  |---|---|---|---|
@@ -293,7 +293,7 @@ Hit enter to begin (will request first Letta message)
293
293
  ## ⚡ Quickstart (pip)
294
294
 
295
295
  > [!WARNING]
296
- > **Database migrations are not officially support with `SQLite`**
296
+ > **Database migrations are not officially supported with `SQLite`**
297
297
  >
298
298
  > When you install Letta with `pip`, the default database backend is `SQLite` (you can still use an external `postgres` service with your `pip` install of Letta by setting `LETTA_PG_URI`).
299
299
  >
@@ -303,7 +303,7 @@ Hit enter to begin (will request first Letta message)
303
303
 
304
304
  <summary>View instructions for installing with pip</summary>
305
305
 
306
- You can also install Letta with `pip`, will default to using `SQLite` for the database backends (whereas Docker will default to using `postgres`).
306
+ You can also install Letta with `pip`, which will default to using `SQLite` for the database backends (whereas Docker will default to using `postgres`).
307
307
 
308
308
  ### Step 1 - Install Letta using `pip`
309
309
  ```sh
@@ -377,7 +377,7 @@ Letta is an open source project built by over a hundred contributors. There are
377
377
 
378
378
  * **Contribute to the project**: Interested in contributing? Start by reading our [Contribution Guidelines](https://github.com/cpacker/MemGPT/tree/main/CONTRIBUTING.md).
379
379
  * **Ask a question**: Join our community on [Discord](https://discord.gg/letta) and direct your questions to the `#support` channel.
380
- * **Report ssues or suggest features**: Have an issue or a feature request? Please submit them through our [GitHub Issues page](https://github.com/cpacker/MemGPT/issues).
380
+ * **Report issues or suggest features**: Have an issue or a feature request? Please submit them through our [GitHub Issues page](https://github.com/cpacker/MemGPT/issues).
381
381
  * **Explore the roadmap**: Curious about future developments? View and comment on our [project roadmap](https://github.com/cpacker/MemGPT/issues/1533).
382
382
  * **Join community events**: Stay updated with the [event calendar](https://lu.ma/berkeley-llm-meetup) or follow our [Twitter account](https://twitter.com/Letta_AI).
383
383
 
@@ -1,6 +1,6 @@
1
1
  letta/__init__.py,sha256=35NM-KIYubYvjLNsP6WHh70k7F5yDmwZ7x0E7Qm0dwg,1014
2
2
  letta/__main__.py,sha256=6Hs2PV7EYc5Tid4g4OtcLXhqVHiNYTGzSBdoOnW2HXA,29
3
- letta/agent.py,sha256=yWsjhxIAVLfHLBotXpVOJ5Svvh3g8TY0jlIQFv_e0A4,78418
3
+ letta/agent.py,sha256=UI6_FobXC95kamzQXx8mrx4C0lH9ASnIez7MHW9YNHE,77498
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=3wBCzddcfF6IMbPdDtTZFze5-HJSYxHd8w6jkkSwzsw,4628
@@ -19,11 +19,11 @@ letta/data_sources/connectors_helper.py,sha256=2TQjCt74fCgT5sw1AP8PalDEk06jPBbhr
19
19
  letta/embeddings.py,sha256=XyecUdJaG3ENi5v3wAexVcgpG2g7_oTEEYLgUpm-Zvs,9080
20
20
  letta/errors.py,sha256=Voy_BP0W_M816-vWudKLBlgydRufPPA-Q2PNd-SvZYc,3897
21
21
  letta/functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- letta/functions/function_sets/base.py,sha256=DxHFODrqEOepjsbWBrwHNqnM_b3AfvNhPCUiaOVDDzU,9599
22
+ letta/functions/function_sets/base.py,sha256=_zXCIPgSefTSt-tYOSi-EP5jWlnFbT5m2sHWdfVInPc,9693
23
23
  letta/functions/function_sets/extras.py,sha256=Jik3UiDqYTm4Lam1XPTvuVjvgUHwIAhopsnbmVhGMBg,4732
24
24
  letta/functions/functions.py,sha256=evH6GKnIJwVVre1Xre2gaSIqREv4eNM4DiWOhn8PMqg,3299
25
25
  letta/functions/helpers.py,sha256=fJo4gPvWpkvR7jn0HucRorz4VlpYVqmYsiX1RetnnSY,8569
26
- letta/functions/schema_generator.py,sha256=Y0rQjJBI8Z5fSKmT71EGXtHpIvNb3dMM5X00TP89tlY,19330
26
+ letta/functions/schema_generator.py,sha256=YtjN1S9eKrhmE9Q442jt2WOH5JrWPwBM-jAA_peqbaU,19276
27
27
  letta/helpers/__init__.py,sha256=p0luQ1Oe3Skc6sH4O58aHHA3Qbkyjifpuq0DZ1GAY0U,59
28
28
  letta/helpers/tool_rule_solver.py,sha256=YCwawbRUQw10ZVR17WYXo8b5roxdGe-B5nNVMqlAgBE,4826
29
29
  letta/humans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -44,7 +44,7 @@ letta/local_llm/README.md,sha256=hFJyw5B0TU2jrh9nb0zGZMgdH-Ei1dSRfhvPQG_NSoU,168
44
44
  letta/local_llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
45
  letta/local_llm/chat_completion_proxy.py,sha256=SiohxsjGTku4vOryOZx7I0t0xoO_sUuhXgoe62fKq3c,12995
46
46
  letta/local_llm/constants.py,sha256=GIu0184EIiOLEqGeupLUYQvkgT_imIjLg3T-KM9TcFM,1125
47
- letta/local_llm/function_parser.py,sha256=BlNsGo1VzyfY5KdF_RwjRQNOWIsaudo7o37u1W5eg0s,2626
47
+ letta/local_llm/function_parser.py,sha256=0P6xn2Dk0jMoYK90NACfNZqx_ymRPBy3VLq9lal-mLQ,2627
48
48
  letta/local_llm/grammars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
49
  letta/local_llm/grammars/gbnf_grammar_generator.py,sha256=zrATMMTZ3Trhg3egnk7N7p5qwH90hmfT_TVV7tjabGI,56377
50
50
  letta/local_llm/grammars/json.gbnf,sha256=LNnIFYaChKuE7GU9H7tLThVi8vFnZNzrFJYBU7_HVsY,667
@@ -85,8 +85,8 @@ letta/offline_memory_agent.py,sha256=swCkuUB8IsSfMFGr41QTwlKo63s6JOFMgiaB59FFw6o
85
85
  letta/openai_backcompat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
86
  letta/openai_backcompat/openai_object.py,sha256=Y1ZS1sATP60qxJiOsjOP3NbwSzuzvkNAvb3DeuhM5Uk,13490
87
87
  letta/orm/__all__.py,sha256=2gh2MZTkA3Hw67VWVKK3JIStJOqTeLdpCvYSVYNeEDA,692
88
- letta/orm/__init__.py,sha256=FJUULjCVe3OUtjTbRjAqz7bdPZz6ZoquUkTI5GhEij4,665
89
- letta/orm/agent.py,sha256=qyYr-3qFU_PkiaGdGChgMWkfhGGZddOXgubkUsJSuj4,4944
88
+ letta/orm/__init__.py,sha256=TVs1_QQAa8fBOOVJvqU4FDdqvL6-1AqIuvIuOHNoL1E,698
89
+ letta/orm/agent.py,sha256=NpqDEPHfC1mM_pcMi16_XInKFPPiHsSACmJIAcUFcVs,5787
90
90
  letta/orm/agents_tags.py,sha256=dYSnHz4IWBjyOiQ4RJomX3P0QN76JTlEZEw5eJM6Emg,925
91
91
  letta/orm/base.py,sha256=K_LpNUURbsj44ycHbzvNXG_n8pBOjf1YvDaikIPDpQA,2716
92
92
  letta/orm/block.py,sha256=U2fOXdab9ynQscOqzUo3xv1a_GjqHLIgoNSZq-U0mYg,3308
@@ -94,16 +94,16 @@ letta/orm/blocks_agents.py,sha256=W0dykl9OchAofSuAYZD5zNmhyMabPr9LTJrz-I3A0m4,98
94
94
  letta/orm/custom_columns.py,sha256=EEiPx9AuMI4JeLmGAOD8L_XWh4JwQB166zBJHuJmQS0,4891
95
95
  letta/orm/enums.py,sha256=KfHcFt_fR6GUmSlmfsa-TetvmuRxGESNve8MStRYW64,145
96
96
  letta/orm/errors.py,sha256=nv1HnF3z4-u9m_g7SO5TO5u2nmJN677_n8F0iIjluUI,460
97
- letta/orm/file.py,sha256=xUhWGBiYeOG0xL_-N2lzk135Rhm2IEXLPTw1wdgeyPw,1659
97
+ letta/orm/file.py,sha256=0qfqmBFizwtYriCz_qrshjxw3A9lMaRFKtwsZecviyo,1765
98
98
  letta/orm/job.py,sha256=If-qSTJW4t5h-6Jolw3tS3-xMZEaPIbXe3S0GMf_FXI,1102
99
99
  letta/orm/message.py,sha256=yWf46-adgYGqhxjn_QREW19jvVjYU0eD11uwlVSrdT4,1490
100
- letta/orm/mixins.py,sha256=xXPpOBvq5XuxiPOHS1aSc6j1UVpxookOCXMLnrxI6cM,1783
101
- letta/orm/organization.py,sha256=26k9Ga4zMdNwFq0KQJXypf7kQf-WKXa6n3AObEptwYY,2086
102
- letta/orm/passage.py,sha256=wMiCDVtB0qbUBA-nwIyun-tBe_kIi8ULm87BaMhW6to,2131
100
+ letta/orm/mixins.py,sha256=fBT4WjKDfDgGkkOHD8lFAaofDKElTLOx3oM1d6yQHSk,1620
101
+ letta/orm/organization.py,sha256=PSu9pHBT_YYdZo7Z7AZBBM4veOzD7x2H2NYN4SjD82E,2519
102
+ letta/orm/passage.py,sha256=fsETrGtmiGI45N5Rc2pMLy-9Mzggn6FZ-fRwI-0x-Hg,3249
103
103
  letta/orm/sandbox_config.py,sha256=PCMHE-eJPzBT-90OYtXjEMRF4f9JB8AJIGETE7bu-f0,2870
104
- letta/orm/source.py,sha256=oSJTJE5z-aF-SjSWVqkGgw_hT5bKPH91NMWVPnD4DiE,1521
104
+ letta/orm/source.py,sha256=SlX08BnoJYMh34cGTuPbo2kraCuXSy25xGdNWb7d7DQ,1782
105
105
  letta/orm/sources_agents.py,sha256=q5Wf5TFNI9KH6cGW93roNhvFD3n39UE2bYQhnSJwlME,433
106
- letta/orm/sqlalchemy_base.py,sha256=aBUWccVS5W-TiLeBoIKukCtpcWLU4pN71wvr5VbKfxw,17474
106
+ letta/orm/sqlalchemy_base.py,sha256=lP3KVyafy1SX5Q95mdBgmszjd1uufD-OnBX6H0G_PyU,17508
107
107
  letta/orm/sqlite_functions.py,sha256=PVJXVw_e3cC5yIWkfsCP_yBjuXwIniLEGdXP6lx6Wgs,4380
108
108
  letta/orm/tool.py,sha256=qvDul85Gq0XORx6gyMGk0As3C1bSt9nASqezdPOikQ4,2216
109
109
  letta/orm/tools_agents.py,sha256=r6t-V21w2_mG8n38zuUb5jOi_3hRxsjgezsLA4sg0m4,626
@@ -130,15 +130,15 @@ letta/prompts/system/memgpt_convo_only.txt,sha256=0cmlDNtjZ_YlUVElzM4gzwCh16uwVB
130
130
  letta/prompts/system/memgpt_doc.txt,sha256=AsT55NOORoH-K-p0fxklrDRZ3qHs4MIKMuR-M4SSU4E,4768
131
131
  letta/prompts/system/memgpt_gpt35_extralong.txt,sha256=FheNhYoIzNz6qnJKhVquZVSMj3HduC48reFaX7Pf7ig,5046
132
132
  letta/prompts/system/memgpt_intuitive_knowledge.txt,sha256=sA7c3urYqREVnSBI81nTGImXAekqC0Fxc7RojFqud1g,2966
133
- letta/prompts/system/memgpt_modified_chat.txt,sha256=HOaPVurEftD8KsuwsclDgE2afIfklMjxhuSO96q1-6I,4656
134
- letta/prompts/system/memgpt_modified_o1.txt,sha256=AxxYVjYLZwpZ6yfifh1SuPtwlJGWTcTVzw53QbkN-Ao,5492
133
+ letta/prompts/system/memgpt_modified_chat.txt,sha256=F_yD4ZcR4aGDE3Z98tI7e609GYekY-fEYomNsCcuV6o,4656
134
+ letta/prompts/system/memgpt_modified_o1.txt,sha256=objnDgnxpF3-MmU28ZqZ7-TOG8UlHBM_HMyAdSDWK88,5492
135
135
  letta/prompts/system/memgpt_offline_memory.txt,sha256=rWEJeF-6aiinjkJM9hgLUYCmlEcC_HekYB1bjEUYq6M,2460
136
136
  letta/prompts/system/memgpt_offline_memory_chat.txt,sha256=ituh7gDuio7nC2UKFB7GpBq6crxb8bYedQfJ0ADoPgg,3949
137
137
  letta/providers.py,sha256=0j6WPRn70WNSOjWS7smhTI3ZZOlfVAVF0ZFcrdQDmMY,25321
138
138
  letta/pytest.ini,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
139
  letta/schemas/agent.py,sha256=amul3_5fVcut0wB9_wnuAjYpWe-ERAHuMpDZUQcOD4E,8715
140
140
  letta/schemas/block.py,sha256=pVDH8jr5r-oxdX4cK9dX2wXyLBzgGKQOBWOzqZSeBog,5944
141
- letta/schemas/embedding_config.py,sha256=1kD6NpiXeH4roVumxqDAKk7xt8SpXGWNhZs_XXUSlEU,2855
141
+ letta/schemas/embedding_config.py,sha256=u6n-MjUgLfKeDCMdG8f_7qCxJBxo0I8d3KIggmhwjfA,3236
142
142
  letta/schemas/enums.py,sha256=F396hXs57up4Jqj1vwWVknMpoVo7MkccVBALvKGHPpE,1032
143
143
  letta/schemas/file.py,sha256=ChN2CWzLI2TT9WLItcfElEH0E8b7kzPylF2OQBr6Beg,1550
144
144
  letta/schemas/health.py,sha256=zT6mYovvD17iJRuu2rcaQQzbEEYrkwvAE9TB7iU824c,139
@@ -156,7 +156,7 @@ letta/schemas/openai/chat_completions.py,sha256=V0ZPIIk-ds3O6MAkNHMz8zh1hqMFSPrT
156
156
  letta/schemas/openai/embedding_response.py,sha256=WKIZpXab1Av7v6sxKG8feW3ZtpQUNosmLVSuhXYa_xU,357
157
157
  letta/schemas/openai/openai.py,sha256=Hilo5BiLAGabzxCwnwfzK5QrWqwYD8epaEKFa4Pwndk,7970
158
158
  letta/schemas/organization.py,sha256=d2oN3IK2HeruEHKXwIzCbJ3Fxdi_BEe9JZ8J9aDbHwQ,698
159
- letta/schemas/passage.py,sha256=HeplPyKzcy4d8DLnjfIVukXRMHMZdGkerQY65RN70FI,3682
159
+ letta/schemas/passage.py,sha256=t_bSI8hpEuh-mj8bV8qOiIA1tAgyjGKrZMVe9l5oIaY,3675
160
160
  letta/schemas/sandbox_config.py,sha256=d-eCsU7oLAAnzZbVgZsAV3O6LN16H2vmSh-Drik9jmw,5609
161
161
  letta/schemas/source.py,sha256=B1VbaDJV-EGPv1nQXwCx_RAzeAJd50UqP_1m1cIRT8c,2854
162
162
  letta/schemas/tool.py,sha256=_9_JkGSlIn2PCbyJ18aQrNueZgxHFUT093GcJSWYqT4,10346
@@ -167,7 +167,7 @@ letta/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
167
  letta/server/constants.py,sha256=yAdGbLkzlOU_dLTx0lKDmAnj0ZgRXCEaIcPJWO69eaE,92
168
168
  letta/server/generate_openapi_schema.sh,sha256=0OtBhkC1g6CobVmNEd_m2B6sTdppjbJLXaM95icejvE,371
169
169
  letta/server/rest_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
- letta/server/rest_api/app.py,sha256=LwZYglpFvvLerAPTtPSVHWT-LzyMyEbl6Fe8GGoOVfI,9967
170
+ letta/server/rest_api/app.py,sha256=ZINnNkdR3SV6rtzAYrsvXX2FQPNuD1yOSrkxGPuauJM,10408
171
171
  letta/server/rest_api/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
172
  letta/server/rest_api/auth/index.py,sha256=fQBGyVylGSRfEMLQ17cZzrHd5Y1xiVylvPqH5Rl-lXQ,1378
173
173
  letta/server/rest_api/auth_token.py,sha256=725EFEIiNj4dh70hrSd94UysmFD8vcJLrTRfNHkzxDo,774
@@ -191,8 +191,8 @@ letta/server/rest_api/routers/v1/sources.py,sha256=bLvxyYBOLx1VD5YPuoCBrQrua0Aru
191
191
  letta/server/rest_api/routers/v1/tools.py,sha256=wG-9pUyQa8b9sIk7mG8qPu_mcVGH44B8JmIKfI3NQ1U,11767
192
192
  letta/server/rest_api/routers/v1/users.py,sha256=EBQe9IfCG3kzHpKmotz4yVGZioXz3SCSRy5yEhJK8hU,2293
193
193
  letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
194
- letta/server/rest_api/utils.py,sha256=6Z0T0kHIwDAgTIFh38Q1JQ_nhANgdqXcSlsuY41pL6M,3158
195
- letta/server/server.py,sha256=-i_AvHqUX3PJYORqouh9QylyLkePGoHDZhqNpKVo9rM,61787
194
+ letta/server/rest_api/utils.py,sha256=5GO52-3EehRFZPDkvk4pUoHa0GZXvbPuQsmX298gbJg,3905
195
+ letta/server/server.py,sha256=8WO6ozUrl4K_zdiOmjFWTZsv6xwZhbY4KVrtpllyNCk,58609
196
196
  letta/server/startup.sh,sha256=722uKJWB2C4q3vjn39De2zzPacaZNw_1fN1SpLGjKIo,1569
197
197
  letta/server/static_files/assets/index-048c9598.js,sha256=mR16XppvselwKCcNgONs4L7kZEVa4OEERm4lNZYtLSk,146819
198
198
  letta/server/static_files/assets/index-0e31b727.css,sha256=DjG3J3RSFLcinzoisOYYLiyTAIe5Uaxge3HE-DmQIsU,7688
@@ -204,15 +204,15 @@ letta/server/ws_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
204
204
  letta/server/ws_api/example_client.py,sha256=95AA5UFgTlNJ0FUQkLxli8dKNx48MNm3eWGlSgKaWEk,4064
205
205
  letta/server/ws_api/interface.py,sha256=TWl9vkcMCnLsUtgsuENZ-ku2oMDA-OUTzLh_yNRoMa4,4120
206
206
  letta/server/ws_api/protocol.py,sha256=M_-gM5iuDBwa1cuN2IGNCG5GxMJwU2d3XW93XALv9s8,1821
207
- letta/server/ws_api/server.py,sha256=8t8E2YmHuqKaC-AY4E4EXHUstNb5SpabVKgBRAtJ8wU,5834
207
+ letta/server/ws_api/server.py,sha256=cBSzf-V4zT1bL_0i54OTI3cMXhTIIxqjSRF8pYjk7fg,5835
208
208
  letta/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
209
- letta/services/agent_manager.py,sha256=T_HnaqdR1odJksF20rsbYI2QDZfBZD8DcmS6CLJSLCY,16759
209
+ letta/services/agent_manager.py,sha256=eYXiL5MetvHf0s82fGPFd49JKKTYmp3qA_hE1gQWHyk,30523
210
210
  letta/services/block_manager.py,sha256=HUj9HKW2LvAsENEsgCO3Pf3orvSy6XOimev38VKmRZ8,4929
211
211
  letta/services/helpers/agent_manager_helper.py,sha256=4AoJJI3ELDZrfhx38vc2OwgQflb7mkdppucln0MkgYg,3457
212
212
  letta/services/job_manager.py,sha256=FrkSXloke48CZKuzlYdysxM5gKWoTu7FRigPrs_YW4A,3645
213
213
  letta/services/message_manager.py,sha256=ucFJLbK835YSfEENoxdKB3wPZgO-NYFO9EvDV0W-sc0,7682
214
214
  letta/services/organization_manager.py,sha256=hJI86_FErkRaW-VLBBmvmmciIXN59LN0mEMm78C36kQ,3331
215
- letta/services/passage_manager.py,sha256=J1PPy1HNVqB1HBy0V5xcxAuj_paU_djeEX89aI9SXGc,8229
215
+ letta/services/passage_manager.py,sha256=3wR9ZV3nIkJ-oSywA2SVR2yLoNe2Nv5WyfaLtoNN5i8,7867
216
216
  letta/services/per_agent_lock_manager.py,sha256=porM0cKKANQ1FvcGXOO_qM7ARk5Fgi1HVEAhXsAg9-4,546
217
217
  letta/services/sandbox_config_manager.py,sha256=USTXwEEWexKRZjng4NepP4_eetrxCJ5n16cl2AHJ_VM,13220
218
218
  letta/services/source_manager.py,sha256=ZtLQikeJjwAq49f0d4WxUzyUN3LZBqWCZI4a-AzEMWQ,7643
@@ -220,13 +220,13 @@ letta/services/tool_execution_sandbox.py,sha256=XaP3-Bsw1TJ-6btFdWJ_DwOnX6QOxE9o
220
220
  letta/services/tool_manager.py,sha256=lfrfWyxiFUWcEf-nATHs7r76XWutMYbOPyePs543ZOo,7681
221
221
  letta/services/tool_sandbox_env/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
222
222
  letta/services/user_manager.py,sha256=oqLF9C4mGbN0TaGj7wMpb2RH2bUg6OJJcdyaWv370rQ,4272
223
- letta/settings.py,sha256=o3eydtE_NrNz5GJ37VPQPXZri-qlz671PxFIJIzveRU,3712
223
+ letta/settings.py,sha256=72WZ1KdXkMNJfraaK9jZJQx16Rhi_VSf2mcLuFKfX_4,3713
224
224
  letta/streaming_interface.py,sha256=_FPUWy58j50evHcpXyd7zB1wWqeCc71NCFeWh_TBvnw,15736
225
225
  letta/streaming_utils.py,sha256=329fsvj1ZN0r0LpQtmMPZ2vSxkDBIUUwvGHZFkjm2I8,11745
226
226
  letta/system.py,sha256=buKYPqG5n2x41hVmWpu6JUpyd7vTWED9Km2_M7dLrvk,6960
227
227
  letta/utils.py,sha256=Z2OOxSJbiLSlcGzYiX9gBCv-jfkDjew_J_qaOrLIyx4,32947
228
- letta_nightly-0.6.4.dev20241216104246.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
229
- letta_nightly-0.6.4.dev20241216104246.dist-info/METADATA,sha256=9q9RQmnxHP44OykqiY4VnDQRoy_hNVFRRi6CWV1IPf0,21689
230
- letta_nightly-0.6.4.dev20241216104246.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
231
- letta_nightly-0.6.4.dev20241216104246.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
232
- letta_nightly-0.6.4.dev20241216104246.dist-info/RECORD,,
228
+ letta_nightly-0.6.4.dev20241217104233.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
229
+ letta_nightly-0.6.4.dev20241217104233.dist-info/METADATA,sha256=OSirAVVNOZTfu8Wc_RNo_0pMhhdg3CyduV0nHUNbw4M,21695
230
+ letta_nightly-0.6.4.dev20241217104233.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
231
+ letta_nightly-0.6.4.dev20241217104233.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
232
+ letta_nightly-0.6.4.dev20241217104233.dist-info/RECORD,,