@sleep2agi/agent-network-dashboard 0.4.6-preview.105 → 0.4.6-preview.107

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.
Files changed (144) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/diagnostics/route-bundle-stats.json +4 -4
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/server/app/_global-error.html +1 -1
  7. package/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found.html +1 -1
  14. package/.next/server/app/_not-found.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  21. package/.next/server/app/admin.html +1 -1
  22. package/.next/server/app/admin.rsc +1 -1
  23. package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
  24. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  25. package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
  26. package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
  27. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  28. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  29. package/.next/server/app/index.html +2 -2
  30. package/.next/server/app/index.rsc +2 -2
  31. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  32. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  33. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  34. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  35. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  36. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/login.html +2 -2
  38. package/.next/server/app/login.rsc +2 -2
  39. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  40. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  41. package/.next/server/app/login.segments/_index.segment.rsc +1 -1
  42. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  43. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  44. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  45. package/.next/server/app/logs.html +1 -1
  46. package/.next/server/app/logs.rsc +1 -1
  47. package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
  48. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  49. package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
  50. package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
  51. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  52. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  53. package/.next/server/app/messages.html +1 -1
  54. package/.next/server/app/messages.rsc +1 -1
  55. package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
  56. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  57. package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
  58. package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
  59. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  60. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  61. package/.next/server/app/node.html +1 -1
  62. package/.next/server/app/node.rsc +1 -1
  63. package/.next/server/app/node.segments/_full.segment.rsc +1 -1
  64. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  65. package/.next/server/app/node.segments/_index.segment.rsc +1 -1
  66. package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
  67. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  68. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  69. package/.next/server/app/nodes.html +1 -1
  70. package/.next/server/app/nodes.rsc +1 -1
  71. package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
  72. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  73. package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
  74. package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
  75. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  76. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  77. package/.next/server/app/page_client-reference-manifest.js +1 -1
  78. package/.next/server/app/server-logs.html +1 -1
  79. package/.next/server/app/server-logs.rsc +1 -1
  80. package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
  81. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  82. package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
  83. package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
  84. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  85. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  86. package/.next/server/app/settings/networks.html +1 -1
  87. package/.next/server/app/settings/networks.rsc +1 -1
  88. package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
  89. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  90. package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
  91. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
  92. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  93. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  94. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  95. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  96. package/.next/server/app/settings/tokens.html +1 -1
  97. package/.next/server/app/settings/tokens.rsc +1 -1
  98. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
  99. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  100. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
  101. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
  102. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  103. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  104. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  105. package/.next/server/app/settings.html +2 -2
  106. package/.next/server/app/settings.rsc +2 -2
  107. package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  108. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  109. package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  110. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  111. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  112. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  113. package/.next/server/app/tasks.html +1 -1
  114. package/.next/server/app/tasks.rsc +1 -1
  115. package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
  116. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  117. package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
  118. package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
  119. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  120. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  121. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +2 -2
  122. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
  123. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
  124. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
  125. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
  126. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
  127. package/.next/server/middleware-build-manifest.js +3 -3
  128. package/.next/server/pages/404.html +1 -1
  129. package/.next/server/pages/500.html +1 -1
  130. package/.next/server/server-reference-manifest.js +1 -1
  131. package/.next/server/server-reference-manifest.json +1 -1
  132. package/.next/static/chunks/0mplxjx5e3q-2.js +2 -0
  133. package/.next/static/chunks/{15cttfdsko5kz.js → 0vgb9u-6nleqe.js} +1 -1
  134. package/.next/static/chunks/{0erbcacmimivf.js → 17h8n8bh91bgl.js} +1 -1
  135. package/.next/trace +2 -2
  136. package/.next/trace-build +1 -1
  137. package/app/components/TopoGraph.tsx +71 -0
  138. package/package.json +1 -1
  139. package/scripts/topo-edge-count-badge-test.mjs +84 -0
  140. package/scripts/topo-group-label-title-test.mjs +83 -0
  141. package/.next/static/chunks/16kkma5xr4kjm.js +0 -2
  142. /package/.next/static/{vshAH-vt2RRs1q_C-E6KP → klFqsAUz4SaQKtXdhg-wx}/_buildManifest.js +0 -0
  143. /package/.next/static/{vshAH-vt2RRs1q_C-E6KP → klFqsAUz4SaQKtXdhg-wx}/_clientMiddlewareManifest.js +0 -0
  144. /package/.next/static/{vshAH-vt2RRs1q_C-E6KP → klFqsAUz4SaQKtXdhg-wx}/_ssgManifest.js +0 -0
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":280,"timestamp":40714245059,"id":4,"parentId":1,"tags":{},"startTime":1778848686491,"traceId":"e603e232118573c5"},{"name":"load-custom-routes","duration":532,"timestamp":40714245486,"id":5,"parentId":1,"tags":{},"startTime":1778848686492,"traceId":"e603e232118573c5"},{"name":"create-dist-dir","duration":660,"timestamp":40714246067,"id":6,"parentId":1,"tags":{},"startTime":1778848686492,"traceId":"e603e232118573c5"},{"name":"clean","duration":486,"timestamp":40714247380,"id":7,"parentId":1,"tags":{},"startTime":1778848686494,"traceId":"e603e232118573c5"},{"name":"discover-routes","duration":9268,"timestamp":40714332364,"id":8,"parentId":1,"tags":{},"startTime":1778848686579,"traceId":"e603e232118573c5"},{"name":"create-root-mapping","duration":114,"timestamp":40714341691,"id":9,"parentId":1,"tags":{},"startTime":1778848686588,"traceId":"e603e232118573c5"},{"name":"generate-route-types","duration":36490,"timestamp":40714344339,"id":10,"parentId":1,"tags":{},"startTime":1778848686591,"traceId":"e603e232118573c5"},{"name":"public-dir-conflict-check","duration":106,"timestamp":40714381023,"id":11,"parentId":1,"tags":{},"startTime":1778848686627,"traceId":"e603e232118573c5"},{"name":"generate-routes-manifest","duration":4857,"timestamp":40714381253,"id":12,"parentId":1,"tags":{},"startTime":1778848686628,"traceId":"e603e232118573c5"},{"name":"run-turbopack","duration":5966358,"timestamp":40714391294,"id":14,"parentId":1,"tags":{},"startTime":1778848686638,"traceId":"e603e232118573c5"},{"name":"turbopack-build-events","duration":103,"timestamp":40714696648,"id":15,"parentId":1,"tags":{},"startTime":1778848686943,"traceId":"e603e232118573c5"},{"name":"run-typescript","duration":8901721,"timestamp":40720369772,"id":16,"parentId":1,"tags":{},"startTime":1778848692616,"traceId":"e603e232118573c5"},{"name":"generate-required-server-files","duration":2867,"timestamp":40729272924,"id":18,"parentId":1,"tags":{},"startTime":1778848701519,"traceId":"e603e232118573c5"},{"name":"check-static-error-page","duration":16085,"timestamp":40729480589,"id":20,"parentId":19,"tags":{},"startTime":1778848701727,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":568641,"timestamp":40729499637,"id":63,"parentId":22,"tags":{},"startTime":1778848701746,"traceId":"e603e232118573c5"},{"name":"check-page","duration":584420,"timestamp":40729484031,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778848701730,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":625495,"timestamp":40729504393,"id":67,"parentId":28,"tags":{},"startTime":1778848701751,"traceId":"e603e232118573c5"},{"name":"check-page","duration":641611,"timestamp":40729488384,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778848701735,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":630397,"timestamp":40729504916,"id":70,"parentId":32,"tags":{},"startTime":1778848701751,"traceId":"e603e232118573c5"},{"name":"check-page","duration":646012,"timestamp":40729489368,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778848701736,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":638685,"timestamp":40729499792,"id":64,"parentId":25,"tags":{},"startTime":1778848701746,"traceId":"e603e232118573c5"},{"name":"check-page","duration":650656,"timestamp":40729487886,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778848701734,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":638569,"timestamp":40729505072,"id":72,"parentId":34,"tags":{},"startTime":1778848701751,"traceId":"e603e232118573c5"},{"name":"check-page","duration":654048,"timestamp":40729489667,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778848701736,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":662877,"timestamp":40729499918,"id":65,"parentId":26,"tags":{},"startTime":1778848701746,"traceId":"e603e232118573c5"},{"name":"check-page","duration":674792,"timestamp":40729488090,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778848701734,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":658437,"timestamp":40729504983,"id":71,"parentId":33,"tags":{},"startTime":1778848701751,"traceId":"e603e232118573c5"},{"name":"check-page","duration":673952,"timestamp":40729489537,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778848701736,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":659294,"timestamp":40729504565,"id":68,"parentId":29,"tags":{},"startTime":1778848701751,"traceId":"e603e232118573c5"},{"name":"check-page","duration":675361,"timestamp":40729488550,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778848701735,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":674221,"timestamp":40729505108,"id":73,"parentId":35,"tags":{},"startTime":1778848701751,"traceId":"e603e232118573c5"},{"name":"check-page","duration":689571,"timestamp":40729489839,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778848701736,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":673119,"timestamp":40729506453,"id":74,"parentId":36,"tags":{},"startTime":1778848701753,"traceId":"e603e232118573c5"},{"name":"check-page","duration":689229,"timestamp":40729490376,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778848701737,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":674998,"timestamp":40729504729,"id":69,"parentId":30,"tags":{},"startTime":1778848701751,"traceId":"e603e232118573c5"},{"name":"check-page","duration":691018,"timestamp":40729488742,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778848701735,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":673376,"timestamp":40729506493,"id":75,"parentId":37,"tags":{},"startTime":1778848701753,"traceId":"e603e232118573c5"},{"name":"check-page","duration":689325,"timestamp":40729490572,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778848701737,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":689785,"timestamp":40729506513,"id":76,"parentId":38,"tags":{},"startTime":1778848701753,"traceId":"e603e232118573c5"},{"name":"check-page","duration":705613,"timestamp":40729490759,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778848701737,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":696109,"timestamp":40729506575,"id":81,"parentId":43,"tags":{},"startTime":1778848701753,"traceId":"e603e232118573c5"},{"name":"check-page","duration":711360,"timestamp":40729491407,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778848701738,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":697711,"timestamp":40729506562,"id":80,"parentId":42,"tags":{},"startTime":1778848701753,"traceId":"e603e232118573c5"},{"name":"check-page","duration":713027,"timestamp":40729491293,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778848701738,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":701043,"timestamp":40729506584,"id":82,"parentId":44,"tags":{},"startTime":1778848701753,"traceId":"e603e232118573c5"},{"name":"check-page","duration":716161,"timestamp":40729491511,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778848701738,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":702334,"timestamp":40729506598,"id":83,"parentId":45,"tags":{},"startTime":1778848701753,"traceId":"e603e232118573c5"},{"name":"check-page","duration":717300,"timestamp":40729491686,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778848701738,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":706406,"timestamp":40729506526,"id":77,"parentId":39,"tags":{},"startTime":1778848701753,"traceId":"e603e232118573c5"},{"name":"check-page","duration":722089,"timestamp":40729490889,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778848701737,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":706596,"timestamp":40729506549,"id":79,"parentId":41,"tags":{},"startTime":1778848701753,"traceId":"e603e232118573c5"},{"name":"check-page","duration":722017,"timestamp":40729491164,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778848701737,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":706697,"timestamp":40729506610,"id":84,"parentId":46,"tags":{},"startTime":1778848701753,"traceId":"e603e232118573c5"},{"name":"check-page","duration":721503,"timestamp":40729491841,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778848701738,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":709640,"timestamp":40729506626,"id":85,"parentId":47,"tags":{},"startTime":1778848701753,"traceId":"e603e232118573c5"},{"name":"check-page","duration":724319,"timestamp":40729491995,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778848701738,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":717247,"timestamp":40729499253,"id":62,"parentId":21,"tags":{},"startTime":1778848701746,"traceId":"e603e232118573c5"},{"name":"check-page","duration":734227,"timestamp":40729482306,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778848701729,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":706125,"timestamp":40729513572,"id":88,"parentId":24,"tags":{},"startTime":1778848701760,"traceId":"e603e232118573c5"},{"name":"check-page","duration":735151,"timestamp":40729484610,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778848701731,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":718813,"timestamp":40729504081,"id":66,"parentId":27,"tags":{},"startTime":1778848701750,"traceId":"e603e232118573c5"},{"name":"check-page","duration":734709,"timestamp":40729488239,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778848701735,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":710522,"timestamp":40729514733,"id":89,"parentId":31,"tags":{},"startTime":1778848701761,"traceId":"e603e232118573c5"},{"name":"check-page","duration":736415,"timestamp":40729488889,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778848701735,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":721967,"timestamp":40729506540,"id":78,"parentId":40,"tags":{},"startTime":1778848701753,"traceId":"e603e232118573c5"},{"name":"check-page","duration":737498,"timestamp":40729491048,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778848701737,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":722638,"timestamp":40729506635,"id":86,"parentId":48,"tags":{},"startTime":1778848701753,"traceId":"e603e232118573c5"},{"name":"check-page","duration":737177,"timestamp":40729492143,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778848701738,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":704719,"timestamp":40729532361,"id":90,"parentId":23,"tags":{},"startTime":1778848701779,"traceId":"e603e232118573c5"},{"name":"check-page","duration":752781,"timestamp":40729484351,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778848701731,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":736730,"timestamp":40729506649,"id":87,"parentId":49,"tags":{},"startTime":1778848701753,"traceId":"e603e232118573c5"},{"name":"check-page","duration":751165,"timestamp":40729492268,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778848701739,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":716541,"timestamp":40729532485,"id":96,"parentId":56,"tags":{},"startTime":1778848701779,"traceId":"e603e232118573c5"},{"name":"check-page","duration":753553,"timestamp":40729495523,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778848701742,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":726322,"timestamp":40729532506,"id":98,"parentId":59,"tags":{},"startTime":1778848701779,"traceId":"e603e232118573c5"},{"name":"check-page","duration":762682,"timestamp":40729496200,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778848701742,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":753261,"timestamp":40729532473,"id":95,"parentId":54,"tags":{},"startTime":1778848701779,"traceId":"e603e232118573c5"},{"name":"check-page","duration":790898,"timestamp":40729494901,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778848701741,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":764458,"timestamp":40729532453,"id":93,"parentId":52,"tags":{},"startTime":1778848701779,"traceId":"e603e232118573c5"},{"name":"check-page","duration":802534,"timestamp":40729494538,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778848701741,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":764778,"timestamp":40729532524,"id":99,"parentId":60,"tags":{},"startTime":1778848701779,"traceId":"e603e232118573c5"},{"name":"check-page","duration":801048,"timestamp":40729496300,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778848701743,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":764998,"timestamp":40729532423,"id":91,"parentId":50,"tags":{},"startTime":1778848701779,"traceId":"e603e232118573c5"},{"name":"check-page","duration":803163,"timestamp":40729494285,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778848701741,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":745927,"timestamp":40729559218,"id":101,"parentId":58,"tags":{},"startTime":1778848701806,"traceId":"e603e232118573c5"},{"name":"check-page","duration":809348,"timestamp":40729495840,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778848701742,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":772708,"timestamp":40729532540,"id":100,"parentId":61,"tags":{},"startTime":1778848701779,"traceId":"e603e232118573c5"},{"name":"check-page","duration":808828,"timestamp":40729496438,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778848701743,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":775949,"timestamp":40729532461,"id":94,"parentId":53,"tags":{},"startTime":1778848701779,"traceId":"e603e232118573c5"},{"name":"check-page","duration":813740,"timestamp":40729494726,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778848701741,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":778232,"timestamp":40729532493,"id":97,"parentId":57,"tags":{},"startTime":1778848701779,"traceId":"e603e232118573c5"},{"name":"check-page","duration":815072,"timestamp":40729495698,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778848701742,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":711577,"timestamp":40729599280,"id":102,"parentId":55,"tags":{},"startTime":1778848701846,"traceId":"e603e232118573c5"},{"name":"check-page","duration":815792,"timestamp":40729495092,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778848701741,"traceId":"e603e232118573c5"},{"name":"is-page-static","duration":803639,"timestamp":40729532437,"id":92,"parentId":51,"tags":{},"startTime":1778848701779,"traceId":"e603e232118573c5"},{"name":"check-page","duration":841700,"timestamp":40729494426,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778848701741,"traceId":"e603e232118573c5"},{"name":"static-check","duration":856738,"timestamp":40729479425,"id":19,"parentId":1,"tags":{},"startTime":1778848701726,"traceId":"e603e232118573c5"},{"name":"write-routes-manifest","duration":437,"timestamp":40730342731,"id":104,"parentId":1,"tags":{},"startTime":1778848702589,"traceId":"e603e232118573c5"},{"name":"load-dotenv","duration":42,"timestamp":40730353191,"id":107,"parentId":106,"tags":{},"startTime":1778848702599,"traceId":"e603e232118573c5"},{"name":"run-export-path-map","duration":595,"timestamp":40730356920,"id":108,"parentId":106,"tags":{},"startTime":1778848702603,"traceId":"e603e232118573c5"},{"name":"next-export","duration":626701,"timestamp":40730352019,"id":106,"parentId":1,"tags":{},"startTime":1778848702598,"traceId":"e603e232118573c5"}]
2
- [{"name":"move-exported-app-not-found-","duration":2189,"timestamp":40730981998,"id":109,"parentId":105,"tags":{},"startTime":1778848703228,"traceId":"e603e232118573c5"},{"name":"move-exported-app-global-error-","duration":519,"timestamp":40730984304,"id":110,"parentId":105,"tags":{},"startTime":1778848703231,"traceId":"e603e232118573c5"},{"name":"static-generation","duration":639780,"timestamp":40730346848,"id":105,"parentId":1,"tags":{},"startTime":1778848702593,"traceId":"e603e232118573c5"},{"name":"write-routes-manifest","duration":443,"timestamp":40730986803,"id":111,"parentId":1,"tags":{},"startTime":1778848703233,"traceId":"e603e232118573c5"},{"name":"print-tree-view","duration":3569,"timestamp":40731002297,"id":112,"parentId":1,"tags":{},"startTime":1778848703249,"traceId":"e603e232118573c5"},{"name":"write-route-bundle-stats","duration":18222,"timestamp":40731005894,"id":113,"parentId":1,"tags":{},"startTime":1778848703252,"traceId":"e603e232118573c5"},{"name":"telemetry-flush","duration":17483,"timestamp":40731024150,"id":114,"parentId":1,"tags":{},"startTime":1778848703270,"traceId":"e603e232118573c5"},{"name":"next-build","duration":16854068,"timestamp":40714187591,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778848686434,"traceId":"e603e232118573c5"}]
1
+ [{"name":"generate-buildid","duration":254,"timestamp":41350615305,"id":4,"parentId":1,"tags":{},"startTime":1778849322862,"traceId":"4e3776f52a0fbd0a"},{"name":"load-custom-routes","duration":491,"timestamp":41350615707,"id":5,"parentId":1,"tags":{},"startTime":1778849322862,"traceId":"4e3776f52a0fbd0a"},{"name":"create-dist-dir","duration":633,"timestamp":41350616241,"id":6,"parentId":1,"tags":{},"startTime":1778849322863,"traceId":"4e3776f52a0fbd0a"},{"name":"clean","duration":494,"timestamp":41350617536,"id":7,"parentId":1,"tags":{},"startTime":1778849322864,"traceId":"4e3776f52a0fbd0a"},{"name":"discover-routes","duration":9890,"timestamp":41350696462,"id":8,"parentId":1,"tags":{},"startTime":1778849322943,"traceId":"4e3776f52a0fbd0a"},{"name":"create-root-mapping","duration":106,"timestamp":41350706408,"id":9,"parentId":1,"tags":{},"startTime":1778849322953,"traceId":"4e3776f52a0fbd0a"},{"name":"generate-route-types","duration":30661,"timestamp":41350708678,"id":10,"parentId":1,"tags":{},"startTime":1778849322955,"traceId":"4e3776f52a0fbd0a"},{"name":"public-dir-conflict-check","duration":97,"timestamp":41350739491,"id":11,"parentId":1,"tags":{},"startTime":1778849322986,"traceId":"4e3776f52a0fbd0a"},{"name":"generate-routes-manifest","duration":4662,"timestamp":41350739697,"id":12,"parentId":1,"tags":{},"startTime":1778849322986,"traceId":"4e3776f52a0fbd0a"},{"name":"run-turbopack","duration":5448798,"timestamp":41350749385,"id":14,"parentId":1,"tags":{},"startTime":1778849322996,"traceId":"4e3776f52a0fbd0a"},{"name":"turbopack-build-events","duration":103,"timestamp":41351040109,"id":15,"parentId":1,"tags":{},"startTime":1778849323286,"traceId":"4e3776f52a0fbd0a"},{"name":"run-typescript","duration":8419672,"timestamp":41356206316,"id":16,"parentId":1,"tags":{},"startTime":1778849328453,"traceId":"4e3776f52a0fbd0a"},{"name":"generate-required-server-files","duration":3039,"timestamp":41364627313,"id":18,"parentId":1,"tags":{},"startTime":1778849336874,"traceId":"4e3776f52a0fbd0a"},{"name":"check-static-error-page","duration":15134,"timestamp":41364845409,"id":20,"parentId":19,"tags":{},"startTime":1778849337092,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":402555,"timestamp":41364863600,"id":63,"parentId":22,"tags":{},"startTime":1778849337110,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":417666,"timestamp":41364848653,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778849337095,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":506845,"timestamp":41364865641,"id":67,"parentId":28,"tags":{},"startTime":1778849337112,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":520237,"timestamp":41364852350,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778849337099,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":506861,"timestamp":41364865962,"id":69,"parentId":30,"tags":{},"startTime":1778849337112,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":520267,"timestamp":41364852604,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778849337099,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":524131,"timestamp":41364866144,"id":70,"parentId":32,"tags":{},"startTime":1778849337112,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":537344,"timestamp":41364852993,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778849337099,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":544960,"timestamp":41364866214,"id":71,"parentId":33,"tags":{},"startTime":1778849337112,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":558125,"timestamp":41364853134,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778849337099,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":549985,"timestamp":41364863183,"id":62,"parentId":21,"tags":{},"startTime":1778849337109,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":566192,"timestamp":41364847042,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778849337093,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":549994,"timestamp":41364866291,"id":72,"parentId":34,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":563106,"timestamp":41364853244,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778849337100,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":554474,"timestamp":41364866464,"id":75,"parentId":37,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":566923,"timestamp":41364854071,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778849337100,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":559009,"timestamp":41364866482,"id":76,"parentId":38,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":571328,"timestamp":41364854222,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778849337100,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":563448,"timestamp":41364866492,"id":77,"parentId":39,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":575660,"timestamp":41364854320,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778849337101,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":567602,"timestamp":41364866322,"id":73,"parentId":35,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":580612,"timestamp":41364853354,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778849337100,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":567846,"timestamp":41364866506,"id":78,"parentId":40,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":579980,"timestamp":41364854415,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778849337101,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":571672,"timestamp":41364865830,"id":68,"parentId":29,"tags":{},"startTime":1778849337112,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":585087,"timestamp":41364852466,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778849337099,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":575539,"timestamp":41364866529,"id":80,"parentId":42,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":587496,"timestamp":41364854617,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778849337101,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":575785,"timestamp":41364866520,"id":79,"parentId":41,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":587838,"timestamp":41364854505,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778849337101,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":576827,"timestamp":41364866556,"id":82,"parentId":44,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":588586,"timestamp":41364854837,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778849337101,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":581233,"timestamp":41364863966,"id":66,"parentId":27,"tags":{},"startTime":1778849337110,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":593029,"timestamp":41364852222,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778849337098,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":579704,"timestamp":41364866543,"id":81,"parentId":43,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":591578,"timestamp":41364854716,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778849337101,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":580409,"timestamp":41364866569,"id":83,"parentId":45,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":592100,"timestamp":41364854941,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778849337101,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":581504,"timestamp":41364866578,"id":84,"parentId":46,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":593072,"timestamp":41364855055,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778849337101,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":583553,"timestamp":41364866592,"id":85,"parentId":47,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":595001,"timestamp":41364855182,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778849337101,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":581038,"timestamp":41364872350,"id":88,"parentId":24,"tags":{},"startTime":1778849337119,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":604219,"timestamp":41364849206,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778849337095,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":592650,"timestamp":41364863728,"id":64,"parentId":25,"tags":{},"startTime":1778849337110,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":604520,"timestamp":41364851902,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778849337098,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":597044,"timestamp":41364866616,"id":87,"parentId":49,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":606791,"timestamp":41364856914,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778849337103,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":602769,"timestamp":41364866429,"id":74,"parentId":36,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":615386,"timestamp":41364853862,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778849337100,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":603357,"timestamp":41364873534,"id":89,"parentId":31,"tags":{},"startTime":1778849337120,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":624226,"timestamp":41364852714,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778849337099,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":634460,"timestamp":41364863862,"id":65,"parentId":26,"tags":{},"startTime":1778849337110,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":646289,"timestamp":41364852102,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778849337098,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":638701,"timestamp":41364866606,"id":86,"parentId":48,"tags":{},"startTime":1778849337113,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":648595,"timestamp":41364856785,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778849337103,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":633022,"timestamp":41364875902,"id":90,"parentId":23,"tags":{},"startTime":1778849337122,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":660034,"timestamp":41364848946,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778849337095,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":640441,"timestamp":41364876080,"id":97,"parentId":57,"tags":{},"startTime":1778849337122,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":657182,"timestamp":41364859398,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778849337106,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":641696,"timestamp":41364876027,"id":93,"parentId":52,"tags":{},"startTime":1778849337122,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":659997,"timestamp":41364857792,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778849337104,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":648858,"timestamp":41364876094,"id":98,"parentId":59,"tags":{},"startTime":1778849337122,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":665008,"timestamp":41364860017,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778849337106,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":656116,"timestamp":41364876124,"id":100,"parentId":61,"tags":{},"startTime":1778849337122,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":672012,"timestamp":41364860297,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778849337107,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":659975,"timestamp":41364876108,"id":99,"parentId":60,"tags":{},"startTime":1778849337122,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":675999,"timestamp":41364860161,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778849337106,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":659799,"timestamp":41364881791,"id":101,"parentId":58,"tags":{},"startTime":1778849337128,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":682064,"timestamp":41364859577,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778849337106,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":665714,"timestamp":41364875999,"id":92,"parentId":51,"tags":{},"startTime":1778849337122,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":684189,"timestamp":41364857547,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778849337104,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":647803,"timestamp":41364897875,"id":102,"parentId":55,"tags":{},"startTime":1778849337144,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":687181,"timestamp":41364858539,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778849337105,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":676215,"timestamp":41364876040,"id":94,"parentId":53,"tags":{},"startTime":1778849337122,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":694221,"timestamp":41364858078,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778849337104,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":692060,"timestamp":41364875983,"id":91,"parentId":50,"tags":{},"startTime":1778849337122,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":710756,"timestamp":41364857349,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778849337104,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":706086,"timestamp":41364876050,"id":95,"parentId":54,"tags":{},"startTime":1778849337122,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":723901,"timestamp":41364858296,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778849337105,"traceId":"4e3776f52a0fbd0a"},{"name":"is-page-static","duration":707095,"timestamp":41364876067,"id":96,"parentId":56,"tags":{},"startTime":1778849337122,"traceId":"4e3776f52a0fbd0a"},{"name":"check-page","duration":724036,"timestamp":41364859184,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778849337105,"traceId":"4e3776f52a0fbd0a"},{"name":"static-check","duration":739004,"timestamp":41364844259,"id":19,"parentId":1,"tags":{},"startTime":1778849337091,"traceId":"4e3776f52a0fbd0a"},{"name":"write-routes-manifest","duration":367,"timestamp":41365589466,"id":104,"parentId":1,"tags":{},"startTime":1778849337836,"traceId":"4e3776f52a0fbd0a"},{"name":"load-dotenv","duration":65,"timestamp":41365601924,"id":107,"parentId":106,"tags":{},"startTime":1778849337848,"traceId":"4e3776f52a0fbd0a"},{"name":"run-export-path-map","duration":687,"timestamp":41365606094,"id":108,"parentId":106,"tags":{},"startTime":1778849337852,"traceId":"4e3776f52a0fbd0a"},{"name":"next-export","duration":561863,"timestamp":41365600071,"id":106,"parentId":1,"tags":{},"startTime":1778849337846,"traceId":"4e3776f52a0fbd0a"}]
2
+ [{"name":"move-exported-app-not-found-","duration":2617,"timestamp":41366165698,"id":109,"parentId":105,"tags":{},"startTime":1778849338412,"traceId":"4e3776f52a0fbd0a"},{"name":"move-exported-app-global-error-","duration":573,"timestamp":41366168421,"id":110,"parentId":105,"tags":{},"startTime":1778849338415,"traceId":"4e3776f52a0fbd0a"},{"name":"static-generation","duration":577256,"timestamp":41365593642,"id":105,"parentId":1,"tags":{},"startTime":1778849337840,"traceId":"4e3776f52a0fbd0a"},{"name":"write-routes-manifest","duration":537,"timestamp":41366171162,"id":111,"parentId":1,"tags":{},"startTime":1778849338417,"traceId":"4e3776f52a0fbd0a"},{"name":"print-tree-view","duration":4982,"timestamp":41366179681,"id":112,"parentId":1,"tags":{},"startTime":1778849338426,"traceId":"4e3776f52a0fbd0a"},{"name":"write-route-bundle-stats","duration":16086,"timestamp":41366184709,"id":113,"parentId":1,"tags":{},"startTime":1778849338431,"traceId":"4e3776f52a0fbd0a"},{"name":"telemetry-flush","duration":48325,"timestamp":41366200828,"id":114,"parentId":1,"tags":{},"startTime":1778849338447,"traceId":"4e3776f52a0fbd0a"},{"name":"next-build","duration":15683224,"timestamp":41350565974,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778849322812,"traceId":"4e3776f52a0fbd0a"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":5966358,"timestamp":40714391294,"id":14,"parentId":1,"tags":{},"startTime":1778848686638,"traceId":"e603e232118573c5"},{"name":"turbopack-build-events","duration":103,"timestamp":40714696648,"id":15,"parentId":1,"tags":{},"startTime":1778848686943,"traceId":"e603e232118573c5"},{"name":"run-typescript","duration":8901721,"timestamp":40720369772,"id":16,"parentId":1,"tags":{},"startTime":1778848692616,"traceId":"e603e232118573c5"},{"name":"static-check","duration":856738,"timestamp":40729479425,"id":19,"parentId":1,"tags":{},"startTime":1778848701726,"traceId":"e603e232118573c5"},{"name":"static-generation","duration":639780,"timestamp":40730346848,"id":105,"parentId":1,"tags":{},"startTime":1778848702593,"traceId":"e603e232118573c5"},{"name":"telemetry-flush","duration":17483,"timestamp":40731024150,"id":114,"parentId":1,"tags":{},"startTime":1778848703270,"traceId":"e603e232118573c5"},{"name":"next-build","duration":16854068,"timestamp":40714187591,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778848686434,"traceId":"e603e232118573c5"}]
1
+ [{"name":"run-turbopack","duration":5448798,"timestamp":41350749385,"id":14,"parentId":1,"tags":{},"startTime":1778849322996,"traceId":"4e3776f52a0fbd0a"},{"name":"turbopack-build-events","duration":103,"timestamp":41351040109,"id":15,"parentId":1,"tags":{},"startTime":1778849323286,"traceId":"4e3776f52a0fbd0a"},{"name":"run-typescript","duration":8419672,"timestamp":41356206316,"id":16,"parentId":1,"tags":{},"startTime":1778849328453,"traceId":"4e3776f52a0fbd0a"},{"name":"static-check","duration":739004,"timestamp":41364844259,"id":19,"parentId":1,"tags":{},"startTime":1778849337091,"traceId":"4e3776f52a0fbd0a"},{"name":"static-generation","duration":577256,"timestamp":41365593642,"id":105,"parentId":1,"tags":{},"startTime":1778849337840,"traceId":"4e3776f52a0fbd0a"},{"name":"telemetry-flush","duration":48325,"timestamp":41366200828,"id":114,"parentId":1,"tags":{},"startTime":1778849338447,"traceId":"4e3776f52a0fbd0a"},{"name":"next-build","duration":15683224,"timestamp":41350565974,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778849322812,"traceId":"4e3776f52a0fbd0a"}]
@@ -1996,6 +1996,33 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
1996
1996
  onPointerEnter={() => setHoveredGroupLabel(box.key)}
1997
1997
  onPointerLeave={() => setHoveredGroupLabel(prev => prev === box.key ? null : prev)}
1998
1998
  >
1999
+ {/* R99: SVG <title> tooltip listing group members +
2000
+ status breakdown. Same info-density spirit as
2001
+ R97 pill tooltips + R98 node tooltips — anywhere
2002
+ a UI element says "alpha · 3" should hover-
2003
+ explain WHICH 3. Truncates at 8 aliases with a
2004
+ "+N more" suffix so a 20-member band doesn't
2005
+ paint a 22-line tooltip. */}
2006
+ {(() => {
2007
+ const members = Object.entries(groupKeys)
2008
+ .filter(([, key]) => key === box.key)
2009
+ .map(([alias]) => alias);
2010
+ const memberPreview = members.slice(0, 8).join(', ');
2011
+ const suffix = members.length > 8 ? ` + ${members.length - 8} more` : '';
2012
+ const statusSummary = [
2013
+ box.statuses.working > 0 ? `${box.statuses.working} working` : null,
2014
+ box.statuses.idle > 0 ? `${box.statuses.idle} idle` : null,
2015
+ box.statuses.offline > 0 ? `${box.statuses.offline} offline` : null,
2016
+ ].filter(Boolean).join(' · ');
2017
+ return (
2018
+ <title>{[
2019
+ `${box.key} (${members.length} member${members.length === 1 ? '' : 's'})`,
2020
+ statusSummary || null,
2021
+ `${memberPreview}${suffix}`,
2022
+ pinnedGroup === box.key ? 'click to release pin' : 'click to pin this group',
2023
+ ].filter(Boolean).join('\n')}</title>
2024
+ );
2025
+ })()}
1999
2026
  <rect
2000
2027
  x={box.x + 6}
2001
2028
  y={box.y + 2}
@@ -2231,6 +2258,50 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
2231
2258
  <animate attributeName="opacity" values="0;0.45;0" dur={`${duration}s`} begin="0s" repeatCount="indefinite" />
2232
2259
  </circle>
2233
2260
  )}
2261
+ {/* Round 100 / Loop: midpoint count badge for high-
2262
+ traffic edges. Width already gauges intensity but
2263
+ "5 vs 12" is hard to read off stroke alone. Render
2264
+ a compact pill at the bezier midpoint (t=0.5 →
2265
+ midpoint + perpendicular × lift/2) showing the
2266
+ integer count. Threshold link.count >= 3 keeps
2267
+ the canvas quiet for sparse traffic. Bezier
2268
+ midpoint math: for a quadratic curve M A Q C B,
2269
+ the t=0.5 point is (A + 2C + B) / 4, which
2270
+ simplifies to (midAB) + 0.5 × (control - midAB)
2271
+ = midAB + perpendicular × lift/2. */}
2272
+ {link.count >= 3 && (() => {
2273
+ const midX = (from.x + to.x) / 2;
2274
+ const midY = (from.y + to.y) / 2;
2275
+ const dx = to.x - from.x;
2276
+ const dy = to.y - from.y;
2277
+ const len = Math.hypot(dx, dy) || 1;
2278
+ const badgeX = midX + (-dy / len) * lift * 0.5;
2279
+ const badgeY = midY + ( dx / len) * lift * 0.5;
2280
+ const badgeOpacity = Math.min(1, fresh * edgeOpacityMul);
2281
+ return (
2282
+ <g
2283
+ data-edge-count-badge={link.key}
2284
+ style={{ pointerEvents: 'none' }}
2285
+ opacity={badgeOpacity}
2286
+ >
2287
+ <circle
2288
+ cx={badgeX} cy={badgeY} r="9"
2289
+ fill={pal.legendBox.fill}
2290
+ stroke={pal.flowEdge}
2291
+ strokeWidth="1"
2292
+ opacity={isLight ? 0.95 : 0.82}
2293
+ />
2294
+ <text
2295
+ x={badgeX} y={badgeY + 3}
2296
+ textAnchor="middle"
2297
+ fill={pal.legendHeadline}
2298
+ fontSize="10"
2299
+ fontFamily="monospace"
2300
+ fontWeight="700"
2301
+ >{link.count}</text>
2302
+ </g>
2303
+ );
2304
+ })()}
2234
2305
  </g>
2235
2306
  );
2236
2307
  })}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.4.6-preview.105",
3
+ "version": "0.4.6-preview.107",
4
4
  "description": "Agent Network Dashboard — Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,84 @@
1
+ /* Round 100 verification: edges with count >= 3 render a midpoint
2
+ * count badge. The edge stroke width gauges intensity but at high
3
+ * volume "5 vs 12" is hard to read off the line. The badge spells
4
+ * out the integer at the bezier midpoint.
5
+ *
6
+ * Fleet: alpha → beta with 5 messages, gamma → delta with 1, all
7
+ * fresh. Expect one badge for the 5-msg flow, none for the 1-msg
8
+ * flow (count below threshold). Verify badge text matches the
9
+ * link.count and pointer-events:none so the existing R48 edge
10
+ * hitbox stays alive.
11
+ */
12
+ import { chromium } from 'playwright';
13
+ import { readFileSync } from 'node:fs';
14
+
15
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
16
+ const browser = await chromium.launch({ headless: true });
17
+
18
+ const ctx = await browser.newContext({ viewport: { width: 1400, height: 1500 } });
19
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
20
+ await ctx.addInitScript(() => {
21
+ try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
22
+ });
23
+
24
+ const fresh = new Date(Date.now() - 30 * 1000).toISOString();
25
+ await ctx.route('**/api/hub/status*', async (route) => {
26
+ const r = await route.fetch();
27
+ const b = await r.json();
28
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
29
+ const mk = (alias) => ({
30
+ alias, status: 'idle', model: 'claude-opus-4', runtime: 'cli-claude-code',
31
+ network_id: nid, project_dir: null,
32
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
33
+ });
34
+ await route.fulfill({ response: r, json: { ...b, sessions: [mk('alpha'), mk('beta'), mk('gamma'), mk('delta')] } });
35
+ });
36
+
37
+ const now = Date.now();
38
+ const mkMsg = (id, from_alias, to_alias, ageMs) => ({
39
+ id, from_alias, to_alias, content: 'ping', network_id: 'default',
40
+ created_at: new Date(now - ageMs).toISOString(),
41
+ });
42
+ await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: [
43
+ // 5 alpha → beta (count=5, badge expected)
44
+ mkMsg('m1', 'alpha', 'beta', 30 * 1000),
45
+ mkMsg('m2', 'alpha', 'beta', 40 * 1000),
46
+ mkMsg('m3', 'alpha', 'beta', 50 * 1000),
47
+ mkMsg('m4', 'alpha', 'beta', 60 * 1000),
48
+ mkMsg('m5', 'alpha', 'beta', 70 * 1000),
49
+ // 1 gamma → delta (count=1, NO badge)
50
+ mkMsg('m6', 'gamma', 'delta', 80 * 1000),
51
+ // 3 beta → alpha (count=3 — threshold, badge expected)
52
+ mkMsg('m7', 'beta', 'alpha', 35 * 1000),
53
+ mkMsg('m8', 'beta', 'alpha', 45 * 1000),
54
+ mkMsg('m9', 'beta', 'alpha', 55 * 1000),
55
+ ] } }));
56
+ await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
57
+ const page = await ctx.newPage();
58
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
59
+ await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 4, { timeout: 30000 });
60
+ await page.waitForSelector('[data-edge-count-badge]', { timeout: 10000 });
61
+ await page.waitForTimeout(400);
62
+
63
+ const badges = await page.evaluate(() => {
64
+ return [...document.querySelectorAll('[data-edge-count-badge]')].map(g => ({
65
+ key: g.getAttribute('data-edge-count-badge'),
66
+ count: g.querySelector('text')?.textContent || '',
67
+ pe: getComputedStyle(g).pointerEvents,
68
+ }));
69
+ });
70
+
71
+ await browser.close();
72
+
73
+ const byKey = Object.fromEntries(badges.map(b => [b.key, b]));
74
+ const results = {
75
+ twoBadges: badges.length === 2,
76
+ alphaBeta_badge: byKey['alpha->beta']?.count === '5',
77
+ betaAlpha_badge: byKey['beta->alpha']?.count === '3',
78
+ gammaDelta_noBadge: !byKey['gamma->delta'],
79
+ badges_nonInteractive: badges.every(b => b.pe === 'none'),
80
+ };
81
+ const ok = Object.values(results).every(Boolean);
82
+ console.log(`${ok ? '✅' : '❌'} edge-count badge:`, JSON.stringify(results),
83
+ `\n badges=`, badges);
84
+ process.exit(ok ? 0 : 1);
@@ -0,0 +1,83 @@
1
+ /* Round 99 verification: group label <title> tooltip lists members
2
+ * + status breakdown. Same R97/R98 pattern — anywhere the UI shows
3
+ * "alpha · 3" should hover-explain WHICH 3.
4
+ *
5
+ * Fleet: alpha group has 3 members (2 working + 1 idle), beta has
6
+ * 2 idle. Pin alpha to confirm the title's last line flips from
7
+ * "click to pin" → "click to release pin".
8
+ */
9
+ import { chromium } from 'playwright';
10
+ import { readFileSync } from 'node:fs';
11
+
12
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
13
+ const browser = await chromium.launch({ headless: true });
14
+
15
+ const ctx = await browser.newContext({ viewport: { width: 1400, height: 1500 } });
16
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
17
+ await ctx.addInitScript(() => {
18
+ try {
19
+ localStorage.setItem('anet-theme', 'cyber');
20
+ localStorage.setItem('anet-topo-layout', 'grid');
21
+ sessionStorage.setItem('anet_v3_auth', '1');
22
+ sessionStorage.removeItem('anet-topo-pinned-group');
23
+ } catch {}
24
+ });
25
+
26
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
27
+ await ctx.route('**/api/hub/status*', async (route) => {
28
+ const r = await route.fetch();
29
+ const b = await r.json();
30
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
31
+ const mk = (alias, status) => ({
32
+ alias, status, model: 'claude-opus-4', runtime: 'cli-claude-code',
33
+ network_id: nid, project_dir: null,
34
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
35
+ });
36
+ await route.fulfill({ response: r, json: { ...b, sessions: [
37
+ mk('alpha1', 'working'),
38
+ mk('alpha2', 'working'),
39
+ mk('alpha3', 'idle'),
40
+ mk('beta1', 'idle'),
41
+ mk('beta2', 'idle'),
42
+ ] } });
43
+ });
44
+ await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: [] } }));
45
+ await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
46
+ const page = await ctx.newPage();
47
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
48
+ await page.waitForFunction(() => document.querySelectorAll('[data-group-label-hit]').length >= 2, { timeout: 30000 });
49
+ await page.waitForTimeout(400);
50
+
51
+ const readTitle = (groupKey) => page.evaluate((k) => {
52
+ const g = document.querySelector(`[data-group-label-hit="${k}"]`);
53
+ return g?.querySelector('title')?.textContent || '';
54
+ }, groupKey);
55
+
56
+ const alphaTitle = await readTitle('alpha');
57
+ const betaTitle = await readTitle('beta');
58
+
59
+ // Pin alpha — last line should flip.
60
+ await page.locator('[data-group-label-hit="alpha"]').click();
61
+ await page.waitForTimeout(250);
62
+ const alphaTitlePinned = await readTitle('alpha');
63
+
64
+ await browser.close();
65
+
66
+ const results = {
67
+ alpha_heading: /^alpha \(3 members\)/m.test(alphaTitle),
68
+ alpha_statusSummary: /2 working · 1 idle/.test(alphaTitle),
69
+ alpha_listsMembers: /alpha1.*alpha2.*alpha3/.test(alphaTitle),
70
+ alpha_pinHint: /click to pin this group/.test(alphaTitle),
71
+ beta_heading: /^beta \(2 members\)/m.test(betaTitle),
72
+ beta_statusSummary: /2 idle/.test(betaTitle),
73
+ beta_noWorkingInSummary: !/working/.test(betaTitle),
74
+ beta_listsMembers: /beta1.*beta2/.test(betaTitle),
75
+ pinned_hintFlipped: /click to release pin/.test(alphaTitlePinned),
76
+ pinned_keepsMembers: /alpha1.*alpha2.*alpha3/.test(alphaTitlePinned),
77
+ };
78
+ const ok = Object.values(results).every(Boolean);
79
+ console.log(`${ok ? '✅' : '❌'} group-label title:`, JSON.stringify(results),
80
+ `\n alpha:\n${alphaTitle}`,
81
+ `\n beta:\n${betaTitle}`,
82
+ `\n alphaPinned:\n${alphaTitlePinned}`);
83
+ process.exit(ok ? 0 : 1);