@made-by-moonlight/athene-web 0.9.2 → 0.10.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 +241 -219
- package/.next/app-path-routes-manifest.json +10 -7
- package/.next/build-manifest.json +6 -6
- package/.next/prerender-manifest.json +23 -23
- package/.next/react-loadable-manifest.json +5 -5
- package/.next/required-server-files.json +4 -4
- package/.next/routes-manifest.json +16 -0
- 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 +9 -9
- 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.js.nft.json +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/meta/[name]/start/route.js +1 -0
- package/.next/server/app/api/meta/[name]/start/route.js.nft.json +1 -0
- package/.next/server/app/api/meta/[name]/start/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/meta/route.js +1 -0
- package/.next/server/app/api/meta/route.js.nft.json +1 -0
- package/.next/server/app/api/meta/route_client-reference-manifest.js +1 -0
- 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 +2 -2
- 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/reviews/execute/route.js +1 -1
- package/.next/server/app/api/reviews/execute/route.js.nft.json +1 -1
- package/.next/server/app/api/reviews/execute/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/reviews/findings/route.js +1 -1
- package/.next/server/app/api/reviews/findings/route.js.nft.json +1 -1
- package/.next/server/app/api/reviews/findings/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/reviews/route.js +1 -1
- package/.next/server/app/api/reviews/route.js.nft.json +1 -1
- package/.next/server/app/api/reviews/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/reviews/send/route.js +1 -1
- package/.next/server/app/api/reviews/send/route.js.nft.json +1 -1
- package/.next/server/app/api/reviews/send/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 -1
- package/.next/server/app/api/update/route.js.nft.json +1 -1
- package/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- 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 -1
- package/.next/server/app/api/version/route.js.nft.json +1 -1
- package/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
- 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 +2 -2
- 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 +10 -10
- 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 +1 -1
- 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/meta/[name]/page.js +2 -0
- package/.next/server/app/meta/[name]/page.js.nft.json +1 -0
- package/.next/server/app/meta/[name]/page_client-reference-manifest.js +1 -0
- 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/review/page.js +2 -2
- package/.next/server/app/review/page.js.nft.json +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/reviews/page.js +2 -2
- package/.next/server/app/reviews/page.js.nft.json +1 -1
- package/.next/server/app/reviews/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 +10 -10
- package/.next/server/app-paths-manifest.json +10 -7
- package/.next/server/chunks/1215.js +1 -1
- package/.next/server/chunks/1271.js +1 -1
- package/.next/server/chunks/1351.js +3 -0
- package/.next/server/chunks/1612.js +1 -0
- package/.next/server/chunks/2899.js +1 -1
- package/.next/server/chunks/5053.js +1 -1
- package/.next/server/chunks/5684.js +942 -0
- package/.next/server/chunks/6148.js +2 -2
- package/.next/server/chunks/{4033.js → 6319.js} +1 -1
- package/.next/server/chunks/7486.js +3 -3
- package/.next/server/chunks/9472.js +102 -40
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +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/TSIgyOuEpSp86lKtHn-Y4/_buildManifest.js +1 -0
- package/.next/static/chunks/1089-89713836690dc384.js +1 -0
- package/.next/static/chunks/{9876-de0c5a1a319b4e8e.js → 1145-b66ea7e0df4f6842.js} +1 -1
- package/.next/static/chunks/1160-0ae37be89137bb48.js +1 -0
- package/.next/static/chunks/{2073-4192de0bb00cc993.js → 2554-dbb4cd7dd7f11245.js} +1 -1
- package/.next/static/chunks/3764.9c44a4ac0ede4088.js +1 -0
- package/.next/static/chunks/5204.0d460c9e7de8b015.js +1 -0
- package/.next/static/chunks/8759-2ef1cec1061e251a.js +1 -0
- package/.next/static/chunks/9531-6d130ea1232ee102.js +1 -0
- package/.next/static/chunks/app/_not-found/page-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/backlog/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/browse-directory/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/filesystem/browse/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/issues/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/meta/[name]/start/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/meta/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/observability/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/orchestrators/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/projects/[id]/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/projects/reload/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/projects/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/prs/[id]/merge/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/reviews/execute/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/reviews/findings/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/reviews/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/reviews/send/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/runtime/terminal/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/kill/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/message/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/remap/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/restore/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/send/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/sessions/patches/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/setup-labels/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/spawn/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/update/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/verify/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/version/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/api/webhooks/[...slug]/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/apple-icon/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/dev/terminal-test/page-2a26b5fc208a0a35.js +1 -0
- package/.next/static/chunks/app/error-362a1ff5db756e6f.js +1 -0
- package/.next/static/chunks/app/{global-error-f6bef179169bcdae.js → global-error-ca208f2a552a271f.js} +1 -1
- package/.next/static/chunks/app/icon/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/icon-192/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/icon-512/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/layout-3937228484f6c652.js +1 -0
- package/.next/static/chunks/app/loading-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/manifest.webmanifest/route-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/meta/[name]/page-305f42c2c391f520.js +1 -0
- package/.next/static/chunks/app/{not-found-cba3f587e1f98dcb.js → not-found-3d7a362f3eaf10aa.js} +1 -1
- package/.next/static/chunks/app/page-305f42c2c391f520.js +1 -0
- package/.next/static/chunks/app/projects/[projectId]/layout-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/projects/[projectId]/loading-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/projects/[projectId]/page-daf2aefa15d58404.js +1 -0
- package/.next/static/chunks/app/projects/[projectId]/sessions/[id]/page-e3e30f31bc5a683f.js +1 -0
- package/.next/static/chunks/app/projects/[projectId]/settings/{page-63572555892d7a61.js → page-804b824af9b9d550.js} +1 -1
- package/.next/static/chunks/app/projects/layout-f7f6bc8388761510.js +1 -0
- package/.next/static/chunks/app/prs/page-220d66ff3931dad7.js +1 -0
- package/.next/static/chunks/app/review/{page-022b2d2c326ff413.js → page-13ec034d995001ab.js} +1 -1
- package/.next/static/chunks/app/reviews/page-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/sessions/[id]/{error-67c0d27f977a1cc1.js → error-419d086d9f9cee0d.js} +1 -1
- package/.next/static/chunks/app/sessions/[id]/loading-5634011a1475aa0d.js +1 -0
- package/.next/static/chunks/app/sessions/[id]/{not-found-cba3f587e1f98dcb.js → not-found-3d7a362f3eaf10aa.js} +1 -1
- package/.next/static/chunks/app/sessions/[id]/page-9879b78853fe3a80.js +1 -0
- package/.next/static/chunks/app/test-direct/{page-8b80ed180c0f2f42.js → page-ca223477414cb95d.js} +1 -1
- package/.next/static/chunks/{main-app-162601c3f1c01b19.js → main-app-bd2a1b10332da5d9.js} +1 -1
- package/.next/static/chunks/{webpack-f9566aaa604a1b07.js → webpack-cc5626a562806e84.js} +1 -1
- package/.next/static/css/0863eb7d19a9924a.css +1 -0
- package/.next/static/css/3effacfd2e5df88c.css +1 -0
- package/dist-server/mux-websocket.js +46 -25
- package/dist-server/single-port-server.js +2 -2
- package/dist-server/start-all.js +3 -3
- package/package.json +33 -33
- package/.next/server/chunks/2347.js +0 -3
- package/.next/server/chunks/4148.js +0 -942
- package/.next/server/chunks/5689.js +0 -1
- package/.next/server/chunks/9493.js +0 -1
- package/.next/static/chunks/1089-c6d7995c7c19039a.js +0 -1
- package/.next/static/chunks/3764.4c736d9a181489a4.js +0 -1
- package/.next/static/chunks/4115-1a4fa80ec67a29d3.js +0 -1
- package/.next/static/chunks/5204.7de7e266895bced7.js +0 -1
- package/.next/static/chunks/8204-7c7837ed694da99c.js +0 -1
- package/.next/static/chunks/8759-490573536f93f85c.js +0 -1
- package/.next/static/chunks/9531-a5175e55fa0db48d.js +0 -1
- package/.next/static/chunks/app/_not-found/page-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/backlog/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/browse-directory/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/filesystem/browse/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/issues/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/observability/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/orchestrators/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/projects/[id]/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/projects/reload/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/projects/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/prs/[id]/merge/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/reviews/execute/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/reviews/findings/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/reviews/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/reviews/send/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/runtime/terminal/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/kill/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/message/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/remap/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/restore/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/send/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/patches/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/setup-labels/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/spawn/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/update/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/verify/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/version/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/api/webhooks/[...slug]/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/apple-icon/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/dev/terminal-test/page-d0132109f9d8524e.js +0 -1
- package/.next/static/chunks/app/error-d632d0714b987864.js +0 -1
- package/.next/static/chunks/app/icon/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/icon-192/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/icon-512/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/layout-5cac6fe817194d7a.js +0 -1
- package/.next/static/chunks/app/loading-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/page-cf7bccb75990950d.js +0 -1
- package/.next/static/chunks/app/projects/[projectId]/layout-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/projects/[projectId]/loading-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/projects/[projectId]/page-039a93b16089ed57.js +0 -1
- package/.next/static/chunks/app/projects/[projectId]/sessions/[id]/page-043b525bedb8f0f7.js +0 -1
- package/.next/static/chunks/app/projects/layout-d43b2e38d46221bd.js +0 -1
- package/.next/static/chunks/app/prs/page-e447852fbe0c6ee4.js +0 -1
- package/.next/static/chunks/app/reviews/page-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/sessions/[id]/loading-6add9dacf1870b4b.js +0 -1
- package/.next/static/chunks/app/sessions/[id]/page-863cf8dd2c76d06d.js +0 -1
- package/.next/static/css/0c9b7451c2ce7c02.css +0 -1
- package/.next/static/css/b4a15f23f468892a.css +0 -1
- package/.next/static/pROr0laPuZIdA4NYNygMD/_buildManifest.js +0 -1
- package/LICENSE +0 -22
- /package/.next/static/{pROr0laPuZIdA4NYNygMD → TSIgyOuEpSp86lKtHn-Y4}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{763:e=>{e.exports={style:{fontFamily:"'schibstedGrotesk', 'schibstedGrotesk Fallback', SF Pro Text, -apple-system, system-ui, sans-serif"},className:"__className_13a5cb",variable:"__variable_13a5cb"}},1012:(e,t,r)=>{"use strict";r.d(t,{Providers:()=>i});var n=r(3817),o=r(2286),s=r(5184);function i(e){let{children:t}=e;return(0,n.jsx)(o.N,{attribute:"class",defaultTheme:"dark",themes:["light","dark","ocean"],enableSystem:!1,children:(0,n.jsx)(s.i2,{children:t})})}},2286:(e,t,r)=>{"use strict";r.d(t,{D:()=>u,N:()=>d});var n=r(6749),o=(e,t,r,n,o,s,i,a)=>{let c=document.documentElement,l=["light","dark"];function u(t){var r;(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,n=r&&s?o.map(e=>s[e]||e):o;r?(c.classList.remove(...n),c.classList.add(s&&s[t]?s[t]:t)):c.setAttribute(e,t)}),r=t,a&&l.includes(r)&&(c.style.colorScheme=r)}if(n)u(n);else try{let e=localStorage.getItem(t)||r,n=i&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;u(n)}catch(e){}},s=["light","dark"],i="(prefers-color-scheme: dark)",a="undefined"==typeof window,c=n.createContext(void 0),l={setTheme:e=>{},themes:[]},u=()=>{var e;return null!=(e=n.useContext(c))?e:l},d=e=>n.useContext(c)?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:a=!0,storageKey:l="theme",themes:u=m,defaultTheme:d=o?"system":"light",attribute:f="data-theme",value:b,children:g,nonce:S,scriptProps:w}=e,[k,P]=n.useState(()=>p(l,d)),[x,E]=n.useState(()=>"system"===k?y():k),N=b?Object.values(b):u,T=n.useCallback(e=>{let t=e;if(!t)return;"system"===e&&o&&(t=y());let n=b?b[t]:t,i=r?v(S):null,c=document.documentElement,l=e=>{"class"===e?(c.classList.remove(...N),n&&c.classList.add(n)):e.startsWith("data-")&&(n?c.setAttribute(e,n):c.removeAttribute(e))};if(Array.isArray(f)?f.forEach(l):l(f),a){let e=s.includes(d)?d:null,r=s.includes(t)?t:e;c.style.colorScheme=r}null==i||i()},[S]),C=n.useCallback(e=>{let t="function"==typeof e?e(k):e;P(t);try{localStorage.setItem(l,t)}catch(e){}},[k]),_=n.useCallback(e=>{E(y(e)),"system"===k&&o&&!t&&T("system")},[k,t]);n.useEffect(()=>{let e=window.matchMedia(i);return e.addListener(_),_(e),()=>e.removeListener(_)},[_]),n.useEffect(()=>{let e=e=>{e.key===l&&(e.newValue?P(e.newValue):C(d))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[C]),n.useEffect(()=>{T(null!=t?t:k)},[t,k]);let M=n.useMemo(()=>({theme:k,setTheme:C,forcedTheme:t,resolvedTheme:"system"===k?x:k,themes:o?[...u,"system"]:u,systemTheme:o?x:void 0}),[k,C,t,x,o,u]);return n.createElement(c.Provider,{value:M},n.createElement(h,{forcedTheme:t,storageKey:l,attribute:f,enableSystem:o,enableColorScheme:a,defaultTheme:d,value:b,themes:u,nonce:S,scriptProps:w}),g)},h=n.memo(e=>{let{forcedTheme:t,storageKey:r,attribute:s,enableSystem:i,enableColorScheme:a,defaultTheme:c,value:l,themes:u,nonce:d,scriptProps:m}=e,f=JSON.stringify([s,r,c,t,u,l,i,a]).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(!a){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)}},y=e=>(e||(e=window.matchMedia(i)),e.matches?"dark":"light")},2490:()=>{},3734:e=>{e.exports={style:{fontFamily:"'jetbrainsMono', 'jetbrainsMono Fallback', SF Mono, Menlo, Consolas, monospace"},className:"__className_c78a36",variable:"__variable_c78a36"}},5184:(e,t,r)=>{"use strict";r.d(t,{Ug:()=>c,eT:()=>l,i2:()=>d});var n=r(3817),o=r(6749),s=r(1806);let i=o.createContext(void 0);function a(e){return"".concat(e.id,":").concat(e.receivedAt)}function c(){let e=o.useContext(i);if(!e)throw Error("useMux() must be used within <MuxProvider>");return e}function l(){return o.useContext(i)}function u(e,t){return t?"".concat(t,":").concat(e):e}function d(e){let{children:t}=e,r=(0,o.useRef)(null),c=(0,o.useRef)(new Map),l=(0,o.useRef)(new Map),[d,m]=(0,o.useState)("connecting"),[f,h]=(0,o.useState)([]),[p,v]=(0,o.useState)([]),[y,b]=(0,o.useState)(50),[g,S]=(0,o.useState)(null),[w,k]=(0,o.useState)(null),P=(0,o.useRef)(0),x=(0,o.useRef)(null),E=(0,o.useRef)({}),N=(0,o.useRef)(!1),T=(0,o.useCallback)(()=>{if(!r.current){m("connecting");try{let e=function(e){var t,r,n;let o=window.location,i="https:"===o.protocol?"wss:":"ws:",a=null!=(t=e.proxyWsPath)?t:s.env.NEXT_PUBLIC_TERMINAL_WS_PATH;if(a){let e=a.replace(/\/ws\/?$/,"");return"".concat(i,"//").concat(o.host).concat(e,"/mux")}if(""===o.port||"443"===o.port||"80"===o.port)return"".concat(i,"//").concat(o.hostname,"/ao-terminal-mux");let c=null!=(n=null!=(r=e.directTerminalPort)?r:s.env.NEXT_PUBLIC_DIRECT_TERMINAL_PORT)?n:"14801";return"".concat(i,"//").concat(o.hostname,":").concat(c,"/mux")}(E.current);console.log("[MuxProvider] Connecting to",e);let t=new WebSocket(e);r.current=t,t.addEventListener("open",()=>{if(N.current)return void t.close();for(let e of(console.log("[MuxProvider] Connected"),m("connected"),P.current=0,l.current.values())){let r={ch:"terminal",id:e.id,type:"open",...e.projectId&&{projectId:e.projectId},...e.tmuxName&&{tmuxName:e.tmuxName},...void 0!==e.cols&&{cols:e.cols},...void 0!==e.rows&&{rows:e.rows}};t.send(JSON.stringify(r))}t.send(JSON.stringify({ch:"subscribe",topics:["sessions","notifications"]}))}),t.addEventListener("message",e=>{try{let t=JSON.parse(e.data);if("terminal"===t.ch){let e=u(t.id,"projectId"in t?t.projectId:void 0);if("data"===t.type){let r=c.current.get(e);if(r)for(let e of r)e(t.data)}else if("opened"===t.type)l.current.has(e)||l.current.set(e,{id:t.id,..."projectId"in t&&t.projectId?{projectId:t.projectId}:{}});else if("exited"===t.type){l.current.delete(e);let r=c.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?(h(t.sessions),S(null)):"error"===t.type&&S(t.error):"notifications"===t.ch&&("snapshot"===t.type?(b(t.limit),v(t.notifications.slice(-t.limit)),k(null)):"append"===t.type?(b(t.limit),v(e=>(function(e,t,r){let n=new Map;for(let t of e)n.set(a(t),t);for(let e of t)n.set(a(e),e);return[...n.values()].slice(-r)})(e,t.notifications,t.limit)),k(null)):"error"===t.type&&k(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),N.current)return;let e=Math.min(1e3*Math.pow(2,P.current),3e4);P.current+=1,m("reconnecting"),x.current=setTimeout(()=>{console.log("[MuxProvider] Reconnecting (attempt ".concat(P.current,")...")),T()},e)})}catch(e){console.error("[MuxProvider] Failed to create WebSocket:",e),m("disconnected")}}},[]);(0,o.useEffect)(()=>{N.current=!1;let e=!1;return(async()=>{try{let e=await fetch("/api/runtime/terminal");if(e.ok){let t=await e.json();E.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||T()})(),()=>{var t;e=!0,N.current=!0,x.current&&clearTimeout(x.current),null==(t=r.current)||t.close()}},[T]);let C=(0,o.useCallback)((e,t,n)=>{var o;let s=u(e,n),i=c.current.get(s);if(i||(i=new Set,c.current.set(s,i)),i.add(t),!l.current.has(s)&&(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=c.current.get(s);e&&(e.delete(t),0===e.size&&c.current.delete(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))}},[]),M=(0,o.useCallback)((e,t,n,o,s)=>{var i;if(l.current.set(u(e,t),{id:e,projectId:t,tmuxName:n,cols:o,rows:s}),(null==(i=r.current)?void 0:i.readyState)===WebSocket.OPEN){let i={ch:"terminal",id:e,type:"open",...t&&{projectId:t},...n&&{tmuxName:n},...void 0!==o&&{cols:o},...void 0!==s&&{rows:s}};r.current.send(JSON.stringify(i))}},[]),I=(0,o.useCallback)((e,t)=>{var n;if(l.current.delete(u(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))}},[]),O=(0,o.useCallback)((e,t,n,o)=>{var s;if((null==(s=r.current)?void 0:s.readyState)===WebSocket.OPEN){let s={ch:"terminal",id:e,type:"resize",cols:t,rows:n,...o&&{projectId:o}};r.current.send(JSON.stringify(s))}},[]),W=(0,o.useMemo)(()=>({subscribeTerminal:C,writeTerminal:_,openTerminal:M,closeTerminal:I,resizeTerminal:O,status:d,sessions:f,notifications:p,notificationLimit:y,lastError:g,notificationError:w}),[C,_,M,I,O,d,f,p,y,g,w]);return(0,n.jsx)(i.Provider,{value:W,children:t})}},5904:()=>{},7285:(e,t,r)=>{"use strict";r.d(t,{ServiceWorkerRegistrar:()=>o});var n=r(6749);function o(){return(0,n.useEffect)(()=>{"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js").catch(e=>{console.error("Service worker registration failed:",e)})},[]),null}},7900:()=>{},8375:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,763,23)),Promise.resolve().then(r.t.bind(r,3734,23)),Promise.resolve().then(r.t.bind(r,2490,23)),Promise.resolve().then(r.t.bind(r,8536,23)),Promise.resolve().then(r.t.bind(r,7900,23)),Promise.resolve().then(r.t.bind(r,5904,23)),Promise.resolve().then(r.bind(r,1012)),Promise.resolve().then(r.bind(r,7285))},8536:()=>{}},e=>{e.O(0,[9988,3906,5799,131,1461,7358],()=>e(e.s=8375)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2430,2437,2438,2564,2641,2818,2922,2985,3511,3625,3675,4209,4587,4746,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9217,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2430,2437,2438,2564,2641,2818,2922,2985,3511,3625,3675,4209,4587,4746,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9217,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6970,8974],{5788:(e,s,_)=>{Promise.resolve().then(_.bind(_,9531))}},e=>{e.O(0,[8713,2554,1160,1089,1145,7008,9531,131,1461,7358],()=>e(e.s=5788)),_N_E=e.O()}]);
|
package/.next/static/chunks/app/{not-found-cba3f587e1f98dcb.js → not-found-3d7a362f3eaf10aa.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4345,7927],{
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4345,7927],{7300:(r,e,o)=>{Promise.resolve().then(o.bind(o,9789))},9789:(r,e,o)=>{"use strict";o.d(e,{ErrorDisplay:()=>i});var l=o(3817),t=o(8713),a=o.n(t);let n={error:{accent:"var(--color-status-error)",bg:"var(--color-tint-red)",border:"color-mix(in srgb, var(--color-status-error) 24%, transparent)",label:"error"},warning:{accent:"var(--color-status-attention)",bg:"var(--color-tint-yellow)",border:"color-mix(in srgb, var(--color-status-attention) 24%, transparent)",label:"warning"},"not-found":{accent:"var(--color-accent)",bg:"var(--color-tint-blue)",border:"color-mix(in srgb, var(--color-accent) 24%, transparent)",label:"missing"}};function s(r){let{accent:e}=r;return(0,l.jsx)("div",{className:"flex h-14 w-14 items-center justify-center rounded-2xl border",style:{background:"linear-gradient(180deg, color-mix(in srgb, ".concat(e," 16%, var(--color-bg-elevated)) 0%, var(--color-bg-surface) 100%)"),borderColor:"color-mix(in srgb, ".concat(e," 18%, var(--color-border-default))"),boxShadow:"var(--detail-card-shadow)"},children:(0,l.jsxs)("svg",{className:"h-7 w-7",fill:"none",stroke:"currentColor",strokeWidth:"1.6",style:{color:e},viewBox:"0 0 24 24",children:[(0,l.jsx)("rect",{x:"2.5",y:"4.5",width:"19",height:"15",rx:"3"}),(0,l.jsx)("path",{d:"M6.5 9.5l3.25 2.5-3.25 2.5M12.75 15h4.75"})]})})}function c(r){let{action:e,primary:o=!1}=r,t=o?"inline-flex items-center justify-center rounded-full border px-4 py-2 text-[12px] font-semibold transition-colors hover:no-underline":"inline-flex items-center justify-center rounded-full border px-4 py-2 text-[12px] font-medium transition-colors hover:no-underline",n=o?{background:"var(--color-accent)",color:"var(--color-text-inverse)",borderColor:"color-mix(in srgb, var(--color-accent) 72%, transparent)"}:{background:"var(--color-bg-surface)",color:"var(--color-text-secondary)",borderColor:"var(--color-border-default)"};return e.href?(0,l.jsx)(a(),{href:e.href,className:t,style:n,children:e.label}):(0,l.jsx)("button",{type:"button",onClick:e.onClick,className:t,style:n,children:e.label})}function i(r){let{title:e,message:o,tone:t="error",detailsTitle:a="Technical details",error:i,primaryAction:d,secondaryAction:x,compact:b=!1,chrome:u="page",children:m}=r,v=n[t],p=!!((null==i?void 0:i.digest)||(null==i?void 0:i.message)||(null==i?void 0:i.stack));return(0,l.jsx)("div",{className:"flex w-full items-center justify-center px-6 py-10 ".concat(b?"min-h-[calc(100vh-4rem)]":"min-h-screen"),style:{background:"page"===u?"radial-gradient(circle at top, var(--color-body-gradient-blue), transparent 35%), var(--color-bg-base)":"transparent"},children:(0,l.jsx)("div",{className:"w-full max-w-[36rem] rounded-[28px] border p-6 sm:p-8",style:{background:"linear-gradient(180deg, color-mix(in srgb, var(--color-bg-elevated) 88%, transparent) 0%, var(--color-bg-surface) 100%)",borderColor:"var(--color-border-default)",boxShadow:"var(--detail-card-shadow)"},children:(0,l.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,l.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-start",children:[(0,l.jsx)(s,{accent:v.accent}),(0,l.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,l.jsx)("div",{className:"mb-3 inline-flex items-center rounded-full border px-2.5 py-1 font-[var(--font-mono)] text-[10px] font-medium uppercase tracking-[0.22em]",style:{color:v.accent,background:v.bg,borderColor:v.border},children:v.label}),(0,l.jsx)("h1",{className:"text-[24px] font-semibold tracking-[-0.04em] text-[var(--color-text-primary)]",children:e}),(0,l.jsx)("p",{className:"mt-2 max-w-[34rem] text-[14px] leading-6 text-[var(--color-text-secondary)]",children:o})]})]}),(d||x)&&(0,l.jsxs)("div",{className:"flex flex-wrap gap-3",children:[d?(0,l.jsx)(c,{action:d,primary:!0}):null,x?(0,l.jsx)(c,{action:x}):null]}),m,p?(0,l.jsxs)("details",{className:"rounded-2xl border",style:{background:"color-mix(in srgb, var(--color-bg-elevated) 84%, transparent)",borderColor:"var(--color-border-subtle)"},children:[(0,l.jsx)("summary",{className:"cursor-pointer list-none px-4 py-3 text-[12px] font-medium text-[var(--color-text-secondary)]",children:a}),(0,l.jsxs)("div",{className:"border-t px-4 py-4",style:{borderColor:"var(--color-border-subtle)"},children:[(null==i?void 0:i.digest)?(0,l.jsxs)("p",{className:"mb-3 font-[var(--font-mono)] text-[11px] text-[var(--color-text-tertiary)]",children:["digest: ",i.digest]}):null,(null==i?void 0:i.message)?(0,l.jsx)("p",{className:"mb-3 text-[12px] leading-5 text-[var(--color-text-secondary)]",children:i.message}):null,(null==i?void 0:i.stack)?(0,l.jsx)("pre",{className:"overflow-x-auto whitespace-pre-wrap font-[var(--font-mono)] text-[11px] leading-5 text-[var(--color-text-tertiary)]",children:i.stack}):null]})]}):null]})})})}}},r=>{r.O(0,[8713,131,1461,7358],()=>r(r.s=7300)),_N_E=r.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6970,8974],{5788:(e,s,_)=>{Promise.resolve().then(_.bind(_,9531))}},e=>{e.O(0,[8713,2554,1160,1089,1145,7008,9531,131,1461,7358],()=>e(e.s=5788)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2430,2437,2438,2564,2641,2818,2922,2985,3511,3625,3675,4209,4587,4746,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9217,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2430,2437,2438,2564,2641,2818,2922,2985,3511,3625,3675,4209,4587,4746,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9217,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1332],{683:(e,r,t)=>{Promise.resolve().then(t.t.bind(t,8713,23)),Promise.resolve().then(t.bind(t,9531)),Promise.resolve().then(t.bind(t,5275))},5275:(e,r,t)=>{"use strict";t.d(r,{RepairDegradedProjectButton:()=>l});var o=t(3817),n=t(6749),a=t(7594);function l(e){let{projectId:r}=e,t=(0,a.useRouter)(),[l,c]=(0,n.useState)(!1),[i,s]=(0,n.useState)(null),d=async()=>{c(!0),s(null);try{let o=await fetch("/api/projects/".concat(encodeURIComponent(r)),{method:"POST"}),n=await o.json().catch(()=>null);if(!o.ok){var e;s(null!=(e=null==n?void 0:n.error)?e:"Failed to repair project config.");return}t.refresh()}catch(e){s("Network error while repairing project config.")}finally{c(!1)}};return(0,o.jsxs)("div",{className:"mt-6",children:[(0,o.jsx)("button",{type:"button",onClick:()=>void d(),disabled:l,className:"rounded-lg border border-[var(--color-accent)] bg-[var(--color-tint-blue)] px-4 py-2 text-sm font-semibold text-[var(--color-accent)] transition-colors hover:bg-[color-mix(in_srgb,var(--color-accent)_14%,transparent)] disabled:cursor-not-allowed disabled:opacity-60",children:l?"Repairing...":"Repair config"}),i?(0,o.jsx)("p",{className:"mt-3 text-sm text-[var(--color-status-error)]",children:i}):null]})}}},e=>{e.O(0,[8713,2554,1160,1089,1145,7008,9531,131,1461,7358],()=>e(e.s=683)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3610],{8596:(e,t,r)=>{Promise.resolve().then(r.bind(r,9333))},9333:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>j});var n=r(3817),s=r(6749),o=r(7594),a=r(5425),c=r(3916),i=r(9789),l=r(545),u=r(9678),d=r(7387),f=r(4723),h=r(8450),p=r(3394);let m=null;function v(e){if(e instanceof DOMException)return"AbortError"===e.name;if(e instanceof Error){let t=e.message.toLowerCase();return t.includes("aborted")||t.includes("aborterror")}return!1}function g(){return(0,n.jsx)("div",{className:"flex h-full min-h-screen items-center justify-center bg-[var(--color-bg-base)]",children:(0,n.jsxs)("div",{className:"flex flex-col items-center gap-3",children:[(0,n.jsx)("svg",{className:"h-5 w-5 animate-spin text-[var(--color-text-tertiary)]",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,n.jsx)("path",{d:"M12 3a9 9 0 1 0 9 9"})}),(0,n.jsx)("div",{className:"text-[13px] text-[var(--color-text-tertiary)]",children:"Loading session…"})]})})}function j(){var e;let t=(0,o.useParams)(),r=(0,o.usePathname)(),j=(0,o.useRouter)(),y=t.id,b="string"==typeof t.projectId?t.projectId:void 0,x=(()=>{if("undefined"==typeof sessionStorage)return null;try{let e=sessionStorage.getItem("ao-session-nav:".concat(y));if(e)return sessionStorage.removeItem("ao-session-nav:".concat(y)),JSON.parse(e)}catch(e){}return null})(),[w,E]=(0,s.useState)(x),[k,I]=(0,s.useState)(null),[C,N]=(0,s.useState)(void 0),[R,S]=(0,s.useState)([]),[T,M]=(0,s.useState)(null===x),[A,O]=(0,s.useState)(null),[P,L]=(0,s.useState)(!1),[F,_]=(0,s.useState)(new Map),q=null!=(e=null==w?void 0:w.projectId)?e:null,D=[...F.values()],B=!!w&&(0,a.tT)(w,F.get(w.projectId),D),J=(0,s.useRef)(null),U=(0,s.useRef)(!1),W=(0,s.useRef)(null),G=(0,s.useRef)(new Map),Y=(0,s.useRef)(null!==x),Z=(0,s.useRef)(!1),z=(0,s.useRef)(!1),H=(0,s.useRef)(null),K=(0,s.useRef)(null),Q=(0,s.useRef)(!1),V=(0,s.useRef)(!0),X=(0,f.f)(y);(0,s.useEffect)(()=>{G.current=F},[F]),(0,s.useEffect)(()=>{w?document.title=function(e,t,r){var n;let s=e.id,o=void 0!==r?r:e.activity,c=o&&null!=(n=u.R[o])?n:"",i=[...t.values()],l=(0,a.tT)(e,t.get(e.projectId),i)?"Orchestrator Terminal":function(e,t){let r=Array.from(e);return r.length>40?r.slice(0,40).join("")+"...":e}((0,d.Pn)(e),40);return c?"".concat(c," ").concat(s," | ").concat(l):"".concat(s," | ").concat(l)}(w,F,null==X?void 0:X.activity):document.title="".concat(y," | Session Detail")},[w,y,F,X]),(0,s.useEffect)(()=>{J.current=q},[q]),(0,s.useEffect)(()=>{U.current=B},[B]),(0,s.useEffect)(()=>{w&&R.some(e=>e.id===w.projectId)&&(null==r?void 0:r.startsWith("/projects/"))&&b&&w.projectId!==b&&j.replace((0,h.Nc)(w.projectId,w.id))},[b,r,R,j,w]),(0,s.useEffect)(()=>{B||I(null)},[B]);let $=(0,s.useCallback)(async()=>{m&&(S(m),_(new Map(m.map(e=>{var t;return[e.id,null!=(t=e.sessionPrefix)?t:e.id]}))));try{var e,t;let r=await (0,p.uE)("/api/projects",{timeoutMs:5e3,timeoutMessage:"Projects request timed out after ".concat(5e3,"ms")});if(!(null==r?void 0:r.projects))return;e=m,t=r.projects,e&&e.length===t.length&&e.every((e,r)=>JSON.stringify(e)===JSON.stringify(t[r]))||(m=r.projects,S(r.projects),_(new Map(r.projects.map(e=>{var t;return[e.id,null!=(t=e.sessionPrefix)?t:e.id]}))))}catch(e){console.error("Failed to fetch projects:",e)}},[]),ee=(0,s.useCallback)(async()=>{if(Z.current)return;Z.current=!0;let e=new AbortController;H.current=e;try{let t=await (0,p.uE)("/api/sessions/".concat(encodeURIComponent(y)),{signal:e.signal,timeoutMs:8e3,timeoutMessage:"Session request timed out after ".concat(8e3,"ms")});E(t),O(null),L(!1),Y.current=!0}catch(r){if(Q.current||e.signal.aborted||v(r))return;let t=(r instanceof Error?r.message:"Failed to load session").toLowerCase();if(t.includes("session not found")||t.includes("http 404")){Y.current||L(!0),M(!1);return}console.error("Failed to fetch session:",r),Y.current||O(r instanceof Error?r:Error("Failed to load session"))}finally{Z.current=!1,H.current===e&&(H.current=null),!e.signal.aborted||Y.current?M(!1):V.current&&ee()}},[y]),et=(0,s.useCallback)(async()=>{if(z.current)return;let e=J.current;if(!e)return;let t=U.current,r="".concat(e,":").concat(t?"orchestrator":"worker");if(!t&&W.current===r)return;z.current=!0;let n=new AbortController;K.current=n;try{var s,o,c,i,u;let d=t?"/api/sessions?project=".concat(encodeURIComponent(e),"&fresh=true"):"/api/sessions?project=".concat(encodeURIComponent(e),"&orchestratorOnly=true&fresh=true"),f=await (0,p.uE)(d,{signal:n.signal,timeoutMs:5e3,timeoutMessage:"Project sessions request timed out after ".concat(5e3,"ms")}),h=null!=(c=f.sessions)?c:[],m=null!=(u=null!=(i=f.orchestratorId)?i:null==(o=f.orchestrators)||null==(s=o.find(t=>t.projectId===e))?void 0:s.id)?u:null;if(N(e=>e===m?e:m),!t){W.current=r;return}let v={merge:0,respond:0,review:0,pending:0,working:0,done:0},g=[...G.current.values()];for(let e of h)if(!(0,a.tT)(e,G.current.get(e.projectId),g)){let t=(0,l.ng)(e);if("action"===t)continue;v[t]++}I(v)}catch(e){if(Q.current||n.signal.aborted||v(e))return;console.error("Failed to fetch project sessions:",e)}finally{z.current=!1,K.current===n&&(K.current=null)}},[]);return((0,s.useEffect)(()=>{Promise.all([$(),ee()])},[$,ee]),(0,s.useEffect)(()=>{q&&et()},[et,B,q]),(0,s.useEffect)(()=>{let e=setInterval(()=>{ee(),et()},2e3);return()=>clearInterval(e)},[ee,et]),(0,s.useEffect)(()=>{Q.current=!1;let e=()=>{Q.current=!0};return window.addEventListener("pagehide",e),window.addEventListener("beforeunload",e),()=>{window.removeEventListener("pagehide",e),window.removeEventListener("beforeunload",e)}},[]),(0,s.useEffect)(()=>(V.current=!0,()=>{V.current=!1}),[]),(0,s.useEffect)(()=>()=>{var e,t;null==(e=H.current)||e.abort(),null==(t=K.current)||t.abort()},[]),T)?(0,n.jsx)("div",{className:"dashboard-main--desktop",children:(0,n.jsx)(g,{})}):P?(0,n.jsx)("div",{className:"dashboard-main--desktop",children:(0,n.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,n.jsx)(i.ErrorDisplay,{title:"Session not found",message:"This session is no longer available. It may have been removed, renamed, or already cleaned up.",tone:"not-found",primaryAction:{label:"Back to dashboard",href:b?"/projects/".concat(b):"/"},secondaryAction:{label:"Retry",onClick:()=>void ee()},compact:!0,chrome:"card"})})}):A?(0,n.jsx)("div",{className:"dashboard-main--desktop",children:(0,n.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,n.jsx)(i.ErrorDisplay,{title:"Failed to load session",message:function(e){let t=e.message.toLowerCase();return t.includes("timed out")?"The session request is taking too long. You can retry, or return to the project and reopen a different session.":t.includes("network")?"The session request failed before the dashboard got a response. Check the local server connection and try again.":t.includes("404")?"This session is no longer available. It may have been removed while the page was open.":t.includes("500")?"The server returned an internal error while loading this session. Try again to re-fetch the latest state.":"The dashboard could not load this session cleanly. Try again to re-fetch the latest state."}(A),tone:"error",primaryAction:{label:"Try again",onClick:()=>{O(null),L(!1),M(!0),Promise.all([$(),ee()])}},secondaryAction:{label:"Back to dashboard",href:(null==w?void 0:w.projectId)?"/projects/".concat(w.projectId):"/"},error:A,compact:!0,chrome:"card"})})}):w?(0,n.jsx)(c.G,{session:w,isOrchestrator:B,orchestratorZones:null!=k?k:void 0,projectOrchestratorId:C,projects:R}):(0,n.jsx)("div",{className:"dashboard-main--desktop",children:(0,n.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,n.jsx)(i.ErrorDisplay,{title:"Session unavailable",message:"The backend has not returned this session yet. This can happen right after spawning an orchestrator; retry once the terminal registers the session.",tone:"error",primaryAction:{label:"Retry",onClick:()=>void ee()},secondaryAction:{label:"Back to dashboard",href:b?"/projects/".concat(b):"/"},compact:!0,chrome:"card"})})})}}},e=>{e.O(0,[8713,2554,1089,1145,8759,131,1461,7358],()=>e(e.s=8596)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3916],{
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3916],{1990:(e,t,s)=>{Promise.resolve().then(s.t.bind(s,8713,23)),Promise.resolve().then(s.bind(s,2749)),Promise.resolve().then(s.bind(s,5275))},2446:(e,t,s)=>{"use strict";s.d(t,{d:()=>c,t:()=>l});var r=s(3817),n=s(6749),a=s(4901);function i(e,t){return"SHOW"===t.type?{message:t.message,variant:t.variant,key:t.key}:null}let o=(0,n.createContext)(null);function l(e){let{children:t}=e,[s,l]=(0,n.useReducer)(i,null),c=(0,n.useRef)(null),u=(0,n.useRef)(0);(0,n.useEffect)(()=>()=>{null!==c.current&&clearTimeout(c.current)},[]);let d=(0,n.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"info";null!==c.current&&clearTimeout(c.current),u.current+=1,l({type:"SHOW",message:e,variant:t,key:u.current}),c.current=setTimeout(()=>{l({type:"HIDE"}),c.current=null},3e3)},[]);return(0,r.jsxs)(o.Provider,{value:{showToast:d},children:[t,(0,r.jsx)("div",{className:"toast-container",role:"status","aria-live":"polite","aria-atomic":"true",children:s&&(0,r.jsxs)("div",{className:(0,a.cn)("toast","success"===s.variant&&"toast--success","error"===s.variant&&"toast--error","info"===s.variant&&"toast--info"),children:[(0,r.jsx)("span",{className:"toast__icon","aria-hidden":"true"}),(0,r.jsx)("span",{className:"toast__message",children:s.message})]},s.key)})]})}function c(){let e=(0,n.useContext)(o);if(!e)throw Error("useToast must be used within a ToastProvider");return e}},2749:(e,t,s)=>{"use strict";s.d(t,{ProjectSettingsForm:()=>d});var r=s(3817),n=s(6749),a=s(7594),i=s(2446);let o="These describe which repo this is. Change them via `athene project relink`.";function l(e){let{projectId:t,initialValues:s}=e,o=(0,a.useRouter)(),{showToast:l}=(0,i.d)(),[d,m]=(0,n.useState)(s.agent),[h,p]=(0,n.useState)(s.runtime),[j,g]=(0,n.useState)(s.trackerPlugin),[f,_]=(0,n.useState)(s.scmPlugin),[v,x]=(0,n.useState)(s.reactions),[b,y]=(0,n.useState)(!1),[N,k]=(0,n.useState)(null),[P,S]=(0,n.useState)(null),C=(0,n.useMemo)(()=>({agent:d.trim()||null,runtime:h.trim()||null,tracker:j.trim()?{plugin:j.trim()}:null,scm:f.trim()?{plugin:f.trim()}:null,reactions:v}),[d,h,j,f,v]),w=async()=>{let e;k(null),S(null);try{let t=v.trim();e=t?JSON.parse(t):void 0}catch(e){k("Reactions must be valid JSON.");return}y(!0);try{let r=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})}),n=await r.json().catch(()=>null);if(!r.ok){var s;let e=null!=(s=null==n?void 0:n.error)?s:"Failed to save project settings.";400===r.status?k(e):S(e);return}l("Project settings updated.","success"),o.refresh()}catch(e){S("Network error while saving project settings.")}finally{y(!1)}};return(0,r.jsxs)("div",{className:"project-settings-form",children:[(0,r.jsxs)("section",{className:"project-settings-form__section",children:[(0,r.jsxs)("div",{className:"project-settings-form__section-header",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"project-settings-form__eyebrow",children:"Behavior"}),(0,r.jsx)("h2",{className:"project-settings-form__section-title",children:"Runtime configuration"}),(0,r.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,r.jsx)("button",{type:"button",onClick:()=>void w(),disabled:b,className:"project-settings-form__save",children:b?"Saving...":"Save changes"})]}),(0,r.jsxs)("div",{className:"project-settings-form__grid",children:[(0,r.jsx)(c,{id:"agent",label:"Agent",value:d,onChange:m,placeholder:"claude-code"}),(0,r.jsx)(c,{id:"runtime",label:"Runtime",value:h,onChange:p,placeholder:"tmux"}),(0,r.jsx)(c,{id:"tracker-plugin",label:"Tracker plugin",value:j,onChange:g,placeholder:"github"}),(0,r.jsx)(c,{id:"scm-plugin",label:"SCM plugin",value:f,onChange:_,placeholder:"github"})]}),(0,r.jsxs)("div",{className:"project-settings-form__reactions",children:[(0,r.jsx)("label",{htmlFor:"reactions",className:"project-settings-form__label",children:"Reactions"}),(0,r.jsx)("p",{className:"project-settings-form__hint",children:"JSON object keyed by reaction name. This PATCH only sends behavior fields."}),(0,r.jsx)("textarea",{id:"reactions",value:v,onChange:e=>x(e.target.value),spellCheck:!1,rows:12,className:"project-settings-form__textarea project-settings-form__textarea--mono"})]}),N?(0,r.jsx)("div",{role:"alert",className:"project-settings-form__alert project-settings-form__alert--error",children:N}):null,P?(0,r.jsxs)("div",{className:"project-settings-form__alert project-settings-form__alert--surface",children:[(0,r.jsx)("p",{className:"project-settings-form__alert-copy",children:P}),(0,r.jsx)("button",{type:"button",onClick:()=>void w(),className:"project-settings-form__retry",children:"Retry"})]}):null]}),(0,r.jsxs)("section",{className:"project-settings-form__section",children:[(0,r.jsx)("p",{className:"project-settings-form__eyebrow",children:"Identity"}),(0,r.jsx)("h2",{className:"project-settings-form__section-title",children:"Repository identity"}),(0,r.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,r.jsxs)("div",{className:"project-settings-form__grid",children:[(0,r.jsx)(u,{id:"identity-project-id",label:"Project ID",value:s.identity.projectId}),(0,r.jsx)(u,{id:"identity-path",label:"Path",value:s.identity.path}),(0,r.jsx)(u,{id:"identity-repo",label:"Repo",value:s.identity.repo}),(0,r.jsx)(u,{id:"identity-default-branch",label:"Default branch",value:s.identity.defaultBranch})]})]})]})}function c(e){let{id:t,label:s,value:n,onChange:a,placeholder:i}=e;return(0,r.jsxs)("label",{htmlFor:t,className:"project-settings-form__field",children:[(0,r.jsx)("span",{className:"project-settings-form__label",children:s}),(0,r.jsx)("input",{id:t,value:n,onChange:e=>a(e.target.value),placeholder:i,className:"project-settings-form__input"})]})}function u(e){let{id:t,label:s,value:n}=e;return(0,r.jsxs)("label",{htmlFor:t,className:"project-settings-form__field",children:[(0,r.jsx)("span",{className:"project-settings-form__label",children:s}),(0,r.jsx)("input",{id:t,value:n,disabled:!0,readOnly:!0,title:o,"aria-describedby":"".concat(t,"-tooltip"),className:"project-settings-form__input project-settings-form__input--readonly"}),(0,r.jsx)("span",{id:"".concat(t,"-tooltip"),className:"project-settings-form__hint",children:o})]})}function d(e){return(0,r.jsx)(i.t,{children:(0,r.jsx)(l,{...e})})}},4901:(e,t,s)=>{"use strict";function r(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return t.filter(Boolean).join(" ")}s.d(t,{cn:()=>r})},5275:(e,t,s)=>{"use strict";s.d(t,{RepairDegradedProjectButton:()=>i});var r=s(3817),n=s(6749),a=s(7594);function i(e){let{projectId:t}=e,s=(0,a.useRouter)(),[i,o]=(0,n.useState)(!1),[l,c]=(0,n.useState)(null),u=async()=>{o(!0),c(null);try{let r=await fetch("/api/projects/".concat(encodeURIComponent(t)),{method:"POST"}),n=await r.json().catch(()=>null);if(!r.ok){var e;c(null!=(e=null==n?void 0:n.error)?e:"Failed to repair project config.");return}s.refresh()}catch(e){c("Network error while repairing project config.")}finally{o(!1)}};return(0,r.jsxs)("div",{className:"mt-6",children:[(0,r.jsx)("button",{type:"button",onClick:()=>void u(),disabled:i,className:"rounded-lg border border-[var(--color-accent)] bg-[var(--color-tint-blue)] px-4 py-2 text-sm font-semibold text-[var(--color-accent)] transition-colors hover:bg-[color-mix(in_srgb,var(--color-accent)_14%,transparent)] disabled:cursor-not-allowed disabled:opacity-60",children:i?"Repairing...":"Repair config"}),l?(0,r.jsx)("p",{className:"mt-3 text-sm text-[var(--color-status-error)]",children:l}):null]})}},7594:(e,t,s)=>{"use strict";var r=s(9582);s.o(r,"useParams")&&s.d(t,{useParams:function(){return r.useParams}}),s.o(r,"usePathname")&&s.d(t,{usePathname:function(){return r.usePathname}}),s.o(r,"useRouter")&&s.d(t,{useRouter:function(){return r.useRouter}}),s.o(r,"useSearchParams")&&s.d(t,{useSearchParams:function(){return r.useSearchParams}})}},e=>{e.O(0,[8713,131,1461,7358],()=>e(e.s=1990)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5998],{904:(e,t,s)=>{"use strict";s.d(t,{ProjectLayoutClient:()=>d});var n=s(3817),r=s(6749),o=s(7594),i=s(5309),l=s(5184),a=s(1160),u=s(2466),c=s(9120);function d(e){let{children:t,initialSessions:s,initialProjects:d,initialOrchestrators:v}=e,f=(0,o.useParams)(),p=(0,o.usePathname)(),h="string"==typeof f.projectId?f.projectId:void 0,m=function(e){var t;if(!e)return;let s=e.match(/\/sessions\/([^/]+)/);return null!=(t=null==s?void 0:s[1])?t:void 0}(p),b=(0,c.U)(c.D),[w,g]=(0,r.useState)(!1),[E,L]=(0,r.useState)(!1);(0,r.useEffect)(()=>{L(!1)},[p]);let y=(0,l.eT)(),{sessions:k,liveSessionsResolved:R}=(0,i.D)({initialSessions:s,muxSessions:(null==y?void 0:y.status)==="connected"?y.sessions:void 0,muxLastError:null==y?void 0:y.lastError,attentionZones:"simple"}),j=(0,r.useCallback)(()=>{b?L(e=>!e):g(e=>!e)},[b]);return(0,n.jsx)(u.I.Provider,{value:{onToggleSidebar:j,mobileSidebarOpen:E},children:(0,n.jsx)("div",{className:"dashboard-app-shell",children:(0,n.jsxs)("div",{className:"dashboard-shell--desktop".concat(w?" dashboard-shell--sidebar-collapsed":""),children:[(0,n.jsx)("div",{className:"sidebar-wrapper".concat(E?" sidebar-wrapper--mobile-open":""),children:(0,n.jsx)(a.u,{projects:d,sessions:k,orchestrators:v,activeProjectId:h,activeSessionId:m,loading:!R,collapsed:w,onToggleCollapsed:()=>g(e=>!e),onMobileClose:()=>L(!1)})}),E&&(0,n.jsx)("div",{className:"sidebar-mobile-backdrop",onClick:()=>L(!1)}),t]})})})}},2466:(e,t,s)=>{"use strict";s.d(t,{I:()=>r,V:()=>o});var n=s(6749);let r=(0,n.createContext)(null);function o(){return(0,n.useContext)(r)}},5309:(e,t,s)=>{"use strict";s.d(t,{D:()=>d});var n=s(6749),r=s(545),o=s(3394);let i=new Set(["merge","action","respond","review","pending","working","done"]),l=new Set(["active","ready","idle","waiting_input","blocked","exited"]),a=new Set(["spawning","working","detecting","pr_open","ci_failed","review_pending","changes_requested","approved","mergeable","merged","cleanup","needs_input","stuck","errored","killed","idle","done","terminated"]);function u(e,t){switch(t.type){case"setLoadError":return e.loadError===t.error?e:{...e,loadError:t.error};case"reset":return{...e,sessions:t.sessions,...t.liveResolved?{liveSessionsResolved:!0,loadError:null}:{},...void 0!==t.attentionLevels?{attentionLevels:t.attentionLevels}:{}};case"snapshot":{let s=new Map(t.patches.map(e=>[e.id,e])),n=!1,r=e.sessions.map(e=>{let t=s.get(e.id);return t&&(e.status!==t.status||e.activity!==t.activity||e.lastActivityAt!==t.lastActivityAt)?(n=!0,{...e,status:a.has(t.status)?t.status:e.status,activity:null!==t.activity&&l.has(t.activity)?t.activity:null,lastActivityAt:t.lastActivityAt}):e}),o={};for(let e of t.patches){if(!i.has(e.attentionLevel)){console.warn("[useSessionEvents] Unknown attentionLevel from server:",e.attentionLevel);continue}o[e.id]=e.attentionLevel}let u=n,c=Object.keys(o).length!==Object.keys(e.attentionLevels).length||t.patches.some(t=>e.attentionLevels[t.id]!==t.attentionLevel);if(!u&&!c){if(e.liveSessionsResolved)return e;return{...e,liveSessionsResolved:!0}}return{...e,sessions:u?r:e.sessions,attentionLevels:c?o:e.attentionLevels,liveSessionsResolved:!0}}}}function c(e){return e.map(e=>e.id).sort().join("\0")}function d(e){let{initialSessions:t,project:s,muxSessions:i,initialAttentionLevels:l,muxLastError:a,disabled:d=!1,attentionZones:v}=e,[f,p]=(0,n.useReducer)(u,{sessions:t,attentionLevels:null!=l?l:{},liveSessionsResolved:!1,loadError:null}),h=(0,n.useRef)(f.sessions),m=(0,n.useRef)(l);m.current=l;let b=(0,n.useRef)(null),w=(0,n.useRef)(null),g=(0,n.useRef)(0),E=(0,n.useRef)(0),L=(0,n.useRef)(null),y=(0,n.useRef)(!1);(0,n.useEffect)(()=>{h.current=f.sessions},[f.sessions]),(0,n.useEffect)(()=>{var e;p({type:"reset",sessions:t,attentionLevels:null!=(e=m.current)?e:{}})},[t]),(0,n.useEffect)(()=>{y.current=!1;let e=()=>{y.current=!0};return window.addEventListener("pagehide",e),window.addEventListener("beforeunload",e),()=>{window.removeEventListener("pagehide",e),window.removeEventListener("beforeunload",e)}},[]);let k=(0,n.useCallback)(()=>{b.current||Date.now()-E.current<500||null===L.current&&(b.current=setTimeout(()=>{if(b.current=null,null!==L.current)return;let e=w.current,t=new AbortController;L.current=t,E.current=Date.now();let n=s?"/api/sessions?project=".concat(encodeURIComponent(s)):"/api/sessions";(0,o.uE)(n,{signal:t.signal,cache:"no-store",timeoutMs:6e3,timeoutMessage:"Dashboard refresh timed out after ".concat(6e3,"ms")}).then(e=>{if(t.signal.aborted||!(null==e?void 0:e.sessions)){t.signal.aborted||(g.current=Date.now());return}g.current=Date.now();let s=Object.fromEntries(e.sessions.map(e=>[e.id,(0,r.ng)(e,v)]));p({type:"reset",sessions:e.sessions,attentionLevels:s,liveResolved:!0})}).catch(e=>{y.current||t.signal.aborted||function(e){if(e instanceof DOMException)return"AbortError"===e.name;if(e instanceof Error){let t=e.message.toLowerCase();return t.includes("aborted")||t.includes("aborterror")}return!1}(e)||(console.warn("[useSessionEvents] refresh failed:",e),g.current=Date.now())}).finally(()=>{if(L.current===t&&(L.current=null),t.signal.aborted){null!==w.current&&k();return}if(null!==w.current&&w.current!==e)return void k();w.current=null})},120))},[s,v]);return(0,n.useEffect)(()=>{d||p({type:"setLoadError",error:null!=a?a:null})},[d,a]),(0,n.useEffect)(()=>{if(d||!i)return;let e=new Set(h.current.map(e=>e.id)),t=i.filter(t=>e.has(t.id)),s=i.some(t=>!e.has(t.id));p({type:"snapshot",patches:t});let n=c(h.current),r=c(t);return s||n!==r?(w.current=r,k()):Date.now()-g.current>=15e3&&k(),()=>{var e;null==(e=L.current)||e.abort(),L.current=null}},[d,i,k]),(0,n.useEffect)(()=>()=>{var e;b.current&&(clearTimeout(b.current),b.current=null),null==(e=L.current)||e.abort(),L.current=null},[]),f}},8019:(e,t,s)=>{Promise.resolve().then(s.bind(s,904))}},e=>{e.O(0,[8713,2554,1160,1089,131,1461,7358],()=>e(e.s=8019)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6450],{2537:(e,s,r)=>{"use strict";r.d(s,{X:()=>o});var a=r(3817),t=r(8713),l=r.n(t);function o(e){let{ariaLabel:s,activeTab:r,dashboardHref:t,prsHref:o,showOrchestrator:n=!0,orchestratorHref:c=null}=e;return(0,a.jsxs)("nav",{className:"mobile-bottom-nav","aria-label":s,children:[(0,a.jsxs)(l(),{href:t,className:"mobile-bottom-nav__item","data-active":"dashboard"===r?"true":"false","aria-current":"dashboard"===r?"page":void 0,children:[(0,a.jsx)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M3 13h8V3H3zm10 8h8V11h-8zM3 21h8v-6H3zm10-10h8V3h-8z"})}),(0,a.jsx)("span",{children:"Dashboard"})]}),(0,a.jsxs)(l(),{href:o,className:"mobile-bottom-nav__item","data-active":"prs"===r?"true":"false","aria-current":"prs"===r?"page":void 0,children:[(0,a.jsx)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01"})}),(0,a.jsx)("span",{children:"PRs"})]}),n?c?(0,a.jsxs)(l(),{href:c,className:"mobile-bottom-nav__item","data-active":"orchestrator"===r?"true":"false","aria-current":"orchestrator"===r?"page":void 0,children:[(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M9 3H5a2 2 0 0 0-2 2v4m16 0V5a2 2 0 0 0-2-2h-4m0 18h4a2 2 0 0 0 2-2v-4M3 15v4a2 2 0 0 0 2 2h4"}),(0,a.jsx)("path",{d:"M9 9h6v6H9z"})]}),(0,a.jsx)("span",{children:"Orchestrator"})]}):(0,a.jsxs)("button",{type:"button",className:"mobile-bottom-nav__item",disabled:!0,children:[(0,a.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M9 3H5a2 2 0 0 0-2 2v4m16 0V5a2 2 0 0 0-2-2h-4m0 18h4a2 2 0 0 0 2-2v-4M3 15v4a2 2 0 0 0 2 2h4"}),(0,a.jsx)("path",{d:"M9 9h6v6H9z"})]}),(0,a.jsx)("span",{children:"Orchestrator"})]}):null]})}},6802:(e,s,r)=>{"use strict";r.d(s,{PullRequestsPage:()=>g});var a=r(3817),t=r(6749),l=r(7594),o=r(9120),n=r(545),c=r(5309),d=r(5184),i=r(1160),p=r(6004),h=r(7848),m=r(1237),x=r(2537);function b(e,s){return s?"".concat(e,"?project=").concat(encodeURIComponent(s)):"".concat(e,"?project=all")}r(5425);var u=r(8450);let j=[];function v(e){return"open"===e?"Open PRs":"merged"===e?"Merged PRs":"closed"===e?"Closed PRs":"All PRs"}function g(e){let{initialSessions:s,projectId:r,projectName:g,projects:N=[],orchestrators:f,attentionZones:_="simple"}=e,M=null!=f?f:j,k=(0,d.eT)(),y=(0,t.useMemo)(()=>{let e={};for(let r of s)e[r.id]=(0,n.ng)(r,_);return e},[s,_]),{sessions:w,attentionLevels:C}=(0,c.D)({initialSessions:s,project:r,muxSessions:(null==k?void 0:k.status)==="connected"?k.sessions:void 0,initialAttentionLevels:y,attentionZones:_}),P=(0,l.useSearchParams)(),[R,O]=(0,t.useState)(!1),[q,S]=(0,t.useState)(!1),H=(0,o.U)(o.D),z=N.length>1,I=z&&void 0===r,B=(0,t.useMemo)(()=>{var e;return r&&null!=(e=M.find(e=>e.projectId===r))?e:null},[M,r]),[W,T]=(0,t.useState)("all"),V=(0,t.useMemo)(()=>w.filter(e=>!!e.pr).map(e=>e.pr).sort((e,s)=>s.number-e.number),[w]),E=(0,t.useMemo)(()=>V.filter(e=>"open"===e.state),[V]),F=(0,t.useMemo)(()=>V.filter(e=>"merged"===e.state),[V]),G=(0,t.useMemo)(()=>V.filter(e=>"closed"===e.state),[V]),A=r?(0,u.bn)(r):b("/",r),D=b("/prs",r),U=B?(0,u.Nc)(B.projectId,B.id):null,L="open"===W?E:"merged"===W?F:"closed"===W?G:V;return(0,t.useEffect)(()=>{S(!1)},[P]),(0,a.jsxs)("div",{className:"dashboard-shell flex h-screen".concat(!H&&R?" dashboard-shell--sidebar-collapsed":""),children:[z?(0,a.jsx)("div",{className:"sidebar-wrapper".concat(q?" sidebar-wrapper--mobile-open":""),children:(0,a.jsx)(i.u,{projects:N,sessions:w,orchestrators:M,activeProjectId:r,activeSessionId:void 0,collapsed:R,onToggleCollapsed:()=>O(e=>!e),onMobileClose:()=>S(!1)})}):null,q&&(0,a.jsx)("div",{className:"sidebar-mobile-backdrop",onClick:()=>S(!1)}),(0,a.jsxs)("div",{className:"dashboard-main flex-1 overflow-y-auto px-4 py-4 md:px-7 md:py-6",children:[(0,a.jsx)(h.u,{attentionLevels:C,projectName:g?"".concat(g," PRs"):"Pull Requests"}),H?(0,a.jsxs)("section",{className:"mobile-pr-page-header",children:[(0,a.jsxs)("div",{className:"mobile-pr-page-header__top",children:[(0,a.jsxs)("div",{className:"mobile-pr-page-header__title-row",children:[z?(0,a.jsx)("button",{type:"button",className:"mobile-menu-toggle",onClick:()=>S(!0),"aria-label":"Open menu",children:(0,a.jsx)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",className:"h-5 w-5",children:(0,a.jsx)("path",{d:"M4 6h16M4 12h16M4 18h16"})})}):null,(0,a.jsx)("h1",{className:"mobile-pr-page-header__title",children:g?"".concat(g," PRs"):"Pull Requests"})]}),(0,a.jsxs)("div",{className:"mobile-pr-page-header__meta",children:[(0,a.jsx)("span",{className:"mobile-pr-page-header__count",children:V.length}),(0,a.jsx)(p.U,{})]})]}),(0,a.jsxs)("p",{className:"mobile-pr-page-header__subtitle",children:["Open pull requests created by agents",I?" across projects":" in this project","."]})]}):(0,a.jsxs)("section",{className:"dashboard-hero mb-5",children:[(0,a.jsx)("div",{className:"dashboard-hero__backdrop"}),(0,a.jsxs)("div",{className:"dashboard-hero__content",children:[z?(0,a.jsx)("button",{type:"button",className:"mobile-menu-toggle",onClick:()=>S(!0),"aria-label":"Open menu",children:(0,a.jsx)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",className:"h-5 w-5",children:(0,a.jsx)("path",{d:"M4 6h16M4 12h16M4 18h16"})})}):null,(0,a.jsxs)("div",{className:"dashboard-hero__primary",children:[(0,a.jsx)("div",{className:"dashboard-hero__heading",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"dashboard-title",children:g?"".concat(g," PRs"):"Pull Requests"}),(0,a.jsxs)("p",{className:"dashboard-subtitle",children:["Open pull requests created by agents",I?" across all projects":" in this project","."]})]})}),(0,a.jsx)("div",{className:"dashboard-stat-cards dashboard-stat-cards--persist-mobile",children:(0,a.jsxs)("div",{className:"dashboard-stat-card",children:[(0,a.jsx)("span",{className:"dashboard-stat-card__value",children:E.length}),(0,a.jsx)("span",{className:"dashboard-stat-card__label",children:"Open PRs"}),(0,a.jsx)("span",{className:"dashboard-stat-card__meta",children:I?"Across all projects":"In this project"})]})})]})]})]}),(0,a.jsxs)("section",{className:"mx-auto max-w-[900px]",children:[(0,a.jsx)("div",{className:H?"mobile-pr-filter-tabs":"mb-4 flex items-center gap-1.5",children:[{value:"all",label:"All",count:V.length},{value:"open",label:"Open",count:E.length},{value:"merged",label:"Merged",count:F.length},{value:"closed",label:"Closed",count:G.length}].map(e=>{let{value:s,label:r,count:t}=e;return(0,a.jsxs)("button",{type:"button",onClick:()=>T(s),className:H?"mobile-pr-filter-tab":["inline-flex items-center gap-1.5 rounded-md border px-2.5 py-1 text-[11px] font-semibold transition-colors",W===s?"border-[var(--color-border-default)] bg-[var(--color-bg-elevated)] text-[var(--color-text-primary)]":"border-transparent bg-transparent text-[var(--color-text-muted)] hover:text-[var(--color-text-secondary)]"].join(" "),"data-active":H?String(W===s):void 0,children:[r,(0,a.jsx)("span",{className:H?"mobile-pr-filter-tab__count":"rounded-full bg-[var(--color-chip-bg)] px-1.5 py-px text-[9.5px] font-mono text-[var(--color-text-muted)]",children:t})]},s)})}),H?(0,a.jsx)("div",{className:"mobile-pr-mobile-layout",children:"all"===W?(0,a.jsxs)(a.Fragment,{children:[E.length>0&&(0,a.jsxs)("section",{className:"mobile-pr-group","aria-label":"Open pull requests",children:[(0,a.jsxs)("div",{className:"mobile-pr-section-header",children:[(0,a.jsx)("span",{children:"Open"}),(0,a.jsx)("span",{children:E.length})]}),(0,a.jsx)("div",{className:"mobile-pr-list",children:E.map(e=>(0,a.jsx)(m.dG,{pr:e},"".concat(e.owner,"/").concat(e.repo,"-").concat(e.number)))})]}),F.length>0&&(0,a.jsxs)("section",{className:"mobile-pr-group","aria-label":"Merged pull requests",children:[(0,a.jsxs)("div",{className:"mobile-pr-section-header",children:[(0,a.jsx)("span",{children:"Merged"}),(0,a.jsx)("span",{children:F.length})]}),(0,a.jsx)("div",{className:"mobile-pr-list",children:F.map(e=>(0,a.jsx)(m.dG,{pr:e,muted:!0},"".concat(e.owner,"/").concat(e.repo,"-").concat(e.number)))})]}),G.length>0&&(0,a.jsxs)("section",{className:"mobile-pr-group","aria-label":"Closed pull requests",children:[(0,a.jsxs)("div",{className:"mobile-pr-section-header",children:[(0,a.jsx)("span",{children:"Closed"}),(0,a.jsx)("span",{children:G.length})]}),(0,a.jsx)("div",{className:"mobile-pr-list",children:G.map(e=>(0,a.jsx)(m.dG,{pr:e,muted:!0},"".concat(e.owner,"/").concat(e.repo,"-").concat(e.number)))})]}),0===V.length&&(0,a.jsx)("div",{className:"mobile-pr-empty",children:"No pull requests yet."})]}):(0,a.jsxs)("section",{className:"mobile-pr-group","aria-label":v(W),children:[(0,a.jsxs)("div",{className:"mobile-pr-section-header",children:[(0,a.jsx)("span",{children:v(W).replace(" PRs","")}),(0,a.jsx)("span",{children:L.length})]}),(0,a.jsx)("div",{className:"mobile-pr-list",children:L.length>0?L.map(e=>(0,a.jsx)(m.dG,{pr:e,muted:"open"!==W},"".concat(e.owner,"/").concat(e.repo,"-").concat(e.number))):(0,a.jsx)("div",{className:"mobile-pr-empty",children:"No pull requests in this view."})})]})}):(0,a.jsx)("div",{className:"overflow-hidden rounded-[7px] border border-[var(--color-border-subtle)]",children:(0,a.jsxs)("table",{className:"w-full border-collapse",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{className:"border-b border-[var(--color-border-subtle)] bg-[var(--color-bg-elevated)]",children:[(0,a.jsx)("th",{className:"px-3 py-2 text-left text-[10.5px] font-mono font-500 uppercase tracking-[0.05em] text-[var(--color-text-muted)]",children:"PR"}),(0,a.jsx)("th",{className:"px-3 py-2 text-left text-[10.5px] font-mono font-500 uppercase tracking-[0.05em] text-[var(--color-text-muted)]",children:"Title"}),(0,a.jsx)("th",{className:"px-3 py-2 text-left text-[10.5px] font-mono font-500 uppercase tracking-[0.05em] text-[var(--color-text-muted)]",children:"Size"}),(0,a.jsx)("th",{className:"px-3 py-2 text-left text-[10.5px] font-mono font-500 uppercase tracking-[0.05em] text-[var(--color-text-muted)]",children:"CI"}),(0,a.jsx)("th",{className:"px-3 py-2 text-left text-[10.5px] font-mono font-500 uppercase tracking-[0.05em] text-[var(--color-text-muted)]",children:"Review"}),(0,a.jsx)("th",{className:"px-3 py-2 text-left text-[10.5px] font-mono font-500 uppercase tracking-[0.05em] text-[var(--color-text-muted)]",children:"Threads"})]})}),(0,a.jsxs)("tbody",{children:[("all"===W||"open"===W)&&E.length>0&&(0,a.jsxs)(a.Fragment,{children:["all"===W&&(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:6,className:"border-b border-[var(--color-border-subtle)] bg-[var(--color-bg-base)] px-3 py-1.5 text-[9.5px] font-mono font-semibold uppercase tracking-[0.06em] text-[var(--color-text-muted)]",children:"Open"})}),E.map(e=>(0,a.jsx)(m.j6,{pr:e},"".concat(e.owner,"/").concat(e.repo,"-").concat(e.number)))]}),("all"===W||"merged"===W)&&F.length>0&&(0,a.jsxs)(a.Fragment,{children:["all"===W&&(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:6,className:"border-b border-t border-[var(--color-border-subtle)] bg-[var(--color-bg-base)] px-3 py-1.5 text-[9.5px] font-mono font-semibold uppercase tracking-[0.06em] text-[var(--color-text-muted)]",children:"Merged"})}),F.map(e=>(0,a.jsx)(m.j6,{pr:e,muted:!0},"".concat(e.owner,"/").concat(e.repo,"-").concat(e.number)))]}),("all"===W||"closed"===W)&&G.length>0&&(0,a.jsxs)(a.Fragment,{children:["all"===W&&(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:6,className:"border-b border-t border-[var(--color-border-subtle)] bg-[var(--color-bg-base)] px-3 py-1.5 text-[9.5px] font-mono font-semibold uppercase tracking-[0.06em] text-[var(--color-text-muted)]",children:"Closed"})}),G.map(e=>(0,a.jsx)(m.j6,{pr:e,muted:!0},"".concat(e.owner,"/").concat(e.repo,"-").concat(e.number)))]}),0===V.length&&(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:6,className:"px-4 py-6 text-[12px] text-[var(--color-text-secondary)]",children:"No pull requests yet."})})]})]})})]})]}),H?(0,a.jsx)(x.X,{ariaLabel:"PR navigation",activeTab:"prs",dashboardHref:A,prsHref:D,showOrchestrator:!I,orchestratorHref:U}):null]})}},9400:(e,s,r)=>{Promise.resolve().then(r.bind(r,6802))}},e=>{e.O(0,[8713,2554,1160,1089,7008,131,1461,7358],()=>e(e.s=9400)),_N_E=e.O()}]);
|
package/.next/static/chunks/app/review/{page-022b2d2c326ff413.js → page-13ec034d995001ab.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8975],{1735:(e,r,n)=>{"use strict";n.d(r,{ReviewDashboard:()=>R});var a=n(3817),s=n(8713),t=n.n(s),i=n(7594),l=n(6749),d=n(9120);let o=["queued","reviewing","triage","waiting","clean","failed","outdated"],c={queued:"Queued",reviewing:"Reviewing",triage:"Triage",waiting:"Waiting",clean:"Clean",failed:"Failed",outdated:"Outdated"};var u=n(8450),h=n(4115),p=n(2446),m=n(2466);let w=[],v=[],x=[],j=[],_={queued:"Review work requested but not executing yet.",reviewing:"A reviewer is reading a snapshot.",triage:"Findings need a human decision.",waiting:"Feedback is with the coding worker.",clean:"No open AO findings remain.",failed:"Reviewer runs that need retry or inspection.",outdated:"Runs superseded by newer worker commits."},g=new Set(["queued","needs_triage","sent_to_agent","waiting_update","clean"]);function k(e){let r=Date.parse(e);if(Number.isNaN(r))return e;let n=Math.floor((Date.now()-r)/6e4);if(n<1)return"just now";if(n<60)return"".concat(n,"m ago");let a=Math.floor(n/60);return a<24?"".concat(a,"h ago"):"".concat(Math.floor(a/24),"d ago")}function b(e){return e.replaceAll("_"," ")}function f(e,r){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"".concat(r,"s");return"".concat(e," ").concat(1===e?r:n)}function N(e){return!!e.workerHasRuntime&&"exited"!==e.workerActivity&&"missing"!==e.workerRuntimeState&&"exited"!==e.workerRuntimeState}function y(e){var r,n;return e.workerHasRuntime?"exited"===e.workerActivity?"exited":"missing"===e.workerRuntimeState?"runtime missing":"exited"===e.workerRuntimeState?"runtime exited":null!=(n=null!=(r=e.workerActivity)?r:e.workerStatus)?n:"worker":"no runtime"}function S(e){var r;let{runs:n=w,sidebarSessions:s=v,orchestrators:c=x,workerOptions:_=j,projectId:k,projectName:b,projects:N,dashboardLoadError:y}=e,{showToast:S}=(0,p.d)(),R=(0,i.useRouter)(),F=(0,l.useRef)(null),[E,M]=(0,l.useState)(n),[P,T]=(0,l.useState)(c),[A,B]=(0,l.useState)(null),[q,L]=(0,l.useState)(()=>new Set),[U,W]=(0,l.useState)(()=>new Set),[H,D]=(0,l.useState)(null),[V,J]=(0,l.useState)(!1),[Z,$]=(0,l.useState)(null),[Q,z]=(0,l.useState)(!1),[G,K]=(0,l.useState)(!1),X=(0,d.U)(d.D);(0,l.useEffect)(()=>{M(n)},[n]),(0,l.useEffect)(()=>{T(e=>(function(e,r){let n=new Map(e.map(e=>[e.projectId,e]));for(let e of r)n.set(e.projectId,e);return Array.from(n.values())})(e,c))},[c]),(0,l.useEffect)(()=>{if(!V)return;let e=e=>{F.current&&!F.current.contains(e.target)&&J(!1)},r=e=>{"Escape"===e.key&&J(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",r),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",r)}},[V]),(0,l.useEffect)(()=>{if(!Z)return;let e=e=>{"Escape"===e.key&&$(null)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[Z]);let Y=(0,l.useMemo)(()=>{let e={queued:[],reviewing:[],triage:[],waiting:[],clean:[],failed:[],outdated:[]};for(let r of E)e[function(e){switch(e.status){case"queued":case"preparing":return"queued";case"running":return"reviewing";case"needs_triage":return"triage";case"sent_to_agent":case"waiting_update":return"waiting";case"clean":return"clean";case"failed":case"cancelled":return"failed";case"outdated":return"outdated"}}(r)].push(r);return e},[E]),ee=!k,er=E.reduce((e,r)=>e+r.openFindingCount,0),en=E.filter(e=>["queued","preparing","running","needs_triage","sent_to_agent","waiting_update"].includes(e.status)).length,ea=k&&null!=(r=P.find(e=>e.projectId===k))?r:null,es=ea?(0,u.Nc)(ea.projectId,ea.id):null,et=k?_.filter(e=>e.projectId===k):_,ei=k?(0,u.bn)(k):"/?project=all",el=(0,u.nF)(k),ed=()=>{X?K(e=>!e):z(e=>!e)},eo=async e=>{if(!A){B(e.id);try{var r,n,a;let s=await fetch("/api/reviews",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:e.id})}),t=await s.json().catch(()=>null);if(!s.ok||!(null==t?void 0:t.run))throw Error(null!=(r=null==t?void 0:t.error)?r:"Failed to request review");let i={...t.run,projectName:e.projectName,workerTitle:e.title,workerBranch:e.branch,workerPrUrl:null!=(a=null!=(n=e.prUrl)?n:t.run.prUrl)?a:null,workerStatus:e.status,workerActivity:e.activity,workerRuntimeState:e.runtimeState,workerHasRuntime:e.hasRuntime};M(e=>{var r;return[i,...(r=e.filter(e=>e.id!==i.id),i.targetSha?r.map(e=>e.linkedSessionId===i.linkedSessionId&&e.id!==i.id&&e.targetSha&&e.targetSha!==i.targetSha&&g.has(e.status)?{...e,status:"outdated"}:e):r)]}),J(!1),S("Review run requested","success")}catch(r){let e=r instanceof Error?r.message:"Failed to request review";S("Review failed: ".concat(e),"error")}finally{B(null)}}},ec=async e=>{if(!q.has(e.id)){L(r=>{let n=new Set(r);return n.add(e.id),n}),M(r=>r.map(r=>r.id===e.id?{...r,status:"running"}:r));try{var r,n;let a=await fetch("/api/reviews/execute",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:e.projectId,runId:e.id,force:"failed"===e.status})}),s=await a.json().catch(()=>null);if(!a.ok||!(null==s?void 0:s.run))throw Error(null!=(r=null==s?void 0:s.error)?r:"Failed to execute review");if(M(r=>r.map(r=>r.id===e.id?{...r,...s.run,projectName:r.projectName,workerTitle:r.workerTitle,workerBranch:r.workerBranch,workerPrUrl:r.workerPrUrl,workerStatus:r.workerStatus,workerActivity:r.workerActivity,workerRuntimeState:r.workerRuntimeState,workerHasRuntime:r.workerHasRuntime}:r)),"failed"===s.run.status)return void S("Review failed: ".concat(null!=(n=s.run.terminationReason)?n:"Reviewer execution failed"),"error");S(s.run.openFindingCount>0?"Review findings ready":"Review completed clean","success")}catch(n){let r=n instanceof Error?n.message:"Failed to execute review";M(r=>r.map(r=>r.id===e.id?{...r,status:"failed"}:r)),S("Review failed: ".concat(r),"error")}finally{L(r=>{let n=new Set(r);return n.delete(e.id),n})}}},eu=(e,r)=>({...e,...r,projectName:e.projectName,workerTitle:e.workerTitle,workerBranch:e.workerBranch,workerPrUrl:e.workerPrUrl,workerStatus:e.workerStatus,workerActivity:e.workerActivity,workerRuntimeState:e.workerRuntimeState,workerHasRuntime:e.workerHasRuntime}),eh=async e=>{if(!U.has(e.id)&&0!==e.openFindingCount){W(r=>{let n=new Set(r);return n.add(e.id),n});try{var r,n;let a=await fetch("/api/reviews/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:e.projectId,runId:e.id})}),s=await a.json().catch(()=>null);if(!a.ok||!(null==s?void 0:s.run))throw Error(null!=(r=null==s?void 0:s.error)?r:"Failed to send review findings");M(r=>r.map(r=>r.id===e.id?eu(r,s.run):r)),$(r=>{if(!r||r.run.id!==e.id)return r;let n=new Date().toISOString();return{...r,run:eu(r.run,s.run),findings:r.findings.map(e=>"open"===e.status?{...e,status:"sent_to_agent",sentToAgentAt:n}:e)}}),S("Sent ".concat(f(null!=(n=s.sentFindingCount)?n:0,"finding")," to ").concat(e.linkedSessionId),"success"),R.push((0,u.$l)(e.projectId,e.linkedSessionId,"#session-terminal-section"))}catch(r){let e=r instanceof Error?r.message:"Failed to send review findings";S("Feedback failed: ".concat(e),"error")}finally{W(r=>{let n=new Set(r);return n.delete(e.id),n})}}},ep=async e=>{if(!H){D(e.id);try{let n=await fetch("/api/sessions/".concat(encodeURIComponent(e.id),"/restore"),{method:"POST"}),a=await n.json().catch(()=>null);if(!n.ok){var r;throw Error(null!=(r=null==a?void 0:a.error)?r:"Failed to restore orchestrator")}T(r=>r.map(r=>{var n,s,t,i,l,d,o;return r.id===e.id?{...r,status:null!=(l=null==a||null==(n=a.session)?void 0:n.status)?l:r.status,activity:null!=(d=null==a||null==(s=a.session)?void 0:s.activity)?d:r.activity,runtimeState:null!=(o=null==a||null==(i=a.session)||null==(t=i.lifecycle)?void 0:t.runtimeState)?o:"alive",hasRuntime:!0,isTerminal:!1,isRestorable:!1}:r})),S("Orchestrator restored","success"),R.push((0,u.Nc)(e.projectId,e.id))}catch(r){let e=r instanceof Error?r.message:"Failed to restore orchestrator";S("Restore failed: ".concat(e),"error")}finally{D(null)}}},em=async e=>{$({run:e,findings:[],loading:!0,error:null});try{let n=new URLSearchParams({projectId:e.projectId,runId:e.id}),a=await fetch("/api/reviews/findings?".concat(n.toString())),s=await a.json().catch(()=>null);if(!a.ok||!(null==s?void 0:s.findings)){var r;throw Error(null!=(r=null==s?void 0:s.error)?r:"Failed to load review findings")}$(r=>{var n;return(null==r?void 0:r.run.id)===e.id?{...r,findings:null!=(n=s.findings)?n:[],loading:!1,error:null}:r})}catch(n){let r=n instanceof Error?n.message:"Failed to load review findings";$(n=>(null==n?void 0:n.run.id)===e.id?{...n,findings:[],loading:!1,error:r}:n)}};return(0,a.jsx)(m.I.Provider,{value:{onToggleSidebar:ed,mobileSidebarOpen:G},children:(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:X?(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:"Athene"})]}),(0,a.jsx)("span",{className:"dashboard-app-header__sep","aria-hidden":"true"}),(0,a.jsx)("span",{className:"dashboard-app-header__project",children:null!=b?b:ee?"All projects":"Reviews"}),(0,a.jsxs)("nav",{className:"workspace-mode-switch","aria-label":"Workspace mode",children:[(0,a.jsx)(t(),{href:ei,className:"workspace-mode-switch__item",children:"Coding"}),(0,a.jsx)(t(),{href:el,className:"workspace-mode-switch__item workspace-mode-switch__item--active","aria-current":"page",children:"Reviews"})]}),(0,a.jsx)("div",{className:"dashboard-app-header__spacer"}),(0,a.jsxs)("div",{className:"dashboard-app-header__actions",children:[!ee&&ea&&es?ea.isRestorable?(0,a.jsxs)("button",{type:"button",className:"dashboard-app-btn dashboard-app-btn--amber",disabled:H===ea.id,onClick:()=>void ep(ea),children:[(0,a.jsxs)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"1.8",viewBox:"0 0 24 24","aria-hidden":"true",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"})]}),H===ea.id?"Restoring":"Restore orchestrator"]}):(0,a.jsxs)(t(),{href:es,className:"dashboard-app-btn dashboard-app-btn--amber","aria-label":"Open project 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"]}):null,(0,a.jsxs)("div",{className:"review-new-menu",ref:F,children:[(0,a.jsxs)("button",{type:"button",className:"dashboard-app-btn","aria-haspopup":"menu","aria-expanded":V,disabled:0===et.length,onClick:()=>J(e=>!e),children:[(0,a.jsx)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M12 5v14M5 12h14"})}),"New Review"]}),V?(0,a.jsx)("div",{className:"review-new-menu__popover",role:"menu",children:et.map(e=>(0,a.jsxs)("button",{type:"button",role:"menuitem",className:"review-new-menu__item",disabled:null!==A,onClick:()=>void eo(e),children:[(0,a.jsx)("span",{className:"review-new-menu__item-title",children:e.title}),(0,a.jsxs)("span",{className:"review-new-menu__item-meta",children:[ee?"".concat(e.projectName," \xb7 "):"",e.id,e.branch?" \xb7 ".concat(e.branch):"",e.prNumber?" \xb7 PR #".concat(e.prNumber):""]})]},e.id))}):null]})]})]}),(0,a.jsxs)("div",{className:"dashboard-shell dashboard-shell--desktop".concat(Q?" dashboard-shell--sidebar-collapsed":""),children:[(0,a.jsx)("div",{className:"sidebar-wrapper".concat(G?" sidebar-wrapper--mobile-open":""),children:(0,a.jsx)(h.u,{projects:N,sessions:s,orchestrators:P,activeProjectId:k,activeSessionId:void 0,collapsed:Q,onToggleCollapsed:()=>z(e=>!e),onMobileClose:()=>K(!1)})}),G?(0,a.jsx)("div",{className:"sidebar-mobile-backdrop",onClick:()=>K(!1)}):null,(0,a.jsxs)("main",{className:"dashboard-main dashboard-main--desktop review-dashboard-main",children:[(0,a.jsxs)("div",{className:"review-main-header",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"dashboard-main__title",children:b?"".concat(b," Reviews"):"Reviews"}),(0,a.jsxs)("p",{className:"dashboard-main__subtitle",children:["AO-local reviewer runs, findings, and worker handoffs",ee?" across all projects":" for this project","."]})]}),(0,a.jsxs)("div",{className:"dashboard-stat-cards dashboard-stat-cards--persist-mobile",children:[(0,a.jsx)(C,{label:"Runs",value:E.length,meta:"Total review runs"}),(0,a.jsx)(C,{label:"Active",value:en,meta:"Open review loops"}),(0,a.jsx)(C,{label:"Findings",value:er,meta:"Open AO findings"})]})]}),y?(0,a.jsx)("div",{className:"dashboard-alert mb-4 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] text-[var(--color-status-error)]",children:y}):null,0===E.length?(0,a.jsxs)("section",{className:"review-empty-state",children:[(0,a.jsx)("div",{className:"review-empty-state__title",children:"No review runs yet"}),(0,a.jsx)("p",{className:"review-empty-state__body",children:"Reviewer runs will appear here after a worker is ready for review or after a manual review is requested."}),(0,a.jsx)(t(),{href:k?(0,u.bn)(k):"/?project=all",className:"review-empty-state__link",children:"Back to coding dashboard"})]}):(0,a.jsx)("div",{className:"kanban-board-wrap",children:(0,a.jsx)("div",{className:"kanban-board review-kanban-board","data-columns":o.length,style:{"--kanban-column-count":o.length},children:o.map(e=>(0,a.jsx)(I,{column:e,runs:Y[e],allProjectsView:ee,executingRunIds:q,sendingRunIds:U,onOpenDetails:em,onExecute:ec,onSendFeedback:eh},e))})})]})]}),Z?(0,a.jsx)(O,{state:Z,onClose:()=>$(null),onOpenWorker:()=>$(null),isSending:U.has(Z.run.id),onSendFeedback:eh}):null]})})}function R(e){return(0,a.jsx)(p.t,{children:(0,a.jsx)(S,{...e})})}function C(e){let{label:r,value:n,meta:s}=e;return(0,a.jsxs)("div",{className:"dashboard-stat-card",children:[(0,a.jsx)("span",{className:"dashboard-stat-card__value",children:n}),(0,a.jsx)("span",{className:"dashboard-stat-card__label",children:r}),(0,a.jsx)("span",{className:"dashboard-stat-card__meta",children:s})]})}function I(e){let{column:r,runs:n,allProjectsView:s,executingRunIds:t,sendingRunIds:i,onOpenDetails:l,onExecute:d,onSendFeedback:o}=e;return(0,a.jsxs)("div",{className:"kanban-column review-kanban-column","data-review-column":r,children:[(0,a.jsxs)("div",{className:"kanban-column__header",children:[(0,a.jsxs)("div",{className:"kanban-column__title-row",children:[(0,a.jsx)("div",{className:"kanban-column__dot review-column-dot","data-review-column":r}),(0,a.jsx)("span",{className:"kanban-column__title",children:c[r]}),(0,a.jsx)("span",{className:"kanban-column__count",children:n.length})]}),(0,a.jsx)("p",{className:"review-column-hint",children:_[r]})]}),(0,a.jsx)("div",{className:"kanban-column-body",children:n.length>0?(0,a.jsx)("div",{className:"kanban-column__stack",children:n.map(e=>(0,a.jsx)(F,{run:e,allProjectsView:s,isExecuting:t.has(e.id),isSending:i.has(e.id),onOpenDetails:l,onExecute:d,onSendFeedback:o},e.id))}):null})]})}function F(e){var r,n;let{run:s,allProjectsView:i,isExecuting:l,isSending:d,onOpenDetails:o,onExecute:c,onSendFeedback:h}=e,p=(0,u.l8)(s.projectId,s.linkedSessionId),m=null!=(r=s.workerTitle)?r:s.linkedSessionId,w=b(s.status),v=f(s.findingCount,"finding"),x=null!=(n=s.summary)?n:"clean"===s.status?"Reviewer completed without open AO findings.":"Review requested for ".concat(s.linkedSessionId,"."),j="".concat(w," \xb7 ").concat(v).concat(s.dismissedFindingCount>0?" \xb7 ".concat(f(s.dismissedFindingCount,"dismissed")):"").concat(s.sentFindingCount>0?" \xb7 ".concat(f(s.sentFindingCount,"sent")):""," \xb7 worker ").concat(y(s)),_=l||"queued"===s.status||"failed"===s.status,g=N(s),S="running"===s.status||"preparing"===s.status?"card__adot--working":"clean"===s.status?"card__adot--ready":"needs_triage"===s.status||"failed"===s.status||"cancelled"===s.status?"card__adot--waiting":"sent_to_agent"===s.status||"waiting_update"===s.status?"card__adot--ready":"card__adot--idle";return(0,a.jsxs)("article",{className:"session-card session-card--fixed review-card","data-review-status":s.status,"data-reviewer-session-id":s.reviewerSessionId,"data-linked-session-id":s.linkedSessionId,children:[(0,a.jsxs)("div",{className:"session-card__header",children:[(0,a.jsx)("span",{className:"card__adot ".concat(S)}),(0,a.jsxs)("span",{className:"card__id",children:[i?"".concat(s.projectName," \xb7 "):"",s.reviewerSessionId]}),(0,a.jsx)("div",{className:"flex-1"}),(0,a.jsxs)("button",{type:"button",className:"session-card__control session-card__terminal-link",onClick:()=>o(s),children:[(0,a.jsxs)("svg",{className:"session-card__control-icon",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M4 19.5V5a2 2 0 0 1 2-2h12v18H6a2 2 0 0 1-2-1.5Z"}),(0,a.jsx)("path",{d:"M8 7h6M8 11h6M8 15h4"})]}),"details"]})]}),(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:m})}),(0,a.jsxs)("div",{className:"card__meta",children:[s.workerBranch?(0,a.jsx)("span",{className:"card__branch",children:s.workerBranch}):null,s.workerBranch&&s.prNumber?(0,a.jsx)("span",{className:"card__meta-sep","aria-hidden":"true",children:"\xb7"}):null,s.prNumber&&s.workerPrUrl?(0,a.jsxs)("a",{href:s.workerPrUrl,target:"_blank",rel:"noreferrer",className:"card__pr",children:["#",s.prNumber]}):s.prNumber?(0,a.jsxs)("span",{className:"card__pr",children:["#",s.prNumber]}):null]}),(0,a.jsx)("div",{className:"px-[10px] pb-[5px]",children:(0,a.jsx)("p",{className:"session-card__secondary",children:x})}),(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:j})}),s.openFindingCount>0?(0,a.jsx)("div",{className:"card__alerts",children:(0,a.jsxs)("div",{className:"alert-row alert-row--review review-card__finding-alert",children:[(0,a.jsx)("span",{className:"alert-row__icon","aria-hidden":"true",children:"!"}),(0,a.jsx)("span",{className:"alert-row__text",children:(0,a.jsxs)("button",{type:"button",onClick:()=>o(s),children:[(0,a.jsx)("span",{className:"font-bold",children:s.openFindingCount})," ",1===s.openFindingCount?"open finding":"open findings"]})}),(0,a.jsx)("button",{type:"button",className:"alert-row__action",onClick:()=>o(s),children:"view"})]})}):null,(0,a.jsxs)("div",{className:"session-card__footer",children:[(0,a.jsxs)("span",{className:"card__status min-w-0 truncate",children:[w," \xb7 updated ",k(s.updatedAt)]}),(0,a.jsxs)("div",{className:"session-card__footer-actions",children:[_?(0,a.jsxs)("button",{type:"button",className:"session-card__control session-card__review-control",disabled:l,onClick:()=>c(s),children:[(0,a.jsx)("svg",{className:"session-card__control-icon",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M5 3v18l15-9-15-9Z"})}),l?"Running":"failed"===s.status?"Retry":"Run"]}):null,(0,a.jsx)(t(),{href:p,className:"session-card__control session-card__review-control",children:"Worker"}),g?(0,a.jsx)("button",{type:"button",className:"session-card__control session-card__terminal-link",disabled:d||0===s.openFindingCount,title:0===s.openFindingCount?"No open review findings to send.":"Send review findings to the worker.",onClick:()=>h(s),children:d?"Sending":"Feedback"}):(0,a.jsx)("span",{className:"session-card__control session-card__terminal-link review-card__disabled-control",title:"This worker has no live runtime to receive terminal feedback.",children:y(s)})]})]})]})]})}function O(e){var r;let{state:n,onClose:s,onOpenWorker:i,isSending:l,onSendFeedback:d}=e,{run:o,findings:c,loading:h,error:p}=n,m=(0,u.l8)(o.projectId,o.linkedSessionId),w=(0,u.$l)(o.projectId,o.linkedSessionId,"#session-terminal-section"),v=c.filter(e=>"open"===e.status),x=N(o);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"review-detail-backdrop",onClick:s}),(0,a.jsxs)("aside",{className:"review-detail-panel",role:"dialog","aria-modal":"true","aria-labelledby":"review-detail-title",children:[(0,a.jsxs)("div",{className:"review-detail-panel__header",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"review-detail-panel__eyebrow",children:o.reviewerSessionId}),(0,a.jsx)("h2",{id:"review-detail-title",className:"review-detail-panel__title",children:null!=(r=o.workerTitle)?r:o.linkedSessionId})]}),(0,a.jsx)("button",{type:"button",className:"review-detail-panel__close",onClick:s,"aria-label":"Close review details",children:"x"})]}),(0,a.jsxs)("div",{className:"review-detail-panel__meta",children:[(0,a.jsx)("span",{children:b(o.status)}),(0,a.jsx)("span",{children:o.linkedSessionId}),o.workerBranch?(0,a.jsx)("span",{children:o.workerBranch}):null,o.prNumber?(0,a.jsxs)("span",{children:["PR #",o.prNumber]}):null]}),(0,a.jsxs)("div",{className:"review-detail-panel__actions",children:[(0,a.jsx)(t(),{href:m,onClick:i,children:"Open worker"}),o.workerPrUrl?(0,a.jsx)("a",{href:o.workerPrUrl,target:"_blank",rel:"noreferrer",children:"Open PR"}):null,x?(0,a.jsx)(t(),{href:w,children:"Open terminal"}):null,x&&v.length>0?(0,a.jsx)("button",{type:"button",disabled:l,onClick:()=>d(o),children:l?"Sending feedback":"Send feedback"}):null]}),x?null:(0,a.jsxs)("div",{className:"review-detail-panel__notice",children:["Worker feedback is unavailable because the linked worker is"," ",y(o),". Open the worker card to inspect or restore it before sending review findings back."]}),(0,a.jsxs)("div",{className:"review-detail-panel__summary",children:[(0,a.jsxs)("div",{className:"review-detail-panel__summary-item",children:[(0,a.jsx)("span",{children:"Open"}),(0,a.jsx)("strong",{children:v.length||o.openFindingCount})]}),(0,a.jsxs)("div",{className:"review-detail-panel__summary-item",children:[(0,a.jsx)("span",{children:"Total"}),(0,a.jsx)("strong",{children:o.findingCount})]}),(0,a.jsxs)("div",{className:"review-detail-panel__summary-item",children:[(0,a.jsx)("span",{children:"Updated"}),(0,a.jsx)("strong",{children:k(o.updatedAt)})]})]}),(0,a.jsxs)("div",{className:"review-detail-panel__content",children:[h?(0,a.jsx)("div",{className:"review-detail-panel__empty",children:"Loading findings..."}):null,p?(0,a.jsx)("div",{className:"review-detail-panel__error",children:p}):null,h||p||0!==c.length?null:(0,a.jsx)("div",{className:"review-detail-panel__empty",children:"No findings captured for this run."}),h||p?null:c.map(e=>{let r=e.filePath?void 0===e.startLine?e.filePath:void 0!==e.endLine&&e.endLine!==e.startLine?"".concat(e.filePath,":").concat(e.startLine,"-").concat(e.endLine):"".concat(e.filePath,":").concat(e.startLine):null;return(0,a.jsxs)("article",{className:"review-detail-finding","data-severity":e.severity,children:[(0,a.jsxs)("div",{className:"review-detail-finding__header",children:[(0,a.jsx)("span",{children:e.severity}),(0,a.jsx)("span",{children:b(e.status)})]}),(0,a.jsx)("h3",{children:e.title}),r?(0,a.jsx)("code",{children:r}):null,(0,a.jsx)("p",{children:e.body})]},e.id)})]})]})]})}},2466:(e,r,n)=>{"use strict";n.d(r,{I:()=>s,V:()=>t});var a=n(6749);let s=(0,a.createContext)(null);function t(){return(0,a.useContext)(s)}},6291:(e,r,n)=>{Promise.resolve().then(n.bind(n,1735))}},e=>{e.O(0,[8713,8204,2073,4115,131,1461,7358],()=>e(e.s=6291)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8975],{1735:(e,r,n)=>{"use strict";n.d(r,{ReviewDashboard:()=>R});var a=n(3817),s=n(8713),t=n.n(s),i=n(7594),l=n(6749),d=n(9120);let o=["queued","reviewing","triage","waiting","clean","failed","outdated"],c={queued:"Queued",reviewing:"Reviewing",triage:"Triage",waiting:"Waiting",clean:"Clean",failed:"Failed",outdated:"Outdated"};var u=n(8450),h=n(1160),p=n(2446),m=n(2466);let w=[],v=[],x=[],j=[],_={queued:"Review work requested but not executing yet.",reviewing:"A reviewer is reading a snapshot.",triage:"Findings need a human decision.",waiting:"Feedback is with the coding worker.",clean:"No open AO findings remain.",failed:"Reviewer runs that need retry or inspection.",outdated:"Runs superseded by newer worker commits."},g=new Set(["queued","needs_triage","sent_to_agent","waiting_update","clean"]);function k(e){let r=Date.parse(e);if(Number.isNaN(r))return e;let n=Math.floor((Date.now()-r)/6e4);if(n<1)return"just now";if(n<60)return"".concat(n,"m ago");let a=Math.floor(n/60);return a<24?"".concat(a,"h ago"):"".concat(Math.floor(a/24),"d ago")}function b(e){return e.replaceAll("_"," ")}function f(e,r){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"".concat(r,"s");return"".concat(e," ").concat(1===e?r:n)}function N(e){return!!e.workerHasRuntime&&"exited"!==e.workerActivity&&"missing"!==e.workerRuntimeState&&"exited"!==e.workerRuntimeState}function y(e){var r,n;return e.workerHasRuntime?"exited"===e.workerActivity?"exited":"missing"===e.workerRuntimeState?"runtime missing":"exited"===e.workerRuntimeState?"runtime exited":null!=(n=null!=(r=e.workerActivity)?r:e.workerStatus)?n:"worker":"no runtime"}function S(e){var r;let{runs:n=w,sidebarSessions:s=v,orchestrators:c=x,workerOptions:_=j,projectId:k,projectName:b,projects:N,dashboardLoadError:y}=e,{showToast:S}=(0,p.d)(),R=(0,i.useRouter)(),F=(0,l.useRef)(null),[E,M]=(0,l.useState)(n),[P,T]=(0,l.useState)(c),[A,B]=(0,l.useState)(null),[q,L]=(0,l.useState)(()=>new Set),[U,W]=(0,l.useState)(()=>new Set),[H,D]=(0,l.useState)(null),[V,J]=(0,l.useState)(!1),[Z,$]=(0,l.useState)(null),[Q,z]=(0,l.useState)(!1),[G,K]=(0,l.useState)(!1),X=(0,d.U)(d.D);(0,l.useEffect)(()=>{M(n)},[n]),(0,l.useEffect)(()=>{T(e=>(function(e,r){let n=new Map(e.map(e=>[e.projectId,e]));for(let e of r)n.set(e.projectId,e);return Array.from(n.values())})(e,c))},[c]),(0,l.useEffect)(()=>{if(!V)return;let e=e=>{F.current&&!F.current.contains(e.target)&&J(!1)},r=e=>{"Escape"===e.key&&J(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",r),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",r)}},[V]),(0,l.useEffect)(()=>{if(!Z)return;let e=e=>{"Escape"===e.key&&$(null)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[Z]);let Y=(0,l.useMemo)(()=>{let e={queued:[],reviewing:[],triage:[],waiting:[],clean:[],failed:[],outdated:[]};for(let r of E)e[function(e){switch(e.status){case"queued":case"preparing":return"queued";case"running":return"reviewing";case"needs_triage":return"triage";case"sent_to_agent":case"waiting_update":return"waiting";case"clean":return"clean";case"failed":case"cancelled":return"failed";case"outdated":return"outdated"}}(r)].push(r);return e},[E]),ee=!k,er=E.reduce((e,r)=>e+r.openFindingCount,0),en=E.filter(e=>["queued","preparing","running","needs_triage","sent_to_agent","waiting_update"].includes(e.status)).length,ea=k&&null!=(r=P.find(e=>e.projectId===k))?r:null,es=ea?(0,u.Nc)(ea.projectId,ea.id):null,et=k?_.filter(e=>e.projectId===k):_,ei=k?(0,u.bn)(k):"/?project=all",el=(0,u.nF)(k),ed=()=>{X?K(e=>!e):z(e=>!e)},eo=async e=>{if(!A){B(e.id);try{var r,n,a;let s=await fetch("/api/reviews",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:e.id})}),t=await s.json().catch(()=>null);if(!s.ok||!(null==t?void 0:t.run))throw Error(null!=(r=null==t?void 0:t.error)?r:"Failed to request review");let i={...t.run,projectName:e.projectName,workerTitle:e.title,workerBranch:e.branch,workerPrUrl:null!=(a=null!=(n=e.prUrl)?n:t.run.prUrl)?a:null,workerStatus:e.status,workerActivity:e.activity,workerRuntimeState:e.runtimeState,workerHasRuntime:e.hasRuntime};M(e=>{var r;return[i,...(r=e.filter(e=>e.id!==i.id),i.targetSha?r.map(e=>e.linkedSessionId===i.linkedSessionId&&e.id!==i.id&&e.targetSha&&e.targetSha!==i.targetSha&&g.has(e.status)?{...e,status:"outdated"}:e):r)]}),J(!1),S("Review run requested","success")}catch(r){let e=r instanceof Error?r.message:"Failed to request review";S("Review failed: ".concat(e),"error")}finally{B(null)}}},ec=async e=>{if(!q.has(e.id)){L(r=>{let n=new Set(r);return n.add(e.id),n}),M(r=>r.map(r=>r.id===e.id?{...r,status:"running"}:r));try{var r,n;let a=await fetch("/api/reviews/execute",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:e.projectId,runId:e.id,force:"failed"===e.status})}),s=await a.json().catch(()=>null);if(!a.ok||!(null==s?void 0:s.run))throw Error(null!=(r=null==s?void 0:s.error)?r:"Failed to execute review");if(M(r=>r.map(r=>r.id===e.id?{...r,...s.run,projectName:r.projectName,workerTitle:r.workerTitle,workerBranch:r.workerBranch,workerPrUrl:r.workerPrUrl,workerStatus:r.workerStatus,workerActivity:r.workerActivity,workerRuntimeState:r.workerRuntimeState,workerHasRuntime:r.workerHasRuntime}:r)),"failed"===s.run.status)return void S("Review failed: ".concat(null!=(n=s.run.terminationReason)?n:"Reviewer execution failed"),"error");S(s.run.openFindingCount>0?"Review findings ready":"Review completed clean","success")}catch(n){let r=n instanceof Error?n.message:"Failed to execute review";M(r=>r.map(r=>r.id===e.id?{...r,status:"failed"}:r)),S("Review failed: ".concat(r),"error")}finally{L(r=>{let n=new Set(r);return n.delete(e.id),n})}}},eu=(e,r)=>({...e,...r,projectName:e.projectName,workerTitle:e.workerTitle,workerBranch:e.workerBranch,workerPrUrl:e.workerPrUrl,workerStatus:e.workerStatus,workerActivity:e.workerActivity,workerRuntimeState:e.workerRuntimeState,workerHasRuntime:e.workerHasRuntime}),eh=async e=>{if(!U.has(e.id)&&0!==e.openFindingCount){W(r=>{let n=new Set(r);return n.add(e.id),n});try{var r,n;let a=await fetch("/api/reviews/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:e.projectId,runId:e.id})}),s=await a.json().catch(()=>null);if(!a.ok||!(null==s?void 0:s.run))throw Error(null!=(r=null==s?void 0:s.error)?r:"Failed to send review findings");M(r=>r.map(r=>r.id===e.id?eu(r,s.run):r)),$(r=>{if(!r||r.run.id!==e.id)return r;let n=new Date().toISOString();return{...r,run:eu(r.run,s.run),findings:r.findings.map(e=>"open"===e.status?{...e,status:"sent_to_agent",sentToAgentAt:n}:e)}}),S("Sent ".concat(f(null!=(n=s.sentFindingCount)?n:0,"finding")," to ").concat(e.linkedSessionId),"success"),R.push((0,u.$l)(e.projectId,e.linkedSessionId,"#session-terminal-section"))}catch(r){let e=r instanceof Error?r.message:"Failed to send review findings";S("Feedback failed: ".concat(e),"error")}finally{W(r=>{let n=new Set(r);return n.delete(e.id),n})}}},ep=async e=>{if(!H){D(e.id);try{let n=await fetch("/api/sessions/".concat(encodeURIComponent(e.id),"/restore"),{method:"POST"}),a=await n.json().catch(()=>null);if(!n.ok){var r;throw Error(null!=(r=null==a?void 0:a.error)?r:"Failed to restore orchestrator")}T(r=>r.map(r=>{var n,s,t,i,l,d,o;return r.id===e.id?{...r,status:null!=(l=null==a||null==(n=a.session)?void 0:n.status)?l:r.status,activity:null!=(d=null==a||null==(s=a.session)?void 0:s.activity)?d:r.activity,runtimeState:null!=(o=null==a||null==(i=a.session)||null==(t=i.lifecycle)?void 0:t.runtimeState)?o:"alive",hasRuntime:!0,isTerminal:!1,isRestorable:!1}:r})),S("Orchestrator restored","success"),R.push((0,u.Nc)(e.projectId,e.id))}catch(r){let e=r instanceof Error?r.message:"Failed to restore orchestrator";S("Restore failed: ".concat(e),"error")}finally{D(null)}}},em=async e=>{$({run:e,findings:[],loading:!0,error:null});try{let n=new URLSearchParams({projectId:e.projectId,runId:e.id}),a=await fetch("/api/reviews/findings?".concat(n.toString())),s=await a.json().catch(()=>null);if(!a.ok||!(null==s?void 0:s.findings)){var r;throw Error(null!=(r=null==s?void 0:s.error)?r:"Failed to load review findings")}$(r=>{var n;return(null==r?void 0:r.run.id)===e.id?{...r,findings:null!=(n=s.findings)?n:[],loading:!1,error:null}:r})}catch(n){let r=n instanceof Error?n.message:"Failed to load review findings";$(n=>(null==n?void 0:n.run.id)===e.id?{...n,findings:[],loading:!1,error:r}:n)}};return(0,a.jsx)(m.I.Provider,{value:{onToggleSidebar:ed,mobileSidebarOpen:G},children:(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:X?(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:"Athene"})]}),(0,a.jsx)("span",{className:"dashboard-app-header__sep","aria-hidden":"true"}),(0,a.jsx)("span",{className:"dashboard-app-header__project",children:null!=b?b:ee?"All projects":"Reviews"}),(0,a.jsxs)("nav",{className:"workspace-mode-switch","aria-label":"Workspace mode",children:[(0,a.jsx)(t(),{href:ei,className:"workspace-mode-switch__item",children:"Coding"}),(0,a.jsx)(t(),{href:el,className:"workspace-mode-switch__item workspace-mode-switch__item--active","aria-current":"page",children:"Reviews"})]}),(0,a.jsx)("div",{className:"dashboard-app-header__spacer"}),(0,a.jsxs)("div",{className:"dashboard-app-header__actions",children:[!ee&&ea&&es?ea.isRestorable?(0,a.jsxs)("button",{type:"button",className:"dashboard-app-btn dashboard-app-btn--amber",disabled:H===ea.id,onClick:()=>void ep(ea),children:[(0,a.jsxs)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"1.8",viewBox:"0 0 24 24","aria-hidden":"true",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"})]}),H===ea.id?"Restoring":"Restore orchestrator"]}):(0,a.jsxs)(t(),{href:es,className:"dashboard-app-btn dashboard-app-btn--amber","aria-label":"Open project 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"]}):null,(0,a.jsxs)("div",{className:"review-new-menu",ref:F,children:[(0,a.jsxs)("button",{type:"button",className:"dashboard-app-btn","aria-haspopup":"menu","aria-expanded":V,disabled:0===et.length,onClick:()=>J(e=>!e),children:[(0,a.jsx)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M12 5v14M5 12h14"})}),"New Review"]}),V?(0,a.jsx)("div",{className:"review-new-menu__popover",role:"menu",children:et.map(e=>(0,a.jsxs)("button",{type:"button",role:"menuitem",className:"review-new-menu__item",disabled:null!==A,onClick:()=>void eo(e),children:[(0,a.jsx)("span",{className:"review-new-menu__item-title",children:e.title}),(0,a.jsxs)("span",{className:"review-new-menu__item-meta",children:[ee?"".concat(e.projectName," \xb7 "):"",e.id,e.branch?" \xb7 ".concat(e.branch):"",e.prNumber?" \xb7 PR #".concat(e.prNumber):""]})]},e.id))}):null]})]})]}),(0,a.jsxs)("div",{className:"dashboard-shell dashboard-shell--desktop".concat(Q?" dashboard-shell--sidebar-collapsed":""),children:[(0,a.jsx)("div",{className:"sidebar-wrapper".concat(G?" sidebar-wrapper--mobile-open":""),children:(0,a.jsx)(h.u,{projects:N,sessions:s,orchestrators:P,activeProjectId:k,activeSessionId:void 0,collapsed:Q,onToggleCollapsed:()=>z(e=>!e),onMobileClose:()=>K(!1)})}),G?(0,a.jsx)("div",{className:"sidebar-mobile-backdrop",onClick:()=>K(!1)}):null,(0,a.jsxs)("main",{className:"dashboard-main dashboard-main--desktop review-dashboard-main",children:[(0,a.jsxs)("div",{className:"review-main-header",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"dashboard-main__title",children:b?"".concat(b," Reviews"):"Reviews"}),(0,a.jsxs)("p",{className:"dashboard-main__subtitle",children:["AO-local reviewer runs, findings, and worker handoffs",ee?" across all projects":" for this project","."]})]}),(0,a.jsxs)("div",{className:"dashboard-stat-cards dashboard-stat-cards--persist-mobile",children:[(0,a.jsx)(C,{label:"Runs",value:E.length,meta:"Total review runs"}),(0,a.jsx)(C,{label:"Active",value:en,meta:"Open review loops"}),(0,a.jsx)(C,{label:"Findings",value:er,meta:"Open AO findings"})]})]}),y?(0,a.jsx)("div",{className:"dashboard-alert mb-4 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] text-[var(--color-status-error)]",children:y}):null,0===E.length?(0,a.jsxs)("section",{className:"review-empty-state",children:[(0,a.jsx)("div",{className:"review-empty-state__title",children:"No review runs yet"}),(0,a.jsx)("p",{className:"review-empty-state__body",children:"Reviewer runs will appear here after a worker is ready for review or after a manual review is requested."}),(0,a.jsx)(t(),{href:k?(0,u.bn)(k):"/?project=all",className:"review-empty-state__link",children:"Back to coding dashboard"})]}):(0,a.jsx)("div",{className:"kanban-board-wrap",children:(0,a.jsx)("div",{className:"kanban-board review-kanban-board","data-columns":o.length,style:{"--kanban-column-count":o.length},children:o.map(e=>(0,a.jsx)(I,{column:e,runs:Y[e],allProjectsView:ee,executingRunIds:q,sendingRunIds:U,onOpenDetails:em,onExecute:ec,onSendFeedback:eh},e))})})]})]}),Z?(0,a.jsx)(O,{state:Z,onClose:()=>$(null),onOpenWorker:()=>$(null),isSending:U.has(Z.run.id),onSendFeedback:eh}):null]})})}function R(e){return(0,a.jsx)(p.t,{children:(0,a.jsx)(S,{...e})})}function C(e){let{label:r,value:n,meta:s}=e;return(0,a.jsxs)("div",{className:"dashboard-stat-card",children:[(0,a.jsx)("span",{className:"dashboard-stat-card__value",children:n}),(0,a.jsx)("span",{className:"dashboard-stat-card__label",children:r}),(0,a.jsx)("span",{className:"dashboard-stat-card__meta",children:s})]})}function I(e){let{column:r,runs:n,allProjectsView:s,executingRunIds:t,sendingRunIds:i,onOpenDetails:l,onExecute:d,onSendFeedback:o}=e;return(0,a.jsxs)("div",{className:"kanban-column review-kanban-column","data-review-column":r,children:[(0,a.jsxs)("div",{className:"kanban-column__header",children:[(0,a.jsxs)("div",{className:"kanban-column__title-row",children:[(0,a.jsx)("div",{className:"kanban-column__dot review-column-dot","data-review-column":r}),(0,a.jsx)("span",{className:"kanban-column__title",children:c[r]}),(0,a.jsx)("span",{className:"kanban-column__count",children:n.length})]}),(0,a.jsx)("p",{className:"review-column-hint",children:_[r]})]}),(0,a.jsx)("div",{className:"kanban-column-body",children:n.length>0?(0,a.jsx)("div",{className:"kanban-column__stack",children:n.map(e=>(0,a.jsx)(F,{run:e,allProjectsView:s,isExecuting:t.has(e.id),isSending:i.has(e.id),onOpenDetails:l,onExecute:d,onSendFeedback:o},e.id))}):null})]})}function F(e){var r,n;let{run:s,allProjectsView:i,isExecuting:l,isSending:d,onOpenDetails:o,onExecute:c,onSendFeedback:h}=e,p=(0,u.l8)(s.projectId,s.linkedSessionId),m=null!=(r=s.workerTitle)?r:s.linkedSessionId,w=b(s.status),v=f(s.findingCount,"finding"),x=null!=(n=s.summary)?n:"clean"===s.status?"Reviewer completed without open AO findings.":"Review requested for ".concat(s.linkedSessionId,"."),j="".concat(w," \xb7 ").concat(v).concat(s.dismissedFindingCount>0?" \xb7 ".concat(f(s.dismissedFindingCount,"dismissed")):"").concat(s.sentFindingCount>0?" \xb7 ".concat(f(s.sentFindingCount,"sent")):""," \xb7 worker ").concat(y(s)),_=l||"queued"===s.status||"failed"===s.status,g=N(s),S="running"===s.status||"preparing"===s.status?"card__adot--working":"clean"===s.status?"card__adot--ready":"needs_triage"===s.status||"failed"===s.status||"cancelled"===s.status?"card__adot--waiting":"sent_to_agent"===s.status||"waiting_update"===s.status?"card__adot--ready":"card__adot--idle";return(0,a.jsxs)("article",{className:"session-card session-card--fixed review-card","data-review-status":s.status,"data-reviewer-session-id":s.reviewerSessionId,"data-linked-session-id":s.linkedSessionId,children:[(0,a.jsxs)("div",{className:"session-card__header",children:[(0,a.jsx)("span",{className:"card__adot ".concat(S)}),(0,a.jsxs)("span",{className:"card__id",children:[i?"".concat(s.projectName," \xb7 "):"",s.reviewerSessionId]}),(0,a.jsx)("div",{className:"flex-1"}),(0,a.jsxs)("button",{type:"button",className:"session-card__control session-card__terminal-link",onClick:()=>o(s),children:[(0,a.jsxs)("svg",{className:"session-card__control-icon",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,a.jsx)("path",{d:"M4 19.5V5a2 2 0 0 1 2-2h12v18H6a2 2 0 0 1-2-1.5Z"}),(0,a.jsx)("path",{d:"M8 7h6M8 11h6M8 15h4"})]}),"details"]})]}),(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:m})}),(0,a.jsxs)("div",{className:"card__meta",children:[s.workerBranch?(0,a.jsx)("span",{className:"card__branch",children:s.workerBranch}):null,s.workerBranch&&s.prNumber?(0,a.jsx)("span",{className:"card__meta-sep","aria-hidden":"true",children:"\xb7"}):null,s.prNumber&&s.workerPrUrl?(0,a.jsxs)("a",{href:s.workerPrUrl,target:"_blank",rel:"noreferrer",className:"card__pr",children:["#",s.prNumber]}):s.prNumber?(0,a.jsxs)("span",{className:"card__pr",children:["#",s.prNumber]}):null]}),(0,a.jsx)("div",{className:"px-[10px] pb-[5px]",children:(0,a.jsx)("p",{className:"session-card__secondary",children:x})}),(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:j})}),s.openFindingCount>0?(0,a.jsx)("div",{className:"card__alerts",children:(0,a.jsxs)("div",{className:"alert-row alert-row--review review-card__finding-alert",children:[(0,a.jsx)("span",{className:"alert-row__icon","aria-hidden":"true",children:"!"}),(0,a.jsx)("span",{className:"alert-row__text",children:(0,a.jsxs)("button",{type:"button",onClick:()=>o(s),children:[(0,a.jsx)("span",{className:"font-bold",children:s.openFindingCount})," ",1===s.openFindingCount?"open finding":"open findings"]})}),(0,a.jsx)("button",{type:"button",className:"alert-row__action",onClick:()=>o(s),children:"view"})]})}):null,(0,a.jsxs)("div",{className:"session-card__footer",children:[(0,a.jsxs)("span",{className:"card__status min-w-0 truncate",children:[w," \xb7 updated ",k(s.updatedAt)]}),(0,a.jsxs)("div",{className:"session-card__footer-actions",children:[_?(0,a.jsxs)("button",{type:"button",className:"session-card__control session-card__review-control",disabled:l,onClick:()=>c(s),children:[(0,a.jsx)("svg",{className:"session-card__control-icon",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,a.jsx)("path",{d:"M5 3v18l15-9-15-9Z"})}),l?"Running":"failed"===s.status?"Retry":"Run"]}):null,(0,a.jsx)(t(),{href:p,className:"session-card__control session-card__review-control",children:"Worker"}),g?(0,a.jsx)("button",{type:"button",className:"session-card__control session-card__terminal-link",disabled:d||0===s.openFindingCount,title:0===s.openFindingCount?"No open review findings to send.":"Send review findings to the worker.",onClick:()=>h(s),children:d?"Sending":"Feedback"}):(0,a.jsx)("span",{className:"session-card__control session-card__terminal-link review-card__disabled-control",title:"This worker has no live runtime to receive terminal feedback.",children:y(s)})]})]})]})]})}function O(e){var r;let{state:n,onClose:s,onOpenWorker:i,isSending:l,onSendFeedback:d}=e,{run:o,findings:c,loading:h,error:p}=n,m=(0,u.l8)(o.projectId,o.linkedSessionId),w=(0,u.$l)(o.projectId,o.linkedSessionId,"#session-terminal-section"),v=c.filter(e=>"open"===e.status),x=N(o);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"review-detail-backdrop",onClick:s}),(0,a.jsxs)("aside",{className:"review-detail-panel",role:"dialog","aria-modal":"true","aria-labelledby":"review-detail-title",children:[(0,a.jsxs)("div",{className:"review-detail-panel__header",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"review-detail-panel__eyebrow",children:o.reviewerSessionId}),(0,a.jsx)("h2",{id:"review-detail-title",className:"review-detail-panel__title",children:null!=(r=o.workerTitle)?r:o.linkedSessionId})]}),(0,a.jsx)("button",{type:"button",className:"review-detail-panel__close",onClick:s,"aria-label":"Close review details",children:"x"})]}),(0,a.jsxs)("div",{className:"review-detail-panel__meta",children:[(0,a.jsx)("span",{children:b(o.status)}),(0,a.jsx)("span",{children:o.linkedSessionId}),o.workerBranch?(0,a.jsx)("span",{children:o.workerBranch}):null,o.prNumber?(0,a.jsxs)("span",{children:["PR #",o.prNumber]}):null]}),(0,a.jsxs)("div",{className:"review-detail-panel__actions",children:[(0,a.jsx)(t(),{href:m,onClick:i,children:"Open worker"}),o.workerPrUrl?(0,a.jsx)("a",{href:o.workerPrUrl,target:"_blank",rel:"noreferrer",children:"Open PR"}):null,x?(0,a.jsx)(t(),{href:w,children:"Open terminal"}):null,x&&v.length>0?(0,a.jsx)("button",{type:"button",disabled:l,onClick:()=>d(o),children:l?"Sending feedback":"Send feedback"}):null]}),x?null:(0,a.jsxs)("div",{className:"review-detail-panel__notice",children:["Worker feedback is unavailable because the linked worker is"," ",y(o),". Open the worker card to inspect or restore it before sending review findings back."]}),(0,a.jsxs)("div",{className:"review-detail-panel__summary",children:[(0,a.jsxs)("div",{className:"review-detail-panel__summary-item",children:[(0,a.jsx)("span",{children:"Open"}),(0,a.jsx)("strong",{children:v.length||o.openFindingCount})]}),(0,a.jsxs)("div",{className:"review-detail-panel__summary-item",children:[(0,a.jsx)("span",{children:"Total"}),(0,a.jsx)("strong",{children:o.findingCount})]}),(0,a.jsxs)("div",{className:"review-detail-panel__summary-item",children:[(0,a.jsx)("span",{children:"Updated"}),(0,a.jsx)("strong",{children:k(o.updatedAt)})]})]}),(0,a.jsxs)("div",{className:"review-detail-panel__content",children:[h?(0,a.jsx)("div",{className:"review-detail-panel__empty",children:"Loading findings..."}):null,p?(0,a.jsx)("div",{className:"review-detail-panel__error",children:p}):null,h||p||0!==c.length?null:(0,a.jsx)("div",{className:"review-detail-panel__empty",children:"No findings captured for this run."}),h||p?null:c.map(e=>{let r=e.filePath?void 0===e.startLine?e.filePath:void 0!==e.endLine&&e.endLine!==e.startLine?"".concat(e.filePath,":").concat(e.startLine,"-").concat(e.endLine):"".concat(e.filePath,":").concat(e.startLine):null;return(0,a.jsxs)("article",{className:"review-detail-finding","data-severity":e.severity,children:[(0,a.jsxs)("div",{className:"review-detail-finding__header",children:[(0,a.jsx)("span",{children:e.severity}),(0,a.jsx)("span",{children:b(e.status)})]}),(0,a.jsx)("h3",{children:e.title}),r?(0,a.jsx)("code",{children:r}):null,(0,a.jsx)("p",{children:e.body})]},e.id)})]})]})]})}},2466:(e,r,n)=>{"use strict";n.d(r,{I:()=>s,V:()=>t});var a=n(6749);let s=(0,a.createContext)(null);function t(){return(0,a.useContext)(s)}},7104:(e,r,n)=>{Promise.resolve().then(n.bind(n,1735))}},e=>{e.O(0,[8713,2554,1160,131,1461,7358],()=>e(e.s=7104)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2430,2437,2438,2564,2641,2818,2922,2985,3511,3625,3675,4209,4587,4746,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9217,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4097],{
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4097],{7594:(e,r,o)=>{"use strict";var t=o(9582);o.o(t,"useParams")&&o.d(r,{useParams:function(){return t.useParams}}),o.o(t,"usePathname")&&o.d(r,{usePathname:function(){return t.usePathname}}),o.o(t,"useRouter")&&o.d(r,{useRouter:function(){return t.useRouter}}),o.o(t,"useSearchParams")&&o.d(r,{useSearchParams:function(){return t.useSearchParams}})},7781:(e,r,o)=>{Promise.resolve().then(o.bind(o,9654))},9654:(e,r,o)=>{"use strict";o.r(r),o.d(r,{default:()=>l});var t=o(3817),a=o(7594),s=o(6749),n=o(9789);function l(e){let{error:r,reset:o}=e,l=(0,a.useRouter)();return(0,s.useEffect)(()=>{console.error(r)},[r]),(0,t.jsx)(n.ErrorDisplay,{title:"Failed to load session",message:function(e){let r=e.message.toLowerCase();return r.includes("timed out")?"The session request did not complete in time. Check the backend process and try again once the API is responsive.":r.includes("network")?"The session request failed before the dashboard got a response. Check the server connection and try again.":r.includes("403")?"The dashboard could not access this session. Permissions or auth may have changed.":r.includes("404")?"This session is no longer available. It may have been removed while the page was open.":r.includes("500")?"The server returned an internal error while loading this session. Try re-fetching the session data.":e.message.trim().length>0?e.message:"The dashboard could not load this session cleanly. Try again to re-fetch the latest state."}(r),tone:"error",primaryAction:{label:"Try again",onClick:()=>{o(),l.refresh()}},secondaryAction:{label:"Back to dashboard",href:"/"},error:r,compact:!0,chrome:"card"})}},9789:(e,r,o)=>{"use strict";o.d(r,{ErrorDisplay:()=>i});var t=o(3817),a=o(8713),s=o.n(a);let n={error:{accent:"var(--color-status-error)",bg:"var(--color-tint-red)",border:"color-mix(in srgb, var(--color-status-error) 24%, transparent)",label:"error"},warning:{accent:"var(--color-status-attention)",bg:"var(--color-tint-yellow)",border:"color-mix(in srgb, var(--color-status-attention) 24%, transparent)",label:"warning"},"not-found":{accent:"var(--color-accent)",bg:"var(--color-tint-blue)",border:"color-mix(in srgb, var(--color-accent) 24%, transparent)",label:"missing"}};function l(e){let{accent:r}=e;return(0,t.jsx)("div",{className:"flex h-14 w-14 items-center justify-center rounded-2xl border",style:{background:"linear-gradient(180deg, color-mix(in srgb, ".concat(r," 16%, var(--color-bg-elevated)) 0%, var(--color-bg-surface) 100%)"),borderColor:"color-mix(in srgb, ".concat(r," 18%, var(--color-border-default))"),boxShadow:"var(--detail-card-shadow)"},children:(0,t.jsxs)("svg",{className:"h-7 w-7",fill:"none",stroke:"currentColor",strokeWidth:"1.6",style:{color:r},viewBox:"0 0 24 24",children:[(0,t.jsx)("rect",{x:"2.5",y:"4.5",width:"19",height:"15",rx:"3"}),(0,t.jsx)("path",{d:"M6.5 9.5l3.25 2.5-3.25 2.5M12.75 15h4.75"})]})})}function c(e){let{action:r,primary:o=!1}=e,a=o?"inline-flex items-center justify-center rounded-full border px-4 py-2 text-[12px] font-semibold transition-colors hover:no-underline":"inline-flex items-center justify-center rounded-full border px-4 py-2 text-[12px] font-medium transition-colors hover:no-underline",n=o?{background:"var(--color-accent)",color:"var(--color-text-inverse)",borderColor:"color-mix(in srgb, var(--color-accent) 72%, transparent)"}:{background:"var(--color-bg-surface)",color:"var(--color-text-secondary)",borderColor:"var(--color-border-default)"};return r.href?(0,t.jsx)(s(),{href:r.href,className:a,style:n,children:r.label}):(0,t.jsx)("button",{type:"button",onClick:r.onClick,className:a,style:n,children:r.label})}function i(e){let{title:r,message:o,tone:a="error",detailsTitle:s="Technical details",error:i,primaryAction:d,secondaryAction:u,compact:x=!1,chrome:m="page",children:h}=e,b=n[a],v=!!((null==i?void 0:i.digest)||(null==i?void 0:i.message)||(null==i?void 0:i.stack));return(0,t.jsx)("div",{className:"flex w-full items-center justify-center px-6 py-10 ".concat(x?"min-h-[calc(100vh-4rem)]":"min-h-screen"),style:{background:"page"===m?"radial-gradient(circle at top, var(--color-body-gradient-blue), transparent 35%), var(--color-bg-base)":"transparent"},children:(0,t.jsx)("div",{className:"w-full max-w-[36rem] rounded-[28px] border p-6 sm:p-8",style:{background:"linear-gradient(180deg, color-mix(in srgb, var(--color-bg-elevated) 88%, transparent) 0%, var(--color-bg-surface) 100%)",borderColor:"var(--color-border-default)",boxShadow:"var(--detail-card-shadow)"},children:(0,t.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-start",children:[(0,t.jsx)(l,{accent:b.accent}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"mb-3 inline-flex items-center rounded-full border px-2.5 py-1 font-[var(--font-mono)] text-[10px] font-medium uppercase tracking-[0.22em]",style:{color:b.accent,background:b.bg,borderColor:b.border},children:b.label}),(0,t.jsx)("h1",{className:"text-[24px] font-semibold tracking-[-0.04em] text-[var(--color-text-primary)]",children:r}),(0,t.jsx)("p",{className:"mt-2 max-w-[34rem] text-[14px] leading-6 text-[var(--color-text-secondary)]",children:o})]})]}),(d||u)&&(0,t.jsxs)("div",{className:"flex flex-wrap gap-3",children:[d?(0,t.jsx)(c,{action:d,primary:!0}):null,u?(0,t.jsx)(c,{action:u}):null]}),h,v?(0,t.jsxs)("details",{className:"rounded-2xl border",style:{background:"color-mix(in srgb, var(--color-bg-elevated) 84%, transparent)",borderColor:"var(--color-border-subtle)"},children:[(0,t.jsx)("summary",{className:"cursor-pointer list-none px-4 py-3 text-[12px] font-medium text-[var(--color-text-secondary)]",children:s}),(0,t.jsxs)("div",{className:"border-t px-4 py-4",style:{borderColor:"var(--color-border-subtle)"},children:[(null==i?void 0:i.digest)?(0,t.jsxs)("p",{className:"mb-3 font-[var(--font-mono)] text-[11px] text-[var(--color-text-tertiary)]",children:["digest: ",i.digest]}):null,(null==i?void 0:i.message)?(0,t.jsx)("p",{className:"mb-3 text-[12px] leading-5 text-[var(--color-text-secondary)]",children:i.message}):null,(null==i?void 0:i.stack)?(0,t.jsx)("pre",{className:"overflow-x-auto whitespace-pre-wrap font-[var(--font-mono)] text-[11px] leading-5 text-[var(--color-text-tertiary)]",children:i.stack}):null]})]}):null]})})})}}},e=>{e.O(0,[8713,131,1461,7358],()=>e(e.s=7781)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[25,64,403,719,816,1097,1105,1214,1337,1390,1762,1797,2007,2079,2430,2437,2438,2564,2641,2818,2922,2985,3511,3625,3675,4209,4587,4746,5214,6681,6849,6865,6946,6999,7462,7500,8581,9002,9217,9492,9514,9744],{687:()=>{}},_=>{_.O(0,[131,1461,7358],()=>_(_.s=687)),_N_E=_.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4345,7927],{
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4345,7927],{7300:(r,e,o)=>{Promise.resolve().then(o.bind(o,9789))},9789:(r,e,o)=>{"use strict";o.d(e,{ErrorDisplay:()=>i});var l=o(3817),t=o(8713),a=o.n(t);let n={error:{accent:"var(--color-status-error)",bg:"var(--color-tint-red)",border:"color-mix(in srgb, var(--color-status-error) 24%, transparent)",label:"error"},warning:{accent:"var(--color-status-attention)",bg:"var(--color-tint-yellow)",border:"color-mix(in srgb, var(--color-status-attention) 24%, transparent)",label:"warning"},"not-found":{accent:"var(--color-accent)",bg:"var(--color-tint-blue)",border:"color-mix(in srgb, var(--color-accent) 24%, transparent)",label:"missing"}};function s(r){let{accent:e}=r;return(0,l.jsx)("div",{className:"flex h-14 w-14 items-center justify-center rounded-2xl border",style:{background:"linear-gradient(180deg, color-mix(in srgb, ".concat(e," 16%, var(--color-bg-elevated)) 0%, var(--color-bg-surface) 100%)"),borderColor:"color-mix(in srgb, ".concat(e," 18%, var(--color-border-default))"),boxShadow:"var(--detail-card-shadow)"},children:(0,l.jsxs)("svg",{className:"h-7 w-7",fill:"none",stroke:"currentColor",strokeWidth:"1.6",style:{color:e},viewBox:"0 0 24 24",children:[(0,l.jsx)("rect",{x:"2.5",y:"4.5",width:"19",height:"15",rx:"3"}),(0,l.jsx)("path",{d:"M6.5 9.5l3.25 2.5-3.25 2.5M12.75 15h4.75"})]})})}function c(r){let{action:e,primary:o=!1}=r,t=o?"inline-flex items-center justify-center rounded-full border px-4 py-2 text-[12px] font-semibold transition-colors hover:no-underline":"inline-flex items-center justify-center rounded-full border px-4 py-2 text-[12px] font-medium transition-colors hover:no-underline",n=o?{background:"var(--color-accent)",color:"var(--color-text-inverse)",borderColor:"color-mix(in srgb, var(--color-accent) 72%, transparent)"}:{background:"var(--color-bg-surface)",color:"var(--color-text-secondary)",borderColor:"var(--color-border-default)"};return e.href?(0,l.jsx)(a(),{href:e.href,className:t,style:n,children:e.label}):(0,l.jsx)("button",{type:"button",onClick:e.onClick,className:t,style:n,children:e.label})}function i(r){let{title:e,message:o,tone:t="error",detailsTitle:a="Technical details",error:i,primaryAction:d,secondaryAction:x,compact:b=!1,chrome:u="page",children:m}=r,v=n[t],p=!!((null==i?void 0:i.digest)||(null==i?void 0:i.message)||(null==i?void 0:i.stack));return(0,l.jsx)("div",{className:"flex w-full items-center justify-center px-6 py-10 ".concat(b?"min-h-[calc(100vh-4rem)]":"min-h-screen"),style:{background:"page"===u?"radial-gradient(circle at top, var(--color-body-gradient-blue), transparent 35%), var(--color-bg-base)":"transparent"},children:(0,l.jsx)("div",{className:"w-full max-w-[36rem] rounded-[28px] border p-6 sm:p-8",style:{background:"linear-gradient(180deg, color-mix(in srgb, var(--color-bg-elevated) 88%, transparent) 0%, var(--color-bg-surface) 100%)",borderColor:"var(--color-border-default)",boxShadow:"var(--detail-card-shadow)"},children:(0,l.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,l.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-start",children:[(0,l.jsx)(s,{accent:v.accent}),(0,l.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,l.jsx)("div",{className:"mb-3 inline-flex items-center rounded-full border px-2.5 py-1 font-[var(--font-mono)] text-[10px] font-medium uppercase tracking-[0.22em]",style:{color:v.accent,background:v.bg,borderColor:v.border},children:v.label}),(0,l.jsx)("h1",{className:"text-[24px] font-semibold tracking-[-0.04em] text-[var(--color-text-primary)]",children:e}),(0,l.jsx)("p",{className:"mt-2 max-w-[34rem] text-[14px] leading-6 text-[var(--color-text-secondary)]",children:o})]})]}),(d||x)&&(0,l.jsxs)("div",{className:"flex flex-wrap gap-3",children:[d?(0,l.jsx)(c,{action:d,primary:!0}):null,x?(0,l.jsx)(c,{action:x}):null]}),m,p?(0,l.jsxs)("details",{className:"rounded-2xl border",style:{background:"color-mix(in srgb, var(--color-bg-elevated) 84%, transparent)",borderColor:"var(--color-border-subtle)"},children:[(0,l.jsx)("summary",{className:"cursor-pointer list-none px-4 py-3 text-[12px] font-medium text-[var(--color-text-secondary)]",children:a}),(0,l.jsxs)("div",{className:"border-t px-4 py-4",style:{borderColor:"var(--color-border-subtle)"},children:[(null==i?void 0:i.digest)?(0,l.jsxs)("p",{className:"mb-3 font-[var(--font-mono)] text-[11px] text-[var(--color-text-tertiary)]",children:["digest: ",i.digest]}):null,(null==i?void 0:i.message)?(0,l.jsx)("p",{className:"mb-3 text-[12px] leading-5 text-[var(--color-text-secondary)]",children:i.message}):null,(null==i?void 0:i.stack)?(0,l.jsx)("pre",{className:"overflow-x-auto whitespace-pre-wrap font-[var(--font-mono)] text-[11px] leading-5 text-[var(--color-text-tertiary)]",children:i.stack}):null]})]}):null]})})})}}},r=>{r.O(0,[8713,131,1461,7358],()=>r(r.s=7300)),_N_E=r.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[824],{3857:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>N});var s=r(3817),n=r(6749),a=r(7594),o=r(5425),i=r(3916),l=r(9789),c=r(1160),u=r(9120),d=r(545),h=r(9678),f=r(7387),p=r(4723),v=r(5184),m=r(8450),g=r(3394);let b=null,j=null,y=[1e3,2e3,4e3],x=new Set(Object.values(o.SB)),w=new Set(Object.values(o.u3)),S=new Set;function I(e){if(e instanceof DOMException)return"AbortError"===e.name;if(e instanceof Error){let t=e.message.toLowerCase();return t.includes("aborted")||t.includes("aborterror")}return!1}function k(e){let{message:t}=e;return(0,s.jsx)("div",{className:"project-sidebar h-full",children:(0,s.jsxs)("div",{className:"space-y-3 px-3 py-4",children:[(0,s.jsx)("div",{className:"text-[11px] font-medium uppercase tracking-[0.18em] text-[var(--color-text-tertiary)]",children:"Projects"}),(0,s.jsx)("div",{className:"space-y-2",children:Array.from({length:3},(e,t)=>(0,s.jsx)("div",{className:"h-10 animate-pulse border border-[var(--color-border-subtle)] bg-[var(--color-bg-surface)]"},"sidebar-placeholder-".concat(t)))}),(0,s.jsx)("div",{className:"pt-2 text-[12px] text-[var(--color-text-tertiary)]",children:t})]})})}function E(e){let{projects:t,projectsLoading:r,sidebarSessions:a,sidebarOrchestrators:o,sidebarLoading:i,sidebarError:l,onRetrySidebar:d,activeProjectId:h,activeSessionId:f,children:p}=e,v=(0,u.U)(u.D),[m,g]=(0,n.useState)(!1),[b,j]=(0,n.useState)(!1),y=(0,n.useCallback)(()=>{if(v)return void j(e=>!e);g(e=>!e)},[v]);return(0,s.jsxs)("div",{className:"dashboard-app-shell",children:[(0,s.jsxs)("header",{className:"dashboard-app-header",children:[(0,s.jsx)("button",{type:"button",className:"dashboard-app-sidebar-toggle",onClick:y,"aria-label":"Toggle sidebar",children:v?(0,s.jsx)("svg",{width:"16",height:"16",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,s.jsx)("path",{d:"M4 6h16M4 12h16M4 18h16"})}):(0,s.jsxs)("svg",{width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"1.75",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,s.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,s.jsx)("path",{d:"M9 3v18"})]})}),(0,s.jsx)("div",{className:"dashboard-app-header__spacer"})]}),(0,s.jsxs)("div",{className:"dashboard-shell dashboard-shell--desktop".concat(m?" dashboard-shell--sidebar-collapsed":""),children:[(0,s.jsx)("div",{className:"sidebar-wrapper".concat(b?" sidebar-wrapper--mobile-open":""),children:t.length>0?(0,s.jsx)(c.u,{projects:t,sessions:a,orchestrators:o,loading:i,error:l,onRetry:d,activeProjectId:h,activeSessionId:f,collapsed:m,onToggleCollapsed:()=>g(e=>!e),onMobileClose:()=>j(!1)}):(0,s.jsx)(k,{message:r?"Loading projects...":"Projects unavailable."})}),b&&(0,s.jsx)("div",{className:"sidebar-mobile-backdrop",onClick:()=>j(!1)}),(0,s.jsx)("div",{className:"dashboard-main dashboard-main--desktop",children:(0,s.jsx)("main",{className:"session-detail-page flex-1 min-h-0 flex flex-col bg-[var(--color-bg-base)]",children:(0,s.jsx)("div",{className:"flex-1 min-h-0",children:p})})})]})]})}function C(e,t){if(!e||0===t.length)return e;let r=new Map(t.map(e=>[e.id,e])),s=!1,n=e.map(e=>{var t,n;let a=r.get(e.id);if(!a)return e;if(t=a.status,!x.has(t)){let t="status:".concat(a.status);return S.has(t)||(S.add(t),console.warn("Ignoring mux session patch with unknown status",{sessionId:a.id,status:a.status})),e}if(null!==a.activity&&(n=a.activity,!w.has(n))){let t="activity:".concat(a.activity);return S.has(t)||(S.add(t),console.warn("Ignoring mux session patch with unknown activity",{sessionId:a.id,activity:a.activity})),e}return e.status===a.status&&e.activity===a.activity&&e.lastActivityAt===a.lastActivityAt?e:(s=!0,{...e,status:a.status,activity:a.activity,lastActivityAt:a.lastActivityAt})});return s?n:e}function N(){var e,t,r;let c=(0,a.useParams)(),u=(0,a.usePathname)(),x=(0,a.useRouter)(),w=c.id,S="string"==typeof c.projectId?c.projectId:Array.isArray(c.projectId)?c.projectId[0]:null,k=(0,v.eT)(),N=(()=>{if("undefined"==typeof sessionStorage)return null;try{let e=sessionStorage.getItem("ao-session-nav:".concat(w));if(e)return sessionStorage.removeItem("ao-session-nav:".concat(w)),JSON.parse(e)}catch(e){}return null})(),[R,A]=(0,n.useState)(N),[M,T]=(0,n.useState)(null),[L,O]=(0,n.useState)(void 0),[P,D]=(0,n.useState)([]),[_,B]=(0,n.useState)(null===b),[F,q]=(0,n.useState)(()=>j),[J,W]=(0,n.useState)(void 0),[U,z]=(0,n.useState)(null===N),[G,Y]=(0,n.useState)(null),[Z,H]=(0,n.useState)(!1),[K,Q]=(0,n.useState)(!1),[V,X]=(0,n.useState)(new Map),$=null!=(e=null==R?void 0:R.projectId)?e:null,ee=[...V.values()],et=!!R&&(0,o.tT)(R,V.get(R.projectId),ee),er=(0,n.useRef)(null),es=(0,n.useRef)(!1),en=(0,n.useRef)(null),ea=(0,n.useRef)(new Map),eo=(0,n.useRef)(null!==N),ei=(0,n.useRef)(null),el=(0,n.useRef)(!1),ec=(0,n.useRef)(!1),eu=(0,n.useRef)(!1),ed=(0,n.useRef)(null),eh=(0,n.useRef)(null),ef=(0,n.useRef)(null),ep=(0,n.useRef)(!1),ev=(0,n.useRef)(0),em=(0,n.useRef)(null),eg=(0,n.useRef)(null),eb=(0,n.useCallback)(()=>{eg.current&&(clearTimeout(eg.current),eg.current=null)},[]),ej=(0,n.useCallback)(()=>{ev.current=0,em.current=null,eb()},[eb]);(0,n.useEffect)(()=>{ea.current=V},[V]);let ey=(0,n.useCallback)(async()=>{b&&(D(b),X(new Map(b.map(e=>{var t;return[e.id,null!=(t=e.sessionPrefix)?t:e.id]}))),B(!1));try{var e,t;let r=await (0,g.uE)("/api/projects",{timeoutMs:5e3,timeoutMessage:"Projects request timed out after ".concat(5e3,"ms")});if(!(null==r?void 0:r.projects))return;e=b,t=r.projects,e&&e.length===t.length&&e.every((e,r)=>{let s=t[r];return JSON.stringify(e)===JSON.stringify(s)})||(b=r.projects,D(r.projects),X(new Map(r.projects.map(e=>{var t;return[e.id,null!=(t=e.sessionPrefix)?t:e.id]}))))}catch(e){console.error("Failed to fetch projects:",e)}finally{B(!1)}},[]),ex=(0,p.f)(w);(0,n.useEffect)(()=>{R?document.title=function(e,t,r){var s;let n,a=e.id,i=void 0!==r?r:e.activity,l=i&&null!=(s=h.R[i])?s:"",c=[...t.values()];return n=(0,o.tT)(e,t.get(e.projectId),c)?"Orchestrator Terminal":function(e,t){let r=Array.from(e);return r.length>40?r.slice(0,40).join("")+"...":e}((0,f.Pn)(e),40),l?"".concat(l," ").concat(a," | ").concat(n):"".concat(a," | ").concat(n)}(R,V,null==ex?void 0:ex.activity):document.title="".concat(w," | Session Detail")},[R,w,V,ex]),(0,n.useEffect)(()=>{er.current=$},[$]),(0,n.useEffect)(()=>{if(R&&P.some(e=>e.id===R.projectId)){if(null==u?void 0:u.startsWith("/sessions/"))return void x.replace((0,m.Nc)(R.projectId,R.id));(null==u?void 0:u.startsWith("/projects/"))&&S&&R.projectId!==S&&x.replace((0,m.Nc)(R.projectId,R.id))}},[S,u,P,x,R]),(0,n.useEffect)(()=>{es.current=et},[et]);let ew=(0,n.useCallback)(async()=>{if(el.current)return;el.current=!0;let e=new AbortController;ed.current=e;let t=!1;try{let t=await (0,g.uE)("/api/sessions/".concat(encodeURIComponent(w)),{signal:e.signal,timeoutMs:8e3,timeoutMessage:"Session request timed out after ".concat(8e3,"ms")});A(t),Y(null),H(!1),eo.current=!0,ej()}catch(s){if(ep.current||e.signal.aborted)return;let r=(s instanceof Error?s.message:"Failed to load session").toLowerCase();if(r.includes("session not found")||r.includes("http 404")){eo.current||H(!0),z(!1),ej();return}if(!eo.current&&function(e){if(I(e))return!0;if(e instanceof Error){let t=e.message.toLowerCase();return t.includes("timed out")||t.includes("network")||t.includes("failed to fetch")}return!1}(s)){let e=ev.current+1;ev.current=e,null!=em.current||(em.current=Date.now());let r=Date.now()-em.current;if(e<4&&r<3e4){let r=y[Math.min(e-1,y.length-1)];t=!0,z(!0),console.warn("Session fetch failed transiently; retrying",{sessionId:w,failureCount:e,retryInMs:r,error:s}),eb(),eg.current=setTimeout(()=>{eg.current=null,ew()},r);return}}console.error("Failed to fetch session:",s),eo.current||Y(s instanceof Error?s:Error("Failed to load session"))}finally{t||z(!1),el.current=!1,ed.current===e&&(ed.current=null)}},[eb,w,ej]),eS=(0,n.useCallback)(async()=>{if(ec.current)return;let e=er.current;if(!e)return;let t=es.current,r="".concat(e,":").concat(t?"orchestrator":"worker");if(!t&&en.current===r)return;ec.current=!0;let s=new AbortController;eh.current=s;try{var n,a,i,l,c;let u=t?"/api/sessions?project=".concat(encodeURIComponent(e),"&fresh=true"):"/api/sessions?project=".concat(encodeURIComponent(e),"&orchestratorOnly=true&fresh=true"),h=await (0,g.uE)(u,{signal:s.signal,timeoutMs:5e3,timeoutMessage:"Project sessions request timed out after ".concat(5e3,"ms")}),f=null!=(i=h.sessions)?i:[],p=null!=(c=null!=(l=h.orchestratorId)?l:null==(a=h.orchestrators)||null==(n=a.find(t=>t.projectId===e))?void 0:n.id)?c:null;if(O(e=>e===p?e:p),!t){en.current=r;return}let v={merge:0,respond:0,review:0,pending:0,working:0,done:0},m=[...ea.current.values()];for(let e of f)if(!(0,o.tT)(e,ea.current.get(e.projectId),m)){let t=(0,d.ng)(e);if("action"===t)continue;v[t]++}T(v)}catch(e){if(ep.current||s.signal.aborted||I(e))return;console.error("Failed to fetch project sessions:",e)}finally{ec.current=!1,eh.current===s&&(eh.current=null)}},[]),eI=(0,n.useCallback)(async()=>{if(eu.current)return;eu.current=!0;let e=new AbortController;ef.current=e;try{var t,r,s;let n=await (0,g.uE)("/api/sessions?fresh=true",{signal:e.signal,timeoutMs:5e3,timeoutMessage:"Sidebar sessions request timed out after ".concat(5e3,"ms")}),a=null!=(t=null==n?void 0:n.sessions)?t:[],o=null!=(s=C(a,null!=(r=ei.current)?r:[]))?s:a;j=o,W(null==n?void 0:n.orchestrators),Q(!1),q(e=>e&&e.length===o.length&&e.every((e,t)=>{let r=o[t];return JSON.stringify(e)===JSON.stringify(r)})?e:o)}catch(t){if(ep.current||e.signal.aborted||I(t))return;console.error("Failed to fetch sidebar sessions:",t),Q(!0),q(e=>null===e?[]:e)}finally{eu.current=!1,ef.current===e&&(ef.current=null)}},[]);return((0,n.useEffect)(()=>{if(!(null==k?void 0:k.sessions))return;if("connected"!==k.status){ei.current=null;return}ei.current=k.sessions;let e=C(j,k.sessions);if(e!==j&&(j=e,q(e)),0===k.sessions.length||!j)return;let t=new Set(j.map(e=>e.id)),r=new Set(k.sessions.map(e=>e.id));if(t.size!==r.size)return void eI();for(let e of r)if(!t.has(e))return void eI()},[eI,null==k?void 0:k.sessions,null==k?void 0:k.status]),(0,n.useEffect)(()=>{et||T(null)},[et]),(0,n.useEffect)(()=>{Promise.all([ey(),ew(),eI()])},[ey,ew,eI]),(0,n.useEffect)(()=>{$&&eS()},[eS,et,$]),(0,n.useEffect)(()=>{let e=setInterval(()=>{ew(),eS(),eI()},2e3);return()=>clearInterval(e)},[ew,eS,eI]),(0,n.useEffect)(()=>{ep.current=!1;let e=()=>{ep.current=!0};return window.addEventListener("pagehide",e),window.addEventListener("beforeunload",e),()=>{window.removeEventListener("pagehide",e),window.removeEventListener("beforeunload",e)}},[]),(0,n.useEffect)(()=>()=>{var e,t,r;eb(),null==(e=ed.current)||e.abort(),null==(t=eh.current)||t.abort(),null==(r=ef.current)||r.abort()},[eb]),U)?(0,s.jsx)(E,{projects:P,projectsLoading:_,sidebarSessions:F,sidebarOrchestrators:J,sidebarLoading:null===F,sidebarError:K,onRetrySidebar:eI,activeProjectId:null!=S?S:void 0,activeSessionId:w,children:(0,s.jsx)("div",{className:"flex h-full min-h-screen items-center justify-center bg-[var(--color-bg-base)]",children:(0,s.jsxs)("div",{className:"flex flex-col items-center gap-3",children:[(0,s.jsx)("svg",{className:"h-5 w-5 animate-spin text-[var(--color-text-tertiary)]",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{d:"M12 3a9 9 0 1 0 9 9"})}),(0,s.jsx)("div",{className:"text-[13px] text-[var(--color-text-tertiary)]",children:"Loading session…"})]})})}):Z?(0,s.jsx)(E,{projects:P,projectsLoading:_,sidebarSessions:F,sidebarOrchestrators:J,sidebarLoading:null===F,sidebarError:K,onRetrySidebar:eI,activeProjectId:null!=S?S:void 0,activeSessionId:w,children:(0,s.jsx)(l.ErrorDisplay,{title:"Session not found",message:"This session is no longer available. It may have been removed, renamed, or already cleaned up.",tone:"not-found",primaryAction:{label:"Back to dashboard",href:S?"/projects/".concat(S):"/"},secondaryAction:{label:"Retry",onClick:()=>void ew()},compact:!0,chrome:"card"})}):G?(0,s.jsx)(E,{projects:P,projectsLoading:_,sidebarSessions:F,sidebarOrchestrators:J,sidebarLoading:null===F,sidebarError:K,onRetrySidebar:eI,activeProjectId:null!=(r=null!=(t=null==R?void 0:R.projectId)?t:S)?r:void 0,activeSessionId:w,children:(0,s.jsx)(l.ErrorDisplay,{title:"Failed to load session",message:function(e){let t=e.message.toLowerCase();return t.includes("timed out")?"The session request is taking too long, so the page stopped waiting instead of spinning forever. You can retry, or return to the project and reopen a different session.":t.includes("network")?"The session request failed before the dashboard got a response. Check the local server connection and try again.":t.includes("404")?"This session is no longer available. It may have been removed while the page was open.":t.includes("500")?"The server returned an internal error while loading this session. Try again to re-fetch the latest state.":"The dashboard could not load this session cleanly. Try again to re-fetch the latest state."}(G),tone:"error",primaryAction:{label:"Try again",onClick:()=>{Y(null),H(!1),z(!0),ej(),Promise.all([ey(),ew(),eI()])}},secondaryAction:{label:"Back to dashboard",href:(null==R?void 0:R.projectId)?"/projects/".concat(R.projectId):"/"},error:G,compact:!0,chrome:"card"})}):R?(0,s.jsx)(i.G,{session:R,isOrchestrator:et,orchestratorZones:null!=M?M:void 0,projectOrchestratorId:L,projects:P}):(0,s.jsx)(E,{projects:P,projectsLoading:_,sidebarSessions:F,sidebarOrchestrators:J,sidebarLoading:null===F,sidebarError:K,onRetrySidebar:eI,activeProjectId:null!=S?S:void 0,activeSessionId:w,children:(0,s.jsx)(l.ErrorDisplay,{title:"Session unavailable",message:"The backend has not returned this session yet. This can happen right after spawning an orchestrator; retry once the terminal registers the session.",tone:"error",primaryAction:{label:"Retry",onClick:()=>void ew()},secondaryAction:{label:"Back to dashboard",href:S?"/projects/".concat(S):"/"},compact:!0,chrome:"card"})})}},5922:(e,t,r)=>{Promise.resolve().then(r.bind(r,3857))}},e=>{e.O(0,[8713,2554,1160,1089,1145,8759,131,1461,7358],()=>e(e.s=5922)),_N_E=e.O()}]);
|
package/.next/static/chunks/app/test-direct/{page-8b80ed180c0f2f42.js → page-ca223477414cb95d.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9495],{1712:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}});let n=r(1903)._(r(5864));function s(e,t){var r;let s={};"function"==typeof e&&(s.loader=e);let a={...s,...t};return(0,n.default)({...a,modules:null==(r=a.loadableGenerated)?void 0:r.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5468:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{bindSnapshot:function(){return l},createAsyncLocalStorage:function(){return a},createSnapshot:function(){return o}});let r=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class n{disable(){throw r}getStore(){}run(){throw r}exit(){throw r}enterWith(){throw r}static bind(e){return e}}let s="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function a(){return s?new s:new n}function l(e){return s?s.bind(e):n.bind(e)}function o(){return s?s.snapshot():function(e,...t){return e(...t)}}},5864:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let n=r(3817),s=r(6749),a=r(6943);function l(e){return{default:e&&"default"in e?e.default:e}}r(6418);let o={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},i=function(e){let t={...o,...e},r=(0,s.lazy)(()=>t.loader().then(l)),i=t.loading;function c(e){let l=i?(0,n.jsx)(i,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,c=o?s.Suspense:s.Fragment,u=t.ssr?(0,n.jsxs)(n.Fragment,{children:[null,(0,n.jsx)(r,{...e})]}):(0,n.jsx)(a.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(r,{...e})});return(0,n.jsx)(c,{...o?{fallback:l}:{},children:u})}return c.displayName="LoadableComponent",c}},6313:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=r(8394)},6418:(e,t,r)=>{"use strict";function n(e){let{moduleIds:t}=e;return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return n}}),r(3817),r(4768),r(6313),r(5152)},6943:(e,t,r)=>{"use strict";function n(e){let{reason:t,children:r}=e;return r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return n}}),r(1763)},
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9495],{1712:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}});let n=r(1903)._(r(5864));function s(e,t){var r;let s={};"function"==typeof e&&(s.loader=e);let a={...s,...t};return(0,n.default)({...a,modules:null==(r=a.loadableGenerated)?void 0:r.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5468:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{bindSnapshot:function(){return l},createAsyncLocalStorage:function(){return a},createSnapshot:function(){return o}});let r=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class n{disable(){throw r}getStore(){}run(){throw r}exit(){throw r}enterWith(){throw r}static bind(e){return e}}let s="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function a(){return s?new s:new n}function l(e){return s?s.bind(e):n.bind(e)}function o(){return s?s.snapshot():function(e,...t){return e(...t)}}},5864:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let n=r(3817),s=r(6749),a=r(6943);function l(e){return{default:e&&"default"in e?e.default:e}}r(6418);let o={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},i=function(e){let t={...o,...e},r=(0,s.lazy)(()=>t.loader().then(l)),i=t.loading;function c(e){let l=i?(0,n.jsx)(i,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,c=o?s.Suspense:s.Fragment,u=t.ssr?(0,n.jsxs)(n.Fragment,{children:[null,(0,n.jsx)(r,{...e})]}):(0,n.jsx)(a.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(r,{...e})});return(0,n.jsx)(c,{...o?{fallback:l}:{},children:u})}return c.displayName="LoadableComponent",c}},6313:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=r(8394)},6418:(e,t,r)=>{"use strict";function n(e){let{moduleIds:t}=e;return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return n}}),r(3817),r(4768),r(6313),r(5152)},6943:(e,t,r)=>{"use strict";function n(e){let{reason:t,children:r}=e;return r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return n}}),r(1763)},7594:(e,t,r)=>{"use strict";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}})},8394:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,r(5468).createAsyncLocalStorage)()},8611:(e,t,r)=>{Promise.resolve().then(r.bind(r,8746))},8746:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u,dynamic:()=>i});var n=r(3817),s=r(9891),a=r(7594),l=r(6749);let o=(0,s.default)(()=>Promise.all([r.e(8623),r.e(3764),r.e(5204)]).then(r.bind(r,3764)).then(e=>({default:e.DirectTerminal})),{loadableGenerated:{webpack:()=>[3764]},ssr:!1}),i="force-dynamic";function c(){let e=(0,a.useSearchParams)(),t="true"===e.get("fullscreen"),r=e.get("session")||"ao-orchestrator";return(0,n.jsx)("div",{className:"min-h-screen bg-[var(--color-bg-primary)] p-8",children:(0,n.jsxs)("div",{className:"mx-auto max-w-7xl",children:[(0,n.jsxs)("div",{className:"mb-6",children:[(0,n.jsx)("h1",{className:"text-2xl font-bold text-[var(--color-text-primary)]",children:"DirectTerminal Test - XDA Clipboard Support"}),(0,n.jsxs)("p",{className:"mt-2 text-sm text-[var(--color-text-muted)]",children:["This terminal has XDA (Extended Device Attributes) handler registered.",(0,n.jsx)("br",{}),"tmux should recognize it as XTerm and enable clipboard support (OSC 52)."]}),(0,n.jsxs)("div",{className:"mt-4 rounded-[2px] border border-[var(--color-border-default)] bg-[var(--color-bg-secondary)] p-4",children:[(0,n.jsxs)("h2",{className:"mb-2 text-sm font-semibold text-[var(--color-text-primary)]",children:["Testing: ",(0,n.jsx)("span",{className:"text-[var(--color-accent-green)]",children:r})]}),(0,n.jsx)("h2",{className:"mb-2 text-sm font-semibold text-[var(--color-text-primary)]",children:"Test Steps:"}),(0,n.jsxs)("ol",{className:"list-inside list-decimal space-y-1 text-sm text-[var(--color-text-muted)]",children:[(0,n.jsxs)("li",{children:["Connected to tmux session: ",r]}),(0,n.jsxs)("li",{children:["Verify XDA badge shows"," ",(0,n.jsx)("span",{className:"text-[var(--color-accent-green)]",children:"✓ XDA"})]}),(0,n.jsx)("li",{children:"Drag-select text in the terminal"}),(0,n.jsx)("li",{children:"Press Cmd+C (macOS) or Ctrl+C (Linux/Windows)"}),(0,n.jsx)("li",{children:"Paste elsewhere to verify clipboard works"}),(0,n.jsxs)("li",{children:[(0,n.jsx)("strong",{children:"Expected:"})," Clipboard works without iTerm2 attachment!"]})]})]}),(0,n.jsxs)("div",{className:"mt-4 rounded-[2px] border border-[var(--color-border-default)] bg-[var(--color-bg-secondary)] p-4",children:[(0,n.jsx)("h2",{className:"mb-2 text-sm font-semibold text-[var(--color-text-primary)]",children:"Technical Details:"}),(0,n.jsxs)("ul",{className:"list-inside list-disc space-y-1 text-sm text-[var(--color-text-muted)]",children:[(0,n.jsx)("li",{children:"Registers CSI > q (XDA) handler in xterm.js parser"}),(0,n.jsx)("li",{children:"Responds with DCS > | XTerm(370) ST sequence"}),(0,n.jsx)("li",{children:'tmux detects "XTerm(" and enables TTYC_MS (clipboard capability)'}),(0,n.jsx)("li",{children:"OSC 52 sequences flow: tmux → WebSocket → xterm.js → navigator.clipboard"})]})]})]}),(0,n.jsx)(o,{sessionId:r,tmuxName:r,startFullscreen:t},"".concat(r,"-").concat(t?"fullscreen":"normal"))]})})}function u(){return(0,n.jsx)(l.Suspense,{fallback:(0,n.jsx)("div",{className:"flex min-h-screen items-center justify-center",children:"Loading..."}),children:(0,n.jsx)(c,{})})}},9891:(e,t,r)=>{"use strict";r.d(t,{default:()=>s.a});var n=r(1712),s=r.n(n)}},e=>{e.O(0,[131,1461,7358],()=>e(e.s=8611)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7358],{
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7358],{6884:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,7573,23)),Promise.resolve().then(n.t.bind(n,1847,23)),Promise.resolve().then(n.t.bind(n,9948,23)),Promise.resolve().then(n.t.bind(n,1992,23)),Promise.resolve().then(n.t.bind(n,9904,23)),Promise.resolve().then(n.t.bind(n,7678,23)),Promise.resolve().then(n.t.bind(n,2901,23)),Promise.resolve().then(n.bind(n,7184))},7279:()=>{}},e=>{var s=s=>e(e.s=s);e.O(0,[131,1461],()=>(s(660),s(6884))),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var e={},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}},i=!0;try{e[n](a,a.exports,r),i=!1}finally{i&&delete t[n]}return a.exports}r.m=e,(()=>{var e=[];r.O=(t,n,o,a)=>{if(n){a=a||0;for(var i=e.length;i>0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[n,o,a];return}for(var l=1/0,i=0;i<e.length;i++){for(var[n,o,a]=e[i],u=!0,d=0;d<n.length;d++)(!1&a||l>=a)&&Object.keys(r.O).every(e=>r.O[e](n[d]))?n.splice(d--,1):(u=!1,a<l&&(l=a));if(u){e.splice(i--,1);var
|
|
1
|
+
(()=>{"use strict";var e={},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={exports:{}},i=!0;try{e[n](a,a.exports,r),i=!1}finally{i&&delete t[n]}return a.exports}r.m=e,(()=>{var e=[];r.O=(t,n,o,a)=>{if(n){a=a||0;for(var i=e.length;i>0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[n,o,a];return}for(var l=1/0,i=0;i<e.length;i++){for(var[n,o,a]=e[i],u=!0,d=0;d<n.length;d++)(!1&a||l>=a)&&Object.keys(r.O).every(e=>r.O[e](n[d]))?n.splice(d--,1):(u=!1,a<l&&(l=a));if(u){e.splice(i--,1);var c=o();void 0!==c&&(t=c)}}return t}})(),r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(n,o){if(1&o&&(n=this(n)),8&o||"object"==typeof n&&n&&(4&o&&n.__esModule||16&o&&"function"==typeof n.then))return n;var a=Object.create(null);r.r(a);var i={};e=e||[null,t({}),t([]),t(t)];for(var l=2&o&&n;"object"==typeof l&&!~e.indexOf(l);l=t(l))Object.getOwnPropertyNames(l).forEach(e=>i[e]=()=>n[e]);return i.default=()=>n,r.d(a,i),a}})(),r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>"static/chunks/"+(({5453:"e12b4bb0",7949:"0f200859"})[e]||e)+"."+({503:"f7ff284457dd9c40",3764:"9c44a4ac0ede4088",4751:"6c71bfc0c4520627",5204:"0d460c9e7de8b015",5453:"8742134e1ac0263f",6835:"7a29fa4b665b7c2f",7317:"685aa5231218e8d3",7949:"359176a445d2791f"})[e]+".js",r.miniCssF=e=>"static/css/d06ee45019116677.css",r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(n,o,a,i)=>{if(e[n])return void e[n].push(o);if(void 0!==a)for(var l,u,d=document.getElementsByTagName("script"),c=0;c<d.length;c++){var f=d[c];if(f.getAttribute("src")==n||f.getAttribute("data-webpack")==t+a){l=f;break}}l||(u=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,r.nc&&l.setAttribute("nonce",r.nc),l.setAttribute("data-webpack",t+a),l.src=r.tu(n)),e[n]=[o];var s=(t,r)=>{l.onerror=l.onload=null,clearTimeout(p);var o=e[n];if(delete e[n],l.parentNode&&l.parentNode.removeChild(l),o&&o.forEach(e=>e(r)),t)return t(r)},p=setTimeout(s.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=s.bind(null,l.onerror),l.onload=s.bind(null,l.onload),u&&document.head.appendChild(l)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={8068:0};r.f.miniCss=(t,n)=>{e[t]?n.push(e[t]):0!==e[t]&&({8623:1})[t]&&n.push(e[t]=(e=>new Promise((t,n)=>{var o=r.miniCssF(e),a=r.p+o;if(((e,t)=>{for(var r=document.getElementsByTagName("link"),n=0;n<r.length;n++){var o=r[n],a=o.getAttribute("data-href")||o.getAttribute("href");if("stylesheet"===o.rel&&(a===e||a===t))return o}for(var i=document.getElementsByTagName("style"),n=0;n<i.length;n++){var o=i[n],a=o.getAttribute("data-href");if(a===e||a===t)return o}})(o,a))return t();((e,t,r,n)=>{var o=document.createElement("link");return o.rel="stylesheet",o.type="text/css",o.onerror=o.onload=a=>{if(o.onerror=o.onload=null,"load"===a.type)r();else{var i=a&&("load"===a.type?"missing":a.type),l=a&&a.target&&a.target.href||t,u=Error("Loading CSS chunk "+e+" failed.\n("+l+")");u.code="CSS_CHUNK_LOAD_FAILED",u.type=i,u.request=l,o.parentNode.removeChild(o),n(u)}},o.href=t,!function(e){if("function"==typeof _N_E_STYLE_LOAD){let{href:t,onload:r,onerror:n}=e;_N_E_STYLE_LOAD(0===t.indexOf(window.location.origin)?new URL(t).pathname:t).then(()=>null==r?void 0:r.call(e,{type:"load"}),()=>null==n?void 0:n.call(e,{}))}else document.head.appendChild(e)}(o)})(e,a,t,n)}))(t).then(()=>{e[t]=0},r=>{throw delete e[t],r}))}})(),(()=>{var e={8068:0,9988:0,3906:0,5799:0};r.f.j=(t,n)=>{var o=r.o(e,t)?e[t]:void 0;if(0!==o)if(o)n.push(o[2]);else if(/^(3906|5799|8068|8623|9988)$/.test(t))e[t]=0;else{var a=new Promise((r,n)=>o=e[t]=[r,n]);n.push(o[2]=a);var i=r.p+r.u(t),l=Error();r.l(i,n=>{if(r.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var a=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;l.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",l.name="ChunkLoadError",l.type=a,l.request=i,o[1](l)}},"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,n)=>{var o,a,[i,l,u]=n,d=0;if(i.some(t=>0!==e[t])){for(o in l)r.o(l,o)&&(r.m[o]=l[o]);if(u)var c=u(r)}for(t&&t(n);d<i.length;d++)a=i[d],r.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return r.O(c)},n=self.webpackChunk_N_E=self.webpackChunk_N_E||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})()})();
|