from __future__ import annotations import os import sys from pathlib import Path from functools import lru_cache @lru_cache(maxsize=1) def get_config_dir() -> Path: """Get platform-appropriate config directory.""" if sys.platform == "win32": return Path(os.environ.get("APPDATA", Path.home() / "AppData" / "Roaming")) elif sys.platform == "darwin": return Path.home() / "Library" / "Application Support" return Path.home() / ".config" DEFAULT_PORT = 1337 DEFAULT_TIMEOUT = 600 DEFAULT_STREAM_TIMEOUT = 15 PACKAGE_NAME = "g4f" CONFIG_DIR = get_config_dir() / PACKAGE_NAME COOKIES_DIR = CONFIG_DIR / "cookies" CUSTOM_COOKIES_DIR = "./har_and_cookies" ORGANIZATION = "gpt4free" GITHUB_REPOSITORY = f"xtekky/{ORGANIZATION}" STATIC_DOMAIN = f"{PACKAGE_NAME}.dev" STATIC_URL = f"https://static.{STATIC_DOMAIN}/" DIST_DIR = f"./{STATIC_DOMAIN}/dist" DEFAULT_MODEL = "openai/gpt-oss-120b" JSDELIVR_URL = "https://cdn.jsdelivr.net/" DOWNLOAD_URL = f"{JSDELIVR_URL}gh/{ORGANIZATION}/{STATIC_DOMAIN}/" GITHUB_URL = f"https://raw.githubusercontent.com/{ORGANIZATION}/{STATIC_DOMAIN}/refs/heads/main/"