@sleep2agi/agent-network-dashboard 0.5.6 → 0.5.7-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/cache/.previewinfo +1 -0
- package/.next/cache/.rscinfo +1 -0
- package/.next/cache/config.json +7 -0
- package/.next/diagnostics/route-bundle-stats.json +34 -34
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +3 -3
- package/.next/server/app/_not-found.rsc +20 -18
- package/.next/server/app/_not-found.segments/_full.segment.rsc +20 -18
- package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +9 -7
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/admin/page.js +1 -1
- 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 +3 -3
- package/.next/server/app/admin.rsc +24 -22
- package/.next/server/app/admin.segments/_full.segment.rsc +24 -22
- package/.next/server/app/admin.segments/_head.segment.rsc +4 -4
- package/.next/server/app/admin.segments/_index.segment.rsc +9 -7
- package/.next/server/app/admin.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/admin.segments/admin.segment.rsc +3 -3
- package/.next/server/app/index.html +3 -3
- package/.next/server/app/index.rsc +22 -20
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +22 -20
- package/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +9 -7
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/login/page.js +1 -1
- 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 +24 -22
- package/.next/server/app/login.segments/_full.segment.rsc +24 -22
- package/.next/server/app/login.segments/_head.segment.rsc +4 -4
- package/.next/server/app/login.segments/_index.segment.rsc +9 -7
- package/.next/server/app/login.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/login.segments/login.segment.rsc +3 -3
- package/.next/server/app/logs/page.js +1 -1
- 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 +3 -3
- package/.next/server/app/logs.rsc +24 -22
- package/.next/server/app/logs.segments/_full.segment.rsc +24 -22
- package/.next/server/app/logs.segments/_head.segment.rsc +4 -4
- package/.next/server/app/logs.segments/_index.segment.rsc +9 -7
- package/.next/server/app/logs.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/logs.segments/logs.segment.rsc +3 -3
- package/.next/server/app/messages/page.js +1 -1
- 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 +3 -3
- package/.next/server/app/messages.rsc +24 -22
- package/.next/server/app/messages.segments/_full.segment.rsc +24 -22
- package/.next/server/app/messages.segments/_head.segment.rsc +4 -4
- package/.next/server/app/messages.segments/_index.segment.rsc +9 -7
- package/.next/server/app/messages.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/messages.segments/messages.segment.rsc +3 -3
- package/.next/server/app/node/page.js +1 -1
- 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 +3 -3
- package/.next/server/app/node.rsc +24 -22
- package/.next/server/app/node.segments/_full.segment.rsc +24 -22
- package/.next/server/app/node.segments/_head.segment.rsc +4 -4
- package/.next/server/app/node.segments/_index.segment.rsc +9 -7
- package/.next/server/app/node.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/node.segments/node.segment.rsc +3 -3
- package/.next/server/app/nodes/page.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 +3 -3
- package/.next/server/app/nodes.rsc +24 -22
- package/.next/server/app/nodes.segments/_full.segment.rsc +24 -22
- package/.next/server/app/nodes.segments/_head.segment.rsc +4 -4
- package/.next/server/app/nodes.segments/_index.segment.rsc +9 -7
- package/.next/server/app/nodes.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/nodes.segments/nodes.segment.rsc +3 -3
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs/page.js +1 -1
- 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 +3 -3
- package/.next/server/app/server-logs.rsc +24 -22
- package/.next/server/app/server-logs.segments/_full.segment.rsc +24 -22
- package/.next/server/app/server-logs.segments/_head.segment.rsc +4 -4
- package/.next/server/app/server-logs.segments/_index.segment.rsc +9 -7
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/server-logs.segments/server-logs.segment.rsc +3 -3
- package/.next/server/app/servers/page.js +1 -1
- 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 +3 -3
- package/.next/server/app/servers.rsc +24 -22
- package/.next/server/app/servers.segments/_full.segment.rsc +24 -22
- package/.next/server/app/servers.segments/_head.segment.rsc +4 -4
- package/.next/server/app/servers.segments/_index.segment.rsc +9 -7
- package/.next/server/app/servers.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/servers.segments/servers/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/servers.segments/servers.segment.rsc +3 -3
- package/.next/server/app/settings/networks/page.js +1 -1
- 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 +3 -3
- package/.next/server/app/settings/networks.rsc +24 -22
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +24 -22
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +9 -7
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +3 -3
- package/.next/server/app/settings/networks.segments/settings.segment.rsc +3 -3
- package/.next/server/app/settings/page.js +1 -1
- 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 +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 +3 -3
- package/.next/server/app/settings/tokens.rsc +24 -22
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +24 -22
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +9 -7
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +3 -3
- package/.next/server/app/settings/tokens.segments/settings.segment.rsc +3 -3
- package/.next/server/app/settings.html +3 -3
- package/.next/server/app/settings.rsc +24 -22
- package/.next/server/app/settings.segments/_full.segment.rsc +24 -22
- package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_index.segment.rsc +9 -7
- package/.next/server/app/settings.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/.next/server/app/tasks/[id]/page.js +1 -1
- 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 +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 +3 -3
- package/.next/server/app/tasks.rsc +24 -22
- package/.next/server/app/tasks.segments/_full.segment.rsc +24 -22
- package/.next/server/app/tasks.segments/_head.segment.rsc +4 -4
- package/.next/server/app/tasks.segments/_index.segment.rsc +9 -7
- package/.next/server/app/tasks.segments/_tree.segment.rsc +3 -2
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/tasks.segments/tasks.segment.rsc +3 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0lu1wok._.js +8 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0lu1wok._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0nw~zhp._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0nw~zhp._.js.map +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_components_0s5uqlp._.js +9 -0
- package/.next/server/chunks/ssr/agent-network-dashboard_app_components_0s5uqlp._.js.map +1 -0
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +3 -3
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/0-g7_e.uxknwf.css +1 -0
- package/.next/static/chunks/0.cwhwqixared.js +1 -0
- package/.next/static/chunks/01ndw_9-741.o.js +1 -0
- package/.next/static/chunks/0imoc-x.2-ll7.js +1 -0
- package/.next/static/chunks/0uzchut_f9a6m.js +1 -0
- package/.next/static/chunks/15-ltfhot3b4n.js +7 -0
- package/.next/static/chunks/17sxlwlx5fhrp.css +1 -0
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/.vercel/.env.development.local +2 -0
- package/.vercel/README.txt +11 -0
- package/.vercel/output/builds.json +24 -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 +229 -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 +800 -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 +19 -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 +19 -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 +8 -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 +2 -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 +24 -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 +24 -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 +8 -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 +3 -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/favicon.ico.rsc.func/.next/routes-manifest.json +1 -0
- package/.vercel/output/functions/favicon.ico.rsc.func/.next/server/app-paths-manifest.json +1 -0
- package/.vercel/output/functions/favicon.ico.rsc.func/.next/server/pages-manifest.json +1 -0
- package/.vercel/output/functions/favicon.ico.rsc.func/.vc-config.json +711 -0
- package/.vercel/output/functions/favicon.ico.rsc.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 +22 -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 +22 -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 +8 -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 +3 -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 +24 -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 +24 -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 +8 -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 +3 -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 +24 -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 +24 -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 +8 -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 +3 -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/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 +24 -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 +24 -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 +8 -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 +3 -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 +24 -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 +24 -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 +8 -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 +3 -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 +24 -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 +24 -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 +8 -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 +3 -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 +24 -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 +24 -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 +8 -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 +3 -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/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 +24 -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 +24 -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 +8 -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 +3 -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 +24 -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 +24 -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 +8 -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 +3 -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 +24 -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 +24 -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 +8 -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 +3 -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 +24 -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 +24 -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 +8 -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 +3 -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/cQOazsLgEXZBa3uITRnqd/_buildManifest.js +11 -0
- package/.vercel/output/static/_next/static/cQOazsLgEXZBa3uITRnqd/_clientMiddlewareManifest.js +42 -0
- package/.vercel/output/static/_next/static/cQOazsLgEXZBa3uITRnqd/_ssgManifest.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/054rct4zo7h~z.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0ctlwbr5xthi8.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0e-.zgw81gela.js +31 -0
- package/.vercel/output/static/_next/static/chunks/0fv~z2l3jrqys.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0gtbwcilfu6b7.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0j6t.m1a6._pk.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0krx4ebw65neu.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0mcdzzl4stn.x.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0mh~79ukyan6l.js +7 -0
- package/.vercel/output/static/_next/static/chunks/0p8gm5gd97iye.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0pqt~8bl3ukh4.js +4 -0
- package/.vercel/output/static/_next/static/chunks/0sf4r.iqs6i2d.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0syyhzeexnwuc.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0u359llqm1_01.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0w1zwt8kq_7nb.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0y4vqmmbpds2r.js +1 -0
- package/.vercel/output/static/_next/static/chunks/0~.wslpnrpyxe.js +1 -0
- package/.vercel/output/static/_next/static/chunks/10pzdqqp6gvky.js +1 -0
- package/.vercel/output/static/_next/static/chunks/12~jseze2jkgc.js +1 -0
- package/.vercel/output/static/_next/static/chunks/13kogdk1s~elt.js +4 -0
- package/.vercel/output/static/_next/static/chunks/14bsg3_-taiw4.js +1 -0
- package/.vercel/output/static/_next/static/chunks/16-7qr7qx9zrz.css +2 -0
- package/.vercel/output/static/_next/static/chunks/17i-e9luf51g_.js +7 -0
- package/.vercel/output/static/_next/static/chunks/turbopack-01f1xs~cq_~si.js +1 -0
- package/.vercel/output/static/_next/static/media/4fa387ec64143e14-s.0.qu-9752pffj.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/5ce348bf30bf5439-s.0ee55_hj9qcer.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/6306c77e7c8268e4-s.0mao5jbfbduzp.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/797e433ab948586e-s.p.09zddjkbdep5a.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/7d817b4c03b0c5f1-s.0uzt.a6d44yda.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/bbc41e54d2fcbd21-s.0mvwgmnhv29no.woff2 +0 -0
- package/.vercel/output/static/_next/static/media/favicon.0x3dzn~oxb6tn.ico +0 -0
- package/.vercel/output/static/_next/static/not-found.txt +1 -0
- package/.vercel/output/static/favicon.ico +0 -0
- package/.vercel/output/static/favicon.svg +10 -0
- package/.vercel/output/static/intern_avatar.png +0 -0
- package/.vercel/output/static/sleep2agi-logo.svg +11 -0
- package/.vercel/output/static/vendors/claude.svg +10 -0
- package/.vercel/output/static/vendors/minimax.svg +10 -0
- package/.vercel/output/static/vendors/openai.svg +10 -0
- package/.vercel/project.json +16 -0
- package/app/components/AppShell.tsx +3 -3
- package/app/components/PwaInstaller.tsx +17 -0
- package/app/globals.css +10 -0
- package/app/layout.tsx +2 -0
- package/app/nodes/page.tsx +5 -5
- package/apps/desktop/electron/main.cjs +37 -0
- package/capacitor.config.ts +21 -0
- package/electron-builder.json +18 -0
- package/package.json +16 -1
- package/public/sw.js +37 -0
- package/tests/e2e.spec.ts +75 -0
- package/tests/theme-screenshots.spec.ts +57 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0u5aqkk._.js +0 -8
- package/.next/server/chunks/ssr/[root-of-the-server]__0u5aqkk._.js.map +0 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_components_0mvyi-4._.js +0 -9
- package/.next/server/chunks/ssr/agent-network-dashboard_app_components_0mvyi-4._.js.map +0 -1
- package/.next/static/chunks/0800ik2kbhsed.js +0 -1
- package/.next/static/chunks/0ii3jngq3fijk.js +0 -1
- package/.next/static/chunks/0iwava1u7a3b4.js +0 -7
- package/.next/static/chunks/0wtj3tufk2aod.css +0 -2
- package/.next/static/chunks/0xpmd4b37kj~e.js +0 -1
- package/.next/static/chunks/0~ykmap37nw9d.js +0 -1
- package/docs/api-alignment.md +0 -64
- package/docs/design-task-chat.md +0 -84
- package/docs/loop-design-rounds.md +0 -797
- package/docs/oss-readiness-report.md +0 -189
- package/docs/rfc/v0.10.0-hero3-dashboard-upgrade.md +0 -230
- package/docs/screenshots/0.4.5-preview.1/cyber-admin.png +0 -0
- package/docs/screenshots/0.4.5-preview.1/cyber-cmdk-search.png +0 -0
- package/docs/screenshots/0.4.5-preview.1/cyber-cmdk.png +0 -0
- package/docs/screenshots/0.4.5-preview.1/cyber-login.png +0 -0
- package/docs/screenshots/0.4.5-preview.1/cyber-overview.png +0 -0
- package/docs/screenshots/0.4.5-preview.1/cyber-settings.png +0 -0
- package/docs/screenshots/0.4.5-preview.1/cyber-tasks.png +0 -0
- package/docs/screenshots/0.4.5-preview.1/light-admin.png +0 -0
- package/docs/screenshots/0.4.5-preview.1/light-cmdk-search.png +0 -0
- package/docs/screenshots/0.4.5-preview.1/light-cmdk.png +0 -0
- package/docs/screenshots/0.4.5-preview.1/light-login.png +0 -0
- package/docs/screenshots/0.4.5-preview.1/light-overview.png +0 -0
- package/docs/screenshots/0.4.5-preview.1/light-settings.png +0 -0
- package/docs/screenshots/0.4.5-preview.1/light-tasks.png +0 -0
- package/scripts/chat-popover-test.mjs +0 -234
- package/scripts/chat-theme-test.mjs +0 -98
- package/scripts/empty-state-test.mjs +0 -41
- package/scripts/fold-only.mjs +0 -47
- package/scripts/help-overlay-topo-test.mjs +0 -44
- package/scripts/intern-alias-test.mjs +0 -46
- package/scripts/loop-review.mjs +0 -270
- package/scripts/network-derive-shot.mjs +0 -16
- package/scripts/network-derive-test.mjs +0 -28
- package/scripts/p0-147-screenshot.mjs +0 -53
- package/scripts/p0-servers-drawer-screenshot.mjs +0 -101
- package/scripts/p0-topo-screenshot.mjs +0 -82
- package/scripts/p150-orphan-layout-screenshot.mjs +0 -82
- package/scripts/p157-rc2-dedup-test.mjs +0 -110
- package/scripts/p157-servers-copy-test.mjs +0 -95
- package/scripts/servers-drawer-live-test.mjs +0 -96
- package/scripts/topo-50-test.mjs +0 -54
- package/scripts/topo-a11y-titles-catalog-test.mjs +0 -132
- package/scripts/topo-active-chrome-hover-text-test.mjs +0 -107
- package/scripts/topo-active-filter-pill-test.mjs +0 -101
- package/scripts/topo-active-links-chip-halo-layers-test.mjs +0 -81
- package/scripts/topo-active-links-chip-hover-lift-test.mjs +0 -93
- package/scripts/topo-active-links-chip-hover-test.mjs +0 -103
- package/scripts/topo-active-links-chip-nav-test.mjs +0 -117
- package/scripts/topo-active-links-chip-self-hover-test.mjs +0 -171
- package/scripts/topo-active-links-chip-test.mjs +0 -73
- package/scripts/topo-active-links-empty-recede-test.mjs +0 -125
- package/scripts/topo-active-links-freshness-color-test.mjs +0 -86
- package/scripts/topo-active-links-freshness-test.mjs +0 -113
- package/scripts/topo-active-links-tooltip-test.mjs +0 -79
- package/scripts/topo-active-links-unit-test.mjs +0 -79
- package/scripts/topo-active-pulse-ease-test.mjs +0 -120
- package/scripts/topo-alias-chat-brightness-test.mjs +0 -79
- package/scripts/topo-alias-glow-test.mjs +0 -121
- package/scripts/topo-alias-text-halo-layers-test.mjs +0 -98
- package/scripts/topo-animation-temporal-modes-catalog-test.mjs +0 -144
- package/scripts/topo-any-hover-attr-test.mjs +0 -83
- package/scripts/topo-any-pinned-attr-test.mjs +0 -86
- package/scripts/topo-arrow-tier-test.mjs +0 -61
- package/scripts/topo-auto-fit-test.mjs +0 -73
- package/scripts/topo-avatar-brightness-test.mjs +0 -116
- package/scripts/topo-avatar-chat-gate-test.mjs +0 -77
- package/scripts/topo-avatar-drop-shadow-test.mjs +0 -86
- package/scripts/topo-avatar-fallback-hover-test.mjs +0 -104
- package/scripts/topo-avatar-fallback-rotate-test.mjs +0 -92
- package/scripts/topo-avatar-rotate-test.mjs +0 -85
- package/scripts/topo-avatar-scale-test.mjs +0 -89
- package/scripts/topo-badge-chat-gate-test.mjs +0 -74
- package/scripts/topo-brand-drop-shadow-test.mjs +0 -71
- package/scripts/topo-brand-logo-breath-test.mjs +0 -102
- package/scripts/topo-brand-logo-halo-layers-test.mjs +0 -85
- package/scripts/topo-brand-logo-hover-brightness-test.mjs +0 -105
- package/scripts/topo-brand-logo-hover-rotate-test.mjs +0 -93
- package/scripts/topo-brand-logo-hover-test.mjs +0 -85
- package/scripts/topo-brand-logo-transition-test.mjs +0 -94
- package/scripts/topo-brand-shot.mjs +0 -61
- package/scripts/topo-brand-watermark-test.mjs +0 -97
- package/scripts/topo-canvas-aria-test.mjs +0 -108
- package/scripts/topo-canvas-brand-fade-test.mjs +0 -87
- package/scripts/topo-canvas-desc-a11y-test.mjs +0 -87
- package/scripts/topo-canvas-entrance-animation-test.mjs +0 -117
- package/scripts/topo-canvas-scan-beam-diagonal-test.mjs +0 -148
- package/scripts/topo-canvas-scan-beam-test.mjs +0 -109
- package/scripts/topo-canvas-scan-beam-vertical-test.mjs +0 -123
- package/scripts/topo-card-chat-brightness-test.mjs +0 -86
- package/scripts/topo-chat-focus-ring-test.mjs +0 -77
- package/scripts/topo-chat-ring-breath-curve-test.mjs +0 -114
- package/scripts/topo-chat-ring-brightness-test.mjs +0 -80
- package/scripts/topo-chat-ring-halo-layers-test.mjs +0 -100
- package/scripts/topo-chat-ring-r-breath-test.mjs +0 -121
- package/scripts/topo-chat-ring-status-halo-test.mjs +0 -106
- package/scripts/topo-chat-ring-sw-breath-test.mjs +0 -123
- package/scripts/topo-chat-target-breath-test.mjs +0 -84
- package/scripts/topo-chat-target-ring-ease-test.mjs +0 -82
- package/scripts/topo-chat-target-ring-fade-test.mjs +0 -124
- package/scripts/topo-chip-digit-fontweight-test.mjs +0 -105
- package/scripts/topo-chip-digit-hover-bold-test.mjs +0 -94
- package/scripts/topo-chip-empty-recede-test.mjs +0 -116
- package/scripts/topo-chip-focus-test.mjs +0 -95
- package/scripts/topo-chip-pin-halo-test.mjs +0 -85
- package/scripts/topo-chip-pin-mirror-test.mjs +0 -113
- package/scripts/topo-chip-row-digit-ls-test.mjs +0 -135
- package/scripts/topo-chip-row-gap-test.mjs +0 -90
- package/scripts/topo-chip-row-group-hover-brighten-test.mjs +0 -107
- package/scripts/topo-chip-row-hover-lift-test.mjs +0 -95
- package/scripts/topo-chip-row-member-alias-lit-test.mjs +0 -154
- package/scripts/topo-chip-row-press-test.mjs +0 -93
- package/scripts/topo-chip-row-semantic-gap-test.mjs +0 -97
- package/scripts/topo-chip-row-tabular-test.mjs +0 -111
- package/scripts/topo-chip-row-tier-glow-brightness-test.mjs +0 -99
- package/scripts/topo-chip-row-unit-hover-tracking-test.mjs +0 -124
- package/scripts/topo-chip-unit-demotion-test.mjs +0 -93
- package/scripts/topo-chiprow-data-weight-test.mjs +0 -94
- package/scripts/topo-chrome-a11y-test.mjs +0 -107
- package/scripts/topo-chrome-active-weight-test.mjs +0 -104
- package/scripts/topo-chrome-button-hover-lift-test.mjs +0 -94
- package/scripts/topo-chrome-control-halo-layers-test.mjs +0 -22
- package/scripts/topo-chrome-focus-ring-unify-test.mjs +0 -100
- package/scripts/topo-chrome-fullscreen-breath-test.mjs +0 -121
- package/scripts/topo-chrome-fullscreen-icon-sw-test.mjs +0 -92
- package/scripts/topo-chrome-gap-test.mjs +0 -73
- package/scripts/topo-chrome-icon-stroke-test.mjs +0 -95
- package/scripts/topo-chrome-inactive-color-test.mjs +0 -90
- package/scripts/topo-chrome-layout-trailer-breath-test.mjs +0 -86
- package/scripts/topo-chrome-nodesize-trailer-breath-test.mjs +0 -86
- package/scripts/topo-chrome-pop-extension-test.mjs +0 -98
- package/scripts/topo-chrome-pop-nodesize-test.mjs +0 -88
- package/scripts/topo-chrome-press-fullstrip-test.mjs +0 -105
- package/scripts/topo-chrome-press-scale-test.mjs +0 -100
- package/scripts/topo-chrome-press-state-test.mjs +0 -135
- package/scripts/topo-chrome-reset-breath-test.mjs +0 -115
- package/scripts/topo-chrome-reset-icon-sw-test.mjs +0 -80
- package/scripts/topo-chrome-segmented-radius-test.mjs +0 -100
- package/scripts/topo-chrome-strip-entrance-animation-test.mjs +0 -115
- package/scripts/topo-chrome-strip-semantic-gap-test.mjs +0 -99
- package/scripts/topo-chrome-strip-theme-ease-test.mjs +0 -99
- package/scripts/topo-chrome-wrapper-halo-test.mjs +0 -83
- package/scripts/topo-chrome-zoom-icon-sw-test.mjs +0 -90
- package/scripts/topo-chrome-zoom-level-pop-test.mjs +0 -122
- package/scripts/topo-chrome-zoom-pop-test.mjs +0 -130
- package/scripts/topo-chrome-zoom-readout-weight-test.mjs +0 -81
- package/scripts/topo-chrome-zoom-wrapper-breath-test.mjs +0 -85
- package/scripts/topo-click-ripple-ease-test.mjs +0 -94
- package/scripts/topo-click-ripple-glow-test.mjs +0 -86
- package/scripts/topo-click-ripple-halo-layers-test.mjs +0 -79
- package/scripts/topo-click-ripple-opacity-test.mjs +0 -99
- package/scripts/topo-click-ripple-sw-test.mjs +0 -110
- package/scripts/topo-click-ripple-test.mjs +0 -66
- package/scripts/topo-cluster-count-attr-test.mjs +0 -80
- package/scripts/topo-cluster-test.mjs +0 -41
- package/scripts/topo-cmdk-edge-clear-test.mjs +0 -109
- package/scripts/topo-cmdk-layout-view-test.mjs +0 -108
- package/scripts/topo-cmdk-pin-test.mjs +0 -123
- package/scripts/topo-cmdk-vendor-clear-test.mjs +0 -133
- package/scripts/topo-cmdk-vendor-pin-test.mjs +0 -103
- package/scripts/topo-controls-shot.mjs +0 -24
- package/scripts/topo-corner-radius-unify-test.mjs +0 -103
- package/scripts/topo-crescent-breath-test.mjs +0 -104
- package/scripts/topo-crescent-envelope-breath-test.mjs +0 -103
- package/scripts/topo-crescent-recede-test.mjs +0 -111
- package/scripts/topo-cwd-tooltip-test.mjs +0 -64
- package/scripts/topo-dashboard-version-attr-test.mjs +0 -69
- package/scripts/topo-dblclick-reset-test.mjs +0 -74
- package/scripts/topo-dense-alias-chat-halo-test.mjs +0 -73
- package/scripts/topo-dense-alias-fill-transition-test.mjs +0 -133
- package/scripts/topo-dense-alias-halo-layers-test.mjs +0 -80
- package/scripts/topo-dense-alias-opacity-test.mjs +0 -68
- package/scripts/topo-density-test.mjs +0 -57
- package/scripts/topo-discrete-zoom-smooth-test.mjs +0 -125
- package/scripts/topo-dual-axis-surfaces-catalog-test.mjs +0 -94
- package/scripts/topo-edge-badge-circle-brightness-test.mjs +0 -82
- package/scripts/topo-edge-badge-circle-hot-pulse-test.mjs +0 -100
- package/scripts/topo-edge-badge-click-pin-test.mjs +0 -94
- package/scripts/topo-edge-badge-crossfade-test.mjs +0 -138
- package/scripts/topo-edge-badge-digit-fw-test.mjs +0 -103
- package/scripts/topo-edge-badge-digit-halo-layers-test.mjs +0 -107
- package/scripts/topo-edge-badge-endpoint-gate-test.mjs +0 -94
- package/scripts/topo-edge-badge-fontsize-test.mjs +0 -90
- package/scripts/topo-edge-badge-halo-layers-test.mjs +0 -85
- package/scripts/topo-edge-badge-hot-glow-test.mjs +0 -101
- package/scripts/topo-edge-badge-hot-pulse-test.mjs +0 -92
- package/scripts/topo-edge-badge-hot-test.mjs +0 -115
- package/scripts/topo-edge-badge-hover-glow-test.mjs +0 -90
- package/scripts/topo-edge-badge-hover-opacity-test.mjs +0 -94
- package/scripts/topo-edge-badge-hover-stroke-test.mjs +0 -92
- package/scripts/topo-edge-badge-hover-test.mjs +0 -85
- package/scripts/topo-edge-badge-letter-spacing-test.mjs +0 -86
- package/scripts/topo-edge-badge-lift-test.mjs +0 -150
- package/scripts/topo-edge-badge-opacity-test.mjs +0 -80
- package/scripts/topo-edge-badge-pin-opacity-test.mjs +0 -86
- package/scripts/topo-edge-badge-ripple-test.mjs +0 -111
- package/scripts/topo-edge-badge-stroke-test.mjs +0 -92
- package/scripts/topo-edge-badge-stroke-transition-test.mjs +0 -118
- package/scripts/topo-edge-badge-text-brightness-test.mjs +0 -83
- package/scripts/topo-edge-badge-text-pin-test.mjs +0 -121
- package/scripts/topo-edge-badge-theme-ease-test.mjs +0 -89
- package/scripts/topo-edge-chat-gate-test.mjs +0 -71
- package/scripts/topo-edge-count-badge-test.mjs +0 -86
- package/scripts/topo-edge-endpoint-highlight-test.mjs +0 -111
- package/scripts/topo-edge-endpoint-hover-sw-test.mjs +0 -127
- package/scripts/topo-edge-fadein-test.mjs +0 -106
- package/scripts/topo-edge-flow-rail-halo-layers-test.mjs +0 -89
- package/scripts/topo-edge-focus-test.mjs +0 -113
- package/scripts/topo-edge-freshness-floor-test.mjs +0 -99
- package/scripts/topo-edge-hover-test.mjs +0 -93
- package/scripts/topo-edge-particle-brightness-test.mjs +0 -82
- package/scripts/topo-edge-particle-halo-layers-test.mjs +0 -91
- package/scripts/topo-edge-particle-hover-r-test.mjs +0 -113
- package/scripts/topo-edge-particle-opacity-lift-test.mjs +0 -109
- package/scripts/topo-edge-particle-radius-test.mjs +0 -76
- package/scripts/topo-edge-pill-glow-test.mjs +0 -67
- package/scripts/topo-edge-pill-hot-test.mjs +0 -129
- package/scripts/topo-edge-pill-test.mjs +0 -105
- package/scripts/topo-edge-pin-halo-test.mjs +0 -99
- package/scripts/topo-edge-ping-pulse-retired-test.mjs +0 -119
- package/scripts/topo-edge-stroke-ease-test.mjs +0 -100
- package/scripts/topo-edge-stroke-transition-test.mjs +0 -132
- package/scripts/topo-edge-tooltip-test.mjs +0 -70
- package/scripts/topo-edge-visible-brightness-test.mjs +0 -84
- package/scripts/topo-edge-visible-halo-layers-test.mjs +0 -87
- package/scripts/topo-edge-visible-linecap-test.mjs +0 -89
- package/scripts/topo-empty-hint-tracking-test.mjs +0 -84
- package/scripts/topo-empty-state-breath-test.mjs +0 -150
- package/scripts/topo-empty-state-crossfade-test.mjs +0 -130
- package/scripts/topo-empty-state-recenter-test.mjs +0 -107
- package/scripts/topo-empty-sub-hint-italic-test.mjs +0 -83
- package/scripts/topo-empty-subhint-tracking-test.mjs +0 -87
- package/scripts/topo-endpoint-ring-brightness-test.mjs +0 -83
- package/scripts/topo-endpoint-ring-fade-test.mjs +0 -132
- package/scripts/topo-endpoint-ring-flow-halo-test.mjs +0 -107
- package/scripts/topo-endpoint-ring-halo-layers-test.mjs +0 -100
- package/scripts/topo-endpoint-ring-r-hover-test.mjs +0 -89
- package/scripts/topo-endpoint-ring-test.mjs +0 -93
- package/scripts/topo-endpoint-ring-thicken-test.mjs +0 -112
- package/scripts/topo-esc-clears-pin-test.mjs +0 -98
- package/scripts/topo-filter-pill-aliases-test.mjs +0 -121
- package/scripts/topo-filter-pill-body-click-test.mjs +0 -112
- package/scripts/topo-filter-pill-count-tabular-test.mjs +0 -135
- package/scripts/topo-filter-pill-count-test.mjs +0 -110
- package/scripts/topo-filter-pill-glow-test.mjs +0 -90
- package/scripts/topo-filter-pill-halo-layers-test.mjs +0 -27
- package/scripts/topo-filter-pill-hover-lift-test.mjs +0 -101
- package/scripts/topo-filter-pill-hover-opacity-test.mjs +0 -110
- package/scripts/topo-filter-pill-mobile-test.mjs +0 -90
- package/scripts/topo-filter-pill-value-fw-test.mjs +0 -88
- package/scripts/topo-filter-pill-weight-test.mjs +0 -75
- package/scripts/topo-filter-pill-x-hover-scale-test.mjs +0 -99
- package/scripts/topo-filter-pills-press-test.mjs +0 -96
- package/scripts/topo-fit-key-test.mjs +0 -106
- package/scripts/topo-fleet-count-attrs-test.mjs +0 -87
- package/scripts/topo-fleet-density-tier-test.mjs +0 -84
- package/scripts/topo-flow-arrow-brightness-test.mjs +0 -82
- package/scripts/topo-flow-rail-brightness-test.mjs +0 -80
- package/scripts/topo-flow-rail-hover-sw-test.mjs +0 -113
- package/scripts/topo-flow-rail-linecap-test.mjs +0 -79
- package/scripts/topo-focus-outline-transition-test.mjs +0 -107
- package/scripts/topo-freshness-chip-fade-test.mjs +0 -105
- package/scripts/topo-freshness-chip-hierarchy-test.mjs +0 -93
- package/scripts/topo-freshness-chip-tabular-test.mjs +0 -41
- package/scripts/topo-freshness-chip-test.mjs +0 -74
- package/scripts/topo-freshness-chip-transition-test.mjs +0 -80
- package/scripts/topo-freshness-chip-weight-test.mjs +0 -90
- package/scripts/topo-freshness-conditional-render-test.mjs +0 -92
- package/scripts/topo-freshness-floor-lift-test.mjs +0 -92
- package/scripts/topo-freshness-suffix-tabular-test.mjs +0 -88
- package/scripts/topo-fullscreen-active-test.mjs +0 -115
- package/scripts/topo-fullscreen-attr-test.mjs +0 -73
- package/scripts/topo-fullscreen-brightness-test.mjs +0 -84
- package/scripts/topo-fullscreen-icon-hover-scale-test.mjs +0 -91
- package/scripts/topo-fullscreen-icon-rotate-test.mjs +0 -93
- package/scripts/topo-grid-content-bottom-attr-test.mjs +0 -72
- package/scripts/topo-group-box-brightness-test.mjs +0 -84
- package/scripts/topo-group-box-geom-transition-test.mjs +0 -110
- package/scripts/topo-group-box-halo-layers-test.mjs +0 -91
- package/scripts/topo-group-box-pinned-state-test.mjs +0 -95
- package/scripts/topo-group-box-rx-pin-test.mjs +0 -103
- package/scripts/topo-group-box-stroke-test.mjs +0 -105
- package/scripts/topo-group-chat-gate-test.mjs +0 -77
- package/scripts/topo-group-count-test.mjs +0 -68
- package/scripts/topo-group-fade-cadence-test.mjs +0 -92
- package/scripts/topo-group-hover-test.mjs +0 -82
- package/scripts/topo-group-label-a11y-test.mjs +0 -113
- package/scripts/topo-group-label-brightness-test.mjs +0 -84
- package/scripts/topo-group-label-count-fontweight-test.mjs +0 -108
- package/scripts/topo-group-label-count-fw-test.mjs +0 -100
- package/scripts/topo-group-label-count-inherit-test.mjs +0 -99
- package/scripts/topo-group-label-fw-pin-test.mjs +0 -99
- package/scripts/topo-group-label-glow-test.mjs +0 -104
- package/scripts/topo-group-label-halo-layers-test.mjs +0 -78
- package/scripts/topo-group-label-hover-glow-test.mjs +0 -86
- package/scripts/topo-group-label-hover-test.mjs +0 -119
- package/scripts/topo-group-label-letter-spacing-test.mjs +0 -113
- package/scripts/topo-group-label-member-alias-hover-test.mjs +0 -125
- package/scripts/topo-group-label-pin-spacing-test.mjs +0 -136
- package/scripts/topo-group-label-tint-geom-test.mjs +0 -94
- package/scripts/topo-group-label-tint-test.mjs +0 -99
- package/scripts/topo-group-label-tint-transition-test.mjs +0 -97
- package/scripts/topo-group-label-title-test.mjs +0 -83
- package/scripts/topo-group-pill-glow-test.mjs +0 -76
- package/scripts/topo-group-pin-test.mjs +0 -119
- package/scripts/topo-group-pip-fadein-test.mjs +0 -104
- package/scripts/topo-group-pip-fontsize-test.mjs +0 -106
- package/scripts/topo-group-pip-singletier-drop-test.mjs +0 -131
- package/scripts/topo-group-pip-tabular-test.mjs +0 -95
- package/scripts/topo-group-status-pips-test.mjs +0 -103
- package/scripts/topo-group-test.mjs +0 -37
- package/scripts/topo-group-tier-attr-test.mjs +0 -84
- package/scripts/topo-group-tint-brightness-test.mjs +0 -82
- package/scripts/topo-group-tint-rx-pin-test.mjs +0 -107
- package/scripts/topo-groupbox-fadein-test.mjs +0 -95
- package/scripts/topo-groupbox-hover-lift-test.mjs +0 -127
- package/scripts/topo-groupbox-hubcore-ease-test.mjs +0 -106
- package/scripts/topo-groupbox-live-test.mjs +0 -100
- package/scripts/topo-groupbox-march-busyness-test.mjs +0 -155
- package/scripts/topo-groupbox-test.mjs +0 -120
- package/scripts/topo-h2-dual-axis-breath-test.mjs +0 -92
- package/scripts/topo-h2-triple-axis-breath-test.mjs +0 -142
- package/scripts/topo-halo-chat-gate-test.mjs +0 -72
- package/scripts/topo-header-gap-test.mjs +0 -94
- package/scripts/topo-help-overlay-r109-test.mjs +0 -67
- package/scripts/topo-help-overlay-r118-test.mjs +0 -69
- package/scripts/topo-help-overlay-r123-test.mjs +0 -69
- package/scripts/topo-help-overlay-r134-test.mjs +0 -74
- package/scripts/topo-help-overlay-r137-test.mjs +0 -81
- package/scripts/topo-help-overlay-r141-test.mjs +0 -86
- package/scripts/topo-help-overlay-r153-test.mjs +0 -85
- package/scripts/topo-help-overlay-r59-test.mjs +0 -67
- package/scripts/topo-help-overlay-r65-test.mjs +0 -64
- package/scripts/topo-help-overlay-r70-test.mjs +0 -63
- package/scripts/topo-help-overlay-r78-test.mjs +0 -59
- package/scripts/topo-help-overlay-r81-test.mjs +0 -58
- package/scripts/topo-help-overlay-r87-test.mjs +0 -64
- package/scripts/topo-help-overlay-r91-test.mjs +0 -65
- package/scripts/topo-hot-tail-crossfade-test.mjs +0 -117
- package/scripts/topo-hover-detail-body-fw-test.mjs +0 -101
- package/scripts/topo-hover-detail-halo-test.mjs +0 -76
- package/scripts/topo-hover-detail-model-fw-test.mjs +0 -98
- package/scripts/topo-hover-detail-opacity-test.mjs +0 -98
- package/scripts/topo-hover-detail-rx-test.mjs +0 -81
- package/scripts/topo-hover-ring-duration-test.mjs +0 -87
- package/scripts/topo-hovered-alias-attr-test.mjs +0 -111
- package/scripts/topo-html-overlay-padding-unify-test.mjs +0 -120
- package/scripts/topo-hub-a11y-test.mjs +0 -112
- package/scripts/topo-hub-a11y-title-test.mjs +0 -95
- package/scripts/topo-hub-busyness-test.mjs +0 -100
- package/scripts/topo-hub-center-crossfade-test.mjs +0 -124
- package/scripts/topo-hub-click-fit-test.mjs +0 -137
- package/scripts/topo-hub-core-brightness-test.mjs +0 -82
- package/scripts/topo-hub-core-fill-hover-test.mjs +0 -85
- package/scripts/topo-hub-core-halo-layers-test.mjs +0 -81
- package/scripts/topo-hub-digit-brightness-test.mjs +0 -79
- package/scripts/topo-hub-digit-fontsize-test.mjs +0 -86
- package/scripts/topo-hub-digit-fw-hover-test.mjs +0 -102
- package/scripts/topo-hub-digit-glow-test.mjs +0 -105
- package/scripts/topo-hub-digit-halo-layers-test.mjs +0 -76
- package/scripts/topo-hub-digit-ls-test.mjs +0 -119
- package/scripts/topo-hub-digit-scale-test.mjs +0 -129
- package/scripts/topo-hub-fadein-test.mjs +0 -88
- package/scripts/topo-hub-halo-brightness-test.mjs +0 -80
- package/scripts/topo-hub-halo-glow-test.mjs +0 -96
- package/scripts/topo-hub-halo-halo-layers-test.mjs +0 -76
- package/scripts/topo-hub-halo-light-trough-test.mjs +0 -88
- package/scripts/topo-hub-halo-r-hover-test.mjs +0 -82
- package/scripts/topo-hub-halo-radius-test.mjs +0 -86
- package/scripts/topo-hub-halo-trough-test.mjs +0 -83
- package/scripts/topo-hub-highlight-amplify-test.mjs +0 -139
- package/scripts/topo-hub-highlight-brightness-test.mjs +0 -84
- package/scripts/topo-hub-highlight-fill-transition-test.mjs +0 -84
- package/scripts/topo-hub-highlight-glow-test.mjs +0 -99
- package/scripts/topo-hub-highlight-halo-layers-test.mjs +0 -78
- package/scripts/topo-hub-highlight-opacity-test.mjs +0 -88
- package/scripts/topo-hub-highlight-r-test.mjs +0 -112
- package/scripts/topo-hub-highlight-radius-test.mjs +0 -90
- package/scripts/topo-hub-highlight-recede-test.mjs +0 -144
- package/scripts/topo-hub-highlight-theme-fill-test.mjs +0 -83
- package/scripts/topo-hub-hover-lift-test.mjs +0 -101
- package/scripts/topo-hub-hover-ring-brightness-test.mjs +0 -79
- package/scripts/topo-hub-hover-ring-glow-test.mjs +0 -97
- package/scripts/topo-hub-hover-ring-halo-layers-test.mjs +0 -71
- package/scripts/topo-hub-hover-ring-opacity-test.mjs +0 -96
- package/scripts/topo-hub-hover-ring-stroke-test.mjs +0 -86
- package/scripts/topo-hub-hover-ring-test.mjs +0 -82
- package/scripts/topo-hub-idle-breath-test.mjs +0 -109
- package/scripts/topo-hub-pip-theme-ease-test.mjs +0 -116
- package/scripts/topo-hub-recede-test.mjs +0 -124
- package/scripts/topo-hub-spoke-brightness-test.mjs +0 -77
- package/scripts/topo-hub-spoke-ease-test.mjs +0 -120
- package/scripts/topo-hub-spoke-glow-test.mjs +0 -112
- package/scripts/topo-hub-spoke-halo-layers-test.mjs +0 -97
- package/scripts/topo-hub-spoke-hover-opacity-test.mjs +0 -119
- package/scripts/topo-hub-spoke-hover-sw-test.mjs +0 -121
- package/scripts/topo-hub-spoke-linecap-test.mjs +0 -80
- package/scripts/topo-hub-spoke-self-filter-test.mjs +0 -119
- package/scripts/topo-hub-title-test.mjs +0 -93
- package/scripts/topo-hub-working-count-test.mjs +0 -99
- package/scripts/topo-ingroup-edge-test.mjs +0 -103
- package/scripts/topo-inner-radar-ring-retired-test.mjs +0 -89
- package/scripts/topo-inspect.mjs +0 -56
- package/scripts/topo-interaction-test.mjs +0 -80
- package/scripts/topo-kicker-breath-test.mjs +0 -100
- package/scripts/topo-kicker-color-test.mjs +0 -93
- package/scripts/topo-kicker-dual-axis-breath-test.mjs +0 -81
- package/scripts/topo-kicker-halo-layers-test.mjs +0 -82
- package/scripts/topo-kicker-tracking-test.mjs +0 -101
- package/scripts/topo-kicker-triple-axis-breath-test.mjs +0 -124
- package/scripts/topo-kicker-weight-test.mjs +0 -98
- package/scripts/topo-label-card-brightness-test.mjs +0 -81
- package/scripts/topo-label-card-opacity-hover-test.mjs +0 -99
- package/scripts/topo-label-card-theme-ease-test.mjs +0 -85
- package/scripts/topo-label-lift-test.mjs +0 -119
- package/scripts/topo-label-scale-test.mjs +0 -78
- package/scripts/topo-lastseen-tooltip-test.mjs +0 -59
- package/scripts/topo-layout-hover-fw-test.mjs +0 -98
- package/scripts/topo-layout-hover-text-preview-test.mjs +0 -101
- package/scripts/topo-layout-key-test.mjs +0 -91
- package/scripts/topo-layout-switch-crossfade-test.mjs +0 -126
- package/scripts/topo-layout-test.mjs +0 -113
- package/scripts/topo-layout-theme-attrs-test.mjs +0 -91
- package/scripts/topo-layout-toggle-border-unify-test.mjs +0 -104
- package/scripts/topo-layout-toggle-brightness-test.mjs +0 -94
- package/scripts/topo-layout-toggle-halo-layers-test.mjs +0 -95
- package/scripts/topo-layout-toggle-hover-tracking-test.mjs +0 -109
- package/scripts/topo-layout-toggle-radius-test.mjs +0 -87
- package/scripts/topo-layout-toggle-test.mjs +0 -131
- package/scripts/topo-layout-trailer-mr-test.mjs +0 -82
- package/scripts/topo-legend-compress-test.mjs +0 -107
- package/scripts/topo-legend-count-active-opacity-test.mjs +0 -102
- package/scripts/topo-legend-count-brightness-test.mjs +0 -80
- package/scripts/topo-legend-count-empty-test.mjs +0 -126
- package/scripts/topo-legend-count-halo-layers-test.mjs +0 -79
- package/scripts/topo-legend-count-letter-spacing-test.mjs +0 -108
- package/scripts/topo-legend-count-pin-fw-test.mjs +0 -90
- package/scripts/topo-legend-count-tabular-parity-test.mjs +0 -90
- package/scripts/topo-legend-count-tabular-test.mjs +0 -87
- package/scripts/topo-legend-count-test.mjs +0 -88
- package/scripts/topo-legend-count-tier-fill-test.mjs +0 -121
- package/scripts/topo-legend-count-weight-test.mjs +0 -86
- package/scripts/topo-legend-header-symmetric-inset-test.mjs +0 -112
- package/scripts/topo-legend-hitbox-swatch-center-test.mjs +0 -93
- package/scripts/topo-legend-hover-test.mjs +0 -113
- package/scripts/topo-legend-label-fontweight-test.mjs +0 -94
- package/scripts/topo-legend-label-fw-test.mjs +0 -107
- package/scripts/topo-legend-offline-delimiter-test.mjs +0 -84
- package/scripts/topo-legend-offline-label-simplify-test.mjs +0 -86
- package/scripts/topo-legend-panel-count-weight-test.mjs +0 -89
- package/scripts/topo-legend-panel-header-test.mjs +0 -83
- package/scripts/topo-legend-panel-title-breath-test.mjs +0 -86
- package/scripts/topo-legend-panel-title-fw-test.mjs +0 -95
- package/scripts/topo-legend-pin-ring-brightness-test.mjs +0 -82
- package/scripts/topo-legend-pin-ring-fade-test.mjs +0 -112
- package/scripts/topo-legend-pin-ring-glow-test.mjs +0 -105
- package/scripts/topo-legend-pin-ring-halo-layers-test.mjs +0 -71
- package/scripts/topo-legend-pin-ring-stroke-test.mjs +0 -101
- package/scripts/topo-legend-pin-test.mjs +0 -128
- package/scripts/topo-legend-row-count-brightness-test.mjs +0 -85
- package/scripts/topo-legend-row-hover-lift-test.mjs +0 -109
- package/scripts/topo-legend-row-label-glow-test.mjs +0 -102
- package/scripts/topo-legend-row-labels-simplify-test.mjs +0 -80
- package/scripts/topo-legend-row-letter-spacing-test.mjs +0 -101
- package/scripts/topo-legend-row-pin-spacing-test.mjs +0 -124
- package/scripts/topo-legend-row-text-cadence-test.mjs +0 -93
- package/scripts/topo-legend-row-tint-cadence-test.mjs +0 -92
- package/scripts/topo-legend-row-tint-test.mjs +0 -95
- package/scripts/topo-legend-row-title-test.mjs +0 -102
- package/scripts/topo-legend-swatch-glow-test.mjs +0 -109
- package/scripts/topo-legend-swatch-grow-test.mjs +0 -116
- package/scripts/topo-legend-swatch-member-alias-match-test.mjs +0 -139
- package/scripts/topo-legend-swatch-radius-test.mjs +0 -78
- package/scripts/topo-legend-tint-brightness-test.mjs +0 -83
- package/scripts/topo-legend-trio-halo-layers-test.mjs +0 -22
- package/scripts/topo-live-lanes.mjs +0 -48
- package/scripts/topo-minimap-a11y-test.mjs +0 -101
- package/scripts/topo-minimap-container-halo-test.mjs +0 -82
- package/scripts/topo-minimap-dot-chat-gate-test.mjs +0 -81
- package/scripts/topo-minimap-dot-lift-test.mjs +0 -115
- package/scripts/topo-minimap-dot-transition-test.mjs +0 -113
- package/scripts/topo-minimap-hover-glow-test.mjs +0 -109
- package/scripts/topo-minimap-offline-opacity-test.mjs +0 -90
- package/scripts/topo-minimap-online-hover-opacity-test.mjs +0 -92
- package/scripts/topo-minimap-online-opacity-test.mjs +0 -93
- package/scripts/topo-minimap-online-radius-test.mjs +0 -85
- package/scripts/topo-minimap-radius-test.mjs +0 -88
- package/scripts/topo-minimap-rect-stroke-test.mjs +0 -94
- package/scripts/topo-minimap-test.mjs +0 -68
- package/scripts/topo-minimap-viewport-brightness-test.mjs +0 -84
- package/scripts/topo-minimap-viewport-halo-layers-test.mjs +0 -24
- package/scripts/topo-minimap-viewport-hover-test.mjs +0 -109
- package/scripts/topo-minimap-viewport-linejoin-test.mjs +0 -75
- package/scripts/topo-minimap-viewport-opacity-test.mjs +0 -96
- package/scripts/topo-minimap-viewport-rx-test.mjs +0 -85
- package/scripts/topo-minimap-viewport-smooth-test.mjs +0 -124
- package/scripts/topo-minimap-zoom-glow-test.mjs +0 -86
- package/scripts/topo-mobile-chips-test.mjs +0 -103
- package/scripts/topo-mock-large.mjs +0 -58
- package/scripts/topo-monogram-font-test.mjs +0 -112
- package/scripts/topo-monogram-stroke-test.mjs +0 -101
- package/scripts/topo-more-flows-fontweight-test.mjs +0 -103
- package/scripts/topo-more-flows-hover-letterspacing-test.mjs +0 -98
- package/scripts/topo-more-flows-letterspacing-test.mjs +0 -111
- package/scripts/topo-more-flows-unit-test.mjs +0 -95
- package/scripts/topo-more-footer-brightness-test.mjs +0 -94
- package/scripts/topo-node-a11y-test.mjs +0 -107
- package/scripts/topo-node-alias-brightness-test.mjs +0 -84
- package/scripts/topo-node-alias-chat-pin-test.mjs +0 -95
- package/scripts/topo-node-alias-letter-spacing-test.mjs +0 -112
- package/scripts/topo-node-avatar-halo-layers-test.mjs +0 -25
- package/scripts/topo-node-halo-hover-opacity-test.mjs +0 -104
- package/scripts/topo-node-halo-light-offline-test.mjs +0 -80
- package/scripts/topo-node-halo-offline-opacity-test.mjs +0 -87
- package/scripts/topo-node-hover-lift-test.mjs +0 -85
- package/scripts/topo-node-hover-ring-halo-layers-test.mjs +0 -70
- package/scripts/topo-node-label-card-elevation-test.mjs +0 -157
- package/scripts/topo-node-label-card-halo-test.mjs +0 -76
- package/scripts/topo-node-label-card-rx-test.mjs +0 -85
- package/scripts/topo-node-label-card-stroke-test.mjs +0 -135
- package/scripts/topo-node-pulse-peak-test.mjs +0 -89
- package/scripts/topo-node-pulse-trough-test.mjs +0 -91
- package/scripts/topo-node-stroke-transition-test.mjs +0 -103
- package/scripts/topo-node-sub-text-brightness-test.mjs +0 -88
- package/scripts/topo-node-sub-text-fw-test.mjs +0 -75
- package/scripts/topo-node-sub-text-letter-spacing-test.mjs +0 -115
- package/scripts/topo-node-text-fill-transition-test.mjs +0 -119
- package/scripts/topo-node-title-peers-test.mjs +0 -107
- package/scripts/topo-node-title-test.mjs +0 -101
- package/scripts/topo-nodesize-active-hover-test.mjs +0 -109
- package/scripts/topo-nodesize-brightness-test.mjs +0 -82
- package/scripts/topo-nodesize-crossfade-test.mjs +0 -141
- package/scripts/topo-nodesize-halo-layers-test.mjs +0 -89
- package/scripts/topo-nodesize-hover-fw-test.mjs +0 -99
- package/scripts/topo-offline-dim-test.mjs +0 -70
- package/scripts/topo-online-chip-nav-test.mjs +0 -143
- package/scripts/topo-orbit-particles-retired-test.mjs +0 -91
- package/scripts/topo-orphan-band-test.mjs +0 -106
- package/scripts/topo-orphan-box-dash-test.mjs +0 -89
- package/scripts/topo-orphan-fill-opacity-test.mjs +0 -91
- package/scripts/topo-orphan-label-italic-test.mjs +0 -90
- package/scripts/topo-orphan-label-opacity-test.mjs +0 -98
- package/scripts/topo-overlap-stale-build-guard-test.mjs +0 -66
- package/scripts/topo-overlap-test.mjs +0 -219
- package/scripts/topo-p0round-test.mjs +0 -166
- package/scripts/topo-pan-cursor-test.mjs +0 -62
- package/scripts/topo-panel-count-fw-hover-test.mjs +0 -105
- package/scripts/topo-panel-count-halo-layers-test.mjs +0 -91
- package/scripts/topo-panel-count-hover-ls-test.mjs +0 -87
- package/scripts/topo-panel-count-letterspacing-test.mjs +0 -89
- package/scripts/topo-panel-count-unit-test.mjs +0 -112
- package/scripts/topo-panel-elevation-test.mjs +0 -76
- package/scripts/topo-panel-fadein-test.mjs +0 -102
- package/scripts/topo-panel-hot-tail-fade-test.mjs +0 -132
- package/scripts/topo-panel-hover-elevation-test.mjs +0 -118
- package/scripts/topo-panel-rect-halo-test.mjs +0 -90
- package/scripts/topo-panel-rect-opacity-hover-test.mjs +0 -109
- package/scripts/topo-panel-row-brightness-test.mjs +0 -116
- package/scripts/topo-panel-rx-test.mjs +0 -90
- package/scripts/topo-panel-stroke-hover-test.mjs +0 -110
- package/scripts/topo-panel-theme-ease-test.mjs +0 -85
- package/scripts/topo-panel-title-brightness-test.mjs +0 -98
- package/scripts/topo-panel-title-fill-ease-test.mjs +0 -91
- package/scripts/topo-panel-title-glow-test.mjs +0 -111
- package/scripts/topo-panel-title-hover-letterspacing-test.mjs +0 -97
- package/scripts/topo-panel-title-tracking-test.mjs +0 -78
- package/scripts/topo-panel-titles-dual-axis-breath-test.mjs +0 -94
- package/scripts/topo-panel-titles-halo-layers-test.mjs +0 -23
- package/scripts/topo-panel-titles-triple-axis-breath-test.mjs +0 -161
- package/scripts/topo-particle-stagger-test.mjs +0 -82
- package/scripts/topo-pill-x-rotate-test.mjs +0 -96
- package/scripts/topo-pin-intersection-color-ease-test.mjs +0 -111
- package/scripts/topo-pin-intersection-empty-test.mjs +0 -129
- package/scripts/topo-pin-intersection-tabular-test.mjs +0 -96
- package/scripts/topo-pin-intersection-test.mjs +0 -121
- package/scripts/topo-pin-intersection-unit-test.mjs +0 -100
- package/scripts/topo-pin-intersection-warning-crossfade-test.mjs +0 -107
- package/scripts/topo-pin-mirror-transition-test.mjs +0 -101
- package/scripts/topo-pin-persistence-test.mjs +0 -105
- package/scripts/topo-pinned-aspect-test.mjs +0 -89
- package/scripts/topo-pip-brightness-test.mjs +0 -85
- package/scripts/topo-popover-meta-test.mjs +0 -78
- package/scripts/topo-prefix-opacity-test.mjs +0 -107
- package/scripts/topo-prepublish-guard-test.mjs +0 -95
- package/scripts/topo-pressure-bar-halo-layers-test.mjs +0 -19
- package/scripts/topo-pressure-bar-height-test.mjs +0 -92
- package/scripts/topo-pressure-bar-test.mjs +0 -69
- package/scripts/topo-pressure-hover-test.mjs +0 -123
- package/scripts/topo-pressure-kicker-fontweight-test.mjs +0 -76
- package/scripts/topo-pressure-pin-test.mjs +0 -119
- package/scripts/topo-pressure-seg-glow-test.mjs +0 -92
- package/scripts/topo-pressure-seg-member-alias-match-test.mjs +0 -133
- package/scripts/topo-pressure-seg-motion-test.mjs +0 -101
- package/scripts/topo-pressure-seg-self-hover-test.mjs +0 -126
- package/scripts/topo-pressure-seg-tooltip-test.mjs +0 -98
- package/scripts/topo-pressure-seg-transition-test.mjs +0 -107
- package/scripts/topo-pulse-dot-crossfade-test.mjs +0 -122
- package/scripts/topo-pulse-dot-retired-test.mjs +0 -86
- package/scripts/topo-pulse-rate-test.mjs +0 -71
- package/scripts/topo-r104-test.mjs +0 -54
- package/scripts/topo-r717-scan-beam-pair-pattern-test.mjs +0 -100
- package/scripts/topo-r717-triple-axis-pair-pattern-test.mjs +0 -113
- package/scripts/topo-r717-triple-axis-tier-pattern-test.mjs +0 -117
- package/scripts/topo-recent-count-brightness-test.mjs +0 -84
- package/scripts/topo-recent-hot-pulse-test.mjs +0 -102
- package/scripts/topo-recent-more-fw-test.mjs +0 -126
- package/scripts/topo-recent-more-halo-layers-test.mjs +0 -90
- package/scripts/topo-recent-panel-count-freshness-test.mjs +0 -109
- package/scripts/topo-recent-panel-count-test.mjs +0 -72
- package/scripts/topo-recent-panel-count-weight-test.mjs +0 -91
- package/scripts/topo-recent-panel-footer-breath-test.mjs +0 -142
- package/scripts/topo-recent-panel-hot-header-test.mjs +0 -132
- package/scripts/topo-recent-panel-hot-pulse-test.mjs +0 -105
- package/scripts/topo-recent-panel-hot-tabular-test.mjs +0 -113
- package/scripts/topo-recent-panel-more-crossfade-test.mjs +0 -124
- package/scripts/topo-recent-panel-more-cyan-hover-test.mjs +0 -151
- package/scripts/topo-recent-panel-more-nav-test.mjs +0 -127
- package/scripts/topo-recent-panel-more-test.mjs +0 -106
- package/scripts/topo-recent-panel-readability-bump-test.mjs +0 -151
- package/scripts/topo-recent-panel-title-breath-test.mjs +0 -91
- package/scripts/topo-recent-panel-title-fw-test.mjs +0 -106
- package/scripts/topo-recent-pip-halo-layers-test.mjs +0 -82
- package/scripts/topo-recent-pip-radius-2-test.mjs +0 -72
- package/scripts/topo-recent-pip-radius-test.mjs +0 -76
- package/scripts/topo-recent-row-chat-gate-test.mjs +0 -75
- package/scripts/topo-recent-row-content-lift-test.mjs +0 -140
- package/scripts/topo-recent-row-content-opacity-test.mjs +0 -81
- package/scripts/topo-recent-row-count-fill-test.mjs +0 -129
- package/scripts/topo-recent-row-count-pin-fw-test.mjs +0 -106
- package/scripts/topo-recent-row-count-weight-test.mjs +0 -112
- package/scripts/topo-recent-row-fadein-test.mjs +0 -107
- package/scripts/topo-recent-row-freshness-glow-test.mjs +0 -100
- package/scripts/topo-recent-row-freshness-test.mjs +0 -102
- package/scripts/topo-recent-row-fw-test.mjs +0 -115
- package/scripts/topo-recent-row-hot-test.mjs +0 -110
- package/scripts/topo-recent-row-hover-lift-test.mjs +0 -128
- package/scripts/topo-recent-row-hover-test.mjs +0 -122
- package/scripts/topo-recent-row-letter-spacing-test.mjs +0 -109
- package/scripts/topo-recent-row-pin-spacing-test.mjs +0 -137
- package/scripts/topo-recent-row-pin-test.mjs +0 -126
- package/scripts/topo-recent-row-pip-hover-r-test.mjs +0 -104
- package/scripts/topo-recent-row-text-cadence-test.mjs +0 -99
- package/scripts/topo-recent-row-text-fontweight-test.mjs +0 -90
- package/scripts/topo-recent-row-text-glow-test.mjs +0 -86
- package/scripts/topo-recent-row-text-halo-layers-test.mjs +0 -67
- package/scripts/topo-recent-row-tint-cadence-test.mjs +0 -96
- package/scripts/topo-recent-row-tint-test.mjs +0 -91
- package/scripts/topo-recent-row-title-test.mjs +0 -112
- package/scripts/topo-recent-row-ts-alpha-test.mjs +0 -100
- package/scripts/topo-recent-row-ts-lift-test.mjs +0 -97
- package/scripts/topo-recent-row-ts-tabular-test.mjs +0 -108
- package/scripts/topo-recent-row-ts-test.mjs +0 -95
- package/scripts/topo-recent-row-typography-test.mjs +0 -119
- package/scripts/topo-recent-signal-empty-hint-test.mjs +0 -73
- package/scripts/topo-recent-signal-empty-test.mjs +0 -63
- package/scripts/topo-recent-tint-brightness-test.mjs +0 -80
- package/scripts/topo-recent-ts-brightness-test.mjs +0 -86
- package/scripts/topo-reduced-motion-attr-test.mjs +0 -69
- package/scripts/topo-reduced-motion-test.mjs +0 -77
- package/scripts/topo-rename-test.mjs +0 -107
- package/scripts/topo-reset-brightness-test.mjs +0 -83
- package/scripts/topo-reset-hover-rotate-test.mjs +0 -102
- package/scripts/topo-reset-icon-hover-scale-test.mjs +0 -102
- package/scripts/topo-reset-spin-test.mjs +0 -120
- package/scripts/topo-respiratory-axis-count-stats-test.mjs +0 -154
- package/scripts/topo-respiratory-patterns-catalog-test.mjs +0 -112
- package/scripts/topo-respiratory-rolodex-test.mjs +0 -83
- package/scripts/topo-respiratory-tiers-catalog-test.mjs +0 -119
- package/scripts/topo-respiratory-triple-axis-surfaces-catalog-test.mjs +0 -127
- package/scripts/topo-runtime-badge-brightness-test.mjs +0 -78
- package/scripts/topo-runtime-badge-glow-test.mjs +0 -108
- package/scripts/topo-runtime-badge-grow-test.mjs +0 -114
- package/scripts/topo-runtime-badge-halo-layers-test.mjs +0 -87
- package/scripts/topo-runtime-badge-rotate-test.mjs +0 -85
- package/scripts/topo-runtime-icon-hover-test.mjs +0 -96
- package/scripts/topo-section-title-breath-test.mjs +0 -83
- package/scripts/topo-section-title-halo-layers-test.mjs +0 -88
- package/scripts/topo-shot.mjs +0 -31
- package/scripts/topo-spoke-active-opacity-test.mjs +0 -104
- package/scripts/topo-spoke-active-stroke-test.mjs +0 -95
- package/scripts/topo-spoke-chat-gate-test.mjs +0 -72
- package/scripts/topo-spoke-idle-opacity-test.mjs +0 -91
- package/scripts/topo-spokes-retired-test.mjs +0 -93
- package/scripts/topo-starfield-density-test.mjs +0 -89
- package/scripts/topo-starfield-hue-test.mjs +0 -109
- package/scripts/topo-status-chip-hover-test.mjs +0 -101
- package/scripts/topo-status-chip-tooltip-test.mjs +0 -95
- package/scripts/topo-status-pin-pill-halo-layers-test.mjs +0 -17
- package/scripts/topo-status-ring-brightness-test.mjs +0 -84
- package/scripts/topo-status-ring-chat-gate-test.mjs +0 -72
- package/scripts/topo-status-ring-halo-layers-test.mjs +0 -105
- package/scripts/topo-status-ring-hover-sw-test.mjs +0 -105
- package/scripts/topo-status-ring-status-halo-test.mjs +0 -110
- package/scripts/topo-statusbar-chips-self-hover-test.mjs +0 -177
- package/scripts/topo-sub-text-chat-brightness-test.mjs +0 -81
- package/scripts/topo-svg-focus-test.mjs +0 -112
- package/scripts/topo-svg-focus-transition-test.mjs +0 -105
- package/scripts/topo-svg-title-a11y-r731-test.mjs +0 -93
- package/scripts/topo-svg-title-a11y-test.mjs +0 -88
- package/scripts/topo-sweep-busyness-test.mjs +0 -94
- package/scripts/topo-tabular-nums-sweep-test.mjs +0 -93
- package/scripts/topo-tier-guide-dashes-test.mjs +0 -86
- package/scripts/topo-tier-ring-fadein-test.mjs +0 -107
- package/scripts/topo-tier-ring-occupancy-test.mjs +0 -87
- package/scripts/topo-tier-ring-test.mjs +0 -69
- package/scripts/topo-tier-ring-tint-test.mjs +0 -110
- package/scripts/topo-tier-stagger-test.mjs +0 -89
- package/scripts/topo-title-block-entrance-animation-test.mjs +0 -127
- package/scripts/topo-title-block-envelope-breath-test.mjs +0 -87
- package/scripts/topo-title-block-tight-leading-test.mjs +0 -95
- package/scripts/topo-title-tracking-test.mjs +0 -98
- package/scripts/topo-titleblock-gap-test.mjs +0 -86
- package/scripts/topo-titleblock-h2-hover-fw-test.mjs +0 -109
- package/scripts/topo-titleblock-h2-hover-tracking-test.mjs +0 -128
- package/scripts/topo-titleblock-kicker-hover-test.mjs +0 -134
- package/scripts/topo-titleblock-margin-test.mjs +0 -83
- package/scripts/topo-toggle-inactive-cyan-hover-test.mjs +0 -110
- package/scripts/topo-top-rail-theme-ease-test.mjs +0 -89
- package/scripts/topo-tree-diag.mjs +0 -95
- package/scripts/topo-tz-ghost-test.mjs +0 -69
- package/scripts/topo-vendor-activelinks-press-test.mjs +0 -100
- package/scripts/topo-vendor-chip-glow-test.mjs +0 -97
- package/scripts/topo-vendor-chip-halo-layers-test.mjs +0 -18
- package/scripts/topo-vendor-chip-hover-lift-test.mjs +0 -87
- package/scripts/topo-vendor-chip-hover-test.mjs +0 -111
- package/scripts/topo-vendor-chip-pin-halo-test.mjs +0 -88
- package/scripts/topo-vendor-chip-self-hover-test.mjs +0 -131
- package/scripts/topo-vendor-chip-tabular-test.mjs +0 -92
- package/scripts/topo-vendor-chip-threshold-test.mjs +0 -78
- package/scripts/topo-vendor-chip-weight-test.mjs +0 -87
- package/scripts/topo-vendor-count-suffix-halo-layers-test.mjs +0 -79
- package/scripts/topo-vendor-count-suffix-test.mjs +0 -95
- package/scripts/topo-vendor-distribution-wrapper-halo-test.mjs +0 -93
- package/scripts/topo-vendor-glyph-fontweight-test.mjs +0 -102
- package/scripts/topo-vendor-letter-halo-layers-test.mjs +0 -93
- package/scripts/topo-vendor-letter-hover-scale-test.mjs +0 -129
- package/scripts/topo-vendor-letter-tooltip-test.mjs +0 -92
- package/scripts/topo-vendor-pill-glow-test.mjs +0 -98
- package/scripts/topo-vendor-pill-test.mjs +0 -125
- package/scripts/topo-vendor-pin-test.mjs +0 -125
- package/scripts/topo-vendor-suffix-hover-brighten-test.mjs +0 -87
- package/scripts/topo-vendor-test.mjs +0 -97
- package/scripts/topo-view-smooth-test.mjs +0 -131
- package/scripts/topo-watermark-breath-test.mjs +0 -100
- package/scripts/topo-watermark-dual-axis-breath-test.mjs +0 -88
- package/scripts/topo-watermark-envelope-breath-test.mjs +0 -88
- package/scripts/topo-watermark-recede-test.mjs +0 -114
- package/scripts/topo-watermark-tracking-test.mjs +0 -99
- package/scripts/topo-watermark-triple-axis-breath-test.mjs +0 -129
- package/scripts/topo-wheel-zoom-test.mjs +0 -79
- package/scripts/topo-working-chip-pin-test.mjs +0 -154
- package/scripts/topo-working-halo-breath-retired-test.mjs +0 -99
- package/scripts/topo-working-online-chip-halo-layers-test.mjs +0 -94
- package/scripts/topo-wrapper-flow-arrow-theme-test.mjs +0 -97
- package/scripts/topo-wrapper-radius-test.mjs +0 -73
- package/scripts/topo-wrapper-shadow-theme-ease-test.mjs +0 -89
- package/scripts/topo-zoom-attr-test.mjs +0 -74
- package/scripts/topo-zoom-buttons-brightness-test.mjs +0 -94
- package/scripts/topo-zoom-icon-hover-scale-test.mjs +0 -114
- package/scripts/topo-zoom-in-out-halo-layers-test.mjs +0 -97
- package/scripts/topo-zoom-keys-test.mjs +0 -89
- package/scripts/topo-zoom-level-breath-test.mjs +0 -87
- package/scripts/topo-zoom-level-brightness-test.mjs +0 -83
- package/scripts/topo-zoom-level-color-test.mjs +0 -105
- package/scripts/topo-zoom-level-dual-axis-breath-test.mjs +0 -83
- package/scripts/topo-zoom-level-halo-layers-test.mjs +0 -78
- package/scripts/topo-zoom-level-hover-fw-test.mjs +0 -95
- package/scripts/topo-zoom-level-hover-letterspacing-test.mjs +0 -91
- package/scripts/topo-zoom-level-triple-axis-breath-test.mjs +0 -148
- /package/.next/static/{9xrepgGmTIkgV7uxJ0dm8 → tbzrvKcMw58fvU7N8zbS7}/_buildManifest.js +0 -0
- /package/.next/static/{9xrepgGmTIkgV7uxJ0dm8 → tbzrvKcMw58fvU7N8zbS7}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{9xrepgGmTIkgV7uxJ0dm8 → tbzrvKcMw58fvU7N8zbS7}/_ssgManifest.js +0 -0
package/scripts/loop-review.mjs
DELETED
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
/* Loop self-review — captures Overview in cyber+light × desktop+mobile,
|
|
2
|
-
* runs a few observable checks, prints a per-axis score. Not a regression
|
|
3
|
-
* test — the cron's "review and score then propose next round" output.
|
|
4
|
-
*
|
|
5
|
-
* Round 71: replaced the toy checks (overflow, sidebar visible, blur count)
|
|
6
|
-
* with checks that actually catch the bugs we keep shipping:
|
|
7
|
-
* - CTA-above-fold: does the primary "Spin up" / "Get started" / etc
|
|
8
|
-
* button live within the first viewport? (deduct 3)
|
|
9
|
-
* - Zero-card density: how many "0" stat cards are crammed in above the
|
|
10
|
-
* CTA? (deduct 1 per zero-card beyond the first 2)
|
|
11
|
-
* - Whitespace gap: any element-to-element vertical gap >200px in the
|
|
12
|
-
* top half? (deduct 1)
|
|
13
|
-
* - Misleading-copy: "All systems go" text rendered when nodes.total=0
|
|
14
|
-
* (deduct 2) — round-70-class bug guard
|
|
15
|
-
* - Old: theme, horizontal overflow, sidebar, glow tell — still in
|
|
16
|
-
*
|
|
17
|
-
* Score is 10 max; deductions accumulate. The pre-r70 design that scored
|
|
18
|
-
* 10/10 here should now score ~4–5.
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
import { chromium } from 'playwright';
|
|
22
|
-
import { mkdirSync } from 'node:fs';
|
|
23
|
-
import path from 'node:path';
|
|
24
|
-
|
|
25
|
-
const BASE = process.env.LOOP_REVIEW_BASE || 'http://127.0.0.1:3000';
|
|
26
|
-
const TOKEN = process.env.LOOP_REVIEW_TOKEN; // utok_...
|
|
27
|
-
const OUT = path.resolve(process.cwd(), 'test-results/loop-review');
|
|
28
|
-
mkdirSync(OUT, { recursive: true });
|
|
29
|
-
|
|
30
|
-
if (!TOKEN) {
|
|
31
|
-
console.error('LOOP_REVIEW_TOKEN env var required (utok_...)');
|
|
32
|
-
process.exit(1);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const viewports = [
|
|
36
|
-
{ tag: 'desktop', width: 1440, height: 900 },
|
|
37
|
-
{ tag: 'mobile', width: 390, height: 844 },
|
|
38
|
-
];
|
|
39
|
-
const themes = ['cyber', 'light'];
|
|
40
|
-
const pages = [
|
|
41
|
-
{ name: 'overview', path: '/' },
|
|
42
|
-
{ name: 'nodes', path: '/nodes' },
|
|
43
|
-
{ name: 'tasks', path: '/tasks' },
|
|
44
|
-
{ name: 'messages', path: '/messages' },
|
|
45
|
-
{ name: 'admin', path: '/admin' },
|
|
46
|
-
{ name: 'settings', path: '/settings' },
|
|
47
|
-
{ name: 'networks', path: '/settings/networks' },
|
|
48
|
-
{ name: 'logs', path: '/logs' },
|
|
49
|
-
];
|
|
50
|
-
|
|
51
|
-
const matrix = [];
|
|
52
|
-
for (const t of themes) for (const v of viewports) for (const p of pages) {
|
|
53
|
-
matrix.push({ theme: t, viewport: { width: v.width, height: v.height }, tag: v.tag, pageName: p.name, pagePath: p.path });
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const browser = await chromium.launch({ headless: true });
|
|
57
|
-
|
|
58
|
-
const report = [];
|
|
59
|
-
|
|
60
|
-
for (const m of matrix) {
|
|
61
|
-
const ctx = await browser.newContext({
|
|
62
|
-
viewport: m.viewport,
|
|
63
|
-
deviceScaleFactor: 1,
|
|
64
|
-
});
|
|
65
|
-
await ctx.addCookies([{
|
|
66
|
-
name: 'anet_dashboard_session',
|
|
67
|
-
value: `v3:${TOKEN}`,
|
|
68
|
-
domain: '127.0.0.1',
|
|
69
|
-
path: '/',
|
|
70
|
-
}]);
|
|
71
|
-
await ctx.addInitScript((theme) => {
|
|
72
|
-
try {
|
|
73
|
-
localStorage.setItem('anet-theme', theme);
|
|
74
|
-
sessionStorage.setItem('anet_v3_auth', '1');
|
|
75
|
-
} catch {}
|
|
76
|
-
}, m.theme);
|
|
77
|
-
|
|
78
|
-
const page = await ctx.newPage();
|
|
79
|
-
await page.goto(`${BASE}${m.pagePath}`, { waitUntil: 'domcontentloaded', timeout: 15000 });
|
|
80
|
-
await page.waitForTimeout(1200);
|
|
81
|
-
|
|
82
|
-
await page.evaluate((t) => document.documentElement.setAttribute('data-theme', t), m.theme);
|
|
83
|
-
await page.waitForTimeout(300);
|
|
84
|
-
|
|
85
|
-
const file = path.join(OUT, `${m.pageName}-${m.theme}-${m.tag}.png`);
|
|
86
|
-
// animations: 'disabled' so polling/spinner-induced render churn does
|
|
87
|
-
// not stall the screenshot when the dash is populated.
|
|
88
|
-
await page.screenshot({ path: file, fullPage: true, animations: 'disabled', timeout: 60000 });
|
|
89
|
-
|
|
90
|
-
const checks = await page.evaluate(() => {
|
|
91
|
-
const doc = document.documentElement;
|
|
92
|
-
const theme = doc.getAttribute('data-theme');
|
|
93
|
-
const body = document.body;
|
|
94
|
-
const bodyBg = getComputedStyle(body).backgroundColor;
|
|
95
|
-
const bodyFg = getComputedStyle(body).color;
|
|
96
|
-
|
|
97
|
-
const viewportH = window.innerHeight;
|
|
98
|
-
const viewportW = window.innerWidth;
|
|
99
|
-
|
|
100
|
-
// --- CTA-above-fold ---
|
|
101
|
-
// We treat any of these texts as the page's primary CTA:
|
|
102
|
-
// "Spin up your first agent" — empty Overview onboarding
|
|
103
|
-
// "Get started" — generic
|
|
104
|
-
// "Dispatch" (when not empty) — populated state primary action
|
|
105
|
-
const ctaTextRe = /Spin up your first agent|Get started/i;
|
|
106
|
-
const ctaCandidates = [...document.querySelectorAll('h1, h2, h3, p, div, button, a')]
|
|
107
|
-
.filter(el => ctaTextRe.test(el.textContent || ''));
|
|
108
|
-
let ctaTop = null;
|
|
109
|
-
if (ctaCandidates.length) {
|
|
110
|
-
// Pick the smallest (innermost) element matching to avoid catching a wrapping section
|
|
111
|
-
const sorted = ctaCandidates.sort((a, b) => (a.textContent?.length || 0) - (b.textContent?.length || 0));
|
|
112
|
-
const r = sorted[0].getBoundingClientRect();
|
|
113
|
-
ctaTop = r.top;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// --- Zero-card density ---
|
|
117
|
-
// Count visible elements whose trimmed text === "0". These are usually
|
|
118
|
-
// big stat-card values dominating prime real estate.
|
|
119
|
-
const zeroCards = [...document.querySelectorAll('div, span')]
|
|
120
|
-
.filter(el => {
|
|
121
|
-
const t = el.textContent?.trim();
|
|
122
|
-
if (t !== '0' && t !== '0/0') return false;
|
|
123
|
-
const r = el.getBoundingClientRect();
|
|
124
|
-
return r.top >= 0 && r.top < viewportH && r.width > 20 && r.height > 20;
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
// --- Whitespace gap ---
|
|
128
|
-
// Look for sibling-to-sibling top gaps >200px in the page content
|
|
129
|
-
// container. AppShell wraps page children in
|
|
130
|
-
// <main><HealthBanner/><div><div class="min-h-screen ...">{page}</div></div></main>,
|
|
131
|
-
// so we walk into that inner page wrapper to read real section gaps.
|
|
132
|
-
const main = document.querySelector('main');
|
|
133
|
-
const inner = main?.querySelector(':scope > div:last-of-type > div') || main || document.body;
|
|
134
|
-
const directKids = [...inner.children].filter(el => {
|
|
135
|
-
const r = el.getBoundingClientRect();
|
|
136
|
-
return r.height > 0 && r.width > 0;
|
|
137
|
-
});
|
|
138
|
-
let maxGap = 0;
|
|
139
|
-
for (let i = 0; i + 1 < directKids.length; i++) {
|
|
140
|
-
const a = directKids[i].getBoundingClientRect();
|
|
141
|
-
const b = directKids[i + 1].getBoundingClientRect();
|
|
142
|
-
if (a.bottom < 1600 && b.top - a.bottom > maxGap) {
|
|
143
|
-
maxGap = Math.round(b.top - a.bottom);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
// --- Misleading copy guard ---
|
|
148
|
-
// "All systems go" must not appear anywhere when nodes.total === 0.
|
|
149
|
-
// We can't read state directly, but if the page also shows
|
|
150
|
-
// "Waiting for first agent" then we know fleet is empty.
|
|
151
|
-
const bodyText = document.body.innerText;
|
|
152
|
-
const fleetEmpty = /Waiting for first agent/i.test(bodyText);
|
|
153
|
-
const sayingAllSystemsGo = /All systems go/i.test(bodyText);
|
|
154
|
-
const misleadingCopy = fleetEmpty && sayingAllSystemsGo;
|
|
155
|
-
|
|
156
|
-
// --- Carryover ---
|
|
157
|
-
const docWidth = doc.scrollWidth;
|
|
158
|
-
const horizontalOverflow = docWidth > viewportW + 2;
|
|
159
|
-
|
|
160
|
-
// --- Cut-off-element guard ---
|
|
161
|
-
// Round 96: scrollWidth check above is fooled when an overflowing
|
|
162
|
-
// parent has `overflow-x: hidden` (the page's own min-h-screen
|
|
163
|
-
// wrapper does this). Walk visible elements and flag any whose
|
|
164
|
-
// bounding rect ends past the viewport edge — that's a real cut-off
|
|
165
|
-
// even when the body's scroll-width matches. Skip elements with
|
|
166
|
-
// their own overflow scrolling (intentional inner scroll containers).
|
|
167
|
-
let cutoffCount = 0;
|
|
168
|
-
let cutoffSample = '';
|
|
169
|
-
// Cap the walk at 3000 elements (populated /server-logs has 500+ log
|
|
170
|
-
// rows × multiple spans each; without a cap the harness OOMs under
|
|
171
|
-
// chromium during the 32-capture sweep). Walk up ancestors to skip
|
|
172
|
-
// elements whose parent is an intentional horizontal-scroll
|
|
173
|
-
// container (overflow-x: auto / scroll) — those extending past the
|
|
174
|
-
// viewport edge is by design.
|
|
175
|
-
const hasScrollableAncestor = (el) => {
|
|
176
|
-
let cur = el;
|
|
177
|
-
while (cur && cur !== document.body) {
|
|
178
|
-
const cs = getComputedStyle(cur);
|
|
179
|
-
if (cs.overflowX === 'auto' || cs.overflowX === 'scroll') return true;
|
|
180
|
-
cur = cur.parentElement;
|
|
181
|
-
}
|
|
182
|
-
return false;
|
|
183
|
-
};
|
|
184
|
-
const allEls = document.querySelectorAll('body *');
|
|
185
|
-
const walk = Math.min(allEls.length, 3000);
|
|
186
|
-
for (let i = 0; i < walk; i++) {
|
|
187
|
-
const el = allEls[i];
|
|
188
|
-
const r = el.getBoundingClientRect();
|
|
189
|
-
if (r.width === 0 || r.height === 0) continue;
|
|
190
|
-
if (r.right <= viewportW + 8) continue;
|
|
191
|
-
if (hasScrollableAncestor(el)) continue;
|
|
192
|
-
cutoffCount++;
|
|
193
|
-
if (!cutoffSample) {
|
|
194
|
-
const txt = (el.textContent || '').trim().slice(0, 30);
|
|
195
|
-
cutoffSample = `${el.tagName} right=${Math.round(r.right)} "${txt}"`;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
let glowyCount = 0;
|
|
199
|
-
for (const el of document.querySelectorAll('body *')) {
|
|
200
|
-
const cs = getComputedStyle(el);
|
|
201
|
-
if (cs.filter && cs.filter.includes('blur(') && !cs.filter.includes('blur(0px)')) glowyCount++;
|
|
202
|
-
}
|
|
203
|
-
const sidebar = document.querySelector('aside, [data-sidebar], nav');
|
|
204
|
-
const sidebarRect = sidebar?.getBoundingClientRect();
|
|
205
|
-
const sidebarVisible = !!(sidebarRect && sidebarRect.width > 0 && sidebarRect.height > 0);
|
|
206
|
-
|
|
207
|
-
return {
|
|
208
|
-
theme, bodyBg, bodyFg,
|
|
209
|
-
viewportH, viewportW,
|
|
210
|
-
ctaTop, ctaPresent: ctaCandidates.length > 0,
|
|
211
|
-
zeroCardCount: zeroCards.length,
|
|
212
|
-
maxGap,
|
|
213
|
-
fleetEmpty, sayingAllSystemsGo, misleadingCopy,
|
|
214
|
-
docWidth, horizontalOverflow,
|
|
215
|
-
cutoffCount, cutoffSample,
|
|
216
|
-
glowyCount, sidebarVisible,
|
|
217
|
-
};
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
let score = 10;
|
|
221
|
-
const notes = [];
|
|
222
|
-
if (checks.theme !== m.theme) { score -= 3; notes.push(`theme=${checks.theme}`); }
|
|
223
|
-
if (checks.horizontalOverflow) { score -= 2; notes.push(`horiz overflow ${checks.docWidth}/${checks.viewportW}`); }
|
|
224
|
-
if (m.tag === 'desktop' && !checks.sidebarVisible) { score -= 1; notes.push('sidebar missing on desktop'); }
|
|
225
|
-
if (checks.glowyCount > 8) { score -= 1; notes.push(`${checks.glowyCount} blur-filter elements (glow tell)`); }
|
|
226
|
-
|
|
227
|
-
// New checks — the ones that would have caught r70's bug
|
|
228
|
-
if (checks.ctaPresent && checks.ctaTop !== null) {
|
|
229
|
-
if (checks.ctaTop > checks.viewportH) {
|
|
230
|
-
score -= 3;
|
|
231
|
-
notes.push(`CTA below fold (top=${Math.round(checks.ctaTop)} > vh=${checks.viewportH})`);
|
|
232
|
-
} else if (checks.ctaTop > checks.viewportH * 0.7) {
|
|
233
|
-
score -= 1;
|
|
234
|
-
notes.push(`CTA low in fold (top=${Math.round(checks.ctaTop)})`);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
if (checks.zeroCardCount > 4) {
|
|
238
|
-
const extra = Math.min(checks.zeroCardCount - 4, 3);
|
|
239
|
-
score -= extra;
|
|
240
|
-
notes.push(`${checks.zeroCardCount} zero-value cards above fold`);
|
|
241
|
-
}
|
|
242
|
-
if (checks.maxGap > 200) {
|
|
243
|
-
score -= 1;
|
|
244
|
-
notes.push(`whitespace gap ${checks.maxGap}px`);
|
|
245
|
-
}
|
|
246
|
-
if (checks.misleadingCopy) {
|
|
247
|
-
score -= 2;
|
|
248
|
-
notes.push(`'All systems go' shown while fleet empty`);
|
|
249
|
-
}
|
|
250
|
-
if (checks.cutoffCount > 0) {
|
|
251
|
-
score -= 2;
|
|
252
|
-
notes.push(`${checks.cutoffCount} cut-off element(s); first: ${checks.cutoffSample}`);
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
report.push({ ...m, file, checks, score: Math.max(score, 0), notes });
|
|
256
|
-
|
|
257
|
-
await page.close();
|
|
258
|
-
await ctx.close();
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
await browser.close();
|
|
262
|
-
|
|
263
|
-
console.log('\n=== Loop self-review (harness r73) ===\n');
|
|
264
|
-
for (const r of report) {
|
|
265
|
-
console.log(`${r.pageName.padEnd(8)} ${r.theme}/${r.tag.padEnd(7)} score=${r.score}/10`);
|
|
266
|
-
console.log(` cta_top=${r.checks.ctaTop !== null ? Math.round(r.checks.ctaTop) : '--'} zero_cards=${r.checks.zeroCardCount} max_gap=${r.checks.maxGap}px fleet_empty=${r.checks.fleetEmpty}`);
|
|
267
|
-
if (r.notes.length) console.log(` notes: ${r.notes.join(' · ')}`);
|
|
268
|
-
}
|
|
269
|
-
const avg = report.reduce((s, r) => s + r.score, 0) / report.length;
|
|
270
|
-
console.log(`\noverall avg = ${avg.toFixed(1)}/10 across ${report.length} captures`);
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { chromium } from 'playwright';
|
|
2
|
-
const TOKEN = process.env.LOOP_REVIEW_TOKEN;
|
|
3
|
-
const browser = await chromium.launch({ headless: true });
|
|
4
|
-
const ctx = await browser.newContext({ viewport: { width: 1440, height: 900 } });
|
|
5
|
-
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
6
|
-
await ctx.addInitScript(() => { try { localStorage.setItem('anet-theme','cyber'); sessionStorage.setItem('anet_v3_auth','1'); } catch {} });
|
|
7
|
-
await ctx.route('**/api/hub/networks*', async (route) => {
|
|
8
|
-
await route.fulfill({ json: { ok: true, networks: [{ network_id: 'default', network_name: 'default', role: 'owner' }] } });
|
|
9
|
-
});
|
|
10
|
-
const page = await ctx.newPage();
|
|
11
|
-
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
12
|
-
await page.waitForTimeout(3500);
|
|
13
|
-
// crop the sidebar region
|
|
14
|
-
await page.screenshot({ path: '/tmp/anet-issue-50/network-derive.png', clip: { x: 0, y: 0, width: 230, height: 420 } });
|
|
15
|
-
await browser.close();
|
|
16
|
-
console.log('done');
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { chromium } from 'playwright';
|
|
2
|
-
const TOKEN = process.env.LOOP_REVIEW_TOKEN;
|
|
3
|
-
const browser = await chromium.launch({ headless: true });
|
|
4
|
-
const ctx = await browser.newContext({ viewport: { width: 1440, height: 900 } });
|
|
5
|
-
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
6
|
-
await ctx.addInitScript(() => { try { localStorage.setItem('anet-theme','cyber'); sessionStorage.setItem('anet_v3_auth','1'); } catch {} });
|
|
7
|
-
// simulate the #92 bug: /api/networks scope-limited to only "default"
|
|
8
|
-
await ctx.route('**/api/hub/networks*', async (route) => {
|
|
9
|
-
await route.fulfill({ json: { ok: true, networks: [{ network_id: 'default', network_name: 'default', role: 'owner' }] } });
|
|
10
|
-
});
|
|
11
|
-
// see what real network_ids the sessions carry
|
|
12
|
-
const page = await ctx.newPage();
|
|
13
|
-
const apiRes = await page.goto('http://127.0.0.1:3000/api/hub/status', { waitUntil: 'domcontentloaded' });
|
|
14
|
-
const statusBody = await apiRes.json();
|
|
15
|
-
const realNetIds = [...new Set((statusBody.sessions||[]).map(s => s.network_id).filter(Boolean))];
|
|
16
|
-
console.log('real network_ids in sessions:', JSON.stringify(realNetIds));
|
|
17
|
-
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
18
|
-
await page.waitForTimeout(3500);
|
|
19
|
-
// read the Sidebar network buttons
|
|
20
|
-
const sidebarNets = await page.evaluate(() => {
|
|
21
|
-
const hdr = [...document.querySelectorAll('div')].find(d => d.textContent?.trim() === 'Networks');
|
|
22
|
-
if (!hdr) return { error: 'no Networks header' };
|
|
23
|
-
const list = hdr.nextElementSibling;
|
|
24
|
-
return [...list.querySelectorAll('button')].map(b => b.textContent.trim());
|
|
25
|
-
});
|
|
26
|
-
console.log('Sidebar shows networks:', JSON.stringify(sidebarNets));
|
|
27
|
-
await browser.close();
|
|
28
|
-
console.log('done');
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { chromium } from 'playwright';
|
|
2
|
-
import { readFileSync } from 'node:fs';
|
|
3
|
-
const out = process.argv[2] || 'screenshots/v0.11.0-147/after';
|
|
4
|
-
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
5
|
-
const browser = await chromium.launch({ headless: true });
|
|
6
|
-
const ctx = await browser.newContext({ viewport: { width: 1600, height: 1400 }, deviceScaleFactor: 2 });
|
|
7
|
-
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
8
|
-
await ctx.addInitScript(() => { try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); localStorage.setItem('anet-topo-layout', 'grid'); } catch {} });
|
|
9
|
-
const fresh = new Date(Date.now() - 60_000).toISOString();
|
|
10
|
-
// Build a multi-prefix-group fleet (4 prefixes × 5 nodes = 20 nodes — triggers grid + multiple cluster boxes)
|
|
11
|
-
const sessions = [];
|
|
12
|
-
const prefixes = ['ai-insight', 'agent-network-dashboard', 'p-station', 'pay-blueleap'];
|
|
13
|
-
const models = ['claude-opus-4', 'gpt-4o', 'internlm/internlm2', 'minimax/abab6'];
|
|
14
|
-
prefixes.forEach((prefix, gIdx) => {
|
|
15
|
-
for (let i = 1; i <= 5; i++) {
|
|
16
|
-
sessions.push({
|
|
17
|
-
alias: `${prefix}-node-${i}`,
|
|
18
|
-
status: i === 1 ? 'working' : 'idle',
|
|
19
|
-
model: models[gIdx],
|
|
20
|
-
runtime: 'claude-code-cli',
|
|
21
|
-
network_id: 'default', project_dir: null,
|
|
22
|
-
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
await ctx.route('**/api/hub/status*', async (route) => {
|
|
27
|
-
const r = await route.fetch();
|
|
28
|
-
const b = await r.json();
|
|
29
|
-
await route.fulfill({ response: r, json: { ...b, sessions } });
|
|
30
|
-
});
|
|
31
|
-
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
32
|
-
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
33
|
-
const page = await ctx.newPage();
|
|
34
|
-
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
35
|
-
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length >= 20, { timeout: 30000 });
|
|
36
|
-
await page.waitForTimeout(800);
|
|
37
|
-
const box = await page.evaluate(() => {
|
|
38
|
-
const chrome = document.querySelector('[data-topo-chrome]');
|
|
39
|
-
let card = chrome?.parentElement;
|
|
40
|
-
while (card && !card.querySelector(':scope > svg')) card = card?.parentElement;
|
|
41
|
-
if (!card) return null;
|
|
42
|
-
card.scrollIntoView({ block: 'start' });
|
|
43
|
-
return new Promise(resolve => requestAnimationFrame(() => {
|
|
44
|
-
const r = card.getBoundingClientRect();
|
|
45
|
-
resolve({ x: Math.max(0, r.x), y: Math.max(0, r.y), width: r.width, height: r.height });
|
|
46
|
-
}));
|
|
47
|
-
});
|
|
48
|
-
await page.waitForTimeout(400);
|
|
49
|
-
if (box && box.width > 100) {
|
|
50
|
-
await page.screenshot({ path: `${out}.png`, clip: { x: box.x, y: box.y, width: box.width, height: Math.min(box.height, 980) } });
|
|
51
|
-
}
|
|
52
|
-
console.log(`✅ wrote ${out}.png`);
|
|
53
|
-
await browser.close();
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/* v0.10.0 Hero 1+2 — ServersDrawer extension screenshot evidence for #140.
|
|
2
|
-
* Mocks the /api/hub/servers response with disk + history + agents
|
|
3
|
-
* to surface the new expandable detail view. */
|
|
4
|
-
import { chromium } from 'playwright';
|
|
5
|
-
import { readFileSync } from 'node:fs';
|
|
6
|
-
|
|
7
|
-
const out = process.argv[2] || 'screenshots/r293-p0/servers-drawer-expanded';
|
|
8
|
-
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
9
|
-
const browser = await chromium.launch({ headless: true });
|
|
10
|
-
const ctx = await browser.newContext({ viewport: { width: 1600, height: 1000 }, deviceScaleFactor: 2 });
|
|
11
|
-
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
12
|
-
await ctx.addInitScript(() => {
|
|
13
|
-
try {
|
|
14
|
-
localStorage.setItem('anet-theme', 'cyber');
|
|
15
|
-
sessionStorage.setItem('anet_v3_auth', '1');
|
|
16
|
-
// Force drawer open + expand the first card by hostname guess.
|
|
17
|
-
localStorage.setItem('anet-servers-drawer', '1');
|
|
18
|
-
localStorage.setItem('anet-servers-drawer-expanded', JSON.stringify(['mock-1', 'mock-2']));
|
|
19
|
-
} catch {}
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
// Mock servers payload with full v0.10.0 schema.
|
|
23
|
-
await ctx.route('**/api/hub/servers*', (route) => {
|
|
24
|
-
route.fulfill({
|
|
25
|
-
json: {
|
|
26
|
-
servers: [
|
|
27
|
-
{
|
|
28
|
-
hostname: 'mock-1',
|
|
29
|
-
ip: '10.0.0.10',
|
|
30
|
-
cpu_load_1min: 2.4,
|
|
31
|
-
cpu_cores: 8,
|
|
32
|
-
mem_used_gb: 18.2,
|
|
33
|
-
mem_total_gb: 32,
|
|
34
|
-
disk_used_gb: 220,
|
|
35
|
-
disk_total_gb: 500,
|
|
36
|
-
cpu_history: [25, 28, 32, 30, 35, 38, 40, 36, 33, 30],
|
|
37
|
-
mem_history: [50, 52, 55, 56, 58, 57, 59, 60, 58, 57],
|
|
38
|
-
disk_history: [40, 42, 43, 43, 44, 44, 44, 44, 44, 44],
|
|
39
|
-
agents: [
|
|
40
|
-
{ alias: 'claude-1', runtime: 'claude-code-cli', status: 'working', progress: 0.42 },
|
|
41
|
-
{ alias: 'codex-1', runtime: 'codex-sdk', status: 'working', progress: 0.18 },
|
|
42
|
-
{ alias: 'intern-1', runtime: 'claude-agent-sdk', status: 'idle' },
|
|
43
|
-
],
|
|
44
|
-
agent_count: 3,
|
|
45
|
-
status: 'online',
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
hostname: 'mock-2',
|
|
49
|
-
ip: '10.0.0.11',
|
|
50
|
-
cpu_load_1min: 7.1,
|
|
51
|
-
cpu_cores: 4,
|
|
52
|
-
mem_used_gb: 14.5,
|
|
53
|
-
mem_total_gb: 16,
|
|
54
|
-
disk_used_gb: 460,
|
|
55
|
-
disk_total_gb: 500,
|
|
56
|
-
cpu_history: [80, 88, 92, 95, 96, 94, 93, 91, 90, 89],
|
|
57
|
-
mem_history: [85, 87, 89, 91, 90, 92, 93, 91, 90, 91],
|
|
58
|
-
disk_history: [86, 88, 89, 90, 90, 91, 92, 92, 92, 92],
|
|
59
|
-
agents: [
|
|
60
|
-
{ alias: 'minimax-busy', runtime: 'claude-code-cli', status: 'working', progress: 0.78 },
|
|
61
|
-
],
|
|
62
|
-
agent_count: 1,
|
|
63
|
-
status: 'online',
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
hostname: 'mock-offline',
|
|
67
|
-
ip: '10.0.0.20',
|
|
68
|
-
cpu_load_1min: null,
|
|
69
|
-
cpu_cores: 0,
|
|
70
|
-
mem_used_gb: null,
|
|
71
|
-
mem_total_gb: null,
|
|
72
|
-
agent_count: 2,
|
|
73
|
-
status: 'offline',
|
|
74
|
-
note: 'last seen 12m ago',
|
|
75
|
-
},
|
|
76
|
-
],
|
|
77
|
-
},
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
await ctx.route('**/api/hub/status*', (r) => r.fulfill({ json: { sessions: [], hub: { networks: [] } } }));
|
|
81
|
-
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
82
|
-
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
83
|
-
|
|
84
|
-
const page = await ctx.newPage();
|
|
85
|
-
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
|
|
86
|
-
await page.waitForSelector('[data-server-card]', { timeout: 15000 });
|
|
87
|
-
await page.waitForTimeout(800);
|
|
88
|
-
|
|
89
|
-
// Crop to the drawer region only.
|
|
90
|
-
const box = await page.evaluate(() => {
|
|
91
|
-
const aside = document.querySelector('[aria-label="Servers panel"]');
|
|
92
|
-
if (!aside) return null;
|
|
93
|
-
const r = aside.getBoundingClientRect();
|
|
94
|
-
return { x: r.x - 8, y: r.y - 8, width: r.width + 16, height: Math.min(r.height + 16, 980) };
|
|
95
|
-
});
|
|
96
|
-
if (box && box.width > 100) {
|
|
97
|
-
await page.screenshot({ path: `${out}.png`, clip: box });
|
|
98
|
-
}
|
|
99
|
-
await page.screenshot({ path: `${out}-full.png`, fullPage: false });
|
|
100
|
-
console.log(`✅ wrote ${out}.png + ${out}-full.png`);
|
|
101
|
-
await browser.close();
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/* P0 (Vincent 5222) baseline + after screenshot of TopoGraph with a
|
|
2
|
-
* realistic 4-agent mixed-vendor fleet. Usage:
|
|
3
|
-
* node scripts/p0-topo-screenshot.mjs <out-prefix>
|
|
4
|
-
* Writes <out-prefix>-full.png (1600×900) and <out-prefix>-svg.png
|
|
5
|
-
* (just the SVG bbox, cropped). */
|
|
6
|
-
import { chromium } from 'playwright';
|
|
7
|
-
import { readFileSync } from 'node:fs';
|
|
8
|
-
|
|
9
|
-
const outPrefix = process.argv[2] || 'screenshots/r293-p0/baseline';
|
|
10
|
-
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
11
|
-
const browser = await chromium.launch({ headless: true });
|
|
12
|
-
const ctx = await browser.newContext({ viewport: { width: 1600, height: 1400 }, deviceScaleFactor: 2 });
|
|
13
|
-
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
14
|
-
await ctx.addInitScript(() => {
|
|
15
|
-
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
16
|
-
});
|
|
17
|
-
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
18
|
-
await ctx.route('**/api/hub/status*', async (route) => {
|
|
19
|
-
const r = await route.fetch();
|
|
20
|
-
const b = await r.json();
|
|
21
|
-
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
22
|
-
const mk = (alias, model, status = 'working') => ({
|
|
23
|
-
alias, status, model, runtime: 'claude-code-cli',
|
|
24
|
-
network_id: nid, project_dir: null,
|
|
25
|
-
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
26
|
-
});
|
|
27
|
-
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
28
|
-
mk('claude-1', 'claude-opus-4'),
|
|
29
|
-
mk('claude-2', 'claude-sonnet-4', 'idle'),
|
|
30
|
-
mk('codex-1', 'gpt-4o'),
|
|
31
|
-
mk('intern-1', 'internlm/internlm2'),
|
|
32
|
-
mk('minimax-1', 'minimax/abab6', 'idle'),
|
|
33
|
-
] } });
|
|
34
|
-
});
|
|
35
|
-
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [
|
|
36
|
-
{ from: 'claude-1', to: 'codex-1', text: 'review the diff please', ts: fresh },
|
|
37
|
-
{ from: 'codex-1', to: 'claude-1', text: 'lgtm, ship', ts: fresh },
|
|
38
|
-
{ from: 'intern-1', to: 'claude-1', text: 'logs uploaded', ts: fresh },
|
|
39
|
-
] } }));
|
|
40
|
-
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
41
|
-
|
|
42
|
-
const page = await ctx.newPage();
|
|
43
|
-
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
44
|
-
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length >= 4, { timeout: 30000 });
|
|
45
|
-
await page.waitForTimeout(800);
|
|
46
|
-
|
|
47
|
-
// Scroll the topology card into view + measure.
|
|
48
|
-
const topoBox = await page.evaluate(() => {
|
|
49
|
-
const chromeEl = document.querySelector('[data-topo-chrome]');
|
|
50
|
-
if (!chromeEl) return null;
|
|
51
|
-
// Walk up to find the topology card container — has the SVG inside.
|
|
52
|
-
let card = chromeEl.parentElement;
|
|
53
|
-
while (card && !card.querySelector(':scope > svg')) card = card.parentElement;
|
|
54
|
-
if (!card) return null;
|
|
55
|
-
card.scrollIntoView({ block: 'start' });
|
|
56
|
-
// Allow scroll to settle.
|
|
57
|
-
return new Promise(resolve => {
|
|
58
|
-
requestAnimationFrame(() => {
|
|
59
|
-
const r = card.getBoundingClientRect();
|
|
60
|
-
resolve({ x: Math.max(0, r.x), y: Math.max(0, r.y), width: r.width, height: r.height });
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
await page.waitForTimeout(400);
|
|
65
|
-
|
|
66
|
-
await page.screenshot({ path: `${outPrefix}-full.png`, fullPage: false });
|
|
67
|
-
if (topoBox && topoBox.width > 100 && topoBox.height > 100) {
|
|
68
|
-
// Re-measure after settling.
|
|
69
|
-
const box2 = await page.evaluate(() => {
|
|
70
|
-
const chromeEl = document.querySelector('[data-topo-chrome]');
|
|
71
|
-
let card = chromeEl?.parentElement;
|
|
72
|
-
while (card && !card.querySelector(':scope > svg')) card = card?.parentElement;
|
|
73
|
-
if (!card) return null;
|
|
74
|
-
const r = card.getBoundingClientRect();
|
|
75
|
-
return { x: Math.max(0, r.x), y: Math.max(0, r.y), width: r.width, height: r.height };
|
|
76
|
-
});
|
|
77
|
-
if (box2) {
|
|
78
|
-
await page.screenshot({ path: `${outPrefix}-topo.png`, clip: box2 });
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
console.log(`✅ wrote ${outPrefix}-full.png + ${outPrefix}-topo.png`);
|
|
82
|
-
await browser.close();
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/* v0.10.4 #150 — orphan layout screenshot evidence.
|
|
2
|
-
*
|
|
3
|
-
* Fixture: 3 prefix groups (5+3+4 = 12 grouped) + 5 distinct-prefix
|
|
4
|
-
* singletons (orphans). Pre-#150 the singletons appeared scattered
|
|
5
|
-
* in centred bands between cluster boxes. Post-#150 they all bundle
|
|
6
|
-
* into one "其他" cluster box at the bottom. */
|
|
7
|
-
import { chromium } from 'playwright';
|
|
8
|
-
import { readFileSync } from 'node:fs';
|
|
9
|
-
|
|
10
|
-
const out = process.argv[2] || 'screenshots/v0.10.4-150-orphans/after';
|
|
11
|
-
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
12
|
-
const browser = await chromium.launch({ headless: true });
|
|
13
|
-
const ctx = await browser.newContext({ viewport: { width: 1600, height: 1500 }, deviceScaleFactor: 2 });
|
|
14
|
-
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
15
|
-
await ctx.addInitScript(() => {
|
|
16
|
-
try {
|
|
17
|
-
localStorage.setItem('anet-theme', 'cyber');
|
|
18
|
-
sessionStorage.setItem('anet_v3_auth', '1');
|
|
19
|
-
// Force grid layout so the orphan band is visible
|
|
20
|
-
localStorage.setItem('anet-topo-layout', 'grid');
|
|
21
|
-
} catch {}
|
|
22
|
-
});
|
|
23
|
-
const fresh = new Date(Date.now() - 60_000).toISOString();
|
|
24
|
-
const sessions = [];
|
|
25
|
-
// Group 1: ai-insight × 5
|
|
26
|
-
for (let i = 1; i <= 5; i++) sessions.push({
|
|
27
|
-
alias: `ai-insight-node-${i}`, status: i === 1 ? 'working' : 'idle',
|
|
28
|
-
model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
29
|
-
network_id: 'default', project_dir: null,
|
|
30
|
-
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
31
|
-
});
|
|
32
|
-
// Group 2: agent-network-dashboard × 3
|
|
33
|
-
for (let i = 1; i <= 3; i++) sessions.push({
|
|
34
|
-
alias: `agent-network-dashboard-${i}`, status: i === 1 ? 'working' : 'idle',
|
|
35
|
-
model: 'gpt-4o', runtime: 'codex-sdk',
|
|
36
|
-
network_id: 'default', project_dir: null,
|
|
37
|
-
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
38
|
-
});
|
|
39
|
-
// Group 3: p-station × 4
|
|
40
|
-
for (let i = 1; i <= 4; i++) sessions.push({
|
|
41
|
-
alias: `p-station-worker-${i}`, status: i === 1 ? 'working' : 'idle',
|
|
42
|
-
model: 'minimax/abab6', runtime: 'http-api',
|
|
43
|
-
network_id: 'default', project_dir: null,
|
|
44
|
-
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
45
|
-
});
|
|
46
|
-
// Orphans: 5 distinct-prefix singletons — should bundle into "其他" bottom band
|
|
47
|
-
['monitor-prod', 'dispatcher-bot', 'runner-helper', 'oracle-svc', 'cron-worker'].forEach((alias, idx) => {
|
|
48
|
-
sessions.push({
|
|
49
|
-
alias, status: idx % 2 === 0 ? 'working' : 'idle',
|
|
50
|
-
model: 'claude-sonnet-4', runtime: 'claude-agent-sdk',
|
|
51
|
-
network_id: 'default', project_dir: null,
|
|
52
|
-
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
await ctx.route('**/api/hub/status*', async (route) => {
|
|
56
|
-
const r = await route.fetch();
|
|
57
|
-
const b = await r.json();
|
|
58
|
-
await route.fulfill({ response: r, json: { ...b, sessions } });
|
|
59
|
-
});
|
|
60
|
-
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
61
|
-
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
62
|
-
const page = await ctx.newPage();
|
|
63
|
-
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
64
|
-
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length >= 17, { timeout: 30000 });
|
|
65
|
-
await page.waitForTimeout(800);
|
|
66
|
-
const box = await page.evaluate(() => {
|
|
67
|
-
const chrome = document.querySelector('[data-topo-chrome]');
|
|
68
|
-
let card = chrome?.parentElement;
|
|
69
|
-
while (card && !card.querySelector(':scope > svg')) card = card?.parentElement;
|
|
70
|
-
if (!card) return null;
|
|
71
|
-
card.scrollIntoView({ block: 'start' });
|
|
72
|
-
return new Promise(resolve => requestAnimationFrame(() => {
|
|
73
|
-
const r = card.getBoundingClientRect();
|
|
74
|
-
resolve({ x: Math.max(0, r.x), y: Math.max(0, r.y), width: r.width, height: r.height });
|
|
75
|
-
}));
|
|
76
|
-
});
|
|
77
|
-
await page.waitForTimeout(400);
|
|
78
|
-
if (box && box.width > 100) {
|
|
79
|
-
await page.screenshot({ path: `${out}.png`, clip: { x: box.x, y: box.y, width: box.width, height: Math.min(box.height, 1200) } });
|
|
80
|
-
}
|
|
81
|
-
console.log(`✅ wrote ${out}.png`);
|
|
82
|
-
await browser.close();
|