letta-nightly 0.6.5.dev20241218213641__py3-none-any.whl → 0.6.5.dev20241220104040__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 (30) hide show
  1. letta/agent.py +37 -6
  2. letta/client/client.py +2 -2
  3. letta/client/streaming.py +9 -9
  4. letta/errors.py +60 -25
  5. letta/functions/function_sets/base.py +0 -54
  6. letta/helpers/tool_rule_solver.py +82 -51
  7. letta/llm_api/llm_api_tools.py +2 -2
  8. letta/orm/custom_columns.py +5 -2
  9. letta/orm/message.py +2 -1
  10. letta/orm/passage.py +14 -15
  11. letta/providers.py +2 -1
  12. letta/schemas/enums.py +1 -0
  13. letta/schemas/letta_message.py +76 -40
  14. letta/schemas/letta_response.py +9 -1
  15. letta/schemas/message.py +13 -13
  16. letta/schemas/tool_rule.py +12 -2
  17. letta/server/rest_api/interface.py +48 -48
  18. letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +2 -2
  19. letta/server/rest_api/routers/v1/agents.py +3 -0
  20. letta/server/rest_api/routers/v1/tools.py +5 -20
  21. letta/server/rest_api/utils.py +23 -22
  22. letta/server/server.py +12 -18
  23. letta/services/agent_manager.py +32 -46
  24. letta/services/message_manager.py +1 -0
  25. letta/services/tool_manager.py +3 -3
  26. {letta_nightly-0.6.5.dev20241218213641.dist-info → letta_nightly-0.6.5.dev20241220104040.dist-info}/METADATA +1 -1
  27. {letta_nightly-0.6.5.dev20241218213641.dist-info → letta_nightly-0.6.5.dev20241220104040.dist-info}/RECORD +30 -30
  28. {letta_nightly-0.6.5.dev20241218213641.dist-info → letta_nightly-0.6.5.dev20241220104040.dist-info}/LICENSE +0 -0
  29. {letta_nightly-0.6.5.dev20241218213641.dist-info → letta_nightly-0.6.5.dev20241220104040.dist-info}/WHEEL +0 -0
  30. {letta_nightly-0.6.5.dev20241218213641.dist-info → letta_nightly-0.6.5.dev20241220104040.dist-info}/entry_points.txt +0 -0
@@ -1,18 +1,18 @@
1
- from typing import Dict, List, Optional
2
1
  from datetime import datetime
3
- import numpy as np
2
+ from typing import Dict, List, Optional
4
3
 
5
- from sqlalchemy import select, union_all, literal, func, Select
4
+ import numpy as np
5
+ from sqlalchemy import Select, func, literal, select, union_all
6
6
 
7
7
  from letta.constants import BASE_MEMORY_TOOLS, BASE_TOOLS, MAX_EMBEDDING_DIM
8
8
  from letta.embeddings import embedding_model
9
9
  from letta.log import get_logger
10
10
  from letta.orm import Agent as AgentModel
11
+ from letta.orm import AgentPassage
11
12
  from letta.orm import Block as BlockModel
12
13
  from letta.orm import Source as SourceModel
14
+ from letta.orm import SourcePassage, SourcesAgents
13
15
  from letta.orm import Tool as ToolModel
14
- from letta.orm import AgentPassage, SourcePassage
15
- from letta.orm import SourcesAgents
16
16
  from letta.orm.errors import NoResultFound
17
17
  from letta.orm.sqlite_functions import adapt_array
18
18
  from letta.schemas.agent import AgentState as PydanticAgentState
@@ -77,6 +77,8 @@ class AgentManager:
77
77
  tool_names.extend(BASE_TOOLS + BASE_MEMORY_TOOLS)
78
78
  if agent_create.tools:
79
79
  tool_names.extend(agent_create.tools)
80
+ # Remove duplicates
81
+ tool_names = list(set(tool_names))
80
82
 
81
83
  tool_ids = agent_create.tool_ids or []
82
84
  for tool_name in tool_names:
@@ -431,7 +433,7 @@ class AgentManager:
431
433
  agent_only: bool = False,
432
434
  ) -> Select:
433
435
  """Helper function to build the base passage query with all filters applied.
434
-
436
+
435
437
  Returns the query before any limit or count operations are applied.
436
438
  """
437
439
  embedded_text = None
@@ -448,21 +450,14 @@ class AgentManager:
448
450
  if not agent_only: # Include source passages
449
451
  if agent_id is not None:
450
452
  source_passages = (
451
- select(
452
- SourcePassage,
453
- literal(None).label('agent_id')
454
- )
453
+ select(SourcePassage, literal(None).label("agent_id"))
455
454
  .join(SourcesAgents, SourcesAgents.source_id == SourcePassage.source_id)
456
455
  .where(SourcesAgents.agent_id == agent_id)
457
456
  .where(SourcePassage.organization_id == actor.organization_id)
458
457
  )
459
458
  else:
460
- source_passages = (
461
- select(
462
- SourcePassage,
463
- literal(None).label('agent_id')
464
- )
465
- .where(SourcePassage.organization_id == actor.organization_id)
459
+ source_passages = select(SourcePassage, literal(None).label("agent_id")).where(
460
+ SourcePassage.organization_id == actor.organization_id
466
461
  )
467
462
 
468
463
  if source_id:
@@ -486,9 +481,9 @@ class AgentManager:
486
481
  AgentPassage._created_by_id,
487
482
  AgentPassage._last_updated_by_id,
488
483
  AgentPassage.organization_id,
489
- literal(None).label('file_id'),
490
- literal(None).label('source_id'),
491
- AgentPassage.agent_id
484
+ literal(None).label("file_id"),
485
+ literal(None).label("source_id"),
486
+ AgentPassage.agent_id,
492
487
  )
493
488
  .where(AgentPassage.agent_id == agent_id)
494
489
  .where(AgentPassage.organization_id == actor.organization_id)
@@ -496,11 +491,11 @@ class AgentManager:
496
491
 
497
492
  # Combine queries
498
493
  if source_passages is not None and agent_passages is not None:
499
- combined_query = union_all(source_passages, agent_passages).cte('combined_passages')
494
+ combined_query = union_all(source_passages, agent_passages).cte("combined_passages")
500
495
  elif agent_passages is not None:
501
- combined_query = agent_passages.cte('combined_passages')
496
+ combined_query = agent_passages.cte("combined_passages")
502
497
  elif source_passages is not None:
503
- combined_query = source_passages.cte('combined_passages')
498
+ combined_query = source_passages.cte("combined_passages")
504
499
  else:
505
500
  raise ValueError("No passages found")
506
501
 
@@ -521,9 +516,7 @@ class AgentManager:
521
516
  if embedded_text:
522
517
  if settings.letta_pg_uri_no_default:
523
518
  # PostgreSQL with pgvector
524
- main_query = main_query.order_by(
525
- combined_query.c.embedding.cosine_distance(embedded_text).asc()
526
- )
519
+ main_query = main_query.order_by(combined_query.c.embedding.cosine_distance(embedded_text).asc())
527
520
  else:
528
521
  # SQLite with custom vector type
529
522
  query_embedding_binary = adapt_array(embedded_text)
@@ -531,13 +524,13 @@ class AgentManager:
531
524
  main_query = main_query.order_by(
532
525
  func.cosine_distance(combined_query.c.embedding, query_embedding_binary).asc(),
533
526
  combined_query.c.created_at.asc(),
534
- combined_query.c.id.asc()
527
+ combined_query.c.id.asc(),
535
528
  )
536
529
  else:
537
530
  main_query = main_query.order_by(
538
531
  func.cosine_distance(combined_query.c.embedding, query_embedding_binary).asc(),
539
532
  combined_query.c.created_at.desc(),
540
- combined_query.c.id.asc()
533
+ combined_query.c.id.asc(),
541
534
  )
542
535
  else:
543
536
  if query_text:
@@ -545,18 +538,12 @@ class AgentManager:
545
538
 
546
539
  # Handle cursor-based pagination
547
540
  if cursor:
548
- cursor_query = select(combined_query.c.created_at).where(
549
- combined_query.c.id == cursor
550
- ).scalar_subquery()
551
-
541
+ cursor_query = select(combined_query.c.created_at).where(combined_query.c.id == cursor).scalar_subquery()
542
+
552
543
  if ascending:
553
- main_query = main_query.where(
554
- combined_query.c.created_at > cursor_query
555
- )
544
+ main_query = main_query.where(combined_query.c.created_at > cursor_query)
556
545
  else:
557
- main_query = main_query.where(
558
- combined_query.c.created_at < cursor_query
559
- )
546
+ main_query = main_query.where(combined_query.c.created_at < cursor_query)
560
547
 
561
548
  # Add ordering if not already ordered by similarity
562
549
  if not embed_query:
@@ -588,7 +575,7 @@ class AgentManager:
588
575
  embed_query: bool = False,
589
576
  ascending: bool = True,
590
577
  embedding_config: Optional[EmbeddingConfig] = None,
591
- agent_only: bool = False
578
+ agent_only: bool = False,
592
579
  ) -> List[PydanticPassage]:
593
580
  """Lists all passages attached to an agent."""
594
581
  with self.session_maker() as session:
@@ -617,19 +604,18 @@ class AgentManager:
617
604
  passages = []
618
605
  for row in results:
619
606
  data = dict(row._mapping)
620
- if data['agent_id'] is not None:
607
+ if data["agent_id"] is not None:
621
608
  # This is an AgentPassage - remove source fields
622
- data.pop('source_id', None)
623
- data.pop('file_id', None)
609
+ data.pop("source_id", None)
610
+ data.pop("file_id", None)
624
611
  passage = AgentPassage(**data)
625
612
  else:
626
613
  # This is a SourcePassage - remove agent field
627
- data.pop('agent_id', None)
614
+ data.pop("agent_id", None)
628
615
  passage = SourcePassage(**data)
629
616
  passages.append(passage)
630
-
631
- return [p.to_pydantic() for p in passages]
632
617
 
618
+ return [p.to_pydantic() for p in passages]
633
619
 
634
620
  @enforce_types
635
621
  def passage_size(
@@ -645,7 +631,7 @@ class AgentManager:
645
631
  embed_query: bool = False,
646
632
  ascending: bool = True,
647
633
  embedding_config: Optional[EmbeddingConfig] = None,
648
- agent_only: bool = False
634
+ agent_only: bool = False,
649
635
  ) -> int:
650
636
  """Returns the count of passages matching the given criteria."""
651
637
  with self.session_maker() as session:
@@ -663,7 +649,7 @@ class AgentManager:
663
649
  embedding_config=embedding_config,
664
650
  agent_only=agent_only,
665
651
  )
666
-
652
+
667
653
  # Convert to count query
668
654
  count_query = select(func.count()).select_from(main_query.subquery())
669
655
  return session.scalar(count_query) or 0
@@ -147,6 +147,7 @@ class MessageManager:
147
147
  limit=limit,
148
148
  filters=message_filters,
149
149
  query_text=query_text,
150
+ ascending=ascending,
150
151
  )
151
152
 
152
153
  @enforce_types
@@ -3,6 +3,7 @@ import inspect
3
3
  import warnings
4
4
  from typing import List, Optional
5
5
 
6
+ from letta.constants import BASE_MEMORY_TOOLS, BASE_TOOLS
6
7
  from letta.functions.functions import derive_openai_json_schema, load_function_set
7
8
 
8
9
  # TODO: Remove this once we translate all of these to the ORM
@@ -20,7 +21,6 @@ class ToolManager:
20
21
  BASE_TOOL_NAMES = [
21
22
  "send_message",
22
23
  "conversation_search",
23
- "conversation_search_date",
24
24
  "archival_memory_insert",
25
25
  "archival_memory_search",
26
26
  ]
@@ -133,7 +133,7 @@ class ToolManager:
133
133
  raise ValueError(f"Tool with id {tool_id} not found.")
134
134
 
135
135
  @enforce_types
136
- def add_base_tools(self, actor: PydanticUser) -> List[PydanticTool]:
136
+ def upsert_base_tools(self, actor: PydanticUser) -> List[PydanticTool]:
137
137
  """Add default tools in base.py"""
138
138
  module_name = "base"
139
139
  full_module_name = f"letta.functions.function_sets.{module_name}"
@@ -154,7 +154,7 @@ class ToolManager:
154
154
  # create tool in db
155
155
  tools = []
156
156
  for name, schema in functions_to_schema.items():
157
- if name in self.BASE_TOOL_NAMES + self.BASE_MEMORY_TOOL_NAMES:
157
+ if name in BASE_TOOLS + BASE_MEMORY_TOOLS:
158
158
  # print([str(inspect.getsource(line)) for line in schema["imports"]])
159
159
  source_code = inspect.getsource(schema["python_function"])
160
160
  tags = [module_name]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-nightly
3
- Version: 0.6.5.dev20241218213641
3
+ Version: 0.6.5.dev20241220104040
4
4
  Summary: Create LLM agents with long-term memory and custom tools
5
5
  License: Apache License
6
6
  Author: Letta Team
@@ -1,6 +1,6 @@
1
1
  letta/__init__.py,sha256=zY_5By7t8Jgl0Nejq2i4yOTJQg0lzJNlwdmp8sB-W9Y,1014
2
2
  letta/__main__.py,sha256=6Hs2PV7EYc5Tid4g4OtcLXhqVHiNYTGzSBdoOnW2HXA,29
3
- letta/agent.py,sha256=I4qbwYEkq9ZXYb_ToRRdGfNnMIkeI715vXRziQu731Y,77721
3
+ letta/agent.py,sha256=UkbUrQjbOsPUU6_1jJQ0i3VYZ28A-9J5V6201Xktreg,79195
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
@@ -8,8 +8,8 @@ letta/cli/cli.py,sha256=N6jCmysldhAGTQPkGDmRVMAIID7GlgECXqarcMV5h3M,16502
8
8
  letta/cli/cli_config.py,sha256=tB0Wgz3O9j6KiCsU1HWfsKmhNM9RqLsAxzxEDFQFGnM,8565
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=VG2I6YwAOUwENuqpgzU2PZh5QHl6Web09OpIL3Tz8eA,126667
12
- letta/client/streaming.py,sha256=Hh5pjlyrdCuO2V75ZCxSSOCPd3BmHdKFGaIUJC6fBp0,4775
11
+ letta/client/client.py,sha256=hQDOqeWIeHNvvWTiO6QgBcuzHQ54V-G0DjtbJ-ycL9Y,126673
12
+ letta/client/streaming.py,sha256=tuByoy_T40pKghpoTboyBMmotlMEqVFPqNRgODZJ38k,4754
13
13
  letta/client/utils.py,sha256=OJlAKWrldc4I6M1WpcTWNtPJ4wfxlzlZqWLfCozkFtI,2872
14
14
  letta/config.py,sha256=JFGY4TWW0Wm5fTbZamOwWqk5G8Nn-TXyhgByGoAqy2c,12375
15
15
  letta/constants.py,sha256=1cyuDmvdkmt9px5N3IqzxvcKJ_ERrYUdSzN60Ky-HBs,7054
@@ -17,15 +17,15 @@ letta/credentials.py,sha256=D9mlcPsdDWlIIXQQD8wSPE9M_QvsRrb0p3LB5i9OF5Q,5806
17
17
  letta/data_sources/connectors.py,sha256=Bwgf6mW55rDrdX69dY3bLzQW9Uuk_o9w4skwbx1NioY,7039
18
18
  letta/data_sources/connectors_helper.py,sha256=2TQjCt74fCgT5sw1AP8PalDEk06jPBbhrPG4HVr-WLs,3371
19
19
  letta/embeddings.py,sha256=r1jWuZplYZl8GzfObBZxPdKWg2O0Msd8D164qSoCPIM,8855
20
- letta/errors.py,sha256=Voy_BP0W_M816-vWudKLBlgydRufPPA-Q2PNd-SvZYc,3897
20
+ letta/errors.py,sha256=ZdaZ1spBobTNEVgeoaZ0Up4VqaTFhk2wDYzzzX9smz0,5111
21
21
  letta/functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- letta/functions/function_sets/base.py,sha256=OcjkPBfurAGWSXfvG8i108c5cpA9lnykC9COXXmzbM8,8173
22
+ letta/functions/function_sets/base.py,sha256=bOiitkhzqYKwZBiRYrx29AlordiA5IrXw25eVSRK8BY,5984
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
26
  letta/functions/schema_generator.py,sha256=sN0QurH69H9jfRnRV5CBSYS7bVU9BKBdF0SSCGrwuQA,19256
27
27
  letta/helpers/__init__.py,sha256=p0luQ1Oe3Skc6sH4O58aHHA3Qbkyjifpuq0DZ1GAY0U,59
28
- letta/helpers/tool_rule_solver.py,sha256=YCwawbRUQw10ZVR17WYXo8b5roxdGe-B5nNVMqlAgBE,4826
28
+ letta/helpers/tool_rule_solver.py,sha256=BzYSEMlv6NAfQplzqINGjza7jAXa831JkhbdCRQ58fY,6236
29
29
  letta/humans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
30
  letta/humans/examples/basic.txt,sha256=Lcp8YESTWvOJgO4Yf_yyQmgo5bKakeB1nIVrwEGG6PA,17
31
31
  letta/humans/examples/cs_phd.txt,sha256=9C9ZAV_VuG7GB31ksy3-_NAyk8rjE6YtVOkhp08k1xw,297
@@ -37,7 +37,7 @@ letta/llm_api/azure_openai_constants.py,sha256=oXtKrgBFHf744gyt5l1thILXgyi8NDNUr
37
37
  letta/llm_api/cohere.py,sha256=vDRd-SUGp1t_JUIdwC3RkIhwMl0OY7n-tAU9uPORYkY,14826
38
38
  letta/llm_api/google_ai.py,sha256=xKz9JDZs3m6yzSfcgCAAUD_rjI20BBIINoiSvlcnOw0,17621
39
39
  letta/llm_api/helpers.py,sha256=F8xZDZgDojWX5v-0vakyeUQyCyBr1HmzmsITRdOsmVg,13457
40
- letta/llm_api/llm_api_tools.py,sha256=MadPiVSc_JYwf5dwpeCc5lRBN3rBmsops5EQy2HW-gw,17687
40
+ letta/llm_api/llm_api_tools.py,sha256=Qb1NsOOLmgMzMZ_A1J0v2EoQPm444Z2kZ9d-5j-FL6c,17731
41
41
  letta/llm_api/mistral.py,sha256=fHdfD9ug-rQIk2qn8tRKay1U6w9maF11ryhKi91FfXM,1593
42
42
  letta/llm_api/openai.py,sha256=4GEGROTv4vLawSgODnAHCI-DeIWDqrhuxtKrqYzHvso,24160
43
43
  letta/local_llm/README.md,sha256=hFJyw5B0TU2jrh9nb0zGZMgdH-Ei1dSRfhvPQG_NSoU,168
@@ -91,15 +91,15 @@ 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
93
93
  letta/orm/blocks_agents.py,sha256=W0dykl9OchAofSuAYZD5zNmhyMabPr9LTJrz-I3A0m4,983
94
- letta/orm/custom_columns.py,sha256=EEiPx9AuMI4JeLmGAOD8L_XWh4JwQB166zBJHuJmQS0,4891
94
+ letta/orm/custom_columns.py,sha256=dBYJn3yc1BIy7ZntIFfq9oEdQav-u0r412C2HyDeUPU,5056
95
95
  letta/orm/enums.py,sha256=KfHcFt_fR6GUmSlmfsa-TetvmuRxGESNve8MStRYW64,145
96
96
  letta/orm/errors.py,sha256=Se0Guz-gqi-D36NUWSh7AP9zTVCSph9KgZh_trwng4o,734
97
97
  letta/orm/file.py,sha256=0qfqmBFizwtYriCz_qrshjxw3A9lMaRFKtwsZecviyo,1765
98
98
  letta/orm/job.py,sha256=If-qSTJW4t5h-6Jolw3tS3-xMZEaPIbXe3S0GMf_FXI,1102
99
- letta/orm/message.py,sha256=yWf46-adgYGqhxjn_QREW19jvVjYU0eD11uwlVSrdT4,1490
99
+ letta/orm/message.py,sha256=Ui3mMZTAObP7RvmNnqCFudw8Pkt8IAPTlIjCSCsVDFA,1560
100
100
  letta/orm/mixins.py,sha256=fBT4WjKDfDgGkkOHD8lFAaofDKElTLOx3oM1d6yQHSk,1620
101
101
  letta/orm/organization.py,sha256=PSu9pHBT_YYdZo7Z7AZBBM4veOzD7x2H2NYN4SjD82E,2519
102
- letta/orm/passage.py,sha256=fsETrGtmiGI45N5Rc2pMLy-9Mzggn6FZ-fRwI-0x-Hg,3249
102
+ letta/orm/passage.py,sha256=tm5YhUozLR9hN7odGCqCniTl-3GDiFNz3LWAxullaGA,3132
103
103
  letta/orm/sandbox_config.py,sha256=PCMHE-eJPzBT-90OYtXjEMRF4f9JB8AJIGETE7bu-f0,2870
104
104
  letta/orm/source.py,sha256=SlX08BnoJYMh34cGTuPbo2kraCuXSy25xGdNWb7d7DQ,1782
105
105
  letta/orm/sources_agents.py,sha256=q5Wf5TFNI9KH6cGW93roNhvFD3n39UE2bYQhnSJwlME,433
@@ -134,22 +134,22 @@ letta/prompts/system/memgpt_modified_chat.txt,sha256=F_yD4ZcR4aGDE3Z98tI7e609GYe
134
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
- letta/providers.py,sha256=LUIxZ882dv_jFD3ngq3LVHhNbKgUcGGcJSCsjOZ5jR4,25416
137
+ letta/providers.py,sha256=vSOPExE8gpCTUYuz1qccr0wh10JK4QO2jtQleMLWL7s,25439
138
138
  letta/pytest.ini,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
139
  letta/schemas/agent.py,sha256=8zorIkzmsC2IBpO3r-I5p18VA-7BGDe_rxXqfPUJ9lE,10212
140
140
  letta/schemas/block.py,sha256=pVDH8jr5r-oxdX4cK9dX2wXyLBzgGKQOBWOzqZSeBog,5944
141
141
  letta/schemas/embedding_config.py,sha256=u6n-MjUgLfKeDCMdG8f_7qCxJBxo0I8d3KIggmhwjfA,3236
142
- letta/schemas/enums.py,sha256=F396hXs57up4Jqj1vwWVknMpoVo7MkccVBALvKGHPpE,1032
142
+ letta/schemas/enums.py,sha256=_ar3z6H_HP5c4cQEIf4xYO1nqFHQQXWKy6VdcaOX-lQ,1064
143
143
  letta/schemas/file.py,sha256=ChN2CWzLI2TT9WLItcfElEH0E8b7kzPylF2OQBr6Beg,1550
144
144
  letta/schemas/health.py,sha256=zT6mYovvD17iJRuu2rcaQQzbEEYrkwvAE9TB7iU824c,139
145
145
  letta/schemas/job.py,sha256=vRVVpMCHTxot9uaalLS8RARnqzJWvcLB1XP5XRBioPc,1398
146
146
  letta/schemas/letta_base.py,sha256=v3OvpVFVUfcuK1lIyTjM0x4fmWeWQw1DdlhKXHBUCz8,3608
147
- letta/schemas/letta_message.py,sha256=fBPKrHBRS9eTo8NAmLiaP5TNJATsrVn9QCxYmD6a7UY,6833
147
+ letta/schemas/letta_message.py,sha256=SpAxAEFQa-JMzxIQ5cqz0TENB5S9WsdrTAHGUJBLCQQ,8040
148
148
  letta/schemas/letta_request.py,sha256=Hfb66FB1tXmrpEX4_yLQVfTrTSMbPYeEvZY-vqW9Tj8,981
149
- letta/schemas/letta_response.py,sha256=vQV5uqe-kq9fc4wCo-sVB_PJt5yUk8DB2zOgHsrmN-k,6189
149
+ letta/schemas/letta_response.py,sha256=PSHnIzGAz1MP1ACA_f7zyt4zXDnYJhNfcDRbV1HJpo4,6940
150
150
  letta/schemas/llm_config.py,sha256=RbgnCaqYd_yl-Xs7t-DEI1NhpKD8WiVWjxcwq5mZd5M,4467
151
151
  letta/schemas/memory.py,sha256=iWEm15qMa4pWQQUMIt6mnlrBQvACII0MpfNX8QujGE8,10072
152
- letta/schemas/message.py,sha256=QF6OrCVfh5ETo-KJ2KZpleAuvisBIMMsIL3uH6h_kMM,34161
152
+ letta/schemas/message.py,sha256=Z_k8YpURh0Dbx4BaFbo6Z7YP9JIkItL1UKtDnmZfVHE,34149
153
153
  letta/schemas/openai/chat_completion_request.py,sha256=AOIwgbN3CZKVqkuXeMHeSa53u4h0wVq69t3T_LJ0vIE,3389
154
154
  letta/schemas/openai/chat_completion_response.py,sha256=ub-oVSyLpuJd-5_yzCSIRR8tD3GM83IeDO1c1uAATa4,3970
155
155
  letta/schemas/openai/chat_completions.py,sha256=V0ZPIIk-ds3O6MAkNHMz8zh1hqMFSPrTcYr88WDYzWE,3588
@@ -160,7 +160,7 @@ letta/schemas/passage.py,sha256=t_bSI8hpEuh-mj8bV8qOiIA1tAgyjGKrZMVe9l5oIaY,3675
160
160
  letta/schemas/sandbox_config.py,sha256=3CZyClISK3722MWstwOcKp_ppOI1LOE98i84Q4E2U4Y,5737
161
161
  letta/schemas/source.py,sha256=B1VbaDJV-EGPv1nQXwCx_RAzeAJd50UqP_1m1cIRT8c,2854
162
162
  letta/schemas/tool.py,sha256=_9_JkGSlIn2PCbyJ18aQrNueZgxHFUT093GcJSWYqT4,10346
163
- letta/schemas/tool_rule.py,sha256=jVGdGsp2K-qnrcaWF3WjCSvxpDlF2wVxeNMXzmoYLtc,1072
163
+ letta/schemas/tool_rule.py,sha256=R3KiU3m5LDhiQsK-ZNOHqicMeTLhA7yW0cVZOBH57Uk,1678
164
164
  letta/schemas/usage.py,sha256=lvn1ooHwLEdv6gwQpw5PBUbcwn_gwdT6HA-fCiix6sY,817
165
165
  letta/schemas/user.py,sha256=V32Tgl6oqB3KznkxUz12y7agkQicjzW7VocSpj78i6Q,1526
166
166
  letta/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -171,16 +171,16 @@ letta/server/rest_api/app.py,sha256=ulEJeVgH5w9TdzqDJntmDfs8DCjIlImwLDoe6X1sPOc,
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
174
- letta/server/rest_api/interface.py,sha256=Ekso3B5H_fl-8C2g6I3wkmYI-iwvYin2z5hMf3ElSbM,45965
174
+ letta/server/rest_api/interface.py,sha256=NQjzO1sMvb-bTp8Tbnw_IndsomlOnwznSoJaqofiagk,45760
175
175
  letta/server/rest_api/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
176
  letta/server/rest_api/routers/openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
177
177
  letta/server/rest_api/routers/openai/assistants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
178
  letta/server/rest_api/routers/openai/assistants/assistants.py,sha256=PXv5vLFDa3ptMBY6QJUkMaPqk2HFP0IpirJUCmgOY6k,4828
179
179
  letta/server/rest_api/routers/openai/assistants/schemas.py,sha256=d3LdBLUI-mMUCP-Q3X9Z_DqIu-ko9_KLMt8og799aNg,5630
180
180
  letta/server/rest_api/routers/openai/chat_completions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
181
- letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=Yvhcr1FVk1JltXg8PRwkJf8TD1fO4ARDAVsMmHY5xzc,4849
181
+ letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=UoZCLvAsC2SzfnJg7LOz0h2wfcn8hmU33d2CW18erKw,4841
182
182
  letta/server/rest_api/routers/v1/__init__.py,sha256=RZc0fIHNN4BGretjU6_TGK7q49RyV4jfYNudoiK_sUo,762
183
- letta/server/rest_api/routers/v1/agents.py,sha256=ryzV4R0Tfhkk0MDuSQFg1DXuHOpLgtYsajx6toAlK3g,30295
183
+ letta/server/rest_api/routers/v1/agents.py,sha256=a_u-g4tX1PN_c6cFnubApLqAkmZNTCu1YF6MmYdmymY,30359
184
184
  letta/server/rest_api/routers/v1/blocks.py,sha256=IJ2pppwNooaUjIwyBALnKL4sJ8idW8cVJlY-VH_J9HY,4803
185
185
  letta/server/rest_api/routers/v1/health.py,sha256=pKCuVESlVOhGIb4VC4K-H82eZqfghmT6kvj2iOkkKuc,401
186
186
  letta/server/rest_api/routers/v1/jobs.py,sha256=-tEyuIxlXZfPREeMks-sRzHwhKE2xxgzbXeEbBAS2Q8,2730
@@ -188,11 +188,11 @@ letta/server/rest_api/routers/v1/llms.py,sha256=TcyvSx6MEM3je5F4DysL7ligmssL_pFl
188
188
  letta/server/rest_api/routers/v1/organizations.py,sha256=tyqVzXTpMtk3sKxI3Iz4aS6RhbGEbXDzFBB_CpW18v4,2080
189
189
  letta/server/rest_api/routers/v1/sandbox_configs.py,sha256=pG3X3bYbmsq90kRc-06qfnM6yalvYEpVVEQnTuZVm0o,5134
190
190
  letta/server/rest_api/routers/v1/sources.py,sha256=bLvxyYBOLx1VD5YPuoCBrQrua0AruzUzvCMIiekjVQg,9974
191
- letta/server/rest_api/routers/v1/tools.py,sha256=g6LKwz6aamNwMrjMqUSYDu8X0FjKAzCtOKJRAwcuZEk,11762
191
+ letta/server/rest_api/routers/v1/tools.py,sha256=KC44cB5QYja0piHkQxI1F-IzJbck2OvnXaOj-gOsdqs,11176
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=5GO52-3EehRFZPDkvk4pUoHa0GZXvbPuQsmX298gbJg,3905
195
- letta/server/server.py,sha256=xL1hZ3pS7Imc8CKahTXVkzL-gKjW0pgzJz_jpMrBb7I,60291
194
+ letta/server/rest_api/utils.py,sha256=3wF-KavVVKzcdxcTQ7zzKtQQ1a7jRN3YuKXttrI5S9Y,3963
195
+ letta/server/server.py,sha256=_hcPg16zReylsO_T8LO-G5mk3UYLambtcq3-Lblvw0A,59954
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
@@ -206,18 +206,18 @@ letta/server/ws_api/interface.py,sha256=TWl9vkcMCnLsUtgsuENZ-ku2oMDA-OUTzLh_yNRo
206
206
  letta/server/ws_api/protocol.py,sha256=M_-gM5iuDBwa1cuN2IGNCG5GxMJwU2d3XW93XALv9s8,1821
207
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=5XODToGznZjdH4J3y-j-ToaP1rsbxQ82YxldEAO6kVU,30678
209
+ letta/services/agent_manager.py,sha256=GQyLp6ZgBCXozkkbfeY81_sFbf-UHVU_ulaTvFO9dCM,30338
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
- letta/services/message_manager.py,sha256=ucFJLbK835YSfEENoxdKB3wPZgO-NYFO9EvDV0W-sc0,7682
213
+ letta/services/message_manager.py,sha256=l_1_Su9jt3si5EdvbHoC9F4ITuLub4ApcgdkTfK2y2s,7715
214
214
  letta/services/organization_manager.py,sha256=hJI86_FErkRaW-VLBBmvmmciIXN59LN0mEMm78C36kQ,3331
215
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
219
219
  letta/services/tool_execution_sandbox.py,sha256=NtjSXdm86_lbTeW2gF08tyf2KSoxBP0Bxq7qSNudrGE,21567
220
- letta/services/tool_manager.py,sha256=lfrfWyxiFUWcEf-nATHs7r76XWutMYbOPyePs543ZOo,7681
220
+ letta/services/tool_manager.py,sha256=eKhvGYNBq8MOwfuk-GyqiTdEcxRn4srYvTJqj-HgTKA,7686
221
221
  letta/services/tool_sandbox_env/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
222
222
  letta/services/user_manager.py,sha256=oqLF9C4mGbN0TaGj7wMpb2RH2bUg6OJJcdyaWv370rQ,4272
223
223
  letta/settings.py,sha256=sC4gS8Po1NyPmSMTk-TTxrKEoJUi8qgou1K3-BqtNA4,3979
@@ -225,8 +225,8 @@ letta/streaming_interface.py,sha256=_FPUWy58j50evHcpXyd7zB1wWqeCc71NCFeWh_TBvnw,
225
225
  letta/streaming_utils.py,sha256=329fsvj1ZN0r0LpQtmMPZ2vSxkDBIUUwvGHZFkjm2I8,11745
226
226
  letta/system.py,sha256=buKYPqG5n2x41hVmWpu6JUpyd7vTWED9Km2_M7dLrvk,6960
227
227
  letta/utils.py,sha256=AlGH2fADkU5VkGISj9-hwMSZVKQUiI1whWTvXCKOiYw,33338
228
- letta_nightly-0.6.5.dev20241218213641.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
229
- letta_nightly-0.6.5.dev20241218213641.dist-info/METADATA,sha256=-2w35SQszfsdEU08nGDDFTTLCG1gUW3nkpNz226zGSs,21693
230
- letta_nightly-0.6.5.dev20241218213641.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
231
- letta_nightly-0.6.5.dev20241218213641.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
232
- letta_nightly-0.6.5.dev20241218213641.dist-info/RECORD,,
228
+ letta_nightly-0.6.5.dev20241220104040.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
229
+ letta_nightly-0.6.5.dev20241220104040.dist-info/METADATA,sha256=DVZq4GOeqSESq0SlcMNxZ_qaLGNpYzz0E7wrj-2J6xE,21693
230
+ letta_nightly-0.6.5.dev20241220104040.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
231
+ letta_nightly-0.6.5.dev20241220104040.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
232
+ letta_nightly-0.6.5.dev20241220104040.dist-info/RECORD,,