aigetwey 1.4.0 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dashboard/.next/BUILD_ID +1 -1
- package/dashboard/.next/build-manifest.json +3 -3
- package/dashboard/.next/diagnostics/route-bundle-stats.json +4 -4
- package/dashboard/.next/fallback-build-manifest.json +3 -3
- package/dashboard/.next/server/app/(console)/providers/[id]/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/(console)/providers/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/server/app/_global-error.html +1 -1
- package/dashboard/.next/server/app/_global-error.rsc +1 -1
- package/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/server/app/_not-found.html +1 -1
- package/dashboard/.next/server/app/_not-found.rsc +1 -1
- package/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/server/app/combos.html +1 -1
- package/dashboard/.next/server/app/combos.rsc +1 -1
- package/dashboard/.next/server/app/combos.segments/!KGNvbnNvbGUp/combos/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/server/app/combos.segments/!KGNvbnNvbGUp/combos.segment.rsc +1 -1
- package/dashboard/.next/server/app/combos.segments/!KGNvbnNvbGUp.segment.rsc +1 -1
- package/dashboard/.next/server/app/combos.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/server/app/combos.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/combos.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/server/app/combos.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/server/app/config.html +1 -1
- package/dashboard/.next/server/app/config.rsc +1 -1
- package/dashboard/.next/server/app/config.segments/!KGNvbnNvbGUp/config/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/server/app/config.segments/!KGNvbnNvbGUp/config.segment.rsc +1 -1
- package/dashboard/.next/server/app/config.segments/!KGNvbnNvbGUp.segment.rsc +1 -1
- package/dashboard/.next/server/app/config.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/server/app/config.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/config.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/server/app/config.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/server/app/console.html +1 -1
- package/dashboard/.next/server/app/console.rsc +1 -1
- package/dashboard/.next/server/app/console.segments/!KGNvbnNvbGUp/console/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/server/app/console.segments/!KGNvbnNvbGUp/console.segment.rsc +1 -1
- package/dashboard/.next/server/app/console.segments/!KGNvbnNvbGUp.segment.rsc +1 -1
- package/dashboard/.next/server/app/console.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/server/app/console.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/console.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/server/app/console.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/server/app/endpoint.html +1 -1
- package/dashboard/.next/server/app/endpoint.rsc +1 -1
- package/dashboard/.next/server/app/endpoint.segments/!KGNvbnNvbGUp/endpoint/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/server/app/endpoint.segments/!KGNvbnNvbGUp/endpoint.segment.rsc +1 -1
- package/dashboard/.next/server/app/endpoint.segments/!KGNvbnNvbGUp.segment.rsc +1 -1
- package/dashboard/.next/server/app/endpoint.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/server/app/endpoint.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/endpoint.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/server/app/endpoint.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/server/app/index.html +1 -1
- package/dashboard/.next/server/app/index.rsc +1 -1
- package/dashboard/.next/server/app/index.segments/!KGNvbnNvbGUp/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/server/app/index.segments/!KGNvbnNvbGUp.segment.rsc +1 -1
- package/dashboard/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/server/app/keys.html +1 -1
- package/dashboard/.next/server/app/keys.rsc +1 -1
- package/dashboard/.next/server/app/keys.segments/!KGNvbnNvbGUp/keys/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/server/app/keys.segments/!KGNvbnNvbGUp/keys.segment.rsc +1 -1
- package/dashboard/.next/server/app/keys.segments/!KGNvbnNvbGUp.segment.rsc +1 -1
- package/dashboard/.next/server/app/keys.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/server/app/keys.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/keys.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/server/app/keys.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/server/app/login.html +1 -1
- package/dashboard/.next/server/app/login.rsc +1 -1
- package/dashboard/.next/server/app/login.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/login.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/dashboard/.next/server/app/providers.html +1 -1
- package/dashboard/.next/server/app/providers.rsc +2 -2
- package/dashboard/.next/server/app/providers.segments/!KGNvbnNvbGUp/providers/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/server/app/providers.segments/!KGNvbnNvbGUp/providers.segment.rsc +1 -1
- package/dashboard/.next/server/app/providers.segments/!KGNvbnNvbGUp.segment.rsc +1 -1
- package/dashboard/.next/server/app/providers.segments/_full.segment.rsc +2 -2
- package/dashboard/.next/server/app/providers.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/providers.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/server/app/providers.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/server/app/quota.html +1 -1
- package/dashboard/.next/server/app/quota.rsc +1 -1
- package/dashboard/.next/server/app/quota.segments/!KGNvbnNvbGUp/quota/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/server/app/quota.segments/!KGNvbnNvbGUp/quota.segment.rsc +1 -1
- package/dashboard/.next/server/app/quota.segments/!KGNvbnNvbGUp.segment.rsc +1 -1
- package/dashboard/.next/server/app/quota.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/server/app/quota.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/quota.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/server/app/quota.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/server/app/tools.html +1 -1
- package/dashboard/.next/server/app/tools.rsc +1 -1
- package/dashboard/.next/server/app/tools.segments/!KGNvbnNvbGUp/tools/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/server/app/tools.segments/!KGNvbnNvbGUp/tools.segment.rsc +1 -1
- package/dashboard/.next/server/app/tools.segments/!KGNvbnNvbGUp.segment.rsc +1 -1
- package/dashboard/.next/server/app/tools.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/server/app/tools.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/server/app/tools.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/server/app/tools.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/server/chunks/[root-of-the-server]__07euc03._.js.map +1 -1
- package/dashboard/.next/server/chunks/[root-of-the-server]__0uqpr_c._.js.map +1 -1
- package/dashboard/.next/server/chunks/ssr/_0p90gyy._.js.map +1 -1
- package/dashboard/.next/server/chunks/ssr/_1mumvwn._.js.map +1 -1
- package/dashboard/.next/server/chunks/ssr/src_components_ProviderDetail_tsx_06sxu0r._.js +1 -1
- package/dashboard/.next/server/chunks/ssr/src_components_ProviderDetail_tsx_06sxu0r._.js.map +1 -1
- package/dashboard/.next/server/chunks/ssr/src_components_ProviderManager_tsx_09d2dzw._.js +1 -1
- package/dashboard/.next/server/chunks/ssr/src_components_ProviderManager_tsx_09d2dzw._.js.map +1 -1
- package/dashboard/.next/server/middleware-build-manifest.js +3 -3
- package/dashboard/.next/server/pages/404.html +1 -1
- package/dashboard/.next/server/pages/500.html +1 -1
- package/dashboard/.next/static/chunks/{0pf-u__m67vld.js → 03xhjt1ta90pp.js} +1 -1
- package/dashboard/.next/static/chunks/{3y0b8yet0vgwr.js → 15d148buj9byd.js} +1 -1
- package/dashboard/.next/trace +1 -1
- package/dashboard/.next/trace-build +1 -1
- package/dashboard/src/components/ProviderDetail.tsx +10 -5
- package/dashboard/src/components/ProviderManager.tsx +7 -3
- package/dashboard/src/lib/client.ts +1 -0
- package/dashboard/src/lib/gateway.ts +2 -1
- package/dist/cli.js +10 -4
- package/dist/cli.js.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/headroom/process.js +22 -6
- package/dist/headroom/process.js.map +1 -1
- package/dist/routes/admin.js +1 -0
- package/dist/routes/admin.js.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +8 -4
- package/src/config.ts +2 -0
- package/src/headroom/process.ts +19 -5
- package/src/routes/admin.ts +2 -0
- /package/dashboard/.next/static/{WxqdtupTIrBh47rvaXxLB → jKcczqYA93-Kuqa9A9H9h}/_buildManifest.js +0 -0
- /package/dashboard/.next/static/{WxqdtupTIrBh47rvaXxLB → jKcczqYA93-Kuqa9A9H9h}/_clientMiddlewareManifest.js +0 -0
- /package/dashboard/.next/static/{WxqdtupTIrBh47rvaXxLB → jKcczqYA93-Kuqa9A9H9h}/_ssgManifest.js +0 -0
|
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
|
|
|
7
7
|
"static/chunks/0cz1d0mv5g_q7.js"
|
|
8
8
|
],
|
|
9
9
|
"lowPriorityFiles": [
|
|
10
|
-
"static/
|
|
11
|
-
"static/
|
|
12
|
-
"static/
|
|
10
|
+
"static/jKcczqYA93-Kuqa9A9H9h/_buildManifest.js",
|
|
11
|
+
"static/jKcczqYA93-Kuqa9A9H9h/_ssgManifest.js",
|
|
12
|
+
"static/jKcczqYA93-Kuqa9A9H9h/_clientMiddlewareManifest.js"
|
|
13
13
|
],
|
|
14
14
|
"rootMainFiles": [
|
|
15
15
|
"static/chunks/36ssnkm0cjgq6.js",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="dark inter_c15e96cb-module__0bjUvq__variable jetbrains_mono_7ea1d0f9-module__6GV5LG__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0iv69e64f1ywa.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/36ssnkm0cjgq6.js"/><script src="/_next/static/chunks/3jat3x6f_2a6o.js" async=""></script><script src="/_next/static/chunks/3j9pm5otqxm82.js" async=""></script><script src="/_next/static/chunks/0mk1g55o6kl1e.js" async=""></script><script src="/_next/static/chunks/27jktro2p5rq9.js" async=""></script><script src="/_next/static/chunks/turbopack-28-wpvvyttgwq.js" async=""></script><script src="/_next/static/chunks/13ge_ybuj8rl3.js" async=""></script><script src="/_next/static/chunks/14mrh2-p_w84d.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0&display=block" as="style"/><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>aigetwey</title><meta name="description" content="Console for the aigetwey AI gateway"/><link rel="icon" href="/icon.svg?icon.43yv9zw_mes0x.svg" sizes="any" type="image/svg+xml"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0&display=block"/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"try{var t=localStorage.getItem(\"theme\");if(t===\"light\")document.documentElement.className=document.documentElement.className.replace(\"dark\",\"light\")}catch(e){}","id":"theme-init"}])</script><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><div class="fixed bottom-5 right-5 z-[100] flex flex-col gap-2"></div><script src="/_next/static/chunks/36ssnkm0cjgq6.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[79520,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"\"]\n3:I[59919,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ThemeProvider\"]\n4:I[76972,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ToastProvider\"]\n5:I[39756,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n6:I[37457,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n7:I[97367,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\nb:I[97367,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ViewportBoundary\"]\nd:I[97367,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"MetadataBoundary\"]\nf:I[68027,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0iv69e64f1ywa.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\u0026display=block\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0iv69e64f1ywa.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/14mrh2-p_w84d.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark inter_c15e96cb-module__0bjUvq__variable jetbrains_mono_7ea1d0f9-module__6GV5LG__variable\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"stylesheet\",\"href\":\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\u0026display=block\"}],[\"$\",\"$L2\",null,{\"id\":\"theme-init\",\"strategy\":\"beforeInteractive\",\"children\":\"try{var t=localStorage.getItem(\\\"theme\\\");if(t===\\\"light\\\")document.documentElement.className=document.documentElement.className.replace(\\\"dark\\\",\\\"light\\\")}catch(e){}\"}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",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\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"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\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null]},null,false,\"$@a\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0iv69e64f1ywa.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"WxqdtupTIrBh47rvaXxLB\"}\n"])</script><script>self.__next_f.push([1,"10:[]\na:\"$W10\"\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"11:I[27201,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"IconMark\"]\n9:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"aigetwey\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Console for the aigetwey AI gateway\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.svg?icon.43yv9zw_mes0x.svg\",\"sizes\":\"any\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L11\",\"3\",{}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="dark inter_c15e96cb-module__0bjUvq__variable jetbrains_mono_7ea1d0f9-module__6GV5LG__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0iv69e64f1ywa.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/36ssnkm0cjgq6.js"/><script src="/_next/static/chunks/3jat3x6f_2a6o.js" async=""></script><script src="/_next/static/chunks/3j9pm5otqxm82.js" async=""></script><script src="/_next/static/chunks/0mk1g55o6kl1e.js" async=""></script><script src="/_next/static/chunks/27jktro2p5rq9.js" async=""></script><script src="/_next/static/chunks/turbopack-28-wpvvyttgwq.js" async=""></script><script src="/_next/static/chunks/13ge_ybuj8rl3.js" async=""></script><script src="/_next/static/chunks/14mrh2-p_w84d.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0&display=block" as="style"/><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>aigetwey</title><meta name="description" content="Console for the aigetwey AI gateway"/><link rel="icon" href="/icon.svg?icon.43yv9zw_mes0x.svg" sizes="any" type="image/svg+xml"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0&display=block"/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"try{var t=localStorage.getItem(\"theme\");if(t===\"light\")document.documentElement.className=document.documentElement.className.replace(\"dark\",\"light\")}catch(e){}","id":"theme-init"}])</script><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><div class="fixed bottom-5 right-5 z-[100] flex flex-col gap-2"></div><script src="/_next/static/chunks/36ssnkm0cjgq6.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[79520,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"\"]\n3:I[59919,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ThemeProvider\"]\n4:I[76972,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ToastProvider\"]\n5:I[39756,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n6:I[37457,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n7:I[97367,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\nb:I[97367,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ViewportBoundary\"]\nd:I[97367,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"MetadataBoundary\"]\nf:I[68027,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0iv69e64f1ywa.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\u0026display=block\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0iv69e64f1ywa.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/14mrh2-p_w84d.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark inter_c15e96cb-module__0bjUvq__variable jetbrains_mono_7ea1d0f9-module__6GV5LG__variable\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"stylesheet\",\"href\":\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\u0026display=block\"}],[\"$\",\"$L2\",null,{\"id\":\"theme-init\",\"strategy\":\"beforeInteractive\",\"children\":\"try{var t=localStorage.getItem(\\\"theme\\\");if(t===\\\"light\\\")document.documentElement.className=document.documentElement.className.replace(\\\"dark\\\",\\\"light\\\")}catch(e){}\"}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",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\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"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\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null]},null,false,\"$@a\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0iv69e64f1ywa.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"jKcczqYA93-Kuqa9A9H9h\"}\n"])</script><script>self.__next_f.push([1,"10:[]\na:\"$W10\"\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"11:I[27201,[\"/_next/static/chunks/13ge_ybuj8rl3.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"IconMark\"]\n9:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"aigetwey\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Console for the aigetwey AI gateway\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.svg?icon.43yv9zw_mes0x.svg\",\"sizes\":\"any\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L11\",\"3\",{}]]\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/36ssnkm0cjgq6.js"/><script src="/_next/static/chunks/3jat3x6f_2a6o.js" async=""></script><script src="/_next/static/chunks/3j9pm5otqxm82.js" async=""></script><script src="/_next/static/chunks/0mk1g55o6kl1e.js" async=""></script><script src="/_next/static/chunks/27jktro2p5rq9.js" async=""></script><script src="/_next/static/chunks/turbopack-28-wpvvyttgwq.js" async=""></script><script src="/_next/static/chunks/05-c3ty_6dwfk.js" async=""></script><script src="/_next/static/chunks/14mrh2-p_w84d.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/36ssnkm0cjgq6.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"
|
|
1
|
+
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/36ssnkm0cjgq6.js"/><script src="/_next/static/chunks/3jat3x6f_2a6o.js" async=""></script><script src="/_next/static/chunks/3j9pm5otqxm82.js" async=""></script><script src="/_next/static/chunks/0mk1g55o6kl1e.js" async=""></script><script src="/_next/static/chunks/27jktro2p5rq9.js" async=""></script><script src="/_next/static/chunks/turbopack-28-wpvvyttgwq.js" async=""></script><script src="/_next/static/chunks/05-c3ty_6dwfk.js" async=""></script><script src="/_next/static/chunks/14mrh2-p_w84d.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/36ssnkm0cjgq6.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"jKcczqYA93-Kuqa9A9H9h\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,49080,e=>{"use strict";var t=e.i(43476);e.s(["Lamp",0,function({state:e,title:n}){return(0,t.jsx)("span",{className:`lamp lamp-${e}`,title:n,"aria-label":e})}])},38286,e=>{"use strict";var t=e.i(43476);e.s(["Empty",0,function({children:e}){return(0,t.jsx)("div",{className:"px-1 py-8 text-center text-[13px] text-text-muted",children:e})},"Stat",0,function({label:e,value:n,sub:a}){return(0,t.jsxs)("div",{className:"rounded-brand-lg border border-border bg-surface px-4 py-3.5 shadow-soft",children:[(0,t.jsx)("div",{className:"text-[11px] font-medium uppercase tracking-wider text-text-subtle",children:e}),(0,t.jsx)("div",{className:"mt-1 tnum text-[22px] font-semibold tracking-tight text-text",children:n}),a&&(0,t.jsx)("div",{className:"mt-0.5 text-[12px] text-text-muted",children:a})]})},"fmt",0,{int:e=>e.toLocaleString("en-US"),compact:e=>Math.abs(e)>=1e6?`${(e/1e6).toFixed(1)}M`:Math.abs(e)>=1e3?`${(e/1e3).toFixed(1)}K`:String(Math.round(e)),cost:e=>0===e?"$0":e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`,time:e=>new Date(e).toLocaleString("en-US",{hour12:!1}),date(e){let t=new Date(e);return`${String(t.getDate()).padStart(2,"0")}/${String(t.getMonth()+1).padStart(2,"0")}/${t.getFullYear()}`},ago(e){let t=Math.max(0,Math.round((Date.now()-e)/1e3));return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m`:t<86400?`${Math.floor(t/3600)}h`:`${Math.floor(t/86400)}d`},duration(e){let t=Math.max(0,Math.round(e/1e3));if(t<60)return`${t}s`;if(t<3600)return`${Math.floor(t/60)}m ${t%60}s`;let n=Math.floor(t/3600),a=Math.floor(t%3600/60);if(n<24)return`${n}h ${a}m`;let i=Math.floor(n/24);return`${i}d ${n%24}h`}}])},81189,e=>{"use strict";var t=e.i(43476);let n={live:"bg-success/12 text-success",down:"bg-danger/12 text-danger",danger:"bg-danger/12 text-danger",warn:"bg-warning/12 text-warning",info:"bg-info/12 text-info",neutral:"bg-surface-2 text-text-muted"};function a({tone:e="neutral",children:i,className:s}){return(0,t.jsx)("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-medium ${n[e]}${s?` ${s}`:""}`,children:i})}e.s(["Badge",0,a,"FormatBadge",0,function({format:e}){return(0,t.jsx)(a,{tone:"info",children:e})}])},69163,e=>{"use strict";var t=e.i(43476);e.s(["CardTitle",0,function({title:e,sub:n,icon:a}){return(0,t.jsxs)("div",{className:"flex items-center gap-2.5 min-w-0",children:[a,(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"truncate text-[14px] font-semibold tracking-tight text-text",children:e}),n&&(0,t.jsx)("div",{className:"truncate text-[12px] text-text-muted",children:n})]})]})},"RichCard",0,function({header:e,footer:n,children:a,className:i}){return(0,t.jsxs)("section",{className:`overflow-hidden rounded-brand-lg border border-border bg-surface shadow-soft${i?` ${i}`:""}`,children:[e&&(0,t.jsx)("header",{className:"flex items-center justify-between gap-3 border-b border-border-subtle px-4 py-3",children:e}),(0,t.jsx)("div",{className:"p-4",children:a}),n&&(0,t.jsx)("footer",{className:"flex items-center justify-between gap-3 border-t border-border-subtle bg-bg-alt px-4 py-2.5",children:n})]})}])},53854,45570,e=>{"use strict";var t=e.i(43476);function n(e,t){return RegExp("^"+e.split("*").map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i").test(t)}let a={vision:!1,pdf:!1,audioInput:!1,videoInput:!1,imageOutput:!1,audioOutput:!1,search:!1,tools:!0,reasoning:!1,thinkingFormat:null,thinkingCanDisable:!0,thinkingRange:null,contextWindow:2e5,maxOutput:64e3},i={"claude-opus-4.6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.7":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4.6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:64e3},"claude-sonnet-4-6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:64e3},"gpt-image-1":{imageOutput:!0,tools:!1},"glm-4.6v":{vision:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:128e3},"vision-model":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"coder-model":{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},s={"codebuddy-cn":{"glm-5.2":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:48e3},"glm-5.1":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"glm-5.0-turbo":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5v-turbo":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:38e3},"glm-4.7":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:48e3},"minimax-m2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"kimi-k2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.6":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.5":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:164e3,maxOutput:32e3},"hy3-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"deepseek-v4-pro":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v4-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v3-2-volc":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:96e3,maxOutput:32e3}}},o=[{pattern:"*claude*opus-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.8*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*haiku*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*sonnet*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*fable*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*mythos*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude-3*",caps:{vision:!0}},{pattern:"*claude*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*gemini*image*",caps:{vision:!0,imageOutput:!0,contextWindow:1048576}},{pattern:"*gemini-3*pro*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65535}},{pattern:"*gemini-3*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-budget",thinkingRange:{min:0,max:24576},contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2*",caps:{vision:!0,audioInput:!0,videoInput:!0,search:!0,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini*",caps:{vision:!0,search:!0,contextWindow:1048576}},{pattern:"*gemma*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*nanobanana*",caps:{vision:!0,imageOutput:!0}},{pattern:"*gpt-5*image*",caps:{imageOutput:!0}},{pattern:"*gpt-5*codex*",caps:{reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-4o*",caps:{vision:!0,search:!0,contextWindow:128e3,maxOutput:16384}},{pattern:"*gpt-4.1*",caps:{vision:!0,contextWindow:1e6,maxOutput:32768}},{pattern:"*gpt-4-turbo*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*gpt-4*",caps:{contextWindow:128e3}},{pattern:"*gpt-3.5*",caps:{contextWindow:16385,maxOutput:4096}},{pattern:"*gpt-oss*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1-mini*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o4*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*grok*image*",caps:{imageOutput:!0}},{pattern:"*grok-code*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-3*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:131072}},{pattern:"*grok*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*qwen*vl*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*max*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*plus*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*235b*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*coder*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},{pattern:"*qwq*",caps:{reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:131072}},{pattern:"*qwen*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*kimi*k2.7*code*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*k2*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*",caps:{reasoning:!0,thinkingFormat:"kimi",contextWindow:262144}},{pattern:"*glm-5*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4.7*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*glm*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*deepseek-v4*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},{pattern:"*reasoner*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-r*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-chat*",caps:{contextWindow:128e3}},{pattern:"*deepseek*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3}},{pattern:"*minimax*image*",caps:{imageOutput:!0}},{pattern:"*minimax-m3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",contextWindow:1048576,maxOutput:512e3}},{pattern:"*minimax-m2.7*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072}},{pattern:"*mimo*v2.5*",caps:{vision:!0,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*omni*",caps:{vision:!0,audioInput:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*mimo*",caps:{vision:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*llama-4*",caps:{vision:!0,contextWindow:1e6}},{pattern:"*llama*",caps:{contextWindow:128e3}},{pattern:"*codestral*",caps:{contextWindow:256e3}},{pattern:"*mistral-large*",caps:{vision:!0,contextWindow:256e3}},{pattern:"*mistral*",caps:{contextWindow:128e3}},{pattern:"*command-a-vision*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*command*",caps:{contextWindow:128e3}},{pattern:"*sonar*",caps:{search:!0,contextWindow:128e3}},{pattern:"*pplx*",caps:{search:!0,contextWindow:128e3}},{pattern:"*perplexity*",caps:{search:!0,contextWindow:128e3}},{pattern:"*hunyuan*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"hy3*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"*step-*",caps:{reasoning:!0,thinkingFormat:"step",contextWindow:128e3}},{pattern:"*nemotron*",caps:{reasoning:!0,contextWindow:128e3}},{pattern:"*ling-*",caps:{reasoning:!0,contextWindow:128e3}}];function r(e,t){if(!t)return{...a};if(e&&s[e]?.[t])return{...a,...s[e][t]};let r=(t.includes("/")?t.split("/").pop():t)??t;if(i[r])return{...a,...i[r]};if(i[t])return{...a,...i[t]};for(let{pattern:e,caps:i}of o)if(n(e,r)||n(e,t))return{...a,...i};return{...a}}e.s(["getCapabilitiesForModel",0,r,"modalitiesForModel",0,function(e){let t=e.indexOf("/"),n=r(t>0?e.slice(0,t):null,t>0?e.slice(t+1):e),a=["text"];n.vision&&a.push("image"),n.pdf&&a.push("pdf"),n.audioInput&&a.push("audio"),n.videoInput&&a.push("video");let i=["text"];return n.imageOutput&&i.push("image"),n.audioOutput&&i.push("audio"),{input:a,output:i}}],45570);var l=e.i(51514);let d={vision:{icon:"visibility",label:"Vision",desc:"Supports image input",color:"text-info"},reasoning:{icon:"neurology",label:"Reasoning",desc:"Supports reasoning / thinking",color:"text-warning"}};e.s(["CapacityBadges",0,function({model:e,provider:n=null,size:a=15,className:i=""}){let s=r(n,e),o=Object.keys(d).filter(e=>s[e]);return 0===o.length?null:(0,t.jsx)("span",{className:`inline-flex flex-none items-center gap-0.5 ${i}`,children:o.map(e=>(0,t.jsx)("span",{title:`${d[e].label} — ${d[e].desc}`,className:"leading-none",children:(0,t.jsx)(l.Icon,{name:d[e].icon,size:a,className:d[e].color})},e))})}],53854)},98111,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(51514),i=e.i(38286);e.s(["CooldownTimer",0,function({ms:e,tone:s="danger",icon:o="timer",keepZero:r=!1}){let[l]=(0,n.useState)(()=>Date.now()+e),[d,c]=(0,n.useState)(()=>Math.max(0,e));return((0,n.useEffect)(()=>{let e=()=>c(Math.max(0,l-Date.now()));e();let t=setInterval(e,1e3);return()=>clearInterval(t)},[l]),d<=0&&!r)?null:(0,t.jsxs)("span",{className:`inline-flex items-center gap-1 tnum text-[12px] ${"danger"===s?"text-danger":"text-text-muted"}`,children:[(0,t.jsx)(a.Icon,{name:o,size:13}),d<=0?"now":i.fmt.duration(d)]})}])},97793,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(18566),i=e.i(29481),s=e.i(49080),o=e.i(81189),r=e.i(98111),l=e.i(69163),d=e.i(10007),c=e.i(51514),x=e.i(38286);function p({checked:e,indeterminate:n,onChange:a,className:i,ariaLabel:s}){let o=e||n;return(0,t.jsx)("button",{type:"button",role:"checkbox","aria-checked":n?"mixed":e,"aria-label":s,onClick:e=>{e.stopPropagation(),a()},className:`flex h-[18px] w-[18px] flex-none items-center justify-center rounded-[5px] border transition-colors ${o?"border-accent bg-accent text-accent-ink":"border-border bg-bg text-transparent hover:border-text-subtle"}${i?` ${i}`:""}`,children:(0,t.jsx)(c.Icon,{name:n?"remove":"check",size:13})})}function m({models:e,busy:a,onAdd:i,onClose:s}){let[o,r]=(0,n.useState)(""),[l,x]=(0,n.useState)(()=>new Set(e.filter(e=>!e.added).map(e=>e.id))),u=(0,n.useMemo)(()=>{let t=o.trim().toLowerCase();return t?e.filter(e=>e.id.toLowerCase().includes(t)):e},[e,o]);function g(e){x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}let h=u.filter(e=>l.has(e.id)).length,b=u.length>0&&h===u.length;function v(){x(e=>{let t=new Set(e);return b?u.forEach(e=>t.delete(e.id)):u.forEach(e=>t.add(e.id)),t})}return(0,t.jsx)("div",{className:"fixed inset-0 z-50 grid place-items-center bg-black/50 p-6",onClick:s,children:(0,t.jsxs)("div",{className:"flex max-h-[80vh] w-full max-w-[480px] flex-col overflow-hidden rounded-brand-lg border border-border bg-surface shadow-elevated",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("header",{className:"flex items-center justify-between border-b border-border-subtle px-4 py-3",children:[(0,t.jsxs)("span",{className:"text-[14px] font-semibold text-text",children:[e.length," models found"]}),(0,t.jsx)("button",{onClick:s,className:"text-text-subtle hover:text-text","aria-label":"Close",children:(0,t.jsx)(c.Icon,{name:"close",size:18})})]}),(0,t.jsx)("div",{className:"border-b border-border-subtle px-4 py-2.5",children:(0,t.jsx)(d.Input,{value:o,onChange:e=>r(e.target.value),placeholder:"filter…",autoFocus:!0})}),u.length>0&&(0,t.jsxs)("button",{onClick:v,className:"flex items-center gap-2.5 border-b border-border-subtle px-4 py-2 text-left hover:bg-surface-2",children:[(0,t.jsx)(p,{checked:b,indeterminate:h>0&&!b,onChange:v,ariaLabel:"Select all"}),(0,t.jsxs)("span",{className:"text-[12.5px] font-medium text-text",children:["Select all",o?" (filtered)":""]}),(0,t.jsxs)("span",{className:"ml-auto tnum text-[11px] text-text-subtle",children:[h,"/",u.length]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto px-2 py-2",children:0===u.length?(0,t.jsx)("div",{className:"px-2 py-6 text-center text-[13px] text-text-muted",children:"No matches."}):u.map(e=>{let n=l.has(e.id);return(0,t.jsxs)("button",{onClick:()=>g(e.id),className:`flex w-full items-center gap-2.5 rounded-brand border px-2.5 py-2 text-left transition-colors ${n?"border-accent/40 bg-accent-soft":"border-transparent hover:bg-surface-2"}`,children:[(0,t.jsx)(p,{checked:n,onChange:()=>g(e.id),ariaLabel:e.id}),(0,t.jsx)("span",{className:"flex-1 truncate text-[12.5px] text-text",children:e.id}),e.added&&(0,t.jsx)("span",{className:"text-[11px] text-text-subtle",children:"in catalog"})]},e.id)})}),(0,t.jsxs)("footer",{className:"flex items-center justify-between gap-3 border-t border-border-subtle bg-bg-alt px-4 py-2.5",children:[(0,t.jsxs)("span",{className:"tnum text-[12px] text-text-muted",children:[l.size," selected"]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(d.Button,{variant:"ghost",onClick:s,children:"Cancel"}),(0,t.jsx)(d.Button,{disabled:0===l.size||a,onClick:()=>i([...l]),children:a?"Adding…":`Add ${l.size}`})]})]})]})})}var u=e.i(53854),g=e.i(13135);function h({k:e,v:n}){return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)("span",{className:"text-text-subtle",children:e}),(0,t.jsx)("span",{className:"truncate text-text",children:n})]})}e.s(["ProviderDetail",0,function({id:e}){let p=(0,a.useRouter)(),[b,v]=(0,n.useState)(null),[k,f]=(0,n.useState)(null),[w,j]=(0,n.useState)(""),[y,N]=(0,n.useState)(null),[C,F]=(0,n.useState)(""),[W,$]=(0,n.useState)(""),[O,S]=(0,n.useState)(""),[I,_]=(0,n.useState)(null),[z,D]=(0,n.useState)(""),[M,A]=(0,n.useState)(""),[B,R]=(0,n.useState)(""),[T,L]=(0,n.useState)(""),[q,E]=(0,n.useState)(null),[P,K]=(0,n.useState)({}),[U,H]=(0,n.useState)({}),[V,Y]=(0,n.useState)(!1),[G,J]=(0,n.useState)(null),Q=(0,n.useRef)(!1),[X,Z]=(0,n.useState)(!1),[ee,et]=(0,n.useState)(""),[en,ea]=(0,n.useState)(""),[ei,es]=(0,n.useState)({}),[eo,er]=(0,n.useState)(!1);async function el(t){K(e=>({...e,[t]:"testing"}));let n=await i.adminApi.testModel(e,t);K(e=>({...e,[t]:n.ok&&n.data?.ok?"ok":"fail"}))}async function ed(t){H(e=>({...e,[t]:"testing"}));let n=await i.adminApi.testKey(e,t);H(e=>({...e,[t]:n.data??{ok:!1,reachable:!1,status:0,error:n.error}}))}async function ec(t){Q.current=!1,Y(!0),J(null),H({});let n=0,a=0;for(let s=0;s<t&&!Q.current;s++){H(e=>({...e,[s]:"testing"}));let o=await i.adminApi.testKey(e,s),r=o.data??{ok:!1,reachable:!1,status:0,error:o.error};H(e=>({...e,[s]:r})),r.ok?n++:a++,s<t-1&&!Q.current&&await new Promise(e=>setTimeout(e,500))}Y(!1),J({total:t,passed:n,failed:a})}let ex=(0,n.useCallback)(async()=>{let[t,n]=await Promise.all([fetch("/api/gw/admin/config"),i.adminApi.providers()]);if(!t.ok)return void j("could not reach the gateway");let a=(await t.json()).providers.find(t=>t.id===e)??null;a?(j(""),v(a),f(n.data?.providers.find(t=>t.id===e)??null)):j(`provider "${e}" not found`)},[e]);if((0,n.useEffect)(()=>{ex()},[ex]),w)return(0,t.jsx)(x.Empty,{children:w});if(!b)return(0,t.jsx)(x.Empty,{children:"Loading…"});let ep=b.api_keys??(b.api_key?[b.api_key]:[]),em=T.trim().toLowerCase(),eu=em?b.models.filter(e=>e.id.toLowerCase().includes(em)):b.models;async function eg(e,t){F(e);let n=await t();F(""),n.ok?(j(""),await ex()):j(n.error??"action failed")}return(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{onClick:()=>p.push("/providers"),className:"mb-4 inline-flex items-center gap-1 text-[12px] text-text-muted hover:text-text",children:[(0,t.jsx)(c.Icon,{name:"arrow_back",size:15})," Providers"]}),(0,t.jsxs)("div",{className:"mb-6 flex items-center gap-3",children:[(0,t.jsx)(s.Lamp,{state:b.disabled?"idle":k?.keys.some(e=>e.healthy)??!0?"live":"down"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-[22px] font-semibold tracking-tight text-text",children:b.name||b.id}),b.name&&(0,t.jsxs)("span",{className:"text-[12px] text-text-subtle",children:[b.id,"/"]})]}),(0,t.jsx)(o.FormatBadge,{format:b.format}),b.free&&(0,t.jsx)(o.Badge,{tone:"info",children:"free"}),b.service_account&&(0,t.jsx)(o.Badge,{tone:"info",children:"service-account"}),b.disabled&&(0,t.jsx)(o.Badge,{tone:"down",children:"disabled"})]}),(0,t.jsxs)("div",{className:`grid gap-4 lg:grid-cols-2 transition-opacity ${b.disabled?"opacity-50":""}`,children:[(0,t.jsx)(l.RichCard,{header:(0,t.jsx)(l.CardTitle,{title:"Connection"}),children:X?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(d.Field,{label:"Name",hint:"the id — also the call prefix (name/model) & combos",children:(0,t.jsx)(d.Input,{value:en,onChange:e=>ea(e.target.value),placeholder:"e.g. openai",className:"font-mono text-[12.5px]"})}),en.trim()&&en.trim()!==e&&(0,t.jsxs)("p",{className:"flex items-start gap-1.5 rounded-brand border border-warning/40 bg-warning/8 px-2.5 py-2 text-[11.5px] text-warning",children:[(0,t.jsx)(c.Icon,{name:"warning",size:14,className:"mt-0.5 flex-none"}),(0,t.jsxs)("span",{children:["Renaming rewrites the call string. CLI tools pointing at"," ",(0,t.jsxs)("code",{className:"tnum",children:[e,"/…"]})," will break until repointed; combos that target it are updated automatically."]})]}),(0,t.jsx)(d.Field,{label:"Base URL",children:(0,t.jsx)(d.Input,{value:ee,onChange:e=>et(e.target.value),placeholder:"https://...",className:"font-mono text-[12.5px]"})}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(d.Button,{variant:"ghost",onClick:()=>Z(!1),children:"Cancel"}),(0,t.jsx)(d.Button,{disabled:"editconn"===C,onClick:()=>eg("editconn",async()=>{let t=en.trim(),n=e;if(t&&t!==e){let a=await i.adminApi.renameProvider(e,t);if(!a.ok)return a;n=t}let a=await i.adminApi.editProvider(n,{base_url:ee.trim()||void 0});return a.ok&&(Z(!1),n!==e&&p.push(`/providers/${encodeURIComponent(n)}`)),a}),children:"Save"})]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"space-y-2 text-[13px]",children:[(0,t.jsx)(h,{k:"Base URL",v:b.base_url}),(0,t.jsx)(h,{k:"Format",v:b.format}),(0,t.jsx)(h,{k:"Cooldown base",v:`${b.cooldown_base_ms}ms`}),(0,t.jsx)(h,{k:"Max retries",v:String(b.max_retries)})]}),(0,t.jsxs)("div",{className:"mt-4 flex items-center gap-2",children:[(0,t.jsxs)(d.Button,{variant:"ghost",onClick:()=>{Z(!0),et(b.base_url),ea(b.id)},children:[(0,t.jsx)(c.Icon,{name:"edit",size:15})," Edit"]}),(0,t.jsxs)(d.Button,{variant:"ghost",disabled:"test"===C,onClick:()=>eg("test",async()=>{let t=await i.adminApi.testProvider(e);return t.ok&&N(t.data),t}),children:[(0,t.jsx)(c.Icon,{name:"wifi_tethering",size:16})," ","test"===C?"Testing…":"Test connection"]}),(0,t.jsxs)(d.Button,{variant:"ghost",disabled:"discover"===C,onClick:()=>eg("discover",async()=>{let t=await i.adminApi.discoverModels(e);return t.ok&&E(t.data?.models??[]),t}),children:[(0,t.jsx)(c.Icon,{name:"sync",size:16})," ","discover"===C?"Fetching…":"Fetch models"]})]}),y&&(0,t.jsxs)("div",{className:"mt-3 text-[12px]",children:[(0,t.jsx)(o.Badge,{tone:y.ok?"live":y.reachable?"warn":"down",children:y.ok?`ok (${y.status})`:y.reachable?`reachable (${y.status})`:"unreachable"}),y.error&&(0,t.jsx)("span",{className:"ml-2 text-text-subtle",children:y.error})]})]})}),(0,t.jsxs)(l.RichCard,{header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.CardTitle,{title:"Keys",sub:`${ep.length} configured`}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[ep.length>1&&(0,t.jsxs)(d.Button,{variant:"ghost",disabled:V,onClick:()=>ec(ep.length),children:[(0,t.jsx)(c.Icon,{name:V?"progress_activity":"sync",size:15}),V?"Testing…":"Test All"]}),V&&(0,t.jsxs)(d.Button,{variant:"ghost",onClick:()=>{Q.current=!0},children:[(0,t.jsx)(c.Icon,{name:"stop",size:15})," Stop"]}),(0,t.jsx)("span",{className:"text-[11px] text-text-subtle",children:"Round Robin"}),(0,t.jsx)("button",{onClick:()=>{let t="round-robin"===b.strategy?null:"round-robin";i.adminApi.setProviderStrategy(e,t,b.sticky??1).then(()=>ex())},className:`relative h-5 w-9 rounded-full transition-colors ${"round-robin"===b.strategy?"bg-accent":"bg-border-subtle"}`,"aria-label":"Toggle round-robin",children:(0,t.jsx)("span",{className:`absolute left-0.5 top-0.5 h-4 w-4 rounded-full bg-white transition-transform ${"round-robin"===b.strategy?"translate-x-[18px]":"translate-x-0"}`})}),"round-robin"===b.strategy&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"text-[11px] text-text-subtle",children:"Sticky:"}),(0,t.jsxs)("div",{className:"flex items-center rounded-brand border border-border-subtle",children:[(0,t.jsx)("button",{type:"button",disabled:(b.sticky??1)<=1,onClick:()=>void i.adminApi.setProviderStrategy(e,"round-robin",Math.max(1,(b.sticky??1)-1)).then(()=>ex()),className:"px-1.5 py-0.5 text-text-subtle transition-colors hover:text-text disabled:opacity-30","aria-label":"Decrease sticky",children:(0,t.jsx)(c.Icon,{name:"remove",size:13})}),(0,t.jsx)("span",{className:"tnum w-6 text-center text-[11px] text-text",children:b.sticky??1}),(0,t.jsx)("button",{type:"button",onClick:()=>void i.adminApi.setProviderStrategy(e,"round-robin",(b.sticky??1)+1).then(()=>ex()),className:"px-1.5 py-0.5 text-text-subtle transition-colors hover:text-text","aria-label":"Increase sticky",children:(0,t.jsx)(c.Icon,{name:"add",size:13})})]})]})]})]}),children:[G&&(0,t.jsx)("div",{className:"mb-3 flex items-center gap-2 text-[11.5px]",children:(0,t.jsxs)(o.Badge,{tone:0===G.failed?"live":"warn",children:[G.total," tested: ",G.passed," valid, ",G.failed," failed"]})}),0===ep.length?(0,t.jsx)(x.Empty,{children:"No keys (free / service-account provider)."}):(0,t.jsx)("div",{className:"space-y-1.5",children:ep.map((n,a)=>{let l=k?.keys[a],x=U[a],p=x&&"testing"!==x?x:null,m=p?p.ok?"live":p.reachable?"idle":"down":l?l.healthy?"live":"down":"idle",u=b.key_names?.[n],g=b.disabled_keys?.includes(a)??!1;return I===a?(0,t.jsxs)("div",{className:"space-y-2 rounded-brand border border-accent bg-accent-soft/40 px-3 py-2.5",children:[(0,t.jsx)(d.Input,{value:z,onChange:e=>D(e.target.value),placeholder:"key name (optional)"}),(0,t.jsx)(d.Input,{value:M,onChange:e=>A(e.target.value),placeholder:"new key value (leave blank to keep)",className:"font-mono text-[12.5px]"}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(d.Button,{variant:"ghost",onClick:()=>_(null),children:"Cancel"}),(0,t.jsx)(d.Button,{disabled:C===`editkey${a}`,onClick:()=>eg(`editkey${a}`,async()=>{let t=await i.adminApi.editKey(e,a,{name:z,key:M.trim()||void 0});return t.ok&&_(null),t}),children:"Save"})]})]},a):(0,t.jsxs)("div",{className:`rounded-brand border border-border-subtle px-3 py-2${g?" opacity-60":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("button",{onClick:()=>eg(`reorder${a}up`,()=>i.adminApi.reorderKey(e,a,a-1)),disabled:0===a,className:"p-0.5 text-text-subtle hover:text-text disabled:opacity-30","aria-label":"Move up",children:(0,t.jsx)(c.Icon,{name:"keyboard_arrow_up",size:14})}),(0,t.jsx)("button",{onClick:()=>eg(`reorder${a}dn`,()=>i.adminApi.reorderKey(e,a,a+1)),disabled:a===ep.length-1,className:"p-0.5 text-text-subtle hover:text-text disabled:opacity-30","aria-label":"Move down",children:(0,t.jsx)(c.Icon,{name:"keyboard_arrow_down",size:14})})]}),(0,t.jsx)(s.Lamp,{state:m}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[u&&(0,t.jsx)("div",{className:"text-[12px] font-semibold text-text-muted",children:u}),(0,t.jsx)("span",{className:"block truncate font-mono text-[12.5px] text-text",children:ei[a]??n})]}),ei[a]&&(0,t.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(ei[a])},className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":"Copy key",title:"Copy to clipboard",children:(0,t.jsx)(c.Icon,{name:"content_copy",size:14})}),l&&l.cooldown_ms>0&&(0,t.jsx)(r.CooldownTimer,{ms:l.cooldown_ms}),(0,t.jsx)("button",{onClick:async()=>{if(ei[a])return void es(e=>{let t={...e};return delete t[a],t});let t=await i.adminApi.revealKey(e,a);t.ok&&t.data?.key&&es(e=>({...e,[a]:t.data.key}))},className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":ei[a]?"Hide key":"Show key",title:ei[a]?"Hide key":"Show key",children:(0,t.jsx)(c.Icon,{name:ei[a]?"visibility_off":"visibility",size:15})}),(0,t.jsx)("button",{onClick:()=>eg(`toggle${a}`,()=>i.adminApi.toggleKey(e,a,g)),className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":g?"Enable key":"Disable key",title:g?"Enable this key":"Disable this key",children:(0,t.jsx)(c.Icon,{name:g?"toggle_off":"toggle_on",size:20,className:g?"text-text-subtle":"text-success"})}),(0,t.jsx)("button",{onClick:()=>ed(a),disabled:"testing"===x,className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text disabled:opacity-60","aria-label":`Check key ${a+1}`,title:"Check this key against the base URL",children:(0,t.jsx)(c.Icon,{name:"testing"===x?"progress_activity":"wifi_tethering",size:15})}),(0,t.jsx)("button",{onClick:()=>{_(a),D(u??""),A("")},className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":`Edit key ${a+1}`,title:"Rename or replace this key",children:(0,t.jsx)(c.Icon,{name:"edit",size:15})}),(0,t.jsx)("button",{onClick:()=>eg(`rmkey${a}`,()=>i.adminApi.removeKey(e,a)),className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-danger","aria-label":"Remove key",children:(0,t.jsx)(c.Icon,{name:"delete",size:15})})]}),p&&(0,t.jsxs)("div",{className:"mt-1.5 flex items-center gap-2 pl-8 text-[11.5px]",children:[(0,t.jsx)(o.Badge,{tone:p.ok?"live":p.reachable?"warn":"down",children:p.ok?"valid":p.reachable?`reachable (${p.status})`:"invalid"}),p.error&&(0,t.jsx)("span",{className:"truncate text-danger",children:p.error})]}),!p&&l?.last_error&&(0,t.jsxs)("div",{className:"mt-1.5 flex items-center gap-2 pl-8 text-[11.5px]",children:[(0,t.jsxs)("span",{className:"text-danger",children:[l.last_error.status?`${l.last_error.status}: `:"",l.last_error.message]}),(0,t.jsx)("span",{className:"text-text-subtle",children:new Date(l.last_error.at).toLocaleTimeString()})]})]},a)})}),(0,t.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,t.jsx)(d.Input,{value:O,onChange:e=>S(e.target.value),placeholder:"key name (optional, e.g. primary)"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(d.Input,{value:W,onChange:e=>$(e.target.value),placeholder:"add a key…",className:"font-mono text-[12.5px]"}),(0,t.jsx)(d.Button,{disabled:!W||"addkey"===C,onClick:()=>eg("addkey",async()=>{let t=await i.adminApi.addKey(e,W,O.trim()||void 0);return t.ok&&($(""),S("")),t}),children:"Add"})]})]})]}),(0,t.jsxs)(l.RichCard,{className:"lg:col-span-2",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.CardTitle,{title:"Models served",sub:`${b.models.length} in catalog`}),b.models.length>0&&(0,t.jsx)("button",{onClick:()=>eg("clear",()=>i.adminApi.clearModels(e)),disabled:"clear"===C,className:"text-[12px] text-text-subtle hover:text-danger",children:"Clear all"})]}),children:[0===b.models.length?(0,t.jsx)(x.Empty,{children:"No models. Add one below, or fetch them for a free/auto provider."}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"mb-2.5 text-[12px] text-text-subtle",children:["Call any of these as ",(0,t.jsxs)("span",{className:"tnum text-text-muted",children:[b.id,"/<model>"]}),", as a combo alias, or by the bare id."]}),b.models.length>8&&(0,t.jsxs)("div",{className:"mb-2.5 flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"relative flex-1",children:[(0,t.jsx)(c.Icon,{name:"search",size:15,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-text-subtle"}),(0,t.jsx)(d.Input,{value:T,onChange:e=>L(e.target.value),placeholder:"filter models…",className:"pl-8"})]}),(0,t.jsx)("span",{className:"tnum whitespace-nowrap text-[12px] text-text-subtle",children:em?`${eu.length} of ${b.models.length}`:`${b.models.length}`})]}),0===eu.length?(0,t.jsxs)(x.Empty,{children:["No model matches “",T,"”."]}):(0,t.jsx)("div",{className:"max-h-[360px] divide-y divide-border-subtle overflow-y-auto rounded-brand border border-border-subtle",children:eu.map(n=>{let a=P[n.id];return(0,t.jsxs)("div",{className:"group flex items-center justify-between gap-3 px-3 py-2 hover:bg-bg",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)(c.Icon,{name:"ok"===a?"check_circle":"fail"===a?"cancel":"smart_toy",size:15,className:`flex-none ${"ok"===a?"text-success":"fail"===a?"text-danger":"text-text-subtle"}`}),(0,t.jsxs)("span",{className:"tnum truncate text-[12.5px]",children:[(0,t.jsxs)("span",{className:"text-text-subtle",children:[b.id,"/"]}),(0,t.jsx)("span",{className:"text-text",children:n.id})]}),(0,t.jsx)(u.CapacityBadges,{model:n.id,provider:b.id}),(void 0!==n.price_in||void 0!==n.price_out)&&(0,t.jsxs)("span",{className:"tnum whitespace-nowrap text-[11px] text-text-subtle",children:[x.fmt.cost(n.price_in??0),"/",x.fmt.cost(n.price_out??0)," per 1M"]})]}),(0,t.jsxs)("div",{className:"flex flex-none items-center gap-0.5",children:[(0,t.jsx)("button",{onClick:()=>el(n.id),disabled:"testing"===a,className:"rounded p-1 text-text-subtle transition-colors hover:bg-surface hover:text-accent disabled:opacity-60","aria-label":`Test ${n.id}`,title:"fail"===a?"Test failed — click to retry":"Test this model",children:(0,t.jsx)(c.Icon,{name:"testing"===a?"progress_activity":"science",size:15})}),(0,t.jsx)("button",{onClick:()=>eg(`rmmodel${n.id}`,()=>i.adminApi.removeModel(e,n.id)),disabled:C===`rmmodel${n.id}`,className:"rounded p-1 text-text-subtle transition-colors hover:bg-surface hover:text-danger disabled:opacity-40","aria-label":`Remove ${n.id}`,children:(0,t.jsx)(c.Icon,{name:"delete",size:16})})]})]},n.id)})})]}),(0,t.jsxs)("div",{className:"mt-3 flex gap-2",children:[(0,t.jsx)(d.Input,{value:B,onChange:e=>R(e.target.value),placeholder:"add a model id…"}),(0,t.jsx)(d.Button,{disabled:!B||"addmodel"===C,onClick:()=>eg("addmodel",async()=>{let t=await i.adminApi.addModel(e,B);return t.ok&&R(""),t}),children:"Add"})]})]})]}),q&&(0,t.jsx)(m,{models:q,busy:"addmodels"===C,onClose:()=>E(null),onAdd:t=>eg("addmodels",async()=>{let n=await i.adminApi.addModels(e,t);return n.ok&&E(null),n})}),(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsxs)(d.Button,{variant:"danger",onClick:()=>er(!0),children:[(0,t.jsx)(c.Icon,{name:"delete",size:16})," Remove provider"]})}),eo&&(0,t.jsx)(g.ConfirmModal,{title:"Remove provider",message:`Delete "${b.name??e}"? All keys and model associations will be lost.`,confirmLabel:"Remove",busy:"rmprov"===C,onCancel:()=>er(!1),onConfirm:()=>eg("rmprov",async()=>{let t=await i.adminApi.removeProvider(e);return t.ok?p.push("/providers"):er(!1),t})})]})}],97793)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,49080,e=>{"use strict";var t=e.i(43476);e.s(["Lamp",0,function({state:e,title:n}){return(0,t.jsx)("span",{className:`lamp lamp-${e}`,title:n,"aria-label":e})}])},38286,e=>{"use strict";var t=e.i(43476);e.s(["Empty",0,function({children:e}){return(0,t.jsx)("div",{className:"px-1 py-8 text-center text-[13px] text-text-muted",children:e})},"Stat",0,function({label:e,value:n,sub:a}){return(0,t.jsxs)("div",{className:"rounded-brand-lg border border-border bg-surface px-4 py-3.5 shadow-soft",children:[(0,t.jsx)("div",{className:"text-[11px] font-medium uppercase tracking-wider text-text-subtle",children:e}),(0,t.jsx)("div",{className:"mt-1 tnum text-[22px] font-semibold tracking-tight text-text",children:n}),a&&(0,t.jsx)("div",{className:"mt-0.5 text-[12px] text-text-muted",children:a})]})},"fmt",0,{int:e=>e.toLocaleString("en-US"),compact:e=>Math.abs(e)>=1e6?`${(e/1e6).toFixed(1)}M`:Math.abs(e)>=1e3?`${(e/1e3).toFixed(1)}K`:String(Math.round(e)),cost:e=>0===e?"$0":e<.01?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`,time:e=>new Date(e).toLocaleString("en-US",{hour12:!1}),date(e){let t=new Date(e);return`${String(t.getDate()).padStart(2,"0")}/${String(t.getMonth()+1).padStart(2,"0")}/${t.getFullYear()}`},ago(e){let t=Math.max(0,Math.round((Date.now()-e)/1e3));return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m`:t<86400?`${Math.floor(t/3600)}h`:`${Math.floor(t/86400)}d`},duration(e){let t=Math.max(0,Math.round(e/1e3));if(t<60)return`${t}s`;if(t<3600)return`${Math.floor(t/60)}m ${t%60}s`;let n=Math.floor(t/3600),a=Math.floor(t%3600/60);if(n<24)return`${n}h ${a}m`;let i=Math.floor(n/24);return`${i}d ${n%24}h`}}])},81189,e=>{"use strict";var t=e.i(43476);let n={live:"bg-success/12 text-success",down:"bg-danger/12 text-danger",danger:"bg-danger/12 text-danger",warn:"bg-warning/12 text-warning",info:"bg-info/12 text-info",neutral:"bg-surface-2 text-text-muted"};function a({tone:e="neutral",children:i,className:s}){return(0,t.jsx)("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] font-medium ${n[e]}${s?` ${s}`:""}`,children:i})}e.s(["Badge",0,a,"FormatBadge",0,function({format:e}){return(0,t.jsx)(a,{tone:"info",children:e})}])},69163,e=>{"use strict";var t=e.i(43476);e.s(["CardTitle",0,function({title:e,sub:n,icon:a}){return(0,t.jsxs)("div",{className:"flex items-center gap-2.5 min-w-0",children:[a,(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"truncate text-[14px] font-semibold tracking-tight text-text",children:e}),n&&(0,t.jsx)("div",{className:"truncate text-[12px] text-text-muted",children:n})]})]})},"RichCard",0,function({header:e,footer:n,children:a,className:i}){return(0,t.jsxs)("section",{className:`overflow-hidden rounded-brand-lg border border-border bg-surface shadow-soft${i?` ${i}`:""}`,children:[e&&(0,t.jsx)("header",{className:"flex items-center justify-between gap-3 border-b border-border-subtle px-4 py-3",children:e}),(0,t.jsx)("div",{className:"p-4",children:a}),n&&(0,t.jsx)("footer",{className:"flex items-center justify-between gap-3 border-t border-border-subtle bg-bg-alt px-4 py-2.5",children:n})]})}])},53854,45570,e=>{"use strict";var t=e.i(43476);function n(e,t){return RegExp("^"+e.split("*").map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$","i").test(t)}let a={vision:!1,pdf:!1,audioInput:!1,videoInput:!1,imageOutput:!1,audioOutput:!1,search:!1,tools:!0,reasoning:!1,thinkingFormat:null,thinkingCanDisable:!0,thinkingRange:null,contextWindow:2e5,maxOutput:64e3},i={"claude-opus-4.6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4.7":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-opus-4-6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:128e3},"claude-sonnet-4.6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:64e3},"claude-sonnet-4-6":{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive",contextWindow:1e6,maxOutput:64e3},"gpt-image-1":{imageOutput:!0,tools:!1},"glm-4.6v":{vision:!0,reasoning:!0,thinkingFormat:"zai",contextWindow:128e3},"vision-model":{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6},"coder-model":{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},s={"codebuddy-cn":{"glm-5.2":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:48e3},"glm-5.1":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5.0":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"glm-5.0-turbo":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"glm-5v-turbo":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:38e3},"glm-4.7":{reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:48e3},"minimax-m3":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:512e3,maxOutput:48e3},"minimax-m2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:48e3},"kimi-k2.7":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.6":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:256e3,maxOutput:32e3},"kimi-k2.5":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:164e3,maxOutput:32e3},"hy3-preview":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:192e3,maxOutput:64e3},"deepseek-v4-pro":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v4-flash":{vision:!0,reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:1e6,maxOutput:5e4},"deepseek-v3-2-volc":{reasoning:!0,thinkingFormat:"openai",thinkingCanDisable:!1,contextWindow:96e3,maxOutput:32e3}}},o=[{pattern:"*claude*opus-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*opus-4.8*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.6*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*sonnet-4.7*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-adaptive"}},{pattern:"*claude*haiku*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*opus*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*sonnet*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*claude*fable*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude*mythos*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget",contextWindow:1e6,maxOutput:128e3}},{pattern:"*claude-3*",caps:{vision:!0}},{pattern:"*claude*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"claude-budget"}},{pattern:"*gemini*image*",caps:{vision:!0,imageOutput:!0,contextWindow:1048576}},{pattern:"*gemini-3*pro*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65535}},{pattern:"*gemini-3*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-level",thinkingCanDisable:!1,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2.5*",caps:{vision:!0,audioInput:!0,videoInput:!0,reasoning:!0,search:!0,thinkingFormat:"gemini-budget",thinkingRange:{min:0,max:24576},contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini-2*",caps:{vision:!0,audioInput:!0,videoInput:!0,search:!0,contextWindow:1048576,maxOutput:65536}},{pattern:"*gemini*",caps:{vision:!0,search:!0,contextWindow:1048576}},{pattern:"*gemma*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*nanobanana*",caps:{vision:!0,imageOutput:!0}},{pattern:"*gpt-5*image*",caps:{imageOutput:!0}},{pattern:"*gpt-5*codex*",caps:{reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-5*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:4e5,maxOutput:128e3}},{pattern:"*gpt-4o*",caps:{vision:!0,search:!0,contextWindow:128e3,maxOutput:16384}},{pattern:"*gpt-4.1*",caps:{vision:!0,contextWindow:1e6,maxOutput:32768}},{pattern:"*gpt-4-turbo*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*gpt-4*",caps:{contextWindow:128e3}},{pattern:"*gpt-3.5*",caps:{contextWindow:16385,maxOutput:4096}},{pattern:"*gpt-oss*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1-mini*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:128e3}},{pattern:"*o1*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*o4*",caps:{vision:!0,reasoning:!0,thinkingFormat:"openai",contextWindow:2e5,maxOutput:1e5}},{pattern:"*grok*image*",caps:{imageOutput:!0}},{pattern:"*grok-code*",caps:{reasoning:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-4*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*grok-3*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:131072}},{pattern:"*grok*",caps:{vision:!0,reasoning:!0,search:!0,thinkingFormat:"openai",contextWindow:256e3}},{pattern:"*qwen*vl*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*max*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*plus*",caps:{vision:!0,reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6,maxOutput:65536}},{pattern:"*qwen*235b*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*qwen*coder*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:1e6}},{pattern:"*qwq*",caps:{reasoning:!0,thinkingFormat:"qwen",thinkingCanDisable:!1,contextWindow:131072}},{pattern:"*qwen*",caps:{reasoning:!0,thinkingFormat:"qwen",contextWindow:262144}},{pattern:"*kimi*k2.7*code*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",thinkingCanDisable:!1,contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*k2*",caps:{vision:!0,reasoning:!0,thinkingFormat:"kimi",contextWindow:262144,maxOutput:262144}},{pattern:"*kimi*",caps:{reasoning:!0,thinkingFormat:"kimi",contextWindow:262144}},{pattern:"*glm-5*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4.7*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5,maxOutput:128e3}},{pattern:"*glm-4*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*glm*",caps:{reasoning:!0,thinkingFormat:"zai",contextWindow:2e5}},{pattern:"*deepseek-v4*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:1e6,maxOutput:384e3}},{pattern:"*reasoner*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-r*",caps:{reasoning:!0,thinkingFormat:"deepseek",thinkingCanDisable:!1,contextWindow:128e3}},{pattern:"*deepseek-chat*",caps:{contextWindow:128e3}},{pattern:"*deepseek*",caps:{reasoning:!0,thinkingFormat:"deepseek",contextWindow:128e3}},{pattern:"*minimax*image*",caps:{imageOutput:!0}},{pattern:"*minimax-m3*",caps:{vision:!0,reasoning:!0,thinkingFormat:"minimax",contextWindow:1048576,maxOutput:512e3}},{pattern:"*minimax-m2.7*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:204800,maxOutput:131072}},{pattern:"*minimax*",caps:{reasoning:!0,thinkingFormat:"minimax",thinkingCanDisable:!1,contextWindow:2e5,maxOutput:131072}},{pattern:"*mimo*v2.5*",caps:{vision:!0,contextWindow:1048576,maxOutput:131072}},{pattern:"*mimo*omni*",caps:{vision:!0,audioInput:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*mimo*",caps:{vision:!0,contextWindow:262144,maxOutput:131072}},{pattern:"*llama-4*",caps:{vision:!0,contextWindow:1e6}},{pattern:"*llama*",caps:{contextWindow:128e3}},{pattern:"*codestral*",caps:{contextWindow:256e3}},{pattern:"*mistral-large*",caps:{vision:!0,contextWindow:256e3}},{pattern:"*mistral*",caps:{contextWindow:128e3}},{pattern:"*command-a-vision*",caps:{vision:!0,contextWindow:128e3}},{pattern:"*command*",caps:{contextWindow:128e3}},{pattern:"*sonar*",caps:{search:!0,contextWindow:128e3}},{pattern:"*pplx*",caps:{search:!0,contextWindow:128e3}},{pattern:"*perplexity*",caps:{search:!0,contextWindow:128e3}},{pattern:"*hunyuan*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"hy3*",caps:{reasoning:!0,thinkingFormat:"hunyuan",contextWindow:262144,maxOutput:262144}},{pattern:"*step-*",caps:{reasoning:!0,thinkingFormat:"step",contextWindow:128e3}},{pattern:"*nemotron*",caps:{reasoning:!0,contextWindow:128e3}},{pattern:"*ling-*",caps:{reasoning:!0,contextWindow:128e3}}];function r(e,t){if(!t)return{...a};if(e&&s[e]?.[t])return{...a,...s[e][t]};let r=(t.includes("/")?t.split("/").pop():t)??t;if(i[r])return{...a,...i[r]};if(i[t])return{...a,...i[t]};for(let{pattern:e,caps:i}of o)if(n(e,r)||n(e,t))return{...a,...i};return{...a}}e.s(["getCapabilitiesForModel",0,r,"modalitiesForModel",0,function(e){let t=e.indexOf("/"),n=r(t>0?e.slice(0,t):null,t>0?e.slice(t+1):e),a=["text"];n.vision&&a.push("image"),n.pdf&&a.push("pdf"),n.audioInput&&a.push("audio"),n.videoInput&&a.push("video");let i=["text"];return n.imageOutput&&i.push("image"),n.audioOutput&&i.push("audio"),{input:a,output:i}}],45570);var l=e.i(51514);let d={vision:{icon:"visibility",label:"Vision",desc:"Supports image input",color:"text-info"},reasoning:{icon:"neurology",label:"Reasoning",desc:"Supports reasoning / thinking",color:"text-warning"}};e.s(["CapacityBadges",0,function({model:e,provider:n=null,size:a=15,className:i=""}){let s=r(n,e),o=Object.keys(d).filter(e=>s[e]);return 0===o.length?null:(0,t.jsx)("span",{className:`inline-flex flex-none items-center gap-0.5 ${i}`,children:o.map(e=>(0,t.jsx)("span",{title:`${d[e].label} — ${d[e].desc}`,className:"leading-none",children:(0,t.jsx)(l.Icon,{name:d[e].icon,size:a,className:d[e].color})},e))})}],53854)},98111,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(51514),i=e.i(38286);e.s(["CooldownTimer",0,function({ms:e,tone:s="danger",icon:o="timer",keepZero:r=!1}){let[l]=(0,n.useState)(()=>Date.now()+e),[d,c]=(0,n.useState)(()=>Math.max(0,e));return((0,n.useEffect)(()=>{let e=()=>c(Math.max(0,l-Date.now()));e();let t=setInterval(e,1e3);return()=>clearInterval(t)},[l]),d<=0&&!r)?null:(0,t.jsxs)("span",{className:`inline-flex items-center gap-1 tnum text-[12px] ${"danger"===s?"text-danger":"text-text-muted"}`,children:[(0,t.jsx)(a.Icon,{name:o,size:13}),d<=0?"now":i.fmt.duration(d)]})}])},97793,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(18566),i=e.i(29481),s=e.i(49080),o=e.i(81189),r=e.i(98111),l=e.i(69163),d=e.i(10007),c=e.i(51514),x=e.i(38286);function p({checked:e,indeterminate:n,onChange:a,className:i,ariaLabel:s}){let o=e||n;return(0,t.jsx)("button",{type:"button",role:"checkbox","aria-checked":n?"mixed":e,"aria-label":s,onClick:e=>{e.stopPropagation(),a()},className:`flex h-[18px] w-[18px] flex-none items-center justify-center rounded-[5px] border transition-colors ${o?"border-accent bg-accent text-accent-ink":"border-border bg-bg text-transparent hover:border-text-subtle"}${i?` ${i}`:""}`,children:(0,t.jsx)(c.Icon,{name:n?"remove":"check",size:13})})}function m({models:e,busy:a,onAdd:i,onClose:s}){let[o,r]=(0,n.useState)(""),[l,x]=(0,n.useState)(()=>new Set(e.filter(e=>!e.added).map(e=>e.id))),u=(0,n.useMemo)(()=>{let t=o.trim().toLowerCase();return t?e.filter(e=>e.id.toLowerCase().includes(t)):e},[e,o]);function g(e){x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}let h=u.filter(e=>l.has(e.id)).length,b=u.length>0&&h===u.length;function v(){x(e=>{let t=new Set(e);return b?u.forEach(e=>t.delete(e.id)):u.forEach(e=>t.add(e.id)),t})}return(0,t.jsx)("div",{className:"fixed inset-0 z-50 grid place-items-center bg-black/50 p-6",onClick:s,children:(0,t.jsxs)("div",{className:"flex max-h-[80vh] w-full max-w-[480px] flex-col overflow-hidden rounded-brand-lg border border-border bg-surface shadow-elevated",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("header",{className:"flex items-center justify-between border-b border-border-subtle px-4 py-3",children:[(0,t.jsxs)("span",{className:"text-[14px] font-semibold text-text",children:[e.length," models found"]}),(0,t.jsx)("button",{onClick:s,className:"text-text-subtle hover:text-text","aria-label":"Close",children:(0,t.jsx)(c.Icon,{name:"close",size:18})})]}),(0,t.jsx)("div",{className:"border-b border-border-subtle px-4 py-2.5",children:(0,t.jsx)(d.Input,{value:o,onChange:e=>r(e.target.value),placeholder:"filter…",autoFocus:!0})}),u.length>0&&(0,t.jsxs)("button",{onClick:v,className:"flex items-center gap-2.5 border-b border-border-subtle px-4 py-2 text-left hover:bg-surface-2",children:[(0,t.jsx)(p,{checked:b,indeterminate:h>0&&!b,onChange:v,ariaLabel:"Select all"}),(0,t.jsxs)("span",{className:"text-[12.5px] font-medium text-text",children:["Select all",o?" (filtered)":""]}),(0,t.jsxs)("span",{className:"ml-auto tnum text-[11px] text-text-subtle",children:[h,"/",u.length]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto px-2 py-2",children:0===u.length?(0,t.jsx)("div",{className:"px-2 py-6 text-center text-[13px] text-text-muted",children:"No matches."}):u.map(e=>{let n=l.has(e.id);return(0,t.jsxs)("button",{onClick:()=>g(e.id),className:`flex w-full items-center gap-2.5 rounded-brand border px-2.5 py-2 text-left transition-colors ${n?"border-accent/40 bg-accent-soft":"border-transparent hover:bg-surface-2"}`,children:[(0,t.jsx)(p,{checked:n,onChange:()=>g(e.id),ariaLabel:e.id}),(0,t.jsx)("span",{className:"flex-1 truncate text-[12.5px] text-text",children:e.id}),e.added&&(0,t.jsx)("span",{className:"text-[11px] text-text-subtle",children:"in catalog"})]},e.id)})}),(0,t.jsxs)("footer",{className:"flex items-center justify-between gap-3 border-t border-border-subtle bg-bg-alt px-4 py-2.5",children:[(0,t.jsxs)("span",{className:"tnum text-[12px] text-text-muted",children:[l.size," selected"]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(d.Button,{variant:"ghost",onClick:s,children:"Cancel"}),(0,t.jsx)(d.Button,{disabled:0===l.size||a,onClick:()=>i([...l]),children:a?"Adding…":`Add ${l.size}`})]})]})]})})}var u=e.i(53854),g=e.i(13135);function h({k:e,v:n}){return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)("span",{className:"text-text-subtle",children:e}),(0,t.jsx)("span",{className:"truncate text-text",children:n})]})}e.s(["ProviderDetail",0,function({id:e}){let p=(0,a.useRouter)(),[b,v]=(0,n.useState)(null),[k,f]=(0,n.useState)(null),[j,w]=(0,n.useState)(""),[y,N]=(0,n.useState)(null),[C,F]=(0,n.useState)(""),[W,$]=(0,n.useState)(""),[O,I]=(0,n.useState)(""),[S,_]=(0,n.useState)(null),[D,z]=(0,n.useState)(""),[M,A]=(0,n.useState)(""),[B,R]=(0,n.useState)(""),[L,T]=(0,n.useState)(""),[P,q]=(0,n.useState)(null),[E,K]=(0,n.useState)({}),[U,H]=(0,n.useState)({}),[V,Y]=(0,n.useState)(!1),[G,J]=(0,n.useState)(null),Q=(0,n.useRef)(!1),[X,Z]=(0,n.useState)(!1),[ee,et]=(0,n.useState)(""),[en,ea]=(0,n.useState)(""),[ei,es]=(0,n.useState)(""),[eo,er]=(0,n.useState)({}),[el,ed]=(0,n.useState)(!1);async function ec(t){K(e=>({...e,[t]:"testing"}));let n=await i.adminApi.testModel(e,t);K(e=>({...e,[t]:n.ok&&n.data?.ok?"ok":"fail"}))}async function ex(t){H(e=>({...e,[t]:"testing"}));let n=await i.adminApi.testKey(e,t);H(e=>({...e,[t]:n.data??{ok:!1,reachable:!1,status:0,error:n.error}}))}async function ep(t){Q.current=!1,Y(!0),J(null),H({});let n=0,a=0;for(let s=0;s<t&&!Q.current;s++){H(e=>({...e,[s]:"testing"}));let o=await i.adminApi.testKey(e,s),r=o.data??{ok:!1,reachable:!1,status:0,error:o.error};H(e=>({...e,[s]:r})),r.ok?n++:a++,s<t-1&&!Q.current&&await new Promise(e=>setTimeout(e,500))}Y(!1),J({total:t,passed:n,failed:a})}let em=(0,n.useCallback)(async()=>{let[t,n]=await Promise.all([fetch("/api/gw/admin/config"),i.adminApi.providers()]);if(!t.ok)return void w("could not reach the gateway");let a=(await t.json()).providers.find(t=>t.id===e)??null;a?(w(""),v(a),f(n.data?.providers.find(t=>t.id===e)??null)):w(`provider "${e}" not found`)},[e]);if((0,n.useEffect)(()=>{em()},[em]),j)return(0,t.jsx)(x.Empty,{children:j});if(!b)return(0,t.jsx)(x.Empty,{children:"Loading…"});let eu=b.api_keys??(b.api_key?[b.api_key]:[]),eg=L.trim().toLowerCase(),eh=eg?b.models.filter(e=>e.id.toLowerCase().includes(eg)):b.models;async function eb(e,t){F(e);let n=await t();F(""),n.ok?(w(""),await em()):w(n.error??"action failed")}return(0,t.jsxs)("div",{children:[(0,t.jsxs)("button",{onClick:()=>p.push("/providers"),className:"mb-4 inline-flex items-center gap-1 text-[12px] text-text-muted hover:text-text",children:[(0,t.jsx)(c.Icon,{name:"arrow_back",size:15})," Providers"]}),(0,t.jsxs)("div",{className:"mb-6 flex items-center gap-3",children:[(0,t.jsx)(s.Lamp,{state:b.disabled?"idle":k?.keys.some(e=>e.healthy)??!0?"live":"down"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-[22px] font-semibold tracking-tight text-text",children:b.name||b.id}),b.name&&(0,t.jsxs)("span",{className:"text-[12px] text-text-subtle",children:[b.id,"/"]})]}),(0,t.jsx)(o.FormatBadge,{format:b.format}),b.free&&(0,t.jsx)(o.Badge,{tone:"info",children:"free"}),b.service_account&&(0,t.jsx)(o.Badge,{tone:"info",children:"service-account"}),b.disabled&&(0,t.jsx)(o.Badge,{tone:"down",children:"disabled"})]}),(0,t.jsxs)("div",{className:`grid gap-4 lg:grid-cols-2 transition-opacity ${b.disabled?"opacity-50":""}`,children:[(0,t.jsx)(l.RichCard,{header:(0,t.jsx)(l.CardTitle,{title:"Connection"}),children:X?(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(d.Field,{label:"Label",hint:"display name in dashboard (optional, does not affect routing)",children:(0,t.jsx)(d.Input,{value:ei,onChange:e=>es(e.target.value),placeholder:en||"e.g. My Provider",className:"text-[12.5px]"})}),(0,t.jsx)(d.Field,{label:"ID / Prefix",hint:"the call prefix (id/model) — changing this breaks CLI tools",children:(0,t.jsx)(d.Input,{value:en,onChange:e=>ea(e.target.value),placeholder:"e.g. openai",className:"font-mono text-[12.5px]"})}),en.trim()&&en.trim()!==e&&(0,t.jsxs)("p",{className:"flex items-start gap-1.5 rounded-brand border border-warning/40 bg-warning/8 px-2.5 py-2 text-[11.5px] text-warning",children:[(0,t.jsx)(c.Icon,{name:"warning",size:14,className:"mt-0.5 flex-none"}),(0,t.jsxs)("span",{children:["Renaming rewrites the call string. CLI tools pointing at"," ",(0,t.jsxs)("code",{className:"tnum",children:[e,"/…"]})," will break until repointed; combos that target it are updated automatically."]})]}),(0,t.jsx)(d.Field,{label:"Base URL",children:(0,t.jsx)(d.Input,{value:ee,onChange:e=>et(e.target.value),placeholder:"https://...",className:"font-mono text-[12.5px]"})}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(d.Button,{variant:"ghost",onClick:()=>Z(!1),children:"Cancel"}),(0,t.jsx)(d.Button,{disabled:"editconn"===C,onClick:()=>eb("editconn",async()=>{let t=en.trim(),n=e;if(t&&t!==e){let a=await i.adminApi.renameProvider(e,t);if(!a.ok)return a;n=t}let a=ei.trim()||void 0,s=await i.adminApi.editProvider(n,{base_url:ee.trim()||void 0,name:a});return s.ok&&(Z(!1),n!==e&&p.push(`/providers/${encodeURIComponent(n)}`)),s}),children:"Save"})]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"space-y-2 text-[13px]",children:[b.name&&(0,t.jsx)(h,{k:"Label",v:b.name}),(0,t.jsx)(h,{k:"ID / Prefix",v:b.id}),(0,t.jsx)(h,{k:"Base URL",v:b.base_url}),(0,t.jsx)(h,{k:"Format",v:b.format}),(0,t.jsx)(h,{k:"Cooldown base",v:`${b.cooldown_base_ms}ms`}),(0,t.jsx)(h,{k:"Max retries",v:String(b.max_retries)})]}),(0,t.jsxs)("div",{className:"mt-4 flex items-center gap-2",children:[(0,t.jsxs)(d.Button,{variant:"ghost",onClick:()=>{Z(!0),et(b.base_url),ea(b.id),es(b.name??"")},children:[(0,t.jsx)(c.Icon,{name:"edit",size:15})," Edit"]}),(0,t.jsxs)(d.Button,{variant:"ghost",disabled:"test"===C,onClick:()=>eb("test",async()=>{let t=await i.adminApi.testProvider(e);return t.ok&&N(t.data),t}),children:[(0,t.jsx)(c.Icon,{name:"wifi_tethering",size:16})," ","test"===C?"Testing…":"Test connection"]}),(0,t.jsxs)(d.Button,{variant:"ghost",disabled:"discover"===C,onClick:()=>eb("discover",async()=>{let t=await i.adminApi.discoverModels(e);return t.ok&&q(t.data?.models??[]),t}),children:[(0,t.jsx)(c.Icon,{name:"sync",size:16})," ","discover"===C?"Fetching…":"Fetch models"]})]}),y&&(0,t.jsxs)("div",{className:"mt-3 text-[12px]",children:[(0,t.jsx)(o.Badge,{tone:y.ok?"live":y.reachable?"warn":"down",children:y.ok?`ok (${y.status})`:y.reachable?`reachable (${y.status})`:"unreachable"}),y.error&&(0,t.jsx)("span",{className:"ml-2 text-text-subtle",children:y.error})]})]})}),(0,t.jsxs)(l.RichCard,{header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.CardTitle,{title:"Keys",sub:`${eu.length} configured`}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[eu.length>1&&(0,t.jsxs)(d.Button,{variant:"ghost",disabled:V,onClick:()=>ep(eu.length),children:[(0,t.jsx)(c.Icon,{name:V?"progress_activity":"sync",size:15}),V?"Testing…":"Test All"]}),V&&(0,t.jsxs)(d.Button,{variant:"ghost",onClick:()=>{Q.current=!0},children:[(0,t.jsx)(c.Icon,{name:"stop",size:15})," Stop"]}),(0,t.jsx)("span",{className:"text-[11px] text-text-subtle",children:"Round Robin"}),(0,t.jsx)("button",{onClick:()=>{let t="round-robin"===b.strategy?null:"round-robin";i.adminApi.setProviderStrategy(e,t,b.sticky??1).then(()=>em())},className:`relative h-5 w-9 rounded-full transition-colors ${"round-robin"===b.strategy?"bg-accent":"bg-border-subtle"}`,"aria-label":"Toggle round-robin",children:(0,t.jsx)("span",{className:`absolute left-0.5 top-0.5 h-4 w-4 rounded-full bg-white transition-transform ${"round-robin"===b.strategy?"translate-x-[18px]":"translate-x-0"}`})}),"round-robin"===b.strategy&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"text-[11px] text-text-subtle",children:"Sticky:"}),(0,t.jsxs)("div",{className:"flex items-center rounded-brand border border-border-subtle",children:[(0,t.jsx)("button",{type:"button",disabled:(b.sticky??1)<=1,onClick:()=>void i.adminApi.setProviderStrategy(e,"round-robin",Math.max(1,(b.sticky??1)-1)).then(()=>em()),className:"px-1.5 py-0.5 text-text-subtle transition-colors hover:text-text disabled:opacity-30","aria-label":"Decrease sticky",children:(0,t.jsx)(c.Icon,{name:"remove",size:13})}),(0,t.jsx)("span",{className:"tnum w-6 text-center text-[11px] text-text",children:b.sticky??1}),(0,t.jsx)("button",{type:"button",onClick:()=>void i.adminApi.setProviderStrategy(e,"round-robin",(b.sticky??1)+1).then(()=>em()),className:"px-1.5 py-0.5 text-text-subtle transition-colors hover:text-text","aria-label":"Increase sticky",children:(0,t.jsx)(c.Icon,{name:"add",size:13})})]})]})]})]}),children:[G&&(0,t.jsx)("div",{className:"mb-3 flex items-center gap-2 text-[11.5px]",children:(0,t.jsxs)(o.Badge,{tone:0===G.failed?"live":"warn",children:[G.total," tested: ",G.passed," valid, ",G.failed," failed"]})}),0===eu.length?(0,t.jsx)(x.Empty,{children:"No keys (free / service-account provider)."}):(0,t.jsx)("div",{className:"space-y-1.5",children:eu.map((n,a)=>{let l=k?.keys[a],x=U[a],p=x&&"testing"!==x?x:null,m=p?p.ok?"live":p.reachable?"idle":"down":l?l.healthy?"live":"down":"idle",u=b.key_names?.[n],g=b.disabled_keys?.includes(a)??!1;return S===a?(0,t.jsxs)("div",{className:"space-y-2 rounded-brand border border-accent bg-accent-soft/40 px-3 py-2.5",children:[(0,t.jsx)(d.Input,{value:D,onChange:e=>z(e.target.value),placeholder:"key name (optional)"}),(0,t.jsx)(d.Input,{value:M,onChange:e=>A(e.target.value),placeholder:"new key value (leave blank to keep)",className:"font-mono text-[12.5px]"}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(d.Button,{variant:"ghost",onClick:()=>_(null),children:"Cancel"}),(0,t.jsx)(d.Button,{disabled:C===`editkey${a}`,onClick:()=>eb(`editkey${a}`,async()=>{let t=await i.adminApi.editKey(e,a,{name:D,key:M.trim()||void 0});return t.ok&&_(null),t}),children:"Save"})]})]},a):(0,t.jsxs)("div",{className:`rounded-brand border border-border-subtle px-3 py-2${g?" opacity-60":""}`,children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("button",{onClick:()=>eb(`reorder${a}up`,()=>i.adminApi.reorderKey(e,a,a-1)),disabled:0===a,className:"p-0.5 text-text-subtle hover:text-text disabled:opacity-30","aria-label":"Move up",children:(0,t.jsx)(c.Icon,{name:"keyboard_arrow_up",size:14})}),(0,t.jsx)("button",{onClick:()=>eb(`reorder${a}dn`,()=>i.adminApi.reorderKey(e,a,a+1)),disabled:a===eu.length-1,className:"p-0.5 text-text-subtle hover:text-text disabled:opacity-30","aria-label":"Move down",children:(0,t.jsx)(c.Icon,{name:"keyboard_arrow_down",size:14})})]}),(0,t.jsx)(s.Lamp,{state:m}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[u&&(0,t.jsx)("div",{className:"text-[12px] font-semibold text-text-muted",children:u}),(0,t.jsx)("span",{className:"block truncate font-mono text-[12.5px] text-text",children:eo[a]??n})]}),eo[a]&&(0,t.jsx)("button",{onClick:()=>{navigator.clipboard.writeText(eo[a])},className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":"Copy key",title:"Copy to clipboard",children:(0,t.jsx)(c.Icon,{name:"content_copy",size:14})}),l&&l.cooldown_ms>0&&(0,t.jsx)(r.CooldownTimer,{ms:l.cooldown_ms}),(0,t.jsx)("button",{onClick:async()=>{if(eo[a])return void er(e=>{let t={...e};return delete t[a],t});let t=await i.adminApi.revealKey(e,a);t.ok&&t.data?.key&&er(e=>({...e,[a]:t.data.key}))},className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":eo[a]?"Hide key":"Show key",title:eo[a]?"Hide key":"Show key",children:(0,t.jsx)(c.Icon,{name:eo[a]?"visibility_off":"visibility",size:15})}),(0,t.jsx)("button",{onClick:()=>eb(`toggle${a}`,()=>i.adminApi.toggleKey(e,a,g)),className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":g?"Enable key":"Disable key",title:g?"Enable this key":"Disable this key",children:(0,t.jsx)(c.Icon,{name:g?"toggle_off":"toggle_on",size:20,className:g?"text-text-subtle":"text-success"})}),(0,t.jsx)("button",{onClick:()=>ex(a),disabled:"testing"===x,className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text disabled:opacity-60","aria-label":`Check key ${a+1}`,title:"Check this key against the base URL",children:(0,t.jsx)(c.Icon,{name:"testing"===x?"progress_activity":"wifi_tethering",size:15})}),(0,t.jsx)("button",{onClick:()=>{_(a),z(u??""),A("")},className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-text","aria-label":`Edit key ${a+1}`,title:"Rename or replace this key",children:(0,t.jsx)(c.Icon,{name:"edit",size:15})}),(0,t.jsx)("button",{onClick:()=>eb(`rmkey${a}`,()=>i.adminApi.removeKey(e,a)),className:"flex-none rounded p-1 text-text-subtle transition-colors hover:text-danger","aria-label":"Remove key",children:(0,t.jsx)(c.Icon,{name:"delete",size:15})})]}),p&&(0,t.jsxs)("div",{className:"mt-1.5 flex items-center gap-2 pl-8 text-[11.5px]",children:[(0,t.jsx)(o.Badge,{tone:p.ok?"live":p.reachable?"warn":"down",children:p.ok?"valid":p.reachable?`reachable (${p.status})`:"invalid"}),p.error&&(0,t.jsx)("span",{className:"truncate text-danger",children:p.error})]}),!p&&l?.last_error&&(0,t.jsxs)("div",{className:"mt-1.5 flex items-center gap-2 pl-8 text-[11.5px]",children:[(0,t.jsxs)("span",{className:"text-danger",children:[l.last_error.status?`${l.last_error.status}: `:"",l.last_error.message]}),(0,t.jsx)("span",{className:"text-text-subtle",children:new Date(l.last_error.at).toLocaleTimeString()})]})]},a)})}),(0,t.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,t.jsx)(d.Input,{value:O,onChange:e=>I(e.target.value),placeholder:"key name (optional, e.g. primary)"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(d.Input,{value:W,onChange:e=>$(e.target.value),placeholder:"add a key…",className:"font-mono text-[12.5px]"}),(0,t.jsx)(d.Button,{disabled:!W||"addkey"===C,onClick:()=>eb("addkey",async()=>{let t=await i.adminApi.addKey(e,W,O.trim()||void 0);return t.ok&&($(""),I("")),t}),children:"Add"})]})]})]}),(0,t.jsxs)(l.RichCard,{className:"lg:col-span-2",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.CardTitle,{title:"Models served",sub:`${b.models.length} in catalog`}),b.models.length>0&&(0,t.jsx)("button",{onClick:()=>eb("clear",()=>i.adminApi.clearModels(e)),disabled:"clear"===C,className:"text-[12px] text-text-subtle hover:text-danger",children:"Clear all"})]}),children:[0===b.models.length?(0,t.jsx)(x.Empty,{children:"No models. Add one below, or fetch them for a free/auto provider."}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"mb-2.5 text-[12px] text-text-subtle",children:["Call any of these as ",(0,t.jsxs)("span",{className:"tnum text-text-muted",children:[b.id,"/<model>"]}),", as a combo alias, or by the bare id."]}),b.models.length>8&&(0,t.jsxs)("div",{className:"mb-2.5 flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"relative flex-1",children:[(0,t.jsx)(c.Icon,{name:"search",size:15,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-text-subtle"}),(0,t.jsx)(d.Input,{value:L,onChange:e=>T(e.target.value),placeholder:"filter models…",className:"pl-8"})]}),(0,t.jsx)("span",{className:"tnum whitespace-nowrap text-[12px] text-text-subtle",children:eg?`${eh.length} of ${b.models.length}`:`${b.models.length}`})]}),0===eh.length?(0,t.jsxs)(x.Empty,{children:["No model matches “",L,"”."]}):(0,t.jsx)("div",{className:"max-h-[360px] divide-y divide-border-subtle overflow-y-auto rounded-brand border border-border-subtle",children:eh.map(n=>{let a=E[n.id];return(0,t.jsxs)("div",{className:"group flex items-center justify-between gap-3 px-3 py-2 hover:bg-bg",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)(c.Icon,{name:"ok"===a?"check_circle":"fail"===a?"cancel":"smart_toy",size:15,className:`flex-none ${"ok"===a?"text-success":"fail"===a?"text-danger":"text-text-subtle"}`}),(0,t.jsxs)("span",{className:"tnum truncate text-[12.5px]",children:[(0,t.jsxs)("span",{className:"text-text-subtle",children:[b.id,"/"]}),(0,t.jsx)("span",{className:"text-text",children:n.id})]}),(0,t.jsx)(u.CapacityBadges,{model:n.id,provider:b.id}),(void 0!==n.price_in||void 0!==n.price_out)&&(0,t.jsxs)("span",{className:"tnum whitespace-nowrap text-[11px] text-text-subtle",children:[x.fmt.cost(n.price_in??0),"/",x.fmt.cost(n.price_out??0)," per 1M"]})]}),(0,t.jsxs)("div",{className:"flex flex-none items-center gap-0.5",children:[(0,t.jsx)("button",{onClick:()=>ec(n.id),disabled:"testing"===a,className:"rounded p-1 text-text-subtle transition-colors hover:bg-surface hover:text-accent disabled:opacity-60","aria-label":`Test ${n.id}`,title:"fail"===a?"Test failed — click to retry":"Test this model",children:(0,t.jsx)(c.Icon,{name:"testing"===a?"progress_activity":"science",size:15})}),(0,t.jsx)("button",{onClick:()=>eb(`rmmodel${n.id}`,()=>i.adminApi.removeModel(e,n.id)),disabled:C===`rmmodel${n.id}`,className:"rounded p-1 text-text-subtle transition-colors hover:bg-surface hover:text-danger disabled:opacity-40","aria-label":`Remove ${n.id}`,children:(0,t.jsx)(c.Icon,{name:"delete",size:16})})]})]},n.id)})})]}),(0,t.jsxs)("div",{className:"mt-3 flex gap-2",children:[(0,t.jsx)(d.Input,{value:B,onChange:e=>R(e.target.value),placeholder:"add a model id…"}),(0,t.jsx)(d.Button,{disabled:!B||"addmodel"===C,onClick:()=>eb("addmodel",async()=>{let t=await i.adminApi.addModel(e,B);return t.ok&&R(""),t}),children:"Add"})]})]})]}),P&&(0,t.jsx)(m,{models:P,busy:"addmodels"===C,onClose:()=>q(null),onAdd:t=>eb("addmodels",async()=>{let n=await i.adminApi.addModels(e,t);return n.ok&&q(null),n})}),(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsxs)(d.Button,{variant:"danger",onClick:()=>ed(!0),children:[(0,t.jsx)(c.Icon,{name:"delete",size:16})," Remove provider"]})}),el&&(0,t.jsx)(g.ConfirmModal,{title:"Remove provider",message:`Delete "${b.name??e}"? All keys and model associations will be lost.`,confirmLabel:"Remove",busy:"rmprov"===C,onCancel:()=>ed(!1),onConfirm:()=>eb("rmprov",async()=>{let t=await i.adminApi.removeProvider(e);return t.ok?p.push("/providers"):ed(!1),t})})]})}],97793)}]);
|