import { useEffect, useState } from "react"; import { Sparkles } from "lucide-react"; import { useStore } from "../store"; import { useAiModels } from "../lib/aiKeys"; // Brand-neutral model picker: shows our own tier names (Swift / Standard / Reasoning …) — never the // underlying provider or raw model ids. In "bring your own key" mode the list comes from whatever the // user's key unlocks (via useAiModels, which sends the key headers), so the switcher just works. export function ModelSwitcher() { const model = useStore((s) => s.model); const setModel = useStore((s) => s.setModel); const { models: all, defaults } = useAiModels(); const models = all.filter((m) => m.role === "chat"); const [open, setOpen] = useState(false); // keep the selected model valid: if the current one isn't in the usable list (e.g. after connecting a // different provider's key, or in a no-server-key demo), fall back to the resolved default / first model. useEffect(() => { if (!models.length) return; if (!models.some((m) => m.id === model)) setModel(defaults.chat || models[0].id); }, [models, defaults.chat, model, setModel]); const cur = models.find((m) => m.id === model); return (