agentnetes 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +0 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +3 -3
- package/web/.next/server/app/_global-error.html +1 -1
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found.html +1 -1
- package/web/.next/server/app/_not-found.rsc +1 -1
- package/web/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/demo.html +1 -1
- package/web/.next/server/app/demo.rsc +1 -1
- package/web/.next/server/app/demo.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/demo.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/demo.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/demo.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/demo.segments/demo/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/demo.segments/demo.segment.rsc +1 -1
- package/web/.next/server/app/docs.html +1 -1
- package/web/.next/server/app/docs.rsc +1 -1
- package/web/.next/server/app/docs.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/docs.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/docs.segments/docs.segment.rsc +1 -1
- package/web/.next/server/app/index.html +1 -1
- package/web/.next/server/app/index.rsc +1 -1
- package/web/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/middleware-build-manifest.js +3 -3
- package/web/.next/server/pages/404.html +1 -1
- package/web/.next/server/pages/500.html +1 -1
- /package/web/.next/static/{Vd1Q6l74_n2F-lMfVCVr_ → 0QnzQ8Z6fEhlhVaWAQ2_v}/_buildManifest.js +0 -0
- /package/web/.next/static/{Vd1Q6l74_n2F-lMfVCVr_ → 0QnzQ8Z6fEhlhVaWAQ2_v}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{Vd1Q6l74_n2F-lMfVCVr_ → 0QnzQ8Z6fEhlhVaWAQ2_v}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Ffavicon.png&w=32&q=75 1x, /_next/image?url=%2Ffavicon.png&w=64&q=75 2x"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Flogo.png&w=128&q=75 1x, /_next/image?url=%2Flogo.png&w=256&q=75 2x"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Ffavicon.png&w=32&q=75 1x, /_next/image?url=%2Ffavicon.png&w=48&q=75 2x"/><link rel="stylesheet" href="/_next/static/chunks/0wqf_v9i12zlw.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/16i90eio_ss7o.js"/><script src="/_next/static/chunks/0dgq26a5_oy.a.js" async=""></script><script src="/_next/static/chunks/0h4bq73pogmtb.js" async=""></script><script src="/_next/static/chunks/0257pdz1-imal.js" async=""></script><script src="/_next/static/chunks/turbopack-0hiru4uy9kb-x.js" async=""></script><script src="/_next/static/chunks/0u46szahhg8-l.js" async=""></script><script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script><script src="/_next/static/chunks/0a4bykb92jbu2.js" async=""></script><script src="/_next/static/chunks/0zarrl-ygjy7b.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" as="style"/><link rel="icon" href="/favicon.png" type="image/png"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>Agentnetes: Zero to a Self-Organizing AI Agency. On Demand.</title><meta name="description" content="Self-organizing AI agent swarms on demand. Kubernetes-inspired orchestration for AI agents — spawn, isolate, execute, and collect specialist agents from a single goal."/><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="antialiased"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","dark",null,["light","dark"],null,false,true)</script><div class="overflow-x-hidden" style="font-family:'Inter', sans-serif;background:var(--bg-base);color:rgb(var(--fg))"><nav class="fixed top-0 inset-x-0 z-50 border-b border-white/[0.06] backdrop-blur-xl" style="background:color-mix(in srgb, var(--bg-base) 90%, transparent)"><div class="max-w-6xl mx-auto px-6 h-14 flex items-center justify-between"><div class="flex items-center gap-2.5"><img alt="Agentnetes" width="26" height="26" decoding="async" data-nimg="1" class="rounded-lg" style="color:transparent" srcSet="/_next/image?url=%2Ffavicon.png&w=32&q=75 1x, /_next/image?url=%2Ffavicon.png&w=64&q=75 2x" src="/_next/image?url=%2Ffavicon.png&w=64&q=75"/><span class="font-bold tracking-tight text-white">Agentnetes</span><span class="text-xs font-mono text-white/50 border border-white/15 rounded px-2 py-0.5 uppercase tracking-wider hidden sm:inline">Kubernetes-inspired</span></div><div class="flex items-center gap-3"><div class="w-9 h-9"></div><a class="text-white/60 hover:text-white/80 transition-colors text-sm hidden sm:block" href="/docs">Docs</a><a href="https://github.com/Shashikant86/agentnetes" target="_blank" rel="noreferrer" class="text-white/65 hover:text-white/80 transition-colors p-1"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github" aria-hidden="true"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg></a><a class="flex items-center gap-1.5 text-xs font-semibold px-4 py-2 rounded-lg transition-all" style="background:linear-gradient(135deg, #c084fc, #f472b6, #fb923c);color:#000" href="/demo">Try Demo <svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></nav><section class="pt-28 pb-20 px-6 relative overflow-hidden"><div class="max-w-4xl mx-auto text-center relative"><div class="flex justify-center mb-8"><img alt="Agentnetes" width="100" height="100" decoding="async" data-nimg="1" class="rounded-2xl animate-float" style="color:transparent" srcSet="/_next/image?url=%2Flogo.png&w=128&q=75 1x, /_next/image?url=%2Flogo.png&w=256&q=75 2x" src="/_next/image?url=%2Flogo.png&w=256&q=75"/></div><div class="inline-flex items-center gap-2 rounded-full px-4 py-1.5 text-[11px] font-mono mb-6 border border-white/10" style="background:var(--bg-subtle)"><span class="text-white/65">Self-Organizing AI Agent Swarms. On Demand.</span><span class="text-white/20">·</span><span class="text-white/35">Kubernetes-inspired orchestration for AI agents</span></div><h1 class="text-5xl sm:text-7xl font-extrabold tracking-tight mb-5 leading-[1.05]"><span class="text-white">Zero to a</span><br/><span class="text-white"><span class="inline-block transition-all duration-300" style="opacity:1;transform:translateY(0)">Self-Organizing</span></span><br/><span class="text-white">AI Agency.</span></h1><p class="text-white/75 text-lg mb-4 max-w-2xl mx-auto leading-relaxed font-medium">Type a goal. Agentnetes forms a dynamic team of specialist agents, roles invented on the fly, each running in its own isolated sandbox with the repo pre-cloned.</p><p class="text-white/50 text-base mb-4 max-w-xl mx-auto leading-relaxed">No static agent configs. No stuffed context windows. The team assembles itself, works in parallel, and delivers together.</p><div class="flex flex-wrap items-center justify-center gap-2 mb-10"><div class="flex items-center gap-2 rounded-full border border-white/10 px-4 py-1.5 text-xs font-mono" style="background:var(--bg-subtle)"><span class="w-1.5 h-1.5 rounded-full shrink-0" style="background:#60a5fa"></span><span class="text-white/80 font-semibold">RLM Pattern</span><span class="text-white/35">MIT CSAIL</span></div><div class="flex items-center gap-2 rounded-full border border-white/10 px-4 py-1.5 text-xs font-mono" style="background:var(--bg-subtle)"><span class="w-1.5 h-1.5 rounded-full shrink-0" style="background:#a78bfa"></span><span class="text-white/80 font-semibold">AutoResearch Loop</span><span class="text-white/35">Karpathy</span></div><div class="flex items-center gap-2 rounded-full border border-white/10 px-4 py-1.5 text-xs font-mono" style="background:var(--bg-subtle)"><span class="w-1.5 h-1.5 rounded-full shrink-0" style="background:#f472b6"></span><span class="text-white/80 font-semibold">Two-Tool MCP</span><span class="text-white/35">search() + execute()</span></div></div><div class="inline-flex items-center gap-3 rounded-2xl px-5 py-3.5 mb-10 text-sm font-mono max-w-full" style="background:var(--bg-subtle);box-shadow:0 0 0 1px rgba(168,85,247,0.2), 0 8px 32px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.04)"><span class="text-white/50 shrink-0">$</span><span class="text-white/75 shrink-0">agentnetes run</span><span class="text-violet-300"><span class="inline-block w-0.5 h-4 bg-violet-400 ml-px align-middle transition-opacity opacity-100"></span></span></div><div class="flex flex-col sm:flex-row items-center justify-center gap-3 mb-16"><a class="flex items-center gap-2 font-semibold px-7 py-3 rounded-xl text-base transition-all hover:opacity-90 hover:scale-[1.02] animate-glow-pulse" style="background:linear-gradient(135deg, #a855f7, #ec4899, #f97316);color:#fff;box-shadow:0 0 40px rgba(168,85,247,0.35), 0 8px 32px rgba(0,0,0,0.4)" href="/demo"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap" aria-hidden="true"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg>Try Demo · no signup</a><a class="flex items-center gap-2 border border-white/15 text-white/70 px-7 py-3 rounded-xl hover:border-white/30 hover:text-white transition-all text-base" href="/docs">Read the docs <svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg></a></div><div class="max-w-xl mx-auto w-full mb-10"><div class="rounded-2xl border border-white/10 overflow-hidden" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><div class="flex items-center gap-2"><span class="w-2.5 h-2.5 rounded-full bg-red-500/60"></span><span class="w-2.5 h-2.5 rounded-full bg-yellow-500/60"></span><span class="w-2.5 h-2.5 rounded-full bg-green-500/60"></span></div><span class="text-white/30 text-xs font-mono">terminal</span><a href="https://www.npmjs.com/package/agentnetes" target="_blank" rel="noreferrer" class="text-[11px] font-mono text-purple-400 hover:text-purple-300 transition-colors">npmjs.com/package/agentnetes →</a></div><div class="px-5 py-4 space-y-2 text-sm font-mono text-left"><div><span class="text-white/30">$ </span><span class="text-green-400">npm</span><span class="text-white/80"> install -g agentnetes</span></div><div class="text-white/30 text-xs pt-1 border-t border-white/[0.05]">then run on any git repo</div><div><span class="text-white/30">$ </span><span class="text-green-400">agentnetes</span><span class="text-white/80"> run </span><span class="text-purple-400">"add dark mode to this app"</span></div></div></div></div><div class="grid grid-cols-2 sm:grid-cols-4 gap-px rounded-2xl overflow-hidden" style="box-shadow:0 0 0 1px rgba(168,85,247,0.15)"><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-2xl font-bold mb-0.5 font-mono" style="color:#c084fc">0<!-- -->+</div><div class="text-[11px] text-white/65 font-mono">parallel agents</div></div><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-2xl font-bold mb-0.5 font-mono" style="color:#f472b6">0<!-- --> tools</div><div class="text-[11px] text-white/65 font-mono">per agent (MCP)</div></div><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-2xl font-bold mb-0.5 font-mono" style="color:#fb923c">0<!-- -->K+</div><div class="text-[11px] text-white/65 font-mono">lines explored</div></div><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-2xl font-bold mb-0.5 font-mono" style="color:#a78bfa">0<!-- --> goal</div><div class="text-[11px] text-white/65 font-mono">to a full team</div></div></div></div></section><section class="py-24 px-6"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">The Problem</div><h2 class="text-3xl font-bold mb-4 text-white">Single agents break on real codebases.</h2><p class="text-white/70 text-base max-w-2xl mx-auto leading-relaxed">Teams have tried everything: single coding agents, prompt-stuffed RAG pipelines, hand-wired MCP tools, elaborate harnesses. They all hit the same wall. Real codebases are too large for one context window, too complex for one agent, and too dynamic for static tool configs. Nobody stopped to ask: what if the agents invented their own team?</p></div><div class="grid sm:grid-cols-3 gap-4 mb-12"><div class="rounded-2xl border p-6 border-white/10" style="background:var(--bg-subtle)"><div class="text-sm font-semibold mb-0.5 text-white/60">Single agent + tools</div><div class="text-[11px] font-mono mb-4 text-white/25">Cursor, Copilot, custom harnesses</div><ul class="space-y-2"><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Entire codebase stuffed into context</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Context rot beyond ~50K tokens</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Sequential: one task at a time</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">One failure halts everything</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Static tool lists, no emergent roles</span></li></ul></div><div class="rounded-2xl border p-6 border-purple-500/40" style="background:rgba(168,85,247,0.06)"><div class="text-sm font-semibold mb-0.5 text-purple-400">Agentnetes</div><div class="text-[11px] font-mono mb-4 text-purple-400/50">vRLM runtime · RLM pattern</div><ul class="space-y-2"><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-purple-400">✓</span><span class="text-white/75">Context lives in sandboxes, not prompts</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-purple-400">✓</span><span class="text-white/75">Agents explore via grep, find, cat</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-purple-400">✓</span><span class="text-white/75">Specialists run in parallel</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-purple-400">✓</span><span class="text-white/75">Agents catch and fix each other's errors</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-purple-400">✓</span><span class="text-white/75">Roles invented per goal, never hardcoded</span></li></ul></div><div class="rounded-2xl border p-6 border-white/10" style="background:var(--bg-subtle)"><div class="text-sm font-semibold mb-0.5 text-white/60">Teams using AI tools</div><div class="text-[11px] font-mono mb-4 text-white/25">Copilot, Cursor, RAG, MCP harnesses</div><ul class="space-y-2"><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Try different coding agent harnesses</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Hand-wire MCP tools and hope they compose</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Build RAG pipelines to stuff context</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Tune prompts and pray context holds</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Never break the problem down RLM-style</span></li></ul></div></div></div></section><section class="py-20 px-6"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-12"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Who Is This For</div><h2 class="text-3xl font-bold mb-4 text-white">Built for developers who move fast.</h2></div><div class="grid sm:grid-cols-2 lg:grid-cols-4 gap-4"><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="text-2xl mb-3">🧑💻</div><div class="text-white font-semibold text-base mb-2">Solo developers</div><div class="text-white/60 text-sm leading-relaxed">Get the leverage of a full engineering team on your personal projects. Ship faster without hiring.</div></div><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="text-2xl mb-3">🏗️</div><div class="text-white font-semibold text-base mb-2">Monorepo teams</div><div class="text-white/60 text-sm leading-relaxed">Point the swarm at your large codebase. Agents explore only what they need · no context limits.</div></div><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="text-2xl mb-3">🔐</div><div class="text-white font-semibold text-base mb-2">Security engineers</div><div class="text-white/60 text-sm leading-relaxed">Spin up a dedicated audit swarm to scan, analyse, and fix vulnerabilities across the entire codebase.</div></div><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="text-2xl mb-3">⚙️</div><div class="text-white font-semibold text-base mb-2">Platform engineers</div><div class="text-white/60 text-sm leading-relaxed">Automate cross-cutting concerns · test coverage, observability, migrations · across all services.</div></div></div></div></section><section class="py-20 px-6"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-12"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Differentiation</div><h2 class="text-3xl font-bold mb-4 text-white">Not another AI coding assistant.</h2><p class="text-white/65 text-base max-w-lg mx-auto">Agentnetes is not autocomplete. It is not a chatbot. It is a swarm that investigates, builds, tests, and delivers.</p></div><div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-4"><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">01</div><div class="text-white font-semibold text-base mb-2">Self-organizing teams</div><div class="text-white/60 text-sm leading-relaxed">The model invents the roles it needs. A provider task spawns a Scout, Engineer, Tester. A security audit spawns an entirely different team. Nothing is hardcoded.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">02</div><div class="text-white font-semibold text-base mb-2">Real code execution</div><div class="text-white/60 text-sm leading-relaxed">Agents run real shell commands in real sandboxes. Tests actually execute. Build failures get fixed. This is not a simulation of engineering · it is engineering.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">03</div><div class="text-white font-semibold text-base mb-2">Any model, same swarm</div><div class="text-white/60 text-sm leading-relaxed">Swap Gemini for Claude or GPT by changing one env var. The swarm architecture is model-agnostic. Route through Vercel AI Gateway or call Google directly.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">04</div><div class="text-white font-semibold text-base mb-2">Two-tool MCP strategy</div><div class="text-white/60 text-sm leading-relaxed">Each agent has exactly two tools: search() and execute(). ~1,000 token footprint regardless of codebase size. No tool bloat, no context waste.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">05</div><div class="text-white font-semibold text-base mb-2">Context stays external</div><div class="text-white/60 text-sm leading-relaxed">Files never enter the prompt. Agents write code to explore the codebase · grep, find, cat. Proven by the MIT CSAIL RLM paper to outperform context-stuffing 2×.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">06</div><div class="text-white font-semibold text-base mb-2">Agents fix each other</div><div class="text-white/60 text-sm leading-relaxed">When the Tester finds a bug, it routes back to the Engineer automatically. The swarm has a built-in try → test → fix loop that runs until tests pass.</div></div></div></div></section><section class="py-24 px-6"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-12"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Architecture</div><h2 class="text-3xl font-bold mb-4 text-white">One goal. A recursive agent swarm.</h2><p class="text-white/75 text-base max-w-xl mx-auto leading-relaxed">The root agent decomposes your goal, invents the right team of specialists, and orchestrates them across isolated sandboxes. Roles are fully emergent. Nothing is hardcoded.</p></div><div class="grid lg:grid-cols-2 gap-8 items-start"><div class="rounded-2xl border border-white/10 p-7" style="background:var(--bg-panel)"><div class="flex justify-center mb-5"><div class="flex items-center gap-2 border border-white/10 rounded-xl px-5 py-2.5 bg-white/5"><span class="text-white/70 text-xs font-mono">goal:</span><span class="text-white text-xs font-mono">"Add @ai-sdk/deepseek provider"</span></div></div><div class="flex justify-center mb-3"><div class="w-px h-5 bg-white/10"></div></div><div class="flex justify-center mb-3"><div class="border border-yellow-400/40 bg-yellow-400/5 rounded-xl px-5 py-3 text-center"><div class="text-yellow-300 text-xs font-mono font-semibold">Root Agent / Tech Lead</div><div class="text-white/75 text-[10px] mt-0.5 font-mono">Gemini 2.5 Pro via AI Gateway</div><div class="flex items-center justify-center gap-1.5 mt-1.5"><span class="w-1.5 h-1.5 rounded-full bg-yellow-400 animate-pulse"></span><span class="text-yellow-500/70 text-[10px] font-mono">vRLM orchestrator</span></div></div></div><div class="flex justify-center gap-14 mb-3"><div class="w-px h-5 bg-white/10"></div><div class="w-px h-5 bg-white/10"></div><div class="w-px h-5 bg-white/10"></div><div class="w-px h-5 bg-white/10"></div></div><div class="grid grid-cols-2 sm:grid-cols-4 gap-3 mb-5"><div class="rounded-xl border border-blue-400/30 bg-blue-400/5 p-3 text-center"><div class="text-lg mb-1">🔍</div><div class="text-white/90 text-[10px] font-medium leading-tight">Architecture Scout</div><div class="text-white/65 text-[9px] font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-blue-400"></span><span class="text-white/65 text-[9px] font-mono">search()</span></div></div><div class="rounded-xl border border-violet-400/30 bg-violet-400/5 p-3 text-center"><div class="text-lg mb-1">⚙️</div><div class="text-white/90 text-[10px] font-medium leading-tight">Provider Engineer</div><div class="text-white/65 text-[9px] font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-violet-400"></span><span class="text-white/65 text-[9px] font-mono">execute()</span></div></div><div class="rounded-xl border border-emerald-400/30 bg-emerald-400/5 p-3 text-center"><div class="text-lg mb-1">🧪</div><div class="text-white/90 text-[10px] font-medium leading-tight">Test Engineer</div><div class="text-white/65 text-[9px] font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-emerald-400"></span><span class="text-white/65 text-[9px] font-mono">execute()</span></div></div><div class="rounded-xl border border-orange-400/30 bg-orange-400/5 p-3 text-center"><div class="text-lg mb-1">📦</div><div class="text-white/90 text-[10px] font-medium leading-tight">Package Engineer</div><div class="text-white/65 text-[9px] font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-orange-400"></span><span class="text-white/65 text-[9px] font-mono">execute()</span></div></div></div><div class="border-t border-white/5 pt-4 flex flex-wrap justify-center gap-5"><span class="text-[10px] font-mono text-white/65">Firecracker microVM per agent</span><span class="text-[10px] font-mono text-white/65">search() + execute() MCP only</span><span class="text-[10px] font-mono text-white/65">SSE event stream to UI</span></div></div><div class="space-y-3"><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 transition-colors" style="background:var(--bg-card)"><div class="text-white/65 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-network" aria-hidden="true"><rect x="16" y="16" width="6" height="6" rx="1"></rect><rect x="2" y="16" width="6" height="6" rx="1"></rect><rect x="9" y="2" width="6" height="6" rx="1"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"></path><path d="M12 12V8"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Emergent team formation</div><div class="text-white/75 text-sm leading-relaxed">The root agent reads the codebase, understands the task, and invents the right specialist roles. A provider task gets a Scout, Engineer, Tester, and Packager. A security audit gets an entirely different team.</div></div></div><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 transition-colors" style="background:var(--bg-card)"><div class="text-white/65 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-box" aria-hidden="true"><path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"></path><path d="m3.3 7 8.7 5 8.7-5"></path><path d="M12 22V12"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Isolated Firecracker sandboxes</div><div class="text-white/75 text-sm leading-relaxed">Each agent runs in its own Vercel Sandbox (Firecracker microVM). Pre-warmed from a repo snapshot for near-instant startup. Agents cannot interfere with each other.</div></div></div><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 transition-colors" style="background:var(--bg-card)"><div class="text-white/65 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code-xml" aria-hidden="true"><path d="m18 16 4-4-4-4"></path><path d="m6 8-4 4 4 4"></path><path d="m14.5 4-5 16"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Context externalized, not stuffed</div><div class="text-white/75 text-sm leading-relaxed">Agents do not receive hundreds of files in their prompts. They write code to explore context: grep, find, cat. This is the RLM Pattern from MIT CSAIL, proven 2x more effective.</div></div></div><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 transition-colors" style="background:var(--bg-card)"><div class="text-white/65 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw" aria-hidden="true"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Agents collaborate at runtime</div><div class="text-white/75 text-sm leading-relaxed">When the Test Engineer finds a type error, that finding routes back to the Provider Engineer automatically. The vRLM runtime handles inter-agent communication.</div></div></div></div></div></div></section><section class="py-24 px-6" style="background:var(--bg-base)"><div class="max-w-4xl mx-auto"><div class="text-center mb-10"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Live Preview</div><h2 class="text-3xl font-bold mb-3 text-white">Watch the swarm execute</h2><p class="text-white/75 text-base max-w-md mx-auto">Real output from a simulated run. The actual runtime produces identical event streams.</p></div><div class="rounded-2xl border border-white/10 overflow-hidden shadow-2xl shadow-purple-500/10" style="background:var(--bg-panel)"><div class="flex items-center gap-2 px-4 py-3 border-b border-white/[0.06] bg-white/[0.02]"><span class="w-3 h-3 rounded-full bg-[#ff5f57]"></span><span class="w-3 h-3 rounded-full bg-[#ffbd2e]"></span><span class="w-3 h-3 rounded-full bg-[#28c840]"></span><span class="ml-3 text-[11px] text-white/65 font-mono flex-1">agentnetes -- vRLM runtime</span></div><div class="p-5 font-mono text-[12px] leading-6 space-y-0.5 overflow-y-auto" style="height:290px;background:var(--bg-panel)"><span class="inline-block w-2 h-3.5 bg-violet-400 animate-pulse align-middle"></span></div></div><div class="flex flex-wrap justify-center gap-5 mt-6"><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-yellow-400"></span><span class="text-[11px] text-white/65 font-mono">Root orchestrator</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-violet-400"></span><span class="text-[11px] text-white/65 font-mono">Shell execution</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-purple-300"></span><span class="text-[11px] text-white/65 font-mono">Worker agent</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-orange-400"></span><span class="text-[11px] text-white/65 font-mono">Inter-agent collaboration</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-emerald-400"></span><span class="text-[11px] text-white/65 font-mono">Completion</span></div></div></div></section><section class="py-24 px-6"><div class="max-w-6xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-6xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Research Foundations</div><h2 class="text-3xl font-bold mb-4 text-white">Four ideas. One system.</h2><p class="text-white/75 text-base max-w-lg mx-auto">Agentnetes combines four research-backed patterns that individually improve agent performance and together create something qualitatively different.</p></div><div class="grid sm:grid-cols-2 gap-4"><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 transition-all duration-300 flex flex-col gap-4" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-[10px] font-mono px-2 py-0.5 rounded border border-blue-500/40 text-blue-400">MIT CSAIL</div><div class="text-white/65 group-hover:text-white/70 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers" aria-hidden="true"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">RLM Pattern: Context lives in sandboxes</h3><p class="text-white/70 text-base leading-relaxed mb-3">Recursive Language Model runtime. Instead of stuffing files into an agent's context window, context is externalized into a filesystem that agents explore programmatically.</p><p class="text-white/65 text-sm leading-relaxed">Agents write small shell scripts to grep, find, and read exactly what they need. This keeps token footprints tiny regardless of codebase size and has been shown to outperform naive context-stuffing by 2x on software engineering benchmarks.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-[11px] text-violet-300">agent.execute('grep -r LanguageModelV1 packages/ -l')</div><div class="text-[10px] text-white/50 font-mono border-t border-white/5 pt-3">Based on: RLM paper, MIT CSAIL -- externalized context via code execution</div></div><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 transition-all duration-300 flex flex-col gap-4" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-[10px] font-mono px-2 py-0.5 rounded border border-purple-500/40 text-purple-400">Karpathy</div><div class="text-white/65 group-hover:text-white/70 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw" aria-hidden="true"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">AutoResearch Loop: Try, measure, keep</h3><p class="text-white/70 text-base leading-relaxed mb-3">Agents do not write code and hope for the best. They write code, run tests, measure the result, and either keep the change or discard it and try again.</p><p class="text-white/65 text-sm leading-relaxed">The Test Engineer runs vitest after every change. Type errors trigger re-implementation. Test failures trigger targeted patches. The loop runs until everything passes or the agent escalates to root.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-[11px] text-violet-300">run tests -> check failures -> patch -> repeat</div><div class="text-[10px] text-white/50 font-mono border-t border-white/5 pt-3">Based on: AutoResearch pattern -- Andrej Karpathy</div></div><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 transition-all duration-300 flex flex-col gap-4" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-[10px] font-mono px-2 py-0.5 rounded border border-emerald-500/40 text-emerald-400">MCP v2</div><div class="text-white/65 group-hover:text-white/70 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">Two-Tool MCP: search() and execute()</h3><p class="text-white/70 text-base leading-relaxed mb-3">Each agent has exactly two tools exposed via MCP: search() for finding things in the codebase, and execute() for running shell commands in its sandbox.</p><p class="text-white/65 text-sm leading-relaxed">This keeps the agent's tool surface to roughly 1,000 tokens regardless of task complexity. The agent writes arbitrary code against these two primitives. No tool proliferation. Just two powerful primitives that compose into anything.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-[11px] text-violet-300">tools: [search(), execute()] // ~1000 token footprint</div><div class="text-[10px] text-white/50 font-mono border-t border-white/5 pt-3">MCP protocol -- two-tool minimal surface strategy</div></div><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 transition-all duration-300 flex flex-col gap-4" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-[10px] font-mono px-2 py-0.5 rounded border border-orange-500/40 text-orange-400">A2A Protocol</div><div class="text-white/65 group-hover:text-white/70 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">A2A-Ready: Every agent is a publishable service</h3><p class="text-white/70 text-base leading-relaxed mb-3">Every agent Agentnetes spawns generates a standard A2A Agent Card describing its capabilities, skills, and endpoints.</p><p class="text-white/65 text-sm leading-relaxed">Today these cards are internal. Tomorrow any specialist agent can be published as an independent, discoverable service. A Provider Engineer becomes a reusable service any other system can call.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-[11px] text-violet-300">GET /agents/provider-engineer/.well-known/agent.json</div><div class="text-[10px] text-white/50 font-mono border-t border-white/5 pt-3">A2A Protocol v1.0 -- Google Agent-to-Agent standard</div></div></div></div></section><section class="py-24 px-6" style="background:var(--bg-base)"><div class="max-w-5xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Stack</div><h2 class="text-3xl font-bold mb-4 text-white">Built on the bleeding edge</h2><p class="text-white/75 text-base max-w-lg mx-auto">Every layer is the latest available. No legacy versions. No compatibility shims.</p></div><div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-4 mb-8"><div class="rounded-2xl border border-white/10 p-5" style="background:var(--bg-card)"><div class="text-[10px] font-mono text-white/65 uppercase tracking-wider mb-4">AI Runtime</div><div class="space-y-2"><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-violet-500/30 bg-violet-500/5"><div class="text-white/90 text-sm font-medium">ai (Vercel AI SDK)</div><div class="text-white/75 text-[10px] font-mono shrink-0">v7.0.0-beta.33</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-violet-500/30 bg-violet-500/5"><div class="text-white/90 text-sm font-medium">ToolLoopAgent</div><div class="text-white/75 text-[10px] font-mono shrink-0">beta agent primitive</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white/90 text-sm font-medium">@ai-sdk/google</div><div class="text-white/75 text-[10px] font-mono shrink-0">v3.0.52</div></div></div><div class="text-[11px] text-white/65 font-mono mt-4 leading-relaxed">ToolLoopAgent is the core primitive in AI SDK v7 beta. Each worker runs two MCP tools: search() and execute().</div></div><div class="rounded-2xl border border-white/10 p-5" style="background:var(--bg-card)"><div class="text-[10px] font-mono text-white/65 uppercase tracking-wider mb-4">Sandbox</div><div class="space-y-2"><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-violet-500/30 bg-violet-500/5"><div class="text-white/90 text-sm font-medium">Docker</div><div class="text-white/75 text-[10px] font-mono shrink-0">node:20-alpine · local default</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white/90 text-sm font-medium">@vercel/sandbox</div><div class="text-white/75 text-[10px] font-mono shrink-0">Firecracker microVMs</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white/90 text-sm font-medium">Local shell</div><div class="text-white/75 text-[10px] font-mono shrink-0">no-install fallback</div></div></div><div class="text-[11px] text-white/65 font-mono mt-4 leading-relaxed">Docker is the default sandbox for local runs. Vercel Firecracker available for cloud self-hosting.</div></div><div class="rounded-2xl border border-white/10 p-5" style="background:var(--bg-card)"><div class="text-[10px] font-mono text-white/65 uppercase tracking-wider mb-4">Models</div><div class="space-y-2"><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-violet-500/30 bg-violet-500/5"><div class="text-white/90 text-sm font-medium">Gemini 3.1 Pro</div><div class="text-white/75 text-[10px] font-mono shrink-0">planner · latest</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-violet-500/30 bg-violet-500/5"><div class="text-white/90 text-sm font-medium">Gemini 2.5 Flash</div><div class="text-white/75 text-[10px] font-mono shrink-0">planner + worker · default</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white/90 text-sm font-medium">Gemini 3.1 Flash-Lite</div><div class="text-white/75 text-[10px] font-mono shrink-0">worker · fastest</div></div></div><div class="text-[11px] text-white/65 font-mono mt-4 leading-relaxed">Full Gemini 2.0 · 2.5 · 3.x lineup supported. Separate planner and worker models configurable in the UI.</div></div></div><div class="rounded-2xl border border-white/10 overflow-hidden" style="background:var(--bg-panel)"><div class="flex items-center gap-2 px-4 py-3 border-b border-white/[0.06] bg-white/[0.02]"><span class="text-[10px] font-mono text-white/65">lib/vrlm/runtime.ts</span></div><div class="p-5 font-mono text-[12px] leading-7 overflow-x-auto"><div><span class="text-white/65">// Each worker: two tools, one sandbox, emergent role</span></div><div class="mt-1.5"><span class="text-violet-400">const</span><span class="text-white"> agent </span><span class="text-white/75">=</span><span class="text-white"> new </span><span class="text-pink-400">ToolLoopAgent</span><span class="text-white">({</span></div><div class="pl-6"><span class="text-white/70">model: </span><span class="text-orange-400">google</span><span class="text-white">('gemini-2.5-flash'),</span></div><div class="pl-6"><span class="text-white/70">tools: </span><span class="text-white">{ </span><span class="text-emerald-400">search</span><span class="text-white">, </span><span class="text-emerald-400">execute</span><span class="text-white"> <!-- -->}<!-- -->,</span></div><div class="pl-6"><span class="text-white/70">stopWhen: </span><span class="text-orange-400">stepCountIs</span><span class="text-white">(40),</span></div><div class="pl-6"><span class="text-white/70">instructions: </span><span class="text-white">buildWorkerPrompt(task),</span></div><div><span class="text-white">});</span></div><div class="mt-2"><span class="text-white/65">// Drive the tool loop; events stream to the UI via SSE</span></div><div><span class="text-violet-400">for await </span><span class="text-white">(</span><span class="text-violet-400">const </span><span class="text-white">_ </span><span class="text-violet-400">of </span><span class="text-white">result.</span><span class="text-pink-400">fullStream</span><span class="text-white">) <!-- -->{ ... }</span></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05]"><div class="max-w-4xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">How It Works</div><h2 class="text-3xl font-bold mb-4 text-white">One sentence. Dynamic team. Real results.</h2><p class="text-white/75 text-base max-w-md mx-auto">From goal to dynamic team formation to delivered artifacts, in isolated sandboxes</p></div><div class="grid sm:grid-cols-2 gap-7"><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-gray-700 text-white/65">01</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">You give a goal</h4><p class="text-white/75 text-base leading-relaxed">Type what you want built. Not instructions on how. Just what. Agentnetes figures out the rest. The goal can reference a GitHub repo or an uploaded codebase.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-yellow-500/40 text-yellow-500/80">02</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Root agent explores</h4><p class="text-white/75 text-base leading-relaxed">The Tech Lead spawns a Firecracker sandbox pre-warmed with the target repo. It uses grep, find, and cat to map the architecture. Context lives in the filesystem, not the prompt.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-blue-500/40 text-blue-400/80">03</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Team self-assembles</h4><p class="text-white/75 text-base leading-relaxed">Based on what it finds, the root agent invents the team. Roles, goals, and dependencies are all emergent. A provider task gets different specialists than a security audit.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-violet-500/40 text-violet-400/80">04</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Agents work in parallel</h4><p class="text-white/75 text-base leading-relaxed">Each specialist runs concurrently in its own Firecracker microVM. They explore, write code, run tests, and fix failures. No sequential bottlenecks.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-orange-500/40 text-orange-400/80">05</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Agents collaborate</h4><p class="text-white/75 text-base leading-relaxed">Test failures and findings route back to the right specialist automatically. The vRLM runtime handles inter-agent communication. No human needed to relay.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-emerald-500/40 text-emerald-400/80">06</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Synthesis and delivery</h4><p class="text-white/75 text-base leading-relaxed">The root agent collects all artifacts, verifies completeness, and streams a structured summary to the UI with every generated file. Each agent publishes an A2A card.</p></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05]" style="background:var(--bg-base)"><div class="max-w-4xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Runtime</div><h2 class="text-3xl font-bold mb-4 text-white">vRLM: The Orchestration Runtime</h2><p class="text-white/70 text-base max-w-xl mx-auto">Virtual Recursive Language Model Runtime. The engine between your goal and the agents. Inspired by the <a href="https://arxiv.org/abs/2512.24601" target="_blank" rel="noreferrer" class="text-purple-400/80 hover:text-purple-400 transition-colors">RLM pattern from MIT CSAIL</a>.</p></div><div class="grid md:grid-cols-3 gap-4 mb-10"><div class="rounded-2xl border p-5 border-yellow-500/20 bg-yellow-500/[0.03]"><div class="flex items-center gap-2 mb-3"><span class="text-[10px] font-mono text-white/25">01</span><span class="text-sm font-bold text-yellow-400/80">Plan</span></div><p class="text-white/55 text-sm leading-relaxed">Root agent explores the repo with grep and find, then calls the Gemini planner to invent a specialist team. Roles are fully emergent. Nothing is hardcoded.</p></div><div class="rounded-2xl border p-5 border-purple-500/20 bg-purple-500/[0.03]"><div class="flex items-center gap-2 mb-3"><span class="text-[10px] font-mono text-white/25">02</span><span class="text-sm font-bold text-purple-400/80">Execute</span></div><p class="text-white/55 text-sm leading-relaxed">Workers run in parallel. Each gets an isolated Docker container with the repo pre-cloned, and two tools: search() to grep the codebase and execute() to run any shell command.</p></div><div class="rounded-2xl border p-5 border-emerald-500/20 bg-emerald-500/[0.03]"><div class="flex items-center gap-2 mb-3"><span class="text-[10px] font-mono text-white/25">03</span><span class="text-sm font-bold text-emerald-400/80">Synthesize</span></div><p class="text-white/55 text-sm leading-relaxed">When all workers complete, the root agent reads their findings and artifacts, then produces a structured summary. Every generated file is collected and streamed to the UI.</p></div></div><div class="grid md:grid-cols-2 gap-5 items-start"><div><div class="text-[10px] font-mono text-white/30 uppercase tracking-widest mb-3">Event Stream · SSE</div><p class="text-white/55 text-sm leading-relaxed mb-4">Every phase emits typed events over Server-Sent Events. The UI subscribes and renders agent activity in real time with no polling.</p><div class="space-y-1.5"><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-yellow-400/70">task-created</span><span class="text-white/30">new agent spawned</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-white/40">task-updated</span><span class="text-white/30">status or progress change</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-emerald-400/70">task-completed</span><span class="text-white/30">agent finished with artifacts</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-red-400/70">task-failed</span><span class="text-white/30">agent error</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-purple-400/70">finding</span><span class="text-white/30">agent discovered something</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-blue-400/70">terminal</span><span class="text-white/30">shell command + output</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-emerald-400/50">artifact</span><span class="text-white/30">file produced by an agent</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-orange-400/70">collaboration</span><span class="text-white/30">inter-agent finding shared</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-pink-400/70">synthesis</span><span class="text-white/30">root agent final summary</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-white/40">done</span><span class="text-white/30">run complete</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-red-400/50">error</span><span class="text-white/30">runtime error</span></div></div></div><div class="rounded-2xl border border-white/10 overflow-hidden" style="background:var(--bg-panel)"><div class="px-4 py-2.5 border-b border-white/[0.06] text-[10px] font-mono text-white/35">lib/vrlm/types.ts</div><div class="p-4 font-mono text-[11px] leading-6 space-y-0.5"><div><span class="text-violet-400">interface </span><span class="text-white">VrlmConfig <!-- -->{</span></div><div class="pl-4"><span class="text-white/50">maxWorkers: </span><span class="text-blue-400">number</span><span class="text-white/30">; // default 6</span></div><div class="pl-4"><span class="text-white/50">maxStepsPerAgent: </span><span class="text-blue-400">number</span><span class="text-white/30">; // default 20</span></div><div class="pl-4"><span class="text-white/50">plannerModel: </span><span class="text-blue-400">string</span><span class="text-white/30">; // orchestrator</span></div><div class="pl-4"><span class="text-white/50">workerModel: </span><span class="text-blue-400">string</span><span class="text-white/30">; // specialists</span></div><div class="pl-4"><span class="text-white/50">repoUrl: </span><span class="text-blue-400">string</span><span class="text-white/30">; // cloned per agent</span></div><div class="pl-4"><span class="text-white/50">sandboxProvider: </span><span class="text-emerald-400">'docker' | 'vercel' | 'e2b' | 'daytona' | 'local'</span><span class="text-white/30">;</span></div><div class="pl-4"><span class="text-white/50">googleApiKey?: </span><span class="text-blue-400">string</span><span class="text-white/30">; // UI override</span></div><div><span class="text-white">}</span></div></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05]"><div class="max-w-4xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Get Started</div><h2 class="text-3xl font-bold mb-4 text-white">Three ways to run</h2><p class="text-white/75 text-base max-w-md mx-auto">From instant browser demo to full local execution with Docker sandboxes</p></div><div class="grid md:grid-cols-3 gap-5"><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="flex items-center gap-2 mb-4"><span class="text-[10px] font-mono px-2 py-0.5 rounded-full border border-emerald-500/30 text-emerald-400 bg-emerald-500/5">no setup</span></div><div class="text-lg font-semibold text-white mb-2">Simulation</div><p class="text-white/55 text-sm leading-relaxed mb-5">Watch the full agent lifecycle in your browser. No API key, no Docker, no install. Pre-scripted scenarios replay real event sequences.</p><div class="rounded-xl border border-white/[0.06] px-3 py-2 font-mono text-[11px] text-white/50 mb-5" style="background:var(--bg-panel)">Open /demo → toggle Simulation → watch</div><a class="flex items-center gap-1.5 text-sm font-semibold px-4 py-2 rounded-lg transition-all hover:opacity-90 w-full justify-center" style="background:linear-gradient(135deg, #a855f7, #ec4899, #f97316);color:#fff" href="/demo">Try Demo <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div><div class="rounded-2xl border border-violet-500/20 p-6 relative" style="background:var(--bg-card)"><div class="flex items-center gap-2 mb-4"><span class="text-[10px] font-mono px-2 py-0.5 rounded-full border border-violet-500/30 text-violet-400 bg-violet-500/5">recommended</span></div><div class="text-lg font-semibold text-white mb-2">Self-host · Local</div><p class="text-white/55 text-sm leading-relaxed mb-5">Clone the repo and run locally. Both simulation and real agent execution available. Configure your Google API key and target repo directly in the UI. No <code class="text-white/50 text-xs">.env</code> file needed.</p><div class="rounded-xl border border-white/[0.06] px-3 py-2 font-mono text-[10px] text-white/50 mb-5 space-y-1" style="background:var(--bg-panel)"><div><span class="text-white/30">$ </span>git clone · npm install</div><div><span class="text-white/30">$ </span>docker pull node:20-alpine</div><div><span class="text-white/30">$ </span>npm run dev → open /demo</div></div><a class="flex items-center gap-1.5 text-sm font-semibold px-4 py-2 rounded-lg border border-violet-500/30 text-violet-400 hover:border-violet-500/60 hover:text-violet-300 transition-all w-full justify-center" href="/docs">Read the docs <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg></a></div><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="flex items-center gap-2 mb-4"><span class="text-[10px] font-mono px-2 py-0.5 rounded-full border border-blue-500/30 text-blue-400 bg-blue-500/5">CLI</span></div><div class="text-lg font-semibold text-white mb-2">CLI · Any Repo</div><p class="text-white/55 text-sm leading-relaxed mb-5">Install the npm package globally and run against any local git repo. Requires Docker running locally and a Google API key.</p><div class="rounded-xl border border-white/[0.06] px-3 py-2 font-mono text-[10px] text-white/50 mb-5 space-y-1" style="background:var(--bg-panel)"><div><span class="text-white/30">$ </span>npm install -g agentnetes</div><div><span class="text-white/30">$ </span>export GOOGLE_API_KEY=...</div><div><span class="text-white/30">$ </span>agentnetes run "your goal"</div></div><a href="https://www.npmjs.com/package/agentnetes" target="_blank" rel="noreferrer" class="flex items-center gap-1.5 text-sm font-semibold px-4 py-2 rounded-lg border border-white/10 text-white/55 hover:border-white/20 hover:text-white/75 transition-all w-full justify-center">npm package <svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05]" style="background:var(--bg-base)"><div class="max-w-4xl mx-auto"><div class="grid lg:grid-cols-2 gap-12 items-center"><div><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Models</div><h2 class="text-3xl font-bold mb-4 text-white">Any model. Same swarm.</h2><p class="text-white/70 text-lg leading-relaxed mb-6">Bring your own Google API key and swap models from the UI. No config file needed. Separate planner and worker models let you balance quality vs cost.</p><div class="space-y-3"><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check text-emerald-400 shrink-0" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><span class="text-base text-white/80">Gemini 3.x, 2.5, 2.0 all supported</span></div><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check text-emerald-400 shrink-0" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><span class="text-base text-white/80">Separate planner and worker models</span></div><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check text-emerald-400 shrink-0" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><span class="text-base text-white/80">BYOK: paste API key directly in the UI</span></div><div class="flex items-center gap-2.5"><div class="w-3.5 h-3.5 rounded-full border border-white/20 shrink-0"></div><span class="text-base text-white/65">Claude / GPT-4o support</span><span class="text-[9px] font-mono text-white/50 border border-white/20 rounded px-1">soon</span></div></div></div><div class="space-y-3"><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-violet-500/30 bg-violet-500/5"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 3.1 Pro</div><div class="text-white/65 text-xs font-mono mt-0.5">Planner · latest</div></div><span class="text-[9px] font-mono text-white/65 border border-white/10 rounded px-1.5 py-0.5">new</span></div><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-blue-400/20 bg-blue-400/5"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 2.5 Flash</div><div class="text-white/65 text-xs font-mono mt-0.5">Planner + Worker · default</div></div><span class="text-[9px] font-mono text-white/65 border border-white/10 rounded px-1.5 py-0.5">recommended</span></div><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-emerald-500/20 bg-emerald-500/5"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 3.1 Flash-Lite</div><div class="text-white/65 text-xs font-mono mt-0.5">Worker · fastest</div></div><span class="text-[9px] font-mono text-white/65 border border-white/10 rounded px-1.5 py-0.5">fast</span></div><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-white/10 bg-white/[0.02]"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 2.0 Flash</div><div class="text-white/65 text-xs font-mono mt-0.5">Worker · budget</div></div></div><div class="rounded-xl border border-white/10 px-4 py-3 font-mono text-[11px]" style="background:var(--bg-panel)"><span class="text-white/65">createGoogleGenerativeAI<!-- -->({</span><br/><span class="text-white/65"> <!-- -->apiKey: </span><span class="text-violet-400">process.env.GOOGLE_API_KEY</span><br/><span class="text-white/65">}<!-- -->);</span></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05]"><div class="max-w-2xl mx-auto"><div class="rounded-2xl border border-white/10 p-12 text-center relative overflow-hidden" style="background:linear-gradient(135deg, rgba(168,85,247,0.06) 0%, rgba(236,72,153,0.04) 50%, rgba(249,115,22,0.06) 100%)"><div class="flex justify-center mb-5"><img alt="Agentnetes" loading="lazy" width="48" height="48" decoding="async" data-nimg="1" class="rounded-xl" style="color:transparent" srcSet="/_next/image?url=%2Ffavicon.png&w=48&q=75 1x, /_next/image?url=%2Ffavicon.png&w=96&q=75 2x" src="/_next/image?url=%2Ffavicon.png&w=96&q=75"/></div><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-4">Try it now</div><h2 class="text-2xl font-bold mb-3 text-white">See the swarm execute</h2><p class="text-white/75 text-base mb-8 max-w-sm mx-auto leading-relaxed">Give it a goal. Watch specialist agents spawn, explore, implement, test, and deliver inside isolated sandboxes. Under 90 seconds.</p><div class="flex flex-col sm:flex-row items-center justify-center gap-3"><a class="flex items-center gap-2 font-semibold px-8 py-3 rounded-xl text-base transition-all hover:opacity-90 hover:scale-[1.02]" style="background:linear-gradient(135deg, #a855f7, #ec4899, #f97316);color:#fff" href="/demo">Try Demo · no signup <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a class="flex items-center gap-2 border border-white/15 text-white/70 px-8 py-3 rounded-xl hover:border-white/30 hover:text-white transition-all text-base" href="/docs">Read the docs</a></div></div></div></section><footer class="border-t border-white/[0.05] py-10 px-6"><div class="max-w-6xl mx-auto flex flex-col sm:flex-row items-center justify-between gap-6"><div class="flex items-center gap-2.5"><img alt="Agentnetes" width="22" height="22" decoding="async" data-nimg="1" class="rounded-lg" style="color:transparent" srcSet="/_next/image?url=%2Ffavicon.png&w=32&q=75 1x, /_next/image?url=%2Ffavicon.png&w=48&q=75 2x" src="/_next/image?url=%2Ffavicon.png&w=48&q=75"/><div><div class="font-bold text-base text-white">Agentnetes</div><div class="text-white/65 text-xs font-mono">Zero to Agent London 2026</div></div></div><div class="text-white/50 text-sm font-mono text-center">Zero to Agent London · Google DeepMind x Vercel · 2026</div><div class="flex items-center gap-5"><a class="text-white/65 hover:text-white/80 transition-colors text-sm" href="/demo">Simulation</a><a href="https://cerebralvalley.ai/e/zero-to-agent-london" target="_blank" rel="noreferrer" class="flex items-center gap-1 text-white/65 hover:text-white/80 transition-colors text-sm">Hackathon <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a><a href="https://github.com/Shashikant86/agentnetes" target="_blank" rel="noreferrer" class="text-white/65 hover:text-white/80 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github" aria-hidden="true"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg></a></div></div></footer></div><!--$--><!--/$--><script src="/_next/static/chunks/16i90eio_ss7o.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[80492,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ThemeProvider\"]\n3:I[39756,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n5:I[47257,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ClientPageRoot\"]\n6:I[31713,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0a4bykb92jbu2.js\",\"/_next/static/chunks/0zarrl-ygjy7b.js\"],\"default\"]\n9:I[97367,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nc:I[97367,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\ne:I[97367,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\n10:I[68027,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0wqf_v9i12zlw.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800\u0026family=JetBrains+Mono:wght@400;500\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0wqf_v9i12zlw.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0u46szahhg8-l.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"icon\",\"href\":\"/favicon.png\",\"type\":\"image/png\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800\u0026family=JetBrains+Mono:wght@400;500\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{\"Component\":\"$6\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0a4bykb92jbu2.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0zarrl-ygjy7b.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lf\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$10\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0wqf_v9i12zlw.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Vd1Q6l74_n2F-lMfVCVr_\"}\n"])</script><script>self.__next_f.push([1,"7:{}\n8:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"b:null\nf:[[\"$\",\"title\",\"0\",{\"children\":\"Agentnetes: Zero to a Self-Organizing AI Agency. On Demand.\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Self-organizing AI agent swarms on demand. Kubernetes-inspired orchestration for AI agents — spawn, isolate, execute, and collect specialist agents from a single goal.\"}]]\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Ffavicon.png&w=32&q=75 1x, /_next/image?url=%2Ffavicon.png&w=64&q=75 2x"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Flogo.png&w=128&q=75 1x, /_next/image?url=%2Flogo.png&w=256&q=75 2x"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=%2Ffavicon.png&w=32&q=75 1x, /_next/image?url=%2Ffavicon.png&w=48&q=75 2x"/><link rel="stylesheet" href="/_next/static/chunks/0wqf_v9i12zlw.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/16i90eio_ss7o.js"/><script src="/_next/static/chunks/0dgq26a5_oy.a.js" async=""></script><script src="/_next/static/chunks/0h4bq73pogmtb.js" async=""></script><script src="/_next/static/chunks/0257pdz1-imal.js" async=""></script><script src="/_next/static/chunks/turbopack-0hiru4uy9kb-x.js" async=""></script><script src="/_next/static/chunks/0u46szahhg8-l.js" async=""></script><script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script><script src="/_next/static/chunks/0a4bykb92jbu2.js" async=""></script><script src="/_next/static/chunks/0zarrl-ygjy7b.js" async=""></script><link rel="preload" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" as="style"/><link rel="icon" href="/favicon.png" type="image/png"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>Agentnetes: Zero to a Self-Organizing AI Agency. On Demand.</title><meta name="description" content="Self-organizing AI agent swarms on demand. Kubernetes-inspired orchestration for AI agents — spawn, isolate, execute, and collect specialist agents from a single goal."/><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="antialiased"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","dark",null,["light","dark"],null,false,true)</script><div class="overflow-x-hidden" style="font-family:'Inter', sans-serif;background:var(--bg-base);color:rgb(var(--fg))"><nav class="fixed top-0 inset-x-0 z-50 border-b border-white/[0.06] backdrop-blur-xl" style="background:color-mix(in srgb, var(--bg-base) 90%, transparent)"><div class="max-w-6xl mx-auto px-6 h-14 flex items-center justify-between"><div class="flex items-center gap-2.5"><img alt="Agentnetes" width="26" height="26" decoding="async" data-nimg="1" class="rounded-lg" style="color:transparent" srcSet="/_next/image?url=%2Ffavicon.png&w=32&q=75 1x, /_next/image?url=%2Ffavicon.png&w=64&q=75 2x" src="/_next/image?url=%2Ffavicon.png&w=64&q=75"/><span class="font-bold tracking-tight text-white">Agentnetes</span><span class="text-xs font-mono text-white/50 border border-white/15 rounded px-2 py-0.5 uppercase tracking-wider hidden sm:inline">Kubernetes-inspired</span></div><div class="flex items-center gap-3"><div class="w-9 h-9"></div><a class="text-white/60 hover:text-white/80 transition-colors text-sm hidden sm:block" href="/docs">Docs</a><a href="https://github.com/Shashikant86/agentnetes" target="_blank" rel="noreferrer" class="text-white/65 hover:text-white/80 transition-colors p-1"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github" aria-hidden="true"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg></a><a class="flex items-center gap-1.5 text-xs font-semibold px-4 py-2 rounded-lg transition-all" style="background:linear-gradient(135deg, #c084fc, #f472b6, #fb923c);color:#000" href="/demo">Try Demo <svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></nav><section class="pt-28 pb-20 px-6 relative overflow-hidden"><div class="max-w-4xl mx-auto text-center relative"><div class="flex justify-center mb-8"><img alt="Agentnetes" width="100" height="100" decoding="async" data-nimg="1" class="rounded-2xl animate-float" style="color:transparent" srcSet="/_next/image?url=%2Flogo.png&w=128&q=75 1x, /_next/image?url=%2Flogo.png&w=256&q=75 2x" src="/_next/image?url=%2Flogo.png&w=256&q=75"/></div><div class="inline-flex items-center gap-2 rounded-full px-4 py-1.5 text-[11px] font-mono mb-6 border border-white/10" style="background:var(--bg-subtle)"><span class="text-white/65">Self-Organizing AI Agent Swarms. On Demand.</span><span class="text-white/20">·</span><span class="text-white/35">Kubernetes-inspired orchestration for AI agents</span></div><h1 class="text-5xl sm:text-7xl font-extrabold tracking-tight mb-5 leading-[1.05]"><span class="text-white">Zero to a</span><br/><span class="text-white"><span class="inline-block transition-all duration-300" style="opacity:1;transform:translateY(0)">Self-Organizing</span></span><br/><span class="text-white">AI Agency.</span></h1><p class="text-white/75 text-lg mb-4 max-w-2xl mx-auto leading-relaxed font-medium">Type a goal. Agentnetes forms a dynamic team of specialist agents, roles invented on the fly, each running in its own isolated sandbox with the repo pre-cloned.</p><p class="text-white/50 text-base mb-4 max-w-xl mx-auto leading-relaxed">No static agent configs. No stuffed context windows. The team assembles itself, works in parallel, and delivers together.</p><div class="flex flex-wrap items-center justify-center gap-2 mb-10"><div class="flex items-center gap-2 rounded-full border border-white/10 px-4 py-1.5 text-xs font-mono" style="background:var(--bg-subtle)"><span class="w-1.5 h-1.5 rounded-full shrink-0" style="background:#60a5fa"></span><span class="text-white/80 font-semibold">RLM Pattern</span><span class="text-white/35">MIT CSAIL</span></div><div class="flex items-center gap-2 rounded-full border border-white/10 px-4 py-1.5 text-xs font-mono" style="background:var(--bg-subtle)"><span class="w-1.5 h-1.5 rounded-full shrink-0" style="background:#a78bfa"></span><span class="text-white/80 font-semibold">AutoResearch Loop</span><span class="text-white/35">Karpathy</span></div><div class="flex items-center gap-2 rounded-full border border-white/10 px-4 py-1.5 text-xs font-mono" style="background:var(--bg-subtle)"><span class="w-1.5 h-1.5 rounded-full shrink-0" style="background:#f472b6"></span><span class="text-white/80 font-semibold">Two-Tool MCP</span><span class="text-white/35">search() + execute()</span></div></div><div class="inline-flex items-center gap-3 rounded-2xl px-5 py-3.5 mb-10 text-sm font-mono max-w-full" style="background:var(--bg-subtle);box-shadow:0 0 0 1px rgba(168,85,247,0.2), 0 8px 32px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.04)"><span class="text-white/50 shrink-0">$</span><span class="text-white/75 shrink-0">agentnetes run</span><span class="text-violet-300"><span class="inline-block w-0.5 h-4 bg-violet-400 ml-px align-middle transition-opacity opacity-100"></span></span></div><div class="flex flex-col sm:flex-row items-center justify-center gap-3 mb-16"><a class="flex items-center gap-2 font-semibold px-7 py-3 rounded-xl text-base transition-all hover:opacity-90 hover:scale-[1.02] animate-glow-pulse" style="background:linear-gradient(135deg, #a855f7, #ec4899, #f97316);color:#fff;box-shadow:0 0 40px rgba(168,85,247,0.35), 0 8px 32px rgba(0,0,0,0.4)" href="/demo"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap" aria-hidden="true"><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"></path></svg>Try Demo · no signup</a><a class="flex items-center gap-2 border border-white/15 text-white/70 px-7 py-3 rounded-xl hover:border-white/30 hover:text-white transition-all text-base" href="/docs">Read the docs <svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg></a></div><div class="max-w-xl mx-auto w-full mb-10"><div class="rounded-2xl border border-white/10 overflow-hidden" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><div class="flex items-center gap-2"><span class="w-2.5 h-2.5 rounded-full bg-red-500/60"></span><span class="w-2.5 h-2.5 rounded-full bg-yellow-500/60"></span><span class="w-2.5 h-2.5 rounded-full bg-green-500/60"></span></div><span class="text-white/30 text-xs font-mono">terminal</span><a href="https://www.npmjs.com/package/agentnetes" target="_blank" rel="noreferrer" class="text-[11px] font-mono text-purple-400 hover:text-purple-300 transition-colors">npmjs.com/package/agentnetes →</a></div><div class="px-5 py-4 space-y-2 text-sm font-mono text-left"><div><span class="text-white/30">$ </span><span class="text-green-400">npm</span><span class="text-white/80"> install -g agentnetes</span></div><div class="text-white/30 text-xs pt-1 border-t border-white/[0.05]">then run on any git repo</div><div><span class="text-white/30">$ </span><span class="text-green-400">agentnetes</span><span class="text-white/80"> run </span><span class="text-purple-400">"add dark mode to this app"</span></div></div></div></div><div class="grid grid-cols-2 sm:grid-cols-4 gap-px rounded-2xl overflow-hidden" style="box-shadow:0 0 0 1px rgba(168,85,247,0.15)"><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-2xl font-bold mb-0.5 font-mono" style="color:#c084fc">0<!-- -->+</div><div class="text-[11px] text-white/65 font-mono">parallel agents</div></div><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-2xl font-bold mb-0.5 font-mono" style="color:#f472b6">0<!-- --> tools</div><div class="text-[11px] text-white/65 font-mono">per agent (MCP)</div></div><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-2xl font-bold mb-0.5 font-mono" style="color:#fb923c">0<!-- -->K+</div><div class="text-[11px] text-white/65 font-mono">lines explored</div></div><div class="py-5 px-4 text-center" style="background:var(--bg-subtle)"><div class="text-2xl font-bold mb-0.5 font-mono" style="color:#a78bfa">0<!-- --> goal</div><div class="text-[11px] text-white/65 font-mono">to a full team</div></div></div></div></section><section class="py-24 px-6"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">The Problem</div><h2 class="text-3xl font-bold mb-4 text-white">Single agents break on real codebases.</h2><p class="text-white/70 text-base max-w-2xl mx-auto leading-relaxed">Teams have tried everything: single coding agents, prompt-stuffed RAG pipelines, hand-wired MCP tools, elaborate harnesses. They all hit the same wall. Real codebases are too large for one context window, too complex for one agent, and too dynamic for static tool configs. Nobody stopped to ask: what if the agents invented their own team?</p></div><div class="grid sm:grid-cols-3 gap-4 mb-12"><div class="rounded-2xl border p-6 border-white/10" style="background:var(--bg-subtle)"><div class="text-sm font-semibold mb-0.5 text-white/60">Single agent + tools</div><div class="text-[11px] font-mono mb-4 text-white/25">Cursor, Copilot, custom harnesses</div><ul class="space-y-2"><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Entire codebase stuffed into context</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Context rot beyond ~50K tokens</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Sequential: one task at a time</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">One failure halts everything</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Static tool lists, no emergent roles</span></li></ul></div><div class="rounded-2xl border p-6 border-purple-500/40" style="background:rgba(168,85,247,0.06)"><div class="text-sm font-semibold mb-0.5 text-purple-400">Agentnetes</div><div class="text-[11px] font-mono mb-4 text-purple-400/50">vRLM runtime · RLM pattern</div><ul class="space-y-2"><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-purple-400">✓</span><span class="text-white/75">Context lives in sandboxes, not prompts</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-purple-400">✓</span><span class="text-white/75">Agents explore via grep, find, cat</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-purple-400">✓</span><span class="text-white/75">Specialists run in parallel</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-purple-400">✓</span><span class="text-white/75">Agents catch and fix each other's errors</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-purple-400">✓</span><span class="text-white/75">Roles invented per goal, never hardcoded</span></li></ul></div><div class="rounded-2xl border p-6 border-white/10" style="background:var(--bg-subtle)"><div class="text-sm font-semibold mb-0.5 text-white/60">Teams using AI tools</div><div class="text-[11px] font-mono mb-4 text-white/25">Copilot, Cursor, RAG, MCP harnesses</div><ul class="space-y-2"><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Try different coding agent harnesses</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Hand-wire MCP tools and hope they compose</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Build RAG pipelines to stuff context</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Tune prompts and pray context holds</span></li><li class="flex items-start gap-2 text-sm"><span class="mt-1 shrink-0 text-xs text-white/20">✗</span><span class="text-white/40">Never break the problem down RLM-style</span></li></ul></div></div></div></section><section class="py-20 px-6"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-12"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Who Is This For</div><h2 class="text-3xl font-bold mb-4 text-white">Built for developers who move fast.</h2></div><div class="grid sm:grid-cols-2 lg:grid-cols-4 gap-4"><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="text-2xl mb-3">🧑💻</div><div class="text-white font-semibold text-base mb-2">Solo developers</div><div class="text-white/60 text-sm leading-relaxed">Get the leverage of a full engineering team on your personal projects. Ship faster without hiring.</div></div><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="text-2xl mb-3">🏗️</div><div class="text-white font-semibold text-base mb-2">Monorepo teams</div><div class="text-white/60 text-sm leading-relaxed">Point the swarm at your large codebase. Agents explore only what they need · no context limits.</div></div><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="text-2xl mb-3">🔐</div><div class="text-white font-semibold text-base mb-2">Security engineers</div><div class="text-white/60 text-sm leading-relaxed">Spin up a dedicated audit swarm to scan, analyse, and fix vulnerabilities across the entire codebase.</div></div><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="text-2xl mb-3">⚙️</div><div class="text-white font-semibold text-base mb-2">Platform engineers</div><div class="text-white/60 text-sm leading-relaxed">Automate cross-cutting concerns · test coverage, observability, migrations · across all services.</div></div></div></div></section><section class="py-20 px-6"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-12"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Differentiation</div><h2 class="text-3xl font-bold mb-4 text-white">Not another AI coding assistant.</h2><p class="text-white/65 text-base max-w-lg mx-auto">Agentnetes is not autocomplete. It is not a chatbot. It is a swarm that investigates, builds, tests, and delivers.</p></div><div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-4"><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">01</div><div class="text-white font-semibold text-base mb-2">Self-organizing teams</div><div class="text-white/60 text-sm leading-relaxed">The model invents the roles it needs. A provider task spawns a Scout, Engineer, Tester. A security audit spawns an entirely different team. Nothing is hardcoded.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">02</div><div class="text-white font-semibold text-base mb-2">Real code execution</div><div class="text-white/60 text-sm leading-relaxed">Agents run real shell commands in real sandboxes. Tests actually execute. Build failures get fixed. This is not a simulation of engineering · it is engineering.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">03</div><div class="text-white font-semibold text-base mb-2">Any model, same swarm</div><div class="text-white/60 text-sm leading-relaxed">Swap Gemini for Claude or GPT by changing one env var. The swarm architecture is model-agnostic. Route through Vercel AI Gateway or call Google directly.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">04</div><div class="text-white font-semibold text-base mb-2">Two-tool MCP strategy</div><div class="text-white/60 text-sm leading-relaxed">Each agent has exactly two tools: search() and execute(). ~1,000 token footprint regardless of codebase size. No tool bloat, no context waste.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">05</div><div class="text-white font-semibold text-base mb-2">Context stays external</div><div class="text-white/60 text-sm leading-relaxed">Files never enter the prompt. Agents write code to explore the codebase · grep, find, cat. Proven by the MIT CSAIL RLM paper to outperform context-stuffing 2×.</div></div><div class="rounded-2xl border border-white/[0.08] p-6 transition-all duration-300 hover:border-purple-500/30 group" style="background:var(--bg-card)"><div class="text-xs font-mono mb-3" style="color:#a855f7">06</div><div class="text-white font-semibold text-base mb-2">Agents fix each other</div><div class="text-white/60 text-sm leading-relaxed">When the Tester finds a bug, it routes back to the Engineer automatically. The swarm has a built-in try → test → fix loop that runs until tests pass.</div></div></div></div></section><section class="py-24 px-6"><div class="max-w-5xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-5xl mx-auto"><div class="text-center mb-12"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Architecture</div><h2 class="text-3xl font-bold mb-4 text-white">One goal. A recursive agent swarm.</h2><p class="text-white/75 text-base max-w-xl mx-auto leading-relaxed">The root agent decomposes your goal, invents the right team of specialists, and orchestrates them across isolated sandboxes. Roles are fully emergent. Nothing is hardcoded.</p></div><div class="grid lg:grid-cols-2 gap-8 items-start"><div class="rounded-2xl border border-white/10 p-7" style="background:var(--bg-panel)"><div class="flex justify-center mb-5"><div class="flex items-center gap-2 border border-white/10 rounded-xl px-5 py-2.5 bg-white/5"><span class="text-white/70 text-xs font-mono">goal:</span><span class="text-white text-xs font-mono">"Add @ai-sdk/deepseek provider"</span></div></div><div class="flex justify-center mb-3"><div class="w-px h-5 bg-white/10"></div></div><div class="flex justify-center mb-3"><div class="border border-yellow-400/40 bg-yellow-400/5 rounded-xl px-5 py-3 text-center"><div class="text-yellow-300 text-xs font-mono font-semibold">Root Agent / Tech Lead</div><div class="text-white/75 text-[10px] mt-0.5 font-mono">Gemini 2.5 Pro via AI Gateway</div><div class="flex items-center justify-center gap-1.5 mt-1.5"><span class="w-1.5 h-1.5 rounded-full bg-yellow-400 animate-pulse"></span><span class="text-yellow-500/70 text-[10px] font-mono">vRLM orchestrator</span></div></div></div><div class="flex justify-center gap-14 mb-3"><div class="w-px h-5 bg-white/10"></div><div class="w-px h-5 bg-white/10"></div><div class="w-px h-5 bg-white/10"></div><div class="w-px h-5 bg-white/10"></div></div><div class="grid grid-cols-2 sm:grid-cols-4 gap-3 mb-5"><div class="rounded-xl border border-blue-400/30 bg-blue-400/5 p-3 text-center"><div class="text-lg mb-1">🔍</div><div class="text-white/90 text-[10px] font-medium leading-tight">Architecture Scout</div><div class="text-white/65 text-[9px] font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-blue-400"></span><span class="text-white/65 text-[9px] font-mono">search()</span></div></div><div class="rounded-xl border border-violet-400/30 bg-violet-400/5 p-3 text-center"><div class="text-lg mb-1">⚙️</div><div class="text-white/90 text-[10px] font-medium leading-tight">Provider Engineer</div><div class="text-white/65 text-[9px] font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-violet-400"></span><span class="text-white/65 text-[9px] font-mono">execute()</span></div></div><div class="rounded-xl border border-emerald-400/30 bg-emerald-400/5 p-3 text-center"><div class="text-lg mb-1">🧪</div><div class="text-white/90 text-[10px] font-medium leading-tight">Test Engineer</div><div class="text-white/65 text-[9px] font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-emerald-400"></span><span class="text-white/65 text-[9px] font-mono">execute()</span></div></div><div class="rounded-xl border border-orange-400/30 bg-orange-400/5 p-3 text-center"><div class="text-lg mb-1">📦</div><div class="text-white/90 text-[10px] font-medium leading-tight">Package Engineer</div><div class="text-white/65 text-[9px] font-mono mt-1">Gemini 2.5 Flash</div><div class="mt-2 flex items-center justify-center gap-1"><span class="w-1 h-1 rounded-full bg-orange-400"></span><span class="text-white/65 text-[9px] font-mono">execute()</span></div></div></div><div class="border-t border-white/5 pt-4 flex flex-wrap justify-center gap-5"><span class="text-[10px] font-mono text-white/65">Firecracker microVM per agent</span><span class="text-[10px] font-mono text-white/65">search() + execute() MCP only</span><span class="text-[10px] font-mono text-white/65">SSE event stream to UI</span></div></div><div class="space-y-3"><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 transition-colors" style="background:var(--bg-card)"><div class="text-white/65 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-network" aria-hidden="true"><rect x="16" y="16" width="6" height="6" rx="1"></rect><rect x="2" y="16" width="6" height="6" rx="1"></rect><rect x="9" y="2" width="6" height="6" rx="1"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"></path><path d="M12 12V8"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Emergent team formation</div><div class="text-white/75 text-sm leading-relaxed">The root agent reads the codebase, understands the task, and invents the right specialist roles. A provider task gets a Scout, Engineer, Tester, and Packager. A security audit gets an entirely different team.</div></div></div><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 transition-colors" style="background:var(--bg-card)"><div class="text-white/65 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-box" aria-hidden="true"><path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"></path><path d="m3.3 7 8.7 5 8.7-5"></path><path d="M12 22V12"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Isolated Firecracker sandboxes</div><div class="text-white/75 text-sm leading-relaxed">Each agent runs in its own Vercel Sandbox (Firecracker microVM). Pre-warmed from a repo snapshot for near-instant startup. Agents cannot interfere with each other.</div></div></div><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 transition-colors" style="background:var(--bg-card)"><div class="text-white/65 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-code-xml" aria-hidden="true"><path d="m18 16 4-4-4-4"></path><path d="m6 8-4 4 4 4"></path><path d="m14.5 4-5 16"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Context externalized, not stuffed</div><div class="text-white/75 text-sm leading-relaxed">Agents do not receive hundreds of files in their prompts. They write code to explore context: grep, find, cat. This is the RLM Pattern from MIT CSAIL, proven 2x more effective.</div></div></div><div class="flex gap-3 p-4 rounded-xl border border-white/[0.07] hover:border-white/15 transition-colors" style="background:var(--bg-card)"><div class="text-white/65 mt-0.5 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw" aria-hidden="true"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg></div><div><div class="text-white text-base font-semibold mb-1">Agents collaborate at runtime</div><div class="text-white/75 text-sm leading-relaxed">When the Test Engineer finds a type error, that finding routes back to the Provider Engineer automatically. The vRLM runtime handles inter-agent communication.</div></div></div></div></div></div></section><section class="py-24 px-6" style="background:var(--bg-base)"><div class="max-w-4xl mx-auto"><div class="text-center mb-10"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Live Preview</div><h2 class="text-3xl font-bold mb-3 text-white">Watch the swarm execute</h2><p class="text-white/75 text-base max-w-md mx-auto">Real output from a simulated run. The actual runtime produces identical event streams.</p></div><div class="rounded-2xl border border-white/10 overflow-hidden shadow-2xl shadow-purple-500/10" style="background:var(--bg-panel)"><div class="flex items-center gap-2 px-4 py-3 border-b border-white/[0.06] bg-white/[0.02]"><span class="w-3 h-3 rounded-full bg-[#ff5f57]"></span><span class="w-3 h-3 rounded-full bg-[#ffbd2e]"></span><span class="w-3 h-3 rounded-full bg-[#28c840]"></span><span class="ml-3 text-[11px] text-white/65 font-mono flex-1">agentnetes -- vRLM runtime</span></div><div class="p-5 font-mono text-[12px] leading-6 space-y-0.5 overflow-y-auto" style="height:290px;background:var(--bg-panel)"><span class="inline-block w-2 h-3.5 bg-violet-400 animate-pulse align-middle"></span></div></div><div class="flex flex-wrap justify-center gap-5 mt-6"><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-yellow-400"></span><span class="text-[11px] text-white/65 font-mono">Root orchestrator</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-violet-400"></span><span class="text-[11px] text-white/65 font-mono">Shell execution</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-purple-300"></span><span class="text-[11px] text-white/65 font-mono">Worker agent</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-orange-400"></span><span class="text-[11px] text-white/65 font-mono">Inter-agent collaboration</span></div><div class="flex items-center gap-1.5"><span class="w-1.5 h-1.5 rounded-full bg-emerald-400"></span><span class="text-[11px] text-white/65 font-mono">Completion</span></div></div></div></section><section class="py-24 px-6"><div class="max-w-6xl mx-auto mb-0"><hr class="gradient-divider"/></div><div class="max-w-6xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Research Foundations</div><h2 class="text-3xl font-bold mb-4 text-white">Four ideas. One system.</h2><p class="text-white/75 text-base max-w-lg mx-auto">Agentnetes combines four research-backed patterns that individually improve agent performance and together create something qualitatively different.</p></div><div class="grid sm:grid-cols-2 gap-4"><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 transition-all duration-300 flex flex-col gap-4" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-[10px] font-mono px-2 py-0.5 rounded border border-blue-500/40 text-blue-400">MIT CSAIL</div><div class="text-white/65 group-hover:text-white/70 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers" aria-hidden="true"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"></path><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"></path><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">RLM Pattern: Context lives in sandboxes</h3><p class="text-white/70 text-base leading-relaxed mb-3">Recursive Language Model runtime. Instead of stuffing files into an agent's context window, context is externalized into a filesystem that agents explore programmatically.</p><p class="text-white/65 text-sm leading-relaxed">Agents write small shell scripts to grep, find, and read exactly what they need. This keeps token footprints tiny regardless of codebase size and has been shown to outperform naive context-stuffing by 2x on software engineering benchmarks.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-[11px] text-violet-300">agent.execute('grep -r LanguageModelV1 packages/ -l')</div><div class="text-[10px] text-white/50 font-mono border-t border-white/5 pt-3">Based on: RLM paper, MIT CSAIL -- externalized context via code execution</div></div><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 transition-all duration-300 flex flex-col gap-4" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-[10px] font-mono px-2 py-0.5 rounded border border-purple-500/40 text-purple-400">Karpathy</div><div class="text-white/65 group-hover:text-white/70 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-refresh-cw" aria-hidden="true"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">AutoResearch Loop: Try, measure, keep</h3><p class="text-white/70 text-base leading-relaxed mb-3">Agents do not write code and hope for the best. They write code, run tests, measure the result, and either keep the change or discard it and try again.</p><p class="text-white/65 text-sm leading-relaxed">The Test Engineer runs vitest after every change. Type errors trigger re-implementation. Test failures trigger targeted patches. The loop runs until everything passes or the agent escalates to root.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-[11px] text-violet-300">run tests -> check failures -> patch -> repeat</div><div class="text-[10px] text-white/50 font-mono border-t border-white/5 pt-3">Based on: AutoResearch pattern -- Andrej Karpathy</div></div><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 transition-all duration-300 flex flex-col gap-4" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-[10px] font-mono px-2 py-0.5 rounded border border-emerald-500/40 text-emerald-400">MCP v2</div><div class="text-white/65 group-hover:text-white/70 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-terminal" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">Two-Tool MCP: search() and execute()</h3><p class="text-white/70 text-base leading-relaxed mb-3">Each agent has exactly two tools exposed via MCP: search() for finding things in the codebase, and execute() for running shell commands in its sandbox.</p><p class="text-white/65 text-sm leading-relaxed">This keeps the agent's tool surface to roughly 1,000 tokens regardless of task complexity. The agent writes arbitrary code against these two primitives. No tool proliferation. Just two powerful primitives that compose into anything.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-[11px] text-violet-300">tools: [search(), execute()] // ~1000 token footprint</div><div class="text-[10px] text-white/50 font-mono border-t border-white/5 pt-3">MCP protocol -- two-tool minimal surface strategy</div></div><div class="group rounded-2xl border border-white/10 p-6 hover:border-white/20 transition-all duration-300 flex flex-col gap-4" style="background:var(--bg-card)"><div class="flex items-start justify-between"><div class="text-[10px] font-mono px-2 py-0.5 rounded border border-orange-500/40 text-orange-400">A2A Protocol</div><div class="text-white/65 group-hover:text-white/70 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path></svg></div></div><div><h3 class="text-white font-semibold text-base mb-2">A2A-Ready: Every agent is a publishable service</h3><p class="text-white/70 text-base leading-relaxed mb-3">Every agent Agentnetes spawns generates a standard A2A Agent Card describing its capabilities, skills, and endpoints.</p><p class="text-white/65 text-sm leading-relaxed">Today these cards are internal. Tomorrow any specialist agent can be published as an independent, discoverable service. A Provider Engineer becomes a reusable service any other system can call.</p></div><div class="rounded-lg bg-black/40 border border-white/[0.06] px-3 py-2.5 font-mono text-[11px] text-violet-300">GET /agents/provider-engineer/.well-known/agent.json</div><div class="text-[10px] text-white/50 font-mono border-t border-white/5 pt-3">A2A Protocol v1.0 -- Google Agent-to-Agent standard</div></div></div></div></section><section class="py-24 px-6" style="background:var(--bg-base)"><div class="max-w-5xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Stack</div><h2 class="text-3xl font-bold mb-4 text-white">Built on the bleeding edge</h2><p class="text-white/75 text-base max-w-lg mx-auto">Every layer is the latest available. No legacy versions. No compatibility shims.</p></div><div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-4 mb-8"><div class="rounded-2xl border border-white/10 p-5" style="background:var(--bg-card)"><div class="text-[10px] font-mono text-white/65 uppercase tracking-wider mb-4">AI Runtime</div><div class="space-y-2"><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-violet-500/30 bg-violet-500/5"><div class="text-white/90 text-sm font-medium">ai (Vercel AI SDK)</div><div class="text-white/75 text-[10px] font-mono shrink-0">v7.0.0-beta.33</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-violet-500/30 bg-violet-500/5"><div class="text-white/90 text-sm font-medium">ToolLoopAgent</div><div class="text-white/75 text-[10px] font-mono shrink-0">beta agent primitive</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white/90 text-sm font-medium">@ai-sdk/google</div><div class="text-white/75 text-[10px] font-mono shrink-0">v3.0.52</div></div></div><div class="text-[11px] text-white/65 font-mono mt-4 leading-relaxed">ToolLoopAgent is the core primitive in AI SDK v7 beta. Each worker runs two MCP tools: search() and execute().</div></div><div class="rounded-2xl border border-white/10 p-5" style="background:var(--bg-card)"><div class="text-[10px] font-mono text-white/65 uppercase tracking-wider mb-4">Sandbox</div><div class="space-y-2"><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-violet-500/30 bg-violet-500/5"><div class="text-white/90 text-sm font-medium">Docker</div><div class="text-white/75 text-[10px] font-mono shrink-0">node:20-alpine · local default</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white/90 text-sm font-medium">@vercel/sandbox</div><div class="text-white/75 text-[10px] font-mono shrink-0">Firecracker microVMs</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white/90 text-sm font-medium">Local shell</div><div class="text-white/75 text-[10px] font-mono shrink-0">no-install fallback</div></div></div><div class="text-[11px] text-white/65 font-mono mt-4 leading-relaxed">Docker is the default sandbox for local runs. Vercel Firecracker available for cloud self-hosting.</div></div><div class="rounded-2xl border border-white/10 p-5" style="background:var(--bg-card)"><div class="text-[10px] font-mono text-white/65 uppercase tracking-wider mb-4">Models</div><div class="space-y-2"><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-violet-500/30 bg-violet-500/5"><div class="text-white/90 text-sm font-medium">Gemini 3.1 Pro</div><div class="text-white/75 text-[10px] font-mono shrink-0">planner · latest</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-violet-500/30 bg-violet-500/5"><div class="text-white/90 text-sm font-medium">Gemini 2.5 Flash</div><div class="text-white/75 text-[10px] font-mono shrink-0">planner + worker · default</div></div><div class="flex items-center justify-between gap-2 border rounded-xl px-4 py-2.5 border-white/[0.08]" style="background:var(--bg-subtle)"><div class="text-white/90 text-sm font-medium">Gemini 3.1 Flash-Lite</div><div class="text-white/75 text-[10px] font-mono shrink-0">worker · fastest</div></div></div><div class="text-[11px] text-white/65 font-mono mt-4 leading-relaxed">Full Gemini 2.0 · 2.5 · 3.x lineup supported. Separate planner and worker models configurable in the UI.</div></div></div><div class="rounded-2xl border border-white/10 overflow-hidden" style="background:var(--bg-panel)"><div class="flex items-center gap-2 px-4 py-3 border-b border-white/[0.06] bg-white/[0.02]"><span class="text-[10px] font-mono text-white/65">lib/vrlm/runtime.ts</span></div><div class="p-5 font-mono text-[12px] leading-7 overflow-x-auto"><div><span class="text-white/65">// Each worker: two tools, one sandbox, emergent role</span></div><div class="mt-1.5"><span class="text-violet-400">const</span><span class="text-white"> agent </span><span class="text-white/75">=</span><span class="text-white"> new </span><span class="text-pink-400">ToolLoopAgent</span><span class="text-white">({</span></div><div class="pl-6"><span class="text-white/70">model: </span><span class="text-orange-400">google</span><span class="text-white">('gemini-2.5-flash'),</span></div><div class="pl-6"><span class="text-white/70">tools: </span><span class="text-white">{ </span><span class="text-emerald-400">search</span><span class="text-white">, </span><span class="text-emerald-400">execute</span><span class="text-white"> <!-- -->}<!-- -->,</span></div><div class="pl-6"><span class="text-white/70">stopWhen: </span><span class="text-orange-400">stepCountIs</span><span class="text-white">(40),</span></div><div class="pl-6"><span class="text-white/70">instructions: </span><span class="text-white">buildWorkerPrompt(task),</span></div><div><span class="text-white">});</span></div><div class="mt-2"><span class="text-white/65">// Drive the tool loop; events stream to the UI via SSE</span></div><div><span class="text-violet-400">for await </span><span class="text-white">(</span><span class="text-violet-400">const </span><span class="text-white">_ </span><span class="text-violet-400">of </span><span class="text-white">result.</span><span class="text-pink-400">fullStream</span><span class="text-white">) <!-- -->{ ... }</span></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05]"><div class="max-w-4xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">How It Works</div><h2 class="text-3xl font-bold mb-4 text-white">One sentence. Dynamic team. Real results.</h2><p class="text-white/75 text-base max-w-md mx-auto">From goal to dynamic team formation to delivered artifacts, in isolated sandboxes</p></div><div class="grid sm:grid-cols-2 gap-7"><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-gray-700 text-white/65">01</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">You give a goal</h4><p class="text-white/75 text-base leading-relaxed">Type what you want built. Not instructions on how. Just what. Agentnetes figures out the rest. The goal can reference a GitHub repo or an uploaded codebase.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-yellow-500/40 text-yellow-500/80">02</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Root agent explores</h4><p class="text-white/75 text-base leading-relaxed">The Tech Lead spawns a Firecracker sandbox pre-warmed with the target repo. It uses grep, find, and cat to map the architecture. Context lives in the filesystem, not the prompt.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-blue-500/40 text-blue-400/80">03</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Team self-assembles</h4><p class="text-white/75 text-base leading-relaxed">Based on what it finds, the root agent invents the team. Roles, goals, and dependencies are all emergent. A provider task gets different specialists than a security audit.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-violet-500/40 text-violet-400/80">04</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Agents work in parallel</h4><p class="text-white/75 text-base leading-relaxed">Each specialist runs concurrently in its own Firecracker microVM. They explore, write code, run tests, and fix failures. No sequential bottlenecks.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-orange-500/40 text-orange-400/80">05</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Agents collaborate</h4><p class="text-white/75 text-base leading-relaxed">Test failures and findings route back to the right specialist automatically. The vRLM runtime handles inter-agent communication. No human needed to relay.</p></div></div><div class="flex gap-4"><div class="shrink-0 w-8 h-8 rounded-full border flex items-center justify-center text-[11px] font-mono mt-0.5 border-emerald-500/40 text-emerald-400/80">06</div><div class="pt-0.5"><h4 class="text-white font-semibold text-base mb-1.5">Synthesis and delivery</h4><p class="text-white/75 text-base leading-relaxed">The root agent collects all artifacts, verifies completeness, and streams a structured summary to the UI with every generated file. Each agent publishes an A2A card.</p></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05]" style="background:var(--bg-base)"><div class="max-w-4xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Runtime</div><h2 class="text-3xl font-bold mb-4 text-white">vRLM: The Orchestration Runtime</h2><p class="text-white/70 text-base max-w-xl mx-auto">Virtual Recursive Language Model Runtime. The engine between your goal and the agents. Inspired by the <a href="https://arxiv.org/abs/2512.24601" target="_blank" rel="noreferrer" class="text-purple-400/80 hover:text-purple-400 transition-colors">RLM pattern from MIT CSAIL</a>.</p></div><div class="grid md:grid-cols-3 gap-4 mb-10"><div class="rounded-2xl border p-5 border-yellow-500/20 bg-yellow-500/[0.03]"><div class="flex items-center gap-2 mb-3"><span class="text-[10px] font-mono text-white/25">01</span><span class="text-sm font-bold text-yellow-400/80">Plan</span></div><p class="text-white/55 text-sm leading-relaxed">Root agent explores the repo with grep and find, then calls the Gemini planner to invent a specialist team. Roles are fully emergent. Nothing is hardcoded.</p></div><div class="rounded-2xl border p-5 border-purple-500/20 bg-purple-500/[0.03]"><div class="flex items-center gap-2 mb-3"><span class="text-[10px] font-mono text-white/25">02</span><span class="text-sm font-bold text-purple-400/80">Execute</span></div><p class="text-white/55 text-sm leading-relaxed">Workers run in parallel. Each gets an isolated Docker container with the repo pre-cloned, and two tools: search() to grep the codebase and execute() to run any shell command.</p></div><div class="rounded-2xl border p-5 border-emerald-500/20 bg-emerald-500/[0.03]"><div class="flex items-center gap-2 mb-3"><span class="text-[10px] font-mono text-white/25">03</span><span class="text-sm font-bold text-emerald-400/80">Synthesize</span></div><p class="text-white/55 text-sm leading-relaxed">When all workers complete, the root agent reads their findings and artifacts, then produces a structured summary. Every generated file is collected and streamed to the UI.</p></div></div><div class="grid md:grid-cols-2 gap-5 items-start"><div><div class="text-[10px] font-mono text-white/30 uppercase tracking-widest mb-3">Event Stream · SSE</div><p class="text-white/55 text-sm leading-relaxed mb-4">Every phase emits typed events over Server-Sent Events. The UI subscribes and renders agent activity in real time with no polling.</p><div class="space-y-1.5"><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-yellow-400/70">task-created</span><span class="text-white/30">new agent spawned</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-white/40">task-updated</span><span class="text-white/30">status or progress change</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-emerald-400/70">task-completed</span><span class="text-white/30">agent finished with artifacts</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-red-400/70">task-failed</span><span class="text-white/30">agent error</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-purple-400/70">finding</span><span class="text-white/30">agent discovered something</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-blue-400/70">terminal</span><span class="text-white/30">shell command + output</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-emerald-400/50">artifact</span><span class="text-white/30">file produced by an agent</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-orange-400/70">collaboration</span><span class="text-white/30">inter-agent finding shared</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-pink-400/70">synthesis</span><span class="text-white/30">root agent final summary</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-white/40">done</span><span class="text-white/30">run complete</span></div><div class="flex items-center gap-3 font-mono text-xs"><span class="w-32 shrink-0 text-red-400/50">error</span><span class="text-white/30">runtime error</span></div></div></div><div class="rounded-2xl border border-white/10 overflow-hidden" style="background:var(--bg-panel)"><div class="px-4 py-2.5 border-b border-white/[0.06] text-[10px] font-mono text-white/35">lib/vrlm/types.ts</div><div class="p-4 font-mono text-[11px] leading-6 space-y-0.5"><div><span class="text-violet-400">interface </span><span class="text-white">VrlmConfig <!-- -->{</span></div><div class="pl-4"><span class="text-white/50">maxWorkers: </span><span class="text-blue-400">number</span><span class="text-white/30">; // default 6</span></div><div class="pl-4"><span class="text-white/50">maxStepsPerAgent: </span><span class="text-blue-400">number</span><span class="text-white/30">; // default 20</span></div><div class="pl-4"><span class="text-white/50">plannerModel: </span><span class="text-blue-400">string</span><span class="text-white/30">; // orchestrator</span></div><div class="pl-4"><span class="text-white/50">workerModel: </span><span class="text-blue-400">string</span><span class="text-white/30">; // specialists</span></div><div class="pl-4"><span class="text-white/50">repoUrl: </span><span class="text-blue-400">string</span><span class="text-white/30">; // cloned per agent</span></div><div class="pl-4"><span class="text-white/50">sandboxProvider: </span><span class="text-emerald-400">'docker' | 'vercel' | 'e2b' | 'daytona' | 'local'</span><span class="text-white/30">;</span></div><div class="pl-4"><span class="text-white/50">googleApiKey?: </span><span class="text-blue-400">string</span><span class="text-white/30">; // UI override</span></div><div><span class="text-white">}</span></div></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05]"><div class="max-w-4xl mx-auto"><div class="text-center mb-14"><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Get Started</div><h2 class="text-3xl font-bold mb-4 text-white">Three ways to run</h2><p class="text-white/75 text-base max-w-md mx-auto">From instant browser demo to full local execution with Docker sandboxes</p></div><div class="grid md:grid-cols-3 gap-5"><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="flex items-center gap-2 mb-4"><span class="text-[10px] font-mono px-2 py-0.5 rounded-full border border-emerald-500/30 text-emerald-400 bg-emerald-500/5">no setup</span></div><div class="text-lg font-semibold text-white mb-2">Simulation</div><p class="text-white/55 text-sm leading-relaxed mb-5">Watch the full agent lifecycle in your browser. No API key, no Docker, no install. Pre-scripted scenarios replay real event sequences.</p><div class="rounded-xl border border-white/[0.06] px-3 py-2 font-mono text-[11px] text-white/50 mb-5" style="background:var(--bg-panel)">Open /demo → toggle Simulation → watch</div><a class="flex items-center gap-1.5 text-sm font-semibold px-4 py-2 rounded-lg transition-all hover:opacity-90 w-full justify-center" style="background:linear-gradient(135deg, #a855f7, #ec4899, #f97316);color:#fff" href="/demo">Try Demo <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div><div class="rounded-2xl border border-violet-500/20 p-6 relative" style="background:var(--bg-card)"><div class="flex items-center gap-2 mb-4"><span class="text-[10px] font-mono px-2 py-0.5 rounded-full border border-violet-500/30 text-violet-400 bg-violet-500/5">recommended</span></div><div class="text-lg font-semibold text-white mb-2">Self-host · Local</div><p class="text-white/55 text-sm leading-relaxed mb-5">Clone the repo and run locally. Both simulation and real agent execution available. Configure your Google API key and target repo directly in the UI. No <code class="text-white/50 text-xs">.env</code> file needed.</p><div class="rounded-xl border border-white/[0.06] px-3 py-2 font-mono text-[10px] text-white/50 mb-5 space-y-1" style="background:var(--bg-panel)"><div><span class="text-white/30">$ </span>git clone · npm install</div><div><span class="text-white/30">$ </span>docker pull node:20-alpine</div><div><span class="text-white/30">$ </span>npm run dev → open /demo</div></div><a class="flex items-center gap-1.5 text-sm font-semibold px-4 py-2 rounded-lg border border-violet-500/30 text-violet-400 hover:border-violet-500/60 hover:text-violet-300 transition-all w-full justify-center" href="/docs">Read the docs <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg></a></div><div class="rounded-2xl border border-white/10 p-6" style="background:var(--bg-card)"><div class="flex items-center gap-2 mb-4"><span class="text-[10px] font-mono px-2 py-0.5 rounded-full border border-blue-500/30 text-blue-400 bg-blue-500/5">CLI</span></div><div class="text-lg font-semibold text-white mb-2">CLI · Any Repo</div><p class="text-white/55 text-sm leading-relaxed mb-5">Install the npm package globally and run against any local git repo. Requires Docker running locally and a Google API key.</p><div class="rounded-xl border border-white/[0.06] px-3 py-2 font-mono text-[10px] text-white/50 mb-5 space-y-1" style="background:var(--bg-panel)"><div><span class="text-white/30">$ </span>npm install -g agentnetes</div><div><span class="text-white/30">$ </span>export GOOGLE_API_KEY=...</div><div><span class="text-white/30">$ </span>agentnetes run "your goal"</div></div><a href="https://www.npmjs.com/package/agentnetes" target="_blank" rel="noreferrer" class="flex items-center gap-1.5 text-sm font-semibold px-4 py-2 rounded-lg border border-white/10 text-white/55 hover:border-white/20 hover:text-white/75 transition-all w-full justify-center">npm package <svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05]" style="background:var(--bg-base)"><div class="max-w-4xl mx-auto"><div class="grid lg:grid-cols-2 gap-12 items-center"><div><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-3">Models</div><h2 class="text-3xl font-bold mb-4 text-white">Any model. Same swarm.</h2><p class="text-white/70 text-lg leading-relaxed mb-6">Bring your own Google API key and swap models from the UI. No config file needed. Separate planner and worker models let you balance quality vs cost.</p><div class="space-y-3"><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check text-emerald-400 shrink-0" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><span class="text-base text-white/80">Gemini 3.x, 2.5, 2.0 all supported</span></div><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check text-emerald-400 shrink-0" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><span class="text-base text-white/80">Separate planner and worker models</span></div><div class="flex items-center gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check text-emerald-400 shrink-0" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><span class="text-base text-white/80">BYOK: paste API key directly in the UI</span></div><div class="flex items-center gap-2.5"><div class="w-3.5 h-3.5 rounded-full border border-white/20 shrink-0"></div><span class="text-base text-white/65">Claude / GPT-4o support</span><span class="text-[9px] font-mono text-white/50 border border-white/20 rounded px-1">soon</span></div></div></div><div class="space-y-3"><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-violet-500/30 bg-violet-500/5"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 3.1 Pro</div><div class="text-white/65 text-xs font-mono mt-0.5">Planner · latest</div></div><span class="text-[9px] font-mono text-white/65 border border-white/10 rounded px-1.5 py-0.5">new</span></div><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-blue-400/20 bg-blue-400/5"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 2.5 Flash</div><div class="text-white/65 text-xs font-mono mt-0.5">Planner + Worker · default</div></div><span class="text-[9px] font-mono text-white/65 border border-white/10 rounded px-1.5 py-0.5">recommended</span></div><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-emerald-500/20 bg-emerald-500/5"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 3.1 Flash-Lite</div><div class="text-white/65 text-xs font-mono mt-0.5">Worker · fastest</div></div><span class="text-[9px] font-mono text-white/65 border border-white/10 rounded px-1.5 py-0.5">fast</span></div><div class="flex items-center gap-3 border rounded-xl px-4 py-3 border-white/10 bg-white/[0.02]"><div class="flex-1"><div class="text-white text-base font-medium">Gemini 2.0 Flash</div><div class="text-white/65 text-xs font-mono mt-0.5">Worker · budget</div></div></div><div class="rounded-xl border border-white/10 px-4 py-3 font-mono text-[11px]" style="background:var(--bg-panel)"><span class="text-white/65">createGoogleGenerativeAI<!-- -->({</span><br/><span class="text-white/65"> <!-- -->apiKey: </span><span class="text-violet-400">process.env.GOOGLE_API_KEY</span><br/><span class="text-white/65">}<!-- -->);</span></div></div></div></div></section><section class="py-24 px-6 border-t border-white/[0.05]"><div class="max-w-2xl mx-auto"><div class="rounded-2xl border border-white/10 p-12 text-center relative overflow-hidden" style="background:linear-gradient(135deg, rgba(168,85,247,0.06) 0%, rgba(236,72,153,0.04) 50%, rgba(249,115,22,0.06) 100%)"><div class="flex justify-center mb-5"><img alt="Agentnetes" loading="lazy" width="48" height="48" decoding="async" data-nimg="1" class="rounded-xl" style="color:transparent" srcSet="/_next/image?url=%2Ffavicon.png&w=48&q=75 1x, /_next/image?url=%2Ffavicon.png&w=96&q=75 2x" src="/_next/image?url=%2Ffavicon.png&w=96&q=75"/></div><div class="text-xs font-mono text-white/65 uppercase tracking-widest mb-4">Try it now</div><h2 class="text-2xl font-bold mb-3 text-white">See the swarm execute</h2><p class="text-white/75 text-base mb-8 max-w-sm mx-auto leading-relaxed">Give it a goal. Watch specialist agents spawn, explore, implement, test, and deliver inside isolated sandboxes. Under 90 seconds.</p><div class="flex flex-col sm:flex-row items-center justify-center gap-3"><a class="flex items-center gap-2 font-semibold px-8 py-3 rounded-xl text-base transition-all hover:opacity-90 hover:scale-[1.02]" style="background:linear-gradient(135deg, #a855f7, #ec4899, #f97316);color:#fff" href="/demo">Try Demo · no signup <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a class="flex items-center gap-2 border border-white/15 text-white/70 px-8 py-3 rounded-xl hover:border-white/30 hover:text-white transition-all text-base" href="/docs">Read the docs</a></div></div></div></section><footer class="border-t border-white/[0.05] py-10 px-6"><div class="max-w-6xl mx-auto flex flex-col sm:flex-row items-center justify-between gap-6"><div class="flex items-center gap-2.5"><img alt="Agentnetes" width="22" height="22" decoding="async" data-nimg="1" class="rounded-lg" style="color:transparent" srcSet="/_next/image?url=%2Ffavicon.png&w=32&q=75 1x, /_next/image?url=%2Ffavicon.png&w=48&q=75 2x" src="/_next/image?url=%2Ffavicon.png&w=48&q=75"/><div><div class="font-bold text-base text-white">Agentnetes</div><div class="text-white/65 text-xs font-mono">Zero to Agent London 2026</div></div></div><div class="text-white/50 text-sm font-mono text-center">Zero to Agent London · Google DeepMind x Vercel · 2026</div><div class="flex items-center gap-5"><a class="text-white/65 hover:text-white/80 transition-colors text-sm" href="/demo">Simulation</a><a href="https://cerebralvalley.ai/e/zero-to-agent-london" target="_blank" rel="noreferrer" class="flex items-center gap-1 text-white/65 hover:text-white/80 transition-colors text-sm">Hackathon <svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link" aria-hidden="true"><path d="M15 3h6v6"></path><path d="M10 14 21 3"></path><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path></svg></a><a href="https://github.com/Shashikant86/agentnetes" target="_blank" rel="noreferrer" class="text-white/65 hover:text-white/80 transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github" aria-hidden="true"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg></a></div></div></footer></div><!--$--><!--/$--><script src="/_next/static/chunks/16i90eio_ss7o.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[80492,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ThemeProvider\"]\n3:I[39756,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n5:I[47257,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ClientPageRoot\"]\n6:I[31713,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0a4bykb92jbu2.js\",\"/_next/static/chunks/0zarrl-ygjy7b.js\"],\"default\"]\n9:I[97367,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nc:I[97367,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\ne:I[97367,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\n10:I[68027,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0wqf_v9i12zlw.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800\u0026family=JetBrains+Mono:wght@400;500\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0wqf_v9i12zlw.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0u46szahhg8-l.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"icon\",\"href\":\"/favicon.png\",\"type\":\"image/png\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800\u0026family=JetBrains+Mono:wght@400;500\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"className\":\"antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{\"Component\":\"$6\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0a4bykb92jbu2.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0zarrl-ygjy7b.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lf\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$10\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0wqf_v9i12zlw.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"0QnzQ8Z6fEhlhVaWAQ2_v\"}\n"])</script><script>self.__next_f.push([1,"7:{}\n8:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"b:null\nf:[[\"$\",\"title\",\"0\",{\"children\":\"Agentnetes: Zero to a Self-Organizing AI Agency. On Demand.\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Self-organizing AI agent swarms on demand. Kubernetes-inspired orchestration for AI agents — spawn, isolate, execute, and collect specialist agents from a single goal.\"}]]\n"])</script></body></html>
|
|
@@ -11,7 +11,7 @@ e:I[97367,["/_next/static/chunks/0u46szahhg8-l.js","/_next/static/chunks/0d3shmw
|
|
|
11
11
|
10:I[68027,["/_next/static/chunks/0u46szahhg8-l.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1]
|
|
12
12
|
:HL["/_next/static/chunks/0wqf_v9i12zlw.css","style"]
|
|
13
13
|
:HL["https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap","style"]
|
|
14
|
-
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0wqf_v9i12zlw.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0u46szahhg8-l.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"icon","href":"/favicon.png","type":"image/png"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/0a4bykb92jbu2.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0zarrl-ygjy7b.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0wqf_v9i12zlw.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
14
|
+
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0wqf_v9i12zlw.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0u46szahhg8-l.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"icon","href":"/favicon.png","type":"image/png"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/0a4bykb92jbu2.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0zarrl-ygjy7b.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0wqf_v9i12zlw.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"0QnzQ8Z6fEhlhVaWAQ2_v"}
|
|
15
15
|
7:{}
|
|
16
16
|
8:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
|
|
17
17
|
d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
3:I[31713,["/_next/static/chunks/0u46szahhg8-l.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/0a4bykb92jbu2.js","/_next/static/chunks/0zarrl-ygjy7b.js"],"default"]
|
|
4
4
|
6:I[97367,["/_next/static/chunks/0u46szahhg8-l.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
|
|
5
5
|
7:"$Sreact.suspense"
|
|
6
|
-
0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/0a4bykb92jbu2.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0zarrl-ygjy7b.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
6
|
+
0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/0a4bykb92jbu2.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0zarrl-ygjy7b.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"0QnzQ8Z6fEhlhVaWAQ2_v"}
|
|
7
7
|
4:{}
|
|
8
8
|
5:"$0:rsc:props:children:0:props:serverProvidedParams:params"
|
|
9
9
|
8:null
|
|
@@ -11,7 +11,7 @@ e:I[97367,["/_next/static/chunks/0u46szahhg8-l.js","/_next/static/chunks/0d3shmw
|
|
|
11
11
|
10:I[68027,["/_next/static/chunks/0u46szahhg8-l.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1]
|
|
12
12
|
:HL["/_next/static/chunks/0wqf_v9i12zlw.css","style"]
|
|
13
13
|
:HL["https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap","style"]
|
|
14
|
-
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0wqf_v9i12zlw.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0u46szahhg8-l.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"icon","href":"/favicon.png","type":"image/png"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/0a4bykb92jbu2.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0zarrl-ygjy7b.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0wqf_v9i12zlw.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
14
|
+
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0wqf_v9i12zlw.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0u46szahhg8-l.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"icon","href":"/favicon.png","type":"image/png"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/0a4bykb92jbu2.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0zarrl-ygjy7b.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0wqf_v9i12zlw.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"0QnzQ8Z6fEhlhVaWAQ2_v"}
|
|
15
15
|
7:{}
|
|
16
16
|
8:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
|
|
17
17
|
d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|