Spaces:
Runtime error
Runtime error
from typing import Dict, List, Optional, Any | |
from typing_extensions import TypedDict | |
class UserRequirements(TypedDict): | |
"""User's home design requirements""" | |
budget: Optional[float] | |
location: Optional[str] | |
family_size: Optional[int] | |
lifestyle_preferences: List[str] | |
special_needs: List[str] | |
class FloorplanRequirements(TypedDict): | |
"""Floorplan-specific requirements""" | |
num_floors: Optional[int] | |
total_sqft: Optional[int] | |
lot_shape: Optional[str] | |
lot_dimensions: Optional[str] | |
rooms: List[Dict[str, Any]] # [{"type": "bedroom", "count": 3, "min_size": 120}] | |
class DetailedFloorplan(TypedDict): | |
"""Detailed floorplan design from architectural analysis""" | |
design_analysis: Optional[Dict[str, Any]] | |
detailed_rooms: List[Dict[str, Any]] # Each room with exact dimensions, placement, features | |
structural_elements: List[Dict[str, Any]] # Walls, doors, windows | |
circulation_plan: Dict[str, Any] # Hallways, stairs, traffic flow | |
lot_utilization: Dict[str, Any] # How the building sits on the lot | |
architectural_features: List[str] # Special design elements | |
class BudgetBreakdown(TypedDict): | |
"""Detailed construction cost breakdown""" | |
site_preparation: Optional[float] | |
foundation: Optional[float] | |
framing: Optional[float] | |
roofing: Optional[float] | |
exterior_finishes: Optional[float] | |
interior_finishes: Optional[float] | |
mechanical_systems: Optional[float] | |
electrical_systems: Optional[float] | |
plumbing_systems: Optional[float] | |
permits_fees: Optional[float] | |
professional_services: Optional[float] | |
contingency: Optional[float] | |
total_construction_cost: Optional[float] | |
cost_per_sqft: Optional[float] | |
budget_analysis: Optional[str] | |
class ConversationState(TypedDict): | |
"""Overall conversation state with enhanced multi-agent memory""" | |
messages: List[Dict[str, str]] | |
current_topic: Optional[str] # "general", "budget", "floorplan" | |
user_requirements: UserRequirements | |
floorplan_requirements: FloorplanRequirements | |
detailed_floorplan: DetailedFloorplan | |
budget_breakdown: BudgetBreakdown | |
conversation_history: List[str] | |
agent_recommendations: List[str] | |
agent_memory: Dict[str, Any] # Shared memory between agents | |
next_agent: Optional[str] | |
floorplan_ready: bool | |
budget_ready: bool |