Files
variet-agent/config.py
CD b9e4a94e9a feat: 워크스페이스 이름충돌 감지 + 기본경로(VW_Proj) + 유령채널 자동정리
- workspace.py: find_by_name() 이름충돌, cleanup_orphans() 유령정리, 경로 자동생성
- config.py: WORKSPACE_BASE_DIR = VW_Proj
- discord_bot.py: /workspace set path 선택적, 이름충돌 안내, on_ready 유령정리
- VW_Proj 폴더 생성
2026-03-06 21:19:42 +09:00

52 lines
1.6 KiB
Python

"""Variet Agent 설정 관리.
.env 파일에서 환경변수를 로드합니다.
"""
import os
from pathlib import Path
# .env 파일 수동 파싱 (python-dotenv 없이도 동작)
_env_path = Path(__file__).parent / ".env"
if _env_path.exists():
for line in _env_path.read_text(encoding="utf-8").splitlines():
line = line.strip()
if not line or line.startswith("#"):
continue
if "=" in line:
key, _, value = line.partition("=")
os.environ.setdefault(key.strip(), value.strip())
# === Discord ===
DISCORD_BOT_TOKEN: str = os.getenv("DISCORD_BOT_TOKEN", "")
DISCORD_COMMAND_PREFIX: str = os.getenv("DISCORD_COMMAND_PREFIX", "!")
# === API Server ===
API_HOST: str = os.getenv("API_HOST", "0.0.0.0")
API_PORT: int = int(os.getenv("API_PORT", "8000"))
# === Paths ===
PROJECT_ROOT: Path = Path(__file__).parent
SESSIONS_DIR: Path = PROJECT_ROOT / "sessions"
SESSIONS_DIR.mkdir(exist_ok=True)
# === Gemini ===
GEMINI_TOKEN_BUDGET: int = int(os.getenv("GEMINI_TOKEN_BUDGET", "50000"))
GEMINI_TIMEOUT: int = int(os.getenv("GEMINI_TIMEOUT", "180"))
# === Gitea ===
GITEA_URL: str = os.getenv("GITEA_URL", "https://git.variet.net")
GITEA_TOKEN: str = os.getenv("GITEA_TOKEN", "")
GITEA_REPO: str = os.getenv("GITEA_REPO", "Variet/variet-agent")
# === Vikunja ===
VIKUNJA_URL: str = os.getenv("VIKUNJA_URL", "https://plan.variet.net")
VIKUNJA_TOKEN: str = os.getenv("VIKUNJA_TOKEN", "")
VIKUNJA_PROJECT_ID: int = int(os.getenv("VIKUNJA_PROJECT_ID", "7"))
# === Workspace ===
WORKSPACE_BASE_DIR: str = os.getenv(
"WORKSPACE_BASE_DIR", r"c:\Users\Certes\Desktop\VW_Proj"
)