from enum import Enum from typing import Optional, Any, Dict from pydantic import BaseModel, Field class BuddyState(str, Enum): STRATEGY_READY = "STRATEGY_READY" SECTION_WORKING = "SECTION_WORKING" SECTION_READY = "SECTION_READY" COMPLETE = "COMPLETE" ERROR = "ERROR" class BuddyEvent(BaseModel): question_id: str = Field(..., description="Unique ID for the question session") state: BuddyState = Field(..., description="Current state of the micro-agent") current_section_id: Optional[str] = Field(None, description="The ID of the section (e.g., 'א', 'ב') currently being processed") payload: Dict[str, Any] = Field(default_factory=dict, description="Payload containing state-specific data") class Config: use_enum_values = True