import os import uuid from dotenv import load_dotenv load_dotenv(".env") currently_dir = os.path.dirname(os.path.abspath(__file__)) artifacts_dir = os.path.join(currently_dir, "artifacts") media_dir = os.path.join(currently_dir, "media") if not os.path.exists(artifacts_dir): os.makedirs(artifacts_dir) mic_record_location = os.path.join(artifacts_dir, "mic_record.wav") system_sound_location = os.path.join(artifacts_dir, "system_sound.wav") just_screenshot_path = os.path.join(artifacts_dir, "screenshot.png") screenshot_path = os.path.join(artifacts_dir, "screenshot_with_text.png") the_profile = "default" def set_profile(profile): """Set the active profile.""" print("Setting profile to", profile) global the_profile the_profile = profile def get_profile(): """Get the active profile.""" global the_profile return the_profile def get_history_db(): """Get the history database path based on the active profile.""" global the_profile return os.path.join(artifacts_dir, f"history_{the_profile}.db") openaikey = os.path.join(artifacts_dir, "openaikey.db") def save_api_key(api_key): """Save the OpenAI API key to a file.""" with open(openaikey, "w") as f: f.write(api_key) def load_api_key(): """Load the OpenAI API key from a file or environment variables.""" if not os.path.exists(openaikey): env = os.getenv("OPENAI_API_KEY") if env: save_api_key(env) return env else: return "CHANGE_ME" with open(openaikey, "r") as f: return f.read() openai_url_db = os.path.join(artifacts_dir, "openai_url.db") def save_openai_url(url): """Save the custom OpenAI base URL to a file.""" with open(openai_url_db, "w") as f: f.write(url) def load_openai_url(): """Load the custom OpenAI base URL from a file.""" if not os.path.exists(openai_url_db): return "default" with open(openai_url_db, "r") as f: return f.read() model_settings_db = os.path.join(artifacts_dir, "model_settings.db") def save_model_settings(model): """Save the model settings to a file.""" with open(model_settings_db, "w") as f: f.write(model) def load_model_settings(): """Load the model settings from a file.""" if not os.path.exists(model_settings_db): return "gpt-4o" with open(model_settings_db, "r") as f: return f.read() just_text_model = os.path.join(artifacts_dir, "just_text_model.db") def activate_just_text_model(): """Activate the just text model.""" with open(just_text_model, "w") as f: f.write("1") def deactivate_just_text_model(): """Deactivate the just text model.""" with open(just_text_model, "w") as f: f.write("0") def is_just_text_model_active(): """Check if the just text model is active.""" if not os.path.exists(just_text_model): return False with open(just_text_model, "r") as f: return f.read() == "1" # Define paths for icons and other media icon_16_path = os.path.join(media_dir, "icon_16.png") icon_24_path = os.path.join(media_dir, "icon_24.png") icon_32_path = os.path.join(media_dir, "icon_32.png") icon_48_path = os.path.join(media_dir, "icon_48.png") icon_256_path = os.path.join(media_dir, "icon_256.png") screenshot_icon_path = os.path.join(media_dir, "Screenshot.png") audio_icon_path = os.path.join(media_dir, "Audio.png") microphone_icon_path = os.path.join(media_dir, "Microphone.png") up_icon_path = os.path.join(media_dir, "Up.png") down_icon_path = os.path.join(media_dir, "Down.png") agents = [] # Placeholder for agents data groqkey = os.path.join(artifacts_dir, "groqkey.db") def save_groq_api_key(api_key): """Save the Groq API key to a file.""" with open(groqkey, "w") as f: f.write(api_key) def load_groq_api_key(): """Load the Groq API key from a file or environment variables.""" if not os.path.exists(groqkey): env = os.getenv("GROQ_API_KEY") if env: save_api_key(env) return env else: return "CHANGE_ME" with open(groqkey, "r") as f: return f.read() user_id_db = os.path.join(artifacts_dir, "user_id.db") def save_user_id(): """Save a unique user ID to a file.""" with open(user_id_db, "w") as f: uuid4 = str(uuid.uuid4()) f.write(uuid4) return uuid4 def load_user_id(): """Load the unique user ID from a file.""" if not os.path.exists(user_id_db): return save_user_id() with open(user_id_db, "r") as f: return f.read() collapse_setting = os.path.join(artifacts_dir, "collapse_setting.db") def activate_collapse_setting(): """Activate the collapse setting.""" with open(collapse_setting, "w") as f: f.write("1") def deactivate_collapse_setting(): """Deactivate the collapse setting.""" with open(collapse_setting, "w") as f: f.write("0") def is_collapse_setting_active(): """Check if the collapse setting is active.""" if not os.path.exists(collapse_setting): return False with open(collapse_setting, "r") as f: return f.read() == "1" # Define font directory path font_dir = os.path.join(media_dir, "SF-Pro-Text-Bold.otf") style_setting = os.path.join(artifacts_dir, "style_setting.db") def activate_dark_mode(): """Activate the dark mode setting.""" with open(style_setting, "w") as f: f.write("1") def deactivate_dark_mode(): """Deactivate the dark mode setting.""" with open(style_setting, "w") as f: f.write("0") def is_dark_mode_active(): """Check if the dark mode setting is active.""" if not os.path.exists(style_setting): return True with open(style_setting, "r") as f: return f.read() == "1" googlekey = os.path.join(artifacts_dir, "googlekey.db") def save_google_api_key(api_key): """Save the Google Generative AI API key to a file.""" with open(googlekey, "w") as f: f.write(api_key) def load_google_api_key(): """Load the Google Generative AI API key from a file or environment variables.""" if not os.path.exists(googlekey): env = os.getenv("GOOGLE_API_KEY") if env: save_api_key(env) return env else: return "CHANGE_ME" with open(googlekey, "r") as f: return f.read() predefined_agents_setting = os.path.join(artifacts_dir, "predefined_agents_setting.db") def activate_predefined_agents_setting(): """Activate the predefined agents setting setting.""" with open(predefined_agents_setting, "w") as f: f.write("1") def deactivate_predefined_agents_setting(): """Deactivate the predefined agents setting setting.""" with open(predefined_agents_setting, "w") as f: f.write("0") def is_predefined_agents_setting_active(): """Check if the predefined agents setting setting is active.""" if not os.path.exists(predefined_agents_setting): return True with open(predefined_agents_setting, "r") as f: return f.read() == "1" online_tools_setting = os.path.join(artifacts_dir, "online_tools.db") def activate_online_tools_setting(): """Activate the online_tools setting.""" with open(online_tools_setting, "w") as f: f.write("1") def deactivate_online_tools_setting(): """Deactivate the online_tools setting.""" with open(online_tools_setting, "w") as f: f.write("0") def is_online_tools_setting_active(): """Check if the online_tools setting is active.""" if not os.path.exists(online_tools_setting): return False with open(online_tools_setting, "r") as f: return f.read() == "1" auto_stop_recording_setting = os.path.join(artifacts_dir, "auto_stop_recording.db") def activate_auto_stop_recording_setting(): """Activate the auto_stop_recording setting.""" with open(auto_stop_recording_setting, "w") as f: f.write("1") def deactivate_auto_stop_recording_setting(): """Deactivate the auto_stop_recording setting.""" with open(auto_stop_recording_setting, "w") as f: f.write("0") def is_auto_stop_recording_setting_active(): """Check if the auto_stop_recording setting is active.""" if not os.path.exists(auto_stop_recording_setting): return True with open(auto_stop_recording_setting, "r") as f: return f.read() == "1" pvporcupine_api_key = os.path.join(artifacts_dir, "pvporcupine_api_key.db") def save_pvporcupine_api_key(api_key): """Save the Pvporcupine AI API key to a file.""" with open(pvporcupine_api_key, "w") as f: f.write(api_key) def load_pvporcupine_api_key(): """Load the Pvporcupine AI API key from a file or environment variables.""" if not os.path.exists(pvporcupine_api_key): return "CHANGE_ME" with open(pvporcupine_api_key, "r") as f: return f.read() wake_word_setting = os.path.join(artifacts_dir, "wake_word_setting.db") def activate_wake_word(): """Activate the wake_word_setting setting.""" with open(wake_word_setting, "w") as f: f.write("1") def deactivate_wake_word(): """Deactivate the wake_word_setting setting.""" with open(wake_word_setting, "w") as f: f.write("0") def is_wake_word_active(): """Check if the wake_word_setting setting is active.""" try: import pyaudio except ImportError: return False if not os.path.exists(wake_word_setting): return True with open(wake_word_setting, "r") as f: return f.read() == "1" wake_word_screen_setting = os.path.join(artifacts_dir, "wake_word_screen_setting.db") def activate_wake_word_screen_setting(): """Activate the wake_word_screen setting.""" with open(wake_word_screen_setting, "w") as f: f.write("1") def deactivate_wake_word_screen_setting(): """Deactivate the wake_word_screen setting.""" with open(wake_word_screen_setting, "w") as f: f.write("0") def is_wake_word_screen_setting_active(): """Check if the wake_word_screen setting is active.""" if not os.path.exists(wake_word_screen_setting): return True with open(wake_word_screen_setting, "r") as f: return f.read() == "1" continuously_conversations_setting = os.path.join(artifacts_dir, "continuously_conversations_setting.db") def activate_continuously_conversations_setting(): """Activate the continuously_conversations setting.""" with open(continuously_conversations_setting, "w") as f: f.write("1") def deactivate_continuously_conversations_setting(): """Deactivate the continuously_conversations setting.""" with open(continuously_conversations_setting, "w") as f: f.write("0") def is_continuously_conversations_setting_active(): """Check if the continuously_conversations setting is active.""" if not os.path.exists(continuously_conversations_setting): return False with open(continuously_conversations_setting, "r") as f: return f.read() == "1"