agent-relay 1.3.0 → 1.3.2
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/.trajectories/active/traj_3yx9dy148mge.json +42 -0
- package/.trajectories/completed/2026-01/traj_1g7yx6qtg4ai.json +49 -0
- package/.trajectories/completed/2026-01/traj_1g7yx6qtg4ai.md +31 -0
- package/.trajectories/completed/2026-01/traj_4qwd4zmhfwp4.json +49 -0
- package/.trajectories/completed/2026-01/traj_4qwd4zmhfwp4.md +31 -0
- package/.trajectories/completed/2026-01/traj_6unwwmgyj5sq.json +109 -0
- package/.trajectories/completed/2026-01/traj_a0tqx8biw9c4.json +49 -0
- package/.trajectories/completed/2026-01/traj_a0tqx8biw9c4.md +31 -0
- package/.trajectories/completed/2026-01/traj_ax8uungxz2qh.json +66 -0
- package/.trajectories/completed/2026-01/traj_ax8uungxz2qh.md +36 -0
- package/.trajectories/completed/2026-01/traj_c9izbh2snpzf.json +49 -0
- package/.trajectories/completed/2026-01/traj_c9izbh2snpzf.md +31 -0
- package/.trajectories/completed/2026-01/traj_cpn70dw066nt.json +65 -0
- package/.trajectories/completed/2026-01/traj_cpn70dw066nt.md +37 -0
- package/.trajectories/completed/2026-01/traj_erglv2f8t9eh.json +36 -0
- package/.trajectories/completed/2026-01/traj_erglv2f8t9eh.md +21 -0
- package/.trajectories/completed/2026-01/traj_he75f24d1xfm.json +101 -0
- package/.trajectories/completed/2026-01/traj_he75f24d1xfm.md +52 -0
- package/.trajectories/completed/2026-01/traj_lgtodco7dp1n.json +61 -0
- package/.trajectories/completed/2026-01/traj_lgtodco7dp1n.md +36 -0
- package/.trajectories/completed/2026-01/traj_oszg9flv74pk.json +73 -0
- package/.trajectories/completed/2026-01/traj_oszg9flv74pk.md +41 -0
- package/.trajectories/completed/2026-01/traj_pulomd3y8cvj.json +77 -0
- package/.trajectories/completed/2026-01/traj_pulomd3y8cvj.md +42 -0
- package/.trajectories/completed/2026-01/traj_rsavt0jipi3c.json +109 -0
- package/.trajectories/completed/2026-01/traj_rsavt0jipi3c.md +56 -0
- package/.trajectories/completed/2026-01/traj_x721m1j9rzup.json +113 -0
- package/.trajectories/completed/2026-01/traj_x721m1j9rzup.md +57 -0
- package/.trajectories/completed/2026-01/traj_xjqvmep5ed3h.json +61 -0
- package/.trajectories/completed/2026-01/traj_xjqvmep5ed3h.md +36 -0
- package/.trajectories/completed/2026-01/traj_y7n6hfbf7dmg.json +49 -0
- package/.trajectories/completed/2026-01/traj_y7n6hfbf7dmg.md +31 -0
- package/.trajectories/completed/2026-01/traj_yvfkwnkdiso2.json +49 -0
- package/.trajectories/completed/2026-01/traj_yvfkwnkdiso2.md +31 -0
- package/.trajectories/index.json +140 -1
- package/TRAIL_GIT_AUTH_FIX.md +113 -0
- package/deploy/workspace/codex.config.toml +1 -1
- package/deploy/workspace/entrypoint.sh +20 -79
- package/deploy/workspace/gh-relay +156 -0
- package/deploy/workspace/git-credential-relay +5 -1
- package/dist/bridge/multi-project-client.js +13 -10
- package/dist/bridge/spawner.d.ts +2 -0
- package/dist/bridge/spawner.js +19 -1
- package/dist/bridge/types.d.ts +2 -0
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +115 -69
- package/dist/cloud/api/admin.js +16 -3
- package/dist/cloud/api/codex-auth-helper.js +28 -8
- package/dist/cloud/api/consensus.d.ts +13 -0
- package/dist/cloud/api/consensus.js +259 -0
- package/dist/cloud/api/daemons.js +205 -1
- package/dist/cloud/api/git.js +37 -7
- package/dist/cloud/api/onboarding.js +4 -1
- package/dist/cloud/api/provider-env.d.ts +5 -0
- package/dist/cloud/api/provider-env.js +27 -0
- package/dist/cloud/api/providers.js +2 -0
- package/dist/cloud/api/test-helpers.js +130 -0
- package/dist/cloud/api/workspaces.js +38 -3
- package/dist/cloud/db/bulk-ingest.d.ts +88 -0
- package/dist/cloud/db/bulk-ingest.js +268 -0
- package/dist/cloud/db/drizzle.d.ts +33 -0
- package/dist/cloud/db/drizzle.js +174 -2
- package/dist/cloud/db/index.d.ts +24 -5
- package/dist/cloud/db/index.js +19 -4
- package/dist/cloud/db/schema.d.ts +397 -3
- package/dist/cloud/db/schema.js +75 -1
- package/dist/cloud/provisioner/index.d.ts +8 -0
- package/dist/cloud/provisioner/index.js +256 -50
- package/dist/cloud/server.js +47 -3
- package/dist/cloud/services/index.d.ts +1 -0
- package/dist/cloud/services/index.js +2 -0
- package/dist/cloud/services/nango.d.ts +3 -4
- package/dist/cloud/services/nango.js +11 -33
- package/dist/cloud/services/workspace-keepalive.d.ts +76 -0
- package/dist/cloud/services/workspace-keepalive.js +234 -0
- package/dist/config/relay-config.d.ts +23 -0
- package/dist/config/relay-config.js +23 -0
- package/dist/daemon/agent-manager.d.ts +20 -1
- package/dist/daemon/agent-manager.js +47 -0
- package/dist/daemon/agent-registry.js +4 -4
- package/dist/daemon/agent-signing.d.ts +158 -0
- package/dist/daemon/agent-signing.js +523 -0
- package/dist/daemon/api.js +18 -1
- package/dist/daemon/cli-auth.d.ts +4 -1
- package/dist/daemon/cli-auth.js +55 -11
- package/dist/daemon/cloud-sync.d.ts +47 -1
- package/dist/daemon/cloud-sync.js +152 -3
- package/dist/daemon/connection.d.ts +28 -0
- package/dist/daemon/connection.js +98 -15
- package/dist/daemon/consensus-integration.d.ts +167 -0
- package/dist/daemon/consensus-integration.js +371 -0
- package/dist/daemon/consensus.d.ts +271 -0
- package/dist/daemon/consensus.js +632 -0
- package/dist/daemon/delivery-tracker.d.ts +34 -0
- package/dist/daemon/delivery-tracker.js +104 -0
- package/dist/daemon/enhanced-features.d.ts +118 -0
- package/dist/daemon/enhanced-features.js +178 -0
- package/dist/daemon/index.d.ts +4 -0
- package/dist/daemon/index.js +5 -0
- package/dist/daemon/rate-limiter.d.ts +68 -0
- package/dist/daemon/rate-limiter.js +130 -0
- package/dist/daemon/router.d.ts +18 -11
- package/dist/daemon/router.js +55 -111
- package/dist/daemon/server.d.ts +13 -1
- package/dist/daemon/server.js +71 -9
- package/dist/daemon/sync-queue.d.ts +116 -0
- package/dist/daemon/sync-queue.js +361 -0
- package/dist/health-worker-manager.d.ts +62 -0
- package/dist/health-worker-manager.js +144 -0
- package/dist/health-worker.d.ts +9 -0
- package/dist/health-worker.js +79 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +5 -1
- package/dist/memory/context-compaction.d.ts +156 -0
- package/dist/memory/context-compaction.js +453 -0
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.js +1 -0
- package/dist/protocol/channels.js +4 -4
- package/dist/protocol/framing.d.ts +72 -10
- package/dist/protocol/framing.js +194 -25
- package/dist/storage/adapter.d.ts +8 -1
- package/dist/storage/adapter.js +11 -0
- package/dist/storage/batched-sqlite-adapter.d.ts +71 -0
- package/dist/storage/batched-sqlite-adapter.js +183 -0
- package/dist/storage/dead-letter-queue.d.ts +196 -0
- package/dist/storage/dead-letter-queue.js +427 -0
- package/dist/storage/dlq-adapter.d.ts +195 -0
- package/dist/storage/dlq-adapter.js +664 -0
- package/dist/trajectory/config.d.ts +32 -14
- package/dist/trajectory/config.js +38 -16
- package/dist/trajectory/integration.js +217 -64
- package/dist/utils/git-remote.d.ts +47 -0
- package/dist/utils/git-remote.js +125 -0
- package/dist/utils/id-generator.d.ts +35 -0
- package/dist/utils/id-generator.js +60 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/precompiled-patterns.d.ts +110 -0
- package/dist/utils/precompiled-patterns.js +322 -0
- package/dist/wrapper/auth-detection.js +1 -1
- package/dist/wrapper/base-wrapper.d.ts +36 -0
- package/dist/wrapper/base-wrapper.js +48 -2
- package/dist/wrapper/client.d.ts +14 -4
- package/dist/wrapper/client.js +84 -31
- package/dist/wrapper/idle-detector.d.ts +102 -0
- package/dist/wrapper/idle-detector.js +279 -0
- package/dist/wrapper/parser.d.ts +4 -0
- package/dist/wrapper/parser.js +19 -1
- package/dist/wrapper/pty-wrapper.d.ts +7 -1
- package/dist/wrapper/pty-wrapper.js +51 -27
- package/dist/wrapper/tmux-wrapper.d.ts +12 -1
- package/dist/wrapper/tmux-wrapper.js +65 -17
- package/package.json +5 -5
- package/scripts/run-migrations.js +43 -0
- package/scripts/verify-schema.js +134 -0
- package/tests/benchmarks/protocol.bench.ts +310 -0
- package/dist/dashboard/out/404.html +0 -1
- package/dist/dashboard/out/_next/static/T1tgCqVWHFIkV7ClEtzD7/_buildManifest.js +0 -1
- package/dist/dashboard/out/_next/static/T1tgCqVWHFIkV7ClEtzD7/_ssgManifest.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/116-2502180def231162.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/117-f7b8ab0809342e77.js +0 -2
- package/dist/dashboard/out/_next/static/chunks/282-980c2eb8fff20123.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/532-bace199897eeab37.js +0 -9
- package/dist/dashboard/out/_next/static/chunks/648-5cc6e1921389a58a.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/766-b54f0853794b78c3.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/83-b51836037078006c.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/891-6cd50de1224f70bb.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/899-bb19a9b3d9b39ea6.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/_not-found/page-53b8a69f76db17d0.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/app/onboarding/page-8939b0fc700f7eca.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/app/page-5af1b6b439858aa6.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-f45ecbc3e06134fc.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/history/page-8c8bed33beb2bf1c.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/layout-2433bb48965f4333.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/login/page-16f3b49e55b1e0ed.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/metrics/page-ac39dc0cc3c26fa7.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/page-4a5938c18a11a654.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/pricing/page-982a7000fee44014.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/providers/page-ac3a6ac433fd6001.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/providers/setup/[provider]/page-09f9caae98a18c09.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/signup/page-547dd0ca55ecd0ba.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/e868780c-48e5f147c90a3a41.js +0 -18
- package/dist/dashboard/out/_next/static/chunks/fd9d1056-609918ca7b6280bb.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/framework-f66176bb897dc684.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/main-2ee6beb2ae96d210.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/main-app-5d692157a8eb1fd9.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/pages/_app-72b849fbd24ac258.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/pages/_error-7ba65e1336b92748.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/webpack-1cdd8ed57114d5e1.js +0 -1
- package/dist/dashboard/out/_next/static/css/85d2af9c7ac74d62.css +0 -1
- package/dist/dashboard/out/_next/static/css/fe4b28883eeff359.css +0 -1
- package/dist/dashboard/out/alt-logos/agent-relay-logo-128.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-256.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-32.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-512.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo-64.png +0 -0
- package/dist/dashboard/out/alt-logos/agent-relay-logo.svg +0 -45
- package/dist/dashboard/out/alt-logos/logo.svg +0 -38
- package/dist/dashboard/out/alt-logos/monogram-logo-128.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-256.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-32.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-512.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo-64.png +0 -0
- package/dist/dashboard/out/alt-logos/monogram-logo.svg +0 -38
- package/dist/dashboard/out/app/onboarding.html +0 -1
- package/dist/dashboard/out/app/onboarding.txt +0 -7
- package/dist/dashboard/out/app.html +0 -1
- package/dist/dashboard/out/app.txt +0 -7
- package/dist/dashboard/out/apple-icon.png +0 -0
- package/dist/dashboard/out/connect-repos.html +0 -1
- package/dist/dashboard/out/connect-repos.txt +0 -7
- package/dist/dashboard/out/history.html +0 -1
- package/dist/dashboard/out/history.txt +0 -7
- package/dist/dashboard/out/index.html +0 -1
- package/dist/dashboard/out/index.txt +0 -7
- package/dist/dashboard/out/login.html +0 -6
- package/dist/dashboard/out/login.txt +0 -7
- package/dist/dashboard/out/metrics.html +0 -1
- package/dist/dashboard/out/metrics.txt +0 -7
- package/dist/dashboard/out/pricing.html +0 -13
- package/dist/dashboard/out/pricing.txt +0 -7
- package/dist/dashboard/out/providers/setup/claude.html +0 -1
- package/dist/dashboard/out/providers/setup/claude.txt +0 -8
- package/dist/dashboard/out/providers/setup/codex.html +0 -1
- package/dist/dashboard/out/providers/setup/codex.txt +0 -8
- package/dist/dashboard/out/providers.html +0 -1
- package/dist/dashboard/out/providers.txt +0 -7
- package/dist/dashboard/out/signup.html +0 -6
- package/dist/dashboard/out/signup.txt +0 -7
- package/dist/dashboard-server/metrics.d.ts +0 -105
- package/dist/dashboard-server/metrics.js +0 -193
- package/dist/dashboard-server/needs-attention.d.ts +0 -24
- package/dist/dashboard-server/needs-attention.js +0 -78
- package/dist/dashboard-server/server.d.ts +0 -15
- package/dist/dashboard-server/server.js +0 -3776
- package/dist/dashboard-server/start.d.ts +0 -6
- package/dist/dashboard-server/start.js +0 -13
- package/dist/dashboard-server/user-bridge.d.ts +0 -103
- package/dist/dashboard-server/user-bridge.js +0 -189
|
@@ -1,13 +0,0 @@
|
|
|
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/css/85d2af9c7ac74d62.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/fe4b28883eeff359.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-1cdd8ed57114d5e1.js"/><script src="/_next/static/chunks/fd9d1056-609918ca7b6280bb.js" async=""></script><script src="/_next/static/chunks/117-f7b8ab0809342e77.js" async=""></script><script src="/_next/static/chunks/main-app-5d692157a8eb1fd9.js" async=""></script><script src="/_next/static/chunks/766-b54f0853794b78c3.js" async=""></script><script src="/_next/static/chunks/app/pricing/page-982a7000fee44014.js" async=""></script><title>Agent Relay Dashboard</title><meta name="description" content="Fleet control dashboard for Agent Relay"/><link rel="apple-touch-icon" href="/apple-icon.png?9e7a840704165ca6" type="image/png" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div class="pricing-page"><div class="pricing-bg"><div class="grid-bg"><div class="grid-lines"></div><div class="grid-glow"></div></div><div class="glow-orbs"><div class="orb orb-1"></div><div class="orb orb-2"></div></div></div><nav class="nav "><div class="nav-inner"><a href="/" class="nav-logo"><svg width="28" height="28" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg" class="
|
|
2
|
-
transition-all duration-300
|
|
3
|
-
drop-shadow-[0_0_8px_rgba(0,217,255,0.3)]
|
|
4
|
-
|
|
5
|
-
" aria-label="Agent Relay Logo" role="img"><path d="M30 80 L 50 20 L 70 80" stroke="#00d9ff" stroke-width="5" stroke-linejoin="round" stroke-linecap="round" fill="none"></path><line x1="40" y1="50" x2="60" y2="50" stroke="#00d9ff" stroke-width="5" stroke-linecap="round"></line><path d="M50 20 L 50 80" stroke="#00ffc8" stroke-width="2.5" stroke-linecap="round" opacity="0.7"></path><path d="M50 20 C 80 20 80 50 50 50 L 80 80" stroke="#00ffc8" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.7"></path></svg><span class="logo-text">Agent Relay</span></a><div class="nav-links"><a href="/#demo">Demo</a><a href="/#features">Features</a><a href="/pricing" class="active">Pricing</a><a href="/docs" class="nav-docs">Docs</a></div><div class="nav-actions"><a href="/login" class="btn-ghost">Sign In</a><a href="/signup" class="btn-primary">Get Started</a></div></div></nav><main><section class="pricing-hero"><div class="pricing-hero-content"><div class="hero-badge"><span class="badge-icon">◈</span><span>Simple, transparent pricing</span></div><h1><span class="title-line">Choose Your</span><span class="title-line gradient">Mission Control</span></h1><p class="hero-subtitle">Start free. Scale as you grow. Pay only for what you use.<br/>All plans include a 14-day free trial.</p><div class="billing-toggle"><button class="active">Monthly</button><button class="">Annual<span class="save-badge">Save 20%</span></button></div></div></section><section class="plans-section"><div class="plans-grid"><div class="plan-card "><div class="plan-header"><h3>Free</h3><p class="plan-tagline">Try AI agent workflows</p></div><div class="plan-price"><span class="price">$0</span><span class="period">forever</span></div><p class="plan-description">Explore agent orchestration with limited resources. Perfect for testing.</p><div class="plan-limits"><div class="limit-item"><span class="limit-icon">◇</span><span class="limit-value">1</span><span class="limit-label">workspaces</span></div><div class="limit-item"><span class="limit-icon">◈</span><span class="limit-value">2</span><span class="limit-label">repos</span></div><div class="limit-item"><span class="limit-icon">⬡</span><span class="limit-value">2</span><span class="limit-label">agents</span></div><div class="limit-item"><span class="limit-icon">⏱</span><span class="limit-value">5</span><span class="limit-label">hours/mo</span></div></div><a href="/signup" class="btn-ghost btn-full">Get Started Free</a></div><div class="plan-card highlighted"><div class="plan-badge">Most Popular</div><div class="plan-header"><h3>Pro</h3><p class="plan-tagline">For professional developers</p></div><div class="plan-price"><span class="price">$49</span><span class="period">/month</span></div><p class="plan-description">Build with AI agents daily. Includes auto-scaling and session persistence.</p><div class="plan-limits"><div class="limit-item"><span class="limit-icon">◇</span><span class="limit-value">5</span><span class="limit-label">workspaces</span></div><div class="limit-item"><span class="limit-icon">◈</span><span class="limit-value">10</span><span class="limit-label">repos</span></div><div class="limit-item"><span class="limit-icon">⬡</span><span class="limit-value">5</span><span class="limit-label">agents</span></div><div class="limit-item"><span class="limit-icon">⏱</span><span class="limit-value">50</span><span class="limit-label">hours/mo</span></div></div><a href="/signup?plan=pro" class="btn-primary btn-full">Start Free Trial</a></div><div class="plan-card "><div class="plan-header"><h3>Team</h3><p class="plan-tagline">For growing teams</p></div><div class="plan-price"><span class="price">$99</span><span class="period">/month</span></div><p class="plan-description">Dedicated CPUs, priority support, and team collaboration features.</p><div class="plan-limits"><div class="limit-item"><span class="limit-icon">◇</span><span class="limit-value">20</span><span class="limit-label">workspaces</span></div><div class="limit-item"><span class="limit-icon">◈</span><span class="limit-value">100</span><span class="limit-label">repos</span></div><div class="limit-item"><span class="limit-icon">⬡</span><span class="limit-value">10</span><span class="limit-label">agents</span></div><div class="limit-item"><span class="limit-icon">⏱</span><span class="limit-value">200</span><span class="limit-label">hours/mo</span></div></div><a href="/signup?plan=team" class="btn-ghost btn-full">Start Free Trial</a></div><div class="plan-card "><div class="plan-header"><h3>Enterprise</h3><p class="plan-tagline">For organizations at scale</p></div><div class="plan-price"><span class="price">$499</span><span class="period">/month</span></div><p class="plan-description">Unlimited resources, SSO, SLA guarantees, and dedicated support.</p><div class="plan-limits"><div class="limit-item"><span class="limit-icon">◇</span><span class="limit-value">∞</span><span class="limit-label">workspaces</span></div><div class="limit-item"><span class="limit-icon">◈</span><span class="limit-value">∞</span><span class="limit-label">repos</span></div><div class="limit-item"><span class="limit-icon">⬡</span><span class="limit-value">∞</span><span class="limit-label">agents</span></div><div class="limit-item"><span class="limit-icon">⏱</span><span class="limit-value">∞</span><span class="limit-label">hours/mo</span></div></div><a href="/contact?subject=enterprise" class="btn-ghost btn-full">Contact Sales</a></div></div></section><section class="comparison-section"><div class="section-header"><span class="section-tag">Compare Plans</span><h2>Feature Comparison</h2><p>See exactly what's included in each plan.</p></div><div class="comparison-table-wrapper"><table class="comparison-table"><thead><tr><th class="feature-col">Feature</th><th class="">Free</th><th class="highlighted">Pro</th><th class="">Team</th><th class="">Enterprise</th></tr></thead><tbody><tr><td class="feature-col">Workspaces</td><td class=""><span class="feature-value">1</span></td><td class="highlighted"><span class="feature-value">5</span></td><td class=""><span class="feature-value">20</span></td><td class=""><span class="feature-value">Unlimited</span></td></tr><tr><td class="feature-col">Repositories</td><td class=""><span class="feature-value">2</span></td><td class="highlighted"><span class="feature-value">10</span></td><td class=""><span class="feature-value">100</span></td><td class=""><span class="feature-value">Unlimited</span></td></tr><tr><td class="feature-col">Concurrent agents</td><td class=""><span class="feature-value">2</span></td><td class="highlighted"><span class="feature-value">5</span></td><td class=""><span class="feature-value">10</span></td><td class=""><span class="feature-value">Unlimited</span></td></tr><tr><td class="feature-col">Compute hours/month</td><td class=""><span class="feature-value">5</span></td><td class="highlighted"><span class="feature-value">50</span></td><td class=""><span class="feature-value">200</span></td><td class=""><span class="feature-value">Unlimited</span></td></tr><tr><td class="feature-col">CPU type</td><td class=""><span class="feature-value">Shared</span></td><td class="highlighted"><span class="feature-value">Shared</span></td><td class=""><span class="feature-value">Dedicated</span></td><td class=""><span class="feature-value">Dedicated</span></td></tr><tr><td class="feature-col">Coordinator agents</td><td class=""><span class="dash">—</span></td><td class="highlighted"><span class="feature-value">Yes</span></td><td class=""><span class="feature-value">Yes</span></td><td class=""><span class="feature-value">Yes</span></td></tr><tr><td class="feature-col">Auto-scaling</td><td class=""><span class="dash">—</span></td><td class="highlighted"><span class="feature-value">Yes</span></td><td class=""><span class="feature-value">Yes</span></td><td class=""><span class="feature-value">Yes</span></td></tr><tr><td class="feature-col">Session persistence</td><td class=""><span class="dash">—</span></td><td class="highlighted"><span class="feature-value">Yes</span></td><td class=""><span class="feature-value">Yes</span></td><td class=""><span class="feature-value">Yes</span></td></tr><tr><td class="feature-col">Priority support</td><td class=""><span class="dash">—</span></td><td class="highlighted"><span class="dash">—</span></td><td class=""><span class="feature-value">Yes</span></td><td class=""><span class="feature-value">Dedicated</span></td></tr><tr><td class="feature-col">SSO/SAML</td><td class=""><span class="dash">—</span></td><td class="highlighted"><span class="dash">—</span></td><td class=""><span class="dash">—</span></td><td class=""><span class="feature-value">Yes</span></td></tr></tbody></table></div></section><section class="faq-section"><div class="section-header"><span class="section-tag">FAQ</span><h2>Questions? Answers.</h2><p>Everything you need to know about Agent Relay pricing.</p></div><div class="faq-grid"><div class="faq-item "><div class="faq-question"><span>What counts as a "compute hour"?</span><span class="faq-toggle">+</span></div><div class="faq-answer"><p>A compute hour is measured when your agents are actively running in our cloud infrastructure. Time spent waiting for your input or idle time doesn't count. We track usage to the second and round up to the nearest minute for billing.</p></div></div><div class="faq-item "><div class="faq-question"><span>Can I use my own AI API keys?</span><span class="faq-toggle">+</span></div><div class="faq-answer"><p>Yes! Agent Relay orchestrates your agents—you connect your own Claude, Codex, or Gemini instances. We don't charge for AI API usage; that's between you and your AI provider. Our pricing covers the orchestration infrastructure.</p></div></div><div class="faq-item "><div class="faq-question"><span>What are coordinator agents?</span><span class="faq-toggle">+</span></div><div class="faq-answer"><p>Coordinators are special agents that oversee project groups. They delegate tasks to other agents, track progress, and ensure work is completed efficiently across multiple repositories. Available on Pro plans and above.</p></div></div><div class="faq-item "><div class="faq-question"><span>What happens if I exceed my limits?</span><span class="faq-toggle">+</span></div><div class="faq-answer"><p>We'll notify you when you're approaching your limits. If you exceed them, new agent spawns will be blocked until you upgrade or wait for the next billing cycle. Your existing agents will continue running.</p></div></div><div class="faq-item "><div class="faq-question"><span>Can I change plans anytime?</span><span class="faq-toggle">+</span></div><div class="faq-answer"><p>Absolutely. Upgrade instantly and get prorated billing. Downgrade takes effect at the end of your billing cycle. No long-term contracts required.</p></div></div><div class="faq-item "><div class="faq-question"><span>Do you offer discounts for startups or open source?</span><span class="faq-toggle">+</span></div><div class="faq-answer"><p>Yes! We offer 50% off for verified startups (less than $1M raised) and free Pro accounts for maintainers of popular open source projects. Contact us to apply.</p></div></div></div></section><section class="cta-section"><div class="cta-card"><div class="cta-content"><h2>Ready to orchestrate?</h2><p>Start free and upgrade when you need more power.</p><div class="cta-buttons"><a href="/signup" class="btn-primary btn-large"><span>Get Started Free</span><span class="btn-arrow">→</span></a><a href="/contact" class="btn-ghost btn-large">Talk to Sales</a></div></div><div class="cta-visual"><div class="orbit"><div class="orbit-ring ring-1"></div><div class="orbit-ring ring-2"></div><div class="orbit-ring ring-3"></div><div class="orbit-center"><svg width="40" height="40" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg" class="
|
|
6
|
-
transition-all duration-300
|
|
7
|
-
drop-shadow-[0_0_8px_rgba(0,217,255,0.3)]
|
|
8
|
-
|
|
9
|
-
" aria-label="Agent Relay Logo" role="img"><path d="M30 80 L 50 20 L 70 80" stroke="#00d9ff" stroke-width="5" stroke-linejoin="round" stroke-linecap="round" fill="none"></path><line x1="40" y1="50" x2="60" y2="50" stroke="#00d9ff" stroke-width="5" stroke-linecap="round"></line><path d="M50 20 L 50 80" stroke="#00ffc8" stroke-width="2.5" stroke-linecap="round" opacity="0.7"></path><path d="M50 20 C 80 20 80 50 50 50 L 80 80" stroke="#00ffc8" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.7"></path></svg></div><div class="orbit-dot dot-1">◈</div><div class="orbit-dot dot-2">⬡</div><div class="orbit-dot dot-3">◇</div></div></div></div></section></main><footer class="footer"><div class="footer-inner"><div class="footer-brand"><a href="/" class="footer-logo"><svg width="24" height="24" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg" class="
|
|
10
|
-
transition-all duration-300
|
|
11
|
-
drop-shadow-[0_0_8px_rgba(0,217,255,0.3)]
|
|
12
|
-
|
|
13
|
-
" aria-label="Agent Relay Logo" role="img"><path d="M30 80 L 50 20 L 70 80" stroke="#00d9ff" stroke-width="5" stroke-linejoin="round" stroke-linecap="round" fill="none"></path><line x1="40" y1="50" x2="60" y2="50" stroke="#00d9ff" stroke-width="5" stroke-linecap="round"></line><path d="M50 20 L 50 80" stroke="#00ffc8" stroke-width="2.5" stroke-linecap="round" opacity="0.7"></path><path d="M50 20 C 80 20 80 50 50 50 L 80 80" stroke="#00ffc8" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.7"></path></svg><span class="logo-text">Agent Relay</span></a><p>Orchestrate AI agents like a symphony.</p></div><div class="footer-links"><div class="footer-column"><h4>Product</h4><a href="/#features">Features</a><a href="/pricing">Pricing</a><a href="/docs">Documentation</a><a href="/changelog">Changelog</a></div><div class="footer-column"><h4>Company</h4><a href="/about">About</a><a href="/blog">Blog</a><a href="/careers">Careers</a><a href="/contact">Contact</a></div><div class="footer-column"><h4>Legal</h4><a href="/privacy">Privacy</a><a href="/terms">Terms</a><a href="/security">Security</a></div></div></div><div class="footer-bottom"><p>© 2025 Agent Relay. All rights reserved.</p><div class="social-links"><a href="https://github.com/AgentWorkforce/relay" aria-label="GitHub"><svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"></path></svg></a><a href="https://twitter.com/agent_relay" aria-label="Twitter"><svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></svg></a><a href="https://discord.gg/agentrelay" aria-label="Discord"><svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M20.317 4.37a19.791 19.791 0 00-4.885-1.515.074.074 0 00-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 00-5.487 0 12.64 12.64 0 00-.617-1.25.077.077 0 00-.079-.037A19.736 19.736 0 003.677 4.37a.07.07 0 00-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 00.031.057 19.9 19.9 0 005.993 3.03.078.078 0 00.084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 00-.041-.106 13.107 13.107 0 01-1.872-.892.077.077 0 01-.008-.128 10.2 10.2 0 00.372-.292.074.074 0 01.077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 01.078.01c.12.098.246.198.373.292a.077.077 0 01-.006.127 12.299 12.299 0 01-1.873.892.077.077 0 00-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 00.084.028 19.839 19.839 0 006.002-3.03.077.077 0 00.032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 00-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z"></path></svg></a></div></div></footer></div><script src="/_next/static/chunks/webpack-1cdd8ed57114d5e1.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/85d2af9c7ac74d62.css\",\"style\"]\n2:HL[\"/_next/static/css/fe4b28883eeff359.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"3:I[2846,[],\"\"]\n5:I[9107,[],\"ClientPageRoot\"]\n6:I[4676,[\"766\",\"static/chunks/766-b54f0853794b78c3.js\",\"979\",\"static/chunks/app/pricing/page-982a7000fee44014.js\"],\"default\",1]\n7:I[4707,[],\"\"]\n8:I[6423,[],\"\"]\na:I[1060,[],\"\"]\nb:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L3\",null,{\"buildId\":\"T1tgCqVWHFIkV7ClEtzD7\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"pricing\"],\"initialTree\":[\"\",{\"children\":[\"pricing\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"pricing\",{\"children\":[\"__PAGE__\",{},[[\"$L4\",[\"$\",\"$L5\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$6\"}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/fe4b28883eeff359.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]]],null],null]},[null,[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"pricing\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/85d2af9c7ac74d62.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",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.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L9\"],\"globalErrorComponent\":\"$a\",\"missingSlots\":\"$Wb\"}]\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Agent Relay Dashboard\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Fleet control dashboard for Agent Relay\"}],[\"$\",\"link\",\"4\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?9e7a840704165ca6\",\"type\":\"image/png\",\"sizes\":\"256x256\"}]]\n4:null\n"])</script></body></html>
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
2:I[9107,[],"ClientPageRoot"]
|
|
2
|
-
3:I[4676,["766","static/chunks/766-b54f0853794b78c3.js","979","static/chunks/app/pricing/page-982a7000fee44014.js"],"default",1]
|
|
3
|
-
4:I[4707,[],""]
|
|
4
|
-
5:I[6423,[],""]
|
|
5
|
-
0:["T1tgCqVWHFIkV7ClEtzD7",[[["",{"children":["pricing",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["pricing",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/fe4b28883eeff359.css","precedence":"next","crossOrigin":"$undefined"}]]],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","pricing","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/85d2af9c7ac74d62.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",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."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L6",null]]]]
|
|
6
|
-
6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Agent Relay Dashboard"}],["$","meta","3",{"name":"description","content":"Fleet control dashboard for Agent Relay"}],["$","link","4",{"rel":"apple-touch-icon","href":"/apple-icon.png?9e7a840704165ca6","type":"image/png","sizes":"256x256"}]]
|
|
7
|
-
1:null
|
|
@@ -1 +0,0 @@
|
|
|
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/css/85d2af9c7ac74d62.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-1cdd8ed57114d5e1.js"/><script src="/_next/static/chunks/fd9d1056-609918ca7b6280bb.js" async=""></script><script src="/_next/static/chunks/117-f7b8ab0809342e77.js" async=""></script><script src="/_next/static/chunks/main-app-5d692157a8eb1fd9.js" async=""></script><script src="/_next/static/chunks/e868780c-48e5f147c90a3a41.js" async=""></script><script src="/_next/static/chunks/891-6cd50de1224f70bb.js" async=""></script><script src="/_next/static/chunks/app/providers/setup/%5Bprovider%5D/page-09f9caae98a18c09.js" async=""></script><title>Agent Relay Dashboard</title><meta name="description" content="Fleet control dashboard for Agent Relay"/><link rel="apple-touch-icon" href="/apple-icon.png?9e7a840704165ca6" type="image/png" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div class="min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex items-center justify-center"><div class="flex items-center gap-3"><svg class="w-6 h-6 text-accent-cyan animate-spin" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"></path></svg><span class="text-text-muted">Loading setup...</span></div></div><!--/$--><script src="/_next/static/chunks/webpack-1cdd8ed57114d5e1.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/85d2af9c7ac74d62.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:\"$Sreact.suspense\"\n5:I[5844,[\"30\",\"static/chunks/e868780c-48e5f147c90a3a41.js\",\"891\",\"static/chunks/891-6cd50de1224f70bb.js\",\"668\",\"static/chunks/app/providers/setup/%5Bprovider%5D/page-09f9caae98a18c09.js\"],\"ProviderSetupClient\"]\n6:I[4707,[],\"\"]\n8:I[6423,[],\"\"]\na:I[1060,[],\"\"]\n7:[\"provider\",\"claude\",\"d\"]\nb:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"T1tgCqVWHFIkV7ClEtzD7\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"providers\",\"setup\",\"claude\"],\"initialTree\":[\"\",{\"children\":[\"providers\",{\"children\":[\"setup\",{\"children\":[[\"provider\",\"claude\",\"d\"],{\"children\":[\"__PAGE__?{\\\"provider\\\":\\\"claude\\\"}\",{}]}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"providers\",{\"children\":[\"setup\",{\"children\":[[\"provider\",\"claude\",\"d\"],{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$4\",null,{\"fallback\":[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex items-center justify-center\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3\",\"children\":[[\"$\",\"svg\",null,{\"className\":\"w-6 h-6 text-accent-cyan animate-spin\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"children\":[[\"$\",\"circle\",null,{\"className\":\"opacity-25\",\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\",\"stroke\":\"currentColor\",\"strokeWidth\":\"4\"}],[\"$\",\"path\",null,{\"className\":\"opacity-75\",\"fill\":\"currentColor\",\"d\":\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\"}]]}],[\"$\",\"span\",null,{\"className\":\"text-text-muted\",\"children\":\"Loading setup...\"}]]}]}],\"children\":[\"$\",\"$L5\",null,{\"provider\":\"claude\"}]}],null],null],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"providers\",\"children\",\"setup\",\"children\",\"$7\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"providers\",\"children\",\"setup\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"providers\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/85d2af9c7ac74d62.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",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.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L9\"],\"globalErrorComponent\":\"$a\",\"missingSlots\":\"$Wb\"}]\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Agent Relay Dashboard\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Fleet control dashboard for Agent Relay\"}],[\"$\",\"link\",\"4\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?9e7a840704165ca6\",\"type\":\"image/png\",\"sizes\":\"256x256\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
2:"$Sreact.suspense"
|
|
2
|
-
3:I[5844,["30","static/chunks/e868780c-48e5f147c90a3a41.js","891","static/chunks/891-6cd50de1224f70bb.js","668","static/chunks/app/providers/setup/%5Bprovider%5D/page-09f9caae98a18c09.js"],"ProviderSetupClient"]
|
|
3
|
-
4:I[4707,[],""]
|
|
4
|
-
6:I[6423,[],""]
|
|
5
|
-
5:["provider","claude","d"]
|
|
6
|
-
0:["T1tgCqVWHFIkV7ClEtzD7",[[["",{"children":["providers",{"children":["setup",{"children":[["provider","claude","d"],{"children":["__PAGE__?{\"provider\":\"claude\"}",{}]}]}]}]},"$undefined","$undefined",true],["",{"children":["providers",{"children":["setup",{"children":[["provider","claude","d"],{"children":["__PAGE__",{},[["$L1",["$","$2",null,{"fallback":["$","div",null,{"className":"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex items-center justify-center","children":["$","div",null,{"className":"flex items-center gap-3","children":[["$","svg",null,{"className":"w-6 h-6 text-accent-cyan animate-spin","fill":"none","viewBox":"0 0 24 24","children":[["$","circle",null,{"className":"opacity-25","cx":"12","cy":"12","r":"10","stroke":"currentColor","strokeWidth":"4"}],["$","path",null,{"className":"opacity-75","fill":"currentColor","d":"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"}]]}],["$","span",null,{"className":"text-text-muted","children":"Loading setup..."}]]}]}],"children":["$","$L3",null,{"provider":"claude"}]}],null],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","providers","children","setup","children","$5","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","providers","children","setup","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","providers","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/85d2af9c7ac74d62.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",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."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L7",null]]]]
|
|
7
|
-
7:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Agent Relay Dashboard"}],["$","meta","3",{"name":"description","content":"Fleet control dashboard for Agent Relay"}],["$","link","4",{"rel":"apple-touch-icon","href":"/apple-icon.png?9e7a840704165ca6","type":"image/png","sizes":"256x256"}]]
|
|
8
|
-
1:null
|
|
@@ -1 +0,0 @@
|
|
|
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/css/85d2af9c7ac74d62.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-1cdd8ed57114d5e1.js"/><script src="/_next/static/chunks/fd9d1056-609918ca7b6280bb.js" async=""></script><script src="/_next/static/chunks/117-f7b8ab0809342e77.js" async=""></script><script src="/_next/static/chunks/main-app-5d692157a8eb1fd9.js" async=""></script><script src="/_next/static/chunks/e868780c-48e5f147c90a3a41.js" async=""></script><script src="/_next/static/chunks/891-6cd50de1224f70bb.js" async=""></script><script src="/_next/static/chunks/app/providers/setup/%5Bprovider%5D/page-09f9caae98a18c09.js" async=""></script><title>Agent Relay Dashboard</title><meta name="description" content="Fleet control dashboard for Agent Relay"/><link rel="apple-touch-icon" href="/apple-icon.png?9e7a840704165ca6" type="image/png" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div class="min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex items-center justify-center"><div class="flex items-center gap-3"><svg class="w-6 h-6 text-accent-cyan animate-spin" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"></path></svg><span class="text-text-muted">Loading setup...</span></div></div><!--/$--><script src="/_next/static/chunks/webpack-1cdd8ed57114d5e1.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/85d2af9c7ac74d62.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:\"$Sreact.suspense\"\n5:I[5844,[\"30\",\"static/chunks/e868780c-48e5f147c90a3a41.js\",\"891\",\"static/chunks/891-6cd50de1224f70bb.js\",\"668\",\"static/chunks/app/providers/setup/%5Bprovider%5D/page-09f9caae98a18c09.js\"],\"ProviderSetupClient\"]\n6:I[4707,[],\"\"]\n8:I[6423,[],\"\"]\na:I[1060,[],\"\"]\n7:[\"provider\",\"codex\",\"d\"]\nb:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"T1tgCqVWHFIkV7ClEtzD7\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"providers\",\"setup\",\"codex\"],\"initialTree\":[\"\",{\"children\":[\"providers\",{\"children\":[\"setup\",{\"children\":[[\"provider\",\"codex\",\"d\"],{\"children\":[\"__PAGE__?{\\\"provider\\\":\\\"codex\\\"}\",{}]}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"providers\",{\"children\":[\"setup\",{\"children\":[[\"provider\",\"codex\",\"d\"],{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$4\",null,{\"fallback\":[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex items-center justify-center\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3\",\"children\":[[\"$\",\"svg\",null,{\"className\":\"w-6 h-6 text-accent-cyan animate-spin\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\",\"children\":[[\"$\",\"circle\",null,{\"className\":\"opacity-25\",\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\",\"stroke\":\"currentColor\",\"strokeWidth\":\"4\"}],[\"$\",\"path\",null,{\"className\":\"opacity-75\",\"fill\":\"currentColor\",\"d\":\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\"}]]}],[\"$\",\"span\",null,{\"className\":\"text-text-muted\",\"children\":\"Loading setup...\"}]]}]}],\"children\":[\"$\",\"$L5\",null,{\"provider\":\"codex\"}]}],null],null],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"providers\",\"children\",\"setup\",\"children\",\"$7\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"providers\",\"children\",\"setup\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"providers\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/85d2af9c7ac74d62.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",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.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L9\"],\"globalErrorComponent\":\"$a\",\"missingSlots\":\"$Wb\"}]\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Agent Relay Dashboard\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Fleet control dashboard for Agent Relay\"}],[\"$\",\"link\",\"4\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?9e7a840704165ca6\",\"type\":\"image/png\",\"sizes\":\"256x256\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
2:"$Sreact.suspense"
|
|
2
|
-
3:I[5844,["30","static/chunks/e868780c-48e5f147c90a3a41.js","891","static/chunks/891-6cd50de1224f70bb.js","668","static/chunks/app/providers/setup/%5Bprovider%5D/page-09f9caae98a18c09.js"],"ProviderSetupClient"]
|
|
3
|
-
4:I[4707,[],""]
|
|
4
|
-
6:I[6423,[],""]
|
|
5
|
-
5:["provider","codex","d"]
|
|
6
|
-
0:["T1tgCqVWHFIkV7ClEtzD7",[[["",{"children":["providers",{"children":["setup",{"children":[["provider","codex","d"],{"children":["__PAGE__?{\"provider\":\"codex\"}",{}]}]}]}]},"$undefined","$undefined",true],["",{"children":["providers",{"children":["setup",{"children":[["provider","codex","d"],{"children":["__PAGE__",{},[["$L1",["$","$2",null,{"fallback":["$","div",null,{"className":"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex items-center justify-center","children":["$","div",null,{"className":"flex items-center gap-3","children":[["$","svg",null,{"className":"w-6 h-6 text-accent-cyan animate-spin","fill":"none","viewBox":"0 0 24 24","children":[["$","circle",null,{"className":"opacity-25","cx":"12","cy":"12","r":"10","stroke":"currentColor","strokeWidth":"4"}],["$","path",null,{"className":"opacity-75","fill":"currentColor","d":"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"}]]}],["$","span",null,{"className":"text-text-muted","children":"Loading setup..."}]]}]}],"children":["$","$L3",null,{"provider":"codex"}]}],null],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","providers","children","setup","children","$5","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","providers","children","setup","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","providers","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/85d2af9c7ac74d62.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",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."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L7",null]]]]
|
|
7
|
-
7:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Agent Relay Dashboard"}],["$","meta","3",{"name":"description","content":"Fleet control dashboard for Agent Relay"}],["$","link","4",{"rel":"apple-touch-icon","href":"/apple-icon.png?9e7a840704165ca6","type":"image/png","sizes":"256x256"}]]
|
|
8
|
-
1:null
|
|
@@ -1 +0,0 @@
|
|
|
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/css/85d2af9c7ac74d62.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-1cdd8ed57114d5e1.js"/><script src="/_next/static/chunks/fd9d1056-609918ca7b6280bb.js" async=""></script><script src="/_next/static/chunks/117-f7b8ab0809342e77.js" async=""></script><script src="/_next/static/chunks/main-app-5d692157a8eb1fd9.js" async=""></script><script src="/_next/static/chunks/e868780c-48e5f147c90a3a41.js" async=""></script><script src="/_next/static/chunks/891-6cd50de1224f70bb.js" async=""></script><script src="/_next/static/chunks/83-b51836037078006c.js" async=""></script><script src="/_next/static/chunks/app/providers/page-ac3a6ac433fd6001.js" async=""></script><title>Agent Relay Dashboard</title><meta name="description" content="Fleet control dashboard for Agent Relay"/><link rel="apple-touch-icon" href="/apple-icon.png?9e7a840704165ca6" type="image/png" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><div class="min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex items-center justify-center"><div class="text-center"><svg class="w-8 h-8 text-accent-cyan animate-spin mx-auto" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"></path></svg><p class="mt-4 text-text-muted">Loading providers...</p></div></div><!--/$--><script src="/_next/static/chunks/webpack-1cdd8ed57114d5e1.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/85d2af9c7ac74d62.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[9107,[],\"ClientPageRoot\"]\n5:I[9197,[\"30\",\"static/chunks/e868780c-48e5f147c90a3a41.js\",\"891\",\"static/chunks/891-6cd50de1224f70bb.js\",\"83\",\"static/chunks/83-b51836037078006c.js\",\"150\",\"static/chunks/app/providers/page-ac3a6ac433fd6001.js\"],\"default\",1]\n6:I[4707,[],\"\"]\n7:I[6423,[],\"\"]\n9:I[1060,[],\"\"]\na:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"T1tgCqVWHFIkV7ClEtzD7\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"providers\"],\"initialTree\":[\"\",{\"children\":[\"providers\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"providers\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"providers\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/85d2af9c7ac74d62.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",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.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L8\"],\"globalErrorComponent\":\"$9\",\"missingSlots\":\"$Wa\"}]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Agent Relay Dashboard\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Fleet control dashboard for Agent Relay\"}],[\"$\",\"link\",\"4\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?9e7a840704165ca6\",\"type\":\"image/png\",\"sizes\":\"256x256\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
2:I[9107,[],"ClientPageRoot"]
|
|
2
|
-
3:I[9197,["30","static/chunks/e868780c-48e5f147c90a3a41.js","891","static/chunks/891-6cd50de1224f70bb.js","83","static/chunks/83-b51836037078006c.js","150","static/chunks/app/providers/page-ac3a6ac433fd6001.js"],"default",1]
|
|
3
|
-
4:I[4707,[],""]
|
|
4
|
-
5:I[6423,[],""]
|
|
5
|
-
0:["T1tgCqVWHFIkV7ClEtzD7",[[["",{"children":["providers",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["providers",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","providers","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/85d2af9c7ac74d62.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",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."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L6",null]]]]
|
|
6
|
-
6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Agent Relay Dashboard"}],["$","meta","3",{"name":"description","content":"Fleet control dashboard for Agent Relay"}],["$","link","4",{"rel":"apple-touch-icon","href":"/apple-icon.png?9e7a840704165ca6","type":"image/png","sizes":"256x256"}]]
|
|
7
|
-
1:null
|
|
@@ -1,6 +0,0 @@
|
|
|
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/css/85d2af9c7ac74d62.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-1cdd8ed57114d5e1.js"/><script src="/_next/static/chunks/fd9d1056-609918ca7b6280bb.js" async=""></script><script src="/_next/static/chunks/117-f7b8ab0809342e77.js" async=""></script><script src="/_next/static/chunks/main-app-5d692157a8eb1fd9.js" async=""></script><script src="/_next/static/chunks/282-980c2eb8fff20123.js" async=""></script><script src="/_next/static/chunks/app/signup/page-547dd0ca55ecd0ba.js" async=""></script><title>Agent Relay Dashboard</title><meta name="description" content="Fleet control dashboard for Agent Relay"/><link rel="apple-touch-icon" href="/apple-icon.png?9e7a840704165ca6" type="image/png" sizes="256x256"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div class="min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex flex-col items-center justify-center p-4"><div class="fixed inset-0 opacity-10"><div class="absolute inset-0" style="background-image:linear-gradient(rgba(0, 217, 255, 0.1) 1px, transparent 1px),
|
|
2
|
-
linear-gradient(90deg, rgba(0, 217, 255, 0.1) 1px, transparent 1px);background-size:50px 50px"></div></div><div class="fixed inset-0 overflow-hidden pointer-events-none"><div class="absolute -top-40 -left-40 w-80 h-80 bg-accent-cyan/20 rounded-full blur-[100px]"></div><div class="absolute -bottom-40 -right-40 w-80 h-80 bg-[#00ffc8]/15 rounded-full blur-[100px]"></div></div><div class="relative z-10 w-full max-w-md"><div class="flex flex-col items-center mb-8"><svg width="56" height="56" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg" class="
|
|
3
|
-
transition-all duration-300
|
|
4
|
-
drop-shadow-[0_0_8px_rgba(0,217,255,0.3)]
|
|
5
|
-
|
|
6
|
-
" aria-label="Agent Relay Logo" role="img"><path d="M30 80 L 50 20 L 70 80" stroke="#00d9ff" stroke-width="5" stroke-linejoin="round" stroke-linecap="round" fill="none"></path><line x1="40" y1="50" x2="60" y2="50" stroke="#00d9ff" stroke-width="5" stroke-linecap="round"></line><path d="M50 20 L 50 80" stroke="#00ffc8" stroke-width="2.5" stroke-linecap="round" opacity="0.7"></path><path d="M50 20 C 80 20 80 50 50 50 L 80 80" stroke="#00ffc8" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.7"></path></svg><h1 class="mt-4 text-3xl font-bold text-white">Get Started</h1><p class="mt-2 text-text-muted text-center">Create your account and start orchestrating AI agents</p></div><div class="bg-bg-primary/80 backdrop-blur-sm border border-border-subtle rounded-2xl p-8 shadow-xl"><div><div class="mb-6 space-y-3"><div class="flex items-center gap-3 text-sm text-text-secondary"><div class="w-8 h-8 rounded-lg bg-accent-cyan/10 flex items-center justify-center flex-shrink-0"><svg class="w-4 h-4 text-accent-cyan" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"></path></svg></div><span>Deploy AI agents in seconds</span></div><div class="flex items-center gap-3 text-sm text-text-secondary"><div class="w-8 h-8 rounded-lg bg-[#00ffc8]/10 flex items-center justify-center flex-shrink-0"><svg class="w-4 h-4 text-[#00ffc8]" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path></svg></div><span>Real-time agent collaboration</span></div><div class="flex items-center gap-3 text-sm text-text-secondary"><div class="w-8 h-8 rounded-lg bg-[#0891b2]/10 flex items-center justify-center flex-shrink-0"><svg class="w-4 h-4 text-[#0891b2]" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"></path></svg></div><span>Secure credential management</span></div></div><button type="button" disabled="" class="w-full py-4 px-6 bg-[#24292e] hover:bg-[#2f363d] border border-[#444d56] rounded-xl text-white font-medium flex items-center justify-center gap-3 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"><svg class="w-5 h-5 animate-spin" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"></path></svg><span>Loading...</span></button><p class="mt-6 text-center text-text-muted text-sm">By signing up, you agree to our<!-- --> <a href="/terms" class="text-accent-cyan hover:underline">Terms of Service</a> <!-- -->and<!-- --> <a href="/privacy" class="text-accent-cyan hover:underline">Privacy Policy</a></p></div></div><div class="mt-6 text-center"><p class="text-text-muted">Already have an account?<!-- --> <a href="/login" class="text-accent-cyan hover:underline font-medium">Sign in</a></p></div><div class="mt-4 text-center"><a href="/" class="text-text-muted hover:text-white transition-colors text-sm">Back to home</a></div></div></div><script src="/_next/static/chunks/webpack-1cdd8ed57114d5e1.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/85d2af9c7ac74d62.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[9107,[],\"ClientPageRoot\"]\n5:I[4665,[\"282\",\"static/chunks/282-980c2eb8fff20123.js\",\"966\",\"static/chunks/app/signup/page-547dd0ca55ecd0ba.js\"],\"default\",1]\n6:I[4707,[],\"\"]\n7:I[6423,[],\"\"]\n9:I[1060,[],\"\"]\na:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"T1tgCqVWHFIkV7ClEtzD7\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"signup\"],\"initialTree\":[\"\",{\"children\":[\"signup\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"signup\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[\"$\",\"$L4\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$5\"}],null],null],null]},[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"signup\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/85d2af9c7ac74d62.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",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.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L8\"],\"globalErrorComponent\":\"$9\",\"missingSlots\":\"$Wa\"}]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Agent Relay Dashboard\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Fleet control dashboard for Agent Relay\"}],[\"$\",\"link\",\"4\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?9e7a840704165ca6\",\"type\":\"image/png\",\"sizes\":\"256x256\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
2:I[9107,[],"ClientPageRoot"]
|
|
2
|
-
3:I[4665,["282","static/chunks/282-980c2eb8fff20123.js","966","static/chunks/app/signup/page-547dd0ca55ecd0ba.js"],"default",1]
|
|
3
|
-
4:I[4707,[],""]
|
|
4
|
-
5:I[6423,[],""]
|
|
5
|
-
0:["T1tgCqVWHFIkV7ClEtzD7",[[["",{"children":["signup",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["signup",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","signup","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/85d2af9c7ac74d62.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",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."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L6",null]]]]
|
|
6
|
-
6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Agent Relay Dashboard"}],["$","meta","3",{"name":"description","content":"Fleet control dashboard for Agent Relay"}],["$","link","4",{"rel":"apple-touch-icon","href":"/apple-icon.png?9e7a840704165ca6","type":"image/png","sizes":"256x256"}]]
|
|
7
|
-
1:null
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Metrics collection and computation for the Agent Relay dashboard.
|
|
3
|
-
* Provides real-time metrics for monitoring: throughput, agent health, error rates.
|
|
4
|
-
*/
|
|
5
|
-
export interface AgentMetrics {
|
|
6
|
-
name: string;
|
|
7
|
-
messagesSent: number;
|
|
8
|
-
messagesReceived: number;
|
|
9
|
-
firstSeen: string;
|
|
10
|
-
lastSeen: string;
|
|
11
|
-
isOnline: boolean;
|
|
12
|
-
uptimeSeconds: number;
|
|
13
|
-
}
|
|
14
|
-
export interface ThroughputMetrics {
|
|
15
|
-
messagesLastMinute: number;
|
|
16
|
-
messagesLastHour: number;
|
|
17
|
-
messagesLast24Hours: number;
|
|
18
|
-
avgMessagesPerMinute: number;
|
|
19
|
-
}
|
|
20
|
-
export interface SessionMetrics {
|
|
21
|
-
totalSessions: number;
|
|
22
|
-
activeSessions: number;
|
|
23
|
-
closedByAgent: number;
|
|
24
|
-
closedByDisconnect: number;
|
|
25
|
-
closedByError: number;
|
|
26
|
-
errorRate: number;
|
|
27
|
-
recentSessions: Array<{
|
|
28
|
-
id: string;
|
|
29
|
-
agentName: string;
|
|
30
|
-
startedAt: string;
|
|
31
|
-
endedAt?: string;
|
|
32
|
-
closedBy?: 'agent' | 'disconnect' | 'error';
|
|
33
|
-
messageCount: number;
|
|
34
|
-
}>;
|
|
35
|
-
}
|
|
36
|
-
export interface SystemMetrics {
|
|
37
|
-
totalAgents: number;
|
|
38
|
-
onlineAgents: number;
|
|
39
|
-
offlineAgents: number;
|
|
40
|
-
totalMessages: number;
|
|
41
|
-
throughput: ThroughputMetrics;
|
|
42
|
-
sessions: SessionMetrics;
|
|
43
|
-
agents: AgentMetrics[];
|
|
44
|
-
timestamp: string;
|
|
45
|
-
}
|
|
46
|
-
export interface PrometheusMetric {
|
|
47
|
-
name: string;
|
|
48
|
-
help: string;
|
|
49
|
-
type: 'counter' | 'gauge' | 'histogram';
|
|
50
|
-
values: Array<{
|
|
51
|
-
labels: Record<string, string>;
|
|
52
|
-
value: number;
|
|
53
|
-
}>;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Compute agent-level metrics from registry data
|
|
57
|
-
*/
|
|
58
|
-
export declare function computeAgentMetrics(agents: Array<{
|
|
59
|
-
name: string;
|
|
60
|
-
messagesSent: number;
|
|
61
|
-
messagesReceived: number;
|
|
62
|
-
firstSeen: string;
|
|
63
|
-
lastSeen: string;
|
|
64
|
-
}>): AgentMetrics[];
|
|
65
|
-
/**
|
|
66
|
-
* Compute throughput metrics from message history
|
|
67
|
-
*/
|
|
68
|
-
export declare function computeThroughputMetrics(messages: Array<{
|
|
69
|
-
timestamp: string;
|
|
70
|
-
}>): ThroughputMetrics;
|
|
71
|
-
/**
|
|
72
|
-
* Compute session lifecycle metrics from session history
|
|
73
|
-
*/
|
|
74
|
-
export declare function computeSessionMetrics(sessions: Array<{
|
|
75
|
-
id: string;
|
|
76
|
-
agentName: string;
|
|
77
|
-
startedAt: number;
|
|
78
|
-
endedAt?: number;
|
|
79
|
-
closedBy?: 'agent' | 'disconnect' | 'error';
|
|
80
|
-
messageCount: number;
|
|
81
|
-
}>): SessionMetrics;
|
|
82
|
-
/**
|
|
83
|
-
* Compute full system metrics
|
|
84
|
-
*/
|
|
85
|
-
export declare function computeSystemMetrics(agents: Array<{
|
|
86
|
-
name: string;
|
|
87
|
-
messagesSent: number;
|
|
88
|
-
messagesReceived: number;
|
|
89
|
-
firstSeen: string;
|
|
90
|
-
lastSeen: string;
|
|
91
|
-
}>, messages: Array<{
|
|
92
|
-
timestamp: string;
|
|
93
|
-
}>, sessions?: Array<{
|
|
94
|
-
id: string;
|
|
95
|
-
agentName: string;
|
|
96
|
-
startedAt: number;
|
|
97
|
-
endedAt?: number;
|
|
98
|
-
closedBy?: 'agent' | 'disconnect' | 'error';
|
|
99
|
-
messageCount: number;
|
|
100
|
-
}>): SystemMetrics;
|
|
101
|
-
/**
|
|
102
|
-
* Format metrics in Prometheus exposition format
|
|
103
|
-
*/
|
|
104
|
-
export declare function formatPrometheusMetrics(metrics: SystemMetrics): string;
|
|
105
|
-
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Metrics collection and computation for the Agent Relay dashboard.
|
|
3
|
-
* Provides real-time metrics for monitoring: throughput, agent health, error rates.
|
|
4
|
-
*/
|
|
5
|
-
// Consider agents offline after 30 seconds of inactivity
|
|
6
|
-
// Aligns with heartbeat timeout (5s heartbeat * 6 multiplier = 30s)
|
|
7
|
-
const OFFLINE_THRESHOLD_MS = 30 * 1000;
|
|
8
|
-
/**
|
|
9
|
-
* Compute agent-level metrics from registry data
|
|
10
|
-
*/
|
|
11
|
-
export function computeAgentMetrics(agents) {
|
|
12
|
-
const now = Date.now();
|
|
13
|
-
return agents.map((agent) => {
|
|
14
|
-
const lastSeenTime = new Date(agent.lastSeen).getTime();
|
|
15
|
-
const firstSeenTime = new Date(agent.firstSeen).getTime();
|
|
16
|
-
const isOnline = now - lastSeenTime < OFFLINE_THRESHOLD_MS;
|
|
17
|
-
const uptimeSeconds = Math.floor((now - firstSeenTime) / 1000);
|
|
18
|
-
return {
|
|
19
|
-
name: agent.name,
|
|
20
|
-
messagesSent: agent.messagesSent,
|
|
21
|
-
messagesReceived: agent.messagesReceived,
|
|
22
|
-
firstSeen: agent.firstSeen,
|
|
23
|
-
lastSeen: agent.lastSeen,
|
|
24
|
-
isOnline,
|
|
25
|
-
uptimeSeconds,
|
|
26
|
-
};
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Compute throughput metrics from message history
|
|
31
|
-
*/
|
|
32
|
-
export function computeThroughputMetrics(messages) {
|
|
33
|
-
const now = Date.now();
|
|
34
|
-
const oneMinuteAgo = now - 60 * 1000;
|
|
35
|
-
const oneHourAgo = now - 60 * 60 * 1000;
|
|
36
|
-
const oneDayAgo = now - 24 * 60 * 60 * 1000;
|
|
37
|
-
let lastMinute = 0;
|
|
38
|
-
let lastHour = 0;
|
|
39
|
-
let last24Hours = 0;
|
|
40
|
-
for (const msg of messages) {
|
|
41
|
-
const ts = new Date(msg.timestamp).getTime();
|
|
42
|
-
if (ts >= oneMinuteAgo)
|
|
43
|
-
lastMinute++;
|
|
44
|
-
if (ts >= oneHourAgo)
|
|
45
|
-
lastHour++;
|
|
46
|
-
if (ts >= oneDayAgo)
|
|
47
|
-
last24Hours++;
|
|
48
|
-
}
|
|
49
|
-
// Calculate average messages per minute over the last hour
|
|
50
|
-
const avgMessagesPerMinute = lastHour / 60;
|
|
51
|
-
return {
|
|
52
|
-
messagesLastMinute: lastMinute,
|
|
53
|
-
messagesLastHour: lastHour,
|
|
54
|
-
messagesLast24Hours: last24Hours,
|
|
55
|
-
avgMessagesPerMinute: Math.round(avgMessagesPerMinute * 100) / 100,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Compute session lifecycle metrics from session history
|
|
60
|
-
*/
|
|
61
|
-
export function computeSessionMetrics(sessions) {
|
|
62
|
-
let activeSessions = 0;
|
|
63
|
-
let closedByAgent = 0;
|
|
64
|
-
let closedByDisconnect = 0;
|
|
65
|
-
let closedByError = 0;
|
|
66
|
-
for (const session of sessions) {
|
|
67
|
-
if (!session.endedAt) {
|
|
68
|
-
activeSessions++;
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
switch (session.closedBy) {
|
|
72
|
-
case 'agent':
|
|
73
|
-
closedByAgent++;
|
|
74
|
-
break;
|
|
75
|
-
case 'disconnect':
|
|
76
|
-
closedByDisconnect++;
|
|
77
|
-
break;
|
|
78
|
-
case 'error':
|
|
79
|
-
closedByError++;
|
|
80
|
-
break;
|
|
81
|
-
default:
|
|
82
|
-
// Ended but no closedBy - treat as disconnect
|
|
83
|
-
closedByDisconnect++;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
const closedSessions = closedByAgent + closedByDisconnect + closedByError;
|
|
88
|
-
const errorRate = closedSessions > 0 ? (closedByError / closedSessions) * 100 : 0;
|
|
89
|
-
// Format recent sessions for display (most recent 10)
|
|
90
|
-
const recentSessions = sessions
|
|
91
|
-
.slice(0, 10)
|
|
92
|
-
.map((s) => ({
|
|
93
|
-
id: s.id,
|
|
94
|
-
agentName: s.agentName,
|
|
95
|
-
startedAt: new Date(s.startedAt).toISOString(),
|
|
96
|
-
endedAt: s.endedAt ? new Date(s.endedAt).toISOString() : undefined,
|
|
97
|
-
closedBy: s.closedBy,
|
|
98
|
-
messageCount: s.messageCount,
|
|
99
|
-
}));
|
|
100
|
-
return {
|
|
101
|
-
totalSessions: sessions.length,
|
|
102
|
-
activeSessions,
|
|
103
|
-
closedByAgent,
|
|
104
|
-
closedByDisconnect,
|
|
105
|
-
closedByError,
|
|
106
|
-
errorRate: Math.round(errorRate * 100) / 100,
|
|
107
|
-
recentSessions,
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Compute full system metrics
|
|
112
|
-
*/
|
|
113
|
-
export function computeSystemMetrics(agents, messages, sessions = []) {
|
|
114
|
-
const agentMetrics = computeAgentMetrics(agents);
|
|
115
|
-
const throughput = computeThroughputMetrics(messages);
|
|
116
|
-
const sessionMetrics = computeSessionMetrics(sessions);
|
|
117
|
-
const onlineAgents = agentMetrics.filter((a) => a.isOnline).length;
|
|
118
|
-
const totalMessages = agents.reduce((sum, a) => sum + a.messagesSent + a.messagesReceived, 0) / 2; // Divide by 2 since each message is counted twice (sent + received)
|
|
119
|
-
return {
|
|
120
|
-
totalAgents: agents.length,
|
|
121
|
-
onlineAgents,
|
|
122
|
-
offlineAgents: agents.length - onlineAgents,
|
|
123
|
-
totalMessages: Math.round(totalMessages),
|
|
124
|
-
throughput,
|
|
125
|
-
sessions: sessionMetrics,
|
|
126
|
-
agents: agentMetrics,
|
|
127
|
-
timestamp: new Date().toISOString(),
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Format metrics in Prometheus exposition format
|
|
132
|
-
*/
|
|
133
|
-
export function formatPrometheusMetrics(metrics) {
|
|
134
|
-
const lines = [];
|
|
135
|
-
// Agent counts
|
|
136
|
-
lines.push('# HELP agent_relay_agents_total Total number of registered agents');
|
|
137
|
-
lines.push('# TYPE agent_relay_agents_total gauge');
|
|
138
|
-
lines.push(`agent_relay_agents_total ${metrics.totalAgents}`);
|
|
139
|
-
lines.push('# HELP agent_relay_agents_online Number of online agents');
|
|
140
|
-
lines.push('# TYPE agent_relay_agents_online gauge');
|
|
141
|
-
lines.push(`agent_relay_agents_online ${metrics.onlineAgents}`);
|
|
142
|
-
// Message throughput
|
|
143
|
-
lines.push('# HELP agent_relay_messages_total Total messages processed');
|
|
144
|
-
lines.push('# TYPE agent_relay_messages_total counter');
|
|
145
|
-
lines.push(`agent_relay_messages_total ${metrics.totalMessages}`);
|
|
146
|
-
lines.push('# HELP agent_relay_messages_last_minute Messages in last minute');
|
|
147
|
-
lines.push('# TYPE agent_relay_messages_last_minute gauge');
|
|
148
|
-
lines.push(`agent_relay_messages_last_minute ${metrics.throughput.messagesLastMinute}`);
|
|
149
|
-
lines.push('# HELP agent_relay_messages_last_hour Messages in last hour');
|
|
150
|
-
lines.push('# TYPE agent_relay_messages_last_hour gauge');
|
|
151
|
-
lines.push(`agent_relay_messages_last_hour ${metrics.throughput.messagesLastHour}`);
|
|
152
|
-
lines.push('# HELP agent_relay_messages_avg_per_minute Average messages per minute');
|
|
153
|
-
lines.push('# TYPE agent_relay_messages_avg_per_minute gauge');
|
|
154
|
-
lines.push(`agent_relay_messages_avg_per_minute ${metrics.throughput.avgMessagesPerMinute}`);
|
|
155
|
-
// Per-agent metrics
|
|
156
|
-
lines.push('# HELP agent_relay_agent_messages_sent Messages sent by agent');
|
|
157
|
-
lines.push('# TYPE agent_relay_agent_messages_sent counter');
|
|
158
|
-
for (const agent of metrics.agents) {
|
|
159
|
-
lines.push(`agent_relay_agent_messages_sent{agent="${agent.name}"} ${agent.messagesSent}`);
|
|
160
|
-
}
|
|
161
|
-
lines.push('# HELP agent_relay_agent_messages_received Messages received by agent');
|
|
162
|
-
lines.push('# TYPE agent_relay_agent_messages_received counter');
|
|
163
|
-
for (const agent of metrics.agents) {
|
|
164
|
-
lines.push(`agent_relay_agent_messages_received{agent="${agent.name}"} ${agent.messagesReceived}`);
|
|
165
|
-
}
|
|
166
|
-
lines.push('# HELP agent_relay_agent_online Agent online status (1=online, 0=offline)');
|
|
167
|
-
lines.push('# TYPE agent_relay_agent_online gauge');
|
|
168
|
-
for (const agent of metrics.agents) {
|
|
169
|
-
lines.push(`agent_relay_agent_online{agent="${agent.name}"} ${agent.isOnline ? 1 : 0}`);
|
|
170
|
-
}
|
|
171
|
-
lines.push('# HELP agent_relay_agent_uptime_seconds Agent uptime in seconds');
|
|
172
|
-
lines.push('# TYPE agent_relay_agent_uptime_seconds gauge');
|
|
173
|
-
for (const agent of metrics.agents) {
|
|
174
|
-
lines.push(`agent_relay_agent_uptime_seconds{agent="${agent.name}"} ${agent.uptimeSeconds}`);
|
|
175
|
-
}
|
|
176
|
-
// Session lifecycle metrics
|
|
177
|
-
lines.push('# HELP agent_relay_sessions_total Total number of sessions');
|
|
178
|
-
lines.push('# TYPE agent_relay_sessions_total counter');
|
|
179
|
-
lines.push(`agent_relay_sessions_total ${metrics.sessions.totalSessions}`);
|
|
180
|
-
lines.push('# HELP agent_relay_sessions_active Number of active sessions');
|
|
181
|
-
lines.push('# TYPE agent_relay_sessions_active gauge');
|
|
182
|
-
lines.push(`agent_relay_sessions_active ${metrics.sessions.activeSessions}`);
|
|
183
|
-
lines.push('# HELP agent_relay_sessions_closed_total Sessions closed by type');
|
|
184
|
-
lines.push('# TYPE agent_relay_sessions_closed_total counter');
|
|
185
|
-
lines.push(`agent_relay_sessions_closed_total{closed_by="agent"} ${metrics.sessions.closedByAgent}`);
|
|
186
|
-
lines.push(`agent_relay_sessions_closed_total{closed_by="disconnect"} ${metrics.sessions.closedByDisconnect}`);
|
|
187
|
-
lines.push(`agent_relay_sessions_closed_total{closed_by="error"} ${metrics.sessions.closedByError}`);
|
|
188
|
-
lines.push('# HELP agent_relay_sessions_error_rate Percentage of sessions closed by error');
|
|
189
|
-
lines.push('# TYPE agent_relay_sessions_error_rate gauge');
|
|
190
|
-
lines.push(`agent_relay_sessions_error_rate ${metrics.sessions.errorRate}`);
|
|
191
|
-
return lines.join('\n') + '\n';
|
|
192
|
-
}
|
|
193
|
-
//# sourceMappingURL=metrics.js.map
|