agentnetes 0.1.5 → 0.1.7
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/README.md +4 -2
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +3 -3
- package/web/.next/prerender-manifest.json +28 -0
- package/web/.next/required-server-files.json +1 -3
- package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- 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/page/next-font-manifest.json +7 -2
- package/web/.next/server/app/_not-found/page.js +1 -1
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_not-found.html +1 -1
- package/web/.next/server/app/_not-found.rsc +9 -10
- package/web/.next/server/app/_not-found.segments/_full.segment.rsc +9 -10
- package/web/.next/server/app/_not-found.segments/_head.segment.rsc +3 -3
- package/web/.next/server/app/_not-found.segments/_index.segment.rsc +5 -6
- package/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -3
- package/web/.next/server/app/api/config.body +1 -0
- package/web/.next/server/app/api/config.meta +1 -0
- package/web/.next/server/app/demo/page/next-font-manifest.json +7 -2
- package/web/.next/server/app/demo/page.js +1 -1
- package/web/.next/server/app/demo/page.js.nft.json +1 -1
- package/web/.next/server/app/demo/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/demo.html +1 -1
- package/web/.next/server/app/demo.rsc +13 -12
- package/web/.next/server/app/demo.segments/_full.segment.rsc +13 -12
- package/web/.next/server/app/demo.segments/_head.segment.rsc +3 -3
- package/web/.next/server/app/demo.segments/_index.segment.rsc +5 -6
- package/web/.next/server/app/demo.segments/_tree.segment.rsc +4 -3
- package/web/.next/server/app/demo.segments/demo/__PAGE__.segment.rsc +4 -4
- package/web/.next/server/app/demo.segments/demo.segment.rsc +3 -3
- package/web/.next/server/app/docs/page/next-font-manifest.json +7 -2
- package/web/.next/server/app/docs/page.js +1 -1
- package/web/.next/server/app/docs/page.js.nft.json +1 -1
- package/web/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/docs.html +17 -13
- package/web/.next/server/app/docs.rsc +13 -12
- package/web/.next/server/app/docs.segments/_full.segment.rsc +13 -12
- package/web/.next/server/app/docs.segments/_head.segment.rsc +3 -3
- package/web/.next/server/app/docs.segments/_index.segment.rsc +5 -6
- package/web/.next/server/app/docs.segments/_tree.segment.rsc +4 -3
- package/web/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +4 -4
- package/web/.next/server/app/docs.segments/docs.segment.rsc +3 -3
- package/web/.next/server/app/index.html +1 -1
- package/web/.next/server/app/index.rsc +13 -12
- package/web/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/web/.next/server/app/index.segments/_full.segment.rsc +13 -12
- package/web/.next/server/app/index.segments/_head.segment.rsc +3 -3
- package/web/.next/server/app/index.segments/_index.segment.rsc +5 -6
- package/web/.next/server/app/index.segments/_tree.segment.rsc +4 -3
- package/web/.next/server/app/page/next-font-manifest.json +7 -2
- package/web/.next/server/app/page.js +1 -1
- package/web/.next/server/app/page.js.nft.json +1 -1
- package/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__0h9pqwt._.js +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0amff4c._.js → [root-of-the-server]__0fzgx80._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__08ixfva._.js → [root-of-the-server]__0r3ayxw._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0tlv0_c._.js +3 -0
- package/web/.next/server/chunks/ssr/app_demo_page_tsx_0.31s93._.js +2 -2
- package/web/.next/server/chunks/ssr/app_docs_page_tsx_0a3qz3_._.js +22 -18
- package/web/.next/server/chunks/ssr/app_page_tsx_0es_sk2._.js +1 -1
- package/web/.next/server/chunks/ssr/node_modules_08x2~-f._.js +3 -0
- package/web/.next/server/chunks/ssr/{node_modules_0fx6-.x._.js → node_modules_0blbtbs._.js} +4 -2
- package/web/.next/server/chunks/ssr/node_modules_0mwlsb-._.js +3 -0
- package/web/.next/server/chunks/ssr/{node_modules_0lynej0._.js → node_modules_10h38q2._.js} +2 -2
- package/web/.next/server/middleware-build-manifest.js +3 -3
- package/web/.next/server/next-font-manifest.js +1 -1
- package/web/.next/server/next-font-manifest.json +19 -2
- package/web/.next/server/pages/404.html +1 -1
- package/web/.next/server/pages/500.html +1 -1
- package/web/.next/static/chunks/00gs7ywo3p_-j.css +3 -0
- package/web/.next/static/chunks/00pksrk9b32qm.js +1 -0
- package/web/.next/static/chunks/07h.efnrmr0xe.js +185 -0
- package/web/.next/static/chunks/08845o78x1i1w.js +98 -0
- package/web/.next/static/chunks/0cn.wl1796p2h.js +3 -0
- package/web/.next/static/chunks/0z1bg424bhco1.js +3 -0
- package/web/.next/static/chunks/{0u46szahhg8-l.js → 13l7oudco0wo6.js} +1 -1
- package/web/.next/static/media/13bf9871fe164e7f-s.0s19wthhh_6~m.woff2 +0 -0
- package/web/.next/static/media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2 +0 -0
- package/web/.next/static/media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 +0 -0
- package/web/.next/static/media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 +0 -0
- package/web/.next/static/media/3fe682a82f50d426-s.09q3q1i5159bl.woff2 +0 -0
- package/web/.next/static/media/5476f68d60460930-s.0wxq9webf.ew4.woff2 +0 -0
- package/web/.next/static/media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2 +0 -0
- package/web/.next/static/media/71b036adf157cdcf-s.03nf~dfjdkf~..woff2 +0 -0
- package/web/.next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2 +0 -0
- package/web/.next/static/media/89b21bb081cb7469-s.0gfhww.tctz1o.woff2 +0 -0
- package/web/.next/static/media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 +0 -0
- package/web/.next/static/media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2 +0 -0
- package/web/.next/static/media/cc545e633e20c56d-s.0dza.stei.9v7.woff2 +0 -0
- package/web/package.json +12 -1
- package/web/server.js +1 -1
- package/web/.next/server/chunks/ssr/_062mb1e._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_05cohki._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules_0n.ghpl._.js +0 -5
- package/web/.next/server/chunks/ssr/node_modules_120b470._.js +0 -5
- package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_038euao._.js +0 -3
- package/web/.next/static/chunks/05bvvz79zswfr.js +0 -1
- package/web/.next/static/chunks/0a4bykb92jbu2.js +0 -3
- package/web/.next/static/chunks/0c50o8a5sgi.n.js +0 -94
- package/web/.next/static/chunks/0wqf_v9i12zlw.css +0 -1
- package/web/.next/static/chunks/0zarrl-ygjy7b.js +0 -1
- package/web/.next/static/chunks/16xltw7vj2r00.js +0 -185
- /package/web/.next/static/{0QnzQ8Z6fEhlhVaWAQ2_v → SMcLeSYWNCOVrWD-oXgfW}/_buildManifest.js +0 -0
- /package/web/.next/static/{0QnzQ8Z6fEhlhVaWAQ2_v → SMcLeSYWNCOVrWD-oXgfW}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{0QnzQ8Z6fEhlhVaWAQ2_v → SMcLeSYWNCOVrWD-oXgfW}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><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/0c50o8a5sgi.n.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 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-7xl mx-auto px-6 h-14 flex items-center justify-between"><div class="flex items-center gap-4"><a class="flex items-center gap-2.5" href="/"><img alt="Agentnetes" loading="lazy" width="22" height="22" decoding="async" data-nimg="1" class="rounded-md" 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"/><span class="font-bold tracking-tight text-white">Agentnetes</span></a><span class="text-white/20 hidden sm:inline">/</span><span class="text-white/60 text-sm hidden sm:inline">Docs</span></div><div class="flex items-center gap-3"><div class="w-9 h-9"></div><a href="https://github.com/Shashikant86/agentnetes" target="_blank" rel="noreferrer" class="text-white/50 hover:text-white/80 transition-colors hidden sm:block"><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><div class="max-w-7xl mx-auto flex pt-14"><aside class="w-56 shrink-0 sticky top-14 h-[calc(100vh-3.5rem)] overflow-y-auto py-8 px-4 border-r border-white/[0.06] hidden md:block"><div class="text-[10px] font-mono text-white/30 uppercase tracking-widest mb-4 px-3">Documentation</div><nav class="space-y-0.5"><a href="#quickstart" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white font-medium" style="background:var(--bg-card)"><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-zap text-purple-400" 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>Quick Start</a><a href="#how-it-works" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-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>How it Works</a><a href="#local-docker" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-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>Local Dev + Docker</a><a href="#cli" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-terminal" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg>CLI Reference</a><a href="#sandboxes" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-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>Sandbox Providers</a><a href="#config" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-settings" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg>Configuration</a><a href="#examples" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-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>Examples</a><a href="#architecture" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-book-open" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg>Architecture</a><a href="#troubleshoot" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-terminal" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg>Troubleshooting</a></nav><div class="mt-8 mx-3 pt-6 border-t border-white/[0.06]"><div class="text-[10px] font-mono text-white/30 uppercase tracking-widest mb-3">Links</div><a href="https://www.npmjs.com/package/agentnetes" target="_blank" rel="noreferrer" class="flex items-center gap-2 text-xs text-white/50 hover:text-white/80 transition-colors py-1.5"><span class="w-3 h-3 rounded-sm bg-red-500/70 inline-block"></span> npm package</a><a href="https://github.com/Shashikant86/agentnetes" target="_blank" rel="noreferrer" class="flex items-center gap-2 text-xs text-white/50 hover:text-white/80 transition-colors py-1.5"><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-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> GitHub repo</a><a href="https://arxiv.org/abs/2512.24601" target="_blank" rel="noreferrer" class="flex items-center gap-2 text-xs text-white/50 hover:text-white/80 transition-colors py-1.5"><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-book-open" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg> RLM paper</a></div></aside><main class="flex-1 min-w-0 px-8 py-10 max-w-3xl"><div class="mb-10"><div class="text-xs font-mono text-white/40 uppercase tracking-widest mb-3">Developer Docs</div><h1 class="text-4xl font-extrabold text-white mb-4 tracking-tight">Getting Started</h1><p class="text-white/65 text-lg leading-relaxed">Everything you need to run Agentnetes on your codebase · from a first<!-- --> <code class="text-purple-400 bg-purple-400/10 px-1.5 py-0.5 rounded text-sm">npx</code> command to production agent swarms.</p></div><div class="grid grid-cols-1 sm:grid-cols-3 gap-3 mb-10"><div class="rounded-xl border border-white/10 px-5 py-4" style="background:var(--bg-subtle)"><div class="text-xs font-mono mb-2" style="color:#a855f7">Step <!-- -->1</div><div class="text-white font-semibold text-sm mb-1">Get API key</div><a href="https://aistudio.google.com" target="_blank" rel="noreferrer" class="text-xs font-mono underline underline-offset-2" style="color:#a855f7">Free at aistudio.google.com</a></div><div class="rounded-xl border border-white/10 px-5 py-4" style="background:var(--bg-subtle)"><div class="text-xs font-mono mb-2" style="color:#ec4899">Step <!-- -->2</div><div class="text-white font-semibold text-sm mb-1">Pull Docker image</div><code class="text-xs font-mono text-white/50">docker pull node:20-alpine</code></div><div class="rounded-xl border border-white/10 px-5 py-4" style="background:var(--bg-subtle)"><div class="text-xs font-mono mb-2" style="color:#f97316">Step <!-- -->3</div><div class="text-white font-semibold text-sm mb-1">Run on your repo</div><code class="text-xs font-mono text-white/50">npx agentnetes run "goal"</code></div></div><h2 id="quickstart" class="text-2xl font-bold text-white mt-14 mb-4 scroll-mt-20 flex items-center gap-3"><span class="w-1 h-6 rounded-full inline-block shrink-0" style="background:linear-gradient(180deg, #a855f7, #ec4899)"></span>Quick Start</h2><p class="text-white/70 leading-relaxed mb-4 text-base">No installation required. Point Agentnetes at any git repo in under 2 minutes.</p><h3 class="text-base font-semibold text-white mt-8 mb-3">1. Get a Google API key</h3><p class="text-white/70 leading-relaxed mb-4 text-base">Agentnetes uses Gemini 2.5 Pro (planner) and Gemini 2.5 Flash (workers) by default. Get a free API key from<!-- --> <a href="https://aistudio.google.com" target="_blank" rel="noreferrer" class="text-purple-400 hover:text-purple-300 underline underline-offset-2">aistudio.google.com</a>. The free tier is sufficient for most tasks.</p><h3 class="text-base font-semibold text-white mt-8 mb-3">2. Pull the Docker base image</h3><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">docker pull node:20-alpine</pre></div><p class="text-white/70 leading-relaxed mb-4 text-base">This is a one-time step. Each agent gets its own container · pulling it now means the first run starts immediately.</p><h3 class="text-base font-semibold text-white mt-8 mb-3">3. Run on your repo</h3><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre"># From inside any git repository
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/00gs7ywo3p_-j.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/13l7oudco0wo6.js" async=""></script><script src="/_next/static/chunks/0d3shmwh5_nmn.js" async=""></script><script src="/_next/static/chunks/08845o78x1i1w.js" async=""></script><meta name="next-size-adjust" content=""/><link rel="icon" href="/favicon.png" type="image/png"/><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."/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="inter_b2991b2-module__9mH_6q__variable jetbrains_mono_d5591ac2-module__D88TVW__variable 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 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-7xl mx-auto px-6 h-14 flex items-center justify-between"><div class="flex items-center gap-4"><a class="flex items-center gap-2.5" href="/"><img alt="Agentnetes" loading="lazy" width="22" height="22" decoding="async" data-nimg="1" class="rounded-md" 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"/><span class="font-bold tracking-tight text-white">Agentnetes</span></a><span class="text-white/20 hidden sm:inline">/</span><span class="text-white/60 text-sm hidden sm:inline">Docs</span></div><div class="flex items-center gap-3"><div class="w-9 h-9"></div><a href="https://github.com/Shashikant86/agentnetes" target="_blank" rel="noreferrer" class="text-white/50 hover:text-white/80 transition-colors hidden sm:block"><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><div class="max-w-7xl mx-auto flex pt-14"><aside class="w-56 shrink-0 sticky top-14 h-[calc(100vh-3.5rem)] overflow-y-auto py-8 px-4 border-r border-white/[0.06] hidden md:block"><div class="text-[10px] font-mono text-white/30 uppercase tracking-widest mb-4 px-3">Documentation</div><nav class="space-y-0.5"><a href="#quickstart" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white font-medium" style="background:var(--bg-card)"><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-zap text-purple-400" 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>Quick Start</a><a href="#how-it-works" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-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>How it Works</a><a href="#local-docker" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-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>Local Dev + Docker</a><a href="#cli" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-terminal" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg>CLI Reference</a><a href="#serve" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-monitor" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg>Web UI (serve)</a><a href="#sandboxes" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-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>Sandbox Providers</a><a href="#config" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-settings" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg>Configuration</a><a href="#examples" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-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>Examples</a><a href="#architecture" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-book-open" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg>Architecture</a><a href="#troubleshoot" class="flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-all text-white/50 hover:text-white/80"><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-terminal" aria-hidden="true"><path d="M12 19h8"></path><path d="m4 17 6-6-6-6"></path></svg>Troubleshooting</a></nav><div class="mt-8 mx-3 pt-6 border-t border-white/[0.06]"><div class="text-[10px] font-mono text-white/30 uppercase tracking-widest mb-3">Links</div><a href="https://www.npmjs.com/package/agentnetes" target="_blank" rel="noreferrer" class="flex items-center gap-2 text-xs text-white/50 hover:text-white/80 transition-colors py-1.5"><span class="w-3 h-3 rounded-sm bg-red-500/70 inline-block"></span> npm package</a><a href="https://github.com/Shashikant86/agentnetes" target="_blank" rel="noreferrer" class="flex items-center gap-2 text-xs text-white/50 hover:text-white/80 transition-colors py-1.5"><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-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> GitHub repo</a><a href="https://arxiv.org/abs/2512.24601" target="_blank" rel="noreferrer" class="flex items-center gap-2 text-xs text-white/50 hover:text-white/80 transition-colors py-1.5"><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-book-open" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg> RLM paper</a></div></aside><main class="flex-1 min-w-0 px-8 py-10 max-w-3xl"><div class="mb-10"><div class="text-xs font-mono text-white/40 uppercase tracking-widest mb-3">Developer Docs</div><h1 class="text-4xl font-extrabold text-white mb-4 tracking-tight">Getting Started</h1><p class="text-white/65 text-lg leading-relaxed">Everything you need to run Agentnetes on your codebase · from a first<!-- --> <code class="text-purple-400 bg-purple-400/10 px-1.5 py-0.5 rounded text-sm">npx</code> command to production agent swarms.</p></div><div class="grid grid-cols-1 sm:grid-cols-3 gap-3 mb-10"><div class="rounded-xl border border-white/10 px-5 py-4" style="background:var(--bg-subtle)"><div class="text-xs font-mono mb-2" style="color:#a855f7">Step <!-- -->1</div><div class="text-white font-semibold text-sm mb-1">Get API key</div><a href="https://aistudio.google.com" target="_blank" rel="noreferrer" class="text-xs font-mono underline underline-offset-2" style="color:#a855f7">Free at aistudio.google.com</a></div><div class="rounded-xl border border-white/10 px-5 py-4" style="background:var(--bg-subtle)"><div class="text-xs font-mono mb-2" style="color:#ec4899">Step <!-- -->2</div><div class="text-white font-semibold text-sm mb-1">Pull Docker image</div><code class="text-xs font-mono text-white/50">docker pull node:20-alpine</code></div><div class="rounded-xl border border-white/10 px-5 py-4" style="background:var(--bg-subtle)"><div class="text-xs font-mono mb-2" style="color:#f97316">Step <!-- -->3</div><div class="text-white font-semibold text-sm mb-1">Run on your repo</div><code class="text-xs font-mono text-white/50">npx agentnetes run "goal"</code></div></div><h2 id="quickstart" class="text-2xl font-bold text-white mt-14 mb-4 scroll-mt-20 flex items-center gap-3"><span class="w-1 h-6 rounded-full inline-block shrink-0" style="background:linear-gradient(180deg, #a855f7, #ec4899)"></span>Quick Start</h2><p class="text-white/70 leading-relaxed mb-4 text-base">No installation required. Point Agentnetes at any git repo in under 2 minutes.</p><h3 class="text-base font-semibold text-white mt-8 mb-3">1. Get a Google API key</h3><p class="text-white/70 leading-relaxed mb-4 text-base">Agentnetes uses Gemini 2.5 Pro (planner) and Gemini 2.5 Flash (workers) by default. Get a free API key from<!-- --> <a href="https://aistudio.google.com" target="_blank" rel="noreferrer" class="text-purple-400 hover:text-purple-300 underline underline-offset-2">aistudio.google.com</a>. The free tier is sufficient for most tasks.</p><h3 class="text-base font-semibold text-white mt-8 mb-3">2. Pull the Docker base image</h3><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">docker pull node:20-alpine</pre></div><p class="text-white/70 leading-relaxed mb-4 text-base">This is a one-time step. Each agent gets its own container · pulling it now means the first run starts immediately.</p><h3 class="text-base font-semibold text-white mt-8 mb-3">3. Run on your repo</h3><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre"># From inside any git repository
|
|
2
2
|
cd your-project
|
|
3
3
|
GOOGLE_API_KEY=your_key npx agentnetes run "add comprehensive test coverage"</pre></div><h3 class="text-base font-semibold text-white mt-8 mb-3">What you will see</h3><div class="rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center gap-2 px-4 py-2 border-b border-white/[0.06]"><span class="w-2.5 h-2.5 rounded-full bg-red-500/50"></span><span class="w-2.5 h-2.5 rounded-full bg-yellow-500/50"></span><span class="w-2.5 h-2.5 rounded-full bg-green-500/50"></span></div><pre class="px-5 py-4 text-sm font-mono text-white/70 leading-relaxed">Agentnetes
|
|
4
4
|
Zero to a self-organizing AI agency. On demand.
|
|
@@ -38,23 +38,29 @@ SANDBOX_PROVIDER=docker
|
|
|
38
38
|
GOOGLE_API_KEY=your_key_here
|
|
39
39
|
|
|
40
40
|
# ── Target repo for agents to work on ─────────────────────────────
|
|
41
|
-
DEMO_REPO_URL=https://github.com/expressjs/express</pre></div><
|
|
41
|
+
DEMO_REPO_URL=https://github.com/expressjs/express</pre></div><h3 class="text-base font-semibold text-white mt-8 mb-3">3. Start the dev server</h3><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">npm run dev</pre></div><h3 class="text-base font-semibold text-white mt-8 mb-3">4. Open the demo page</h3><p class="text-white/70 leading-relaxed mb-4 text-base">Navigate to <code class="text-white/80 bg-white/5 px-1.5 py-0.5 rounded text-sm">http://localhost:3000/demo</code>. The page defaults to Real mode. Use the Real/Simulation toggle in the header to switch modes. Select a model and submit a goal. Use <strong>Gemini 2.5 Flash</strong> for faster planning. 2.5 Pro has extended thinking which can take 30-60s. GOOGLE_API_KEY is read from the environment (set in <code class="text-white/80 bg-white/5 px-1.5 py-0.5 rounded text-sm">.env.local</code> or exported in your shell).</p><h3 class="text-base font-semibold text-white mt-8 mb-3">5. Watch containers spin up</h3><p class="text-white/70 leading-relaxed mb-4 text-base">In a separate terminal, poll Docker every second to see agents appearing and disappearing:</p><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">watch -n 1 docker ps</pre></div><p class="text-white/70 leading-relaxed mb-4 text-base">You will see one container per worker agent. They are automatically removed when the agent finishes.</p><div class="rounded-xl border border-green-500/30 px-5 py-4 my-4 text-sm text-white/70 leading-relaxed" style="background:rgba(34,197,94,0.06)"><span class="font-semibold text-white/90 mr-2" style="color:#22c55e">Tip<!-- -->:</span>For faster iteration, point <code class="text-white/80 bg-white/5 px-1.5 py-0.5 rounded text-sm">DEMO_REPO_URL</code> at a small repo like <code class="text-white/80 bg-white/5 px-1.5 py-0.5 rounded text-sm">expressjs/express</code>. Large monorepos (e.g. <code class="text-white/80 bg-white/5 px-1.5 py-0.5 rounded text-sm">vercel/ai</code>) take 60-90s to clone per container.</div><h3 class="text-base font-semibold text-white mt-8 mb-3">What happens end-to-end</h3><div class="flex gap-4 mb-4"><div class="w-1.5 shrink-0 rounded-full mt-1" style="background:linear-gradient(180deg, #a855f7 0%, #f97316 100%);min-height:1.5rem"></div><div><div class="text-white font-semibold text-sm mb-0.5">POST /api/chat</div><div class="text-white/60 text-sm leading-relaxed">Browser sends the goal and selected model to the Next.js API route.</div></div></div><div class="flex gap-4 mb-4"><div class="w-1.5 shrink-0 rounded-full mt-1" style="background:linear-gradient(180deg, #a855f7 0%, #f97316 100%);min-height:1.5rem"></div><div><div class="text-white font-semibold text-sm mb-0.5">Planner calls Gemini</div><div class="text-white/60 text-sm leading-relaxed">The Tech Lead agent calls your GOOGLE_API_KEY directly · no gateway.</div></div></div><div class="flex gap-4 mb-4"><div class="w-1.5 shrink-0 rounded-full mt-1" style="background:linear-gradient(180deg, #a855f7 0%, #f97316 100%);min-height:1.5rem"></div><div><div class="text-white font-semibold text-sm mb-0.5">Worker containers start</div><div class="text-white/60 text-sm leading-relaxed">One docker run per specialist · node:20-alpine with git + bash installed, repo cloned to /workspace.</div></div></div><div class="flex gap-4 mb-4"><div class="w-1.5 shrink-0 rounded-full mt-1" style="background:linear-gradient(180deg, #a855f7 0%, #f97316 100%);min-height:1.5rem"></div><div><div class="text-white font-semibold text-sm mb-0.5">Agents execute tools</div><div class="text-white/60 text-sm leading-relaxed">search() and execute() run bash commands inside /workspace via docker exec.</div></div></div><div class="flex gap-4 mb-4"><div class="w-1.5 shrink-0 rounded-full mt-1" style="background:linear-gradient(180deg, #a855f7 0%, #f97316 100%);min-height:1.5rem"></div><div><div class="text-white font-semibold text-sm mb-0.5">SSE stream to browser</div><div class="text-white/60 text-sm leading-relaxed">Events (task-created, terminal, finding, done) stream in real time to the UI.</div></div></div><div class="flex gap-4 mb-4"><div class="w-1.5 shrink-0 rounded-full mt-1" style="background:linear-gradient(180deg, #a855f7 0%, #f97316 100%);min-height:1.5rem"></div><div><div class="text-white font-semibold text-sm mb-0.5">Containers stop</div><div class="text-white/60 text-sm leading-relaxed">Each container is removed automatically after its agent completes (--rm flag).</div></div></div><h2 id="cli" class="text-2xl font-bold text-white mt-14 mb-4 scroll-mt-20 flex items-center gap-3"><span class="w-1 h-6 rounded-full inline-block shrink-0" style="background:linear-gradient(180deg, #a855f7, #ec4899)"></span>CLI Reference</h2><h3 class="text-base font-semibold text-white mt-8 mb-3">agentnetes run</h3><p class="text-white/70 leading-relaxed mb-4 text-base">Run a swarm of agents against the current git repository.</p><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">agentnetes run "<goal>"
|
|
42
42
|
|
|
43
43
|
# Examples
|
|
44
44
|
agentnetes run "add TypeScript strict mode and fix all type errors"
|
|
45
45
|
agentnetes run "write unit tests for the auth module"
|
|
46
46
|
agentnetes run "implement rate limiting on all API routes"
|
|
47
|
-
agentnetes run "add OpenTelemetry tracing throughout the app"</pre></div><div class="rounded-xl border border-purple-500/30 px-5 py-4 my-4 text-sm text-white/70 leading-relaxed" style="background:rgba(168,85,247,0.06)"><span class="font-semibold text-white/90 mr-2" style="color:#a855f7">Note<!-- -->:</span>Must be run from inside a git repository with a remote <code class="text-white/80 bg-white/5 px-1 py-0.5 rounded text-sm">origin</code>. Agentnetes auto-detects the repo URL.</div><h3 class="text-base font-semibold text-white mt-8 mb-3">agentnetes snapshot create</h3><p class="text-white/70 leading-relaxed mb-4 text-base">Pre-warm a Vercel sandbox snapshot of your repo so future runs start in seconds instead of cloning from scratch.</p><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">VERCEL_TOKEN=your_token agentnetes snapshot create</pre></div><h3 class="text-base font-semibold text-white mt-8 mb-3">agentnetes snapshot list</h3><p class="text-white/70 leading-relaxed mb-4 text-base">List all available snapshots in your Vercel account.</p><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">VERCEL_TOKEN=your_token agentnetes snapshot list</pre></div><
|
|
47
|
+
agentnetes run "add OpenTelemetry tracing throughout the app"</pre></div><div class="rounded-xl border border-purple-500/30 px-5 py-4 my-4 text-sm text-white/70 leading-relaxed" style="background:rgba(168,85,247,0.06)"><span class="font-semibold text-white/90 mr-2" style="color:#a855f7">Note<!-- -->:</span>Must be run from inside a git repository with a remote <code class="text-white/80 bg-white/5 px-1 py-0.5 rounded text-sm">origin</code>. Agentnetes auto-detects the repo URL.</div><h3 class="text-base font-semibold text-white mt-8 mb-3">agentnetes snapshot create</h3><p class="text-white/70 leading-relaxed mb-4 text-base">Pre-warm a Vercel sandbox snapshot of your repo so future runs start in seconds instead of cloning from scratch.</p><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">VERCEL_TOKEN=your_token agentnetes snapshot create</pre></div><h3 class="text-base font-semibold text-white mt-8 mb-3">agentnetes snapshot list</h3><p class="text-white/70 leading-relaxed mb-4 text-base">List all available snapshots in your Vercel account.</p><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">VERCEL_TOKEN=your_token agentnetes snapshot list</pre></div><h3 class="text-base font-semibold text-white mt-8 mb-3">agentnetes serve</h3><p class="text-white/70 leading-relaxed mb-4 text-base">Start the Agentnetes web UI on your local machine. No source code needed.</p><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre"># Start on default port 3000
|
|
48
|
+
npx agentnetes serve
|
|
49
|
+
|
|
50
|
+
# Custom port
|
|
51
|
+
npx agentnetes serve --port 8080</pre></div><p class="text-white/70 leading-relaxed mb-4 text-base">Then open http://localhost:3000 in your browser. Set GOOGLE_API_KEY in your environment before starting:</p><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">export GOOGLE_API_KEY=your_key
|
|
52
|
+
npx agentnetes serve</pre></div><div class="rounded-xl border border-green-500/30 px-5 py-4 my-4 text-sm text-white/70 leading-relaxed" style="background:rgba(34,197,94,0.06)"><span class="font-semibold text-white/90 mr-2" style="color:#22c55e">Tip<!-- -->:</span>The web UI has a Real/Simulation toggle. Real mode runs live agents. Simulation mode shows pre-scripted scenarios with no API key needed.</div><h2 id="serve" class="text-2xl font-bold text-white mt-14 mb-4 scroll-mt-20 flex items-center gap-3"><span class="w-1 h-6 rounded-full inline-block shrink-0" style="background:linear-gradient(180deg, #a855f7, #ec4899)"></span>Web UI (serve)</h2><p class="text-white/70 leading-relaxed mb-4 text-base"><code class="text-white/80 bg-white/5 px-1.5 py-0.5 rounded text-sm">agentnetes serve</code> starts the bundled Next.js web UI directly from the npm package. No cloning the repo or running <code class="text-white/80 bg-white/5 px-1.5 py-0.5 rounded text-sm">npm run dev</code> required.</p><h3 class="text-base font-semibold text-white mt-8 mb-3">Setting GOOGLE_API_KEY</h3><p class="text-white/70 leading-relaxed mb-4 text-base">The API key is read from environment variables only. Set it before starting the server:</p><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre"># Option 1: export in your shell session
|
|
53
|
+
export GOOGLE_API_KEY=your_key
|
|
54
|
+
npx agentnetes serve</pre></div><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre"># Option 2: add to .env.local in the directory where you run serve
|
|
55
|
+
GOOGLE_API_KEY=your_key</pre></div><h3 class="text-base font-semibold text-white mt-8 mb-3">Settings modal</h3><p class="text-white/70 leading-relaxed mb-4 text-base">The Settings modal (gear icon in the header) lets you configure:</p><div class="rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-start gap-4 px-5 py-3 border-b border-white/[0.05] last:border-0"><span class="text-white font-medium text-sm w-44 shrink-0">Repo URL</span><span class="text-white/50 text-sm">The git repository agents will clone and work on</span></div><div class="flex items-start gap-4 px-5 py-3 border-b border-white/[0.05] last:border-0"><span class="text-white font-medium text-sm w-44 shrink-0">Sandbox provider</span><span class="text-white/50 text-sm">docker | local | vercel | e2b | daytona</span></div><div class="flex items-start gap-4 px-5 py-3 border-b border-white/[0.05] last:border-0"><span class="text-white font-medium text-sm w-44 shrink-0">Planner model</span><span class="text-white/50 text-sm">Model used by the root Tech Lead agent</span></div><div class="flex items-start gap-4 px-5 py-3 border-b border-white/[0.05] last:border-0"><span class="text-white font-medium text-sm w-44 shrink-0">Worker model</span><span class="text-white/50 text-sm">Model used by specialist agents</span></div><div class="flex items-start gap-4 px-5 py-3 border-b border-white/[0.05] last:border-0"><span class="text-white font-medium text-sm w-44 shrink-0">GOOGLE_API_KEY status</span><span class="text-white/50 text-sm">Green check if set, yellow warning with instructions if not</span></div></div><div class="rounded-xl border border-orange-500/30 px-5 py-4 my-4 text-sm text-white/70 leading-relaxed" style="background:rgba(249,115,22,0.06)"><span class="font-semibold text-white/90 mr-2" style="color:#f97316">Warning<!-- -->:</span>GOOGLE_API_KEY cannot be entered in the web UI. It must be set as an environment variable or in <code class="bg-white/5 px-1 py-0.5 rounded">.env.local</code> before starting the server.</div><h3 class="text-base font-semibold text-white mt-8 mb-3">Real vs Simulation toggle</h3><p class="text-white/70 leading-relaxed mb-4 text-base">The header has a Real/Simulation toggle. Real is the default and runs live agents against your repo using the Gemini API. Simulation mode plays back pre-scripted scenarios and requires no API key, useful for demos and UI development.</p><h2 id="sandboxes" class="text-2xl font-bold text-white mt-14 mb-4 scroll-mt-20 flex items-center gap-3"><span class="w-1 h-6 rounded-full inline-block shrink-0" style="background:linear-gradient(180deg, #a855f7, #ec4899)"></span>Sandbox Providers</h2><p class="text-white/70 leading-relaxed mb-4 text-base">Each agent runs in its own isolated sandbox with the repo cloned inside. Choose the provider that fits your setup:</p><div class="rounded-xl border border-white/10 overflow-hidden my-4"><div class="grid grid-cols-4 px-5 py-2.5 border-b border-white/[0.06] text-[11px] font-mono text-white/40 uppercase tracking-wider" style="background:var(--bg-card)"><span>Provider</span><span>Env var</span><span>Speed</span><span>Notes</span></div><div class="grid grid-cols-4 px-5 py-3 border-b border-white/[0.05] last:border-0 text-sm" style="background:var(--bg-subtle)"><code class="text-purple-400">docker</code><code class="text-white/50 text-xs">-</code><span class="text-white/60">Fast</span><span class="text-white/45 text-xs">Default. node:20-alpine per agent.</span></div><div class="grid grid-cols-4 px-5 py-3 border-b border-white/[0.05] last:border-0 text-sm" style="background:var(--bg-subtle)"><code class="text-purple-400">local</code><code class="text-white/50 text-xs">-</code><span class="text-white/60">Fastest</span><span class="text-white/45 text-xs">Runs on host machine. No isolation.</span></div><div class="grid grid-cols-4 px-5 py-3 border-b border-white/[0.05] last:border-0 text-sm" style="background:var(--bg-subtle)"><code class="text-purple-400">vercel</code><code class="text-white/50 text-xs">VERCEL_TOKEN</code><span class="text-white/60">Fastest*</span><span class="text-white/45 text-xs">Firecracker microVMs. Snapshot support.</span></div><div class="grid grid-cols-4 px-5 py-3 border-b border-white/[0.05] last:border-0 text-sm" style="background:var(--bg-subtle)"><code class="text-purple-400">e2b</code><code class="text-white/50 text-xs">E2B_API_KEY</code><span class="text-white/60">Fast</span><span class="text-white/45 text-xs">Install e2b package separately.</span></div><div class="grid grid-cols-4 px-5 py-3 border-b border-white/[0.05] last:border-0 text-sm" style="background:var(--bg-subtle)"><code class="text-purple-400">daytona</code><code class="text-white/50 text-xs">DAYTONA_API_KEY</code><span class="text-white/60">Fast</span><span class="text-white/45 text-xs">Install @daytonaio/sdk separately.</span></div></div><h3 class="text-base font-semibold text-white mt-8 mb-3">Setting the provider</h3><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre"># Use Docker (default for local dev)
|
|
48
56
|
SANDBOX_PROVIDER=docker GOOGLE_API_KEY=xxx agentnetes run "goal"
|
|
49
57
|
|
|
50
58
|
# Use local (fastest, no isolation)
|
|
51
59
|
SANDBOX_PROVIDER=local GOOGLE_API_KEY=xxx agentnetes run "goal"
|
|
52
60
|
|
|
53
61
|
# Use Vercel (requires VERCEL_TOKEN)
|
|
54
|
-
SANDBOX_PROVIDER=vercel VERCEL_TOKEN=xxx GOOGLE_API_KEY=xxx agentnetes run "goal"</pre></div><div class="rounded-xl border border-green-500/30 px-5 py-4 my-4 text-sm text-white/70 leading-relaxed" style="background:rgba(34,197,94,0.06)"><span class="font-semibold text-white/90 mr-2" style="color:#22c55e">Tip<!-- -->:</span>For local development, <code class="text-white/80 bg-white/5 px-1 py-0.5 rounded text-sm">docker</code> is recommended over <code class="text-white/80 bg-white/5 px-1 py-0.5 rounded text-sm">local</code> · it prevents agents from writing to your actual working directory.</div><h2 id="config" class="text-2xl font-bold text-white mt-14 mb-4 scroll-mt-20 flex items-center gap-3"><span class="w-1 h-6 rounded-full inline-block shrink-0" style="background:linear-gradient(180deg, #a855f7, #ec4899)"></span>Configuration</h2><p class="text-white/70 leading-relaxed mb-4 text-base">All configuration is done via environment variables. No config file needed.</p><h3 class="text-base font-semibold text-white mt-8 mb-3">Full reference</h3><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre"># ── LLM Provider
|
|
55
|
-
GOOGLE_API_KEY= #
|
|
56
|
-
AI_GATEWAY_BASE_URL= # Vercel AI Gateway endpoint
|
|
57
|
-
AI_GATEWAY_API_KEY= # Vercel AI Gateway API key
|
|
62
|
+
SANDBOX_PROVIDER=vercel VERCEL_TOKEN=xxx GOOGLE_API_KEY=xxx agentnetes run "goal"</pre></div><div class="rounded-xl border border-green-500/30 px-5 py-4 my-4 text-sm text-white/70 leading-relaxed" style="background:rgba(34,197,94,0.06)"><span class="font-semibold text-white/90 mr-2" style="color:#22c55e">Tip<!-- -->:</span>For local development, <code class="text-white/80 bg-white/5 px-1 py-0.5 rounded text-sm">docker</code> is recommended over <code class="text-white/80 bg-white/5 px-1 py-0.5 rounded text-sm">local</code> · it prevents agents from writing to your actual working directory.</div><h2 id="config" class="text-2xl font-bold text-white mt-14 mb-4 scroll-mt-20 flex items-center gap-3"><span class="w-1 h-6 rounded-full inline-block shrink-0" style="background:linear-gradient(180deg, #a855f7, #ec4899)"></span>Configuration</h2><p class="text-white/70 leading-relaxed mb-4 text-base">All configuration is done via environment variables. No config file needed.</p><h3 class="text-base font-semibold text-white mt-8 mb-3">Full reference</h3><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre"># ── LLM Provider ─────────────────────────────────────────────────
|
|
63
|
+
GOOGLE_API_KEY= # Required · get free at aistudio.google.com
|
|
58
64
|
|
|
59
65
|
# ── Sandbox ───────────────────────────────────────────────────────
|
|
60
66
|
SANDBOX_PROVIDER=docker # docker | local | vercel | e2b | daytona
|
|
@@ -64,11 +70,9 @@ VERCEL_TOKEN= # Required for vercel sandbox
|
|
|
64
70
|
PLANNER_MODEL=google/gemini-2.5-pro # Root Tech Lead model
|
|
65
71
|
WORKER_MODEL=google/gemini-2.5-flash # Specialist agent model
|
|
66
72
|
|
|
67
|
-
# ──
|
|
68
|
-
SIMULATION_MODE=false # true =
|
|
69
|
-
DEMO_REPO_URL=https://github.com/
|
|
70
|
-
AI_GATEWAY_API_KEY=your_gateway_key
|
|
71
|
-
agentnetes run "your goal"</pre></div><h2 id="examples" class="text-2xl font-bold text-white mt-14 mb-4 scroll-mt-20 flex items-center gap-3"><span class="w-1 h-6 rounded-full inline-block shrink-0" style="background:linear-gradient(180deg, #a855f7, #ec4899)"></span>Examples</h2><h3 class="text-base font-semibold text-white mt-8 mb-3">Add test coverage</h3><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">cd your-node-project
|
|
73
|
+
# ── Web app / serve only ───────────────────────────────────────────
|
|
74
|
+
SIMULATION_MODE=false # true = always use simulation
|
|
75
|
+
DEMO_REPO_URL=https://github.com/expressjs/express</pre></div><h2 id="examples" class="text-2xl font-bold text-white mt-14 mb-4 scroll-mt-20 flex items-center gap-3"><span class="w-1 h-6 rounded-full inline-block shrink-0" style="background:linear-gradient(180deg, #a855f7, #ec4899)"></span>Examples</h2><h3 class="text-base font-semibold text-white mt-8 mb-3">Add test coverage</h3><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">cd your-node-project
|
|
72
76
|
GOOGLE_API_KEY=xxx npx agentnetes run "add vitest unit tests for all utility functions"</pre></div><h3 class="text-base font-semibold text-white mt-8 mb-3">Fix TypeScript errors</h3><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">GOOGLE_API_KEY=xxx npx agentnetes run "enable strict TypeScript and fix all type errors"</pre></div><h3 class="text-base font-semibold text-white mt-8 mb-3">Implement a feature</h3><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">GOOGLE_API_KEY=xxx npx agentnetes run "add rate limiting middleware to all Express routes using express-rate-limit"</pre></div><h3 class="text-base font-semibold text-white mt-8 mb-3">Security audit</h3><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">GOOGLE_API_KEY=xxx npx agentnetes run "audit the codebase for security vulnerabilities and fix them"</pre></div><h3 class="text-base font-semibold text-white mt-8 mb-3">Add observability</h3><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">bash</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">GOOGLE_API_KEY=xxx npx agentnetes run "add OpenTelemetry tracing to all API routes and database queries"</pre></div><div class="rounded-xl border border-green-500/30 px-5 py-4 my-4 text-sm text-white/70 leading-relaxed" style="background:rgba(34,197,94,0.06)"><span class="font-semibold text-white/90 mr-2" style="color:#22c55e">Tip<!-- -->:</span>Be specific in your goals. Instead of <em>"improve the code"</em>, try <em>"add error handling to all async functions in the API layer and log errors with structured JSON"</em>.</div><h2 id="architecture" class="text-2xl font-bold text-white mt-14 mb-4 scroll-mt-20 flex items-center gap-3"><span class="w-1 h-6 rounded-full inline-block shrink-0" style="background:linear-gradient(180deg, #a855f7, #ec4899)"></span>Architecture</h2><p class="text-white/70 leading-relaxed mb-4 text-base">The core runtime is in <code class="text-white/80 bg-white/5 px-1.5 py-0.5 rounded text-sm">lib/vrlm/</code> and is completely independent of Next.js · you can embed it in any Node.js application.</p><h3 class="text-base font-semibold text-white mt-8 mb-3">Embedding the runtime</h3><div class="relative rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center justify-between px-4 py-2 border-b border-white/[0.06]"><span class="text-[11px] font-mono text-white/30 uppercase">typescript</span><button class="text-[11px] font-mono text-white/40 hover:text-white/70 transition-colors px-2 py-0.5 rounded border border-white/10">copy</button></div><pre class="px-5 py-4 text-sm font-mono text-white/80 overflow-x-auto leading-relaxed whitespace-pre">import { VrlmRuntime } from 'agentnetes/runtime';
|
|
73
77
|
import { VrlmEventEmitter } from 'agentnetes/events';
|
|
74
78
|
|
|
@@ -87,4 +91,4 @@ const runtime = new VrlmRuntime(emitter, {
|
|
|
87
91
|
maxStepsPerAgent: 20,
|
|
88
92
|
});
|
|
89
93
|
|
|
90
|
-
await runtime.run('add comprehensive test coverage');</pre></div><h3 class="text-base font-semibold text-white mt-8 mb-3">Event types</h3><div class="rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">task-created</code><span class="text-white/55 text-sm">A new agent task was spawned</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">task-updated</code><span class="text-white/55 text-sm">Agent status text changed</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">task-completed</code><span class="text-white/55 text-sm">Agent finished successfully</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">task-failed</code><span class="text-white/55 text-sm">Agent encountered an error</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">finding</code><span class="text-white/55 text-sm">Agent produced a text observation</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">terminal</code><span class="text-white/55 text-sm">Agent ran a shell command (tool call)</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">artifact</code><span class="text-white/55 text-sm">Agent created or modified a file</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">collaboration</code><span class="text-white/55 text-sm">Agent requested input from another agent</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">synthesis</code><span class="text-white/55 text-sm">Root agent produced the final summary</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">done</code><span class="text-white/55 text-sm">All agents finished · run is complete</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">error</code><span class="text-white/55 text-sm">Fatal runtime error</span></div></div><h2 id="troubleshoot" class="text-2xl font-bold text-white mt-14 mb-4 scroll-mt-20 flex items-center gap-3"><span class="w-1 h-6 rounded-full inline-block shrink-0" style="background:linear-gradient(180deg, #a855f7, #ec4899)"></span>Troubleshooting</h2><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">Error: not inside a git repository or no remote "origin" found</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>You must run agentnetes from inside a git repo that has a remote named origin.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>cd into your project root and ensure git remote get-url origin returns a URL.</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">GOOGLE_API_KEY is not set / no LLM provider configured</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>No API key was provided and no AI Gateway is configured.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Set GOOGLE_API_KEY=your_key before the command, or add it to a .env file and use dotenv.</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">Docker daemon is not running</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>The Docker sandbox (default) requires Docker Desktop or Docker Engine to be running.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Start Docker Desktop, or switch to local sandbox: SANDBOX_PROVIDER=local</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">docker: Cannot connect to the Docker daemon</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>Same as above · Docker is not running or the socket is not accessible.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Run: open -a Docker (macOS) or sudo systemctl start docker (Linux)</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">Fatal: model returned empty response</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>The Gemini API returned nothing · usually a quota or region issue.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Check your quota at aistudio.google.com. Try WORKER_MODEL=google/gemini-2.0-flash as a fallback.</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">Agent exceeded step budget with no result</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>The agent hit the maxStepsPerAgent limit (default: 20) without completing.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Break the goal into smaller tasks, or increase the budget with WORKER_MAX_STEPS=40.</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">GatewayAuthenticationError: Unauthenticated request to AI Gateway</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>AI_GATEWAY_BASE_URL is set in your environment, causing all model calls to route through Vercel AI Gateway instead of Google directly.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Remove AI_GATEWAY_BASE_URL from your environment or .env.local. Use only GOOGLE_API_KEY for direct Gemini access.</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">UI shows nothing after submitting a prompt (empty EventStream)</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>The runtime errored silently. Common causes: invalid API key, model not available, or a missing env var.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Check the terminal running npm run dev for [chat] error: lines. The UI now shows error messages in the chat panel.</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">Gemini 2.5 Pro hangs for 60+ seconds before planning</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>Gemini 2.5 Pro uses extended thinking mode which can take over a minute for complex goals.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Switch to Gemini 2.5 Flash in the model selector dropdown · it plans in 3-5 seconds.</div></div><div class="rounded-xl border border-green-500/30 px-5 py-4 my-4 text-sm text-white/70 leading-relaxed" style="background:rgba(34,197,94,0.06)"><span class="font-semibold text-white/90 mr-2" style="color:#22c55e">Tip<!-- -->:</span>Still stuck? Open an issue at<!-- --> <a href="https://github.com/Shashikant86/agentnetes/issues" target="_blank" rel="noreferrer" class="text-purple-400 hover:text-purple-300 underline underline-offset-2">github.com/Shashikant86/agentnetes/issues</a> <!-- -->with the error output and your sandbox provider.</div><div class="mt-16 pt-8 border-t border-white/[0.06] flex flex-col sm:flex-row items-center justify-between gap-4"><div class="flex items-center gap-2"><img alt="Agentnetes" loading="lazy" width="18" height="18" decoding="async" data-nimg="1" class="rounded-sm opacity-60" 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"/><span class="text-white/40 text-sm font-mono">Agentnetes · MIT License</span></div><div class="flex items-center gap-4 text-sm"><a class="text-white/40 hover:text-white/70 transition-colors" href="/">Home</a><a class="text-white/40 hover:text-white/70 transition-colors" href="/demo">Demo</a><a href="https://github.com/Shashikant86/agentnetes" target="_blank" rel="noreferrer" class="text-white/40 hover:text-white/70 transition-colors">GitHub</a><a href="https://www.npmjs.com/package/agentnetes" target="_blank" rel="noreferrer" class="text-white/40 hover:text-white/70 transition-colors">npm</a></div></div></main></div></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[14287,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0c50o8a5sgi.n.js\"],\"default\"]\n9:I[97367,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nd:I[97367,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\nf:I[97367,[\"/_next/static/chunks/0u46szahhg8-l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\n11: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\":[\"\",\"docs\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"docs\",{\"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\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"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/0c50o8a5sgi.n.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,null]},null,false,\"$@c\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L10\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[[\"$\",\"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,"12:[]\nc:\"$W12\"\n7:{}\n8:\"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"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\n10:[[\"$\",\"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>
|
|
94
|
+
await runtime.run('add comprehensive test coverage');</pre></div><h3 class="text-base font-semibold text-white mt-8 mb-3">Event types</h3><div class="rounded-xl border border-white/10 overflow-hidden my-4" style="background:var(--bg-subtle)"><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">task-created</code><span class="text-white/55 text-sm">A new agent task was spawned</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">task-updated</code><span class="text-white/55 text-sm">Agent status text changed</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">task-completed</code><span class="text-white/55 text-sm">Agent finished successfully</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">task-failed</code><span class="text-white/55 text-sm">Agent encountered an error</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">finding</code><span class="text-white/55 text-sm">Agent produced a text observation</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">terminal</code><span class="text-white/55 text-sm">Agent ran a shell command (tool call)</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">artifact</code><span class="text-white/55 text-sm">Agent created or modified a file</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">collaboration</code><span class="text-white/55 text-sm">Agent requested input from another agent</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">synthesis</code><span class="text-white/55 text-sm">Root agent produced the final summary</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">done</code><span class="text-white/55 text-sm">All agents finished · run is complete</span></div><div class="flex items-center gap-4 px-5 py-2.5 border-b border-white/[0.05] last:border-0"><code class="text-purple-400 text-xs w-36 shrink-0">error</code><span class="text-white/55 text-sm">Fatal runtime error</span></div></div><h2 id="troubleshoot" class="text-2xl font-bold text-white mt-14 mb-4 scroll-mt-20 flex items-center gap-3"><span class="w-1 h-6 rounded-full inline-block shrink-0" style="background:linear-gradient(180deg, #a855f7, #ec4899)"></span>Troubleshooting</h2><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">Error: not inside a git repository or no remote "origin" found</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>You must run agentnetes from inside a git repo that has a remote named origin.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>cd into your project root and ensure git remote get-url origin returns a URL.</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">GOOGLE_API_KEY is not set / no LLM provider configured</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>No API key was provided and no AI Gateway is configured.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Set GOOGLE_API_KEY=your_key before the command, or add it to a .env file and use dotenv.</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">Docker daemon is not running</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>The Docker sandbox (default) requires Docker Desktop or Docker Engine to be running.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Start Docker Desktop, or switch to local sandbox: SANDBOX_PROVIDER=local</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">docker: Cannot connect to the Docker daemon</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>Same as above · Docker is not running or the socket is not accessible.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Run: open -a Docker (macOS) or sudo systemctl start docker (Linux)</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">Fatal: model returned empty response</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>The Gemini API returned nothing · usually a quota or region issue.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Check your quota at aistudio.google.com. Try WORKER_MODEL=google/gemini-2.0-flash as a fallback.</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">Agent exceeded step budget with no result</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>The agent hit the maxStepsPerAgent limit (default: 20) without completing.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Break the goal into smaller tasks, or increase the budget with WORKER_MAX_STEPS=40.</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">GatewayAuthenticationError: Unauthenticated request to AI Gateway</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>AI_GATEWAY_BASE_URL is set in your environment, causing all model calls to route through Vercel AI Gateway instead of Google directly.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Remove AI_GATEWAY_BASE_URL from your environment or .env.local. Use only GOOGLE_API_KEY for direct Gemini access.</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">UI shows nothing after submitting a prompt (empty EventStream)</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>The runtime errored silently. Common causes: invalid API key, model not available, or a missing env var.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Check the terminal running npm run dev for [chat] error: lines. The UI now shows error messages in the chat panel.</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">Gemini 2.5 Pro hangs for 60+ seconds before planning</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>Gemini 2.5 Pro uses extended thinking mode which can take over a minute for complex goals.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Switch to Gemini 2.5 Flash in the model selector dropdown · it plans in 3-5 seconds.</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">Error: web UI not found</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>The standalone web UI was not bundled in this version of the npm package.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Use npx agentnetes@latest serve to get the latest version with the web UI bundled.</div></div><div class="rounded-xl border border-white/10 px-5 py-4 mb-4" style="background:var(--bg-subtle)"><code class="text-red-400 text-xs font-mono block mb-3 leading-relaxed">GOOGLE_API_KEY not set: real agents will not run</code><div class="text-sm text-white/60 mb-1"><span class="text-white/40 mr-2">Cause:</span>The API key is read from environment variables only. It cannot be entered in the web UI.</div><div class="text-sm text-white/70"><span class="text-green-400 mr-2">Fix:</span>Run: export GOOGLE_API_KEY=your_key then restart agentnetes serve. Or add it to .env.local.</div></div><div class="rounded-xl border border-green-500/30 px-5 py-4 my-4 text-sm text-white/70 leading-relaxed" style="background:rgba(34,197,94,0.06)"><span class="font-semibold text-white/90 mr-2" style="color:#22c55e">Tip<!-- -->:</span>Still stuck? Open an issue at<!-- --> <a href="https://github.com/Shashikant86/agentnetes/issues" target="_blank" rel="noreferrer" class="text-purple-400 hover:text-purple-300 underline underline-offset-2">github.com/Shashikant86/agentnetes/issues</a> <!-- -->with the error output and your sandbox provider.</div><div class="mt-16 pt-8 border-t border-white/[0.06] flex flex-col sm:flex-row items-center justify-between gap-4"><div class="flex items-center gap-2"><img alt="Agentnetes" loading="lazy" width="18" height="18" decoding="async" data-nimg="1" class="rounded-sm opacity-60" 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"/><span class="text-white/40 text-sm font-mono">Agentnetes · MIT License</span></div><div class="flex items-center gap-4 text-sm"><a class="text-white/40 hover:text-white/70 transition-colors" href="/">Home</a><a class="text-white/40 hover:text-white/70 transition-colors" href="/demo">Demo</a><a href="https://github.com/Shashikant86/agentnetes" target="_blank" rel="noreferrer" class="text-white/40 hover:text-white/70 transition-colors">GitHub</a><a href="https://www.npmjs.com/package/agentnetes" target="_blank" rel="noreferrer" class="text-white/40 hover:text-white/70 transition-colors">npm</a></div></div></main></div></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/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ThemeProvider\"]\n3:I[39756,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\"]\n5:I[47257,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ClientPageRoot\"]\n6:I[14287,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/08845o78x1i1w.js\"],\"default\"]\n9:I[97367,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nd:I[97367,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"ViewportBoundary\"]\nf:I[97367,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"MetadataBoundary\"]\n11:I[68027,[\"/_next/static/chunks/13l7oudco0wo6.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/00gs7ywo3p_-j.css\",\"style\"]\n:HL[\"/_next/static/media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"docs\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"docs\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/00gs7ywo3p_-j.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/13l7oudco0wo6.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\"}]}],[\"$\",\"body\",null,{\"className\":\"inter_b2991b2-module__9mH_6q__variable jetbrains_mono_d5591ac2-module__D88TVW__variable 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\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"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/08845o78x1i1w.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,null]},null,false,\"$@c\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L10\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/00gs7ywo3p_-j.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"SMcLeSYWNCOVrWD-oXgfW\"}\n"])</script><script>self.__next_f.push([1,"12:[]\nc:\"$W12\"\n7:{}\n8:\"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"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\n10:[[\"$\",\"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,17 +1,18 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[80492,["/_next/static/chunks/
|
|
3
|
-
3:I[39756,["/_next/static/chunks/
|
|
4
|
-
4:I[37457,["/_next/static/chunks/
|
|
5
|
-
5:I[47257,["/_next/static/chunks/
|
|
6
|
-
6:I[14287,["/_next/static/chunks/
|
|
7
|
-
9:I[97367,["/_next/static/chunks/
|
|
2
|
+
2:I[80492,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ThemeProvider"]
|
|
3
|
+
3:I[39756,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
|
4
|
+
4:I[37457,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
|
5
|
+
5:I[47257,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ClientPageRoot"]
|
|
6
|
+
6:I[14287,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/08845o78x1i1w.js"],"default"]
|
|
7
|
+
9:I[97367,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
|
|
8
8
|
a:"$Sreact.suspense"
|
|
9
|
-
d:I[97367,["/_next/static/chunks/
|
|
10
|
-
f:I[97367,["/_next/static/chunks/
|
|
11
|
-
11:I[68027,["/_next/static/chunks/
|
|
12
|
-
:HL["/_next/static/chunks/
|
|
13
|
-
:HL["
|
|
14
|
-
|
|
9
|
+
d:I[97367,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
|
|
10
|
+
f:I[97367,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
|
|
11
|
+
11:I[68027,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1]
|
|
12
|
+
:HL["/_next/static/chunks/00gs7ywo3p_-j.css","style"]
|
|
13
|
+
:HL["/_next/static/media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
14
|
+
:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
15
|
+
0:{"P":null,"c":["","docs"],"q":"","i":false,"f":[[["",{"children":["docs",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/00gs7ywo3p_-j.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/13l7oudco0wo6.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"}]}],["$","body",null,{"className":"inter_b2991b2-module__9mH_6q__variable jetbrains_mono_d5591ac2-module__D88TVW__variable 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":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","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/08845o78x1i1w.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/00gs7ywo3p_-j.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"SMcLeSYWNCOVrWD-oXgfW"}
|
|
15
16
|
12:[]
|
|
16
17
|
c:"$W12"
|
|
17
18
|
7:{}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[80492,["/_next/static/chunks/
|
|
3
|
-
3:I[39756,["/_next/static/chunks/
|
|
4
|
-
4:I[37457,["/_next/static/chunks/
|
|
5
|
-
5:I[47257,["/_next/static/chunks/
|
|
6
|
-
6:I[14287,["/_next/static/chunks/
|
|
7
|
-
9:I[97367,["/_next/static/chunks/
|
|
2
|
+
2:I[80492,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ThemeProvider"]
|
|
3
|
+
3:I[39756,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
|
4
|
+
4:I[37457,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
|
5
|
+
5:I[47257,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ClientPageRoot"]
|
|
6
|
+
6:I[14287,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js","/_next/static/chunks/08845o78x1i1w.js"],"default"]
|
|
7
|
+
9:I[97367,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"OutletBoundary"]
|
|
8
8
|
a:"$Sreact.suspense"
|
|
9
|
-
d:I[97367,["/_next/static/chunks/
|
|
10
|
-
f:I[97367,["/_next/static/chunks/
|
|
11
|
-
11:I[68027,["/_next/static/chunks/
|
|
12
|
-
:HL["/_next/static/chunks/
|
|
13
|
-
:HL["
|
|
14
|
-
|
|
9
|
+
d:I[97367,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
|
|
10
|
+
f:I[97367,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
|
|
11
|
+
11:I[68027,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default",1]
|
|
12
|
+
:HL["/_next/static/chunks/00gs7ywo3p_-j.css","style"]
|
|
13
|
+
:HL["/_next/static/media/70bc3e132a0a741e-s.p.1409xf.ylxg8g.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
14
|
+
:HL["/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
15
|
+
0:{"P":null,"c":["","docs"],"q":"","i":false,"f":[[["",{"children":["docs",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/00gs7ywo3p_-j.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/13l7oudco0wo6.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"}]}],["$","body",null,{"className":"inter_b2991b2-module__9mH_6q__variable jetbrains_mono_d5591ac2-module__D88TVW__variable 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":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","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/08845o78x1i1w.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/00gs7ywo3p_-j.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"SMcLeSYWNCOVrWD-oXgfW"}
|
|
15
16
|
12:[]
|
|
16
17
|
c:"$W12"
|
|
17
18
|
7:{}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[97367,["/_next/static/chunks/
|
|
3
|
-
3:I[97367,["/_next/static/chunks/
|
|
2
|
+
2:I[97367,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ViewportBoundary"]
|
|
3
|
+
3:I[97367,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"MetadataBoundary"]
|
|
4
4
|
4:"$Sreact.suspense"
|
|
5
|
-
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","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."}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
5
|
+
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","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."}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"SMcLeSYWNCOVrWD-oXgfW"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[80492,["/_next/static/chunks/
|
|
3
|
-
3:I[39756,["/_next/static/chunks/
|
|
4
|
-
4:I[37457,["/_next/static/chunks/
|
|
5
|
-
:HL["/_next/static/chunks/
|
|
6
|
-
:
|
|
7
|
-
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0wqf_v9i12zlw.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0u46szahhg8-l.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}]],["$","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","template":["$","$L4",null,{}],"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."}]}]]}]}]],[]]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"0QnzQ8Z6fEhlhVaWAQ2_v"}
|
|
2
|
+
2:I[80492,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"ThemeProvider"]
|
|
3
|
+
3:I[39756,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
|
4
|
+
4:I[37457,["/_next/static/chunks/13l7oudco0wo6.js","/_next/static/chunks/0d3shmwh5_nmn.js"],"default"]
|
|
5
|
+
:HL["/_next/static/chunks/00gs7ywo3p_-j.css","style"]
|
|
6
|
+
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/00gs7ywo3p_-j.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/13l7oudco0wo6.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0d3shmwh5_nmn.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","link",null,{"rel":"icon","href":"/favicon.png","type":"image/png"}]}],["$","body",null,{"className":"inter_b2991b2-module__9mH_6q__variable jetbrains_mono_d5591ac2-module__D88TVW__variable antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"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."}]}]]}]}]],[]]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"SMcLeSYWNCOVrWD-oXgfW"}
|