from enum import Enum


class ActionType(str, Enum):
    ACTION_KIWI_SCOUT = "action_kiwi_scout"
    ACTION_LLM = "action_llm"
    ACTION_TEXT2TEXT_LINKEDIN = "action_text2text_linkedin"
    ACTION_TEXT2TEXT_PDF_PARSER = "action_text2text_pdf_parser"
    API = "api"
    AUDIO2TEXT_TRANSCRIPTION_ASSEMBLYAI = "audio2text_transcription_assemblyai"
    AUDIO2TEXT_TRANSCRIPTION_CARTESIA = "audio2text_transcription_cartesia"
    AUDIO2TEXT_TRANSCRIPTION_DEEPGRAM = "audio2text_transcription_deepgram"
    AUDIO2TEXT_TRANSCRIPTION_OPENAI = "audio2text_transcription_openai"
    AUDIO2TEXT_TRANSLATION_OPENAI = "audio2text_translation_openai"
    CLAUDE = "claude"
    CSV_MERGE = "csv_merge"
    DATABASE = "database"
    DEEPSEEK = "deepseek"
    EXTRACT_URLS = "extract_urls"
    FILE_UPLOADER_GEMINI = "file_uploader_gemini"
    FILE_UPLOADER_OPENAI = "file_uploader_openai"
    GEMINI = "gemini"
    GROK = "grok"
    IMG2IMG_BULK_EDIT_CLAID = "img2img_bulk_edit_claid"
    IMG2IMG_EDIT_OPENAI = "img2img_edit_openai"
    IMG2IMG_PHOTOSHOOT_CLAID = "img2img_photoshoot_claid"
    IMG2IMG_VARIATION_OPENAI = "img2img_variation_openai"
    JSON_FLATTEN = "json_flatten"
    LLM_OBJECTIVES_OPENAI = "llm_objectives_openai"
    MOCK_ACTION = "mock_action"
    MULTICLOUD_ROUTER = "multicloud_router"
    MULTICLOUD_ROUTER_SEARCH = "multicloud_router_search"
    MULTIMODAL_ASSISTANT_OPENAI = "multimodal_assistant_openai"
    MULTIMODAL_EXA_SEARCH = "multimodal_exa_search"
    MULTIMODAL_GOOGLE_SEARCH = "multimodal_google_search"
    MULTIMODAL_GRAPH_RAG_QUERY = "multimodal_graph_rag_query"
    MULTIMODAL_LLM_CHAT_WITH_VECTOR_SEARCH_OPENAI = "multimodal_llm_chat_with_vector_search_openai"
    MULTIMODAL_SANDBOX_QUERY = "multimodal_sandbox_query"
    MULTIMODAL_SERP_GOOGLE_SEARCH = "multimodal_serp_google_search"
    OPENAI = "openai"
    OPENAI_ASSISTANT = "openai_assistant"
    OPENAI_CHAT = "openai_chat"
    PLAYWRIGHT_LOGIN = "playwright_login"
    PLAYWRIGHT_SCRAPE = "playwright_scrape"
    TEXT2AUDIO_OPENAI = "text2audio_openai"
    TEXT2AUDIO_SPEECH_CARTESIA = "text2audio_speech_cartesia"
    TEXT2AUDIO_SPEECH_DEEPGRAM = "text2audio_speech_deepgram"
    TEXT2IMG_BUTTON_MIDJOURNEY_AI = "text2img_button_midjourney_ai"
    TEXT2IMG_DALLE_OPENAI = "text2img_dalle_openai"
    TEXT2IMG_FLUX = "text2img_flux"
    TEXT2IMG_GEMINI = "text2img_gemini"
    TEXT2IMG_GROK = "text2img_grok"
    TEXT2IMG_IMAGINE_MIDJOURNEY_AI = "text2img_imagine_midjourney_ai"
    TEXT2IMG_SEARCH_IMAGE = "text2img_search_image"
    TEXT2TEXT_API_CALL = "text2text_api_call"
    TEXT2TEXT_CONVERT_FILE_TO_PDF_OR_TXT = "text2text_convert_file_to_pdf_or_txt"
    TEXT2TEXT_IO_MAPPER = "text2text_io_mapper"
    TEXT2TEXT_LLM_CHAT_CLAUDE = "text2text_llm_chat_claude"
    TEXT2TEXT_LLM_CHAT_DEEPSEEK = "text2text_llm_chat_deepseek"
    TEXT2TEXT_LLM_CHAT_GEMINI = "text2text_llm_chat_gemini"
    TEXT2TEXT_LLM_CHAT_GROK = "text2text_llm_chat_grok"
    TEXT2TEXT_LLM_CHAT_GROK_COLLECTIONS = "text2text_llm_chat_grok_collections"
    TEXT2TEXT_LLM_CHAT_OPENAI = "text2text_llm_chat_openai"
    TEXT2TEXT_LLM_RESPONSES_OPENAI = "text2text_llm_responses_openai"
    TEXT2TEXT_READ_API_FILE = "text2text_read_api_file"
    TEXT2TEXT_READ_URL = "text2text_read_url"
    TEXT2TEXT_SEARCH_WEB = "text2text_search_web"
    TEXT2TEXT_SQL_RUNNER = "text2text_sql_runner"
    TEXT2TEXT_USER_INPUT = "text2text_user_input"
    TEXT2VIDEO_GEMINI_VEO_VIDEO_GENERATION = "text2video_gemini_veo_video_generation"
    TEXT2VIDEO_GROK = "text2video_grok"
    TEXT2VIDEO_SEARCH_VIDEO = "text2video_search_video"
    VIDEO2VIDEO_OPUS = "video2video_opus"

    def __str__(self) -> str:
        return str(self.value)
