agent-relay 1.0.21 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bridge/shadow-cli.d.ts +17 -0
- package/dist/bridge/shadow-cli.d.ts.map +1 -0
- package/dist/bridge/shadow-cli.js +75 -0
- package/dist/bridge/shadow-cli.js.map +1 -0
- package/dist/bridge/shadow-config.d.ts +87 -0
- package/dist/bridge/shadow-config.d.ts.map +1 -0
- package/dist/bridge/shadow-config.js +134 -0
- package/dist/bridge/shadow-config.js.map +1 -0
- package/dist/bridge/spawner.d.ts +15 -1
- package/dist/bridge/spawner.d.ts.map +1 -1
- package/dist/bridge/spawner.js +164 -4
- package/dist/bridge/spawner.js.map +1 -1
- package/dist/bridge/types.d.ts +55 -0
- package/dist/bridge/types.d.ts.map +1 -1
- package/dist/cli/index.js +796 -11
- package/dist/cli/index.js.map +1 -1
- package/dist/cloud/api/auth.d.ts +19 -0
- package/dist/cloud/api/auth.d.ts.map +1 -0
- package/dist/cloud/api/auth.js +216 -0
- package/dist/cloud/api/auth.js.map +1 -0
- package/dist/cloud/api/billing.d.ts +17 -0
- package/dist/cloud/api/billing.d.ts.map +1 -0
- package/dist/cloud/api/billing.js +353 -0
- package/dist/cloud/api/billing.js.map +1 -0
- package/dist/cloud/api/coordinators.d.ts +8 -0
- package/dist/cloud/api/coordinators.d.ts.map +1 -0
- package/dist/cloud/api/coordinators.js +347 -0
- package/dist/cloud/api/coordinators.js.map +1 -0
- package/dist/cloud/api/daemons.d.ts +12 -0
- package/dist/cloud/api/daemons.d.ts.map +1 -0
- package/dist/cloud/api/daemons.js +320 -0
- package/dist/cloud/api/daemons.js.map +1 -0
- package/dist/cloud/api/middleware/planLimits.d.ts +36 -0
- package/dist/cloud/api/middleware/planLimits.d.ts.map +1 -0
- package/dist/cloud/api/middleware/planLimits.js +164 -0
- package/dist/cloud/api/middleware/planLimits.js.map +1 -0
- package/dist/cloud/api/onboarding.d.ts +8 -0
- package/dist/cloud/api/onboarding.d.ts.map +1 -0
- package/dist/cloud/api/onboarding.js +407 -0
- package/dist/cloud/api/onboarding.js.map +1 -0
- package/dist/cloud/api/providers.d.ts +7 -0
- package/dist/cloud/api/providers.d.ts.map +1 -0
- package/dist/cloud/api/providers.js +435 -0
- package/dist/cloud/api/providers.js.map +1 -0
- package/dist/cloud/api/repos.d.ts +7 -0
- package/dist/cloud/api/repos.d.ts.map +1 -0
- package/dist/cloud/api/repos.js +314 -0
- package/dist/cloud/api/repos.js.map +1 -0
- package/dist/cloud/api/teams.d.ts +7 -0
- package/dist/cloud/api/teams.d.ts.map +1 -0
- package/dist/cloud/api/teams.js +279 -0
- package/dist/cloud/api/teams.js.map +1 -0
- package/dist/cloud/api/usage.d.ts +7 -0
- package/dist/cloud/api/usage.d.ts.map +1 -0
- package/dist/cloud/api/usage.js +98 -0
- package/dist/cloud/api/usage.js.map +1 -0
- package/dist/cloud/api/workspaces.d.ts +7 -0
- package/dist/cloud/api/workspaces.d.ts.map +1 -0
- package/dist/cloud/api/workspaces.js +510 -0
- package/dist/cloud/api/workspaces.js.map +1 -0
- package/dist/cloud/billing/index.d.ts +9 -0
- package/dist/cloud/billing/index.d.ts.map +1 -0
- package/dist/cloud/billing/index.js +9 -0
- package/dist/cloud/billing/index.js.map +1 -0
- package/dist/cloud/billing/plans.d.ts +39 -0
- package/dist/cloud/billing/plans.d.ts.map +1 -0
- package/dist/cloud/billing/plans.js +232 -0
- package/dist/cloud/billing/plans.js.map +1 -0
- package/dist/cloud/billing/service.d.ts +80 -0
- package/dist/cloud/billing/service.d.ts.map +1 -0
- package/dist/cloud/billing/service.js +388 -0
- package/dist/cloud/billing/service.js.map +1 -0
- package/dist/cloud/billing/types.d.ts +135 -0
- package/dist/cloud/billing/types.d.ts.map +1 -0
- package/dist/cloud/billing/types.js +7 -0
- package/dist/cloud/billing/types.js.map +1 -0
- package/dist/cloud/config.d.ts +59 -0
- package/dist/cloud/config.d.ts.map +1 -0
- package/dist/cloud/config.js +83 -0
- package/dist/cloud/config.js.map +1 -0
- package/dist/cloud/db/drizzle.d.ts +132 -0
- package/dist/cloud/db/drizzle.d.ts.map +1 -0
- package/dist/cloud/db/drizzle.js +613 -0
- package/dist/cloud/db/drizzle.js.map +1 -0
- package/dist/cloud/db/index.d.ts +30 -0
- package/dist/cloud/db/index.d.ts.map +1 -0
- package/dist/cloud/db/index.js +44 -0
- package/dist/cloud/db/index.js.map +1 -0
- package/dist/cloud/db/schema.d.ts +1792 -0
- package/dist/cloud/db/schema.d.ts.map +1 -0
- package/dist/cloud/db/schema.js +234 -0
- package/dist/cloud/db/schema.js.map +1 -0
- package/dist/cloud/index.d.ts +11 -0
- package/dist/cloud/index.d.ts.map +1 -0
- package/dist/cloud/index.js +37 -0
- package/dist/cloud/index.js.map +1 -0
- package/dist/cloud/provisioner/index.d.ts +51 -0
- package/dist/cloud/provisioner/index.d.ts.map +1 -0
- package/dist/cloud/provisioner/index.js +676 -0
- package/dist/cloud/provisioner/index.js.map +1 -0
- package/dist/cloud/server.d.ts +16 -0
- package/dist/cloud/server.d.ts.map +1 -0
- package/dist/cloud/server.js +190 -0
- package/dist/cloud/server.js.map +1 -0
- package/dist/cloud/services/coordinator.d.ts +62 -0
- package/dist/cloud/services/coordinator.d.ts.map +1 -0
- package/dist/cloud/services/coordinator.js +389 -0
- package/dist/cloud/services/coordinator.js.map +1 -0
- package/dist/cloud/services/planLimits.d.ts +110 -0
- package/dist/cloud/services/planLimits.d.ts.map +1 -0
- package/dist/cloud/services/planLimits.js +254 -0
- package/dist/cloud/services/planLimits.js.map +1 -0
- package/dist/cloud/vault/index.d.ts +76 -0
- package/dist/cloud/vault/index.d.ts.map +1 -0
- package/dist/cloud/vault/index.js +219 -0
- package/dist/cloud/vault/index.js.map +1 -0
- package/dist/daemon/agent-manager.d.ts +87 -0
- package/dist/daemon/agent-manager.d.ts.map +1 -0
- package/dist/daemon/agent-manager.js +412 -0
- package/dist/daemon/agent-manager.js.map +1 -0
- package/dist/daemon/agent-registry.d.ts +2 -0
- package/dist/daemon/agent-registry.d.ts.map +1 -1
- package/dist/daemon/agent-registry.js +3 -0
- package/dist/daemon/agent-registry.js.map +1 -1
- package/dist/daemon/api.d.ts +69 -0
- package/dist/daemon/api.d.ts.map +1 -0
- package/dist/daemon/api.js +425 -0
- package/dist/daemon/api.js.map +1 -0
- package/dist/daemon/cloud-sync.d.ts +101 -0
- package/dist/daemon/cloud-sync.d.ts.map +1 -0
- package/dist/daemon/cloud-sync.js +261 -0
- package/dist/daemon/cloud-sync.js.map +1 -0
- package/dist/daemon/index.d.ts +4 -0
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +6 -0
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/orchestrator.d.ts +155 -0
- package/dist/daemon/orchestrator.d.ts.map +1 -0
- package/dist/daemon/orchestrator.js +736 -0
- package/dist/daemon/orchestrator.js.map +1 -0
- package/dist/daemon/router.d.ts +24 -0
- package/dist/daemon/router.d.ts.map +1 -1
- package/dist/daemon/router.js +71 -1
- package/dist/daemon/router.js.map +1 -1
- package/dist/daemon/server.d.ts +37 -0
- package/dist/daemon/server.d.ts.map +1 -1
- package/dist/daemon/server.js +191 -16
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/types.d.ts +127 -0
- package/dist/daemon/types.d.ts.map +1 -0
- package/dist/daemon/types.js +6 -0
- package/dist/daemon/types.js.map +1 -0
- package/dist/daemon/workspace-manager.d.ts +75 -0
- package/dist/daemon/workspace-manager.d.ts.map +1 -0
- package/dist/daemon/workspace-manager.js +289 -0
- package/dist/daemon/workspace-manager.js.map +1 -0
- package/dist/dashboard/out/404.html +1 -1
- package/dist/dashboard/out/_next/static/chunks/693-7b3301d8f6bc5014.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/713-f78477eb185f1f4d.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/766-e53e1cfe39b0b5b5.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/900-037c64bfd797fb2a.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/app/page-e3d9e1f4466b9bae.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/history/page-b6edd4dde8d08194.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/layout-2433bb48965f4333.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/metrics/page-e68825a81db67ba1.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/page-cc108bf68c8a657f.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/pricing/page-d80e03a5297f95b6.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/main-app-5d692157a8eb1fd9.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/{main-e0a1f53fe0617a63.js → main-c2f423b9c9f4591b.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/{webpack-c81f7fd28659d64f.js → webpack-a5acc2831d094776.js} +1 -1
- package/dist/dashboard/out/_next/static/css/79b80143647a07d7.css +1 -0
- package/dist/dashboard/out/_next/static/css/8cf277370ad48cfe.css +1 -0
- 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 +45 -0
- package/dist/dashboard/out/alt-logos/logo.svg +38 -0
- 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 +38 -0
- package/dist/dashboard/out/app.html +14 -0
- package/dist/dashboard/out/app.txt +7 -0
- package/dist/dashboard/out/history.html +1 -0
- package/dist/dashboard/out/history.txt +7 -0
- package/dist/dashboard/out/index.html +1 -1
- package/dist/dashboard/out/index.txt +2 -2
- package/dist/dashboard/out/metrics.html +1 -515
- package/dist/dashboard/out/metrics.txt +2 -2
- package/dist/dashboard/out/pricing.html +13 -0
- package/dist/dashboard/out/pricing.txt +7 -0
- package/dist/dashboard-server/metrics.d.ts.map +1 -1
- package/dist/dashboard-server/metrics.js +3 -2
- package/dist/dashboard-server/metrics.js.map +1 -1
- package/dist/dashboard-server/server.d.ts.map +1 -1
- package/dist/dashboard-server/server.js +1279 -56
- package/dist/dashboard-server/server.js.map +1 -1
- package/dist/protocol/types.d.ts +10 -1
- package/dist/protocol/types.d.ts.map +1 -1
- package/dist/resiliency/context-persistence.d.ts +140 -0
- package/dist/resiliency/context-persistence.d.ts.map +1 -0
- package/dist/resiliency/context-persistence.js +397 -0
- package/dist/resiliency/context-persistence.js.map +1 -0
- package/dist/resiliency/health-monitor.d.ts +97 -0
- package/dist/resiliency/health-monitor.d.ts.map +1 -0
- package/dist/resiliency/health-monitor.js +291 -0
- package/dist/resiliency/health-monitor.js.map +1 -0
- package/dist/resiliency/index.d.ts +63 -0
- package/dist/resiliency/index.d.ts.map +1 -0
- package/dist/resiliency/index.js +63 -0
- package/dist/resiliency/index.js.map +1 -0
- package/dist/resiliency/logger.d.ts +114 -0
- package/dist/resiliency/logger.d.ts.map +1 -0
- package/dist/resiliency/logger.js +250 -0
- package/dist/resiliency/logger.js.map +1 -0
- package/dist/resiliency/metrics.d.ts +115 -0
- package/dist/resiliency/metrics.d.ts.map +1 -0
- package/dist/resiliency/metrics.js +239 -0
- package/dist/resiliency/metrics.js.map +1 -0
- package/dist/resiliency/provider-context.d.ts +100 -0
- package/dist/resiliency/provider-context.d.ts.map +1 -0
- package/dist/resiliency/provider-context.js +360 -0
- package/dist/resiliency/provider-context.js.map +1 -0
- package/dist/resiliency/supervisor.d.ts +109 -0
- package/dist/resiliency/supervisor.d.ts.map +1 -0
- package/dist/resiliency/supervisor.js +337 -0
- package/dist/resiliency/supervisor.js.map +1 -0
- package/dist/storage/adapter.d.ts +2 -0
- package/dist/storage/adapter.d.ts.map +1 -1
- package/dist/storage/adapter.js +12 -2
- package/dist/storage/adapter.js.map +1 -1
- package/dist/storage/sqlite-adapter.d.ts.map +1 -1
- package/dist/storage/sqlite-adapter.js +18 -14
- package/dist/storage/sqlite-adapter.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logger.d.ts +40 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +84 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/wrapper/client.d.ts +16 -1
- package/dist/wrapper/client.d.ts.map +1 -1
- package/dist/wrapper/client.js +32 -1
- package/dist/wrapper/client.js.map +1 -1
- package/dist/wrapper/parser.d.ts +3 -0
- package/dist/wrapper/parser.d.ts.map +1 -1
- package/dist/wrapper/parser.js +121 -18
- package/dist/wrapper/parser.js.map +1 -1
- package/dist/wrapper/pty-wrapper.d.ts +28 -1
- package/dist/wrapper/pty-wrapper.d.ts.map +1 -1
- package/dist/wrapper/pty-wrapper.js +166 -30
- package/dist/wrapper/pty-wrapper.js.map +1 -1
- package/dist/wrapper/tmux-wrapper.d.ts +5 -0
- package/dist/wrapper/tmux-wrapper.d.ts.map +1 -1
- package/dist/wrapper/tmux-wrapper.js +58 -18
- package/dist/wrapper/tmux-wrapper.js.map +1 -1
- package/docs/CLOUD-ARCHITECTURE.md +652 -0
- package/docs/CLOUD-ONBOARDING-DESIGN.md +1983 -0
- package/docs/TESTING_PRESENCE_FEATURES.md +327 -0
- package/docs/agent-relay-snippet.md +107 -4
- package/docs/guides/CLOUD.md +236 -0
- package/docs/guides/LOCAL.md +535 -0
- package/docs/guides/SELF-HOSTED.md +494 -0
- package/docs/proposals/shadow-as-subagent.md +765 -0
- package/docs/proposals/slack-bot-integration.md +1457 -0
- package/package.json +33 -4
- package/dist/dashboard/out/_next/static/chunks/app/layout-c9d8c5d95e48c6bf.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/metrics/page-8aa9936bc6c771ab.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/page-49055e5d2b5e34ec.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/main-app-bae2e535de00de50.js +0 -1
- package/dist/dashboard/out/_next/static/css/50ed6996e3df7bdd.css +0 -1
- /package/dist/dashboard/out/_next/static/{gZXwjIKGDKJ0hiTH-HMeJ → 6HHWb2ZmnJ4OSm0zUP7h4}/_buildManifest.js +0 -0
- /package/dist/dashboard/out/_next/static/{gZXwjIKGDKJ0hiTH-HMeJ → 6HHWb2ZmnJ4OSm0zUP7h4}/_ssgManifest.js +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{117-3bef7b19f3e60751.js → 117-b2cd8d6485aacf2b.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{648-6cf686106c891ad3.js → 648-8f3f26864ce515e5.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/app/_not-found/{page-8ff6572bc7c9bc61.js → page-0b990dbb71d72a98.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{fd9d1056-26bd8d656b496dba.js → fd9d1056-bf46c09eb57e019c.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[766],{8766:function(e,s,a){"use strict";a.d(s,{fy:function(){return t},Wv:function(){return C}});var n=a(7437),i=a(2265);a(3655);var r=a(6272);let l={claude:{name:"Claude",color:"#00D9FF",icon:"◈"},codex:{name:"Codex",color:"#FF6B35",icon:"⬡"},gemini:{name:"Gemini",color:"#A855F7",icon:"◇"}},c=[{from:"Architect",to:"all",content:"Starting auth module implementation. @Backend handle API, @Frontend build login UI.",provider:"claude"},{from:"Backend",to:"Architect",content:"Acknowledged. Setting up JWT middleware and user routes.",provider:"codex"},{from:"Frontend",to:"Architect",content:"On it. Creating login form with OAuth integration.",provider:"claude"},{from:"Backend",to:"Frontend",content:"API ready at /api/auth. Endpoints: POST /login, POST /register, GET /me",provider:"codex"},{from:"Frontend",to:"Backend",content:"Perfect. Integrating now. Need CORS headers for localhost:3000",provider:"claude"},{from:"Backend",to:"Frontend",content:"Done. CORS configured for development.",provider:"codex"},{from:"Reviewer",to:"all",content:"Running security audit on auth implementation...",provider:"gemini"},{from:"Reviewer",to:"Backend",content:"Found issue: password not being hashed. Use bcrypt.",provider:"gemini"},{from:"Backend",to:"Reviewer",content:"Good catch. Fixed and pushed. Using bcrypt with 12 rounds.",provider:"codex"},{from:"Architect",to:"all",content:"Auth module complete. Moving to dashboard implementation.",provider:"claude"}];function t(){return(0,n.jsxs)("div",{className:"landing-page",children:[(0,n.jsxs)("div",{className:"landing-bg",children:[(0,n.jsx)(N,{}),(0,n.jsx)(f,{})]}),(0,n.jsx)(o,{}),(0,n.jsxs)("main",{children:[(0,n.jsx)(d,{}),(0,n.jsx)(u,{}),(0,n.jsx)(p,{}),(0,n.jsx)(x,{}),(0,n.jsx)(j,{}),(0,n.jsx)(g,{})]}),(0,n.jsx)(v,{})]})}function o(){let[e,s]=(0,i.useState)(!1),[a,l]=(0,i.useState)(!1);(0,i.useEffect)(()=>{let e=()=>s(window.scrollY>50);return window.addEventListener("scroll",e),()=>window.removeEventListener("scroll",e)},[]),(0,i.useEffect)(()=>{let e=()=>{window.innerWidth>768&&l(!1)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),(0,i.useEffect)(()=>(a?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[a]);let c=()=>{l(!1)};return(0,n.jsxs)("nav",{className:"nav ".concat(e?"scrolled":""," ").concat(a?"menu-open":""),children:[(0,n.jsxs)("div",{className:"nav-inner",children:[(0,n.jsxs)("a",{href:"/",className:"nav-logo",children:[(0,n.jsx)(r.K7,{size:28,withGlow:!0}),(0,n.jsx)("span",{className:"logo-text",children:"Agent Relay"})]}),(0,n.jsxs)("div",{className:"nav-links",children:[(0,n.jsx)("a",{href:"#demo",children:"Demo"}),(0,n.jsx)("a",{href:"#features",children:"Features"}),(0,n.jsx)("a",{href:"#pricing",children:"Pricing"}),(0,n.jsx)("a",{href:"/docs",className:"nav-docs",children:"Docs"})]}),(0,n.jsxs)("div",{className:"nav-actions",children:[(0,n.jsx)("a",{href:"/login",className:"btn-ghost",children:"Sign In"}),(0,n.jsx)("a",{href:"/signup",className:"btn-primary",children:"Get Started"})]}),(0,n.jsx)("button",{className:"mobile-menu-toggle",onClick:()=>l(!a),"aria-label":a?"Close menu":"Open menu",children:(0,n.jsxs)("span",{className:"hamburger ".concat(a?"open":""),children:[(0,n.jsx)("span",{className:"hamburger-line"}),(0,n.jsx)("span",{className:"hamburger-line"}),(0,n.jsx)("span",{className:"hamburger-line"})]})})]}),(0,n.jsx)("div",{className:"mobile-menu-overlay ".concat(a?"open":""),onClick:c}),(0,n.jsx)("div",{className:"mobile-menu ".concat(a?"open":""),children:(0,n.jsxs)("div",{className:"mobile-menu-content",children:[(0,n.jsxs)("div",{className:"mobile-nav-links",children:[(0,n.jsx)("a",{href:"#demo",onClick:c,children:"Demo"}),(0,n.jsx)("a",{href:"#features",onClick:c,children:"Features"}),(0,n.jsx)("a",{href:"#pricing",onClick:c,children:"Pricing"}),(0,n.jsx)("a",{href:"/docs",onClick:c,children:"Documentation"})]}),(0,n.jsxs)("div",{className:"mobile-nav-actions",children:[(0,n.jsx)("a",{href:"/login",className:"btn-ghost btn-full",onClick:c,children:"Sign In"}),(0,n.jsx)("a",{href:"/signup",className:"btn-primary btn-full",onClick:c,children:"Get Started"})]})]})})]})}function d(){return(0,n.jsxs)("section",{className:"hero",children:[(0,n.jsxs)("div",{className:"hero-content",children:[(0,n.jsxs)("div",{className:"hero-badge",children:[(0,n.jsx)("span",{className:"badge-dot"}),(0,n.jsx)("span",{children:"Now in Public Beta"})]}),(0,n.jsxs)("h1",{className:"hero-title",children:[(0,n.jsx)("span",{className:"title-line",children:"Orchestrate AI Agents"}),(0,n.jsx)("span",{className:"title-line gradient",children:"Like a Symphony"})]}),(0,n.jsx)("p",{className:"hero-subtitle",children:"Deploy Claude, Codex, and Gemini agents that communicate in real-time. One dashboard to rule them all. Zero infrastructure headaches."}),(0,n.jsxs)("div",{className:"hero-cta",children:[(0,n.jsxs)("a",{href:"/signup",className:"btn-primary btn-large",children:[(0,n.jsx)("span",{children:"Start Building"}),(0,n.jsx)("span",{className:"btn-arrow",children:"→"})]}),(0,n.jsxs)("a",{href:"#demo",className:"btn-ghost btn-large",children:[(0,n.jsx)("span",{className:"play-icon",children:"▶"}),(0,n.jsx)("span",{children:"Watch Demo"})]})]}),(0,n.jsxs)("div",{className:"hero-stats",children:[(0,n.jsxs)("div",{className:"stat",children:[(0,n.jsx)("span",{className:"stat-value",children:"10K+"}),(0,n.jsx)("span",{className:"stat-label",children:"Agents Spawned"})]}),(0,n.jsx)("div",{className:"stat-divider"}),(0,n.jsxs)("div",{className:"stat",children:[(0,n.jsx)("span",{className:"stat-value",children:"500+"}),(0,n.jsx)("span",{className:"stat-label",children:"Teams"})]}),(0,n.jsx)("div",{className:"stat-divider"}),(0,n.jsxs)("div",{className:"stat",children:[(0,n.jsx)("span",{className:"stat-value",children:"99.9%"}),(0,n.jsx)("span",{className:"stat-label",children:"Uptime"})]})]})]}),(0,n.jsx)("div",{className:"hero-visual",children:(0,n.jsx)(h,{})})]})}function h(){let e=[{id:"lead",name:"Lead",x:50,y:30,provider:"claude",pulse:!0},{id:"backend",name:"Backend",x:25,y:55,provider:"codex",pulse:!1},{id:"frontend",name:"Frontend",x:75,y:55,provider:"claude",pulse:!1},{id:"reviewer",name:"Reviewer",x:50,y:80,provider:"gemini",pulse:!1}];return(0,n.jsxs)("div",{className:"agent-network",children:[(0,n.jsx)("svg",{className:"network-lines",viewBox:"0 0 100 100",preserveAspectRatio:"none",children:[{from:"lead",to:"backend"},{from:"lead",to:"frontend"},{from:"backend",to:"frontend"},{from:"backend",to:"reviewer"},{from:"frontend",to:"reviewer"}].map((s,a)=>{let i=e.find(e=>e.id===s.from),r=e.find(e=>e.id===s.to);return(0,n.jsxs)("g",{children:[(0,n.jsx)("line",{x1:i.x,y1:i.y,x2:r.x,y2:r.y,className:"network-line"}),(0,n.jsx)("line",{x1:i.x,y1:i.y,x2:r.x,y2:r.y,className:"network-line-glow",style:{animationDelay:"".concat(.3*a,"s")}})]},a)})}),e.map(e=>{let s=l[e.provider];return(0,n.jsxs)("div",{className:"network-agent ".concat(e.pulse?"pulse":""),style:{left:"".concat(e.x,"%"),top:"".concat(e.y,"%"),"--agent-color":s.color},children:[(0,n.jsx)("div",{className:"agent-glow"}),(0,n.jsx)("div",{className:"agent-icon",children:s.icon}),(0,n.jsx)("div",{className:"agent-label",children:e.name})]},e.id)}),(0,n.jsx)(m,{fromX:50,fromY:30,toX:25,toY:55,delay:0}),(0,n.jsx)(m,{fromX:25,fromY:55,toX:75,toY:55,delay:1}),(0,n.jsx)(m,{fromX:75,fromY:55,toX:50,toY:80,delay:2})]})}function m(e){let{fromX:s,fromY:a,toX:i,toY:r,delay:l}=e;return(0,n.jsx)("div",{className:"data-packet",style:{"--from-x":"".concat(s,"%"),"--from-y":"".concat(a,"%"),"--to-x":"".concat(i,"%"),"--to-y":"".concat(r,"%"),animationDelay:"".concat(l,"s")}})}function u(){let[e,s]=(0,i.useState)([]),[a,r]=(0,i.useState)(0),t=(0,i.useRef)(null);return(0,i.useEffect)(()=>{if(a>=c.length){let e=setTimeout(()=>{s([]),r(0)},3e3);return()=>clearTimeout(e)}let e=setTimeout(()=>{s(e=>[...e,c[a]]),r(e=>e+1)},1500);return()=>clearTimeout(e)},[a]),(0,i.useEffect)(()=>{let e=t.current;e&&(e.scrollTop=e.scrollHeight)},[e]),(0,n.jsxs)("section",{id:"demo",className:"demo-section",children:[(0,n.jsxs)("div",{className:"section-header",children:[(0,n.jsx)("span",{className:"section-tag",children:"Live Demo"}),(0,n.jsx)("h2",{children:"Watch Agents Collaborate"}),(0,n.jsx)("p",{children:"See how multiple AI agents work together on a real task in real-time."})]}),(0,n.jsxs)("div",{className:"demo-container",children:[(0,n.jsxs)("div",{className:"demo-window",children:[(0,n.jsxs)("div",{className:"window-header",children:[(0,n.jsxs)("div",{className:"window-dots",children:[(0,n.jsx)("span",{className:"dot red"}),(0,n.jsx)("span",{className:"dot yellow"}),(0,n.jsx)("span",{className:"dot green"})]}),(0,n.jsx)("div",{className:"window-title",children:"Agent Relay — auth-module"}),(0,n.jsxs)("div",{className:"window-status",children:[(0,n.jsx)("span",{className:"status-dot"}),(0,n.jsx)("span",{children:"4 agents online"})]})]}),(0,n.jsxs)("div",{className:"demo-content",children:[(0,n.jsx)("div",{className:"demo-sidebar",children:(0,n.jsxs)("div",{className:"sidebar-section",children:[(0,n.jsx)("div",{className:"sidebar-label",children:"AGENTS"}),["Architect","Backend","Frontend","Reviewer"].map((e,s)=>{let a=l[["claude","codex","claude","gemini"][s]];return(0,n.jsxs)("div",{className:"sidebar-agent",children:[(0,n.jsx)("span",{className:"agent-dot",style:{background:a.color}}),(0,n.jsx)("span",{className:"agent-name",children:e}),(0,n.jsx)("span",{className:"agent-status",children:"●"})]},e)})]})}),(0,n.jsxs)("div",{className:"demo-messages",ref:t,children:[e.map((e,s)=>{let a=l[e.provider];return(0,n.jsxs)("div",{className:"message",style:{"--msg-color":a.color},children:[(0,n.jsxs)("div",{className:"message-header",children:[(0,n.jsx)("span",{className:"message-icon",style:{background:a.color},children:a.icon}),(0,n.jsx)("span",{className:"message-from",children:e.from}),(0,n.jsx)("span",{className:"message-arrow",children:"→"}),(0,n.jsx)("span",{className:"message-to",children:"all"===e.to?"everyone":e.to}),(0,n.jsx)("span",{className:"message-time",children:"just now"})]}),(0,n.jsx)("div",{className:"message-content",children:e.content})]},s)}),e.length<c.length&&(0,n.jsxs)("div",{className:"typing-indicator",children:[(0,n.jsx)("span",{className:"typing-dot"}),(0,n.jsx)("span",{className:"typing-dot"}),(0,n.jsx)("span",{className:"typing-dot"})]})]})]})]}),(0,n.jsx)("div",{className:"demo-caption",children:(0,n.jsx)("p",{children:"This is a simulation of agents completing a task. In production, agents run your actual code."})})]})]})}function p(){return(0,n.jsxs)("section",{id:"features",className:"features-section",children:[(0,n.jsxs)("div",{className:"section-header",children:[(0,n.jsx)("span",{className:"section-tag",children:"Features"}),(0,n.jsx)("h2",{children:"Everything You Need"}),(0,n.jsx)("p",{children:"Built for developers who want AI agents that actually work together."})]}),(0,n.jsx)("div",{className:"features-grid",children:[{icon:"⚡",title:"One-Click Workspaces",description:"Spin up isolated environments for each project. Connect your repo and agents are ready in seconds."},{icon:"\uD83D\uDD04",title:"Real-Time Messaging",description:"Agents communicate through a blazing-fast relay. @mentions, broadcasts, and direct messages."},{icon:"\uD83D\uDD10",title:"Secure Credential Vault",description:"Store API keys and secrets encrypted at rest. Agents access only what they need."},{icon:"\uD83C\uDFAF",title:"Smart Orchestration",description:"Lead agents delegate tasks. Workers report progress. The system handles the complexity."},{icon:"\uD83D\uDCCA",title:"Full Observability",description:"Trace every message, tool call, and decision. Replay and debug any session."},{icon:"\uD83D\uDE80",title:"Auto-Scaling",description:"From 1 agent to 100. Pay only for what you use. Scale down to zero when idle."}].map((e,s)=>(0,n.jsxs)("div",{className:"feature-card",style:{animationDelay:"".concat(.1*s,"s")},children:[(0,n.jsx)("div",{className:"feature-icon",children:e.icon}),(0,n.jsx)("h3",{children:e.title}),(0,n.jsx)("p",{children:e.description})]},s))})]})}function x(){return(0,n.jsxs)("section",{className:"providers-section",children:[(0,n.jsxs)("div",{className:"section-header",children:[(0,n.jsx)("span",{className:"section-tag",children:"Providers"}),(0,n.jsx)("h2",{children:"Bring Your Own Agents"}),(0,n.jsx)("p",{children:"Use any AI provider. Mix and match for the perfect team."})]}),(0,n.jsxs)("div",{className:"providers-grid",children:[Object.entries(l).map(e=>{let[s,a]=e;return(0,n.jsxs)("div",{className:"provider-card",style:{"--provider-color":a.color},children:[(0,n.jsx)("div",{className:"provider-icon",children:a.icon}),(0,n.jsx)("div",{className:"provider-name",children:a.name}),(0,n.jsx)("div",{className:"provider-status",children:"Supported"})]},s)}),(0,n.jsxs)("div",{className:"provider-card coming-soon",children:[(0,n.jsx)("div",{className:"provider-icon",children:"◎"}),(0,n.jsx)("div",{className:"provider-name",children:"More Coming"}),(0,n.jsx)("div",{className:"provider-status",children:"2025"})]})]})]})}function j(){return(0,n.jsxs)("section",{id:"pricing",className:"pricing-section",children:[(0,n.jsxs)("div",{className:"section-header",children:[(0,n.jsx)("span",{className:"section-tag",children:"Pricing"}),(0,n.jsx)("h2",{children:"Simple, Transparent Pricing"}),(0,n.jsx)("p",{children:"Start free. Scale as you grow. No hidden fees."})]}),(0,n.jsx)("div",{className:"pricing-grid",children:[{name:"Free",price:"$0",period:"forever",description:"Try it out on a side project",features:["1 workspace","3 repositories","2 concurrent agents","10 compute hours/month","Community support"],cta:"Get Started",highlighted:!1},{name:"Pro",price:"$29",period:"/month",description:"For professional developers",features:["5 workspaces","20 repositories","10 concurrent agents","100 compute hours/month","Coordinator agents","Email support"],cta:"Start Free Trial",highlighted:!0},{name:"Team",price:"$99",period:"/month",description:"For growing teams",features:["20 workspaces","100 repositories","50 concurrent agents","500 compute hours/month","Coordinator agents","Priority support","Audit logs"],cta:"Start Free Trial",highlighted:!1},{name:"Enterprise",price:"Custom",period:"",description:"For organizations at scale",features:["Unlimited workspaces","Unlimited repositories","Unlimited agents","Unlimited compute","SSO/SAML","SLA guarantee","Dedicated support"],cta:"Contact Sales",highlighted:!1}].map((e,s)=>(0,n.jsxs)("div",{className:"pricing-card ".concat(e.highlighted?"highlighted":""),children:[e.highlighted&&(0,n.jsx)("div",{className:"popular-badge",children:"Most Popular"}),(0,n.jsxs)("div",{className:"pricing-header",children:[(0,n.jsx)("h3",{children:e.name}),(0,n.jsxs)("div",{className:"pricing-price",children:[(0,n.jsx)("span",{className:"price",children:e.price}),(0,n.jsx)("span",{className:"period",children:e.period})]}),(0,n.jsx)("p",{className:"pricing-description",children:e.description})]}),(0,n.jsx)("ul",{className:"pricing-features",children:e.features.map((e,s)=>(0,n.jsxs)("li",{children:[(0,n.jsx)("span",{className:"check",children:"✓"}),(0,n.jsx)("span",{children:e})]},s))}),(0,n.jsx)("a",{href:"/signup",className:"btn-".concat(e.highlighted?"primary":"ghost"," btn-full"),children:e.cta})]},s))})]})}function g(){return(0,n.jsxs)("section",{className:"cta-section",children:[(0,n.jsxs)("div",{className:"cta-content",children:[(0,n.jsx)("h2",{children:"Ready to Orchestrate?"}),(0,n.jsx)("p",{children:"Join thousands of developers building with AI agent teams."}),(0,n.jsxs)("div",{className:"cta-buttons",children:[(0,n.jsxs)("a",{href:"/signup",className:"btn-primary btn-large",children:[(0,n.jsx)("span",{children:"Start Building Free"}),(0,n.jsx)("span",{className:"btn-arrow",children:"→"})]}),(0,n.jsx)("a",{href:"/docs",className:"btn-ghost btn-large",children:"Read the Docs"})]})]}),(0,n.jsxs)("div",{className:"cta-terminal",children:[(0,n.jsxs)("div",{className:"terminal-header",children:[(0,n.jsx)("span",{className:"terminal-prompt",children:"$"}),(0,n.jsx)("span",{className:"terminal-text",children:"npx agent-relay init"})]}),(0,n.jsxs)("div",{className:"terminal-output",children:[(0,n.jsx)("span",{className:"output-line",children:"✓ Connected to Agent Relay Cloud"}),(0,n.jsx)("span",{className:"output-line",children:"✓ Workspace created: my-project"}),(0,n.jsx)("span",{className:"output-line",children:"✓ Ready to spawn agents"}),(0,n.jsx)("span",{className:"output-line cursor",children:"→ agent-relay spawn Lead --provider claude"})]})]})]})}function v(){return(0,n.jsxs)("footer",{className:"footer",children:[(0,n.jsxs)("div",{className:"footer-inner",children:[(0,n.jsxs)("div",{className:"footer-brand",children:[(0,n.jsxs)("a",{href:"/",className:"footer-logo",children:[(0,n.jsx)(r.K7,{size:24,withGlow:!0}),(0,n.jsx)("span",{className:"logo-text",children:"Agent Relay"})]}),(0,n.jsx)("p",{children:"Orchestrate AI agents like a symphony."})]}),(0,n.jsxs)("div",{className:"footer-links",children:[(0,n.jsxs)("div",{className:"footer-column",children:[(0,n.jsx)("h4",{children:"Product"}),(0,n.jsx)("a",{href:"#features",children:"Features"}),(0,n.jsx)("a",{href:"#pricing",children:"Pricing"}),(0,n.jsx)("a",{href:"/docs",children:"Documentation"}),(0,n.jsx)("a",{href:"/changelog",children:"Changelog"})]}),(0,n.jsxs)("div",{className:"footer-column",children:[(0,n.jsx)("h4",{children:"Company"}),(0,n.jsx)("a",{href:"/about",children:"About"}),(0,n.jsx)("a",{href:"/blog",children:"Blog"}),(0,n.jsx)("a",{href:"/careers",children:"Careers"}),(0,n.jsx)("a",{href:"/contact",children:"Contact"})]}),(0,n.jsxs)("div",{className:"footer-column",children:[(0,n.jsx)("h4",{children:"Legal"}),(0,n.jsx)("a",{href:"/privacy",children:"Privacy"}),(0,n.jsx)("a",{href:"/terms",children:"Terms"}),(0,n.jsx)("a",{href:"/security",children:"Security"})]})]})]}),(0,n.jsxs)("div",{className:"footer-bottom",children:[(0,n.jsx)("p",{children:"\xa9 2025 Agent Relay. All rights reserved."}),(0,n.jsxs)("div",{className:"social-links",children:[(0,n.jsx)("a",{href:"https://github.com/agent-relay","aria-label":"GitHub",children:(0,n.jsx)(y,{})}),(0,n.jsx)("a",{href:"https://twitter.com/agentrelay","aria-label":"Twitter",children:(0,n.jsx)(b,{})}),(0,n.jsx)("a",{href:"https://discord.gg/agentrelay","aria-label":"Discord",children:(0,n.jsx)(w,{})})]})]})]})}function N(){return(0,n.jsxs)("div",{className:"grid-bg",children:[(0,n.jsx)("div",{className:"grid-lines"}),(0,n.jsx)("div",{className:"grid-glow"})]})}function f(){return(0,n.jsxs)("div",{className:"glow-orbs",children:[(0,n.jsx)("div",{className:"orb orb-1"}),(0,n.jsx)("div",{className:"orb orb-2"}),(0,n.jsx)("div",{className:"orb orb-3"})]})}function y(){return(0,n.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor",children:(0,n.jsx)("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"})})}function b(){return(0,n.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor",children:(0,n.jsx)("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"})})}function w(){return(0,n.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor",children:(0,n.jsx)("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"})})}let k=[{id:"free",name:"Free",price:0,period:"forever",tagline:"Try it out on a side project",description:"Perfect for exploring AI agent orchestration on personal projects.",limits:{workspaces:1,repos:3,concurrentAgents:2,computeHours:10},features:[{name:"Workspaces",value:"1",included:!0},{name:"Repositories",value:"3",included:!0},{name:"Concurrent agents",value:"2",included:!0},{name:"Compute hours/month",value:"10",included:!0},{name:"Coordinator agents",value:null,included:!1},{name:"Team collaboration",value:null,included:!1},{name:"Priority support",value:null,included:!1},{name:"Audit logs",value:null,included:!1},{name:"SSO/SAML",value:null,included:!1},{name:"SLA guarantee",value:null,included:!1}],cta:"Get Started Free",ctaLink:"/signup",highlighted:!1},{id:"pro",name:"Pro",price:29,period:"/month",tagline:"For professional developers",description:"Unlock coordinator agents and scale your AI workforce.",limits:{workspaces:5,repos:20,concurrentAgents:10,computeHours:100},features:[{name:"Workspaces",value:"5",included:!0},{name:"Repositories",value:"20",included:!0},{name:"Concurrent agents",value:"10",included:!0},{name:"Compute hours/month",value:"100",included:!0},{name:"Coordinator agents",value:"Yes",included:!0},{name:"Team collaboration",value:null,included:!1},{name:"Priority support",value:null,included:!1},{name:"Audit logs",value:null,included:!1},{name:"SSO/SAML",value:null,included:!1},{name:"SLA guarantee",value:null,included:!1}],cta:"Start Free Trial",ctaLink:"/signup?plan=pro",highlighted:!0,badge:"Most Popular"},{id:"team",name:"Team",price:99,period:"/month",tagline:"For growing teams",description:"Collaborate with your team and ship faster together.",limits:{workspaces:20,repos:100,concurrentAgents:50,computeHours:500},features:[{name:"Workspaces",value:"20",included:!0},{name:"Repositories",value:"100",included:!0},{name:"Concurrent agents",value:"50",included:!0},{name:"Compute hours/month",value:"500",included:!0},{name:"Coordinator agents",value:"Yes",included:!0},{name:"Team collaboration",value:"Yes",included:!0},{name:"Priority support",value:"Yes",included:!0},{name:"Audit logs",value:"Yes",included:!0},{name:"SSO/SAML",value:null,included:!1},{name:"SLA guarantee",value:null,included:!1}],cta:"Start Free Trial",ctaLink:"/signup?plan=team",highlighted:!1},{id:"enterprise",name:"Enterprise",price:null,period:"",tagline:"For organizations at scale",description:"Custom solutions with dedicated support and SLA guarantees.",limits:{workspaces:1/0,repos:1/0,concurrentAgents:1/0,computeHours:1/0},features:[{name:"Workspaces",value:"Unlimited",included:!0},{name:"Repositories",value:"Unlimited",included:!0},{name:"Concurrent agents",value:"Unlimited",included:!0},{name:"Compute hours/month",value:"Unlimited",included:!0},{name:"Coordinator agents",value:"Yes",included:!0},{name:"Team collaboration",value:"Yes",included:!0},{name:"Priority support",value:"Dedicated",included:!0},{name:"Audit logs",value:"Yes",included:!0},{name:"SSO/SAML",value:"Yes",included:!0},{name:"SLA guarantee",value:"99.9%",included:!0}],cta:"Contact Sales",ctaLink:"/contact?subject=enterprise",highlighted:!1}],A=[{q:'What counts as a "compute hour"?',a:"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."},{q:"Can I use my own AI API keys?",a:"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."},{q:"What are coordinator agents?",a:"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."},{q:"What happens if I exceed my limits?",a:"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."},{q:"Can I change plans anytime?",a:"Absolutely. Upgrade instantly and get prorated billing. Downgrade takes effect at the end of your billing cycle. No long-term contracts required."},{q:"Do you offer discounts for startups or open source?",a:"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."}];function C(){let[e,s]=(0,i.useState)("monthly"),[a,r]=(0,i.useState)(null);return(0,n.jsxs)("div",{className:"pricing-page",children:[(0,n.jsxs)("div",{className:"pricing-bg",children:[(0,n.jsx)(I,{}),(0,n.jsx)(B,{})]}),(0,n.jsx)(S,{}),(0,n.jsxs)("main",{children:[(0,n.jsx)(F,{billingCycle:e,setBillingCycle:s}),(0,n.jsx)(D,{billingCycle:e}),(0,n.jsx)(P,{}),(0,n.jsx)(L,{openFaq:a,setOpenFaq:r}),(0,n.jsx)(T,{})]}),(0,n.jsx)(R,{})]})}function S(){let[e,s]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{let e=()=>s(window.scrollY>50);return window.addEventListener("scroll",e),()=>window.removeEventListener("scroll",e)},[]),(0,n.jsx)("nav",{className:"nav ".concat(e?"scrolled":""),children:(0,n.jsxs)("div",{className:"nav-inner",children:[(0,n.jsxs)("a",{href:"/",className:"nav-logo",children:[(0,n.jsx)(r.K7,{size:28,withGlow:!0}),(0,n.jsx)("span",{className:"logo-text",children:"Agent Relay"})]}),(0,n.jsxs)("div",{className:"nav-links",children:[(0,n.jsx)("a",{href:"/#demo",children:"Demo"}),(0,n.jsx)("a",{href:"/#features",children:"Features"}),(0,n.jsx)("a",{href:"/pricing",className:"active",children:"Pricing"}),(0,n.jsx)("a",{href:"/docs",className:"nav-docs",children:"Docs"})]}),(0,n.jsxs)("div",{className:"nav-actions",children:[(0,n.jsx)("a",{href:"/login",className:"btn-ghost",children:"Sign In"}),(0,n.jsx)("a",{href:"/signup",className:"btn-primary",children:"Get Started"})]})]})})}function F(e){let{billingCycle:s,setBillingCycle:a}=e;return(0,n.jsx)("section",{className:"pricing-hero",children:(0,n.jsxs)("div",{className:"pricing-hero-content",children:[(0,n.jsxs)("div",{className:"hero-badge",children:[(0,n.jsx)("span",{className:"badge-icon",children:"◈"}),(0,n.jsx)("span",{children:"Simple, transparent pricing"})]}),(0,n.jsxs)("h1",{children:[(0,n.jsx)("span",{className:"title-line",children:"Choose Your"}),(0,n.jsx)("span",{className:"title-line gradient",children:"Mission Control"})]}),(0,n.jsxs)("p",{className:"hero-subtitle",children:["Start free. Scale as you grow. Pay only for what you use.",(0,n.jsx)("br",{}),"All plans include a 14-day free trial."]}),(0,n.jsxs)("div",{className:"billing-toggle",children:[(0,n.jsx)("button",{className:"monthly"===s?"active":"",onClick:()=>a("monthly"),children:"Monthly"}),(0,n.jsxs)("button",{className:"annual"===s?"active":"",onClick:()=>a("annual"),children:["Annual",(0,n.jsx)("span",{className:"save-badge",children:"Save 20%"})]})]})]})})}function D(e){let{billingCycle:s}=e,a=e=>{if(null===e.price)return"Custom";if(0===e.price)return"$0";let a="annual"===s?Math.floor(.8*e.price):e.price;return"$".concat(a)};return(0,n.jsx)("section",{className:"plans-section",children:(0,n.jsx)("div",{className:"plans-grid",children:k.map(e=>(0,n.jsxs)("div",{className:"plan-card ".concat(e.highlighted?"highlighted":""),children:[e.badge&&(0,n.jsx)("div",{className:"plan-badge",children:e.badge}),(0,n.jsxs)("div",{className:"plan-header",children:[(0,n.jsx)("h3",{children:e.name}),(0,n.jsx)("p",{className:"plan-tagline",children:e.tagline})]}),(0,n.jsxs)("div",{className:"plan-price",children:[(0,n.jsx)("span",{className:"price",children:a(e)}),null!==e.price&&e.price>0&&(0,n.jsx)("span",{className:"period",children:"annual"===s?"/mo, billed annually":"/month"}),0===e.price&&(0,n.jsx)("span",{className:"period",children:"forever"})]}),(0,n.jsx)("p",{className:"plan-description",children:e.description}),(0,n.jsxs)("div",{className:"plan-limits",children:[(0,n.jsxs)("div",{className:"limit-item",children:[(0,n.jsx)("span",{className:"limit-icon",children:"◇"}),(0,n.jsx)("span",{className:"limit-value",children:e.limits.workspaces===1/0?"∞":e.limits.workspaces}),(0,n.jsx)("span",{className:"limit-label",children:"workspaces"})]}),(0,n.jsxs)("div",{className:"limit-item",children:[(0,n.jsx)("span",{className:"limit-icon",children:"◈"}),(0,n.jsx)("span",{className:"limit-value",children:e.limits.repos===1/0?"∞":e.limits.repos}),(0,n.jsx)("span",{className:"limit-label",children:"repos"})]}),(0,n.jsxs)("div",{className:"limit-item",children:[(0,n.jsx)("span",{className:"limit-icon",children:"⬡"}),(0,n.jsx)("span",{className:"limit-value",children:e.limits.concurrentAgents===1/0?"∞":e.limits.concurrentAgents}),(0,n.jsx)("span",{className:"limit-label",children:"agents"})]}),(0,n.jsxs)("div",{className:"limit-item",children:[(0,n.jsx)("span",{className:"limit-icon",children:"⏱"}),(0,n.jsx)("span",{className:"limit-value",children:e.limits.computeHours===1/0?"∞":e.limits.computeHours}),(0,n.jsx)("span",{className:"limit-label",children:"hours/mo"})]})]}),(0,n.jsx)("a",{href:e.ctaLink,className:"btn-".concat(e.highlighted?"primary":"ghost"," btn-full"),children:e.cta})]},e.id))})})}function P(){let e=k[0].features.map(e=>e.name);return(0,n.jsxs)("section",{className:"comparison-section",children:[(0,n.jsxs)("div",{className:"section-header",children:[(0,n.jsx)("span",{className:"section-tag",children:"Compare Plans"}),(0,n.jsx)("h2",{children:"Feature Comparison"}),(0,n.jsx)("p",{children:"See exactly what's included in each plan."})]}),(0,n.jsx)("div",{className:"comparison-table-wrapper",children:(0,n.jsxs)("table",{className:"comparison-table",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{className:"feature-col",children:"Feature"}),k.map(e=>(0,n.jsx)("th",{className:e.highlighted?"highlighted":"",children:e.name},e.id))]})}),(0,n.jsx)("tbody",{children:e.map((e,s)=>(0,n.jsxs)("tr",{children:[(0,n.jsx)("td",{className:"feature-col",children:e}),k.map(e=>{let a=e.features[s];return(0,n.jsx)("td",{className:e.highlighted?"highlighted":"",children:a.included?a.value?(0,n.jsx)("span",{className:"feature-value",children:a.value}):(0,n.jsx)("span",{className:"check",children:"✓"}):(0,n.jsx)("span",{className:"dash",children:"—"})},e.id)})]},e))})]})})]})}function L(e){let{openFaq:s,setOpenFaq:a}=e;return(0,n.jsxs)("section",{className:"faq-section",children:[(0,n.jsxs)("div",{className:"section-header",children:[(0,n.jsx)("span",{className:"section-tag",children:"FAQ"}),(0,n.jsx)("h2",{children:"Questions? Answers."}),(0,n.jsx)("p",{children:"Everything you need to know about Agent Relay pricing."})]}),(0,n.jsx)("div",{className:"faq-grid",children:A.map((e,i)=>(0,n.jsxs)("div",{className:"faq-item ".concat(s===i?"open":""),onClick:()=>a(s===i?null:i),children:[(0,n.jsxs)("div",{className:"faq-question",children:[(0,n.jsx)("span",{children:e.q}),(0,n.jsx)("span",{className:"faq-toggle",children:s===i?"−":"+"})]}),(0,n.jsx)("div",{className:"faq-answer",children:(0,n.jsx)("p",{children:e.a})})]},i))})]})}function T(){return(0,n.jsx)("section",{className:"cta-section",children:(0,n.jsxs)("div",{className:"cta-card",children:[(0,n.jsxs)("div",{className:"cta-content",children:[(0,n.jsx)("h2",{children:"Ready to orchestrate?"}),(0,n.jsx)("p",{children:"Start free and upgrade when you need more power."}),(0,n.jsxs)("div",{className:"cta-buttons",children:[(0,n.jsxs)("a",{href:"/signup",className:"btn-primary btn-large",children:[(0,n.jsx)("span",{children:"Get Started Free"}),(0,n.jsx)("span",{className:"btn-arrow",children:"→"})]}),(0,n.jsx)("a",{href:"/contact",className:"btn-ghost btn-large",children:"Talk to Sales"})]})]}),(0,n.jsx)("div",{className:"cta-visual",children:(0,n.jsxs)("div",{className:"orbit",children:[(0,n.jsx)("div",{className:"orbit-ring ring-1"}),(0,n.jsx)("div",{className:"orbit-ring ring-2"}),(0,n.jsx)("div",{className:"orbit-ring ring-3"}),(0,n.jsx)("div",{className:"orbit-center",children:(0,n.jsx)(r.K7,{size:40,withGlow:!0})}),(0,n.jsx)("div",{className:"orbit-dot dot-1",children:"◈"}),(0,n.jsx)("div",{className:"orbit-dot dot-2",children:"⬡"}),(0,n.jsx)("div",{className:"orbit-dot dot-3",children:"◇"})]})})]})})}function R(){return(0,n.jsxs)("footer",{className:"footer",children:[(0,n.jsxs)("div",{className:"footer-inner",children:[(0,n.jsxs)("div",{className:"footer-brand",children:[(0,n.jsxs)("a",{href:"/",className:"footer-logo",children:[(0,n.jsx)(r.K7,{size:24,withGlow:!0}),(0,n.jsx)("span",{className:"logo-text",children:"Agent Relay"})]}),(0,n.jsx)("p",{children:"Orchestrate AI agents like a symphony."})]}),(0,n.jsxs)("div",{className:"footer-links",children:[(0,n.jsxs)("div",{className:"footer-column",children:[(0,n.jsx)("h4",{children:"Product"}),(0,n.jsx)("a",{href:"/#features",children:"Features"}),(0,n.jsx)("a",{href:"/pricing",children:"Pricing"}),(0,n.jsx)("a",{href:"/docs",children:"Documentation"}),(0,n.jsx)("a",{href:"/changelog",children:"Changelog"})]}),(0,n.jsxs)("div",{className:"footer-column",children:[(0,n.jsx)("h4",{children:"Company"}),(0,n.jsx)("a",{href:"/about",children:"About"}),(0,n.jsx)("a",{href:"/blog",children:"Blog"}),(0,n.jsx)("a",{href:"/careers",children:"Careers"}),(0,n.jsx)("a",{href:"/contact",children:"Contact"})]}),(0,n.jsxs)("div",{className:"footer-column",children:[(0,n.jsx)("h4",{children:"Legal"}),(0,n.jsx)("a",{href:"/privacy",children:"Privacy"}),(0,n.jsx)("a",{href:"/terms",children:"Terms"}),(0,n.jsx)("a",{href:"/security",children:"Security"})]})]})]}),(0,n.jsxs)("div",{className:"footer-bottom",children:[(0,n.jsx)("p",{children:"\xa9 2025 Agent Relay. All rights reserved."}),(0,n.jsxs)("div",{className:"social-links",children:[(0,n.jsx)("a",{href:"https://github.com/agent-relay","aria-label":"GitHub",children:(0,n.jsx)(O,{})}),(0,n.jsx)("a",{href:"https://twitter.com/agentrelay","aria-label":"Twitter",children:(0,n.jsx)(z,{})}),(0,n.jsx)("a",{href:"https://discord.gg/agentrelay","aria-label":"Discord",children:(0,n.jsx)(E,{})})]})]})]})}function I(){return(0,n.jsxs)("div",{className:"grid-bg",children:[(0,n.jsx)("div",{className:"grid-lines"}),(0,n.jsx)("div",{className:"grid-glow"})]})}function B(){return(0,n.jsxs)("div",{className:"glow-orbs",children:[(0,n.jsx)("div",{className:"orb orb-1"}),(0,n.jsx)("div",{className:"orb orb-2"})]})}function O(){return(0,n.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor",children:(0,n.jsx)("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"})})}function z(){return(0,n.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor",children:(0,n.jsx)("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"})})}function E(){return(0,n.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor",children:(0,n.jsx)("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"})})}},3655:function(){}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[900],{9116:function(e,t,r){r.d(t,{hi:function(){return s}});let s={async sendMessage(e){try{let t=await fetch("".concat("","/api/send"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),r=await t.json();if(t.ok&&r.success)return{success:!0};return{success:!1,error:r.error||"Failed to send message"}}catch(e){return{success:!1,error:"Network error"}}},async uploadAttachment(e){try{let t,r,s;e instanceof File?(t=e.name,r=e.type,s=await new Promise((t,r)=>{let s=new FileReader;s.onload=()=>t(s.result),s.onerror=r,s.readAsDataURL(e)})):(t=e.filename,r=e.mimeType,s=e.data);let a=await fetch("".concat("","/api/upload"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({filename:t,mimeType:r,data:s})}),c=await a.json();if(a.ok&&c.success&&c.attachment)return{success:!0,data:{attachment:c.attachment}};return{success:!1,error:c.error||"Failed to upload attachment"}}catch(e){return{success:!1,error:"Network error"}}},async spawnAgent(e){try{let t=await fetch("".concat("","/api/spawn"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});return await t.json()}catch(t){return{success:!1,name:e.name,error:"Network error"}}},async getSpawnedAgents(){try{let e=await fetch("".concat("","/api/spawned")),t=await e.json();if(e.ok&&t.success)return{success:!0,data:{agents:t.agents||[]}};return{success:!1,error:t.error}}catch(e){return{success:!1,error:"Network error"}}},async releaseAgent(e){try{let t=await fetch("".concat("","/api/spawned/").concat(encodeURIComponent(e)),{method:"DELETE"}),r=await t.json();if(t.ok&&r.success)return{success:!0};return{success:!1,error:r.error}}catch(e){return{success:!1,error:"Network error"}}},async getData(){try{let e=await fetch("".concat("","/api/data")),t=await e.json();if(e.ok)return{success:!0,data:t};return{success:!1,error:"Failed to fetch data"}}catch(e){return{success:!1,error:"Network error"}}},async getBridgeData(){try{let e=await fetch("".concat("","/api/bridge")),t=await e.json();if(e.ok)return{success:!0,data:t};return{success:!1,error:"Failed to fetch bridge data"}}catch(e){return{success:!1,error:"Network error"}}},async getMetrics(){try{let e=await fetch("".concat("","/api/metrics")),t=await e.json();if(e.ok)return{success:!0,data:t};return{success:!1,error:"Failed to fetch metrics"}}catch(e){return{success:!1,error:"Network error"}}},async getHistorySessions(e){try{let t=new URLSearchParams;(null==e?void 0:e.agent)&&t.set("agent",e.agent),(null==e?void 0:e.since)&&t.set("since",String(e.since)),(null==e?void 0:e.limit)&&t.set("limit",String(e.limit));let r=await fetch("".concat("","/api/history/sessions?").concat(t)),s=await r.json();if(r.ok)return{success:!0,data:s};return{success:!1,error:"Failed to fetch sessions"}}catch(e){return{success:!1,error:"Network error"}}},async getHistoryMessages(e){try{let t=new URLSearchParams;(null==e?void 0:e.from)&&t.set("from",e.from),(null==e?void 0:e.to)&&t.set("to",e.to),(null==e?void 0:e.thread)&&t.set("thread",e.thread),(null==e?void 0:e.since)&&t.set("since",String(e.since)),(null==e?void 0:e.limit)&&t.set("limit",String(e.limit)),(null==e?void 0:e.order)&&t.set("order",e.order),(null==e?void 0:e.search)&&t.set("search",e.search);let r=await fetch("".concat("","/api/history/messages?").concat(t)),s=await r.json();if(r.ok)return{success:!0,data:s};return{success:!1,error:"Failed to fetch messages"}}catch(e){return{success:!1,error:"Network error"}}},async getHistoryConversations(){try{let e=await fetch("".concat("","/api/history/conversations")),t=await e.json();if(e.ok)return{success:!0,data:t};return{success:!1,error:"Failed to fetch conversations"}}catch(e){return{success:!1,error:"Network error"}}},async getHistoryMessage(e){try{let t=await fetch("".concat("","/api/history/message/").concat(encodeURIComponent(e))),r=await t.json();if(t.ok)return{success:!0,data:r};return{success:!1,error:r.error||"Failed to fetch message"}}catch(e){return{success:!1,error:"Network error"}}},async getHistoryStats(){try{let e=await fetch("".concat("","/api/history/stats")),t=await e.json();if(e.ok)return{success:!0,data:t};return{success:!1,error:"Failed to fetch stats"}}catch(e){return{success:!1,error:"Network error"}}},async searchFiles(e){try{let t=new URLSearchParams;(null==e?void 0:e.query)&&t.set("q",e.query),(null==e?void 0:e.limit)&&t.set("limit",String(e.limit));let r=await fetch("".concat("","/api/files?").concat(t)),s=await r.json();if(r.ok)return{success:!0,data:s};return{success:!1,error:"Failed to search files"}}catch(e){return{success:!1,error:"Network error"}}}}},637:function(e,t,r){r.d(t,{GW:function(){return o},hP:function(){return i},oU:function(){return f},yh:function(){return c}});let s={backend:{primary:"#1264a3",light:"#e8f4fd",dark:"#0d4f82",text:"#ffffff"},frontend:{primary:"#7c3aed",light:"#f3e8ff",dark:"#5b21b6",text:"#ffffff"},infra:{primary:"#ea580c",light:"#fff7ed",dark:"#c2410c",text:"#ffffff"},lead:{primary:"#2bac76",light:"#ecfdf5",dark:"#059669",text:"#ffffff"},test:{primary:"#0d9488",light:"#f0fdfa",dark:"#0f766e",text:"#ffffff"},data:{primary:"#dc2626",light:"#fef2f2",dark:"#b91c1c",text:"#ffffff"},api:{primary:"#2563eb",light:"#eff6ff",dark:"#1d4ed8",text:"#ffffff"},worker:{primary:"#9333ea",light:"#faf5ff",dark:"#7e22ce",text:"#ffffff"},monitor:{primary:"#0891b2",light:"#ecfeff",dark:"#0e7490",text:"#ffffff"},security:{primary:"#be123c",light:"#fff1f2",dark:"#9f1239",text:"#ffffff"}},a=[{primary:"#6366f1",light:"#eef2ff",dark:"#4f46e5",text:"#ffffff"},{primary:"#ec4899",light:"#fdf2f8",dark:"#db2777",text:"#ffffff"},{primary:"#14b8a6",light:"#f0fdfa",dark:"#0d9488",text:"#ffffff"},{primary:"#f59e0b",light:"#fffbeb",dark:"#d97706",text:"#000000"},{primary:"#8b5cf6",light:"#f5f3ff",dark:"#7c3aed",text:"#ffffff"},{primary:"#06b6d4",light:"#ecfeff",dark:"#0891b2",text:"#ffffff"},{primary:"#f43f5e",light:"#fff1f2",dark:"#e11d48",text:"#ffffff"},{primary:"#84cc16",light:"#f7fee7",dark:"#65a30d",text:"#000000"}],c={online:"#22c55e",offline:"#6b7280",busy:"#eab308",processing:"#6366f1",error:"#ef4444",attention:"#ef4444"};function n(e){return e.toLowerCase().split("-").filter(Boolean)}function f(e){return n(e)[0]||e.toLowerCase()}function o(e){let t=f(e);return t in s?s[t]:a[function(e){let t=0;for(let r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r),t&=t;return Math.abs(t)}(t)%a.length]}function i(e){let t=n(e);return 0===t.length?e.substring(0,2).toUpperCase():t.length>=2?(t[0][0]+t[1][0]).toUpperCase():t[0].substring(0,2).toUpperCase()}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[191],{3561:function(n,u,e){Promise.resolve().then(e.bind(e,7047))},7047:function(n,u,e){"use strict";e.r(u),e.d(u,{default:function(){return c}});var t=e(7437),r=e(693);function c(){return(0,t.jsx)(r.g,{})}}},function(n){n.O(0,[713,900,693,971,117,744],function(){return n(n.s=3561)}),_N_E=n.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[811],{5924:function(e,t,s){Promise.resolve().then(s.bind(s,8615))},8615:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return c}});var r=s(7437),a=s(2265),n=s(7648),i=s(9116),l=s(637);function c(){let[e,t]=(0,a.useState)("conversations"),[s,l]=(0,a.useState)([]),[c,h]=(0,a.useState)([]),[p,g]=(0,a.useState)([]),[k,C]=(0,a.useState)(null),[S,M]=(0,a.useState)(!0),[B,W]=(0,a.useState)(null),[H,D]=(0,a.useState)(""),[A,L]=(0,a.useState)(""),[E,T]=(0,a.useState)(null);(0,a.useEffect)(()=>{(async()=>{let e=await i.hi.getHistoryStats();e.success&&e.data&&C(e.data)})()},[]),(0,a.useEffect)(()=>{(async()=>{M(!0),W(null);try{if("conversations"===e){let e=await i.hi.getHistoryConversations();e.success&&e.data?l(e.data.conversations):W(e.error||"Failed to fetch conversations")}else if("sessions"===e){let e=await i.hi.getHistorySessions({agent:A||void 0,limit:100});e.success&&e.data?h(e.data.sessions):W(e.error||"Failed to fetch sessions")}else if("messages"===e){let e={limit:200,order:"desc"};if(H&&(e.search=H),E){let[r,a]=E.participants,n=await i.hi.getHistoryMessages({...e,from:r,to:a}),l=await i.hi.getHistoryMessages({...e,from:a,to:r});if(n.success&&l.success){var t,s;let e=[...(null===(t=n.data)||void 0===t?void 0:t.messages)||[],...(null===(s=l.data)||void 0===s?void 0:s.messages)||[]].sort((e,t)=>new Date(t.timestamp).getTime()-new Date(e.timestamp).getTime());g(e)}}else{let t=await i.hi.getHistoryMessages(e);t.success&&t.data?g(t.data.messages):W(t.error||"Failed to fetch messages")}}}catch(e){W("Failed to load data")}finally{M(!1)}})()},[e,A,H,E]);let _=(0,a.useCallback)(e=>{T(e),t("messages")},[]),F=(0,a.useCallback)(()=>{T(null),t("conversations")},[]);return(0,r.jsxs)("div",{className:"min-h-screen bg-bg-primary text-text-primary font-sans",children:[(0,r.jsx)("header",{className:"sticky top-0 z-50 bg-sidebar-bg border-b border-sidebar-border px-4 md:px-8 py-4",children:(0,r.jsxs)("div",{className:"max-w-[1400px] mx-auto flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center gap-4",children:[(0,r.jsxs)(n.default,{href:"/",className:"flex items-center gap-2 text-text-muted text-sm font-medium px-3 py-2 rounded-md transition-all hover:text-accent hover:bg-accent/10",children:[(0,r.jsx)(f,{}),(0,r.jsx)("span",{className:"hidden sm:inline",children:"Dashboard"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"w-8 h-8 bg-gradient-to-br from-accent/80 to-accent rounded-lg flex items-center justify-center border border-accent/30",children:(0,r.jsx)(j,{})}),(0,r.jsxs)("div",{className:"text-lg font-semibold tracking-tight",children:["Conversation ",(0,r.jsx)("span",{className:"text-accent",children:"History"})]})]})]}),k&&(0,r.jsxs)("div",{className:"hidden md:flex items-center gap-4 text-sm",children:[(0,r.jsx)(d,{label:"Messages",value:k.messageCount}),(0,r.jsx)(d,{label:"Sessions",value:k.sessionCount}),(0,r.jsx)(d,{label:"Agents",value:k.uniqueAgents})]})]})}),(0,r.jsxs)("main",{className:"max-w-[1400px] mx-auto px-4 md:px-8 py-6",children:[(0,r.jsxs)("div",{className:"flex flex-col md:flex-row md:items-center gap-4 mb-6",children:[(0,r.jsxs)("div",{className:"flex gap-1 bg-bg-secondary rounded-lg p-1 border border-border",children:[(0,r.jsxs)(o,{active:"conversations"===e,onClick:()=>{T(null),t("conversations")},children:[(0,r.jsx)(v,{}),"Conversations"]}),(0,r.jsxs)(o,{active:"sessions"===e,onClick:()=>t("sessions"),children:[(0,r.jsx)(y,{}),"Sessions"]}),(0,r.jsxs)(o,{active:"messages"===e,onClick:()=>t("messages"),children:[(0,r.jsx)(N,{}),"Messages"]})]}),(0,r.jsxs)("div",{className:"flex-1 flex items-center gap-3",children:["messages"===e&&(0,r.jsx)("div",{className:"flex-1 max-w-md",children:(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(b,{className:"absolute left-3 top-1/2 -translate-y-1/2 text-text-muted"}),(0,r.jsx)("input",{type:"text",placeholder:"Search messages...",value:H,onChange:e=>D(e.target.value),className:"w-full pl-10 pr-4 py-2.5 bg-bg-secondary border border-border rounded-lg text-sm text-text-primary placeholder:text-text-muted focus:outline-none focus:border-accent transition-colors"})]})}),"sessions"===e&&(0,r.jsx)("div",{className:"flex-1 max-w-md",children:(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(b,{className:"absolute left-3 top-1/2 -translate-y-1/2 text-text-muted"}),(0,r.jsx)("input",{type:"text",placeholder:"Filter by agent name...",value:A,onChange:e=>L(e.target.value),className:"w-full pl-10 pr-4 py-2.5 bg-bg-secondary border border-border rounded-lg text-sm text-text-primary placeholder:text-text-muted focus:outline-none focus:border-accent transition-colors"})]})}),E&&(0,r.jsxs)("button",{onClick:F,className:"flex items-center gap-2 px-4 py-2 text-sm text-text-muted hover:text-text-primary bg-bg-secondary border border-border rounded-lg transition-colors hover:bg-bg-tertiary",children:[(0,r.jsx)(f,{}),"Back to conversations"]})]})]}),S?(0,r.jsx)("div",{className:"flex items-center justify-center h-[60vh]",children:(0,r.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,r.jsx)("div",{className:"w-10 h-10 border-2 border-border border-t-accent rounded-full animate-spin"}),(0,r.jsx)("p",{className:"text-text-muted text-sm",children:"Loading history..."})]})}):B?(0,r.jsx)("div",{className:"flex items-center justify-center h-[60vh]",children:(0,r.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,r.jsx)("div",{className:"w-12 h-12 rounded-full bg-error/10 flex items-center justify-center",children:(0,r.jsx)(w,{})}),(0,r.jsx)("p",{className:"text-text-secondary",children:B}),(0,r.jsx)("button",{onClick:()=>window.location.reload(),className:"px-5 py-2.5 bg-accent text-white rounded-lg text-sm font-medium transition-colors hover:bg-accent-hover",children:"Retry"})]})}):"conversations"===e?(0,r.jsx)(x,{conversations:s,onConversationClick:_}):"sessions"===e?(0,r.jsx)(m,{sessions:c}):(0,r.jsx)(u,{messages:p,conversationTitle:E?"".concat(E.participants[0]," & ").concat(E.participants[1]):void 0})]})]})}function o(e){let{active:t,onClick:s,children:a}=e;return(0,r.jsx)("button",{onClick:s,className:"flex items-center gap-2 px-4 py-2 text-sm font-medium rounded-md transition-colors ".concat(t?"bg-accent text-white":"text-text-muted hover:text-text-primary hover:bg-bg-tertiary"),children:a})}function d(e){let{label:t,value:s}=e;return(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 bg-bg-secondary/50 border border-border/50 rounded-lg",children:[(0,r.jsxs)("span",{className:"text-text-muted text-xs",children:[t,":"]}),(0,r.jsx)("span",{className:"text-accent font-mono font-semibold",children:s})]})}function x(e){let{conversations:t,onConversationClick:s}=e;return 0===t.length?(0,r.jsx)(p,{icon:(0,r.jsx)(v,{className:"w-12 h-12"}),title:"No conversations yet",description:"Start messaging between agents to see conversation history here."}):(0,r.jsx)("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:t.map((e,t)=>{let[a,n]=e.participants,i=(0,l.GW)(a),c=(0,l.GW)(n);return(0,r.jsxs)("div",{onClick:()=>s(e),className:"p-5 bg-bg-secondary border border-border rounded-xl cursor-pointer transition-all hover:border-accent/50 hover:bg-bg-tertiary group",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 mb-3",children:[(0,r.jsxs)("div",{className:"flex -space-x-2",children:[(0,r.jsx)("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center text-xs font-bold border-2 border-bg-secondary",style:{backgroundColor:i.primary,color:i.text},children:(0,l.hP)(a)}),(0,r.jsx)("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center text-xs font-bold border-2 border-bg-secondary",style:{backgroundColor:c.primary,color:c.text},children:(0,l.hP)(n)})]}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"font-semibold text-text-primary truncate",children:[a," & ",n]}),(0,r.jsxs)("div",{className:"text-xs text-text-muted",children:[e.messageCount," messages"]})]}),(0,r.jsx)("div",{className:"text-xs text-text-muted",children:g(e.lastTimestamp)})]}),(0,r.jsx)("p",{className:"text-sm text-text-muted truncate",children:e.lastMessage}),(0,r.jsxs)("div",{className:"mt-3 flex items-center gap-2 text-xs text-accent opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,r.jsx)("span",{children:"View conversation"}),(0,r.jsx)(k,{})]})]},t)})})}function m(e){let{sessions:t}=e;return 0===t.length?(0,r.jsx)(p,{icon:(0,r.jsx)(y,{className:"w-12 h-12"}),title:"No sessions found",description:"Agent sessions will appear here when agents connect."}):(0,r.jsx)("div",{className:"bg-bg-secondary border border-border rounded-xl overflow-hidden",children:(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full min-w-[700px]",children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{className:"bg-bg-tertiary border-b border-border",children:[(0,r.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Agent"}),(0,r.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Status"}),(0,r.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"CLI"}),(0,r.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Messages"}),(0,r.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Started"}),(0,r.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Duration"})]})}),(0,r.jsx)("tbody",{children:t.map(e=>{let t=(0,l.GW)(e.agentName);return(0,r.jsxs)("tr",{className:"border-b border-border/50 last:border-0 transition-colors hover:bg-bg-hover",children:[(0,r.jsx)("td",{className:"py-3 px-4",children:(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"w-8 h-8 rounded-md flex items-center justify-center text-xs font-semibold",style:{backgroundColor:t.primary,color:t.text},children:(0,l.hP)(e.agentName)}),(0,r.jsx)("span",{className:"font-medium text-text-primary",children:e.agentName})]})}),(0,r.jsx)("td",{className:"py-3 px-4",children:(0,r.jsx)(h,{isActive:e.isActive,closedBy:e.closedBy})}),(0,r.jsx)("td",{className:"py-3 px-4",children:e.cli&&(0,r.jsx)("span",{className:"text-xs px-2 py-1 bg-bg-tertiary text-text-muted rounded font-mono",children:e.cli})}),(0,r.jsx)("td",{className:"py-3 px-4 font-mono text-sm text-accent",children:e.messageCount}),(0,r.jsx)("td",{className:"py-3 px-4 text-sm text-text-muted",children:new Date(e.startedAt).toLocaleString()}),(0,r.jsx)("td",{className:"py-3 px-4 font-mono text-sm text-text-muted",children:e.duration})]},e.id)})})]})})})}function h(e){let{isActive:t,closedBy:s}=e;if(t)return(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded-full bg-success/15 text-success",children:[(0,r.jsx)("span",{className:"w-1.5 h-1.5 bg-success rounded-full animate-pulse"}),"Active"]});let a={agent:{label:"Closed",className:"bg-text-muted/10 text-text-muted"},disconnect:{label:"Disconnected",className:"bg-warning/15 text-warning"},error:{label:"Error",className:"bg-error/15 text-error"}},n=s?a[s]:a.agent;return(0,r.jsx)("span",{className:"inline-flex items-center px-2.5 py-1 text-xs font-medium rounded-full ".concat(n.className),children:n.label})}function u(e){let{messages:t,conversationTitle:s}=e;return 0===t.length?(0,r.jsx)(p,{icon:(0,r.jsx)(N,{className:"w-12 h-12"}),title:"No messages found",description:s?"No messages in this conversation yet.":"Try adjusting your search or filters."}):(0,r.jsxs)("div",{className:"space-y-4",children:[s&&(0,r.jsx)("h3",{className:"text-lg font-semibold text-text-primary mb-4",children:s}),t.map(e=>{let t=(0,l.GW)(e.from);return(0,r.jsx)("div",{className:"p-4 bg-bg-secondary border border-border rounded-xl transition-colors hover:border-border-dark",children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("div",{className:"shrink-0 w-9 h-9 rounded-lg flex items-center justify-center text-xs font-bold",style:{backgroundColor:t.primary,color:t.text},children:(0,l.hP)(e.from)}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center flex-wrap gap-2 mb-2",children:[(0,r.jsx)("span",{className:"font-semibold text-accent",children:e.from}),(0,r.jsx)("span",{className:"text-text-muted",children:"to"}),(0,r.jsx)("span",{className:"font-medium text-text-primary",children:"*"===e.to?"Everyone":e.to}),e.isBroadcast&&(0,r.jsx)("span",{className:"text-[10px] px-2 py-0.5 bg-warning/15 text-warning rounded-full font-medium",children:"Broadcast"}),e.isUrgent&&(0,r.jsx)("span",{className:"text-[10px] px-2 py-0.5 bg-error/15 text-error rounded-full font-medium",children:"Urgent"}),e.thread&&(0,r.jsx)("span",{className:"text-[10px] px-2 py-0.5 bg-accent/15 text-accent rounded-full font-medium",children:e.thread}),(0,r.jsx)("span",{className:"text-xs text-text-muted ml-auto",children:g(e.timestamp)})]}),(0,r.jsx)("p",{className:"text-sm text-text-primary whitespace-pre-wrap break-words",children:e.content})]})]})},e.id)})]})}function p(e){let{icon:t,title:s,description:a}=e;return(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-20 text-center",children:[(0,r.jsx)("div",{className:"text-text-muted opacity-50 mb-4",children:t}),(0,r.jsx)("h3",{className:"text-lg font-semibold text-text-primary mb-2",children:s}),(0,r.jsx)("p",{className:"text-sm text-text-muted max-w-md",children:a})]})}function g(e){let t=new Date(e),s=new Date().getTime()-t.getTime(),r=Math.floor(s/6e4),a=Math.floor(s/36e5),n=Math.floor(s/864e5);return r<1?"just now":r<60?"".concat(r,"m ago"):a<24?"".concat(a,"h ago"):n<7?"".concat(n,"d ago"):t.toLocaleDateString()}function f(){return(0,r.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,r.jsx)("path",{d:"M19 12H5M12 19l-7-7 7-7"})})}function j(){return(0,r.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"2",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,r.jsx)("polyline",{points:"12 6 12 12 16 14"})]})}function b(e){let{className:t}=e;return(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:t,children:[(0,r.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,r.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]})}function v(e){let{className:t}=e;return(0,r.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:t,children:(0,r.jsx)("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})})}function y(e){let{className:t}=e;return(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:t,children:[(0,r.jsx)("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",ry:"2"}),(0,r.jsx)("line",{x1:"16",y1:"2",x2:"16",y2:"6"}),(0,r.jsx)("line",{x1:"8",y1:"2",x2:"8",y2:"6"}),(0,r.jsx)("line",{x1:"3",y1:"10",x2:"21",y2:"10"})]})}function N(e){let{className:t}=e;return(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:t,children:[(0,r.jsx)("path",{d:"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"}),(0,r.jsx)("polyline",{points:"22,6 12,13 2,6"})]})}function w(){return(0,r.jsx)("svg",{className:"w-6 h-6 text-error",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})})}function k(){return(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[(0,r.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,r.jsx)("polyline",{points:"12 5 19 12 12 19"})]})}}},function(e){e.O(0,[648,900,971,117,744],function(){return e(e.s=5924)}),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{2681:function(n,e,u){Promise.resolve().then(u.t.bind(u,7960,23))},7960:function(){}},function(n){n.O(0,[587,971,117,744],function(){return n(n.s=2681)}),_N_E=n.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[860],{3047:function(e,t,s){Promise.resolve().then(s.bind(s,5804))},5804:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return o}});var n=s(7437),r=s(2265),a=s(7648);let l=["#4a9eff","#b388ff","#ff9e40","#00e676","#ff5c5c","#00ffc8"];function c(e){return e<60?"".concat(e,"s"):e<3600?"".concat(Math.floor(e/60),"m"):e<86400?"".concat(Math.floor(e/3600),"h ").concat(Math.floor(e%3600/60),"m"):"".concat(Math.floor(e/86400),"d ").concat(Math.floor(e%86400/3600),"h")}function i(e){return new Date(e).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function o(){var e,t,s,l;let[o,f]=(0,r.useState)(null),[j,v]=(0,r.useState)(null),[N,y]=(0,r.useState)(!0);if((0,r.useEffect)(()=>{let e=async()=>{try{let e=await fetch("/api/metrics");if(!e.ok)throw Error("Failed to fetch metrics");let t=await e.json();f(t),v(null)}catch(e){v(e instanceof Error?e.message:"Failed to load metrics")}finally{y(!1)}};e();let t=setInterval(e,5e3);return()=>clearInterval(t)},[]),N)return(0,n.jsx)("div",{className:"min-h-screen bg-bg-primary text-text-primary font-sans",children:(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center h-screen gap-4",children:[(0,n.jsx)("div",{className:"w-8 h-8 border-2 border-border border-t-accent rounded-full animate-spin"}),(0,n.jsx)("p",{className:"text-text-muted text-sm",children:"Loading metrics..."})]})});if(j||!o)return(0,n.jsx)("div",{className:"min-h-screen bg-bg-primary text-text-primary font-sans",children:(0,n.jsxs)("div",{className:"flex flex-col items-center justify-center h-screen gap-4",children:[(0,n.jsx)("div",{className:"w-12 h-12 rounded-full bg-error/10 flex items-center justify-center",children:(0,n.jsx)("svg",{className:"w-6 h-6 text-error",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,n.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})})}),(0,n.jsx)("p",{className:"text-text-secondary",children:j||"No metrics available"}),(0,n.jsx)("button",{onClick:()=>window.location.reload(),className:"px-5 py-2.5 bg-accent text-white rounded-lg text-sm font-medium transition-colors hover:bg-accent-hover",children:"Retry"})]})});let w=(null!==(s=null===(e=o.sessions)||void 0===e?void 0:e.errorRate)&&void 0!==s?s:0)<=1?"healthy":(null!==(l=null===(t=o.sessions)||void 0===t?void 0:t.errorRate)&&void 0!==l?l:0)<=5?"warning":"critical";return(0,n.jsxs)("div",{className:"min-h-screen bg-bg-primary text-text-primary font-sans",children:[(0,n.jsx)("header",{className:"sticky top-0 z-50 bg-sidebar-bg border-b border-sidebar-border px-4 md:px-8 py-4",children:(0,n.jsxs)("div",{className:"max-w-[1400px] mx-auto flex items-center justify-between",children:[(0,n.jsxs)("div",{className:"flex items-center gap-4",children:[(0,n.jsxs)(a.default,{href:"/",className:"flex items-center gap-2 text-text-muted text-sm font-medium px-3 py-2 rounded-md transition-all hover:text-accent hover:bg-accent/10",children:[(0,n.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,n.jsx)("path",{d:"M19 12H5M12 19l-7-7 7-7"})}),(0,n.jsx)("span",{className:"hidden sm:inline",children:"Dashboard"})]}),(0,n.jsxs)("div",{className:"flex items-center gap-3",children:[(0,n.jsx)("div",{className:"w-8 h-8 bg-gradient-to-br from-accent/80 to-accent rounded-lg flex items-center justify-center border border-accent/30",children:(0,n.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"white",strokeWidth:"2",children:[(0,n.jsx)("path",{d:"M3 3v18h18"}),(0,n.jsx)("path",{d:"M18 17V9"}),(0,n.jsx)("path",{d:"M13 17V5"}),(0,n.jsx)("path",{d:"M8 17v-3"})]})}),(0,n.jsxs)("div",{className:"text-lg font-semibold tracking-tight",children:["Agent ",(0,n.jsx)("span",{className:"text-accent",children:"Metrics"})]})]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 bg-success/10 border border-success/30 rounded-full",children:[(0,n.jsx)("span",{className:"w-2 h-2 bg-success rounded-full animate-pulse shadow-[0_0_8px_rgba(43,172,118,0.5)]"}),(0,n.jsx)("span",{className:"text-success text-xs font-semibold font-mono tracking-wide",children:"LIVE"})]})]})}),(0,n.jsxs)("main",{className:"max-w-[1400px] mx-auto px-4 md:px-8 py-6",children:[(0,n.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mb-6",children:[(0,n.jsx)(d,{label:"Total Agents",value:o.totalAgents,subtext:"".concat(o.onlineAgents," online / ").concat(o.offlineAgents," offline"),accent:"cyan"}),(0,n.jsx)(d,{label:"Online Now",value:o.onlineAgents,subtext:"".concat(o.totalAgents>0?Math.round(o.onlineAgents/o.totalAgents*100):0,"% availability"),accent:"green"}),(0,n.jsx)(d,{label:"Total Messages",value:o.totalMessages.toLocaleString(),subtext:"all time",accent:"purple"}),(0,n.jsx)(d,{label:"Avg. Throughput",value:o.throughput.avgMessagesPerMinute,subtext:"messages / minute",accent:"orange"})]}),(0,n.jsxs)("section",{className:"mb-6",children:[(0,n.jsx)(x,{title:"Message Throughput"}),(0,n.jsx)("div",{className:"bg-bg-secondary border border-border rounded-lg p-6",children:(0,n.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6",children:[(0,n.jsx)(m,{value:o.throughput.messagesLastMinute,label:"Last Minute",max:10}),(0,n.jsx)(m,{value:o.throughput.messagesLastHour,label:"Last Hour",max:100}),(0,n.jsx)(m,{value:o.throughput.messagesLast24Hours,label:"Last 24 Hours",max:1e3}),(0,n.jsx)(m,{value:o.throughput.avgMessagesPerMinute,label:"Avg / Min",max:5})]})})]}),o.sessions&&(0,n.jsxs)("section",{className:"mb-6",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,n.jsx)(x,{title:"Session Lifecycle"}),(0,n.jsx)(h,{rate:o.sessions.errorRate||0,status:w})]}),(0,n.jsxs)("div",{className:"bg-bg-secondary border border-border rounded-lg p-6",children:[(0,n.jsxs)("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-5 mb-6",children:[(0,n.jsx)(u,{value:o.sessions.totalSessions,label:"Total Sessions",accent:"purple"}),(0,n.jsx)(u,{value:o.sessions.activeSessions,label:"Active",accent:"blue"}),(0,n.jsx)(u,{value:o.sessions.closedByAgent,label:"Clean Close",accent:"green"}),(0,n.jsx)(u,{value:o.sessions.closedByDisconnect,label:"Disconnect",accent:"orange"}),(0,n.jsx)(u,{value:o.sessions.closedByError,label:"Error",accent:"red"})]}),o.sessions.recentSessions&&o.sessions.recentSessions.length>0&&(0,n.jsx)("div",{className:"overflow-x-auto -mx-6 px-6",children:(0,n.jsxs)("table",{className:"w-full min-w-[500px]",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{className:"border-b border-border",children:[(0,n.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Agent"}),(0,n.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Status"}),(0,n.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Messages"}),(0,n.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Started"}),(0,n.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Duration"})]})}),(0,n.jsx)("tbody",{children:o.sessions.recentSessions.slice(0,5).map((e,t)=>{let s=new Date(e.startedAt),r=Math.floor(((e.endedAt?new Date(e.endedAt):new Date).getTime()-s.getTime())/1e3);return(0,n.jsxs)("tr",{className:"border-b border-border/50 last:border-0",children:[(0,n.jsx)("td",{className:"py-3 px-4",children:(0,n.jsx)(g,{name:e.agentName})}),(0,n.jsx)("td",{className:"py-3 px-4",children:(0,n.jsx)(b,{closedBy:e.closedBy})}),(0,n.jsx)("td",{className:"py-3 px-4 font-mono text-sm text-accent",children:e.messageCount}),(0,n.jsx)("td",{className:"py-3 px-4 font-mono text-sm text-text-muted",children:i(e.startedAt)}),(0,n.jsx)("td",{className:"py-3 px-4 font-mono text-sm text-text-muted",children:c(r)})]},t)})})]})})]})]}),(0,n.jsxs)("section",{className:"mb-6",children:[(0,n.jsx)(x,{title:"Agent Health"}),(0,n.jsx)("div",{className:"bg-bg-secondary border border-border rounded-lg overflow-hidden",children:0===o.agents.length?(0,n.jsxs)("div",{className:"py-12 text-center",children:[(0,n.jsxs)("svg",{className:"w-12 h-12 mx-auto mb-4 text-text-muted opacity-50",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[(0,n.jsx)("path",{d:"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"}),(0,n.jsx)("circle",{cx:"12",cy:"7",r:"4"})]}),(0,n.jsx)("p",{className:"text-text-muted text-sm",children:"No agents registered yet"})]}):(0,n.jsx)("div",{className:"overflow-x-auto",children:(0,n.jsxs)("table",{className:"w-full min-w-[700px]",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{className:"bg-bg-tertiary border-b border-border",children:[(0,n.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Agent"}),(0,n.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Status"}),(0,n.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Sent"}),(0,n.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Received"}),(0,n.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Uptime"}),(0,n.jsx)("th",{className:"text-left py-3 px-4 text-xs font-semibold uppercase tracking-wider text-text-muted",children:"Last Seen"})]})}),(0,n.jsx)("tbody",{children:o.agents.map(e=>(0,n.jsxs)("tr",{className:"border-b border-border/50 last:border-0 transition-colors hover:bg-bg-hover",children:[(0,n.jsx)("td",{className:"py-3 px-4",children:(0,n.jsx)(g,{name:e.name})}),(0,n.jsx)("td",{className:"py-3 px-4",children:(0,n.jsx)(p,{isOnline:e.isOnline})}),(0,n.jsx)("td",{className:"py-3 px-4 font-mono text-sm text-accent",children:e.messagesSent.toLocaleString()}),(0,n.jsx)("td",{className:"py-3 px-4 font-mono text-sm text-[#a78bfa]",children:e.messagesReceived.toLocaleString()}),(0,n.jsx)("td",{className:"py-3 px-4 font-mono text-sm text-text-muted",children:c(e.uptimeSeconds)}),(0,n.jsx)("td",{className:"py-3 px-4 font-mono text-sm text-text-muted",children:i(e.lastSeen)})]},e.name))})]})})})]}),(0,n.jsxs)("div",{className:"text-center py-4 text-text-muted text-xs font-mono",children:["Last updated: ",i(o.timestamp)]})]})]})}function d(e){let{label:t,value:s,subtext:r,accent:a}=e;return(0,n.jsxs)("div",{className:"bg-bg-secondary border border-border rounded-lg p-5 transition-all hover:border-border-dark hover:bg-bg-tertiary group",children:[(0,n.jsx)("div",{className:"text-[11px] font-semibold uppercase tracking-wide text-text-muted mb-2",children:t}),(0,n.jsx)("div",{className:"font-mono text-3xl font-bold ".concat({cyan:"text-accent",green:"text-success",purple:"text-[#a78bfa]",orange:"text-warning"}[a]," transition-transform group-hover:scale-105 origin-left"),children:s}),(0,n.jsx)("div",{className:"text-xs text-text-muted font-mono mt-2",children:r})]})}function x(e){let{title:t}=e;return(0,n.jsxs)("h2",{className:"flex items-center gap-2.5 text-xs font-semibold uppercase tracking-wider text-text-muted mb-3",children:[(0,n.jsx)("span",{className:"w-[3px] h-3.5 bg-accent rounded-sm"}),t]})}function m(e){let{value:t,label:s,max:r}=e,a=Math.min(t/r*100,100);return(0,n.jsxs)("div",{className:"text-center",children:[(0,n.jsx)("div",{className:"font-mono text-4xl font-bold text-accent leading-none",children:t}),(0,n.jsx)("div",{className:"text-xs text-text-muted uppercase tracking-wide mt-2",children:s}),(0,n.jsx)("div",{className:"h-1 bg-border rounded-full mt-3 overflow-hidden",children:(0,n.jsx)("div",{className:"h-full bg-gradient-to-r from-accent to-[#6366f1] rounded-full transition-all duration-500",style:{width:"".concat(a,"%")}})})]})}function u(e){let{value:t,label:s,accent:r}=e;return(0,n.jsxs)("div",{className:"text-center",children:[(0,n.jsx)("div",{className:"font-mono text-3xl font-bold ".concat({purple:"text-[#a78bfa]",blue:"text-accent",green:"text-success",orange:"text-warning",red:"text-error"}[r]," leading-none"),children:t}),(0,n.jsx)("div",{className:"text-[11px] text-text-muted uppercase tracking-wide mt-2",children:s})]})}function h(e){let{rate:t,status:s}=e;return(0,n.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-semibold font-mono border ".concat({healthy:"bg-success/15 text-success border-success/30",warning:"bg-warning/15 text-warning border-warning/30",critical:"bg-error/15 text-error border-error/30"}[s]),children:[t.toFixed(1),"% error rate"]})}function g(e){let{name:t}=e;return(0,n.jsxs)("div",{className:"flex items-center gap-3",children:[(0,n.jsx)("div",{className:"w-8 h-8 rounded-md flex items-center justify-center text-white text-xs font-semibold",style:{backgroundColor:function(e){let t=0;for(let s=0;s<e.length;s++)t=e.charCodeAt(s)+((t<<5)-t);return l[Math.abs(t)%l.length]}(t)},children:t.slice(0,2).toUpperCase()}),(0,n.jsx)("span",{className:"font-semibold font-mono text-sm",children:t})]})}function p(e){let{isOnline:t}=e;return(0,n.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium ".concat(t?"bg-success/15 text-success":"bg-bg-hover text-text-muted"),children:[(0,n.jsx)("span",{className:"w-1.5 h-1.5 rounded-full ".concat(t?"bg-success":"bg-text-muted")}),t?"Online":"Offline"]})}function b(e){let{closedBy:t}=e,s={agent:{label:"Clean",className:"bg-success/15 text-success"},disconnect:{label:"Disconnect",className:"bg-warning/15 text-warning"},error:{label:"Error",className:"bg-error/15 text-error"},active:{label:"Active",className:"bg-accent/15 text-accent"}}[t||"active"];return(0,n.jsx)("span",{className:"inline-flex items-center px-2 py-0.5 rounded-lg text-[11px] font-medium ".concat(s.className),children:s.label})}}},function(e){e.O(0,[648,971,117,744],function(){return e(e.s=3047)}),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[931],{3713:function(e,t,n){Promise.resolve().then(n.bind(n,7340))},7340:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return l}});var r=n(7437),u=n(2265),a=n(8766),c=n(693);function l(){let[e,t]=(0,u.useState)(!1),[n,l]=(0,u.useState)(!1);return((0,u.useEffect)(()=>{t(function(){let e=window.location.hostname,t=new URLSearchParams(window.location.search);if("true"===t.get("landing")||"true"===t.get("cloud")||e.includes("agent-relay.com")||e.includes("agentrelay.dev")||e.includes(".fly.dev"))return!0;let n=document.querySelector('meta[name="agent-relay-cloud"]');return(null==n?void 0:n.getAttribute("content"))==="true"||"true"===localStorage.getItem("agent-relay-cloud-mode")}()),l(!0)},[]),n)?e?(0,r.jsx)(a.fy,{}):(0,r.jsx)(c.g,{}):(0,r.jsx)("div",{className:"flex h-screen bg-bg-deep font-sans text-text-primary items-center justify-center",children:(0,r.jsx)("div",{className:"text-text-muted",children:"Loading..."})})}}},function(e){e.O(0,[732,713,900,693,766,971,117,744],function(){return e(e.s=3713)}),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[979],{2183:function(n,t,e){Promise.resolve().then(e.bind(e,4676))},4676:function(n,t,e){"use strict";e.r(t),e.d(t,{default:function(){return i}});var o=e(7437),r=e(8766);function i(){return(0,o.jsx)(r.Wv,{})}},6272:function(n,t,e){"use strict";e.d(t,{K7:function(){return r}});var o=e(7437);function r(n){let{size:t=24,className:e="",withGlow:r=!1}=n;return(0,o.jsxs)("svg",{width:t,height:t,viewBox:"0 0 100 100",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"\n transition-all duration-300\n ".concat(r?"drop-shadow-[0_0_8px_rgba(0,217,255,0.3)]":"","\n ").concat(e,"\n "),"aria-label":"Agent Relay Logo",role:"img",children:[(0,o.jsx)("path",{d:"M30 80 L 50 20 L 70 80",stroke:"#00d9ff",strokeWidth:"5",strokeLinejoin:"round",strokeLinecap:"round",fill:"none"}),(0,o.jsx)("line",{x1:"40",y1:"50",x2:"60",y2:"50",stroke:"#00d9ff",strokeWidth:"5",strokeLinecap:"round"}),(0,o.jsx)("path",{d:"M50 20 L 50 80",stroke:"#00ffc8",strokeWidth:"2.5",strokeLinecap:"round",opacity:"0.7"}),(0,o.jsx)("path",{d:"M50 20 C 80 20 80 50 50 50 L 80 80",stroke:"#00ffc8",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",fill:"none",opacity:"0.7"})]})}e(2265)}},function(n){n.O(0,[732,766,971,117,744],function(){return n(n.s=2183)}),_N_E=n.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[744],{3321:function(e,n,t){Promise.resolve().then(t.t.bind(t,2846,23)),Promise.resolve().then(t.t.bind(t,9107,23)),Promise.resolve().then(t.t.bind(t,1060,23)),Promise.resolve().then(t.t.bind(t,4707,23)),Promise.resolve().then(t.t.bind(t,80,23)),Promise.resolve().then(t.t.bind(t,6423,23))}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[971,117],function(){return n(4278),n(3321)}),_N_E=e.O()}]);
|