chore: initialize clean history without secrets
Some checks failed
CI / lint-and-compile (push) Has been cancelled

This commit is contained in:
root
2026-04-17 09:56:08 +08:00
commit 5526779e98
16 changed files with 1411 additions and 0 deletions

54
app/config.py Normal file
View File

@@ -0,0 +1,54 @@
from __future__ import annotations
import os
from dataclasses import dataclass
from pathlib import Path
@dataclass
class Settings:
host: str
port: int
api_keys: list[str]
lingma_bin: str
lingma_work_dir: str
lingma_socket_port: int
lingma_startup_timeout: int
lingma_rpc_timeout: int
default_model: str
default_ask_mode: str
dedicated_domain_url: str
auto_login_enabled: bool
auto_login_headless: bool
auto_login_timeout: int
auto_login_max_retry: int
lingma_username: str
lingma_password: str
def load_settings() -> Settings:
keys_raw = os.getenv("API_KEYS", "")
api_keys = [k.strip() for k in keys_raw.split(",") if k.strip()]
work_dir = os.getenv(
"LINGMA_WORK_DIR",
str(Path.home() / ".lingma" / "vscode" / "sharedClientCache"),
)
return Settings(
host=os.getenv("HOST", "0.0.0.0"),
port=int(os.getenv("PORT", "8317")),
api_keys=api_keys,
lingma_bin=os.getenv("LINGMA_BIN", "/app/bin/Lingma"),
lingma_work_dir=work_dir,
lingma_socket_port=int(os.getenv("LINGMA_SOCKET_PORT", "36510")),
lingma_startup_timeout=int(os.getenv("LINGMA_STARTUP_TIMEOUT", "40")),
lingma_rpc_timeout=int(os.getenv("LINGMA_RPC_TIMEOUT", "30")),
default_model=os.getenv("DEFAULT_MODEL", "org_auto"),
default_ask_mode=os.getenv("DEFAULT_ASK_MODE", "chat"),
dedicated_domain_url=os.getenv("DEDICATED_DOMAIN_URL", "").strip(),
auto_login_enabled=os.getenv("AUTO_LOGIN_ENABLED", "true").lower() in {"1", "true", "yes", "on"},
auto_login_headless=os.getenv("AUTO_LOGIN_HEADLESS", "true").lower() in {"1", "true", "yes", "on"},
auto_login_timeout=int(os.getenv("AUTO_LOGIN_TIMEOUT", "180")),
auto_login_max_retry=int(os.getenv("AUTO_LOGIN_MAX_RETRY", "2")),
lingma_username=os.getenv("LINGMA_USERNAME", "").strip(),
lingma_password=os.getenv("LINGMA_PASSWORD", "").strip(),
)