package app import ( "os" "path/filepath" ) type Config struct { CodexHome string HTTPAddr string WorkspaceRoot string StaticDir string } func DefaultConfig() Config { httpAddr := envOrDefault("HTTP_ADDR", "127.0.0.1:18083") staticDir := os.Getenv("STATIC_DIR") workspaceRoot := envOrDefault("WORKSPACE_ROOT", ".") if codexHome := os.Getenv("CODEX_HOME"); codexHome != "" { return Config{ CodexHome: codexHome, HTTPAddr: httpAddr, WorkspaceRoot: workspaceRoot, StaticDir: staticDir, } } home, err := os.UserHomeDir() if err != nil { home = "." } return Config{ CodexHome: filepath.Join(home, ".codex"), HTTPAddr: httpAddr, WorkspaceRoot: workspaceRoot, StaticDir: staticDir, } } func envOrDefault(name string, fallback string) string { if value := os.Getenv(name); value != "" { return value } return fallback }