@sleep2agi/agent-network-dashboard 0.5.3-preview.217 → 0.5.3-preview.219

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 (156) 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 +5 -5
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/server/app/_global-error.html +1 -1
  6. package/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/_not-found.html +2 -2
  14. package/.next/server/app/_not-found.rsc +2 -2
  15. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  16. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  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 +2 -2
  21. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/admin.html +2 -2
  23. package/.next/server/app/admin.rsc +2 -2
  24. package/.next/server/app/admin.segments/_full.segment.rsc +2 -2
  25. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  26. package/.next/server/app/admin.segments/_index.segment.rsc +2 -2
  27. package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  28. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  29. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  30. package/.next/server/app/index.html +2 -2
  31. package/.next/server/app/index.rsc +3 -3
  32. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  33. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  34. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  35. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  36. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  37. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/login.html +2 -2
  39. package/.next/server/app/login.rsc +3 -3
  40. package/.next/server/app/login.segments/_full.segment.rsc +3 -3
  41. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  42. package/.next/server/app/login.segments/_index.segment.rsc +2 -2
  43. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  44. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  45. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  46. package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/logs.html +2 -2
  48. package/.next/server/app/logs.rsc +2 -2
  49. package/.next/server/app/logs.segments/_full.segment.rsc +2 -2
  50. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  51. package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
  52. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  53. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  54. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  55. package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/messages.html +2 -2
  57. package/.next/server/app/messages.rsc +2 -2
  58. package/.next/server/app/messages.segments/_full.segment.rsc +2 -2
  59. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  60. package/.next/server/app/messages.segments/_index.segment.rsc +2 -2
  61. package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
  62. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  63. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  64. package/.next/server/app/node/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app/node.html +2 -2
  66. package/.next/server/app/node.rsc +2 -2
  67. package/.next/server/app/node.segments/_full.segment.rsc +2 -2
  68. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  69. package/.next/server/app/node.segments/_index.segment.rsc +2 -2
  70. package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
  71. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  72. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  73. package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
  74. package/.next/server/app/nodes.html +2 -2
  75. package/.next/server/app/nodes.rsc +2 -2
  76. package/.next/server/app/nodes.segments/_full.segment.rsc +2 -2
  77. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  78. package/.next/server/app/nodes.segments/_index.segment.rsc +2 -2
  79. package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
  80. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  81. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  82. package/.next/server/app/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
  84. package/.next/server/app/server-logs.html +2 -2
  85. package/.next/server/app/server-logs.rsc +2 -2
  86. package/.next/server/app/server-logs.segments/_full.segment.rsc +2 -2
  87. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  88. package/.next/server/app/server-logs.segments/_index.segment.rsc +2 -2
  89. package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
  90. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  91. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  92. package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
  93. package/.next/server/app/settings/networks.html +2 -2
  94. package/.next/server/app/settings/networks.rsc +2 -2
  95. package/.next/server/app/settings/networks.segments/_full.segment.rsc +2 -2
  96. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  97. package/.next/server/app/settings/networks.segments/_index.segment.rsc +2 -2
  98. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
  99. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  100. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  101. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  102. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  103. package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
  104. package/.next/server/app/settings/tokens.html +2 -2
  105. package/.next/server/app/settings/tokens.rsc +2 -2
  106. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +2 -2
  107. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  108. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +2 -2
  109. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
  110. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  111. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  112. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  113. package/.next/server/app/settings.html +2 -2
  114. package/.next/server/app/settings.rsc +3 -3
  115. package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  116. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  117. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  118. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  119. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  120. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  121. package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  122. package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  123. package/.next/server/app/tasks.html +2 -2
  124. package/.next/server/app/tasks.rsc +2 -2
  125. package/.next/server/app/tasks.segments/_full.segment.rsc +2 -2
  126. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  127. package/.next/server/app/tasks.segments/_index.segment.rsc +2 -2
  128. package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
  129. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  130. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  131. package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js +1 -1
  132. package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js.map +1 -1
  133. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +1 -1
  134. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
  135. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
  136. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
  137. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
  138. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
  139. package/.next/server/middleware-build-manifest.js +3 -3
  140. package/.next/server/pages/404.html +2 -2
  141. package/.next/server/pages/500.html +1 -1
  142. package/.next/static/chunks/{01ufw4a4xifqi.js → 0j7r9w2ld.qmb.js} +1 -1
  143. package/.next/static/chunks/{0l-q-b1v68a-h.js → 0lpq95vur13.c.js} +1 -1
  144. package/.next/static/chunks/{03an~-y0-72np.js → 0qkx0zy-5jvb1.js} +1 -1
  145. package/.next/static/chunks/{0-h6duhh43f5u.js → 10bj6soicj16b.js} +3 -3
  146. package/.next/static/chunks/{0.wdda-dmqc4d.css → 11gv77mxtyq~y.css} +1 -1
  147. package/.next/trace +2 -2
  148. package/.next/trace-build +1 -1
  149. package/app/components/TopoGraph.tsx +82 -0
  150. package/app/globals.css +58 -0
  151. package/package.json +1 -1
  152. package/scripts/topo-crescent-envelope-breath-test.mjs +103 -0
  153. package/scripts/topo-watermark-envelope-breath-test.mjs +88 -0
  154. /package/.next/static/{sUvIrSJGQaCqpFXzBcSQI → FqiLgm3Xb6_hwIw8Q_KNg}/_buildManifest.js +0 -0
  155. /package/.next/static/{sUvIrSJGQaCqpFXzBcSQI → FqiLgm3Xb6_hwIw8Q_KNg}/_clientMiddlewareManifest.js +0 -0
  156. /package/.next/static/{sUvIrSJGQaCqpFXzBcSQI → FqiLgm3Xb6_hwIw8Q_KNg}/_ssgManifest.js +0 -0
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":305,"timestamp":397228186427,"id":4,"parentId":1,"tags":{},"startTime":1779205200433,"traceId":"eaf47df8bd452bcd"},{"name":"load-custom-routes","duration":505,"timestamp":397228186885,"id":5,"parentId":1,"tags":{},"startTime":1779205200433,"traceId":"eaf47df8bd452bcd"},{"name":"create-dist-dir","duration":719,"timestamp":397228187436,"id":6,"parentId":1,"tags":{},"startTime":1779205200434,"traceId":"eaf47df8bd452bcd"},{"name":"clean","duration":38452,"timestamp":397228188822,"id":7,"parentId":1,"tags":{},"startTime":1779205200435,"traceId":"eaf47df8bd452bcd"},{"name":"discover-routes","duration":29661,"timestamp":397228311283,"id":8,"parentId":1,"tags":{},"startTime":1779205200558,"traceId":"eaf47df8bd452bcd"},{"name":"create-root-mapping","duration":132,"timestamp":397228341037,"id":9,"parentId":1,"tags":{},"startTime":1779205200587,"traceId":"eaf47df8bd452bcd"},{"name":"generate-route-types","duration":20499,"timestamp":397228343829,"id":10,"parentId":1,"tags":{},"startTime":1779205200590,"traceId":"eaf47df8bd452bcd"},{"name":"public-dir-conflict-check","duration":99,"timestamp":397228364437,"id":11,"parentId":1,"tags":{},"startTime":1779205200611,"traceId":"eaf47df8bd452bcd"},{"name":"generate-routes-manifest","duration":5011,"timestamp":397228364649,"id":12,"parentId":1,"tags":{},"startTime":1779205200611,"traceId":"eaf47df8bd452bcd"},{"name":"run-turbopack","duration":6376151,"timestamp":397228376469,"id":14,"parentId":1,"tags":{},"startTime":1779205200623,"traceId":"eaf47df8bd452bcd"},{"name":"turbopack-build-events","duration":109,"timestamp":397228688033,"id":15,"parentId":1,"tags":{},"startTime":1779205200934,"traceId":"eaf47df8bd452bcd"},{"name":"run-typescript","duration":10327330,"timestamp":397234768803,"id":16,"parentId":1,"tags":{},"startTime":1779205207015,"traceId":"eaf47df8bd452bcd"},{"name":"generate-required-server-files","duration":3212,"timestamp":397245097645,"id":18,"parentId":1,"tags":{},"startTime":1779205217344,"traceId":"eaf47df8bd452bcd"},{"name":"check-static-error-page","duration":15594,"timestamp":397245296459,"id":20,"parentId":19,"tags":{},"startTime":1779205217543,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":470726,"timestamp":397245316123,"id":65,"parentId":22,"tags":{},"startTime":1779205217562,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":487370,"timestamp":397245299687,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779205217546,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":588508,"timestamp":397245316270,"id":66,"parentId":25,"tags":{},"startTime":1779205217563,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":602057,"timestamp":397245302825,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779205217549,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":593235,"timestamp":397245317097,"id":72,"parentId":32,"tags":{},"startTime":1779205217563,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":606442,"timestamp":397245303988,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779205217550,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":594188,"timestamp":397245317032,"id":71,"parentId":30,"tags":{},"startTime":1779205217563,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":607709,"timestamp":397245303576,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779205217550,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":609747,"timestamp":397245316603,"id":69,"parentId":28,"tags":{},"startTime":1779205217563,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":623182,"timestamp":397245303275,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779205217550,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":610250,"timestamp":397245316388,"id":67,"parentId":26,"tags":{},"startTime":1779205217563,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":623655,"timestamp":397245303019,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779205217549,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":609577,"timestamp":397245317347,"id":74,"parentId":34,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":622717,"timestamp":397245304254,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779205217551,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":617955,"timestamp":397245315678,"id":64,"parentId":21,"tags":{},"startTime":1779205217562,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":635602,"timestamp":397245298081,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779205217544,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":629118,"timestamp":397245316858,"id":70,"parentId":29,"tags":{},"startTime":1779205217563,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":643153,"timestamp":397245303426,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779205217550,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":632815,"timestamp":397245316497,"id":68,"parentId":27,"tags":{},"startTime":1779205217563,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":646227,"timestamp":397245303155,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779205217549,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":644008,"timestamp":397245317267,"id":73,"parentId":33,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":657196,"timestamp":397245304138,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779205217550,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":644024,"timestamp":397245317477,"id":80,"parentId":40,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":656096,"timestamp":397245305439,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779205217552,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":644236,"timestamp":397245317436,"id":77,"parentId":37,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":656643,"timestamp":397245305062,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779205217551,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":653074,"timestamp":397245317513,"id":83,"parentId":45,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":664211,"timestamp":397245306427,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779205217553,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":653389,"timestamp":397245317387,"id":75,"parentId":35,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":666414,"timestamp":397245304389,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779205217551,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":662762,"timestamp":397245317464,"id":79,"parentId":39,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":674978,"timestamp":397245305314,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779205217552,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":662936,"timestamp":397245317501,"id":82,"parentId":44,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":674200,"timestamp":397245306277,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779205217553,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":663066,"timestamp":397245317528,"id":84,"parentId":46,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":674054,"timestamp":397245306563,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779205217553,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":663179,"timestamp":397245317538,"id":85,"parentId":47,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":674054,"timestamp":397245306686,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779205217553,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":663419,"timestamp":397245317408,"id":76,"parentId":36,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":675997,"timestamp":397245304852,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779205217551,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":667448,"timestamp":397245317491,"id":81,"parentId":42,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":679212,"timestamp":397245305810,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779205217552,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":669562,"timestamp":397245317568,"id":87,"parentId":49,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":678772,"timestamp":397245308412,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779205217555,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":670202,"timestamp":397245317583,"id":88,"parentId":50,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":679322,"timestamp":397245308511,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779205217555,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":666451,"timestamp":397245324046,"id":91,"parentId":31,"tags":{},"startTime":1779205217570,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":686841,"timestamp":397245303695,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779205217550,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":665529,"timestamp":397245326633,"id":93,"parentId":43,"tags":{},"startTime":1779205217573,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":686252,"timestamp":397245305950,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779205217552,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":676434,"timestamp":397245317553,"id":86,"parentId":48,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":685817,"timestamp":397245308232,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779205217555,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":672884,"timestamp":397245322788,"id":90,"parentId":24,"tags":{},"startTime":1779205217569,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":695486,"timestamp":397245300227,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779205217547,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":683005,"timestamp":397245317593,"id":89,"parentId":51,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":692043,"timestamp":397245308606,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779205217555,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":693766,"timestamp":397245324968,"id":92,"parentId":41,"tags":{},"startTime":1779205217571,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":713266,"timestamp":397245305547,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779205217552,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":707652,"timestamp":397245317450,"id":78,"parentId":38,"tags":{},"startTime":1779205217564,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":719959,"timestamp":397245305209,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779205217551,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":704047,"timestamp":397245329231,"id":100,"parentId":58,"tags":{},"startTime":1779205217576,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":722696,"timestamp":397245310643,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779205217557,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":711643,"timestamp":397245329348,"id":101,"parentId":59,"tags":{},"startTime":1779205217576,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":730216,"timestamp":397245310851,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779205217557,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":718747,"timestamp":397245329384,"id":102,"parentId":61,"tags":{},"startTime":1779205217576,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":736701,"timestamp":397245311507,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779205217558,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":726623,"timestamp":397245329189,"id":97,"parentId":54,"tags":{},"startTime":1779205217575,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":746479,"timestamp":397245309390,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779205217556,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":726905,"timestamp":397245329164,"id":95,"parentId":52,"tags":{},"startTime":1779205217575,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":747092,"timestamp":397245309034,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779205217555,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":727149,"timestamp":397245329131,"id":94,"parentId":23,"tags":{},"startTime":1779205217575,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":756877,"timestamp":397245299962,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779205217546,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":732821,"timestamp":397245329395,"id":103,"parentId":62,"tags":{},"startTime":1779205217576,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":750603,"timestamp":397245311652,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779205217558,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":733875,"timestamp":397245329408,"id":104,"parentId":63,"tags":{},"startTime":1779205217576,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":751534,"timestamp":397245311787,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779205217558,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":712491,"timestamp":397245351116,"id":106,"parentId":57,"tags":{},"startTime":1779205217597,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":753588,"timestamp":397245310056,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779205217556,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":727092,"timestamp":397245337353,"id":105,"parentId":60,"tags":{},"startTime":1779205217584,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":753429,"timestamp":397245311051,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779205217557,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":737279,"timestamp":397245329207,"id":98,"parentId":55,"tags":{},"startTime":1779205217575,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":756942,"timestamp":397245309588,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779205217556,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":741151,"timestamp":397245329175,"id":96,"parentId":53,"tags":{},"startTime":1779205217575,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":761147,"timestamp":397245309218,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779205217555,"traceId":"eaf47df8bd452bcd"},{"name":"is-page-static","duration":746650,"timestamp":397245329221,"id":99,"parentId":56,"tags":{},"startTime":1779205217575,"traceId":"eaf47df8bd452bcd"},{"name":"check-page","duration":766119,"timestamp":397245309794,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779205217556,"traceId":"eaf47df8bd452bcd"},{"name":"static-check","duration":780647,"timestamp":397245295313,"id":19,"parentId":1,"tags":{},"startTime":1779205217542,"traceId":"eaf47df8bd452bcd"}]
2
- [{"name":"write-routes-manifest","duration":660,"timestamp":397246086966,"id":108,"parentId":1,"tags":{},"startTime":1779205218333,"traceId":"eaf47df8bd452bcd"},{"name":"load-dotenv","duration":60,"timestamp":397246100906,"id":111,"parentId":110,"tags":{},"startTime":1779205218347,"traceId":"eaf47df8bd452bcd"},{"name":"run-export-path-map","duration":986,"timestamp":397246104325,"id":112,"parentId":110,"tags":{},"startTime":1779205218351,"traceId":"eaf47df8bd452bcd"},{"name":"next-export","duration":633211,"timestamp":397246099086,"id":110,"parentId":1,"tags":{},"startTime":1779205218345,"traceId":"eaf47df8bd452bcd"},{"name":"move-exported-app-not-found-","duration":566,"timestamp":397246736157,"id":113,"parentId":109,"tags":{},"startTime":1779205218982,"traceId":"eaf47df8bd452bcd"},{"name":"move-exported-app-global-error-","duration":411,"timestamp":397246736813,"id":114,"parentId":109,"tags":{},"startTime":1779205218983,"traceId":"eaf47df8bd452bcd"},{"name":"static-generation","duration":647731,"timestamp":397246092350,"id":109,"parentId":1,"tags":{},"startTime":1779205218339,"traceId":"eaf47df8bd452bcd"},{"name":"write-routes-manifest","duration":448,"timestamp":397246740321,"id":115,"parentId":1,"tags":{},"startTime":1779205218987,"traceId":"eaf47df8bd452bcd"},{"name":"print-tree-view","duration":5136,"timestamp":397246749957,"id":116,"parentId":1,"tags":{},"startTime":1779205218996,"traceId":"eaf47df8bd452bcd"},{"name":"write-route-bundle-stats","duration":18666,"timestamp":397246755131,"id":117,"parentId":1,"tags":{},"startTime":1779205219001,"traceId":"eaf47df8bd452bcd"},{"name":"telemetry-flush","duration":70791,"timestamp":397246773831,"id":118,"parentId":1,"tags":{},"startTime":1779205219020,"traceId":"eaf47df8bd452bcd"},{"name":"next-build","duration":18711397,"timestamp":397228133265,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779205200380,"traceId":"eaf47df8bd452bcd"}]
1
+ [{"name":"generate-buildid","duration":385,"timestamp":399684259508,"id":4,"parentId":1,"tags":{},"startTime":1779207656506,"traceId":"042c4610d4caf84e"},{"name":"load-custom-routes","duration":523,"timestamp":399684260073,"id":5,"parentId":1,"tags":{},"startTime":1779207656506,"traceId":"042c4610d4caf84e"},{"name":"create-dist-dir","duration":780,"timestamp":399684260645,"id":6,"parentId":1,"tags":{},"startTime":1779207656507,"traceId":"042c4610d4caf84e"},{"name":"clean","duration":37342,"timestamp":399684262316,"id":7,"parentId":1,"tags":{},"startTime":1779207656509,"traceId":"042c4610d4caf84e"},{"name":"discover-routes","duration":24418,"timestamp":399684401228,"id":8,"parentId":1,"tags":{},"startTime":1779207656648,"traceId":"042c4610d4caf84e"},{"name":"create-root-mapping","duration":135,"timestamp":399684425727,"id":9,"parentId":1,"tags":{},"startTime":1779207656672,"traceId":"042c4610d4caf84e"},{"name":"generate-route-types","duration":21157,"timestamp":399684428462,"id":10,"parentId":1,"tags":{},"startTime":1779207656675,"traceId":"042c4610d4caf84e"},{"name":"public-dir-conflict-check","duration":106,"timestamp":399684449716,"id":11,"parentId":1,"tags":{},"startTime":1779207656696,"traceId":"042c4610d4caf84e"},{"name":"generate-routes-manifest","duration":4797,"timestamp":399684449937,"id":12,"parentId":1,"tags":{},"startTime":1779207656696,"traceId":"042c4610d4caf84e"},{"name":"run-turbopack","duration":7902955,"timestamp":399684461560,"id":14,"parentId":1,"tags":{},"startTime":1779207656708,"traceId":"042c4610d4caf84e"},{"name":"turbopack-build-events","duration":76,"timestamp":399684816887,"id":15,"parentId":1,"tags":{},"startTime":1779207657063,"traceId":"042c4610d4caf84e"},{"name":"run-typescript","duration":11381085,"timestamp":399692372345,"id":16,"parentId":1,"tags":{},"startTime":1779207664619,"traceId":"042c4610d4caf84e"},{"name":"generate-required-server-files","duration":3761,"timestamp":399703754715,"id":18,"parentId":1,"tags":{},"startTime":1779207676001,"traceId":"042c4610d4caf84e"},{"name":"check-static-error-page","duration":19430,"timestamp":399703996954,"id":20,"parentId":19,"tags":{},"startTime":1779207676243,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":659673,"timestamp":399704021468,"id":65,"parentId":22,"tags":{},"startTime":1779207676268,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":681804,"timestamp":399704000406,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779207676247,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":764762,"timestamp":399704021746,"id":67,"parentId":26,"tags":{},"startTime":1779207676268,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":782896,"timestamp":399704003711,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779207676250,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":767820,"timestamp":399704026746,"id":72,"parentId":32,"tags":{},"startTime":1779207676273,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":789341,"timestamp":399704005308,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779207676252,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":806787,"timestamp":399704021981,"id":69,"parentId":28,"tags":{},"startTime":1779207676268,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":824879,"timestamp":399704003971,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779207676250,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":802133,"timestamp":399704026945,"id":73,"parentId":33,"tags":{},"startTime":1779207676273,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":823640,"timestamp":399704005484,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779207676252,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":826917,"timestamp":399704021868,"id":68,"parentId":27,"tags":{},"startTime":1779207676268,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":845011,"timestamp":399704003843,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779207676250,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":833023,"timestamp":399704027096,"id":75,"parentId":35,"tags":{},"startTime":1779207676273,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":854456,"timestamp":399704005748,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779207676252,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":833449,"timestamp":399704027064,"id":74,"parentId":34,"tags":{},"startTime":1779207676273,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":854947,"timestamp":399704005611,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779207676252,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":847358,"timestamp":399704027159,"id":77,"parentId":37,"tags":{},"startTime":1779207676273,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":868054,"timestamp":399704006535,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779207676253,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":855898,"timestamp":399704027196,"id":79,"parentId":39,"tags":{},"startTime":1779207676273,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":875557,"timestamp":399704007604,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779207676254,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":866747,"timestamp":399704027212,"id":80,"parentId":40,"tags":{},"startTime":1779207676273,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":886328,"timestamp":399704007727,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779207676254,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":867244,"timestamp":399704027123,"id":76,"parentId":36,"tags":{},"startTime":1779207676273,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":888109,"timestamp":399704006296,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779207676253,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":871886,"timestamp":399704026669,"id":71,"parentId":30,"tags":{},"startTime":1779207676273,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":893766,"timestamp":399704004834,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779207676251,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":879295,"timestamp":399704027230,"id":81,"parentId":42,"tags":{},"startTime":1779207676274,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":898372,"timestamp":399704008220,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779207676254,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":883171,"timestamp":399704027242,"id":82,"parentId":44,"tags":{},"startTime":1779207676274,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":901763,"timestamp":399704008708,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779207676255,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":888814,"timestamp":399704027274,"id":84,"parentId":46,"tags":{},"startTime":1779207676274,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":907243,"timestamp":399704008905,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779207676255,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":889171,"timestamp":399704027286,"id":85,"parentId":47,"tags":{},"startTime":1779207676274,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":907524,"timestamp":399704008985,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779207676255,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":889476,"timestamp":399704027177,"id":78,"parentId":38,"tags":{},"startTime":1779207676273,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":909209,"timestamp":399704007472,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779207676254,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":891664,"timestamp":399704027304,"id":86,"parentId":48,"tags":{},"startTime":1779207676274,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":909907,"timestamp":399704009134,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779207676255,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":896852,"timestamp":399704027348,"id":89,"parentId":51,"tags":{},"startTime":1779207676274,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":913016,"timestamp":399704011234,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779207676258,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":898641,"timestamp":399704027321,"id":87,"parentId":49,"tags":{},"startTime":1779207676274,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":915006,"timestamp":399704011030,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779207676257,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":898894,"timestamp":399704027336,"id":88,"parentId":50,"tags":{},"startTime":1779207676274,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":915099,"timestamp":399704011167,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779207676257,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":876740,"timestamp":399704053760,"id":90,"parentId":24,"tags":{},"startTime":1779207676300,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":929604,"timestamp":399704000943,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779207676247,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":875756,"timestamp":399704055537,"id":91,"parentId":31,"tags":{},"startTime":1779207676302,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":926374,"timestamp":399704004967,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779207676251,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":877801,"timestamp":399704057877,"id":93,"parentId":43,"tags":{},"startTime":1779207676304,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":927337,"timestamp":399704008391,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779207676255,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":882017,"timestamp":399704056617,"id":92,"parentId":41,"tags":{},"startTime":1779207676303,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":930853,"timestamp":399704007829,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779207676254,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":944563,"timestamp":399704020284,"id":64,"parentId":21,"tags":{},"startTime":1779207676267,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":966300,"timestamp":399703998619,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779207676245,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":966287,"timestamp":399704027257,"id":83,"parentId":45,"tags":{},"startTime":1779207676274,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":984799,"timestamp":399704008831,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779207676255,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":918515,"timestamp":399704076980,"id":94,"parentId":23,"tags":{},"startTime":1779207676323,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":994859,"timestamp":399704000687,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779207676247,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":920476,"timestamp":399704077038,"id":95,"parentId":52,"tags":{},"startTime":1779207676323,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":985984,"timestamp":399704011574,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779207676258,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":922415,"timestamp":399704077049,"id":96,"parentId":53,"tags":{},"startTime":1779207676323,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":987775,"timestamp":399704011733,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779207676258,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":925836,"timestamp":399704077083,"id":99,"parentId":56,"tags":{},"startTime":1779207676323,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":990799,"timestamp":399704012165,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779207676258,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":928277,"timestamp":399704077094,"id":100,"parentId":58,"tags":{},"startTime":1779207676323,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":992575,"timestamp":399704012865,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779207676259,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":933656,"timestamp":399704077231,"id":102,"parentId":61,"tags":{},"startTime":1779207676324,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":997180,"timestamp":399704013752,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779207676260,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":937003,"timestamp":399704077209,"id":101,"parentId":59,"tags":{},"startTime":1779207676323,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":1001164,"timestamp":399704013107,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779207676259,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":949812,"timestamp":399704077239,"id":103,"parentId":62,"tags":{},"startTime":1779207676324,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":1013200,"timestamp":399704013911,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779207676260,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":955612,"timestamp":399704077251,"id":104,"parentId":63,"tags":{},"startTime":1779207676324,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":1016811,"timestamp":399704016112,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779207676262,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":958165,"timestamp":399704077264,"id":105,"parentId":57,"tags":{},"startTime":1779207676324,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":1023142,"timestamp":399704012335,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779207676259,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":952967,"timestamp":399704083865,"id":106,"parentId":60,"tags":{},"startTime":1779207676330,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":1023586,"timestamp":399704013296,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779207676260,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":962875,"timestamp":399704077062,"id":97,"parentId":54,"tags":{},"startTime":1779207676323,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":1028145,"timestamp":399704011845,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779207676258,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":1037498,"timestamp":399704021636,"id":66,"parentId":25,"tags":{},"startTime":1779207676268,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":1055674,"timestamp":399704003531,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779207676250,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":1045503,"timestamp":399704077075,"id":98,"parentId":55,"tags":{},"startTime":1779207676323,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":1110676,"timestamp":399704011981,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779207676258,"traceId":"042c4610d4caf84e"},{"name":"is-page-static","duration":1153245,"timestamp":399704026480,"id":70,"parentId":29,"tags":{},"startTime":1779207676273,"traceId":"042c4610d4caf84e"},{"name":"check-page","duration":1175219,"timestamp":399704004572,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779207676251,"traceId":"042c4610d4caf84e"},{"name":"static-check","duration":1184031,"timestamp":399703995797,"id":19,"parentId":1,"tags":{},"startTime":1779207676242,"traceId":"042c4610d4caf84e"}]
2
+ [{"name":"write-routes-manifest","duration":565,"timestamp":399705193804,"id":108,"parentId":1,"tags":{},"startTime":1779207677440,"traceId":"042c4610d4caf84e"},{"name":"load-dotenv","duration":62,"timestamp":399705207069,"id":111,"parentId":110,"tags":{},"startTime":1779207677453,"traceId":"042c4610d4caf84e"},{"name":"run-export-path-map","duration":648,"timestamp":399705209698,"id":112,"parentId":110,"tags":{},"startTime":1779207677456,"traceId":"042c4610d4caf84e"},{"name":"next-export","duration":741683,"timestamp":399705205566,"id":110,"parentId":1,"tags":{},"startTime":1779207677452,"traceId":"042c4610d4caf84e"},{"name":"move-exported-app-not-found-","duration":643,"timestamp":399705951351,"id":113,"parentId":109,"tags":{},"startTime":1779207678198,"traceId":"042c4610d4caf84e"},{"name":"move-exported-app-global-error-","duration":425,"timestamp":399705952150,"id":114,"parentId":109,"tags":{},"startTime":1779207678198,"traceId":"042c4610d4caf84e"},{"name":"static-generation","duration":756064,"timestamp":399705198685,"id":109,"parentId":1,"tags":{},"startTime":1779207677445,"traceId":"042c4610d4caf84e"},{"name":"write-routes-manifest","duration":531,"timestamp":399705955106,"id":115,"parentId":1,"tags":{},"startTime":1779207678201,"traceId":"042c4610d4caf84e"},{"name":"print-tree-view","duration":4771,"timestamp":399705974021,"id":116,"parentId":1,"tags":{},"startTime":1779207678220,"traceId":"042c4610d4caf84e"},{"name":"write-route-bundle-stats","duration":15104,"timestamp":399705978837,"id":117,"parentId":1,"tags":{},"startTime":1779207678225,"traceId":"042c4610d4caf84e"},{"name":"telemetry-flush","duration":22252,"timestamp":399705993982,"id":118,"parentId":1,"tags":{},"startTime":1779207678240,"traceId":"042c4610d4caf84e"},{"name":"next-build","duration":21812474,"timestamp":399684203807,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779207656450,"traceId":"042c4610d4caf84e"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":6376151,"timestamp":397228376469,"id":14,"parentId":1,"tags":{},"startTime":1779205200623,"traceId":"eaf47df8bd452bcd"},{"name":"turbopack-build-events","duration":109,"timestamp":397228688033,"id":15,"parentId":1,"tags":{},"startTime":1779205200934,"traceId":"eaf47df8bd452bcd"},{"name":"run-typescript","duration":10327330,"timestamp":397234768803,"id":16,"parentId":1,"tags":{},"startTime":1779205207015,"traceId":"eaf47df8bd452bcd"},{"name":"static-check","duration":780647,"timestamp":397245295313,"id":19,"parentId":1,"tags":{},"startTime":1779205217542,"traceId":"eaf47df8bd452bcd"},{"name":"static-generation","duration":647731,"timestamp":397246092350,"id":109,"parentId":1,"tags":{},"startTime":1779205218339,"traceId":"eaf47df8bd452bcd"},{"name":"telemetry-flush","duration":70791,"timestamp":397246773831,"id":118,"parentId":1,"tags":{},"startTime":1779205219020,"traceId":"eaf47df8bd452bcd"},{"name":"next-build","duration":18711397,"timestamp":397228133265,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779205200380,"traceId":"eaf47df8bd452bcd"}]
1
+ [{"name":"run-turbopack","duration":7902955,"timestamp":399684461560,"id":14,"parentId":1,"tags":{},"startTime":1779207656708,"traceId":"042c4610d4caf84e"},{"name":"turbopack-build-events","duration":76,"timestamp":399684816887,"id":15,"parentId":1,"tags":{},"startTime":1779207657063,"traceId":"042c4610d4caf84e"},{"name":"run-typescript","duration":11381085,"timestamp":399692372345,"id":16,"parentId":1,"tags":{},"startTime":1779207664619,"traceId":"042c4610d4caf84e"},{"name":"static-check","duration":1184031,"timestamp":399703995797,"id":19,"parentId":1,"tags":{},"startTime":1779207676242,"traceId":"042c4610d4caf84e"},{"name":"static-generation","duration":756064,"timestamp":399705198685,"id":109,"parentId":1,"tags":{},"startTime":1779207677445,"traceId":"042c4610d4caf84e"},{"name":"telemetry-flush","duration":22252,"timestamp":399705993982,"id":118,"parentId":1,"tags":{},"startTime":1779207678240,"traceId":"042c4610d4caf84e"},{"name":"next-build","duration":21812474,"timestamp":399684203807,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779207656450,"traceId":"042c4610d4caf84e"}]
@@ -15390,14 +15390,53 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
15390
15390
  foregrounded.
15391
15391
  Focal-recede family extension (3 anchors): R507 hub
15392
15392
  digit / R508 hub-highlight / R525 brand watermark. */}
15393
+ {/* Round 704 / Loop — brand watermark WRAPPER gains an envelope
15394
+ breath at 15 s — the slowest tier in the respiratory rolodex.
15395
+ The inner "sleep2agi" text already breathes at 6 s (R519);
15396
+ the crescent moon at 7 s; this round adds an outer wrapper
15397
+ envelope at 15 s so the brand area has a layered respiratory
15398
+ effect — fast inner breaths nested inside a slow outer one.
15399
+ At wrapper trough (opacity 0.85) × inner text trough (0.32)
15400
+ → effective 0.272; at both peaks → 0.48. Soft envelope.
15401
+
15402
+ Cadence: 15 s — slowest tier yet, sits at the top of the
15403
+ rolodex above the 10 s H2. Heaviest visual register
15404
+ (the only fixed-position corner watermark) deserves the
15405
+ slowest cadence — "calmest signal of life at the canvas's
15406
+ quietest corner". Tighter alpha range (0.85 ↔ 1, ~15%)
15407
+ matching R703 zoom-level — tabular/decorative surfaces
15408
+ shouldn't drift too far from full opacity.
15409
+
15410
+ Hover gate via CSS:
15411
+ [data-topo-brand-watermark-recede="true"] { animation: none }
15412
+ When user hovers a node/edge/group on the canvas, the
15413
+ wrapper's focal-recede (R525) drops opacity attr to 0.7;
15414
+ CSS animation gate-off lets that attr take effect cleanly,
15415
+ no breath underneath. Pattern sibling to R703 zoom-level
15416
+ data-attr selector gate. prefers-reduced-motion: reduce
15417
+ also neutralizes, joining the R699/R702/R703 a11y guard
15418
+ family.
15419
+
15420
+ Rolodex (11 anchors now, 9-tier ladder):
15421
+ 3 s row hot · 4 s hub idle · 5 s brand logo
15422
+ 6 s watermark text · 6 s kicker · 7 s crescent
15423
+ 8 s recent title · 8 s legend title
15424
+ 9 s zoom-level readout
15425
+ 10 s H2
15426
+ 15 s watermark wrapper envelope ← this round
15427
+
15428
+ data-topo-brand-watermark-envelope-breath attr surfaces
15429
+ the cadence for tests. */}
15393
15430
  <g
15394
15431
  opacity={(hoveredAlias || hoveredEdgeKey || hoveredGroupLabel ||
15395
15432
  hoveredStatus || hoveredVendor) && !hoveredHub ? 0.7 : 1}
15433
+ className="anet-topo-brand-watermark-envelope-breath"
15396
15434
  data-topo-brand-watermark-wrapper
15397
15435
  data-topo-brand-watermark-recede={
15398
15436
  (hoveredAlias || hoveredEdgeKey || hoveredGroupLabel ||
15399
15437
  hoveredStatus || hoveredVendor) && !hoveredHub ? 'true' : 'false'
15400
15438
  }
15439
+ data-topo-brand-watermark-envelope-breath="15s"
15401
15440
  style={{ pointerEvents: 'none', transition: 'opacity 300ms ease-out' }}
15402
15441
  >
15403
15442
  <text
@@ -15476,11 +15515,53 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
15476
15515
  shifts elsewhere.
15477
15516
  data-topo-brand-canvas-mark-recede attr exposes the
15478
15517
  gate state for tests. */}
15518
+ {/* Round 705 / Loop — canvas crescent moon wrapper joins R704
15519
+ nested-envelope respiration pattern, closing the canvas-
15520
+ brand-pair envelope symmetry. Pattern mirror:
15521
+ R704 watermark wrapper envelope 15 s (sibling)
15522
+ R705 crescent wrapper envelope 13 s (this round)
15523
+ Two cadences coprime (13 and 15) — never beat together
15524
+ when both visible. Coprime selection is the canvas-brand-
15525
+ pair version of the "panel-pair both at 8 s parity" choice
15526
+ (R700/R701): there the two pair members share cadence
15527
+ because they're typographic twins; here the two are
15528
+ visually distinct (text vs glyph) so coprime gives them
15529
+ independent voices.
15530
+
15531
+ Multiplicative chain (when visible + not recede):
15532
+ outer (CSS animation, 13 s): opacity 0.30 ↔ 0.35
15533
+ inner (SVG animate, 7 s): fill-opacity 0.8 ↔ 1.0
15534
+ effective range: 0.24 ↔ 0.35
15535
+ Pre-R705 outer was static 0.35 → 0.28 ↔ 0.35 range.
15536
+ Post-R705 the outer ALSO breathes → slightly wider 0.24 ↔
15537
+ 0.35 range. Nested respiration on the crescent now matches
15538
+ the R704 watermark nested respiration.
15539
+
15540
+ Alpha range deliberately HUGS the existing 0.35 baseline
15541
+ (0.30 ↔ 0.35, ~14% range) — to NOT clobber the wrapper's
15542
+ composed opacity math. Animation overrides inline opacity
15543
+ when running, so the alpha tracks the existing visible
15544
+ baseline. When the visibility or recede gates flip
15545
+ (data-attr "false" or "true"), CSS animation: none
15546
+ releases control back to the inline opacity attr (0 when
15547
+ invisible, 0.245 when recede). Same gate strategy as R704.
15548
+
15549
+ Rolodex (12 anchors, 10-tier ladder):
15550
+ 3 s row hot · 4 s hub idle · 5 s brand logo
15551
+ 6 s watermark text · 6 s kicker · 7 s crescent inner
15552
+ 8 s recent title · 8 s legend title
15553
+ 9 s zoom-level readout · 10 s H2
15554
+ 13 s crescent wrapper envelope ← this round
15555
+ 15 s watermark wrapper envelope
15556
+
15557
+ data-topo-brand-canvas-mark-envelope-breath attr surfaces
15558
+ the cadence for tests. */}
15479
15559
  <g
15480
15560
  opacity={(flowLinks.length === 0 ? 0.35 : 0) * (
15481
15561
  (hoveredAlias || hoveredEdgeKey || hoveredGroupLabel ||
15482
15562
  hoveredStatus || hoveredVendor) && !hoveredHub ? 0.7 : 1
15483
15563
  )}
15564
+ className="anet-topo-brand-canvas-mark-envelope-breath"
15484
15565
  data-topo-brand-canvas-mark
15485
15566
  data-topo-brand-canvas-mark-visible={flowLinks.length === 0 ? 'true' : 'false'}
15486
15567
  data-topo-brand-canvas-mark-recede={
@@ -15488,6 +15569,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
15488
15569
  hoveredStatus || hoveredVendor) && !hoveredHub ? 'true' : 'false'
15489
15570
  }
15490
15571
  data-topo-brand-canvas-mark-breath={reducedMotion ? 'false' : 'true'}
15572
+ data-topo-brand-canvas-mark-envelope-breath="13s"
15491
15573
  style={{ pointerEvents: 'none', transition: 'opacity 300ms ease-out, fill 200ms ease-out' }}
15492
15574
  >
15493
15575
  <defs>
package/app/globals.css CHANGED
@@ -1337,6 +1337,64 @@ body {
1337
1337
  .anet-topo-chrome-zoom-level-breath { animation: none; }
1338
1338
  }
1339
1339
 
1340
+ /* Round 704 — brand watermark WRAPPER envelope breath at 15 s — slowest
1341
+ tier in the respiratory rolodex. Inner "sleep2agi" text already
1342
+ breathes at 6 s (R519); this adds an outer wrapper envelope so the
1343
+ brand area has nested respiration (fast inner / slow outer). 0.85 ↔ 1
1344
+ alpha range (~15%) matches the R703 tabular/decorative surface band
1345
+ — heavy visual register shouldn't drift too far from full opacity.
1346
+
1347
+ Focal-recede gate via data-attr selector — when the wrapper's
1348
+ data-topo-brand-watermark-recede attr flips to "true" (user is
1349
+ hovering a node/edge/group on the canvas), animation: none gates
1350
+ off so the R525 inline opacity={0.7} attr takes effect cleanly.
1351
+ Pattern sibling to R703 zoom-level data-attr selector gate.
1352
+ prefers-reduced-motion: reduce also neutralizes. */
1353
+ @keyframes anet-topo-brand-watermark-envelope-breath-kf {
1354
+ 0%, 100% { opacity: 1; }
1355
+ 50% { opacity: 0.85; }
1356
+ }
1357
+ .anet-topo-brand-watermark-envelope-breath {
1358
+ animation: anet-topo-brand-watermark-envelope-breath-kf 15s ease-in-out infinite;
1359
+ }
1360
+ .anet-topo-brand-watermark-envelope-breath[data-topo-brand-watermark-recede="true"] {
1361
+ animation: none;
1362
+ }
1363
+ @media (prefers-reduced-motion: reduce) {
1364
+ .anet-topo-brand-watermark-envelope-breath { animation: none; }
1365
+ }
1366
+
1367
+ /* Round 705 — canvas crescent wrapper envelope breath at 13 s. Mirror
1368
+ to R704 watermark wrapper, closing canvas-brand-pair envelope
1369
+ symmetry. Cadence 13 s coprime with R704 (15 s) so the two never
1370
+ beat together when both visible. Tighter alpha range (0.30 ↔ 0.35,
1371
+ ~14%) deliberately hugs the existing inline 0.35 baseline — preserves
1372
+ the visible-state intent while adding nested respiration.
1373
+
1374
+ Two gate-off rules instead of one (R704 had a single recede gate):
1375
+ - visible="false" → animation: none, so inline opacity={0} holds when
1376
+ the recent panel is shown (crescent must be invisible).
1377
+ - recede="true" → animation: none, so inline opacity={0.245} holds
1378
+ when canvas attention is elsewhere.
1379
+ Either gate flips → CSS releases control to inline opacity attr.
1380
+ prefers-reduced-motion: reduce also neutralizes. */
1381
+ @keyframes anet-topo-brand-canvas-mark-envelope-breath-kf {
1382
+ 0%, 100% { opacity: 0.35; }
1383
+ 50% { opacity: 0.30; }
1384
+ }
1385
+ .anet-topo-brand-canvas-mark-envelope-breath {
1386
+ animation: anet-topo-brand-canvas-mark-envelope-breath-kf 13s ease-in-out infinite;
1387
+ }
1388
+ .anet-topo-brand-canvas-mark-envelope-breath[data-topo-brand-canvas-mark-visible="false"] {
1389
+ animation: none;
1390
+ }
1391
+ .anet-topo-brand-canvas-mark-envelope-breath[data-topo-brand-canvas-mark-recede="true"] {
1392
+ animation: none;
1393
+ }
1394
+ @media (prefers-reduced-motion: reduce) {
1395
+ .anet-topo-brand-canvas-mark-envelope-breath { animation: none; }
1396
+ }
1397
+
1340
1398
  /* ─────────────────────────────────────────────────────────────────────
1341
1399
  Round 29 — prefers-reduced-motion a11y sweep
1342
1400
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.5.3-preview.217",
3
+ "version": "0.5.3-preview.219",
4
4
  "description": "Agent Network Dashboard \u2014 Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,103 @@
1
+ /* Round 705 — canvas crescent moon wrapper envelope breath at 13s.
2
+ * Mirror to R704 watermark wrapper (15s), closing canvas-brand-pair
3
+ * envelope symmetry. Two coprime cadences (13 + 15) for independent
4
+ * voices. Tighter alpha range (0.30 ↔ 0.35) hugs the existing inline
5
+ * baseline.
6
+ *
7
+ * Source assertions:
8
+ * - TopoGraph.tsx crescent <g> has className + data-topo-brand-canvas-mark-envelope-breath
9
+ * - globals.css @keyframes + .class + 2 gate rules + reduced-motion guard
10
+ *
11
+ * Runtime assertions:
12
+ * - crescent visible (no flowLinks, default test scaffold)
13
+ * - data-topo-brand-canvas-mark-visible='true'
14
+ * - data-topo-brand-canvas-mark-envelope-breath='13s'
15
+ * - computed animation-name + duration 13s + iter infinite
16
+ */
17
+ import { chromium } from 'playwright';
18
+ import { readFileSync } from 'node:fs';
19
+
20
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
21
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
22
+
23
+ const browser = await chromium.launch({ headless: true });
24
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
25
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
26
+ await ctx.addInitScript(() => {
27
+ try {
28
+ localStorage.setItem('anet-theme', 'cyber');
29
+ localStorage.setItem('anet-topo-layout', 'ring');
30
+ sessionStorage.setItem('anet_v3_auth', '1');
31
+ } catch {}
32
+ });
33
+ await ctx.route('**/api/hub/status*', async (route) => {
34
+ const r = await route.fetch();
35
+ const b = await r.json();
36
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
37
+ const mk = (alias) => ({
38
+ alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
39
+ network_id: nid, project_dir: null,
40
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
41
+ });
42
+ await route.fulfill({ response: r, json: { ...b, sessions: [mk('a·1'), mk('a·2')] } });
43
+ });
44
+ // No messages → flowLinks.length === 0 → crescent visible
45
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
46
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
47
+ const page = await ctx.newPage();
48
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
49
+ await page.waitForSelector('[data-topo-brand-canvas-mark]', { timeout: 15000, state: 'attached' });
50
+ await page.waitForTimeout(300);
51
+
52
+ const runtimeState = await page.evaluate(() => {
53
+ const g = document.querySelector('[data-topo-brand-canvas-mark]');
54
+ if (!g) return null;
55
+ const cs = getComputedStyle(g);
56
+ return {
57
+ has_class: g.classList.contains('anet-topo-brand-canvas-mark-envelope-breath'),
58
+ breath_attr: g.getAttribute('data-topo-brand-canvas-mark-envelope-breath'),
59
+ visible_attr: g.getAttribute('data-topo-brand-canvas-mark-visible'),
60
+ recede_attr: g.getAttribute('data-topo-brand-canvas-mark-recede'),
61
+ anim_name: cs.animationName,
62
+ anim_duration: cs.animationDuration,
63
+ anim_iter: cs.animationIterationCount,
64
+ };
65
+ });
66
+
67
+ await browser.close();
68
+
69
+ const cssSrc = readFileSync('/home/vansin/agent-network-dashboard/app/globals.css', 'utf8');
70
+ const tsxSrc = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
71
+
72
+ const cssKeyframes = /@keyframes anet-topo-brand-canvas-mark-envelope-breath-kf\s*\{[\s\S]*?0%, 100%\s*\{\s*opacity:\s*0\.35;\s*\}[\s\S]*?50%\s*\{\s*opacity:\s*0\.30;/.test(cssSrc);
73
+ const cssRule = /\.anet-topo-brand-canvas-mark-envelope-breath\s*\{[\s\S]*?animation:\s*anet-topo-brand-canvas-mark-envelope-breath-kf\s+13s\s+ease-in-out\s+infinite/.test(cssSrc);
74
+ const cssVisibleGate = /\.anet-topo-brand-canvas-mark-envelope-breath\[data-topo-brand-canvas-mark-visible="false"\]\s*\{\s*animation:\s*none/.test(cssSrc);
75
+ const cssRecedeGate = /\.anet-topo-brand-canvas-mark-envelope-breath\[data-topo-brand-canvas-mark-recede="true"\]\s*\{\s*animation:\s*none/.test(cssSrc);
76
+ const cssReducedMotion = /prefers-reduced-motion:\s*reduce\s*\)\s*\{\s*\.anet-topo-brand-canvas-mark-envelope-breath\s*\{\s*animation:\s*none/.test(cssSrc);
77
+ const tsxClass = /className="anet-topo-brand-canvas-mark-envelope-breath"/.test(tsxSrc);
78
+ const tsxAttr = /data-topo-brand-canvas-mark-envelope-breath="13s"/.test(tsxSrc);
79
+
80
+ const runtimeAnim = runtimeState?.anim_name === 'anet-topo-brand-canvas-mark-envelope-breath-kf' || runtimeState?.anim_name === 'none';
81
+ const runtimeDuration = runtimeState?.anim_duration === '13s' || runtimeState?.anim_name === 'none';
82
+
83
+ const results = {
84
+ wrapper_present: !!runtimeState,
85
+ has_breath_class: runtimeState?.has_class === true,
86
+ breath_attr_13s: runtimeState?.breath_attr === '13s',
87
+ visible_at_rest: runtimeState?.visible_attr === 'true',
88
+ rest_not_recede: runtimeState?.recede_attr === 'false',
89
+ runtime_anim_ok: runtimeAnim,
90
+ runtime_duration_ok: runtimeDuration,
91
+ css_keyframes: cssKeyframes,
92
+ css_rule: cssRule,
93
+ css_visible_gate: cssVisibleGate,
94
+ css_recede_gate: cssRecedeGate,
95
+ css_reduced_motion: cssReducedMotion,
96
+ tsx_class: tsxClass,
97
+ tsx_breath_attr: tsxAttr,
98
+ };
99
+ const ok = Object.values(results).every(Boolean);
100
+ console.log(`${ok ? '✅' : '❌'} R705 crescent wrapper envelope breath (13s, canvas-brand-pair envelope symmetry closed):`,
101
+ JSON.stringify(results, null, 2),
102
+ `\n runtime: ${JSON.stringify(runtimeState)}`);
103
+ process.exit(ok ? 0 : 1);
@@ -0,0 +1,88 @@
1
+ /* Round 704 — brand watermark wrapper envelope breath at 15s. Slowest
2
+ * tier in respiratory rolodex. Nested respiration: inner "sleep2agi"
3
+ * text breathes at 6s (R519); this wrapper envelope at 15s creates
4
+ * fast-inner / slow-outer layered effect. Focal-recede gate via
5
+ * [data-topo-brand-watermark-recede="true"] → animation: none.
6
+ */
7
+ import { chromium } from 'playwright';
8
+ import { readFileSync } from 'node:fs';
9
+
10
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
11
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
12
+
13
+ const browser = await chromium.launch({ headless: true });
14
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
15
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
16
+ await ctx.addInitScript(() => {
17
+ try {
18
+ localStorage.setItem('anet-theme', 'cyber');
19
+ localStorage.setItem('anet-topo-layout', 'ring');
20
+ sessionStorage.setItem('anet_v3_auth', '1');
21
+ } catch {}
22
+ });
23
+ await ctx.route('**/api/hub/status*', async (route) => {
24
+ const r = await route.fetch();
25
+ const b = await r.json();
26
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
27
+ const mk = (alias) => ({
28
+ alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
29
+ network_id: nid, project_dir: null,
30
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
31
+ });
32
+ await route.fulfill({ response: r, json: { ...b, sessions: [mk('a·1'), mk('a·2')] } });
33
+ });
34
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
35
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
36
+ const page = await ctx.newPage();
37
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
38
+ await page.waitForSelector('[data-topo-brand-watermark-wrapper]', { timeout: 15000, state: 'attached' });
39
+ await page.waitForTimeout(300);
40
+
41
+ const runtimeState = await page.evaluate(() => {
42
+ const g = document.querySelector('[data-topo-brand-watermark-wrapper]');
43
+ if (!g) return null;
44
+ const cs = getComputedStyle(g);
45
+ return {
46
+ has_class: g.classList.contains('anet-topo-brand-watermark-envelope-breath'),
47
+ breath_attr: g.getAttribute('data-topo-brand-watermark-envelope-breath'),
48
+ recede_attr: g.getAttribute('data-topo-brand-watermark-recede'),
49
+ anim_name: cs.animationName,
50
+ anim_duration: cs.animationDuration,
51
+ anim_iter: cs.animationIterationCount,
52
+ };
53
+ });
54
+
55
+ await browser.close();
56
+
57
+ const cssSrc = readFileSync('/home/vansin/agent-network-dashboard/app/globals.css', 'utf8');
58
+ const tsxSrc = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
59
+
60
+ const cssKeyframes = /@keyframes anet-topo-brand-watermark-envelope-breath-kf\s*\{[\s\S]*?0%, 100%\s*\{\s*opacity:\s*1;\s*\}[\s\S]*?50%\s*\{\s*opacity:\s*0\.85;/.test(cssSrc);
61
+ const cssRule = /\.anet-topo-brand-watermark-envelope-breath\s*\{[\s\S]*?animation:\s*anet-topo-brand-watermark-envelope-breath-kf\s+15s\s+ease-in-out\s+infinite/.test(cssSrc);
62
+ const cssRecedeGate = /\.anet-topo-brand-watermark-envelope-breath\[data-topo-brand-watermark-recede="true"\]\s*\{\s*animation:\s*none/.test(cssSrc);
63
+ const cssReducedMotion = /prefers-reduced-motion:\s*reduce\s*\)\s*\{\s*\.anet-topo-brand-watermark-envelope-breath\s*\{\s*animation:\s*none/.test(cssSrc);
64
+ const tsxClass = /className="anet-topo-brand-watermark-envelope-breath"/.test(tsxSrc);
65
+ const tsxAttr = /data-topo-brand-watermark-envelope-breath="15s"/.test(tsxSrc);
66
+
67
+ const runtimeAnim = runtimeState?.anim_name === 'anet-topo-brand-watermark-envelope-breath-kf' || runtimeState?.anim_name === 'none';
68
+ const runtimeDuration = runtimeState?.anim_duration === '15s' || runtimeState?.anim_name === 'none';
69
+
70
+ const results = {
71
+ wrapper_present: !!runtimeState,
72
+ has_breath_class: runtimeState?.has_class === true,
73
+ breath_attr_15s: runtimeState?.breath_attr === '15s',
74
+ rest_not_recede: runtimeState?.recede_attr === 'false',
75
+ runtime_anim_ok: runtimeAnim,
76
+ runtime_duration_ok: runtimeDuration,
77
+ css_keyframes: cssKeyframes,
78
+ css_rule: cssRule,
79
+ css_recede_gate: cssRecedeGate,
80
+ css_reduced_motion: cssReducedMotion,
81
+ tsx_class: tsxClass,
82
+ tsx_breath_attr: tsxAttr,
83
+ };
84
+ const ok = Object.values(results).every(Boolean);
85
+ console.log(`${ok ? '✅' : '❌'} R704 brand watermark wrapper envelope breath (15s, recede-gated — slowest tier):`,
86
+ JSON.stringify(results, null, 2),
87
+ `\n runtime: ${JSON.stringify(runtimeState)}`);
88
+ process.exit(ok ? 0 : 1);