20 lines
784 B
TypeScript
20 lines
784 B
TypeScript
export interface AppConfig {
|
|
port: number; harnessDir: string; thtBin: string; piBin: string;
|
|
authMode: "none" | "mock" | "oidc";
|
|
defaults: { provider?: string; model?: string; thinking?: string };
|
|
maxPiProcesses: number;
|
|
settingsFile: string;
|
|
}
|
|
export function loadConfig(env: Record<string, string | undefined>): AppConfig {
|
|
return {
|
|
port: Number(env.PORT ?? 8787),
|
|
harnessDir: env.THT_HARNESS_DIR ?? "../harness",
|
|
thtBin: env.THT_BIN ?? "tht",
|
|
piBin: env.PI_BIN ?? "pi",
|
|
authMode: (env.AUTH_MODE as AppConfig["authMode"]) ?? "none",
|
|
defaults: { provider: env.PI_PROVIDER, model: env.PI_MODEL, thinking: env.PI_THINKING },
|
|
maxPiProcesses: Number(env.MAX_PI_PROCESSES ?? 4),
|
|
settingsFile: env.SETTINGS_FILE ?? "data/settings.json",
|
|
};
|
|
}
|