@sleep2agi/agent-network-dashboard 0.1.0-preview.8 → 0.1.0

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 (324) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +6 -6
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/diagnostics/route-bundle-stats.json +90 -87
  5. package/.next/fallback-build-manifest.json +3 -3
  6. package/.next/server/app/_global-error/page/build-manifest.json +3 -3
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +8 -8
  10. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +8 -8
  12. package/.next/server/app/_global-error.segments/_head.segment.rsc +4 -4
  13. package/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page/build-manifest.json +3 -3
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/_not-found.html +2 -2
  18. package/.next/server/app/_not-found.rsc +11 -11
  19. package/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
  20. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  21. package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
  22. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  23. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  24. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  25. package/.next/server/app/admin/page/build-manifest.json +3 -3
  26. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/admin.html +2 -2
  28. package/.next/server/app/admin.rsc +13 -13
  29. package/.next/server/app/admin.segments/_full.segment.rsc +13 -13
  30. package/.next/server/app/admin.segments/_head.segment.rsc +4 -4
  31. package/.next/server/app/admin.segments/_index.segment.rsc +6 -6
  32. package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  33. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +4 -4
  34. package/.next/server/app/admin.segments/admin.segment.rsc +3 -3
  35. package/.next/server/app/api/anet/config/route.js +2 -2
  36. package/.next/server/app/api/anet/config/route.js.nft.json +1 -1
  37. package/.next/server/app/api/auth/login/route.js +2 -2
  38. package/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  39. package/.next/server/app/api/auth/logout/route.js +2 -2
  40. package/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  41. package/.next/server/app/api/auth/v3/route.js +2 -2
  42. package/.next/server/app/api/auth/v3/route.js.nft.json +1 -1
  43. package/.next/server/app/api/hub/audit-log/route.js +2 -2
  44. package/.next/server/app/api/hub/audit-log/route.js.nft.json +1 -1
  45. package/.next/server/app/api/hub/auth/route.js +2 -2
  46. package/.next/server/app/api/hub/auth/route.js.nft.json +1 -1
  47. package/.next/server/app/api/hub/broadcast/route.js +2 -2
  48. package/.next/server/app/api/hub/broadcast/route.js.nft.json +1 -1
  49. package/.next/server/app/api/hub/events/route.js +2 -2
  50. package/.next/server/app/api/hub/events/route.js.nft.json +1 -1
  51. package/.next/server/app/api/hub/health/route.js +2 -2
  52. package/.next/server/app/api/hub/health/route.js.nft.json +1 -1
  53. package/.next/server/app/api/hub/inbox/route.js +2 -2
  54. package/.next/server/app/api/hub/inbox/route.js.nft.json +1 -1
  55. package/.next/server/app/api/hub/license/route.js +2 -2
  56. package/.next/server/app/api/hub/license/route.js.nft.json +1 -1
  57. package/.next/server/app/api/hub/messages/route.js +2 -2
  58. package/.next/server/app/api/hub/messages/route.js.nft.json +1 -1
  59. package/.next/server/app/api/hub/networks/route.js +2 -2
  60. package/.next/server/app/api/hub/networks/route.js.nft.json +1 -1
  61. package/.next/server/app/api/hub/nodes/route.js +2 -2
  62. package/.next/server/app/api/hub/nodes/route.js.nft.json +1 -1
  63. package/.next/server/app/api/hub/register/route.js +2 -2
  64. package/.next/server/app/api/hub/register/route.js.nft.json +1 -1
  65. package/.next/server/app/api/hub/send/route.js +2 -2
  66. package/.next/server/app/api/hub/send/route.js.nft.json +1 -1
  67. package/.next/server/app/api/hub/session/route.js +2 -2
  68. package/.next/server/app/api/hub/session/route.js.nft.json +1 -1
  69. package/.next/server/app/api/hub/stats/route.js +2 -2
  70. package/.next/server/app/api/hub/stats/route.js.nft.json +1 -1
  71. package/.next/server/app/api/hub/status/route.js +2 -2
  72. package/.next/server/app/api/hub/status/route.js.nft.json +1 -1
  73. package/.next/server/app/api/hub/task-events/route.js +2 -2
  74. package/.next/server/app/api/hub/task-events/route.js.nft.json +1 -1
  75. package/.next/server/app/api/hub/tasks/route.js +2 -2
  76. package/.next/server/app/api/hub/tasks/route.js.nft.json +1 -1
  77. package/.next/server/app/api/hub/tmux/route.js +2 -2
  78. package/.next/server/app/api/hub/tmux/route.js.nft.json +1 -1
  79. package/.next/server/app/api/hub/tokens/route.js +2 -2
  80. package/.next/server/app/api/hub/tokens/route.js.nft.json +1 -1
  81. package/.next/server/app/docs/page/build-manifest.json +3 -3
  82. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/docs.html +2 -2
  84. package/.next/server/app/docs.rsc +13 -13
  85. package/.next/server/app/docs.segments/_full.segment.rsc +13 -13
  86. package/.next/server/app/docs.segments/_head.segment.rsc +4 -4
  87. package/.next/server/app/docs.segments/_index.segment.rsc +6 -6
  88. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  89. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +4 -4
  90. package/.next/server/app/docs.segments/docs.segment.rsc +3 -3
  91. package/.next/server/app/index.html +2 -2
  92. package/.next/server/app/index.rsc +13 -13
  93. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  94. package/.next/server/app/index.segments/_full.segment.rsc +13 -13
  95. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  96. package/.next/server/app/index.segments/_index.segment.rsc +6 -6
  97. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  98. package/.next/server/app/login/page/build-manifest.json +3 -3
  99. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  100. package/.next/server/app/login.html +1 -1
  101. package/.next/server/app/login.rsc +13 -13
  102. package/.next/server/app/login.segments/_full.segment.rsc +13 -13
  103. package/.next/server/app/login.segments/_head.segment.rsc +4 -4
  104. package/.next/server/app/login.segments/_index.segment.rsc +6 -6
  105. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  106. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  107. package/.next/server/app/login.segments/login.segment.rsc +3 -3
  108. package/.next/server/app/logs/page/build-manifest.json +3 -3
  109. package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  110. package/.next/server/app/logs.html +2 -2
  111. package/.next/server/app/logs.rsc +13 -13
  112. package/.next/server/app/logs.segments/_full.segment.rsc +13 -13
  113. package/.next/server/app/logs.segments/_head.segment.rsc +4 -4
  114. package/.next/server/app/logs.segments/_index.segment.rsc +6 -6
  115. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  116. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +4 -4
  117. package/.next/server/app/logs.segments/logs.segment.rsc +3 -3
  118. package/.next/server/app/messages/page/build-manifest.json +3 -3
  119. package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
  120. package/.next/server/app/messages.html +2 -2
  121. package/.next/server/app/messages.rsc +13 -13
  122. package/.next/server/app/messages.segments/_full.segment.rsc +13 -13
  123. package/.next/server/app/messages.segments/_head.segment.rsc +4 -4
  124. package/.next/server/app/messages.segments/_index.segment.rsc +6 -6
  125. package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
  126. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +4 -4
  127. package/.next/server/app/messages.segments/messages.segment.rsc +3 -3
  128. package/.next/server/app/node/page/build-manifest.json +3 -3
  129. package/.next/server/app/node/page.js.nft.json +1 -1
  130. package/.next/server/app/node/page_client-reference-manifest.js +1 -1
  131. package/.next/server/app/node.html +2 -2
  132. package/.next/server/app/node.rsc +13 -13
  133. package/.next/server/app/node.segments/_full.segment.rsc +13 -13
  134. package/.next/server/app/node.segments/_head.segment.rsc +4 -4
  135. package/.next/server/app/node.segments/_index.segment.rsc +6 -6
  136. package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
  137. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +4 -4
  138. package/.next/server/app/node.segments/node.segment.rsc +3 -3
  139. package/.next/server/app/nodes/page/build-manifest.json +3 -3
  140. package/.next/server/app/nodes/page.js.nft.json +1 -1
  141. package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
  142. package/.next/server/app/nodes.html +2 -2
  143. package/.next/server/app/nodes.rsc +13 -13
  144. package/.next/server/app/nodes.segments/_full.segment.rsc +13 -13
  145. package/.next/server/app/nodes.segments/_head.segment.rsc +4 -4
  146. package/.next/server/app/nodes.segments/_index.segment.rsc +6 -6
  147. package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
  148. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +4 -4
  149. package/.next/server/app/nodes.segments/nodes.segment.rsc +3 -3
  150. package/.next/server/app/page/build-manifest.json +3 -3
  151. package/.next/server/app/page.js.nft.json +1 -1
  152. package/.next/server/app/page_client-reference-manifest.js +1 -1
  153. package/.next/server/app/settings/networks/page/build-manifest.json +3 -3
  154. package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
  155. package/.next/server/app/settings/networks.html +2 -2
  156. package/.next/server/app/settings/networks.rsc +13 -13
  157. package/.next/server/app/settings/networks.segments/_full.segment.rsc +13 -13
  158. package/.next/server/app/settings/networks.segments/_head.segment.rsc +4 -4
  159. package/.next/server/app/settings/networks.segments/_index.segment.rsc +6 -6
  160. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
  161. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +4 -4
  162. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +3 -3
  163. package/.next/server/app/settings/networks.segments/settings.segment.rsc +3 -3
  164. package/.next/server/app/settings/page/build-manifest.json +3 -3
  165. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  166. package/.next/server/app/settings/tokens/page/build-manifest.json +3 -3
  167. package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
  168. package/.next/server/app/settings/tokens.html +2 -2
  169. package/.next/server/app/settings/tokens.rsc +13 -13
  170. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +13 -13
  171. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +4 -4
  172. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +6 -6
  173. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
  174. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +4 -4
  175. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +3 -3
  176. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +3 -3
  177. package/.next/server/app/settings.html +2 -2
  178. package/.next/server/app/settings.rsc +13 -13
  179. package/.next/server/app/settings.segments/_full.segment.rsc +13 -13
  180. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  181. package/.next/server/app/settings.segments/_index.segment.rsc +6 -6
  182. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  183. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  184. package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  185. package/.next/server/app/tasks/[id]/page/build-manifest.json +3 -3
  186. package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  187. package/.next/server/app/tasks/page/build-manifest.json +3 -3
  188. package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  189. package/.next/server/app/tasks.html +2 -2
  190. package/.next/server/app/tasks.rsc +13 -13
  191. package/.next/server/app/tasks.segments/_full.segment.rsc +13 -13
  192. package/.next/server/app/tasks.segments/_head.segment.rsc +4 -4
  193. package/.next/server/app/tasks.segments/_index.segment.rsc +6 -6
  194. package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
  195. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +4 -4
  196. package/.next/server/app/tasks.segments/tasks.segment.rsc +3 -3
  197. package/.next/server/chunks/[root-of-the-server]__0.r9hpx._.js +3 -0
  198. package/.next/server/chunks/{[root-of-the-server]__0sywwd7._.js.map → [root-of-the-server]__0.r9hpx._.js.map} +1 -1
  199. package/.next/server/chunks/[root-of-the-server]__0.~awwb._.js +3 -0
  200. package/.next/server/chunks/{[root-of-the-server]__02up7n2._.js.map → [root-of-the-server]__0.~awwb._.js.map} +1 -1
  201. package/.next/server/chunks/[root-of-the-server]__011ghni._.js +3 -0
  202. package/.next/server/chunks/{[root-of-the-server]__0mmo75i._.js.map → [root-of-the-server]__011ghni._.js.map} +1 -1
  203. package/.next/server/chunks/[root-of-the-server]__0_roltz._.js +3 -0
  204. package/.next/server/chunks/{[root-of-the-server]__05uypa~._.js.map → [root-of-the-server]__0_roltz._.js.map} +1 -1
  205. package/.next/server/chunks/[root-of-the-server]__0ak3zmb._.js +3 -0
  206. package/.next/server/chunks/{[root-of-the-server]__0u9ppm.._.js.map → [root-of-the-server]__0ak3zmb._.js.map} +1 -1
  207. package/.next/server/chunks/[root-of-the-server]__0c0_p0v._.js +3 -0
  208. package/.next/server/chunks/{[root-of-the-server]__0uxkj4r._.js.map → [root-of-the-server]__0c0_p0v._.js.map} +1 -1
  209. package/.next/server/chunks/[root-of-the-server]__0c5h0a~._.js +3 -0
  210. package/.next/server/chunks/{[root-of-the-server]__0hz-gqk._.js.map → [root-of-the-server]__0c5h0a~._.js.map} +1 -1
  211. package/.next/server/chunks/[root-of-the-server]__0cfodg2._.js +3 -0
  212. package/.next/server/chunks/{[root-of-the-server]__0nb8029._.js.map → [root-of-the-server]__0cfodg2._.js.map} +1 -1
  213. package/.next/server/chunks/[root-of-the-server]__0fo7jlh._.js +3 -0
  214. package/.next/server/chunks/{[root-of-the-server]__0m77953._.js.map → [root-of-the-server]__0fo7jlh._.js.map} +1 -1
  215. package/.next/server/chunks/[root-of-the-server]__0hj~i84._.js +3 -0
  216. package/.next/server/chunks/{[root-of-the-server]__0nl3akl._.js.map → [root-of-the-server]__0hj~i84._.js.map} +1 -1
  217. package/.next/server/chunks/[root-of-the-server]__0hxwf9u._.js +3 -0
  218. package/.next/server/chunks/{[root-of-the-server]__13e9ex0._.js.map → [root-of-the-server]__0hxwf9u._.js.map} +1 -1
  219. package/.next/server/chunks/[root-of-the-server]__0k.vegl._.js +3 -0
  220. package/.next/server/chunks/{[root-of-the-server]__0g16ayc._.js.map → [root-of-the-server]__0k.vegl._.js.map} +1 -1
  221. package/.next/server/chunks/[root-of-the-server]__0k3eytp._.js +3 -0
  222. package/.next/server/chunks/{[root-of-the-server]__0q86a80._.js.map → [root-of-the-server]__0k3eytp._.js.map} +1 -1
  223. package/.next/server/chunks/[root-of-the-server]__0khwewd._.js +3 -0
  224. package/.next/server/chunks/{[root-of-the-server]__12s1q1.._.js.map → [root-of-the-server]__0khwewd._.js.map} +1 -1
  225. package/.next/server/chunks/[root-of-the-server]__0ku8l.~._.js +3 -0
  226. package/.next/server/chunks/{[root-of-the-server]__0344fys._.js.map → [root-of-the-server]__0ku8l.~._.js.map} +1 -1
  227. package/.next/server/chunks/[root-of-the-server]__0kx9lo1._.js +3 -0
  228. package/.next/server/chunks/{[root-of-the-server]__0o1z0_7._.js.map → [root-of-the-server]__0kx9lo1._.js.map} +1 -1
  229. package/.next/server/chunks/[root-of-the-server]__0lu__6g._.js +3 -0
  230. package/.next/server/chunks/{[root-of-the-server]__0150zad._.js.map → [root-of-the-server]__0lu__6g._.js.map} +1 -1
  231. package/.next/server/chunks/[root-of-the-server]__0nsfjkb._.js +3 -0
  232. package/.next/server/chunks/{[root-of-the-server]__0swcbs5._.js.map → [root-of-the-server]__0nsfjkb._.js.map} +1 -1
  233. package/.next/server/chunks/[root-of-the-server]__0p3fo6l._.js +1 -1
  234. package/.next/server/chunks/[root-of-the-server]__0t0.lss._.js +3 -0
  235. package/.next/server/chunks/{[root-of-the-server]__09dhh_t._.js.map → [root-of-the-server]__0t0.lss._.js.map} +1 -1
  236. package/.next/server/chunks/[root-of-the-server]__0wpe~w2._.js +3 -0
  237. package/.next/server/chunks/{[root-of-the-server]__09kj7n.._.js.map → [root-of-the-server]__0wpe~w2._.js.map} +1 -1
  238. package/.next/server/chunks/[root-of-the-server]__0x.-194._.js +3 -0
  239. package/.next/server/chunks/{[root-of-the-server]__11aui~e._.js.map → [root-of-the-server]__0x.-194._.js.map} +1 -1
  240. package/.next/server/chunks/[root-of-the-server]__10ducxb._.js +3 -0
  241. package/.next/server/chunks/{[root-of-the-server]__10439sp._.js.map → [root-of-the-server]__10ducxb._.js.map} +1 -1
  242. package/.next/server/chunks/[root-of-the-server]__10~rj8b._.js +3 -0
  243. package/.next/server/chunks/{[root-of-the-server]__0w~31ff._.js.map → [root-of-the-server]__10~rj8b._.js.map} +1 -1
  244. package/.next/server/chunks/[root-of-the-server]__114809t._.js +3 -0
  245. package/.next/server/chunks/{[root-of-the-server]__0uf_olq._.js.map → [root-of-the-server]__114809t._.js.map} +1 -1
  246. package/.next/server/chunks/[root-of-the-server]__11yl3c.._.js +3 -0
  247. package/.next/server/chunks/{[root-of-the-server]__090uiv5._.js.map → [root-of-the-server]__11yl3c.._.js.map} +1 -1
  248. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0yubv2d.js +1 -1
  249. package/.next/server/chunks/ssr/[root-of-the-server]__093ymui._.js +3 -0
  250. package/.next/server/chunks/ssr/[root-of-the-server]__093ymui._.js.map +1 -0
  251. package/.next/server/chunks/ssr/[root-of-the-server]__0nrckjd._.js +3 -0
  252. package/.next/server/chunks/ssr/[root-of-the-server]__0nrckjd._.js.map +1 -0
  253. package/.next/server/chunks/ssr/[root-of-the-server]__0xm3h9x._.js +3 -0
  254. package/.next/server/chunks/ssr/[root-of-the-server]__0xm3h9x._.js.map +1 -0
  255. package/.next/server/chunks/ssr/[root-of-the-server]__0~yad5w._.js +3 -0
  256. package/.next/server/chunks/ssr/[root-of-the-server]__0~yad5w._.js.map +1 -0
  257. package/.next/server/middleware-build-manifest.js +6 -6
  258. package/.next/server/pages/404.html +2 -2
  259. package/.next/server/pages/500.html +1 -1
  260. package/.next/static/chunks/00uwfd~z5dh.b.js +1 -0
  261. package/.next/static/chunks/{0io~i_rk3k9q3.js → 060yf6n1jdcri.js} +1 -1
  262. package/.next/static/chunks/{01bx19dpl~r6u.js → 063eleenll4ri.js} +1 -1
  263. package/.next/static/chunks/{0fpff4dxg3a5x.js → 08aj9~75raaah.js} +1 -1
  264. package/.next/static/chunks/{0xqtq9944k~ek.js → 08v0-ki6vwpxf.js} +1 -1
  265. package/.next/static/chunks/{0tb-yun7e_n3c.js → 09al3qm76q7nd.js} +1 -1
  266. package/.next/static/chunks/{12t1c0u8~txfo.js → 0afxijuigt-49.js} +1 -1
  267. package/.next/static/chunks/0bajlbn83u82v.css +2 -0
  268. package/.next/static/chunks/0dkkv90do9a4r.js +1 -0
  269. package/.next/static/chunks/{024co7ns8w7ms.js → 0ejz4zwhu3a3y.js} +1 -1
  270. package/.next/static/chunks/{0ql1nb6991-hi.js → 0h4x8zbbd__pl.js} +1 -1
  271. package/.next/static/chunks/{02w9ytw8eey3r.js → 0krweyme4bfjm.js} +1 -1
  272. package/.next/static/chunks/0ogeals5ufhho.js +1 -0
  273. package/.next/static/chunks/{15-ywchriw.vi.js → 0u359llqm1_01.js} +1 -1
  274. package/.next/static/chunks/{0~sxxils~iff..js → 0ugk4jd4e7oft.js} +1 -1
  275. package/.next/static/chunks/{0w.7_h6kx__bg.js → 0uqfv6rc-xdru.js} +1 -1
  276. package/.next/static/chunks/{11f7871-m2pu4.js → 0vlojka~d~9h4.js} +1 -1
  277. package/.next/static/chunks/0xn2oc.5gmj~v.js +1 -0
  278. package/.next/static/chunks/{0w5hxo645~s.g.js → 0xrnwfefpke-g.js} +2 -2
  279. package/.next/static/chunks/{0s4w.hhez3.xx.js → 14bsg3_-taiw4.js} +1 -1
  280. package/.next/static/chunks/{turbopack-0zklppa1rg.u8.js → turbopack-0vsvjs02l449s.js} +1 -1
  281. package/.next/trace +2 -2
  282. package/.next/trace-build +1 -1
  283. package/app/components/TaskChatPanel.tsx +68 -26
  284. package/package.json +3 -1
  285. package/.next/server/chunks/[root-of-the-server]__0150zad._.js +0 -3
  286. package/.next/server/chunks/[root-of-the-server]__02up7n2._.js +0 -3
  287. package/.next/server/chunks/[root-of-the-server]__0344fys._.js +0 -3
  288. package/.next/server/chunks/[root-of-the-server]__05uypa~._.js +0 -3
  289. package/.next/server/chunks/[root-of-the-server]__090uiv5._.js +0 -3
  290. package/.next/server/chunks/[root-of-the-server]__09dhh_t._.js +0 -3
  291. package/.next/server/chunks/[root-of-the-server]__09kj7n.._.js +0 -3
  292. package/.next/server/chunks/[root-of-the-server]__0g16ayc._.js +0 -3
  293. package/.next/server/chunks/[root-of-the-server]__0hz-gqk._.js +0 -3
  294. package/.next/server/chunks/[root-of-the-server]__0m77953._.js +0 -3
  295. package/.next/server/chunks/[root-of-the-server]__0mmo75i._.js +0 -3
  296. package/.next/server/chunks/[root-of-the-server]__0nb8029._.js +0 -3
  297. package/.next/server/chunks/[root-of-the-server]__0nl3akl._.js +0 -3
  298. package/.next/server/chunks/[root-of-the-server]__0o1z0_7._.js +0 -3
  299. package/.next/server/chunks/[root-of-the-server]__0q86a80._.js +0 -3
  300. package/.next/server/chunks/[root-of-the-server]__0swcbs5._.js +0 -3
  301. package/.next/server/chunks/[root-of-the-server]__0sywwd7._.js +0 -3
  302. package/.next/server/chunks/[root-of-the-server]__0u9ppm.._.js +0 -3
  303. package/.next/server/chunks/[root-of-the-server]__0uf_olq._.js +0 -3
  304. package/.next/server/chunks/[root-of-the-server]__0uxkj4r._.js +0 -3
  305. package/.next/server/chunks/[root-of-the-server]__0w~31ff._.js +0 -3
  306. package/.next/server/chunks/[root-of-the-server]__10439sp._.js +0 -3
  307. package/.next/server/chunks/[root-of-the-server]__11aui~e._.js +0 -3
  308. package/.next/server/chunks/[root-of-the-server]__12s1q1.._.js +0 -3
  309. package/.next/server/chunks/[root-of-the-server]__13e9ex0._.js +0 -3
  310. package/.next/server/chunks/ssr/_0s2kgzl._.js +0 -3
  311. package/.next/server/chunks/ssr/_0s2kgzl._.js.map +0 -1
  312. package/.next/server/chunks/ssr/app_05bbp~.._.js +0 -3
  313. package/.next/server/chunks/ssr/app_05bbp~.._.js.map +0 -1
  314. package/.next/server/chunks/ssr/app_0d3prqs._.js +0 -3
  315. package/.next/server/chunks/ssr/app_0d3prqs._.js.map +0 -1
  316. package/.next/server/chunks/ssr/app_0p9bx.i._.js +0 -3
  317. package/.next/server/chunks/ssr/app_0p9bx.i._.js.map +0 -1
  318. package/.next/static/chunks/06f76ht~w6c6c.js +0 -1
  319. package/.next/static/chunks/0_qu9.8wo.eq1.css +0 -2
  320. package/.next/static/chunks/0g5j6.4xxjqd3.js +0 -1
  321. package/.next/static/chunks/15cp_p75shcm9.js +0 -1
  322. /package/.next/static/{5bvXa9VuwCjy1WNEj0yoW → OhhT30BnG1-kXYvlQ_2y3}/_buildManifest.js +0 -0
  323. /package/.next/static/{5bvXa9VuwCjy1WNEj0yoW → OhhT30BnG1-kXYvlQ_2y3}/_clientMiddlewareManifest.js +0 -0
  324. /package/.next/static/{5bvXa9VuwCjy1WNEj0yoW → OhhT30BnG1-kXYvlQ_2y3}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},43515,a=>{"use strict";a.s(["formatUptime",0,function(a){let b=Math.floor(a/3600),c=Math.floor(a%3600/60);return b>0?`${b}h ${c}m`:`${c}m`},"timeAgo",0,function(a){if(!a)return"--";let b=Math.floor((Date.now()-new Date(a.replace(" ","T")+"Z").getTime())/1e3);return b<60?`${b}s ago`:b<3600?`${Math.floor(b/60)}m ago`:b<86400?`${Math.floor(b/3600)}h ago`:`${Math.floor(b/86400)}d ago`}])},44332,a=>{"use strict";var b=a.i(72596),c=a.i(22397);let d=async a=>{let b=await fetch(a);if(401===b.status)throw window.location.assign("/login"),Error("unauthorized");return b.json()},e={refreshInterval:5e3,dedupingInterval:3e3};function f(a,b){if(!b)return a;let c=a.includes("?")?"&":"?";return`${a}${c}network_id=${encodeURIComponent(b)}`}a.s(["useAnetConfig",0,function(){let{data:a}=(0,b.default)("/api/anet/config",d,{refreshInterval:3e4});return{config:a||null}},"useHealth",0,function(){let{data:a,error:c}=(0,b.default)("/api/hub/health",d,e);return{health:a||null,error:c}},"useLicense",0,function(){let{data:a,error:c}=(0,b.default)("/api/hub/license",d,{refreshInterval:6e4});return{license:a?.ok?a:null,error:c}},"useMessages",0,function(a=100){let{networkId:g}=(0,c.useNetworkId)(),{data:h,error:i,isLoading:j}=(0,b.default)(f(`/api/hub/messages?limit=${a}`,g),d,e);return{messages:h?.messages||[],error:i,isLoading:j}},"useSessions",0,function(){let{networkId:a}=(0,c.useNetworkId)(),{data:g,error:h,isLoading:i}=(0,b.default)(f("/api/hub/status",a),d,e);return{sessions:g?.sessions||[],hint:g?._hint,error:h,isLoading:i}},"useStats",0,function(){let{networkId:a}=(0,c.useNetworkId)(),{data:g,error:h}=(0,b.default)(f("/api/hub/stats",a),d,e);return{stats:g?.ok?g:null,error:h}},"useTasks",0,function(a){let{networkId:g}=(0,c.useNetworkId)(),h=new URLSearchParams({limit:"100",...a}).toString(),{data:i,error:j,isLoading:k}=(0,b.default)(f(`/api/hub/tasks?${h}`,g),d,e);return{tasks:i?.tasks||[],count:i?.count??0,source:i?.source,error:j,isLoading:k}}])},54826,(a,b,c)=>{},15299,(a,b,c)=>{a.r(54826);var d=a.r(72131),e=d&&"object"==typeof d&&"default"in d?d:{default:d},f="u">typeof process&&process.env&&!0,g=function(a){return"[object String]"===Object.prototype.toString.call(a)},h=function(){function a(a){var b=void 0===a?{}:a,c=b.name,d=void 0===c?"stylesheet":c,e=b.optimizeForSpeed,h=void 0===e?f:e;i(g(d),"`name` must be a string"),this._name=d,this._deletedRulePlaceholder="#"+d+"-deleted-rule____{}",i("boolean"==typeof h,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=h,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0,this._nonce=null}var b,c=a.prototype;return c.setOptimizeForSpeed=function(a){i("boolean"==typeof a,"`setOptimizeForSpeed` accepts a boolean"),i(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=a,this.inject()},c.isOptimizeForSpeed=function(){return this._optimizeForSpeed},c.inject=function(){var a=this;i(!this._injected,"sheet already injected"),this._injected=!0,this._serverSheet={cssRules:[],insertRule:function(b,c){return"number"==typeof c?a._serverSheet.cssRules[c]={cssText:b}:a._serverSheet.cssRules.push({cssText:b}),c},deleteRule:function(b){a._serverSheet.cssRules[b]=null}}},c.getSheetForTag=function(a){if(a.sheet)return a.sheet;for(var b=0;b<document.styleSheets.length;b++)if(document.styleSheets[b].ownerNode===a)return document.styleSheets[b]},c.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},c.insertRule=function(a,b){return i(g(a),"`insertRule` accepts only strings"),"number"!=typeof b&&(b=this._serverSheet.cssRules.length),this._serverSheet.insertRule(a,b),this._rulesCount++},c.replaceRule=function(a,b){this._optimizeForSpeed;var c=this._serverSheet;if(b.trim()||(b=this._deletedRulePlaceholder),!c.cssRules[a])return a;c.deleteRule(a);try{c.insertRule(b,a)}catch(d){f||console.warn("StyleSheet: illegal rule: \n\n"+b+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),c.insertRule(this._deletedRulePlaceholder,a)}return a},c.deleteRule=function(a){this._serverSheet.deleteRule(a)},c.flush=function(){this._injected=!1,this._rulesCount=0,this._serverSheet.cssRules=[]},c.cssRules=function(){return this._serverSheet.cssRules},c.makeStyleTag=function(a,b,c){b&&i(g(b),"makeStyleTag accepts only strings as second parameter");var d=document.createElement("style");this._nonce&&d.setAttribute("nonce",this._nonce),d.type="text/css",d.setAttribute("data-"+a,""),b&&d.appendChild(document.createTextNode(b));var e=document.head||document.getElementsByTagName("head")[0];return c?e.insertBefore(d,c):e.appendChild(d),d},b=[{key:"length",get:function(){return this._rulesCount}}],function(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}(a.prototype,b),a}();function i(a,b){if(!a)throw Error("StyleSheet: "+b+".")}var j=function(a){for(var b=5381,c=a.length;c;)b=33*b^a.charCodeAt(--c);return b>>>0},k={};function l(a,b){if(!b)return"jsx-"+a;var c=String(b),d=a+c;return k[d]||(k[d]="jsx-"+j(a+"-"+c)),k[d]}function m(a,b){var c=a+(b=b.replace(/\/style/gi,"\\/style"));return k[c]||(k[c]=b.replace(/__jsx-style-dynamic-selector/g,a)),k[c]}var n=function(){function a(a){var b=void 0===a?{}:a,c=b.styleSheet,d=void 0===c?null:c,e=b.optimizeForSpeed,f=void 0!==e&&e;this._sheet=d||new h({name:"styled-jsx",optimizeForSpeed:f}),this._sheet.inject(),d&&"boolean"==typeof f&&(this._sheet.setOptimizeForSpeed(f),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var b=a.prototype;return b.add=function(a){var b=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(a.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed());var c=this.getIdAndRules(a),d=c.styleId,e=c.rules;if(d in this._instancesCounts){this._instancesCounts[d]+=1;return}var f=e.map(function(a){return b._sheet.insertRule(a)}).filter(function(a){return -1!==a});this._indices[d]=f,this._instancesCounts[d]=1},b.remove=function(a){var b=this,c=this.getIdAndRules(a).styleId;if(function(a,b){if(!a)throw Error("StyleSheetRegistry: "+b+".")}(c in this._instancesCounts,"styleId: `"+c+"` not found"),this._instancesCounts[c]-=1,this._instancesCounts[c]<1){var d=this._fromServer&&this._fromServer[c];d?(d.parentNode.removeChild(d),delete this._fromServer[c]):(this._indices[c].forEach(function(a){return b._sheet.deleteRule(a)}),delete this._indices[c]),delete this._instancesCounts[c]}},b.update=function(a,b){this.add(b),this.remove(a)},b.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},b.cssRules=function(){var a=this,b=this._fromServer?Object.keys(this._fromServer).map(function(b){return[b,a._fromServer[b]]}):[],c=this._sheet.cssRules();return b.concat(Object.keys(this._indices).map(function(b){return[b,a._indices[b].map(function(a){return c[a].cssText}).join(a._optimizeForSpeed?"":"\n")]}).filter(function(a){return!!a[1]}))},b.styles=function(a){var b,c;return b=this.cssRules(),void 0===(c=a)&&(c={}),b.map(function(a){var b=a[0],d=a[1];return e.default.createElement("style",{id:"__"+b,key:"__"+b,nonce:c.nonce?c.nonce:void 0,dangerouslySetInnerHTML:{__html:d}})})},b.getIdAndRules=function(a){var b=a.children,c=a.dynamic,d=a.id;if(c){var e=l(d,c);return{styleId:e,rules:Array.isArray(b)?b.map(function(a){return m(e,a)}):[m(e,b)]}}return{styleId:l(d),rules:Array.isArray(b)?b:[b]}},b.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(a,b){return a[b.id.slice(2)]=b,a},{})},a}(),o=d.createContext(null);function p(){return new n}function q(){return d.useContext(o)}function r(a){var b=q();return b&&b.add(a),null}o.displayName="StyleSheetContext",e.default.useInsertionEffect||e.default.useLayoutEffect,r.dynamic=function(a){return a.map(function(a){return l(a[0],a[1])}).join(" ")},c.StyleRegistry=function(a){var b=a.registry,c=a.children,f=d.useContext(o),g=d.useState(function(){return f||b||p()})[0];return e.default.createElement(o.Provider,{value:g},c)},c.createStyleRegistry=p,c.style=r,c.useStyleRegistry=q},31626,(a,b,c)=>{b.exports=a.r(15299).style},96794,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(43515),f=a.i(44332),g=a.i(15261);let h={working:"bg-green-500/10 text-green-300 border-green-500/20",idle:"bg-blue-500/10 text-blue-300 border-blue-500/20",blocked:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",error:"bg-red-500/10 text-red-300 border-red-500/20",offline:"bg-gray-500/10 text-gray-500 border-gray-500/20"};a.s(["default",0,function(){let a,i,j,k,{sessions:l,isLoading:m}=(0,f.useSessions)(),{health:n}=(0,f.useHealth)(),o=n?.sse_sessions||{},[p,q]=(0,c.useState)(""),[r,s]=(0,c.useState)(""),[t,u]=(0,c.useState)("list"),[v,w]=(0,c.useState)({}),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)({}),[B,C]=(0,c.useState)(null),D=l.map(a=>({...a,online:!!o[a.alias]})).filter(a=>"online"===p?a.online:"offline"===p?!a.online:!p||p===a.status).filter(a=>!r||a.alias.toLowerCase().includes(r.toLowerCase())||(a.agent||"").toLowerCase().includes(r.toLowerCase())).sort((a,b)=>!!b.online-!!a.online||("working"===b.status)-("working"===a.status)),E=l.filter(a=>o[a.alias]).length,F=a=>{y(b=>b===a?null:a),A(b=>({...b,[a]:{}}))},G=(a,b)=>{w(c=>({...c,[a]:b}))},H=async a=>{let b=v[a]?.trim()||"";if(b){A(b=>({...b,[a]:{sending:!0}}));try{let c=await fetch("/api/hub/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:a,task:b})}),d=await c.json();if(!c.ok||d?.ok===!1)throw Error(d?.error||"Send failed");w(b=>({...b,[a]:""})),A(b=>({...b,[a]:{success:"Task sent"}})),y(null)}catch(b){A(c=>({...c,[a]:{error:b instanceof Error?b.message:"Send failed"}}))}}};return(0,b.jsxs)("div",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4 mb-6",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold text-white lg:ml-0 ml-10",children:"Nodes"}),(0,b.jsxs)("span",{className:"text-xs bg-green-900/30 text-green-400 px-2 py-0.5 rounded-full border border-green-800/30",children:[E," online"]}),(0,b.jsxs)("span",{className:"text-xs bg-gray-900/30 text-gray-400 px-2 py-0.5 rounded-full border border-gray-800/30",children:[l.length," total"]})]}),l.length>0&&(a=D.filter(a=>a.online&&"working"===a.status).length,i=D.filter(a=>a.online&&"idle"===a.status).length,j=D.filter(a=>!a.online).length,k=D.length||1,(0,b.jsxs)("div",{className:"mb-6",children:[(0,b.jsxs)("div",{className:"flex h-2 rounded-full overflow-hidden bg-gray-800",children:[a>0&&(0,b.jsx)("div",{className:"bg-green-500",style:{width:`${a/k*100}%`}}),i>0&&(0,b.jsx)("div",{className:"bg-cyan-500",style:{width:`${i/k*100}%`}}),j>0&&(0,b.jsx)("div",{className:"bg-gray-600",style:{width:`${j/k*100}%`}})]}),(0,b.jsxs)("div",{className:"flex gap-4 mt-1.5 text-[10px] text-gray-500",children:[a>0&&(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-green-500 mr-1"}),a," working"]}),i>0&&(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-cyan-500 mr-1"}),i," idle"]}),j>0&&(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-gray-600 mr-1"}),j," offline"]})]})]})),(0,b.jsxs)("div",{className:"flex flex-wrap gap-3 mb-6",children:[(0,b.jsx)("input",{type:"text",value:r,onChange:a=>s(a.target.value),placeholder:"Search nodes...",className:"bg-[#111128] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-blue-500/50 focus:outline-none w-48"}),(0,b.jsxs)("select",{value:p,onChange:a=>q(a.target.value),className:"bg-[#111128] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white focus:border-blue-500/50 focus:outline-none",children:[(0,b.jsx)("option",{value:"",children:"All"}),(0,b.jsx)("option",{value:"online",children:"Online"}),(0,b.jsx)("option",{value:"offline",children:"Offline"}),(0,b.jsx)("option",{value:"working",children:"Working"}),(0,b.jsx)("option",{value:"idle",children:"Idle"}),(0,b.jsx)("option",{value:"blocked",children:"Blocked"}),(0,b.jsx)("option",{value:"error",children:"Error"})]}),(0,b.jsx)("div",{className:"ml-auto flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 text-sm",children:["list","grid"].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>u(a),className:`rounded-md px-3 py-1.5 transition-colors ${t===a?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"list"===a?"List":"Grid"},a))})]}),m?(0,b.jsx)("div",{className:"animate-pulse space-y-2",children:[1,2,3,4].map(a=>(0,b.jsx)("div",{className:"h-16 bg-gray-800/20 rounded-lg"},a))}):0===D.length?(0,b.jsx)("div",{className:"text-center py-16 text-gray-600",children:"No nodes match your filters."}):"grid"===t?(0,b.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:D.map(a=>{let c=a.online?a.status:"offline",f=z[a.alias]||{},g="number"==typeof a.progress?a.progress:0;return(0,b.jsxs)("div",{className:`relative overflow-hidden rounded-xl border border-[#2a2a4a] bg-[#111128] p-4 transition-colors ${!a.online?"opacity-60":""}`,children:[!a.online&&(0,b.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:(0,b.jsx)("span",{className:"rotate-[-20deg] rounded-xl border border-white/10 bg-black/20 px-5 py-2 text-xl font-bold uppercase tracking-[0.35em] text-white/10",children:"Offline"})}),(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsx)(d.default,{href:`/node?alias=${encodeURIComponent(a.alias)}`,className:"min-w-0 flex-1 hover:text-cyan-300",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"truncate text-base font-semibold text-white",children:a.alias}),(0,b.jsx)("span",{className:`shrink-0 rounded-md border px-2 py-0.5 text-[11px] ${h[c]||h.offline}`,children:c})]})}),(0,b.jsxs)("div",{className:"flex gap-1.5 shrink-0",children:[(0,b.jsx)("button",{type:"button",onClick:()=>C(a.alias),className:"rounded-lg border border-green-500/20 bg-green-500/10 px-3 py-1.5 text-xs text-green-300 transition-colors hover:bg-green-500/20",children:"Chat"}),(0,b.jsx)("button",{type:"button",onClick:()=>F(a.alias),className:"rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-3 py-1.5 text-xs text-cyan-300 transition-colors hover:bg-cyan-500/20",children:"Task"})]})]}),(0,b.jsxs)("div",{className:"mt-3 space-y-2 text-xs text-gray-500",children:[(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("span",{children:"Agent"}),(0,b.jsx)("span",{className:"truncate text-gray-300",children:a.agent||"--"})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("span",{children:"Server"}),(0,b.jsx)("span",{className:"truncate text-gray-300",children:a.server||"--"})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("span",{children:"Updated"}),(0,b.jsx)("span",{className:"text-gray-300",children:(0,e.timeAgo)(a.last_seen_at||a.updated_at)})]})]}),(0,b.jsx)("div",{className:"mt-3 rounded-lg border border-[#1a1a2a] bg-[#0a0a15] px-3 py-2 text-xs text-gray-400",children:a.task?a.task:"No current task"}),g>0&&g<100&&(0,b.jsx)("div",{className:"mt-3 h-1.5 overflow-hidden rounded-full bg-gray-800",children:(0,b.jsx)("div",{className:"h-1.5 rounded-full bg-cyan-400 transition-all",style:{width:`${g}%`}})}),x===a.alias&&(0,b.jsxs)("div",{className:"mt-4 space-y-2 rounded-lg border border-[#2a2a4a] bg-[#0a0a15] p-3",children:[(0,b.jsx)("input",{type:"text",value:v[a.alias]||"",onChange:b=>G(a.alias,b.target.value),onKeyDown:b=>"Enter"===b.key&&H(a.alias),placeholder:`Send task to ${a.alias}...`,className:"w-full rounded-lg border border-[#2a2a4a] bg-[#050510] px-3 py-2 text-xs text-white placeholder-gray-600 focus:border-cyan-500 focus:outline-none"}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:()=>y(null),className:"rounded-lg border border-gray-700 px-3 py-1.5 text-xs text-gray-400 hover:text-gray-200",children:"Cancel"}),(0,b.jsx)("button",{type:"button",onClick:()=>H(a.alias),disabled:f.sending||!(v[a.alias]||"").trim(),className:"rounded-lg bg-cyan-600 px-3 py-1.5 text-xs text-white hover:bg-cyan-500 disabled:cursor-not-allowed disabled:bg-gray-700",children:f.sending?"Sending...":"Send"})]})]}),f.error&&(0,b.jsx)("div",{className:"mt-2 text-xs text-red-400",children:f.error}),f.success&&x!==a.alias&&(0,b.jsx)("div",{className:"mt-2 text-xs text-green-400",children:f.success})]},a.alias)})}):(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 px-4 py-2 text-xs text-gray-600 uppercase",children:[(0,b.jsx)("div",{className:"col-span-1",children:"Status"}),(0,b.jsx)("div",{className:"col-span-2",children:"Alias"}),(0,b.jsx)("div",{className:"col-span-2",children:"Agent"}),(0,b.jsx)("div",{className:"col-span-2",children:"Server"}),(0,b.jsx)("div",{className:"col-span-2",children:"Current Task"}),(0,b.jsx)("div",{className:"col-span-1",children:"Updated"}),(0,b.jsx)("div",{className:"col-span-2 text-right",children:"Actions"})]}),D.map(a=>{let c=a.online?a.status:"offline",f=z[a.alias]||{};return(0,b.jsxs)("div",{className:`rounded-lg border border-[#2a2a4a] bg-[#111128] px-4 py-3 transition-colors hover:border-[#3a3a5a] ${!a.online?"opacity-50":""}`,children:[(0,b.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 items-center",children:[(0,b.jsx)("div",{className:"col-span-1",children:(0,b.jsx)("span",{className:`text-xs px-2 py-0.5 rounded-md border ${h[c]||h.offline}`,children:c})}),(0,b.jsx)("div",{className:"col-span-2 min-w-0",children:(0,b.jsx)(d.default,{href:`/node?alias=${encodeURIComponent(a.alias)}`,className:"truncate text-sm font-medium text-white hover:text-cyan-300",children:a.alias})}),(0,b.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",children:a.agent||"--"}),(0,b.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",children:a.server||"--"}),(0,b.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-500",children:a.task||"--"}),(0,b.jsx)("div",{className:"col-span-1 text-xs text-gray-500",children:(0,e.timeAgo)(a.last_seen_at||a.updated_at)}),(0,b.jsxs)("div",{className:"col-span-2 flex justify-end gap-1.5",children:[(0,b.jsx)("button",{type:"button",onClick:()=>C(a.alias),className:"rounded-lg border border-green-500/20 bg-green-500/10 px-2 py-1 text-xs text-green-300 hover:bg-green-500/20",children:"Chat"}),(0,b.jsx)("button",{type:"button",onClick:()=>F(a.alias),className:"rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-2 py-1 text-xs text-cyan-300 hover:bg-cyan-500/20",children:"Task"})]})]}),(0,b.jsxs)("div",{className:"sm:hidden space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)(d.default,{href:`/node?alias=${encodeURIComponent(a.alias)}`,className:"truncate text-sm font-medium text-white hover:text-cyan-300",children:a.alias}),(0,b.jsx)("span",{className:`shrink-0 text-xs px-2 py-0.5 rounded-md border ${h[c]||h.offline}`,children:c})]}),(0,b.jsxs)("div",{className:"text-xs text-gray-500",children:[a.agent||"--"," · ",(0,e.timeAgo)(a.last_seen_at||a.updated_at)]}),a.task&&(0,b.jsx)("div",{className:"truncate text-xs text-gray-500",children:a.task}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:()=>C(a.alias),className:"flex-1 rounded-lg border border-green-500/20 bg-green-500/10 px-3 py-2 text-xs text-green-300 hover:bg-green-500/20",children:"Chat"}),(0,b.jsx)("button",{type:"button",onClick:()=>F(a.alias),className:"flex-1 rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-3 py-2 text-xs text-cyan-300 hover:bg-cyan-500/20",children:"Send Task"})]})]}),x===a.alias&&(0,b.jsxs)("div",{className:"mt-3 space-y-2 border-t border-[#2a2a4a] pt-3",children:[(0,b.jsx)("input",{type:"text",value:v[a.alias]||"",onChange:b=>G(a.alias,b.target.value),onKeyDown:b=>"Enter"===b.key&&H(a.alias),placeholder:`Send task to ${a.alias}...`,className:"w-full rounded-lg border border-[#2a2a4a] bg-[#0a0a15] px-3 py-2 text-xs text-white placeholder-gray-600 focus:border-cyan-500 focus:outline-none"}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:()=>y(null),className:"rounded-lg border border-gray-700 px-3 py-1.5 text-xs text-gray-400 hover:text-gray-200",children:"Cancel"}),(0,b.jsx)("button",{type:"button",onClick:()=>H(a.alias),disabled:f.sending||!(v[a.alias]||"").trim(),className:"rounded-lg bg-cyan-600 px-3 py-1.5 text-xs text-white hover:bg-cyan-500 disabled:cursor-not-allowed disabled:bg-gray-700",children:f.sending?"Sending...":"Send"})]})]}),f.error&&(0,b.jsx)("div",{className:"mt-2 text-xs text-red-400",children:f.error}),f.success&&x!==a.alias&&(0,b.jsx)("div",{className:"mt-2 text-xs text-green-400",children:f.success})]},a.alias)})]}),B&&(0,b.jsx)(g.TaskChatPanel,{alias:B,onClose:()=>C(null)})]})}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0~yad5w._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../app/components/utils.ts","../../../../app/lib/hooks.ts","../../../../node_modules/styled-jsx/dist/index/index.js","../../../../node_modules/styled-jsx/style.js","../../../../app/nodes/page.tsx"],"sourcesContent":["export function timeAgo(dateStr: string): string {\n if (!dateStr) return '--';\n const diff = Date.now() - new Date(dateStr.replace(' ', 'T') + 'Z').getTime();\n const s = Math.floor(diff / 1000);\n if (s < 60) return `${s}s ago`;\n if (s < 3600) return `${Math.floor(s / 60)}m ago`;\n if (s < 86400) return `${Math.floor(s / 3600)}h ago`;\n return `${Math.floor(s / 86400)}d ago`;\n}\n\nexport function statusColor(status: string, hasSse: boolean): string {\n if (hasSse && status === 'working') return 'bg-green-500';\n if (hasSse && status === 'idle') return 'bg-emerald-400';\n if (hasSse) return 'bg-blue-400';\n if (status === 'offline') return 'bg-gray-500';\n return 'bg-yellow-400';\n}\n\nexport function formatUptime(seconds: number): string {\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n if (h > 0) return `${h}h ${m}m`;\n return `${m}m`;\n}\n","import useSWR from 'swr';\nimport { Session, Health, AnetConfig } from '../components/types';\nimport { useNetworkId } from './network-context';\n\nconst fetcher = async (url: string) => {\n const res = await fetch(url);\n if (res.status === 401) {\n window.location.assign('/login');\n throw new Error('unauthorized');\n }\n return res.json();\n};\n\nconst SWR_OPTIONS = { refreshInterval: 5000, dedupingInterval: 3000 };\n\n/** Append network_id to URL if set */\nfunction withNetwork(url: string, networkId: string): string {\n if (!networkId) return url;\n const sep = url.includes('?') ? '&' : '?';\n return `${url}${sep}network_id=${encodeURIComponent(networkId)}`;\n}\n\nexport function useSessions() {\n const { networkId } = useNetworkId();\n const { data, error, isLoading } = useSWR<{ sessions: Session[]; _hint?: { global_count?: number; filtered_network?: string } }>(\n withNetwork('/api/hub/status', networkId),\n fetcher,\n SWR_OPTIONS,\n );\n return { sessions: data?.sessions || [], hint: data?._hint, error, isLoading };\n}\n\nexport function useHealth() {\n const { data, error } = useSWR<Health>('/api/hub/health', fetcher, SWR_OPTIONS);\n return { health: data || null, error };\n}\n\nexport function useAnetConfig() {\n const { data } = useSWR<AnetConfig>('/api/anet/config', fetcher, { refreshInterval: 30000 });\n return { config: data || null };\n}\n\nexport function useTasks(params?: Record<string, string>) {\n const { networkId } = useNetworkId();\n const query = new URLSearchParams({ limit: '100', ...params }).toString();\n const { data, error, isLoading } = useSWR(\n withNetwork(`/api/hub/tasks?${query}`, networkId),\n fetcher,\n SWR_OPTIONS,\n );\n return {\n tasks: data?.tasks || [],\n count: data?.count ?? 0,\n source: data?.source,\n error,\n isLoading,\n };\n}\n\nexport function useStats() {\n const { networkId } = useNetworkId();\n const { data, error } = useSWR(withNetwork('/api/hub/stats', networkId), fetcher, SWR_OPTIONS);\n return { stats: data?.ok ? data : null, error };\n}\n\nexport function useLicense() {\n const { data, error } = useSWR('/api/hub/license', fetcher, { refreshInterval: 60000 });\n return { license: data?.ok ? data : null, error };\n}\n\nexport function useMessages(limit = 100) {\n const { networkId } = useNetworkId();\n const { data, error, isLoading } = useSWR(\n withNetwork(`/api/hub/messages?limit=${limit}`, networkId),\n fetcher,\n SWR_OPTIONS,\n );\n return { messages: data?.messages || [], error, isLoading };\n}\n\nexport function useNodeSession(alias: string) {\n const { data, error, isLoading } = useSWR(\n alias ? `/api/hub/session?alias=${encodeURIComponent(alias)}` : null,\n fetcher,\n SWR_OPTIONS,\n );\n return {\n session: data?.session || null,\n inbox: data?.inbox || [],\n sse: data?.sse || 0,\n error,\n isLoading,\n };\n}\n","require('client-only');\nvar React = require('react');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar React__default = /*#__PURE__*/_interopDefaultLegacy(React);\n\n/*\nBased on Glamor's sheet\nhttps://github.com/threepointone/glamor/blob/667b480d31b3721a905021b26e1290ce92ca2879/src/sheet.js\n*/ function _defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nvar isProd = typeof process !== \"undefined\" && process.env && process.env.NODE_ENV === \"production\";\nvar isString = function(o) {\n return Object.prototype.toString.call(o) === \"[object String]\";\n};\nvar StyleSheet = /*#__PURE__*/ function() {\n function StyleSheet(param) {\n var ref = param === void 0 ? {} : param, _name = ref.name, name = _name === void 0 ? \"stylesheet\" : _name, _optimizeForSpeed = ref.optimizeForSpeed, optimizeForSpeed = _optimizeForSpeed === void 0 ? isProd : _optimizeForSpeed;\n invariant$1(isString(name), \"`name` must be a string\");\n this._name = name;\n this._deletedRulePlaceholder = \"#\" + name + \"-deleted-rule____{}\";\n invariant$1(typeof optimizeForSpeed === \"boolean\", \"`optimizeForSpeed` must be a boolean\");\n this._optimizeForSpeed = optimizeForSpeed;\n this._serverSheet = undefined;\n this._tags = [];\n this._injected = false;\n this._rulesCount = 0;\n var node = typeof window !== \"undefined\" && document.querySelector('meta[property=\"csp-nonce\"]');\n this._nonce = node ? node.getAttribute(\"content\") : null;\n }\n var _proto = StyleSheet.prototype;\n _proto.setOptimizeForSpeed = function setOptimizeForSpeed(bool) {\n invariant$1(typeof bool === \"boolean\", \"`setOptimizeForSpeed` accepts a boolean\");\n invariant$1(this._rulesCount === 0, \"optimizeForSpeed cannot be when rules have already been inserted\");\n this.flush();\n this._optimizeForSpeed = bool;\n this.inject();\n };\n _proto.isOptimizeForSpeed = function isOptimizeForSpeed() {\n return this._optimizeForSpeed;\n };\n _proto.inject = function inject() {\n var _this = this;\n invariant$1(!this._injected, \"sheet already injected\");\n this._injected = true;\n if (typeof window !== \"undefined\" && this._optimizeForSpeed) {\n this._tags[0] = this.makeStyleTag(this._name);\n this._optimizeForSpeed = \"insertRule\" in this.getSheet();\n if (!this._optimizeForSpeed) {\n if (!isProd) {\n console.warn(\"StyleSheet: optimizeForSpeed mode not supported falling back to standard mode.\");\n }\n this.flush();\n this._injected = true;\n }\n return;\n }\n this._serverSheet = {\n cssRules: [],\n insertRule: function(rule, index) {\n if (typeof index === \"number\") {\n _this._serverSheet.cssRules[index] = {\n cssText: rule\n };\n } else {\n _this._serverSheet.cssRules.push({\n cssText: rule\n });\n }\n return index;\n },\n deleteRule: function(index) {\n _this._serverSheet.cssRules[index] = null;\n }\n };\n };\n _proto.getSheetForTag = function getSheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n }\n // this weirdness brought to you by firefox\n for(var i = 0; i < document.styleSheets.length; i++){\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n }\n };\n _proto.getSheet = function getSheet() {\n return this.getSheetForTag(this._tags[this._tags.length - 1]);\n };\n _proto.insertRule = function insertRule(rule, index) {\n invariant$1(isString(rule), \"`insertRule` accepts only strings\");\n if (typeof window === \"undefined\") {\n if (typeof index !== \"number\") {\n index = this._serverSheet.cssRules.length;\n }\n this._serverSheet.insertRule(rule, index);\n return this._rulesCount++;\n }\n if (this._optimizeForSpeed) {\n var sheet = this.getSheet();\n if (typeof index !== \"number\") {\n index = sheet.cssRules.length;\n }\n // this weirdness for perf, and chrome's weird bug\n // https://stackoverflow.com/questions/20007992/chrome-suddenly-stopped-accepting-insertrule\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n }\n return -1;\n }\n } else {\n var insertionPoint = this._tags[index];\n this._tags.push(this.makeStyleTag(this._name, rule, insertionPoint));\n }\n return this._rulesCount++;\n };\n _proto.replaceRule = function replaceRule(index, rule) {\n if (this._optimizeForSpeed || typeof window === \"undefined\") {\n var sheet = typeof window !== \"undefined\" ? this.getSheet() : this._serverSheet;\n if (!rule.trim()) {\n rule = this._deletedRulePlaceholder;\n }\n if (!sheet.cssRules[index]) {\n // @TBD Should we throw an error?\n return index;\n }\n sheet.deleteRule(index);\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n }\n // In order to preserve the indices we insert a deleteRulePlaceholder\n sheet.insertRule(this._deletedRulePlaceholder, index);\n }\n } else {\n var tag = this._tags[index];\n invariant$1(tag, \"old rule at index `\" + index + \"` not found\");\n tag.textContent = rule;\n }\n return index;\n };\n _proto.deleteRule = function deleteRule(index) {\n if (typeof window === \"undefined\") {\n this._serverSheet.deleteRule(index);\n return;\n }\n if (this._optimizeForSpeed) {\n this.replaceRule(index, \"\");\n } else {\n var tag = this._tags[index];\n invariant$1(tag, \"rule at index `\" + index + \"` not found\");\n tag.parentNode.removeChild(tag);\n this._tags[index] = null;\n }\n };\n _proto.flush = function flush() {\n this._injected = false;\n this._rulesCount = 0;\n if (typeof window !== \"undefined\") {\n this._tags.forEach(function(tag) {\n return tag && tag.parentNode.removeChild(tag);\n });\n this._tags = [];\n } else {\n // simpler on server\n this._serverSheet.cssRules = [];\n }\n };\n _proto.cssRules = function cssRules() {\n var _this = this;\n if (typeof window === \"undefined\") {\n return this._serverSheet.cssRules;\n }\n return this._tags.reduce(function(rules, tag) {\n if (tag) {\n rules = rules.concat(Array.prototype.map.call(_this.getSheetForTag(tag).cssRules, function(rule) {\n return rule.cssText === _this._deletedRulePlaceholder ? null : rule;\n }));\n } else {\n rules.push(null);\n }\n return rules;\n }, []);\n };\n _proto.makeStyleTag = function makeStyleTag(name, cssString, relativeToTag) {\n if (cssString) {\n invariant$1(isString(cssString), \"makeStyleTag accepts only strings as second parameter\");\n }\n var tag = document.createElement(\"style\");\n if (this._nonce) tag.setAttribute(\"nonce\", this._nonce);\n tag.type = \"text/css\";\n tag.setAttribute(\"data-\" + name, \"\");\n if (cssString) {\n tag.appendChild(document.createTextNode(cssString));\n }\n var head = document.head || document.getElementsByTagName(\"head\")[0];\n if (relativeToTag) {\n head.insertBefore(tag, relativeToTag);\n } else {\n head.appendChild(tag);\n }\n return tag;\n };\n _createClass(StyleSheet, [\n {\n key: \"length\",\n get: function get() {\n return this._rulesCount;\n }\n }\n ]);\n return StyleSheet;\n}();\nfunction invariant$1(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheet: \" + message + \".\");\n }\n}\n\nfunction hash(str) {\n var _$hash = 5381, i = str.length;\n while(i){\n _$hash = _$hash * 33 ^ str.charCodeAt(--i);\n }\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n * integers. Since we want the results to be always positive, convert the\n * signed int to an unsigned by doing an unsigned bitshift. */ return _$hash >>> 0;\n}\nvar stringHash = hash;\n\nvar sanitize = function(rule) {\n return rule.replace(/\\/style/gi, \"\\\\/style\");\n};\nvar cache = {};\n/**\n * computeId\n *\n * Compute and memoize a jsx id from a basedId and optionally props.\n */ function computeId(baseId, props) {\n if (!props) {\n return \"jsx-\" + baseId;\n }\n var propsToString = String(props);\n var key = baseId + propsToString;\n if (!cache[key]) {\n cache[key] = \"jsx-\" + stringHash(baseId + \"-\" + propsToString);\n }\n return cache[key];\n}\n/**\n * computeSelector\n *\n * Compute and memoize dynamic selectors.\n */ function computeSelector(id, css) {\n var selectoPlaceholderRegexp = /__jsx-style-dynamic-selector/g;\n // Sanitize SSR-ed CSS.\n // Client side code doesn't need to be sanitized since we use\n // document.createTextNode (dev) and the CSSOM api sheet.insertRule (prod).\n if (typeof window === \"undefined\") {\n css = sanitize(css);\n }\n var idcss = id + css;\n if (!cache[idcss]) {\n cache[idcss] = css.replace(selectoPlaceholderRegexp, id);\n }\n return cache[idcss];\n}\n\nfunction mapRulesToStyle(cssRules, options) {\n if (options === void 0) options = {};\n return cssRules.map(function(args) {\n var id = args[0];\n var css = args[1];\n return /*#__PURE__*/ React__default[\"default\"].createElement(\"style\", {\n id: \"__\" + id,\n // Avoid warnings upon render with a key\n key: \"__\" + id,\n nonce: options.nonce ? options.nonce : undefined,\n dangerouslySetInnerHTML: {\n __html: css\n }\n });\n });\n}\nvar StyleSheetRegistry = /*#__PURE__*/ function() {\n function StyleSheetRegistry(param) {\n var ref = param === void 0 ? {} : param, _styleSheet = ref.styleSheet, styleSheet = _styleSheet === void 0 ? null : _styleSheet, _optimizeForSpeed = ref.optimizeForSpeed, optimizeForSpeed = _optimizeForSpeed === void 0 ? false : _optimizeForSpeed;\n this._sheet = styleSheet || new StyleSheet({\n name: \"styled-jsx\",\n optimizeForSpeed: optimizeForSpeed\n });\n this._sheet.inject();\n if (styleSheet && typeof optimizeForSpeed === \"boolean\") {\n this._sheet.setOptimizeForSpeed(optimizeForSpeed);\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n }\n var _proto = StyleSheetRegistry.prototype;\n _proto.add = function add(props) {\n var _this = this;\n if (undefined === this._optimizeForSpeed) {\n this._optimizeForSpeed = Array.isArray(props.children);\n this._sheet.setOptimizeForSpeed(this._optimizeForSpeed);\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n if (typeof window !== \"undefined\" && !this._fromServer) {\n this._fromServer = this.selectFromServer();\n this._instancesCounts = Object.keys(this._fromServer).reduce(function(acc, tagName) {\n acc[tagName] = 0;\n return acc;\n }, {});\n }\n var ref = this.getIdAndRules(props), styleId = ref.styleId, rules = ref.rules;\n // Deduping: just increase the instances count.\n if (styleId in this._instancesCounts) {\n this._instancesCounts[styleId] += 1;\n return;\n }\n var indices = rules.map(function(rule) {\n return _this._sheet.insertRule(rule);\n })// Filter out invalid rules\n .filter(function(index) {\n return index !== -1;\n });\n this._indices[styleId] = indices;\n this._instancesCounts[styleId] = 1;\n };\n _proto.remove = function remove(props) {\n var _this = this;\n var styleId = this.getIdAndRules(props).styleId;\n invariant(styleId in this._instancesCounts, \"styleId: `\" + styleId + \"` not found\");\n this._instancesCounts[styleId] -= 1;\n if (this._instancesCounts[styleId] < 1) {\n var tagFromServer = this._fromServer && this._fromServer[styleId];\n if (tagFromServer) {\n tagFromServer.parentNode.removeChild(tagFromServer);\n delete this._fromServer[styleId];\n } else {\n this._indices[styleId].forEach(function(index) {\n return _this._sheet.deleteRule(index);\n });\n delete this._indices[styleId];\n }\n delete this._instancesCounts[styleId];\n }\n };\n _proto.update = function update(props, nextProps) {\n this.add(nextProps);\n this.remove(props);\n };\n _proto.flush = function flush() {\n this._sheet.flush();\n this._sheet.inject();\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n };\n _proto.cssRules = function cssRules() {\n var _this = this;\n var fromServer = this._fromServer ? Object.keys(this._fromServer).map(function(styleId) {\n return [\n styleId,\n _this._fromServer[styleId]\n ];\n }) : [];\n var cssRules = this._sheet.cssRules();\n return fromServer.concat(Object.keys(this._indices).map(function(styleId) {\n return [\n styleId,\n _this._indices[styleId].map(function(index) {\n return cssRules[index].cssText;\n }).join(_this._optimizeForSpeed ? \"\" : \"\\n\")\n ];\n })// filter out empty rules\n .filter(function(rule) {\n return Boolean(rule[1]);\n }));\n };\n _proto.styles = function styles(options) {\n return mapRulesToStyle(this.cssRules(), options);\n };\n _proto.getIdAndRules = function getIdAndRules(props) {\n var css = props.children, dynamic = props.dynamic, id = props.id;\n if (dynamic) {\n var styleId = computeId(id, dynamic);\n return {\n styleId: styleId,\n rules: Array.isArray(css) ? css.map(function(rule) {\n return computeSelector(styleId, rule);\n }) : [\n computeSelector(styleId, css)\n ]\n };\n }\n return {\n styleId: computeId(id),\n rules: Array.isArray(css) ? css : [\n css\n ]\n };\n };\n /**\n * selectFromServer\n *\n * Collects style tags from the document with id __jsx-XXX\n */ _proto.selectFromServer = function selectFromServer() {\n var elements = Array.prototype.slice.call(document.querySelectorAll('[id^=\"__jsx-\"]'));\n return elements.reduce(function(acc, element) {\n var id = element.id.slice(2);\n acc[id] = element;\n return acc;\n }, {});\n };\n return StyleSheetRegistry;\n}();\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheetRegistry: \" + message + \".\");\n }\n}\nvar StyleSheetContext = /*#__PURE__*/ React.createContext(null);\nStyleSheetContext.displayName = \"StyleSheetContext\";\nfunction createStyleRegistry() {\n return new StyleSheetRegistry();\n}\nfunction StyleRegistry(param) {\n var configuredRegistry = param.registry, children = param.children;\n var rootRegistry = React.useContext(StyleSheetContext);\n var ref = React.useState(function() {\n return rootRegistry || configuredRegistry || createStyleRegistry();\n }), registry = ref[0];\n return /*#__PURE__*/ React__default[\"default\"].createElement(StyleSheetContext.Provider, {\n value: registry\n }, children);\n}\nfunction useStyleRegistry() {\n return React.useContext(StyleSheetContext);\n}\n\n// Opt-into the new `useInsertionEffect` API in React 18, fallback to `useLayoutEffect`.\n// https://github.com/reactwg/react-18/discussions/110\nvar useInsertionEffect = React__default[\"default\"].useInsertionEffect || React__default[\"default\"].useLayoutEffect;\nvar defaultRegistry = typeof window !== \"undefined\" ? createStyleRegistry() : undefined;\nfunction JSXStyle(props) {\n var registry = defaultRegistry ? defaultRegistry : useStyleRegistry();\n // If `registry` does not exist, we do nothing here.\n if (!registry) {\n return null;\n }\n if (typeof window === \"undefined\") {\n registry.add(props);\n return null;\n }\n useInsertionEffect(function() {\n registry.add(props);\n return function() {\n registry.remove(props);\n };\n // props.children can be string[], will be striped since id is identical\n }, [\n props.id,\n String(props.dynamic)\n ]);\n return null;\n}\nJSXStyle.dynamic = function(info) {\n return info.map(function(tagInfo) {\n var baseId = tagInfo[0];\n var props = tagInfo[1];\n return computeId(baseId, props);\n }).join(\" \");\n};\n\nexports.StyleRegistry = StyleRegistry;\nexports.createStyleRegistry = createStyleRegistry;\nexports.style = JSXStyle;\nexports.useStyleRegistry = useStyleRegistry;\n","module.exports = require('./dist/index').style\n","'use client';\n\nimport { useState } from 'react';\nimport Link from 'next/link';\nimport { timeAgo } from '../components/utils';\nimport { useSessions, useHealth } from '../lib/hooks';\nimport { TaskChatPanel } from '../components/TaskChatPanel';\nimport type { Session } from '../components/types';\n\nconst STATUS_COLORS: Record<string, string> = {\n working: 'bg-green-500/10 text-green-300 border-green-500/20',\n idle: 'bg-blue-500/10 text-blue-300 border-blue-500/20',\n blocked: 'bg-yellow-500/10 text-yellow-300 border-yellow-500/20',\n error: 'bg-red-500/10 text-red-300 border-red-500/20',\n offline: 'bg-gray-500/10 text-gray-500 border-gray-500/20',\n};\n\ntype ViewMode = 'list' | 'grid';\ntype SessionRow = Session & { online: boolean };\n\nexport default function NodesPage() {\n const { sessions, isLoading: loading } = useSessions();\n const { health } = useHealth();\n const sseMap = health?.sse_sessions || {};\n const [filterStatus, setFilterStatus] = useState('');\n const [search, setSearch] = useState('');\n const [viewMode, setViewMode] = useState<ViewMode>('list');\n const [taskDrafts, setTaskDrafts] = useState<Record<string, string>>({});\n const [taskOpenFor, setTaskOpenFor] = useState<string | null>(null);\n const [sendState, setSendState] = useState<Record<string, { sending?: boolean; error?: string; success?: string }>>({});\n const [chatAlias, setChatAlias] = useState<string | null>(null);\n\n const filtered: SessionRow[] = sessions\n .map(s => ({ ...s, online: !!sseMap[s.alias] }))\n .filter(s => {\n if (filterStatus === 'online') return s.online;\n if (filterStatus === 'offline') return !s.online;\n if (filterStatus && filterStatus !== s.status) return false;\n return true;\n })\n .filter(s => !search || s.alias.toLowerCase().includes(search.toLowerCase()) || (s.agent || '').toLowerCase().includes(search.toLowerCase()))\n .sort((a, b) => (b.online ? 1 : 0) - (a.online ? 1 : 0) || (b.status === 'working' ? 1 : 0) - (a.status === 'working' ? 1 : 0));\n\n const onlineCount = sessions.filter(s => sseMap[s.alias]).length;\n\n const openSendTask = (alias: string) => {\n setTaskOpenFor(current => current === alias ? null : alias);\n setSendState(prev => ({ ...prev, [alias]: {} }));\n };\n\n const updateTaskDraft = (alias: string, value: string) => {\n setTaskDrafts(prev => ({ ...prev, [alias]: value }));\n };\n\n const sendTask = async (alias: string) => {\n const task = taskDrafts[alias]?.trim() || '';\n if (!task) return;\n\n setSendState(prev => ({ ...prev, [alias]: { sending: true } }));\n\n try {\n const res = await fetch('/api/hub/send', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ alias, task }),\n });\n const data = await res.json();\n\n if (!res.ok || data?.ok === false) {\n throw new Error(data?.error || 'Send failed');\n }\n\n setTaskDrafts(prev => ({ ...prev, [alias]: '' }));\n setSendState(prev => ({ ...prev, [alias]: { success: 'Task sent' } }));\n setTaskOpenFor(null);\n } catch (error: unknown) {\n setSendState(prev => ({\n ...prev,\n [alias]: { error: error instanceof Error ? error.message : 'Send failed' },\n }));\n }\n };\n\n return (\n <div className=\"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono\">\n <div className=\"flex items-center gap-4 mb-6\">\n <h1 className=\"text-2xl font-bold text-white lg:ml-0 ml-10\">Nodes</h1>\n <span className=\"text-xs bg-green-900/30 text-green-400 px-2 py-0.5 rounded-full border border-green-800/30\">\n {onlineCount} online\n </span>\n <span className=\"text-xs bg-gray-900/30 text-gray-400 px-2 py-0.5 rounded-full border border-gray-800/30\">\n {sessions.length} total\n </span>\n </div>\n\n {/* Status bar */}\n {sessions.length > 0 && (() => {\n const working = filtered.filter(s => s.online && s.status === 'working').length;\n const idle = filtered.filter(s => s.online && s.status === 'idle').length;\n const offline = filtered.filter(s => !s.online).length;\n const total = filtered.length || 1;\n return (\n <div className=\"mb-6\">\n <div className=\"flex h-2 rounded-full overflow-hidden bg-gray-800\">\n {working > 0 && <div className=\"bg-green-500\" style={{ width: `${(working/total)*100}%` }} />}\n {idle > 0 && <div className=\"bg-cyan-500\" style={{ width: `${(idle/total)*100}%` }} />}\n {offline > 0 && <div className=\"bg-gray-600\" style={{ width: `${(offline/total)*100}%` }} />}\n </div>\n <div className=\"flex gap-4 mt-1.5 text-[10px] text-gray-500\">\n {working > 0 && <span><span className=\"inline-block w-2 h-2 rounded-full bg-green-500 mr-1\" />{working} working</span>}\n {idle > 0 && <span><span className=\"inline-block w-2 h-2 rounded-full bg-cyan-500 mr-1\" />{idle} idle</span>}\n {offline > 0 && <span><span className=\"inline-block w-2 h-2 rounded-full bg-gray-600 mr-1\" />{offline} offline</span>}\n </div>\n </div>\n );\n })()}\n\n <div className=\"flex flex-wrap gap-3 mb-6\">\n <input\n type=\"text\"\n value={search}\n onChange={e => setSearch(e.target.value)}\n placeholder=\"Search nodes...\"\n className=\"bg-[#111128] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-blue-500/50 focus:outline-none w-48\"\n />\n <select\n value={filterStatus}\n onChange={e => setFilterStatus(e.target.value)}\n className=\"bg-[#111128] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white focus:border-blue-500/50 focus:outline-none\"\n >\n <option value=\"\">All</option>\n <option value=\"online\">Online</option>\n <option value=\"offline\">Offline</option>\n <option value=\"working\">Working</option>\n <option value=\"idle\">Idle</option>\n <option value=\"blocked\">Blocked</option>\n <option value=\"error\">Error</option>\n </select>\n <div className=\"ml-auto flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 text-sm\">\n {(['list', 'grid'] as const).map(mode => (\n <button\n key={mode}\n type=\"button\"\n onClick={() => setViewMode(mode)}\n className={`rounded-md px-3 py-1.5 transition-colors ${\n viewMode === mode\n ? 'bg-cyan-500/10 text-cyan-300'\n : 'text-gray-500 hover:text-gray-200'\n }`}\n >\n {mode === 'list' ? 'List' : 'Grid'}\n </button>\n ))}\n </div>\n </div>\n\n {loading ? (\n <div className=\"animate-pulse space-y-2\">\n {[1,2,3,4].map(i => <div key={i} className=\"h-16 bg-gray-800/20 rounded-lg\" />)}\n </div>\n ) : filtered.length === 0 ? (\n <div className=\"text-center py-16 text-gray-600\">No nodes match your filters.</div>\n ) : viewMode === 'grid' ? (\n <div className=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\n {filtered.map(s => {\n const statusKey = s.online ? s.status : 'offline';\n const state = sendState[s.alias] || {};\n const progress = typeof s.progress === 'number' ? s.progress : 0;\n\n return (\n <div\n key={s.alias}\n className={`relative overflow-hidden rounded-xl border border-[#2a2a4a] bg-[#111128] p-4 transition-colors ${!s.online ? 'opacity-60' : ''}`}\n >\n {!s.online && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <span className=\"rotate-[-20deg] rounded-xl border border-white/10 bg-black/20 px-5 py-2 text-xl font-bold uppercase tracking-[0.35em] text-white/10\">\n Offline\n </span>\n </div>\n )}\n <div className=\"flex items-start justify-between gap-3\">\n <Link href={`/node?alias=${encodeURIComponent(s.alias)}`} className=\"min-w-0 flex-1 hover:text-cyan-300\">\n <div className=\"flex items-center gap-2\">\n <span className=\"truncate text-base font-semibold text-white\">{s.alias}</span>\n <span className={`shrink-0 rounded-md border px-2 py-0.5 text-[11px] ${STATUS_COLORS[statusKey] || STATUS_COLORS.offline}`}>\n {statusKey}\n </span>\n </div>\n </Link>\n <div className=\"flex gap-1.5 shrink-0\">\n <button type=\"button\" onClick={() => setChatAlias(s.alias)}\n className=\"rounded-lg border border-green-500/20 bg-green-500/10 px-3 py-1.5 text-xs text-green-300 transition-colors hover:bg-green-500/20\">\n Chat\n </button>\n <button type=\"button\" onClick={() => openSendTask(s.alias)}\n className=\"rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-3 py-1.5 text-xs text-cyan-300 transition-colors hover:bg-cyan-500/20\">\n Task\n </button>\n </div>\n </div>\n\n <div className=\"mt-3 space-y-2 text-xs text-gray-500\">\n <div className=\"flex justify-between gap-3\">\n <span>Agent</span>\n <span className=\"truncate text-gray-300\">{s.agent || '--'}</span>\n </div>\n <div className=\"flex justify-between gap-3\">\n <span>Server</span>\n <span className=\"truncate text-gray-300\">{s.server || '--'}</span>\n </div>\n <div className=\"flex justify-between gap-3\">\n <span>Updated</span>\n <span className=\"text-gray-300\">{timeAgo(s.last_seen_at || s.updated_at)}</span>\n </div>\n </div>\n\n <div className=\"mt-3 rounded-lg border border-[#1a1a2a] bg-[#0a0a15] px-3 py-2 text-xs text-gray-400\">\n {s.task ? s.task : 'No current task'}\n </div>\n\n {progress > 0 && progress < 100 && (\n <div className=\"mt-3 h-1.5 overflow-hidden rounded-full bg-gray-800\">\n <div className=\"h-1.5 rounded-full bg-cyan-400 transition-all\" style={{ width: `${progress}%` }} />\n </div>\n )}\n\n {taskOpenFor === s.alias && (\n <div className=\"mt-4 space-y-2 rounded-lg border border-[#2a2a4a] bg-[#0a0a15] p-3\">\n <input\n type=\"text\"\n value={taskDrafts[s.alias] || ''}\n onChange={e => updateTaskDraft(s.alias, e.target.value)}\n onKeyDown={e => e.key === 'Enter' && sendTask(s.alias)}\n placeholder={`Send task to ${s.alias}...`}\n className=\"w-full rounded-lg border border-[#2a2a4a] bg-[#050510] px-3 py-2 text-xs text-white placeholder-gray-600 focus:border-cyan-500 focus:outline-none\"\n />\n <div className=\"flex justify-end gap-2\">\n <button\n type=\"button\"\n onClick={() => setTaskOpenFor(null)}\n className=\"rounded-lg border border-gray-700 px-3 py-1.5 text-xs text-gray-400 hover:text-gray-200\"\n >\n Cancel\n </button>\n <button\n type=\"button\"\n onClick={() => sendTask(s.alias)}\n disabled={state.sending || !(taskDrafts[s.alias] || '').trim()}\n className=\"rounded-lg bg-cyan-600 px-3 py-1.5 text-xs text-white hover:bg-cyan-500 disabled:cursor-not-allowed disabled:bg-gray-700\"\n >\n {state.sending ? 'Sending...' : 'Send'}\n </button>\n </div>\n </div>\n )}\n\n {state.error && <div className=\"mt-2 text-xs text-red-400\">{state.error}</div>}\n {state.success && taskOpenFor !== s.alias && <div className=\"mt-2 text-xs text-green-400\">{state.success}</div>}\n </div>\n );\n })}\n </div>\n ) : (\n <div className=\"space-y-2\">\n <div className=\"hidden sm:grid sm:grid-cols-12 gap-2 px-4 py-2 text-xs text-gray-600 uppercase\">\n <div className=\"col-span-1\">Status</div>\n <div className=\"col-span-2\">Alias</div>\n <div className=\"col-span-2\">Agent</div>\n <div className=\"col-span-2\">Server</div>\n <div className=\"col-span-2\">Current Task</div>\n <div className=\"col-span-1\">Updated</div>\n <div className=\"col-span-2 text-right\">Actions</div>\n </div>\n {filtered.map(s => {\n const statusKey = s.online ? s.status : 'offline';\n const state = sendState[s.alias] || {};\n\n return (\n <div\n key={s.alias}\n className={`rounded-lg border border-[#2a2a4a] bg-[#111128] px-4 py-3 transition-colors hover:border-[#3a3a5a] ${!s.online ? 'opacity-50' : ''}`}\n >\n <div className=\"hidden sm:grid sm:grid-cols-12 gap-2 items-center\">\n <div className=\"col-span-1\">\n <span className={`text-xs px-2 py-0.5 rounded-md border ${STATUS_COLORS[statusKey] || STATUS_COLORS.offline}`}>\n {statusKey}\n </span>\n </div>\n <div className=\"col-span-2 min-w-0\">\n <Link href={`/node?alias=${encodeURIComponent(s.alias)}`} className=\"truncate text-sm font-medium text-white hover:text-cyan-300\">\n {s.alias}\n </Link>\n </div>\n <div className=\"col-span-2 truncate text-xs text-gray-400\">{s.agent || '--'}</div>\n <div className=\"col-span-2 truncate text-xs text-gray-400\">{s.server || '--'}</div>\n <div className=\"col-span-2 truncate text-xs text-gray-500\">{s.task || '--'}</div>\n <div className=\"col-span-1 text-xs text-gray-500\">{timeAgo(s.last_seen_at || s.updated_at)}</div>\n <div className=\"col-span-2 flex justify-end gap-1.5\">\n <button type=\"button\" onClick={() => setChatAlias(s.alias)}\n className=\"rounded-lg border border-green-500/20 bg-green-500/10 px-2 py-1 text-xs text-green-300 hover:bg-green-500/20\">\n Chat\n </button>\n <button type=\"button\" onClick={() => openSendTask(s.alias)}\n className=\"rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-2 py-1 text-xs text-cyan-300 hover:bg-cyan-500/20\">\n Task\n </button>\n </div>\n </div>\n <div className=\"sm:hidden space-y-2\">\n <div className=\"flex items-center justify-between gap-3\">\n <Link href={`/node?alias=${encodeURIComponent(s.alias)}`} className=\"truncate text-sm font-medium text-white hover:text-cyan-300\">\n {s.alias}\n </Link>\n <span className={`shrink-0 text-xs px-2 py-0.5 rounded-md border ${STATUS_COLORS[statusKey] || STATUS_COLORS.offline}`}>\n {statusKey}\n </span>\n </div>\n <div className=\"text-xs text-gray-500\">{s.agent || '--'} · {timeAgo(s.last_seen_at || s.updated_at)}</div>\n {s.task && <div className=\"truncate text-xs text-gray-500\">{s.task}</div>}\n <div className=\"flex gap-2\">\n <button type=\"button\" onClick={() => setChatAlias(s.alias)}\n className=\"flex-1 rounded-lg border border-green-500/20 bg-green-500/10 px-3 py-2 text-xs text-green-300 hover:bg-green-500/20\">\n Chat\n </button>\n <button type=\"button\" onClick={() => openSendTask(s.alias)}\n className=\"flex-1 rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-3 py-2 text-xs text-cyan-300 hover:bg-cyan-500/20\">\n Send Task\n </button>\n </div>\n </div>\n\n {taskOpenFor === s.alias && (\n <div className=\"mt-3 space-y-2 border-t border-[#2a2a4a] pt-3\">\n <input\n type=\"text\"\n value={taskDrafts[s.alias] || ''}\n onChange={e => updateTaskDraft(s.alias, e.target.value)}\n onKeyDown={e => e.key === 'Enter' && sendTask(s.alias)}\n placeholder={`Send task to ${s.alias}...`}\n className=\"w-full rounded-lg border border-[#2a2a4a] bg-[#0a0a15] px-3 py-2 text-xs text-white placeholder-gray-600 focus:border-cyan-500 focus:outline-none\"\n />\n <div className=\"flex justify-end gap-2\">\n <button\n type=\"button\"\n onClick={() => setTaskOpenFor(null)}\n className=\"rounded-lg border border-gray-700 px-3 py-1.5 text-xs text-gray-400 hover:text-gray-200\"\n >\n Cancel\n </button>\n <button\n type=\"button\"\n onClick={() => sendTask(s.alias)}\n disabled={state.sending || !(taskDrafts[s.alias] || '').trim()}\n className=\"rounded-lg bg-cyan-600 px-3 py-1.5 text-xs text-white hover:bg-cyan-500 disabled:cursor-not-allowed disabled:bg-gray-700\"\n >\n {state.sending ? 'Sending...' : 'Send'}\n </button>\n </div>\n </div>\n )}\n\n {state.error && <div className=\"mt-2 text-xs text-red-400\">{state.error}</div>}\n {state.success && taskOpenFor !== s.alias && <div className=\"mt-2 text-xs text-green-400\">{state.success}</div>}\n </div>\n );\n })}\n </div>\n )}\n\n {chatAlias && <TaskChatPanel alias={chatAlias} onClose={() => setChatAlias(null)} />}\n </div>\n );\n}\n"],"names":["timeAgo","dateStr","diff","Date","now","replace","getTime","s","Math","floor","statusColor","status","hasSse","formatUptime","seconds","h","m","fetcher","url","res","fetch","window","location","assign","Error","json","SWR_OPTIONS","refreshInterval","dedupingInterval","withNetwork","networkId","sep","includes","encodeURIComponent","useSessions","data","error","isLoading","sessions","hint","_hint","useHealth","health","useAnetConfig","config","useTasks","params","query","URLSearchParams","limit","toString","tasks","count","source","useStats","stats","ok","useLicense","license","useMessages","messages","useNodeSession","alias","session","inbox","sse","React","_interopDefaultLegacy","e","React__default","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","isProd","process","env","isString","o","call","StyleSheet","param","ref","_name","name","_optimizeForSpeed","optimizeForSpeed","invariant$1","_deletedRulePlaceholder","_serverSheet","undefined","_tags","_injected","_rulesCount","node","document","querySelector","_nonce","_proto","setOptimizeForSpeed","bool","flush","inject","isOptimizeForSpeed","_this","cssRules","insertRule","rule","index","cssText","push","deleteRule","getSheetForTag","tag","sheet","styleSheets","ownerNode","getSheet","insertionPoint","replaceRule","trim","console","warn","makeStyleTag","cssString","relativeToTag","createElement","setAttribute","type","appendChild","createTextNode","head","getElementsByTagName","insertBefore","get","condition","message","hash","str","_$hash","charCodeAt","stringHash","sanitize","cache","computeId","baseId","propsToString","String","computeSelector","id","css","selectoPlaceholderRegexp","idcss","mapRulesToStyle","options","map","args","nonce","dangerouslySetInnerHTML","__html","StyleSheetRegistry","_styleSheet","styleSheet","_sheet","_fromServer","_indices","_instancesCounts","add","Array","isArray","children","getIdAndRules","styleId","rules","indices","filter","remove","invariant","tagFromServer","parentNode","removeChild","forEach","update","nextProps","fromServer","keys","concat","join","Boolean","styles","dynamic","selectFromServer","elements","slice","querySelectorAll","reduce","acc","element","StyleSheetContext","createContext","displayName","createStyleRegistry","StyleRegistry","configuredRegistry","registry","rootRegistry","useContext","useState","Provider","value","useStyleRegistry","useInsertionEffect","useLayoutEffect","defaultRegistry","JSXStyle","info","tagInfo","exports","style","module","STATUS_COLORS","working","idle","blocked","offline","NodesPage","loading","sseMap","sse_sessions","filterStatus","setFilterStatus","search","setSearch","viewMode","setViewMode","taskDrafts","setTaskDrafts","taskOpenFor","setTaskOpenFor","sendState","setSendState","chatAlias","setChatAlias","filtered","online","toLowerCase","agent","sort","a","b","onlineCount","openSendTask","current","prev","updateTaskDraft","sendTask","task","sending","method","headers","body","JSON","stringify","success","className","total","width","onChange","placeholder","mode","onClick","statusKey","state","progress","href","server","last_seen_at","updated_at","onKeyDown","disabled","onClose"],"mappings":"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","ignoreList":[2,3]}
@@ -7,15 +7,15 @@ globalThis.__BUILD_MANIFEST = {
7
7
  "static/chunks/03~yq9q893hmn.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/5bvXa9VuwCjy1WNEj0yoW/_buildManifest.js",
11
- "static/5bvXa9VuwCjy1WNEj0yoW/_ssgManifest.js",
12
- "static/5bvXa9VuwCjy1WNEj0yoW/_clientMiddlewareManifest.js"
10
+ "static/OhhT30BnG1-kXYvlQ_2y3/_buildManifest.js",
11
+ "static/OhhT30BnG1-kXYvlQ_2y3/_ssgManifest.js",
12
+ "static/OhhT30BnG1-kXYvlQ_2y3/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
- "static/chunks/0w5hxo645~s.g.js",
15
+ "static/chunks/0xrnwfefpke-g.js",
16
16
  "static/chunks/0pqt~8bl3ukh4.js",
17
- "static/chunks/15-ywchriw.vi.js",
17
+ "static/chunks/0u359llqm1_01.js",
18
18
  "static/chunks/0e-wrhqh4h3r5.js",
19
- "static/chunks/turbopack-0zklppa1rg.u8.js"
19
+ "static/chunks/turbopack-0vsvjs02l449s.js"
20
20
  ]
21
21
  };
@@ -1,7 +1,7 @@
1
- <!DOCTYPE html><html lang="en" class="geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="stylesheet" href="/_next/static/chunks/0_qu9.8wo.eq1.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0w5hxo645~s.g.js"/><script src="/_next/static/chunks/0pqt~8bl3ukh4.js" async=""></script><script src="/_next/static/chunks/15-ywchriw.vi.js" async=""></script><script src="/_next/static/chunks/0e-wrhqh4h3r5.js" async=""></script><script src="/_next/static/chunks/turbopack-0zklppa1rg.u8.js" async=""></script><script src="/_next/static/chunks/0io~i_rk3k9q3.js" async=""></script><script src="/_next/static/chunks/0s4w.hhez3.xx.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" content="#0a0a1a"/><title>Agent Network Dashboard</title><meta name="description" content="Real-time monitoring dashboard for Agent Network nodes via CommHub"/><meta property="og:title" content="Agent Network Dashboard"/><meta property="og:description" content="Real-time monitoring dashboard for Agent Network nodes"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="Agent Network Dashboard"/><meta name="twitter:description" content="Real-time monitoring dashboard for Agent Network nodes"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><link rel="icon" href="/favicon.svg"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="min-h-full bg-[#0a0a1a]"><div hidden=""><!--$--><!--/$--></div><div class="flex min-h-screen"><button class="fixed top-4 left-3 z-50 lg:hidden bg-[#111128] border border-[#2a2a4a] rounded-lg p-2.5 text-gray-400 hover:text-white active:bg-[#1a1a3a]" aria-label="Toggle menu"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M4 6h16M4 12h16M4 18h16"></path></svg></button><aside class="
1
+ <!DOCTYPE html><html lang="en" class="geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/><link rel="stylesheet" href="/_next/static/chunks/0bajlbn83u82v.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0xrnwfefpke-g.js"/><script src="/_next/static/chunks/0pqt~8bl3ukh4.js" async=""></script><script src="/_next/static/chunks/0u359llqm1_01.js" async=""></script><script src="/_next/static/chunks/0e-wrhqh4h3r5.js" async=""></script><script src="/_next/static/chunks/turbopack-0vsvjs02l449s.js" async=""></script><script src="/_next/static/chunks/060yf6n1jdcri.js" async=""></script><script src="/_next/static/chunks/14bsg3_-taiw4.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><meta name="theme-color" content="#0a0a1a"/><title>Agent Network Dashboard</title><meta name="description" content="Real-time monitoring dashboard for Agent Network nodes via CommHub"/><meta property="og:title" content="Agent Network Dashboard"/><meta property="og:description" content="Real-time monitoring dashboard for Agent Network nodes"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary"/><meta name="twitter:title" content="Agent Network Dashboard"/><meta name="twitter:description" content="Real-time monitoring dashboard for Agent Network nodes"/><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><link rel="icon" href="/favicon.svg"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="min-h-full bg-[#0a0a1a]"><div hidden=""><!--$--><!--/$--></div><div class="flex min-h-screen"><button class="fixed top-4 left-3 z-50 lg:hidden bg-[#111128] border border-[#2a2a4a] rounded-lg p-2.5 text-gray-400 hover:text-white active:bg-[#1a1a3a]" aria-label="Toggle menu"><svg class="w-5 h-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M4 6h16M4 12h16M4 18h16"></path></svg></button><aside class="
2
2
  fixed top-0 left-0 h-full z-40 bg-[#0d0d1a] border-r border-[#2a2a4a]
3
3
  transition-all duration-200
4
4
  w-52
5
5
  -translate-x-full
6
6
  lg:translate-x-0 lg:static lg:shrink-0
7
- "><div class="px-4 py-5 border-b border-[#2a2a4a] "><div><div class="text-white font-bold text-sm">Agent Network</div><div class="text-gray-600 text-xs">Dashboard</div></div></div><div class="pb-20"><nav class="flex flex-col gap-1 px-2 py-4"><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path></svg><span>Overview</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/tasks"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path></svg><span>Tasks</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/nodes"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01"></path></svg><span>Nodes</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/messages"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path></svg><span>Messages</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/settings/networks"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9"></path></svg><span>Networks</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/logs"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg><span>Logs</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/admin"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z"></path></svg><span>Admin</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/docs"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"></path></svg><span>Docs</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/settings"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path></svg><span>Settings</span></a></nav></div><div class="absolute bottom-0 left-0 right-0 border-t border-[#2a2a4a] bg-[#0d0d1a]"><button class="w-full flex items-center gap-3 px-5 py-3 text-xs text-gray-500 hover:text-red-400 hover:bg-red-500/5 transition-colors"><svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M15.75 9V5.25A2.25 2.25 0 0013.5 3h-6a2.25 2.25 0 00-2.25 2.25v13.5A2.25 2.25 0 007.5 21h6a2.25 2.25 0 002.25-2.25V15m3 0l3-3m0 0l-3-3m3 3H9"></path></svg>Sign out</button><button class="hidden lg:flex w-full justify-center py-2 text-gray-600 hover:text-gray-400 transition-colors"><svg class="w-4 h-4 transition-transform " fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path></svg></button></div></aside><main class="flex-1 min-w-0"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--></main></div><script src="/_next/static/chunks/0w5hxo645~s.g.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[58963,[\"/_next/static/chunks/0io~i_rk3k9q3.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"NetworkProvider\"]\n3:I[25045,[\"/_next/static/chunks/0io~i_rk3k9q3.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"AppShell\"]\n4:I[39756,[\"/_next/static/chunks/0io~i_rk3k9q3.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"default\"]\n5:I[37457,[\"/_next/static/chunks/0io~i_rk3k9q3.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"default\"]\n6:I[97367,[\"/_next/static/chunks/0io~i_rk3k9q3.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[97367,[\"/_next/static/chunks/0io~i_rk3k9q3.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"ViewportBoundary\"]\nc:I[97367,[\"/_next/static/chunks/0io~i_rk3k9q3.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"MetadataBoundary\"]\ne:I[68027,[\"/_next/static/chunks/0io~i_rk3k9q3.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0_qu9.8wo.eq1.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0_qu9.8wo.eq1.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0io~i_rk3k9q3.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0s4w.hhez3.xx.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-full bg-[#0a0a1a]\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0_qu9.8wo.eq1.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"5bvXa9VuwCjy1WNEj0yoW\"}\n"])</script><script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a1a\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[27201,[\"/_next/static/chunks/0io~i_rk3k9q3.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"IconMark\"]\n8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes via CommHub\"}],[\"$\",\"meta\",\"2\",{\"property\":\"og:title\",\"content\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"5\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"6\",{\"name\":\"twitter:title\",\"content\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"7\",{\"name\":\"twitter:description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"9\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L10\",\"10\",{}]]\n"])</script></body></html>
7
+ "><div class="px-4 py-5 border-b border-[#2a2a4a] "><div><div class="text-white font-bold text-sm">Agent Network</div><div class="text-gray-600 text-xs">Dashboard</div></div></div><div class="pb-20"><nav class="flex flex-col gap-1 px-2 py-4"><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"></path></svg><span>Overview</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/tasks"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path></svg><span>Tasks</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/nodes"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01"></path></svg><span>Nodes</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/messages"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path></svg><span>Messages</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/settings/networks"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9"></path></svg><span>Networks</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/logs"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"></path></svg><span>Logs</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/admin"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z"></path></svg><span>Admin</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/docs"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"></path></svg><span>Docs</span></a><a class="flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a] " href="/settings"><svg class="w-5 h-5 shrink-0" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z"></path></svg><span>Settings</span></a></nav></div><div class="absolute bottom-0 left-0 right-0 border-t border-[#2a2a4a] bg-[#0d0d1a]"><button class="w-full flex items-center gap-3 px-5 py-3 text-xs text-gray-500 hover:text-red-400 hover:bg-red-500/5 transition-colors"><svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5"><path stroke-linecap="round" stroke-linejoin="round" d="M15.75 9V5.25A2.25 2.25 0 0013.5 3h-6a2.25 2.25 0 00-2.25 2.25v13.5A2.25 2.25 0 007.5 21h6a2.25 2.25 0 002.25-2.25V15m3 0l3-3m0 0l-3-3m3 3H9"></path></svg>Sign out</button><button class="hidden lg:flex w-full justify-center py-2 text-gray-600 hover:text-gray-400 transition-colors"><svg class="w-4 h-4 transition-transform " fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path></svg></button></div></aside><main class="flex-1 min-w-0"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--></main></div><script src="/_next/static/chunks/0xrnwfefpke-g.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[58963,[\"/_next/static/chunks/060yf6n1jdcri.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"NetworkProvider\"]\n3:I[25045,[\"/_next/static/chunks/060yf6n1jdcri.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"AppShell\"]\n4:I[39756,[\"/_next/static/chunks/060yf6n1jdcri.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\"]\n5:I[37457,[\"/_next/static/chunks/060yf6n1jdcri.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\"]\n6:I[97367,[\"/_next/static/chunks/060yf6n1jdcri.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[97367,[\"/_next/static/chunks/060yf6n1jdcri.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"ViewportBoundary\"]\nc:I[97367,[\"/_next/static/chunks/060yf6n1jdcri.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"MetadataBoundary\"]\ne:I[68027,[\"/_next/static/chunks/060yf6n1jdcri.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0bajlbn83u82v.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0bajlbn83u82v.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/060yf6n1jdcri.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/14bsg3_-taiw4.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-full bg-[#0a0a1a]\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0bajlbn83u82v.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"OhhT30BnG1-kXYvlQ_2y3\"}\n"])</script><script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a1a\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[27201,[\"/_next/static/chunks/060yf6n1jdcri.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"IconMark\"]\n8:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes via CommHub\"}],[\"$\",\"meta\",\"2\",{\"property\":\"og:title\",\"content\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"5\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"6\",{\"name\":\"twitter:title\",\"content\":\"Agent Network Dashboard\"}],[\"$\",\"meta\",\"7\",{\"name\":\"twitter:description\",\"content\":\"Real-time monitoring dashboard for Agent Network nodes\"}],[\"$\",\"link\",\"8\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"9\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L10\",\"10\",{}]]\n"])</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0w5hxo645~s.g.js"/><script src="/_next/static/chunks/0pqt~8bl3ukh4.js" async=""></script><script src="/_next/static/chunks/15-ywchriw.vi.js" async=""></script><script src="/_next/static/chunks/0e-wrhqh4h3r5.js" async=""></script><script src="/_next/static/chunks/turbopack-0zklppa1rg.u8.js" async=""></script><script src="/_next/static/chunks/01xlw8hd842-c.js" async=""></script><script src="/_next/static/chunks/0s4w.hhez3.xx.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0w5hxo645~s.g.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"5bvXa9VuwCjy1WNEj0yoW\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[27201,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/0s4w.hhez3.xx.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0xrnwfefpke-g.js"/><script src="/_next/static/chunks/0pqt~8bl3ukh4.js" async=""></script><script src="/_next/static/chunks/0u359llqm1_01.js" async=""></script><script src="/_next/static/chunks/0e-wrhqh4h3r5.js" async=""></script><script src="/_next/static/chunks/turbopack-0vsvjs02l449s.js" async=""></script><script src="/_next/static/chunks/01xlw8hd842-c.js" async=""></script><script src="/_next/static/chunks/14bsg3_-taiw4.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0xrnwfefpke-g.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"OhhT30BnG1-kXYvlQ_2y3\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[27201,[\"/_next/static/chunks/01xlw8hd842-c.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18150,e=>{"use strict";e.s(["formatUptime",0,function(e){let t=Math.floor(e/3600),s=Math.floor(e%3600/60);return t>0?`${t}h ${s}m`:`${s}m`},"timeAgo",0,function(e){if(!e)return"--";let t=Math.floor((Date.now()-new Date(e.replace(" ","T")+"Z").getTime())/1e3);return t<60?`${t}s ago`:t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}])},65822,e=>{"use strict";var t=e.i(83599),s=e.i(58963);let n=async e=>{let t=await fetch(e);if(401===t.status)throw window.location.assign("/login"),Error("unauthorized");return t.json()},r={refreshInterval:5e3,dedupingInterval:3e3};function a(e,t){if(!t)return e;let s=e.includes("?")?"&":"?";return`${e}${s}network_id=${encodeURIComponent(t)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,t.default)("/api/anet/config",n,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:s}=(0,t.default)("/api/hub/health",n,r);return{health:e||null,error:s}},"useLicense",0,function(){let{data:e,error:s}=(0,t.default)("/api/hub/license",n,{refreshInterval:6e4});return{license:e?.ok?e:null,error:s}},"useMessages",0,function(e=100){let{networkId:i}=(0,s.useNetworkId)(),{data:l,error:o,isLoading:d}=(0,t.default)(a(`/api/hub/messages?limit=${e}`,i),n,r);return{messages:l?.messages||[],error:o,isLoading:d}},"useSessions",0,function(){let{networkId:e}=(0,s.useNetworkId)(),{data:i,error:l,isLoading:o}=(0,t.default)(a("/api/hub/status",e),n,r);return{sessions:i?.sessions||[],hint:i?._hint,error:l,isLoading:o}},"useStats",0,function(){let{networkId:e}=(0,s.useNetworkId)(),{data:i,error:l}=(0,t.default)(a("/api/hub/stats",e),n,r);return{stats:i?.ok?i:null,error:l}},"useTasks",0,function(e){let{networkId:i}=(0,s.useNetworkId)(),l=new URLSearchParams({limit:"100",...e}).toString(),{data:o,error:d,isLoading:c}=(0,t.default)(a(`/api/hub/tasks?${l}`,i),n,r);return{tasks:o?.tasks||[],count:o?.count??0,source:o?.source,error:d,isLoading:c}}])},16015,(e,t,s)=>{},98547,(e,t,s)=>{var n=e.i(47167);e.r(16015);var r=e.r(71645),a=r&&"object"==typeof r&&"default"in r?r:{default:r},i=void 0!==n.default&&n.default.env&&!0,l=function(e){return"[object String]"===Object.prototype.toString.call(e)},o=function(){function e(e){var t=void 0===e?{}:e,s=t.name,n=void 0===s?"stylesheet":s,r=t.optimizeForSpeed,a=void 0===r?i:r;d(l(n),"`name` must be a string"),this._name=n,this._deletedRulePlaceholder="#"+n+"-deleted-rule____{}",d("boolean"==typeof a,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=a,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var o="u">typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=o?o.getAttribute("content"):null}var t,s=e.prototype;return s.setOptimizeForSpeed=function(e){d("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),d(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},s.isOptimizeForSpeed=function(){return this._optimizeForSpeed},s.inject=function(){var e=this;if(d(!this._injected,"sheet already injected"),this._injected=!0,"u">typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(i||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(t,s){return"number"==typeof s?e._serverSheet.cssRules[s]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),s},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},s.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]},s.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},s.insertRule=function(e,t){if(d(l(e),"`insertRule` accepts only strings"),"u"<typeof window)return"number"!=typeof t&&(t=this._serverSheet.cssRules.length),this._serverSheet.insertRule(e,t),this._rulesCount++;if(this._optimizeForSpeed){var s=this.getSheet();"number"!=typeof t&&(t=s.cssRules.length);try{s.insertRule(e,t)}catch(t){return i||console.warn("StyleSheet: illegal rule: \n\n"+e+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),-1}}else{var n=this._tags[t];this._tags.push(this.makeStyleTag(this._name,e,n))}return this._rulesCount++},s.replaceRule=function(e,t){if(this._optimizeForSpeed||"u"<typeof window){var s="u">typeof window?this.getSheet():this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!s.cssRules[e])return e;s.deleteRule(e);try{s.insertRule(t,e)}catch(n){i||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),s.insertRule(this._deletedRulePlaceholder,e)}}else{var n=this._tags[e];d(n,"old rule at index `"+e+"` not found"),n.textContent=t}return e},s.deleteRule=function(e){if("u"<typeof window)return void this._serverSheet.deleteRule(e);if(this._optimizeForSpeed)this.replaceRule(e,"");else{var t=this._tags[e];d(t,"rule at index `"+e+"` not found"),t.parentNode.removeChild(t),this._tags[e]=null}},s.flush=function(){this._injected=!1,this._rulesCount=0,"u">typeof window?(this._tags.forEach(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]):this._serverSheet.cssRules=[]},s.cssRules=function(){var e=this;return"u"<typeof window?this._serverSheet.cssRules:this._tags.reduce(function(t,s){return s?t=t.concat(Array.prototype.map.call(e.getSheetForTag(s).cssRules,function(t){return t.cssText===e._deletedRulePlaceholder?null:t})):t.push(null),t},[])},s.makeStyleTag=function(e,t,s){t&&d(l(t),"makeStyleTag accepts only strings as second parameter");var n=document.createElement("style");this._nonce&&n.setAttribute("nonce",this._nonce),n.type="text/css",n.setAttribute("data-"+e,""),t&&n.appendChild(document.createTextNode(t));var r=document.head||document.getElementsByTagName("head")[0];return s?r.insertBefore(n,s):r.appendChild(n),n},t=[{key:"length",get:function(){return this._rulesCount}}],function(e,t){for(var s=0;s<t.length;s++){var n=t[s];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(e.prototype,t),e}();function d(e,t){if(!e)throw Error("StyleSheet: "+t+".")}var c=function(e){for(var t=5381,s=e.length;s;)t=33*t^e.charCodeAt(--s);return t>>>0},u={};function h(e,t){if(!t)return"jsx-"+e;var s=String(t),n=e+s;return u[n]||(u[n]="jsx-"+c(e+"-"+s)),u[n]}function p(e,t){"u"<typeof window&&(t=t.replace(/\/style/gi,"\\/style"));var s=e+t;return u[s]||(u[s]=t.replace(/__jsx-style-dynamic-selector/g,e)),u[s]}var x=function(){function e(e){var t=void 0===e?{}:e,s=t.styleSheet,n=void 0===s?null:s,r=t.optimizeForSpeed,a=void 0!==r&&r;this._sheet=n||new o({name:"styled-jsx",optimizeForSpeed:a}),this._sheet.inject(),n&&"boolean"==typeof a&&(this._sheet.setOptimizeForSpeed(a),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var t=e.prototype;return t.add=function(e){var t=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(e.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),"u">typeof window&&!this._fromServer&&(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,t){return e[t]=0,e},{}));var s=this.getIdAndRules(e),n=s.styleId,r=s.rules;if(n in this._instancesCounts){this._instancesCounts[n]+=1;return}var a=r.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[n]=a,this._instancesCounts[n]=1},t.remove=function(e){var t=this,s=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(s in this._instancesCounts,"styleId: `"+s+"` not found"),this._instancesCounts[s]-=1,this._instancesCounts[s]<1){var n=this._fromServer&&this._fromServer[s];n?(n.parentNode.removeChild(n),delete this._fromServer[s]):(this._indices[s].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[s]),delete this._instancesCounts[s]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],s=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return s[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,s;return t=this.cssRules(),void 0===(s=e)&&(s={}),t.map(function(e){var t=e[0],n=e[1];return a.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:s.nonce?s.nonce:void 0,dangerouslySetInnerHTML:{__html:n}})})},t.getIdAndRules=function(e){var t=e.children,s=e.dynamic,n=e.id;if(s){var r=h(n,s);return{styleId:r,rules:Array.isArray(t)?t.map(function(e){return p(r,e)}):[p(r,t)]}}return{styleId:h(n),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),g=r.createContext(null);function m(){return new x}function f(){return r.useContext(g)}g.displayName="StyleSheetContext";var y=a.default.useInsertionEffect||a.default.useLayoutEffect,b="u">typeof window?m():void 0;function v(e){var t=b||f();return t&&("u"<typeof window?t.add(e):y(function(){return t.add(e),function(){t.remove(e)}},[e.id,String(e.dynamic)])),null}v.dynamic=function(e){return e.map(function(e){return h(e[0],e[1])}).join(" ")},s.StyleRegistry=function(e){var t=e.registry,s=e.children,n=r.useContext(g),i=r.useState(function(){return n||t||m()})[0];return a.default.createElement(g.Provider,{value:i},s)},s.createStyleRegistry=m,s.style=v,s.useStyleRegistry=f},21373,(e,t,s)=>{t.exports=e.r(98547).style},86688,e=>{"use strict";var t=e.i(18050),s=e.i(71645),n=e.i(22016),r=e.i(18150),a=e.i(65822),i=e.i(58442);let l={working:"bg-green-500/10 text-green-300 border-green-500/20",idle:"bg-blue-500/10 text-blue-300 border-blue-500/20",blocked:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",error:"bg-red-500/10 text-red-300 border-red-500/20",offline:"bg-gray-500/10 text-gray-500 border-gray-500/20"};e.s(["default",0,function(){let e,o,d,c,{sessions:u,isLoading:h}=(0,a.useSessions)(),{health:p}=(0,a.useHealth)(),x=p?.sse_sessions||{},[g,m]=(0,s.useState)(""),[f,y]=(0,s.useState)(""),[b,v]=(0,s.useState)("list"),[j,_]=(0,s.useState)({}),[S,N]=(0,s.useState)(null),[w,k]=(0,s.useState)({}),[C,R]=(0,s.useState)(null),F=u.map(e=>({...e,online:!!x[e.alias]})).filter(e=>"online"===g?e.online:"offline"===g?!e.online:!g||g===e.status).filter(e=>!f||e.alias.toLowerCase().includes(f.toLowerCase())||(e.agent||"").toLowerCase().includes(f.toLowerCase())).sort((e,t)=>!!t.online-!!e.online||("working"===t.status)-("working"===e.status)),z=u.filter(e=>x[e.alias]).length,T=e=>{N(t=>t===e?null:e),k(t=>({...t,[e]:{}}))},A=(e,t)=>{_(s=>({...s,[e]:t}))},$=async e=>{let t=j[e]?.trim()||"";if(t){k(t=>({...t,[e]:{sending:!0}}));try{let s=await fetch("/api/hub/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:e,task:t})}),n=await s.json();if(!s.ok||n?.ok===!1)throw Error(n?.error||"Send failed");_(t=>({...t,[e]:""})),k(t=>({...t,[e]:{success:"Task sent"}})),N(null)}catch(t){k(s=>({...s,[e]:{error:t instanceof Error?t.message:"Send failed"}}))}}};return(0,t.jsxs)("div",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4 mb-6",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold text-white lg:ml-0 ml-10",children:"Nodes"}),(0,t.jsxs)("span",{className:"text-xs bg-green-900/30 text-green-400 px-2 py-0.5 rounded-full border border-green-800/30",children:[z," online"]}),(0,t.jsxs)("span",{className:"text-xs bg-gray-900/30 text-gray-400 px-2 py-0.5 rounded-full border border-gray-800/30",children:[u.length," total"]})]}),u.length>0&&(e=F.filter(e=>e.online&&"working"===e.status).length,o=F.filter(e=>e.online&&"idle"===e.status).length,d=F.filter(e=>!e.online).length,c=F.length||1,(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)("div",{className:"flex h-2 rounded-full overflow-hidden bg-gray-800",children:[e>0&&(0,t.jsx)("div",{className:"bg-green-500",style:{width:`${e/c*100}%`}}),o>0&&(0,t.jsx)("div",{className:"bg-cyan-500",style:{width:`${o/c*100}%`}}),d>0&&(0,t.jsx)("div",{className:"bg-gray-600",style:{width:`${d/c*100}%`}})]}),(0,t.jsxs)("div",{className:"flex gap-4 mt-1.5 text-[10px] text-gray-500",children:[e>0&&(0,t.jsxs)("span",{children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-green-500 mr-1"}),e," working"]}),o>0&&(0,t.jsxs)("span",{children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-cyan-500 mr-1"}),o," idle"]}),d>0&&(0,t.jsxs)("span",{children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-gray-600 mr-1"}),d," offline"]})]})]})),(0,t.jsxs)("div",{className:"flex flex-wrap gap-3 mb-6",children:[(0,t.jsx)("input",{type:"text",value:f,onChange:e=>y(e.target.value),placeholder:"Search nodes...",className:"bg-[#111128] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-blue-500/50 focus:outline-none w-48"}),(0,t.jsxs)("select",{value:g,onChange:e=>m(e.target.value),className:"bg-[#111128] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white focus:border-blue-500/50 focus:outline-none",children:[(0,t.jsx)("option",{value:"",children:"All"}),(0,t.jsx)("option",{value:"online",children:"Online"}),(0,t.jsx)("option",{value:"offline",children:"Offline"}),(0,t.jsx)("option",{value:"working",children:"Working"}),(0,t.jsx)("option",{value:"idle",children:"Idle"}),(0,t.jsx)("option",{value:"blocked",children:"Blocked"}),(0,t.jsx)("option",{value:"error",children:"Error"})]}),(0,t.jsx)("div",{className:"ml-auto flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 text-sm",children:["list","grid"].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>v(e),className:`rounded-md px-3 py-1.5 transition-colors ${b===e?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"list"===e?"List":"Grid"},e))})]}),h?(0,t.jsx)("div",{className:"animate-pulse space-y-2",children:[1,2,3,4].map(e=>(0,t.jsx)("div",{className:"h-16 bg-gray-800/20 rounded-lg"},e))}):0===F.length?(0,t.jsx)("div",{className:"text-center py-16 text-gray-600",children:"No nodes match your filters."}):"grid"===b?(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:F.map(e=>{let s=e.online?e.status:"offline",a=w[e.alias]||{},i="number"==typeof e.progress?e.progress:0;return(0,t.jsxs)("div",{className:`relative overflow-hidden rounded-xl border border-[#2a2a4a] bg-[#111128] p-4 transition-colors ${!e.online?"opacity-60":""}`,children:[!e.online&&(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:(0,t.jsx)("span",{className:"rotate-[-20deg] rounded-xl border border-white/10 bg-black/20 px-5 py-2 text-xl font-bold uppercase tracking-[0.35em] text-white/10",children:"Offline"})}),(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsx)(n.default,{href:`/node?alias=${encodeURIComponent(e.alias)}`,className:"min-w-0 flex-1 hover:text-cyan-300",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"truncate text-base font-semibold text-white",children:e.alias}),(0,t.jsx)("span",{className:`shrink-0 rounded-md border px-2 py-0.5 text-[11px] ${l[s]||l.offline}`,children:s})]})}),(0,t.jsxs)("div",{className:"flex gap-1.5 shrink-0",children:[(0,t.jsx)("button",{type:"button",onClick:()=>R(e.alias),className:"rounded-lg border border-green-500/20 bg-green-500/10 px-3 py-1.5 text-xs text-green-300 transition-colors hover:bg-green-500/20",children:"Chat"}),(0,t.jsx)("button",{type:"button",onClick:()=>T(e.alias),className:"rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-3 py-1.5 text-xs text-cyan-300 transition-colors hover:bg-cyan-500/20",children:"Task"})]})]}),(0,t.jsxs)("div",{className:"mt-3 space-y-2 text-xs text-gray-500",children:[(0,t.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,t.jsx)("span",{children:"Agent"}),(0,t.jsx)("span",{className:"truncate text-gray-300",children:e.agent||"--"})]}),(0,t.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,t.jsx)("span",{children:"Server"}),(0,t.jsx)("span",{className:"truncate text-gray-300",children:e.server||"--"})]}),(0,t.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,t.jsx)("span",{children:"Updated"}),(0,t.jsx)("span",{className:"text-gray-300",children:(0,r.timeAgo)(e.last_seen_at||e.updated_at)})]})]}),(0,t.jsx)("div",{className:"mt-3 rounded-lg border border-[#1a1a2a] bg-[#0a0a15] px-3 py-2 text-xs text-gray-400",children:e.task?e.task:"No current task"}),i>0&&i<100&&(0,t.jsx)("div",{className:"mt-3 h-1.5 overflow-hidden rounded-full bg-gray-800",children:(0,t.jsx)("div",{className:"h-1.5 rounded-full bg-cyan-400 transition-all",style:{width:`${i}%`}})}),S===e.alias&&(0,t.jsxs)("div",{className:"mt-4 space-y-2 rounded-lg border border-[#2a2a4a] bg-[#0a0a15] p-3",children:[(0,t.jsx)("input",{type:"text",value:j[e.alias]||"",onChange:t=>A(e.alias,t.target.value),onKeyDown:t=>"Enter"===t.key&&$(e.alias),placeholder:`Send task to ${e.alias}...`,className:"w-full rounded-lg border border-[#2a2a4a] bg-[#050510] px-3 py-2 text-xs text-white placeholder-gray-600 focus:border-cyan-500 focus:outline-none"}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>N(null),className:"rounded-lg border border-gray-700 px-3 py-1.5 text-xs text-gray-400 hover:text-gray-200",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:()=>$(e.alias),disabled:a.sending||!(j[e.alias]||"").trim(),className:"rounded-lg bg-cyan-600 px-3 py-1.5 text-xs text-white hover:bg-cyan-500 disabled:cursor-not-allowed disabled:bg-gray-700",children:a.sending?"Sending...":"Send"})]})]}),a.error&&(0,t.jsx)("div",{className:"mt-2 text-xs text-red-400",children:a.error}),a.success&&S!==e.alias&&(0,t.jsx)("div",{className:"mt-2 text-xs text-green-400",children:a.success})]},e.alias)})}):(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 px-4 py-2 text-xs text-gray-600 uppercase",children:[(0,t.jsx)("div",{className:"col-span-1",children:"Status"}),(0,t.jsx)("div",{className:"col-span-2",children:"Alias"}),(0,t.jsx)("div",{className:"col-span-2",children:"Agent"}),(0,t.jsx)("div",{className:"col-span-2",children:"Server"}),(0,t.jsx)("div",{className:"col-span-2",children:"Current Task"}),(0,t.jsx)("div",{className:"col-span-1",children:"Updated"}),(0,t.jsx)("div",{className:"col-span-2 text-right",children:"Actions"})]}),F.map(e=>{let s=e.online?e.status:"offline",a=w[e.alias]||{};return(0,t.jsxs)("div",{className:`rounded-lg border border-[#2a2a4a] bg-[#111128] px-4 py-3 transition-colors hover:border-[#3a3a5a] ${!e.online?"opacity-50":""}`,children:[(0,t.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 items-center",children:[(0,t.jsx)("div",{className:"col-span-1",children:(0,t.jsx)("span",{className:`text-xs px-2 py-0.5 rounded-md border ${l[s]||l.offline}`,children:s})}),(0,t.jsx)("div",{className:"col-span-2 min-w-0",children:(0,t.jsx)(n.default,{href:`/node?alias=${encodeURIComponent(e.alias)}`,className:"truncate text-sm font-medium text-white hover:text-cyan-300",children:e.alias})}),(0,t.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",children:e.agent||"--"}),(0,t.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",children:e.server||"--"}),(0,t.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-500",children:e.task||"--"}),(0,t.jsx)("div",{className:"col-span-1 text-xs text-gray-500",children:(0,r.timeAgo)(e.last_seen_at||e.updated_at)}),(0,t.jsxs)("div",{className:"col-span-2 flex justify-end gap-1.5",children:[(0,t.jsx)("button",{type:"button",onClick:()=>R(e.alias),className:"rounded-lg border border-green-500/20 bg-green-500/10 px-2 py-1 text-xs text-green-300 hover:bg-green-500/20",children:"Chat"}),(0,t.jsx)("button",{type:"button",onClick:()=>T(e.alias),className:"rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-2 py-1 text-xs text-cyan-300 hover:bg-cyan-500/20",children:"Task"})]})]}),(0,t.jsxs)("div",{className:"sm:hidden space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)(n.default,{href:`/node?alias=${encodeURIComponent(e.alias)}`,className:"truncate text-sm font-medium text-white hover:text-cyan-300",children:e.alias}),(0,t.jsx)("span",{className:`shrink-0 text-xs px-2 py-0.5 rounded-md border ${l[s]||l.offline}`,children:s})]}),(0,t.jsxs)("div",{className:"text-xs text-gray-500",children:[e.agent||"--"," · ",(0,r.timeAgo)(e.last_seen_at||e.updated_at)]}),e.task&&(0,t.jsx)("div",{className:"truncate text-xs text-gray-500",children:e.task}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>R(e.alias),className:"flex-1 rounded-lg border border-green-500/20 bg-green-500/10 px-3 py-2 text-xs text-green-300 hover:bg-green-500/20",children:"Chat"}),(0,t.jsx)("button",{type:"button",onClick:()=>T(e.alias),className:"flex-1 rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-3 py-2 text-xs text-cyan-300 hover:bg-cyan-500/20",children:"Send Task"})]})]}),S===e.alias&&(0,t.jsxs)("div",{className:"mt-3 space-y-2 border-t border-[#2a2a4a] pt-3",children:[(0,t.jsx)("input",{type:"text",value:j[e.alias]||"",onChange:t=>A(e.alias,t.target.value),onKeyDown:t=>"Enter"===t.key&&$(e.alias),placeholder:`Send task to ${e.alias}...`,className:"w-full rounded-lg border border-[#2a2a4a] bg-[#0a0a15] px-3 py-2 text-xs text-white placeholder-gray-600 focus:border-cyan-500 focus:outline-none"}),(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>N(null),className:"rounded-lg border border-gray-700 px-3 py-1.5 text-xs text-gray-400 hover:text-gray-200",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:()=>$(e.alias),disabled:a.sending||!(j[e.alias]||"").trim(),className:"rounded-lg bg-cyan-600 px-3 py-1.5 text-xs text-white hover:bg-cyan-500 disabled:cursor-not-allowed disabled:bg-gray-700",children:a.sending?"Sending...":"Send"})]})]}),a.error&&(0,t.jsx)("div",{className:"mt-2 text-xs text-red-400",children:a.error}),a.success&&S!==e.alias&&(0,t.jsx)("div",{className:"mt-2 text-xs text-green-400",children:a.success})]},e.alias)})]}),C&&(0,t.jsx)(i.TaskChatPanel,{alias:C,onClose:()=>R(null)})]})}])}]);