Spaces:
Sleeping
Sleeping
# schemas.py | |
from pydantic import BaseModel, EmailStr | |
from typing import List, Literal, Optional, Union | |
class FetchEmailsParams(BaseModel): | |
query: str # Natural language query with sender and date info (e.g., "show me mails for last week from swiggy") | |
class ShowEmailParams(BaseModel): | |
message_id: str | |
class AnalyzeEmailsParams(BaseModel): | |
emails: List[dict] | |
class DraftReplyParams(BaseModel): | |
email: dict | |
tone: Optional[Literal["formal", "informal"]] = "formal" | |
class SendReplyParams(BaseModel): | |
message_id: str | |
reply_body: str | |
ToolParams = Union[ | |
FetchEmailsParams, | |
ShowEmailParams, | |
AnalyzeEmailsParams, | |
DraftReplyParams, | |
SendReplyParams | |
] | |
class PlanStep(BaseModel): | |
action: Literal[ | |
"fetch_emails", | |
"show_email", | |
"analyze_emails", | |
"draft_reply", | |
"send_reply", | |
"done", | |
] | |
parameters: Optional[ToolParams] = None | |
class Plan(BaseModel): | |
plan: List[PlanStep] | |