conductor-oss 0.25.13 → 0.25.15
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/commands/bridge.d.ts +3 -0
- package/dist/commands/bridge.d.ts.map +1 -0
- package/dist/commands/bridge.js +88 -0
- package/dist/commands/bridge.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/packages/web/.next/app-path-routes-manifest.json +6 -9
- package/web/.next/standalone/packages/web/.next/build-manifest.json +3 -3
- package/web/.next/standalone/packages/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/packages/web/.next/react-loadable-manifest.json +8 -8
- package/web/.next/standalone/packages/web/.next/routes-manifest.json +6 -30
- package/web/.next/standalone/packages/web/.next/server/app/__clerk/[[...path]]/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error/page.js +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/auth/profile/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/bridges/[bridgeId]/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/bridges/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/[deviceId]/app-update/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/[deviceId]/repair/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/[deviceId]/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/[deviceId]/service-restart/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/claims/complete/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/code/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/devices/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridges/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/dom/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/preview/screenshot/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/relay/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/token/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/ttyd/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/ttyd/ws/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/bridge/connect/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/bridge/install.ps1/route.js +173 -0
- package/web/.next/standalone/packages/web/.next/server/app/bridge/install.ps1/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/bridge/install.ps1/route_client-reference-manifest.js +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/bridge/install.sh/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/icon.svg/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/settings/bridge/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/hosted/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/sso-callback/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app-paths-manifest.json +6 -9
- package/web/.next/standalone/packages/web/.next/server/chunks/2435.js +1 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/3947.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/5164.js +3 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/5295.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/6054.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/7164.js +1 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/7319.js +1 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/9455.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/middleware-build-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/pages/500.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/server-reference-manifest.json +1 -1
- package/web/.next/standalone/packages/web/.next/static/{Gvy4Ia1I3Ie2kYkynALHj → Mjqe5hsqEUnzPRpACaS7b}/_buildManifest.js +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/{1665-a331700c8924c21e.js → 1665-fa34224806570e87.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/1679-517f9d8b8b973bcb.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/{2228.4b77fc33a35a9f45.js → 2228.a234698e8170bbca.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/2452-ad0fe2f5b47de568.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/{6352.ec64cf0dc840d64f.js → 3971.154b902083a92a74.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/{4443.c59c35ca57a35033.js → 4443.083a31fab90dab8d.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/{474.cd6f983eaacacb80.js → 474.5c65338e98fea7c5.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/5316.dd76ed91953b6a45.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/{7220-dbe6c4e782acd626.js → 7220-ada0fe02ebb5beda.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/7552.72d7dcd87cede845.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/8374-a12f115bfe292dbd.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/%5F%5Fclerk/[[...path]]/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/_global-error/page-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/access/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/agents/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/app-update/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/attachments/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/auth/profile/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/boards/comments/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/boards/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/bridges/[bridgeId]/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/bridges/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/app-update/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/repair/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/service-restart/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/claims/complete/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/code/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridges/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/config/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/context-files/open/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/context-files/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/events/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/executor/health/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/filesystem/directory/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/filesystem/pick-directory/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/github/repos/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/github/webhook/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/health/boards/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/health/sessions/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/notifications/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/preferences/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/repositories/[id]/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/repositories/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/actions/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/archive/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/checks/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/diff/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/feed/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/feedback/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/files/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/interrupt/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/keys/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/kill/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/output/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/output/stream/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/preview/dom/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/preview/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/preview/screenshot/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/restore/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/relay/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/snapshot/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/token/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/ttyd/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/ttyd/ws/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/spawn/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/workspaces/branches/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/workspaces/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/bridge/connect/page-2d417d35f436cb43.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/bridge/install.ps1/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/bridge/install.sh/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/layout-f090899d8eff67c0.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/{page-e092dae1c6caddbd.js → page-a8a679f34b9627c6.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/sessions/[id]/{page-2875f50f8cab8de6.js → page-14a6cae27c2389be.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/settings/bridge/page-0c2bacf3f3816e04.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/app/sign-in/hosted/page-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/app-error-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/forbidden-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/not-found-a65d0ac41bceb870.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a65d0ac41bceb870.js +1 -0
- package/web/.next/{static/chunks/webpack-50895afcf26e01d6.js → standalone/packages/web/.next/static/chunks/webpack-e1405f0057216684.js} +1 -1
- package/web/.next/{static/css/a7121266a45ff6e6.css → standalone/packages/web/.next/static/css/5a87961ab493e774.css} +1 -1
- package/web/.next/static/{Gvy4Ia1I3Ie2kYkynALHj → Mjqe5hsqEUnzPRpACaS7b}/_buildManifest.js +1 -1
- package/web/.next/static/chunks/{1665-a331700c8924c21e.js → 1665-fa34224806570e87.js} +1 -1
- package/web/.next/static/chunks/1679-517f9d8b8b973bcb.js +1 -0
- package/web/.next/static/chunks/{2228.4b77fc33a35a9f45.js → 2228.a234698e8170bbca.js} +1 -1
- package/web/.next/static/chunks/2452-ad0fe2f5b47de568.js +1 -0
- package/web/.next/static/chunks/{6352.ec64cf0dc840d64f.js → 3971.154b902083a92a74.js} +1 -1
- package/web/.next/static/chunks/{4443.c59c35ca57a35033.js → 4443.083a31fab90dab8d.js} +1 -1
- package/web/.next/static/chunks/{474.cd6f983eaacacb80.js → 474.5c65338e98fea7c5.js} +1 -1
- package/web/.next/static/chunks/5316.dd76ed91953b6a45.js +1 -0
- package/web/.next/static/chunks/{7220-dbe6c4e782acd626.js → 7220-ada0fe02ebb5beda.js} +1 -1
- package/web/.next/static/chunks/7552.72d7dcd87cede845.js +1 -0
- package/web/.next/static/chunks/8374-a12f115bfe292dbd.js +1 -0
- package/web/.next/static/chunks/app/%5F%5Fclerk/[[...path]]/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/_global-error/page-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/access/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/agents/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/app-update/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/attachments/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/auth/profile/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/boards/comments/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/boards/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/bridge/bridges/[bridgeId]/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/bridge/bridges/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/app-update/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/repair/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/service-restart/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/bridge/devices/claims/complete/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/bridge/devices/code/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/bridge/devices/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/bridges/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/config/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/context-files/open/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/context-files/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/events/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/executor/health/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/filesystem/directory/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/filesystem/pick-directory/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/github/repos/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/github/webhook/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/health/boards/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/health/sessions/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/notifications/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/preferences/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/repositories/[id]/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/repositories/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/actions/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/archive/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/checks/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/diff/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/feed/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/feedback/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/files/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/interrupt/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/keys/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/kill/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/output/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/output/stream/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/preview/dom/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/preview/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/preview/screenshot/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/restore/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/terminal/relay/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/terminal/snapshot/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/terminal/token/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/terminal/ttyd/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/[id]/terminal/ttyd/ws/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/sessions/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/spawn/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/workspaces/branches/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/api/workspaces/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/bridge/connect/page-2d417d35f436cb43.js +1 -0
- package/web/.next/static/chunks/app/bridge/install.ps1/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/bridge/install.sh/route-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/app/layout-f090899d8eff67c0.js +1 -0
- package/web/.next/static/chunks/app/{page-e092dae1c6caddbd.js → page-a8a679f34b9627c6.js} +1 -1
- package/web/.next/static/chunks/app/sessions/[id]/{page-2875f50f8cab8de6.js → page-14a6cae27c2389be.js} +1 -1
- package/web/.next/static/chunks/app/settings/bridge/page-0c2bacf3f3816e04.js +1 -0
- package/web/.next/static/chunks/app/sign-in/hosted/page-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/next/dist/client/components/builtin/app-error-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/next/dist/client/components/builtin/forbidden-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/next/dist/client/components/builtin/not-found-a65d0ac41bceb870.js +1 -0
- package/web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a65d0ac41bceb870.js +1 -0
- package/web/.next/{standalone/packages/web/.next/static/chunks/webpack-50895afcf26e01d6.js → static/chunks/webpack-e1405f0057216684.js} +1 -1
- package/web/.next/{standalone/packages/web/.next/static/css/a7121266a45ff6e6.css → static/css/5a87961ab493e774.css} +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/shares/[shareId]/output/route.js +0 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/shares/[shareId]/output/route.js.nft.json +0 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/shares/[shareId]/output/route_client-reference-manifest.js +0 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/shares/[shareId]/route.js +0 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/shares/[shareId]/route.js.nft.json +0 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/shares/[shareId]/route_client-reference-manifest.js +0 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/shares/route.js +0 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/shares/route.js.nft.json +0 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/bridge/shares/route_client-reference-manifest.js +0 -1
- package/web/.next/standalone/packages/web/.next/server/app/bridge/share/[shareId]/page.js +0 -2
- package/web/.next/standalone/packages/web/.next/server/app/bridge/share/[shareId]/page.js.nft.json +0 -1
- package/web/.next/standalone/packages/web/.next/server/app/bridge/share/[shareId]/page_client-reference-manifest.js +0 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/313.js +0 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/8712.js +0 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/9268.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/1679-ae7423829b0581c4.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/2452-b50c45abad648b69.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/3846.aa1cdc66db0fbde9.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/4120.b50665db7e22cca5.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/514-4da5527bff9e931e.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/%5F%5Fclerk/[[...path]]/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/_global-error/page-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/access/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/agents/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/app-update/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/attachments/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/auth/profile/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/boards/comments/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/boards/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/bridges/[bridgeId]/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/bridges/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/app-update/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/repair/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/service-restart/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/claims/complete/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/code/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/devices/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/shares/[shareId]/output/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/shares/[shareId]/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridge/shares/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/bridges/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/config/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/context-files/open/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/context-files/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/events/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/executor/health/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/filesystem/directory/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/filesystem/pick-directory/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/github/repos/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/github/webhook/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/health/boards/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/health/sessions/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/notifications/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/preferences/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/repositories/[id]/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/repositories/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/actions/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/archive/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/checks/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/diff/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/feed/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/feedback/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/files/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/interrupt/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/keys/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/kill/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/output/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/output/stream/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/preview/dom/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/preview/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/preview/screenshot/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/restore/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/relay/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/snapshot/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/token/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/ttyd/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/[id]/terminal/ttyd/ws/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/sessions/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/spawn/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/workspaces/branches/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/api/workspaces/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/bridge/connect/page-aa2755b2f785e79c.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/bridge/install.sh/route-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/bridge/share/[shareId]/page-9c48a5de46beee1d.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/layout-1bbb4db7f9481d50.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/settings/bridge/page-ee4a3917e8d848a8.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/app/sign-in/hosted/page-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/app-error-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/forbidden-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/not-found-b639f73aae8798d0.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/1679-ae7423829b0581c4.js +0 -1
- package/web/.next/static/chunks/2452-b50c45abad648b69.js +0 -1
- package/web/.next/static/chunks/3846.aa1cdc66db0fbde9.js +0 -1
- package/web/.next/static/chunks/4120.b50665db7e22cca5.js +0 -1
- package/web/.next/static/chunks/514-4da5527bff9e931e.js +0 -1
- package/web/.next/static/chunks/app/%5F%5Fclerk/[[...path]]/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/_global-error/page-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/access/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/agents/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/app-update/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/attachments/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/auth/profile/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/boards/comments/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/boards/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/bridge/bridges/[bridgeId]/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/bridge/bridges/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/app-update/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/repair/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/bridge/devices/[deviceId]/service-restart/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/bridge/devices/claims/complete/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/bridge/devices/code/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/bridge/devices/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/bridge/shares/[shareId]/output/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/bridge/shares/[shareId]/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/bridge/shares/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/bridges/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/config/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/context-files/open/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/context-files/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/events/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/executor/health/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/filesystem/directory/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/filesystem/pick-directory/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/github/repos/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/github/webhook/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/health/boards/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/health/sessions/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/notifications/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/preferences/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/repositories/[id]/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/repositories/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/actions/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/archive/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/checks/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/diff/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/feed/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/feedback/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/files/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/interrupt/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/keys/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/kill/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/output/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/output/stream/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/preview/dom/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/preview/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/preview/screenshot/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/restore/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/terminal/relay/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/terminal/snapshot/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/terminal/token/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/terminal/ttyd/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/[id]/terminal/ttyd/ws/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/sessions/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/spawn/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/workspaces/branches/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/api/workspaces/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/bridge/connect/page-aa2755b2f785e79c.js +0 -1
- package/web/.next/static/chunks/app/bridge/install.sh/route-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/app/bridge/share/[shareId]/page-9c48a5de46beee1d.js +0 -1
- package/web/.next/static/chunks/app/layout-1bbb4db7f9481d50.js +0 -1
- package/web/.next/static/chunks/app/settings/bridge/page-ee4a3917e8d848a8.js +0 -1
- package/web/.next/static/chunks/app/sign-in/hosted/page-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/next/dist/client/components/builtin/app-error-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/next/dist/client/components/builtin/forbidden-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/next/dist/client/components/builtin/not-found-b639f73aae8798d0.js +0 -1
- package/web/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b639f73aae8798d0.js +0 -1
- /package/web/.next/standalone/packages/web/.next/static/{Gvy4Ia1I3Ie2kYkynALHj → Mjqe5hsqEUnzPRpACaS7b}/_ssgManifest.js +0 -0
- /package/web/.next/static/{Gvy4Ia1I3Ie2kYkynALHj → Mjqe5hsqEUnzPRpACaS7b}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-
|
|
1
|
+
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-e1405f0057216684.js"/><script src="/_next/static/chunks/87c73c54-014124adcece3495.js" async=""></script><script src="/_next/static/chunks/1968-281077ad765d1294.js" async=""></script><script src="/_next/static/chunks/main-app-d6167a36ed763f15.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-e1405f0057216684.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[99630,[],\"\"]\n3:I[1380,[],\"\"]\n4:I[30887,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[30887,[],\"ViewportBoundary\"]\na:I[30887,[],\"MetadataBoundary\"]\nc:I[15718,[],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Mjqe5hsqEUnzPRpACaS7b\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[]\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__RSC_SERVER_MANIFEST="{\"node\":{\"
|
|
1
|
+
self.__RSC_SERVER_MANIFEST="{\"node\":{\"002168baecce81a04a620a74a84cfc195eb956014d\":{\"workers\":{\"app/_not-found/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/settings/bridge/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/hosted/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/sso-callback/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/unlock/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/bridge/connect/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sessions/[id]/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/[[...sign-in]]/page\":{\"moduleId\":\"64163\",\"async\":false}},\"filename\":\"../../../node_modules/@clerk/nextjs/dist/esm/server/keyless-custom-headers.js\",\"exportedName\":\"collectKeylessMetadata\"},\"401c8c8a11556f39756de7b0db964930bfecb21bc9\":{\"workers\":{\"app/_not-found/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/settings/bridge/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/hosted/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/sso-callback/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/unlock/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/bridge/connect/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sessions/[id]/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/[[...sign-in]]/page\":{\"moduleId\":\"64163\",\"async\":false}},\"filename\":\"../../../node_modules/@clerk/nextjs/dist/esm/server/keyless-custom-headers.js\",\"exportedName\":\"formatMetadataHeaders\"},\"005b6ae5564470efdb57f0c99fbb701db0cc5deaad\":{\"workers\":{\"app/_not-found/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/settings/bridge/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/hosted/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/sso-callback/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/unlock/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/bridge/connect/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sessions/[id]/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/[[...sign-in]]/page\":{\"moduleId\":\"64163\",\"async\":false}},\"filename\":\"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js\",\"exportedName\":\"createOrReadKeylessAction\"},\"009062c8934c1ac1ef44ed0790d16768457677fabf\":{\"workers\":{\"app/_not-found/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/settings/bridge/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/hosted/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/sso-callback/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/unlock/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/bridge/connect/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sessions/[id]/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/[[...sign-in]]/page\":{\"moduleId\":\"64163\",\"async\":false}},\"filename\":\"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js\",\"exportedName\":\"detectKeylessEnvDriftAction\"},\"0098f150a79561339baa9f87177d10f70e4e914985\":{\"workers\":{\"app/_not-found/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/settings/bridge/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/hosted/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/sso-callback/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/unlock/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/bridge/connect/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sessions/[id]/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/[[...sign-in]]/page\":{\"moduleId\":\"64163\",\"async\":false}},\"filename\":\"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js\",\"exportedName\":\"deleteKeylessAction\"},\"4021ebb63860289f74640c1187744bfc498cf94226\":{\"workers\":{\"app/_not-found/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/settings/bridge/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/hosted/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/sso-callback/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/unlock/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/bridge/connect/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sessions/[id]/page\":{\"moduleId\":\"64163\",\"async\":false},\"app/sign-in/[[...sign-in]]/page\":{\"moduleId\":\"64163\",\"async\":false}},\"filename\":\"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js\",\"exportedName\":\"syncKeylessConfigAction\"},\"00f5c833f82f1c98caf1a2cf5e526eead04c4320a7\":{\"workers\":{\"app/_not-found/page\":{\"moduleId\":\"66152\",\"async\":false},\"app/settings/bridge/page\":{\"moduleId\":\"66152\",\"async\":false},\"app/sign-in/hosted/page\":{\"moduleId\":\"66152\",\"async\":false},\"app/sign-in/sso-callback/page\":{\"moduleId\":\"66152\",\"async\":false},\"app/unlock/page\":{\"moduleId\":\"66152\",\"async\":false},\"app/bridge/connect/page\":{\"moduleId\":\"66152\",\"async\":false},\"app/page\":{\"moduleId\":\"66152\",\"async\":false},\"app/sessions/[id]/page\":{\"moduleId\":\"66152\",\"async\":false},\"app/sign-in/[[...sign-in]]/page\":{\"moduleId\":\"66152\",\"async\":false}},\"filename\":\"../../../node_modules/@clerk/nextjs/dist/esm/app-router/server-actions.js\",\"exportedName\":\"invalidateCacheAction\"}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"node":{"
|
|
1
|
+
{"node":{"002168baecce81a04a620a74a84cfc195eb956014d":{"workers":{"app/_not-found/page":{"moduleId":"64163","async":false},"app/settings/bridge/page":{"moduleId":"64163","async":false},"app/sign-in/hosted/page":{"moduleId":"64163","async":false},"app/sign-in/sso-callback/page":{"moduleId":"64163","async":false},"app/unlock/page":{"moduleId":"64163","async":false},"app/bridge/connect/page":{"moduleId":"64163","async":false},"app/page":{"moduleId":"64163","async":false},"app/sessions/[id]/page":{"moduleId":"64163","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"64163","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/server/keyless-custom-headers.js","exportedName":"collectKeylessMetadata"},"401c8c8a11556f39756de7b0db964930bfecb21bc9":{"workers":{"app/_not-found/page":{"moduleId":"64163","async":false},"app/settings/bridge/page":{"moduleId":"64163","async":false},"app/sign-in/hosted/page":{"moduleId":"64163","async":false},"app/sign-in/sso-callback/page":{"moduleId":"64163","async":false},"app/unlock/page":{"moduleId":"64163","async":false},"app/bridge/connect/page":{"moduleId":"64163","async":false},"app/page":{"moduleId":"64163","async":false},"app/sessions/[id]/page":{"moduleId":"64163","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"64163","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/server/keyless-custom-headers.js","exportedName":"formatMetadataHeaders"},"005b6ae5564470efdb57f0c99fbb701db0cc5deaad":{"workers":{"app/_not-found/page":{"moduleId":"64163","async":false},"app/settings/bridge/page":{"moduleId":"64163","async":false},"app/sign-in/hosted/page":{"moduleId":"64163","async":false},"app/sign-in/sso-callback/page":{"moduleId":"64163","async":false},"app/unlock/page":{"moduleId":"64163","async":false},"app/bridge/connect/page":{"moduleId":"64163","async":false},"app/page":{"moduleId":"64163","async":false},"app/sessions/[id]/page":{"moduleId":"64163","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"64163","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js","exportedName":"createOrReadKeylessAction"},"009062c8934c1ac1ef44ed0790d16768457677fabf":{"workers":{"app/_not-found/page":{"moduleId":"64163","async":false},"app/settings/bridge/page":{"moduleId":"64163","async":false},"app/sign-in/hosted/page":{"moduleId":"64163","async":false},"app/sign-in/sso-callback/page":{"moduleId":"64163","async":false},"app/unlock/page":{"moduleId":"64163","async":false},"app/bridge/connect/page":{"moduleId":"64163","async":false},"app/page":{"moduleId":"64163","async":false},"app/sessions/[id]/page":{"moduleId":"64163","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"64163","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js","exportedName":"detectKeylessEnvDriftAction"},"0098f150a79561339baa9f87177d10f70e4e914985":{"workers":{"app/_not-found/page":{"moduleId":"64163","async":false},"app/settings/bridge/page":{"moduleId":"64163","async":false},"app/sign-in/hosted/page":{"moduleId":"64163","async":false},"app/sign-in/sso-callback/page":{"moduleId":"64163","async":false},"app/unlock/page":{"moduleId":"64163","async":false},"app/bridge/connect/page":{"moduleId":"64163","async":false},"app/page":{"moduleId":"64163","async":false},"app/sessions/[id]/page":{"moduleId":"64163","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"64163","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js","exportedName":"deleteKeylessAction"},"4021ebb63860289f74640c1187744bfc498cf94226":{"workers":{"app/_not-found/page":{"moduleId":"64163","async":false},"app/settings/bridge/page":{"moduleId":"64163","async":false},"app/sign-in/hosted/page":{"moduleId":"64163","async":false},"app/sign-in/sso-callback/page":{"moduleId":"64163","async":false},"app/unlock/page":{"moduleId":"64163","async":false},"app/bridge/connect/page":{"moduleId":"64163","async":false},"app/page":{"moduleId":"64163","async":false},"app/sessions/[id]/page":{"moduleId":"64163","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"64163","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/app-router/keyless-actions.js","exportedName":"syncKeylessConfigAction"},"00f5c833f82f1c98caf1a2cf5e526eead04c4320a7":{"workers":{"app/_not-found/page":{"moduleId":"66152","async":false},"app/settings/bridge/page":{"moduleId":"66152","async":false},"app/sign-in/hosted/page":{"moduleId":"66152","async":false},"app/sign-in/sso-callback/page":{"moduleId":"66152","async":false},"app/unlock/page":{"moduleId":"66152","async":false},"app/bridge/connect/page":{"moduleId":"66152","async":false},"app/page":{"moduleId":"66152","async":false},"app/sessions/[id]/page":{"moduleId":"66152","async":false},"app/sign-in/[[...sign-in]]/page":{"moduleId":"66152","async":false}},"filename":"../../../node_modules/@clerk/nextjs/dist/esm/app-router/server-actions.js","exportedName":"invalidateCacheAction"}},"edge":{},"encryptionKey":"ZYuCKALO8TKnj/WjsPWf7IRaw/BndYth2Lq/1DmmGBc="}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:41,errorRate:1e-4,numBits:786,numHashes:14,bitArray:[0,0,0,1,1,1,0,0,0,0,1,0,1,1,0,0,1,1,1,1,1,0,1,0,0,1,1,0,0,0,1,1,0,1,1,1,1,1,0,1,0,1,1,1,0,0,0,1,1,1,1,1,0,1,0,0,1,1,1,1,0,1,1,0,1,1,1,1,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,1,1,0,0,0,0,1,1,1,0,1,1,0,1,1,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,0,0,0,1,0,0,1,1,0,0,0,0,1,1,0,1,0,1,1,1,0,0,0,1,1,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,1,0,1,0,1,1,0,0,0,1,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,1,0,1,0,0,1,0,1,1,1,0,0,1,1,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,1,1,1,1,1,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,
|
|
1
|
+
self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:41,errorRate:1e-4,numBits:786,numHashes:14,bitArray:[0,0,0,1,1,1,0,0,0,0,1,0,1,1,0,0,1,1,1,1,1,0,1,0,0,1,1,0,0,0,1,1,0,1,1,1,1,1,0,1,0,1,1,1,0,0,0,1,1,1,1,1,0,1,0,0,1,1,1,1,0,1,1,0,1,1,1,1,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,1,1,0,0,0,0,1,1,1,0,1,1,0,1,1,0,0,1,1,1,0,1,0,1,0,0,0,1,1,1,0,0,0,1,0,0,1,1,0,0,0,0,1,1,0,1,0,1,1,1,0,0,0,1,1,0,1,1,1,1,0,0,0,1,1,1,0,1,1,1,1,1,0,0,0,0,0,0,1,0,1,1,1,0,1,0,1,1,0,0,0,1,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,1,0,1,0,0,1,0,1,1,1,0,0,1,1,1,0,1,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,1,1,1,1,1,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,0,0,0,1,0,0,1,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,1,0,0,1,0,1,1,0,1,0,1,1,1,1,1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,0,1,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,0,1,1,0,0,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,0,1,1,1,0,1,1,0,0,1,0,0,1,0,1,1,1,0,1,1,0,1,0,0,0,1,1,0,1,0,1,1,1,1,0,1,1,1,0,1,1,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0,1,1,0,0,1,1,1,1,0,0,1,1,1,0,1,0,1,1,0,1,0,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,1,0,0,1,1,1,1,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,0,1,0,1,0,1,0,1,0,0,1,0,1,0,1,1,0,1,0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,1,0,0,1,1,0,1,1,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,0,1,0,0,0,1,1,1,1,1,0,0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,0,0,0,1,0,0,1,1,1]},__routerFilterDynamic:{numItems:7,errorRate:1e-4,numBits:135,numHashes:14,bitArray:[0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,0,1,1,0,0,0,0,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,0,0,1,0,1,0,0,0,1,1,1,0,0,0,0,1,0,0,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1,0,1,0,0,0,0,0,0,1,1,0,1,1,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,1,0]},sortedPages:["/_app"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1665],{10926:(e,t,r)=>{r.d(t,{C0:()=>n,DW:()=>i});let a="bridge:";function n(e){let t=e?.trim();return t&&t.length>0?t:null}function i(e){let t=e?.trim();if(!t||!t.startsWith(a))return null;let r=t.slice(a.length),i=r.indexOf(":");if(i<=0||i>=r.length-1)return null;let s=n(r.slice(0,i)),d=r.slice(i+1).trim();return s&&0!==d.length?{bridgeId:s,sessionId:d}:null}},11984:(e,t,r)=>{function a(e){let t=e?.trim().toLowerCase()??"";return!!t&&(t.includes("127.0.0.1:4749")||t.includes("older bridge build")||t.includes("one-time local bridge upgrade"))}function n(e){return`This laptop needs a one-time local bridge upgrade before ${function(e){switch(e){case"repair":return"Repair bridge";case"restart":return"Restart service";case"update":return"Update Conductor"}}(e)} can run from the dashboard.`}function i(e){let t=e?.trim()||"This laptop";return`${t} is still on an older bridge build, so Conductor cannot repair, restart, or update it remotely yet. Upgrade the bridge once on that laptop, then future fixes run from the dashboard.`}r.d(t,{Az:()=>a,IG:()=>n,_5:()=>i})},15115:(e,t,r)=>{function a(e,t){return"string"==typeof e&&e.trim().length>0?e.trim():t}function n(e){return Array.isArray(e)?e.filter(e=>!!e&&"object"==typeof e).map(e=>{let t,r,n;return t=a(e.hostname,"unknown-host"),r=a(e.os,"unknown-os"),n=a(e.arch,"unknown-arch"),{device_id:a(e.device_id,t),device_name:a(e.device_name,t),hostname:t,os:r,arch:n,connected:!0===e.connected,last_status:e.last_status?{hostname:a(e.last_status.hostname,t),os:a(e.last_status.os,r),connected:!0===e.last_status.connected}:null}}):[]}r.d(t,{o:()=>n})},15321:(e,t,r)=>{r.d(t,{i:()=>m});var a=r(54568),n=r(7620),i=r(65587),s=r.n(i),d=r(63322),o=r(59706),l=r(87242),c=r(76081),u=r(46916),v=r(11984),p=r(61369);function m({deviceId:e,deviceName:t,dashboardUrl:r,installScriptUrl:i,relayUrl:g,className:h}){let[x,b]=(0,n.useState)(!1),f=(0,n.useMemo)(()=>(0,p.$y)(i,r,g),[r,i,g]),k=(0,n.useMemo)(()=>(0,p.kw)(e),[e]);return(0,a.jsxs)("div",{className:(0,u.cn)("mt-3 rounded-[14px] border border-[color:color-mix(in_srgb,var(--vk-orange)_28%,transparent)] bg-[color:color-mix(in_srgb,var(--vk-orange)_10%,transparent)] px-3 py-3",h),children:[(0,a.jsx)("div",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--vk-text-muted)]",children:"One-time local repair"}),(0,a.jsx)("div",{className:"mt-2 text-[12px] leading-5 text-[var(--vk-text-normal)]",children:(0,v._5)(t)}),(0,a.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(0,a.jsxs)(c.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{navigator.clipboard?.writeText?(b(!1),navigator.clipboard.writeText(f).then(()=>{b(!0)}).catch(()=>{b(!1)})):b(!1)},children:[x?(0,a.jsx)(d.A,{className:"h-4 w-4"}):(0,a.jsx)(o.A,{className:"h-4 w-4"}),x?"Repair command copied":"Copy repair command"]}),(0,a.jsx)(c.$,{asChild:!0,variant:"outline",size:"sm",children:(0,a.jsxs)(s(),{href:k,children:[(0,a.jsx)(l.A,{className:"h-4 w-4"}),"Open repair steps"]})})]})]})}},21665:(e,t,r)=>{r.d(t,{J:()=>C});var a=r(54568),n=r(7620),i=r(40448),s=r(65587),d=r.n(s),o=r(79748),l=r(34041),c=r(58299),u=r(87242),v=r(2099),p=r(60527),m=r(81167),g=r(15321),h=r(44522),x=r(11984),b=r(46916),f=r(26167),k=r(61369),w=r(63680),y=r(15115);let j="/bridge/connect";function _({connected:e,className:t,title:r,suffix:n}){return(0,a.jsxs)("span",{className:(0,b.cn)("inline-flex items-center gap-2 rounded-full border px-2.5 py-1 text-[12px] font-medium",e?"border-[rgba(24,197,143,0.35)] bg-[rgba(24,197,143,0.12)] text-[var(--vk-green)]":"border-[rgba(255,143,122,0.24)] bg-[rgba(255,143,122,0.08)] text-[var(--vk-red)]",t),title:r,children:[(0,a.jsx)("span",{className:(0,b.cn)("h-2.5 w-2.5 rounded-full",e?"bg-[var(--vk-green)]":"bg-[var(--vk-red)]")}),(0,a.jsx)("span",{children:e?"Online":"Offline"}),n]})}function N({className:e}){let t,r=(0,o.useRouter)(),s=(0,o.usePathname)(),C=(0,o.useSearchParams)(),[$,I]=(0,n.useState)([]),[R,A]=(0,n.useState)(!0),[S,T]=(0,n.useState)(null),[E,U]=(0,n.useState)(null),[L,O]=(0,n.useState)({deviceId:null,phase:"idle",message:null}),[P,D]=(0,n.useState)({deviceId:null,kind:null,status:"idle",message:null}),z=(0,n.useRef)(new Set),M=(0,n.useCallback)(async e=>{e&&A(!0);try{let e=await fetch("/api/bridge/devices",{cache:"no-store"}),t=await e.json().catch(()=>null);if(!e.ok)throw Error(t?.error??`Failed to load bridge devices (${e.status})`);I((0,y.o)(t?.devices)),T(null)}catch(e){T(e instanceof Error?e.message:"Failed to load bridge devices.")}finally{A(!1)}},[]);(0,n.useEffect)(()=>{let e=!1,t=null,r=async t=>{e||await M(t)};return r(!0),t=window.setInterval(()=>{r(!1)},15e3),()=>{e=!0,null!==t&&window.clearInterval(t)}},[M]),(0,n.useEffect)(()=>{let e=()=>{U((0,h.Tr)()?.deviceId??null)};return e(),window.addEventListener("focus",e),window.addEventListener("storage",e),()=>{window.removeEventListener("focus",e),window.removeEventListener("storage",e)}},[]),(0,n.useEffect)(()=>{s!==j&&r.prefetch(j)},[s,r]);let B=$.filter(e=>e.connected),F=C.get("bridge")?.trim()||null,q=window.location.origin,G=(t=function(e){let t=e?.trim();if(!t)return null;try{let e=new URL(t);if("http:"!==e.protocol&&"https:"!==e.protocol)return null;return e.toString()}catch{return null}}(w.env.CONDUCTOR_BRIDGE_RELAY_URL??w.env.NEXT_PUBLIC_CONDUCTOR_BRIDGE_RELAY_URL))||null,J=F?$.find(e=>e.device_id===F)??null:null,V=E?$.find(e=>e.device_id===E)??null:null,W=B.length>0,X=S??(W?`${B.length} bridge${1===B.length?"":"s"} online`:$.length>0?"No paired bridges are online":"No paired bridges yet");(0,n.useEffect)(()=>{let e=(V?.connected?V:null)??(J?.connected?J:null);!e||z.current.has(e.device_id)||(z.current.add(e.device_id),(0,h.jV)(e,O))},[V,J]),(0,n.useEffect)(()=>{!V||V.connected||L.message||O({deviceId:V.device_id,phase:"checking",message:`Waiting for ${V.device_name} to reconnect so Conductor can finish its package update.`})},[L.message,V]);let Y=(0,n.useCallback)(async e=>{D({deviceId:e.device_id,kind:"restart",status:"running",message:`Restarting the bridge service on ${e.device_name}.`});try{let t=await (0,f.b)(e.device_id);D({deviceId:e.device_id,kind:"restart",status:"completed",message:t}),window.setTimeout(()=>{M(!1)},2e3)}catch(t){D({deviceId:e.device_id,kind:"restart",status:"failed",message:t instanceof Error?t.message:`Failed to restart ${e.device_name}.`})}},[M]),Z=(0,n.useCallback)(async e=>{D({deviceId:e.device_id,kind:"repair",status:"running",message:`Reinstalling the bridge service on ${e.device_name}.`});try{let t=(0,k.pj)(window.location.origin),r=await (0,f.E)(e.device_id,t);D({deviceId:e.device_id,kind:"repair",status:"completed",message:r}),window.setTimeout(()=>{M(!1)},2e3)}catch(t){D({deviceId:e.device_id,kind:"repair",status:"failed",message:t instanceof Error?t.message:`Failed to repair ${e.device_name}.`})}},[M]),Q=(0,n.useCallback)(async e=>{await (0,h.jV)(e,O),window.setTimeout(()=>{M(!1)},2e3)},[M]);return(0,a.jsxs)(i.bL,{children:[(0,a.jsx)(i.l9,{asChild:!0,children:(0,a.jsx)("button",{type:"button",className:"outline-none",children:(0,a.jsx)(_,{connected:W,className:e,title:X,suffix:(0,a.jsx)(l.A,{className:"h-3.5 w-3.5 text-current/70"})})})}),(0,a.jsx)(i.ZL,{children:(0,a.jsxs)(i.UC,{align:"end",sideOffset:8,className:"z-[90] w-[320px] rounded-[18px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] p-2 text-[var(--vk-text-normal)] shadow-[0_22px_48px_rgba(0,0,0,0.34)]",children:[(0,a.jsxs)("div",{className:"rounded-[14px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] px-3 py-3",children:[(0,a.jsx)("div",{className:"text-[11px] font-semibold uppercase tracking-[0.22em] text-[var(--vk-text-muted)]",children:"Conductor Bridge"}),(0,a.jsx)("div",{className:"mt-2 text-[13px] text-[var(--vk-text-normal)]",children:W?`${B.length} device${1===B.length?"":"s"} online`:R?"Loading device status":"No live bridge connection"}),(0,a.jsx)("div",{className:"mt-2 text-[11px] leading-5 text-[var(--vk-text-faint)]",children:"If a laptop is online but misbehaving, repair the bridge, update Conductor, or restart the service here."}),S?(0,a.jsx)("div",{className:"mt-2 text-[12px] leading-5 text-[var(--vk-red)]",children:S}):null,L.message?(0,a.jsx)("div",{className:(0,b.cn)("mt-2 text-[12px] leading-5","failed"===L.phase?"text-[var(--vk-red)]":"skipped"===L.phase?"text-[var(--vk-text-muted)]":"text-[var(--vk-text-faint)]"),children:L.message}):null]}),(0,a.jsx)("div",{className:"mt-2 max-h-[280px] overflow-y-auto",children:$.length>0?$.map(e=>{let t=(0,h.xv)(L,e.device_id),r="running"===P.status&&P.deviceId===e.device_id,n=r&&"repair"===P.kind,i=r&&"restart"===P.kind,s=P.deviceId===e.device_id&&(0,x.Az)(P.message)||L.deviceId===e.device_id&&(0,x.Az)(L.message);return(0,a.jsx)("div",{className:"rounded-[14px] px-3 py-2.5 transition-colors hover:bg-[var(--vk-bg-hover)]",children:(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("div",{className:"truncate text-[13px] font-medium text-[var(--vk-text-strong)]",children:e.device_name}),(0,a.jsxs)("div",{className:"mt-1 text-[12px] text-[var(--vk-text-muted)]",children:[e.hostname," \xb7 ",e.os,"/",e.arch]}),(0,a.jsxs)("div",{className:"mt-1 text-[11px] text-[var(--vk-text-muted)]",children:["Relay: ",e.last_status?.hostname??e.hostname]}),L.message&&L.deviceId===e.device_id?(0,a.jsx)("div",{className:(0,b.cn)("mt-1 text-[11px] leading-5","failed"===L.phase?"text-[var(--vk-red)]":"skipped"===L.phase?"text-[var(--vk-text-muted)]":"text-[var(--vk-text-faint)]"),children:L.message}):null,P.message&&P.deviceId===e.device_id?(0,a.jsx)("div",{className:(0,b.cn)("mt-1 text-[11px] leading-5","failed"===P.status?"text-[var(--vk-red)]":"completed"===P.status?"text-[var(--vk-green)]":"text-[var(--vk-text-faint)]"),children:P.message}):null,s&&q?(0,a.jsx)(g.i,{deviceId:e.device_id,deviceName:e.device_name,dashboardUrl:q,installScriptUrl:(0,k.pj)(q),relayUrl:G}):null,e.connected?(0,a.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,a.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-[10px] border border-[var(--vk-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--vk-text-normal)] transition-colors hover:bg-[var(--vk-bg-hover)]",disabled:r||t,onClick:()=>{Z(e)},children:[n?(0,a.jsx)(c.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,a.jsx)(u.A,{className:"h-3.5 w-3.5"}),"Repair bridge"]}),(0,a.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-[10px] border border-[var(--vk-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--vk-text-normal)] transition-colors hover:bg-[var(--vk-bg-hover)]",disabled:t||r,onClick:()=>{Q(e)},children:[t?(0,a.jsx)(c.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,a.jsx)(v.A,{className:"h-3.5 w-3.5"}),t?"Updating...":"Update Conductor"]}),(0,a.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-[10px] border border-[var(--vk-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--vk-text-normal)] transition-colors hover:bg-[var(--vk-bg-hover)]",disabled:r||t,onClick:()=>{Y(e)},children:[i?(0,a.jsx)(c.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,a.jsx)(p.A,{className:"h-3.5 w-3.5"}),"Restart service"]})]}):null]}),(0,a.jsx)(_,{connected:!0===e.connected})]})},e.device_id)}):(0,a.jsx)("div",{className:"rounded-[14px] border border-dashed border-[var(--vk-border)] px-3 py-4 text-[12px] text-[var(--vk-text-muted)]",children:R?"Loading paired devices...":"Pair a laptop to see bridge status here."})}),(0,a.jsx)(i.wv,{className:"my-2 h-px bg-[var(--vk-border)]"}),(0,a.jsx)(i.q7,{asChild:!0,children:(0,a.jsxs)(d(),{href:j,prefetch:!0,className:"flex items-center justify-between rounded-[12px] px-3 py-2 text-[13px] font-medium text-[var(--vk-text-normal)] outline-none transition-colors hover:bg-[var(--vk-bg-hover)] focus:bg-[var(--vk-bg-hover)]",children:[(0,a.jsx)("span",{children:"Open bridge connection"}),(0,a.jsx)(m.A,{className:"h-4 w-4 text-[var(--vk-text-muted)]"})]})})]})})]})}function C({connected:e,className:t,title:r}={}){return"boolean"==typeof e?(0,a.jsx)(_,{connected:e,className:t,title:r}):(0,a.jsx)(N,{className:t})}},26167:(e,t,r)=>{r.d(t,{E:()=>i,b:()=>n});var a=r(11984);async function n(e){let t=await s(e,"service-restart",{});return t?.message??"Bridge service restart requested. This laptop should reconnect shortly."}async function i(e,t){let r=await s(e,"repair",{installScriptUrl:t});return r?.message??"Bridge reinstall requested. This laptop should reconnect shortly."}async function s(e,t,r){let n=await fetch(`/api/bridge/devices/${encodeURIComponent(e)}/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r),cache:"no-store"}),i=await n.json().catch(()=>null);if(!n.ok){var s,d;let e;throw Error((s=i?.error??i?.message??null,d=n.status,e=s?.trim()??"",(0,a.Az)(e)?(0,a.IG)("repair"===t?"repair":"restart"):e||`Failed to run ${t} on the bridge service (${d})`))}return i}},31404:(e,t,r)=>{r.d(t,{S:()=>n,y:()=>i});var a=r(10926);function n(e,t){let r=(0,a.C0)(t);if(!r)return e;let n=new URL(e,"http://127.0.0.1");return n.searchParams.set("bridgeId",r),`${n.pathname}${n.search}${n.hash}`}function i(e){let t=function(e){if(!e)return null;if(e instanceof URL)return e;if("string"==typeof e)try{return new URL(e,"http://127.0.0.1")}catch{return null}if("string"==typeof e.href)try{return new URL(e.href)}catch{}return null}(e);if(!t)return null;let r=(0,a.C0)(t.searchParams.get("bridge")??t.searchParams.get("bridgeId"));if(r)return r;let n=(0,a.DW)(t.searchParams.get("session"))?.bridgeId;if(n)return n;let i=t.pathname.match(/^\/sessions\/([^/]+)$/);if(!i)return null;try{return(0,a.DW)(decodeURIComponent(i[1]))?.bridgeId??null}catch{return null}}},44522:(e,t,r)=>{r.d(t,{N8:()=>o,Tr:()=>u,jV:()=>v,m7:()=>c,xv:()=>s});var a=r(31404),n=r(11984);let i="conductor-bridge-recent-pairing";function s(e,t){return e.deviceId===t&&("checking"===e.phase||"updating"===e.phase||"restarting"===e.phase)}function d(e,t){return t.jobMessage??`Installing Conductor ${t.latestVersion??"latest"} on ${e.device_name}.`}function o(e){if(!e.enabled)switch(e.reason){case"source-checkout":return"This laptop is running from a source checkout, so there is no published package to auto-update.";case"missing-cli-metadata":return"This install could not determine its update metadata, so automatic package updates are unavailable.";default:return"Automatic package updates are unavailable for this laptop."}return e.updateAvailable?e.canAutoUpdate?"This laptop is already running the latest Conductor release.":"npx"===e.installMode?"This laptop was launched via npx, so the next launch will pick up the latest package automatically.":e.updateCommand?`A newer Conductor release is available, but this install still needs a manual update: ${e.updateCommand}`:"A newer Conductor release is available, but this install cannot update itself automatically.":"This laptop is already running the latest Conductor release."}async function l(e,t){var r,i;let s=t?.method??"GET",d=`/api/bridge/devices/${encodeURIComponent(e)}/app-update`,o=new URL((0,a.S)(d,e),window.location.origin);t?.force&&o.searchParams.set("force","1");let l=await fetch(o.toString(),{method:s,headers:t?.body?{"Content-Type":"application/json"}:void 0,body:t?.body?JSON.stringify(t.body):void 0,cache:"no-store"}),c=await l.json().catch(()=>null);if(!l.ok){let e;throw Error((r=c&&"object"==typeof c&&"error"in c&&"string"==typeof c.error?c.error:null,i=l.status,e=r?.trim()??"",(0,n.Az)(e)?(0,n.IG)("update"):e||`Failed to update Conductor on this laptop (${i})`))}let u=c&&"object"==typeof c?c:null;if(!u)throw Error("Paired device returned an invalid update payload.");return u}function c(e){let t={deviceId:e.deviceId,deviceName:e.deviceName??null,pairedAt:new Date().toISOString()};try{window.localStorage.setItem(i,JSON.stringify(t))}catch{}}function u(){try{let e=window.localStorage.getItem(i);if(!e)return null;let t=JSON.parse(e);if(!(t&&"object"==typeof t&&"string"==typeof t.deviceId&&"string"==typeof t.pairedAt&&(null===t.deviceName||"string"==typeof t.deviceName)))return window.localStorage.removeItem(i),null;let r=Date.parse(t.pairedAt);if(!Number.isFinite(r)||Date.now()-r>18e5)return window.localStorage.removeItem(i),null;return t}catch{return null}}async function v(e,t){let r=(r,a)=>{t({deviceId:e.device_id,phase:r,message:a})};r("checking",`Checking whether ${e.device_name} needs a Conductor package update.`);try{let t=await l(e.device_id,{force:!0});if(t.restarting)return void r("restarting",t.jobMessage??`Restart requested on ${e.device_name}. This page will reconnect once the bridge runtime is back online.`);if("running"===t.jobStatus)r("updating",d(e,t));else{if(!t.updateAvailable||!t.enabled||!t.canAutoUpdate)return void r(t.enabled&&t.canAutoUpdate?"completed":"skipped",o(t));t=await l(e.device_id,{method:"POST"}),r("updating",d(e,t))}let a=Date.now()+3e5;for(;Date.now()<a&&"running"===t.jobStatus;){if(await new Promise(e=>{window.setTimeout(e,1500)}),(t=await l(e.device_id)).restarting)return void r("restarting",t.jobMessage??`Restart requested on ${e.device_name}. This page will reconnect once the bridge runtime is back online.`);r("updating",d(e,t))}if("running"===t.jobStatus)return void r("updating",`The package update is still running on ${e.device_name}. Leave this page open and Conductor will finish applying it in the background.`);if("failed"===t.jobStatus)throw Error(t.jobMessage??t.error??`Automatic package update failed on ${e.device_name}.`);if(t.restartRequired){if(t.canRestart){t=await l(e.device_id,{method:"POST",body:{action:"restart"}}),r("restarting",t.jobMessage??`Restart requested on ${e.device_name} to finish updating Conductor.`);return}r("completed",t.jobMessage??`The latest Conductor package is installed on ${e.device_name}. Restart that laptop to finish updating.`);return}r("completed",t.jobMessage??`${e.device_name} is now updated to Conductor ${t.latestVersion??"latest"}.`)}catch(t){r("failed",t instanceof Error?t.message:`Failed to auto-update ${e.device_name}.`)}}},46916:(e,t,r)=>{r.d(t,{cn:()=>i});var a=r(9917),n=r(2809);function i(...e){return(0,n.QP)((0,a.$)(e))}},61369:(e,t,r)=>{function a(e){return/^[A-Za-z0-9_./:=@%+-]+$/.test(e)?e:`'${e.replace(/'/g,"'\"'\"'")}'`}function n(e){return e.map(a).join(" ")}function i(e){return new URL("/bridge/install.sh",e).toString()}function s(e){return`/bridge/connect?device=${encodeURIComponent(e)}#bridge-setup`}function d(e){return`curl -fsSL ${a(e)} | sh`}function o(e,t,r){let n=["curl","-fsSL",e,"|","sh","-s","--","--connect","--dashboard-url",t];return r?.trim()&&n.push("--relay-url",r.trim()),n.map(e=>"|"===e?e:a(e)).join(" ")}function l(e,t){let r=["conductor-bridge","connect","--dashboard-url",e];return t?.trim()&&r.push("--relay-url",t.trim()),n(r)}function c(e,t){let r=["conductor-bridge","pair","--code",e?.trim()||"ABC123"],a=["conductor-bridge","daemon"];return t?.trim()&&(r.push("--relay-url",t.trim()),a.push("--relay-url",t.trim())),`${n(r)}
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1665],{10926:(e,t,r)=>{r.d(t,{C0:()=>n,DW:()=>i});let a="bridge:";function n(e){let t=e?.trim();return t&&t.length>0?t:null}function i(e){let t=e?.trim();if(!t||!t.startsWith(a))return null;let r=t.slice(a.length),i=r.indexOf(":");if(i<=0||i>=r.length-1)return null;let s=n(r.slice(0,i)),d=r.slice(i+1).trim();return s&&0!==d.length?{bridgeId:s,sessionId:d}:null}},11984:(e,t,r)=>{function a(e){let t=e?.trim().toLowerCase()??"";return!!t&&(t.includes("127.0.0.1:4749")||t.includes("older bridge build")||t.includes("one-time local bridge upgrade"))}function n(e){return`This laptop needs a one-time local bridge upgrade before ${function(e){switch(e){case"repair":return"Repair bridge";case"restart":return"Restart service";case"update":return"Update Conductor"}}(e)} can run from the dashboard.`}function i(e){let t=e?.trim()||"This laptop";return`${t} is still on an older bridge build, so Conductor cannot repair, restart, or update it remotely yet. Upgrade the bridge once on that laptop, then future fixes run from the dashboard.`}r.d(t,{Az:()=>a,IG:()=>n,_5:()=>i})},15115:(e,t,r)=>{function a(e,t){return"string"==typeof e&&e.trim().length>0?e.trim():t}function n(e){return Array.isArray(e)?e.filter(e=>!!e&&"object"==typeof e).map(e=>{let t,r,n;return t=a(e.hostname,"unknown-host"),r=a(e.os,"unknown-os"),n=a(e.arch,"unknown-arch"),{device_id:a(e.device_id,t),device_name:a(e.device_name,t),hostname:t,os:r,arch:n,connected:!0===e.connected,last_status:e.last_status?{hostname:a(e.last_status.hostname,t),os:a(e.last_status.os,r),connected:!0===e.last_status.connected}:null}}):[]}r.d(t,{o:()=>n})},15321:(e,t,r)=>{r.d(t,{i:()=>m});var a=r(54568),n=r(7620),i=r(65587),s=r.n(i),d=r(63322),o=r(59706),l=r(87242),c=r(76081),u=r(46916),v=r(11984),p=r(61369);function m({deviceId:e,deviceName:t,dashboardUrl:r,installScriptUrl:i,relayUrl:g,className:h}){let[x,b]=(0,n.useState)(!1),f=(0,n.useMemo)(()=>(0,p.$y)(i,r,g),[r,i,g]),k=(0,n.useMemo)(()=>(0,p.kw)(e),[e]);return(0,a.jsxs)("div",{className:(0,u.cn)("mt-3 rounded-[14px] border border-[color:color-mix(in_srgb,var(--vk-orange)_28%,transparent)] bg-[color:color-mix(in_srgb,var(--vk-orange)_10%,transparent)] px-3 py-3",h),children:[(0,a.jsx)("div",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--vk-text-muted)]",children:"One-time local repair"}),(0,a.jsx)("div",{className:"mt-2 text-[12px] leading-5 text-[var(--vk-text-normal)]",children:(0,v._5)(t)}),(0,a.jsxs)("div",{className:"mt-3 flex flex-wrap gap-2",children:[(0,a.jsxs)(c.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{navigator.clipboard?.writeText?(b(!1),navigator.clipboard.writeText(f).then(()=>{b(!0)}).catch(()=>{b(!1)})):b(!1)},children:[x?(0,a.jsx)(d.A,{className:"h-4 w-4"}):(0,a.jsx)(o.A,{className:"h-4 w-4"}),x?"Repair command copied":"Copy repair command"]}),(0,a.jsx)(c.$,{asChild:!0,variant:"outline",size:"sm",children:(0,a.jsxs)(s(),{href:k,children:[(0,a.jsx)(l.A,{className:"h-4 w-4"}),"Open repair steps"]})})]})]})}},21665:(e,t,r)=>{r.d(t,{J:()=>C});var a=r(54568),n=r(7620),i=r(40448),s=r(65587),d=r.n(s),o=r(79748),l=r(34041),c=r(58299),u=r(87242),v=r(2099),p=r(60527),m=r(81167),g=r(15321),h=r(44522),x=r(11984),b=r(46916),f=r(26167),k=r(61369),w=r(63680),y=r(15115);let j="/bridge/connect";function _({connected:e,className:t,title:r,suffix:n}){return(0,a.jsxs)("span",{className:(0,b.cn)("inline-flex items-center gap-2 rounded-full border px-2.5 py-1 text-[12px] font-medium",e?"border-[rgba(24,197,143,0.35)] bg-[rgba(24,197,143,0.12)] text-[var(--vk-green)]":"border-[rgba(255,143,122,0.24)] bg-[rgba(255,143,122,0.08)] text-[var(--vk-red)]",t),title:r,children:[(0,a.jsx)("span",{className:(0,b.cn)("h-2.5 w-2.5 rounded-full",e?"bg-[var(--vk-green)]":"bg-[var(--vk-red)]")}),(0,a.jsx)("span",{children:e?"Online":"Offline"}),n]})}function N({className:e}){let t,r=(0,o.useRouter)(),s=(0,o.usePathname)(),C=(0,o.useSearchParams)(),[$,I]=(0,n.useState)([]),[R,A]=(0,n.useState)(!0),[S,T]=(0,n.useState)(null),[E,U]=(0,n.useState)(null),[L,O]=(0,n.useState)({deviceId:null,phase:"idle",message:null}),[P,D]=(0,n.useState)({deviceId:null,kind:null,status:"idle",message:null}),z=(0,n.useRef)(new Set),M=(0,n.useCallback)(async e=>{e&&A(!0);try{let e=await fetch("/api/bridge/devices",{cache:"no-store"}),t=await e.json().catch(()=>null);if(!e.ok)throw Error(t?.error??`Failed to load bridge devices (${e.status})`);I((0,y.o)(t?.devices)),T(null)}catch(e){T(e instanceof Error?e.message:"Failed to load bridge devices.")}finally{A(!1)}},[]);(0,n.useEffect)(()=>{let e=!1,t=null,r=async t=>{e||await M(t)};return r(!0),t=window.setInterval(()=>{r(!1)},15e3),()=>{e=!0,null!==t&&window.clearInterval(t)}},[M]),(0,n.useEffect)(()=>{let e=()=>{U((0,h.Tr)()?.deviceId??null)};return e(),window.addEventListener("focus",e),window.addEventListener("storage",e),()=>{window.removeEventListener("focus",e),window.removeEventListener("storage",e)}},[]),(0,n.useEffect)(()=>{s!==j&&r.prefetch(j)},[s,r]);let B=$.filter(e=>e.connected),F=C.get("bridge")?.trim()||null,q=window.location.origin,G=(t=function(e){let t=e?.trim();if(!t)return null;try{let e=new URL(t);if("http:"!==e.protocol&&"https:"!==e.protocol)return null;return e.toString()}catch{return null}}(w.env.CONDUCTOR_BRIDGE_RELAY_URL??w.env.NEXT_PUBLIC_CONDUCTOR_BRIDGE_RELAY_URL))||null,J=F?$.find(e=>e.device_id===F)??null:null,V=E?$.find(e=>e.device_id===E)??null:null,W=B.length>0,X=S??(W?`${B.length} bridge${1===B.length?"":"s"} online`:$.length>0?"No paired bridges are online":"No paired bridges yet");(0,n.useEffect)(()=>{let e=(V?.connected?V:null)??(J?.connected?J:null);!e||z.current.has(e.device_id)||(z.current.add(e.device_id),(0,h.jV)(e,O))},[V,J]),(0,n.useEffect)(()=>{!V||V.connected||L.message||O({deviceId:V.device_id,phase:"checking",message:`Waiting for ${V.device_name} to reconnect so Conductor can finish its package update.`})},[L.message,V]);let Y=(0,n.useCallback)(async e=>{D({deviceId:e.device_id,kind:"restart",status:"running",message:`Restarting the bridge service on ${e.device_name}.`});try{let t=await (0,f.b)(e.device_id);D({deviceId:e.device_id,kind:"restart",status:"completed",message:t}),window.setTimeout(()=>{M(!1)},2e3)}catch(t){D({deviceId:e.device_id,kind:"restart",status:"failed",message:t instanceof Error?t.message:`Failed to restart ${e.device_name}.`})}},[M]),Z=(0,n.useCallback)(async e=>{D({deviceId:e.device_id,kind:"repair",status:"running",message:`Reinstalling the bridge service on ${e.device_name}.`});try{let t=(0,k.pj)(window.location.origin),r=await (0,f.E)(e.device_id,t);D({deviceId:e.device_id,kind:"repair",status:"completed",message:r}),window.setTimeout(()=>{M(!1)},2e3)}catch(t){D({deviceId:e.device_id,kind:"repair",status:"failed",message:t instanceof Error?t.message:`Failed to repair ${e.device_name}.`})}},[M]),Q=(0,n.useCallback)(async e=>{await (0,h.jV)(e,O),window.setTimeout(()=>{M(!1)},2e3)},[M]);return(0,a.jsxs)(i.bL,{children:[(0,a.jsx)(i.l9,{asChild:!0,children:(0,a.jsx)("button",{type:"button",className:"outline-none",children:(0,a.jsx)(_,{connected:W,className:e,title:X,suffix:(0,a.jsx)(l.A,{className:"h-3.5 w-3.5 text-current/70"})})})}),(0,a.jsx)(i.ZL,{children:(0,a.jsxs)(i.UC,{align:"end",sideOffset:8,className:"z-[90] w-[320px] rounded-[18px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] p-2 text-[var(--vk-text-normal)] shadow-[0_22px_48px_rgba(0,0,0,0.34)]",children:[(0,a.jsxs)("div",{className:"rounded-[14px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] px-3 py-3",children:[(0,a.jsx)("div",{className:"text-[11px] font-semibold uppercase tracking-[0.22em] text-[var(--vk-text-muted)]",children:"Conductor Bridge"}),(0,a.jsx)("div",{className:"mt-2 text-[13px] text-[var(--vk-text-normal)]",children:W?`${B.length} device${1===B.length?"":"s"} online`:R?"Loading device status":"No live bridge connection"}),(0,a.jsx)("div",{className:"mt-2 text-[11px] leading-5 text-[var(--vk-text-faint)]",children:"If a laptop is online but misbehaving, repair the bridge, update Conductor, or restart the service here."}),S?(0,a.jsx)("div",{className:"mt-2 text-[12px] leading-5 text-[var(--vk-red)]",children:S}):null,L.message?(0,a.jsx)("div",{className:(0,b.cn)("mt-2 text-[12px] leading-5","failed"===L.phase?"text-[var(--vk-red)]":"skipped"===L.phase?"text-[var(--vk-text-muted)]":"text-[var(--vk-text-faint)]"),children:L.message}):null]}),(0,a.jsx)("div",{className:"mt-2 max-h-[280px] overflow-y-auto",children:$.length>0?$.map(e=>{let t=(0,h.xv)(L,e.device_id),r="running"===P.status&&P.deviceId===e.device_id,n=r&&"repair"===P.kind,i=r&&"restart"===P.kind,s=P.deviceId===e.device_id&&(0,x.Az)(P.message)||L.deviceId===e.device_id&&(0,x.Az)(L.message);return(0,a.jsx)("div",{className:"rounded-[14px] px-3 py-2.5 transition-colors hover:bg-[var(--vk-bg-hover)]",children:(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("div",{className:"truncate text-[13px] font-medium text-[var(--vk-text-strong)]",children:e.device_name}),(0,a.jsxs)("div",{className:"mt-1 text-[12px] text-[var(--vk-text-muted)]",children:[e.hostname," \xb7 ",e.os,"/",e.arch]}),(0,a.jsxs)("div",{className:"mt-1 text-[11px] text-[var(--vk-text-muted)]",children:["Relay: ",e.last_status?.hostname??e.hostname]}),L.message&&L.deviceId===e.device_id?(0,a.jsx)("div",{className:(0,b.cn)("mt-1 text-[11px] leading-5","failed"===L.phase?"text-[var(--vk-red)]":"skipped"===L.phase?"text-[var(--vk-text-muted)]":"text-[var(--vk-text-faint)]"),children:L.message}):null,P.message&&P.deviceId===e.device_id?(0,a.jsx)("div",{className:(0,b.cn)("mt-1 text-[11px] leading-5","failed"===P.status?"text-[var(--vk-red)]":"completed"===P.status?"text-[var(--vk-green)]":"text-[var(--vk-text-faint)]"),children:P.message}):null,s&&q?(0,a.jsx)(g.i,{deviceId:e.device_id,deviceName:e.device_name,dashboardUrl:q,installScriptUrl:(0,k.pj)(q),relayUrl:G}):null,e.connected?(0,a.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2",children:[(0,a.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-[10px] border border-[var(--vk-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--vk-text-normal)] transition-colors hover:bg-[var(--vk-bg-hover)]",disabled:r||t,onClick:()=>{Z(e)},children:[n?(0,a.jsx)(c.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,a.jsx)(u.A,{className:"h-3.5 w-3.5"}),"Repair bridge"]}),(0,a.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-[10px] border border-[var(--vk-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--vk-text-normal)] transition-colors hover:bg-[var(--vk-bg-hover)]",disabled:t||r,onClick:()=>{Q(e)},children:[t?(0,a.jsx)(c.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,a.jsx)(v.A,{className:"h-3.5 w-3.5"}),t?"Updating...":"Update Conductor"]}),(0,a.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-[10px] border border-[var(--vk-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--vk-text-normal)] transition-colors hover:bg-[var(--vk-bg-hover)]",disabled:r||t,onClick:()=>{Y(e)},children:[i?(0,a.jsx)(c.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,a.jsx)(p.A,{className:"h-3.5 w-3.5"}),"Restart service"]})]}):null]}),(0,a.jsx)(_,{connected:!0===e.connected})]})},e.device_id)}):(0,a.jsx)("div",{className:"rounded-[14px] border border-dashed border-[var(--vk-border)] px-3 py-4 text-[12px] text-[var(--vk-text-muted)]",children:R?"Loading paired devices...":"Pair a laptop to see bridge status here."})}),(0,a.jsx)(i.wv,{className:"my-2 h-px bg-[var(--vk-border)]"}),(0,a.jsx)(i.q7,{asChild:!0,children:(0,a.jsxs)(d(),{href:j,prefetch:!0,className:"flex items-center justify-between rounded-[12px] px-3 py-2 text-[13px] font-medium text-[var(--vk-text-normal)] outline-none transition-colors hover:bg-[var(--vk-bg-hover)] focus:bg-[var(--vk-bg-hover)]",children:[(0,a.jsx)("span",{children:"Open bridge connection"}),(0,a.jsx)(m.A,{className:"h-4 w-4 text-[var(--vk-text-muted)]"})]})})]})})]})}function C({connected:e,className:t,title:r}={}){return"boolean"==typeof e?(0,a.jsx)(_,{connected:e,className:t,title:r}):(0,a.jsx)(N,{className:t})}},26167:(e,t,r)=>{r.d(t,{E:()=>i,b:()=>n});var a=r(11984);async function n(e){let t=await s(e,"service-restart",{});return t?.message??"Bridge service restart requested. This laptop should reconnect shortly."}async function i(e,t){let r=await s(e,"repair",{installScriptUrl:t});return r?.message??"Bridge reinstall requested. This laptop should reconnect shortly."}async function s(e,t,r){let n=await fetch(`/api/bridge/devices/${encodeURIComponent(e)}/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r),cache:"no-store"}),i=await n.json().catch(()=>null);if(!n.ok){var s,d;let e;throw Error((s=i?.error??i?.message??null,d=n.status,e=s?.trim()??"",(0,a.Az)(e)?(0,a.IG)("repair"===t?"repair":"restart"):e||`Failed to run ${t} on the bridge service (${d})`))}return i}},31404:(e,t,r)=>{r.d(t,{S:()=>n,y:()=>i});var a=r(10926);function n(e,t){let r=(0,a.C0)(t);if(!r)return e;let n=new URL(e,"http://127.0.0.1");return n.searchParams.set("bridgeId",r),`${n.pathname}${n.search}${n.hash}`}function i(e){let t=function(e){if(!e)return null;if(e instanceof URL)return e;if("string"==typeof e)try{return new URL(e,"http://127.0.0.1")}catch{return null}if("string"==typeof e.href)try{return new URL(e.href)}catch{}return null}(e);if(!t)return null;let r=(0,a.C0)(t.searchParams.get("bridge")??t.searchParams.get("bridgeId"));if(r)return r;let n=(0,a.DW)(t.searchParams.get("session"))?.bridgeId;if(n)return n;let i=t.pathname.match(/^\/sessions\/([^/]+)$/);if(!i)return null;try{return(0,a.DW)(decodeURIComponent(i[1]))?.bridgeId??null}catch{return null}}},44522:(e,t,r)=>{r.d(t,{N8:()=>o,Tr:()=>u,jV:()=>v,m7:()=>c,xv:()=>s});var a=r(31404),n=r(11984);let i="conductor-bridge-recent-pairing";function s(e,t){return e.deviceId===t&&("checking"===e.phase||"updating"===e.phase||"restarting"===e.phase)}function d(e,t){return t.jobMessage??`Installing Conductor ${t.latestVersion??"latest"} on ${e.device_name}.`}function o(e){if(!e.enabled)switch(e.reason){case"source-checkout":return"This laptop is running from a source checkout, so there is no published package to auto-update.";case"missing-cli-metadata":return"This install could not determine its update metadata, so automatic package updates are unavailable.";default:return"Automatic package updates are unavailable for this laptop."}return e.updateAvailable?e.canAutoUpdate?"This laptop is already running the latest Conductor release.":"npx"===e.installMode?"This laptop was launched via npx, so the next launch will pick up the latest package automatically.":e.updateCommand?`A newer Conductor release is available, but this install still needs a manual update: ${e.updateCommand}`:"A newer Conductor release is available, but this install cannot update itself automatically.":"This laptop is already running the latest Conductor release."}async function l(e,t){var r,i;let s=t?.method??"GET",d=`/api/bridge/devices/${encodeURIComponent(e)}/app-update`,o=new URL((0,a.S)(d,e),window.location.origin);t?.force&&o.searchParams.set("force","1");let l=await fetch(o.toString(),{method:s,headers:t?.body?{"Content-Type":"application/json"}:void 0,body:t?.body?JSON.stringify(t.body):void 0,cache:"no-store"}),c=await l.json().catch(()=>null);if(!l.ok){let e;throw Error((r=c&&"object"==typeof c&&"error"in c&&"string"==typeof c.error?c.error:null,i=l.status,e=r?.trim()??"",(0,n.Az)(e)?(0,n.IG)("update"):e||`Failed to update Conductor on this laptop (${i})`))}let u=c&&"object"==typeof c?c:null;if(!u)throw Error("Paired device returned an invalid update payload.");return u}function c(e){let t={deviceId:e.deviceId,deviceName:e.deviceName??null,pairedAt:new Date().toISOString()};try{window.localStorage.setItem(i,JSON.stringify(t))}catch{}}function u(){try{let e=window.localStorage.getItem(i);if(!e)return null;let t=JSON.parse(e);if(!(t&&"object"==typeof t&&"string"==typeof t.deviceId&&"string"==typeof t.pairedAt&&(null===t.deviceName||"string"==typeof t.deviceName)))return window.localStorage.removeItem(i),null;let r=Date.parse(t.pairedAt);if(!Number.isFinite(r)||Date.now()-r>18e5)return window.localStorage.removeItem(i),null;return t}catch{return null}}async function v(e,t){let r=(r,a)=>{t({deviceId:e.device_id,phase:r,message:a})};r("checking",`Checking whether ${e.device_name} needs a Conductor package update.`);try{let t=await l(e.device_id,{force:!0});if(t.restarting)return void r("restarting",t.jobMessage??`Restart requested on ${e.device_name}. This page will reconnect once the bridge runtime is back online.`);if("running"===t.jobStatus)r("updating",d(e,t));else{if(!t.updateAvailable||!t.enabled||!t.canAutoUpdate)return void r(t.enabled&&t.canAutoUpdate?"completed":"skipped",o(t));t=await l(e.device_id,{method:"POST"}),r("updating",d(e,t))}let a=Date.now()+3e5;for(;Date.now()<a&&"running"===t.jobStatus;){if(await new Promise(e=>{window.setTimeout(e,1500)}),(t=await l(e.device_id)).restarting)return void r("restarting",t.jobMessage??`Restart requested on ${e.device_name}. This page will reconnect once the bridge runtime is back online.`);r("updating",d(e,t))}if("running"===t.jobStatus)return void r("updating",`The package update is still running on ${e.device_name}. Leave this page open and Conductor will finish applying it in the background.`);if("failed"===t.jobStatus)throw Error(t.jobMessage??t.error??`Automatic package update failed on ${e.device_name}.`);if(t.restartRequired){if(t.canRestart){t=await l(e.device_id,{method:"POST",body:{action:"restart"}}),r("restarting",t.jobMessage??`Restart requested on ${e.device_name} to finish updating Conductor.`);return}r("completed",t.jobMessage??`The latest Conductor package is installed on ${e.device_name}. Restart that laptop to finish updating.`);return}r("completed",t.jobMessage??`${e.device_name} is now updated to Conductor ${t.latestVersion??"latest"}.`)}catch(t){r("failed",t instanceof Error?t.message:`Failed to auto-update ${e.device_name}.`)}}},46916:(e,t,r)=>{r.d(t,{cn:()=>i});var a=r(9917),n=r(2809);function i(...e){return(0,n.QP)((0,a.$)(e))}},61369:(e,t,r)=>{function a(e){return/^[A-Za-z0-9_./:=@%+-]+$/.test(e)?e:`'${e.replace(/'/g,"'\"'\"'")}'`}function n(e){return e.map(a).join(" ")}function i(e){return new URL("/bridge/install.sh",e).toString()}function s(e){return`/bridge/connect?device=${encodeURIComponent(e)}#bridge-setup`}function d(e){return`curl -fsSL ${a(e)} | sh`}function o(e,t,r){let a=["npx","conductor-oss@latest","bridge","setup","--dashboard-url",t];return r?.trim()&&a.push("--relay-url",r.trim()),n(a)}function l(e,t){let r=["conductor-bridge","connect","--dashboard-url",e];return t?.trim()&&r.push("--relay-url",t.trim()),n(r)}function c(e,t){let r=["conductor-bridge","pair","--code",e?.trim()||"ABC123"],a=["conductor-bridge","daemon"];return t?.trim()&&(r.push("--relay-url",t.trim()),a.push("--relay-url",t.trim())),`${n(r)}
|
|
2
2
|
${n(a)}`}r.d(t,{$y:()=>o,G7:()=>d,hI:()=>l,kw:()=>s,pj:()=>i,zd:()=>c})},76081:(e,t,r)=>{r.d(t,{$:()=>l});var a=r(54568),n=r(46916),i=r(78347),s=r(7620);let d={default:"border-[var(--vk-border)] bg-[var(--vk-bg-panel)] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",primary:"border-[var(--vk-border)] bg-[var(--vk-bg-active)] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",ghost:"border-transparent bg-transparent text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)]",danger:"border-[var(--vk-red)]/40 bg-[color:color-mix(in_srgb,var(--vk-red)_18%,transparent)] text-[var(--vk-red)] hover:bg-[color:color-mix(in_srgb,var(--vk-red)_24%,transparent)]",outline:"border-[var(--vk-border)] bg-transparent text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]"},o={sm:"h-7 px-2.5 text-[12px] gap-1",md:"h-8 px-3 text-[13px] gap-1.5",lg:"h-9 px-3.5 text-[14px] gap-2",icon:"h-8 w-8 p-0"},l=(0,s.forwardRef)(({variant:e="default",size:t="md",asChild:r,className:s,children:l,...c},u)=>{let v=r?i.DX:"button";return(0,a.jsx)(v,{ref:u,className:(0,n.cn)("inline-flex items-center justify-center rounded-[var(--radius-sm)] border font-medium","transition-colors duration-150","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--vk-orange)]","disabled:pointer-events-none disabled:opacity-45",d[e],o[t],s),...c,children:l})});l.displayName="Button"}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1679],{862:(e,t,n)=>{n.d(t,{G:()=>j});var r=n(54568),a=n(7620),i=n(33593),o=n(90466),s=n(46916),l=n(79748),u=n(58299),c=n(34309),d=n(62868),f=n(2099),m=n(36645),p=n(59706),h=n(76081),g=n(17210),v=n(31404),b=n(44522);let w="conductor-dismissed-update-version";function y(){let e=(0,l.usePathname)(),t=(0,l.useSearchParams)(),[n,i]=(0,a.useState)(null),[o,y]=(0,a.useState)(null),[x,j]=(0,a.useState)(null),[k,S]=(0,a.useState)(!1),[M,C]=(0,a.useState)(!1),[N,E]=(0,a.useState)(!1),A=(0,a.useMemo)(()=>(0,v.y)(window.location.href),[e,t]),I=(0,a.useCallback)(()=>(0,v.y)(window.location.href),[]),$=(0,a.useCallback)((e=!1)=>{let t=(0,v.S)("/api/app-update",I());if(!e)return t;let n=new URL(t,"http://127.0.0.1");return n.searchParams.set("force","1"),`${n.pathname}${n.search}${n.hash}`},[I]),F=(0,a.useCallback)(async(e=!1)=>{try{let t=await fetch($(e),{cache:"no-store"}),n=await t.json().catch(()=>null);if(412===t.status)return y(null),null;if(!t.ok)throw Error("string"==typeof n?.error?n.error:`Failed to load update status (${t.status})`);return i(n),y(null),n}catch(e){return y(e instanceof Error?e.message:"Failed to load update status."),null}},[$,I]);(0,a.useEffect)(()=>{try{let e=window.localStorage.getItem(w);j(e&&e.length>0?e:null)}catch{}F(!0);let e=A?()=>{}:(0,g.F)(e=>{e&&(i(e),y(null))}),t=()=>{"visible"===document.visibilityState&&F(!1)};return window.addEventListener("focus",t),document.addEventListener("visibilitychange",t),()=>{e(),window.removeEventListener("focus",t),document.removeEventListener("visibilitychange",t)}},[A,F]);let L=n?.latestVersion&&x===n.latestVersion,q=!!n?.restarting||N,R=(0,a.useMemo)(()=>!!n&&(!!q||"running"===n.jobStatus||!L&&("completed"===n.jobStatus||"failed"===n.jobStatus||!n.enabled&&!!n.reason||n.updateAvailable)),[L,q,n]);async function T(){n?.updateCommand&&(await navigator.clipboard.writeText(n.updateCommand),S(!0),window.setTimeout(()=>S(!1),1400))}async function z(){C(!0);try{let e=await fetch((0,v.S)("/api/app-update",I()),{method:"POST",headers:{"content-type":"application/json"}}),t=await e.json().catch(()=>null);if(!e.ok)throw Error("string"==typeof t?.error?t.error:`Update failed (${e.status})`);i(t),y(null)}catch(e){y(e instanceof Error?e.message:"Failed to trigger update.")}finally{C(!1)}}let U=(0,a.useCallback)(async()=>{let e=Date.now()+6e4;if(A){for(;Date.now()<e;){let e=await F(!1);if(!e?.restarting)return void E(!1);await new Promise(e=>window.setTimeout(e,1e3))}E(!1),y("Restart started on the paired device, but it did not reconnect in time. Retry from the bridge controls.");return}for(;Date.now()<e;){try{if((await fetch("/api/health",{cache:"no-store"})).ok)return void window.location.reload()}catch{}await new Promise(e=>window.setTimeout(e,1e3))}E(!1),y("Restart started, but the dashboard did not come back in time. Reload manually.")},[A,F]);async function H(){try{let e=await fetch((0,v.S)("/api/app-update",I()),{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({action:"restart"})}),t=await e.json().catch(()=>null);if(!e.ok)throw Error("string"==typeof t?.error?t.error:`Restart failed (${e.status})`);i(t),y(null)}catch(e){y(e instanceof Error?e.message:"Failed to restart Conductor.")}}return((0,a.useEffect)(()=>{n?.restarting&&!N&&(E(!0),U())},[N,n?.restarting,U]),R)?(0,r.jsx)("div",{className:"pointer-events-none fixed bottom-3 right-3 z-[70] w-[min(calc(100vw-1.5rem),24rem)] sm:bottom-4 sm:right-4",children:(0,r.jsxs)("section",{className:(0,s.cn)("pointer-events-auto rounded-[14px] border bg-[var(--vk-bg-panel)] p-4 shadow-[0_16px_40px_rgba(0,0,0,0.35)]",n?.jobStatus==="failed"?"border-[color:color-mix(in_srgb,var(--vk-red)_55%,var(--vk-border))]":"border-[var(--vk-border)]"),children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[q||n?.jobStatus==="running"?(0,r.jsx)(u.A,{className:"h-4 w-4 animate-spin text-[var(--vk-orange)]"}):n?.jobStatus==="completed"?(0,r.jsx)(c.A,{className:"h-4 w-4 text-[var(--status-ready)]"}):n?.jobStatus==="failed"?(0,r.jsx)(d.A,{className:"h-4 w-4 text-[var(--vk-red)]"}):(0,r.jsx)(f.A,{className:"h-4 w-4 text-[var(--vk-orange)]"}),(0,r.jsx)("h2",{className:"truncate text-[13px] font-semibold text-[var(--vk-text-normal)]",children:n?!n.enabled&&n.reason?"Conductor update unavailable":n.restarting?"Restarting Conductor":"running"===n.jobStatus?"Updating Conductor":"completed"===n.jobStatus?"Conductor updated":"failed"===n.jobStatus?"Update failed":n.latestVersion?`Conductor ${n.latestVersion} is available`:"Conductor update available":"Conductor update"})]}),(0,r.jsx)("p",{className:"mt-2 text-[12px] leading-5 text-[var(--vk-text-muted)]",children:n?function(e){if(!e.enabled&&e.reason)return(0,b.N8)(e);if(e.restarting)return"The launcher is restarting the runtime. This tab will reconnect automatically once it is ready.";if("running"===e.jobStatus)return e.jobMessage??"Installing the latest version in the background.";if("completed"===e.jobStatus)return e.jobMessage??"The latest version has been installed. Restart Conductor to use it.";if("failed"===e.jobStatus)return e.jobMessage??"The update command did not finish successfully.";let t=e.currentVersion?`You are running ${e.currentVersion}. `:"";return e.canAutoUpdate?`${t}Install the new release now and restart when it finishes.`:"npx"===e.installMode?`${t}Copy the restart command, run it in a terminal, and the next launch will use the latest release.`:`${t}Copy the update command, run it in a terminal, then restart Conductor.`}(n):"Checking for updates..."})]}),(0,r.jsx)("button",{type:"button",onClick:function(){if(n?.latestVersion){try{window.localStorage.setItem(w,n.latestVersion)}catch{}j(n.latestVersion);return}i(e=>e?{...e,reason:null,enabled:!0}:e)},className:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-[7px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)]","aria-label":"Dismiss update notice",children:(0,r.jsx)(m.A,{className:"h-4 w-4"})})]}),n?.updateCommand?(0,r.jsx)("div",{className:"mt-3 rounded-[10px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] px-3 py-2 font-mono text-[11px] leading-5 text-[var(--vk-text-muted)]",children:n.updateCommand}):null,n?(0,r.jsx)("p",{className:"mt-2 text-[11px] leading-5 text-[var(--vk-text-faint)]",children:function(e){switch(e){case"npx":return"This session was launched through npx. Copy the restart command, run it in a terminal, and the next launch will use the latest package.";case"unknown":return"Automatic updates are unavailable for this install.";default:return null}}(n.installMode)??(n.restartRequired?"Restart the current Conductor process after the installer completes.":"Update state streams from the running Conductor runtime.")}):null,o?(0,r.jsx)("p",{className:"mt-2 text-[11px] text-[var(--vk-red)]",children:o}):n?.error?(0,r.jsx)("p",{className:"mt-2 text-[11px] text-[var(--vk-red)]",children:n.error}):null,n?.logsTail&&"failed"===n.jobStatus?(0,r.jsx)("pre",{className:"mt-2 max-h-32 overflow-auto rounded-[10px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] p-2 text-[10px] leading-4 text-[var(--vk-text-faint)]",children:n.logsTail}):null,(0,r.jsxs)("div",{className:"mt-3 flex items-center justify-end gap-2",children:[n?.jobStatus==="failed"&&n.canAutoUpdate?(0,r.jsxs)(h.$,{type:"button",size:"sm",variant:"primary",onClick:()=>void z(),disabled:M,children:[M?(0,r.jsx)(u.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(d.A,{className:"h-3.5 w-3.5"}),"Retry"]}):null,n?.jobStatus==="idle"&&n.canAutoUpdate?(0,r.jsxs)(h.$,{type:"button",size:"sm",variant:"primary",onClick:()=>void z(),disabled:M,children:[M?(0,r.jsx)(u.A,{className:"h-3.5 w-3.5 animate-spin"}):(0,r.jsx)(f.A,{className:"h-3.5 w-3.5"}),"Update now"]}):null,n?.jobStatus==="idle"&&!n.canAutoUpdate&&n.updateCommand?(0,r.jsxs)(h.$,{type:"button",size:"sm",variant:"outline",onClick:()=>void T(),children:[k?(0,r.jsx)(c.A,{className:"h-3.5 w-3.5 text-[var(--status-ready)]"}):(0,r.jsx)(p.A,{className:"h-3.5 w-3.5"}),k?"Copied":"npx"===n.installMode?"Copy restart command":"Copy command"]}):null,n?.restartRequired&&n.canRestart&&!n.restarting&&!N?(0,r.jsxs)(h.$,{type:"button",size:"sm",variant:"primary",onClick:()=>void H(),children:[(0,r.jsx)(d.A,{className:"h-3.5 w-3.5"}),"Restart now"]}):null,n?.restarting||N?(0,r.jsxs)(h.$,{type:"button",size:"sm",variant:"primary",disabled:!0,children:[(0,r.jsx)(u.A,{className:"h-3.5 w-3.5 animate-spin"}),"Restarting"]}):null]})]})}):null}let x="conductor-workspace-sidebar-width";function j({sidebar:e,children:t,mobileSidebarOpen:n,desktopSidebarOpen:l,onToggleSidebar:u,hideMobileSidebarToggle:c=!1}){let[d,f]=(0,a.useState)(356),[m,p]=(0,a.useState)(!1);(0,a.useEffect)(()=>{try{let e=window.localStorage.getItem(x),t=e?Number.parseInt(e,10):NaN;Number.isFinite(t)&&f(Math.min(460,Math.max(296,t)))}catch{}},[]),(0,a.useEffect)(()=>{if(!m)return;let e=e=>{f(Math.min(460,Math.max(296,e.clientX)))},t=()=>{p(!1)};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",t),document.body.style.userSelect="none",document.body.style.cursor="col-resize",()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",t),document.body.style.userSelect="",document.body.style.cursor="";try{window.localStorage.setItem(x,String(d))}catch{}}},[m,d]);let h={"--workspace-sidebar-width":`${d}px`};return(0,r.jsxs)("div",{style:h,className:"relative flex h-dvh min-h-[100dvh] w-full max-w-full overflow-hidden bg-[var(--vk-bg-main)] text-[var(--vk-text-normal)] [padding-top:env(safe-area-inset-top)] [padding-bottom:env(safe-area-inset-bottom)] pl-[env(safe-area-inset-left)] pr-[env(safe-area-inset-right)]",children:[n&&(0,r.jsx)("button",{type:"button",className:"absolute inset-0 z-20 bg-black/45 lg:hidden",onClick:u,"aria-label":"Close workspace panel"}),(0,r.jsx)("aside",{className:(0,s.cn)("absolute inset-y-0 left-0 z-30 flex h-full w-full max-w-none flex-col border-r border-[var(--vk-border)] bg-[var(--vk-bg-panel)] transition-[transform,width] duration-200 sm:w-[min(90vw,var(--workspace-sidebar-width))] sm:max-w-[28rem]",n?"translate-x-0":"-translate-x-full",l?"lg:w-[var(--workspace-sidebar-width)]":"lg:w-0 lg:overflow-hidden lg:border-r-0","lg:relative lg:left-auto lg:translate-x-0"),children:e}),l?(0,r.jsx)("div",{className:"absolute bottom-0 left-[var(--workspace-sidebar-width)] top-0 z-30 hidden w-2 -translate-x-1/2 cursor-col-resize lg:block",onMouseDown:()=>p(!0),"aria-hidden":"true",children:(0,r.jsx)("div",{className:"mx-auto h-full w-px bg-transparent transition-colors hover:bg-[var(--vk-border)]"})}):null,l&&(0,r.jsx)("button",{type:"button",onClick:u,className:"absolute left-[var(--workspace-sidebar-width)] top-2 z-40 hidden h-7 w-7 -translate-x-1/2 items-center justify-center rounded-[4px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] text-[var(--vk-text-muted)] shadow-[0_0_0_1px_rgba(0,0,0,0.25)] hover:bg-[var(--vk-bg-hover)] lg:inline-flex","aria-label":"Hide workspace panel",children:(0,r.jsx)(i.A,{className:"h-5 w-5"})}),(0,r.jsxs)("main",{className:"relative flex min-h-0 min-w-0 w-full flex-1 flex-col overflow-hidden bg-[var(--vk-bg-main)]",children:[!n&&!c&&(0,r.jsx)("button",{type:"button",onClick:u,className:"absolute left-2 top-2 z-40 inline-flex h-11 w-11 items-center justify-center rounded-[6px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] text-[var(--vk-text-muted)] shadow-[0_10px_24px_rgba(0,0,0,0.28)] hover:bg-[var(--vk-bg-hover)] sm:h-8 sm:w-8 lg:hidden","aria-label":"Open workspace panel",children:(0,r.jsx)(o.A,{className:"h-5 w-5"})}),!l&&(0,r.jsx)("button",{type:"button",onClick:u,className:"absolute left-2 top-2 z-40 hidden h-7 w-7 items-center justify-center rounded-[4px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] lg:inline-flex","aria-label":"Open workspace panel",children:(0,r.jsx)(o.A,{className:"h-5 w-5"})}),t]}),(0,r.jsx)(y,{})]})}},17210:(e,t,n)=>{n.d(t,{F:()=>x,L:()=>y});var r=n(31404);let a=new Set,i=new Set,o=null,s=null,l=null,u=null;function c(){return a.size>0||i.size>0}function d(){return"u"<typeof document||"visible"===document.visibilityState}function f(){o&&(o.close(),o=null)}function m(e){if(Array.isArray(e))return{type:"snapshot",sessions:e};if(!e||"object"!=typeof e)return null;let t=e.type;return"snapshot"!==t&&"snapshot_delta"!==t?null:Array.isArray(e.sessions)?e:null}function p(e){return e&&"object"==typeof e&&"boolean"==typeof e.enabled?e:null}function h(e){for(let t of a)t(e);let t=p(e.appUpdate);if(t)for(let e of i)e(t)}function g(){return(0,r.y)(window.location.href)}async function v(){if("function"!=typeof fetch)return;let e=(async()=>{let e=g();try{let t=await fetch((0,r.S)("/api/sessions",e));if(!t.ok)return;let n=await t.json().catch(()=>null),a=m(n);if(!a)return;h(a)}catch{}try{let n=await fetch((0,r.S)("/api/app-update",e));if(!n.ok)return;let a=await n.json().catch(()=>null);var t=p(a);for(let e of i)e(t)}catch{}})();s=e.finally(()=>{s===e&&(s=null)}),await e}function b(){o||"u"<typeof EventSource||!c()||!d()||g()||((o=new EventSource("/api/events")).onmessage=e=>{try{let t=m(JSON.parse(e.data));if(!t)return;h(t)}catch{}},o.addEventListener("refresh",()=>{s||v()}),o.onerror=()=>{c()&&d()||f()})}function w(){if(!c()){f(),l&&(window.removeEventListener("focus",l),l=null),u&&(document.removeEventListener("visibilitychange",u),u=null);return}(l||u||(l=()=>{c()&&d()&&(b(),s||v())},u=()=>{c()&&d()?(b(),s||v()):f()},window.addEventListener("focus",l),document.addEventListener("visibilitychange",u)),g()||!d())?f():b()}function y(e){return a.add(e),w(),()=>{a.delete(e),w()}}function x(e){return i.add(e),w(),()=>{i.delete(e),w()}}},35821:(e,t,n)=>{n.d(t,{w:()=>a});var r=n(75120);function a(e,t=null,n){return(0,r.DA)(e,t,n)}},46012:(e,t,n)=>{n.d(t,{T:()=>i});var r=n(7620);function a(){return window.innerWidth>=1024}function i(e){let[t,n]=(0,r.useState)(!1),[i,o]=(0,r.useState)(e?.initialDesktopOpen??!0),s=(0,r.useCallback)(()=>{a()?o(e=>!e):n(e=>!e)},[]);return{mobileSidebarOpen:t,desktopSidebarOpen:i,toggleSidebar:s,closeSidebarOnMobile:(0,r.useCallback)(()=>{a()||n(!1)},[]),syncSidebarForViewport:(0,r.useCallback)(()=>{a()?o(!0):n(!1)},[])}}},53649:(e,t,n)=>{n.d(t,{U:()=>o});var r=n(7620),a=n(31404);function i(e,t){return{id:e,repo:"string"==typeof t?.repo?t.repo:null,path:"string"==typeof t?.path?t.path:null,iconUrl:"string"==typeof t?.iconUrl?t.iconUrl:null,boardDir:"string"==typeof t?.boardDir?t.boardDir:null,boardFile:"string"==typeof t?.boardFile?t.boardFile:null,description:"string"==typeof t?.description?t.description:null,defaultBranch:"string"==typeof t?.defaultBranch&&t.defaultBranch.trim().length>0?t.defaultBranch:"main",agent:"string"==typeof t?.agent&&t.agent.trim().length>0?t.agent:"claude-code",agentPermissions:"string"==typeof t?.agentPermissions&&t.agentPermissions.trim().length>0?t.agentPermissions:null,agentModel:"string"==typeof t?.agentModel&&t.agentModel.trim().length>0?t.agentModel:null,agentReasoningEffort:"string"==typeof t?.agentReasoningEffort&&t.agentReasoningEffort.trim().length>0?t.agentReasoningEffort:null}}function o(e,t){let n=t?.enabled??!0,[o,s]=(0,r.useState)([]),[l,u]=(0,r.useState)(n),[c,d]=(0,r.useState)(null),f=(0,r.useCallback)(async()=>{if(!n){s([]),d(null),u(!1);return}u(!0);try{let t=await fetch((0,a.S)("/api/config",e)),n=await t.json().catch(()=>null);if(!t.ok){let e="object"==typeof n&&null!==n?n.error??n.reason:null;throw Error(e??`Failed to fetch config: ${t.status}`)}s(function(e){if(!e||"object"!=typeof e)return[];let t=e.projects;return t?Array.isArray(t)?t.map((e,t)=>e&&"object"==typeof e?i("string"==typeof e.id&&e.id.trim().length>0?e.id:`project-${t+1}`,e):i(`project-${t+1}`,null)):"object"==typeof t?Object.entries(t).map(([e,t])=>i(e,t&&"object"==typeof t?t:null)):[]:[]}(n)),d(null)}catch(e){s([]),d(e instanceof Error?e.message:"Failed to fetch config")}finally{u(!1)}},[e,n]);return(0,r.useEffect)(()=>{f()},[f]),{projects:o,loading:!!n&&l,error:n?c:null,refresh:f}}},75120:(e,t,n)=>{n.d(t,{DA:()=>C,eI:()=>M});var r=n(7620),a=n(31404),i=n(10926),o=n(17210);let s="local",l=new Map,u=new Map;function c(e){return(0,i.C0)(e)??s}function d(e){let t=l.get(e);return t||(t={sessionsById:new Map,orderedIds:[],version:0,loading:!0,error:null,listInitialized:!1,refreshPromise:null,unsubscribeSnapshots:null,activeConsumers:0,pollTimer:null,focusHandler:null,visibilityHandler:null},l.set(e,t)),t}function f(e){let t=u.get(e);return t||(t=new Set,u.set(e,t)),t}function m(e){for(let t of f(e))t()}function p(e){return[...e.values()].sort((e,t)=>t.createdAt.localeCompare(e.createdAt)).map(e=>e.id)}function h(e,t,n){let r=d(e);r.sessionsById=t,r.orderedIds=n,r.version+=1}function g(e){return{id:e.id,projectId:e.projectId,bridgeId:e.bridgeId??null,bridgeConnected:e.bridgeConnected??null,bridgeConnection:e.bridgeConnection??null,status:e.status,activity:e.activity,branch:e.branch,issueId:e.issueId,summary:e.summary??null,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,pr:e.pr??null,metadata:e.metadata}}async function v(e,t){let n=d(e);if(n.refreshPromise)return void await n.refreshPromise;let r=(async()=>{try{var r;let i=await fetch((0,a.S)("/api/sessions",t),{cache:"no-store"});if(!i.ok){let e=await i.json().catch(()=>null);throw Error(e?.error??e?.reason??`Failed to fetch sessions: ${i.status}`)}let o=(r=await i.json().catch(()=>null),Array.isArray(r)?r:Array.isArray(r?.sessions)?r.sessions:[]),s=new Map(o.map(e=>[e.id,e]));h(e,s,p(s)),n.error=null}catch(e){n.error=e instanceof Error?e.message:"Failed to fetch sessions"}finally{n.loading=!1,m(e)}})();n.refreshPromise=r.finally(()=>{n.refreshPromise===r&&(n.refreshPromise=null)}),await r}function b(){return"visible"===document.visibilityState}function w(e){let t=d(e);null!==t.pollTimer&&(window.clearTimeout(t.pollTimer),t.pollTimer=null)}function y(e,t){let n=d(e);w(e),0!==n.activeConsumers&&b()&&(n.pollTimer=window.setTimeout(async()=>{0!==d(e).activeConsumers&&b()&&(await v(e,t),y(e,t))},15e3))}function x(e,t){let n=d(e);n.activeConsumers+=1,n.activeConsumers>1||(!function(e){if(e!==s)return;let t=d(e);t.unsubscribeSnapshots||(t.unsubscribeSnapshots=(0,o.L)(t=>{let n=d(e);if("snapshot"===t.type)h(e,new Map(t.sessions.map(e=>{let t=g(e);return[t.id,t]})),t.sessions.map(e=>e.id));else{let r=new Map(n.sessionsById);for(let e of t.sessions){let t=g(e);r.set(t.id,t)}for(let e of t.removedSessionIds??[])r.delete(e);h(e,r,p(r))}n.loading=!1,n.error=null,m(e)}))}(e),n.listInitialized||(n.listInitialized=!0),function(e,t){let n=d(e);if(n.focusHandler||n.visibilityHandler)return;let r=()=>{0!==n.activeConsumers&&(v(e,t),y(e,t))},a=()=>{0!==n.activeConsumers&&("visible"===document.visibilityState&&v(e,t),w(e),y(e,t))};n.focusHandler=r,n.visibilityHandler=a,window.addEventListener("focus",r),document.addEventListener("visibilitychange",a)}(e,t),b()&&v(e,t),y(e,t))}function j(e){let t=d(e);if(t.activeConsumers=Math.max(0,t.activeConsumers-1),!(t.activeConsumers>0)){let n;w(e),(n=d(e)).focusHandler&&(window.removeEventListener("focus",n.focusHandler),n.focusHandler=null),n.visibilityHandler&&(document.removeEventListener("visibilitychange",n.visibilityHandler),n.visibilityHandler=null),t.unsubscribeSnapshots?.(),t.unsubscribeSnapshots=null}}function k(e,t){let n=f(e);return n.add(t),()=>{n.delete(t)}}async function S(e,t,n){let r=d(t);try{let i=await fetch((0,a.S)(`/api/sessions/${encodeURIComponent(e)}`,n),{cache:"no-store"});if(404===i.status){let n=new Map(r.sessionsById);return n.delete(e),h(t,n,p(n)),r.error=null,m(t),null}if(!i.ok){let e=await i.json().catch(()=>null);throw Error(e?.error??e?.reason??`Failed to fetch session: ${i.status}`)}let o=await i.json(),s=new Map(r.sessionsById);return s.set(o.id,o),h(t,s,p(s)),r.error=null,o}catch(e){throw r.error=e instanceof Error?e.message:"Failed to fetch session",e}finally{r.loading=!1,m(t)}}function M(e,t){let n=t?.enabled??!0,a=c(t?.bridgeId),i=d(a),[,o]=(0,r.useReducer)(e=>e+1,0),[s,l]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{if(l(!0),!n)return;x(a,t?.bridgeId);let e=k(a,()=>o());return()=>{e(),j(a)}},[n,t?.bridgeId,a]),{sessions:(0,r.useMemo)(()=>{let t,r;return n&&s?(t=d(a),r=e?.trim(),t.orderedIds.map(e=>t.sessionsById.get(e)).filter(e=>!!e).filter(e=>!r||e.projectId===r)):[]},[n,s,e,a,i.version]),loading:!!n&&(!s||i.loading),error:n?i.error:null,refresh:()=>v(a,t?.bridgeId)}}function C(e,t=null,n){let a=n?.enabled??!0,o="string"==typeof e&&e.trim().length>0?e.trim():null,l=(0,i.C0)(n?.bridgeId??t?.bridgeId??(0,i.DW)(o)?.bridgeId??null),u=c(l),f=d(u),[,g]=(0,r.useReducer)(e=>e+1,0),[v,b]=(0,r.useState)(!1),[w,y]=(0,r.useState)(t),[M,N]=(0,r.useState)(null),[E,A]=(0,r.useState)(a&&null!==o&&null===t);return(0,r.useEffect)(()=>{b(!0),function(e,t){if(!t)return;let n=d(e),r=n.sessionsById.get(t.id);if(r&&JSON.stringify(r)===JSON.stringify(t))return;let a=new Map(n.sessionsById);a.set(t.id,t),h(e,a,p(a)),n.loading=!1,m(e)}(u,t),y(t),N(null)},[t,u]),(0,r.useEffect)(()=>{if(a&&null!==o)return k(u,()=>g())},[a,o,u]),(0,r.useEffect)(()=>{if(a&&null!==o)return x(u,l),()=>{j(u)}},[a,l,o,u]),(0,r.useEffect)(()=>{if(!a||null===o||u===s)return;let e=()=>{"visible"===document.visibilityState&&S(o,u,l).catch(()=>{})};e();let t=window.setInterval(e,5e3);return()=>{window.clearInterval(t)}},[a,l,o,u]),(0,r.useEffect)(()=>{if(!a||null===o){y(null),N(null),A(!1);return}if(t||f.sessionsById.has(o)){y(e=>f.sessionsById.get(o)??e??t),N(null),A(!1);return}let e=!1;return A(!0),N(null),S(o,u,l).then(t=>{e||(y(t),N(null))}).catch(t=>{e||(y(null),N(t instanceof Error?t.message:"Failed to fetch session"))}).finally(()=>{e||A(!1)}),()=>{e=!0}},[a,l,t,o,u,f]),{session:o?v?f.sessionsById.get(o)??w??t??null:t??null:null,loading:E,error:a&&o?M??f.error:null}}},84169:(e,t,n)=>{n.d(t,{V:()=>o});var r=n(54568),a=n(7620),i=n(37270);let o=(0,a.memo)(function({title:e,onOpenPreferences:t,rightContent:n}){return(0,r.jsxs)("header",{className:"flex h-11 items-center border-b border-[var(--vk-border)] bg-[var(--vk-bg-panel)] pl-14 pr-2 text-[13px] text-[var(--vk-text-muted)] sm:h-14 sm:pl-5 sm:pr-5 sm:text-[14px]",children:[(0,r.jsx)("div",{className:"min-w-0 flex-1 text-left sm:text-center",children:(0,r.jsx)("span",{className:"block truncate font-medium tracking-[0.01em] text-[var(--vk-text-normal)]",children:e??"All Projects"})}),n?(0,r.jsx)("div",{className:"ml-1 flex shrink-0 items-center gap-2",children:n}):null,t?(0,r.jsx)("div",{className:"ml-1 flex shrink-0",children:(0,r.jsx)("button",{type:"button",onClick:t,className:"inline-flex h-11 w-11 items-center justify-center rounded-[6px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)] sm:h-9 sm:w-9","aria-label":"Open preferences",title:"Preferences",children:(0,r.jsx)(i.A,{className:"h-4 w-4"})})}):null]})})},85626:(e,t,n)=>{n.d(t,{$E:()=>d,ww:()=>u,zu:()=>c});let r="abstract-sound-4",a={"abstract-sound-1":{steps:[{frequency:784,durationMs:90,gain:.24},{frequency:988,durationMs:90,gain:.22},{frequency:1175,durationMs:120,gain:.2}]},"abstract-sound-2":{steps:[{frequency:659,durationMs:120,gain:.22},{frequency:523,durationMs:140,gain:.2},{frequency:659,durationMs:120,gain:.18}]},"abstract-sound-3":{steps:[{frequency:440,durationMs:80,gain:.22},{frequency:554,durationMs:80,gain:.22},{frequency:659,durationMs:90,gain:.2},{frequency:880,durationMs:120,gain:.18}]},"abstract-sound-4":{steps:[{frequency:523,durationMs:130,gain:.22},{frequency:659,durationMs:130,gain:.2},{frequency:784,durationMs:150,gain:.18}]},"cow-mooing":{steps:[{frequency:220,durationMs:220,type:"triangle",gain:.24},{frequency:174,durationMs:260,type:"triangle",gain:.2}]},"phone-vibration":{vibrate:[120,60,120,60,180],steps:[{frequency:180,durationMs:140,gain:.16},{frequency:220,durationMs:140,gain:.14}]},rooster:{steps:[{frequency:784,durationMs:70,type:"square",gain:.24},{frequency:1046,durationMs:70,type:"square",gain:.22},{frequency:1318,durationMs:90,type:"square",gain:.2},{frequency:1568,durationMs:120,type:"square",gain:.18}]}},i=null;function o(){let e=window,t=e.AudioContext??e.webkitAudioContext;return t?(i||(i=new t),i):null}function s(e){let t=e?.trim();return t&&t in a?t:r}function l(e,t,n){return Math.min(n,Math.max(t,e))}function u(e){return s(e)}async function c(){let e=o();if(!e)return!1;if("suspended"===e.state)try{await e.resume()}catch{return!1}return"running"===e.state}async function d(e,t){let n=s(e),r=a[n];if("phone-vibration"===n&&r.vibrate&&"u">typeof navigator&&"function"==typeof navigator.vibrate)return navigator.vibrate(r.vibrate);let i=o();if(!i||!r.steps||0===r.steps.length)return!1;if("suspended"===i.state)try{await i.resume()}catch{return!1}if("running"!==i.state)return!1;let u=l(t?.volume??.4,.05,.8),c=i.currentTime+.02;for(let e of r.steps)!function(e,t,n,r){let a=e.createOscillator(),i=e.createGain(),o=l((n.gain??1)*r,.02,.9),s=Math.max(.04,n.durationMs/1e3),u=t+Math.max(.015,Math.min(.05,.35*s)),c=t+Math.max(.02,.7*s),d=t+s;a.type=n.type??"sine",a.frequency.setValueAtTime(n.frequency,t),i.gain.setValueAtTime(1e-4,t),i.gain.linearRampToValueAtTime(o,u),i.gain.exponentialRampToValueAtTime(1e-4,c),i.gain.setValueAtTime(1e-4,d),a.connect(i),i.connect(e.destination),a.start(t),a.stop(d+.05)}(i,c,e,u),c+=Math.max(.06,e.durationMs/1e3+.04);return!0}},86011:(e,t,n)=>{n.d(t,{Q:()=>c});var r=n(7620),a=n(31404),i=n(85626);function o(){return"u"<typeof document||"visible"===document.visibilityState}function s(e){return!e||"object"!=typeof e||Array.isArray(e)?{}:{...e}}function l(e){return`${e.id}::${e.timestamp}`}function u(e){null!==e.current&&(window.clearTimeout(e.current),e.current=null)}function c({enabled:e,projectId:t,preferences:n,bridgeId:d}){let f=(0,r.useRef)(n?.soundEnabled!==!1),m=(0,r.useRef)((0,i.ww)(n?.soundFile)),p=(0,r.useRef)(new Set),h=(0,r.useRef)(null),g=(0,r.useRef)(!1),v=(0,r.useRef)(null),b=(0,r.useRef)(null),w=(0,r.useRef)(null);(0,r.useEffect)(()=>{f.current=n?.soundEnabled!==!1,m.current=(0,i.ww)(n?.soundFile)},[n?.soundEnabled,n?.soundFile]),(0,r.useEffect)(()=>{if(!e)return;let n=t?.trim()||null,r=d?.trim()||null,c=`${r??"local"}::${n??""}`;v.current!==c&&(v.current=c,p.current=new Set,h.current=null,g.current=!1);let y=!1,x=async e=>{if(y||!o())return;if(b.current)return void await b.current;let t=(async()=>{let t=new URLSearchParams({limit:"20"});n&&t.set("project",n),!e&&h.current&&t.set("since",h.current);try{var o;let n,u=await fetch((0,a.S)(`/api/notifications?${t.toString()}`,r),{cache:"no-store"});if(!u.ok)return;let c=(o=await u.json().catch(()=>null),n=s(o),(Array.isArray(n.notifications)?n.notifications:[]).map(e=>{var t;let n,r,a,i,o,l,u,c;return n=s(e),r="string"==typeof n.id?n.id.trim():"",a="string"==typeof n.message?n.message.trim():"",i="string"==typeof n.timestamp?n.timestamp.trim():"",o="string"==typeof n.sessionId?n.sessionId.trim():"",l="string"==typeof n.projectId?n.projectId.trim():"",u="string"==typeof n.type?n.type.trim():"",c="high"===(t=n.priority)||"medium"===t||"low"===t?n.priority:"low",r&&a&&i&&o&&l&&u?{id:r,priority:c,message:a,timestamp:i,sessionId:o,projectId:l,type:u}:null}).filter(e=>null!==e).sort((e,t)=>{let n=Date.parse(t.timestamp)-Date.parse(e.timestamp);return 0!==n?n:t.id.localeCompare(e.id)}));if(0===c.length){g.current=!0;return}if(h.current=c[0]?.timestamp??null,e||!g.current){for(let e of c)p.current.add(l(e));g.current=!0;return}let d=c.filter(e=>!p.current.has(l(e)));for(let e of c)p.current.add(l(e));if(0===d.length)return;let v=d.find(e=>"high"===e.priority)??d.find(e=>"medium"===e.priority)??d[0]??null;if(!v||"low"===v.priority||!f.current)return;await (0,i.$E)(m.current)}catch{}})();b.current=t;try{await t}finally{b.current===t&&(b.current=null),g.current=!0}},j=()=>{u(w),!y&&o()&&(w.current=window.setTimeout(()=>{x(!1).finally(()=>{j()})},1e4))},k=()=>{!y&&o()&&x(!g.current).finally(()=>{j()})},S=()=>{o()?k():u(w)},M=()=>{o()&&k()},C=()=>{(0,i.zu)()};return k(),window.addEventListener("focus",M),document.addEventListener("visibilitychange",S),window.addEventListener("pointerdown",C,!0),window.addEventListener("touchstart",C,!0),window.addEventListener("keydown",C,!0),()=>{y=!0,u(w),window.removeEventListener("focus",M),document.removeEventListener("visibilitychange",S),window.removeEventListener("pointerdown",C,!0),window.removeEventListener("touchstart",C,!0),window.removeEventListener("keydown",C,!0)}},[d,e,t])}},86181:(e,t,n)=>{n.d(t,{Jn:()=>i,k$:()=>o,ox:()=>a});let r='MesloLGM Nerd Font, MesloLGM NF, MesloLGS NF, MesloLGS Nerd Font, Hack Nerd Font, FiraCode Nerd Font, JetBrainsMono Nerd Font, CaskaydiaCove Nerd Font, Menlo, Monaco, "Courier New", SF Mono, SF Pro, monospace';function a(e,t=.5){return!e||e.scrollHeight-e.clientHeight-e.scrollTop<=t}function i(e){var t;return(t="number"==typeof e&&Number.isFinite(e)&&e>0?e:1280)<420?{fontFamily:"'SF Mono', Menlo, Monaco, monospace",fontSize:10,lineHeight:1.1}:t<560?{fontFamily:"'SF Mono', Menlo, Monaco, monospace",fontSize:11,lineHeight:1.15}:t<768?{fontFamily:"'SF Mono', Menlo, Monaco, monospace",fontSize:12,lineHeight:1.2}:t<1024?{fontFamily:r,fontSize:13,lineHeight:1.2}:{fontFamily:r,fontSize:14,lineHeight:1.2}}function o(){var e;return"function"==typeof window.matchMedia&&window.matchMedia("(pointer: coarse)").matches,"u"<typeof navigator||navigator.maxTouchPoints,e=window.innerWidth,window.innerHeight,e<1024}},90124:(e,t,n)=>{n.d(t,{N:()=>c});var r=n(54568),a=n(7620);let i=new Map;for(let[e,t]of Object.entries({amp:["amp","amp-code","amp-cli","ampcode","agent-amp"],claude:["claude","claude-code","claude-cli","claudecode","ccr","claude-code-router","claude-mcp","claude-mcp-cli","claude-mcp-agent","agent-claude-code"],codex:["codex","openai-codex","codex-cli","codexcli","openai","agent-codex"],copilot:["copilot","github-copilot","githubcopilot","copilot-cli","agent-github-copilot"],cursor:["cursor","cursor-cli","cursor-agent","cursoragent","agent-cursor-cli"],droid:["droid","factory-droid","factory_droid","agent-droid"],gemini:["gemini","gemini-cli","google-gemini","googlegemini","agent-gemini"],opencode:["opencode","open-code","open_code","open-code-cli","agent-opencode"],qwen:["qwen","qwen-code","qwen_code","qwen-code-cli","agent-qwen-code"]}))for(let n of t)i.set(o(n),e);function o(e){return e.trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/_+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}function s(e){let t=o(e);if(!t)return null;let n=i.get(t);if(n)return n;for(let e of t.split("-")){let t=i.get(e);if(t)return t}for(let[e,n]of i.entries())if(t===e||t.startsWith(`${e}-`)||t.endsWith(`-${e}`)||t.includes(`-${e}-`))return n;return null}function l(e){try{let t=new URL(e),n=s(t.hostname.replace(/^www\./,"").replace(/\./g,"-"));if(n)return n;return s(t.pathname.replace(/\//g,"-"))}catch{return s(e)}}function u({label:e,className:t}){let n=e.split(/[^a-z0-9]/iu).filter(Boolean).slice(0,2).map(e=>e[0]?.toUpperCase()).join("");return(0,r.jsx)("span",{"aria-hidden":"true",className:`inline-flex shrink-0 items-center justify-center rounded-[0.2rem] text-[9px] font-semibold text-white ${t}`,style:{backgroundColor:function(e){let t=["#14b8a6","#06b6d4","#0ea5e9","#8b5cf6","#ec4899","#f97316","#f59e0b","#ef4444","#22c55e","#84cc16"],n=0;for(let r=0;r<e.length;r+=1)n=(31*n+e.charCodeAt(r))%t.length;return t[Math.abs(n)%t.length]??"#6b7280"}(`${e}:${e.length}`)},children:n||"AI"})}function c({seed:e,className:t="h-6 w-6"}){let[n,i]=(0,a.useState)(0),o=e?.label?.trim()??"",d=(0,a.useMemo)(()=>{var t;if(!o)return[];let n=s((t={label:o,iconUrl:e?.iconUrl,homepage:e?.homepage}).label)??(t.homepage?l(t.homepage):null)??(t.iconUrl?l(t.iconUrl):null),r="string"==typeof e?.iconUrl&&e.iconUrl.trim().length>0?e.iconUrl.trim():null,a=[];return n&&(a.push(`/agents/${n}-dark.svg`),a.push(`/agents/${n}-light.svg`)),r&&a.push(r),a},[o,e?.homepage,e?.iconUrl]);if((0,a.useEffect)(()=>{i(0)},[o,d]),!o)return(0,r.jsx)(u,{label:"AI",className:t});let f=d[n]??null;return f?(0,r.jsx)("img",{src:f,alt:`${o} icon`,loading:"lazy",className:`${t} shrink-0 rounded-[0.2rem] object-contain scale-125`,onError:()=>i(e=>e+1)}):(0,r.jsx)(u,{label:o,className:t})}},95106:(e,t,n)=>{n.d(t,{t:()=>a});var r=n(75120);function a(e,t){return(0,r.eI)(e,t)}}}]);
|