import path from "node:path"; function req(name: string, fallback?: string): string { const v = process.env[name] ?? fallback; if (v === undefined || v === "") throw new Error(`Missing required environment variable ${name}`); return v; } export const env = { get DATABASE_URL() { return req("DATABASE_URL"); }, get DATA_DIR() { return path.resolve(process.env.DATA_DIR ?? "./data"); }, get UPLOAD_DIR() { return path.join(this.DATA_DIR, "uploads"); }, get SESSION_SECRET() { return req("SESSION_SECRET"); }, get OPENAI_API_KEY() { return process.env.OPENAI_API_KEY ?? ""; }, get ANTHROPIC_API_KEY() { return process.env.ANTHROPIC_API_KEY ?? ""; }, get TAVILY_API_KEY() { return process.env.TAVILY_API_KEY ?? ""; }, get PYTHON_BIN() { return process.env.PYTHON_BIN ?? "python3"; }, get APP_URL() { return process.env.APP_URL ?? "https://chat.spboucher.ai"; }, get NODE_ENV() { return process.env.NODE_ENV ?? "development"; }, get SESSION_TTL_DAYS() { return Number(process.env.SESSION_TTL_DAYS ?? 30); }, get MAX_UPLOAD_MB() { return Number(process.env.MAX_UPLOAD_MB ?? 50); }, get BENCHMARKS_DIR() { return path.resolve(process.env.BENCHMARKS_DIR ?? "./benchmarks"); }, };