"use client"; import { useState, useEffect } from "react"; import AgentBuilderView from "@/app/(dashboard)/playground/components/chat_ui/AgentBuilderView"; import ChatUI from "@/app/(dashboard)/playground/components/chat_ui/ChatUI"; import CompareUI from "@/app/(dashboard)/playground/components/compareUI/CompareUI"; import ComplianceUI from "@/app/(dashboard)/playground/components/complianceUI/ComplianceUI"; import { DeprecationBanner } from "@/components/DeprecationBanner"; import useAuthorized from "@/app/(dashboard)/hooks/useAuthorized"; import { fetchProxySettings } from "@/utils/proxyUtils"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { useUrlTab } from "@/hooks/useUrlTab"; const PLAYGROUND_TABS = ["chat", "compare", "compliance", "agent-builder"] as const; interface ProxySettings { PROXY_BASE_URL?: string; LITELLM_UI_API_DOC_BASE_URL?: string | null; } export default function PlaygroundPage() { const { accessToken, userRole, userId, disabledPersonalKeyCreation, token, isViewOnly } = useAuthorized(); const [proxySettings, setProxySettings] = useState(undefined); const [activeTab, setActiveTab] = useUrlTab(PLAYGROUND_TABS, "chat"); useEffect(() => { const initializeProxySettings = async () => { if (accessToken) { const settings = await fetchProxySettings(accessToken); if (settings) { setProxySettings({ PROXY_BASE_URL: settings.PROXY_BASE_URL, LITELLM_UI_API_DOC_BASE_URL: settings.LITELLM_UI_API_DOC_BASE_URL, }); } } }; initializeProxySettings(); }, [accessToken]); if (isViewOnly) { return (

Access Denied

Your role does not have access to the Playground. Ask your proxy admin for access to test models.

); } return (
Chat Compare Compliance Agent Builder (Experimental)
); }