@sleep2agi/agent-network-dashboard 0.4.6-preview.36 → 0.4.6-preview.38

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 +1 -1
  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/{00_p_cprq~0bi.js → 0c29j~5shd..8.js} +1 -1
  133. package/.next/static/chunks/0o.0pyvy4wrgg.js +1 -0
  134. package/.next/static/chunks/{082rjyyytvq6v.js → 0pcx4h4f7.ya5.js} +1 -1
  135. package/.next/trace +2 -2
  136. package/.next/trace-build +1 -1
  137. package/app/components/TopoGraph.tsx +85 -0
  138. package/package.json +1 -1
  139. package/scripts/topo-minimap-test.mjs +68 -0
  140. package/scripts/topo-pressure-bar-test.mjs +69 -0
  141. package/.next/static/chunks/16.fwlwq9fvk_.js +0 -1
  142. /package/.next/static/{2VmVsLw44dMGZA7M-1NKi → Sz2sSZSs1P90cnSFNBURm}/_buildManifest.js +0 -0
  143. /package/.next/static/{2VmVsLw44dMGZA7M-1NKi → Sz2sSZSs1P90cnSFNBURm}/_clientMiddlewareManifest.js +0 -0
  144. /package/.next/static/{2VmVsLw44dMGZA7M-1NKi → Sz2sSZSs1P90cnSFNBURm}/_ssgManifest.js +0 -0
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":264,"timestamp":15532732495,"id":4,"parentId":1,"tags":{},"startTime":1778823504979,"traceId":"ca91904f9d5dc850"},{"name":"load-custom-routes","duration":488,"timestamp":15532732897,"id":5,"parentId":1,"tags":{},"startTime":1778823504979,"traceId":"ca91904f9d5dc850"},{"name":"create-dist-dir","duration":654,"timestamp":15532733429,"id":6,"parentId":1,"tags":{},"startTime":1778823504980,"traceId":"ca91904f9d5dc850"},{"name":"clean","duration":523,"timestamp":15532734726,"id":7,"parentId":1,"tags":{},"startTime":1778823504981,"traceId":"ca91904f9d5dc850"},{"name":"discover-routes","duration":10784,"timestamp":15532834460,"id":8,"parentId":1,"tags":{},"startTime":1778823505081,"traceId":"ca91904f9d5dc850"},{"name":"create-root-mapping","duration":106,"timestamp":15532845307,"id":9,"parentId":1,"tags":{},"startTime":1778823505092,"traceId":"ca91904f9d5dc850"},{"name":"generate-route-types","duration":35584,"timestamp":15532847584,"id":10,"parentId":1,"tags":{},"startTime":1778823505094,"traceId":"ca91904f9d5dc850"},{"name":"public-dir-conflict-check","duration":98,"timestamp":15532883326,"id":11,"parentId":1,"tags":{},"startTime":1778823505130,"traceId":"ca91904f9d5dc850"},{"name":"generate-routes-manifest","duration":4106,"timestamp":15532883560,"id":12,"parentId":1,"tags":{},"startTime":1778823505130,"traceId":"ca91904f9d5dc850"},{"name":"run-turbopack","duration":6971447,"timestamp":15532893245,"id":14,"parentId":1,"tags":{},"startTime":1778823505140,"traceId":"ca91904f9d5dc850"},{"name":"turbopack-build-events","duration":104,"timestamp":15533203551,"id":15,"parentId":1,"tags":{},"startTime":1778823505450,"traceId":"ca91904f9d5dc850"},{"name":"run-typescript","duration":10207247,"timestamp":15539876273,"id":16,"parentId":1,"tags":{},"startTime":1778823512123,"traceId":"ca91904f9d5dc850"},{"name":"generate-required-server-files","duration":3082,"timestamp":15550084897,"id":18,"parentId":1,"tags":{},"startTime":1778823522331,"traceId":"ca91904f9d5dc850"},{"name":"check-static-error-page","duration":14818,"timestamp":15550307815,"id":20,"parentId":19,"tags":{},"startTime":1778823522554,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":616372,"timestamp":15550326735,"id":63,"parentId":22,"tags":{},"startTime":1778823522573,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":632191,"timestamp":15550311212,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778823522557,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":750149,"timestamp":15550327735,"id":69,"parentId":30,"tags":{},"startTime":1778823522574,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":762987,"timestamp":15550314990,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778823522561,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":771825,"timestamp":15550327588,"id":68,"parentId":29,"tags":{},"startTime":1778823522574,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":784687,"timestamp":15550314811,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778823522561,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":798404,"timestamp":15550327988,"id":71,"parentId":33,"tags":{},"startTime":1778823522574,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":810869,"timestamp":15550315617,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778823522562,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":798770,"timestamp":15550327926,"id":70,"parentId":32,"tags":{},"startTime":1778823522574,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":811276,"timestamp":15550315468,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778823522562,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":805122,"timestamp":15550328106,"id":72,"parentId":34,"tags":{},"startTime":1778823522574,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":817538,"timestamp":15550315764,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778823522562,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":826186,"timestamp":15550328135,"id":73,"parentId":35,"tags":{},"startTime":1778823522574,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":838493,"timestamp":15550315911,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778823522562,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":826451,"timestamp":15550328253,"id":74,"parentId":36,"tags":{},"startTime":1778823522575,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":838307,"timestamp":15550316439,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778823522563,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":828032,"timestamp":15550326894,"id":64,"parentId":25,"tags":{},"startTime":1778823522573,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":840661,"timestamp":15550314308,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778823522561,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":835725,"timestamp":15550327427,"id":67,"parentId":28,"tags":{},"startTime":1778823522574,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":848537,"timestamp":15550314673,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778823522561,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":840461,"timestamp":15550328306,"id":78,"parentId":40,"tags":{},"startTime":1778823522575,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":851776,"timestamp":15550317049,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778823522563,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":846892,"timestamp":15550326328,"id":62,"parentId":21,"tags":{},"startTime":1778823522573,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":863742,"timestamp":15550309526,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778823522556,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":848115,"timestamp":15550328291,"id":76,"parentId":38,"tags":{},"startTime":1778823522575,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":859658,"timestamp":15550316793,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778823522563,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":848705,"timestamp":15550328279,"id":75,"parentId":37,"tags":{},"startTime":1778823522575,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":860412,"timestamp":15550316635,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778823522563,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":854086,"timestamp":15550328341,"id":82,"parentId":44,"tags":{},"startTime":1778823522575,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":865103,"timestamp":15550317371,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778823522564,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":858112,"timestamp":15550328300,"id":77,"parentId":39,"tags":{},"startTime":1778823522575,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":869558,"timestamp":15550316909,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778823522563,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":866535,"timestamp":15550328329,"id":81,"parentId":43,"tags":{},"startTime":1778823522575,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":877621,"timestamp":15550317310,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778823522564,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":882886,"timestamp":15550328370,"id":84,"parentId":46,"tags":{},"startTime":1778823522575,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":892596,"timestamp":15550318737,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778823522565,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":886473,"timestamp":15550328391,"id":86,"parentId":48,"tags":{},"startTime":1778823522575,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":895843,"timestamp":15550319078,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778823522565,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":889556,"timestamp":15550327177,"id":66,"parentId":27,"tags":{},"startTime":1778823522573,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":902228,"timestamp":15550314556,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778823522561,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":888944,"timestamp":15550328378,"id":85,"parentId":47,"tags":{},"startTime":1778823522575,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":898449,"timestamp":15550318918,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778823522565,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":892636,"timestamp":15550328403,"id":87,"parentId":49,"tags":{},"startTime":1778823522575,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":901902,"timestamp":15550319197,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778823522565,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":893036,"timestamp":15550328314,"id":79,"parentId":41,"tags":{},"startTime":1778823522575,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":904220,"timestamp":15550317168,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778823522563,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":889828,"timestamp":15550332629,"id":89,"parentId":31,"tags":{},"startTime":1778823522579,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":907319,"timestamp":15550315177,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778823522561,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":892747,"timestamp":15550331468,"id":88,"parentId":24,"tags":{},"startTime":1778823522578,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":912469,"timestamp":15550311786,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778823522558,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":906388,"timestamp":15550328354,"id":83,"parentId":45,"tags":{},"startTime":1778823522575,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":917358,"timestamp":15550317434,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778823522564,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":942078,"timestamp":15550328323,"id":80,"parentId":42,"tags":{},"startTime":1778823522575,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":953235,"timestamp":15550317245,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778823522564,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":964315,"timestamp":15550327040,"id":65,"parentId":26,"tags":{},"startTime":1778823522573,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":976995,"timestamp":15550314454,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778823522561,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":976634,"timestamp":15550334996,"id":92,"parentId":51,"tags":{},"startTime":1778823522581,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":991933,"timestamp":15550319776,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778823522566,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":980311,"timestamp":15550335056,"id":95,"parentId":54,"tags":{},"startTime":1778823522581,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":995007,"timestamp":15550320428,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778823522567,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":982425,"timestamp":15550335043,"id":94,"parentId":53,"tags":{},"startTime":1778823522581,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":997317,"timestamp":15550320198,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778823522566,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":993186,"timestamp":15550334956,"id":90,"parentId":23,"tags":{},"startTime":1778823522581,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":1016681,"timestamp":15550311524,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778823522558,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":995787,"timestamp":15550335088,"id":97,"parentId":57,"tags":{},"startTime":1778823522581,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":1009511,"timestamp":15550321440,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778823522568,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":998578,"timestamp":15550335115,"id":99,"parentId":60,"tags":{},"startTime":1778823522581,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":1011519,"timestamp":15550322230,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778823522569,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":999037,"timestamp":15550335102,"id":98,"parentId":59,"tags":{},"startTime":1778823522581,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":1012102,"timestamp":15550322076,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778823522568,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":1003474,"timestamp":15550335132,"id":100,"parentId":61,"tags":{},"startTime":1778823522581,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":1016262,"timestamp":15550322382,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778823522569,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":1006277,"timestamp":15550334986,"id":91,"parentId":50,"tags":{},"startTime":1778823522581,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":1021711,"timestamp":15550319595,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778823522566,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":1000822,"timestamp":15550340852,"id":101,"parentId":58,"tags":{},"startTime":1778823522587,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":1020105,"timestamp":15550321638,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778823522568,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":986644,"timestamp":15550356313,"id":102,"parentId":55,"tags":{},"startTime":1778823522603,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":1022339,"timestamp":15550320654,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778823522567,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":1017573,"timestamp":15550335029,"id":93,"parentId":52,"tags":{},"startTime":1778823522581,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":1032699,"timestamp":15550319955,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778823522566,"traceId":"ca91904f9d5dc850"},{"name":"is-page-static","duration":1045638,"timestamp":15550335074,"id":96,"parentId":56,"tags":{},"startTime":1778823522581,"traceId":"ca91904f9d5dc850"},{"name":"check-page","duration":1059558,"timestamp":15550321228,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778823522568,"traceId":"ca91904f9d5dc850"},{"name":"static-check","duration":1074267,"timestamp":15550306581,"id":19,"parentId":1,"tags":{},"startTime":1778823522553,"traceId":"ca91904f9d5dc850"},{"name":"write-routes-manifest","duration":554,"timestamp":15551388352,"id":104,"parentId":1,"tags":{},"startTime":1778823523635,"traceId":"ca91904f9d5dc850"},{"name":"load-dotenv","duration":90,"timestamp":15551401310,"id":107,"parentId":106,"tags":{},"startTime":1778823523648,"traceId":"ca91904f9d5dc850"},{"name":"run-export-path-map","duration":948,"timestamp":15551404918,"id":108,"parentId":106,"tags":{},"startTime":1778823523651,"traceId":"ca91904f9d5dc850"},{"name":"next-export","duration":729232,"timestamp":15551399142,"id":106,"parentId":1,"tags":{},"startTime":1778823523645,"traceId":"ca91904f9d5dc850"}]
2
- [{"name":"move-exported-app-not-found-","duration":2355,"timestamp":15552131636,"id":109,"parentId":105,"tags":{},"startTime":1778823524378,"traceId":"ca91904f9d5dc850"},{"name":"move-exported-app-global-error-","duration":849,"timestamp":15552134101,"id":110,"parentId":105,"tags":{},"startTime":1778823524380,"traceId":"ca91904f9d5dc850"},{"name":"static-generation","duration":743645,"timestamp":15551393425,"id":105,"parentId":1,"tags":{},"startTime":1778823523640,"traceId":"ca91904f9d5dc850"},{"name":"write-routes-manifest","duration":632,"timestamp":15552137297,"id":111,"parentId":1,"tags":{},"startTime":1778823524384,"traceId":"ca91904f9d5dc850"},{"name":"print-tree-view","duration":4036,"timestamp":15552156174,"id":112,"parentId":1,"tags":{},"startTime":1778823524402,"traceId":"ca91904f9d5dc850"},{"name":"write-route-bundle-stats","duration":17794,"timestamp":15552160249,"id":113,"parentId":1,"tags":{},"startTime":1778823524407,"traceId":"ca91904f9d5dc850"},{"name":"telemetry-flush","duration":15430,"timestamp":15552178088,"id":114,"parentId":1,"tags":{},"startTime":1778823524424,"traceId":"ca91904f9d5dc850"},{"name":"next-build","duration":19512246,"timestamp":15532681320,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778823504928,"traceId":"ca91904f9d5dc850"}]
1
+ [{"name":"generate-buildid","duration":397,"timestamp":16118136952,"id":4,"parentId":1,"tags":{},"startTime":1778824090383,"traceId":"fff6258cb3bea028"},{"name":"load-custom-routes","duration":743,"timestamp":16118137559,"id":5,"parentId":1,"tags":{},"startTime":1778824090384,"traceId":"fff6258cb3bea028"},{"name":"create-dist-dir","duration":938,"timestamp":16118138369,"id":6,"parentId":1,"tags":{},"startTime":1778824090385,"traceId":"fff6258cb3bea028"},{"name":"clean","duration":617,"timestamp":16118140694,"id":7,"parentId":1,"tags":{},"startTime":1778824090387,"traceId":"fff6258cb3bea028"},{"name":"discover-routes","duration":28233,"timestamp":16118265312,"id":8,"parentId":1,"tags":{},"startTime":1778824090512,"traceId":"fff6258cb3bea028"},{"name":"create-root-mapping","duration":195,"timestamp":16118293627,"id":9,"parentId":1,"tags":{},"startTime":1778824090540,"traceId":"fff6258cb3bea028"},{"name":"generate-route-types","duration":26160,"timestamp":16118296834,"id":10,"parentId":1,"tags":{},"startTime":1778824090543,"traceId":"fff6258cb3bea028"},{"name":"public-dir-conflict-check","duration":121,"timestamp":16118323234,"id":11,"parentId":1,"tags":{},"startTime":1778824090570,"traceId":"fff6258cb3bea028"},{"name":"generate-routes-manifest","duration":5479,"timestamp":16118323519,"id":12,"parentId":1,"tags":{},"startTime":1778824090570,"traceId":"fff6258cb3bea028"},{"name":"run-turbopack","duration":5884609,"timestamp":16118335208,"id":14,"parentId":1,"tags":{},"startTime":1778824090581,"traceId":"fff6258cb3bea028"},{"name":"turbopack-build-events","duration":104,"timestamp":16118652808,"id":15,"parentId":1,"tags":{},"startTime":1778824090899,"traceId":"fff6258cb3bea028"},{"name":"run-typescript","duration":8398611,"timestamp":16124230576,"id":16,"parentId":1,"tags":{},"startTime":1778824096477,"traceId":"fff6258cb3bea028"},{"name":"generate-required-server-files","duration":2382,"timestamp":16132630279,"id":18,"parentId":1,"tags":{},"startTime":1778824104877,"traceId":"fff6258cb3bea028"},{"name":"check-static-error-page","duration":13095,"timestamp":16132826308,"id":20,"parentId":19,"tags":{},"startTime":1778824105073,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":482415,"timestamp":16132842285,"id":63,"parentId":22,"tags":{},"startTime":1778824105089,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":496286,"timestamp":16132828599,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778824105075,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":582742,"timestamp":16132842529,"id":65,"parentId":26,"tags":{},"startTime":1778824105089,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":594221,"timestamp":16132831146,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778824105077,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":590058,"timestamp":16132843327,"id":70,"parentId":32,"tags":{},"startTime":1778824105090,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":601396,"timestamp":16132832059,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778824105078,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":604231,"timestamp":16132841889,"id":62,"parentId":21,"tags":{},"startTime":1778824105088,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":618687,"timestamp":16132827513,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778824105074,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":611053,"timestamp":16132842876,"id":67,"parentId":28,"tags":{},"startTime":1778824105089,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":623155,"timestamp":16132831392,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778824105078,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":619886,"timestamp":16132842416,"id":64,"parentId":25,"tags":{},"startTime":1778824105089,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":631406,"timestamp":16132830965,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778824105077,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":628353,"timestamp":16132843391,"id":71,"parentId":33,"tags":{},"startTime":1778824105090,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":639721,"timestamp":16132832188,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778824105078,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":632241,"timestamp":16132843164,"id":69,"parentId":30,"tags":{},"startTime":1778824105089,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":643809,"timestamp":16132831651,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778824105078,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":638474,"timestamp":16132848476,"id":73,"parentId":35,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":654669,"timestamp":16132832412,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778824105079,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":641137,"timestamp":16132848666,"id":75,"parentId":37,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":656722,"timestamp":16132833147,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778824105079,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":645574,"timestamp":16132848707,"id":78,"parentId":40,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":660825,"timestamp":16132833502,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778824105080,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":655851,"timestamp":16132843040,"id":68,"parentId":29,"tags":{},"startTime":1778824105089,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":667420,"timestamp":16132831513,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778824105078,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":656506,"timestamp":16132842634,"id":66,"parentId":27,"tags":{},"startTime":1778824105089,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":667905,"timestamp":16132831272,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778824105078,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":650620,"timestamp":16132848716,"id":79,"parentId":41,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":665769,"timestamp":16132833596,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778824105080,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":658306,"timestamp":16132848753,"id":82,"parentId":44,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":673196,"timestamp":16132833906,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778824105080,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":658487,"timestamp":16132848762,"id":83,"parentId":45,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":673252,"timestamp":16132834027,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778824105080,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":658755,"timestamp":16132848741,"id":81,"parentId":43,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":673720,"timestamp":16132833816,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778824105080,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":658974,"timestamp":16132848680,"id":76,"parentId":38,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":674391,"timestamp":16132833290,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778824105080,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":659149,"timestamp":16132848628,"id":74,"parentId":36,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":674863,"timestamp":16132832939,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778824105079,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":659425,"timestamp":16132848694,"id":77,"parentId":39,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":674769,"timestamp":16132833396,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778824105080,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":667704,"timestamp":16132848788,"id":85,"parentId":47,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":682283,"timestamp":16132834269,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778824105081,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":671664,"timestamp":16132848775,"id":84,"parentId":46,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":686357,"timestamp":16132834132,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778824105080,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":667894,"timestamp":16132856063,"id":88,"parentId":24,"tags":{},"startTime":1778824105102,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":694987,"timestamp":16132829035,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778824105075,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":667587,"timestamp":16132857298,"id":89,"parentId":31,"tags":{},"startTime":1778824105104,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":693157,"timestamp":16132831767,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778824105078,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":678827,"timestamp":16132848823,"id":87,"parentId":49,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":691840,"timestamp":16132835858,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778824105082,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":687580,"timestamp":16132848728,"id":80,"parentId":42,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":702650,"timestamp":16132833705,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778824105080,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":695942,"timestamp":16132848397,"id":72,"parentId":34,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":712100,"timestamp":16132832292,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778824105079,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":698693,"timestamp":16132848797,"id":86,"parentId":48,"tags":{},"startTime":1778824105095,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":713168,"timestamp":16132834371,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778824105081,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":687402,"timestamp":16132867397,"id":95,"parentId":54,"tags":{},"startTime":1778824105114,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":717670,"timestamp":16132837190,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778824105083,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":696298,"timestamp":16132867429,"id":97,"parentId":57,"tags":{},"startTime":1778824105114,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":725529,"timestamp":16132838249,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778824105085,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":705006,"timestamp":16132867439,"id":98,"parentId":59,"tags":{},"startTime":1778824105114,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":733670,"timestamp":16132838853,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778824105085,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":719671,"timestamp":16132867456,"id":99,"parentId":60,"tags":{},"startTime":1778824105114,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":748219,"timestamp":16132838996,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778824105085,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":722755,"timestamp":16132867339,"id":91,"parentId":50,"tags":{},"startTime":1778824105114,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":753784,"timestamp":16132836396,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778824105083,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":727145,"timestamp":16132867356,"id":92,"parentId":51,"tags":{},"startTime":1778824105114,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":757996,"timestamp":16132836574,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778824105083,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":722089,"timestamp":16132873899,"id":101,"parentId":58,"tags":{},"startTime":1778824105120,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":757639,"timestamp":16132838422,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778824105085,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":728821,"timestamp":16132867475,"id":100,"parentId":61,"tags":{},"startTime":1778824105114,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":757188,"timestamp":16132839153,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778824105085,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":698069,"timestamp":16132904205,"id":102,"parentId":55,"tags":{},"startTime":1778824105150,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":764881,"timestamp":16132837438,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778824105084,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":740176,"timestamp":16132867382,"id":94,"parentId":53,"tags":{},"startTime":1778824105114,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":770666,"timestamp":16132836956,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778824105083,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":742227,"timestamp":16132867371,"id":93,"parentId":52,"tags":{},"startTime":1778824105114,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":772897,"timestamp":16132836742,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778824105083,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":742286,"timestamp":16132867416,"id":96,"parentId":56,"tags":{},"startTime":1778824105114,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":771683,"timestamp":16132838038,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778824105084,"traceId":"fff6258cb3bea028"},{"name":"is-page-static","duration":742472,"timestamp":16132867294,"id":90,"parentId":23,"tags":{},"startTime":1778824105114,"traceId":"fff6258cb3bea028"},{"name":"check-page","duration":780991,"timestamp":16132828792,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778824105075,"traceId":"fff6258cb3bea028"},{"name":"static-check","duration":784342,"timestamp":16132825488,"id":19,"parentId":1,"tags":{},"startTime":1778824105072,"traceId":"fff6258cb3bea028"},{"name":"write-routes-manifest","duration":387,"timestamp":16133616344,"id":104,"parentId":1,"tags":{},"startTime":1778824105863,"traceId":"fff6258cb3bea028"},{"name":"load-dotenv","duration":66,"timestamp":16133629315,"id":107,"parentId":106,"tags":{},"startTime":1778824105876,"traceId":"fff6258cb3bea028"},{"name":"run-export-path-map","duration":599,"timestamp":16133633422,"id":108,"parentId":106,"tags":{},"startTime":1778824105880,"traceId":"fff6258cb3bea028"},{"name":"next-export","duration":599299,"timestamp":16133627471,"id":106,"parentId":1,"tags":{},"startTime":1778824105874,"traceId":"fff6258cb3bea028"}]
2
+ [{"name":"move-exported-app-not-found-","duration":2258,"timestamp":16134230439,"id":109,"parentId":105,"tags":{},"startTime":1778824106477,"traceId":"fff6258cb3bea028"},{"name":"move-exported-app-global-error-","duration":594,"timestamp":16134232800,"id":110,"parentId":105,"tags":{},"startTime":1778824106479,"traceId":"fff6258cb3bea028"},{"name":"static-generation","duration":614654,"timestamp":16133620652,"id":105,"parentId":1,"tags":{},"startTime":1778824105867,"traceId":"fff6258cb3bea028"},{"name":"write-routes-manifest","duration":412,"timestamp":16134235467,"id":111,"parentId":1,"tags":{},"startTime":1778824106482,"traceId":"fff6258cb3bea028"},{"name":"print-tree-view","duration":4393,"timestamp":16134250955,"id":112,"parentId":1,"tags":{},"startTime":1778824106497,"traceId":"fff6258cb3bea028"},{"name":"write-route-bundle-stats","duration":12845,"timestamp":16134255387,"id":113,"parentId":1,"tags":{},"startTime":1778824106502,"traceId":"fff6258cb3bea028"},{"name":"telemetry-flush","duration":28716,"timestamp":16134268267,"id":114,"parentId":1,"tags":{},"startTime":1778824106515,"traceId":"fff6258cb3bea028"},{"name":"next-build","duration":16239388,"timestamp":16118057656,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778824090304,"traceId":"fff6258cb3bea028"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":6971447,"timestamp":15532893245,"id":14,"parentId":1,"tags":{},"startTime":1778823505140,"traceId":"ca91904f9d5dc850"},{"name":"turbopack-build-events","duration":104,"timestamp":15533203551,"id":15,"parentId":1,"tags":{},"startTime":1778823505450,"traceId":"ca91904f9d5dc850"},{"name":"run-typescript","duration":10207247,"timestamp":15539876273,"id":16,"parentId":1,"tags":{},"startTime":1778823512123,"traceId":"ca91904f9d5dc850"},{"name":"static-check","duration":1074267,"timestamp":15550306581,"id":19,"parentId":1,"tags":{},"startTime":1778823522553,"traceId":"ca91904f9d5dc850"},{"name":"static-generation","duration":743645,"timestamp":15551393425,"id":105,"parentId":1,"tags":{},"startTime":1778823523640,"traceId":"ca91904f9d5dc850"},{"name":"telemetry-flush","duration":15430,"timestamp":15552178088,"id":114,"parentId":1,"tags":{},"startTime":1778823524424,"traceId":"ca91904f9d5dc850"},{"name":"next-build","duration":19512246,"timestamp":15532681320,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778823504928,"traceId":"ca91904f9d5dc850"}]
1
+ [{"name":"run-turbopack","duration":5884609,"timestamp":16118335208,"id":14,"parentId":1,"tags":{},"startTime":1778824090581,"traceId":"fff6258cb3bea028"},{"name":"turbopack-build-events","duration":104,"timestamp":16118652808,"id":15,"parentId":1,"tags":{},"startTime":1778824090899,"traceId":"fff6258cb3bea028"},{"name":"run-typescript","duration":8398611,"timestamp":16124230576,"id":16,"parentId":1,"tags":{},"startTime":1778824096477,"traceId":"fff6258cb3bea028"},{"name":"static-check","duration":784342,"timestamp":16132825488,"id":19,"parentId":1,"tags":{},"startTime":1778824105072,"traceId":"fff6258cb3bea028"},{"name":"static-generation","duration":614654,"timestamp":16133620652,"id":105,"parentId":1,"tags":{},"startTime":1778824105867,"traceId":"fff6258cb3bea028"},{"name":"telemetry-flush","duration":28716,"timestamp":16134268267,"id":114,"parentId":1,"tags":{},"startTime":1778824106515,"traceId":"fff6258cb3bea028"},{"name":"next-build","duration":16239388,"timestamp":16118057656,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778824090304,"traceId":"fff6258cb3bea028"}]
@@ -965,6 +965,35 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
965
965
  <span className="px-2.5 py-1 rounded-md bg-cyan-500/10 text-cyan-300 border border-cyan-500/20">
966
966
  {onlineNodes.length} online
967
967
  </span>
968
+ {/* Round 31 / Loop: fleet-health pressure bar. The "X working /
969
+ Y online" chips already carry the raw counts; the bar lets
970
+ the eye get the working/idle/offline RATIO in one glance
971
+ without mental math. Stacked 3-segment chip, ~64 px wide. */}
972
+ {(() => {
973
+ const w = workingCount;
974
+ const i = onlineNodes.length - workingCount; // idle = online - working
975
+ const o = offlineNodes.length;
976
+ const total = w + i + o;
977
+ if (total === 0) return null;
978
+ const seg = (n: number, color: string, key: string) => {
979
+ if (n === 0) return null;
980
+ return <span key={key} style={{ width: `${(n / total) * 100}%`, background: color, height: '100%' }} />;
981
+ };
982
+ return (
983
+ <span
984
+ className="inline-flex items-center gap-2 px-2.5 py-1 rounded-md bg-gray-500/10 text-gray-400 border border-gray-500/20 font-mono"
985
+ title={`${w} working · ${i} idle · ${o} offline`}
986
+ data-fleet-pressure
987
+ >
988
+ <span className="text-[10px] tracking-wide">pressure</span>
989
+ <span className="inline-flex h-1.5 w-16 rounded-full overflow-hidden" style={{ background: 'rgb(75 85 99 / 0.25)' }}>
990
+ {seg(w, isLight ? '#059669' : '#22c55e', 'w')}
991
+ {seg(i, isLight ? '#0d9488' : '#2dd4bf', 'i')}
992
+ {seg(o, isLight ? '#94a3b8' : '#6b7280', 'o')}
993
+ </span>
994
+ </span>
995
+ );
996
+ })()}
968
997
  {vendorDist.length > 1 && (
969
998
  <span
970
999
  className="inline-flex items-center gap-2 px-2.5 py-1 rounded-md bg-gray-500/10 text-gray-400 border border-gray-500/20 font-mono"
@@ -1707,6 +1736,62 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
1707
1736
  </g>
1708
1737
  </svg>
1709
1738
 
1739
+ {/* Round 30 / Loop: minimap. Big fleets in fullscreen mode at high
1740
+ zoom let users lose their position — the minimap shows the
1741
+ whole topology miniaturised plus a viewport rectangle so the
1742
+ user always knows where they are. Click anywhere to recenter
1743
+ the canvas there. Only mounted when the view is non-default
1744
+ (zoomed or panned) since at 1× centered the minimap and the
1745
+ canvas show the same thing. HTML overlay so it stays fixed
1746
+ while the SVG transforms. */}
1747
+ {(() => {
1748
+ const isDefaultView = Math.abs(view.zoom - 1) < 0.01 && Math.abs(view.x) < 1 && Math.abs(view.y) < 1;
1749
+ if (isDefaultView || (onlineNodes.length + offlineNodes.length) === 0) return null;
1750
+ const MW = 120, MH = 82;
1751
+ const sx = MW / VIEWBOX_W, sy = MH / VIEWBOX_H;
1752
+ const rectX = (-view.x / view.zoom) * sx;
1753
+ const rectY = (-view.y / view.zoom) * sy;
1754
+ const rectW = (VIEWBOX_W / view.zoom) * sx;
1755
+ const rectH = (VIEWBOX_H / view.zoom) * sy;
1756
+ return (
1757
+ <div
1758
+ className="absolute right-3 rounded-md border shadow-lg shadow-black/30 overflow-hidden anet-fade-in"
1759
+ style={{ bottom: 56, background: pal.legendBox.fill, borderColor: pal.containerBorder, cursor: 'crosshair' }}
1760
+ role="img"
1761
+ aria-label="Topology minimap — click to recenter"
1762
+ title="Minimap · click to recenter"
1763
+ onClick={(e) => {
1764
+ const r = e.currentTarget.getBoundingClientRect();
1765
+ const fx = (e.clientX - r.left) / r.width;
1766
+ const fy = (e.clientY - r.top) / r.height;
1767
+ setView(prev => ({
1768
+ ...prev,
1769
+ x: VIEWBOX_W / 2 - fx * VIEWBOX_W * prev.zoom,
1770
+ y: VIEWBOX_H / 2 - fy * VIEWBOX_H * prev.zoom,
1771
+ }));
1772
+ }}
1773
+ data-topo-minimap
1774
+ >
1775
+ <svg width={MW} height={MH} viewBox={`0 0 ${MW} ${MH}`} style={{ display: 'block' }}>
1776
+ {[...onlineNodes, ...offlineNodes].map(s => {
1777
+ const p = nodePositions[s.alias];
1778
+ if (!p) return null;
1779
+ const sseN = (s.network_id ? sseSessions[`${s.network_id}:${s.alias}`] : undefined) ?? sseSessions[s.alias];
1780
+ const isOn = s.status !== 'offline' || !!sseN;
1781
+ const st = nodeStatus(s, isOn, isLight);
1782
+ return <circle key={s.alias} cx={p.x * sx} cy={p.y * sy} r={isOn ? 1.7 : 1.2} fill={st.primary} opacity={isOn ? 0.9 : 0.5} />;
1783
+ })}
1784
+ {/* viewport rectangle */}
1785
+ <rect
1786
+ x={Math.max(0, rectX)} y={Math.max(0, rectY)}
1787
+ width={Math.max(0, Math.min(MW - Math.max(0, rectX), rectW))}
1788
+ height={Math.max(0, Math.min(MH - Math.max(0, rectY), rectH))}
1789
+ fill="none" stroke={pal.legendAccent} strokeWidth="1" opacity="0.9"
1790
+ />
1791
+ </svg>
1792
+ </div>
1793
+ );
1794
+ })()}
1710
1795
  {/* Round 103 (issue #81): zoom / pan / fullscreen controls — HTML
1711
1796
  overlay so they stay fixed while the SVG content transforms.
1712
1797
  Round 104: Vincent 实测 — the reset action used to be hidden
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.4.6-preview.36",
3
+ "version": "0.4.6-preview.38",
4
4
  "description": "Agent Network Dashboard — Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,68 @@
1
+ /* Round 30 verification: minimap.
2
+ * - not mounted at default view (1×, centered)
3
+ * - mounted when zoomed in (one node dot per session, viewport rect)
4
+ * - click recenters the canvas (view.x / view.y change) */
5
+ import { chromium } from 'playwright';
6
+ import { readFileSync } from 'node:fs';
7
+
8
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
9
+ const browser = await chromium.launch({ headless: true });
10
+ const ctx = await browser.newContext({ viewport: { width: 1280, height: 1600 } });
11
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
12
+ await ctx.addInitScript(() => {
13
+ try {
14
+ localStorage.setItem('anet-theme', 'cyber');
15
+ localStorage.setItem('anet-topo-layout', 'grid');
16
+ localStorage.setItem('anet-topo-view', JSON.stringify({ zoom: 1, x: 0, y: 0 }));
17
+ sessionStorage.setItem('anet_v3_auth', '1');
18
+ } catch {}
19
+ });
20
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
21
+ await ctx.route('**/api/hub/status*', async (route) => {
22
+ const r = await route.fetch();
23
+ const b = await r.json();
24
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
25
+ const sessions = ['A站', 'B站', 'C站', 'D站', 'E站', 'F站'].flatMap(g =>
26
+ Array.from({ length: 3 }, (_, i) => ({
27
+ alias: `${g}${i + 1}`, status: 'idle', network_id: nid, project_dir: null,
28
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
29
+ })),
30
+ );
31
+ await route.fulfill({ response: r, json: { ...b, sessions } });
32
+ });
33
+ await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
34
+ const page = await ctx.newPage();
35
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
36
+ await page.waitForSelector('svg[viewBox="0 0 1000 680"]', { timeout: 30000 });
37
+ await page.waitForTimeout(500);
38
+
39
+ const minimap = '[data-topo-minimap]';
40
+ const notMountedAtDefault = (await page.locator(minimap).count()) === 0;
41
+
42
+ // Zoom in via `+` twice → view changes → minimap mounts
43
+ await page.keyboard.press('=');
44
+ await page.keyboard.press('=');
45
+ await page.waitForTimeout(200);
46
+ const mountedAfterZoom = (await page.locator(minimap).count()) === 1;
47
+ const dotCount = await page.locator(`${minimap} svg circle`).count();
48
+ const hasViewportRect = await page.locator(`${minimap} svg rect`).count() > 0;
49
+
50
+ // Click on the minimap's far left → expect view.x to become more positive (canvas pans right)
51
+ const beforeView = await page.evaluate(() => JSON.parse(localStorage.getItem('anet-topo-view')));
52
+ const mmBox = await page.locator(minimap).boundingBox();
53
+ await page.mouse.click(mmBox.x + 10, mmBox.y + mmBox.height / 2);
54
+ await page.waitForTimeout(200);
55
+ const afterView = await page.evaluate(() => JSON.parse(localStorage.getItem('anet-topo-view')));
56
+ const clickRecenters = afterView.x !== beforeView.x || afterView.y !== beforeView.y;
57
+
58
+ await browser.close();
59
+ const results = {
60
+ notMountedAtDefault,
61
+ mountedAfterZoom,
62
+ oneDotPerSession: dotCount === 18, // 6 groups × 3 = 18 nodes
63
+ viewportRectPresent: hasViewportRect,
64
+ clickRecenters,
65
+ };
66
+ const ok = Object.values(results).every(Boolean);
67
+ console.log(`${ok ? '✅' : '❌'} minimap:`, JSON.stringify(results), `dots=${dotCount} view before=`, beforeView, `after=`, afterView);
68
+ process.exit(ok ? 0 : 1);
@@ -0,0 +1,69 @@
1
+ /* Round 31 verification: fleet-pressure chip with proportional segments.
2
+ * 4 working + 6 idle + 2 offline = 12 total → 33% / 50% / 17%. */
3
+ import { chromium } from 'playwright';
4
+ import { readFileSync } from 'node:fs';
5
+
6
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
7
+ const browser = await chromium.launch({ headless: true });
8
+ const ctx = await browser.newContext({ viewport: { width: 1400, height: 1000 } });
9
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
10
+ await ctx.addInitScript(() => {
11
+ try {
12
+ localStorage.setItem('anet-theme', 'cyber');
13
+ localStorage.setItem('anet-topo-layout', 'grid');
14
+ sessionStorage.setItem('anet_v3_auth', '1');
15
+ } catch {}
16
+ });
17
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
18
+ await ctx.route('**/api/hub/status*', async (route) => {
19
+ const r = await route.fetch();
20
+ const b = await r.json();
21
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
22
+ const make = (alias, status) => ({
23
+ alias, status, network_id: nid, project_dir: null,
24
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
25
+ });
26
+ const sessions = [
27
+ ...Array.from({ length: 4 }, (_, i) => make(`w${i}`, 'working')),
28
+ ...Array.from({ length: 6 }, (_, i) => make(`i${i}`, 'idle')),
29
+ ...Array.from({ length: 2 }, (_, i) => make(`o${i}`, 'offline')),
30
+ ];
31
+ await route.fulfill({ response: r, json: { ...b, sessions } });
32
+ });
33
+ await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
34
+ const page = await ctx.newPage();
35
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
36
+ await page.waitForSelector('[data-fleet-pressure]', { timeout: 30000 });
37
+ await page.waitForTimeout(400);
38
+
39
+ const chip = '[data-fleet-pressure]';
40
+ const titleText = await page.locator(chip).getAttribute('title');
41
+ // The chip layout: <chip> > <label-span> + <bar-span> ; bar-span has the 3 segment spans.
42
+ const segments = await page.evaluate(() => {
43
+ const chip = document.querySelector('[data-fleet-pressure]');
44
+ if (!chip) return [];
45
+ // The bar container is the inline-flex w-16 span (second child).
46
+ const bar = [...chip.children].find(c => c.classList?.contains('w-16'));
47
+ if (!bar) return [];
48
+ return [...bar.children].map(el => ({ width: el.style.width, background: el.style.background }));
49
+ });
50
+ const segmentWidths = segments.map(s => s.width);
51
+ const segmentColors = segments.map(s => s.background);
52
+
53
+ // 4/12 = 33.33%, 6/12 = 50.00%, 2/12 = 16.67%
54
+ const close = (a, b) => Math.abs(parseFloat(a) - b) < 0.5;
55
+
56
+ await browser.close();
57
+ const results = {
58
+ titleHasCounts: titleText === '4 working · 6 idle · 2 offline',
59
+ threeSegments: segmentWidths.length === 3,
60
+ workingProportion: close(segmentWidths[0], 100 * 4 / 12),
61
+ idleProportion: close(segmentWidths[1], 100 * 6 / 12),
62
+ offlineProportion: close(segmentWidths[2], 100 * 2 / 12),
63
+ workingColor: /22c55e|rgb\(34, 197, 94\)/.test(segmentColors[0] || ''),
64
+ idleColor: /2dd4bf|rgb\(45, 212, 191\)/.test(segmentColors[1] || ''),
65
+ offlineColor: /6b7280|rgb\(107, 114, 128\)/.test(segmentColors[2] || ''),
66
+ };
67
+ const ok = Object.values(results).every(Boolean);
68
+ console.log(`${ok ? '✅' : '❌'} pressure bar:`, JSON.stringify(results), `widths=${segmentWidths.join(',')} colors=${segmentColors.join(' | ')}`);
69
+ process.exit(ok ? 0 : 1);