SPB Git

Repository Public

layout.tsx 1.7 KB 49 lines tsx

1import type { Metadata, Viewport } from 'next';2import { GeistSans } from 'geist/font/sans';3import '@fontsource/jetbrains-mono/400.css';4import '@fontsource/jetbrains-mono/500.css';5import '@fontsource/jetbrains-mono/700.css';6import './globals.css';7import { Providers } from '@/components/providers';89export const metadata: Metadata = {10  title: 'Agent OS',11  description: 'Agent OS — mission console for autonomous agents',12  manifest: '/manifest.webmanifest',13  robots: { index: false, follow: false },14  icons: {15    icon: [16      { url: '/icons/icon.svg', type: 'image/svg+xml' },17      { url: '/icons/icon-192.png', sizes: '192x192', type: 'image/png' },18    ],19    apple: [{ url: '/icons/apple-touch-icon.png', sizes: '180x180' }],20  },21  appleWebApp: { capable: true, title: 'Agent OS', statusBarStyle: 'black-translucent' },22  formatDetection: { telephone: false, email: false, address: false },23  other: { 'mobile-web-app-capable': 'yes' },24};2526export const viewport: Viewport = {27  width: 'device-width',28  initialScale: 1,29  viewportFit: 'cover',30  interactiveWidget: 'resizes-content',31  themeColor: '#F7F6F3', // light default; /theme-init.js and the theme store update it32  colorScheme: 'light dark',33};3435export default function RootLayout({ children }: { children: React.ReactNode }) {36  return (37    <html lang="en" className={GeistSans.variable} data-theme="light" suppressHydrationWarning>38      <head>39        {/* Blocking, same-origin: sets data-theme before first paint (the CSP forbids inline scripts). */}40        {/* eslint-disable-next-line @next/next/no-sync-scripts */}41        <script src="/theme-init.js" />42      </head>43      <body>44        <Providers>{children}</Providers>45      </body>46    </html>47  );48}49
Files main
Menu

Theme