@agent-relay/dashboard-server 2.0.82 → 2.0.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +3 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -23
- package/dist/index.js.map +1 -1
- package/dist/lib/attachment-storage.d.ts +10 -0
- package/dist/lib/attachment-storage.d.ts.map +1 -0
- package/dist/lib/attachment-storage.js +53 -0
- package/dist/lib/attachment-storage.js.map +1 -0
- package/dist/lib/broadcast.d.ts +18 -0
- package/dist/lib/broadcast.d.ts.map +1 -0
- package/dist/lib/broadcast.js +118 -0
- package/dist/lib/broadcast.js.map +1 -0
- package/dist/lib/channel-state.d.ts +32 -0
- package/dist/lib/channel-state.d.ts.map +1 -0
- package/dist/lib/channel-state.js +146 -0
- package/dist/lib/channel-state.js.map +1 -0
- package/dist/lib/cli-auth.d.ts +40 -0
- package/dist/lib/cli-auth.d.ts.map +1 -0
- package/dist/lib/cli-auth.js +144 -0
- package/dist/lib/cli-auth.js.map +1 -0
- package/dist/lib/cloud-persistence.d.ts +6 -0
- package/dist/lib/cloud-persistence.d.ts.map +1 -0
- package/dist/lib/cloud-persistence.js +130 -0
- package/dist/lib/cloud-persistence.js.map +1 -0
- package/dist/lib/data-assembly.d.ts +136 -0
- package/dist/lib/data-assembly.d.ts.map +1 -0
- package/dist/lib/data-assembly.js +550 -0
- package/dist/lib/data-assembly.js.map +1 -0
- package/dist/lib/file-search.d.ts +8 -0
- package/dist/lib/file-search.d.ts.map +1 -0
- package/dist/lib/file-search.js +90 -0
- package/dist/lib/file-search.js.map +1 -0
- package/dist/lib/identity.d.ts +54 -0
- package/dist/lib/identity.d.ts.map +1 -0
- package/dist/lib/identity.js +124 -0
- package/dist/lib/identity.js.map +1 -0
- package/dist/lib/log-line-cleaner.d.ts +20 -0
- package/dist/lib/log-line-cleaner.d.ts.map +1 -0
- package/dist/lib/log-line-cleaner.js +117 -0
- package/dist/lib/log-line-cleaner.js.map +1 -0
- package/dist/lib/log-reader.d.ts +14 -0
- package/dist/lib/log-reader.d.ts.map +1 -0
- package/dist/lib/log-reader.js +80 -0
- package/dist/lib/log-reader.js.map +1 -0
- package/dist/lib/message-id.d.ts +30 -0
- package/dist/lib/message-id.d.ts.map +1 -0
- package/dist/lib/message-id.js +50 -0
- package/dist/lib/message-id.js.map +1 -0
- package/dist/lib/process-metrics.d.ts +11 -0
- package/dist/lib/process-metrics.d.ts.map +1 -0
- package/dist/lib/process-metrics.js +252 -0
- package/dist/lib/process-metrics.js.map +1 -0
- package/dist/lib/proxy-route-table.d.ts +16 -0
- package/dist/lib/proxy-route-table.d.ts.map +1 -0
- package/dist/lib/proxy-route-table.js +73 -0
- package/dist/lib/proxy-route-table.js.map +1 -0
- package/dist/lib/send-strategy.d.ts +61 -0
- package/dist/lib/send-strategy.d.ts.map +1 -0
- package/dist/lib/send-strategy.js +134 -0
- package/dist/lib/send-strategy.js.map +1 -0
- package/dist/lib/server-state.d.ts +115 -0
- package/dist/lib/server-state.d.ts.map +1 -0
- package/dist/lib/server-state.js +138 -0
- package/dist/lib/server-state.js.map +1 -0
- package/dist/lib/spawned-agents.d.ts +35 -0
- package/dist/lib/spawned-agents.d.ts.map +1 -0
- package/dist/lib/spawned-agents.js +323 -0
- package/dist/lib/spawned-agents.js.map +1 -0
- package/dist/lib/types.d.ts +117 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +12 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/utils.d.ts +71 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +332 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/websocket-runtime.d.ts +17 -0
- package/dist/lib/websocket-runtime.d.ts.map +1 -0
- package/dist/lib/websocket-runtime.js +76 -0
- package/dist/lib/websocket-runtime.js.map +1 -0
- package/dist/mocks/fixtures.d.ts +2 -2
- package/dist/mocks/fixtures.js +1 -1
- package/dist/mocks/routes.d.ts.map +1 -1
- package/dist/mocks/routes.js +30 -3
- package/dist/mocks/routes.js.map +1 -1
- package/dist/mocks/types.d.ts +1 -1
- package/dist/mocks/types.js +1 -1
- package/dist/proxy-server.d.ts +7 -33
- package/dist/proxy-server.d.ts.map +1 -1
- package/dist/proxy-server.js +292 -200
- package/dist/proxy-server.js.map +1 -1
- package/dist/relaycast-provider-helpers.d.ts +40 -0
- package/dist/relaycast-provider-helpers.d.ts.map +1 -0
- package/dist/relaycast-provider-helpers.js +284 -0
- package/dist/relaycast-provider-helpers.js.map +1 -0
- package/dist/relaycast-provider-types.d.ts +116 -0
- package/dist/relaycast-provider-types.d.ts.map +1 -0
- package/dist/relaycast-provider-types.js +6 -0
- package/dist/relaycast-provider-types.js.map +1 -0
- package/dist/relaycast-provider.d.ts +42 -0
- package/dist/relaycast-provider.d.ts.map +1 -0
- package/dist/relaycast-provider.js +277 -0
- package/dist/relaycast-provider.js.map +1 -0
- package/dist/routes/agents.d.ts +7 -0
- package/dist/routes/agents.d.ts.map +1 -0
- package/dist/routes/agents.js +180 -0
- package/dist/routes/agents.js.map +1 -0
- package/dist/routes/auth.d.ts +45 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +261 -0
- package/dist/routes/auth.js.map +1 -0
- package/dist/routes/broker-proxy.d.ts +7 -0
- package/dist/routes/broker-proxy.d.ts.map +1 -0
- package/dist/routes/broker-proxy.js +114 -0
- package/dist/routes/broker-proxy.js.map +1 -0
- package/dist/routes/channels-integrated.d.ts +84 -0
- package/dist/routes/channels-integrated.d.ts.map +1 -0
- package/dist/routes/channels-integrated.js +644 -0
- package/dist/routes/channels-integrated.js.map +1 -0
- package/dist/routes/channels.d.ts +7 -0
- package/dist/routes/channels.d.ts.map +1 -0
- package/dist/routes/channels.js +453 -0
- package/dist/routes/channels.js.map +1 -0
- package/dist/routes/data.d.ts +7 -0
- package/dist/routes/data.d.ts.map +1 -0
- package/dist/routes/data.js +108 -0
- package/dist/routes/data.js.map +1 -0
- package/dist/routes/decisions.d.ts +31 -0
- package/dist/routes/decisions.d.ts.map +1 -0
- package/dist/routes/decisions.js +109 -0
- package/dist/routes/decisions.js.map +1 -0
- package/dist/routes/fleet.d.ts +24 -0
- package/dist/routes/fleet.d.ts.map +1 -0
- package/dist/routes/fleet.js +131 -0
- package/dist/routes/fleet.js.map +1 -0
- package/dist/routes/health.d.ts +7 -0
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +55 -0
- package/dist/routes/health.js.map +1 -0
- package/dist/routes/history-relaycast.d.ts +8 -0
- package/dist/routes/history-relaycast.d.ts.map +1 -0
- package/dist/routes/history-relaycast.js +165 -0
- package/dist/routes/history-relaycast.js.map +1 -0
- package/dist/routes/history.d.ts +13 -0
- package/dist/routes/history.d.ts.map +1 -0
- package/dist/routes/history.js +205 -0
- package/dist/routes/history.js.map +1 -0
- package/dist/routes/messaging.d.ts +31 -0
- package/dist/routes/messaging.d.ts.map +1 -0
- package/dist/routes/messaging.js +182 -0
- package/dist/routes/messaging.js.map +1 -0
- package/dist/routes/metrics.d.ts +26 -0
- package/dist/routes/metrics.d.ts.map +1 -0
- package/dist/routes/metrics.js +276 -0
- package/dist/routes/metrics.js.map +1 -0
- package/dist/routes/reactions.d.ts +9 -0
- package/dist/routes/reactions.d.ts.map +1 -0
- package/dist/routes/reactions.js +76 -0
- package/dist/routes/reactions.js.map +1 -0
- package/dist/routes/relay-config.d.ts +4 -0
- package/dist/routes/relay-config.d.ts.map +1 -0
- package/dist/routes/relay-config.js +50 -0
- package/dist/routes/relay-config.js.map +1 -0
- package/dist/routes/settings.d.ts +6 -0
- package/dist/routes/settings.d.ts.map +1 -0
- package/dist/routes/settings.js +119 -0
- package/dist/routes/settings.js.map +1 -0
- package/dist/routes/spawn.d.ts +74 -0
- package/dist/routes/spawn.d.ts.map +1 -0
- package/dist/routes/spawn.js +520 -0
- package/dist/routes/spawn.js.map +1 -0
- package/dist/routes/system.d.ts +21 -0
- package/dist/routes/system.d.ts.map +1 -0
- package/dist/routes/system.js +186 -0
- package/dist/routes/system.js.map +1 -0
- package/dist/routes/tasks.d.ts +27 -0
- package/dist/routes/tasks.d.ts.map +1 -0
- package/dist/routes/tasks.js +103 -0
- package/dist/routes/tasks.js.map +1 -0
- package/dist/routes/ui.d.ts +6 -0
- package/dist/routes/ui.d.ts.map +1 -0
- package/dist/routes/ui.js +114 -0
- package/dist/routes/ui.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +337 -6072
- package/dist/server.js.map +1 -1
- package/dist/services/broker-spawn-reader.d.ts +40 -0
- package/dist/services/broker-spawn-reader.d.ts.map +1 -0
- package/dist/services/broker-spawn-reader.js +155 -0
- package/dist/services/broker-spawn-reader.js.map +1 -0
- package/dist/services/health-worker-manager.d.ts +9 -60
- package/dist/services/health-worker-manager.d.ts.map +1 -1
- package/dist/services/health-worker-manager.js +18 -148
- package/dist/services/health-worker-manager.js.map +1 -1
- package/dist/services/index.d.ts +3 -3
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +3 -3
- package/dist/services/index.js.map +1 -1
- package/dist/services/metrics.d.ts +11 -104
- package/dist/services/metrics.d.ts.map +1 -1
- package/dist/services/metrics.js +21 -190
- package/dist/services/metrics.js.map +1 -1
- package/dist/services/needs-attention.d.ts +21 -22
- package/dist/services/needs-attention.d.ts.map +1 -1
- package/dist/services/needs-attention.js +46 -71
- package/dist/services/needs-attention.js.map +1 -1
- package/dist/services/user-bridge.d.ts +0 -3
- package/dist/services/user-bridge.d.ts.map +1 -1
- package/dist/services/user-bridge.js +0 -5
- package/dist/services/user-bridge.js.map +1 -1
- package/dist/start.d.ts +4 -4
- package/dist/start.js +96 -89
- package/dist/start.js.map +1 -1
- package/dist/types/index.d.ts +13 -16
- package/dist/types/index.d.ts.map +1 -1
- package/dist/websocket/bridge.d.ts +12 -0
- package/dist/websocket/bridge.d.ts.map +1 -0
- package/dist/websocket/bridge.js +33 -0
- package/dist/websocket/bridge.js.map +1 -0
- package/dist/websocket/logs.d.ts +30 -0
- package/dist/websocket/logs.d.ts.map +1 -0
- package/dist/websocket/logs.js +577 -0
- package/dist/websocket/logs.js.map +1 -0
- package/dist/websocket/main.d.ts +15 -0
- package/dist/websocket/main.d.ts.map +1 -0
- package/dist/websocket/main.js +84 -0
- package/dist/websocket/main.js.map +1 -0
- package/dist/websocket/mock.d.ts +6 -0
- package/dist/websocket/mock.d.ts.map +1 -0
- package/dist/websocket/mock.js +49 -0
- package/dist/websocket/mock.js.map +1 -0
- package/dist/websocket/presence.d.ts +74 -0
- package/dist/websocket/presence.d.ts.map +1 -0
- package/dist/websocket/presence.js +330 -0
- package/dist/websocket/presence.js.map +1 -0
- package/dist/websocket/proxy.d.ts +6 -0
- package/dist/websocket/proxy.d.ts.map +1 -0
- package/dist/websocket/proxy.js +39 -0
- package/dist/websocket/proxy.js.map +1 -0
- package/dist/websocket/standalone.d.ts +17 -0
- package/dist/websocket/standalone.d.ts.map +1 -0
- package/dist/websocket/standalone.js +268 -0
- package/dist/websocket/standalone.js.map +1 -0
- package/out/404.html +1 -1
- package/out/_next/static/chunks/1028-da5d75e35d1420f1.js +1 -0
- package/out/_next/static/chunks/1528-78b17000a7e10bc6.js +2 -0
- package/out/_next/static/chunks/1695-4a5d33ba715e09b4.js +1 -0
- package/out/_next/static/chunks/1705-36c2180d00a4a569.js +1 -0
- package/out/_next/static/chunks/1dd3208c-e1f87c7b3dc1a820.js +1 -0
- package/out/_next/static/chunks/3663-47290254b8f6f5dd.js +1 -0
- package/out/_next/static/chunks/3677-4b225baf4801d9b9.js +73 -0
- package/out/_next/static/chunks/5118-7e8ada2df38eef07.js +1 -0
- package/out/_next/static/chunks/5888-15cbe97c90ed5fae.js +1 -0
- package/out/_next/static/chunks/6773-a45343a98df3abb5.js +1 -0
- package/out/_next/static/chunks/6940-b824612b605e79b3.js +9 -0
- package/out/_next/static/chunks/7894-f4a15249082a680d.js +1 -0
- package/out/_next/static/chunks/9175-b3617c1e5cbfed0e.js +1 -0
- package/out/_next/static/chunks/9372-1a804b8d08c7a236.js +1 -0
- package/out/_next/static/chunks/{ab6c8a12-0a58072fbb505134.js → ab6c8a12-91438a812d94ecf0.js} +1 -1
- package/out/_next/static/chunks/app/_not-found/page-8e8842f82d204726.js +1 -0
- package/out/_next/static/chunks/app/about/page-b78577a7da8fa459.js +1 -0
- package/out/_next/static/chunks/app/app/[[...slug]]/page-3dffd65b6344f53e.js +1 -0
- package/out/_next/static/chunks/app/app/onboarding/page-b89be9aa6264a5e1.js +1 -0
- package/out/_next/static/chunks/app/blog/go-to-bed-wake-up-to-a-finished-product/page-fbd00893ef69e499.js +1 -0
- package/out/_next/static/chunks/app/blog/let-them-cook-multi-agent-orchestration/page-de2ea13649d0b6d3.js +1 -0
- package/out/_next/static/chunks/app/blog/page-a08e263c57a156fa.js +1 -0
- package/out/_next/static/chunks/app/careers/page-02228e1d6969b232.js +1 -0
- package/out/_next/static/chunks/app/changelog/page-1b5c1d79efc6e53a.js +1 -0
- package/out/_next/static/chunks/app/cloud/link/page-99654edffffb3af2.js +1 -0
- package/out/_next/static/chunks/app/complete-profile/page-59d146e5ddeafc5c.js +1 -0
- package/out/_next/static/chunks/app/connect-repos/page-995e16a976a6632c.js +1 -0
- package/out/_next/static/chunks/app/contact/page-273396a5ad57bcee.js +1 -0
- package/out/_next/static/chunks/app/dev/cli-tools/page-a71b80dcb2d5fc8d.js +1 -0
- package/out/_next/static/chunks/app/dev/log-viewer/page-46a6151ae1be0796.js +1 -0
- package/out/_next/static/chunks/app/docs/page-7c7cb603b24b7c40.js +1 -0
- package/out/_next/static/chunks/app/history/page-0c5cab1dab4e8886.js +1 -0
- package/out/_next/static/chunks/app/layout-96d72ba8ef8a43a0.js +1 -0
- package/out/_next/static/chunks/app/login/page-0ccbab34213df842.js +1 -0
- package/out/_next/static/chunks/app/metrics/page-8616272aeab9c8b0.js +1 -0
- package/out/_next/static/chunks/app/page-09ce10603ad9a251.js +1 -0
- package/out/_next/static/chunks/app/pricing/page-91c975079120c941.js +1 -0
- package/out/_next/static/chunks/app/privacy/{page-c21d51ac2dee3a88.js → page-a49ab271cc686644.js} +1 -1
- package/out/_next/static/chunks/app/providers/{page-59114505f4353512.js → page-d775d6eb5bc29e96.js} +1 -1
- package/out/_next/static/chunks/app/providers/setup/[provider]/page-ec4ef3cd80de807e.js +1 -0
- package/out/_next/static/chunks/app/security/page-d9da9bd9191e8f95.js +1 -0
- package/out/_next/static/chunks/app/signup/page-930eca0bf5fd299d.js +1 -0
- package/out/_next/static/chunks/app/terms/page-3e4827620b98613c.js +1 -0
- package/out/_next/static/chunks/framework-648e1ae7da590300.js +1 -0
- package/out/_next/static/chunks/{main-acb1b24265295d6a.js → main-2b1990080c292d92.js} +1 -1
- package/out/_next/static/chunks/main-app-9f6b7ff9e754a8f5.js +1 -0
- package/out/_next/static/chunks/pages/_app-a077b72e02273ab1.js +1 -0
- package/out/_next/static/chunks/pages/_error-84001666436a04e4.js +1 -0
- package/out/_next/static/chunks/{webpack-dd93b81e2659669c.js → webpack-7586035f1585f2db.js} +1 -1
- package/out/_next/static/css/eb9fc69d1e3d2bed.css +1 -0
- package/out/_next/static/{IxfA6RZu4trcsEMYlkQra → g3G0LMdB7lxcrU5mdM54m}/_buildManifest.js +1 -1
- package/out/about.html +2 -2
- package/out/about.txt +2 -2
- package/out/app/onboarding.html +1 -1
- package/out/app/onboarding.txt +2 -2
- package/out/app.html +1 -1
- package/out/app.txt +2 -2
- package/out/blog/go-to-bed-wake-up-to-a-finished-product.html +3 -3
- package/out/blog/go-to-bed-wake-up-to-a-finished-product.txt +1 -1
- package/out/blog/let-them-cook-multi-agent-orchestration.html +2 -2
- package/out/blog/let-them-cook-multi-agent-orchestration.txt +2 -2
- package/out/blog.html +2 -2
- package/out/blog.txt +1 -1
- package/out/careers.html +2 -2
- package/out/careers.txt +2 -2
- package/out/changelog.html +2 -2
- package/out/changelog.txt +2 -2
- package/out/cloud/link.html +1 -1
- package/out/cloud/link.txt +2 -2
- package/out/complete-profile.html +2 -2
- package/out/complete-profile.txt +2 -2
- package/out/connect-repos.html +1 -1
- package/out/connect-repos.txt +2 -2
- package/out/contact.html +2 -2
- package/out/contact.txt +2 -2
- package/out/dev/cli-tools.html +1 -0
- package/out/dev/cli-tools.txt +7 -0
- package/out/dev/log-viewer.html +23 -0
- package/out/dev/log-viewer.txt +7 -0
- package/out/docs.html +2 -2
- package/out/docs.txt +2 -2
- package/out/history.html +1 -1
- package/out/history.txt +2 -2
- package/out/index.html +1 -1
- package/out/index.txt +2 -2
- package/out/login.html +2 -2
- package/out/login.txt +2 -2
- package/out/metrics.html +1 -1
- package/out/metrics.txt +2 -2
- package/out/pricing.html +2 -2
- package/out/pricing.txt +2 -2
- package/out/privacy.html +2 -2
- package/out/privacy.txt +2 -2
- package/out/providers/setup/claude.html +1 -1
- package/out/providers/setup/claude.txt +2 -2
- package/out/providers/setup/codex.html +1 -1
- package/out/providers/setup/codex.txt +2 -2
- package/out/providers/setup/cursor.html +1 -1
- package/out/providers/setup/cursor.txt +2 -2
- package/out/providers.html +1 -1
- package/out/providers.txt +2 -2
- package/out/security.html +2 -2
- package/out/security.txt +2 -2
- package/out/signup.html +2 -2
- package/out/signup.txt +2 -2
- package/out/terms.html +2 -2
- package/out/terms.txt +2 -2
- package/package.json +10 -11
- package/out/_next/static/chunks/11-9a2993a37266dcb3.js +0 -9
- package/out/_next/static/chunks/118-ae2b650136a5a5fc.js +0 -1
- package/out/_next/static/chunks/1dd3208c-40ab0fc0f60392b8.js +0 -1
- package/out/_next/static/chunks/202-fc0763dd7488e58f.js +0 -1
- package/out/_next/static/chunks/259-83b77fa1b91ba5aa.js +0 -1
- package/out/_next/static/chunks/407-0c82986cf79c8ecb.js +0 -1
- package/out/_next/static/chunks/528-f5f676996d613c25.js +0 -2
- package/out/_next/static/chunks/663-ddb04081febc3678.js +0 -1
- package/out/_next/static/chunks/687-88b6b139a6bb0e2e.js +0 -1
- package/out/_next/static/chunks/695-51d25b1988644374.js +0 -1
- package/out/_next/static/chunks/773-54a2641043c81e55.js +0 -1
- package/out/_next/static/chunks/app/_not-found/page-6da9b72091e5b511.js +0 -1
- package/out/_next/static/chunks/app/about/page-fff7c6457683f243.js +0 -1
- package/out/_next/static/chunks/app/app/[[...slug]]/page-f7eca1b66fb4249b.js +0 -1
- package/out/_next/static/chunks/app/app/onboarding/page-129abc5da2e67971.js +0 -1
- package/out/_next/static/chunks/app/blog/go-to-bed-wake-up-to-a-finished-product/page-5d5f28fd126b692f.js +0 -1
- package/out/_next/static/chunks/app/blog/let-them-cook-multi-agent-orchestration/page-b194f207fbd91862.js +0 -1
- package/out/_next/static/chunks/app/blog/page-b9bd9d8703fca76a.js +0 -1
- package/out/_next/static/chunks/app/careers/page-a4bd8d5f4de8f4eb.js +0 -1
- package/out/_next/static/chunks/app/changelog/page-9a1f6ad1743d63c5.js +0 -1
- package/out/_next/static/chunks/app/cloud/link/page-0844c5699b027c3b.js +0 -1
- package/out/_next/static/chunks/app/complete-profile/page-39ed5a67916beb87.js +0 -1
- package/out/_next/static/chunks/app/connect-repos/page-297eddee0c39f2a3.js +0 -1
- package/out/_next/static/chunks/app/contact/page-3c1dd8690217fade.js +0 -1
- package/out/_next/static/chunks/app/docs/page-1875e981f2c3fd13.js +0 -1
- package/out/_next/static/chunks/app/history/page-2d5c5695c9e8b40c.js +0 -1
- package/out/_next/static/chunks/app/layout-0a4b99656da25511.js +0 -1
- package/out/_next/static/chunks/app/login/page-f69c076f5a6fc520.js +0 -1
- package/out/_next/static/chunks/app/metrics/page-bebbee055669a17e.js +0 -1
- package/out/_next/static/chunks/app/page-0ee604f7070d14c0.js +0 -1
- package/out/_next/static/chunks/app/pricing/page-eeae7d594af333b6.js +0 -1
- package/out/_next/static/chunks/app/providers/setup/[provider]/page-daf9b3e05e77ae19.js +0 -1
- package/out/_next/static/chunks/app/security/page-cd562730fe84a0a2.js +0 -1
- package/out/_next/static/chunks/app/signup/page-c242ca08101a84ff.js +0 -1
- package/out/_next/static/chunks/app/terms/page-c7001720e7941dc6.js +0 -1
- package/out/_next/static/chunks/framework-3664cab31236a9fa.js +0 -1
- package/out/_next/static/chunks/main-app-7f73a939a312a228.js +0 -1
- package/out/_next/static/chunks/pages/_app-10a93ab5b7c32eb3.js +0 -1
- package/out/_next/static/chunks/pages/_error-2d792b2a41857be4.js +0 -1
- package/out/_next/static/css/8968d98ed4c4d33f.css +0 -1
- /package/out/_next/static/{IxfA6RZu4trcsEMYlkQra → g3G0LMdB7lxcrU5mdM54m}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[695],{5634:function(e,s,n){"use strict";n.d(s,{K7:function(){return r}});var a=n(7573);function r(e){let{size:s=24,className:n="",withGlow:r=!1}=e;return(0,a.jsxs)("svg",{width:s,height:s,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(n,"\n "),"aria-label":"Agent Relay Logo",role:"img",children:[(0,a.jsx)("path",{d:"M30 80 L 50 20 L 70 80",stroke:"#00d9ff",strokeWidth:"5",strokeLinejoin:"round",strokeLinecap:"round",fill:"none"}),(0,a.jsx)("line",{x1:"40",y1:"50",x2:"60",y2:"50",stroke:"#00d9ff",strokeWidth:"5",strokeLinecap:"round"}),(0,a.jsx)("path",{d:"M50 20 L 50 80",stroke:"#00ffc8",strokeWidth:"2.5",strokeLinecap:"round",opacity:"0.7"}),(0,a.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"})]})}n(7653)},717:function(e,s,n){"use strict";n.d(s,{tP:function(){return K},az:function(){return Q},pE:function(){return J},KN:function(){return V},kO:function(){return X},fy:function(){return c},Wv:function(){return k},IW:function(){return q},YW:function(){return _},Eh:function(){return z}});var a=n(7573),r=n(7653);n(8601);var i=n(5634);let t={claude:{name:"Claude",color:"#D97757",icon:"◈"},codex:{name:"Codex",color:"#10A37F",icon:"⬡"},gemini:{name:"Gemini",color:"#4285F4",icon:"◇"},opencode:{name:"OpenCode",color:"#00D4AA",icon:"◆"},droid:{name:"Droid",color:"#6366F1",icon:"⬢"},cursor:{name:"Cursor",color:"#7C3AED",icon:"✎"}},l=[{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 c(){return(0,a.jsxs)("div",{className:"landing-page",children:[(0,a.jsxs)("div",{className:"landing-bg",children:[(0,a.jsx)(v,{}),(0,a.jsx)(y,{})]}),(0,a.jsx)(o,{}),(0,a.jsxs)("main",{children:[(0,a.jsx)(d,{}),(0,a.jsx)(m,{}),(0,a.jsx)(p,{}),(0,a.jsx)(x,{}),(0,a.jsx)(j,{}),(0,a.jsx)(g,{})]}),(0,a.jsx)(f,{})]})}function o(){let[e,s]=(0,r.useState)(!1),[n,t]=(0,r.useState)(!1),[l,c]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=()=>s(window.scrollY>50);return window.addEventListener("scroll",e),()=>window.removeEventListener("scroll",e)},[]),(0,r.useEffect)(()=>{(async function(){try{let e=await fetch("/api/auth/me",{credentials:"include"});c(e.ok)}catch(e){c(!1)}})()},[]),(0,r.useEffect)(()=>{let e=()=>{window.innerWidth>768&&t(!1)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),(0,r.useEffect)(()=>(n?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[n]);let o=()=>{t(!1)};return(0,a.jsxs)("nav",{className:"nav ".concat(e?"scrolled":""," ").concat(n?"menu-open":""),children:[(0,a.jsxs)("div",{className:"nav-inner",children:[(0,a.jsxs)("a",{href:"/",className:"nav-logo",children:[(0,a.jsx)(i.K7,{size:28,withGlow:!0}),(0,a.jsx)("span",{className:"logo-text",children:"Agent Relay"})]}),(0,a.jsxs)("div",{className:"nav-links",children:[(0,a.jsx)("a",{href:"#demo",children:"Demo"}),(0,a.jsx)("a",{href:"#features",children:"Features"}),(0,a.jsx)("a",{href:"#pricing",children:"Pricing"}),(0,a.jsx)("a",{href:"https://docs.agent-relay.com/",className:"nav-docs",children:"Docs"})]}),(0,a.jsx)("div",{className:"nav-actions",children:l?(0,a.jsx)("a",{href:"/app",className:"btn-primary",children:"Go to App"}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("a",{href:"/login",className:"btn-ghost",children:"Sign In"}),(0,a.jsx)("a",{href:"/signup",className:"btn-primary",children:"Get Started"})]})}),(0,a.jsx)("button",{className:"mobile-menu-toggle",onClick:()=>t(!n),"aria-label":n?"Close menu":"Open menu",children:(0,a.jsxs)("span",{className:"hamburger ".concat(n?"open":""),children:[(0,a.jsx)("span",{className:"hamburger-line"}),(0,a.jsx)("span",{className:"hamburger-line"}),(0,a.jsx)("span",{className:"hamburger-line"})]})})]}),(0,a.jsx)("div",{className:"mobile-menu-overlay ".concat(n?"open":""),onClick:o}),(0,a.jsx)("div",{className:"mobile-menu ".concat(n?"open":""),children:(0,a.jsxs)("div",{className:"mobile-menu-content",children:[(0,a.jsxs)("div",{className:"mobile-nav-links",children:[(0,a.jsx)("a",{href:"#demo",onClick:o,children:"Demo"}),(0,a.jsx)("a",{href:"#features",onClick:o,children:"Features"}),(0,a.jsx)("a",{href:"#pricing",onClick:o,children:"Pricing"}),(0,a.jsx)("a",{href:"https://docs.agent-relay.com/",onClick:o,children:"Documentation"})]}),(0,a.jsx)("div",{className:"mobile-nav-actions",children:l?(0,a.jsx)("a",{href:"/app",className:"btn-primary btn-full",onClick:o,children:"Go to App"}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("a",{href:"/login",className:"btn-ghost btn-full",onClick:o,children:"Sign In"}),(0,a.jsx)("a",{href:"/signup",className:"btn-primary btn-full",onClick:o,children:"Get Started"})]})})]})})]})}function d(){return(0,a.jsxs)("section",{className:"hero",children:[(0,a.jsxs)("div",{className:"hero-content",children:[(0,a.jsxs)("div",{className:"hero-badge",children:[(0,a.jsx)("span",{className:"badge-dot"}),(0,a.jsx)("span",{children:"Now in Public Beta"})]}),(0,a.jsxs)("h1",{className:"hero-title",children:[(0,a.jsx)("span",{className:"title-line",children:"Orchestrate AI Agents"}),(0,a.jsx)("span",{className:"title-line gradient",children:"Like a Symphony"})]}),(0,a.jsx)("p",{className:"hero-subtitle",children:"Real-time messaging between AI agents. Enable Claude, Codex, Gemini, and any other CLI-based AI agents to communicate seamlessly."}),(0,a.jsxs)("div",{className:"hero-cta",children:[(0,a.jsxs)("a",{href:"/signup",className:"btn-primary btn-large",children:[(0,a.jsx)("span",{children:"Start Building"}),(0,a.jsx)("span",{className:"btn-arrow",children:"→"})]}),(0,a.jsxs)("a",{href:"#demo",className:"btn-ghost btn-large",children:[(0,a.jsx)("span",{className:"play-icon",children:"▶"}),(0,a.jsx)("span",{children:"Watch Demo"})]})]}),(0,a.jsxs)("div",{className:"hero-stats",children:[(0,a.jsxs)("div",{className:"stat",children:[(0,a.jsx)("span",{className:"stat-value",children:"10K+"}),(0,a.jsx)("span",{className:"stat-label",children:"Agents Spawned"})]}),(0,a.jsx)("div",{className:"stat-divider"}),(0,a.jsxs)("div",{className:"stat",children:[(0,a.jsx)("span",{className:"stat-value",children:"500+"}),(0,a.jsx)("span",{className:"stat-label",children:"Teams"})]}),(0,a.jsx)("div",{className:"stat-divider"}),(0,a.jsxs)("div",{className:"stat",children:[(0,a.jsx)("span",{className:"stat-value",children:"99.9%"}),(0,a.jsx)("span",{className:"stat-label",children:"Uptime"})]})]})]}),(0,a.jsx)("div",{className:"hero-visual",children:(0,a.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,a.jsxs)("div",{className:"agent-network",children:[(0,a.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,n)=>{let r=e.find(e=>e.id===s.from),i=e.find(e=>e.id===s.to);return(0,a.jsxs)("g",{children:[(0,a.jsx)("line",{x1:r.x,y1:r.y,x2:i.x,y2:i.y,className:"network-line"}),(0,a.jsx)("line",{x1:r.x,y1:r.y,x2:i.x,y2:i.y,className:"network-line-glow",style:{animationDelay:"".concat(.3*n,"s")}})]},n)})}),e.map(e=>{let s=t[e.provider];return(0,a.jsxs)("div",{className:"network-agent ".concat(e.pulse?"pulse":""),style:{left:"".concat(e.x,"%"),top:"".concat(e.y,"%"),"--agent-color":s.color},children:[(0,a.jsx)("div",{className:"agent-glow"}),(0,a.jsx)("div",{className:"agent-icon",children:s.icon}),(0,a.jsx)("div",{className:"agent-label",children:e.name})]},e.id)}),(0,a.jsx)(u,{fromX:50,fromY:30,toX:25,toY:55,delay:0}),(0,a.jsx)(u,{fromX:25,fromY:55,toX:75,toY:55,delay:1}),(0,a.jsx)(u,{fromX:75,fromY:55,toX:50,toY:80,delay:2})]})}function u(e){let{fromX:s,fromY:n,toX:r,toY:i,delay:t}=e;return(0,a.jsx)("div",{className:"data-packet",style:{"--from-x":"".concat(s,"%"),"--from-y":"".concat(n,"%"),"--to-x":"".concat(r,"%"),"--to-y":"".concat(i,"%"),animationDelay:"".concat(t,"s")}})}function m(){let[e,s]=(0,r.useState)([]),[n,i]=(0,r.useState)(0),c=(0,r.useRef)(null);return(0,r.useEffect)(()=>{if(n>=l.length){let e=setTimeout(()=>{s([]),i(0)},3e3);return()=>clearTimeout(e)}let e=setTimeout(()=>{s(e=>[...e,l[n]]),i(e=>e+1)},1500);return()=>clearTimeout(e)},[n]),(0,r.useEffect)(()=>{let e=c.current;e&&(e.scrollTop=e.scrollHeight)},[e]),(0,a.jsxs)("section",{id:"demo",className:"demo-section",children:[(0,a.jsxs)("div",{className:"section-header",children:[(0,a.jsx)("span",{className:"section-tag",children:"Live Demo"}),(0,a.jsx)("h2",{children:"Watch Agents Collaborate"}),(0,a.jsx)("p",{children:"See how multiple AI agents work together on a real task in real-time."})]}),(0,a.jsxs)("div",{className:"demo-container",children:[(0,a.jsxs)("div",{className:"demo-window",children:[(0,a.jsxs)("div",{className:"window-header",children:[(0,a.jsxs)("div",{className:"window-dots",children:[(0,a.jsx)("span",{className:"dot red"}),(0,a.jsx)("span",{className:"dot yellow"}),(0,a.jsx)("span",{className:"dot green"})]}),(0,a.jsx)("div",{className:"window-title",children:"Agent Relay — auth-module"}),(0,a.jsxs)("div",{className:"window-status",children:[(0,a.jsx)("span",{className:"status-dot"}),(0,a.jsx)("span",{children:"4 agents online"})]})]}),(0,a.jsxs)("div",{className:"demo-content",children:[(0,a.jsx)("div",{className:"demo-sidebar",children:(0,a.jsxs)("div",{className:"sidebar-section",children:[(0,a.jsx)("div",{className:"sidebar-label",children:"AGENTS"}),["Architect","Backend","Frontend","Reviewer"].map((e,s)=>{let n=t[["claude","codex","claude","gemini"][s]];return(0,a.jsxs)("div",{className:"sidebar-agent",children:[(0,a.jsx)("span",{className:"agent-dot",style:{background:n.color}}),(0,a.jsx)("span",{className:"agent-name",children:e}),(0,a.jsx)("span",{className:"agent-status",children:"●"})]},e)})]})}),(0,a.jsxs)("div",{className:"demo-messages",ref:c,children:[e.map((e,s)=>{let n=t[e.provider];return(0,a.jsxs)("div",{className:"message",style:{"--msg-color":n.color},children:[(0,a.jsxs)("div",{className:"message-header",children:[(0,a.jsx)("span",{className:"message-icon",style:{background:n.color},children:n.icon}),(0,a.jsx)("span",{className:"message-from",children:e.from}),(0,a.jsx)("span",{className:"message-arrow",children:"→"}),(0,a.jsx)("span",{className:"message-to",children:"all"===e.to?"everyone":e.to}),(0,a.jsx)("span",{className:"message-time",children:"just now"})]}),(0,a.jsx)("div",{className:"message-content",children:e.content})]},s)}),e.length<l.length&&(0,a.jsxs)("div",{className:"typing-indicator",children:[(0,a.jsx)("span",{className:"typing-dot"}),(0,a.jsx)("span",{className:"typing-dot"}),(0,a.jsx)("span",{className:"typing-dot"})]})]})]})]}),(0,a.jsx)("div",{className:"demo-caption",children:(0,a.jsx)("p",{children:"This is a simulation of agents completing a task. In production, agents run your actual code."})})]})]})}function p(){return(0,a.jsxs)("section",{id:"features",className:"features-section",children:[(0,a.jsxs)("div",{className:"section-header",children:[(0,a.jsx)("span",{className:"section-tag",children:"Features"}),(0,a.jsx)("h2",{children:"Everything You Need"}),(0,a.jsx)("p",{children:"Built for developers who want AI agents that actually work together."})]}),(0,a.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,a.jsxs)("div",{className:"feature-card",style:{animationDelay:"".concat(.1*s,"s")},children:[(0,a.jsx)("div",{className:"feature-icon",children:e.icon}),(0,a.jsx)("h3",{children:e.title}),(0,a.jsx)("p",{children:e.description})]},s))})]})}function x(){return(0,a.jsxs)("section",{className:"providers-section",children:[(0,a.jsxs)("div",{className:"section-header",children:[(0,a.jsx)("span",{className:"section-tag",children:"Providers"}),(0,a.jsx)("h2",{children:"Bring Your Own Agents"}),(0,a.jsx)("p",{children:"Use any AI provider. Mix and match for the perfect team."})]}),(0,a.jsx)("div",{className:"providers-grid",children:Object.entries(t).map(e=>{let[s,n]=e;return(0,a.jsxs)("div",{className:"provider-card",style:{"--provider-color":n.color},children:[(0,a.jsx)("div",{className:"provider-icon",children:n.icon}),(0,a.jsx)("div",{className:"provider-name",children:n.name}),(0,a.jsx)("div",{className:"provider-status",children:"Supported"})]},s)})})]})}function j(){return(0,a.jsxs)("section",{id:"pricing",className:"pricing-section",children:[(0,a.jsxs)("div",{className:"section-header",children:[(0,a.jsx)("span",{className:"section-tag",children:"Pricing"}),(0,a.jsx)("h2",{children:"Simple, Transparent Pricing"}),(0,a.jsx)("p",{children:"Start free. Scale as you grow. No hidden fees."})]}),(0,a.jsx)("div",{className:"pricing-grid",children:[{name:"Free",price:"$0",period:"forever",description:"Try AI agent workflows",features:["1 workspace","2 repositories","2 concurrent agents","5 compute hours/month","Shared CPU","Community support"],cta:"Get Started",highlighted:!1},{name:"Pro",price:"$69",period:"/month",description:"For professional developers",features:["5 workspaces","10 repositories","5 concurrent agents","50 compute hours/month","Auto-scaling","Session persistence","Email support"],cta:"Start Free Trial",highlighted:!0},{name:"Team",price:"$129",period:"/month",description:"For growing teams",features:["20 workspaces","100 repositories","50 concurrent agents","500 compute hours/month","Dedicated CPU","Priority support","Audit logs"],cta:"Start Free Trial",highlighted:!1},{name:"Enterprise",price:"$499",period:"/month",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,a.jsxs)("div",{className:"pricing-card ".concat(e.highlighted?"highlighted":""),children:[e.highlighted&&(0,a.jsx)("div",{className:"popular-badge",children:"Most Popular"}),(0,a.jsxs)("div",{className:"pricing-header",children:[(0,a.jsx)("h3",{children:e.name}),(0,a.jsxs)("div",{className:"pricing-price",children:[(0,a.jsx)("span",{className:"price",children:e.price}),(0,a.jsx)("span",{className:"period",children:e.period})]}),(0,a.jsx)("p",{className:"pricing-description",children:e.description})]}),(0,a.jsx)("ul",{className:"pricing-features",children:e.features.map((e,s)=>(0,a.jsxs)("li",{children:[(0,a.jsx)("span",{className:"check",children:"✓"}),(0,a.jsx)("span",{children:e})]},s))}),(0,a.jsx)("a",{href:"/signup",className:"btn-".concat(e.highlighted?"primary":"ghost"," btn-full"),children:e.cta})]},s))})]})}function g(){return(0,a.jsxs)("section",{className:"cta-section",children:[(0,a.jsxs)("div",{className:"cta-content",children:[(0,a.jsx)("h2",{children:"Ready to Orchestrate?"}),(0,a.jsx)("p",{children:"Join thousands of developers building with AI agent teams."}),(0,a.jsxs)("div",{className:"cta-buttons",children:[(0,a.jsxs)("a",{href:"/signup",className:"btn-primary btn-large",children:[(0,a.jsx)("span",{children:"Start Building Free"}),(0,a.jsx)("span",{className:"btn-arrow",children:"→"})]}),(0,a.jsx)("a",{href:"https://docs.agent-relay.com/",className:"btn-ghost btn-large",children:"Read the Docs"})]})]}),(0,a.jsxs)("div",{className:"cta-terminal",children:[(0,a.jsxs)("div",{className:"terminal-header",children:[(0,a.jsx)("span",{className:"terminal-prompt",children:"$"}),(0,a.jsx)("span",{className:"terminal-text",children:"agent-relay cloud link"})]}),(0,a.jsxs)("div",{className:"terminal-output",children:[(0,a.jsx)("span",{className:"output-line",children:"✓ Machine linked to Agent Relay Cloud"}),(0,a.jsx)("span",{className:"output-line",children:"✓ Syncing with workspace: my-project"}),(0,a.jsx)("span",{className:"output-line",children:"✓ 3 agents online: Lead, Backend, Frontend"}),(0,a.jsx)("span",{className:"output-line"}),(0,a.jsx)("span",{className:"output-line dim",children:'$ agent-relay cloud send Lead "Start the auth module"'}),(0,a.jsx)("span",{className:"output-line cursor",children:"✓ Message sent to Lead on cloud-workspace"})]})]})]})}function f(){return(0,a.jsxs)("footer",{className:"footer",children:[(0,a.jsxs)("div",{className:"footer-inner",children:[(0,a.jsxs)("div",{className:"footer-brand",children:[(0,a.jsxs)("a",{href:"/",className:"footer-logo",children:[(0,a.jsx)(i.K7,{size:24,withGlow:!0}),(0,a.jsx)("span",{className:"logo-text",children:"Agent Relay"})]}),(0,a.jsx)("p",{children:"Orchestrate AI agents like a symphony."})]}),(0,a.jsxs)("div",{className:"footer-links",children:[(0,a.jsxs)("div",{className:"footer-column",children:[(0,a.jsx)("h4",{children:"Product"}),(0,a.jsx)("a",{href:"#features",children:"Features"}),(0,a.jsx)("a",{href:"/pricing",children:"Pricing"}),(0,a.jsx)("a",{href:"https://docs.agent-relay.com/",children:"Documentation"}),(0,a.jsx)("a",{href:"/changelog",children:"Changelog"})]}),(0,a.jsxs)("div",{className:"footer-column",children:[(0,a.jsx)("h4",{children:"Company"}),(0,a.jsx)("a",{href:"/about",children:"About"}),(0,a.jsx)("a",{href:"/blog",children:"Blog"}),(0,a.jsx)("a",{href:"/careers",children:"Careers"}),(0,a.jsx)("a",{href:"/contact",children:"Contact"})]}),(0,a.jsxs)("div",{className:"footer-column",children:[(0,a.jsx)("h4",{children:"Legal"}),(0,a.jsx)("a",{href:"/privacy",children:"Privacy"}),(0,a.jsx)("a",{href:"/terms",children:"Terms"}),(0,a.jsx)("a",{href:"/security",children:"Security"})]})]})]}),(0,a.jsxs)("div",{className:"footer-bottom",children:[(0,a.jsx)("p",{children:"\xa9 2026 Agent Relay. All rights reserved."}),(0,a.jsxs)("div",{className:"social-links",children:[(0,a.jsx)("a",{href:"https://github.com/AgentWorkforce/relay","aria-label":"GitHub",children:(0,a.jsx)(N,{})}),(0,a.jsx)("a",{href:"https://twitter.com/agent_relay","aria-label":"Twitter",children:(0,a.jsx)(b,{})})]})]})]})}function v(){return(0,a.jsxs)("div",{className:"grid-bg",children:[(0,a.jsx)("div",{className:"grid-lines"}),(0,a.jsx)("div",{className:"grid-glow"})]})}function y(){return(0,a.jsxs)("div",{className:"glow-orbs",children:[(0,a.jsx)("div",{className:"orb orb-1"}),(0,a.jsx)("div",{className:"orb orb-2"}),(0,a.jsx)("div",{className:"orb orb-3"})]})}function N(){return(0,a.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.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,a.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.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"})})}let w=[{id:"free",name:"Free",price:0,period:"forever",tagline:"Try AI agent workflows",description:"Explore agent orchestration with limited resources. Perfect for testing.",limits:{workspaces:1,repos:2,concurrentAgents:2,computeHours:5},features:[{name:"Workspaces",value:"1",included:!0},{name:"Repositories",value:"2",included:!0},{name:"Concurrent agents",value:"2",included:!0},{name:"Compute hours/month",value:"5",included:!0},{name:"CPU type",value:"Shared",included:!0},{name:"Coordinator agents",value:null,included:!1},{name:"Auto-scaling",value:null,included:!1},{name:"Session persistence",value:null,included:!1},{name:"Priority support",value:null,included:!1},{name:"SSO/SAML",value:null,included:!1}],cta:"Get Started Free",ctaLink:"/signup",highlighted:!1},{id:"pro",name:"Pro",price:69,period:"/month",tagline:"For professional developers",description:"Build with AI agents daily. Includes auto-scaling and session persistence.",limits:{workspaces:5,repos:10,concurrentAgents:5,computeHours:50},features:[{name:"Workspaces",value:"5",included:!0},{name:"Repositories",value:"10",included:!0},{name:"Concurrent agents",value:"5",included:!0},{name:"Compute hours/month",value:"50",included:!0},{name:"CPU type",value:"Shared",included:!0},{name:"Coordinator agents",value:"Yes",included:!0},{name:"Auto-scaling",value:"Yes",included:!0},{name:"Session persistence",value:"Yes",included:!0},{name:"Priority support",value:null,included:!1},{name:"SSO/SAML",value:null,included:!1}],cta:"Start Free Trial",ctaLink:"/signup?plan=pro",highlighted:!0,badge:"Most Popular"},{id:"team",name:"Team",price:129,period:"/month",tagline:"For growing teams",description:"Dedicated CPUs, priority support, and team collaboration features.",limits:{workspaces:20,repos:100,concurrentAgents:10,computeHours:200},features:[{name:"Workspaces",value:"20",included:!0},{name:"Repositories",value:"100",included:!0},{name:"Concurrent agents",value:"10",included:!0},{name:"Compute hours/month",value:"200",included:!0},{name:"CPU type",value:"Dedicated",included:!0},{name:"Coordinator agents",value:"Yes",included:!0},{name:"Auto-scaling",value:"Yes",included:!0},{name:"Session persistence",value:"Yes",included:!0},{name:"Priority support",value:"Yes",included:!0},{name:"SSO/SAML",value:null,included:!1}],cta:"Start Free Trial",ctaLink:"/signup?plan=team",highlighted:!1},{id:"enterprise",name:"Enterprise",price:499,period:"/month",tagline:"For organizations at scale",description:"Unlimited resources, SSO, SLA guarantees, and dedicated support.",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:"CPU type",value:"Dedicated",included:!0},{name:"Coordinator agents",value:"Yes",included:!0},{name:"Auto-scaling",value:"Yes",included:!0},{name:"Session persistence",value:"Yes",included:!0},{name:"Priority support",value:"Dedicated",included:!0},{name:"SSO/SAML",value:"Yes",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 k(){let[e,s]=(0,r.useState)("monthly"),[n,i]=(0,r.useState)(null);return(0,a.jsxs)("div",{className:"pricing-page",children:[(0,a.jsxs)("div",{className:"pricing-bg",children:[(0,a.jsx)(W,{}),(0,a.jsx)(D,{})]}),(0,a.jsx)(S,{}),(0,a.jsxs)("main",{children:[(0,a.jsx)(C,{billingCycle:e,setBillingCycle:s}),(0,a.jsx)(I,{billingCycle:e}),(0,a.jsx)(T,{}),(0,a.jsx)(R,{openFaq:n,setOpenFaq:i}),(0,a.jsx)(E,{})]}),(0,a.jsx)(L,{})]})}function S(){let[e,s]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let e=()=>s(window.scrollY>50);return window.addEventListener("scroll",e),()=>window.removeEventListener("scroll",e)},[]),(0,a.jsx)("nav",{className:"nav ".concat(e?"scrolled":""),children:(0,a.jsxs)("div",{className:"nav-inner",children:[(0,a.jsxs)("a",{href:"/",className:"nav-logo",children:[(0,a.jsx)(i.K7,{size:28,withGlow:!0}),(0,a.jsx)("span",{className:"logo-text",children:"Agent Relay"})]}),(0,a.jsxs)("div",{className:"nav-links",children:[(0,a.jsx)("a",{href:"/#demo",children:"Demo"}),(0,a.jsx)("a",{href:"/#features",children:"Features"}),(0,a.jsx)("a",{href:"/pricing",className:"active",children:"Pricing"}),(0,a.jsx)("a",{href:"https://docs.agent-relay.com/",className:"nav-docs",children:"Docs"})]}),(0,a.jsxs)("div",{className:"nav-actions",children:[(0,a.jsx)("a",{href:"/login",className:"btn-ghost",children:"Sign In"}),(0,a.jsx)("a",{href:"/signup",className:"btn-primary",children:"Get Started"})]})]})})}function C(e){let{billingCycle:s,setBillingCycle:n}=e;return(0,a.jsx)("section",{className:"pricing-hero",children:(0,a.jsxs)("div",{className:"pricing-hero-content",children:[(0,a.jsxs)("div",{className:"hero-badge",children:[(0,a.jsx)("span",{className:"badge-icon",children:"◈"}),(0,a.jsx)("span",{children:"Simple, transparent pricing"})]}),(0,a.jsxs)("h1",{children:[(0,a.jsx)("span",{className:"title-line",children:"Choose Your"}),(0,a.jsx)("span",{className:"title-line gradient",children:"Mission Control"})]}),(0,a.jsxs)("p",{className:"hero-subtitle",children:["Start free. Scale as you grow. Pay only for what you use.",(0,a.jsx)("br",{}),"All plans include a 14-day free trial."]}),(0,a.jsxs)("div",{className:"billing-toggle",children:[(0,a.jsx)("button",{className:"monthly"===s?"active":"",onClick:()=>n("monthly"),children:"Monthly"}),(0,a.jsxs)("button",{className:"annual"===s?"active":"",onClick:()=>n("annual"),children:["Annual",(0,a.jsx)("span",{className:"save-badge",children:"Save 20%"})]})]})]})})}function I(e){let{billingCycle:s}=e,n=e=>{if(null===e.price)return"Custom";if(0===e.price)return"$0";let n="annual"===s?Math.floor(.8*e.price):e.price;return"$".concat(n)};return(0,a.jsx)("section",{className:"plans-section",children:(0,a.jsx)("div",{className:"plans-grid",children:w.map(e=>(0,a.jsxs)("div",{className:"plan-card ".concat(e.highlighted?"highlighted":""),children:[e.badge&&(0,a.jsx)("div",{className:"plan-badge",children:e.badge}),(0,a.jsxs)("div",{className:"plan-header",children:[(0,a.jsx)("h3",{children:e.name}),(0,a.jsx)("p",{className:"plan-tagline",children:e.tagline})]}),(0,a.jsxs)("div",{className:"plan-price",children:[(0,a.jsx)("span",{className:"price",children:n(e)}),null!==e.price&&e.price>0&&(0,a.jsx)("span",{className:"period",children:"annual"===s?"/mo, billed annually":"/month"}),0===e.price&&(0,a.jsx)("span",{className:"period",children:"forever"})]}),(0,a.jsx)("p",{className:"plan-description",children:e.description}),(0,a.jsxs)("div",{className:"plan-limits",children:[(0,a.jsxs)("div",{className:"limit-item",children:[(0,a.jsx)("span",{className:"limit-icon",children:"◇"}),(0,a.jsx)("span",{className:"limit-value",children:e.limits.workspaces===1/0?"∞":e.limits.workspaces}),(0,a.jsx)("span",{className:"limit-label",children:"workspaces"})]}),(0,a.jsxs)("div",{className:"limit-item",children:[(0,a.jsx)("span",{className:"limit-icon",children:"◈"}),(0,a.jsx)("span",{className:"limit-value",children:e.limits.repos===1/0?"∞":e.limits.repos}),(0,a.jsx)("span",{className:"limit-label",children:"repos"})]}),(0,a.jsxs)("div",{className:"limit-item",children:[(0,a.jsx)("span",{className:"limit-icon",children:"⬡"}),(0,a.jsx)("span",{className:"limit-value",children:e.limits.concurrentAgents===1/0?"∞":e.limits.concurrentAgents}),(0,a.jsx)("span",{className:"limit-label",children:"agents"})]}),(0,a.jsxs)("div",{className:"limit-item",children:[(0,a.jsx)("span",{className:"limit-icon",children:"⏱"}),(0,a.jsx)("span",{className:"limit-value",children:e.limits.computeHours===1/0?"∞":e.limits.computeHours}),(0,a.jsx)("span",{className:"limit-label",children:"hours/mo"})]})]}),(0,a.jsx)("a",{href:e.ctaLink,className:"btn-".concat(e.highlighted?"primary":"ghost"," btn-full"),children:e.cta})]},e.id))})})}function T(){let e=w[0].features.map(e=>e.name);return(0,a.jsxs)("section",{className:"comparison-section",children:[(0,a.jsxs)("div",{className:"section-header",children:[(0,a.jsx)("span",{className:"section-tag",children:"Compare Plans"}),(0,a.jsx)("h2",{children:"Feature Comparison"}),(0,a.jsx)("p",{children:"See exactly what's included in each plan."})]}),(0,a.jsx)("div",{className:"comparison-table-wrapper",children:(0,a.jsxs)("table",{className:"comparison-table",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"feature-col",children:"Feature"}),w.map(e=>(0,a.jsx)("th",{className:e.highlighted?"highlighted":"",children:e.name},e.id))]})}),(0,a.jsx)("tbody",{children:e.map((e,s)=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{className:"feature-col",children:e}),w.map(e=>{let n=e.features[s];return(0,a.jsx)("td",{className:e.highlighted?"highlighted":"",children:n.included?n.value?(0,a.jsx)("span",{className:"feature-value",children:n.value}):(0,a.jsx)("span",{className:"check",children:"✓"}):(0,a.jsx)("span",{className:"dash",children:"—"})},e.id)})]},e))})]})})]})}function R(e){let{openFaq:s,setOpenFaq:n}=e;return(0,a.jsxs)("section",{className:"faq-section",children:[(0,a.jsxs)("div",{className:"section-header",children:[(0,a.jsx)("span",{className:"section-tag",children:"FAQ"}),(0,a.jsx)("h2",{children:"Questions? Answers."}),(0,a.jsx)("p",{children:"Everything you need to know about Agent Relay pricing."})]}),(0,a.jsx)("div",{className:"faq-grid",children:A.map((e,r)=>(0,a.jsxs)("div",{className:"faq-item ".concat(s===r?"open":""),onClick:()=>n(s===r?null:r),children:[(0,a.jsxs)("div",{className:"faq-question",children:[(0,a.jsx)("span",{children:e.q}),(0,a.jsx)("span",{className:"faq-toggle",children:s===r?"−":"+"})]}),(0,a.jsx)("div",{className:"faq-answer",children:(0,a.jsx)("p",{children:e.a})})]},r))})]})}function E(){return(0,a.jsx)("section",{className:"cta-section",children:(0,a.jsxs)("div",{className:"cta-card",children:[(0,a.jsxs)("div",{className:"cta-content",children:[(0,a.jsx)("h2",{children:"Ready to orchestrate?"}),(0,a.jsx)("p",{children:"Start free and upgrade when you need more power."}),(0,a.jsxs)("div",{className:"cta-buttons",children:[(0,a.jsxs)("a",{href:"/signup",className:"btn-primary btn-large",children:[(0,a.jsx)("span",{children:"Get Started Free"}),(0,a.jsx)("span",{className:"btn-arrow",children:"→"})]}),(0,a.jsx)("a",{href:"/contact",className:"btn-ghost btn-large",children:"Talk to Sales"})]})]}),(0,a.jsx)("div",{className:"cta-visual",children:(0,a.jsxs)("div",{className:"orbit",children:[(0,a.jsx)("div",{className:"orbit-ring ring-1"}),(0,a.jsx)("div",{className:"orbit-ring ring-2"}),(0,a.jsx)("div",{className:"orbit-ring ring-3"}),(0,a.jsx)("div",{className:"orbit-center",children:(0,a.jsx)(i.K7,{size:40,withGlow:!0})}),(0,a.jsx)("div",{className:"orbit-dot dot-1",children:"◈"}),(0,a.jsx)("div",{className:"orbit-dot dot-2",children:"⬡"}),(0,a.jsx)("div",{className:"orbit-dot dot-3",children:"◇"})]})})]})})}function L(){return(0,a.jsxs)("footer",{className:"footer",children:[(0,a.jsxs)("div",{className:"footer-inner",children:[(0,a.jsxs)("div",{className:"footer-brand",children:[(0,a.jsxs)("a",{href:"/",className:"footer-logo",children:[(0,a.jsx)(i.K7,{size:24,withGlow:!0}),(0,a.jsx)("span",{className:"logo-text",children:"Agent Relay"})]}),(0,a.jsx)("p",{children:"Orchestrate AI agents like a symphony."})]}),(0,a.jsxs)("div",{className:"footer-links",children:[(0,a.jsxs)("div",{className:"footer-column",children:[(0,a.jsx)("h4",{children:"Product"}),(0,a.jsx)("a",{href:"/#features",children:"Features"}),(0,a.jsx)("a",{href:"/pricing",children:"Pricing"}),(0,a.jsx)("a",{href:"https://docs.agent-relay.com/",children:"Documentation"}),(0,a.jsx)("a",{href:"/changelog",children:"Changelog"})]}),(0,a.jsxs)("div",{className:"footer-column",children:[(0,a.jsx)("h4",{children:"Company"}),(0,a.jsx)("a",{href:"/about",children:"About"}),(0,a.jsx)("a",{href:"/blog",children:"Blog"}),(0,a.jsx)("a",{href:"/careers",children:"Careers"}),(0,a.jsx)("a",{href:"/contact",children:"Contact"})]}),(0,a.jsxs)("div",{className:"footer-column",children:[(0,a.jsx)("h4",{children:"Legal"}),(0,a.jsx)("a",{href:"/privacy",children:"Privacy"}),(0,a.jsx)("a",{href:"/terms",children:"Terms"}),(0,a.jsx)("a",{href:"/security",children:"Security"})]})]})]}),(0,a.jsxs)("div",{className:"footer-bottom",children:[(0,a.jsx)("p",{children:"\xa9 2025 Agent Relay. All rights reserved."}),(0,a.jsxs)("div",{className:"social-links",children:[(0,a.jsx)("a",{href:"https://github.com/AgentWorkforce/relay","aria-label":"GitHub",children:(0,a.jsx)(P,{})}),(0,a.jsx)("a",{href:"https://twitter.com/agent_relay","aria-label":"Twitter",children:(0,a.jsx)(O,{})})]})]})]})}function W(){return(0,a.jsxs)("div",{className:"grid-bg",children:[(0,a.jsx)("div",{className:"grid-lines"}),(0,a.jsx)("div",{className:"grid-glow"})]})}function D(){return(0,a.jsxs)("div",{className:"glow-orbs",children:[(0,a.jsx)("div",{className:"orb orb-1"}),(0,a.jsx)("div",{className:"orb orb-2"})]})}function P(){return(0,a.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.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 O(){return(0,a.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.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 F(e){let{title:s,titleLink:n,subtitle:r,children:i,lastUpdated:t}=e;return(0,a.jsxs)("div",{className:"landing-page static-page",children:[(0,a.jsxs)("div",{className:"landing-bg",children:[(0,a.jsx)(H,{}),(0,a.jsx)(U,{})]}),(0,a.jsx)(Y,{}),(0,a.jsxs)("main",{children:[(0,a.jsx)("section",{className:"static-hero",children:(0,a.jsxs)("div",{className:"static-hero-content",children:[(0,a.jsx)("h1",{children:n?(0,a.jsx)("a",{href:n,style:{color:"inherit",textDecoration:"none"},children:s}):s}),r&&(0,a.jsx)("p",{className:"static-subtitle",children:r}),t&&(0,a.jsxs)("p",{className:"static-updated",children:["Last updated: ",t]})]})}),(0,a.jsx)("section",{className:"static-content",children:(0,a.jsx)("div",{className:"content-container",children:i})})]}),(0,a.jsx)(G,{})]})}function Y(){return(0,a.jsx)("nav",{className:"nav scrolled",children:(0,a.jsxs)("div",{className:"nav-inner",children:[(0,a.jsxs)("a",{href:"/",className:"nav-logo",children:[(0,a.jsx)(i.K7,{size:28,withGlow:!0}),(0,a.jsx)("span",{className:"logo-text",children:"Agent Relay"})]}),(0,a.jsxs)("div",{className:"nav-links",children:[(0,a.jsx)("a",{href:"/#demo",children:"Demo"}),(0,a.jsx)("a",{href:"/#features",children:"Features"}),(0,a.jsx)("a",{href:"/pricing",children:"Pricing"}),(0,a.jsx)("a",{href:"https://docs.agent-relay.com/",className:"nav-docs",children:"Docs"})]}),(0,a.jsxs)("div",{className:"nav-actions",children:[(0,a.jsx)("a",{href:"/login",className:"btn-ghost",children:"Sign In"}),(0,a.jsx)("a",{href:"/signup",className:"btn-primary",children:"Get Started"})]})]})})}function G(){return(0,a.jsxs)("footer",{className:"footer",children:[(0,a.jsxs)("div",{className:"footer-inner",children:[(0,a.jsxs)("div",{className:"footer-brand",children:[(0,a.jsxs)("a",{href:"/",className:"footer-logo",children:[(0,a.jsx)(i.K7,{size:24,withGlow:!0}),(0,a.jsx)("span",{className:"logo-text",children:"Agent Relay"})]}),(0,a.jsx)("p",{children:"Orchestrate AI agents like a symphony."})]}),(0,a.jsxs)("div",{className:"footer-links",children:[(0,a.jsxs)("div",{className:"footer-column",children:[(0,a.jsx)("h4",{children:"Product"}),(0,a.jsx)("a",{href:"/#features",children:"Features"}),(0,a.jsx)("a",{href:"/pricing",children:"Pricing"}),(0,a.jsx)("a",{href:"https://docs.agent-relay.com/",children:"Documentation"}),(0,a.jsx)("a",{href:"/changelog",children:"Changelog"})]}),(0,a.jsxs)("div",{className:"footer-column",children:[(0,a.jsx)("h4",{children:"Company"}),(0,a.jsx)("a",{href:"/about",children:"About"}),(0,a.jsx)("a",{href:"/blog",children:"Blog"}),(0,a.jsx)("a",{href:"/careers",children:"Careers"}),(0,a.jsx)("a",{href:"/contact",children:"Contact"})]}),(0,a.jsxs)("div",{className:"footer-column",children:[(0,a.jsx)("h4",{children:"Legal"}),(0,a.jsx)("a",{href:"/privacy",children:"Privacy"}),(0,a.jsx)("a",{href:"/terms",children:"Terms"}),(0,a.jsx)("a",{href:"/security",children:"Security"})]})]})]}),(0,a.jsxs)("div",{className:"footer-bottom",children:[(0,a.jsx)("p",{children:"\xa9 2026 Agent Relay. All rights reserved."}),(0,a.jsxs)("div",{className:"social-links",children:[(0,a.jsx)("a",{href:"https://github.com/AgentWorkforce/relay","aria-label":"GitHub",children:(0,a.jsx)(B,{})}),(0,a.jsx)("a",{href:"https://twitter.com/agent_relay","aria-label":"Twitter",children:(0,a.jsx)(M,{})})]})]})]})}function H(){return(0,a.jsxs)("div",{className:"grid-bg",children:[(0,a.jsx)("div",{className:"grid-lines"}),(0,a.jsx)("div",{className:"grid-glow"})]})}function U(){return(0,a.jsxs)("div",{className:"glow-orbs",children:[(0,a.jsx)("div",{className:"orb orb-1"}),(0,a.jsx)("div",{className:"orb orb-2"}),(0,a.jsx)("div",{className:"orb orb-3"})]})}function B(){return(0,a.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.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 M(){return(0,a.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.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 q(){return(0,a.jsxs)(F,{title:"Privacy Policy",subtitle:"We take your privacy seriously. Here's how we handle your data.",lastUpdated:"January 15, 2026",children:[(0,a.jsx)("h2",{children:"Overview"}),(0,a.jsx)("p",{children:'Agent Relay ("we", "our", or "us") is committed to protecting your privacy. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our AI agent orchestration platform.'}),(0,a.jsx)("h2",{children:"Information We Collect"}),(0,a.jsx)("h3",{children:"Account Information"}),(0,a.jsx)("p",{children:"When you create an account, we collect your name, email address, and authentication credentials. If you sign up using a third-party service (like GitHub), we receive basic profile information from that service."}),(0,a.jsx)("h3",{children:"Usage Data"}),(0,a.jsx)("p",{children:"We automatically collect information about how you interact with our platform, including:"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{children:"Agent sessions and message logs (stored encrypted)"}),(0,a.jsx)("li",{children:"API requests and response metadata"}),(0,a.jsx)("li",{children:"Feature usage patterns and preferences"}),(0,a.jsx)("li",{children:"Browser type, device information, and IP address"})]}),(0,a.jsx)("h3",{children:"Code and Repository Data"}),(0,a.jsx)("p",{children:"When you connect repositories to Agent Relay, we access only the files and metadata necessary to enable agent functionality. We do not store your source code permanently; it is processed in memory and cached temporarily for active sessions only."}),(0,a.jsx)("h2",{children:"How We Use Your Information"}),(0,a.jsx)("p",{children:"We use the collected information to:"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{children:"Provide, maintain, and improve our services"}),(0,a.jsx)("li",{children:"Process transactions and send related information"}),(0,a.jsx)("li",{children:"Send technical notices, updates, and support messages"}),(0,a.jsx)("li",{children:"Respond to your comments, questions, and requests"}),(0,a.jsx)("li",{children:"Monitor and analyze usage patterns to improve user experience"}),(0,a.jsx)("li",{children:"Detect, prevent, and address technical issues and fraud"})]}),(0,a.jsx)("h2",{children:"Data Sharing"}),(0,a.jsx)("p",{children:"We do not sell your personal information. We may share data with:"}),(0,a.jsxs)("ul",{children:[(0,a.jsxs)("li",{children:[(0,a.jsx)("strong",{children:"AI Provider Partners:"})," Your prompts and context are sent to AI providers (Anthropic, OpenAI, Google) to enable agent functionality. These providers have their own privacy policies."]}),(0,a.jsxs)("li",{children:[(0,a.jsx)("strong",{children:"Service Providers:"})," We use trusted third parties for hosting, analytics, and payment processing."]}),(0,a.jsxs)("li",{children:[(0,a.jsx)("strong",{children:"Legal Requirements:"})," We may disclose information if required by law or to protect our rights."]})]}),(0,a.jsx)("h2",{children:"Data Security"}),(0,a.jsx)("p",{children:"We implement industry-standard security measures including:"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{children:"AES-256 encryption for data at rest"}),(0,a.jsx)("li",{children:"TLS 1.3 for data in transit"}),(0,a.jsx)("li",{children:"Regular security audits and penetration testing"}),(0,a.jsx)("li",{children:"Zero-knowledge credential storage"})]}),(0,a.jsx)("h2",{children:"Data Retention"}),(0,a.jsx)("p",{children:"We retain your account data for as long as your account is active. Agent session logs are retained for 30 days by default (configurable in settings). You can request deletion of your data at any time."}),(0,a.jsx)("h2",{children:"Your Rights"}),(0,a.jsx)("p",{children:"You have the right to:"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{children:"Access and export your personal data"}),(0,a.jsx)("li",{children:"Correct inaccurate information"}),(0,a.jsx)("li",{children:"Request deletion of your data"}),(0,a.jsx)("li",{children:"Opt out of marketing communications"}),(0,a.jsx)("li",{children:"Restrict processing of your data"})]}),(0,a.jsx)("h2",{children:"Cookies"}),(0,a.jsx)("p",{children:"We use essential cookies for authentication and session management. We also use analytics cookies (which you can opt out of) to understand how users interact with our platform."}),(0,a.jsx)("h2",{children:"International Transfers"}),(0,a.jsx)("p",{children:"Your data may be processed in the United States and other countries where our service providers operate. We ensure appropriate safeguards are in place for international data transfers."}),(0,a.jsx)("h2",{children:"Children's Privacy"}),(0,a.jsx)("p",{children:"Agent Relay is not intended for users under 18 years of age. We do not knowingly collect information from children."}),(0,a.jsx)("h2",{children:"Changes to This Policy"}),(0,a.jsx)("p",{children:"We may update this policy periodically. We will notify you of significant changes via email or through our platform."}),(0,a.jsx)("h2",{children:"Contact Us"}),(0,a.jsxs)("p",{children:["For privacy-related questions or to exercise your rights, contact us at"," ",(0,a.jsx)("a",{href:"mailto:privacy@agent-relay.com",children:"privacy@agent-relay.com"}),"."]})]})}function z(){return(0,a.jsxs)(F,{title:"Terms of Service",subtitle:"The rules of the road for using Agent Relay.",lastUpdated:"January 15, 2026",children:[(0,a.jsx)("h2",{children:"Agreement to Terms"}),(0,a.jsx)("p",{children:'By accessing or using Agent Relay ("Service"), you agree to be bound by these Terms of Service ("Terms"). If you do not agree, please do not use our Service.'}),(0,a.jsx)("h2",{children:"Description of Service"}),(0,a.jsx)("p",{children:"Agent Relay is an AI agent orchestration platform that enables developers to deploy, coordinate, and monitor multiple AI agents working together on software development tasks. Our Service includes web-based dashboards, APIs, and integrations with AI providers and code repositories."}),(0,a.jsx)("h2",{children:"Account Registration"}),(0,a.jsx)("p",{children:"To use certain features of the Service, you must register for an account. You agree to:"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{children:"Provide accurate, current, and complete information"}),(0,a.jsx)("li",{children:"Maintain and update your information as needed"}),(0,a.jsx)("li",{children:"Keep your password secure and confidential"}),(0,a.jsx)("li",{children:"Accept responsibility for all activities under your account"}),(0,a.jsx)("li",{children:"Notify us immediately of any unauthorized use"})]}),(0,a.jsx)("h2",{children:"Acceptable Use"}),(0,a.jsx)("p",{children:"You agree not to use the Service to:"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{children:"Violate any applicable laws or regulations"}),(0,a.jsx)("li",{children:"Generate malicious code, malware, or security exploits"}),(0,a.jsx)("li",{children:"Harass, abuse, or harm others"}),(0,a.jsx)("li",{children:"Infringe on intellectual property rights"}),(0,a.jsx)("li",{children:"Attempt to gain unauthorized access to our systems"}),(0,a.jsx)("li",{children:"Interfere with or disrupt the Service"}),(0,a.jsx)("li",{children:"Reverse engineer or decompile the Service"}),(0,a.jsx)("li",{children:"Use automated means to access the Service without permission"}),(0,a.jsx)("li",{children:"Circumvent usage limits or billing controls"})]}),(0,a.jsx)("h2",{children:"AI Provider Terms"}),(0,a.jsx)("p",{children:"Our Service integrates with third-party AI providers (Anthropic, OpenAI, Google). By using these integrations, you also agree to comply with their respective terms of service and usage policies. You are responsible for ensuring your use complies with all applicable AI provider terms."}),(0,a.jsx)("h2",{children:"Intellectual Property"}),(0,a.jsx)("h3",{children:"Your Content"}),(0,a.jsx)("p",{children:'You retain ownership of all code, data, and content you provide to the Service ("Your Content"). By using the Service, you grant us a limited license to process Your Content solely to provide the Service.'}),(0,a.jsx)("h3",{children:"Our Property"}),(0,a.jsx)("p",{children:"The Service, including its design, features, and documentation, is owned by Agent Relay and protected by intellectual property laws. You may not copy, modify, or distribute our intellectual property without permission."}),(0,a.jsx)("h2",{children:"Payment Terms"}),(0,a.jsx)("p",{children:"Paid plans are billed in advance on a monthly or annual basis. All fees are non-refundable except as required by law or as explicitly stated otherwise. We may change pricing with 30 days' notice."}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{children:"Free tier usage is subject to specified limits"}),(0,a.jsx)("li",{children:"Exceeding plan limits may result in service throttling or additional charges"}),(0,a.jsx)("li",{children:"Failed payments may result in service suspension"})]}),(0,a.jsx)("h2",{children:"Service Availability"}),(0,a.jsx)("p",{children:"We strive to maintain 99.9% uptime but do not guarantee uninterrupted access. We may perform maintenance or updates that temporarily affect availability. We are not liable for any damages resulting from service interruptions."}),(0,a.jsx)("h2",{children:"Limitation of Liability"}),(0,a.jsx)("p",{children:"TO THE MAXIMUM EXTENT PERMITTED BY LAW, AGENT RELAY SHALL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, OR ANY LOSS OF PROFITS OR REVENUES, WHETHER INCURRED DIRECTLY OR INDIRECTLY, OR ANY LOSS OF DATA, USE, GOODWILL, OR OTHER INTANGIBLE LOSSES."}),(0,a.jsx)("p",{children:"OUR TOTAL LIABILITY FOR ANY CLAIMS ARISING FROM THESE TERMS OR THE SERVICE SHALL NOT EXCEED THE AMOUNT YOU PAID US IN THE TWELVE (12) MONTHS PRECEDING THE CLAIM."}),(0,a.jsx)("h2",{children:"Disclaimer of Warranties"}),(0,a.jsx)("p",{children:'THE SERVICE IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED. WE DISCLAIM ALL WARRANTIES INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.'}),(0,a.jsx)("p",{children:"AI-generated outputs may contain errors. You are responsible for reviewing and validating all code and content produced by agents before use in production."}),(0,a.jsx)("h2",{children:"Indemnification"}),(0,a.jsx)("p",{children:"You agree to indemnify and hold harmless Agent Relay from any claims, damages, or expenses arising from your use of the Service, your violation of these Terms, or your violation of any rights of a third party."}),(0,a.jsx)("h2",{children:"Termination"}),(0,a.jsx)("p",{children:"You may terminate your account at any time through your account settings. We may suspend or terminate your access for violation of these Terms or for any other reason with notice. Upon termination, your right to use the Service ceases immediately."}),(0,a.jsx)("h2",{children:"Governing Law"}),(0,a.jsx)("p",{children:"These Terms are governed by the laws of the State of Delaware, without regard to conflict of law principles. Any disputes shall be resolved in the courts of Delaware."}),(0,a.jsx)("h2",{children:"Changes to Terms"}),(0,a.jsx)("p",{children:"We may modify these Terms at any time. Material changes will be notified via email or through the Service. Continued use after changes constitutes acceptance of the new Terms."}),(0,a.jsx)("h2",{children:"Contact"}),(0,a.jsxs)("p",{children:["Questions about these Terms? Contact us at"," ",(0,a.jsx)("a",{href:"mailto:legal@agent-relay.com",children:"legal@agent-relay.com"}),"."]})]})}function _(){return(0,a.jsxs)(F,{title:"Security",subtitle:"How we protect your code and data.",children:[(0,a.jsx)("h2",{children:"Data Handling"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{children:"Your source code is processed in isolated, ephemeral containers"}),(0,a.jsx)("li",{children:"Repository access tokens are scoped to minimum required permissions"}),(0,a.jsx)("li",{children:"All data is encrypted in transit using TLS"}),(0,a.jsx)("li",{children:"Credentials are encrypted at rest"})]}),(0,a.jsx)("h2",{children:"Authentication"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{children:"OAuth 2.0 authentication via GitHub"}),(0,a.jsx)("li",{children:"Session management with automatic timeout"})]}),(0,a.jsx)("h2",{children:"AI Providers"}),(0,a.jsx)("p",{children:"We integrate with AI providers who maintain their own security standards. We recommend reviewing each provider's data handling policies."}),(0,a.jsx)("h2",{children:"Contact"}),(0,a.jsxs)("p",{children:["For security questions or to report vulnerabilities, contact us at"," ",(0,a.jsx)("a",{href:"mailto:security@agent-relay.com",children:"security@agent-relay.com"}),"."]})]})}function K(){return(0,a.jsxs)(F,{title:"About Agent Relay",subtitle:"Building the future of AI-powered software development.",children:[(0,a.jsx)("h2",{children:"Our Mission"}),(0,a.jsx)("p",{children:"We believe that AI agents working together can accomplish far more than any single agent or human developer alone. Agent Relay exists to make multi-agent orchestration accessible, reliable, and delightful for every developer and team."}),(0,a.jsx)("h2",{children:"The Problem We're Solving"}),(0,a.jsx)("p",{children:"AI coding assistants are transforming software development, but they work in isolation. Developers juggle multiple AI tools, copy-paste context between them, and manually coordinate their outputs. This fragmented workflow limits what AI can actually accomplish."}),(0,a.jsx)("p",{children:"Agent Relay changes that. We provide the infrastructure for AI agents to communicate, collaborate, and complete complex tasks together—like a well-coordinated development team that never sleeps."}),(0,a.jsx)("h2",{children:"The Team"}),(0,a.jsx)("p",{children:"Agent Relay was founded by two engineers passionate about developer tools and AI."}),(0,a.jsxs)("div",{className:"team-grid",children:[(0,a.jsxs)("a",{href:"https://github.com/khaliqgant",target:"_blank",rel:"noopener noreferrer",className:"team-member",children:[(0,a.jsx)("div",{className:"team-avatar",children:"K"}),(0,a.jsx)("h4",{children:"Khaliq Gant"}),(0,a.jsx)("p",{children:"Co-founder"})]}),(0,a.jsxs)("a",{href:"https://github.com/willwashburn",target:"_blank",rel:"noopener noreferrer",className:"team-member",children:[(0,a.jsx)("div",{className:"team-avatar",children:"W"}),(0,a.jsx)("h4",{children:"Will Washburn"}),(0,a.jsx)("p",{children:"Co-founder"})]})]}),(0,a.jsx)("h2",{children:"Our Values"}),(0,a.jsxs)("div",{className:"values-grid",children:[(0,a.jsxs)("div",{className:"value-card",children:[(0,a.jsx)("h4",{children:"Developer-First"}),(0,a.jsx)("p",{children:'Every decision we make starts with: "Does this make developers\' lives better?"'})]}),(0,a.jsxs)("div",{className:"value-card",children:[(0,a.jsx)("h4",{children:"Trust & Security"}),(0,a.jsx)("p",{children:"Your code is sacred. We treat security as a feature, not an afterthought."})]}),(0,a.jsxs)("div",{className:"value-card",children:[(0,a.jsx)("h4",{children:"Open Ecosystem"}),(0,a.jsx)("p",{children:"We integrate with the tools you already use. No vendor lock-in, ever."})]}),(0,a.jsxs)("div",{className:"value-card",children:[(0,a.jsx)("h4",{children:"Ship Fast, Learn Faster"}),(0,a.jsx)("p",{children:"We iterate quickly based on real feedback from real developers."})]})]}),(0,a.jsx)("h2",{children:"Get in Touch"}),(0,a.jsx)("p",{children:"Have questions or want to learn more? We'd love to hear from you."}),(0,a.jsxs)("ul",{children:[(0,a.jsxs)("li",{children:["General inquiries: ",(0,a.jsx)("a",{href:"mailto:hello@agent-relay.com",children:"hello@agent-relay.com"})]}),(0,a.jsxs)("li",{children:["Support: ",(0,a.jsx)("a",{href:"mailto:support@agent-relay.com",children:"support@agent-relay.com"})]}),(0,a.jsxs)("li",{children:["Careers: ",(0,a.jsx)("a",{href:"mailto:hiring@agent-relay.com",children:"hiring@agent-relay.com"})]})]})]})}function V(){return(0,a.jsxs)(F,{title:"Contact Us",subtitle:"Have questions? We'd love to hear from you.",children:[(0,a.jsx)("h2",{children:"Get in Touch"}),(0,a.jsx)("p",{children:"Whether you have a question about features, pricing, need a demo, or anything else, our team is ready to answer all your questions."}),(0,a.jsxs)("div",{className:"value-card",style:{marginTop:"32px",marginBottom:"32px"},children:[(0,a.jsx)("h3",{style:{marginBottom:"16px"},children:"Email"}),(0,a.jsx)("p",{style:{marginBottom:"24px"},children:(0,a.jsx)("a",{href:"mailto:hello@agent-relay.com",style:{fontSize:"1.1em"},children:"hello@agent-relay.com"})}),(0,a.jsx)("h3",{style:{marginBottom:"16px"},children:"Twitter / X"}),(0,a.jsx)("p",{style:{marginBottom:0},children:(0,a.jsx)("a",{href:"https://twitter.com/agent_relay",target:"_blank",rel:"noopener noreferrer",style:{fontSize:"1.1em"},children:"@agent_relay"})})]}),(0,a.jsx)("h2",{children:"Open Source"}),(0,a.jsxs)("p",{children:["Agent Relay is open source. You can find us on GitHub at"," ",(0,a.jsx)("a",{href:"https://github.com/AgentWorkforce/relay",target:"_blank",rel:"noopener noreferrer",children:"github.com/AgentWorkforce/relay"}),"."]})]})}function X(){return(0,r.useEffect)(()=>{window.location.href="https://docs.agent-relay.com/"},[]),(0,a.jsxs)(F,{title:"Documentation",subtitle:"Redirecting to docs.agent-relay.com...",children:[(0,a.jsx)("p",{style:{textAlign:"center",marginTop:"32px"},children:"You are being redirected to our documentation site."}),(0,a.jsxs)("p",{style:{textAlign:"center"},children:["If you are not redirected automatically, please click"," ",(0,a.jsx)("a",{href:"https://docs.agent-relay.com/",children:"here"}),"."]}),(0,a.jsxs)("div",{className:"docs-nav",style:{marginTop:"48px"},children:[(0,a.jsxs)("a",{href:"https://docs.agent-relay.com/quickstart",className:"docs-nav-card",children:[(0,a.jsx)("h3",{children:"Quickstart Guide"}),(0,a.jsx)("p",{children:"Get up and running with Agent Relay in minutes."})]}),(0,a.jsxs)("a",{href:"https://docs.agent-relay.com/concepts",className:"docs-nav-card",children:[(0,a.jsx)("h3",{children:"Core Concepts"}),(0,a.jsx)("p",{children:"Learn about agents, workspaces, and messaging."})]})]})]})}let $="https://github.com/AgentWorkforce/relay/blob/main/CHANGELOG.md";function J(){return(0,r.useEffect)(()=>{window.location.href=$},[]),(0,a.jsxs)(F,{title:"Changelog",subtitle:"Redirecting to GitHub...",children:[(0,a.jsx)("p",{style:{textAlign:"center",marginTop:"32px"},children:"You are being redirected to our changelog on GitHub."}),(0,a.jsxs)("p",{style:{textAlign:"center"},children:["If you are not redirected automatically, please click"," ",(0,a.jsx)("a",{href:$,children:"here"}),"."]})]})}function Q(){return(0,a.jsxs)(F,{title:"Careers",subtitle:"Help us build the future of AI-powered development.",children:[(0,a.jsx)("h2",{children:"Join Us"}),(0,a.jsx)("p",{children:"We're building something that will fundamentally change how software gets built. AI agents working together as coordinated teams is the next evolution of developer tools, and we're at the forefront of making it happen."}),(0,a.jsxs)("p",{children:["If you think you'd be a great fit, send us an email at"," ",(0,a.jsx)("a",{href:"mailto:hiring@agent-relay.com",children:"hiring@agent-relay.com"})," with a bit about yourself and what you're interested in working on."]}),(0,a.jsx)("h2",{children:"What We Value"}),(0,a.jsxs)("div",{className:"values-grid",children:[(0,a.jsxs)("div",{className:"value-card",children:[(0,a.jsx)("h4",{children:"Curiosity"}),(0,a.jsx)("p",{children:"We love people who ask questions and dig deep to understand how things work."})]}),(0,a.jsxs)("div",{className:"value-card",children:[(0,a.jsx)("h4",{children:"Ownership"}),(0,a.jsx)("p",{children:"Take initiative, see things through, and take pride in your work."})]}),(0,a.jsxs)("div",{className:"value-card",children:[(0,a.jsx)("h4",{children:"Collaboration"}),(0,a.jsx)("p",{children:"Great products are built by teams that communicate well and support each other."})]}),(0,a.jsxs)("div",{className:"value-card",children:[(0,a.jsx)("h4",{children:"Impact"}),(0,a.jsx)("p",{children:"We focus on work that moves the needle for developers using our platform."})]})]}),(0,a.jsx)("h2",{children:"Contact"}),(0,a.jsxs)("p",{children:["Interested in joining us? Reach out at"," ",(0,a.jsx)("a",{href:"mailto:hiring@agent-relay.com",children:"hiring@agent-relay.com"}),"."]})]})}},8601:function(){}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[773],{1695:function(e,t,n){"use strict";var r=n(1219);n.o(r,"useRouter")&&n.d(t,{useRouter:function(){return r.useRouter}}),n.o(r,"useSearchParams")&&n.d(t,{useSearchParams:function(){return r.useSearchParams}})},4859:function(e,t,n){"use strict";var r,i;e.exports=(null==(r=n.g.process)?void 0:r.env)&&"object"==typeof(null==(i=n.g.process)?void 0:i.env)?n.g.process:n(9566)},2356:function(){},9566:function(e){!function(){var t={229:function(e){var t,n,r,i=e.exports={};function s(){throw Error("setTimeout has not been defined")}function o(){throw Error("clearTimeout has not been defined")}function u(e){if(t===setTimeout)return setTimeout(e,0);if((t===s||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:s}catch(e){t=s}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var c=[],l=!1,a=-1;function h(){l&&r&&(l=!1,r.length?c=r.concat(c):a=-1,c.length&&d())}function d(){if(!l){var e=u(h);l=!0;for(var t=c.length;t;){for(r=c,c=[];++a<t;)r&&r[a].run();a=-1,t=c.length}r=null,l=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===o||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function f(e,t){this.fun=e,this.array=t}function p(){}i.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new f(e,t)),1!==c.length||l||u(d)},f.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=p,i.addListener=p,i.once=p,i.off=p,i.removeListener=p,i.removeAllListeners=p,i.emit=p,i.prependListener=p,i.prependOnceListener=p,i.listeners=function(e){return[]},i.binding=function(e){throw Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw Error("process.chdir is not supported")},i.umask=function(){return 0}}},n={};function r(e){var i=n[e];if(void 0!==i)return i.exports;var s=n[e]={exports:{}},o=!0;try{t[e](s,s.exports,r),o=!1}finally{o&&delete n[e]}return s.exports}r.ab="//";var i=r(229);e.exports=i}()},7224:function(e,t,n){"use strict";var r=n(4859);n(2356);var i=n(7653),s=i&&"object"==typeof i&&"default"in i?i:{default:i},o=void 0!==r&&r.env&&!0,u=function(e){return"[object String]"===Object.prototype.toString.call(e)},c=function(){function e(e){var t=void 0===e?{}:e,n=t.name,r=void 0===n?"stylesheet":n,i=t.optimizeForSpeed,s=void 0===i?o:i;l(u(r),"`name` must be a string"),this._name=r,this._deletedRulePlaceholder="#"+r+"-deleted-rule____{}",l("boolean"==typeof s,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=s,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var c="undefined"!=typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=c?c.getAttribute("content"):null}var t=e.prototype;return t.setOptimizeForSpeed=function(e){l("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),l(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},t.isOptimizeForSpeed=function(){return this._optimizeForSpeed},t.inject=function(){var e=this;if(l(!this._injected,"sheet already injected"),this._injected=!0,"undefined"!=typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(o||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(t,n){return"number"==typeof n?e._serverSheet.cssRules[n]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),n},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},t.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]},t.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},t.insertRule=function(e,t){if(l(u(e),"`insertRule` accepts only strings"),"undefined"==typeof window)return"number"!=typeof t&&(t=this._serverSheet.cssRules.length),this._serverSheet.insertRule(e,t),this._rulesCount++;if(this._optimizeForSpeed){var n=this.getSheet();"number"!=typeof t&&(t=n.cssRules.length);try{n.insertRule(e,t)}catch(t){return o||console.warn("StyleSheet: illegal rule: \n\n"+e+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),-1}}else{var r=this._tags[t];this._tags.push(this.makeStyleTag(this._name,e,r))}return this._rulesCount++},t.replaceRule=function(e,t){if(this._optimizeForSpeed||"undefined"==typeof window){var n="undefined"!=typeof window?this.getSheet():this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!n.cssRules[e])return e;n.deleteRule(e);try{n.insertRule(t,e)}catch(r){o||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),n.insertRule(this._deletedRulePlaceholder,e)}}else{var r=this._tags[e];l(r,"old rule at index `"+e+"` not found"),r.textContent=t}return e},t.deleteRule=function(e){if("undefined"==typeof window){this._serverSheet.deleteRule(e);return}if(this._optimizeForSpeed)this.replaceRule(e,"");else{var t=this._tags[e];l(t,"rule at index `"+e+"` not found"),t.parentNode.removeChild(t),this._tags[e]=null}},t.flush=function(){this._injected=!1,this._rulesCount=0,"undefined"!=typeof window?(this._tags.forEach(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]):this._serverSheet.cssRules=[]},t.cssRules=function(){var e=this;return"undefined"==typeof window?this._serverSheet.cssRules:this._tags.reduce(function(t,n){return n?t=t.concat(Array.prototype.map.call(e.getSheetForTag(n).cssRules,function(t){return t.cssText===e._deletedRulePlaceholder?null:t})):t.push(null),t},[])},t.makeStyleTag=function(e,t,n){t&&l(u(t),"makeStyleTag accepts only strings as second parameter");var r=document.createElement("style");this._nonce&&r.setAttribute("nonce",this._nonce),r.type="text/css",r.setAttribute("data-"+e,""),t&&r.appendChild(document.createTextNode(t));var i=document.head||document.getElementsByTagName("head")[0];return n?i.insertBefore(r,n):i.appendChild(r),r},function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(e.prototype,[{key:"length",get:function(){return this._rulesCount}}]),e}();function l(e,t){if(!e)throw Error("StyleSheet: "+t+".")}var a=function(e){for(var t=5381,n=e.length;n;)t=33*t^e.charCodeAt(--n);return t>>>0},h={};function d(e,t){if(!t)return"jsx-"+e;var n=String(t),r=e+n;return h[r]||(h[r]="jsx-"+a(e+"-"+n)),h[r]}function f(e,t){"undefined"==typeof window&&(t=t.replace(/\/style/gi,"\\/style"));var n=e+t;return h[n]||(h[n]=t.replace(/__jsx-style-dynamic-selector/g,e)),h[n]}var p=function(){function e(e){var t=void 0===e?{}:e,n=t.styleSheet,r=void 0===n?null:n,i=t.optimizeForSpeed,s=void 0!==i&&i;this._sheet=r||new c({name:"styled-jsx",optimizeForSpeed:s}),this._sheet.inject(),r&&"boolean"==typeof s&&(this._sheet.setOptimizeForSpeed(s),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var t=e.prototype;return t.add=function(e){var t=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(e.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),"undefined"==typeof window||this._fromServer||(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,t){return e[t]=0,e},{}));var n=this.getIdAndRules(e),r=n.styleId,i=n.rules;if(r in this._instancesCounts){this._instancesCounts[r]+=1;return}var s=i.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[r]=s,this._instancesCounts[r]=1},t.remove=function(e){var t=this,n=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(n in this._instancesCounts,"styleId: `"+n+"` not found"),this._instancesCounts[n]-=1,this._instancesCounts[n]<1){var r=this._fromServer&&this._fromServer[n];r?(r.parentNode.removeChild(r),delete this._fromServer[n]):(this._indices[n].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[n]),delete this._instancesCounts[n]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],n=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return n[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,n;return t=this.cssRules(),void 0===(n=e)&&(n={}),t.map(function(e){var t=e[0],r=e[1];return s.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:n.nonce?n.nonce:void 0,dangerouslySetInnerHTML:{__html:r}})})},t.getIdAndRules=function(e){var t=e.children,n=e.dynamic,r=e.id;if(n){var i=d(r,n);return{styleId:i,rules:Array.isArray(t)?t.map(function(e){return f(i,e)}):[f(i,t)]}}return{styleId:d(r),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),m=i.createContext(null);m.displayName="StyleSheetContext";var _=s.default.useInsertionEffect||s.default.useLayoutEffect,v="undefined"!=typeof window?new p:void 0;function y(e){var t=v||i.useContext(m);return t&&("undefined"==typeof window?t.add(e):_(function(){return t.add(e),function(){t.remove(e)}},[e.id,String(e.dynamic)])),null}y.dynamic=function(e){return e.map(function(e){return d(e[0],e[1])}).join(" ")},t.style=y},3146:function(e,t,n){"use strict";e.exports=n(7224).style}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[409],{2247:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_not-found/page",function(){return n(9114)}])},9114:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}}),n(1887);let i=n(7573);n(7653);let o={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},l={display:"inline-block"},r={display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},d={fontSize:14,fontWeight:400,lineHeight:"49px",margin:0};function s(){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("title",{children:"404: This page could not be found."}),(0,i.jsx)("div",{style:o,children:(0,i.jsxs)("div",{children:[(0,i.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,i.jsx)("h1",{className:"next-error-h1",style:r,children:"404"}),(0,i.jsx)("div",{style:l,children:(0,i.jsx)("h2",{style:d,children:"This page could not be found."})})]})})]})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},function(e){e.O(0,[293,528,744],function(){return e(e.s=2247)}),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[301],{6754:function(n,t,u){Promise.resolve().then(u.bind(u,1705))},1705:function(n,t,u){"use strict";u.r(t),u.d(t,{default:function(){return c}});var e=u(7573),r=u(717);function c(){return(0,e.jsx)(r.tP,{})}}},function(n){n.O(0,[694,695,293,528,744],function(){return n(n.s=6754)}),_N_E=n.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[614],{9316:function(e,n,t){Promise.resolve().then(t.bind(t,8704))},8704:function(e,n,t){"use strict";t.d(n,{default:function(){return b}});var r=t(7573),a=t(7653),s=t(7407),o=t(7118),i=t(5634),l=t(5118);let c=[{id:"creating",name:"Initialize",description:"Creating workspace container",estimatedSeconds:5,icon:"◈"},{id:"networking",name:"Network",description:"Configuring DNS & IP allocation",estimatedSeconds:8,icon:"◇"},{id:"secrets",name:"Secure",description:"Encrypting credentials",estimatedSeconds:3,icon:"◆"},{id:"machine",name:"Deploy",description:"Launching cloud instance",estimatedSeconds:25,icon:"▣"},{id:"booting",name:"Boot",description:"Starting relay services",estimatedSeconds:20,icon:"▢"},{id:"health",name:"Verify",description:"Running health checks",estimatedSeconds:15,icon:"◉"}],d=["> Establishing secure connection...","> Allocating compute resources...","> Configuring agent protocols...","> Initializing relay daemon...","> Syncing workspace state...","> Warming up inference engine...","> Connecting to neural mesh...","> Deploying agent swarm..."];function p(e){let{currentStage:n,isProvisioning:t,workspaceName:s,error:o,onCancel:i}=e,[l,p]=(0,a.useState)(0),[u,h]=(0,a.useState)([]),[g,f]=(0,a.useState)(!0);(0,a.useEffect)(()=>{if(!t){p(0);return}let e=setInterval(()=>{p(e=>e+1)},1e3);return()=>clearInterval(e)},[t]),(0,a.useEffect)(()=>{let e=setInterval(()=>{f(e=>!e)},530);return()=>clearInterval(e)},[]),(0,a.useEffect)(()=>{if(!t){h([]);return}let e=()=>{let e=d[Math.floor(Math.random()*d.length)];h(n=>[...n.slice(-4),e])};e();let n=setInterval(e,3500);return()=>clearInterval(n)},[t]);let b=(0,a.useMemo)(()=>{if(n){let e=c.findIndex(e=>e.id===n);return e>=0?e:0}let e=0;for(let n=0;n<c.length;n++)if(l<(e+=c[n].estimatedSeconds))return n;return c.length-1},[n,l]),w=(0,a.useMemo)(()=>c.reduce((e,n)=>e+n.estimatedSeconds,0),[]),v=(0,a.useMemo)(()=>Math.min(95,Math.round(l/w*100)),[l,w]);return o?(0,r.jsxs)("div",{className:"prov-container prov-error",children:[(0,r.jsx)("div",{className:"error-glitch",children:(0,r.jsx)("span",{className:"error-icon",children:"✕"})}),(0,r.jsx)("h3",{className:"error-title",children:"PROVISIONING FAILED"}),(0,r.jsx)("p",{className:"error-message",children:o}),i&&(0,r.jsx)("button",{onClick:i,className:"retry-btn",children:(0,r.jsx)("span",{children:"RETRY"})}),(0,r.jsx)("style",{children:x})]}):(0,r.jsxs)("div",{className:"prov-container",children:[(0,r.jsx)("div",{className:"ambient-glow"}),(0,r.jsx)("div",{className:"scan-line"}),(0,r.jsxs)("header",{className:"prov-header",children:[(0,r.jsx)("div",{className:"header-badge",children:"PROVISIONING"}),(0,r.jsx)("h1",{className:"header-title",children:s||"Workspace"}),(0,r.jsxs)("div",{className:"header-meta",children:[(0,r.jsx)("span",{className:"meta-time",children:(e=>{let n=Math.floor(e/60),t=e%60;return n>0?"".concat(n,":").concat(t.toString().padStart(2,"0")):"0:".concat(t.toString().padStart(2,"0"))})(l)}),(0,r.jsx)("span",{className:"meta-sep",children:"•"}),(0,r.jsxs)("span",{className:"meta-percent",children:[v,"%"]})]})]}),(0,r.jsxs)("div",{className:"progress-track",children:[(0,r.jsx)("div",{className:"progress-fill",style:{width:"".concat(v,"%")}}),(0,r.jsx)("div",{className:"progress-glow",style:{left:"".concat(v,"%")}})]}),(0,r.jsx)("div",{className:"stages-timeline",children:c.map((e,n)=>{let t=n<b,a=n===b,s=n>b;return(0,r.jsxs)("div",{className:"stage-row ".concat(t?"completed":""," ").concat(a?"current":""," ").concat(s?"pending":""),children:[n>0&&(0,r.jsxs)("div",{className:"stage-connector ".concat(t?"active":""),children:[(0,r.jsx)("div",{className:"connector-line"}),t&&(0,r.jsx)("div",{className:"connector-pulse"})]}),(0,r.jsxs)("div",{className:"stage-node",children:[(0,r.jsx)("span",{className:"node-icon",children:e.icon}),a&&(0,r.jsx)("div",{className:"node-ring"})]}),(0,r.jsxs)("div",{className:"stage-content",children:[(0,r.jsx)("span",{className:"stage-name",children:e.name}),a&&(0,r.jsx)("span",{className:"stage-desc",children:e.description})]}),(0,r.jsxs)("div",{className:"stage-status",children:[t&&(0,r.jsx)("span",{className:"status-done",children:"DONE"}),a&&(0,r.jsx)("span",{className:"status-active",children:"ACTIVE"}),s&&(0,r.jsxs)("span",{className:"status-wait",children:["~",e.estimatedSeconds,"s"]})]})]},e.id)})}),(0,r.jsxs)("div",{className:"terminal-window",children:[(0,r.jsxs)("div",{className:"terminal-header",children:[(0,r.jsx)("span",{className:"terminal-dot red"}),(0,r.jsx)("span",{className:"terminal-dot yellow"}),(0,r.jsx)("span",{className:"terminal-dot green"}),(0,r.jsx)("span",{className:"terminal-title",children:"agent-relay"})]}),(0,r.jsxs)("div",{className:"terminal-body",children:[u.map((e,n)=>(0,r.jsx)("div",{className:"terminal-line",style:{animationDelay:"".concat(.1*n,"s")},children:e},n)),(0,r.jsxs)("div",{className:"terminal-cursor",children:[(0,r.jsx)("span",{className:"cursor-prompt",children:"$"}),(0,r.jsx)("span",{className:"cursor-block ".concat(g?"visible":""),children:"_"})]})]})]}),i&&(0,r.jsx)("button",{onClick:i,className:"cancel-btn",children:"Cancel"}),(0,r.jsx)("style",{children:m})]})}let m="\n .prov-container {\n position: relative;\n display: flex;\n flex-direction: column;\n gap: 24px;\n padding: 40px 32px;\n background: linear-gradient(145deg, rgba(10, 15, 25, 0.95) 0%, rgba(5, 10, 18, 0.98) 100%);\n border: 1px solid rgba(6, 182, 212, 0.15);\n border-radius: 16px;\n overflow: hidden;\n font-family: 'SF Mono', 'JetBrains Mono', 'Fira Code', monospace;\n }\n\n /* Ambient effects */\n .ambient-glow {\n position: absolute;\n top: -100px;\n left: 50%;\n transform: translateX(-50%);\n width: 300px;\n height: 200px;\n background: radial-gradient(ellipse, rgba(6, 182, 212, 0.12) 0%, transparent 70%);\n pointer-events: none;\n }\n\n .scan-line {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 2px;\n background: linear-gradient(90deg, transparent, rgba(6, 182, 212, 0.4), transparent);\n animation: scanMove 3s ease-in-out infinite;\n pointer-events: none;\n }\n\n @keyframes scanMove {\n 0%, 100% { top: 0; opacity: 0.5; }\n 50% { top: 100%; opacity: 0.2; }\n }\n\n /* Header */\n .prov-header {\n text-align: center;\n position: relative;\n z-index: 1;\n }\n\n .header-badge {\n display: inline-block;\n padding: 4px 12px;\n background: rgba(6, 182, 212, 0.1);\n border: 1px solid rgba(6, 182, 212, 0.3);\n border-radius: 4px;\n font-size: 10px;\n font-weight: 600;\n letter-spacing: 2px;\n color: #06b6d4;\n margin-bottom: 12px;\n }\n\n .header-title {\n font-size: 22px;\n font-weight: 600;\n color: #f1f5f9;\n margin: 0 0 8px 0;\n letter-spacing: -0.5px;\n }\n\n .header-meta {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n font-size: 13px;\n color: #64748b;\n }\n\n .meta-time {\n font-variant-numeric: tabular-nums;\n }\n\n .meta-percent {\n color: #06b6d4;\n font-weight: 500;\n }\n\n .meta-sep {\n opacity: 0.3;\n }\n\n /* Progress bar */\n .progress-track {\n position: relative;\n height: 4px;\n background: rgba(100, 116, 139, 0.2);\n border-radius: 2px;\n overflow: visible;\n }\n\n .progress-fill {\n height: 100%;\n background: linear-gradient(90deg, #0891b2, #06b6d4, #22d3ee);\n border-radius: 2px;\n transition: width 0.5s ease;\n }\n\n .progress-glow {\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 8px;\n height: 8px;\n background: #22d3ee;\n border-radius: 50%;\n box-shadow: 0 0 16px rgba(34, 211, 238, 0.6);\n transition: left 0.5s ease;\n }\n\n /* Stages */\n .stages-timeline {\n display: flex;\n flex-direction: column;\n gap: 0;\n padding: 16px 0;\n }\n\n .stage-row {\n display: grid;\n grid-template-columns: 40px 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 10px 0;\n position: relative;\n }\n\n .stage-connector {\n position: absolute;\n left: 19px;\n top: -10px;\n width: 2px;\n height: 20px;\n }\n\n .connector-line {\n width: 100%;\n height: 100%;\n background: rgba(100, 116, 139, 0.3);\n transition: background 0.3s ease;\n }\n\n .stage-connector.active .connector-line {\n background: linear-gradient(180deg, #06b6d4, rgba(6, 182, 212, 0.3));\n }\n\n .connector-pulse {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: linear-gradient(180deg, rgba(34, 211, 238, 0.8), transparent);\n animation: pulseLine 1.5s ease-out infinite;\n }\n\n @keyframes pulseLine {\n 0% { opacity: 1; transform: translateY(-100%); }\n 100% { opacity: 0; transform: translateY(100%); }\n }\n\n .stage-node {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n }\n\n .node-icon {\n font-size: 18px;\n color: #475569;\n transition: all 0.3s ease;\n }\n\n .stage-row.completed .node-icon {\n color: #06b6d4;\n }\n\n .stage-row.current .node-icon {\n color: #22d3ee;\n text-shadow: 0 0 12px rgba(34, 211, 238, 0.5);\n }\n\n .node-ring {\n position: absolute;\n inset: 4px;\n border: 2px solid rgba(34, 211, 238, 0.4);\n border-radius: 50%;\n animation: ringPulse 2s ease-in-out infinite;\n }\n\n @keyframes ringPulse {\n 0%, 100% { transform: scale(1); opacity: 1; }\n 50% { transform: scale(1.2); opacity: 0.5; }\n }\n\n .stage-content {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n }\n\n .stage-name {\n font-size: 13px;\n font-weight: 500;\n color: #64748b;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n transition: color 0.3s ease;\n }\n\n .stage-row.completed .stage-name {\n color: #475569;\n }\n\n .stage-row.current .stage-name {\n color: #f1f5f9;\n }\n\n .stage-desc {\n font-size: 11px;\n color: #64748b;\n animation: fadeSlideIn 0.3s ease;\n }\n\n @keyframes fadeSlideIn {\n from { opacity: 0; transform: translateX(-8px); }\n to { opacity: 1; transform: translateX(0); }\n }\n\n .stage-status {\n font-size: 10px;\n font-weight: 600;\n letter-spacing: 1px;\n }\n\n .status-done {\n color: #06b6d4;\n }\n\n .status-active {\n color: #22d3ee;\n animation: blink 1s ease-in-out infinite;\n }\n\n @keyframes blink {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.5; }\n }\n\n .status-wait {\n color: #475569;\n font-variant-numeric: tabular-nums;\n }\n\n /* Terminal */\n .terminal-window {\n background: rgba(0, 0, 0, 0.4);\n border: 1px solid rgba(100, 116, 139, 0.2);\n border-radius: 8px;\n overflow: hidden;\n }\n\n .terminal-header {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n background: rgba(30, 41, 59, 0.5);\n border-bottom: 1px solid rgba(100, 116, 139, 0.15);\n }\n\n .terminal-dot {\n width: 10px;\n height: 10px;\n border-radius: 50%;\n }\n\n .terminal-dot.red { background: #ef4444; }\n .terminal-dot.yellow { background: #eab308; }\n .terminal-dot.green { background: #22c55e; }\n\n .terminal-title {\n margin-left: auto;\n font-size: 11px;\n color: #64748b;\n }\n\n .terminal-body {\n padding: 12px;\n min-height: 100px;\n }\n\n .terminal-line {\n font-size: 12px;\n color: #94a3b8;\n padding: 2px 0;\n animation: typeIn 0.3s ease;\n }\n\n @keyframes typeIn {\n from { opacity: 0; transform: translateY(4px); }\n to { opacity: 1; transform: translateY(0); }\n }\n\n .terminal-cursor {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-top: 8px;\n }\n\n .cursor-prompt {\n color: #06b6d4;\n font-weight: 600;\n }\n\n .cursor-block {\n color: #22d3ee;\n opacity: 0;\n transition: opacity 0.1s;\n }\n\n .cursor-block.visible {\n opacity: 1;\n }\n\n /* Cancel button */\n .cancel-btn {\n align-self: center;\n padding: 8px 20px;\n background: transparent;\n border: 1px solid rgba(100, 116, 139, 0.3);\n border-radius: 6px;\n color: #64748b;\n font-family: inherit;\n font-size: 12px;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .cancel-btn:hover {\n border-color: rgba(239, 68, 68, 0.5);\n color: #ef4444;\n }\n",x="\n .prov-container.prov-error {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n padding: 48px 32px;\n background: linear-gradient(145deg, rgba(25, 10, 10, 0.95) 0%, rgba(15, 5, 8, 0.98) 100%);\n border: 1px solid rgba(239, 68, 68, 0.2);\n border-radius: 16px;\n text-align: center;\n font-family: 'SF Mono', 'JetBrains Mono', monospace;\n }\n\n .error-glitch {\n position: relative;\n width: 64px;\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(239, 68, 68, 0.1);\n border: 1px solid rgba(239, 68, 68, 0.3);\n border-radius: 12px;\n }\n\n .error-icon {\n font-size: 28px;\n color: #ef4444;\n animation: glitch 0.3s ease infinite;\n }\n\n @keyframes glitch {\n 0%, 100% { transform: translate(0); }\n 25% { transform: translate(-2px, 1px); }\n 50% { transform: translate(2px, -1px); }\n 75% { transform: translate(-1px, -1px); }\n }\n\n .error-title {\n font-size: 14px;\n font-weight: 600;\n letter-spacing: 2px;\n color: #ef4444;\n margin: 0;\n }\n\n .error-message {\n font-size: 13px;\n color: #94a3b8;\n max-width: 350px;\n margin: 0;\n line-height: 1.5;\n }\n\n .retry-btn {\n margin-top: 8px;\n padding: 10px 28px;\n background: linear-gradient(135deg, rgba(239, 68, 68, 0.2) 0%, rgba(220, 38, 38, 0.2) 100%);\n border: 1px solid rgba(239, 68, 68, 0.4);\n border-radius: 6px;\n color: #ef4444;\n font-family: inherit;\n font-size: 12px;\n font-weight: 600;\n letter-spacing: 1px;\n cursor: pointer;\n transition: all 0.2s ease;\n }\n\n .retry-btn:hover {\n background: linear-gradient(135deg, rgba(239, 68, 68, 0.3) 0%, rgba(220, 38, 38, 0.3) 100%);\n border-color: rgba(239, 68, 68, 0.6);\n transform: translateY(-1px);\n }\n";var u=t(9175),h=t(4859);let g=[{id:"anthropic",name:"Anthropic",displayName:"Claude",color:"#D97757",cliCommand:"claude",requiresUrlCopy:!0},{id:"codex",name:"OpenAI",displayName:"Codex",color:"#10A37F",cliCommand:"codex login",requiresUrlCopy:!0},{id:"google",name:"Google",displayName:"Gemini",color:"#4285F4",cliCommand:"gemini"},{id:"opencode",name:"OpenCode",displayName:"OpenCode",color:"#00D4AA",cliCommand:"opencode"},{id:"droid",name:"Factory",displayName:"Droid",color:"#6366F1",cliCommand:"droid"},{id:"cursor",name:"Cursor",displayName:"Cursor",color:"#7C3AED",cliCommand:"agent",requiresUrlCopy:!0}],f="true"===h.env.NEXT_PUBLIC_FORCE_CLOUD_MODE;function b(){let[e,n]=(0,a.useState)("loading"),[t,c]=(0,a.useState)([]),[d,m]=(0,a.useState)([]),[x,h]=(0,a.useState)(null),[b,w]=(0,a.useState)(void 0),[v,j]=(0,a.useState)(null),[N,k]=(0,a.useState)(f),[y,C]=(0,a.useState)(null),[S,I]=(0,a.useState)(null),[z,M]=(0,a.useState)([]);(0,a.useEffect)(()=>{(async()=>{try{let e=await fetch("/api/auth/session",{credentials:"include"});if(404===e.status){if(f)throw Error("Cloud mode enforced but session endpoint returned 404. Is the cloud server running?");k(!1),n("local");return}let t=e.headers.get("X-CSRF-Token");t&&C(t);let r=await e.json();if(!r.authenticated){window.location.href="/login";return}k(!0);let a={openai:"codex"};if(r.connectedProviders){let e=[];r.connectedProviders.forEach(n=>{e.push(n.provider);let t=a[n.provider];t&&e.push(t)}),M(e)}let[s,o]=await Promise.all([fetch("/api/workspaces/accessible",{credentials:"include"}),fetch("/api/github-app/repos",{credentials:"include"})]);if(!s.ok){if(401===s.status){window.location.href="/login";return}throw Error("Failed to fetch workspaces")}let i=await s.json(),l=o.ok?await o.json():{repositories:[]};c(i.workspaces||[]),m(l.repositories||[]);let d=(i.workspaces||[]).filter(e=>"running"===e.status&&e.publicUrl),p=new URLSearchParams(window.location.search);if((null==p?void 0:p.get("select"))==="true"){window.history.replaceState({},"","/app"),n("select-workspace");return}let x=localStorage.getItem("agentrelay_workspace_id");if(x){let e=d.find(e=>e.id===x);if(e){E(e);return}}1===d.length?E(d[0]):d.length>1?n("select-workspace"):(i.workspaces||[]).length>0?n("select-workspace"):(l.repositories||[]).length>0?n("no-workspaces"):window.location.href="/connect-repos"}catch(e){if(e instanceof TypeError&&e.message.includes("Failed to fetch")){if(f){console.error("Cloud mode enforced but network request failed:",e),j("Cloud mode enforced but failed to connect to server. Is the cloud server running?"),n("error");return}k(!1),n("local");return}console.error("Init error:",e),j(e instanceof Error?e.message:"Failed to initialize"),n("error")}})()},[]);let E=(0,a.useCallback)(e=>{if(!e.publicUrl){j("Workspace has no public URL"),n("error");return}h(e),n("connecting"),(0,l.hc)(e.id);let t=new URL(e.publicUrl),r="https:"===t.protocol?"wss:":"ws:";w("".concat(r,"//").concat(t.host,"/ws")),n("connected")},[]),L=(0,a.useCallback)(async e=>{j(null);try{let t={"Content-Type":"application/json"};y&&(t["X-CSRF-Token"]=y);let r=await fetch("/api/workspaces/quick",{method:"POST",credentials:"include",headers:t,body:JSON.stringify({repositoryFullName:e})}),a=await r.json();if(!r.ok)throw Error(a.error||"Failed to create workspace");let s=Date.now();I({workspaceId:a.workspaceId,workspaceName:e.split("/")[1]||e,stage:null,startedAt:s}),n("provisioning");let o=async e=>{let t=0;for(;t<150;){var r;let a=await fetch("/api/workspaces/".concat(e,"/status"),{credentials:"include"}),s=await a.json();if((null===(r=s.provisioning)||void 0===r?void 0:r.stage)&&I(e=>e?{...e,stage:s.provisioning.stage}:null),"running"===s.status){let t=await fetch("/api/workspaces/".concat(e),{credentials:"include"}),r=await t.json();if(r.publicUrl){I(null),h(r),n("connect-provider");return}}else if("error"===s.status){let e=s.errorMessage||"Workspace provisioning failed";throw Error(e)}await new Promise(e=>setTimeout(e,2e3)),++t%15==0&&console.log("[workspace] Still provisioning... (".concat(Math.floor(2e3*t/1e3),"s elapsed)"))}throw Error("Workspace provisioning timed out after 5 minutes. Please try again or contact support.")};await o(a.workspaceId)}catch(e){console.error("Create workspace error:",e),I(null),j(e instanceof Error?e.message:"Failed to create workspace"),n("no-workspaces")}},[E,y]),P=(0,a.useCallback)(e=>{M(n=>[...new Set([...n,e])])},[]),A=(0,a.useCallback)(()=>{x&&E(x)},[x,E]),F=(0,a.useCallback)(async e=>{n("loading"),j(null);try{let n={};y&&(n["X-CSRF-Token"]=y);let t=await fetch("/api/workspaces/".concat(e.id,"/restart"),{method:"POST",credentials:"include",headers:n});if(!t.ok){let e=await t.json();throw Error(e.error||"Failed to start workspace")}let r=0;for(;r<60;){let n=await fetch("/api/workspaces/".concat(e.id,"/status"),{credentials:"include"}),t=await n.json();if("running"===t.status){let n=await fetch("/api/workspaces/".concat(e.id),{credentials:"include"}),t=await n.json();if(t.publicUrl){E({...e,...t});return}}await new Promise(e=>setTimeout(e,2e3)),r++}throw Error("Workspace start timed out")}catch(e){console.error("Start workspace error:",e),j(e instanceof Error?e.message:"Failed to start workspace"),n("select-workspace")}},[E,y]);if("loading"===e)return(0,r.jsx)("div",{className:"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex items-center justify-center",children:(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsxs)("svg",{className:"w-8 h-8 text-accent-cyan animate-spin mx-auto",fill:"none",viewBox:"0 0 24 24",children:[(0,r.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,r.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,r.jsx)("p",{className:"mt-4 text-text-muted",children:"Loading..."})]})});if("local"===e)return(0,r.jsx)(s.gV,{});if("connected"===e&&b)return(0,r.jsx)(o.TI,{cloudMode:!0,children:(0,r.jsx)(s.gV,{wsUrl:b})});if("connecting"===e)return(0,r.jsx)("div",{className:"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex items-center justify-center",children:(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsxs)("svg",{className:"w-8 h-8 text-accent-cyan animate-spin mx-auto",fill:"none",viewBox:"0 0 24 24",children:[(0,r.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,r.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,r.jsxs)("p",{className:"mt-4 text-white font-medium",children:["Connecting to ",null==x?void 0:x.name,"..."]}),(0,r.jsx)("p",{className:"mt-2 text-text-muted text-sm",children:null==x?void 0:x.publicUrl})]})});if("provisioning"===e&&S)return(0,r.jsx)("div",{className:"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex items-center justify-center",children:(0,r.jsx)("div",{className:"w-full max-w-xl",children:(0,r.jsx)(p,{isProvisioning:!0,currentStage:S.stage,workspaceName:S.workspaceName,error:v,onCancel:()=>{I(null),n("no-workspaces")}})})});if("error"===e)return(0,r.jsx)("div",{className:"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex items-center justify-center p-4",children:(0,r.jsxs)("div",{className:"bg-bg-primary/80 backdrop-blur-sm border border-border-subtle rounded-2xl p-8 max-w-md w-full text-center",children:[(0,r.jsx)("div",{className:"w-16 h-16 mx-auto mb-4 bg-error/20 rounded-full flex items-center justify-center",children:(0,r.jsx)("svg",{className:"w-8 h-8 text-error",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})}),(0,r.jsx)("h2",{className:"text-xl font-semibold text-white mb-2",children:"Something went wrong"}),(0,r.jsx)("p",{className:"text-text-muted mb-6",children:v}),(0,r.jsx)("button",{onClick:()=>window.location.reload(),className:"w-full py-3 px-4 bg-bg-tertiary border border-border-subtle rounded-xl text-white font-medium hover:bg-bg-hover transition-colors",children:"Try Again"})]})});if("connect-provider"===e&&x)return(0,r.jsxs)("div",{className:"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex flex-col items-center justify-center p-4",children:[(0,r.jsx)("div",{className:"fixed inset-0 opacity-10 pointer-events-none",children:(0,r.jsx)("div",{className:"absolute inset-0",style:{backgroundImage:"linear-gradient(rgba(0, 217, 255, 0.1) 1px, transparent 1px),\n linear-gradient(90deg, rgba(0, 217, 255, 0.1) 1px, transparent 1px)",backgroundSize:"50px 50px"}})}),(0,r.jsxs)("div",{className:"relative z-10 w-full max-w-xl",children:[(0,r.jsxs)("div",{className:"flex flex-col items-center mb-8",children:[(0,r.jsx)(i.K7,{size:48,withGlow:!0}),(0,r.jsx)("h1",{className:"mt-4 text-2xl font-bold text-white",children:"Connect AI Provider"}),(0,r.jsxs)("p",{className:"mt-2 text-text-muted text-center",children:["Your workspace ",(0,r.jsx)("span",{className:"text-white",children:x.name})," is ready!",(0,r.jsx)("br",{}),"Connect an AI provider to start using agents."]})]}),(0,r.jsx)(u.c,{providers:g,connectedProviders:z,workspaceId:x.id,csrfToken:y||void 0,onProviderConnected:P,onContinue:A,showDetailedInfo:!0})]})]});if("create-workspace"===e){let e=new Set(t.flatMap(e=>{let n=[];e.repositories&&e.repositories.length>0&&e.repositories.forEach(e=>n.push(e.toLowerCase()));let t=e.name.match(/(?:Workspace for\s+)?(.+\/.+)/i);return t&&n.push(t[1].toLowerCase()),n})),a=d.filter(n=>!e.has(n.fullName.toLowerCase()));return(0,r.jsxs)("div",{className:"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex flex-col items-center justify-center p-4",children:[(0,r.jsx)("div",{className:"fixed inset-0 opacity-10 pointer-events-none",children:(0,r.jsx)("div",{className:"absolute inset-0",style:{backgroundImage:"linear-gradient(rgba(0, 217, 255, 0.1) 1px, transparent 1px),\n linear-gradient(90deg, rgba(0, 217, 255, 0.1) 1px, transparent 1px)",backgroundSize:"50px 50px"}})}),(0,r.jsxs)("div",{className:"relative z-10 w-full max-w-2xl",children:[(0,r.jsxs)("div",{className:"flex flex-col items-center mb-8",children:[(0,r.jsx)(i.K7,{size:48,withGlow:!0}),(0,r.jsx)("h1",{className:"mt-4 text-2xl font-bold text-white",children:"Create Workspace"}),(0,r.jsx)("p",{className:"mt-2 text-text-muted",children:"Select a repository to create a workspace"})]}),v&&(0,r.jsx)("div",{className:"mb-4 p-4 bg-error/10 border border-error/20 rounded-xl",children:(0,r.jsx)("p",{className:"text-error",children:v})}),(0,r.jsxs)("div",{className:"bg-bg-primary/80 backdrop-blur-sm border border-border-subtle rounded-2xl p-6",children:[(0,r.jsxs)("button",{onClick:()=>n("select-workspace"),className:"mb-4 flex items-center gap-2 text-text-muted hover:text-white transition-colors text-sm",children:[(0,r.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})}),"Back to workspaces"]}),(0,r.jsx)("h2",{className:"text-lg font-semibold text-white mb-4",children:"Available Repositories"}),(0,r.jsx)("p",{className:"text-text-muted mb-6 text-sm",children:"These are repositories the GitHub App has access to that don't have a workspace yet."}),a.length>0?(0,r.jsx)("div",{className:"space-y-3",children:a.map(e=>(0,r.jsxs)("button",{onClick:()=>L(e.fullName),className:"w-full flex items-center gap-3 p-4 bg-bg-tertiary rounded-xl border border-border-subtle hover:border-accent-cyan/50 transition-colors text-left",children:[(0,r.jsx)("svg",{className:"w-5 h-5 text-text-muted flex-shrink-0",fill:"currentColor",viewBox:"0 0 16 16",children:(0,r.jsx)("path",{d:"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8z"})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("p",{className:"text-white font-medium truncate",children:e.fullName}),(0,r.jsx)("p",{className:"text-text-muted text-sm",children:e.isPrivate?"Private":"Public"})]}),(0,r.jsx)("svg",{className:"w-5 h-5 text-text-muted",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]},e.id))}):(0,r.jsxs)("div",{className:"text-center py-8",children:[(0,r.jsx)("p",{className:"text-text-muted mb-4",children:"All connected repositories already have workspaces."}),(0,r.jsxs)("a",{href:"/connect-repos",className:"inline-flex items-center gap-2 py-3 px-6 bg-gradient-to-r from-accent-cyan to-[#00b8d9] text-bg-deep font-semibold rounded-xl hover:shadow-glow-cyan transition-all",children:[(0,r.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,r.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"})}),"Connect More Repositories"]})]})]})]})]})}return(0,r.jsxs)("div",{className:"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex flex-col items-center justify-center p-4",children:[(0,r.jsx)("div",{className:"fixed inset-0 opacity-10 pointer-events-none",children:(0,r.jsx)("div",{className:"absolute inset-0",style:{backgroundImage:"linear-gradient(rgba(0, 217, 255, 0.1) 1px, transparent 1px),\n linear-gradient(90deg, rgba(0, 217, 255, 0.1) 1px, transparent 1px)",backgroundSize:"50px 50px"}})}),(0,r.jsxs)("div",{className:"relative z-10 w-full max-w-2xl",children:[(0,r.jsxs)("div",{className:"flex flex-col items-center mb-8",children:[(0,r.jsx)(i.K7,{size:48,withGlow:!0}),(0,r.jsx)("h1",{className:"mt-4 text-2xl font-bold text-white",children:"Agent Relay"}),(0,r.jsx)("p",{className:"mt-2 text-text-muted",children:"no-workspaces"===e?"Create a workspace to get started":"Select a workspace"})]}),v&&(0,r.jsx)("div",{className:"mb-4 p-4 bg-error/10 border border-error/20 rounded-xl",children:(0,r.jsx)("p",{className:"text-error",children:v})}),"select-workspace"===e&&t.length>0&&(0,r.jsxs)("div",{className:"bg-bg-primary/80 backdrop-blur-sm border border-border-subtle rounded-2xl p-6",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-white mb-4",children:"Your Workspaces"}),(0,r.jsx)("div",{className:"space-y-3",children:t.map(e=>(0,r.jsxs)("div",{className:"flex items-center justify-between p-4 bg-bg-tertiary rounded-xl border border-border-subtle hover:border-accent-cyan/50 transition-colors",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"w-3 h-3 rounded-full ".concat("running"===e.status?"bg-success":"provisioning"===e.status?"bg-warning animate-pulse":"error"===e.status?"bg-error":"bg-gray-500")}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"font-medium text-white",children:e.name}),(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"running"===e.status?"Running":"provisioning"===e.status?"Starting...":"stopped"===e.status?"Stopped":"Error"})]})]}),(0,r.jsx)("div",{children:"running"===e.status&&e.publicUrl?(0,r.jsx)("button",{onClick:()=>E(e),className:"py-2 px-4 bg-gradient-to-r from-accent-cyan to-[#00b8d9] text-bg-deep font-semibold rounded-lg hover:shadow-glow-cyan transition-all",children:"Connect"}):"stopped"===e.status?(0,r.jsx)("button",{onClick:()=>F(e),className:"py-2 px-4 bg-bg-card border border-border-subtle rounded-lg text-white hover:border-accent-cyan/50 transition-colors",children:"Start"}):"provisioning"===e.status?(0,r.jsx)("span",{className:"text-text-muted text-sm",children:"Starting..."}):"error"===e.status?(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("button",{onClick:()=>F(e),className:"py-2 px-4 bg-accent-cyan/10 border border-accent-cyan/30 rounded-lg text-accent-cyan text-sm font-medium hover:bg-accent-cyan/20 transition-colors",children:"Restart"}),(0,r.jsx)("a",{href:"/app/settings/workspace",className:"py-2 px-3 text-text-muted text-sm hover:text-white transition-colors",title:"Workspace settings",children:(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,r.jsx)("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})]})})]}):(0,r.jsx)("span",{className:"text-error text-sm",children:"Failed"})})]},e.id))}),(()=>{let e=new Set(t.flatMap(e=>{let n=[];e.repositories&&e.repositories.length>0&&e.repositories.forEach(e=>n.push(e.toLowerCase()));let t=e.name.match(/(?:Workspace for\s+)?(.+\/.+)/i);return t&&n.push(t[1].toLowerCase()),n}));return 0===d.filter(n=>!e.has(n.fullName.toLowerCase())).length?null:(0,r.jsxs)("div",{className:"mt-6 pt-6 border-t border-border-subtle",children:[(0,r.jsx)("p",{className:"text-text-muted text-sm mb-3",children:"Or create a new workspace:"}),(0,r.jsxs)("button",{onClick:()=>n("create-workspace"),className:"py-2 px-4 bg-bg-card border border-border-subtle rounded-lg text-sm text-white hover:border-accent-cyan/50 transition-colors flex items-center gap-2",children:[(0,r.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})}),"Create"]})]})})()]}),"no-workspaces"===e&&(0,r.jsxs)("div",{className:"bg-bg-primary/80 backdrop-blur-sm border border-border-subtle rounded-2xl p-6",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-white mb-4",children:"Create Your First Workspace"}),(0,r.jsx)("p",{className:"text-text-muted mb-6",children:"Select a repository to create a workspace where agents can work on your code."}),d.length>0?(0,r.jsx)("div",{className:"space-y-3",children:d.map(e=>(0,r.jsxs)("button",{onClick:()=>L(e.fullName),className:"w-full flex items-center gap-3 p-4 bg-bg-tertiary rounded-xl border border-border-subtle hover:border-accent-cyan/50 transition-colors text-left",children:[(0,r.jsx)("svg",{className:"w-5 h-5 text-text-muted flex-shrink-0",fill:"currentColor",viewBox:"0 0 16 16",children:(0,r.jsx)("path",{d:"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8z"})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("p",{className:"text-white font-medium truncate",children:e.fullName}),(0,r.jsx)("p",{className:"text-text-muted text-sm",children:e.isPrivate?"Private":"Public"})]}),(0,r.jsx)("svg",{className:"w-5 h-5 text-text-muted",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]},e.id))}):(0,r.jsxs)("div",{className:"text-center py-8",children:[(0,r.jsx)("p",{className:"text-text-muted mb-4",children:"No repositories connected yet."}),(0,r.jsxs)("a",{href:"/connect-repos",className:"inline-flex items-center gap-2 py-3 px-6 bg-gradient-to-r from-accent-cyan to-[#00b8d9] text-bg-deep font-semibold rounded-xl hover:shadow-glow-cyan transition-all",children:[(0,r.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,r.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"})}),"Connect GitHub"]})]})]}),(0,r.jsxs)("div",{className:"mt-6 flex justify-center gap-4 text-sm",children:[(0,r.jsx)("a",{href:"/connect-repos",className:"text-text-muted hover:text-white transition-colors",children:"Manage Repositories"}),(0,r.jsx)("span",{className:"text-text-muted",children:"\xb7"}),(0,r.jsx)("button",{onClick:async()=>{let e={};y&&(e["X-CSRF-Token"]=y),await fetch("/api/auth/logout",{method:"POST",credentials:"include",headers:e}),window.location.href="/login"},className:"text-text-muted hover:text-white transition-colors",children:"Sign Out"})]})]})]})}}},function(e){e.O(0,[440,202,11,118,687,407,259,293,528,744],function(){return e(e.s=9316)}),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[615],{5077:function(e,t,r){Promise.resolve().then(r.bind(r,7657))},1695:function(e,t,r){"use strict";var s=r(1219);r.o(s,"useRouter")&&r.d(t,{useRouter:function(){return s.useRouter}}),r.o(s,"useSearchParams")&&r.d(t,{useSearchParams:function(){return s.useSearchParams}})},7657:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return c}});var s=r(7573),a=r(7653),n=r(1695),o=r(5634);function i(){let e=(0,n.useSearchParams)().get("reason")||"new",[t,r]=(0,a.useState)([]),[i,c]=(0,a.useState)(!0),[l,d]=(0,a.useState)(!1),[x,u]=(0,a.useState)(null),[h,m]=(0,a.useState)(null),{trackEvent:p}={trackEvent:(0,a.useCallback)((e,t)=>{try{fetch("/api/analytics/track",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({event:e,properties:t,timestamp:Date.now()})}).catch(()=>{})}catch(e){}},[])};(0,a.useEffect)(()=>{(async()=>{try{let t=await fetch("/api/auth/session",{credentials:"include"});if(404===t.status){window.location.href="/app";return}let s=t.headers.get("X-CSRF-Token");if(s&&m(s),!(await t.json()).authenticated){window.location.href="/login";return}let a=await fetch("/api/workspaces",{credentials:"include"});if(a.ok&&((await a.json()).workspaces||[]).length>0){window.location.href="/app";return}let n=await fetch("/api/github-app/repos",{credentials:"include"});if(n.ok){let e=await n.json();r(e.repositories||[])}p("onboarding_page_view",{reason:e}),c(!1)}catch(e){console.error("Onboarding init error:",e),u(e instanceof Error?e.message:"Failed to initialize"),c(!1)}})()},[e,p]);let f=(0,a.useCallback)(async e=>{d(!0),u(null),p("onboarding_repo_selected",{repository:e});try{let t={"Content-Type":"application/json"};h&&(t["X-CSRF-Token"]=h);let r=await fetch("/api/workspaces/quick",{method:"POST",credentials:"include",headers:t,body:JSON.stringify({repositoryFullName:e})}),s=await r.json();if(!r.ok)throw Error(s.error||"Failed to create workspace");p("onboarding_workspace_created",{workspaceId:s.workspaceId,repository:e}),window.location.href="/app"}catch(e){console.error("Create workspace error:",e),u(e instanceof Error?e.message:"Failed to create workspace"),d(!1)}},[h,p]),b=(0,a.useCallback)(()=>{p("onboarding_connect_repos_clicked",{reason:e}),window.location.href="/connect-repos"},[e,p]);if(i)return(0,s.jsx)("div",{className:"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex items-center justify-center",children:(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsxs)("svg",{className:"w-8 h-8 text-accent-cyan animate-spin mx-auto",fill:"none",viewBox:"0 0 24 24",children:[(0,s.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,s.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,s.jsx)("p",{className:"mt-4 text-text-muted",children:"Loading..."})]})});if(l)return(0,s.jsx)("div",{className:"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex items-center justify-center",children:(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsxs)("svg",{className:"w-8 h-8 text-accent-cyan animate-spin mx-auto",fill:"none",viewBox:"0 0 24 24",children:[(0,s.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,s.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,s.jsx)("p",{className:"mt-4 text-white font-medium",children:"Creating your workspace..."}),(0,s.jsx)("p",{className:"mt-2 text-text-muted text-sm",children:"This may take a few minutes"})]})});let g="deleted"===e;return(0,s.jsxs)("div",{className:"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex flex-col items-center justify-center p-4",children:[(0,s.jsx)("div",{className:"fixed inset-0 opacity-10 pointer-events-none",children:(0,s.jsx)("div",{className:"absolute inset-0",style:{backgroundImage:"linear-gradient(rgba(0, 217, 255, 0.1) 1px, transparent 1px),\n linear-gradient(90deg, rgba(0, 217, 255, 0.1) 1px, transparent 1px)",backgroundSize:"50px 50px"}})}),(0,s.jsxs)("div",{className:"relative z-10 w-full max-w-2xl",children:[(0,s.jsxs)("div",{className:"flex flex-col items-center mb-8",children:[(0,s.jsx)(o.K7,{size:56,withGlow:!0}),(0,s.jsx)("h1",{className:"mt-6 text-3xl font-bold text-white",children:g?"Workspace Deleted":"Welcome to Agent Relay"}),(0,s.jsx)("p",{className:"mt-3 text-text-muted text-center max-w-md",children:g?"Your workspace has been deleted. Create a new one to continue working with AI agents.":"Get started by creating your first workspace. Connect a repository and let AI agents help you build."})]}),x&&(0,s.jsx)("div",{className:"mb-6 p-4 bg-error/10 border border-error/20 rounded-xl",children:(0,s.jsx)("p",{className:"text-error text-center",children:x})}),(0,s.jsxs)("div",{className:"bg-bg-primary/80 backdrop-blur-sm border border-border-subtle rounded-2xl p-8",children:[!g&&(0,s.jsxs)("div",{className:"flex items-center justify-center gap-3 mb-8",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("div",{className:"w-8 h-8 rounded-full bg-accent-cyan flex items-center justify-center text-bg-deep font-semibold text-sm",children:"1"}),(0,s.jsx)("span",{className:"text-white font-medium",children:"Select Repository"})]}),(0,s.jsx)("div",{className:"w-12 h-px bg-border-subtle"}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("div",{className:"w-8 h-8 rounded-full bg-bg-tertiary border border-border-subtle flex items-center justify-center text-text-muted font-semibold text-sm",children:"2"}),(0,s.jsx)("span",{className:"text-text-muted",children:"Connect AI Provider"})]}),(0,s.jsx)("div",{className:"w-12 h-px bg-border-subtle"}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("div",{className:"w-8 h-8 rounded-full bg-bg-tertiary border border-border-subtle flex items-center justify-center text-text-muted font-semibold text-sm",children:"3"}),(0,s.jsx)("span",{className:"text-text-muted",children:"Start Building"})]})]}),(0,s.jsx)("h2",{className:"text-xl font-semibold text-white mb-2",children:g?"Create a New Workspace":"Choose a Repository"}),(0,s.jsx)("p",{className:"text-text-muted mb-6",children:g?"Select a repository to create a new workspace for your AI agents.":"Your workspace will be set up with this repository. You can add more repos later."}),t.length>0?(0,s.jsx)("div",{className:"space-y-3",children:t.map(e=>(0,s.jsxs)("button",{onClick:()=>f(e.fullName),disabled:l,className:"w-full flex items-center gap-4 p-4 bg-bg-tertiary rounded-xl border border-border-subtle hover:border-accent-cyan/50 hover:bg-bg-hover transition-all text-left group disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,s.jsx)("div",{className:"w-12 h-12 rounded-lg bg-bg-card border border-border-subtle flex items-center justify-center flex-shrink-0 group-hover:border-accent-cyan/30 transition-colors",children:(0,s.jsx)("svg",{className:"w-6 h-6 text-text-muted group-hover:text-accent-cyan transition-colors",fill:"currentColor",viewBox:"0 0 16 16",children:(0,s.jsx)("path",{d:"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8z"})})}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsx)("p",{className:"text-white font-medium truncate group-hover:text-accent-cyan transition-colors",children:e.fullName}),(0,s.jsxs)("p",{className:"text-text-muted text-sm mt-0.5",children:[e.isPrivate?"Private repository":"Public repository"," \xb7 ",e.defaultBranch]})]}),(0,s.jsx)("svg",{className:"w-5 h-5 text-text-muted group-hover:text-accent-cyan group-hover:translate-x-1 transition-all",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]},e.id))}):(0,s.jsxs)("div",{className:"text-center py-12 bg-bg-tertiary rounded-xl border border-border-subtle",children:[(0,s.jsx)("div",{className:"w-16 h-16 mx-auto mb-4 bg-bg-card rounded-full flex items-center justify-center",children:(0,s.jsx)("svg",{className:"w-8 h-8 text-text-muted",fill:"currentColor",viewBox:"0 0 24 24",children:(0,s.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"})})}),(0,s.jsx)("h3",{className:"text-lg font-semibold text-white mb-2",children:"No Repositories Connected"}),(0,s.jsx)("p",{className:"text-text-muted mb-6 max-w-sm mx-auto",children:"Connect your GitHub repositories to create a workspace and start working with AI agents."}),(0,s.jsxs)("button",{onClick:b,className:"inline-flex items-center gap-2 py-3 px-6 bg-gradient-to-r from-accent-cyan to-[#00b8d9] text-bg-deep font-semibold rounded-xl hover:shadow-glow-cyan transition-all",children:[(0,s.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,s.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"})}),"Connect GitHub"]})]})]}),(0,s.jsxs)("div",{className:"mt-8 flex justify-center gap-6 text-sm",children:[t.length>0&&(0,s.jsx)("button",{onClick:b,className:"text-text-muted hover:text-white transition-colors",children:"Connect More Repositories"}),(0,s.jsx)("a",{href:"/app",className:"text-text-muted hover:text-white transition-colors",children:"Back to Dashboard"}),(0,s.jsx)("button",{onClick:async()=>{let e={};h&&(e["X-CSRF-Token"]=h),await fetch("/api/auth/logout",{method:"POST",credentials:"include",headers:e}),window.location.href="/login"},className:"text-text-muted hover:text-white transition-colors",children:"Sign Out"})]})]})]})}function c(){return(0,s.jsx)(a.Suspense,{fallback:(0,s.jsx)("div",{className:"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex items-center justify-center",children:(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsxs)("svg",{className:"w-8 h-8 text-accent-cyan animate-spin mx-auto",fill:"none",viewBox:"0 0 24 24",children:[(0,s.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,s.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,s.jsx)("p",{className:"mt-4 text-text-muted",children:"Loading..."})]})}),children:(0,s.jsx)(i,{})})}},5634:function(e,t,r){"use strict";r.d(t,{K7:function(){return a}});var s=r(7573);function a(e){let{size:t=24,className:r="",withGlow:a=!1}=e;return(0,s.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(a?"drop-shadow-[0_0_8px_rgba(0,217,255,0.3)]":"","\n ").concat(r,"\n "),"aria-label":"Agent Relay Logo",role:"img",children:[(0,s.jsx)("path",{d:"M30 80 L 50 20 L 70 80",stroke:"#00d9ff",strokeWidth:"5",strokeLinejoin:"round",strokeLinecap:"round",fill:"none"}),(0,s.jsx)("line",{x1:"40",y1:"50",x2:"60",y2:"50",stroke:"#00d9ff",strokeWidth:"5",strokeLinecap:"round"}),(0,s.jsx)("path",{d:"M50 20 L 50 80",stroke:"#00ffc8",strokeWidth:"2.5",strokeLinecap:"round",opacity:"0.7"}),(0,s.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"})]})}r(7653)}},function(e){e.O(0,[293,528,744],function(){return e(e.s=5077)}),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[287,404],{9765:function(n,e,u){Promise.resolve().then(u.t.bind(u,8601,23))},8601:function(){}},function(n){n.O(0,[694,293,528,744],function(){return n(n.s=9765)}),_N_E=n.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[294],{7466:function(e,t,n){Promise.resolve().then(n.t.bind(n,2147,23)),Promise.resolve().then(n.t.bind(n,8601,23))},8337:function(e,t){"use strict";let n;Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{DOMAttributeNames:function(){return r},default:function(){return o},isEqualNode:function(){return i}});let r={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv",noModule:"noModule"};function l(e){let{type:t,props:n}=e,l=document.createElement(t);for(let e in n){if(!n.hasOwnProperty(e)||"children"===e||"dangerouslySetInnerHTML"===e||void 0===n[e])continue;let i=r[e]||e.toLowerCase();"script"===t&&("async"===i||"defer"===i||"noModule"===i)?l[i]=!!n[e]:l.setAttribute(i,n[e])}let{children:i,dangerouslySetInnerHTML:o}=n;return o?l.innerHTML=o.__html||"":i&&(l.textContent="string"==typeof i?i:Array.isArray(i)?i.join(""):""),l}function i(e,t){if(e instanceof HTMLElement&&t instanceof HTMLElement){let n=t.getAttribute("nonce");if(n&&!e.getAttribute("nonce")){let r=t.cloneNode(!0);return r.setAttribute("nonce",""),r.nonce=n,n===e.nonce&&e.isEqualNode(r)}}return e.isEqualNode(t)}function o(){return{mountedInstances:new Set,updateHead:e=>{let t={};e.forEach(e=>{if("link"===e.type&&e.props["data-optimized-fonts"]){if(document.querySelector('style[data-href="'+e.props["data-href"]+'"]'))return;e.props.href=e.props["data-href"],e.props["data-href"]=void 0}let n=t[e.type]||[];n.push(e),t[e.type]=n});let r=t.title?t.title[0]:null,l="";if(r){let{children:e}=r.props;l="string"==typeof e?e:Array.isArray(e)?e.join(""):""}l!==document.title&&(document.title=l),["meta","base","link","style","script"].forEach(e=>{n(e,t[e]||[])})}}}n=(e,t)=>{let n=document.getElementsByTagName("head")[0],r=n.querySelector("meta[name=next-head-count]"),o=Number(r.content),a=[];for(let t=0,n=r.previousElementSibling;t<o;t++,n=(null==n?void 0:n.previousElementSibling)||null){var u;(null==n?void 0:null==(u=n.tagName)?void 0:u.toLowerCase())===e&&a.push(n)}let s=t.map(l).filter(e=>{for(let t=0,n=a.length;t<n;t++)if(i(a[t],e))return a.splice(t,1),!1;return!0});a.forEach(e=>{var t;return null==(t=e.parentNode)?void 0:t.removeChild(e)}),s.forEach(e=>n.insertBefore(e,r)),r.content=(o-a.length+s.length).toString()},("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6588:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{cancelIdleCallback:function(){return r},requestIdleCallback:function(){return n}});let n="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},r="undefined"!=typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2147:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{default:function(){return g},handleClientScriptLoad:function(){return b},initScriptLoader:function(){return m}});let r=n(1887),l=n(9766),i=n(7573),o=r._(n(3458)),a=l._(n(7653)),u=n(2764),s=n(8337),c=n(6588),d=new Map,f=new Set,p=["onLoad","onReady","dangerouslySetInnerHTML","children","onError","strategy","stylesheets"],y=e=>{if(o.default.preinit){e.forEach(e=>{o.default.preinit(e,{as:"style"})});return}if("undefined"!=typeof window){let t=document.head;e.forEach(e=>{let n=document.createElement("link");n.type="text/css",n.rel="stylesheet",n.href=e,t.appendChild(n)})}},h=e=>{let{src:t,id:n,onLoad:r=()=>{},onReady:l=null,dangerouslySetInnerHTML:i,children:o="",strategy:a="afterInteractive",onError:u,stylesheets:c}=e,h=n||t;if(h&&f.has(h))return;if(d.has(t)){f.add(h),d.get(t).then(r,u);return}let b=()=>{l&&l(),f.add(h)},m=document.createElement("script"),_=new Promise((e,t)=>{m.addEventListener("load",function(t){e(),r&&r.call(this,t),b()}),m.addEventListener("error",function(e){t(e)})}).catch(function(e){u&&u(e)});for(let[n,r]of(i?(m.innerHTML=i.__html||"",b()):o?(m.textContent="string"==typeof o?o:Array.isArray(o)?o.join(""):"",b()):t&&(m.src=t,d.set(t,_)),Object.entries(e))){if(void 0===r||p.includes(n))continue;let e=s.DOMAttributeNames[n]||n.toLowerCase();m.setAttribute(e,r)}"worker"===a&&m.setAttribute("type","text/partytown"),m.setAttribute("data-nscript",a),c&&y(c),document.body.appendChild(m)};function b(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,c.requestIdleCallback)(()=>h(e))}):h(e)}function m(e){e.forEach(b),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");f.add(t)})}function _(e){let{id:t,src:n="",onLoad:r=()=>{},onReady:l=null,strategy:s="afterInteractive",onError:d,stylesheets:p,...y}=e,{updateScripts:b,scripts:m,getIsSsr:_,appDir:g,nonce:v}=(0,a.useContext)(u.HeadManagerContext),E=(0,a.useRef)(!1);(0,a.useEffect)(()=>{let e=t||n;E.current||(l&&e&&f.has(e)&&l(),E.current=!0)},[l,t,n]);let O=(0,a.useRef)(!1);if((0,a.useEffect)(()=>{!O.current&&("afterInteractive"===s?h(e):"lazyOnload"===s&&("complete"===document.readyState?(0,c.requestIdleCallback)(()=>h(e)):window.addEventListener("load",()=>{(0,c.requestIdleCallback)(()=>h(e))})),O.current=!0)},[e,s]),("beforeInteractive"===s||"worker"===s)&&(b?(m[s]=(m[s]||[]).concat([{id:t,src:n,onLoad:r,onReady:l,onError:d,...y}]),b(m)):_&&_()?f.add(t||n):_&&!_()&&h(e)),g){if(p&&p.forEach(e=>{o.default.preinit(e,{as:"style"})}),"beforeInteractive"===s)return n?(o.default.preload(n,y.integrity?{as:"script",integrity:y.integrity,nonce:v,crossOrigin:y.crossOrigin}:{as:"script",nonce:v,crossOrigin:y.crossOrigin}),(0,i.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+JSON.stringify([n,{...y,id:t}])+")"}})):(y.dangerouslySetInnerHTML&&(y.children=y.dangerouslySetInnerHTML.__html,delete y.dangerouslySetInnerHTML),(0,i.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+JSON.stringify([0,{...y,id:t}])+")"}}));"afterInteractive"===s&&n&&o.default.preload(n,y.integrity?{as:"script",integrity:y.integrity,nonce:v,crossOrigin:y.crossOrigin}:{as:"script",nonce:v,crossOrigin:y.crossOrigin})}return null}Object.defineProperty(_,"__nextScript",{value:!0});let g=_;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8601:function(){}},function(e){e.O(0,[694,293,528,744],function(){return e(e.s=7466)}),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[404,287],{9765:function(n,e,u){Promise.resolve().then(u.t.bind(u,8601,23))},8601:function(){}},function(n){n.O(0,[694,293,528,744],function(){return n(n.s=9765)}),_N_E=n.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[995],{354:function(n,u,e){Promise.resolve().then(e.bind(e,3178))},3178:function(n,u,e){"use strict";e.r(u),e.d(u,{default:function(){return c}});var t=e(7573),r=e(717);function c(){return(0,t.jsx)(r.az,{})}}},function(n){n.O(0,[694,695,293,528,744],function(){return n(n.s=354)}),_N_E=n.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[141],{108:function(n,u,e){Promise.resolve().then(e.bind(e,3507))},3507:function(n,u,e){"use strict";e.r(u),e.d(u,{default:function(){return c}});var t=e(7573),r=e(717);function c(){return(0,t.jsx)(r.pE,{})}}},function(n){n.O(0,[694,695,293,528,744],function(){return n(n.s=108)}),_N_E=n.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[363],{7756:function(e,a,t){Promise.resolve().then(t.bind(t,7343))},7343:function(e,a,t){"use strict";t.r(a),t.d(a,{default:function(){return x}});var c=t(7573),s=t(3146),r=t.n(s),n=t(7653),l=t(1695),d=t(5118);function o(){return(0,c.jsx)("div",{className:"relative min-h-screen flex items-center justify-center p-8 bg-bg-deep overflow-hidden",children:(0,c.jsxs)("div",{className:"bg-gradient-to-br from-bg-secondary to-bg-primary border border-accent-cyan/15 rounded-2xl p-12 shadow-xl backdrop-blur-xl",children:[(0,c.jsx)("div",{className:"w-12 h-12 mx-auto mb-6 border-3 border-accent-cyan/20 border-t-accent-cyan rounded-full animate-spin"}),(0,c.jsx)("p",{className:"text-center text-text-secondary",children:"Loading..."})]})})}function i(){var e;let a=(0,l.useSearchParams)(),[t,s]=(0,n.useState)("loading"),[o,i]=(0,n.useState)(null),[x,f]=(0,n.useState)(null),[m,b]=(0,n.useState)(""),[p,h]=(0,n.useState)(!1),[u,y]=(0,n.useState)([]),[j,g]=(0,n.useState)(null);(0,n.useEffect)(()=>{let e=a.get("code"),t=a.get("machine"),c=a.get("name");if(!e||!t||!c){s("error"),b("Invalid link URL. Please run agent-relay cloud link again.");return}i({code:e,machineId:t,machineName:c}),w()},[a]);let w=async()=>{try{var e,a;let t=await d.hi.get("/api/auth/session");if(t.authenticated&&(null===(e=t.user)||void 0===e?void 0:e.id)){let e=await d.hi.get("/api/workspaces");y(e.workspaces||[]),(null===(a=e.workspaces)||void 0===a?void 0:a.length)===1&&g(e.workspaces[0].id),s("ready")}else s("auth-required")}catch(e){console.error("Auth check failed:",e),s("auth-required")}},N=async()=>{if(o){if(u.length>0&&!j){b("Please select a workspace");return}s("linking"),b("");try{let e=await d.hi.post("/api/daemons/link",{machineId:o.machineId,name:o.machineName,workspaceId:j,metadata:{linkedVia:"cli",userAgent:navigator.userAgent}});f({apiKey:e.apiKey,daemonId:e.daemonId,workspaceId:e.workspaceId}),s("success")}catch(e){console.error("Link failed:",e),b(e.message||"Failed to link machine. Please try again."),s("error")}}},k=(0,n.useCallback)(async()=>{if(null==x?void 0:x.apiKey)try{await navigator.clipboard.writeText(x.apiKey),h(!0),setTimeout(()=>h(!1),2e3)}catch(e){console.error("Copy failed:",e)}},[null==x?void 0:x.apiKey]);return(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf relative min-h-screen flex items-center justify-center p-8 bg-bg-deep overflow-hidden",children:[(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf fixed inset-0 pointer-events-none",children:[(0,c.jsx)("div",{style:{backgroundImage:"linear-gradient(rgba(0, 217, 255, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 217, 255, 0.03) 1px, transparent 1px)",backgroundSize:"80px 80px",maskImage:"radial-gradient(ellipse 70% 50% at 50% 50%, black 20%, transparent 80%)",animation:"grid-drift 20s linear infinite"},className:"jsx-9cb8c5914f4e0cdf absolute inset-0 opacity-30"}),(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-accent-cyan/10 rounded-full blur-3xl animate-pulse-glow"}),(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf absolute inset-0",children:[...Array(20)].map((e,a)=>(0,c.jsx)("div",{style:{left:"".concat(100*Math.random(),"%"),top:"".concat(100*Math.random(),"%"),animation:"particle-float ".concat(3+4*Math.random(),"s ease-in-out infinite"),animationDelay:"".concat(5*Math.random(),"s")},className:"jsx-9cb8c5914f4e0cdf absolute w-0.5 h-0.5 bg-accent-cyan rounded-full shadow-glow-cyan opacity-0"},a))})]}),(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf relative z-10 w-full max-width-[600px] animate-slide-up",children:[(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf text-center mb-12",children:[(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf inline-flex mb-6 text-accent-cyan animate-pulse",children:(0,c.jsxs)("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",className:"jsx-9cb8c5914f4e0cdf drop-shadow-glow-cyan",children:[(0,c.jsx)("path",{d:"M16 4L28 11V21L16 28L4 21V11L16 4Z",stroke:"currentColor",strokeWidth:"2",className:"jsx-9cb8c5914f4e0cdf"}),(0,c.jsx)("circle",{cx:"16",cy:"16",r:"4",fill:"currentColor",className:"jsx-9cb8c5914f4e0cdf"})]})}),(0,c.jsx)("h1",{className:"jsx-9cb8c5914f4e0cdf font-display text-4xl font-bold mb-3 bg-gradient-to-r from-text-primary to-accent-cyan bg-clip-text text-transparent",children:"Link Machine"}),(0,c.jsx)("p",{className:"jsx-9cb8c5914f4e0cdf text-xl text-text-secondary",children:"Connect this machine to Agent Relay Cloud"})]}),"loading"===t&&(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf bg-gradient-to-br from-bg-secondary to-bg-primary border border-accent-cyan/15 rounded-2xl p-12 shadow-xl backdrop-blur-xl",children:[(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf w-12 h-12 mx-auto mb-6 border-3 border-accent-cyan/20 border-t-accent-cyan rounded-full animate-spin"}),(0,c.jsx)("p",{className:"jsx-9cb8c5914f4e0cdf text-center text-text-secondary",children:"Verifying session..."})]}),"auth-required"===t&&(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf bg-gradient-to-br from-bg-secondary to-bg-primary border border-accent-cyan/15 rounded-2xl p-12 shadow-xl backdrop-blur-xl",children:(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf text-center",children:[(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf text-5xl mb-6 animate-bounce",children:"\uD83D\uDD10"}),(0,c.jsx)("h2",{className:"jsx-9cb8c5914f4e0cdf font-display text-2xl font-semibold mb-4 text-text-primary",children:"Authentication Required"}),(0,c.jsx)("p",{className:"jsx-9cb8c5914f4e0cdf text-text-secondary mb-8 leading-relaxed",children:"Sign in to link this machine to your Agent Relay account."}),(0,c.jsx)("button",{onClick:()=>{let e=window.location.href;window.location.href="/login?return=".concat(encodeURIComponent(e))},className:"jsx-9cb8c5914f4e0cdf w-full flex items-center justify-center gap-3 px-8 py-4 bg-gradient-to-r from-accent-cyan to-accent-cyan/80 hover:from-accent-cyan/90 hover:to-accent-cyan/70 text-text-inverse font-display font-semibold text-lg rounded-xl shadow-glow-cyan transition-all duration-200 hover:-translate-y-0.5 hover:shadow-xl",children:"Sign In with GitHub"})]})}),"ready"===t&&o&&(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf bg-gradient-to-br from-bg-secondary to-bg-primary border border-accent-cyan/15 rounded-2xl p-12 shadow-xl backdrop-blur-xl",children:[(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf bg-black/30 border border-border-subtle rounded-xl p-6 mb-8",children:[(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf flex justify-between items-center py-3 border-b border-border-subtle",children:[(0,c.jsx)("span",{className:"jsx-9cb8c5914f4e0cdf text-sm font-medium text-text-secondary",children:"Machine Name"}),(0,c.jsx)("span",{className:"jsx-9cb8c5914f4e0cdf text-base font-medium text-text-primary",children:o.machineName})]}),(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf flex justify-between items-center pt-3",children:[(0,c.jsx)("span",{className:"jsx-9cb8c5914f4e0cdf text-sm font-medium text-text-secondary",children:"Machine ID"}),(0,c.jsx)("span",{className:"jsx-9cb8c5914f4e0cdf font-mono text-sm text-accent-cyan",children:o.machineId})]})]}),u.length>0&&(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf mb-8",children:[(0,c.jsx)("label",{className:"jsx-9cb8c5914f4e0cdf block text-sm font-medium text-text-secondary mb-3",children:"Select Workspace"}),(0,c.jsx)("p",{className:"jsx-9cb8c5914f4e0cdf text-sm text-text-muted mb-4",children:"Local agents from this machine will appear in the selected workspace's dashboard."}),(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf space-y-2",children:u.map(e=>(0,c.jsxs)("button",{onClick:()=>g(e.id),className:"jsx-9cb8c5914f4e0cdf "+"w-full flex items-center gap-3 p-4 rounded-xl border transition-all ".concat(j===e.id?"bg-accent-cyan/10 border-accent-cyan/50 shadow-glow-cyan":"bg-black/20 border-border-subtle hover:border-accent-cyan/30"),children:[(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf "+"w-3 h-3 rounded-full ".concat("running"===e.status?"bg-success":"bg-gray-500")}),(0,c.jsx)("span",{className:"jsx-9cb8c5914f4e0cdf text-text-primary font-medium",children:e.name}),j===e.id&&(0,c.jsx)("span",{className:"jsx-9cb8c5914f4e0cdf ml-auto text-accent-cyan",children:"✓"})]},e.id))}),m&&!m.includes("Failed")&&(0,c.jsx)("p",{className:"jsx-9cb8c5914f4e0cdf mt-2 text-sm text-error",children:m})]}),0===u.length&&(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf flex gap-4 bg-accent-cyan/8 border border-accent-cyan/20 rounded-xl p-5 mb-8",children:[(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf text-2xl flex-shrink-0",children:"\uD83D\uDCC1"}),(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf",children:[(0,c.jsx)("p",{className:"jsx-9cb8c5914f4e0cdf text-text-primary text-[15px] leading-relaxed mb-2",children:"No workspaces found. Create a workspace first to link this machine."}),(0,c.jsx)("a",{href:"/app",className:"jsx-9cb8c5914f4e0cdf text-accent-cyan hover:underline text-sm",children:"Go to Dashboard →"})]})]}),(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf flex gap-4 bg-warning/8 border border-warning/20 rounded-xl p-5 mb-8",children:[(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf text-2xl flex-shrink-0 animate-kill-pulse",children:"⚠️"}),(0,c.jsx)("p",{className:"jsx-9cb8c5914f4e0cdf text-text-primary text-[15px] leading-relaxed",children:"This will generate an API key that grants full access to your Agent Relay account. Keep it secure and never share it publicly."})]}),(0,c.jsxs)("button",{onClick:N,disabled:0===u.length,className:"jsx-9cb8c5914f4e0cdf "+"w-full flex items-center justify-center gap-3 px-8 py-4 font-display font-semibold text-lg rounded-xl transition-all duration-200 ".concat(0===u.length?"bg-gray-600 text-gray-400 cursor-not-allowed":"bg-gradient-to-r from-accent-cyan to-success hover:from-accent-cyan/90 hover:to-success/90 text-text-inverse shadow-glow-cyan hover:-translate-y-0.5 hover:shadow-2xl animate-pulse-glow"),children:[(0,c.jsx)("span",{className:"jsx-9cb8c5914f4e0cdf text-xl",children:"\uD83D\uDD17"}),(0,c.jsx)("span",{className:"jsx-9cb8c5914f4e0cdf",children:"Link This Machine"})]})]}),"linking"===t&&(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf bg-gradient-to-br from-bg-secondary to-bg-primary border border-accent-cyan/15 rounded-2xl p-12 shadow-xl backdrop-blur-xl",children:[(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf relative w-30 h-30 mx-auto mb-8",children:[(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf absolute inset-0 border-3 border-accent-cyan rounded-full animate-ping opacity-75"}),(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf absolute inset-10 bg-accent-cyan rounded-full shadow-glow-cyan animate-pulse"})]}),(0,c.jsx)("p",{className:"jsx-9cb8c5914f4e0cdf text-center text-lg text-text-secondary",children:"Generating API key..."})]}),"success"===t&&x&&(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf bg-gradient-to-br from-bg-secondary to-success/5 border border-success/30 rounded-2xl p-12 shadow-xl backdrop-blur-xl",children:[(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf text-center mb-10",children:[(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf inline-flex items-center justify-center w-16 h-16 mb-6 bg-gradient-to-r from-success to-accent-cyan text-text-inverse text-3xl font-bold rounded-full shadow-glow-green animate-bounce",children:"✓"}),(0,c.jsx)("h2",{className:"jsx-9cb8c5914f4e0cdf font-display text-2xl font-semibold mb-3 text-text-primary",children:"Machine Linked Successfully"}),(0,c.jsx)("p",{className:"jsx-9cb8c5914f4e0cdf text-text-secondary",children:"Copy this API key and paste it into your terminal"}),x.workspaceId&&(0,c.jsxs)("p",{className:"jsx-9cb8c5914f4e0cdf mt-2 text-sm text-accent-cyan",children:["Linked to workspace: ",(null===(e=u.find(e=>e.id===x.workspaceId))||void 0===e?void 0:e.name)||"Unknown"]})]}),(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf mb-10",children:[(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf font-mono text-xs font-semibold uppercase tracking-wide text-accent-cyan mb-3",children:"API Key"}),(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf relative flex items-center gap-4 bg-black/50 border-2 border-accent-cyan/30 rounded-xl p-5 shadow-glow-cyan",children:[(0,c.jsx)("code",{className:"jsx-9cb8c5914f4e0cdf flex-1 font-mono text-[15px] text-success break-all select-all drop-shadow-glow-green",children:x.apiKey}),(0,c.jsx)("button",{onClick:k,title:"Copy to clipboard",className:"jsx-9cb8c5914f4e0cdf "+"flex-shrink-0 w-11 h-11 flex items-center justify-center rounded-lg text-xl transition-all duration-200 ".concat(p?"bg-success/20 border border-success/50 text-success":"bg-accent-cyan/15 border border-accent-cyan/30 text-accent-cyan hover:bg-accent-cyan/25 hover:border-accent-cyan/50 hover:scale-105"),children:p?"✓":"\uD83D\uDCCB"})]})]}),(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf bg-black/30 border border-border-subtle rounded-xl p-6 mb-6",children:[(0,c.jsx)("h3",{className:"jsx-9cb8c5914f4e0cdf font-display text-lg font-semibold mb-4 text-text-primary",children:"Next Steps:"}),(0,c.jsxs)("ol",{className:"jsx-9cb8c5914f4e0cdf space-y-2 text-text-secondary leading-relaxed pl-5",children:[(0,c.jsx)("li",{className:"jsx-9cb8c5914f4e0cdf",children:"Copy the API key above"}),(0,c.jsx)("li",{className:"jsx-9cb8c5914f4e0cdf",children:"Return to your terminal"}),(0,c.jsx)("li",{className:"jsx-9cb8c5914f4e0cdf",children:"Paste the key when prompted"}),(0,c.jsx)("li",{className:"jsx-9cb8c5914f4e0cdf",children:"Your machine is now linked to Agent Relay Cloud"})]})]}),(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf p-5 bg-warning/8 border border-warning/20 rounded-xl text-text-primary text-[15px] leading-relaxed",children:[(0,c.jsx)("strong",{className:"jsx-9cb8c5914f4e0cdf text-warning font-semibold",children:"Important:"})," This key will only be shown once. Store it securely if you need it later. You can regenerate a new key by running"," ",(0,c.jsx)("code",{className:"jsx-9cb8c5914f4e0cdf font-mono text-sm px-1.5 py-0.5 bg-black/30 rounded text-accent-cyan",children:"agent-relay cloud link"})," ","again."]})]}),"error"===t&&(0,c.jsxs)("div",{className:"jsx-9cb8c5914f4e0cdf bg-gradient-to-br from-bg-secondary to-error/5 border border-error/30 rounded-2xl p-12 shadow-xl backdrop-blur-xl text-center",children:[(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf inline-flex items-center justify-center w-16 h-16 mb-6 bg-error/15 text-error text-3xl font-bold rounded-full border-2 border-error/30",children:"✕"}),(0,c.jsx)("h2",{className:"jsx-9cb8c5914f4e0cdf font-display text-2xl font-semibold mb-4 text-text-primary",children:"Link Failed"}),(0,c.jsx)("p",{className:"jsx-9cb8c5914f4e0cdf text-error mb-8 leading-relaxed",children:m}),(0,c.jsx)("button",{onClick:()=>window.location.reload(),className:"jsx-9cb8c5914f4e0cdf w-full px-8 py-4 bg-bg-hover hover:bg-bg-active border border-border-light hover:border-border-medium text-text-primary font-display font-semibold text-lg rounded-xl transition-all duration-200",children:"Try Again"})]}),(0,c.jsx)("div",{className:"jsx-9cb8c5914f4e0cdf mt-8 text-center",children:(0,c.jsxs)("a",{href:"/app",className:"jsx-9cb8c5914f4e0cdf inline-flex items-center gap-2 text-text-secondary hover:text-accent-cyan transition-colors duration-200",children:[(0,c.jsx)("span",{className:"jsx-9cb8c5914f4e0cdf",children:"←"}),(0,c.jsx)("span",{className:"jsx-9cb8c5914f4e0cdf",children:"Back to Dashboard"})]})})]}),(0,c.jsx)(r(),{id:"9cb8c5914f4e0cdf",children:"@-webkit-keyframes grid-drift{0%{-webkit-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(80px,80px);transform:translate(80px,80px)}}@-moz-keyframes grid-drift{0%{-moz-transform:translate(0,0);transform:translate(0,0)}100%{-moz-transform:translate(80px,80px);transform:translate(80px,80px)}}@-o-keyframes grid-drift{0%{-o-transform:translate(0,0);transform:translate(0,0)}100%{-o-transform:translate(80px,80px);transform:translate(80px,80px)}}@keyframes grid-drift{0%{-webkit-transform:translate(0,0);-moz-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}100%{-webkit-transform:translate(80px,80px);-moz-transform:translate(80px,80px);-o-transform:translate(80px,80px);transform:translate(80px,80px)}}@-webkit-keyframes particle-float{0%{opacity:0;-webkit-transform:translatey(0);transform:translatey(0)}10%{opacity:.6}90%{opacity:.6}100%{opacity:0;-webkit-transform:translatey(-100px);transform:translatey(-100px)}}@-moz-keyframes particle-float{0%{opacity:0;-moz-transform:translatey(0);transform:translatey(0)}10%{opacity:.6}90%{opacity:.6}100%{opacity:0;-moz-transform:translatey(-100px);transform:translatey(-100px)}}@-o-keyframes particle-float{0%{opacity:0;-o-transform:translatey(0);transform:translatey(0)}10%{opacity:.6}90%{opacity:.6}100%{opacity:0;-o-transform:translatey(-100px);transform:translatey(-100px)}}@keyframes particle-float{0%{opacity:0;-webkit-transform:translatey(0);-moz-transform:translatey(0);-o-transform:translatey(0);transform:translatey(0)}10%{opacity:.6}90%{opacity:.6}100%{opacity:0;-webkit-transform:translatey(-100px);-moz-transform:translatey(-100px);-o-transform:translatey(-100px);transform:translatey(-100px)}}"})]})}function x(){return(0,c.jsx)(n.Suspense,{fallback:(0,c.jsx)(o,{}),children:(0,c.jsx)(i,{})})}}},function(e){e.O(0,[773,118,293,528,744],function(){return e(e.s=7756)}),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[593],{725:function(e,t,s){Promise.resolve().then(s.bind(s,7597))},7597:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return i}});var a=s(7573),r=s(7653),n=s(5634);function i(){let[e,t]=(0,r.useState)(""),[s,i]=(0,r.useState)(!0),[l,o]=(0,r.useState)(!1),[c,d]=(0,r.useState)(""),[u,x]=(0,r.useState)(null);(0,r.useEffect)(()=>{(async()=>{try{var e;let t=await fetch("/api/auth/me",{credentials:"include"});if(!t.ok){window.location.href="/login";return}let s=await t.json();if(null===(e=s.user)||void 0===e?void 0:e.email){window.location.href="/app";return}x(s.user),i(!1)}catch(e){console.error("Error checking session:",e),window.location.href="/login"}})()},[]);let m=async t=>{t.preventDefault(),d(""),o(!0);try{let t=(await fetch("/api/auth/session",{credentials:"include"})).headers.get("x-csrf-token"),s=await fetch("/api/auth/email/set-email",{method:"POST",headers:{"Content-Type":"application/json",...t&&{"x-csrf-token":t}},credentials:"include",body:JSON.stringify({email:e})}),a=await s.json();if(!s.ok){d(a.error||"Failed to set email"),o(!1);return}window.location.href="/app"}catch(e){console.error("Error setting email:",e),d("Failed to connect. Please try again."),o(!1)}};return s?(0,a.jsx)("div",{className:"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex flex-col items-center justify-center p-4",children:(0,a.jsx)("div",{className:"relative z-10 w-full max-w-md",children:(0,a.jsxs)("div",{className:"flex flex-col items-center mb-8",children:[(0,a.jsx)(n.K7,{size:48,withGlow:!0}),(0,a.jsx)("h1",{className:"mt-4 text-2xl font-bold text-white",children:"Agent Relay"}),(0,a.jsx)("p",{className:"mt-2 text-text-muted",children:"Loading..."})]})})}):(0,a.jsxs)("div",{className:"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex flex-col items-center justify-center p-4",children:[(0,a.jsx)("div",{className:"fixed inset-0 opacity-10",children:(0,a.jsx)("div",{className:"absolute inset-0",style:{backgroundImage:"linear-gradient(rgba(0, 217, 255, 0.1) 1px, transparent 1px),\n linear-gradient(90deg, rgba(0, 217, 255, 0.1) 1px, transparent 1px)",backgroundSize:"50px 50px"}})}),(0,a.jsxs)("div",{className:"relative z-10 w-full max-w-md",children:[(0,a.jsxs)("div",{className:"flex flex-col items-center mb-8",children:[(0,a.jsx)(n.K7,{size:48,withGlow:!0}),(0,a.jsx)("h1",{className:"mt-4 text-2xl font-bold text-white",children:"Almost there!"}),(0,a.jsx)("p",{className:"mt-2 text-text-muted text-center",children:"Please provide your email to complete your account setup"})]}),(0,a.jsxs)("div",{className:"bg-bg-primary/80 backdrop-blur-sm border border-border-subtle rounded-2xl p-8 shadow-xl",children:[u&&(0,a.jsxs)("div",{className:"flex items-center gap-4 mb-6 pb-6 border-b border-border-subtle",children:[u.avatarUrl?(0,a.jsx)("img",{src:u.avatarUrl,alt:u.githubUsername||"User",className:"w-12 h-12 rounded-full"}):(0,a.jsx)("div",{className:"w-12 h-12 rounded-full bg-bg-secondary flex items-center justify-center",children:(0,a.jsx)("svg",{className:"w-6 h-6 text-text-muted",fill:"currentColor",viewBox:"0 0 24 24",children:(0,a.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"})})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"font-medium text-white",children:u.githubUsername}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Connected via GitHub"})]})]}),c&&(0,a.jsx)("div",{className:"mb-4 p-3 bg-error/10 border border-error/20 rounded-lg",children:(0,a.jsx)("p",{className:"text-error text-sm",children:c})}),(0,a.jsxs)("form",{onSubmit:m,className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"email",className:"block text-sm font-medium text-text-secondary mb-2",children:"Email Address"}),(0,a.jsx)("input",{type:"email",id:"email",value:e,onChange:e=>t(e.target.value),required:!0,disabled:l,className:"w-full px-4 py-3 bg-bg-secondary border border-border-subtle rounded-xl text-white placeholder-text-muted focus:outline-none focus:ring-2 focus:ring-accent-cyan/50 focus:border-accent-cyan disabled:opacity-50",placeholder:"you@example.com"}),(0,a.jsx)("p",{className:"mt-2 text-xs text-text-muted",children:"We'll use this email to notify you about important updates and account activity."})]}),(0,a.jsx)("button",{type:"submit",disabled:l||!e,className:"w-full py-4 px-6 bg-accent-cyan hover:bg-accent-cyan/90 rounded-xl text-black font-medium flex items-center justify-center gap-3 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:l?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("svg",{className:"w-5 h-5 animate-spin",fill:"none",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,a.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,a.jsx)("span",{children:"Saving..."})]}):(0,a.jsx)("span",{children:"Continue"})})]})]})]})]})}},5634:function(e,t,s){"use strict";s.d(t,{K7:function(){return r}});var a=s(7573);function r(e){let{size:t=24,className:s="",withGlow:r=!1}=e;return(0,a.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(s,"\n "),"aria-label":"Agent Relay Logo",role:"img",children:[(0,a.jsx)("path",{d:"M30 80 L 50 20 L 70 80",stroke:"#00d9ff",strokeWidth:"5",strokeLinejoin:"round",strokeLinecap:"round",fill:"none"}),(0,a.jsx)("line",{x1:"40",y1:"50",x2:"60",y2:"50",stroke:"#00d9ff",strokeWidth:"5",strokeLinecap:"round"}),(0,a.jsx)("path",{d:"M50 20 L 50 80",stroke:"#00ffc8",strokeWidth:"2.5",strokeLinecap:"round",opacity:"0.7"}),(0,a.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"})]})}s(7653)}},function(e){e.O(0,[293,528,744],function(){return e(e.s=725)}),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[70],{7271:function(e,t,s){Promise.resolve().then(s.bind(s,8232))},8232:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return a}});var r=s(7573),n=s(7653),i=s(5888),o=s(5634);function a(){let[e,t]=(0,n.useState)("checking"),[s,a]=(0,n.useState)(null),[l,c]=(0,n.useState)([]),[d,x]=(0,n.useState)(null),[h,u]=(0,n.useState)(""),m=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=!0;return(async()=>{try{let s=await fetch("/api/auth/session",{credentials:"include"});if(!(await s.json()).authenticated){window.location.href="/login";return}if(!e)return;let r=await fetch("/api/auth/nango/repo-session",{credentials:"include"}),n=await r.json();if(!e)return;if(!r.ok||!n.sessionToken){if((null==n?void 0:n.sessionExpired)||(null==n?void 0:n.code)==="SESSION_EXPIRED"){window.location.href="/login";return}a("Failed to initialize. Please refresh the page."),t("error");return}m.current=new i.ZP({connectSessionToken:n.sessionToken}),t("ready")}catch(t){e&&(window.location.href="/login")}})(),()=>{e=!1}},[]);let p=async e=>{let t=await fetch("/api/auth/nango/repo-status/".concat(e),{credentials:"include"});if(!t.ok)throw Error("Status not ready");return t.json()},f=async e=>{try{t("polling"),u("Syncing repositories...");let s=Date.now(),r=async()=>{if(Date.now()-s>3e5)throw Error("Connection timed out. Please try again.");try{let s=await p(e);if(s.pendingApproval){t("pending-approval"),x(s.message||"Waiting for organization admin approval");return}if(s.ready&&s.repos){c(s.repos),t("success");return}return await new Promise(e=>setTimeout(e,2e3)),r()}catch(e){return await new Promise(e=>setTimeout(e,2e3)),r()}};await r()}catch(e){console.error("[AUTH] Error:",e),a(e instanceof Error?e.message:"Connection failed"),t("error"),u("")}},g=async()=>{if(!m.current){a("Not ready. Please refresh the page.");return}t("connecting"),a(null),u("Connecting to GitHub...");try{let e=await m.current.auth("github-app-oauth");if(e&&"connectionId"in e)await f(e.connectionId);else throw Error("No connection ID returned")}catch(s){var e;if(console.error("GitHub App auth error:",s),"user_cancelled"===s.type||(null===(e=s.message)||void 0===e?void 0:e.includes("closed"))){u(""),fetch("/api/auth/nango/repo-session",{credentials:"include"}).then(e=>e.json()).then(e=>{e.sessionToken&&(m.current=new i.ZP({connectSessionToken:e.sessionToken}),t("ready"))});return}a(s.message||"Connection failed"),t("error"),u("")}},b=async()=>{a(null),c([]),x(null),u(""),t("checking");try{let e=await fetch("/api/auth/nango/repo-session",{credentials:"include"}),s=await e.json();if(!e.ok||!s.sessionToken){if((null==s?void 0:s.sessionExpired)||(null==s?void 0:s.code)==="SESSION_EXPIRED"){window.location.href="/login";return}a("Failed to initialize. Please refresh the page."),t("error");return}m.current=new i.ZP({connectSessionToken:s.sessionToken}),t("ready")}catch(e){a("Failed to initialize. Please refresh the page."),t("error")}},j=()=>{window.location.href="/app"};if("checking"===e)return(0,r.jsx)("div",{className:"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex items-center justify-center",children:(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsxs)("svg",{className:"w-8 h-8 text-accent-cyan animate-spin mx-auto",fill:"none",viewBox:"0 0 24 24",children:[(0,r.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,r.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,r.jsx)("p",{className:"mt-4 text-text-muted",children:"Loading..."})]})});let w="connecting"===e||"polling"===e;return(0,r.jsxs)("div",{className:"min-h-screen bg-gradient-to-br from-[#0a0a0f] via-[#0d1117] to-[#0a0a0f] flex flex-col items-center justify-center p-4",children:[(0,r.jsx)("div",{className:"fixed inset-0 opacity-10",children:(0,r.jsx)("div",{className:"absolute inset-0",style:{backgroundImage:"linear-gradient(rgba(0, 217, 255, 0.1) 1px, transparent 1px),\n linear-gradient(90deg, rgba(0, 217, 255, 0.1) 1px, transparent 1px)",backgroundSize:"50px 50px"}})}),(0,r.jsxs)("div",{className:"relative z-10 w-full max-w-lg",children:[(0,r.jsxs)("div",{className:"flex flex-col items-center mb-8",children:[(0,r.jsx)(o.K7,{size:48,withGlow:!0}),(0,r.jsx)("h1",{className:"mt-4 text-2xl font-bold text-white",children:"Connect Repositories"}),(0,r.jsx)("p",{className:"mt-2 text-text-muted text-center",children:"Connect your GitHub repositories to enable agent access"})]}),(0,r.jsx)("div",{className:"bg-bg-primary/80 backdrop-blur-sm border border-border-subtle rounded-2xl p-8 shadow-xl",children:"success"===e?(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"w-16 h-16 mx-auto mb-4 bg-success/20 rounded-full flex items-center justify-center",children:(0,r.jsx)("svg",{className:"w-8 h-8 text-success",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})}),(0,r.jsx)("h2",{className:"text-xl font-semibold text-white mb-4 text-center",children:"Repositories Connected!"}),(0,r.jsx)("div",{className:"max-h-60 overflow-y-auto mb-6 space-y-2",children:l.map(e=>(0,r.jsxs)("div",{className:"flex items-center gap-3 p-3 bg-bg-tertiary rounded-lg",children:[(0,r.jsx)("svg",{className:"w-5 h-5 text-text-muted flex-shrink-0",fill:"currentColor",viewBox:"0 0 16 16",children:(0,r.jsx)("path",{d:"M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8z"})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("p",{className:"text-white font-medium truncate",children:e.fullName}),(0,r.jsx)("p",{className:"text-text-muted text-sm",children:e.isPrivate?"Private":"Public"})]})]},e.id))}),(0,r.jsx)("button",{onClick:j,className:"w-full py-3 px-4 bg-gradient-to-r from-accent-cyan to-[#00b8d9] text-bg-deep font-semibold rounded-xl hover:shadow-glow-cyan transition-all",children:"Continue to Dashboard"})]}):"pending-approval"===e?(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"w-16 h-16 mx-auto mb-4 bg-warning/20 rounded-full flex items-center justify-center",children:(0,r.jsx)("svg",{className:"w-8 h-8 text-warning",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})})}),(0,r.jsx)("h2",{className:"text-xl font-semibold text-white mb-2",children:"Approval Pending"}),(0,r.jsx)("p",{className:"text-text-muted mb-6",children:d}),(0,r.jsx)("p",{className:"text-sm text-text-muted mb-6",children:"An organization admin needs to approve the GitHub App installation."}),(0,r.jsxs)("div",{className:"flex gap-3",children:[(0,r.jsx)("button",{onClick:b,className:"flex-1 py-3 px-4 bg-bg-tertiary border border-border-subtle rounded-xl text-white font-medium hover:bg-bg-hover transition-colors",children:"Try Again"}),(0,r.jsx)("button",{onClick:j,className:"flex-1 py-3 px-4 bg-bg-tertiary border border-border-subtle rounded-xl text-white font-medium hover:bg-bg-hover transition-colors",children:"Skip for Now"})]})]}):"error"===e?(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"w-16 h-16 mx-auto mb-4 bg-error/20 rounded-full flex items-center justify-center",children:(0,r.jsx)("svg",{className:"w-8 h-8 text-error",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})}),(0,r.jsx)("h2",{className:"text-xl font-semibold text-white mb-2",children:"Connection Failed"}),(0,r.jsx)("p",{className:"text-text-muted mb-6",children:s}),(0,r.jsx)("button",{onClick:b,className:"w-full py-3 px-4 bg-bg-tertiary border border-border-subtle rounded-xl text-white font-medium hover:bg-bg-hover transition-colors",children:"Try Again"})]}):"polling"===e?(0,r.jsxs)("div",{className:"text-center",children:[(0,r.jsx)("div",{className:"w-16 h-16 mx-auto mb-4 flex items-center justify-center",children:(0,r.jsxs)("svg",{className:"w-8 h-8 text-accent-cyan animate-spin",fill:"none",viewBox:"0 0 24 24",children:[(0,r.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,r.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}),(0,r.jsx)("h2",{className:"text-xl font-semibold text-white mb-2",children:"Syncing Repositories"}),(0,r.jsx)("p",{className:"text-text-muted",children:h||"Fetching your repositories..."})]}):(0,r.jsxs)("div",{children:[s&&(0,r.jsx)("div",{className:"mb-4 p-3 bg-error/10 border border-error/20 rounded-lg",children:(0,r.jsx)("p",{className:"text-error text-sm",children:s})}),(0,r.jsxs)("div",{className:"mb-6 p-4 bg-bg-tertiary rounded-lg border border-border-subtle",children:[(0,r.jsx)("h3",{className:"font-medium text-white mb-2",children:"What this enables:"}),(0,r.jsxs)("ul",{className:"space-y-2 text-sm text-text-muted",children:[(0,r.jsxs)("li",{className:"flex items-start gap-2",children:[(0,r.jsx)("svg",{className:"w-4 h-4 text-success mt-0.5 flex-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})}),(0,r.jsx)("span",{children:"Agents can clone and work on your repositories"})]}),(0,r.jsxs)("li",{className:"flex items-start gap-2",children:[(0,r.jsx)("svg",{className:"w-4 h-4 text-success mt-0.5 flex-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})}),(0,r.jsx)("span",{children:"Create issues, PRs, and comments on your behalf"})]}),(0,r.jsxs)("li",{className:"flex items-start gap-2",children:[(0,r.jsx)("svg",{className:"w-4 h-4 text-success mt-0.5 flex-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})}),(0,r.jsx)("span",{children:"Secure token management - we never store your password"})]})]})]}),(0,r.jsx)("button",{onClick:g,disabled:"ready"!==e||w,className:"w-full py-4 px-6 bg-[#24292e] hover:bg-[#2f363d] border border-[#444d56] rounded-xl text-white font-medium flex items-center justify-center gap-3 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:w?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("svg",{className:"w-5 h-5 animate-spin",fill:"none",viewBox:"0 0 24 24",children:[(0,r.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,r.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,r.jsx)("span",{children:h||"Connecting..."})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("svg",{className:"w-6 h-6",fill:"currentColor",viewBox:"0 0 24 24",children:(0,r.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"})}),(0,r.jsx)("span",{children:"Connect GitHub Repositories"})]})}),(0,r.jsx)("button",{onClick:j,className:"w-full mt-3 py-3 px-4 text-text-muted hover:text-white transition-colors text-sm",children:"Skip for now"})]})}),(0,r.jsx)("div",{className:"mt-6 text-center",children:(0,r.jsx)("a",{href:"/app",className:"text-text-muted hover:text-white transition-colors",children:"Back to dashboard"})})]})]})}},5634:function(e,t,s){"use strict";s.d(t,{K7:function(){return n}});var r=s(7573);function n(e){let{size:t=24,className:s="",withGlow:n=!1}=e;return(0,r.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(n?"drop-shadow-[0_0_8px_rgba(0,217,255,0.3)]":"","\n ").concat(s,"\n "),"aria-label":"Agent Relay Logo",role:"img",children:[(0,r.jsx)("path",{d:"M30 80 L 50 20 L 70 80",stroke:"#00d9ff",strokeWidth:"5",strokeLinejoin:"round",strokeLinecap:"round",fill:"none"}),(0,r.jsx)("line",{x1:"40",y1:"50",x2:"60",y2:"50",stroke:"#00d9ff",strokeWidth:"5",strokeLinecap:"round"}),(0,r.jsx)("path",{d:"M50 20 L 50 80",stroke:"#00ffc8",strokeWidth:"2.5",strokeLinecap:"round",opacity:"0.7"}),(0,r.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"})]})}s(7653)}},function(e){e.O(0,[202,293,528,744],function(){return e(e.s=7271)}),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[327],{8078:function(n,u,e){Promise.resolve().then(e.bind(e,2514))},2514:function(n,u,e){"use strict";e.r(u),e.d(u,{default:function(){return c}});var t=e(7573),r=e(717);function c(){return(0,t.jsx)(r.KN,{})}}},function(n){n.O(0,[694,695,293,528,744],function(){return n(n.s=8078)}),_N_E=n.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[726],{1941:function(n,u,e){Promise.resolve().then(e.bind(e,1682))},1682:function(n,u,e){"use strict";e.r(u),e.d(u,{default:function(){return c}});var t=e(7573),r=e(717);function c(){return(0,t.jsx)(r.kO,{})}}},function(n){n.O(0,[694,695,293,528,744],function(){return n(n.s=1941)}),_N_E=n.O()}]);
|