1- from typing import List , Optional , Union
1+ from typing import List , Literal , Optional , Union
22from dataclasses import dataclass , field
33from datetime import datetime
44
@@ -13,12 +13,12 @@ class BaseMessage:
1313@dataclass
1414class UserMessage (BaseMessage ):
1515 """Represents a message from the user."""
16- type : str = field (default = "user" )
16+ type : Literal [ "user" ] = field (default = "user" )
1717
1818@dataclass
1919class SystemMessageData (BaseMessage ):
2020 """Represents a system message."""
21- type : str = field (default = "system" )
21+ type : Literal [ "system" ] = field (default = "system" )
2222
2323@dataclass
2424class ToolCall :
@@ -30,25 +30,25 @@ class ToolCall:
3030@dataclass
3131class AssistantMessage (BaseMessage ):
3232 """Represents a message from the assistant."""
33- type : str = field (default = "assistant" )
33+ type : Literal [ "assistant" ] = field (default = "assistant" )
3434 tool_calls : List [ToolCall ] = field (default_factory = list )
3535
3636@dataclass
3737class ToolMessageData (BaseMessage ):
3838 """Represents a tool response message."""
39- type : str = field (default = "tool" )
39+ type : Literal [ "tool" ] = field (default = "tool" )
4040 tool_name : Optional [str ] = None
4141 tool_response : Optional [str ] = None
4242 tool_id : Optional [str ] = None
4343
4444@dataclass
4545class FunctionMessageData (BaseMessage ):
4646 """Represents a function message."""
47- type : str = field (default = "function" )
47+ type : Literal [ "function" ] = field (default = "function" )
4848
4949@dataclass
5050class UnknownMessage (BaseMessage ):
5151 """Represents an unknown message type."""
52- type : str = field (default = "unknown" )
52+ type : Literal [ "unknown" ] = field (default = "unknown" )
5353
5454type AgentRunMessage = Union [UserMessage , SystemMessageData , AssistantMessage , ToolMessageData , FunctionMessageData , UnknownMessage ]
0 commit comments