letta-nightly 0.11.4.dev20250825104222__py3-none-any.whl → 0.11.5__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 (68) hide show
  1. letta/__init__.py +1 -1
  2. letta/agent.py +9 -3
  3. letta/agents/base_agent.py +2 -2
  4. letta/agents/letta_agent.py +56 -45
  5. letta/agents/voice_agent.py +2 -2
  6. letta/data_sources/redis_client.py +146 -1
  7. letta/errors.py +4 -0
  8. letta/functions/function_sets/files.py +2 -2
  9. letta/functions/mcp_client/types.py +30 -6
  10. letta/functions/schema_generator.py +46 -1
  11. letta/functions/schema_validator.py +17 -2
  12. letta/functions/types.py +1 -1
  13. letta/helpers/tool_execution_helper.py +0 -2
  14. letta/llm_api/anthropic_client.py +27 -5
  15. letta/llm_api/deepseek_client.py +97 -0
  16. letta/llm_api/groq_client.py +79 -0
  17. letta/llm_api/helpers.py +0 -1
  18. letta/llm_api/llm_api_tools.py +2 -113
  19. letta/llm_api/llm_client.py +21 -0
  20. letta/llm_api/llm_client_base.py +11 -9
  21. letta/llm_api/openai_client.py +3 -0
  22. letta/llm_api/xai_client.py +85 -0
  23. letta/prompts/prompt_generator.py +190 -0
  24. letta/schemas/agent_file.py +17 -2
  25. letta/schemas/file.py +24 -1
  26. letta/schemas/job.py +2 -0
  27. letta/schemas/letta_message.py +2 -0
  28. letta/schemas/letta_request.py +22 -0
  29. letta/schemas/message.py +10 -1
  30. letta/schemas/providers/bedrock.py +1 -0
  31. letta/server/rest_api/redis_stream_manager.py +300 -0
  32. letta/server/rest_api/routers/v1/agents.py +129 -7
  33. letta/server/rest_api/routers/v1/folders.py +15 -5
  34. letta/server/rest_api/routers/v1/runs.py +101 -11
  35. letta/server/rest_api/routers/v1/sources.py +21 -53
  36. letta/server/rest_api/routers/v1/telemetry.py +14 -4
  37. letta/server/rest_api/routers/v1/tools.py +2 -2
  38. letta/server/rest_api/streaming_response.py +3 -24
  39. letta/server/server.py +0 -1
  40. letta/services/agent_manager.py +2 -2
  41. letta/services/agent_serialization_manager.py +129 -32
  42. letta/services/file_manager.py +111 -6
  43. letta/services/file_processor/file_processor.py +5 -2
  44. letta/services/files_agents_manager.py +60 -0
  45. letta/services/helpers/agent_manager_helper.py +4 -205
  46. letta/services/helpers/tool_parser_helper.py +6 -3
  47. letta/services/mcp/base_client.py +7 -1
  48. letta/services/mcp/sse_client.py +7 -2
  49. letta/services/mcp/stdio_client.py +5 -0
  50. letta/services/mcp/streamable_http_client.py +11 -2
  51. letta/services/mcp_manager.py +31 -30
  52. letta/services/source_manager.py +26 -1
  53. letta/services/summarizer/summarizer.py +21 -10
  54. letta/services/tool_executor/files_tool_executor.py +13 -9
  55. letta/services/tool_executor/mcp_tool_executor.py +3 -0
  56. letta/services/tool_executor/tool_execution_manager.py +13 -0
  57. letta/services/tool_manager.py +43 -20
  58. letta/settings.py +1 -0
  59. letta/utils.py +37 -0
  60. {letta_nightly-0.11.4.dev20250825104222.dist-info → letta_nightly-0.11.5.dist-info}/METADATA +2 -2
  61. {letta_nightly-0.11.4.dev20250825104222.dist-info → letta_nightly-0.11.5.dist-info}/RECORD +64 -63
  62. letta/functions/mcp_client/__init__.py +0 -0
  63. letta/functions/mcp_client/base_client.py +0 -156
  64. letta/functions/mcp_client/sse_client.py +0 -51
  65. letta/functions/mcp_client/stdio_client.py +0 -109
  66. {letta_nightly-0.11.4.dev20250825104222.dist-info → letta_nightly-0.11.5.dist-info}/LICENSE +0 -0
  67. {letta_nightly-0.11.4.dev20250825104222.dist-info → letta_nightly-0.11.5.dist-info}/WHEEL +0 -0
  68. {letta_nightly-0.11.4.dev20250825104222.dist-info → letta_nightly-0.11.5.dist-info}/entry_points.txt +0 -0
@@ -37,8 +37,10 @@ class ExternalMCPToolExecutor(ToolExecutor):
37
37
  # TODO: may need to have better client connection management
38
38
 
39
39
  environment_variables = {}
40
+ agent_id = None
40
41
  if agent_state:
41
42
  environment_variables = agent_state.get_agent_env_vars_as_dict()
43
+ agent_id = agent_state.id
42
44
 
43
45
  function_response, success = await mcp_manager.execute_mcp_server_tool(
44
46
  mcp_server_name=mcp_server_name,
@@ -46,6 +48,7 @@ class ExternalMCPToolExecutor(ToolExecutor):
46
48
  tool_args=function_args,
47
49
  environment_variables=environment_variables,
48
50
  actor=actor,
51
+ agent_id=agent_id,
49
52
  )
50
53
 
51
54
  return ToolExecutionResult(
@@ -1,3 +1,4 @@
1
+ import asyncio
1
2
  import traceback
2
3
  from typing import Any, Dict, Optional, Type
3
4
 
@@ -129,6 +130,18 @@ class ToolExecutionManager:
129
130
  result.func_return = FUNCTION_RETURN_VALUE_TRUNCATED(return_str, len(return_str), tool.return_char_limit)
130
131
  return result
131
132
 
133
+ except asyncio.CancelledError as e:
134
+ self.logger.error(f"Aysnc cancellation error executing tool {function_name}: {str(e)}")
135
+ error_message = get_friendly_error_msg(
136
+ function_name=function_name,
137
+ exception_name=type(e).__name__,
138
+ exception_message=str(e),
139
+ )
140
+ return ToolExecutionResult(
141
+ status="error",
142
+ func_return=error_message,
143
+ stderr=[traceback.format_exc()],
144
+ )
132
145
  except Exception as e:
133
146
  status = "error"
134
147
  self.logger.error(f"Error executing tool {function_name}: {str(e)}")
@@ -184,7 +184,9 @@ class ToolManager:
184
184
 
185
185
  @enforce_types
186
186
  @trace_method
187
- async def bulk_upsert_tools_async(self, pydantic_tools: List[PydanticTool], actor: PydanticUser) -> List[PydanticTool]:
187
+ async def bulk_upsert_tools_async(
188
+ self, pydantic_tools: List[PydanticTool], actor: PydanticUser, override_existing_tools: bool = True
189
+ ) -> List[PydanticTool]:
188
190
  """
189
191
  Bulk create or update multiple tools in a single database transaction.
190
192
 
@@ -227,10 +229,10 @@ class ToolManager:
227
229
  if settings.letta_pg_uri_no_default:
228
230
  # use optimized postgresql bulk upsert
229
231
  async with db_registry.async_session() as session:
230
- return await self._bulk_upsert_postgresql(session, pydantic_tools, actor)
232
+ return await self._bulk_upsert_postgresql(session, pydantic_tools, actor, override_existing_tools)
231
233
  else:
232
234
  # fallback to individual upserts for sqlite
233
- return await self._upsert_tools_individually(pydantic_tools, actor)
235
+ return await self._upsert_tools_individually(pydantic_tools, actor, override_existing_tools)
234
236
 
235
237
  @enforce_types
236
238
  @trace_method
@@ -784,8 +786,10 @@ class ToolManager:
784
786
  return await self._upsert_tools_individually(tool_data_list, actor)
785
787
 
786
788
  @trace_method
787
- async def _bulk_upsert_postgresql(self, session, tool_data_list: List[PydanticTool], actor: PydanticUser) -> List[PydanticTool]:
788
- """hyper-optimized postgresql bulk upsert using on_conflict_do_update."""
789
+ async def _bulk_upsert_postgresql(
790
+ self, session, tool_data_list: List[PydanticTool], actor: PydanticUser, override_existing_tools: bool = True
791
+ ) -> List[PydanticTool]:
792
+ """hyper-optimized postgresql bulk upsert using on_conflict_do_update or on_conflict_do_nothing."""
789
793
  from sqlalchemy import func, select
790
794
  from sqlalchemy.dialects.postgresql import insert
791
795
 
@@ -809,32 +813,51 @@ class ToolManager:
809
813
  # use postgresql's native bulk upsert
810
814
  stmt = insert(table).values(insert_data)
811
815
 
812
- # on conflict, update all columns except id, created_at, and _created_by_id
813
- excluded = stmt.excluded
814
- update_dict = {}
815
- for col in table.columns:
816
- if col.name not in ("id", "created_at", "_created_by_id"):
817
- if col.name == "updated_at":
818
- update_dict[col.name] = func.now()
819
- else:
820
- update_dict[col.name] = excluded[col.name]
821
-
822
- upsert_stmt = stmt.on_conflict_do_update(index_elements=["name", "organization_id"], set_=update_dict)
816
+ if override_existing_tools:
817
+ # on conflict, update all columns except id, created_at, and _created_by_id
818
+ excluded = stmt.excluded
819
+ update_dict = {}
820
+ for col in table.columns:
821
+ if col.name not in ("id", "created_at", "_created_by_id"):
822
+ if col.name == "updated_at":
823
+ update_dict[col.name] = func.now()
824
+ else:
825
+ update_dict[col.name] = excluded[col.name]
826
+
827
+ upsert_stmt = stmt.on_conflict_do_update(index_elements=["name", "organization_id"], set_=update_dict)
828
+ else:
829
+ # on conflict, do nothing (skip existing tools)
830
+ upsert_stmt = stmt.on_conflict_do_nothing(index_elements=["name", "organization_id"])
823
831
 
824
832
  await session.execute(upsert_stmt)
825
833
  await session.commit()
826
834
 
827
- # fetch results
835
+ # fetch results (includes both inserted and skipped tools)
828
836
  tool_names = [tool.name for tool in tool_data_list]
829
837
  result_query = select(ToolModel).where(ToolModel.name.in_(tool_names), ToolModel.organization_id == actor.organization_id)
830
838
  result = await session.execute(result_query)
831
839
  return [tool.to_pydantic() for tool in result.scalars()]
832
840
 
833
841
  @trace_method
834
- async def _upsert_tools_individually(self, tool_data_list: List[PydanticTool], actor: PydanticUser) -> List[PydanticTool]:
842
+ async def _upsert_tools_individually(
843
+ self, tool_data_list: List[PydanticTool], actor: PydanticUser, override_existing_tools: bool = True
844
+ ) -> List[PydanticTool]:
835
845
  """fallback to individual upserts for sqlite (original approach)."""
836
846
  tools = []
837
847
  for tool in tool_data_list:
838
- upserted_tool = await self.create_or_update_tool_async(tool, actor)
839
- tools.append(upserted_tool)
848
+ if override_existing_tools:
849
+ # update existing tools if they exist
850
+ upserted_tool = await self.create_or_update_tool_async(tool, actor)
851
+ tools.append(upserted_tool)
852
+ else:
853
+ # skip existing tools, only create new ones
854
+ existing_tool_id = await self.get_tool_id_by_name_async(tool_name=tool.name, actor=actor)
855
+ if existing_tool_id:
856
+ # tool exists, fetch and return it without updating
857
+ existing_tool = await self.get_tool_by_id_async(existing_tool_id, actor=actor)
858
+ tools.append(existing_tool)
859
+ else:
860
+ # tool doesn't exist, create it
861
+ created_tool = await self.create_tool_async(tool, actor=actor)
862
+ tools.append(created_tool)
840
863
  return tools
letta/settings.py CHANGED
@@ -252,6 +252,7 @@ class Settings(BaseSettings):
252
252
  track_errored_messages: bool = Field(default=True, description="Enable tracking for errored messages")
253
253
  track_stop_reason: bool = Field(default=True, description="Enable tracking stop reason on steps.")
254
254
  track_agent_run: bool = Field(default=True, description="Enable tracking agent run with cancellation support")
255
+ track_provider_trace: bool = Field(default=True, description="Enable tracking raw llm request and response at each step")
255
256
 
256
257
  # FastAPI Application Settings
257
258
  uvicorn_workers: int = 1
letta/utils.py CHANGED
@@ -1103,6 +1103,43 @@ def safe_create_task(coro, logger: Logger, label: str = "background task"):
1103
1103
  return asyncio.create_task(wrapper())
1104
1104
 
1105
1105
 
1106
+ def safe_create_file_processing_task(coro, file_metadata, server, actor, logger: Logger, label: str = "file processing task"):
1107
+ """
1108
+ Create a task for file processing that updates file status on failure.
1109
+
1110
+ This is a specialized version of safe_create_task that ensures file
1111
+ status is properly updated to ERROR with a meaningful message if the
1112
+ task fails.
1113
+
1114
+ Args:
1115
+ coro: The coroutine to execute
1116
+ file_metadata: FileMetadata object being processed
1117
+ server: Server instance with file_manager
1118
+ actor: User performing the operation
1119
+ logger: Logger instance for error logging
1120
+ label: Description of the task for logging
1121
+ """
1122
+ from letta.schemas.enums import FileProcessingStatus
1123
+
1124
+ async def wrapper():
1125
+ try:
1126
+ await coro
1127
+ except Exception as e:
1128
+ logger.exception(f"{label} failed for file {file_metadata.file_name} with {type(e).__name__}: {e}")
1129
+ # update file status to ERROR with a meaningful message
1130
+ try:
1131
+ await server.file_manager.update_file_status(
1132
+ file_id=file_metadata.id,
1133
+ actor=actor,
1134
+ processing_status=FileProcessingStatus.ERROR,
1135
+ error_message=f"Processing failed: {str(e)}" if str(e) else f"Processing failed: {type(e).__name__}",
1136
+ )
1137
+ except Exception as update_error:
1138
+ logger.error(f"Failed to update file status to ERROR for {file_metadata.id}: {update_error}")
1139
+
1140
+ return asyncio.create_task(wrapper())
1141
+
1142
+
1106
1143
  class CancellationSignal:
1107
1144
  """
1108
1145
  A signal that can be checked for cancellation during streaming operations.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-nightly
3
- Version: 0.11.4.dev20250825104222
3
+ Version: 0.11.5
4
4
  Summary: Create LLM agents with long-term memory and custom tools
5
5
  License: Apache License
6
6
  Author: Letta Team
@@ -56,7 +56,7 @@ Requires-Dist: isort (>=5.13.2,<6.0.0) ; extra == "dev" or extra == "all"
56
56
  Requires-Dist: jinja2 (>=3.1.5,<4.0.0)
57
57
  Requires-Dist: langchain (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "desktop" or extra == "all"
58
58
  Requires-Dist: langchain-community (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "desktop" or extra == "all"
59
- Requires-Dist: letta_client (>=0.1.220,<0.2.0)
59
+ Requires-Dist: letta_client (>=0.1.277,<0.2.0)
60
60
  Requires-Dist: llama-index (>=0.12.2,<0.13.0)
61
61
  Requires-Dist: llama-index-embeddings-openai (>=0.3.1,<0.4.0)
62
62
  Requires-Dist: locust (>=2.31.5,<3.0.0) ; extra == "dev" or extra == "desktop" or extra == "all"
@@ -1,14 +1,14 @@
1
- letta/__init__.py,sha256=MXzx_Gzr4L72pCulg9GLsbnnFTcekzFvZgZhq5jPRMs,1321
2
- letta/agent.py,sha256=o591CrbxIepAfmVdZv7OVBCQsfAvKqv_HTd89LYPgu8,89462
1
+ letta/__init__.py,sha256=VWURuE5qOmHx-djFfcoIMo0MoV8pZ6_TTq65WsIppA0,1321
2
+ letta/agent.py,sha256=Sok6EOeC9YMlTdodkcolCFXSKcf9OXQI4-vcdEVrMU0,89735
3
3
  letta/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- letta/agents/base_agent.py,sha256=-hrG_4iNba2e68LF8nzfPKeCviBdoWZ6jODd798ryt0,7796
4
+ letta/agents/base_agent.py,sha256=-b2x3Ph-1grxtfIhmPXTG6UrKHgRXh-LOn7c9aVs4Y8,7775
5
5
  letta/agents/ephemeral_agent.py,sha256=el-SUF_16vv_7OouIR-6z0pAE9Yc0PLibygvfCKwqfo,2736
6
6
  letta/agents/ephemeral_summary_agent.py,sha256=tOldA_daa_PduTJ2RA7fAo9Rv6sUb-C_9dJaD6iujS4,4454
7
7
  letta/agents/exceptions.py,sha256=BQY4D4w32OYHM63CM19ko7dPwZiAzUs3NbKvzmCTcJg,318
8
8
  letta/agents/helpers.py,sha256=PLT4tG5rJIYm732qLyKB-J34Brh1yLE0l9qpcGip30w,10181
9
- letta/agents/letta_agent.py,sha256=TLgr6GLp4ONnS0FFhjRc6MYuJqe1volPPHHM8q3Ssfw,84337
9
+ letta/agents/letta_agent.py,sha256=js96IJZ5xltWnxvgPbg-mB8k6an-l4R_mRcczsgY1_w,85158
10
10
  letta/agents/letta_agent_batch.py,sha256=17RpYVXpGh9dlKxdMOLMCOHWFsi6N5S9FJHxooxkJCI,27998
11
- letta/agents/voice_agent.py,sha256=rgrayoGRS344oSNg3jD-awHzEC67hYbecPPhfkKu27k,23325
11
+ letta/agents/voice_agent.py,sha256=ALUca55MOL4v8zADjk87ImgtT8-EFRomS2ylzmIGcpk,23315
12
12
  letta/agents/voice_sleeptime_agent.py,sha256=_JzCbWBOKrmo1cTaqZFTrQudpJEapwAyrXYtAHUILGo,8675
13
13
  letta/cli/cli.py,sha256=tKtghlX36Rp0_HbkMosvlAapL07JXhA0vKLGTNKnxSQ,1615
14
14
  letta/cli/cli_load.py,sha256=paAyDq6e-8D1ZWo8JvXIiA1N7FeKcQMSWgcr2vU_1Gs,319
@@ -20,9 +20,9 @@ letta/constants.py,sha256=f-FtpVSbjQGG8Bf_7WhIdNEn4P4-bLMxD3JLjH_N1XM,15880
20
20
  letta/data_sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
21
  letta/data_sources/connectors.py,sha256=7GzjMNKn_xfQzOAObV2h5y3Pjja3B6Tkl4szAqDIf0s,8841
22
22
  letta/data_sources/connectors_helper.py,sha256=oQpVlc-BjSz9sTZ7sp4PsJSXJbBKpZPi3Dam03CURTQ,3376
23
- letta/data_sources/redis_client.py,sha256=Lz9hjJL9S7yd_qsvbuwqrGL3GwZe-qOc0uZm9FqNm4M,10688
23
+ letta/data_sources/redis_client.py,sha256=aqq2mpLCznxqNDnXq5oaSwQ2FZvyx1Krjaf8AquUfZY,15479
24
24
  letta/embeddings.py,sha256=d2o1nOVTaofBk6j-WwsE0_ugvxa1nIOcceqGuJ4w_pc,2045
25
- letta/errors.py,sha256=tebKwqik1A8xdVC9Ue452zIiEKDEUNJiod_b2WINwF8,8692
25
+ letta/errors.py,sha256=z-VloGRWAQvE_P2Zj9lgz0-E3dUgP6vtHDq4GpZCTTI,8828
26
26
  letta/functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  letta/functions/ast_parsers.py,sha256=0dXAN4qx3pWL_Y0aoEkaBpMKwI-kpoLEJftjW3v2I4E,5031
28
28
  letta/functions/async_composio_toolset.py,sha256=IuhZTVghPDXRsehOOZsEEiJGYyjWjDTQc2xrjTg0yBo,4786
@@ -30,22 +30,18 @@ letta/functions/composio_helpers.py,sha256=mpybCYcB93HWoKrmQIqcuRQG9IH2lHWhsPQx2
30
30
  letta/functions/function_sets/base.py,sha256=6ZHHbZDuRybZnhWztG59I4TtumqH0-Zy5vaT2f42i_I,16110
31
31
  letta/functions/function_sets/builtin.py,sha256=UR54nwIXZl4NkF9c_IMpTxf2e9yPO_LGZ-joIeeI9TI,2009
32
32
  letta/functions/function_sets/extras.py,sha256=mG7jCd2RUsf1w9G8mVcv26twJWpiDhbWI6VvnLZoEOk,4899
33
- letta/functions/function_sets/files.py,sha256=I2TAOVo_6-G-pbjFve8ocF2zn3b0aJ_ismK4ZPop3v8,4450
33
+ letta/functions/function_sets/files.py,sha256=b2Io2njvZPY8MDQD6heTN0XfwQgnEdEDAHLVcYKBwNY,4450
34
34
  letta/functions/function_sets/multi_agent.py,sha256=Vze76mj0YGZQYmWEzknnf3vEf-O7gcCUPQead7HH3FQ,7045
35
35
  letta/functions/function_sets/voice.py,sha256=_gmFEj3fSFb-4eMM-ddSOm-Vk1ShIVjpchZI7MQKwSA,3191
36
36
  letta/functions/functions.py,sha256=bSYEcUPzbKXx6IztZkE1o7O7zuhFgbLzKSG5SuP8JVk,16009
37
37
  letta/functions/helpers.py,sha256=-NeFjYNhKm_qAwZaxZsVr65Pi3PNvcNKwO1IykKIgtc,25155
38
38
  letta/functions/interface.py,sha256=pN1gpDnLISW44gRcic1IX6I6pDwOT9UbkST_4ICuMvQ,2936
39
- letta/functions/mcp_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- letta/functions/mcp_client/base_client.py,sha256=yfpJyPpKxbA9Q_LfLDNOIL1EqwHi21LPLRpXx_sZBhc,6373
41
39
  letta/functions/mcp_client/exceptions.py,sha256=IE5SLCuMK7hK9V1QsJafPo6u0S0OwqRvMx2NcsE3g3c,313
42
- letta/functions/mcp_client/sse_client.py,sha256=QDC29Re2mdGji77YrUk7JXfTVJeS6039oeeh3y6A_7g,2292
43
- letta/functions/mcp_client/stdio_client.py,sha256=-SymmkO_KNFZUP5e5mhcidpyyXBv6Xh72yUiMnv_bFw,4709
44
- letta/functions/mcp_client/types.py,sha256=45pajlUuazzbEqJl67ihuahscPAvpgvYrGf50DUwiww,11014
40
+ letta/functions/mcp_client/types.py,sha256=z2oX1zMMRVV6gCXfEMPX7WmI9phHXqMjYV5LmykSgyc,12090
45
41
  letta/functions/prompts.py,sha256=jNl83xjNpoSs8KzGtuc6jzN8jp_T4BC_5f4FMJ88_K0,1145
46
- letta/functions/schema_generator.py,sha256=PMk3xO478wLqZiP7ZYLcrsBeQAF38RJ6dZhN7gwAQYo,28215
47
- letta/functions/schema_validator.py,sha256=KsBlpwCBz2NVfYtQoRmdnvSWhG5iAkpaeEZXvTZSPeI,7364
48
- letta/functions/types.py,sha256=XzUVHbS72bdKhviFcSZZXq_f9IFR5eOD-cVIcwqANaY,730
42
+ letta/functions/schema_generator.py,sha256=wRY7Yoh9aQBwOnY9pXRg2aLoBycQ5vBdd5UZDYaC5Ks,30894
43
+ letta/functions/schema_validator.py,sha256=DnfyoYZxBqURtfVvJsvVkTGcAFtesod43JszQkKdhGM,8308
44
+ letta/functions/types.py,sha256=PEcdWtY7zb9uOm83-SvPKnVfAbUA_7E9gbOoZJn6_pI,741
49
45
  letta/functions/typescript_parser.py,sha256=N-eSaUm8dCc53NwcK8KJOBqGnqSROl3JfTfHLovCut8,6571
50
46
  letta/groups/dynamic_multi_agent.py,sha256=-IugnQJTxe4FOTKd0UX3lbSKVcD-S0noZDjwoVuWyX8,12326
51
47
  letta/groups/helpers.py,sha256=yAr05Keoz_7vdzPG6A9x5CsWrJjtvF8A0GSQWDe29UM,4660
@@ -63,7 +59,7 @@ letta/helpers/message_helper.py,sha256=Xzf_VCMAXT0Ys8LVUh1ySVtgJwabSQYksOdPr7P4E
63
59
  letta/helpers/pinecone_utils.py,sha256=9dKkHdNif6JNDYk9KPiil6gvbKr0Q69hpxcCg9YJyhE,14723
64
60
  letta/helpers/reasoning_helper.py,sha256=8P5AJo-UFsYhZC3yNx4N-pIkVUsjfz7ZPmydsVKPLN4,1931
65
61
  letta/helpers/singleton.py,sha256=Y4dG_ZBCcrogvl9iZ69bSLq-QltrdP8wHqKkhef8OBI,370
66
- letta/helpers/tool_execution_helper.py,sha256=JFNyk20b69wExD7bRDfJCRPgoG30k56a7HF6cgLGiMQ,5151
62
+ letta/helpers/tool_execution_helper.py,sha256=Oz9xNDrSFUIrYhEhLaw8yoXdHbfijuxwtS1tJv-lH2A,5149
67
63
  letta/helpers/tool_rule_solver.py,sha256=kNv0jKvTabWYq3hbqwsvBTr_j31ZpnVnZE0yvDdid5o,9003
68
64
  letta/humans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
65
  letta/humans/examples/basic.txt,sha256=Lcp8YESTWvOJgO4Yf_yyQmgo5bKakeB1nIVrwEGG6PA,17
@@ -80,24 +76,27 @@ letta/jobs/llm_batch_job_polling.py,sha256=HUCTa1lTOiLAB_8m95RUfeNJa4lxlF8paGdCV
80
76
  letta/jobs/scheduler.py,sha256=Ub5VTCA8P5C9Y-0mPK2YIPJSEzKbSd2l5Sp0sOWctD8,8697
81
77
  letta/jobs/types.py,sha256=K8GKEnqEgAT6Kq4F2hUrBC4ZAFM9OkfOjVMStzxKuXQ,742
82
78
  letta/llm_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- letta/llm_api/anthropic_client.py,sha256=3aEh9YzRqOxG0V7NDUEI-tHmYDUnVFMfPd5nB4T4jvU,29519
79
+ letta/llm_api/anthropic_client.py,sha256=DfpmvUv7rCOz7d6faLDrIcrZE6ky2rEP4sG3rz5f6uc,30452
84
80
  letta/llm_api/azure_client.py,sha256=xfSKO1_zj4KkqupirpGZTBWPagKZ0wZH7GcCZpFnRlI,3747
85
81
  letta/llm_api/bedrock_client.py,sha256=jTMcNBQh2ze1GNCmI096SYOCjfIrq1lyXFvO3zsU6ME,3436
86
82
  letta/llm_api/deepseek.py,sha256=pLd2WMKjks1QulnSqy7V5JDk67TTN9dIRaYl5kWamV8,12455
83
+ letta/llm_api/deepseek_client.py,sha256=hFFD10zFbBadNuv0Eilr9TUjnCNH1OgKrqRYYRUsFCQ,4398
87
84
  letta/llm_api/google_ai_client.py,sha256=JweTUHZXvK6kcZBGXA7XEU53KP4vM7_zdD7AorCtsdI,8166
88
85
  letta/llm_api/google_constants.py,sha256=eOjOv-FImyJ4b4QGIaod-mEROMtrBFz0yhuYHqOEkwY,797
89
86
  letta/llm_api/google_vertex_client.py,sha256=zovZ1nrJ-OIsU6A2zDENsdz9lQciO20aSDPU_pRPza4,25141
90
- letta/llm_api/helpers.py,sha256=MmNAvqfVyI5IpVRbx4p-TkzXTaz-EFkY6oDf62D2Syo,17578
91
- letta/llm_api/llm_api_tools.py,sha256=EHUNo5Ki5WTmGUlgBFJtGcsifesiR3UZiGY45EX-75A,19979
92
- letta/llm_api/llm_client.py,sha256=1LvLXWjSoX3oumLFnhVNqLyo8t4NZJNLvVSOw5r5GKc,2905
93
- letta/llm_api/llm_client_base.py,sha256=G_z1_dcH-t13nD3JeED-60ZLY21k28GfhLyUwheOZqg,9912
87
+ letta/llm_api/groq_client.py,sha256=LzPVCyYPaR8Y6gZWOJ30V7QJATRtivRCsIBiMfldvNQ,3193
88
+ letta/llm_api/helpers.py,sha256=cMkWjGNRvmjNni0LUmt0JXHPCE7144ckiW3OqwwFA48,17577
89
+ letta/llm_api/llm_api_tools.py,sha256=0pEeCCR6YdYMEX0EAg9Z8CCckos-QALRu6fFZSxYw9M,14645
90
+ letta/llm_api/llm_client.py,sha256=hf0BzGpKXuWTp3Ng5rCuyv6Yp0MTBnwBRhZx_kGhsQE,3694
91
+ letta/llm_api/llm_client_base.py,sha256=RFo8H4ILxVyzB3DeF4rJoJJYjRF8ScVO4yyDrhuN0DY,10052
94
92
  letta/llm_api/mistral.py,sha256=lNVYLNdULpqjMLX-5Cnw61dXVdh9T5H3Zg4UPhx9zQU,663
95
93
  letta/llm_api/openai.py,sha256=5YuGmzmFaErLUrWzag0eYVCh4iO0GYaUKRfAbd1A1Fo,27482
96
- letta/llm_api/openai_client.py,sha256=uOh5k7OFSTaIjI6Y6aMdi3-LekC48LGtfwIXdD2lwjc,20188
94
+ letta/llm_api/openai_client.py,sha256=xub1Dfl-dbqa0CdUQbm1JM1viyDmxCZRVTGemnaDJAo,20316
97
95
  letta/llm_api/sample_response_jsons/aws_bedrock.json,sha256=RS3VqyxPB9hQQCPm42hWoga0bisKv_0e8ZF-c3Ag1FA,930
98
96
  letta/llm_api/sample_response_jsons/lmstudio_embedding_list.json,sha256=qHLtRuO1u7jFcaO0xaIMpRgCe74sSrya67IVPqS66fg,344
99
97
  letta/llm_api/sample_response_jsons/lmstudio_model_list.json,sha256=hrW4RifD5nty3Wx22NZ7GJB74HW4C75fIEaKrVFhwYM,448
100
98
  letta/llm_api/together_client.py,sha256=dRC6WsNPh_wvDV6KTvhvrgWIVHVA_oNJo6yD18rT20Q,2285
99
+ letta/llm_api/xai_client.py,sha256=boAm1g0w6TDCKL-nOe1_IjLTaeeFdkcNQeMNdoTyDrE,3773
101
100
  letta/local_llm/README.md,sha256=hFJyw5B0TU2jrh9nb0zGZMgdH-Ei1dSRfhvPQG_NSoU,168
102
101
  letta/local_llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
102
  letta/local_llm/chat_completion_proxy.py,sha256=6tFdoB3aIqHO345kPp_RmbrUpy0gt8cbzTODWlMsUyI,13858
@@ -212,6 +211,7 @@ letta/plugins/plugins.py,sha256=MGOy5tFDPMOkMbE16cFnzYWvANHhhDrsmwcEf-YLcjg,2079
212
211
  letta/prompts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
213
212
  letta/prompts/gpt_summarize.py,sha256=dbOsMdc6VGApFtXv7ZfqsGN2SZ_31K_nUWMLBTcChrY,1146
214
213
  letta/prompts/gpt_system.py,sha256=qH_aR5BSwd8ctvbo_Xynietvtudpf7zLsMWsKUw9V1w,1015
214
+ letta/prompts/prompt_generator.py,sha256=qM8xUD35snsOdRng1mDiwYrggjrWS3VjRYeCNTa-vhM,8475
215
215
  letta/prompts/system/memgpt_base.txt,sha256=J5BfmLzUpoVEL-Y3mF2DiZHHqZx_7NIiTD5vGDPcvx8,5181
216
216
  letta/prompts/system/memgpt_chat.txt,sha256=2tOfLG89vOxBBD7vYOQhIWardJFJ4tO2VUFYcA0NAZo,5420
217
217
  letta/prompts/system/memgpt_chat_compressed.txt,sha256=_gMDjc8tcigLfJ3fOXryz31_DJxSQM812T3J-aw7x0w,1056
@@ -238,24 +238,24 @@ letta/prompts/system/voice_sleeptime.txt,sha256=LPh-XjAthvsdEkXoZ4NTzTUuMbMsMkoD
238
238
  letta/prompts/system/workflow.txt,sha256=pLOaUDsNFAzLs4xb9JgGtd1w-lrq0Q1E7SpFBttXYCI,834
239
239
  letta/pytest.ini,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
240
240
  letta/schemas/agent.py,sha256=bnz5ypynXzo765sJQqrni6SYLD7lySruBKYJaJu13g4,28977
241
- letta/schemas/agent_file.py,sha256=xBFoHfV845fCx32DsFhj1ZFeZM8WwIPLQ8ApmgJ3Cto,13890
241
+ letta/schemas/agent_file.py,sha256=ueNumYpINPrOBHEeJeSLQdbgs2VKPpqvbfOZA4UGbRI,14884
242
242
  letta/schemas/archive.py,sha256=4jGat0hYHV6HhNgnOhixzEOaeUrnlxDGdouZXCCGn_g,1661
243
243
  letta/schemas/block.py,sha256=mPN0Zx0r_0lscLpZWQFWgoXahjMkjK-vTnQxBdRYCoc,6536
244
244
  letta/schemas/embedding_config.py,sha256=MrhBjL4oaxtXHgcHofWOZsOB9VXyVA8Qkm5NGygIX9U,3741
245
245
  letta/schemas/embedding_config_overrides.py,sha256=lkTa4y-EQ2RnaEKtKDM0sEAk7EwNa67REw8DGNNtGQY,84
246
246
  letta/schemas/enums.py,sha256=HZyA3lrnTu2wtzwJAigoJcYT9RpTbl6JN2uzrRVfKKY,4304
247
247
  letta/schemas/environment_variables.py,sha256=VRtzOjdeQdHcSHXisk7oJUQlheruxhSWNS0xqlfGzbs,2429
248
- letta/schemas/file.py,sha256=kjv_xEuuo8Z5i7dOzugIdlAK_k2xHHLhugDgBq0-8Os,4763
248
+ letta/schemas/file.py,sha256=78aTJuYqhhTu95hKFmcJmCa5_wJMZ521aiRzPM2plAM,6242
249
249
  letta/schemas/folder.py,sha256=OpTj9idfGx6CEKDySeDEu3ZNDYjl8jJ02CH96RWPAVk,3309
250
250
  letta/schemas/group.py,sha256=VkKoRgakswY_DA4WrClyPGQZ5VONeDrbV7oK5ICyaOg,7825
251
251
  letta/schemas/health.py,sha256=zT6mYovvD17iJRuu2rcaQQzbEEYrkwvAE9TB7iU824c,139
252
252
  letta/schemas/identity.py,sha256=-6ABqAuz-VfGcAoAX5oVyzpjBiY4jAN-gJUM-PLBQQY,3984
253
- letta/schemas/job.py,sha256=58i9f_mp_4tWnPBA7BoRopuFE3DDrr7rUfOz2GGFar8,4346
253
+ letta/schemas/job.py,sha256=Qj22obbFzJBG3tikHZlxrTnLbjzz-2sxsfxGAlPBIZM,4528
254
254
  letta/schemas/letta_base.py,sha256=LhVKaSAUr7HzrvuEJE_1ZKJMe-nJKoYR-ZgLe1IUTpY,4020
255
- letta/schemas/letta_message.py,sha256=2FC968X8sZEgX5rbBpRjMzrcafR_aRs_Nl6mowHjXYI,15647
255
+ letta/schemas/letta_message.py,sha256=tTzy8xtqIASlvaaxghykmJMJ41F4QeFrqoOky_oEKps,15707
256
256
  letta/schemas/letta_message_content.py,sha256=XsokQDvKCf_PcZKH6G5-B4NELaHVtrhDVjbOMc_osLs,8983
257
257
  letta/schemas/letta_ping.py,sha256=9JphoKhWZ63JqsakIx4aaj8dYMtYVa7HxSkT5cMh5cI,863
258
- letta/schemas/letta_request.py,sha256=GF7tSVjoAXukl1SXN2FBi8ZMaWOVRvuJuXPgEwbV7Hg,2944
258
+ letta/schemas/letta_request.py,sha256=YECNK_myGgcBQ1k5GoZN2oqG3KPEh01Co9tH5Vs7S4g,3749
259
259
  letta/schemas/letta_response.py,sha256=e6FcAhRX3heB0FoWAAozB3RJboMwi_JpelTdc5JupVA,8188
260
260
  letta/schemas/letta_stop_reason.py,sha256=4t39UKMMsLuNM-9a0BG7Mi-zZ7YhYLFSEpTWc8_OyrQ,2035
261
261
  letta/schemas/llm_batch_job.py,sha256=xr7RmMc9ItmL344vcIn1MJaT2nOf0F7qEHrsXkQNFQI,3136
@@ -263,7 +263,7 @@ letta/schemas/llm_config.py,sha256=Y-kCBjue0Kg_XbpWAfs4QvMq8blYQC8MggrzEziCqQE,1
263
263
  letta/schemas/llm_config_overrides.py,sha256=E6qJuVA8TwAAy3VjGitJ5jSQo5PbN-6VPcZOF5qhP9A,1815
264
264
  letta/schemas/mcp.py,sha256=ko-zVVgzhMxcY76OjHhzo91iUNksz4Fzs2NXOyZbOro,8856
265
265
  letta/schemas/memory.py,sha256=45j0akHGSrShd8v8wW-7lJhFRNWi9rWEvFp8w6f1PUk,14142
266
- letta/schemas/message.py,sha256=XtlLGm6ETxdWi1ClrEant36lwQac2yS4oQ3os0zipi8,49769
266
+ letta/schemas/message.py,sha256=7BDEZaBEHQFGLYq5L6MzG06lIFnGJ_qha4rXHkyivMY,50146
267
267
  letta/schemas/npm_requirement.py,sha256=HkvBF7KjHUH-MG-RAEYJHO2MLRS2rxFUcmbpbZVznLk,457
268
268
  letta/schemas/openai/chat_completion_request.py,sha256=cHAuJGMQhe5vs1LuRfn806wPMm3k5XxB9sQ7PCRvUZI,4339
269
269
  letta/schemas/openai/chat_completion_response.py,sha256=Hes8D-tl8_I_LClONUNw3NZ_vkvas6d4QfE-7ge1eac,7065
@@ -279,7 +279,7 @@ letta/schemas/providers/__init__.py,sha256=hmjEzUaWBmvJUSwBb6shMVt-iycE3jcnA_xa9
279
279
  letta/schemas/providers/anthropic.py,sha256=SyPfruKqqwoZcF7i5WSZdlpJuGlYguSngRAcDXArgmA,6275
280
280
  letta/schemas/providers/azure.py,sha256=c0aSfKdVwS_4wWnqng4fe_jmXGmvICRES-8nmqzoEpg,7692
281
281
  letta/schemas/providers/base.py,sha256=xGIsj7py0p8xp4LXvarDxhTxU93LF88HhCpvenBB0eo,10074
282
- letta/schemas/providers/bedrock.py,sha256=jOP3GYIlCBeIxV-wk8Th52o-FEPF28ICgobr7nOl2TY,3552
282
+ letta/schemas/providers/bedrock.py,sha256=3msEH2X10mzU2giIC_emfkeWEF47tA0gJf1VMcE8QrE,3635
283
283
  letta/schemas/providers/cerebras.py,sha256=tFPN_LTJL_rzRE0DvXHb5Ckyaw4534X2kmibhWjHlA8,3208
284
284
  letta/schemas/providers/deepseek.py,sha256=FXu8qPedeQC2Cn_L-k-1sQjj4feB8mbmW9XMJYx5hjE,2623
285
285
  letta/schemas/providers/google_gemini.py,sha256=VnC0rrjnUdUK08VLGhI290p7yDsUnOwDjLKKJqvFoPw,4589
@@ -331,14 +331,15 @@ letta/server/rest_api/json_parser.py,sha256=K3dEbXXEo6SRdy-_x-rYZp0cHlZXuADiWgFj
331
331
  letta/server/rest_api/middleware/__init__.py,sha256=sq9ShbHKfsmvR1DnrI-ibSYEo0PSevXZobzgst24tNI,240
332
332
  letta/server/rest_api/middleware/check_password.py,sha256=LKR_rlhzZ-93o0FpkwDn8vWOP6tpE8URftr7L4UbDC4,852
333
333
  letta/server/rest_api/middleware/profiler_context.py,sha256=MbOFOXhkOCuq6vlOiv0DGgmlLVKxC-9tRZ0OTOn_0GA,859
334
+ letta/server/rest_api/redis_stream_manager.py,sha256=9NuZKmEhOJGG-MTRpCspyAeVdPJCzKhOR9QPv89iVPU,10070
334
335
  letta/server/rest_api/routers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
335
336
  letta/server/rest_api/routers/openai/chat_completions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
336
337
  letta/server/rest_api/routers/openai/chat_completions/chat_completions.py,sha256=QBWab1fn2LXVDMtc6li3gOzmrNzDiUw5WUJsMeeMZII,5076
337
338
  letta/server/rest_api/routers/v1/__init__.py,sha256=HlL-WoRMz39NLyHhFugHbdIho66ZVK5VG2YRNYIiMZU,1866
338
- letta/server/rest_api/routers/v1/agents.py,sha256=2BlVMKFXHg-xHQ6h-sAJO3d1l6VxhPfHfclacUKcia8,70298
339
+ letta/server/rest_api/routers/v1/agents.py,sha256=qopGO3e_CTKe_5pr-aWHYMrmMLh1Dvl9bM89gdxFBYM,75574
339
340
  letta/server/rest_api/routers/v1/blocks.py,sha256=jICprv_qKlS1H9xOwzXVnGG41l9D9WR6RpKPAKljrhk,7459
340
341
  letta/server/rest_api/routers/v1/embeddings.py,sha256=PRaQlrmEXPiIdWsTbadrFsv3Afyv5oEFUdhgHA8FTi8,989
341
- letta/server/rest_api/routers/v1/folders.py,sha256=9q4KesoEff-UjyZ_IX28G3Fli4t5YMaERF5Rny9C0qs,22100
342
+ letta/server/rest_api/routers/v1/folders.py,sha256=8iCceRRfVcSph1MAOp24bRkzO-59qbbZV8L7gXKyiic,22614
342
343
  letta/server/rest_api/routers/v1/groups.py,sha256=M67QsD9kx3RhMfwpvXoBcujUwKVXJuXsV6nMUUxgtdc,10978
343
344
  letta/server/rest_api/routers/v1/health.py,sha256=MoOjkydhGcJXTiuJrKIB0etVXiRMdTa51S8RQ8-50DQ,399
344
345
  letta/server/rest_api/routers/v1/identities.py,sha256=KUfw6avQIVHNw2lWz4pXOyTOPVy1g19CJGG-zayORl8,7858
@@ -347,19 +348,19 @@ letta/server/rest_api/routers/v1/llms.py,sha256=0VJuuGW9_ta0cBnSDtXd3Ngw7GjsqEN2
347
348
  letta/server/rest_api/routers/v1/messages.py,sha256=EBCxkt44r9uhw9GIkN5v6Rc1R_xGVMpcStkLnY2t0n0,7807
348
349
  letta/server/rest_api/routers/v1/organizations.py,sha256=OnG2vMDZEmN4eEvj24CPwiV76ImHQuHi2ojrgwJnw7I,2925
349
350
  letta/server/rest_api/routers/v1/providers.py,sha256=rypNWQ1VMjmZJYd48uvNGJsE2N22jDTxn89qvbDaOMs,4765
350
- letta/server/rest_api/routers/v1/runs.py,sha256=vieUp7uTvRTdAte0Nw1bqX2APMATZhKTr2R1HVNJT74,8879
351
+ letta/server/rest_api/routers/v1/runs.py,sha256=GlqcDnA8Sh67FQXW8-ldtlMqjr8IKzgWLh_Jsz7yjtA,12599
351
352
  letta/server/rest_api/routers/v1/sandbox_configs.py,sha256=tAXoyJLEXTkanBqGO3-d2WIAOgChmeLmJABS3Am9uTM,8941
352
- letta/server/rest_api/routers/v1/sources.py,sha256=3XLgN7wJF4r0k2Rp3o6GZSQ1w_BmR3A-wGVSrupO24o,23719
353
+ letta/server/rest_api/routers/v1/sources.py,sha256=OlvPXpAWSqq7zXPuRHyCOKs3zYQofYNDpHbVIJ8QmFc,21754
353
354
  letta/server/rest_api/routers/v1/steps.py,sha256=bTzfz1GR3VEZdJRYUGiSr6ZLd12i5faPsf3oAqu1eMk,5570
354
355
  letta/server/rest_api/routers/v1/tags.py,sha256=ef94QitUSJ3NQVffWF1ZqANUZ2b2jRyGHp_I3UUjhno,912
355
- letta/server/rest_api/routers/v1/telemetry.py,sha256=z53BW3Pefi3eWy47FPJyGhFWbZicX9jPJUi5LC5c3sk,790
356
- letta/server/rest_api/routers/v1/tools.py,sha256=5HSSYRvobww6J8OtgaRiZw19442Qg0YKPgwygRhnpHw,43435
356
+ letta/server/rest_api/routers/v1/telemetry.py,sha256=eSTg7mWbuwPb2OTHQxwRM0EUEl49wHzNB6i1xJtH8BQ,1036
357
+ letta/server/rest_api/routers/v1/tools.py,sha256=HWxdQHKbyoxtxXGe2uCTtgxlhhGfPZKG-tDFCV67Zzk,43355
357
358
  letta/server/rest_api/routers/v1/users.py,sha256=J1vaTbS1UrBMgnPya7GdZ2wr3L9XHmkm6qdGY6pWaOI,2366
358
359
  letta/server/rest_api/routers/v1/voice.py,sha256=ghMBp5Uovbf0-3nN6d9P5kpl1hHACLRMhIDGQp96G9Q,1986
359
360
  letta/server/rest_api/static_files.py,sha256=NG8sN4Z5EJ8JVQdj19tkFa9iQ1kBPTab9f_CUxd_u4Q,3143
360
- letta/server/rest_api/streaming_response.py,sha256=nzkw2tfduehpxAg8cI830pcswRR4cy240Vo-plyofMk,14625
361
+ letta/server/rest_api/streaming_response.py,sha256=Tnz9heJvQ2n0D5hCuczlx-88DkUa5GAdGaVlOB-TaB4,13810
361
362
  letta/server/rest_api/utils.py,sha256=RbkiTWvcvVTJnJTh_RcPJDfaZUJQuMr7pgyDZxqpi_o,17222
362
- letta/server/server.py,sha256=NGLSZMC3FAz6gCGelfKZ8DnzqKSPrbaWjVhk1THvHTU,110048
363
+ letta/server/server.py,sha256=eQDgzglrKulHwrjDJZNCyDv7FLoWrzL1lUxkFuAooPo,110047
363
364
  letta/server/startup.sh,sha256=z-Fea-7LiuS_aG1tJqS8JAsDQaamwC_kuDhv9D3PPPY,2698
364
365
  letta/server/static_files/assets/index-048c9598.js,sha256=mR16XppvselwKCcNgONs4L7kZEVa4OEERm4lNZYtLSk,146819
365
366
  letta/server/static_files/assets/index-0e31b727.css,sha256=SBbja96uiQVLDhDOroHgM6NSl7tS4lpJRCREgSS_hA8,7672
@@ -374,14 +375,14 @@ letta/server/ws_api/protocol.py,sha256=5mDgpfNZn_kNwHnpt5Dsuw8gdNH298sgxTGed3etz
374
375
  letta/server/ws_api/server.py,sha256=_16TQafm509rqRztZYqo0HKKZoe8ccBrNftd_kbIJTE,5833
375
376
  letta/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
376
377
  letta/services/agent_file_manager.py,sha256=bgYTyQA90Iqo3W-LprPtyyOKf2itoqivcRhh4EOUXss,30847
377
- letta/services/agent_manager.py,sha256=Nwefrg4FTBSjBxHlbJHqxSvFaSmtFm7MrfF7wiFFBg8,154744
378
- letta/services/agent_serialization_manager.py,sha256=72ip2SxPnGaZ9T0fDocH1kZdaHFCt7BFAJjHMm7oQtc,39831
378
+ letta/services/agent_manager.py,sha256=iokd5z2gB1ofWvJrVODcZ3E5feN2eNDX9E7mwCrAU1k,154774
379
+ letta/services/agent_serialization_manager.py,sha256=Cv6qlmK7GmMcL3Dp4W0PachSFY7ry85DcjfIC-F2WKY,44323
379
380
  letta/services/archive_manager.py,sha256=a_EDb0agJAze1oOELfnHmPUQB0k9fG1xBK5p_o2zsis,9427
380
381
  letta/services/block_manager.py,sha256=sSbNpsbk62-qBtOmhIp3YlOQKTpWQ3gXlVrFpF1vY50,33491
381
382
  letta/services/context_window_calculator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
382
383
  letta/services/context_window_calculator/context_window_calculator.py,sha256=Ux1UU_l0Nk08HGUMUUrjbtnm2thVRC9bHE7poo8gb8o,8241
383
384
  letta/services/context_window_calculator/token_counter.py,sha256=QHNeLciQmBDV0pdCawkNaltbTYp2Ju7ZwKpE5y46LDg,4731
384
- letta/services/file_manager.py,sha256=6hjBk4ZJJ7emqyswqB3Kn0JQBSzL2aE4Rzj7vyEsXjo,26157
385
+ letta/services/file_manager.py,sha256=itGbO9OUxu7R7RPVPqZpG_rxOwXKIfZSVa3KcLfaNKY,31391
385
386
  letta/services/file_processor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
386
387
  letta/services/file_processor/chunker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
387
388
  letta/services/file_processor/chunker/line_chunker.py,sha256=AlFgcPIjy2w4ennaQwlYKeKhuvmdpuIqUrENMxp2U7o,7568
@@ -390,53 +391,53 @@ letta/services/file_processor/embedder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JC
390
391
  letta/services/file_processor/embedder/base_embedder.py,sha256=cuHF2kAlBFL9Hr63Q5vJQYYrfyDNtm31vYvW5boUQ58,518
391
392
  letta/services/file_processor/embedder/openai_embedder.py,sha256=HPFQ0igTCP4T0eF2sxHNTDDNsdj86fuB8GtlkiezbSE,7565
392
393
  letta/services/file_processor/embedder/pinecone_embedder.py,sha256=e_TQcSKfxS9xJaY6slAUxnD6Hk91kQI2E-bGr41Eb_g,3187
393
- letta/services/file_processor/file_processor.py,sha256=GRr_sKO44WKQVXcoN0nnN_wZuczQOpop5y0AYiM0cCY,15479
394
+ letta/services/file_processor/file_processor.py,sha256=UrXwhSE0kVpJZwUQbTevi1EF9Cq3O0TzVYbX4KhAmEI,15657
394
395
  letta/services/file_processor/file_types.py,sha256=kHe_EWK2k8y_5glVkCkkdZy1BLALyBvtlpZ9V-kiqHE,13070
395
396
  letta/services/file_processor/parser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
396
397
  letta/services/file_processor/parser/base_parser.py,sha256=WfnXP6fL-xQz4eIHEWa6-ZNEAARbF_alowqH4BAUzJo,238
397
398
  letta/services/file_processor/parser/markitdown_parser.py,sha256=BpCM82ocDKbNTKhb2Zu3ffYUXR5fqudiUiwxmmUePg4,3715
398
399
  letta/services/file_processor/parser/mistral_parser.py,sha256=NmCdVdpAB5f-VjILJp85pz2rSjlghKEg7qKTFzZLhP8,2384
399
400
  letta/services/file_processor/types.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
400
- letta/services/files_agents_manager.py,sha256=lSKiekZuB5fgVvhLxaA2oU1ddv4BWyIl7dDx43esUrQ,27892
401
+ letta/services/files_agents_manager.py,sha256=ol85A-5Gm25CpbTKBL1sFh78oDokKgUOvkkZlp1GZ0g,30120
401
402
  letta/services/group_manager.py,sha256=2QzL1Hy-j42pRHK8t-nAF1qlXGRSpBQlwWwfU7s4_ow,23688
402
- letta/services/helpers/agent_manager_helper.py,sha256=Zy4MMlVPuH-SQ7Io7WZIlqFvUs7mHqWlqp4QGlkTfzk,59442
403
+ letta/services/helpers/agent_manager_helper.py,sha256=SD22TZTqYypBz9BQE5FXCpoT8w8Nw8IYBOefoNz0myM,50795
403
404
  letta/services/helpers/tool_execution_helper.py,sha256=45L7woJ98jK5MQAnhE_4NZdCeyOOzC4328FTQPM7iTA,9159
404
- letta/services/helpers/tool_parser_helper.py,sha256=_3oAVRVfRaicGpO6qRKAlCAujZw2uBGUclei4FUC6Do,4349
405
+ letta/services/helpers/tool_parser_helper.py,sha256=gJ-XwvqIgVPlnPVbseHL0YPfTUtk6svqC43-U4VcM5k,4467
405
406
  letta/services/identity_manager.py,sha256=tI7K1VupongrJRDfFo4F86qcgCGhLmMiIAwTFwt3Syk,11847
406
407
  letta/services/job_manager.py,sha256=AdidZC7EUHm4hj2DYzZ7fRLV2fGx4L9kHMfhynwyhRw,36102
407
408
  letta/services/llm_batch_manager.py,sha256=9jszUj-hqvBf4OQQUNANC0b1xeULWjUXMFVso-eCc9o,20998
408
409
  letta/services/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
409
- letta/services/mcp/base_client.py,sha256=e1_cGL-lrfD3I0Rg3ekt9MdYvJX4d3tVgPER6WnHglc,4711
410
+ letta/services/mcp/base_client.py,sha256=meWGZk7EqjqNhqWDjBIrqFMnJ1YbCtzaxT_M1bwHPIg,4845
410
411
  letta/services/mcp/oauth_utils.py,sha256=swWsypnbxg58NRNnlCctb-imKedj8GJ-iAuJTHWV-xw,12626
411
- letta/services/mcp/sse_client.py,sha256=q1Wkfu2Cqljm11E5rkQ4hc7Ehf9Eaf6rZ5Yw0ROgZXs,1736
412
- letta/services/mcp/stdio_client.py,sha256=Z8HEQOGiY1jZFlW_pWbuOn1paYB6XhEH-ANmX55q9FI,1001
413
- letta/services/mcp/streamable_http_client.py,sha256=MuYhJt7mi34EVQ4XK_xZOY1GZWBEqfhsq6rXuZxOJx0,3546
412
+ letta/services/mcp/sse_client.py,sha256=IrzHkYeEg9bEF-4hgHwvcl8GhH8DPomb_Y3nwR1sMmA,1877
413
+ letta/services/mcp/stdio_client.py,sha256=J0S-pnFS2OYYb8YKldYaQKYA2J_qbNnWhfyfRMRlls4,1208
414
+ letta/services/mcp/streamable_http_client.py,sha256=d-5wmrZ7MjLTFbaAUAITEC699TBzJrS0zwr6UhPeAfg,3766
414
415
  letta/services/mcp/types.py,sha256=8LYlBwWvdbvfy6ZdXJoin-7QmgmJC7samYXjQZL4KZs,1662
415
- letta/services/mcp_manager.py,sha256=RS3aZvZ3yYbuZUoQi_uLsirMOgu2wtrEing5Nc3McN0,39393
416
+ letta/services/mcp_manager.py,sha256=TDrBz5WnZtwq4PrAa-xTNye7lnKRLbx8c25ippUFSiQ,39750
416
417
  letta/services/message_manager.py,sha256=_kwN9ZRRbZXX3yAiTSty9Eiybl10cQNqrt-7284_PPo,31721
417
418
  letta/services/organization_manager.py,sha256=PngZXPuzcCWB1CW7vAST9CsQZLysrpEdwHwhFN4_fhs,5838
418
419
  letta/services/passage_manager.py,sha256=MPq1qlnFcEjlKNN9DpWz37TByfFYRr1e0uHRNdiOhN8,42191
419
420
  letta/services/per_agent_lock_manager.py,sha256=cMaW8r-qhucQbiK27jVqz8wzhlr2yuRNXbdkaMO4lnk,627
420
421
  letta/services/provider_manager.py,sha256=g1FGNA8xb-DWzlnYCHtD73kLMurtHBI7pqpneZY_RBQ,10763
421
422
  letta/services/sandbox_config_manager.py,sha256=-smC1Y3bjE6CmCEW3xbbka6AWu_eyayF18nFDHhWUNk,26114
422
- letta/services/source_manager.py,sha256=borlj2xDW-1PKbxzEfn1j5oNMLw4bb3ujOyn5UmmCrI,16844
423
+ letta/services/source_manager.py,sha256=HHg9bnqJIbYbTNJrmpWtis1aARGLPUhD6XkoV0wd97s,17744
423
424
  letta/services/step_manager.py,sha256=usfeRE6oXeHj8v62f-1pq33yuSrmzNyKvAocZ8etjs0,20892
424
425
  letta/services/summarizer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
425
426
  letta/services/summarizer/enums.py,sha256=lo2E1DKB-s2Ydx4PcLia1PIRUOY5yTSsFt_0EZVV2r0,279
426
- letta/services/summarizer/summarizer.py,sha256=qXgquQs7nPAOb_EnlkKF0yS3QsRfYluZoJkFA4THhvA,18419
427
+ letta/services/summarizer/summarizer.py,sha256=Bw858_41L2hwviQHtjULrE4uTd6IqCowsGFCeeBwHBw,18773
427
428
  letta/services/telemetry_manager.py,sha256=Ur_VPgawiLIwDuxP9NHuz-hq_-S1vKIYThlB-doKZPY,3338
428
429
  letta/services/tool_executor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
429
430
  letta/services/tool_executor/builtin_tool_executor.py,sha256=S0m6IYTNPep34Tu51WoTIqm8YZvRVLQ1A3v7b_VeiVU,18107
430
431
  letta/services/tool_executor/composio_tool_executor.py,sha256=ia2AA_WDOseR8Ylam-HEayR7OiyfNSb1sSUrjwqlmFM,2308
431
432
  letta/services/tool_executor/core_tool_executor.py,sha256=PqCZ0FNq7E0Ji5Bh-xNsiARuEFKskXZ4Q0OuyU4tg3Q,20279
432
- letta/services/tool_executor/files_tool_executor.py,sha256=XccmHsofLaV4QIBuD8TOpw1-ucBZvra0_x5eAO_Biyc,32123
433
- letta/services/tool_executor/mcp_tool_executor.py,sha256=mY2JqB6G4DOvRVWuiL9BbHOfAO2VlLBDmJrjL3TNc4E,1908
433
+ letta/services/tool_executor/files_tool_executor.py,sha256=0RPYx_5pF-jUFZKKY9EhGdNfdPBw7Kadb-68-fFsZ3U,32321
434
+ letta/services/tool_executor/mcp_tool_executor.py,sha256=azBC66dy4PAMVkLHL5573P7K7k0M8OkygAU30EXWwFE,2001
434
435
  letta/services/tool_executor/multi_agent_tool_executor.py,sha256=dfaZeldEnzJDg2jGHlGy3YXKjsJpokJW1tvVeoCCDrk,5496
435
436
  letta/services/tool_executor/sandbox_tool_executor.py,sha256=lV2r6Zkp9-E7x5c7yKMB1cPaAv9FJXFAwEpRPtGvVhQ,6259
436
- letta/services/tool_executor/tool_execution_manager.py,sha256=tAbv-K5tuORoQK_0f6NXWhct2ltu3jqPynVO6aWcTVI,6411
437
+ letta/services/tool_executor/tool_execution_manager.py,sha256=Jz05CfUJAiVngwLV_qAgY8LwSHZGmp7poRcVJxOJPRE,6950
437
438
  letta/services/tool_executor/tool_execution_sandbox.py,sha256=p0PCPmlsC95nq2M6LWOHZ1JBNCvHeJIxOvy62-_4D_8,25928
438
439
  letta/services/tool_executor/tool_executor_base.py,sha256=4b1GU0LZc8iwbM3TisqBVOxsE2H6BiFZ3-r11IrtZ1U,1566
439
- letta/services/tool_manager.py,sha256=QxDCeEOUdyEb6Zv_BGRDrZqr1CFDA24plEokOBp_MoM,37855
440
+ letta/services/tool_manager.py,sha256=dtZSZA9OWxmpRo7EmqXPVnDEuFahbU7zVBouZTmxQfk,39124
440
441
  letta/services/tool_sandbox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
441
442
  letta/services/tool_sandbox/base.py,sha256=afzDoYo-Jw9shnAEzQubIV6H8Q2kJQ_6elWlQUr-sGY,8120
442
443
  letta/services/tool_sandbox/e2b_sandbox.py,sha256=7h7quhbJRV1eIztZPVPgJLYwgHS3ZiaaMvTPrt01F1U,10294
@@ -448,7 +449,7 @@ letta/services/tool_sandbox/modal_sandbox_v2.py,sha256=8GcGG20lirNU33375SFfhecS6
448
449
  letta/services/tool_sandbox/modal_version_manager.py,sha256=Arcwf8c0SOWVWkSQpmvhJvyIgbpBjHT4K4ZG-m5d-Jk,11401
449
450
  letta/services/tool_sandbox/safe_pickle.py,sha256=p8NJy3zVj-LrvXj8pwJ-SG8r-VhD86NVGWoboaF3ir4,5964
450
451
  letta/services/user_manager.py,sha256=0OHwODW24VSDwl-TiVMqpAmT7I-Y88CNOn9pUWDfkqc,9979
451
- letta/settings.py,sha256=LR90_usMd2XRKOamyqeAZOZ0lYa9e4IDqbaOsDy_lOA,14512
452
+ letta/settings.py,sha256=4jl4mkYoD4SZ7BIez-A1YP81S_cjHeIlNU1tpVKhboI,14638
452
453
  letta/streaming_interface.py,sha256=c-T7zoMTXGXFwDWJJXrv7UypeMPXwPOmNHeuuh0b9zk,16398
453
454
  letta/streaming_utils.py,sha256=g6QPibjT5kwnJ55IwLb7mBQ9EYp61aBWgYeV_IUuTr8,12009
454
455
  letta/system.py,sha256=7VkRJO59S7cq8mWbvCrP27YyTg7gVQoVE3IZbL6rRdI,8926
@@ -458,9 +459,9 @@ letta/templates/sandbox_code_file_async.py.j2,sha256=lb7nh_P2W9VZHzU_9TxSCEMUod7
458
459
  letta/templates/summary_request_text.j2,sha256=ZttQwXonW2lk4pJLYzLK0pmo4EO4EtUUIXjgXKiizuc,842
459
460
  letta/templates/template_helper.py,sha256=HkG3zwRc5NVGmSTQu5PUTpz7LevK43bzXVaQuN8urf0,1634
460
461
  letta/types/__init__.py,sha256=hokKjCVFGEfR7SLMrtZsRsBfsC7yTIbgKPLdGg4K1eY,147
461
- letta/utils.py,sha256=oY4O447Bu5f0M_zpCR2hL62yinUvbYbGzK-7JFgMBug,38406
462
- letta_nightly-0.11.4.dev20250825104222.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
463
- letta_nightly-0.11.4.dev20250825104222.dist-info/METADATA,sha256=Ncnlzzwlb9OSSfIkWCPOfHwRgDWNrtESBlC5hO8x4QI,23281
464
- letta_nightly-0.11.4.dev20250825104222.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
465
- letta_nightly-0.11.4.dev20250825104222.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
466
- letta_nightly-0.11.4.dev20250825104222.dist-info/RECORD,,
462
+ letta/utils.py,sha256=ZVsrhcwsSxW2-YQ85sM3eAyrcGkU036ht56zvSgJ9QY,39986
463
+ letta_nightly-0.11.5.dist-info/LICENSE,sha256=mExtuZ_GYJgDEI38GWdiEYZizZS4KkVt2SF1g_GPNhI,10759
464
+ letta_nightly-0.11.5.dist-info/METADATA,sha256=KRcxDKEj1CF_8HLV3Dh1xe2vYIdcozEyHE8YjUrtU-I,23263
465
+ letta_nightly-0.11.5.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
466
+ letta_nightly-0.11.5.dist-info/entry_points.txt,sha256=2zdiyGNEZGV5oYBuS-y2nAAgjDgcC9yM_mHJBFSRt5U,40
467
+ letta_nightly-0.11.5.dist-info/RECORD,,
File without changes