<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
    <meta name="theme-color" content="#ffffff" />
    <script>
      (() => {
        try {
          const stored =
            localStorage.getItem("nanocodex-theme") ?? localStorage.getItem("xedoc-theme");
          const theme = stored === "dark" ? "dark" : "light";
          document.documentElement.dataset.theme = theme;
          document
            .querySelector('meta[name="theme-color"]')
            ?.setAttribute("content", theme === "dark" ? "#161616" : "#ffffff");
        } catch {
          document.documentElement.dataset.theme = "light";
        }
      })();
    </script>
    <meta
      name="description"
      content="A minimal, headless Codex runtime for embedding agent lifecycle and context management in your own applications."
    />
    <meta property="og:title" content="Nanocodex: a headless Codex runtime you can embed." />
    <meta
      property="og:description"
      content="An ergonomic Rust library with a deliberately narrow core, portable architecture, composable middleware, efficient conversation forks and an eval-driven development loop."
    />
    <meta property="og:type" content="website" />
    <meta property="og:image" content="/og.png" />
    <meta name="twitter:card" content="summary_large_image" />
    <meta name="twitter:title" content="Nanocodex: a headless Codex runtime you can embed." />
    <meta
      name="twitter:description"
      content="Codex lifecycle and context management as an ergonomic, embeddable Rust library."
    />
    <meta name="twitter:image" content="/og.png" />
    <title>Nanocodex: a headless Codex runtime you can embed.</title>
    <link rel="stylesheet" href="/src/index.css" />
  </head>
  <body>
    <div id="root"></div>
    <script type="module" src="/src/main.tsx"></script>
  </body>
</html>
