conductor-oss 0.7.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +173 -134
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +18 -2
- package/dist/backend.js.map +1 -1
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +13 -7
- package/dist/commands/dashboard.js.map +1 -1
- package/node_modules/@conductor-oss/core/dist/config.d.ts.map +1 -1
- package/node_modules/@conductor-oss/core/dist/config.js +6 -1
- package/node_modules/@conductor-oss/core/dist/config.js.map +1 -1
- package/package.json +8 -6
- package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/packages/web/.next/app-path-routes-manifest.json +2 -0
- package/web/.next/standalone/packages/web/.next/build-manifest.json +7 -7
- package/web/.next/standalone/packages/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/packages/web/.next/routes-manifest.json +44 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error/page/build-manifest.json +5 -5
- 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 +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- 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/build-manifest.json +5 -5
- package/web/.next/standalone/packages/web/.next/server/app/_not-found/page/server-reference-manifest.json +7 -7
- 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/_not-found.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.rsc +11 -11
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/access/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/agents/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/app-update/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/attachments/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/auth/session/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/comments/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/config/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/open/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/context-files/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/events/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/executor/health/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/directory/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/filesystem/pick-directory/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/github/repos/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/github/webhook/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/health/boards/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/health/sessions/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/remote-access/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/remote-access/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/actions/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/checks/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/diff/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/stream/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feed/stream/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/feedback/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/files/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/interrupt/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/keys/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/kill/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/output/stream/route.js.nft.json +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/dom/route.js.nft.json +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/route.js.nft.json +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]/preview/screenshot/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/send/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/connection/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/connection/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/connection/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/connection/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/connection/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/connection/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/connection/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route/app-paths-manifest.json +3 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route/build-manifest.json +11 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route/server-reference-manifest.json +4 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route.js +10 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route.js.map +5 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route.js.nft.json +1 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/[id]/terminal/snapshot/route_client-reference-manifest.js +2 -0
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/branches/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/page/build-manifest.json +5 -5
- package/web/.next/standalone/packages/web/.next/server/app/page/react-loadable-manifest.json +4 -4
- package/web/.next/standalone/packages/web/.next/server/app/page/server-reference-manifest.json +7 -7
- 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/build-manifest.json +5 -5
- package/web/.next/standalone/packages/web/.next/server/app/sessions/[id]/page/server-reference-manifest.json +7 -7
- 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/sign-in/[[...sign-in]]/page/build-manifest.json +5 -5
- package/web/.next/standalone/packages/web/.next/server/app/sign-in/[[...sign-in]]/page/server-reference-manifest.json +7 -7
- 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/unlock/page/build-manifest.json +5 -5
- package/web/.next/standalone/packages/web/.next/server/app/unlock/page/server-reference-manifest.json +14 -14
- 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 +2 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/26076_server_app_api_sessions_[id]_terminal_connection_route_actions_46c114ee.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/26076_server_app_api_sessions_[id]_terminal_snapshot_route_actions_cfb4de43.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/730ea_web__next-internal_server_app_api_sessions_[id]_restore_route_actions_41a4c356.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__b716459f._.js → [root-of-the-server]__08556fc3._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__624bcdc9._.js → [root-of-the-server]__0e496df1._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__9bf61231._.js → [root-of-the-server]__115b433b._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__70929198._.js → [root-of-the-server]__120a0868._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__17d710ef._.js → [root-of-the-server]__1a623333._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__262e987e._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__31053ac2._.js → [root-of-the-server]__2713bac9._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__8c576b6a._.js → [root-of-the-server]__2798ac7c._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__747e6415._.js → [root-of-the-server]__27b2bd14._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__a4b1a94c._.js → [root-of-the-server]__29d94573._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__732fc06e._.js → [root-of-the-server]__2b59cba9._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2ce39d51._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__3e507276._.js → [root-of-the-server]__2fea4a4c._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__59635ca5._.js → [root-of-the-server]__36559d88._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__f0ec1021._.js → [root-of-the-server]__4117784b._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__543bc377._.js → [root-of-the-server]__43b35d39._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__ba70a88e._.js → [root-of-the-server]__444bf146._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__fd0a681b._.js → [root-of-the-server]__45483f4b._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__98f4a7bd._.js → [root-of-the-server]__4644a89e._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4c78886c._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__e7aaee2d._.js → [root-of-the-server]__4cea5dca._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__33494588._.js → [root-of-the-server]__575c7392._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__eae97345._.js → [root-of-the-server]__57605af7._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__be233a9f._.js → [root-of-the-server]__57c8ca1a._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5e2b35cd._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__8ace49d1._.js → [root-of-the-server]__5f5433df._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6313c91e._.js +3 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__3dc4c761._.js → [root-of-the-server]__6a8b5dc7._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__3318d8a1._.js → [root-of-the-server]__717081d9._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__ae73aa49._.js → [root-of-the-server]__75668566._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__b4039db5._.js → [root-of-the-server]__7a6210dc._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__34e636e5._.js → [root-of-the-server]__7ca5b93b._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__b53b70e7._.js → [root-of-the-server]__8462ddf1._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__3937a996._.js → [root-of-the-server]__9e363e9c._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__4c5f7cab._.js → [root-of-the-server]__a0467c5b._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__9576223c._.js → [root-of-the-server]__a8d68307._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__82e86bb6._.js → [root-of-the-server]__ac79a67b._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__bcd0c846._.js → [root-of-the-server]__af5be1d9._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b3cd93ca._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__540ebc7f._.js → [root-of-the-server]__b7314f2a._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__bb2675cd._.js → [root-of-the-server]__bcbc6330._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__fe4c1384._.js → [root-of-the-server]__bfbdd808._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__b00db558._.js → [root-of-the-server]__c205eff4._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__c455995a._.js → [root-of-the-server]__c39ceb71._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c9cb9ac6._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cff9ddef._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__7c87a52f._.js → [root-of-the-server]__d65b8403._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__eb6e6bb9._.js → [root-of-the-server]__d7b9cb55._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__53daf5c6._.js → [root-of-the-server]__df103a4a._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ea845f9f._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__8ee7749b._.js → [root-of-the-server]__f5a16619._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__9940de77._.js → [root-of-the-server]__f62d8a1f._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__5df70a62._.js → [root-of-the-server]__f7c7ed71._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__520aa408._.js → [root-of-the-server]__fa5bbdc8._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__e385846c._.js → [root-of-the-server]__fed9223f._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/_2c837d66._.js +5 -5
- package/web/.next/standalone/packages/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_eaad1f33.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__000b8c99._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__4f387f9d._.js → [root-of-the-server]__10a850c6._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__7829c78d._.js → [root-of-the-server]__17f5cb6a._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__29d8d063._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__3ea76517._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__99387ae7._.js → [root-of-the-server]__6647f7ec._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__a509d17d._.js → [root-of-the-server]__9f45b36b._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{[root-of-the-server]__bc8d015f._.js → [root-of-the-server]__f8f50c0b._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_0e1412de._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_230c0c14._.js +4 -4
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_2b5578a1._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{_b6d31783._.js → _532f707d._.js} +3 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_5571204d._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_69e05fca._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_6cfd06c2._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_80efe193._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{_a4a4deb7._.js → _9e7585e3._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_b214b154._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_b8358e63._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_c0f0e227._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{_8982bbf3._.js → _de3b7194._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_f36ddaa9._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/{node_modules_@clerk_nextjs_dist_esm_app-router_743f164d._.js → node_modules_@clerk_nextjs_dist_esm_app-router_a9e633d8._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_f33d83e6._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@radix-ui_d03fdd57._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@xterm_addon-fit_lib_addon-fit_mjs_9b7cb17b._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@xterm_addon-search_lib_addon-search_mjs_8d69d9d7._.js +11 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@xterm_xterm_lib_xterm_mjs_a1a7b9e9._.js +20 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_afb6e107._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_refresh-cw_50f1c1e7.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_next_dist_2df23979._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_cd51dad4.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_board_WorkspaceKanban_tsx_735b7999._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_sessions_SessionDetail_tsx_5fcad270._.js +6 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_features_dashboard_DashboardClient_tsx_81ae42b0._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/functions-config-manifest.json +3 -1
- package/web/.next/standalone/packages/web/.next/server/middleware-build-manifest.js +5 -5
- package/web/.next/standalone/packages/web/.next/server/pages/404.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/pages/500.html +2 -2
- 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 +15 -15
- package/web/.next/standalone/packages/web/.next/static/chunks/07be250784a6a689.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/0866f5c380851a16.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/0cdc18649f440c71.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/0f7eb6d5a59ee3ae.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/144b356fe7daff8d.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/{c4c79d5d0b280aeb.js → 2f236954d6a65e12.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/3cdf839644f79d43.js +18 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/5a4c4d4d5f30829b.css +3 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/6850a6cda159c98d.js +1 -0
- package/web/.next/{static/chunks/06bdd070b8d25946.js → standalone/packages/web/.next/static/chunks/69be39811437728d.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/6cec31da5f555e99.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/70d1e7a526f0f4e2.js +9 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/{ba2aa8b54e912820.js → 723acbe92d3f9e7e.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/739c6f71243d76d8.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/a6ec1ab37eb7b410.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/af8bfb72187b7cbf.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/b86b8884ddf84717.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/c1b8a2d2c623a0dc.js +6 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/c993a1a4204fce88.js +4 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/ca3e38b4495a3d39.js +1 -0
- package/web/.next/standalone/packages/web/.next/static/chunks/{45bd2451c2b0790c.js → caf02f8136b16992.js} +2 -2
- package/web/.next/standalone/packages/web/.next/static/chunks/d4269c59429734ad.js +1 -0
- package/web/.next/{static/chunks/28eac764d6544827.js → standalone/packages/web/.next/static/chunks/e5bcec03f80af56a.js} +1 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/{turbopack-49f4119854e8206e.js → turbopack-26870d017b23fcf0.js} +1 -1
- package/web/.next/standalone/packages/web/next.config.ts +16 -0
- package/web/.next/standalone/packages/web/package.json +3 -1
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/terminal/connection/route.ts +64 -0
- package/web/.next/standalone/packages/web/src/app/api/sessions/[id]/terminal/snapshot/route.ts +14 -0
- package/web/.next/standalone/packages/web/src/app/globals.css +12 -4
- package/web/.next/standalone/packages/web/src/components/Dashboard.tsx +1 -5
- package/web/.next/standalone/packages/web/src/components/TerminalView.tsx +528 -100
- package/web/.next/standalone/packages/web/src/components/board/WorkspaceKanban.tsx +3 -3
- package/web/.next/standalone/packages/web/src/components/layout/AppShell.tsx +3 -3
- package/web/.next/standalone/packages/web/src/components/layout/Sidebar.tsx +29 -18
- package/web/.next/standalone/packages/web/src/components/layout/TopBar.tsx +3 -3
- package/web/.next/standalone/packages/web/src/components/sessions/ChatPanel.tsx +61 -5
- package/web/.next/standalone/packages/web/src/components/sessions/SessionDetail.tsx +99 -46
- package/web/.next/standalone/packages/web/src/components/sessions/SessionPreview.tsx +231 -233
- package/web/.next/standalone/packages/web/src/components/sessions/SessionTerminal.tsx +1212 -0
- package/web/.next/standalone/packages/web/src/components/sessions/terminalInsert.ts +6 -0
- package/web/.next/standalone/packages/web/src/components/terminal/xtermTheme.ts +70 -0
- package/web/.next/standalone/packages/web/src/components/ui/Tabs.tsx +2 -2
- package/web/.next/standalone/packages/web/src/features/dashboard/DashboardClient.tsx +104 -31
- package/web/.next/standalone/packages/web/src/features/sessions/SessionPageClient.tsx +2 -2
- package/web/.next/standalone/packages/web/src/lib/devPreviewBrowser.ts +15 -3
- package/web/.next/static/chunks/07be250784a6a689.js +1 -0
- package/web/.next/static/chunks/0866f5c380851a16.js +1 -0
- package/web/.next/static/chunks/0cdc18649f440c71.js +1 -0
- package/web/.next/static/chunks/0f7eb6d5a59ee3ae.js +1 -0
- package/web/.next/static/chunks/144b356fe7daff8d.js +1 -0
- package/web/.next/static/chunks/{c4c79d5d0b280aeb.js → 2f236954d6a65e12.js} +1 -1
- package/web/.next/static/chunks/3cdf839644f79d43.js +18 -0
- package/web/.next/static/chunks/5a4c4d4d5f30829b.css +3 -0
- package/web/.next/static/chunks/6850a6cda159c98d.js +1 -0
- package/web/.next/{standalone/packages/web/.next/static/chunks/06bdd070b8d25946.js → static/chunks/69be39811437728d.js} +1 -1
- package/web/.next/static/chunks/6cec31da5f555e99.js +1 -0
- package/web/.next/static/chunks/70d1e7a526f0f4e2.js +9 -0
- package/web/.next/static/chunks/{ba2aa8b54e912820.js → 723acbe92d3f9e7e.js} +1 -1
- package/web/.next/static/chunks/739c6f71243d76d8.js +1 -0
- package/web/.next/static/chunks/a6ec1ab37eb7b410.js +1 -0
- package/web/.next/static/chunks/af8bfb72187b7cbf.js +1 -0
- package/web/.next/static/chunks/b86b8884ddf84717.js +1 -0
- package/web/.next/static/chunks/c1b8a2d2c623a0dc.js +6 -0
- package/web/.next/static/chunks/c993a1a4204fce88.js +4 -0
- package/web/.next/static/chunks/ca3e38b4495a3d39.js +1 -0
- package/web/.next/static/chunks/{45bd2451c2b0790c.js → caf02f8136b16992.js} +2 -2
- package/web/.next/static/chunks/d4269c59429734ad.js +1 -0
- package/web/.next/{standalone/packages/web/.next/static/chunks/28eac764d6544827.js → static/chunks/e5bcec03f80af56a.js} +1 -1
- package/web/.next/static/chunks/{turbopack-49f4119854e8206e.js → turbopack-26870d017b23fcf0.js} +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__29091976._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__784e6aef._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__b388693f._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__d1efcbf0._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/_e1c18705._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@clerk_nextjs_dist_esm_app-router_2a090a71._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_@radix-ui_02f0d3f0._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_message-square_2e76b8d9.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/ssr/packages_web_src_components_ui_Tooltip_tsx_6becc8ca._.js +0 -3
- package/web/.next/standalone/packages/web/.next/static/chunks/07f3b9a104ce0ff4.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/1004422d31074d62.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/25afa19789883705.js +0 -6
- package/web/.next/standalone/packages/web/.next/static/chunks/2bc11b604b131190.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/30ababddac1b82dc.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/64f0033534ca1ad3.css +0 -3
- package/web/.next/standalone/packages/web/.next/static/chunks/902a6ba5837e1e57.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/a28bcda8dd6b68ee.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/aabc80195233b4da.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/b6069d0eb07a978f.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/c2caa064748bb0b5.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/c5f8e486166298c2.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/d6a81d2f8b98b4be.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/dfa8ef24e636ca14.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/e9d0e95bbaa0f4fb.js +0 -1
- package/web/.next/standalone/packages/web/.next/static/chunks/ebaa0c535c4135f1.js +0 -1
- package/web/.next/static/chunks/07f3b9a104ce0ff4.js +0 -1
- package/web/.next/static/chunks/1004422d31074d62.js +0 -1
- package/web/.next/static/chunks/25afa19789883705.js +0 -6
- package/web/.next/static/chunks/2bc11b604b131190.js +0 -1
- package/web/.next/static/chunks/30ababddac1b82dc.js +0 -1
- package/web/.next/static/chunks/64f0033534ca1ad3.css +0 -3
- package/web/.next/static/chunks/902a6ba5837e1e57.js +0 -1
- package/web/.next/static/chunks/a28bcda8dd6b68ee.js +0 -1
- package/web/.next/static/chunks/aabc80195233b4da.js +0 -1
- package/web/.next/static/chunks/b6069d0eb07a978f.js +0 -1
- package/web/.next/static/chunks/c2caa064748bb0b5.js +0 -1
- package/web/.next/static/chunks/c5f8e486166298c2.js +0 -1
- package/web/.next/static/chunks/d6a81d2f8b98b4be.js +0 -1
- package/web/.next/static/chunks/dfa8ef24e636ca14.js +0 -1
- package/web/.next/static/chunks/e9d0e95bbaa0f4fb.js +0 -1
- package/web/.next/static/chunks/ebaa0c535c4135f1.js +0 -1
- /package/web/.next/standalone/packages/web/.next/static/{EKHFeqSnbpFbCnV8AGVjm → dzgjDKuem6HLwWyK0KMG4}/_buildManifest.js +0 -0
- /package/web/.next/standalone/packages/web/.next/static/{EKHFeqSnbpFbCnV8AGVjm → dzgjDKuem6HLwWyK0KMG4}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/standalone/packages/web/.next/static/{EKHFeqSnbpFbCnV8AGVjm → dzgjDKuem6HLwWyK0KMG4}/_ssgManifest.js +0 -0
- /package/web/.next/static/{EKHFeqSnbpFbCnV8AGVjm → dzgjDKuem6HLwWyK0KMG4}/_buildManifest.js +0 -0
- /package/web/.next/static/{EKHFeqSnbpFbCnV8AGVjm → dzgjDKuem6HLwWyK0KMG4}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{EKHFeqSnbpFbCnV8AGVjm → dzgjDKuem6HLwWyK0KMG4}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,27534,e=>{"use strict";e.i(92448);var t=e.i(65829);e.i(97651),e.s([],73483),e.i(73483),e.s(["AuthenticateWithRedirectCallback",()=>t.AuthenticateWithRedirectCallback,"ClerkDegraded",()=>t.ClerkDegraded,"ClerkFailed",()=>t.ClerkFailed,"ClerkLoaded",()=>t.ClerkLoaded,"ClerkLoading",()=>t.ClerkLoading,"MultisessionAppSupport",()=>t.MultisessionAppSupport,"Protect",()=>t.Protect,"RedirectToCreateOrganization",()=>t.RedirectToCreateOrganization,"RedirectToOrganizationProfile",()=>t.RedirectToOrganizationProfile,"RedirectToSignIn",()=>t.RedirectToSignIn,"RedirectToSignUp",()=>t.RedirectToSignUp,"RedirectToTasks",()=>t.RedirectToTasks,"RedirectToUserProfile",()=>t.RedirectToUserProfile,"SignedIn",()=>t.SignedIn,"SignedOut",()=>t.SignedOut],27534)},40578,e=>{"use strict";e.i(92448);var t=e.i(65389);e.i(97651);var r=e.i(74041),n=e.i(71645);let i=n.default.createContext(null);function o({authPromise:e,children:t}){return n.default.createElement(i.Provider,{value:e},t)}function l(e={}){let o=(0,r.useRouter)(),a=n.default.useContext(i),s=a;return(a&&"then"in a&&(s=n.default.use(a)),"u"<typeof window)?o?(0,t.useAuth)(e):(0,t.useDerivedAuth)({...s,...e}):(0,t.useAuth)({...s,...e})}e.s(["PromisifiedAuthProvider",()=>o,"usePromisifiedAuth",()=>l])},96136,e=>{"use strict";e.i(92448);var t=e.i(27085),r=e.i(65389);e.i(10507),e.i(80240);var n=e.i(13039),i=e.i(40578);e.s([],93819),e.i(93819),e.s(["EmailLinkErrorCode",()=>n.EmailLinkErrorCode,"EmailLinkErrorCodeStatus",()=>n.EmailLinkErrorCodeStatus,"isClerkAPIResponseError",()=>n.isClerkAPIResponseError,"isClerkRuntimeError",()=>n.isClerkRuntimeError,"isEmailLinkError",()=>n.isEmailLinkError,"isKnownError",()=>n.isKnownError,"isMetamaskError",()=>n.isMetamaskError,"isReverificationCancelledError",()=>n.isReverificationCancelledError,"useAuth",()=>i.usePromisifiedAuth,"useClerk",()=>t.useClerk,"useEmailLink",()=>r.useEmailLink,"useOrganization",()=>t.useOrganization,"useOrganizationCreationDefaults",()=>t.useOrganizationCreationDefaults,"useOrganizationList",()=>t.useOrganizationList,"useReverification",()=>t.useReverification,"useSession",()=>t.useSession,"useSessionList",()=>t.useSessionList,"useSignIn",()=>r.useSignIn,"useSignUp",()=>r.useSignUp,"useUser",()=>t.useUser],96136)},8341,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={cancelIdleCallback:function(){return l},requestIdleCallback:function(){return o}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o="u">typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},l="u">typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},79520,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return m},handleClientScriptLoad:function(){return g},initScriptLoader:function(){return h}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(55682),l=e.r(90809),a=e.r(43476),s=o._(e.r(74080)),u=l._(e.r(71645)),d=e.r(42732),c=e.r(22737),f=e.r(8341),p=new Map,v=new Set,_=e=>{let{src:t,id:r,onLoad:n=()=>{},onReady:i=null,dangerouslySetInnerHTML:o,children:l="",strategy:a="afterInteractive",onError:u,stylesheets:d}=e,f=r||t;if(f&&v.has(f))return;if(p.has(t)){v.add(f),p.get(t).then(n,u);return}let _=()=>{i&&i(),v.add(f)},g=document.createElement("script"),h=new Promise((e,t)=>{g.addEventListener("load",function(t){e(),n&&n.call(this,t),_()}),g.addEventListener("error",function(e){t(e)})}).catch(function(e){u&&u(e)});o?(g.innerHTML=o.__html||"",_()):l?(g.textContent="string"==typeof l?l:Array.isArray(l)?l.join(""):"",_()):t&&(g.src=t,p.set(t,h)),(0,c.setAttributesFromProps)(g,e),"worker"===a&&g.setAttribute("type","text/partytown"),g.setAttribute("data-nscript",a),d&&(e=>{if(s.default.preinit)return e.forEach(e=>{s.default.preinit(e,{as:"style"})});if("u">typeof window){let t=document.head;e.forEach(e=>{let r=document.createElement("link");r.type="text/css",r.rel="stylesheet",r.href=e,t.appendChild(r)})}})(d),document.body.appendChild(g)};function g(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>_(e))}):_(e)}function h(e){e.forEach(g),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");v.add(t)})}function C(e){let{id:t,src:r="",onLoad:n=()=>{},onReady:i=null,strategy:o="afterInteractive",onError:l,stylesheets:c,...p}=e,{updateScripts:g,scripts:h,getIsSsr:C,appDir:m,nonce:E}=(0,u.useContext)(d.HeadManagerContext);E=p.nonce||E;let y=(0,u.useRef)(!1);(0,u.useEffect)(()=>{let e=t||r;y.current||(i&&e&&v.has(e)&&i(),y.current=!0)},[i,t,r]);let b=(0,u.useRef)(!1);if((0,u.useEffect)(()=>{if(!b.current){if("afterInteractive"===o)_(e);else"lazyOnload"===o&&("complete"===document.readyState?(0,f.requestIdleCallback)(()=>_(e)):window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>_(e))}));b.current=!0}},[e,o]),("beforeInteractive"===o||"worker"===o)&&(g?(h[o]=(h[o]||[]).concat([{id:t,src:r,onLoad:n,onReady:i,onError:l,...p,nonce:E}]),g(h)):C&&C()?v.add(t||r):C&&!C()&&_({...e,nonce:E})),m){if(c&&c.forEach(e=>{s.default.preinit(e,{as:"style"})}),"beforeInteractive"===o)if(!r)return p.dangerouslySetInnerHTML&&(p.children=p.dangerouslySetInnerHTML.__html,delete p.dangerouslySetInnerHTML),(0,a.jsx)("script",{nonce:E,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([0,{...p,id:t}])})`}});else return s.default.preload(r,p.integrity?{as:"script",integrity:p.integrity,nonce:E,crossOrigin:p.crossOrigin}:{as:"script",nonce:E,crossOrigin:p.crossOrigin}),(0,a.jsx)("script",{nonce:E,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${JSON.stringify([r,{...p,id:t}])})`}});"afterInteractive"===o&&r&&s.default.preload(r,p.integrity?{as:"script",integrity:p.integrity,nonce:E,crossOrigin:p.crossOrigin}:{as:"script",nonce:E,crossOrigin:p.crossOrigin})}return null}Object.defineProperty(C,"__nextScript",{value:!0});let m=C;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},3303,(e,t,r)=>{t.exports=e.r(79520)},41895,e=>{"use strict";var t=e.i(92448);e.i(38821);var r=e.i(75369);let n=new Set;var i=e.i(70703),o=e.i(18566),l=e.i(347),a=e.i(71645);let s="u">typeof window?a.default.useLayoutEffect:a.default.useEffect,u=a.default.createContext(void 0);u.displayName="ClerkNextOptionsCtx";let d=()=>{let e=a.default.useContext(u);return null==e?void 0:e.value},c=e=>{let{children:t,options:r}=e;return a.default.createElement(u.Provider,{value:{value:r}},t)};var f=e.i(27085);e.i(97651);var p=e.i(99656),v=e.i(3303);function _(e){let{publishableKey:t,clerkJSUrl:r,clerkJSVersion:n,clerkJSVariant:i,nonce:o}=d(),{domain:l,proxyUrl:s}=(0,f.useClerk)();if(!t)return null;let u={domain:l,proxyUrl:s,publishableKey:t,clerkJSUrl:r,clerkJSVersion:n,clerkJSVariant:i,nonce:o},c=(0,p.clerkJsScriptUrl)(u),_="app"===e.router?"script":v.default;return a.default.createElement(_,{src:c,"data-clerk-js-script":!0,async:!0,defer:"pages"!==e.router&&void 0,crossOrigin:"anonymous",strategy:"pages"===e.router?"beforeInteractive":void 0,...(0,p.buildClerkJsScriptAttributes)(u)})}var g=e.i(78424),h=e.i(47167);e.i(22375);var C=e.i(15331),m=e.i(82524);let E=e=>{var t;return{...e,publishableKey:e.publishableKey||h.default.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY||"",clerkJSUrl:e.clerkJSUrl||h.default.env.NEXT_PUBLIC_CLERK_JS_URL,clerkJSVersion:e.clerkJSVersion||h.default.env.NEXT_PUBLIC_CLERK_JS_VERSION,proxyUrl:e.proxyUrl||h.default.env.NEXT_PUBLIC_CLERK_PROXY_URL||"",domain:e.domain||h.default.env.NEXT_PUBLIC_CLERK_DOMAIN||"",isSatellite:e.isSatellite||(0,C.isTruthy)(h.default.env.NEXT_PUBLIC_CLERK_IS_SATELLITE),signInUrl:e.signInUrl||h.default.env.NEXT_PUBLIC_CLERK_SIGN_IN_URL||"",signUpUrl:e.signUpUrl||h.default.env.NEXT_PUBLIC_CLERK_SIGN_UP_URL||"",signInForceRedirectUrl:e.signInForceRedirectUrl||h.default.env.NEXT_PUBLIC_CLERK_SIGN_IN_FORCE_REDIRECT_URL||"",signUpForceRedirectUrl:e.signUpForceRedirectUrl||h.default.env.NEXT_PUBLIC_CLERK_SIGN_UP_FORCE_REDIRECT_URL||"",signInFallbackRedirectUrl:e.signInFallbackRedirectUrl||h.default.env.NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL||"",signUpFallbackRedirectUrl:e.signUpFallbackRedirectUrl||h.default.env.NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL||"",afterSignInUrl:e.afterSignInUrl||h.default.env.NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL||"",afterSignUpUrl:e.afterSignUpUrl||h.default.env.NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL||"",newSubscriptionRedirectUrl:e.newSubscriptionRedirectUrl||h.default.env.NEXT_PUBLIC_CLERK_CHECKOUT_CONTINUE_URL||"",telemetry:null!=(t=e.telemetry)?t:{disabled:(0,C.isTruthy)(h.default.env.NEXT_PUBLIC_CLERK_TELEMETRY_DISABLED),debug:(0,C.isTruthy)(h.default.env.NEXT_PUBLIC_CLERK_TELEMETRY_DEBUG)},sdkMetadata:m.SDK_METADATA}};e.i(75372);var y=e.i(24440),b=e.i(22528);let w=()=>{var e,t;let r=(0,f.useClerk)(),{pagesRouter:n}=(0,b.usePagesRouter)();return null==(t=r.telemetry)||t.record((0,y.eventFrameworkMetadata)({router:n?"pages":"app",...(null==(e=null==globalThis?void 0:globalThis.next)?void 0:e.version)?{nextjsVersion:globalThis.next.version}:{}})),null};var x=e.i(89397),R=e.i(54539),T=e.i(95187);let L=(0,T.createServerReference)("00bb837ce43a7d86f8c7798297e4f9390c5add6d1c",T.callServer,void 0,T.findSourceMapURL,"invalidateCacheAction"),k=e=>{var t;return null!=window.__clerk_internal_navigations||(window.__clerk_internal_navigations={}),null!=(t=window.__clerk_internal_navigations)[e]||(t[e]={}),window.__clerk_internal_navigations[e]},I=e=>{let{windowNav:t,routerNav:r,name:n}=e,i=(0,o.usePathname)(),[l,s]=(0,a.useTransition)();t&&(k(n).fun=(e,i)=>new Promise(o=>{var l,a;null!=(l=k(n)).promisesBuffer||(l.promisesBuffer=[]),null==(a=k(n).promisesBuffer)||a.push(o),s(()=>{var n,o,l;(null==(n=null==i?void 0:i.__internal_metadata)?void 0:n.navigationType)==="internal"?t((null!=(l=null==(o=window.next)?void 0:o.version)?l:"")<"14.1.0"?history.state:null,"",e):r(e)})}));let u=()=>{var e;null==(e=k(n).promisesBuffer)||e.forEach(e=>e()),k(n).promisesBuffer=[]};return(0,a.useEffect)(()=>(u(),u),[]),(0,a.useEffect)(()=>{l||u()},[i,l]),(0,a.useCallback)((e,t)=>k(n).fun(e,t),[])},S=(0,i.default)(()=>e.A(98943).then(e=>e.KeylessCreatorOrReader)),P=e=>{let i,u;if(x.isNextWithUnstableServerActions){var f,p;let e=`Clerk:
|
|
2
|
+
Your current Next.js version (${l.default.version}) will be deprecated in the next major release of "@clerk/nextjs". Please upgrade to next@14.1.0 or later.`;(0,r.inBrowser)()?(f=e,n.has(f)||(n.add(f),console.warn(f))):(p=`
|
|
3
|
+
\x1b[43m----------
|
|
4
|
+
${e}
|
|
5
|
+
----------\x1b[0m
|
|
6
|
+
`,n.has(p)||(console.log(p),n.add(p)))}let{__unstable_invokeMiddlewareOnAuthStateChange:v=!0,children:h}=e,C=(0,o.useRouter)(),m=(i=(0,o.useRouter)(),I({windowNav:"u">typeof window?window.history.pushState.bind(window.history):void 0,routerNav:i.push.bind(i),name:"push"})),y=(u=(0,o.useRouter)(),I({windowNav:"u">typeof window?window.history.replaceState.bind(window.history):void 0,routerNav:u.replace.bind(u),name:"replace"})),[b,T]=(0,a.useTransition)();if(s(()=>{g.canUseKeyless&&(0,R.detectKeylessEnvDriftAction)()},[]),d())return e.children;(0,a.useEffect)(()=>{var e;b||null==(e=window.__clerk_internal_invalidateCachePromise)||e.call(window)},[b]),s(()=>{window.__unstable__onBeforeSetActive=e=>new Promise(t=>{var r;window.__clerk_internal_invalidateCachePromise=t;let n=(null==(r=null==window?void 0:window.next)?void 0:r.version)||"";n.startsWith("13")?T(()=>{C.refresh()}):(n.startsWith("15")||n.startsWith("16"))&&"sign-out"===e?t():L().then(()=>t())}),window.__unstable__onAfterSetActive=()=>{if(v)return C.refresh()}},[]);let k=E({...e,routerPush:m,routerReplace:y});return a.default.createElement(c,{options:k},a.default.createElement(t.ClerkProvider,{...k},a.default.createElement(w,null),a.default.createElement(_,{router:"app"}),h))},U=e=>{let{children:t,disableKeyless:r=!1,...n}=e;return E(n).publishableKey||!g.canUseKeyless||r?a.default.createElement(P,{...n},t):a.default.createElement(S,null,a.default.createElement(P,{...n},t))};e.s(["ClientClerkProvider",()=>U],41895)},46770,e=>{"use strict";var t=e.i(43476),r=e.i(71645);let n=(0,r.createContext)({theme:"dark",toggleTheme:()=>{}});function i(e){let t=document.documentElement;t.classList.remove("dark","light"),t.classList.add(e)}function o({children:e}){let[o,l]=(0,r.useState)("dark");(0,r.useEffect)(()=>{let e=localStorage.getItem("conductor-theme");if("light"===e||"dark"===e){l(e),i(e);return}i("dark")},[]);let a=(0,r.useCallback)(()=>{l(e=>{let t="dark"===e?"light":"dark";return localStorage.setItem("conductor-theme",t),i(t),t})},[]);return(0,t.jsx)(n.Provider,{value:{theme:o,toggleTheme:a},children:e})}function l(){return(0,r.useContext)(n)}e.s(["ThemeProvider",()=>o,"useTheme",()=>l])},52482,e=>{"use strict";let t;var r=e.i(43476),n=e.i(71645),i=e.i(81140),o=e.i(20783),l=e.i(30030),a=e.i(26330),s=e.i(10772),u=e.i(53660),d=e.i(74606),c=e.i(96626),f=e.i(48425),p=Symbol("radix.slottable"),v=e.i(69340),_=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),g=n.forwardRef((e,t)=>(0,r.jsx)(f.Primitive.span,{...e,ref:t,style:{..._,...e.style}}));g.displayName="VisuallyHidden";var[h,C]=(0,l.createContextScope)("Tooltip",[u.createPopperScope]),m=(0,u.createPopperScope)(),E="TooltipProvider",y="tooltip.open",[b,w]=h(E),x=e=>{let{__scopeTooltip:t,delayDuration:i=700,skipDelayDuration:o=300,disableHoverableContent:l=!1,children:a}=e,s=n.useRef(!0),u=n.useRef(!1),d=n.useRef(0);return n.useEffect(()=>{let e=d.current;return()=>window.clearTimeout(e)},[]),(0,r.jsx)(b,{scope:t,isOpenDelayedRef:s,delayDuration:i,onOpen:n.useCallback(()=>{window.clearTimeout(d.current),s.current=!1},[]),onClose:n.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>s.current=!0,o)},[o]),isPointerInTransitRef:u,onPointerInTransitChange:n.useCallback(e=>{u.current=e},[]),disableHoverableContent:l,children:a})};x.displayName=E;var R="Tooltip",[T,L]=h(R),k=e=>{let{__scopeTooltip:t,children:i,open:o,defaultOpen:l,onOpenChange:a,disableHoverableContent:d,delayDuration:c}=e,f=w(R,e.__scopeTooltip),p=m(t),[_,g]=n.useState(null),h=(0,s.useId)(),C=n.useRef(0),E=d??f.disableHoverableContent,b=c??f.delayDuration,x=n.useRef(!1),[L,k]=(0,v.useControllableState)({prop:o,defaultProp:l??!1,onChange:e=>{e?(f.onOpen(),document.dispatchEvent(new CustomEvent(y))):f.onClose(),a?.(e)},caller:R}),I=n.useMemo(()=>L?x.current?"delayed-open":"instant-open":"closed",[L]),S=n.useCallback(()=>{window.clearTimeout(C.current),C.current=0,x.current=!1,k(!0)},[k]),P=n.useCallback(()=>{window.clearTimeout(C.current),C.current=0,k(!1)},[k]),U=n.useCallback(()=>{window.clearTimeout(C.current),C.current=window.setTimeout(()=>{x.current=!0,k(!0),C.current=0},b)},[b,k]);return n.useEffect(()=>()=>{C.current&&(window.clearTimeout(C.current),C.current=0)},[]),(0,r.jsx)(u.Root,{...p,children:(0,r.jsx)(T,{scope:t,contentId:h,open:L,stateAttribute:I,trigger:_,onTriggerChange:g,onTriggerEnter:n.useCallback(()=>{f.isOpenDelayedRef.current?U():S()},[f.isOpenDelayedRef,U,S]),onTriggerLeave:n.useCallback(()=>{E?P():(window.clearTimeout(C.current),C.current=0)},[P,E]),onOpen:S,onClose:P,disableHoverableContent:E,children:i})})};k.displayName=R;var I="TooltipTrigger",S=n.forwardRef((e,t)=>{let{__scopeTooltip:l,...a}=e,s=L(I,l),d=w(I,l),c=m(l),p=n.useRef(null),v=(0,o.useComposedRefs)(t,p,s.onTriggerChange),_=n.useRef(!1),g=n.useRef(!1),h=n.useCallback(()=>_.current=!1,[]);return n.useEffect(()=>()=>document.removeEventListener("pointerup",h),[h]),(0,r.jsx)(u.Anchor,{asChild:!0,...c,children:(0,r.jsx)(f.Primitive.button,{"aria-describedby":s.open?s.contentId:void 0,"data-state":s.stateAttribute,...a,ref:v,onPointerMove:(0,i.composeEventHandlers)(e.onPointerMove,e=>{"touch"!==e.pointerType&&(g.current||d.isPointerInTransitRef.current||(s.onTriggerEnter(),g.current=!0))}),onPointerLeave:(0,i.composeEventHandlers)(e.onPointerLeave,()=>{s.onTriggerLeave(),g.current=!1}),onPointerDown:(0,i.composeEventHandlers)(e.onPointerDown,()=>{s.open&&s.onClose(),_.current=!0,document.addEventListener("pointerup",h,{once:!0})}),onFocus:(0,i.composeEventHandlers)(e.onFocus,()=>{_.current||s.onOpen()}),onBlur:(0,i.composeEventHandlers)(e.onBlur,s.onClose),onClick:(0,i.composeEventHandlers)(e.onClick,s.onClose)})})});S.displayName=I;var P="TooltipPortal",[U,O]=h(P,{forceMount:void 0}),N=e=>{let{__scopeTooltip:t,forceMount:n,children:i,container:o}=e,l=L(P,t);return(0,r.jsx)(U,{scope:t,forceMount:n,children:(0,r.jsx)(c.Presence,{present:n||l.open,children:(0,r.jsx)(d.Portal,{asChild:!0,container:o,children:i})})})};N.displayName=P;var A="TooltipContent",j=n.forwardRef((e,t)=>{let n=O(A,e.__scopeTooltip),{forceMount:i=n.forceMount,side:o="top",...l}=e,a=L(A,e.__scopeTooltip);return(0,r.jsx)(c.Presence,{present:i||a.open,children:a.disableHoverableContent?(0,r.jsx)(F,{side:o,...l,ref:t}):(0,r.jsx)(B,{side:o,...l,ref:t})})}),B=n.forwardRef((e,t)=>{let i=L(A,e.__scopeTooltip),l=w(A,e.__scopeTooltip),a=n.useRef(null),s=(0,o.useComposedRefs)(t,a),[u,d]=n.useState(null),{trigger:c,onClose:f}=i,p=a.current,{onPointerInTransitChange:v}=l,_=n.useCallback(()=>{d(null),v(!1)},[v]),g=n.useCallback((e,t)=>{let r,n=e.currentTarget,i={x:e.clientX,y:e.clientY},o=function(e,t){let r=Math.abs(t.top-e.y),n=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(r,n,i,o)){case o:return"left";case i:return"right";case r:return"top";case n:return"bottom";default:throw Error("unreachable")}}(i,n.getBoundingClientRect());d(((r=[...function(e,t,r=5){let n=[];switch(t){case"top":n.push({x:e.x-r,y:e.y+r},{x:e.x+r,y:e.y+r});break;case"bottom":n.push({x:e.x-r,y:e.y-r},{x:e.x+r,y:e.y-r});break;case"left":n.push({x:e.x+r,y:e.y-r},{x:e.x+r,y:e.y+r});break;case"right":n.push({x:e.x-r,y:e.y-r},{x:e.x-r,y:e.y+r})}return n}(i,o),...function(e){let{top:t,right:r,bottom:n,left:i}=e;return[{x:i,y:t},{x:r,y:t},{x:r,y:n},{x:i,y:n}]}(t.getBoundingClientRect())].slice()).sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:1*!!(e.y>t.y)),function(e){if(e.length<=1)return e.slice();let t=[];for(let r=0;r<e.length;r++){let n=e[r];for(;t.length>=2;){let e=t[t.length-1],r=t[t.length-2];if((e.x-r.x)*(n.y-r.y)>=(e.y-r.y)*(n.x-r.x))t.pop();else break}t.push(n)}t.pop();let r=[];for(let t=e.length-1;t>=0;t--){let n=e[t];for(;r.length>=2;){let e=r[r.length-1],t=r[r.length-2];if((e.x-t.x)*(n.y-t.y)>=(e.y-t.y)*(n.x-t.x))r.pop();else break}r.push(n)}return(r.pop(),1===t.length&&1===r.length&&t[0].x===r[0].x&&t[0].y===r[0].y)?t:t.concat(r)}(r))),v(!0)},[v]);return n.useEffect(()=>()=>_(),[_]),n.useEffect(()=>{if(c&&p){let e=e=>g(e,p),t=e=>g(e,c);return c.addEventListener("pointerleave",e),p.addEventListener("pointerleave",t),()=>{c.removeEventListener("pointerleave",e),p.removeEventListener("pointerleave",t)}}},[c,p,g,_]),n.useEffect(()=>{if(u){let e=e=>{let t=e.target,r={x:e.clientX,y:e.clientY},n=c?.contains(t)||p?.contains(t),i=!function(e,t){let{x:r,y:n}=e,i=!1;for(let e=0,o=t.length-1;e<t.length;o=e++){let l=t[e],a=t[o],s=l.x,u=l.y,d=a.x,c=a.y;u>n!=c>n&&r<(d-s)*(n-u)/(c-u)+s&&(i=!i)}return i}(r,u);n?_():i&&(_(),f())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[c,p,u,f,_]),(0,r.jsx)(F,{...e,ref:s})}),[M,K]=h(R,{isInside:!1}),D=((t=({children:e})=>(0,r.jsx)(r.Fragment,{children:e})).displayName="TooltipContent.Slottable",t.__radixId=p,t),F=n.forwardRef((e,t)=>{let{__scopeTooltip:i,children:o,"aria-label":l,onEscapeKeyDown:s,onPointerDownOutside:d,...c}=e,f=L(A,i),p=m(i),{onClose:v}=f;return n.useEffect(()=>(document.addEventListener(y,v),()=>document.removeEventListener(y,v)),[v]),n.useEffect(()=>{if(f.trigger){let e=e=>{let t=e.target;t?.contains(f.trigger)&&v()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[f.trigger,v]),(0,r.jsx)(a.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:d,onFocusOutside:e=>e.preventDefault(),onDismiss:v,children:(0,r.jsxs)(u.Content,{"data-state":f.stateAttribute,...p,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,r.jsx)(D,{children:o}),(0,r.jsx)(M,{scope:i,isInside:!0,children:(0,r.jsx)(g,{id:f.contentId,role:"tooltip",children:l||o})})]})})});j.displayName=A;var X="TooltipArrow";n.forwardRef((e,t)=>{let{__scopeTooltip:n,...i}=e,o=m(n);return K(X,n).isInside?null:(0,r.jsx)(u.Arrow,{...o,...i,ref:t})}).displayName=X;var H=e.i(18620);let z=(0,n.forwardRef)(({className:e,sideOffset:t=8,...n},i)=>(0,r.jsx)(N,{children:(0,r.jsx)(j,{ref:i,sideOffset:t,className:(0,H.cn)("z-50 rounded-[var(--radius-xs)] border border-[var(--border-strong)] bg-[var(--bg-panel)] px-2 py-1.5","text-[11px] text-[var(--text-normal)] shadow-[var(--shadow-soft)]","animate-in fade-in-0 zoom-in-95",e),...n})}));function J({label:e,side:t="top",children:n}){return(0,r.jsxs)(k,{children:[(0,r.jsx)(S,{asChild:!0,children:n}),(0,r.jsx)(z,{side:t,children:e})]})}z.displayName="TooltipContent",e.s(["SimpleTooltip",()=>J,"Tooltip",0,k,"TooltipContent",0,z,"TooltipProvider",0,x,"TooltipTrigger",0,S],52482)}]);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,93289,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(18566),a=e.i(75254);let s=(0,a.default)("file-code",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}]]),l=(0,a.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),i=(0,a.default)("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]),o=(0,a.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);var c=e.i(81140),d=e.i(30030),u=e.i(42727),m=e.i(96626),x=e.i(48425),p=e.i(86318),h=e.i(69340),f=e.i(10772),v="Tabs",[g,b]=(0,d.createContextScope)(v,[u.createRovingFocusGroupScope]),w=(0,u.createRovingFocusGroupScope)(),[y,k]=g(v),j=r.forwardRef((e,r)=>{let{__scopeTabs:n,value:a,onValueChange:s,defaultValue:l,orientation:i="horizontal",dir:o,activationMode:c="automatic",...d}=e,u=(0,p.useDirection)(o),[m,g]=(0,h.useControllableState)({prop:a,onChange:s,defaultProp:l??"",caller:v});return(0,t.jsx)(y,{scope:n,baseId:(0,f.useId)(),value:m,onValueChange:g,orientation:i,dir:u,activationMode:c,children:(0,t.jsx)(x.Primitive.div,{dir:u,"data-orientation":i,...d,ref:r})})});j.displayName=v;var N="TabsList",C=r.forwardRef((e,r)=>{let{__scopeTabs:n,loop:a=!0,...s}=e,l=k(N,n),i=w(n);return(0,t.jsx)(u.Root,{asChild:!0,...i,orientation:l.orientation,dir:l.dir,loop:a,children:(0,t.jsx)(x.Primitive.div,{role:"tablist","aria-orientation":l.orientation,...s,ref:r})})});C.displayName=N;var S="TabsTrigger",E=r.forwardRef((e,r)=>{let{__scopeTabs:n,value:a,disabled:s=!1,...l}=e,i=k(S,n),o=w(n),d=T(i.baseId,a),m=L(i.baseId,a),p=a===i.value;return(0,t.jsx)(u.Item,{asChild:!0,...o,focusable:!s,active:p,children:(0,t.jsx)(x.Primitive.button,{type:"button",role:"tab","aria-selected":p,"aria-controls":m,"data-state":p?"active":"inactive","data-disabled":s?"":void 0,disabled:s,id:d,...l,ref:r,onMouseDown:(0,c.composeEventHandlers)(e.onMouseDown,e=>{s||0!==e.button||!1!==e.ctrlKey?e.preventDefault():i.onValueChange(a)}),onKeyDown:(0,c.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&i.onValueChange(a)}),onFocus:(0,c.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==i.activationMode;p||s||!e||i.onValueChange(a)})})})});E.displayName=S;var R="TabsContent",M=r.forwardRef((e,n)=>{let{__scopeTabs:a,value:s,forceMount:l,children:i,...o}=e,c=k(R,a),d=T(c.baseId,s),u=L(c.baseId,s),p=s===c.value,h=r.useRef(p);return r.useEffect(()=>{let e=requestAnimationFrame(()=>h.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,t.jsx)(m.Presence,{present:l||p,children:({present:r})=>(0,t.jsx)(x.Primitive.div,{"data-state":p?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":d,hidden:!r,id:u,tabIndex:0,...o,ref:n,style:{...e.style,animationDuration:h.current?"0s":void 0},children:r&&i})})});function T(e,t){return`${e}-trigger-${t}`}function L(e,t){return`${e}-content-${t}`}M.displayName=R;var A=e.i(18620);let $=(0,r.forwardRef)(({className:e,...r},n)=>(0,t.jsx)(C,{ref:n,className:(0,A.cn)("inline-flex max-w-full items-center gap-0.5 overflow-x-auto rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] p-0.5 whitespace-nowrap touch-pan-x [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",e),...r}));$.displayName="TabsList";let F=(0,r.forwardRef)(({className:e,...r},n)=>(0,t.jsx)(E,{ref:n,className:(0,A.cn)("inline-flex min-h-[34px] shrink-0 items-center gap-1.5 rounded-[3px] px-2.5 py-1.5 text-[12px] text-[var(--vk-text-muted)]","data-[state=active]:bg-[var(--vk-bg-active)] data-[state=active]:text-[var(--vk-text-normal)]","hover:text-[var(--vk-text-normal)]","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--vk-orange)]",e),...r}));F.displayName="TabsTrigger";let D=(0,r.forwardRef)(({className:e,...r},n)=>(0,t.jsx)(M,{ref:n,className:(0,A.cn)("focus-visible:outline-none",e),...r}));D.displayName="TabsContent";var P=e.i(90993),_=e.i(17442),I=e.i(97878),B=e.i(52808);function z(e,t){if(e===t)return!0;if(!e||!t||e.id!==t.id||e.projectId!==t.projectId||e.status!==t.status||e.activity!==t.activity||e.branch!==t.branch||e.issueId!==t.issueId||e.summary!==t.summary||e.createdAt!==t.createdAt||e.lastActivityAt!==t.lastActivityAt)return!1;let r=Object.keys(e.metadata),n=Object.keys(t.metadata);if(r.length!==n.length)return!1;for(let n of r)if(e.metadata[n]!==t.metadata[n])return!1;return e.pr===t.pr||!!e.pr&&!!t.pr&&e.pr.number===t.pr.number&&e.pr.url===t.pr.url&&e.pr.title===t.pr.title&&e.pr.branch===t.pr.branch&&e.pr.baseBranch===t.pr.baseBranch&&e.pr.isDraft===t.pr.isDraft&&e.pr.state===t.pr.state&&e.pr.ciStatus===t.pr.ciStatus&&e.pr.reviewDecision===t.pr.reviewDecision&&e.pr.previewUrl===t.pr.previewUrl&&e.pr.mergeability.mergeable===t.pr.mergeability.mergeable&&e.pr.mergeability.ciPassing===t.pr.mergeability.ciPassing&&e.pr.mergeability.approved===t.pr.mergeability.approved&&e.pr.mergeability.noConflicts===t.pr.mergeability.noConflicts&&e.pr.mergeability.blockers.length===t.pr.mergeability.blockers.length&&e.pr.mergeability.blockers.every((e,r)=>e===t.pr?.mergeability.blockers[r])}var H=e.i(43531);let U=(0,a.default)("clock-3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]]);var O=e.i(74886);let W=(0,a.default)("dollar-sign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);var q=e.i(90272),Y=e.i(55716);let K=(0,a.default)("list-checks",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]]),V=(0,a.default)("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);var X=e.i(69242);let G={archived:"default",queued:"info",running:"success",working:"success",done:"default",merged:"success",errored:"error",stuck:"warning",killed:"error",needs_input:"warning"};function J({text:e}){let[n,a]=(0,r.useState)(!1);async function s(){try{await navigator.clipboard.writeText(e),a(!0),window.setTimeout(()=>a(!1),1400)}catch{}}return(0,t.jsxs)("button",{type:"button",onClick:()=>void s(),className:"inline-flex items-center gap-1 font-mono text-[12px] text-[var(--text-normal)] transition-colors hover:text-[var(--text-strong)]",children:[(0,t.jsx)("span",{className:"truncate",children:e}),n?(0,t.jsx)(H.Check,{className:"h-3 w-3 text-[var(--status-ready)]"}):(0,t.jsx)(O.Copy,{className:"h-3 w-3 text-[var(--text-faint)]"})]})}function Q(e){if(!e)return"-";let t=new Date(e);return Number.isNaN(t.getTime())?"-":t.toLocaleString()}function Z(e,t){let r=e.metadata[t];if("string"==typeof r&&r.trim().length>0)return r}function ee(e){if(!e)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>0?t:null}function et({session:e}){let n=(0,r.useMemo)(()=>Z(e,"task")??Z(e,"prompt")??("string"==typeof e.task?e.task:"")??("string"==typeof e.prompt?e.prompt:""),[e]),a=(0,r.useMemo)(()=>Z(e,"agent")??("string"==typeof e.agent?e.agent:""),[e]),s=(0,r.useMemo)(()=>Z(e,"worktree")??Z(e,"path")??("string"==typeof e.worktree?e.worktree:""),[e]),l=(0,r.useMemo)(()=>({created:Q(e.createdAt),started:Q(Z(e,"startedAt")??e.startedAt),finished:Q(Z(e,"finishedAt")??e.finishedAt),duration:function(e,t){if(!e||!t)return"-";let r=new Date(e).getTime(),n=new Date(t).getTime();if(!Number.isFinite(r)||!Number.isFinite(n)||n<r)return"-";let a=Math.floor((n-r)/6e4);if(a<1)return"<1m";if(a<60)return`${a}m`;let s=Math.floor(a/60);return`${s}h ${a%60}m`}(Z(e,"startedAt")??e.startedAt,Z(e,"finishedAt")??e.finishedAt),cost:function(e){if("number"==typeof e.cost)return e.cost;let t=e.metadata;if(!t||"object"!=typeof t)return 0;let r=t.cost;if("string"!=typeof r)return 0;try{let e=JSON.parse(r),t="number"==typeof e.estimatedCostUsd?e.estimatedCostUsd:0,n="number"==typeof e.totalUSD?e.totalUSD:0;return t??n}catch{return 0}}(e)}),[e]),i=(0,r.useMemo)(()=>ee(Z(e,"queuePosition")),[e]),o=(0,r.useMemo)(()=>ee(Z(e,"queueDepth")),[e]),c=(0,r.useMemo)(()=>Z(e,"recoveryState")??"",[e]),d=(0,r.useMemo)(()=>"queued"===e.status?i?`Waiting in queue at position ${i}${o?` of ${o}`:""}.`:"Waiting in the launch queue.":"requeued_after_restart"===c?"This session was recovered after a backend restart and requeued automatically.":"reattach_pending"===c?"Reattaching the tmux-managed runtime after backend restart.":"detached_runtime"===c?"The backend restarted while the agent may still be running. Kill or archive this session before resuming.":"resume_required"===c?"This session was recovered after a backend restart. Send a message to resume in the same workspace.":"",[o,i,c,e.status]);return(0,t.jsxs)("div",{className:"space-y-3",children:[n&&(0,t.jsxs)(P.Card,{children:[(0,t.jsxs)(P.CardHeader,{children:[(0,t.jsx)(K,{className:"h-4 w-4 text-[var(--accent)]"}),(0,t.jsx)("span",{className:"text-[12px] font-semibold uppercase tracking-[0.08em] text-[var(--text-faint)]",children:"Task Brief"})]}),(0,t.jsx)(P.CardContent,{children:(0,t.jsx)("p",{className:"whitespace-pre-wrap text-[13px] leading-relaxed text-[var(--text-normal)]",children:n})})]}),("queued"===e.status||c)&&(0,t.jsxs)(P.Card,{children:[(0,t.jsxs)(P.CardHeader,{children:[(0,t.jsx)(U,{className:"h-4 w-4 text-[var(--accent)]"}),(0,t.jsx)("span",{className:"text-[12px] font-semibold uppercase tracking-[0.08em] text-[var(--text-faint)]",children:"Launch State"})]}),(0,t.jsxs)(P.CardContent,{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(_.Badge,{variant:G[e.status]??"default",children:e.status}),i?(0,t.jsxs)(_.Badge,{variant:"info",children:["Queue #",i,o?` / ${o}`:""]}):null,c?(0,t.jsx)(_.Badge,{variant:"warning",children:c.replaceAll("_"," ")}):null]}),d?(0,t.jsx)("p",{className:"text-[13px] leading-relaxed text-[var(--text-normal)]",children:d}):null]})]}),(0,t.jsxs)("div",{className:"space-y-3",children:[(e.branch||s)&&(0,t.jsxs)(P.Card,{children:[(0,t.jsxs)(P.CardHeader,{children:[(0,t.jsx)(Y.GitBranch,{className:"h-4 w-4 text-[var(--text-faint)]"}),(0,t.jsx)("span",{className:"text-[12px] font-semibold text-[var(--text-normal)]",children:"Workspace"})]}),(0,t.jsxs)(P.CardContent,{className:"space-y-2",children:[e.branch&&(0,t.jsxs)("div",{className:"surface-panel flex items-center gap-2 rounded-[var(--radius-sm)] border px-2.5 py-2",children:[(0,t.jsx)(Y.GitBranch,{className:"h-3.5 w-3.5 text-[var(--text-faint)]"}),(0,t.jsx)(J,{text:e.branch})]}),s&&(0,t.jsxs)("div",{className:"surface-panel flex items-center gap-2 rounded-[var(--radius-sm)] border px-2.5 py-2",children:[(0,t.jsx)(q.FolderGit2,{className:"h-3.5 w-3.5 text-[var(--text-faint)]"}),(0,t.jsx)(J,{text:s})]})]})]}),(0,t.jsxs)(P.Card,{children:[(0,t.jsxs)(P.CardHeader,{children:[(0,t.jsx)(X.AgentTileIcon,{seed:{label:a||"agent"},className:"h-6 w-6"}),(0,t.jsx)("span",{className:"text-[12px] font-semibold text-[var(--text-normal)]",children:"Session Status"})]}),(0,t.jsxs)(P.CardContent,{className:"space-y-2.5",children:[(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,t.jsx)(_.Badge,{variant:G[e.status]??"default",children:e.status}),e.activity&&(0,t.jsx)(_.Badge,{variant:"info",children:e.activity}),e.attention&&(0,t.jsx)(_.Badge,{variant:"warning",children:e.attention})]}),(0,t.jsx)("p",{className:"text-[13px] text-[var(--text-normal)]",children:a||"Unknown agent"})]})]}),(0,t.jsxs)(P.Card,{children:[(0,t.jsxs)(P.CardHeader,{children:[(0,t.jsx)(U,{className:"h-4 w-4 text-[var(--text-faint)]"}),(0,t.jsx)("span",{className:"text-[12px] font-semibold text-[var(--text-normal)]",children:"Timeline"})]}),(0,t.jsxs)(P.CardContent,{className:"space-y-2 text-[12px] text-[var(--text-muted)]",children:[(0,t.jsx)(er,{icon:(0,t.jsx)(V,{className:"h-3.5 w-3.5"}),label:"Created",value:l.created}),(0,t.jsx)(er,{icon:(0,t.jsx)(V,{className:"h-3.5 w-3.5"}),label:"Started",value:l.started}),(0,t.jsx)(er,{icon:(0,t.jsx)(V,{className:"h-3.5 w-3.5"}),label:"Finished",value:l.finished}),(0,t.jsx)(er,{icon:(0,t.jsx)(U,{className:"h-3.5 w-3.5"}),label:"Duration",value:l.duration}),(0,t.jsx)(er,{icon:(0,t.jsx)(W,{className:"h-3.5 w-3.5"}),label:"Estimated Cost",value:l.cost>0?`$${l.cost.toFixed(2)}`:"$0.00"})]})]})]})]})}function er({icon:e,label:r,value:n}){return(0,t.jsxs)("div",{className:"surface-panel flex items-center gap-2 rounded-[var(--radius-sm)] border px-2.5 py-2",children:[(0,t.jsx)("span",{className:"text-[var(--text-faint)]",children:e}),(0,t.jsx)("span",{className:"min-w-[70px] text-[var(--text-faint)]",children:r}),(0,t.jsx)("span",{className:"ml-auto truncate text-right font-mono text-[11px] text-[var(--text-normal)]",children:n})]})}var en=e.i(64659);let ea=(0,a.default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]),es=(0,a.default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),el=(0,a.default)("file-code-corner",[["path",{d:"M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35",key:"1wthlu"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m5 16-3 3 3 3",key:"331omg"}],["path",{d:"m9 22 3-3-3-3",key:"lsp7cz"}]]),ei=(0,a.default)("file-plus-corner",[["path",{d:"M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35",key:"17jvcc"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M14 19h6",key:"bvotb8"}],["path",{d:"M17 16v6",key:"18yu1i"}]]),eo=(0,a.default)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);var ec=e.i(75505);let ed=(0,a.default)("git-compare",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]]),eu=(0,a.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);var em=e.i(7233),ex=e.i(16715),ep=e.i(55436);let eh=(0,a.default)("text-wrap",[["path",{d:"m16 16-3 3 3 3",key:"117b85"}],["path",{d:"M3 12h14.5a1 1 0 0 1 0 7H13",key:"18xa6z"}],["path",{d:"M3 19h6",key:"1ygdsz"}],["path",{d:"M3 5h18",key:"1u36vt"}]]);var ef=e.i(37727);let ev={hasDiff:!1,generatedAt:"",source:"not-found",truncated:!1,files:[],untracked:[]};function eg(e){return"modified"===e||"added"===e||"deleted"===e||"renamed"===e||"copy"===e||"binary"===e?e:"unknown"}function eb(e){return"meta"===e||"hunk"===e||"context"===e||"add"===e||"remove"===e||"info"===e?e:"context"}function ew(e){return"string"!=typeof e?"":e.trim().replace(/^\/+/,"").replace(/\/+/g,"/")||"unknown-file"}function ey(e){let t=new Map;for(let r of e.files??[]){let e=ew(r.path),n={path:e,status:eg(r.status),additions:Number.isFinite(r.additions)?Math.max(0,r.additions):0,deletions:Number.isFinite(r.deletions)?Math.max(0,r.deletions):0,lines:Array.isArray(r.lines)?r.lines.map(e=>({kind:eb(e.kind),oldLine:"number"==typeof e.oldLine&&Number.isFinite(e.oldLine)?e.oldLine:null,newLine:"number"==typeof e.newLine&&Number.isFinite(e.newLine)?e.newLine:null,text:"string"==typeof e.text?e.text:""})):[],untracked:!!r.untracked};t.set(e,n)}for(let r of e.untracked??[]){let e=ew(r);t.has(e)||t.set(e,{path:e,status:"added",additions:0,deletions:0,lines:[],untracked:!0})}return[...t.values()].sort((e,t)=>e.path.localeCompare(t.path,void 0,{sensitivity:"base"}))}function ek(e,t){return{name:e,path:t,dirs:new Map,files:[]}}function ej(e){return"working-tree"===e?"Working Tree":"remote-pr"===e?"Remote PR":"Not Found"}function eN(e){return"add"===e?"text-[var(--vk-green)]":"remove"===e?"text-[var(--vk-red)]":"hunk"===e?"text-[var(--status-working)]":"meta"===e||"info"===e?"text-[var(--vk-text-muted)]":"text-[var(--vk-text-normal)]"}function eC({sessionId:e}){let n=encodeURIComponent(e),[a,s]=(0,r.useState)(ev),[l,i]=(0,r.useState)(!0),[o,c]=(0,r.useState)(null),[d,u]=(0,r.useState)("changes"),[m,x]=(0,r.useState)(""),[p,h]=(0,r.useState)(""),[f,v]=(0,r.useState)(!1),[g,b]=(0,r.useState)(null),[w,y]=(0,r.useState)(null),[k,j]=(0,r.useState)({}),[N,C]=(0,r.useState)({}),[S,E]=(0,r.useState)([]),[R,M]=(0,r.useState)(!1),[T,L]=(0,r.useState)(!1),[A,$]=(0,r.useState)(null),[F,D]=(0,r.useState)(!1),[P,z]=(0,r.useState)(""),[H,U]=(0,r.useState)(!1),[O,W]=(0,r.useState)(!1),[q,Y]=(0,r.useState)(0),[K,V]=(0,r.useState)(!1),[X,G]=(0,r.useState)(null),J=(0,r.useRef)(!0),Q=(0,r.useRef)({}),Z=(0,r.useRef)(null),ee=(0,r.useRef)(!1),et=(0,r.useCallback)(e=>ey(e),[]),er=(0,r.useCallback)(async()=>{try{let e=await fetch(`/api/sessions/${n}/diff`,{cache:"no-store"});if(!e.ok){if(404===e.status){if(!J.current)return;s(ev),c(null);return}let t=`Failed to fetch diff (${e.status})`;try{let r=await e.json();"string"==typeof r.error&&r.error.length>0&&(t=r.error)}catch{}throw Error(t)}let t=await e.json();if(!J.current)return;if(t.error)throw Error(t.error);let r={hasDiff:!!t.hasDiff,generatedAt:"string"==typeof t.generatedAt?t.generatedAt:"",source:"working-tree"===t.source||"remote-pr"===t.source?t.source:"not-found",truncated:!!t.truncated,files:Array.isArray(t.files)?t.files.map(e=>({path:ew(e.path),status:eg(e.status),additions:Number.isFinite(e.additions)?Math.max(0,Number(e.additions)):0,deletions:Number.isFinite(e.deletions)?Math.max(0,Number(e.deletions)):0,lines:Array.isArray(e.lines)?e.lines.map(e=>({kind:eb(e.kind),oldLine:"number"==typeof e.oldLine&&Number.isFinite(e.oldLine)?e.oldLine:null,newLine:"number"==typeof e.newLine&&Number.isFinite(e.newLine)?e.newLine:null,text:"string"==typeof e.text?e.text:""})):[]})):[],untracked:Array.isArray(t.untracked)?t.untracked.filter(e=>"string"==typeof e):[]},a=et(r);s(e=>!function(e,t){if(e.hasDiff!==t.hasDiff||e.generatedAt!==t.generatedAt||e.source!==t.source||e.truncated!==t.truncated||!function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0;r<e.length;r+=1)if(e[r]!==t[r])return!1;return!0}(e.untracked,t.untracked)||e.files.length!==t.files.length)return!1;for(let r=0;r<e.files.length;r+=1){let n=e.files[r],a=t.files[r];if(n.path!==a.path||n.status!==a.status||n.additions!==a.additions||n.deletions!==a.deletions||!!n.untracked!=!!a.untracked||n.lines.length!==a.lines.length)return!1;for(let e=0;e<n.lines.length;e+=1){let t=n.lines[e],r=a.lines[e];if(t.kind!==r.kind||t.oldLine!==r.oldLine||t.newLine!==r.newLine||t.text!==r.text)return!1}}return!0}(e,r)?r:e),b(e=>e&&a.some(t=>t.path===e)?e:a[0]?.path??null),j(e=>{let t={...e};for(let e of a.slice(0,10))null==t[e.path]&&(t[e.path]=!0);return t}),c(null)}catch(e){J.current&&(s(ev),c(e instanceof Error?e.message:"Failed to load diff"))}finally{J.current&&i(!1)}},[n,et]),eC=(0,r.useCallback)(async()=>{L(!0);try{let e=await fetch(`/api/sessions/${n}/files`,{cache:"no-store"});if(!e.ok){if(404===e.status){if(!J.current)return;E([]),M(!0),D(!1),$(null);return}let t=`Failed to load workspace files (${e.status})`;try{let r=await e.json();"string"==typeof r.error&&r.error.length>0&&(t=r.error)}catch{}throw Error(t)}let t=await e.json();if(!J.current)return;let r=Array.isArray(t.files)?t.files.filter(e=>"string"==typeof e&&e.trim().length>0):[];E(r),M(!0),D(!!t.truncated),$(null),y(e=>e&&r.includes(e)?e:r[0]??null)}catch(e){if(!J.current)return;E([]),M(!1),$(e instanceof Error?e.message:"Failed to load workspace files")}finally{J.current&&L(!1)}},[n]),eS=(0,r.useCallback)(async e=>{V(!0);try{let t=encodeURIComponent(e),r=await fetch(`/api/sessions/${n}/files?path=${t}`,{cache:"no-store"});if(!r.ok){if(404===r.status){if(!J.current)return;z(""),U(!1),W(!1),Y(0),G("File no longer exists in this workspace.");return}let e=`Failed to load file content (${r.status})`;try{let t=await r.json();"string"==typeof t.error&&t.error.length>0&&(e=t.error)}catch{}throw Error(e)}let a=await r.json();if(!J.current)return;z("string"==typeof a.content?a.content:""),U(!!a.binary),W(!!a.truncated),Y("number"==typeof a.size&&Number.isFinite(a.size)?Math.max(0,a.size):0),G(null)}catch(e){if(!J.current)return;z(""),U(!1),W(!1),Y(0),G(e instanceof Error?e.message:"Failed to load file content")}finally{J.current&&V(!1)}},[n]);(0,r.useEffect)(()=>{J.current=!0,Z.current=null,ee.current=!1,er();let t=(0,I.subscribeToSnapshotEvents)(t=>{if(!J.current)return;let r=t.sessions.find(t=>t.id===e);if(!r)return;ee.current=B.TERMINAL_STATUSES.has(r.status);let n=`${r.status}:${r.lastActivityAt}`;Z.current!==n&&(Z.current=n,er())}),r=null,n=()=>{let e="visible"!==document.visibilityState||ee.current?3e4:15e3;r=window.setTimeout(async()=>{J.current&&(await er(),J.current&&n())},e)};n();let a=()=>{Z.current=null,er()},s=()=>{"visible"===document.visibilityState&&a()};return window.addEventListener("focus",a),document.addEventListener("visibilitychange",s),()=>{J.current=!1,t(),null!=r&&window.clearTimeout(r),window.removeEventListener("focus",a),document.removeEventListener("visibilitychange",s)}},[er,e]),(0,r.useEffect)(()=>{Z.current=null,ee.current=!1,i(!0),u("changes"),h(""),y(null),E([]),M(!1),L(!1),$(null),D(!1),z(""),U(!1),W(!1),Y(0),V(!1),G(null)},[e]),(0,r.useEffect)(()=>{"files"!==d||R||T||eC()},[eC,d,R,T]),(0,r.useEffect)(()=>{"files"!==d||w&&eS(w)},[eS,w,d]);let eE=(0,r.useMemo)(()=>ey(a),[a]),eR=m.trim().toLowerCase(),eM=(0,r.useMemo)(()=>0===eR.length?eE:eE.filter(e=>e.path.toLowerCase().includes(eR)),[eE,eR]),eT=(0,r.useMemo)(()=>(function(e){let t=ek("","");for(let r of e){let e=r.path.split("/").filter(e=>e.length>0),n=e.pop()??r.path,a=t,s="";for(let t of e){s=s?`${s}/${t}`:t;let e=a.dirs.get(t);if(e){a=e;continue}let r=ek(t,s);a.dirs.set(t,r),a=r}a.files.push({kind:"file",name:n,path:r.path,additions:r.additions,deletions:r.deletions,status:r.status,untracked:!!r.untracked})}return function e(t){let r=[...[...t.dirs.values()].sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:"base"})).map(e),...[...t.files].sort((e,t)=>e.name.localeCompare(t.name,void 0,{sensitivity:"base"}))],n=0,a=0,s=0;for(let e of r){if("dir"===e.kind){n+=e.additions,a+=e.deletions,s+=e.fileCount;continue}n+=e.additions,a+=e.deletions,s+=1}return{kind:"dir",name:t.name,path:t.path,additions:n,deletions:a,fileCount:s,children:r}}(t)})(eM),[eM]),eL=(0,r.useMemo)(()=>eE.reduce((e,t)=>e+Math.max(0,t.additions),0),[eE]),eA=(0,r.useMemo)(()=>eE.reduce((e,t)=>e+Math.max(0,t.deletions),0),[eE]),e$=(0,r.useMemo)(()=>g?eE.find(e=>e.path===g)??null:eE[0]??null,[eE,g]),eF=p.trim().toLowerCase(),eD=(0,r.useMemo)(()=>0===eF.length?S:S.filter(e=>e.toLowerCase().includes(eF)),[S,eF]);function eP(e){b(e),j(t=>({...t,[e]:!0})),window.requestAnimationFrame(()=>{Q.current[e]?.scrollIntoView({behavior:"smooth",block:"start"})})}return(0,t.jsxs)("div",{className:"flex h-full min-h-0 flex-col overflow-hidden rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)]",children:[(0,t.jsxs)("div",{className:"flex h-[32px] shrink-0 items-center border-b border-[var(--vk-border)] px-2",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,t.jsx)(ed,{className:"h-[15px] w-[15px] text-[var(--vk-text-muted)]"}),(0,t.jsx)("span",{className:"truncate text-[13px] font-medium text-[var(--vk-text-strong)]",children:"Review Diff"}),(0,t.jsx)(_.Badge,{variant:"outline",className:"h-[20px] px-1.5 text-[10px]",children:ej(a.source)})]}),(0,t.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,t.jsx)("span",{className:"hidden text-[11px] text-[var(--vk-text-muted)] md:inline",children:function(e){if(!e)return"Not generated";let t=new Date(e);return Number.isNaN(t.getTime())?"Not generated":t.toLocaleString(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}(a.generatedAt)}),(0,t.jsx)("button",{type:"button",onClick:()=>void er(),disabled:l,className:"inline-flex h-[22px] w-[22px] items-center justify-center rounded-[3px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] disabled:opacity-60","aria-label":"Refresh diff",children:(0,t.jsx)(ex.RefreshCw,{className:`h-[14px] w-[14px] ${l?"animate-spin":""}`})}),(0,t.jsxs)("button",{type:"button",onClick:()=>v(e=>!e),className:`inline-flex h-[22px] items-center gap-1 rounded-[3px] px-1.5 text-[11px] ${f?"bg-[var(--vk-bg-active)] text-[var(--vk-text-strong)]":"text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]"}`,"aria-label":"Toggle wrapped lines",children:[(0,t.jsx)(eh,{className:"h-[14px] w-[14px]"}),"Wrap"]})]})]}),(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col xl:flex-row",children:[(0,t.jsxs)("section",{className:"flex min-h-0 min-w-0 flex-1 flex-col border-b border-[var(--vk-border)] xl:border-b-0 xl:border-r",children:[(0,t.jsxs)("div",{className:"flex h-[30px] shrink-0 items-center gap-2 border-b border-[var(--vk-border)] px-2 text-[11px] text-[var(--vk-text-muted)]",children:[(0,t.jsxs)("span",{children:[eE.length," files changed"]}),(0,t.jsxs)("span",{className:"inline-flex items-center gap-0.5 text-[var(--vk-green)]",children:[(0,t.jsx)(em.Plus,{className:"h-[12px] w-[12px]"}),eL]}),(0,t.jsxs)("span",{className:"inline-flex items-center gap-0.5 text-[var(--vk-red)]",children:[(0,t.jsx)(eu,{className:"h-[12px] w-[12px]"}),eA]}),a.truncated&&(0,t.jsx)("span",{className:"ml-auto text-[var(--status-attention)]",children:"Output truncated"})]}),(0,t.jsxs)("div",{className:"min-h-0 flex-1 overflow-auto bg-[var(--vk-bg-panel)]",children:[l&&0===eE.length&&!o&&(0,t.jsx)("div",{className:"flex h-full items-center justify-center p-8 text-[13px] text-[var(--vk-text-muted)]",children:"Loading session diff..."}),o&&(0,t.jsx)("div",{className:"flex h-full items-center justify-center p-8 text-center text-[13px] text-[var(--status-error)]",children:o}),!l&&!o&&0===eE.length&&(0,t.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 p-8 text-center",children:[(0,t.jsx)(es,{className:"h-7 w-7 text-[var(--vk-text-muted)]"}),(0,t.jsx)("p",{className:"text-[13px] text-[var(--vk-text-muted)]",children:"No changed files in this session yet."})]}),!o&&eE.length>0&&eE.map(e=>{let r=k[e.path]??!0,n=e$?.path===e.path;return(0,t.jsxs)("div",{ref:t=>{Q.current[e.path]=t},className:`border-b border-[var(--vk-border)] ${n?"bg-[var(--vk-bg-active)]/40":"bg-[var(--vk-bg-panel)]"}`,children:[(0,t.jsxs)("div",{className:"flex min-h-[40px] items-center gap-2 px-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>{var t;return t=e.path,void j(e=>{let r=e[t]??!0;return{...e,[t]:!r}})},className:"inline-flex h-[20px] w-[20px] items-center justify-center rounded-[3px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]","aria-label":r?`Collapse ${e.path}`:`Expand ${e.path}`,children:r?(0,t.jsx)(en.ChevronDown,{className:"h-[15px] w-[15px]"}):(0,t.jsx)(ea,{className:"h-[15px] w-[15px]"})}),(0,t.jsx)("span",{className:`inline-flex h-[23px] min-w-[58px] items-center justify-center rounded-[3px] border px-1.5 text-[11px] ${e.untracked||"added"===e.status?"border-[rgba(84,176,79,0.35)] text-[var(--vk-green)]":"deleted"===e.status?"border-[rgba(210,81,81,0.35)] text-[var(--vk-red)]":"renamed"===e.status||"copy"===e.status?"border-[rgba(108,168,255,0.35)] text-[var(--status-working)]":"binary"===e.status?"border-[rgba(210,160,59,0.35)] text-[var(--status-attention)]":"border-[var(--vk-border)] text-[var(--vk-text-muted)]"}`,children:e.untracked?"Untracked":"added"===e.status?"Added":"deleted"===e.status?"Deleted":"renamed"===e.status?"Renamed":"copy"===e.status?"Copied":"binary"===e.status?"Binary":"modified"===e.status?"Modified":"Changed"}),(0,t.jsx)("button",{type:"button",onClick:()=>eP(e.path),className:`min-w-0 flex-1 truncate text-left font-mono text-[12px] ${n?"text-[var(--vk-text-strong)]":"text-[var(--vk-text-normal)]"}`,children:e.path}),(0,t.jsxs)("div",{className:"flex items-center gap-2 font-mono text-[11px]",children:[e.additions>0&&(0,t.jsxs)("span",{className:"text-[var(--vk-green)]",children:["+",e.additions]}),e.deletions>0&&(0,t.jsxs)("span",{className:"text-[var(--vk-red)]",children:["-",e.deletions]}),0===e.additions&&0===e.deletions&&(0,t.jsx)("span",{className:"text-[var(--vk-text-muted)]",children:"0"})]})]}),r&&(0,t.jsx)("div",{className:"border-t border-[var(--vk-border)] bg-[var(--vk-bg-outer)]/30",children:0===e.lines.length?(0,t.jsx)("div",{className:"px-2 py-2 font-mono text-[11px] text-[var(--vk-text-muted)]",children:e.untracked?"Untracked file (line-level diff unavailable until staged).":"No line-level diff output for this file."}):(0,t.jsx)("div",{className:f?"":"overflow-x-auto",children:(0,t.jsxs)("div",{className:f?"":"min-w-[760px]",children:[(0,t.jsxs)("div",{className:"grid grid-cols-[56px_56px_20px_minmax(0,1fr)] border-b border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 py-1 font-mono text-[10px] uppercase tracking-wide text-[var(--vk-text-muted)]",children:[(0,t.jsx)("div",{children:"Old"}),(0,t.jsx)("div",{children:"New"}),(0,t.jsx)("div",{}),(0,t.jsx)("div",{children:"Line"})]}),e.lines.map((r,n)=>{var a,s;return(0,t.jsxs)("div",{className:`grid grid-cols-[56px_56px_20px_minmax(0,1fr)] border-b border-[var(--vk-border)] px-2 py-[2px] font-mono text-[11px] last:border-b-0 ${"add"===(a=r.kind)?"bg-[rgba(84,176,79,0.18)]":"remove"===a?"bg-[rgba(210,81,81,0.18)]":"hunk"===a?"bg-[rgba(108,168,255,0.12)]":""}`,children:[(0,t.jsx)("div",{className:"text-[var(--vk-text-muted)]",children:r.oldLine??""}),(0,t.jsx)("div",{className:"text-[var(--vk-text-muted)]",children:r.newLine??""}),(0,t.jsx)("div",{className:eN(r.kind),children:"add"===(s=r.kind)?"+":"remove"===s?"-":"hunk"===s?"@":"info"===s?"i":""}),(0,t.jsx)("div",{className:`${eN(r.kind)} ${f?"whitespace-pre-wrap break-words":"whitespace-pre"}`,children:r.text})]},`${e.path}-${n}-${r.oldLine??"x"}-${r.newLine??"y"}`)})]})})})]},e.path)})]})]}),(0,t.jsxs)("aside",{className:"flex min-h-0 w-full shrink-0 flex-col bg-[var(--vk-bg-panel)] xl:w-[299px]",children:[(0,t.jsxs)("div",{className:"flex h-[32px] items-center gap-1 border-b border-[var(--vk-border)] p-1",children:[(0,t.jsx)("button",{type:"button",onClick:()=>u("changes"),className:`inline-flex h-[24px] items-center rounded-[3px] px-2 text-[12px] ${"changes"===d?"bg-[var(--vk-bg-active)] text-[var(--vk-text-strong)]":"text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]"}`,children:"Changes"}),(0,t.jsx)("button",{type:"button",onClick:()=>u("files"),className:`inline-flex h-[24px] items-center rounded-[3px] px-2 text-[12px] ${"files"===d?"bg-[var(--vk-bg-active)] text-[var(--vk-text-strong)]":"text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]"}`,children:"Files"})]}),"changes"===d?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"border-b border-[var(--vk-border)] p-2",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 py-[5px]",children:[(0,t.jsx)(ep.Search,{className:"h-[15px] w-[15px] text-[var(--vk-text-muted)]"}),(0,t.jsx)("input",{type:"text",value:m,onChange:e=>x(e.target.value),placeholder:"Search files...",className:"h-[20px] w-full bg-transparent text-[14px] text-[var(--vk-text-normal)] outline-none placeholder:text-[var(--vk-text-muted)]"}),m.length>0&&(0,t.jsx)("button",{type:"button",onClick:()=>x(""),className:"inline-flex h-[17px] w-[17px] items-center justify-center rounded-[3px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]","aria-label":"Clear file search",children:(0,t.jsx)(ef.X,{className:"h-[12px] w-[12px]"})})]})}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-auto",children:0===eM.length?(0,t.jsx)("div",{className:"px-3 py-3 text-[13px] text-[var(--vk-text-muted)]",children:eR.length>0?"No files match the current search.":"No changed files."}):(0,t.jsx)("div",{className:"py-1",children:function e(r,n=0){let a=[];for(let s of r){if("dir"===s.kind){let r=!!N[s.path];a.push((0,t.jsxs)("button",{type:"button",onClick:()=>(function(e){C(t=>({...t,[e]:!t[e]}))})(s.path),className:"flex h-[26px] w-full items-center gap-1.5 pr-2 text-left text-[12px] text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]",style:{paddingLeft:`${8+14*n}px`},children:[r?(0,t.jsx)(ea,{className:"h-3.5 w-3.5 shrink-0 text-[var(--vk-text-muted)]"}):(0,t.jsx)(en.ChevronDown,{className:"h-3.5 w-3.5 shrink-0 text-[var(--vk-text-muted)]"}),r?(0,t.jsx)(eo,{className:"h-3.5 w-3.5 shrink-0 text-[var(--vk-text-muted)]"}):(0,t.jsx)(ec.FolderOpen,{className:"h-3.5 w-3.5 shrink-0 text-[var(--vk-text-muted)]"}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:s.name}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-[var(--vk-text-muted)]",children:s.fileCount})]},`dir-${s.path}`)),r||a.push(...e(s.children,n+1));continue}let r=s.path===g;a.push((0,t.jsxs)("button",{type:"button",onClick:()=>eP(s.path),className:`flex h-[26px] w-full items-center gap-1.5 pr-2 text-left text-[12px] transition-colors ${r?"bg-[var(--vk-bg-active)] text-[var(--vk-text-strong)]":"text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]"}`,style:{paddingLeft:`${8+14*n}px`},children:[(0,t.jsx)("span",{className:"inline-flex w-4 shrink-0 justify-center",children:s.untracked?(0,t.jsx)(ei,{className:"h-3.5 w-3.5 text-[var(--vk-green)]"}):(0,t.jsx)(el,{className:"h-3.5 w-3.5 text-[var(--vk-text-muted)]"})}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:s.name}),s.additions>0&&(0,t.jsxs)("span",{className:"shrink-0 font-mono text-[11px] text-[var(--vk-green)]",children:["+",s.additions]}),s.deletions>0&&(0,t.jsxs)("span",{className:"shrink-0 font-mono text-[11px] text-[var(--vk-red)]",children:["-",s.deletions]})]},`file-${s.path}`))}return a}(eT.children)})}),(0,t.jsxs)("div",{className:"border-t border-[var(--vk-border)] p-2",children:[(0,t.jsx)("div",{className:"text-[16px] font-medium text-[var(--vk-text-normal)]",children:"Git"}),(0,t.jsxs)("div",{className:"mt-2 rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] px-2 py-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-[12px] text-[var(--vk-text-muted)]",children:[(0,t.jsx)("span",{children:"Files"}),(0,t.jsx)("span",{className:"font-mono text-[var(--vk-text-normal)]",children:eE.length})]}),(0,t.jsxs)("div",{className:"mt-1 flex items-center justify-between text-[12px]",children:[(0,t.jsx)("span",{className:"text-[var(--vk-text-muted)]",children:"Added"}),(0,t.jsxs)("span",{className:"font-mono text-[var(--vk-green)]",children:["+",eL]})]}),(0,t.jsxs)("div",{className:"mt-1 flex items-center justify-between text-[12px]",children:[(0,t.jsx)("span",{className:"text-[var(--vk-text-muted)]",children:"Deleted"}),(0,t.jsxs)("span",{className:"font-mono text-[var(--vk-red)]",children:["-",eA]})]}),(0,t.jsxs)("div",{className:"mt-1 flex items-center justify-between text-[12px]",children:[(0,t.jsx)("span",{className:"text-[var(--vk-text-muted)]",children:"Source"}),(0,t.jsx)("span",{className:"font-mono text-[var(--vk-text-normal)]",children:ej(a.source)})]})]})]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"border-b border-[var(--vk-border)] p-2",children:(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-2 py-[5px]",children:[(0,t.jsx)(ep.Search,{className:"h-[15px] w-[15px] text-[var(--vk-text-muted)]"}),(0,t.jsx)("input",{type:"text",value:p,onChange:e=>h(e.target.value),placeholder:"Search all files...",className:"h-[20px] w-full bg-transparent text-[14px] text-[var(--vk-text-normal)] outline-none placeholder:text-[var(--vk-text-muted)]"}),p.length>0&&(0,t.jsx)("button",{type:"button",onClick:()=>h(""),className:"inline-flex h-[17px] w-[17px] items-center justify-center rounded-[3px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]","aria-label":"Clear workspace file search",children:(0,t.jsx)(ef.X,{className:"h-[12px] w-[12px]"})})]})}),(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,t.jsxs)("div",{className:"min-h-0 flex-1 overflow-auto border-b border-[var(--vk-border)]",children:[T&&(0,t.jsx)("div",{className:"px-3 py-3 text-[13px] text-[var(--vk-text-muted)]",children:"Loading workspace files..."}),A&&(0,t.jsx)("div",{className:"px-3 py-3 text-[13px] text-[var(--status-error)]",children:A}),!T&&!A&&0===eD.length&&(0,t.jsx)("div",{className:"px-3 py-3 text-[13px] text-[var(--vk-text-muted)]",children:eF.length>0?"No files match the current search.":"No files found."}),!T&&!A&&eD.length>0&&(0,t.jsx)("div",{className:"py-1",children:eD.map(e=>{let r=e===w,n=e.split("/").pop()??e;return(0,t.jsxs)("button",{type:"button",onClick:()=>y(e),className:`flex h-[26px] w-full items-center gap-1.5 px-2 text-left text-[12px] ${r?"bg-[var(--vk-bg-active)] text-[var(--vk-text-strong)]":"text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]"}`,children:[(0,t.jsx)(el,{className:"h-3.5 w-3.5 shrink-0 text-[var(--vk-text-muted)]"}),(0,t.jsx)("span",{className:"truncate",children:n})]},e)})})]}),(0,t.jsxs)("div",{className:"min-h-0 flex-1 overflow-auto bg-[var(--vk-bg-main)] p-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--vk-border)] pb-2",children:[(0,t.jsx)("span",{className:"truncate font-mono text-[11px] text-[var(--vk-text-normal)]",children:w??"Select a file"}),q>0&&(0,t.jsxs)("span",{className:"ml-2 shrink-0 font-mono text-[10px] text-[var(--vk-text-muted)]",children:[q.toLocaleString()," bytes"]})]}),F&&(0,t.jsx)("p",{className:"pt-2 text-[11px] text-[var(--status-attention)]",children:"File list truncated to the first 4000 files."}),K&&(0,t.jsx)("p",{className:"pt-2 text-[12px] text-[var(--vk-text-muted)]",children:"Loading file content..."}),X&&(0,t.jsx)("p",{className:"pt-2 text-[12px] text-[var(--status-error)]",children:X}),!K&&!X&&w&&H&&(0,t.jsx)("p",{className:"pt-2 text-[12px] text-[var(--vk-text-muted)]",children:"Binary file preview is not available."}),!K&&!X&&w&&!H&&P.length>0&&(0,t.jsx)("pre",{className:"pt-2 whitespace-pre-wrap break-words font-mono text-[11px] text-[var(--vk-text-normal)]",children:P}),!K&&!X&&w&&!H&&0===P.length&&(0,t.jsx)("p",{className:"pt-2 text-[12px] text-[var(--vk-text-muted)]",children:"File is empty."}),O&&(0,t.jsx)("p",{className:"pt-2 text-[11px] text-[var(--status-attention)]",children:"Preview truncated to 1 MB."})]})]})]})]})]})]})}let eS=(0,a.default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),eE=(0,a.default)("boxes",[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]]);var eR=e.i(86536);let eM=(0,a.default)("file-braces-corner",[["path",{d:"M14 22h4a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v6",key:"14cnrg"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M5 14a1 1 0 0 0-1 1v2a1 1 0 0 1-1 1 1 1 0 0 1 1 1v2a1 1 0 0 0 1 1",key:"sr0ebq"}],["path",{d:"M9 22a1 1 0 0 0 1-1v-2a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-2a1 1 0 0 0-1-1",key:"w793db"}]]);var eT=e.i(31278);let eL=(0,a.default)("mouse-pointer-click",[["path",{d:"M14 4.1 12 6",key:"ita8i4"}],["path",{d:"m5.1 8-2.9-.8",key:"1go3kf"}],["path",{d:"m6 12-1.9 2",key:"mnht97"}],["path",{d:"M7.2 2.2 8 5.1",key:"1cfko1"}],["path",{d:"M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z",key:"s0h3yz"}]]),eA=(0,a.default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]),e$=(0,a.default)("waypoints",[["path",{d:"m10.586 5.414-5.172 5.172",key:"4mc350"}],["path",{d:"m18.586 13.414-5.172 5.172",key:"8c96vv"}],["path",{d:"M6 12h12",key:"8npq4p"}],["circle",{cx:"12",cy:"20",r:"2",key:"144qzu"}],["circle",{cx:"12",cy:"4",r:"2",key:"muu5ef"}],["circle",{cx:"20",cy:"12",r:"2",key:"1xzzfp"}],["circle",{cx:"4",cy:"12",r:"2",key:"1hvhnz"}]]);var eF=e.i(11077),eD=e.i(20783),eP=e.i(30207),e_=e.i(34620),eI="ScrollArea",[eB,ez]=(0,d.createContextScope)(eI),[eH,eU]=eB(eI),eO=r.forwardRef((e,n)=>{let{__scopeScrollArea:a,type:s="hover",dir:l,scrollHideDelay:i=600,...o}=e,[c,d]=r.useState(null),[u,m]=r.useState(null),[h,f]=r.useState(null),[v,g]=r.useState(null),[b,w]=r.useState(null),[y,k]=r.useState(0),[j,N]=r.useState(0),[C,S]=r.useState(!1),[E,R]=r.useState(!1),M=(0,eD.useComposedRefs)(n,e=>d(e)),T=(0,p.useDirection)(l);return(0,t.jsx)(eH,{scope:a,type:s,dir:T,scrollHideDelay:i,scrollArea:c,viewport:u,onViewportChange:m,content:h,onContentChange:f,scrollbarX:v,onScrollbarXChange:g,scrollbarXEnabled:C,onScrollbarXEnabledChange:S,scrollbarY:b,onScrollbarYChange:w,scrollbarYEnabled:E,onScrollbarYEnabledChange:R,onCornerWidthChange:k,onCornerHeightChange:N,children:(0,t.jsx)(x.Primitive.div,{dir:T,...o,ref:M,style:{position:"relative","--radix-scroll-area-corner-width":y+"px","--radix-scroll-area-corner-height":j+"px",...e.style}})})});eO.displayName=eI;var eW="ScrollAreaViewport",eq=r.forwardRef((e,n)=>{let{__scopeScrollArea:a,children:s,nonce:l,...i}=e,o=eU(eW,a),c=r.useRef(null),d=(0,eD.useComposedRefs)(n,c,o.onViewportChange);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:l}),(0,t.jsx)(x.Primitive.div,{"data-radix-scroll-area-viewport":"",...i,ref:d,style:{overflowX:o.scrollbarXEnabled?"scroll":"hidden",overflowY:o.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,t.jsx)("div",{ref:o.onContentChange,style:{minWidth:"100%",display:"table"},children:s})})]})});eq.displayName=eW;var eY="ScrollAreaScrollbar",eK=r.forwardRef((e,n)=>{let{forceMount:a,...s}=e,l=eU(eY,e.__scopeScrollArea),{onScrollbarXEnabledChange:i,onScrollbarYEnabledChange:o}=l,c="horizontal"===e.orientation;return r.useEffect(()=>(c?i(!0):o(!0),()=>{c?i(!1):o(!1)}),[c,i,o]),"hover"===l.type?(0,t.jsx)(eV,{...s,ref:n,forceMount:a}):"scroll"===l.type?(0,t.jsx)(eX,{...s,ref:n,forceMount:a}):"auto"===l.type?(0,t.jsx)(eG,{...s,ref:n,forceMount:a}):"always"===l.type?(0,t.jsx)(eJ,{...s,ref:n}):null});eK.displayName=eY;var eV=r.forwardRef((e,n)=>{let{forceMount:a,...s}=e,l=eU(eY,e.__scopeScrollArea),[i,o]=r.useState(!1);return r.useEffect(()=>{let e=l.scrollArea,t=0;if(e){let r=()=>{window.clearTimeout(t),o(!0)},n=()=>{t=window.setTimeout(()=>o(!1),l.scrollHideDelay)};return e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",n),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",n)}}},[l.scrollArea,l.scrollHideDelay]),(0,t.jsx)(m.Presence,{present:a||i,children:(0,t.jsx)(eG,{"data-state":i?"visible":"hidden",...s,ref:n})})}),eX=r.forwardRef((e,n)=>{var a;let{forceMount:s,...l}=e,i=eU(eY,e.__scopeScrollArea),o="horizontal"===e.orientation,d=ts(()=>x("SCROLL_END"),100),[u,x]=(a={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},r.useReducer((e,t)=>a[e][t]??e,"hidden"));return r.useEffect(()=>{if("idle"===u){let e=window.setTimeout(()=>x("HIDE"),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[u,i.scrollHideDelay,x]),r.useEffect(()=>{let e=i.viewport,t=o?"scrollLeft":"scrollTop";if(e){let r=e[t],n=()=>{let n=e[t];r!==n&&(x("SCROLL"),d()),r=n};return e.addEventListener("scroll",n),()=>e.removeEventListener("scroll",n)}},[i.viewport,o,x,d]),(0,t.jsx)(m.Presence,{present:s||"hidden"!==u,children:(0,t.jsx)(eJ,{"data-state":"hidden"===u?"hidden":"visible",...l,ref:n,onPointerEnter:(0,c.composeEventHandlers)(e.onPointerEnter,()=>x("POINTER_ENTER")),onPointerLeave:(0,c.composeEventHandlers)(e.onPointerLeave,()=>x("POINTER_LEAVE"))})})}),eG=r.forwardRef((e,n)=>{let a=eU(eY,e.__scopeScrollArea),{forceMount:s,...l}=e,[i,o]=r.useState(!1),c="horizontal"===e.orientation,d=ts(()=>{if(a.viewport){let e=a.viewport.offsetWidth<a.viewport.scrollWidth,t=a.viewport.offsetHeight<a.viewport.scrollHeight;o(c?e:t)}},10);return tl(a.viewport,d),tl(a.content,d),(0,t.jsx)(m.Presence,{present:s||i,children:(0,t.jsx)(eJ,{"data-state":i?"visible":"hidden",...l,ref:n})})}),eJ=r.forwardRef((e,n)=>{let{orientation:a="vertical",...s}=e,l=eU(eY,e.__scopeScrollArea),i=r.useRef(null),o=r.useRef(0),[c,d]=r.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=te(c.viewport,c.content),m={...s,sizes:c,onSizesChange:d,hasThumb:!!(u>0&&u<1),onThumbChange:e=>i.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function x(e,t){return function(e,t,r,n="ltr"){let a=tt(r),s=t||a/2,l=r.scrollbar.paddingStart+s,i=r.scrollbar.size-r.scrollbar.paddingEnd-(a-s),o=r.content-r.viewport;return tn([l,i],"ltr"===n?[0,o]:[-1*o,0])(e)}(e,o.current,c,t)}return"horizontal"===a?(0,t.jsx)(eQ,{...m,ref:n,onThumbPositionChange:()=>{if(l.viewport&&i.current){let e=tr(l.viewport.scrollLeft,c,l.dir);i.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{l.viewport&&(l.viewport.scrollLeft=e)},onDragScroll:e=>{l.viewport&&(l.viewport.scrollLeft=x(e,l.dir))}}):"vertical"===a?(0,t.jsx)(eZ,{...m,ref:n,onThumbPositionChange:()=>{if(l.viewport&&i.current){let e=tr(l.viewport.scrollTop,c);i.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{l.viewport&&(l.viewport.scrollTop=e)},onDragScroll:e=>{l.viewport&&(l.viewport.scrollTop=x(e))}}):null}),eQ=r.forwardRef((e,n)=>{let{sizes:a,onSizesChange:s,...l}=e,i=eU(eY,e.__scopeScrollArea),[o,c]=r.useState(),d=r.useRef(null),u=(0,eD.useComposedRefs)(n,d,i.onScrollbarXChange);return r.useEffect(()=>{d.current&&c(getComputedStyle(d.current))},[d]),(0,t.jsx)(e2,{"data-orientation":"horizontal",...l,ref:u,sizes:a,style:{bottom:0,left:"rtl"===i.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===i.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":tt(a)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,r)=>{if(i.viewport){var n,a;let s=i.viewport.scrollLeft+t.deltaX;e.onWheelScroll(s),n=s,a=r,n>0&&n<a&&t.preventDefault()}},onResize:()=>{d.current&&i.viewport&&o&&s({content:i.viewport.scrollWidth,viewport:i.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:e9(o.paddingLeft),paddingEnd:e9(o.paddingRight)}})}})}),eZ=r.forwardRef((e,n)=>{let{sizes:a,onSizesChange:s,...l}=e,i=eU(eY,e.__scopeScrollArea),[o,c]=r.useState(),d=r.useRef(null),u=(0,eD.useComposedRefs)(n,d,i.onScrollbarYChange);return r.useEffect(()=>{d.current&&c(getComputedStyle(d.current))},[d]),(0,t.jsx)(e2,{"data-orientation":"vertical",...l,ref:u,sizes:a,style:{top:0,right:"ltr"===i.dir?0:void 0,left:"rtl"===i.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":tt(a)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,r)=>{if(i.viewport){var n,a;let s=i.viewport.scrollTop+t.deltaY;e.onWheelScroll(s),n=s,a=r,n>0&&n<a&&t.preventDefault()}},onResize:()=>{d.current&&i.viewport&&o&&s({content:i.viewport.scrollHeight,viewport:i.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:e9(o.paddingTop),paddingEnd:e9(o.paddingBottom)}})}})}),[e0,e1]=eB(eY),e2=r.forwardRef((e,n)=>{let{__scopeScrollArea:a,sizes:s,hasThumb:l,onThumbChange:i,onThumbPointerUp:o,onThumbPointerDown:d,onThumbPositionChange:u,onDragScroll:m,onWheelScroll:p,onResize:h,...f}=e,v=eU(eY,a),[g,b]=r.useState(null),w=(0,eD.useComposedRefs)(n,e=>b(e)),y=r.useRef(null),k=r.useRef(""),j=v.viewport,N=s.content-s.viewport,C=(0,eP.useCallbackRef)(p),S=(0,eP.useCallbackRef)(u),E=ts(h,10);function R(e){y.current&&m({x:e.clientX-y.current.left,y:e.clientY-y.current.top})}return r.useEffect(()=>{let e=e=>{let t=e.target;g?.contains(t)&&C(e,N)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[j,g,N,C]),r.useEffect(S,[s,S]),tl(g,E),tl(v.content,E),(0,t.jsx)(e0,{scope:a,scrollbar:g,hasThumb:l,onThumbChange:(0,eP.useCallbackRef)(i),onThumbPointerUp:(0,eP.useCallbackRef)(o),onThumbPositionChange:S,onThumbPointerDown:(0,eP.useCallbackRef)(d),children:(0,t.jsx)(x.Primitive.div,{...f,ref:w,style:{position:"absolute",...f.style},onPointerDown:(0,c.composeEventHandlers)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),y.current=g.getBoundingClientRect(),k.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",v.viewport&&(v.viewport.style.scrollBehavior="auto"),R(e))}),onPointerMove:(0,c.composeEventHandlers)(e.onPointerMove,R),onPointerUp:(0,c.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=k.current,v.viewport&&(v.viewport.style.scrollBehavior=""),y.current=null})})})}),e3="ScrollAreaThumb",e5=r.forwardRef((e,r)=>{let{forceMount:n,...a}=e,s=e1(e3,e.__scopeScrollArea);return(0,t.jsx)(m.Presence,{present:n||s.hasThumb,children:(0,t.jsx)(e4,{ref:r,...a})})}),e4=r.forwardRef((e,n)=>{let{__scopeScrollArea:a,style:s,...l}=e,i=eU(e3,a),o=e1(e3,a),{onThumbPositionChange:d}=o,u=(0,eD.useComposedRefs)(n,e=>o.onThumbChange(e)),m=r.useRef(void 0),p=ts(()=>{m.current&&(m.current(),m.current=void 0)},100);return r.useEffect(()=>{let e=i.viewport;if(e){let t=()=>{p(),m.current||(m.current=ta(e,d),d())};return d(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}},[i.viewport,p,d]),(0,t.jsx)(x.Primitive.div,{"data-state":o.hasThumb?"visible":"hidden",...l,ref:u,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...s},onPointerDownCapture:(0,c.composeEventHandlers)(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),r=e.clientX-t.left,n=e.clientY-t.top;o.onThumbPointerDown({x:r,y:n})}),onPointerUp:(0,c.composeEventHandlers)(e.onPointerUp,o.onThumbPointerUp)})});e5.displayName=e3;var e8="ScrollAreaCorner",e6=r.forwardRef((e,r)=>{let n=eU(e8,e.__scopeScrollArea),a=!!(n.scrollbarX&&n.scrollbarY);return"scroll"!==n.type&&a?(0,t.jsx)(e7,{...e,ref:r}):null});e6.displayName=e8;var e7=r.forwardRef((e,n)=>{let{__scopeScrollArea:a,...s}=e,l=eU(e8,a),[i,o]=r.useState(0),[c,d]=r.useState(0),u=!!(i&&c);return tl(l.scrollbarX,()=>{let e=l.scrollbarX?.offsetHeight||0;l.onCornerHeightChange(e),d(e)}),tl(l.scrollbarY,()=>{let e=l.scrollbarY?.offsetWidth||0;l.onCornerWidthChange(e),o(e)}),u?(0,t.jsx)(x.Primitive.div,{...s,ref:n,style:{width:i,height:c,position:"absolute",right:"ltr"===l.dir?0:void 0,left:"rtl"===l.dir?0:void 0,bottom:0,...e.style}}):null});function e9(e){return e?parseInt(e,10):0}function te(e,t){let r=e/t;return isNaN(r)?0:r}function tt(e){let t=te(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-r)*t,18)}function tr(e,t,r="ltr"){let n=tt(t),a=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,s=t.scrollbar.size-a,l=t.content-t.viewport,i=function(e,[t,r]){return Math.min(r,Math.max(t,e))}(e,"ltr"===r?[0,l]:[-1*l,0]);return tn([0,l],[0,s-n])(i)}function tn(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}var ta=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return!function a(){let s={left:e.scrollLeft,top:e.scrollTop},l=r.left!==s.left,i=r.top!==s.top;(l||i)&&t(),r=s,n=window.requestAnimationFrame(a)}(),()=>window.cancelAnimationFrame(n)};function ts(e,t){let n=(0,eP.useCallbackRef)(e),a=r.useRef(0);return r.useEffect(()=>()=>window.clearTimeout(a.current),[]),r.useCallback(()=>{window.clearTimeout(a.current),a.current=window.setTimeout(n,t)},[n,t])}function tl(e,t){let r=(0,eP.useCallbackRef)(t);(0,e_.useLayoutEffect)(()=>{let t=0;if(e){let n=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(r)});return n.observe(e),()=>{window.cancelAnimationFrame(t),n.unobserve(e)}}},[e,r])}let ti=(0,r.forwardRef)(({className:e,children:r,...n},a)=>(0,t.jsxs)(eO,{ref:a,className:(0,A.cn)("relative overflow-hidden",e),...n,children:[(0,t.jsx)(eq,{className:"h-full w-full rounded-[inherit]",children:r}),(0,t.jsx)(to,{}),(0,t.jsx)(e6,{})]}));ti.displayName="ScrollArea";let to=(0,r.forwardRef)(({className:e,orientation:r="vertical",...n},a)=>(0,t.jsx)(eK,{ref:a,orientation:r,className:(0,A.cn)("flex touch-none select-none","vertical"===r&&"h-full w-2.5 border-l border-l-transparent p-px","horizontal"===r&&"h-2.5 flex-col border-t border-t-transparent p-px",e),...n,children:(0,t.jsx)(e5,{className:"relative flex-1 rounded-full bg-[color:color-mix(in_srgb,var(--border-strong)_75%,transparent)] hover:bg-[var(--border-strong)]"})}));to.displayName="ScrollBar";let tc=new Map([["Backspace","Backspace"],["Delete","Delete"],["Enter","Enter"],["Tab","Tab"],["Escape","Escape"],["ArrowUp","ArrowUp"],["ArrowDown","ArrowDown"],["ArrowLeft","ArrowLeft"],["ArrowRight","ArrowRight"],["Home","Home"],["End","End"],["PageUp","PageUp"],["PageDown","PageDown"],[" ","Space"]]);function td(e){let t=Date.parse(e);return Number.isNaN(t)?e:new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit",second:"2-digit"}).format(new Date(t))}function tu(e,t=120){return e.length<=t?e:`${e.slice(0,t-1)}…`}function tm(e,t=180){let r=tu((e??"").replace(/\s+/g," ").trim(),t);return r?`"${r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:null}function tx(e){return e.map(e=>e?.trim()).filter(e=>!!e).join("; ")}function tp(e,t){return[`[${e}]`,...t.map(e=>e?.trim()).filter(e=>!!e)].join("\n")}function th(e,t){return{inlineText:tx(["[Browser selection]",`selector=${tm(e.selector,220)}`,`tag=${e.tag}`,e.role?`role=${e.role}`:null,e.name?`name=${tm(e.name,140)}`:null,e.text?`text=${tm(e.text,180)}`:null,e.frameName?`frame=${tm(e.frameName,120)}`:null,t?`page=${tm(t,220)}`:null]),draftText:tp("Browser selection",[t?`Page: ${t}`:null,`Frame: ${e.frameName} (${e.frameUrl})`,`Selector: ${e.selector}`,`Tag: ${e.tag}`,e.role?`Role: ${e.role}`:null,e.name?`Name: ${e.name}`:null,e.text?`Text: ${e.text}`:null,e.htmlPreview?`HTML preview: ${e.htmlPreview}`:null]),successMessage:"Queued the selected element for terminal input."}}function tf(e,t,r,n){let a=t.slice("console"===e?-8:-10),s=a.map(t=>{let r=[t.level,tm(t.message,120)];return"network"===e&&(r.unshift(t.method??"GET"),r.push("number"==typeof t.status?String(t.status):null),r.push(t.url?tm(t.url,120):null)),r.filter(Boolean).join(" ")});return{inlineText:tx(["console"===e?"[Browser console]":"[Browser network]",r?`page=${tm(r,220)}`:null,n?`selected=${tm(n.selector,180)}`:null,`entries=${tm(s.join(" | "),520)}`]),draftText:tp("console"===e?"Browser console logs":"Browser network logs",[r?`Page: ${r}`:null,n?`Selected element: ${n.selector}`:null,...a.map(t=>"console"===e?`- ${td(t.timestamp)} ${t.level}: ${t.message}`:`- ${td(t.timestamp)} ${t.method??"GET"} ${t.status??"-"} ${t.url??t.message}`)]),successMessage:"console"===e?"Queued recent console logs for terminal input.":"Queued recent network logs for terminal input."}}function tv({sessionId:e,onQueueTerminalInsert:n,onConnectionChange:a}){let[s,i]=(0,r.useState)(null),[c,d]=(0,r.useState)([]),[u,m]=(0,r.useState)(!1),[x,p]=(0,r.useState)(!1),[h,f]=(0,r.useState)(!0),[v,g]=(0,r.useState)(!0),[b,w]=(0,r.useState)(null),[y,k]=(0,r.useState)(null),[j,N]=(0,r.useState)(null),[C,S]=(0,r.useState)(null),[E,R]=(0,r.useState)("navigate"),[M,T]=(0,r.useState)(null),[L,$]=(0,r.useState)(""),[F,D]=(0,r.useState)({naturalWidth:0,naturalHeight:0,renderedWidth:0,renderedHeight:0}),I=(0,r.useRef)(null),B=(0,r.useRef)(Promise.resolve()),z=(0,r.useRef)(null),H=(0,r.useRef)(null),U=(0,r.useCallback)(async()=>{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/preview`,{cache:"no-store"}),r=await t.json().catch(()=>null);if(!t.ok)throw Error(r&&"error"in r?r.error??"Failed to load preview state":`Failed to load preview state: ${t.status}`);i(r),w(null),$(e=>e.trim().length>0&&e!==s?.currentUrl?e:r.currentUrl??r.candidateUrls[0]??e)},[e,s?.currentUrl]),W=(0,r.useCallback)(async t=>{p(!0),w(null);try{let r=await fetch(`/api/sessions/${encodeURIComponent(e)}/preview`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),n=await r.json().catch(()=>null);if(!r.ok)throw n&&"object"==typeof n&&"status"in n&&n.status&&i(n.status),Error(n&&"error"in n?n.error??"Preview command failed":`Preview command failed: ${r.status}`);return i(n),n}finally{p(!1)}},[e]),q=(0,r.useCallback)((e,t)=>{B.current=B.current.catch(()=>void 0).then(async()=>{try{await W(e)}catch(e){w(e instanceof Error?e.message:t)}})},[W]),Y=(0,r.useCallback)(async t=>{if(!s?.connected)return void d([]);m(!0);try{let r=new URLSearchParams;t&&r.set("frameId",t),v&&r.set("interactiveOnly","1");let n=await fetch(`/api/sessions/${encodeURIComponent(e)}/preview/dom?${r.toString()}`,{cache:"no-store"}),a=await n.json().catch(()=>null);if(!n.ok)throw Error(a&&"error"in a?a.error??"Failed to inspect DOM":`Failed to inspect DOM: ${n.status}`);d(a.nodes)}catch(e){w(e instanceof Error?e.message:"Failed to inspect DOM"),d([])}finally{m(!1)}},[v,e,s?.connected]);(0,r.useEffect)(()=>{let e=!0;(async()=>{try{await U()}catch(t){e&&w(t instanceof Error?t.message:"Failed to load preview")}finally{e&&f(!1)}})();let t=window.setInterval(()=>{U().catch(t=>{e&&w(t instanceof Error?t.message:"Failed to refresh preview")})},4e3);return()=>{e=!1,window.clearInterval(t)}},[U]),(0,r.useEffect)(()=>{s?.connected?Y(s.activeFrameId):d([])},[v,Y,s?.activeFrameId,s?.connected,s?.screenshotKey]),(0,r.useEffect)(()=>{if(s?.connected){I.current=null;return}T(null);let e=s?.candidateUrls[0];if(!e)return;let t=I.current?.attemptedAt??NaN,r=I.current?.candidate??null,n=Date.now();r===e&&Number.isFinite(t)&&n-t<5e3||(I.current={candidate:e,attemptedAt:n},W({command:"connect",url:e}).catch(e=>{w(e instanceof Error?e.message:"Failed to connect preview")}))},[W,s?.candidateUrls,s?.connected]),(0,r.useEffect)(()=>{a?.(!!(s?.connected&&s?.screenshotKey))},[a,s?.connected,s?.screenshotKey]);let K=(0,r.useMemo)(()=>s?.connected?`/api/sessions/${encodeURIComponent(e)}/preview/screenshot?ts=${encodeURIComponent(s.screenshotKey)}`:null,[e,s?.connected,s?.screenshotKey]),V=(0,r.useMemo)(()=>s?.frames.find(e=>e.id===s.activeFrameId)??null,[s?.activeFrameId,s?.frames]),X=(0,r.useMemo)(()=>s?.frames.find(e=>e.isMain)??null,[s?.frames]),G=null!==C,J=!!V?.isMain,Q=(0,r.useMemo)(()=>{let e=s?.selectedElement?.bounds;if(!s?.selectedElement||!e||!X||s.selectedElement.frameId!==X.id||!F.naturalWidth||!F.naturalHeight||!F.renderedWidth||!F.renderedHeight)return null;let t=F.renderedWidth/F.naturalWidth,r=F.renderedHeight/F.naturalHeight;return{left:`${e.x*t}px`,top:`${e.y*r}px`,width:`${Math.max(e.width*t,2)}px`,height:`${Math.max(e.height*r,2)}px`}},[F,X,s?.selectedElement]),Z=(0,r.useCallback)(async()=>{let e=L.trim();if(e)try{await W({command:"connect",url:e})}catch(e){w(e instanceof Error?e.message:"Failed to connect preview")}},[W,L]),ee=(0,r.useCallback)((e,t,r=!1)=>{T({anchorX:e,anchorY:t,pending:r}),k(null),N(null)},[]),et=(0,r.useCallback)(e=>{R(e),T(null),k(null),N(null)},[]),er=(0,r.useMemo)(()=>{if(!M)return null;let e=F.renderedWidth||340,t=F.renderedHeight||280,r=Math.max(220,t-24);if(e<=520)return{left:"12px",top:`${Math.max(12,t-Math.min(280,r)-12)}px`,width:`${Math.max(e-24,220)}px`,maxHeight:`${r}px`};let n=Math.min(340,Math.max(e-24,240)),a=Math.max(12,e-n-12),s=Math.max(12,t-280-12),l=M.anchorX+18,i=M.anchorY+18,o=l>a?Math.max(12,M.anchorX-n-18):l,c=i>s?Math.max(12,M.anchorY-280-18):i;return{left:`${Math.min(Math.max(o,12),a)}px`,top:`${Math.min(Math.max(c,12),s)}px`,width:`${n}px`,maxHeight:`${r}px`}},[F.renderedHeight,F.renderedWidth,M]);(0,r.useEffect)(()=>{if(!M)return;let e=e=>{"Escape"===e.key&&T(null)};return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[M]);let en=(0,r.useCallback)(e=>{if(!z.current)return null;let t=z.current.getBoundingClientRect();if(!t.width||!t.height||!z.current.naturalWidth||!z.current.naturalHeight)return null;let r=e.clientX-t.left,n=e.clientY-t.top;return{anchorX:r,anchorY:n,x:r/t.width*z.current.naturalWidth,y:n/t.height*z.current.naturalHeight}},[]),ea=(0,r.useCallback)(e=>{n(e),k(null),N(e.successMessage)},[n]),es=(0,r.useCallback)(async(e,t,r,n)=>{ee(r,n,!0);try{let a=await W({command:"selectAtPoint",x:e,y:t});return ee(r,n,!1),a}catch(e){throw T(null),e}},[ee,W]),el=(0,r.useCallback)(async(e,t)=>{let r=Math.max(F.renderedWidth-44,12);ee(r,12,!0);try{let n=await W({command:"selectBySelector",selector:e,frameId:t});return ee(r,12,!1),n}catch(e){throw T(null),e}},[F.renderedWidth,ee,W]),ei=(0,r.useCallback)(async e=>{if(x)return;let t=en(e);if(t){if(T(null),k(null),N(null),"navigate"===E){H.current?.focus({preventScroll:!0});try{await W({command:"clickAtPoint",x:t.x,y:t.y})}catch(e){w(e instanceof Error?e.message:"Failed to interact with preview")}return}if(J)try{await es(t.x,t.y,t.anchorX,t.anchorY)}catch(e){w(e instanceof Error?e.message:"Failed to select element")}}},[x,J,E,en,W,es]),eo=(0,r.useCallback)(async e=>{if(x||"inspect"!==E||!J)return;let t=en(e);if(t){k(null),N(null);try{let e=await es(t.x,t.y,t.anchorX,t.anchorY);if(!e.selectedElement)throw Error("No element found at the selected point");ea(th(e.selectedElement,e.currentUrl))}catch(e){w(e instanceof Error?e.message:"Failed to queue selected element")}}},[x,J,E,ea,en,es]),ec=(0,r.useCallback)(e=>{if("navigate"!==E||!s?.connected||e.metaKey||e.ctrlKey||e.altKey)return;let t=tc.get(e.key);if(t){e.preventDefault(),q({command:"pressKey",key:t},"Failed to send key to preview");return}1===e.key.length&&(e.preventDefault(),q({command:"typeText",text:e.key},"Failed to type into preview"))},[E,q,s?.connected]),ed=(0,r.useCallback)(e=>{if("navigate"!==E||!s?.connected)return;let t=e.clipboardData.getData("text");t&&(e.preventDefault(),q({command:"typeText",text:t},"Failed to paste into preview"))},[E,q,s?.connected]),eu=(0,r.useCallback)(e=>{if(!s)return void k("Preview state is not loaded yet.");let t=s.consoleLogs.slice(-80),r=s.networkLogs.slice(-80);if("selection"===e&&!s.selectedElement)return void k("Select an element before queueing preview context for terminal input.");if("console"===e&&!t.length)return void k("There are no console logs to send yet.");if("network"===e&&!r.length)return void k("There are no network logs to send yet.");S(e),k(null),N(null);try{let n="selection"===e&&s.selectedElement?th(s.selectedElement,s.currentUrl):"console"===e?tf("console",t,s.currentUrl,s.selectedElement):tf("network",r,s.currentUrl,s.selectedElement);ea(n),"selection"===e&&T(null)}catch(e){k(e instanceof Error?e.message:"Failed to queue preview context")}finally{S(null)}},[ea,s]),em=(0,r.useCallback)(async()=>{let e=s?.selectedElement?.selector;if(e)try{await navigator.clipboard.writeText(e),N("Selector copied to clipboard."),k(null)}catch{k("Clipboard access is unavailable.")}},[s?.selectedElement?.selector]);return(0,t.jsxs)("div",{className:"flex h-full min-h-0 flex-col gap-2 overflow-auto",children:[(0,t.jsxs)(P.Card,{children:[(0,t.jsxs)(P.CardHeader,{className:"flex flex-col items-start gap-2 lg:flex-row lg:items-center lg:justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(l,{className:"h-4 w-4 text-[var(--vk-text-muted)]"}),(0,t.jsx)("span",{className:"text-[13px] font-medium text-[var(--vk-text-normal)]",children:"Dev preview browser"}),s?.connected?(0,t.jsx)(_.Badge,{variant:"success",children:"connected"}):(0,t.jsx)(_.Badge,{variant:"outline",children:"idle"}),V?(0,t.jsx)(_.Badge,{variant:"outline",children:V.isMain?"main frame":"nested frame"}):null]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)(eF.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void U().catch(e=>{w(e instanceof Error?e.message:"Failed to refresh preview")}),disabled:h||x,children:[(0,t.jsx)(ex.RefreshCw,{className:(0,A.cn)("h-3.5 w-3.5",x&&"animate-spin")}),"Refresh"]}),(0,t.jsxs)(eF.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void W({command:"reload"}).catch(e=>{w(e instanceof Error?e.message:"Failed to reload preview")}),disabled:!s?.connected||x,children:[(0,t.jsx)(e$,{className:"h-3.5 w-3.5"}),"Reload page"]})]})]}),(0,t.jsxs)(P.CardContent,{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2 lg:flex-row",children:[(0,t.jsx)("input",{value:L,onChange:e=>$(e.target.value),placeholder:s?.candidateUrls[0]??"http://127.0.0.1:3000",className:"h-9 min-w-0 flex-1 rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-panel)] px-3 text-[13px] text-[var(--vk-text-normal)] outline-none focus:border-[var(--vk-orange)]"}),(0,t.jsxs)(eF.Button,{type:"button",variant:"primary",onClick:()=>void Z(),disabled:x||!L.trim(),children:[x?(0,t.jsx)(eT.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(eL,{className:"h-4 w-4"}),"Connect"]})]}),s?.candidateUrls.length?(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:s.candidateUrls.map(e=>(0,t.jsxs)("button",{type:"button",className:"inline-flex max-w-full items-center gap-1 rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] px-2 py-1 text-left text-[11px] text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)] hover:text-[var(--vk-text-normal)]",onClick:()=>{$(e),W({command:"connect",url:e}).catch(e=>{w(e instanceof Error?e.message:"Failed to connect preview")})},children:[(0,t.jsx)(l,{className:"h-3 w-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate",children:e})]},e))}):null,b||s?.lastError?(0,t.jsxs)("div",{className:"flex items-start gap-2 rounded-[4px] border border-[color:color-mix(in_srgb,var(--vk-red)_45%,transparent)] bg-[color:color-mix(in_srgb,var(--vk-red)_12%,transparent)] px-3 py-2 text-[12px] text-[var(--vk-red)]",children:[(0,t.jsx)(eS,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,t.jsx)("span",{children:b??s?.lastError})]}):null]})]}),(0,t.jsxs)(P.Card,{className:"min-h-0 shrink-0 overflow-hidden",children:[(0,t.jsxs)(P.CardHeader,{className:"flex flex-col items-start gap-2 lg:flex-row lg:items-center lg:justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(eR.Eye,{className:"h-4 w-4 text-[var(--vk-text-muted)]"}),(0,t.jsx)("span",{className:"text-[13px] font-medium text-[var(--vk-text-normal)]",children:"Preview"})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1 rounded-[4px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] p-1",children:[(0,t.jsxs)(eF.Button,{type:"button",size:"sm",variant:"navigate"===E?"primary":"ghost",onClick:()=>et("navigate"),children:[(0,t.jsx)(eL,{className:"h-3.5 w-3.5"}),"Navigate"]}),(0,t.jsxs)(eF.Button,{type:"button",size:"sm",variant:"inspect"===E?"primary":"ghost",onClick:()=>et("inspect"),children:[(0,t.jsx)(eR.Eye,{className:"h-3.5 w-3.5"}),"Inspect"]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-[11px] text-[var(--vk-text-muted)]",children:[(0,t.jsx)(_.Badge,{variant:"outline",children:s?.title?tu(s.title,40):"Untitled page"}),(0,t.jsx)(_.Badge,{variant:"outline",children:"navigate"===E?"navigate mode: clicks interact with the page":J?"inspect mode: click once to select, double-click to queue for terminal input":"inspect mode: use DOM list for this frame"})]})]})]}),(0,t.jsx)(P.CardContent,{className:"min-h-0",children:(0,t.jsx)("div",{className:"flex h-[56vh] min-h-[280px] max-h-[620px] items-center justify-center overflow-auto rounded-[6px] border border-[var(--vk-border)] bg-[#111] p-2 sm:h-[72vh] sm:min-h-[360px] sm:max-h-[760px] sm:p-3",children:h?(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[13px] text-[var(--vk-text-muted)]",children:[(0,t.jsx)(eT.Loader2,{className:"h-4 w-4 animate-spin"}),"Loading preview…"]}):K?(0,t.jsxs)("div",{ref:H,tabIndex:s?.connected?0:-1,onKeyDown:ec,onPaste:ed,className:"relative flex max-h-full max-w-full items-start justify-center overflow-auto rounded-[6px] outline-none focus-visible:ring-2 focus-visible:ring-[var(--vk-orange)] focus-visible:ring-offset-2 focus-visible:ring-offset-[#111]",children:[(0,t.jsx)("img",{ref:z,src:K,alt:"Session preview",className:(0,A.cn)("max-h-full max-w-full rounded-[4px] object-contain shadow-[0_18px_36px_rgba(0,0,0,0.28)]","navigate"===E?"cursor-pointer":J?"cursor-crosshair":"cursor-default"),onClick:e=>void ei(e),onDoubleClick:e=>void eo(e),onLoad:e=>{let t=e.currentTarget;D({naturalWidth:t.naturalWidth,naturalHeight:t.naturalHeight,renderedWidth:t.clientWidth,renderedHeight:t.clientHeight})}}),"inspect"===E&&Q?(0,t.jsx)("div",{className:"pointer-events-none absolute border-2 border-[var(--vk-orange)] bg-[color:color-mix(in_srgb,var(--vk-orange)_18%,transparent)] shadow-[0_0_0_1px_rgba(0,0,0,0.5)]",style:Q}):null,"inspect"===E&&M&&er?(0,t.jsxs)("div",{className:"pointer-events-auto absolute z-20 flex flex-col overflow-hidden rounded-[10px] border border-[var(--vk-border)] bg-[color:color-mix(in_srgb,var(--vk-bg-panel)_94%,black_6%)] shadow-[0_20px_44px_rgba(0,0,0,0.42)] backdrop-blur",style:er,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3 border-b border-[var(--vk-border)] px-3 py-3",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-[0.16em] text-[var(--vk-text-muted)]",children:"Terminal input"}),(0,t.jsx)("div",{className:"mt-1 text-[13px] font-medium text-[var(--vk-text-normal)]",children:M.pending?"Selecting element…":"Queue selection for the terminal"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)(eF.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>void em(),disabled:M.pending||!s?.selectedElement,children:(0,t.jsx)(O.Copy,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(eF.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>T(null),children:(0,t.jsx)(ef.X,{className:"h-3.5 w-3.5"})})]})]}),(0,t.jsx)("div",{className:"flex-1 space-y-3 overflow-y-auto px-3 py-3",children:M.pending?(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-[6px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] px-3 py-3 text-[12px] text-[var(--vk-text-muted)]",children:[(0,t.jsx)(eT.Loader2,{className:"h-4 w-4 animate-spin"}),"Capturing the selected element from the preview…"]}):s?.selectedElement?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"rounded-[6px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] px-3 py-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"font-mono text-[12px] text-[var(--vk-text-normal)]",children:s.selectedElement.tag}),s.selectedElement.role?(0,t.jsx)(_.Badge,{variant:"outline",children:s.selectedElement.role}):null]}),(0,t.jsx)("div",{className:"mt-2 text-[12px] text-[var(--vk-text-normal)]",children:tu(s.selectedElement.name||s.selectedElement.text||"Selected element",140)}),(0,t.jsx)("div",{className:"mt-2 break-all font-mono text-[11px] text-[var(--vk-text-muted)]",children:s.selectedElement.selector})]}),(0,t.jsx)("div",{className:"rounded-[6px] border border-dashed border-[var(--vk-border)] px-3 py-2 text-[12px] text-[var(--vk-text-muted)]",children:"Double-click the element in the preview to queue it immediately, or use the button below. The text is inserted into terminal input instead of being sent to the agent, so you can add more context before submitting."}),y?(0,t.jsx)("div",{className:"text-[12px] text-[var(--vk-red)]",children:y}):null,(0,t.jsxs)(eF.Button,{type:"button",variant:"primary",className:"w-full",onClick:()=>void eu("selection"),disabled:G||!s.selectedElement,children:["selection"===C?(0,t.jsx)(eT.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(eA,{className:"h-4 w-4"}),"Queue for terminal input"]})]}):(0,t.jsx)("div",{className:"rounded-[6px] border border-dashed border-[var(--vk-border)] px-3 py-3 text-[12px] text-[var(--vk-text-muted)]",children:"Single-click an element to inspect it here. Double-click to queue it for terminal input."})})]}):null]}):(0,t.jsx)("div",{className:"max-w-md text-center text-[13px] text-[var(--vk-text-muted)]",children:"Connect a local dev URL to start the preview browser. In Navigate mode, click the preview first, then type directly into the running app. Switch to Inspect mode to select UI elements and queue browser context into terminal input."})})})]}),j?(0,t.jsx)("div",{className:"rounded-[6px] border border-[color:color-mix(in_srgb,var(--vk-green)_35%,transparent)] bg-[color:color-mix(in_srgb,var(--vk-green)_10%,transparent)] px-3 py-2 text-[12px] text-[var(--vk-green)]",children:j}):null,!M&&y?(0,t.jsx)("div",{className:"rounded-[6px] border border-[color:color-mix(in_srgb,var(--vk-red)_35%,transparent)] bg-[color:color-mix(in_srgb,var(--vk-red)_10%,transparent)] px-3 py-2 text-[12px] text-[var(--vk-red)]",children:y}):null,(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsxs)(P.Card,{className:"min-h-0",children:[(0,t.jsxs)(P.CardHeader,{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(eE,{className:"h-4 w-4 text-[var(--vk-text-muted)]"}),(0,t.jsx)("span",{className:"text-[13px] font-medium text-[var(--vk-text-normal)]",children:"Frames and DOM"}),(0,t.jsx)(_.Badge,{variant:"outline",children:"inspect"===E?"inspect":"read-only in navigate mode"})]}),(0,t.jsx)(eF.Button,{type:"button",variant:v?"primary":"outline",size:"sm",onClick:()=>g(e=>!e),children:v?"Interactive only":"All nodes"})]}),(0,t.jsxs)(P.CardContent,{className:"grid gap-2 xl:grid-cols-[220px_minmax(0,1fr)]",children:[(0,t.jsx)("div",{className:"space-y-2",children:s?.frames.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{W({command:"selectFrame",frameId:e.id}).catch(e=>{w(e instanceof Error?e.message:"Failed to select frame")})},className:(0,A.cn)("flex w-full flex-col items-start gap-1 rounded-[4px] border px-2 py-2 text-left transition-colors",s.activeFrameId===e.id?"border-[var(--vk-orange)] bg-[color:color-mix(in_srgb,var(--vk-orange)_10%,transparent)]":"border-[var(--vk-border)] bg-[var(--vk-bg-main)] hover:bg-[var(--vk-bg-hover)]"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(_.Badge,{variant:"outline",children:e.isMain?"main":"frame"}),(0,t.jsx)("span",{className:"truncate text-[12px] text-[var(--vk-text-normal)]",children:e.name})]}),(0,t.jsx)("span",{className:"w-full truncate text-[11px] text-[var(--vk-text-muted)]",children:e.url||"about:blank"})]},e.id))}),(0,t.jsx)("div",{className:"rounded-[4px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)]",children:(0,t.jsx)(ti,{className:"h-[240px] sm:h-[300px] xl:h-[360px]",children:(0,t.jsxs)("div",{className:"space-y-1 p-2",children:["navigate"===E?(0,t.jsx)("div",{className:"rounded-[4px] border border-dashed border-[var(--vk-border)] px-2 py-2 text-[11px] text-[var(--vk-text-muted)]",children:"Switch to Inspect mode to pick DOM nodes. Single-click selects a node. Double-click queues it for terminal input."}):null,u?(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-2 text-[12px] text-[var(--vk-text-muted)]",children:[(0,t.jsx)(eT.Loader2,{className:"h-4 w-4 animate-spin"}),"Inspecting frame DOM…"]}):c.length?c.map((e,r)=>(0,t.jsxs)("button",{type:"button",className:(0,A.cn)("w-full rounded-[4px] border border-[transparent] px-2 py-2 text-left","inspect"===E?"hover:border-[var(--vk-border)] hover:bg-[var(--vk-bg-hover)]":"cursor-not-allowed opacity-60"),disabled:"inspect"!==E,onClick:()=>{T(null),k(null),N(null),el(e.selector,s?.activeFrameId).catch(e=>{w(e instanceof Error?e.message:"Failed to select DOM node")})},onDoubleClick:()=>{k(null),N(null),el(e.selector,s?.activeFrameId).then(e=>{if(!e.selectedElement)throw Error("Failed to resolve the selected DOM node");ea(th(e.selectedElement,e.currentUrl))}).catch(e=>{w(e instanceof Error?e.message:"Failed to queue DOM node")})},children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"font-mono text-[12px] text-[var(--vk-text-normal)]",children:e.tag}),e.interactive?(0,t.jsx)(_.Badge,{variant:"warning",children:"interactive"}):null,e.role?(0,t.jsx)(_.Badge,{variant:"outline",children:e.role}):null]}),(0,t.jsx)("div",{className:"mt-1 break-all font-mono text-[11px] text-[var(--vk-text-muted)]",children:e.selector}),e.text?(0,t.jsx)("div",{className:"mt-1 text-[12px] text-[var(--vk-text-normal)]",children:tu(e.text,180)}):null]},`${e.id??"node"}-${r}-${e.selector}-${e.tag}-${e.text}`)):(0,t.jsx)("div",{className:"px-2 py-3 text-[12px] text-[var(--vk-text-muted)]",children:"No DOM nodes to show for the current frame yet."})]})})})]})]}),(0,t.jsxs)("div",{className:"grid gap-2 lg:grid-cols-2",children:[(0,t.jsxs)(P.Card,{className:"min-h-0",children:[(0,t.jsxs)(P.CardHeader,{className:"flex items-center justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(o,{className:"h-4 w-4 text-[var(--vk-text-muted)]"}),(0,t.jsx)("span",{className:"text-[13px] font-medium text-[var(--vk-text-normal)]",children:"Console"}),(0,t.jsx)(_.Badge,{variant:"outline",children:s?.consoleLogs.length??0})]}),(0,t.jsxs)(eF.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>void eu("console"),disabled:G||!s?.consoleLogs.length,children:["console"===C?(0,t.jsx)(eT.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(eA,{className:"h-3.5 w-3.5"}),"Queue for terminal"]})]}),(0,t.jsx)(P.CardContent,{children:(0,t.jsx)(ti,{className:"h-[220px] sm:h-[260px] rounded-[4px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)]",children:(0,t.jsx)("div",{className:"space-y-1 p-2",children:s?.consoleLogs.length?s.consoleLogs.map(e=>(0,t.jsxs)("div",{className:"rounded-[3px] px-2 py-1.5 text-[11px] text-[var(--vk-text-normal)]",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-wide text-[var(--vk-text-muted)]",children:[(0,t.jsx)("span",{children:e.level}),(0,t.jsx)("span",{children:td(e.timestamp)})]}),(0,t.jsx)("div",{className:"mt-1 whitespace-pre-wrap break-all font-mono",children:e.message})]},e.id)):(0,t.jsx)("div",{className:"px-2 py-3 text-[12px] text-[var(--vk-text-muted)]",children:"Console output appears here once the page loads."})})})})]}),(0,t.jsxs)(P.Card,{className:"min-h-0",children:[(0,t.jsxs)(P.CardHeader,{className:"flex items-center justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(eM,{className:"h-4 w-4 text-[var(--vk-text-muted)]"}),(0,t.jsx)("span",{className:"text-[13px] font-medium text-[var(--vk-text-normal)]",children:"Network"}),(0,t.jsx)(_.Badge,{variant:"outline",children:s?.networkLogs.length??0})]}),(0,t.jsxs)(eF.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>void eu("network"),disabled:G||!s?.networkLogs.length,children:["network"===C?(0,t.jsx)(eT.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(eA,{className:"h-3.5 w-3.5"}),"Queue for terminal"]})]}),(0,t.jsx)(P.CardContent,{children:(0,t.jsx)(ti,{className:"h-[220px] sm:h-[260px] rounded-[4px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)]",children:(0,t.jsx)("div",{className:"space-y-1 p-2",children:s?.networkLogs.length?s.networkLogs.map(e=>(0,t.jsxs)("div",{className:"rounded-[3px] px-2 py-1.5 text-[11px] text-[var(--vk-text-normal)]",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-wide text-[var(--vk-text-muted)]",children:[(0,t.jsx)("span",{children:e.method??"GET"}),"number"==typeof e.status?(0,t.jsx)("span",{children:e.status}):null,e.resourceType?(0,t.jsx)("span",{children:e.resourceType}):null,(0,t.jsx)("span",{children:td(e.timestamp)})]}),(0,t.jsx)("div",{className:"mt-1 break-all font-mono",children:e.url??e.message})]},e.id)):(0,t.jsx)("div",{className:"px-2 py-3 text-[12px] text-[var(--vk-text-muted)]",children:"Network requests appear here after the preview loads."})})})})]})]})]})]})}let tg=(0,a.default)("paperclip",[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]]),tb={background:"#000000",foreground:"#ffffff",cursor:"#ffffff",cursorAccent:"#000000",selectionBackground:"#4d4d4d",black:"#2e3436",red:"#cc0000",green:"#4e9a06",yellow:"#c4a000",blue:"#3465a4",magenta:"#75507b",cyan:"#06989a",white:"#d3d7cf",brightBlack:"#555753",brightRed:"#ef2929",brightGreen:"#8ae234",brightYellow:"#fce94f",brightBlue:"#729fcf",brightMagenta:"#ad7fa8",brightCyan:"#34e2e2",brightWhite:"#eeeeec"},tw={background:"#ffffff",foreground:"#000000",cursor:"#000000",cursorAccent:"#ffffff",selectionBackground:"#add6ff",black:"#2e3436",red:"#cc0000",green:"#4e9a06",yellow:"#c4a000",blue:"#3465a4",magenta:"#75507b",cyan:"#06989a",white:"#d3d7cf",brightBlack:"#555753",brightRed:"#ef2929",brightGreen:"#8ae234",brightYellow:"#fce94f",brightBlue:"#729fcf",brightMagenta:"#ad7fa8",brightCyan:"#34e2e2",brightWhite:"#eeeeec"};async function ty(e){let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/feed`,{cache:"no-store"});if(!t.ok)throw Error(`Failed to load chat feed: ${t.status}`);return t.json()}let tk=new Set(["queued","spawning","running","working","needs_input","stuck"]),tj=new Set(["done","needs_input","stuck","errored","terminated","killed"]),tN=new Set([1e3,1002,1003,1005,1006,1015,1047,1048,1049]);function tC(e){return`'${e.replace(/'/g,"'\\''")}'`}async function tS(e){return e.length?(await Promise.all(e.map(async e=>{let t=new FormData;t.append("file",e);let r=await fetch("/api/attachments",{method:"POST",body:t});if(!r.ok)throw Error(`Failed to upload ${e.name}`);let n=await r.json(),a=n&&"object"==typeof n?n:null,s=a?.attachment&&"object"==typeof a.attachment?a.attachment:null;for(let e of[a?.absolutePath,a?.path,a?.filePath,s?.absolutePath,s?.path,s?.filePath])if("string"==typeof e&&e.trim().length>0)return e.trim();throw Error(`Attachment response for ${e.name} did not include a file path`)}))).filter(Boolean):[]}async function tE(e){let t=await fetch(`/api/sessions/${encodeURIComponent(e)}/terminal/connection`,{cache:"no-store"}),r=await t.json().catch(()=>null);if(!t.ok||"string"!=typeof r?.wsUrl||0===r.wsUrl.trim().length)throw Error(r?.error??`Failed to resolve terminal connection: ${t.status}`);return{wsUrl:r.wsUrl.trim()}}async function tR(e,t){let r=await fetch(`/api/sessions/${encodeURIComponent(e)}/terminal/snapshot?lines=${t}`,{cache:"no-store"}),n=await r.json().catch(()=>null);if(!r.ok)throw Error(n?.error??`Failed to resolve terminal snapshot: ${r.status}`);return{snapshot:"string"==typeof n?.snapshot?n.snapshot:"",source:"string"==typeof n?.source?n.source:"empty",live:n?.live===!0,restored:n?.restored===!0}}function tM(e){return e<420?{fontFamily:"'SF Mono', Menlo, Monaco, monospace",fontSize:11,lineHeight:1}:e<640?{fontFamily:"'SF Mono', Menlo, Monaco, monospace",fontSize:13,lineHeight:1.08}:{fontFamily:'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',fontSize:17,lineHeight:1.06}}function tT({sessionId:a,agentName:s,projectId:l,sessionModel:i,sessionReasoningEffort:o,sessionState:c,active:d,pendingInsert:u}){let m=(0,n.useRouter)(),{sessionStatus:x,refresh:p}=function(e){let[t,n]=(0,r.useState)([]),[a,s]=(0,r.useState)(!0),[l,i]=(0,r.useState)(null),[o,c]=(0,r.useState)(null),[d,u]=(0,r.useState)(null),[m,x]=(0,r.useState)(null),p=(0,r.useRef)(!1),h=(0,r.useRef)(!0),f=(0,r.useRef)(!1),v=(0,r.useRef)(!1),g=(0,r.useRef)(null),b=(0,r.useCallback)(e=>{let t=Array.isArray(e.entries)?e.entries:[];n(e=>!function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0;r<e.length;r+=1){let n=e[r],a=t[r];if(!n||!a||n.id!==a.id||n.kind!==a.kind||n.label!==a.label||n.text!==a.text||n.createdAt!==a.createdAt||n.streaming!==a.streaming||n.source!==a.source||n.attachments.length!==a.attachments.length)return!1;let s="string"==typeof n.metadata?.toolTitle?n.metadata.toolTitle:null,l="string"==typeof a.metadata?.toolTitle?a.metadata.toolTitle:null,i="string"==typeof n.metadata?.toolStatus?n.metadata.toolStatus:null,o="string"==typeof a.metadata?.toolStatus?a.metadata.toolStatus:null,c="string"==typeof n.metadata?.toolKind?n.metadata.toolKind:null,d="string"==typeof a.metadata?.toolKind?a.metadata.toolKind:null,u=Array.isArray(n.metadata?.toolContent)?n.metadata.toolContent:[],m=Array.isArray(a.metadata?.toolContent)?a.metadata.toolContent:[];if(s!==l||i!==o||c!==d||u.length!==m.length)return!1;for(let e=0;e<u.length;e+=1)if(u[e]!==m[e])return!1}return!0}(e,t)?t:e);let r="string"==typeof e.sessionStatus?e.sessionStatus:null;c(r),r&&B.TERMINAL_STATUSES.has(r)&&(p.current=!0),u(t=>{let r=function(e){if(!e||"object"!=typeof e)return null;let t="string"==typeof e.kind?e.kind.trim():"",r="string"==typeof e.message?e.message.trim():"",n="string"==typeof e.command&&e.command.trim().length>0?e.command.trim():null;return t&&r?{kind:t,message:r,command:n}:null}(e.parserState);return null===t&&null===r||t?.kind===r?.kind&&t?.message===r?.message&&t?.command===r?.command?t:r}),x(t=>{var r;let n=(r=e.runtimeStatus)&&"object"==typeof r?r:null;return JSON.stringify(t)===JSON.stringify(n)?t:n}),i("string"==typeof e.error&&e.error.trim().length>0?e.error.trim():null),s(!1)},[]),w=(0,r.useCallback)(async()=>{if(!e){n([]),s(!1),i(null),c(null),u(null),x(null);return}if(f.current){v.current=!0;return}f.current=!0;do{try{let t=await ty(e);if(!h.current)break;b(t)}catch(t){if(!h.current)break;let e=t instanceof Error?t.message:"Failed to load chat feed";e.includes("404")&&(n([]),c(null),u(null),x(null)),i(e),s(!1)}if(!v.current)break;v.current=!1}while(h.current)f.current=!1},[e]);return(0,r.useEffect)(()=>{if(h.current=!0,p.current=!1,g.current=null,v.current=!1,n([]),c(null),u(null),x(null),i(null),s(!0),w(),!e)return()=>{h.current=!1};let t=()=>{p.current||(g.current=null,w())},r=()=>{"visible"!==document.visibilityState||p.current||(g.current=null,w())};window.addEventListener("focus",t),document.addEventListener("visibilitychange",r);let a=null,l=null,o=()=>{null!==l&&(window.clearTimeout(l),l=null)},d=()=>{o();let e=p.current?3e4:"visible"===document.visibilityState?4e3:15e3;l=window.setTimeout(async()=>{await w(),h.current&&d()},e)};d(),"u">typeof EventSource&&((a=new EventSource(`/api/sessions/${encodeURIComponent(e)}/feed/stream`)).onmessage=e=>{if(h.current)try{let t=JSON.parse(e.data);b(t),d()}catch{}},a.addEventListener("refresh",()=>{h.current&&(w(),d())}),a.onerror=()=>{h.current&&(w(),d())});let m=(0,I.subscribeToSnapshotEvents)(t=>{if(!h.current)return;let r=t.sessions.find(t=>t.id===e),n=r?[r.id,r.status,r.activity??"",r.lastActivityAt,r.summary??""].join(":"):"missing";g.current!==n&&(g.current=n,w(),d())});return()=>{h.current=!1,o(),a?.close(),m(),window.removeEventListener("focus",t),document.removeEventListener("visibilitychange",r)}},[w,e]),(0,r.useMemo)(()=>({entries:t,loading:a,error:l,sessionStatus:o,parserState:d,runtimeStatus:m,refresh:w}),[t,l,a,d,w,m,o])}(a),h=(0,r.useRef)(null),f=(0,r.useRef)(null),v=(0,r.useRef)(null),g=(0,r.useRef)(null),b=(0,r.useRef)(null),w=(0,r.useRef)(null),y=(0,r.useRef)(null),k=(0,r.useRef)(0),j=(0,r.useRef)(0),N=(0,r.useRef)(null),C=(0,r.useRef)(null),S=(0,r.useRef)(null),E=(0,r.useRef)(null),R=(0,r.useRef)(c),M=(0,r.useRef)(d),T=(0,r.useRef)(!1),L=(0,r.useRef)(!1),A=(0,r.useRef)(null),$=(0,r.useRef)(!1),F=(0,r.useRef)(!1),D=(0,r.useRef)(null),P=(0,r.useRef)(null),_=(0,r.useRef)(0),z=(0,r.useRef)(!1),H=(0,r.useRef)([]),U=(0,r.useRef)(0),[O,W]=(0,r.useState)(!1),[q,Y]=(0,r.useState)(null),[K,V]=(0,r.useState)("connecting"),[X,G]=(0,r.useState)(null),[J,Q]=(0,r.useState)(0),[Z,ee]=(0,r.useState)(""),[et,er]=(0,r.useState)([]),[ea,el]=(0,r.useState)(!1),[ei,eo]=(0,r.useState)(null),[ec,ed]=(0,r.useState)(!1),[eu,em]=(0,r.useState)(!1),[eh,ev]=(0,r.useState)(""),[eg,eb]=(0,r.useState)(!1),[ew,ey]=(0,r.useState)(!1),[ek,ej]=(0,r.useState)(""),eN=(0,r.useMemo)(()=>("string"==typeof x&&x.trim().length>0?x:c).trim().toLowerCase(),[c,x]);R.current=eN,M.current=d;let eC=tk.has(eN),eS=tj.has(eN)&&!eC,eE="done"===eN?"Continue the session...":"needs_input"===eN||"stuck"===eN?"Answer the agent and resume...":"Restart this session with a follow-up...",eR=(0,r.useCallback)(()=>{ee(e=>0===e.trim().length?"":e)},[]),eM=(0,r.useCallback)(()=>{null!==y.current&&(window.clearTimeout(y.current),y.current=null)},[]),eL=(0,r.useCallback)(()=>{eM(),k.current+=1;let e=Math.min(1600,300*k.current);y.current=window.setTimeout(()=>{Q(e=>e+1)},e)},[eM]),eA=(0,r.useCallback)(()=>{eM(),G(null),V("connecting"),Y(null),Q(e=>e+1)},[eM]),e$=(0,r.useCallback)(()=>{let e=f.current,t=w.current;e&&t&&t.readyState===WebSocket.OPEN&&t.send(JSON.stringify({type:"resize",cols:Math.max(1,e.cols),rows:Math.max(1,e.rows)}))},[]),eD=(0,r.useCallback)(e=>{let t=w.current;if(!t||t.readyState!==WebSocket.OPEN)throw Error("Terminal is not connected");t.send(JSON.stringify({type:"keys",keys:e}))},[]),eP=(0,r.useCallback)(()=>{let e=f.current;if(!e)return void eb(!1);let t=e.buffer.active;eb(t.viewportY<t.baseY)},[]),e_=(0,r.useCallback)(()=>{null!==D.current&&(window.cancelAnimationFrame(D.current),D.current=null),null!==P.current&&(window.clearTimeout(P.current),P.current=null),z.current=!1},[]),eI=(0,r.useCallback)(()=>{for(let e of H.current)window.clearTimeout(e);H.current=[]},[]),eB=(0,r.useCallback)(e=>{let t=f.current,r=v.current,n=h.current;if(!t||!r||!n)return;let a=window.getComputedStyle(n);if("none"===a.display||"hidden"===a.visibility)return;let s=n.getBoundingClientRect();if(s.width<=1||s.height<=1)return;let l=t.cols,i=t.rows,o=t.buffer.active.viewportY>=t.buffer.active.baseY;try{r.fit()}catch{return}e&&t.refresh(0,Math.max(0,t.rows-1)),(e||t.cols!==l||t.rows!==i)&&e$(),o&&t.scrollToBottom(),eP(),M.current&&t.focus()},[e$,eP]),ez=(0,r.useCallback)(e=>{z.current||=e,null===D.current&&(D.current=window.requestAnimationFrame(()=>{D.current=null;let e=Date.now();if(e-_.current<120){let t=120-(e-_.current);null!==P.current&&window.clearTimeout(P.current),P.current=window.setTimeout(()=>{P.current=null,ez(z.current)},t+1);return}_.current=e;let t=z.current;z.current=!1,eB(t)}))},[eB]),eH=(0,r.useCallback)(e=>{e.length&&er(t=>[...t,...e.map(e=>({file:e}))])},[]),eU=(0,r.useCallback)(async e=>{let t=await tS(e);t.length&&eD(t.map(tC).join(" "))},[eD]),eO=(0,r.useCallback)(async e=>{if(e.length){eo(null);try{if(eC&&"live"===K)return void await eU(e);eH(e)}catch(e){eo(e instanceof Error?e.message:"Failed to process files")}}},[K,eC,eU,eH]);(0,r.useEffect)(()=>{let e=F.current;F.current=eC,e&&!eC&&(A.current=null,$.current=!1)},[eC]),(0,r.useEffect)(()=>{T.current=!1,L.current=!1,A.current=null,$.current=!1,k.current=0,j.current=0,U.current=0,eM(),e_(),w.current?.close(),w.current=null,Y(null),V("connecting"),G(null),ee(""),er([]),el(!1),eo(null),ed(!1),em(!1),ev(""),eb(!1),ey(!1),ej(""),f.current?.reset(),eP()},[eM,e_,a,eP]),(0,r.useEffect)(()=>{let e=!0;return(ey(!1),ej(""),eC)?(ey(!0),()=>{e=!1}):((async()=>{try{let t=await tR(a,2e5);if(!e)return;ej(t.snapshot)}catch{if(!e)return;ej("")}finally{e&&ey(!0)}})(),()=>{e=!1})},[eC,a]),(0,r.useEffect)(()=>{let e=!0;return(async()=>{try{Y(null);let t=await tE(a);if(!e)return;Y(t.wsUrl),G(null)}catch(t){if(!e)return;G(t instanceof Error?t.message:"Failed to resolve terminal connection"),V("error")}})(),()=>{e=!1}},[J,a]),(0,r.useEffect)(()=>{let t=null,r=null,n=!0;return async function(){if(!h.current||!n)return;let[a,s,l]=await Promise.all([e.A(37138),e.A(59439),e.A(64183)]);if(!n||!h.current)return;let i=document.documentElement.classList.contains("light"),o=tM(window.innerWidth),c={allowTransparency:!1,cursorBlink:!0,cursorStyle:"block",disableStdin:!1,drawBoldTextInBrightColors:!0,fontFamily:o.fontFamily,fontSize:o.fontSize,fastScrollSensitivity:4,lineHeight:o.lineHeight,scrollSensitivity:1.1,scrollback:2e5,theme:i?tw:tb,scrollbar:{showScrollbar:!1}};t=new a.Terminal(c);let d=e=>{t?.parser.registerCsiHandler({prefix:"?",final:e},e=>!!e.some(e=>Array.isArray(e)?e.some(e=>tN.has(e)):tN.has(e)))};d("h"),d("l"),t.attachCustomWheelEventHandler(e=>{let r=e.deltaMode===WheelEvent.DOM_DELTA_LINE?e.deltaY:e.deltaY/14,n=0===r?0:r>0?Math.max(1,Math.round(r)):Math.min(-1,Math.round(r));return 0!==n&&(e.preventDefault(),e.stopPropagation(),t?.scrollLines(n),eP(),!1)}),r=new s.FitAddon,t.loadAddon(r);let u=new l.SearchAddon;t.loadAddon(u),t.open(h.current),r.fit(),f.current=t,v.current=r,g.current=u,W(!0),eP(),N.current=t.onData(e=>{let t=w.current;t&&t.readyState===WebSocket.OPEN&&t.send(JSON.stringify({type:"keys",keys:e}))}),C.current=t.onScroll(()=>{eP()}),b.current=new ResizeObserver(()=>{if(M.current&&t){try{let e=tM(window.innerWidth);t.options.fontFamily=e.fontFamily,t.options.fontSize=e.fontSize,t.options.lineHeight=e.lineHeight}catch{return}ez(!0)}}),b.current.observe(h.current)}(),()=>{n=!1,N.current?.dispose(),N.current=null,C.current?.dispose(),C.current=null,b.current?.disconnect(),b.current=null,t&&t.dispose(),f.current=null,v.current=null,g.current=null,W(!1)}},[ez,e$,eP]),(0,r.useEffect)(()=>{if(!d)return;eI();let e=window.requestAnimationFrame(()=>{ez(!0),H.current.push(window.setTimeout(()=>{ez(!0)},48)),H.current.push(window.setTimeout(()=>{ez(!0)},140))});return()=>{window.cancelAnimationFrame(e),eI()}},[d,eI,ez]),(0,r.useEffect)(()=>{if(!O||!ew)return;let e=f.current;if(e&&A.current!==a){if(eC&&($.current||function(e){let t=e.buffer.active;if(t.baseY>0)return!0;for(let r=0;r<e.rows;r+=1){let e=t.getLine(r);if(e&&e.translateToString(!0).trim().length>0)return!0}return!1}(e))){A.current=a,eP();return}if(A.current=a,ek.length>0){e.reset(),e.write(ek.replace(/\r?\n/g,"\r\n"),()=>{if(f.current===e&&(eP(),M.current))try{e.focus()}catch{}});return}eP()}},[a,ek,ew,O,eP]),(0,r.useEffect)(()=>{let e=()=>{document.hidden||(eR(),ez(!1))},t=()=>{eR(),ez(!1)};return document.addEventListener("visibilitychange",e),window.addEventListener("focus",t),()=>{document.removeEventListener("visibilitychange",e),window.removeEventListener("focus",t)}},[eR,ez]),(0,r.useEffect)(()=>{var e,t;let r;if(!O||!q||!f.current||!eC)return;let n=f.current,a=(e=n.cols,t=n.rows,(r=new URL(q)).searchParams.set("cols",String(Math.max(1,e))),r.searchParams.set("rows",String(Math.max(1,t))),r.toString()),s=j.current+1;j.current=s,eM(),V("connecting");let l=new WebSocket(a);return l.binaryType="arraybuffer",w.current=l,l.onopen=()=>{if(j.current!==s)return;k.current=0,G(null),V("live");let e=T.current;T.current=!0,L.current=!1,e&&n.writeln("\r\n\x1b[90m[Reconnected]\x1b[0m"),eP(),ez(!0)},l.onmessage=e=>{if(j.current===s){if("string"==typeof e.data){try{let t=JSON.parse(e.data);"error"===t.type?(G(t.error),V("error")):"exit"===t.type&&V("closed")}catch{G("Received an invalid terminal event"),V("error")}return}if(e.data instanceof ArrayBuffer){$.current=!0;let t=n.buffer.active.viewportY>=n.buffer.active.baseY;n.write(new Uint8Array(e.data),()=>{if(f.current===n){if(t)try{n.scrollToBottom()}catch{return}eP()}})}}},l.onclose=()=>{if(j.current===s){if(w.current=null,tk.has(R.current)){let e=f.current;e&&T.current&&!L.current&&(L.current=!0,e.writeln("\r\n\x1b[90m[Connection lost. Reconnecting...]\x1b[0m")),V("connecting"),Y(null),eL();return}V("closed")}},l.onerror=()=>{j.current===s&&(G("Terminal connection failed"),V("error"))},()=>{w.current===l&&(w.current=null),l.close()}},[eM,eC,J,eL,ez,q,O,eP]),(0,r.useEffect)(()=>{if(!O||!ew||!eC)return;let e=w.current;e&&(e.readyState===WebSocket.CONNECTING||e.readyState===WebSocket.OPEN)||"closed"!==K&&"error"!==K||null===y.current&&eL()},[K,eC,eL,ew,O]),(0,r.useEffect)(()=>()=>{eM(),e_(),eI(),w.current?.close()},[eM,e_,eI]),(0,r.useEffect)(()=>{let e=h.current;if(!e)return;let t=e=>{let t=e.clipboardData;if(!t)return;let r=Array.from(t.files??[]),n=(t.getData("text/plain")??"").length>0;r.length&&!n&&(e.preventDefault(),eO(r))};return e.addEventListener("paste",t,{capture:!0}),()=>{e.removeEventListener("paste",t,{capture:!0})}},[eO]);let eW=(0,r.useCallback)(async()=>{let e=Z.trim();if(e||0!==et.length){el(!0),eo(null);try{let t=await tS(et.map(e=>e.file)),r=await fetch(`/api/sessions/${encodeURIComponent(a)}/send`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:e,attachments:t,model:i||null,reasoningEffort:o||null,projectId:l||null})}),n=await r.json().catch(()=>null);if(!r.ok)throw Error(n?.error??`Failed to send message: ${r.status}`);if(ee(""),er([]),n?.sessionId&&n.sessionId!==a)return void m.push(`/sessions/${encodeURIComponent(n.sessionId)}`);Q(e=>e+1),await p()}catch(e){eo(e instanceof Error?e.message:"Failed to resume session")}finally{el(!1)}}},[et,Z,l,p,m,a,i,o]);(0,r.useEffect)(()=>{if(!u||u.nonce<=U.current)return;if(U.current=u.nonce,eo(null),eC&&"live"===K){try{let e=u.inlineText.trim();e.length>0&&eD(`${e} `)}catch(e){eo(e instanceof Error?e.message:"Failed to insert preview context into terminal")}return}let e=u.draftText.trim();0!==e.length&&ee(t=>t.trim().length>0?`${t}
|
|
2
|
+
|
|
3
|
+
${e}`:e)},[K,eC,u,eD]);let eq=(0,r.useCallback)(e=>{let t=g.current;t&&0!==eh.trim().length&&("next"===e?t.findNext(eh,{incremental:!0,caseSensitive:!1}):t.findPrevious(eh,{incremental:!0,caseSensitive:!1}))},[eh]),eY=(0,r.useCallback)(()=>{let e=f.current;e&&(e.scrollToBottom(),eP(),M.current&&e.focus())},[eP]),eK=(0,r.useCallback)(()=>{em(!1),ev(""),M.current&&f.current?.focus()},[]);return(0,t.jsxs)("div",{className:"group/terminal relative flex h-full min-h-0 flex-col overflow-hidden rounded-[14px] border border-white/10 bg-[#060404] shadow-[inset_0_1px_0_rgba(255,255,255,0.04)]",onDragOver:e=>{e.preventDefault(),ed(!0)},onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||ed(!1)},onDrop:e=>{e.preventDefault(),ed(!1);let t=Array.from(e.dataTransfer.files??[]),r=e.dataTransfer.getData("text/plain").trim();if(t.length>0)return void eO(t);if(r)try{if(eC&&"live"===K){let e=r.startsWith("/")?tC(r):r;eD(e);return}ee(e=>e.length>0?`${e}
|
|
4
|
+
${r}`:r)}catch(e){eo(e instanceof Error?e.message:"Failed to write drop payload")}},children:[eu?(0,t.jsxs)("div",{className:"absolute right-2 top-2 z-10 flex max-w-[calc(100%-1rem)] items-center rounded bg-[#141010]/95 pl-2 pr-0.5 shadow-lg ring-1 ring-white/10 backdrop-blur sm:right-3 sm:top-3 sm:max-w-[calc(100%-1.5rem)]",children:[(0,t.jsx)(ep.Search,{className:"h-3.5 w-3.5 text-[#8e847d]"}),(0,t.jsx)("input",{value:eh,onChange:e=>ev(e.target.value),onKeyDown:e=>{"Enter"===e.key?(e.preventDefault(),eq(e.shiftKey?"prev":"next")):"Escape"===e.key&&(e.preventDefault(),eK())},placeholder:"Find",className:"h-6 w-20 min-w-0 bg-transparent px-2 text-[11px] text-[#efe8e1] outline-none placeholder:text-[#7d746e] sm:w-28 sm:text-[12px]"}),(0,t.jsx)(eF.Button,{type:"button",size:"icon",variant:"ghost",className:"h-6 w-6 text-[#c9c0b7]",onClick:()=>eq("prev"),"aria-label":"Find previous",children:(0,t.jsx)("span",{className:"text-[11px]",children:"↑"})}),(0,t.jsx)(eF.Button,{type:"button",size:"icon",variant:"ghost",className:"h-6 w-6 text-[#c9c0b7]",onClick:()=>eq("next"),"aria-label":"Find next",children:(0,t.jsx)("span",{className:"text-[11px]",children:"↓"})}),(0,t.jsx)(eF.Button,{type:"button",size:"icon",variant:"ghost",className:"h-6 w-6 text-[#c9c0b7]",onClick:eK,"aria-label":"Close search",children:(0,t.jsx)(ef.X,{className:"h-3.5 w-3.5"})})]}):(0,t.jsxs)("div",{className:`absolute right-2 top-2 z-10 flex items-center gap-1.5 transition-opacity sm:right-3 sm:top-3 sm:gap-2 ${"live"===K?"opacity-0 group-hover/terminal:opacity-100 focus-within:opacity-100":"opacity-100"}`,children:["live"!==K?(0,t.jsx)(eF.Button,{type:"button",size:"icon",variant:"ghost",className:`pointer-events-auto h-7 w-7 rounded-full border backdrop-blur-sm sm:h-8 sm:w-8 ${X?"border-[#ff8f7a]/25 bg-[#2a1616]/92 text-[#ff8f7a] hover:bg-[#351b1b]":"border-white/10 bg-[#141010]/92 text-[#c9c0b7] hover:bg-[#201818]"}`,onClick:eA,"aria-label":"Reconnect",children:"connecting"===K?(0,t.jsx)(eT.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):X?(0,t.jsx)(es,{className:"h-3.5 w-3.5"}):(0,t.jsx)(ex.RefreshCw,{className:"h-3.5 w-3.5"})}):null,(0,t.jsx)(eF.Button,{type:"button",size:"icon",variant:"ghost",className:"pointer-events-auto h-7 w-7 rounded-full border border-white/10 bg-[#141010]/92 text-[#c9c0b7] backdrop-blur-sm hover:bg-[#201818] sm:h-8 sm:w-8",onClick:()=>em(!0),"aria-label":"Search terminal",children:(0,t.jsx)(ep.Search,{className:"h-3.5 w-3.5"})})]}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden px-0.5 pb-1 pt-2 sm:px-1.5 sm:pb-1.5 sm:pt-3",children:(0,t.jsx)("div",{ref:h,className:"h-full w-full overflow-hidden"})}),eg?(0,t.jsx)("div",{className:`pointer-events-none absolute left-1/2 z-10 -translate-x-1/2 ${eS?"bottom-24":"bottom-4"}`,children:(0,t.jsxs)(eF.Button,{type:"button",size:"sm",variant:"ghost",className:"pointer-events-auto h-9 rounded-full border border-white/10 bg-[#141010]/92 px-3 text-[#efe8e1] shadow-[0_14px_28px_rgba(0,0,0,0.38)] backdrop-blur-sm hover:bg-[#201818]",onClick:eY,"aria-label":"Scroll to bottom",children:[(0,t.jsx)(en.ChevronDown,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"ml-1 text-[11px] uppercase tracking-[0.16em]",children:"Jump to latest"})]})}):null,ec?(0,t.jsx)("div",{className:"pointer-events-none absolute inset-4 z-10 flex items-center justify-center rounded-[18px] border border-dashed border-white/20 bg-black/55",children:(0,t.jsx)("span",{className:"rounded-full border border-white/10 bg-white/6 px-4 py-2 text-[12px] text-[#efe8e1]",children:eC?"Drop files or screenshots to insert uploaded paths into the terminal":"Drop files or screenshots to attach them before resuming"})}):null,eS?(0,t.jsxs)("div",{className:"border-t border-white/8 bg-[#0b0808]/98 px-3 py-3",children:[et.length>0?(0,t.jsx)("div",{className:"mb-2 flex flex-wrap gap-2",children:et.map(({file:e})=>(0,t.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 rounded-full border border-white/12 bg-white/6 px-2.5 py-1 text-[11px] text-[#d7cec7]",onClick:()=>{er(t=>t.filter(t=>t.file!==e))},children:[(0,t.jsx)(tg,{className:"h-3 w-3"}),e.name]},`${e.name}-${e.lastModified}`))}):null,(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[(0,t.jsx)("textarea",{ref:E,value:Z,onChange:e=>ee(e.target.value),onFocus:()=>{eR()},onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&(e.preventDefault(),eW())},placeholder:eE,className:"min-h-[52px] flex-1 resize-none rounded-[14px] border border-white/10 bg-black/35 px-3 py-2 text-[13px] text-[#efe8e1] outline-none placeholder:text-[#7d746e] focus:border-white/20"}),(0,t.jsx)("input",{ref:S,type:"file",className:"hidden",multiple:!0,onChange:e=>{let t=Array.from(e.target.files??[]);t.length>0&&eH(t),e.target.value=""}}),(0,t.jsx)("button",{type:"button",className:"rounded-full border border-white/12 bg-white/6 p-2 text-[#d7cec7] transition hover:bg-white/10",onClick:()=>S.current?.click(),"aria-label":"Attach files",children:(0,t.jsx)(tg,{className:"h-4 w-4"})}),(0,t.jsx)("button",{type:"button",className:"rounded-full border border-[#f3f0ea]/12 bg-[#f3f0ea] px-4 py-2 text-[12px] font-medium text-[#0d0909] transition hover:bg-white disabled:cursor-not-allowed disabled:opacity-50",disabled:ea||!Z.trim()&&0===et.length,onClick:()=>{eW()},children:ea?"Starting...":"Resume"})]}),ei?(0,t.jsx)("p",{className:"mt-2 text-[12px] text-[#ff8f7a]",children:ei}):null]}):ei?(0,t.jsx)("div",{className:"absolute bottom-3 left-3 rounded-full border border-[#ff8f7a]/30 bg-[#1d1111]/90 px-3 py-1.5 text-[12px] text-[#ff8f7a] backdrop-blur-sm",children:ei}):null]})}function tL(e){return"overview"===e||"terminal"===e||"diff"===e||"preview"===e?e:"terminal"}function tA({sessionId:e}){let a=(0,n.usePathname)(),c=(0,n.useRouter)(),d=(0,n.useSearchParams)(),{session:u,loading:m,error:x}=function(e){let[t,n]=(0,r.useState)(null),[a,s]=(0,r.useState)(!0),[l,i]=(0,r.useState)(null),o=(0,r.useRef)(!0),c=(0,r.useRef)(!1),d=(0,r.useRef)(!1),u=(0,r.useRef)(null),m=(0,r.useCallback)(async()=>{if(e&&!c.current&&!d.current)try{let t=await fetch(`/api/sessions/${encodeURIComponent(e)}`);if(404===t.status){if(!o.current)return;c.current=!0,n(null),i(null);return}if(!t.ok)throw Error(`Failed to fetch session: ${t.status}`);let r=await t.json();o.current&&(n(e=>z(e,r)?e:r),i(null),"string"==typeof r.status&&B.TERMINAL_STATUSES.has(r.status)&&(d.current=!0))}catch(e){o.current&&i(e instanceof Error?e.message:"Unknown error")}finally{o.current&&s(!1)}},[e]);return(0,r.useEffect)(()=>{o.current=!0,c.current=!1,d.current=!1,u.current=null,n(null),i(null),s(!0),m();let t=(0,I.subscribeToSnapshotEvents)(t=>{if(!o.current)return;let r=t.sessions.find(t=>t.id===e),a=r?[r.id,r.status,r.activity??"",r.lastActivityAt,r.summary??""].join(":"):"missing";if(u.current===a||(u.current=a,!r))return;c.current=!1,d.current=B.TERMINAL_STATUSES.has(r.status);let l={id:r.id,projectId:r.projectId,status:r.status,activity:r.activity,branch:r.branch,issueId:r.issueId,summary:r.summary??null,createdAt:r.createdAt,lastActivityAt:r.lastActivityAt,pr:r.pr??null,metadata:r.metadata};n(e=>z(e,l)?e:l),i(null),s(!1)}),r=null,a=()=>{let e=d.current?3e4:1e4;r=window.setTimeout(async()=>{await m(),o.current&&!c.current&&a()},e)};a();let l=()=>{c.current=!1,u.current=null,m()},x=()=>{"visible"===document.visibilityState&&l()};return window.addEventListener("focus",l),document.addEventListener("visibilitychange",x),()=>{o.current=!1,t(),null!=r&&window.clearTimeout(r),window.removeEventListener("focus",l),document.removeEventListener("visibilitychange",x)}},[m]),{session:t,loading:a,error:l}}(e),p=(0,r.useRef)(0),h=(0,r.useRef)(!1),[f,v]=(0,r.useState)(null),g=(0,r.useMemo)(()=>tL(d.get("tab")),[d]),b=(0,r.useCallback)(e=>{let t=tL(e),r=new URLSearchParams(d.toString());"terminal"===t?r.delete("tab"):r.set("tab",t);let n=r.toString(),s=n.length>0?`${a}?${n}`:a;c.replace(s,{scroll:!1})},[a,c,d]),w=(0,r.useCallback)(e=>{p.current+=1,v({nonce:p.current,...e})},[]);(0,r.useEffect)(()=>{h.current=!1,p.current=0,v(null)},[e]);let y=(0,r.useCallback)(e=>{e&&"terminal"===g&&!h.current&&(h.current=!0,b("preview"))},[g,b]);if(m)return(0,t.jsx)("div",{className:"flex h-full items-center justify-center p-6",children:(0,t.jsx)(P.Card,{className:"w-full max-w-md",children:(0,t.jsx)(P.CardContent,{className:"py-7 text-center text-[13px] text-[var(--text-muted)]",children:"Loading session workspace..."})})});if(x)return(0,t.jsx)("div",{className:"flex h-full items-center justify-center p-6",children:(0,t.jsx)(P.Card,{className:"w-full max-w-md border-[color:color-mix(in_srgb,var(--status-error)_45%,transparent)]",children:(0,t.jsx)(P.CardContent,{className:"py-7 text-center text-[13px] text-[var(--status-error)]",children:x})})});if(!u)return(0,t.jsx)("div",{className:"flex h-full items-center justify-center p-6",children:(0,t.jsx)(P.Card,{className:"w-full max-w-md",children:(0,t.jsx)(P.CardContent,{className:"py-7 text-center text-[13px] text-[var(--text-muted)]",children:"Session not found"})})});let k="string"==typeof u.status?u.status:"unknown",N=u.metadata.agent?.trim()??"",C=u.metadata.model?.trim()??"",S=u.metadata.reasoningEffort?.trim()??"",E=function(e){switch(e){case"needs_input":return"input";case"working":return"working";case"running":return"running";case"spawning":return"spawn";case"queued":return"queued";default:return e.replace(/[_-]+/g," ")}}(k);return(0,t.jsx)("div",{className:"flex h-full min-h-0 flex-col",children:(0,t.jsxs)(j,{value:g,onValueChange:b,className:"flex min-h-0 flex-1 flex-col gap-1.5 p-1.5 sm:gap-2 sm:p-3",children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-col gap-1.5 sm:gap-2",children:[(0,t.jsxs)($,{className:"grid w-full grid-cols-4 sm:w-fit sm:inline-flex",children:[(0,t.jsxs)(F,{value:"overview",className:"justify-center px-2 text-[11px] sm:px-2.5 sm:text-[12px]",children:[(0,t.jsx)(i,{className:"h-3.5 w-3.5"}),"Overview"]}),(0,t.jsxs)(F,{value:"terminal",className:"justify-center px-2 text-[11px] sm:px-2.5 sm:text-[12px]",children:[(0,t.jsx)(o,{className:"h-3.5 w-3.5"}),"Terminal"]}),(0,t.jsxs)(F,{value:"preview",className:"justify-center px-2 text-[11px] sm:px-2.5 sm:text-[12px]",children:[(0,t.jsx)(l,{className:"h-3.5 w-3.5"}),"Preview"]}),(0,t.jsxs)(F,{value:"diff",className:"justify-center px-2 text-[11px] sm:px-2.5 sm:text-[12px]",children:[(0,t.jsx)(s,{className:"h-3.5 w-3.5"}),"Diff"]})]}),(0,t.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-2",children:[(0,t.jsxs)(_.Badge,{variant:"outline",className:"h-[23px] max-w-full",children:[(0,t.jsx)("span",{className:"sm:hidden",children:E}),(0,t.jsx)("span",{className:"hidden sm:inline",children:k})]}),(0,t.jsx)("span",{className:"font-mono text-[10px] text-[var(--vk-text-muted)] sm:hidden",children:e.slice(0,6)}),(0,t.jsx)("span",{className:"hidden min-w-0 truncate font-mono text-[10px] text-[var(--vk-text-muted)] sm:block",children:e})]})]}),(0,t.jsxs)("div",{className:"relative min-h-0 flex-1",children:[(0,t.jsx)(D,{value:"overview",className:"min-h-0 h-full overflow-auto",children:(0,t.jsx)(et,{session:u},e)}),(0,t.jsx)(D,{value:"terminal",forceMount:!0,className:"min-h-0 h-full overflow-hidden rounded-[3px] border border-[var(--vk-border)] bg-[#212121] focus-visible:outline-none [&[hidden]]:block data-[state=inactive]:pointer-events-none data-[state=inactive]:absolute data-[state=inactive]:inset-0 data-[state=inactive]:invisible data-[state=inactive]:opacity-0",children:(0,t.jsx)(tT,{sessionId:e,agentName:N,projectId:u.projectId,sessionModel:C,sessionReasoningEffort:S,sessionState:k,active:"terminal"===g,pendingInsert:f},e)}),(0,t.jsx)(D,{value:"preview",forceMount:!0,className:"min-h-0 h-full overflow-auto focus-visible:outline-none [&[hidden]]:block data-[state=inactive]:pointer-events-none data-[state=inactive]:absolute data-[state=inactive]:inset-0 data-[state=inactive]:invisible data-[state=inactive]:opacity-0",children:(0,t.jsx)(tv,{sessionId:e,onQueueTerminalInsert:w,onConnectionChange:y},e)}),(0,t.jsx)(D,{value:"diff",className:"min-h-0 h-full overflow-auto",children:(0,t.jsx)(eC,{sessionId:e},e)})]})]},e)})}e.s(["SessionDetail",()=>tA],93289)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,75254,e=>{"use strict";var t=e.i(71645);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),n=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var i={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let s=(0,t.forwardRef)(({color:e="currentColor",size:n=24,strokeWidth:s=2,absoluteStrokeWidth:o,className:l="",children:a,iconNode:c,...u},d)=>(0,t.createElement)("svg",{ref:d,...i,width:n,height:n,stroke:e,strokeWidth:o?24*Number(s)/Number(n):s,className:r("lucide",l),...!a&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(u)&&{"aria-hidden":"true"},...u},[...c.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(a)?a:[a]])),o=(e,i)=>{let o=(0,t.forwardRef)(({className:o,...l},a)=>(0,t.createElement)(s,{ref:a,iconNode:i,className:r(`lucide-${n(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,o),...l}));return o.displayName=n(e),o};e.s(["default",()=>o],75254)},31278,e=>{"use strict";let t=(0,e.i(75254).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["Loader2",()=>t],31278)},97878,e=>{"use strict";let t=new Set,r=new Set,n=null,i=null;function s(e){return Array.isArray(e)?{type:"snapshot",sessions:e}:e&&"object"==typeof e&&"snapshot"===e.type&&Array.isArray(e.sessions)?e:null}function o(e){return e&&"object"==typeof e&&"boolean"==typeof e.enabled?e:null}function l(e){for(let r of t)r(e);let n=o(e.appUpdate);if(n)for(let e of r)e(n)}async function a(){if("function"!=typeof fetch)return;let e=(async()=>{try{let e=await fetch("/api/sessions");if(!e.ok)return;let t=await e.json().catch(()=>null),r=s(t);if(!r)return;l(r)}catch{}try{let t=await fetch("/api/app-update");if(!t.ok)return;let n=await t.json().catch(()=>null);var e=o(n);for(let t of r)t(e)}catch{}})();i=e.finally(()=>{i===e&&(i=null)}),await e}function c(){!n&&"u">typeof EventSource&&((n=new EventSource("/api/events")).onmessage=e=>{try{let t=s(JSON.parse(e.data));if(!t)return;l(t)}catch{}},n.addEventListener("refresh",()=>{i||a()}),n.onerror=()=>{0===t.size&&0===r.size&&(n?.close(),n=null)})}function u(e){return t.add(e),c(),()=>{t.delete(e),0===t.size&&0===r.size&&n&&(n.close(),n=null)}}function d(e){return r.add(e),c(),()=>{r.delete(e),0===t.size&&0===r.size&&n&&(n.close(),n=null)}}e.s(["subscribeToAppUpdateEvents",()=>d,"subscribeToSnapshotEvents",()=>u])},7233,e=>{"use strict";let t=(0,e.i(75254).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",()=>t],7233)},55436,e=>{"use strict";let t=(0,e.i(75254).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",()=>t],55436)},69242,e=>{"use strict";var t=e.i(43476),r=e.i(71645);let n=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 r of t)n.set(i(r),e);function i(e){return e.trim().toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/_+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}function s(e){let t=i(e);if(!t)return null;let r=n.get(t);if(r)return r;for(let e of t.split("-")){let t=n.get(e);if(t)return t}for(let[e,r]of n.entries())if(t===e||t.startsWith(`${e}-`)||t.endsWith(`-${e}`)||t.includes(`-${e}-`))return r;return null}function o(e){try{let t=new URL(e),r=s(t.hostname.replace(/^www\./,"").replace(/\./g,"-"));if(r)return r;return s(t.pathname.replace(/\//g,"-"))}catch{return s(e)}}function l({label:e,className:r}){let n=e.split(/[^a-z0-9]/iu).filter(Boolean).slice(0,2).map(e=>e[0]?.toUpperCase()).join("");return(0,t.jsx)("span",{"aria-hidden":"true",className:`inline-flex shrink-0 items-center justify-center rounded-[0.2rem] text-[9px] font-semibold text-white ${r}`,style:{backgroundColor:function(e){let t=["#14b8a6","#06b6d4","#0ea5e9","#8b5cf6","#ec4899","#f97316","#f59e0b","#ef4444","#22c55e","#84cc16"],r=0;for(let n=0;n<e.length;n+=1)r=(31*r+e.charCodeAt(n))%t.length;return t[Math.abs(r)%t.length]??"#6b7280"}(`${e}:${e.length}`)},children:n||"AI"})}function a({seed:e,className:n="h-6 w-6"}){let[i,a]=(0,r.useState)(0),c=e?.label?.trim()??"",u=(0,r.useMemo)(()=>{var t;if(!c)return[];let r=s((t={label:c,iconUrl:e?.iconUrl,homepage:e?.homepage}).label)??(t.homepage?o(t.homepage):null)??(t.iconUrl?o(t.iconUrl):null),n="string"==typeof e?.iconUrl&&e.iconUrl.trim().length>0?e.iconUrl.trim():null,i=[];return r&&(i.push(`/agents/${r}-dark.svg`),i.push(`/agents/${r}-light.svg`)),n&&i.push(n),i},[c,e?.homepage,e?.iconUrl]);if((0,r.useEffect)(()=>{a(0)},[c,u]),!c)return(0,t.jsx)(l,{label:"AI",className:n});let d=u[i]??null;return d?(0,t.jsx)("img",{src:d,alt:`${c} icon`,loading:"lazy",className:`${n} shrink-0 rounded-[0.2rem] object-contain scale-125`,onError:()=>a(e=>e+1)}):(0,t.jsx)(l,{label:c,className:n})}e.s(["AgentTileIcon",()=>a])},16715,e=>{"use strict";let t=(0,e.i(75254).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",()=>t],16715)},43531,e=>{"use strict";let t=(0,e.i(75254).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",()=>t],43531)},74886,e=>{"use strict";let t=(0,e.i(75254).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],74886)},37727,e=>{"use strict";let t=(0,e.i(75254).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",()=>t],37727)},11077,e=>{"use strict";let t,r,n;var i=e.i(43476),s=e.i(18620),o=e.i(71645),l=e.i(20783),a=Symbol.for("react.lazy"),c=o[" use ".trim().toString()];function u(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===a&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var d=((n=o.forwardRef((e,t)=>{let{children:r,...n}=e;if(u(r)&&"function"==typeof c&&(r=c(r._payload)),o.isValidElement(r)){var i;let e,s,a=(i=r,(s=(e=Object.getOwnPropertyDescriptor(i.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?i.ref:(s=(e=Object.getOwnPropertyDescriptor(i,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?i.props.ref:i.props.ref||i.ref),c=function(e,t){let r={...t};for(let n in t){let i=e[n],s=t[n];/^on[A-Z]/.test(n)?i&&s?r[n]=(...e)=>{let t=s(...e);return i(...e),t}:i&&(r[n]=i):"style"===n?r[n]={...i,...s}:"className"===n&&(r[n]=[i,s].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==o.Fragment&&(c.ref=t?(0,l.composeRefs)(t,a):a),o.cloneElement(r,c)}return o.Children.count(r)>1?o.Children.only(null):null})).displayName="Slot.SlotClone",t=n,(r=o.forwardRef((e,r)=>{let{children:n,...s}=e;u(n)&&"function"==typeof c&&(n=c(n._payload));let l=o.Children.toArray(n),a=l.find(p);if(a){let e=a.props.children,n=l.map(t=>t!==a?t:o.Children.count(e)>1?o.Children.only(null):o.isValidElement(e)?e.props.children:null);return(0,i.jsx)(t,{...s,ref:r,children:o.isValidElement(e)?o.cloneElement(e,void 0,n):null})}return(0,i.jsx)(t,{...s,ref:r,children:n})})).displayName="Slot.Slot",r),f=Symbol("radix.slottable");function p(e){return o.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===f}let h={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)]"},v={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"},m=(0,o.forwardRef)(({variant:e="default",size:t="md",asChild:r,className:n,children:o,...l},a)=>(0,i.jsx)(r?d:"button",{ref:a,className:(0,s.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",h[e],v[t],n),...l,children:o}));m.displayName="Button",e.s(["Button",0,m],11077)},52808,e=>{"use strict";let t=new Set(["archived","done","killed","errored","terminated","merged","cleanup"]);function r(e){return"merged"===e.status||"archived"===e.status||"killed"===e.status||"errored"===e.status||"cleanup"===e.status||"done"===e.status||"terminated"===e.status||e.pr&&("merged"===e.pr.state||"closed"===e.pr.state)?"done":"mergeable"===e.status||"approved"===e.status||e.pr?.mergeability.mergeable?"merge":"waiting_input"===e.activity||"blocked"===e.activity||"needs_input"===e.status||"stuck"===e.status?"respond":"queued"===e.status?"pending":"exited"===e.activity?"respond":"ci_failed"===e.status||"changes_requested"===e.status||e.pr&&("failing"===e.pr.ciStatus||"changes_requested"===e.pr.reviewDecision||!e.pr.mergeability.noConflicts)?"review":"review_pending"===e.status||e.pr&&!e.pr.isDraft&&("pending"===e.pr.reviewDecision||"none"===e.pr.reviewDecision)?"pending":"working"}e.s(["TERMINAL_STATUSES",0,t,"getAttentionLevel",()=>r])},42727,75830,86318,e=>{"use strict";var t=e.i(71645),r=e.i(81140),n=e.i(30030),i=e.i(20783),s=e.i(43476);function o(e){var r;let n,o=(r=e,(n=t.forwardRef((e,r)=>{let{children:n,...s}=e;if(t.isValidElement(n)){var o;let e,l,a=(o=n,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),c=function(e,t){let r={...t};for(let n in t){let i=e[n],s=t[n];/^on[A-Z]/.test(n)?i&&s?r[n]=(...e)=>{let t=s(...e);return i(...e),t}:i&&(r[n]=i):"style"===n?r[n]={...i,...s}:"className"===n&&(r[n]=[i,s].filter(Boolean).join(" "))}return{...e,...r}}(s,n.props);return n.type!==t.Fragment&&(c.ref=r?(0,i.composeRefs)(r,a):a),t.cloneElement(n,c)}return t.Children.count(n)>1?t.Children.only(null):null})).displayName=`${r}.SlotClone`,n),l=t.forwardRef((e,r)=>{let{children:n,...i}=e,l=t.Children.toArray(n),c=l.find(a);if(c){let e=c.props.children,n=l.map(r=>r!==c?r:t.Children.count(e)>1?t.Children.only(null):t.isValidElement(e)?e.props.children:null);return(0,s.jsx)(o,{...i,ref:r,children:t.isValidElement(e)?t.cloneElement(e,void 0,n):null})}return(0,s.jsx)(o,{...i,ref:r,children:n})});return l.displayName=`${e}.Slot`,l}var l=Symbol("radix.slottable");function a(e){return t.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===l}function c(e){let r=e+"CollectionProvider",[l,a]=(0,n.createContextScope)(r),[c,u]=l(r,{collectionRef:{current:null},itemMap:new Map}),d=e=>{let{scope:r,children:n}=e,i=t.default.useRef(null),o=t.default.useRef(new Map).current;return(0,s.jsx)(c,{scope:r,itemMap:o,collectionRef:i,children:n})};d.displayName=r;let f=e+"CollectionSlot",p=o(f),h=t.default.forwardRef((e,t)=>{let{scope:r,children:n}=e,o=u(f,r),l=(0,i.useComposedRefs)(t,o.collectionRef);return(0,s.jsx)(p,{ref:l,children:n})});h.displayName=f;let v=e+"CollectionItemSlot",m="data-radix-collection-item",y=o(v),g=t.default.forwardRef((e,r)=>{let{scope:n,children:o,...l}=e,a=t.default.useRef(null),c=(0,i.useComposedRefs)(r,a),d=u(v,n);return t.default.useEffect(()=>(d.itemMap.set(a,{ref:a,...l}),()=>void d.itemMap.delete(a))),(0,s.jsx)(y,{...{[m]:""},ref:c,children:o})});return g.displayName=v,[{Provider:d,Slot:h,ItemSlot:g},function(r){let n=u(e+"CollectionConsumer",r);return t.default.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${m}]`));return Array.from(n.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[n.collectionRef,n.itemMap])},a]}var u=new WeakMap;function d(e,t){var r,n;let i,s,o;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let l=(r=e,n=t,i=r.length,(o=(s=f(n))>=0?s:i+s)<0||o>=i?-1:o);return -1===l?void 0:e[l]}function f(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],u.set(this,!0)}set(e,t){return u.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,r){let n,i=this.has(t),s=this.#e.length,o=f(e),l=o>=0?o:s+o,a=l<0||l>=s?-1:l;if(a===this.size||i&&a===this.size-1||-1===a)return this.set(t,r),this;let c=this.size+ +!i;o<0&&l++;let u=[...this.#e],d=!1;for(let e=l;e<c;e++)if(l===e){let s=u[e];u[e]===t&&(s=u[e+1]),i&&this.delete(t),n=this.get(s),this.set(t,r)}else{d||u[e-1]!==t||(d=!0);let r=u[d?e:e-1],i=n;n=this.get(r),this.delete(r),this.set(r,i)}return this}with(t,r,n){let i=new e(this);return i.insert(t,r,n),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,r){let n=this.#e.indexOf(e);return -1===n?this:this.insert(n,t,r)}after(e){let t=this.#e.indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,r){let n=this.#e.indexOf(e);return -1===n?this:this.insert(n+1,t,r)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=d(this.#e,e);if(void 0!==t)return this.get(t)}entryAt(e){let t=d(this.#e,e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return d(this.#e,e)}from(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],i=0;for(let e of this)Reflect.apply(t,r,[e,i,this])&&n.push(e),i++;return new e(n)}map(t,r){let n=[],i=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,i,this])]),i++;return new e(n)}reduce(...e){let[t,r]=e,n=0,i=r??this.at(0);for(let r of this)i=0===n&&1===e.length?r:Reflect.apply(t,this,[i,r,n,this]),n++;return i}reduceRight(...e){let[t,r]=e,n=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let i=this.at(r);n=r===this.size-1&&1===e.length?i:Reflect.apply(t,this,[n,i,r,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let n=new e,i=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(i=r-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}}),e.s(["createCollection",()=>c],75830);var p=e.i(10772),h=e.i(48425),v=e.i(30207),m=e.i(69340),y=t.createContext(void 0);function g(e){let r=t.useContext(y);return e||r||"ltr"}e.s(["useDirection",()=>g],86318);var b="rovingFocusGroup.onEntryFocus",x={bubbles:!1,cancelable:!0},k="RovingFocusGroup",[w,j,R]=c(k),[S,C]=(0,n.createContextScope)(k,[R]),[A,E]=S(k),I=t.forwardRef((e,t)=>(0,s.jsx)(w.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,s.jsx)(w.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,s.jsx)(M,{...e,ref:t})})}));I.displayName=k;var M=t.forwardRef((e,n)=>{let{__scopeRovingFocusGroup:o,orientation:l,loop:a=!1,dir:c,currentTabStopId:u,defaultCurrentTabStopId:d,onCurrentTabStopIdChange:f,onEntryFocus:p,preventScrollOnEntryFocus:y=!1,...w}=e,R=t.useRef(null),S=(0,i.useComposedRefs)(n,R),C=g(c),[E,I]=(0,m.useControllableState)({prop:u,defaultProp:d??null,onChange:f,caller:k}),[M,N]=t.useState(!1),_=(0,v.useCallbackRef)(p),O=j(o),T=t.useRef(!1),[$,P]=t.useState(0);return t.useEffect(()=>{let e=R.current;if(e)return e.addEventListener(b,_),()=>e.removeEventListener(b,_)},[_]),(0,s.jsx)(A,{scope:o,orientation:l,dir:C,loop:a,currentTabStopId:E,onItemFocus:t.useCallback(e=>I(e),[I]),onItemShiftTab:t.useCallback(()=>N(!0),[]),onFocusableItemAdd:t.useCallback(()=>P(e=>e+1),[]),onFocusableItemRemove:t.useCallback(()=>P(e=>e-1),[]),children:(0,s.jsx)(h.Primitive.div,{tabIndex:M||0===$?-1:0,"data-orientation":l,...w,ref:S,style:{outline:"none",...e.style},onMouseDown:(0,r.composeEventHandlers)(e.onMouseDown,()=>{T.current=!0}),onFocus:(0,r.composeEventHandlers)(e.onFocus,e=>{let t=!T.current;if(e.target===e.currentTarget&&t&&!M){let t=new CustomEvent(b,x);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=O().filter(e=>e.focusable);z([e.find(e=>e.active),e.find(e=>e.id===E),...e].filter(Boolean).map(e=>e.ref.current),y)}}T.current=!1}),onBlur:(0,r.composeEventHandlers)(e.onBlur,()=>N(!1))})})}),N="RovingFocusGroupItem",_=t.forwardRef((e,n)=>{let{__scopeRovingFocusGroup:i,focusable:o=!0,active:l=!1,tabStopId:a,children:c,...u}=e,d=(0,p.useId)(),f=a||d,v=E(N,i),m=v.currentTabStopId===f,y=j(i),{onFocusableItemAdd:g,onFocusableItemRemove:b,currentTabStopId:x}=v;return t.useEffect(()=>{if(o)return g(),()=>b()},[o,g,b]),(0,s.jsx)(w.ItemSlot,{scope:i,id:f,focusable:o,active:l,children:(0,s.jsx)(h.Primitive.span,{tabIndex:m?0:-1,"data-orientation":v.orientation,...u,ref:n,onMouseDown:(0,r.composeEventHandlers)(e.onMouseDown,e=>{o?v.onItemFocus(f):e.preventDefault()}),onFocus:(0,r.composeEventHandlers)(e.onFocus,()=>v.onItemFocus(f)),onKeyDown:(0,r.composeEventHandlers)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void v.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let i=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(i))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(i)))return O[i]}(e,v.orientation,v.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let i=y().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)i.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&i.reverse();let s=i.indexOf(e.currentTarget);i=v.loop?(r=i,n=s+1,r.map((e,t)=>r[(n+t)%r.length])):i.slice(s+1)}setTimeout(()=>z(i))}}),children:"function"==typeof c?c({isCurrentTabStop:m,hasTabStop:null!=x}):c})})});_.displayName=N;var O={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function z(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}e.s(["Item",()=>_,"Root",()=>I,"createRovingFocusGroupScope",()=>C],42727)},90993,e=>{"use strict";var t=e.i(43476),r=e.i(18620);let n=(0,e.i(71645).forwardRef)(({className:e,...n},i)=>(0,t.jsx)("div",{ref:i,className:(0,r.cn)("surface-card rounded-[var(--radius-md)] border",e),...n}));function i({className:e,...n}){return(0,t.jsx)("div",{className:(0,r.cn)("flex items-center gap-2 border-b border-[var(--vk-border)] px-3 py-2",e),...n})}function s({className:e,...n}){return(0,t.jsx)("div",{className:(0,r.cn)("px-3 py-2",e),...n})}n.displayName="Card",e.s(["Card",0,n,"CardContent",()=>s,"CardHeader",()=>i])},17442,e=>{"use strict";var t=e.i(43476),r=e.i(18620);let n={default:"border-[var(--vk-border)] bg-[var(--vk-bg-panel)] text-[var(--vk-text-muted)]",success:"border-transparent bg-transparent text-[var(--vk-green)]",warning:"border-transparent bg-transparent text-[var(--vk-orange)]",error:"border-transparent bg-transparent text-[var(--vk-red)]",info:"border-transparent bg-transparent text-[var(--vk-text-muted)]",outline:"border-[var(--vk-border)] bg-transparent text-[var(--vk-text-muted)]"};function i({variant:e="default",className:i,children:s}){return(0,t.jsx)("span",{className:(0,r.cn)("inline-flex items-center gap-1 rounded-[3px] border px-1.5 py-0.5 text-[11px] leading-none",n[e],i),children:s})}e.s(["Badge",()=>i])},90272,e=>{"use strict";let t=(0,e.i(75254).default)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);e.s(["FolderGit2",()=>t],90272)},55716,e=>{"use strict";let t=(0,e.i(75254).default)("git-branch",[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]]);e.s(["GitBranch",()=>t],55716)},64659,e=>{"use strict";let t=(0,e.i(75254).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>t],64659)},75505,e=>{"use strict";let t=(0,e.i(75254).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["FolderOpen",()=>t],75505)},86536,e=>{"use strict";let t=(0,e.i(75254).default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Eye",()=>t],86536)},93670,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(18566),i=e.i(94102),s=e.i(36832),o=e.i(80235),l=e.i(45241),a=e.i(93289),c=e.i(2004),u=e.i(89965);function d(){let e=(0,n.useParams)(),d=(0,n.useRouter)(),{projects:f}=(0,c.useConfig)(),{sessions:p,refresh:h}=(0,u.useSessions)(),{mobileSidebarOpen:v,desktopSidebarOpen:m,toggleSidebar:y,closeSidebarOnMobile:g}=(0,i.useResponsiveSidebarState)(),[b,x]=(0,r.useState)(null),k=(0,r.useMemo)(()=>p.find(t=>t.id===e.id)??null,[p,e.id]),w=(0,r.useMemo)(()=>k?[k.projectId,k.branch].filter(Boolean).join(" · "):b||"Session",[b,k]);async function j(t){let r=await fetch(`/api/sessions/${encodeURIComponent(t)}/archive`,{method:"POST"}),n=await r.json().catch(()=>null);if(404===r.status&&(r=await fetch(`/api/sessions/${encodeURIComponent(t)}/actions`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"archive"})}),n=await r.json().catch(()=>null)),!r.ok)throw Error(n?.error??`Failed to archive session: ${r.status}`);t===e.id?d.push("/"):await h()}return((0,r.useEffect)(()=>{k?.projectId?x(k.projectId):!b&&f.length>0&&x(f[0]?.id??null)},[f,b,k?.projectId]),e.id)?(0,t.jsxs)(s.AppShell,{mobileSidebarOpen:v,desktopSidebarOpen:m,onToggleSidebar:y,sidebar:(0,t.jsx)(l.WorkspaceSidebarPanel,{projects:f,selectedProjectId:b,onSelectProject:e=>{null===e?d.push("/"):x(e)},sessions:p,selectedSessionId:e.id,onSelectSession:e=>{d.push(`/sessions/${encodeURIComponent(e)}`),g()},onArchiveSession:j,onCreateWorkspace:()=>{d.push("/")}}),children:[(0,t.jsx)(o.TopBar,{title:w}),(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:(0,t.jsx)(a.SessionDetail,{sessionId:e.id},e.id)})]}):(0,t.jsx)("div",{className:"flex h-dvh min-h-[100dvh] items-center justify-center",children:(0,t.jsx)("span",{className:"text-[13px] text-[var(--text-muted)]",children:"No session ID provided"})})}e.s(["default",()=>d])},37138,e=>{e.v(t=>Promise.all(["static/chunks/3cdf839644f79d43.js"].map(t=>e.l(t))).then(()=>t(99894)))},59439,e=>{e.v(t=>Promise.all(["static/chunks/af8bfb72187b7cbf.js"].map(t=>e.l(t))).then(()=>t(93309)))},64183,e=>{e.v(t=>Promise.all(["static/chunks/70d1e7a526f0f4e2.js"].map(t=>e.l(t))).then(()=>t(6433)))}]);
|