import type { ProviderSettings, ProviderType } from "@/types/providers"; export const POPI_PROVIDER_ID: ProviderType = "popiserver"; export const POPI_PROVIDER_NAME = "Popi Models"; export const PROVIDER_IDS: ProviderType[] = [ "popiserver", "newapiwg", "gemini", "openai", "anthropic", "replicate", "fal", "kie", "wavespeed", ]; export function getProviderMode(): "popi" | "multi" { const mode = process.env.NEXT_PUBLIC_PROVIDER_MODE || process.env.PROVIDER_MODE || "popi"; return mode.toLowerCase() === "multi" ? "multi" : "popi"; } export function isPopiProviderMode(): boolean { return getProviderMode() === "popi"; } export function getProviderDisplayName(provider: ProviderType): string { switch (provider) { case "popiserver": return POPI_PROVIDER_NAME; case "newapiwg": return "NewApiWG"; case "gemini": return "Gemini"; case "openai": return "OpenAI"; case "anthropic": return "Anthropic"; case "replicate": return "Replicate"; case "fal": return "fal.ai"; case "kie": return "Kie.ai"; case "wavespeed": return "WaveSpeed"; } } export function applyProviderModeToSettings(settings: ProviderSettings): ProviderSettings { if (!isPopiProviderMode()) return settings; return { providers: PROVIDER_IDS.reduce((providers, providerId) => { providers[providerId] = { ...settings.providers[providerId], enabled: providerId === POPI_PROVIDER_ID, name: getProviderDisplayName(providerId), }; return providers; }, {} as ProviderSettings["providers"]), }; }