letta-nightly 0.7.7.dev20250430205840__py3-none-any.whl → 0.7.8.dev20250501064110__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 (54) hide show
  1. letta/__init__.py +1 -1
  2. letta/agent.py +8 -12
  3. letta/agents/exceptions.py +6 -0
  4. letta/agents/letta_agent.py +48 -35
  5. letta/agents/letta_agent_batch.py +6 -2
  6. letta/agents/voice_agent.py +10 -7
  7. letta/constants.py +5 -1
  8. letta/functions/composio_helpers.py +100 -0
  9. letta/functions/functions.py +4 -2
  10. letta/functions/helpers.py +19 -99
  11. letta/groups/helpers.py +1 -0
  12. letta/groups/sleeptime_multi_agent.py +5 -1
  13. letta/helpers/message_helper.py +21 -4
  14. letta/helpers/tool_execution_helper.py +1 -1
  15. letta/interfaces/anthropic_streaming_interface.py +165 -158
  16. letta/interfaces/openai_chat_completions_streaming_interface.py +1 -1
  17. letta/llm_api/anthropic.py +15 -10
  18. letta/llm_api/anthropic_client.py +5 -1
  19. letta/llm_api/google_vertex_client.py +1 -1
  20. letta/llm_api/llm_api_tools.py +7 -0
  21. letta/llm_api/llm_client.py +12 -2
  22. letta/llm_api/llm_client_base.py +4 -0
  23. letta/llm_api/openai.py +9 -3
  24. letta/llm_api/openai_client.py +18 -4
  25. letta/memory.py +3 -1
  26. letta/orm/group.py +2 -0
  27. letta/orm/provider.py +10 -0
  28. letta/schemas/agent.py +0 -1
  29. letta/schemas/enums.py +11 -0
  30. letta/schemas/group.py +24 -0
  31. letta/schemas/llm_config.py +1 -0
  32. letta/schemas/llm_config_overrides.py +2 -2
  33. letta/schemas/providers.py +75 -20
  34. letta/schemas/tool.py +3 -8
  35. letta/server/rest_api/app.py +12 -0
  36. letta/server/rest_api/chat_completions_interface.py +1 -1
  37. letta/server/rest_api/interface.py +8 -10
  38. letta/server/rest_api/{optimistic_json_parser.py → json_parser.py} +62 -26
  39. letta/server/rest_api/routers/v1/agents.py +1 -1
  40. letta/server/rest_api/routers/v1/llms.py +4 -3
  41. letta/server/rest_api/routers/v1/providers.py +4 -1
  42. letta/server/rest_api/routers/v1/voice.py +0 -2
  43. letta/server/rest_api/utils.py +8 -19
  44. letta/server/server.py +25 -11
  45. letta/services/group_manager.py +58 -0
  46. letta/services/provider_manager.py +25 -14
  47. letta/services/summarizer/summarizer.py +15 -7
  48. letta/services/tool_executor/tool_execution_manager.py +1 -1
  49. letta/services/tool_executor/tool_executor.py +3 -3
  50. {letta_nightly-0.7.7.dev20250430205840.dist-info → letta_nightly-0.7.8.dev20250501064110.dist-info}/METADATA +4 -5
  51. {letta_nightly-0.7.7.dev20250430205840.dist-info → letta_nightly-0.7.8.dev20250501064110.dist-info}/RECORD +54 -52
  52. {letta_nightly-0.7.7.dev20250430205840.dist-info → letta_nightly-0.7.8.dev20250501064110.dist-info}/LICENSE +0 -0
  53. {letta_nightly-0.7.7.dev20250430205840.dist-info → letta_nightly-0.7.8.dev20250501064110.dist-info}/WHEEL +0 -0
  54. {letta_nightly-0.7.7.dev20250430205840.dist-info → letta_nightly-0.7.8.dev20250501064110.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,7 @@
1
- from typing import List, Optional
1
+ from typing import List, Optional, Union
2
2
 
3
3
  from letta.orm.provider import Provider as ProviderModel
4
+ from letta.schemas.enums import ProviderType
4
5
  from letta.schemas.providers import Provider as PydanticProvider
5
6
  from letta.schemas.providers import ProviderUpdate
6
7
  from letta.schemas.user import User as PydanticUser
@@ -18,6 +19,9 @@ class ProviderManager:
18
19
  def create_provider(self, provider: PydanticProvider, actor: PydanticUser) -> PydanticProvider:
19
20
  """Create a new provider if it doesn't already exist."""
20
21
  with self.session_maker() as session:
22
+ if provider.name == provider.provider_type.value:
23
+ raise ValueError("Provider name must be unique and different from provider type")
24
+
21
25
  # Assign the organization id based on the actor
22
26
  provider.organization_id = actor.organization_id
23
27
 
@@ -59,29 +63,36 @@ class ProviderManager:
59
63
  session.commit()
60
64
 
61
65
  @enforce_types
62
- def list_providers(self, after: Optional[str] = None, limit: Optional[int] = 50, actor: PydanticUser = None) -> List[PydanticProvider]:
66
+ def list_providers(
67
+ self,
68
+ name: Optional[str] = None,
69
+ provider_type: Optional[ProviderType] = None,
70
+ after: Optional[str] = None,
71
+ limit: Optional[int] = 50,
72
+ actor: PydanticUser = None,
73
+ ) -> List[PydanticProvider]:
63
74
  """List all providers with optional pagination."""
75
+ filter_kwargs = {}
76
+ if name:
77
+ filter_kwargs["name"] = name
78
+ if provider_type:
79
+ filter_kwargs["provider_type"] = provider_type
64
80
  with self.session_maker() as session:
65
81
  providers = ProviderModel.list(
66
82
  db_session=session,
67
83
  after=after,
68
84
  limit=limit,
69
85
  actor=actor,
86
+ **filter_kwargs,
70
87
  )
71
88
  return [provider.to_pydantic() for provider in providers]
72
89
 
73
90
  @enforce_types
74
- def get_anthropic_override_provider_id(self) -> Optional[str]:
75
- """Helper function to fetch custom anthropic provider id for v0 BYOK feature"""
76
- anthropic_provider = [provider for provider in self.list_providers() if provider.name == "anthropic"]
77
- if len(anthropic_provider) != 0:
78
- return anthropic_provider[0].id
79
- return None
91
+ def get_provider_id_from_name(self, provider_name: Union[str, None]) -> Optional[str]:
92
+ providers = self.list_providers(name=provider_name)
93
+ return providers[0].id if providers else None
80
94
 
81
95
  @enforce_types
82
- def get_anthropic_override_key(self) -> Optional[str]:
83
- """Helper function to fetch custom anthropic key for v0 BYOK feature"""
84
- anthropic_provider = [provider for provider in self.list_providers() if provider.name == "anthropic"]
85
- if len(anthropic_provider) != 0:
86
- return anthropic_provider[0].api_key
87
- return None
96
+ def get_override_key(self, provider_name: Union[str, None]) -> Optional[str]:
97
+ providers = self.list_providers(name=provider_name)
98
+ return providers[0].api_key if providers else None
@@ -4,6 +4,7 @@ import traceback
4
4
  from typing import List, Tuple
5
5
 
6
6
  from letta.agents.voice_sleeptime_agent import VoiceSleeptimeAgent
7
+ from letta.constants import DEFAULT_MESSAGE_TOOL, DEFAULT_MESSAGE_TOOL_KWARG
7
8
  from letta.log import get_logger
8
9
  from letta.schemas.enums import MessageRole
9
10
  from letta.schemas.letta_message_content import TextContent
@@ -77,7 +78,7 @@ class Summarizer:
77
78
 
78
79
  logger.info("Buffer length hit, evicting messages.")
79
80
 
80
- target_trim_index = len(all_in_context_messages) - self.message_buffer_min + 1
81
+ target_trim_index = len(all_in_context_messages) - self.message_buffer_min
81
82
 
82
83
  while target_trim_index < len(all_in_context_messages) and all_in_context_messages[target_trim_index].role != MessageRole.user:
83
84
  target_trim_index += 1
@@ -112,11 +113,12 @@ class Summarizer:
112
113
  summary_request_text = f"""You’re a memory-recall helper for an AI that can only keep the last {self.message_buffer_min} messages. Scan the conversation history, focusing on messages about to drop out of that window, and write crisp notes that capture any important facts or insights about the human so they aren’t lost.
113
114
 
114
115
  (Older) Evicted Messages:\n
115
- {evicted_messages_str}
116
+ {evicted_messages_str}\n
116
117
 
117
118
  (Newer) In-Context Messages:\n
118
119
  {in_context_messages_str}
119
120
  """
121
+ print(summary_request_text)
120
122
  # Fire-and-forget the summarization task
121
123
  self.fire_and_forget(
122
124
  self.summarizer_agent.step([MessageCreate(role=MessageRole.user, content=[TextContent(text=summary_request_text)])])
@@ -149,6 +151,9 @@ def format_transcript(messages: List[Message], include_system: bool = False) ->
149
151
 
150
152
  # 1) Try plain content
151
153
  if msg.content:
154
+ # Skip tool messages where the name is "send_message"
155
+ if msg.role == MessageRole.tool and msg.name == DEFAULT_MESSAGE_TOOL:
156
+ continue
152
157
  text = "".join(c.text for c in msg.content).strip()
153
158
 
154
159
  # 2) Otherwise, try extracting from function calls
@@ -156,11 +161,14 @@ def format_transcript(messages: List[Message], include_system: bool = False) ->
156
161
  parts = []
157
162
  for call in msg.tool_calls:
158
163
  args_str = call.function.arguments
159
- try:
160
- args = json.loads(args_str)
161
- # pull out a "message" field if present
162
- parts.append(args.get("message", args_str))
163
- except json.JSONDecodeError:
164
+ if call.function.name == DEFAULT_MESSAGE_TOOL:
165
+ try:
166
+ args = json.loads(args_str)
167
+ # pull out a "message" field if present
168
+ parts.append(args.get(DEFAULT_MESSAGE_TOOL_KWARG, args_str))
169
+ except json.JSONDecodeError:
170
+ parts.append(args_str)
171
+ else:
164
172
  parts.append(args_str)
165
173
  text = " ".join(parts).strip()
166
174
 
@@ -100,7 +100,7 @@ class ToolExecutionManager:
100
100
  try:
101
101
  executor = ToolExecutorFactory.get_executor(tool.tool_type)
102
102
  # TODO: Extend this async model to composio
103
- if isinstance(executor, SandboxToolExecutor):
103
+ if isinstance(executor, (SandboxToolExecutor, ExternalComposioToolExecutor)):
104
104
  result = await executor.execute(function_name, function_args, self.agent_state, tool, self.actor)
105
105
  else:
106
106
  result = executor.execute(function_name, function_args, self.agent_state, tool, self.actor)
@@ -5,7 +5,7 @@ from typing import Any, Dict, Optional
5
5
 
6
6
  from letta.constants import COMPOSIO_ENTITY_ENV_VAR_KEY, CORE_MEMORY_LINE_NUMBER_WARNING, RETRIEVAL_QUERY_DEFAULT_PAGE_SIZE
7
7
  from letta.functions.ast_parsers import coerce_dict_args_by_annotations, get_function_annotations_from_source
8
- from letta.functions.helpers import execute_composio_action, generate_composio_action_from_func_name
8
+ from letta.functions.composio_helpers import execute_composio_action_async, generate_composio_action_from_func_name
9
9
  from letta.helpers.composio_helpers import get_composio_api_key
10
10
  from letta.helpers.json_helpers import json_dumps
11
11
  from letta.schemas.agent import AgentState
@@ -486,7 +486,7 @@ class LettaMultiAgentToolExecutor(ToolExecutor):
486
486
  class ExternalComposioToolExecutor(ToolExecutor):
487
487
  """Executor for external Composio tools."""
488
488
 
489
- def execute(
489
+ async def execute(
490
490
  self,
491
491
  function_name: str,
492
492
  function_args: dict,
@@ -505,7 +505,7 @@ class ExternalComposioToolExecutor(ToolExecutor):
505
505
  composio_api_key = get_composio_api_key(actor=actor)
506
506
 
507
507
  # TODO (matt): Roll in execute_composio_action into this class
508
- function_response = execute_composio_action(
508
+ function_response = await execute_composio_action_async(
509
509
  action_name=action_name, args=function_args, api_key=composio_api_key, entity_id=entity_id
510
510
  )
511
511
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-nightly
3
- Version: 0.7.7.dev20250430205840
3
+ Version: 0.7.8.dev20250501064110
4
4
  Summary: Create LLM agents with long-term memory and custom tools
5
5
  License: Apache License
6
6
  Author: Letta Team
@@ -32,7 +32,6 @@ Requires-Dist: boto3 (>=1.36.24,<2.0.0) ; extra == "bedrock"
32
32
  Requires-Dist: brotli (>=1.1.0,<2.0.0)
33
33
  Requires-Dist: colorama (>=0.4.6,<0.5.0)
34
34
  Requires-Dist: composio-core (>=0.7.7,<0.8.0)
35
- Requires-Dist: composio-langchain (>=0.7.7,<0.8.0)
36
35
  Requires-Dist: datamodel-code-generator[http] (>=0.25.0,<0.26.0)
37
36
  Requires-Dist: demjson3 (>=3.0.6,<4.0.0)
38
37
  Requires-Dist: docker (>=7.1.0,<8.0.0) ; extra == "external-tools" or extra == "desktop" or extra == "all"
@@ -51,7 +50,7 @@ Requires-Dist: isort (>=5.13.2,<6.0.0) ; extra == "dev" or extra == "all"
51
50
  Requires-Dist: jinja2 (>=3.1.5,<4.0.0)
52
51
  Requires-Dist: langchain (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "desktop" or extra == "all"
53
52
  Requires-Dist: langchain-community (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "desktop" or extra == "all"
54
- Requires-Dist: letta_client (>=0.1.124,<0.2.0)
53
+ Requires-Dist: letta_client (>=0.1.127,<0.2.0)
55
54
  Requires-Dist: llama-index (>=0.12.2,<0.13.0)
56
55
  Requires-Dist: llama-index-embeddings-openai (>=0.3.1,<0.4.0)
57
56
  Requires-Dist: locust (>=2.31.5,<3.0.0) ; extra == "dev" or extra == "desktop" or extra == "all"
@@ -267,7 +266,7 @@ docker exec -it $(docker ps -q -f ancestor=letta/letta) letta run
267
266
  In the CLI tool, you'll be able to create new agents, or load existing agents:
268
267
  ```
269
268
  🧬 Creating new agent...
270
- ? Select LLM model: letta-free [type=openai] [ip=https://inference.memgpt.ai]
269
+ ? Select LLM model: letta-free [type=openai] [ip=https://inference.letta.com]
271
270
  ? Select embedding model: letta-free [type=hugging-face] [ip=https://embeddings.memgpt.ai]
272
271
  -> 🤖 Using persona profile: 'sam_pov'
273
272
  -> 🧑 Using human profile: 'basic'
@@ -333,7 +332,7 @@ letta run
333
332
  ```
334
333
  ```
335
334
  🧬 Creating new agent...
336
- ? Select LLM model: letta-free [type=openai] [ip=https://inference.memgpt.ai]
335
+ ? Select LLM model: letta-free [type=openai] [ip=https://inference.letta.com]
337
336
  ? Select embedding model: letta-free [type=hugging-face] [ip=https://embeddings.memgpt.ai]
338
337
  -> 🤖 Using persona profile: 'sam_pov'
339
338
  -> 🧑 Using human profile: 'basic'
@@ -1,13 +1,14 @@
1
- letta/__init__.py,sha256=P4uDkEUWeF76dpFQQ15Rqi0-chnGyA5HcQFLvY8w8A0,917
1
+ letta/__init__.py,sha256=7NeuMMH6-BuIQbQ94t0UJuFlMPOXSystOWzznQJ5Nx8,917
2
2
  letta/__main__.py,sha256=6Hs2PV7EYc5Tid4g4OtcLXhqVHiNYTGzSBdoOnW2HXA,29
3
- letta/agent.py,sha256=VCTvaT0skG1uj7s76GVEMKge9Q0ranjajlQtpjST4iw,72242
3
+ letta/agent.py,sha256=6WNvO40ob6YFGvn2yeCnMJ_XdvoNKBJUKmf4bgIYrYY,72093
4
4
  letta/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  letta/agents/base_agent.py,sha256=Nv6OzvMeAvEv4yHAMaltgWvRU9eqSEJVuUm_7NnIeJk,2354
6
6
  letta/agents/ephemeral_agent.py,sha256=el-SUF_16vv_7OouIR-6z0pAE9Yc0PLibygvfCKwqfo,2736
7
+ letta/agents/exceptions.py,sha256=BQY4D4w32OYHM63CM19ko7dPwZiAzUs3NbKvzmCTcJg,318
7
8
  letta/agents/helpers.py,sha256=MBVFmi_lRAviDbQKZUw_T6PHSHqM1sLy4-_TuuTEqaY,2569
8
- letta/agents/letta_agent.py,sha256=Y_hqJjFcFnVU2-kdbMmtKYp4l9_yCXeHCjvo8qqI1gU,18162
9
- letta/agents/letta_agent_batch.py,sha256=YsuYKwanRAmSPwmT5NVG3oIyOjlOz08hrQgpgRNhXt0,22899
10
- letta/agents/voice_agent.py,sha256=opdo-HN-TB6M9uB3MAqzY62evG8voDcGtnkmETbWYYI,22486
9
+ letta/agents/letta_agent.py,sha256=PJmdvjm48pkHYTMHLBRXedn7_vvqFHAF_xZSCraE448,19072
10
+ letta/agents/letta_agent_batch.py,sha256=8-uIVZMsPTPxYhwKZ9IZAkStGz9G-vzIAdTs1j9xbXg,23114
11
+ letta/agents/voice_agent.py,sha256=oqiDAiUR9WKdSfInNIdRU93uE06OZZsElTAzjk8WAzg,22650
11
12
  letta/agents/voice_sleeptime_agent.py,sha256=omOOOVje2kx8zTfVZiMli_hbHbGZ_VGd5-87zzqxeKQ,17172
12
13
  letta/benchmark/benchmark.py,sha256=ebvnwfp3yezaXOQyGXkYCDYpsmre-b9hvNtnyx4xkG0,3701
13
14
  letta/benchmark/constants.py,sha256=aXc5gdpMGJT327VuxsT5FngbCK2J41PQYeICBO7g_RE,536
@@ -19,19 +20,20 @@ letta/client/client.py,sha256=uHSsJ9xdAZ8etKb-tIfz-xjWz-otenAxuMwWVjEbpjY,138227
19
20
  letta/client/streaming.py,sha256=UsDS_tDTsA3HgYryIDvGGmx_dWfnfQwtmEwLi4Z89Ik,4701
20
21
  letta/client/utils.py,sha256=VCGV-op5ZSmurd4yw7Vhf93XDQ0BkyBT8qsuV7EqfiU,2859
21
22
  letta/config.py,sha256=JFGY4TWW0Wm5fTbZamOwWqk5G8Nn-TXyhgByGoAqy2c,12375
22
- letta/constants.py,sha256=yJvc4eq3fMfkokF7l6YCZxeVOnwNwQcBjPufvpoV3Ek,9091
23
+ letta/constants.py,sha256=u82qDsb4mi2jwZ9DVz95ysMc8YNWQZkp1e-KiERuOUE,9211
23
24
  letta/data_sources/connectors.py,sha256=m4ALtjlaZpSlJnlq2VMNzx0onowNpjvoa4ZjAB5SMQw,7243
24
25
  letta/data_sources/connectors_helper.py,sha256=oQpVlc-BjSz9sTZ7sp4PsJSXJbBKpZPi3Dam03CURTQ,3376
25
26
  letta/embeddings.py,sha256=KvC2bl5tARpVY9xcFmw4Cwu1vN0DoH266v2mSUZqwkY,10528
26
27
  letta/errors.py,sha256=GCgFBvluPxebfz1_wB0y-82N8rlVPhGIn-x7UfV3wVU,6961
27
28
  letta/functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
29
  letta/functions/ast_parsers.py,sha256=CQI0rUoIXcLKAev_GYrXcldRIGN5ZQtk5u4FLoHe5sE,5728
30
+ letta/functions/composio_helpers.py,sha256=rL1-sY3UYEq5AUkfwQzKu_IGrPqkpoS_Rr9oSag1Cjc,3735
29
31
  letta/functions/function_sets/base.py,sha256=GqInIQ7hMPiuPlrHF_u7A3Gds7G1Za-mu9ML8A5Rg6k,16096
30
32
  letta/functions/function_sets/extras.py,sha256=mG7jCd2RUsf1w9G8mVcv26twJWpiDhbWI6VvnLZoEOk,4899
31
33
  letta/functions/function_sets/multi_agent.py,sha256=de2_wNVpWQviF1-XUkrliFvVresj6cOw7nOB61nGGW8,6899
32
34
  letta/functions/function_sets/voice.py,sha256=RUI-xblR2wOPf3L5Lt7KY5SNnOkghhmIdvRTzZlDivg,3814
33
- letta/functions/functions.py,sha256=No9DSb_BsXD3xwyODiEZRfmudKI3KoEK4bOtVQXFiJo,5713
34
- letta/functions/helpers.py,sha256=zj1xOHz-ZQHRy0CfyulzdZKnan2DkLhO9Rc-KkSlrGM,28031
35
+ letta/functions/functions.py,sha256=-1zAfHnsn6CltvKRnZvWkOhMVyNFnvarIHGfYudc-CE,5819
36
+ letta/functions/helpers.py,sha256=WguTgJfpZz504MIkXl7qa3IppvdzgS1fDFYKEnNvBF4,24975
35
37
  letta/functions/interface.py,sha256=pN1gpDnLISW44gRcic1IX6I6pDwOT9UbkST_4ICuMvQ,2936
36
38
  letta/functions/mcp_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
39
  letta/functions/mcp_client/base_client.py,sha256=lFcdLMfKuQb2CQ5gfG29t83s43mXIc__N4dtg2vBkZQ,4330
@@ -41,9 +43,9 @@ letta/functions/mcp_client/stdio_client.py,sha256=2oouLGphu4S15OrYj97n9_ZYZo-GMR
41
43
  letta/functions/mcp_client/types.py,sha256=nmcnQn2EpxXzXg5_pWPsHZobfxO6OucaUgz1bVvam7o,1411
42
44
  letta/functions/schema_generator.py,sha256=OoXDHd5oZMNjljZJplEIMOMmKvxO_rfDFtAi-E9EHMA,22488
43
45
  letta/groups/dynamic_multi_agent.py,sha256=OLCxhICFLYyx8wjKGPr1INc6pniEuk4YGZyZhq2vkiY,12230
44
- letta/groups/helpers.py,sha256=pfvwIia27wKWBgWjhN12DLkHRfzNw6R9nSBZrrPEmx4,4459
46
+ letta/groups/helpers.py,sha256=AcrguRkshtXEV31eWKRfGYEVub8plHsU2kg3QpezbZw,4500
45
47
  letta/groups/round_robin_multi_agent.py,sha256=uUJff0bO68udOREiKFWeS7eEQlk3bF7hcfLSFXMScqI,6999
46
- letta/groups/sleeptime_multi_agent.py,sha256=yfi78hnCZ24Alux95dHE6s8JvlLR9LjHqKpRf7Rvpic,10217
48
+ letta/groups/sleeptime_multi_agent.py,sha256=EbJX7aa-NxxX9zZlwzEJuGST0WrzYI4Yw6RUHP6gCR4,10444
47
49
  letta/groups/sleeptime_multi_agent_v2.py,sha256=MPOjB8LMAW1R2SAEZC9TIOk12nWqEPzMp_80t8cF1Wg,10064
48
50
  letta/groups/supervisor_multi_agent.py,sha256=ml8Gi9gyVjPuVZjAJAkpGZDjnM7GOS50NkKf5SIutvQ,4455
49
51
  letta/helpers/__init__.py,sha256=p0luQ1Oe3Skc6sH4O58aHHA3Qbkyjifpuq0DZ1GAY0U,59
@@ -51,16 +53,16 @@ letta/helpers/composio_helpers.py,sha256=5SznD1Y0Y1rV4_wu-uCaZdDU2tNedk-RIX0M9-0
51
53
  letta/helpers/converters.py,sha256=BC_K98vgRO7-_sQsjD9-JnG7XzmwluXU8Hxj9ACBoPU,13754
52
54
  letta/helpers/datetime_helpers.py,sha256=a39913WsZ3VH5p6irIuZly5XEDHm8D4b_rnvF-716_o,3044
53
55
  letta/helpers/json_helpers.py,sha256=PWZ5HhSqGXO4e563dM_8M72q7ScirjXQ4Rv1ckohaV8,396
54
- letta/helpers/message_helper.py,sha256=0nEXJDWF_McVXtdmimNk5H53CbF21-O934hl51SZnxU,1767
55
- letta/helpers/tool_execution_helper.py,sha256=Jxof1Z-NZ2quOYGQT2KLbaBYrv96NKfkBzjITYZxzs0,7590
56
+ letta/helpers/message_helper.py,sha256=50ofBfJDTTAajxTX9YOiRC-ysSDpuyBv2xBrPjrv4Ls,2231
57
+ letta/helpers/tool_execution_helper.py,sha256=BgBgVLZzbc-JTdOGwyU9miV_-zM3A30jkMpwH1otxaU,7599
56
58
  letta/helpers/tool_rule_solver.py,sha256=C7b0Rli_58wcgcCGGFiTIkd-p3yDBGTe5EUCzYE-aQs,7475
57
59
  letta/humans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
60
  letta/humans/examples/basic.txt,sha256=Lcp8YESTWvOJgO4Yf_yyQmgo5bKakeB1nIVrwEGG6PA,17
59
61
  letta/humans/examples/cs_phd.txt,sha256=9C9ZAV_VuG7GB31ksy3-_NAyk8rjE6YtVOkhp08k1xw,297
60
62
  letta/interface.py,sha256=6GKasvJMASu-kcZch6Hffz1vnHuPA_ryI6cLH2bMArc,13023
61
63
  letta/interfaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
- letta/interfaces/anthropic_streaming_interface.py,sha256=9AH4iGe9Uh3l0smdCDy_1p1Qp0boqmnusJo6PkY38fU,16192
63
- letta/interfaces/openai_chat_completions_streaming_interface.py,sha256=5anzqE4ObcJPOrlEQzXGxp1X2s5Jkil01I5qTG9Loo0,4852
64
+ letta/interfaces/anthropic_streaming_interface.py,sha256=OU5Q8OwazIQ6z6AQKGWe6yEHcafnfBiCc3iaMOkbVW4,17038
65
+ letta/interfaces/openai_chat_completions_streaming_interface.py,sha256=-YdOcLElW0E8YzFGMT3b4mWHjLgxGxPh6pAkzRnj4AY,4841
64
66
  letta/interfaces/utils.py,sha256=c6jvO0dBYHh8DQnlN-B0qeNC64d3CSunhfqlFA4pJTY,278
65
67
  letta/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
68
  letta/jobs/helpers.py,sha256=kO4aj954xsQ1RAmkjY6LQQ7JEIGuhaxB1e9pzrYKHAY,914
@@ -68,8 +70,8 @@ letta/jobs/llm_batch_job_polling.py,sha256=qy1-rkm9ehS_DaSz7pvcUmsueW8gug_kubnz8
68
70
  letta/jobs/scheduler.py,sha256=nsXQTpW2YfVC8g6X35RUjguLVPV0NOku2Zt8SdDSnhg,2154
69
71
  letta/jobs/types.py,sha256=K8GKEnqEgAT6Kq4F2hUrBC4ZAFM9OkfOjVMStzxKuXQ,742
70
72
  letta/llm_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- letta/llm_api/anthropic.py,sha256=gF8IbHlNSjD2vSw7MukHEJqWAUr9h0kx5OzF-C0AG0s,44521
72
- letta/llm_api/anthropic_client.py,sha256=9nQdoONlt_stvgX3hl30sgzv66_Yk_PeAnvOEO2Msgg,24418
73
+ letta/llm_api/anthropic.py,sha256=B-O2nS0WkvvgDS_hBQM_lVe33MNsBNeGZWwsll4H5cU,44721
74
+ letta/llm_api/anthropic_client.py,sha256=Be3LupDrXBqgYSy8vpxwR896lL0Tlo3VhaJ5DZTLGl4,24590
73
75
  letta/llm_api/aws_bedrock.py,sha256=kAPpKPRe4ZUa6fkxFbo8xwQgq4fJf3QoZEAP1LOCfaw,4168
74
76
  letta/llm_api/azure_openai.py,sha256=YAkXwKyfnJFNhB45pkJVFsoxUNB_M74rQYchtw_CN6I,5099
75
77
  letta/llm_api/azure_openai_constants.py,sha256=ZaR2IasJThijG0uhLKJThrixdAxLPD2IojfeaJ-KQMQ,294
@@ -77,14 +79,14 @@ letta/llm_api/cohere.py,sha256=IZ6LXyOFMYjWHTeNG9lvFxCdV_NIl0hY2q9SPFYXNkQ,14849
77
79
  letta/llm_api/deepseek.py,sha256=b1mSW8gnBrpAI8d2GcBpDyLYDnuC-P1UP6xJPalfQS4,12456
78
80
  letta/llm_api/google_ai_client.py,sha256=YRGFFYK-81nHoyjO4inoMAhlFNjj5ZjOxLqIUIaxvdc,23017
79
81
  letta/llm_api/google_constants.py,sha256=1dqwt-YwdYGnAHV5rIPfGHfE3ybPzSn_48vlNYfd-bk,588
80
- letta/llm_api/google_vertex_client.py,sha256=lTfAUTPSqwe-cuOoEgUehdwg2ZVHLqXRiu-sj6g8PJg,11645
82
+ letta/llm_api/google_vertex_client.py,sha256=MO5z1laDn2e2kQQg5ydcVdcAIy6M01pYP2UA0rLrkBw,11635
81
83
  letta/llm_api/helpers.py,sha256=sLYv30UnKBRVPuhU_KDXfKFdbkUONiDAyVEwGr86l3A,16780
82
- letta/llm_api/llm_api_tools.py,sha256=aY7QFuho384AoGJPZORFo0FyZSRNSyv9biC5bKOadaU,27660
83
- letta/llm_api/llm_client.py,sha256=JpSZWLoJsHdjlfavyhNyNf_j7N5Ks2DktDuA2PyQO70,1827
84
- letta/llm_api/llm_client_base.py,sha256=-RSVo4986iNLbOyUR3IKggKL2zWD4IBsr8ZbF8p28Ac,5935
84
+ letta/llm_api/llm_api_tools.py,sha256=GEpmPbjBjFl4ztlS5eaNHGwkAOysSVEvidTwlpLHIhg,28070
85
+ letta/llm_api/llm_client.py,sha256=H8JwcKgz6XyooP751R3dNJ9Cf8sVT8v0KQkhjh4KNqA,2274
86
+ letta/llm_api/llm_client_base.py,sha256=i8AVxpZuZqDiJpl-_O2GBdwDuxwIqle91TDyrbYtRYI,6096
85
87
  letta/llm_api/mistral.py,sha256=fHdfD9ug-rQIk2qn8tRKay1U6w9maF11ryhKi91FfXM,1593
86
- letta/llm_api/openai.py,sha256=k7-lW0jxZtXA8YYcVE_y2kTDHJpNU12C77udr-UKYdU,23473
87
- letta/llm_api/openai_client.py,sha256=L98mGTHAVkbewbAfqW5qFJ_OBGLokWguwRhplb1WZC8,13316
88
+ letta/llm_api/openai.py,sha256=ZRBnhWzWgRdyBHSNllfr1vylJD8mpPv_pzcJt0tsErc,23605
89
+ letta/llm_api/openai_client.py,sha256=-dMrtBs7wAxcOU4fpMJXCDHNnrtfiZoquxfNNOTwJ2Q,13825
88
90
  letta/local_llm/README.md,sha256=hFJyw5B0TU2jrh9nb0zGZMgdH-Ei1dSRfhvPQG_NSoU,168
89
91
  letta/local_llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
92
  letta/local_llm/chat_completion_proxy.py,sha256=gc5gaKoHP8QaWRulDeEYPk7Onl8KdCBmpF2l9znXKeQ,13853
@@ -124,7 +126,7 @@ letta/local_llm/webui/legacy_settings.py,sha256=BLmd3TSx5StnY3ibjwaxYATPt_Lvq-o1
124
126
  letta/local_llm/webui/settings.py,sha256=gmLHfiOl1u4JmlAZU2d2O8YKF9lafdakyjwR_ftVPh8,552
125
127
  letta/log.py,sha256=FbFwU9KEX7k0FBYhPl7fJ6uQ3NO3-ZbsnM2OpcTFXjo,2217
126
128
  letta/main.py,sha256=_agyaYPJq70OL0goNwO34zENL2KupnTgqlg-HVcNaTY,15379
127
- letta/memory.py,sha256=E3Xa_hiqnuHmsq0XOGUqUoxQm_es7EWYCtbOFAS23h0,4182
129
+ letta/memory.py,sha256=mQC1Sjzjuy57UZIxCFLl9rM3psV2Ot1rUhYeG3aDyg4,4297
128
130
  letta/openai_backcompat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
131
  letta/openai_backcompat/openai_object.py,sha256=GSzeCTwLpLD2fH4X8wVqzwdmoTjKK2I4PnriBY453lc,13505
130
132
  letta/orm/__all__.py,sha256=2gh2MZTkA3Hw67VWVKK3JIStJOqTeLdpCvYSVYNeEDA,692
@@ -139,7 +141,7 @@ letta/orm/custom_columns.py,sha256=0Azc-OIObBlnlYHUOcSV0s5SzS7lGHDB62NVnhq_ERo,5
139
141
  letta/orm/enums.py,sha256=qRv6m6SJWBTusS8X0Ipqo1xvsXU2RVlizn7nxWspKl4,868
140
142
  letta/orm/errors.py,sha256=Se0Guz-gqi-D36NUWSh7AP9zTVCSph9KgZh_trwng4o,734
141
143
  letta/orm/file.py,sha256=7_p7LxityP3NQZVURQYG0kgcZhEkVuMN0Fj4h9YOe1w,1780
142
- letta/orm/group.py,sha256=GFN0_ObViH8jbPUXptiztca7gF0eQcCAOVb2LLMmRaA,1916
144
+ letta/orm/group.py,sha256=tygd3nWOmTIQ8TRzJeUA8rd9dfMDzw2XH8BfaQ4aEwI,2100
143
145
  letta/orm/groups_agents.py,sha256=1J6ZyXlTjC8CG0fXPuzfcFo_Bg0cpZSyktYRkoFOUt4,483
144
146
  letta/orm/groups_blocks.py,sha256=ou18XqI9tkb0fcecUd4eHTVmmndGuby1DIdmHM5lHF4,489
145
147
  letta/orm/identities_agents.py,sha256=cfIQ6UsbwmjxtGVmFt1ArK2zbKr9k6VWoELuISDnLSc,502
@@ -153,7 +155,7 @@ letta/orm/message.py,sha256=1IMlyvpfw1HqJel_V_tA5GxkNnJiE9mwO0mNgAIFam8,4685
153
155
  letta/orm/mixins.py,sha256=9c79Kfr-Z1hL-SDYKeoptx_yMTbBwJJBo9nrKEzSDAc,1622
154
156
  letta/orm/organization.py,sha256=STQ5x5zXoPhfagiRQX6j2lWgOqwznPp-K019MPjbY0s,3599
155
157
  letta/orm/passage.py,sha256=luoQMBAm2DwWpcGtQziMDjDP5JZZNv1pnEmx-InNHFo,3090
156
- letta/orm/provider.py,sha256=-qA9tvKTZgaM4D7CoDZZiA7zTgjaaWDV4jZvifQv_MM,805
158
+ letta/orm/provider.py,sha256=KkzZk3BYlzwH9qsoxE8jde_iKlTRMdy0n7_Do-ZDQlU,1195
157
159
  letta/orm/sandbox_config.py,sha256=DyOy_1_zCMlp13elCqPcuuA6OwUove6mrjhcpROTg50,4150
158
160
  letta/orm/source.py,sha256=z89VZUHV9K8Ew9JCYoZqUeRb1WEUKmrn0MMFkppaphE,2117
159
161
  letta/orm/sources_agents.py,sha256=Ik_PokCBrXRd9wXWomeNeb8EtLUwjb9VMZ8LWXqpK5A,473
@@ -198,14 +200,14 @@ letta/prompts/system/sleeptime_doc_ingest.txt,sha256=tyzHHzyDA2ib_XRwo5h5Ku9l_f-
198
200
  letta/prompts/system/voice_chat.txt,sha256=Q_vd2Q08z6qTIVeMML0z9706NG8aAq-scxvi--h5tG4,1853
199
201
  letta/prompts/system/voice_sleeptime.txt,sha256=7lTBQPCoxbfuugSrwmR-MHTuHGwvIJqU0jIOg9-YtWA,3812
200
202
  letta/pytest.ini,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
201
- letta/schemas/agent.py,sha256=QyKC_G4SeDP_e7upOeOBGt0vVluc4sM-tJB6GLThz5I,17869
203
+ letta/schemas/agent.py,sha256=25AF730sVTSMtf2eslqitH682cn1Faq6apO2dOyRlDw,17868
202
204
  letta/schemas/block.py,sha256=rMWflyj982qW86dQK-9saXBHKaLCu3aUG2gQTckG3Ik,4984
203
205
  letta/schemas/embedding_config.py,sha256=ufboqW9ctSBJdhwzJRbrGtTzOTwSKfT0LY0mowpr6fs,3398
204
206
  letta/schemas/embedding_config_overrides.py,sha256=lkTa4y-EQ2RnaEKtKDM0sEAk7EwNa67REw8DGNNtGQY,84
205
- letta/schemas/enums.py,sha256=443ybuOZZL963Vt0fYhtJ6AWkIetlOKNUMG0Nz7l2Ss,1443
207
+ letta/schemas/enums.py,sha256=oZauX6-3ZlI1s25DH_ybDtayr8-UlKlDsA_IP2QY75s,1697
206
208
  letta/schemas/environment_variables.py,sha256=VRtzOjdeQdHcSHXisk7oJUQlheruxhSWNS0xqlfGzbs,2429
207
209
  letta/schemas/file.py,sha256=ChN2CWzLI2TT9WLItcfElEH0E8b7kzPylF2OQBr6Beg,1550
208
- letta/schemas/group.py,sha256=7HS5KR2m5rCo_7GtoameCA8QIUOqVEk-IcZMQPnmU7c,4855
210
+ letta/schemas/group.py,sha256=0qFbCvE5gbdSAk1oXXT8xWQ02R4mS_jttJm0ASh8eCQ,6415
209
211
  letta/schemas/health.py,sha256=zT6mYovvD17iJRuu2rcaQQzbEEYrkwvAE9TB7iU824c,139
210
212
  letta/schemas/identity.py,sha256=-6ABqAuz-VfGcAoAX5oVyzpjBiY4jAN-gJUM-PLBQQY,3984
211
213
  letta/schemas/job.py,sha256=VFpaGj2wigAx8VRUCuep9eN7Wsx8f23PHNK8M7R1das,3711
@@ -215,8 +217,8 @@ letta/schemas/letta_message_content.py,sha256=eF2UEDofQx7S_nS1jc9MZypP4EGVWj7zdi
215
217
  letta/schemas/letta_request.py,sha256=TH00tm81Pe8D6r7IrxjKW0Hc8QE_Z4jclbc6VX0_Ybw,1542
216
218
  letta/schemas/letta_response.py,sha256=K11qneqSSE3R2twr65ZYnDzl0oBMf1N1nUnJpI4oiUs,7846
217
219
  letta/schemas/llm_batch_job.py,sha256=n9ZbWINBECRrZW6vslm-f2pk_rI_gpuxcZsqAphl9bE,2879
218
- letta/schemas/llm_config.py,sha256=6PAHBi_3ELLcFXBWinfCslPQ1SjcNZx3mptRnTwZuiw,8122
219
- letta/schemas/llm_config_overrides.py,sha256=-oRglCTcajF6UAK3RAa0FLWVuKODPI1v403fDIWMAtA,1815
220
+ letta/schemas/llm_config.py,sha256=Qqbq7EzOWgifSRWcJ2mkfFEuUQy7e7DqB8DHTjBtekU,8217
221
+ letta/schemas/llm_config_overrides.py,sha256=E6qJuVA8TwAAy3VjGitJ5jSQo5PbN-6VPcZOF5qhP9A,1815
220
222
  letta/schemas/memory.py,sha256=GOYDfPKzbWftUWO9Hv4KW7xAi1EIQmC8zpP7qvEkVHw,10245
221
223
  letta/schemas/message.py,sha256=NQLbFmp9p-pTs3ctB3NLJqmYuXfopWoejbtPYoiQ71c,49720
222
224
  letta/schemas/openai/chat_completion_request.py,sha256=XARKB7717Crt3P2A53eeBZ6hlNJcb9TJHosWwK17tFw,4210
@@ -226,13 +228,13 @@ letta/schemas/openai/embedding_response.py,sha256=WKIZpXab1Av7v6sxKG8feW3ZtpQUNo
226
228
  letta/schemas/openai/openai.py,sha256=Hilo5BiLAGabzxCwnwfzK5QrWqwYD8epaEKFa4Pwndk,7970
227
229
  letta/schemas/organization.py,sha256=TXrHN4IBQnX-mWvRuCOH57XZSLYCVOY0wWm2_UzDQIA,1279
228
230
  letta/schemas/passage.py,sha256=RG0vkaewEu4a_NAZM-FVyMammHjqpPP0RDYAdu27g6A,3723
229
- letta/schemas/providers.py,sha256=j7D3fY3mFebXQDK4eEqsJAYPwRIZqJSYXGi0vqHQhWc,44915
231
+ letta/schemas/providers.py,sha256=7n_-4VfHt_Tu6lyFLngo-sb8yLU2DDcSyUPaSi03QhU,49366
230
232
  letta/schemas/response_format.py,sha256=pXNsjbtpA3Tf8HsDyIa40CSmoUbVR_7n2WOfQaX4aFs,2204
231
233
  letta/schemas/run.py,sha256=SRqPRziINIiPunjOhE_NlbnQYgxTvqmbauni_yfBQRA,2085
232
234
  letta/schemas/sandbox_config.py,sha256=Qfkzw422HCQUsE3GKry94oecQGziAzGXIyd6ke8W06M,5985
233
235
  letta/schemas/source.py,sha256=IuenIFs7B8uOuYJIHXqR1E28wVSa-pUX6NkLZH7cukg,3141
234
236
  letta/schemas/step.py,sha256=WkcVnruUUOWLKwiWPn2Gfal4EQZPNLqlsd9859xhgsw,2224
235
- letta/schemas/tool.py,sha256=Z3mL_80o7fvGmj3pDgzZkpNYGaJYV0YWFHy5ani37qM,13126
237
+ letta/schemas/tool.py,sha256=k8dmXfYA_gcipAjBAwBYWsmhlkGvPnOBqrPG336QpBM,13111
236
238
  letta/schemas/tool_execution_result.py,sha256=O65Z-gwNuB2hrX0Vklw_A9uURu0sz67gxTDr1tNwvJM,804
237
239
  letta/schemas/tool_rule.py,sha256=Il0BLY-CHRuTNeH9CayZTHpg0N_Ii8viYV2isZ_HrPU,6327
238
240
  letta/schemas/usage.py,sha256=9SSTH5kUliwiVF14b-yKbDcmxQBOLg4YH5xhXDbW9UU,1281
@@ -252,28 +254,28 @@ letta/server/constants.py,sha256=yAdGbLkzlOU_dLTx0lKDmAnj0ZgRXCEaIcPJWO69eaE,92
252
254
  letta/server/db.py,sha256=Jt_lWUvqTWFHfgsWUuXcDlGD3yejNBjY1P4J2vI3kL0,4935
253
255
  letta/server/generate_openapi_schema.sh,sha256=0OtBhkC1g6CobVmNEd_m2B6sTdppjbJLXaM95icejvE,371
254
256
  letta/server/rest_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
255
- letta/server/rest_api/app.py,sha256=OO4k3ALIMa-pWAuHsHnlafuR0PZvAHcwbLs0e-v_PWs,14198
257
+ letta/server/rest_api/app.py,sha256=4oWSU29zfmS-bUrNN7p4SisLYFLggdYgY0BIPZoGGQA,14640
256
258
  letta/server/rest_api/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
257
259
  letta/server/rest_api/auth/index.py,sha256=fQBGyVylGSRfEMLQ17cZzrHd5Y1xiVylvPqH5Rl-lXQ,1378
258
260
  letta/server/rest_api/auth_token.py,sha256=725EFEIiNj4dh70hrSd94UysmFD8vcJLrTRfNHkzxDo,774
259
- letta/server/rest_api/chat_completions_interface.py,sha256=0jEdQ4Bh4gz2jBCxDAgNN0-lnV4qlRwQ7QBeA5_L5bo,11100
260
- letta/server/rest_api/interface.py,sha256=c-BaECsK4szrmkDTTl52JckLxx92WR4uwK_VSaWEUdw,65943
261
- letta/server/rest_api/optimistic_json_parser.py,sha256=SS60lTp1oH2MXbHOChEnNm46xYcoAU3nInIXWDglmmw,6739
261
+ letta/server/rest_api/chat_completions_interface.py,sha256=90VOlJ2HTxZtQMDt3aCbrlbGLouj4qHkfEz6PwXtrkc,11089
262
+ letta/server/rest_api/interface.py,sha256=SdRalftQawKjmZL8x2wRtZ1LJ9wLyE00isIfmNyDKQY,65788
263
+ letta/server/rest_api/json_parser.py,sha256=IKG2xFAz_wkLfd3Z-18SKykSzCtUDjdYgTKSKaMqj1I,7813
262
264
  letta/server/rest_api/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
263
265
  letta/server/rest_api/routers/openai/chat_completions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
264
266
  letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=QBWab1fn2LXVDMtc6li3gOzmrNzDiUw5WUJsMeeMZII,5076
265
267
  letta/server/rest_api/routers/v1/__init__.py,sha256=_skmAcDOK9ovHKfywRaBgigo3IvPmnUSQSR2hGVCOhY,1664
266
- letta/server/rest_api/routers/v1/agents.py,sha256=WLcxIKc2yuKqN--b0ug8tTIJTLmyI_WncX3EofuirP4,34603
268
+ letta/server/rest_api/routers/v1/agents.py,sha256=EUxdHhv_JXenrfVupNpT4-lYYG75RP0_T341vHssaZc,34640
267
269
  letta/server/rest_api/routers/v1/blocks.py,sha256=Sefvon0jLvlNh0oAzntUcDZptnutuJOf-2Wcad_45Dg,4169
268
270
  letta/server/rest_api/routers/v1/embeddings.py,sha256=P-Dvt_HNKoTyjRwkScAMg1hlB3cNxMeAQwV7bSatsKI,957
269
271
  letta/server/rest_api/routers/v1/groups.py,sha256=sLXkw8kgf9fhaQwb-n0SVbyzH6-e1kdzNuqGbdvPPgo,10890
270
272
  letta/server/rest_api/routers/v1/health.py,sha256=MoOjkydhGcJXTiuJrKIB0etVXiRMdTa51S8RQ8-50DQ,399
271
273
  letta/server/rest_api/routers/v1/identities.py,sha256=fvp-0cwvb4iX1fUGPkL--9nq8YD3tIE47kYRxUgOlp4,7462
272
274
  letta/server/rest_api/routers/v1/jobs.py,sha256=4oeJfI2odNGubU_g7WSORJhn_usFsbRaD-qm86rve1E,2746
273
- letta/server/rest_api/routers/v1/llms.py,sha256=-3VBkh4vUJvrldLy2ptRnexb33psa1zPHaLiQ812xyE,877
275
+ letta/server/rest_api/routers/v1/llms.py,sha256=zU0fbpLNFpTKdmp-DkNtO0mrRRMyVQvvEx7BL2Mj-xk,958
274
276
  letta/server/rest_api/routers/v1/messages.py,sha256=3hfaiiCBiWr-wub_uzr3Vyh4IBTZYwGqeDG-2h6Xlus,5753
275
277
  letta/server/rest_api/routers/v1/organizations.py,sha256=r7rj-cA3shgAgM0b2JCMqjYsDIFv3ruZjU7SYbPGGqg,2831
276
- letta/server/rest_api/routers/v1/providers.py,sha256=MVfAUvXj_2jx8XFwSigM-8CuCfEATW60h8J5UEmAhp0,3146
278
+ letta/server/rest_api/routers/v1/providers.py,sha256=aIoCLTiWztjn573nsK1UO2UaA3iizL2woU8doK3j57U,3327
277
279
  letta/server/rest_api/routers/v1/runs.py,sha256=9nuJRjBtRgZPq3CiCEUA_3S2xPHFP5DsJxIenH5OO34,8847
278
280
  letta/server/rest_api/routers/v1/sandbox_configs.py,sha256=9hqnnMwJ3wCwO-Bezu3Xl8i3TDSIuInw3gSeHaKUXfE,8526
279
281
  letta/server/rest_api/routers/v1/sources.py,sha256=7cCcgZm9AtUFaWlMcyovC-7f_eNhJa4EcDkZuQbNJo8,11148
@@ -281,10 +283,10 @@ letta/server/rest_api/routers/v1/steps.py,sha256=DVVwaxLNbNAgWpr2oQkrNjdS-wi0bP8
281
283
  letta/server/rest_api/routers/v1/tags.py,sha256=coydgvL6-9cuG2Hy5Ea7QY3inhTHlsf69w0tcZenBus,880
282
284
  letta/server/rest_api/routers/v1/tools.py,sha256=FXFx8J4Zs-pZ1H8andFzI5Pyv-PJkY8YMlWkZlObGdQ,19544
283
285
  letta/server/rest_api/routers/v1/users.py,sha256=G5DBHSkPfBgVHN2Wkm-rVYiLQAudwQczIq2Z3YLdbVo,2277
284
- letta/server/rest_api/routers/v1/voice.py,sha256=iEj7zGY291hBk9bzzBNu8pgq5MDbA1kbgI-TZLrcBG8,1997
286
+ letta/server/rest_api/routers/v1/voice.py,sha256=nSwjoW5Hi9EdScGyRWXpGVooAS0X2G-mOrpLUz0NqNs,1935
285
287
  letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
286
- letta/server/rest_api/utils.py,sha256=GC8RHIxnBr9x1Dlp0vnbDFYtt9ywvwJrcHnbesBgOQI,15307
287
- letta/server/server.py,sha256=1b69M84IS725Y94kRp8Y2xI5TA5Px8eXGrbjhnDdQ5g,84048
288
+ letta/server/rest_api/utils.py,sha256=26x9oLDc5WopM3evfBkFV3XqZlPsSaFOOWcp9v5-en8,15145
289
+ letta/server/server.py,sha256=jc8xCJJT2Z-DUl_OEBBtf-rf7PVyV4tDee-5B6Bh8YU,84769
288
290
  letta/server/startup.sh,sha256=MRXh1RKbS5lyA7XAsk7O6Q4LEKOqnv5B-dwe0SnTHeQ,2514
289
291
  letta/server/static_files/assets/index-048c9598.js,sha256=mR16XppvselwKCcNgONs4L7kZEVa4OEERm4lNZYtLSk,146819
290
292
  letta/server/static_files/assets/index-0e31b727.css,sha256=SBbja96uiQVLDhDOroHgM6NSl7tS4lpJRCREgSS_hA8,7672
@@ -300,7 +302,7 @@ letta/server/ws_api/server.py,sha256=cBSzf-V4zT1bL_0i54OTI3cMXhTIIxqjSRF8pYjk7fg
300
302
  letta/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
301
303
  letta/services/agent_manager.py,sha256=FfMRz0Ewebn0OGhb9adBxga06-da3YmQ2qlh1BHOXUI,72037
302
304
  letta/services/block_manager.py,sha256=rphbpGBIEDFvCJ5GJt6A1OfbURGFQZ3WardljELQyAc,15225
303
- letta/services/group_manager.py,sha256=3AOxg0FWr-p6ip2d1uWr9ynsTPhxgx7CUDJPhzkTc4s,12434
305
+ letta/services/group_manager.py,sha256=kAj0uq4vmeHfI9YREvZGdZFmfQRyuPsLXk-_UcyUQ24,15609
304
306
  letta/services/helpers/agent_manager_helper.py,sha256=2W9DpxGOx3rK2LnpGDtQmBJh9u9sKZ_xwAUAYzAMyS0,20350
305
307
  letta/services/helpers/tool_execution_helper.py,sha256=JdH6VTWFrXfwPWsWNSZFKuRFhhXp8qiDYWjbPc8PLLI,7649
306
308
  letta/services/identity_manager.py,sha256=sjHTCPbLYRDyWCJ3qjcuKZqWqzDoEuslRsDVKQtBraE,9683
@@ -315,17 +317,17 @@ letta/services/message_manager.py,sha256=94mY08FMF1OoxHP4m48BppBCa01eQjKTEMwP7L6
315
317
  letta/services/organization_manager.py,sha256=Ax0KmPSc_YYsYaxeld9gc7ST-J6DemHQ542DD7l7AWA,3989
316
318
  letta/services/passage_manager.py,sha256=YCmb_a80ECH5yq3Glj_Qra_mV6NqTc5oB6RfybHOL00,9992
317
319
  letta/services/per_agent_lock_manager.py,sha256=porM0cKKANQ1FvcGXOO_qM7ARk5Fgi1HVEAhXsAg9-4,546
318
- letta/services/provider_manager.py,sha256=_gEBW0tYIf2vJEGGYxk-nvogrFI9sjFl_97MSL5WC2s,3759
320
+ letta/services/provider_manager.py,sha256=m8SxSdB6MS8YnV9pfc8UJcj5NiThxZpnDxjfl0-KLYM,3981
319
321
  letta/services/sandbox_config_manager.py,sha256=ATgZNWNpkdIQDUPy4ABsguHQba2PZf51-c4Ji60MzLE,13361
320
322
  letta/services/source_manager.py,sha256=yW88wAJoeAWtbg0FxifE352jhgOTKNiG7K-IPKXKnvg,7961
321
323
  letta/services/step_manager.py,sha256=B64iYn6Dt9yRKsSJ5vLxWQR2t-apvPLfUZyzrUsJTpI,5335
322
324
  letta/services/summarizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
323
325
  letta/services/summarizer/enums.py,sha256=szzPX2OBRRJEZsBTGYQThrNz02ELFqhuLwvOR7ozi7A,208
324
- letta/services/summarizer/summarizer.py,sha256=krsliL79hPtCJ_wvlkQ-FapjPOFGv9gJ-QTmAAMGt9U,7117
326
+ letta/services/summarizer/summarizer.py,sha256=Q58viiBBIksNgi9UammrBlNDdXXqUqw7GUpARFGBmYo,7570
325
327
  letta/services/tool_executor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
326
- letta/services/tool_executor/tool_execution_manager.py,sha256=RcmnwPougb8AxIwKdC4N9ZxTvOQqJyjI6CaVHF2HBi4,4505
328
+ letta/services/tool_executor/tool_execution_manager.py,sha256=NLkHLxxMYp0XKgu8j6YgqBVkhlG1cOioNRTd4muKJyU,4537
327
329
  letta/services/tool_executor/tool_execution_sandbox.py,sha256=9gcERJ15Y6u_6AGAVH3KGJP-85fpr2HLCV8SatQAG0w,24891
328
- letta/services/tool_executor/tool_executor.py,sha256=k2yEzLpU18SFFA6NWrf5NYbCh505ixMpnf6pnBhmV8s,27413
330
+ letta/services/tool_executor/tool_executor.py,sha256=KdCjTiKokAntFbXYRIapI7H1lI68JRBmPLRCc_d9zR8,27446
329
331
  letta/services/tool_manager.py,sha256=OyCaGtcChb6VEJxFp_qlTs62gIApFTEeTUve3K6iCMs,11921
330
332
  letta/services/tool_sandbox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
331
333
  letta/services/tool_sandbox/base.py,sha256=pUnPFkEg9I5ktMuT4AOOxbTnTmZTGcTA2phLe1H1EdY,8306
@@ -338,8 +340,8 @@ letta/streaming_utils.py,sha256=jLqFTVhUL76FeOuYk8TaRQHmPTf3HSRc2EoJwxJNK6U,1194
338
340
  letta/system.py,sha256=mKxmvvekuP8mdgsebRINGBoFbUdJhxLJ260crPBNVyk,8386
339
341
  letta/tracing.py,sha256=d_l8emrUMnAv3y1C9ttPZM0bnakHzP5Bgv06k-tBFrc,8308
340
342
  letta/utils.py,sha256=IZFvtj9WYcrxUbkoUUYGDxMYQYdn5SgfqsvnARGsAzc,32245
341
- letta_nightly-0.7.7.dev20250430205840.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
342
- letta_nightly-0.7.7.dev20250430205840.dist-info/METADATA,sha256=TZ5PKUaZwbEqUE_IkPU3IF4RqrJZA8VCxGyTyxaNXZY,22282
343
- letta_nightly-0.7.7.dev20250430205840.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
344
- letta_nightly-0.7.7.dev20250430205840.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
345
- letta_nightly-0.7.7.dev20250430205840.dist-info/RECORD,,
343
+ letta_nightly-0.7.8.dev20250501064110.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
344
+ letta_nightly-0.7.8.dev20250501064110.dist-info/METADATA,sha256=nUKEvoUf5yikm2vkY1bx_AZnUGOZaGUCnOSizEaJefk,22231
345
+ letta_nightly-0.7.8.dev20250501064110.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
346
+ letta_nightly-0.7.8.dev20250501064110.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
347
+ letta_nightly-0.7.8.dev20250501064110.dist-info/RECORD,,