A chill Bluesky bot, with responses powered by Gemini.
at main 640 B view raw
1import { z } from "zod"; 2 3const envSchema = z.object({ 4 AUTHORIZED_USERS: z.preprocess( 5 (val) => 6 (typeof val === "string" && val.trim() !== "") ? val.split(",") : null, 7 z.array(z.string()).nullable().default(null), 8 ), 9 10 SERVICE: z.string().default("https://bsky.social"), 11 DB_PATH: z.string().default("sqlite.db"), 12 GEMINI_MODEL: z.string().default("gemini-2.5-flash"), 13 14 ADMIN_DID: z.string(), 15 ADMIN_HANDLE: z.string(), 16 DID: z.string(), 17 HANDLE: z.string(), 18 BSKY_PASSWORD: z.string(), 19 20 GEMINI_API_KEY: z.string(), 21}); 22 23export type Env = z.infer<typeof envSchema>; 24export const env = envSchema.parse(Bun.env);