@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
package/dist/start.js
CHANGED
|
@@ -3,15 +3,21 @@
|
|
|
3
3
|
* Relay Dashboard Server Entry Point
|
|
4
4
|
*
|
|
5
5
|
* Start the dashboard server from the command line.
|
|
6
|
-
*
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* - Mock mode:
|
|
6
|
+
* Single entry point using proxy-server.ts:
|
|
7
|
+
* - Default mode: Relaycast data + broker proxy
|
|
8
|
+
* - Standalone mode: Relaycast data only (omit relay URL)
|
|
9
|
+
* - Mock mode: Fixture data, no dependencies
|
|
10
10
|
*/
|
|
11
11
|
import { readFileSync, existsSync } from 'node:fs';
|
|
12
12
|
import { fileURLToPath } from 'node:url';
|
|
13
13
|
import { dirname, join } from 'node:path';
|
|
14
14
|
import { startServer } from './proxy-server.js';
|
|
15
|
+
const DEFAULT_PORT = 3888;
|
|
16
|
+
const DEFAULT_RELAY_URL = 'http://127.0.0.1:3889';
|
|
17
|
+
const DEFAULT_DATA_DIR = '.agent-relay';
|
|
18
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
19
|
+
const __dirname = dirname(__filename);
|
|
20
|
+
const DEFAULT_STATIC_DIR = join(__dirname, '..', 'out');
|
|
15
21
|
// Read version - prefer build-time define for compiled binaries, fall back to package.json
|
|
16
22
|
function getVersion() {
|
|
17
23
|
// Check for build-time defined version (set via bun build --define)
|
|
@@ -21,8 +27,6 @@ function getVersion() {
|
|
|
21
27
|
}
|
|
22
28
|
// Fall back to reading from package.json (for development/npm installs)
|
|
23
29
|
try {
|
|
24
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
25
|
-
const __dirname = dirname(__filename);
|
|
26
30
|
// Walk up to find package.json
|
|
27
31
|
let dir = __dirname;
|
|
28
32
|
for (let i = 0; i < 5; i++) {
|
|
@@ -46,104 +50,107 @@ function getVersion() {
|
|
|
46
50
|
}
|
|
47
51
|
return 'unknown';
|
|
48
52
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const options = {};
|
|
52
|
-
for (let i = 0; i < args.length; i++) {
|
|
53
|
-
const arg = args[i];
|
|
54
|
-
if (arg === '--port' || arg === '-p') {
|
|
55
|
-
options.port = args[++i];
|
|
56
|
-
}
|
|
57
|
-
else if (arg === '--relay-url' || arg === '-r') {
|
|
58
|
-
options.relayUrl = args[++i];
|
|
59
|
-
}
|
|
60
|
-
else if (arg === '--static-dir' || arg === '-s') {
|
|
61
|
-
options.staticDir = args[++i];
|
|
62
|
-
}
|
|
63
|
-
else if (arg === '--verbose' || arg === '-v') {
|
|
64
|
-
options.verbose = true;
|
|
65
|
-
}
|
|
66
|
-
else if (arg === '--mock' || arg === '-m') {
|
|
67
|
-
options.mock = true;
|
|
68
|
-
}
|
|
69
|
-
else if (arg === '--integrated') {
|
|
70
|
-
options.integrated = true;
|
|
71
|
-
}
|
|
72
|
-
else if (arg === '--data-dir') {
|
|
73
|
-
options.dataDir = args[++i];
|
|
74
|
-
}
|
|
75
|
-
else if (arg === '--team-dir') {
|
|
76
|
-
options.teamDir = args[++i];
|
|
77
|
-
}
|
|
78
|
-
else if (arg === '--project-root') {
|
|
79
|
-
options.projectRoot = args[++i];
|
|
80
|
-
}
|
|
81
|
-
else if (arg === '--version' || arg === '-V') {
|
|
82
|
-
console.log(getVersion());
|
|
83
|
-
process.exit(0);
|
|
84
|
-
}
|
|
85
|
-
else if (arg === '--help' || arg === '-h') {
|
|
86
|
-
console.log(`
|
|
53
|
+
function printHelp() {
|
|
54
|
+
console.log(`
|
|
87
55
|
Relay Dashboard Server v${getVersion()}
|
|
88
56
|
|
|
89
|
-
A standalone dashboard for Agent Relay that can run in three modes:
|
|
90
|
-
- Integrated mode: Full @agent-relay integration (used by CLI)
|
|
91
|
-
- Proxy mode (default): Forwards requests to a relay daemon HTTP endpoint
|
|
92
|
-
- Mock mode: Returns fixture data for testing without dependencies
|
|
93
|
-
|
|
94
57
|
Usage: relay-dashboard-server [options]
|
|
95
58
|
|
|
59
|
+
Modes:
|
|
60
|
+
Default: Serves dashboard with Relaycast data + broker proxy
|
|
61
|
+
--mock: Serves dashboard with fixture data (no dependencies)
|
|
62
|
+
No --relay-url: Standalone read-only mode (Relaycast data only)
|
|
63
|
+
|
|
96
64
|
Options:
|
|
97
|
-
-p, --port <port> Port to listen on (default:
|
|
98
|
-
-r, --relay-url <url> Relay
|
|
99
|
-
|
|
100
|
-
-
|
|
65
|
+
-p, --port <port> Port to listen on (default: ${DEFAULT_PORT}, env: PORT)
|
|
66
|
+
-r, --relay-url <url> Relay broker URL (default: ${DEFAULT_RELAY_URL}, env: RELAY_URL)
|
|
67
|
+
--data-dir <path> Relaycast credentials directory (default: ${DEFAULT_DATA_DIR}, env: DATA_DIR)
|
|
68
|
+
-s, --static-dir <path> Static files directory (default: ${DEFAULT_STATIC_DIR}, env: STATIC_DIR)
|
|
69
|
+
-m, --mock Run in mock mode (env: MOCK=true)
|
|
101
70
|
-v, --verbose Enable verbose logging (env: VERBOSE=true)
|
|
102
|
-
--integrated Run in integrated mode (requires --data-dir, --team-dir, --project-root)
|
|
103
|
-
--data-dir <path> Data directory for integrated mode
|
|
104
|
-
--team-dir <path> Team directory for integrated mode
|
|
105
71
|
-V, --version Output the version number
|
|
106
|
-
--project-root <path> Project root for integrated mode
|
|
107
72
|
-h, --help Show this help message
|
|
108
73
|
|
|
109
74
|
Examples:
|
|
110
|
-
relay-dashboard
|
|
111
|
-
relay-dashboard --mock
|
|
112
|
-
relay-dashboard
|
|
113
|
-
relay-dashboard -
|
|
114
|
-
relay-dashboard --integrated --data-dir ... --team-dir ... --project-root ...
|
|
75
|
+
relay-dashboard-server
|
|
76
|
+
relay-dashboard-server --mock
|
|
77
|
+
relay-dashboard-server --port 4000 --relay-url http://127.0.0.1:3889
|
|
78
|
+
relay-dashboard-server --data-dir /path/to/.agent-relay --verbose
|
|
115
79
|
`);
|
|
116
|
-
|
|
80
|
+
}
|
|
81
|
+
function readOptionValue(args, index, flag) {
|
|
82
|
+
const value = args[index + 1];
|
|
83
|
+
if (!value || value.startsWith('-')) {
|
|
84
|
+
throw new Error(`Missing value for ${flag}`);
|
|
117
85
|
}
|
|
86
|
+
return value;
|
|
118
87
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
if (
|
|
122
|
-
|
|
123
|
-
const { startDashboard } = await import('./server.js');
|
|
124
|
-
if (!options.dataDir || !options.teamDir || !options.projectRoot) {
|
|
125
|
-
console.error('Integrated mode requires --data-dir, --team-dir, and --project-root');
|
|
126
|
-
process.exit(1);
|
|
127
|
-
}
|
|
128
|
-
await startDashboard({
|
|
129
|
-
port: options.port ? parseInt(options.port, 10) : 3888,
|
|
130
|
-
dataDir: options.dataDir,
|
|
131
|
-
teamDir: options.teamDir,
|
|
132
|
-
projectRoot: options.projectRoot,
|
|
133
|
-
enableSpawner: true,
|
|
134
|
-
verbose: options.verbose,
|
|
135
|
-
});
|
|
88
|
+
function parsePort(value) {
|
|
89
|
+
const port = Number.parseInt(value, 10);
|
|
90
|
+
if (!Number.isInteger(port) || port <= 0 || port > 65535) {
|
|
91
|
+
throw new Error(`Invalid port: ${value}`);
|
|
136
92
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
93
|
+
return port;
|
|
94
|
+
}
|
|
95
|
+
function parseArgs(args) {
|
|
96
|
+
const options = {};
|
|
97
|
+
for (let i = 0; i < args.length; i++) {
|
|
98
|
+
const arg = args[i];
|
|
99
|
+
if (arg === '--port' || arg === '-p') {
|
|
100
|
+
options.port = parsePort(readOptionValue(args, i, arg));
|
|
101
|
+
i += 1;
|
|
102
|
+
}
|
|
103
|
+
else if (arg === '--relay-url' || arg === '-r') {
|
|
104
|
+
options.relayUrl = readOptionValue(args, i, arg);
|
|
105
|
+
i += 1;
|
|
106
|
+
}
|
|
107
|
+
else if (arg === '--data-dir') {
|
|
108
|
+
options.dataDir = readOptionValue(args, i, arg);
|
|
109
|
+
i += 1;
|
|
110
|
+
}
|
|
111
|
+
else if (arg === '--static-dir' || arg === '-s') {
|
|
112
|
+
options.staticDir = readOptionValue(args, i, arg);
|
|
113
|
+
i += 1;
|
|
114
|
+
}
|
|
115
|
+
else if (arg === '--mock' || arg === '-m') {
|
|
116
|
+
options.mock = true;
|
|
117
|
+
}
|
|
118
|
+
else if (arg === '--verbose' || arg === '-v') {
|
|
119
|
+
options.verbose = true;
|
|
120
|
+
}
|
|
121
|
+
else if (arg === '--version' || arg === '-V') {
|
|
122
|
+
console.log(getVersion());
|
|
123
|
+
process.exit(0);
|
|
124
|
+
}
|
|
125
|
+
else if (arg === '--help' || arg === '-h') {
|
|
126
|
+
printHelp();
|
|
127
|
+
process.exit(0);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
throw new Error(`Unknown option: ${arg}`);
|
|
131
|
+
}
|
|
146
132
|
}
|
|
133
|
+
return options;
|
|
134
|
+
}
|
|
135
|
+
let cliOptions;
|
|
136
|
+
try {
|
|
137
|
+
cliOptions = parseArgs(process.argv.slice(2));
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
console.error(error.message);
|
|
141
|
+
console.error('Use --help to see available options.');
|
|
142
|
+
process.exit(1);
|
|
143
|
+
}
|
|
144
|
+
// Start the server
|
|
145
|
+
async function main() {
|
|
146
|
+
await startServer({
|
|
147
|
+
port: cliOptions.port ?? parsePort(process.env.PORT || `${DEFAULT_PORT}`),
|
|
148
|
+
relayUrl: cliOptions.relayUrl ?? process.env.RELAY_URL ?? DEFAULT_RELAY_URL,
|
|
149
|
+
dataDir: cliOptions.dataDir ?? process.env.DATA_DIR ?? DEFAULT_DATA_DIR,
|
|
150
|
+
staticDir: cliOptions.staticDir ?? process.env.STATIC_DIR ?? DEFAULT_STATIC_DIR,
|
|
151
|
+
verbose: cliOptions.verbose ?? process.env.VERBOSE === 'true',
|
|
152
|
+
mock: cliOptions.mock ?? process.env.MOCK === 'true',
|
|
153
|
+
});
|
|
147
154
|
}
|
|
148
155
|
main().catch((err) => {
|
|
149
156
|
console.error('Failed to start dashboard server:', err);
|
package/dist/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -6,11 +6,12 @@
|
|
|
6
6
|
import type { Express } from 'express';
|
|
7
7
|
import type { Server } from 'http';
|
|
8
8
|
import type { WebSocketServer } from 'ws';
|
|
9
|
+
import type { RelayAdapter } from '@agent-relay/sdk';
|
|
9
10
|
/**
|
|
10
11
|
* Interface for spawn manager read operations.
|
|
11
|
-
* When the
|
|
12
|
-
* for read operations (logs, worker listing)
|
|
13
|
-
* Spawn/release go through the SDK client →
|
|
12
|
+
* When the broker SpawnManager is passed in, the dashboard uses it
|
|
13
|
+
* for read operations (logs, worker listing).
|
|
14
|
+
* Spawn/release go through the SDK client → broker socket.
|
|
14
15
|
*/
|
|
15
16
|
export interface SpawnManagerLike {
|
|
16
17
|
hasWorker(name: string): boolean;
|
|
@@ -25,7 +26,7 @@ export interface SpawnManagerLike {
|
|
|
25
26
|
spawnedAt: number;
|
|
26
27
|
pid?: number;
|
|
27
28
|
}>;
|
|
28
|
-
sendWorkerInput(name: string, data: string): boolean
|
|
29
|
+
sendWorkerInput(name: string, data: string): boolean | Promise<boolean>;
|
|
29
30
|
}
|
|
30
31
|
/**
|
|
31
32
|
* Options for starting the dashboard server
|
|
@@ -37,7 +38,7 @@ export interface DashboardOptions {
|
|
|
37
38
|
dataDir: string;
|
|
38
39
|
/** Team directory for configuration */
|
|
39
40
|
teamDir: string;
|
|
40
|
-
/** Path to SQLite database (defaults to dataDir/messages.sqlite - same as
|
|
41
|
+
/** Path to SQLite database (defaults to dataDir/messages.sqlite - same as broker runtime) */
|
|
41
42
|
dbPath?: string;
|
|
42
43
|
/** Enable agent spawning API */
|
|
43
44
|
enableSpawner?: boolean;
|
|
@@ -49,7 +50,7 @@ export interface DashboardOptions {
|
|
|
49
50
|
verbose?: boolean;
|
|
50
51
|
/**
|
|
51
52
|
* Callback to mark an agent as spawning (before HELLO completes).
|
|
52
|
-
* Messages sent to this agent
|
|
53
|
+
* Messages sent to this agent can be queued for delivery after registration.
|
|
53
54
|
*/
|
|
54
55
|
onMarkSpawning?: (agentName: string) => void;
|
|
55
56
|
/**
|
|
@@ -58,11 +59,10 @@ export interface DashboardOptions {
|
|
|
58
59
|
*/
|
|
59
60
|
onClearSpawning?: (agentName: string) => void;
|
|
60
61
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* This solves relay-pty binary resolution issues in npx/global installs.
|
|
62
|
+
* RelayAdapter instance for broker mode.
|
|
63
|
+
* Provides spawn/release/list/messaging via the broker binary.
|
|
64
64
|
*/
|
|
65
|
-
|
|
65
|
+
relayAdapter?: RelayAdapter;
|
|
66
66
|
}
|
|
67
67
|
/**
|
|
68
68
|
* Options for the proxy/mock server (simpler mode)
|
|
@@ -70,13 +70,13 @@ export interface DashboardOptions {
|
|
|
70
70
|
export interface ProxyServerOptions {
|
|
71
71
|
/** Port to listen on (default: 3888) */
|
|
72
72
|
port?: number;
|
|
73
|
-
/** Relay
|
|
73
|
+
/** Relay broker URL to proxy to (default: http://localhost:3889) */
|
|
74
74
|
relayUrl?: string;
|
|
75
75
|
/** Path to static files directory (default: ../out) */
|
|
76
76
|
staticDir?: string;
|
|
77
77
|
/** Enable verbose logging */
|
|
78
78
|
verbose?: boolean;
|
|
79
|
-
/** Run in mock mode (no relay
|
|
79
|
+
/** Run in mock mode (no relay broker required) */
|
|
80
80
|
mock?: boolean;
|
|
81
81
|
/** CORS allowed origins (comma-separated, or '*' for all) */
|
|
82
82
|
corsOrigins?: string;
|
|
@@ -91,7 +91,7 @@ export interface DashboardServer {
|
|
|
91
91
|
server: Server;
|
|
92
92
|
wss: WebSocketServer;
|
|
93
93
|
close: () => Promise<void>;
|
|
94
|
-
mode: 'proxy' | 'mock';
|
|
94
|
+
mode: 'proxy' | 'standalone' | 'mock';
|
|
95
95
|
}
|
|
96
96
|
/**
|
|
97
97
|
* Agent state tracking
|
|
@@ -150,8 +150,5 @@ export interface ServerContext {
|
|
|
150
150
|
defaultWorkspaceId?: string;
|
|
151
151
|
/** Enable spawner */
|
|
152
152
|
enableSpawner?: boolean;
|
|
153
|
-
/** Spawn callbacks */
|
|
154
|
-
onMarkSpawning?: (name: string) => void;
|
|
155
|
-
onClearSpawning?: (name: string) => void;
|
|
156
153
|
}
|
|
157
154
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { WebSocket, type WebSocketServer } from 'ws';
|
|
2
|
+
export interface BridgeWebSocketDeps {
|
|
3
|
+
wssBridge: WebSocketServer;
|
|
4
|
+
bridgeClientAlive: WeakMap<WebSocket, boolean>;
|
|
5
|
+
getBridgeData: () => Promise<unknown>;
|
|
6
|
+
debug: (message: string) => void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Bridge WebSocket handler for cross-project dashboard state.
|
|
10
|
+
*/
|
|
11
|
+
export declare function setupBridgeWebSocket(deps: BridgeWebSocketDeps): void;
|
|
12
|
+
//# sourceMappingURL=bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/websocket/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,IAAI,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,eAAe,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,aAAa,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAgCpE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { WebSocket } from 'ws';
|
|
2
|
+
/**
|
|
3
|
+
* Bridge WebSocket handler for cross-project dashboard state.
|
|
4
|
+
*/
|
|
5
|
+
export function setupBridgeWebSocket(deps) {
|
|
6
|
+
const { wssBridge, bridgeClientAlive, getBridgeData, debug } = deps;
|
|
7
|
+
wssBridge.on('connection', async (ws) => {
|
|
8
|
+
debug('[dashboard] Bridge WebSocket client connected');
|
|
9
|
+
// Mark client as alive initially for ping/pong keepalive.
|
|
10
|
+
bridgeClientAlive.set(ws, true);
|
|
11
|
+
// Handle pong responses (keep connection alive).
|
|
12
|
+
ws.on('pong', () => {
|
|
13
|
+
bridgeClientAlive.set(ws, true);
|
|
14
|
+
});
|
|
15
|
+
try {
|
|
16
|
+
const data = await getBridgeData();
|
|
17
|
+
const payload = JSON.stringify(data);
|
|
18
|
+
if (ws.readyState === WebSocket.OPEN) {
|
|
19
|
+
ws.send(payload);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
console.error('[dashboard] Failed to send initial bridge data:', err);
|
|
24
|
+
}
|
|
25
|
+
ws.on('error', (err) => {
|
|
26
|
+
console.error('[dashboard] Bridge WebSocket client error:', err);
|
|
27
|
+
});
|
|
28
|
+
ws.on('close', (code, reason) => {
|
|
29
|
+
debug(`[dashboard] Bridge WebSocket client disconnected, code: ${code}, reason: ${reason?.toString() || 'none'}`);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/websocket/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwB,MAAM,IAAI,CAAC;AASrD;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAyB;IAC5D,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEpE,SAAS,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;QACtC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAEvD,0DAA0D;QAC1D,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAEhC,iDAAiD;QACjD,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACjB,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,aAAa,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACrC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC;QAED,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAC9B,KAAK,CAAC,2DAA2D,IAAI,aAAa,MAAM,EAAE,QAAQ,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC;QACpH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { WebSocket, type WebSocketServer } from 'ws';
|
|
3
|
+
import type { MessageBuffer } from '../messageBuffer.js';
|
|
4
|
+
/**
|
|
5
|
+
* Standalone log WebSocket handler — tails local worker log files.
|
|
6
|
+
*/
|
|
7
|
+
export declare function handleStandaloneLogWebSocket(ws: WebSocket, pathname: string, dataDir: string, getLocalAgentNames: () => Set<string> | null, verbose: boolean): void;
|
|
8
|
+
interface SpawnReaderLike {
|
|
9
|
+
hasWorker: (name: string) => boolean;
|
|
10
|
+
getWorkerOutput: (name: string, maxLines?: number) => string[] | undefined;
|
|
11
|
+
getWorkerRawOutput?: (name: string) => string | undefined;
|
|
12
|
+
sendWorkerInput: (name: string, input: string) => Promise<boolean>;
|
|
13
|
+
}
|
|
14
|
+
export interface LogsWebSocketDeps {
|
|
15
|
+
wssLogs: WebSocketServer;
|
|
16
|
+
teamDir: string;
|
|
17
|
+
debug: (message: string) => void;
|
|
18
|
+
logSubscriptions: Map<string, Set<WebSocket>>;
|
|
19
|
+
fileWatchers: Map<string, fs.FSWatcher>;
|
|
20
|
+
fileLastSize: Map<string, number>;
|
|
21
|
+
agentLogBuffers: Map<string, MessageBuffer>;
|
|
22
|
+
getAgentLogBuffer: (agentName: string) => MessageBuffer;
|
|
23
|
+
spawnReader?: SpawnReaderLike;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Logs WebSocket handler for live output streaming and replay.
|
|
27
|
+
*/
|
|
28
|
+
export declare function setupLogsWebSocket(deps: LogsWebSocketDeps): void;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/websocket/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,IAAI,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA8CzD;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,EAC5C,OAAO,EAAE,OAAO,GACf,IAAI,CA8IN;AAWD,UAAU,eAAe;IACvB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACrC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3E,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC1D,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;IACxC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5C,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,aAAa,CAAC;IACxD,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CA4bhE"}
|