File size: 1,603 Bytes
7b3f35e
 
 
 
 
 
 
 
 
c6421b9
7b3f35e
 
 
c6421b9
7b3f35e
 
c6421b9
 
 
 
7b3f35e
c6421b9
7b3f35e
0c0b2ef
 
c6421b9
0c0b2ef
 
 
c6421b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21f1bdf
 
4995bb4
c6421b9
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
from typing import Any, Dict, List, Optional, Tuple,TypedDict,Literal
from typing import Annotated, Sequence
from langgraph.graph import StateGraph,END,START
from langgraph.types import interrupt  
from langchain_core.prompts import ChatPromptTemplate,MessagesPlaceholder
from pydantic import BaseModel, Field
from typing import List, Optional
from langchain_core.messages import BaseMessage
from langgraph.graph import add_messages
from app.schemas.triage_agent_schema import TriageLabel



class EmailAgentState(TypedDict):


    user_email_id:  str
    user_id:        int 
    
    sender_email_body:      str

    sender_email_id:         str

    sender_subject:        str   

    
    user_name:      str      

    sender_email_token_count: Optional[int]            

    # Safety node output
    is_safe:        Optional[bool]
    safety_reason:  Optional[str]

    # Triage node output
    triage_label:   Optional[TriageLabel]

    requires_reply: Optional[bool]

    triage_notes:   Optional[str]

    priority_score: Optional[int] 

    draft_id: Optional[str]
    
    sent_message_id: Optional[str]  
    
    draft_context:Optional[str]     

    memory_agent_messages:Annotated[Sequence[BaseMessage],add_messages]   


    reply_subject:  Optional[str] 

    draft_email:    Optional[str]

    draft_reason:   Optional[str]


    context_agent_messages:Annotated[Sequence[BaseMessage],add_messages]

    email_sent: Optional[bool]

    
    human_approved: Optional[bool]
    reply_email_body:Optional[str]  

    messages:Annotated[Sequence[BaseMessage],add_messages]