diff --git a/src/gradient_labs/conversation.py b/src/gradient_labs/conversation.py index 0f809d9..57cb08b 100644 --- a/src/gradient_labs/conversation.py +++ b/src/gradient_labs/conversation.py @@ -53,6 +53,21 @@ class ConversationEventType(str, Enum): TYPING: str = "typing" +@dataclass_json +@dataclass(frozen=True) +class AgentMetadata: + intent: Optional[str] = None + intent_hand_off_target: Optional[str] = field( + default=None, metadata=config(field_name="intent_handoff_target") + ) + hand_off_reason: Optional[str] = field( + default=None, metadata=config(field_name="handoff_reason") + ) + hand_off_note: Optional[str] = field( + default=None, metadata=config(field_name="handoff_note") + ) + + @dataclass_json @dataclass(frozen=True) class Conversation: @@ -79,6 +94,16 @@ class Conversation: mm_field=fields.DateTime(format="iso"), ) ) + is_active: bool = field( + default=False, metadata=config(field_name="agent_is_active") + ) + latest_intent: Optional[str] = None + latest_hand_off_target: Optional[str] = field( + default=None, metadata=config(field_name="latest_handoff_target") + ) + agent_metadata: Optional[AgentMetadata] = field( + default=None, metadata=config(field_name="latest_agent_metadata") + ) @dataclass_json