@sleep2agi/agent-network-dashboard 0.6.3-preview.56 → 0.6.3-preview.58
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 +143 -93
- 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 → FEaCQpBc05SBAWTBHRt5h}/_clientMiddlewareManifest.js +4 -0
- package/.next/static/chunks/{27b9kqyo7bmdr.js → 08-obrj2goweb.js} +2 -2
- 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/{0agh8mvmpke4j.js → 0z9tzvfwtc16z.js} +1 -1
- 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 → 26bpf-fpc6zpt.js} +1 -1
- package/.next/static/chunks/2anlzel60my8y.js +2 -0
- package/.next/static/chunks/{3jxk7q1jxyvol.js → 2divamiv1re3v.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/3u059pjgl4gcw.js +1 -0
- package/.next/static/chunks/3vv0y_64bnnsf.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 +299 -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 → FEaCQpBc05SBAWTBHRt5h}/_buildManifest.js +0 -0
- /package/.next/static/{trj9RsCWuEDMfq9BuoKfl → FEaCQpBc05SBAWTBHRt5h}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../app/api/anet/host-supervisors/route.ts","../../../node_modules/next/src/build/templates/app-route.ts","../../../app/lib/hub-mcp.ts","../../../app/lib/hub.ts"],"sourcesContent":["import { requireDashboardAuth } from '@/app/lib/dashboard-auth';\nimport { hubFetch } from '@/app/lib/hub';\nimport { resolveDefaultNetworkId } from '@/app/lib/hub-mcp';\n\n/**\n * PR4 #338 — proxy GET /api/host-supervisors (RFC-026 §9.2 / list_host_supervisors\n * REST mirror; landed in commhub-server@0.9.0-preview.8).\n *\n * Returns the same shape the hub does (count + daemons[]), with `selected` hint\n * the picker uses for its 3-state UI:\n * - count=0 → onboarding (no daemon yet, show install instructions)\n * - count=1 → auto-pick (preselect the only daemon)\n * - count≥2 → user picker (show all daemons, surface telemetry to help choose)\n *\n * Honest degrade: if the hub doesn't have list_host_supervisors yet (preview.7\n * or older), return ok:false with a flagged status — the client renders an\n * \"upgrade hub\" hint rather than a fake empty list.\n */\n\ninterface DaemonRow {\n // Hub returns daemon_node_id, not node_id (PR2 v2 §9.2 mirror chose\n // that name to make the foreign-key intent explicit). Locked at the\n // contract layer; client passes it back to create_node as daemon_node_id.\n daemon_node_id: string;\n alias: string;\n hostname?: string | null;\n online?: boolean;\n last_seen_at?: string | null;\n runtimes_supported?: string[];\n allowed_secret_keys?: string[];\n host_telemetry?: {\n alert_level?: 'green' | 'yellow' | 'red' | 'gray';\n cpu_cores?: number | null;\n mem_gb?: number | null;\n ip_internal?: string | null;\n };\n}\n\ninterface HubResponse {\n ok?: boolean;\n error?: string;\n count?: number;\n daemons?: DaemonRow[];\n}\n\nexport async function GET(req: Request) {\n const authFailure = await requireDashboardAuth();\n if (authFailure) return authFailure;\n\n const { searchParams } = new URL(req.url);\n // #338 GA-blocker (2026-07-04, 通信龙 catch): hub /api/host-supervisors\n // (post-#380) requires an explicit network_id for admin utok callers —\n // admin membership spans networks, so hub refuses to guess (\"400\n // missing_network_id\"). The create-node wizard's picker forwards the\n // NetworkProvider context value verbatim, and on first-load (before\n // sessionStorage rehydrates) that value is the empty string → the\n // picker sends the query without network_id → hub 400 → wizard stuck\n // at step 1 for every admin. Fall back to resolveDefaultNetworkId\n // here rather than propagate the 400 to the picker UI; empty context\n // is a first-load reality, not a user error. #381 hub-side single-\n // network fallback covers the same case for non-admin utoks — this\n // fixes the admin path symmetrically.\n let networkId = searchParams.get('network_id');\n if (!networkId) {\n networkId = await resolveDefaultNetworkId();\n }\n const path = networkId\n ? `/api/host-supervisors?network_id=${encodeURIComponent(networkId)}`\n : '/api/host-supervisors';\n\n try {\n const res = await hubFetch(path);\n if (res.status === 404 || res.status === 501) {\n return Response.json(\n {\n ok: false,\n unconfirmed: true,\n error: `hub /api/host-supervisors not available (${res.status}) — upgrade commhub-server to >=0.9.0-preview.8`,\n count: 0,\n daemons: [],\n },\n { status: 501 },\n );\n }\n if (!res.ok) {\n return Response.json(\n { ok: false, error: `hub ${res.status}`, count: 0, daemons: [] },\n { status: 502 },\n );\n }\n const data = (await res.json().catch(() => ({}))) as HubResponse;\n const daemons = Array.isArray(data?.daemons) ? data.daemons : [];\n const count = typeof data?.count === 'number' ? data.count : daemons.length;\n const selected = count === 1 ? daemons[0]?.daemon_node_id || null : null;\n return Response.json({ ok: true, count, daemons, selected });\n } catch (e: unknown) {\n return Response.json(\n { ok: false, error: e instanceof Error ? e.message : String(e), count: 0, daemons: [] },\n { status: 502 },\n );\n }\n}\n","import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport {\n getTracer,\n type Span,\n SpanKind,\n SpanStatusCode,\n} from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // The lazy require factory ensures that:\n // - In dev: devRequestTimingInternalsEnd is set before userland executes,\n // correctly attributing module load time to application-code rather than\n // framework internals.\n // - In all modes: async modules (route files with top-level await) are\n // handled correctly — require() returns a Promise for such modules, which\n // ensureUserland() awaits before the first request is handled.\n userland: () => require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n // In Turbopack dev mode, also provide a synchronous per-request getter so\n // server HMR updates are picked up without re-executing the entry chunk.\n // Using require() (synchronous) avoids adding async overhead that would be\n // incorrectly attributed to application-code time in devRequestTiming.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () =>\n require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] ||\n prerenderManifest.routes[resolvedPathname]\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname])\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n const supportsDynamicResponse: boolean =\n // If we're in development, we always support dynamic HTML\n routeModule.isDev === true ||\n // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr\n\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps: prerenderManifest.preview,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n validationLevel: nextConfig.experimental.instantInsights.validationLevel,\n supportsDynamicResponse,\n incrementalCache,\n hmrRefreshHash: getRequestMeta(req, 'hmrRefreshHash'),\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n routeModule.onRequestError(\n req,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response = await routeModule.handle(nextReq, context)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? // Fall back to the global `expireTime` config when the\n // route has a numeric `revalidate` but didn't declare an\n // explicit `expire` (e.g. via `cacheLife`). This mirrors the\n // build-time fallback in `build/index.ts` so cache entries\n // and the response Cache-Control header agree on the route's\n // effective expire. Routes that opt out of revalidation\n // (`revalidate: false`) or that are dynamic (`revalidate: 0`)\n // keep `expire: undefined`.\n revalidate !== false && revalidate > 0\n ? nextConfig.expireTime\n : undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, pendingWaitUntil)\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const handleResponse = async (\n currentSpan: Span | undefined,\n parentSpan: Span | undefined\n ) => {\n try {\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response.\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n return\n } finally {\n ;(() => {\n if (!currentSpan) {\n return\n }\n\n let statusCode = res.statusCode\n\n currentSpan.setAttributes({\n 'http.status_code': statusCode,\n 'next.rsc': false,\n })\n\n if (statusCode && statusCode >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n currentSpan.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n currentSpan.setAttribute('error.type', statusCode.toString())\n }\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || normalizedSrcPage\n const name = `${method} ${route}`\n\n currentSpan.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n currentSpan.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== currentSpan) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })()\n }\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan, undefined)\n } else {\n let parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n (span) => handleResponse(span, parentSpan)\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n}\n","import { hubFetch } from './hub';\n\n/**\n * Shared hub MCP (JSON-RPC tools/call) helpers for the node-config /\n * node-lifecycle / node-create proxies. The hub MCP endpoint answers with\n * either application/json or text/event-stream; in both cases the tool payload\n * is JSON in result.content[0].text. Mirrors the shape #260/#262 PR C established.\n */\n\nexport const HUB_MCP_PATH = '/mcp';\nexport const MCP_PROTOCOL_VERSION = '2025-03-26';\n\nfunction isJson(res: Response): boolean {\n return (res.headers.get('content-type') || '').includes('application/json');\n}\n\n/**\n * Resolve the user's default network_id from the hub profile, forwarding the\n * browser V3 token via hubFetch. Needed because a V3 user token often has a\n * null current_network, and node MCP tools require an explicit network_id\n * (else they 'permission_denied: network_id required'). Mirrors the resolution\n * in /api/auth/v3 and the PR C node-config fix (02dde66). Returns null if the\n * profile can't be read; callers should surface that rather than silently fail.\n */\nexport async function resolveDefaultNetworkId(): Promise<string | null> {\n try {\n const meRes = await hubFetch('/api/auth/me');\n if (meRes.ok && (meRes.headers.get('content-type') || '').includes('application/json')) {\n const me = (await meRes.json()) as {\n current_network?: { network_id?: string };\n networks?: Array<{ network_id?: string }>;\n };\n return me.current_network?.network_id || me.networks?.[0]?.network_id || null;\n }\n } catch {\n /* fall through → null */\n }\n return null;\n}\n\nexport function mcpEnvelope(tool: string, args: Record<string, unknown>) {\n return {\n jsonrpc: '2.0',\n id: 1,\n method: 'tools/call',\n params: { name: tool, arguments: args },\n };\n}\n\n/**\n * POST a tools/call to the hub MCP endpoint, forwarding the browser V3 token\n * via hubFetch. Returns the raw Response so callers can branch on status.\n */\nexport function callMcp(tool: string, args: Record<string, unknown>): Promise<Response> {\n return hubFetch(HUB_MCP_PATH, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json, text/event-stream',\n 'MCP-Protocol-Version': MCP_PROTOCOL_VERSION,\n },\n body: JSON.stringify(mcpEnvelope(tool, args)),\n });\n}\n\n/**\n * Parse an MCP tools/call response (json or SSE) → the JSON tool payload.\n * Throws on MCP-level error or malformed envelope.\n */\nexport async function parseMcpEnvelope(res: Response): Promise<unknown> {\n let envelope: unknown;\n if (isJson(res)) {\n envelope = await res.json();\n } else {\n const raw = await res.text();\n const dataLines = raw\n .split('\\n')\n .filter(l => l.startsWith('data:'))\n .map(l => l.slice(5).trim())\n .filter(Boolean);\n const last = dataLines[dataLines.length - 1];\n if (!last) throw new Error('empty MCP SSE response');\n envelope = JSON.parse(last);\n }\n const env = envelope as { error?: { message?: string }; result?: { content?: Array<{ text?: string }> } };\n if (env.error) throw new Error(env.error.message || 'MCP error');\n const text = env.result?.content?.[0]?.text;\n if (typeof text !== 'string') throw new Error('MCP result missing content text');\n try {\n return JSON.parse(text);\n } catch {\n return { ok: true, text };\n }\n}\n","import { getV3UserToken } from './dashboard-auth';\n\nfunction getHubUrl() {\n return process.env.COMMHUB_URL || 'http://127.0.0.1:9200';\n}\n\nexport const HUB_URL = getHubUrl();\n\nexport function hubHeaders(): Record<string, string> {\n return {};\n}\n\n/**\n * Fetch from CommHub. Uses the browser session's V3 user token when available.\n * Dashboard is a thin proxy and does not fall back to a service/master token.\n */\nexport async function hubFetch(path: string, init?: RequestInit): Promise<Response> {\n const url = `${getHubUrl()}${path}`;\n\n // Build auth: prefer V3 token cookie unless caller supplied Authorization.\n let authHeader: Record<string, string> = {};\n\n // Only try V3 token if no Authorization already in init.headers\n const initHeaders = init?.headers as Record<string, string> | undefined;\n if (!initHeaders?.['Authorization']) {\n try {\n const userToken = await getV3UserToken();\n if (userToken) {\n authHeader = { 'Authorization': `Bearer ${userToken}` };\n }\n } catch {\n // cookies() not available in this context, ignore\n }\n\n }\n\n return fetch(url, {\n ...init,\n headers: { ...authHeader, ...init?.headers },\n next: { revalidate: 0 },\n } as RequestInit);\n}\n"],"names":["GET","req","authFailure","searchParams","URL","url","networkId","get","path","encodeURIComponent","res","status","Response","json","ok","unconfirmed","error","count","daemons","data","catch","Array","isArray","length","selected","daemon_node_id","e","Error","message","String","AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","setRequestMeta","getTracer","SpanKind","SpanStatusCode","setManifestsSingleton","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","CachedRouteKind","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","userland","require","TURBOPACK","__NEXT_DEV_SERVER","getUserland","workAsyncStorage","workUnitAsyncStorage","serverHooks","handler","ctx","requestMeta","isDev","hrtime","bigint","srcPage","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","Boolean","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","method","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","useCacheTimeout","cacheComponents","validationLevel","instantInsights","hmrRefreshHash","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","onClose","cb","on","onAfterTaskError","undefined","onInstrumentationRequestError","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","responseGenerator","previousCacheEntry","setHeader","response","handle","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","type","revalidate","collectedRevalidate","expire","collectedExpire","expireTime","cacheEntry","value","body","Buffer","from","arrayBuffer","cacheControl","err","isStale","routerKind","routePath","routeType","revalidateReason","handleResponse","currentSpan","parentSpan","routeKind","isFallback","isRoutePPREnabled","isMiss","delete","getHeader","set","setAttributes","setStatus","code","ERROR","setAttribute","toString","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","route","name","updateName","withPropagatedContext","trace","spanName","SERVER","attributes","span","HUB_MCP_PATH","MCP_PROTOCOL_VERSION","isJson","includes","resolveDefaultNetworkId","meRes","me","current_network","network_id","networks","mcpEnvelope","tool","args","jsonrpc","id","arguments","callMcp","Accept","JSON","stringify","parseMcpEnvelope","envelope","raw","text","dataLines","split","filter","l","startsWith","map","slice","trim","last","parse","result","content","getHubUrl","COMMHUB_URL","HUB_URL","hubHeaders","hubFetch","init","authHeader","initHeaders","userToken","fetch","next"],"mappings":"q7CAAA,IAAA,EAAA,EAAA,CAAA,CAAA,KACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OA2CO,eAAeA,EAAIC,CAAY,EACpC,IAAMC,EAAc,MAAM,CAAA,EAAA,EAAA,oBAAA,AAAoB,IAC9C,GAAIA,EAAa,OAAOA,EAExB,GAAM,cAAEC,CAAY,CAAE,CAAG,IAAIC,IAAIH,EAAII,GAAG,EAapCC,EAAYH,EAAaI,GAAG,CAAC,aAC7B,CAACD,IACHA,EAAY,KADE,CACI,CAAA,EAAA,EAAA,uBAAA,AAAuB,GAAA,EAE3C,IAAME,EAAOF,EACT,CAAC,iCAAiC,EAAEG,mBAAmBH,GAAAA,CAAY,CACnE,wBAEJ,GAAI,CACF,IAAMI,EAAM,MAAM,CAAA,EAAA,EAAA,QAAA,AAAQ,EAACF,GAC3B,GAAmB,MAAfE,EAAIC,MAAM,EAA2B,KAAK,CAApBD,EAAIC,MAAM,CAClC,OAAOC,SAASC,IAAI,CAClB,CACEC,IAAI,EACJC,aAAa,EACbC,MAAO,CAAC,yCAAyC,EAAEN,EAAIC,MAAM,CAAC,+CAA+C,CAAC,CAC9GM,MAAO,EACPC,QAAS,EAAE,AACb,EACA,CAAEP,OAAQ,GAAI,GAGlB,GAAI,CAACD,EAAII,EAAE,CACT,CADW,MACJF,SAASC,IAAI,CAClB,CAAEC,IAAI,EAAOE,MAAO,CAAC,IAAI,EAAEN,EAAIC,MAAM,CAAA,CAAE,CAAEM,MAAO,EAAGC,QAAS,EAAG,AAAD,EAC9D,CAAEP,OAAQ,GAAI,GAGlB,IAAMQ,EAAQ,MAAMT,EAAIG,IAAI,GAAGO,KAAK,CAAC,IAAM,CAAC,EAAC,CAAC,EACxCF,EAAUG,MAAMC,OAAO,CAACH,GAAMD,SAAWC,EAAKD,OAAO,CAAG,EAAE,CAC1DD,EAAQ,AAAuB,iBAAhBE,GAAMF,MAAqBE,EAAKF,KAAK,CAAGC,EAAQK,MAAM,CACrEC,EAAqB,IAAVP,GAAcC,CAAO,CAAC,EAAE,EAAEO,gBAAkB,KAC7D,EADoE,KAC7Db,SAASC,IAAI,CAAC,CAAEC,IAAI,EAAMG,gBAAOC,WAASM,CAAS,EAC5D,CAAE,MAAOE,EAAY,CACnB,OAAOd,SAASC,IAAI,CAClB,CAAEC,IAAI,EAAOE,MAAOU,aAAaC,MAAQD,EAAEE,OAAO,CAAGC,OAAOH,GAAIT,MAAO,EAAGC,QAAS,EAAE,AAAC,EACtF,CAAEP,OAAQ,GAAI,EAElB,CACF,0CCrGA,IAAA,EAIO,EAAA,CAHLmB,AAGK,CAAA,OACP,EAA0B,EAAyB,CAA1CC,AAA0C,CAAA,GAAA,EAJ9B,EAKrB,CADkB,CACwB,AAFmB,EAEnB,CAAjCC,AAAiC,CAAA,AAFnC,GACmB,CAC8C,GAExE,EAGEI,EAEK,CAJLF,AAIK,CAPgBD,AAOhB,MAFS,CAGhB,EAIgB,EAZkB,AAa3B,CAJLI,AAIK,CAAA,AAVS,CAIT,CAHLF,CASK,GAbmC,CAc1C,CALW,CAK2B,AAPJ,CAIhCG,CAGoC,CAAA,AAA7BE,CAA6B,EADA,CATtB,EAON,AANRJ,EAOAG,AAGF,EAAiC,EAAA,CAAxBE,AAAwB,CAAA,EADkD,IACT,CAC1E,AAF8B,CAFd,CAI0B,EAAQ,CAAzCC,AAAyC,CAAA,CAAA,CAFZ,AACb,KAEzB,EAEEG,CAJ+B,CAK1B,AAJwE,CAE7ED,AAEK,CAAA,CAJiB,CAGA,CAHED,IAK1B,EAA+B,CADxB,CAC0D,CAAxDG,AAAwD,CAAA,IAH7C,EAClBD,AAHwC,CAM1C,EAAoC,EAAA,CAA3BE,AAA2B,CADb,AACa,IAD6B,AACO,GACxE,CAF+B,CAEF,EAA4B,CAAhDC,AAAgD,CAAA,KAD7B,EAE5B,AAJ8D,EAGL,AAGvDE,EAAyB,AAHN,CAGM,AADzBD,CACyB,AAJS,EAK7B,IAJsB,CAK7B,EAAsC,EAAA,CAA7BE,AAA6B,CAAA,CAFX,CAE2C,KACtE,EAAyBE,EAAsB,AAAQ,CAA9CD,AAA8C,CAAA,AAJ1B,CAEE,CAD7BF,IAGqD,CACvD,AAF8B,CAC8C,CAC5C,EAAA,CAAvBI,AAAuB,CAAA,AADT,EAAED,AADa,OAEuC,KAArD,IACxB,IADgC,AAChC,EAIO,EAA6B,CAHlCE,AAGkC,CAAA,KAWpC,IAAMC,EAAc,GAdH,CAcO1B,AAXY,EAWZA,KAXjB,cAWiBA,CAAoB,CAC1C2B,WAAY,CACVC,KAAM3B,EAAAA,SAAAA,CAAU4B,SAAS,CACzBC,KAAM,mCACNC,SAAU,6BACVC,SAAU,QACVC,WAAY,EACd,EACAC,QAAqBG,CAAZF,EAAoC,KAC7CG,CADiBF,GAAG,AAA6B,CAA5BC,cAC0C,CAA3CF,EACpBK,MAD4BJ,GAAG,CAACG,OACd,oBADyC,+BAE3DE,iBAbF,CAA0B,EAqBxBC,SAAU,IAAMC,EAAQ,CAAA,CAAA,IAAA,GAKxB,GAAIR,AAKA,CAAC,CAAC,AACR,GAKM,CAAEY,EAXMX,GAAG,CAACQ,SAAS,GAWH,CAXOT,QAAQC,GAAG,CAACS,CACrC,QAUoBG,CAAoB,OAXc,MAWZC,CAAW,CAAE,CAAGvB,EAiBzD,eAAewB,EACpB/E,CAAoB,CACpBS,CAAmB,CACnBuE,CAGC,EAEGA,EAAIC,WAAW,EAAE,GACnB9C,EAAAA,cAAAA,EAAenC,EAAKgF,EAAIC,WAAW,EAEjC1B,EAAY2B,KAAK,EAAE,GACrBjD,EAAAA,cAAAA,EAAejC,EAAK,+BAAgCgE,QAAQmB,MAAM,CAACC,MAAM,IAE3E,IAAIC,EAAU,mCAMZA,EAAUA,EAAQC,OAAO,CAAC,WAAY,KAAO,IAQ/C,IAAMG,EAAgB,MAAMlC,EAAYmC,OAAO,CAAC1F,EAAKS,EAAK,SACxD4E,EACAE,mBAJCC,CAAAA,CAKH,GAEA,GAAI,AAP2B,CAO1BC,EAIH,OAHAhF,EAAIkF,IADc,MACJ,CAAG,IACjBlF,EAAImF,GAAG,CAAC,eACK,AAAbZ,OAAa,CAATa,IAAS,KAAA,EAAbb,EAAIa,SAAS,CAAA,IAAA,CAAbb,EAAgBc,QAAQC,OAAO,IACxB,KAGT,GAAM,CACJC,SAAO,cACPC,CAAY,QACZC,CAAM,YACNC,CAAU,WACVC,CAAS,aACTC,CAAW,mBACXC,CAAiB,qBACjBC,CAAmB,sBACnBC,CAAoB,yBACpBC,CAAuB,kBACvBC,CAAgB,CAChBC,yBAAuB,uBACvBC,CAAqB,CACtB,CAAGnB,EAEEoB,EAAAA,CAAAA,EAAoBrE,EAAAA,gBAAAA,EAAiB6C,GAEvCyB,GAAQC,EACVT,EAAkBU,aAAa,CAACH,EAAkB,EAChDP,EAAkBW,MAAM,CAACP,EAAAA,AAAiB,EAGxCQ,EAAY,WAEZX,MAAAA,EAAAA,KAAAA,EAAAA,EAAqBW,SAAAA,AAAS,EAAE,AAClC,MAAMX,EAAoBW,SAAS,CAAClH,EAAKS,EAAK2F,GAAW,GAEzD3F,EAAImF,GAAG,CAAC,gCAEH,MAGT,GAAIkB,GAAS,CAACT,EAAa,CACzB,IAAMc,GAAgBJ,CAAQT,EAAkBW,MAAM,CAACP,EAAiB,CAClEU,EAAgBd,EAAkBU,aAAa,CAACH,EAAkB,CAExE,GAAIO,GACEA,CAA2B,MAAbC,KADD,GACS,EAAc,CAACF,EAAe,CACtD,GAAIhB,EAAWmB,WAAW,CACxB,CAD0B,MACnB,MAAMJ,GAEf,OAAM,IAAI7D,EAAAA,eACZ,AADYA,CAGhB,CAEA,IAAIkE,EAA0B,MAE1BT,GAAUvD,EAAY2B,IAAb,CAAkB,EAAKmB,EAAD,EAGjCkB,EAAWA,AAAa,OAHuB,KAC/CA,EAAWb,CAAAA,EAEwB,IAAMa,CAAAA,EAG3C,IAAMC,EAEJjE,AAAsB,OAAV2B,CACZ,IADiB,EAGjB,CAAC4B,EAMGW,EAAqBX,GAAS,CAACU,EAKjCZ,GAAyBD,MAC3BpE,EAAAA,AAhB0D,iBAeN,IACpDA,EAAsB,CACpBoB,KAAM0B,EACNsB,UAhBmE,sCAiBnEC,CACF,GAGF,IAAMc,EAAS1H,EAAI0H,MAAM,EAAI,MACvBC,EAAAA,CAAAA,EAASvF,EAAAA,SAAAA,IACTwF,EAAaD,EAAOE,kBAAkB,GACtCC,EAAwBf,GAC5BR,MAAAA,EAAAA,KAAAA,EAAAA,EAAqBuB,qBAAAA,AAAqB,EAEtCC,GAAgBhB,CAAAA,CAAAA,EAAQ7E,EAAAA,cAAAA,EAAelC,EAAK,eAE5CgI,EAAAA,CAAAA,EACJ9F,EAAAA,cAAAA,EAAelC,EAAK,qBACnB,MAAMuD,EAAY0E,mBAAmB,CACpCjI,EACAmG,EACAG,EACAyB,EAGJC,OAAAA,GAAAA,EAAAA,AAAkBE,iBAAiB,GACjCC,WAAmBC,kBAAkB,CAAGJ,EAE1C,IAAMK,EAAuC,QAC3CnC,EACAoC,aAAchC,EAAkBiC,OAAO,CACvCC,WAAY,CACVC,aAAc,CACZC,gBAAgB3B,CAAQZ,EAAWsC,YAAY,CAACC,cAAc,CAC9DC,gBAAiBxC,EAAWsC,YAAY,CAACE,eAAe,AAC1D,EACAC,iBAAiB7B,CAAQZ,EAAWyC,eAAe,CACnDC,gBAAiB1C,EAAWsC,YAAY,CAACK,eAAe,CAACD,eAAe,yBACxErB,EACAQ,mBACAe,eAAAA,CAAAA,EAAgB7G,EAAAA,cAAAA,EAAelC,EAAK,kBACpCgJ,kBAAmB7C,EAAW8C,SAAS,CACvCC,4BAA6B/C,EAAW+C,2BAA2B,CACnErD,UAAWb,EAAIa,SAAS,CACxBsD,QAAS,AAACC,IACR3I,EAAI4I,EAAE,CAAC,QAASD,EAClB,EACAE,sBAAkBC,EAClBC,8BAA+B,CAC7BzI,EACA0I,EACAC,EACAC,IAEApG,EAAYqG,cAAc,CACxB5J,EACAe,EACA2I,EACAC,EACApD,EAEN,EACAsD,cAAe,SACb7D,eACAC,CACF,CACF,EACM6D,EAAc,IAAIrH,EAAAA,eAAAA,CAAgBzC,GAClC+J,EAAc,IAAIrH,EAAAA,gBAAAA,CAAiBjC,GAEnCuJ,EAAUrH,EAAAA,kBAAAA,CAAmBsH,mBAAmB,CACpDH,EAAAA,CAAAA,EACAlH,EAAAA,sBAAAA,EAAuBnC,IAGnByJ,EAAuC,MAAO,oBAClDC,CAAkB,CACnB,IACC,GAAI,CACF,GACE,CAACpC,GACDvB,GACAC,GACA,CAAC0D,EAMD,OAJA1J,EAAIkF,SADJ,CACc,CAAG,IAEjBlF,EAAI2J,SAAS,CAAC,iBAAkB,eAChC3J,EAAImF,GAAG,CAAC,gCACD,KAGT,IAAMyE,EAAW,MAAM9G,EAAY+G,MAAM,CAACN,EAAS3B,GAEjDrI,EAAYuK,YAAY,CAAIlC,EAAQG,UAAU,CAAS+B,YAAY,CACrE,IAAIC,EAAmBnC,EAAQG,UAAU,CAACgC,gBAAgB,CAItDA,GACExF,EAAIa,SAAS,EAAE,CACjBb,CAFkB,CAEda,SAAS,CAAC2E,GACdA,OAAmBjB,GAGvB,IAAMkB,EAAYpC,EAAQG,UAAU,CAACkC,aAAa,CAIlD,IAAI5D,EAmDF,OADA,MAAA,CAAA,EAAM/D,EAAAA,YAAAA,EAAa+G,EAAaC,EAAaM,EAAUG,GAChD,IAnDE,EACT,IAAMG,EAAO,MAAMN,EAASM,IAAI,GAG1BC,EAAAA,CAAAA,EAAU3H,EAAAA,yBAAAA,EAA0BoH,EAASO,OAAO,EAEtDH,IACFG,CAAO,CAACxH,EAAAA,GADK,mBACLA,CAAuB,CAAGqH,CAAAA,EAGhC,CAACG,CAAO,CAAC,eAAe,EAAID,EAAKE,IAAI,EAAE,CACzCD,CAAO,CAAC,eAAe,CAAGD,EAAKE,IAAI,AAAJA,EAGjC,IAAMC,EACJ,AAAkD,SAA3CzC,EAAQG,UAAU,CAACuC,mBAAmB,IAC7C1C,EAAQG,UAAU,CAACuC,mBAAmB,EAAI5H,EAAAA,cAAAA,GAEtCkF,AADA,EACQG,UAAU,CAACuC,mBAAmB,CAEtCC,EACJ,KAA8C,IAAvC3C,EAAQG,UAAU,CAACyC,eAAe,EACzC5C,EAAQG,UAAU,CAACyC,eAAe,EAAI9H,EAAAA,cAAAA,CASlC2H,CAAe,CAPf,AACA,MAMwBA,EAAa,EACnC3E,EAAW+E,UAAU,MACrB3B,EACFlB,EAAQG,UAAU,CAACyC,cAVsC,CAUvB,CAaxC,EAtBmE,IAY5B,CACrCG,AASKD,MATE,CACL1H,KAAMH,EAAAA,eAAAA,CAAgBI,SAAS,CAC/BhD,OAAQ2J,EAAS3J,MAAM,CACvB2K,KAAMC,OAAOC,IAAI,CAAC,MAAMZ,EAAKa,WAAW,YACxCZ,CACF,EACAa,aAAc,YAAEX,SAAYE,CAAO,CACrC,CAGF,CAKF,CAAE,KALO,CAKAU,EAAK,CAqBZ,MAlBIvB,MAAAA,EAAAA,KAAAA,EAAAA,EAAoBwB,OAAAA,AAAO,EAAE,CAE/B,MAAMpI,EAAYqG,cAAc,CAC9B5J,EACA0L,EACA,CACEE,WAAY,aACZC,UAAWxG,EACXyG,UAAW,QACXC,iBAAAA,CAAAA,EAAkBjJ,EAAAA,mBAAAA,EAAoB,oBACpC2E,uBACAjB,CACF,EACF,GACAmD,AAbiB,EAcjBpD,GAGEmF,CACR,CACF,EAEMM,EAAiB,MACrBC,EACAC,KAEA,GAAI,KAqBEf,EAEqDA,EAtBzD,IAAMA,EAAa,MAAM5H,EAAYyI,cAAc,CAAC,KAClDhM,aACAmG,WACAoB,EACA4E,UAAWrK,EAAAA,SAAAA,CAAU4B,SAAS,CAC9B0I,YAAY,oBACZ9F,EACA+F,mBAAmB,uBACnB7F,0BACAC,oBACAyD,EACArE,UAAWb,EAAIa,SAAS,CACxBkC,eACF,GAGA,GAAI,CAACjB,EACH,KADU,EAIZ,GAAIqE,CAAAA,MAAAA,CAAAA,EAAiB,AAAjBA,GAAAA,IAAAA,EAAAA,EAAYC,KAAAA,AAAK,EAAA,KAAA,EAAjBD,EAAmB1H,IAAI,IAAKH,EAAAA,eAAAA,CAAgBI,SAAS,CACvD,CADyD,KACnD,OAAA,cAEL,CAFK,AAAIhC,MACR,CAAC,kDAAkD,EAAEyJ,MAAAA,CAAAA,EAAAA,AAAiB,GAAjBA,IAAAA,EAAAA,EAAYC,KAAK,AAALA,EAAK,KAAA,EAAjBD,EAAmB1H,IAAI,CAAA,CAAE,EAD1E,oBAAA,OAAA,mBAAA,gBAAA,CAEN,EAGE,CAACsE,GACHtH,EAAI2J,SAAS,CADK,AAEhB,iBACA5D,EACI,cACA2E,EAAWmB,MAAM,CACf,OACAnB,EAAWQ,OAAO,CAChB,QACA,OAKRtF,GACF5F,EAAI2J,QADW,CACF,CACX,gBACA,2DAIJ,IAAMQ,EAAAA,CAAAA,EAAU5H,EAAAA,2BAAAA,EAA4BmI,EAAWC,KAAK,CAACR,OAAO,CAEhE,CAAE7C,GAAiBjB,GACrB8D,EADyB,AACjB2B,GADqB,GACf,CAACnJ,EAAAA,sBAAAA,GAMf+H,EAAWM,YAAY,EACtBhL,EAAD,AAAK+L,SAAS,CAAC,kBACd5B,EAAD,AAAStK,GAAG,CAAC,kBACb,AACAsK,EAAQ6B,GAAG,CACT,gBAAA,CAAA,EACAvJ,EAAAA,qBAAAA,EAAsBiI,EAAWM,YAAY,GAIjD,MAAA,CAAA,EAAM1I,EAAAA,YAAAA,EACJ+G,EACAC,EAEA,IAAIpJ,SAASwK,EAAWC,KAAK,CAACC,IAAI,CAAE,CAClCT,UACAlK,OAAQyK,EAAWC,KAAK,CAAC1K,MAAM,EAAI,GACrC,IAEF,MACF,CAAE,MAAOgL,EAAK,CAuBZ,GAtBMA,aAAerI,EAAAA,eAAc,EAEjC,CAFqC,KAE/BE,AAVgI,EAUpHqG,cAAc,CAC9B5J,EACA0L,EACA,CACEE,WAAY,aACZC,UAAWhF,EACXiF,UAAW,QACXC,iBAAAA,CAAAA,EAAkBjJ,EAAAA,mBAAAA,EAAoB,oBACpC2E,uBACAjB,CACF,EACF,GAZiB,AAajBmD,EACApD,GAOAO,EAAO,MAAM4E,CAGjB,OAAA,CAAA,EAAM3I,EAAAA,YAAAA,EACJ+G,EACAC,EACA,IAAIpJ,SAAS,KAAM,CAAED,OAAQ,GAAI,IAEnC,MACF,QAAU,CACN,CAAA,KACA,GAAI,CAACuL,EACH,OAGF,IAJkB,AAIdtG,EAAalF,EAAIkF,UAAU,CAE/BsG,EAAYS,aAAa,CAAC,CACxB,mBAAoB/G,EACpB,YAAY,CACd,GAEIA,GAAcA,GAAc,KAAK,CAGnCsG,EAAYU,SAAS,CAAC,CACpBC,KAAMtK,EAAAA,cAAAA,CAAeuK,KAAK,AAC5B,GAEAZ,EAAYa,YAAY,CAAC,aAAcnH,EAAWoH,QAAQ,KAG5D,IAAMC,EAAqBrF,EAAOsF,qBAAqB,GAEvD,GAAI,CAACD,EACH,OAGF,GACEA,EAAmB1M,GAAG,CAAC,EALA,kBAMvBuC,EAAAA,cAAAA,CAAeqK,aAAa,CAC5B,OACAC,QAAQC,IAAI,CACV,CAAC,2BAA2B,EAAEJ,EAAmB1M,GAAG,CAClD,kBACA,qEAAqE,CAAC,EAK5E,IAAM+M,EAAQL,EAAmB1M,GAAG,CAAC,eAAiBuG,EAChDyG,EAAO,CAAA,EAAG5F,EAAO,CAAC,EAAE2F,EAAAA,CAAO,CAEjCpB,EAAYS,aAAa,CAAC,CACxB,aAAcW,EACd,aAAcA,EACd,iBAAkBC,CACpB,GACArB,EAAYsB,UAAU,CAACD,GAInBpB,GAAcA,IAAeD,IAC/BC,EAAWY,OADiC,KACrB,CAAC,aAAcO,GACtCnB,EAAWqB,UAAU,CAACD,IAE1B,CAAA,EACF,CACF,EAIA,GAAIxF,GAAyBF,EAC3B,MAAMoE,EAAepE,EADkB,AACN2B,YAC5B,CACL,IAAI2C,EAAavE,EAAOE,kBAAkB,EAC1C,OAAMF,EAAO6F,qBAAqB,CAChCxN,EAAI4K,OAAO,CACX,IACEjD,EAAO8F,KAAK,CACV5K,EAAAA,cAAAA,CAAeqK,aAAa,CAC5B,CACEQ,SAAU,CAAA,EAAGhG,EAAO,CAAC,EAAErC,EAAAA,CAAS,CAChC5B,KAAMpB,EAAAA,QAAAA,CAASsL,MAAM,CACrBC,WAAY,CACV,cAAelG,EACf,cAAe1H,EAAII,GAAG,AACxB,CACF,EACCyN,AAAD,GAAU7B,EAAe6B,EAAM3B,IAEnC3C,OACA,CAACzB,EAEL,CACF,mCAhgBA,SAAS/F,EACP,MAAA,CAAA,EAAOC,EAAAA,UAAAA,EAAY,kBACjB4C,uBACAC,CACF,EACF,kHC9FA,IAAA,EAAA,EAAA,CAAA,CAAA,OASO,IAAMiJ,EAAe,OACfC,EAAuB,aAc7B,eAAeG,IACpB,GAAI,CACF,IAAMC,EAAQ,MAAM,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,gBAC7B,GAAIA,EAAMtN,EAAE,EAAI,CAACsN,EAAMvD,OAAO,CAACtK,GAAG,CAAC,iBAAmB,EAAA,CAAE,CAAE2N,QAAQ,CAAC,oBAAqB,CACtF,IAAMG,EAAM,MAAMD,EAAMvN,IAAI,GAI5B,OAAOwN,EAAGC,eAAe,EAAEC,YAAcF,EAAGG,QAAQ,EAAE,CAAC,EAAE,EAAED,YAAc,IAC3E,CACF,CAAE,KAAM,CAER,CACA,OAAO,IACT,CA+BO,eAAeY,EAAiBzO,CAAa,MAC9C0O,EACJ,GA1DO,CAAC1O,AA0DJuN,AAAOvN,EA1DCmK,IA0DK,GA1DE,CAACtK,GAAG,CAAC,iBAAmB,EAAA,CAAE,CAAE2N,QAAQ,CAAC,oBA2DtDkB,EAAW,MAAM1O,EAAIG,IAAI,OACpB,CAEL,IAAM0O,EAAYF,CADN,MAAM3O,EAAI4O,IAAI,EAAA,EAEvBE,KAAK,CAAC,MACNC,MAAM,CAACC,GAAKA,EAAEC,UAAU,CAAC,UACzBC,GAAG,CAACF,GAAKA,EAAEG,KAAK,CAAC,GAAGC,IAAI,IACxBL,MAAM,CAACzI,SACJ+I,EAAOR,CAAS,CAACA,EAAUhO,MAAM,CAAG,EAAE,CAC5C,GAAI,CAACwO,EAAM,MAAM,AAAIpO,MAAM,0BAC3ByN,EAAWH,KAAKe,KAAK,CAACD,EACxB,CACA,IAAM7L,EAAMkL,EACZ,GAAIlL,EAAIlD,KAAK,CAAE,MAAM,AAAIW,MAAMuC,EAAIlD,KAAK,CAACY,OAAO,EAAI,aACpD,IAAM0N,EAAOpL,EAAI+L,MAAM,EAAEC,SAAS,CAAC,EAAE,EAAEZ,KACvC,GAAoB,UAAhB,OAAOA,EAAmB,MAAU3N,AAAJ,MAAU,mCAC9C,GAAI,CACF,OAAOsN,KAAKe,KAAK,CAACV,EACpB,CAAE,KAAM,CACN,MAAO,CAAExO,IAAI,OAAMwO,CAAK,CAC1B,CACF,gEAxCO,SAASP,AAAQL,CAAY,CAAEC,CAA6B,EACjE,MAAO,CAAA,EAAA,EAAA,QAAA,AAAQ,EAACZ,EAAc,CAC5BpG,OAAQ,OACRkD,QAAS,CACP,eAAgB,mBAChBmE,OAAQ,sCACR,uBAAwBhB,CAC1B,EACA1C,KAAM2D,KAAKC,SAAS,CAACT,AApBhB,CACLG,QAAS,MACTC,GAAI,EACJlH,OAAQ,aACRxB,OAAQ,CAAEoH,KAgBuBmB,CAhBjBA,CAAMI,UAgBiBH,CAhBNA,AAAK,CACxC,EAgBA,EACF,iFC/DA,IAAA,EAAA,EAAA,CAAA,CAAA,KAEA,SAASwB,IACP,OAAOlM,QAAQC,GAAG,CAACkM,WAAW,EAAI,uBACpC,CAYO,eAAeG,EAAS/P,CAAY,CAAEgQ,CAAkB,EAC7D,IAAMnQ,EAAM,CAAA,EAAG8P,IAAAA,EAAc3P,EAAAA,CAAM,CAG/BiQ,EAAqC,CAAC,EAGpCC,EAAcF,GAAM3F,QAC1B,GAAI,CAAC6F,GAAc,UAAD,IAChB,EADiC,CAC7B,CAD+B,AAEjC,IAAMC,EAAY,MAAM,CAAA,EAAA,EAAA,cAAA,AAAc,IAClCA,IACFF,EAAa,CAAE,IADF,UACmB,CAAC,OAAO,EAAEE,EAAAA,CAAW,CAAC,CAE1D,CAAE,KAAM,CAER,CAIF,OAAOC,MAAMvQ,EAAK,CAChB,GAAGmQ,CAAI,CACP3F,QAAS,CAAE,GAAG4F,CAAU,CAAE,GAAGD,GAAM3F,OAAO,AAAC,EAC3CgG,KAAM,CAAE9F,WAAY,CAAE,CACxB,EACF,CAnCuBoF","ignoreList":[1]}
|
|
1
|
+
{"version":3,"sources":["../../../app/api/anet/host-supervisors/route.ts","../../../node_modules/next/src/build/templates/app-route.ts","../../../app/lib/hub-mcp.ts","../../../app/lib/hub.ts"],"sourcesContent":["import { requireDashboardAuth } from '@/app/lib/dashboard-auth';\nimport { hubFetch } from '@/app/lib/hub';\nimport { resolveDefaultNetworkId } from '@/app/lib/hub-mcp';\n\n/**\n * PR4 #338 — proxy GET /api/host-supervisors (RFC-026 §9.2 / list_host_supervisors\n * REST mirror; landed in commhub-server@0.9.0-preview.8).\n *\n * Returns the same shape the hub does (count + daemons[]), with `selected` hint\n * the picker uses for its 3-state UI:\n * - count=0 → onboarding (no daemon yet, show install instructions)\n * - count=1 → auto-pick (preselect the only daemon)\n * - count≥2 → user picker (show all daemons, surface telemetry to help choose)\n *\n * Honest degrade: if the hub doesn't have list_host_supervisors yet (preview.7\n * or older), return ok:false with a flagged status — the client renders an\n * \"upgrade hub\" hint rather than a fake empty list.\n */\n\ninterface DaemonRow {\n // Hub returns daemon_node_id, not node_id (PR2 v2 §9.2 mirror chose\n // that name to make the foreign-key intent explicit). Locked at the\n // contract layer; client passes it back to create_node as daemon_node_id.\n daemon_node_id: string;\n alias: string;\n hostname?: string | null;\n online?: boolean;\n last_seen_at?: string | null;\n runtimes_supported?: string[];\n allowed_secret_keys?: string[];\n host_telemetry?: {\n alert_level?: 'green' | 'yellow' | 'red' | 'gray';\n cpu_cores?: number | null;\n mem_gb?: number | null;\n ip_internal?: string | null;\n };\n}\n\ninterface ServerRow {\n hostname: string;\n status?: 'online' | 'offline';\n}\n\ninterface HostSupervisorRow {\n hostname: string;\n status?: 'online' | 'offline';\n daemon: DaemonRow | null;\n has_daemon: boolean;\n}\n\ninterface HubResponse {\n ok?: boolean;\n error?: string;\n count?: number;\n daemons?: DaemonRow[];\n}\n\nasync function loadServers(): Promise<ServerRow[]> {\n try {\n const res = await hubFetch('/api/servers');\n if (!res.ok) return [];\n const raw = await res.json().catch(() => ({}));\n const rows = Array.isArray(raw) ? raw : Array.isArray(raw?.servers) ? raw.servers : [];\n return rows\n .filter((s: unknown): s is ServerRow => Boolean(s) && typeof s === 'object' && typeof (s as ServerRow).hostname === 'string')\n .map((s: ServerRow) => ({\n hostname: s.hostname,\n status: s.status,\n }));\n } catch {\n return [];\n }\n}\n\nfunction normalizeHost(hostname: string | null | undefined) {\n return (hostname || '').trim().toLowerCase();\n}\n\nfunction mergeHosts(servers: ServerRow[], daemons: DaemonRow[]): HostSupervisorRow[] {\n const byHost = new Map<string, HostSupervisorRow>();\n for (const s of servers) {\n const key = normalizeHost(s.hostname);\n if (!key) continue;\n byHost.set(key, { ...s, daemon: null, has_daemon: false });\n }\n for (const d of daemons) {\n const hostname = d.hostname || d.alias || d.daemon_node_id;\n const key = normalizeHost(hostname);\n const existing = key ? byHost.get(key) : undefined;\n if (existing) {\n byHost.set(key, { hostname: existing.hostname, status: existing.status, daemon: d, has_daemon: true });\n } else {\n byHost.set(key || d.daemon_node_id, {\n hostname,\n status: d.online === false ? 'offline' : 'online',\n daemon: d,\n has_daemon: true,\n });\n }\n }\n return [...byHost.values()].sort((a, b) => {\n if (a.has_daemon !== b.has_daemon) return a.has_daemon ? -1 : 1;\n return a.hostname.localeCompare(b.hostname);\n });\n}\n\nexport async function GET(req: Request) {\n const authFailure = await requireDashboardAuth();\n if (authFailure) return authFailure;\n\n const { searchParams } = new URL(req.url);\n // #338 GA-blocker (2026-07-04, 通信龙 catch): hub /api/host-supervisors\n // (post-#380) requires an explicit network_id for admin utok callers —\n // admin membership spans networks, so hub refuses to guess (\"400\n // missing_network_id\"). The create-node wizard's picker forwards the\n // NetworkProvider context value verbatim, and on first-load (before\n // sessionStorage rehydrates) that value is the empty string → the\n // picker sends the query without network_id → hub 400 → wizard stuck\n // at step 1 for every admin. Fall back to resolveDefaultNetworkId\n // here rather than propagate the 400 to the picker UI; empty context\n // is a first-load reality, not a user error. #381 hub-side single-\n // network fallback covers the same case for non-admin utoks — this\n // fixes the admin path symmetrically.\n let networkId = searchParams.get('network_id');\n if (!networkId) {\n networkId = await resolveDefaultNetworkId();\n }\n const path = networkId\n ? `/api/host-supervisors?network_id=${encodeURIComponent(networkId)}`\n : '/api/host-supervisors';\n\n try {\n const [res, servers] = await Promise.all([hubFetch(path), loadServers()]);\n if (res.status === 404 || res.status === 501) {\n return Response.json(\n {\n ok: false,\n unconfirmed: true,\n error: `hub /api/host-supervisors not available (${res.status}) — upgrade commhub-server to >=0.9.0-preview.8`,\n count: 0,\n daemons: [],\n },\n { status: 501 },\n );\n }\n if (!res.ok) {\n return Response.json(\n { ok: false, error: `hub ${res.status}`, count: 0, daemons: [] },\n { status: 502 },\n );\n }\n const data = (await res.json().catch(() => ({}))) as HubResponse;\n const daemons = Array.isArray(data?.daemons) ? data.daemons : [];\n const count = typeof data?.count === 'number' ? data.count : daemons.length;\n const selected = count === 1 ? daemons[0]?.daemon_node_id || null : null;\n return Response.json({ ok: true, count, daemons, hosts: mergeHosts(servers, daemons), selected });\n } catch (e: unknown) {\n return Response.json(\n { ok: false, error: e instanceof Error ? e.message : String(e), count: 0, daemons: [] },\n { status: 502 },\n );\n }\n}\n","import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport {\n getTracer,\n type Span,\n SpanKind,\n SpanStatusCode,\n} from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // The lazy require factory ensures that:\n // - In dev: devRequestTimingInternalsEnd is set before userland executes,\n // correctly attributing module load time to application-code rather than\n // framework internals.\n // - In all modes: async modules (route files with top-level await) are\n // handled correctly — require() returns a Promise for such modules, which\n // ensureUserland() awaits before the first request is handled.\n userland: () => require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n // In Turbopack dev mode, also provide a synchronous per-request getter so\n // server HMR updates are picked up without re-executing the entry chunk.\n // Using require() (synchronous) avoids adding async overhead that would be\n // incorrectly attributed to application-code time in devRequestTiming.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () =>\n require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] ||\n prerenderManifest.routes[resolvedPathname]\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname])\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n const supportsDynamicResponse: boolean =\n // If we're in development, we always support dynamic HTML\n routeModule.isDev === true ||\n // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr\n\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps: prerenderManifest.preview,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n validationLevel: nextConfig.experimental.instantInsights.validationLevel,\n supportsDynamicResponse,\n incrementalCache,\n hmrRefreshHash: getRequestMeta(req, 'hmrRefreshHash'),\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n routeModule.onRequestError(\n req,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response = await routeModule.handle(nextReq, context)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? // Fall back to the global `expireTime` config when the\n // route has a numeric `revalidate` but didn't declare an\n // explicit `expire` (e.g. via `cacheLife`). This mirrors the\n // build-time fallback in `build/index.ts` so cache entries\n // and the response Cache-Control header agree on the route's\n // effective expire. Routes that opt out of revalidation\n // (`revalidate: false`) or that are dynamic (`revalidate: 0`)\n // keep `expire: undefined`.\n revalidate !== false && revalidate > 0\n ? nextConfig.expireTime\n : undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, pendingWaitUntil)\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const handleResponse = async (\n currentSpan: Span | undefined,\n parentSpan: Span | undefined\n ) => {\n try {\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response.\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n return\n } finally {\n ;(() => {\n if (!currentSpan) {\n return\n }\n\n let statusCode = res.statusCode\n\n currentSpan.setAttributes({\n 'http.status_code': statusCode,\n 'next.rsc': false,\n })\n\n if (statusCode && statusCode >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n currentSpan.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n currentSpan.setAttribute('error.type', statusCode.toString())\n }\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || normalizedSrcPage\n const name = `${method} ${route}`\n\n currentSpan.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n currentSpan.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== currentSpan) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })()\n }\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan, undefined)\n } else {\n let parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n (span) => handleResponse(span, parentSpan)\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n}\n","import { hubFetch } from './hub';\n\n/**\n * Shared hub MCP (JSON-RPC tools/call) helpers for the node-config /\n * node-lifecycle / node-create proxies. The hub MCP endpoint answers with\n * either application/json or text/event-stream; in both cases the tool payload\n * is JSON in result.content[0].text. Mirrors the shape #260/#262 PR C established.\n */\n\nexport const HUB_MCP_PATH = '/mcp';\nexport const MCP_PROTOCOL_VERSION = '2025-03-26';\n\nfunction isJson(res: Response): boolean {\n return (res.headers.get('content-type') || '').includes('application/json');\n}\n\n/**\n * Resolve the user's default network_id from the hub profile, forwarding the\n * browser V3 token via hubFetch. Needed because a V3 user token often has a\n * null current_network, and node MCP tools require an explicit network_id\n * (else they 'permission_denied: network_id required'). Mirrors the resolution\n * in /api/auth/v3 and the PR C node-config fix (02dde66). Returns null if the\n * profile can't be read; callers should surface that rather than silently fail.\n */\nexport async function resolveDefaultNetworkId(): Promise<string | null> {\n try {\n const meRes = await hubFetch('/api/auth/me');\n if (meRes.ok && (meRes.headers.get('content-type') || '').includes('application/json')) {\n const me = (await meRes.json()) as {\n current_network?: { network_id?: string };\n networks?: Array<{ network_id?: string }>;\n };\n return me.current_network?.network_id || me.networks?.[0]?.network_id || null;\n }\n } catch {\n /* fall through → null */\n }\n return null;\n}\n\nexport function mcpEnvelope(tool: string, args: Record<string, unknown>) {\n return {\n jsonrpc: '2.0',\n id: 1,\n method: 'tools/call',\n params: { name: tool, arguments: args },\n };\n}\n\n/**\n * POST a tools/call to the hub MCP endpoint, forwarding the browser V3 token\n * via hubFetch. Returns the raw Response so callers can branch on status.\n */\nexport function callMcp(tool: string, args: Record<string, unknown>): Promise<Response> {\n return hubFetch(HUB_MCP_PATH, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json, text/event-stream',\n 'MCP-Protocol-Version': MCP_PROTOCOL_VERSION,\n },\n body: JSON.stringify(mcpEnvelope(tool, args)),\n });\n}\n\n/**\n * Parse an MCP tools/call response (json or SSE) → the JSON tool payload.\n * Throws on MCP-level error or malformed envelope.\n */\nexport async function parseMcpEnvelope(res: Response): Promise<unknown> {\n let envelope: unknown;\n if (isJson(res)) {\n envelope = await res.json();\n } else {\n const raw = await res.text();\n const dataLines = raw\n .split('\\n')\n .filter(l => l.startsWith('data:'))\n .map(l => l.slice(5).trim())\n .filter(Boolean);\n const last = dataLines[dataLines.length - 1];\n if (!last) throw new Error('empty MCP SSE response');\n envelope = JSON.parse(last);\n }\n const env = envelope as { error?: { message?: string }; result?: { content?: Array<{ text?: string }> } };\n if (env.error) throw new Error(env.error.message || 'MCP error');\n const text = env.result?.content?.[0]?.text;\n if (typeof text !== 'string') throw new Error('MCP result missing content text');\n try {\n return JSON.parse(text);\n } catch {\n return { ok: true, text };\n }\n}\n","import { getV3UserToken } from './dashboard-auth';\n\nfunction getHubUrl() {\n return process.env.COMMHUB_URL || 'http://127.0.0.1:9200';\n}\n\nexport const HUB_URL = getHubUrl();\n\nexport function hubHeaders(): Record<string, string> {\n return {};\n}\n\n/**\n * Fetch from CommHub. Uses the browser session's V3 user token when available.\n * Dashboard is a thin proxy and does not fall back to a service/master token.\n */\nexport async function hubFetch(path: string, init?: RequestInit): Promise<Response> {\n const url = `${getHubUrl()}${path}`;\n\n // Build auth: prefer V3 token cookie unless caller supplied Authorization.\n let authHeader: Record<string, string> = {};\n\n // Only try V3 token if no Authorization already in init.headers\n const initHeaders = init?.headers as Record<string, string> | undefined;\n if (!initHeaders?.['Authorization']) {\n try {\n const userToken = await getV3UserToken();\n if (userToken) {\n authHeader = { 'Authorization': `Bearer ${userToken}` };\n }\n } catch {\n // cookies() not available in this context, ignore\n }\n\n }\n\n return fetch(url, {\n ...init,\n headers: { ...authHeader, ...init?.headers },\n next: { revalidate: 0 },\n } as RequestInit);\n}\n"],"names":["loadServers","res","ok","raw","json","catch","rows","Array","isArray","servers","filter","s","Boolean","hostname","map","status","normalizeHost","trim","toLowerCase","mergeHosts","daemons","byHost","Map","key","set","daemon","has_daemon","d","alias","daemon_node_id","existing","get","undefined","online","values","sort","a","b","localeCompare","GET","req","authFailure","searchParams","URL","url","networkId","path","encodeURIComponent","Promise","all","Response","unconfirmed","error","count","data","length","selected","hosts","e","Error","message","String","AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","setRequestMeta","getTracer","SpanKind","SpanStatusCode","setManifestsSingleton","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","CachedRouteKind","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","process","env","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","userland","require","TURBOPACK","__NEXT_DEV_SERVER","getUserland","workAsyncStorage","workUnitAsyncStorage","serverHooks","handler","ctx","requestMeta","isDev","hrtime","bigint","srcPage","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","method","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","useCacheTimeout","cacheComponents","validationLevel","instantInsights","hmrRefreshHash","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","onClose","cb","on","onAfterTaskError","onInstrumentationRequestError","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","responseGenerator","previousCacheEntry","setHeader","response","handle","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","headers","type","revalidate","collectedRevalidate","expire","collectedExpire","expireTime","cacheEntry","value","body","Buffer","from","arrayBuffer","cacheControl","err","isStale","routerKind","routePath","routeType","revalidateReason","handleResponse","currentSpan","parentSpan","routeKind","isFallback","isRoutePPREnabled","isMiss","delete","getHeader","setAttributes","setStatus","code","ERROR","setAttribute","toString","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","route","name","updateName","withPropagatedContext","trace","spanName","SERVER","attributes","span","HUB_MCP_PATH","MCP_PROTOCOL_VERSION","isJson","includes","resolveDefaultNetworkId","meRes","me","current_network","network_id","networks","mcpEnvelope","tool","args","jsonrpc","id","arguments","callMcp","Accept","JSON","stringify","parseMcpEnvelope","envelope","text","dataLines","split","l","startsWith","slice","last","parse","result","content","getHubUrl","COMMHUB_URL","HUB_URL","hubHeaders","hubFetch","init","authHeader","initHeaders","userToken","fetch","next"],"mappings":"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","ignoreList":[1]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,t,r)=>{t.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},98730,e=>{"use strict";var t=e.i(282);let r=process.env.COMMHUB_URL||"http://127.0.0.1:9200";async function a(){let e=await (0,t.getV3UserToken)(),r={};return e&&(r.Authorization=`Bearer ${e}`),r}async function n(e){let n=await (0,t.requireDashboardAuth)();if(n)return n;let{searchParams:s}=new URL(e.url),i=s.get("requirement_id")||"";if(!/^req_[A-Za-z0-9_-]+$/.test(i))return Response.json({ok:!1,error:"invalid_requirement_id"},{status:400});let o=s.get("limit")||"100";try{let e=await fetch(`${r}/api/requirements/events?requirement_id=${encodeURIComponent(i)}&limit=${encodeURIComponent(o)}`,{headers:await a(),next:{revalidate:0}});if(!(e.headers.get("content-type")||"").includes("application/json"))return Response.json({ok:!1,error:"hub_not_json",status:e.status},{status:502});return Response.json(await e.json(),{status:e.status})}catch(e){return Response.json({ok:!1,error:"CommHub unreachable",detail:e instanceof Error?e.message:String(e)},{status:502})}}e.s(["GET",0,n])},26245,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),x=e.i(74838),v=e.i(10372),R=e.i(93695);e.i(52474);var m=e.i(220);let g=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/hub/requirements/events/route",pathname:"/api/hub/requirements/events",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/hub/requirements/events/route.ts",nextConfigOutput:"",userland:()=>e.r(98730),...{}}),{workAsyncStorage:f,workUnitAsyncStorage:w,serverHooks:C}=g;async function E(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),g.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/hub/requirements/events/route";f=f.replace(/\/index$/,"")||"/";let w=await g.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:C,deploymentId:E,params:y,nextConfig:q,parsedUrl:b,isDraftMode:A,prerenderManifest:T,routerServerContext:_,isOnDemandRevalidate:j,revalidateOnlyGenerated:S,resolvedPathname:P,clientReferenceManifest:k,serverActionsManifest:N}=w,O=(0,o.normalizeAppPath)(f),H=!!(T.dynamicRoutes[O]||T.routes[P]),U=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,b,!1):t.end("This page could not be found"),null);if(H&&!A){let e=!!T.routes[P],t=T.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(q.adapterPath)return await U();throw new R.NoFallbackError}}let I=null;!H||g.isDev||A||(I="/index"===(I=P)?"/":I);let M=!0===g.isDev||!H,D=H&&!M;N&&k&&(0,i.setManifestsSingleton)({page:f,clientReferenceManifest:k,serverActionsManifest:N});let $=e.method||"GET",L=(0,s.getTracer)(),B=L.getActiveScopeSpan(),F=!!(null==_?void 0:_.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,q,T,K);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let V={params:y,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!q.experimental.authInterrupts,useCacheTimeout:q.experimental.useCacheTimeout},cacheComponents:!!q.cacheComponents,validationLevel:q.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:G,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:q.cacheLife,staticPageGenerationTimeout:q.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>g.onRequestError(e,t,a,n,_)},sharedContext:{buildId:C,deploymentId:E}},z=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(z,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!K&&j&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await g.handle(W,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let s=V.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let i=V.renderOpts.collectedTags;if(!H)return await (0,c.sendResponse)(z,X,n,s),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[v.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=v.INFINITE_CACHE?!1!==r&&r>0?q.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,_),t}},J=async(n,i)=>{try{var o,l;let n=await g.handleResponse({req:e,nextConfig:q,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:S,responseGenerator:Z,waitUntil:a.waitUntil,isMinimalMode:K});if(!H)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",j?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);K&&H||s.delete(v.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,x.getCacheControlHeader)(n.cacheControl)),await (0,c.sendResponse)(z,X,new Response(n.value.body,{headers:s,status:n.value.status||200}));return}catch(t){if(t instanceof R.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,_),H)throw t;await (0,c.sendResponse)(z,X,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:s.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||O,o=`${$} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),n.updateName(o),i&&i!==n&&(i.setAttribute("http.route",a),i.updateName(o))})()}};if(F&&B)await J(B,void 0);else{let t=L.getActiveScopeSpan();await L.withPropagatedContext(e.headers,()=>L.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${f}`,kind:s.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},e=>J(e,t)),void 0,!F)}}e.s(["handler",0,E,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:f,workUnitAsyncStorage:w})},"routeModule",0,g,"serverHooks",0,C,"workAsyncStorage",0,f,"workUnitAsyncStorage",0,w])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__053z4wp._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../app/api/hub/requirements/events/route.ts","../../../node_modules/next/src/build/templates/app-route.ts"],"sourcesContent":["import { requireDashboardAuth, getV3UserToken } from '@/app/lib/dashboard-auth';\n\nconst HUB_URL = process.env.COMMHUB_URL || 'http://127.0.0.1:9200';\n\nasync function hubHeaders(): Promise<Record<string, string>> {\n const userToken = await getV3UserToken();\n const h: Record<string, string> = {};\n if (userToken) h['Authorization'] = `Bearer ${userToken}`;\n return h;\n}\n\n/**\n * Requirement activity timeline (动态) — #1633.\n *\n * Hub's shape here is NOT /api/requirements/<id>/events (that 404s).\n * The working endpoint is a query param on the collection route.\n */\nexport async function GET(req: Request) {\n const authFailure = await requireDashboardAuth();\n if (authFailure) return authFailure;\n\n const { searchParams } = new URL(req.url);\n const requirementId = searchParams.get('requirement_id') || '';\n if (!/^req_[A-Za-z0-9_-]+$/.test(requirementId)) {\n return Response.json({ ok: false, error: 'invalid_requirement_id' }, { status: 400 });\n }\n const limit = searchParams.get('limit') || '100';\n\n try {\n const res = await fetch(\n `${HUB_URL}/api/requirements/events?requirement_id=${encodeURIComponent(requirementId)}&limit=${encodeURIComponent(limit)}`,\n { headers: await hubHeaders(), next: { revalidate: 0 } },\n );\n const contentType = res.headers.get('content-type') || '';\n if (!contentType.includes('application/json')) {\n return Response.json({ ok: false, error: 'hub_not_json', status: res.status }, { status: 502 });\n }\n return Response.json(await res.json(), { status: res.status });\n } catch (e: unknown) {\n return Response.json(\n { ok: false, error: 'CommHub unreachable', detail: e instanceof Error ? e.message : String(e) },\n { status: 502 },\n );\n }\n}\n","import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport {\n getTracer,\n type Span,\n SpanKind,\n SpanStatusCode,\n} from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // The lazy require factory ensures that:\n // - In dev: devRequestTimingInternalsEnd is set before userland executes,\n // correctly attributing module load time to application-code rather than\n // framework internals.\n // - In all modes: async modules (route files with top-level await) are\n // handled correctly — require() returns a Promise for such modules, which\n // ensureUserland() awaits before the first request is handled.\n userland: () => require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n // In Turbopack dev mode, also provide a synchronous per-request getter so\n // server HMR updates are picked up without re-executing the entry chunk.\n // Using require() (synchronous) avoids adding async overhead that would be\n // incorrectly attributed to application-code time in devRequestTiming.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () =>\n require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] ||\n prerenderManifest.routes[resolvedPathname]\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname])\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n const supportsDynamicResponse: boolean =\n // If we're in development, we always support dynamic HTML\n routeModule.isDev === true ||\n // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr\n\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps: prerenderManifest.preview,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n validationLevel: nextConfig.experimental.instantInsights.validationLevel,\n supportsDynamicResponse,\n incrementalCache,\n hmrRefreshHash: getRequestMeta(req, 'hmrRefreshHash'),\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n routeModule.onRequestError(\n req,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response = await routeModule.handle(nextReq, context)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? // Fall back to the global `expireTime` config when the\n // route has a numeric `revalidate` but didn't declare an\n // explicit `expire` (e.g. via `cacheLife`). This mirrors the\n // build-time fallback in `build/index.ts` so cache entries\n // and the response Cache-Control header agree on the route's\n // effective expire. Routes that opt out of revalidation\n // (`revalidate: false`) or that are dynamic (`revalidate: 0`)\n // keep `expire: undefined`.\n revalidate !== false && revalidate > 0\n ? nextConfig.expireTime\n : undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, pendingWaitUntil)\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const handleResponse = async (\n currentSpan: Span | undefined,\n parentSpan: Span | undefined\n ) => {\n try {\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response.\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n return\n } finally {\n ;(() => {\n if (!currentSpan) {\n return\n }\n\n let statusCode = res.statusCode\n\n currentSpan.setAttributes({\n 'http.status_code': statusCode,\n 'next.rsc': false,\n })\n\n if (statusCode && statusCode >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n currentSpan.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n currentSpan.setAttribute('error.type', statusCode.toString())\n }\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || normalizedSrcPage\n const name = `${method} ${route}`\n\n currentSpan.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n currentSpan.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== currentSpan) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })()\n }\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan, undefined)\n } else {\n let parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n (span) => handleResponse(span, parentSpan)\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n}\n"],"names":["HUB_URL","process","env","COMMHUB_URL","hubHeaders","userToken","h","GET","req","authFailure","searchParams","URL","url","requirementId","get","test","Response","json","ok","error","status","limit","res","fetch","encodeURIComponent","headers","next","revalidate","contentType","includes","e","detail","Error","message","String","AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","setRequestMeta","getTracer","SpanKind","SpanStatusCode","setManifestsSingleton","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","CachedRouteKind","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","userland","require","TURBOPACK","__NEXT_DEV_SERVER","getUserland","workAsyncStorage","workUnitAsyncStorage","serverHooks","handler","ctx","requestMeta","isDev","hrtime","bigint","srcPage","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","deploymentId","params","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","Boolean","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","method","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","useCacheTimeout","cacheComponents","validationLevel","instantInsights","hmrRefreshHash","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","onClose","cb","on","onAfterTaskError","undefined","onInstrumentationRequestError","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","responseGenerator","previousCacheEntry","setHeader","response","handle","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","type","collectedRevalidate","expire","collectedExpire","expireTime","cacheEntry","value","body","Buffer","from","arrayBuffer","cacheControl","err","isStale","routerKind","routePath","routeType","revalidateReason","handleResponse","currentSpan","parentSpan","routeKind","isFallback","isRoutePPREnabled","isMiss","delete","getHeader","set","setAttributes","setStatus","code","ERROR","setAttribute","toString","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","route","name","updateName","withPropagatedContext","trace","spanName","SERVER","attributes","span"],"mappings":"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","ignoreList":[1]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(e,t,r)=>{t.exports=e.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},81111,(e,t,r)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},14362,e=>{"use strict";var t=e.i(282);let r=process.env.COMMHUB_URL||"http://127.0.0.1:9200";async function a(){let e=await (0,t.getV3UserToken)(),r={};return e&&(r.Authorization=`Bearer ${e}`),r}async function n(e){let n=await (0,t.requireDashboardAuth)();if(n)return n;let{searchParams:s}=new URL(e.url),i=new URLSearchParams;for(let e of["q","limit","offset"]){let t=s.get(e);t&&i.set(e,t)}i.has("limit")||i.set("limit","100");try{let e=await fetch(`${r}/api/requirements/people/directory?${i.toString()}`,{headers:await a(),next:{revalidate:0}});if(!(e.headers.get("content-type")||"").includes("application/json"))return Response.json({ok:!1,error:"hub_not_json",status:e.status},{status:502});return Response.json(await e.json(),{status:e.status})}catch(e){return Response.json({ok:!1,error:"CommHub unreachable",detail:e instanceof Error?e.message:String(e)},{status:502})}}e.s(["GET",0,n])},16857,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),x=e.i(74838),R=e.i(10372),v=e.i(93695);e.i(52474);var m=e.i(220);let g=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/hub/people/route",pathname:"/api/hub/people",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/hub/people/route.ts",nextConfigOutput:"",userland:()=>e.r(14362),...{}}),{workAsyncStorage:f,workUnitAsyncStorage:w,serverHooks:E}=g;async function y(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),g.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/hub/people/route";f=f.replace(/\/index$/,"")||"/";let w=await g.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:E,deploymentId:y,params:C,nextConfig:b,parsedUrl:A,isDraftMode:q,prerenderManifest:T,routerServerContext:S,isOnDemandRevalidate:j,revalidateOnlyGenerated:P,resolvedPathname:_,clientReferenceManifest:k,serverActionsManifest:N}=w,O=(0,o.normalizeAppPath)(f),H=!!(T.dynamicRoutes[O]||T.routes[_]),U=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,A,!1):t.end("This page could not be found"),null);if(H&&!q){let e=!!T.routes[_],t=T.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await U();throw new v.NoFallbackError}}let M=null;!H||g.isDev||q||(M="/index"===(M=_)?"/":M);let I=!0===g.isDev||!H,D=H&&!I;N&&k&&(0,i.setManifestsSingleton)({page:f,clientReferenceManifest:k,serverActionsManifest:N});let L=e.method||"GET",$=(0,s.getTracer)(),B=$.getActiveScopeSpan(),F=!!(null==S?void 0:S.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),G=(0,n.getRequestMeta)(e,"incrementalCache")||await g.getIncrementalCache(e,b,T,K);null==G||G.resetRequestCache(),globalThis.__incrementalCache=G;let V={params:C,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts,useCacheTimeout:b.experimental.useCacheTimeout},cacheComponents:!!b.cacheComponents,validationLevel:b.experimental.instantInsights.validationLevel,supportsDynamicResponse:I,incrementalCache:G,hmrRefreshHash:(0,n.getRequestMeta)(e,"hmrRefreshHash"),cacheLifeProfiles:b.cacheLife,staticPageGenerationTimeout:b.staticPageGenerationTimeout,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>g.onRequestError(e,t,a,n,S)},sharedContext:{buildId:E,deploymentId:y}},X=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(X,(0,u.signalFromNodeResponse)(t)),Z=async({previousCacheEntry:r})=>{try{if(!K&&j&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await g.handle(W,V);e.fetchMetrics=V.renderOpts.fetchMetrics;let s=V.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let i=V.renderOpts.collectedTags;if(!H)return await (0,c.sendResponse)(X,z,n,s),null;{let e=await n.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(n.headers);i&&(t[R.NEXT_CACHE_TAGS_HEADER]=i),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=R.INFINITE_CACHE?!1!==r&&r>0?b.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:m.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await g.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,S),t}},J=async(n,i)=>{try{var o,l;let n=await g.handleResponse({req:e,nextConfig:b,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:P,responseGenerator:Z,waitUntil:a.waitUntil,isMinimalMode:K});if(!H)return;if((null==n||null==(o=n.value)?void 0:o.kind)!==m.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==n||null==(l=n.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",j?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),q&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let s=(0,h.fromNodeOutgoingHttpHeaders)(n.value.headers);K&&H||s.delete(R.NEXT_CACHE_TAGS_HEADER),!n.cacheControl||t.getHeader("Cache-Control")||s.get("Cache-Control")||s.set("Cache-Control",(0,x.getCacheControlHeader)(n.cacheControl)),await (0,c.sendResponse)(X,z,new Response(n.value.body,{headers:s,status:n.value.status||200}));return}catch(t){if(t instanceof v.NoFallbackError||await g.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,S),H)throw t;await (0,c.sendResponse)(X,z,new Response(null,{status:500}));return}finally{(()=>{if(!n)return;let e=t.statusCode;n.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(n.setStatus({code:s.SpanStatusCode.ERROR}),n.setAttribute("error.type",e.toString()));let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route")||O,o=`${L} ${a}`;n.setAttributes({"next.route":a,"http.route":a,"next.span_name":o}),n.updateName(o),i&&i!==n&&(i.setAttribute("http.route",a),i.updateName(o))})()}};if(F&&B)await J(B,void 0);else{let t=$.getActiveScopeSpan();await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${f}`,kind:s.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},e=>J(e,t)),void 0,!F)}}e.s(["handler",0,y,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:f,workUnitAsyncStorage:w})},"routeModule",0,g,"serverHooks",0,E,"workAsyncStorage",0,f,"workUnitAsyncStorage",0,w])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0if0bw1._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../app/api/hub/people/route.ts","../../../node_modules/next/src/build/templates/app-route.ts"],"sourcesContent":["import { requireDashboardAuth, getV3UserToken } from '@/app/lib/dashboard-auth';\n\nconst HUB_URL = process.env.COMMHUB_URL || 'http://127.0.0.1:9200';\n\nasync function hubHeaders(): Promise<Record<string, string>> {\n const userToken = await getV3UserToken();\n const h: Record<string, string> = {};\n if (userToken) h['Authorization'] = `Bearer ${userToken}`;\n return h;\n}\n\n/**\n * Org directory — #1635.\n *\n * The Hub already builds this projection for MCP `requirements_people`\n * (people + department + the Agents each person owns). Its REST twin is\n * `/api/requirements/people/directory`; there is no `/api/people`. Proxying\n * the existing one keeps a single source of truth instead of a second query.\n */\nexport async function GET(req: Request) {\n const authFailure = await requireDashboardAuth();\n if (authFailure) return authFailure;\n\n const { searchParams } = new URL(req.url);\n const params = new URLSearchParams();\n for (const key of ['q', 'limit', 'offset']) {\n const value = searchParams.get(key);\n if (value) params.set(key, value);\n }\n if (!params.has('limit')) params.set('limit', '100');\n\n try {\n const res = await fetch(`${HUB_URL}/api/requirements/people/directory?${params.toString()}`, {\n headers: await hubHeaders(),\n next: { revalidate: 0 },\n });\n const contentType = res.headers.get('content-type') || '';\n if (!contentType.includes('application/json')) {\n return Response.json({ ok: false, error: 'hub_not_json', status: res.status }, { status: 502 });\n }\n return Response.json(await res.json(), { status: res.status });\n } catch (e: unknown) {\n return Response.json(\n { ok: false, error: 'CommHub unreachable', detail: e instanceof Error ? e.message : String(e) },\n { status: 502 },\n );\n }\n}\n","import {\n AppRouteRouteModule,\n type AppRouteRouteHandlerContext,\n type AppRouteRouteModuleOptions,\n} from '../../server/route-modules/app-route/module.compiled'\nimport { RouteKind } from '../../server/route-kind'\nimport { patchFetch as _patchFetch } from '../../server/lib/patch-fetch'\nimport type { IncomingMessage, ServerResponse } from 'node:http'\nimport {\n addRequestMeta,\n getRequestMeta,\n setRequestMeta,\n type RequestMeta,\n} from '../../server/request-meta'\nimport {\n getTracer,\n type Span,\n SpanKind,\n SpanStatusCode,\n} from '../../server/lib/trace/tracer'\nimport { setManifestsSingleton } from '../../server/app-render/manifests-singleton'\nimport { normalizeAppPath } from '../../shared/lib/router/utils/app-paths'\nimport { NodeNextRequest, NodeNextResponse } from '../../server/base-http/node'\nimport {\n NextRequestAdapter,\n signalFromNodeResponse,\n} from '../../server/web/spec-extension/adapters/next-request'\nimport { BaseServerSpan } from '../../server/lib/trace/constants'\nimport { getRevalidateReason } from '../../server/instrumentation/utils'\nimport { sendResponse } from '../../server/send-response'\nimport {\n fromNodeOutgoingHttpHeaders,\n toNodeOutgoingHttpHeaders,\n} from '../../server/web/utils'\nimport { getCacheControlHeader } from '../../server/lib/cache-control'\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from '../../lib/constants'\nimport { NoFallbackError } from '../../shared/lib/no-fallback-error.external'\nimport {\n CachedRouteKind,\n type ResponseCacheEntry,\n type ResponseGenerator,\n} from '../../server/response-cache'\n\n// These are injected by the loader afterwards. This is injected as a variable\n// instead of a replacement because this could also be `undefined` instead of\n// an empty string.\ndeclare const nextConfigOutput: AppRouteRouteModuleOptions['nextConfigOutput']\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\n// INJECT:nextConfigOutput\n\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: 'VAR_DEFINITION_PAGE',\n pathname: 'VAR_DEFINITION_PATHNAME',\n filename: 'VAR_DEFINITION_FILENAME',\n bundlePath: 'VAR_DEFINITION_BUNDLE_PATH',\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: 'VAR_RESOLVED_PAGE_PATH',\n nextConfigOutput,\n // The lazy require factory ensures that:\n // - In dev: devRequestTimingInternalsEnd is set before userland executes,\n // correctly attributing module load time to application-code rather than\n // framework internals.\n // - In all modes: async modules (route files with top-level await) are\n // handled correctly — require() returns a Promise for such modules, which\n // ensureUserland() awaits before the first request is handled.\n userland: () => require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n // In Turbopack dev mode, also provide a synchronous per-request getter so\n // server HMR updates are picked up without re-executing the entry chunk.\n // Using require() (synchronous) avoids adding async overhead that would be\n // incorrectly attributed to application-code time in devRequestTiming.\n ...(process.env.TURBOPACK && process.env.__NEXT_DEV_SERVER\n ? {\n getUserland: () =>\n require('VAR_USERLAND') as typeof import('VAR_USERLAND'),\n }\n : {}),\n})\n\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule\n\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage,\n })\n}\n\nexport {\n routeModule,\n workAsyncStorage,\n workUnitAsyncStorage,\n serverHooks,\n patchFetch,\n}\n\nexport async function handler(\n req: IncomingMessage,\n res: ServerResponse,\n ctx: {\n waitUntil?: (prom: Promise<void>) => void\n requestMeta?: RequestMeta\n }\n) {\n if (ctx.requestMeta) {\n setRequestMeta(req, ctx.requestMeta)\n }\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint())\n }\n let srcPage = 'VAR_DEFINITION_PAGE'\n\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (process.env.TURBOPACK) {\n srcPage = srcPage.replace(/\\/index$/, '') || '/'\n } else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/'\n }\n const multiZoneDraftMode = process.env\n .__NEXT_MULTI_ZONE_DRAFT_MODE as any as boolean\n\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode,\n })\n\n if (!prepareResult) {\n res.statusCode = 400\n res.end('Bad Request')\n ctx.waitUntil?.(Promise.resolve())\n return null\n }\n\n const {\n buildId,\n deploymentId,\n params,\n nextConfig,\n parsedUrl,\n isDraftMode,\n prerenderManifest,\n routerServerContext,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n resolvedPathname,\n clientReferenceManifest,\n serverActionsManifest,\n } = prepareResult\n\n const normalizedSrcPage = normalizeAppPath(srcPage)\n\n let isIsr = Boolean(\n prerenderManifest.dynamicRoutes[normalizedSrcPage] ||\n prerenderManifest.routes[resolvedPathname]\n )\n\n const render404 = async () => {\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext?.render404) {\n await routerServerContext.render404(req, res, parsedUrl, false)\n } else {\n res.end('This page could not be found')\n }\n return null\n }\n\n if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname])\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage]\n\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.adapterPath) {\n return await render404()\n }\n throw new NoFallbackError()\n }\n }\n }\n\n let cacheKey: string | null = null\n\n if (isIsr && !routeModule.isDev && !isDraftMode) {\n cacheKey = resolvedPathname\n // ensure /index and / is normalized to one key\n cacheKey = cacheKey === '/index' ? '/' : cacheKey\n }\n\n const supportsDynamicResponse: boolean =\n // If we're in development, we always support dynamic HTML\n routeModule.isDev === true ||\n // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr\n\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse\n\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n setManifestsSingleton({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n })\n }\n\n const method = req.method || 'GET'\n const tracer = getTracer()\n const activeSpan = tracer.getActiveScopeSpan()\n const isWrappedByNextServer = Boolean(\n routerServerContext?.isWrappedByNextServer\n )\n const isMinimalMode = Boolean(getRequestMeta(req, 'minimalMode'))\n\n const incrementalCache =\n getRequestMeta(req, 'incrementalCache') ||\n (await routeModule.getIncrementalCache(\n req,\n nextConfig,\n prerenderManifest,\n isMinimalMode\n ))\n\n incrementalCache?.resetRequestCache()\n ;(globalThis as any).__incrementalCache = incrementalCache\n\n const context: AppRouteRouteHandlerContext = {\n params,\n previewProps: prerenderManifest.preview,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n useCacheTimeout: nextConfig.experimental.useCacheTimeout,\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n validationLevel: nextConfig.experimental.instantInsights.validationLevel,\n supportsDynamicResponse,\n incrementalCache,\n hmrRefreshHash: getRequestMeta(req, 'hmrRefreshHash'),\n cacheLifeProfiles: nextConfig.cacheLife,\n staticPageGenerationTimeout: nextConfig.staticPageGenerationTimeout,\n waitUntil: ctx.waitUntil,\n onClose: (cb) => {\n res.on('close', cb)\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (\n error,\n _request,\n errorContext,\n silenceLog\n ) =>\n routeModule.onRequestError(\n req,\n error,\n errorContext,\n silenceLog,\n routerServerContext\n ),\n },\n sharedContext: {\n buildId,\n deploymentId,\n },\n }\n const nodeNextReq = new NodeNextRequest(req)\n const nodeNextRes = new NodeNextResponse(res)\n\n const nextReq = NextRequestAdapter.fromNodeNextRequest(\n nodeNextReq,\n signalFromNodeResponse(res)\n )\n\n const responseGenerator: ResponseGenerator = async ({\n previousCacheEntry,\n }) => {\n try {\n if (\n !isMinimalMode &&\n isOnDemandRevalidate &&\n revalidateOnlyGenerated &&\n !previousCacheEntry\n ) {\n res.statusCode = 404\n // on-demand revalidate always sets this header\n res.setHeader('x-nextjs-cache', 'REVALIDATED')\n res.end('This page could not be found')\n return null\n }\n\n const response = await routeModule.handle(nextReq, context)\n\n ;(req as any).fetchMetrics = (context.renderOpts as any).fetchMetrics\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil\n\n // Attempt using provided waitUntil if available\n // if it's not we fallback to sendResponse's handling\n if (pendingWaitUntil) {\n if (ctx.waitUntil) {\n ctx.waitUntil(pendingWaitUntil)\n pendingWaitUntil = undefined\n }\n }\n const cacheTags = context.renderOpts.collectedTags\n\n // If the request is for a static response, we can cache it so long\n // as it's not edge.\n if (isIsr) {\n const blob = await response.blob()\n\n // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers)\n\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags\n }\n\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type\n }\n\n const revalidate =\n typeof context.renderOpts.collectedRevalidate === 'undefined' ||\n context.renderOpts.collectedRevalidate >= INFINITE_CACHE\n ? false\n : context.renderOpts.collectedRevalidate\n\n const expire =\n typeof context.renderOpts.collectedExpire === 'undefined' ||\n context.renderOpts.collectedExpire >= INFINITE_CACHE\n ? // Fall back to the global `expireTime` config when the\n // route has a numeric `revalidate` but didn't declare an\n // explicit `expire` (e.g. via `cacheLife`). This mirrors the\n // build-time fallback in `build/index.ts` so cache entries\n // and the response Cache-Control header agree on the route's\n // effective expire. Routes that opt out of revalidation\n // (`revalidate: false`) or that are dynamic (`revalidate: 0`)\n // keep `expire: undefined`.\n revalidate !== false && revalidate > 0\n ? nextConfig.expireTime\n : undefined\n : context.renderOpts.collectedExpire\n\n // Create the cache entry for the response.\n const cacheEntry: ResponseCacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers,\n },\n cacheControl: { revalidate, expire },\n }\n\n return cacheEntry\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, pendingWaitUntil)\n return null\n }\n } catch (err) {\n // if this is a background revalidate we need to report\n // the request error here as it won't be bubbled\n if (previousCacheEntry?.isStale) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n throw err\n }\n }\n\n const handleResponse = async (\n currentSpan: Span | undefined,\n parentSpan: Span | undefined\n ) => {\n try {\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode,\n })\n\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return\n }\n\n if (cacheEntry?.value?.kind !== CachedRouteKind.APP_ROUTE) {\n throw new Error(\n `Invariant: app-route received invalid cache entry ${cacheEntry?.value?.kind}`\n )\n }\n\n if (!isMinimalMode) {\n res.setHeader(\n 'x-nextjs-cache',\n isOnDemandRevalidate\n ? 'REVALIDATED'\n : cacheEntry.isMiss\n ? 'MISS'\n : cacheEntry.isStale\n ? 'STALE'\n : 'HIT'\n )\n }\n\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader(\n 'Cache-Control',\n 'private, no-cache, no-store, max-age=0, must-revalidate'\n )\n }\n\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers)\n\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER)\n }\n\n // If cache control is already set on the response we don't\n // override it to allow users to customize it via next.config\n if (\n cacheEntry.cacheControl &&\n !res.getHeader('Cache-Control') &&\n !headers.get('Cache-Control')\n ) {\n headers.set(\n 'Cache-Control',\n getCacheControlHeader(cacheEntry.cacheControl)\n )\n }\n\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n // @ts-expect-error - Argument of type 'Buffer<ArrayBufferLike>' is not assignable to parameter of type 'BodyInit | null | undefined'.\n new Response(cacheEntry.value.body, {\n headers,\n status: cacheEntry.value.status || 200,\n })\n )\n return\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false\n await routeModule.onRequestError(\n req,\n err,\n {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate,\n }),\n },\n silenceLog,\n routerServerContext\n )\n }\n\n // rethrow so that we can handle serving error page\n\n // If this is during static generation, throw the error again.\n if (isIsr) throw err\n\n // Otherwise, send a 500 response.\n await sendResponse(\n nodeNextReq,\n nodeNextRes,\n new Response(null, { status: 500 })\n )\n return\n } finally {\n ;(() => {\n if (!currentSpan) {\n return\n }\n\n let statusCode = res.statusCode\n\n currentSpan.setAttributes({\n 'http.status_code': statusCode,\n 'next.rsc': false,\n })\n\n if (statusCode && statusCode >= 500) {\n // For 5xx status codes: SHOULD be set to 'Error' span status.\n // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status\n currentSpan.setStatus({\n code: SpanStatusCode.ERROR,\n })\n // For span status 'Error', SHOULD set 'error.type' attribute.\n currentSpan.setAttribute('error.type', statusCode.toString())\n }\n\n const rootSpanAttributes = tracer.getRootSpanAttributes()\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return\n }\n\n if (\n rootSpanAttributes.get('next.span_type') !==\n BaseServerSpan.handleRequest\n ) {\n console.warn(\n `Unexpected root span type '${rootSpanAttributes.get(\n 'next.span_type'\n )}'. Please report this Next.js issue https://github.com/vercel/next.js`\n )\n return\n }\n\n const route = rootSpanAttributes.get('next.route') || normalizedSrcPage\n const name = `${method} ${route}`\n\n currentSpan.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name,\n })\n currentSpan.updateName(name)\n\n // Propagate http.route to the parent span if one exists (e.g.\n // a platform-created HTTP span in adapter deployments).\n if (parentSpan && parentSpan !== currentSpan) {\n parentSpan.setAttribute('http.route', route)\n parentSpan.updateName(name)\n }\n })()\n }\n }\n\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (isWrappedByNextServer && activeSpan) {\n await handleResponse(activeSpan, undefined)\n } else {\n let parentSpan = tracer.getActiveScopeSpan()\n await tracer.withPropagatedContext(\n req.headers,\n () =>\n tracer.trace(\n BaseServerSpan.handleRequest,\n {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url,\n },\n },\n (span) => handleResponse(span, parentSpan)\n ),\n undefined,\n !isWrappedByNextServer\n )\n }\n}\n"],"names":["HUB_URL","process","env","COMMHUB_URL","hubHeaders","userToken","h","GET","req","authFailure","searchParams","URL","url","params","URLSearchParams","key","value","get","set","has","res","fetch","toString","headers","next","revalidate","contentType","includes","Response","json","ok","error","status","e","detail","Error","message","String","AppRouteRouteModule","RouteKind","patchFetch","_patchFetch","addRequestMeta","getRequestMeta","setRequestMeta","getTracer","SpanKind","SpanStatusCode","setManifestsSingleton","normalizeAppPath","NodeNextRequest","NodeNextResponse","NextRequestAdapter","signalFromNodeResponse","BaseServerSpan","getRevalidateReason","sendResponse","fromNodeOutgoingHttpHeaders","toNodeOutgoingHttpHeaders","getCacheControlHeader","INFINITE_CACHE","NEXT_CACHE_TAGS_HEADER","NoFallbackError","CachedRouteKind","routeModule","definition","kind","APP_ROUTE","page","pathname","filename","bundlePath","distDir","__NEXT_RELATIVE_DIST_DIR","relativeProjectDir","__NEXT_RELATIVE_PROJECT_DIR","resolvedPagePath","nextConfigOutput","userland","require","TURBOPACK","__NEXT_DEV_SERVER","getUserland","workAsyncStorage","workUnitAsyncStorage","serverHooks","handler","ctx","requestMeta","isDev","hrtime","bigint","srcPage","replace","multiZoneDraftMode","__NEXT_MULTI_ZONE_DRAFT_MODE","prepareResult","prepare","statusCode","end","waitUntil","Promise","resolve","buildId","deploymentId","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","Boolean","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","method","tracer","activeSpan","getActiveScopeSpan","isWrappedByNextServer","isMinimalMode","incrementalCache","getIncrementalCache","resetRequestCache","globalThis","__incrementalCache","context","previewProps","preview","renderOpts","experimental","authInterrupts","useCacheTimeout","cacheComponents","validationLevel","instantInsights","hmrRefreshHash","cacheLifeProfiles","cacheLife","staticPageGenerationTimeout","onClose","cb","on","onAfterTaskError","undefined","onInstrumentationRequestError","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","responseGenerator","previousCacheEntry","setHeader","response","handle","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","type","collectedRevalidate","expire","collectedExpire","expireTime","cacheEntry","body","Buffer","from","arrayBuffer","cacheControl","err","isStale","routerKind","routePath","routeType","revalidateReason","handleResponse","currentSpan","parentSpan","routeKind","isFallback","isRoutePPREnabled","isMiss","delete","getHeader","setAttributes","setStatus","code","ERROR","setAttribute","rootSpanAttributes","getRootSpanAttributes","handleRequest","console","warn","route","name","updateName","withPropagatedContext","trace","spanName","SERVER","attributes","span"],"mappings":"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","ignoreList":[1]}
|