letta-nightly 0.6.37.dev20250310103931__tar.gz → 0.6.38.dev20250312104155__tar.gz
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.
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/PKG-INFO +18 -17
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/__init__.py +1 -1
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/agent.py +34 -12
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/client/client.py +1 -50
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/constants.py +1 -1
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/functions/function_sets/multi_agent.py +9 -8
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/functions/helpers.py +33 -6
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/llm_api/anthropic.py +20 -0
- letta_nightly-0.6.38.dev20250312104155/letta/llm_api/google_ai_client.py +332 -0
- letta_nightly-0.6.38.dev20250312104155/letta/llm_api/google_vertex_client.py +214 -0
- letta_nightly-0.6.38.dev20250312104155/letta/llm_api/llm_client.py +48 -0
- letta_nightly-0.6.38.dev20250312104155/letta/llm_api/llm_client_base.py +129 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/step.py +1 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/block.py +4 -48
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/letta_message.py +26 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/message.py +1 -1
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/step.py +1 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/serialize_schemas/agent.py +8 -1
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/interface.py +9 -7
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +2 -7
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/agents.py +12 -8
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/steps.py +2 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/voice.py +3 -6
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/agent_manager.py +56 -3
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/helpers/agent_manager_helper.py +12 -1
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/identity_manager.py +7 -1
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/message_manager.py +40 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/step_manager.py +8 -1
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/pyproject.toml +5 -4
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/LICENSE +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/README.md +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/__main__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/agents/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/agents/base_agent.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/agents/ephemeral_agent.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/agents/low_latency_agent.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/benchmark/benchmark.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/benchmark/constants.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/cli/cli.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/cli/cli_config.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/cli/cli_load.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/client/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/client/streaming.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/client/utils.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/config.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/data_sources/connectors.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/data_sources/connectors_helper.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/embeddings.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/errors.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/functions/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/functions/ast_parsers.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/functions/function_sets/base.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/functions/function_sets/extras.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/functions/functions.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/functions/interface.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/functions/schema_generator.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/helpers/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/helpers/composio_helpers.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/helpers/converters.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/helpers/datetime_helpers.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/helpers/json_helpers.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/helpers/tool_execution_helper.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/helpers/tool_rule_solver.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/humans/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/humans/examples/basic.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/humans/examples/cs_phd.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/interface.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/interfaces/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/interfaces/openai_chat_completions_streaming_interface.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/interfaces/utils.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/llm_api/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/llm_api/aws_bedrock.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/llm_api/azure_openai.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/llm_api/azure_openai_constants.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/llm_api/cohere.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/llm_api/deepseek.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/llm_api/google_ai.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/llm_api/google_constants.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/llm_api/google_vertex.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/llm_api/helpers.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/llm_api/llm_api_tools.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/llm_api/mistral.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/llm_api/openai.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/README.md +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/chat_completion_proxy.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/constants.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/function_parser.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/grammars/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/grammars/gbnf_grammar_generator.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/grammars/json.gbnf +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/grammars/json_func_calls_with_inner_thoughts.gbnf +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/json_parser.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/koboldcpp/api.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/koboldcpp/settings.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/llamacpp/api.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/llamacpp/settings.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/llm_chat_completion_wrappers/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/llm_chat_completion_wrappers/airoboros.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/llm_chat_completion_wrappers/chatml.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/llm_chat_completion_wrappers/configurable_wrapper.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/llm_chat_completion_wrappers/dolphin.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/llm_chat_completion_wrappers/llama3.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/llm_chat_completion_wrappers/simple_summary_wrapper.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/llm_chat_completion_wrappers/wrapper_base.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/llm_chat_completion_wrappers/zephyr.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/lmstudio/api.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/lmstudio/settings.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/ollama/api.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/ollama/settings.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/settings/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/settings/deterministic_mirostat.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/settings/settings.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/settings/simple.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/utils.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/vllm/api.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/webui/api.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/webui/legacy_api.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/webui/legacy_settings.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/local_llm/webui/settings.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/log.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/main.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/memory.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/offline_memory_agent.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/openai_backcompat/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/openai_backcompat/openai_object.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/__all__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/agent.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/agents_tags.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/base.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/block.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/blocks_agents.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/custom_columns.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/enums.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/errors.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/file.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/identities_agents.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/identity.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/job.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/job_messages.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/message.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/mixins.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/organization.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/passage.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/provider.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/sandbox_config.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/source.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/sources_agents.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/sqlalchemy_base.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/sqlite_functions.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/tool.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/tools_agents.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/orm/user.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/personas/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/personas/examples/anna_pa.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/personas/examples/google_search_persona.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/personas/examples/memgpt_doc.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/personas/examples/memgpt_starter.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/personas/examples/o1_persona.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/personas/examples/offline_memory_persona.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/personas/examples/sam.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/personas/examples/sam_pov.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/personas/examples/sam_simple_pov_gpt35.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/personas/examples/sqldb/test.db +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/gpt_summarize.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/gpt_system.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/system/memgpt_base.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/system/memgpt_chat.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/system/memgpt_chat_compressed.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/system/memgpt_chat_fstring.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/system/memgpt_convo_only.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/system/memgpt_doc.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/system/memgpt_gpt35_extralong.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/system/memgpt_intuitive_knowledge.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/system/memgpt_memory_only.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/system/memgpt_modified_chat.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/system/memgpt_modified_o1.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/system/memgpt_offline_memory.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/prompts/system/memgpt_offline_memory_chat.txt +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/pytest.ini +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/agent.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/embedding_config.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/embedding_config_overrides.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/enums.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/environment_variables.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/file.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/health.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/identity.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/job.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/letta_base.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/letta_request.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/letta_response.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/llm_config.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/llm_config_overrides.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/memory.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/openai/chat_completion_request.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/openai/chat_completion_response.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/openai/chat_completions.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/openai/embedding_response.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/openai/openai.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/organization.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/passage.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/providers.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/run.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/sandbox_config.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/source.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/tool.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/tool_rule.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/usage.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/schemas/user.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/serialize_schemas/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/serialize_schemas/agent_environment_variable.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/serialize_schemas/base.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/serialize_schemas/block.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/serialize_schemas/custom_fields.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/serialize_schemas/message.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/serialize_schemas/tag.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/serialize_schemas/tool.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/constants.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/db.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/generate_openapi_schema.sh +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/app.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/auth/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/auth/index.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/auth_token.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/chat_completions_interface.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/optimistic_json_parser.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/openai/chat_completions/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/blocks.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/health.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/identities.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/jobs.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/llms.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/organizations.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/providers.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/runs.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/sandbox_configs.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/sources.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/tags.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/tools.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/routers/v1/users.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/static_files.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/rest_api/utils.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/server.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/startup.sh +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/static_files/assets/index-048c9598.js +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/static_files/assets/index-0e31b727.css +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/static_files/favicon.ico +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/static_files/index.html +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/static_files/memgpt_logo_transparent.png +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/utils.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/ws_api/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/ws_api/example_client.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/ws_api/interface.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/ws_api/protocol.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/server/ws_api/server.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/block_manager.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/helpers/tool_execution_helper.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/job_manager.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/organization_manager.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/passage_manager.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/per_agent_lock_manager.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/provider_manager.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/sandbox_config_manager.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/source_manager.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/summarizer/__init__.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/summarizer/enums.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/summarizer/summarizer.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/tool_execution_sandbox.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/tool_manager.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/services/user_manager.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/settings.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/streaming_interface.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/streaming_utils.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/system.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/tracing.py +0 -0
- {letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: letta-nightly
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.38.dev20250312104155
|
|
4
4
|
Summary: Create LLM agents with long-term memory and custom tools
|
|
5
5
|
License: Apache License
|
|
6
6
|
Author: Letta Team
|
|
@@ -14,6 +14,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
14
14
|
Provides-Extra: all
|
|
15
15
|
Provides-Extra: bedrock
|
|
16
16
|
Provides-Extra: cloud-tool-sandbox
|
|
17
|
+
Provides-Extra: desktop
|
|
17
18
|
Provides-Extra: dev
|
|
18
19
|
Provides-Extra: external-tools
|
|
19
20
|
Provides-Extra: google
|
|
@@ -28,17 +29,17 @@ Requires-Dist: black[jupyter] (>=24.2.0,<25.0.0) ; extra == "dev" or extra == "a
|
|
|
28
29
|
Requires-Dist: boto3 (>=1.36.24,<2.0.0) ; extra == "bedrock"
|
|
29
30
|
Requires-Dist: brotli (>=1.1.0,<2.0.0)
|
|
30
31
|
Requires-Dist: colorama (>=0.4.6,<0.5.0)
|
|
31
|
-
Requires-Dist: composio-core (>=0.7.
|
|
32
|
-
Requires-Dist: composio-langchain (>=0.7.
|
|
33
|
-
Requires-Dist: datamodel-code-generator[http] (>=0.25.0,<0.26.0)
|
|
34
|
-
Requires-Dist: datasets (>=2.14.6,<3.0.0) ; extra == "dev" or extra == "all"
|
|
32
|
+
Requires-Dist: composio-core (>=0.7.7,<0.8.0)
|
|
33
|
+
Requires-Dist: composio-langchain (>=0.7.7,<0.8.0)
|
|
34
|
+
Requires-Dist: datamodel-code-generator[http] (>=0.25.0,<0.26.0) ; extra == "desktop" or extra == "all"
|
|
35
|
+
Requires-Dist: datasets (>=2.14.6,<3.0.0) ; extra == "dev" or extra == "desktop" or extra == "all"
|
|
35
36
|
Requires-Dist: demjson3 (>=3.0.6,<4.0.0)
|
|
36
|
-
Requires-Dist: docker (>=7.1.0,<8.0.0) ; extra == "external-tools" or extra == "all"
|
|
37
|
+
Requires-Dist: docker (>=7.1.0,<8.0.0) ; extra == "external-tools" or extra == "desktop" or extra == "all"
|
|
37
38
|
Requires-Dist: docstring-parser (>=0.16,<0.17)
|
|
38
39
|
Requires-Dist: docx2txt (>=0.8,<0.9)
|
|
39
40
|
Requires-Dist: e2b-code-interpreter (>=1.0.3,<2.0.0) ; extra == "cloud-tool-sandbox"
|
|
40
41
|
Requires-Dist: faker (>=36.1.0,<37.0.0)
|
|
41
|
-
Requires-Dist: fastapi (>=0.115.6,<0.116.0) ; extra == "server" or extra == "all"
|
|
42
|
+
Requires-Dist: fastapi (>=0.115.6,<0.116.0) ; extra == "server" or extra == "desktop" or extra == "all"
|
|
42
43
|
Requires-Dist: google-genai (>=1.1.0,<2.0.0) ; extra == "google"
|
|
43
44
|
Requires-Dist: grpcio (>=1.68.1,<2.0.0)
|
|
44
45
|
Requires-Dist: grpcio-tools (>=1.68.1,<2.0.0)
|
|
@@ -47,12 +48,12 @@ Requires-Dist: httpx (>=0.28.0,<0.29.0)
|
|
|
47
48
|
Requires-Dist: httpx-sse (>=0.4.0,<0.5.0)
|
|
48
49
|
Requires-Dist: isort (>=5.13.2,<6.0.0) ; extra == "dev" or extra == "all"
|
|
49
50
|
Requires-Dist: jinja2 (>=3.1.5,<4.0.0)
|
|
50
|
-
Requires-Dist: langchain (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "all"
|
|
51
|
-
Requires-Dist: langchain-community (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "all"
|
|
51
|
+
Requires-Dist: langchain (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "desktop" or extra == "all"
|
|
52
|
+
Requires-Dist: langchain-community (>=0.3.7,<0.4.0) ; extra == "external-tools" or extra == "desktop" or extra == "all"
|
|
52
53
|
Requires-Dist: letta_client (>=0.1.54,<0.2.0)
|
|
53
54
|
Requires-Dist: llama-index (>=0.12.2,<0.13.0)
|
|
54
55
|
Requires-Dist: llama-index-embeddings-openai (>=0.3.1,<0.4.0)
|
|
55
|
-
Requires-Dist: locust (>=2.31.5,<3.0.0) ; extra == "dev" or extra == "all"
|
|
56
|
+
Requires-Dist: locust (>=2.31.5,<3.0.0) ; extra == "dev" or extra == "desktop" or extra == "all"
|
|
56
57
|
Requires-Dist: marshmallow-sqlalchemy (>=1.4.1,<2.0.0)
|
|
57
58
|
Requires-Dist: nltk (>=3.8.1,<4.0.0)
|
|
58
59
|
Requires-Dist: numpy (>=1.26.2,<2.0.0)
|
|
@@ -63,16 +64,16 @@ Requires-Dist: opentelemetry-instrumentation-requests (==0.51b0)
|
|
|
63
64
|
Requires-Dist: opentelemetry-sdk (==1.30.0)
|
|
64
65
|
Requires-Dist: pathvalidate (>=3.2.1,<4.0.0)
|
|
65
66
|
Requires-Dist: pexpect (>=4.9.0,<5.0.0) ; extra == "dev" or extra == "all"
|
|
66
|
-
Requires-Dist: pg8000 (>=1.30.3,<2.0.0) ; extra == "postgres" or extra == "all"
|
|
67
|
-
Requires-Dist: pgvector (>=0.2.3,<0.3.0) ; extra == "postgres" or extra == "all"
|
|
67
|
+
Requires-Dist: pg8000 (>=1.30.3,<2.0.0) ; extra == "postgres" or extra == "desktop" or extra == "all"
|
|
68
|
+
Requires-Dist: pgvector (>=0.2.3,<0.3.0) ; extra == "postgres" or extra == "desktop" or extra == "all"
|
|
68
69
|
Requires-Dist: pre-commit (>=3.5.0,<4.0.0) ; extra == "dev" or extra == "all"
|
|
69
70
|
Requires-Dist: prettytable (>=3.9.0,<4.0.0)
|
|
70
|
-
Requires-Dist: psycopg2 (>=2.9.10,<3.0.0) ; extra == "postgres" or extra == "all"
|
|
71
|
-
Requires-Dist: psycopg2-binary (>=2.9.10,<3.0.0) ; extra == "postgres" or extra == "all"
|
|
71
|
+
Requires-Dist: psycopg2 (>=2.9.10,<3.0.0) ; extra == "postgres" or extra == "desktop" or extra == "all"
|
|
72
|
+
Requires-Dist: psycopg2-binary (>=2.9.10,<3.0.0) ; extra == "postgres" or extra == "desktop" or extra == "all"
|
|
72
73
|
Requires-Dist: pydantic (>=2.7.4,<2.10.0)
|
|
73
74
|
Requires-Dist: pydantic-settings (>=2.2.1,<3.0.0)
|
|
74
75
|
Requires-Dist: pyhumps (>=3.8.0,<4.0.0)
|
|
75
|
-
Requires-Dist: pyright (>=1.1.347,<2.0.0) ; extra == "dev" or extra == "all"
|
|
76
|
+
Requires-Dist: pyright (>=1.1.347,<2.0.0) ; extra == "dev" or extra == "desktop" or extra == "all"
|
|
76
77
|
Requires-Dist: pytest-asyncio (>=0.23.2,<0.24.0) ; extra == "dev" or extra == "all"
|
|
77
78
|
Requires-Dist: pytest-order (>=1.2.0,<2.0.0) ; extra == "dev" or extra == "all"
|
|
78
79
|
Requires-Dist: python-box (>=7.1.1,<8.0.0)
|
|
@@ -90,8 +91,8 @@ Requires-Dist: sqlalchemy-utils (>=0.41.2,<0.42.0)
|
|
|
90
91
|
Requires-Dist: sqlmodel (>=0.0.16,<0.0.17)
|
|
91
92
|
Requires-Dist: tqdm (>=4.66.1,<5.0.0)
|
|
92
93
|
Requires-Dist: typer[all] (>=0.9.0,<0.10.0)
|
|
93
|
-
Requires-Dist: uvicorn (>=0.24.0.post1,<0.25.0) ; extra == "server" or extra == "all"
|
|
94
|
-
Requires-Dist: wikipedia (>=1.4.0,<2.0.0) ; extra == "external-tools" or extra == "tests" or extra == "all"
|
|
94
|
+
Requires-Dist: uvicorn (>=0.24.0.post1,<0.25.0) ; extra == "server" or extra == "desktop" or extra == "all"
|
|
95
|
+
Requires-Dist: wikipedia (>=1.4.0,<2.0.0) ; extra == "external-tools" or extra == "tests" or extra == "desktop" or extra == "all"
|
|
95
96
|
Description-Content-Type: text/markdown
|
|
96
97
|
|
|
97
98
|
<p align="center">
|
{letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/agent.py
RENAMED
|
@@ -29,6 +29,7 @@ from letta.helpers.json_helpers import json_dumps, json_loads
|
|
|
29
29
|
from letta.interface import AgentInterface
|
|
30
30
|
from letta.llm_api.helpers import calculate_summarizer_cutoff, get_token_counts_for_messages, is_context_overflow_error
|
|
31
31
|
from letta.llm_api.llm_api_tools import create
|
|
32
|
+
from letta.llm_api.llm_client import LLMClient
|
|
32
33
|
from letta.local_llm.utils import num_tokens_from_functions, num_tokens_from_messages
|
|
33
34
|
from letta.log import get_logger
|
|
34
35
|
from letta.memory import summarize_messages
|
|
@@ -356,19 +357,38 @@ class Agent(BaseAgent):
|
|
|
356
357
|
for attempt in range(1, empty_response_retry_limit + 1):
|
|
357
358
|
try:
|
|
358
359
|
log_telemetry(self.logger, "_get_ai_reply create start")
|
|
359
|
-
|
|
360
|
+
# New LLM client flow
|
|
361
|
+
llm_client = LLMClient.create(
|
|
362
|
+
agent_id=self.agent_state.id,
|
|
360
363
|
llm_config=self.agent_state.llm_config,
|
|
361
|
-
messages=message_sequence,
|
|
362
|
-
user_id=self.agent_state.created_by_id,
|
|
363
|
-
functions=allowed_functions,
|
|
364
|
-
# functions_python=self.functions_python, do we need this?
|
|
365
|
-
function_call=function_call,
|
|
366
|
-
first_message=first_message,
|
|
367
|
-
force_tool_call=force_tool_call,
|
|
368
|
-
stream=stream,
|
|
369
|
-
stream_interface=self.interface,
|
|
370
364
|
put_inner_thoughts_first=put_inner_thoughts_first,
|
|
365
|
+
actor_id=self.agent_state.created_by_id,
|
|
371
366
|
)
|
|
367
|
+
|
|
368
|
+
if llm_client and not stream:
|
|
369
|
+
response = llm_client.send_llm_request(
|
|
370
|
+
messages=message_sequence,
|
|
371
|
+
tools=allowed_functions,
|
|
372
|
+
tool_call=function_call,
|
|
373
|
+
stream=stream,
|
|
374
|
+
first_message=first_message,
|
|
375
|
+
force_tool_call=force_tool_call,
|
|
376
|
+
)
|
|
377
|
+
else:
|
|
378
|
+
# Fallback to existing flow
|
|
379
|
+
response = create(
|
|
380
|
+
llm_config=self.agent_state.llm_config,
|
|
381
|
+
messages=message_sequence,
|
|
382
|
+
user_id=self.agent_state.created_by_id,
|
|
383
|
+
functions=allowed_functions,
|
|
384
|
+
# functions_python=self.functions_python, do we need this?
|
|
385
|
+
function_call=function_call,
|
|
386
|
+
first_message=first_message,
|
|
387
|
+
force_tool_call=force_tool_call,
|
|
388
|
+
stream=stream,
|
|
389
|
+
stream_interface=self.interface,
|
|
390
|
+
put_inner_thoughts_first=put_inner_thoughts_first,
|
|
391
|
+
)
|
|
372
392
|
log_telemetry(self.logger, "_get_ai_reply create finish")
|
|
373
393
|
|
|
374
394
|
# These bottom two are retryable
|
|
@@ -632,7 +652,7 @@ class Agent(BaseAgent):
|
|
|
632
652
|
function_args,
|
|
633
653
|
function_response,
|
|
634
654
|
messages,
|
|
635
|
-
[tool_return]
|
|
655
|
+
[tool_return],
|
|
636
656
|
include_function_failed_message=True,
|
|
637
657
|
)
|
|
638
658
|
return messages, False, True # force a heartbeat to allow agent to handle error
|
|
@@ -659,7 +679,7 @@ class Agent(BaseAgent):
|
|
|
659
679
|
"content": function_response,
|
|
660
680
|
"tool_call_id": tool_call_id,
|
|
661
681
|
},
|
|
662
|
-
tool_returns=[tool_return] if
|
|
682
|
+
tool_returns=[tool_return] if sandbox_run_result else None,
|
|
663
683
|
)
|
|
664
684
|
) # extend conversation with function response
|
|
665
685
|
self.interface.function_message(f"Ran {function_name}({function_args})", msg_obj=messages[-1])
|
|
@@ -909,6 +929,7 @@ class Agent(BaseAgent):
|
|
|
909
929
|
# Log step - this must happen before messages are persisted
|
|
910
930
|
step = self.step_manager.log_step(
|
|
911
931
|
actor=self.user,
|
|
932
|
+
agent_id=self.agent_state.id,
|
|
912
933
|
provider_name=self.agent_state.llm_config.model_endpoint_type,
|
|
913
934
|
model=self.agent_state.llm_config.model,
|
|
914
935
|
model_endpoint=self.agent_state.llm_config.model_endpoint,
|
|
@@ -1174,6 +1195,7 @@ class Agent(BaseAgent):
|
|
|
1174
1195
|
memory_edit_timestamp=get_utc_time(),
|
|
1175
1196
|
previous_message_count=self.message_manager.size(actor=self.user, agent_id=self.agent_state.id),
|
|
1176
1197
|
archival_memory_size=self.agent_manager.passage_size(actor=self.user, agent_id=self.agent_state.id),
|
|
1198
|
+
recent_passages=self.agent_manager.list_passages(actor=self.user, agent_id=self.agent_state.id, ascending=False, limit=10),
|
|
1177
1199
|
)
|
|
1178
1200
|
num_tokens_external_memory_summary = count_tokens(external_memory_summary)
|
|
1179
1201
|
|
|
@@ -4,7 +4,6 @@ import time
|
|
|
4
4
|
from typing import Callable, Dict, Generator, List, Optional, Union
|
|
5
5
|
|
|
6
6
|
import requests
|
|
7
|
-
from openai.types.chat.chat_completion_message_tool_call import ChatCompletionMessageToolCall as OpenAIToolCall
|
|
8
7
|
|
|
9
8
|
import letta.utils
|
|
10
9
|
from letta.constants import ADMIN_PREFIX, BASE_MEMORY_TOOLS, BASE_TOOLS, DEFAULT_HUMAN, DEFAULT_PERSONA, FUNCTION_RETURN_CHAR_LIMIT
|
|
@@ -29,7 +28,7 @@ from letta.schemas.letta_request import LettaRequest, LettaStreamingRequest
|
|
|
29
28
|
from letta.schemas.letta_response import LettaResponse, LettaStreamingResponse
|
|
30
29
|
from letta.schemas.llm_config import LLMConfig
|
|
31
30
|
from letta.schemas.memory import ArchivalMemorySummary, ChatMemory, CreateArchivalMemory, Memory, RecallMemorySummary
|
|
32
|
-
from letta.schemas.message import Message, MessageCreate
|
|
31
|
+
from letta.schemas.message import Message, MessageCreate
|
|
33
32
|
from letta.schemas.openai.chat_completion_response import UsageStatistics
|
|
34
33
|
from letta.schemas.organization import Organization
|
|
35
34
|
from letta.schemas.passage import Passage
|
|
@@ -640,30 +639,6 @@ class RESTClient(AbstractClient):
|
|
|
640
639
|
# refresh and return agent
|
|
641
640
|
return self.get_agent(agent_state.id)
|
|
642
641
|
|
|
643
|
-
def update_message(
|
|
644
|
-
self,
|
|
645
|
-
agent_id: str,
|
|
646
|
-
message_id: str,
|
|
647
|
-
role: Optional[MessageRole] = None,
|
|
648
|
-
text: Optional[str] = None,
|
|
649
|
-
name: Optional[str] = None,
|
|
650
|
-
tool_calls: Optional[List[OpenAIToolCall]] = None,
|
|
651
|
-
tool_call_id: Optional[str] = None,
|
|
652
|
-
) -> Message:
|
|
653
|
-
request = MessageUpdate(
|
|
654
|
-
role=role,
|
|
655
|
-
content=text,
|
|
656
|
-
name=name,
|
|
657
|
-
tool_calls=tool_calls,
|
|
658
|
-
tool_call_id=tool_call_id,
|
|
659
|
-
)
|
|
660
|
-
response = requests.patch(
|
|
661
|
-
f"{self.base_url}/{self.api_prefix}/agents/{agent_id}/messages/{message_id}", json=request.model_dump(), headers=self.headers
|
|
662
|
-
)
|
|
663
|
-
if response.status_code != 200:
|
|
664
|
-
raise ValueError(f"Failed to update message: {response.text}")
|
|
665
|
-
return Message(**response.json())
|
|
666
|
-
|
|
667
642
|
def update_agent(
|
|
668
643
|
self,
|
|
669
644
|
agent_id: str,
|
|
@@ -2436,30 +2411,6 @@ class LocalClient(AbstractClient):
|
|
|
2436
2411
|
# TODO: get full agent state
|
|
2437
2412
|
return self.server.agent_manager.get_agent_by_id(agent_state.id, actor=self.user)
|
|
2438
2413
|
|
|
2439
|
-
def update_message(
|
|
2440
|
-
self,
|
|
2441
|
-
agent_id: str,
|
|
2442
|
-
message_id: str,
|
|
2443
|
-
role: Optional[MessageRole] = None,
|
|
2444
|
-
text: Optional[str] = None,
|
|
2445
|
-
name: Optional[str] = None,
|
|
2446
|
-
tool_calls: Optional[List[OpenAIToolCall]] = None,
|
|
2447
|
-
tool_call_id: Optional[str] = None,
|
|
2448
|
-
) -> Message:
|
|
2449
|
-
message = self.server.update_agent_message(
|
|
2450
|
-
agent_id=agent_id,
|
|
2451
|
-
message_id=message_id,
|
|
2452
|
-
request=MessageUpdate(
|
|
2453
|
-
role=role,
|
|
2454
|
-
content=text,
|
|
2455
|
-
name=name,
|
|
2456
|
-
tool_calls=tool_calls,
|
|
2457
|
-
tool_call_id=tool_call_id,
|
|
2458
|
-
),
|
|
2459
|
-
actor=self.user,
|
|
2460
|
-
)
|
|
2461
|
-
return message
|
|
2462
|
-
|
|
2463
2414
|
def update_agent(
|
|
2464
2415
|
self,
|
|
2465
2416
|
agent_id: str,
|
{letta_nightly-0.6.37.dev20250310103931 → letta_nightly-0.6.38.dev20250312104155}/letta/constants.py
RENAMED
|
@@ -50,7 +50,7 @@ BASE_TOOLS = ["send_message", "conversation_search", "archival_memory_insert", "
|
|
|
50
50
|
# Base memory tools CAN be edited, and are added by default by the server
|
|
51
51
|
BASE_MEMORY_TOOLS = ["core_memory_append", "core_memory_replace"]
|
|
52
52
|
# Multi agent tools
|
|
53
|
-
MULTI_AGENT_TOOLS = ["send_message_to_agent_and_wait_for_reply", "
|
|
53
|
+
MULTI_AGENT_TOOLS = ["send_message_to_agent_and_wait_for_reply", "send_message_to_agents_matching_tags", "send_message_to_agent_async"]
|
|
54
54
|
# Set of all built-in Letta tools
|
|
55
55
|
LETTA_TOOL_SET = set(BASE_TOOLS + BASE_MEMORY_TOOLS + MULTI_AGENT_TOOLS)
|
|
56
56
|
|
|
@@ -2,7 +2,7 @@ import asyncio
|
|
|
2
2
|
from typing import TYPE_CHECKING, List
|
|
3
3
|
|
|
4
4
|
from letta.functions.helpers import (
|
|
5
|
-
|
|
5
|
+
_send_message_to_agents_matching_tags_async,
|
|
6
6
|
execute_send_message_to_agent,
|
|
7
7
|
fire_and_forget_send_to_agent,
|
|
8
8
|
)
|
|
@@ -70,18 +70,19 @@ def send_message_to_agent_async(self: "Agent", message: str, other_agent_id: str
|
|
|
70
70
|
return "Successfully sent message"
|
|
71
71
|
|
|
72
72
|
|
|
73
|
-
def
|
|
73
|
+
def send_message_to_agents_matching_tags(self: "Agent", message: str, match_all: List[str], match_some: List[str]) -> List[str]:
|
|
74
74
|
"""
|
|
75
|
-
Sends a message to all agents within the same organization that match
|
|
75
|
+
Sends a message to all agents within the same organization that match the specified tag criteria. Agents must possess *all* of the tags in `match_all` and *at least one* of the tags in `match_some` to receive the message.
|
|
76
76
|
|
|
77
77
|
Args:
|
|
78
78
|
message (str): The content of the message to be sent to each matching agent.
|
|
79
|
-
|
|
79
|
+
match_all (List[str]): A list of tags that an agent must possess to receive the message.
|
|
80
|
+
match_some (List[str]): A list of tags where an agent must have at least one to qualify.
|
|
80
81
|
|
|
81
82
|
Returns:
|
|
82
|
-
List[str]: A list of responses from the agents that matched
|
|
83
|
-
response corresponds to a single agent. Agents that do not respond will not
|
|
84
|
-
|
|
83
|
+
List[str]: A list of responses from the agents that matched the filtering criteria. Each
|
|
84
|
+
response corresponds to a single agent. Agents that do not respond will not have an entry
|
|
85
|
+
in the returned list.
|
|
85
86
|
"""
|
|
86
87
|
|
|
87
|
-
return asyncio.run(
|
|
88
|
+
return asyncio.run(_send_message_to_agents_matching_tags_async(self, message, match_all, match_some))
|
|
@@ -518,8 +518,16 @@ def fire_and_forget_send_to_agent(
|
|
|
518
518
|
run_in_background_thread(background_task())
|
|
519
519
|
|
|
520
520
|
|
|
521
|
-
async def
|
|
522
|
-
|
|
521
|
+
async def _send_message_to_agents_matching_tags_async(
|
|
522
|
+
sender_agent: "Agent", message: str, match_all: List[str], match_some: List[str]
|
|
523
|
+
) -> List[str]:
|
|
524
|
+
log_telemetry(
|
|
525
|
+
sender_agent.logger,
|
|
526
|
+
"_send_message_to_agents_matching_tags_async start",
|
|
527
|
+
message=message,
|
|
528
|
+
match_all=match_all,
|
|
529
|
+
match_some=match_some,
|
|
530
|
+
)
|
|
523
531
|
server = get_letta_server()
|
|
524
532
|
|
|
525
533
|
augmented_message = (
|
|
@@ -529,9 +537,22 @@ async def _send_message_to_agents_matching_all_tags_async(sender_agent: "Agent",
|
|
|
529
537
|
)
|
|
530
538
|
|
|
531
539
|
# Retrieve up to 100 matching agents
|
|
532
|
-
log_telemetry(
|
|
533
|
-
|
|
534
|
-
|
|
540
|
+
log_telemetry(
|
|
541
|
+
sender_agent.logger,
|
|
542
|
+
"_send_message_to_agents_matching_tags_async listing agents start",
|
|
543
|
+
message=message,
|
|
544
|
+
match_all=match_all,
|
|
545
|
+
match_some=match_some,
|
|
546
|
+
)
|
|
547
|
+
matching_agents = server.agent_manager.list_agents_matching_tags(actor=sender_agent.user, match_all=match_all, match_some=match_some)
|
|
548
|
+
|
|
549
|
+
log_telemetry(
|
|
550
|
+
sender_agent.logger,
|
|
551
|
+
"_send_message_to_agents_matching_tags_async listing agents finish",
|
|
552
|
+
message=message,
|
|
553
|
+
match_all=match_all,
|
|
554
|
+
match_some=match_some,
|
|
555
|
+
)
|
|
535
556
|
|
|
536
557
|
# Create a system message
|
|
537
558
|
messages = [MessageCreate(role=MessageRole.system, content=augmented_message, name=sender_agent.agent_state.name)]
|
|
@@ -559,7 +580,13 @@ async def _send_message_to_agents_matching_all_tags_async(sender_agent: "Agent",
|
|
|
559
580
|
else:
|
|
560
581
|
final.append(r)
|
|
561
582
|
|
|
562
|
-
log_telemetry(
|
|
583
|
+
log_telemetry(
|
|
584
|
+
sender_agent.logger,
|
|
585
|
+
"_send_message_to_agents_matching_tags_async finish",
|
|
586
|
+
message=message,
|
|
587
|
+
match_all=match_all,
|
|
588
|
+
match_some=match_some,
|
|
589
|
+
)
|
|
563
590
|
return final
|
|
564
591
|
|
|
565
592
|
|
|
@@ -53,6 +53,11 @@ MODEL_LIST = [
|
|
|
53
53
|
"name": "claude-3-opus-20240229",
|
|
54
54
|
"context_window": 200000,
|
|
55
55
|
},
|
|
56
|
+
# latest
|
|
57
|
+
{
|
|
58
|
+
"name": "claude-3-opus-latest",
|
|
59
|
+
"context_window": 200000,
|
|
60
|
+
},
|
|
56
61
|
## Sonnet
|
|
57
62
|
# 3.0
|
|
58
63
|
{
|
|
@@ -69,11 +74,21 @@ MODEL_LIST = [
|
|
|
69
74
|
"name": "claude-3-5-sonnet-20241022",
|
|
70
75
|
"context_window": 200000,
|
|
71
76
|
},
|
|
77
|
+
# 3.5 latest
|
|
78
|
+
{
|
|
79
|
+
"name": "claude-3-5-sonnet-latest",
|
|
80
|
+
"context_window": 200000,
|
|
81
|
+
},
|
|
72
82
|
# 3.7
|
|
73
83
|
{
|
|
74
84
|
"name": "claude-3-7-sonnet-20250219",
|
|
75
85
|
"context_window": 200000,
|
|
76
86
|
},
|
|
87
|
+
# 3.7 latest
|
|
88
|
+
{
|
|
89
|
+
"name": "claude-3-7-sonnet-latest",
|
|
90
|
+
"context_window": 200000,
|
|
91
|
+
},
|
|
77
92
|
## Haiku
|
|
78
93
|
# 3.0
|
|
79
94
|
{
|
|
@@ -85,6 +100,11 @@ MODEL_LIST = [
|
|
|
85
100
|
"name": "claude-3-5-haiku-20241022",
|
|
86
101
|
"context_window": 200000,
|
|
87
102
|
},
|
|
103
|
+
# 3.5 latest
|
|
104
|
+
{
|
|
105
|
+
"name": "claude-3-5-haiku-latest",
|
|
106
|
+
"context_window": 200000,
|
|
107
|
+
},
|
|
88
108
|
]
|
|
89
109
|
|
|
90
110
|
DUMMY_FIRST_USER_MESSAGE = "User initializing bootup sequence."
|