wangzerui/Home_Design_Agent
0
1from typing import Dict, List, Optional, Any2from typing_extensions import TypedDict3 4 5class UserRequirements(TypedDict):6 """User's home design requirements"""7 budget: Optional[float]8 location: Optional[str]9 family_size: Optional[int]10 lifestyle_preferences: List[str]11 special_needs: List[str]12 13 14class FloorplanRequirements(TypedDict):15 """Floorplan-specific requirements"""16 num_floors: Optional[int]17 total_sqft: Optional[int]18 lot_shape: Optional[str]19 lot_dimensions: Optional[str]20 rooms: List[Dict[str, Any]] # [{"type": "bedroom", "count": 3, "min_size": 120}]21 22 23class DetailedFloorplan(TypedDict):24 """Detailed floorplan design from architectural analysis"""25 design_analysis: Optional[Dict[str, Any]]26 detailed_rooms: List[Dict[str, Any]] # Each room with exact dimensions, placement, features27 structural_elements: List[Dict[str, Any]] # Walls, doors, windows28 circulation_plan: Dict[str, Any] # Hallways, stairs, traffic flow29 lot_utilization: Dict[str, Any] # How the building sits on the lot30 architectural_features: List[str] # Special design elements31 32 33class BudgetBreakdown(TypedDict):34 """Detailed construction cost breakdown"""35 site_preparation: Optional[float]36 foundation: Optional[float]37 framing: Optional[float]38 roofing: Optional[float]39 exterior_finishes: Optional[float]40 interior_finishes: Optional[float]41 mechanical_systems: Optional[float]42 electrical_systems: Optional[float]43 plumbing_systems: Optional[float]44 permits_fees: Optional[float]45 professional_services: Optional[float]46 contingency: Optional[float]47 total_construction_cost: Optional[float]48 cost_per_sqft: Optional[float]49 budget_analysis: Optional[str]50 51 52class ConversationState(TypedDict):53 """Overall conversation state with enhanced multi-agent memory"""54 messages: List[Dict[str, str]]55 current_topic: Optional[str] # "general", "budget", "floorplan"56 user_requirements: UserRequirements57 floorplan_requirements: FloorplanRequirements58 detailed_floorplan: DetailedFloorplan59 budget_breakdown: BudgetBreakdown60 conversation_history: List[str]61 agent_recommendations: List[str]62 agent_memory: Dict[str, Any] # Shared memory between agents63 next_agent: Optional[str]64 floorplan_ready: bool65 budget_ready: bool