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
|
+
module.exports=[37483,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(70106);let f=(0,e.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"}]]),g=(0,e.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"}]]),h=(0,e.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"}]]),i=(0,e.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 j=a.i(7554),k=a.i(50104),l=a.i(24050),m=a.i(77192),n=a.i(30553),o=a.i(7827),p=a.i(25152),q=a.i(92843),r="Tabs",[s,t]=(0,k.createContextScope)(r,[l.createRovingFocusGroupScope]),u=(0,l.createRovingFocusGroupScope)(),[v,w]=s(r),x=c.forwardRef((a,c)=>{let{__scopeTabs:d,value:e,onValueChange:f,defaultValue:g,orientation:h="horizontal",dir:i,activationMode:j="automatic",...k}=a,l=(0,o.useDirection)(i),[m,s]=(0,p.useControllableState)({prop:e,onChange:f,defaultProp:g??"",caller:r});return(0,b.jsx)(v,{scope:d,baseId:(0,q.useId)(),value:m,onValueChange:s,orientation:h,dir:l,activationMode:j,children:(0,b.jsx)(n.Primitive.div,{dir:l,"data-orientation":h,...k,ref:c})})});x.displayName=r;var y="TabsList",z=c.forwardRef((a,c)=>{let{__scopeTabs:d,loop:e=!0,...f}=a,g=w(y,d),h=u(d);return(0,b.jsx)(l.Root,{asChild:!0,...h,orientation:g.orientation,dir:g.dir,loop:e,children:(0,b.jsx)(n.Primitive.div,{role:"tablist","aria-orientation":g.orientation,...f,ref:c})})});z.displayName=y;var A="TabsTrigger",B=c.forwardRef((a,c)=>{let{__scopeTabs:d,value:e,disabled:f=!1,...g}=a,h=w(A,d),i=u(d),k=E(h.baseId,e),m=F(h.baseId,e),o=e===h.value;return(0,b.jsx)(l.Item,{asChild:!0,...i,focusable:!f,active:o,children:(0,b.jsx)(n.Primitive.button,{type:"button",role:"tab","aria-selected":o,"aria-controls":m,"data-state":o?"active":"inactive","data-disabled":f?"":void 0,disabled:f,id:k,...g,ref:c,onMouseDown:(0,j.composeEventHandlers)(a.onMouseDown,a=>{f||0!==a.button||!1!==a.ctrlKey?a.preventDefault():h.onValueChange(e)}),onKeyDown:(0,j.composeEventHandlers)(a.onKeyDown,a=>{[" ","Enter"].includes(a.key)&&h.onValueChange(e)}),onFocus:(0,j.composeEventHandlers)(a.onFocus,()=>{let a="manual"!==h.activationMode;o||f||!a||h.onValueChange(e)})})})});B.displayName=A;var C="TabsContent",D=c.forwardRef((a,d)=>{let{__scopeTabs:e,value:f,forceMount:g,children:h,...i}=a,j=w(C,e),k=E(j.baseId,f),l=F(j.baseId,f),o=f===j.value,p=c.useRef(o);return c.useEffect(()=>{let a=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(a)},[]),(0,b.jsx)(m.Presence,{present:g||o,children:({present:c})=>(0,b.jsx)(n.Primitive.div,{"data-state":o?"active":"inactive","data-orientation":j.orientation,role:"tabpanel","aria-labelledby":k,hidden:!c,id:l,tabIndex:0,...i,ref:d,style:{...a.style,animationDuration:p.current?"0s":void 0},children:c&&h})})});function E(a,b){return`${a}-trigger-${b}`}function F(a,b){return`${a}-content-${b}`}D.displayName=C;var G=a.i(26006);let H=(0,c.forwardRef)(({className:a,...c},d)=>(0,b.jsx)(z,{ref:d,className:(0,G.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",a),...c}));H.displayName="TabsList";let I=(0,c.forwardRef)(({className:a,...c},d)=>(0,b.jsx)(B,{ref:d,className:(0,G.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)]",a),...c}));I.displayName="TabsTrigger";let J=(0,c.forwardRef)(({className:a,...c},d)=>(0,b.jsx)(D,{ref:d,className:(0,G.cn)("focus-visible:outline-none",a),...c}));J.displayName="TabsContent";var K=a.i(48079),L=a.i(50415),M=a.i(9341),N=a.i(69630);function O(a,b){if(a===b)return!0;if(!a||!b||a.id!==b.id||a.projectId!==b.projectId||a.status!==b.status||a.activity!==b.activity||a.branch!==b.branch||a.issueId!==b.issueId||a.summary!==b.summary||a.createdAt!==b.createdAt||a.lastActivityAt!==b.lastActivityAt)return!1;let c=Object.keys(a.metadata),d=Object.keys(b.metadata);if(c.length!==d.length)return!1;for(let d of c)if(a.metadata[d]!==b.metadata[d])return!1;return a.pr===b.pr||!!a.pr&&!!b.pr&&a.pr.number===b.pr.number&&a.pr.url===b.pr.url&&a.pr.title===b.pr.title&&a.pr.branch===b.pr.branch&&a.pr.baseBranch===b.pr.baseBranch&&a.pr.isDraft===b.pr.isDraft&&a.pr.state===b.pr.state&&a.pr.ciStatus===b.pr.ciStatus&&a.pr.reviewDecision===b.pr.reviewDecision&&a.pr.previewUrl===b.pr.previewUrl&&a.pr.mergeability.mergeable===b.pr.mergeability.mergeable&&a.pr.mergeability.ciPassing===b.pr.mergeability.ciPassing&&a.pr.mergeability.approved===b.pr.mergeability.approved&&a.pr.mergeability.noConflicts===b.pr.mergeability.noConflicts&&a.pr.mergeability.blockers.length===b.pr.mergeability.blockers.length&&a.pr.mergeability.blockers.every((a,c)=>a===b.pr?.mergeability.blockers[c])}var P=a.i(33441);let Q=(0,e.default)("clock-3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]]);var R=a.i(5151);let S=(0,e.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 T=a.i(34531),U=a.i(10948);let V=(0,e.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"}]]),W=(0,e.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=a.i(52806);let Y={archived:"default",queued:"info",running:"success",working:"success",done:"default",merged:"success",errored:"error",stuck:"warning",killed:"error",needs_input:"warning"};function Z({text:a}){let[d,e]=(0,c.useState)(!1);async function f(){try{await navigator.clipboard.writeText(a),e(!0),window.setTimeout(()=>e(!1),1400)}catch{}}return(0,b.jsxs)("button",{type:"button",onClick:()=>void f(),className:"inline-flex items-center gap-1 font-mono text-[12px] text-[var(--text-normal)] transition-colors hover:text-[var(--text-strong)]",children:[(0,b.jsx)("span",{className:"truncate",children:a}),d?(0,b.jsx)(P.Check,{className:"h-3 w-3 text-[var(--status-ready)]"}):(0,b.jsx)(R.Copy,{className:"h-3 w-3 text-[var(--text-faint)]"})]})}function $(a){if(!a)return"-";let b=new Date(a);return Number.isNaN(b.getTime())?"-":b.toLocaleString()}function _(a,b){let c=a.metadata[b];if("string"==typeof c&&c.trim().length>0)return c}function aa(a){if(!a)return null;let b=Number.parseInt(a,10);return Number.isFinite(b)&&b>0?b:null}function ab({session:a}){let d=(0,c.useMemo)(()=>_(a,"task")??_(a,"prompt")??("string"==typeof a.task?a.task:"")??("string"==typeof a.prompt?a.prompt:""),[a]),e=(0,c.useMemo)(()=>_(a,"agent")??("string"==typeof a.agent?a.agent:""),[a]),f=(0,c.useMemo)(()=>_(a,"worktree")??_(a,"path")??("string"==typeof a.worktree?a.worktree:""),[a]),g=(0,c.useMemo)(()=>({created:$(a.createdAt),started:$(_(a,"startedAt")??a.startedAt),finished:$(_(a,"finishedAt")??a.finishedAt),duration:function(a,b){if(!a||!b)return"-";let c=new Date(a).getTime(),d=new Date(b).getTime();if(!Number.isFinite(c)||!Number.isFinite(d)||d<c)return"-";let e=Math.floor((d-c)/6e4);if(e<1)return"<1m";if(e<60)return`${e}m`;let f=Math.floor(e/60);return`${f}h ${e%60}m`}(_(a,"startedAt")??a.startedAt,_(a,"finishedAt")??a.finishedAt),cost:function(a){if("number"==typeof a.cost)return a.cost;let b=a.metadata;if(!b||"object"!=typeof b)return 0;let c=b.cost;if("string"!=typeof c)return 0;try{let a=JSON.parse(c),b="number"==typeof a.estimatedCostUsd?a.estimatedCostUsd:0,d="number"==typeof a.totalUSD?a.totalUSD:0;return b??d}catch{return 0}}(a)}),[a]),h=(0,c.useMemo)(()=>aa(_(a,"queuePosition")),[a]),i=(0,c.useMemo)(()=>aa(_(a,"queueDepth")),[a]),j=(0,c.useMemo)(()=>_(a,"recoveryState")??"",[a]),k=(0,c.useMemo)(()=>"queued"===a.status?h?`Waiting in queue at position ${h}${i?` of ${i}`:""}.`:"Waiting in the launch queue.":"requeued_after_restart"===j?"This session was recovered after a backend restart and requeued automatically.":"reattach_pending"===j?"Reattaching the tmux-managed runtime after backend restart.":"detached_runtime"===j?"The backend restarted while the agent may still be running. Kill or archive this session before resuming.":"resume_required"===j?"This session was recovered after a backend restart. Send a message to resume in the same workspace.":"",[i,h,j,a.status]);return(0,b.jsxs)("div",{className:"space-y-3",children:[d&&(0,b.jsxs)(K.Card,{children:[(0,b.jsxs)(K.CardHeader,{children:[(0,b.jsx)(V,{className:"h-4 w-4 text-[var(--accent)]"}),(0,b.jsx)("span",{className:"text-[12px] font-semibold uppercase tracking-[0.08em] text-[var(--text-faint)]",children:"Task Brief"})]}),(0,b.jsx)(K.CardContent,{children:(0,b.jsx)("p",{className:"whitespace-pre-wrap text-[13px] leading-relaxed text-[var(--text-normal)]",children:d})})]}),("queued"===a.status||j)&&(0,b.jsxs)(K.Card,{children:[(0,b.jsxs)(K.CardHeader,{children:[(0,b.jsx)(Q,{className:"h-4 w-4 text-[var(--accent)]"}),(0,b.jsx)("span",{className:"text-[12px] font-semibold uppercase tracking-[0.08em] text-[var(--text-faint)]",children:"Launch State"})]}),(0,b.jsxs)(K.CardContent,{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(L.Badge,{variant:Y[a.status]??"default",children:a.status}),h?(0,b.jsxs)(L.Badge,{variant:"info",children:["Queue #",h,i?` / ${i}`:""]}):null,j?(0,b.jsx)(L.Badge,{variant:"warning",children:j.replaceAll("_"," ")}):null]}),k?(0,b.jsx)("p",{className:"text-[13px] leading-relaxed text-[var(--text-normal)]",children:k}):null]})]}),(0,b.jsxs)("div",{className:"space-y-3",children:[(a.branch||f)&&(0,b.jsxs)(K.Card,{children:[(0,b.jsxs)(K.CardHeader,{children:[(0,b.jsx)(U.GitBranch,{className:"h-4 w-4 text-[var(--text-faint)]"}),(0,b.jsx)("span",{className:"text-[12px] font-semibold text-[var(--text-normal)]",children:"Workspace"})]}),(0,b.jsxs)(K.CardContent,{className:"space-y-2",children:[a.branch&&(0,b.jsxs)("div",{className:"surface-panel flex items-center gap-2 rounded-[var(--radius-sm)] border px-2.5 py-2",children:[(0,b.jsx)(U.GitBranch,{className:"h-3.5 w-3.5 text-[var(--text-faint)]"}),(0,b.jsx)(Z,{text:a.branch})]}),f&&(0,b.jsxs)("div",{className:"surface-panel flex items-center gap-2 rounded-[var(--radius-sm)] border px-2.5 py-2",children:[(0,b.jsx)(T.FolderGit2,{className:"h-3.5 w-3.5 text-[var(--text-faint)]"}),(0,b.jsx)(Z,{text:f})]})]})]}),(0,b.jsxs)(K.Card,{children:[(0,b.jsxs)(K.CardHeader,{children:[(0,b.jsx)(X.AgentTileIcon,{seed:{label:e||"agent"},className:"h-6 w-6"}),(0,b.jsx)("span",{className:"text-[12px] font-semibold text-[var(--text-normal)]",children:"Session Status"})]}),(0,b.jsxs)(K.CardContent,{className:"space-y-2.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,b.jsx)(L.Badge,{variant:Y[a.status]??"default",children:a.status}),a.activity&&(0,b.jsx)(L.Badge,{variant:"info",children:a.activity}),a.attention&&(0,b.jsx)(L.Badge,{variant:"warning",children:a.attention})]}),(0,b.jsx)("p",{className:"text-[13px] text-[var(--text-normal)]",children:e||"Unknown agent"})]})]}),(0,b.jsxs)(K.Card,{children:[(0,b.jsxs)(K.CardHeader,{children:[(0,b.jsx)(Q,{className:"h-4 w-4 text-[var(--text-faint)]"}),(0,b.jsx)("span",{className:"text-[12px] font-semibold text-[var(--text-normal)]",children:"Timeline"})]}),(0,b.jsxs)(K.CardContent,{className:"space-y-2 text-[12px] text-[var(--text-muted)]",children:[(0,b.jsx)(ac,{icon:(0,b.jsx)(W,{className:"h-3.5 w-3.5"}),label:"Created",value:g.created}),(0,b.jsx)(ac,{icon:(0,b.jsx)(W,{className:"h-3.5 w-3.5"}),label:"Started",value:g.started}),(0,b.jsx)(ac,{icon:(0,b.jsx)(W,{className:"h-3.5 w-3.5"}),label:"Finished",value:g.finished}),(0,b.jsx)(ac,{icon:(0,b.jsx)(Q,{className:"h-3.5 w-3.5"}),label:"Duration",value:g.duration}),(0,b.jsx)(ac,{icon:(0,b.jsx)(S,{className:"h-3.5 w-3.5"}),label:"Estimated Cost",value:g.cost>0?`$${g.cost.toFixed(2)}`:"$0.00"})]})]})]})]})}function ac({icon:a,label:c,value:d}){return(0,b.jsxs)("div",{className:"surface-panel flex items-center gap-2 rounded-[var(--radius-sm)] border px-2.5 py-2",children:[(0,b.jsx)("span",{className:"text-[var(--text-faint)]",children:a}),(0,b.jsx)("span",{className:"min-w-[70px] text-[var(--text-faint)]",children:c}),(0,b.jsx)("span",{className:"ml-auto truncate text-right font-mono text-[11px] text-[var(--text-normal)]",children:d})]})}var ad=a.i(5784);let ae=(0,e.default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]),af=(0,e.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"}]]),ag=(0,e.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"}]]),ah=(0,e.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"}]]),ai=(0,e.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 aj=a.i(96101);let ak=(0,e.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"}]]),al=(0,e.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);var am=a.i(15618),an=a.i(69520),ao=a.i(87532);let ap=(0,e.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 aq=a.i(33508);let ar={hasDiff:!1,generatedAt:"",source:"not-found",truncated:!1,files:[],untracked:[]};function as(a){return"modified"===a||"added"===a||"deleted"===a||"renamed"===a||"copy"===a||"binary"===a?a:"unknown"}function at(a){return"meta"===a||"hunk"===a||"context"===a||"add"===a||"remove"===a||"info"===a?a:"context"}function au(a){return"string"!=typeof a?"":a.trim().replace(/^\/+/,"").replace(/\/+/g,"/")||"unknown-file"}function av(a){let b=new Map;for(let c of a.files??[]){let a=au(c.path),d={path:a,status:as(c.status),additions:Number.isFinite(c.additions)?Math.max(0,c.additions):0,deletions:Number.isFinite(c.deletions)?Math.max(0,c.deletions):0,lines:Array.isArray(c.lines)?c.lines.map(a=>({kind:at(a.kind),oldLine:"number"==typeof a.oldLine&&Number.isFinite(a.oldLine)?a.oldLine:null,newLine:"number"==typeof a.newLine&&Number.isFinite(a.newLine)?a.newLine:null,text:"string"==typeof a.text?a.text:""})):[],untracked:!!c.untracked};b.set(a,d)}for(let c of a.untracked??[]){let a=au(c);b.has(a)||b.set(a,{path:a,status:"added",additions:0,deletions:0,lines:[],untracked:!0})}return[...b.values()].sort((a,b)=>a.path.localeCompare(b.path,void 0,{sensitivity:"base"}))}function aw(a,b){return{name:a,path:b,dirs:new Map,files:[]}}function ax(a){return"working-tree"===a?"Working Tree":"remote-pr"===a?"Remote PR":"Not Found"}function ay(a){return"add"===a?"text-[var(--vk-green)]":"remove"===a?"text-[var(--vk-red)]":"hunk"===a?"text-[var(--status-working)]":"meta"===a||"info"===a?"text-[var(--vk-text-muted)]":"text-[var(--vk-text-normal)]"}function az({sessionId:a}){let d=encodeURIComponent(a),[e,f]=(0,c.useState)(ar),[g,h]=(0,c.useState)(!0),[i,j]=(0,c.useState)(null),[k,l]=(0,c.useState)("changes"),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(!1),[s,t]=(0,c.useState)(null),[u,v]=(0,c.useState)(null),[w,x]=(0,c.useState)({}),[y,z]=(0,c.useState)({}),[A,B]=(0,c.useState)([]),[C,D]=(0,c.useState)(!1),[E,F]=(0,c.useState)(!1),[G,H]=(0,c.useState)(null),[I,J]=(0,c.useState)(!1),[K,O]=(0,c.useState)(""),[P,Q]=(0,c.useState)(!1),[R,S]=(0,c.useState)(!1),[T,U]=(0,c.useState)(0),[V,W]=(0,c.useState)(!1),[X,Y]=(0,c.useState)(null),Z=(0,c.useRef)(!0),$=(0,c.useRef)({}),_=(0,c.useRef)(null),aa=(0,c.useRef)(!1),ab=(0,c.useCallback)(a=>av(a),[]),ac=(0,c.useCallback)(async()=>{try{let a=await fetch(`/api/sessions/${d}/diff`,{cache:"no-store"});if(!a.ok){if(404===a.status){if(!Z.current)return;f(ar),j(null);return}let b=`Failed to fetch diff (${a.status})`;try{let c=await a.json();"string"==typeof c.error&&c.error.length>0&&(b=c.error)}catch{}throw Error(b)}let b=await a.json();if(!Z.current)return;if(b.error)throw Error(b.error);let c={hasDiff:!!b.hasDiff,generatedAt:"string"==typeof b.generatedAt?b.generatedAt:"",source:"working-tree"===b.source||"remote-pr"===b.source?b.source:"not-found",truncated:!!b.truncated,files:Array.isArray(b.files)?b.files.map(a=>({path:au(a.path),status:as(a.status),additions:Number.isFinite(a.additions)?Math.max(0,Number(a.additions)):0,deletions:Number.isFinite(a.deletions)?Math.max(0,Number(a.deletions)):0,lines:Array.isArray(a.lines)?a.lines.map(a=>({kind:at(a.kind),oldLine:"number"==typeof a.oldLine&&Number.isFinite(a.oldLine)?a.oldLine:null,newLine:"number"==typeof a.newLine&&Number.isFinite(a.newLine)?a.newLine:null,text:"string"==typeof a.text?a.text:""})):[]})):[],untracked:Array.isArray(b.untracked)?b.untracked.filter(a=>"string"==typeof a):[]},e=ab(c);f(a=>!function(a,b){if(a.hasDiff!==b.hasDiff||a.generatedAt!==b.generatedAt||a.source!==b.source||a.truncated!==b.truncated||!function(a,b){if(a===b)return!0;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c+=1)if(a[c]!==b[c])return!1;return!0}(a.untracked,b.untracked)||a.files.length!==b.files.length)return!1;for(let c=0;c<a.files.length;c+=1){let d=a.files[c],e=b.files[c];if(d.path!==e.path||d.status!==e.status||d.additions!==e.additions||d.deletions!==e.deletions||!!d.untracked!=!!e.untracked||d.lines.length!==e.lines.length)return!1;for(let a=0;a<d.lines.length;a+=1){let b=d.lines[a],c=e.lines[a];if(b.kind!==c.kind||b.oldLine!==c.oldLine||b.newLine!==c.newLine||b.text!==c.text)return!1}}return!0}(a,c)?c:a),t(a=>a&&e.some(b=>b.path===a)?a:e[0]?.path??null),x(a=>{let b={...a};for(let a of e.slice(0,10))null==b[a.path]&&(b[a.path]=!0);return b}),j(null)}catch(a){Z.current&&(f(ar),j(a instanceof Error?a.message:"Failed to load diff"))}finally{Z.current&&h(!1)}},[d,ab]),az=(0,c.useCallback)(async()=>{F(!0);try{let a=await fetch(`/api/sessions/${d}/files`,{cache:"no-store"});if(!a.ok){if(404===a.status){if(!Z.current)return;B([]),D(!0),J(!1),H(null);return}let b=`Failed to load workspace files (${a.status})`;try{let c=await a.json();"string"==typeof c.error&&c.error.length>0&&(b=c.error)}catch{}throw Error(b)}let b=await a.json();if(!Z.current)return;let c=Array.isArray(b.files)?b.files.filter(a=>"string"==typeof a&&a.trim().length>0):[];B(c),D(!0),J(!!b.truncated),H(null),v(a=>a&&c.includes(a)?a:c[0]??null)}catch(a){if(!Z.current)return;B([]),D(!1),H(a instanceof Error?a.message:"Failed to load workspace files")}finally{Z.current&&F(!1)}},[d]),aA=(0,c.useCallback)(async a=>{W(!0);try{let b=encodeURIComponent(a),c=await fetch(`/api/sessions/${d}/files?path=${b}`,{cache:"no-store"});if(!c.ok){if(404===c.status){if(!Z.current)return;O(""),Q(!1),S(!1),U(0),Y("File no longer exists in this workspace.");return}let a=`Failed to load file content (${c.status})`;try{let b=await c.json();"string"==typeof b.error&&b.error.length>0&&(a=b.error)}catch{}throw Error(a)}let e=await c.json();if(!Z.current)return;O("string"==typeof e.content?e.content:""),Q(!!e.binary),S(!!e.truncated),U("number"==typeof e.size&&Number.isFinite(e.size)?Math.max(0,e.size):0),Y(null)}catch(a){if(!Z.current)return;O(""),Q(!1),S(!1),U(0),Y(a instanceof Error?a.message:"Failed to load file content")}finally{Z.current&&W(!1)}},[d]);(0,c.useEffect)(()=>{Z.current=!0,_.current=null,aa.current=!1,ac();let b=(0,M.subscribeToSnapshotEvents)(b=>{if(!Z.current)return;let c=b.sessions.find(b=>b.id===a);if(!c)return;aa.current=N.TERMINAL_STATUSES.has(c.status);let d=`${c.status}:${c.lastActivityAt}`;_.current!==d&&(_.current=d,ac())}),c=null,d=()=>{let a="visible"!==document.visibilityState||aa.current?3e4:15e3;c=window.setTimeout(async()=>{Z.current&&(await ac(),Z.current&&d())},a)};d();let e=()=>{_.current=null,ac()},f=()=>{"visible"===document.visibilityState&&e()};return window.addEventListener("focus",e),document.addEventListener("visibilitychange",f),()=>{Z.current=!1,b(),null!=c&&window.clearTimeout(c),window.removeEventListener("focus",e),document.removeEventListener("visibilitychange",f)}},[ac,a]),(0,c.useEffect)(()=>{_.current=null,aa.current=!1,h(!0),l("changes"),p(""),v(null),B([]),D(!1),F(!1),H(null),J(!1),O(""),Q(!1),S(!1),U(0),W(!1),Y(null)},[a]),(0,c.useEffect)(()=>{"files"!==k||C||E||az()},[az,k,C,E]),(0,c.useEffect)(()=>{"files"!==k||u&&aA(u)},[aA,u,k]);let aB=(0,c.useMemo)(()=>av(e),[e]),aC=m.trim().toLowerCase(),aD=(0,c.useMemo)(()=>0===aC.length?aB:aB.filter(a=>a.path.toLowerCase().includes(aC)),[aB,aC]),aE=(0,c.useMemo)(()=>(function(a){let b=aw("","");for(let c of a){let a=c.path.split("/").filter(a=>a.length>0),d=a.pop()??c.path,e=b,f="";for(let b of a){f=f?`${f}/${b}`:b;let a=e.dirs.get(b);if(a){e=a;continue}let c=aw(b,f);e.dirs.set(b,c),e=c}e.files.push({kind:"file",name:d,path:c.path,additions:c.additions,deletions:c.deletions,status:c.status,untracked:!!c.untracked})}return function a(b){let c=[...[...b.dirs.values()].sort((a,b)=>a.name.localeCompare(b.name,void 0,{sensitivity:"base"})).map(a),...[...b.files].sort((a,b)=>a.name.localeCompare(b.name,void 0,{sensitivity:"base"}))],d=0,e=0,f=0;for(let a of c){if("dir"===a.kind){d+=a.additions,e+=a.deletions,f+=a.fileCount;continue}d+=a.additions,e+=a.deletions,f+=1}return{kind:"dir",name:b.name,path:b.path,additions:d,deletions:e,fileCount:f,children:c}}(b)})(aD),[aD]),aF=(0,c.useMemo)(()=>aB.reduce((a,b)=>a+Math.max(0,b.additions),0),[aB]),aG=(0,c.useMemo)(()=>aB.reduce((a,b)=>a+Math.max(0,b.deletions),0),[aB]),aH=(0,c.useMemo)(()=>s?aB.find(a=>a.path===s)??null:aB[0]??null,[aB,s]),aI=o.trim().toLowerCase(),aJ=(0,c.useMemo)(()=>0===aI.length?A:A.filter(a=>a.toLowerCase().includes(aI)),[A,aI]);function aK(a){t(a),x(b=>({...b,[a]:!0})),window.requestAnimationFrame(()=>{$.current[a]?.scrollIntoView({behavior:"smooth",block:"start"})})}return(0,b.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,b.jsxs)("div",{className:"flex h-[32px] shrink-0 items-center border-b border-[var(--vk-border)] px-2",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)(ak,{className:"h-[15px] w-[15px] text-[var(--vk-text-muted)]"}),(0,b.jsx)("span",{className:"truncate text-[13px] font-medium text-[var(--vk-text-strong)]",children:"Review Diff"}),(0,b.jsx)(L.Badge,{variant:"outline",className:"h-[20px] px-1.5 text-[10px]",children:ax(e.source)})]}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsx)("span",{className:"hidden text-[11px] text-[var(--vk-text-muted)] md:inline",children:function(a){if(!a)return"Not generated";let b=new Date(a);return Number.isNaN(b.getTime())?"Not generated":b.toLocaleString(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}(e.generatedAt)}),(0,b.jsx)("button",{type:"button",onClick:()=>void ac(),disabled:g,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,b.jsx)(an.RefreshCw,{className:`h-[14px] w-[14px] ${g?"animate-spin":""}`})}),(0,b.jsxs)("button",{type:"button",onClick:()=>r(a=>!a),className:`inline-flex h-[22px] items-center gap-1 rounded-[3px] px-1.5 text-[11px] ${q?"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,b.jsx)(ap,{className:"h-[14px] w-[14px]"}),"Wrap"]})]})]}),(0,b.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col xl:flex-row",children:[(0,b.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,b.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,b.jsxs)("span",{children:[aB.length," files changed"]}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5 text-[var(--vk-green)]",children:[(0,b.jsx)(am.Plus,{className:"h-[12px] w-[12px]"}),aF]}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-0.5 text-[var(--vk-red)]",children:[(0,b.jsx)(al,{className:"h-[12px] w-[12px]"}),aG]}),e.truncated&&(0,b.jsx)("span",{className:"ml-auto text-[var(--status-attention)]",children:"Output truncated"})]}),(0,b.jsxs)("div",{className:"min-h-0 flex-1 overflow-auto bg-[var(--vk-bg-panel)]",children:[g&&0===aB.length&&!i&&(0,b.jsx)("div",{className:"flex h-full items-center justify-center p-8 text-[13px] text-[var(--vk-text-muted)]",children:"Loading session diff..."}),i&&(0,b.jsx)("div",{className:"flex h-full items-center justify-center p-8 text-center text-[13px] text-[var(--status-error)]",children:i}),!g&&!i&&0===aB.length&&(0,b.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 p-8 text-center",children:[(0,b.jsx)(af,{className:"h-7 w-7 text-[var(--vk-text-muted)]"}),(0,b.jsx)("p",{className:"text-[13px] text-[var(--vk-text-muted)]",children:"No changed files in this session yet."})]}),!i&&aB.length>0&&aB.map(a=>{let c=w[a.path]??!0,d=aH?.path===a.path;return(0,b.jsxs)("div",{ref:b=>{$.current[a.path]=b},className:`border-b border-[var(--vk-border)] ${d?"bg-[var(--vk-bg-active)]/40":"bg-[var(--vk-bg-panel)]"}`,children:[(0,b.jsxs)("div",{className:"flex min-h-[40px] items-center gap-2 px-2",children:[(0,b.jsx)("button",{type:"button",onClick:()=>{var b;return b=a.path,void x(a=>{let c=a[b]??!0;return{...a,[b]:!c}})},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":c?`Collapse ${a.path}`:`Expand ${a.path}`,children:c?(0,b.jsx)(ad.ChevronDown,{className:"h-[15px] w-[15px]"}):(0,b.jsx)(ae,{className:"h-[15px] w-[15px]"})}),(0,b.jsx)("span",{className:`inline-flex h-[23px] min-w-[58px] items-center justify-center rounded-[3px] border px-1.5 text-[11px] ${a.untracked||"added"===a.status?"border-[rgba(84,176,79,0.35)] text-[var(--vk-green)]":"deleted"===a.status?"border-[rgba(210,81,81,0.35)] text-[var(--vk-red)]":"renamed"===a.status||"copy"===a.status?"border-[rgba(108,168,255,0.35)] text-[var(--status-working)]":"binary"===a.status?"border-[rgba(210,160,59,0.35)] text-[var(--status-attention)]":"border-[var(--vk-border)] text-[var(--vk-text-muted)]"}`,children:a.untracked?"Untracked":"added"===a.status?"Added":"deleted"===a.status?"Deleted":"renamed"===a.status?"Renamed":"copy"===a.status?"Copied":"binary"===a.status?"Binary":"modified"===a.status?"Modified":"Changed"}),(0,b.jsx)("button",{type:"button",onClick:()=>aK(a.path),className:`min-w-0 flex-1 truncate text-left font-mono text-[12px] ${d?"text-[var(--vk-text-strong)]":"text-[var(--vk-text-normal)]"}`,children:a.path}),(0,b.jsxs)("div",{className:"flex items-center gap-2 font-mono text-[11px]",children:[a.additions>0&&(0,b.jsxs)("span",{className:"text-[var(--vk-green)]",children:["+",a.additions]}),a.deletions>0&&(0,b.jsxs)("span",{className:"text-[var(--vk-red)]",children:["-",a.deletions]}),0===a.additions&&0===a.deletions&&(0,b.jsx)("span",{className:"text-[var(--vk-text-muted)]",children:"0"})]})]}),c&&(0,b.jsx)("div",{className:"border-t border-[var(--vk-border)] bg-[var(--vk-bg-outer)]/30",children:0===a.lines.length?(0,b.jsx)("div",{className:"px-2 py-2 font-mono text-[11px] text-[var(--vk-text-muted)]",children:a.untracked?"Untracked file (line-level diff unavailable until staged).":"No line-level diff output for this file."}):(0,b.jsx)("div",{className:q?"":"overflow-x-auto",children:(0,b.jsxs)("div",{className:q?"":"min-w-[760px]",children:[(0,b.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,b.jsx)("div",{children:"Old"}),(0,b.jsx)("div",{children:"New"}),(0,b.jsx)("div",{}),(0,b.jsx)("div",{children:"Line"})]}),a.lines.map((c,d)=>{var e,f;return(0,b.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"===(e=c.kind)?"bg-[rgba(84,176,79,0.18)]":"remove"===e?"bg-[rgba(210,81,81,0.18)]":"hunk"===e?"bg-[rgba(108,168,255,0.12)]":""}`,children:[(0,b.jsx)("div",{className:"text-[var(--vk-text-muted)]",children:c.oldLine??""}),(0,b.jsx)("div",{className:"text-[var(--vk-text-muted)]",children:c.newLine??""}),(0,b.jsx)("div",{className:ay(c.kind),children:"add"===(f=c.kind)?"+":"remove"===f?"-":"hunk"===f?"@":"info"===f?"i":""}),(0,b.jsx)("div",{className:`${ay(c.kind)} ${q?"whitespace-pre-wrap break-words":"whitespace-pre"}`,children:c.text})]},`${a.path}-${d}-${c.oldLine??"x"}-${c.newLine??"y"}`)})]})})})]},a.path)})]})]}),(0,b.jsxs)("aside",{className:"flex min-h-0 w-full shrink-0 flex-col bg-[var(--vk-bg-panel)] xl:w-[299px]",children:[(0,b.jsxs)("div",{className:"flex h-[32px] items-center gap-1 border-b border-[var(--vk-border)] p-1",children:[(0,b.jsx)("button",{type:"button",onClick:()=>l("changes"),className:`inline-flex h-[24px] items-center rounded-[3px] px-2 text-[12px] ${"changes"===k?"bg-[var(--vk-bg-active)] text-[var(--vk-text-strong)]":"text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]"}`,children:"Changes"}),(0,b.jsx)("button",{type:"button",onClick:()=>l("files"),className:`inline-flex h-[24px] items-center rounded-[3px] px-2 text-[12px] ${"files"===k?"bg-[var(--vk-bg-active)] text-[var(--vk-text-strong)]":"text-[var(--vk-text-muted)] hover:bg-[var(--vk-bg-hover)]"}`,children:"Files"})]}),"changes"===k?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"border-b border-[var(--vk-border)] p-2",children:(0,b.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,b.jsx)(ao.Search,{className:"h-[15px] w-[15px] text-[var(--vk-text-muted)]"}),(0,b.jsx)("input",{type:"text",value:m,onChange:a=>n(a.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,b.jsx)("button",{type:"button",onClick:()=>n(""),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,b.jsx)(aq.X,{className:"h-[12px] w-[12px]"})})]})}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-auto",children:0===aD.length?(0,b.jsx)("div",{className:"px-3 py-3 text-[13px] text-[var(--vk-text-muted)]",children:aC.length>0?"No files match the current search.":"No changed files."}):(0,b.jsx)("div",{className:"py-1",children:function a(c,d=0){let e=[];for(let f of c){if("dir"===f.kind){let c=!!y[f.path];e.push((0,b.jsxs)("button",{type:"button",onClick:()=>(function(a){z(b=>({...b,[a]:!b[a]}))})(f.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*d}px`},children:[c?(0,b.jsx)(ae,{className:"h-3.5 w-3.5 shrink-0 text-[var(--vk-text-muted)]"}):(0,b.jsx)(ad.ChevronDown,{className:"h-3.5 w-3.5 shrink-0 text-[var(--vk-text-muted)]"}),c?(0,b.jsx)(ai,{className:"h-3.5 w-3.5 shrink-0 text-[var(--vk-text-muted)]"}):(0,b.jsx)(aj.FolderOpen,{className:"h-3.5 w-3.5 shrink-0 text-[var(--vk-text-muted)]"}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:f.name}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-[11px] text-[var(--vk-text-muted)]",children:f.fileCount})]},`dir-${f.path}`)),c||e.push(...a(f.children,d+1));continue}let c=f.path===s;e.push((0,b.jsxs)("button",{type:"button",onClick:()=>aK(f.path),className:`flex h-[26px] w-full items-center gap-1.5 pr-2 text-left text-[12px] transition-colors ${c?"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*d}px`},children:[(0,b.jsx)("span",{className:"inline-flex w-4 shrink-0 justify-center",children:f.untracked?(0,b.jsx)(ah,{className:"h-3.5 w-3.5 text-[var(--vk-green)]"}):(0,b.jsx)(ag,{className:"h-3.5 w-3.5 text-[var(--vk-text-muted)]"})}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:f.name}),f.additions>0&&(0,b.jsxs)("span",{className:"shrink-0 font-mono text-[11px] text-[var(--vk-green)]",children:["+",f.additions]}),f.deletions>0&&(0,b.jsxs)("span",{className:"shrink-0 font-mono text-[11px] text-[var(--vk-red)]",children:["-",f.deletions]})]},`file-${f.path}`))}return e}(aE.children)})}),(0,b.jsxs)("div",{className:"border-t border-[var(--vk-border)] p-2",children:[(0,b.jsx)("div",{className:"text-[16px] font-medium text-[var(--vk-text-normal)]",children:"Git"}),(0,b.jsxs)("div",{className:"mt-2 rounded-[3px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] px-2 py-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between text-[12px] text-[var(--vk-text-muted)]",children:[(0,b.jsx)("span",{children:"Files"}),(0,b.jsx)("span",{className:"font-mono text-[var(--vk-text-normal)]",children:aB.length})]}),(0,b.jsxs)("div",{className:"mt-1 flex items-center justify-between text-[12px]",children:[(0,b.jsx)("span",{className:"text-[var(--vk-text-muted)]",children:"Added"}),(0,b.jsxs)("span",{className:"font-mono text-[var(--vk-green)]",children:["+",aF]})]}),(0,b.jsxs)("div",{className:"mt-1 flex items-center justify-between text-[12px]",children:[(0,b.jsx)("span",{className:"text-[var(--vk-text-muted)]",children:"Deleted"}),(0,b.jsxs)("span",{className:"font-mono text-[var(--vk-red)]",children:["-",aG]})]}),(0,b.jsxs)("div",{className:"mt-1 flex items-center justify-between text-[12px]",children:[(0,b.jsx)("span",{className:"text-[var(--vk-text-muted)]",children:"Source"}),(0,b.jsx)("span",{className:"font-mono text-[var(--vk-text-normal)]",children:ax(e.source)})]})]})]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"border-b border-[var(--vk-border)] p-2",children:(0,b.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,b.jsx)(ao.Search,{className:"h-[15px] w-[15px] text-[var(--vk-text-muted)]"}),(0,b.jsx)("input",{type:"text",value:o,onChange:a=>p(a.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)]"}),o.length>0&&(0,b.jsx)("button",{type:"button",onClick:()=>p(""),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,b.jsx)(aq.X,{className:"h-[12px] w-[12px]"})})]})}),(0,b.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsxs)("div",{className:"min-h-0 flex-1 overflow-auto border-b border-[var(--vk-border)]",children:[E&&(0,b.jsx)("div",{className:"px-3 py-3 text-[13px] text-[var(--vk-text-muted)]",children:"Loading workspace files..."}),G&&(0,b.jsx)("div",{className:"px-3 py-3 text-[13px] text-[var(--status-error)]",children:G}),!E&&!G&&0===aJ.length&&(0,b.jsx)("div",{className:"px-3 py-3 text-[13px] text-[var(--vk-text-muted)]",children:aI.length>0?"No files match the current search.":"No files found."}),!E&&!G&&aJ.length>0&&(0,b.jsx)("div",{className:"py-1",children:aJ.map(a=>{let c=a===u,d=a.split("/").pop()??a;return(0,b.jsxs)("button",{type:"button",onClick:()=>v(a),className:`flex h-[26px] w-full items-center gap-1.5 px-2 text-left text-[12px] ${c?"bg-[var(--vk-bg-active)] text-[var(--vk-text-strong)]":"text-[var(--vk-text-normal)] hover:bg-[var(--vk-bg-hover)]"}`,children:[(0,b.jsx)(ag,{className:"h-3.5 w-3.5 shrink-0 text-[var(--vk-text-muted)]"}),(0,b.jsx)("span",{className:"truncate",children:d})]},a)})})]}),(0,b.jsxs)("div",{className:"min-h-0 flex-1 overflow-auto bg-[var(--vk-bg-main)] p-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--vk-border)] pb-2",children:[(0,b.jsx)("span",{className:"truncate font-mono text-[11px] text-[var(--vk-text-normal)]",children:u??"Select a file"}),T>0&&(0,b.jsxs)("span",{className:"ml-2 shrink-0 font-mono text-[10px] text-[var(--vk-text-muted)]",children:[T.toLocaleString()," bytes"]})]}),I&&(0,b.jsx)("p",{className:"pt-2 text-[11px] text-[var(--status-attention)]",children:"File list truncated to the first 4000 files."}),V&&(0,b.jsx)("p",{className:"pt-2 text-[12px] text-[var(--vk-text-muted)]",children:"Loading file content..."}),X&&(0,b.jsx)("p",{className:"pt-2 text-[12px] text-[var(--status-error)]",children:X}),!V&&!X&&u&&P&&(0,b.jsx)("p",{className:"pt-2 text-[12px] text-[var(--vk-text-muted)]",children:"Binary file preview is not available."}),!V&&!X&&u&&!P&&K.length>0&&(0,b.jsx)("pre",{className:"pt-2 whitespace-pre-wrap break-words font-mono text-[11px] text-[var(--vk-text-normal)]",children:K}),!V&&!X&&u&&!P&&0===K.length&&(0,b.jsx)("p",{className:"pt-2 text-[12px] text-[var(--vk-text-muted)]",children:"File is empty."}),R&&(0,b.jsx)("p",{className:"pt-2 text-[11px] text-[var(--status-attention)]",children:"Preview truncated to 1 MB."})]})]})]})]})]})]})}let aA=(0,e.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"}]]),aB=(0,e.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 aC=a.i(77156);let aD=(0,e.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 aE=a.i(96221);let aF=(0,e.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"}]]),aG=(0,e.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"}]]),aH=(0,e.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 aI=a.i(71541),aJ=a.i(70121),aK=a.i(46872),aL=a.i(72752),aM="ScrollArea",[aN,aO]=(0,k.createContextScope)(aM),[aP,aQ]=aN(aM),aR=c.forwardRef((a,d)=>{let{__scopeScrollArea:e,type:f="hover",dir:g,scrollHideDelay:h=600,...i}=a,[j,k]=c.useState(null),[l,m]=c.useState(null),[p,q]=c.useState(null),[r,s]=c.useState(null),[t,u]=c.useState(null),[v,w]=c.useState(0),[x,y]=c.useState(0),[z,A]=c.useState(!1),[B,C]=c.useState(!1),D=(0,aJ.useComposedRefs)(d,a=>k(a)),E=(0,o.useDirection)(g);return(0,b.jsx)(aP,{scope:e,type:f,dir:E,scrollHideDelay:h,scrollArea:j,viewport:l,onViewportChange:m,content:p,onContentChange:q,scrollbarX:r,onScrollbarXChange:s,scrollbarXEnabled:z,onScrollbarXEnabledChange:A,scrollbarY:t,onScrollbarYChange:u,scrollbarYEnabled:B,onScrollbarYEnabledChange:C,onCornerWidthChange:w,onCornerHeightChange:y,children:(0,b.jsx)(n.Primitive.div,{dir:E,...i,ref:D,style:{position:"relative","--radix-scroll-area-corner-width":v+"px","--radix-scroll-area-corner-height":x+"px",...a.style}})})});aR.displayName=aM;var aS="ScrollAreaViewport",aT=c.forwardRef((a,d)=>{let{__scopeScrollArea:e,children:f,nonce:g,...h}=a,i=aQ(aS,e),j=c.useRef(null),k=(0,aJ.useComposedRefs)(d,j,i.onViewportChange);return(0,b.jsxs)(b.Fragment,{children:[(0,b.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:g}),(0,b.jsx)(n.Primitive.div,{"data-radix-scroll-area-viewport":"",...h,ref:k,style:{overflowX:i.scrollbarXEnabled?"scroll":"hidden",overflowY:i.scrollbarYEnabled?"scroll":"hidden",...a.style},children:(0,b.jsx)("div",{ref:i.onContentChange,style:{minWidth:"100%",display:"table"},children:f})})]})});aT.displayName=aS;var aU="ScrollAreaScrollbar",aV=c.forwardRef((a,d)=>{let{forceMount:e,...f}=a,g=aQ(aU,a.__scopeScrollArea),{onScrollbarXEnabledChange:h,onScrollbarYEnabledChange:i}=g,j="horizontal"===a.orientation;return c.useEffect(()=>(j?h(!0):i(!0),()=>{j?h(!1):i(!1)}),[j,h,i]),"hover"===g.type?(0,b.jsx)(aW,{...f,ref:d,forceMount:e}):"scroll"===g.type?(0,b.jsx)(aX,{...f,ref:d,forceMount:e}):"auto"===g.type?(0,b.jsx)(aY,{...f,ref:d,forceMount:e}):"always"===g.type?(0,b.jsx)(aZ,{...f,ref:d}):null});aV.displayName=aU;var aW=c.forwardRef((a,d)=>{let{forceMount:e,...f}=a,g=aQ(aU,a.__scopeScrollArea),[h,i]=c.useState(!1);return c.useEffect(()=>{let a=g.scrollArea,b=0;if(a){let c=()=>{window.clearTimeout(b),i(!0)},d=()=>{b=window.setTimeout(()=>i(!1),g.scrollHideDelay)};return a.addEventListener("pointerenter",c),a.addEventListener("pointerleave",d),()=>{window.clearTimeout(b),a.removeEventListener("pointerenter",c),a.removeEventListener("pointerleave",d)}}},[g.scrollArea,g.scrollHideDelay]),(0,b.jsx)(m.Presence,{present:e||h,children:(0,b.jsx)(aY,{"data-state":h?"visible":"hidden",...f,ref:d})})}),aX=c.forwardRef((a,d)=>{var e;let{forceMount:f,...g}=a,h=aQ(aU,a.__scopeScrollArea),i="horizontal"===a.orientation,k=bf(()=>n("SCROLL_END"),100),[l,n]=(e={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},c.useReducer((a,b)=>e[a][b]??a,"hidden"));return c.useEffect(()=>{if("idle"===l){let a=window.setTimeout(()=>n("HIDE"),h.scrollHideDelay);return()=>window.clearTimeout(a)}},[l,h.scrollHideDelay,n]),c.useEffect(()=>{let a=h.viewport,b=i?"scrollLeft":"scrollTop";if(a){let c=a[b],d=()=>{let d=a[b];c!==d&&(n("SCROLL"),k()),c=d};return a.addEventListener("scroll",d),()=>a.removeEventListener("scroll",d)}},[h.viewport,i,n,k]),(0,b.jsx)(m.Presence,{present:f||"hidden"!==l,children:(0,b.jsx)(aZ,{"data-state":"hidden"===l?"hidden":"visible",...g,ref:d,onPointerEnter:(0,j.composeEventHandlers)(a.onPointerEnter,()=>n("POINTER_ENTER")),onPointerLeave:(0,j.composeEventHandlers)(a.onPointerLeave,()=>n("POINTER_LEAVE"))})})}),aY=c.forwardRef((a,d)=>{let e=aQ(aU,a.__scopeScrollArea),{forceMount:f,...g}=a,[h,i]=c.useState(!1),j="horizontal"===a.orientation,k=bf(()=>{if(e.viewport){let a=e.viewport.offsetWidth<e.viewport.scrollWidth,b=e.viewport.offsetHeight<e.viewport.scrollHeight;i(j?a:b)}},10);return bg(e.viewport,k),bg(e.content,k),(0,b.jsx)(m.Presence,{present:f||h,children:(0,b.jsx)(aZ,{"data-state":h?"visible":"hidden",...g,ref:d})})}),aZ=c.forwardRef((a,d)=>{let{orientation:e="vertical",...f}=a,g=aQ(aU,a.__scopeScrollArea),h=c.useRef(null),i=c.useRef(0),[j,k]=c.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=ba(j.viewport,j.content),m={...f,sizes:j,onSizesChange:k,hasThumb:!!(l>0&&l<1),onThumbChange:a=>h.current=a,onThumbPointerUp:()=>i.current=0,onThumbPointerDown:a=>i.current=a};function n(a,b){return function(a,b,c,d="ltr"){let e=bb(c),f=b||e/2,g=c.scrollbar.paddingStart+f,h=c.scrollbar.size-c.scrollbar.paddingEnd-(e-f),i=c.content-c.viewport;return bd([g,h],"ltr"===d?[0,i]:[-1*i,0])(a)}(a,i.current,j,b)}return"horizontal"===e?(0,b.jsx)(a$,{...m,ref:d,onThumbPositionChange:()=>{if(g.viewport&&h.current){let a=bc(g.viewport.scrollLeft,j,g.dir);h.current.style.transform=`translate3d(${a}px, 0, 0)`}},onWheelScroll:a=>{g.viewport&&(g.viewport.scrollLeft=a)},onDragScroll:a=>{g.viewport&&(g.viewport.scrollLeft=n(a,g.dir))}}):"vertical"===e?(0,b.jsx)(a_,{...m,ref:d,onThumbPositionChange:()=>{if(g.viewport&&h.current){let a=bc(g.viewport.scrollTop,j);h.current.style.transform=`translate3d(0, ${a}px, 0)`}},onWheelScroll:a=>{g.viewport&&(g.viewport.scrollTop=a)},onDragScroll:a=>{g.viewport&&(g.viewport.scrollTop=n(a))}}):null}),a$=c.forwardRef((a,d)=>{let{sizes:e,onSizesChange:f,...g}=a,h=aQ(aU,a.__scopeScrollArea),[i,j]=c.useState(),k=c.useRef(null),l=(0,aJ.useComposedRefs)(d,k,h.onScrollbarXChange);return c.useEffect(()=>{k.current&&j(getComputedStyle(k.current))},[k]),(0,b.jsx)(a2,{"data-orientation":"horizontal",...g,ref:l,sizes:e,style:{bottom:0,left:"rtl"===h.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===h.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":bb(e)+"px",...a.style},onThumbPointerDown:b=>a.onThumbPointerDown(b.x),onDragScroll:b=>a.onDragScroll(b.x),onWheelScroll:(b,c)=>{if(h.viewport){var d,e;let f=h.viewport.scrollLeft+b.deltaX;a.onWheelScroll(f),d=f,e=c,d>0&&d<e&&b.preventDefault()}},onResize:()=>{k.current&&h.viewport&&i&&f({content:h.viewport.scrollWidth,viewport:h.viewport.offsetWidth,scrollbar:{size:k.current.clientWidth,paddingStart:a9(i.paddingLeft),paddingEnd:a9(i.paddingRight)}})}})}),a_=c.forwardRef((a,d)=>{let{sizes:e,onSizesChange:f,...g}=a,h=aQ(aU,a.__scopeScrollArea),[i,j]=c.useState(),k=c.useRef(null),l=(0,aJ.useComposedRefs)(d,k,h.onScrollbarYChange);return c.useEffect(()=>{k.current&&j(getComputedStyle(k.current))},[k]),(0,b.jsx)(a2,{"data-orientation":"vertical",...g,ref:l,sizes:e,style:{top:0,right:"ltr"===h.dir?0:void 0,left:"rtl"===h.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":bb(e)+"px",...a.style},onThumbPointerDown:b=>a.onThumbPointerDown(b.y),onDragScroll:b=>a.onDragScroll(b.y),onWheelScroll:(b,c)=>{if(h.viewport){var d,e;let f=h.viewport.scrollTop+b.deltaY;a.onWheelScroll(f),d=f,e=c,d>0&&d<e&&b.preventDefault()}},onResize:()=>{k.current&&h.viewport&&i&&f({content:h.viewport.scrollHeight,viewport:h.viewport.offsetHeight,scrollbar:{size:k.current.clientHeight,paddingStart:a9(i.paddingTop),paddingEnd:a9(i.paddingBottom)}})}})}),[a0,a1]=aN(aU),a2=c.forwardRef((a,d)=>{let{__scopeScrollArea:e,sizes:f,hasThumb:g,onThumbChange:h,onThumbPointerUp:i,onThumbPointerDown:k,onThumbPositionChange:l,onDragScroll:m,onWheelScroll:o,onResize:p,...q}=a,r=aQ(aU,e),[s,t]=c.useState(null),u=(0,aJ.useComposedRefs)(d,a=>t(a)),v=c.useRef(null),w=c.useRef(""),x=r.viewport,y=f.content-f.viewport,z=(0,aK.useCallbackRef)(o),A=(0,aK.useCallbackRef)(l),B=bf(p,10);function C(a){v.current&&m({x:a.clientX-v.current.left,y:a.clientY-v.current.top})}return c.useEffect(()=>{let a=a=>{let b=a.target;s?.contains(b)&&z(a,y)};return document.addEventListener("wheel",a,{passive:!1}),()=>document.removeEventListener("wheel",a,{passive:!1})},[x,s,y,z]),c.useEffect(A,[f,A]),bg(s,B),bg(r.content,B),(0,b.jsx)(a0,{scope:e,scrollbar:s,hasThumb:g,onThumbChange:(0,aK.useCallbackRef)(h),onThumbPointerUp:(0,aK.useCallbackRef)(i),onThumbPositionChange:A,onThumbPointerDown:(0,aK.useCallbackRef)(k),children:(0,b.jsx)(n.Primitive.div,{...q,ref:u,style:{position:"absolute",...q.style},onPointerDown:(0,j.composeEventHandlers)(a.onPointerDown,a=>{0===a.button&&(a.target.setPointerCapture(a.pointerId),v.current=s.getBoundingClientRect(),w.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",r.viewport&&(r.viewport.style.scrollBehavior="auto"),C(a))}),onPointerMove:(0,j.composeEventHandlers)(a.onPointerMove,C),onPointerUp:(0,j.composeEventHandlers)(a.onPointerUp,a=>{let b=a.target;b.hasPointerCapture(a.pointerId)&&b.releasePointerCapture(a.pointerId),document.body.style.webkitUserSelect=w.current,r.viewport&&(r.viewport.style.scrollBehavior=""),v.current=null})})})}),a3="ScrollAreaThumb",a4=c.forwardRef((a,c)=>{let{forceMount:d,...e}=a,f=a1(a3,a.__scopeScrollArea);return(0,b.jsx)(m.Presence,{present:d||f.hasThumb,children:(0,b.jsx)(a5,{ref:c,...e})})}),a5=c.forwardRef((a,d)=>{let{__scopeScrollArea:e,style:f,...g}=a,h=aQ(a3,e),i=a1(a3,e),{onThumbPositionChange:k}=i,l=(0,aJ.useComposedRefs)(d,a=>i.onThumbChange(a)),m=c.useRef(void 0),o=bf(()=>{m.current&&(m.current(),m.current=void 0)},100);return c.useEffect(()=>{let a=h.viewport;if(a){let b=()=>{o(),m.current||(m.current=be(a,k),k())};return k(),a.addEventListener("scroll",b),()=>a.removeEventListener("scroll",b)}},[h.viewport,o,k]),(0,b.jsx)(n.Primitive.div,{"data-state":i.hasThumb?"visible":"hidden",...g,ref:l,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...f},onPointerDownCapture:(0,j.composeEventHandlers)(a.onPointerDownCapture,a=>{let b=a.target.getBoundingClientRect(),c=a.clientX-b.left,d=a.clientY-b.top;i.onThumbPointerDown({x:c,y:d})}),onPointerUp:(0,j.composeEventHandlers)(a.onPointerUp,i.onThumbPointerUp)})});a4.displayName=a3;var a6="ScrollAreaCorner",a7=c.forwardRef((a,c)=>{let d=aQ(a6,a.__scopeScrollArea),e=!!(d.scrollbarX&&d.scrollbarY);return"scroll"!==d.type&&e?(0,b.jsx)(a8,{...a,ref:c}):null});a7.displayName=a6;var a8=c.forwardRef((a,d)=>{let{__scopeScrollArea:e,...f}=a,g=aQ(a6,e),[h,i]=c.useState(0),[j,k]=c.useState(0),l=!!(h&&j);return bg(g.scrollbarX,()=>{let a=g.scrollbarX?.offsetHeight||0;g.onCornerHeightChange(a),k(a)}),bg(g.scrollbarY,()=>{let a=g.scrollbarY?.offsetWidth||0;g.onCornerWidthChange(a),i(a)}),l?(0,b.jsx)(n.Primitive.div,{...f,ref:d,style:{width:h,height:j,position:"absolute",right:"ltr"===g.dir?0:void 0,left:"rtl"===g.dir?0:void 0,bottom:0,...a.style}}):null});function a9(a){return a?parseInt(a,10):0}function ba(a,b){let c=a/b;return isNaN(c)?0:c}function bb(a){let b=ba(a.viewport,a.content),c=a.scrollbar.paddingStart+a.scrollbar.paddingEnd;return Math.max((a.scrollbar.size-c)*b,18)}function bc(a,b,c="ltr"){let d=bb(b),e=b.scrollbar.paddingStart+b.scrollbar.paddingEnd,f=b.scrollbar.size-e,g=b.content-b.viewport,h=function(a,[b,c]){return Math.min(c,Math.max(b,a))}(a,"ltr"===c?[0,g]:[-1*g,0]);return bd([0,g],[0,f-d])(h)}function bd(a,b){return c=>{if(a[0]===a[1]||b[0]===b[1])return b[0];let d=(b[1]-b[0])/(a[1]-a[0]);return b[0]+d*(c-a[0])}}var be=(a,b=()=>{})=>{let c={left:a.scrollLeft,top:a.scrollTop},d=0;return!function e(){let f={left:a.scrollLeft,top:a.scrollTop},g=c.left!==f.left,h=c.top!==f.top;(g||h)&&b(),c=f,d=window.requestAnimationFrame(e)}(),()=>window.cancelAnimationFrame(d)};function bf(a,b){let d=(0,aK.useCallbackRef)(a),e=c.useRef(0);return c.useEffect(()=>()=>window.clearTimeout(e.current),[]),c.useCallback(()=>{window.clearTimeout(e.current),e.current=window.setTimeout(d,b)},[d,b])}function bg(a,b){let c=(0,aK.useCallbackRef)(b);(0,aL.useLayoutEffect)(()=>{let b=0;if(a){let d=new ResizeObserver(()=>{cancelAnimationFrame(b),b=window.requestAnimationFrame(c)});return d.observe(a),()=>{window.cancelAnimationFrame(b),d.unobserve(a)}}},[a,c])}let bh=(0,c.forwardRef)(({className:a,children:c,...d},e)=>(0,b.jsxs)(aR,{ref:e,className:(0,G.cn)("relative overflow-hidden",a),...d,children:[(0,b.jsx)(aT,{className:"h-full w-full rounded-[inherit]",children:c}),(0,b.jsx)(bi,{}),(0,b.jsx)(a7,{})]}));bh.displayName="ScrollArea";let bi=(0,c.forwardRef)(({className:a,orientation:c="vertical",...d},e)=>(0,b.jsx)(aV,{ref:e,orientation:c,className:(0,G.cn)("flex touch-none select-none","vertical"===c&&"h-full w-2.5 border-l border-l-transparent p-px","horizontal"===c&&"h-2.5 flex-col border-t border-t-transparent p-px",a),...d,children:(0,b.jsx)(a4,{className:"relative flex-1 rounded-full bg-[color:color-mix(in_srgb,var(--border-strong)_75%,transparent)] hover:bg-[var(--border-strong)]"})}));bi.displayName="ScrollBar";let bj=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 bk(a){let b=Date.parse(a);return Number.isNaN(b)?a:new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit",second:"2-digit"}).format(new Date(b))}function bl(a,b=120){return a.length<=b?a:`${a.slice(0,b-1)}…`}function bm(a,b=180){let c=bl((a??"").replace(/\s+/g," ").trim(),b);return c?`"${c.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:null}function bn(a){return a.map(a=>a?.trim()).filter(a=>!!a).join("; ")}function bo(a,b){return[`[${a}]`,...b.map(a=>a?.trim()).filter(a=>!!a)].join("\n")}function bp(a,b){return{inlineText:bn(["[Browser selection]",`selector=${bm(a.selector,220)}`,`tag=${a.tag}`,a.role?`role=${a.role}`:null,a.name?`name=${bm(a.name,140)}`:null,a.text?`text=${bm(a.text,180)}`:null,a.frameName?`frame=${bm(a.frameName,120)}`:null,b?`page=${bm(b,220)}`:null]),draftText:bo("Browser selection",[b?`Page: ${b}`:null,`Frame: ${a.frameName} (${a.frameUrl})`,`Selector: ${a.selector}`,`Tag: ${a.tag}`,a.role?`Role: ${a.role}`:null,a.name?`Name: ${a.name}`:null,a.text?`Text: ${a.text}`:null,a.htmlPreview?`HTML preview: ${a.htmlPreview}`:null]),successMessage:"Queued the selected element for terminal input."}}function bq(a,b,c,d){let e=b.slice("console"===a?-8:-10),f=e.map(b=>{let c=[b.level,bm(b.message,120)];return"network"===a&&(c.unshift(b.method??"GET"),c.push("number"==typeof b.status?String(b.status):null),c.push(b.url?bm(b.url,120):null)),c.filter(Boolean).join(" ")});return{inlineText:bn(["console"===a?"[Browser console]":"[Browser network]",c?`page=${bm(c,220)}`:null,d?`selected=${bm(d.selector,180)}`:null,`entries=${bm(f.join(" | "),520)}`]),draftText:bo("console"===a?"Browser console logs":"Browser network logs",[c?`Page: ${c}`:null,d?`Selected element: ${d.selector}`:null,...e.map(b=>"console"===a?`- ${bk(b.timestamp)} ${b.level}: ${b.message}`:`- ${bk(b.timestamp)} ${b.method??"GET"} ${b.status??"-"} ${b.url??b.message}`)]),successMessage:"console"===a?"Queued recent console logs for terminal input.":"Queued recent network logs for terminal input."}}function br({sessionId:a,onQueueTerminalInsert:d,onConnectionChange:e}){let[f,h]=(0,c.useState)(null),[j,k]=(0,c.useState)([]),[l,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(!1),[p,q]=(0,c.useState)(!0),[r,s]=(0,c.useState)(!0),[t,u]=(0,c.useState)(null),[v,w]=(0,c.useState)(null),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)(null),[B,C]=(0,c.useState)("navigate"),[D,E]=(0,c.useState)(null),[F,H]=(0,c.useState)(""),[I,J]=(0,c.useState)({naturalWidth:0,naturalHeight:0,renderedWidth:0,renderedHeight:0}),M=(0,c.useRef)(null),N=(0,c.useRef)(Promise.resolve()),O=(0,c.useRef)(null),P=(0,c.useRef)(null),Q=(0,c.useCallback)(async()=>{let b=await fetch(`/api/sessions/${encodeURIComponent(a)}/preview`,{cache:"no-store"}),c=await b.json().catch(()=>null);if(!b.ok)throw Error(c&&"error"in c?c.error??"Failed to load preview state":`Failed to load preview state: ${b.status}`);h(c),u(null),H(a=>a.trim().length>0&&a!==f?.currentUrl?a:c.currentUrl??c.candidateUrls[0]??a)},[a,f?.currentUrl]),S=(0,c.useCallback)(async b=>{o(!0),u(null);try{let c=await fetch(`/api/sessions/${encodeURIComponent(a)}/preview`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),d=await c.json().catch(()=>null);if(!c.ok)throw d&&"object"==typeof d&&"status"in d&&d.status&&h(d.status),Error(d&&"error"in d?d.error??"Preview command failed":`Preview command failed: ${c.status}`);return h(d),d}finally{o(!1)}},[a]),T=(0,c.useCallback)((a,b)=>{N.current=N.current.catch(()=>void 0).then(async()=>{try{await S(a)}catch(a){u(a instanceof Error?a.message:b)}})},[S]),U=(0,c.useCallback)(async b=>{if(!f?.connected)return void k([]);m(!0);try{let c=new URLSearchParams;b&&c.set("frameId",b),r&&c.set("interactiveOnly","1");let d=await fetch(`/api/sessions/${encodeURIComponent(a)}/preview/dom?${c.toString()}`,{cache:"no-store"}),e=await d.json().catch(()=>null);if(!d.ok)throw Error(e&&"error"in e?e.error??"Failed to inspect DOM":`Failed to inspect DOM: ${d.status}`);k(e.nodes)}catch(a){u(a instanceof Error?a.message:"Failed to inspect DOM"),k([])}finally{m(!1)}},[r,a,f?.connected]);(0,c.useEffect)(()=>{let a=!0;(async()=>{try{await Q()}catch(b){a&&u(b instanceof Error?b.message:"Failed to load preview")}finally{a&&q(!1)}})();let b=window.setInterval(()=>{Q().catch(b=>{a&&u(b instanceof Error?b.message:"Failed to refresh preview")})},4e3);return()=>{a=!1,window.clearInterval(b)}},[Q]),(0,c.useEffect)(()=>{f?.connected?U(f.activeFrameId):k([])},[r,U,f?.activeFrameId,f?.connected,f?.screenshotKey]),(0,c.useEffect)(()=>{if(f?.connected){M.current=null;return}E(null);let a=f?.candidateUrls[0];if(!a)return;let b=M.current?.attemptedAt??NaN,c=M.current?.candidate??null,d=Date.now();c===a&&Number.isFinite(b)&&d-b<5e3||(M.current={candidate:a,attemptedAt:d},S({command:"connect",url:a}).catch(a=>{u(a instanceof Error?a.message:"Failed to connect preview")}))},[S,f?.candidateUrls,f?.connected]),(0,c.useEffect)(()=>{e?.(!!(f?.connected&&f?.screenshotKey))},[e,f?.connected,f?.screenshotKey]);let V=(0,c.useMemo)(()=>f?.connected?`/api/sessions/${encodeURIComponent(a)}/preview/screenshot?ts=${encodeURIComponent(f.screenshotKey)}`:null,[a,f?.connected,f?.screenshotKey]),W=(0,c.useMemo)(()=>f?.frames.find(a=>a.id===f.activeFrameId)??null,[f?.activeFrameId,f?.frames]),X=(0,c.useMemo)(()=>f?.frames.find(a=>a.isMain)??null,[f?.frames]),Y=null!==z,Z=!!W?.isMain,$=(0,c.useMemo)(()=>{let a=f?.selectedElement?.bounds;if(!f?.selectedElement||!a||!X||f.selectedElement.frameId!==X.id||!I.naturalWidth||!I.naturalHeight||!I.renderedWidth||!I.renderedHeight)return null;let b=I.renderedWidth/I.naturalWidth,c=I.renderedHeight/I.naturalHeight;return{left:`${a.x*b}px`,top:`${a.y*c}px`,width:`${Math.max(a.width*b,2)}px`,height:`${Math.max(a.height*c,2)}px`}},[I,X,f?.selectedElement]),_=(0,c.useCallback)(async()=>{let a=F.trim();if(a)try{await S({command:"connect",url:a})}catch(a){u(a instanceof Error?a.message:"Failed to connect preview")}},[S,F]),aa=(0,c.useCallback)((a,b,c=!1)=>{E({anchorX:a,anchorY:b,pending:c}),w(null),y(null)},[]),ab=(0,c.useCallback)(a=>{C(a),E(null),w(null),y(null)},[]),ac=(0,c.useMemo)(()=>{if(!D)return null;let a=I.renderedWidth||340,b=I.renderedHeight||280,c=Math.max(220,b-24);if(a<=520)return{left:"12px",top:`${Math.max(12,b-Math.min(280,c)-12)}px`,width:`${Math.max(a-24,220)}px`,maxHeight:`${c}px`};let d=Math.min(340,Math.max(a-24,240)),e=Math.max(12,a-d-12),f=Math.max(12,b-280-12),g=D.anchorX+18,h=D.anchorY+18,i=g>e?Math.max(12,D.anchorX-d-18):g,j=h>f?Math.max(12,D.anchorY-280-18):h;return{left:`${Math.min(Math.max(i,12),e)}px`,top:`${Math.min(Math.max(j,12),f)}px`,width:`${d}px`,maxHeight:`${c}px`}},[I.renderedHeight,I.renderedWidth,D]);(0,c.useEffect)(()=>{if(!D)return;let a=a=>{"Escape"===a.key&&E(null)};return window.addEventListener("keydown",a),()=>{window.removeEventListener("keydown",a)}},[D]);let ad=(0,c.useCallback)(a=>{if(!O.current)return null;let b=O.current.getBoundingClientRect();if(!b.width||!b.height||!O.current.naturalWidth||!O.current.naturalHeight)return null;let c=a.clientX-b.left,d=a.clientY-b.top;return{anchorX:c,anchorY:d,x:c/b.width*O.current.naturalWidth,y:d/b.height*O.current.naturalHeight}},[]),ae=(0,c.useCallback)(a=>{d(a),w(null),y(a.successMessage)},[d]),af=(0,c.useCallback)(async(a,b,c,d)=>{aa(c,d,!0);try{let e=await S({command:"selectAtPoint",x:a,y:b});return aa(c,d,!1),e}catch(a){throw E(null),a}},[aa,S]),ag=(0,c.useCallback)(async(a,b)=>{let c=Math.max(I.renderedWidth-44,12);aa(c,12,!0);try{let d=await S({command:"selectBySelector",selector:a,frameId:b});return aa(c,12,!1),d}catch(a){throw E(null),a}},[I.renderedWidth,aa,S]),ah=(0,c.useCallback)(async a=>{if(n)return;let b=ad(a);if(b){if(E(null),w(null),y(null),"navigate"===B){P.current?.focus({preventScroll:!0});try{await S({command:"clickAtPoint",x:b.x,y:b.y})}catch(a){u(a instanceof Error?a.message:"Failed to interact with preview")}return}if(Z)try{await af(b.x,b.y,b.anchorX,b.anchorY)}catch(a){u(a instanceof Error?a.message:"Failed to select element")}}},[n,Z,B,ad,S,af]),ai=(0,c.useCallback)(async a=>{if(n||"inspect"!==B||!Z)return;let b=ad(a);if(b){w(null),y(null);try{let a=await af(b.x,b.y,b.anchorX,b.anchorY);if(!a.selectedElement)throw Error("No element found at the selected point");ae(bp(a.selectedElement,a.currentUrl))}catch(a){u(a instanceof Error?a.message:"Failed to queue selected element")}}},[n,Z,B,ae,ad,af]),aj=(0,c.useCallback)(a=>{if("navigate"!==B||!f?.connected||a.metaKey||a.ctrlKey||a.altKey)return;let b=bj.get(a.key);if(b){a.preventDefault(),T({command:"pressKey",key:b},"Failed to send key to preview");return}1===a.key.length&&(a.preventDefault(),T({command:"typeText",text:a.key},"Failed to type into preview"))},[B,T,f?.connected]),ak=(0,c.useCallback)(a=>{if("navigate"!==B||!f?.connected)return;let b=a.clipboardData.getData("text");b&&(a.preventDefault(),T({command:"typeText",text:b},"Failed to paste into preview"))},[B,T,f?.connected]),al=(0,c.useCallback)(a=>{if(!f)return void w("Preview state is not loaded yet.");let b=f.consoleLogs.slice(-80),c=f.networkLogs.slice(-80);if("selection"===a&&!f.selectedElement)return void w("Select an element before queueing preview context for terminal input.");if("console"===a&&!b.length)return void w("There are no console logs to send yet.");if("network"===a&&!c.length)return void w("There are no network logs to send yet.");A(a),w(null),y(null);try{let d="selection"===a&&f.selectedElement?bp(f.selectedElement,f.currentUrl):"console"===a?bq("console",b,f.currentUrl,f.selectedElement):bq("network",c,f.currentUrl,f.selectedElement);ae(d),"selection"===a&&E(null)}catch(a){w(a instanceof Error?a.message:"Failed to queue preview context")}finally{A(null)}},[ae,f]),am=(0,c.useCallback)(async()=>{let a=f?.selectedElement?.selector;if(a)try{await navigator.clipboard.writeText(a),y("Selector copied to clipboard."),w(null)}catch{w("Clipboard access is unavailable.")}},[f?.selectedElement?.selector]);return(0,b.jsxs)("div",{className:"flex h-full min-h-0 flex-col gap-2 overflow-auto",children:[(0,b.jsxs)(K.Card,{children:[(0,b.jsxs)(K.CardHeader,{className:"flex flex-col items-start gap-2 lg:flex-row lg:items-center lg:justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(g,{className:"h-4 w-4 text-[var(--vk-text-muted)]"}),(0,b.jsx)("span",{className:"text-[13px] font-medium text-[var(--vk-text-normal)]",children:"Dev preview browser"}),f?.connected?(0,b.jsx)(L.Badge,{variant:"success",children:"connected"}):(0,b.jsx)(L.Badge,{variant:"outline",children:"idle"}),W?(0,b.jsx)(L.Badge,{variant:"outline",children:W.isMain?"main frame":"nested frame"}):null]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)(aI.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void Q().catch(a=>{u(a instanceof Error?a.message:"Failed to refresh preview")}),disabled:p||n,children:[(0,b.jsx)(an.RefreshCw,{className:(0,G.cn)("h-3.5 w-3.5",n&&"animate-spin")}),"Refresh"]}),(0,b.jsxs)(aI.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void S({command:"reload"}).catch(a=>{u(a instanceof Error?a.message:"Failed to reload preview")}),disabled:!f?.connected||n,children:[(0,b.jsx)(aH,{className:"h-3.5 w-3.5"}),"Reload page"]})]})]}),(0,b.jsxs)(K.CardContent,{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2 lg:flex-row",children:[(0,b.jsx)("input",{value:F,onChange:a=>H(a.target.value),placeholder:f?.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,b.jsxs)(aI.Button,{type:"button",variant:"primary",onClick:()=>void _(),disabled:n||!F.trim(),children:[n?(0,b.jsx)(aE.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(aF,{className:"h-4 w-4"}),"Connect"]})]}),f?.candidateUrls.length?(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:f.candidateUrls.map(a=>(0,b.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:()=>{H(a),S({command:"connect",url:a}).catch(a=>{u(a instanceof Error?a.message:"Failed to connect preview")})},children:[(0,b.jsx)(g,{className:"h-3 w-3 shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:a})]},a))}):null,t||f?.lastError?(0,b.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,b.jsx)(aA,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,b.jsx)("span",{children:t??f?.lastError})]}):null]})]}),(0,b.jsxs)(K.Card,{className:"min-h-0 shrink-0 overflow-hidden",children:[(0,b.jsxs)(K.CardHeader,{className:"flex flex-col items-start gap-2 lg:flex-row lg:items-center lg:justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(aC.Eye,{className:"h-4 w-4 text-[var(--vk-text-muted)]"}),(0,b.jsx)("span",{className:"text-[13px] font-medium text-[var(--vk-text-normal)]",children:"Preview"})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1 rounded-[4px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] p-1",children:[(0,b.jsxs)(aI.Button,{type:"button",size:"sm",variant:"navigate"===B?"primary":"ghost",onClick:()=>ab("navigate"),children:[(0,b.jsx)(aF,{className:"h-3.5 w-3.5"}),"Navigate"]}),(0,b.jsxs)(aI.Button,{type:"button",size:"sm",variant:"inspect"===B?"primary":"ghost",onClick:()=>ab("inspect"),children:[(0,b.jsx)(aC.Eye,{className:"h-3.5 w-3.5"}),"Inspect"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-[11px] text-[var(--vk-text-muted)]",children:[(0,b.jsx)(L.Badge,{variant:"outline",children:f?.title?bl(f.title,40):"Untitled page"}),(0,b.jsx)(L.Badge,{variant:"outline",children:"navigate"===B?"navigate mode: clicks interact with the page":Z?"inspect mode: click once to select, double-click to queue for terminal input":"inspect mode: use DOM list for this frame"})]})]})]}),(0,b.jsx)(K.CardContent,{className:"min-h-0",children:(0,b.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:p?(0,b.jsxs)("div",{className:"flex items-center gap-2 text-[13px] text-[var(--vk-text-muted)]",children:[(0,b.jsx)(aE.Loader2,{className:"h-4 w-4 animate-spin"}),"Loading preview…"]}):V?(0,b.jsxs)("div",{ref:P,tabIndex:f?.connected?0:-1,onKeyDown:aj,onPaste:ak,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,b.jsx)("img",{ref:O,src:V,alt:"Session preview",className:(0,G.cn)("max-h-full max-w-full rounded-[4px] object-contain shadow-[0_18px_36px_rgba(0,0,0,0.28)]","navigate"===B?"cursor-pointer":Z?"cursor-crosshair":"cursor-default"),onClick:a=>void ah(a),onDoubleClick:a=>void ai(a),onLoad:a=>{let b=a.currentTarget;J({naturalWidth:b.naturalWidth,naturalHeight:b.naturalHeight,renderedWidth:b.clientWidth,renderedHeight:b.clientHeight})}}),"inspect"===B&&$?(0,b.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:$}):null,"inspect"===B&&D&&ac?(0,b.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:ac,children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3 border-b border-[var(--vk-border)] px-3 py-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-[10px] uppercase tracking-[0.16em] text-[var(--vk-text-muted)]",children:"Terminal input"}),(0,b.jsx)("div",{className:"mt-1 text-[13px] font-medium text-[var(--vk-text-normal)]",children:D.pending?"Selecting element…":"Queue selection for the terminal"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)(aI.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>void am(),disabled:D.pending||!f?.selectedElement,children:(0,b.jsx)(R.Copy,{className:"h-3.5 w-3.5"})}),(0,b.jsx)(aI.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>E(null),children:(0,b.jsx)(aq.X,{className:"h-3.5 w-3.5"})})]})]}),(0,b.jsx)("div",{className:"flex-1 space-y-3 overflow-y-auto px-3 py-3",children:D.pending?(0,b.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,b.jsx)(aE.Loader2,{className:"h-4 w-4 animate-spin"}),"Capturing the selected element from the preview…"]}):f?.selectedElement?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"rounded-[6px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)] px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-mono text-[12px] text-[var(--vk-text-normal)]",children:f.selectedElement.tag}),f.selectedElement.role?(0,b.jsx)(L.Badge,{variant:"outline",children:f.selectedElement.role}):null]}),(0,b.jsx)("div",{className:"mt-2 text-[12px] text-[var(--vk-text-normal)]",children:bl(f.selectedElement.name||f.selectedElement.text||"Selected element",140)}),(0,b.jsx)("div",{className:"mt-2 break-all font-mono text-[11px] text-[var(--vk-text-muted)]",children:f.selectedElement.selector})]}),(0,b.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."}),v?(0,b.jsx)("div",{className:"text-[12px] text-[var(--vk-red)]",children:v}):null,(0,b.jsxs)(aI.Button,{type:"button",variant:"primary",className:"w-full",onClick:()=>void al("selection"),disabled:Y||!f.selectedElement,children:["selection"===z?(0,b.jsx)(aE.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(aG,{className:"h-4 w-4"}),"Queue for terminal input"]})]}):(0,b.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,b.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."})})})]}),x?(0,b.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:x}):null,!D&&v?(0,b.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:v}):null,(0,b.jsxs)("div",{className:"grid gap-2",children:[(0,b.jsxs)(K.Card,{className:"min-h-0",children:[(0,b.jsxs)(K.CardHeader,{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(aB,{className:"h-4 w-4 text-[var(--vk-text-muted)]"}),(0,b.jsx)("span",{className:"text-[13px] font-medium text-[var(--vk-text-normal)]",children:"Frames and DOM"}),(0,b.jsx)(L.Badge,{variant:"outline",children:"inspect"===B?"inspect":"read-only in navigate mode"})]}),(0,b.jsx)(aI.Button,{type:"button",variant:r?"primary":"outline",size:"sm",onClick:()=>s(a=>!a),children:r?"Interactive only":"All nodes"})]}),(0,b.jsxs)(K.CardContent,{className:"grid gap-2 xl:grid-cols-[220px_minmax(0,1fr)]",children:[(0,b.jsx)("div",{className:"space-y-2",children:f?.frames.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{S({command:"selectFrame",frameId:a.id}).catch(a=>{u(a instanceof Error?a.message:"Failed to select frame")})},className:(0,G.cn)("flex w-full flex-col items-start gap-1 rounded-[4px] border px-2 py-2 text-left transition-colors",f.activeFrameId===a.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,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(L.Badge,{variant:"outline",children:a.isMain?"main":"frame"}),(0,b.jsx)("span",{className:"truncate text-[12px] text-[var(--vk-text-normal)]",children:a.name})]}),(0,b.jsx)("span",{className:"w-full truncate text-[11px] text-[var(--vk-text-muted)]",children:a.url||"about:blank"})]},a.id))}),(0,b.jsx)("div",{className:"rounded-[4px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)]",children:(0,b.jsx)(bh,{className:"h-[240px] sm:h-[300px] xl:h-[360px]",children:(0,b.jsxs)("div",{className:"space-y-1 p-2",children:["navigate"===B?(0,b.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,l?(0,b.jsxs)("div",{className:"flex items-center gap-2 px-2 py-2 text-[12px] text-[var(--vk-text-muted)]",children:[(0,b.jsx)(aE.Loader2,{className:"h-4 w-4 animate-spin"}),"Inspecting frame DOM…"]}):j.length?j.map((a,c)=>(0,b.jsxs)("button",{type:"button",className:(0,G.cn)("w-full rounded-[4px] border border-[transparent] px-2 py-2 text-left","inspect"===B?"hover:border-[var(--vk-border)] hover:bg-[var(--vk-bg-hover)]":"cursor-not-allowed opacity-60"),disabled:"inspect"!==B,onClick:()=>{E(null),w(null),y(null),ag(a.selector,f?.activeFrameId).catch(a=>{u(a instanceof Error?a.message:"Failed to select DOM node")})},onDoubleClick:()=>{w(null),y(null),ag(a.selector,f?.activeFrameId).then(a=>{if(!a.selectedElement)throw Error("Failed to resolve the selected DOM node");ae(bp(a.selectedElement,a.currentUrl))}).catch(a=>{u(a instanceof Error?a.message:"Failed to queue DOM node")})},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-mono text-[12px] text-[var(--vk-text-normal)]",children:a.tag}),a.interactive?(0,b.jsx)(L.Badge,{variant:"warning",children:"interactive"}):null,a.role?(0,b.jsx)(L.Badge,{variant:"outline",children:a.role}):null]}),(0,b.jsx)("div",{className:"mt-1 break-all font-mono text-[11px] text-[var(--vk-text-muted)]",children:a.selector}),a.text?(0,b.jsx)("div",{className:"mt-1 text-[12px] text-[var(--vk-text-normal)]",children:bl(a.text,180)}):null]},`${a.id??"node"}-${c}-${a.selector}-${a.tag}-${a.text}`)):(0,b.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,b.jsxs)("div",{className:"grid gap-2 lg:grid-cols-2",children:[(0,b.jsxs)(K.Card,{className:"min-h-0",children:[(0,b.jsxs)(K.CardHeader,{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(i,{className:"h-4 w-4 text-[var(--vk-text-muted)]"}),(0,b.jsx)("span",{className:"text-[13px] font-medium text-[var(--vk-text-normal)]",children:"Console"}),(0,b.jsx)(L.Badge,{variant:"outline",children:f?.consoleLogs.length??0})]}),(0,b.jsxs)(aI.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>void al("console"),disabled:Y||!f?.consoleLogs.length,children:["console"===z?(0,b.jsx)(aE.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,b.jsx)(aG,{className:"h-3.5 w-3.5"}),"Queue for terminal"]})]}),(0,b.jsx)(K.CardContent,{children:(0,b.jsx)(bh,{className:"h-[220px] sm:h-[260px] rounded-[4px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)]",children:(0,b.jsx)("div",{className:"space-y-1 p-2",children:f?.consoleLogs.length?f.consoleLogs.map(a=>(0,b.jsxs)("div",{className:"rounded-[3px] px-2 py-1.5 text-[11px] text-[var(--vk-text-normal)]",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-wide text-[var(--vk-text-muted)]",children:[(0,b.jsx)("span",{children:a.level}),(0,b.jsx)("span",{children:bk(a.timestamp)})]}),(0,b.jsx)("div",{className:"mt-1 whitespace-pre-wrap break-all font-mono",children:a.message})]},a.id)):(0,b.jsx)("div",{className:"px-2 py-3 text-[12px] text-[var(--vk-text-muted)]",children:"Console output appears here once the page loads."})})})})]}),(0,b.jsxs)(K.Card,{className:"min-h-0",children:[(0,b.jsxs)(K.CardHeader,{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(aD,{className:"h-4 w-4 text-[var(--vk-text-muted)]"}),(0,b.jsx)("span",{className:"text-[13px] font-medium text-[var(--vk-text-normal)]",children:"Network"}),(0,b.jsx)(L.Badge,{variant:"outline",children:f?.networkLogs.length??0})]}),(0,b.jsxs)(aI.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>void al("network"),disabled:Y||!f?.networkLogs.length,children:["network"===z?(0,b.jsx)(aE.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):(0,b.jsx)(aG,{className:"h-3.5 w-3.5"}),"Queue for terminal"]})]}),(0,b.jsx)(K.CardContent,{children:(0,b.jsx)(bh,{className:"h-[220px] sm:h-[260px] rounded-[4px] border border-[var(--vk-border)] bg-[var(--vk-bg-main)]",children:(0,b.jsx)("div",{className:"space-y-1 p-2",children:f?.networkLogs.length?f.networkLogs.map(a=>(0,b.jsxs)("div",{className:"rounded-[3px] px-2 py-1.5 text-[11px] text-[var(--vk-text-normal)]",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-[10px] uppercase tracking-wide text-[var(--vk-text-muted)]",children:[(0,b.jsx)("span",{children:a.method??"GET"}),"number"==typeof a.status?(0,b.jsx)("span",{children:a.status}):null,a.resourceType?(0,b.jsx)("span",{children:a.resourceType}):null,(0,b.jsx)("span",{children:bk(a.timestamp)})]}),(0,b.jsx)("div",{className:"mt-1 break-all font-mono",children:a.url??a.message})]},a.id)):(0,b.jsx)("div",{className:"px-2 py-3 text-[12px] text-[var(--vk-text-muted)]",children:"Network requests appear here after the preview loads."})})})})]})]})]})]})}let bs=(0,e.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"}]]),bt={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"},bu={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 bv(a){let b=await fetch(`/api/sessions/${encodeURIComponent(a)}/feed`,{cache:"no-store"});if(!b.ok)throw Error(`Failed to load chat feed: ${b.status}`);return b.json()}let bw=new Set(["queued","spawning","running","working","needs_input","stuck"]),bx=new Set(["done","needs_input","stuck","errored","terminated","killed"]),by=new Set([1e3,1002,1003,1005,1006,1015,1047,1048,1049]);function bz(a){return`'${a.replace(/'/g,"'\\''")}'`}async function bA(a){return a.length?(await Promise.all(a.map(async a=>{let b=new FormData;b.append("file",a);let c=await fetch("/api/attachments",{method:"POST",body:b});if(!c.ok)throw Error(`Failed to upload ${a.name}`);let d=await c.json(),e=d&&"object"==typeof d?d:null,f=e?.attachment&&"object"==typeof e.attachment?e.attachment:null;for(let a of[e?.absolutePath,e?.path,e?.filePath,f?.absolutePath,f?.path,f?.filePath])if("string"==typeof a&&a.trim().length>0)return a.trim();throw Error(`Attachment response for ${a.name} did not include a file path`)}))).filter(Boolean):[]}async function bB(a){let b=await fetch(`/api/sessions/${encodeURIComponent(a)}/terminal/connection`,{cache:"no-store"}),c=await b.json().catch(()=>null);if(!b.ok||"string"!=typeof c?.wsUrl||0===c.wsUrl.trim().length)throw Error(c?.error??`Failed to resolve terminal connection: ${b.status}`);return{wsUrl:c.wsUrl.trim()}}async function bC(a,b){let c=await fetch(`/api/sessions/${encodeURIComponent(a)}/terminal/snapshot?lines=${b}`,{cache:"no-store"}),d=await c.json().catch(()=>null);if(!c.ok)throw Error(d?.error??`Failed to resolve terminal snapshot: ${c.status}`);return{snapshot:"string"==typeof d?.snapshot?d.snapshot:"",source:"string"==typeof d?.source?d.source:"empty",live:d?.live===!0,restored:d?.restored===!0}}function bD(a){return a<420?{fontFamily:"'SF Mono', Menlo, Monaco, monospace",fontSize:11,lineHeight:1}:a<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 bE({sessionId:e,agentName:f,projectId:g,sessionModel:h,sessionReasoningEffort:i,sessionState:j,active:k,pendingInsert:l}){let m=(0,d.useRouter)(),{sessionStatus:n,refresh:o}=function(a){let[b,d]=(0,c.useState)([]),[e,f]=(0,c.useState)(!0),[g,h]=(0,c.useState)(null),[i,j]=(0,c.useState)(null),[k,l]=(0,c.useState)(null),[m,n]=(0,c.useState)(null),o=(0,c.useRef)(!1),p=(0,c.useRef)(!0),q=(0,c.useRef)(!1),r=(0,c.useRef)(!1),s=(0,c.useRef)(null),t=(0,c.useCallback)(a=>{let b=Array.isArray(a.entries)?a.entries:[];d(a=>!function(a,b){if(a===b)return!0;if(a.length!==b.length)return!1;for(let c=0;c<a.length;c+=1){let d=a[c],e=b[c];if(!d||!e||d.id!==e.id||d.kind!==e.kind||d.label!==e.label||d.text!==e.text||d.createdAt!==e.createdAt||d.streaming!==e.streaming||d.source!==e.source||d.attachments.length!==e.attachments.length)return!1;let f="string"==typeof d.metadata?.toolTitle?d.metadata.toolTitle:null,g="string"==typeof e.metadata?.toolTitle?e.metadata.toolTitle:null,h="string"==typeof d.metadata?.toolStatus?d.metadata.toolStatus:null,i="string"==typeof e.metadata?.toolStatus?e.metadata.toolStatus:null,j="string"==typeof d.metadata?.toolKind?d.metadata.toolKind:null,k="string"==typeof e.metadata?.toolKind?e.metadata.toolKind:null,l=Array.isArray(d.metadata?.toolContent)?d.metadata.toolContent:[],m=Array.isArray(e.metadata?.toolContent)?e.metadata.toolContent:[];if(f!==g||h!==i||j!==k||l.length!==m.length)return!1;for(let a=0;a<l.length;a+=1)if(l[a]!==m[a])return!1}return!0}(a,b)?b:a);let c="string"==typeof a.sessionStatus?a.sessionStatus:null;j(c),c&&N.TERMINAL_STATUSES.has(c)&&(o.current=!0),l(b=>{let c=function(a){if(!a||"object"!=typeof a)return null;let b="string"==typeof a.kind?a.kind.trim():"",c="string"==typeof a.message?a.message.trim():"",d="string"==typeof a.command&&a.command.trim().length>0?a.command.trim():null;return b&&c?{kind:b,message:c,command:d}:null}(a.parserState);return null===b&&null===c||b?.kind===c?.kind&&b?.message===c?.message&&b?.command===c?.command?b:c}),n(b=>{var c;let d=(c=a.runtimeStatus)&&"object"==typeof c?c:null;return JSON.stringify(b)===JSON.stringify(d)?b:d}),h("string"==typeof a.error&&a.error.trim().length>0?a.error.trim():null),f(!1)},[]),u=(0,c.useCallback)(async()=>{if(!a){d([]),f(!1),h(null),j(null),l(null),n(null);return}if(q.current){r.current=!0;return}q.current=!0;do{try{let b=await bv(a);if(!p.current)break;t(b)}catch(b){if(!p.current)break;let a=b instanceof Error?b.message:"Failed to load chat feed";a.includes("404")&&(d([]),j(null),l(null),n(null)),h(a),f(!1)}if(!r.current)break;r.current=!1}while(p.current)q.current=!1},[a]);return(0,c.useEffect)(()=>{if(p.current=!0,o.current=!1,s.current=null,r.current=!1,d([]),j(null),l(null),n(null),h(null),f(!0),u(),!a)return()=>{p.current=!1};let b=()=>{o.current||(s.current=null,u())},c=()=>{"visible"!==document.visibilityState||o.current||(s.current=null,u())};window.addEventListener("focus",b),document.addEventListener("visibilitychange",c);let e=null,g=null,i=()=>{null!==g&&(window.clearTimeout(g),g=null)},k=()=>{i();let a=o.current?3e4:"visible"===document.visibilityState?4e3:15e3;g=window.setTimeout(async()=>{await u(),p.current&&k()},a)};k(),"u">typeof EventSource&&((e=new EventSource(`/api/sessions/${encodeURIComponent(a)}/feed/stream`)).onmessage=a=>{if(p.current)try{let b=JSON.parse(a.data);t(b),k()}catch{}},e.addEventListener("refresh",()=>{p.current&&(u(),k())}),e.onerror=()=>{p.current&&(u(),k())});let m=(0,M.subscribeToSnapshotEvents)(b=>{if(!p.current)return;let c=b.sessions.find(b=>b.id===a),d=c?[c.id,c.status,c.activity??"",c.lastActivityAt,c.summary??""].join(":"):"missing";s.current!==d&&(s.current=d,u(),k())});return()=>{p.current=!1,i(),e?.close(),m(),window.removeEventListener("focus",b),document.removeEventListener("visibilitychange",c)}},[u,a]),(0,c.useMemo)(()=>({entries:b,loading:e,error:g,sessionStatus:i,parserState:k,runtimeStatus:m,refresh:u}),[b,g,e,k,u,m,i])}(e),p=(0,c.useRef)(null),q=(0,c.useRef)(null),r=(0,c.useRef)(null),s=(0,c.useRef)(null),t=(0,c.useRef)(null),u=(0,c.useRef)(null),v=(0,c.useRef)(null),w=(0,c.useRef)(0),x=(0,c.useRef)(0),y=(0,c.useRef)(null),z=(0,c.useRef)(null),A=(0,c.useRef)(null),B=(0,c.useRef)(null),C=(0,c.useRef)(j),D=(0,c.useRef)(k),E=(0,c.useRef)(!1),F=(0,c.useRef)(!1),G=(0,c.useRef)(null),H=(0,c.useRef)(!1),I=(0,c.useRef)(!1),J=(0,c.useRef)(null),K=(0,c.useRef)(null),L=(0,c.useRef)(0),O=(0,c.useRef)(!1),P=(0,c.useRef)([]),Q=(0,c.useRef)(0),[R,S]=(0,c.useState)(!1),[T,U]=(0,c.useState)(null),[V,W]=(0,c.useState)("connecting"),[X,Y]=(0,c.useState)(null),[Z,$]=(0,c.useState)(0),[_,aa]=(0,c.useState)(""),[ab,ac]=(0,c.useState)([]),[ae,ag]=(0,c.useState)(!1),[ah,ai]=(0,c.useState)(null),[aj,ak]=(0,c.useState)(!1),[al,am]=(0,c.useState)(!1),[ap,ar]=(0,c.useState)(""),[as,at]=(0,c.useState)(!1),[au,av]=(0,c.useState)(!1),[aw,ax]=(0,c.useState)(""),ay=(0,c.useMemo)(()=>("string"==typeof n&&n.trim().length>0?n:j).trim().toLowerCase(),[j,n]);C.current=ay,D.current=k;let az=bw.has(ay),aA=bx.has(ay)&&!az,aB="done"===ay?"Continue the session...":"needs_input"===ay||"stuck"===ay?"Answer the agent and resume...":"Restart this session with a follow-up...",aC=(0,c.useCallback)(()=>{aa(a=>0===a.trim().length?"":a)},[]),aD=(0,c.useCallback)(()=>{null!==v.current&&(window.clearTimeout(v.current),v.current=null)},[]),aF=(0,c.useCallback)(()=>{aD(),w.current+=1;let a=Math.min(1600,300*w.current);v.current=window.setTimeout(()=>{$(a=>a+1)},a)},[aD]),aG=(0,c.useCallback)(()=>{aD(),Y(null),W("connecting"),U(null),$(a=>a+1)},[aD]),aH=(0,c.useCallback)(()=>{let a=q.current,b=u.current;a&&b&&b.readyState===WebSocket.OPEN&&b.send(JSON.stringify({type:"resize",cols:Math.max(1,a.cols),rows:Math.max(1,a.rows)}))},[]),aJ=(0,c.useCallback)(a=>{let b=u.current;if(!b||b.readyState!==WebSocket.OPEN)throw Error("Terminal is not connected");b.send(JSON.stringify({type:"keys",keys:a}))},[]),aK=(0,c.useCallback)(()=>{let a=q.current;if(!a)return void at(!1);let b=a.buffer.active;at(b.viewportY<b.baseY)},[]),aL=(0,c.useCallback)(()=>{null!==J.current&&(window.cancelAnimationFrame(J.current),J.current=null),null!==K.current&&(window.clearTimeout(K.current),K.current=null),O.current=!1},[]),aM=(0,c.useCallback)(()=>{for(let a of P.current)window.clearTimeout(a);P.current=[]},[]),aN=(0,c.useCallback)(a=>{let b=q.current,c=r.current,d=p.current;if(!b||!c||!d)return;let e=window.getComputedStyle(d);if("none"===e.display||"hidden"===e.visibility)return;let f=d.getBoundingClientRect();if(f.width<=1||f.height<=1)return;let g=b.cols,h=b.rows,i=b.buffer.active.viewportY>=b.buffer.active.baseY;try{c.fit()}catch{return}a&&b.refresh(0,Math.max(0,b.rows-1)),(a||b.cols!==g||b.rows!==h)&&aH(),i&&b.scrollToBottom(),aK(),D.current&&b.focus()},[aH,aK]),aO=(0,c.useCallback)(a=>{O.current||=a,null===J.current&&(J.current=window.requestAnimationFrame(()=>{J.current=null;let a=Date.now();if(a-L.current<120){let b=120-(a-L.current);null!==K.current&&window.clearTimeout(K.current),K.current=window.setTimeout(()=>{K.current=null,aO(O.current)},b+1);return}L.current=a;let b=O.current;O.current=!1,aN(b)}))},[aN]),aP=(0,c.useCallback)(a=>{a.length&&ac(b=>[...b,...a.map(a=>({file:a}))])},[]),aQ=(0,c.useCallback)(async a=>{let b=await bA(a);b.length&&aJ(b.map(bz).join(" "))},[aJ]),aR=(0,c.useCallback)(async a=>{if(a.length){ai(null);try{if(az&&"live"===V)return void await aQ(a);aP(a)}catch(a){ai(a instanceof Error?a.message:"Failed to process files")}}},[V,az,aQ,aP]);(0,c.useEffect)(()=>{let a=I.current;I.current=az,a&&!az&&(G.current=null,H.current=!1)},[az]),(0,c.useEffect)(()=>{E.current=!1,F.current=!1,G.current=null,H.current=!1,w.current=0,x.current=0,Q.current=0,aD(),aL(),u.current?.close(),u.current=null,U(null),W("connecting"),Y(null),aa(""),ac([]),ag(!1),ai(null),ak(!1),am(!1),ar(""),at(!1),av(!1),ax(""),q.current?.reset(),aK()},[aD,aL,e,aK]),(0,c.useEffect)(()=>{let a=!0;return(av(!1),ax(""),az)?(av(!0),()=>{a=!1}):((async()=>{try{let b=await bC(e,2e5);if(!a)return;ax(b.snapshot)}catch{if(!a)return;ax("")}finally{a&&av(!0)}})(),()=>{a=!1})},[az,e]),(0,c.useEffect)(()=>{let a=!0;return(async()=>{try{U(null);let b=await bB(e);if(!a)return;U(b.wsUrl),Y(null)}catch(b){if(!a)return;Y(b instanceof Error?b.message:"Failed to resolve terminal connection"),W("error")}})(),()=>{a=!1}},[Z,e]),(0,c.useEffect)(()=>{let b=null,c=null,d=!0;return async function(){if(!p.current||!d)return;let[e,f,g]=await Promise.all([a.A(81888),a.A(71789),a.A(63198)]);if(!d||!p.current)return;let h=document.documentElement.classList.contains("light"),i=bD(window.innerWidth),j={allowTransparency:!1,cursorBlink:!0,cursorStyle:"block",disableStdin:!1,drawBoldTextInBrightColors:!0,fontFamily:i.fontFamily,fontSize:i.fontSize,fastScrollSensitivity:4,lineHeight:i.lineHeight,scrollSensitivity:1.1,scrollback:2e5,theme:h?bu:bt,scrollbar:{showScrollbar:!1}};b=new e.Terminal(j);let k=a=>{b?.parser.registerCsiHandler({prefix:"?",final:a},a=>!!a.some(a=>Array.isArray(a)?a.some(a=>by.has(a)):by.has(a)))};k("h"),k("l"),b.attachCustomWheelEventHandler(a=>{let c=a.deltaMode===WheelEvent.DOM_DELTA_LINE?a.deltaY:a.deltaY/14,d=0===c?0:c>0?Math.max(1,Math.round(c)):Math.min(-1,Math.round(c));return 0!==d&&(a.preventDefault(),a.stopPropagation(),b?.scrollLines(d),aK(),!1)}),c=new f.FitAddon,b.loadAddon(c);let l=new g.SearchAddon;b.loadAddon(l),b.open(p.current),c.fit(),q.current=b,r.current=c,s.current=l,S(!0),aK(),y.current=b.onData(a=>{let b=u.current;b&&b.readyState===WebSocket.OPEN&&b.send(JSON.stringify({type:"keys",keys:a}))}),z.current=b.onScroll(()=>{aK()}),t.current=new ResizeObserver(()=>{if(D.current&&b){try{let a=bD(window.innerWidth);b.options.fontFamily=a.fontFamily,b.options.fontSize=a.fontSize,b.options.lineHeight=a.lineHeight}catch{return}aO(!0)}}),t.current.observe(p.current)}(),()=>{d=!1,y.current?.dispose(),y.current=null,z.current?.dispose(),z.current=null,t.current?.disconnect(),t.current=null,b&&b.dispose(),q.current=null,r.current=null,s.current=null,S(!1)}},[aO,aH,aK]),(0,c.useEffect)(()=>{if(!k)return;aM();let a=window.requestAnimationFrame(()=>{aO(!0),P.current.push(window.setTimeout(()=>{aO(!0)},48)),P.current.push(window.setTimeout(()=>{aO(!0)},140))});return()=>{window.cancelAnimationFrame(a),aM()}},[k,aM,aO]),(0,c.useEffect)(()=>{if(!R||!au)return;let a=q.current;if(a&&G.current!==e){if(az&&(H.current||function(a){let b=a.buffer.active;if(b.baseY>0)return!0;for(let c=0;c<a.rows;c+=1){let a=b.getLine(c);if(a&&a.translateToString(!0).trim().length>0)return!0}return!1}(a))){G.current=e,aK();return}if(G.current=e,aw.length>0){a.reset(),a.write(aw.replace(/\r?\n/g,"\r\n"),()=>{if(q.current===a&&(aK(),D.current))try{a.focus()}catch{}});return}aK()}},[e,aw,au,R,aK]),(0,c.useEffect)(()=>{let a=()=>{document.hidden||(aC(),aO(!1))},b=()=>{aC(),aO(!1)};return document.addEventListener("visibilitychange",a),window.addEventListener("focus",b),()=>{document.removeEventListener("visibilitychange",a),window.removeEventListener("focus",b)}},[aC,aO]),(0,c.useEffect)(()=>{var a,b;let c;if(!R||!T||!q.current||!az)return;let d=q.current,e=(a=d.cols,b=d.rows,(c=new URL(T)).searchParams.set("cols",String(Math.max(1,a))),c.searchParams.set("rows",String(Math.max(1,b))),c.toString()),f=x.current+1;x.current=f,aD(),W("connecting");let g=new WebSocket(e);return g.binaryType="arraybuffer",u.current=g,g.onopen=()=>{if(x.current!==f)return;w.current=0,Y(null),W("live");let a=E.current;E.current=!0,F.current=!1,a&&d.writeln("\r\n\x1b[90m[Reconnected]\x1b[0m"),aK(),aO(!0)},g.onmessage=a=>{if(x.current===f){if("string"==typeof a.data){try{let b=JSON.parse(a.data);"error"===b.type?(Y(b.error),W("error")):"exit"===b.type&&W("closed")}catch{Y("Received an invalid terminal event"),W("error")}return}if(a.data instanceof ArrayBuffer){H.current=!0;let b=d.buffer.active.viewportY>=d.buffer.active.baseY;d.write(new Uint8Array(a.data),()=>{if(q.current===d){if(b)try{d.scrollToBottom()}catch{return}aK()}})}}},g.onclose=()=>{if(x.current===f){if(u.current=null,bw.has(C.current)){let a=q.current;a&&E.current&&!F.current&&(F.current=!0,a.writeln("\r\n\x1b[90m[Connection lost. Reconnecting...]\x1b[0m")),W("connecting"),U(null),aF();return}W("closed")}},g.onerror=()=>{x.current===f&&(Y("Terminal connection failed"),W("error"))},()=>{u.current===g&&(u.current=null),g.close()}},[aD,az,Z,aF,aO,T,R,aK]),(0,c.useEffect)(()=>{if(!R||!au||!az)return;let a=u.current;a&&(a.readyState===WebSocket.CONNECTING||a.readyState===WebSocket.OPEN)||"closed"!==V&&"error"!==V||null===v.current&&aF()},[V,az,aF,au,R]),(0,c.useEffect)(()=>()=>{aD(),aL(),aM(),u.current?.close()},[aD,aL,aM]),(0,c.useEffect)(()=>{let a=p.current;if(!a)return;let b=a=>{let b=a.clipboardData;if(!b)return;let c=Array.from(b.files??[]),d=(b.getData("text/plain")??"").length>0;c.length&&!d&&(a.preventDefault(),aR(c))};return a.addEventListener("paste",b,{capture:!0}),()=>{a.removeEventListener("paste",b,{capture:!0})}},[aR]);let aS=(0,c.useCallback)(async()=>{let a=_.trim();if(a||0!==ab.length){ag(!0),ai(null);try{let b=await bA(ab.map(a=>a.file)),c=await fetch(`/api/sessions/${encodeURIComponent(e)}/send`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:a,attachments:b,model:h||null,reasoningEffort:i||null,projectId:g||null})}),d=await c.json().catch(()=>null);if(!c.ok)throw Error(d?.error??`Failed to send message: ${c.status}`);if(aa(""),ac([]),d?.sessionId&&d.sessionId!==e)return void m.push(`/sessions/${encodeURIComponent(d.sessionId)}`);$(a=>a+1),await o()}catch(a){ai(a instanceof Error?a.message:"Failed to resume session")}finally{ag(!1)}}},[ab,_,g,o,m,e,h,i]);(0,c.useEffect)(()=>{if(!l||l.nonce<=Q.current)return;if(Q.current=l.nonce,ai(null),az&&"live"===V){try{let a=l.inlineText.trim();a.length>0&&aJ(`${a} `)}catch(a){ai(a instanceof Error?a.message:"Failed to insert preview context into terminal")}return}let a=l.draftText.trim();0!==a.length&&aa(b=>b.trim().length>0?`${b}
|
|
2
|
+
|
|
3
|
+
${a}`:a)},[V,az,l,aJ]);let aT=(0,c.useCallback)(a=>{let b=s.current;b&&0!==ap.trim().length&&("next"===a?b.findNext(ap,{incremental:!0,caseSensitive:!1}):b.findPrevious(ap,{incremental:!0,caseSensitive:!1}))},[ap]),aU=(0,c.useCallback)(()=>{let a=q.current;a&&(a.scrollToBottom(),aK(),D.current&&a.focus())},[aK]),aV=(0,c.useCallback)(()=>{am(!1),ar(""),D.current&&q.current?.focus()},[]);return(0,b.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:a=>{a.preventDefault(),ak(!0)},onDragLeave:a=>{a.currentTarget.contains(a.relatedTarget)||ak(!1)},onDrop:a=>{a.preventDefault(),ak(!1);let b=Array.from(a.dataTransfer.files??[]),c=a.dataTransfer.getData("text/plain").trim();if(b.length>0)return void aR(b);if(c)try{if(az&&"live"===V){let a=c.startsWith("/")?bz(c):c;aJ(a);return}aa(a=>a.length>0?`${a}
|
|
4
|
+
${c}`:c)}catch(a){ai(a instanceof Error?a.message:"Failed to write drop payload")}},children:[al?(0,b.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,b.jsx)(ao.Search,{className:"h-3.5 w-3.5 text-[#8e847d]"}),(0,b.jsx)("input",{value:ap,onChange:a=>ar(a.target.value),onKeyDown:a=>{"Enter"===a.key?(a.preventDefault(),aT(a.shiftKey?"prev":"next")):"Escape"===a.key&&(a.preventDefault(),aV())},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,b.jsx)(aI.Button,{type:"button",size:"icon",variant:"ghost",className:"h-6 w-6 text-[#c9c0b7]",onClick:()=>aT("prev"),"aria-label":"Find previous",children:(0,b.jsx)("span",{className:"text-[11px]",children:"↑"})}),(0,b.jsx)(aI.Button,{type:"button",size:"icon",variant:"ghost",className:"h-6 w-6 text-[#c9c0b7]",onClick:()=>aT("next"),"aria-label":"Find next",children:(0,b.jsx)("span",{className:"text-[11px]",children:"↓"})}),(0,b.jsx)(aI.Button,{type:"button",size:"icon",variant:"ghost",className:"h-6 w-6 text-[#c9c0b7]",onClick:aV,"aria-label":"Close search",children:(0,b.jsx)(aq.X,{className:"h-3.5 w-3.5"})})]}):(0,b.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"===V?"opacity-0 group-hover/terminal:opacity-100 focus-within:opacity-100":"opacity-100"}`,children:["live"!==V?(0,b.jsx)(aI.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:aG,"aria-label":"Reconnect",children:"connecting"===V?(0,b.jsx)(aE.Loader2,{className:"h-3.5 w-3.5 animate-spin"}):X?(0,b.jsx)(af,{className:"h-3.5 w-3.5"}):(0,b.jsx)(an.RefreshCw,{className:"h-3.5 w-3.5"})}):null,(0,b.jsx)(aI.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:()=>am(!0),"aria-label":"Search terminal",children:(0,b.jsx)(ao.Search,{className:"h-3.5 w-3.5"})})]}),(0,b.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,b.jsx)("div",{ref:p,className:"h-full w-full overflow-hidden"})}),as?(0,b.jsx)("div",{className:`pointer-events-none absolute left-1/2 z-10 -translate-x-1/2 ${aA?"bottom-24":"bottom-4"}`,children:(0,b.jsxs)(aI.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:aU,"aria-label":"Scroll to bottom",children:[(0,b.jsx)(ad.ChevronDown,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"ml-1 text-[11px] uppercase tracking-[0.16em]",children:"Jump to latest"})]})}):null,aj?(0,b.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,b.jsx)("span",{className:"rounded-full border border-white/10 bg-white/6 px-4 py-2 text-[12px] text-[#efe8e1]",children:az?"Drop files or screenshots to insert uploaded paths into the terminal":"Drop files or screenshots to attach them before resuming"})}):null,aA?(0,b.jsxs)("div",{className:"border-t border-white/8 bg-[#0b0808]/98 px-3 py-3",children:[ab.length>0?(0,b.jsx)("div",{className:"mb-2 flex flex-wrap gap-2",children:ab.map(({file:a})=>(0,b.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:()=>{ac(b=>b.filter(b=>b.file!==a))},children:[(0,b.jsx)(bs,{className:"h-3 w-3"}),a.name]},`${a.name}-${a.lastModified}`))}):null,(0,b.jsxs)("div",{className:"flex items-end gap-2",children:[(0,b.jsx)("textarea",{ref:B,value:_,onChange:a=>aa(a.target.value),onFocus:()=>{aC()},onKeyDown:a=>{(a.metaKey||a.ctrlKey)&&"Enter"===a.key&&(a.preventDefault(),aS())},placeholder:aB,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,b.jsx)("input",{ref:A,type:"file",className:"hidden",multiple:!0,onChange:a=>{let b=Array.from(a.target.files??[]);b.length>0&&aP(b),a.target.value=""}}),(0,b.jsx)("button",{type:"button",className:"rounded-full border border-white/12 bg-white/6 p-2 text-[#d7cec7] transition hover:bg-white/10",onClick:()=>A.current?.click(),"aria-label":"Attach files",children:(0,b.jsx)(bs,{className:"h-4 w-4"})}),(0,b.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:ae||!_.trim()&&0===ab.length,onClick:()=>{aS()},children:ae?"Starting...":"Resume"})]}),ah?(0,b.jsx)("p",{className:"mt-2 text-[12px] text-[#ff8f7a]",children:ah}):null]}):ah?(0,b.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:ah}):null]})}function bF(a){return"overview"===a||"terminal"===a||"diff"===a||"preview"===a?a:"terminal"}function bG({sessionId:a}){let e=(0,d.usePathname)(),j=(0,d.useRouter)(),k=(0,d.useSearchParams)(),{session:l,loading:m,error:n}=function(a){let[b,d]=(0,c.useState)(null),[e,f]=(0,c.useState)(!0),[g,h]=(0,c.useState)(null),i=(0,c.useRef)(!0),j=(0,c.useRef)(!1),k=(0,c.useRef)(!1),l=(0,c.useRef)(null),m=(0,c.useCallback)(async()=>{if(a&&!j.current&&!k.current)try{let b=await fetch(`/api/sessions/${encodeURIComponent(a)}`);if(404===b.status){if(!i.current)return;j.current=!0,d(null),h(null);return}if(!b.ok)throw Error(`Failed to fetch session: ${b.status}`);let c=await b.json();i.current&&(d(a=>O(a,c)?a:c),h(null),"string"==typeof c.status&&N.TERMINAL_STATUSES.has(c.status)&&(k.current=!0))}catch(a){i.current&&h(a instanceof Error?a.message:"Unknown error")}finally{i.current&&f(!1)}},[a]);return(0,c.useEffect)(()=>{i.current=!0,j.current=!1,k.current=!1,l.current=null,d(null),h(null),f(!0),m();let b=(0,M.subscribeToSnapshotEvents)(b=>{if(!i.current)return;let c=b.sessions.find(b=>b.id===a),e=c?[c.id,c.status,c.activity??"",c.lastActivityAt,c.summary??""].join(":"):"missing";if(l.current===e||(l.current=e,!c))return;j.current=!1,k.current=N.TERMINAL_STATUSES.has(c.status);let g={id:c.id,projectId:c.projectId,status:c.status,activity:c.activity,branch:c.branch,issueId:c.issueId,summary:c.summary??null,createdAt:c.createdAt,lastActivityAt:c.lastActivityAt,pr:c.pr??null,metadata:c.metadata};d(a=>O(a,g)?a:g),h(null),f(!1)}),c=null,e=()=>{let a=k.current?3e4:1e4;c=window.setTimeout(async()=>{await m(),i.current&&!j.current&&e()},a)};e();let g=()=>{j.current=!1,l.current=null,m()},n=()=>{"visible"===document.visibilityState&&g()};return window.addEventListener("focus",g),document.addEventListener("visibilitychange",n),()=>{i.current=!1,b(),null!=c&&window.clearTimeout(c),window.removeEventListener("focus",g),document.removeEventListener("visibilitychange",n)}},[m]),{session:b,loading:e,error:g}}(a),o=(0,c.useRef)(0),p=(0,c.useRef)(!1),[q,r]=(0,c.useState)(null),s=(0,c.useMemo)(()=>bF(k.get("tab")),[k]),t=(0,c.useCallback)(a=>{let b=bF(a),c=new URLSearchParams(k.toString());"terminal"===b?c.delete("tab"):c.set("tab",b);let d=c.toString(),f=d.length>0?`${e}?${d}`:e;j.replace(f,{scroll:!1})},[e,j,k]),u=(0,c.useCallback)(a=>{o.current+=1,r({nonce:o.current,...a})},[]);(0,c.useEffect)(()=>{p.current=!1,o.current=0,r(null)},[a]);let v=(0,c.useCallback)(a=>{a&&"terminal"===s&&!p.current&&(p.current=!0,t("preview"))},[s,t]);if(m)return(0,b.jsx)("div",{className:"flex h-full items-center justify-center p-6",children:(0,b.jsx)(K.Card,{className:"w-full max-w-md",children:(0,b.jsx)(K.CardContent,{className:"py-7 text-center text-[13px] text-[var(--text-muted)]",children:"Loading session workspace..."})})});if(n)return(0,b.jsx)("div",{className:"flex h-full items-center justify-center p-6",children:(0,b.jsx)(K.Card,{className:"w-full max-w-md border-[color:color-mix(in_srgb,var(--status-error)_45%,transparent)]",children:(0,b.jsx)(K.CardContent,{className:"py-7 text-center text-[13px] text-[var(--status-error)]",children:n})})});if(!l)return(0,b.jsx)("div",{className:"flex h-full items-center justify-center p-6",children:(0,b.jsx)(K.Card,{className:"w-full max-w-md",children:(0,b.jsx)(K.CardContent,{className:"py-7 text-center text-[13px] text-[var(--text-muted)]",children:"Session not found"})})});let w="string"==typeof l.status?l.status:"unknown",y=l.metadata.agent?.trim()??"",z=l.metadata.model?.trim()??"",A=l.metadata.reasoningEffort?.trim()??"",B=function(a){switch(a){case"needs_input":return"input";case"working":return"working";case"running":return"running";case"spawning":return"spawn";case"queued":return"queued";default:return a.replace(/[_-]+/g," ")}}(w);return(0,b.jsx)("div",{className:"flex h-full min-h-0 flex-col",children:(0,b.jsxs)(x,{value:s,onValueChange:t,className:"flex min-h-0 flex-1 flex-col gap-1.5 p-1.5 sm:gap-2 sm:p-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-1.5 sm:gap-2",children:[(0,b.jsxs)(H,{className:"grid w-full grid-cols-4 sm:w-fit sm:inline-flex",children:[(0,b.jsxs)(I,{value:"overview",className:"justify-center px-2 text-[11px] sm:px-2.5 sm:text-[12px]",children:[(0,b.jsx)(h,{className:"h-3.5 w-3.5"}),"Overview"]}),(0,b.jsxs)(I,{value:"terminal",className:"justify-center px-2 text-[11px] sm:px-2.5 sm:text-[12px]",children:[(0,b.jsx)(i,{className:"h-3.5 w-3.5"}),"Terminal"]}),(0,b.jsxs)(I,{value:"preview",className:"justify-center px-2 text-[11px] sm:px-2.5 sm:text-[12px]",children:[(0,b.jsx)(g,{className:"h-3.5 w-3.5"}),"Preview"]}),(0,b.jsxs)(I,{value:"diff",className:"justify-center px-2 text-[11px] sm:px-2.5 sm:text-[12px]",children:[(0,b.jsx)(f,{className:"h-3.5 w-3.5"}),"Diff"]})]}),(0,b.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-2",children:[(0,b.jsxs)(L.Badge,{variant:"outline",className:"h-[23px] max-w-full",children:[(0,b.jsx)("span",{className:"sm:hidden",children:B}),(0,b.jsx)("span",{className:"hidden sm:inline",children:w})]}),(0,b.jsx)("span",{className:"font-mono text-[10px] text-[var(--vk-text-muted)] sm:hidden",children:a.slice(0,6)}),(0,b.jsx)("span",{className:"hidden min-w-0 truncate font-mono text-[10px] text-[var(--vk-text-muted)] sm:block",children:a})]})]}),(0,b.jsxs)("div",{className:"relative min-h-0 flex-1",children:[(0,b.jsx)(J,{value:"overview",className:"min-h-0 h-full overflow-auto",children:(0,b.jsx)(ab,{session:l},a)}),(0,b.jsx)(J,{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,b.jsx)(bE,{sessionId:a,agentName:y,projectId:l.projectId,sessionModel:z,sessionReasoningEffort:A,sessionState:w,active:"terminal"===s,pendingInsert:q},a)}),(0,b.jsx)(J,{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,b.jsx)(br,{sessionId:a,onQueueTerminalInsert:u,onConnectionChange:v},a)}),(0,b.jsx)(J,{value:"diff",className:"min-h-0 h-full overflow-auto",children:(0,b.jsx)(az,{sessionId:a},a)})]})]},a)})}a.s(["SessionDetail",()=>bG],37483)}];
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=packages_web_src_components_sessions_SessionDetail_tsx_5fcad270._.js.map
|