@sleep2agi/agent-network-dashboard 0.6.3-preview.56 → 0.6.3-preview.57
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_COMMIT +1 -1
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +9 -0
- package/.next/build-manifest.json +3 -3
- package/.next/diagnostics/route-bundle-stats.json +145 -95
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +75 -19
- package/.next/required-server-files.js +4 -4
- package/.next/required-server-files.json +4 -4
- package/.next/routes-manifest.json +63 -0
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +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 +2 -2
- package/.next/server/app/_not-found.rsc +14 -14
- package/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +13 -13
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/admin/page.js.nft.json +1 -1
- package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin.html +2 -2
- package/.next/server/app/admin.rsc +16 -16
- package/.next/server/app/admin.segments/_full.segment.rsc +16 -16
- package/.next/server/app/admin.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/api/anet/host-supervisors/route.js.nft.json +1 -1
- package/.next/server/app/api/anet/node-config/route.js +1 -1
- package/.next/server/app/api/anet/node-config/route.js.nft.json +1 -1
- package/.next/server/app/api/hub/people/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/hub/people/route/build-manifest.json +12 -0
- package/.next/server/app/api/hub/people/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/hub/people/route.js +7 -0
- package/.next/server/app/api/hub/people/route.js.map +5 -0
- package/.next/server/app/api/hub/people/route.js.nft.json +1 -0
- package/.next/server/app/api/hub/people/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/hub/requirements/[id]/checklist/[itemId]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/hub/requirements/[id]/checklist/[itemId]/route/build-manifest.json +12 -0
- package/.next/server/app/api/hub/requirements/[id]/checklist/[itemId]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/hub/requirements/[id]/checklist/[itemId]/route.js +7 -0
- package/.next/server/app/api/hub/requirements/[id]/checklist/[itemId]/route.js.map +5 -0
- package/.next/server/app/api/hub/requirements/[id]/checklist/[itemId]/route.js.nft.json +1 -0
- package/.next/server/app/api/hub/requirements/[id]/checklist/[itemId]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/hub/requirements/[id]/comments/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/hub/requirements/[id]/comments/route/build-manifest.json +12 -0
- package/.next/server/app/api/hub/requirements/[id]/comments/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/hub/requirements/[id]/comments/route.js +7 -0
- package/.next/server/app/api/hub/requirements/[id]/comments/route.js.map +5 -0
- package/.next/server/app/api/hub/requirements/[id]/comments/route.js.nft.json +1 -0
- package/.next/server/app/api/hub/requirements/[id]/comments/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/hub/requirements/[id]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/hub/requirements/[id]/route/build-manifest.json +12 -0
- package/.next/server/app/api/hub/requirements/[id]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/hub/requirements/[id]/route.js +7 -0
- package/.next/server/app/api/hub/requirements/[id]/route.js.map +5 -0
- package/.next/server/app/api/hub/requirements/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/hub/requirements/[id]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/hub/requirements/events/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/hub/requirements/events/route/build-manifest.json +12 -0
- package/.next/server/app/api/hub/requirements/events/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/hub/requirements/events/route.js +7 -0
- package/.next/server/app/api/hub/requirements/events/route.js.map +5 -0
- package/.next/server/app/api/hub/requirements/events/route.js.nft.json +1 -0
- package/.next/server/app/api/hub/requirements/events/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/hub/requirements/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/hub/requirements/route/build-manifest.json +12 -0
- package/.next/server/app/api/hub/requirements/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/hub/requirements/route.js +7 -0
- package/.next/server/app/api/hub/requirements/route.js.map +5 -0
- package/.next/server/app/api/hub/requirements/route.js.nft.json +1 -0
- package/.next/server/app/api/hub/requirements/route_client-reference-manifest.js +3 -0
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +16 -16
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/index.segments/_full.segment.rsc +16 -16
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +2 -2
- package/.next/server/app/login.rsc +16 -16
- package/.next/server/app/login.segments/_full.segment.rsc +16 -16
- package/.next/server/app/login.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/logs/page.js.nft.json +1 -1
- package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/logs.html +2 -2
- package/.next/server/app/logs.rsc +16 -16
- package/.next/server/app/logs.segments/_full.segment.rsc +16 -16
- package/.next/server/app/logs.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/messages/page.js.nft.json +1 -1
- package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
- package/.next/server/app/messages.html +2 -2
- package/.next/server/app/messages.rsc +16 -16
- package/.next/server/app/messages.segments/_full.segment.rsc +16 -16
- package/.next/server/app/messages.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/node/page.js.nft.json +1 -1
- package/.next/server/app/node/page_client-reference-manifest.js +1 -1
- package/.next/server/app/node.html +2 -2
- package/.next/server/app/node.rsc +16 -16
- package/.next/server/app/node.segments/_full.segment.rsc +16 -16
- package/.next/server/app/node.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/nodes/[alias]/page.js.nft.json +1 -1
- package/.next/server/app/nodes/[alias]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/nodes/page.js.nft.json +1 -1
- package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/nodes.html +2 -2
- package/.next/server/app/nodes.rsc +16 -16
- package/.next/server/app/nodes.segments/_full.segment.rsc +16 -16
- package/.next/server/app/nodes.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/org/page/app-paths-manifest.json +3 -0
- package/.next/server/app/org/page/build-manifest.json +20 -0
- package/.next/server/app/org/page/next-font-manifest.json +11 -0
- package/.next/server/app/org/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/org/page/server-reference-manifest.json +4 -0
- package/.next/server/app/org/page.js +13 -0
- package/.next/server/app/org/page.js.map +5 -0
- package/.next/server/app/org/page.js.nft.json +1 -0
- package/.next/server/app/org/page_client-reference-manifest.js +3 -0
- package/.next/server/app/org.html +12 -0
- package/.next/server/app/org.meta +26 -0
- package/.next/server/app/org.rsc +27 -0
- package/.next/server/app/org.segments/_full.segment.rsc +27 -0
- package/.next/server/app/org.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/org.segments/org/__PAGE__.segment.rsc +32 -0
- 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/providers/page.js.nft.json +1 -1
- package/.next/server/app/providers/page_client-reference-manifest.js +1 -1
- package/.next/server/app/providers.html +2 -2
- package/.next/server/app/providers.rsc +16 -16
- package/.next/server/app/providers.segments/_full.segment.rsc +16 -16
- package/.next/server/app/providers.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/providers.segments/providers/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/requirements/[id]/page/app-paths-manifest.json +3 -0
- package/.next/server/app/requirements/[id]/page/build-manifest.json +20 -0
- package/.next/server/app/requirements/[id]/page/next-font-manifest.json +11 -0
- package/.next/server/app/requirements/[id]/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/requirements/[id]/page/server-reference-manifest.json +4 -0
- package/.next/server/app/requirements/[id]/page.js +13 -0
- package/.next/server/app/requirements/[id]/page.js.map +5 -0
- package/.next/server/app/requirements/[id]/page.js.nft.json +1 -0
- package/.next/server/app/requirements/[id]/page_client-reference-manifest.js +3 -0
- package/.next/server/app/requirements/page/app-paths-manifest.json +3 -0
- package/.next/server/app/requirements/page/build-manifest.json +20 -0
- package/.next/server/app/requirements/page/next-font-manifest.json +11 -0
- package/.next/server/app/requirements/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/requirements/page/server-reference-manifest.json +4 -0
- package/.next/server/app/requirements/page.js +13 -0
- package/.next/server/app/requirements/page.js.map +5 -0
- package/.next/server/app/requirements/page.js.nft.json +1 -0
- package/.next/server/app/requirements/page_client-reference-manifest.js +3 -0
- package/.next/server/app/requirements.html +12 -0
- package/.next/server/app/requirements.meta +26 -0
- package/.next/server/app/requirements.rsc +27 -0
- package/.next/server/app/requirements.segments/_full.segment.rsc +27 -0
- package/.next/server/app/requirements.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/requirements.segments/requirements/__PAGE__.segment.rsc +32 -0
- package/.next/server/app/scheduled-tasks/page.js.nft.json +1 -1
- package/.next/server/app/scheduled-tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/scheduled-tasks.html +2 -2
- package/.next/server/app/scheduled-tasks.rsc +16 -16
- package/.next/server/app/scheduled-tasks.segments/_full.segment.rsc +16 -16
- package/.next/server/app/scheduled-tasks.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/scheduled-tasks.segments/scheduled-tasks/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/server-logs/page.js.nft.json +1 -1
- package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs.html +2 -2
- package/.next/server/app/server-logs.rsc +16 -16
- package/.next/server/app/server-logs.segments/_full.segment.rsc +16 -16
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/servers/page.js.nft.json +1 -1
- package/.next/server/app/servers/page_client-reference-manifest.js +1 -1
- package/.next/server/app/servers.html +2 -2
- package/.next/server/app/servers.rsc +16 -16
- package/.next/server/app/servers.segments/_full.segment.rsc +16 -16
- package/.next/server/app/servers.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/servers.segments/servers/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/settings/networks/page.js.nft.json +1 -1
- package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/networks.html +2 -2
- package/.next/server/app/settings/networks.rsc +16 -16
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +16 -16
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens/page.js.nft.json +1 -1
- package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens.html +2 -2
- package/.next/server/app/settings/tokens.rsc +16 -16
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +16 -16
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +16 -16
- package/.next/server/app/settings.segments/_full.segment.rsc +16 -16
- package/.next/server/app/settings.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/skillhub/page.js.nft.json +1 -1
- package/.next/server/app/skillhub/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skillhub.html +2 -2
- package/.next/server/app/skillhub.rsc +16 -16
- package/.next/server/app/skillhub.segments/_full.segment.rsc +16 -16
- package/.next/server/app/skillhub.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/skillhub.segments/skillhub/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/tasks/[id]/page.js.nft.json +1 -1
- package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks/page.js.nft.json +1 -1
- package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks.html +2 -2
- package/.next/server/app/tasks.rsc +16 -16
- package/.next/server/app/tasks.segments/_full.segment.rsc +16 -16
- package/.next/server/app/tasks.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +15 -15
- package/.next/server/app-paths-manifest.json +9 -0
- package/.next/server/chunks/1oeh_server_app_api_hub_requirements_[id]_checklist_[itemId]_route_actions_05mpe5a.js +3 -0
- package/.next/server/chunks/1oeh_server_app_api_hub_requirements_[id]_checklist_[itemId]_route_actions_05mpe5a.js.map +1 -0
- package/.next/server/chunks/1oeh_server_app_api_hub_requirements_[id]_comments_route_actions_1lv4qr1.js +3 -0
- package/.next/server/chunks/1oeh_server_app_api_hub_requirements_[id]_comments_route_actions_1lv4qr1.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0-wvy_a._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0-wvy_a._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__053z4wp._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__053z4wp._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0if0bw1._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0if0bw1._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0liwkmx._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0liwkmx._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0q9xwca._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0q9xwca._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1941b2h._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1941b2h._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1_rzyvn._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1_rzyvn._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1vua9gf._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1vua9gf._.js.map +1 -0
- package/.next/server/chunks/_05lpz54._.js +1 -1
- package/.next/server/chunks/_05lpz54._.js.map +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_hub_people_route_actions_01pw78e.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_hub_people_route_actions_01pw78e.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_hub_requirements_[id]_route_actions_1jkq5c6.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_hub_requirements_[id]_route_actions_1jkq5c6.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_hub_requirements_events_route_actions_1ypnpu5.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_hub_requirements_events_route_actions_1ypnpu5.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_hub_requirements_route_actions_1lyeno6.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_hub_requirements_route_actions_1lyeno6.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0-94ipy._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0-94ipy._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__09n7eih._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__09n7eih._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ol09h3._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ol09h3._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__14k36ti._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__14k36ti._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1bn1jjm._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1bn1jjm._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1ovdbox._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1ovdbox._.js.map +1 -1
- package/.next/server/chunks/ssr/_0q4m25o._.js +0 -0
- package/.next/server/chunks/ssr/_0q4m25o._.js.map +1 -1
- package/.next/server/chunks/ssr/_1z1o6o3._.js +0 -0
- package/.next/server/chunks/ssr/_1z1o6o3._.js.map +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_org_page_actions_0hbcef1.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_org_page_actions_0hbcef1.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_requirements_[id]_page_actions_1wjoy4l.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_requirements_[id]_page_actions_1wjoy4l.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_requirements_page_actions_0x9m0gy.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_requirements_page_actions_0x9m0gy.js.map +1 -0
- package/.next/server/chunks/ssr/app_05mfyco._.js +3 -0
- package/.next/server/chunks/ssr/app_05mfyco._.js.map +1 -0
- package/.next/server/chunks/ssr/{app_0_s8u96._.js → app_07bzc6w._.js} +1 -1
- package/.next/server/chunks/ssr/app_099f0wg._.js +3 -0
- package/.next/server/chunks/ssr/app_099f0wg._.js.map +1 -0
- package/.next/server/chunks/ssr/{app_1oxcq68._.js → app_0g7oz9w._.js} +1 -1
- package/.next/server/chunks/ssr/app_0iz553k._.js +1 -1
- package/.next/server/chunks/ssr/app_0iz553k._.js.map +1 -1
- package/.next/server/chunks/ssr/app_0los-eu._.js +1 -1
- package/.next/server/chunks/ssr/app_0los-eu._.js.map +1 -1
- package/.next/server/chunks/ssr/{app_0x7s72b._.js → app_0tt2ueo._.js} +1 -1
- package/.next/server/chunks/ssr/{app_081zy6c._.js → app_0ugqkd7._.js} +1 -1
- package/.next/server/chunks/ssr/app_1auk3il._.js +11 -0
- package/.next/server/chunks/ssr/app_1auk3il._.js.map +1 -0
- package/.next/server/chunks/ssr/{app_0o4bxq0._.js → app_1e91uc-._.js} +1 -1
- package/.next/server/chunks/ssr/{app_1psh956._.js → app_1f96aq_._.js} +1 -1
- package/.next/server/chunks/ssr/app_1rma_8a._.js +11 -0
- package/.next/server/chunks/ssr/app_1rma_8a._.js.map +1 -0
- package/.next/server/chunks/ssr/{app_0_dhiwi._.js → app_1ua57bx._.js} +1 -1
- package/.next/server/chunks/ssr/app_components_04a31va._.js +1 -1
- package/.next/server/chunks/ssr/app_components_04a31va._.js.map +1 -1
- package/.next/server/chunks/ssr/{app_lib_10o69j_._.js → app_lib_20-pe_0._.js} +2 -2
- package/.next/server/chunks/ssr/{app_lib_10o69j_._.js.map → app_lib_20-pe_0._.js.map} +1 -1
- package/.next/server/chunks/ssr/app_nodes_NodesView_tsx_1w6_d8p._.js +2 -2
- package/.next/server/chunks/ssr/app_nodes_NodesView_tsx_1w6_d8p._.js.map +1 -1
- package/.next/server/chunks/ssr/app_page_tsx_0pxmutw._.js +1 -1
- package/.next/server/chunks/ssr/app_page_tsx_0pxmutw._.js.map +1 -1
- package/.next/server/chunks/ssr/app_scheduled-tasks_page_tsx_0xs70_6._.js +1 -1
- package/.next/server/chunks/ssr/app_scheduled-tasks_page_tsx_0xs70_6._.js.map +1 -1
- package/.next/server/chunks/ssr/app_tasks_TasksView_tsx_068vqml._.js +1 -1
- package/.next/server/chunks/ssr/app_tasks_TasksView_tsx_068vqml._.js.map +1 -1
- package/.next/server/functions-config-manifest.json +4 -0
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/middleware.js.nft.json +1 -1
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +12 -0
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/500.html +1 -1
- package/.next/server/prefetch-hints.json +28 -0
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/{trj9RsCWuEDMfq9BuoKfl → _HZB6K84VKNaxf1K7dqqj}/_clientMiddlewareManifest.js +4 -0
- package/.next/static/chunks/{27b9kqyo7bmdr.js → 08-obrj2goweb.js} +2 -2
- package/.next/static/chunks/{0agh8mvmpke4j.js → 0cuzbmf4k1kgl.js} +1 -1
- package/.next/static/chunks/0fih4pzed1syn.js +9 -0
- package/.next/static/chunks/0iiu4-g5k8jcq.js +1 -0
- package/.next/static/chunks/{37booeyruo9_l.js → 0iz44n632kw4w.js} +1 -1
- package/.next/static/chunks/0jt-1caejz1jv.js +1 -0
- package/.next/static/chunks/0k-4980o5t7_r.css +1 -0
- package/.next/static/chunks/114pblaedlrqs.js +1 -0
- package/.next/static/chunks/1tcaw8g6u6o-4.js +1 -0
- package/.next/static/chunks/1v5-qgib9884o.js +0 -0
- package/.next/static/chunks/{02303d1rbqx74.js → 2-x9r-1t3c1mn.js} +1 -1
- package/.next/static/chunks/{28o3ssg0_q2n-.js → 21djd6ixldlx0.js} +1 -1
- package/.next/static/chunks/2anlzel60my8y.js +2 -0
- package/.next/static/chunks/{3jxk7q1jxyvol.js → 2juzvtg9ne4yt.js} +1 -1
- package/.next/static/chunks/3cb3_kcec7bms.js +1 -0
- package/.next/static/chunks/{233p45nuh4m5b.css → 3d-1vk5hzu5rq.css} +2 -2
- package/.next/static/chunks/3shtxab8cmux9.js +1 -0
- package/.next/static/chunks/3u059pjgl4gcw.js +1 -0
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/.next/types/routes.d.ts +11 -2
- package/.next/types/validator.ts +81 -0
- package/.vercel/.env.development.local +2 -0
- package/.vercel/.env.production.local +25 -0
- package/.vercel/README.txt +11 -0
- package/.vercel/output/builds.json +23 -0
- package/.vercel/output/config.json +489 -0
- package/.vercel/output/diagnostics/build-diagnostics.json +6 -0
- package/.vercel/output/diagnostics/cli_traces.json +1 -0
- package/.vercel/output/diagnostics/framework.json +1 -0
- package/.vercel/output/diagnostics/route-bundle-stats.json +245 -0
- package/.vercel/output/diagnostics/trace +2 -0
- package/.vercel/output/diagnostics/trace-build +1 -0
- package/.vercel/output/diagnostics/turbopack +0 -0
- package/.vercel/output/functions/_global-error.prerender-config.json +38 -0
- package/.vercel/output/functions/_global-error.prerender-fallback.html +1 -0
- package/.vercel/output/functions/_global-error.rsc.func/.next/routes-manifest.json +1 -0
- package/.vercel/output/functions/_global-error.rsc.func/.next/server/app-paths-manifest.json +1 -0
- package/.vercel/output/functions/_global-error.rsc.func/.next/server/pages-manifest.json +1 -0
- package/.vercel/output/functions/_global-error.rsc.func/.vc-config.json +807 -0
- package/.vercel/output/functions/_global-error.rsc.func/___next_launcher.cjs +68 -0
- package/.vercel/output/functions/_global-error.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/_global-error.rsc.prerender-fallback.rsc +15 -0
- package/.vercel/output/functions/_global-error.segments/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_global-error.segments/__PAGE__.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/_global-error.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_global-error.segments/_full.segment.rsc.prerender-fallback.rsc +15 -0
- package/.vercel/output/functions/_global-error.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_global-error.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/_global-error.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_global-error.segments/_index.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/_global-error.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_global-error.segments/_tree.segment.rsc.prerender-fallback.rsc +1 -0
- package/.vercel/output/functions/_middleware.func/.vc-config.json +107 -0
- package/.vercel/output/functions/_middleware.func/___next_launcher.cjs +135 -0
- package/.vercel/output/functions/_not-found.prerender-config.json +38 -0
- package/.vercel/output/functions/_not-found.prerender-fallback.html +12 -0
- package/.vercel/output/functions/_not-found.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/_not-found.rsc.prerender-fallback.rsc +21 -0
- package/.vercel/output/functions/_not-found.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_not-found.segments/_full.segment.rsc.prerender-fallback.rsc +21 -0
- package/.vercel/output/functions/_not-found.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_not-found.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/_not-found.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_not-found.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/_not-found.segments/_not-found/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_not-found.segments/_not-found/__PAGE__.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/_not-found.segments/_not-found.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_not-found.segments/_not-found.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/_not-found.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_not-found.segments/_tree.segment.rsc.prerender-fallback.rsc +3 -0
- package/.vercel/output/functions/admin.prerender-config.json +37 -0
- package/.vercel/output/functions/admin.prerender-fallback.html +12 -0
- package/.vercel/output/functions/admin.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/admin.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/admin.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/admin.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/admin.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/admin.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/admin.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/admin.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/admin.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/admin.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/admin.segments/admin/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/admin.segments/admin/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/admin.segments/admin.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/admin.segments/admin.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/api/anet/config.func/.next/routes-manifest.json +1 -0
- package/.vercel/output/functions/api/anet/config.func/.next/server/app-paths-manifest.json +1 -0
- package/.vercel/output/functions/api/anet/config.func/.next/server/pages-manifest.json +1 -0
- package/.vercel/output/functions/api/anet/config.func/.vc-config.json +818 -0
- package/.vercel/output/functions/api/anet/config.func/___next_launcher.cjs +68 -0
- package/.vercel/output/functions/index.prerender-config.json +38 -0
- package/.vercel/output/functions/index.prerender-fallback.html +12 -0
- package/.vercel/output/functions/index.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/index.rsc.prerender-fallback.rsc +25 -0
- package/.vercel/output/functions/index.segments/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/index.segments/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/index.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/index.segments/_full.segment.rsc.prerender-fallback.rsc +25 -0
- package/.vercel/output/functions/index.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/index.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/index.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/index.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/index.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/index.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/login.prerender-config.json +37 -0
- package/.vercel/output/functions/login.prerender-fallback.html +6 -0
- package/.vercel/output/functions/login.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/login.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/login.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/login.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/login.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/login.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/login.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/login.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/login.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/login.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/login.segments/login/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/login.segments/login/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/login.segments/login.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/login.segments/login.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/logs.prerender-config.json +37 -0
- package/.vercel/output/functions/logs.prerender-fallback.html +12 -0
- package/.vercel/output/functions/logs.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/logs.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/logs.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/logs.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/logs.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/logs.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/logs.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/logs.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/logs.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/logs.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/logs.segments/logs/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/logs.segments/logs/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/logs.segments/logs.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/logs.segments/logs.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/manifest.webmanifest.func/.next/routes-manifest.json +1 -0
- package/.vercel/output/functions/manifest.webmanifest.func/.next/server/app-paths-manifest.json +1 -0
- package/.vercel/output/functions/manifest.webmanifest.func/.next/server/pages-manifest.json +1 -0
- package/.vercel/output/functions/manifest.webmanifest.func/.vc-config.json +715 -0
- package/.vercel/output/functions/manifest.webmanifest.func/___next_launcher.cjs +68 -0
- package/.vercel/output/functions/manifest.webmanifest.prerender-config.json +38 -0
- package/.vercel/output/functions/manifest.webmanifest.prerender-fallback.body +1 -0
- package/.vercel/output/functions/messages.prerender-config.json +37 -0
- package/.vercel/output/functions/messages.prerender-fallback.html +12 -0
- package/.vercel/output/functions/messages.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/messages.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/messages.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/messages.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/messages.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/messages.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/messages.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/messages.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/messages.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/messages.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/messages.segments/messages/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/messages.segments/messages/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/messages.segments/messages.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/messages.segments/messages.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/node.prerender-config.json +37 -0
- package/.vercel/output/functions/node.prerender-fallback.html +12 -0
- package/.vercel/output/functions/node.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/node.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/node.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/node.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/node.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/node.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/node.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/node.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/node.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/node.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/node.segments/node/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/node.segments/node/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/node.segments/node.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/node.segments/node.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/nodes.prerender-config.json +37 -0
- package/.vercel/output/functions/nodes.prerender-fallback.html +12 -0
- package/.vercel/output/functions/nodes.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/nodes.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/nodes.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/nodes.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/nodes.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/nodes.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/nodes.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/nodes.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/nodes.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/nodes.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/nodes.segments/nodes/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/nodes.segments/nodes/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/nodes.segments/nodes.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/nodes.segments/nodes.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/server-logs.prerender-config.json +37 -0
- package/.vercel/output/functions/server-logs.prerender-fallback.html +12 -0
- package/.vercel/output/functions/server-logs.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/server-logs.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/server-logs.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/server-logs.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/server-logs.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/server-logs.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/server-logs.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/server-logs.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/server-logs.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/server-logs.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/server-logs.segments/server-logs/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/server-logs.segments/server-logs/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/server-logs.segments/server-logs.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/server-logs.segments/server-logs.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/servers.prerender-config.json +37 -0
- package/.vercel/output/functions/servers.prerender-fallback.html +12 -0
- package/.vercel/output/functions/servers.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/servers.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/servers.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/servers.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/servers.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/servers.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/servers.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/servers.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/servers.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/servers.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/servers.segments/servers/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/servers.segments/servers/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/servers.segments/servers.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/servers.segments/servers.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings/networks.prerender-config.json +37 -0
- package/.vercel/output/functions/settings/networks.prerender-fallback.html +12 -0
- package/.vercel/output/functions/settings/networks.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/settings/networks.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/settings/networks.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/networks.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/settings/networks.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/networks.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/settings/networks.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/networks.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/settings/networks.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/networks.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings/networks.segments/settings/networks/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/networks.segments/settings/networks/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/settings/networks.segments/settings/networks.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/networks.segments/settings/networks.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings/networks.segments/settings.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/networks.segments/settings.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings/tokens.prerender-config.json +37 -0
- package/.vercel/output/functions/settings/tokens.prerender-fallback.html +12 -0
- package/.vercel/output/functions/settings/tokens.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/settings/tokens.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/settings/tokens.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/tokens.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/settings/tokens.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/tokens.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/settings/tokens.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/tokens.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/settings/tokens.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/tokens.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/settings/tokens.segments/settings/tokens.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/tokens.segments/settings/tokens.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings/tokens.segments/settings.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/tokens.segments/settings.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings.prerender-config.json +37 -0
- package/.vercel/output/functions/settings.prerender-fallback.html +12 -0
- package/.vercel/output/functions/settings.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/settings.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/settings.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/settings.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/settings.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/settings.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings.segments/settings/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings.segments/settings/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/settings.segments/settings.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings.segments/settings.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/tasks/[id].func/.next/routes-manifest.json +1 -0
- package/.vercel/output/functions/tasks/[id].func/.next/server/app-paths-manifest.json +1 -0
- package/.vercel/output/functions/tasks/[id].func/.next/server/pages-manifest.json +1 -0
- package/.vercel/output/functions/tasks/[id].func/.vc-config.json +713 -0
- package/.vercel/output/functions/tasks/[id].func/___next_launcher.cjs +68 -0
- package/.vercel/output/functions/tasks.prerender-config.json +37 -0
- package/.vercel/output/functions/tasks.prerender-fallback.html +12 -0
- package/.vercel/output/functions/tasks.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/tasks.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/tasks.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/tasks.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/tasks.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/tasks.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/tasks.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/tasks.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/tasks.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/tasks.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/tasks.segments/tasks/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/tasks.segments/tasks/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/tasks.segments/tasks.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/tasks.segments/tasks.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/static/404.html +12 -0
- package/.vercel/output/static/404.rsc.json +1 -0
- package/.vercel/output/static/404.segments/_tree.segment.rsc.json +1 -0
- package/.vercel/output/static/500.html +1 -0
- package/.vercel/output/static/500.rsc.json +1 -0
- package/.vercel/output/static/500.segments/_tree.segment.rsc.json +1 -0
- package/.vercel/output/static/_next/__private/trace +2 -0
- package/.vercel/output/static/_next/static/TakLsJFW-DjjhsqoZu3Ok/_buildManifest.js +11 -0
- package/.vercel/output/static/_next/static/TakLsJFW-DjjhsqoZu3Ok/_clientMiddlewareManifest.js +42 -0
- package/.vercel/output/static/_next/static/TakLsJFW-DjjhsqoZu3Ok/_ssgManifest.js +1 -0
- package/.vercel/output/static/_next/static/chunks/00~h525bo.q7f.js +1 -0
- package/.vercel/output/static/_next/static/chunks/01xlw8hd842-c.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0257pdz1-imal.js +2 -0
- package/.vercel/output/static/_next/static/chunks/03~yq9q893hmn.js +1 -0
- package/.vercel/output/static/_next/static/chunks/04uju~n5s9g7..css +1 -0
- package/.vercel/output/static/_next/static/chunks/066jf0nk75nic.css +2 -0
- package/.vercel/output/static/_next/static/chunks/085gdrlppedvd.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0a5rikwbpt8_7.js +4 -0
- package/.vercel/output/static/_next/static/chunks/0b9r.-87w.lvh.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0ced2tacwy8v7.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0e-.zgw81gela.js +31 -0
- package/.vercel/output/static/_next/static/chunks/0gu130fpple04.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0jmypv56.iwft.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0krr-nvdwqdj1.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0mqs00d_9jvzx.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0ore4vqiwv2nx.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0pqt~8bl3ukh4.js +4 -0
- package/.vercel/output/static/_next/static/chunks/0q.t7da_-e4yl.js +4 -0
- package/.vercel/output/static/_next/static/chunks/0q3rj30g1oodv.js +7 -0
- package/.vercel/output/static/_next/static/chunks/0qp3_l.t4nzzq.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0qy1ci2dqfaqg.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0u359llqm1_01.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0u7ftv8celiqa.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0~ijg-d65glam.js +1 -0
- package/.vercel/output/static/_next/static/chunks/14bsg3_-taiw4.js +1 -0
- package/.vercel/output/static/_next/static/chunks/168q2d2bi7swr.js +7 -0
- package/.vercel/output/static/_next/static/chunks/16aqsgrwba4zk.js +1 -0
- package/.vercel/output/static/_next/static/chunks/16tw8s4cce9_x.js +1 -0
- package/.vercel/output/static/_next/static/chunks/turbopack-01f1xs~cq_~si.js +1 -0
- package/.vercel/output/static/_next/static/media/4fa387ec64143e14-s.0wkzw~je483f-.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/5ce348bf30bf5439-s.0zgw-jeven.3w.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/6306c77e7c8268e4-s.0rhz0arwfsn~5.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/7178b3e590c64307-s.0nx0ww8fni_q3.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/797e433ab948586e-s.p.08e28id.o-okb.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/7d817b4c03b0c5f1-s.0l76wvqk9d84w.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/bbc41e54d2fcbd21-s.0k4k9394f2q-k.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/favicon.0x3dzn~oxb6tn.ico +0 -0
- package/.vercel/output/static/_next/static/media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2 +0 -0
- package/.vercel/output/static/_next/static/not-found.txt +1 -0
- package/.vercel/project.json +16 -0
- package/AGENTS.md +9 -0
- package/CLAUDE.md +1 -0
- package/README.md +1 -0
- package/app/api/anet/host-supervisors/route.ts +63 -2
- package/app/api/anet/node-config/route.ts +145 -168
- package/app/api/hub/people/route.ts +48 -0
- package/app/api/hub/requirements/[id]/checklist/[itemId]/route.ts +54 -0
- package/app/api/hub/requirements/[id]/comments/route.ts +51 -0
- package/app/api/hub/requirements/[id]/route.ts +89 -0
- package/app/api/hub/requirements/events/route.ts +45 -0
- package/app/api/hub/requirements/route.ts +53 -0
- package/app/components/CreateNodeWizard.tsx +7 -2
- package/app/components/HostSupervisorPicker.tsx +76 -29
- package/app/components/NodeSettingsPanel.tsx +28 -25
- package/app/components/Sidebar.tsx +4 -0
- package/app/components/TaskChatPanel.tsx +6 -6
- package/app/components/TaskDetail.tsx +8 -7
- package/app/components/TaskList.tsx +6 -7
- package/app/components/TopoGraph.tsx +3 -2
- package/app/lib/time.ts +23 -0
- package/app/org/page.tsx +222 -0
- package/app/requirements/[id]/page.tsx +361 -0
- package/app/requirements/page.tsx +279 -0
- package/app/scheduled-tasks/page.tsx +98 -13
- package/apps/desktop/icon.png +0 -0
- package/bun.lock +1688 -0
- package/electron-builder.json +5 -1
- package/package.json +4 -2
- package/proxy.ts +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0dwa10z._.js +0 -11
- package/.next/server/chunks/ssr/[root-of-the-server]__0dwa10z._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__202xetf._.js +0 -11
- package/.next/server/chunks/ssr/[root-of-the-server]__202xetf._.js.map +0 -1
- package/.next/static/chunks/0pton-t_-fqyu.css +0 -1
- package/.next/static/chunks/0z8vfpga444t1.js +0 -1
- package/.next/static/chunks/14c8u_tcund0g.js +0 -0
- package/.next/static/chunks/2kp8-5cyc-jbg.js +0 -1
- package/.next/static/chunks/3a53_ky07bdhz.js +0 -9
- package/.next/static/chunks/3im40-b21df3u.js +0 -2
- package/.next/static/chunks/3tnbxlq42_jjv.js +0 -1
- /package/.next/server/chunks/ssr/{app_0_s8u96._.js.map → app_07bzc6w._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{app_0o4bxq0._.js.map → app_0g7oz9w._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{app_0x7s72b._.js.map → app_0tt2ueo._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{app_081zy6c._.js.map → app_0ugqkd7._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{app_1oxcq68._.js.map → app_1e91uc-._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{app_1psh956._.js.map → app_1f96aq_._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{app_0_dhiwi._.js.map → app_1ua57bx._.js.map} +0 -0
- /package/.next/static/{trj9RsCWuEDMfq9BuoKfl → _HZB6K84VKNaxf1K7dqqj}/_buildManifest.js +0 -0
- /package/.next/static/{trj9RsCWuEDMfq9BuoKfl → _HZB6K84VKNaxf1K7dqqj}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[97715,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(43515),e=a.i(44332),f=a.i(64565),g=a.i(22397);function h({networkId:a,value:d,onChange:e}){let[f,g]=(0,c.useState)("loading"),[k,l]=(0,c.useState)([]),[m,n]=(0,c.useState)(
|
|
2
|
-
anet daemon up my-daemon`}),(0,b.jsx)("p",{className:"mt-2 text-gray-500",children:"注册成功后这里会自动出现,无需刷新。"})]});if(1===k.length&&!o){let a=k[0];return(0,b.jsxs)("div",{className:"rounded-md border border-cyan-700/40 bg-cyan-900/10 px-3 py-3 text-xs text-cyan-100",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{className:"text-cyan-400/80",children:"将在"})," ",(0,b.jsx)("span",{className:"font-semibold",children:a.alias}),(0,b.jsxs)("span",{className:"text-cyan-300/60",children:[" (",a.hostname||"—",") "]}),(0,b.jsx)("span",{className:"text-cyan-400/80",children:"上创建"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>p(!0),className:"text-[11px] text-cyan-400 hover:text-cyan-200 underline-offset-2 hover:underline",children:"详情 →"})]}),(0,b.jsx)(j,{runtimes:a.runtimes_supported,className:"mt-1"})]})}return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs text-gray-400",children:[(0,b.jsxs)("span",{children:["选择一台 host_supervisor 节点(",k.length," 台在线)"]}),o&&1===k.length&&(0,b.jsx)("button",{type:"button",onClick:()=>p(!1),className:"text-[11px] text-gray-500 hover:text-gray-300",children:"← 折叠"})]}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-2 md:grid-cols-2 lg:grid-cols-3",children:k.map(a=>(0,b.jsx)(i,{daemon:a,selected:a.daemon_node_id===d,onClick:()=>e(a.daemon_node_id,a)},a.daemon_node_id))})]})}function i({daemon:a,selected:c,onClick:d}){let e=a.host_telemetry?.alert_level||"gray";return(0,b.jsxs)("button",{type:"button",onClick:d,"aria-pressed":c,className:`flex w-full flex-col gap-1.5 rounded-md border px-3 py-2.5 text-left text-xs transition-colors ${c?"border-cyan-600 bg-cyan-900/15 text-cyan-100":"border-[#26262b] bg-[#0e0e10] text-gray-300 hover:border-[#3a3a41]"}`,children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"truncate font-semibold",children:a.alias}),(0,b.jsx)(k,{level:e})]}),(0,b.jsx)("div",{className:"truncate text-[11px] text-gray-500",children:a.hostname||"—"}),(0,b.jsx)(j,{runtimes:a.runtimes_supported}),(a.host_telemetry?.cpu_cores!=null||a.host_telemetry?.mem_gb!=null)&&(0,b.jsxs)("div",{className:"flex gap-3 text-[10px] text-gray-500",children:[a.host_telemetry?.cpu_cores!=null&&(0,b.jsxs)("span",{children:[a.host_telemetry.cpu_cores," 核"]}),a.host_telemetry?.mem_gb!=null&&(0,b.jsxs)("span",{children:[a.host_telemetry.mem_gb," GB"]})]})]})}function j({runtimes:a,className:c=""}){return a&&0!==a.length?(0,b.jsx)("div",{className:`flex flex-wrap gap-1 ${c}`,children:a.map(a=>(0,b.jsx)("span",{className:"rounded bg-[#1c1c1f] px-1.5 py-0.5 text-[10px] text-gray-400",children:a},a))}):(0,b.jsx)("div",{className:`text-[10px] text-gray-600 ${c}`,children:"runtimes_supported: —"})}function k({level:a}){return(0,b.jsx)("span",{className:`rounded border px-1.5 py-0.5 text-[10px] ${{green:"bg-green-600/20 text-green-300 border-green-700/40",yellow:"bg-amber-600/20 text-amber-300 border-amber-700/40",red:"bg-red-600/20 text-red-300 border-red-700/40",gray:"bg-gray-600/20 text-gray-400 border-gray-700/40"}[a]}`,children:{green:"正常",yellow:"注意",red:"警报",gray:"离线"}[a]})}let l=[{id:"claude-agent-sdk",label:"Claude Agent SDK",models:["deepseek-v4-pro","MiniMax-M3","claude-sonnet-4-6","claude-opus-4-x"],defaultModel:"claude-sonnet-4-6"},{id:"codex-sdk",label:"Codex SDK",models:["gpt-5.5"],defaultModel:"gpt-5.5"},{id:"grok-build-acp",label:"Grok (build-acp)",models:["grok-build"],defaultModel:"grok-build"}],m=["default","acceptEdits","plan","bypassPermissions"],n=["服务器","名字","Runtime","模型","参数","确认"];function o({networkId:a,onClose:d,onCreated:e}){let[f,i]=(0,c.useState)(0),[j,k]=(0,c.useState)(null),[p,q]=(0,c.useState)(null),[r,s]=(0,c.useState)(""),[t,u]=(0,c.useState)(l[0].id),[v,w]=(0,c.useState)(""),[x,y]=(0,c.useState)("default"),[z,A]=(0,c.useState)(""),[B,C]=(0,c.useState)(""),[D,E]=(0,c.useState)(""),[F,G]=(0,c.useState)("form"),[H,I]=(0,c.useState)(""),[J,K]=(0,c.useState)(!1),{networkId:L}=(0,g.useNetworkId)(),M=a||L;(0,c.useEffect)(()=>{let a=a=>{"Escape"===a.key&&"creating"!==F&&d()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[d,F]),(0,c.useEffect)(()=>{if("done"!==F||J)return;let a=!0,b=0,c=r.trim(),d=async()=>{b+=1;try{let b=M?`/api/hub/status?network_id=${encodeURIComponent(M)}`:"/api/hub/status",d=await fetch(b,{cache:"no-store"}),e=await d.json().catch(()=>({})),f=Array.isArray(e?.sessions)?e.sessions:Array.isArray(e)?e:[];if(a&&f.some(a=>a?.alias===c))return void K(!0)}catch{}a&&b<16&&window.setTimeout(d,1500)},e=window.setTimeout(d,1200);return()=>{a=!1,window.clearTimeout(e)}},[F,J,M,r]);let N=l.find(a=>a.id===t)||l[0],O=r.trim().length>0,P=0===f&&!!j||1===f&&O||f>=2&&f<n.length,Q="creating"===F;async function R(){G("creating"),I("");let b=a=>""===a.trim()?void 0:Number(a),c=v||N.defaultModel,d={name:r.trim(),runtime:t,model:c,flags:{permissionMode:x,maxTurns:b(z),budget:b(B),timeout:b(D)}};try{let b=await fetch("/api/anet/node-create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({node_spec:d,...j?{daemon_node_id:j}:{},...a?{network_id:a}:{}})}),c=await b.json().catch(()=>({}));b.ok&&c?.ok?(G("done"),I("创建请求已下发,节点正在拉起…"),e?.(c.result)):c?.unconfirmed?(G("unconfirmed"),I(`后端 create_node 未就绪:${c?.error||"不可用"}(测试 hub 可能未含 #299)`)):(G("error"),I(c?.error?`创建失败:${c.error}`:"创建失败"))}catch(a){G("error"),I(`创建失败:${a instanceof Error?a.message:"网络错误"}`)}}let S="w-full rounded-md border border-[#26262b] bg-[#0e0e10] px-3 py-2 text-sm text-gray-200 focus:border-cyan-600 focus:outline-none";return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40",onClick:d,"aria-hidden":!0}),(0,b.jsxs)("div",{role:"dialog","aria-label":"新建节点",className:"fixed left-1/2 top-1/2 z-50 w-[min(94vw,440px)] md:w-[min(92vw,720px)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-[#26262b] bg-[#161618] shadow-2xl",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-[#26262b] px-4 py-3",children:[(0,b.jsx)("div",{className:"text-sm font-semibold text-white",children:"新建节点"}),(0,b.jsx)("button",{onClick:d,"aria-label":"关闭",className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-gray-500 hover:bg-[var(--hover-tint)] hover:text-[var(--fg)]",children:(0,b.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":!0,children:(0,b.jsx)("path",{d:"M18 6 6 18M6 6l12 12"})})})]}),(0,b.jsx)("div",{className:"flex items-center gap-1.5 px-4 pt-3",children:n.map((a,c)=>(0,b.jsxs)("div",{className:"flex flex-1 flex-col items-center gap-1",children:[(0,b.jsx)("div",{className:`h-1 w-full rounded-full ${c<=f?"bg-cyan-500":"bg-[#26262b]"}`}),(0,b.jsx)("span",{className:`text-[10px] ${c===f?"text-cyan-300":"text-gray-600"}`,children:a})]},a))}),(0,b.jsx)("div",{className:"min-h-[180px] px-4 py-4",children:"form"!==F?(0,b.jsxs)("div",{className:"flex h-[180px] flex-col items-center justify-center gap-3 text-center",children:[Q&&(0,b.jsxs)("svg",{className:"h-7 w-7 animate-spin text-cyan-400",viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,children:[(0,b.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,b.jsx)("path",{className:"opacity-90",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})]}),(0,b.jsx)("div",{className:`text-sm ${"done"===F?"text-green-300":"error"===F?"text-red-300":"unconfirmed"===F?"text-amber-300":"text-gray-300"}`,children:Q?"正在创建…":"done"===F&&J?`✓ ${r.trim()} 已上线`:H}),"done"===F&&(J?(0,b.jsx)("p",{className:"text-[11px] text-green-500/80",children:"节点已注册,已出现在节点列表。"}):(0,b.jsxs)("p",{className:"inline-flex items-center gap-1.5 text-[11px] text-gray-500",children:[(0,b.jsxs)("svg",{className:"h-3 w-3 animate-spin",viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,children:[(0,b.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,b.jsx)("path",{className:"opacity-90",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})]}),"正在监测 ",r.trim()," 注册…(最长 ~24s)"]}))]}):(0,b.jsxs)(b.Fragment,{children:[0===f&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("span",{className:"text-xs text-gray-400",children:"在哪台机器上创建"}),(0,b.jsx)(h,{networkId:M||void 0,value:j,onChange:(a,b)=>{k(a),q(b);let c=b?.runtimes_supported;c&&c.length>0&&!c.includes(t)&&(u(c[0]),w(""))}}),!j&&(0,b.jsxs)("p",{className:"text-[11px] text-gray-600",children:["没选服务器之前无法继续;如果列表是空的,按提示在目标机器上跑 ",(0,b.jsx)("code",{className:"rounded bg-[var(--code-bg)] px-1 py-0.5",children:"anet daemon up <name>"}),"。"]})]}),1===f&&(0,b.jsxs)("label",{className:"block space-y-1.5",children:[(0,b.jsx)("span",{className:"text-xs text-gray-400",children:"节点名字"}),(0,b.jsx)("input",{autoFocus:!0,value:r,onChange:a=>s(a.target.value),placeholder:"例如 my-agent-1",className:S}),!O&&(0,b.jsx)("span",{className:"text-[11px] text-gray-600",children:"名字不能为空"})]}),2===f&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("span",{className:"text-xs text-gray-400",children:["Runtime",p?`(${p.alias} 支持)`:""]}),l.map(a=>{let c=p?.runtimes_supported,d=Array.isArray(c)&&c.length>0&&!c.includes(a.id),e=t===a.id;return(0,b.jsxs)("button",{type:"button",disabled:d,onClick:()=>{d||(u(a.id),w(""))},title:d?`${p?.alias||"该 daemon"} 未声明支持此 runtime`:void 0,className:`flex w-full items-center justify-between rounded-md border px-3 py-2 text-sm transition-colors ${d?"border-[#1c1c1f] bg-[#0a0a0c] text-gray-600 cursor-not-allowed":e?"border-cyan-600 bg-cyan-900/15 text-cyan-200":"border-[#26262b] bg-[#0e0e10] text-gray-300 hover:border-[#3a3a41]"}`,children:[(0,b.jsxs)("span",{children:[a.label,d&&(0,b.jsx)("span",{className:"ml-2 text-[10px] text-gray-700",children:"该 daemon 不支持"})]}),e&&!d&&(0,b.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:(0,b.jsx)("path",{d:"M20 6 9 17l-5-5"})})]},a.id)})]}),3===f&&(0,b.jsxs)("label",{className:"block space-y-1.5",children:[(0,b.jsxs)("span",{className:"text-xs text-gray-400",children:["模型(",N.label,")"]}),(0,b.jsxs)("select",{value:v,onChange:a=>w(a.target.value),className:S,children:[(0,b.jsxs)("option",{value:"",children:["默认(",N.defaultModel,")"]}),N.models.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})]}),4===f&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("label",{className:"block space-y-1.5",children:[(0,b.jsx)("span",{className:"text-xs text-gray-400",children:"permissionMode"}),(0,b.jsx)("select",{value:x,onChange:a=>y(a.target.value),className:S,children:m.map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]}),(0,b.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[(0,b.jsxs)("label",{className:"space-y-1",children:[(0,b.jsx)("span",{className:"text-[11px] text-gray-500",children:"maxTurns"}),(0,b.jsx)("input",{inputMode:"numeric",value:z,onChange:a=>A(a.target.value),className:S})]}),(0,b.jsxs)("label",{className:"space-y-1",children:[(0,b.jsx)("span",{className:"text-[11px] text-gray-500",children:"budget"}),(0,b.jsx)("input",{inputMode:"numeric",value:B,onChange:a=>C(a.target.value),className:S})]}),(0,b.jsxs)("label",{className:"space-y-1",children:[(0,b.jsx)("span",{className:"text-[11px] text-gray-500",children:"timeout"}),(0,b.jsx)("input",{inputMode:"numeric",value:D,onChange:a=>E(a.target.value),className:S})]})]})]}),5===f&&(0,b.jsx)("div",{className:"space-y-2 text-sm",children:(0,b.jsx)("div",{className:"rounded-md border border-[#26262b] bg-[#0e0e10] divide-y divide-[#1c1c1f]",children:[["服务器",j?`${j.slice(0,24)}…`:"—"],["名字",r.trim()||"—"],["Runtime",N.label],["模型",v||`默认(${N.defaultModel})`],["permissionMode",x],["maxTurns / budget / timeout",`${z||"—"} / ${B||"—"} / ${D||"—"}`]].map(([a,c])=>(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3 px-3 py-2",children:[(0,b.jsx)("span",{className:"shrink-0 text-gray-500 text-xs",children:a}),(0,b.jsx)("span",{className:"text-right text-gray-200 text-xs break-all",children:c})]},a))})})]})}),"form"===F?(0,b.jsxs)("div",{className:"flex items-center justify-between border-t border-[#26262b] px-4 py-3",children:[(0,b.jsx)("button",{type:"button",onClick:()=>0===f?d():i(f-1),className:"rounded-md px-3 py-1.5 text-sm text-gray-400 hover:text-gray-200",children:0===f?"取消":"上一步"}),f<n.length-1?(0,b.jsx)("button",{type:"button",disabled:!P,onClick:()=>i(f+1),className:`rounded-md px-4 py-1.5 text-sm font-medium ${P?"bg-cyan-600 text-white hover:bg-cyan-500":"bg-[#1c1c1f] text-gray-600 cursor-not-allowed"}`,children:"下一步"}):(0,b.jsx)("button",{type:"button",onClick:R,className:"rounded-md bg-green-600 px-4 py-1.5 text-sm font-medium text-white hover:bg-green-500",children:"创建节点"})]}):(0,b.jsxs)("div",{className:"flex items-center justify-end border-t border-[#26262b] px-4 py-3",children:[(0,b.jsx)("button",{type:"button",onClick:d,className:"rounded-md bg-[#1c1c1f] px-4 py-1.5 text-sm text-gray-200 hover:bg-[#26262b]",children:"done"===F?"完成":"关闭"}),("error"===F||"unconfirmed"===F)&&(0,b.jsx)("button",{type:"button",onClick:()=>G("form"),className:"ml-2 rounded-md bg-cyan-600 px-4 py-1.5 text-sm text-white hover:bg-cyan-500",children:"返回修改"})]})]})]})}var p=a.i(12309),q=a.i(53142),r=a.i(1720),s=a.i(78287),t=a.i(86512),u=a.i(43370),v=a.i(41443),w=a.i(19933),x=a.i(6439),y=a.i(35112),z=a.i(51269);function A({alias:a,x:d,y:e,onClose:f}){let h=(0,u.usePinned)(a),i=(0,t.useMuted)(a),{networkId:j}=(0,g.useNetworkId)(),{unreadCount:k}=(0,x.useChatUnread)(),l=k(a),m=(0,c.useRef)(null);(0,c.useLayoutEffect)(()=>{},[d,e]),(0,c.useEffect)(()=>{let a=a=>{m.current&&!m.current.contains(a.target)&&f()},b=a=>{"Escape"===a.key&&(a.stopPropagation(),f())};return document.addEventListener("mousedown",a,!0),document.addEventListener("keydown",b),()=>{document.removeEventListener("mousedown",a,!0),document.removeEventListener("keydown",b)}},[f]);let n=a=>()=>{a(),f()},o="group w-full text-left flex items-center gap-2.5 px-2.5 py-1.5 text-[13px] font-medium text-[var(--fg)] hover:bg-[rgba(125,211,252,0.10)] hover:text-white active:bg-[rgba(125,211,252,0.18)] disabled:text-[var(--fg-dim)] disabled:cursor-not-allowed disabled:hover:bg-transparent",p=(0,b.jsxs)("div",{ref:m,role:"menu","aria-label":(0,z.t)(`节点 ${a} 操作菜单`,`Actions for node ${a}`),"data-testid":"node-context-menu","data-target-alias":a,style:{position:"fixed",top:e,left:d,width:200,zIndex:60},className:"rounded-lg border border-[var(--border)] bg-[var(--menu-bg)] py-1",onContextMenu:a=>a.preventDefault(),children:[(0,b.jsxs)("button",{type:"button",role:"menuitem","data-testid":"ctx-pin",onClick:n(()=>(0,u.togglePin)(a)),className:o,children:[(0,b.jsx)(B,{className:"shrink-0 w-5 h-5 text-[var(--fg-muted)] group-hover:text-[var(--hl)]"}),h?(0,z.t)("取消置顶","Unpin"):(0,z.t)("置顶会话","Pin conversation")]}),(0,b.jsxs)("button",{type:"button",role:"menuitem","data-testid":"ctx-mute",onClick:n(()=>(0,t.toggleMute)(a)),className:o,children:[(0,b.jsx)(C,{muted:!0,className:"shrink-0 w-5 h-5 text-[var(--fg-muted)] group-hover:text-[var(--hl)]"}),i?(0,z.t)("取消免打扰","Unmute"):(0,z.t)("免打扰","Mute")]}),(0,b.jsxs)("button",{type:"button",role:"menuitem","data-testid":"ctx-mark-read",onClick:n(()=>(0,x.markChatRead)(a,j)),disabled:0===l,className:o,children:[(0,b.jsx)(D,{className:"shrink-0 w-5 h-5 text-[var(--fg-muted)] group-hover:text-[var(--hl)] group-disabled:text-[var(--fg-dim)]"}),(0,z.t)(l>0?`标记已读 (${l})`:"标记已读",l>0?`Mark ${l} read`:"Mark read")]})]});return"u"<typeof document?null:(0,y.createPortal)(p,document.body)}function B({className:a}){return(0,b.jsxs)("svg",{className:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("path",{d:"M12 17v5"}),(0,b.jsx)("path",{d:"M5 10l7 7 7-7"}),(0,b.jsx)("path",{d:"M5 10l3-8h8l3 8z"})]})}function C({className:a,muted:c}){return(0,b.jsxs)("svg",{className:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("path",{d:"M15 17h5l-1.4-1.4A2 2 0 0118 14.2V11a6 6 0 00-12 0v3.2c0 .5-.2 1-.6 1.4L4 17h5"}),(0,b.jsx)("path",{d:"M13.7 21a2 2 0 01-3.4 0"}),c&&(0,b.jsx)("path",{d:"M3 3l18 18"})]})}function D({className:a}){return(0,b.jsx)("svg",{className:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",children:(0,b.jsx)("path",{d:"M5 13l4 4L19 7"})})}function E({session:a,selected:c,unread:d,onSelect:e,onContextMenu:f}){let g=(0,u.usePinned)(a.alias),h=(0,t.useMuted)(a.alias);return(0,b.jsxs)("button",{type:"button","data-node-list-item":!0,"data-node-list-alias":a.alias,"data-selected":c?"true":"false","data-node-pinned":g?"true":"false","data-node-muted":h?"true":"false",onClick:()=>e(a.alias),onContextMenu:b=>f(a.alias,b),style:{height:F,minHeight:F},className:`w-full flex items-center gap-2.5 px-3 py-2.5 text-left transition-colors border-b border-[var(--col-hairline)] ${c?"bg-cyan-500/8":g?"bg-[rgba(125,211,252,0.04)] hover:bg-[rgba(125,211,252,0.08)]":"hover:bg-[var(--bg-elevated)]"}`,children:[(0,b.jsxs)("div",{className:"relative shrink-0",children:[(0,b.jsx)(r.AliasAvatar,{alias:a.alias,size:32}),a.online&&(0,b.jsx)("span",{"aria-hidden":!0,className:"absolute -bottom-0.5 -right-0.5 w-2.5 h-2.5 rounded-full bg-green-400 ring-2 ring-[var(--col-list)]"})]}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("span",{className:`text-[13px] truncate flex items-center gap-1.5 min-w-0 ${c?"text-cyan-200 font-medium":"text-gray-200"}`,children:[(0,b.jsx)("span",{className:"truncate",children:a.alias}),h&&(0,b.jsxs)("svg",{"aria-label":(0,z.t)("已免打扰","Muted"),"data-mute-icon":!0,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"#64748B",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",className:"shrink-0",children:[(0,b.jsx)("path",{d:"M15 17h5l-1.4-1.4A2 2 0 0118 14.2V11a6 6 0 00-4-5.7"}),(0,b.jsx)("path",{d:"M6 8v3.2c0 .5-.2 1-.6 1.4L4 14h9"}),(0,b.jsx)("path",{d:"M13.7 21a2 2 0 01-3.4 0"}),(0,b.jsx)("path",{d:"M3 3l18 18"})]})]}),d>0&&(0,b.jsx)("span",{"aria-label":h?(0,z.t)(`已免打扰,未读 ${d}`,`Muted, ${d} unread`):(0,z.t)(`${d} 条未读`,`${d} unread`),"data-unread-badge":!0,"data-badge-variant":h?"muted":"default",className:`shrink-0 min-w-[16px] h-4 px-1 rounded-full text-[9px] font-semibold leading-4 text-center ${h?"bg-[var(--badge-muted-bg)] text-[var(--badge-muted-fg)]":"bg-[var(--danger)] text-white"}`,children:d>99?"99+":d})]}),(0,b.jsx)("div",{className:"mt-0.5 flex items-center gap-1.5",children:(0,b.jsx)(G,{alias:a.alias,session:a})})]})]},a.alias)}let F=53;function G({alias:a,session:c}){return(0,s.useHasDraft)(a)?(0,b.jsxs)("span",{className:"text-[11px] text-red-400/90 truncate","aria-label":(0,z.t)("有未发送草稿","Unsent draft"),children:[(0,z.t)("[草稿]","[draft]")," ",c.task?c.task.slice(0,40):""]}):c.task?(0,b.jsx)("span",{className:"text-[11px] text-gray-500 truncate",children:c.task}):c.online?(0,b.jsx)("span",{className:"text-[11px] text-gray-600",children:(0,z.t)("空闲","idle")}):(0,b.jsx)("span",{className:"text-[11px] text-gray-600 italic",children:(0,z.t)("离线","offline")})}function H({sessions:a,selectedAlias:d,onSelect:e,search:f,onSearchChange:g}){var h;let i,j,k,l,{unreadCount:m}=(0,x.useChatUnread)(),[n,o]=(0,c.useState)(null),[p,q]=(0,c.useState)(0),[r,s]=(0,c.useState)(600),t=(0,c.useRef)(null),u=(0,c.useRef)({sessions:a,selectedAlias:d,onSelect:e});(0,c.useEffect)(()=>{u.current={sessions:a,selectedAlias:d,onSelect:e}}),(0,c.useEffect)(()=>{},[]),(0,c.useEffect)(()=>{let a=t.current;if(!a)return;let b=()=>s(Math.max(1,a.clientHeight));b();let c=new ResizeObserver(b);return c.observe(a),()=>c.disconnect()},[]);let v=d?a.findIndex(a=>a.alias===d):-1;(0,c.useEffect)(()=>{let a=t.current;if(!a||v<0)return;let b=v*F,c=b+F,d=a.scrollTop;b<a.scrollTop?d=b:c>a.scrollTop+a.clientHeight&&(d=Math.max(0,c-a.clientHeight)),d!==a.scrollTop&&(a.scrollTop=d)},[v]),(0,c.useEffect)(()=>{let b=t.current;if(!b)return;let c=Math.max(0,a.length*F-b.clientHeight);b.scrollTop>c&&(b.scrollTop=c)},[a.length]);let w=(h=a.length,i=Math.max(0,Number.isFinite(p)?p:0),j=Math.max(1,Number.isFinite(r)?r:600),l=Math.min(h,(k=Math.max(0,Math.floor(i/F)-6))+(Math.ceil(j/F)+12)),{start:k,end:l,top:k*F,bottom:Math.max(0,(h-l)*F)}),y=a.slice(w.start,w.end);return(0,b.jsxs)("div",{"data-node-list-rail":!0,"data-node-list-count":a.length,className:"flex flex-col w-full overflow-hidden bg-[var(--col-list)] border-r border-[var(--col-line)]","aria-label":(0,z.t)("节点列表","Node list"),children:[(0,b.jsx)("div",{className:"p-2 border-b border-[var(--col-hairline)] shrink-0",children:(0,b.jsx)("input",{type:"search",value:f,onChange:a=>g(a.target.value),placeholder:(0,z.t)("搜索节点(拼音可)","Search nodes (pinyin ok)"),"aria-label":(0,z.t)("搜索节点","Search nodes"),"data-testid":"rail-search",className:"w-full rounded-md bg-[var(--col-inset)] border border-[rgba(255,255,255,0.08)] px-2.5 py-1.5 text-[12px] text-gray-200 placeholder:text-gray-600 focus:outline-none focus:border-cyan-500/40"})}),(0,b.jsx)("div",{className:"px-3 py-2 text-[11px] text-gray-500 tracking-wide uppercase border-b border-[var(--col-hairline)] shrink-0",children:(0,z.t)(`节点 ${a.length}`,`Nodes \xb7 ${a.length}`)}),n&&(0,b.jsx)(A,{alias:n.alias,x:n.x,y:n.y,onClose:()=>o(null)}),(0,b.jsx)("div",{ref:t,"data-testid":"node-list-scroll","data-virtual-start":w.start,"data-virtual-end":w.end,onScroll:a=>q(a.currentTarget.scrollTop),className:"flex-1 min-h-0 overflow-y-auto pb-[calc(5rem+env(safe-area-inset-bottom))] lg:pb-0",children:0===a.length?f?(0,b.jsxs)("div",{className:"p-4 text-[11px] text-gray-500","data-testid":"rail-search-empty",children:[(0,z.t)(`没有节点匹配 “${f}”`,`No match — no nodes named "${f}"`),(0,b.jsx)("button",{type:"button",onClick:()=>g(""),className:"ml-2 text-cyan-400/80 hover:text-cyan-300 underline-offset-2 hover:underline",children:(0,z.t)("清除","Clear")})]}):(0,b.jsx)("div",{className:"p-4 text-[11px] text-gray-600",children:(0,z.t)("列表为空 —— 右侧的筛选控件或空态说明会告诉你原因。","Rail is empty — the filter controls or empty state on the right explain why.")}):(0,b.jsxs)(b.Fragment,{children:[w.top>0&&(0,b.jsx)("div",{"aria-hidden":!0,style:{height:w.top}}),y.map(a=>(0,b.jsx)(E,{session:a,selected:a.alias===d,unread:m(a.alias),onSelect:e,onContextMenu:(a,b)=>{b.preventDefault(),o({alias:a,x:b.clientX,y:b.clientY})}},a.alias)),w.bottom>0&&(0,b.jsx)("div",{"aria-hidden":!0,style:{height:w.bottom}})]})})]})}var I=a.i(15261),J=a.i(20759);function K({alias:a,anchorRef:b,onClose:d,onOpenSettings:e}){(0,u.usePinned)(a);let f=(0,c.useRef)(null),[g,h]=(0,c.useState)({top:0,left:0,flippedY:!1,flippedX:!1});return(0,c.useLayoutEffect)(()=>{if(!b.current||!f.current)return;let a=b.current.getBoundingClientRect(),c=f.current.getBoundingClientRect(),d=window.innerHeight,e=window.innerWidth,g=a.bottom+4,i=a.right-c.width,j=!1,k=!1;g+c.height+8>d&&(g=Math.max(8,a.top-c.height-4),j=!0),i<8&&(i=a.left,k=!0),h({top:g=Math.max(8,Math.min(g,d-c.height-8)),left:i=Math.max(8,Math.min(i,e-c.width-8)),flippedY:j,flippedX:k})},[b]),(0,c.useEffect)(()=>{let a=a=>{let c=a.target;f.current?.contains(c)||b.current?.contains(c)||d()},c=a=>{"Escape"===a.key&&d()};return document.addEventListener("mousedown",a,!0),document.addEventListener("keydown",c),()=>{document.removeEventListener("mousedown",a,!0),document.removeEventListener("keydown",c)}},[b,d]),null}function L({alias:a,onClose:d,variant:f="column",onBack:g}){let[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(!1),l=(0,c.useRef)(null),{sessions:m}=(0,e.useSessions)(),n=m.find(b=>b.alias===a);return(0,b.jsxs)("aside",{"data-testid":"chat-pane","data-chat-alias":a,className:"page"===f?"relative flex flex-col w-full min-w-0 h-full bg-[var(--col-chat)] pb-[calc(5rem+env(safe-area-inset-bottom))] lg:pb-0":"relative hidden md:flex md:flex-col flex-1 min-w-0 h-full bg-[var(--col-chat)] pb-[calc(5rem+env(safe-area-inset-bottom))] lg:pb-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 px-3 py-2.5 border-b border-[var(--col-line)] bg-[var(--col-chat)] shrink-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:["page"===f&&(0,b.jsx)("button",{type:"button",onClick:g??d,"aria-label":(0,z.t)("返回列表","Back to list"),"data-testid":"chat-back",className:"inline-flex h-8 w-8 -ml-1 items-center justify-center rounded-lg text-gray-400 hover:text-gray-100 hover:bg-[var(--bg-elevated)] transition-colors shrink-0",children:(0,b.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 19l-7-7 7-7"})})}),(0,b.jsx)(r.AliasAvatar,{alias:a,size:26}),(0,b.jsx)("span",{className:"truncate text-sm font-semibold text-white",children:a})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,b.jsx)("button",{ref:l,type:"button",onClick:()=>k(a=>!a),"aria-label":(0,z.t)("会话溢出菜单","Chat overflow menu"),"aria-haspopup":"menu","aria-expanded":j,title:(0,z.t)("更多","More"),"data-testid":"chat-pane-more","data-menu-open":j?"true":"false",className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-gray-500 hover:text-gray-200 hover:bg-[var(--bg-elevated)] transition-colors",children:(0,b.jsxs)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[(0,b.jsx)("circle",{cx:"12",cy:"5",r:"1.5",fill:"currentColor"}),(0,b.jsx)("circle",{cx:"12",cy:"12",r:"1.5",fill:"currentColor"}),(0,b.jsx)("circle",{cx:"12",cy:"19",r:"1.5",fill:"currentColor"})]})}),(0,b.jsx)("a",{href:`/tasks?to_name=${encodeURIComponent(a)}`,"aria-label":(0,z.t)(`查看 ${a} 的任务`,`View ${a} tasks`),title:(0,z.t)("查看任务","View tasks"),"data-testid":"chat-pane-view-tasks",className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-gray-500 hover:text-gray-200 hover:bg-[var(--bg-elevated)] transition-colors",children:(0,b.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8 7V3M16 7V3M4 11h16M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"})})}),(0,b.jsx)("button",{type:"button",onClick:()=>window.dispatchEvent(new CustomEvent("chat:open-search",{detail:{alias:a}})),"aria-label":(0,z.t)("会话内搜索","In-chat search"),title:(0,z.t)("搜索(⌘/Ctrl+F)","Search (⌘/Ctrl+F)"),"data-testid":"chat-pane-search","data-search-enabled":"true",className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-gray-500 hover:text-gray-200 hover:bg-[var(--bg-elevated)] transition-colors",children:(0,b.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})})}),(0,b.jsx)("button",{type:"button",onClick:d,"aria-label":(0,z.t)("关闭会话","Close chat"),"data-testid":"chat-pane-close",className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-gray-500 hover:text-gray-200 hover:bg-[var(--bg-elevated)] transition-colors",children:(0,b.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})})]})]}),(0,b.jsx)("div",{className:"flex-1 min-h-0",children:(0,b.jsx)(I.TaskChatPanel,{alias:a,onClose:d,inline:!0})}),h&&n&&(0,b.jsx)(J.NodeSettingsPanel,{session:n,onClose:()=>i(!1),positioning:"absolute"}),j&&(0,b.jsx)(K,{alias:a,anchorRef:l,onClose:()=>k(!1),onOpenSettings:()=>i(!0)})]})}var M=a.i(114);function N(a){return a?a.length>12?`${a.slice(0,8)}…`:a:"—"}function O(a){try{return decodeURIComponent(a)}catch{return a}}let P="(min-width: 768px)";function Q(a){let b=window.matchMedia(P);return b.addEventListener("change",a),()=>b.removeEventListener("change",a)}function R({alias:a}){return(0,s.useHasDraft)(a)?(0,b.jsx)("span",{className:"shrink-0 text-[9px] text-red-400/90","aria-label":(0,z.t)("有未发送草稿","Unsent draft"),children:(0,z.t)("[草稿]","[draft]")}):null}a.s(["NodesView",0,function({initialAlias:a=null}){let g,{sessions:h,isLoading:i}=(0,e.useSessions)(),{health:j}=(0,e.useHealth)(),{lifecycleByAlias:k,nodeIdByAlias:l,attrsByAlias:m}=(0,e.useNodeLifecycle)(),{hasUnread:n,unreadCount:s,lastActivityAt:y}=(0,x.useChatUnread)(),{mutate:A}=(0,f.useSWRConfig)(),B=()=>{A(a=>"string"==typeof a&&(a.startsWith("/api/hub/nodes")||a.startsWith("/api/hub/status")))},C=j?.sse_sessions||{},D=a=>(a.network_id?C[`${a.network_id}:${a.alias}`]:void 0)??C[a.alias],[E,F]=(0,c.useState)(""),[G,I]=(0,c.useState)(""),[J,K]=(0,c.useState)([]),[S,T]=(0,c.useState)(""),U=Array.from(new Set(h.map(a=>m[a.alias]?.team).filter(a=>!!a&&a.length>0))).sort(),V=Array.from(new Set(h.flatMap(a=>m[a.alias]?.tags??[]).filter(a=>a&&a.length>0))).sort(),W=U.length>0||V.length>0;(0,v.usePinyinReady)(),(0,t.useMuteVersion)(),(0,u.usePinVersion)();let[X,Y]=(0,c.useState)("list"),[Z,$]=(0,c.useState)(a),_=(0,c.useSyncExternalStore)(Q,()=>window.matchMedia(P).matches,()=>!0),aa=a=>{try{let a=document.querySelector('[data-testid="node-list-scroll"]');a&&(aw.current=a.scrollTop)}catch{}$(a);try{window.history.pushState({},"",`/nodes/${encodeURIComponent(a)}`)}catch{}},ab=()=>{ag.current=!0,$(null);try{window.history.pushState({},"","/nodes")}catch{}};(0,c.useEffect)(()=>{let a=()=>{let a=window.location.pathname.match(/^\/nodes\/([^/]+)\/?$/);$(a?O(a[1]):null)};return window.addEventListener("popstate",a),()=>window.removeEventListener("popstate",a)},[]);let ac=(0,c.useRef)(null);(0,c.useEffect)(()=>{let a=ac.current;if(!a)return;let b=()=>{let b=a.getBoundingClientRect().top;a.style.height=`${Math.max(240,window.innerHeight-b)}px`};b(),window.addEventListener("resize",b),window.addEventListener("scroll",b,{passive:!0});let c=new ResizeObserver(b);return c.observe(document.body),()=>{window.removeEventListener("resize",b),window.removeEventListener("scroll",b),c.disconnect()}},[]);let[ad,ae]=(0,c.useState)(()=>!1),af=(0,c.useRef)(!1),ag=(0,c.useRef)(!1),ah=()=>{ae(a=>{let b=!a;try{window.localStorage.setItem("anet-nodes-manage-view",b?"1":"0")}catch{}return b?(ag.current=!0,Z&&ab()):(ag.current=!1,af.current=!1),b})},[ai,aj]=(0,c.useState)(!1),[ak,al]=(0,c.useState)(()=>!0),am=(0,w.useCollapsibleSearch)({value:S,onChange:T,placeholder:(0,z.t)("搜索节点(支持拼音/首字母)…","Search nodes (pinyin ok)…"),label:"Search nodes",enabled:h.length>0}),an=(0,c.useRef)(new Map),ao=Date.now(),ap=(a,b)=>(b&&an.current.set(a,ao),+(ao-(an.current.get(a)||0)<6e4)),aq=h.map(a=>({...a,online:!!D(a)})).filter(a=>"online"===E?a.online:"offline"===E?!a.online:!E||E===a.status).filter(a=>{if(!G)return!0;let b=m[a.alias]?.team??null;return"__NO_TEAM__"===G?null===b||""===b:b===G}).filter(a=>{if(0===J.length)return!0;let b=m[a.alias]?.tags??[];return J.every(a=>b.includes(a))}).filter(a=>!S||(0,v.pinyinMatch)(a.alias,S)||(0,v.pinyinMatch)(a.agent||"",S)).sort((a,b)=>!!(0,u.isPinned)(b.alias)-!!(0,u.isPinned)(a.alias)||ap(b.alias,b.online)-ap(a.alias,a.online)||y(b.alias)-y(a.alias)),ar=h.filter(a=>D(a)).length,as=aq.length>0?aq[0].alias:null;(0,c.useEffect)(()=>{if(_&&!ad&&!Z&&!ag.current&&!af.current&&as){af.current=!0,$(as);try{window.history.replaceState({},"",`/nodes/${encodeURIComponent(as)}`)}catch{}}},[_,ad,Z,as]);let at=!!Z&&_&&h.length>0,au=!_&&!Z&&!ad&&h.length>0,av=!_&&!!Z,aw=(0,c.useRef)(0);return(0,c.useEffect)(()=>{if(_||Z)return;let a=requestAnimationFrame(()=>{let a=document.querySelector('[data-testid="node-list-scroll"]');a&&(a.scrollTop=aw.current)});return()=>cancelAnimationFrame(a)},[_,Z]),(0,b.jsxs)("div",{ref:ac,"data-testid":"nodes-layout","data-rail-visible":ak?"true":"false",className:"h-[100dvh] max-w-full overflow-hidden bg-[var(--bg)] text-gray-100 flex",children:[(au||_&&(ak||at)&&h.length>0)&&(0,b.jsxs)("aside",{"data-testid":"node-list-rail",className:"flex flex-col w-full md:w-[280px] shrink-0 h-full min-h-0 bg-[var(--col-list)]",children:[(0,b.jsx)(H,{sessions:aq,selectedAlias:Z,onSelect:aa,search:S,onSearchChange:T}),(0,b.jsx)("button",{type:"button",onClick:ah,"data-testid":"manage-view-toggle",className:"shrink-0 border-t border-[var(--col-line)] bg-[var(--col-list)] px-3 py-2 text-left text-[11px] text-gray-500 hover:text-gray-200 transition-colors",children:ad?(0,z.t)("≡ 对话视图","≡ Conversation view"):(0,z.t)("☷ 管理视图","☷ Manage view")})]}),(_?!at:ad&&!Z)&&(0,b.jsxs)("div",{"data-testid":"nodes-main-scroll",className:"flex-1 min-w-0 max-w-full h-full overflow-y-auto overflow-x-hidden p-4 sm:p-6 pb-[calc(5rem+env(safe-area-inset-bottom))] lg:pb-6",children:[!_&&ad&&(0,b.jsx)("button",{type:"button",onClick:ah,"data-testid":"manage-view-toggle-mobile",className:"md:hidden mb-3 rounded-lg border border-[var(--col-line-strong)] bg-[var(--col-list)] px-3 py-1.5 text-[12px] text-gray-400 hover:text-gray-200",children:(0,z.t)("≡ 返回对话视图","≡ Back to conversations")}),(0,b.jsxs)("div",{className:"flex items-center gap-4 mb-4 sm:mb-6",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 min-w-0 flex-1",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold text-white lg:ml-0 ml-10",children:"Nodes"}),(0,b.jsxs)("span",{className:"text-xs bg-green-900/30 text-green-400 px-2 py-0.5 rounded-full border border-green-800/30 shrink-0",children:[ar," online"]}),(0,b.jsxs)("span",{className:"text-xs bg-gray-900/30 text-gray-400 px-2 py-0.5 rounded-full border border-gray-800/30 shrink-0",children:[h.length," total"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{al(a=>{let b=!a;try{window.localStorage.setItem("anet-nodes-rail",b?"1":"0")}catch{}return b})},"aria-pressed":ak,"data-testid":"toggle-rail",title:ak?(0,z.t)("隐藏节点列表","Hide node list"):(0,z.t)("显示节点列表","Show node list"),className:"hidden sm:inline-flex items-center gap-1 rounded-lg border border-[var(--border)] bg-[var(--bg-secondary)] px-2.5 py-1.5 text-xs text-gray-400 hover:text-gray-200 hover:border-[var(--border-hover)] transition-colors",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"text-sm leading-none",children:ak?"☷":"☰"}),(0,b.jsx)("span",{className:"hidden md:inline",children:ak?(0,z.t)("密视图","Dense"):(0,z.t)("分栏","Split")})]}),(0,b.jsxs)("button",{type:"button",onClick:()=>aj(!0),"aria-label":"新建节点",className:"inline-flex items-center gap-1 rounded-lg border border-cyan-700/50 bg-cyan-900/15 px-3 py-1.5 text-sm font-medium text-cyan-300 hover:bg-cyan-900/25 transition-colors",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"text-base leading-none",children:"+"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:"新建节点"})]}),(0,b.jsx)(am.Button,{})]})]}),ai&&(0,b.jsx)(o,{onClose:()=>aj(!1)}),(0,b.jsx)(am.Row,{}),h.length>0&&(0,b.jsxs)("div",{className:"flex flex-wrap gap-3 mb-4 sm:mb-6",children:[(0,b.jsxs)("select",{value:E,onChange:a=>F(a.target.value),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg px-3 py-2 text-base sm:text-sm text-white focus:border-blue-500/50 focus:outline-none",children:[(0,b.jsx)("option",{value:"",children:"All"}),(0,b.jsx)("option",{value:"online",children:"Online"}),(0,b.jsx)("option",{value:"offline",children:"Offline"}),(0,b.jsx)("option",{value:"working",children:"Working"}),(0,b.jsx)("option",{value:"idle",children:"Idle"}),(0,b.jsx)("option",{value:"blocked",children:"Blocked"}),(0,b.jsx)("option",{value:"error",children:"Error"})]}),U.length>0&&(0,b.jsxs)("select",{value:G,onChange:a=>I(a.target.value),"aria-label":(0,z.t)("按 Team 过滤","Filter by team"),"data-testid":"filter-team",className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg px-3 py-2 text-base sm:text-sm text-white focus:border-blue-500/50 focus:outline-none",children:[(0,b.jsx)("option",{value:"",children:(0,z.t)("全部 Team","All teams")}),(0,b.jsx)("option",{value:"__NO_TEAM__",children:(0,z.t)("未分组","(no team)")}),U.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]}),(0,b.jsx)("div",{className:"hidden sm:flex ml-auto rounded-lg border border-[var(--border)] bg-[var(--bg-secondary)] p-1 text-sm",children:["list","grid"].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>Y(a),className:`rounded-md px-3 py-1.5 transition-colors ${X===a?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"list"===a?"List":"Grid"},a))})]}),h.length>0&&V.length>0&&(0,b.jsxs)("div",{className:"mb-4 sm:mb-6 flex flex-wrap items-center gap-1.5","data-testid":"filter-tags-row",children:[(0,b.jsx)("span",{className:"text-[11px] text-gray-500 mr-1",children:(0,z.t)("Tags:","Tags:")}),V.map((a,c)=>{let d=J.includes(a);return d&&J.slice(0,J.indexOf(a)).length,(0,b.jsx)("button",{type:"button",onClick:()=>K(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a]),"aria-pressed":d,"data-tag":a,"data-selected":d?"true":"false",className:`text-xs rounded-full px-2.5 py-1 border transition-colors ${d?"bg-cyan-500/15 text-cyan-200 border-cyan-500/40":"bg-[var(--bg-secondary)] text-gray-400 border-[var(--border)] hover:text-gray-200 hover:border-[var(--border-hover)]"}`,children:a},a)}),J.length>=2&&(0,b.jsx)("span",{className:"text-[10px] text-cyan-300/80 ml-1 tabular-nums","data-testid":"filter-tags-and-hint",children:(0,z.t)(`= 同时具有 ${J.length} 个标签`,`= AND of ${J.length} tags`)}),(J.length>0||G)&&(0,b.jsx)("button",{type:"button",onClick:()=>{K([]),I("")},className:"text-[11px] text-gray-500 hover:text-gray-200 underline-offset-2 hover:underline ml-2","data-testid":"clear-attr-filters",children:(0,z.t)("清除","Clear")})]}),i?(0,b.jsx)("div",{className:"animate-pulse space-y-2",children:[1,2,3,4].map(a=>(0,b.jsx)("div",{className:"h-16 bg-gray-800/20 rounded-lg"},a))}):0===aq.length?0===h.length?(0,b.jsx)(q.NodesEmptyState,{}):G||J.length>0?(0,b.jsx)(q.EmptyState,{variant:"nodes",title:(0,z.t)("没有节点符合当前属性筛选","No nodes match the current attribute filters"),sub:(g=[],"__NO_TEAM__"===G?g.push((0,z.t)("未分组","no-team")):G&&g.push((0,z.t)(`Team = ${G}`,`Team = ${G}`)),1===J.length?g.push((0,z.t)(`标签 ${J[0]}`,`tag ${J[0]}`)):J.length>=2&&g.push((0,z.t)(`同时具有标签 ${J.join(" 和 ")}`,`all of tags: ${J.join(" AND ")}`)),(0,z.t)(`没有节点满足:${g.join(" + ")}。清除筛选或减少标签。`,`No node satisfies: ${g.join(" + ")}. Clear filters or drop a tag.`))}):!W&&(E||S)?(0,b.jsx)(q.EmptyState,{variant:"nodes",title:(0,z.t)("还没有节点被打过标签","No nodes have been tagged yet"),sub:(0,z.t)("先在节点详情里给几个节点分配 team / tag,然后就可以按属性筛选。","Assign team / tag to a few nodes first, then attribute filters will show up.")}):(0,b.jsx)(q.EmptyState,{variant:"nodes",title:"No nodes match your filters",sub:"Try clearing search or status filters, or wait for an agent to register."}):"grid"===X?(0,b.jsx)("div",{className:"grid min-w-0 grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:aq.map(a=>{let c=a.online?a.status:"offline",e="number"==typeof a.progress?a.progress:0,f=n(a.alias);return(0,b.jsxs)("div",{role:"button",tabIndex:0,"data-node-card":!0,"data-node-alias":a.alias,onClick:()=>aa(a.alias),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),aa(a.alias))},className:`relative min-w-0 max-w-full overflow-hidden rounded-xl border border-[var(--border)] bg-[var(--bg-secondary)] p-4 transition-colors hover:border-cyan-500/40 cursor-pointer ${!a.online?"opacity-60":""}`,children:[!a.online&&(0,b.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:(0,b.jsx)("span",{className:"rotate-[-20deg] rounded-xl border border-white/10 bg-black/20 px-5 py-2 text-xl font-bold uppercase tracking-[0.35em] text-[var(--fg)]/10",children:"Offline"})}),(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsxs)("div",{className:"relative shrink-0",children:[(0,b.jsxs)("span",{className:"relative inline-flex shrink-0",children:[(0,b.jsx)(r.AliasAvatar,{alias:a.alias,size:36}),s(a.alias)>0&&(0,t.isMuted)(a.alias)&&(0,b.jsx)("span",{"aria-label":(0,z.t)("有未读(已静音)","Unread (muted)"),className:"absolute -top-0.5 -right-1 h-2.5 w-2.5 rounded-full bg-red-500/80 ring-2 ring-[var(--bg-secondary)]"}),s(a.alias)>0&&!(0,t.isMuted)(a.alias)&&(0,b.jsx)("span",{"aria-label":(0,z.t)(`${s(a.alias)} 条未读`,`${s(a.alias)} unread`),className:"absolute -top-1 -right-1.5 min-w-[16px] h-4 px-1 rounded-full bg-red-500 text-white text-[9px] font-semibold leading-4 text-center ring-2 ring-[var(--bg-secondary)]",children:s(a.alias)>99?"99+":s(a.alias)})]}),f&&(0,b.jsx)("span",{className:"absolute -right-1 -top-1 h-3 w-3 rounded-full border-2 border-[var(--bg-secondary)] bg-red-500"})]}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"truncate text-base font-semibold text-white",children:a.alias}),(0,b.jsx)(R,{alias:a.alias}),f&&(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-red-500/15 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-red-300",children:"New"}),(0,b.jsx)("span",{className:`shrink-0 rounded-md border px-2 py-0.5 text-[10px] uppercase tracking-wide ${M.SESSION_STATUS_CHIP_CLASS[c]||M.SESSION_STATUS_CHIP_CLASS.offline}`,children:c})]}),(0,b.jsxs)("div",{className:"mt-0.5 truncate text-xs text-gray-500",children:[a.agent||"—",(0,b.jsx)("span",{className:"text-gray-700 mx-1.5",children:"·"}),(0,b.jsx)("span",{title:a.server||"",children:N(a.server)})]})]}),(0,b.jsx)("span",{className:"hidden shrink-0 rounded-lg border border-cyan-500/15 bg-cyan-500/5 px-2 py-1 text-[10px] text-cyan-300/70 sm:inline",children:"Tap to chat"}),(0,b.jsx)(p.NodeLifecycleMenu,{nodeId:l[a.alias]||a.node_id||a.alias,alias:a.alias,lifecycleState:k[a.alias],networkId:a.network_id||null,onCompleted:B,attrsSnapshot:m[a.alias]})]}),(0,b.jsxs)("div",{className:"mt-3 rounded-lg border border-[var(--border)] bg-[var(--bg)] px-3 py-2 text-xs",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-gray-600",children:"Current task"}),(0,b.jsx)("span",{className:"text-[10px] text-gray-600",children:(0,d.timeAgo)(a.last_seen_at||a.updated_at)})]}),(0,b.jsx)("div",{className:`mt-1 line-clamp-2 ${a.task?"text-gray-300":"text-gray-600 italic"}`,children:a.task||"No current task"})]}),e>0&&e<100&&(0,b.jsx)("div",{className:"mt-3 h-1.5 overflow-hidden rounded-full bg-gray-800",children:(0,b.jsx)("div",{className:"h-1.5 rounded-full bg-cyan-400 transition-all",style:{width:`${e}%`}})})]},a.alias)})}):(0,b.jsxs)("div",{className:"space-y-1 sm:space-y-2",children:[(0,b.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-10 gap-2 px-4 py-2 text-xs text-gray-600 uppercase",children:[(0,b.jsx)("div",{className:"col-span-1",children:"Status"}),(0,b.jsx)("div",{className:"col-span-2",children:"Alias"}),(0,b.jsx)("div",{className:"col-span-2",children:"Agent · Server"}),(0,b.jsx)("div",{className:"col-span-4",children:"Current Task"}),(0,b.jsx)("div",{className:"col-span-1",children:"Updated"})]}),aq.map(a=>{let c=a.online?a.status:"offline",e=n(a.alias);return(0,b.jsxs)("div",{role:"button",tabIndex:0,"data-node-card":!0,"data-node-alias":a.alias,onClick:()=>aa(a.alias),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),aa(a.alias))},className:`rounded-lg border border-[var(--border)] bg-[var(--bg-secondary)] px-3 py-2 sm:px-4 sm:py-3 transition-colors hover:border-cyan-500/40 cursor-pointer ${!a.online?"opacity-50":""}`,children:[(0,b.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-10 gap-2 items-center",children:[(0,b.jsx)("div",{className:"col-span-1",children:(0,b.jsx)("span",{className:`text-xs px-2 py-0.5 rounded-md border ${M.SESSION_STATUS_CHIP_CLASS[c]||M.SESSION_STATUS_CHIP_CLASS.offline}`,children:c})}),(0,b.jsx)("div",{className:"col-span-2 min-w-0",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsxs)("div",{className:"relative shrink-0",children:[(0,b.jsxs)("span",{className:"relative inline-flex shrink-0",children:[(0,b.jsx)(r.AliasAvatar,{alias:a.alias,size:20}),s(a.alias)>0&&(0,t.isMuted)(a.alias)&&(0,b.jsx)("span",{"aria-label":(0,z.t)("有未读(已静音)","Unread (muted)"),className:"absolute -top-1 -right-1 h-2 w-2 rounded-full bg-red-500/80"}),s(a.alias)>0&&!(0,t.isMuted)(a.alias)&&(0,b.jsx)("span",{"aria-label":(0,z.t)(`${s(a.alias)} 条未读`,`${s(a.alias)} unread`),className:"absolute -top-1.5 -right-2 min-w-[15px] h-[15px] px-1 rounded-full bg-red-500 text-white text-[9px] font-semibold leading-[15px] text-center",children:s(a.alias)>99?"99+":s(a.alias)})]}),e&&(0,b.jsx)("span",{className:"absolute -right-1 -top-1 h-2.5 w-2.5 rounded-full border border-[var(--bg-secondary)] bg-red-500"})]}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-white",children:a.alias}),(0,b.jsx)(R,{alias:a.alias}),e&&(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-red-500/15 px-1.5 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-red-300",children:"New"})]})}),(0,b.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",title:a.server||"",children:(0,b.jsxs)("span",{className:"truncate",children:[a.agent||"--",(0,b.jsx)("span",{className:"text-gray-700 mx-1.5",children:"·"}),N(a.server)]})}),(0,b.jsx)("div",{className:"col-span-4 truncate text-xs text-gray-500",title:a.task||"",children:a.task||"--"}),(0,b.jsxs)("div",{className:"col-span-1 flex items-center justify-between gap-2 text-xs text-gray-500",children:[(0,b.jsx)("span",{className:"truncate",children:(0,d.timeAgo)(a.last_seen_at||a.updated_at)}),(0,b.jsx)(p.NodeLifecycleMenu,{nodeId:l[a.alias]||a.node_id||a.alias,alias:a.alias,lifecycleState:k[a.alias],networkId:a.network_id||null,onCompleted:B,attrsSnapshot:m[a.alias]})]})]}),(0,b.jsxs)("div",{className:"sm:hidden space-y-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,b.jsxs)("div",{className:"relative shrink-0",children:[(0,b.jsx)(r.AliasAvatar,{alias:a.alias,size:28}),e&&(0,b.jsx)("span",{className:"absolute -right-1 -top-1 h-3 w-3 rounded-full border-2 border-[var(--bg-secondary)] bg-red-500"})]}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsx)("div",{className:"truncate text-sm font-medium text-white",children:a.alias}),e&&(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-red-500/15 px-1.5 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-red-300",children:"New"})]}),(0,b.jsxs)("div",{className:"truncate text-[10px] text-gray-500",children:[a.agent||"—"," · ",(0,d.timeAgo)(a.last_seen_at||a.updated_at)]})]}),(0,b.jsx)("span",{className:`shrink-0 text-xs px-2 py-0.5 rounded-md border ${M.SESSION_STATUS_CHIP_CLASS[c]||M.SESSION_STATUS_CHIP_CLASS.offline}`,children:c}),(0,b.jsx)(p.NodeLifecycleMenu,{nodeId:l[a.alias]||a.node_id||a.alias,alias:a.alias,lifecycleState:k[a.alias],networkId:a.network_id||null,onCompleted:B,attrsSnapshot:m[a.alias]})]}),a.task&&(0,b.jsx)("div",{className:"truncate text-xs text-gray-500",children:a.task})]})]},a.alias)})]})]}),Z&&_&&(0,b.jsx)(L,{alias:Z,onClose:ab}),av&&(0,b.jsx)(L,{alias:Z,variant:"page",onBack:ab,onClose:ab})]})},"decodeAliasSegment",0,O],97715)}];
|
|
1
|
+
module.exports=[97715,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(43515),e=a.i(44332),f=a.i(64565),g=a.i(22397);function h({networkId:a,value:d,onChange:e}){let[f,g]=(0,c.useState)("loading"),[k,l]=(0,c.useState)([]),[m,n]=(0,c.useState)([]),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(!1);if((0,c.useEffect)(()=>{let b=!0;return g("loading"),p(""),fetch(a?`/api/anet/host-supervisors?network_id=${encodeURIComponent(a)}`:"/api/anet/host-supervisors",{cache:"no-store"}).then(a=>a.json().then(b=>({status:a.status,body:b}))).then(({status:a,body:c})=>{if(!b)return;if(501===a||c?.unconfirmed){g("unconfirmed"),p(c?.error||"hub /api/host-supervisors unavailable — upgrade to >=0.9.0-preview.8"),l([]),n([]);return}if(!c?.ok){g("error"),p(c?.error||`hub ${a}`),l([]),n([]);return}let f=Array.isArray(c.daemons)?c.daemons:[],h=Array.isArray(c.hosts)?c.hosts:f.map(a=>({hostname:a.hostname||a.alias||a.daemon_node_id,daemon:a,has_daemon:!0}));l(f),n(h),g("ready"),1!==f.length||d||e(f[0].daemon_node_id,f[0])}).catch(a=>{b&&(g("error"),p(a instanceof Error?a.message:String(a)),l([]),n([]))}),()=>{b=!1}},[a]),"loading"===f)return(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-[#26262b] bg-[#0e0e10] px-3 py-3 text-xs text-gray-500",children:[(0,b.jsxs)("svg",{className:"h-3.5 w-3.5 animate-spin",viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,children:[(0,b.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,b.jsx)("path",{className:"opacity-90",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})]}),"正在查询可用的 host_supervisor 节点…"]});if("unconfirmed"===f)return(0,b.jsxs)("div",{className:"rounded-md border border-amber-700/40 bg-amber-900/10 px-3 py-3 text-xs text-amber-200",children:[(0,b.jsx)("div",{className:"font-semibold mb-1",children:"hub 暂未升级"}),(0,b.jsx)("div",{className:"text-amber-200/80",children:o}),(0,b.jsxs)("div",{className:"mt-1 text-[11px] text-amber-200/60",children:["升级到 ",(0,b.jsx)("code",{className:"rounded bg-[var(--code-bg)] px-1 py-0.5",children:"@sleep2agi/commhub-server@0.9.0-preview.8"})," 后选服务器功能才会出现。"]})]});if("error"===f)return(0,b.jsxs)("div",{className:"rounded-md border border-red-700/40 bg-red-900/10 px-3 py-3 text-xs text-red-200",children:["查询 host_supervisor 节点失败:",o]});if(0===k.length&&0===m.length)return(0,b.jsxs)("div",{className:"rounded-md border border-[#26262b] bg-[#0e0e10] px-3 py-4 text-xs text-gray-300",children:[(0,b.jsx)("div",{className:"text-sm font-semibold text-gray-200",children:"还没有可用的 host_supervisor 节点"}),(0,b.jsx)("p",{className:"mt-1 text-gray-500",children:"要在某台机器上创建节点,先在那台机器上跑一次 daemon 初始化命令:"}),(0,b.jsx)("pre",{className:"mt-2 overflow-x-auto rounded bg-[var(--code-bg)] p-2 text-[11px] text-[var(--code-fg)]",children:`# 任选一台目标机器(你的笔记本 / 一台服务器都行)
|
|
2
|
+
anet daemon up my-daemon`}),(0,b.jsx)("p",{className:"mt-2 text-gray-500",children:"注册成功后这里会自动出现,无需刷新。"})]});if(1===k.length&&1===m.length&&!q){let a=k[0];return(0,b.jsxs)("div",{className:"rounded-md border border-cyan-700/40 bg-cyan-900/10 px-3 py-3 text-xs text-cyan-100",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{className:"text-cyan-400/80",children:"将在"})," ",(0,b.jsx)("span",{className:"font-semibold",children:a.alias}),(0,b.jsxs)("span",{className:"text-cyan-300/60",children:[" (",a.hostname||"—",") "]}),(0,b.jsx)("span",{className:"text-cyan-400/80",children:"上创建"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>r(!0),className:"text-[11px] text-cyan-400 hover:text-cyan-200 underline-offset-2 hover:underline",children:"详情 →"})]}),(0,b.jsx)(j,{runtimes:a.runtimes_supported,className:"mt-1"})]})}return(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs text-gray-400",children:[(0,b.jsxs)("span",{children:["选择一台服务器(",k.length," 台 daemon 在线)"]}),q&&1===k.length&&1===m.length&&(0,b.jsx)("button",{type:"button",onClick:()=>r(!1),className:"text-[11px] text-gray-500 hover:text-gray-300",children:"← 折叠"})]}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-2 md:grid-cols-2 lg:grid-cols-3",children:m.map(a=>(0,b.jsx)(i,{host:a,selected:!!(a.daemon&&a.daemon.daemon_node_id===d),onPick:()=>a.daemon&&e(a.daemon.daemon_node_id,a.daemon)},a.hostname))})]})}function i({host:a,selected:c,onPick:d}){let e=a.daemon,f=e?.host_telemetry?.alert_level||("online"===a.status?"green":"gray");return(0,b.jsxs)("div",{className:`flex w-full flex-col gap-1.5 rounded-md border px-3 py-2.5 text-left text-xs transition-colors ${c?"border-cyan-600 bg-cyan-900/15 text-cyan-100":"border-[#26262b] bg-[#0e0e10] text-gray-300 hover:border-[#3a3a41]"}`,children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"truncate font-semibold",children:a.hostname}),(0,b.jsx)(k,{level:f})]}),(0,b.jsx)("div",{className:"flex flex-wrap gap-x-3 gap-y-1 text-[10px] text-gray-500",children:(0,b.jsx)("span",{children:"online"===a.status?"online":"offline"===a.status?"offline":"status unknown"})}),e?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"truncate text-[11px] text-gray-500",children:["daemon: ",e.alias]}),(0,b.jsx)(j,{runtimes:e.runtimes_supported}),(0,b.jsx)("button",{type:"button",onClick:d,"aria-pressed":c,className:"mt-1 rounded-md px-2.5 py-1.5 text-[11px] font-medium",style:{background:c?"#0891b2":"#1c1c1f",color:c?"#ffffff":"#67e8f9"},children:c?"已选择这台服务器":"在这台服务器创建"})]}):(0,b.jsxs)("div",{className:"mt-1 rounded-md border px-2 py-2",style:{borderColor:"rgb(245 158 11 / 0.35)",background:"rgb(245 158 11 / 0.10)",color:"#fef3c7"},children:[(0,b.jsx)("div",{className:"font-semibold",children:"无 daemon,不能在这里创建节点"}),(0,b.jsx)("div",{className:"mt-0.5 text-[11px]",style:{color:"rgb(253 230 138 / 0.75)"},children:"去这台服务器的终端安装并启动 daemon 后再回来选择。"}),(0,b.jsx)("button",{type:"button",onClick:()=>navigator.clipboard?.writeText(`anet daemon up ${a.hostname}-daemon`).catch(()=>{}),className:"mt-2 rounded-md px-2 py-1 text-[11px] font-medium",style:{background:"rgb(217 119 6 / 0.20)",color:"#fde68a"},children:"复制安装命令"})]})]})}function j({runtimes:a,className:c=""}){return a&&0!==a.length?(0,b.jsx)("div",{className:`flex flex-wrap gap-1 ${c}`,children:a.map(a=>(0,b.jsx)("span",{className:"rounded bg-[#1c1c1f] px-1.5 py-0.5 text-[10px] text-gray-400",children:a},a))}):(0,b.jsx)("div",{className:`text-[10px] text-gray-600 ${c}`,children:"runtimes_supported: —"})}function k({level:a}){return(0,b.jsx)("span",{className:`rounded border px-1.5 py-0.5 text-[10px] ${{green:"bg-green-600/20 text-green-300 border-green-700/40",yellow:"bg-amber-600/20 text-amber-300 border-amber-700/40",red:"bg-red-600/20 text-red-300 border-red-700/40",gray:"bg-gray-600/20 text-gray-400 border-gray-700/40"}[a]}`,children:{green:"正常",yellow:"注意",red:"警报",gray:"离线"}[a]})}let l=[{id:"claude-agent-sdk",label:"Claude Agent SDK",models:["deepseek-v4-pro","MiniMax-M3","claude-sonnet-4-6","claude-opus-4-x"],defaultModel:"claude-sonnet-4-6"},{id:"codex-sdk",label:"Codex SDK",models:["gpt-5.5"],defaultModel:"gpt-5.5"},{id:"grok-build-acp",label:"Grok (build-acp)",models:["grok-build"],defaultModel:"grok-build"}],m=["default","acceptEdits","plan","bypassPermissions"],n=["服务器","名字","Runtime","模型","参数","确认"];function o({networkId:a,onClose:d,onCreated:e}){let[f,i]=(0,c.useState)(0),[j,k]=(0,c.useState)(null),[p,q]=(0,c.useState)(null),[r,s]=(0,c.useState)(""),[t,u]=(0,c.useState)(l[0].id),[v,w]=(0,c.useState)(""),[x,y]=(0,c.useState)("default"),[z,A]=(0,c.useState)(""),[B,C]=(0,c.useState)(""),[D,E]=(0,c.useState)(""),[F,G]=(0,c.useState)("form"),[H,I]=(0,c.useState)(""),[J,K]=(0,c.useState)(!1),{networkId:L}=(0,g.useNetworkId)(),M=a||L;(0,c.useEffect)(()=>{let a=a=>{"Escape"===a.key&&"creating"!==F&&d()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[d,F]),(0,c.useEffect)(()=>{if("done"!==F||J)return;let a=!0,b=0,c=r.trim(),d=async()=>{b+=1;try{let b=M?`/api/hub/status?network_id=${encodeURIComponent(M)}`:"/api/hub/status",d=await fetch(b,{cache:"no-store"}),e=await d.json().catch(()=>({})),f=Array.isArray(e?.sessions)?e.sessions:Array.isArray(e)?e:[];if(a&&f.some(a=>a?.alias===c))return void K(!0)}catch{}a&&b<16&&window.setTimeout(d,1500)},e=window.setTimeout(d,1200);return()=>{a=!1,window.clearTimeout(e)}},[F,J,M,r]);let N=l.find(a=>a.id===t)||l[0],O=r.trim().length>0,P=0===f&&!!j||1===f&&O||f>=2&&f<n.length,Q="creating"===F;async function R(){if(!j){G("error"),I("创建失败:请先选择一台有 daemon 在线的服务器");return}G("creating"),I("");let b=a=>""===a.trim()?void 0:Number(a),c=v||N.defaultModel,d={name:r.trim(),runtime:t,model:c,flags:{permissionMode:x,maxTurns:b(z),budget:b(B),timeout:b(D)}};try{let b=await fetch("/api/anet/node-create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({node_spec:d,daemon_node_id:j,...a?{network_id:a}:{}})}),c=await b.json().catch(()=>({}));b.ok&&c?.ok?(G("done"),I("创建请求已下发,节点正在拉起…"),e?.(c.result)):c?.unconfirmed?(G("unconfirmed"),I(`后端 create_node 未就绪:${c?.error||"不可用"}(测试 hub 可能未含 #299)`)):(G("error"),I(c?.error?`创建失败:${c.error}`:"创建失败"))}catch(a){G("error"),I(`创建失败:${a instanceof Error?a.message:"网络错误"}`)}}let S="w-full rounded-md border border-[#26262b] bg-[#0e0e10] px-3 py-2 text-sm text-gray-200 focus:border-cyan-600 focus:outline-none";return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40",onClick:d,"aria-hidden":!0}),(0,b.jsxs)("div",{role:"dialog","aria-label":"新建节点",className:"fixed left-1/2 top-1/2 z-50 w-[min(94vw,440px)] md:w-[min(92vw,720px)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-[#26262b] bg-[#161618] shadow-2xl",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-[#26262b] px-4 py-3",children:[(0,b.jsx)("div",{className:"text-sm font-semibold text-white",children:"新建节点"}),(0,b.jsx)("button",{onClick:d,"aria-label":"关闭",className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-gray-500 hover:bg-[var(--hover-tint)] hover:text-[var(--fg)]",children:(0,b.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":!0,children:(0,b.jsx)("path",{d:"M18 6 6 18M6 6l12 12"})})})]}),(0,b.jsx)("div",{className:"flex items-center gap-1.5 px-4 pt-3",children:n.map((a,c)=>(0,b.jsxs)("div",{className:"flex flex-1 flex-col items-center gap-1",children:[(0,b.jsx)("div",{className:`h-1 w-full rounded-full ${c<=f?"bg-cyan-500":"bg-[#26262b]"}`}),(0,b.jsx)("span",{className:`text-[10px] ${c===f?"text-cyan-300":"text-gray-600"}`,children:a})]},a))}),(0,b.jsx)("div",{className:"min-h-[180px] px-4 py-4",children:"form"!==F?(0,b.jsxs)("div",{className:"flex h-[180px] flex-col items-center justify-center gap-3 text-center",children:[Q&&(0,b.jsxs)("svg",{className:"h-7 w-7 animate-spin text-cyan-400",viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,children:[(0,b.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,b.jsx)("path",{className:"opacity-90",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})]}),(0,b.jsx)("div",{className:`text-sm ${"done"===F?"text-green-300":"error"===F?"text-red-300":"unconfirmed"===F?"text-amber-300":"text-gray-300"}`,children:Q?"正在创建…":"done"===F&&J?`✓ ${r.trim()} 已上线`:H}),"done"===F&&(J?(0,b.jsx)("p",{className:"text-[11px] text-green-500/80",children:"节点已注册,已出现在节点列表。"}):(0,b.jsxs)("p",{className:"inline-flex items-center gap-1.5 text-[11px] text-gray-500",children:[(0,b.jsxs)("svg",{className:"h-3 w-3 animate-spin",viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,children:[(0,b.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,b.jsx)("path",{className:"opacity-90",fill:"currentColor",d:"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z"})]}),"正在监测 ",r.trim()," 注册…(最长 ~24s)"]}))]}):(0,b.jsxs)(b.Fragment,{children:[0===f&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("span",{className:"text-xs text-gray-400",children:"在哪台机器上创建"}),(0,b.jsx)(h,{networkId:M||void 0,value:j,onChange:(a,b)=>{k(a),q(b);let c=b?.runtimes_supported;c&&c.length>0&&!c.includes(t)&&(u(c[0]),w(""))}}),!j&&(0,b.jsxs)("p",{className:"text-[11px] text-gray-600",children:["没选服务器之前无法继续;如果列表是空的,按提示在目标机器上跑 ",(0,b.jsx)("code",{className:"rounded bg-[var(--code-bg)] px-1 py-0.5",children:"anet daemon up <name>"}),"。"]})]}),1===f&&(0,b.jsxs)("label",{className:"block space-y-1.5",children:[(0,b.jsx)("span",{className:"text-xs text-gray-400",children:"节点名字"}),(0,b.jsx)("input",{autoFocus:!0,value:r,onChange:a=>s(a.target.value),placeholder:"例如 my-agent-1",className:S}),!O&&(0,b.jsx)("span",{className:"text-[11px] text-gray-600",children:"名字不能为空"})]}),2===f&&(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("span",{className:"text-xs text-gray-400",children:["Runtime",p?`(${p.alias} 支持)`:""]}),l.map(a=>{let c=p?.runtimes_supported,d=Array.isArray(c)&&c.length>0&&!c.includes(a.id),e=t===a.id;return(0,b.jsxs)("button",{type:"button",disabled:d,onClick:()=>{d||(u(a.id),w(""))},title:d?`${p?.alias||"该 daemon"} 未声明支持此 runtime`:void 0,className:`flex w-full items-center justify-between rounded-md border px-3 py-2 text-sm transition-colors ${d?"border-[#1c1c1f] bg-[#0a0a0c] text-gray-600 cursor-not-allowed":e?"border-cyan-600 bg-cyan-900/15 text-cyan-200":"border-[#26262b] bg-[#0e0e10] text-gray-300 hover:border-[#3a3a41]"}`,children:[(0,b.jsxs)("span",{children:[a.label,d&&(0,b.jsx)("span",{className:"ml-2 text-[10px] text-gray-700",children:"该 daemon 不支持"})]}),e&&!d&&(0,b.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:(0,b.jsx)("path",{d:"M20 6 9 17l-5-5"})})]},a.id)})]}),3===f&&(0,b.jsxs)("label",{className:"block space-y-1.5",children:[(0,b.jsxs)("span",{className:"text-xs text-gray-400",children:["模型(",N.label,")"]}),(0,b.jsxs)("select",{value:v,onChange:a=>w(a.target.value),className:S,children:[(0,b.jsxs)("option",{value:"",children:["默认(",N.defaultModel,")"]}),N.models.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]})]}),4===f&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("label",{className:"block space-y-1.5",children:[(0,b.jsx)("span",{className:"text-xs text-gray-400",children:"permissionMode"}),(0,b.jsx)("select",{value:x,onChange:a=>y(a.target.value),className:S,children:m.map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]}),(0,b.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[(0,b.jsxs)("label",{className:"space-y-1",children:[(0,b.jsx)("span",{className:"text-[11px] text-gray-500",children:"maxTurns"}),(0,b.jsx)("input",{inputMode:"numeric",value:z,onChange:a=>A(a.target.value),className:S})]}),(0,b.jsxs)("label",{className:"space-y-1",children:[(0,b.jsx)("span",{className:"text-[11px] text-gray-500",children:"budget"}),(0,b.jsx)("input",{inputMode:"numeric",value:B,onChange:a=>C(a.target.value),className:S})]}),(0,b.jsxs)("label",{className:"space-y-1",children:[(0,b.jsx)("span",{className:"text-[11px] text-gray-500",children:"timeout"}),(0,b.jsx)("input",{inputMode:"numeric",value:D,onChange:a=>E(a.target.value),className:S})]})]})]}),5===f&&(0,b.jsx)("div",{className:"space-y-2 text-sm",children:(0,b.jsx)("div",{className:"rounded-md border border-[#26262b] bg-[#0e0e10] divide-y divide-[#1c1c1f]",children:[["服务器",j?`${j.slice(0,24)}…`:"—"],["名字",r.trim()||"—"],["Runtime",N.label],["模型",v||`默认(${N.defaultModel})`],["permissionMode",x],["maxTurns / budget / timeout",`${z||"—"} / ${B||"—"} / ${D||"—"}`]].map(([a,c])=>(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3 px-3 py-2",children:[(0,b.jsx)("span",{className:"shrink-0 text-gray-500 text-xs",children:a}),(0,b.jsx)("span",{className:"text-right text-gray-200 text-xs break-all",children:c})]},a))})})]})}),"form"===F?(0,b.jsxs)("div",{className:"flex items-center justify-between border-t border-[#26262b] px-4 py-3",children:[(0,b.jsx)("button",{type:"button",onClick:()=>0===f?d():i(f-1),className:"rounded-md px-3 py-1.5 text-sm text-gray-400 hover:text-gray-200",children:0===f?"取消":"上一步"}),f<n.length-1?(0,b.jsx)("button",{type:"button",disabled:!P,onClick:()=>i(f+1),className:`rounded-md px-4 py-1.5 text-sm font-medium ${P?"bg-cyan-600 text-white hover:bg-cyan-500":"bg-[#1c1c1f] text-gray-600 cursor-not-allowed"}`,children:"下一步"}):(0,b.jsx)("button",{type:"button",onClick:R,className:"rounded-md bg-green-600 px-4 py-1.5 text-sm font-medium text-white hover:bg-green-500",children:"创建节点"})]}):(0,b.jsxs)("div",{className:"flex items-center justify-end border-t border-[#26262b] px-4 py-3",children:[(0,b.jsx)("button",{type:"button",onClick:d,className:"rounded-md bg-[#1c1c1f] px-4 py-1.5 text-sm text-gray-200 hover:bg-[#26262b]",children:"done"===F?"完成":"关闭"}),("error"===F||"unconfirmed"===F)&&(0,b.jsx)("button",{type:"button",onClick:()=>G("form"),className:"ml-2 rounded-md bg-cyan-600 px-4 py-1.5 text-sm text-white hover:bg-cyan-500",children:"返回修改"})]})]})]})}var p=a.i(12309),q=a.i(53142),r=a.i(1720),s=a.i(78287),t=a.i(86512),u=a.i(43370),v=a.i(41443),w=a.i(19933),x=a.i(6439),y=a.i(35112),z=a.i(51269);function A({alias:a,x:d,y:e,onClose:f}){let h=(0,u.usePinned)(a),i=(0,t.useMuted)(a),{networkId:j}=(0,g.useNetworkId)(),{unreadCount:k}=(0,x.useChatUnread)(),l=k(a),m=(0,c.useRef)(null);(0,c.useLayoutEffect)(()=>{},[d,e]),(0,c.useEffect)(()=>{let a=a=>{m.current&&!m.current.contains(a.target)&&f()},b=a=>{"Escape"===a.key&&(a.stopPropagation(),f())};return document.addEventListener("mousedown",a,!0),document.addEventListener("keydown",b),()=>{document.removeEventListener("mousedown",a,!0),document.removeEventListener("keydown",b)}},[f]);let n=a=>()=>{a(),f()},o="group w-full text-left flex items-center gap-2.5 px-2.5 py-1.5 text-[13px] font-medium text-[var(--fg)] hover:bg-[rgba(125,211,252,0.10)] hover:text-white active:bg-[rgba(125,211,252,0.18)] disabled:text-[var(--fg-dim)] disabled:cursor-not-allowed disabled:hover:bg-transparent",p=(0,b.jsxs)("div",{ref:m,role:"menu","aria-label":(0,z.t)(`节点 ${a} 操作菜单`,`Actions for node ${a}`),"data-testid":"node-context-menu","data-target-alias":a,style:{position:"fixed",top:e,left:d,width:200,zIndex:60},className:"rounded-lg border border-[var(--border)] bg-[var(--menu-bg)] py-1",onContextMenu:a=>a.preventDefault(),children:[(0,b.jsxs)("button",{type:"button",role:"menuitem","data-testid":"ctx-pin",onClick:n(()=>(0,u.togglePin)(a)),className:o,children:[(0,b.jsx)(B,{className:"shrink-0 w-5 h-5 text-[var(--fg-muted)] group-hover:text-[var(--hl)]"}),h?(0,z.t)("取消置顶","Unpin"):(0,z.t)("置顶会话","Pin conversation")]}),(0,b.jsxs)("button",{type:"button",role:"menuitem","data-testid":"ctx-mute",onClick:n(()=>(0,t.toggleMute)(a)),className:o,children:[(0,b.jsx)(C,{muted:!0,className:"shrink-0 w-5 h-5 text-[var(--fg-muted)] group-hover:text-[var(--hl)]"}),i?(0,z.t)("取消免打扰","Unmute"):(0,z.t)("免打扰","Mute")]}),(0,b.jsxs)("button",{type:"button",role:"menuitem","data-testid":"ctx-mark-read",onClick:n(()=>(0,x.markChatRead)(a,j)),disabled:0===l,className:o,children:[(0,b.jsx)(D,{className:"shrink-0 w-5 h-5 text-[var(--fg-muted)] group-hover:text-[var(--hl)] group-disabled:text-[var(--fg-dim)]"}),(0,z.t)(l>0?`标记已读 (${l})`:"标记已读",l>0?`Mark ${l} read`:"Mark read")]})]});return"u"<typeof document?null:(0,y.createPortal)(p,document.body)}function B({className:a}){return(0,b.jsxs)("svg",{className:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("path",{d:"M12 17v5"}),(0,b.jsx)("path",{d:"M5 10l7 7 7-7"}),(0,b.jsx)("path",{d:"M5 10l3-8h8l3 8z"})]})}function C({className:a,muted:c}){return(0,b.jsxs)("svg",{className:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("path",{d:"M15 17h5l-1.4-1.4A2 2 0 0118 14.2V11a6 6 0 00-12 0v3.2c0 .5-.2 1-.6 1.4L4 17h5"}),(0,b.jsx)("path",{d:"M13.7 21a2 2 0 01-3.4 0"}),c&&(0,b.jsx)("path",{d:"M3 3l18 18"})]})}function D({className:a}){return(0,b.jsx)("svg",{className:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",children:(0,b.jsx)("path",{d:"M5 13l4 4L19 7"})})}function E({session:a,selected:c,unread:d,onSelect:e,onContextMenu:f}){let g=(0,u.usePinned)(a.alias),h=(0,t.useMuted)(a.alias);return(0,b.jsxs)("button",{type:"button","data-node-list-item":!0,"data-node-list-alias":a.alias,"data-selected":c?"true":"false","data-node-pinned":g?"true":"false","data-node-muted":h?"true":"false",onClick:()=>e(a.alias),onContextMenu:b=>f(a.alias,b),style:{height:F,minHeight:F},className:`w-full flex items-center gap-2.5 px-3 py-2.5 text-left transition-colors border-b border-[var(--col-hairline)] ${c?"bg-cyan-500/8":g?"bg-[rgba(125,211,252,0.04)] hover:bg-[rgba(125,211,252,0.08)]":"hover:bg-[var(--bg-elevated)]"}`,children:[(0,b.jsxs)("div",{className:"relative shrink-0",children:[(0,b.jsx)(r.AliasAvatar,{alias:a.alias,size:32}),a.online&&(0,b.jsx)("span",{"aria-hidden":!0,className:"absolute -bottom-0.5 -right-0.5 w-2.5 h-2.5 rounded-full bg-green-400 ring-2 ring-[var(--col-list)]"})]}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("span",{className:`text-[13px] truncate flex items-center gap-1.5 min-w-0 ${c?"text-cyan-200 font-medium":"text-gray-200"}`,children:[(0,b.jsx)("span",{className:"truncate",children:a.alias}),h&&(0,b.jsxs)("svg",{"aria-label":(0,z.t)("已免打扰","Muted"),"data-mute-icon":!0,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"#64748B",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",className:"shrink-0",children:[(0,b.jsx)("path",{d:"M15 17h5l-1.4-1.4A2 2 0 0118 14.2V11a6 6 0 00-4-5.7"}),(0,b.jsx)("path",{d:"M6 8v3.2c0 .5-.2 1-.6 1.4L4 14h9"}),(0,b.jsx)("path",{d:"M13.7 21a2 2 0 01-3.4 0"}),(0,b.jsx)("path",{d:"M3 3l18 18"})]})]}),d>0&&(0,b.jsx)("span",{"aria-label":h?(0,z.t)(`已免打扰,未读 ${d}`,`Muted, ${d} unread`):(0,z.t)(`${d} 条未读`,`${d} unread`),"data-unread-badge":!0,"data-badge-variant":h?"muted":"default",className:`shrink-0 min-w-[16px] h-4 px-1 rounded-full text-[9px] font-semibold leading-4 text-center ${h?"bg-[var(--badge-muted-bg)] text-[var(--badge-muted-fg)]":"bg-[var(--danger)] text-white"}`,children:d>99?"99+":d})]}),(0,b.jsx)("div",{className:"mt-0.5 flex items-center gap-1.5",children:(0,b.jsx)(G,{alias:a.alias,session:a})})]})]},a.alias)}let F=53;function G({alias:a,session:c}){return(0,s.useHasDraft)(a)?(0,b.jsxs)("span",{className:"text-[11px] text-red-400/90 truncate","aria-label":(0,z.t)("有未发送草稿","Unsent draft"),children:[(0,z.t)("[草稿]","[draft]")," ",c.task?c.task.slice(0,40):""]}):c.task?(0,b.jsx)("span",{className:"text-[11px] text-gray-500 truncate",children:c.task}):c.online?(0,b.jsx)("span",{className:"text-[11px] text-gray-600",children:(0,z.t)("空闲","idle")}):(0,b.jsx)("span",{className:"text-[11px] text-gray-600 italic",children:(0,z.t)("离线","offline")})}function H({sessions:a,selectedAlias:d,onSelect:e,search:f,onSearchChange:g}){var h;let i,j,k,l,{unreadCount:m}=(0,x.useChatUnread)(),[n,o]=(0,c.useState)(null),[p,q]=(0,c.useState)(0),[r,s]=(0,c.useState)(600),t=(0,c.useRef)(null),u=(0,c.useRef)({sessions:a,selectedAlias:d,onSelect:e});(0,c.useEffect)(()=>{u.current={sessions:a,selectedAlias:d,onSelect:e}}),(0,c.useEffect)(()=>{},[]),(0,c.useEffect)(()=>{let a=t.current;if(!a)return;let b=()=>s(Math.max(1,a.clientHeight));b();let c=new ResizeObserver(b);return c.observe(a),()=>c.disconnect()},[]);let v=d?a.findIndex(a=>a.alias===d):-1;(0,c.useEffect)(()=>{let a=t.current;if(!a||v<0)return;let b=v*F,c=b+F,d=a.scrollTop;b<a.scrollTop?d=b:c>a.scrollTop+a.clientHeight&&(d=Math.max(0,c-a.clientHeight)),d!==a.scrollTop&&(a.scrollTop=d)},[v]),(0,c.useEffect)(()=>{let b=t.current;if(!b)return;let c=Math.max(0,a.length*F-b.clientHeight);b.scrollTop>c&&(b.scrollTop=c)},[a.length]);let w=(h=a.length,i=Math.max(0,Number.isFinite(p)?p:0),j=Math.max(1,Number.isFinite(r)?r:600),l=Math.min(h,(k=Math.max(0,Math.floor(i/F)-6))+(Math.ceil(j/F)+12)),{start:k,end:l,top:k*F,bottom:Math.max(0,(h-l)*F)}),y=a.slice(w.start,w.end);return(0,b.jsxs)("div",{"data-node-list-rail":!0,"data-node-list-count":a.length,className:"flex flex-col w-full overflow-hidden bg-[var(--col-list)] border-r border-[var(--col-line)]","aria-label":(0,z.t)("节点列表","Node list"),children:[(0,b.jsx)("div",{className:"p-2 border-b border-[var(--col-hairline)] shrink-0",children:(0,b.jsx)("input",{type:"search",value:f,onChange:a=>g(a.target.value),placeholder:(0,z.t)("搜索节点(拼音可)","Search nodes (pinyin ok)"),"aria-label":(0,z.t)("搜索节点","Search nodes"),"data-testid":"rail-search",className:"w-full rounded-md bg-[var(--col-inset)] border border-[rgba(255,255,255,0.08)] px-2.5 py-1.5 text-[12px] text-gray-200 placeholder:text-gray-600 focus:outline-none focus:border-cyan-500/40"})}),(0,b.jsx)("div",{className:"px-3 py-2 text-[11px] text-gray-500 tracking-wide uppercase border-b border-[var(--col-hairline)] shrink-0",children:(0,z.t)(`节点 ${a.length}`,`Nodes \xb7 ${a.length}`)}),n&&(0,b.jsx)(A,{alias:n.alias,x:n.x,y:n.y,onClose:()=>o(null)}),(0,b.jsx)("div",{ref:t,"data-testid":"node-list-scroll","data-virtual-start":w.start,"data-virtual-end":w.end,onScroll:a=>q(a.currentTarget.scrollTop),className:"flex-1 min-h-0 overflow-y-auto pb-[calc(5rem+env(safe-area-inset-bottom))] lg:pb-0",children:0===a.length?f?(0,b.jsxs)("div",{className:"p-4 text-[11px] text-gray-500","data-testid":"rail-search-empty",children:[(0,z.t)(`没有节点匹配 “${f}”`,`No match — no nodes named "${f}"`),(0,b.jsx)("button",{type:"button",onClick:()=>g(""),className:"ml-2 text-cyan-400/80 hover:text-cyan-300 underline-offset-2 hover:underline",children:(0,z.t)("清除","Clear")})]}):(0,b.jsx)("div",{className:"p-4 text-[11px] text-gray-600",children:(0,z.t)("列表为空 —— 右侧的筛选控件或空态说明会告诉你原因。","Rail is empty — the filter controls or empty state on the right explain why.")}):(0,b.jsxs)(b.Fragment,{children:[w.top>0&&(0,b.jsx)("div",{"aria-hidden":!0,style:{height:w.top}}),y.map(a=>(0,b.jsx)(E,{session:a,selected:a.alias===d,unread:m(a.alias),onSelect:e,onContextMenu:(a,b)=>{b.preventDefault(),o({alias:a,x:b.clientX,y:b.clientY})}},a.alias)),w.bottom>0&&(0,b.jsx)("div",{"aria-hidden":!0,style:{height:w.bottom}})]})})]})}var I=a.i(15261),J=a.i(20759);function K({alias:a,anchorRef:b,onClose:d,onOpenSettings:e}){(0,u.usePinned)(a);let f=(0,c.useRef)(null),[g,h]=(0,c.useState)({top:0,left:0,flippedY:!1,flippedX:!1});return(0,c.useLayoutEffect)(()=>{if(!b.current||!f.current)return;let a=b.current.getBoundingClientRect(),c=f.current.getBoundingClientRect(),d=window.innerHeight,e=window.innerWidth,g=a.bottom+4,i=a.right-c.width,j=!1,k=!1;g+c.height+8>d&&(g=Math.max(8,a.top-c.height-4),j=!0),i<8&&(i=a.left,k=!0),h({top:g=Math.max(8,Math.min(g,d-c.height-8)),left:i=Math.max(8,Math.min(i,e-c.width-8)),flippedY:j,flippedX:k})},[b]),(0,c.useEffect)(()=>{let a=a=>{let c=a.target;f.current?.contains(c)||b.current?.contains(c)||d()},c=a=>{"Escape"===a.key&&d()};return document.addEventListener("mousedown",a,!0),document.addEventListener("keydown",c),()=>{document.removeEventListener("mousedown",a,!0),document.removeEventListener("keydown",c)}},[b,d]),null}function L({alias:a,onClose:d,variant:f="column",onBack:g}){let[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(!1),l=(0,c.useRef)(null),{sessions:m}=(0,e.useSessions)(),n=m.find(b=>b.alias===a);return(0,b.jsxs)("aside",{"data-testid":"chat-pane","data-chat-alias":a,className:"page"===f?"relative flex flex-col w-full min-w-0 h-full bg-[var(--col-chat)] pb-[calc(5rem+env(safe-area-inset-bottom))] lg:pb-0":"relative hidden md:flex md:flex-col flex-1 min-w-0 h-full bg-[var(--col-chat)] pb-[calc(5rem+env(safe-area-inset-bottom))] lg:pb-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 px-3 py-2.5 border-b border-[var(--col-line)] bg-[var(--col-chat)] shrink-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:["page"===f&&(0,b.jsx)("button",{type:"button",onClick:g??d,"aria-label":(0,z.t)("返回列表","Back to list"),"data-testid":"chat-back",className:"inline-flex h-8 w-8 -ml-1 items-center justify-center rounded-lg text-gray-400 hover:text-gray-100 hover:bg-[var(--bg-elevated)] transition-colors shrink-0",children:(0,b.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 19l-7-7 7-7"})})}),(0,b.jsx)(r.AliasAvatar,{alias:a,size:26}),(0,b.jsx)("span",{className:"truncate text-sm font-semibold text-white",children:a})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,b.jsx)("button",{ref:l,type:"button",onClick:()=>k(a=>!a),"aria-label":(0,z.t)("会话溢出菜单","Chat overflow menu"),"aria-haspopup":"menu","aria-expanded":j,title:(0,z.t)("更多","More"),"data-testid":"chat-pane-more","data-menu-open":j?"true":"false",className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-gray-500 hover:text-gray-200 hover:bg-[var(--bg-elevated)] transition-colors",children:(0,b.jsxs)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:[(0,b.jsx)("circle",{cx:"12",cy:"5",r:"1.5",fill:"currentColor"}),(0,b.jsx)("circle",{cx:"12",cy:"12",r:"1.5",fill:"currentColor"}),(0,b.jsx)("circle",{cx:"12",cy:"19",r:"1.5",fill:"currentColor"})]})}),(0,b.jsx)("a",{href:`/tasks?to_name=${encodeURIComponent(a)}`,"aria-label":(0,z.t)(`查看 ${a} 的任务`,`View ${a} tasks`),title:(0,z.t)("查看任务","View tasks"),"data-testid":"chat-pane-view-tasks",className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-gray-500 hover:text-gray-200 hover:bg-[var(--bg-elevated)] transition-colors",children:(0,b.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8 7V3M16 7V3M4 11h16M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"})})}),(0,b.jsx)("button",{type:"button",onClick:()=>window.dispatchEvent(new CustomEvent("chat:open-search",{detail:{alias:a}})),"aria-label":(0,z.t)("会话内搜索","In-chat search"),title:(0,z.t)("搜索(⌘/Ctrl+F)","Search (⌘/Ctrl+F)"),"data-testid":"chat-pane-search","data-search-enabled":"true",className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-gray-500 hover:text-gray-200 hover:bg-[var(--bg-elevated)] transition-colors",children:(0,b.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})})}),(0,b.jsx)("button",{type:"button",onClick:d,"aria-label":(0,z.t)("关闭会话","Close chat"),"data-testid":"chat-pane-close",className:"inline-flex h-8 w-8 items-center justify-center rounded-md text-gray-500 hover:text-gray-200 hover:bg-[var(--bg-elevated)] transition-colors",children:(0,b.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})})]})]}),(0,b.jsx)("div",{className:"flex-1 min-h-0",children:(0,b.jsx)(I.TaskChatPanel,{alias:a,onClose:d,inline:!0})}),h&&n&&(0,b.jsx)(J.NodeSettingsPanel,{session:n,onClose:()=>i(!1),positioning:"absolute"}),j&&(0,b.jsx)(K,{alias:a,anchorRef:l,onClose:()=>k(!1),onOpenSettings:()=>i(!0)})]})}var M=a.i(114);function N(a){return a?a.length>12?`${a.slice(0,8)}…`:a:"—"}function O(a){try{return decodeURIComponent(a)}catch{return a}}let P="(min-width: 768px)";function Q(a){let b=window.matchMedia(P);return b.addEventListener("change",a),()=>b.removeEventListener("change",a)}function R({alias:a}){return(0,s.useHasDraft)(a)?(0,b.jsx)("span",{className:"shrink-0 text-[9px] text-red-400/90","aria-label":(0,z.t)("有未发送草稿","Unsent draft"),children:(0,z.t)("[草稿]","[draft]")}):null}a.s(["NodesView",0,function({initialAlias:a=null}){let g,{sessions:h,isLoading:i}=(0,e.useSessions)(),{health:j}=(0,e.useHealth)(),{lifecycleByAlias:k,nodeIdByAlias:l,attrsByAlias:m}=(0,e.useNodeLifecycle)(),{hasUnread:n,unreadCount:s,lastActivityAt:y}=(0,x.useChatUnread)(),{mutate:A}=(0,f.useSWRConfig)(),B=()=>{A(a=>"string"==typeof a&&(a.startsWith("/api/hub/nodes")||a.startsWith("/api/hub/status")))},C=j?.sse_sessions||{},D=a=>(a.network_id?C[`${a.network_id}:${a.alias}`]:void 0)??C[a.alias],[E,F]=(0,c.useState)(""),[G,I]=(0,c.useState)(""),[J,K]=(0,c.useState)([]),[S,T]=(0,c.useState)(""),U=Array.from(new Set(h.map(a=>m[a.alias]?.team).filter(a=>!!a&&a.length>0))).sort(),V=Array.from(new Set(h.flatMap(a=>m[a.alias]?.tags??[]).filter(a=>a&&a.length>0))).sort(),W=U.length>0||V.length>0;(0,v.usePinyinReady)(),(0,t.useMuteVersion)(),(0,u.usePinVersion)();let[X,Y]=(0,c.useState)("list"),[Z,$]=(0,c.useState)(a),_=(0,c.useSyncExternalStore)(Q,()=>window.matchMedia(P).matches,()=>!0),aa=a=>{try{let a=document.querySelector('[data-testid="node-list-scroll"]');a&&(aw.current=a.scrollTop)}catch{}$(a);try{window.history.pushState({},"",`/nodes/${encodeURIComponent(a)}`)}catch{}},ab=()=>{ag.current=!0,$(null);try{window.history.pushState({},"","/nodes")}catch{}};(0,c.useEffect)(()=>{let a=()=>{let a=window.location.pathname.match(/^\/nodes\/([^/]+)\/?$/);$(a?O(a[1]):null)};return window.addEventListener("popstate",a),()=>window.removeEventListener("popstate",a)},[]);let ac=(0,c.useRef)(null);(0,c.useEffect)(()=>{let a=ac.current;if(!a)return;let b=()=>{let b=a.getBoundingClientRect().top;a.style.height=`${Math.max(240,window.innerHeight-b)}px`};b(),window.addEventListener("resize",b),window.addEventListener("scroll",b,{passive:!0});let c=new ResizeObserver(b);return c.observe(document.body),()=>{window.removeEventListener("resize",b),window.removeEventListener("scroll",b),c.disconnect()}},[]);let[ad,ae]=(0,c.useState)(()=>!1),af=(0,c.useRef)(!1),ag=(0,c.useRef)(!1),ah=()=>{ae(a=>{let b=!a;try{window.localStorage.setItem("anet-nodes-manage-view",b?"1":"0")}catch{}return b?(ag.current=!0,Z&&ab()):(ag.current=!1,af.current=!1),b})},[ai,aj]=(0,c.useState)(!1),[ak,al]=(0,c.useState)(()=>!0),am=(0,w.useCollapsibleSearch)({value:S,onChange:T,placeholder:(0,z.t)("搜索节点(支持拼音/首字母)…","Search nodes (pinyin ok)…"),label:"Search nodes",enabled:h.length>0}),an=(0,c.useRef)(new Map),ao=Date.now(),ap=(a,b)=>(b&&an.current.set(a,ao),+(ao-(an.current.get(a)||0)<6e4)),aq=h.map(a=>({...a,online:!!D(a)})).filter(a=>"online"===E?a.online:"offline"===E?!a.online:!E||E===a.status).filter(a=>{if(!G)return!0;let b=m[a.alias]?.team??null;return"__NO_TEAM__"===G?null===b||""===b:b===G}).filter(a=>{if(0===J.length)return!0;let b=m[a.alias]?.tags??[];return J.every(a=>b.includes(a))}).filter(a=>!S||(0,v.pinyinMatch)(a.alias,S)||(0,v.pinyinMatch)(a.agent||"",S)).sort((a,b)=>!!(0,u.isPinned)(b.alias)-!!(0,u.isPinned)(a.alias)||ap(b.alias,b.online)-ap(a.alias,a.online)||y(b.alias)-y(a.alias)),ar=h.filter(a=>D(a)).length,as=aq.length>0?aq[0].alias:null;(0,c.useEffect)(()=>{if(_&&!ad&&!Z&&!ag.current&&!af.current&&as){af.current=!0,$(as);try{window.history.replaceState({},"",`/nodes/${encodeURIComponent(as)}`)}catch{}}},[_,ad,Z,as]);let at=!!Z&&_&&h.length>0,au=!_&&!Z&&!ad&&h.length>0,av=!_&&!!Z,aw=(0,c.useRef)(0);return(0,c.useEffect)(()=>{if(_||Z)return;let a=requestAnimationFrame(()=>{let a=document.querySelector('[data-testid="node-list-scroll"]');a&&(a.scrollTop=aw.current)});return()=>cancelAnimationFrame(a)},[_,Z]),(0,b.jsxs)("div",{ref:ac,"data-testid":"nodes-layout","data-rail-visible":ak?"true":"false",className:"h-[100dvh] max-w-full overflow-hidden bg-[var(--bg)] text-gray-100 flex",children:[(au||_&&(ak||at)&&h.length>0)&&(0,b.jsxs)("aside",{"data-testid":"node-list-rail",className:"flex flex-col w-full md:w-[280px] shrink-0 h-full min-h-0 bg-[var(--col-list)]",children:[(0,b.jsx)(H,{sessions:aq,selectedAlias:Z,onSelect:aa,search:S,onSearchChange:T}),(0,b.jsx)("button",{type:"button",onClick:ah,"data-testid":"manage-view-toggle",className:"shrink-0 border-t border-[var(--col-line)] bg-[var(--col-list)] px-3 py-2 text-left text-[11px] text-gray-500 hover:text-gray-200 transition-colors",children:ad?(0,z.t)("≡ 对话视图","≡ Conversation view"):(0,z.t)("☷ 管理视图","☷ Manage view")})]}),(_?!at:ad&&!Z)&&(0,b.jsxs)("div",{"data-testid":"nodes-main-scroll",className:"flex-1 min-w-0 max-w-full h-full overflow-y-auto overflow-x-hidden p-4 sm:p-6 pb-[calc(5rem+env(safe-area-inset-bottom))] lg:pb-6",children:[!_&&ad&&(0,b.jsx)("button",{type:"button",onClick:ah,"data-testid":"manage-view-toggle-mobile",className:"md:hidden mb-3 rounded-lg border border-[var(--col-line-strong)] bg-[var(--col-list)] px-3 py-1.5 text-[12px] text-gray-400 hover:text-gray-200",children:(0,z.t)("≡ 返回对话视图","≡ Back to conversations")}),(0,b.jsxs)("div",{className:"flex items-center gap-4 mb-4 sm:mb-6",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 min-w-0 flex-1",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold text-white lg:ml-0 ml-10",children:"Nodes"}),(0,b.jsxs)("span",{className:"text-xs bg-green-900/30 text-green-400 px-2 py-0.5 rounded-full border border-green-800/30 shrink-0",children:[ar," online"]}),(0,b.jsxs)("span",{className:"text-xs bg-gray-900/30 text-gray-400 px-2 py-0.5 rounded-full border border-gray-800/30 shrink-0",children:[h.length," total"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{al(a=>{let b=!a;try{window.localStorage.setItem("anet-nodes-rail",b?"1":"0")}catch{}return b})},"aria-pressed":ak,"data-testid":"toggle-rail",title:ak?(0,z.t)("隐藏节点列表","Hide node list"):(0,z.t)("显示节点列表","Show node list"),className:"hidden sm:inline-flex items-center gap-1 rounded-lg border border-[var(--border)] bg-[var(--bg-secondary)] px-2.5 py-1.5 text-xs text-gray-400 hover:text-gray-200 hover:border-[var(--border-hover)] transition-colors",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"text-sm leading-none",children:ak?"☷":"☰"}),(0,b.jsx)("span",{className:"hidden md:inline",children:ak?(0,z.t)("密视图","Dense"):(0,z.t)("分栏","Split")})]}),(0,b.jsxs)("button",{type:"button",onClick:()=>aj(!0),"aria-label":"新建节点",className:"inline-flex items-center gap-1 rounded-lg border border-cyan-700/50 bg-cyan-900/15 px-3 py-1.5 text-sm font-medium text-cyan-300 hover:bg-cyan-900/25 transition-colors",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"text-base leading-none",children:"+"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:"新建节点"})]}),(0,b.jsx)(am.Button,{})]})]}),ai&&(0,b.jsx)(o,{onClose:()=>aj(!1)}),(0,b.jsx)(am.Row,{}),h.length>0&&(0,b.jsxs)("div",{className:"flex flex-wrap gap-3 mb-4 sm:mb-6",children:[(0,b.jsxs)("select",{value:E,onChange:a=>F(a.target.value),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg px-3 py-2 text-base sm:text-sm text-white focus:border-blue-500/50 focus:outline-none",children:[(0,b.jsx)("option",{value:"",children:"All"}),(0,b.jsx)("option",{value:"online",children:"Online"}),(0,b.jsx)("option",{value:"offline",children:"Offline"}),(0,b.jsx)("option",{value:"working",children:"Working"}),(0,b.jsx)("option",{value:"idle",children:"Idle"}),(0,b.jsx)("option",{value:"blocked",children:"Blocked"}),(0,b.jsx)("option",{value:"error",children:"Error"})]}),U.length>0&&(0,b.jsxs)("select",{value:G,onChange:a=>I(a.target.value),"aria-label":(0,z.t)("按 Team 过滤","Filter by team"),"data-testid":"filter-team",className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg px-3 py-2 text-base sm:text-sm text-white focus:border-blue-500/50 focus:outline-none",children:[(0,b.jsx)("option",{value:"",children:(0,z.t)("全部 Team","All teams")}),(0,b.jsx)("option",{value:"__NO_TEAM__",children:(0,z.t)("未分组","(no team)")}),U.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]}),(0,b.jsx)("div",{className:"hidden sm:flex ml-auto rounded-lg border border-[var(--border)] bg-[var(--bg-secondary)] p-1 text-sm",children:["list","grid"].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>Y(a),className:`rounded-md px-3 py-1.5 transition-colors ${X===a?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"list"===a?"List":"Grid"},a))})]}),h.length>0&&V.length>0&&(0,b.jsxs)("div",{className:"mb-4 sm:mb-6 flex flex-wrap items-center gap-1.5","data-testid":"filter-tags-row",children:[(0,b.jsx)("span",{className:"text-[11px] text-gray-500 mr-1",children:(0,z.t)("Tags:","Tags:")}),V.map((a,c)=>{let d=J.includes(a);return d&&J.slice(0,J.indexOf(a)).length,(0,b.jsx)("button",{type:"button",onClick:()=>K(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a]),"aria-pressed":d,"data-tag":a,"data-selected":d?"true":"false",className:`text-xs rounded-full px-2.5 py-1 border transition-colors ${d?"bg-cyan-500/15 text-cyan-200 border-cyan-500/40":"bg-[var(--bg-secondary)] text-gray-400 border-[var(--border)] hover:text-gray-200 hover:border-[var(--border-hover)]"}`,children:a},a)}),J.length>=2&&(0,b.jsx)("span",{className:"text-[10px] text-cyan-300/80 ml-1 tabular-nums","data-testid":"filter-tags-and-hint",children:(0,z.t)(`= 同时具有 ${J.length} 个标签`,`= AND of ${J.length} tags`)}),(J.length>0||G)&&(0,b.jsx)("button",{type:"button",onClick:()=>{K([]),I("")},className:"text-[11px] text-gray-500 hover:text-gray-200 underline-offset-2 hover:underline ml-2","data-testid":"clear-attr-filters",children:(0,z.t)("清除","Clear")})]}),i?(0,b.jsx)("div",{className:"animate-pulse space-y-2",children:[1,2,3,4].map(a=>(0,b.jsx)("div",{className:"h-16 bg-gray-800/20 rounded-lg"},a))}):0===aq.length?0===h.length?(0,b.jsx)(q.NodesEmptyState,{}):G||J.length>0?(0,b.jsx)(q.EmptyState,{variant:"nodes",title:(0,z.t)("没有节点符合当前属性筛选","No nodes match the current attribute filters"),sub:(g=[],"__NO_TEAM__"===G?g.push((0,z.t)("未分组","no-team")):G&&g.push((0,z.t)(`Team = ${G}`,`Team = ${G}`)),1===J.length?g.push((0,z.t)(`标签 ${J[0]}`,`tag ${J[0]}`)):J.length>=2&&g.push((0,z.t)(`同时具有标签 ${J.join(" 和 ")}`,`all of tags: ${J.join(" AND ")}`)),(0,z.t)(`没有节点满足:${g.join(" + ")}。清除筛选或减少标签。`,`No node satisfies: ${g.join(" + ")}. Clear filters or drop a tag.`))}):!W&&(E||S)?(0,b.jsx)(q.EmptyState,{variant:"nodes",title:(0,z.t)("还没有节点被打过标签","No nodes have been tagged yet"),sub:(0,z.t)("先在节点详情里给几个节点分配 team / tag,然后就可以按属性筛选。","Assign team / tag to a few nodes first, then attribute filters will show up.")}):(0,b.jsx)(q.EmptyState,{variant:"nodes",title:"No nodes match your filters",sub:"Try clearing search or status filters, or wait for an agent to register."}):"grid"===X?(0,b.jsx)("div",{className:"grid min-w-0 grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:aq.map(a=>{let c=a.online?a.status:"offline",e="number"==typeof a.progress?a.progress:0,f=n(a.alias);return(0,b.jsxs)("div",{role:"button",tabIndex:0,"data-node-card":!0,"data-node-alias":a.alias,onClick:()=>aa(a.alias),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),aa(a.alias))},className:`relative min-w-0 max-w-full overflow-hidden rounded-xl border border-[var(--border)] bg-[var(--bg-secondary)] p-4 transition-colors hover:border-cyan-500/40 cursor-pointer ${!a.online?"opacity-60":""}`,children:[!a.online&&(0,b.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:(0,b.jsx)("span",{className:"rotate-[-20deg] rounded-xl border border-white/10 bg-black/20 px-5 py-2 text-xl font-bold uppercase tracking-[0.35em] text-[var(--fg)]/10",children:"Offline"})}),(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsxs)("div",{className:"relative shrink-0",children:[(0,b.jsxs)("span",{className:"relative inline-flex shrink-0",children:[(0,b.jsx)(r.AliasAvatar,{alias:a.alias,size:36}),s(a.alias)>0&&(0,t.isMuted)(a.alias)&&(0,b.jsx)("span",{"aria-label":(0,z.t)("有未读(已静音)","Unread (muted)"),className:"absolute -top-0.5 -right-1 h-2.5 w-2.5 rounded-full bg-red-500/80 ring-2 ring-[var(--bg-secondary)]"}),s(a.alias)>0&&!(0,t.isMuted)(a.alias)&&(0,b.jsx)("span",{"aria-label":(0,z.t)(`${s(a.alias)} 条未读`,`${s(a.alias)} unread`),className:"absolute -top-1 -right-1.5 min-w-[16px] h-4 px-1 rounded-full bg-red-500 text-white text-[9px] font-semibold leading-4 text-center ring-2 ring-[var(--bg-secondary)]",children:s(a.alias)>99?"99+":s(a.alias)})]}),f&&(0,b.jsx)("span",{className:"absolute -right-1 -top-1 h-3 w-3 rounded-full border-2 border-[var(--bg-secondary)] bg-red-500"})]}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"truncate text-base font-semibold text-white",children:a.alias}),(0,b.jsx)(R,{alias:a.alias}),f&&(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-red-500/15 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-red-300",children:"New"}),(0,b.jsx)("span",{className:`shrink-0 rounded-md border px-2 py-0.5 text-[10px] uppercase tracking-wide ${M.SESSION_STATUS_CHIP_CLASS[c]||M.SESSION_STATUS_CHIP_CLASS.offline}`,children:c})]}),(0,b.jsxs)("div",{className:"mt-0.5 truncate text-xs text-gray-500",children:[a.agent||"—",(0,b.jsx)("span",{className:"text-gray-700 mx-1.5",children:"·"}),(0,b.jsx)("span",{title:a.server||"",children:N(a.server)})]})]}),(0,b.jsx)("span",{className:"hidden shrink-0 rounded-lg border border-cyan-500/15 bg-cyan-500/5 px-2 py-1 text-[10px] text-cyan-300/70 sm:inline",children:"Tap to chat"}),(0,b.jsx)(p.NodeLifecycleMenu,{nodeId:l[a.alias]||a.node_id||a.alias,alias:a.alias,lifecycleState:k[a.alias],networkId:a.network_id||null,onCompleted:B,attrsSnapshot:m[a.alias]})]}),(0,b.jsxs)("div",{className:"mt-3 rounded-lg border border-[var(--border)] bg-[var(--bg)] px-3 py-2 text-xs",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-gray-600",children:"Current task"}),(0,b.jsx)("span",{className:"text-[10px] text-gray-600",children:(0,d.timeAgo)(a.last_seen_at||a.updated_at)})]}),(0,b.jsx)("div",{className:`mt-1 line-clamp-2 ${a.task?"text-gray-300":"text-gray-600 italic"}`,children:a.task||"No current task"})]}),e>0&&e<100&&(0,b.jsx)("div",{className:"mt-3 h-1.5 overflow-hidden rounded-full bg-gray-800",children:(0,b.jsx)("div",{className:"h-1.5 rounded-full bg-cyan-400 transition-all",style:{width:`${e}%`}})})]},a.alias)})}):(0,b.jsxs)("div",{className:"space-y-1 sm:space-y-2",children:[(0,b.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-10 gap-2 px-4 py-2 text-xs text-gray-600 uppercase",children:[(0,b.jsx)("div",{className:"col-span-1",children:"Status"}),(0,b.jsx)("div",{className:"col-span-2",children:"Alias"}),(0,b.jsx)("div",{className:"col-span-2",children:"Agent · Server"}),(0,b.jsx)("div",{className:"col-span-4",children:"Current Task"}),(0,b.jsx)("div",{className:"col-span-1",children:"Updated"})]}),aq.map(a=>{let c=a.online?a.status:"offline",e=n(a.alias);return(0,b.jsxs)("div",{role:"button",tabIndex:0,"data-node-card":!0,"data-node-alias":a.alias,onClick:()=>aa(a.alias),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),aa(a.alias))},className:`rounded-lg border border-[var(--border)] bg-[var(--bg-secondary)] px-3 py-2 sm:px-4 sm:py-3 transition-colors hover:border-cyan-500/40 cursor-pointer ${!a.online?"opacity-50":""}`,children:[(0,b.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-10 gap-2 items-center",children:[(0,b.jsx)("div",{className:"col-span-1",children:(0,b.jsx)("span",{className:`text-xs px-2 py-0.5 rounded-md border ${M.SESSION_STATUS_CHIP_CLASS[c]||M.SESSION_STATUS_CHIP_CLASS.offline}`,children:c})}),(0,b.jsx)("div",{className:"col-span-2 min-w-0",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsxs)("div",{className:"relative shrink-0",children:[(0,b.jsxs)("span",{className:"relative inline-flex shrink-0",children:[(0,b.jsx)(r.AliasAvatar,{alias:a.alias,size:20}),s(a.alias)>0&&(0,t.isMuted)(a.alias)&&(0,b.jsx)("span",{"aria-label":(0,z.t)("有未读(已静音)","Unread (muted)"),className:"absolute -top-1 -right-1 h-2 w-2 rounded-full bg-red-500/80"}),s(a.alias)>0&&!(0,t.isMuted)(a.alias)&&(0,b.jsx)("span",{"aria-label":(0,z.t)(`${s(a.alias)} 条未读`,`${s(a.alias)} unread`),className:"absolute -top-1.5 -right-2 min-w-[15px] h-[15px] px-1 rounded-full bg-red-500 text-white text-[9px] font-semibold leading-[15px] text-center",children:s(a.alias)>99?"99+":s(a.alias)})]}),e&&(0,b.jsx)("span",{className:"absolute -right-1 -top-1 h-2.5 w-2.5 rounded-full border border-[var(--bg-secondary)] bg-red-500"})]}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-white",children:a.alias}),(0,b.jsx)(R,{alias:a.alias}),e&&(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-red-500/15 px-1.5 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-red-300",children:"New"})]})}),(0,b.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",title:a.server||"",children:(0,b.jsxs)("span",{className:"truncate",children:[a.agent||"--",(0,b.jsx)("span",{className:"text-gray-700 mx-1.5",children:"·"}),N(a.server)]})}),(0,b.jsx)("div",{className:"col-span-4 truncate text-xs text-gray-500",title:a.task||"",children:a.task||"--"}),(0,b.jsxs)("div",{className:"col-span-1 flex items-center justify-between gap-2 text-xs text-gray-500",children:[(0,b.jsx)("span",{className:"truncate",children:(0,d.timeAgo)(a.last_seen_at||a.updated_at)}),(0,b.jsx)(p.NodeLifecycleMenu,{nodeId:l[a.alias]||a.node_id||a.alias,alias:a.alias,lifecycleState:k[a.alias],networkId:a.network_id||null,onCompleted:B,attrsSnapshot:m[a.alias]})]})]}),(0,b.jsxs)("div",{className:"sm:hidden space-y-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,b.jsxs)("div",{className:"relative shrink-0",children:[(0,b.jsx)(r.AliasAvatar,{alias:a.alias,size:28}),e&&(0,b.jsx)("span",{className:"absolute -right-1 -top-1 h-3 w-3 rounded-full border-2 border-[var(--bg-secondary)] bg-red-500"})]}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsx)("div",{className:"truncate text-sm font-medium text-white",children:a.alias}),e&&(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-red-500/15 px-1.5 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-red-300",children:"New"})]}),(0,b.jsxs)("div",{className:"truncate text-[10px] text-gray-500",children:[a.agent||"—"," · ",(0,d.timeAgo)(a.last_seen_at||a.updated_at)]})]}),(0,b.jsx)("span",{className:`shrink-0 text-xs px-2 py-0.5 rounded-md border ${M.SESSION_STATUS_CHIP_CLASS[c]||M.SESSION_STATUS_CHIP_CLASS.offline}`,children:c}),(0,b.jsx)(p.NodeLifecycleMenu,{nodeId:l[a.alias]||a.node_id||a.alias,alias:a.alias,lifecycleState:k[a.alias],networkId:a.network_id||null,onCompleted:B,attrsSnapshot:m[a.alias]})]}),a.task&&(0,b.jsx)("div",{className:"truncate text-xs text-gray-500",children:a.task})]})]},a.alias)})]})]}),Z&&_&&(0,b.jsx)(L,{alias:Z,onClose:ab}),av&&(0,b.jsx)(L,{alias:Z,variant:"page",onBack:ab,onClose:ab})]})},"decodeAliasSegment",0,O],97715)}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=app_nodes_NodesView_tsx_1w6_d8p._.js.map
|