| import { Inter } from "next/font/google"; | |
| import "material-symbols/outlined.css"; | |
| import "./globals.css"; | |
| import { ThemeProvider } from "@/shared/components/ThemeProvider"; | |
| import "@/lib/network/initOutboundProxy"; // Auto-initialize outbound proxy env | |
| import "@/shared/services/bootstrap"; // Auto-run initializeApp (watchdog, auto-resume tunnel) | |
| import { initConsoleLogCapture } from "@/lib/consoleLogBuffer"; | |
| import { RuntimeI18nProvider } from "@/i18n/RuntimeI18nProvider"; | |
| // Hook console immediately at module load time (server-side only, runs once) | |
| initConsoleLogCapture(); | |
| const inter = Inter({ | |
| subsets: ["latin"], | |
| variable: "--font-inter", | |
| }); | |
| export const metadata = { | |
| title: "9Router - AI Infrastructure Management", | |
| description: "One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.", | |
| icons: { | |
| icon: "/favicon.svg", | |
| }, | |
| }; | |
| export const viewport = { | |
| themeColor: "#0a0a0a", | |
| }; | |
| export default function RootLayout({ children }) { | |
| return ( | |
| <html lang="en" suppressHydrationWarning> | |
| <head> | |
| <script | |
| dangerouslySetInnerHTML={{ | |
| __html: `if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}`, | |
| }} | |
| /> | |
| ); | |
| } | |