from enum import Enum


class EventKind(str, Enum):
    CALLING_AGENT = "CALLING_AGENT"
    AGENT_CALLING_AGENT = "AGENT_CALLING_AGENT"
    AGENT_SELECTION = "AGENT_SELECTION"
    AGENT_TOOL_START = "AGENT_TOOL_START"
    AGENT_TOOL_DONE = "AGENT_TOOL_DONE"
    PPTX_GENERATING_OUTLINE = "PPTX_GENERATING_OUTLINE"
    PPTX_GENERATING_DECK = "PPTX_GENERATING_DECK"
    PPTX_REPAIRING_DECK = "PPTX_REPAIRING_DECK"
    PPTX_RENDERING_FILE = "PPTX_RENDERING_FILE"
    DOCX_GENERATING_DOCUMENT = "DOCX_GENERATING_DOCUMENT"
    DOCX_REPAIRING_DOCUMENT = "DOCX_REPAIRING_DOCUMENT"
    DOCX_RENDERING_FILE = "DOCX_RENDERING_FILE"
    AGENT_THINKING = "AGENT_THINKING"
    AGENT_TURN_DONE = "AGENT_TURN_DONE"
    AGENT_TURN_START = "AGENT_TURN_START"
    AGENT_BLOCK_START = "AGENT_BLOCK_START"
    AGENT_BLOCK_DONE = "AGENT_BLOCK_DONE"
    GENERATING_CHART = "GENERATING_CHART"
    CHART_PLAN = "chart_plan"
    CHART_PLAN_ERROR = "chart_plan_error"
    SYNTHESIZING_STARTED = "synthesizing_started"
    SYNTHESIZING_CHUNK = "synthesizing_chunk"
    SYNTHESIZING_FINISHED = "synthesizing_finished"
    AGENT_STARTED = "agent_started"
    AGENT_REASONING = "agent_reasoning"
    AGENT_EVENT = "agent_event"
    AGENT_FINISHED = "agent_finished"
    AGENT_ERROR = "agent_error"
    BASE_LLM_ERROR = "base_llm_error"
    AGENT_CHUNK = "agent_chunk"
    ANSWER_STREAM_START = "answer_stream_start"
    LINK_RESOLVED = "link_resolved"
    CONNECTION_CREDENTIALS_REQUIRED = "connection_credentials_required"
    DOCUMENT_ANALYSIS = "document_analysis"
    DOCUMENT_ANALYSIS_COMPLETED = "document_analysis_completed"
    DOCUMENT_TEXT_EXTRACTION = "document_text_extraction"
    EXTRACTION_MODE_CHANGED = "extraction_mode_changed"
    ATTACHMENTS_FILTERED = "attachments_filtered"
    TOOL_VALIDATION_REQUESTS = "toolValidationRequests"
    MEMORY_FRAGMENT = "memory_fragment"
    GUARDRAILS_VIOLATION = "guardrails_violation"
    GUARDRAILS_EXTRACTION_FAILED = "guardrails_extraction_failed"
    GUARDRAILS_CHECKS = "guardrails_checks"
    GUARDRAILS_CHECKED = "guardrails_checked"
