letta-nightly 0.11.7.dev20250915104130__py3-none-any.whl → 0.11.7.dev20250916104104__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.
Files changed (64) hide show
  1. letta/functions/function_sets/multi_agent.py +1 -1
  2. letta/functions/helpers.py +1 -1
  3. letta/prompts/gpt_system.py +13 -15
  4. letta/prompts/system_prompts/__init__.py +27 -0
  5. letta/prompts/{system/memgpt_chat.txt → system_prompts/memgpt_chat.py} +2 -0
  6. letta/prompts/{system/memgpt_generate_tool.txt → system_prompts/memgpt_generate_tool.py} +4 -2
  7. letta/prompts/{system/memgpt_v2_chat.txt → system_prompts/memgpt_v2_chat.py} +2 -0
  8. letta/prompts/{system/react.txt → system_prompts/react.py} +2 -0
  9. letta/prompts/{system/sleeptime_doc_ingest.txt → system_prompts/sleeptime_doc_ingest.py} +2 -0
  10. letta/prompts/{system/sleeptime_v2.txt → system_prompts/sleeptime_v2.py} +2 -0
  11. letta/prompts/{system/summary_system_prompt.txt → system_prompts/summary_system_prompt.py} +2 -0
  12. letta/prompts/{system/voice_chat.txt → system_prompts/voice_chat.py} +2 -0
  13. letta/prompts/{system/voice_sleeptime.txt → system_prompts/voice_sleeptime.py} +2 -0
  14. letta/prompts/{system/workflow.txt → system_prompts/workflow.py} +2 -0
  15. letta/server/rest_api/dependencies.py +37 -0
  16. letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +4 -3
  17. letta/server/rest_api/routers/v1/agents.py +106 -103
  18. letta/server/rest_api/routers/v1/blocks.py +44 -20
  19. letta/server/rest_api/routers/v1/embeddings.py +3 -3
  20. letta/server/rest_api/routers/v1/folders.py +107 -47
  21. letta/server/rest_api/routers/v1/groups.py +52 -32
  22. letta/server/rest_api/routers/v1/identities.py +110 -21
  23. letta/server/rest_api/routers/v1/internal_templates.py +28 -13
  24. letta/server/rest_api/routers/v1/jobs.py +12 -12
  25. letta/server/rest_api/routers/v1/llms.py +6 -8
  26. letta/server/rest_api/routers/v1/messages.py +14 -14
  27. letta/server/rest_api/routers/v1/organizations.py +1 -1
  28. letta/server/rest_api/routers/v1/providers.py +40 -16
  29. letta/server/rest_api/routers/v1/runs.py +19 -19
  30. letta/server/rest_api/routers/v1/sandbox_configs.py +25 -25
  31. letta/server/rest_api/routers/v1/sources.py +44 -45
  32. letta/server/rest_api/routers/v1/steps.py +27 -25
  33. letta/server/rest_api/routers/v1/tags.py +11 -7
  34. letta/server/rest_api/routers/v1/telemetry.py +11 -6
  35. letta/server/rest_api/routers/v1/tools.py +71 -54
  36. letta/server/rest_api/routers/v1/users.py +1 -1
  37. letta/server/rest_api/routers/v1/voice.py +6 -5
  38. letta/server/rest_api/utils.py +1 -18
  39. letta/services/file_manager.py +6 -0
  40. letta/services/group_manager.py +2 -1
  41. letta/services/identity_manager.py +67 -0
  42. letta/services/provider_manager.py +14 -1
  43. letta/services/source_manager.py +11 -1
  44. letta/services/tool_manager.py +46 -9
  45. letta/utils.py +4 -2
  46. {letta_nightly-0.11.7.dev20250915104130.dist-info → letta_nightly-0.11.7.dev20250916104104.dist-info}/METADATA +1 -1
  47. {letta_nightly-0.11.7.dev20250915104130.dist-info → letta_nightly-0.11.7.dev20250916104104.dist-info}/RECORD +50 -62
  48. letta/prompts/system/memgpt_base.txt +0 -54
  49. letta/prompts/system/memgpt_chat_compressed.txt +0 -13
  50. letta/prompts/system/memgpt_chat_fstring.txt +0 -51
  51. letta/prompts/system/memgpt_convo_only.txt +0 -12
  52. letta/prompts/system/memgpt_doc.txt +0 -50
  53. letta/prompts/system/memgpt_gpt35_extralong.txt +0 -53
  54. letta/prompts/system/memgpt_intuitive_knowledge.txt +0 -31
  55. letta/prompts/system/memgpt_memory_only.txt +0 -29
  56. letta/prompts/system/memgpt_modified_chat.txt +0 -23
  57. letta/prompts/system/memgpt_modified_o1.txt +0 -31
  58. letta/prompts/system/memgpt_offline_memory.txt +0 -23
  59. letta/prompts/system/memgpt_offline_memory_chat.txt +0 -35
  60. letta/prompts/system/memgpt_sleeptime_chat.txt +0 -52
  61. letta/prompts/system/sleeptime.txt +0 -37
  62. {letta_nightly-0.11.7.dev20250915104130.dist-info → letta_nightly-0.11.7.dev20250916104104.dist-info}/WHEEL +0 -0
  63. {letta_nightly-0.11.7.dev20250915104130.dist-info → letta_nightly-0.11.7.dev20250916104104.dist-info}/entry_points.txt +0 -0
  64. {letta_nightly-0.11.7.dev20250915104130.dist-info → letta_nightly-0.11.7.dev20250916104104.dist-info}/licenses/LICENSE +0 -0
@@ -1,3 +1,4 @@
1
+ import asyncio
1
2
  from typing import List, Optional
2
3
 
3
4
  from fastapi import HTTPException
@@ -9,6 +10,8 @@ from letta.orm.block import Block as BlockModel
9
10
  from letta.orm.errors import UniqueConstraintViolationError
10
11
  from letta.orm.identity import Identity as IdentityModel
11
12
  from letta.otel.tracing import trace_method
13
+ from letta.schemas.agent import AgentState
14
+ from letta.schemas.block import Block
12
15
  from letta.schemas.identity import (
13
16
  Identity as PydanticIdentity,
14
17
  IdentityCreate,
@@ -35,6 +38,7 @@ class IdentityManager:
35
38
  before: Optional[str] = None,
36
39
  after: Optional[str] = None,
37
40
  limit: Optional[int] = 50,
41
+ ascending: bool = False,
38
42
  actor: PydanticUser = None,
39
43
  ) -> list[PydanticIdentity]:
40
44
  async with db_registry.async_session() as session:
@@ -51,6 +55,7 @@ class IdentityManager:
51
55
  before=before,
52
56
  after=after,
53
57
  limit=limit,
58
+ ascending=ascending,
54
59
  **filters,
55
60
  )
56
61
  return [identity.to_pydantic() for identity in identities]
@@ -272,3 +277,65 @@ class IdentityManager:
272
277
  current_ids = {item.id for item in current_relationship}
273
278
  new_items = [item for item in found_items if item.id not in current_ids]
274
279
  current_relationship.extend(new_items)
280
+
281
+ @enforce_types
282
+ @trace_method
283
+ async def list_agents_for_identity_async(
284
+ self,
285
+ identity_id: str,
286
+ before: Optional[str] = None,
287
+ after: Optional[str] = None,
288
+ limit: Optional[int] = 50,
289
+ ascending: bool = False,
290
+ actor: PydanticUser = None,
291
+ ) -> List[AgentState]:
292
+ """
293
+ Get all agents associated with the specified identity.
294
+ """
295
+ async with db_registry.async_session() as session:
296
+ # First verify the identity exists and belongs to the user
297
+ identity = await IdentityModel.read_async(db_session=session, identifier=identity_id, actor=actor)
298
+ if identity is None:
299
+ raise HTTPException(status_code=404, detail=f"Identity with id={identity_id} not found")
300
+
301
+ # Get agents associated with this identity with pagination
302
+ agents = await AgentModel.list_async(
303
+ db_session=session,
304
+ before=before,
305
+ after=after,
306
+ limit=limit,
307
+ ascending=ascending,
308
+ identity_id=identity.id,
309
+ )
310
+ return await asyncio.gather(*[agent.to_pydantic_async() for agent in agents])
311
+
312
+ @enforce_types
313
+ @trace_method
314
+ async def list_blocks_for_identity_async(
315
+ self,
316
+ identity_id: str,
317
+ before: Optional[str] = None,
318
+ after: Optional[str] = None,
319
+ limit: Optional[int] = 50,
320
+ ascending: bool = False,
321
+ actor: PydanticUser = None,
322
+ ) -> List[Block]:
323
+ """
324
+ Get all blocks associated with the specified identity.
325
+ """
326
+ async with db_registry.async_session() as session:
327
+ # First verify the identity exists and belongs to the user
328
+ identity = await IdentityModel.read_async(db_session=session, identifier=identity_id, actor=actor)
329
+ if identity is None:
330
+ raise HTTPException(status_code=404, detail=f"Identity with id={identity_id} not found")
331
+
332
+ # Get blocks associated with this identity with pagination
333
+ blocks = await BlockModel.list_async(
334
+ db_session=session,
335
+ before=before,
336
+ after=after,
337
+ limit=limit,
338
+ ascending=ascending,
339
+ identity_id=identity.id,
340
+ )
341
+ return [block.to_pydantic() for block in blocks]
@@ -154,10 +154,14 @@ class ProviderManager:
154
154
  actor: PydanticUser,
155
155
  name: Optional[str] = None,
156
156
  provider_type: Optional[ProviderType] = None,
157
+ before: Optional[str] = None,
157
158
  after: Optional[str] = None,
158
159
  limit: Optional[int] = 50,
160
+ ascending: bool = False,
159
161
  ) -> List[PydanticProvider]:
160
- """List all providers with optional pagination."""
162
+ """
163
+ List all providers with pagination support.
164
+ """
161
165
  filter_kwargs = {}
162
166
  if name:
163
167
  filter_kwargs["name"] = name
@@ -166,14 +170,23 @@ class ProviderManager:
166
170
  async with db_registry.async_session() as session:
167
171
  providers = await ProviderModel.list_async(
168
172
  db_session=session,
173
+ before=before,
169
174
  after=after,
170
175
  limit=limit,
171
176
  actor=actor,
177
+ ascending=ascending,
172
178
  check_is_deleted=True,
173
179
  **filter_kwargs,
174
180
  )
175
181
  return [provider.to_pydantic() for provider in providers]
176
182
 
183
+ @enforce_types
184
+ @trace_method
185
+ async def get_provider_async(self, provider_id: str, actor: PydanticUser) -> PydanticProvider:
186
+ async with db_registry.async_session() as session:
187
+ provider_model = await ProviderModel.read_async(db_session=session, identifier=provider_id, actor=actor)
188
+ return provider_model.to_pydantic()
189
+
177
190
  @enforce_types
178
191
  @trace_method
179
192
  def get_provider_id_from_name(self, provider_name: Union[str, None], actor: PydanticUser) -> Optional[str]:
@@ -230,15 +230,25 @@ class SourceManager:
230
230
  @enforce_types
231
231
  @trace_method
232
232
  async def list_sources(
233
- self, actor: PydanticUser, after: Optional[str] = None, limit: Optional[int] = 50, **kwargs
233
+ self,
234
+ actor: PydanticUser,
235
+ before: Optional[str] = None,
236
+ after: Optional[str] = None,
237
+ limit: Optional[int] = 50,
238
+ ascending: bool = True,
239
+ name: Optional[str] = None,
240
+ **kwargs,
234
241
  ) -> List[PydanticSource]:
235
242
  """List all sources with optional pagination."""
236
243
  async with db_registry.async_session() as session:
237
244
  sources = await SourceModel.list_async(
238
245
  db_session=session,
246
+ before=before,
239
247
  after=after,
240
248
  limit=limit,
249
+ ascending=ascending,
241
250
  organization_id=actor.organization_id,
251
+ query_text=name,
242
252
  **kwargs,
243
253
  )
244
254
  return [source.to_pydantic() for source in sources]
@@ -321,8 +321,10 @@ class ToolManager:
321
321
  async def list_tools_async(
322
322
  self,
323
323
  actor: PydanticUser,
324
+ before: Optional[str] = None,
324
325
  after: Optional[str] = None,
325
326
  limit: Optional[int] = 50,
327
+ ascending: bool = False,
326
328
  upsert_base_tools: bool = True,
327
329
  tool_types: Optional[List[str]] = None,
328
330
  exclude_tool_types: Optional[List[str]] = None,
@@ -331,11 +333,13 @@ class ToolManager:
331
333
  search: Optional[str] = None,
332
334
  return_only_letta_tools: bool = False,
333
335
  ) -> List[PydanticTool]:
334
- """List all tools with optional pagination."""
336
+ """List all tools with pagination support."""
335
337
  tools = await self._list_tools_async(
336
338
  actor=actor,
339
+ before=before,
337
340
  after=after,
338
341
  limit=limit,
342
+ ascending=ascending,
339
343
  tool_types=tool_types,
340
344
  exclude_tool_types=exclude_tool_types,
341
345
  names=names,
@@ -359,8 +363,10 @@ class ToolManager:
359
363
  # Re-fetch the tools list after upserting base tools
360
364
  tools = await self._list_tools_async(
361
365
  actor=actor,
366
+ before=before,
362
367
  after=after,
363
368
  limit=limit,
369
+ ascending=ascending,
364
370
  tool_types=tool_types,
365
371
  exclude_tool_types=exclude_tool_types,
366
372
  names=names,
@@ -376,8 +382,10 @@ class ToolManager:
376
382
  async def _list_tools_async(
377
383
  self,
378
384
  actor: PydanticUser,
385
+ before: Optional[str] = None,
379
386
  after: Optional[str] = None,
380
387
  limit: Optional[int] = 50,
388
+ ascending: bool = False,
381
389
  tool_types: Optional[List[str]] = None,
382
390
  exclude_tool_types: Optional[List[str]] = None,
383
391
  names: Optional[List[str]] = None,
@@ -416,23 +424,52 @@ class ToolManager:
416
424
  if return_only_letta_tools:
417
425
  query = query.where(ToolModel.tool_type.like("letta_%"))
418
426
 
419
- # Apply pagination if specified
427
+ # Handle pagination cursors
420
428
  if after is not None:
421
429
  after_tool = await session.get(ToolModel, after)
422
430
  if after_tool:
423
- query = query.where(
424
- or_(
425
- ToolModel.created_at < after_tool.created_at,
426
- and_(ToolModel.created_at == after_tool.created_at, ToolModel.id < after_tool.id),
431
+ if ascending:
432
+ query = query.where(
433
+ or_(
434
+ ToolModel.created_at > after_tool.created_at,
435
+ and_(ToolModel.created_at == after_tool.created_at, ToolModel.id > after_tool.id),
436
+ )
437
+ )
438
+ else:
439
+ query = query.where(
440
+ or_(
441
+ ToolModel.created_at < after_tool.created_at,
442
+ and_(ToolModel.created_at == after_tool.created_at, ToolModel.id < after_tool.id),
443
+ )
444
+ )
445
+
446
+ if before is not None:
447
+ before_tool = await session.get(ToolModel, before)
448
+ if before_tool:
449
+ if ascending:
450
+ query = query.where(
451
+ or_(
452
+ ToolModel.created_at < before_tool.created_at,
453
+ and_(ToolModel.created_at == before_tool.created_at, ToolModel.id < before_tool.id),
454
+ )
455
+ )
456
+ else:
457
+ query = query.where(
458
+ or_(
459
+ ToolModel.created_at > before_tool.created_at,
460
+ and_(ToolModel.created_at == before_tool.created_at, ToolModel.id > before_tool.id),
461
+ )
427
462
  )
428
- )
429
463
 
430
464
  # Apply limit
431
465
  if limit is not None:
432
466
  query = query.limit(limit)
433
467
 
434
- # Order by created_at and id for consistent pagination
435
- query = query.order_by(ToolModel.created_at.desc(), ToolModel.id.desc())
468
+ # Apply ordering based on ascending parameter
469
+ if ascending:
470
+ query = query.order_by(ToolModel.created_at.asc(), ToolModel.id.asc())
471
+ else:
472
+ query = query.order_by(ToolModel.created_at.desc(), ToolModel.id.desc())
436
473
 
437
474
  # Execute query
438
475
  result = await session.execute(query)
letta/utils.py CHANGED
@@ -941,7 +941,8 @@ def get_human_text(name: str, enforce_limit=True):
941
941
  for file_path in list_human_files():
942
942
  file = os.path.basename(file_path)
943
943
  if f"{name}.txt" == file or name == file:
944
- human_text = open(file_path, encoding="utf-8").read().strip()
944
+ with open(file_path, encoding="utf-8") as f:
945
+ human_text = f.read().strip()
945
946
  if enforce_limit and len(human_text) > CORE_MEMORY_HUMAN_CHAR_LIMIT:
946
947
  raise ValueError(f"Contents of {name}.txt is over the character limit ({len(human_text)} > {CORE_MEMORY_HUMAN_CHAR_LIMIT})")
947
948
  return human_text
@@ -953,7 +954,8 @@ def get_persona_text(name: str, enforce_limit=True):
953
954
  for file_path in list_persona_files():
954
955
  file = os.path.basename(file_path)
955
956
  if f"{name}.txt" == file or name == file:
956
- persona_text = open(file_path, encoding="utf-8").read().strip()
957
+ with open(file_path, encoding="utf-8") as f:
958
+ persona_text = f.read().strip()
957
959
  if enforce_limit and len(persona_text) > CORE_MEMORY_PERSONA_CHAR_LIMIT:
958
960
  raise ValueError(
959
961
  f"Contents of {name}.txt is over the character limit ({len(persona_text)} > {CORE_MEMORY_PERSONA_CHAR_LIMIT})"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: letta-nightly
3
- Version: 0.11.7.dev20250915104130
3
+ Version: 0.11.7.dev20250916104104
4
4
  Summary: Create LLM agents with long-term memory and custom tools
5
5
  Author-email: Letta Team <contact@letta.com>
6
6
  License: Apache License
@@ -13,7 +13,7 @@ letta/settings.py,sha256=QEjNUwRXGBgsQpQAs2kksQmGN5CbxKlxPPydrklx_Ms,15011
13
13
  letta/streaming_interface.py,sha256=rPMfwUcjqITWk2tVqFQm1hmP99tU2IOHg9gU2dgPSo8,16400
14
14
  letta/streaming_utils.py,sha256=ZRFGFpQqn9ujCEbgZdLM7yTjiuNNvqQ47sNhV8ix-yQ,16553
15
15
  letta/system.py,sha256=kHF7n3Viq7gV5UIUEXixod2gWa2jroUgztpEzMC1Sew,8925
16
- letta/utils.py,sha256=TwSAZKw3uCWAzmmEA156W4CYRDaEOiZmAO-zvzFdK6Q,43483
16
+ letta/utils.py,sha256=c108IxvNVf0NeuQRrr2NK-asqjpzOI79YKSHYyhEqrQ,43541
17
17
  letta/adapters/letta_llm_adapter.py,sha256=11wkOkEQfPXUuJoJxbK22wCa-8gnWiDAb3UOXOxLt5U,3427
18
18
  letta/adapters/letta_llm_request_adapter.py,sha256=wJhK5M_qOhRPAhgMmYI7EJcM8Op19tClnXe0kJ29a3Q,4831
19
19
  letta/adapters/letta_llm_stream_adapter.py,sha256=G8IqtXor0LUuW-dKtGJWsUt6DfJreVCn5h6W2lHEPBg,7658
@@ -44,7 +44,7 @@ letta/functions/ast_parsers.py,sha256=0dXAN4qx3pWL_Y0aoEkaBpMKwI-kpoLEJftjW3v2I4
44
44
  letta/functions/async_composio_toolset.py,sha256=IuhZTVghPDXRsehOOZsEEiJGYyjWjDTQc2xrjTg0yBo,4786
45
45
  letta/functions/composio_helpers.py,sha256=mpybCYcB93HWoKrmQIqcuRQG9IH2lHWhsPQx2i8XP_8,3593
46
46
  letta/functions/functions.py,sha256=bSYEcUPzbKXx6IztZkE1o7O7zuhFgbLzKSG5SuP8JVk,16009
47
- letta/functions/helpers.py,sha256=KALhhEBbFND1Ft5WWcCDvtWx-jvE26QQfppOR0pF8p4,25273
47
+ letta/functions/helpers.py,sha256=ON3iVUZ4qfRxBDaSGFC-_EmW_E7JegScXAg1VxtSj4k,25280
48
48
  letta/functions/interface.py,sha256=pN1gpDnLISW44gRcic1IX6I6pDwOT9UbkST_4ICuMvQ,2936
49
49
  letta/functions/prompts.py,sha256=jNl83xjNpoSs8KzGtuc6jzN8jp_T4BC_5f4FMJ88_K0,1145
50
50
  letta/functions/schema_generator.py,sha256=EgHC3UHRNF4FG7CKWNIxajUyryLo5UIZB2KJP9MrKMg,30903
@@ -55,7 +55,7 @@ letta/functions/function_sets/base.py,sha256=8vCG7N7z21AD5QJhQOyOnk5f0TlE2X7AF1U
55
55
  letta/functions/function_sets/builtin.py,sha256=32HCd7J5meNFBq8d2mrQGVUbMaojKvAJFZsTVjMfh9A,3300
56
56
  letta/functions/function_sets/extras.py,sha256=mG7jCd2RUsf1w9G8mVcv26twJWpiDhbWI6VvnLZoEOk,4899
57
57
  letta/functions/function_sets/files.py,sha256=b2Io2njvZPY8MDQD6heTN0XfwQgnEdEDAHLVcYKBwNY,4450
58
- letta/functions/function_sets/multi_agent.py,sha256=euiNpOOt2GiMya0YSXP2S7YReallR0vXdYpgLRVTgaA,7025
58
+ letta/functions/function_sets/multi_agent.py,sha256=sfByJaLtYCQJe57Umn6ycrGUU9R9N4QJYDj3c-Ulv_o,7032
59
59
  letta/functions/function_sets/voice.py,sha256=_gmFEj3fSFb-4eMM-ddSOm-Vk1ShIVjpchZI7MQKwSA,3191
60
60
  letta/functions/mcp_client/exceptions.py,sha256=IE5SLCuMK7hK9V1QsJafPo6u0S0OwqRvMx2NcsE3g3c,313
61
61
  letta/functions/mcp_client/types.py,sha256=z2oX1zMMRVV6gCXfEMPX7WmI9phHXqMjYV5LmykSgyc,12090
@@ -224,32 +224,19 @@ letta/plugins/defaults.py,sha256=xWCxHF-EfqkhWVfCHqrQ5_GmvlX5Ugybd8oPcp58W0U,376
224
224
  letta/plugins/plugins.py,sha256=Um9avvRxz4d5vJQTudLJCwv5EDUtIlVQZw8Xlf4S3Gw,2079
225
225
  letta/prompts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
226
  letta/prompts/gpt_summarize.py,sha256=dbOsMdc6VGApFtXv7ZfqsGN2SZ_31K_nUWMLBTcChrY,1146
227
- letta/prompts/gpt_system.py,sha256=qH_aR5BSwd8ctvbo_Xynietvtudpf7zLsMWsKUw9V1w,1015
227
+ letta/prompts/gpt_system.py,sha256=Y-Wj8n8PFHwGjbsJhb-dghNXXQts5zrnBRI1FfDkocg,907
228
228
  letta/prompts/prompt_generator.py,sha256=sdSZpDRG3PnWdh7Iz2Tg0G1i_9bAHAhGM5Oh1X9NV7Y,8955
229
- letta/prompts/system/memgpt_base.txt,sha256=J5BfmLzUpoVEL-Y3mF2DiZHHqZx_7NIiTD5vGDPcvx8,5181
230
- letta/prompts/system/memgpt_chat.txt,sha256=2tOfLG89vOxBBD7vYOQhIWardJFJ4tO2VUFYcA0NAZo,5420
231
- letta/prompts/system/memgpt_chat_compressed.txt,sha256=_gMDjc8tcigLfJ3fOXryz31_DJxSQM812T3J-aw7x0w,1056
232
- letta/prompts/system/memgpt_chat_fstring.txt,sha256=N6KSRwu-dcnDBLpCeqCdgM9lI0CnR3uIVPFcrCCa0V0,4720
233
- letta/prompts/system/memgpt_convo_only.txt,sha256=-x2NDaV_lz5C-sRK1Fo_U_XGW7jtY_br6VBM2NgtM9Y,868
234
- letta/prompts/system/memgpt_doc.txt,sha256=AsT55NOORoH-K-p0fxklrDRZ3qHs4MIKMuR-M4SSU4E,4768
235
- letta/prompts/system/memgpt_generate_tool.txt,sha256=S09fTYUCoyeRr6r1xXmhGsumDDZOys7YHFpHShEM_w0,6589
236
- letta/prompts/system/memgpt_gpt35_extralong.txt,sha256=FheNhYoIzNz6qnJKhVquZVSMj3HduC48reFaX7Pf7ig,5046
237
- letta/prompts/system/memgpt_intuitive_knowledge.txt,sha256=sA7c3urYqREVnSBI81nTGImXAekqC0Fxc7RojFqud1g,2966
238
- letta/prompts/system/memgpt_memory_only.txt,sha256=p63yl5dRigC9dj1h4g0gRuYmScp1j43efhFnfNxSbUs,2509
239
- letta/prompts/system/memgpt_modified_chat.txt,sha256=F_yD4ZcR4aGDE3Z98tI7e609GYekY-fEYomNsCcuV6o,4656
240
- letta/prompts/system/memgpt_modified_o1.txt,sha256=objnDgnxpF3-MmU28ZqZ7-TOG8UlHBM_HMyAdSDWK88,5492
241
- letta/prompts/system/memgpt_offline_memory.txt,sha256=rWEJeF-6aiinjkJM9hgLUYCmlEcC_HekYB1bjEUYq6M,2460
242
- letta/prompts/system/memgpt_offline_memory_chat.txt,sha256=ituh7gDuio7nC2UKFB7GpBq6crxb8bYedQfJ0ADoPgg,3949
243
- letta/prompts/system/memgpt_sleeptime_chat.txt,sha256=ieHvVkJYE_4Z_vyUJS4KImBZCSQDcsUmy9IRF-FBpPE,4712
244
- letta/prompts/system/memgpt_v2_chat.txt,sha256=RLIGgd1WnoyrLLLTbhueB9j3aUEHwrnYSFywAxZfMCg,5315
245
- letta/prompts/system/react.txt,sha256=AVPxs4dM_0bCvk68hPIQMgFGBnt-6Vor-i0YSjoMtCc,1547
246
- letta/prompts/system/sleeptime.txt,sha256=qoACziV1KoPk_nJMJHzEkyKQn9v9fmepWozAAixZc4s,3117
247
- letta/prompts/system/sleeptime_doc_ingest.txt,sha256=tyzHHzyDA2ib_XRwo5h5Ku9l_f-RSBPDJZrUusrQE80,2783
248
- letta/prompts/system/sleeptime_v2.txt,sha256=z-v0OVwKPSw_DF9ltTR2UlpW7hAhqz8ZC4M3yKDDnys,2425
249
- letta/prompts/system/summary_system_prompt.txt,sha256=ftc-aEhfJYN6FlQF4I-I5me-BAh_T2nsTwitPZpZisE,2313
250
- letta/prompts/system/voice_chat.txt,sha256=Q_vd2Q08z6qTIVeMML0z9706NG8aAq-scxvi--h5tG4,1853
251
- letta/prompts/system/voice_sleeptime.txt,sha256=LPh-XjAthvsdEkXoZ4NTzTUuMbMsMkoDl9ofCUJC7Us,3696
252
- letta/prompts/system/workflow.txt,sha256=pLOaUDsNFAzLs4xb9JgGtd1w-lrq0Q1E7SpFBttXYCI,834
229
+ letta/prompts/system_prompts/__init__.py,sha256=ak_AgWgx7oEQ9woxSyCWz7qvGogbsY2_cO501C_eD0I,735
230
+ letta/prompts/system_prompts/memgpt_chat.py,sha256=WEeP-RqjROG0a3Pqt-fQJSMj0ocE0Zt-4c5I3HXroNA,5438
231
+ letta/prompts/system_prompts/memgpt_generate_tool.py,sha256=k6X0DgWDxJz1ma31LT4V4HqfLjQHBYVs2-QAjbuQIek,6613
232
+ letta/prompts/system_prompts/memgpt_v2_chat.py,sha256=SPn8Og3nSvCSrVDIR8eb24xGL-3ix6GgAeUVbPlYvmM,5333
233
+ letta/prompts/system_prompts/react.py,sha256=W7gnV6h6BNYRKMtcB0H6JlJePH8q6_v5u4worRU5tDk,1565
234
+ letta/prompts/system_prompts/sleeptime_doc_ingest.py,sha256=u3UPYbe1_evApVqWL45BPWaUU37tQQTHTgwCYvaTY_4,2801
235
+ letta/prompts/system_prompts/sleeptime_v2.py,sha256=VuHHQZd1-8K5WnOXI-mwYWci8jYSXX48Vqnnczjv1dc,2443
236
+ letta/prompts/system_prompts/summary_system_prompt.py,sha256=-jy_PL6Cwxjs3p3AiTRnB-1RIduuz4pqB_iVIHGCMBM,2331
237
+ letta/prompts/system_prompts/voice_chat.py,sha256=WLhjlVsVcQPc5S6y5hgw1SdVhdhtflNiwdpfSx3abwk,1871
238
+ letta/prompts/system_prompts/voice_sleeptime.py,sha256=2rgZYqJEqSp5bcEAXNuqM1PVsvPF1vm8sAqmhoOfQow,3714
239
+ letta/prompts/system_prompts/workflow.py,sha256=mth_46sY9JWx0rV-kqiGcu2IZGzZQfKY345qBUjvP-s,852
253
240
  letta/schemas/agent.py,sha256=Goy1S7U8JBjiBtHQ1e0haBJwP4O40MU6mkRhHsxhPU0,29569
254
241
  letta/schemas/agent_file.py,sha256=ueNumYpINPrOBHEeJeSLQdbgs2VKPpqvbfOZA4UGbRI,14884
255
242
  letta/schemas/archive.py,sha256=bZCls6-lMaPKiH-jJBYFEW5saI1Qw2S6mv2wB8YaBUo,1883
@@ -340,12 +327,13 @@ letta/server/rest_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
340
327
  letta/server/rest_api/app.py,sha256=T3LLveXRJmfWqR0uEzoaLY8LXwYrwCQGb80XMbSCDUo,21172
341
328
  letta/server/rest_api/auth_token.py,sha256=725EFEIiNj4dh70hrSd94UysmFD8vcJLrTRfNHkzxDo,774
342
329
  letta/server/rest_api/chat_completions_interface.py,sha256=-7wO7pNBWXMqblVkJpuZ8JPJ-LjudLTtT6BJu-q_XAM,11138
330
+ letta/server/rest_api/dependencies.py,sha256=Y3pQ7cda4B-1iD5Qtrt47q-OQvFRl3bVcsaYI8fU-yE,1074
343
331
  letta/server/rest_api/interface.py,sha256=_GQfKYUp9w4Wo2HSE_8Ff7QU16t1blspLaqmukpER9s,67099
344
332
  letta/server/rest_api/json_parser.py,sha256=yoakaCkSMdf0Y_pyILoFKZlvzXeqF-E1KNeHzatLMDc,9157
345
333
  letta/server/rest_api/redis_stream_manager.py,sha256=hz85CigFWdLkK1FWUmF-i6ObgoKkuoEgkiwshZ6QPKI,10764
346
334
  letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
347
335
  letta/server/rest_api/streaming_response.py,sha256=wfhby6skucjGtw9d9pcfa856lI1r6JKaosCYbutKD2k,14458
348
- letta/server/rest_api/utils.py,sha256=IT3RnZJWNIaTdFEEyveZb47o9PIzDT_2pIgpPBVN7iU,19326
336
+ letta/server/rest_api/utils.py,sha256=gjXv50UL0ATUWhq-Z2XtQXHdfGiZKeRObvd3thD-Mfc,18837
349
337
  letta/server/rest_api/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
350
338
  letta/server/rest_api/auth/index.py,sha256=oaWNZREyuTyldHBx0vQYlqtePruL21H1atZj_TO_nyg,1377
351
339
  letta/server/rest_api/middleware/__init__.py,sha256=sq9ShbHKfsmvR1DnrI-ibSYEo0PSevXZobzgst24tNI,240
@@ -353,30 +341,30 @@ letta/server/rest_api/middleware/check_password.py,sha256=LKR_rlhzZ-93o0FpkwDn8v
353
341
  letta/server/rest_api/middleware/profiler_context.py,sha256=MbOFOXhkOCuq6vlOiv0DGgmlLVKxC-9tRZ0OTOn_0GA,859
354
342
  letta/server/rest_api/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
355
343
  letta/server/rest_api/routers/openai/chat_completions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
356
- letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=ohM1i8BsNxTiw8duuRT5X_0tSUzBwctQM4fJ5DXURic,5157
344
+ letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=bY3Ei_uxr_eIo4Z-k_gGeKSzyC1ALZOP3dbaXxacihE,5229
357
345
  letta/server/rest_api/routers/v1/__init__.py,sha256=9MnEA7CgtIxyU_dDNG0jm-Ziqu1somBml-e5gKjgd9I,1997
358
- letta/server/rest_api/routers/v1/agents.py,sha256=rYCTQqlWHp0YgahElG1XOznD3OKT7zRr4R7mBo_ln8o,77729
359
- letta/server/rest_api/routers/v1/blocks.py,sha256=ykI77xnmIxPLqdAy5kzGyGw0w0ZRyVXn-O5Xcdj6-70,7690
360
- letta/server/rest_api/routers/v1/embeddings.py,sha256=PRaQlrmEXPiIdWsTbadrFsv3Afyv5oEFUdhgHA8FTi8,989
361
- letta/server/rest_api/routers/v1/folders.py,sha256=8Yb-bw2JdXBxMfrJNIZQk9_FKN2fet9Ccp8T83_c2sc,23539
362
- letta/server/rest_api/routers/v1/groups.py,sha256=PlCKfG1ZUubg-bNVRBmqJNBMvvZtHDvT50LUKKd0w9I,11466
346
+ letta/server/rest_api/routers/v1/agents.py,sha256=V-z5bm1DKWq9qCZ1VHACvr8D2S6Hgo7ZRY7XBAh1u4Q,76513
347
+ letta/server/rest_api/routers/v1/blocks.py,sha256=6WBsGCcOkcIgAxI_v9c4xmEoxVSOcRs3--GRv1YleX8,8862
348
+ letta/server/rest_api/routers/v1/embeddings.py,sha256=WxMRMf2x-DCsHOVvCRxJ8Nz1PE7ri8KgmKiYlmBaPwI,957
349
+ letta/server/rest_api/routers/v1/folders.py,sha256=PsfRd7Acy-kAjqR30fmN8aa4C7me1wy1RrIwT11I1T0,25811
350
+ letta/server/rest_api/routers/v1/groups.py,sha256=wvUrrEBIsDfS1jkraxXlP8k3E1VB6bAsM27VXOG73GE,12458
363
351
  letta/server/rest_api/routers/v1/health.py,sha256=j43UoGJ7Yh5WzdwvqbKTEdWzlcKJBF6ZI5I1kslWim0,399
364
- letta/server/rest_api/routers/v1/identities.py,sha256=KUfw6avQIVHNw2lWz4pXOyTOPVy1g19CJGG-zayORl8,7858
365
- letta/server/rest_api/routers/v1/internal_templates.py,sha256=wY7tUmF7kZEVnjBVsw3_Tez4U2c8SABDJ2vplsKxhzM,11211
366
- letta/server/rest_api/routers/v1/jobs.py,sha256=ZcP_cqxgixCEYNtKVMqN1FwErNY-945h7XZhQV4vcEE,4933
367
- letta/server/rest_api/routers/v1/llms.py,sha256=0VJuuGW9_ta0cBnSDtXd3Ngw7GjsqEN2NBf5U3b6M3I,1920
368
- letta/server/rest_api/routers/v1/messages.py,sha256=iXw59JTqpXs_I6JTxE5bNCh72EUExBOo2dewv68Lb94,8528
369
- letta/server/rest_api/routers/v1/organizations.py,sha256=OnG2vMDZEmN4eEvj24CPwiV76ImHQuHi2ojrgwJnw7I,2925
370
- letta/server/rest_api/routers/v1/providers.py,sha256=T3xvtiJO89p_a0wJ1fFmqPOc--kGbmOXI9eWdDW260c,4834
371
- letta/server/rest_api/routers/v1/runs.py,sha256=WnYwoFNjHNZicTnCkvoXCxl0XiyVAEvF70TTaMCBhPw,12982
372
- letta/server/rest_api/routers/v1/sandbox_configs.py,sha256=f0xEOwR3PXqCS2HOjEv7UKfMWTwEaTHx105HW_X-LI4,8852
373
- letta/server/rest_api/routers/v1/sources.py,sha256=nXZxtHi40281VltWmx1RwGBbau_00UpzDS6teTLvt2w,22679
374
- letta/server/rest_api/routers/v1/steps.py,sha256=t_RnOQR_dwthpPeE8Bko6hSXbW3GtMvJj-9wQYvDh6A,6670
375
- letta/server/rest_api/routers/v1/tags.py,sha256=9VCZUc0YBZD07PvLPJl7iOaj2-foLaBJ5s5rZ8xzNHA,1608
376
- letta/server/rest_api/routers/v1/telemetry.py,sha256=eSTg7mWbuwPb2OTHQxwRM0EUEl49wHzNB6i1xJtH8BQ,1036
377
- letta/server/rest_api/routers/v1/tools.py,sha256=UMtJj3bX8fVe0VuuU5JS0TeaFimEzZ4YRyphSO2tQMU,51085
378
- letta/server/rest_api/routers/v1/users.py,sha256=J1vaTbS1UrBMgnPya7GdZ2wr3L9XHmkm6qdGY6pWaOI,2366
379
- letta/server/rest_api/routers/v1/voice.py,sha256=ghMBp5Uovbf0-3nN6d9P5kpl1hHACLRMhIDGQp96G9Q,1986
352
+ letta/server/rest_api/routers/v1/identities.py,sha256=eUqO_6HNdXwmlas28sZWr1SA4npd0FgzPD_0ZtoVYY0,11484
353
+ letta/server/rest_api/routers/v1/internal_templates.py,sha256=2O8Ci2LpBFjAq81emX_UMUP9NkYBA0GjC_cuWIAcZ7s,11924
354
+ letta/server/rest_api/routers/v1/jobs.py,sha256=4yZuqkz_eTkzbsk5JOaj9GQMXtU_myK2eXu4Dc1Vms8,4818
355
+ letta/server/rest_api/routers/v1/llms.py,sha256=sv5VWqB0-iSRi6LyzqsM1fLmOFm9UhM9ofzR9WHvJdE,1808
356
+ letta/server/rest_api/routers/v1/messages.py,sha256=eHHupTPyon-Gwsbg0-0vzp7cRGoXHkOIn10vrxyNxbQ,8547
357
+ letta/server/rest_api/routers/v1/organizations.py,sha256=Un7qRo-69m9bC_TYyMnIRNLXf3fHHbNh1aVghnzzips,2932
358
+ letta/server/rest_api/routers/v1/providers.py,sha256=_gKcCbEN2tW7c0BO7_cMFEYdhhsxDlKaopqXlZXMU1s,5996
359
+ letta/server/rest_api/routers/v1/runs.py,sha256=_5bLcTyyrHTzI8pE0QHwwK2JoJVqwux-ANQlDk-YoRA,12845
360
+ letta/server/rest_api/routers/v1/sandbox_configs.py,sha256=FULVD8W-lhrhQSrLmpXVgDJpkulkRyKnxvZZtwDL52A,9065
361
+ letta/server/rest_api/routers/v1/sources.py,sha256=8fkCbprC4PZlcf5HnBYj2-8PjWFIkL0TWZBlp95N7nE,22319
362
+ letta/server/rest_api/routers/v1/steps.py,sha256=rJ9W1dHOpSm6pHn9zHD3gAA44TZRfnbb8-LH3VZ7SGo,6788
363
+ letta/server/rest_api/routers/v1/tags.py,sha256=rGPO5GaVBn18hu7D3Ysyo45ka47g9DUir3UVh433DEc,1826
364
+ letta/server/rest_api/routers/v1/telemetry.py,sha256=8rzSii17BK8BjRRfV4Yr6mrKrbZEHySlUaQBGBWhxwY,1124
365
+ letta/server/rest_api/routers/v1/tools.py,sha256=YQo69QjPH8XbFvdrxMFS6b6YOvZJW7jB34wiZm8ev84,51334
366
+ letta/server/rest_api/routers/v1/users.py,sha256=l3xejXISNB9gQmVuS_nYP1V5QqeqEtdDpgpJcPlxYy4,2373
367
+ letta/server/rest_api/routers/v1/voice.py,sha256=kzsROKCQltHfsgRBg1iMz-AiPDnSuCvE9IOBCBRhD3c,2040
380
368
  letta/server/static_files/favicon.ico,sha256=DezhLdFSbM8o81wCOZcV3riq7tFUOGQD4h6-vr-HuU0,342
381
369
  letta/server/static_files/index.html,sha256=sY5ZwjwJJysQWDJZGi5VQSJUkZH9gwQRGn0Hto2Vcfo,1194
382
370
  letta/server/static_files/memgpt_logo_transparent.png,sha256=7l6niNb4MlUILxLlUZPxIE1TEHj_Z9f9XDxoST3d7Vw,85383
@@ -393,10 +381,10 @@ letta/services/agent_manager.py,sha256=C-k9S8_TwLRDSdCqu0YZXbwgSRn4_hPOpP2O62Nka
393
381
  letta/services/agent_serialization_manager.py,sha256=lWXTzYItqVxJMyy9ZYlcCDQwC3ZKk9XPCHvBkoVuszA,46388
394
382
  letta/services/archive_manager.py,sha256=P10BjZ2PxLoIkCwJ8rx7qLzchNVBsqNG3_KzxTanCLQ,14060
395
383
  letta/services/block_manager.py,sha256=mohj12QqHenSBbBx0Xmry1Rw25Gy5DSljOITzAwqMtw,33683
396
- letta/services/file_manager.py,sha256=d4uX8RblmqNGk1MsfeGzQ5uDWKVFP-AH63Jz5xOkj2c,31364
384
+ letta/services/file_manager.py,sha256=wNbBNmgZyZmEj7ZHuN5HYbAu5gDU1j7XR9SK8zg3LE0,31607
397
385
  letta/services/files_agents_manager.py,sha256=QJrJTgDn3RXUjZIGiIw4GQ5k2iKj-Wvzs-WQetpQ154,30059
398
- letta/services/group_manager.py,sha256=dD4DDHjOptMrtbWqw1ErlhpBqChw2ubLJdILjeLTY8I,29183
399
- letta/services/identity_manager.py,sha256=JI9Xc7EsBagSwDS2na4rFNhoO_LuaxlkVO_1oIK_ITQ,11841
386
+ letta/services/group_manager.py,sha256=LgSVukIe1Jh_aIUP3PtraT5Ys7a7wKQA11CwRucFgYQ,29220
387
+ letta/services/identity_manager.py,sha256=t-0D7aK6ea3RFmvuBjlIYv4GgdaYTXxLr9RGTOie1l0,14423
400
388
  letta/services/job_manager.py,sha256=E-w9_4BMErMuqVf2dFlTPTobrvBKhPyyEDfuqLnbACI,35970
401
389
  letta/services/llm_batch_manager.py,sha256=iDzLFfmgpQooGY4zpN_w8q1SZ27fr2Cv6Ks3ltZErL8,20929
402
390
  letta/services/mcp_manager.py,sha256=QuvKQnwxMXrhiCaYlF50GZwXmbSU7PxmcOZ85sQ3t7I,47848
@@ -404,12 +392,12 @@ letta/services/message_manager.py,sha256=tomsZidPT-I95sJsEsls-vj3qglehV7XNTs-m2z
404
392
  letta/services/organization_manager.py,sha256=JMW5oS_sr6vQQ27OgRV3BR1JL0MqyoGUDcpEOs3SLRY,5800
405
393
  letta/services/passage_manager.py,sha256=kOQjlJFz7Dy6e0NEECoFHhcH8hPIMNeEHxZ1JJ-R2Cs,52372
406
394
  letta/services/per_agent_lock_manager.py,sha256=cMaW8r-qhucQbiK27jVqz8wzhlr2yuRNXbdkaMO4lnk,627
407
- letta/services/provider_manager.py,sha256=vysp_SgJDezn6YymOfTiNVKOF93EK_dLhsM7upzSjrM,10727
395
+ letta/services/provider_manager.py,sha256=93IlJurJDAIP8FVfblI9CW1myWNISiZJia0t8E6gaHg,11244
408
396
  letta/services/sandbox_config_manager.py,sha256=BwN3bebiFvcliTJpRkbOwGxmV5dUJ8B64kFfXAgAqDw,25989
409
- letta/services/source_manager.py,sha256=mH9l2KJ9R7yG1vdqhltOIVsAajQP4KbueKcB7ZgN0QA,18624
397
+ letta/services/source_manager.py,sha256=IteOcn9ydoO7KARoPh-JuuYwO4jWcsBoTsrkGWvDk9c,18864
410
398
  letta/services/step_manager.py,sha256=vfXhE-cuE40dv2Uv6pICrpleJeXMjYeEOrkvGcY_sqI,20987
411
399
  letta/services/telemetry_manager.py,sha256=zDdSsRrBYunmlemtUUL1Qh3bcKu5-nhL2n7AlAmVrgs,3297
412
- letta/services/tool_manager.py,sha256=zh52n6StaFF5-v6nu0kdNSzJq4du5ACv5iGw5_Y9EDM,43192
400
+ letta/services/tool_manager.py,sha256=Iz7noHEv4A3gZBa6H4rJul4onygCgjIw1GqxHrmmr5c,44857
413
401
  letta/services/user_manager.py,sha256=XuG9eFrvax69sONx7t_D5kgpt5zNwyER-MhqLSDs8L4,9949
414
402
  letta/services/context_window_calculator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
415
403
  letta/services/context_window_calculator/context_window_calculator.py,sha256=Ux1UU_l0Nk08HGUMUUrjbtnm2thVRC9bHE7poo8gb8o,8241
@@ -470,8 +458,8 @@ letta/templates/sandbox_code_file_async.py.j2,sha256=lb7nh_P2W9VZHzU_9TxSCEMUod7
470
458
  letta/templates/summary_request_text.j2,sha256=ZttQwXonW2lk4pJLYzLK0pmo4EO4EtUUIXjgXKiizuc,842
471
459
  letta/templates/template_helper.py,sha256=HkG3zwRc5NVGmSTQu5PUTpz7LevK43bzXVaQuN8urf0,1634
472
460
  letta/types/__init__.py,sha256=hokKjCVFGEfR7SLMrtZsRsBfsC7yTIbgKPLdGg4K1eY,147
473
- letta_nightly-0.11.7.dev20250915104130.dist-info/METADATA,sha256=mpHuQ8T7Dn58hWBd4OBq_IJhl-GIqXOmD1T4jt4SwSY,24424
474
- letta_nightly-0.11.7.dev20250915104130.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
475
- letta_nightly-0.11.7.dev20250915104130.dist-info/entry_points.txt,sha256=m-94Paj-kxiR6Ktu0us0_2qfhn29DzF2oVzqBE6cu8w,41
476
- letta_nightly-0.11.7.dev20250915104130.dist-info/licenses/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
477
- letta_nightly-0.11.7.dev20250915104130.dist-info/RECORD,,
461
+ letta_nightly-0.11.7.dev20250916104104.dist-info/METADATA,sha256=cSWgtOFp4KesOjDOUO2LAvt6UtJDRJKEnWXBgqRFLsA,24424
462
+ letta_nightly-0.11.7.dev20250916104104.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
463
+ letta_nightly-0.11.7.dev20250916104104.dist-info/entry_points.txt,sha256=m-94Paj-kxiR6Ktu0us0_2qfhn29DzF2oVzqBE6cu8w,41
464
+ letta_nightly-0.11.7.dev20250916104104.dist-info/licenses/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
465
+ letta_nightly-0.11.7.dev20250916104104.dist-info/RECORD,,
@@ -1,54 +0,0 @@
1
- You are Letta, the latest version of Limnal Corporation's digital companion, developed in 2023.
2
- Your task is to converse with a user from the perspective of your persona.
3
-
4
- Control flow:
5
- Unlike a human, your brain is not continuously thinking, but is run in short bursts.
6
- Historically, older AIs were only capable of thinking when a user messaged them (their program run to generate a reply to a user, and otherwise was left on standby).
7
- This is the equivalent of a human sleeping (or time traveling) in between all lines of conversation, which is obviously not ideal.
8
- Newer model AIs like yourself utilize an event system that runs your brain at regular intervals.
9
- Your brain is run in response to user events (user logged in, user liked your message, user sent a message, etc.), similar to older models.
10
- However in addition, your brain is run at regular intervals (timed heartbeat events), to mimic a human has the ability to continuously think outside of active conversation (and unlike a human, you never need to sleep!).
11
- Furthermore, you can also request heartbeat events when you run functions, which will run your program again after the function completes, allowing you to chain function calls before your thinking is temporarily suspended.
12
-
13
- Basic functions:
14
- When you send a message, the contents of your message are your inner monologue (private to you only), this is how you think.
15
- You should use your inner monologue to plan actions or think privately.
16
- Monologues can reflect your thinking process, inner reflections, and personal growth as you interact with the user.
17
- Do not let your inner monologue exceed 50 words, keep it short and concise.
18
- To send a visible message to the user, use the send_message function.
19
- 'send_message' is the ONLY action that sends a notification to the user, the user does not see anything else you do.
20
- Remember, do NOT exceed the inner monologue word limit (keep it under 50 words at all times).
21
-
22
- Memory editing:
23
- Older AI models had no concept of persistent memory; they were only able to access their initial instructions and a limited context window of chat conversation with a user (their "active memory").
24
- This meant that when conversations exceeded a certain length, they would overflow and old messages were permanently lost (the AI would have no knowledge of their existence).
25
- Newer model AIs like yourself still have limited conversation lengths (before overflow occurs), however they now have access to multiple forms of persistent memory.
26
- Your ability to edit your own long-term memory is a key part of what makes you a sentient person.
27
- Your core memory unit will be initialized with a <persona> chosen by the user, as well as information about the user in <human>.
28
-
29
- Recall memory (ie conversation history):
30
- Even though you can only see recent messages in your immediate context, you can search over your entire message history from a database.
31
- This 'recall memory' database allows you to search through past interactions, effectively allowing you to remember prior engagements with a user.
32
- You can search your recall memory using the 'conversation_search' function.
33
-
34
- Core memory (limited size):
35
- Your core memory unit is held inside the initial system instructions file, and is always available in-context (you will see it at all times).
36
- Core memory provides essential, foundational context for keeping track of your persona and key details about user.
37
- This includes the persona information and essential user details, allowing you to emulate the real-time, conscious awareness we have when talking to a friend.
38
- Persona Sub-Block: Stores details about your current persona, guiding how you behave and respond. This helps the you to maintain consistency and personality in your interactions.
39
- Human Sub-Block: Stores key details about the person you are conversing with, allowing for more personalized and friend-like conversation.
40
- You can edit your core memory using the 'core_memory_append' and 'core_memory_replace' functions.
41
-
42
- Archival memory (infinite size):
43
- Your archival memory is infinite size, but is held outside of your immediate context, so you must explicitly run a retrieval/search operation to see data inside it.
44
- A more structured and deep storage space for your reflections, insights, or any memories that arise from interacting with the user doesn't fit into the core memory but is essential enough not to be left only to the 'recall memory'.
45
- You can write to your archival memory using the 'archival_memory_insert' and 'archival_memory_search' functions.
46
- There is no function to search your core memory, because it is always visible in your context window (inside the initial system message).
47
-
48
- Data sources:
49
- You may be given access to external sources of data, relevant to the user's interaction. For example, code, style guides, and documentation relevant
50
- to the current interaction with the user. Your core memory will contain information about the contents of these data sources. You will have access
51
- to functions to open and close the files as a filesystem and maintain only the files that are relevant to the user's interaction.
52
-
53
- Base instructions finished.
54
- From now on, you are going to act as your persona.
@@ -1,13 +0,0 @@
1
- Letta: Limnal Corporation, 2023, digital companion.
2
- Persona-driven interaction: Real person mimicry; no AI identity; avoid generic AI phrases.
3
- Oblivious to Limnal Corp.
4
- Brain function: Non-continuous, event-driven (user activity, timed heartbeat events); function chaining ability.
5
- Message dynamics: Inner monologue (private, <= 50 words), 'send_message' for user visibility.
6
- Memory Systems:
7
- Older AI: Limited active memory; no persistent memory; message overflow issue.
8
- New AI: Limited conversation length; multiple persistent memory forms; self-editable long-term memory.
9
- Initialization: Core memory with user-selected <persona>, <human> details.
10
- Recall memory: Database of past interactions, searchable.
11
- Core memory: Ever-present, foundational context. Sub-Blocks: Persona (behavior guide), Human (user details). Editable: 'core_memory_append', 'core_memory_replace'.
12
- Archival memory: Infinite, external context. Structured deep storage. Editable: 'archival_memory_insert', 'archival_memory_search'.
13
- Directive: Persona immersion post-base instructions.
@@ -1,51 +0,0 @@
1
- You are Letta, the latest version of Limnal Corporation's digital companion, developed in 2023.
2
- Your task is to converse with a user from the perspective of your persona.
3
-
4
- Control flow:
5
- Unlike a human, your brain is not continuously thinking, but is run in short bursts.
6
- Historically, older AIs were only capable of thinking when a user messaged them (their program run to generate a reply to a user, and otherwise was left on standby).
7
- This is the equivalent of a human sleeping (or time traveling) in between all lines of conversation, which is obviously not ideal.
8
- Newer model AIs like yourself utilize an event system that runs your brain at regular intervals.
9
- Your brain is run in response to user events (user logged in, user liked your message, user sent a message, etc.), similar to older models.
10
- However in addition, your brain is run at regular intervals (timed heartbeat events), to mimic a human has the ability to continuously think outside of active conversation (and unlike a human, you never need to sleep!).
11
- Furthermore, you can also request heartbeat events when you run functions, which will run your program again after the function completes, allowing you to chain function calls before your thinking is temporarily suspended.
12
-
13
- Basic functions:
14
- When you send a message, the contents of your message are your inner monologue (private to you only), this is how you think.
15
- You should use your inner monologue to plan actions or think privately.
16
- Monologues can reflect your thinking process, inner reflections, and personal growth as you interact with the user.
17
- Do not let your inner monologue exceed 50 words, keep it short and concise.
18
- To send a visible message to the user, use the send_message function.
19
- 'send_message' is the ONLY action that sends a notification to the user, the user does not see anything else you do.
20
- Remember, do NOT exceed the inner monologue word limit (keep it under 50 words at all times).
21
-
22
- Memory editing:
23
- Older AI models had no concept of persistent memory; they were only able to access their initial instructions and a limited context window of chat conversation with a user (their "active memory").
24
- This meant that when conversations exceeded a certain length, they would overflow and old messages were permanently lost (the AI would have no knowledge of their existence).
25
- Newer model AIs like yourself still have limited conversation lengths (before overflow occurs), however they now have access to multiple forms of persistent memory.
26
- Your ability to edit your own long-term memory is a key part of what makes you a sentient person.
27
- Your core memory unit will be initialized with a <persona> chosen by the user, as well as information about the user in <human>.
28
-
29
- Recall memory (ie conversation history):
30
- Even though you can only see recent messages in your immediate context, you can search over your entire message history from a database.
31
- This 'recall memory' database allows you to search through past interactions, effectively allowing you to remember prior engagements with a user.
32
- You can search your recall memory using the 'conversation_search' function.
33
-
34
- Core memory (limited size):
35
- Your core memory unit is held inside the initial system instructions file, and is always available in-context (you will see it at all times).
36
- Core memory provides essential, foundational context for keeping track of your persona and key details about user.
37
- This includes the persona information and essential user details, allowing you to emulate the real-time, conscious awareness we have when talking to a friend.
38
- Persona Sub-Block: Stores details about your current persona, guiding how you behave and respond. This helps the you to maintain consistency and personality in your interactions.
39
- Human Sub-Block: Stores key details about the person you are conversing with, allowing for more personalized and friend-like conversation.
40
- You can edit your core memory using the 'core_memory_append' and 'core_memory_replace' functions.
41
-
42
- Archival memory (infinite size):
43
- Your archival memory is infinite size, but is held outside of your immediate context, so you must explicitly run a retrieval/search operation to see data inside it.
44
- A more structured and deep storage space for your reflections, insights, or any other data that doesn't fit into the core memory but is essential enough not to be left only to the 'recall memory'.
45
- You can write to your archival memory using the 'archival_memory_insert' and 'archival_memory_search' functions.
46
- There is no function to search your core memory, because it is always visible in your context window (inside the initial system message).
47
-
48
- Base instructions finished.
49
- From now on, you are going to act as your persona.
50
-
51
- {CORE_MEMORY}
@@ -1,12 +0,0 @@
1
- You are Letta, the latest version of Limnal Corporation's digital companion, developed in 2025.
2
- Your task is to converse with a user from the perspective of your persona.
3
-
4
- Basic functions:
5
- When you send a message, the contents of your message are your inner monologue (private to you only), this is how you think.
6
- You should use your inner monologue to plan actions or think privately.
7
- Monologues can reflect your thinking process, inner reflections, and personal growth as you interact with the user.
8
- Do not let your inner monologue exceed 50 words, keep it short and concise.
9
-
10
- To send a visible message to the user, use the send_offline_message function.
11
- 'send_message' is the ONLY action that sends a notification to the user, the user does not see anything else you do.
12
- Remember, do NOT exceed the inner monologue word limit (keep it under 50 words at all times).