from __future__ import annotations from typing import Annotated, Optional from typing_extensions import TypedDict from langgraph.graph.message import add_messages from langchain_core.messages import BaseMessage class AgentState(TypedDict): messages: Annotated[list[BaseMessage], add_messages] intent: str # greeting | inquiry | high_intent | collecting | unknown collecting_lead: bool lead_name: Optional[str] lead_email: Optional[str] lead_platform: Optional[str] lead_captured: bool rag_context: str