@sleep2agi/agent-network-dashboard 0.6.3-preview.1 → 0.6.3-preview.10
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 +5 -0
- package/.next/build-manifest.json +3 -3
- package/.next/cache/.previewinfo +1 -0
- package/.next/cache/.rscinfo +1 -0
- package/.next/diagnostics/route-bundle-stats.json +56 -39
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +27 -3
- package/.next/routes-manifest.json +30 -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/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +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 +13 -13
- package/.next/server/app/_not-found.segments/_full.segment.rsc +13 -13
- package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +8 -8
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- 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 +15 -15
- package/.next/server/app/admin.segments/_full.segment.rsc +15 -15
- package/.next/server/app/admin.segments/_head.segment.rsc +4 -4
- package/.next/server/app/admin.segments/_index.segment.rsc +8 -8
- package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/admin.segments/admin.segment.rsc +3 -3
- package/.next/server/app/api/anet/host-supervisors/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/anet/host-supervisors/route/build-manifest.json +9 -0
- package/.next/server/app/api/anet/host-supervisors/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/anet/host-supervisors/route.js +7 -0
- package/.next/server/app/api/anet/host-supervisors/route.js.map +5 -0
- package/.next/server/app/api/anet/host-supervisors/route.js.nft.json +1 -0
- package/.next/server/app/api/anet/host-supervisors/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/anet/providers/probe/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/anet/providers/probe/route/build-manifest.json +9 -0
- package/.next/server/app/api/anet/providers/probe/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/anet/providers/probe/route.js +7 -0
- package/.next/server/app/api/anet/providers/probe/route.js.map +5 -0
- package/.next/server/app/api/anet/providers/probe/route.js.nft.json +1 -0
- package/.next/server/app/api/anet/providers/probe/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/anet/providers/probe-results/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/anet/providers/probe-results/route/build-manifest.json +9 -0
- package/.next/server/app/api/anet/providers/probe-results/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/anet/providers/probe-results/route.js +7 -0
- package/.next/server/app/api/anet/providers/probe-results/route.js.map +5 -0
- package/.next/server/app/api/anet/providers/probe-results/route.js.nft.json +1 -0
- package/.next/server/app/api/anet/providers/probe-results/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/anet/providers/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/anet/providers/route/build-manifest.json +9 -0
- package/.next/server/app/api/anet/providers/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/anet/providers/route.js +8 -0
- package/.next/server/app/api/anet/providers/route.js.map +5 -0
- package/.next/server/app/api/anet/providers/route.js.nft.json +1 -0
- package/.next/server/app/api/anet/providers/route_client-reference-manifest.js +3 -0
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +15 -15
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +15 -15
- package/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +8 -8
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- 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 +15 -15
- package/.next/server/app/login.segments/_full.segment.rsc +15 -15
- package/.next/server/app/login.segments/_head.segment.rsc +4 -4
- package/.next/server/app/login.segments/_index.segment.rsc +8 -8
- package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/login.segments/login.segment.rsc +3 -3
- 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 +15 -15
- package/.next/server/app/logs.segments/_full.segment.rsc +15 -15
- package/.next/server/app/logs.segments/_head.segment.rsc +4 -4
- package/.next/server/app/logs.segments/_index.segment.rsc +8 -8
- package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/logs.segments/logs.segment.rsc +3 -3
- 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 +15 -15
- package/.next/server/app/messages.segments/_full.segment.rsc +15 -15
- package/.next/server/app/messages.segments/_head.segment.rsc +4 -4
- package/.next/server/app/messages.segments/_index.segment.rsc +8 -8
- package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/messages.segments/messages.segment.rsc +3 -3
- 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 +15 -15
- package/.next/server/app/node.segments/_full.segment.rsc +15 -15
- package/.next/server/app/node.segments/_head.segment.rsc +4 -4
- package/.next/server/app/node.segments/_index.segment.rsc +8 -8
- package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/node.segments/node.segment.rsc +3 -3
- 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 +15 -15
- package/.next/server/app/nodes.segments/_full.segment.rsc +15 -15
- package/.next/server/app/nodes.segments/_head.segment.rsc +4 -4
- package/.next/server/app/nodes.segments/_index.segment.rsc +8 -8
- package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/nodes.segments/nodes.segment.rsc +3 -3
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/providers/page/app-paths-manifest.json +3 -0
- package/.next/server/app/providers/page/build-manifest.json +17 -0
- package/.next/server/app/providers/page/next-font-manifest.json +11 -0
- package/.next/server/app/providers/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/providers/page/server-reference-manifest.json +4 -0
- package/.next/server/app/providers/page.js +14 -0
- package/.next/server/app/providers/page.js.map +5 -0
- package/.next/server/app/providers/page.js.nft.json +1 -0
- package/.next/server/app/providers/page_client-reference-manifest.js +3 -0
- package/.next/server/app/providers.html +12 -0
- package/.next/server/app/providers.meta +15 -0
- package/.next/server/app/providers.rsc +27 -0
- package/.next/server/app/providers.segments/_full.segment.rsc +27 -0
- package/.next/server/app/providers.segments/_head.segment.rsc +6 -0
- package/.next/server/app/providers.segments/_index.segment.rsc +10 -0
- package/.next/server/app/providers.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/providers.segments/providers/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/providers.segments/providers.segment.rsc +5 -0
- 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 +15 -15
- package/.next/server/app/server-logs.segments/_full.segment.rsc +15 -15
- package/.next/server/app/server-logs.segments/_head.segment.rsc +4 -4
- package/.next/server/app/server-logs.segments/_index.segment.rsc +8 -8
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/server-logs.segments/server-logs.segment.rsc +3 -3
- 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 +15 -15
- package/.next/server/app/servers.segments/_full.segment.rsc +15 -15
- package/.next/server/app/servers.segments/_head.segment.rsc +4 -4
- package/.next/server/app/servers.segments/_index.segment.rsc +8 -8
- package/.next/server/app/servers.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/servers.segments/servers/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/servers.segments/servers.segment.rsc +3 -3
- 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 +15 -15
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +15 -15
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +8 -8
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +3 -3
- package/.next/server/app/settings/networks.segments/settings.segment.rsc +3 -3
- package/.next/server/app/settings/page_client-reference-manifest.js +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 +15 -15
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +15 -15
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +8 -8
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +3 -3
- package/.next/server/app/settings/tokens.segments/settings.segment.rsc +3 -3
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +15 -15
- package/.next/server/app/settings.segments/_full.segment.rsc +15 -15
- package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_index.segment.rsc +8 -8
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +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 +15 -15
- package/.next/server/app/tasks.segments/_full.segment.rsc +15 -15
- package/.next/server/app/tasks.segments/_head.segment.rsc +4 -4
- package/.next/server/app/tasks.segments/_index.segment.rsc +8 -8
- package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/tasks.segments/tasks.segment.rsc +3 -3
- package/.next/server/app-paths-manifest.json +5 -0
- package/.next/server/chunks/00jm_next_dist_esm_build_templates_app-route_0bobkt3.js +3 -0
- package/.next/server/chunks/00jm_next_dist_esm_build_templates_app-route_0bobkt3.js.map +1 -0
- package/.next/server/chunks/0dk5_next-internal_server_app_api_anet_providers_probe-results_route_actions_07.d.5a.js +3 -0
- package/.next/server/chunks/0dk5_next-internal_server_app_api_anet_providers_probe-results_route_actions_07.d.5a.js.map +1 -0
- package/.next/server/chunks/0ykm__next-internal_server_app_api_anet_host-supervisors_route_actions_0g3hek2.js +3 -0
- package/.next/server/chunks/0ykm__next-internal_server_app_api_anet_host-supervisors_route_actions_0g3hek2.js.map +1 -0
- package/.next/server/chunks/0ykm__next-internal_server_app_api_anet_providers_probe_route_actions_05f000..js +3 -0
- package/.next/server/chunks/0ykm__next-internal_server_app_api_anet_providers_probe_route_actions_05f000..js.map +1 -0
- package/.next/server/chunks/0ykm__next-internal_server_app_api_anet_providers_route_actions_10htbhd.js +3 -0
- package/.next/server/chunks/0ykm__next-internal_server_app_api_anet_providers_route_actions_10htbhd.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0-29ynz._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0-2le8-._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0-8_f0o._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__02p2n3n._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__03nze3z._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__03nze3z._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__043tnx2._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__04z62zk._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__07ztet2._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0aqb4n5._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0aqb4n5._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0cphmer._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0cphmer._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0e3ucl1._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0e6yail._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0gx2_6a._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0hg3_8r._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0lhq4ha._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0mkwzz7._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0mkwzz7._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0mxw4vb._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0mzopco._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0o45a4q._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0w1w_w0._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0w1w_w0._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0xtp-et._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0yyo7k5._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0yyo7k5._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0~rwgo1._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0~rwgo1._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__10pvabe._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__10t11zq._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__12r~omy._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__1389~cs._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__13n8t..._.js.map +1 -1
- package/.next/server/chunks/ssr/00jm_next_dist_esm_build_templates_app-page_02lorbl.js +4 -0
- package/.next/server/chunks/ssr/00jm_next_dist_esm_build_templates_app-page_02lorbl.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__030vg4n._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__04mx~5g._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__04mx~5g._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__05kf31s._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__05kf31s._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__096ytyk._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0fhoq8i._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0fhoq8i._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0h5dae6._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0h5dae6._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +3 -3
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard__next-internal_server_app_providers_page_actions_0ou6p43.js +3 -0
- package/.next/server/chunks/ssr/agent-network-dashboard__next-internal_server_app_providers_page_actions_0ou6p43.js.map +1 -0
- package/.next/server/chunks/ssr/agent-network-dashboard_app_012oyw5._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_012oyw5._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_0_d45-d._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_0_d45-d._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_0gd.4pc._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_0gd.4pc._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_12l4oto._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_components_0r7kb.o._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_components_0r7kb.o._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_components_EmptyState_tsx_0aol-el._.js +3 -0
- package/.next/server/chunks/ssr/agent-network-dashboard_app_components_EmptyState_tsx_0aol-el._.js.map +1 -0
- package/.next/server/chunks/ssr/agent-network-dashboard_app_nodes_page_tsx_11haf_p._.js +2 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_nodes_page_tsx_11haf_p._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_providers_page_tsx_0hw2n0v._.js +3 -0
- package/.next/server/chunks/ssr/agent-network-dashboard_app_providers_page_tsx_0hw2n0v._.js.map +1 -0
- package/.next/server/chunks/ssr/agent-network-dashboard_app_tasks_page_tsx_0mwxy4z._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +4 -0
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{10kkhdde5ve~c.js → 0-z_kfck7-6_1.js} +3 -3
- package/.next/static/chunks/049vx3qljs1tt.js +1 -0
- package/.next/static/chunks/06.5euf239uvr.css +1 -0
- package/.next/static/chunks/{0vun~4ljcrj3p.js → 091hae.lhv9t1.js} +2 -2
- package/.next/static/chunks/0chpv7zsh-qrg.js +1 -0
- package/.next/static/chunks/0i-l67o_ae5hk.js +2 -0
- package/.next/static/chunks/{0vus9xpsz0s~i.js → 0l.gu-iqnmeja.js} +1 -1
- package/.next/static/chunks/{149a4l50_3vw-.js → 0mnmn-~ava1vy.js} +1 -1
- package/.next/static/chunks/0o-b62_a66.jr.js +1 -0
- package/.next/static/chunks/0pk6amtz5icbx.js +1 -0
- package/.next/static/chunks/0r4u1.sl.8p15.js +1 -0
- package/.next/static/chunks/0wz0122ym_gr3.js +1 -0
- package/.next/static/chunks/15aqdc5txzq9r.js +1 -0
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/.next/types/routes.d.ts +7 -2
- package/.next/types/validator.ts +45 -0
- package/app/admin/page.tsx +3 -1
- package/app/api/anet/host-supervisors/route.ts +102 -0
- package/app/api/anet/node-config/route.ts +26 -2
- package/app/api/anet/node-create/route.ts +14 -5
- package/app/api/anet/node-lifecycle/route.ts +54 -5
- package/app/api/anet/providers/probe/route.ts +79 -0
- package/app/api/anet/providers/probe-results/route.ts +60 -0
- package/app/api/anet/providers/route.ts +191 -0
- package/app/api/hub/auth/route.ts +0 -12
- package/app/api/hub/networks/route.ts +1 -1
- package/app/api/hub/nodes/route.ts +0 -14
- package/app/api/hub/upload/route.ts +0 -9
- package/app/components/CommandCenter.tsx +3 -6
- package/app/components/CommandPalette.tsx +0 -5
- package/app/components/CreateNodeWizard.tsx +140 -47
- package/app/components/HostSupervisorPicker.tsx +283 -0
- package/app/components/NodeLifecycleMenu.tsx +436 -0
- package/app/components/NodeSettingsPanel.tsx +80 -39
- package/app/components/ProviderFormModal.tsx +303 -0
- package/app/components/ReachabilityMatrix.tsx +196 -0
- package/app/components/Sidebar.tsx +1 -0
- package/app/components/TaskDrawer.tsx +1 -0
- package/app/components/TopoGraph.tsx +4 -8
- package/app/components/UserBar.tsx +37 -0
- package/app/components/types.ts +11 -0
- package/app/lib/chat-unread.ts +0 -6
- package/app/lib/dashboard-auth.ts +0 -12
- package/app/lib/hooks.ts +22 -4
- package/app/lib/hub.ts +4 -0
- package/app/lib/network-context.tsx +0 -6
- package/app/lib/rate-limit.ts +2 -16
- package/app/node/page.tsx +12 -1
- package/app/nodes/page.tsx +42 -2
- package/app/page.tsx +1 -0
- package/app/providers/page.tsx +182 -0
- package/app/settings/networks/page.tsx +1 -1
- package/app/settings/page.tsx +5 -0
- package/app/tasks/[id]/page.tsx +1 -0
- package/app/tasks/page.tsx +1 -0
- package/package.json +1 -1
- package/.next/static/chunks/0-t2rbg9~-oh5.js +0 -1
- package/.next/static/chunks/0iv.0p9_5b36e.js +0 -1
- package/.next/static/chunks/0l_hz3xrjwumg.js +0 -1
- package/.next/static/chunks/0lmdw~i5qjqsg.js +0 -1
- package/.next/static/chunks/0vruzstkdr99w.js +0 -1
- package/.next/static/chunks/0xssg9sin~2xw.js +0 -1
- package/.next/static/chunks/124dtwo1k24ao.css +0 -1
- package/bun.lock +0 -1663
- /package/.next/static/{ZxdmFd_iOEELuA2Km4Q5t → tRPXkJdGLR6a0skqvMgQa}/_buildManifest.js +0 -0
- /package/.next/static/{ZxdmFd_iOEELuA2Km4Q5t → tRPXkJdGLR6a0skqvMgQa}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{ZxdmFd_iOEELuA2Km4Q5t → tRPXkJdGLR6a0skqvMgQa}/_ssgManifest.js +0 -0
package/.next/trace
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":409,"timestamp":3881729333307,"id":4,"parentId":1,"tags":{},"startTime":1782689701580,"traceId":"09415f4cc33a51d0"},{"name":"load-custom-routes","duration":738,"timestamp":3881729333930,"id":5,"parentId":1,"tags":{},"startTime":1782689701580,"traceId":"09415f4cc33a51d0"},{"name":"create-dist-dir","duration":1051,"timestamp":3881729334729,"id":6,"parentId":1,"tags":{},"startTime":1782689701581,"traceId":"09415f4cc33a51d0"},{"name":"clean","duration":35256,"timestamp":3881729336695,"id":7,"parentId":1,"tags":{},"startTime":1782689701583,"traceId":"09415f4cc33a51d0"},{"name":"discover-routes","duration":13385,"timestamp":3881729480325,"id":8,"parentId":1,"tags":{},"startTime":1782689701727,"traceId":"09415f4cc33a51d0"},{"name":"create-root-mapping","duration":191,"timestamp":3881729493772,"id":9,"parentId":1,"tags":{},"startTime":1782689701740,"traceId":"09415f4cc33a51d0"},{"name":"generate-route-types","duration":36893,"timestamp":3881729497760,"id":10,"parentId":1,"tags":{},"startTime":1782689701744,"traceId":"09415f4cc33a51d0"},{"name":"public-dir-conflict-check","duration":124,"timestamp":3881729534761,"id":11,"parentId":1,"tags":{},"startTime":1782689701781,"traceId":"09415f4cc33a51d0"},{"name":"generate-routes-manifest","duration":5641,"timestamp":3881729535037,"id":12,"parentId":1,"tags":{},"startTime":1782689701781,"traceId":"09415f4cc33a51d0"},{"name":"run-turbopack","duration":13178049,"timestamp":3881729547595,"id":14,"parentId":1,"tags":{},"startTime":1782689701794,"traceId":"09415f4cc33a51d0"},{"name":"turbopack-build-events","duration":77,"timestamp":3881729874863,"id":15,"parentId":1,"tags":{},"startTime":1782689702121,"traceId":"09415f4cc33a51d0"},{"name":"run-typescript","duration":10831118,"timestamp":3881742750795,"id":16,"parentId":1,"tags":{},"startTime":1782689714997,"traceId":"09415f4cc33a51d0"},{"name":"generate-required-server-files","duration":3201,"timestamp":3881753583363,"id":18,"parentId":1,"tags":{},"startTime":1782689725830,"traceId":"09415f4cc33a51d0"},{"name":"check-static-error-page","duration":15875,"timestamp":3881753778887,"id":20,"parentId":19,"tags":{},"startTime":1782689726025,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":528058,"timestamp":3881753797717,"id":70,"parentId":22,"tags":{},"startTime":1782689726044,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":544563,"timestamp":3881753781392,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1782689726028,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":624180,"timestamp":3881753798237,"id":74,"parentId":31,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":637280,"timestamp":3881753785236,"id":31,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1782689726032,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":645021,"timestamp":3881753798744,"id":77,"parentId":36,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":656941,"timestamp":3881753786906,"id":36,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1782689726033,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":651940,"timestamp":3881753797290,"id":69,"parentId":21,"tags":{},"startTime":1782689726044,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":669291,"timestamp":3881753780034,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1782689726026,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":657400,"timestamp":3881753798415,"id":75,"parentId":33,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":670069,"timestamp":3881753785831,"id":33,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1782689726032,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":677468,"timestamp":3881753798806,"id":78,"parentId":37,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":689219,"timestamp":3881753787166,"id":37,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1782689726033,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":694562,"timestamp":3881753798908,"id":80,"parentId":39,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":706132,"timestamp":3881753787424,"id":39,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1782689726034,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":695905,"timestamp":3881753797868,"id":71,"parentId":28,"tags":{},"startTime":1782689726044,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":708884,"timestamp":3881753784928,"id":28,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1782689726031,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":695121,"timestamp":3881753799041,"id":81,"parentId":40,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":706710,"timestamp":3881753787510,"id":40,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1782689726034,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":704789,"timestamp":3881753798669,"id":76,"parentId":35,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":717144,"timestamp":3881753786363,"id":35,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1782689726033,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":706466,"timestamp":3881753799109,"id":84,"parentId":44,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":716175,"timestamp":3881753789461,"id":44,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1782689726036,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":709752,"timestamp":3881753799118,"id":85,"parentId":46,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":719192,"timestamp":3881753789734,"id":46,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1782689726036,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":717078,"timestamp":3881753797984,"id":72,"parentId":29,"tags":{},"startTime":1782689726044,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":730069,"timestamp":3881753785050,"id":29,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1782689726031,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":718622,"timestamp":3881753799147,"id":87,"parentId":48,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":727923,"timestamp":3881753789898,"id":48,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1782689726036,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":722572,"timestamp":3881753799131,"id":86,"parentId":47,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":731939,"timestamp":3881753789819,"id":47,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1782689726036,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":729358,"timestamp":3881753799094,"id":83,"parentId":42,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":739484,"timestamp":3881753789018,"id":42,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1782689726035,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":729601,"timestamp":3881753799075,"id":82,"parentId":41,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":741159,"timestamp":3881753787568,"id":41,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1782689726034,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":729710,"timestamp":3881753799170,"id":89,"parentId":50,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":738860,"timestamp":3881753790056,"id":50,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1782689726036,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":732916,"timestamp":3881753799182,"id":90,"parentId":51,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":741968,"timestamp":3881753790179,"id":51,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1782689726036,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":736930,"timestamp":3881753799204,"id":92,"parentId":53,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":745806,"timestamp":3881753790368,"id":53,"parentId":19,"tags":{"page":"/api/hub/upload"},"startTime":1782689726037,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":729471,"timestamp":3881753812087,"id":95,"parentId":24,"tags":{},"startTime":1782689726058,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":759575,"timestamp":3881753782027,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1782689726028,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":747331,"timestamp":3881753799216,"id":93,"parentId":54,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":756128,"timestamp":3881753790466,"id":54,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1782689726037,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":749681,"timestamp":3881753799195,"id":91,"parentId":52,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":758637,"timestamp":3881753790282,"id":52,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1782689726037,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":735579,"timestamp":3881753814400,"id":96,"parentId":25,"tags":{},"startTime":1782689726061,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":765997,"timestamp":3881753784047,"id":25,"parentId":19,"tags":{"page":"/api/anet/node-config"},"startTime":1782689726030,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":733701,"timestamp":3881753818931,"id":97,"parentId":26,"tags":{},"startTime":1782689726065,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":768334,"timestamp":3881753784340,"id":26,"parentId":19,"tags":{"page":"/api/anet/node-create"},"startTime":1782689726031,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":754405,"timestamp":3881753799156,"id":88,"parentId":49,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":763647,"timestamp":3881753789960,"id":49,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1782689726036,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":733200,"timestamp":3881753821681,"id":99,"parentId":34,"tags":{},"startTime":1782689726068,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":768935,"timestamp":3881753785994,"id":34,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1782689726032,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":735056,"timestamp":3881753820056,"id":98,"parentId":27,"tags":{},"startTime":1782689726066,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":770509,"timestamp":3881753784650,"id":27,"parentId":19,"tags":{"page":"/api/anet/node-lifecycle"},"startTime":1782689726031,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":758821,"timestamp":3881753799229,"id":94,"parentId":57,"tags":{},"startTime":1782689726046,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":766891,"timestamp":3881753791208,"id":57,"parentId":19,"tags":{"page":"/manifest.webmanifest"},"startTime":1782689726037,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":718885,"timestamp":3881753839373,"id":100,"parentId":32,"tags":{},"startTime":1782689726086,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":772787,"timestamp":3881753785527,"id":32,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1782689726032,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":718391,"timestamp":3881753842064,"id":102,"parentId":45,"tags":{},"startTime":1782689726088,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":770954,"timestamp":3881753789553,"id":45,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1782689726036,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":763112,"timestamp":3881753798879,"id":79,"parentId":38,"tags":{},"startTime":1782689726045,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":774729,"timestamp":3881753787323,"id":38,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1782689726034,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":717758,"timestamp":3881753854559,"id":107,"parentId":59,"tags":{},"startTime":1782689726101,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":780944,"timestamp":3881753791452,"id":59,"parentId":19,"tags":{"page":"/node"},"startTime":1782689726038,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":725736,"timestamp":3881753854578,"id":108,"parentId":60,"tags":{},"startTime":1782689726101,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":788798,"timestamp":3881753791599,"id":60,"parentId":19,"tags":{"page":"/nodes"},"startTime":1782689726038,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":743672,"timestamp":3881753840183,"id":101,"parentId":43,"tags":{},"startTime":1782689726086,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":794695,"timestamp":3881753789218,"id":43,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1782689726035,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":731219,"timestamp":3881753858766,"id":109,"parentId":62,"tags":{},"startTime":1782689726105,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":797859,"timestamp":3881753792193,"id":62,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1782689726038,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":740368,"timestamp":3881753858814,"id":111,"parentId":64,"tags":{},"startTime":1782689726105,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":806663,"timestamp":3881753792574,"id":64,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1782689726039,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":748093,"timestamp":3881753858825,"id":112,"parentId":66,"tags":{},"startTime":1782689726105,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":813544,"timestamp":3881753794209,"id":66,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1782689726040,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":771902,"timestamp":3881753854532,"id":106,"parentId":58,"tags":{},"startTime":1782689726101,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":835223,"timestamp":3881753791274,"id":58,"parentId":19,"tags":{"page":"/messages"},"startTime":1782689726038,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":777165,"timestamp":3881753858847,"id":114,"parentId":68,"tags":{},"startTime":1782689726105,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":841592,"timestamp":3881753794487,"id":68,"parentId":19,"tags":{"page":"/tasks"},"startTime":1782689726041,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":777427,"timestamp":3881753858836,"id":113,"parentId":67,"tags":{},"startTime":1782689726105,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":841931,"timestamp":3881753794364,"id":67,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1782689726041,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":781984,"timestamp":3881753854413,"id":105,"parentId":56,"tags":{},"startTime":1782689726101,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":845383,"timestamp":3881753791050,"id":56,"parentId":19,"tags":{"page":"/logs"},"startTime":1782689726037,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":784580,"timestamp":3881753858858,"id":115,"parentId":61,"tags":{},"startTime":1782689726105,"traceId":"09415f4cc33a51d0"},{"name":"check-page","duration":851745,"timestamp":3881753791745,"id":61,"parentId":19,"tags":{"page":"/"},"startTime":1782689726038,"traceId":"09415f4cc33a51d0"},{"name":"is-page-static","duration":846771,"timestamp":3881753798120,"id":73,"parentId":30,"tags":{},"startTime":1782689726044,"traceId":"09415f4cc33a51d0"}]
|
|
2
|
-
[{"name":"check-page","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":267,"timestamp":4449624028224,"id":4,"parentId":1,"tags":{},"startTime":1783257596275,"traceId":"812c2caf3155117d"},{"name":"load-custom-routes","duration":493,"timestamp":4449624028666,"id":5,"parentId":1,"tags":{},"startTime":1783257596275,"traceId":"812c2caf3155117d"},{"name":"create-dist-dir","duration":704,"timestamp":4449624029199,"id":6,"parentId":1,"tags":{},"startTime":1783257596275,"traceId":"812c2caf3155117d"},{"name":"clean","duration":34586,"timestamp":4449624030551,"id":7,"parentId":1,"tags":{},"startTime":1783257596277,"traceId":"812c2caf3155117d"},{"name":"discover-routes","duration":11951,"timestamp":4449624155187,"id":8,"parentId":1,"tags":{},"startTime":1783257596401,"traceId":"812c2caf3155117d"},{"name":"create-root-mapping","duration":118,"timestamp":4449624167198,"id":9,"parentId":1,"tags":{},"startTime":1783257596413,"traceId":"812c2caf3155117d"},{"name":"generate-route-types","duration":41491,"timestamp":4449624170341,"id":10,"parentId":1,"tags":{},"startTime":1783257596417,"traceId":"812c2caf3155117d"},{"name":"public-dir-conflict-check","duration":132,"timestamp":4449624211926,"id":11,"parentId":1,"tags":{},"startTime":1783257596458,"traceId":"812c2caf3155117d"},{"name":"generate-routes-manifest","duration":5680,"timestamp":4449624212175,"id":12,"parentId":1,"tags":{},"startTime":1783257596458,"traceId":"812c2caf3155117d"},{"name":"run-turbopack","duration":7022359,"timestamp":4449624224855,"id":14,"parentId":1,"tags":{},"startTime":1783257596471,"traceId":"812c2caf3155117d"},{"name":"turbopack-build-events","duration":100,"timestamp":4449624562228,"id":15,"parentId":1,"tags":{},"startTime":1783257596809,"traceId":"812c2caf3155117d"},{"name":"run-typescript","duration":11844187,"timestamp":4449631259462,"id":16,"parentId":1,"tags":{},"startTime":1783257603506,"traceId":"812c2caf3155117d"},{"name":"generate-required-server-files","duration":3094,"timestamp":4449643105185,"id":18,"parentId":1,"tags":{},"startTime":1783257615351,"traceId":"812c2caf3155117d"},{"name":"check-static-error-page","duration":16372,"timestamp":4449643278440,"id":20,"parentId":19,"tags":{},"startTime":1783257615525,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":524542,"timestamp":4449643297888,"id":75,"parentId":22,"tags":{},"startTime":1783257615544,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":541577,"timestamp":4449643281019,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1783257615527,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":621701,"timestamp":4449643298159,"id":77,"parentId":30,"tags":{},"startTime":1783257615544,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":634995,"timestamp":4449643284969,"id":30,"parentId":19,"tags":{"page":"/api/anet/providers/probe"},"startTime":1783257615531,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":628978,"timestamp":4449643297508,"id":74,"parentId":21,"tags":{},"startTime":1783257615544,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":646956,"timestamp":4449643279592,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1783257615526,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":646491,"timestamp":4449643301116,"id":82,"parentId":36,"tags":{},"startTime":1783257615547,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":661030,"timestamp":4449643286654,"id":36,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1783257615533,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":656457,"timestamp":4449643300099,"id":80,"parentId":34,"tags":{},"startTime":1783257615546,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":670727,"timestamp":4449643285899,"id":34,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1783257615532,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":691887,"timestamp":4449643301298,"id":85,"parentId":40,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":704674,"timestamp":4449643288591,"id":40,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1783257615535,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":698183,"timestamp":4449643301263,"id":84,"parentId":39,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":711025,"timestamp":4449643288495,"id":39,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1783257615535,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":708282,"timestamp":4449643301423,"id":86,"parentId":41,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":721116,"timestamp":4449643288655,"id":41,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1783257615535,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":712287,"timestamp":4449643299829,"id":79,"parentId":33,"tags":{},"startTime":1783257615546,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":726421,"timestamp":4449643285755,"id":33,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1783257615532,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":717628,"timestamp":4449643301454,"id":87,"parentId":42,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":730445,"timestamp":4449643288719,"id":42,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1783257615535,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":717926,"timestamp":4449643301471,"id":88,"parentId":43,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":730674,"timestamp":4449643288771,"id":43,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1783257615535,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":719792,"timestamp":4449643301492,"id":90,"parentId":45,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":732445,"timestamp":4449643288883,"id":45,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1783257615535,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":727553,"timestamp":4449643301505,"id":91,"parentId":46,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":740182,"timestamp":4449643288941,"id":46,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1783257615535,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":729990,"timestamp":4449643300264,"id":81,"parentId":35,"tags":{},"startTime":1783257615547,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":744212,"timestamp":4449643286084,"id":35,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1783257615532,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":729945,"timestamp":4449643301517,"id":92,"parentId":48,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":742285,"timestamp":4449643289237,"id":48,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1783257615536,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":733232,"timestamp":4449643301535,"id":94,"parentId":51,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":745159,"timestamp":4449643289652,"id":51,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1783257615536,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":735119,"timestamp":4449643301546,"id":95,"parentId":52,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":747002,"timestamp":4449643289711,"id":52,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1783257615536,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":738229,"timestamp":4449643301528,"id":93,"parentId":50,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":750231,"timestamp":4449643289572,"id":50,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1783257615536,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":738407,"timestamp":4449643301558,"id":96,"parentId":53,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":750704,"timestamp":4449643289770,"id":53,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1783257615536,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":740218,"timestamp":4449643301566,"id":97,"parentId":54,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":752004,"timestamp":4449643289820,"id":54,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1783257615536,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":743986,"timestamp":4449643301593,"id":99,"parentId":56,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":755674,"timestamp":4449643289951,"id":56,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1783257615536,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":749746,"timestamp":4449643301605,"id":100,"parentId":57,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":761383,"timestamp":4449643290015,"id":57,"parentId":19,"tags":{"page":"/api/hub/upload"},"startTime":1783257615536,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":751560,"timestamp":4449643301580,"id":98,"parentId":55,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":763286,"timestamp":4449643289897,"id":55,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1783257615536,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":751420,"timestamp":4449643306693,"id":103,"parentId":24,"tags":{},"startTime":1783257615553,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":776584,"timestamp":4449643281574,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1783257615528,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":756990,"timestamp":4449643301625,"id":102,"parentId":61,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":768093,"timestamp":4449643290560,"id":61,"parentId":19,"tags":{"page":"/manifest.webmanifest"},"startTime":1783257615537,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":757984,"timestamp":4449643301192,"id":83,"parentId":37,"tags":{},"startTime":1783257615547,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":772348,"timestamp":4449643286866,"id":37,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1783257615533,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":760612,"timestamp":4449643301614,"id":101,"parentId":58,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":772182,"timestamp":4449643290087,"id":58,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1783257615536,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":747807,"timestamp":4449643316690,"id":106,"parentId":26,"tags":{},"startTime":1783257615563,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":780795,"timestamp":4449643283742,"id":26,"parentId":19,"tags":{"page":"/api/anet/node-config"},"startTime":1783257615530,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":757116,"timestamp":4449643308126,"id":104,"parentId":25,"tags":{},"startTime":1783257615554,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":782951,"timestamp":4449643283485,"id":25,"parentId":19,"tags":{"page":"/api/anet/host-supervisors"},"startTime":1783257615530,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":746320,"timestamp":4449643321280,"id":107,"parentId":27,"tags":{},"startTime":1783257615568,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":783592,"timestamp":4449643284046,"id":27,"parentId":19,"tags":{"page":"/api/anet/node-create"},"startTime":1783257615530,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":741379,"timestamp":4449643330303,"id":108,"parentId":31,"tags":{},"startTime":1783257615577,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":786545,"timestamp":4449643285180,"id":31,"parentId":19,"tags":{"page":"/api/anet/providers"},"startTime":1783257615531,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":770417,"timestamp":4449643301483,"id":89,"parentId":44,"tags":{},"startTime":1783257615548,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":783103,"timestamp":4449643288833,"id":44,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1783257615535,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":762747,"timestamp":4449643309714,"id":105,"parentId":28,"tags":{},"startTime":1783257615556,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":788107,"timestamp":4449643284412,"id":28,"parentId":19,"tags":{"page":"/api/anet/node-lifecycle"},"startTime":1783257615531,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":730991,"timestamp":4449643344731,"id":111,"parentId":49,"tags":{},"startTime":1783257615591,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":786455,"timestamp":4449643289319,"id":49,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1783257615536,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":734749,"timestamp":4449643342730,"id":109,"parentId":38,"tags":{},"startTime":1783257615589,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":790557,"timestamp":4449643286996,"id":38,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1783257615533,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":734927,"timestamp":4449643343502,"id":110,"parentId":47,"tags":{},"startTime":1783257615590,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":789482,"timestamp":4449643288996,"id":47,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1783257615535,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":781375,"timestamp":4449643298827,"id":78,"parentId":32,"tags":{},"startTime":1783257615545,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":794654,"timestamp":4449643285590,"id":32,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1783257615532,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":785449,"timestamp":4449643298039,"id":76,"parentId":29,"tags":{},"startTime":1783257615544,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":798766,"timestamp":4449643284762,"id":29,"parentId":19,"tags":{"page":"/api/anet/providers/probe-results"},"startTime":1783257615531,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":723871,"timestamp":4449643359975,"id":114,"parentId":60,"tags":{},"startTime":1783257615606,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":793419,"timestamp":4449643290455,"id":60,"parentId":19,"tags":{"page":"/logs"},"startTime":1783257615537,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":735409,"timestamp":4449643360107,"id":119,"parentId":67,"tags":{},"startTime":1783257615606,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":802707,"timestamp":4449643292856,"id":67,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1783257615539,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":742127,"timestamp":4449643360117,"id":120,"parentId":68,"tags":{},"startTime":1783257615606,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":809144,"timestamp":4449643293139,"id":68,"parentId":19,"tags":{"page":"/servers"},"startTime":1783257615539,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":749983,"timestamp":4449643360127,"id":121,"parentId":69,"tags":{},"startTime":1783257615606,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":816866,"timestamp":4449643293291,"id":69,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1783257615540,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":759856,"timestamp":4449643360137,"id":122,"parentId":71,"tags":{},"startTime":1783257615606,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":826243,"timestamp":4449643294059,"id":71,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1783257615540,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":773456,"timestamp":4449643360148,"id":123,"parentId":72,"tags":{},"startTime":1783257615606,"traceId":"812c2caf3155117d"}]
|
|
2
|
+
[{"name":"check-page","duration":839646,"timestamp":4449643294237,"id":72,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1783257615541,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":783204,"timestamp":4449643357375,"id":112,"parentId":23,"tags":{},"startTime":1783257615604,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":859275,"timestamp":4449643281347,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1783257615528,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":784420,"timestamp":4449643357411,"id":113,"parentId":59,"tags":{},"startTime":1783257615604,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":851516,"timestamp":4449643290357,"id":59,"parentId":19,"tags":{"page":"/login"},"startTime":1783257615537,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":782151,"timestamp":4449643360160,"id":124,"parentId":73,"tags":{},"startTime":1783257615606,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":847844,"timestamp":4449643294512,"id":73,"parentId":19,"tags":{"page":"/tasks"},"startTime":1783257615541,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":783170,"timestamp":4449643360057,"id":115,"parentId":62,"tags":{},"startTime":1783257615606,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":852640,"timestamp":4449643290621,"id":62,"parentId":19,"tags":{"page":"/messages"},"startTime":1783257615537,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":785392,"timestamp":4449643360073,"id":116,"parentId":63,"tags":{},"startTime":1783257615606,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":854650,"timestamp":4449643290851,"id":63,"parentId":19,"tags":{"page":"/node"},"startTime":1783257615537,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":788261,"timestamp":4449643360171,"id":125,"parentId":65,"tags":{},"startTime":1783257615606,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":857132,"timestamp":4449643291332,"id":65,"parentId":19,"tags":{"page":"/"},"startTime":1783257615538,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":784669,"timestamp":4449643368720,"id":126,"parentId":70,"tags":{},"startTime":1783257615615,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":859910,"timestamp":4449643293518,"id":70,"parentId":19,"tags":{"page":"/settings"},"startTime":1783257615540,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":803742,"timestamp":4449643360094,"id":118,"parentId":66,"tags":{},"startTime":1783257615606,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":871286,"timestamp":4449643292615,"id":66,"parentId":19,"tags":{"page":"/providers"},"startTime":1783257615539,"traceId":"812c2caf3155117d"},{"name":"is-page-static","duration":808082,"timestamp":4449643360084,"id":117,"parentId":64,"tags":{},"startTime":1783257615606,"traceId":"812c2caf3155117d"},{"name":"check-page","duration":877102,"timestamp":4449643291097,"id":64,"parentId":19,"tags":{"page":"/nodes"},"startTime":1783257615537,"traceId":"812c2caf3155117d"},{"name":"static-check","duration":890631,"timestamp":4449643277603,"id":19,"parentId":1,"tags":{},"startTime":1783257615524,"traceId":"812c2caf3155117d"},{"name":"write-routes-manifest","duration":693,"timestamp":4449644176720,"id":128,"parentId":1,"tags":{},"startTime":1783257616423,"traceId":"812c2caf3155117d"},{"name":"load-dotenv","duration":45,"timestamp":4449644188820,"id":131,"parentId":130,"tags":{},"startTime":1783257616435,"traceId":"812c2caf3155117d"},{"name":"run-export-path-map","duration":588,"timestamp":4449644192388,"id":132,"parentId":130,"tags":{},"startTime":1783257616439,"traceId":"812c2caf3155117d"},{"name":"next-export","duration":723921,"timestamp":4449644187626,"id":130,"parentId":1,"tags":{},"startTime":1783257616434,"traceId":"812c2caf3155117d"},{"name":"move-exported-app-not-found-","duration":1374,"timestamp":4449644916504,"id":133,"parentId":129,"tags":{},"startTime":1783257617163,"traceId":"812c2caf3155117d"},{"name":"move-exported-app-global-error-","duration":521,"timestamp":4449644918042,"id":134,"parentId":129,"tags":{},"startTime":1783257617164,"traceId":"812c2caf3155117d"},{"name":"static-generation","duration":739942,"timestamp":4449644181465,"id":129,"parentId":1,"tags":{},"startTime":1783257616428,"traceId":"812c2caf3155117d"},{"name":"write-routes-manifest","duration":553,"timestamp":4449644921730,"id":135,"parentId":1,"tags":{},"startTime":1783257617168,"traceId":"812c2caf3155117d"},{"name":"print-tree-view","duration":4941,"timestamp":4449644945551,"id":136,"parentId":1,"tags":{},"startTime":1783257617192,"traceId":"812c2caf3155117d"},{"name":"write-route-bundle-stats","duration":15748,"timestamp":4449644950532,"id":137,"parentId":1,"tags":{},"startTime":1783257617197,"traceId":"812c2caf3155117d"},{"name":"telemetry-flush","duration":16933,"timestamp":4449644966323,"id":138,"parentId":1,"tags":{},"startTime":1783257617213,"traceId":"812c2caf3155117d"},{"name":"next-build","duration":21010309,"timestamp":4449623972980,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1783257596219,"traceId":"812c2caf3155117d"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":7022359,"timestamp":4449624224855,"id":14,"parentId":1,"tags":{},"startTime":1783257596471,"traceId":"812c2caf3155117d"},{"name":"turbopack-build-events","duration":100,"timestamp":4449624562228,"id":15,"parentId":1,"tags":{},"startTime":1783257596809,"traceId":"812c2caf3155117d"},{"name":"run-typescript","duration":11844187,"timestamp":4449631259462,"id":16,"parentId":1,"tags":{},"startTime":1783257603506,"traceId":"812c2caf3155117d"},{"name":"static-check","duration":890631,"timestamp":4449643277603,"id":19,"parentId":1,"tags":{},"startTime":1783257615524,"traceId":"812c2caf3155117d"},{"name":"static-generation","duration":739942,"timestamp":4449644181465,"id":129,"parentId":1,"tags":{},"startTime":1783257616428,"traceId":"812c2caf3155117d"},{"name":"telemetry-flush","duration":16933,"timestamp":4449644966323,"id":138,"parentId":1,"tags":{},"startTime":1783257617213,"traceId":"812c2caf3155117d"},{"name":"next-build","duration":21010309,"timestamp":4449623972980,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1783257596219,"traceId":"812c2caf3155117d"}]
|
package/.next/types/routes.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// This file is generated automatically by Next.js
|
|
2
2
|
// Do not edit this file manually
|
|
3
3
|
|
|
4
|
-
type AppRoutes = "/" | "/admin" | "/login" | "/logs" | "/messages" | "/node" | "/nodes" | "/server-logs" | "/servers" | "/settings" | "/settings/networks" | "/settings/tokens" | "/tasks" | "/tasks/[id]"
|
|
5
|
-
type AppRouteHandlerRoutes = "/api/anet/config" | "/api/anet/node-config" | "/api/anet/node-create" | "/api/anet/node-lifecycle" | "/api/auth/login" | "/api/auth/logout" | "/api/auth/v3" | "/api/hub/audit-log" | "/api/hub/auth" | "/api/hub/broadcast" | "/api/hub/events" | "/api/hub/health" | "/api/hub/inbox" | "/api/hub/messages" | "/api/hub/networks" | "/api/hub/nodes" | "/api/hub/register" | "/api/hub/send" | "/api/hub/server-logs" | "/api/hub/server/[hostname]/agents" | "/api/hub/server/[hostname]/health" | "/api/hub/servers" | "/api/hub/session" | "/api/hub/stats" | "/api/hub/status" | "/api/hub/task-events" | "/api/hub/tasks" | "/api/hub/tmux" | "/api/hub/tokens" | "/api/hub/upload"
|
|
4
|
+
type AppRoutes = "/" | "/admin" | "/login" | "/logs" | "/messages" | "/node" | "/nodes" | "/providers" | "/server-logs" | "/servers" | "/settings" | "/settings/networks" | "/settings/tokens" | "/tasks" | "/tasks/[id]"
|
|
5
|
+
type AppRouteHandlerRoutes = "/api/anet/config" | "/api/anet/host-supervisors" | "/api/anet/node-config" | "/api/anet/node-create" | "/api/anet/node-lifecycle" | "/api/anet/providers" | "/api/anet/providers/probe" | "/api/anet/providers/probe-results" | "/api/auth/login" | "/api/auth/logout" | "/api/auth/v3" | "/api/hub/audit-log" | "/api/hub/auth" | "/api/hub/broadcast" | "/api/hub/events" | "/api/hub/health" | "/api/hub/inbox" | "/api/hub/messages" | "/api/hub/networks" | "/api/hub/nodes" | "/api/hub/register" | "/api/hub/send" | "/api/hub/server-logs" | "/api/hub/server/[hostname]/agents" | "/api/hub/server/[hostname]/health" | "/api/hub/servers" | "/api/hub/session" | "/api/hub/stats" | "/api/hub/status" | "/api/hub/task-events" | "/api/hub/tasks" | "/api/hub/tmux" | "/api/hub/tokens" | "/api/hub/upload"
|
|
6
6
|
type PageRoutes = never
|
|
7
7
|
type LayoutRoutes = "/"
|
|
8
8
|
type RedirectRoutes = never
|
|
@@ -14,9 +14,13 @@ interface ParamMap {
|
|
|
14
14
|
"/": {}
|
|
15
15
|
"/admin": {}
|
|
16
16
|
"/api/anet/config": {}
|
|
17
|
+
"/api/anet/host-supervisors": {}
|
|
17
18
|
"/api/anet/node-config": {}
|
|
18
19
|
"/api/anet/node-create": {}
|
|
19
20
|
"/api/anet/node-lifecycle": {}
|
|
21
|
+
"/api/anet/providers": {}
|
|
22
|
+
"/api/anet/providers/probe": {}
|
|
23
|
+
"/api/anet/providers/probe-results": {}
|
|
20
24
|
"/api/auth/login": {}
|
|
21
25
|
"/api/auth/logout": {}
|
|
22
26
|
"/api/auth/v3": {}
|
|
@@ -48,6 +52,7 @@ interface ParamMap {
|
|
|
48
52
|
"/messages": {}
|
|
49
53
|
"/node": {}
|
|
50
54
|
"/nodes": {}
|
|
55
|
+
"/providers": {}
|
|
51
56
|
"/server-logs": {}
|
|
52
57
|
"/servers": {}
|
|
53
58
|
"/settings": {}
|
package/.next/types/validator.ts
CHANGED
|
@@ -110,6 +110,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
110
110
|
type __Unused = __Check
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
+
// Validate ../../app/providers/page.tsx
|
|
114
|
+
{
|
|
115
|
+
type __IsExpected<Specific extends AppPageConfig<"/providers">> = Specific
|
|
116
|
+
const handler = {} as typeof import("../../app/providers/page.js")
|
|
117
|
+
type __Check = __IsExpected<typeof handler>
|
|
118
|
+
// @ts-ignore
|
|
119
|
+
type __Unused = __Check
|
|
120
|
+
}
|
|
121
|
+
|
|
113
122
|
// Validate ../../app/server-logs/page.tsx
|
|
114
123
|
{
|
|
115
124
|
type __IsExpected<Specific extends AppPageConfig<"/server-logs">> = Specific
|
|
@@ -182,6 +191,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
182
191
|
type __Unused = __Check
|
|
183
192
|
}
|
|
184
193
|
|
|
194
|
+
// Validate ../../app/api/anet/host-supervisors/route.ts
|
|
195
|
+
{
|
|
196
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/anet/host-supervisors">> = Specific
|
|
197
|
+
const handler = {} as typeof import("../../app/api/anet/host-supervisors/route.js")
|
|
198
|
+
type __Check = __IsExpected<typeof handler>
|
|
199
|
+
// @ts-ignore
|
|
200
|
+
type __Unused = __Check
|
|
201
|
+
}
|
|
202
|
+
|
|
185
203
|
// Validate ../../app/api/anet/node-config/route.ts
|
|
186
204
|
{
|
|
187
205
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/anet/node-config">> = Specific
|
|
@@ -209,6 +227,33 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
209
227
|
type __Unused = __Check
|
|
210
228
|
}
|
|
211
229
|
|
|
230
|
+
// Validate ../../app/api/anet/providers/probe-results/route.ts
|
|
231
|
+
{
|
|
232
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/anet/providers/probe-results">> = Specific
|
|
233
|
+
const handler = {} as typeof import("../../app/api/anet/providers/probe-results/route.js")
|
|
234
|
+
type __Check = __IsExpected<typeof handler>
|
|
235
|
+
// @ts-ignore
|
|
236
|
+
type __Unused = __Check
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Validate ../../app/api/anet/providers/probe/route.ts
|
|
240
|
+
{
|
|
241
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/anet/providers/probe">> = Specific
|
|
242
|
+
const handler = {} as typeof import("../../app/api/anet/providers/probe/route.js")
|
|
243
|
+
type __Check = __IsExpected<typeof handler>
|
|
244
|
+
// @ts-ignore
|
|
245
|
+
type __Unused = __Check
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// Validate ../../app/api/anet/providers/route.ts
|
|
249
|
+
{
|
|
250
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/anet/providers">> = Specific
|
|
251
|
+
const handler = {} as typeof import("../../app/api/anet/providers/route.js")
|
|
252
|
+
type __Check = __IsExpected<typeof handler>
|
|
253
|
+
// @ts-ignore
|
|
254
|
+
type __Unused = __Check
|
|
255
|
+
}
|
|
256
|
+
|
|
212
257
|
// Validate ../../app/api/auth/login/route.ts
|
|
213
258
|
{
|
|
214
259
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/auth/login">> = Specific
|
package/app/admin/page.tsx
CHANGED
|
@@ -171,7 +171,9 @@ export default function AdminPage() {
|
|
|
171
171
|
<AliasAvatar alias={s.alias} size={20} />
|
|
172
172
|
<div className="min-w-0 flex-1">
|
|
173
173
|
<div className="text-sm text-white font-medium truncate">{s.alias}</div>
|
|
174
|
-
|
|
174
|
+
{/* Show the current task only when present; an idle session's
|
|
175
|
+
status is already on the chip → drop the redundant "· idle". */}
|
|
176
|
+
<div className="text-xs text-gray-500 truncate">{s.agent || '--'}{s.task ? ` · ${s.task}` : ''}</div>
|
|
175
177
|
</div>
|
|
176
178
|
<div className="flex items-center gap-2 shrink-0">
|
|
177
179
|
{/* Round 91: 5-state palette via shared
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { requireDashboardAuth } from '@/app/lib/dashboard-auth';
|
|
2
|
+
import { hubFetch } from '@/app/lib/hub';
|
|
3
|
+
import { resolveDefaultNetworkId } from '@/app/lib/hub-mcp';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* PR4 #338 — proxy GET /api/host-supervisors (RFC-026 §9.2 / list_host_supervisors
|
|
7
|
+
* REST mirror; landed in commhub-server@0.9.0-preview.8).
|
|
8
|
+
*
|
|
9
|
+
* Returns the same shape the hub does (count + daemons[]), with `selected` hint
|
|
10
|
+
* the picker uses for its 3-state UI:
|
|
11
|
+
* - count=0 → onboarding (no daemon yet, show install instructions)
|
|
12
|
+
* - count=1 → auto-pick (preselect the only daemon)
|
|
13
|
+
* - count≥2 → user picker (show all daemons, surface telemetry to help choose)
|
|
14
|
+
*
|
|
15
|
+
* Honest degrade: if the hub doesn't have list_host_supervisors yet (preview.7
|
|
16
|
+
* or older), return ok:false with a flagged status — the client renders an
|
|
17
|
+
* "upgrade hub" hint rather than a fake empty list.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
interface DaemonRow {
|
|
21
|
+
// Hub returns daemon_node_id, not node_id (PR2 v2 §9.2 mirror chose
|
|
22
|
+
// that name to make the foreign-key intent explicit). Locked at the
|
|
23
|
+
// contract layer; client passes it back to create_node as daemon_node_id.
|
|
24
|
+
daemon_node_id: string;
|
|
25
|
+
alias: string;
|
|
26
|
+
hostname?: string | null;
|
|
27
|
+
online?: boolean;
|
|
28
|
+
last_seen_at?: string | null;
|
|
29
|
+
runtimes_supported?: string[];
|
|
30
|
+
allowed_secret_keys?: string[];
|
|
31
|
+
host_telemetry?: {
|
|
32
|
+
alert_level?: 'green' | 'yellow' | 'red' | 'gray';
|
|
33
|
+
cpu_cores?: number | null;
|
|
34
|
+
mem_gb?: number | null;
|
|
35
|
+
ip_internal?: string | null;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
interface HubResponse {
|
|
40
|
+
ok?: boolean;
|
|
41
|
+
error?: string;
|
|
42
|
+
count?: number;
|
|
43
|
+
daemons?: DaemonRow[];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export async function GET(req: Request) {
|
|
47
|
+
const authFailure = await requireDashboardAuth();
|
|
48
|
+
if (authFailure) return authFailure;
|
|
49
|
+
|
|
50
|
+
const { searchParams } = new URL(req.url);
|
|
51
|
+
// #338 GA-blocker (2026-07-04, 通信龙 catch): hub /api/host-supervisors
|
|
52
|
+
// (post-#380) requires an explicit network_id for admin utok callers —
|
|
53
|
+
// admin membership spans networks, so hub refuses to guess ("400
|
|
54
|
+
// missing_network_id"). The create-node wizard's picker forwards the
|
|
55
|
+
// NetworkProvider context value verbatim, and on first-load (before
|
|
56
|
+
// sessionStorage rehydrates) that value is the empty string → the
|
|
57
|
+
// picker sends the query without network_id → hub 400 → wizard stuck
|
|
58
|
+
// at step 1 for every admin. Fall back to resolveDefaultNetworkId
|
|
59
|
+
// here rather than propagate the 400 to the picker UI; empty context
|
|
60
|
+
// is a first-load reality, not a user error. #381 hub-side single-
|
|
61
|
+
// network fallback covers the same case for non-admin utoks — this
|
|
62
|
+
// fixes the admin path symmetrically.
|
|
63
|
+
let networkId = searchParams.get('network_id');
|
|
64
|
+
if (!networkId) {
|
|
65
|
+
networkId = await resolveDefaultNetworkId();
|
|
66
|
+
}
|
|
67
|
+
const path = networkId
|
|
68
|
+
? `/api/host-supervisors?network_id=${encodeURIComponent(networkId)}`
|
|
69
|
+
: '/api/host-supervisors';
|
|
70
|
+
|
|
71
|
+
try {
|
|
72
|
+
const res = await hubFetch(path);
|
|
73
|
+
if (res.status === 404 || res.status === 501) {
|
|
74
|
+
return Response.json(
|
|
75
|
+
{
|
|
76
|
+
ok: false,
|
|
77
|
+
unconfirmed: true,
|
|
78
|
+
error: `hub /api/host-supervisors not available (${res.status}) — upgrade commhub-server to >=0.9.0-preview.8`,
|
|
79
|
+
count: 0,
|
|
80
|
+
daemons: [],
|
|
81
|
+
},
|
|
82
|
+
{ status: 501 },
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
if (!res.ok) {
|
|
86
|
+
return Response.json(
|
|
87
|
+
{ ok: false, error: `hub ${res.status}`, count: 0, daemons: [] },
|
|
88
|
+
{ status: 502 },
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
const data = (await res.json().catch(() => ({}))) as HubResponse;
|
|
92
|
+
const daemons = Array.isArray(data?.daemons) ? data.daemons : [];
|
|
93
|
+
const count = typeof data?.count === 'number' ? data.count : daemons.length;
|
|
94
|
+
const selected = count === 1 ? daemons[0]?.daemon_node_id || null : null;
|
|
95
|
+
return Response.json({ ok: true, count, daemons, selected });
|
|
96
|
+
} catch (e: unknown) {
|
|
97
|
+
return Response.json(
|
|
98
|
+
{ ok: false, error: e instanceof Error ? e.message : String(e), count: 0, daemons: [] },
|
|
99
|
+
{ status: 502 },
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -33,6 +33,12 @@ const EDITABLE_FLAGS = [
|
|
|
33
33
|
'timeout',
|
|
34
34
|
] as const;
|
|
35
35
|
|
|
36
|
+
// #260 channel edit — the panel toggles enable/disable for these keys only.
|
|
37
|
+
// Per-channel secrets (bot token / app secret / allowFrom) stay in the node's
|
|
38
|
+
// local config.json, never on the wire from the UI. WeChat is roadmap-only in
|
|
39
|
+
// the panel and intentionally not listed here.
|
|
40
|
+
const EDITABLE_CHANNELS = ['telegram', 'feishu', 'commhub'] as const;
|
|
41
|
+
|
|
36
42
|
function isJson(res: Response): boolean {
|
|
37
43
|
return (res.headers.get('content-type') || '').includes('application/json');
|
|
38
44
|
}
|
|
@@ -72,7 +78,7 @@ export async function GET(req: Request) {
|
|
|
72
78
|
if (res.ok && isJson(res)) return Response.json(await res.json());
|
|
73
79
|
// backend not ready (404/501/non-JSON) → flagged empty snapshot so the
|
|
74
80
|
// panel can initialise its form and develop the save flow.
|
|
75
|
-
return Response.json({ ok: true, mock: true, node_id: nodeId, model: null, flags: {} });
|
|
81
|
+
return Response.json({ ok: true, mock: true, node_id: nodeId, model: null, flags: {}, channels: [] });
|
|
76
82
|
} catch (e: unknown) {
|
|
77
83
|
return Response.json({
|
|
78
84
|
ok: true,
|
|
@@ -80,6 +86,7 @@ export async function GET(req: Request) {
|
|
|
80
86
|
node_id: nodeId,
|
|
81
87
|
model: null,
|
|
82
88
|
flags: {},
|
|
89
|
+
channels: [],
|
|
83
90
|
_hubError: e instanceof Error ? e.message : String(e),
|
|
84
91
|
});
|
|
85
92
|
}
|
|
@@ -89,7 +96,7 @@ export async function POST(req: Request) {
|
|
|
89
96
|
const authFailure = await requireDashboardAuth();
|
|
90
97
|
if (authFailure) return authFailure;
|
|
91
98
|
|
|
92
|
-
let body: { node_id?: string; alias?: string; model?: unknown; flags?: Record<string, unknown
|
|
99
|
+
let body: { node_id?: string; alias?: string; model?: unknown; flags?: Record<string, unknown>; channels?: unknown };
|
|
93
100
|
try {
|
|
94
101
|
body = await req.json();
|
|
95
102
|
} catch {
|
|
@@ -106,10 +113,27 @@ export async function POST(req: Request) {
|
|
|
106
113
|
if (k in body.flags && body.flags[k] !== undefined) flags[k] = body.flags[k];
|
|
107
114
|
}
|
|
108
115
|
}
|
|
116
|
+
// Whitelist channels — accept string[] of EDITABLE_CHANNELS keys only. Any
|
|
117
|
+
// other shape or key is dropped, so the panel can never smuggle a secret
|
|
118
|
+
// payload or an unknown channel name to the hub.
|
|
119
|
+
let channels: string[] | undefined;
|
|
120
|
+
if (Array.isArray(body.channels)) {
|
|
121
|
+
const allow = new Set<string>(EDITABLE_CHANNELS);
|
|
122
|
+
const seen = new Set<string>();
|
|
123
|
+
channels = [];
|
|
124
|
+
for (const c of body.channels) {
|
|
125
|
+
if (typeof c !== 'string') continue;
|
|
126
|
+
const key = c.trim().toLowerCase();
|
|
127
|
+
if (!allow.has(key) || seen.has(key)) continue;
|
|
128
|
+
seen.add(key);
|
|
129
|
+
channels.push(key);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
109
132
|
const payload = {
|
|
110
133
|
node_id: nodeId,
|
|
111
134
|
...(body.model !== undefined ? { model: body.model } : {}),
|
|
112
135
|
flags,
|
|
136
|
+
...(channels !== undefined ? { channels } : {}),
|
|
113
137
|
};
|
|
114
138
|
|
|
115
139
|
try {
|
|
@@ -15,19 +15,28 @@ async function resolveLocalDaemonNodeId(): Promise<string | null> {
|
|
|
15
15
|
const raw = data.nodes ?? data.sessions ?? data;
|
|
16
16
|
const list = Array.isArray(raw) ? raw : raw && typeof raw === 'object' ? Object.values(raw) : [];
|
|
17
17
|
const arr = list as Array<Record<string, unknown>>;
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
18
|
+
// PRIMARY — server-extracted `role` field (sleep2agi/agent-network PR
|
|
19
|
+
// fix/api-nodes-role-field). Hub reads role from config_snapshot JSON
|
|
20
|
+
// and exposes it as a top-level row field. Works for ANY daemon node_id
|
|
21
|
+
// (user-created or otherwise), not just the `node_daemon_` prefix.
|
|
21
22
|
for (const n of arr) {
|
|
22
23
|
if (!n || typeof n !== 'object') continue;
|
|
23
24
|
if (n.role === 'host_supervisor') return String(n.node_id || '');
|
|
25
|
+
}
|
|
26
|
+
// LEGACY config_snapshot path — for any older hub that still passes
|
|
27
|
+
// through the raw snapshot blob (no longer the case post-#312, but
|
|
28
|
+
// defensive). Cheap, no extra round-trip.
|
|
29
|
+
for (const n of arr) {
|
|
30
|
+
if (!n || typeof n !== 'object') continue;
|
|
24
31
|
const snapRaw = n.config_snapshot;
|
|
25
32
|
if (typeof snapRaw === 'string') {
|
|
26
33
|
try { if (JSON.parse(snapRaw)?.role === 'host_supervisor') return String(n.node_id || ''); } catch { /* skip */ }
|
|
27
34
|
}
|
|
28
35
|
}
|
|
29
|
-
//
|
|
30
|
-
//
|
|
36
|
+
// LAST-RESORT heuristic — pre-role-field hubs (preview2.4 and older):
|
|
37
|
+
// host_supervisor daemons started via the RFC-026 docker e2e get a
|
|
38
|
+
// `node_daemon_` id prefix. User-created daemons (any node_id) won't
|
|
39
|
+
// match here; they need the `role` field (hub post fix/api-nodes-role-field).
|
|
31
40
|
const daemon = arr.find(n => n && typeof n === 'object' && String(n.node_id || '').startsWith('node_daemon_'));
|
|
32
41
|
if (daemon) return String(daemon.node_id || '');
|
|
33
42
|
} catch { /* fall through */ }
|
|
@@ -29,15 +29,29 @@ import { callMcp, parseMcpEnvelope, resolveDefaultNetworkId } from '@/app/lib/hu
|
|
|
29
29
|
|
|
30
30
|
const MCP_TOOL_RESTART = 'restart_node';
|
|
31
31
|
const MCP_TOOL_RENAME = 'rename_node'; // ⚠️ Q1 — confirm hub-side tool name before relying on this
|
|
32
|
+
// RFC-027 PR2 — stop/delete lifecycle. daemon_node_id is auto-resolved
|
|
33
|
+
// hub-side from child_node_id (PR2 prereq); dashboard doesn't pass it.
|
|
34
|
+
const MCP_TOOL_STOP = 'stop_node';
|
|
35
|
+
const MCP_TOOL_DELETE = 'delete_node';
|
|
32
36
|
|
|
33
|
-
const ACTIONS = ['restart', 'rename'] as const;
|
|
37
|
+
const ACTIONS = ['restart', 'rename', 'stop', 'delete'] as const;
|
|
34
38
|
type Action = (typeof ACTIONS)[number];
|
|
35
39
|
|
|
36
40
|
export async function POST(req: Request) {
|
|
37
41
|
const authFailure = await requireDashboardAuth();
|
|
38
42
|
if (authFailure) return authFailure;
|
|
39
43
|
|
|
40
|
-
let body: {
|
|
44
|
+
let body: {
|
|
45
|
+
node_id?: string;
|
|
46
|
+
action?: string;
|
|
47
|
+
new_name?: string;
|
|
48
|
+
network_id?: string;
|
|
49
|
+
// RFC-027 PR2 stop/delete:
|
|
50
|
+
confirm_alias?: string; // delete only — must equal node alias byte-exact
|
|
51
|
+
force?: boolean; // both — override in-flight refuse + audit
|
|
52
|
+
grace_seconds?: number; // both — SIGTERM grace before SIGKILL (5-60s, default 10)
|
|
53
|
+
delete_config?: boolean; // delete only — false keeps config dir, default true backs up
|
|
54
|
+
};
|
|
41
55
|
try {
|
|
42
56
|
body = await req.json();
|
|
43
57
|
} catch {
|
|
@@ -65,18 +79,53 @@ export async function POST(req: Request) {
|
|
|
65
79
|
|
|
66
80
|
if (action === 'restart') {
|
|
67
81
|
tool = MCP_TOOL_RESTART;
|
|
68
|
-
} else {
|
|
69
|
-
// rename
|
|
82
|
+
} else if (action === 'rename') {
|
|
70
83
|
const newName = (body.new_name || '').trim();
|
|
71
84
|
if (!newName) return Response.json({ error: 'new_name required for rename' }, { status: 400 });
|
|
72
85
|
tool = MCP_TOOL_RENAME;
|
|
73
86
|
args.new_name = newName;
|
|
87
|
+
} else if (action === 'stop') {
|
|
88
|
+
// RFC-027 §2.2 stop_node. daemon_node_id auto-resolves hub-side.
|
|
89
|
+
tool = MCP_TOOL_STOP;
|
|
90
|
+
args.child_node_id = nodeId;
|
|
91
|
+
delete args.node_id;
|
|
92
|
+
if (body.force === true) args.force = true;
|
|
93
|
+
if (typeof body.grace_seconds === 'number') args.grace_seconds = body.grace_seconds;
|
|
94
|
+
} else if (action === 'delete') {
|
|
95
|
+
// RFC-027 §2.2 delete_node. confirm_alias REQUIRED + must match.
|
|
96
|
+
const confirmAlias = (body.confirm_alias || '').trim();
|
|
97
|
+
if (!confirmAlias) return Response.json({ error: 'confirm_alias required for delete (must equal node alias)' }, { status: 400 });
|
|
98
|
+
tool = MCP_TOOL_DELETE;
|
|
99
|
+
args.child_node_id = nodeId;
|
|
100
|
+
delete args.node_id;
|
|
101
|
+
args.confirm_alias = confirmAlias;
|
|
102
|
+
if (body.force === true) args.force = true;
|
|
103
|
+
if (typeof body.grace_seconds === 'number') args.grace_seconds = body.grace_seconds;
|
|
104
|
+
if (body.delete_config === false) args.delete_config = false;
|
|
105
|
+
} else {
|
|
106
|
+
// exhaustive; the ACTIONS check above catches unknown actions first
|
|
107
|
+
return Response.json({ error: `unhandled action: ${action}` }, { status: 500 });
|
|
74
108
|
}
|
|
75
109
|
|
|
76
110
|
try {
|
|
77
111
|
const res = await callMcp(tool, args);
|
|
78
112
|
if (res.ok) {
|
|
79
|
-
const result = await parseMcpEnvelope(res)
|
|
113
|
+
const result = await parseMcpEnvelope(res) as Record<string, unknown>;
|
|
114
|
+
// RFC-027 PR2 (通信龙 explicit): structured errors from the hub tool
|
|
115
|
+
// payload (node_not_active / cannot_delete_daemon / node_busy_in_flight
|
|
116
|
+
// / confirm_alias_mismatch / forbidden_cross_tenant ...) MUST surface
|
|
117
|
+
// as-is to the user — don't wrap them as outer ok:true with a hidden
|
|
118
|
+
// result.ok:false. Promote the inner ok + error to the outer envelope
|
|
119
|
+
// so the dashboard can render the real message.
|
|
120
|
+
if (result && typeof result === 'object' && (result as { ok?: boolean }).ok === false) {
|
|
121
|
+
// Bubble hub's structured payload to a 409 (action refused, e.g.
|
|
122
|
+
// in-flight/cross-tenant/wrong-confirm) so the dashboard can branch
|
|
123
|
+
// on error code without parsing 200-with-ok:false.
|
|
124
|
+
return Response.json(
|
|
125
|
+
{ ...result, action, node_id: nodeId },
|
|
126
|
+
{ status: 409 },
|
|
127
|
+
);
|
|
128
|
+
}
|
|
80
129
|
return Response.json({ ok: true, action, node_id: nodeId, result });
|
|
81
130
|
}
|
|
82
131
|
// Hub reached but tool not available (e.g. rename_node not deployed yet → Q1).
|