diff --git a/servers/nextjs/app/(presentation-generator)/(dashboard)/settings/TextProvider.tsx b/servers/nextjs/app/(presentation-generator)/(dashboard)/settings/TextProvider.tsx
index 921458bc..a42c0cb7 100644
--- a/servers/nextjs/app/(presentation-generator)/(dashboard)/settings/TextProvider.tsx
+++ b/servers/nextjs/app/(presentation-generator)/(dashboard)/settings/TextProvider.tsx
@@ -1,3 +1,4 @@
+import ToolTip from '@/components/ToolTip';
import { Button } from '@/components/ui/button';
import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '@/components/ui/command';
import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';
@@ -5,7 +6,7 @@ import { Switch } from '@/components/ui/switch';
import { cn } from '@/lib/utils';
import { LLMConfig } from '@/types/llm_config';
import { LLM_PROVIDERS } from '@/utils/providerConstants';
-import { Check, Loader2, Eye, EyeOff, ChevronUp } from 'lucide-react';
+import { Check, Loader2, Eye, EyeOff, ChevronUp, User, RefreshCw, LogOut } from 'lucide-react';
import React, { useEffect, useMemo, useRef, useState } from 'react'
import { toast } from 'sonner';
@@ -222,251 +223,87 @@ const TextProvider = ({
Choosing where text contets come from
-
-
-
-
-
-
-
-
-
-
-
-
-
- No provider found.
-
- {Object.values(LLM_PROVIDERS).map(
- (provider, index) => (
- {
- onInputChange(value, "LLM");
- setOpenProviderSelect(false);
- }}
- >
-
-
-
-
-
- {provider.label}
-
-
-
- {provider.description}
-
-
-
-
- )
- )}
-
-
-
-
-
-
-
-
-
-
-
- {selectedProvider === 'ollama' ? (
- <>
- {!useCustomOllamaUrl ? (
-
- ) : (
- <>
-
-
- onApiKeyChange(selectedProvider, e.target.value)}
- className="w-full px-2 py-3 outline-none border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-colors"
- placeholder="http://localhost:11434"
- />
-
-
- >
- )}
- >
- ) : (
- <>
-
-
- onApiKeyChange(selectedProvider, e.target.value)}
- className="w-full px-2 py-3 outline-none border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-colors"
- placeholder={`Enter your ${llmConfig.LLM} API key`}
- />
-
-
- >
- )}
- {selectedProvider === 'custom' && (
-
onInputChange(e.target.value, 'CUSTOM_LLM_URL')}
- className="w-full mt-2 px-2 py-3 outline-none border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-colors"
- placeholder="OpenAI-compatible URL"
- />
- )}
-
-
-
-
-
- {selectedProvider !== 'ollama' && (!modelsChecked || (modelsChecked && availableModels.length === 0)) && (
-
-
-
- )}
-
-
-
- {/* Model Selection - only show if models are available */}
- {modelsChecked && availableModels.length > 0 ? (
-
+
+ {selectedProvider === 'codex' && false &&
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No provider found.
+
+ {Object.values(LLM_PROVIDERS).map(
+ (provider, index) => (
{
- if (currentModelField) {
- onInputChange(value, currentModelField);
- }
- setOpenModelSelect(false);
+ onInputChange(value, "LLM");
+ setOpenProviderSelect(false);
}}
>
-
- {model}
+
+ {provider.label}
+
+ {provider.description}
+
- ))}
-
-
-
-
-
+ )
+ )}
+
+
+
+
+
+
+
+
+
+
+
+ {selectedProvider === 'ollama' ? (
+ <>
+ {!useCustomOllamaUrl ? (
+
+ ) : (
+ <>
+
+
+ onApiKeyChange(selectedProvider, e.target.value)}
+ className="w-full px-2 py-3 outline-none border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-colors"
+ placeholder="http://localhost:11434"
+ />
+
+
+ >
+ )}
+ >
+ ) : selectedProvider === 'codex' ?
+ <>
+
+ >
+ : (
+ <>
+
+
+ onApiKeyChange(selectedProvider, e.target.value)}
+ className="w-full px-2 py-3 outline-none border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-colors"
+ placeholder={`Enter your ${llmConfig.LLM} API key`}
+ />
+
+
+ >
+ )}
+ {selectedProvider === 'custom' && (
+
onInputChange(e.target.value, 'CUSTOM_LLM_URL')}
+ className="w-full mt-2 px-2 py-3 outline-none border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-colors"
+ placeholder="OpenAI-compatible URL"
+ />
+ )}
+
+
+
+
+
+ {selectedProvider !== 'ollama' && selectedProvider !== 'codex' && (!modelsChecked || (modelsChecked && availableModels.length === 0)) && (
+
+
+
+ )}
+
+
+
+ {/* Model Selection - only show if models are available */}
+ {modelsChecked && availableModels.length > 0 ? (
+
+
+
+
+
+
+
+
+
+
+
+
+ No model found.
+
+ {availableModels.map((model, index) => (
+ {
+ if (currentModelField) {
+ onInputChange(value, currentModelField);
+ }
+ setOpenModelSelect(false);
+ }}
+ >
+
+
+
+ ))}
+
+
+
+
+
+
-
- ) : null}
+ ) : null}
+
{/* Show message if no models found */}