import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { createStore, Provider } from "jotai"; import { LazyMotion, MotionConfig } from "motion/react"; import { StrictMode } from "react"; import { createRoot } from "react-dom/client"; import { ProxyLayout } from "./components/ProxyLayout"; import { listen, rpc } from "./lib/rpc"; import { initHotkeys } from "./lib/hotkeys"; import { applyChange, dataAtom, replaceAll } from "./lib/store"; import "./main.css"; const queryClient = new QueryClient(); const jotaiStore = createStore(); // Load initial models from the database rpc("list_models", {}).then((res) => { jotaiStore.set(dataAtom, (prev) => replaceAll(prev, "http_exchange", res.httpExchanges)); }); // Register hotkeys from action metadata initHotkeys(); // Subscribe to model change events from the backend listen("model_write", (payload) => { jotaiStore.set(dataAtom, (prev) => applyChange(prev, "http_exchange", payload.model, payload.change), ); }); const motionFeatures = () => import("framer-motion").then((mod) => mod.domAnimation); createRoot(document.getElementById("root") as HTMLElement).render( , );