AddisonJi/claude-code-training
0
1from pydantic import BaseModel2from typing import Optional3from enum import Enum4 5 6class IntentType(str, Enum):7 COMPETITOR = "competitor_analysis"8 FOUNDER = "founder_lookup"9 BUSINESS = "business_overview"10 UNKNOWN = "unknown"11 12 13class UserRequest(BaseModel):14 company_name: str15 website: Optional[str] = None16 query: str17 18 19class CompanyVerification(BaseModel):20 """Result of company identity verification"""21 verified: bool22 company_description: str # What we know about the target company23 similar_companies: list[str] # Other companies with similar names found24 verification_method: str # How we verified (e.g., "website match")25 26 27class RouterResult(BaseModel):28 intent: IntentType29 reasoning: str30 search_queries: list[str]31 company_context: Optional[str] = None # Verified company info to pass to specialist agents32 33 34class AgentEvent(BaseModel):35 """SSE event sent to frontend"""36 agent: str # which agent is acting37 event: str # thinking / tool_call / tool_result / final_answer / error38 content: str # the actual message39 