@sleep2agi/agent-network-dashboard 0.6.3-preview.21 → 0.6.3-preview.23

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 (232) 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 +26 -26
  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/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/_not-found.html +2 -2
  15. package/.next/server/app/_not-found.rsc +2 -2
  16. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/admin.html +2 -2
  24. package/.next/server/app/admin.rsc +3 -3
  25. package/.next/server/app/admin.segments/_full.segment.rsc +3 -3
  26. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  27. package/.next/server/app/admin.segments/_index.segment.rsc +2 -2
  28. package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  29. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +2 -2
  30. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  31. package/.next/server/app/index.html +2 -2
  32. package/.next/server/app/index.rsc +3 -3
  33. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  34. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  35. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  36. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  37. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  38. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/login.html +2 -2
  40. package/.next/server/app/login.rsc +3 -3
  41. package/.next/server/app/login.segments/_full.segment.rsc +3 -3
  42. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  43. package/.next/server/app/login.segments/_index.segment.rsc +2 -2
  44. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  45. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  46. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  47. package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  48. package/.next/server/app/logs.html +2 -2
  49. package/.next/server/app/logs.rsc +3 -3
  50. package/.next/server/app/logs.segments/_full.segment.rsc +3 -3
  51. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  52. package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
  53. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  54. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +2 -2
  55. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  56. package/.next/server/app/messages/page.js.nft.json +1 -1
  57. package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/messages.html +2 -2
  59. package/.next/server/app/messages.rsc +3 -3
  60. package/.next/server/app/messages.segments/_full.segment.rsc +3 -3
  61. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  62. package/.next/server/app/messages.segments/_index.segment.rsc +2 -2
  63. package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
  64. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +2 -2
  65. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  66. package/.next/server/app/node/page.js.nft.json +1 -1
  67. package/.next/server/app/node/page_client-reference-manifest.js +1 -1
  68. package/.next/server/app/node.html +2 -2
  69. package/.next/server/app/node.rsc +3 -3
  70. package/.next/server/app/node.segments/_full.segment.rsc +3 -3
  71. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  72. package/.next/server/app/node.segments/_index.segment.rsc +2 -2
  73. package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
  74. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +2 -2
  75. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  76. package/.next/server/app/nodes/page.js.nft.json +1 -1
  77. package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
  78. package/.next/server/app/nodes.html +2 -2
  79. package/.next/server/app/nodes.rsc +3 -3
  80. package/.next/server/app/nodes.segments/_full.segment.rsc +3 -3
  81. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  82. package/.next/server/app/nodes.segments/_index.segment.rsc +2 -2
  83. package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
  84. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +2 -2
  85. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  86. package/.next/server/app/page.js.nft.json +1 -1
  87. package/.next/server/app/page_client-reference-manifest.js +1 -1
  88. package/.next/server/app/providers/page_client-reference-manifest.js +1 -1
  89. package/.next/server/app/providers.html +2 -2
  90. package/.next/server/app/providers.rsc +2 -2
  91. package/.next/server/app/providers.segments/_full.segment.rsc +2 -2
  92. package/.next/server/app/providers.segments/_head.segment.rsc +1 -1
  93. package/.next/server/app/providers.segments/_index.segment.rsc +2 -2
  94. package/.next/server/app/providers.segments/_tree.segment.rsc +2 -2
  95. package/.next/server/app/providers.segments/providers/__PAGE__.segment.rsc +1 -1
  96. package/.next/server/app/providers.segments/providers.segment.rsc +1 -1
  97. package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
  98. package/.next/server/app/server-logs.html +2 -2
  99. package/.next/server/app/server-logs.rsc +2 -2
  100. package/.next/server/app/server-logs.segments/_full.segment.rsc +2 -2
  101. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  102. package/.next/server/app/server-logs.segments/_index.segment.rsc +2 -2
  103. package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
  104. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  105. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  106. package/.next/server/app/servers/page_client-reference-manifest.js +1 -1
  107. package/.next/server/app/servers.html +2 -2
  108. package/.next/server/app/servers.rsc +2 -2
  109. package/.next/server/app/servers.segments/_full.segment.rsc +2 -2
  110. package/.next/server/app/servers.segments/_head.segment.rsc +1 -1
  111. package/.next/server/app/servers.segments/_index.segment.rsc +2 -2
  112. package/.next/server/app/servers.segments/_tree.segment.rsc +2 -2
  113. package/.next/server/app/servers.segments/servers/__PAGE__.segment.rsc +1 -1
  114. package/.next/server/app/servers.segments/servers.segment.rsc +1 -1
  115. package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
  116. package/.next/server/app/settings/networks.html +2 -2
  117. package/.next/server/app/settings/networks.rsc +3 -3
  118. package/.next/server/app/settings/networks.segments/_full.segment.rsc +3 -3
  119. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  120. package/.next/server/app/settings/networks.segments/_index.segment.rsc +2 -2
  121. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
  122. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +2 -2
  123. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  124. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  125. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  126. package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
  127. package/.next/server/app/settings/tokens.html +2 -2
  128. package/.next/server/app/settings/tokens.rsc +2 -2
  129. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +2 -2
  130. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  131. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +2 -2
  132. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
  133. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  134. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  135. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  136. package/.next/server/app/settings.html +2 -2
  137. package/.next/server/app/settings.rsc +3 -3
  138. package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  139. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  140. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  141. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  142. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  143. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  144. package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  145. package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  146. package/.next/server/app/tasks.html +2 -2
  147. package/.next/server/app/tasks.rsc +3 -3
  148. package/.next/server/app/tasks.segments/_full.segment.rsc +3 -3
  149. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  150. package/.next/server/app/tasks.segments/_index.segment.rsc +2 -2
  151. package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
  152. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +2 -2
  153. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  154. package/.next/server/chunks/ssr/[root-of-the-server]__01ba829._.js +3 -0
  155. package/.next/server/chunks/ssr/[root-of-the-server]__01ba829._.js.map +1 -0
  156. package/.next/server/chunks/ssr/[root-of-the-server]__091su60._.js +2 -2
  157. package/.next/server/chunks/ssr/[root-of-the-server]__091su60._.js.map +1 -1
  158. package/.next/server/chunks/ssr/[root-of-the-server]__0nv_nrz._.js +3 -0
  159. package/.next/server/chunks/ssr/[root-of-the-server]__0nv_nrz._.js.map +1 -0
  160. package/.next/server/chunks/ssr/[root-of-the-server]__10ftc2m._.js +3 -0
  161. package/.next/server/chunks/ssr/[root-of-the-server]__10ftc2m._.js.map +1 -0
  162. package/.next/server/chunks/ssr/dash-loop-wt_0rh8p9o._.js +3 -3
  163. package/.next/server/chunks/ssr/dash-loop-wt_0rh8p9o._.js.map +1 -1
  164. package/.next/server/chunks/ssr/dash-loop-wt_app_0-ky8pi._.js +1 -1
  165. package/.next/server/chunks/ssr/dash-loop-wt_app_0-ky8pi._.js.map +1 -1
  166. package/.next/server/chunks/ssr/dash-loop-wt_app_0ax3klf._.js +1 -1
  167. package/.next/server/chunks/ssr/dash-loop-wt_app_0ax3klf._.js.map +1 -1
  168. package/.next/server/chunks/ssr/dash-loop-wt_app_0cxknnm._.js +1 -1
  169. package/.next/server/chunks/ssr/dash-loop-wt_app_0cxknnm._.js.map +1 -1
  170. package/.next/server/chunks/ssr/dash-loop-wt_app_0pcz05f._.js +1 -1
  171. package/.next/server/chunks/ssr/dash-loop-wt_app_0pcz05f._.js.map +1 -1
  172. package/.next/server/chunks/ssr/dash-loop-wt_app_0wd4n_v._.js +9 -0
  173. package/.next/server/chunks/ssr/dash-loop-wt_app_0wd4n_v._.js.map +1 -0
  174. package/.next/server/chunks/ssr/dash-loop-wt_app_0~.1~ew._.js +1 -1
  175. package/.next/server/chunks/ssr/dash-loop-wt_app_0~.1~ew._.js.map +1 -1
  176. package/.next/server/chunks/ssr/dash-loop-wt_app_13k3-ai._.js +1 -1
  177. package/.next/server/chunks/ssr/dash-loop-wt_app_13k3-ai._.js.map +1 -1
  178. package/.next/server/chunks/ssr/dash-loop-wt_app_nodes_page_tsx_0ma3oqt._.js +1 -1
  179. package/.next/server/chunks/ssr/dash-loop-wt_app_nodes_page_tsx_0ma3oqt._.js.map +1 -1
  180. package/.next/server/middleware-build-manifest.js +3 -3
  181. package/.next/server/pages/404.html +2 -2
  182. package/.next/server/pages/500.html +1 -1
  183. package/.next/server/server-reference-manifest.js +1 -1
  184. package/.next/server/server-reference-manifest.json +1 -1
  185. package/.next/static/chunks/0.324peadzie3.js +1 -0
  186. package/.next/static/chunks/03vplr5e8v~uy.js +1 -0
  187. package/.next/static/chunks/05srmv31apvro.css +1 -0
  188. package/.next/static/chunks/0cdo0a8-9gjs0.js +1 -0
  189. package/.next/static/chunks/0da-je9qrw1o6.js +1 -0
  190. package/.next/static/chunks/{0qjbzxfgcd6_3.js → 0dps36.3y7gza.js} +1 -1
  191. package/.next/static/chunks/0gb2ors2y4b9y.js +4 -0
  192. package/.next/static/chunks/0o10t1_.zj7i~.js +2 -0
  193. package/.next/static/chunks/0q5xir~9v-77t.js +1 -0
  194. package/.next/static/chunks/0s_xxm.p5vvcc.js +1 -0
  195. package/.next/static/chunks/0u-jpeh.fk9hi.js +7 -0
  196. package/.next/static/chunks/13ukzzga18_q8.js +1 -0
  197. package/.next/static/chunks/{0~kjngaphakh5.js → 16cel_wagxg29.js} +1 -1
  198. package/.next/static/chunks/17-dam4fv0tzs.js +4 -0
  199. package/.next/trace +2 -2
  200. package/.next/trace-build +1 -1
  201. package/app/components/AliasAvatar.tsx +31 -0
  202. package/app/components/NodeSettingsPanel.tsx +52 -0
  203. package/app/components/TaskChatPanel.tsx +12 -2
  204. package/app/lib/avatars.ts +79 -0
  205. package/app/lib/pinyin-match.ts +54 -0
  206. package/app/messages/page.tsx +10 -5
  207. package/app/nodes/page.tsx +5 -2
  208. package/app/page.tsx +8 -2
  209. package/package.json +3 -2
  210. package/public/avatars/manifest.json +3 -0
  211. package/.next/server/chunks/ssr/[root-of-the-server]__04nqr0~._.js +0 -3
  212. package/.next/server/chunks/ssr/[root-of-the-server]__04nqr0~._.js.map +0 -1
  213. package/.next/server/chunks/ssr/[root-of-the-server]__0rcs2vk._.js +0 -3
  214. package/.next/server/chunks/ssr/[root-of-the-server]__0rcs2vk._.js.map +0 -1
  215. package/.next/server/chunks/ssr/[root-of-the-server]__0vc.3k7._.js +0 -3
  216. package/.next/server/chunks/ssr/[root-of-the-server]__0vc.3k7._.js.map +0 -1
  217. package/.next/server/chunks/ssr/dash-loop-wt_app_0mxr2l9._.js +0 -9
  218. package/.next/server/chunks/ssr/dash-loop-wt_app_0mxr2l9._.js.map +0 -1
  219. package/.next/static/chunks/02-g_rv~6kywl.js +0 -4
  220. package/.next/static/chunks/02r4vb97r~-7r.js +0 -1
  221. package/.next/static/chunks/08medgd.1p151.js +0 -2
  222. package/.next/static/chunks/09-3btfwxmjfe.js +0 -1
  223. package/.next/static/chunks/09ju~nqgg3wpf.js +0 -4
  224. package/.next/static/chunks/0_gs9wrgf86-h.js +0 -7
  225. package/.next/static/chunks/0dq_d9k9asnws.js +0 -1
  226. package/.next/static/chunks/0usafm~4wag7t.js +0 -1
  227. package/.next/static/chunks/0wh6q.1qr0dmx.css +0 -1
  228. package/.next/static/chunks/0z52qau1ofv1z.js +0 -1
  229. package/.next/static/chunks/12jet.4d8djw0.js +0 -1
  230. /package/.next/static/{eAg58ZUqc0h75GPUsWy97 → n1mt2Eo3--_wlWCJ1fY86}/_buildManifest.js +0 -0
  231. /package/.next/static/{eAg58ZUqc0h75GPUsWy97 → n1mt2Eo3--_wlWCJ1fY86}/_clientMiddlewareManifest.js +0 -0
  232. /package/.next/static/{eAg58ZUqc0h75GPUsWy97 → n1mt2Eo3--_wlWCJ1fY86}/_ssgManifest.js +0 -0
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":339,"timestamp":5789591560443,"id":4,"parentId":1,"tags":{},"startTime":1784597563807,"traceId":"b251c169832d4fa7"},{"name":"load-custom-routes","duration":514,"timestamp":5789591560968,"id":5,"parentId":1,"tags":{},"startTime":1784597563807,"traceId":"b251c169832d4fa7"},{"name":"create-dist-dir","duration":959,"timestamp":5789591561549,"id":6,"parentId":1,"tags":{},"startTime":1784597563808,"traceId":"b251c169832d4fa7"},{"name":"clean","duration":43243,"timestamp":5789591563399,"id":7,"parentId":1,"tags":{},"startTime":1784597563810,"traceId":"b251c169832d4fa7"},{"name":"discover-routes","duration":11754,"timestamp":5789591710717,"id":8,"parentId":1,"tags":{},"startTime":1784597563957,"traceId":"b251c169832d4fa7"},{"name":"create-root-mapping","duration":119,"timestamp":5789591722536,"id":9,"parentId":1,"tags":{},"startTime":1784597563969,"traceId":"b251c169832d4fa7"},{"name":"generate-route-types","duration":35327,"timestamp":5789591725568,"id":10,"parentId":1,"tags":{},"startTime":1784597563972,"traceId":"b251c169832d4fa7"},{"name":"public-dir-conflict-check","duration":113,"timestamp":5789591761123,"id":11,"parentId":1,"tags":{},"startTime":1784597564007,"traceId":"b251c169832d4fa7"},{"name":"generate-routes-manifest","duration":5489,"timestamp":5789591761359,"id":12,"parentId":1,"tags":{},"startTime":1784597564008,"traceId":"b251c169832d4fa7"},{"name":"run-turbopack","duration":9852710,"timestamp":5789591773712,"id":14,"parentId":1,"tags":{},"startTime":1784597564020,"traceId":"b251c169832d4fa7"},{"name":"turbopack-build-events","duration":154,"timestamp":5789592137972,"id":15,"parentId":1,"tags":{},"startTime":1784597564384,"traceId":"b251c169832d4fa7"},{"name":"run-typescript","duration":14127474,"timestamp":5789601649359,"id":16,"parentId":1,"tags":{},"startTime":1784597573896,"traceId":"b251c169832d4fa7"},{"name":"generate-required-server-files","duration":3286,"timestamp":5789615778257,"id":18,"parentId":1,"tags":{},"startTime":1784597588025,"traceId":"b251c169832d4fa7"},{"name":"check-static-error-page","duration":19779,"timestamp":5789616025423,"id":20,"parentId":19,"tags":{},"startTime":1784597588272,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":561053,"timestamp":5789616048479,"id":75,"parentId":22,"tags":{},"startTime":1784597588295,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":581263,"timestamp":5789616028465,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1784597588275,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":671847,"timestamp":5789616048627,"id":76,"parentId":29,"tags":{},"startTime":1784597588295,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":686691,"timestamp":5789616033900,"id":29,"parentId":19,"tags":{"page":"/api/anet/providers/probe-results"},"startTime":1784597588280,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":694428,"timestamp":5789616049991,"id":82,"parentId":36,"tags":{},"startTime":1784597588296,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":708959,"timestamp":5789616035551,"id":36,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1784597588282,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":739990,"timestamp":5789616050101,"id":83,"parentId":37,"tags":{},"startTime":1784597588296,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":754498,"timestamp":5789616035687,"id":37,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1784597588282,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":770493,"timestamp":5789616050179,"id":84,"parentId":39,"tags":{},"startTime":1784597588296,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":783226,"timestamp":5789616037541,"id":39,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1784597588284,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":776738,"timestamp":5789616050215,"id":85,"parentId":40,"tags":{},"startTime":1784597588296,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":789653,"timestamp":5789616037635,"id":40,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1784597588284,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":783970,"timestamp":5789616050330,"id":86,"parentId":41,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":796691,"timestamp":5789616037695,"id":41,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1784597588284,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":792376,"timestamp":5789616050362,"id":87,"parentId":42,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":805073,"timestamp":5789616037750,"id":42,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1784597588284,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":802766,"timestamp":5789616050381,"id":88,"parentId":43,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":815445,"timestamp":5789616037801,"id":43,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1784597588284,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":804852,"timestamp":5789616050395,"id":89,"parentId":44,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":817451,"timestamp":5789616037861,"id":44,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1784597588284,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":810881,"timestamp":5789616050404,"id":90,"parentId":45,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":823438,"timestamp":5789616037912,"id":45,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1784597588284,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":816292,"timestamp":5789616050416,"id":91,"parentId":46,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":828800,"timestamp":5789616037977,"id":46,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1784597588284,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":820638,"timestamp":5789616049770,"id":81,"parentId":35,"tags":{},"startTime":1784597588296,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":835287,"timestamp":5789616035184,"id":35,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1784597588281,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":828376,"timestamp":5789616050429,"id":92,"parentId":48,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":840564,"timestamp":5789616038327,"id":48,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1784597588285,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":830139,"timestamp":5789616049425,"id":79,"parentId":33,"tags":{},"startTime":1784597588296,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":844646,"timestamp":5789616034972,"id":33,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1784597588281,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":830722,"timestamp":5789616050441,"id":93,"parentId":50,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":842396,"timestamp":5789616038829,"id":50,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1784597588285,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":834284,"timestamp":5789616050450,"id":94,"parentId":51,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":845858,"timestamp":5789616038936,"id":51,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1784597588285,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":844339,"timestamp":5789616050482,"id":97,"parentId":54,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":855772,"timestamp":5789616039161,"id":54,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1784597588285,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":844729,"timestamp":5789616050462,"id":95,"parentId":52,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":856211,"timestamp":5789616039019,"id":52,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1784597588285,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":844890,"timestamp":5789616050474,"id":96,"parentId":53,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":856286,"timestamp":5789616039105,"id":53,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1784597588285,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":846993,"timestamp":5789616050494,"id":98,"parentId":55,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":858311,"timestamp":5789616039240,"id":55,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1784597588286,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":851358,"timestamp":5789616050529,"id":101,"parentId":58,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":862541,"timestamp":5789616039401,"id":58,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1784597588286,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":857453,"timestamp":5789616050542,"id":102,"parentId":61,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":868212,"timestamp":5789616039875,"id":61,"parentId":19,"tags":{"page":"/manifest.webmanifest"},"startTime":1784597588286,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":851195,"timestamp":5789616063603,"id":103,"parentId":24,"tags":{},"startTime":1784597588310,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":885785,"timestamp":5789616029086,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1784597588275,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":853264,"timestamp":5789616067144,"id":104,"parentId":25,"tags":{},"startTime":1784597588313,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":888763,"timestamp":5789616031716,"id":25,"parentId":19,"tags":{"page":"/api/anet/host-supervisors"},"startTime":1784597588278,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":878453,"timestamp":5789616048852,"id":78,"parentId":32,"tags":{},"startTime":1784597588295,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":892522,"timestamp":5789616034848,"id":32,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1784597588281,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":895135,"timestamp":5789616050520,"id":100,"parentId":57,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":906685,"timestamp":5789616039346,"id":57,"parentId":19,"tags":{"page":"/api/hub/upload"},"startTime":1784597588286,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":876485,"timestamp":5789616069776,"id":105,"parentId":26,"tags":{},"startTime":1784597588316,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":914233,"timestamp":5789616032123,"id":26,"parentId":19,"tags":{"page":"/api/anet/node-config"},"startTime":1784597588278,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":895995,"timestamp":5789616050507,"id":99,"parentId":56,"tags":{},"startTime":1784597588297,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":907242,"timestamp":5789616039297,"id":56,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1784597588286,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":856624,"timestamp":5789616103240,"id":108,"parentId":31,"tags":{},"startTime":1784597588350,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":925512,"timestamp":5789616034439,"id":31,"parentId":19,"tags":{"page":"/api/anet/providers"},"startTime":1784597588281,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":881046,"timestamp":5789616079156,"id":107,"parentId":28,"tags":{},"startTime":1784597588325,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":926850,"timestamp":5789616033394,"id":28,"parentId":19,"tags":{"page":"/api/anet/node-lifecycle"},"startTime":1784597588280,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":864617,"timestamp":5789616105524,"id":110,"parentId":47,"tags":{},"startTime":1784597588352,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":932160,"timestamp":5789616038081,"id":47,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1784597588284,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":870685,"timestamp":5789616104605,"id":109,"parentId":38,"tags":{},"startTime":1784597588351,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":938137,"timestamp":5789616037245,"id":38,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1784597588284,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":840918,"timestamp":5789616135530,"id":111,"parentId":49,"tags":{},"startTime":1784597588382,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":938054,"timestamp":5789616038454,"id":49,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1784597588285,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":911199,"timestamp":5789616072433,"id":106,"parentId":27,"tags":{},"startTime":1784597588319,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":951165,"timestamp":5789616032557,"id":27,"parentId":19,"tags":{"page":"/api/anet/node-create"},"startTime":1784597588279,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":943962,"timestamp":5789616047998,"id":74,"parentId":21,"tags":{},"startTime":1784597588294,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":965047,"timestamp":5789616026990,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1784597588273,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":843108,"timestamp":5789616170248,"id":116,"parentId":63,"tags":{},"startTime":1784597588417,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":973250,"timestamp":5789616040179,"id":63,"parentId":19,"tags":{"page":"/node"},"startTime":1784597588286,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":865273,"timestamp":5789616170160,"id":112,"parentId":23,"tags":{},"startTime":1784597588416,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":1006738,"timestamp":5789616028782,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1784597588275,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":873390,"timestamp":5789616170211,"id":113,"parentId":59,"tags":{},"startTime":1784597588416,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":1004006,"timestamp":5789616039672,"id":59,"parentId":19,"tags":{"page":"/login"},"startTime":1784597588286,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":873667,"timestamp":5789616170225,"id":114,"parentId":60,"tags":{},"startTime":1784597588416,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":1004171,"timestamp":5789616039769,"id":60,"parentId":19,"tags":{"page":"/logs"},"startTime":1784597588286,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":875623,"timestamp":5789616170258,"id":117,"parentId":64,"tags":{},"startTime":1784597588417,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":1005564,"timestamp":5789616040368,"id":64,"parentId":19,"tags":{"page":"/nodes"},"startTime":1784597588287,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":876364,"timestamp":5789616170268,"id":118,"parentId":66,"tags":{},"startTime":1784597588417,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":1004402,"timestamp":5789616042282,"id":66,"parentId":19,"tags":{"page":"/providers"},"startTime":1784597588289,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":881499,"timestamp":5789616170280,"id":119,"parentId":67,"tags":{},"startTime":1784597588417,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":1009296,"timestamp":5789616042531,"id":67,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1784597588289,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":882007,"timestamp":5789616170290,"id":120,"parentId":68,"tags":{},"startTime":1784597588417,"traceId":"b251c169832d4fa7"}]
2
- [{"name":"check-page","duration":1009802,"timestamp":5789616042781,"id":68,"parentId":19,"tags":{"page":"/servers"},"startTime":1784597588289,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":893534,"timestamp":5789616170310,"id":122,"parentId":71,"tags":{},"startTime":1784597588417,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":1019975,"timestamp":5789616043941,"id":71,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1784597588290,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":893763,"timestamp":5789616170329,"id":124,"parentId":73,"tags":{},"startTime":1784597588417,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":1019621,"timestamp":5789616044508,"id":73,"parentId":19,"tags":{"page":"/tasks"},"startTime":1784597588291,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":898306,"timestamp":5789616170300,"id":121,"parentId":69,"tags":{},"startTime":1784597588417,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":1025729,"timestamp":5789616042934,"id":69,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1784597588289,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":898413,"timestamp":5789616170319,"id":123,"parentId":72,"tags":{},"startTime":1784597588417,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":1024590,"timestamp":5789616044163,"id":72,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1784597588290,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":903925,"timestamp":5789616170339,"id":125,"parentId":65,"tags":{},"startTime":1784597588417,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":1033697,"timestamp":5789616040758,"id":65,"parentId":19,"tags":{"page":"/"},"startTime":1784597588287,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":1029154,"timestamp":5789616049618,"id":80,"parentId":34,"tags":{},"startTime":1784597588296,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":1043751,"timestamp":5789616035091,"id":34,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1784597588281,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":858135,"timestamp":5789616220798,"id":126,"parentId":70,"tags":{},"startTime":1784597588467,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":1035680,"timestamp":5789616043278,"id":70,"parentId":19,"tags":{"page":"/settings"},"startTime":1784597588290,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":941740,"timestamp":5789616170237,"id":115,"parentId":62,"tags":{},"startTime":1784597588417,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":1072146,"timestamp":5789616039935,"id":62,"parentId":19,"tags":{"page":"/messages"},"startTime":1784597588286,"traceId":"b251c169832d4fa7"},{"name":"is-page-static","duration":1095678,"timestamp":5789616048743,"id":77,"parentId":30,"tags":{},"startTime":1784597588295,"traceId":"b251c169832d4fa7"},{"name":"check-page","duration":1110247,"timestamp":5789616034255,"id":30,"parentId":19,"tags":{"page":"/api/anet/providers/probe"},"startTime":1784597588281,"traceId":"b251c169832d4fa7"},{"name":"static-check","duration":1120306,"timestamp":5789616024249,"id":19,"parentId":1,"tags":{},"startTime":1784597588271,"traceId":"b251c169832d4fa7"},{"name":"write-routes-manifest","duration":597,"timestamp":5789617154363,"id":128,"parentId":1,"tags":{},"startTime":1784597589401,"traceId":"b251c169832d4fa7"},{"name":"load-dotenv","duration":52,"timestamp":5789617167506,"id":131,"parentId":130,"tags":{},"startTime":1784597589414,"traceId":"b251c169832d4fa7"},{"name":"run-export-path-map","duration":664,"timestamp":5789617170479,"id":132,"parentId":130,"tags":{},"startTime":1784597589417,"traceId":"b251c169832d4fa7"},{"name":"next-export","duration":886014,"timestamp":5789617166228,"id":130,"parentId":1,"tags":{},"startTime":1784597589413,"traceId":"b251c169832d4fa7"},{"name":"move-exported-app-not-found-","duration":767,"timestamp":5789618057975,"id":133,"parentId":129,"tags":{},"startTime":1784597590304,"traceId":"b251c169832d4fa7"},{"name":"move-exported-app-global-error-","duration":478,"timestamp":5789618058897,"id":134,"parentId":129,"tags":{},"startTime":1784597590305,"traceId":"b251c169832d4fa7"},{"name":"static-generation","duration":902272,"timestamp":5789617160198,"id":129,"parentId":1,"tags":{},"startTime":1784597589406,"traceId":"b251c169832d4fa7"},{"name":"write-routes-manifest","duration":622,"timestamp":5789618062791,"id":135,"parentId":1,"tags":{},"startTime":1784597590309,"traceId":"b251c169832d4fa7"},{"name":"print-tree-view","duration":4424,"timestamp":5789618077828,"id":136,"parentId":1,"tags":{},"startTime":1784597590324,"traceId":"b251c169832d4fa7"},{"name":"write-route-bundle-stats","duration":18533,"timestamp":5789618082293,"id":137,"parentId":1,"tags":{},"startTime":1784597590329,"traceId":"b251c169832d4fa7"},{"name":"telemetry-flush","duration":22856,"timestamp":5789618100865,"id":138,"parentId":1,"tags":{},"startTime":1784597590347,"traceId":"b251c169832d4fa7"},{"name":"next-build","duration":26636129,"timestamp":5789591487639,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1784597563734,"traceId":"b251c169832d4fa7"}]
1
+ [{"name":"generate-buildid","duration":369,"timestamp":5793107307162,"id":4,"parentId":1,"tags":{},"startTime":1784601079553,"traceId":"466ecd0140fea933"},{"name":"load-custom-routes","duration":549,"timestamp":5793107307730,"id":5,"parentId":1,"tags":{},"startTime":1784601079554,"traceId":"466ecd0140fea933"},{"name":"create-dist-dir","duration":916,"timestamp":5793107308330,"id":6,"parentId":1,"tags":{},"startTime":1784601079555,"traceId":"466ecd0140fea933"},{"name":"clean","duration":52752,"timestamp":5793107310565,"id":7,"parentId":1,"tags":{},"startTime":1784601079557,"traceId":"466ecd0140fea933"},{"name":"discover-routes","duration":31650,"timestamp":5793107476906,"id":8,"parentId":1,"tags":{},"startTime":1784601079723,"traceId":"466ecd0140fea933"},{"name":"create-root-mapping","duration":167,"timestamp":5793107508645,"id":9,"parentId":1,"tags":{},"startTime":1784601079755,"traceId":"466ecd0140fea933"},{"name":"generate-route-types","duration":24964,"timestamp":5793107512330,"id":10,"parentId":1,"tags":{},"startTime":1784601079759,"traceId":"466ecd0140fea933"},{"name":"public-dir-conflict-check","duration":139,"timestamp":5793107537518,"id":11,"parentId":1,"tags":{},"startTime":1784601079784,"traceId":"466ecd0140fea933"},{"name":"generate-routes-manifest","duration":5701,"timestamp":5793107537823,"id":12,"parentId":1,"tags":{},"startTime":1784601079784,"traceId":"466ecd0140fea933"},{"name":"run-turbopack","duration":10583953,"timestamp":5793107552440,"id":14,"parentId":1,"tags":{},"startTime":1784601079799,"traceId":"466ecd0140fea933"},{"name":"turbopack-build-events","duration":134,"timestamp":5793107938804,"id":15,"parentId":1,"tags":{},"startTime":1784601080185,"traceId":"466ecd0140fea933"},{"name":"run-typescript","duration":14329668,"timestamp":5793118149779,"id":16,"parentId":1,"tags":{},"startTime":1784601090396,"traceId":"466ecd0140fea933"},{"name":"generate-required-server-files","duration":3260,"timestamp":5793132483608,"id":18,"parentId":1,"tags":{},"startTime":1784601104730,"traceId":"466ecd0140fea933"},{"name":"check-static-error-page","duration":21593,"timestamp":5793132762606,"id":20,"parentId":19,"tags":{},"startTime":1784601105009,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":713089,"timestamp":5793132788862,"id":74,"parentId":21,"tags":{},"startTime":1784601105035,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":737880,"timestamp":5793132764280,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1784601105011,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":801097,"timestamp":5793132790513,"id":81,"parentId":35,"tags":{},"startTime":1784601105037,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":818054,"timestamp":5793132773639,"id":35,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1784601105020,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":821550,"timestamp":5793132790713,"id":82,"parentId":36,"tags":{},"startTime":1784601105037,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":838170,"timestamp":5793132774169,"id":36,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1784601105020,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":828338,"timestamp":5793132789865,"id":78,"parentId":32,"tags":{},"startTime":1784601105036,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":845051,"timestamp":5793132773229,"id":32,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1784601105020,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":827691,"timestamp":5793132790783,"id":83,"parentId":37,"tags":{},"startTime":1784601105037,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":844149,"timestamp":5793132774372,"id":37,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1784601105021,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":833256,"timestamp":5793132789484,"id":75,"parentId":22,"tags":{},"startTime":1784601105036,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":856858,"timestamp":5793132765979,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1784601105012,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":833358,"timestamp":5793132790910,"id":85,"parentId":40,"tags":{},"startTime":1784601105037,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":847454,"timestamp":5793132776869,"id":40,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1784601105023,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":839099,"timestamp":5793132791087,"id":87,"parentId":42,"tags":{},"startTime":1784601105037,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":853158,"timestamp":5793132777082,"id":42,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1784601105023,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":844380,"timestamp":5793132790179,"id":79,"parentId":33,"tags":{},"startTime":1784601105036,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":861225,"timestamp":5793132773396,"id":33,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1784601105020,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":844391,"timestamp":5793132791124,"id":88,"parentId":43,"tags":{},"startTime":1784601105037,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":858375,"timestamp":5793132777182,"id":43,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1784601105023,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":874782,"timestamp":5793132791152,"id":90,"parentId":45,"tags":{},"startTime":1784601105037,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":888665,"timestamp":5793132777364,"id":45,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1784601105024,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":882780,"timestamp":5793132791167,"id":91,"parentId":46,"tags":{},"startTime":1784601105037,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":896562,"timestamp":5793132777480,"id":46,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1784601105024,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":891365,"timestamp":5793132791141,"id":89,"parentId":44,"tags":{},"startTime":1784601105037,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":905299,"timestamp":5793132777280,"id":44,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1784601105024,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":895758,"timestamp":5793132791183,"id":92,"parentId":48,"tags":{},"startTime":1784601105047,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":909033,"timestamp":5793132778020,"id":48,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1784601105024,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":901576,"timestamp":5793132790873,"id":84,"parentId":39,"tags":{},"startTime":1784601105037,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":915783,"timestamp":5793132776742,"id":39,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1784601105023,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":892039,"timestamp":5793132801223,"id":94,"parentId":51,"tags":{},"startTime":1784601105047,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":914637,"timestamp":5793132778687,"id":51,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1784601105025,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":897845,"timestamp":5793132801259,"id":96,"parentId":53,"tags":{},"startTime":1784601105048,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":920285,"timestamp":5793132778906,"id":53,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1784601105025,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":902347,"timestamp":5793132801276,"id":97,"parentId":54,"tags":{},"startTime":1784601105048,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":924717,"timestamp":5793132778968,"id":54,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1784601105025,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":914998,"timestamp":5793132801291,"id":98,"parentId":55,"tags":{},"startTime":1784601105048,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":937247,"timestamp":5793132779106,"id":55,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1784601105025,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":921816,"timestamp":5793132801303,"id":99,"parentId":56,"tags":{},"startTime":1784601105048,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":944017,"timestamp":5793132779174,"id":56,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1784601105025,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":922181,"timestamp":5793132801208,"id":93,"parentId":50,"tags":{},"startTime":1784601105047,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":944879,"timestamp":5793132778553,"id":50,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1784601105025,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":952514,"timestamp":5793132789750,"id":77,"parentId":30,"tags":{},"startTime":1784601105036,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":971021,"timestamp":5793132771330,"id":30,"parentId":19,"tags":{"page":"/api/anet/providers/probe"},"startTime":1784601105018,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":954334,"timestamp":5793132801246,"id":95,"parentId":52,"tags":{},"startTime":1784601105048,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":976856,"timestamp":5793132778801,"id":52,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1784601105025,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":962130,"timestamp":5793132801323,"id":101,"parentId":58,"tags":{},"startTime":1784601105048,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":984227,"timestamp":5793132779301,"id":58,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1784601105026,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":962372,"timestamp":5793132801315,"id":100,"parentId":57,"tags":{},"startTime":1784601105048,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":984480,"timestamp":5793132779240,"id":57,"parentId":19,"tags":{"page":"/api/hub/upload"},"startTime":1784601105026,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":962508,"timestamp":5793132801335,"id":102,"parentId":61,"tags":{},"startTime":1784601105048,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":984095,"timestamp":5793132779776,"id":61,"parentId":19,"tags":{"page":"/manifest.webmanifest"},"startTime":1784601105026,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":954170,"timestamp":5793132819588,"id":104,"parentId":25,"tags":{},"startTime":1784601105066,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1004379,"timestamp":5793132769443,"id":25,"parentId":19,"tags":{"page":"/api/anet/host-supervisors"},"startTime":1784601105016,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":955012,"timestamp":5793132822172,"id":105,"parentId":27,"tags":{},"startTime":1784601105068,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1006924,"timestamp":5793132770328,"id":27,"parentId":19,"tags":{"page":"/api/anet/node-create"},"startTime":1784601105017,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":948469,"timestamp":5793132831130,"id":107,"parentId":28,"tags":{},"startTime":1784601105077,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1009029,"timestamp":5793132770710,"id":28,"parentId":19,"tags":{"page":"/api/anet/node-lifecycle"},"startTime":1784601105017,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":965225,"timestamp":5793132814701,"id":103,"parentId":24,"tags":{},"startTime":1784601105061,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1013358,"timestamp":5793132766606,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1784601105013,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":942249,"timestamp":5793132853523,"id":109,"parentId":38,"tags":{},"startTime":1784601105100,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1019539,"timestamp":5793132776309,"id":38,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1784601105023,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":955781,"timestamp":5793132840266,"id":108,"parentId":31,"tags":{},"startTime":1784601105087,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1024569,"timestamp":5793132771518,"id":31,"parentId":19,"tags":{"page":"/api/anet/providers"},"startTime":1784601105018,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":941581,"timestamp":5793132854647,"id":110,"parentId":47,"tags":{},"startTime":1784601105101,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1018590,"timestamp":5793132777697,"id":47,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1784601105024,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":945111,"timestamp":5793132857577,"id":111,"parentId":49,"tags":{},"startTime":1784601105104,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1024591,"timestamp":5793132778163,"id":49,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1784601105024,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":898170,"timestamp":5793132918956,"id":112,"parentId":23,"tags":{},"startTime":1784601105165,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1050896,"timestamp":5793132766328,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1784601105013,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":998437,"timestamp":5793132825693,"id":106,"parentId":26,"tags":{},"startTime":1784601105072,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1054334,"timestamp":5793132769866,"id":26,"parentId":19,"tags":{"page":"/api/anet/node-config"},"startTime":1784601105016,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":910388,"timestamp":5793132919065,"id":115,"parentId":62,"tags":{},"startTime":1784601105165,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1049679,"timestamp":5793132779837,"id":62,"parentId":19,"tags":{"page":"/messages"},"startTime":1784601105026,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":925264,"timestamp":5793132919098,"id":117,"parentId":64,"tags":{},"startTime":1784601105165,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1064234,"timestamp":5793132780202,"id":64,"parentId":19,"tags":{"page":"/nodes"},"startTime":1784601105026,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":935781,"timestamp":5793132919112,"id":118,"parentId":66,"tags":{},"startTime":1784601105165,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1073245,"timestamp":5793132781718,"id":66,"parentId":19,"tags":{"page":"/providers"},"startTime":1784601105028,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":1076640,"timestamp":5793132789627,"id":76,"parentId":29,"tags":{},"startTime":1784601105036,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1095220,"timestamp":5793132771119,"id":29,"parentId":19,"tags":{"page":"/api/anet/providers/probe-results"},"startTime":1784601105017,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":959230,"timestamp":5793132919124,"id":119,"parentId":67,"tags":{},"startTime":1784601105165,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1096447,"timestamp":5793132781984,"id":67,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1784601105028,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":959552,"timestamp":5793132919035,"id":113,"parentId":59,"tags":{},"startTime":1784601105165,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1099041,"timestamp":5793132779574,"id":59,"parentId":19,"tags":{"page":"/login"},"startTime":1784601105026,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":970635,"timestamp":5793132919153,"id":121,"parentId":69,"tags":{},"startTime":1784601105165,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1107426,"timestamp":5793132782434,"id":69,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1784601105029,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":975593,"timestamp":5793132919164,"id":122,"parentId":71,"tags":{},"startTime":1784601105165,"traceId":"466ecd0140fea933"}]
2
+ [{"name":"check-page","duration":1113817,"timestamp":5793132783224,"id":71,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1784601105029,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":997917,"timestamp":5793132919190,"id":124,"parentId":73,"tags":{},"startTime":1784601105165,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1133427,"timestamp":5793132783767,"id":73,"parentId":19,"tags":{"page":"/tasks"},"startTime":1784601105030,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":998248,"timestamp":5793132919177,"id":123,"parentId":72,"tags":{},"startTime":1784601105165,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1134055,"timestamp":5793132783416,"id":72,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1784601105030,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":1006384,"timestamp":5793132919202,"id":125,"parentId":65,"tags":{},"startTime":1784601105165,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1145276,"timestamp":5793132780376,"id":65,"parentId":19,"tags":{"page":"/"},"startTime":1784601105027,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":1011491,"timestamp":5793132919214,"id":126,"parentId":70,"tags":{},"startTime":1784601105165,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1148122,"timestamp":5793132782652,"id":70,"parentId":19,"tags":{"page":"/settings"},"startTime":1784601105029,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":1016448,"timestamp":5793132919078,"id":116,"parentId":63,"tags":{},"startTime":1784601105165,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1155582,"timestamp":5793132780025,"id":63,"parentId":19,"tags":{"page":"/node"},"startTime":1784601105026,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":1173008,"timestamp":5793132791051,"id":86,"parentId":41,"tags":{},"startTime":1784601105037,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1187224,"timestamp":5793132776963,"id":41,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1784601105023,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":1051057,"timestamp":5793132919052,"id":114,"parentId":60,"tags":{},"startTime":1784601105165,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1190515,"timestamp":5793132779671,"id":60,"parentId":19,"tags":{"page":"/logs"},"startTime":1784601105026,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":1062834,"timestamp":5793132919137,"id":120,"parentId":68,"tags":{},"startTime":1784601105165,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1199791,"timestamp":5793132782286,"id":68,"parentId":19,"tags":{"page":"/servers"},"startTime":1784601105029,"traceId":"466ecd0140fea933"},{"name":"is-page-static","duration":1227931,"timestamp":5793132790367,"id":80,"parentId":34,"tags":{},"startTime":1784601105037,"traceId":"466ecd0140fea933"},{"name":"check-page","duration":1244860,"timestamp":5793132773517,"id":34,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1784601105020,"traceId":"466ecd0140fea933"},{"name":"static-check","duration":1257035,"timestamp":5793132761395,"id":19,"parentId":1,"tags":{},"startTime":1784601105008,"traceId":"466ecd0140fea933"},{"name":"write-routes-manifest","duration":608,"timestamp":5793134030297,"id":128,"parentId":1,"tags":{},"startTime":1784601106277,"traceId":"466ecd0140fea933"},{"name":"load-dotenv","duration":54,"timestamp":5793134043604,"id":131,"parentId":130,"tags":{},"startTime":1784601106290,"traceId":"466ecd0140fea933"},{"name":"run-export-path-map","duration":686,"timestamp":5793134047946,"id":132,"parentId":130,"tags":{},"startTime":1784601106294,"traceId":"466ecd0140fea933"},{"name":"next-export","duration":953419,"timestamp":5793134042367,"id":130,"parentId":1,"tags":{},"startTime":1784601106289,"traceId":"466ecd0140fea933"},{"name":"move-exported-app-not-found-","duration":1060,"timestamp":5793135001925,"id":133,"parentId":129,"tags":{},"startTime":1784601107248,"traceId":"466ecd0140fea933"},{"name":"move-exported-app-global-error-","duration":538,"timestamp":5793135003175,"id":134,"parentId":129,"tags":{},"startTime":1784601107249,"traceId":"466ecd0140fea933"},{"name":"static-generation","duration":970766,"timestamp":5793134035673,"id":129,"parentId":1,"tags":{},"startTime":1784601106282,"traceId":"466ecd0140fea933"},{"name":"write-routes-manifest","duration":568,"timestamp":5793135006687,"id":135,"parentId":1,"tags":{},"startTime":1784601107253,"traceId":"466ecd0140fea933"},{"name":"print-tree-view","duration":8301,"timestamp":5793135028972,"id":136,"parentId":1,"tags":{},"startTime":1784601107275,"traceId":"466ecd0140fea933"},{"name":"write-route-bundle-stats","duration":19035,"timestamp":5793135037334,"id":137,"parentId":1,"tags":{},"startTime":1784601107284,"traceId":"466ecd0140fea933"},{"name":"telemetry-flush","duration":8279,"timestamp":5793135056417,"id":138,"parentId":1,"tags":{},"startTime":1784601107303,"traceId":"466ecd0140fea933"},{"name":"next-build","duration":27817843,"timestamp":5793107246897,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1784601079493,"traceId":"466ecd0140fea933"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":9852710,"timestamp":5789591773712,"id":14,"parentId":1,"tags":{},"startTime":1784597564020,"traceId":"b251c169832d4fa7"},{"name":"turbopack-build-events","duration":154,"timestamp":5789592137972,"id":15,"parentId":1,"tags":{},"startTime":1784597564384,"traceId":"b251c169832d4fa7"},{"name":"run-typescript","duration":14127474,"timestamp":5789601649359,"id":16,"parentId":1,"tags":{},"startTime":1784597573896,"traceId":"b251c169832d4fa7"},{"name":"static-check","duration":1120306,"timestamp":5789616024249,"id":19,"parentId":1,"tags":{},"startTime":1784597588271,"traceId":"b251c169832d4fa7"},{"name":"static-generation","duration":902272,"timestamp":5789617160198,"id":129,"parentId":1,"tags":{},"startTime":1784597589406,"traceId":"b251c169832d4fa7"},{"name":"telemetry-flush","duration":22856,"timestamp":5789618100865,"id":138,"parentId":1,"tags":{},"startTime":1784597590347,"traceId":"b251c169832d4fa7"},{"name":"next-build","duration":26636129,"timestamp":5789591487639,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1784597563734,"traceId":"b251c169832d4fa7"}]
1
+ [{"name":"run-turbopack","duration":10583953,"timestamp":5793107552440,"id":14,"parentId":1,"tags":{},"startTime":1784601079799,"traceId":"466ecd0140fea933"},{"name":"turbopack-build-events","duration":134,"timestamp":5793107938804,"id":15,"parentId":1,"tags":{},"startTime":1784601080185,"traceId":"466ecd0140fea933"},{"name":"run-typescript","duration":14329668,"timestamp":5793118149779,"id":16,"parentId":1,"tags":{},"startTime":1784601090396,"traceId":"466ecd0140fea933"},{"name":"static-check","duration":1257035,"timestamp":5793132761395,"id":19,"parentId":1,"tags":{},"startTime":1784601105008,"traceId":"466ecd0140fea933"},{"name":"static-generation","duration":970766,"timestamp":5793134035673,"id":129,"parentId":1,"tags":{},"startTime":1784601106282,"traceId":"466ecd0140fea933"},{"name":"telemetry-flush","duration":8279,"timestamp":5793135056417,"id":138,"parentId":1,"tags":{},"startTime":1784601107303,"traceId":"466ecd0140fea933"},{"name":"next-build","duration":27817843,"timestamp":5793107246897,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1784601079493,"traceId":"466ecd0140fea933"}]
@@ -1,3 +1,8 @@
1
+ 'use client';
2
+
3
+ import { useEffect, useState } from 'react';
4
+ import { useAvatarUrl } from '../lib/avatars';
5
+
1
6
  /** Hue-hashed avatar pill for agent aliases. Same alias → same color across
2
7
  * every page (Messages, Nodes, TopoGraph). Use the `size` prop for inline
3
8
  * pills (16/20) vs card headers (28). Round 21 introduced the palette;
@@ -33,6 +38,32 @@ interface AliasAvatarProps {
33
38
  }
34
39
 
35
40
  export function AliasAvatar({ alias, size = 28, className = '' }: AliasAvatarProps) {
41
+ // R24 (Vincent: 头像换血): a custom image (user-set or designed default)
42
+ // wins over every generated style — ONE seam, all 13 avatar surfaces.
43
+ // Shimmer while loading, silent fallback to the pill on error.
44
+ const url = useAvatarUrl(alias);
45
+ const [imgState, setImgState] = useState<'loading' | 'ready' | 'error'>('loading');
46
+ useEffect(() => { setImgState('loading'); }, [url]);
47
+ if (url && imgState !== 'error') {
48
+ return (
49
+ <span
50
+ className={`anet-alias-avatar relative inline-flex shrink-0 overflow-hidden rounded-full border border-[var(--border)] ${imgState === 'loading' ? 'animate-pulse bg-[var(--bg-elevated)]' : ''} ${className}`}
51
+ style={{ width: size, height: size }}
52
+ title={alias}
53
+ aria-hidden
54
+ >
55
+ {/* eslint-disable-next-line @next/next/no-img-element */}
56
+ <img
57
+ src={url}
58
+ alt=""
59
+ loading="lazy"
60
+ onLoad={() => setImgState('ready')}
61
+ onError={() => setImgState('error')}
62
+ className={`h-full w-full rounded-full object-cover transition-opacity duration-150 ${imgState === 'ready' ? 'opacity-100' : 'opacity-0'}`}
63
+ />
64
+ </span>
65
+ );
66
+ }
36
67
  if (isGrokAlias(alias)) {
37
68
  return (
38
69
  <span
@@ -3,6 +3,7 @@
3
3
  import { useCallback, useEffect, useRef, useState } from 'react';
4
4
  import { Session } from './types';
5
5
  import { AliasAvatar } from './AliasAvatar';
6
+ import { setAvatarUrl, useAvatarUrl } from '../lib/avatars';
6
7
  import { useLifecycleCaps } from './NodeLifecycleMenu';
7
8
 
8
9
  /**
@@ -147,6 +148,55 @@ function SectionTitle({ children }: { children: React.ReactNode }) {
147
148
  return <h3 className="text-[11px] font-medium uppercase tracking-wide text-gray-500 mb-2">{children}</h3>;
148
149
  }
149
150
 
151
+ /* R24 (Vincent 亲点: 头像换血) — per-node custom avatar. Stored browser-side
152
+ (localStorage via app/lib/avatars) until the hub grows an RFC-024
153
+ whitelist entry for avatar_url; the designed default set rides
154
+ /avatars/manifest.json. Live preview through the SAME AliasAvatar every
155
+ surface renders. */
156
+ function AvatarSection({ alias }: { alias: string }) {
157
+ const current = useAvatarUrl(alias);
158
+ const [draft, setDraft] = useState(current);
159
+ useEffect(() => { setDraft(current); }, [current]);
160
+ const dirty = draft.trim() !== current;
161
+ return (
162
+ <section>
163
+ <SectionTitle>头像</SectionTitle>
164
+ <div className="flex items-start gap-3">
165
+ <AliasAvatar alias={alias} size={44} />
166
+ <div className="flex-1 space-y-1.5">
167
+ <input
168
+ type="url"
169
+ value={draft}
170
+ onChange={(e) => setDraft(e.target.value)}
171
+ placeholder="图片 URL(留空恢复默认)"
172
+ className="w-full rounded-md border border-[#26262b] bg-[#0e0e10] px-2.5 py-1.5 text-[12px] text-gray-200 focus:border-cyan-600 focus:outline-none"
173
+ />
174
+ <div className="flex items-center gap-2">
175
+ <button
176
+ type="button"
177
+ disabled={!dirty}
178
+ onClick={() => setAvatarUrl(alias, draft)}
179
+ className="rounded-md border border-cyan-600/40 bg-cyan-600/15 px-2.5 py-1 text-[11px] text-cyan-300 hover:bg-cyan-600/25 disabled:opacity-40"
180
+ >
181
+ 保存
182
+ </button>
183
+ {current && (
184
+ <button
185
+ type="button"
186
+ onClick={() => { setAvatarUrl(alias, ''); setDraft(''); }}
187
+ className="rounded-md border border-[#26262b] px-2.5 py-1 text-[11px] text-gray-400 hover:text-gray-200"
188
+ >
189
+ 恢复默认
190
+ </button>
191
+ )}
192
+ <span className="text-[10px] text-gray-600">存本浏览器;跨设备同步待 hub 支持</span>
193
+ </div>
194
+ </div>
195
+ </div>
196
+ </section>
197
+ );
198
+ }
199
+
150
200
  /** Read-only label/value row. */
151
201
  function InfoRow({ label, value }: { label: string; value: string }) {
152
202
  return (
@@ -587,6 +637,8 @@ export function NodeSettingsPanel({ session: s, onClose }: { session: Session; o
587
637
  </div>
588
638
  </section>
589
639
 
640
+ <AvatarSection alias={s.alias} />
641
+
590
642
  {/* B. Runtime + 模型 (model editable) */}
591
643
  <section>
592
644
  <SectionTitle>Runtime · 模型</SectionTitle>
@@ -288,6 +288,7 @@ import { useSSE } from '../lib/useSSE';
288
288
  import { useNetworkId } from '../lib/network-context';
289
289
  import { markChatRead } from '../lib/chat-unread';
290
290
  import { readDraft, writeDraft } from '../lib/chat-drafts';
291
+ import { pinyinMatch, usePinyinReady } from '../lib/pinyin-match';
291
292
  import { formatWeChatTime } from '../lib/time';
292
293
  import { t } from '../lib/ui-lang';
293
294
 
@@ -435,6 +436,10 @@ export function TaskChatPanel({ alias, onClose, inline, availableNodes, active }
435
436
  const [targetAlias, setTargetAlias] = useState(alias);
436
437
  const [showMentions, setShowMentions] = useState(false);
437
438
  const [mentionIndex, setMentionIndex] = useState(0);
439
+ // R23→R25: pinyin matching moved to the shared lib (also powers /nodes
440
+ // and /messages search). Lazy chunk semantics unchanged.
441
+ const pinyinReady = usePinyinReady();
442
+ void pinyinReady; // render trigger when the lazy dict lands mid-typing
438
443
  const [attachLimitHit, setAttachLimitHit] = useState(false);
439
444
  const [mentionFilter, setMentionFilter] = useState('');
440
445
  const [mentionNodes, setMentionNodes] = useState<string[]>([]);
@@ -757,7 +762,12 @@ export function TaskChatPanel({ alias, onClose, inline, availableNodes, active }
757
762
  wasActiveRef.current = isActive;
758
763
  return;
759
764
  }
760
- if (!wasActiveRef.current) runFetch(histLimitRef.current, 12_000);
765
+ if (!wasActiveRef.current) {
766
+ runFetch(histLimitRef.current, 12_000);
767
+ // R27 (微信手感): switching back to a tab refocuses the composer —
768
+ // desktop only (focusing on touch pops the soft keyboard uninvited).
769
+ if (!coarsePointerRef.current) textareaRef.current?.focus();
770
+ }
761
771
  wasActiveRef.current = true;
762
772
  const id = setInterval(() => {
763
773
  if (document.visibilityState === 'hidden') return;
@@ -1000,7 +1010,7 @@ export function TaskChatPanel({ alias, onClose, inline, availableNodes, active }
1000
1010
  };
1001
1011
 
1002
1012
  const filteredMentions = mentionNodes.filter(n =>
1003
- n !== alias && n.toLowerCase().includes(mentionFilter)
1013
+ n !== alias && pinyinMatch(n, mentionFilter)
1004
1014
  ).slice(0, 8);
1005
1015
 
1006
1016
  const autoResize = (el: HTMLTextAreaElement) => {
@@ -0,0 +1,79 @@
1
+ 'use client';
2
+
3
+ import { useSyncExternalStore } from 'react';
4
+
5
+ /* Loop R24 (Vincent 亲点: 头像换血) — custom avatar infrastructure.
6
+ *
7
+ * Resolution order, per alias:
8
+ * 1. user override — localStorage map, settable in the node settings UI
9
+ * 2. designed default — /avatars/manifest.json (static, alias → image URL);
10
+ * the design-side illustration set lands there later with ZERO code
11
+ * change (drop files under public/avatars/ + list them in the manifest)
12
+ * 3. '' → caller falls back to the hue-hashed initial pill
13
+ *
14
+ * Hub-side persistence (cross-device) needs an RFC-024 whitelist extension
15
+ * (`avatar_url` is not an editable flag today — update would return
16
+ * invalid_patch); when the hub grows it, hydrate the store from the hub here
17
+ * without touching any consumer.
18
+ */
19
+
20
+ const STORE_KEY = 'anet_avatars_v1';
21
+ const AVATAR_EVENT = 'anet-avatars-updated';
22
+
23
+ let manifest: Record<string, string> | null = null;
24
+ let manifestRequested = false;
25
+
26
+ function fetchManifestOnce() {
27
+ if (manifestRequested || typeof window === 'undefined') return;
28
+ manifestRequested = true;
29
+ fetch('/avatars/manifest.json', { cache: 'no-cache' })
30
+ .then((r) => (r.ok ? r.json() : null))
31
+ .then((j) => {
32
+ if (j && typeof j === 'object') {
33
+ manifest = j as Record<string, string>;
34
+ window.dispatchEvent(new Event(AVATAR_EVENT));
35
+ }
36
+ })
37
+ .catch(() => {});
38
+ }
39
+
40
+ function readMap(): Record<string, string> {
41
+ if (typeof window === 'undefined') return {};
42
+ try {
43
+ const parsed = JSON.parse(window.localStorage.getItem(STORE_KEY) || '{}');
44
+ return parsed && typeof parsed === 'object' ? parsed : {};
45
+ } catch {
46
+ return {};
47
+ }
48
+ }
49
+
50
+ export function getAvatarUrl(alias?: string | null): string {
51
+ if (!alias) return '';
52
+ return readMap()[alias] || manifest?.[alias] || '';
53
+ }
54
+
55
+ /** Empty/whitespace url removes the override (falls back to manifest/pill). */
56
+ export function setAvatarUrl(alias: string, url: string) {
57
+ if (typeof window === 'undefined' || !alias) return;
58
+ try {
59
+ const m = readMap();
60
+ if (url.trim()) m[alias] = url.trim();
61
+ else delete m[alias];
62
+ window.localStorage.setItem(STORE_KEY, JSON.stringify(m));
63
+ window.dispatchEvent(new Event(AVATAR_EVENT));
64
+ } catch {}
65
+ }
66
+
67
+ function subscribe(callback: () => void) {
68
+ fetchManifestOnce();
69
+ window.addEventListener(AVATAR_EVENT, callback);
70
+ window.addEventListener('storage', callback);
71
+ return () => {
72
+ window.removeEventListener(AVATAR_EVENT, callback);
73
+ window.removeEventListener('storage', callback);
74
+ };
75
+ }
76
+
77
+ export function useAvatarUrl(alias?: string | null): string {
78
+ return useSyncExternalStore(subscribe, () => getAvatarUrl(alias), () => '');
79
+ }
@@ -0,0 +1,54 @@
1
+ 'use client';
2
+
3
+ import { useEffect, useState } from 'react';
4
+
5
+ /* Loop R25: one pinyin matcher for every search surface (chat @-mentions,
6
+ * /nodes, /messages). pinyin-pro stays a LAZY chunk — the dict loads on the
7
+ * first non-empty filter, never on page load. Matching = substring OR full
8
+ * pinyin OR initials, cached per string. Callers pair pinyinMatch() with
9
+ * usePinyinReady() so results upgrade in place once the dict arrives. */
10
+
11
+ type PinyinFn = (text: string) => [string, string];
12
+
13
+ let py: PinyinFn | null = null;
14
+ let loadStarted = false;
15
+ const listeners = new Set<() => void>();
16
+ const cache = new Map<string, [string, string]>();
17
+
18
+ function ensureLoaded() {
19
+ if (py || loadStarted || typeof window === 'undefined') return;
20
+ loadStarted = true;
21
+ import('pinyin-pro')
22
+ .then((m) => {
23
+ py = (text: string) => [
24
+ m.pinyin(text, { toneType: 'none', type: 'array' }).join('').toLowerCase(),
25
+ m.pinyin(text, { pattern: 'first', toneType: 'none', type: 'array' }).join('').toLowerCase(),
26
+ ];
27
+ listeners.forEach((l) => l());
28
+ })
29
+ .catch(() => { loadStarted = false; });
30
+ }
31
+
32
+ export function pinyinMatch(text: string, filter: string): boolean {
33
+ const f = filter.trim().toLowerCase();
34
+ if (!f) return true;
35
+ if (text.toLowerCase().includes(f)) return true;
36
+ ensureLoaded();
37
+ if (!py) return false;
38
+ let entry = cache.get(text);
39
+ if (!entry) { entry = py(text); cache.set(text, entry); }
40
+ return entry[0].includes(f) || entry[1].includes(f);
41
+ }
42
+
43
+ /** True once the pinyin dict is loaded — subscribe so the component
44
+ * re-filters when lazy loading completes mid-typing. */
45
+ export function usePinyinReady(): boolean {
46
+ const [ready, setReady] = useState(() => Boolean(py));
47
+ useEffect(() => {
48
+ if (py) { setReady(true); return; }
49
+ const l = () => setReady(true);
50
+ listeners.add(l);
51
+ return () => void listeners.delete(l);
52
+ }, []);
53
+ return ready;
54
+ }
@@ -7,6 +7,8 @@ import { formatWeChatTime } from '../lib/time';
7
7
  import { EmptyState } from '../components/EmptyState';
8
8
  import { AliasAvatar } from '../components/AliasAvatar';
9
9
  import { useCollapsibleSearch } from '../components/CollapsibleSearch';
10
+ import { pinyinMatch, usePinyinReady } from '../lib/pinyin-match';
11
+ import { t } from '../lib/ui-lang';
10
12
 
11
13
  interface MessageItem {
12
14
  id: string;
@@ -68,6 +70,7 @@ export default function MessagesPage() {
68
70
  const loadingOlder = isLoading && messages.length > 0;
69
71
  const [filterType, setFilterType] = useState('');
70
72
  const [search, setSearch] = useState('');
73
+ const pinyinReady = usePinyinReady();
71
74
  const [debug, setDebug] = useState(false);
72
75
  const [viewMode, setViewMode] = useState<'timeline' | 'grouped'>('timeline');
73
76
  // M5: the timeline runs oldest→newest top-to-bottom, so land the first
@@ -85,7 +88,7 @@ export default function MessagesPage() {
85
88
  const searchCtl = useCollapsibleSearch({
86
89
  value: search,
87
90
  onChange: setSearch,
88
- placeholder: 'Search from/to/content or use from:alias…',
91
+ placeholder: t('搜 别名(支持拼音)/内容,或 from:别名…', 'Search from/to (pinyin ok)/content, or from:alias…'),
89
92
  label: 'Search messages',
90
93
  enabled: messages.length > 0,
91
94
  });
@@ -107,17 +110,19 @@ export default function MessagesPage() {
107
110
  .filter((m: MessageItem) => {
108
111
  if (filterType && m.type !== filterType) return false;
109
112
  if (fromFilter) {
110
- return (m.from_alias || '').toLowerCase().includes(fromFilter);
113
+ return pinyinMatch(m.from_alias || '', fromFilter);
111
114
  }
112
115
  if (query) {
113
- return (m.from_alias || '').toLowerCase().includes(query)
114
- || (m.to_alias || '').toLowerCase().includes(query)
116
+ // R25: aliases match by pinyin too; content stays substring-only
117
+ // (pinyin over long message bodies is cost without benefit).
118
+ return pinyinMatch(m.from_alias || '', query)
119
+ || pinyinMatch(m.to_alias || '', query)
115
120
  || (m.content || '').toLowerCase().includes(query);
116
121
  }
117
122
  return true;
118
123
  })
119
124
  .sort((a: MessageItem, b: MessageItem) => normalizeDate(a.created_at) - normalizeDate(b.created_at));
120
- }, [filterType, messages, search]);
125
+ }, [filterType, messages, search, pinyinReady]);
121
126
 
122
127
  // Group messages by conversation pair
123
128
  const conversations = useMemo(() => {
@@ -10,6 +10,7 @@ import { NodeLifecycleMenu } from '../components/NodeLifecycleMenu';
10
10
  import { EmptyState, NodesEmptyState } from '../components/EmptyState';
11
11
  import { AliasAvatar } from '../components/AliasAvatar';
12
12
  import { useHasDraft } from '../lib/chat-drafts';
13
+ import { pinyinMatch, usePinyinReady } from '../lib/pinyin-match';
13
14
  import { useCollapsibleSearch } from '../components/CollapsibleSearch';
14
15
  import type { Session } from '../components/types';
15
16
  import { SESSION_STATUS_CHIP_CLASS as STATUS_COLORS } from '../lib/status';
@@ -54,6 +55,8 @@ export default function NodesPage() {
54
55
  (s.network_id ? sseMap[`${s.network_id}:${s.alias}`] : undefined) ?? sseMap[s.alias];
55
56
  const [filterStatus, setFilterStatus] = useState('');
56
57
  const [search, setSearch] = useState('');
58
+ const pinyinReady = usePinyinReady();
59
+ void pinyinReady; // R25: re-filter once the lazy pinyin dict lands
57
60
  const [viewMode, setViewMode] = useState<ViewMode>('list');
58
61
  const [chatAlias, setChatAlias] = useState<string | null>(null);
59
62
  const [showCreate, setShowCreate] = useState(false);
@@ -64,7 +67,7 @@ export default function NodesPage() {
64
67
  const searchCtl = useCollapsibleSearch({
65
68
  value: search,
66
69
  onChange: setSearch,
67
- placeholder: 'Search nodes…',
70
+ placeholder: t('搜索节点(支持拼音/首字母)…', 'Search nodes (pinyin ok)…'),
68
71
  label: 'Search nodes',
69
72
  enabled: sessions.length > 0,
70
73
  });
@@ -77,7 +80,7 @@ export default function NodesPage() {
77
80
  if (filterStatus && filterStatus !== s.status) return false;
78
81
  return true;
79
82
  })
80
- .filter(s => !search || s.alias.toLowerCase().includes(search.toLowerCase()) || (s.agent || '').toLowerCase().includes(search.toLowerCase()))
83
+ .filter(s => !search || pinyinMatch(s.alias, search) || pinyinMatch(s.agent || '', search))
81
84
  .sort((a, b) => (b.online ? 1 : 0) - (a.online ? 1 : 0) || (b.status === 'working' ? 1 : 0) - (a.status === 'working' ? 1 : 0));
82
85
 
83
86
  const onlineCount = sessions.filter(s => sseFor(s)).length;
package/app/page.tsx CHANGED
@@ -1,9 +1,15 @@
1
1
  'use client';
2
2
 
3
- import { useState } from 'react';
3
+ import { useState, memo } from 'react';
4
4
  import Link from 'next/link';
5
5
  import { StatsBar } from './components/StatsBar';
6
6
  import { TopoGraph } from './components/TopoGraph';
7
+ // Loop R23: opening a chat tab (openTab state) re-rendered the whole
8
+ // Overview including the 15k-line TopoGraph SVG — measured ~300ms of the
9
+ // 1.0s panel-open TTI. Its three props are identity-stable between data
10
+ // changes (SWR structural sharing / health object / rare rename state),
11
+ // so a memo wrapper skips the redraw entirely on unrelated state churn.
12
+ const MemoTopoGraph = memo(TopoGraph);
7
13
  import { AgentCard } from './components/AgentCard';
8
14
  import { LoadingSkeleton } from './components/LoadingSkeleton';
9
15
  import { NodesEmptyState as EmptyState } from './components/EmptyState';
@@ -174,7 +180,7 @@ export default function Dashboard() {
174
180
  // the viewport) while letting the page below stay reachable
175
181
  // with a single ordinary scroll past the cap.
176
182
  <div className="lg:max-h-none lg:overflow-visible max-h-[70vh] overflow-y-auto rounded-xl border border-transparent lg:border-0">
177
- <TopoGraph sessions={sessions} sseSessions={sseSessions} renameSignal={renameSignal} />
183
+ <MemoTopoGraph sessions={sessions} sseSessions={sseSessions} renameSignal={renameSignal} />
178
184
  </div>
179
185
  )}
180
186
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.6.3-preview.21",
3
+ "version": "0.6.3-preview.23",
4
4
  "description": "Agent Network Dashboard — Web UI for managing AI Agent networks",
5
5
  "main": "apps/desktop/electron/main.cjs",
6
6
  "scripts": {
@@ -38,6 +38,7 @@
38
38
  "dependencies": {
39
39
  "@capacitor/core": "^7.4.4",
40
40
  "next": "16.2.3",
41
+ "pinyin-pro": "^3.28.1",
41
42
  "react": "19.2.4",
42
43
  "react-dom": "19.2.4",
43
44
  "react-markdown": "^10.1.0",
@@ -53,9 +54,9 @@
53
54
  "@types/node": "^20",
54
55
  "@types/react": "^19",
55
56
  "@types/react-dom": "^19",
56
- "eslint": "^9",
57
57
  "electron": "^39.2.6",
58
58
  "electron-builder": "^26.0.12",
59
+ "eslint": "^9",
59
60
  "eslint-config-next": "16.2.3",
60
61
  "tailwindcss": "^4",
61
62
  "typescript": "^5"
@@ -0,0 +1,3 @@
1
+ {
2
+ "通信N站马": "/intern_avatar.png"
3
+ }