@sleep2agi/agent-network-dashboard 0.4.6-preview.136 → 0.4.6-preview.138

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 +3 -3
  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/{080nt.fp4k4_-.js → 0.ejb5a6-vo0j.js} +1 -1
  133. package/.next/static/chunks/005ceit6j4evs.js +4 -0
  134. package/.next/static/chunks/{14hk6zvm4z7zb.js → 0qswjae_xt_w7.js} +1 -1
  135. package/.next/trace +2 -2
  136. package/.next/trace-build +1 -1
  137. package/app/components/TopoGraph.tsx +87 -21
  138. package/package.json +1 -1
  139. package/scripts/topo-hub-working-count-test.mjs +99 -0
  140. package/scripts/topo-orbit-busyness-test.mjs +96 -0
  141. package/.next/static/chunks/0sotj.mw.b5os.js +0 -4
  142. /package/.next/static/{QEopPAN87BrHSdxfMANrJ → taXhHpHryUIHwTLEw9ToR}/_buildManifest.js +0 -0
  143. /package/.next/static/{QEopPAN87BrHSdxfMANrJ → taXhHpHryUIHwTLEw9ToR}/_clientMiddlewareManifest.js +0 -0
  144. /package/.next/static/{QEopPAN87BrHSdxfMANrJ → taXhHpHryUIHwTLEw9ToR}/_ssgManifest.js +0 -0
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":269,"timestamp":50597582195,"id":4,"parentId":1,"tags":{},"startTime":1778858569828,"traceId":"9e95ed3e4ba431f2"},{"name":"load-custom-routes","duration":493,"timestamp":50597582606,"id":5,"parentId":1,"tags":{},"startTime":1778858569829,"traceId":"9e95ed3e4ba431f2"},{"name":"create-dist-dir","duration":897,"timestamp":50597583161,"id":6,"parentId":1,"tags":{},"startTime":1778858569829,"traceId":"9e95ed3e4ba431f2"},{"name":"clean","duration":544,"timestamp":50597584719,"id":7,"parentId":1,"tags":{},"startTime":1778858569831,"traceId":"9e95ed3e4ba431f2"},{"name":"discover-routes","duration":9380,"timestamp":50597669381,"id":8,"parentId":1,"tags":{},"startTime":1778858569916,"traceId":"9e95ed3e4ba431f2"},{"name":"create-root-mapping","duration":133,"timestamp":50597678822,"id":9,"parentId":1,"tags":{},"startTime":1778858569925,"traceId":"9e95ed3e4ba431f2"},{"name":"generate-route-types","duration":33889,"timestamp":50597681460,"id":10,"parentId":1,"tags":{},"startTime":1778858569928,"traceId":"9e95ed3e4ba431f2"},{"name":"public-dir-conflict-check","duration":116,"timestamp":50597715510,"id":11,"parentId":1,"tags":{},"startTime":1778858569962,"traceId":"9e95ed3e4ba431f2"},{"name":"generate-routes-manifest","duration":4806,"timestamp":50597715785,"id":12,"parentId":1,"tags":{},"startTime":1778858569962,"traceId":"9e95ed3e4ba431f2"},{"name":"run-turbopack","duration":5896372,"timestamp":50597726286,"id":14,"parentId":1,"tags":{},"startTime":1778858569973,"traceId":"9e95ed3e4ba431f2"},{"name":"turbopack-build-events","duration":80,"timestamp":50598032414,"id":15,"parentId":1,"tags":{},"startTime":1778858570279,"traceId":"9e95ed3e4ba431f2"},{"name":"run-typescript","duration":9170922,"timestamp":50603644311,"id":16,"parentId":1,"tags":{},"startTime":1778858575891,"traceId":"9e95ed3e4ba431f2"},{"name":"generate-required-server-files","duration":2272,"timestamp":50612816138,"id":18,"parentId":1,"tags":{},"startTime":1778858585062,"traceId":"9e95ed3e4ba431f2"},{"name":"check-static-error-page","duration":12989,"timestamp":50613014366,"id":20,"parentId":19,"tags":{},"startTime":1778858585261,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":485220,"timestamp":50613029832,"id":63,"parentId":22,"tags":{},"startTime":1778858585276,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":501554,"timestamp":50613017572,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778858585264,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":555304,"timestamp":50613030255,"id":66,"parentId":27,"tags":{},"startTime":1778858585277,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":564447,"timestamp":50613021216,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778858585267,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":560231,"timestamp":50613031025,"id":70,"parentId":32,"tags":{},"startTime":1778858585277,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":569117,"timestamp":50613022206,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778858585268,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":611608,"timestamp":50613031089,"id":71,"parentId":33,"tags":{},"startTime":1778858585277,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":620413,"timestamp":50613022363,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778858585269,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":612468,"timestamp":50613030509,"id":67,"parentId":28,"tags":{},"startTime":1778858585277,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":621672,"timestamp":50613021361,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778858585268,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":617501,"timestamp":50613029987,"id":64,"parentId":25,"tags":{},"startTime":1778858585276,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":626696,"timestamp":50613020848,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778858585267,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":621788,"timestamp":50613031293,"id":74,"parentId":36,"tags":{},"startTime":1778858585278,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":629911,"timestamp":50613023227,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778858585270,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":628431,"timestamp":50613030671,"id":68,"parentId":29,"tags":{},"startTime":1778858585277,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":637646,"timestamp":50613021510,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778858585268,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":636418,"timestamp":50613031165,"id":72,"parentId":34,"tags":{},"startTime":1778858585277,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":645127,"timestamp":50613022510,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778858585269,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":642147,"timestamp":50613031194,"id":73,"parentId":35,"tags":{},"startTime":1778858585277,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":650728,"timestamp":50613022663,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778858585269,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":644157,"timestamp":50613029424,"id":62,"parentId":21,"tags":{},"startTime":1778858585276,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":657618,"timestamp":50613015999,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778858585262,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":642552,"timestamp":50613031353,"id":77,"parentId":39,"tags":{},"startTime":1778858585278,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":650215,"timestamp":50613023729,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778858585270,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":650692,"timestamp":50613031389,"id":80,"parentId":42,"tags":{},"startTime":1778858585278,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":658114,"timestamp":50613024016,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778858585270,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":651567,"timestamp":50613031398,"id":81,"parentId":43,"tags":{},"startTime":1778858585278,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":658952,"timestamp":50613024108,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778858585270,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":653633,"timestamp":50613030813,"id":69,"parentId":30,"tags":{},"startTime":1778858585277,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":662800,"timestamp":50613021682,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778858585268,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":654068,"timestamp":50613031362,"id":78,"parentId":40,"tags":{},"startTime":1778858585278,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":661628,"timestamp":50613023838,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778858585270,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":655733,"timestamp":50613031411,"id":82,"parentId":44,"tags":{},"startTime":1778858585278,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":663025,"timestamp":50613024169,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778858585270,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":658079,"timestamp":50613031439,"id":84,"parentId":46,"tags":{},"startTime":1778858585278,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":665254,"timestamp":50613024301,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778858585271,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":658348,"timestamp":50613031424,"id":83,"parentId":45,"tags":{},"startTime":1778858585278,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":665571,"timestamp":50613024240,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778858585271,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":660657,"timestamp":50613031448,"id":85,"parentId":47,"tags":{},"startTime":1778858585278,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":667755,"timestamp":50613024388,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778858585271,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":662129,"timestamp":50613031461,"id":86,"parentId":48,"tags":{},"startTime":1778858585278,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":669177,"timestamp":50613024451,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778858585271,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":661933,"timestamp":50613035946,"id":89,"parentId":31,"tags":{},"startTime":1778858585282,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":676109,"timestamp":50613021825,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778858585268,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":668128,"timestamp":50613031340,"id":76,"parentId":38,"tags":{},"startTime":1778858585278,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":675917,"timestamp":50613023597,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778858585270,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":664946,"timestamp":50613034740,"id":88,"parentId":24,"tags":{},"startTime":1778858585281,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":681540,"timestamp":50613018181,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778858585264,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":673836,"timestamp":50613031473,"id":87,"parentId":49,"tags":{},"startTime":1778858585278,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":680840,"timestamp":50613024514,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778858585271,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":675374,"timestamp":50613030134,"id":65,"parentId":26,"tags":{},"startTime":1778858585276,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":684473,"timestamp":50613021066,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778858585267,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":682539,"timestamp":50613031324,"id":75,"parentId":37,"tags":{},"startTime":1778858585278,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":690493,"timestamp":50613023433,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778858585270,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":723433,"timestamp":50613031376,"id":79,"parentId":41,"tags":{},"startTime":1778858585278,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":730967,"timestamp":50613023921,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778858585270,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":724742,"timestamp":50613038402,"id":96,"parentId":56,"tags":{},"startTime":1778858585285,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":736996,"timestamp":50613026217,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778858585272,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":725046,"timestamp":50613038367,"id":93,"parentId":52,"tags":{},"startTime":1778858585285,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":738321,"timestamp":50613025130,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778858585271,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":731988,"timestamp":50613038389,"id":95,"parentId":54,"tags":{},"startTime":1778858585285,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":744928,"timestamp":50613025498,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778858585272,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":732167,"timestamp":50613038412,"id":97,"parentId":57,"tags":{},"startTime":1778858585285,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":744212,"timestamp":50613026403,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778858585273,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":733594,"timestamp":50613038351,"id":92,"parentId":51,"tags":{},"startTime":1778858585285,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":747057,"timestamp":50613024967,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778858585271,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":734861,"timestamp":50613038335,"id":91,"parentId":50,"tags":{},"startTime":1778858585285,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":748396,"timestamp":50613024836,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778858585271,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":735195,"timestamp":50613038427,"id":98,"parentId":59,"tags":{},"startTime":1778858585285,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":746799,"timestamp":50613026865,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778858585273,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":736755,"timestamp":50613038303,"id":90,"parentId":23,"tags":{},"startTime":1778858585285,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":757222,"timestamp":50613017872,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778858585264,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":739121,"timestamp":50613038462,"id":100,"parentId":61,"tags":{},"startTime":1778858585285,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":750488,"timestamp":50613027131,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778858585273,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":719943,"timestamp":50613058604,"id":102,"parentId":55,"tags":{},"startTime":1778858585305,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":752875,"timestamp":50613025699,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778858585272,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":734425,"timestamp":50613044416,"id":101,"parentId":58,"tags":{},"startTime":1778858585291,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":752308,"timestamp":50613026551,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778858585273,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":743713,"timestamp":50613038445,"id":99,"parentId":60,"tags":{},"startTime":1778858585285,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":755204,"timestamp":50613026991,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778858585273,"traceId":"9e95ed3e4ba431f2"},{"name":"is-page-static","duration":751621,"timestamp":50613038376,"id":94,"parentId":53,"tags":{},"startTime":1778858585285,"traceId":"9e95ed3e4ba431f2"},{"name":"check-page","duration":764732,"timestamp":50613025321,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778858585272,"traceId":"9e95ed3e4ba431f2"},{"name":"static-check","duration":776772,"timestamp":50613013324,"id":19,"parentId":1,"tags":{},"startTime":1778858585260,"traceId":"9e95ed3e4ba431f2"},{"name":"write-routes-manifest","duration":609,"timestamp":50613798406,"id":104,"parentId":1,"tags":{},"startTime":1778858586045,"traceId":"9e95ed3e4ba431f2"},{"name":"load-dotenv","duration":46,"timestamp":50613816420,"id":107,"parentId":106,"tags":{},"startTime":1778858586063,"traceId":"9e95ed3e4ba431f2"},{"name":"run-export-path-map","duration":617,"timestamp":50613819424,"id":108,"parentId":106,"tags":{},"startTime":1778858586066,"traceId":"9e95ed3e4ba431f2"},{"name":"next-export","duration":598090,"timestamp":50613815136,"id":106,"parentId":1,"tags":{},"startTime":1778858586061,"traceId":"9e95ed3e4ba431f2"}]
2
- [{"name":"move-exported-app-not-found-","duration":2997,"timestamp":50614418169,"id":109,"parentId":105,"tags":{},"startTime":1778858586664,"traceId":"9e95ed3e4ba431f2"},{"name":"move-exported-app-global-error-","duration":733,"timestamp":50614421295,"id":110,"parentId":105,"tags":{},"startTime":1778858586668,"traceId":"9e95ed3e4ba431f2"},{"name":"static-generation","duration":616262,"timestamp":50613808249,"id":105,"parentId":1,"tags":{},"startTime":1778858586055,"traceId":"9e95ed3e4ba431f2"},{"name":"write-routes-manifest","duration":445,"timestamp":50614424693,"id":111,"parentId":1,"tags":{},"startTime":1778858586671,"traceId":"9e95ed3e4ba431f2"},{"name":"print-tree-view","duration":4933,"timestamp":50614433813,"id":112,"parentId":1,"tags":{},"startTime":1778858586680,"traceId":"9e95ed3e4ba431f2"},{"name":"write-route-bundle-stats","duration":19886,"timestamp":50614438790,"id":113,"parentId":1,"tags":{},"startTime":1778858586685,"traceId":"9e95ed3e4ba431f2"},{"name":"telemetry-flush","duration":21306,"timestamp":50614458713,"id":114,"parentId":1,"tags":{},"startTime":1778858586705,"traceId":"9e95ed3e4ba431f2"},{"name":"next-build","duration":16950525,"timestamp":50597529545,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778858569776,"traceId":"9e95ed3e4ba431f2"}]
1
+ [{"name":"generate-buildid","duration":320,"timestamp":51181622883,"id":4,"parentId":1,"tags":{},"startTime":1778859153869,"traceId":"4573c7e3736cbaa6"},{"name":"load-custom-routes","duration":456,"timestamp":51181623346,"id":5,"parentId":1,"tags":{},"startTime":1778859153870,"traceId":"4573c7e3736cbaa6"},{"name":"create-dist-dir","duration":840,"timestamp":51181623840,"id":6,"parentId":1,"tags":{},"startTime":1778859153870,"traceId":"4573c7e3736cbaa6"},{"name":"clean","duration":658,"timestamp":51181625426,"id":7,"parentId":1,"tags":{},"startTime":1778859153872,"traceId":"4573c7e3736cbaa6"},{"name":"discover-routes","duration":9325,"timestamp":51181711772,"id":8,"parentId":1,"tags":{},"startTime":1778859153958,"traceId":"4573c7e3736cbaa6"},{"name":"create-root-mapping","duration":105,"timestamp":51181721156,"id":9,"parentId":1,"tags":{},"startTime":1778859153967,"traceId":"4573c7e3736cbaa6"},{"name":"generate-route-types","duration":32273,"timestamp":51181723496,"id":10,"parentId":1,"tags":{},"startTime":1778859153970,"traceId":"4573c7e3736cbaa6"},{"name":"public-dir-conflict-check","duration":156,"timestamp":51181755992,"id":11,"parentId":1,"tags":{},"startTime":1778859154002,"traceId":"4573c7e3736cbaa6"},{"name":"generate-routes-manifest","duration":4482,"timestamp":51181756319,"id":12,"parentId":1,"tags":{},"startTime":1778859154003,"traceId":"4573c7e3736cbaa6"},{"name":"run-turbopack","duration":5661455,"timestamp":51181767267,"id":14,"parentId":1,"tags":{},"startTime":1778859154014,"traceId":"4573c7e3736cbaa6"},{"name":"turbopack-build-events","duration":99,"timestamp":51182065362,"id":15,"parentId":1,"tags":{},"startTime":1778859154312,"traceId":"4573c7e3736cbaa6"},{"name":"run-typescript","duration":8574712,"timestamp":51187436916,"id":16,"parentId":1,"tags":{},"startTime":1778859159683,"traceId":"4573c7e3736cbaa6"},{"name":"generate-required-server-files","duration":3001,"timestamp":51196012612,"id":18,"parentId":1,"tags":{},"startTime":1778859168259,"traceId":"4573c7e3736cbaa6"},{"name":"check-static-error-page","duration":11096,"timestamp":51196173206,"id":20,"parentId":19,"tags":{},"startTime":1778859168419,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":421505,"timestamp":51196187106,"id":63,"parentId":22,"tags":{},"startTime":1778859168433,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":433293,"timestamp":51196175482,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778859168422,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":488688,"timestamp":51196187837,"id":67,"parentId":28,"tags":{},"startTime":1778859168434,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":498332,"timestamp":51196178285,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778859168425,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":495060,"timestamp":51196188411,"id":70,"parentId":32,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":504782,"timestamp":51196178759,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778859168425,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":530732,"timestamp":51196188217,"id":69,"parentId":30,"tags":{},"startTime":1778859168434,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":540579,"timestamp":51196178477,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778859168425,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":535691,"timestamp":51196188480,"id":71,"parentId":33,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":545395,"timestamp":51196178852,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778859168425,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":539449,"timestamp":51196187343,"id":65,"parentId":26,"tags":{},"startTime":1778859168434,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":548895,"timestamp":51196178101,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778859168424,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":540588,"timestamp":51196188566,"id":72,"parentId":34,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":550255,"timestamp":51196178948,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778859168425,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":540785,"timestamp":51196188599,"id":73,"parentId":35,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":550365,"timestamp":51196179057,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778859168425,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":545472,"timestamp":51196188718,"id":74,"parentId":36,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":554853,"timestamp":51196179392,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778859168426,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":546379,"timestamp":51196188051,"id":68,"parentId":29,"tags":{},"startTime":1778859168434,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":556089,"timestamp":51196178372,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778859168425,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":546002,"timestamp":51196188770,"id":76,"parentId":38,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":555208,"timestamp":51196179602,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778859168426,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":552272,"timestamp":51196188811,"id":79,"parentId":41,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":561344,"timestamp":51196179802,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778859168426,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":560186,"timestamp":51196188826,"id":80,"parentId":42,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":569199,"timestamp":51196179883,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778859168426,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":561987,"timestamp":51196187464,"id":66,"parentId":27,"tags":{},"startTime":1778859168434,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":571300,"timestamp":51196178195,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778859168424,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":562049,"timestamp":51196188841,"id":81,"parentId":43,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":570991,"timestamp":51196179955,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778859168426,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":566957,"timestamp":51196188882,"id":83,"parentId":45,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":575786,"timestamp":51196180122,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778859168426,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":572717,"timestamp":51196188897,"id":84,"parentId":46,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":581496,"timestamp":51196180189,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778859168426,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":575333,"timestamp":51196187216,"id":64,"parentId":25,"tags":{},"startTime":1778859168433,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":584663,"timestamp":51196177931,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778859168424,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":578441,"timestamp":51196188797,"id":78,"parentId":40,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":587551,"timestamp":51196179739,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778859168426,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":578524,"timestamp":51196188908,"id":85,"parentId":47,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":587177,"timestamp":51196180282,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778859168427,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":579276,"timestamp":51196188923,"id":86,"parentId":48,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":587883,"timestamp":51196180358,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778859168427,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":588194,"timestamp":51196188749,"id":75,"parentId":37,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":597506,"timestamp":51196179510,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778859168426,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":586842,"timestamp":51196192408,"id":88,"parentId":24,"tags":{},"startTime":1778859168439,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":603429,"timestamp":51196175881,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778859168422,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":593360,"timestamp":51196188852,"id":82,"parentId":44,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":602219,"timestamp":51196180041,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778859168426,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":595893,"timestamp":51196188785,"id":77,"parentId":39,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":605056,"timestamp":51196179670,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778859168426,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":598125,"timestamp":51196186774,"id":62,"parentId":21,"tags":{},"startTime":1778859168433,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":610566,"timestamp":51196174366,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778859168421,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":599816,"timestamp":51196188939,"id":87,"parentId":49,"tags":{},"startTime":1778859168435,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":608352,"timestamp":51196180465,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778859168427,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":615542,"timestamp":51196193630,"id":89,"parentId":31,"tags":{},"startTime":1778859168440,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":630685,"timestamp":51196178560,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778859168425,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":625915,"timestamp":51196196392,"id":94,"parentId":53,"tags":{},"startTime":1778859168443,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":640875,"timestamp":51196181505,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778859168428,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":642648,"timestamp":51196196437,"id":97,"parentId":57,"tags":{},"startTime":1778859168443,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":656220,"timestamp":51196182944,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778859168429,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":652981,"timestamp":51196196454,"id":98,"parentId":59,"tags":{},"startTime":1778859168443,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":665914,"timestamp":51196183602,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778859168430,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":653331,"timestamp":51196196409,"id":95,"parentId":54,"tags":{},"startTime":1778859168443,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":668041,"timestamp":51196181756,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778859168428,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":653626,"timestamp":51196196343,"id":91,"parentId":50,"tags":{},"startTime":1778859168443,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":669128,"timestamp":51196180918,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778859168427,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":658862,"timestamp":51196196357,"id":92,"parentId":51,"tags":{},"startTime":1778859168443,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":674112,"timestamp":51196181155,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778859168427,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":660644,"timestamp":51196196311,"id":90,"parentId":23,"tags":{},"startTime":1778859168443,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":681336,"timestamp":51196175687,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778859168422,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":661281,"timestamp":51196196494,"id":100,"parentId":61,"tags":{},"startTime":1778859168443,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":673858,"timestamp":51196183958,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778859168430,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":656255,"timestamp":51196202403,"id":101,"parentId":58,"tags":{},"startTime":1778859168449,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":675517,"timestamp":51196183174,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778859168429,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":650914,"timestamp":51196211304,"id":102,"parentId":55,"tags":{},"startTime":1778859168458,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":680199,"timestamp":51196182066,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778859168428,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":670441,"timestamp":51196196472,"id":99,"parentId":60,"tags":{},"startTime":1778859168443,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":683198,"timestamp":51196183769,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778859168430,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":671935,"timestamp":51196196377,"id":93,"parentId":52,"tags":{},"startTime":1778859168443,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":687027,"timestamp":51196181321,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778859168428,"traceId":"4573c7e3736cbaa6"},{"name":"is-page-static","duration":674161,"timestamp":51196196421,"id":96,"parentId":56,"tags":{},"startTime":1778859168443,"traceId":"4573c7e3736cbaa6"},{"name":"check-page","duration":687920,"timestamp":51196182700,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778859168429,"traceId":"4573c7e3736cbaa6"},{"name":"static-check","duration":698152,"timestamp":51196172503,"id":19,"parentId":1,"tags":{},"startTime":1778859168419,"traceId":"4573c7e3736cbaa6"},{"name":"write-routes-manifest","duration":398,"timestamp":51196876855,"id":104,"parentId":1,"tags":{},"startTime":1778859169123,"traceId":"4573c7e3736cbaa6"},{"name":"load-dotenv","duration":35,"timestamp":51196887762,"id":107,"parentId":106,"tags":{},"startTime":1778859169134,"traceId":"4573c7e3736cbaa6"},{"name":"run-export-path-map","duration":770,"timestamp":51196890337,"id":108,"parentId":106,"tags":{},"startTime":1778859169137,"traceId":"4573c7e3736cbaa6"},{"name":"next-export","duration":609897,"timestamp":51196886602,"id":106,"parentId":1,"tags":{},"startTime":1778859169133,"traceId":"4573c7e3736cbaa6"}]
2
+ [{"name":"move-exported-app-not-found-","duration":2061,"timestamp":51197500329,"id":109,"parentId":105,"tags":{},"startTime":1778859169747,"traceId":"4573c7e3736cbaa6"},{"name":"move-exported-app-global-error-","duration":564,"timestamp":51197502475,"id":110,"parentId":105,"tags":{},"startTime":1778859169749,"traceId":"4573c7e3736cbaa6"},{"name":"static-generation","duration":623898,"timestamp":51196880901,"id":105,"parentId":1,"tags":{},"startTime":1778859169127,"traceId":"4573c7e3736cbaa6"},{"name":"write-routes-manifest","duration":380,"timestamp":51197504957,"id":111,"parentId":1,"tags":{},"startTime":1778859169751,"traceId":"4573c7e3736cbaa6"},{"name":"print-tree-view","duration":4453,"timestamp":51197523108,"id":112,"parentId":1,"tags":{},"startTime":1778859169769,"traceId":"4573c7e3736cbaa6"},{"name":"write-route-bundle-stats","duration":12025,"timestamp":51197527593,"id":113,"parentId":1,"tags":{},"startTime":1778859169774,"traceId":"4573c7e3736cbaa6"},{"name":"telemetry-flush","duration":21526,"timestamp":51197539647,"id":114,"parentId":1,"tags":{},"startTime":1778859169786,"traceId":"4573c7e3736cbaa6"},{"name":"next-build","duration":15990044,"timestamp":51181571165,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778859153817,"traceId":"4573c7e3736cbaa6"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":5896372,"timestamp":50597726286,"id":14,"parentId":1,"tags":{},"startTime":1778858569973,"traceId":"9e95ed3e4ba431f2"},{"name":"turbopack-build-events","duration":80,"timestamp":50598032414,"id":15,"parentId":1,"tags":{},"startTime":1778858570279,"traceId":"9e95ed3e4ba431f2"},{"name":"run-typescript","duration":9170922,"timestamp":50603644311,"id":16,"parentId":1,"tags":{},"startTime":1778858575891,"traceId":"9e95ed3e4ba431f2"},{"name":"static-check","duration":776772,"timestamp":50613013324,"id":19,"parentId":1,"tags":{},"startTime":1778858585260,"traceId":"9e95ed3e4ba431f2"},{"name":"static-generation","duration":616262,"timestamp":50613808249,"id":105,"parentId":1,"tags":{},"startTime":1778858586055,"traceId":"9e95ed3e4ba431f2"},{"name":"telemetry-flush","duration":21306,"timestamp":50614458713,"id":114,"parentId":1,"tags":{},"startTime":1778858586705,"traceId":"9e95ed3e4ba431f2"},{"name":"next-build","duration":16950525,"timestamp":50597529545,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778858569776,"traceId":"9e95ed3e4ba431f2"}]
1
+ [{"name":"run-turbopack","duration":5661455,"timestamp":51181767267,"id":14,"parentId":1,"tags":{},"startTime":1778859154014,"traceId":"4573c7e3736cbaa6"},{"name":"turbopack-build-events","duration":99,"timestamp":51182065362,"id":15,"parentId":1,"tags":{},"startTime":1778859154312,"traceId":"4573c7e3736cbaa6"},{"name":"run-typescript","duration":8574712,"timestamp":51187436916,"id":16,"parentId":1,"tags":{},"startTime":1778859159683,"traceId":"4573c7e3736cbaa6"},{"name":"static-check","duration":698152,"timestamp":51196172503,"id":19,"parentId":1,"tags":{},"startTime":1778859168419,"traceId":"4573c7e3736cbaa6"},{"name":"static-generation","duration":623898,"timestamp":51196880901,"id":105,"parentId":1,"tags":{},"startTime":1778859169127,"traceId":"4573c7e3736cbaa6"},{"name":"telemetry-flush","duration":21526,"timestamp":51197539647,"id":114,"parentId":1,"tags":{},"startTime":1778859169786,"traceId":"4573c7e3736cbaa6"},{"name":"next-build","duration":15990044,"timestamp":51181571165,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778859153817,"traceId":"4573c7e3736cbaa6"}]
@@ -2090,27 +2090,51 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
2090
2090
  (r=330). Each starts at a different angle (offset 0/0.25/0.5/0.75
2091
2091
  of the cycle) so they're evenly spaced. 16s per revolution is
2092
2092
  slow enough to feel ambient, not noisy. Skipped on light theme
2093
- so the white surface stays clean. */}
2094
- {!isLight && [0, 0.25, 0.5, 0.75].map((phase, i) => (
2095
- <g key={`orbit-${i}`}>
2096
- <circle
2097
- cx={cx + 330} cy={cy}
2098
- r={i === 0 ? 2.8 : 2.2}
2099
- fill="#22d3ee"
2100
- opacity={0.9}
2101
- filter="url(#topo-glow)"
2093
+ so the white surface stays clean.
2094
+
2095
+ R131 / Loop: orbit period now buckets on workingCount,
2096
+ mirroring R84's hub-busyness breath cadence. An idle
2097
+ fleet keeps the original 16s "calm sweep"; as work
2098
+ accumulates the orbit subtly accelerates (capped at
2099
+ 10s so it never feels frantic). Two-layer motion
2100
+ coordination now: R84 breathes the hub, R131 spins
2101
+ the outer ring — both reading the same underlying
2102
+ "is the network busy" signal, both visible
2103
+ simultaneously without competing. Same bucket
2104
+ thresholds (0 / 1-2 / 3-5 / 6+) the R84 block uses
2105
+ at line ~2702 so the two cadences stay in sync if
2106
+ a future refactor shifts buckets. */}
2107
+ {!isLight && (() => {
2108
+ const busy = workingCount === 0 ? 0
2109
+ : workingCount <= 2 ? 1
2110
+ : workingCount <= 5 ? 2
2111
+ : 3;
2112
+ const dur = [16, 14, 12, 10][busy];
2113
+ return [0, 0.25, 0.5, 0.75].map((phase, i) => (
2114
+ <g
2115
+ key={`orbit-${i}`}
2116
+ data-topo-orbit-bucket={busy}
2117
+ data-topo-orbit-dur={dur}
2102
2118
  >
2103
- <animateTransform
2104
- attributeName="transform"
2105
- type="rotate"
2106
- from={`${phase * 360} ${cx} ${cy}`}
2107
- to={`${phase * 360 + 360} ${cx} ${cy}`}
2108
- dur="16s"
2109
- repeatCount="indefinite"
2110
- />
2111
- </circle>
2112
- </g>
2113
- ))}
2119
+ <circle
2120
+ cx={cx + 330} cy={cy}
2121
+ r={i === 0 ? 2.8 : 2.2}
2122
+ fill="#22d3ee"
2123
+ opacity={0.9}
2124
+ filter="url(#topo-glow)"
2125
+ >
2126
+ <animateTransform
2127
+ attributeName="transform"
2128
+ type="rotate"
2129
+ from={`${phase * 360} ${cx} ${cy}`}
2130
+ to={`${phase * 360 + 360} ${cx} ${cy}`}
2131
+ dur={`${dur}s`}
2132
+ repeatCount="indefinite"
2133
+ />
2134
+ </circle>
2135
+ </g>
2136
+ ));
2137
+ })()}
2114
2138
 
2115
2139
  {[0, 30, 60, 90, 120, 150].map(angle => (
2116
2140
  <line
@@ -2730,7 +2754,49 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
2730
2754
  })()}
2731
2755
  {/* core — 20px diameter, larger inner highlight reads as a "lit lamp" */}
2732
2756
  <circle cx={cx} cy={cy} r="10" fill={isLight ? '#059669' : '#10b981'} />
2733
- <circle cx={cx} cy={cy} r="5" fill="#d1fae5" opacity="0.9" />
2757
+ {/* R130 / Loop: when workingCount > 0, the decorative inner
2758
+ highlight gets replaced with the workingCount digit. The
2759
+ R84 busyness breath already encodes the same metric
2760
+ through motion — adding the digit gives it a second
2761
+ visual channel right at the canvas's focal point. A
2762
+ user glancing at the hub now sees both "the network is
2763
+ pulsing" (motion) AND "3 agents are working" (digit)
2764
+ without having to scan the chip row or panels.
2765
+
2766
+ Geometry: text at (cx, cy) with fontSize 11 monospace
2767
+ + fontWeight 700 sits inside the r=10 core (a 2-digit
2768
+ 12 reads ~12 px wide × 11 px tall, well inside the
2769
+ 20-px diameter core). Centered vertically via dy=
2770
+ "0.36em" — the standard SVG trick for text-vertical-
2771
+ center without measuring fontMetrics.
2772
+
2773
+ pointerEvents:none so the digit can't intercept the
2774
+ hub click (R52 fit-to-view still fires).
2775
+
2776
+ workingCount=0 falls through to the existing
2777
+ decorative highlight so the hub never looks empty. */}
2778
+ {workingCount > 0 ? (
2779
+ <text
2780
+ x={cx} y={cy}
2781
+ textAnchor="middle"
2782
+ dy="0.36em"
2783
+ fill={isLight ? '#d1fae5' : '#ecfdf5'}
2784
+ fontSize="11"
2785
+ fontFamily="monospace"
2786
+ fontWeight="700"
2787
+ style={{ pointerEvents: 'none' }}
2788
+ data-topo-hub-working-count={workingCount}
2789
+ >
2790
+ {workingCount}
2791
+ </text>
2792
+ ) : (
2793
+ <circle
2794
+ cx={cx} cy={cy} r="5"
2795
+ fill="#d1fae5"
2796
+ opacity="0.9"
2797
+ data-topo-hub-highlight
2798
+ />
2799
+ )}
2734
2800
  {/* R115 / Loop: hover hint ring. Stroke-only circle at r=14
2735
2801
  that fades in when the hub is hovered — the same idea
2736
2802
  R44 used for node avatars (group-hover stroke). r=14
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.4.6-preview.136",
3
+ "version": "0.4.6-preview.138",
4
4
  "description": "Agent Network Dashboard — Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,99 @@
1
+ /* Round 130 verification: hub center shows workingCount digit when
2
+ * > 0. The R84 busyness breath already encodes workingCount through
3
+ * motion (peak amplitude + period both vary with count buckets);
4
+ * R130 adds a second channel — the digit itself — at the canvas's
5
+ * focal point. A glance at the hub now answers two questions
6
+ * simultaneously: "is the fleet busy" (motion) and "how busy" (number).
7
+ *
8
+ * Layout invariant: workingCount=0 falls through to the existing
9
+ * decorative highlight (data-topo-hub-highlight); workingCount>0
10
+ * swaps it for the digit text (data-topo-hub-working-count={N}).
11
+ *
12
+ * Three states:
13
+ * A. all idle (0 working) → decorative highlight rendered,
14
+ * no digit text
15
+ * B. mix (3 working) → digit "3" rendered, no highlight
16
+ * C. all working (5 working) → digit "5" rendered, no highlight
17
+ *
18
+ * Additional assertion: hub click-to-fit (R52) still works when
19
+ * the digit is rendered — the text's pointerEvents:none means the
20
+ * digit can't intercept clicks meant for the hub <g>.
21
+ */
22
+ import { chromium } from 'playwright';
23
+ import { readFileSync } from 'node:fs';
24
+
25
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
26
+
27
+ async function probe(workingCount, totalCount = 5) {
28
+ const browser = await chromium.launch({ headless: true });
29
+ const ctx = await browser.newContext({ viewport: { width: 1400, height: 1500 } });
30
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
31
+ await ctx.addInitScript(() => {
32
+ try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
33
+ });
34
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
35
+ await ctx.route('**/api/hub/status*', async (route) => {
36
+ const r = await route.fetch();
37
+ const b = await r.json();
38
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
39
+ const sessions = [];
40
+ for (let i = 0; i < totalCount; i++) {
41
+ sessions.push({
42
+ alias: `node${i}`,
43
+ status: i < workingCount ? 'working' : 'idle',
44
+ model: 'claude-opus-4', runtime: 'cli-claude-code',
45
+ network_id: nid, project_dir: null,
46
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
47
+ });
48
+ }
49
+ await route.fulfill({ response: r, json: { ...b, sessions } });
50
+ });
51
+ await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: [] } }));
52
+ await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
53
+
54
+ const page = await ctx.newPage();
55
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
56
+ await page.waitForFunction((n) => document.querySelectorAll('g[data-node]').length === n, totalCount, { timeout: 30000 });
57
+ await page.waitForTimeout(400);
58
+
59
+ const out = await page.evaluate(() => {
60
+ const digit = document.querySelector('[data-topo-hub-working-count]');
61
+ const highlight = document.querySelector('[data-topo-hub-highlight]');
62
+ return {
63
+ digitPresent: !!digit,
64
+ digitText: digit?.textContent,
65
+ digitAttr: digit?.getAttribute('data-topo-hub-working-count'),
66
+ digitPointerEv: digit?.getAttribute('style')?.includes('pointer-events: none'),
67
+ highlightPresent: !!highlight,
68
+ };
69
+ });
70
+
71
+ await browser.close();
72
+ return out;
73
+ }
74
+
75
+ const a = await probe(0, 3);
76
+ const b = await probe(3, 5);
77
+ const c = await probe(5, 5);
78
+
79
+ const results = {
80
+ a_noDigit: !a.digitPresent,
81
+ a_hasHighlight: a.highlightPresent,
82
+
83
+ b_hasDigit: b.digitPresent,
84
+ b_digitText3: b.digitText === '3',
85
+ b_digitAttr3: b.digitAttr === '3',
86
+ b_pointerNone: b.digitPointerEv === true,
87
+ b_noHighlight: !b.highlightPresent,
88
+
89
+ c_hasDigit: c.digitPresent,
90
+ c_digitText5: c.digitText === '5',
91
+ c_digitAttr5: c.digitAttr === '5',
92
+ c_noHighlight: !c.highlightPresent,
93
+ };
94
+ const ok = Object.values(results).every(Boolean);
95
+ console.log(`${ok ? '✅' : '❌'} hub working count:`, JSON.stringify(results),
96
+ `\n A(0 working)=`, a,
97
+ `\n B(3 working)=`, b,
98
+ `\n C(5 working)=`, c);
99
+ process.exit(ok ? 0 : 1);
@@ -0,0 +1,96 @@
1
+ /* Round 131 verification: outer-ring orbit period buckets on
2
+ * workingCount, mirroring R84's hub-breath cadence. Idle fleet
3
+ * keeps the original 16s "calm sweep"; as work piles up the
4
+ * orbit accelerates to 14 / 12 / 10s. Both motion layers now
5
+ * read the same underlying "is the network busy" signal.
6
+ *
7
+ * Bucket boundaries identical to R84 (line ~2702):
8
+ * workingCount === 0 → bucket 0, dur 16s
9
+ * workingCount in [1, 2] → bucket 1, dur 14s
10
+ * workingCount in [3, 5] → bucket 2, dur 12s
11
+ * workingCount >= 6 → bucket 3, dur 10s
12
+ *
13
+ * R50 only renders on cyber theme (light is skipped to keep the
14
+ * white surface clean). All probes use cyber.
15
+ *
16
+ * Probe fleet sizes pick one representative per bucket.
17
+ */
18
+ import { chromium } from 'playwright';
19
+ import { readFileSync } from 'node:fs';
20
+
21
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
22
+
23
+ async function probe(workingCount, totalCount) {
24
+ const browser = await chromium.launch({ headless: true });
25
+ const ctx = await browser.newContext({ viewport: { width: 1400, height: 1500 } });
26
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
27
+ await ctx.addInitScript(() => {
28
+ try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
29
+ });
30
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
31
+ await ctx.route('**/api/hub/status*', async (route) => {
32
+ const r = await route.fetch();
33
+ const b = await r.json();
34
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
35
+ const sessions = [];
36
+ for (let i = 0; i < totalCount; i++) {
37
+ sessions.push({
38
+ alias: `node${i}`,
39
+ status: i < workingCount ? 'working' : 'idle',
40
+ model: 'claude-opus-4', runtime: 'cli-claude-code',
41
+ network_id: nid, project_dir: null,
42
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
43
+ });
44
+ }
45
+ await route.fulfill({ response: r, json: { ...b, sessions } });
46
+ });
47
+ await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: [] } }));
48
+ await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
49
+
50
+ const page = await ctx.newPage();
51
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
52
+ await page.waitForFunction((n) => document.querySelectorAll('g[data-node]').length === n, totalCount, { timeout: 30000 });
53
+ await page.waitForTimeout(400);
54
+
55
+ const out = await page.evaluate(() => {
56
+ const orbits = [...document.querySelectorAll('[data-topo-orbit-bucket]')];
57
+ return orbits.map(g => ({
58
+ bucket: g.getAttribute('data-topo-orbit-bucket'),
59
+ dur: g.getAttribute('data-topo-orbit-dur'),
60
+ animDur: g.querySelector('animateTransform')?.getAttribute('dur'),
61
+ }));
62
+ });
63
+
64
+ await browser.close();
65
+ return out;
66
+ }
67
+
68
+ // Pick one from each bucket
69
+ const b0 = await probe(0, 4); // workingCount=0 → bucket 0, dur 16
70
+ const b1 = await probe(2, 4); // workingCount=2 → bucket 1, dur 14
71
+ const b2 = await probe(4, 5); // workingCount=4 → bucket 2, dur 12
72
+ const b3 = await probe(7, 8); // workingCount=7 → bucket 3, dur 10
73
+
74
+ const allConsistent = (orbits, bucket, dur) =>
75
+ orbits.length === 4 &&
76
+ orbits.every(o => o.bucket === String(bucket) && o.dur === String(dur) && o.animDur === `${dur}s`);
77
+
78
+ const results = {
79
+ b0_fourOrbits: b0.length === 4,
80
+ b0_bucket0_16s: allConsistent(b0, 0, 16),
81
+ b1_bucket1_14s: allConsistent(b1, 1, 14),
82
+ b2_bucket2_12s: allConsistent(b2, 2, 12),
83
+ b3_bucket3_10s: allConsistent(b3, 3, 10),
84
+ // dur strictly decreases as busy increases
85
+ dur_monotonic:
86
+ Number(b0[0]?.dur) > Number(b1[0]?.dur) &&
87
+ Number(b1[0]?.dur) > Number(b2[0]?.dur) &&
88
+ Number(b2[0]?.dur) > Number(b3[0]?.dur),
89
+ };
90
+ const ok = Object.values(results).every(Boolean);
91
+ console.log(`${ok ? '✅' : '❌'} orbit busyness:`, JSON.stringify(results),
92
+ `\n b0(0w/4)=`, b0,
93
+ `\n b1(2w/4)=`, b1,
94
+ `\n b2(4w/5)=`, b2,
95
+ `\n b3(7w/8)=`, b3);
96
+ process.exit(ok ? 0 : 1);