init
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
import { z } from "zod";
|
||||
|
||||
const envSchema = z.object({
|
||||
NODE_ENV: z.string().default("development"),
|
||||
PORT: z.coerce.number().int().positive().default(8788),
|
||||
HOST: z.string().default("0.0.0.0"),
|
||||
LOG_LEVEL: z.string().default("info"),
|
||||
AGENT_INTERNAL_TOKEN: z.string().optional(),
|
||||
OPENCODE_HOSTNAME: z.string().default("127.0.0.1"),
|
||||
OPENCODE_PORT: z.coerce.number().int().positive().default(4096),
|
||||
OPENCODE_TIMEOUT_MS: z.coerce.number().int().positive().default(5000),
|
||||
OPENCODE_MODEL: z.string().default("anthropic/claude-sonnet-4-5"),
|
||||
OPENCODE_BASE_URL: z.string().optional(),
|
||||
OPENCODE_SERVER_PASSWORD: z.string().optional(),
|
||||
OPENCODE_SERVER_USERNAME: z.string().default("opencode"),
|
||||
SESSION_TTL_SECONDS: z.coerce.number().int().positive().default(1800),
|
||||
TJWATER_API_BASE_URL: z.string().default("http://127.0.0.1:8000"),
|
||||
TJWATER_API_TIMEOUT_MS: z.coerce.number().int().positive().default(30000),
|
||||
MAX_INLINE_RESULT_BYTES: z.coerce.number().int().positive().default(12000),
|
||||
MAX_PREVIEW_SAMPLE_ITEMS: z.coerce.number().int().positive().default(3),
|
||||
});
|
||||
|
||||
export type AppConfig = z.infer<typeof envSchema>;
|
||||
|
||||
export const config: AppConfig = envSchema.parse(process.env);
|
||||
Reference in New Issue
Block a user