mirror of
https://github.com/Routstr/routstr-core.git
synced 2026-08-11 11:47:50 +00:00
558 lines
31 KiB
HTML
558 lines
31 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<link
|
|
rel="preload"
|
|
href="/_next/static/media/4cf2300e9c8272f7-s.p.woff2"
|
|
as="font"
|
|
crossorigin=""
|
|
type="font/woff2"
|
|
/>
|
|
<link
|
|
rel="preload"
|
|
href="/_next/static/media/93f479601ee12b01-s.p.woff2"
|
|
as="font"
|
|
crossorigin=""
|
|
type="font/woff2"
|
|
/>
|
|
<link
|
|
rel="stylesheet"
|
|
href="/_next/static/css/de70bee13400563f.css"
|
|
data-precedence="next"
|
|
/>
|
|
<link
|
|
rel="stylesheet"
|
|
href="/_next/static/css/1ff89cf1c6e3d515.css"
|
|
data-precedence="next"
|
|
/>
|
|
<link
|
|
rel="preload"
|
|
as="script"
|
|
fetchpriority="low"
|
|
href="/_next/static/chunks/webpack-a88517f6dce11b25.js"
|
|
/>
|
|
<script
|
|
src="/_next/static/chunks/65b78783-abd88d9e33bb3ce1.js"
|
|
async=""
|
|
></script>
|
|
<script
|
|
src="/_next/static/chunks/497-baf4d54bf6b2d14c.js"
|
|
async=""
|
|
></script>
|
|
<script
|
|
src="/_next/static/chunks/main-app-17707ee50e50ea2f.js"
|
|
async=""
|
|
></script>
|
|
<script
|
|
src="/_next/static/chunks/363-119b32fca35baa33.js"
|
|
async=""
|
|
></script>
|
|
<script src="/_next/static/chunks/29-e3557fb1dd82bdc3.js" async=""></script>
|
|
<script
|
|
src="/_next/static/chunks/578-9e08cd45b1eda688.js"
|
|
async=""
|
|
></script>
|
|
<script
|
|
src="/_next/static/chunks/app/layout-1e4148ea2d359141.js"
|
|
async=""
|
|
></script>
|
|
<script
|
|
src="/_next/static/chunks/222-4bb848975c01d467.js"
|
|
async=""
|
|
></script>
|
|
<script
|
|
src="/_next/static/chunks/230-c1944b44cc70d7f6.js"
|
|
async=""
|
|
></script>
|
|
<script
|
|
src="/_next/static/chunks/730-892209af1fa345bd.js"
|
|
async=""
|
|
></script>
|
|
<script
|
|
src="/_next/static/chunks/978-cd938190a9f5efa7.js"
|
|
async=""
|
|
></script>
|
|
<script
|
|
src="/_next/static/chunks/481-48cd0f8fe547e418.js"
|
|
async=""
|
|
></script>
|
|
<script
|
|
src="/_next/static/chunks/982-5588ad0e30e6255e.js"
|
|
async=""
|
|
></script>
|
|
<script
|
|
src="/_next/static/chunks/552-841e72e83992f2f1.js"
|
|
async=""
|
|
></script>
|
|
<script
|
|
src="/_next/static/chunks/236-7aedbfc1345ecc2c.js"
|
|
async=""
|
|
></script>
|
|
<script
|
|
src="/_next/static/chunks/255-a44a63a7b4273784.js"
|
|
async=""
|
|
></script>
|
|
<script
|
|
src="/_next/static/chunks/app/models/page-fc2b83cb8d074990.js"
|
|
async=""
|
|
></script>
|
|
<meta name="next-size-adjust" content="" />
|
|
<title>Routstr</title>
|
|
<meta name="description" content="Routstr model management" />
|
|
<link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="16x16" />
|
|
<script>
|
|
document
|
|
.querySelectorAll(
|
|
'body link[rel="icon"], body link[rel="apple-touch-icon"]'
|
|
)
|
|
.forEach((el) => document.head.appendChild(el));
|
|
</script>
|
|
<script
|
|
src="/_next/static/chunks/polyfills-42372ed130431b0a.js"
|
|
nomodule=""
|
|
></script>
|
|
</head>
|
|
<body class="__variable_188709 __variable_9a8899 antialiased">
|
|
<div
|
|
data-slot="sidebar-wrapper"
|
|
style="--sidebar-width: 16rem; --sidebar-width-icon: 3rem"
|
|
class="group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full"
|
|
>
|
|
<div
|
|
class="group peer text-sidebar-foreground hidden md:block"
|
|
data-state="expanded"
|
|
data-collapsible=""
|
|
data-variant="inset"
|
|
data-side="left"
|
|
data-slot="sidebar"
|
|
>
|
|
<div
|
|
data-slot="sidebar-gap"
|
|
class="relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))] group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:rotate-180"
|
|
></div>
|
|
<div
|
|
data-slot="sidebar-container"
|
|
class="fixed inset-y-0 left-0 z-10 hidden h-svh w-(--sidebar-width) p-2 transition-[left,right,width] duration-200 ease-linear group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)] group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] md:flex"
|
|
>
|
|
<div
|
|
data-sidebar="sidebar"
|
|
data-slot="sidebar-inner"
|
|
class="bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm"
|
|
>
|
|
<div
|
|
data-slot="sidebar-header"
|
|
data-sidebar="header"
|
|
class="flex flex-col gap-2 p-2"
|
|
>
|
|
<ul
|
|
data-slot="sidebar-menu"
|
|
data-sidebar="menu"
|
|
class="flex w-full min-w-0 flex-col gap-1"
|
|
>
|
|
<li
|
|
data-slot="sidebar-menu-item"
|
|
data-sidebar="menu-item"
|
|
class="group/menu-item relative"
|
|
>
|
|
<span
|
|
class="peer/menu-button ring-sidebar-ring active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex h-8 w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-base text-sm font-semibold outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium data-[slot=sidebar-menu-button]:!p-1.5"
|
|
data-slot="sidebar-menu-button"
|
|
data-sidebar="menu-button"
|
|
data-size="default"
|
|
data-active="false"
|
|
>Routstr</span
|
|
>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div
|
|
data-slot="sidebar-content"
|
|
data-sidebar="content"
|
|
class="flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden"
|
|
>
|
|
<div
|
|
data-slot="sidebar-group"
|
|
data-sidebar="group"
|
|
class="relative mt-auto flex w-full min-w-0 flex-col p-2"
|
|
>
|
|
<div
|
|
data-slot="sidebar-group-content"
|
|
data-sidebar="group-content"
|
|
class="w-full text-sm"
|
|
>
|
|
<ul
|
|
data-slot="sidebar-menu"
|
|
data-sidebar="menu"
|
|
class="flex w-full min-w-0 flex-col gap-1"
|
|
>
|
|
<li
|
|
data-slot="sidebar-menu-item"
|
|
data-sidebar="menu-item"
|
|
class="group/menu-item relative"
|
|
>
|
|
<a
|
|
data-slot="sidebar-menu-button"
|
|
data-sidebar="menu-button"
|
|
data-size="default"
|
|
data-active="false"
|
|
class="peer/menu-button ring-sidebar-ring active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex h-8 w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium"
|
|
href="/"
|
|
><svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
width="24"
|
|
height="24"
|
|
viewBox="0 0 24 24"
|
|
fill="none"
|
|
stroke="currentColor"
|
|
stroke-width="2"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
class="lucide lucide-layout-dashboard"
|
|
aria-hidden="true"
|
|
>
|
|
<rect width="7" height="9" x="3" y="3" rx="1"></rect>
|
|
<rect width="7" height="5" x="14" y="3" rx="1"></rect>
|
|
<rect
|
|
width="7"
|
|
height="9"
|
|
x="14"
|
|
y="12"
|
|
rx="1"
|
|
></rect>
|
|
<rect
|
|
width="7"
|
|
height="5"
|
|
x="3"
|
|
y="16"
|
|
rx="1"
|
|
></rect></svg
|
|
><span>Dashboard</span></a
|
|
>
|
|
</li>
|
|
<li
|
|
data-slot="sidebar-menu-item"
|
|
data-sidebar="menu-item"
|
|
class="group/menu-item relative"
|
|
>
|
|
<a
|
|
data-slot="sidebar-menu-button"
|
|
data-sidebar="menu-button"
|
|
data-size="default"
|
|
data-active="false"
|
|
class="peer/menu-button ring-sidebar-ring active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex h-8 w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium"
|
|
href="/models/"
|
|
><svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
width="24"
|
|
height="24"
|
|
viewBox="0 0 24 24"
|
|
fill="none"
|
|
stroke="currentColor"
|
|
stroke-width="2"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
class="lucide lucide-database"
|
|
aria-hidden="true"
|
|
>
|
|
<ellipse cx="12" cy="5" rx="9" ry="3"></ellipse>
|
|
<path d="M3 5V19A9 3 0 0 0 21 19V5"></path>
|
|
<path d="M3 12A9 3 0 0 0 21 12"></path></svg
|
|
><span>Models</span></a
|
|
>
|
|
</li>
|
|
<li
|
|
data-slot="sidebar-menu-item"
|
|
data-sidebar="menu-item"
|
|
class="group/menu-item relative"
|
|
>
|
|
<a
|
|
data-slot="sidebar-menu-button"
|
|
data-sidebar="menu-button"
|
|
data-size="default"
|
|
data-active="false"
|
|
class="peer/menu-button ring-sidebar-ring active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex h-8 w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium"
|
|
href="/providers/"
|
|
><svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
width="24"
|
|
height="24"
|
|
viewBox="0 0 24 24"
|
|
fill="none"
|
|
stroke="currentColor"
|
|
stroke-width="2"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
class="lucide lucide-server"
|
|
aria-hidden="true"
|
|
>
|
|
<rect
|
|
width="20"
|
|
height="8"
|
|
x="2"
|
|
y="2"
|
|
rx="2"
|
|
ry="2"
|
|
></rect>
|
|
<rect
|
|
width="20"
|
|
height="8"
|
|
x="2"
|
|
y="14"
|
|
rx="2"
|
|
ry="2"
|
|
></rect>
|
|
<line x1="6" x2="6.01" y1="6" y2="6"></line>
|
|
<line x1="6" x2="6.01" y1="18" y2="18"></line></svg
|
|
><span>Providers</span></a
|
|
>
|
|
</li>
|
|
<li
|
|
data-slot="sidebar-menu-item"
|
|
data-sidebar="menu-item"
|
|
class="group/menu-item relative"
|
|
>
|
|
<a
|
|
data-slot="sidebar-menu-button"
|
|
data-sidebar="menu-button"
|
|
data-size="default"
|
|
data-active="false"
|
|
class="peer/menu-button ring-sidebar-ring active:bg-sidebar-accent active:text-sidebar-accent-foreground data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex h-8 w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium"
|
|
href="/settings/"
|
|
><svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
width="24"
|
|
height="24"
|
|
viewBox="0 0 24 24"
|
|
fill="none"
|
|
stroke="currentColor"
|
|
stroke-width="2"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
class="lucide lucide-settings"
|
|
aria-hidden="true"
|
|
>
|
|
<path
|
|
d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"
|
|
></path>
|
|
<circle cx="12" cy="12" r="3"></circle></svg
|
|
><span>Settings</span></a
|
|
>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<main
|
|
data-slot="sidebar-inset"
|
|
class="bg-background relative flex w-full flex-1 flex-col md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2"
|
|
>
|
|
<header
|
|
class="flex h-12 shrink-0 items-center gap-2 border-b transition-[width,height] ease-linear group-has-data-[collapsible=icon]/sidebar-wrapper:h-12"
|
|
>
|
|
<div
|
|
class="flex w-full items-center justify-between gap-1 px-4 lg:gap-2 lg:px-6"
|
|
>
|
|
<div class="flex items-center gap-1 lg:gap-2">
|
|
<button
|
|
data-slot="sidebar-trigger"
|
|
class="[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 -ml-1 inline-flex size-7 shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50"
|
|
data-sidebar="trigger"
|
|
>
|
|
<svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
width="24"
|
|
height="24"
|
|
viewBox="0 0 24 24"
|
|
fill="none"
|
|
stroke="currentColor"
|
|
stroke-width="2"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
class="lucide lucide-panel-left"
|
|
aria-hidden="true"
|
|
>
|
|
<rect width="18" height="18" x="3" y="3" rx="2"></rect>
|
|
<path d="M9 3v18"></path></svg
|
|
><span class="sr-only">Toggle Sidebar</span>
|
|
</button>
|
|
<div
|
|
data-orientation="vertical"
|
|
role="none"
|
|
data-slot="separator-root"
|
|
class="bg-border mx-2 shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-4 data-[orientation=vertical]:w-px"
|
|
></div>
|
|
<h1 class="text-base font-medium">Routstr</h1>
|
|
</div>
|
|
<button
|
|
data-slot="button"
|
|
class="[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 has-[>svg]:px-2.5 inline-flex h-8 shrink-0 items-center justify-center gap-2 rounded-md px-3 text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50"
|
|
>
|
|
<svg
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
width="24"
|
|
height="24"
|
|
viewBox="0 0 24 24"
|
|
fill="none"
|
|
stroke="currentColor"
|
|
stroke-width="2"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
class="lucide lucide-log-out h-4 w-4"
|
|
aria-hidden="true"
|
|
>
|
|
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path>
|
|
<polyline points="16 17 21 12 16 7"></polyline>
|
|
<line x1="21" x2="9" y1="12" y2="12"></line></svg
|
|
><span class="hidden sm:inline">Logout</span>
|
|
</button>
|
|
</div>
|
|
</header>
|
|
<div class="flex flex-1 flex-col">
|
|
<div
|
|
class="@container/main flex flex-1 flex-col gap-4 p-4 md:gap-8 md:p-8"
|
|
>
|
|
<div class="mb-6 flex items-center justify-between">
|
|
<h1 class="text-2xl font-bold tracking-tight">
|
|
Model Management & API Testing
|
|
</h1>
|
|
</div>
|
|
<div
|
|
dir="ltr"
|
|
data-orientation="horizontal"
|
|
data-slot="tabs"
|
|
class="flex w-full flex-col gap-2"
|
|
>
|
|
<div
|
|
role="tablist"
|
|
aria-orientation="horizontal"
|
|
data-slot="tabs-list"
|
|
class="bg-muted text-muted-foreground grid h-9 w-full grid-cols-3 items-center justify-center rounded-lg p-[3px]"
|
|
tabindex="-1"
|
|
data-orientation="horizontal"
|
|
style="outline: none"
|
|
>
|
|
<button
|
|
type="button"
|
|
role="tab"
|
|
aria-selected="true"
|
|
aria-controls="radix-«Rl3rbb»-content-manage"
|
|
data-state="active"
|
|
id="radix-«Rl3rbb»-trigger-manage"
|
|
data-slot="tabs-trigger"
|
|
class="data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm"
|
|
tabindex="-1"
|
|
data-orientation="horizontal"
|
|
data-radix-collection-item=""
|
|
>
|
|
Manage Models
|
|
</button>
|
|
</div>
|
|
<div
|
|
data-state="active"
|
|
data-orientation="horizontal"
|
|
role="tabpanel"
|
|
aria-labelledby="radix-«Rl3rbb»-trigger-manage"
|
|
id="radix-«Rl3rbb»-content-manage"
|
|
tabindex="0"
|
|
data-slot="tabs-content"
|
|
class="flex-1 space-y-4 outline-none"
|
|
style="animation-duration: 0s"
|
|
>
|
|
<div class="text-muted-foreground text-sm">
|
|
Manage your AI models organized by provider groups. Configure
|
|
API keys, and organize models by provider groups.
|
|
</div>
|
|
<div class="space-y-4">
|
|
<div
|
|
data-slot="skeleton"
|
|
class="bg-accent h-[60px] w-full animate-pulse rounded-md"
|
|
></div>
|
|
<div
|
|
data-slot="skeleton"
|
|
class="bg-accent h-[400px] w-full animate-pulse rounded-md"
|
|
></div>
|
|
</div>
|
|
</div>
|
|
<div
|
|
data-state="inactive"
|
|
data-orientation="horizontal"
|
|
role="tabpanel"
|
|
aria-labelledby="radix-«Rl3rbb»-trigger-test-basic"
|
|
hidden=""
|
|
id="radix-«Rl3rbb»-content-test-basic"
|
|
tabindex="0"
|
|
data-slot="tabs-content"
|
|
class="flex-1 space-y-4 outline-none"
|
|
></div>
|
|
<div
|
|
data-state="inactive"
|
|
data-orientation="horizontal"
|
|
role="tabpanel"
|
|
aria-labelledby="radix-«Rl3rbb»-trigger-test-api"
|
|
hidden=""
|
|
id="radix-«Rl3rbb»-content-test-api"
|
|
tabindex="0"
|
|
data-slot="tabs-content"
|
|
class="flex-1 space-y-4 outline-none"
|
|
></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
<!--$--><!--/$--><!--$--><!--/$-->
|
|
<section
|
|
aria-label="Notifications alt+T"
|
|
tabindex="-1"
|
|
aria-live="polite"
|
|
aria-relevant="additions text"
|
|
aria-atomic="false"
|
|
></section>
|
|
<script
|
|
src="/_next/static/chunks/webpack-a88517f6dce11b25.js"
|
|
async=""
|
|
></script>
|
|
<script>
|
|
(self.__next_f = self.__next_f || []).push([0]);
|
|
</script>
|
|
<script>
|
|
self.__next_f.push([
|
|
1,
|
|
'1:"$Sreact.fragment"\n2:I[5414,["363","static/chunks/363-119b32fca35baa33.js","29","static/chunks/29-e3557fb1dd82bdc3.js","578","static/chunks/578-9e08cd45b1eda688.js","177","static/chunks/app/layout-1e4148ea2d359141.js"],"Providers"]\n3:I[8754,[],""]\n4:I[768,[],""]\n5:I[3971,[],"ClientPageRoot"]\n6:I[3119,["363","static/chunks/363-119b32fca35baa33.js","222","static/chunks/222-4bb848975c01d467.js","230","static/chunks/230-c1944b44cc70d7f6.js","29","static/chunks/29-e3557fb1dd82bdc3.js","730","static/chunks/730-892209af1fa345bd.js","978","static/chunks/978-cd938190a9f5efa7.js","481","static/chunks/481-48cd0f8fe547e418.js","982","static/chunks/982-5588ad0e30e6255e.js","552","static/chunks/552-841e72e83992f2f1.js","236","static/chunks/236-7aedbfc1345ecc2c.js","255","static/chunks/255-a44a63a7b4273784.js","329","static/chunks/app/models/page-fc2b83cb8d074990.js"],"default"]\n9:I[4826,[],"MetadataBoundary"]\nb:I[4826,[],"OutletBoundary"]\ne:I[394,[],"AsyncMetadataOutlet"]\n10:I[4826,[],"ViewportBoundary"]\n12:I[6613,[],""]\n:HL["/_next/static/media/4cf2300e9c8272f7-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]\n:HL["/_next/static/media/93f479601ee12b01-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]\n:HL["/_next/static/css/de70bee13400563f.css","style"]\n:HL["/_next/static/css/1ff89cf1c6e3d515.css","style"]\n',
|
|
]);
|
|
</script>
|
|
<script>
|
|
self.__next_f.push([
|
|
1,
|
|
'0:{"P":null,"b":"jGcbc9JLLod6sGrLDlUSi","p":"","c":["","models",""],"i":false,"f":[[["",{"children":["models",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/de70bee13400563f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/1ff89cf1c6e3d515.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"__variable_188709 __variable_9a8899 antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\\"Segoe UI\\",Roboto,Helvetica,Arial,sans-serif,\\"Apple Color Emoji\\",\\"Segoe UI Emoji\\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":["models",["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","searchParams":{},"params":{},"promises":["$@7","$@8"]}],["$","$L9",null,{"children":"$La"}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","JETg4H9fotw80fo_O_bWr",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],null]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}\n',
|
|
]);
|
|
</script>
|
|
<script>
|
|
self.__next_f.push([
|
|
1,
|
|
'13:"$Sreact.suspense"\n14:I[394,[],"AsyncMetadata"]\n7:{}\n8:{}\na:["$","$13",null,{"fallback":null,"children":["$","$L14",null,{"promise":"$@15"}]}]\n',
|
|
]);
|
|
</script>
|
|
<script>
|
|
self.__next_f.push([1, 'd:null\n']);
|
|
</script>
|
|
<script>
|
|
self.__next_f.push([
|
|
1,
|
|
'11:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]\nc:null\n',
|
|
]);
|
|
</script>
|
|
<script>
|
|
self.__next_f.push([
|
|
1,
|
|
'15:{"metadata":[["$","title","0",{"children":"Routstr"}],["$","meta","1",{"name":"description","content":"Routstr model management"}],["$","link","2",{"rel":"icon","href":"/favicon.ico","type":"image/x-icon","sizes":"16x16"}]],"error":null,"digest":"$undefined"}\nf:{"metadata":"$15:metadata","error":null,"digest":"$undefined"}\n',
|
|
]);
|
|
</script>
|
|
</body>
|
|
</html>
|