export type DeeplineRuntimeEnv = 'prod' | 'dev'; function normalizeEnvToken(value: string): DeeplineRuntimeEnv | null { const token = value.trim().toLowerCase(); if (!token) return null; if ( token === 'prod' || token === 'production' || token === 'live' || token.startsWith('prod-') ) { return 'prod'; } if ( token === 'dev' || token === 'development' || token === 'local' || token === 'preview' || token === 'staging' || token === 'stage' || token === 'test' || token.startsWith('dev-') ) { return 'dev'; } return null; } export function getRuntimeEnv(): DeeplineRuntimeEnv { const explicit = normalizeEnvToken(process.env.DEEPLINE_ENV ?? ''); if (explicit) return explicit; const convexDeployment = String(process.env.CONVEX_DEPLOYMENT ?? '') .trim() .toLowerCase(); if (convexDeployment.startsWith('prod:')) return 'prod'; if (convexDeployment.startsWith('dev:')) return 'dev'; const vercelEnv = normalizeEnvToken(process.env.VERCEL_ENV ?? ''); if (vercelEnv) return vercelEnv; return process.env.NODE_ENV === 'production' ? 'prod' : 'dev'; } export function getRuntimeEnvInfo() { return { env: getRuntimeEnv(), deepline_env: process.env.DEEPLINE_ENV ?? null, convex_deployment: process.env.CONVEX_DEPLOYMENT ?? null, node_env: process.env.NODE_ENV ?? null, }; }