import "@/index.css" import { Code } from "@opencode-ai/ui/code" import { I18nProvider } from "@opencode-ai/ui/context" import { CodeComponentProvider } from "@opencode-ai/ui/context/code" import { DialogProvider } from "@opencode-ai/ui/context/dialog" import { DiffComponentProvider } from "@opencode-ai/ui/context/diff" import { MarkedProvider } from "@opencode-ai/ui/context/marked" import { Diff } from "@opencode-ai/ui/diff" import { Font } from "@opencode-ai/ui/font" import { ThemeProvider } from "@opencode-ai/ui/theme" import { MetaProvider } from "@solidjs/meta" import { Navigate, Route, Router } from "@solidjs/router" import { ErrorBoundary, type JSX, lazy, type ParentProps, Show, Suspense } from "solid-js" import { CommandProvider } from "@/context/command" import { CommentsProvider } from "@/context/comments" import { FileProvider } from "@/context/file" import { GlobalSDKProvider } from "@/context/global-sdk" import { GlobalSyncProvider } from "@/context/global-sync" import { HighlightsProvider } from "@/context/highlights" import { LanguageProvider, useLanguage } from "@/context/language" import { LayoutProvider } from "@/context/layout" import { ModelsProvider } from "@/context/models" import { NotificationProvider } from "@/context/notification" import { PermissionProvider } from "@/context/permission" import { usePlatform } from "@/context/platform" import { PromptProvider } from "@/context/prompt" import { type ServerConnection, ServerProvider, useServer } from "@/context/server" import { SettingsProvider } from "@/context/settings" import { TerminalProvider } from "@/context/terminal" import DirectoryLayout from "@/pages/directory-layout" import Layout from "@/pages/layout" import { ErrorPage } from "./pages/error" const Home = lazy(() => import("@/pages/home")) const Session = lazy(() => import("@/pages/session")) const Loading = () =>
const HomeRoute = () => ( }> ) const SessionRoute = () => ( }> ) const SessionIndexRoute = () => function UiI18nBridge(props: ParentProps) { const language = useLanguage() return {props.children} } declare global { interface Window { __OPENCODE__?: { updaterEnabled?: boolean deepLinks?: string[] wsl?: boolean } } } function MarkedProviderWithNativeParser(props: ParentProps) { const platform = usePlatform() return {props.children} } function AppShellProviders(props: ParentProps) { return ( {props.children} ) } function SessionProviders(props: ParentProps) { return ( {props.children} ) } function RouterRoot(props: ParentProps<{ appChildren?: JSX.Element }>) { return ( {props.appChildren} {props.children} ) } export function AppBaseProviders(props: ParentProps) { return ( }> {props.children} ) } function ServerKey(props: ParentProps) { const server = useServer() return ( {props.children} ) } export function AppInterface(props: { children?: JSX.Element defaultServer: ServerConnection.Key servers?: Array }) { return ( {routerProps.children}} > ) }