galaxis-agent/agent/config.py

66 lines
1.5 KiB
Python
Raw Normal View History

from pydantic_settings import BaseSettings
class Settings(BaseSettings):
# LLM
ANTHROPIC_API_KEY: str
# Gitea
GITEA_URL: str = "http://gitea:3000"
GITEA_EXTERNAL_URL: str = "https://ayuriel.duckdns.org"
GITEA_TOKEN: str
GITEA_WEBHOOK_SECRET: str
# Discord
DISCORD_TOKEN: str
DISCORD_CHANNEL_ID: str = ""
DISCORD_BOT_USER_ID: str = ""
# LangGraph
LANGGRAPH_URL: str = "http://langgraph-server:8123"
# Agent
AUTONOMY_LEVEL: str = "conservative"
DEFAULT_REPO_OWNER: str = "quant"
DEFAULT_REPO_NAME: str = "galaxis-po"
AGENT_API_KEY: str = ""
# Sandbox
SANDBOX_IMAGE: str = "galaxis-sandbox:latest"
SANDBOX_MEM_LIMIT: str = "4g"
SANDBOX_CPU_COUNT: int = 2
SANDBOX_TIMEOUT: int = 600
SANDBOX_PIDS_LIMIT: int = 256
# Database
TEST_DATABASE_URL: str = ""
# Encryption
FERNET_KEY: str = ""
# Path access control
WRITABLE_PATHS: list[str] = [
"backend/app/",
"backend/tests/",
"frontend/src/",
"backend/alembic/versions/",
"docs/",
]
BLOCKED_PATHS: list[str] = [
".env",
"docker-compose.prod.yml",
"quant.md",
]
# Auto merge
AUTO_MERGE: bool = False
REQUIRE_TESTS: bool = True
REQUIRE_E2E: bool = False
MAX_FILES_CHANGED: int = 10
# Cost limits
DAILY_COST_LIMIT_USD: float = 10.0
PER_TASK_COST_LIMIT_USD: float = 3.0
model_config = {"env_file": ".env", "extra": "ignore"}