@aoagents/ao-web 0.6.0 → 0.8.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/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +211 -197
- package/.next/app-path-routes-manifest.json +18 -16
- package/.next/build-manifest.json +6 -6
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +22 -22
- package/.next/react-loadable-manifest.json +5 -3
- package/.next/required-server-files.json +4 -5
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +8 -8
- package/.next/server/app/api/backlog/route.js +1 -1
- package/.next/server/app/api/backlog/route.js.nft.json +1 -1
- package/.next/server/app/api/backlog/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/browse-directory/route.js +1 -1
- package/.next/server/app/api/browse-directory/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/filesystem/browse/route.js +1 -1
- package/.next/server/app/api/filesystem/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/issues/route.js +1 -1
- package/.next/server/app/api/issues/route.js.nft.json +1 -1
- package/.next/server/app/api/issues/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/observability/route.js +1 -1
- package/.next/server/app/api/observability/route.js.nft.json +1 -1
- package/.next/server/app/api/observability/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/orchestrators/route.js +1 -1
- package/.next/server/app/api/orchestrators/route.js.nft.json +1 -1
- package/.next/server/app/api/orchestrators/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/projects/[id]/route.js +5 -1
- package/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/projects/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/projects/reload/route.js +1 -1
- package/.next/server/app/api/projects/reload/route.js.nft.json +1 -1
- package/.next/server/app/api/projects/reload/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/projects/route.js +1 -1
- package/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/prs/[id]/merge/route.js +1 -1
- package/.next/server/app/api/prs/[id]/merge/route.js.nft.json +1 -1
- package/.next/server/app/api/prs/[id]/merge/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/runtime/terminal/route.js +1 -1
- package/.next/server/app/api/runtime/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/kill/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/kill/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/kill/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/message/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/message/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/message/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/remap/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/remap/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/remap/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/restore/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/[id]/send/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/send/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/send/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/patches/route.js +1 -1
- package/.next/server/app/api/sessions/patches/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/patches/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/setup-labels/route.js +1 -1
- package/.next/server/app/api/setup-labels/route.js.nft.json +1 -1
- package/.next/server/app/api/setup-labels/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/spawn/route.js +1 -1
- package/.next/server/app/api/spawn/route.js.nft.json +1 -1
- package/.next/server/app/api/spawn/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/update/route.js +1 -0
- package/.next/server/app/api/update/route.js.nft.json +1 -0
- package/.next/server/app/api/update/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/verify/route.js +1 -1
- package/.next/server/app/api/verify/route.js.nft.json +1 -1
- package/.next/server/app/api/verify/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/version/route.js +1 -0
- package/.next/server/app/api/version/route.js.nft.json +1 -0
- package/.next/server/app/api/version/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/webhooks/[...slug]/route.js +1 -1
- package/.next/server/app/api/webhooks/[...slug]/route.js.nft.json +1 -1
- package/.next/server/app/api/webhooks/[...slug]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/apple-icon/route.js +1 -1
- package/.next/server/app/apple-icon/route.js.nft.json +1 -1
- package/.next/server/app/apple-icon/route_client-reference-manifest.js +1 -1
- package/.next/server/app/apple-icon.body +0 -0
- package/.next/server/app/dev/terminal-test/page.js +3 -3
- package/.next/server/app/dev/terminal-test/page.js.nft.json +1 -1
- package/.next/server/app/dev/terminal-test/page_client-reference-manifest.js +1 -1
- package/.next/server/app/dev/terminal-test.html +1 -1
- package/.next/server/app/dev/terminal-test.rsc +9 -9
- package/.next/server/app/icon/route.js +1 -1
- package/.next/server/app/icon/route.js.nft.json +1 -1
- package/.next/server/app/icon/route_client-reference-manifest.js +1 -1
- package/.next/server/app/icon-192/route.js +1 -1
- package/.next/server/app/icon-192/route.js.nft.json +1 -1
- package/.next/server/app/icon-192/route_client-reference-manifest.js +1 -1
- package/.next/server/app/icon-512/route.js +1 -1
- package/.next/server/app/icon-512/route.js.nft.json +1 -1
- package/.next/server/app/icon-512/route_client-reference-manifest.js +1 -1
- package/.next/server/app/icon.body +0 -0
- package/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest.body +1 -1
- package/.next/server/app/orchestrators/page.js +2 -2
- package/.next/server/app/orchestrators/page.js.nft.json +1 -1
- package/.next/server/app/orchestrators/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +2 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/projects/[projectId]/page.js +2 -2
- package/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
- package/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/projects/[projectId]/sessions/[id]/page.js +2 -2
- package/.next/server/app/projects/[projectId]/sessions/[id]/page.js.nft.json +1 -1
- package/.next/server/app/projects/[projectId]/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/projects/[projectId]/settings/page.js +2 -2
- package/.next/server/app/projects/[projectId]/settings/page.js.nft.json +1 -1
- package/.next/server/app/projects/[projectId]/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/prs/page.js +2 -2
- package/.next/server/app/prs/page.js.nft.json +1 -1
- package/.next/server/app/prs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/[id]/page.js +2 -2
- package/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
- package/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/test-direct/page.js +2 -2
- package/.next/server/app/test-direct/page.js.nft.json +1 -1
- package/.next/server/app/test-direct/page_client-reference-manifest.js +1 -1
- package/.next/server/app/test-direct.html +1 -1
- package/.next/server/app/test-direct.rsc +9 -9
- package/.next/server/app-paths-manifest.json +18 -16
- package/.next/server/chunks/1271.js +1 -1
- package/.next/server/chunks/1876.js +2 -2
- package/.next/server/chunks/3714.js +1 -1
- package/.next/server/chunks/4520.js +1 -1
- package/.next/server/chunks/6013.js +884 -0
- package/.next/server/chunks/6848.js +1 -0
- package/.next/server/chunks/7167.js +1 -1
- package/.next/server/chunks/7173.js +1 -1
- package/.next/server/chunks/7227.js +604 -0
- package/.next/server/chunks/9291.js +3 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/9ARsRA8WlFgsAl-7NPrHh/_buildManifest.js +1 -0
- package/.next/static/chunks/1654.ac304fc9e36ec94a.js +1 -0
- package/.next/static/chunks/3764.cdef4e76dbc23af8.js +1 -0
- package/.next/static/chunks/3780-7bdc52d8370adf2f.js +1 -0
- package/.next/static/chunks/{5795-b96fd46c8c7344fc.js → 5795-a4dd81606df09bc4.js} +1 -1
- package/.next/static/chunks/6231-57dd9c1e306c7069.js +1 -0
- package/.next/static/chunks/app/_not-found/page-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/backlog/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/browse-directory/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/filesystem/browse/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/issues/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/observability/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/orchestrators/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/projects/[id]/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/projects/reload/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/projects/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/prs/[id]/merge/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/runtime/terminal/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/kill/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/message/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/remap/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/restore/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/send/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/sessions/patches/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/setup-labels/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/spawn/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/update/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/verify/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/version/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/api/webhooks/[...slug]/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/apple-icon/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/dev/terminal-test/page-a6f86436c4a06eeb.js +1 -0
- package/.next/static/chunks/app/{error-684a1c5596fa1e14.js → error-d4f7c3a8dd722e8f.js} +1 -1
- package/.next/static/chunks/app/{global-error-1a79bacfbd9b1ba4.js → global-error-cb3a4148c223622a.js} +1 -1
- package/.next/static/chunks/app/icon/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/icon-192/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/icon-512/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/layout-e4c02836878bea2d.js +1 -0
- package/.next/static/chunks/app/loading-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/manifest.webmanifest/route-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/not-found-982c28ba7f6492be.js +1 -0
- package/.next/static/chunks/app/orchestrators/{page-e3a2c53b57dd8391.js → page-11a10c8b0bea320d.js} +1 -1
- package/.next/static/chunks/app/page-31df8f5f0d079eba.js +1 -0
- package/.next/static/chunks/app/projects/[projectId]/loading-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/projects/[projectId]/{page-19a6d4cc9951a9e4.js → page-f076731a5810b255.js} +1 -1
- package/.next/static/chunks/app/projects/[projectId]/sessions/[id]/page-7e46ee5c902c28aa.js +1 -0
- package/.next/static/chunks/app/projects/[projectId]/settings/page-40047db90c406c9e.js +1 -0
- package/.next/static/chunks/app/prs/page-5015d39fb7984d26.js +1 -0
- package/.next/static/chunks/app/sessions/[id]/{error-62e9972b39d9cd16.js → error-147fb962bda03d23.js} +1 -1
- package/.next/static/chunks/app/sessions/[id]/loading-8b5044bdc951ae98.js +1 -0
- package/.next/static/chunks/app/sessions/[id]/not-found-982c28ba7f6492be.js +1 -0
- package/.next/static/chunks/app/sessions/[id]/page-0a74680de719ca58.js +1 -0
- package/.next/static/chunks/app/test-direct/{page-ee0944bcd355194e.js → page-cbca94d9a5985aea.js} +1 -1
- package/.next/static/chunks/main-app-113c48dd1c080c52.js +1 -0
- package/.next/static/chunks/{webpack-83d2d8248a30259c.js → webpack-ecf0988dbb79e19b.js} +1 -1
- package/.next/static/css/b93232cd4a58743d.css +1 -0
- package/dist-server/direct-terminal-ws.js +12 -2
- package/dist-server/mux-websocket.js +270 -70
- package/dist-server/start-all.js +28 -6
- package/dist-server/tmux-utils.js +124 -2
- package/next.config.js +26 -0
- package/package.json +26 -12
- package/.next/server/chunks/1172.js +0 -1
- package/.next/server/chunks/6811.js +0 -3
- package/.next/server/chunks/801.js +0 -658
- package/.next/server/chunks/9223.js +0 -440
- package/.next/static/chunks/1383.8f5f7d4606d356cc.js +0 -1
- package/.next/static/chunks/3764.88619fb0d047cae8.js +0 -1
- package/.next/static/chunks/3780-52c4733ce6591b8d.js +0 -1
- package/.next/static/chunks/4465-17154f7a01abfe85.js +0 -1
- package/.next/static/chunks/app/_not-found/page-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/backlog/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/browse-directory/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/filesystem/browse/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/issues/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/observability/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/orchestrators/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/projects/[id]/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/projects/reload/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/projects/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/prs/[id]/merge/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/runtime/terminal/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/kill/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/message/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/remap/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/restore/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/send/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/sessions/patches/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/setup-labels/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/spawn/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/verify/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/api/webhooks/[...slug]/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/apple-icon/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/dev/terminal-test/page-59decd1aad4e02ad.js +0 -1
- package/.next/static/chunks/app/icon/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/icon-192/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/icon-512/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/layout-0cda720d75f111b8.js +0 -1
- package/.next/static/chunks/app/loading-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/not-found-315f4e5c106b425d.js +0 -1
- package/.next/static/chunks/app/page-e2e589ea11a0780a.js +0 -1
- package/.next/static/chunks/app/projects/[projectId]/loading-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/projects/[projectId]/sessions/[id]/page-75c536c9755754f7.js +0 -1
- package/.next/static/chunks/app/projects/[projectId]/settings/page-f8c323b91978efff.js +0 -1
- package/.next/static/chunks/app/prs/page-08f17d7dc341b6f1.js +0 -1
- package/.next/static/chunks/app/sessions/[id]/loading-3b8a01e726e988c8.js +0 -1
- package/.next/static/chunks/app/sessions/[id]/not-found-315f4e5c106b425d.js +0 -1
- package/.next/static/chunks/app/sessions/[id]/page-d0b08722dec5a04a.js +0 -1
- package/.next/static/chunks/main-app-b95f197c38e3b0a3.js +0 -1
- package/.next/static/css/cf9226160e230bf4.css +0 -1
- package/.next/static/h0RXs0prE87a8wlbEXQKM/_buildManifest.js +0 -1
- /package/.next/static/{h0RXs0prE87a8wlbEXQKM → 9ARsRA8WlFgsAl-7NPrHh}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1383],{3764:(e,t,r)=>{"use strict";r.r(t),r.d(t,{DirectTerminal:()=>p,buildTerminalThemes:()=>h,resolveMonoFontFamily:()=>d});var n=r(3817),o=r(6749),l=r(7594),a=r(2286),s=r(4901);let i="ao-terminal-font-size",c='"JetBrains Mono", "SF Mono", Menlo, Monaco, "Courier New", monospace';function d(){try{let e=getComputedStyle(document.documentElement).getPropertyValue("--font-jetbrains-mono").trim();return e?"".concat(e,", ").concat(c):c}catch(e){return c}}function u(e){let{sessionId:t,chromeless:r,isOpenCodeSession:l,reloadCommand:a,fontSize:i,setFontSize:c,fullscreen:d,toggleFullscreen:u,muxStatus:m,error:f}=e,[h,p]=(0,o.useState)(!1),[x,b]=(0,o.useState)(null);async function v(){if(l&&!h){b(null),p(!0);try{let e=a;if(!e){let r=await fetch("/api/sessions/".concat(encodeURIComponent(t),"/remap"),{method:"POST"});if(!r.ok)throw Error("Failed to remap OpenCode session: ".concat(r.status));let n=await r.json();if("string"!=typeof n.opencodeSessionId||0===n.opencodeSessionId.length)throw Error("Missing OpenCode session id after remap");e="/exit\nopencode --session ".concat(n.opencodeSessionId,"\n")}let r=await fetch("/api/sessions/".concat(encodeURIComponent(t),"/send"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:e})});if(!r.ok)throw Error("Failed to send reload command: ".concat(r.status))}catch(e){b(e instanceof Error?e.message:"Failed to reload OpenCode session")}finally{p(!1)}}}let g=f?"error":m,y="var(--color-accent)",w=(0,n.jsxs)("div",{className:"flex items-center",children:[(0,n.jsx)("button",{onClick:()=>c(e=>Math.max(9,e-1)),disabled:i<=9,className:"w-5 h-5 text-xs flex items-center justify-center rounded hover:bg-white/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors","aria-label":"Decrease font size",children:"−"}),(0,n.jsxs)("span",{className:"w-9 text-center text-xs font-medium text-[var(--color-text-secondary)]",children:[i,"px"]}),(0,n.jsx)("button",{onClick:()=>c(e=>Math.min(18,e+1)),disabled:i>=18,className:"w-5 h-5 text-xs flex items-center justify-center rounded hover:bg-white/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors","aria-label":"Increase font size",children:"+"})]}),k=l?(0,n.jsx)("button",{onClick:v,disabled:h||"connected"!==m,title:"Restart OpenCode session (/exit then resume mapped session)","aria-label":"Restart OpenCode session",className:"flex items-center gap-1 px-2 py-0.5 text-[11px] text-[var(--color-text-tertiary)] transition-colors hover:bg-[var(--color-bg-subtle)] hover:text-[var(--color-text-primary)] disabled:cursor-not-allowed disabled:opacity-70",children:h?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"h-3 w-3 animate-spin",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M12 3a9 9 0 109 9"})}),"restarting"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,n.jsx)("path",{d:"M21 12a9 9 0 11-2.64-6.36"}),(0,n.jsx)("path",{d:"M21 3v6h-6"})]}),"restart"]})}):null,j=(0,n.jsx)("button",{onClick:u,className:(0,s.cn)("flex items-center gap-1 px-2 py-0.5 text-[11px] text-[var(--color-text-tertiary)] transition-colors hover:bg-[var(--color-bg-subtle)] hover:text-[var(--color-text-primary)]",!l&&!r&&"ml-auto"),"aria-label":d?"exit fullscreen":"fullscreen",children:d?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M8 3v3a2 2 0 01-2 2H3m18 0h-3a2 2 0 01-2-2V3m0 18v-3a2 2 0 012-2h3M3 16h3a2 2 0 012 2v3"})}),"exit fullscreen"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3"})}),"fullscreen"]})});return r?(0,n.jsxs)("div",{className:"absolute right-3 top-3 z-10 flex items-center gap-1 rounded-[6px] border border-[var(--color-border-subtle)] bg-[color-mix(in_srgb,var(--color-bg-elevated)_92%,transparent)] px-1.5 py-1 shadow-[0_8px_24px_rgba(0,0,0,0.18)] backdrop-blur-sm",children:[k,j]}):(0,n.jsxs)("div",{className:"terminal-chrome-bar flex items-center gap-2 border-b border-[var(--color-border-subtle)] bg-[var(--color-bg-elevated)] px-3 py-2",children:[(0,n.jsx)("span",{className:"terminal-chrome-pane-label",children:"TERMINAL"}),(0,n.jsxs)("div",{className:"terminal-chrome-identity",children:[(0,n.jsx)("span",{className:"terminal-chrome-session-id font-[var(--font-mono)] text-[11px]",style:{color:y},children:t}),(0,n.jsxs)("div",{className:"terminal-chrome-status-row",children:[(0,n.jsx)("div",{className:(0,s.cn)("h-2 w-2 shrink-0 rounded-full","connected"===g?"bg-[var(--color-status-ready)]":"error"===g||"disconnected"===g?"bg-[var(--color-status-error)]":"bg-[var(--color-status-attention)] animate-[pulse_1.5s_ease-in-out_infinite]")}),(0,n.jsx)("span",{className:(0,s.cn)("text-[10px] font-medium uppercase tracking-[0.06em]","connected"===g?"text-[var(--color-status-ready)]":"error"===g||"disconnected"===g?"text-[var(--color-status-error)]":"text-[var(--color-text-tertiary)]"),children:"connected"===g?"Connected":"error"===g?null!=f?f:"Error":"disconnected"===g?"Disconnected":"Connecting…"}),(0,n.jsx)("span",{className:"px-1.5 py-0.5 text-[9px] font-semibold uppercase tracking-[0.06em]",style:{color:y,background:"color-mix(in srgb, ".concat(y," 12%, transparent)")},children:"XDA"})]})]}),(0,n.jsx)("div",{className:"flex-1"}),w,k,x?(0,n.jsx)("span",{className:"max-w-[40ch] truncate text-[10px] font-medium text-[var(--color-status-error)]",title:x,children:x}):null,j]})}var m=r(5184);r(5611);let f={deadZone:8,verticalDominance:1.5,maxLinesPerEvent:6,speedMultiplier:3,tmuxPrefix:"\x02"};function h(e){let t="#5b7ef8";return{dark:{background:"#0a0a0f",foreground:"#d4d4d8",cursor:t,cursorAccent:"#0a0a0f",selectionBackground:"rgba(91, 126, 248, 0.30)",selectionInactiveBackground:"rgba(128, 128, 128, 0.2)",black:"#1a1a24",red:"#ef4444",green:"#22c55e",yellow:"#f59e0b",blue:"#5b7ef8",magenta:"#a371f7",cyan:"#22d3ee",white:"#d4d4d8",brightBlack:"#50506a",brightRed:"#f87171",brightGreen:"#4ade80",brightYellow:"#fbbf24",brightBlue:"#7b9cfb",brightMagenta:"#c084fc",brightCyan:"#67e8f9",brightWhite:"#eeeef5"},light:{background:"#fafafa",foreground:"#24292f",cursor:t,cursorAccent:"#fafafa",selectionBackground:"rgba(91, 126, 248, 0.25)",selectionInactiveBackground:"rgba(128, 128, 128, 0.15)",black:"#24292f",red:"#b42318",green:"#1f7a3d",yellow:"#8a5a00",blue:"#175cd3",magenta:"#8e24aa",cyan:"#0b7285",white:"#4b5563",brightBlack:"#374151",brightRed:"#912018",brightGreen:"#176639",brightYellow:"#6f4a00",brightBlue:"#1d4ed8",brightMagenta:"#7b1fa2",brightCyan:"#155e75",brightWhite:"#374151"}}}function p(e){let{sessionId:t,projectId:c,tmuxName:p,startFullscreen:x=!1,variant:b="agent",appearance:v="theme",height:g="max(440px, calc(100dvh - 440px))",isOpenCodeSession:y=!1,reloadCommand:w,chromeless:k=!1,autoFocus:j=!1}=e,S=(0,l.useRouter)(),C=(0,l.usePathname)(),E=(0,l.useSearchParams)(),{resolvedTheme:N}=(0,a.D)(),T=(0,o.useRef)(null),[M,L]=(0,o.useState)(x),[A,F]=(0,o.useState)(function(){try{let e=localStorage.getItem(i);if(e){let t=parseInt(e,10);if(!Number.isNaN(t))return Math.max(9,Math.min(18,t))}}catch(e){}return 13}()),{error:B,followOutput:P,scrollToLatest:R,muxStatus:z,terminalInstance:I,fitAddon:D}=function(e,t,n){let{appearance:l,variant:s,fontSize:c,autoFocus:u,projectId:p,tmuxName:x}=n,{resolvedTheme:b}=(0,a.D)(),v=(0,o.useMemo)(()=>h(s),[s]),{subscribeTerminal:g,writeTerminal:y,resizeTerminal:w,openTerminal:k,closeTerminal:j,status:S}=(0,m.Ug)(),C=(0,o.useRef)(null),E=(0,o.useRef)(null),[N,T]=(0,o.useState)(null),M=(0,o.useRef)(!0),[L,A]=(0,o.useState)(!0);return(0,o.useEffect)(()=>{if(!e.current)return;T(null);let n=!0,o=null,a=null,s=null;return Promise.all([r.e(4560).then(r.bind(r,5627)).then(e=>e.Terminal),r.e(2529).then(r.bind(r,2529)).then(e=>e.FitAddon),r.e(5491).then(r.bind(r,5491)).then(e=>e.WebLinksAddon),document.fonts.ready]).then(r=>{let[i,m,h]=r;if(!n||!e.current)return;let S="dark"===l||"light"!==b,N=S?v.dark:v.light,T=new i({cursorBlink:!0,fontSize:c,fontFamily:d(),lineHeight:1.2,theme:N,minimumContrastRatio:S?1:7,scrollback:0,allowProposedApi:!0,fastScrollSensitivity:3,scrollSensitivity:1}),L=new m;T.loadAddon(L),E.current=L;let F=new h;T.loadAddon(F),T.parser.registerCsiHandler({prefix:">",final:"q"},()=>(T.write("\x1bP>|XTerm(370)\x1b\\"),!0)),T.parser.registerOscHandler(52,e=>{let t=e.split(";");if(t.length<2)return!1;let r=t[t.length-1];try{var n;let e=atob(r),t=Uint8Array.from(e,e=>e.charCodeAt(0)),o=new TextDecoder().decode(t);null==(n=navigator.clipboard)||n.writeText(o).catch(()=>{})}catch(e){}return!0}),T.attachCustomKeyEventHandler(e=>{if("keydown"!==e.type)return!0;if((e.metaKey&&!e.ctrlKey&&!e.altKey&&"KeyC"===e.code||e.ctrlKey&&e.shiftKey&&"KeyC"===e.code)&&T.hasSelection()){var t;return null==(t=navigator.clipboard)||t.writeText(T.getSelection()).catch(()=>{}),T.clearSelection(),!1}return!0}),T.open(e.current),C.current=T,u&&T.focus(),L.fit();let B=setTimeout(()=>{if(n&&E.current)try{E.current.fit(),w(t,T.cols,T.rows,p)}catch(e){}},100),P=()=>{if(n&&E.current&&C.current)try{var e,r;C.current.options.fontFamily=d(),null==(e=(r=C.current).clearTextureAtlas)||e.call(r),E.current.fit(),w(t,C.current.cols,C.current.rows,p)}catch(e){}},R="undefined"!=typeof document?document.fonts:void 0,z=!!R&&"function"==typeof R.addEventListener;z&&R.addEventListener("loadingdone",P);let I=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n={...f,...r},o=e.element;if(!o)return()=>{};let l=o.style.touchAction;o.style.touchAction="none";let a=o.querySelector(".xterm-viewport");a&&(a.style.touchAction="none");let s=0,i=0,c=0,d=null,u=!1,m=e=>{"touch"===e.pointerType&&(s=e.clientX,i=e.clientY,c=e.clientY,d=null,u=!1)},h=l=>{var a,m,f;if("touch"!==l.pointerType)return;let h=l.clientX-s,p=l.clientY-i,x=Math.abs(h),b=Math.abs(p);if(null===d){if(Math.max(x,b)<n.deadZone)return;if(b<n.verticalDominance*x){d=!1;return}d=!0;try{o.setPointerCapture(l.pointerId)}catch(e){}}if(!0!==d)return;l.preventDefault();let v=Math.round((l.clientY-c)/((null!=(f=e.options.fontSize)?f:13)*1.2));if(v>n.maxLinesPerEvent&&(v=n.maxLinesPerEvent),v<-n.maxLinesPerEvent&&(v=-n.maxLinesPerEvent),0===v)return;c=l.clientY;let g=v*n.speedMultiplier;if(v>0?null==(a=r.onScrollAway)||a.call(r):null==(m=r.onScrollTowardLatest)||m.call(r),"normal"===e.buffer.active.type)e.scrollLines(-g);else{u||(u=!0,t(n.tmuxPrefix+"["));let e=v>0?"\x1b[A":"\x1b[B",r=Math.abs(g);for(let n=0;n<r;n++)t(e)}},p=e=>{if("touch"===e.pointerType){try{o.hasPointerCapture(e.pointerId)&&o.releasePointerCapture(e.pointerId)}catch(e){}d=null}},x={capture:!0},b={capture:!0,passive:!1};return o.addEventListener("pointerdown",m,x),o.addEventListener("pointermove",h,b),o.addEventListener("pointerup",p,x),o.addEventListener("pointercancel",p,x),()=>{o.removeEventListener("pointerdown",m,x),o.removeEventListener("pointermove",h,b),o.removeEventListener("pointerup",p,x),o.removeEventListener("pointercancel",p,x),o.style.touchAction=l}}(T,e=>{y(t,e,p)},{onScrollAway:()=>{M.current=!1,A(!1)}}),D=null;e.current&&(D=new ResizeObserver(()=>{if(n&&E.current)try{E.current.fit(),w(t,T.cols,T.rows,p)}catch(e){}})).observe(e.current);let _=[],O=!1,K=null,W=0,Y=()=>{K&&(clearTimeout(K),K=null),_.length>0&&(T.write(_.join("")),_.length=0,W=0)},q=T.onSelectionChange(()=>{T.hasSelection()?(O=!0,K||(K=setTimeout(()=>{O=!1,Y()},5e3))):(O=!1,Y())}),H=!1;k(t,p,x),s=g(t,e=>{O?(_.push(e),(W+=e.length)>1048576&&(O=!1,Y())):(T.write(e),M.current&&(H=!0,T.scrollToBottom()))},p);let U=T.onScroll(()=>{if(H){H=!1;return}let e=T.buffer.active;e.viewportY+T.rows>=e.length?(M.current=!0,A(!0)):(M.current=!1,A(!1))}),J=()=>{L&&(L.fit(),w(t,T.cols,T.rows,p))};window.addEventListener("resize",J),a=T.onData(e=>{y(t,e,p)}),w(t,T.cols,T.rows,p),o=()=>{clearTimeout(B),null==D||D.disconnect(),I(),q.dispose(),K&&clearTimeout(K),window.removeEventListener("resize",J),z&&R&&R.removeEventListener("loadingdone",P),U.dispose(),null==a||a.dispose(),a=null,null==s||s(),j(t,p),T.dispose()}}).catch(e=>{console.error("[DirectTerminal] Failed to load xterm.js:",e),T("Failed to load terminal")}),()=>{n=!1,null==o||o()}},[l,t,p,x,s,b,v,g,y,w,k,j]),(0,o.useEffect)(()=>{if("connected"!==S)return;let e=E.current,r=C.current;e&&r&&(e.fit(),w(t,r.cols,r.rows,p))},[S,t,p,w]),(0,o.useEffect)(()=>{let e=C.current;if(!e)return;let t="dark"===l||"light"!==b;e.options.theme=t?v.dark:v.light,e.options.minimumContrastRatio=t?1:7},[l,b,v]),(0,o.useEffect)(()=>{let e=C.current,r=E.current;if(e&&r){e.options.fontSize=c;try{localStorage.setItem(i,String(c))}catch(e){}r.fit(),w(t,e.cols,e.rows,p)}},[c,t,p,w]),{error:N,followOutput:L,scrollToLatest:()=>{let e=C.current;e&&("normal"===e.buffer.active.type?e.scrollToBottom():y(t,"q",p)),M.current=!0,A(!0)},muxStatus:S,terminalInstance:C,fitAddon:E}}(T,t,{appearance:v,variant:b,fontSize:A,autoFocus:j,projectId:c,tmuxName:p}),{resizeTerminal:_,status:O}=(0,m.Ug)(),K=(0,o.useRef)(O);K.current=O,(0,o.useEffect)(()=>{let e=D.current,r=I.current,n=T.current;if(!e||!r||"connected"!==K.current||!n)return;let o=0,l=!1,a=0,s=-1,i=()=>{if(l)return;o++;let d=n.getBoundingClientRect().height,u=s>=0&&1>Math.abs(d-s);if(s=d,!u&&o<60){a=requestAnimationFrame(i);return}r.refresh(0,r.rows-1),e.fit(),r.refresh(0,r.rows-1),_(t,r.cols,r.rows,c)};a=requestAnimationFrame(i);let d=e=>{l||e.target===n.parentElement&&(o=0,s=-1,setTimeout(()=>{l||(a=requestAnimationFrame(i))},50))},u=n.parentElement;null==u||u.addEventListener("transitionend",d);let m=setTimeout(()=>{l||(o=0,s=-1,i())},300),f=setTimeout(()=>{l||(o=0,s=-1,i())},600);return()=>{l=!0,cancelAnimationFrame(a),null==u||u.removeEventListener("transitionend",d),clearTimeout(m),clearTimeout(f)}},[M,t,c,_,T,D,I]),(0,o.useEffect)(()=>{let e=new URLSearchParams(E.toString());M?e.set("fullscreen","true"):e.delete("fullscreen");let t=e.toString()?"".concat(C,"?").concat(e.toString()):C;S.replace(t,{scroll:!1})},[M,C,S,E]);let W="dark"===v||"light"!==N;return(0,n.jsxs)("div",{className:(0,s.cn)("overflow-hidden border border-[var(--color-border-default)] flex flex-col",M?"fixed inset-0 z-50 rounded-none border-0":"relative h-full",W?"bg-[#0a0a0f]":"bg-[#fafafa]",k&&"border-0"),children:[(0,n.jsx)(u,{sessionId:t,chromeless:k,isOpenCodeSession:y,reloadCommand:w,fontSize:A,setFontSize:F,fullscreen:M,toggleFullscreen:()=>L(e=>!e),muxStatus:z,error:B}),(0,n.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col",children:[P?null:(0,n.jsx)("button",{type:"button",onClick:R,className:"absolute bottom-3 right-3 z-20 flex h-8 w-8 items-center justify-center rounded-full border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] text-[var(--color-text-primary)] shadow-md active:scale-95","aria-label":"Jump to latest",title:"Jump to latest",children:(0,n.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M19 14l-7 7m0 0l-7-7m7 7V3"})})}),(0,n.jsx)("div",{ref:T,className:"w-full flex flex-col flex-1 min-h-0 overflow-hidden"})]})]})}},5611:()=>{}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1383,3764],{2286:(e,t,r)=>{"use strict";r.d(t,{D:()=>u,N:()=>d});var n=r(6749),o=(e,t,r,n,o,a,l,s)=>{let i=document.documentElement,c=["light","dark"];function u(t){var r;(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,n=r&&a?o.map(e=>a[e]||e):o;r?(i.classList.remove(...n),i.classList.add(a&&a[t]?a[t]:t)):i.setAttribute(e,t)}),r=t,s&&c.includes(r)&&(i.style.colorScheme=r)}if(n)u(n);else try{let e=localStorage.getItem(t)||r,n=l&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;u(n)}catch(e){}},a=["light","dark"],l="(prefers-color-scheme: dark)",s="undefined"==typeof window,i=n.createContext(void 0),c={setTheme:e=>{},themes:[]},u=()=>{var e;return null!=(e=n.useContext(i))?e:c},d=e=>n.useContext(i)?n.createElement(n.Fragment,null,e.children):n.createElement(f,{...e}),m=["light","dark"],f=e=>{let{forcedTheme:t,disableTransitionOnChange:r=!1,enableSystem:o=!0,enableColorScheme:s=!0,storageKey:c="theme",themes:u=m,defaultTheme:d=o?"system":"light",attribute:f="data-theme",value:g,children:x,nonce:y,scriptProps:w}=e,[S,k]=n.useState(()=>p(c,d)),[E,C]=n.useState(()=>"system"===S?b():S),T=g?Object.values(g):u,N=n.useCallback(e=>{let t=e;if(!t)return;"system"===e&&o&&(t=b());let n=g?g[t]:t,l=r?v(y):null,i=document.documentElement,c=e=>{"class"===e?(i.classList.remove(...T),n&&i.classList.add(n)):e.startsWith("data-")&&(n?i.setAttribute(e,n):i.removeAttribute(e))};if(Array.isArray(f)?f.forEach(c):c(f),s){let e=a.includes(d)?d:null,r=a.includes(t)?t:e;i.style.colorScheme=r}null==l||l()},[y]),j=n.useCallback(e=>{let t="function"==typeof e?e(S):e;k(t);try{localStorage.setItem(c,t)}catch(e){}},[S]),M=n.useCallback(e=>{C(b(e)),"system"===S&&o&&!t&&N("system")},[S,t]);n.useEffect(()=>{let e=window.matchMedia(l);return e.addListener(M),M(e),()=>e.removeListener(M)},[M]),n.useEffect(()=>{let e=e=>{e.key===c&&(e.newValue?k(e.newValue):j(d))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[j]),n.useEffect(()=>{N(null!=t?t:S)},[t,S]);let P=n.useMemo(()=>({theme:S,setTheme:j,forcedTheme:t,resolvedTheme:"system"===S?E:S,themes:o?[...u,"system"]:u,systemTheme:o?E:void 0}),[S,j,t,E,o,u]);return n.createElement(i.Provider,{value:P},n.createElement(h,{forcedTheme:t,storageKey:c,attribute:f,enableSystem:o,enableColorScheme:s,defaultTheme:d,value:g,themes:u,nonce:y,scriptProps:w}),x)},h=n.memo(e=>{let{forcedTheme:t,storageKey:r,attribute:a,enableSystem:l,enableColorScheme:s,defaultTheme:i,value:c,themes:u,nonce:d,scriptProps:m}=e,f=JSON.stringify([a,r,i,t,u,c,l,s]).slice(1,-1);return n.createElement("script",{...m,suppressHydrationWarning:!0,nonce:"undefined"==typeof window?d:"",dangerouslySetInnerHTML:{__html:"(".concat(o.toString(),")(").concat(f,")")}})}),p=(e,t)=>{let r;if(!s){try{r=localStorage.getItem(e)||void 0}catch(e){}return r||t}},v=e=>{let t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},b=e=>(e||(e=window.matchMedia(l)),e.matches?"dark":"light")},3764:(e,t,r)=>{"use strict";r.r(t),r.d(t,{DirectTerminal:()=>p,buildTerminalThemes:()=>h,resolveMonoFontFamily:()=>u});var n=r(3817),o=r(6749),a=r(7594),l=r(2286),s=r(4901);let i="ao-terminal-font-size",c='"JetBrains Mono", "SF Mono", Menlo, Monaco, "Courier New", monospace';function u(){try{let e=getComputedStyle(document.documentElement).getPropertyValue("--font-jetbrains-mono").trim();return e?"".concat(e,", ").concat(c):c}catch(e){return c}}function d(e){let{sessionId:t,chromeless:r,isOpenCodeSession:a,reloadCommand:l,fontSize:i,setFontSize:c,fullscreen:u,toggleFullscreen:d,muxStatus:m,error:f}=e,[h,p]=(0,o.useState)(!1),[v,b]=(0,o.useState)(null);async function g(){if(a&&!h){b(null),p(!0);try{let e=l;if(!e){let r=await fetch("/api/sessions/".concat(encodeURIComponent(t),"/remap"),{method:"POST"});if(!r.ok)throw Error("Failed to remap OpenCode session: ".concat(r.status));let n=await r.json();if("string"!=typeof n.opencodeSessionId||0===n.opencodeSessionId.length)throw Error("Missing OpenCode session id after remap");e="/exit\nopencode --session ".concat(n.opencodeSessionId,"\n")}let r=await fetch("/api/sessions/".concat(encodeURIComponent(t),"/send"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:e})});if(!r.ok)throw Error("Failed to send reload command: ".concat(r.status))}catch(e){b(e instanceof Error?e.message:"Failed to reload OpenCode session")}finally{p(!1)}}}let x=f?"error":m,y="var(--color-accent)",w=(0,n.jsxs)("div",{className:"flex items-center",children:[(0,n.jsx)("button",{onClick:()=>c(e=>Math.max(9,e-1)),disabled:i<=9,className:"w-5 h-5 text-xs flex items-center justify-center rounded hover:bg-white/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors","aria-label":"Decrease font size",children:"−"}),(0,n.jsxs)("span",{className:"w-9 text-center text-xs font-medium text-[var(--color-text-secondary)]",children:[i,"px"]}),(0,n.jsx)("button",{onClick:()=>c(e=>Math.min(18,e+1)),disabled:i>=18,className:"w-5 h-5 text-xs flex items-center justify-center rounded hover:bg-white/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors","aria-label":"Increase font size",children:"+"})]}),S=a?(0,n.jsx)("button",{onClick:g,disabled:h||"connected"!==m,title:"Restart OpenCode session (/exit then resume mapped session)","aria-label":"Restart OpenCode session",className:"flex items-center gap-1 px-2 py-0.5 text-[11px] text-[var(--color-text-tertiary)] transition-colors hover:bg-[var(--color-bg-subtle)] hover:text-[var(--color-text-primary)] disabled:cursor-not-allowed disabled:opacity-70",children:h?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"h-3 w-3 animate-spin",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M12 3a9 9 0 109 9"})}),"restarting"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,n.jsx)("path",{d:"M21 12a9 9 0 11-2.64-6.36"}),(0,n.jsx)("path",{d:"M21 3v6h-6"})]}),"restart"]})}):null,k=(0,n.jsx)("button",{onClick:d,className:(0,s.cn)("flex items-center gap-1 px-2 py-0.5 text-[11px] text-[var(--color-text-tertiary)] transition-colors hover:bg-[var(--color-bg-subtle)] hover:text-[var(--color-text-primary)]",!a&&!r&&"ml-auto"),"aria-label":u?"exit fullscreen":"fullscreen",children:u?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M8 3v3a2 2 0 01-2 2H3m18 0h-3a2 2 0 01-2-2V3m0 18v-3a2 2 0 012-2h3M3 16h3a2 2 0 012 2v3"})}),"exit fullscreen"]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("svg",{className:"h-3 w-3",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3"})}),"fullscreen"]})});return r?(0,n.jsxs)("div",{className:"absolute right-3 top-3 z-10 flex items-center gap-1 rounded-[6px] border border-[var(--color-border-subtle)] bg-[color-mix(in_srgb,var(--color-bg-elevated)_92%,transparent)] px-1.5 py-1 shadow-[0_8px_24px_rgba(0,0,0,0.18)] backdrop-blur-sm",children:[S,k]}):(0,n.jsxs)("div",{className:"terminal-chrome-bar flex items-center gap-2 border-b border-[var(--color-border-subtle)] bg-[var(--color-bg-elevated)] px-3 py-2",children:[(0,n.jsx)("span",{className:"terminal-chrome-pane-label",children:"TERMINAL"}),(0,n.jsxs)("div",{className:"terminal-chrome-identity",children:[(0,n.jsx)("span",{className:"terminal-chrome-session-id font-[var(--font-mono)] text-[11px]",style:{color:y},children:t}),(0,n.jsxs)("div",{className:"terminal-chrome-status-row",children:[(0,n.jsx)("div",{className:(0,s.cn)("h-2 w-2 shrink-0 rounded-full","connected"===x?"bg-[var(--color-status-ready)]":"error"===x||"disconnected"===x?"bg-[var(--color-status-error)]":"bg-[var(--color-status-attention)] animate-[pulse_1.5s_ease-in-out_infinite]")}),(0,n.jsx)("span",{className:(0,s.cn)("text-[10px] font-medium uppercase tracking-[0.06em]","connected"===x?"text-[var(--color-status-ready)]":"error"===x||"disconnected"===x?"text-[var(--color-status-error)]":"text-[var(--color-text-tertiary)]"),children:"connected"===x?"Connected":"error"===x?null!=f?f:"Error":"disconnected"===x?"Disconnected":"Connecting…"}),(0,n.jsx)("span",{className:"px-1.5 py-0.5 text-[9px] font-semibold uppercase tracking-[0.06em]",style:{color:y,background:"color-mix(in srgb, ".concat(y," 12%, transparent)")},children:"XDA"})]})]}),(0,n.jsx)("div",{className:"flex-1"}),w,S,v?(0,n.jsx)("span",{className:"max-w-[40ch] truncate text-[10px] font-medium text-[var(--color-status-error)]",title:v,children:v}):null,k]})}var m=r(5184);r(5611);let f={deadZone:8,verticalDominance:1.5,maxLinesPerEvent:6,speedMultiplier:3,tmuxPrefix:"\x02"};function h(e){let t="#5b7ef8";return{dark:{background:"#0a0a0f",foreground:"#d4d4d8",cursor:t,cursorAccent:"#0a0a0f",selectionBackground:"rgba(91, 126, 248, 0.30)",selectionInactiveBackground:"rgba(128, 128, 128, 0.2)",black:"#1a1a24",red:"#ef4444",green:"#22c55e",yellow:"#f59e0b",blue:"#5b7ef8",magenta:"#a371f7",cyan:"#22d3ee",white:"#d4d4d8",brightBlack:"#50506a",brightRed:"#f87171",brightGreen:"#4ade80",brightYellow:"#fbbf24",brightBlue:"#7b9cfb",brightMagenta:"#c084fc",brightCyan:"#67e8f9",brightWhite:"#eeeef5"},light:{background:"#fafafa",foreground:"#24292f",cursor:t,cursorAccent:"#fafafa",selectionBackground:"rgba(91, 126, 248, 0.25)",selectionInactiveBackground:"rgba(128, 128, 128, 0.15)",black:"#24292f",red:"#b42318",green:"#1f7a3d",yellow:"#8a5a00",blue:"#175cd3",magenta:"#8e24aa",cyan:"#0b7285",white:"#4b5563",brightBlack:"#374151",brightRed:"#912018",brightGreen:"#176639",brightYellow:"#6f4a00",brightBlue:"#1d4ed8",brightMagenta:"#7b1fa2",brightCyan:"#155e75",brightWhite:"#374151"}}}function p(e){let{sessionId:t,projectId:c,tmuxName:p,startFullscreen:v=!1,variant:b="agent",appearance:g="theme",height:x="max(440px, calc(100dvh - 440px))",isOpenCodeSession:y=!1,reloadCommand:w,chromeless:S=!1,autoFocus:k=!1}=e,E=(0,a.useRouter)(),C=(0,a.usePathname)(),T=(0,a.useSearchParams)(),{resolvedTheme:N}=(0,l.D)(),j=(0,o.useRef)(null),[M,P]=(0,o.useState)(v),[L,I]=(0,o.useState)(function(){try{let e=localStorage.getItem(i);if(e){let t=parseInt(e,10);if(!Number.isNaN(t))return Math.max(9,Math.min(18,t))}}catch(e){}return 13}()),{error:A,followOutput:R,scrollToLatest:O,muxStatus:F,terminalInstance:W,fitAddon:B}=function(e,t,n){let{appearance:a,variant:s,fontSize:c,autoFocus:d,projectId:p,tmuxName:v}=n,{resolvedTheme:b}=(0,l.D)(),g=(0,o.useMemo)(()=>h(s),[s]),{subscribeTerminal:x,writeTerminal:y,resizeTerminal:w,openTerminal:S,closeTerminal:k,status:E}=(0,m.Ug)(),C=(0,o.useRef)(null),T=(0,o.useRef)(null),[N,j]=(0,o.useState)(null),M=(0,o.useRef)(!0),[P,L]=(0,o.useState)(!0);return(0,o.useEffect)(()=>{if(!e.current)return;j(null);let n=!0,o=null,l=null,s=null;return Promise.all([r.e(4560).then(r.bind(r,5627)).then(e=>e.Terminal),r.e(2529).then(r.bind(r,2529)).then(e=>e.FitAddon),r.e(5491).then(r.bind(r,5491)).then(e=>e.WebLinksAddon),document.fonts.ready]).then(r=>{let[i,m,h]=r;if(!n||!e.current)return;let E="dark"===a||"light"!==b,N=E?g.dark:g.light,j=new i({cursorBlink:!0,fontSize:c,fontFamily:u(),lineHeight:1.2,theme:N,minimumContrastRatio:E?1:7,scrollback:0,allowProposedApi:!0,fastScrollSensitivity:3,scrollSensitivity:1}),P=new m;j.loadAddon(P),T.current=P;let I=new h;j.loadAddon(I),j.parser.registerCsiHandler({prefix:">",final:"q"},()=>(j.write("\x1bP>|XTerm(370)\x1b\\"),!0)),j.parser.registerOscHandler(52,e=>{let t=e.split(";");if(t.length<2)return!1;let r=t[t.length-1];try{var n;let e=atob(r),t=Uint8Array.from(e,e=>e.charCodeAt(0)),o=new TextDecoder().decode(t);null==(n=navigator.clipboard)||n.writeText(o).catch(()=>{})}catch(e){}return!0}),j.attachCustomKeyEventHandler(e=>{if("keydown"!==e.type)return!0;if((e.metaKey&&!e.ctrlKey&&!e.altKey&&"KeyC"===e.code||e.ctrlKey&&e.shiftKey&&"KeyC"===e.code)&&j.hasSelection()){var t;return null==(t=navigator.clipboard)||t.writeText(j.getSelection()).catch(()=>{}),j.clearSelection(),!1}return!0}),j.open(e.current),C.current=j,d&&j.focus(),P.fit();let A=setTimeout(()=>{if(n&&T.current)try{T.current.fit(),w(t,j.cols,j.rows,p)}catch(e){}},100),R=()=>{if(n&&T.current&&C.current)try{var e,r;C.current.options.fontFamily=u(),null==(e=(r=C.current).clearTextureAtlas)||e.call(r),T.current.fit(),w(t,C.current.cols,C.current.rows,p)}catch(e){}},O="undefined"!=typeof document?document.fonts:void 0,F=!!O&&"function"==typeof O.addEventListener;F&&O.addEventListener("loadingdone",R);let W=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n={...f,...r},o=e.element;if(!o)return()=>{};let a=o.style.touchAction;o.style.touchAction="none";let l=o.querySelector(".xterm-viewport");l&&(l.style.touchAction="none");let s=0,i=0,c=0,u=null,d=!1,m=e=>{"touch"===e.pointerType&&(s=e.clientX,i=e.clientY,c=e.clientY,u=null,d=!1)},h=a=>{var l,m,f;if("touch"!==a.pointerType)return;let h=a.clientX-s,p=a.clientY-i,v=Math.abs(h),b=Math.abs(p);if(null===u){if(Math.max(v,b)<n.deadZone)return;if(b<n.verticalDominance*v){u=!1;return}u=!0;try{o.setPointerCapture(a.pointerId)}catch(e){}}if(!0!==u)return;a.preventDefault();let g=Math.round((a.clientY-c)/((null!=(f=e.options.fontSize)?f:13)*1.2));if(g>n.maxLinesPerEvent&&(g=n.maxLinesPerEvent),g<-n.maxLinesPerEvent&&(g=-n.maxLinesPerEvent),0===g)return;c=a.clientY;let x=g*n.speedMultiplier;if(g>0?null==(l=r.onScrollAway)||l.call(r):null==(m=r.onScrollTowardLatest)||m.call(r),"normal"===e.buffer.active.type)e.scrollLines(-x);else{d||(d=!0,t(n.tmuxPrefix+"["));let e=g>0?"\x1b[A":"\x1b[B",r=Math.abs(x);for(let n=0;n<r;n++)t(e)}},p=e=>{if("touch"===e.pointerType){try{o.hasPointerCapture(e.pointerId)&&o.releasePointerCapture(e.pointerId)}catch(e){}u=null}},v={capture:!0},b={capture:!0,passive:!1};return o.addEventListener("pointerdown",m,v),o.addEventListener("pointermove",h,b),o.addEventListener("pointerup",p,v),o.addEventListener("pointercancel",p,v),()=>{o.removeEventListener("pointerdown",m,v),o.removeEventListener("pointermove",h,b),o.removeEventListener("pointerup",p,v),o.removeEventListener("pointercancel",p,v),o.style.touchAction=a}}(j,e=>{y(t,e,p)},{onScrollAway:()=>{M.current=!1,L(!1)}}),B=null;e.current&&(B=new ResizeObserver(()=>{if(n&&T.current)try{T.current.fit(),w(t,j.cols,j.rows,p)}catch(e){}})).observe(e.current);let _=[],z=!1,D=null,J=0,K=()=>{D&&(clearTimeout(D),D=null),_.length>0&&(j.write(_.join("")),_.length=0,J=0)},H=j.onSelectionChange(()=>{j.hasSelection()?(z=!0,D||(D=setTimeout(()=>{z=!1,K()},5e3))):(z=!1,K())}),U=!1;S(t,p,v),s=x(t,e=>{z?(_.push(e),(J+=e.length)>1048576&&(z=!1,K())):(j.write(e),M.current&&(U=!0,j.scrollToBottom()))},p);let Y=j.onScroll(()=>{if(U){U=!1;return}let e=j.buffer.active;e.viewportY+j.rows>=e.length?(M.current=!0,L(!0)):(M.current=!1,L(!1))}),q=()=>{P&&(P.fit(),w(t,j.cols,j.rows,p))};window.addEventListener("resize",q),l=j.onData(e=>{y(t,e,p)}),w(t,j.cols,j.rows,p),o=()=>{clearTimeout(A),null==B||B.disconnect(),W(),H.dispose(),D&&clearTimeout(D),window.removeEventListener("resize",q),F&&O&&O.removeEventListener("loadingdone",R),Y.dispose(),null==l||l.dispose(),l=null,null==s||s(),k(t,p),j.dispose()}}).catch(e=>{console.error("[DirectTerminal] Failed to load xterm.js:",e),j("Failed to load terminal")}),()=>{n=!1,null==o||o()}},[a,t,p,v,s,b,g,x,y,w,S,k]),(0,o.useEffect)(()=>{if("connected"!==E)return;let e=T.current,r=C.current;e&&r&&(e.fit(),w(t,r.cols,r.rows,p))},[E,t,p,w]),(0,o.useEffect)(()=>{let e=C.current;if(!e)return;let t="dark"===a||"light"!==b;e.options.theme=t?g.dark:g.light,e.options.minimumContrastRatio=t?1:7},[a,b,g]),(0,o.useEffect)(()=>{let e=C.current,r=T.current;if(e&&r){e.options.fontSize=c;try{localStorage.setItem(i,String(c))}catch(e){}r.fit(),w(t,e.cols,e.rows,p)}},[c,t,p,w]),{error:N,followOutput:P,scrollToLatest:()=>{let e=C.current;e&&("normal"===e.buffer.active.type?e.scrollToBottom():y(t,"q",p)),M.current=!0,L(!0)},muxStatus:E,terminalInstance:C,fitAddon:T}}(j,t,{appearance:g,variant:b,fontSize:L,autoFocus:k,projectId:c,tmuxName:p}),{resizeTerminal:_,status:z}=(0,m.Ug)(),D=(0,o.useRef)(z);D.current=z,(0,o.useEffect)(()=>{let e=B.current,r=W.current,n=j.current;if(!e||!r||"connected"!==D.current||!n)return;let o=0,a=!1,l=0,s=-1,i=()=>{if(a)return;o++;let u=n.getBoundingClientRect().height,d=s>=0&&1>Math.abs(u-s);if(s=u,!d&&o<60){l=requestAnimationFrame(i);return}r.refresh(0,r.rows-1),e.fit(),r.refresh(0,r.rows-1),_(t,r.cols,r.rows,c)};l=requestAnimationFrame(i);let u=e=>{a||e.target===n.parentElement&&(o=0,s=-1,setTimeout(()=>{a||(l=requestAnimationFrame(i))},50))},d=n.parentElement;null==d||d.addEventListener("transitionend",u);let m=setTimeout(()=>{a||(o=0,s=-1,i())},300),f=setTimeout(()=>{a||(o=0,s=-1,i())},600);return()=>{a=!0,cancelAnimationFrame(l),null==d||d.removeEventListener("transitionend",u),clearTimeout(m),clearTimeout(f)}},[M,t,c,_,j,B,W]),(0,o.useEffect)(()=>{let e=new URLSearchParams(T.toString());M?e.set("fullscreen","true"):e.delete("fullscreen");let t=e.toString()?"".concat(C,"?").concat(e.toString()):C;E.replace(t,{scroll:!1})},[M,C,E,T]);let J="dark"===g||"light"!==N;return(0,n.jsxs)("div",{className:(0,s.cn)("overflow-hidden border border-[var(--color-border-default)] flex flex-col",M?"fixed inset-0 z-50 rounded-none border-0":"relative h-full",J?"bg-[#0a0a0f]":"bg-[#fafafa]",S&&"border-0"),children:[(0,n.jsx)(d,{sessionId:t,chromeless:S,isOpenCodeSession:y,reloadCommand:w,fontSize:L,setFontSize:I,fullscreen:M,toggleFullscreen:()=>P(e=>!e),muxStatus:F,error:A}),(0,n.jsxs)("div",{className:"relative flex-1 min-h-0 flex flex-col",children:[R?null:(0,n.jsx)("button",{type:"button",onClick:O,className:"absolute bottom-3 right-3 z-20 flex h-8 w-8 items-center justify-center rounded-full border border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] text-[var(--color-text-primary)] shadow-md active:scale-95","aria-label":"Jump to latest",title:"Jump to latest",children:(0,n.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M19 14l-7 7m0 0l-7-7m7 7V3"})})}),(0,n.jsx)("div",{ref:j,className:"w-full flex flex-col flex-1 min-h-0 overflow-hidden"})]})]})}},4901:(e,t,r)=>{"use strict";function n(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.filter(Boolean).join(" ")}r.d(t,{cn:()=>n})},5184:(e,t,r)=>{"use strict";r.d(t,{Ug:()=>s,eT:()=>i,i2:()=>u});var n=r(3817),o=r(6749),a=r(1806);let l=o.createContext(void 0);function s(){let e=o.useContext(l);if(!e)throw Error("useMux() must be used within <MuxProvider>");return e}function i(){return o.useContext(l)}function c(e,t){return t?"".concat(t,":").concat(e):e}function u(e){let{children:t}=e,r=(0,o.useRef)(null),s=(0,o.useRef)(new Map),i=(0,o.useRef)(new Map),[u,d]=(0,o.useState)("connecting"),[m,f]=(0,o.useState)([]),[h,p]=(0,o.useState)(null),v=(0,o.useRef)(0),b=(0,o.useRef)(null),g=(0,o.useRef)({}),x=(0,o.useRef)(!1),y=(0,o.useCallback)(()=>{if(!r.current){d("connecting");try{let e=function(e){var t,r,n;let o=window.location,l="https:"===o.protocol?"wss:":"ws:",s=null!=(t=e.proxyWsPath)?t:a.env.NEXT_PUBLIC_TERMINAL_WS_PATH;if(s){let e=s.replace(/\/ws\/?$/,"");return"".concat(l,"//").concat(o.host).concat(e,"/mux")}if(""===o.port||"443"===o.port||"80"===o.port)return"".concat(l,"//").concat(o.hostname,"/ao-terminal-mux");let i=null!=(n=null!=(r=e.directTerminalPort)?r:a.env.NEXT_PUBLIC_DIRECT_TERMINAL_PORT)?n:"14801";return"".concat(l,"//").concat(o.hostname,":").concat(i,"/mux")}(g.current);console.log("[MuxProvider] Connecting to",e);let t=new WebSocket(e);r.current=t,t.addEventListener("open",()=>{if(x.current)return void t.close();for(let e of(console.log("[MuxProvider] Connected"),d("connected"),v.current=0,i.current.values())){let r={ch:"terminal",id:e.id,type:"open",...e.projectId&&{projectId:e.projectId},...e.tmuxName&&{tmuxName:e.tmuxName}};t.send(JSON.stringify(r))}t.send(JSON.stringify({ch:"subscribe",topics:["sessions"]}))}),t.addEventListener("message",e=>{try{let t=JSON.parse(e.data);if("terminal"===t.ch){let e=c(t.id,"projectId"in t?t.projectId:void 0);if("data"===t.type){let r=s.current.get(e);if(r)for(let e of r)e(t.data)}else if("opened"===t.type)i.current.has(e)||i.current.set(e,{id:t.id,..."projectId"in t&&t.projectId?{projectId:t.projectId}:{}});else if("exited"===t.type){i.current.delete(e);let r=s.current.get(e);if(r){let e="\r\n\x1b[31m[Terminal exited with code ".concat(t.code,"]\x1b[0m\r\n");for(let t of r)t(e)}}else"error"===t.type&&console.error("[MuxProvider] Terminal error for ".concat(t.id,":"),t.message)}else"sessions"===t.ch&&("snapshot"===t.type?(f(t.sessions),p(null)):"error"===t.type&&p(t.error))}catch(e){console.error("[MuxProvider] Error processing message:",e)}}),t.addEventListener("error",e=>{console.error("[MuxProvider] WebSocket error:",e)}),t.addEventListener("close",()=>{if(console.log("[MuxProvider] Disconnected"),r.current===t&&(r.current=null),x.current)return;let e=Math.min(1e3*Math.pow(2,v.current),3e4);v.current+=1,d("reconnecting"),b.current=setTimeout(()=>{console.log("[MuxProvider] Reconnecting (attempt ".concat(v.current,")...")),y()},e)})}catch(e){console.error("[MuxProvider] Failed to create WebSocket:",e),d("disconnected")}}},[]);(0,o.useEffect)(()=>{x.current=!1;let e=!1;return(async()=>{try{let e=await fetch("/api/runtime/terminal");if(e.ok){let t=await e.json();g.current={directTerminalPort:function(e){if("string"!=typeof e&&"number"!=typeof e)return;let t=Number.parseInt(String(e),10);if(Number.isInteger(t)&&!(t<=0)&&!(t>65535))return String(t)}(t.directTerminalPort),proxyWsPath:function(e){if("string"!=typeof e)return;let t=e.trim();if(t.startsWith("/"))return t}(t.proxyWsPath)}}}catch(e){}e||y()})(),()=>{var t;e=!0,x.current=!0,b.current&&clearTimeout(b.current),null==(t=r.current)||t.close()}},[y]);let w=(0,o.useCallback)((e,t,n)=>{var o;let a=c(e,n),l=s.current.get(a);if(l||(l=new Set,s.current.set(a,l)),l.add(t),!i.current.has(a)&&(null==(o=r.current)?void 0:o.readyState)===WebSocket.OPEN){let t={ch:"terminal",id:e,type:"open",...n&&{projectId:n}};r.current.send(JSON.stringify(t))}return()=>{let e=s.current.get(a);e&&(e.delete(t),0===e.size&&s.current.delete(a))}},[]),S=(0,o.useCallback)((e,t,n)=>{var o;if((null==(o=r.current)?void 0:o.readyState)===WebSocket.OPEN){let o={ch:"terminal",id:e,type:"data",data:t,...n&&{projectId:n}};r.current.send(JSON.stringify(o))}},[]),k=(0,o.useCallback)((e,t,n)=>{var o;if(i.current.set(c(e,t),{id:e,projectId:t,tmuxName:n}),(null==(o=r.current)?void 0:o.readyState)===WebSocket.OPEN){let o={ch:"terminal",id:e,type:"open",...t&&{projectId:t},...n&&{tmuxName:n}};r.current.send(JSON.stringify(o))}},[]),E=(0,o.useCallback)((e,t)=>{var n;if(i.current.delete(c(e,t)),(null==(n=r.current)?void 0:n.readyState)===WebSocket.OPEN){let n={ch:"terminal",id:e,type:"close",...t&&{projectId:t}};r.current.send(JSON.stringify(n))}},[]),C=(0,o.useCallback)((e,t,n,o)=>{var a;if((null==(a=r.current)?void 0:a.readyState)===WebSocket.OPEN){let a={ch:"terminal",id:e,type:"resize",cols:t,rows:n,...o&&{projectId:o}};r.current.send(JSON.stringify(a))}},[]),T=(0,o.useMemo)(()=>({subscribeTerminal:w,writeTerminal:S,openTerminal:k,closeTerminal:E,resizeTerminal:C,status:u,sessions:m,lastError:h}),[w,S,k,E,C,u,m,h]);return(0,n.jsx)(l.Provider,{value:T,children:t})}},5611:()=>{}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3780],{545:(e,t,r)=>{r.d(t,{CM:()=>n.CM,Kw:()=>d,N_:()=>n.N_,Ou:()=>i,QN:()=>l,U1:()=>n.U1,dG:()=>u,fZ:()=>s,nH:()=>p,ng:()=>h,of:()=>c,sZ:()=>a,wy:()=>m});var n=r(5425);function s(e){return e.mergeability.blockers.includes("API rate limited or unavailable")}function a(e){return!1===e.enriched}function l(e){return"open"===e.state&&e.mergeability.mergeable&&e.mergeability.ciPassing&&e.mergeability.approved&&e.mergeability.noConflicts}function o(e){return e.replace(/_/g," ")}function i(e){var t,r,n;return null!=(n=null==(r=e.lifecycle)||null==(t=r.session)?void 0:t.label)?n:o(e.status)}function c(e){var t,r,n;return(null==(r=e.lifecycle)||null==(t=r.pr)?void 0:t.label)?e.lifecycle.pr.label:(null==(n=e.pr)?void 0:n.state)?o(e.pr.state):"not created"}function d(e){var t,r,n;return null!=(n=null==(r=e.lifecycle)||null==(t=r.runtime)?void 0:t.label)?n:"unknown"}function u(e){var t;return e.lifecycle?"done"===e.lifecycle.sessionState||"terminated"===e.lifecycle.sessionState||"merged"===e.lifecycle.prState:"merged"===e.status||"killed"===e.status||"cleanup"===e.status||"done"===e.status||"terminated"===e.status||(null==(t=e.pr)?void 0:t.state)==="merged"}function p(e){return e.lifecycle?u(e)||"missing"===e.lifecycle.runtimeState||"exited"===e.lifecycle.runtimeState:n.CM.has(e.status)||null!==e.activity&&n.Rt.has(e.activity)}function m(e){var t;return e.lifecycle?("done"===e.lifecycle.sessionState||"terminated"===e.lifecycle.sessionState||"missing"===e.lifecycle.runtimeState||"exited"===e.lifecycle.runtimeState)&&"merged"!==e.lifecycle.prState&&"merged"!==e.status:!!p(e)&&(null==(t=e.pr)?void 0:t.state)!=="merged"&&"merged"!==e.status}function h(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"detailed",r=function(e){var t,r,l,o,i,c,d,p,m;if(u(e))return"done";if((null==(t=e.lifecycle)?void 0:t.prReason)==="merge_ready"||(null==(r=e.lifecycle)?void 0:r.prReason)==="approved"||"mergeable"===e.status||"approved"===e.status||e.pr&&!a(e.pr)&&e.pr.mergeability.mergeable)return"merge";if((null==(l=e.lifecycle)?void 0:l.sessionState)==="detecting"||(null==(o=e.lifecycle)?void 0:o.sessionState)==="needs_input"||(null==(i=e.lifecycle)?void 0:i.sessionState)==="stuck"||e.status===n.SB.ERRORED||e.status===n.SB.NEEDS_INPUT||e.status===n.SB.STUCK||e.activity===n.u3.WAITING_INPUT||e.activity===n.u3.BLOCKED||e.activity===n.u3.EXITED)return"respond";if((null==(c=e.lifecycle)?void 0:c.prReason)==="ci_failing"||(null==(d=e.lifecycle)?void 0:d.prReason)==="changes_requested"||"ci_failed"===e.status||"changes_requested"===e.status)return"review";if(e.pr&&!s(e.pr)&&!a(e.pr)){let t=e.pr;if(t.ciStatus===n.U1.FAILING||"changes_requested"===t.reviewDecision||!t.mergeability.noConflicts)return"review"}if((null==(p=e.lifecycle)?void 0:p.prReason)==="review_pending"||(null==(m=e.lifecycle)?void 0:m.prReason)==="closed_unmerged"||"review_pending"===e.status)return"pending";if(e.pr&&!s(e.pr)&&!a(e.pr)){let t=e.pr;if(!t.isDraft&&t.unresolvedThreads>0||!t.isDraft&&("pending"===t.reviewDecision||"none"===t.reviewDecision))return"pending"}return"working"}(e);return"simple"===t&&("respond"===r||"review"===r)?"action":r}},2286:(e,t,r)=>{r.d(t,{D:()=>d,N:()=>u});var n=r(6749),s=(e,t,r,n,s,a,l,o)=>{let i=document.documentElement,c=["light","dark"];function d(t){var r;(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,n=r&&a?s.map(e=>a[e]||e):s;r?(i.classList.remove(...n),i.classList.add(a&&a[t]?a[t]:t)):i.setAttribute(e,t)}),r=t,o&&c.includes(r)&&(i.style.colorScheme=r)}if(n)d(n);else try{let e=localStorage.getItem(t)||r,n=l&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;d(n)}catch(e){}},a=["light","dark"],l="(prefers-color-scheme: dark)",o="undefined"==typeof window,i=n.createContext(void 0),c={setTheme:e=>{},themes:[]},d=()=>{var e;return null!=(e=n.useContext(i))?e:c},u=e=>n.useContext(i)?n.createElement(n.Fragment,null,e.children):n.createElement(m,{...e}),p=["light","dark"],m=e=>{let{forcedTheme:t,disableTransitionOnChange:r=!1,enableSystem:s=!0,enableColorScheme:o=!0,storageKey:c="theme",themes:d=p,defaultTheme:u=s?"system":"light",attribute:m="data-theme",value:v,children:b,nonce:_,scriptProps:x}=e,[y,N]=n.useState(()=>j(c,u)),[w,k]=n.useState(()=>"system"===y?g():y),S=v?Object.values(v):d,C=n.useCallback(e=>{let t=e;if(!t)return;"system"===e&&s&&(t=g());let n=v?v[t]:t,l=r?f(_):null,i=document.documentElement,c=e=>{"class"===e?(i.classList.remove(...S),n&&i.classList.add(n)):e.startsWith("data-")&&(n?i.setAttribute(e,n):i.removeAttribute(e))};if(Array.isArray(m)?m.forEach(c):c(m),o){let e=a.includes(u)?u:null,r=a.includes(t)?t:e;i.style.colorScheme=r}null==l||l()},[_]),E=n.useCallback(e=>{let t="function"==typeof e?e(y):e;N(t);try{localStorage.setItem(c,t)}catch(e){}},[y]),P=n.useCallback(e=>{k(g(e)),"system"===y&&s&&!t&&C("system")},[y,t]);n.useEffect(()=>{let e=window.matchMedia(l);return e.addListener(P),P(e),()=>e.removeListener(P)},[P]),n.useEffect(()=>{let e=e=>{e.key===c&&(e.newValue?N(e.newValue):E(u))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[E]),n.useEffect(()=>{C(null!=t?t:y)},[t,y]);let I=n.useMemo(()=>({theme:y,setTheme:E,forcedTheme:t,resolvedTheme:"system"===y?w:y,themes:s?[...d,"system"]:d,systemTheme:s?w:void 0}),[y,E,t,w,s,d]);return n.createElement(i.Provider,{value:I},n.createElement(h,{forcedTheme:t,storageKey:c,attribute:m,enableSystem:s,enableColorScheme:o,defaultTheme:u,value:v,themes:d,nonce:_,scriptProps:x}),b)},h=n.memo(e=>{let{forcedTheme:t,storageKey:r,attribute:a,enableSystem:l,enableColorScheme:o,defaultTheme:i,value:c,themes:d,nonce:u,scriptProps:p}=e,m=JSON.stringify([a,r,i,t,d,c,l,o]).slice(1,-1);return n.createElement("script",{...p,suppressHydrationWarning:!0,nonce:"undefined"==typeof window?u:"",dangerouslySetInnerHTML:{__html:"(".concat(s.toString(),")(").concat(m,")")}})}),j=(e,t)=>{let r;if(!o){try{r=localStorage.getItem(e)||void 0}catch(e){}return r||t}},f=e=>{let t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},g=e=>(e||(e=window.matchMedia(l)),e.matches?"dark":"light")},2446:(e,t,r)=>{r.d(t,{d:()=>c,t:()=>i});var n=r(3817),s=r(6749),a=r(4901);function l(e,t){return"SHOW"===t.type?{message:t.message,variant:t.variant,key:t.key}:null}let o=(0,s.createContext)(null);function i(e){let{children:t}=e,[r,i]=(0,s.useReducer)(l,null),c=(0,s.useRef)(null),d=(0,s.useRef)(0);(0,s.useEffect)(()=>()=>{null!==c.current&&clearTimeout(c.current)},[]);let u=(0,s.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info";null!==c.current&&clearTimeout(c.current),d.current+=1,i({type:"SHOW",message:e,variant:t,key:d.current}),c.current=setTimeout(()=>{i({type:"HIDE"}),c.current=null},3e3)},[]);return(0,n.jsxs)(o.Provider,{value:{showToast:u},children:[t,(0,n.jsx)("div",{className:"toast-container",role:"status","aria-live":"polite","aria-atomic":"true",children:r&&(0,n.jsxs)("div",{className:(0,a.cn)("toast","success"===r.variant&&"toast--success","error"===r.variant&&"toast--error","info"===r.variant&&"toast--info"),children:[(0,n.jsx)("span",{className:"toast__icon","aria-hidden":"true"}),(0,n.jsx)("span",{className:"toast__message",children:r.message})]},r.key)})]})}function c(){let e=(0,s.useContext)(o);if(!e)throw Error("useToast must be used within a ToastProvider");return e}},2749:(e,t,r)=>{r.d(t,{ProjectSettingsForm:()=>u});var n=r(3817),s=r(6749),a=r(7594),l=r(2446);let o="These describe which repo this is. Change them via `ao project relink`.";function i(e){let{projectId:t,initialValues:r}=e,o=(0,a.useRouter)(),{showToast:i}=(0,l.d)(),[u,p]=(0,s.useState)(r.agent),[m,h]=(0,s.useState)(r.runtime),[j,f]=(0,s.useState)(r.trackerPlugin),[g,v]=(0,s.useState)(r.scmPlugin),[b,_]=(0,s.useState)(r.reactions),[x,y]=(0,s.useState)(!1),[N,w]=(0,s.useState)(null),[k,S]=(0,s.useState)(null),C=(0,s.useMemo)(()=>({agent:u.trim()||null,runtime:m.trim()||null,tracker:j.trim()?{plugin:j.trim()}:null,scm:g.trim()?{plugin:g.trim()}:null,reactions:b}),[u,m,j,g,b]),E=async()=>{let e;w(null),S(null);try{let t=b.trim();e=t?JSON.parse(t):void 0}catch(e){w("Reactions must be valid JSON.");return}y(!0);try{let n=await fetch("/api/projects/".concat(encodeURIComponent(t)),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:C.agent,runtime:C.runtime,tracker:C.tracker,scm:C.scm,reactions:null!=e?e:null})}),s=await n.json().catch(()=>null);if(!n.ok){var r;let e=null!=(r=null==s?void 0:s.error)?r:"Failed to save project settings.";400===n.status?w(e):S(e);return}i("Project settings updated.","success"),o.refresh()}catch(e){S("Network error while saving project settings.")}finally{y(!1)}};return(0,n.jsxs)("div",{className:"project-settings-form",children:[(0,n.jsxs)("section",{className:"project-settings-form__section",children:[(0,n.jsxs)("div",{className:"project-settings-form__section-header",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"project-settings-form__eyebrow",children:"Behavior"}),(0,n.jsx)("h2",{className:"project-settings-form__section-title",children:"Runtime configuration"}),(0,n.jsx)("p",{className:"project-settings-form__section-copy",children:"These values change how AO runs this project without changing which repository the project points at."})]}),(0,n.jsx)("button",{type:"button",onClick:()=>void E(),disabled:x,className:"project-settings-form__save",children:x?"Saving...":"Save changes"})]}),(0,n.jsxs)("div",{className:"project-settings-form__grid",children:[(0,n.jsx)(c,{id:"agent",label:"Agent",value:u,onChange:p,placeholder:"claude-code"}),(0,n.jsx)(c,{id:"runtime",label:"Runtime",value:m,onChange:h,placeholder:"tmux"}),(0,n.jsx)(c,{id:"tracker-plugin",label:"Tracker plugin",value:j,onChange:f,placeholder:"github"}),(0,n.jsx)(c,{id:"scm-plugin",label:"SCM plugin",value:g,onChange:v,placeholder:"github"})]}),(0,n.jsxs)("div",{className:"project-settings-form__reactions",children:[(0,n.jsx)("label",{htmlFor:"reactions",className:"project-settings-form__label",children:"Reactions"}),(0,n.jsx)("p",{className:"project-settings-form__hint",children:"JSON object keyed by reaction name. This PATCH only sends behavior fields."}),(0,n.jsx)("textarea",{id:"reactions",value:b,onChange:e=>_(e.target.value),spellCheck:!1,rows:12,className:"project-settings-form__textarea project-settings-form__textarea--mono"})]}),N?(0,n.jsx)("div",{role:"alert",className:"project-settings-form__alert project-settings-form__alert--error",children:N}):null,k?(0,n.jsxs)("div",{className:"project-settings-form__alert project-settings-form__alert--surface",children:[(0,n.jsx)("p",{className:"project-settings-form__alert-copy",children:k}),(0,n.jsx)("button",{type:"button",onClick:()=>void E(),className:"project-settings-form__retry",children:"Retry"})]}):null]}),(0,n.jsxs)("section",{className:"project-settings-form__section",children:[(0,n.jsx)("p",{className:"project-settings-form__eyebrow",children:"Identity"}),(0,n.jsx)("h2",{className:"project-settings-form__section-title",children:"Repository identity"}),(0,n.jsx)("p",{className:"project-settings-form__section-copy",children:"These fields are read-only because they define which repository AO considers this project to be."}),(0,n.jsxs)("div",{className:"project-settings-form__grid",children:[(0,n.jsx)(d,{id:"identity-project-id",label:"Project ID",value:r.identity.projectId}),(0,n.jsx)(d,{id:"identity-path",label:"Path",value:r.identity.path}),(0,n.jsx)(d,{id:"identity-repo",label:"Repo",value:r.identity.repo}),(0,n.jsx)(d,{id:"identity-default-branch",label:"Default branch",value:r.identity.defaultBranch})]})]})]})}function c(e){let{id:t,label:r,value:s,onChange:a,placeholder:l}=e;return(0,n.jsxs)("label",{htmlFor:t,className:"project-settings-form__field",children:[(0,n.jsx)("span",{className:"project-settings-form__label",children:r}),(0,n.jsx)("input",{id:t,value:s,onChange:e=>a(e.target.value),placeholder:l,className:"project-settings-form__input"})]})}function d(e){let{id:t,label:r,value:s}=e;return(0,n.jsxs)("label",{htmlFor:t,className:"project-settings-form__field",children:[(0,n.jsx)("span",{className:"project-settings-form__label",children:r}),(0,n.jsx)("input",{id:t,value:s,disabled:!0,readOnly:!0,title:o,"aria-describedby":"".concat(t,"-tooltip"),className:"project-settings-form__input project-settings-form__input--readonly"}),(0,n.jsx)("span",{id:"".concat(t,"-tooltip"),className:"project-settings-form__hint",children:o})]})}function u(e){return(0,n.jsx)(l.t,{children:(0,n.jsx)(i,{...e})})}},3394:(e,t,r)=>{async function n(e){try{var t;let r=await e.json(),n=null!=(t=null==r?void 0:r.error)?t:null==r?void 0:r.message;if("string"==typeof n&&n.trim().length>0)return n.trim()}catch(e){}let r="string"==typeof e.statusText?e.statusText.trim():"";return r.length>0?"".concat(e.status," ").concat(r):"HTTP ".concat(e.status)}async function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{timeoutMs:r=8e3,timeoutMessage:s,signal:a,...l}=t,o=new AbortController,i=null,c=!1;try{let t=function(e){let t=e.filter(e=>!!e);if(0===t.length)return;if(1===t.length)return t[0];let r=new AbortController,n=()=>r.abort();for(let e of t){if(e.aborted){r.abort();break}e.addEventListener("abort",n,{once:!0})}return r.signal}([a,o.signal]),d={...l};t&&(d.signal=t);let u=new Promise((e,t)=>{i=setTimeout(()=>{c=!0,o.abort(),t(Error(null!=s?s:"Request timed out after ".concat(r,"ms")))},r)}),p=await Promise.race([fetch(e,d).catch(e=>{if(c)throw Error(null!=s?s:"Request timed out after ".concat(r,"ms"),{cause:e});throw e}),u]);if(!p.ok)throw Error(await n(p));return await p.json()}finally{i&&clearTimeout(i)}}r.d(t,{u:()=>s})},4901:(e,t,r)=>{r.d(t,{cn:()=>n});function n(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.filter(Boolean).join(" ")}},5184:(e,t,r)=>{r.d(t,{Ug:()=>o,eT:()=>i,i2:()=>d});var n=r(3817),s=r(6749),a=r(1806);let l=s.createContext(void 0);function o(){let e=s.useContext(l);if(!e)throw Error("useMux() must be used within <MuxProvider>");return e}function i(){return s.useContext(l)}function c(e,t){return t?"".concat(t,":").concat(e):e}function d(e){let{children:t}=e,r=(0,s.useRef)(null),o=(0,s.useRef)(new Map),i=(0,s.useRef)(new Map),[d,u]=(0,s.useState)("connecting"),[p,m]=(0,s.useState)([]),[h,j]=(0,s.useState)(null),f=(0,s.useRef)(0),g=(0,s.useRef)(null),v=(0,s.useRef)({}),b=(0,s.useRef)(!1),_=(0,s.useCallback)(()=>{if(!r.current){u("connecting");try{let e=function(e){var t,r,n;let s=window.location,l="https:"===s.protocol?"wss:":"ws:",o=null!=(t=e.proxyWsPath)?t:a.env.NEXT_PUBLIC_TERMINAL_WS_PATH;if(o){let e=o.replace(/\/ws\/?$/,"");return"".concat(l,"//").concat(s.host).concat(e,"/mux")}if(""===s.port||"443"===s.port||"80"===s.port)return"".concat(l,"//").concat(s.hostname,"/ao-terminal-mux");let i=null!=(n=null!=(r=e.directTerminalPort)?r:a.env.NEXT_PUBLIC_DIRECT_TERMINAL_PORT)?n:"14801";return"".concat(l,"//").concat(s.hostname,":").concat(i,"/mux")}(v.current);console.log("[MuxProvider] Connecting to",e);let t=new WebSocket(e);r.current=t,t.addEventListener("open",()=>{if(b.current)return void t.close();for(let e of(console.log("[MuxProvider] Connected"),u("connected"),f.current=0,i.current.values())){let r={ch:"terminal",id:e.id,type:"open",...e.projectId&&{projectId:e.projectId},...e.tmuxName&&{tmuxName:e.tmuxName}};t.send(JSON.stringify(r))}t.send(JSON.stringify({ch:"subscribe",topics:["sessions"]}))}),t.addEventListener("message",e=>{try{let t=JSON.parse(e.data);if("terminal"===t.ch){let e=c(t.id,"projectId"in t?t.projectId:void 0);if("data"===t.type){let r=o.current.get(e);if(r)for(let e of r)e(t.data)}else if("opened"===t.type)i.current.has(e)||i.current.set(e,{id:t.id,..."projectId"in t&&t.projectId?{projectId:t.projectId}:{}});else if("exited"===t.type){i.current.delete(e);let r=o.current.get(e);if(r){let e="\r\n\x1b[31m[Terminal exited with code ".concat(t.code,"]\x1b[0m\r\n");for(let t of r)t(e)}}else"error"===t.type&&console.error("[MuxProvider] Terminal error for ".concat(t.id,":"),t.message)}else"sessions"===t.ch&&("snapshot"===t.type?(m(t.sessions),j(null)):"error"===t.type&&j(t.error))}catch(e){console.error("[MuxProvider] Error processing message:",e)}}),t.addEventListener("error",e=>{console.error("[MuxProvider] WebSocket error:",e)}),t.addEventListener("close",()=>{if(console.log("[MuxProvider] Disconnected"),r.current===t&&(r.current=null),b.current)return;let e=Math.min(1e3*Math.pow(2,f.current),3e4);f.current+=1,u("reconnecting"),g.current=setTimeout(()=>{console.log("[MuxProvider] Reconnecting (attempt ".concat(f.current,")...")),_()},e)})}catch(e){console.error("[MuxProvider] Failed to create WebSocket:",e),u("disconnected")}}},[]);(0,s.useEffect)(()=>{b.current=!1;let e=!1;return(async()=>{try{let e=await fetch("/api/runtime/terminal");if(e.ok){let t=await e.json();v.current={directTerminalPort:function(e){if("string"!=typeof e&&"number"!=typeof e)return;let t=Number.parseInt(String(e),10);if(Number.isInteger(t)&&!(t<=0)&&!(t>65535))return String(t)}(t.directTerminalPort),proxyWsPath:function(e){if("string"!=typeof e)return;let t=e.trim();if(t.startsWith("/"))return t}(t.proxyWsPath)}}}catch(e){}e||_()})(),()=>{var t;e=!0,b.current=!0,g.current&&clearTimeout(g.current),null==(t=r.current)||t.close()}},[_]);let x=(0,s.useCallback)((e,t,n)=>{var s;let a=c(e,n),l=o.current.get(a);if(l||(l=new Set,o.current.set(a,l)),l.add(t),!i.current.has(a)&&(null==(s=r.current)?void 0:s.readyState)===WebSocket.OPEN){let t={ch:"terminal",id:e,type:"open",...n&&{projectId:n}};r.current.send(JSON.stringify(t))}return()=>{let e=o.current.get(a);e&&(e.delete(t),0===e.size&&o.current.delete(a))}},[]),y=(0,s.useCallback)((e,t,n)=>{var s;if((null==(s=r.current)?void 0:s.readyState)===WebSocket.OPEN){let s={ch:"terminal",id:e,type:"data",data:t,...n&&{projectId:n}};r.current.send(JSON.stringify(s))}},[]),N=(0,s.useCallback)((e,t,n)=>{var s;if(i.current.set(c(e,t),{id:e,projectId:t,tmuxName:n}),(null==(s=r.current)?void 0:s.readyState)===WebSocket.OPEN){let s={ch:"terminal",id:e,type:"open",...t&&{projectId:t},...n&&{tmuxName:n}};r.current.send(JSON.stringify(s))}},[]),w=(0,s.useCallback)((e,t)=>{var n;if(i.current.delete(c(e,t)),(null==(n=r.current)?void 0:n.readyState)===WebSocket.OPEN){let n={ch:"terminal",id:e,type:"close",...t&&{projectId:t}};r.current.send(JSON.stringify(n))}},[]),k=(0,s.useCallback)((e,t,n,s)=>{var a;if((null==(a=r.current)?void 0:a.readyState)===WebSocket.OPEN){let a={ch:"terminal",id:e,type:"resize",cols:t,rows:n,...s&&{projectId:s}};r.current.send(JSON.stringify(a))}},[]),S=(0,s.useMemo)(()=>({subscribeTerminal:x,writeTerminal:y,openTerminal:N,closeTerminal:w,resizeTerminal:k,status:d,sessions:p,lastError:h}),[x,y,N,w,k,d,p,h]);return(0,n.jsx)(l.Provider,{value:S,children:t})}},5425:(e,t,r)=>{r.d(t,{CM:()=>a,N_:()=>o,Rt:()=>l,SB:()=>s,U1:()=>c,tT:()=>i,u3:()=>n});let n={ACTIVE:"active",READY:"ready",IDLE:"idle",WAITING_INPUT:"waiting_input",BLOCKED:"blocked",EXITED:"exited"},s={SPAWNING:"spawning",WORKING:"working",DETECTING:"detecting",PR_OPEN:"pr_open",CI_FAILED:"ci_failed",REVIEW_PENDING:"review_pending",CHANGES_REQUESTED:"changes_requested",APPROVED:"approved",MERGEABLE:"mergeable",MERGED:"merged",CLEANUP:"cleanup",NEEDS_INPUT:"needs_input",STUCK:"stuck",ERRORED:"errored",IDLE:"idle",KILLED:"killed",DONE:"done",TERMINATED:"terminated"},a=new Set(["killed","terminated","done","cleanup","errored","merged"]),l=new Set(["exited"]),o=new Set([]);function i(e,t,r){var n;if((null==(n=e.metadata)?void 0:n.role)==="orchestrator")return!0;if(!t)return!1;let s=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(e.id==="".concat(t,"-orchestrator"))return!0;if(!new RegExp("^".concat(s,"-orchestrator-\\d+$")).test(e.id))return!1;if(r){for(let n of r)if(n!==t&&new RegExp("^".concat(n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"-\\d+$")).test(e.id))return!1}return!0}let c={PENDING:"pending",PASSING:"passing",FAILING:"failing",NONE:"none"}},6004:(e,t,r)=>{r.d(t,{U:()=>l});var n=r(3817),s=r(2286),a=r(6749);function l(e){let{className:t,label:r}=e,{resolvedTheme:l,setTheme:o}=(0,s.D)(),[i,c]=(0,a.useState)(!1);if((0,a.useEffect)(()=>c(!0),[]),!i)return(0,n.jsx)("div",{className:null!=t?t:"h-9 w-9"});let d="dark"===l;return(0,n.jsxs)("button",{onClick:()=>o(d?"light":"dark"),className:null!=t?t:"flex h-9 w-9 items-center justify-center border border-[var(--color-border-strong)] bg-[var(--color-bg-elevated)] text-[var(--color-text-primary)] transition-colors hover:bg-[var(--color-bg-elevated-hover)]","aria-label":"Switch to ".concat(d?"light":"dark"," mode"),title:"Switch to ".concat(d?"light":"dark"," mode"),children:[d?(0,n.jsxs)("svg",{className:"h-[18px] w-[18px]",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"5"}),(0,n.jsx)("path",{d:"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"})]}):(0,n.jsx)("svg",{className:"h-[18px] w-[18px]",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"})}),r?(0,n.jsx)("span",{children:r}):null]})}},7387:(e,t,r)=>{function n(e,t){let r=e.replace(/^(?:feat|fix|chore|refactor|docs|test|ci|session|orchestrator|release|hotfix|feature|bugfix|build|wip|improvement)\//,"");return t&&r===t?"":r.replace(/[-_]/g," ").replace(/\b\w/g,e=>e.toUpperCase()).trim()}function s(e){var t;if(null==(t=e.pr)?void 0:t.title)return e.pr.title;if(e.issueTitle)return e.issueTitle;if(e.displayName)return e.displayName;if(e.userPrompt)return e.userPrompt;if(e.branch){let t=n(e.branch,e.id);if(t)return t}let r=e.metadata.pinnedSummary;return r||(e.summary&&!e.summaryIsFallback||e.summary?e.summary:e.status)}function a(e){let t=Date.now()-e;if(t<6e4)return"just now";let r=Math.floor(t/6e4);if(r<60)return"".concat(r,"m ago");let n=Math.floor(r/60);if(n<24)return"".concat(n,"h ago");let s=Math.floor(n/24);if(s<7)return"".concat(s,"d ago");let a=Math.floor(s/7);return"".concat(a,"w ago")}r.d(t,{Pn:()=>s,fw:()=>a,mC:()=>n})},7594:(e,t,r)=>{var n=r(9582);r.o(n,"useParams")&&r.d(t,{useParams:function(){return n.useParams}}),r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}}),r.o(n,"useSearchParams")&&r.d(t,{useSearchParams:function(){return n.useSearchParams}})},8450:(e,t,r)=>{function n(e){return"/projects/".concat(encodeURIComponent(e))}function s(e,t){return"".concat(n(e),"/sessions/").concat(encodeURIComponent(t))}function a(e,t,r){return"".concat(s(e,t)).concat(r)}r.d(t,{$l:()=>a,Nc:()=>s,bn:()=>n})},9120:(e,t,r)=>{r.d(t,{D:()=>s,U:()=>a});var n=r(6749);let s=767;function a(e){let t="number"==typeof e?"(max-width: ".concat(e,"px)"):e,[r,s]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let e=window.matchMedia(t);s(e.matches);let r=e=>{s(e.matches)};return"function"==typeof e.addEventListener?(e.addEventListener("change",r),()=>{e.removeEventListener("change",r)}):(e.addListener(r),()=>{e.removeListener(r)})},[t]),r}},9293:(e,t,r)=>{r.d(t,{u:()=>T});var n=r(3817),s=r(8713),a=r.n(s),l=r(6749),o=r(7594),i=r(4901),c=r(545),d=r(5425),u=r(7387);function p(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:8;(0,l.useLayoutEffect)(()=>{if(!e)return;let n=t.current;if(!n)return;let s=()=>{n.style.transform="";let e=n.getBoundingClientRect(),t=window.innerWidth,s=0;e.left<r?s=r-e.left:e.right>t-r&&(s=t-r-e.right),0!==s&&(n.style.transform="translateX(".concat(s,"px)"))};return s(),window.addEventListener("resize",s),()=>{window.removeEventListener("resize",s),n.style.transform=""}},[e,t,r])}var m=r(8450),h=r(6004);let j="ao:add-project:recent";function f(e){var t;return(null!=(t=e.split("/").filter(Boolean).pop())?t:"project").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"project"}function g(e){var t;return(null!=(t=e.split("/").filter(Boolean).pop())?t:"Project").replace(/[-_]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,e=>e.toUpperCase())||"Project"}function v(e,t){return"~"===e?"~/".concat(t):"".concat(e.replace(/\/+$/,""),"/").concat(t)}function b(e){let{children:t,className:r,viewBox:s="0 0 16 16"}=e;return(0,n.jsx)("svg",{"aria-hidden":"true",viewBox:s,className:r,children:t})}let _={fill:"none",stroke:"currentColor",strokeWidth:1.75,strokeLinecap:"square"},x={fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"square",strokeLinejoin:"miter"};function y(){return(0,n.jsx)(b,{className:"add-project-modal__toolicon",children:(0,n.jsx)("path",{d:"M10 3.5 6 8l4 4.5",..._})})}function N(){return(0,n.jsx)(b,{className:"add-project-modal__toolicon",children:(0,n.jsx)("path",{d:"m6 3.5 4 4.5L6 12.5",..._})})}function w(){return(0,n.jsx)(b,{className:"add-project-modal__toolicon",children:(0,n.jsx)("path",{d:"M8 12V4m0 0L5 7m3-3 3 3",...x})})}function k(){return(0,n.jsx)(b,{className:"add-project-modal__toolicon",children:(0,n.jsx)("path",{d:"M12 5V2.75H9.75M4.5 11A4.75 4.75 0 0 0 12 5M3.75 11v2.25H6m5.5-8.25A4.75 4.75 0 0 1 4 11",...x})})}function S(e){let{open:t,onClose:r}=e,s=(0,o.useRouter)(),a=(0,l.useRef)(null),[i,c]=(0,l.useState)(!1),[d,u]=(0,l.useState)(null),[p,m]=(0,l.useState)(null),[h,b]=(0,l.useState)(null),[_,x]=(0,l.useState)("~"),[S,C]=(0,l.useState)("~"),[E,P]=(0,l.useState)(["~"]),[I,M]=(0,l.useState)(0),[R,T]=(0,l.useState)([]),[L,D]=(0,l.useState)(!1),[A,O]=(0,l.useState)(null),[W,U]=(0,l.useState)(""),[B,F]=(0,l.useState)(""),H=async(e,t)=>{D(!0),O(null);try{var r,n,s,a,l,o,i;let c=await fetch("/api/filesystem/browse?path=".concat(encodeURIComponent(e))).catch(()=>null);if(!c){T([]),C(null!=(r=null==t?void 0:t.selectedPath)?r:e),O("Failed to browse directories.");return}if(!c.ok){let r=await c.json().catch(()=>null);T([]),C(null!=(n=null==t?void 0:t.selectedPath)?n:e),O(null!=(s=null==r?void 0:r.error)?s:"Failed to browse directories.");return}let d=await c.json().catch(()=>null),u=null!=(a=null==t?void 0:t.mode)?a:"push",p=null!=(l=null==t?void 0:t.historyIndex)?l:I;x(e),C(null!=(o=null==t?void 0:t.selectedPath)?o:e),T(null!=(i=null==d?void 0:d.entries)?i:[]),"push"===u?P(t=>{let r=t.slice(0,p+1);return r[r.length-1]!==e&&r.push(e),M(r.length-1),r}):P(t=>{let r=[...t];return r[p]=e,r})}catch(e){O("Failed to browse directories.")}finally{D(!1)}};(0,l.useEffect)(()=>{var e;t&&(u(null),m(null),b(null),O(null),P(["~"]),M(0),x("~"),C("~"),U(""),F(""),null==(e=a.current)||e.focus(),H("~",{mode:"replace",selectedPath:"~"}))},[t]);let K=(0,l.useMemo)(()=>R.filter(e=>e.isDirectory),[R]),G=(0,l.useMemo)(()=>{var e;return null!=(e=K.find(e=>v(_,e.name)===S))?e:null},[_,K,S]),J=function(e){if("~"===e)return null;let t=e.split("/").filter(Boolean);return t.length<=1?"~":"~"===t[0]?"~/".concat(t.slice(1,-1).join("/")):t.slice(0,-1).join("/")}(_),z=I<E.length-1,V=W.trim()||(S.trim()&&"~"!==S?f(S):""),$=B.trim()||(S.trim()&&"~"!==S?g(S):""),q=""!==S.trim()&&"~"!==S&&!A&&!!(null==G?void 0:G.isGitRepo)&&V.length>0&&$.length>0,X=K.findIndex(e=>v(_,e.name)===S);(0,l.useEffect)(()=>{if(!S||"~"===S){U(""),F("");return}U(f(S)),F(g(S))},[S]),(0,l.useEffect)(()=>{if(!t)return;let e=e=>{var t;if((null==(t=a.current)?void 0:t.contains(document.activeElement))||document.activeElement===document.body){if("Escape"===e.key){e.preventDefault(),r();return}if((e.metaKey||e.ctrlKey)&&"Enter"===e.key&&q){e.preventDefault(),Z();return}if("ArrowDown"===e.key||"ArrowUp"===e.key){if(0===K.length)return;e.preventDefault();let t="ArrowDown"===e.key?1:-1,r=-1===X?t>0?0:K.length-1:Math.min(Math.max(X+t,0),K.length-1),n=K[r];n&&C(v(_,n.name));return}if("Enter"===e.key){if(X>=0){e.preventDefault(),H(S);return}q&&(e.preventDefault(),Z())}}};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[_,q,K,r,t,S,X]);let Z=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];u(null),m(null),b(null),c(!0);let t=S.trim();try{var n,a,l;let o=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:V,name:$,path:t,useDefaultProjectId:e})}),i=await o.json().catch(()=>null);if(409===o.status&&(null==i?void 0:i.existingProjectId)&&(null==i?void 0:i.suggestedProjectId)&&(null==i?void 0:i.suggestion)){b({error:null!=(n=i.error)?n:"A project with that ID already exists.",existingProjectId:i.existingProjectId,suggestedProjectId:i.suggestedProjectId,suggestion:i.suggestion}),U(i.suggestedProjectId);return}if(!o.ok){let e=null!=(a=null==i?void 0:i.error)?a:"Failed to add project.";o.status<500?u(e):m(e);return}let c=[t,...(function(){try{var e;let t=JSON.parse(null!=(e=window.localStorage.getItem(j))?e:"[]");return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch(e){return[]}})().filter(e=>e!==t)].slice(0,5);window.localStorage.setItem(j,JSON.stringify(c));let d=null!=(l=null==i?void 0:i.projectId)?l:V.trim();r(),s.push("/projects/".concat(encodeURIComponent(d))),s.refresh()}catch(e){m("Network error while adding project.")}finally{c(!1)}};if(!t)return null;let Q=e=>{var t;e<0||e>=E.length||(M(e),H(null!=(t=E[e])?t:"~",{mode:"replace",historyIndex:e}))},Y=h?(0,n.jsxs)("div",{className:"add-project-modal__notice add-project-modal__notice--warning",children:[(0,n.jsx)("p",{className:"add-project-modal__notice-title",children:h.error}),(0,n.jsxs)("p",{className:"add-project-modal__notice-copy",children:["Existing project: ",(0,n.jsx)("code",{children:h.existingProjectId})]}),(0,n.jsxs)("p",{className:"add-project-modal__notice-copy",children:["Suggested project ID: ",(0,n.jsx)("code",{children:h.suggestedProjectId})]}),(0,n.jsxs)("div",{className:"add-project-modal__notice-actions",children:[(0,n.jsx)("button",{type:"button",onClick:()=>{r(),s.push("/projects/".concat(encodeURIComponent(h.existingProjectId)))},className:"add-project-modal__ghostbtn",children:"Open existing"}),(0,n.jsx)("button",{type:"button",onClick:()=>void Z(!0),className:"add-project-modal__ghostbtn",children:"Use suggested ID"}),(0,n.jsx)("span",{className:"add-project-modal__notice-hint",children:"Edit the Project ID field or accept the suggested suffix."})]})]}):d?(0,n.jsx)("div",{role:"alert",className:"add-project-modal__notice add-project-modal__notice--error",children:d}):G&&!G.isGitRepo?(0,n.jsx)("div",{role:"alert",className:"add-project-modal__notice add-project-modal__notice--error",children:"Selected folder is not a git repository."}):p?(0,n.jsx)("div",{className:"add-project-modal__notice add-project-modal__notice--error",children:p}):null;return(0,n.jsx)("div",{className:"add-project-modal-backdrop",children:(0,n.jsxs)("div",{ref:a,role:"dialog","aria-modal":"true","aria-label":"Add project",className:"add-project-modal",tabIndex:-1,children:[(0,n.jsxs)("div",{className:"add-project-modal__titlebar",children:[(0,n.jsx)("h2",{className:"add-project-modal__windowtitle",children:"add project"}),(0,n.jsx)("button",{type:"button","aria-label":"Close",onClick:r,className:"add-project-modal__iconbtn",children:"\xd7"})]}),(0,n.jsxs)("div",{className:"add-project-modal__toolbar",children:[(0,n.jsxs)("div",{className:"add-project-modal__toolbarcluster",children:[(0,n.jsx)("button",{type:"button",onClick:()=>Q(I-1),disabled:!(I>0),className:"add-project-modal__toolbtn","aria-label":"Go back",children:(0,n.jsx)(y,{})}),(0,n.jsx)("button",{type:"button",onClick:()=>Q(I+1),disabled:!z,className:"add-project-modal__toolbtn","aria-label":"Go forward",children:(0,n.jsx)(N,{})}),(0,n.jsx)("button",{type:"button",onClick:()=>J&&void H(J),disabled:!J,className:"add-project-modal__toolbtn","aria-label":"Go up",children:(0,n.jsx)(w,{})}),(0,n.jsx)("button",{type:"button",onClick:()=>void H(_,{mode:"replace",selectedPath:S}),className:"add-project-modal__toolbtn","aria-label":"Refresh",children:(0,n.jsx)(k,{})})]}),(0,n.jsx)("div",{className:"add-project-modal__location",children:_})]}),(0,n.jsx)("div",{className:"add-project-modal__content",children:(0,n.jsxs)("div",{className:"add-project-browser",children:[(0,n.jsxs)("div",{className:"add-project-browser__current",children:[(0,n.jsx)("div",{className:"add-project-browser__current-label",children:"Current folder"}),(0,n.jsx)("div",{className:"add-project-browser__current-path",children:_})]}),A?(0,n.jsxs)("div",{className:"add-project-browser__state add-project-browser__state--error",children:[(0,n.jsx)("p",{className:"add-project-browser__state-title",children:"Directory browser unavailable"}),(0,n.jsx)("p",{className:"add-project-browser__state-copy",children:A})]}):L?(0,n.jsxs)("div",{className:"add-project-browser__state",children:[(0,n.jsx)("p",{className:"add-project-browser__state-title",children:"Loading folders"}),(0,n.jsx)("p",{className:"add-project-browser__state-copy",children:"Fetching directories for this location."})]}):0===K.length?(0,n.jsxs)("div",{className:"add-project-browser__state",children:[(0,n.jsx)("p",{className:"add-project-browser__state-title",children:"No visible folders here"}),(0,n.jsx)("p",{className:"add-project-browser__state-copy",children:"Try navigating up or picking a different location."})]}):(0,n.jsxs)("div",{className:"add-project-browser__rows",children:[J?(0,n.jsx)("button",{type:"button",onClick:()=>void H(J),className:"add-project-browser__row add-project-browser__row--parent",children:".."}):null,K.map(e=>{let t=v(_,e.name);return(0,n.jsx)("button",{type:"button",onClick:()=>C(t),onDoubleClick:()=>void H(t),className:"add-project-browser__row".concat(S===t?" is-selected":""),children:e.name},t)})]})]})}),(0,n.jsxs)("div",{className:"add-project-modal__pathbar add-project-modal__pathbar--selection",children:[(0,n.jsx)("span",{className:"add-project-modal__selection-label",children:"Selected"}),(0,n.jsx)("span",{className:"add-project-modal__selection-path",children:S||"No directory selected"})]}),(0,n.jsxs)("div",{className:"add-project-modal__pathbar add-project-modal__pathbar--selection",children:[(0,n.jsx)("label",{className:"add-project-modal__selection-label",htmlFor:"project-id-input",children:"Project ID"}),(0,n.jsx)("input",{id:"project-id-input",value:W,onChange:e=>U(e.target.value),className:"add-project-modal__selection-path"})]}),(0,n.jsxs)("div",{className:"add-project-modal__pathbar add-project-modal__pathbar--selection",children:[(0,n.jsx)("label",{className:"add-project-modal__selection-label",htmlFor:"project-name-input",children:"Project name"}),(0,n.jsx)("input",{id:"project-name-input",value:B,onChange:e=>F(e.target.value),className:"add-project-modal__selection-path"})]}),Y,(0,n.jsxs)("div",{className:"add-project-modal__footer",children:[(0,n.jsxs)("div",{className:"add-project-modal__foldercount",children:[K.length," folders"]}),(0,n.jsxs)("div",{className:"add-project-modal__actions",children:[(0,n.jsx)("button",{type:"button",onClick:r,className:"add-project-modal__ghostbtn",children:"Cancel"}),(0,n.jsx)("button",{type:"button",onClick:()=>void Z(),disabled:!q||i,className:"add-project-modal__primarybtn",children:i?"Adding…":"Add project"})]})]})]})})}var C=r(2749);function E(e){var t;let{open:r,projectId:s,onClose:a}=e,o=(0,l.useRef)(null),[i,c]=(0,l.useState)(!1),[d,u]=(0,l.useState)(null),[p,m]=(0,l.useState)(null);(0,l.useEffect)(()=>{var e;r&&s&&(null==(e=o.current)||e.focus())},[r,s]),(0,l.useEffect)(()=>{if(!r)return;let e=e=>{"Escape"===e.key&&(e.preventDefault(),a())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[r,a]),(0,l.useEffect)(()=>{if(!r||!s){m(null),u(null),c(!1);return}let e=!1;return c(!0),u(null),m(null),fetch("/api/projects/".concat(encodeURIComponent(s))).then(async t=>{let r=await t.json().catch(()=>null);if(!t.ok||!(null==r?void 0:r.project)||r.degraded){var n;throw Error(null!=(n=null==r?void 0:r.error)?n:"Failed to load project settings.")}e||m(r.project)}).catch(t=>{e||u(t instanceof Error?t.message:"Failed to load project settings.")}).finally(()=>{e||c(!1)}),()=>{e=!0}},[r,s]);let h=(0,l.useMemo)(()=>{var e,t,r,n,a,l,o,i,c;return p&&s?{agent:null!=(r=p.agent)?r:"",runtime:null!=(n=p.runtime)?n:"",trackerPlugin:null!=(a=null==(e=p.tracker)?void 0:e.plugin)?a:"",scmPlugin:null!=(l=null==(t=p.scm)?void 0:t.plugin)?l:"",reactions:JSON.stringify(null!=(o=p.reactions)?o:{},null,2),identity:{projectId:s,path:p.path,repo:null!=(i=p.repo)?i:"",defaultBranch:null!=(c=p.defaultBranch)?c:"main"}}:null},[p,s]);return r&&s?(0,n.jsx)("div",{className:"project-settings-modal-backdrop",onClick:a,children:(0,n.jsxs)("div",{ref:o,role:"dialog","aria-modal":"true","aria-label":"Project settings",className:"project-settings-modal",tabIndex:-1,onClick:e=>e.stopPropagation(),children:[(0,n.jsxs)("div",{className:"project-settings-modal__header",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"project-settings-modal__eyebrow",children:"Project settings"}),(0,n.jsx)("h2",{className:"project-settings-modal__title",children:null!=(t=null==p?void 0:p.name)?t:s})]}),(0,n.jsx)("button",{type:"button","aria-label":"Close",onClick:a,className:"project-settings-modal__close",children:"\xd7"})]}),(0,n.jsxs)("div",{className:"project-settings-modal__body",children:[i?(0,n.jsx)("div",{className:"project-settings-modal__state",children:"Loading project settings…"}):null,!i&&d?(0,n.jsx)("div",{role:"alert",className:"project-settings-modal__state project-settings-modal__state--error",children:d}):null,i||d||!h?null:(0,n.jsx)(C.ProjectSettingsForm,{projectId:s,initialValues:h})]})]})}):null}function P(e){let{level:t}=e;return(0,n.jsx)("div",{className:(0,i.cn)("sidebar-session-dot shrink-0 rounded-full","working"===t&&"sidebar-session-dot--glow"),"data-level":t})}let I="ao:sidebar:show-session-id";function M(){try{return"true"===window.localStorage.getItem(I)}catch(e){return!1}}let R={working:"working",pending:"pending",review:"review",respond:"respond",action:"action",merge:"merge",done:"done"};function T(e){return 0===e.projects.length?(0,n.jsx)(L,{collapsed:e.collapsed}):(0,n.jsx)(D,{...e})}function L(e){let{collapsed:t=!1}=e,[r,s]=(0,l.useState)(!1);return t?(0,n.jsxs)("aside",{className:"project-sidebar project-sidebar--collapsed flex h-full flex-col items-center gap-1 py-2",children:[(0,n.jsx)("button",{type:"button",className:"project-sidebar__add-btn","aria-label":"New project",onClick:()=>s(!0),children:(0,n.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M12 5v14M5 12h14"})})}),(0,n.jsx)(S,{open:r,onClose:()=>s(!1)})]}):(0,n.jsxs)("aside",{className:"project-sidebar flex h-full flex-col",children:[(0,n.jsxs)("div",{className:"project-sidebar__compact-hdr",children:[(0,n.jsx)("span",{className:"project-sidebar__sect-label",children:"Projects"}),(0,n.jsx)("button",{type:"button",className:"project-sidebar__add-btn","aria-label":"New project",onClick:()=>s(!0),children:(0,n.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M12 5v14M5 12h14"})})})]}),(0,n.jsx)("div",{className:"project-sidebar__empty flex-1 text-[var(--color-text-tertiary)]",children:"No projects yet. Click + to add one."}),(0,n.jsx)("div",{className:"project-sidebar__footer",children:(0,n.jsx)("div",{className:"flex items-center justify-end gap-1 border-t border-[var(--color-border-subtle)] px-2 py-2",children:(0,n.jsx)(h.U,{className:"project-sidebar__theme-toggle"})})}),(0,n.jsx)(S,{open:r,onClose:()=>s(!1)})]})}function D(e){let{projects:t,sessions:r,orchestrators:s,activeProjectId:j,activeSessionId:f,loading:g=!1,error:v=!1,onRetry:b,collapsed:_=!1,onToggleCollapsed:x,onMobileClose:y}=e,N=(0,o.useRouter)(),w=g||null===r,[k,C]=(0,l.useState)(()=>new Set(j&&"all"!==j?[j]:[])),[T,L]=(0,l.useState)(!1),[D,A]=(0,l.useState)(!1),[O,W]=(0,l.useState)(M),[U,B]=(0,l.useState)(!1),[F,H]=(0,l.useState)(null),[K,G]=(0,l.useState)(null),[J,z]=(0,l.useState)(null),[V,$]=(0,l.useState)(new Set),[q,X]=(0,l.useState)(!1),Z=(0,l.useRef)(null),Q=(0,l.useRef)(null),Y=(0,l.useRef)(null),ee=(0,l.useRef)(null);p(U,Q),p(!!F,ee),(0,l.useEffect)(()=>{try{window.localStorage.setItem(I,String(O))}catch(e){}},[O]),(0,l.useEffect)(()=>{if(!U)return;let e=e=>{Z.current&&!Z.current.contains(e.target)&&B(!1)},t=e=>{"Escape"===e.key&&B(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[U]),(0,l.useEffect)(()=>{if(!F)return;let e=e=>{Y.current&&!Y.current.contains(e.target)&&H(null)},t=e=>{"Escape"===e.key&&H(null)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[F]),(0,l.useEffect)(()=>{j&&"all"!==j&&C(e=>new Set([...e,j]))},[j]),(0,l.useEffect)(()=>{$(e=>{if(0===e.size)return e;let r=new Set([...e].filter(e=>!t.some(t=>t.id===e)));return r.size===e.size?e:r})},[t]);let et=(0,l.useMemo)(()=>t.filter(e=>!V.has(e.id)),[t,V]),er=(0,l.useMemo)(()=>new Map(et.map(e=>{var t;return[e.id,null!=(t=e.sessionPrefix)?t:e.id]})),[et]),en=(0,l.useMemo)(()=>et.map(e=>{var t;return null!=(t=e.sessionPrefix)?t:e.id}),[et]),es=(0,l.useMemo)(()=>new Map((null!=s?s:[]).map(e=>[e.projectId,e])),[s]),ea=(0,l.useMemo)(()=>{let e=new Map,t=new Set(et.map(e=>e.id));for(let s of null!=r?r:[]){var n;if(!t.has(s.projectId)||(0,d.tT)(s,er.get(s.projectId),en)||"done"===(0,c.ng)(s)&&("killed"===s.status?!T&&!D:!D))continue;let r=null!=(n=e.get(s.projectId))?n:[];r.push(s),e.set(s.projectId,r)}return e},[r,er,en,et,T,D]),el=(e,t)=>{if(t)try{sessionStorage.setItem("ao-session-nav:".concat(t.id),JSON.stringify(t))}catch(e){}N.push(e),null==y||y()},eo=async e=>{if(window.confirm("Remove project ".concat(e.name," from AO? This clears its AO sessions/history and removes it from the portfolio, but keeps the repository folder on disk."))){z(e.id);try{let r=await fetch("/api/projects/".concat(encodeURIComponent(e.id)),{method:"DELETE"}),n=await r.json().catch(()=>null);if(!r.ok){var t;throw Error(null!=(t=n&&"object"==typeof n&&"error"in n&&"string"==typeof n.error?n.error:null)?t:"Failed to remove project.")}$(t=>new Set(t).add(e.id)),C(t=>{let r=new Set(t);return r.delete(e.id),r}),H(null),j===e.id?N.push("/"):"refresh"in N&&"function"==typeof N.refresh&&N.refresh(),null==y||y()}catch(e){window.alert(e instanceof Error?e.message:"Failed to remove project.")}finally{z(null)}}};return _?(0,n.jsx)("aside",{className:(0,i.cn)("project-sidebar project-sidebar--collapsed flex flex-col h-full items-center py-2 gap-1 overflow-y-auto"),children:et.map((e,t)=>{var r;let s=null!=(r=ea.get(e.id))?r:[],a=e.name.slice(0,2).toUpperCase();return(0,n.jsxs)("div",{className:"flex flex-col items-center gap-0.5 w-full px-1",children:[t>0&&(0,n.jsx)("div",{className:"project-sidebar__collapsed-divider","aria-hidden":"true"}),(0,n.jsx)("a",{href:(0,m.bn)(e.id),className:(0,i.cn)("project-sidebar__collapsed-icon",j===e.id&&"project-sidebar__collapsed-icon--active"),title:e.name,"aria-label":e.name,children:(0,n.jsx)("span",{className:"project-sidebar__collapsed-abbr",children:a})}),s.slice(0,5).map(t=>{var r;let s=(0,c.ng)(t),a=null!=(r=t.branch)?r:(0,u.Pn)(t),l=(t.branch&&(0,u.mC)(t.branch)||a).replace(/\s+/g,"").slice(0,3).toUpperCase(),o=f===t.id,d=(0,m.Nc)(e.id,t.id);return(0,n.jsxs)("a",{href:d,onClick:e=>{e.metaKey||e.ctrlKey||e.shiftKey||1===e.button||(e.preventDefault(),el(d,t))},className:(0,i.cn)("project-sidebar__collapsed-session-btn",o&&"project-sidebar__collapsed-session-btn--active"),"data-level":s,title:a,"aria-label":a,children:[(0,n.jsx)("span",{className:"project-sidebar__session-abbr-first",children:l[0]}),(0,n.jsx)("span",{className:"project-sidebar__session-abbr-rest",children:l.slice(1)})]},t.id)}),s.length>5&&(0,n.jsxs)("span",{className:"project-sidebar__collapsed-overflow",children:["+",s.length-5]})]},e.id)})}):(0,n.jsxs)("aside",{className:"project-sidebar flex h-full flex-col",children:[(0,n.jsxs)("div",{className:"project-sidebar__compact-hdr",children:[(0,n.jsx)("span",{className:"project-sidebar__sect-label",children:"Projects"}),(0,n.jsx)("button",{type:"button",className:"project-sidebar__add-btn","aria-label":"New project",onClick:()=>X(!0),children:(0,n.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M12 5v14M5 12h14"})})})]}),v&&r&&r.length>0?(0,n.jsxs)("div",{role:"status",className:"mx-3 mb-2 flex items-center justify-between gap-2 rounded-md border border-[var(--color-border-strong)] bg-[var(--color-bg-primary)] px-2 py-1.5 text-[11px] text-[var(--color-text-tertiary)]",children:[(0,n.jsx)("span",{children:"Failed to refresh \xb7 showing cached sessions"}),b?(0,n.jsx)("button",{type:"button",onClick:b,className:"font-medium text-[var(--color-link)] hover:underline",children:"Retry"}):null]}):null,(0,n.jsx)("div",{className:"project-sidebar__tree flex-1 overflow-y-auto overflow-x-hidden",children:et.map(e=>{var t,r;let s=null!=(t=ea.get(e.id))?t:[],l=k.has(e.id),o=j===e.id,d=!!e.resolveError,p=(0,m.bn)(e.id),h=s.length>0,g=null!=(r=es.get(e.id))?r:null;return(0,n.jsxs)("div",{className:"project-sidebar__project",children:[(0,n.jsxs)("div",{className:"project-sidebar__proj-row flex items-center",children:[d?(0,n.jsxs)("a",{href:p,onClick:e=>{e.metaKey||e.ctrlKey||e.shiftKey||1===e.button||(e.preventDefault(),el(p))},className:(0,i.cn)("project-sidebar__proj-toggle project-sidebar__proj-toggle--link project-sidebar__proj-toggle--degraded",o&&"project-sidebar__proj-toggle--active"),"aria-current":o?"page":void 0,children:[(0,n.jsxs)("svg",{className:"project-sidebar__proj-chevron project-sidebar__proj-chevron--degraded",width:"10",height:"10",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M12 9v4"}),(0,n.jsx)("path",{d:"M12 17h.01"}),(0,n.jsx)("path",{d:"M10.3 3.86 1.82 18a2 2 0 0 0 1.72 3h16.92a2 2 0 0 0 1.72-3L13.7 3.86a2 2 0 0 0-3.4 0Z"})]}),(0,n.jsx)("span",{className:"project-sidebar__proj-name",children:e.name}),(0,n.jsx)("span",{className:"project-sidebar__proj-badge project-sidebar__proj-badge--degraded",children:"degraded"})]}):(0,n.jsxs)("button",{type:"button",onClick:()=>{var t;return t=e.id,void C(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r})},className:(0,i.cn)("project-sidebar__proj-toggle",o&&"project-sidebar__proj-toggle--active"),"aria-expanded":l,"aria-current":o?"page":void 0,children:[(0,n.jsx)("svg",{className:(0,i.cn)("project-sidebar__proj-chevron",l&&"project-sidebar__proj-chevron--open"),width:"10",height:"10",fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"m9 18 6-6-6-6"})}),(0,n.jsx)("span",{className:"project-sidebar__proj-name",children:e.name}),(0,n.jsx)("span",{className:(0,i.cn)("project-sidebar__proj-badge",h&&"project-sidebar__proj-badge--active"),children:s.length})]}),d?null:(0,n.jsx)(a(),{href:p,onClick:e=>{e.stopPropagation(),null==y||y()},className:"project-sidebar__proj-action","aria-label":"Open ".concat(e.name," dashboard"),title:"Dashboard",children:(0,n.jsx)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M3 13h8V3H3zm10 8h8V11h-8zM3 21h8v-6H3zm10-10h8V3h-8z"})})}),!d&&g&&(0,n.jsx)(a(),{href:(0,m.Nc)(e.id,g.id),onClick:e=>{e.stopPropagation(),null==y||y()},className:"project-sidebar__proj-action","aria-label":"Open ".concat(e.name," orchestrator"),title:"Orchestrator",children:(0,n.jsxs)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,n.jsx)("circle",{cx:"12",cy:"5",r:"2",fill:"currentColor",stroke:"none"}),(0,n.jsx)("path",{d:"M12 7v4M12 11H6M12 11h6M6 11v3M12 11v3M18 11v3"}),(0,n.jsx)("circle",{cx:"6",cy:"17",r:"2"}),(0,n.jsx)("circle",{cx:"12",cy:"17",r:"2"}),(0,n.jsx)("circle",{cx:"18",cy:"17",r:"2"})]})}),(0,n.jsxs)("div",{className:"project-sidebar__proj-menu",ref:F===e.id?Y:void 0,children:[(0,n.jsx)("button",{type:"button",onClick:t=>{t.stopPropagation(),H(t=>t===e.id?null:e.id)},className:"project-sidebar__proj-action project-sidebar__proj-action--menu","aria-label":"Project actions for ".concat(e.name),"aria-expanded":F===e.id,"aria-haspopup":"menu",title:"Project actions",children:(0,n.jsxs)("svg",{width:"12",height:"12",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"5",r:"1.75"}),(0,n.jsx)("circle",{cx:"12",cy:"12",r:"1.75"}),(0,n.jsx)("circle",{cx:"12",cy:"19",r:"1.75"})]})}),F===e.id?(0,n.jsxs)("div",{ref:ee,className:"project-sidebar__proj-menu-popover",role:"menu","aria-label":"".concat(e.name," actions"),children:[g?(0,n.jsx)("button",{type:"button",className:"project-sidebar__proj-menu-item",role:"menuitem",onClick:()=>{H(null),el((0,m.Nc)(e.id,g.id))},children:"Open orchestrator"}):null,(0,n.jsx)("button",{type:"button",className:"project-sidebar__proj-menu-item",role:"menuitem",onClick:()=>{H(null),G(e.id)},children:"Project settings"}),(0,n.jsx)("button",{type:"button",className:"project-sidebar__proj-menu-item project-sidebar__proj-menu-item--danger",role:"menuitem",onClick:()=>void eo(e),disabled:J===e.id,children:J===e.id?"Removing...":"Remove project"})]}):null]})]}),d?(0,n.jsx)("div",{className:"project-sidebar__degraded-note",children:"Config needs repair"}):null,!d&&l&&(0,n.jsx)("div",{className:"project-sidebar__sessions",children:w?(0,n.jsx)("div",{className:"space-y-2 px-3 py-2","aria-label":"Loading sessions",children:Array.from({length:3},(t,r)=>(0,n.jsxs)("div",{className:"flex items-center gap-3 border border-[var(--color-border-subtle)] bg-[var(--color-bg-surface)] px-2 py-2",children:[(0,n.jsx)("div",{className:"h-2 w-2 shrink-0 animate-pulse bg-[var(--color-border-strong)]"}),(0,n.jsx)("div",{className:"h-3 flex-1 animate-pulse bg-[var(--color-bg-primary)]"}),(0,n.jsx)("div",{className:"h-3 w-12 animate-pulse bg-[var(--color-bg-primary)]"})]},"".concat(e.id,"-loading-").concat(r)))}):s.length>0?s.map(t=>{var r;let s=(0,c.ng)(t),a=f===t.id,l=null!=(r=t.branch)?r:(0,u.Pn)(t),o=(0,m.Nc)(e.id,t.id);return(0,n.jsxs)("a",{href:o,onClick:e=>{e.metaKey||e.ctrlKey||e.shiftKey||1===e.button||(e.preventDefault(),el(o,t))},className:(0,i.cn)("project-sidebar__sess-row",a&&"project-sidebar__sess-row--active"),"aria-current":a?"page":void 0,"aria-label":"Open ".concat(l),children:[(0,n.jsx)(P,{level:s}),(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsx)("span",{className:(0,i.cn)("project-sidebar__sess-label",a&&"project-sidebar__sess-label--active"),children:l}),O?(0,n.jsxs)("div",{className:"project-sidebar__sess-meta",children:[(0,n.jsx)("span",{className:"project-sidebar__sess-id",children:t.id}),(0,n.jsx)("span",{className:"project-sidebar__sess-status",children:R[s]})]}):null]}),O?null:(0,n.jsx)("span",{className:"project-sidebar__sess-status project-sidebar__sess-status--inline",children:R[s]})]},t.id)}):v?(0,n.jsxs)("div",{className:"px-3 py-2",children:[(0,n.jsx)("div",{className:"project-sidebar__empty",children:"Failed to load sessions"}),(0,n.jsx)("button",{type:"button",className:"mt-2 text-xs font-medium text-[var(--color-link)] hover:underline",onClick:b,children:"Retry"})]}):(0,n.jsx)("div",{className:"project-sidebar__empty",children:"No sessions shown"})})]},e.id)})}),(0,n.jsx)("div",{className:"project-sidebar__footer",children:(0,n.jsxs)("div",{className:"flex items-center gap-1 border-t border-[var(--color-border-subtle)] px-2 py-2",children:[(0,n.jsx)("button",{type:"button",onClick:()=>L(!T),className:(0,i.cn)("project-sidebar__footer-btn",T&&"project-sidebar__footer-btn--active"),"aria-pressed":T,title:T?"Hide killed sessions":"Show killed sessions","aria-label":T?"Hide killed sessions":"Show killed sessions",children:(0,n.jsxs)("svg",{width:"13",height:"13",fill:"none",stroke:"currentColor",strokeWidth:"1.75",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,n.jsx)("path",{d:"M12 3C7.03 3 3 7.03 3 12c0 3.1 1.5 5.84 3.8 7.55V21h2.4v-1h1.6v1h2.4v-1h1.6v1H17v-1.45A9 9 0 0 0 21 12c0-4.97-4.03-9-9-9z"}),(0,n.jsx)("circle",{cx:"9",cy:"11",r:"1.5",fill:"currentColor",stroke:"none"}),(0,n.jsx)("circle",{cx:"15",cy:"11",r:"1.5",fill:"currentColor",stroke:"none"})]})}),(0,n.jsx)("button",{type:"button",onClick:()=>A(!D),className:(0,i.cn)("project-sidebar__footer-btn",D&&"project-sidebar__footer-btn--active"),"aria-pressed":D,title:D?"Hide completed sessions":"Show completed sessions","aria-label":D?"Hide completed sessions":"Show completed sessions",children:(0,n.jsx)("svg",{width:"13",height:"13",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M20 6 9 17l-5-5"})})}),(0,n.jsx)("div",{className:"flex-1"}),(0,n.jsxs)("div",{className:"project-sidebar__settings-wrap",ref:Z,children:[(0,n.jsx)("button",{type:"button",onClick:()=>B(e=>!e),className:(0,i.cn)("project-sidebar__footer-btn",U&&"project-sidebar__footer-btn--active"),"aria-expanded":U,"aria-haspopup":"dialog",title:"Sidebar settings","aria-label":"Sidebar settings",children:(0,n.jsxs)("svg",{width:"13",height:"13",fill:"none",stroke:"currentColor",strokeWidth:"1.75",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,n.jsx)("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})]})}),U?(0,n.jsx)("div",{ref:Q,className:"project-sidebar__settings-popover",role:"dialog","aria-label":"Sidebar settings",children:(0,n.jsxs)("label",{className:"project-sidebar__settings-row",children:[(0,n.jsx)("input",{type:"checkbox",checked:O,onChange:e=>W(e.target.checked)}),(0,n.jsx)("span",{children:"Show session ID"})]})}):null]}),(0,n.jsx)(h.U,{className:"project-sidebar__theme-toggle"})]})}),(0,n.jsx)(S,{open:q,onClose:()=>X(!1)}),(0,n.jsx)(E,{open:null!==K,projectId:K,onClose:()=>G(null)})]})}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4465],{2466:(e,s,r)=>{r.d(s,{I:()=>a});let a=(0,r(6749).createContext)(null)},4465:(e,s,r)=>{r.d(s,{Dashboard:()=>O});var a=r(3817),t=r(6749),n=r(8713),o=r.n(n),l=r(7594),i=r(9120),c=r(545),d=r(4901),h=r(7387),u=r(4906),x=r(1237),p=r(8450);let m=new Set,v=(0,t.memo)(function(e){var s,r,n,o,l,i;let{session:v,onSend:g,onKill:b,onMerge:j,onRestore:f}=e,[k,_]=(0,t.useState)(!1),[N,w]=(0,t.useState)(null),[y,C]=(0,t.useState)(null),[M,S]=(0,t.useState)(null),[P,R]=(0,t.useState)(null),[W,I]=(0,t.useState)(!1),[T,A]=(0,t.useState)(""),B=(0,t.useRef)(null),D=(0,t.useRef)(null),[O]=(0,t.useState)(()=>m.has(v.id));(0,t.useEffect)(()=>{if(O)return;let e=window.requestAnimationFrame(()=>{m.add(v.id)});return()=>{window.cancelAnimationFrame(e)}},[O,v.id]);let F=(0,c.ng)(v),L=v.pr,E=async e=>{let s=e.trim();if(!s||null!==M)return!1;S(s),R(null);try{return await Promise.resolve(null==g?void 0:g(v.id,s)),R(s),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>R(null),2e3),!0}catch(e){return!1}finally{S(null)}},H=async e=>{"Enter"===e.key&&!e.shiftKey&&(e.preventDefault(),await E(T)&&A(""))};(0,t.useEffect)(()=>()=>{B.current&&clearTimeout(B.current),D.current&&clearTimeout(D.current)},[]);let K=async(e,s)=>{if(null===N){w(e),C(null);try{await Promise.resolve(null==g?void 0:g(v.id,s)),B.current&&clearTimeout(B.current),B.current=setTimeout(()=>w(null),2e3)}catch(s){w(null),C(e),B.current&&clearTimeout(B.current),B.current=setTimeout(()=>C(null),2e3)}}},Z=!!L&&(0,c.fZ)(L),q=!!L&&(0,c.sZ)(L),U=function(e){var s,r,t,n,o;let l=e.pr;if(!l||"open"!==l.state||(0,c.fZ)(l)||(0,c.sZ)(l))return[];let i=e.metadata,d=[],h=null!=(r=null==(s=e.lifecycle)?void 0:s.prReason)?r:null,u=i.status,x=l.ciStatus===c.U1.FAILING||"ci_failing"===h||"ci_failed"===u,p="changes_requested"===l.reviewDecision||"changes_requested"===h||"changes_requested"===u,m=!l.mergeability.noConflicts;if(x){let e=l.ciChecks.find(e=>"failed"===e.status),s=l.ciChecks.filter(e=>"failed"===e.status).length;0===s&&l.ciStatus!==c.U1.FAILING?d.push({key:"ci-fail",type:"ci",icon:"✗",label:"CI failing",url:l.url+"/checks",notified:!!i.lastCIFailureDispatchHash,actionLabel:"Ask to fix",actionMessage:"Please fix the failing CI checks on ".concat(l.url)}):0===s?d.push({key:"ci-unknown",type:"ci",icon:"?",label:"CI unknown",url:l.url+"/checks"}):d.push({key:"ci-fail",type:"ci",icon:"✗",count:s,label:"check".concat(s>1?"s":""," failing"),url:null!=(t=null==e?void 0:e.url)?t:l.url+"/checks",notified:!!i.lastCIFailureDispatchHash,actionLabel:"Ask to fix",actionMessage:"Please fix the failing CI checks on ".concat(l.url)})}if(p?d.push({key:"changes",type:"changes",icon:"↻",label:"changes requested",url:l.url,notified:!!i.lastPendingReviewDispatchHash,actionLabel:"Ask to address",actionMessage:"Please address the requested changes on ".concat(l.url)}):l.isDraft||"pending"!==l.reviewDecision&&"none"!==l.reviewDecision||d.push({key:"review",type:"review",icon:(0,a.jsxs)("svg",{width:"9",height:"9",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"}),(0,a.jsx)("circle",{cx:"9",cy:"7",r:"4"}),(0,a.jsx)("path",{d:"M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"})]}),label:"needs review",url:l.url,actionLabel:"Ask to post",actionMessage:"Post ".concat(l.url," on slack asking for a review.")}),m&&d.push({key:"conflict",type:"conflict",icon:"⚠",label:"merge conflict",url:l.url,notified:"true"===i.lastMergeConflictDispatched,actionLabel:"Ask to fix",actionMessage:"Please resolve the merge conflicts on ".concat(l.url," by rebasing on the base branch")}),l.unresolvedThreads>0){let e=null!=(o=null==(n=l.unresolvedComments[0])?void 0:n.url)?o:l.url+"/files";d.push({key:"comments",type:"comment",icon:"\uD83D\uDCAC",label:"unresolved comments",count:l.unresolvedThreads,url:e,actionLabel:"Ask to resolve",actionMessage:"Please address all unresolved review comments on ".concat(l.url)})}return d}(v),z=!Z&&(null==L?void 0:L.mergeability.mergeable)&&"open"===L.state,V=(0,c.nH)(v),G=(0,c.wy)(v),J=(0,h.Pn)(v),Q=(n=v,o=F,z||"merge"===o?"mergeable":(null==(l=n.lifecycle)?void 0:l.sessionState)==="detecting"?"detecting":"respond"===o?(0,c.Ou)(n):(null==(i=n.lifecycle)?void 0:i.prReason)==="ci_failing"||"ci_failed"===n.status?"ci failing":"review"===o?(0,c.of)(n):(0,c.Ou)(n)),$=Z||!L||q?[]:L.ciChecks.filter(e=>"passed"===e.status).slice(0,3),X=(0,c.dG)(v)||"done"===F,Y=v.lifecycle?["Session ".concat((0,c.Ou)(v)),"PR ".concat((0,c.of)(v)),"Runtime ".concat((0,c.Kw)(v))].join(" \xb7 "):null,ee=v.issueLabel?"".concat(v.issueLabel).concat(v.issueTitle?" \xb7 ".concat(v.issueTitle):""):null!=(s=v.issueTitle)?s:v.summary&&v.summary!==J?v.summary:null,es=z?"session-card--merge-frame":U.length>0?"session-card--alert-frame":"session-card--fixed",er=z?"session-card--accent-merge":"working"===F?"session-card--accent-working":"respond"===F?"session-card--accent-respond":"review"===F||"pending"===F?"session-card--accent-attention":"session-card--accent-default";if(X){let e=function(e){var s,r,t,n;let o=e.activity,l=e.status,i=null!=(n=null==(s=e.lifecycle)?void 0:s.prState)?n:null==(r=e.pr)?void 0:r.state;return"merged"===i||"merged"===l?{label:"merged",pillClass:"done-status-pill--merged",icon:(0,a.jsx)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24",className:"h-3 w-3",children:(0,a.jsx)("path",{d:"M20 6 9 17l-5-5"})})}:"closed"===i?{label:"closed",pillClass:"done-status-pill--exited",icon:(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",className:"h-3 w-3",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,a.jsx)("path",{d:"M9 12h6"})]})}:(null==(t=e.lifecycle)?void 0:t.sessionState)==="terminated"||"killed"===l||"terminated"===l?{label:(0,c.Ou)(e),pillClass:"done-status-pill--killed",icon:(0,a.jsx)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24",className:"h-3 w-3",children:(0,a.jsx)("path",{d:"M18 6 6 18M6 6l12 12"})})}:{label:"exited"===o?"exited":(0,c.Ou)(e),pillClass:"done-status-pill--exited",icon:(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",className:"h-3 w-3",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,a.jsx)("path",{d:"M9 12h6"})]})}}(v);return(0,a.jsxs)("div",{className:(0,d.cn)("session-card-done",k&&"done-expanded"),onClick:e=>{e.target.closest("a, button, textarea")||_(!k)},children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-3 pb-1.5",children:[(0,a.jsxs)("span",{className:(0,d.cn)("done-status-pill",e.pillClass),children:[e.icon,e.label]}),(0,a.jsx)("span",{className:"font-[var(--font-mono)] text-[10px] tracking-wide text-[var(--color-text-muted)]",children:v.id}),(0,a.jsx)("div",{className:"flex-1"}),G&&(0,a.jsxs)("button",{onClick:e=>{e.stopPropagation(),null==f||f(v.id)},className:"done-restore-btn",children:[(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",className:"h-3 w-3",children:[(0,a.jsx)("polyline",{points:"1 4 1 10 7 10"}),(0,a.jsx)("path",{d:"M3.51 15a9 9 0 1 0 2.13-9.36L1 10"})]}),"restore"]})]}),(0,a.jsx)("div",{className:"px-3.5 pb-2",children:(0,a.jsx)("p",{className:"session-card-done__title text-[13px] font-semibold leading-snug [display:-webkit-box] [-webkit-box-orient:vertical] [-webkit-line-clamp:2] overflow-hidden",children:J})}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 px-3.5 pb-3",children:[v.branch&&(0,a.jsxs)("span",{className:"done-meta-chip font-[var(--font-mono)]",children:[(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",className:"h-2.5 w-2.5 opacity-50",children:[(0,a.jsx)("path",{d:"M6 3v12M18 9a3 3 0 0 1-3 3H9a3 3 0 0 0-3 3"}),(0,a.jsx)("circle",{cx:"18",cy:"6",r:"3"})]}),v.branch]}),L&&(0,a.jsxs)("a",{href:L.url,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),className:"done-meta-chip font-[var(--font-mono)] font-bold text-[var(--color-text-primary)] no-underline underline-offset-2 hover:underline",children:["#",L.number]}),L&&!Z&&(q?(0,a.jsx)("span",{className:"inline-block h-[14px] w-16 animate-pulse rounded-full bg-[var(--color-bg-subtle)]"}):(0,a.jsxs)("span",{className:"done-meta-chip font-[var(--font-mono)]",children:[(0,a.jsxs)("span",{className:"text-[var(--color-status-ready)]",children:["+",L.additions]})," ",(0,a.jsxs)("span",{className:"text-[var(--color-status-error)]",children:["-",L.deletions]})," ",(0,x.i_)(L.additions,L.deletions),(0,a.jsx)("span",{className:"sr-only",children:"+".concat(L.additions," -").concat(L.deletions," ").concat((0,x.i_)(L.additions,L.deletions))})]})),(0,a.jsx)("a",{href:(0,p.Nc)(v.projectId,v.id),onClick:e=>e.stopPropagation(),className:"done-meta-chip font-[var(--font-mono)] font-semibold text-[var(--color-accent)] no-underline hover:underline",children:"View current context"})]}),k&&(0,a.jsxs)("div",{className:"done-expand-section px-3.5 py-3",children:[v.summary&&(null==L?void 0:L.title)&&v.summary!==L.title&&(0,a.jsxs)("div",{className:"mb-3",children:[(0,a.jsxs)("div",{className:"done-detail-heading",children:[(0,a.jsx)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M4 6h16M4 12h16M4 18h10"})}),"Summary"]}),(0,a.jsx)("p",{className:"text-[12px] leading-relaxed text-[var(--color-text-secondary)]",children:v.summary})]}),v.issueUrl&&(0,a.jsxs)("div",{className:"mb-3",children:[(0,a.jsxs)("div",{className:"done-detail-heading",children:[(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,a.jsx)("path",{d:"M12 8v4M12 16h.01"})]}),"Issue"]}),(0,a.jsxs)("a",{href:v.issueUrl,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),className:"text-[12px] text-[var(--color-accent)] hover:underline",children:[v.issueLabel||v.issueUrl,v.issueTitle&&": ".concat(v.issueTitle)]})]}),L&&L.ciChecks.length>0&&(0,a.jsxs)("div",{className:"mb-3",children:[(0,a.jsxs)("div",{className:"done-detail-heading",children:[(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("path",{d:"M9 12l2 2 4-4"}),(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10"})]}),"CI Checks"]}),(0,a.jsx)(u.zm,{checks:L.ciChecks})]}),L&&(0,a.jsxs)("div",{className:"mb-3",children:[(0,a.jsxs)("div",{className:"done-detail-heading",children:[(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65S8.93 17.38 9 18v4"}),(0,a.jsx)("path",{d:"M9 18c-4.51 2-5-2-7-2"})]}),"PR"]}),(0,a.jsxs)("p",{className:"text-[12px] text-[var(--color-text-secondary)]",children:[(0,a.jsx)("a",{href:L.url,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),className:"hover:underline",children:L.title}),q?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("br",{}),(0,a.jsxs)("span",{className:"mt-1 inline-flex items-center gap-2 text-[10px] text-[var(--color-text-muted)]",children:[(0,a.jsx)("span",{className:"inline-block h-3 w-12 animate-pulse rounded bg-[var(--color-bg-subtle)]"}),(0,a.jsx)("span",{children:"PR details loading..."})]})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("br",{}),(0,a.jsxs)("span",{className:"mt-1 inline-flex items-center gap-2",children:[(0,a.jsxs)("span",{className:"done-meta-chip font-[var(--font-mono)]",children:[(0,a.jsxs)("span",{className:"text-[var(--color-status-ready)]",children:["+",L.additions]})," ",(0,a.jsxs)("span",{className:"text-[var(--color-status-error)]",children:["-",L.deletions]})]}),(0,a.jsx)("span",{className:"text-[var(--color-text-muted)]",children:"\xb7"}),(0,a.jsxs)("span",{className:"text-[10px] text-[var(--color-text-muted)]",children:["mergeable: ",L.mergeability.mergeable?"yes":"no"]}),(0,a.jsx)("span",{className:"text-[var(--color-text-muted)]",children:"\xb7"}),(0,a.jsxs)("span",{className:"text-[10px] text-[var(--color-text-muted)]",children:["review: ",L.reviewDecision]})]})]})]})]}),!L&&(0,a.jsx)("p",{className:"text-[12px] text-[var(--color-text-tertiary)]",children:"No PR associated with this session."})]})]})}let ea=V?"exited":z||"merge"===F||"review"===F?"ready":"respond"===F?"waiting":"pending"===F?"idle":"working"===F?"working":"idle";return(0,a.jsxs)("div",{className:(0,d.cn)("session-card border",!O&&"kanban-card-enter",es,er,z&&"card-merge-ready"),children:[(0,a.jsxs)("div",{className:"session-card__header",children:[(0,a.jsx)("span",{className:(0,d.cn)("card__adot","working"===ea&&"card__adot--working","ready"===ea&&"card__adot--ready","idle"===ea&&"card__adot--idle","waiting"===ea&&"card__adot--waiting","exited"===ea&&"card__adot--exited")}),(0,a.jsx)("span",{className:"card__id",children:v.id}),(0,a.jsx)("div",{className:"flex-1"}),G&&(0,a.jsxs)("button",{onClick:e=>{e.stopPropagation(),null==f||f(v.id)},className:"session-card__control session-card__restore-control",children:[(0,a.jsxs)("svg",{className:"session-card__control-icon",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("path",{d:"M20 11a8 8 0 0 0-14.9-3.98"}),(0,a.jsx)("path",{d:"M4 5v4h4"}),(0,a.jsx)("path",{d:"M4 13a8 8 0 0 0 14.9 3.98"}),(0,a.jsx)("path",{d:"M20 19v-4h-4"})]}),"restore"]}),!V&&(0,a.jsxs)("a",{href:(0,p.$l)(v.projectId,v.id,"#session-terminal-section"),onClick:e=>e.stopPropagation(),className:"session-card__control session-card__terminal-link",children:[(0,a.jsxs)("svg",{className:"session-card__control-icon",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("rect",{x:"2",y:"4",width:"20",height:"16",rx:"2"}),(0,a.jsx)("path",{d:"M6 10l4 2-4 2"}),(0,a.jsx)("path",{d:"M14 14h4"})]}),"terminal"]})]}),(0,a.jsxs)("div",{className:"session-card__body flex min-h-0 flex-1 flex-col",children:[(0,a.jsx)("div",{className:"card__title-wrap",children:(0,a.jsx)("p",{className:"card__title",children:J})}),(0,a.jsxs)("div",{className:"card__meta",children:[v.branch&&(0,a.jsx)("span",{className:"card__branch",children:v.branch}),v.branch&&L?(0,a.jsx)("span",{className:"card__meta-sep","aria-hidden":"true",children:"\xb7"}):null,L&&(0,a.jsxs)("a",{href:L.url,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),className:"card__pr",children:["#",L.number]}),L&&!Z&&(q?(0,a.jsx)("span",{className:"inline-block h-[14px] w-16 animate-pulse rounded-full bg-[var(--color-bg-subtle)]"}):(0,a.jsxs)("span",{className:"card__diff inline-flex items-center",children:[(0,a.jsxs)("span",{className:"card__diff-add",children:["+",L.additions]})," ",(0,a.jsxs)("span",{className:"card__diff-del",children:["-",L.deletions]})," ",(0,a.jsx)("span",{className:"card__diff-size",children:(0,x.i_)(L.additions,L.deletions)}),(0,a.jsx)("span",{className:"sr-only",children:"+".concat(L.additions," -").concat(L.deletions," ").concat((0,x.i_)(L.additions,L.deletions))})]}))]}),ee&&(0,a.jsx)("div",{className:"px-[10px] pb-[5px]",children:"merge"===F||z?(0,a.jsxs)("p",{className:"session-card__secondary session-card__secondary--merge",children:[(0,a.jsx)("svg",{width:"9",height:"9",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M20 6 9 17l-5-5"})}),(0,a.jsx)("span",{children:ee})]}):(0,a.jsx)("p",{className:"session-card__secondary",children:ee})}),Y&&(0,a.jsx)("div",{className:"px-[10px] pb-[5px]",children:(0,a.jsx)("p",{className:"text-[10px] leading-relaxed text-[var(--color-text-tertiary)]",children:Y})}),Z&&(null==L?void 0:L.state)==="open"&&(0,a.jsx)("div",{className:"px-[10px] pb-[5px]",children:(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 text-[10px] text-[var(--color-text-muted)]",children:[(0,a.jsxs)("svg",{className:"h-3 w-3 text-[var(--color-text-tertiary)]",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,a.jsx)("path",{d:"M12 8v4M12 16h.01"})]}),"PR data rate limited"]})}),$.length>0&&(0,a.jsx)("div",{className:"card__ci",children:$.map(e=>{let s=(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("svg",{width:"8",height:"8",fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M20 6 9 17l-5-5"})}),e.name]});return e.url?(0,a.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"ci-chip ci-chip--pass",onClick:e=>e.stopPropagation(),children:s},e.name):(0,a.jsx)("span",{className:"ci-chip ci-chip--pass",children:s},e.name)})}),!Z&&U.length>0&&(0,a.jsx)("div",{className:"card__alerts flex flex-col",children:U.slice(0,3).map(e=>(0,a.jsxs)("div",{className:(0,d.cn)("alert-row","alert-row--".concat(e.type)),children:[(0,a.jsx)("span",{className:"alert-row__icon",children:e.icon}),(0,a.jsxs)("span",{className:"alert-row__text",children:[(0,a.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:[void 0!==e.count&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"font-bold",children:e.count})," "]}),e.label]}),e.notified&&(0,a.jsxs)("span",{className:"alert-row__notified",title:"Agent has been notified",children:[" ","\xb7 notified"]})]}),e.actionLabel&&(0,a.jsx)("button",{onClick:s=>{var r;s.stopPropagation(),K(e.key,null!=(r=e.actionMessage)?r:"")},disabled:N===e.key,className:"alert-row__action",children:N===e.key?"sent!":y===e.key?"failed":e.actionLabel})]},e.key))}),"respond"===F&&(0,a.jsxs)("div",{className:"quick-reply",onClick:e=>e.stopPropagation(),children:[v.summary&&!v.summaryIsFallback&&(0,a.jsxs)("div",{className:"card__agent-msg",children:[(0,a.jsx)("svg",{className:"card__agent-msg-icon",width:"10",height:"10",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})}),(0,a.jsx)("span",{children:v.summary})]}),(0,a.jsx)("a",{href:(0,p.Nc)(v.projectId,v.id),onClick:e=>e.stopPropagation(),className:"card__view-context",children:"View current context →"}),!V&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"card__presets",children:[(0,a.jsx)("button",{className:"card__preset",onClick:()=>void E("continue"),disabled:null!==M,children:"continue"===M?"Sending...":"continue"===P?"Sent":"Continue"}),(0,a.jsx)("button",{className:"card__preset",onClick:()=>void E("abort"),disabled:null!==M,children:"abort"===M?"Sending...":"abort"===P?"Sent":"Abort"}),(0,a.jsx)("button",{className:"card__preset",onClick:()=>void E("skip"),disabled:null!==M,children:"skip"===M?"Sending...":"skip"===P?"Sent":"Skip"})]}),(0,a.jsx)("div",{className:"card__reply-wrap",children:(0,a.jsx)("textarea",{className:"card__reply",placeholder:null!==M?"Sending...":"Type a reply... (Enter to send)","aria-label":"Type a reply to the agent",value:T,onChange:e=>A(e.target.value),onKeyDown:e=>{H(e)},rows:1,disabled:null!==M})})]})]}),(0,a.jsxs)("div",{className:"session-card__footer",children:[(0,a.jsx)("span",{className:"card__status min-w-0 truncate",title:null!=(r=v.userPrompt)?r:void 0,children:!v.issueUrl&&v.userPrompt?v.userPrompt.length>60?v.userPrompt.slice(0,60)+"…":v.userPrompt:Q}),z&&L?(0,a.jsxs)("button",{onClick:e=>{e.stopPropagation(),null==j||j(L.number)},className:"session-card__control session-card__merge-control",children:[(0,a.jsxs)("svg",{className:"session-card__control-icon",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{cx:"6",cy:"6",r:"2"}),(0,a.jsx)("circle",{cx:"18",cy:"18",r:"2"}),(0,a.jsx)("circle",{cx:"18",cy:"6",r:"2"}),(0,a.jsx)("path",{d:"M8 6h5a3 3 0 0 1 3 3v7"})]}),"Merge PR #",L.number]}):!V&&(0,a.jsx)("button",{onClick:e=>{if(e.stopPropagation(),!W)return void I(!0);I(!1),null==b||b(v.id)},onMouseLeave:()=>I(!1),onBlur:()=>I(!1),"aria-label":W?"Confirm terminate session":"Terminate session",className:(0,d.cn)("session-card__control session-card__terminate btn--danger",W&&"is-confirming"),children:W?(0,a.jsx)("span",{className:"font-mono text-[10px] font-semibold tracking-[0.04em]",children:"kill?"}):(0,a.jsxs)("svg",{className:"session-card__control-icon",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("path",{d:"M3 6h18"}),(0,a.jsx)("path",{d:"M8 6V4h8v2"}),(0,a.jsx)("path",{d:"M19 6l-1 14H6L5 6"})]})})]})]})]})},function(e,s){return e.session===s.session&&e.onSend===s.onSend&&e.onKill===s.onKill&&e.onMerge===s.onMerge&&e.onRestore===s.onRestore}),g={merge:{label:"Ready",emptyMessage:"Nothing cleared to land yet."},action:{label:"Action",emptyMessage:"No agents need your input."},respond:{label:"Respond",emptyMessage:"No agents need your input."},review:{label:"Review",emptyMessage:"No code waiting for review."},pending:{label:"Pending",emptyMessage:"Nothing blocked."},working:{label:"Working",emptyMessage:"No agents running."},done:{label:"Done",emptyMessage:"No completed sessions."}},b=(0,t.memo)(function(e){let{level:s,sessions:r,onSend:n,onKill:o,onMerge:l,onRestore:i,collapsed:c,onToggle:d,compactMobile:h,onPreview:u,resetKey:x}=e,p=g[s],m=void 0!==d,[b,f]=(0,t.useState)(!1),k=m&&h&&!b?r.slice(0,5):r,_=r.length-k.length;return((0,t.useEffect)(()=>{c&&f(!1)},[c]),(0,t.useEffect)(()=>{f(!1)},[x]),m)?(0,a.jsxs)("div",{className:"accordion-section".concat(c?" accordion-section--collapsed":" accordion-section--expanded"),"data-level":s,children:[(0,a.jsxs)("button",{type:"button",className:"accordion-header",onClick:()=>d(s),"aria-expanded":!c,"aria-controls":"accordion-body-".concat(s),children:[(0,a.jsx)("span",{className:"accordion-header__dot","data-level":s}),(0,a.jsx)("span",{className:"accordion-header__label",children:p.label}),(0,a.jsx)("span",{className:"accordion-header__count",children:r.length}),(0,a.jsx)("span",{className:"accordion-header__chevron","aria-hidden":"true",children:"▶"})]}),(0,a.jsx)("div",{id:"accordion-body-".concat(s),className:"accordion-body",children:r.length>0?(0,a.jsxs)("div",{className:h?"mobile-session-list":"flex flex-col gap-2 p-3",children:[k.map(e=>h?(0,a.jsx)(j,{session:e,level:s,onPreview:u},e.id):(0,a.jsx)(v,{session:e,onSend:n,onKill:o,onMerge:l,onRestore:i},e.id)),h&&_>0?(0,a.jsxs)("button",{type:"button",className:"mobile-session-list__view-all",onClick:()=>f(!0),children:["View all ",r.length]}):null]}):h?(0,a.jsx)("div",{className:"mobile-session-list",children:(0,a.jsx)("div",{className:"mobile-session-list__empty",children:p.emptyMessage})}):null})]}):(0,a.jsxs)("div",{className:"kanban-column","data-level":s,children:[(0,a.jsx)("div",{className:"kanban-column__header",children:(0,a.jsxs)("div",{className:"kanban-column__title-row",children:[(0,a.jsx)("div",{className:"kanban-column__dot","data-level":s}),(0,a.jsx)("span",{className:"kanban-column__title",children:p.label}),(0,a.jsx)("span",{className:"kanban-column__count",children:r.length})]})}),(0,a.jsx)("div",{className:"kanban-column-body",children:r.length>0?(0,a.jsx)("div",{className:"kanban-column__stack",children:r.map(e=>(0,a.jsx)(v,{session:e,onSend:n,onKill:o,onMerge:l,onRestore:i},e.id))}):null})]})},function(e,s){return e.level===s.level&&e.collapsed===s.collapsed&&e.onToggle===s.onToggle&&e.onSend===s.onSend&&e.onKill===s.onKill&&e.onMerge===s.onMerge&&e.onRestore===s.onRestore&&e.compactMobile===s.compactMobile&&e.onPreview===s.onPreview&&e.resetKey===s.resetKey&&e.sessions.length===s.sessions.length&&e.sessions.every((e,r)=>e===s.sessions[r])});function j(e){let{session:s,level:r,onPreview:t}=e,n=[s.branch,s.pr?"PR #".concat(s.pr.number):null,s.issueLabel].filter(Boolean);return(0,a.jsxs)("div",{className:"mobile-session-row",children:[(0,a.jsxs)("button",{type:"button",className:"mobile-session-row__preview",onClick:()=>null==t?void 0:t(s),"aria-label":"Open ".concat((0,h.Pn)(s)),children:[(0,a.jsxs)("div",{className:"mobile-session-row__line",children:[(0,a.jsx)("span",{className:"mobile-session-row__dot","data-level":r,"aria-hidden":"true"}),(0,a.jsx)("span",{className:"mobile-session-row__title",children:(0,h.Pn)(s)})]}),(0,a.jsx)("div",{className:"mobile-session-row__meta",children:n.length>0?n.join(" \xb7 "):"No branch or PR metadata"})]}),(0,a.jsxs)("div",{className:"mobile-session-row__side",children:[(0,a.jsx)(f,{session:s,level:r}),(0,a.jsx)("a",{href:(0,p.Nc)(s.projectId,s.id),className:"mobile-session-row__open","aria-label":"Go to ".concat((0,h.Pn)(s)),children:(0,a.jsxs)("svg",{className:"mobile-session-row__open-icon",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M4 17V7a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2Z"}),(0,a.jsx)("path",{d:"m8 10 2 2-2 2M12 14h4"})]})})]})]})}function f(e){var s,r,t,n;let{session:o,level:l}=e,i=g[l].label.toLowerCase();return"merge"===l&&o.pr&&(0,c.QN)(o.pr)?i="ready":"action"===l?i="needs_input"===o.status?"needs input":"stuck"===o.status?"stuck":"errored"===o.status?"errored":"waiting_input"===o.activity?"waiting":"exited"===o.activity?"crashed":"blocked"===o.activity?"blocked":"ci_failed"===o.status?"ci failed":"changes_requested"===o.status?"changes":(null==(t=o.pr)?void 0:t.ciStatus)==="failing"?"ci failed":(null==(n=o.pr)?void 0:n.reviewDecision)==="changes_requested"?"changes":o.pr&&!o.pr.mergeability.noConflicts?"conflicts":"action":"respond"===l?i="waiting_input"===o.activity?"waiting":"needs input":"review"===l?i=(null==(s=o.pr)?void 0:s.reviewDecision)==="changes_requested"?"changes":"review":"pending"===l?i=(null==(r=o.pr)?void 0:r.unresolvedThreads)?"threads":"pending":"working"===l&&(i="idle"===o.activity?"idle":"active"),(0,a.jsx)("span",{className:"mobile-session-row__chip",children:i})}var k=r(7848),_=r(5309),N=r(5184),w=r(9293);let y=["Working","Pending","Review","Respond","Merge"];function C(e){let{message:s,orchestratorHref:r,onSpawnOrchestrator:t=null,spawnLabel:n="Spawn Orchestrator",spawnDisabled:o=!1}=e;return(0,a.jsxs)("div",{className:"board-wrapper",children:[(0,a.jsx)("div",{className:"kanban-ghost","aria-hidden":"true",children:y.map(e=>(0,a.jsx)("div",{className:"kanban-ghost__col",children:(0,a.jsx)("div",{className:"kanban-ghost__head",children:e})},e))}),(0,a.jsx)("div",{className:"board-center",children:(0,a.jsxs)("div",{className:"empty-state",role:"status",children:[(0,a.jsx)("div",{className:"empty-state__icon",children:(0,a.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"12",cy:"5.5",r:"2.5",fill:"rgba(249,115,22,0.18)",stroke:"#f97316",strokeWidth:"1.5"}),(0,a.jsx)("circle",{cx:"5.5",cy:"17",r:"2.5",fill:"var(--color-bg-subtle)",stroke:"var(--color-border-strong)",strokeWidth:"1.5"}),(0,a.jsx)("circle",{cx:"18.5",cy:"17",r:"2.5",fill:"var(--color-bg-subtle)",stroke:"var(--color-border-strong)",strokeWidth:"1.5"}),(0,a.jsx)("line",{x1:"12",y1:"8",x2:"6.7",y2:"14.8",stroke:"rgba(249,115,22,0.22)",strokeWidth:"1",strokeDasharray:"2.5 2"}),(0,a.jsx)("line",{x1:"12",y1:"8",x2:"17.3",y2:"14.8",stroke:"rgba(249,115,22,0.22)",strokeWidth:"1",strokeDasharray:"2.5 2"}),(0,a.jsx)("line",{x1:"7.8",y1:"17",x2:"16.2",y2:"17",stroke:"var(--color-border-subtle)",strokeWidth:"1",strokeDasharray:"2.5 2"})]})}),s?(0,a.jsx)("p",{className:"empty-state__text",children:s}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{className:"empty-state__headline",children:"Ready to orchestrate"}),(0,a.jsx)("p",{className:"empty-state__hint",children:"Open the main orchestrator to start a session and fan out parallel agents across your codebase."}),r?(0,a.jsxs)("a",{href:r,className:"empty-state__cta",children:[(0,a.jsxs)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"12",cy:"5",r:"2",fill:"currentColor",stroke:"none"}),(0,a.jsx)("path",{d:"M12 7v4M12 11H6M12 11h6M6 11v3M12 11v3M18 11v3"}),(0,a.jsx)("circle",{cx:"6",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"12",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"18",cy:"17",r:"2"})]}),"Open Orchestrator"]}):t?(0,a.jsxs)("button",{type:"button",className:"empty-state__cta",onClick:t,disabled:o,children:[(0,a.jsxs)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"12",cy:"5",r:"2",fill:"currentColor",stroke:"none"}),(0,a.jsx)("path",{d:"M12 7v4M12 11H6M12 11h6M6 11v3M12 11v3M18 11v3"}),(0,a.jsx)("circle",{cx:"6",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"12",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"18",cy:"17",r:"2"})]}),n]}):null]})]})})]})}var M=r(2446);function S(e){let{status:s}=e;return"connected"===s?null:"disconnected"===s?(0,a.jsx)("button",{type:"button",className:"connection-bar connection-bar--disconnected","aria-live":"assertive","aria-atomic":"true",onClick:()=>window.location.reload(),children:"Offline \xb7 tap to retry"}):(0,a.jsx)("div",{className:"connection-bar connection-bar--reconnecting",role:"status","aria-live":"polite","aria-atomic":"true",children:"Reconnecting…"})}let P=[/\bBearer\s+[A-Za-z0-9._\-+/=]+\b/gi,/\bsk-[A-Za-z0-9]{10,}\b/g,/\beyJ[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\b/g];function R(e){let{projectId:s}=e,{showToast:r}=(0,M.d)(),[n,o]=(0,t.useState)(!1),l=(0,t.useCallback)(async()=>{if(!n){o(!0);try{let e,a=await fetch("/api/observability",{credentials:"same-origin"});if(!a.ok)return void r("Could not fetch observability snapshot","error");let t=a.headers.get("x-correlation-id");try{e=await a.json()}catch(e){r("Could not parse observability snapshot","error");return}let n=function e(s){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new WeakSet;if("string"==typeof s)return P.reduce((e,s)=>e.replace(s,"[REDACTED]"),s);if(Array.isArray(s))return s.map(s=>e(s,r));if(s&&"object"==typeof s){if(r.has(s))return"[Circular]";r.add(s);let a={};for(let[t,n]of Object.entries(s))a[t]=e(n,r);return a}return s}(function(e,s){if(!s||!e||"object"!=typeof e)return e;let r={...e},a=r.projects;if(a&&"object"==typeof a&&!Array.isArray(a)){let e=a[s];r.projects=void 0===e?{}:{[s]:e}}return r}(e,s)),o={copiedAt:new Date().toISOString(),pageHref:"".concat(window.location.origin).concat(window.location.pathname),projectId:null!=s?s:null,correlationId:t,userAgent:navigator.userAgent,observability:n};await navigator.clipboard.writeText(JSON.stringify(o,null,2)),r("Debug bundle copied to clipboard","success")}catch(e){r("Could not copy debug bundle","error")}finally{o(!1)}}},[n,s,r]);return(0,a.jsxs)("button",{type:"button",className:"orchestrator-btn flex min-h-[44px] min-w-[44px] items-center gap-2 px-4 py-2 text-[12px] font-semibold text-[var(--color-text-secondary)] transition-colors hover:bg-[var(--color-bg-hover)] disabled:opacity-50",onClick:()=>void l(),disabled:n,"aria-label":"Copy debug bundle for issue reports",children:[(0,a.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2","aria-hidden":"true",children:[(0,a.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,a.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),"Copy debug info"]})}var W=r(2466);let I=["working","pending","action","merge"],T=["working","pending","review","respond","merge"],A=[];function B(e){var s;let{session:r,onRestore:t}=e,n=!r.summaryIsFallback&&r.summary||r.issueTitle||r.summary||r.id,o=(null==(s=r.pr)?void 0:s.state)==="merged"||"merged"===r.status,l="killed"===r.status||"terminated"===r.status,i=!c.N_.has(r.status);return(0,a.jsxs)("div",{className:"done-card",children:[(0,a.jsx)("p",{className:"done-card__title",children:n}),(0,a.jsxs)("div",{className:"done-card__meta",children:[(0,a.jsx)("span",{className:"done-card__badge ".concat(l?"done-card__badge--terminated":"done-card__badge--merged"),children:o?"merged":l?"terminated":"done"}),r.pr?(0,a.jsxs)("a",{href:r.pr.url,target:"_blank",rel:"noopener noreferrer",className:"done-card__pr",onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)("svg",{width:"9",height:"9",fill:"none",stroke:"currentColor",strokeWidth:"1.8",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{cx:"18",cy:"18",r:"3"}),(0,a.jsx)("circle",{cx:"6",cy:"6",r:"3"}),(0,a.jsx)("path",{d:"M6 9v3a6 6 0 0 0 6 6h3"})]}),"#",r.pr.number]}):null,(0,a.jsx)("span",{className:"done-card__age",children:function(e){if(!e)return"just now";let s=new Date(e).getTime();if(!Number.isFinite(s))return"just now";let r=Date.now()-s;if(r<=0)return"just now";let a=Math.floor(r/1e3),t=Math.floor(a/60),n=Math.floor(t/60),o=Math.floor(n/24);return a<60?"".concat(a,"s ago"):t<60?"".concat(t,"m ago"):n<24?"".concat(n,"h ago"):"".concat(o,"d ago")}(r.lastActivityAt)}),i?(0,a.jsx)("button",{type:"button",className:"done-card__restore",onClick:e=>{e.stopPropagation(),t(r.id)},children:"Restore"}):null]})]})}function D(e){var s,r,n,d;let{initialSessions:h,projectId:u,projectName:x,projects:m=[],orchestrators:v,attentionZones:g="simple",dashboardLoadError:j}=e,f=null!=v?v:A,y=(0,N.eT)(),P="detailed"===g?T:I,D=(0,t.useMemo)(()=>{let e={};for(let s of h)e[s.id]=(0,c.ng)(s,g);return e},[h,g]),{sessions:O,attentionLevels:L,liveSessionsResolved:E,loadError:H}=(0,_.D)({initialSessions:h,muxSessions:(null==y?void 0:y.status)==="connected"?y.sessions:void 0,muxLastError:null==y?void 0:y.lastError,initialAttentionLevels:D,attentionZones:g}),K=(0,t.useMemo)(()=>u?O.filter(e=>e.projectId===u):O,[O,u]),Z=(null==y?void 0:y.status)==="disconnected"?"disconnected":(null==y?void 0:y.status)==="connected"?"connected":"reconnecting",q=null!=H?H:j&&E?void 0:j,U=(0,l.useSearchParams)(),z=(0,l.useRouter)(),V=(0,t.useRef)(z);V.current=z;let G=null!=(s=U.get("session"))?s:void 0,[J,Q]=(0,t.useState)(!1),[$,X]=(0,t.useState)(f),[Y,ee]=(0,t.useState)([]),[es,er]=(0,t.useState)({}),[ea,et]=(0,t.useState)(!1),[en,eo]=(0,t.useState)(!1),el=(0,i.U)(i.D),ei=U.get("debug"),{showToast:ec}=(0,M.d)(),[ed,eh]=(0,t.useState)(!1),eu=(0,t.useRef)(O);eu.current=O;let ex=m.length>1&&void 0===u,ep=(0,t.useMemo)(()=>{var e;return u&&null!=(e=$.find(e=>e.projectId===u))?e:null},[$,u]),em=ep?(0,p.Nc)(ep.projectId,ep.id):null,ev=!ex&&!!u&&m.some(e=>e.id===u&&!e.resolveError)&&!em,eg=u&&null!=(r=m.find(e=>e.id===u))?r:null,eb=!!u&&Y.includes(u),ej=u&&null!=(n=es[u])?n:null,ef=(0,t.useMemo)(()=>ex||!G?K:K.filter(e=>e.id===G),[K,ex,G]);(0,t.useEffect)(()=>{X(e=>(function(e,s){let r=new Map(e.map(e=>[e.projectId,e]));for(let e of s)r.set(e.projectId,e);return[...r.values()]})(e,f))},[f]),(0,t.useEffect)(()=>{let e=(0,k.S)(L),s=null!=x?x:"ao";document.title=e>0?"".concat(s," (").concat(e," need attention)"):s},[L,x]),(0,t.useEffect)(()=>{eo(!1)},[U]);let ek=(0,t.useMemo)(()=>{let e={merge:[],action:[],respond:[],review:[],pending:[],working:[],done:[]};for(let s of ef)e[(0,c.ng)(s,g)].push(s);return e},[ef,g]),e_=(0,t.useMemo)(()=>{let e=new Map;for(let s of O){let r=e.get(s.projectId);if(r){r.push(s);continue}e.set(s.projectId,[s])}return e},[O]),eN=(0,t.useMemo)(()=>ex?m.map(e=>{var s,r;let a=null!=(s=e_.get(e.id))?s:[],t={merge:0,action:0,respond:0,review:0,pending:0,working:0,done:0};for(let e of a)t[(0,c.ng)(e,g)]++;return{project:e,orchestrator:null!=(r=$.find(s=>s.projectId===e.id))?r:null,sessionCount:a.length,openPRCount:a.filter(e=>{var s;return(null==(s=e.pr)?void 0:s.state)==="open"}).length,counts:t}}):[],[$,ex,g,m,e_]),ew=(0,t.useCallback)(async(e,s)=>{try{let r=await fetch("/api/sessions/".concat(encodeURIComponent(e),"/send"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:s})});if(!r.ok){let s=await r.text()||"Unknown error";console.error("Failed to send message to ".concat(e,":"),s),ec("Send failed: ".concat(s),"error");let a=Error(s);throw a.toastShown=!0,a}}catch(s){throw s instanceof Error&&"toastShown"in s&&s.toastShown||(console.error("Network error sending message to ".concat(e,":"),s),ec("Network error while sending message","error")),s}},[ec]),ey=(0,t.useCallback)(async e=>{try{let s=await fetch("/api/sessions/".concat(encodeURIComponent(e),"/kill"),{method:"POST"});if(s.ok)ec("Session terminated","success");else{let r=await s.text();console.error("Failed to kill ".concat(e,":"),r),ec("Terminate failed: ".concat(r),"error")}}catch(s){console.error("Network error killing ".concat(e,":"),s),ec("Network error while terminating session","error")}},[ec]),eC=(0,t.useCallback)(e=>{var s;let r=null!=(s=eu.current.find(s=>s.id===e))?s:null;r&&ey(r.id)},[ey]),eM=(0,t.useCallback)(async e=>{try{let s=await fetch("/api/prs/".concat(e,"/merge"),{method:"POST"});if(s.ok)ec("PR #".concat(e," merged"),"success");else{let r=await s.text();console.error("Failed to merge PR #".concat(e,":"),r),ec("Merge failed: ".concat(r),"error");return}}catch(s){console.error("Network error merging PR #".concat(e,":"),s),ec("Network error while merging PR","error")}},[ec]),eS=(0,t.useCallback)(async e=>{try{let s=await fetch("/api/sessions/".concat(encodeURIComponent(e),"/restore"),{method:"POST"});if(s.ok)ec("Session restored","success"),V.current.refresh();else{let r=await s.text();console.error("Failed to restore ".concat(e,":"),r),ec("Restore failed: ".concat(r),"error")}}catch(s){console.error("Network error restoring ".concat(e,":"),s),ec("Network error while restoring session","error")}},[ec]),eP=async e=>{ee(s=>s.includes(e.id)?s:[...s,e.id]),er(s=>{let{[e.id]:r,...a}=s;return a});try{let r=await fetch("/api/orchestrators",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:e.id})}),a=await r.json().catch(()=>null);if(!r.ok||!(null==a?void 0:a.orchestrator)){var s;throw Error(null!=(s=null==a?void 0:a.error)?s:"Failed to spawn orchestrator for ".concat(e.name))}let t=a.orchestrator;X(s=>{let r=s.filter(s=>s.projectId!==e.id);return r.push(t),r})}catch(r){let s=r instanceof Error?r.message:"Failed to spawn orchestrator";er(r=>({...r,[e.id]:s})),console.error("Failed to spawn orchestrator for ".concat(e.id,":"),r)}finally{ee(s=>s.filter(s=>s!==e.id))}},eR=P.some(e=>ek[e].length>0),eW=!ex&&!eR&&!q,eI=q?(0,a.jsxs)("div",{className:"dashboard-alert mb-6 flex flex-col gap-1.5 border border-[color-mix(in_srgb,var(--color-status-error)_28%,transparent)] bg-[color-mix(in_srgb,var(--color-status-error)_10%,transparent)] px-3.5 py-2.5 text-[11px] md:mb-4",role:"alert","aria-live":"assertive",children:[(0,a.jsx)("span",{className:"font-semibold text-[var(--color-status-error)]",children:"Orchestrator failed to load"}),(0,a.jsx)("span",{className:"break-words text-[var(--color-text-secondary)]",children:q}),(0,a.jsxs)("span",{className:"text-[var(--color-text-secondary)]",children:["Confirm ",(0,a.jsx)("span",{className:"font-mono text-[10px]",children:"agent-orchestrator.yaml"})," exists and is valid, then run ",(0,a.jsx)("span",{className:"font-mono text-[10px]",children:"ao doctor"})," for diagnostics."]})]}):null,eT=(0,t.useMemo)(()=>O.some(e=>e.pr&&(0,c.fZ)(e.pr)),[O]),eA="agent orchestrator"===(null==x?void 0:x.trim().toLowerCase())?null!=(d=null!=u?u:x)?d:ex?"All projects":"Dashboard":null!=x?x:ex?"All projects":"Dashboard",eB=!ex&&eA.trim().length>0,eD=()=>{window.innerWidth<768?eo(e=>!e):et(e=>!e)};return(0,a.jsx)(W.I.Provider,{value:{onToggleSidebar:eD,mobileSidebarOpen:en},children:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(S,{status:Z}),(0,a.jsxs)("div",{className:"dashboard-app-shell",children:[(0,a.jsxs)("header",{className:"dashboard-app-header",children:[(0,a.jsx)("button",{type:"button",className:"dashboard-app-sidebar-toggle",onClick:eD,"aria-label":"Toggle sidebar",children:el?(0,a.jsx)("svg",{width:"16",height:"16",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M4 6h16M4 12h16M4 18h16"})}):(0,a.jsxs)("svg",{width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"1.75",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,a.jsx)("path",{d:"M9 3v18"})]})}),(0,a.jsxs)("div",{className:"dashboard-app-header__brand",children:[(0,a.jsx)("span",{className:"dashboard-app-header__brand-dot","aria-hidden":"true"}),(0,a.jsx)("span",{children:"Agent Orchestrator"})]}),eB?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"dashboard-app-header__sep","aria-hidden":"true"}),(0,a.jsx)("span",{className:"dashboard-app-header__project",children:eA})]}):null,el||"1"!==ei&&"true"!==ei?null:(0,a.jsx)(R,{projectId:u}),(0,a.jsx)("div",{className:"dashboard-app-header__spacer"}),(0,a.jsx)("div",{className:"dashboard-app-header__actions",children:!ex&&em?(0,a.jsxs)(o(),{href:em,className:"dashboard-app-btn dashboard-app-btn--amber","aria-label":"Orchestrator",children:[(0,a.jsxs)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"12",cy:"5",r:"2",fill:"currentColor",stroke:"none"}),(0,a.jsx)("path",{d:"M12 7v4M12 11H6M12 11h6M6 11v3M12 11v3M18 11v3"}),(0,a.jsx)("circle",{cx:"6",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"12",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"18",cy:"17",r:"2"})]}),"Orchestrator"]}):ev&&eg?(0,a.jsxs)("button",{type:"button",className:"dashboard-app-btn dashboard-app-btn--amber","aria-label":"Spawn Orchestrator",onClick:()=>void eP(eg),disabled:eb,children:[(0,a.jsxs)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("circle",{cx:"12",cy:"5",r:"2",fill:"currentColor",stroke:"none"}),(0,a.jsx)("path",{d:"M12 7v4M12 11H6M12 11h6M6 11v3M12 11v3M18 11v3"}),(0,a.jsx)("circle",{cx:"6",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"12",cy:"17",r:"2"}),(0,a.jsx)("circle",{cx:"18",cy:"17",r:"2"})]}),eb?"Spawning...":"Spawn Orchestrator"]}):null})]}),(0,a.jsxs)("div",{className:"dashboard-shell dashboard-shell--desktop".concat(ea?" dashboard-shell--sidebar-collapsed":""),children:[(0,a.jsx)("div",{className:"sidebar-wrapper".concat(en?" sidebar-wrapper--mobile-open":""),children:(0,a.jsx)(w.u,{projects:m,sessions:O,orchestrators:$,activeProjectId:u,activeSessionId:G,collapsed:ea,onToggleCollapsed:()=>et(e=>!e),onMobileClose:()=>eo(!1)})}),en&&(0,a.jsx)("div",{className:"sidebar-mobile-backdrop",onClick:()=>eo(!1)}),(0,a.jsxs)("main",{className:"dashboard-main dashboard-main--desktop",children:[(0,a.jsx)(k.u,{attentionLevels:L,projectName:x}),(0,a.jsxs)("div",{className:"dashboard-main__subhead",children:[(0,a.jsx)("h1",{className:"dashboard-main__title",children:"Dashboard"}),(0,a.jsx)("p",{className:"dashboard-main__subtitle",children:"Live agent sessions, pull requests, and merge status."})]}),(0,a.jsxs)("div",{className:"dashboard-main__body",children:[eI,eT&&!J&&(0,a.jsxs)("div",{className:"dashboard-alert mb-4 flex items-center gap-2.5 border border-[color-mix(in_srgb,var(--color-status-attention)_25%,transparent)] bg-[var(--color-tint-yellow)] px-3.5 py-2.5 text-[11px] text-[var(--color-status-attention)]",children:[(0,a.jsxs)("svg",{className:"h-3.5 w-3.5 shrink-0",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,a.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,a.jsx)("path",{d:"M12 8v4M12 16h.01"})]}),(0,a.jsx)("span",{className:"flex-1",children:"GitHub API rate limited — PR data (CI status, review state, sizes) may be stale. Will retry automatically on next refresh."}),(0,a.jsx)("button",{onClick:()=>Q(!0),className:"ml-1 shrink-0 opacity-60 hover:opacity-100","aria-label":"Dismiss",children:(0,a.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M18 6 6 18M6 6l12 12"})})})]}),ex&&(0,a.jsx)(F,{overviews:eN,onSpawnOrchestrator:eP,spawningProjectIds:Y,spawnErrors:es,attentionZones:g}),!ex&&eR&&(0,a.jsx)("div",{className:"kanban-board-wrap",children:(0,a.jsx)("div",{className:"kanban-board","data-columns":P.length,style:{"--kanban-column-count":P.length},children:P.map(e=>(0,a.jsx)(b,{level:e,sessions:ek[e],onSend:ew,onKill:eC,onMerge:eM,onRestore:eS},e))})}),eW?(0,a.jsx)(C,{orchestratorHref:em,onSpawnOrchestrator:ev&&eg?()=>{eP(eg)}:null,spawnLabel:eb?"Spawning...":"Spawn Orchestrator",spawnDisabled:eb}):null,!ex&&ej?(0,a.jsx)("p",{className:"mt-3 text-[11px] text-[var(--color-status-error)]",children:ej}):null,!ex&&ek.done.length>0&&(0,a.jsxs)("div",{className:"done-bar mt-6",children:[(0,a.jsxs)("button",{type:"button",className:"done-bar__toggle",onClick:()=>eh(e=>!e),"aria-expanded":ed,children:[(0,a.jsx)("svg",{className:"done-bar__chevron".concat(ed?" done-bar__chevron--open":""),fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"m9 18 6-6-6-6"})}),(0,a.jsx)("span",{className:"done-bar__label",children:"Done / Terminated"}),(0,a.jsx)("span",{className:"done-bar__count",children:ek.done.length})]}),ed&&(0,a.jsx)("div",{className:"done-bar__cards",children:ek.done.map(e=>(0,a.jsx)(B,{session:e,onRestore:eS},e.id))})]})]})]})]})]})]})})}function O(e){return(0,a.jsx)(M.t,{children:(0,a.jsx)(D,{...e})})}function F(e){let{overviews:s,onSpawnOrchestrator:r,spawningProjectIds:t,spawnErrors:n,attentionZones:l}=e;return(0,a.jsx)("div",{className:"mb-8 grid gap-4 md:grid-cols-2 xl:grid-cols-3",children:s.map(e=>{let{project:s,orchestrator:i,sessionCount:c,openPRCount:d,counts:h}=e,u=!!s.resolveError,x=(0,p.bn)(s.id);return(0,a.jsxs)("section",{className:"border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] p-4",children:[(0,a.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-[14px] font-semibold text-[var(--color-text-primary)]",children:s.name}),(0,a.jsx)("div",{className:"mt-1 text-[11px] text-[var(--color-text-muted)]",children:u?"Config needs repair":(0,a.jsxs)(a.Fragment,{children:[c," active session",1!==c?"s":"",d>0?" \xb7 ".concat(d," open PR").concat(1!==d?"s":""):""]})})]}),(0,a.jsx)(o(),{href:x,className:"border border-[var(--color-border-default)] px-3 py-1.5 text-[11px] font-medium text-[var(--color-text-secondary)] hover:bg-[var(--color-bg-hover)] hover:no-underline",children:"Open project"})]}),(0,a.jsxs)("div",{className:"mb-4 flex flex-wrap gap-2",children:[(0,a.jsx)(L,{label:"Merge",value:h.merge,tone:"ready"}),"detailed"===l?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(L,{label:"Respond",value:h.respond,tone:"error"}),(0,a.jsx)(L,{label:"Review",value:h.review,tone:"orange"})]}):(0,a.jsx)(L,{label:"Action",value:h.action,tone:"orange"}),(0,a.jsx)(L,{label:"Pending",value:h.pending,tone:"attention"}),(0,a.jsx)(L,{label:"Working",value:h.working,tone:"working"})]}),(0,a.jsxs)("div",{className:"border-t border-[var(--color-border-subtle)] pt-3",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,a.jsx)("div",{className:"text-[11px] text-[var(--color-text-muted)]",children:u?"Project config could not be resolved":i?"Per-project orchestrator available":"No running orchestrator"}),u?(0,a.jsx)(o(),{href:x,className:"border border-[var(--color-border-default)] px-3 py-1.5 text-[11px] font-semibold text-[var(--color-text-secondary)] hover:bg-[var(--color-bg-hover)] hover:no-underline",children:"Repair project"}):i?(0,a.jsxs)(o(),{href:(0,p.Nc)(i.projectId,i.id),className:"orchestrator-btn flex items-center gap-2 px-3 py-1.5 text-[11px] font-semibold hover:no-underline",children:[(0,a.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-[var(--color-accent)] opacity-80"}),"orchestrator"]}):(0,a.jsx)("button",{type:"button",onClick:()=>void r(s),disabled:t.includes(s.id),className:"orchestrator-btn px-3 py-1.5 text-[11px] font-semibold disabled:cursor-wait disabled:opacity-70",children:t.includes(s.id)?"Spawning...":"Spawn Orchestrator"})]}),n[s.id]?(0,a.jsx)("p",{className:"mt-2 text-[11px] text-[var(--color-status-error)]",children:n[s.id]}):null]})]},s.id)})})}function L(e){let{label:s,value:r,tone:t}=e;return(0,a.jsxs)("div",{className:"min-w-[78px] border border-[var(--color-border-subtle)] px-2.5 py-2",children:[(0,a.jsx)("div",{className:"text-[10px] uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]",children:s}),(0,a.jsx)("div",{className:"project-metric__value mt-1 text-[18px] font-semibold tabular-nums","data-tone":t,children:r})]})}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2438,2985,3675,4209,4587,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|