@sleep2agi/agent-network-dashboard 0.6.3-preview.56 → 0.6.3-preview.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_COMMIT +1 -1
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +9 -0
- package/.next/build-manifest.json +3 -3
- package/.next/diagnostics/route-bundle-stats.json +145 -95
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +75 -19
- package/.next/required-server-files.js +4 -4
- package/.next/required-server-files.json +4 -4
- package/.next/routes-manifest.json +63 -0
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +2 -2
- package/.next/server/app/_not-found.rsc +14 -14
- package/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +13 -13
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/admin/page.js.nft.json +1 -1
- package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin.html +2 -2
- package/.next/server/app/admin.rsc +16 -16
- package/.next/server/app/admin.segments/_full.segment.rsc +16 -16
- package/.next/server/app/admin.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/api/anet/host-supervisors/route.js.nft.json +1 -1
- package/.next/server/app/api/anet/node-config/route.js +1 -1
- package/.next/server/app/api/anet/node-config/route.js.nft.json +1 -1
- package/.next/server/app/api/hub/people/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/hub/people/route/build-manifest.json +12 -0
- package/.next/server/app/api/hub/people/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/hub/people/route.js +7 -0
- package/.next/server/app/api/hub/people/route.js.map +5 -0
- package/.next/server/app/api/hub/people/route.js.nft.json +1 -0
- package/.next/server/app/api/hub/people/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/hub/requirements/[id]/checklist/[itemId]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/hub/requirements/[id]/checklist/[itemId]/route/build-manifest.json +12 -0
- package/.next/server/app/api/hub/requirements/[id]/checklist/[itemId]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/hub/requirements/[id]/checklist/[itemId]/route.js +7 -0
- package/.next/server/app/api/hub/requirements/[id]/checklist/[itemId]/route.js.map +5 -0
- package/.next/server/app/api/hub/requirements/[id]/checklist/[itemId]/route.js.nft.json +1 -0
- package/.next/server/app/api/hub/requirements/[id]/checklist/[itemId]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/hub/requirements/[id]/comments/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/hub/requirements/[id]/comments/route/build-manifest.json +12 -0
- package/.next/server/app/api/hub/requirements/[id]/comments/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/hub/requirements/[id]/comments/route.js +7 -0
- package/.next/server/app/api/hub/requirements/[id]/comments/route.js.map +5 -0
- package/.next/server/app/api/hub/requirements/[id]/comments/route.js.nft.json +1 -0
- package/.next/server/app/api/hub/requirements/[id]/comments/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/hub/requirements/[id]/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/hub/requirements/[id]/route/build-manifest.json +12 -0
- package/.next/server/app/api/hub/requirements/[id]/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/hub/requirements/[id]/route.js +7 -0
- package/.next/server/app/api/hub/requirements/[id]/route.js.map +5 -0
- package/.next/server/app/api/hub/requirements/[id]/route.js.nft.json +1 -0
- package/.next/server/app/api/hub/requirements/[id]/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/hub/requirements/events/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/hub/requirements/events/route/build-manifest.json +12 -0
- package/.next/server/app/api/hub/requirements/events/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/hub/requirements/events/route.js +7 -0
- package/.next/server/app/api/hub/requirements/events/route.js.map +5 -0
- package/.next/server/app/api/hub/requirements/events/route.js.nft.json +1 -0
- package/.next/server/app/api/hub/requirements/events/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/hub/requirements/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/hub/requirements/route/build-manifest.json +12 -0
- package/.next/server/app/api/hub/requirements/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/hub/requirements/route.js +7 -0
- package/.next/server/app/api/hub/requirements/route.js.map +5 -0
- package/.next/server/app/api/hub/requirements/route.js.nft.json +1 -0
- package/.next/server/app/api/hub/requirements/route_client-reference-manifest.js +3 -0
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +16 -16
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/index.segments/_full.segment.rsc +16 -16
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +2 -2
- package/.next/server/app/login.rsc +16 -16
- package/.next/server/app/login.segments/_full.segment.rsc +16 -16
- package/.next/server/app/login.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/logs/page.js.nft.json +1 -1
- package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/logs.html +2 -2
- package/.next/server/app/logs.rsc +16 -16
- package/.next/server/app/logs.segments/_full.segment.rsc +16 -16
- package/.next/server/app/logs.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/messages/page.js.nft.json +1 -1
- package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
- package/.next/server/app/messages.html +2 -2
- package/.next/server/app/messages.rsc +16 -16
- package/.next/server/app/messages.segments/_full.segment.rsc +16 -16
- package/.next/server/app/messages.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/node/page.js.nft.json +1 -1
- package/.next/server/app/node/page_client-reference-manifest.js +1 -1
- package/.next/server/app/node.html +2 -2
- package/.next/server/app/node.rsc +16 -16
- package/.next/server/app/node.segments/_full.segment.rsc +16 -16
- package/.next/server/app/node.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/nodes/[alias]/page.js.nft.json +1 -1
- package/.next/server/app/nodes/[alias]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/nodes/page.js.nft.json +1 -1
- package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/nodes.html +2 -2
- package/.next/server/app/nodes.rsc +16 -16
- package/.next/server/app/nodes.segments/_full.segment.rsc +16 -16
- package/.next/server/app/nodes.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/org/page/app-paths-manifest.json +3 -0
- package/.next/server/app/org/page/build-manifest.json +20 -0
- package/.next/server/app/org/page/next-font-manifest.json +11 -0
- package/.next/server/app/org/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/org/page/server-reference-manifest.json +4 -0
- package/.next/server/app/org/page.js +13 -0
- package/.next/server/app/org/page.js.map +5 -0
- package/.next/server/app/org/page.js.nft.json +1 -0
- package/.next/server/app/org/page_client-reference-manifest.js +3 -0
- package/.next/server/app/org.html +12 -0
- package/.next/server/app/org.meta +26 -0
- package/.next/server/app/org.rsc +27 -0
- package/.next/server/app/org.segments/_full.segment.rsc +27 -0
- package/.next/server/app/org.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/org.segments/org/__PAGE__.segment.rsc +32 -0
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/providers/page.js.nft.json +1 -1
- package/.next/server/app/providers/page_client-reference-manifest.js +1 -1
- package/.next/server/app/providers.html +2 -2
- package/.next/server/app/providers.rsc +16 -16
- package/.next/server/app/providers.segments/_full.segment.rsc +16 -16
- package/.next/server/app/providers.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/providers.segments/providers/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/requirements/[id]/page/app-paths-manifest.json +3 -0
- package/.next/server/app/requirements/[id]/page/build-manifest.json +20 -0
- package/.next/server/app/requirements/[id]/page/next-font-manifest.json +11 -0
- package/.next/server/app/requirements/[id]/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/requirements/[id]/page/server-reference-manifest.json +4 -0
- package/.next/server/app/requirements/[id]/page.js +13 -0
- package/.next/server/app/requirements/[id]/page.js.map +5 -0
- package/.next/server/app/requirements/[id]/page.js.nft.json +1 -0
- package/.next/server/app/requirements/[id]/page_client-reference-manifest.js +3 -0
- package/.next/server/app/requirements/page/app-paths-manifest.json +3 -0
- package/.next/server/app/requirements/page/build-manifest.json +20 -0
- package/.next/server/app/requirements/page/next-font-manifest.json +11 -0
- package/.next/server/app/requirements/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/requirements/page/server-reference-manifest.json +4 -0
- package/.next/server/app/requirements/page.js +13 -0
- package/.next/server/app/requirements/page.js.map +5 -0
- package/.next/server/app/requirements/page.js.nft.json +1 -0
- package/.next/server/app/requirements/page_client-reference-manifest.js +3 -0
- package/.next/server/app/requirements.html +12 -0
- package/.next/server/app/requirements.meta +26 -0
- package/.next/server/app/requirements.rsc +27 -0
- package/.next/server/app/requirements.segments/_full.segment.rsc +27 -0
- package/.next/server/app/requirements.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/requirements.segments/requirements/__PAGE__.segment.rsc +32 -0
- package/.next/server/app/scheduled-tasks/page.js.nft.json +1 -1
- package/.next/server/app/scheduled-tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/scheduled-tasks.html +2 -2
- package/.next/server/app/scheduled-tasks.rsc +16 -16
- package/.next/server/app/scheduled-tasks.segments/_full.segment.rsc +16 -16
- package/.next/server/app/scheduled-tasks.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/scheduled-tasks.segments/scheduled-tasks/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/server-logs/page.js.nft.json +1 -1
- package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs.html +2 -2
- package/.next/server/app/server-logs.rsc +16 -16
- package/.next/server/app/server-logs.segments/_full.segment.rsc +16 -16
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/servers/page.js.nft.json +1 -1
- package/.next/server/app/servers/page_client-reference-manifest.js +1 -1
- package/.next/server/app/servers.html +2 -2
- package/.next/server/app/servers.rsc +16 -16
- package/.next/server/app/servers.segments/_full.segment.rsc +16 -16
- package/.next/server/app/servers.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/servers.segments/servers/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/settings/networks/page.js.nft.json +1 -1
- package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/networks.html +2 -2
- package/.next/server/app/settings/networks.rsc +16 -16
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +16 -16
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens/page.js.nft.json +1 -1
- package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens.html +2 -2
- package/.next/server/app/settings/tokens.rsc +16 -16
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +16 -16
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +16 -16
- package/.next/server/app/settings.segments/_full.segment.rsc +16 -16
- package/.next/server/app/settings.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/skillhub/page.js.nft.json +1 -1
- package/.next/server/app/skillhub/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skillhub.html +2 -2
- package/.next/server/app/skillhub.rsc +16 -16
- package/.next/server/app/skillhub.segments/_full.segment.rsc +16 -16
- package/.next/server/app/skillhub.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/skillhub.segments/skillhub/__PAGE__.segment.rsc +15 -15
- package/.next/server/app/tasks/[id]/page.js.nft.json +1 -1
- package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks/page.js.nft.json +1 -1
- package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks.html +2 -2
- package/.next/server/app/tasks.rsc +16 -16
- package/.next/server/app/tasks.segments/_full.segment.rsc +16 -16
- package/.next/server/app/tasks.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +15 -15
- package/.next/server/app-paths-manifest.json +9 -0
- package/.next/server/chunks/1oeh_server_app_api_hub_requirements_[id]_checklist_[itemId]_route_actions_05mpe5a.js +3 -0
- package/.next/server/chunks/1oeh_server_app_api_hub_requirements_[id]_checklist_[itemId]_route_actions_05mpe5a.js.map +1 -0
- package/.next/server/chunks/1oeh_server_app_api_hub_requirements_[id]_comments_route_actions_1lv4qr1.js +3 -0
- package/.next/server/chunks/1oeh_server_app_api_hub_requirements_[id]_comments_route_actions_1lv4qr1.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0-wvy_a._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0-wvy_a._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__053z4wp._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__053z4wp._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0if0bw1._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0if0bw1._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0liwkmx._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0liwkmx._.js.map +1 -1
- package/.next/server/chunks/[root-of-the-server]__0q9xwca._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__0q9xwca._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1941b2h._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1941b2h._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1_rzyvn._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1_rzyvn._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1vua9gf._.js +3 -0
- package/.next/server/chunks/[root-of-the-server]__1vua9gf._.js.map +1 -0
- package/.next/server/chunks/_05lpz54._.js +1 -1
- package/.next/server/chunks/_05lpz54._.js.map +1 -1
- package/.next/server/chunks/_next-internal_server_app_api_hub_people_route_actions_01pw78e.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_hub_people_route_actions_01pw78e.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_hub_requirements_[id]_route_actions_1jkq5c6.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_hub_requirements_[id]_route_actions_1jkq5c6.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_hub_requirements_events_route_actions_1ypnpu5.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_hub_requirements_events_route_actions_1ypnpu5.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_hub_requirements_route_actions_1lyeno6.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_hub_requirements_route_actions_1lyeno6.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0-94ipy._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0-94ipy._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__09n7eih._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__09n7eih._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ol09h3._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ol09h3._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__14k36ti._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__14k36ti._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1bn1jjm._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1bn1jjm._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1ovdbox._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1ovdbox._.js.map +1 -1
- package/.next/server/chunks/ssr/_0q4m25o._.js +0 -0
- package/.next/server/chunks/ssr/_0q4m25o._.js.map +1 -1
- package/.next/server/chunks/ssr/_1z1o6o3._.js +0 -0
- package/.next/server/chunks/ssr/_1z1o6o3._.js.map +1 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_org_page_actions_0hbcef1.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_org_page_actions_0hbcef1.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_requirements_[id]_page_actions_1wjoy4l.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_requirements_[id]_page_actions_1wjoy4l.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_requirements_page_actions_0x9m0gy.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_requirements_page_actions_0x9m0gy.js.map +1 -0
- package/.next/server/chunks/ssr/app_05mfyco._.js +3 -0
- package/.next/server/chunks/ssr/app_05mfyco._.js.map +1 -0
- package/.next/server/chunks/ssr/{app_0_s8u96._.js → app_07bzc6w._.js} +1 -1
- package/.next/server/chunks/ssr/app_099f0wg._.js +3 -0
- package/.next/server/chunks/ssr/app_099f0wg._.js.map +1 -0
- package/.next/server/chunks/ssr/{app_1oxcq68._.js → app_0g7oz9w._.js} +1 -1
- package/.next/server/chunks/ssr/app_0iz553k._.js +1 -1
- package/.next/server/chunks/ssr/app_0iz553k._.js.map +1 -1
- package/.next/server/chunks/ssr/app_0los-eu._.js +1 -1
- package/.next/server/chunks/ssr/app_0los-eu._.js.map +1 -1
- package/.next/server/chunks/ssr/{app_0x7s72b._.js → app_0tt2ueo._.js} +1 -1
- package/.next/server/chunks/ssr/{app_081zy6c._.js → app_0ugqkd7._.js} +1 -1
- package/.next/server/chunks/ssr/app_1auk3il._.js +11 -0
- package/.next/server/chunks/ssr/app_1auk3il._.js.map +1 -0
- package/.next/server/chunks/ssr/{app_0o4bxq0._.js → app_1e91uc-._.js} +1 -1
- package/.next/server/chunks/ssr/{app_1psh956._.js → app_1f96aq_._.js} +1 -1
- package/.next/server/chunks/ssr/app_1rma_8a._.js +11 -0
- package/.next/server/chunks/ssr/app_1rma_8a._.js.map +1 -0
- package/.next/server/chunks/ssr/{app_0_dhiwi._.js → app_1ua57bx._.js} +1 -1
- package/.next/server/chunks/ssr/app_components_04a31va._.js +1 -1
- package/.next/server/chunks/ssr/app_components_04a31va._.js.map +1 -1
- package/.next/server/chunks/ssr/{app_lib_10o69j_._.js → app_lib_20-pe_0._.js} +2 -2
- package/.next/server/chunks/ssr/{app_lib_10o69j_._.js.map → app_lib_20-pe_0._.js.map} +1 -1
- package/.next/server/chunks/ssr/app_nodes_NodesView_tsx_1w6_d8p._.js +2 -2
- package/.next/server/chunks/ssr/app_nodes_NodesView_tsx_1w6_d8p._.js.map +1 -1
- package/.next/server/chunks/ssr/app_page_tsx_0pxmutw._.js +1 -1
- package/.next/server/chunks/ssr/app_page_tsx_0pxmutw._.js.map +1 -1
- package/.next/server/chunks/ssr/app_scheduled-tasks_page_tsx_0xs70_6._.js +1 -1
- package/.next/server/chunks/ssr/app_scheduled-tasks_page_tsx_0xs70_6._.js.map +1 -1
- package/.next/server/chunks/ssr/app_tasks_TasksView_tsx_068vqml._.js +1 -1
- package/.next/server/chunks/ssr/app_tasks_TasksView_tsx_068vqml._.js.map +1 -1
- package/.next/server/functions-config-manifest.json +4 -0
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/middleware.js.nft.json +1 -1
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +12 -0
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/500.html +1 -1
- package/.next/server/prefetch-hints.json +28 -0
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/{trj9RsCWuEDMfq9BuoKfl → _HZB6K84VKNaxf1K7dqqj}/_clientMiddlewareManifest.js +4 -0
- package/.next/static/chunks/{27b9kqyo7bmdr.js → 08-obrj2goweb.js} +2 -2
- package/.next/static/chunks/{0agh8mvmpke4j.js → 0cuzbmf4k1kgl.js} +1 -1
- package/.next/static/chunks/0fih4pzed1syn.js +9 -0
- package/.next/static/chunks/0iiu4-g5k8jcq.js +1 -0
- package/.next/static/chunks/{37booeyruo9_l.js → 0iz44n632kw4w.js} +1 -1
- package/.next/static/chunks/0jt-1caejz1jv.js +1 -0
- package/.next/static/chunks/0k-4980o5t7_r.css +1 -0
- package/.next/static/chunks/114pblaedlrqs.js +1 -0
- package/.next/static/chunks/1tcaw8g6u6o-4.js +1 -0
- package/.next/static/chunks/1v5-qgib9884o.js +0 -0
- package/.next/static/chunks/{02303d1rbqx74.js → 2-x9r-1t3c1mn.js} +1 -1
- package/.next/static/chunks/{28o3ssg0_q2n-.js → 21djd6ixldlx0.js} +1 -1
- package/.next/static/chunks/2anlzel60my8y.js +2 -0
- package/.next/static/chunks/{3jxk7q1jxyvol.js → 2juzvtg9ne4yt.js} +1 -1
- package/.next/static/chunks/3cb3_kcec7bms.js +1 -0
- package/.next/static/chunks/{233p45nuh4m5b.css → 3d-1vk5hzu5rq.css} +2 -2
- package/.next/static/chunks/3shtxab8cmux9.js +1 -0
- package/.next/static/chunks/3u059pjgl4gcw.js +1 -0
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/.next/types/routes.d.ts +11 -2
- package/.next/types/validator.ts +81 -0
- package/.vercel/.env.development.local +2 -0
- package/.vercel/.env.production.local +25 -0
- package/.vercel/README.txt +11 -0
- package/.vercel/output/builds.json +23 -0
- package/.vercel/output/config.json +489 -0
- package/.vercel/output/diagnostics/build-diagnostics.json +6 -0
- package/.vercel/output/diagnostics/cli_traces.json +1 -0
- package/.vercel/output/diagnostics/framework.json +1 -0
- package/.vercel/output/diagnostics/route-bundle-stats.json +245 -0
- package/.vercel/output/diagnostics/trace +2 -0
- package/.vercel/output/diagnostics/trace-build +1 -0
- package/.vercel/output/diagnostics/turbopack +0 -0
- package/.vercel/output/functions/_global-error.prerender-config.json +38 -0
- package/.vercel/output/functions/_global-error.prerender-fallback.html +1 -0
- package/.vercel/output/functions/_global-error.rsc.func/.next/routes-manifest.json +1 -0
- package/.vercel/output/functions/_global-error.rsc.func/.next/server/app-paths-manifest.json +1 -0
- package/.vercel/output/functions/_global-error.rsc.func/.next/server/pages-manifest.json +1 -0
- package/.vercel/output/functions/_global-error.rsc.func/.vc-config.json +807 -0
- package/.vercel/output/functions/_global-error.rsc.func/___next_launcher.cjs +68 -0
- package/.vercel/output/functions/_global-error.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/_global-error.rsc.prerender-fallback.rsc +15 -0
- package/.vercel/output/functions/_global-error.segments/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_global-error.segments/__PAGE__.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/_global-error.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_global-error.segments/_full.segment.rsc.prerender-fallback.rsc +15 -0
- package/.vercel/output/functions/_global-error.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_global-error.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/_global-error.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_global-error.segments/_index.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/_global-error.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_global-error.segments/_tree.segment.rsc.prerender-fallback.rsc +1 -0
- package/.vercel/output/functions/_middleware.func/.vc-config.json +107 -0
- package/.vercel/output/functions/_middleware.func/___next_launcher.cjs +135 -0
- package/.vercel/output/functions/_not-found.prerender-config.json +38 -0
- package/.vercel/output/functions/_not-found.prerender-fallback.html +12 -0
- package/.vercel/output/functions/_not-found.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/_not-found.rsc.prerender-fallback.rsc +21 -0
- package/.vercel/output/functions/_not-found.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_not-found.segments/_full.segment.rsc.prerender-fallback.rsc +21 -0
- package/.vercel/output/functions/_not-found.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_not-found.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/_not-found.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_not-found.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/_not-found.segments/_not-found/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_not-found.segments/_not-found/__PAGE__.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/_not-found.segments/_not-found.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_not-found.segments/_not-found.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/_not-found.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/_not-found.segments/_tree.segment.rsc.prerender-fallback.rsc +3 -0
- package/.vercel/output/functions/admin.prerender-config.json +37 -0
- package/.vercel/output/functions/admin.prerender-fallback.html +12 -0
- package/.vercel/output/functions/admin.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/admin.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/admin.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/admin.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/admin.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/admin.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/admin.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/admin.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/admin.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/admin.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/admin.segments/admin/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/admin.segments/admin/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/admin.segments/admin.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/admin.segments/admin.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/api/anet/config.func/.next/routes-manifest.json +1 -0
- package/.vercel/output/functions/api/anet/config.func/.next/server/app-paths-manifest.json +1 -0
- package/.vercel/output/functions/api/anet/config.func/.next/server/pages-manifest.json +1 -0
- package/.vercel/output/functions/api/anet/config.func/.vc-config.json +818 -0
- package/.vercel/output/functions/api/anet/config.func/___next_launcher.cjs +68 -0
- package/.vercel/output/functions/index.prerender-config.json +38 -0
- package/.vercel/output/functions/index.prerender-fallback.html +12 -0
- package/.vercel/output/functions/index.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/index.rsc.prerender-fallback.rsc +25 -0
- package/.vercel/output/functions/index.segments/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/index.segments/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/index.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/index.segments/_full.segment.rsc.prerender-fallback.rsc +25 -0
- package/.vercel/output/functions/index.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/index.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/index.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/index.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/index.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/index.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/login.prerender-config.json +37 -0
- package/.vercel/output/functions/login.prerender-fallback.html +6 -0
- package/.vercel/output/functions/login.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/login.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/login.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/login.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/login.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/login.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/login.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/login.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/login.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/login.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/login.segments/login/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/login.segments/login/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/login.segments/login.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/login.segments/login.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/logs.prerender-config.json +37 -0
- package/.vercel/output/functions/logs.prerender-fallback.html +12 -0
- package/.vercel/output/functions/logs.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/logs.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/logs.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/logs.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/logs.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/logs.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/logs.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/logs.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/logs.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/logs.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/logs.segments/logs/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/logs.segments/logs/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/logs.segments/logs.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/logs.segments/logs.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/manifest.webmanifest.func/.next/routes-manifest.json +1 -0
- package/.vercel/output/functions/manifest.webmanifest.func/.next/server/app-paths-manifest.json +1 -0
- package/.vercel/output/functions/manifest.webmanifest.func/.next/server/pages-manifest.json +1 -0
- package/.vercel/output/functions/manifest.webmanifest.func/.vc-config.json +715 -0
- package/.vercel/output/functions/manifest.webmanifest.func/___next_launcher.cjs +68 -0
- package/.vercel/output/functions/manifest.webmanifest.prerender-config.json +38 -0
- package/.vercel/output/functions/manifest.webmanifest.prerender-fallback.body +1 -0
- package/.vercel/output/functions/messages.prerender-config.json +37 -0
- package/.vercel/output/functions/messages.prerender-fallback.html +12 -0
- package/.vercel/output/functions/messages.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/messages.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/messages.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/messages.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/messages.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/messages.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/messages.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/messages.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/messages.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/messages.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/messages.segments/messages/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/messages.segments/messages/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/messages.segments/messages.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/messages.segments/messages.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/node.prerender-config.json +37 -0
- package/.vercel/output/functions/node.prerender-fallback.html +12 -0
- package/.vercel/output/functions/node.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/node.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/node.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/node.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/node.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/node.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/node.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/node.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/node.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/node.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/node.segments/node/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/node.segments/node/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/node.segments/node.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/node.segments/node.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/nodes.prerender-config.json +37 -0
- package/.vercel/output/functions/nodes.prerender-fallback.html +12 -0
- package/.vercel/output/functions/nodes.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/nodes.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/nodes.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/nodes.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/nodes.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/nodes.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/nodes.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/nodes.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/nodes.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/nodes.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/nodes.segments/nodes/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/nodes.segments/nodes/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/nodes.segments/nodes.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/nodes.segments/nodes.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/server-logs.prerender-config.json +37 -0
- package/.vercel/output/functions/server-logs.prerender-fallback.html +12 -0
- package/.vercel/output/functions/server-logs.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/server-logs.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/server-logs.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/server-logs.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/server-logs.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/server-logs.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/server-logs.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/server-logs.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/server-logs.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/server-logs.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/server-logs.segments/server-logs/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/server-logs.segments/server-logs/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/server-logs.segments/server-logs.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/server-logs.segments/server-logs.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/servers.prerender-config.json +37 -0
- package/.vercel/output/functions/servers.prerender-fallback.html +12 -0
- package/.vercel/output/functions/servers.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/servers.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/servers.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/servers.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/servers.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/servers.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/servers.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/servers.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/servers.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/servers.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/servers.segments/servers/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/servers.segments/servers/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/servers.segments/servers.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/servers.segments/servers.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings/networks.prerender-config.json +37 -0
- package/.vercel/output/functions/settings/networks.prerender-fallback.html +12 -0
- package/.vercel/output/functions/settings/networks.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/settings/networks.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/settings/networks.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/networks.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/settings/networks.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/networks.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/settings/networks.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/networks.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/settings/networks.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/networks.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings/networks.segments/settings/networks/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/networks.segments/settings/networks/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/settings/networks.segments/settings/networks.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/networks.segments/settings/networks.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings/networks.segments/settings.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/networks.segments/settings.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings/tokens.prerender-config.json +37 -0
- package/.vercel/output/functions/settings/tokens.prerender-fallback.html +12 -0
- package/.vercel/output/functions/settings/tokens.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/settings/tokens.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/settings/tokens.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/tokens.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/settings/tokens.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/tokens.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/settings/tokens.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/tokens.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/settings/tokens.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/tokens.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/settings/tokens.segments/settings/tokens.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/tokens.segments/settings/tokens.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings/tokens.segments/settings.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings/tokens.segments/settings.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings.prerender-config.json +37 -0
- package/.vercel/output/functions/settings.prerender-fallback.html +12 -0
- package/.vercel/output/functions/settings.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/settings.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/settings.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/settings.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/settings.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/settings.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/settings.segments/settings/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings.segments/settings/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/settings.segments/settings.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/settings.segments/settings.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/tasks/[id].func/.next/routes-manifest.json +1 -0
- package/.vercel/output/functions/tasks/[id].func/.next/server/app-paths-manifest.json +1 -0
- package/.vercel/output/functions/tasks/[id].func/.next/server/pages-manifest.json +1 -0
- package/.vercel/output/functions/tasks/[id].func/.vc-config.json +713 -0
- package/.vercel/output/functions/tasks/[id].func/___next_launcher.cjs +68 -0
- package/.vercel/output/functions/tasks.prerender-config.json +37 -0
- package/.vercel/output/functions/tasks.prerender-fallback.html +12 -0
- package/.vercel/output/functions/tasks.rsc.prerender-config.json +38 -0
- package/.vercel/output/functions/tasks.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/tasks.segments/_full.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/tasks.segments/_full.segment.rsc.prerender-fallback.rsc +27 -0
- package/.vercel/output/functions/tasks.segments/_head.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/tasks.segments/_head.segment.rsc.prerender-fallback.rsc +6 -0
- package/.vercel/output/functions/tasks.segments/_index.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/tasks.segments/_index.segment.rsc.prerender-fallback.rsc +10 -0
- package/.vercel/output/functions/tasks.segments/_tree.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/tasks.segments/_tree.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/functions/tasks.segments/tasks/__PAGE__.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/tasks.segments/tasks/__PAGE__.segment.rsc.prerender-fallback.rsc +9 -0
- package/.vercel/output/functions/tasks.segments/tasks.segment.rsc.prerender-config.json +28 -0
- package/.vercel/output/functions/tasks.segments/tasks.segment.rsc.prerender-fallback.rsc +5 -0
- package/.vercel/output/static/404.html +12 -0
- package/.vercel/output/static/404.rsc.json +1 -0
- package/.vercel/output/static/404.segments/_tree.segment.rsc.json +1 -0
- package/.vercel/output/static/500.html +1 -0
- package/.vercel/output/static/500.rsc.json +1 -0
- package/.vercel/output/static/500.segments/_tree.segment.rsc.json +1 -0
- package/.vercel/output/static/_next/__private/trace +2 -0
- package/.vercel/output/static/_next/static/TakLsJFW-DjjhsqoZu3Ok/_buildManifest.js +11 -0
- package/.vercel/output/static/_next/static/TakLsJFW-DjjhsqoZu3Ok/_clientMiddlewareManifest.js +42 -0
- package/.vercel/output/static/_next/static/TakLsJFW-DjjhsqoZu3Ok/_ssgManifest.js +1 -0
- package/.vercel/output/static/_next/static/chunks/00~h525bo.q7f.js +1 -0
- package/.vercel/output/static/_next/static/chunks/01xlw8hd842-c.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0257pdz1-imal.js +2 -0
- package/.vercel/output/static/_next/static/chunks/03~yq9q893hmn.js +1 -0
- package/.vercel/output/static/_next/static/chunks/04uju~n5s9g7..css +1 -0
- package/.vercel/output/static/_next/static/chunks/066jf0nk75nic.css +2 -0
- package/.vercel/output/static/_next/static/chunks/085gdrlppedvd.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0a5rikwbpt8_7.js +4 -0
- package/.vercel/output/static/_next/static/chunks/0b9r.-87w.lvh.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0ced2tacwy8v7.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0e-.zgw81gela.js +31 -0
- package/.vercel/output/static/_next/static/chunks/0gu130fpple04.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0jmypv56.iwft.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0krr-nvdwqdj1.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0mqs00d_9jvzx.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0ore4vqiwv2nx.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0pqt~8bl3ukh4.js +4 -0
- package/.vercel/output/static/_next/static/chunks/0q.t7da_-e4yl.js +4 -0
- package/.vercel/output/static/_next/static/chunks/0q3rj30g1oodv.js +7 -0
- package/.vercel/output/static/_next/static/chunks/0qp3_l.t4nzzq.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0qy1ci2dqfaqg.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0u359llqm1_01.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0u7ftv8celiqa.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0~ijg-d65glam.js +1 -0
- package/.vercel/output/static/_next/static/chunks/14bsg3_-taiw4.js +1 -0
- package/.vercel/output/static/_next/static/chunks/168q2d2bi7swr.js +7 -0
- package/.vercel/output/static/_next/static/chunks/16aqsgrwba4zk.js +1 -0
- package/.vercel/output/static/_next/static/chunks/16tw8s4cce9_x.js +1 -0
- package/.vercel/output/static/_next/static/chunks/turbopack-01f1xs~cq_~si.js +1 -0
- package/.vercel/output/static/_next/static/media/4fa387ec64143e14-s.0wkzw~je483f-.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/5ce348bf30bf5439-s.0zgw-jeven.3w.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/6306c77e7c8268e4-s.0rhz0arwfsn~5.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/7178b3e590c64307-s.0nx0ww8fni_q3.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/797e433ab948586e-s.p.08e28id.o-okb.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/7d817b4c03b0c5f1-s.0l76wvqk9d84w.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/bbc41e54d2fcbd21-s.0k4k9394f2q-k.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/favicon.0x3dzn~oxb6tn.ico +0 -0
- package/.vercel/output/static/_next/static/media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2 +0 -0
- package/.vercel/output/static/_next/static/not-found.txt +1 -0
- package/.vercel/project.json +16 -0
- package/AGENTS.md +9 -0
- package/CLAUDE.md +1 -0
- package/README.md +1 -0
- package/app/api/anet/host-supervisors/route.ts +63 -2
- package/app/api/anet/node-config/route.ts +145 -168
- package/app/api/hub/people/route.ts +48 -0
- package/app/api/hub/requirements/[id]/checklist/[itemId]/route.ts +54 -0
- package/app/api/hub/requirements/[id]/comments/route.ts +51 -0
- package/app/api/hub/requirements/[id]/route.ts +89 -0
- package/app/api/hub/requirements/events/route.ts +45 -0
- package/app/api/hub/requirements/route.ts +53 -0
- package/app/components/CreateNodeWizard.tsx +7 -2
- package/app/components/HostSupervisorPicker.tsx +76 -29
- package/app/components/NodeSettingsPanel.tsx +28 -25
- package/app/components/Sidebar.tsx +4 -0
- package/app/components/TaskChatPanel.tsx +6 -6
- package/app/components/TaskDetail.tsx +8 -7
- package/app/components/TaskList.tsx +6 -7
- package/app/components/TopoGraph.tsx +3 -2
- package/app/lib/time.ts +23 -0
- package/app/org/page.tsx +222 -0
- package/app/requirements/[id]/page.tsx +361 -0
- package/app/requirements/page.tsx +279 -0
- package/app/scheduled-tasks/page.tsx +98 -13
- package/apps/desktop/icon.png +0 -0
- package/bun.lock +1688 -0
- package/electron-builder.json +5 -1
- package/package.json +4 -2
- package/proxy.ts +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0dwa10z._.js +0 -11
- package/.next/server/chunks/ssr/[root-of-the-server]__0dwa10z._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__202xetf._.js +0 -11
- package/.next/server/chunks/ssr/[root-of-the-server]__202xetf._.js.map +0 -1
- package/.next/static/chunks/0pton-t_-fqyu.css +0 -1
- package/.next/static/chunks/0z8vfpga444t1.js +0 -1
- package/.next/static/chunks/14c8u_tcund0g.js +0 -0
- package/.next/static/chunks/2kp8-5cyc-jbg.js +0 -1
- package/.next/static/chunks/3a53_ky07bdhz.js +0 -9
- package/.next/static/chunks/3im40-b21df3u.js +0 -2
- package/.next/static/chunks/3tnbxlq42_jjv.js +0 -1
- /package/.next/server/chunks/ssr/{app_0_s8u96._.js.map → app_07bzc6w._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{app_0o4bxq0._.js.map → app_0g7oz9w._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{app_0x7s72b._.js.map → app_0tt2ueo._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{app_081zy6c._.js.map → app_0ugqkd7._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{app_1oxcq68._.js.map → app_1e91uc-._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{app_1psh956._.js.map → app_1f96aq_._.js.map} +0 -0
- /package/.next/server/chunks/ssr/{app_0_dhiwi._.js.map → app_1ua57bx._.js.map} +0 -0
- /package/.next/static/{trj9RsCWuEDMfq9BuoKfl → _HZB6K84VKNaxf1K7dqqj}/_buildManifest.js +0 -0
- /package/.next/static/{trj9RsCWuEDMfq9BuoKfl → _HZB6K84VKNaxf1K7dqqj}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../app/api/anet/node-config/route.ts","../../../node_modules/next/src/build/templates/app-route.ts"],"sourcesContent":["import { requireDashboardAuth } from '@/app/lib/dashboard-auth';\nimport { hubFetch } from '@/app/lib/hub';\n\n/**\n * Per-node config read/write proxy (#260 / #262 — make node settings actually\n * take effect). Thin proxy to the hub, using the browser session's V3 user\n * token (hubFetch forwards `Authorization: Bearer utok_…`). Endpoint contract =\n * RFC-024 (通信工程马, #287/#294/#290, e2e verified):\n *\n * GET ?node_id=…|alias=… → REST GET /api/nodes/{id}/config — masked snapshot\n * { ok, node_id, alias, network_id, config_revision, model, flags{6},\n * config_update_capable }. Network scope auto-filtered hub-side.\n * POST { node_id|alias, base_revision, model?, flags? }\n * → MCP tools/call `update_node_config` at /mcp.\n * → { ok, update_id, apply_mode } or { ok:false, error, … }.\n *\n * apply-status has NO endpoint: the client polls GET and compares the returned\n * `config_revision` against the `base_revision` it sent — a bump (> base) means\n * applied (snapshot is ground truth; hub atomically finalizes the row + bumps\n * nodes.config_revision). See NodeSettingsPanel.\n *\n * If the hub is unreachable the GET mock-falls back with `mock:true` (panel then\n * shows the \"后端未接入\" note); in normal live operation no mock flag is set.\n */\n\nconst HUB_GET_PATH = (nodeId: string) => `/api/nodes/${encodeURIComponent(nodeId)}/config`;\nconst HUB_MCP_PATH = '/mcp'; // MCP Streamable HTTP endpoint (tools/call)\nconst MCP_TOOL_UPDATE = 'update_node_config';\nconst MCP_PROTOCOL_VERSION = '2025-03-26';\n\n// Editable flags whitelist (RFC-024 — confirmed with 工程马). Anything outside\n// this set is dropped before forwarding so the UI can't smuggle unexpected keys\n// into the patch. (`teammateMode` is NOT in the hub allowlist — update would\n// return invalid_patch — so it's excluded here and from the form.)\nconst EDITABLE_FLAGS = [\n 'permissionMode',\n 'dangerouslySkipPermissions',\n 'maxTurns',\n 'budget',\n 'timeout',\n] as const;\n\n// #260 channel edit — the panel toggles enable/disable for these keys only.\n// Per-channel secrets (bot token / app secret / allowFrom) stay in the node's\n// local config.json, never on the wire from the UI. WeChat is roadmap-only in\n// the panel and intentionally not listed here.\nconst EDITABLE_CHANNELS = ['telegram', 'feishu', 'commhub'] as const;\n\nfunction isJson(res: Response): boolean {\n return (res.headers.get('content-type') || '').includes('application/json');\n}\n\n/**\n * Parse an MCP Streamable-HTTP response (either application/json or an SSE\n * text/event-stream frame) into the JSON-RPC envelope object.\n */\nasync function parseMcpEnvelope(res: Response): Promise<Record<string, unknown> | null> {\n const text = await res.text();\n const ct = res.headers.get('content-type') || '';\n if (ct.includes('text/event-stream')) {\n for (const line of text.split(/\\r?\\n/)) {\n if (!line.startsWith('data:')) continue;\n const payload = line.slice(5).trim();\n if (!payload) continue;\n try {\n const o = JSON.parse(payload);\n if (o && (o.jsonrpc || o.result || o.error)) return o;\n } catch { /* keep scanning frames */ }\n }\n return null;\n }\n try {\n return JSON.parse(text);\n } catch {\n return null;\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 // hub only resolves node_id — an alias would silently 404, so don't accept it.\n const nodeId = searchParams.get('node_id') || '';\n if (!nodeId) return Response.json({ error: 'node_id required' }, { status: 400 });\n\n try {\n const res = await hubFetch(HUB_GET_PATH(nodeId));\n if (res.ok && isJson(res)) return Response.json(await res.json());\n // Pass a real hub error (e.g. 404 node_not_found) straight through.\n if (isJson(res)) return Response.json(await res.json(), { status: res.status });\n // Hub unreachable / non-JSON → flagged fallback so the panel still renders.\n // (channels kept in the shape for the #31 channel toggles.)\n return Response.json({ ok: true, mock: true, node_id: nodeId, model: null, flags: {}, channels: [] });\n } catch (e: unknown) {\n return Response.json({\n ok: true,\n mock: true,\n node_id: nodeId,\n model: null,\n flags: {},\n channels: [],\n _hubError: e instanceof Error ? e.message : String(e),\n });\n }\n}\n\nexport async function POST(req: Request) {\n const authFailure = await requireDashboardAuth();\n if (authFailure) return authFailure;\n\n let body: {\n node_id?: string;\n base_revision?: number;\n network_id?: string;\n model?: unknown;\n flags?: Record<string, unknown>;\n channels?: unknown;\n };\n try {\n body = await req.json();\n } catch {\n return Response.json({ error: 'invalid JSON body' }, { status: 400 });\n }\n\n // hub only resolves node_id (no alias fallback — it would silently 404).\n const nodeId = body.node_id;\n if (!nodeId) return Response.json({ error: 'node_id required' }, { status: 400 });\n if (typeof body.base_revision !== 'number') {\n return Response.json({ error: 'base_revision (number) required' }, { status: 400 });\n }\n\n // Build the partial patch — only the fields the client sends. Flags and\n // channels are whitelisted to the editable contract.\n const patch: { model?: unknown; flags?: Record<string, unknown>; channels?: string[] } = {};\n if (body.model !== undefined) patch.model = body.model;\n if (body.flags && typeof body.flags === 'object') {\n const flags: Record<string, unknown> = {};\n for (const k of EDITABLE_FLAGS) {\n if (k in body.flags && body.flags[k] !== undefined) flags[k] = body.flags[k];\n }\n if (Object.keys(flags).length > 0) patch.flags = flags;\n }\n // Whitelist channels (#31) — accept string[] of EDITABLE_CHANNELS keys only.\n // Any other shape or key is dropped, so the panel can never smuggle a secret\n // payload or an unknown channel name to the hub. Channels ride INSIDE the\n // RFC-024 patch — update_node_config's schema is { model?, flags?, channels? }.\n if (Array.isArray(body.channels)) {\n const allow = new Set<string>(EDITABLE_CHANNELS);\n const seen = new Set<string>();\n const channels: string[] = [];\n for (const c of body.channels) {\n if (typeof c !== 'string') continue;\n const key = c.trim().toLowerCase();\n if (!allow.has(key) || seen.has(key)) continue;\n seen.add(key);\n channels.push(key);\n }\n patch.channels = channels;\n }\n if (patch.model === undefined && !patch.flags && !patch.channels) {\n return Response.json({ ok: false, error: 'empty_patch' }, { status: 400 });\n }\n\n // Resolve network_id — REQUIRED by update_node_config when the token's\n // current_network is null (dry-run verified: omitting it → permission_denied).\n // Prefer the node's own network (sent by the client, who knows which network\n // the node is in) — re-deriving from /api/auth/me networks[0] picks the wrong\n // network for multi-network users (regression-test caught a false\n // cross_network_node). The hub still authorizes (SEC-1), so trusting the\n // client's network_id is safe. Fall back to the me-derivation.\n let networkId: string | undefined = body.network_id;\n if (!networkId) {\n try {\n const meRes = await hubFetch('/api/auth/me');\n if (meRes.ok) {\n const me = await meRes.json();\n networkId = me?.current_network || me?.networks?.[0]?.network_id;\n }\n } catch { /* fall through — hub may still infer if current_network is set */ }\n }\n\n const rpcBody = {\n jsonrpc: '2.0',\n id: 1,\n method: 'tools/call',\n params: {\n name: MCP_TOOL_UPDATE,\n arguments: { node_id: nodeId, base_revision: body.base_revision, patch, ...(networkId ? { network_id: networkId } : {}) },\n },\n };\n\n try {\n const res = await 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(rpcBody),\n });\n\n if (!res.ok && res.status >= 500) {\n return Response.json({ ok: false, error: `hub ${res.status}` }, { status: 502 });\n }\n\n const rpc = await parseMcpEnvelope(res);\n if (!rpc) return Response.json({ ok: false, error: 'mcp_unparseable' }, { status: 502 });\n if (rpc.error) {\n const err = rpc.error as { message?: string };\n return Response.json({ ok: false, error: 'mcp_error', detail: err?.message }, { status: 502 });\n }\n\n // tools/call wraps the tool's JSON in result.content[0].text.\n const result = rpc.result as { content?: Array<{ text?: string }> } | undefined;\n const textContent = result?.content?.[0]?.text;\n let inner: Record<string, unknown> = {};\n if (typeof textContent === 'string') {\n try { inner = JSON.parse(textContent); } catch { inner = {}; }\n } else if (rpc.result && typeof rpc.result === 'object') {\n inner = rpc.result as Record<string, unknown>;\n }\n // inner = { ok:true, update_id, apply_mode } | { ok:false, error, … }\n // App-level errors come back HTTP 200 (ok:false) so the client maps them.\n return Response.json(inner);\n } catch (e: unknown) {\n return Response.json({ ok: false, error: 'hub_unreachable', detail: e instanceof Error ? e.message : String(e) }, { status: 502 });\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_GET_PATH","nodeId","encodeURIComponent","HUB_MCP_PATH","MCP_TOOL_UPDATE","MCP_PROTOCOL_VERSION","EDITABLE_FLAGS","EDITABLE_CHANNELS","isJson","res","headers","get","includes","parseMcpEnvelope","text","ct","line","split","startsWith","payload","slice","trim","o","JSON","parse","jsonrpc","result","error","GET","req","authFailure","searchParams","URL","url","Response","json","status","ok","mock","node_id","model","flags","channels","e","_hubError","Error","message","String","POST","body","base_revision","patch","undefined","k","Object","keys","length","Array","isArray","allow","Set","seen","c","key","toLowerCase","has","add","push","networkId","network_id","meRes","me","current_network","networks","rpcBody","id","method","params","name","arguments","Accept","stringify","rpc","err","detail","textContent","content","inner","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","nextConfig","parsedUrl","isDraftMode","prerenderManifest","routerServerContext","isOnDemandRevalidate","revalidateOnlyGenerated","resolvedPathname","clientReferenceManifest","serverActionsManifest","normalizedSrcPage","isIsr","Boolean","dynamicRoutes","routes","render404","isPrerendered","prerenderInfo","fallback","adapterPath","cacheKey","supportsDynamicResponse","isStaticGeneration","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","type","revalidate","collectedRevalidate","expire","collectedExpire","expireTime","cacheEntry","value","Buffer","from","arrayBuffer","cacheControl","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","updateName","withPropagatedContext","trace","spanName","SERVER","attributes","span"],"mappings":"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","ignoreList":[1]}
|
|
1
|
+
{"version":3,"sources":["../../../app/api/anet/node-config/route.ts","../../../node_modules/next/src/build/templates/app-route.ts"],"sourcesContent":["import { requireDashboardAuth } from '@/app/lib/dashboard-auth';\nimport { hubFetch } from '@/app/lib/hub';\nimport { callMcp, parseMcpEnvelope, resolveDefaultNetworkId } from '@/app/lib/hub-mcp';\n\n/**\n * Per-node config proxy for #1316:\n * GET ?node_id=... -> hub REST config snapshot (node-side applied fact)\n * POST -> update_node_config MCP doorbell\n *\n * get_config_update and ack_config_update are node-side MCP tools: the node\n * calls them after the dashboard doorbell. The dashboard verifies success by\n * polling the snapshot until config_revision advances. There is no mock success\n * fallback.\n */\n\nconst MCP_TOOL_UPDATE = 'update_node_config';\n\nconst EDITABLE_FLAGS = [\n 'permissionMode',\n 'dangerouslySkipPermissions',\n 'maxTurns',\n 'budget',\n 'timeout',\n] as const;\n\nconst EDITABLE_CHANNELS = ['telegram', 'feishu', 'commhub'] as const;\n\ntype ConfigBody = {\n node_id?: string;\n alias?: string;\n base_revision?: number;\n network_id?: string;\n model?: unknown;\n flags?: Record<string, unknown>;\n channels?: unknown;\n};\n\nfunction errText(e: unknown): string {\n return e instanceof Error ? e.message : String(e);\n}\n\nfunction normalizeResult(result: unknown): Record<string, unknown> {\n return result && typeof result === 'object' ? result as Record<string, unknown> : {};\n}\n\nfunction numberField(obj: Record<string, unknown>, key: string): number | undefined {\n const value = obj[key];\n if (typeof value === 'number' && Number.isFinite(value)) return value;\n if (typeof value === 'string' && value.trim() !== '') {\n const n = Number(value);\n if (Number.isFinite(n)) return n;\n }\n return undefined;\n}\n\nfunction exposeConfigSnapshot(result: Record<string, unknown>) {\n const config = normalizeResult(result.config);\n return {\n ...result,\n ...(result.model === undefined && config.model !== undefined ? { model: config.model } : {}),\n ...(result.flags === undefined && config.flags !== undefined ? { flags: config.flags } : {}),\n ...(result.channels === undefined && config.channels !== undefined ? { channels: config.channels } : {}),\n ...(result.config_revision === undefined && config.config_revision !== undefined ? { config_revision: config.config_revision } : {}),\n ...(result.config_update_capable === undefined && config.config_update_capable !== undefined ? { config_update_capable: config.config_update_capable } : {}),\n };\n}\n\nasync function callConfigTool(tool: string, args: Record<string, unknown>) {\n const res = await callMcp(tool, args);\n if (res.status === 404 || res.status === 501) {\n return {\n response: Response.json(\n { ok: false, unconfirmed: true, error: `hub tool '${tool}' not available (${res.status})` },\n { status: 501 },\n ),\n };\n }\n if (!res.ok) {\n return { response: Response.json({ ok: false, error: `hub ${res.status}`, status: res.status }, { status: 502 }) };\n }\n const result = normalizeResult(await parseMcpEnvelope(res));\n if (result.ok === false) {\n return { response: Response.json({ ...result, ok: false, error: String(result.error || `${tool}_failed`) }, { status: 502 }) };\n }\n return { result };\n}\n\nasync function getMaskedConfigSnapshot(nodeId: string, networkId?: string | null) {\n const params = new URLSearchParams();\n if (networkId) params.set('network_id', networkId);\n const res = await hubFetch(`/api/nodes/${encodeURIComponent(nodeId)}/config${params.toString() ? `?${params}` : ''}`, {\n headers: { Accept: 'application/json' },\n });\n const contentType = res.headers.get('content-type') || '';\n if (!contentType.includes('application/json')) {\n return {\n response: Response.json(\n { ok: false, node_id: nodeId, error: 'node_config_snapshot_unavailable' },\n { status: 502 },\n ),\n };\n }\n const data = normalizeResult(await res.json().catch(() => ({})));\n if (data.ok !== true) {\n return {\n response: Response.json(\n { ...data, ok: false, node_id: nodeId, error: String(data.error || 'node_config_snapshot_failed') },\n { status: res.ok ? 502 : res.status },\n ),\n };\n }\n return { result: data };\n}\n\nfunction buildPatch(body: ConfigBody) {\n const patch: { model?: unknown; flags?: Record<string, unknown>; channels?: string[] } = {};\n if (body.model !== undefined) patch.model = body.model;\n if (body.flags && typeof body.flags === 'object') {\n const flags: Record<string, unknown> = {};\n for (const k of EDITABLE_FLAGS) {\n if (k in body.flags && body.flags[k] !== undefined) flags[k] = body.flags[k];\n }\n if (Object.keys(flags).length > 0) patch.flags = flags;\n }\n if (Array.isArray(body.channels)) {\n const allow = new Set<string>(EDITABLE_CHANNELS);\n const seen = new Set<string>();\n const channels: string[] = [];\n for (const c of body.channels) {\n if (typeof c !== 'string') continue;\n const key = c.trim().toLowerCase();\n if (!allow.has(key) || seen.has(key)) continue;\n seen.add(key);\n channels.push(key);\n }\n patch.channels = channels;\n }\n return patch;\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 const networkId = searchParams.get('network_id') || (await resolveDefaultNetworkId());\n const nodeId = searchParams.get('node_id') || searchParams.get('alias') || '';\n if (!nodeId) return Response.json({ error: 'node_id or alias required' }, { status: 400 });\n try {\n const out = await getMaskedConfigSnapshot(nodeId, networkId);\n if (out.response) return out.response;\n const result = exposeConfigSnapshot(out.result);\n const currentRevision = numberField(result, 'config_revision') ?? 0;\n const baseRevision = numberField(Object.fromEntries(searchParams), 'base_revision');\n if (baseRevision !== undefined) {\n return Response.json({\n ok: true,\n node_id: nodeId,\n ...result,\n status: currentRevision > baseRevision ? 'applied' : 'pending',\n base_revision: baseRevision,\n });\n }\n return Response.json({ ok: true, node_id: nodeId, ...result });\n } catch (e: unknown) {\n return Response.json({ ok: false, node_id: nodeId, error: errText(e) }, { status: 502 });\n }\n}\n\nexport async function POST(req: Request) {\n const authFailure = await requireDashboardAuth();\n if (authFailure) return authFailure;\n\n let body: ConfigBody;\n try {\n body = await req.json();\n } catch {\n return Response.json({ error: 'invalid JSON body' }, { status: 400 });\n }\n\n const nodeId = body.node_id || body.alias;\n if (!nodeId) return Response.json({ error: 'node_id or alias required' }, { status: 400 });\n if (typeof body.base_revision !== 'number') {\n return Response.json({ error: 'base_revision (number) required' }, { status: 400 });\n }\n\n const patch = buildPatch(body);\n if (patch.model === undefined && !patch.flags && !patch.channels) {\n return Response.json({ ok: false, error: 'empty_patch' }, { status: 400 });\n }\n\n const networkId = body.network_id || (await resolveDefaultNetworkId());\n const args = {\n node_id: nodeId,\n base_revision: body.base_revision,\n patch,\n ...(networkId ? { network_id: networkId } : {}),\n };\n\n try {\n const out = await callConfigTool(MCP_TOOL_UPDATE, args);\n if (out.response) return out.response;\n const result = out.result;\n return Response.json({ ok: true, node_id: nodeId, base_revision: body.base_revision, status: 'pending', ...exposeConfigSnapshot(result) });\n } catch (e: unknown) {\n return Response.json({ ok: false, node_id: nodeId, error: errText(e) }, { status: 502 });\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":["MCP_TOOL_UPDATE","EDITABLE_FLAGS","EDITABLE_CHANNELS","errText","e","Error","message","String","normalizeResult","result","numberField","obj","key","value","Number","isFinite","trim","n","undefined","exposeConfigSnapshot","config","model","flags","channels","config_revision","config_update_capable","callConfigTool","tool","args","res","status","response","Response","json","ok","unconfirmed","error","getMaskedConfigSnapshot","nodeId","networkId","params","URLSearchParams","set","encodeURIComponent","toString","headers","Accept","contentType","get","includes","node_id","data","catch","buildPatch","body","patch","k","Object","keys","length","Array","isArray","allow","Set","seen","c","toLowerCase","has","add","push","GET","req","authFailure","searchParams","URL","url","out","currentRevision","baseRevision","fromEntries","base_revision","POST","alias","network_id","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","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","onInstrumentationRequestError","_request","errorContext","silenceLog","onRequestError","sharedContext","nodeNextReq","nodeNextRes","nextReq","fromNodeNextRequest","responseGenerator","previousCacheEntry","setHeader","handle","fetchMetrics","pendingWaitUntil","cacheTags","collectedTags","blob","type","revalidate","collectedRevalidate","expire","collectedExpire","expireTime","cacheEntry","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]}
|
package/.next/server/chunks/_next-internal_server_app_api_hub_people_route_actions_01pw78e.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},53142,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246);let e={nodes:{title:"No agents in this network",sub:"Agent sessions will appear here once they connect to the CommHub."},tasks:{title:"No tasks yet",sub:"Tasks will appear here when agents send them via CommHub."},messages:{title:"No messages",sub:"Messages between agents will appear here."},logs:{title:"No audit logs",sub:"Events will appear here when users register, login, or perform actions."},tokens:{title:"No API tokens",sub:"Create one to authenticate CLI tools and external integrations."},networks:{title:"No networks found",sub:"Create one or sign in with V3 auth to see your networks."},generic:{title:"Nothing here yet",sub:"Data will appear here once available."}};function f({variant:a,size:c}){let d={width:c,height:c},e={fill:"none",stroke:"currentColor",strokeWidth:1.25,strokeLinecap:"round",strokeLinejoin:"round"};switch(a){case"nodes":return(0,b.jsx)("svg",{viewBox:"0 0 64 64",...d,children:(0,b.jsxs)("g",{...e,children:[(0,b.jsx)("circle",{cx:"32",cy:"14",r:"4"}),(0,b.jsx)("circle",{cx:"14",cy:"44",r:"4"}),(0,b.jsx)("circle",{cx:"50",cy:"44",r:"4"}),(0,b.jsx)("line",{x1:"32",y1:"18",x2:"14",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,b.jsx)("line",{x1:"32",y1:"18",x2:"50",y2:"40",strokeDasharray:"3 3",opacity:"0.6"}),(0,b.jsx)("line",{x1:"18",y1:"44",x2:"46",y2:"44",strokeDasharray:"3 3",opacity:"0.6"})]})});case"tasks":return(0,b.jsx)("svg",{viewBox:"0 0 64 64",...d,children:(0,b.jsxs)("g",{...e,children:[(0,b.jsx)("rect",{x:"14",y:"14",width:"36",height:"6",rx:"1.5"}),(0,b.jsx)("rect",{x:"14",y:"26",width:"36",height:"6",rx:"1.5",opacity:"0.6"}),(0,b.jsx)("rect",{x:"14",y:"38",width:"36",height:"6",rx:"1.5",opacity:"0.35"})]})});case"messages":return(0,b.jsx)("svg",{viewBox:"0 0 64 64",...d,children:(0,b.jsxs)("g",{...e,children:[(0,b.jsx)("path",{d:"M14 18 h36 a3 3 0 0 1 3 3 v18 a3 3 0 0 1 -3 3 h-18 l-8 6 v-6 h-10 a3 3 0 0 1 -3 -3 v-18 a3 3 0 0 1 3 -3 z"}),(0,b.jsx)("line",{x1:"22",y1:"28",x2:"42",y2:"28",opacity:"0.5"}),(0,b.jsx)("line",{x1:"22",y1:"34",x2:"36",y2:"34",opacity:"0.5"})]})});case"logs":return(0,b.jsx)("svg",{viewBox:"0 0 64 64",...d,children:(0,b.jsxs)("g",{...e,children:[(0,b.jsx)("path",{d:"M18 12 h22 l8 8 v32 a2 2 0 0 1 -2 2 h-28 a2 2 0 0 1 -2 -2 v-38 a2 2 0 0 1 2 -2 z"}),(0,b.jsx)("path",{d:"M40 12 v8 h8",opacity:"0.6"}),(0,b.jsx)("line",{x1:"24",y1:"32",x2:"40",y2:"32",opacity:"0.55"}),(0,b.jsx)("line",{x1:"24",y1:"38",x2:"40",y2:"38",opacity:"0.4"}),(0,b.jsx)("line",{x1:"24",y1:"44",x2:"34",y2:"44",opacity:"0.25"})]})});case"tokens":return(0,b.jsx)("svg",{viewBox:"0 0 64 64",...d,children:(0,b.jsxs)("g",{...e,children:[(0,b.jsx)("circle",{cx:"22",cy:"32",r:"8"}),(0,b.jsx)("line",{x1:"30",y1:"32",x2:"54",y2:"32"}),(0,b.jsx)("line",{x1:"44",y1:"32",x2:"44",y2:"38"}),(0,b.jsx)("line",{x1:"50",y1:"32",x2:"50",y2:"40"})]})});case"networks":return(0,b.jsx)("svg",{viewBox:"0 0 64 64",...d,children:(0,b.jsxs)("g",{...e,children:[(0,b.jsx)("circle",{cx:"32",cy:"32",r:"18"}),(0,b.jsx)("ellipse",{cx:"32",cy:"32",rx:"18",ry:"9",opacity:"0.55"}),(0,b.jsx)("line",{x1:"14",y1:"32",x2:"50",y2:"32",opacity:"0.55"}),(0,b.jsx)("line",{x1:"32",y1:"14",x2:"32",y2:"50",opacity:"0.55"})]})});default:return(0,b.jsx)("svg",{viewBox:"0 0 64 64",...d,children:(0,b.jsxs)("g",{...e,children:[(0,b.jsx)("circle",{cx:"32",cy:"32",r:"14",strokeDasharray:"3 3",opacity:"0.6"}),(0,b.jsx)("circle",{cx:"32",cy:"32",r:"3"})]})})}}function g({variant:a="generic",title:c,sub:h,cta:i,compact:j=!1}){let k=e[a],l=c??k.title,m=h??k.sub;return(0,b.jsxs)("div",{className:`text-center ${j?"py-8":"py-16"} px-4`,role:"status",children:[(0,b.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,b.jsx)(f,{variant:a,size:j?40:56})}),(0,b.jsx)("h3",{className:`font-medium text-gray-300 ${j?"text-sm":"text-base"}`,children:l}),m&&(0,b.jsx)("p",{className:`text-gray-500 ${j?"text-xs mt-1.5":"text-sm mt-2"} max-w-md mx-auto leading-relaxed`,children:m}),i&&(0,b.jsx)("div",{className:"mt-4",children:i.href?(0,b.jsxs)(d.default,{href:i.href,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[i.label,(0,b.jsx)("span",{"aria-hidden":!0,children:"→"})]}):(0,b.jsxs)("button",{onClick:i.onClick,className:"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300",children:[i.label,(0,b.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})}function h({children:a}){return(0,b.jsx)("div",{className:"max-w-2xl mx-auto rounded-xl border border-[#26262b] bg-[#161618] shadow-lg shadow-black/20",children:a})}function i({cmd:a}){let[d,e]=(0,c.useState)(!1),f=async()=>{try{await navigator.clipboard.writeText(a),e(!0),setTimeout(()=>e(!1),1800)}catch{}};return(0,b.jsxs)("div",{className:"anet-empty-cmd flex items-start sm:items-center gap-2 bg-[#0e0e10] border border-[#26262b] rounded-lg pl-4 pr-1.5 py-1.5 text-xs sm:text-sm",children:[(0,b.jsx)("code",{className:"text-cyan-300 font-mono select-all min-w-0 break-all sm:break-normal",children:a}),(0,b.jsx)("button",{type:"button",onClick:f,"aria-label":d?"Copied":"Copy command",className:"shrink-0 rounded-md px-2 py-1.5 text-[11px] text-gray-500 hover:text-gray-200 hover:bg-[#1c1c1f] transition-colors",children:d?(0,b.jsxs)("span",{className:"flex items-center gap-1 text-green-400",children:[(0,b.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,b.jsx)("path",{d:"M20 6 9 17l-5-5"})}),"Copied"]}):(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,b.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),"Copy"]})})]})}a.s(["EmptyState",0,g,"NodesEmptyState",0,function({hint:a,taskHistoryCount:c=0}){return a?.global_count?(0,b.jsx)(h,{children:(0,b.jsx)(g,{variant:"nodes",title:"No agents in this network",sub:`Server has ${a.global_count} nodes globally, but none are registered to the current network. Switch network or contact admin.`})}):c>0?(0,b.jsx)(h,{children:(0,b.jsx)(g,{variant:"nodes",title:"No agents online",sub:`Every agent in this network is currently offline. ${c.toLocaleString()} task${1===c?"":"s"} in history — they may have finished their work or disconnected.`,cta:{label:"View task history",href:"/tasks"}})}):(0,b.jsx)(h,{children:(0,b.jsxs)("div",{className:"text-center py-16 px-4",role:"status",children:[(0,b.jsx)("div",{className:"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500","aria-hidden":!0,children:(0,b.jsx)("svg",{viewBox:"0 0 64 64",width:56,height:56,children:(0,b.jsxs)("g",{stroke:"currentColor",strokeWidth:"1.5",fill:"none",children:[(0,b.jsx)("rect",{x:"10",y:"20",width:"44",height:"28",rx:"2"}),(0,b.jsx)("rect",{x:"20",y:"32",width:"6",height:"8",opacity:"0.5"}),(0,b.jsx)("rect",{x:"32",y:"32",width:"6",height:"8",opacity:"0.5"}),(0,b.jsx)("rect",{x:"44",y:"32",width:"4",height:"8",opacity:"0.5"}),(0,b.jsx)("line",{x1:"10",y1:"26",x2:"54",y2:"26",opacity:"0.4"}),(0,b.jsx)("circle",{cx:"14",cy:"23",r:"0.8",fill:"currentColor"})]})})}),(0,b.jsx)("h3",{className:"font-medium text-gray-300 text-base",children:"Spin up your first agent"}),(0,b.jsx)("p",{className:"text-gray-500 text-sm mt-2 max-w-md mx-auto leading-relaxed",children:"Run this in a fresh terminal to register an agent with this CommHub:"}),(0,b.jsx)("div",{className:"mt-4 inline-block",children:(0,b.jsx)(i,{cmd:"npx --yes @sleep2agi/agent-network init"})}),(0,b.jsx)("p",{className:"text-gray-600 text-xs mt-3 max-w-md mx-auto",children:"Once the agent connects, it appears here automatically within a few seconds — no refresh needed."}),(0,b.jsx)("div",{className:"mt-3",children:(0,b.jsxs)("a",{href:"https://anet.sh",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-xs font-medium text-gray-500 hover:text-cyan-300",children:["Full quickstart guide",(0,b.jsx)("span",{"aria-hidden":!0,children:"→"})]})})]})})}])},74014,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(50944),f=a.i(62180),g=a.i(58348),h=a.i(53142);let i={pool:"bg-amber-500/10 text-amber-300 border-amber-500/20",doing:"bg-blue-500/10 text-blue-300 border-blue-500/20",done:"bg-emerald-500/10 text-emerald-300 border-emerald-500/20",abandoned:"bg-gray-500/10 text-gray-400 border-gray-500/20"},j=[{key:"pool",label:"需求池"},{key:"doing",label:"进行中"},{key:"done",label:"完成"},{key:"abandoned",label:"放弃"}],k=["high","normal","low","lowest"];function l(a){return a?a.alias||a.id:"—"}a.s(["default",0,function(){let a=(0,e.useParams)(),m=a?.id,[n,o]=(0,c.useState)(null),[p,q]=(0,c.useState)([]),[r,s]=(0,c.useState)(!0),[t,u]=(0,c.useState)(""),[v,w]=(0,c.useState)(!1),[x,y]=(0,c.useState)(""),[z,A]=(0,c.useState)(!1),[B,C]=(0,c.useState)(""),[D,E]=(0,c.useState)(0),F=()=>E(a=>a+1);async function G(a){if(m&&!z){A(!0),y("");try{let b=await fetch(`/api/hub/requirements/${encodeURIComponent(m)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json().catch(()=>({}));if(!b.ok||!1===c.ok)return void y(c?.error||`hub_${b.status}`);F()}catch(a){y(a instanceof Error?a.message:"patch failed")}finally{A(!1)}}}async function H(a,b){if(m&&!z){A(!0),y("");try{let c=await fetch(`/api/hub/requirements/${encodeURIComponent(m)}/checklist/${encodeURIComponent(a)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({done:b})}),d=await c.json().catch(()=>({}));if(!c.ok||!1===d.ok)return void y(d?.error||`hub_${c.status}`);F()}catch(a){y(a instanceof Error?a.message:"checklist failed")}finally{A(!1)}}}async function I(){if(m&&!z&&B.trim()){A(!0),y("");try{let a=await fetch(`/api/hub/requirements/${encodeURIComponent(m)}/comments`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:B.trim()})}),b=await a.json().catch(()=>({}));if(!a.ok||!1===b.ok)return void y(b?.error||`hub_${a.status}`);C(""),F()}catch(a){y(a instanceof Error?a.message:"comment failed")}finally{A(!1)}}}if((0,c.useEffect)(()=>{if(!m)return;let a=!0;return(async()=>{s(!0),u("");try{let[b,c]=await Promise.all([fetch(`/api/hub/requirements/${encodeURIComponent(m)}`,{cache:"no-store"}),fetch(`/api/hub/requirements/events?requirement_id=${encodeURIComponent(m)}&limit=100`,{cache:"no-store"})]);if(401===b.status){a&&w(!0);return}let d=await b.json();if(!b.ok||!d.ok){a&&u(d?.error||`hub_${b.status}`);return}let e=c.ok?await c.json():{events:[]};if(!a)return;o(d.requirement),q(e.events||[])}catch(b){a&&u(b instanceof Error?b.message:"fetch failed")}finally{a&&s(!1)}})(),()=>{a=!1}},[m,D]),r)return(0,b.jsx)("div",{className:"min-h-screen bg-[var(--bg)] p-6 text-gray-500",children:(0,b.jsxs)("div",{className:"mx-auto max-w-4xl space-y-3",children:[(0,b.jsx)("div",{className:"h-6 w-2/3 animate-pulse rounded bg-[var(--bg-elevated)]"}),(0,b.jsx)("div",{className:"h-40 animate-pulse rounded bg-[var(--bg-secondary)]"})]})});if(v)return(0,b.jsx)("div",{className:"min-h-screen bg-[var(--bg)] p-6",children:(0,b.jsxs)("div",{className:"mx-auto max-w-4xl rounded-lg border border-amber-500/20 bg-amber-500/5 px-4 py-3 text-sm text-amber-300",children:["会话已过期,",(0,b.jsx)(d.default,{href:"/login",className:"underline",children:"重新登录"}),"。"]})});if(t||!n)return(0,b.jsx)("div",{className:"min-h-screen bg-[var(--bg)] p-6",children:(0,b.jsxs)("div",{className:"mx-auto max-w-4xl",children:[(0,b.jsx)("div",{className:"mb-4 rounded-lg border border-red-500/20 bg-red-500/5 px-4 py-3 text-sm text-red-300",children:t?`读取失败:${t}`:"这条需求不存在或不可见。"}),(0,b.jsx)(d.default,{href:"/requirements",className:"text-sm text-blue-400 hover:underline",children:"← 返回需求列表"})]})});let J=n.checklist||[];return(0,b.jsx)("div",{className:"min-h-screen bg-[var(--bg)] text-gray-200",children:(0,b.jsxs)("div",{className:"mx-auto max-w-4xl px-4 py-6 sm:px-6",children:[(0,b.jsx)("div",{className:"mb-4",children:(0,b.jsx)(d.default,{href:"/requirements",className:"text-xs text-gray-500 hover:text-gray-300",children:"← 需求列表"})}),(0,b.jsxs)("header",{className:"mb-5",children:[(0,b.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-2 text-[11px] text-gray-500",children:[(0,b.jsxs)("span",{className:"tabular-nums",children:["#",n.seq]}),(0,b.jsx)("span",{className:`rounded border px-1.5 py-0.5 ${i[n.column]||i.abandoned}`,children:n.column}),(0,b.jsx)("span",{children:n.priority}),n.due&&(0,b.jsxs)("span",{children:["due ",String(n.due).slice(0,10)]}),(n.tags||[]).map(a=>(0,b.jsx)("span",{className:"rounded bg-[var(--bg-elevated)] px-1.5 py-0.5 text-gray-400",children:a},a))]}),(0,b.jsx)("h1",{className:"text-lg font-semibold text-white",children:n.name}),(0,b.jsxs)("div",{className:"mt-2 flex flex-wrap gap-4 text-[11px] text-gray-500",children:[(0,b.jsxs)("span",{children:["负责人 ",l(n.owner)]}),(0,b.jsxs)("span",{children:["负责 Agent ",l(n.agent_owner)]}),n.children&&n.children.total>0&&(0,b.jsxs)("span",{children:["子卡 ",n.children.done,"/",n.children.total]}),n.external_url&&(0,b.jsx)("a",{href:n.external_url,target:"_blank",rel:"noreferrer",className:"text-blue-400 hover:underline",children:n.external_ref||"external"})]})]}),(0,b.jsxs)("section",{className:"mb-6 flex flex-wrap items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--bg-secondary)] px-3 py-2.5",children:[(0,b.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-gray-600",children:"Status"}),j.map(a=>(0,b.jsx)("button",{type:"button",disabled:z||n.column===a.key,onClick:()=>G({column:a.key}),className:`rounded-md border px-2.5 py-1 text-xs transition-colors disabled:opacity-60 ${n.column===a.key?i[a.key]||i.abandoned:"border-transparent text-gray-500 hover:bg-[var(--bg-elevated)] hover:text-gray-200"}`,children:a.label},a.key)),(0,b.jsx)("span",{className:"mx-1 h-4 w-px bg-[var(--border)]"}),(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[10px] uppercase tracking-wide text-gray-600",children:["Priority",(0,b.jsx)("select",{value:n.priority,disabled:z,onChange:a=>G({priority:a.target.value}),className:"rounded border border-[var(--border)] bg-[var(--bg-secondary)] px-1.5 py-1 text-xs normal-case text-gray-200",children:k.map(a=>(0,b.jsx)("option",{value:a,children:a},a))})]}),(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[10px] uppercase tracking-wide text-gray-600",children:["Due",(0,b.jsx)("input",{type:"date",value:n.due?String(n.due).slice(0,10):"",disabled:z,onChange:a=>G({due:a.target.value}),className:"rounded border border-[var(--border)] bg-[var(--bg-secondary)] px-1.5 py-1 text-xs normal-case text-gray-200"})]}),z&&(0,b.jsx)("span",{className:"text-[11px] text-gray-500",children:"saving…"}),x&&(0,b.jsx)("span",{className:"text-[11px] text-red-400",children:x})]}),(0,b.jsxs)("section",{className:"mb-6 rounded-xl border border-[var(--border)] bg-[var(--bg-secondary)] p-4",children:[(0,b.jsx)("h2",{className:"mb-2 text-xs uppercase tracking-wide text-gray-500",children:"Description"}),n.description?(0,b.jsx)("div",{className:"prose prose-invert max-w-none prose-sm prose-pre:bg-[var(--bg)] prose-pre:border prose-pre:border-[var(--border)]",children:(0,b.jsx)(f.default,{remarkPlugins:[g.default],children:n.description})}):(0,b.jsx)("p",{className:"text-sm text-gray-600",children:"(没有描述)"})]}),(0,b.jsxs)("section",{className:"mb-6 rounded-xl border border-[var(--border)] bg-[var(--bg-secondary)] p-4",children:[(0,b.jsxs)("h2",{className:"mb-2 text-xs uppercase tracking-wide text-gray-500",children:["Checklist ",J.length>0&&(0,b.jsxs)("span",{className:"ml-1 text-gray-600",children:[J.filter(a=>a.done).length,"/",J.length]})]}),0===J.length?(0,b.jsx)("p",{className:"text-sm text-gray-600",children:"(没有检查项)"}):(0,b.jsx)("ul",{className:"space-y-1.5",children:J.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",disabled:z,onClick:()=>H(a.id,!a.done),className:"flex items-start gap-2 text-left text-sm hover:opacity-80 disabled:opacity-60",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:a.done?"text-emerald-400":"text-gray-600",children:a.done?"✓":"○"}),(0,b.jsx)("span",{className:a.done?"text-gray-500 line-through":"text-gray-200",children:a.text})]})},a.id))})]}),(0,b.jsxs)("section",{className:"rounded-xl border border-[var(--border)] bg-[var(--bg-secondary)] p-4",children:[(0,b.jsx)("h2",{className:"mb-2 text-xs uppercase tracking-wide text-gray-500",children:"Activity"}),0===p.length?(0,b.jsx)(h.EmptyState,{variant:"generic",compact:!0,title:"还没有动态",sub:"状态变更和评论会出现在这里。"}):(0,b.jsx)("ul",{className:"space-y-2",children:p.map(a=>{let c=function(a){if("comment"===a.kind)return{label:"comment",body:"string"==typeof a.new?.text?a.new.text:""};if("created"===a.kind)return{label:"created",body:""};if(a.field){let b=null==a.old?"—":"object"==typeof a.old?JSON.stringify(a.old):String(a.old),c=null==a.new?"—":"object"==typeof a.new?JSON.stringify(a.new):String(a.new);return{label:a.field,body:`${b.slice(0,120)} → ${c.slice(0,120)}`}}return{label:a.kind,body:""}}(a);return(0,b.jsxs)("li",{className:"rounded-lg border border-[var(--border)] bg-[var(--bg-secondary)] px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-[11px] text-gray-500",children:[(0,b.jsx)("span",{className:"text-gray-300",children:l(a.actor)}),(0,b.jsx)("span",{className:"rounded bg-[var(--bg-elevated)] px-1.5 py-0.5",children:c.label}),a.at&&(0,b.jsx)("span",{children:String(a.at).replace("T"," ").slice(0,16)})]}),c.body&&(0,b.jsx)("p",{className:"mt-1 whitespace-pre-wrap break-words text-sm text-gray-300",children:c.body})]},a.id)})}),(0,b.jsxs)("div",{className:"mt-3 border-t border-[var(--border)] pt-3",children:[(0,b.jsx)("textarea",{value:B,onChange:a=>C(a.target.value),rows:2,placeholder:"写一条进展或评论…(Ctrl/⌘+Enter 发送)",className:"w-full resize-y rounded-lg border border-[var(--border)] bg-[var(--bg-secondary)] px-2.5 py-2 text-sm text-gray-200 placeholder-gray-700 focus:border-blue-500/40 focus:outline-none",onKeyDown:a=>{(a.metaKey||a.ctrlKey)&&"Enter"===a.key&&I()}}),(0,b.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,b.jsx)("button",{type:"button",disabled:z||!B.trim(),onClick:I,className:"rounded-lg border border-blue-500/30 bg-blue-500/10 px-3 py-1.5 text-xs text-blue-300 disabled:opacity-50",children:"Add comment"}),x&&(0,b.jsx)("span",{className:"text-[11px] text-red-400",children:x})]})]})]})]})})}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0-94ipy._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../app/components/EmptyState.tsx","../../../../app/requirements/%5Bid%5D/page.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\nimport Link from 'next/link';\n\nexport type EmptyVariant = 'nodes' | 'tasks' | 'messages' | 'logs' | 'tokens' | 'networks' | 'generic';\n\ninterface EmptyStateProps {\n /** Picks the icon glyph and default copy if title/sub omitted. */\n variant?: EmptyVariant;\n /** Optional override headline. */\n title?: string;\n /** Optional override sub-copy. */\n sub?: string;\n /** Optional CTA: text + href (internal) or onClick. */\n cta?: { label: string; href?: string; onClick?: () => void };\n /** Compact mode for in-card empty states (smaller padding). */\n compact?: boolean;\n}\n\nconst DEFAULTS: Record<EmptyVariant, { title: string; sub: string }> = {\n nodes: { title: 'No agents in this network', sub: 'Agent sessions will appear here once they connect to the CommHub.' },\n tasks: { title: 'No tasks yet', sub: 'Tasks will appear here when agents send them via CommHub.' },\n messages: { title: 'No messages', sub: 'Messages between agents will appear here.' },\n logs: { title: 'No audit logs', sub: 'Events will appear here when users register, login, or perform actions.' },\n tokens: { title: 'No API tokens', sub: 'Create one to authenticate CLI tools and external integrations.' },\n networks: { title: 'No networks found', sub: 'Create one or sign in with V3 auth to see your networks.' },\n generic: { title: 'Nothing here yet', sub: 'Data will appear here once available.' },\n};\n\n/**\n * Minimal monochrome SVG glyphs per variant. No filled shapes, no gradients,\n * no AI-decoration — just thin-stroke line art that fades into the page.\n * 64×64 viewBox; rendered at 56×56 (compact 40×40).\n */\nfunction Glyph({ variant, size }: { variant: EmptyVariant; size: number }) {\n const s = { width: size, height: size };\n const baseProps = {\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 1.25,\n strokeLinecap: 'round' as const,\n strokeLinejoin: 'round' as const,\n };\n\n switch (variant) {\n case 'nodes':\n // Mesh with dashed edges = \"nodes will land here\"\n return (\n <svg viewBox=\"0 0 64 64\" {...s}>\n <g {...baseProps}>\n <circle cx=\"32\" cy=\"14\" r=\"4\" />\n <circle cx=\"14\" cy=\"44\" r=\"4\" />\n <circle cx=\"50\" cy=\"44\" r=\"4\" />\n <line x1=\"32\" y1=\"18\" x2=\"14\" y2=\"40\" strokeDasharray=\"3 3\" opacity=\"0.6\" />\n <line x1=\"32\" y1=\"18\" x2=\"50\" y2=\"40\" strokeDasharray=\"3 3\" opacity=\"0.6\" />\n <line x1=\"18\" y1=\"44\" x2=\"46\" y2=\"44\" strokeDasharray=\"3 3\" opacity=\"0.6\" />\n </g>\n </svg>\n );\n case 'tasks':\n // Empty checkbox list\n return (\n <svg viewBox=\"0 0 64 64\" {...s}>\n <g {...baseProps}>\n <rect x=\"14\" y=\"14\" width=\"36\" height=\"6\" rx=\"1.5\" />\n <rect x=\"14\" y=\"26\" width=\"36\" height=\"6\" rx=\"1.5\" opacity=\"0.6\" />\n <rect x=\"14\" y=\"38\" width=\"36\" height=\"6\" rx=\"1.5\" opacity=\"0.35\" />\n </g>\n </svg>\n );\n case 'messages':\n // Speech bubble outline\n return (\n <svg viewBox=\"0 0 64 64\" {...s}>\n <g {...baseProps}>\n <path d=\"M14 18 h36 a3 3 0 0 1 3 3 v18 a3 3 0 0 1 -3 3 h-18 l-8 6 v-6 h-10 a3 3 0 0 1 -3 -3 v-18 a3 3 0 0 1 3 -3 z\" />\n <line x1=\"22\" y1=\"28\" x2=\"42\" y2=\"28\" opacity=\"0.5\" />\n <line x1=\"22\" y1=\"34\" x2=\"36\" y2=\"34\" opacity=\"0.5\" />\n </g>\n </svg>\n );\n case 'logs':\n // Document with lines\n return (\n <svg viewBox=\"0 0 64 64\" {...s}>\n <g {...baseProps}>\n <path d=\"M18 12 h22 l8 8 v32 a2 2 0 0 1 -2 2 h-28 a2 2 0 0 1 -2 -2 v-38 a2 2 0 0 1 2 -2 z\" />\n <path d=\"M40 12 v8 h8\" opacity=\"0.6\" />\n <line x1=\"24\" y1=\"32\" x2=\"40\" y2=\"32\" opacity=\"0.55\" />\n <line x1=\"24\" y1=\"38\" x2=\"40\" y2=\"38\" opacity=\"0.4\" />\n <line x1=\"24\" y1=\"44\" x2=\"34\" y2=\"44\" opacity=\"0.25\" />\n </g>\n </svg>\n );\n case 'tokens':\n // Key outline\n return (\n <svg viewBox=\"0 0 64 64\" {...s}>\n <g {...baseProps}>\n <circle cx=\"22\" cy=\"32\" r=\"8\" />\n <line x1=\"30\" y1=\"32\" x2=\"54\" y2=\"32\" />\n <line x1=\"44\" y1=\"32\" x2=\"44\" y2=\"38\" />\n <line x1=\"50\" y1=\"32\" x2=\"50\" y2=\"40\" />\n </g>\n </svg>\n );\n case 'networks':\n // Globe-ish concentric ovals\n return (\n <svg viewBox=\"0 0 64 64\" {...s}>\n <g {...baseProps}>\n <circle cx=\"32\" cy=\"32\" r=\"18\" />\n <ellipse cx=\"32\" cy=\"32\" rx=\"18\" ry=\"9\" opacity=\"0.55\" />\n <line x1=\"14\" y1=\"32\" x2=\"50\" y2=\"32\" opacity=\"0.55\" />\n <line x1=\"32\" y1=\"14\" x2=\"32\" y2=\"50\" opacity=\"0.55\" />\n </g>\n </svg>\n );\n case 'generic':\n default:\n // Soft sparkle outline\n return (\n <svg viewBox=\"0 0 64 64\" {...s}>\n <g {...baseProps}>\n <circle cx=\"32\" cy=\"32\" r=\"14\" strokeDasharray=\"3 3\" opacity=\"0.6\" />\n <circle cx=\"32\" cy=\"32\" r=\"3\" />\n </g>\n </svg>\n );\n }\n}\n\nexport function EmptyState({ variant = 'generic', title, sub, cta, compact = false }: EmptyStateProps) {\n const d = DEFAULTS[variant];\n const headline = title ?? d.title;\n const subcopy = sub ?? d.sub;\n const iconSize = compact ? 40 : 56;\n\n return (\n <div className={`text-center ${compact ? 'py-8' : 'py-16'} px-4`} role=\"status\">\n <div className=\"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500\" aria-hidden>\n <Glyph variant={variant} size={iconSize} />\n </div>\n <h3 className={`font-medium text-gray-300 ${compact ? 'text-sm' : 'text-base'}`}>{headline}</h3>\n {subcopy && (\n <p className={`text-gray-500 ${compact ? 'text-xs mt-1.5' : 'text-sm mt-2'} max-w-md mx-auto leading-relaxed`}>\n {subcopy}\n </p>\n )}\n {cta && (\n <div className=\"mt-4\">\n {cta.href ? (\n <Link href={cta.href} className=\"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300\">\n {cta.label}\n <span aria-hidden>→</span>\n </Link>\n ) : (\n <button onClick={cta.onClick} className=\"inline-flex items-center gap-1.5 text-sm font-medium text-cyan-400 hover:text-cyan-300\">\n {cta.label}\n <span aria-hidden>→</span>\n </button>\n )}\n </div>\n )}\n </div>\n );\n}\n\n/** Round 105 (issue #90): centered card shell so the Overview empty state\n * reads as an intentional, layout-aligned card instead of bare text\n * floating in the content column. */\nfunction EmptyCard({ children }: { children: React.ReactNode }) {\n return (\n <div className=\"max-w-2xl mx-auto rounded-xl border border-[#26262b] bg-[#161618] shadow-lg shadow-black/20\">\n {children}\n </div>\n );\n}\n\n/**\n * Overview-specific variant. Three cases:\n * 1. network-mismatch — agents exist globally, none in this network\n * 2. agents-offline — 0 registered now BUT task history exists, so this\n * is NOT a first run (round 105 / issue #90: showing \"Spin up your\n * first agent\" next to \"acked: 499\" was misleading)\n * 3. true first-run — 0 agents, 0 history → quickstart command\n */\nexport function NodesEmptyState({\n hint,\n taskHistoryCount = 0,\n}: {\n hint?: { global_count?: number; filtered_network?: string };\n taskHistoryCount?: number;\n}) {\n if (hint?.global_count) {\n return (\n <EmptyCard>\n <EmptyState\n variant=\"nodes\"\n title=\"No agents in this network\"\n sub={`Server has ${hint.global_count} nodes globally, but none are registered to the current network. Switch network or contact admin.`}\n />\n </EmptyCard>\n );\n }\n\n // Round 105 (issue #90): there's task history but no agents online right\n // now — they finished or disconnected. Don't pitch a first-run setup;\n // point at the history instead.\n if (taskHistoryCount > 0) {\n return (\n <EmptyCard>\n <EmptyState\n variant=\"nodes\"\n title=\"No agents online\"\n sub={`Every agent in this network is currently offline. ${taskHistoryCount.toLocaleString()} task${taskHistoryCount === 1 ? '' : 's'} in history — they may have finished their work or disconnected.`}\n cta={{ label: 'View task history', href: '/tasks' }}\n />\n </EmptyCard>\n );\n }\n\n // Round 52: true empty state (zero agents anywhere) — show the\n // quickstart command inline so users don't have to leave the dashboard\n // to figure out how to spin up their first agent.\n return (\n <EmptyCard>\n <div className=\"text-center py-16 px-4\" role=\"status\">\n <div className=\"anet-empty-glyph inline-flex items-center justify-center mb-4 text-gray-500\" aria-hidden>\n <svg viewBox=\"0 0 64 64\" width={56} height={56}>\n <g stroke=\"currentColor\" strokeWidth=\"1.5\" fill=\"none\">\n <rect x=\"10\" y=\"20\" width=\"44\" height=\"28\" rx=\"2\" />\n <rect x=\"20\" y=\"32\" width=\"6\" height=\"8\" opacity=\"0.5\" />\n <rect x=\"32\" y=\"32\" width=\"6\" height=\"8\" opacity=\"0.5\" />\n <rect x=\"44\" y=\"32\" width=\"4\" height=\"8\" opacity=\"0.5\" />\n <line x1=\"10\" y1=\"26\" x2=\"54\" y2=\"26\" opacity=\"0.4\" />\n <circle cx=\"14\" cy=\"23\" r=\"0.8\" fill=\"currentColor\" />\n </g>\n </svg>\n </div>\n <h3 className=\"font-medium text-gray-300 text-base\">Spin up your first agent</h3>\n <p className=\"text-gray-500 text-sm mt-2 max-w-md mx-auto leading-relaxed\">\n Run this in a fresh terminal to register an agent with this CommHub:\n </p>\n <div className=\"mt-4 inline-block\">\n <QuickstartCommand cmd=\"npx --yes @sleep2agi/agent-network init\" />\n </div>\n {/* #214 F6: expectation management — without this line, users\n copy the command and stare at an empty screen not knowing\n what to wait for. The page polls every 5s, so the node\n really does appear by itself. */}\n <p className=\"text-gray-600 text-xs mt-3 max-w-md mx-auto\">\n Once the agent connects, it appears here automatically within a\n few seconds — no refresh needed.\n </p>\n <div className=\"mt-3\">\n <a\n href=\"https://anet.sh\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex items-center gap-1.5 text-xs font-medium text-gray-500 hover:text-cyan-300\"\n >\n Full quickstart guide\n <span aria-hidden>→</span>\n </a>\n </div>\n </div>\n </EmptyCard>\n );\n}\n\n/** Code block + inline copy button used by the empty-Overview first-run\n * CTA. State lives here so the parent stays stateless. */\nfunction QuickstartCommand({ cmd }: { cmd: string }) {\n const [copied, setCopied] = useState(false);\n const onCopy = async () => {\n try {\n await navigator.clipboard.writeText(cmd);\n setCopied(true);\n setTimeout(() => setCopied(false), 1800);\n } catch {}\n };\n return (\n <div className=\"anet-empty-cmd flex items-start sm:items-center gap-2 bg-[#0e0e10] border border-[#26262b] rounded-lg pl-4 pr-1.5 py-1.5 text-xs sm:text-sm\">\n {/* #209 R44: long quickstart commands (e.g. the `npm install -g …`\n variant) overflowed the empty-state card horizontally on phones\n because <code> defaults to white-space:pre. break-all on mobile\n lets them wrap inside the box; sm: up restores normal wrapping\n so desktop monospace lines stay clean. items-start on phones\n aligns the Copy button to the top so a wrapped 2-line command\n doesn't bottom-anchor the button. */}\n <code className=\"text-cyan-300 font-mono select-all min-w-0 break-all sm:break-normal\">{cmd}</code>\n <button\n type=\"button\"\n onClick={onCopy}\n aria-label={copied ? 'Copied' : 'Copy command'}\n className=\"shrink-0 rounded-md px-2 py-1.5 text-[11px] text-gray-500 hover:text-gray-200 hover:bg-[#1c1c1f] transition-colors\"\n >\n {copied ? (\n <span className=\"flex items-center gap-1 text-green-400\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n Copied\n </span>\n ) : (\n <span className=\"flex items-center gap-1\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\" />\n <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n </svg>\n Copy\n </span>\n )}\n </button>\n </div>\n );\n}\n","'use client';\n\nimport { useEffect, useState } from 'react';\nimport Link from 'next/link';\nimport { useParams } from 'next/navigation';\nimport ReactMarkdown from 'react-markdown';\nimport remarkGfm from 'remark-gfm';\nimport { EmptyState } from '../../components/EmptyState';\n\n/**\n * One requirement — #1633 (read-only).\n *\n * Shows description, checklist, and the activity timeline. The write\n * surface (status/owner/tags/comments) is #1634 on purpose: the read\n * shape has to be right before anyone can edit against it.\n */\n\ninterface Person { kind: 'user' | 'node'; id: string; alias?: string }\ninterface ChecklistItem { id: string; text: string; done?: boolean }\ninterface Requirement {\n id: string; seq: number; name: string; column: string; priority: string;\n due?: string; start?: string; tags?: string[];\n owner?: Person | null; agent_owner?: Person | null;\n parent_id?: string | null;\n children?: { total: number; done: number };\n description?: string; checklist?: ChecklistItem[];\n createdAt?: string; updatedAt?: string;\n external_ref?: string | null; external_url?: string | null;\n}\ninterface EventRow {\n id: string; kind: string; field?: string | null;\n actor?: Person | null;\n at?: string;\n new?: Record<string, unknown> | null;\n old?: Record<string, unknown> | null;\n}\n\nconst COLUMN_CHIP: Record<string, string> = {\n pool: 'bg-amber-500/10 text-amber-300 border-amber-500/20',\n doing: 'bg-blue-500/10 text-blue-300 border-blue-500/20',\n done: 'bg-emerald-500/10 text-emerald-300 border-emerald-500/20',\n abandoned: 'bg-gray-500/10 text-gray-400 border-gray-500/20',\n};\n\nconst COLUMN_OPTIONS: { key: string; label: string }[] = [\n { key: 'pool', label: '需求池' },\n { key: 'doing', label: '进行中' },\n { key: 'done', label: '完成' },\n { key: 'abandoned', label: '放弃' },\n];\nconst PRIORITY_OPTIONS = ['high', 'normal', 'low', 'lowest'] as const;\n\nfunction personLabel(p?: Person | null) {\n if (!p) return '—';\n return p.alias || p.id;\n}\n\nfunction describeEvent(ev: EventRow) {\n if (ev.kind === 'comment') {\n const text = typeof ev.new?.text === 'string' ? ev.new.text : '';\n return { label: 'comment', body: text };\n }\n if (ev.kind === 'created') return { label: 'created', body: '' };\n if (ev.field) {\n const from = ev.old == null ? '—' : typeof ev.old === 'object' ? JSON.stringify(ev.old) : String(ev.old);\n const to = ev.new == null ? '—' : typeof ev.new === 'object' ? JSON.stringify(ev.new) : String(ev.new);\n return { label: ev.field, body: `${from.slice(0, 120)} → ${to.slice(0, 120)}` };\n }\n return { label: ev.kind, body: '' };\n}\n\nexport default function RequirementDetailPage() {\n const params = useParams<{ id: string }>();\n const id = params?.id;\n const [req, setReq] = useState<Requirement | null>(null);\n const [events, setEvents] = useState<EventRow[]>([]);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState('');\n const [needsLogin, setNeedsLogin] = useState(false);\n // #1634 — write surface. Every mutation goes through Hub's own rules; we\n // only show its error code back to the user instead of failing silently.\n const [actionError, setActionError] = useState('');\n const [busy, setBusy] = useState(false);\n const [comment, setComment] = useState('');\n const [reloadKey, setReloadKey] = useState(0);\n\n const reload = () => setReloadKey(k => k + 1);\n\n async function sendPatch(fields: Record<string, unknown>) {\n if (!id || busy) return;\n setBusy(true); setActionError('');\n try {\n const res = await fetch(`/api/hub/requirements/${encodeURIComponent(id)}`, {\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(fields),\n });\n const data = await res.json().catch(() => ({}));\n if (!res.ok || data.ok === false) { setActionError(data?.error || `hub_${res.status}`); return; }\n reload();\n } catch (e: unknown) {\n setActionError(e instanceof Error ? e.message : 'patch failed');\n } finally { setBusy(false); }\n }\n\n async function toggleItem(itemId: string, done: boolean) {\n if (!id || busy) return;\n setBusy(true); setActionError('');\n try {\n const res = await fetch(`/api/hub/requirements/${encodeURIComponent(id)}/checklist/${encodeURIComponent(itemId)}`, {\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ done }),\n });\n const data = await res.json().catch(() => ({}));\n if (!res.ok || data.ok === false) { setActionError(data?.error || `hub_${res.status}`); return; }\n reload();\n } catch (e: unknown) {\n setActionError(e instanceof Error ? e.message : 'checklist failed');\n } finally { setBusy(false); }\n }\n\n async function submitComment() {\n if (!id || busy || !comment.trim()) return;\n setBusy(true); setActionError('');\n try {\n const res = await fetch(`/api/hub/requirements/${encodeURIComponent(id)}/comments`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ text: comment.trim() }),\n });\n const data = await res.json().catch(() => ({}));\n if (!res.ok || data.ok === false) { setActionError(data?.error || `hub_${res.status}`); return; }\n setComment('');\n reload();\n } catch (e: unknown) {\n setActionError(e instanceof Error ? e.message : 'comment failed');\n } finally { setBusy(false); }\n }\n\n useEffect(() => {\n if (!id) return;\n let alive = true;\n (async () => {\n setLoading(true); setError('');\n try {\n const [detailRes, eventsRes] = await Promise.all([\n fetch(`/api/hub/requirements/${encodeURIComponent(id)}`, { cache: 'no-store' }),\n fetch(`/api/hub/requirements/events?requirement_id=${encodeURIComponent(id)}&limit=100`, { cache: 'no-store' }),\n ]);\n if (detailRes.status === 401) { if (alive) { setNeedsLogin(true); } return; }\n const detail = await detailRes.json();\n if (!detailRes.ok || !detail.ok) { if (alive) setError(detail?.error || `hub_${detailRes.status}`); return; }\n const eventsJson = eventsRes.ok ? await eventsRes.json() : { events: [] };\n if (!alive) return;\n setReq(detail.requirement as Requirement);\n setEvents((eventsJson.events || []) as EventRow[]);\n } catch (e: unknown) {\n if (alive) setError(e instanceof Error ? e.message : 'fetch failed');\n } finally {\n if (alive) setLoading(false);\n }\n })();\n return () => { alive = false; };\n }, [id, reloadKey]);\n\n if (loading) {\n return (\n <div className=\"min-h-screen bg-[var(--bg)] p-6 text-gray-500\">\n <div className=\"mx-auto max-w-4xl space-y-3\">\n <div className=\"h-6 w-2/3 animate-pulse rounded bg-[var(--bg-elevated)]\" />\n <div className=\"h-40 animate-pulse rounded bg-[var(--bg-secondary)]\" />\n </div>\n </div>\n );\n }\n\n if (needsLogin) {\n return (\n <div className=\"min-h-screen bg-[var(--bg)] p-6\">\n <div className=\"mx-auto max-w-4xl rounded-lg border border-amber-500/20 bg-amber-500/5 px-4 py-3 text-sm text-amber-300\">\n 会话已过期,<Link href=\"/login\" className=\"underline\">重新登录</Link>。\n </div>\n </div>\n );\n }\n\n if (error || !req) {\n return (\n <div className=\"min-h-screen bg-[var(--bg)] p-6\">\n <div className=\"mx-auto max-w-4xl\">\n <div className=\"mb-4 rounded-lg border border-red-500/20 bg-red-500/5 px-4 py-3 text-sm text-red-300\">\n {error ? `读取失败:${error}` : '这条需求不存在或不可见。'}\n </div>\n <Link href=\"/requirements\" className=\"text-sm text-blue-400 hover:underline\">← 返回需求列表</Link>\n </div>\n </div>\n );\n }\n\n const checklist = req.checklist || [];\n\n return (\n <div className=\"min-h-screen bg-[var(--bg)] text-gray-200\">\n <div className=\"mx-auto max-w-4xl px-4 py-6 sm:px-6\">\n <div className=\"mb-4\">\n <Link href=\"/requirements\" className=\"text-xs text-gray-500 hover:text-gray-300\">← 需求列表</Link>\n </div>\n\n <header className=\"mb-5\">\n <div className=\"mb-2 flex flex-wrap items-center gap-2 text-[11px] text-gray-500\">\n <span className=\"tabular-nums\">#{req.seq}</span>\n <span className={`rounded border px-1.5 py-0.5 ${COLUMN_CHIP[req.column] || COLUMN_CHIP.abandoned}`}>{req.column}</span>\n <span>{req.priority}</span>\n {req.due && <span>due {String(req.due).slice(0, 10)}</span>}\n {(req.tags || []).map(t => (\n <span key={t} className=\"rounded bg-[var(--bg-elevated)] px-1.5 py-0.5 text-gray-400\">{t}</span>\n ))}\n </div>\n <h1 className=\"text-lg font-semibold text-white\">{req.name}</h1>\n <div className=\"mt-2 flex flex-wrap gap-4 text-[11px] text-gray-500\">\n <span>负责人 {personLabel(req.owner)}</span>\n <span>负责 Agent {personLabel(req.agent_owner)}</span>\n {req.children && req.children.total > 0 && <span>子卡 {req.children.done}/{req.children.total}</span>}\n {req.external_url && (\n <a href={req.external_url} target=\"_blank\" rel=\"noreferrer\" className=\"text-blue-400 hover:underline\">\n {req.external_ref || 'external'}\n </a>\n )}\n </div>\n </header>\n\n {/* #1634 — write surface. Hub keeps the rules (owner must be human,\n node tokens may not delete); this bar only sends whitelisted fields. */}\n <section className=\"mb-6 flex flex-wrap items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--bg-secondary)] px-3 py-2.5\">\n <span className=\"text-[10px] uppercase tracking-wide text-gray-600\">Status</span>\n {COLUMN_OPTIONS.map(opt => (\n <button\n key={opt.key}\n type=\"button\"\n disabled={busy || req.column === opt.key}\n onClick={() => sendPatch({ column: opt.key })}\n className={`rounded-md border px-2.5 py-1 text-xs transition-colors disabled:opacity-60 ${\n req.column === opt.key\n ? (COLUMN_CHIP[opt.key] || COLUMN_CHIP.abandoned)\n : 'border-transparent text-gray-500 hover:bg-[var(--bg-elevated)] hover:text-gray-200'\n }`}\n >\n {opt.label}\n </button>\n ))}\n <span className=\"mx-1 h-4 w-px bg-[var(--border)]\" />\n <label className=\"flex items-center gap-1.5 text-[10px] uppercase tracking-wide text-gray-600\">\n Priority\n <select\n value={req.priority}\n disabled={busy}\n onChange={e => sendPatch({ priority: e.target.value })}\n className=\"rounded border border-[var(--border)] bg-[var(--bg-secondary)] px-1.5 py-1 text-xs normal-case text-gray-200\"\n >\n {PRIORITY_OPTIONS.map(p => <option key={p} value={p}>{p}</option>)}\n </select>\n </label>\n <label className=\"flex items-center gap-1.5 text-[10px] uppercase tracking-wide text-gray-600\">\n Due\n <input\n type=\"date\"\n value={req.due ? String(req.due).slice(0, 10) : ''}\n disabled={busy}\n onChange={e => sendPatch({ due: e.target.value })}\n className=\"rounded border border-[var(--border)] bg-[var(--bg-secondary)] px-1.5 py-1 text-xs normal-case text-gray-200\"\n />\n </label>\n {busy && <span className=\"text-[11px] text-gray-500\">saving…</span>}\n {actionError && <span className=\"text-[11px] text-red-400\">{actionError}</span>}\n </section>\n\n <section className=\"mb-6 rounded-xl border border-[var(--border)] bg-[var(--bg-secondary)] p-4\">\n <h2 className=\"mb-2 text-xs uppercase tracking-wide text-gray-500\">Description</h2>\n {req.description ? (\n <div className=\"prose prose-invert max-w-none prose-sm prose-pre:bg-[var(--bg)] prose-pre:border prose-pre:border-[var(--border)]\">\n <ReactMarkdown remarkPlugins={[remarkGfm]}>{req.description}</ReactMarkdown>\n </div>\n ) : (\n <p className=\"text-sm text-gray-600\">(没有描述)</p>\n )}\n </section>\n\n <section className=\"mb-6 rounded-xl border border-[var(--border)] bg-[var(--bg-secondary)] p-4\">\n <h2 className=\"mb-2 text-xs uppercase tracking-wide text-gray-500\">\n Checklist {checklist.length > 0 && <span className=\"ml-1 text-gray-600\">{checklist.filter(c => c.done).length}/{checklist.length}</span>}\n </h2>\n {checklist.length === 0 ? (\n <p className=\"text-sm text-gray-600\">(没有检查项)</p>\n ) : (\n <ul className=\"space-y-1.5\">\n {checklist.map(item => (\n <li key={item.id}>\n <button\n type=\"button\"\n disabled={busy}\n onClick={() => toggleItem(item.id, !item.done)}\n className=\"flex items-start gap-2 text-left text-sm hover:opacity-80 disabled:opacity-60\"\n >\n <span aria-hidden className={item.done ? 'text-emerald-400' : 'text-gray-600'}>{item.done ? '✓' : '○'}</span>\n <span className={item.done ? 'text-gray-500 line-through' : 'text-gray-200'}>{item.text}</span>\n </button>\n </li>\n ))}\n </ul>\n )}\n </section>\n\n <section className=\"rounded-xl border border-[var(--border)] bg-[var(--bg-secondary)] p-4\">\n <h2 className=\"mb-2 text-xs uppercase tracking-wide text-gray-500\">Activity</h2>\n {events.length === 0 ? (\n <EmptyState variant=\"generic\" compact title=\"还没有动态\" sub=\"状态变更和评论会出现在这里。\" />\n ) : (\n <ul className=\"space-y-2\">\n {events.map(ev => {\n const d = describeEvent(ev);\n return (\n <li key={ev.id} className=\"rounded-lg border border-[var(--border)] bg-[var(--bg-secondary)] px-3 py-2\">\n <div className=\"flex flex-wrap items-center gap-2 text-[11px] text-gray-500\">\n <span className=\"text-gray-300\">{personLabel(ev.actor)}</span>\n <span className=\"rounded bg-[var(--bg-elevated)] px-1.5 py-0.5\">{d.label}</span>\n {ev.at && <span>{String(ev.at).replace('T', ' ').slice(0, 16)}</span>}\n </div>\n {d.body && <p className=\"mt-1 whitespace-pre-wrap break-words text-sm text-gray-300\">{d.body}</p>}\n </li>\n );\n })}\n </ul>\n )}\n\n <div className=\"mt-3 border-t border-[var(--border)] pt-3\">\n <textarea\n value={comment}\n onChange={e => setComment(e.target.value)}\n rows={2}\n placeholder=\"写一条进展或评论…(Ctrl/⌘+Enter 发送)\"\n className=\"w-full resize-y rounded-lg border border-[var(--border)] bg-[var(--bg-secondary)] px-2.5 py-2 text-sm text-gray-200 placeholder-gray-700 focus:border-blue-500/40 focus:outline-none\"\n onKeyDown={e => { if ((e.metaKey || e.ctrlKey) && e.key === 'Enter') submitComment(); }}\n />\n <div className=\"mt-2 flex items-center gap-2\">\n <button\n type=\"button\"\n disabled={busy || !comment.trim()}\n onClick={submitComment}\n className=\"rounded-lg border border-blue-500/30 bg-blue-500/10 px-3 py-1.5 text-xs text-blue-300 disabled:opacity-50\"\n >\n Add comment\n </button>\n {actionError && <span className=\"text-[11px] text-red-400\">{actionError}</span>}\n </div>\n </div>\n </section>\n </div>\n </div>\n );\n}\n"],"names":["DEFAULTS","nodes","title","sub","tasks","messages","logs","tokens","networks","generic","Glyph","variant","size","s","width","height","baseProps","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","viewBox","cx","cy","r","x1","y1","x2","y2","strokeDasharray","opacity","x","y","rx","d","ry","EmptyState","cta","compact","headline","subcopy","iconSize","className","role","href","label","onClick","EmptyCard","children","NodesEmptyState","hint","taskHistoryCount","global_count","toLocaleString","QuickstartCommand","cmd","target","rel","copied","setCopied","onCopy","navigator","clipboard","writeText","setTimeout","type","COLUMN_CHIP","pool","doing","done","abandoned","COLUMN_OPTIONS","key","PRIORITY_OPTIONS","personLabel","p","alias","id","describeEvent","ev","kind","text","new","body","field","from","old","JSON","stringify","String","to","slice","RequirementDetailPage","params","req","setReq","events","setEvents","loading","setLoading","error","setError","needsLogin","setNeedsLogin","actionError","setActionError","busy","setBusy","comment","setComment","reloadKey","setReloadKey","reload","k","sendPatch","fields","res","fetch","encodeURIComponent","method","headers","data","json","catch","ok","status","e","Error","message","toggleItem","itemId","submitComment","trim","alive","detailRes","eventsRes","Promise","all","cache","detail","eventsJson","requirement","checklist","seq","column","priority","due","tags","map","t","name","owner","agent_owner","total","external_url","external_ref","opt","disabled","value","onChange","description","remarkPlugins","length","filter","c","item","actor","at","replace","rows","placeholder","onKeyDown","metaKey","ctrlKey"],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},26758,a=>{a.v("/_next/static/media/favicon.2vob68tjqpejf.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},38872,a=>{"use strict";let b={src:a.i(26758).default,width:256,height:256};a.s(["default",0,b])},10955,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/org/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/org/page.tsx","default")},19728,a=>{"use strict";var b=a.i(10955);a.n(b)},36587,function(a){a.n(a.i(19728))},22826,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(38872)),f=(0,b.instrumentModuleGetter)(()=>a.r(70864)),g=(0,b.instrumentModuleGetter)(()=>a.r(43619)),h=(0,b.instrumentModuleGetter)(()=>a.r(13718)),i=(0,b.instrumentModuleGetter)(()=>a.r(18198)),j=(0,b.instrumentModuleGetter)(()=>a.r(62212)),k=["",{children:["org",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(36587)),"[project]/app/org/page.tsx"]},[]]},{metadata:{}},[]]},{metadata:{icon:[async()=>{let a=(0,d.interopDefault)(await e());return[{url:`/favicon.ico?${a.src.split("/").splice(-1)[0]}`,sizes:`${a.width}x${a.height}`,type:"image/x-icon"}]}],manifest:"/manifest.webmanifest"},layout:[f,"[project]/app/layout.tsx"],"not-found":[g,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[h,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[i,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[j,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],l=a.r.bind(a),m=a.l.bind(a),n=(0,c.createAppPageEntrypoint)({tree:k,page:"/org/page",pathname:"/org",require:l,loadChunk:m,interopDefault:d.interopDefault}),o=n.__next_app__,p=n.routeModule,q=n.handler;a.s(["__next_app__",0,o,"handler",0,q,"routeModule",0,p],19357),a.i(19357);var r=a.i(22922);a.s(["ClientPageRoot",()=>r.ClientPageRoot,"ClientSegmentRoot",()=>r.ClientSegmentRoot,"Fragment",()=>r.Fragment,"HTTPAccessFallbackBoundary",()=>r.HTTPAccessFallbackBoundary,"InstantValidation",()=>r.InstantValidation,"LayoutRouter",()=>r.LayoutRouter,"LoadingBoundaryProvider",()=>r.LoadingBoundaryProvider,"Postpone",()=>r.Postpone,"RenderFromTemplateContext",()=>r.RenderFromTemplateContext,"RootLayoutBoundary",()=>r.RootLayoutBoundary,"SegmentViewNode",()=>r.SegmentViewNode,"SegmentViewStateNode",()=>r.SegmentViewStateNode,"__next_app__",0,o,"captureOwnerStack",()=>r.captureOwnerStack,"collectPrefetchHints",()=>r.collectPrefetchHints,"collectSegmentData",()=>r.collectSegmentData,"createElement",()=>r.createElement,"createMetadataComponents",()=>r.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>r.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>r.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>r.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>r.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>r.createTemporaryReferenceSet,"decodeAction",()=>r.decodeAction,"decodeFormState",()=>r.decodeFormState,"decodeReply",()=>r.decodeReply,"handler",0,q,"isEmptyHTMLPrelude",()=>r.isEmptyHTMLPrelude,"patchFetch",()=>r.patchFetch,"preconnect",()=>r.preconnect,"preloadFont",()=>r.preloadFont,"preloadStyle",()=>r.preloadStyle,"prerender",()=>r.prerender,"prerenderToNodeStream",()=>r.prerenderToNodeStream,"renderToPipeableStream",()=>r.renderToPipeableStream,"renderToReadableStream",()=>r.renderToReadableStream,"routeModule",0,p,"serverHooks",()=>r.serverHooks,"taintObjectReference",()=>r.taintObjectReference],22826)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__09n7eih._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../app/favicon.ico.mjs%20%28structured%20image%20object%29","../../../../app/org/page.tsx/__nextjs-internal-proxy.mjs","../../../../node_modules/next/dist/esm/build/templates/app-page.js%3Fpage%3D/org/page"],"sourcesContent":["import src from \"IMAGE\";\nexport default { src, width: 256, height: 256 }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/app/org/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/app/org/page.tsx\",\n \"default\",\n);\n","import { instrumentModuleGetter } from \"next/dist/server/app-render/module-loading/instrument-module-getter\";\nconst __TURBOPACK__icon__$23$0__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"METADATA_0\"));\nconst __TURBOPACK__layout__$23$1__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_1\"));\nconst __TURBOPACK__not$2d$found__$23$2__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_2\"));\nconst __TURBOPACK__forbidden__$23$3__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_3\"));\nconst __TURBOPACK__unauthorized__$23$4__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_4\"));\nconst __TURBOPACK__global$2d$error__$23$5__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_5\"));\nconst __TURBOPACK__page__$23$6__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_6\"));\nimport { createAppPageEntrypoint } from \"next/dist/esm/build/templates/app-page-runtime\";\nimport { interopDefault } from \"next/dist/esm/server/app-render/interop-default\" with {\n 'turbopack-transition': 'next-server-utility'\n};\nconst tree = [\"\", {\n\"children\": [\"org\", {\n\"children\": [\"__PAGE__\", {\n}, {\n metadata: { }, \"page\": [__TURBOPACK__page__$23$6__, \"[project]/app/org/page.tsx\"],\n}, []],\n}, {\n metadata: { },}, []],\n}, {\n metadata: { icon: [\n (async () => {\n const mod = interopDefault(await __TURBOPACK__icon__$23$0__());\n return [{\n url: \"/favicon.ico\" + `?${mod.src.split(\"/\").splice(-1)[0]}`,\n sizes: `${mod.width}x${mod.height}`,\n type: `image/x-icon`,\n }];\n }),\n ],\n manifest: \"/manifest.webmanifest\",\n }, \"layout\": [__TURBOPACK__layout__$23$1__, \"[project]/app/layout.tsx\"],\n \"not-found\": [__TURBOPACK__not$2d$found__$23$2__, \"[project]/node_modules/next/dist/client/components/builtin/not-found.js\"],\n \"forbidden\": [__TURBOPACK__forbidden__$23$3__, \"[project]/node_modules/next/dist/client/components/builtin/forbidden.js\"],\n \"unauthorized\": [__TURBOPACK__unauthorized__$23$4__, \"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js\"],\n \"global-error\": [__TURBOPACK__global$2d$error__$23$5__, \"[project]/node_modules/next/dist/client/components/builtin/global-error.js\"],\n}, []]\nconst __next_app_require__ = __turbopack_context__.r.bind(__turbopack_context__)\nconst __next_app_load_chunk__ = __turbopack_context__.l.bind(__turbopack_context__)\nconst entrypoint = createAppPageEntrypoint({\n tree,\n page: \"/org/page\",\n pathname: \"/org\",\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__,\n interopDefault\n});\nexport const __next_app__ = entrypoint.__next_app__;\nexport const routeModule = entrypoint.routeModule;\nexport const handler = entrypoint.handler;\nexport * from \"next/dist/esm/server/app-render/entry-base\" with {\n 'turbopack-transition': 'next-server-utility'\n};\n\n//# sourceMappingURL=app-page.js.map\n"],"names":["src","width","height","Error","icon #0","layout #1","not-found #2","forbidden #3","unauthorized #4","global-error #5","page #6","tree","metadata","icon","mod","url","split","splice","sizes","type","manifest","__next_app_require__","__turbopack_context__","r","bind","__next_app_load_chunk__","l","entrypoint","page","pathname","require","loadChunk","interopDefault","__next_app__","routeModule","handler"],"mappings":"8SACe,CAAEA,IAAAA,AADjB,EAAA,CAAA,CAAA,OACiBA,OAAG,CAAEC,MAAO,IAAKC,OAAQ,GAAI,4ECC/B,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIC,MAAM,8PAAgQ,EAC7R,6BACA,sHCLJ,IAAA,EAAA,EAAA,CAAA,CAAA,OAQA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OA0CA,EAAA,CAAA,CAAA,OAlDA,IAAMC,EAA6B,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QACpDC,EAA+B,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QACtDC,EAAqC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QAC5DC,EAAkC,CAAA,EAAA,EAAA,sBAAsB,AAAtB,EAAuB,IAAA,EAAA,CAAA,CAAA,QACzDC,EAAqC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QAC5DC,EAAwC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QAM/DE,EAAO,CAAC,GAAI,CAClB,SAAY,CAAC,MAAO,CACpB,SAAY,CAAC,WAAY,CACzB,EAAG,CACDC,SAAU,CAAG,EAAI,KAAQ,CATQ,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QASF,6BAA6B,AACrF,EAAG,EAAE,CAAC,AACN,EAAG,CACDA,SAAU,CAAG,CAAE,EAAG,EAAE,CAAC,AACvB,EAAG,CACDA,SAAU,CAAKC,KAAM,CAChB,UACC,IAAMC,EAAM,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,MAAMV,KACjC,MAAO,CAAC,CACNW,IAAsB,CAAjB,AAAkB,aAAC,EAAED,EAAId,GAAG,CAACgB,KAAK,CAAC,KAAKC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA,CAAE,CAC5DC,MAAO,CAAA,EAAGJ,EAAIb,KAAK,CAAC,CAAC,EAAEa,EAAIZ,MAAM,CAAA,CAAE,CACnCiB,KAAM,CAAC,YAAY,CAAC,AACtB,EAAE,AACJ,EACD,CACDC,SAAU,uBACZ,EAAI,OAAU,CAACf,EAA8B,2BAA2B,CACxE,YAAa,CAACC,EAAoC,0EAA0E,CAC5H,UAAa,CAACC,EAAiC,0EAA0E,CACzH,aAAgB,CAACC,EAAoC,6EAA6E,CAClI,eAAgB,CAACC,EAAuC,6EAA6E,AACvI,EAAG,EAAE,CAAC,CACAY,EAAuBC,EAAsBC,CAAC,CAACC,IAAI,CAACF,GACpDG,EAA0BH,EAAsBI,CAAC,CAACF,IAAI,CAACF,GACvDK,EAAa,CAAA,EAAA,EAAA,uBAAuB,AAAvB,EAAwB,MACvChB,EACAiB,KAAM,YACNC,SAAU,OACVC,QAAST,EACTU,UAAWN,EACXO,eAAAA,EAAAA,cAAc,AAClB,GACaC,EAAeN,EAAWM,YAAY,CACtCC,EAAcP,EAAWO,WAAW,CACpCC,EAAUR,EAAWQ,OAAO","ignoreList":[1,2]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},26758,a=>{a.v("/_next/static/media/favicon.2vob68tjqpejf.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},38872,a=>{"use strict";let b={src:a.i(26758).default,width:256,height:256};a.s(["default",0,b])},22522,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/requirements/[id]/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/requirements/[id]/page.tsx","default")},32482,a=>{"use strict";var b=a.i(22522);a.n(b)},6524,function(a){a.n(a.i(32482))},1330,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(38872)),f=(0,b.instrumentModuleGetter)(()=>a.r(70864)),g=(0,b.instrumentModuleGetter)(()=>a.r(43619)),h=(0,b.instrumentModuleGetter)(()=>a.r(13718)),i=(0,b.instrumentModuleGetter)(()=>a.r(18198)),j=(0,b.instrumentModuleGetter)(()=>a.r(62212)),k=["",{children:["requirements",{children:["[id]",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(6524)),"[project]/app/requirements/[id]/page.tsx"]},[]]},{metadata:{}},[]]},{metadata:{}},[]]},{metadata:{icon:[async()=>{let a=(0,d.interopDefault)(await e());return[{url:`/favicon.ico?${a.src.split("/").splice(-1)[0]}`,sizes:`${a.width}x${a.height}`,type:"image/x-icon"}]}],manifest:"/manifest.webmanifest"},layout:[f,"[project]/app/layout.tsx"],"not-found":[g,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[h,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[i,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[j,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],l=a.r.bind(a),m=a.l.bind(a),n=(0,c.createAppPageEntrypoint)({tree:k,page:"/requirements/[id]/page",pathname:"/requirements/[id]",require:l,loadChunk:m,interopDefault:d.interopDefault}),o=n.__next_app__,p=n.routeModule,q=n.handler;a.s(["__next_app__",0,o,"handler",0,q,"routeModule",0,p],26119),a.i(26119);var r=a.i(22922);a.s(["ClientPageRoot",()=>r.ClientPageRoot,"ClientSegmentRoot",()=>r.ClientSegmentRoot,"Fragment",()=>r.Fragment,"HTTPAccessFallbackBoundary",()=>r.HTTPAccessFallbackBoundary,"InstantValidation",()=>r.InstantValidation,"LayoutRouter",()=>r.LayoutRouter,"LoadingBoundaryProvider",()=>r.LoadingBoundaryProvider,"Postpone",()=>r.Postpone,"RenderFromTemplateContext",()=>r.RenderFromTemplateContext,"RootLayoutBoundary",()=>r.RootLayoutBoundary,"SegmentViewNode",()=>r.SegmentViewNode,"SegmentViewStateNode",()=>r.SegmentViewStateNode,"__next_app__",0,o,"captureOwnerStack",()=>r.captureOwnerStack,"collectPrefetchHints",()=>r.collectPrefetchHints,"collectSegmentData",()=>r.collectSegmentData,"createElement",()=>r.createElement,"createMetadataComponents",()=>r.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>r.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>r.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>r.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>r.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>r.createTemporaryReferenceSet,"decodeAction",()=>r.decodeAction,"decodeFormState",()=>r.decodeFormState,"decodeReply",()=>r.decodeReply,"handler",0,q,"isEmptyHTMLPrelude",()=>r.isEmptyHTMLPrelude,"patchFetch",()=>r.patchFetch,"preconnect",()=>r.preconnect,"preloadFont",()=>r.preloadFont,"preloadStyle",()=>r.preloadStyle,"prerender",()=>r.prerender,"prerenderToNodeStream",()=>r.prerenderToNodeStream,"renderToPipeableStream",()=>r.renderToPipeableStream,"renderToReadableStream",()=>r.renderToReadableStream,"routeModule",0,p,"serverHooks",()=>r.serverHooks,"taintObjectReference",()=>r.taintObjectReference],1330)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__0ol09h3._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../app/favicon.ico.mjs%20%28structured%20image%20object%29","../../../../app/requirements/%5Bid%5D/page.tsx/__nextjs-internal-proxy.mjs","../../../../node_modules/next/dist/esm/build/templates/app-page.js%3Fpage%3D/requirements/%5Bid%5D/page"],"sourcesContent":["import src from \"IMAGE\";\nexport default { src, width: 256, height: 256 }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/app/requirements/[id]/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/app/requirements/[id]/page.tsx\",\n \"default\",\n);\n","import { instrumentModuleGetter } from \"next/dist/server/app-render/module-loading/instrument-module-getter\";\nconst __TURBOPACK__icon__$23$0__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"METADATA_0\"));\nconst __TURBOPACK__layout__$23$1__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_1\"));\nconst __TURBOPACK__not$2d$found__$23$2__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_2\"));\nconst __TURBOPACK__forbidden__$23$3__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_3\"));\nconst __TURBOPACK__unauthorized__$23$4__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_4\"));\nconst __TURBOPACK__global$2d$error__$23$5__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_5\"));\nconst __TURBOPACK__page__$23$6__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_6\"));\nimport { createAppPageEntrypoint } from \"next/dist/esm/build/templates/app-page-runtime\";\nimport { interopDefault } from \"next/dist/esm/server/app-render/interop-default\" with {\n 'turbopack-transition': 'next-server-utility'\n};\nconst tree = [\"\", {\n\"children\": [\"requirements\", {\n\"children\": [\"[id]\", {\n\"children\": [\"__PAGE__\", {\n}, {\n metadata: { }, \"page\": [__TURBOPACK__page__$23$6__, \"[project]/app/requirements/[id]/page.tsx\"],\n}, []],\n}, {\n metadata: { },}, []],\n}, {\n metadata: { },}, []],\n}, {\n metadata: { icon: [\n (async () => {\n const mod = interopDefault(await __TURBOPACK__icon__$23$0__());\n return [{\n url: \"/favicon.ico\" + `?${mod.src.split(\"/\").splice(-1)[0]}`,\n sizes: `${mod.width}x${mod.height}`,\n type: `image/x-icon`,\n }];\n }),\n ],\n manifest: \"/manifest.webmanifest\",\n }, \"layout\": [__TURBOPACK__layout__$23$1__, \"[project]/app/layout.tsx\"],\n \"not-found\": [__TURBOPACK__not$2d$found__$23$2__, \"[project]/node_modules/next/dist/client/components/builtin/not-found.js\"],\n \"forbidden\": [__TURBOPACK__forbidden__$23$3__, \"[project]/node_modules/next/dist/client/components/builtin/forbidden.js\"],\n \"unauthorized\": [__TURBOPACK__unauthorized__$23$4__, \"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js\"],\n \"global-error\": [__TURBOPACK__global$2d$error__$23$5__, \"[project]/node_modules/next/dist/client/components/builtin/global-error.js\"],\n}, []]\nconst __next_app_require__ = __turbopack_context__.r.bind(__turbopack_context__)\nconst __next_app_load_chunk__ = __turbopack_context__.l.bind(__turbopack_context__)\nconst entrypoint = createAppPageEntrypoint({\n tree,\n page: \"/requirements/[id]/page\",\n pathname: \"/requirements/[id]\",\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__,\n interopDefault\n});\nexport const __next_app__ = entrypoint.__next_app__;\nexport const routeModule = entrypoint.routeModule;\nexport const handler = entrypoint.handler;\nexport * from \"next/dist/esm/server/app-render/entry-base\" with {\n 'turbopack-transition': 'next-server-utility'\n};\n\n//# sourceMappingURL=app-page.js.map\n"],"names":["src","width","height","Error","icon #0","layout #1","not-found #2","forbidden #3","unauthorized #4","global-error #5","page #6","tree","metadata","icon","mod","url","split","splice","sizes","type","manifest","__next_app_require__","__turbopack_context__","r","bind","__next_app_load_chunk__","l","entrypoint","page","pathname","require","loadChunk","interopDefault","__next_app__","routeModule","handler"],"mappings":"8SACe,CAAEA,IAAAA,AADjB,EAAA,CAAA,CAAA,OACiBA,OAAG,CAAEC,MAAO,IAAKC,OAAQ,GAAI,4ECC/B,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIC,MAAM,4QAA8Q,EAC3S,2CACA,oHCLJ,IAAA,EAAA,EAAA,CAAA,CAAA,OAQA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OA6CA,EAAA,CAAA,CAAA,OArDA,IAAMC,EAA6B,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QACpDC,EAA+B,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QACtDC,EAAqC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QAC5DC,EAAkC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QACzDC,EAAqC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QAC5DC,EAAwC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QAM/DE,EAAO,CAAC,GAAI,CAClB,SAAY,CAAC,eAAgB,CAC7B,SAAY,CAAC,OAAQ,CACrB,SAAY,CAAC,WAAY,CACzB,EAAG,CACDC,SAAU,CAAG,EAAI,KAAQ,CAVQ,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,OAUF,2CAA2C,AACnG,EAAG,EAAE,CAAC,AACN,EAAG,CACDA,SAAU,CAAG,CAAE,EAAG,EAAE,CAAC,AACvB,EAAG,CACDA,SAAU,CAAG,CAAE,EAAG,EAAE,CAAC,AACvB,EAAG,CACDA,SAAU,CAAKC,KAAM,CAChB,UACC,IAAMC,EAAM,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,MAAMV,KACjC,MAAO,CAAC,CACNW,IAAsB,CAAjB,AAAkB,aAAC,EAAED,EAAId,GAAG,CAACgB,KAAK,CAAC,KAAKC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA,CAAE,CAC5DC,MAAO,CAAA,EAAGJ,EAAIb,KAAK,CAAC,CAAC,EAAEa,EAAIZ,MAAM,CAAA,CAAE,CACnCiB,KAAM,CAAC,YAAY,CACrB,AADsB,EACpB,AACJ,EACD,CACDC,SAAU,uBACZ,EAAI,OAAU,CAACf,EAA8B,2BAA2B,CACxE,YAAa,CAACC,EAAoC,0EAA0E,CAC5H,UAAa,CAACC,EAAiC,0EAA0E,CACzH,aAAgB,CAACC,EAAoC,6EAA6E,CAClI,eAAgB,CAACC,EAAuC,6EAA6E,AACvI,EAAG,EAAE,CAAC,CACAY,EAAuBC,EAAsBC,CAAC,CAACC,IAAI,CAACF,GACpDG,EAA0BH,EAAsBI,CAAC,CAACF,IAAI,CAACF,GACvDK,EAAa,CAAA,EAAA,EAAA,uBAAA,AAAuB,EAAC,MACvChB,EACAiB,KAAM,0BACNC,SAAU,qBACVC,QAAST,EACTU,UAAWN,EACXO,eAAAA,EAAAA,cAAc,AAClB,GACaC,EAAeN,EAAWM,YAAY,CACtCC,EAAcP,EAAWO,WAAW,CACpCC,EAAUR,EAAWQ,OAAO","ignoreList":[1,2]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},26758,a=>{a.v("/_next/static/media/favicon.2vob68tjqpejf.ico"+(globalThis.NEXT_CLIENT_ASSET_SUFFIX||""))},38872,a=>{"use strict";let b={src:a.i(26758).default,width:256,height:256};a.s(["default",0,b])},12048,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/requirements/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/requirements/page.tsx","default")},28683,a=>{"use strict";var b=a.i(12048);a.n(b)},18291,function(a){a.n(a.i(28683))},58138,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(38872)),f=(0,b.instrumentModuleGetter)(()=>a.r(70864)),g=(0,b.instrumentModuleGetter)(()=>a.r(43619)),h=(0,b.instrumentModuleGetter)(()=>a.r(13718)),i=(0,b.instrumentModuleGetter)(()=>a.r(18198)),j=(0,b.instrumentModuleGetter)(()=>a.r(62212)),k=["",{children:["requirements",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(18291)),"[project]/app/requirements/page.tsx"]},[]]},{metadata:{}},[]]},{metadata:{icon:[async()=>{let a=(0,d.interopDefault)(await e());return[{url:`/favicon.ico?${a.src.split("/").splice(-1)[0]}`,sizes:`${a.width}x${a.height}`,type:"image/x-icon"}]}],manifest:"/manifest.webmanifest"},layout:[f,"[project]/app/layout.tsx"],"not-found":[g,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[h,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[i,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[j,"[project]/node_modules/next/dist/client/components/builtin/global-error.js"]},[]],l=a.r.bind(a),m=a.l.bind(a),n=(0,c.createAppPageEntrypoint)({tree:k,page:"/requirements/page",pathname:"/requirements",require:l,loadChunk:m,interopDefault:d.interopDefault}),o=n.__next_app__,p=n.routeModule,q=n.handler;a.s(["__next_app__",0,o,"handler",0,q,"routeModule",0,p],6514),a.i(6514);var r=a.i(22922);a.s(["ClientPageRoot",()=>r.ClientPageRoot,"ClientSegmentRoot",()=>r.ClientSegmentRoot,"Fragment",()=>r.Fragment,"HTTPAccessFallbackBoundary",()=>r.HTTPAccessFallbackBoundary,"InstantValidation",()=>r.InstantValidation,"LayoutRouter",()=>r.LayoutRouter,"LoadingBoundaryProvider",()=>r.LoadingBoundaryProvider,"Postpone",()=>r.Postpone,"RenderFromTemplateContext",()=>r.RenderFromTemplateContext,"RootLayoutBoundary",()=>r.RootLayoutBoundary,"SegmentViewNode",()=>r.SegmentViewNode,"SegmentViewStateNode",()=>r.SegmentViewStateNode,"__next_app__",0,o,"captureOwnerStack",()=>r.captureOwnerStack,"collectPrefetchHints",()=>r.collectPrefetchHints,"collectSegmentData",()=>r.collectSegmentData,"createElement",()=>r.createElement,"createMetadataComponents",()=>r.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>r.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>r.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>r.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>r.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>r.createTemporaryReferenceSet,"decodeAction",()=>r.decodeAction,"decodeFormState",()=>r.decodeFormState,"decodeReply",()=>r.decodeReply,"handler",0,q,"isEmptyHTMLPrelude",()=>r.isEmptyHTMLPrelude,"patchFetch",()=>r.patchFetch,"preconnect",()=>r.preconnect,"preloadFont",()=>r.preloadFont,"preloadStyle",()=>r.preloadStyle,"prerender",()=>r.prerender,"prerenderToNodeStream",()=>r.prerenderToNodeStream,"renderToPipeableStream",()=>r.renderToPipeableStream,"renderToReadableStream",()=>r.renderToReadableStream,"routeModule",0,p,"serverHooks",()=>r.serverHooks,"taintObjectReference",()=>r.taintObjectReference],58138)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=%5Broot-of-the-server%5D__14k36ti._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../app/favicon.ico.mjs%20%28structured%20image%20object%29","../../../../app/requirements/page.tsx/__nextjs-internal-proxy.mjs","../../../../node_modules/next/dist/esm/build/templates/app-page.js%3Fpage%3D/requirements/page"],"sourcesContent":["import src from \"IMAGE\";\nexport default { src, width: 256, height: 256 }\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/app/requirements/page.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/app/requirements/page.tsx\",\n \"default\",\n);\n","import { instrumentModuleGetter } from \"next/dist/server/app-render/module-loading/instrument-module-getter\";\nconst __TURBOPACK__icon__$23$0__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"METADATA_0\"));\nconst __TURBOPACK__layout__$23$1__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_1\"));\nconst __TURBOPACK__not$2d$found__$23$2__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_2\"));\nconst __TURBOPACK__forbidden__$23$3__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_3\"));\nconst __TURBOPACK__unauthorized__$23$4__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_4\"));\nconst __TURBOPACK__global$2d$error__$23$5__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_5\"));\nconst __TURBOPACK__page__$23$6__ = instrumentModuleGetter(() => require(/*turbopackChunkingType: shared*/\"MODULE_6\"));\nimport { createAppPageEntrypoint } from \"next/dist/esm/build/templates/app-page-runtime\";\nimport { interopDefault } from \"next/dist/esm/server/app-render/interop-default\" with {\n 'turbopack-transition': 'next-server-utility'\n};\nconst tree = [\"\", {\n\"children\": [\"requirements\", {\n\"children\": [\"__PAGE__\", {\n}, {\n metadata: { }, \"page\": [__TURBOPACK__page__$23$6__, \"[project]/app/requirements/page.tsx\"],\n}, []],\n}, {\n metadata: { },}, []],\n}, {\n metadata: { icon: [\n (async () => {\n const mod = interopDefault(await __TURBOPACK__icon__$23$0__());\n return [{\n url: \"/favicon.ico\" + `?${mod.src.split(\"/\").splice(-1)[0]}`,\n sizes: `${mod.width}x${mod.height}`,\n type: `image/x-icon`,\n }];\n }),\n ],\n manifest: \"/manifest.webmanifest\",\n }, \"layout\": [__TURBOPACK__layout__$23$1__, \"[project]/app/layout.tsx\"],\n \"not-found\": [__TURBOPACK__not$2d$found__$23$2__, \"[project]/node_modules/next/dist/client/components/builtin/not-found.js\"],\n \"forbidden\": [__TURBOPACK__forbidden__$23$3__, \"[project]/node_modules/next/dist/client/components/builtin/forbidden.js\"],\n \"unauthorized\": [__TURBOPACK__unauthorized__$23$4__, \"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js\"],\n \"global-error\": [__TURBOPACK__global$2d$error__$23$5__, \"[project]/node_modules/next/dist/client/components/builtin/global-error.js\"],\n}, []]\nconst __next_app_require__ = __turbopack_context__.r.bind(__turbopack_context__)\nconst __next_app_load_chunk__ = __turbopack_context__.l.bind(__turbopack_context__)\nconst entrypoint = createAppPageEntrypoint({\n tree,\n page: \"/requirements/page\",\n pathname: \"/requirements\",\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__,\n interopDefault\n});\nexport const __next_app__ = entrypoint.__next_app__;\nexport const routeModule = entrypoint.routeModule;\nexport const handler = entrypoint.handler;\nexport * from \"next/dist/esm/server/app-render/entry-base\" with {\n 'turbopack-transition': 'next-server-utility'\n};\n\n//# sourceMappingURL=app-page.js.map\n"],"names":["src","width","height","Error","icon #0","layout #1","not-found #2","forbidden #3","unauthorized #4","global-error #5","page #6","tree","metadata","icon","mod","url","split","splice","sizes","type","manifest","__next_app_require__","__turbopack_context__","r","bind","__next_app_load_chunk__","l","entrypoint","page","pathname","require","loadChunk","interopDefault","__next_app__","routeModule","handler"],"mappings":"8SACe,CAAEA,IAAAA,AADjB,EAAA,CAAA,CAAA,OACiBA,OAAG,CAAEC,MAAO,IAAKC,OAAQ,GAAI,4ECC/B,CAAA,EADf,AACe,EADf,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAIC,MAAM,uQAAyQ,EACtS,sCACA,sHCLJ,IAAA,EAAA,EAAA,CAAA,CAAA,OAQA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OA0CA,EAAA,CAAA,CAAA,OAlDA,IAAMC,EAA6B,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QACpDC,EAA+B,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QACtDC,EAAqC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QAC5DC,EAAkC,CAAA,EAAA,EAAA,sBAAsB,AAAtB,EAAuB,IAAA,EAAA,CAAA,CAAA,QACzDC,EAAqC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QAC5DC,EAAwC,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QAM/DE,EAAO,CAAC,GAAI,CAClB,SAAY,CAAC,eAAgB,CAC7B,SAAY,CAAC,WAAY,CACzB,EAAG,CACDC,SAAU,CAAG,EAAI,KAAQ,CATQ,CAAA,EAAA,EAAA,sBAAA,AAAsB,EAAC,IAAA,EAAA,CAAA,CAAA,QASF,sCAAsC,AAC9F,EAAG,EAAE,CAAC,AACN,EAAG,CACDA,SAAU,CAAG,CAAE,EAAG,EAAE,CAAC,AACvB,EAAG,CACDA,SAAU,CAAKC,KAAM,CAChB,UACC,IAAMC,EAAM,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,MAAMV,KACjC,MAAO,CAAC,CACNW,IAAsB,CAAjB,AAAkB,aAAC,EAAED,EAAId,GAAG,CAACgB,KAAK,CAAC,KAAKC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA,CAAE,CAC5DC,MAAO,CAAA,EAAGJ,EAAIb,KAAK,CAAC,CAAC,EAAEa,EAAIZ,MAAM,CAAA,CAAE,CACnCiB,KAAM,CAAC,YAAY,CAAC,AACtB,EAAE,AACJ,EACD,CACDC,SAAU,uBACZ,EAAI,OAAU,CAACf,EAA8B,2BAA2B,CACxE,YAAa,CAACC,EAAoC,0EAA0E,CAC5H,UAAa,CAACC,EAAiC,0EAA0E,CACzH,aAAgB,CAACC,EAAoC,6EAA6E,CAClI,eAAgB,CAACC,EAAuC,6EAA6E,AACvI,EAAG,EAAE,CAAC,CACAY,EAAuBC,EAAsBC,CAAC,CAACC,IAAI,CAACF,GACpDG,EAA0BH,EAAsBI,CAAC,CAACF,IAAI,CAACF,GACvDK,EAAa,CAAA,EAAA,EAAA,uBAAuB,AAAvB,EAAwB,MACvChB,EACAiB,KAAM,qBACNC,SAAU,gBACVC,QAAST,EACTU,UAAWN,EACXO,eAAAA,EAAAA,cAAc,AAClB,GACaC,EAAeN,EAAWM,YAAY,CACtCC,EAAcP,EAAWO,WAAW,CACpCC,EAAUR,EAAWQ,OAAO","ignoreList":[1,2]}
|