"use client"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import { Label } from "@kandev/ui/label"; import { Switch } from "@kandev/ui/switch"; import { ModelCombobox } from "@/components/settings/model-combobox"; import { FallbackOptionHelp, ModelFallbackSettingsShell, } from "@/components/settings/model-fallback-settings-shell"; function ExactModelOption({ requireExactModel, onChange, }: { requireExactModel: boolean; onChange: (value: boolean) => void; }) { const { t } = useTranslation(); return (

{t("settings:requireExactModelHelper")}

); } function ExplicitFallbackOption({ availableModels, fallbackModel, fallbackModelGone, autoFallback, requireExactModel, currentModelId, onFallbackModelChange, }: { availableModels: { id: string; name: string }[]; fallbackModel: string; fallbackModelGone: boolean; autoFallback: boolean; requireExactModel: boolean; currentModelId: string | undefined; onFallbackModelChange: (value: string) => void; }) { const { t } = useTranslation(); const [optedIn, setOptedIn] = useState(false); const fallbackEnabled = Boolean(fallbackModel) || optedIn; return (
{ setOptedIn(checked); if (!checked) onFallbackModelChange(""); }} aria-label={t("settings:agentFallback")} />
{fallbackEnabled && ( )}

{autoFallback || requireExactModel ? t("settings:agentFallbackDisabledHelper") : t("settings:agentFallbackHelper")}

); } // ModelFallbackFields renders the no-silent-model-fallback controls for the // inline CLI profile editor inside the shared fallback-settings disclosure. export function ModelFallbackFields({ availableModels, fallbackModel, fallbackModelGone, autoFallback, requireExactModel, currentModelId, onFallbackModelChange, onAutoFallbackChange, onRequireExactModelChange, }: { availableModels: { id: string; name: string }[]; fallbackModel: string; fallbackModelGone: boolean; autoFallback: boolean; requireExactModel: boolean; currentModelId: string | undefined; onFallbackModelChange: (v: string) => void; onAutoFallbackChange: (v: boolean) => void; onRequireExactModelChange: (v: boolean) => void; }) { const { t } = useTranslation(); return ( } fallbackModel={fallbackModel} automaticOption={

{t("settings:autoFallbackHelper")}

} explicitOption={ } /> ); }