import { createMemo, createSignal, For, Show } from "solid-js" import { providers, fetchProviders } from "../stores/sessions" import { ChevronDown, ShieldCheck, Cpu } from "lucide-solid" import type { Model, Provider } from "../types/session" import { Popover } from "@kobalte/core/popover" interface ModelStatusSelectorProps { instanceId: string sessionId: string currentModel: { providerId: string; modelId: string } onModelChange: (model: { providerId: string; modelId: string }) => Promise } export default function ModelStatusSelector(props: ModelStatusSelectorProps) { const instanceProviders = () => providers().get(props.instanceId) || [] const [isOpen, setIsOpen] = createSignal(false) const currentProvider = createMemo(() => instanceProviders().find(p => p.id === props.currentModel.providerId) ) const currentModel = createMemo(() => currentProvider()?.models.find(m => m.id === props.currentModel.modelId) ) // Simple auth status check: if we have providers and the current provider is in the list, we consider it "authenticated" const isAuthenticated = createMemo(() => !!currentProvider()) return (
{/* Auth Status Indicator */}
{isAuthenticated() ? 'AUTHED' : 'NO AUTH'}
{/* Model Selector HUD */}
AI MODEL {currentModel()?.name ?? currentProvider()?.name ?? "Select Model"}
{(provider) => (
{provider.name}
{(model) => ( )}
)}
) }