Da-123's picture
scrape fix (#5)
f61da97 verified
raw
history blame
987 Bytes
# 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]