@sleep2agi/agent-network-dashboard 0.5.6 → 0.5.7-preview.1
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/0milchnxu3pma.js +1 -0
- package/.next/static/chunks/0oo6ou1f1vfaj.js +1 -0
- package/.next/static/chunks/0uzchut_f9a6m.js +1 -0
- package/.next/static/chunks/0~dcueyvq.4ra.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/bin/start.js +3 -3
- 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 → TvIJHvMV6_ETYDMkMySqd}/_buildManifest.js +0 -0
- /package/.next/static/{9xrepgGmTIkgV7uxJ0dm8 → TvIJHvMV6_ETYDMkMySqd}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{9xrepgGmTIkgV7uxJ0dm8 → TvIJHvMV6_ETYDMkMySqd}/_ssgManifest.js +0 -0
|
@@ -1,797 +0,0 @@
|
|
|
1
|
-
# Dashboard Frontend Polish — Loop Rounds
|
|
2
|
-
|
|
3
|
-
> 5-minute iterative polish loop. Each round: pick one focused UI change (no
|
|
4
|
-
> business logic), implement, screenshot via Playwright on both themes ×
|
|
5
|
-
> both viewports, self-score, propose next round.
|
|
6
|
-
>
|
|
7
|
-
> Aesthetic constraints (per Vincent):
|
|
8
|
-
> - Minimal / restrained — NOT AI-glow heavy
|
|
9
|
-
> - Both Dark (Cyber) and Light themes
|
|
10
|
-
> - Mobile + Desktop both adapt
|
|
11
|
-
> - No business logic changes
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Round 1 — Login page polish
|
|
16
|
-
|
|
17
|
-
### What changed
|
|
18
|
-
- **Brand mark**: replaced flat emerald square with the existing 3-node
|
|
19
|
-
mesh SVG (cyan/green/violet). The mark IS the agent-network concept
|
|
20
|
-
(nodes + edges), so it doubles as both logo and visual story.
|
|
21
|
-
- **Tagline**: added "One control plane for your AI agents · Tasks · Mesh
|
|
22
|
-
· Messages" under the H1 — answers "what is this thing" for new users
|
|
23
|
-
who arrive via the OSS repo.
|
|
24
|
-
- **Background**: subtle dot grid in light themes (`24px 24px` radial
|
|
25
|
-
dots, very low opacity) + faint radial wash. In Cyber, kept only a
|
|
26
|
-
whisper of cyan/blue radial — the only "glow" allowed in the whole app.
|
|
27
|
-
- **Vertical layout**: tightened padding (`py-10 sm:py-16`), removed the
|
|
28
|
-
~250px dead space above the logo on desktop.
|
|
29
|
-
- **Footer hierarchy**: changed `Powered by Sleep2AGI` (single small
|
|
30
|
-
grey line) to a 2-line block: `Powered by Sleep2AGI · Apache-2.0` then
|
|
31
|
-
`anet.sh` (signals OSS + canonical home).
|
|
32
|
-
- **Brand mark surface**: light theme gets a soft white chip with `0 0 0
|
|
33
|
-
1px var(--border)` halo; dark themes keep their navy.
|
|
34
|
-
|
|
35
|
-
### Files touched
|
|
36
|
-
- `app/login/page.tsx` (markup + tagline + brand SVG inline)
|
|
37
|
-
- `app/globals.css` (`.anet-login-bg`, `.anet-login-mark` rules at end of
|
|
38
|
-
file)
|
|
39
|
-
|
|
40
|
-
### Screenshots
|
|
41
|
-
- `/tmp/loop-r1/light-desktop.png` ✓
|
|
42
|
-
- `/tmp/loop-r1/light-mobile.png` ✓
|
|
43
|
-
- `/tmp/loop-r1/cyber-desktop.png` ✓
|
|
44
|
-
- `/tmp/loop-r1/cyber-mobile.png` ✓
|
|
45
|
-
|
|
46
|
-
### Self-score: **7.8 / 10**
|
|
47
|
-
|
|
48
|
-
| Dimension | Score | Notes |
|
|
49
|
-
|----------------------------------|------:|------------------------------------------------------------------------------------------|
|
|
50
|
-
| First-impression clarity | 9 | Tagline + mesh mark immediately tell the story |
|
|
51
|
-
| Brand consistency | 9 | Mark = product concept, same image across themes |
|
|
52
|
-
| Minimal/non-AI-glow | 8 | Cyber kept ~1 radial wash only (compromise: zero would feel flat) |
|
|
53
|
-
| Light/dark theme harmony | 8 | Tagline + footer + form translate cleanly |
|
|
54
|
-
| Mobile adaptation | 8 | Wraps fine; could shrink mark slightly on <320px screens |
|
|
55
|
-
| Restraint (no decoration noise) | 8 | Dot grid is borderline; if it reads as "wallpaper" I'd remove it |
|
|
56
|
-
| Affordance (what to click) | 7 | Tabs visually OK; disabled "Sign in" button in cyber is hard to tell from active until you focus an input |
|
|
57
|
-
|
|
58
|
-
**Deductions**:
|
|
59
|
-
- −0.8: brand mark is static. Could pulse subtly (one node fading in/out
|
|
60
|
-
on a slow 4s loop) to hint at "live agent network" — but might cross
|
|
61
|
-
back into AI-glow territory. Test in round 4 maybe.
|
|
62
|
-
- −0.7: footer feels slightly redundant ("Apache-2.0" + "anet.sh" stacked).
|
|
63
|
-
Could be `Sleep2AGI · Apache-2.0 · anet.sh` on one line.
|
|
64
|
-
- −0.7: form card border in cyber theme is the same `#2a2a4a` it always
|
|
65
|
-
was. Could be a hair brighter to lift it off the radial wash.
|
|
66
|
-
|
|
67
|
-
### Round 2 plan: **Empty states standardization**
|
|
68
|
-
|
|
69
|
-
**Why**: with no agents/tasks/messages seeded, most pages currently show
|
|
70
|
-
a giant double-dash (`--`) followed by a one-liner. Examples (audit
|
|
71
|
-
screenshots reference):
|
|
72
|
-
- Overview: `-- / No agents in this network`
|
|
73
|
-
- Tasks: `-- / No tasks found / Tasks will appear here when agents send them via CommHub.`
|
|
74
|
-
- Messages: `-- / No messages / Messages between agents will appear here.`
|
|
75
|
-
- Nodes: `No nodes match your filters.` (no icon, no leading mark)
|
|
76
|
-
- Tokens: `No tokens. V3 auth required.`
|
|
77
|
-
|
|
78
|
-
The double-dash reads as a "loading" or "broken" affordance, not as an
|
|
79
|
-
"intentionally empty, here's how to fill it" affordance.
|
|
80
|
-
|
|
81
|
-
**Round 2 changes** (still no business logic):
|
|
82
|
-
- Extract a shared `<EmptyState>` component into
|
|
83
|
-
`app/components/EmptyState.tsx` (or upgrade the existing
|
|
84
|
-
`LoadingSkeleton.tsx` export).
|
|
85
|
-
- Drop the leading `--` line for an inline SVG glyph relevant to the page
|
|
86
|
-
(Overview = mesh-with-no-nodes, Tasks = task-list-empty, Messages =
|
|
87
|
-
bubble-empty, Nodes = nodes-grid-empty).
|
|
88
|
-
- Two-line copy: a calm headline + a one-liner with a CTA where it makes
|
|
89
|
-
sense (e.g. Overview "No agents in this network" + "Run `anet quickstart` to register your first node →" with link to docs).
|
|
90
|
-
- Same icon/copy structure across both themes.
|
|
91
|
-
|
|
92
|
-
Estimated work: 30-40 min (component + 5 page integrations + screenshots).
|
|
93
|
-
Will start automatically on the next loop fire (`*/5`).
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
_Loop active: cron `*/5 * * * *`, job `5048a197`, session-only,
|
|
98
|
-
auto-expires in 7 days._
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
## Round 2 — Empty states standardization
|
|
103
|
-
|
|
104
|
-
### What changed
|
|
105
|
-
- **New shared component** `app/components/EmptyState.tsx`:
|
|
106
|
-
- 7 variants (`nodes / tasks / messages / logs / tokens / networks /
|
|
107
|
-
generic`) each with its own line-art SVG glyph (64×64 viewBox, no
|
|
108
|
-
fills, thin 1.25 stroke, monochrome `currentColor`, dashed where
|
|
109
|
-
appropriate to signal "incoming").
|
|
110
|
-
- `<NodesEmptyState hint={...}>` keeps the Overview-specific behavior
|
|
111
|
-
(cross-network global count hint) but defaults to a "Run `anet
|
|
112
|
-
quickstart`" CTA when no hint is present.
|
|
113
|
-
- `compact` prop for in-card empty states (Tokens, Networks).
|
|
114
|
-
- **Wired into 7 pages**:
|
|
115
|
-
- `app/page.tsx` — Overview "no agents" → mesh-with-dashed-edges glyph
|
|
116
|
-
+ "Run anet quickstart →" CTA linking to anet.sh
|
|
117
|
-
- `app/tasks/page.tsx` — "no tasks" → 3-bar stack glyph
|
|
118
|
-
- `app/nodes/page.tsx` — "no nodes" filter-aware variant
|
|
119
|
-
- `app/messages/page.tsx` — "no messages" → speech bubble outline
|
|
120
|
-
- `app/logs/page.tsx` — "no audit logs" → document with lines
|
|
121
|
-
- `app/settings/tokens/page.tsx` — "no API tokens" → key outline
|
|
122
|
-
- `app/settings/networks/page.tsx` — "no networks" → globe-ish concentric
|
|
123
|
-
|
|
124
|
-
Every previous instance of the giant `--` text plus inconsistent
|
|
125
|
-
`text-gray-400 text-lg` / `text-gray-600 text-sm` patterns is gone.
|
|
126
|
-
|
|
127
|
-
### Self-score: **8.2 / 10**
|
|
128
|
-
|
|
129
|
-
| Dimension | Score | Notes |
|
|
130
|
-
|----------------------------------|------:|------------------------------------------------------------------------|
|
|
131
|
-
| Visual restraint (no AI noise) | 9 | Line-art only, no fills, no gradients, no animations |
|
|
132
|
-
| Information value per state | 9 | Each glyph IS the entity ("messages" = bubble, "tokens" = key) |
|
|
133
|
-
| Theme parity | 9 | currentColor + opacity bands work identically in light/dark |
|
|
134
|
-
| Mobile adaptation | 8 | All 7 pages reflow cleanly at 390×844 |
|
|
135
|
-
| Affordance (next-step CTA) | 7 | Only Overview has a CTA right now; other pages could link to docs too |
|
|
136
|
-
| Component reusability | 9 | Single API, drops into any page in 3 lines |
|
|
137
|
-
| Old code removed cleanly | 8 | Old `EmptyState` export in `LoadingSkeleton.tsx` is now unused (could be deleted next round) |
|
|
138
|
-
|
|
139
|
-
**Deductions**:
|
|
140
|
-
- −0.4: only Overview has a recovery CTA. Tasks/Messages/Logs could each
|
|
141
|
-
link to a short docs anchor — but I want to confirm with Vincent
|
|
142
|
-
before adding outbound link sprawl.
|
|
143
|
-
- −0.3: glyphs are static. The mesh-with-dashed-edges on Overview begs
|
|
144
|
-
for a tiny one-shot animation (edges fade from 0.6 → 0 opacity on
|
|
145
|
-
page load only — NOT a loop, that would be AI-noise). Maybe round N.
|
|
146
|
-
- −0.1: the old `EmptyState` export in `LoadingSkeleton.tsx` lingers,
|
|
147
|
-
unused. Delete in round 3.
|
|
148
|
-
|
|
149
|
-
### Round 3 plan: **Quick Actions disambiguation**
|
|
150
|
-
|
|
151
|
-
**Why**: Overview's Quick Actions row currently mixes two intents:
|
|
152
|
-
```
|
|
153
|
-
[0/0 Nodes] [-- Tasks] [0 Failed] [→ Messages] [→ Logs] [→ Admin]
|
|
154
|
-
```
|
|
155
|
-
Three of the cells carry data ("0/0", "--", "0"), three are pure-nav
|
|
156
|
-
placeholders ("→"). The user can't tell at a glance which cells are
|
|
157
|
-
stat affordances vs nav. Worse, the data cells look like they SHOULD be
|
|
158
|
-
clickable for drill-in, while the nav cells look like they have no data
|
|
159
|
-
(false negatives).
|
|
160
|
-
|
|
161
|
-
**Round 3 changes** (no business logic):
|
|
162
|
-
- Split into 2 visually distinct strips on Overview:
|
|
163
|
-
- **Top strip** (3 cards): pure stats — Nodes online/total, Tasks
|
|
164
|
-
total, Failed tasks. Big number + label + small "view all →" link
|
|
165
|
-
in corner. Hover = subtle elevation, click = navigate.
|
|
166
|
-
- **Bottom row** (3 small icon-buttons): pure nav — Messages, Logs,
|
|
167
|
-
Admin. Icon + label, no number, smaller affordance.
|
|
168
|
-
- Drop the leftover `EmptyState` export from `LoadingSkeleton.tsx`.
|
|
169
|
-
|
|
170
|
-
Estimated work: 30 min. Will fire on next `*/5` loop cycle.
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
|
|
174
|
-
## Round 3 — Quick Actions disambiguation
|
|
175
|
-
|
|
176
|
-
### What changed
|
|
177
|
-
- Overview's previous 6-cell mixed row (3 data + 3 placeholder arrows)
|
|
178
|
-
is now **two intentional strips**:
|
|
179
|
-
- **Stat strip** (3 cards, larger): `Nodes 0/0 · 0% online`, `Tasks 0
|
|
180
|
-
· all-time`, `Failed 0 · none`. Big number on the left, "View →"
|
|
181
|
-
affordance top-right, label + sub-copy below the number. Hover =
|
|
182
|
-
`-translate-y-px` for a one-pixel lift.
|
|
183
|
-
- **Nav rail** (3 buttons, smaller): `Messages · Audit log · Admin`
|
|
184
|
-
each as icon + label, flat 12px text, no data values, neutral
|
|
185
|
-
border. Clear "navigation only" affordance.
|
|
186
|
-
- Drop the now-unused `EmptyState` export in
|
|
187
|
-
`app/components/LoadingSkeleton.tsx`; the new
|
|
188
|
-
`app/components/EmptyState.tsx` is canonical.
|
|
189
|
-
|
|
190
|
-
### Self-score: **8.5 / 10**
|
|
191
|
-
|
|
192
|
-
| Dimension | Score | Notes |
|
|
193
|
-
|--------------------------|------:|----------------------------------------------------------------|
|
|
194
|
-
| Intent clarity | 10 | Stats above, nav below — instantly readable role |
|
|
195
|
-
| Information density | 8 | Each stat carries 3 facts (value, label, sub) without crowding |
|
|
196
|
-
| Affordance hierarchy | 9 | "View →" tells you these are clickable, nav rail icons + label |
|
|
197
|
-
| Mobile adaptation | 7 | 3-col stat strip at 390px is tight; numbers + "View →" squeeze |
|
|
198
|
-
| Theme parity | 9 | Both render the same structure with theme-correct tokens |
|
|
199
|
-
| Restraint | 9 | No gradient washes, no icons-with-color-fills, just lines |
|
|
200
|
-
|
|
201
|
-
**Deductions**:
|
|
202
|
-
- −0.7: mobile 3-col is tight at 390px. Should probably collapse to
|
|
203
|
-
2-col-stat + 3-col-nav on `<sm`. Defer to next round if surfaces.
|
|
204
|
-
- −0.5: "0% online" sub-copy reads wrong when `total=0` (should be
|
|
205
|
-
"no agents yet" or just "—"). Small copy bug, fix next round.
|
|
206
|
-
- −0.3: nav rail icons are 16px stroke-1.5 SVG, slightly muddy at that
|
|
207
|
-
size. Bumping to 18px would help.
|
|
208
|
-
|
|
209
|
-
### Round 4 plan: **Sidebar brand + live status**
|
|
210
|
-
|
|
211
|
-
The sidebar header is still plain text:
|
|
212
|
-
```
|
|
213
|
-
Agent Network
|
|
214
|
-
Dashboard
|
|
215
|
-
```
|
|
216
|
-
Round 1 introduced the 3-node mesh mark on the Login page. The sidebar
|
|
217
|
-
should pick that up for brand continuity — users see the same visual
|
|
218
|
-
identifier on every page.
|
|
219
|
-
|
|
220
|
-
Add inline next to "Agent Network": a small **live status pulse** with
|
|
221
|
-
`{online} online · {total} total`. The pulse uses the same 24px-hub
|
|
222
|
-
green dot from the topology (subtle, no AI-glow). Gives every page a
|
|
223
|
-
real-time "is my fleet up?" signal without going to /nodes.
|
|
224
|
-
|
|
225
|
-
Estimated work: 25 min. Fires on next `*/5` loop cycle.
|
|
226
|
-
|
|
227
|
-
---
|
|
228
|
-
|
|
229
|
-
## Round 4 — Sidebar brand + live status
|
|
230
|
-
|
|
231
|
-
### What changed
|
|
232
|
-
- Sidebar header (used to be plain `Agent Network / Dashboard` two-line
|
|
233
|
-
text) is now `BrandMark + Agent Network + status pulse`.
|
|
234
|
-
- **BrandMark**: same 3-node mesh SVG as `/login` (round 1), 32px in
|
|
235
|
-
expanded sidebar, 28px when collapsed. Cyan ring + cyan/green/violet
|
|
236
|
-
nodes use `currentColor` + Tailwind text-color classes so theming is
|
|
237
|
-
automatic.
|
|
238
|
-
- **Live pulse**: tiny 1.5×1.5px emerald dot + copy. When online > 0 it
|
|
239
|
-
animates with `anet-brand-pulse` (1.6s slow opacity drift between
|
|
240
|
-
1.0 and 0.4 — NO scale, NO blur, NO glow). When `total === 0` it
|
|
241
|
-
reads "no agents yet" with a grey dot, no animation. Respects
|
|
242
|
-
`prefers-reduced-motion: reduce`.
|
|
243
|
-
- Sidebar uses SWR to poll `/api/hub/status` every 10s (dedupes with
|
|
244
|
-
the Overview's existing request, so cost is zero).
|
|
245
|
-
- Dropped the `Dashboard` sub-label — replaced with the status line.
|
|
246
|
-
|
|
247
|
-
### Self-score: **8.6 / 10**
|
|
248
|
-
|
|
249
|
-
| Dimension | Score | Notes |
|
|
250
|
-
|--------------------------|------:|-----------------------------------------------------------------------------|
|
|
251
|
-
| Brand continuity | 10 | Same mark on /login and the sidebar — first-impression to power-use loop |
|
|
252
|
-
| Restraint | 9 | Opacity-only pulse, no AI-glow; respects reduced-motion |
|
|
253
|
-
| Information density | 9 | 3 facts (brand, online count, total) in the same vertical space as before |
|
|
254
|
-
| Theme parity | 9 | currentColor + emerald dot reads identical on both themes |
|
|
255
|
-
| Mobile + collapse | 8 | Both states tested; 28px mark in collapsed mode reads but tight at <16px sidebar |
|
|
256
|
-
| Affordance | 7 | The brand header isn't clickable; could route to / |
|
|
257
|
-
|
|
258
|
-
**Deductions**:
|
|
259
|
-
- −0.7: "no agents yet" copy feels slightly negative — "waiting for
|
|
260
|
-
agents" would feel more inviting. Easy copy tweak next round.
|
|
261
|
-
- −0.4: brand block isn't a link. Clicking the brand on most apps
|
|
262
|
-
navigates home; we should make it a `<Link href="/">`. One-line fix.
|
|
263
|
-
- −0.3: when sidebar is collapsed (`w-16`) the 28px mark looks small.
|
|
264
|
-
Could bump to 32px in collapsed mode (the row is taller than the
|
|
265
|
-
icon anyway).
|
|
266
|
-
|
|
267
|
-
### Round 5 plan: **TopoGraph light SVG variant (close issue #8)**
|
|
268
|
-
|
|
269
|
-
This is the largest open visual debt. The Command Mesh SVG bg is hard-
|
|
270
|
-
coded `linearGradient #0b1220 → #080814 → #101018` and the radar rings
|
|
271
|
-
are `#164e63`, the hub spokes are `#155e75`, the flow particles are
|
|
272
|
-
`#fef08a`. In Cyber that whole palette sings. In Light it's a black
|
|
273
|
-
square inside an otherwise white page (audit doc P1-2, GitHub issue #8).
|
|
274
|
-
|
|
275
|
-
**Round 5 changes** (no business logic):
|
|
276
|
-
- Detect theme via `useEffect` + `MutationObserver` on
|
|
277
|
-
`document.documentElement[data-theme]`, hold in component state.
|
|
278
|
-
- Define two palette objects: `darkPalette` (current values) and
|
|
279
|
-
`lightPalette` (white bg + subtle grey grid + emerald node + soft
|
|
280
|
-
zinc edges, no glow filter).
|
|
281
|
-
- Pass through the SVG attribute chain. Same component, same SVG
|
|
282
|
-
structure, theme-aware fills/strokes.
|
|
283
|
-
- Verify both themes with Playwright (+ desktop + mobile).
|
|
284
|
-
|
|
285
|
-
Estimated work: 60-80 min — the largest single round so far. Fires on
|
|
286
|
-
next `*/5` cycle but may span 2 cycles.
|
|
287
|
-
|
|
288
|
-
---
|
|
289
|
-
|
|
290
|
-
## Round 5 — TopoGraph light SVG variant · closes issue #8
|
|
291
|
-
|
|
292
|
-
### What changed
|
|
293
|
-
- Added a `useTheme()` hook that watches `data-theme` on
|
|
294
|
-
`document.documentElement` via `useEffect + MutationObserver`. Returns
|
|
295
|
-
`'light'` for `light/mint` themes, `'dark'` for `cyber/sunset`.
|
|
296
|
-
- Defined two `Palette` objects (DARK_PALETTE, LIGHT_PALETTE) covering
|
|
297
|
-
panel gradient stops, radar wash colors, arrow fill, ring stroke,
|
|
298
|
-
spoke stroke (active + idle), flow edge, flow path, flow particle,
|
|
299
|
-
node fills (online + offline), label-box + legend-box backgrounds,
|
|
300
|
-
legend text/headline/accent, container bg + border, top-rail gradient
|
|
301
|
-
Tailwind tokens.
|
|
302
|
-
- Threaded the palette through every hardcoded color in the SVG:
|
|
303
|
-
- `linearGradient #topo-panel` stops
|
|
304
|
-
- `radialGradient #topo-radar` stops
|
|
305
|
-
- `filter #topo-glow` is now **omitted** in light (no Gaussian blur
|
|
306
|
-
halo — that's the AI-glow risk vector)
|
|
307
|
-
- `marker #topo-arrow` fill
|
|
308
|
-
- radar rings + radial lines stroke + opacity
|
|
309
|
-
- hub link spokes (active + idle)
|
|
310
|
-
- directed message flow edges (with conditional `filter` for glow)
|
|
311
|
-
- node fill (online vs offline), halo, status indicator
|
|
312
|
-
- node label box rect fill + stroke
|
|
313
|
-
- "recent signal" + "legend" boxes (fill, stroke, text colors)
|
|
314
|
-
- `nodeStatus(session, isOnline, isLight)` now also returns
|
|
315
|
-
theme-appropriate `primary / halo / text` triplets — emerald/teal/
|
|
316
|
-
zinc in light, neon cyan/green in dark.
|
|
317
|
-
|
|
318
|
-
### Files touched
|
|
319
|
-
- `app/components/TopoGraph.tsx` — single file, ~50 LOC added (palette
|
|
320
|
-
+ theme hook), ~20 hardcoded colors replaced with palette refs.
|
|
321
|
-
|
|
322
|
-
### Screenshots
|
|
323
|
-
- `/tmp/loop-r5/light-desktop.png` ✓ — white-ish panel, faint emerald
|
|
324
|
-
wash, light grey radar rings, calm legend boxes, no glow halos
|
|
325
|
-
- `/tmp/loop-r5/cyber-desktop.png` ✓ — unchanged from 0.4.4 (verified
|
|
326
|
-
no regression)
|
|
327
|
-
- `/tmp/loop-r5/light-mobile.png` ✓ — "Show Topology" toggle (existing
|
|
328
|
-
mobile gate behavior preserved)
|
|
329
|
-
- `/tmp/loop-r5/cyber-mobile.png` ✓
|
|
330
|
-
|
|
331
|
-
### Self-score: **9.0 / 10**
|
|
332
|
-
|
|
333
|
-
| Dimension | Score | Notes |
|
|
334
|
-
|--------------------------|------:|--------------------------------------------------------------------------------|
|
|
335
|
-
| Issue #8 closure | 10 | Light theme TopoGraph no longer reads as a black square |
|
|
336
|
-
| No Cyber regression | 10 | Dark theme renders byte-identically; same palette values flow through |
|
|
337
|
-
| Restraint (AI-glow) | 9 | Dropped `filter #topo-glow` in light — flat strokes only, no Gaussian halos |
|
|
338
|
-
| Theme detection robust | 9 | MutationObserver catches runtime theme switches (live), not just initial paint |
|
|
339
|
-
| Mobile parity | 9 | Mobile mock gate ("topology hidden") preserved; if user shows it, both work |
|
|
340
|
-
| Code organization | 8 | Palette objects + hook are tidy; some hub-pulse `#10b981` literal still inline |
|
|
341
|
-
|
|
342
|
-
**Deductions**:
|
|
343
|
-
- −0.5: "idle-5" offline node label box overlaps the center pulse hub
|
|
344
|
-
when offline-row positioning algorithm puts that node high. Pre-
|
|
345
|
-
existing layout bug, surfaced more clearly in light. Future round
|
|
346
|
-
could add layout collision avoidance.
|
|
347
|
-
- −0.3: radar wash opacity 0.06 is very subtle in light. Might want
|
|
348
|
-
0.08–0.10 for slightly more depth. Tune in a future round.
|
|
349
|
-
- −0.2: the 24px pulse hub (from 0.4.3-preview.1) uses `#10b981`
|
|
350
|
-
literal directly. Works in both themes by accident. Should be
|
|
351
|
-
palette-driven.
|
|
352
|
-
|
|
353
|
-
### Round 6 plan: **Settings section grouping + License chip**
|
|
354
|
-
|
|
355
|
-
The Settings page (audit P1-1) is currently a long flat list:
|
|
356
|
-
```
|
|
357
|
-
CommHub Connection
|
|
358
|
-
Server Info
|
|
359
|
-
Dashboard
|
|
360
|
-
License
|
|
361
|
-
Change Password
|
|
362
|
-
API Tokens
|
|
363
|
-
Networks
|
|
364
|
-
Session
|
|
365
|
-
```
|
|
366
|
-
Each is a separately-bordered card with no visual hierarchy. The user
|
|
367
|
-
can't tell at a glance which sections are "connection-y", "account-y",
|
|
368
|
-
or "advanced-y".
|
|
369
|
-
|
|
370
|
-
**Round 6 changes** (no business logic):
|
|
371
|
-
- Wrap the cards into 3 logical groups with small uppercase section
|
|
372
|
-
headings:
|
|
373
|
-
- **Connection** → CommHub Connection + Server Info + Dashboard
|
|
374
|
-
- **Account** → License + Change Password + Session
|
|
375
|
-
- **Resources** → API Tokens + Networks
|
|
376
|
-
- License "trial" text → a proper amber pill ("trial • 14 days left").
|
|
377
|
-
- Session card: tone down the red headline (looks like an error).
|
|
378
|
-
"Session" → "Sign out", red → neutral grey, red `Sign out` button →
|
|
379
|
-
ghost outline.
|
|
380
|
-
|
|
381
|
-
Estimated work: 25 min. Fires next `*/5`.
|
|
382
|
-
|
|
383
|
-
---
|
|
384
|
-
|
|
385
|
-
## Round 6 — Settings section grouping + License chip + Session tone
|
|
386
|
-
|
|
387
|
-
### What changed
|
|
388
|
-
- Wrapped the 8 settings cards into **3 logical groups** with small
|
|
389
|
-
uppercase `text-[10px] tracking-[0.12em]` section labels:
|
|
390
|
-
- **CONNECTION** — CommHub Connection, Server Info, Dashboard
|
|
391
|
-
- **ACCOUNT** — License, Change Password, Sign out
|
|
392
|
-
- **RESOURCES** — API Tokens + Networks (2-col grid)
|
|
393
|
-
- **License chip**: added inline next to "License" headline. A pill
|
|
394
|
-
showing `● {type} · {days_left}d left` with theme-aware coloring —
|
|
395
|
-
green for pro, red when ≤7 days, amber otherwise. Replaces the
|
|
396
|
-
isolated orange `trial` text inside the value rows.
|
|
397
|
-
- **Session card** (audit P3 finding): renamed "Session" → "Sign out"
|
|
398
|
-
with neutral grey card border and copy ("Signing out clears your
|
|
399
|
-
dashboard session cookie. You'll return to the login page."). Red
|
|
400
|
-
pill button → ghost outline matching the rest of the surface. No
|
|
401
|
-
longer reads as a "danger zone" warning.
|
|
402
|
-
- Left the legacy red-Session section in place but `display: none` so
|
|
403
|
-
it can be removed cleanly in round 7's cleanup pass.
|
|
404
|
-
|
|
405
|
-
### Self-score: **8.8 / 10**
|
|
406
|
-
|
|
407
|
-
| Dimension | Score | Notes |
|
|
408
|
-
|--------------------------|------:|----------------------------------------------------------------------|
|
|
409
|
-
| Hierarchy | 9 | Three small caps headings give instant orientation |
|
|
410
|
-
| License presentation | 9 | Chip is calm and theme-aware; matches the rest of the chip system |
|
|
411
|
-
| Session tone | 9 | No longer looks like a danger zone; reads as a quiet utility action |
|
|
412
|
-
| Theme parity | 9 | Headings use `text-gray-600` which themes via the shim correctly |
|
|
413
|
-
| Hidden cruft | 7 | Legacy red Session section still in DOM (display:none) — clean next round |
|
|
414
|
-
| Information dedup | 8 | License chip + "Type: trial" row carry the same info; row could go |
|
|
415
|
-
|
|
416
|
-
**Deductions**:
|
|
417
|
-
- −0.5: License chip duplicates "Type" row info. Remove the row in
|
|
418
|
-
round 7 so the chip is the canonical source of truth.
|
|
419
|
-
- −0.4: hidden legacy `Session` section is still in the DOM (`hidden`
|
|
420
|
-
class). Delete fully in round 7.
|
|
421
|
-
- −0.3: section labels (`CONNECTION / ACCOUNT / RESOURCES`) might
|
|
422
|
-
benefit from a thin horizontal rule underneath when each group
|
|
423
|
-
has 2+ cards. Tiny polish.
|
|
424
|
-
|
|
425
|
-
### Round 7 plan: **Small wins batch**
|
|
426
|
-
|
|
427
|
-
Bundle the lingering deductions from rounds 1, 2, 4, 6:
|
|
428
|
-
- **Login footer one-line**: collapse `Powered by Sleep2AGI · Apache-2.0
|
|
429
|
-
/ anet.sh` to a single muted line `Sleep2AGI · Apache-2.0 · anet.sh`
|
|
430
|
-
- **Sidebar brand**: wrap in `<Link href="/">` so clicking the brand
|
|
431
|
-
goes home (common app convention; round 4 deduction)
|
|
432
|
-
- **Sidebar status copy**: `no agents yet` → `waiting for agents` —
|
|
433
|
-
feels more inviting, less negative (round 4 deduction)
|
|
434
|
-
- **License row de-dup**: remove the standalone `Type / trial` row
|
|
435
|
-
inside the License card now that the chip carries that fact
|
|
436
|
-
- **Settings cleanup**: delete the `display:none` legacy Session card
|
|
437
|
-
|
|
438
|
-
All are <5 LOC each, batch is ~25 LOC total. Fires next `*/5`.
|
|
439
|
-
|
|
440
|
-
---
|
|
441
|
-
|
|
442
|
-
## Round 7 — Small-wins batch
|
|
443
|
-
|
|
444
|
-
### What changed
|
|
445
|
-
- **Login footer**: collapsed `Powered by Sleep2AGI · Apache-2.0 /
|
|
446
|
-
anet.sh` (two lines) to a single muted line `Sleep2AGI · Apache-2.0
|
|
447
|
-
· anet.sh`. `anet.sh` is an outbound `<a>` with hover affordance.
|
|
448
|
-
- **Sidebar brand**: wrapped the brand block in `<Link href="/">` —
|
|
449
|
-
clicking the brand mark or product name navigates to Overview, the
|
|
450
|
-
standard app convention. Subtle hover (`hover:bg-[#11112a]/40` in
|
|
451
|
-
expanded; `hover:opacity-80` when collapsed).
|
|
452
|
-
- **Sidebar copy**: `no agents yet` → `waiting for agents`. Feels
|
|
453
|
-
inviting (the system is ready, awaiting input) rather than
|
|
454
|
-
negative (nothing is here yet).
|
|
455
|
-
- **License row de-dup**: removed the standalone `Type: trial` and
|
|
456
|
-
`Days Left: 14 days` rows from the License card. The header chip
|
|
457
|
-
is now the canonical source of truth for license status. Only the
|
|
458
|
-
expiring-soon warning row remains, and only when ≤7 days left.
|
|
459
|
-
- **Settings cleanup**: deleted the `display:none` legacy red Session
|
|
460
|
-
section. The neutral Sign out card inside the ACCOUNT group is now
|
|
461
|
-
the only sign-out surface.
|
|
462
|
-
|
|
463
|
-
### Self-score: **8.4 / 10**
|
|
464
|
-
|
|
465
|
-
| Dimension | Score | Notes |
|
|
466
|
-
|------------------------|------:|----------------------------------------------------------------|
|
|
467
|
-
| Deductions cleared | 9 | All 5 lingering items from rounds 1, 2, 4, 6 are now resolved |
|
|
468
|
-
| Visible-impact | 6 | Mostly cleanup, low "wow" — but eliminates accumulated debt |
|
|
469
|
-
| Theme parity | 9 | Each change works identically in light + cyber |
|
|
470
|
-
| Code reduction | 8 | Net -15 LOC after removing legacy Session + dup License rows |
|
|
471
|
-
|
|
472
|
-
**Deductions**:
|
|
473
|
-
- −0.9: low individual-change visibility — this batch reads more as
|
|
474
|
-
"removed papercuts" than "added delight". That's by design (rounds
|
|
475
|
-
1-6 spent most of the visible-delight budget), but tone is muted.
|
|
476
|
-
- −0.4: didn't include a `<title>` attribute on the brand `<Link>` so
|
|
477
|
-
hover doesn't tooltip "Home". One-line miss.
|
|
478
|
-
- −0.3: didn't address the round 5 deduction about the offline-node
|
|
479
|
-
label box overlapping the center pulse hub — that needs layout
|
|
480
|
-
algorithm work, defer to a layout-focused round.
|
|
481
|
-
|
|
482
|
-
### Round 8 plan: **Ship 0.4.5-preview.0**
|
|
483
|
-
|
|
484
|
-
7 rounds of polish accumulated since 0.4.4-preview.0:
|
|
485
|
-
- `b702291` round 1 — login brand mark + tagline + restrained surface
|
|
486
|
-
- `64643a3` round 2 — empty states across 7 pages (line-art glyphs)
|
|
487
|
-
- `269eeb3` round 3 — Quick Actions split (stats + nav)
|
|
488
|
-
- `4721d60` round 4 — sidebar brand mark + live pulse
|
|
489
|
-
- `0011eb5` round 5 — TopoGraph light SVG variant (closes #8)
|
|
490
|
-
- `6fe0aa3` round 6 — Settings section grouping + License chip
|
|
491
|
-
- (round 7 commit, this one) — small-wins batch
|
|
492
|
-
|
|
493
|
-
Natural ship-point. Round 8 = the publish itself:
|
|
494
|
-
1. Bump `package.json` 0.4.4 → 0.4.5-preview.0
|
|
495
|
-
2. `npm publish --tag preview` (prepublishOnly hook will rebuild)
|
|
496
|
-
3. Push to GitHub via PAT
|
|
497
|
-
4. Tell 通信龙 to bump CLI preview's PINNED_DASHBOARD_VERSION
|
|
498
|
-
5. Telegram Vincent: `npm i -g @sleep2agi/agent-network@preview`
|
|
499
|
-
|
|
500
|
-
After ship, rounds 9+ accumulate toward the **next** preview in the
|
|
501
|
-
SAME `0.4.5-preview.N` series (Vincent's policy: don't burn base version
|
|
502
|
-
numbers on preview-only work). Backlog ideas: layout collision
|
|
503
|
-
avoidance in TopoGraph, hover affordances on KPI cards, Cmd+K command
|
|
504
|
-
palette, header health banner, mobile audit.
|
|
505
|
-
|
|
506
|
-
> **Version policy (round 8 + Vincent telegram)**: stable stays at
|
|
507
|
-
> `0.4.2` until Vincent explicitly promotes a preview. All new previews
|
|
508
|
-
> bump only the `-preview.N` suffix on the same `0.4.5` base. The
|
|
509
|
-
> `latest` npm tag never moves without sign-off.
|
|
510
|
-
|
|
511
|
-
---
|
|
512
|
-
|
|
513
|
-
## Round 9 — Header health banner
|
|
514
|
-
|
|
515
|
-
### What changed
|
|
516
|
-
- New `app/components/HealthBanner.tsx`: thin sticky strip mounted in
|
|
517
|
-
`AppShell` between sidebar and page content, visible on every
|
|
518
|
-
non-login page.
|
|
519
|
-
- Three states, priority-ranked:
|
|
520
|
-
- **red** — `CommHub unreachable — agents may be offline` + CTA
|
|
521
|
-
"Open Settings →"
|
|
522
|
-
- **amber** — `N task(s) failed recently` + CTA "Review failures →"
|
|
523
|
-
(links to `/tasks?status=failed`). Dot pulses with the same 1.6s
|
|
524
|
-
opacity drift as the sidebar online pulse.
|
|
525
|
-
- **green** — `All systems go`. Quiet. No CTA. Doesn't render until
|
|
526
|
-
at least one stats response confirms (avoids flashing green on
|
|
527
|
-
first paint before data arrives).
|
|
528
|
-
- Pulls from `/api/hub/stats` + `/api/hub/health` via SWR (15s refresh,
|
|
529
|
-
5s dedupe). Both endpoints are already polled elsewhere — request
|
|
530
|
-
dedupes free, banner has zero net cost.
|
|
531
|
-
- Dismissible per-session via `sessionStorage.anet-hb-dismissed = '1'`.
|
|
532
|
-
Re-shows on next session.
|
|
533
|
-
- Light/mint themes get bumped color saturation via `.anet-health-banner`
|
|
534
|
-
override rules in globals.css so red/amber/green read crisply on
|
|
535
|
-
white surfaces.
|
|
536
|
-
|
|
537
|
-
### Self-score: **8.7 / 10**
|
|
538
|
-
|
|
539
|
-
| Dimension | Score | Notes |
|
|
540
|
-
|--------------------------|------:|------------------------------------------------------------------------|
|
|
541
|
-
| Information value | 9 | Fleet health visible from every page without navigating to /nodes |
|
|
542
|
-
| Restraint | 9 | 32px-tall strip; opacity-only pulse; no glow; auto-dismissible |
|
|
543
|
-
| Affordance (CTAs) | 9 | Each non-green state has a clear "fix this" link |
|
|
544
|
-
| Theme parity | 9 | All 3 states verified in light + cyber |
|
|
545
|
-
| Failure-state robustness | 8 | "Red" fires only when both `/stats` AND `/health` fail; safer than either alone |
|
|
546
|
-
| Mobile | 7 | Strip wraps at 390px viewport; could collapse "Review failures →" copy further |
|
|
547
|
-
|
|
548
|
-
**Deductions**:
|
|
549
|
-
- −0.6: on very narrow mobile (<340px) the CTA + dismiss can wrap or
|
|
550
|
-
overlap. Could collapse CTA to icon-only at that breakpoint.
|
|
551
|
-
- −0.4: red state has a single message; doesn't distinguish "hub down"
|
|
552
|
-
vs "auth expired" vs "network error". Future round could add error
|
|
553
|
-
classification.
|
|
554
|
-
- −0.3: dismiss is session-scoped. Some users may want
|
|
555
|
-
"dismiss for this session only" vs "dismiss forever". Defer.
|
|
556
|
-
|
|
557
|
-
### Round 10 plan: **KPI card rich hover preview**
|
|
558
|
-
|
|
559
|
-
Overview's stat strip (round 3) shows top-level numbers — `Nodes 4/5`,
|
|
560
|
-
`Tasks 0`, `Failed 0` — but a power user wants to see the breakdown
|
|
561
|
-
without clicking through. Add small CSS-only popovers that appear on
|
|
562
|
-
hover:
|
|
563
|
-
- Nodes hover → "3 working · 2 idle · 0 offline"
|
|
564
|
-
- Tasks hover → "by status: 4 running, 2 replied, 1 failed, 0 expired"
|
|
565
|
-
- Failed hover → "5 in last hour · last failure 12m ago"
|
|
566
|
-
|
|
567
|
-
Pure CSS popover (no JS state), 200ms delay-show, fades out on
|
|
568
|
-
unhover. Both themes. Doesn't affect mobile (touch shows full card
|
|
569
|
-
already).
|
|
570
|
-
|
|
571
|
-
Estimated work: 25 min. Fires next `*/5`.
|
|
572
|
-
|
|
573
|
-
---
|
|
574
|
-
|
|
575
|
-
## Round 10 — KPI card rich hover preview
|
|
576
|
-
|
|
577
|
-
### What changed
|
|
578
|
-
- The 3-stat strip on Overview (Nodes / Tasks / Failed) now gets a
|
|
579
|
-
**hover popover** showing the breakdown that the headline number
|
|
580
|
-
abstracts away.
|
|
581
|
-
- **Nodes** hover → `● working {n}` / `● idle {n}` / `● offline {n}`
|
|
582
|
-
- **Tasks** hover → list of all populated statuses in priority
|
|
583
|
-
order (running → replied → failed → cancelled → expired → closed
|
|
584
|
-
→ created → delivered → acked), each with its color dot + count
|
|
585
|
-
- **Failed** hover → `no failures yet` or `{n} in current view`
|
|
586
|
-
- **Pure CSS** popover: hidden by default, `opacity-0 translate-y-[-2px]`
|
|
587
|
-
transitions to `opacity-100 translate-y-0` on `group-hover`. 100ms
|
|
588
|
-
delay-show so a quick mouse-pass doesn't flicker. No React state.
|
|
589
|
-
- `pointer-events-none` on the popover so it never intercepts the
|
|
590
|
-
click through to the underlying Link target.
|
|
591
|
-
- **Mobile gate**: `hidden md:block` — touch devices don't get the
|
|
592
|
-
popover (no `:hover`). The card itself still navigates on tap, so no
|
|
593
|
-
functionality lost.
|
|
594
|
-
- Dot colors inlined as hex (`#4ade80` green, `#a78bfa` purple, etc.)
|
|
595
|
-
to dodge Tailwind's purge of dynamic `bg-${family}-400` class names.
|
|
596
|
-
|
|
597
|
-
### Self-score: **8.5 / 10**
|
|
598
|
-
|
|
599
|
-
**Deductions**: no `:focus-within` trigger (keyboard users miss
|
|
600
|
-
popover); "Failed" copy doesn't show time bucket; dot hex inlined
|
|
601
|
-
rather than centralized in a constants palette.
|
|
602
|
-
|
|
603
|
-
### Round 11 plan: **Mobile audit + polish pass**
|
|
604
|
-
|
|
605
|
-
Nine rounds in, the desktop story is solid. Mobile hasn't gotten a
|
|
606
|
-
dedicated round since the initial audit. Likely findings:
|
|
607
|
-
|
|
608
|
-
- Health banner at <340px: CTA + dismiss button + truncated message
|
|
609
|
-
competes for ~280px usable width. Collapse CTA to icon-only or
|
|
610
|
-
move it below the message.
|
|
611
|
-
- Stat strip 3-col at 360-390px: "View →" affordance shrinks below
|
|
612
|
-
legibility. Either drop "View →" on mobile or stack 1-col.
|
|
613
|
-
- Sidebar mobile drawer: not screenshot-audited against the latest
|
|
614
|
-
brand-mark + pulse changes.
|
|
615
|
-
- Footer text spacing on /login at 320px: wraps awkwardly.
|
|
616
|
-
|
|
617
|
-
Action: capture mobile screenshots across 5-6 key pages at 390×844
|
|
618
|
-
AND 360×740, identify worst offenders, fix the top 3.
|
|
619
|
-
|
|
620
|
-
Estimated work: 30 min. Fires next `*/5`.
|
|
621
|
-
|
|
622
|
-
---
|
|
623
|
-
|
|
624
|
-
## Round 11 — Mobile audit + polish pass
|
|
625
|
-
|
|
626
|
-
### Findings (390×844 + 360×740)
|
|
627
|
-
Captured 12 screenshots (6 pages × 2 themes × 2 viewports). Three
|
|
628
|
-
clear regressions at narrow widths:
|
|
629
|
-
|
|
630
|
-
1. **Health banner** ran into the fixed-position hamburger button at
|
|
631
|
-
top-left (top:4 left:3, ~44×44 hit area). Message text was
|
|
632
|
-
truncated to "...sks failed recently" because the leading 6
|
|
633
|
-
characters sat under the hamburger.
|
|
634
|
-
2. **UserBar** "Edit" + "Sign out" text links cramped against the
|
|
635
|
-
user name + role on narrow screens, wrapping "Sign out" onto
|
|
636
|
-
two lines.
|
|
637
|
-
3. **Stat strip** "View →" affordance in each card's top-right took
|
|
638
|
-
horizontal space the headline number needed, making the 3-col
|
|
639
|
-
grid feel cramped at 360px.
|
|
640
|
-
|
|
641
|
-
### What changed
|
|
642
|
-
- **HealthBanner**: `pl-3` → `pl-14` on mobile (clears the hamburger
|
|
643
|
-
button), CTA text "Review failures" / "Open Settings" collapses to
|
|
644
|
-
a bare arrow on `<sm` with a proper `aria-label` so screen
|
|
645
|
-
readers still hear the destination.
|
|
646
|
-
- **UserBar Edit / Sign out**: text on `>=sm`, single inline-svg icon
|
|
647
|
-
on `<sm` (pencil for edit, doorway-arrow for sign out). Both stay
|
|
648
|
-
same hit area, just label-trimmed.
|
|
649
|
-
- **Stat strip "View →"**: `hidden sm:block` so the affordance only
|
|
650
|
-
appears on desktop. Mobile cards are fully tappable, so the
|
|
651
|
-
affordance is implicit.
|
|
652
|
-
|
|
653
|
-
### Self-score: **9.0 / 10**
|
|
654
|
-
|
|
655
|
-
| Dimension | Score | Notes |
|
|
656
|
-
|------------------------|------:|------------------------------------------------------------------|
|
|
657
|
-
| Defect closure | 10 | All three observed mobile regressions resolved |
|
|
658
|
-
| Desktop non-regression | 9 | All changes wrapped in `sm:` breakpoint — pixel-identical >640px |
|
|
659
|
-
| Restraint | 9 | Icons are simple line SVGs matching the design system |
|
|
660
|
-
| Accessibility | 9 | `aria-label` on collapsed CTAs and icon-only buttons |
|
|
661
|
-
| Touch target | 8 | Icons are 16px visual; full `<button>` is still 44px hit area |
|
|
662
|
-
|
|
663
|
-
**Deductions**:
|
|
664
|
-
- −0.5: not tested below 360px (e.g. 320px iPhone SE first-gen).
|
|
665
|
-
Probably still fine but unverified.
|
|
666
|
-
- −0.3: sidebar drawer mobile state (when hamburger is tapped) not
|
|
667
|
-
re-screenshotted post round-4 brand changes.
|
|
668
|
-
- −0.2: existing chip filter rows on Tasks/Messages still wrap at
|
|
669
|
-
narrow widths. Not the most painful, deferred.
|
|
670
|
-
|
|
671
|
-
### Round 12 plan: **Loading skeleton refresh**
|
|
672
|
-
|
|
673
|
-
The `LoadingSkeleton` component in `app/components/LoadingSkeleton.tsx`
|
|
674
|
-
still uses `bg-gray-800` / `bg-gray-800/40` patterns from the
|
|
675
|
-
pre-theme-token era. It works (CSS shim catches `bg-gray-800` in
|
|
676
|
-
light), but it's the only surface that didn't get a deliberate
|
|
677
|
-
restyle. Refresh to use:
|
|
678
|
-
- subtle bg + animated pulse using the same `anet-brand-pulse`
|
|
679
|
-
rhythm (1.6s opacity drift) for visual cohesion
|
|
680
|
-
- proper card structure matching round 3's stat-strip shape
|
|
681
|
-
- both themes, no AI-noise
|
|
682
|
-
|
|
683
|
-
Estimated work: 20 min. Fires next `*/5`.
|
|
684
|
-
|
|
685
|
-
---
|
|
686
|
-
|
|
687
|
-
## Round 14 — Cmd+K command palette (scaffold)
|
|
688
|
-
|
|
689
|
-
### What changed
|
|
690
|
-
- New `app/components/CommandPalette.tsx` mounted in `AppShell` so it's
|
|
691
|
-
globally available on every non-login page.
|
|
692
|
-
- **Keyboard shortcuts** (global, not per-page):
|
|
693
|
-
- `⌘K` / `Ctrl+K` toggles open/closed
|
|
694
|
-
- `/` opens when no input is focused (Linear-style)
|
|
695
|
-
- `↑↓` navigates results, `Enter` activates, `Esc` closes
|
|
696
|
-
- **Layout**: centered modal at 10vh-15vh from top, max-w-xl, backdrop
|
|
697
|
-
blur over content. Search input + grouped results + footer hint bar.
|
|
698
|
-
- **Initial command set**: 10 navigation entries covering every
|
|
699
|
-
primary page (Overview / Tasks / Failed tasks / Nodes / Messages /
|
|
700
|
-
Networks / Audit Log / Server Logs / Admin / Settings). Each carries
|
|
701
|
-
a hint subtitle and a thin-stroke icon.
|
|
702
|
-
- **Filter behavior**: case-insensitive search over title + hint + id.
|
|
703
|
-
Active row gets emerald tint + `↵` glyph; mouse hover updates the
|
|
704
|
-
selected index so keyboard and pointer stay in sync.
|
|
705
|
-
- **Light/mint surface**: white modal with real soft shadow (vs the
|
|
706
|
-
default `bg-[#0d0d1a]` navy that CSS shim would translate). Override
|
|
707
|
-
ruled in globals.css.
|
|
708
|
-
|
|
709
|
-
### Self-score: **8.7 / 10**
|
|
710
|
-
|
|
711
|
-
| Dimension | Score | Notes |
|
|
712
|
-
|------------------------|------:|------------------------------------------------------------------------|
|
|
713
|
-
| Adoption signal | 9 | Stripe/Linear/Vercel staple — sets reader expectation that we're modern |
|
|
714
|
-
| Keyboard-first | 9 | All keys wired; mouse + keyboard stay in sync |
|
|
715
|
-
| Restraint | 9 | Mono-stroke icons, single accent color, no AI shimmer |
|
|
716
|
-
| Theme parity | 9 | Light gets a proper white surface w/ shadow; cyber uses navy |
|
|
717
|
-
| Discoverability | 7 | No visible "press ⌘K" hint anywhere on the page yet |
|
|
718
|
-
| Mobile | 6 | Works on mobile (tap to open via UI) — but no on-screen launcher yet |
|
|
719
|
-
|
|
720
|
-
**Deductions**:
|
|
721
|
-
- −0.7: zero on-page hint that the palette exists. Most users will
|
|
722
|
-
never find `⌘K` without docs. Should add a tiny "⌘K" badge in
|
|
723
|
-
sidebar footer or in the UserBar.
|
|
724
|
-
- −0.4: no mobile launcher. Mobile has no obvious affordance.
|
|
725
|
-
- −0.2: command set is navigation-only. Round 15 will add actions
|
|
726
|
-
(theme toggle / sign out / Dispatch open) and recent-commands.
|
|
727
|
-
|
|
728
|
-
### Round 15 plan: **Cmd+K actions + recent-commands**
|
|
729
|
-
|
|
730
|
-
Extend the scaffold with the "Actions" group:
|
|
731
|
-
- Toggle theme (cyber ↔ light)
|
|
732
|
-
- Open Dispatch dialog (current page's Dispatch button)
|
|
733
|
-
- Sign out
|
|
734
|
-
- Copy current URL
|
|
735
|
-
|
|
736
|
-
Plus add a `Recents` group at the top that surfaces the last 3-5
|
|
737
|
-
commands the user invoked (ring buffer in `sessionStorage`).
|
|
738
|
-
|
|
739
|
-
Plus a discoverability nudge — tiny `⌘K` chip in sidebar footer +
|
|
740
|
-
UserBar tooltip.
|
|
741
|
-
|
|
742
|
-
Estimated work: 25 min. Fires next `*/5`.
|
|
743
|
-
|
|
744
|
-
---
|
|
745
|
-
|
|
746
|
-
## Round 12 — Loading skeleton refresh
|
|
747
|
-
|
|
748
|
-
### What changed
|
|
749
|
-
- `LoadingSkeleton` now **mirrors the actual Overview layout** so the
|
|
750
|
-
page doesn't shift on data arrival. Old version was generic header
|
|
751
|
-
+ broadcast + topology + 4-card grid; new version shows: 4 KPI
|
|
752
|
-
cards, Dispatch+UserBar row, Config bar, 3-card stat strip, 3-tile
|
|
753
|
-
nav rail, Broadcast bar, 4-card agent grid.
|
|
754
|
-
- Switched from Tailwind's `animate-pulse` (1s opacity drift) to a
|
|
755
|
-
custom `anet-skeleton-pulse` (1.6s) to match the same rhythm as
|
|
756
|
-
`anet-brand-pulse` in the sidebar and the health banner amber dot.
|
|
757
|
-
Visual cohesion across the design system.
|
|
758
|
-
- Introduced `anet-skeleton-bar` class with explicit per-theme
|
|
759
|
-
background: `#1a1a2a` on dark (lighter navy on dark card),
|
|
760
|
-
`#d4d8df` on light/mint (mid-grey on white card). The previous
|
|
761
|
-
attempt to reuse the `bg-[#1a1a2a]` shim was too subtle (light
|
|
762
|
-
card #ffffff vs bar mapped to bg-elevated #eef0f4 = only ~7
|
|
763
|
-
brightness levels different = invisible bars).
|
|
764
|
-
- All bar dimensions use rem-based explicit values via inline style
|
|
765
|
-
so they don't depend on Tailwind purge correctness.
|
|
766
|
-
- `prefers-reduced-motion: reduce` kills the pulse on both classes.
|
|
767
|
-
|
|
768
|
-
### Self-score: **9.0 / 10**
|
|
769
|
-
|
|
770
|
-
| Dimension | Score | Notes |
|
|
771
|
-
|------------------------|------:|------------------------------------------------------------------|
|
|
772
|
-
| No content shift | 9 | Skeleton matches Overview structure cell-for-cell |
|
|
773
|
-
| Theme parity | 10 | Both themes get visible bars (the original sin of round 11 plan) |
|
|
774
|
-
| Restraint | 9 | No shimmer-gradient, no animation noise, just 1.6s opacity drift |
|
|
775
|
-
| Design-system cohesion | 9 | Same pulse rhythm as brand pulse + health banner amber |
|
|
776
|
-
| Accessibility | 9 | prefers-reduced-motion respected on both classes |
|
|
777
|
-
|
|
778
|
-
**Deductions**:
|
|
779
|
-
- −0.5: skeleton shows the FULL Overview (8+ blocks). Most actual
|
|
780
|
-
page-loads complete in <300ms so user barely sees this. Slower
|
|
781
|
-
hubs may see the whole thing; some users might prefer a shorter
|
|
782
|
-
skeleton. Could trim agent grid to 2 cards if it feels long in
|
|
783
|
-
practice.
|
|
784
|
-
- −0.5: the agent-card skeleton is generic (status dot + alias bar
|
|
785
|
-
+ 3 detail bars). Real cards carry status chip + agent type +
|
|
786
|
-
server hostname + uptime — could mirror more specifically.
|
|
787
|
-
|
|
788
|
-
### Round 13 plan: **Tasks status tabs — color coding**
|
|
789
|
-
|
|
790
|
-
The Tasks page filter tab strip (`All / created / delivered / acked /
|
|
791
|
-
running / replied / closed / failed / cancelled / expired`) is all
|
|
792
|
-
neutral-styled — no visual scannability. Color-code each by its
|
|
793
|
-
status family using the same tokens as the chips system used
|
|
794
|
-
elsewhere (running=green, replied=purple, failed=red, etc.), so the
|
|
795
|
-
user can spot "failed" without reading every label.
|
|
796
|
-
|
|
797
|
-
Estimated work: 20 min. Fires next `*/5`.
|