69 lines
1.5 KiB
Python
69 lines
1.5 KiB
Python
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
|
|
|
|
# Logging
|
|
LOG_FORMAT: str = "json"
|
|
|
|
model_config = {"env_file": ".env", "extra": "ignore"}
|