@aoagents/ao-web 0.3.0 → 0.5.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 +123 -131
- package/.next/app-path-routes-manifest.json +8 -9
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +31 -31
- package/.next/react-loadable-manifest.json +14 -14
- package/.next/server/app/_not-found/page.js +1 -1
- 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 +6 -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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/filesystem/browse/route.js +1 -1
- package/.next/server/app/api/filesystem/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/issues/route.js +1 -1
- package/.next/server/app/api/issues/route.js.nft.json +1 -1
- package/.next/server/app/api/issues/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/observability/route.js +1 -1
- package/.next/server/app/api/observability/route.js.nft.json +1 -1
- package/.next/server/app/api/observability/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/orchestrators/route.js +1 -1
- package/.next/server/app/api/orchestrators/route.js.nft.json +1 -1
- package/.next/server/app/api/orchestrators/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/projects/[id]/route.js +1 -1
- package/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/projects/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/projects/reload/route.js +1 -1
- package/.next/server/app/api/projects/reload/route.js.nft.json +1 -1
- package/.next/server/app/api/projects/reload/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/projects/route.js +1 -1
- package/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/prs/[id]/merge/route.js +1 -1
- package/.next/server/app/api/prs/[id]/merge/route.js.nft.json +1 -1
- package/.next/server/app/api/prs/[id]/merge/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/runtime/terminal/route_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/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/webhooks/[...slug]/route.js +1 -1
- package/.next/server/app/api/webhooks/[...slug]/route.js.nft.json +1 -1
- package/.next/server/app/api/webhooks/[...slug]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/apple-icon/route.js +1 -1
- package/.next/server/app/apple-icon/route.js.nft.json +1 -1
- package/.next/server/app/apple-icon/route_client-reference-manifest.js +1 -1
- package/.next/server/app/apple-icon.body +0 -0
- package/.next/server/app/dev/terminal-test/page.js +3 -3
- package/.next/server/app/dev/terminal-test/page.js.nft.json +1 -1
- package/.next/server/app/dev/terminal-test/page_client-reference-manifest.js +1 -1
- package/.next/server/app/dev/terminal-test.html +1 -1
- package/.next/server/app/dev/terminal-test.rsc +7 -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/orchestrators/page.js +2 -2
- package/.next/server/app/orchestrators/page.js.nft.json +1 -1
- package/.next/server/app/orchestrators/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/.next/server/app/prs/page.js.nft.json +1 -1
- package/.next/server/app/prs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/[id]/page.js +2 -2
- package/.next/server/app/sessions/[id]/page.js.nft.json +1 -1
- package/.next/server/app/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/test-direct/page.js +1 -1
- 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 +7 -10
- package/.next/server/app-paths-manifest.json +8 -9
- package/.next/server/chunks/1172.js +1 -1
- package/.next/server/chunks/1271.js +1 -1
- package/.next/server/chunks/{6172.js → 1876.js} +2 -2
- package/.next/server/chunks/3131.js +3 -0
- package/.next/server/chunks/3714.js +1 -1
- package/.next/server/chunks/4520.js +1 -1
- package/.next/server/chunks/7167.js +1 -0
- package/.next/server/chunks/7173.js +9 -0
- package/.next/server/chunks/801.js +658 -0
- package/.next/server/chunks/9223.js +440 -0
- 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/YR6Xi4DC5A7S7E2PoZuif/_buildManifest.js +1 -0
- package/.next/static/chunks/1383.c891a8ba72ee600c.js +1 -0
- package/.next/static/chunks/3764.89a5955e46eb74b4.js +1 -0
- package/.next/static/chunks/3780-52c4733ce6591b8d.js +1 -0
- package/.next/static/chunks/4465-17154f7a01abfe85.js +1 -0
- package/.next/static/chunks/5795-b96fd46c8c7344fc.js +1 -0
- package/.next/static/chunks/7008-6e85da85f12f9858.js +1 -0
- package/.next/static/chunks/app/_not-found/page-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/backlog/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/browse-directory/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/filesystem/browse/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/issues/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/observability/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/orchestrators/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/projects/[id]/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/projects/reload/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/projects/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/prs/[id]/merge/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/runtime/terminal/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/kill/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/message/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/remap/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/restore/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/send/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/sessions/patches/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/setup-labels/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/spawn/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/verify/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/api/webhooks/[...slug]/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/apple-icon/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/dev/terminal-test/page-5819e40b3d4754ef.js +1 -0
- package/.next/static/chunks/app/error-da1d10c96ff5dd29.js +1 -0
- package/.next/static/chunks/app/icon/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/icon-192/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/icon-512/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/layout-bb6db479523cb3d6.js +1 -0
- package/.next/static/chunks/app/loading-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/manifest.webmanifest/route-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/orchestrators/page-f07983413ed1a44b.js +1 -0
- package/.next/static/chunks/app/{page-d3b83ad5f09b6ec7.js → page-6aa506a579ac9949.js} +1 -1
- package/.next/static/chunks/app/projects/[projectId]/loading-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/projects/[projectId]/{page-9f3dfbea006747cf.js → page-49eb5b990c74ca8f.js} +1 -1
- package/.next/static/chunks/app/projects/[projectId]/sessions/[id]/page-2450704c6b66a4b4.js +1 -0
- package/.next/static/chunks/app/projects/[projectId]/settings/page-d1da671e72a7bd5e.js +1 -0
- package/.next/static/chunks/app/prs/page-2332a7180a47f28c.js +1 -0
- package/.next/static/chunks/app/sessions/[id]/error-8de5b24e86eeae7b.js +1 -0
- package/.next/static/chunks/app/sessions/[id]/loading-3b8a01e726e988c8.js +1 -0
- package/.next/static/chunks/app/sessions/[id]/page-b60b49ccbafe51c9.js +1 -0
- package/.next/static/chunks/app/test-direct/page-eb366dde03fab6a7.js +1 -0
- package/.next/static/chunks/{webpack-d4ff5ed5e153ca3e.js → webpack-d2dfbd3e9262b74e.js} +1 -1
- package/.next/static/css/fcafd381715071b8.css +1 -0
- package/dist-server/mux-websocket.js +138 -127
- package/dist-server/tmux-utils.js +99 -9
- package/next.config.js +6 -0
- package/package.json +18 -16
- package/.next/server/app/api/events/route.js +0 -9
- package/.next/server/app/api/events/route.js.nft.json +0 -1
- package/.next/server/app/api/events/route_client-reference-manifest.js +0 -1
- package/.next/server/chunks/252.js +0 -11
- package/.next/server/chunks/2810.js +0 -1
- package/.next/server/chunks/3602.js +0 -382
- package/.next/server/chunks/3667.js +0 -277
- package/.next/server/chunks/8367.js +0 -3
- package/.next/static/chunks/3697.4d6d86c5f0caf73e.js +0 -1
- package/.next/static/chunks/4465-aaba60a6355de914.js +0 -1
- package/.next/static/chunks/6078.47ce88bee96cfaee.js +0 -1
- package/.next/static/chunks/6607-405ce4d15e595f4a.js +0 -1
- package/.next/static/chunks/7008-71ebb186f0549f41.js +0 -1
- package/.next/static/chunks/9331-fcdd652218ac6f68.js +0 -1
- package/.next/static/chunks/app/_not-found/page-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/backlog/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/browse-directory/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/events/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/filesystem/browse/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/issues/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/observability/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/orchestrators/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/projects/[id]/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/projects/reload/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/projects/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/prs/[id]/merge/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/runtime/terminal/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/kill/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/message/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/remap/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/restore/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/send/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/sessions/patches/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/setup-labels/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/spawn/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/verify/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/api/webhooks/[...slug]/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/apple-icon/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/dev/terminal-test/page-5765f0465db56fed.js +0 -1
- package/.next/static/chunks/app/error-670f1d8bf2b6859c.js +0 -1
- package/.next/static/chunks/app/icon/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/icon-192/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/icon-512/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/layout-ddf79478d9a673bb.js +0 -1
- package/.next/static/chunks/app/loading-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/orchestrators/page-4c190484788aaaa3.js +0 -1
- package/.next/static/chunks/app/projects/[projectId]/loading-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/projects/[projectId]/sessions/[id]/page-a7090a06948f9a6b.js +0 -1
- package/.next/static/chunks/app/projects/[projectId]/settings/page-219df6dcbc6d1107.js +0 -1
- package/.next/static/chunks/app/prs/page-a285e930235a23af.js +0 -1
- package/.next/static/chunks/app/sessions/[id]/error-eb0973907da68a37.js +0 -1
- package/.next/static/chunks/app/sessions/[id]/loading-e2dea9178b4af8db.js +0 -1
- package/.next/static/chunks/app/sessions/[id]/page-98f398b822092218.js +0 -1
- package/.next/static/chunks/app/test-direct/page-f9bff7d7b4dfe728.js +0 -1
- package/.next/static/css/46a7e8e962075e54.css +0 -1
- package/.next/static/css/577ea7f5ad4f0576.css +0 -1
- package/.next/static/media/4cf2300e9c8272f7-s.p.woff2 +0 -0
- package/.next/static/media/558ca1a6aa3cb55e-s.p.woff2 +0 -0
- package/.next/static/media/64d784ea54a4acde-s.woff2 +0 -0
- package/.next/static/media/6d831b18ae5b01dc-s.woff2 +0 -0
- package/.next/static/media/8d697b304b401681-s.woff2 +0 -0
- package/.next/static/media/ac0e76ddaeeb7981-s.woff2 +0 -0
- package/.next/static/media/ba015fad6dcf6784-s.woff2 +0 -0
- package/.next/static/media/edc640959b0c7826-s.woff2 +0 -0
- package/.next/static/media/ff71da380fbe67dd-s.woff2 +0 -0
- package/.next/static/q6yh3n8jgvyI9JIbexzuH/_buildManifest.js +0 -1
- /package/.next/static/{q6yh3n8jgvyI9JIbexzuH → YR6Xi4DC5A7S7E2PoZuif}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
exports.id=3131,exports.ids=[3131],exports.modules={2191:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f}),c(81249),c(13081);var d=c(6181);let e={size:{width:32,height:32},contentType:"image/png"};async function f(a){let{__metadata_id__:b,...c}=await a.params,f=(0,d.fillMetadataSegment)(".",c,"icon"),{generateImageMetadata:g}=e;function h(a,b){let c={alt:a.alt,type:a.contentType||"image/png",url:f+(b?"/"+b:"")+"?fde4afff4688df3a"},{size:d}=a;return d&&(c.sizes=d.width+"x"+d.height),c}return g?(await g({params:c})).map((a,b)=>{let c=(a.id||b)+"";return h(a,c)}):[h(e,"")]}},3964:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,57035,23)),Promise.resolve().then(c.t.bind(c,57543,23)),Promise.resolve().then(c.t.bind(c,970,23)),Promise.resolve().then(c.t.bind(c,84702,23)),Promise.resolve().then(c.t.bind(c,18706,23)),Promise.resolve().then(c.t.bind(c,11194,23)),Promise.resolve().then(c.t.bind(c,33151,23)),Promise.resolve().then(c.t.bind(c,75210,23))},8556:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(68844);function e(){return(0,d.jsx)("div",{className:"flex min-h-screen items-center justify-center bg-[var(--color-bg-base)]",children:(0,d.jsxs)("div",{className:"flex flex-col items-center gap-3",children:[(0,d.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,d.jsx)("path",{d:"M12 3a9 9 0 1 0 9 9"})}),(0,d.jsx)("p",{className:"text-[13px] text-[var(--color-text-tertiary)]",children:"Loading…"})]})})}},13081:(a,b,c)=>{"use strict";c.d(b,{Kk:()=>f,uy:()=>e});var d=c(68844);function e(a){return a.replace(/[^\w\s-]/g,"").slice(0,50)||"AO"}function f(a,b){let c=(b.charAt(0)||"A").toUpperCase(),e=function(a){let b=0;for(let c=0;c<a.length;c++)b=a.charCodeAt(c)+((b<<5)-b);return(b%360+360)%360}(b),f=Math.round(.19*a),g=Math.round(.625*a);return(0,d.jsx)("div",{style:{width:`${a}px`,height:`${a}px`,borderRadius:`${f}px`,background:`hsl(${e}, 60%, 45%)`,display:"flex",alignItems:"center",justifyContent:"center",color:"white",fontSize:`${g}px`,fontWeight:700,fontFamily:"sans-serif"},children:c})}},16819:(a,b,c)=>{"use strict";c.d(b,{ErrorDisplay:()=>d});let d=(0,c(10864).registerClientReference)(function(){throw Error("Attempted to call ErrorDisplay() from the server but ErrorDisplay is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/equinox/agent-orchestrator/packages/web/src/components/ErrorDisplay.tsx","ErrorDisplay")},23041:(a,b,c)=>{"use strict";c.d(b,{ErrorDisplay:()=>j});var d=c(33666),e=c(47489),f=c.n(e);let g={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 h({accent:a}){return(0,d.jsx)("div",{className:"flex h-14 w-14 items-center justify-center rounded-2xl border",style:{background:`linear-gradient(180deg, color-mix(in srgb, ${a} 16%, var(--color-bg-elevated)) 0%, var(--color-bg-surface) 100%)`,borderColor:`color-mix(in srgb, ${a} 18%, var(--color-border-default))`,boxShadow:"var(--detail-card-shadow)"},children:(0,d.jsxs)("svg",{className:"h-7 w-7",fill:"none",stroke:"currentColor",strokeWidth:"1.6",style:{color:a},viewBox:"0 0 24 24",children:[(0,d.jsx)("rect",{x:"2.5",y:"4.5",width:"19",height:"15",rx:"3"}),(0,d.jsx)("path",{d:"M6.5 9.5l3.25 2.5-3.25 2.5M12.75 15h4.75"})]})})}function i({action:a,primary:b=!1}){let c=b?"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",e=b?{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 a.href?(0,d.jsx)(f(),{href:a.href,className:c,style:e,children:a.label}):(0,d.jsx)("button",{type:"button",onClick:a.onClick,className:c,style:e,children:a.label})}function j({title:a,message:b,tone:c="error",detailsTitle:e="Technical details",error:f,primaryAction:j,secondaryAction:k,compact:l=!1,chrome:m="page",children:n}){let o=g[c],p=!!(f?.digest||f?.message||f?.stack);return(0,d.jsx)("div",{className:`flex w-full items-center justify-center px-6 py-10 ${l?"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,d.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,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-start",children:[(0,d.jsx)(h,{accent:o.accent}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.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:o.accent,background:o.bg,borderColor:o.border},children:o.label}),(0,d.jsx)("h1",{className:"text-[24px] font-semibold tracking-[-0.04em] text-[var(--color-text-primary)]",children:a}),(0,d.jsx)("p",{className:"mt-2 max-w-[34rem] text-[14px] leading-6 text-[var(--color-text-secondary)]",children:b})]})]}),(j||k)&&(0,d.jsxs)("div",{className:"flex flex-wrap gap-3",children:[j?(0,d.jsx)(i,{action:j,primary:!0}):null,k?(0,d.jsx)(i,{action:k}):null]}),n,p?(0,d.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,d.jsx)("summary",{className:"cursor-pointer list-none px-4 py-3 text-[12px] font-medium text-[var(--color-text-secondary)]",children:e}),(0,d.jsxs)("div",{className:"border-t px-4 py-4",style:{borderColor:"var(--color-border-subtle)"},children:[f?.digest?(0,d.jsxs)("p",{className:"mb-3 font-[var(--font-mono)] text-[11px] text-[var(--color-text-tertiary)]",children:["digest: ",f.digest]}):null,f?.message?(0,d.jsx)("p",{className:"mb-3 text-[12px] leading-5 text-[var(--color-text-secondary)]",children:f.message}):null,f?.stack?(0,d.jsx)("pre",{className:"overflow-x-auto whitespace-pre-wrap font-[var(--font-mono)] text-[11px] leading-5 text-[var(--color-text-tertiary)]",children:f.stack}):null]})]}):null]})})})}},24553:()=>{},26400:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(33666);c(81115);var e=c(23041);function f({error:a,reset:b}){return(0,d.jsx)("html",{lang:"en",className:"dark",children:(0,d.jsx)("body",{className:"bg-[var(--color-bg-base)] text-[var(--color-text-primary)] antialiased",children:(0,d.jsx)(e.ErrorDisplay,{title:"Something broke at the app shell",message:"The dashboard could not recover from this error at the layout level. Try again first, then reload the page if it still fails.",tone:"error",primaryAction:{label:"Try again",onClick:b},secondaryAction:{label:"Reload page",onClick:()=>window.location.reload()},error:a})})})}},27926:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(10864).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/equinox/agent-orchestrator/packages/web/src/app/global-error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/equinox/agent-orchestrator/packages/web/src/app/global-error.tsx","default")},37728:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f}),c(81249),c(13081);var d=c(6181);let e={size:{width:180,height:180},contentType:"image/png"};async function f(a){let{__metadata_id__:b,...c}=await a.params,f=(0,d.fillMetadataSegment)(".",c,"apple-icon"),{generateImageMetadata:g}=e;function h(a,b){let c={alt:a.alt,type:a.contentType||"image/png",url:f+(b?"/"+b:"")+"?95aeb60ec7acf330"},{size:d}=a;return d&&(c.sizes=d.width+"x"+d.height),c}return g?(await g({params:c})).map((a,b)=>{let c=(a.id||b)+"";return h(a,c)}):[h(e,"")]}},41936:(a,b,c)=>{Promise.resolve().then(c.bind(c,27926))},49905:(a,b,c)=>{"use strict";function d(){return null}c.d(b,{ServiceWorkerRegistrar:()=>d}),c(81115)},51664:(a,b,c)=>{Promise.resolve().then(c.bind(c,26400))},54433:(a,b,c)=>{Promise.resolve().then(c.bind(c,16819))},58976:(a,b,c)=>{"use strict";c.d(b,{eT:()=>h,i2:()=>j});var d=c(33666),e=c(81115),f=c.n(e);let g=f().createContext(void 0);function h(){return f().useContext(g)}function i(a,b){return b?`${b}:${a}`:a}function j({children:a}){let b=(0,e.useRef)(null),c=(0,e.useRef)(new Map),f=(0,e.useRef)(new Map),[h,j]=(0,e.useState)("connecting"),[k,l]=(0,e.useState)([]),[m,n]=(0,e.useState)(null),o=(0,e.useRef)(0),p=(0,e.useRef)(null),q=(0,e.useRef)({}),r=(0,e.useRef)(!1),s=(0,e.useCallback)(()=>{if(!b.current){j("connecting");try{let a=function(a){let b=window.location,c="https:"===b.protocol?"wss:":"ws:",d=a.proxyWsPath??process.env.NEXT_PUBLIC_TERMINAL_WS_PATH;if(d){let a=d.replace(/\/ws\/?$/,"");return`${c}//${b.host}${a}/mux`}if(""===b.port||"443"===b.port||"80"===b.port)return`${c}//${b.hostname}/ao-terminal-mux`;let e=a.directTerminalPort??process.env.NEXT_PUBLIC_DIRECT_TERMINAL_PORT??"14801";return`${c}//${b.hostname}:${e}/mux`}(q.current);console.log("[MuxProvider] Connecting to",a);let d=new WebSocket(a);b.current=d,d.addEventListener("open",()=>{if(r.current)return void d.close();for(let a of(console.log("[MuxProvider] Connected"),j("connected"),o.current=0,f.current.values())){let b={ch:"terminal",id:a.id,type:"open",...a.projectId&&{projectId:a.projectId},...a.tmuxName&&{tmuxName:a.tmuxName}};d.send(JSON.stringify(b))}d.send(JSON.stringify({ch:"subscribe",topics:["sessions"]}))}),d.addEventListener("message",a=>{try{let b=JSON.parse(a.data);if("terminal"===b.ch){let a=i(b.id,"projectId"in b?b.projectId:void 0);if("data"===b.type){let d=c.current.get(a);if(d)for(let a of d)a(b.data)}else if("opened"===b.type)f.current.has(a)||f.current.set(a,{id:b.id,..."projectId"in b&&b.projectId?{projectId:b.projectId}:{}});else if("exited"===b.type){f.current.delete(a);let d=c.current.get(a);if(d){let a=`\r
|
|
2
|
+
\x1b[31m[Terminal exited with code ${b.code}]\x1b[0m\r
|
|
3
|
+
`;for(let b of d)b(a)}}else"error"===b.type&&console.error(`[MuxProvider] Terminal error for ${b.id}:`,b.message)}else"sessions"===b.ch&&("snapshot"===b.type?(l(b.sessions),n(null)):"error"===b.type&&n(b.error))}catch(a){console.error("[MuxProvider] Error processing message:",a)}}),d.addEventListener("error",a=>{console.error("[MuxProvider] WebSocket error:",a)}),d.addEventListener("close",()=>{if(console.log("[MuxProvider] Disconnected"),b.current===d&&(b.current=null),r.current)return;let a=Math.min(1e3*Math.pow(2,o.current),3e4);o.current+=1,j("reconnecting"),p.current=setTimeout(()=>{console.log(`[MuxProvider] Reconnecting (attempt ${o.current})...`),s()},a)})}catch(a){console.error("[MuxProvider] Failed to create WebSocket:",a),j("disconnected")}}},[]),t=(0,e.useCallback)((a,d,e)=>{let g=i(a,e),h=c.current.get(g);if(h||(h=new Set,c.current.set(g,h)),h.add(d),!f.current.has(g)&&b.current?.readyState===WebSocket.OPEN){let c={ch:"terminal",id:a,type:"open",...e&&{projectId:e}};b.current.send(JSON.stringify(c))}return()=>{let a=c.current.get(g);a&&(a.delete(d),0===a.size&&c.current.delete(g))}},[]),u=(0,e.useCallback)((a,c,d)=>{if(b.current?.readyState===WebSocket.OPEN){let e={ch:"terminal",id:a,type:"data",data:c,...d&&{projectId:d}};b.current.send(JSON.stringify(e))}},[]),v=(0,e.useCallback)((a,c,d)=>{if(f.current.set(i(a,c),{id:a,projectId:c,tmuxName:d}),b.current?.readyState===WebSocket.OPEN){let e={ch:"terminal",id:a,type:"open",...c&&{projectId:c},...d&&{tmuxName:d}};b.current.send(JSON.stringify(e))}},[]),w=(0,e.useCallback)((a,c)=>{if(f.current.delete(i(a,c)),b.current?.readyState===WebSocket.OPEN){let d={ch:"terminal",id:a,type:"close",...c&&{projectId:c}};b.current.send(JSON.stringify(d))}},[]),x=(0,e.useCallback)((a,c,d,e)=>{if(b.current?.readyState===WebSocket.OPEN){let f={ch:"terminal",id:a,type:"resize",cols:c,rows:d,...e&&{projectId:e}};b.current.send(JSON.stringify(f))}},[]),y=(0,e.useMemo)(()=>({subscribeTerminal:t,writeTerminal:u,openTerminal:v,closeTerminal:w,resizeTerminal:x,status:h,sessions:k,lastError:m}),[t,u,v,w,x,h,k,m]);return(0,d.jsx)(g.Provider,{value:y,children:a})}},62108:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,8125,23)),Promise.resolve().then(c.t.bind(c,6125,23)),Promise.resolve().then(c.t.bind(c,74148,23)),Promise.resolve().then(c.t.bind(c,10236,23)),Promise.resolve().then(c.t.bind(c,97760,23)),Promise.resolve().then(c.t.bind(c,9528,23)),Promise.resolve().then(c.t.bind(c,20225,23)),Promise.resolve().then(c.bind(c,23240))},62886:(a,b,c)=>{Promise.resolve().then(c.bind(c,89252))},63028:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(68844),e=c(16819);function f(){return(0,d.jsx)(e.ErrorDisplay,{title:"Page not found",message:"This route does not exist in the dashboard. Return to the main view to pick an active project or session.",tone:"not-found",primaryAction:{label:"Back to dashboard",href:"/"}})}},69648:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j,generateMetadata:()=>i,viewport:()=>h});var d=c(68844),e=c(81249),f=c(81871),g=c(94666);c(24553);let h={width:"device-width",initialScale:1,viewportFit:"cover",themeColor:[{media:"(prefers-color-scheme: light)",color:"#f5f3f0"},{media:"(prefers-color-scheme: dark)",color:"#121110"}]};async function i(){let a=(0,e.P_)();return{title:{template:`%s | ${a}`,default:`ao | ${a}`},description:"Dashboard for managing parallel AI coding agents",appleWebApp:{capable:!0,statusBarStyle:"black-translucent",title:`ao | ${a}`}}}function j({children:a}){return(0,d.jsx)("html",{lang:"en",className:"dark",suppressHydrationWarning:!0,children:(0,d.jsxs)("body",{className:"h-screen overflow-hidden bg-[var(--color-bg-base)] text-[var(--color-text-primary)] antialiased",children:[(0,d.jsx)(g.Providers,{children:a}),(0,d.jsx)(f.ServiceWorkerRegistrar,{})]})})}},71134:(a,b,c)=>{Promise.resolve().then(c.bind(c,82834))},71241:(a,b,c)=>{Promise.resolve().then(c.bind(c,88496)),Promise.resolve().then(c.bind(c,49905))},80969:(a,b,c)=>{Promise.resolve().then(c.bind(c,94666)),Promise.resolve().then(c.bind(c,81871))},81249:(a,b,c)=>{"use strict";c.d(b,{Bq:()=>m,P_:()=>l,cf:()=>n});var d=c(29685),e=c(73024),f=c(76760),g=c(35217);function h(){let a=(0,g.NoB)();try{return(0,g.Z9L)(a)}catch(a){if(a instanceof g.kw3||a instanceof Error&&"code"in a&&"ENOENT"===a.code)return(0,g.Z9L)();throw a}}function i(a){try{return(0,e.realpathSync)(a)}catch{return(0,f.resolve)(a)}}function j(a,b){let c=i(a);for(let[a,d]of Object.entries(b.projects))if("string"==typeof d.path&&i(d.path)===c)return a}function k(a=h()){try{let b=function(a){try{let b=function(a){let b=(0,f.resolve)(a);for(;;){for(let a of["agent-orchestrator.yaml","agent-orchestrator.yml"]){let c=(0,f.resolve)(b,a);if((0,e.existsSync)(c))return c}let a=(0,f.dirname)(b);if(a===b)return;b=a}}(process.cwd());if(!b)return;let c=(0,g.Z9L)(b),d=i((0,g.NoB)());if(i(c.configPath)!==d){for(let b of Object.values(c.projects)){if("string"!=typeof b.path)continue;let c=j(b.path,a);if(c)return c}return j((0,f.dirname)(c.configPath),a)}}catch{}}(a);if(b)return b;let c=i(process.cwd());return j(c,a)}catch{return}}let l=(0,d.cache)(()=>{try{let a=h(),b=k(a);if(b){let c=a.projects[b];return c?.name??b}let c=Object.keys(a.projects)[0];if(c)return(a.projects[c].name??c)||c||"ao"}catch{}return"ao"}),m=(0,d.cache)(()=>{try{let a=h(),b=k(a);if(b)return b;let c=Object.keys(a.projects)[0];if(c)return c}catch{}return"ao"}),n=(0,d.cache)(()=>{try{let a=h();return[...Object.entries(a.projects).map(([a,b])=>({id:a,name:b.name??a,sessionPrefix:b.sessionPrefix??a})),...Object.entries(a.degradedProjects).map(([a,b])=>({id:a,name:a,sessionPrefix:a,resolveError:b.resolveError}))]}catch{return[]}})},81871:(a,b,c)=>{"use strict";c.d(b,{ServiceWorkerRegistrar:()=>d});let d=(0,c(10864).registerClientReference)(function(){throw Error("Attempted to call ServiceWorkerRegistrar() from the server but ServiceWorkerRegistrar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/equinox/agent-orchestrator/packages/web/src/components/ServiceWorkerRegistrar.tsx","ServiceWorkerRegistrar")},82834:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(10864).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/equinox/agent-orchestrator/packages/web/src/app/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/equinox/agent-orchestrator/packages/web/src/app/error.tsx","default")},88496:(a,b,c)=>{"use strict";c.d(b,{Providers:()=>g});var d=c(33666),e=c(93463),f=c(58976);function g({children:a}){return(0,d.jsx)(e.N,{attribute:"class",defaultTheme:"dark",enableSystem:!1,children:(0,d.jsx)(f.i2,{children:a})})}},89252:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(33666),e=c(50436);c(81115);var f=c(23041);function g({error:a,reset:b}){let c=(0,e.useRouter)();return(0,d.jsx)(f.ErrorDisplay,{title:"Something went wrong",message:"The dashboard hit an unexpected error. Try reloading the route data or head back to the main dashboard.",tone:"warning",primaryAction:{label:"Try again",onClick:()=>{b(),c.refresh()}},secondaryAction:{label:"Back to dashboard",href:"/"},error:a,compact:!0,chrome:"card"})}},90881:(a,b,c)=>{Promise.resolve().then(c.bind(c,23041))},94666:(a,b,c)=>{"use strict";c.d(b,{Providers:()=>d});let d=(0,c(10864).registerClientReference)(function(){throw Error("Attempted to call Providers() from the server but Providers is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/equinox/agent-orchestrator/packages/web/src/app/providers.tsx","Providers")}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=3714,exports.ids=[3714],exports.modules={18768:(a,b,c)=>{function d(a){let b=0;for(let c of Object.values(a))("respond"===c||"review"===c||"action"===c||"merge"===c)&&b++;return b}function e({sseAttentionLevels:a,projectName:b="A"}){return b.charAt(0).toUpperCase(),null}c.d(b,{S:()=>d,u:()=>e}),c(81115)},20057:(a,b,c)=>{c.d(b,{D:()=>g});var d=c(81115),e=c(37155);function f(a,b){switch(b.type){case"reset":return{...a,sessions:b.sessions,...void 0!==b.sseAttentionLevels?{sseAttentionLevels:b.sseAttentionLevels}:{}};case"markLiveSessionsResolved":if(a.liveSessionsResolved)return a;return{...a,liveSessionsResolved:!0};case"setConnection":return{...a,connectionStatus:b.status};case"snapshot":{let c=new Map(b.patches.map(a=>[a.id,a])),d=!1,e=a.sessions.map(a=>{let b=c.get(a.id);return b&&(a.status!==b.status||a.activity!==b.activity||a.lastActivityAt!==b.lastActivityAt)?(d=!0,{...a,status:b.status,activity:b.activity,lastActivityAt:b.lastActivityAt}):a}),f={};for(let a of b.patches)f[a.id]=a.attentionLevel;let g=d,h=Object.keys(f).length!==Object.keys(a.sseAttentionLevels).length||b.patches.some(b=>a.sseAttentionLevels[b.id]!==b.attentionLevel);if(!g&&!h)return a;return{...a,sessions:g?e:a.sessions,sseAttentionLevels:h?f:a.sseAttentionLevels}}}}function g(a){let{initialSessions:b,project:c,muxSessions:g,initialAttentionLevels:h,disabled:i=!1,attentionZones:j}=a,[k,l]=(0,d.useReducer)(f,{sessions:b,connectionStatus:"connected",sseAttentionLevels:h??{},liveSessionsResolved:!1});(0,d.useRef)(k.sessions),(0,d.useRef)(h).current=h;let m=(0,d.useRef)(null),n=(0,d.useRef)(null),o=(0,d.useRef)(0),p=(0,d.useRef)(0);(0,d.useRef)(null);let q=(0,d.useRef)(null),r=(0,d.useCallback)(()=>{m.current||Date.now()-p.current<500||null===q.current&&(m.current=setTimeout(()=>{if(m.current=null,null!==q.current)return;let a=n.current,b=new AbortController;q.current=b,p.current=Date.now(),fetch(c?`/api/sessions?project=${encodeURIComponent(c)}`:"/api/sessions",{signal:b.signal,cache:"no-store"}).then(a=>a.ok?a.json():null).then(a=>{if(b.signal.aborted||!a?.sessions){b.signal.aborted||(o.current=Date.now());return}o.current=Date.now(),l({type:"markLiveSessionsResolved"});let c=Object.fromEntries(a.sessions.map(a=>[a.id,(0,e.ng)(a,j)]));l({type:"reset",sessions:a.sessions,sseAttentionLevels:c})}).catch(a=>{a instanceof DOMException&&"AbortError"===a.name||(console.warn("[useSessionEvents] refresh failed:",a),o.current=Date.now())}).finally(()=>{if(q.current===b&&(q.current=null),b.signal.aborted){null!==n.current&&r();return}if(null!==n.current&&n.current!==a)return void r();n.current=null})},120))},[c,j]);return k}},37501:(a,b,c)=>{c.d(b,{dG:()=>i,i_:()=>g,j6:()=>h});var d=c(33666),e=c(37155),f=c(82732);function g(a,b){let c=a+b;return c>1e3?"XL":c>500?"L":c>200?"M":c>50?"S":"XS"}function h({pr:a,muted:b=!1}){let c=g(a.additions,a.deletions),h=(0,e.fZ)(a),i=(0,e.sZ)(a),j=h||i,k=j?"—":"merged"===a.state?"merged":"closed"===a.state?"closed":a.isDraft?"draft":"approved"===a.reviewDecision?"approved":"changes_requested"===a.reviewDecision?"changes requested":"needs review",l=j?"text-[var(--color-text-tertiary)]":a.isDraft?"text-[var(--color-text-muted)]":"approved"===a.reviewDecision?"text-[var(--color-accent-green)]":"changes_requested"===a.reviewDecision?"text-[var(--color-accent-red)]":"text-[var(--color-accent-yellow)]",m=(0,d.jsx)("span",{className:"inline-block h-3 w-12 animate-pulse rounded bg-[var(--color-bg-subtle)]"});return(0,d.jsxs)("tr",{className:`border-b border-[var(--color-border-subtle)] transition-colors hover:bg-[var(--color-bg-subtle)]${b?" opacity-60 hover:opacity-100":""}`,children:[(0,d.jsx)("td",{className:"px-3 py-2.5 text-sm",children:(0,d.jsxs)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"hover:underline",children:["#",a.number]})}),(0,d.jsx)("td",{className:"max-w-[420px] truncate px-3 py-2.5 text-sm font-medium",children:(0,d.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"hover:underline",children:a.title})}),(0,d.jsx)("td",{className:"px-3 py-2.5 text-sm",children:i?m:h?(0,d.jsx)("span",{className:"text-[var(--color-text-tertiary)]",children:"—"}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{className:"text-[var(--color-accent-green)]",children:["+",a.additions]})," ",(0,d.jsxs)("span",{className:"text-[var(--color-accent-red)]",children:["-",a.deletions]})," ",(0,d.jsx)("span",{className:"text-[var(--color-text-muted)]",children:c})]})}),(0,d.jsx)("td",{className:"px-3 py-2.5",children:i?m:h?(0,d.jsx)("span",{className:"text-[var(--color-text-tertiary)]",children:"—"}):(0,d.jsx)(f.wX,{status:a.ciStatus,checks:a.ciChecks,compact:!0})}),(0,d.jsx)("td",{className:`px-3 py-2.5 text-xs font-semibold ${l}`,children:i?m:k}),(0,d.jsx)("td",{className:`px-3 py-2.5 text-center text-sm font-bold ${i?"":a.unresolvedThreads>0?"text-[var(--color-accent-red)]":"text-[var(--color-border-default)]"}`,children:i?m:a.unresolvedThreads})]})}function i({pr:a,muted:b=!1}){let c=(0,e.fZ)(a),f=(0,e.sZ)(a),g=c||f,h=g?"—":"passing"===a.ciStatus?"passing":"failing"===a.ciStatus?"failed":"pending",i=g?"—":"merged"===a.state?"merged":"closed"===a.state?"closed":a.isDraft?"draft":"approved"===a.reviewDecision?"approved":"changes_requested"===a.reviewDecision?"changes":"needs review",j=(0,d.jsx)("span",{className:"inline-block h-3 w-10 animate-pulse rounded bg-[var(--color-bg-subtle)]"}),k=g?null:`+${a.additions} -${a.deletions}`,l="merged"===a.state?"mobile-pr-card__meta--merged":"closed"===a.state?"mobile-pr-card__meta--closed":"changes_requested"===a.reviewDecision?"mobile-pr-card__meta--changes":"approved"===a.reviewDecision?"mobile-pr-card__meta--approved":"mobile-pr-card__meta--open";return(0,d.jsxs)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:`mobile-pr-card${b?" mobile-pr-card--muted":""}`,children:[(0,d.jsxs)("div",{className:"mobile-pr-card__line",children:[(0,d.jsxs)("span",{className:"mobile-pr-card__number",children:["#",a.number]}),(0,d.jsx)("span",{className:"mobile-pr-card__title",children:a.title})]}),(0,d.jsxs)("div",{className:`mobile-pr-card__meta ${l}`,children:[f?j:(0,d.jsxs)("span",{className:"mobile-pr-card__metric-value",children:[(0,d.jsx)("span",{className:"mobile-pr-card__ci-dot",style:{background:g?"var(--color-text-tertiary)":"passing"===a.ciStatus?"var(--color-accent-green)":"failing"===a.ciStatus?"var(--color-accent-red)":"var(--color-status-attention)"}}),(0,d.jsx)("span",{style:{color:g?void 0:"passing"===a.ciStatus?"var(--color-accent-green)":"failing"===a.ciStatus?"var(--color-accent-red)":"var(--color-text-secondary)"},children:h})]}),(0,d.jsx)("span",{className:"mobile-pr-card__review",style:{color:g?void 0:"approved"===a.reviewDecision?"var(--color-accent-green)":"changes_requested"===a.reviewDecision?"var(--color-accent-red)":"var(--color-text-secondary)"},children:f?j:i}),(0,d.jsx)("span",{className:"mobile-pr-card__diff",children:g?j:k})]})]})}},52557:(a,b,c)=>{c.d(b,{KG:()=>f,PB:()=>e});var d=c(15407);function e(a,b,c){return b&&"all"!==b?a.filter(a=>(function(a,b,c){if(a.projectId===b)return!0;let d=c[b];return!!(d?.sessionPrefix&&a.id.startsWith(d.sessionPrefix))||c[a.projectId]?.sessionPrefix===b})(a,b,c)):a}function f(a,b,c){let f=Object.entries(c).map(([a,b])=>b.sessionPrefix??a);return e(a.filter(a=>!(0,d.tT)(a,c[a.projectId]?.sessionPrefix??a.projectId,f)),b,c)}},64283:(a,b,c)=>{c.d(b,{Kc:()=>m,Kl:()=>n,xI:()=>l});var d=c(29685),e=c(13602),f=c(21271),g=c(81249),h=c(52557),i=c(90456);function j(a){let b=a instanceof Error?a.message:"string"==typeof a?a:"";if(b.trim()){let a=b.split(/\r?\n/).map(a=>a.trim()).find(a=>a.length>0);if(a)return a}return"The orchestrator could not load dashboard data. Check your configuration file."}let k="simple",l=(0,d.cache)(function(a){if("all"===a)return"All Projects";let b=(0,g.cf)();if(a){let c=b.find(b=>b.id===a);if(c)return c.name}return(0,g.P_)()});function m(a){if("all"===a)return"all";let b=(0,g.cf)();return a&&b.some(b=>b.id===a)?a:(0,g.Bq)()}let n=(0,d.cache)(async function(a){let b,c,d,n=m(a),o={sessions:[],orchestrators:[],projectName:l(n),projects:(0,g.cf)(),selectedProjectId:"all"===n?void 0:n,attentionZones:k};try{let a=await (0,e.Z1)();b=a.config,c=a.registry,o.attentionZones=b.dashboard?.attentionZones??k;try{d=await a.sessionManager.list()}catch(a){return o.dashboardLoadError=j(a),o}}catch(a){return o.dashboardLoadError=j(a),o}let p=(0,h.PB)(d,n,b.projects);o.orchestrators=(0,f.WQ)(p,b.projects);let q=(0,h.KG)(d,n,b.projects);o.sessions=q.map(f.cg);try{await (0,i.o)((0,f.oc)(q,o.sessions,b,c),3e3)}catch(a){console.warn("[dashboard-page-data] metadata fast enrichment failed:",a)}for(let a=0;a<q.length;a++){let d=q[a];if(d.pr)try{let g=(0,f.KI)(d,b.projects),h=(0,e.wp)(c,g);if(h)try{await (0,f.Ik)(o.sessions[a],h,d.pr,{cacheOnly:!0})}catch{}}catch(a){console.warn(`[dashboard-page-data] PR enrichment failed for session ${d.id}:`,a)}}return o})},82732:(a,b,c)=>{c.d(b,{wX:()=>f,zm:()=>i});var d=c(33666);let e={passing:{label:"CI passing",className:"bg-[rgba(63,185,80,0.1)] text-[var(--color-accent-green)]",icon:"✓"},failing:{label:"CI failing",className:"bg-[rgba(248,81,73,0.15)] text-[var(--color-accent-red)]",icon:"✗"},pending:{label:"CI pending",className:"bg-[rgba(210,153,34,0.1)] text-[var(--color-accent-yellow)]",icon:"●"},none:{label:"—",className:"text-[var(--color-text-muted)]",icon:""}};function f({status:a,checks:b,compact:c}){let f=e[a],g=b?.filter(a=>"failed"===a.status).length??0;if("none"===a)return(0,d.jsx)("span",{className:"text-xs text-[var(--color-text-muted)]",children:"—"});let h="failing"===a&&g>0?`${g} check${g>1?"s":""} failing`:f.label;return(0,d.jsxs)("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] font-semibold tracking-wide ${f.className}`,children:[!c&&(0,d.jsx)("span",{children:f.icon}),h]})}let g={passed:{icon:"✓",color:"var(--color-accent-green)"},failed:{icon:"✗",color:"var(--color-accent-red)"},running:{icon:"●",color:"var(--color-accent-yellow)"},pending:{icon:"○",color:"var(--color-text-muted)"},skipped:{icon:"○",color:"var(--color-text-muted)"}},h={failed:0,running:1,pending:2,passed:3,skipped:4};function i({checks:a,layout:b="vertical"}){let c=[...a].sort((a,b)=>h[a.status]-h[b.status]);return"inline"===b?(0,d.jsx)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1",children:c.map(a=>{let{icon:b,color:c}=g[a.status],e=(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs",children:[(0,d.jsx)("span",{style:{color:c},children:b}),(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:a.name})]});return a.url?(0,d.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"hover:no-underline",children:e},a.name):(0,d.jsx)("span",{children:e},a.name)})}):"expanded"===b?(0,d.jsx)("div",{className:"space-y-1",children:c.map(a=>{let{icon:b,color:c}=g[a.status],e=(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs",children:[(0,d.jsx)("span",{style:{color:c},children:b}),(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:a.name})]});return(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[a.url?(0,d.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"hover:no-underline",children:e}):e,a.url&&(0,d.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"text-[11px] text-[var(--color-accent-blue)] hover:underline",children:"view"})]},a.name)})}):(0,d.jsx)("div",{className:"space-y-1",children:c.map(a=>{let{icon:b,color:c}=g[a.status];return(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,d.jsx)("span",{style:{color:c},className:"w-3.5 shrink-0 text-center",children:b}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate text-[var(--color-text-secondary)]",children:a.name}),a.url&&(0,d.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"shrink-0 text-[11px] text-[var(--color-accent-blue)] hover:underline",children:"view"})]},a.name)})})}},90456:(a,b,c)=>{c.d(b,{o:()=>d});async function d(a,b){let c=null,d=new Promise(a=>{c=setTimeout(()=>a(!1),b)});try{return await Promise.race([a.then(()=>!0).catch(()=>!0),d])}finally{c&&clearTimeout(c)}}}};
|
|
1
|
+
"use strict";exports.id=3714,exports.ids=[3714],exports.modules={18768:(a,b,c)=>{function d(a){let b=0;for(let c of Object.values(a))("respond"===c||"review"===c||"action"===c||"merge"===c)&&b++;return b}function e({attentionLevels:a,projectName:b="A"}){return b.charAt(0).toUpperCase(),null}c.d(b,{S:()=>d,u:()=>e}),c(81115)},20057:(a,b,c)=>{c.d(b,{D:()=>k});var d=c(81115),e=c(37155),f=c(20902);let g=new Set(["merge","action","respond","review","pending","working","done"]),h=new Set(["active","ready","idle","waiting_input","blocked","exited"]),i=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 j(a,b){switch(b.type){case"setLoadError":return a.loadError===b.error?a:{...a,loadError:b.error};case"reset":return{...a,sessions:b.sessions,...b.liveResolved?{liveSessionsResolved:!0,loadError:null}:{},...void 0!==b.attentionLevels?{attentionLevels:b.attentionLevels}:{}};case"snapshot":{let c=new Map(b.patches.map(a=>[a.id,a])),d=!1,e=a.sessions.map(a=>{let b=c.get(a.id);return b&&(a.status!==b.status||a.activity!==b.activity||a.lastActivityAt!==b.lastActivityAt)?(d=!0,{...a,status:i.has(b.status)?b.status:a.status,activity:null!==b.activity&&h.has(b.activity)?b.activity:null,lastActivityAt:b.lastActivityAt}):a}),f={};for(let a of b.patches){if(!g.has(a.attentionLevel)){console.warn("[useSessionEvents] Unknown attentionLevel from server:",a.attentionLevel);continue}f[a.id]=a.attentionLevel}let j=d,k=Object.keys(f).length!==Object.keys(a.attentionLevels).length||b.patches.some(b=>a.attentionLevels[b.id]!==b.attentionLevel);if(!j&&!k){if(a.liveSessionsResolved)return a;return{...a,liveSessionsResolved:!0}}return{...a,sessions:j?e:a.sessions,attentionLevels:k?f:a.attentionLevels,liveSessionsResolved:!0}}}}function k(a){let{initialSessions:b,project:c,muxSessions:g,initialAttentionLevels:h,muxLastError:i,disabled:k=!1,attentionZones:l}=a,[m,n]=(0,d.useReducer)(j,{sessions:b,attentionLevels:h??{},liveSessionsResolved:!1,loadError:null});(0,d.useRef)(m.sessions),(0,d.useRef)(h).current=h;let o=(0,d.useRef)(null),p=(0,d.useRef)(null),q=(0,d.useRef)(0),r=(0,d.useRef)(0),s=(0,d.useRef)(null),t=(0,d.useRef)(!1),u=(0,d.useCallback)(()=>{o.current||Date.now()-r.current<500||null===s.current&&(o.current=setTimeout(()=>{if(o.current=null,null!==s.current)return;let a=p.current,b=new AbortController;s.current=b,r.current=Date.now();let d=c?`/api/sessions?project=${encodeURIComponent(c)}`:"/api/sessions";(0,f.u)(d,{signal:b.signal,cache:"no-store",timeoutMs:6e3,timeoutMessage:"Dashboard refresh timed out after 6000ms"}).then(a=>{if(b.signal.aborted||!a?.sessions){b.signal.aborted||(q.current=Date.now());return}q.current=Date.now();let c=Object.fromEntries(a.sessions.map(a=>[a.id,(0,e.ng)(a,l)]));n({type:"reset",sessions:a.sessions,attentionLevels:c,liveResolved:!0})}).catch(a=>{t.current||b.signal.aborted||function(a){if(a instanceof DOMException)return"AbortError"===a.name;if(a instanceof Error){let b=a.message.toLowerCase();return b.includes("aborted")||b.includes("aborterror")}return!1}(a)||(console.warn("[useSessionEvents] refresh failed:",a),q.current=Date.now())}).finally(()=>{if(s.current===b&&(s.current=null),b.signal.aborted){null!==p.current&&u();return}if(null!==p.current&&p.current!==a)return void u();p.current=null})},120))},[c,l]);return m}},37501:(a,b,c)=>{c.d(b,{dG:()=>i,i_:()=>g,j6:()=>h});var d=c(33666),e=c(37155),f=c(82732);function g(a,b){let c=a+b;return c>1e3?"XL":c>500?"L":c>200?"M":c>50?"S":"XS"}function h({pr:a,muted:b=!1}){let c=g(a.additions,a.deletions),h=(0,e.fZ)(a),i=(0,e.sZ)(a),j=h||i,k=j?"—":"merged"===a.state?"merged":"closed"===a.state?"closed":a.isDraft?"draft":"approved"===a.reviewDecision?"approved":"changes_requested"===a.reviewDecision?"changes requested":"needs review",l=j?"text-[var(--color-text-tertiary)]":a.isDraft?"text-[var(--color-text-muted)]":"approved"===a.reviewDecision?"text-[var(--color-accent-green)]":"changes_requested"===a.reviewDecision?"text-[var(--color-accent-red)]":"text-[var(--color-accent-yellow)]",m=(0,d.jsx)("span",{className:"inline-block h-3 w-12 animate-pulse rounded bg-[var(--color-bg-subtle)]"});return(0,d.jsxs)("tr",{className:`border-b border-[var(--color-border-subtle)] transition-colors hover:bg-[var(--color-bg-subtle)]${b?" opacity-60 hover:opacity-100":""}`,children:[(0,d.jsx)("td",{className:"px-3 py-2.5 text-sm",children:(0,d.jsxs)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"hover:underline",children:["#",a.number]})}),(0,d.jsx)("td",{className:"max-w-[420px] truncate px-3 py-2.5 text-sm font-medium",children:(0,d.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"hover:underline",children:a.title})}),(0,d.jsx)("td",{className:"px-3 py-2.5 text-sm",children:i?m:h?(0,d.jsx)("span",{className:"text-[var(--color-text-tertiary)]",children:"—"}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{className:"text-[var(--color-accent-green)]",children:["+",a.additions]})," ",(0,d.jsxs)("span",{className:"text-[var(--color-accent-red)]",children:["-",a.deletions]})," ",(0,d.jsx)("span",{className:"text-[var(--color-text-muted)]",children:c})]})}),(0,d.jsx)("td",{className:"px-3 py-2.5",children:i?m:h?(0,d.jsx)("span",{className:"text-[var(--color-text-tertiary)]",children:"—"}):(0,d.jsx)(f.wX,{status:a.ciStatus,checks:a.ciChecks,compact:!0})}),(0,d.jsx)("td",{className:`px-3 py-2.5 text-xs font-semibold ${l}`,children:i?m:k}),(0,d.jsx)("td",{className:`px-3 py-2.5 text-center text-sm font-bold ${i?"":a.unresolvedThreads>0?"text-[var(--color-accent-red)]":"text-[var(--color-border-default)]"}`,children:i?m:a.unresolvedThreads})]})}function i({pr:a,muted:b=!1}){let c=(0,e.fZ)(a),f=(0,e.sZ)(a),g=c||f,h=g?"—":"passing"===a.ciStatus?"passing":"failing"===a.ciStatus?"failed":"pending",i=g?"—":"merged"===a.state?"merged":"closed"===a.state?"closed":a.isDraft?"draft":"approved"===a.reviewDecision?"approved":"changes_requested"===a.reviewDecision?"changes":"needs review",j=(0,d.jsx)("span",{className:"inline-block h-3 w-10 animate-pulse rounded bg-[var(--color-bg-subtle)]"}),k=g?null:`+${a.additions} -${a.deletions}`,l="merged"===a.state?"mobile-pr-card__meta--merged":"closed"===a.state?"mobile-pr-card__meta--closed":"changes_requested"===a.reviewDecision?"mobile-pr-card__meta--changes":"approved"===a.reviewDecision?"mobile-pr-card__meta--approved":"mobile-pr-card__meta--open";return(0,d.jsxs)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:`mobile-pr-card${b?" mobile-pr-card--muted":""}`,children:[(0,d.jsxs)("div",{className:"mobile-pr-card__line",children:[(0,d.jsxs)("span",{className:"mobile-pr-card__number",children:["#",a.number]}),(0,d.jsx)("span",{className:"mobile-pr-card__title",children:a.title})]}),(0,d.jsxs)("div",{className:`mobile-pr-card__meta ${l}`,children:[f?j:(0,d.jsxs)("span",{className:"mobile-pr-card__metric-value",children:[(0,d.jsx)("span",{className:"mobile-pr-card__ci-dot",style:{background:g?"var(--color-text-tertiary)":"passing"===a.ciStatus?"var(--color-accent-green)":"failing"===a.ciStatus?"var(--color-accent-red)":"var(--color-status-attention)"}}),(0,d.jsx)("span",{style:{color:g?void 0:"passing"===a.ciStatus?"var(--color-accent-green)":"failing"===a.ciStatus?"var(--color-accent-red)":"var(--color-text-secondary)"},children:h})]}),(0,d.jsx)("span",{className:"mobile-pr-card__review",style:{color:g?void 0:"approved"===a.reviewDecision?"var(--color-accent-green)":"changes_requested"===a.reviewDecision?"var(--color-accent-red)":"var(--color-text-secondary)"},children:f?j:i}),(0,d.jsx)("span",{className:"mobile-pr-card__diff",children:g?j:k})]})]})}},52557:(a,b,c)=>{c.d(b,{KG:()=>g,PB:()=>f});var d=c(15407),e=c(68544);function f(a,b,c){return b&&"all"!==b?a.filter(a=>(function(a,b,c){if(a.projectId===b)return!0;let d=c[b];return!!(d?.sessionPrefix&&(0,e.G)(a.id,d.sessionPrefix))||c[a.projectId]?.sessionPrefix===b})(a,b,c)):a}function g(a,b,c){let e=Object.entries(c).map(([a,b])=>b.sessionPrefix??a);return f(a.filter(a=>!(0,d.tT)(a,c[a.projectId]?.sessionPrefix??a.projectId,e)),b,c)}},64283:(a,b,c)=>{c.d(b,{Kc:()=>m,Kl:()=>n,xI:()=>l});var d=c(29685),e=c(89223),f=c(21271),g=c(81249),h=c(52557),i=c(90456);function j(a){let b=a instanceof Error?a.message:"string"==typeof a?a:"";if(b.trim()){let a=b.split(/\r?\n/).map(a=>a.trim()).find(a=>a.length>0);if(a)return a}return"The orchestrator could not load dashboard data. Check your configuration file."}let k="simple",l=(0,d.cache)(function(a){if("all"===a)return"All Projects";let b=(0,g.cf)();if(a){let c=b.find(b=>b.id===a);if(c)return c.name}return(0,g.P_)()});function m(a){if("all"===a)return"all";let b=(0,g.cf)();return a&&b.some(b=>b.id===a)?a:(0,g.Bq)()}let n=(0,d.cache)(async function(a){let b,c,d,n=m(a),o={sessions:[],orchestrators:[],projectName:l(n),projects:(0,g.cf)(),selectedProjectId:"all"===n?void 0:n,attentionZones:k};try{let a=await (0,e.Z1)();b=a.config,c=a.registry,o.attentionZones=b.dashboard?.attentionZones??k;try{d=await a.sessionManager.listCached()}catch(a){return o.dashboardLoadError=j(a),o}}catch(a){return o.dashboardLoadError=j(a),o}let p=(0,h.PB)(d,n,b.projects);o.orchestrators=(0,f.WQ)(p,b.projects);let q=(0,h.KG)(d,n,b.projects);o.sessions=q.map(f.cg);try{await (0,i.o)((0,f.oc)(q,o.sessions,b,c),3e3)}catch(a){console.warn("[dashboard-page-data] metadata fast enrichment failed:",a)}for(let a=0;a<q.length;a++)q[a].pr&&(0,f.Ik)(o.sessions[a]);return o})},82732:(a,b,c)=>{c.d(b,{wX:()=>f,zm:()=>i});var d=c(33666);let e={passing:{label:"CI passing",className:"bg-[rgba(63,185,80,0.1)] text-[var(--color-accent-green)]",icon:"✓"},failing:{label:"CI failing",className:"bg-[rgba(248,81,73,0.15)] text-[var(--color-accent-red)]",icon:"✗"},pending:{label:"CI pending",className:"bg-[rgba(210,153,34,0.1)] text-[var(--color-accent-yellow)]",icon:"●"},none:{label:"—",className:"text-[var(--color-text-muted)]",icon:""}};function f({status:a,checks:b,compact:c}){let f=e[a],g=b?.filter(a=>"failed"===a.status).length??0;if("none"===a)return(0,d.jsx)("span",{className:"text-xs text-[var(--color-text-muted)]",children:"—"});let h="failing"===a&&g>0?`${g} check${g>1?"s":""} failing`:f.label;return(0,d.jsxs)("span",{className:`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] font-semibold tracking-wide ${f.className}`,children:[!c&&(0,d.jsx)("span",{children:f.icon}),h]})}let g={passed:{icon:"✓",color:"var(--color-accent-green)"},failed:{icon:"✗",color:"var(--color-accent-red)"},running:{icon:"●",color:"var(--color-accent-yellow)"},pending:{icon:"○",color:"var(--color-text-muted)"},skipped:{icon:"○",color:"var(--color-text-muted)"}},h={failed:0,running:1,pending:2,passed:3,skipped:4};function i({checks:a,layout:b="vertical"}){let c=[...a].sort((a,b)=>h[a.status]-h[b.status]);return"inline"===b?(0,d.jsx)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1",children:c.map(a=>{let{icon:b,color:c}=g[a.status],e=(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs",children:[(0,d.jsx)("span",{style:{color:c},children:b}),(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:a.name})]});return a.url?(0,d.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"hover:no-underline",children:e},a.name):(0,d.jsx)("span",{children:e},a.name)})}):"expanded"===b?(0,d.jsx)("div",{className:"space-y-1",children:c.map(a=>{let{icon:b,color:c}=g[a.status],e=(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs",children:[(0,d.jsx)("span",{style:{color:c},children:b}),(0,d.jsx)("span",{className:"text-[var(--color-text-secondary)]",children:a.name})]});return(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[a.url?(0,d.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"hover:no-underline",children:e}):e,a.url&&(0,d.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"text-[11px] text-[var(--color-accent-blue)] hover:underline",children:"view"})]},a.name)})}):(0,d.jsx)("div",{className:"space-y-1",children:c.map(a=>{let{icon:b,color:c}=g[a.status];return(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,d.jsx)("span",{style:{color:c},className:"w-3.5 shrink-0 text-center",children:b}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate text-[var(--color-text-secondary)]",children:a.name}),a.url&&(0,d.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"shrink-0 text-[11px] text-[var(--color-accent-blue)] hover:underline",children:"view"})]},a.name)})})}},90456:(a,b,c)=>{c.d(b,{o:()=>d});async function d(a,b){let c=null,d=new Promise(a=>{c=setTimeout(()=>a(!1),b)});try{return await Promise.race([a.then(()=>!0).catch(()=>!0),d])}finally{c&&clearTimeout(c)}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
exports.id=4520,exports.ids=[4520],exports.modules={1747:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getRedirectError:function(){return g},getRedirectStatusCodeFromError:function(){return l},getRedirectTypeFromError:function(){return k},getURLFromRedirectError:function(){return j},permanentRedirect:function(){return i},redirect:function(){return h}});let d=c(67981),e=c(18655),f=c(19121).actionAsyncStorage;function g(a,b,c){void 0===c&&(c=d.RedirectStatusCode.TemporaryRedirect);let f=Object.defineProperty(Error(e.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return f.digest=e.REDIRECT_ERROR_CODE+";"+b+";"+a+";"+c+";",f}function h(a,b){var c;throw null!=b||(b=(null==f||null==(c=f.getStore())?void 0:c.isAction)?e.RedirectType.push:e.RedirectType.replace),g(a,b,d.RedirectStatusCode.TemporaryRedirect)}function i(a,b){throw void 0===b&&(b=e.RedirectType.replace),g(a,b,d.RedirectStatusCode.PermanentRedirect)}function j(a){return(0,e.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function k(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function l(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},9603:(a,b,c)=>{"use strict";c.d(b,{RepairDegradedProjectButton:()=>d});let d=(0,c(10864).registerClientReference)(function(){throw Error("Attempted to call RepairDegradedProjectButton() from the server but RepairDegradedProjectButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/equinox/agent-orchestrator/packages/web/src/components/RepairDegradedProjectButton.tsx","RepairDegradedProjectButton")},34054:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(3307).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},34391:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ReadonlyURLSearchParams:function(){return k},RedirectType:function(){return e.RedirectType},forbidden:function(){return g.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return h.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return i.unstable_rethrow}});let d=c(1747),e=c(18655),f=c(52098),g=c(43747),h=c(34054),i=c(69714);class j extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class k extends URLSearchParams{append(){throw new j}delete(){throw new j}set(){throw new j}sort(){throw new j}}function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},43747:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"forbidden",{enumerable:!0,get:function(){return d}}),c(3307).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},46802:(a,b,c)=>{"use strict";c.d(b,{l:()=>g});var d=c(29685),e=c(13602),f=c(81249);let g=(0,d.cache)(async function(a){let{config:b}=await (0,e.Z1)(),c=b.projects[a]??null,d=b.degradedProjects[a]??null;return c||d?{projectId:a,project:c,degradedProject:d,projects:(0,f.cf)()}:null})},52098:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return e}});let d=""+c(3307).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function e(){let a=Object.defineProperty(Error(d),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=d,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},56591:(a,b,c)=>{"use strict";var d=c(34391);c.o(d,"notFound")&&c.d(b,{notFound:function(){return d.notFound}})},59281:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(2433),e=c(20674),f=c(9483),g=c(40959),h=c(26636),i=c(27170);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},68398:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(68844);function e(){return(0,d.jsxs)("aside",{className:"project-sidebar flex h-full flex-col","aria-hidden":"true",children:[(0,d.jsx)("div",{className:"project-sidebar__compact-hdr",children:(0,d.jsx)("span",{className:"project-sidebar__sect-label",children:"Projects"})}),(0,d.jsx)("div",{className:"project-sidebar__tree flex-1 overflow-y-auto overflow-x-hidden",children:(0,d.jsx)("div",{className:"py-2",children:["w-28","w-24","w-32","w-20"].map((a,b)=>(0,d.jsxs)("div",{className:"flex items-center gap-3 border-b border-[var(--color-border-subtle)] px-4 py-3",children:[(0,d.jsx)("div",{className:"h-3 w-3 animate-pulse bg-[color-mix(in_srgb,var(--color-text-primary)_8%,transparent)]"}),(0,d.jsx)("div",{className:`h-4 animate-pulse bg-[color-mix(in_srgb,var(--color-text-primary)_10%,transparent)] ${a}`}),(0,d.jsx)("div",{className:"ml-auto h-6 w-6 animate-pulse border border-[var(--color-border-default)] bg-[var(--color-bg-base)]"})]},`project-loading-row-${b}`))})}),(0,d.jsx)("div",{className:"project-sidebar__footer",children:(0,d.jsxs)("div",{className:"flex items-center gap-2 border-t border-[var(--color-border-subtle)] px-2 py-2",children:[(0,d.jsx)("div",{className:"h-7 w-7 animate-pulse border border-[var(--color-border-default)] bg-[var(--color-bg-surface)]"}),(0,d.jsx)("div",{className:"h-7 w-7 animate-pulse border border-[var(--color-border-default)] bg-[var(--color-bg-surface)]"}),(0,d.jsx)("div",{className:"h-7 w-7 animate-pulse border border-[var(--color-border-default)] bg-[var(--color-bg-surface)]"}),(0,d.jsx)("div",{className:"ml-auto h-7 w-7 animate-pulse border border-[var(--color-border-default)] bg-[var(--color-bg-surface)]"})]})})]})}function f(){return(0,d.jsx)("div",{className:"min-h-screen bg-[var(--color-bg-canvas)]",children:(0,d.jsxs)("div",{className:"dashboard-app-shell",children:[(0,d.jsxs)("header",{className:"dashboard-app-header","aria-hidden":"true",children:[(0,d.jsx)("button",{type:"button",className:"dashboard-app-sidebar-toggle","aria-label":"Toggle sidebar",children:(0,d.jsxs)("svg",{width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"1.75",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,d.jsx)("path",{d:"M9 3v18"})]})}),(0,d.jsxs)("div",{className:"dashboard-app-header__brand",children:[(0,d.jsx)("span",{className:"dashboard-app-header__brand-dot","aria-hidden":"true"}),(0,d.jsx)("span",{children:"Agent Orchestrator"})]}),(0,d.jsx)("span",{className:"dashboard-app-header__sep","aria-hidden":"true"}),(0,d.jsx)("span",{className:"dashboard-app-header__project",children:"Loading project…"}),(0,d.jsx)("div",{className:"dashboard-app-header__spacer"}),(0,d.jsx)("div",{className:"dashboard-app-header__actions",children:(0,d.jsx)("div",{className:"h-9 w-36 animate-pulse border border-[var(--color-border-default)] bg-[var(--color-bg-surface)]"})})]}),(0,d.jsx)("div",{className:"sidebar-wrapper",children:(0,d.jsx)(e,{})}),(0,d.jsxs)("main",{className:"dashboard-main dashboard-main--desktop overflow-y-auto",children:[(0,d.jsxs)("div",{className:"dashboard-main__subhead",children:[(0,d.jsx)("div",{className:"h-8 w-40 animate-pulse bg-[color-mix(in_srgb,var(--color-bg-elevated)_88%,transparent)]"}),(0,d.jsx)("div",{className:"mt-3 h-4 w-72 max-w-full animate-pulse bg-[color-mix(in_srgb,var(--color-bg-elevated)_82%,transparent)]"})]}),(0,d.jsxs)("div",{className:"board-wrapper","aria-hidden":"true",children:[(0,d.jsx)("div",{className:"kanban-ghost",children:["Working","Pending","Review","Respond","Merge"].map(a=>(0,d.jsx)("div",{className:"kanban-ghost__col",children:(0,d.jsx)("div",{className:"kanban-ghost__head",children:a})},a))}),(0,d.jsx)("div",{className:"board-center",children:(0,d.jsxs)("div",{className:"empty-state",role:"status","aria-label":"Loading project dashboard",children:[(0,d.jsx)("div",{className:"empty-state__icon"}),(0,d.jsx)("div",{className:"h-5 w-40 animate-pulse bg-[color-mix(in_srgb,var(--color-bg-elevated)_88%,transparent)]"}),(0,d.jsx)("div",{className:"h-4 w-56 animate-pulse bg-[color-mix(in_srgb,var(--color-bg-elevated)_82%,transparent)]"})]})})]})]})]})})}},69714:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(59281).unstable_rethrow;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},84818:(a,b,c)=>{"use strict";c.d(b,{d:()=>i});var d=c(68844),e=c(93423),f=c.n(e);function g(a){return`/projects/${encodeURIComponent(a)}`}var h=c(9603);function i({projectId:a,resolveError:b,projectPath:c,heading:e="This project's config failed to load"}){let i=b.match(/Local config at (.+?) (?:still uses|failed validation|must parse to an object|:)/)?.[1]??`${c}/agent-orchestrator.yaml or .yml`,j=b.includes("wrapped projects: format");return(0,d.jsx)("div",{className:"min-h-screen bg-[var(--color-bg-canvas)] px-6 py-10 text-[var(--color-text-primary)]",children:(0,d.jsxs)("div",{className:"mx-auto max-w-3xl rounded-2xl border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] p-8 shadow-sm",children:[(0,d.jsxs)("div",{className:"flex items-start gap-4",children:[(0,d.jsx)("div",{className:"mt-1 rounded-full bg-[var(--color-tint-yellow)] p-2 text-[var(--color-status-attention)]",children:(0,d.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[(0,d.jsx)("path",{d:"M12 8v4m0 4h.01"}),(0,d.jsx)("path",{d:"M10.3 3.86 1.82 18a2 2 0 0 0 1.72 3h16.92a2 2 0 0 0 1.72-3L13.7 3.86a2 2 0 0 0-3.4 0Z"})]})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]",children:"Degraded Project"}),(0,d.jsx)("h1",{className:"mt-2 text-2xl font-semibold",children:e}),(0,d.jsxs)("p",{className:"mt-2 text-sm text-[var(--color-text-secondary)]",children:["Project ",(0,d.jsx)("span",{className:"font-medium text-[var(--color-text-primary)]",children:a})," could not be resolved into an effective runtime config."]})]})]}),(0,d.jsxs)("div",{className:"mt-6 rounded-xl border border-[var(--color-border-subtle)] bg-[var(--color-bg-elevated)] p-4",children:[(0,d.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]",children:"Resolve Error"}),(0,d.jsx)("p",{className:"mt-2 text-sm text-[var(--color-status-error)]",children:b})]}),(0,d.jsxs)("div",{className:"mt-4 rounded-xl border border-[var(--color-border-subtle)] bg-[var(--color-bg-elevated)] p-4",children:[(0,d.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]",children:"Local Config Path"}),(0,d.jsx)("p",{className:"mt-2 break-all font-[var(--font-mono)] text-sm text-[var(--color-text-primary)]",children:i})]}),j?(0,d.jsx)(h.RepairDegradedProjectButton,{projectId:a}):null,(0,d.jsxs)("div",{className:"mt-6 flex flex-wrap gap-3",children:[(0,d.jsx)(f(),{href:g(a),className:"rounded-lg border border-[var(--color-border-default)] px-4 py-2 text-sm font-medium text-[var(--color-text-secondary)] transition-colors hover:bg-[var(--color-bg-elevated-hover)]",children:"Back to project"}),(0,d.jsx)(f(),{href:g(a),className:"rounded-lg border border-[var(--color-border-default)] px-4 py-2 text-sm font-medium text-[var(--color-text-secondary)] transition-colors hover:bg-[var(--color-bg-elevated-hover)]",children:"Open dashboard view"})]})]})})}},90421:(a,b,c)=>{"use strict";c.d(b,{RepairDegradedProjectButton:()=>g});var d=c(33666),e=c(81115),f=c(50436);function g({projectId:a}){let b=(0,f.useRouter)(),[c,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(null),j=async()=>{g(!0),i(null);try{let c=await fetch(`/api/projects/${encodeURIComponent(a)}`,{method:"POST"}),d=await c.json().catch(()=>null);if(!c.ok)return void i(d?.error??"Failed to repair project config.");b.refresh()}catch{i("Network error while repairing project config.")}finally{g(!1)}};return(0,d.jsxs)("div",{className:"mt-6",children:[(0,d.jsx)("button",{type:"button",onClick:()=>void j(),disabled:c,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:c?"Repairing...":"Repair config"}),h?(0,d.jsx)("p",{className:"mt-3 text-sm text-[var(--color-status-error)]",children:h}):null]})}},93423:(a,b,c)=>{let{createProxy:d}=c(37815);a.exports=d("/Users/equinox/agent-orchestrator/node_modules/.pnpm/next@15.5.15_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/client/app-dir/link.js")}};
|
|
1
|
+
exports.id=4520,exports.ids=[4520],exports.modules={1747:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getRedirectError:function(){return g},getRedirectStatusCodeFromError:function(){return l},getRedirectTypeFromError:function(){return k},getURLFromRedirectError:function(){return j},permanentRedirect:function(){return i},redirect:function(){return h}});let d=c(67981),e=c(18655),f=c(19121).actionAsyncStorage;function g(a,b,c){void 0===c&&(c=d.RedirectStatusCode.TemporaryRedirect);let f=Object.defineProperty(Error(e.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return f.digest=e.REDIRECT_ERROR_CODE+";"+b+";"+a+";"+c+";",f}function h(a,b){var c;throw null!=b||(b=(null==f||null==(c=f.getStore())?void 0:c.isAction)?e.RedirectType.push:e.RedirectType.replace),g(a,b,d.RedirectStatusCode.TemporaryRedirect)}function i(a,b){throw void 0===b&&(b=e.RedirectType.replace),g(a,b,d.RedirectStatusCode.PermanentRedirect)}function j(a){return(0,e.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function k(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function l(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},9603:(a,b,c)=>{"use strict";c.d(b,{RepairDegradedProjectButton:()=>d});let d=(0,c(10864).registerClientReference)(function(){throw Error("Attempted to call RepairDegradedProjectButton() from the server but RepairDegradedProjectButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/equinox/agent-orchestrator/packages/web/src/components/RepairDegradedProjectButton.tsx","RepairDegradedProjectButton")},34054:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(3307).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},34391:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ReadonlyURLSearchParams:function(){return k},RedirectType:function(){return e.RedirectType},forbidden:function(){return g.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return h.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return i.unstable_rethrow}});let d=c(1747),e=c(18655),f=c(52098),g=c(43747),h=c(34054),i=c(69714);class j extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class k extends URLSearchParams{append(){throw new j}delete(){throw new j}set(){throw new j}sort(){throw new j}}function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},43747:(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"forbidden",{enumerable:!0,get:function(){return d}}),c(3307).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},46802:(a,b,c)=>{"use strict";c.d(b,{l:()=>g});var d=c(29685),e=c(89223),f=c(81249);let g=(0,d.cache)(async function(a){let{config:b}=await (0,e.Z1)(),c=b.projects[a]??null,d=b.degradedProjects[a]??null;return c||d?{projectId:a,project:c,degradedProject:d,projects:(0,f.cf)()}:null})},52098:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return e}});let d=""+c(3307).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function e(){let a=Object.defineProperty(Error(d),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=d,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},56591:(a,b,c)=>{"use strict";var d=c(34391);c.o(d,"notFound")&&c.d(b,{notFound:function(){return d.notFound}})},59281:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(2433),e=c(20674),f=c(9483),g=c(40959),h=c(26636),i=c(27170);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},68398:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(68844);function e(){return(0,d.jsxs)("aside",{className:"project-sidebar flex h-full flex-col","aria-hidden":"true",children:[(0,d.jsx)("div",{className:"project-sidebar__compact-hdr",children:(0,d.jsx)("span",{className:"project-sidebar__sect-label",children:"Projects"})}),(0,d.jsx)("div",{className:"project-sidebar__tree flex-1 overflow-y-auto overflow-x-hidden",children:(0,d.jsx)("div",{className:"py-2",children:["w-28","w-24","w-32","w-20"].map((a,b)=>(0,d.jsxs)("div",{className:"flex items-center gap-3 border-b border-[var(--color-border-subtle)] px-4 py-3",children:[(0,d.jsx)("div",{className:"h-3 w-3 animate-pulse bg-[color-mix(in_srgb,var(--color-text-primary)_8%,transparent)]"}),(0,d.jsx)("div",{className:`h-4 animate-pulse bg-[color-mix(in_srgb,var(--color-text-primary)_10%,transparent)] ${a}`}),(0,d.jsx)("div",{className:"ml-auto h-6 w-6 animate-pulse border border-[var(--color-border-default)] bg-[var(--color-bg-base)]"})]},`project-loading-row-${b}`))})}),(0,d.jsx)("div",{className:"project-sidebar__footer",children:(0,d.jsxs)("div",{className:"flex items-center gap-2 border-t border-[var(--color-border-subtle)] px-2 py-2",children:[(0,d.jsx)("div",{className:"h-7 w-7 animate-pulse border border-[var(--color-border-default)] bg-[var(--color-bg-surface)]"}),(0,d.jsx)("div",{className:"h-7 w-7 animate-pulse border border-[var(--color-border-default)] bg-[var(--color-bg-surface)]"}),(0,d.jsx)("div",{className:"h-7 w-7 animate-pulse border border-[var(--color-border-default)] bg-[var(--color-bg-surface)]"}),(0,d.jsx)("div",{className:"ml-auto h-7 w-7 animate-pulse border border-[var(--color-border-default)] bg-[var(--color-bg-surface)]"})]})})]})}function f(){return(0,d.jsx)("div",{className:"min-h-screen bg-[var(--color-bg-canvas)]",children:(0,d.jsxs)("div",{className:"dashboard-app-shell",children:[(0,d.jsxs)("header",{className:"dashboard-app-header","aria-hidden":"true",children:[(0,d.jsx)("button",{type:"button",className:"dashboard-app-sidebar-toggle","aria-label":"Toggle sidebar",children:(0,d.jsxs)("svg",{width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"1.75",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,d.jsx)("path",{d:"M9 3v18"})]})}),(0,d.jsxs)("div",{className:"dashboard-app-header__brand",children:[(0,d.jsx)("span",{className:"dashboard-app-header__brand-dot","aria-hidden":"true"}),(0,d.jsx)("span",{children:"Agent Orchestrator"})]}),(0,d.jsx)("span",{className:"dashboard-app-header__sep","aria-hidden":"true"}),(0,d.jsx)("span",{className:"dashboard-app-header__project",children:"Loading project…"}),(0,d.jsx)("div",{className:"dashboard-app-header__spacer"}),(0,d.jsx)("div",{className:"dashboard-app-header__actions",children:(0,d.jsx)("div",{className:"h-9 w-36 animate-pulse border border-[var(--color-border-default)] bg-[var(--color-bg-surface)]"})})]}),(0,d.jsx)("div",{className:"sidebar-wrapper",children:(0,d.jsx)(e,{})}),(0,d.jsxs)("main",{className:"dashboard-main dashboard-main--desktop overflow-y-auto",children:[(0,d.jsxs)("div",{className:"dashboard-main__subhead",children:[(0,d.jsx)("div",{className:"h-8 w-40 animate-pulse bg-[color-mix(in_srgb,var(--color-bg-elevated)_88%,transparent)]"}),(0,d.jsx)("div",{className:"mt-3 h-4 w-72 max-w-full animate-pulse bg-[color-mix(in_srgb,var(--color-bg-elevated)_82%,transparent)]"})]}),(0,d.jsxs)("div",{className:"board-wrapper","aria-hidden":"true",children:[(0,d.jsx)("div",{className:"kanban-ghost",children:["Working","Pending","Review","Respond","Merge"].map(a=>(0,d.jsx)("div",{className:"kanban-ghost__col",children:(0,d.jsx)("div",{className:"kanban-ghost__head",children:a})},a))}),(0,d.jsx)("div",{className:"board-center",children:(0,d.jsxs)("div",{className:"empty-state",role:"status","aria-label":"Loading project dashboard",children:[(0,d.jsx)("div",{className:"empty-state__icon"}),(0,d.jsx)("div",{className:"h-5 w-40 animate-pulse bg-[color-mix(in_srgb,var(--color-bg-elevated)_88%,transparent)]"}),(0,d.jsx)("div",{className:"h-4 w-56 animate-pulse bg-[color-mix(in_srgb,var(--color-bg-elevated)_82%,transparent)]"})]})})]})]})]})})}},69714:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(59281).unstable_rethrow;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},84818:(a,b,c)=>{"use strict";c.d(b,{d:()=>i});var d=c(68844),e=c(93423),f=c.n(e);function g(a){return`/projects/${encodeURIComponent(a)}`}var h=c(9603);function i({projectId:a,resolveError:b,projectPath:c,heading:e="This project's config failed to load"}){let i=b.match(/Local config at (.+?) (?:still uses|failed validation|must parse to an object|:)/)?.[1]??`${c}/agent-orchestrator.yaml or .yml`,j=b.includes("wrapped projects: format");return(0,d.jsx)("div",{className:"min-h-screen bg-[var(--color-bg-canvas)] px-6 py-10 text-[var(--color-text-primary)]",children:(0,d.jsxs)("div",{className:"mx-auto max-w-3xl rounded-2xl border border-[var(--color-border-default)] bg-[var(--color-bg-surface)] p-8 shadow-sm",children:[(0,d.jsxs)("div",{className:"flex items-start gap-4",children:[(0,d.jsx)("div",{className:"mt-1 rounded-full bg-[var(--color-tint-yellow)] p-2 text-[var(--color-status-attention)]",children:(0,d.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[(0,d.jsx)("path",{d:"M12 8v4m0 4h.01"}),(0,d.jsx)("path",{d:"M10.3 3.86 1.82 18a2 2 0 0 0 1.72 3h16.92a2 2 0 0 0 1.72-3L13.7 3.86a2 2 0 0 0-3.4 0Z"})]})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]",children:"Degraded Project"}),(0,d.jsx)("h1",{className:"mt-2 text-2xl font-semibold",children:e}),(0,d.jsxs)("p",{className:"mt-2 text-sm text-[var(--color-text-secondary)]",children:["Project ",(0,d.jsx)("span",{className:"font-medium text-[var(--color-text-primary)]",children:a})," could not be resolved into an effective runtime config."]})]})]}),(0,d.jsxs)("div",{className:"mt-6 rounded-xl border border-[var(--color-border-subtle)] bg-[var(--color-bg-elevated)] p-4",children:[(0,d.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]",children:"Resolve Error"}),(0,d.jsx)("p",{className:"mt-2 text-sm text-[var(--color-status-error)]",children:b})]}),(0,d.jsxs)("div",{className:"mt-4 rounded-xl border border-[var(--color-border-subtle)] bg-[var(--color-bg-elevated)] p-4",children:[(0,d.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.08em] text-[var(--color-text-tertiary)]",children:"Local Config Path"}),(0,d.jsx)("p",{className:"mt-2 break-all font-[var(--font-mono)] text-sm text-[var(--color-text-primary)]",children:i})]}),j?(0,d.jsx)(h.RepairDegradedProjectButton,{projectId:a}):null,(0,d.jsxs)("div",{className:"mt-6 flex flex-wrap gap-3",children:[(0,d.jsx)(f(),{href:g(a),className:"rounded-lg border border-[var(--color-border-default)] px-4 py-2 text-sm font-medium text-[var(--color-text-secondary)] transition-colors hover:bg-[var(--color-bg-elevated-hover)]",children:"Back to project"}),(0,d.jsx)(f(),{href:g(a),className:"rounded-lg border border-[var(--color-border-default)] px-4 py-2 text-sm font-medium text-[var(--color-text-secondary)] transition-colors hover:bg-[var(--color-bg-elevated-hover)]",children:"Open dashboard view"})]})]})})}},90421:(a,b,c)=>{"use strict";c.d(b,{RepairDegradedProjectButton:()=>g});var d=c(33666),e=c(81115),f=c(50436);function g({projectId:a}){let b=(0,f.useRouter)(),[c,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(null),j=async()=>{g(!0),i(null);try{let c=await fetch(`/api/projects/${encodeURIComponent(a)}`,{method:"POST"}),d=await c.json().catch(()=>null);if(!c.ok)return void i(d?.error??"Failed to repair project config.");b.refresh()}catch{i("Network error while repairing project config.")}finally{g(!1)}};return(0,d.jsxs)("div",{className:"mt-6",children:[(0,d.jsx)("button",{type:"button",onClick:()=>void j(),disabled:c,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:c?"Repairing...":"Repair config"}),h?(0,d.jsx)("p",{className:"mt-3 text-sm text-[var(--color-status-error)]",children:h}):null]})}},93423:(a,b,c)=>{let{createProxy:d}=c(37815);a.exports=d("/Users/equinox/agent-orchestrator/node_modules/.pnpm/next@15.5.15_@babel+core@7.29.0_@opentelemetry+api@1.9.0_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/client/app-dir/link.js")}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=7167,exports.ids=[7167],exports.modules={5241:(a,b,c)=>{c.d(b,{CM:()=>f,N_:()=>h,Rt:()=>g,SB:()=>e,U1:()=>j,tT:()=>i,u3:()=>d});let d={ACTIVE:"active",READY:"ready",IDLE:"idle",WAITING_INPUT:"waiting_input",BLOCKED:"blocked",EXITED:"exited"},e={SPAWNING:"spawning",WORKING:"working",DETECTING:"detecting",PR_OPEN:"pr_open",CI_FAILED:"ci_failed",REVIEW_PENDING:"review_pending",CHANGES_REQUESTED:"changes_requested",APPROVED:"approved",MERGEABLE:"mergeable",MERGED:"merged",CLEANUP:"cleanup",NEEDS_INPUT:"needs_input",STUCK:"stuck",ERRORED:"errored",IDLE:"idle",KILLED:"killed",DONE:"done",TERMINATED:"terminated"},f=new Set(["killed","terminated","done","cleanup","errored","merged"]),g=new Set(["exited"]),h=new Set([]);function i(a,b,c){if(a.metadata?.role==="orchestrator")return!0;if(!b)return!1;let d=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(a.id===`${b}-orchestrator`)return!0;if(!RegExp(`^${d}-orchestrator-\\d+$`).test(a.id))return!1;if(c){for(let d of c)if(d!==b&&RegExp(`^${d.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}-\\d+$`).test(a.id))return!1}return!0}let j={PENDING:"pending",PASSING:"passing",FAILING:"failing",NONE:"none"}},20902:(a,b,c)=>{async function d(a){try{let b=await a.json(),c=b?.error??b?.message;if("string"==typeof c&&c.trim().length>0)return c.trim()}catch{}let b="string"==typeof a.statusText?a.statusText.trim():"";return b.length>0?`${a.status} ${b}`:`HTTP ${a.status}`}async function e(a,b={}){let{timeoutMs:c=8e3,timeoutMessage:f,signal:g,...h}=b,i=new AbortController,j=null,k=!1;try{let b=function(a){let b=a.filter(a=>!!a);if(0===b.length)return;if(1===b.length)return b[0];let c=new AbortController,d=()=>c.abort();for(let a of b){if(a.aborted){c.abort();break}a.addEventListener("abort",d,{once:!0})}return c.signal}([g,i.signal]),e={...h};b&&(e.signal=b);let l=new Promise((a,b)=>{j=setTimeout(()=>{k=!0,i.abort(),b(Error(f??`Request timed out after ${c}ms`))},c)}),m=await Promise.race([fetch(a,e).catch(a=>{if(k)throw Error(f??`Request timed out after ${c}ms`,{cause:a});throw a}),l]);if(!m.ok)throw Error(await d(m));return await m.json()}finally{j&&clearTimeout(j)}}c.d(b,{u:()=>e})},31849:(a,b,c)=>{c.d(b,{u:()=>C});var d=c(33666),e=c(47489),f=c.n(e),g=c(81115),h=c(50436),i=c(85489),j=c(37155),k=c(5241),l=c(61875),m=c(88950),n=c(74566);function o(a,b){return"~"===a?`~/${b}`:`${a.replace(/\/+$/,"")}/${b}`}function p({children:a,className:b,viewBox:c="0 0 16 16"}){return(0,d.jsx)("svg",{"aria-hidden":"true",viewBox:c,className:b,children:a})}let q={fill:"none",stroke:"currentColor",strokeWidth:1.75,strokeLinecap:"square"},r={fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"square",strokeLinejoin:"miter"};function s(){return(0,d.jsx)(p,{className:"add-project-modal__toolicon",children:(0,d.jsx)("path",{d:"M10 3.5 6 8l4 4.5",...q})})}function t(){return(0,d.jsx)(p,{className:"add-project-modal__toolicon",children:(0,d.jsx)("path",{d:"m6 3.5 4 4.5L6 12.5",...q})})}function u(){return(0,d.jsx)(p,{className:"add-project-modal__toolicon",children:(0,d.jsx)("path",{d:"M8 12V4m0 0L5 7m3-3 3 3",...r})})}function v(){return(0,d.jsx)(p,{className:"add-project-modal__toolicon",children:(0,d.jsx)("path",{d:"M12 5V2.75H9.75M4.5 11A4.75 4.75 0 0 0 12 5M3.75 11v2.25H6m5.5-8.25A4.75 4.75 0 0 1 4 11",...r})})}function w({open:a,onClose:b}){let c=(0,h.useRouter)(),e=(0,g.useRef)(null),[f,i]=(0,g.useState)(!1),[j,k]=(0,g.useState)(null),[l,m]=(0,g.useState)(null),[n,p]=(0,g.useState)(null),[q,r]=(0,g.useState)("~"),[w,x]=(0,g.useState)("~"),[y,z]=(0,g.useState)(["~"]),[A,B]=(0,g.useState)(0),[C,D]=(0,g.useState)([]),[E,F]=(0,g.useState)(!1),[G,H]=(0,g.useState)(null),[I,J]=(0,g.useState)(""),[K,L]=(0,g.useState)(""),M=async(a,b)=>{F(!0),H(null);try{let c=await fetch(`/api/filesystem/browse?path=${encodeURIComponent(a)}`).catch(()=>null);if(!c){D([]),x(b?.selectedPath??a),H("Failed to browse directories.");return}if(!c.ok){let d=await c.json().catch(()=>null);D([]),x(b?.selectedPath??a),H(d?.error??"Failed to browse directories.");return}let d=await c.json().catch(()=>null),e=b?.mode??"push",f=b?.historyIndex??A;r(a),x(b?.selectedPath??a),D(d?.entries??[]),"push"===e?z(b=>{let c=b.slice(0,f+1);return c[c.length-1]!==a&&c.push(a),B(c.length-1),c}):z(b=>{let c=[...b];return c[f]=a,c})}catch{H("Failed to browse directories.")}finally{F(!1)}},N=(0,g.useMemo)(()=>C.filter(a=>a.isDirectory),[C]),O=(0,g.useMemo)(()=>N.find(a=>o(q,a.name)===w)??null,[q,N,w]),P=function(a){if("~"===a)return null;let b=a.split("/").filter(Boolean);return b.length<=1?"~":"~"===b[0]?`~/${b.slice(1,-1).join("/")}`:b.slice(0,-1).join("/")}(q),Q=A<y.length-1,R=I.trim()||(w.trim()&&"~"!==w?(w.split("/").filter(Boolean).pop()??"project").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"project":""),S=K.trim()||(w.trim()&&"~"!==w?(w.split("/").filter(Boolean).pop()??"Project").replace(/[-_]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,a=>a.toUpperCase())||"Project":""),T=""!==w.trim()&&"~"!==w&&!G&&!!O?.isGitRepo&&R.length>0&&S.length>0;N.findIndex(a=>o(q,a.name)===w);let U=async(a=!1)=>{k(null),m(null),p(null),i(!0);let d=w.trim();try{let e=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:R,name:S,path:d,useDefaultProjectId:a})}),f=await e.json().catch(()=>null);if(409===e.status&&f?.existingProjectId&&f?.suggestedProjectId&&f?.suggestion){p({error:f.error??"A project with that ID already exists.",existingProjectId:f.existingProjectId,suggestedProjectId:f.suggestedProjectId,suggestion:f.suggestion}),J(f.suggestedProjectId);return}if(!e.ok){let a=f?.error??"Failed to add project.";e.status<500?k(a):m(a);return}let g=f?.projectId??R.trim();b(),c.push(`/projects/${encodeURIComponent(g)}`),c.refresh()}catch{m("Network error while adding project.")}finally{i(!1)}};if(!a)return null;let V=a=>{a<0||a>=y.length||(B(a),M(y[a]??"~",{mode:"replace",historyIndex:a}))},W=n?(0,d.jsxs)("div",{className:"add-project-modal__notice add-project-modal__notice--warning",children:[(0,d.jsx)("p",{className:"add-project-modal__notice-title",children:n.error}),(0,d.jsxs)("p",{className:"add-project-modal__notice-copy",children:["Existing project: ",(0,d.jsx)("code",{children:n.existingProjectId})]}),(0,d.jsxs)("p",{className:"add-project-modal__notice-copy",children:["Suggested project ID: ",(0,d.jsx)("code",{children:n.suggestedProjectId})]}),(0,d.jsxs)("div",{className:"add-project-modal__notice-actions",children:[(0,d.jsx)("button",{type:"button",onClick:()=>{b(),c.push(`/projects/${encodeURIComponent(n.existingProjectId)}`)},className:"add-project-modal__ghostbtn",children:"Open existing"}),(0,d.jsx)("button",{type:"button",onClick:()=>void U(!0),className:"add-project-modal__ghostbtn",children:"Use suggested ID"}),(0,d.jsx)("span",{className:"add-project-modal__notice-hint",children:"Edit the Project ID field or accept the suggested suffix."})]})]}):j?(0,d.jsx)("div",{role:"alert",className:"add-project-modal__notice add-project-modal__notice--error",children:j}):O&&!O.isGitRepo?(0,d.jsx)("div",{role:"alert",className:"add-project-modal__notice add-project-modal__notice--error",children:"Selected folder is not a git repository."}):l?(0,d.jsx)("div",{className:"add-project-modal__notice add-project-modal__notice--error",children:l}):null;return(0,d.jsx)("div",{className:"add-project-modal-backdrop",children:(0,d.jsxs)("div",{ref:e,role:"dialog","aria-modal":"true","aria-label":"Add project",className:"add-project-modal",tabIndex:-1,children:[(0,d.jsxs)("div",{className:"add-project-modal__titlebar",children:[(0,d.jsx)("h2",{className:"add-project-modal__windowtitle",children:"add project"}),(0,d.jsx)("button",{type:"button","aria-label":"Close",onClick:b,className:"add-project-modal__iconbtn",children:"\xd7"})]}),(0,d.jsxs)("div",{className:"add-project-modal__toolbar",children:[(0,d.jsxs)("div",{className:"add-project-modal__toolbarcluster",children:[(0,d.jsx)("button",{type:"button",onClick:()=>V(A-1),disabled:!(A>0),className:"add-project-modal__toolbtn","aria-label":"Go back",children:(0,d.jsx)(s,{})}),(0,d.jsx)("button",{type:"button",onClick:()=>V(A+1),disabled:!Q,className:"add-project-modal__toolbtn","aria-label":"Go forward",children:(0,d.jsx)(t,{})}),(0,d.jsx)("button",{type:"button",onClick:()=>P&&void M(P),disabled:!P,className:"add-project-modal__toolbtn","aria-label":"Go up",children:(0,d.jsx)(u,{})}),(0,d.jsx)("button",{type:"button",onClick:()=>void M(q,{mode:"replace",selectedPath:w}),className:"add-project-modal__toolbtn","aria-label":"Refresh",children:(0,d.jsx)(v,{})})]}),(0,d.jsx)("div",{className:"add-project-modal__location",children:q})]}),(0,d.jsx)("div",{className:"add-project-modal__content",children:(0,d.jsxs)("div",{className:"add-project-browser",children:[(0,d.jsxs)("div",{className:"add-project-browser__current",children:[(0,d.jsx)("div",{className:"add-project-browser__current-label",children:"Current folder"}),(0,d.jsx)("div",{className:"add-project-browser__current-path",children:q})]}),G?(0,d.jsxs)("div",{className:"add-project-browser__state add-project-browser__state--error",children:[(0,d.jsx)("p",{className:"add-project-browser__state-title",children:"Directory browser unavailable"}),(0,d.jsx)("p",{className:"add-project-browser__state-copy",children:G})]}):E?(0,d.jsxs)("div",{className:"add-project-browser__state",children:[(0,d.jsx)("p",{className:"add-project-browser__state-title",children:"Loading folders"}),(0,d.jsx)("p",{className:"add-project-browser__state-copy",children:"Fetching directories for this location."})]}):0===N.length?(0,d.jsxs)("div",{className:"add-project-browser__state",children:[(0,d.jsx)("p",{className:"add-project-browser__state-title",children:"No visible folders here"}),(0,d.jsx)("p",{className:"add-project-browser__state-copy",children:"Try navigating up or picking a different location."})]}):(0,d.jsxs)("div",{className:"add-project-browser__rows",children:[P?(0,d.jsx)("button",{type:"button",onClick:()=>void M(P),className:"add-project-browser__row add-project-browser__row--parent",children:".."}):null,N.map(a=>{let b=o(q,a.name);return(0,d.jsx)("button",{type:"button",onClick:()=>x(b),onDoubleClick:()=>void M(b),className:`add-project-browser__row${w===b?" is-selected":""}`,children:a.name},b)})]})]})}),(0,d.jsxs)("div",{className:"add-project-modal__pathbar add-project-modal__pathbar--selection",children:[(0,d.jsx)("span",{className:"add-project-modal__selection-label",children:"Selected"}),(0,d.jsx)("span",{className:"add-project-modal__selection-path",children:w||"No directory selected"})]}),(0,d.jsxs)("div",{className:"add-project-modal__pathbar add-project-modal__pathbar--selection",children:[(0,d.jsx)("label",{className:"add-project-modal__selection-label",htmlFor:"project-id-input",children:"Project ID"}),(0,d.jsx)("input",{id:"project-id-input",value:I,onChange:a=>J(a.target.value),className:"add-project-modal__selection-path"})]}),(0,d.jsxs)("div",{className:"add-project-modal__pathbar add-project-modal__pathbar--selection",children:[(0,d.jsx)("label",{className:"add-project-modal__selection-label",htmlFor:"project-name-input",children:"Project name"}),(0,d.jsx)("input",{id:"project-name-input",value:K,onChange:a=>L(a.target.value),className:"add-project-modal__selection-path"})]}),W,(0,d.jsxs)("div",{className:"add-project-modal__footer",children:[(0,d.jsxs)("div",{className:"add-project-modal__foldercount",children:[N.length," folders"]}),(0,d.jsxs)("div",{className:"add-project-modal__actions",children:[(0,d.jsx)("button",{type:"button",onClick:b,className:"add-project-modal__ghostbtn",children:"Cancel"}),(0,d.jsx)("button",{type:"button",onClick:()=>void U(),disabled:!T||f,className:"add-project-modal__primarybtn",children:f?"Adding…":"Add project"})]})]})]})})}var x=c(81407);function y({open:a,projectId:b,onClose:c}){let e=(0,g.useRef)(null),[f,h]=(0,g.useState)(!1),[i,j]=(0,g.useState)(null),[k,l]=(0,g.useState)(null),m=(0,g.useMemo)(()=>k&&b?{agent:k.agent??"",runtime:k.runtime??"",trackerPlugin:k.tracker?.plugin??"",scmPlugin:k.scm?.plugin??"",reactions:JSON.stringify(k.reactions??{},null,2),identity:{projectId:b,path:k.path,repo:k.repo??"",defaultBranch:k.defaultBranch??"main"}}:null,[k,b]);return a&&b?(0,d.jsx)("div",{className:"project-settings-modal-backdrop",onClick:c,children:(0,d.jsxs)("div",{ref:e,role:"dialog","aria-modal":"true","aria-label":"Project settings",className:"project-settings-modal",tabIndex:-1,onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)("div",{className:"project-settings-modal__header",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"project-settings-modal__eyebrow",children:"Project settings"}),(0,d.jsx)("h2",{className:"project-settings-modal__title",children:k?.name??b})]}),(0,d.jsx)("button",{type:"button","aria-label":"Close",onClick:c,className:"project-settings-modal__close",children:"\xd7"})]}),(0,d.jsxs)("div",{className:"project-settings-modal__body",children:[f?(0,d.jsx)("div",{className:"project-settings-modal__state",children:"Loading project settings…"}):null,!f&&i?(0,d.jsx)("div",{role:"alert",className:"project-settings-modal__state project-settings-modal__state--error",children:i}):null,f||i||!m?null:(0,d.jsx)(x.ProjectSettingsForm,{projectId:b,initialValues:m})]})]})}):null}function z({level:a}){return(0,d.jsx)("div",{className:(0,i.cn)("sidebar-session-dot shrink-0 rounded-full","working"===a&&"sidebar-session-dot--glow"),"data-level":a})}function A(){return!1}let B={working:"working",pending:"pending",review:"review",respond:"respond",action:"action",merge:"merge",done:"done"};function C(a){return 0===a.projects.length?(0,d.jsx)(D,{collapsed:a.collapsed}):(0,d.jsx)(E,{...a})}function D({collapsed:a=!1}){let[b,c]=(0,g.useState)(!1);return a?(0,d.jsxs)("aside",{className:"project-sidebar project-sidebar--collapsed flex h-full flex-col items-center gap-1 py-2",children:[(0,d.jsx)("button",{type:"button",className:"project-sidebar__add-btn","aria-label":"New project",onClick:()=>c(!0),children:(0,d.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M12 5v14M5 12h14"})})}),(0,d.jsx)(w,{open:b,onClose:()=>c(!1)})]}):(0,d.jsxs)("aside",{className:"project-sidebar flex h-full flex-col",children:[(0,d.jsxs)("div",{className:"project-sidebar__compact-hdr",children:[(0,d.jsx)("span",{className:"project-sidebar__sect-label",children:"Projects"}),(0,d.jsx)("button",{type:"button",className:"project-sidebar__add-btn","aria-label":"New project",onClick:()=>c(!0),children:(0,d.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M12 5v14M5 12h14"})})})]}),(0,d.jsx)("div",{className:"project-sidebar__empty flex-1 text-[var(--color-text-tertiary)]",children:"No projects yet. Click + to add one."}),(0,d.jsx)("div",{className:"project-sidebar__footer",children:(0,d.jsx)("div",{className:"flex items-center justify-end gap-1 border-t border-[var(--color-border-subtle)] px-2 py-2",children:(0,d.jsx)(n.U,{className:"project-sidebar__theme-toggle"})})}),(0,d.jsx)(w,{open:b,onClose:()=>c(!1)})]})}function E({projects:a,sessions:b,orchestrators:c,activeProjectId:e,activeSessionId:o,loading:p=!1,error:q=!1,onRetry:r,collapsed:s=!1,onToggleCollapsed:t,onMobileClose:u}){let v=(0,h.useRouter)(),x=p||null===b,[C,D]=(0,g.useState)(()=>new Set(e&&"all"!==e?[e]:[])),[E,F]=(0,g.useState)(!1),[G,H]=(0,g.useState)(!1),[I,J]=(0,g.useState)(A),[K,L]=(0,g.useState)(!1),[M,N]=(0,g.useState)(null),[O,P]=(0,g.useState)(null),[Q,R]=(0,g.useState)(null),[S,T]=(0,g.useState)(new Set),[U,V]=(0,g.useState)(!1),W=(0,g.useRef)(null),X=(0,g.useRef)(null),Y=(0,g.useRef)(null),Z=(0,g.useRef)(null),$=(0,g.useMemo)(()=>a.filter(a=>!S.has(a.id)),[a,S]),_=(0,g.useMemo)(()=>new Map($.map(a=>[a.id,a.sessionPrefix??a.id])),[$]),aa=(0,g.useMemo)(()=>$.map(a=>a.sessionPrefix??a.id),[$]),ab=(0,g.useMemo)(()=>new Map((c??[]).map(a=>[a.projectId,a])),[c]),ac=(0,g.useMemo)(()=>{let a=new Map,c=new Set($.map(a=>a.id));for(let d of b??[]){if(!c.has(d.projectId)||(0,k.tT)(d,_.get(d.projectId),aa)||"done"===(0,j.ng)(d)&&("killed"===d.status?!E&&!G:!G))continue;let b=a.get(d.projectId)??[];b.push(d),a.set(d.projectId,b)}return a},[b,_,aa,$,E,G]),ad=(a,b)=>{if(b)try{sessionStorage.setItem(`ao-session-nav:${b.id}`,JSON.stringify(b))}catch{}v.push(a),u?.()},ae=async a=>{if(window.confirm(`Remove project ${a.name} from AO? This clears its AO sessions/history and removes it from the portfolio, but keeps the repository folder on disk.`)){R(a.id);try{let b=await fetch(`/api/projects/${encodeURIComponent(a.id)}`,{method:"DELETE"}),c=await b.json().catch(()=>null);if(!b.ok)throw Error((c&&"object"==typeof c&&"error"in c&&"string"==typeof c.error?c.error:null)??"Failed to remove project.");T(b=>new Set(b).add(a.id)),D(b=>{let c=new Set(b);return c.delete(a.id),c}),N(null),e===a.id?v.push("/"):"refresh"in v&&"function"==typeof v.refresh&&v.refresh(),u?.()}catch(a){window.alert(a instanceof Error?a.message:"Failed to remove project.")}finally{R(null)}}};return s?(0,d.jsx)("aside",{className:(0,i.cn)("project-sidebar project-sidebar--collapsed flex flex-col h-full items-center py-2 gap-1 overflow-y-auto"),children:$.map((a,b)=>{let c=ac.get(a.id)??[],f=a.name.slice(0,2).toUpperCase();return(0,d.jsxs)("div",{className:"flex flex-col items-center gap-0.5 w-full px-1",children:[b>0&&(0,d.jsx)("div",{className:"project-sidebar__collapsed-divider","aria-hidden":"true"}),(0,d.jsx)("a",{href:(0,m.bn)(a.id),className:(0,i.cn)("project-sidebar__collapsed-icon",e===a.id&&"project-sidebar__collapsed-icon--active"),title:a.name,"aria-label":a.name,children:(0,d.jsx)("span",{className:"project-sidebar__collapsed-abbr",children:f})}),c.slice(0,5).map(b=>{let c=(0,j.ng)(b),e=b.branch??(0,l.Pn)(b),f=(b.branch&&(0,l.mC)(b.branch)||e).replace(/\s+/g,"").slice(0,3).toUpperCase(),g=o===b.id,h=(0,m.Nc)(a.id,b.id);return(0,d.jsxs)("a",{href:h,onClick:a=>{a.metaKey||a.ctrlKey||a.shiftKey||1===a.button||(a.preventDefault(),ad(h,b))},className:(0,i.cn)("project-sidebar__collapsed-session-btn",g&&"project-sidebar__collapsed-session-btn--active"),"data-level":c,title:e,"aria-label":e,children:[(0,d.jsx)("span",{className:"project-sidebar__session-abbr-first",children:f[0]}),(0,d.jsx)("span",{className:"project-sidebar__session-abbr-rest",children:f.slice(1)})]},b.id)}),c.length>5&&(0,d.jsxs)("span",{className:"project-sidebar__collapsed-overflow",children:["+",c.length-5]})]},a.id)})}):(0,d.jsxs)("aside",{className:"project-sidebar flex h-full flex-col",children:[(0,d.jsxs)("div",{className:"project-sidebar__compact-hdr",children:[(0,d.jsx)("span",{className:"project-sidebar__sect-label",children:"Projects"}),(0,d.jsx)("button",{type:"button",className:"project-sidebar__add-btn","aria-label":"New project",onClick:()=>V(!0),children:(0,d.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M12 5v14M5 12h14"})})})]}),q&&b&&b.length>0?(0,d.jsxs)("div",{role:"status",className:"mx-3 mb-2 flex items-center justify-between gap-2 rounded-md border border-[var(--color-border-strong)] bg-[var(--color-bg-primary)] px-2 py-1.5 text-[11px] text-[var(--color-text-tertiary)]",children:[(0,d.jsx)("span",{children:"Failed to refresh \xb7 showing cached sessions"}),r?(0,d.jsx)("button",{type:"button",onClick:r,className:"font-medium text-[var(--color-link)] hover:underline",children:"Retry"}):null]}):null,(0,d.jsx)("div",{className:"project-sidebar__tree flex-1 overflow-y-auto overflow-x-hidden",children:$.map(a=>{let b=ac.get(a.id)??[],c=C.has(a.id),g=e===a.id,h=!!a.resolveError,k=(0,m.bn)(a.id),n=b.length>0,p=ab.get(a.id)??null;return(0,d.jsxs)("div",{className:"project-sidebar__project",children:[(0,d.jsxs)("div",{className:"project-sidebar__proj-row flex items-center",children:[h?(0,d.jsxs)("a",{href:k,onClick:a=>{a.metaKey||a.ctrlKey||a.shiftKey||1===a.button||(a.preventDefault(),ad(k))},className:(0,i.cn)("project-sidebar__proj-toggle project-sidebar__proj-toggle--link project-sidebar__proj-toggle--degraded",g&&"project-sidebar__proj-toggle--active"),"aria-current":g?"page":void 0,children:[(0,d.jsxs)("svg",{className:"project-sidebar__proj-chevron project-sidebar__proj-chevron--degraded",width:"10",height:"10",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M12 9v4"}),(0,d.jsx)("path",{d:"M12 17h.01"}),(0,d.jsx)("path",{d:"M10.3 3.86 1.82 18a2 2 0 0 0 1.72 3h16.92a2 2 0 0 0 1.72-3L13.7 3.86a2 2 0 0 0-3.4 0Z"})]}),(0,d.jsx)("span",{className:"project-sidebar__proj-name",children:a.name}),(0,d.jsx)("span",{className:"project-sidebar__proj-badge project-sidebar__proj-badge--degraded",children:"degraded"})]}):(0,d.jsxs)("button",{type:"button",onClick:()=>{var b;return b=a.id,void D(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},className:(0,i.cn)("project-sidebar__proj-toggle",g&&"project-sidebar__proj-toggle--active"),"aria-expanded":c,"aria-current":g?"page":void 0,children:[(0,d.jsx)("svg",{className:(0,i.cn)("project-sidebar__proj-chevron",c&&"project-sidebar__proj-chevron--open"),width:"10",height:"10",fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"m9 18 6-6-6-6"})}),(0,d.jsx)("span",{className:"project-sidebar__proj-name",children:a.name}),(0,d.jsx)("span",{className:(0,i.cn)("project-sidebar__proj-badge",n&&"project-sidebar__proj-badge--active"),children:b.length})]}),h?null:(0,d.jsx)(f(),{href:k,onClick:a=>{a.stopPropagation(),u?.()},className:"project-sidebar__proj-action","aria-label":`Open ${a.name} dashboard`,title:"Dashboard",children:(0,d.jsx)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M3 13h8V3H3zm10 8h8V11h-8zM3 21h8v-6H3zm10-10h8V3h-8z"})})}),!h&&p&&(0,d.jsx)(f(),{href:(0,m.Nc)(a.id,p.id),onClick:a=>{a.stopPropagation(),u?.()},className:"project-sidebar__proj-action","aria-label":`Open ${a.name} orchestrator`,title:"Orchestrator",children:(0,d.jsxs)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,d.jsx)("circle",{cx:"12",cy:"5",r:"2",fill:"currentColor",stroke:"none"}),(0,d.jsx)("path",{d:"M12 7v4M12 11H6M12 11h6M6 11v3M12 11v3M18 11v3"}),(0,d.jsx)("circle",{cx:"6",cy:"17",r:"2"}),(0,d.jsx)("circle",{cx:"12",cy:"17",r:"2"}),(0,d.jsx)("circle",{cx:"18",cy:"17",r:"2"})]})}),(0,d.jsxs)("div",{className:"project-sidebar__proj-menu",ref:M===a.id?Y:void 0,children:[(0,d.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),N(b=>b===a.id?null:a.id)},className:"project-sidebar__proj-action project-sidebar__proj-action--menu","aria-label":`Project actions for ${a.name}`,"aria-expanded":M===a.id,"aria-haspopup":"menu",title:"Project actions",children:(0,d.jsxs)("svg",{width:"12",height:"12",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"12",cy:"5",r:"1.75"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"1.75"}),(0,d.jsx)("circle",{cx:"12",cy:"19",r:"1.75"})]})}),M===a.id?(0,d.jsxs)("div",{ref:Z,className:"project-sidebar__proj-menu-popover",role:"menu","aria-label":`${a.name} actions`,children:[p?(0,d.jsx)("button",{type:"button",className:"project-sidebar__proj-menu-item",role:"menuitem",onClick:()=>{N(null),ad((0,m.Nc)(a.id,p.id))},children:"Open orchestrator"}):null,(0,d.jsx)("button",{type:"button",className:"project-sidebar__proj-menu-item",role:"menuitem",onClick:()=>{N(null),P(a.id)},children:"Project settings"}),(0,d.jsx)("button",{type:"button",className:"project-sidebar__proj-menu-item project-sidebar__proj-menu-item--danger",role:"menuitem",onClick:()=>void ae(a),disabled:Q===a.id,children:Q===a.id?"Removing...":"Remove project"})]}):null]})]}),h?(0,d.jsx)("div",{className:"project-sidebar__degraded-note",children:"Config needs repair"}):null,!h&&c&&(0,d.jsx)("div",{className:"project-sidebar__sessions",children:x?(0,d.jsx)("div",{className:"space-y-2 px-3 py-2","aria-label":"Loading sessions",children:Array.from({length:3},(b,c)=>(0,d.jsxs)("div",{className:"flex items-center gap-3 border border-[var(--color-border-subtle)] bg-[var(--color-bg-surface)] px-2 py-2",children:[(0,d.jsx)("div",{className:"h-2 w-2 shrink-0 animate-pulse bg-[var(--color-border-strong)]"}),(0,d.jsx)("div",{className:"h-3 flex-1 animate-pulse bg-[var(--color-bg-primary)]"}),(0,d.jsx)("div",{className:"h-3 w-12 animate-pulse bg-[var(--color-bg-primary)]"})]},`${a.id}-loading-${c}`))}):b.length>0?b.map(b=>{let c=(0,j.ng)(b),e=o===b.id,f=b.branch??(0,l.Pn)(b),g=(0,m.Nc)(a.id,b.id);return(0,d.jsxs)("a",{href:g,onClick:a=>{a.metaKey||a.ctrlKey||a.shiftKey||1===a.button||(a.preventDefault(),ad(g,b))},className:(0,i.cn)("project-sidebar__sess-row",e&&"project-sidebar__sess-row--active"),"aria-current":e?"page":void 0,"aria-label":`Open ${f}`,children:[(0,d.jsx)(z,{level:c}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("span",{className:(0,i.cn)("project-sidebar__sess-label",e&&"project-sidebar__sess-label--active"),children:f}),I?(0,d.jsxs)("div",{className:"project-sidebar__sess-meta",children:[(0,d.jsx)("span",{className:"project-sidebar__sess-id",children:b.id}),(0,d.jsx)("span",{className:"project-sidebar__sess-status",children:B[c]})]}):null]}),I?null:(0,d.jsx)("span",{className:"project-sidebar__sess-status project-sidebar__sess-status--inline",children:B[c]})]},b.id)}):q?(0,d.jsxs)("div",{className:"px-3 py-2",children:[(0,d.jsx)("div",{className:"project-sidebar__empty",children:"Failed to load sessions"}),(0,d.jsx)("button",{type:"button",className:"mt-2 text-xs font-medium text-[var(--color-link)] hover:underline",onClick:r,children:"Retry"})]}):(0,d.jsx)("div",{className:"project-sidebar__empty",children:"No sessions shown"})})]},a.id)})}),(0,d.jsx)("div",{className:"project-sidebar__footer",children:(0,d.jsxs)("div",{className:"flex items-center gap-1 border-t border-[var(--color-border-subtle)] px-2 py-2",children:[(0,d.jsx)("button",{type:"button",onClick:()=>F(!E),className:(0,i.cn)("project-sidebar__footer-btn",E&&"project-sidebar__footer-btn--active"),"aria-pressed":E,title:E?"Hide killed sessions":"Show killed sessions","aria-label":E?"Hide killed sessions":"Show killed sessions",children:(0,d.jsxs)("svg",{width:"13",height:"13",fill:"none",stroke:"currentColor",strokeWidth:"1.75",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.jsx)("path",{d:"M12 3C7.03 3 3 7.03 3 12c0 3.1 1.5 5.84 3.8 7.55V21h2.4v-1h1.6v1h2.4v-1h1.6v1H17v-1.45A9 9 0 0 0 21 12c0-4.97-4.03-9-9-9z"}),(0,d.jsx)("circle",{cx:"9",cy:"11",r:"1.5",fill:"currentColor",stroke:"none"}),(0,d.jsx)("circle",{cx:"15",cy:"11",r:"1.5",fill:"currentColor",stroke:"none"})]})}),(0,d.jsx)("button",{type:"button",onClick:()=>H(!G),className:(0,i.cn)("project-sidebar__footer-btn",G&&"project-sidebar__footer-btn--active"),"aria-pressed":G,title:G?"Hide completed sessions":"Show completed sessions","aria-label":G?"Hide completed sessions":"Show completed sessions",children:(0,d.jsx)("svg",{width:"13",height:"13",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M20 6 9 17l-5-5"})})}),(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsxs)("div",{className:"project-sidebar__settings-wrap",ref:W,children:[(0,d.jsx)("button",{type:"button",onClick:()=>L(a=>!a),className:(0,i.cn)("project-sidebar__footer-btn",K&&"project-sidebar__footer-btn--active"),"aria-expanded":K,"aria-haspopup":"dialog",title:"Sidebar settings","aria-label":"Sidebar settings",children:(0,d.jsxs)("svg",{width:"13",height:"13",fill:"none",stroke:"currentColor",strokeWidth:"1.75",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"3"}),(0,d.jsx)("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})]})}),K?(0,d.jsx)("div",{ref:X,className:"project-sidebar__settings-popover",role:"dialog","aria-label":"Sidebar settings",children:(0,d.jsxs)("label",{className:"project-sidebar__settings-row",children:[(0,d.jsx)("input",{type:"checkbox",checked:I,onChange:a=>J(a.target.checked)}),(0,d.jsx)("span",{children:"Show session ID"})]})}):null]}),(0,d.jsx)(n.U,{className:"project-sidebar__theme-toggle"})]})}),(0,d.jsx)(w,{open:U,onClose:()=>V(!1)}),(0,d.jsx)(y,{open:null!==O,projectId:O,onClose:()=>P(null)})]})}},37155:(a,b,c)=>{c.d(b,{CM:()=>d.CM,Kw:()=>k,N_:()=>d.N_,Ou:()=>i,QN:()=>g,U1:()=>d.U1,dG:()=>l,fZ:()=>e,nH:()=>m,ng:()=>o,of:()=>j,sZ:()=>f,wy:()=>n});var d=c(5241);function e(a){return a.mergeability.blockers.includes("API rate limited or unavailable")}function f(a){return!1===a.enriched}function g(a){return"open"===a.state&&a.mergeability.mergeable&&a.mergeability.ciPassing&&a.mergeability.approved&&a.mergeability.noConflicts}function h(a){return a.replace(/_/g," ")}function i(a){return a.lifecycle?.session?.label??h(a.status)}function j(a){return a.lifecycle?.pr?.label?a.lifecycle.pr.label:a.pr?.state?h(a.pr.state):"not created"}function k(a){return a.lifecycle?.runtime?.label??"unknown"}function l(a){return a.lifecycle?"done"===a.lifecycle.sessionState||"terminated"===a.lifecycle.sessionState||"merged"===a.lifecycle.prState:"merged"===a.status||"killed"===a.status||"cleanup"===a.status||"done"===a.status||"terminated"===a.status||a.pr?.state==="merged"}function m(a){return a.lifecycle?l(a)||"missing"===a.lifecycle.runtimeState||"exited"===a.lifecycle.runtimeState:d.CM.has(a.status)||null!==a.activity&&d.Rt.has(a.activity)}function n(a){return a.lifecycle?("done"===a.lifecycle.sessionState||"terminated"===a.lifecycle.sessionState||"missing"===a.lifecycle.runtimeState||"exited"===a.lifecycle.runtimeState)&&"merged"!==a.lifecycle.prState&&"merged"!==a.status:!!m(a)&&a.pr?.state!=="merged"&&"merged"!==a.status}function o(a,b="detailed"){let c=function(a){if(l(a))return"done";if(a.lifecycle?.prReason==="merge_ready"||a.lifecycle?.prReason==="approved"||"mergeable"===a.status||"approved"===a.status||a.pr&&!f(a.pr)&&a.pr.mergeability.mergeable)return"merge";if(a.lifecycle?.sessionState==="detecting"||a.lifecycle?.sessionState==="needs_input"||a.lifecycle?.sessionState==="stuck"||a.status===d.SB.ERRORED||a.status===d.SB.NEEDS_INPUT||a.status===d.SB.STUCK||a.activity===d.u3.WAITING_INPUT||a.activity===d.u3.BLOCKED||a.activity===d.u3.EXITED)return"respond";if(a.lifecycle?.prReason==="ci_failing"||a.lifecycle?.prReason==="changes_requested"||"ci_failed"===a.status||"changes_requested"===a.status)return"review";if(a.pr&&!e(a.pr)&&!f(a.pr)){let b=a.pr;if(b.ciStatus===d.U1.FAILING||"changes_requested"===b.reviewDecision||!b.mergeability.noConflicts)return"review"}if(a.lifecycle?.prReason==="review_pending"||a.lifecycle?.prReason==="closed_unmerged"||"review_pending"===a.status)return"pending";if(a.pr&&!e(a.pr)&&!f(a.pr)){let b=a.pr;if(!b.isDraft&&b.unresolvedThreads>0||!b.isDraft&&("pending"===b.reviewDecision||"none"===b.reviewDecision))return"pending"}return"working"}(a);return"simple"===b&&("respond"===c||"review"===c)?"action":c}},52754:(a,b,c)=>{c.d(b,{D:()=>e,U:()=>f});var d=c(81115);let e=767;function f(a){let[b,c]=(0,d.useState)(!1);return b}},61875:(a,b,c)=>{function d(a,b){let c=a.replace(/^(?:feat|fix|chore|refactor|docs|test|ci|session|orchestrator|release|hotfix|feature|bugfix|build|wip|improvement)\//,"");return b&&c===b?"":c.replace(/[-_]/g," ").replace(/\b\w/g,a=>a.toUpperCase()).trim()}function e(a){if(a.pr?.title)return a.pr.title;if(a.issueTitle)return a.issueTitle;if(a.displayName)return a.displayName;if(a.userPrompt)return a.userPrompt;if(a.branch){let b=d(a.branch,a.id);if(b)return b}let b=a.metadata.pinnedSummary;return b||(a.summary&&!a.summaryIsFallback||a.summary?a.summary:a.status)}function f(a){let b=Date.now()-a;if(b<6e4)return"just now";let c=Math.floor(b/6e4);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);if(d<24)return`${d}h ago`;let e=Math.floor(d/24);if(e<7)return`${e}d ago`;let f=Math.floor(e/7);return`${f}w ago`}c.d(b,{Pn:()=>e,fw:()=>f,mC:()=>d})},71276:(a,b,c)=>{c.d(b,{d:()=>j,t:()=>i});var d=c(33666),e=c(81115),f=c(85489);function g(a,b){return"SHOW"===b.type?{message:b.message,variant:b.variant,key:b.key}:null}let h=(0,e.createContext)(null);function i({children:a}){let[b,c]=(0,e.useReducer)(g,null),i=(0,e.useRef)(null),j=(0,e.useRef)(0),k=(0,e.useCallback)((a,b="info")=>{null!==i.current&&clearTimeout(i.current),j.current+=1,c({type:"SHOW",message:a,variant:b,key:j.current}),i.current=setTimeout(()=>{c({type:"HIDE"}),i.current=null},3e3)},[]);return(0,d.jsxs)(h.Provider,{value:{showToast:k},children:[a,(0,d.jsx)("div",{className:"toast-container",role:"status","aria-live":"polite","aria-atomic":"true",children:b&&(0,d.jsxs)("div",{className:(0,f.cn)("toast","success"===b.variant&&"toast--success","error"===b.variant&&"toast--error","info"===b.variant&&"toast--info"),children:[(0,d.jsx)("span",{className:"toast__icon","aria-hidden":"true"}),(0,d.jsx)("span",{className:"toast__message",children:b.message})]},b.key)})]})}function j(){let a=(0,e.useContext)(h);if(!a)throw Error("useToast must be used within a ToastProvider");return a}},74566:(a,b,c)=>{c.d(b,{U:()=>g});var d=c(33666),e=c(93463),f=c(81115);function g({className:a,label:b}){let{resolvedTheme:c,setTheme:g}=(0,e.D)(),[h,i]=(0,f.useState)(!1);if(!h)return(0,d.jsx)("div",{className:a??"h-9 w-9"});let j="dark"===c;return(0,d.jsxs)("button",{onClick:()=>g(j?"light":"dark"),className:a??"flex h-9 w-9 items-center justify-center border border-[var(--color-border-strong)] bg-[var(--color-bg-elevated)] text-[var(--color-text-primary)] transition-colors hover:bg-[var(--color-bg-elevated-hover)]","aria-label":`Switch to ${j?"light":"dark"} mode`,title:`Switch to ${j?"light":"dark"} mode`,children:[j?(0,d.jsxs)("svg",{className:"h-[18px] w-[18px]",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"5"}),(0,d.jsx)("path",{d:"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"})]}):(0,d.jsx)("svg",{className:"h-[18px] w-[18px]",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"})}),b?(0,d.jsx)("span",{children:b}):null]})}},81407:(a,b,c)=>{c.d(b,{ProjectSettingsForm:()=>l});var d=c(33666),e=c(81115),f=c(50436),g=c(71276);let h="These describe which repo this is. Change them via `ao project relink`.";function i({projectId:a,initialValues:b}){let c=(0,f.useRouter)(),{showToast:h}=(0,g.d)(),[i,l]=(0,e.useState)(b.agent),[m,n]=(0,e.useState)(b.runtime),[o,p]=(0,e.useState)(b.trackerPlugin),[q,r]=(0,e.useState)(b.scmPlugin),[s,t]=(0,e.useState)(b.reactions),[u,v]=(0,e.useState)(!1),[w,x]=(0,e.useState)(null),[y,z]=(0,e.useState)(null),A=(0,e.useMemo)(()=>({agent:i.trim()||null,runtime:m.trim()||null,tracker:o.trim()?{plugin:o.trim()}:null,scm:q.trim()?{plugin:q.trim()}:null,reactions:s}),[i,m,o,q,s]),B=async()=>{let b;x(null),z(null);try{let a=s.trim();b=a?JSON.parse(a):void 0}catch{x("Reactions must be valid JSON.");return}v(!0);try{let d=await fetch(`/api/projects/${encodeURIComponent(a)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({agent:A.agent,runtime:A.runtime,tracker:A.tracker,scm:A.scm,reactions:b??null})}),e=await d.json().catch(()=>null);if(!d.ok){let a=e?.error??"Failed to save project settings.";400===d.status?x(a):z(a);return}h("Project settings updated.","success"),c.refresh()}catch{z("Network error while saving project settings.")}finally{v(!1)}};return(0,d.jsxs)("div",{className:"project-settings-form",children:[(0,d.jsxs)("section",{className:"project-settings-form__section",children:[(0,d.jsxs)("div",{className:"project-settings-form__section-header",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"project-settings-form__eyebrow",children:"Behavior"}),(0,d.jsx)("h2",{className:"project-settings-form__section-title",children:"Runtime configuration"}),(0,d.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,d.jsx)("button",{type:"button",onClick:()=>void B(),disabled:u,className:"project-settings-form__save",children:u?"Saving...":"Save changes"})]}),(0,d.jsxs)("div",{className:"project-settings-form__grid",children:[(0,d.jsx)(j,{id:"agent",label:"Agent",value:i,onChange:l,placeholder:"claude-code"}),(0,d.jsx)(j,{id:"runtime",label:"Runtime",value:m,onChange:n,placeholder:"tmux"}),(0,d.jsx)(j,{id:"tracker-plugin",label:"Tracker plugin",value:o,onChange:p,placeholder:"github"}),(0,d.jsx)(j,{id:"scm-plugin",label:"SCM plugin",value:q,onChange:r,placeholder:"github"})]}),(0,d.jsxs)("div",{className:"project-settings-form__reactions",children:[(0,d.jsx)("label",{htmlFor:"reactions",className:"project-settings-form__label",children:"Reactions"}),(0,d.jsx)("p",{className:"project-settings-form__hint",children:"JSON object keyed by reaction name. This PATCH only sends behavior fields."}),(0,d.jsx)("textarea",{id:"reactions",value:s,onChange:a=>t(a.target.value),spellCheck:!1,rows:12,className:"project-settings-form__textarea project-settings-form__textarea--mono"})]}),w?(0,d.jsx)("div",{role:"alert",className:"project-settings-form__alert project-settings-form__alert--error",children:w}):null,y?(0,d.jsxs)("div",{className:"project-settings-form__alert project-settings-form__alert--surface",children:[(0,d.jsx)("p",{className:"project-settings-form__alert-copy",children:y}),(0,d.jsx)("button",{type:"button",onClick:()=>void B(),className:"project-settings-form__retry",children:"Retry"})]}):null]}),(0,d.jsxs)("section",{className:"project-settings-form__section",children:[(0,d.jsx)("p",{className:"project-settings-form__eyebrow",children:"Identity"}),(0,d.jsx)("h2",{className:"project-settings-form__section-title",children:"Repository identity"}),(0,d.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,d.jsxs)("div",{className:"project-settings-form__grid",children:[(0,d.jsx)(k,{id:"identity-project-id",label:"Project ID",value:b.identity.projectId}),(0,d.jsx)(k,{id:"identity-path",label:"Path",value:b.identity.path}),(0,d.jsx)(k,{id:"identity-repo",label:"Repo",value:b.identity.repo}),(0,d.jsx)(k,{id:"identity-default-branch",label:"Default branch",value:b.identity.defaultBranch})]})]})]})}function j({id:a,label:b,value:c,onChange:e,placeholder:f}){return(0,d.jsxs)("label",{htmlFor:a,className:"project-settings-form__field",children:[(0,d.jsx)("span",{className:"project-settings-form__label",children:b}),(0,d.jsx)("input",{id:a,value:c,onChange:a=>e(a.target.value),placeholder:f,className:"project-settings-form__input"})]})}function k({id:a,label:b,value:c}){return(0,d.jsxs)("label",{htmlFor:a,className:"project-settings-form__field",children:[(0,d.jsx)("span",{className:"project-settings-form__label",children:b}),(0,d.jsx)("input",{id:a,value:c,disabled:!0,readOnly:!0,title:h,"aria-describedby":`${a}-tooltip`,className:"project-settings-form__input project-settings-form__input--readonly"}),(0,d.jsx)("span",{id:`${a}-tooltip`,className:"project-settings-form__hint",children:h})]})}function l(a){return(0,d.jsx)(g.t,{children:(0,d.jsx)(i,{...a})})}},85489:(a,b,c)=>{c.d(b,{cn:()=>d});function d(...a){return a.filter(Boolean).join(" ")}},88950:(a,b,c)=>{function d(a){return`/projects/${encodeURIComponent(a)}`}function e(a,b){return`${d(a)}/sessions/${encodeURIComponent(b)}`}function f(a,b,c){return`${e(a,b)}${c}`}c.d(b,{$l:()=>f,Nc:()=>e,bn:()=>d})}};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";exports.id=7173,exports.ids=[7173],exports.modules={10613:(a,b,c)=>{c.r(b),c.d(b,{default:()=>N});var d=c(33666),e=c(81115),f=c(50436),g=c(5241),h=c(52754),i=c(37155),j=c(18287),k=c(61875),l=c(70162),m=c(88950),n=c(31849),o=c(88087),p=c(85489);let q={active:{label:"Active",color:"var(--color-status-working)"},ready:{label:"Ready",color:"var(--color-status-ready)"},idle:{label:"Idle",color:"var(--color-status-idle)"},waiting_input:{label:"Waiting for input",color:"var(--color-status-attention)"},blocked:{label:"Blocked",color:"var(--color-status-error)"},exited:{label:"Exited",color:"var(--color-status-error)"}};function r(a){if(a.includes("\x3c!-- DESCRIPTION START --\x3e")||a.includes("### ")){let b=a.match(/###\s+(.+?)(?:\n|$)/),c=b?b[1].replace(/\*\*/g,"").trim():"Comment",d=a.match(/<!-- DESCRIPTION START -->\s*([\s\S]*?)\s*<!-- DESCRIPTION END -->/);return{title:c,description:d?d[1].trim():a.split("\n")[0]||"No description"}}return{title:"Comment",description:a.trim()}}function s({comments:a,unresolvedThreads:b,sendingUrls:c,sentUrls:e,errorUrls:f,onAskAgentToFix:g}){return 0===a.length?null:(0,d.jsxs)("details",{className:"session-detail-comments-strip",children:[(0,d.jsx)("summary",{children:(0,d.jsxs)("div",{className:"session-detail-comments-strip__toggle",children:[(0,d.jsx)("svg",{className:"session-detail-comments-strip__chevron",fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M9 5l7 7-7 7"})}),(0,d.jsx)("span",{className:"session-detail-comments-strip__label",children:"Unresolved Comments"}),(0,d.jsx)("span",{className:"session-detail-comments-strip__count",children:b}),(0,d.jsx)("span",{className:"session-detail-comments-strip__hint",children:"click to expand"})]})}),(0,d.jsx)("div",{className:"session-detail-comments-strip__body",children:a.map((a,b)=>{let{title:h,description:i}=r(a.body),j=c.has(a.url),k=e.has(a.url),l=f.has(a.url);return(0,d.jsxs)("details",{className:"session-detail-comment",open:0===b,children:[(0,d.jsx)("summary",{children:(0,d.jsxs)("div",{className:"session-detail-comment__row",children:[(0,d.jsx)("svg",{className:"session-detail-comment__chevron",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M9 5l7 7-7 7"})}),(0,d.jsx)("span",{className:"session-detail-comment__title",children:h}),(0,d.jsxs)("span",{className:"session-detail-comment__author",children:["\xb7 ",a.author]}),(0,d.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",onClick:a=>a.stopPropagation(),className:"session-detail-comment__view",children:"view →"})]})}),(0,d.jsxs)("div",{className:"session-detail-comment__body",children:[(0,d.jsx)("div",{className:"session-detail-comment__file",children:a.path}),(0,d.jsx)("p",{className:"session-detail-comment__text",children:i}),(0,d.jsx)("button",{onClick:()=>g(a),disabled:j,className:(0,p.cn)("session-detail-comment__fix-btn",k&&"session-detail-comment__fix-btn--sent",l&&"session-detail-comment__fix-btn--error"),children:j?"Sending…":k?"Sent ✓":l?"Failed":"Ask Agent to Fix"})]})]},a.url)})})]})}function t(a){return!(0,i.sZ)(a)&&!(0,i.fZ)(a)&&"merged"!==a.state&&!a.mergeability.noConflicts}function u({pr:a,metadata:b,lifecyclePrReason:c,onAskAgentToFix:f}){let[h,j]=(0,e.useState)(new Set),[k,l]=(0,e.useState)(new Set),[m,n]=(0,e.useState)(new Set),[o,q]=(0,e.useState)(!1),r=(0,e.useRef)(new Map),u=async a=>{l(b=>{let c=new Set(b);return c.delete(a.url),c}),n(b=>{let c=new Set(b);return c.delete(a.url),c}),j(b=>new Set(b).add(a.url)),await f(a,()=>{j(b=>{let c=new Set(b);return c.delete(a.url),c}),l(b=>new Set(b).add(a.url));let b=r.current.get(a.url);b&&clearTimeout(b);let c=setTimeout(()=>{l(b=>{let c=new Set(b);return c.delete(a.url),c}),r.current.delete(a.url)},3e3);r.current.set(a.url,c)},()=>{j(b=>{let c=new Set(b);return c.delete(a.url),c}),n(b=>new Set(b).add(a.url));let b=r.current.get(a.url);b&&clearTimeout(b);let c=setTimeout(()=>{n(b=>{let c=new Set(b);return c.delete(a.url),c}),r.current.delete(a.url)},3e3);r.current.set(a.url,c)})},v=(0,i.QN)(a),w=function(a,b,c){let d=[],e=!!b.lastCIFailureDispatchHash,f="true"===b.lastMergeConflictDispatched,h=!!b.lastPendingReviewDispatchHash,i=b.status,j=a.ciStatus===g.U1.FAILING||"ci_failing"===c||"ci_failed"===i,k="changes_requested"===a.reviewDecision||"changes_requested"===c||"changes_requested"===i,l=t(a);if(j){let b=a.ciChecks.filter(a=>"failed"===a.status).length;d.push({icon:"✗",variant:"fail",text:b>0?`${b} check${1!==b?"s":""} failing`:"CI failing",notified:e})}else a.ciStatus===g.U1.PENDING&&d.push({icon:"●",variant:"warn",text:"CI pending"});return k?d.push({icon:"✗",variant:"fail",text:"Changes requested",notified:h}):a.mergeability.approved||d.push({icon:"○",variant:"muted",text:"Awaiting reviewer"}),l&&d.push({icon:"✗",variant:"fail",text:"Merge conflicts",notified:f}),a.isDraft&&d.push({icon:"○",variant:"muted",text:"Draft"}),d}(a,b,c),x=a.changedFiles??0,y=t(a)&&"open"===a.state,z=y?function(a){let b=encodeURIComponent(a.owner),c=encodeURIComponent(a.repo),d=encodeURIComponent(a.baseBranch),e=encodeURIComponent(a.branch);return`https://github.com/${b}/${c}/compare/${d}...${e}`}(a):"";return(0,d.jsxs)("div",{className:(0,p.cn)("session-detail-pr-card",v&&"session-detail-pr-card--green"),children:[(0,d.jsxs)("div",{className:"session-detail-pr-card__row",children:[(0,d.jsxs)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"session-detail-pr-card__title-link",children:["PR #",a.number,": ",a.title]}),(0,d.jsxs)("span",{className:"session-detail-pr-card__diff-stats",children:[(0,d.jsxs)("span",{className:"session-detail-diff--add",children:["+",a.additions]})," ",(0,d.jsxs)("span",{className:"session-detail-diff--del",children:["-",a.deletions]})]}),x>0?(0,d.jsxs)("span",{className:"session-detail-pr-card__diff-label",children:[x," file",1!==x?"s":""]}):null,a.isDraft?(0,d.jsx)("span",{className:"session-detail-pr-card__diff-label",children:"Draft"}):null,"merged"===a.state?(0,d.jsx)("span",{className:"session-detail-pr-card__diff-label",children:"Merged"}):null]}),y?(0,d.jsxs)("div",{className:"session-detail-pr-card__merge-actions",role:"group","aria-label":"Resolve merge conflicts",children:[(0,d.jsx)("a",{href:z,target:"_blank",rel:"noopener noreferrer",className:"session-detail-pr-merge-action",children:"Compare with base branch"}),(0,d.jsx)("button",{type:"button",onClick:()=>{let b=navigator.clipboard?.writeText(a.branch);b&&b.then(()=>{q(!0);let a="__copy-branch",b=r.current.get(a);b&&clearTimeout(b);let c=setTimeout(()=>{q(!1),r.current.delete(a)},2e3);r.current.set(a,c)}).catch(()=>{})},"aria-label":o?"Head branch name copied":"Copy head branch name",className:"session-detail-pr-merge-action session-detail-pr-merge-action--btn",children:o?"Copied branch name":"Copy head branch name"})]}):null,(0,d.jsxs)("div",{className:"session-detail-pr-card__details",children:[v?(0,d.jsxs)("div",{className:"session-detail-merge-banner",children:[(0,d.jsx)("svg",{width:"11",height:"11",fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M20 6L9 17l-5-5"})}),"Ready to merge"]}):w.map(a=>(0,d.jsxs)("span",{className:(0,p.cn)("session-detail-blocker-chip","fail"===a.variant&&"session-detail-blocker-chip--fail","warn"===a.variant&&"session-detail-blocker-chip--warn","muted"===a.variant&&"session-detail-blocker-chip--muted"),children:[a.icon," ",a.text,a.notified?(0,d.jsx)("span",{className:"session-detail-blocker-chip__note",children:"\xb7 notified"}):null]},a.text)),a.ciChecks.length>0?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"session-detail-pr-sep"}),a.ciChecks.map((a,b)=>{let c=a.url??`${a.name}-${b}`,e=(0,d.jsxs)("span",{className:(0,p.cn)("session-detail-ci-chip","passed"===a.status&&"session-detail-ci-chip--pass","failed"===a.status&&"session-detail-ci-chip--fail","pending"===a.status&&"session-detail-ci-chip--pending","passed"!==a.status&&"failed"!==a.status&&"pending"!==a.status&&"session-detail-ci-chip--queued"),children:["passed"===a.status?"✓":"failed"===a.status?"✗":"pending"===a.status?"●":"○"," ",a.name]});return a.url?(0,d.jsx)("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"hover:no-underline",onClick:a=>a.stopPropagation(),children:e},c):(0,d.jsx)("span",{children:e},c)})]}):null]}),(0,d.jsx)(s,{comments:a.unresolvedComments,unresolvedThreads:a.unresolvedThreads,sendingUrls:h,sentUrls:k,errorUrls:m,onAskAgentToFix:u})]})}function v(a,b){let c=a.trim();return c.length<=b?c:`${c.slice(0,Math.max(0,b-1)).trimEnd()}…`}async function w(a,b,c,d){try{let d=function(a){let{title:b,description:c}=r(a.body),d=`Please address this review comment:
|
|
2
|
+
|
|
3
|
+
File: ${v(a.path,500)}
|
|
4
|
+
Comment: ${v(b,240)}
|
|
5
|
+
Description: ${v(c,7500)}
|
|
6
|
+
|
|
7
|
+
Resolve the comment at ${a.url} after fixing it.`;return v(d,9500)}(b),e=await fetch(`/api/sessions/${encodeURIComponent(a)}/message`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:d})});if(!e.ok)throw Error(`HTTP ${e.status}`);c()}catch(a){console.error("Failed to send message to agent:",a),d()}}function x({zones:a}){let b=[{value:a.merge,label:"merge",toneClass:"topbar-zone-pill--merge"},{value:a.respond,label:"respond",toneClass:"topbar-zone-pill--respond"},{value:a.review,label:"review",toneClass:"topbar-zone-pill--review"},{value:a.working,label:"working",toneClass:"topbar-zone-pill--working"},{value:a.pending,label:"pending",toneClass:"topbar-zone-pill--pending"},{value:a.done,label:"done",toneClass:"topbar-zone-pill--done"}].filter(a=>a.value>0);return 0===b.length?null:(0,d.jsx)(d.Fragment,{children:b.map(a=>(0,d.jsxs)("span",{className:(0,p.cn)("topbar-zone-pill",a.toneClass),children:[(0,d.jsx)("span",{className:"topbar-zone-pill__value",children:a.value}),(0,d.jsx)("span",{className:"topbar-zone-pill__label",children:a.label})]},a.label))})}function y({session:a,isOrchestrator:b,isMobile:c,terminalEnded:f,isRestorable:h,activity:j,headline:k,projects:l,orchestratorHref:m,orchestratorZones:n,onToggleSidebar:o,onRestore:q,onKill:r}){let s=a.pr,t=!!s&&(0,i.QN)(s),[v,y]=(0,e.useState)(!1),z=(0,e.useRef)(null),A=l.find(b=>b.id===a.projectId)?.name??a.projectId,B="agent orchestrator"!==A.trim().toLowerCase();return(0,d.jsxs)("header",{className:"dashboard-app-header",children:[l.length>0?(0,d.jsx)("button",{type:"button",className:"dashboard-app-sidebar-toggle",onClick:o,"aria-label":"Toggle sidebar",children:c?(0,d.jsx)("svg",{width:"16",height:"16",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M4 6h16M4 12h16M4 18h16"})}):(0,d.jsxs)("svg",{width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"1.75",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,d.jsx)("path",{d:"M9 3v18"})]})}):null,(0,d.jsx)("div",{className:"dashboard-app-header__brand dashboard-app-header__brand--hide-mobile",children:(0,d.jsx)("span",{children:"Agent Orchestrator"})}),B&&(0,d.jsx)("span",{className:"dashboard-app-header__sep topbar-desktop-only","aria-hidden":"true"}),(0,d.jsxs)("div",{className:"topbar-project-pills-group",children:[(0,d.jsxs)("div",{className:"topbar-project-line",children:[B&&(0,d.jsx)("span",{className:"dashboard-app-header__project",children:A}),(0,d.jsx)("span",{className:"dashboard-app-header__session-id topbar-mobile-only",children:a.id}),b&&(0,d.jsx)("span",{className:"session-detail-mode-badge",children:"orchestrator"})]}),(0,d.jsxs)("div",{className:"topbar-session-pills",children:[(0,d.jsxs)("div",{className:(0,p.cn)("topbar-status-pill",`topbar-status-pill--${j.label.toLowerCase().replace(/\s+/g,"-")}`),children:[(0,d.jsx)("span",{className:"topbar-status-pill__dot",style:{background:j.color}}),(0,d.jsx)("span",{className:"topbar-status-pill__label",children:j.label})]}),a.branch?s?(0,d.jsx)("a",{href:function(a){let b="https://github.com";try{b=new URL(a.url).origin}catch{}return`${b}/${a.owner}/${a.repo}/tree/${a.branch}`}(s),target:"_blank",rel:"noopener noreferrer",className:"topbar-branch-pill topbar-branch-pill--link",children:a.branch}):(0,d.jsx)("span",{className:"topbar-branch-pill",children:a.branch}):null,b&&n?(0,d.jsx)(x,{zones:n}):null]})]}),(0,d.jsx)("span",{className:"dashboard-app-header__sep topbar-desktop-only","aria-hidden":"true"}),(0,d.jsx)("span",{className:"dashboard-app-header__session-title topbar-desktop-only",children:k}),(0,d.jsx)("span",{className:"dashboard-app-header__session-id topbar-desktop-only",children:a.id}),(0,d.jsx)("div",{className:"dashboard-app-header__spacer"}),(0,d.jsxs)("div",{className:"dashboard-app-header__actions",children:[s?(0,d.jsxs)("div",{className:"topbar-pr-btn-wrap",ref:z,children:[(0,d.jsxs)("a",{href:s.url,target:"_blank",rel:"noopener noreferrer",className:(0,p.cn)("dashboard-app-btn topbar-pr-btn",v&&"topbar-pr-btn--open"),onClick:a=>{a.metaKey||a.ctrlKey||a.shiftKey||1===a.button||(a.preventDefault(),y(a=>!a))},"aria-expanded":v,"aria-label":`PR #${s.number}`,children:[(0,d.jsx)("span",{className:(0,p.cn)("topbar-pr-dot",t?"topbar-pr-dot--green":s.ciStatus===g.U1.FAILING||"changes_requested"===s.reviewDecision?"topbar-pr-dot--red":"topbar-pr-dot--amber")}),"PR #",s.number,(0,d.jsx)("svg",{width:"10",height:"10",fill:"none",stroke:"currentColor",strokeWidth:"2.5",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,d.jsx)("path",{d:v?"M18 15l-6-6-6 6":"M6 9l6 6 6-6"})})]}),v&&(0,d.jsx)("div",{className:"topbar-pr-popover",children:(0,d.jsx)(u,{pr:s,metadata:a.metadata,lifecyclePrReason:a.lifecycle?.prReason??void 0,onAskAgentToFix:(b,c,d)=>w(a.id,b,c,d)})})]}):null,h?(0,d.jsxs)("button",{type:"button",className:"dashboard-app-btn dashboard-app-btn--restore",onClick:q,children:[(0,d.jsxs)("svg",{className:"topbar-action-icon",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,d.jsx)("path",{d:"M20 11a8 8 0 0 0-14.9-3.98"}),(0,d.jsx)("path",{d:"M4 5v4h4"}),(0,d.jsx)("path",{d:"M4 13a8 8 0 0 0 14.9 3.98"}),(0,d.jsx)("path",{d:"M20 19v-4h-4"})]}),(0,d.jsx)("span",{className:"topbar-btn-label",children:"Restore"})]}):b||f?null:(0,d.jsxs)("button",{type:"button",className:"dashboard-app-btn dashboard-app-btn--danger",onClick:r,children:[(0,d.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{d:"M3 6h18M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})}),(0,d.jsx)("span",{className:"topbar-btn-label",children:"Kill"})]}),m?(0,d.jsxs)("a",{href:m,className:"dashboard-app-btn dashboard-app-btn--amber topbar-desktop-only","aria-label":"Orchestrator",children:[(0,d.jsxs)("svg",{width:"12",height:"12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"12",cy:"5",r:"2",fill:"currentColor",stroke:"none"}),(0,d.jsx)("path",{d:"M12 7v4M12 11H6M12 11h6M6 11v3M12 11v3M18 11v3"}),(0,d.jsx)("circle",{cx:"6",cy:"17",r:"2"}),(0,d.jsx)("circle",{cx:"12",cy:"17",r:"2"}),(0,d.jsx)("circle",{cx:"18",cy:"17",r:"2"})]}),(0,d.jsx)("span",{className:"topbar-btn-label",children:"Orchestrator"})]}):null]})]})}function z({session:a,headline:b,pr:c,dashboardHref:e}){let f=a.lifecycle?.runtime.reasonLabel?a.lifecycle.runtime.reasonLabel:"killed"===a.status?"Manually stopped":"terminated"===a.status?"Runtime unavailable":"done"===a.status||"merged"===a.status?"Work completed":"Terminal ended",g=function(a,b){let c=a.metadata.pinnedSummary;return c||(a.summary&&!a.summaryIsFallback?a.summary:a.lifecycle?.summary?a.lifecycle.summary:a.userPrompt?a.userPrompt:a.summary?a.summary:b)}(a,b),h=a.lifecycle?.session.terminatedAt??a.lifecycle?.session.completedAt??a.lifecycle?.session.lastTransitionAt??a.lastActivityAt,i=a.lifecycle?.runtime.label??"Unavailable",j=c?"merged"===c.state?"Merged":"closed"===c.state?"Closed":c.mergeability.mergeable?"Open, merge-ready":"Open":"No PR";return(0,d.jsx)("section",{className:"session-ended-summary","aria-label":"Session ended summary",children:(0,d.jsxs)("div",{className:"session-ended-summary__panel",children:[(0,d.jsx)("div",{className:"session-ended-summary__eyebrow",children:"Terminal ended"}),(0,d.jsxs)("div",{className:"session-ended-summary__header",children:[(0,d.jsx)("div",{className:"session-ended-summary__icon","aria-hidden":"true",children:(0,d.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"1.8",viewBox:"0 0 24 24",children:[(0,d.jsx)("rect",{x:"3",y:"5",width:"18",height:"14",rx:"3"}),(0,d.jsx)("path",{d:"M7 10l3 2-3 2"}),(0,d.jsx)("path",{d:"M13 15h4"})]})}),(0,d.jsxs)("div",{className:"session-ended-summary__title-group",children:[(0,d.jsx)("h2",{className:"session-ended-summary__title",children:b}),(0,d.jsxs)("p",{className:"session-ended-summary__subtitle",children:[f,". The live terminal is gone, but the session context is still available."]})]})]}),(0,d.jsxs)("div",{className:"session-ended-summary__body",children:[(0,d.jsxs)("div",{className:"session-ended-summary__section",children:[(0,d.jsx)("div",{className:"session-ended-summary__label",children:"What happened"}),(0,d.jsx)("p",{className:"session-ended-summary__copy",children:g})]}),(0,d.jsxs)("div",{className:"session-ended-summary__facts","aria-label":"Session facts",children:[(0,d.jsxs)("div",{className:"session-ended-summary__fact",children:[(0,d.jsx)("span",{children:"Session"}),(0,d.jsx)("strong",{children:a.id})]}),(0,d.jsxs)("div",{className:"session-ended-summary__fact",children:[(0,d.jsx)("span",{children:"Ended"}),(0,d.jsx)("strong",{children:function(a){if(!a)return"Unknown";let b=new Date(a).getTime();return Number.isFinite(b)?(0,k.fw)(b):"Unknown"}(h)})]}),(0,d.jsxs)("div",{className:"session-ended-summary__fact",children:[(0,d.jsx)("span",{children:"Runtime"}),(0,d.jsx)("strong",{children:i})]}),(0,d.jsxs)("div",{className:"session-ended-summary__fact",children:[(0,d.jsx)("span",{children:"PR"}),(0,d.jsx)("strong",{children:j})]})]}),(0,d.jsxs)("div",{className:"session-ended-summary__links",children:[c?(0,d.jsxs)("a",{href:c.url,target:"_blank",rel:"noopener noreferrer",className:"session-ended-summary__primary",children:["Open PR #",c.number]}):null,(0,d.jsx)("a",{href:e,className:"session-ended-summary__secondary",children:"Back to dashboard"})]}),a.lifecycle?.evidence?(0,d.jsxs)("div",{className:"session-ended-summary__evidence",children:[(0,d.jsx)("span",{children:"Evidence"}),(0,d.jsx)("code",{children:a.lifecycle.evidence})]}):null]})]})})}let A=(0,j.default)(async()=>{},{loadableGenerated:{modules:["components/SessionDetail.tsx -> ./DirectTerminal"]},ssr:!1,loading:()=>(0,d.jsx)("div",{className:"h-full w-full animate-pulse rounded bg-[var(--color-bg-primary)]"})});function B({session:a,isOrchestrator:b=!1,orchestratorZones:c,projectOrchestratorId:g=null,projects:j=[],sidebarSessions:p=[],sidebarOrchestrators:r,sidebarLoading:s=!1,sidebarError:t=!1,onRetrySidebar:u}){let v=(0,f.useRouter)(),w=(0,f.useSearchParams)(),x=(0,h.U)(h.D),B="true"===w.get("fullscreen"),[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(!1),[G,H]=(0,e.useState)(!1),I=a.pr,J=i.CM.has(a.status),K=J&&!i.N_.has(a.status),L=(a.activity&&q[a.activity])??{label:a.activity??"unknown",color:"var(--color-text-muted)"},M=(0,k.Pn)(a),N=b?"orchestrator":"agent",O="opencode"===a.metadata.agent,P="string"==typeof a.metadata.opencodeSessionId&&a.metadata.opencodeSessionId.length>0?a.metadata.opencodeSessionId:void 0,Q=P?`/exit
|
|
8
|
+
opencode --session ${P}
|
|
9
|
+
`:void 0,R=a.projectId?(0,m.bn)(a.projectId):"/",S=(0,e.useCallback)(async()=>{try{let b=await fetch(`/api/sessions/${encodeURIComponent(a.id)}/kill`,{method:"POST"});if(!b.ok)throw Error(`HTTP ${b.status}`);if(g)return void v.push((0,m.Nc)(a.projectId,g));v.push(R)}catch(a){console.error("Failed to kill session:",a)}},[R,g,v,a.id,a.projectId]),T=(0,e.useCallback)(async()=>{try{let b=await fetch(`/api/sessions/${encodeURIComponent(a.id)}/restore`,{method:"POST"});if(!b.ok){let a=await b.text().catch(()=>"");throw Error(a||`HTTP ${b.status}`)}window.location.reload()}catch(a){console.error("Failed to restore session:",a)}},[a.id]),U=(0,e.useMemo)(()=>b?(0,m.Nc)(a.projectId,a.id):g?(0,m.Nc)(a.projectId,g):null,[b,g,a.id,a.projectId]),V=(0,e.useCallback)(()=>{x?F(a=>!a):D(a=>!a)},[x]);return(0,d.jsx)(l.I.Provider,{value:{onToggleSidebar:V,mobileSidebarOpen:E},children:(0,d.jsxs)("div",{className:"dashboard-app-shell",children:[(0,d.jsx)(y,{session:a,isOrchestrator:b,isMobile:x,terminalEnded:J,isRestorable:K,activity:L,headline:M,projects:j,orchestratorHref:U,orchestratorZones:c,onToggleSidebar:V,onRestore:T,onKill:S}),(0,d.jsxs)("div",{className:`dashboard-shell dashboard-shell--desktop${C?" dashboard-shell--sidebar-collapsed":""}`,children:[j.length>0?(0,d.jsx)("div",{className:`sidebar-wrapper${E?" sidebar-wrapper--mobile-open":""}`,children:(0,d.jsx)(n.u,{projects:j,sessions:p,orchestrators:r,loading:s,error:t,onRetry:u,activeProjectId:a.projectId,activeSessionId:a.id,collapsed:C,onToggleCollapsed:()=>D(a=>!a),onMobileClose:()=>F(!1)})}):null,E&&(0,d.jsx)("div",{className:"sidebar-mobile-backdrop",onClick:()=>F(!1)}),(0,d.jsx)("div",{className:"dashboard-main dashboard-main--desktop",children:(0,d.jsx)("main",{className:"session-detail-page flex-1 min-h-0 flex flex-col bg-[var(--color-bg-base)]",children:(0,d.jsx)("div",{className:"flex-1 min-h-0 flex flex-col",children:G?J?(0,d.jsx)(z,{session:a,headline:M,pr:I,dashboardHref:R}):(0,d.jsx)(A,{sessionId:a.id,projectId:a.projectId,tmuxName:a.metadata?.tmuxName,startFullscreen:B,variant:N,appearance:"dark",height:"100%",isOpenCodeSession:O,reloadCommand:O?Q:void 0,autoFocus:!0}):(0,d.jsx)("div",{className:"session-detail-terminal-placeholder h-full"})})})})]}),(0,d.jsx)(o.X,{ariaLabel:"Session navigation",activeTab:b?"orchestrator":void 0,dashboardHref:R,prsHref:a.projectId?`/?project=${encodeURIComponent(a.projectId)}&tab=prs`:"/",showOrchestrator:!!U,orchestratorHref:U})]})})}var C=c(23041),D=c(58976),E=c(20902);let F=null,G=null,H=new Set(Object.values(g.SB)),I=new Set(Object.values(g.u3)),J=new Set;function K(a){if(a instanceof DOMException)return"AbortError"===a.name;if(a instanceof Error){let b=a.message.toLowerCase();return b.includes("aborted")||b.includes("aborterror")}return!1}function L({message:a}){return(0,d.jsx)("div",{className:"project-sidebar h-full",children:(0,d.jsxs)("div",{className:"space-y-3 px-3 py-4",children:[(0,d.jsx)("div",{className:"text-[11px] font-medium uppercase tracking-[0.18em] text-[var(--color-text-tertiary)]",children:"Projects"}),(0,d.jsx)("div",{className:"space-y-2",children:Array.from({length:3},(a,b)=>(0,d.jsx)("div",{className:"h-10 animate-pulse border border-[var(--color-border-subtle)] bg-[var(--color-bg-surface)]"},`sidebar-placeholder-${b}`))}),(0,d.jsx)("div",{className:"pt-2 text-[12px] text-[var(--color-text-tertiary)]",children:a})]})})}function M({projects:a,projectsLoading:b,sidebarSessions:c,sidebarOrchestrators:f,sidebarLoading:g,sidebarError:i,onRetrySidebar:j,activeProjectId:k,activeSessionId:l,children:m}){let o=(0,h.U)(h.D),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(!1),t=(0,e.useCallback)(()=>{if(o)return void s(a=>!a);q(a=>!a)},[o]);return(0,d.jsxs)("div",{className:"dashboard-app-shell",children:[(0,d.jsxs)("header",{className:"dashboard-app-header",children:[(0,d.jsx)("button",{type:"button",className:"dashboard-app-sidebar-toggle",onClick:t,"aria-label":"Toggle sidebar",children:o?(0,d.jsx)("svg",{width:"16",height:"16",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M4 6h16M4 12h16M4 18h16"})}):(0,d.jsxs)("svg",{width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"1.75",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,d.jsx)("path",{d:"M9 3v18"})]})}),(0,d.jsx)("div",{className:"dashboard-app-header__brand",children:(0,d.jsx)("span",{children:"Agent Orchestrator"})}),(0,d.jsx)("div",{className:"dashboard-app-header__spacer"})]}),(0,d.jsxs)("div",{className:`dashboard-shell dashboard-shell--desktop${p?" dashboard-shell--sidebar-collapsed":""}`,children:[(0,d.jsx)("div",{className:`sidebar-wrapper${r?" sidebar-wrapper--mobile-open":""}`,children:a.length>0?(0,d.jsx)(n.u,{projects:a,sessions:c,orchestrators:f,loading:g,error:i,onRetry:j,activeProjectId:k,activeSessionId:l,collapsed:p,onToggleCollapsed:()=>q(a=>!a),onMobileClose:()=>s(!1)}):(0,d.jsx)(L,{message:b?"Loading projects...":"Projects unavailable."})}),r&&(0,d.jsx)("div",{className:"sidebar-mobile-backdrop",onClick:()=>s(!1)}),(0,d.jsx)("div",{className:"dashboard-main dashboard-main--desktop",children:(0,d.jsx)("main",{className:"session-detail-page flex-1 min-h-0 flex flex-col bg-[var(--color-bg-base)]",children:(0,d.jsx)("div",{className:"flex-1 min-h-0",children:m})})})]})]})}function N(){let a=(0,f.useParams)();(0,f.usePathname)(),(0,f.useRouter)();let b=a.id,c="string"==typeof a.projectId?a.projectId:Array.isArray(a.projectId)?a.projectId[0]:null;(0,D.eT)();let h=(()=>{if("undefined"==typeof sessionStorage)return null;try{let a=sessionStorage.getItem(`ao-session-nav:${b}`);if(a)return sessionStorage.removeItem(`ao-session-nav:${b}`),JSON.parse(a)}catch{}return null})(),[j,k]=(0,e.useState)(h),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(void 0),[p,q]=(0,e.useState)([]),[r,s]=(0,e.useState)(null===F),[t,u]=(0,e.useState)(()=>G),[v,w]=(0,e.useState)(void 0),[x,y]=(0,e.useState)(null===h),[z,A]=(0,e.useState)(null),[L,N]=(0,e.useState)(!1),[O,P]=(0,e.useState)(!1),[Q,R]=(0,e.useState)(new Map);j?.projectId;let S=[...Q.values()],T=!!j&&(0,g.tT)(j,Q.get(j.projectId),S),U=(0,e.useRef)(null),V=(0,e.useRef)(!1),W=(0,e.useRef)(null),X=(0,e.useRef)(new Map),Y=(0,e.useRef)(null!==h),Z=(0,e.useRef)(null),$=(0,e.useRef)(!1),_=(0,e.useRef)(!1),aa=(0,e.useRef)(!1),ab=(0,e.useRef)(null),ac=(0,e.useRef)(null),ad=(0,e.useRef)(null),ae=(0,e.useRef)(!1),af=(0,e.useCallback)(async()=>{F&&(q(F),R(new Map(F.map(a=>[a.id,a.sessionPrefix??a.id]))),s(!1));try{var a,b;let c=await (0,E.u)("/api/projects",{timeoutMs:5e3,timeoutMessage:"Projects request timed out after 5000ms"});if(!c?.projects)return;a=F,b=c.projects,a&&a.length===b.length&&a.every((a,c)=>{let d=b[c];return JSON.stringify(a)===JSON.stringify(d)})||(F=c.projects,q(c.projects),R(new Map(c.projects.map(a=>[a.id,a.sessionPrefix??a.id]))))}catch(a){console.error("Failed to fetch projects:",a)}finally{s(!1)}},[]);var ag=b;let ah=(0,D.eT)(),ai=ah?.sessions.find(a=>a.id===ag);(0,e.useMemo)(()=>ai?{activity:ai.activity??null}:null,[ai]);let aj=(0,e.useCallback)(async()=>{if($.current)return;$.current=!0;let a=new AbortController;ab.current=a;try{let c=await (0,E.u)(`/api/sessions/${encodeURIComponent(b)}`,{signal:a.signal,timeoutMs:8e3,timeoutMessage:"Session request timed out after 8000ms"});k(c),A(null),N(!1),Y.current=!0}catch(c){if(ae.current||a.signal.aborted||K(c))return;let b=(c instanceof Error?c.message:"Failed to load session").toLowerCase();if(b.includes("session not found")||b.includes("http 404")){Y.current||N(!0),y(!1);return}console.error("Failed to fetch session:",c),Y.current||A(c instanceof Error?c:Error("Failed to load session"))}finally{y(!1),$.current=!1,ab.current===a&&(ab.current=null)}},[b]);(0,e.useCallback)(async()=>{if(_.current)return;let a=U.current;if(!a)return;let b=V.current,c=`${a}:${b?"orchestrator":"worker"}`;if(!b&&W.current===c)return;_.current=!0;let d=new AbortController;ac.current=d;try{let e=b?`/api/sessions?project=${encodeURIComponent(a)}&fresh=true`:`/api/sessions?project=${encodeURIComponent(a)}&orchestratorOnly=true&fresh=true`,f=await (0,E.u)(e,{signal:d.signal,timeoutMs:5e3,timeoutMessage:"Project sessions request timed out after 5000ms"}),h=f.sessions??[],j=f.orchestratorId??f.orchestrators?.find(b=>b.projectId===a)?.id??null;if(o(a=>a===j?a:j),!b){W.current=c;return}let k={merge:0,respond:0,review:0,pending:0,working:0,done:0},l=[...X.current.values()];for(let a of h)if(!(0,g.tT)(a,X.current.get(a.projectId),l)){let b=(0,i.ng)(a);if("action"===b)continue;k[b]++}m(k)}catch(a){if(ae.current||d.signal.aborted||K(a))return;console.error("Failed to fetch project sessions:",a)}finally{_.current=!1,ac.current===d&&(ac.current=null)}},[]);let ak=(0,e.useCallback)(async()=>{if(aa.current)return;aa.current=!0;let a=new AbortController;ad.current=a;try{let b=await (0,E.u)("/api/sessions?fresh=true",{signal:a.signal,timeoutMs:5e3,timeoutMessage:"Sidebar sessions request timed out after 5000ms"}),c=b?.sessions??[],d=function(a,b){if(!a||0===b.length)return a;let c=new Map(b.map(a=>[a.id,a])),d=!1,e=a.map(a=>{var b,e;let f=c.get(a.id);if(!f)return a;if(b=f.status,!H.has(b)){let b=`status:${f.status}`;return J.has(b)||(J.add(b),console.warn("Ignoring mux session patch with unknown status",{sessionId:f.id,status:f.status})),a}if(null!==f.activity&&(e=f.activity,!I.has(e))){let b=`activity:${f.activity}`;return J.has(b)||(J.add(b),console.warn("Ignoring mux session patch with unknown activity",{sessionId:f.id,activity:f.activity})),a}return a.status===f.status&&a.activity===f.activity&&a.lastActivityAt===f.lastActivityAt?a:(d=!0,{...a,status:f.status,activity:f.activity,lastActivityAt:f.lastActivityAt})});return d?e:a}(c,Z.current??[])??c;G=d,w(b?.orchestrators),P(!1),u(a=>a&&a.length===d.length&&a.every((a,b)=>{let c=d[b];return JSON.stringify(a)===JSON.stringify(c)})?a:d)}catch(b){if(ae.current||a.signal.aborted||K(b))return;console.error("Failed to fetch sidebar sessions:",b),P(!0),u(a=>null===a?[]:a)}finally{aa.current=!1,ad.current===a&&(ad.current=null)}},[]);return x?(0,d.jsx)(M,{projects:p,projectsLoading:r,sidebarSessions:t,sidebarOrchestrators:v,sidebarLoading:null===t,sidebarError:O,onRetrySidebar:ak,activeProjectId:c??void 0,activeSessionId:b,children:(0,d.jsx)("div",{className:"flex h-full min-h-screen items-center justify-center bg-[var(--color-bg-base)]",children:(0,d.jsxs)("div",{className:"flex flex-col items-center gap-3",children:[(0,d.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,d.jsx)("path",{d:"M12 3a9 9 0 1 0 9 9"})}),(0,d.jsx)("div",{className:"text-[13px] text-[var(--color-text-tertiary)]",children:"Loading session…"})]})})}):L?(0,d.jsx)(M,{projects:p,projectsLoading:r,sidebarSessions:t,sidebarOrchestrators:v,sidebarLoading:null===t,sidebarError:O,onRetrySidebar:ak,activeProjectId:c??void 0,activeSessionId:b,children:(0,d.jsx)(C.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:c?`/projects/${c}`:"/"},secondaryAction:{label:"Retry",onClick:()=>void aj()},compact:!0,chrome:"card"})}):z?(0,d.jsx)(M,{projects:p,projectsLoading:r,sidebarSessions:t,sidebarOrchestrators:v,sidebarLoading:null===t,sidebarError:O,onRetrySidebar:ak,activeProjectId:j?.projectId??c??void 0,activeSessionId:b,children:(0,d.jsx)(C.ErrorDisplay,{title:"Failed to load session",message:function(a){let b=a.message.toLowerCase();return b.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.":b.includes("network")?"The session request failed before the dashboard got a response. Check the local server connection and try again.":b.includes("404")?"This session is no longer available. It may have been removed while the page was open.":b.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."}(z),tone:"error",primaryAction:{label:"Try again",onClick:()=>{A(null),N(!1),y(!0),Promise.all([af(),aj(),ak()])}},secondaryAction:{label:"Back to dashboard",href:j?.projectId?`/projects/${j.projectId}`:"/"},error:z,compact:!0,chrome:"card"})}):j?(0,d.jsx)(B,{session:j,isOrchestrator:T,orchestratorZones:l??void 0,projectOrchestratorId:n,projects:p,sidebarSessions:t,sidebarOrchestrators:v,sidebarLoading:null===t,sidebarError:O,onRetrySidebar:ak}):(0,d.jsx)(M,{projects:p,projectsLoading:r,sidebarSessions:t,sidebarOrchestrators:v,sidebarLoading:null===t,sidebarError:O,onRetrySidebar:ak,activeProjectId:c??void 0,activeSessionId:b,children:(0,d.jsx)(C.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 aj()},secondaryAction:{label:"Back to dashboard",href:c?`/projects/${c}`:"/"},compact:!0,chrome:"card"})})}},18287:(a,b,c)=>{c.d(b,{default:()=>e.a});var d=c(26050),e=c.n(d)},26050:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return e}});let d=c(32697)._(c(90994));function e(a,b){var c;let e={};"function"==typeof a&&(e.loader=a);let f={...e,...b};return(0,d.default)({...f,modules:null==(c=f.loadableGenerated)?void 0:c.modules})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},26745:(a,b,c)=>{c.r(b),c.d(b,{default:()=>d});let d=(0,c(10864).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/equinox/agent-orchestrator/packages/web/src/app/sessions/[id]/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/equinox/agent-orchestrator/packages/web/src/app/sessions/[id]/page.tsx","default")},54170:(a,b)=>{function c(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"encodeURIPath",{enumerable:!0,get:function(){return c}})},70162:(a,b,c)=>{c.d(b,{I:()=>d});let d=(0,c(81115).createContext)(null)},70424:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"PreloadChunks",{enumerable:!0,get:function(){return h}});let d=c(33666),e=c(51538),f=c(29294),g=c(54170);function h(a){let{moduleIds:b}=a,c=f.workAsyncStorage.getStore();if(void 0===c)return null;let h=[];if(c.reactLoadableManifest&&b){let a=c.reactLoadableManifest;for(let c of b){if(!a[c])continue;let b=a[c].files;h.push(...b)}}return 0===h.length?null:(0,d.jsx)(d.Fragment,{children:h.map(a=>{let b=c.assetPrefix+"/_next/"+(0,g.encodeURIPath)(a);return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:b,rel:"stylesheet",as:"style"},a):((0,e.preload)(b,{as:"script",fetchPriority:"low"}),null)})})}},88087:(a,b,c)=>{c.d(b,{X:()=>g});var d=c(33666),e=c(47489),f=c.n(e);function g({ariaLabel:a,activeTab:b,dashboardHref:c,prsHref:e,showOrchestrator:g=!0,orchestratorHref:h=null}){return(0,d.jsxs)("nav",{className:"mobile-bottom-nav","aria-label":a,children:[(0,d.jsxs)(f(),{href:c,className:"mobile-bottom-nav__item","data-active":"dashboard"===b?"true":"false","aria-current":"dashboard"===b?"page":void 0,children:[(0,d.jsx)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M3 13h8V3H3zm10 8h8V11h-8zM3 21h8v-6H3zm10-10h8V3h-8z"})}),(0,d.jsx)("span",{children:"Dashboard"})]}),(0,d.jsxs)(f(),{href:e,className:"mobile-bottom-nav__item","data-active":"prs"===b?"true":"false","aria-current":"prs"===b?"page":void 0,children:[(0,d.jsx)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,d.jsx)("path",{d:"M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01"})}),(0,d.jsx)("span",{children:"PRs"})]}),g?h?(0,d.jsxs)(f(),{href:h,className:"mobile-bottom-nav__item","data-active":"orchestrator"===b?"true":"false","aria-current":"orchestrator"===b?"page":void 0,children:[(0,d.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.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,d.jsx)("path",{d:"M9 9h6v6H9z"})]}),(0,d.jsx)("span",{children:"Orchestrator"})]}):(0,d.jsxs)("button",{type:"button",className:"mobile-bottom-nav__item",disabled:!0,children:[(0,d.jsxs)("svg",{fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.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,d.jsx)("path",{d:"M9 9h6v6H9z"})]}),(0,d.jsx)("span",{children:"Orchestrator"})]}):null]})}},90994:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return j}});let d=c(33666),e=c(81115),f=c(97053),g=c(70424);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},97053:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=c(35945);function e(a){let{reason:b,children:c}=a;throw Object.defineProperty(new d.BailoutToCSRError(b),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}}};
|