Download Config.py from Erog0291/Agent-4: direct link, hf CLI and curl.
- Browser
- Download file 5.1 kB
-
https://huggingface.co/spaces/Erog0291/Agent-4/resolve/main/Config.py
- Command line
-
hf download hf://spaces/Erog0291/Agent-4/Config.py
-
curl -L -o Config.py https://huggingface.co/spaces/Erog0291/Agent-4/resolve/main/Config.py
5.1 kB
| """STEW v2 β Configuration. All values from Hugging Face Secrets / environment vars.""" | |
| import os | |
| class Config: | |
| # ββ OpenRouter βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| OPENROUTER_API_KEY = os.environ.get("OPENROUTER_API_KEY", "") | |
| OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1" | |
| OPENROUTER_SITE_URL = os.environ.get("SPACE_URL", "https://huggingface.co") | |
| OPENROUTER_APP_NAME = "STEW-Agent-v2" | |
| # ββ Models βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| MODELS = { | |
| "owl-alpha" : "openrouter/owl-alpha", | |
| "gpt-oss-120b" : "openai/gpt-oss-120b:free", | |
| "nemotron-nano" : "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free", | |
| "deepseek" : "deepseek/deepseek-chat-v3-0324:free", | |
| "qwen3" : "qwen/qwen3-235b-a22b:free", | |
| "mistral" : "mistralai/mistral-small-3.2-24b-instruct:free", | |
| } | |
| DEFAULT_MODEL = "owl-alpha" | |
| FAST_MODEL = "mistral" # used for swarm speed | |
| REASONING_MODEL = "gpt-oss-120b" | |
| # ββ Telegram βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| TELEGRAM_BOT_TOKEN = os.environ.get("TELEGRAM_BOT_TOKEN", "") | |
| SPACE_URL = os.environ.get("SPACE_URL", "") | |
| TELEGRAM_WEBHOOK_PATH = "/telegram/webhook" | |
| # ββ Discord ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| DISCORD_BOT_TOKEN = os.environ.get("DISCORD_BOT_TOKEN", "") | |
| # ββ GitHub βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| GITHUB_TOKEN = os.environ.get("GITHUB_TOKEN", "") | |
| # ββ Image Generation βββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| TOGETHER_API_KEY = os.environ.get("TOGETHER_API_KEY", "") # optional, free fallback used | |
| # ββ Google βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| GOOGLE_CLIENT_ID = os.environ.get("GOOGLE_CLIENT_ID", "") | |
| GOOGLE_CLIENT_SECRET = os.environ.get("GOOGLE_CLIENT_SECRET", "") | |
| GOOGLE_ACCESS_TOKEN = os.environ.get("GOOGLE_ACCESS_TOKEN", "") | |
| GOOGLE_REFRESH_TOKEN = os.environ.get("GOOGLE_REFRESH_TOKEN", "") | |
| GOOGLE_REDIRECT_URI = os.environ.get("GOOGLE_REDIRECT_URI", "") | |
| GMAIL_CLIENT_ID = os.environ.get("GMAIL_CLIENT_ID", "") | |
| GMAIL_CLIENT_SECRET = os.environ.get("GMAIL_CLIENT_SECRET", "") | |
| # ββ Integrations βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| NOTION_TOKEN = os.environ.get("NOTION_TOKEN", "") | |
| SLACK_BOT_TOKEN = os.environ.get("SLACK_BOT_TOKEN", "") | |
| SLACK_CLIENT_SECRET = os.environ.get("SLACK_CLIENT_SECRET", "") | |
| # ββ Storage paths ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| DB_PATH = "/tmp/stew_v2.db" | |
| SCHEDULER_DB_URL = "sqlite:////tmp/stew_scheduler.db" | |
| VECTOR_DB_PATH = "/tmp/stew_vector_db" | |
| SKILLS_DIR = "/tmp/stew_skills" | |
| FILES_DIR = "/tmp/stew_files" | |
| IMAGES_DIR = "/tmp/stew_images" | |
| # ββ Limits βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| MAX_SWARM_AGENTS = 50 | |
| MAX_MEMORY_TURNS = 30 | |
| MAX_RESPONSE_TOKENS = 2048 | |
| CODE_EXEC_TIMEOUT = 30 # seconds | |
| def validate(cls): | |
| issues = [] | |
| if not cls.OPENROUTER_API_KEY: issues.append("β οΈ OPENROUTER_API_KEY missing") | |
| if not cls.TELEGRAM_BOT_TOKEN: issues.append("β οΈ TELEGRAM_BOT_TOKEN missing") | |
| if not cls.SPACE_URL: issues.append("β οΈ SPACE_URL missing (Telegram webhook won't register)") | |
| for i in issues: print(i) | |
| # Create required dirs | |
| import os | |
| for d in [cls.SKILLS_DIR, cls.FILES_DIR, cls.IMAGES_DIR]: | |
| os.makedirs(d, exist_ok=True) | |
| return issues | |