import { z } from 'zod'; const Env = z.object({ NODE_ENV: z.enum(['development', 'test', 'production']).default('development'), DATABASE_URL: z.string(), REDIS_URL: z.string().default('redis://localhost:6379'), PORT: z.coerce.number().default(4000), NEXT_PUBLIC_APP_URL: z.string().default('http://localhost:3000'), OAUTH_KEY_DIR: z.string().default('./keys'), ANTHROPIC_API_KEY: z.string().optional(), SECRETS_ENCRYPTION_KEY: z .string() .min(64, '32 bytes hex required') .default('0000000000000000000000000000000000000000000000000000000000000000'), }); export const config = Env.parse({ NODE_ENV: process.env.NODE_ENV, DATABASE_URL: process.env.DATABASE_URL, REDIS_URL: process.env.REDIS_URL, PORT: process.env.PORT, NEXT_PUBLIC_APP_URL: process.env.NEXT_PUBLIC_APP_URL, OAUTH_KEY_DIR: process.env.OAUTH_KEY_DIR, ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY, SECRETS_ENCRYPTION_KEY: process.env.SECRETS_ENCRYPTION_KEY, }); export type Config = z.infer;