chore: consolidate enum definitions (#2919)

This commit is contained in:
cthomas
2025-06-19 16:04:12 -07:00
committed by GitHub
parent 87b68a543a
commit d921854a3f
13 changed files with 59 additions and 42 deletions

View File

@@ -4,9 +4,9 @@ from typing import Optional
from sqlalchemy import JSON, BigInteger, ForeignKey, Index, Integer, String, Text
from sqlalchemy.orm import Mapped, mapped_column
from letta.orm.enums import ActorType
from letta.orm.mixins import OrganizationMixin
from letta.orm.sqlalchemy_base import SqlalchemyBase
from letta.schemas.enums import ActorType
class BlockHistory(OrganizationMixin, SqlalchemyBase):

View File

@@ -1,3 +1,9 @@
"""Compatibility module for enums that were moved to address circular imports.
This module maintains the old enum definitions for backwards compatibility,
especially for pickled objects that reference the old import paths.
"""
from enum import Enum
@@ -14,28 +20,3 @@ class ToolType(str, Enum):
EXTERNAL_LANGCHAIN = "external_langchain"
# TODO is "external" the right name here? Since as of now, MCP is local / doesn't support remote?
EXTERNAL_MCP = "external_mcp"
class JobType(str, Enum):
JOB = "job"
RUN = "run"
BATCH = "batch"
class ToolSourceType(str, Enum):
"""Defines what a tool was derived from"""
python = "python"
json = "json"
class ActorType(str, Enum):
LETTA_USER = "letta_user"
LETTA_AGENT = "letta_agent"
LETTA_SYSTEM = "letta_system"
class MCPServerType(str, Enum):
SSE = "sse"
STDIO = "stdio"
STREAMABLE_HTTP = "streamable_http"

View File

@@ -4,10 +4,9 @@ from typing import TYPE_CHECKING, List, Optional
from sqlalchemy import JSON, Index, String
from sqlalchemy.orm import Mapped, mapped_column, relationship
from letta.orm.enums import JobType
from letta.orm.mixins import UserMixin
from letta.orm.sqlalchemy_base import SqlalchemyBase
from letta.schemas.enums import JobStatus
from letta.schemas.enums import JobStatus, JobType
from letta.schemas.job import Job as PydanticJob
from letta.schemas.job import LettaRequestConfig

View File

@@ -7,9 +7,9 @@ from letta.functions.mcp_client.types import StdioServerConfig
from letta.orm.custom_columns import MCPStdioServerConfigColumn
# TODO everything in functions should live in this model
from letta.orm.enums import MCPServerType
from letta.orm.mixins import OrganizationMixin
from letta.orm.sqlalchemy_base import SqlalchemyBase
from letta.schemas.enums import MCPServerType
from letta.schemas.mcp import MCPServer
if TYPE_CHECKING:

View File

@@ -4,9 +4,10 @@ from sqlalchemy import JSON, Index, String, UniqueConstraint
from sqlalchemy.orm import Mapped, mapped_column, relationship
# TODO everything in functions should live in this model
from letta.orm.enums import ToolSourceType, ToolType
from letta.orm.enums import ToolType
from letta.orm.mixins import OrganizationMixin
from letta.orm.sqlalchemy_base import SqlalchemyBase
from letta.schemas.enums import ToolSourceType
from letta.schemas.tool import Tool as PydanticTool
if TYPE_CHECKING:

View File

@@ -94,3 +94,43 @@ class FileProcessingStatus(str, Enum):
EMBEDDING = "embedding"
COMPLETED = "completed"
ERROR = "error"
class ToolType(str, Enum):
CUSTOM = "custom"
LETTA_CORE = "letta_core"
LETTA_MEMORY_CORE = "letta_memory_core"
LETTA_MULTI_AGENT_CORE = "letta_multi_agent_core"
LETTA_SLEEPTIME_CORE = "letta_sleeptime_core"
LETTA_VOICE_SLEEPTIME_CORE = "letta_voice_sleeptime_core"
LETTA_BUILTIN = "letta_builtin"
LETTA_FILES_CORE = "letta_files_core"
EXTERNAL_COMPOSIO = "external_composio"
EXTERNAL_LANGCHAIN = "external_langchain"
# TODO is "external" the right name here? Since as of now, MCP is local / doesn't support remote?
EXTERNAL_MCP = "external_mcp"
class JobType(str, Enum):
JOB = "job"
RUN = "run"
BATCH = "batch"
class ToolSourceType(str, Enum):
"""Defines what a tool was derived from"""
python = "python"
json = "json"
class ActorType(str, Enum):
LETTA_USER = "letta_user"
LETTA_AGENT = "letta_agent"
LETTA_SYSTEM = "letta_system"
class MCPServerType(str, Enum):
SSE = "sse"
STDIO = "stdio"
STREAMABLE_HTTP = "streamable_http"

View File

@@ -4,8 +4,7 @@ from typing import List, Optional
from pydantic import BaseModel, Field
from letta.constants import DEFAULT_MESSAGE_TOOL, DEFAULT_MESSAGE_TOOL_KWARG
from letta.orm.enums import JobType
from letta.schemas.enums import JobStatus
from letta.schemas.enums import JobStatus, JobType
from letta.schemas.letta_base import OrmMetadataBase
from letta.schemas.letta_message import MessageType

View File

@@ -2,7 +2,7 @@ from typing import Optional
from pydantic import Field
from letta.orm.enums import JobType
from letta.schemas.enums import JobType
from letta.schemas.job import Job, JobBase, LettaRequestConfig

View File

@@ -3,9 +3,8 @@ from typing import Annotated, List, Optional
from fastapi import APIRouter, Depends, Header, HTTPException, Query
from pydantic import Field
from letta.orm.enums import JobType
from letta.orm.errors import NoResultFound
from letta.schemas.enums import JobStatus, MessageRole
from letta.schemas.enums import JobStatus, JobType, MessageRole
from letta.schemas.letta_message import LettaMessageUnion
from letta.schemas.openai.chat_completion_response import UsageStatistics
from letta.schemas.run import Run

View File

@@ -7,12 +7,12 @@ from sqlalchemy.orm import Session
from letta.log import get_logger
from letta.orm.block import Block as BlockModel
from letta.orm.block_history import BlockHistory
from letta.orm.enums import ActorType
from letta.orm.errors import NoResultFound
from letta.otel.tracing import trace_method
from letta.schemas.agent import AgentState as PydanticAgentState
from letta.schemas.block import Block as PydanticBlock
from letta.schemas.block import BlockUpdate
from letta.schemas.enums import ActorType
from letta.schemas.user import User as PydanticUser
from letta.server.db import db_registry
from letta.utils import enforce_types

View File

@@ -7,7 +7,6 @@ from sqlalchemy.orm import Session
from letta.helpers.datetime_helpers import get_utc_time
from letta.log import get_logger
from letta.orm.enums import JobType
from letta.orm.errors import NoResultFound
from letta.orm.job import Job as JobModel
from letta.orm.job_messages import JobMessage
@@ -16,7 +15,7 @@ from letta.orm.sqlalchemy_base import AccessType
from letta.orm.step import Step
from letta.orm.step import Step as StepModel
from letta.otel.tracing import trace_method
from letta.schemas.enums import JobStatus, MessageRole
from letta.schemas.enums import JobStatus, JobType, MessageRole
from letta.schemas.job import BatchJob as PydanticBatchJob
from letta.schemas.job import Job as PydanticJob
from letta.schemas.job import JobUpdate, LettaRequestConfig

View File

@@ -7,11 +7,10 @@ from letta.config import LettaConfig
from letta.constants import DEFAULT_HUMAN
from letta.groups.sleeptime_multi_agent_v2 import SleeptimeMultiAgentV2
from letta.orm import Provider, ProviderTrace, Step
from letta.orm.enums import JobType
from letta.orm.errors import NoResultFound
from letta.schemas.agent import CreateAgent
from letta.schemas.block import CreateBlock
from letta.schemas.enums import JobStatus, ToolRuleType
from letta.schemas.enums import JobStatus, JobType, ToolRuleType
from letta.schemas.group import GroupUpdate, ManagerType, SleeptimeManagerUpdate
from letta.schemas.message import MessageCreate
from letta.schemas.run import Run

View File

@@ -46,7 +46,7 @@ from letta.helpers.datetime_helpers import AsyncTimer
from letta.jobs.types import ItemUpdateInfo, RequestStatusUpdateInfo, StepStatusUpdateInfo
from letta.orm import Base, Block
from letta.orm.block_history import BlockHistory
from letta.orm.enums import ActorType, JobType, ToolType
from letta.orm.enums import ToolType
from letta.orm.errors import NoResultFound, UniqueConstraintViolationError
from letta.orm.file import FileContent as FileContentModel
from letta.orm.file import FileMetadata as FileMetadataModel
@@ -54,7 +54,7 @@ from letta.schemas.agent import AgentStepState, CreateAgent, UpdateAgent
from letta.schemas.block import Block as PydanticBlock
from letta.schemas.block import BlockUpdate, CreateBlock
from letta.schemas.embedding_config import EmbeddingConfig
from letta.schemas.enums import AgentStepStatus, FileProcessingStatus, JobStatus, MessageRole, ProviderType
from letta.schemas.enums import ActorType, AgentStepStatus, FileProcessingStatus, JobStatus, JobType, MessageRole, ProviderType
from letta.schemas.environment_variables import SandboxEnvironmentVariableCreate, SandboxEnvironmentVariableUpdate
from letta.schemas.file import FileMetadata as PydanticFileMetadata
from letta.schemas.identity import IdentityCreate, IdentityProperty, IdentityPropertyType, IdentityType, IdentityUpdate, IdentityUpsert