Files
routstr-core/ui/out/models/index.html
T
2025-10-24 15:22:58 +02:00

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 [&amp;&gt;span:last-child]:truncate [&amp;&gt;svg]:size-4 [&amp;&gt;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 [&amp;&gt;span:last-child]:truncate [&amp;&gt;svg]:size-4 [&amp;&gt;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 [&amp;&gt;span:last-child]:truncate [&amp;&gt;svg]:size-4 [&amp;&gt;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 [&amp;&gt;span:last-child]:truncate [&amp;&gt;svg]:size-4 [&amp;&gt;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 [&amp;&gt;span:last-child]:truncate [&amp;&gt;svg]:size-4 [&amp;&gt;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="[&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 [&amp;_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="[&amp;_svg]:pointer-events-none [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 [&amp;_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-[&gt;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 &amp; 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 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]: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>