@sleep2agi/agent-network-dashboard 0.3.3-preview.0 → 0.4.0-preview.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 (506) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/cache/.previewinfo +1 -1
  4. package/.next/cache/.rscinfo +1 -1
  5. package/.next/cache/.tsbuildinfo +1 -1
  6. package/.next/dev/types/cache-life.d.ts +145 -0
  7. package/.next/dev/types/routes.d.ts +108 -0
  8. package/.next/dev/types/validator.ts +394 -0
  9. package/.next/diagnostics/route-bundle-stats.json +2 -2
  10. package/.next/fallback-build-manifest.json +3 -3
  11. package/.next/prerender-manifest.json +3 -3
  12. package/.next/server/app/_global-error.html +1 -1
  13. package/.next/server/app/_global-error.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  18. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  19. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/_not-found.html +2 -2
  21. package/.next/server/app/_not-found.rsc +2 -2
  22. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  23. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  24. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  25. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  26. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  27. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  28. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/admin.html +2 -2
  30. package/.next/server/app/admin.rsc +2 -2
  31. package/.next/server/app/admin.segments/_full.segment.rsc +2 -2
  32. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  33. package/.next/server/app/admin.segments/_index.segment.rsc +2 -2
  34. package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  35. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  36. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  37. package/.next/server/app/api/hub/auth/route.js +2 -1
  38. package/.next/server/app/api/hub/auth/route.js.nft.json +1 -1
  39. package/.next/server/app/index.html +2 -2
  40. package/.next/server/app/index.rsc +2 -2
  41. package/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  42. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  43. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  44. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  45. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  46. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/login.html +2 -2
  48. package/.next/server/app/login.rsc +2 -2
  49. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  50. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  51. package/.next/server/app/login.segments/_index.segment.rsc +2 -2
  52. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  53. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  54. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  55. package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/logs.html +2 -2
  57. package/.next/server/app/logs.rsc +2 -2
  58. package/.next/server/app/logs.segments/_full.segment.rsc +2 -2
  59. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  60. package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
  61. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  62. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  63. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  64. package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app/messages.html +2 -2
  66. package/.next/server/app/messages.rsc +2 -2
  67. package/.next/server/app/messages.segments/_full.segment.rsc +2 -2
  68. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  69. package/.next/server/app/messages.segments/_index.segment.rsc +2 -2
  70. package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
  71. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  72. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  73. package/.next/server/app/node/page_client-reference-manifest.js +1 -1
  74. package/.next/server/app/node.html +2 -2
  75. package/.next/server/app/node.rsc +2 -2
  76. package/.next/server/app/node.segments/_full.segment.rsc +2 -2
  77. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  78. package/.next/server/app/node.segments/_index.segment.rsc +2 -2
  79. package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
  80. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  81. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  82. package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/nodes.html +2 -2
  84. package/.next/server/app/nodes.rsc +2 -2
  85. package/.next/server/app/nodes.segments/_full.segment.rsc +2 -2
  86. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  87. package/.next/server/app/nodes.segments/_index.segment.rsc +2 -2
  88. package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
  89. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  90. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  91. package/.next/server/app/page_client-reference-manifest.js +1 -1
  92. package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
  93. package/.next/server/app/server-logs.html +2 -2
  94. package/.next/server/app/server-logs.rsc +2 -2
  95. package/.next/server/app/server-logs.segments/_full.segment.rsc +2 -2
  96. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  97. package/.next/server/app/server-logs.segments/_index.segment.rsc +2 -2
  98. package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
  99. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  100. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  101. package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
  102. package/.next/server/app/settings/networks.html +2 -2
  103. package/.next/server/app/settings/networks.rsc +2 -2
  104. package/.next/server/app/settings/networks.segments/_full.segment.rsc +2 -2
  105. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  106. package/.next/server/app/settings/networks.segments/_index.segment.rsc +2 -2
  107. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
  108. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  109. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  110. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  111. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  112. package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
  113. package/.next/server/app/settings/tokens.html +2 -2
  114. package/.next/server/app/settings/tokens.rsc +2 -2
  115. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +2 -2
  116. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  117. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +2 -2
  118. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
  119. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  120. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  121. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  122. package/.next/server/app/settings.html +2 -2
  123. package/.next/server/app/settings.rsc +3 -3
  124. package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  125. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  126. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  127. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  128. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  129. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  130. package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  131. package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  132. package/.next/server/app/tasks.html +2 -2
  133. package/.next/server/app/tasks.rsc +2 -2
  134. package/.next/server/app/tasks.segments/_full.segment.rsc +2 -2
  135. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  136. package/.next/server/app/tasks.segments/_index.segment.rsc +2 -2
  137. package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
  138. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  139. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  140. package/.next/server/chunks/[root-of-the-server]__0-mykaf._.js +1 -1
  141. package/.next/server/chunks/[root-of-the-server]__0-mykaf._.js.map +1 -1
  142. package/.next/server/chunks/[root-of-the-server]__0.d_kqy._.js +1 -1
  143. package/.next/server/chunks/[root-of-the-server]__0.d_kqy._.js.map +1 -1
  144. package/.next/server/chunks/[root-of-the-server]__02pocyg._.js +1 -1
  145. package/.next/server/chunks/[root-of-the-server]__02pocyg._.js.map +1 -1
  146. package/.next/server/chunks/[root-of-the-server]__03ueci3._.js +1 -1
  147. package/.next/server/chunks/[root-of-the-server]__03ueci3._.js.map +1 -1
  148. package/.next/server/chunks/[root-of-the-server]__04aud7x._.js +1 -1
  149. package/.next/server/chunks/[root-of-the-server]__04aud7x._.js.map +1 -1
  150. package/.next/server/chunks/[root-of-the-server]__05fnt3n._.js +1 -1
  151. package/.next/server/chunks/[root-of-the-server]__05fnt3n._.js.map +1 -1
  152. package/.next/server/chunks/[root-of-the-server]__0adhu1m._.js +1 -1
  153. package/.next/server/chunks/[root-of-the-server]__0adhu1m._.js.map +1 -1
  154. package/.next/server/chunks/[root-of-the-server]__0aqv02v._.js +1 -1
  155. package/.next/server/chunks/[root-of-the-server]__0aqv02v._.js.map +1 -1
  156. package/.next/server/chunks/[root-of-the-server]__0cawhfq._.js +1 -1
  157. package/.next/server/chunks/[root-of-the-server]__0cawhfq._.js.map +1 -1
  158. package/.next/server/chunks/[root-of-the-server]__0d_-_k.._.js +1 -1
  159. package/.next/server/chunks/[root-of-the-server]__0d_-_k.._.js.map +1 -1
  160. package/.next/server/chunks/[root-of-the-server]__0f6bxfl._.js +1 -1
  161. package/.next/server/chunks/[root-of-the-server]__0f6bxfl._.js.map +1 -1
  162. package/.next/server/chunks/[root-of-the-server]__0h15edq._.js +1 -1
  163. package/.next/server/chunks/[root-of-the-server]__0h15edq._.js.map +1 -1
  164. package/.next/server/chunks/[root-of-the-server]__0kltbce._.js +1 -1
  165. package/.next/server/chunks/[root-of-the-server]__0kltbce._.js.map +1 -1
  166. package/.next/server/chunks/[root-of-the-server]__0mn04fw._.js +1 -1
  167. package/.next/server/chunks/[root-of-the-server]__0mn04fw._.js.map +1 -1
  168. package/.next/server/chunks/[root-of-the-server]__0o29v8c._.js +1 -1
  169. package/.next/server/chunks/[root-of-the-server]__0o29v8c._.js.map +1 -1
  170. package/.next/server/chunks/[root-of-the-server]__0o4qfn9._.js +1 -1
  171. package/.next/server/chunks/[root-of-the-server]__0o4qfn9._.js.map +1 -1
  172. package/.next/server/chunks/[root-of-the-server]__0o7ya7r._.js +1 -1
  173. package/.next/server/chunks/[root-of-the-server]__0o7ya7r._.js.map +1 -1
  174. package/.next/server/chunks/[root-of-the-server]__0p6tutt._.js +1 -1
  175. package/.next/server/chunks/[root-of-the-server]__0p6tutt._.js.map +1 -1
  176. package/.next/server/chunks/[root-of-the-server]__0pn3wsx._.js +1 -1
  177. package/.next/server/chunks/[root-of-the-server]__0pn3wsx._.js.map +1 -1
  178. package/.next/server/chunks/[root-of-the-server]__0x.a_yh._.js +1 -1
  179. package/.next/server/chunks/[root-of-the-server]__0x.a_yh._.js.map +1 -1
  180. package/.next/server/chunks/[root-of-the-server]__139~d6a._.js +1 -1
  181. package/.next/server/chunks/[root-of-the-server]__139~d6a._.js.map +1 -1
  182. package/.next/server/chunks/ssr/app_0dk5wao._.js +1 -1
  183. package/.next/server/chunks/ssr/app_0dk5wao._.js.map +1 -1
  184. package/.next/server/middleware-build-manifest.js +3 -3
  185. package/.next/server/pages/404.html +2 -2
  186. package/.next/server/pages/500.html +1 -1
  187. package/.next/server/server-reference-manifest.js +1 -1
  188. package/.next/server/server-reference-manifest.json +1 -1
  189. package/.next/static/chunks/{0vsl4rolzp2fe.css → 0_b22ht_r8.-s.css} +1 -1
  190. package/.next/static/chunks/{0vlojka~d~9h4.js → 0y_po~f~fk~ap.js} +1 -1
  191. package/.next/trace +2 -2
  192. package/.next/trace-build +1 -1
  193. package/app/api/hub/auth/route.ts +16 -2
  194. package/app/api/hub/events/route.ts +2 -5
  195. package/app/api/hub/nodes/route.ts +1 -3
  196. package/app/api/hub/send/route.ts +1 -6
  197. package/app/api/hub/server-logs/route.ts +1 -3
  198. package/app/api/hub/tasks/route.ts +1 -3
  199. package/app/globals.css +58 -0
  200. package/app/lib/hub.ts +4 -15
  201. package/app/settings/page.tsx +8 -1
  202. package/package.json +1 -1
  203. package/.vercel/output/builds.json +0 -23
  204. package/.vercel/output/config.json +0 -465
  205. package/.vercel/output/diagnostics/build-diagnostics.json +0 -6
  206. package/.vercel/output/diagnostics/cli_traces.json +0 -1
  207. package/.vercel/output/diagnostics/framework.json +0 -1
  208. package/.vercel/output/diagnostics/route-bundle-stats.json +0 -198
  209. package/.vercel/output/diagnostics/trace +0 -2
  210. package/.vercel/output/diagnostics/trace-build +0 -1
  211. package/.vercel/output/diagnostics/turbopack +0 -0
  212. package/.vercel/output/functions/_global-error.prerender-config.json +0 -38
  213. package/.vercel/output/functions/_global-error.prerender-fallback.html +0 -1
  214. package/.vercel/output/functions/_global-error.rsc.func/.next/routes-manifest.json +0 -1
  215. package/.vercel/output/functions/_global-error.rsc.func/.next/server/app-paths-manifest.json +0 -1
  216. package/.vercel/output/functions/_global-error.rsc.func/.next/server/pages-manifest.json +0 -1
  217. package/.vercel/output/functions/_global-error.rsc.func/.vc-config.json +0 -799
  218. package/.vercel/output/functions/_global-error.rsc.func/___next_launcher.cjs +0 -68
  219. package/.vercel/output/functions/_global-error.rsc.prerender-config.json +0 -38
  220. package/.vercel/output/functions/_global-error.rsc.prerender-fallback.rsc +0 -15
  221. package/.vercel/output/functions/_global-error.segments/__PAGE__.segment.rsc.prerender-config.json +0 -28
  222. package/.vercel/output/functions/_global-error.segments/__PAGE__.segment.rsc.prerender-fallback.rsc +0 -5
  223. package/.vercel/output/functions/_global-error.segments/_full.segment.rsc.prerender-config.json +0 -28
  224. package/.vercel/output/functions/_global-error.segments/_full.segment.rsc.prerender-fallback.rsc +0 -15
  225. package/.vercel/output/functions/_global-error.segments/_head.segment.rsc.prerender-config.json +0 -28
  226. package/.vercel/output/functions/_global-error.segments/_head.segment.rsc.prerender-fallback.rsc +0 -6
  227. package/.vercel/output/functions/_global-error.segments/_index.segment.rsc.prerender-config.json +0 -28
  228. package/.vercel/output/functions/_global-error.segments/_index.segment.rsc.prerender-fallback.rsc +0 -5
  229. package/.vercel/output/functions/_global-error.segments/_tree.segment.rsc.prerender-config.json +0 -28
  230. package/.vercel/output/functions/_global-error.segments/_tree.segment.rsc.prerender-fallback.rsc +0 -1
  231. package/.vercel/output/functions/_middleware.func/.vc-config.json +0 -107
  232. package/.vercel/output/functions/_middleware.func/___next_launcher.cjs +0 -135
  233. package/.vercel/output/functions/_not-found.prerender-config.json +0 -38
  234. package/.vercel/output/functions/_not-found.prerender-fallback.html +0 -7
  235. package/.vercel/output/functions/_not-found.rsc.prerender-config.json +0 -38
  236. package/.vercel/output/functions/_not-found.rsc.prerender-fallback.rsc +0 -18
  237. package/.vercel/output/functions/_not-found.segments/_full.segment.rsc.prerender-config.json +0 -28
  238. package/.vercel/output/functions/_not-found.segments/_full.segment.rsc.prerender-fallback.rsc +0 -18
  239. package/.vercel/output/functions/_not-found.segments/_head.segment.rsc.prerender-config.json +0 -28
  240. package/.vercel/output/functions/_not-found.segments/_head.segment.rsc.prerender-fallback.rsc +0 -6
  241. package/.vercel/output/functions/_not-found.segments/_index.segment.rsc.prerender-config.json +0 -28
  242. package/.vercel/output/functions/_not-found.segments/_index.segment.rsc.prerender-fallback.rsc +0 -7
  243. package/.vercel/output/functions/_not-found.segments/_not-found/__PAGE__.segment.rsc.prerender-config.json +0 -28
  244. package/.vercel/output/functions/_not-found.segments/_not-found/__PAGE__.segment.rsc.prerender-fallback.rsc +0 -5
  245. package/.vercel/output/functions/_not-found.segments/_not-found.segment.rsc.prerender-config.json +0 -28
  246. package/.vercel/output/functions/_not-found.segments/_not-found.segment.rsc.prerender-fallback.rsc +0 -5
  247. package/.vercel/output/functions/_not-found.segments/_tree.segment.rsc.prerender-config.json +0 -28
  248. package/.vercel/output/functions/_not-found.segments/_tree.segment.rsc.prerender-fallback.rsc +0 -2
  249. package/.vercel/output/functions/admin.prerender-config.json +0 -37
  250. package/.vercel/output/functions/admin.prerender-fallback.html +0 -7
  251. package/.vercel/output/functions/admin.rsc.prerender-config.json +0 -38
  252. package/.vercel/output/functions/admin.rsc.prerender-fallback.rsc +0 -23
  253. package/.vercel/output/functions/admin.segments/_full.segment.rsc.prerender-config.json +0 -28
  254. package/.vercel/output/functions/admin.segments/_full.segment.rsc.prerender-fallback.rsc +0 -23
  255. package/.vercel/output/functions/admin.segments/_head.segment.rsc.prerender-config.json +0 -28
  256. package/.vercel/output/functions/admin.segments/_head.segment.rsc.prerender-fallback.rsc +0 -6
  257. package/.vercel/output/functions/admin.segments/_index.segment.rsc.prerender-config.json +0 -28
  258. package/.vercel/output/functions/admin.segments/_index.segment.rsc.prerender-fallback.rsc +0 -7
  259. package/.vercel/output/functions/admin.segments/_tree.segment.rsc.prerender-config.json +0 -28
  260. package/.vercel/output/functions/admin.segments/_tree.segment.rsc.prerender-fallback.rsc +0 -3
  261. package/.vercel/output/functions/admin.segments/admin/__PAGE__.segment.rsc.prerender-config.json +0 -28
  262. package/.vercel/output/functions/admin.segments/admin/__PAGE__.segment.rsc.prerender-fallback.rsc +0 -9
  263. package/.vercel/output/functions/admin.segments/admin.segment.rsc.prerender-config.json +0 -28
  264. package/.vercel/output/functions/admin.segments/admin.segment.rsc.prerender-fallback.rsc +0 -5
  265. package/.vercel/output/functions/api/anet/config.func/.next/routes-manifest.json +0 -1
  266. package/.vercel/output/functions/api/anet/config.func/.next/server/app-paths-manifest.json +0 -1
  267. package/.vercel/output/functions/api/anet/config.func/.next/server/pages-manifest.json +0 -1
  268. package/.vercel/output/functions/api/anet/config.func/.vc-config.json +0 -801
  269. package/.vercel/output/functions/api/anet/config.func/___next_launcher.cjs +0 -68
  270. package/.vercel/output/functions/docs.prerender-config.json +0 -37
  271. package/.vercel/output/functions/docs.prerender-fallback.html +0 -49
  272. package/.vercel/output/functions/docs.rsc.prerender-config.json +0 -38
  273. package/.vercel/output/functions/docs.rsc.prerender-fallback.rsc +0 -23
  274. package/.vercel/output/functions/docs.segments/_full.segment.rsc.prerender-config.json +0 -28
  275. package/.vercel/output/functions/docs.segments/_full.segment.rsc.prerender-fallback.rsc +0 -23
  276. package/.vercel/output/functions/docs.segments/_head.segment.rsc.prerender-config.json +0 -28
  277. package/.vercel/output/functions/docs.segments/_head.segment.rsc.prerender-fallback.rsc +0 -6
  278. package/.vercel/output/functions/docs.segments/_index.segment.rsc.prerender-config.json +0 -28
  279. package/.vercel/output/functions/docs.segments/_index.segment.rsc.prerender-fallback.rsc +0 -7
  280. package/.vercel/output/functions/docs.segments/_tree.segment.rsc.prerender-config.json +0 -28
  281. package/.vercel/output/functions/docs.segments/_tree.segment.rsc.prerender-fallback.rsc +0 -3
  282. package/.vercel/output/functions/docs.segments/docs/__PAGE__.segment.rsc.prerender-config.json +0 -28
  283. package/.vercel/output/functions/docs.segments/docs/__PAGE__.segment.rsc.prerender-fallback.rsc +0 -9
  284. package/.vercel/output/functions/docs.segments/docs.segment.rsc.prerender-config.json +0 -28
  285. package/.vercel/output/functions/docs.segments/docs.segment.rsc.prerender-fallback.rsc +0 -5
  286. package/.vercel/output/functions/favicon.ico.rsc.func/.next/routes-manifest.json +0 -1
  287. package/.vercel/output/functions/favicon.ico.rsc.func/.next/server/app-paths-manifest.json +0 -1
  288. package/.vercel/output/functions/favicon.ico.rsc.func/.next/server/pages-manifest.json +0 -1
  289. package/.vercel/output/functions/favicon.ico.rsc.func/.vc-config.json +0 -710
  290. package/.vercel/output/functions/favicon.ico.rsc.func/___next_launcher.cjs +0 -68
  291. package/.vercel/output/functions/index.prerender-config.json +0 -38
  292. package/.vercel/output/functions/index.prerender-fallback.html +0 -7
  293. package/.vercel/output/functions/index.rsc.prerender-config.json +0 -38
  294. package/.vercel/output/functions/index.rsc.prerender-fallback.rsc +0 -21
  295. package/.vercel/output/functions/index.segments/__PAGE__.segment.rsc.prerender-config.json +0 -28
  296. package/.vercel/output/functions/index.segments/__PAGE__.segment.rsc.prerender-fallback.rsc +0 -9
  297. package/.vercel/output/functions/index.segments/_full.segment.rsc.prerender-config.json +0 -28
  298. package/.vercel/output/functions/index.segments/_full.segment.rsc.prerender-fallback.rsc +0 -21
  299. package/.vercel/output/functions/index.segments/_head.segment.rsc.prerender-config.json +0 -28
  300. package/.vercel/output/functions/index.segments/_head.segment.rsc.prerender-fallback.rsc +0 -6
  301. package/.vercel/output/functions/index.segments/_index.segment.rsc.prerender-config.json +0 -28
  302. package/.vercel/output/functions/index.segments/_index.segment.rsc.prerender-fallback.rsc +0 -7
  303. package/.vercel/output/functions/index.segments/_tree.segment.rsc.prerender-config.json +0 -28
  304. package/.vercel/output/functions/index.segments/_tree.segment.rsc.prerender-fallback.rsc +0 -3
  305. package/.vercel/output/functions/login.prerender-config.json +0 -37
  306. package/.vercel/output/functions/login.prerender-fallback.html +0 -1
  307. package/.vercel/output/functions/login.rsc.prerender-config.json +0 -38
  308. package/.vercel/output/functions/login.rsc.prerender-fallback.rsc +0 -23
  309. package/.vercel/output/functions/login.segments/_full.segment.rsc.prerender-config.json +0 -28
  310. package/.vercel/output/functions/login.segments/_full.segment.rsc.prerender-fallback.rsc +0 -23
  311. package/.vercel/output/functions/login.segments/_head.segment.rsc.prerender-config.json +0 -28
  312. package/.vercel/output/functions/login.segments/_head.segment.rsc.prerender-fallback.rsc +0 -6
  313. package/.vercel/output/functions/login.segments/_index.segment.rsc.prerender-config.json +0 -28
  314. package/.vercel/output/functions/login.segments/_index.segment.rsc.prerender-fallback.rsc +0 -7
  315. package/.vercel/output/functions/login.segments/_tree.segment.rsc.prerender-config.json +0 -28
  316. package/.vercel/output/functions/login.segments/_tree.segment.rsc.prerender-fallback.rsc +0 -3
  317. package/.vercel/output/functions/login.segments/login/__PAGE__.segment.rsc.prerender-config.json +0 -28
  318. package/.vercel/output/functions/login.segments/login/__PAGE__.segment.rsc.prerender-fallback.rsc +0 -9
  319. package/.vercel/output/functions/login.segments/login.segment.rsc.prerender-config.json +0 -28
  320. package/.vercel/output/functions/login.segments/login.segment.rsc.prerender-fallback.rsc +0 -5
  321. package/.vercel/output/functions/logs.prerender-config.json +0 -37
  322. package/.vercel/output/functions/logs.prerender-fallback.html +0 -7
  323. package/.vercel/output/functions/logs.rsc.prerender-config.json +0 -38
  324. package/.vercel/output/functions/logs.rsc.prerender-fallback.rsc +0 -23
  325. package/.vercel/output/functions/logs.segments/_full.segment.rsc.prerender-config.json +0 -28
  326. package/.vercel/output/functions/logs.segments/_full.segment.rsc.prerender-fallback.rsc +0 -23
  327. package/.vercel/output/functions/logs.segments/_head.segment.rsc.prerender-config.json +0 -28
  328. package/.vercel/output/functions/logs.segments/_head.segment.rsc.prerender-fallback.rsc +0 -6
  329. package/.vercel/output/functions/logs.segments/_index.segment.rsc.prerender-config.json +0 -28
  330. package/.vercel/output/functions/logs.segments/_index.segment.rsc.prerender-fallback.rsc +0 -7
  331. package/.vercel/output/functions/logs.segments/_tree.segment.rsc.prerender-config.json +0 -28
  332. package/.vercel/output/functions/logs.segments/_tree.segment.rsc.prerender-fallback.rsc +0 -3
  333. package/.vercel/output/functions/logs.segments/logs/__PAGE__.segment.rsc.prerender-config.json +0 -28
  334. package/.vercel/output/functions/logs.segments/logs/__PAGE__.segment.rsc.prerender-fallback.rsc +0 -9
  335. package/.vercel/output/functions/logs.segments/logs.segment.rsc.prerender-config.json +0 -28
  336. package/.vercel/output/functions/logs.segments/logs.segment.rsc.prerender-fallback.rsc +0 -5
  337. package/.vercel/output/functions/messages.prerender-config.json +0 -37
  338. package/.vercel/output/functions/messages.prerender-fallback.html +0 -7
  339. package/.vercel/output/functions/messages.rsc.prerender-config.json +0 -38
  340. package/.vercel/output/functions/messages.rsc.prerender-fallback.rsc +0 -23
  341. package/.vercel/output/functions/messages.segments/_full.segment.rsc.prerender-config.json +0 -28
  342. package/.vercel/output/functions/messages.segments/_full.segment.rsc.prerender-fallback.rsc +0 -23
  343. package/.vercel/output/functions/messages.segments/_head.segment.rsc.prerender-config.json +0 -28
  344. package/.vercel/output/functions/messages.segments/_head.segment.rsc.prerender-fallback.rsc +0 -6
  345. package/.vercel/output/functions/messages.segments/_index.segment.rsc.prerender-config.json +0 -28
  346. package/.vercel/output/functions/messages.segments/_index.segment.rsc.prerender-fallback.rsc +0 -7
  347. package/.vercel/output/functions/messages.segments/_tree.segment.rsc.prerender-config.json +0 -28
  348. package/.vercel/output/functions/messages.segments/_tree.segment.rsc.prerender-fallback.rsc +0 -3
  349. package/.vercel/output/functions/messages.segments/messages/__PAGE__.segment.rsc.prerender-config.json +0 -28
  350. package/.vercel/output/functions/messages.segments/messages/__PAGE__.segment.rsc.prerender-fallback.rsc +0 -9
  351. package/.vercel/output/functions/messages.segments/messages.segment.rsc.prerender-config.json +0 -28
  352. package/.vercel/output/functions/messages.segments/messages.segment.rsc.prerender-fallback.rsc +0 -5
  353. package/.vercel/output/functions/node.prerender-config.json +0 -37
  354. package/.vercel/output/functions/node.prerender-fallback.html +0 -7
  355. package/.vercel/output/functions/node.rsc.prerender-config.json +0 -38
  356. package/.vercel/output/functions/node.rsc.prerender-fallback.rsc +0 -23
  357. package/.vercel/output/functions/node.segments/_full.segment.rsc.prerender-config.json +0 -28
  358. package/.vercel/output/functions/node.segments/_full.segment.rsc.prerender-fallback.rsc +0 -23
  359. package/.vercel/output/functions/node.segments/_head.segment.rsc.prerender-config.json +0 -28
  360. package/.vercel/output/functions/node.segments/_head.segment.rsc.prerender-fallback.rsc +0 -6
  361. package/.vercel/output/functions/node.segments/_index.segment.rsc.prerender-config.json +0 -28
  362. package/.vercel/output/functions/node.segments/_index.segment.rsc.prerender-fallback.rsc +0 -7
  363. package/.vercel/output/functions/node.segments/_tree.segment.rsc.prerender-config.json +0 -28
  364. package/.vercel/output/functions/node.segments/_tree.segment.rsc.prerender-fallback.rsc +0 -3
  365. package/.vercel/output/functions/node.segments/node/__PAGE__.segment.rsc.prerender-config.json +0 -28
  366. package/.vercel/output/functions/node.segments/node/__PAGE__.segment.rsc.prerender-fallback.rsc +0 -9
  367. package/.vercel/output/functions/node.segments/node.segment.rsc.prerender-config.json +0 -28
  368. package/.vercel/output/functions/node.segments/node.segment.rsc.prerender-fallback.rsc +0 -5
  369. package/.vercel/output/functions/nodes.prerender-config.json +0 -37
  370. package/.vercel/output/functions/nodes.prerender-fallback.html +0 -7
  371. package/.vercel/output/functions/nodes.rsc.prerender-config.json +0 -38
  372. package/.vercel/output/functions/nodes.rsc.prerender-fallback.rsc +0 -23
  373. package/.vercel/output/functions/nodes.segments/_full.segment.rsc.prerender-config.json +0 -28
  374. package/.vercel/output/functions/nodes.segments/_full.segment.rsc.prerender-fallback.rsc +0 -23
  375. package/.vercel/output/functions/nodes.segments/_head.segment.rsc.prerender-config.json +0 -28
  376. package/.vercel/output/functions/nodes.segments/_head.segment.rsc.prerender-fallback.rsc +0 -6
  377. package/.vercel/output/functions/nodes.segments/_index.segment.rsc.prerender-config.json +0 -28
  378. package/.vercel/output/functions/nodes.segments/_index.segment.rsc.prerender-fallback.rsc +0 -7
  379. package/.vercel/output/functions/nodes.segments/_tree.segment.rsc.prerender-config.json +0 -28
  380. package/.vercel/output/functions/nodes.segments/_tree.segment.rsc.prerender-fallback.rsc +0 -3
  381. package/.vercel/output/functions/nodes.segments/nodes/__PAGE__.segment.rsc.prerender-config.json +0 -28
  382. package/.vercel/output/functions/nodes.segments/nodes/__PAGE__.segment.rsc.prerender-fallback.rsc +0 -9
  383. package/.vercel/output/functions/nodes.segments/nodes.segment.rsc.prerender-config.json +0 -28
  384. package/.vercel/output/functions/nodes.segments/nodes.segment.rsc.prerender-fallback.rsc +0 -5
  385. package/.vercel/output/functions/settings/networks.prerender-config.json +0 -37
  386. package/.vercel/output/functions/settings/networks.prerender-fallback.html +0 -7
  387. package/.vercel/output/functions/settings/networks.rsc.prerender-config.json +0 -38
  388. package/.vercel/output/functions/settings/networks.rsc.prerender-fallback.rsc +0 -23
  389. package/.vercel/output/functions/settings/networks.segments/_full.segment.rsc.prerender-config.json +0 -28
  390. package/.vercel/output/functions/settings/networks.segments/_full.segment.rsc.prerender-fallback.rsc +0 -23
  391. package/.vercel/output/functions/settings/networks.segments/_head.segment.rsc.prerender-config.json +0 -28
  392. package/.vercel/output/functions/settings/networks.segments/_head.segment.rsc.prerender-fallback.rsc +0 -6
  393. package/.vercel/output/functions/settings/networks.segments/_index.segment.rsc.prerender-config.json +0 -28
  394. package/.vercel/output/functions/settings/networks.segments/_index.segment.rsc.prerender-fallback.rsc +0 -7
  395. package/.vercel/output/functions/settings/networks.segments/_tree.segment.rsc.prerender-config.json +0 -28
  396. package/.vercel/output/functions/settings/networks.segments/_tree.segment.rsc.prerender-fallback.rsc +0 -3
  397. package/.vercel/output/functions/settings/networks.segments/settings/networks/__PAGE__.segment.rsc.prerender-config.json +0 -28
  398. package/.vercel/output/functions/settings/networks.segments/settings/networks/__PAGE__.segment.rsc.prerender-fallback.rsc +0 -9
  399. package/.vercel/output/functions/settings/networks.segments/settings/networks.segment.rsc.prerender-config.json +0 -28
  400. package/.vercel/output/functions/settings/networks.segments/settings/networks.segment.rsc.prerender-fallback.rsc +0 -5
  401. package/.vercel/output/functions/settings/networks.segments/settings.segment.rsc.prerender-config.json +0 -28
  402. package/.vercel/output/functions/settings/networks.segments/settings.segment.rsc.prerender-fallback.rsc +0 -5
  403. package/.vercel/output/functions/settings/tokens.prerender-config.json +0 -37
  404. package/.vercel/output/functions/settings/tokens.prerender-fallback.html +0 -7
  405. package/.vercel/output/functions/settings/tokens.rsc.prerender-config.json +0 -38
  406. package/.vercel/output/functions/settings/tokens.rsc.prerender-fallback.rsc +0 -23
  407. package/.vercel/output/functions/settings/tokens.segments/_full.segment.rsc.prerender-config.json +0 -28
  408. package/.vercel/output/functions/settings/tokens.segments/_full.segment.rsc.prerender-fallback.rsc +0 -23
  409. package/.vercel/output/functions/settings/tokens.segments/_head.segment.rsc.prerender-config.json +0 -28
  410. package/.vercel/output/functions/settings/tokens.segments/_head.segment.rsc.prerender-fallback.rsc +0 -6
  411. package/.vercel/output/functions/settings/tokens.segments/_index.segment.rsc.prerender-config.json +0 -28
  412. package/.vercel/output/functions/settings/tokens.segments/_index.segment.rsc.prerender-fallback.rsc +0 -7
  413. package/.vercel/output/functions/settings/tokens.segments/_tree.segment.rsc.prerender-config.json +0 -28
  414. package/.vercel/output/functions/settings/tokens.segments/_tree.segment.rsc.prerender-fallback.rsc +0 -3
  415. package/.vercel/output/functions/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc.prerender-config.json +0 -28
  416. package/.vercel/output/functions/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc.prerender-fallback.rsc +0 -9
  417. package/.vercel/output/functions/settings/tokens.segments/settings/tokens.segment.rsc.prerender-config.json +0 -28
  418. package/.vercel/output/functions/settings/tokens.segments/settings/tokens.segment.rsc.prerender-fallback.rsc +0 -5
  419. package/.vercel/output/functions/settings/tokens.segments/settings.segment.rsc.prerender-config.json +0 -28
  420. package/.vercel/output/functions/settings/tokens.segments/settings.segment.rsc.prerender-fallback.rsc +0 -5
  421. package/.vercel/output/functions/settings.prerender-config.json +0 -37
  422. package/.vercel/output/functions/settings.prerender-fallback.html +0 -7
  423. package/.vercel/output/functions/settings.rsc.prerender-config.json +0 -38
  424. package/.vercel/output/functions/settings.rsc.prerender-fallback.rsc +0 -23
  425. package/.vercel/output/functions/settings.segments/_full.segment.rsc.prerender-config.json +0 -28
  426. package/.vercel/output/functions/settings.segments/_full.segment.rsc.prerender-fallback.rsc +0 -23
  427. package/.vercel/output/functions/settings.segments/_head.segment.rsc.prerender-config.json +0 -28
  428. package/.vercel/output/functions/settings.segments/_head.segment.rsc.prerender-fallback.rsc +0 -6
  429. package/.vercel/output/functions/settings.segments/_index.segment.rsc.prerender-config.json +0 -28
  430. package/.vercel/output/functions/settings.segments/_index.segment.rsc.prerender-fallback.rsc +0 -7
  431. package/.vercel/output/functions/settings.segments/_tree.segment.rsc.prerender-config.json +0 -28
  432. package/.vercel/output/functions/settings.segments/_tree.segment.rsc.prerender-fallback.rsc +0 -3
  433. package/.vercel/output/functions/settings.segments/settings/__PAGE__.segment.rsc.prerender-config.json +0 -28
  434. package/.vercel/output/functions/settings.segments/settings/__PAGE__.segment.rsc.prerender-fallback.rsc +0 -9
  435. package/.vercel/output/functions/settings.segments/settings.segment.rsc.prerender-config.json +0 -28
  436. package/.vercel/output/functions/settings.segments/settings.segment.rsc.prerender-fallback.rsc +0 -5
  437. package/.vercel/output/functions/tasks/[id].func/.next/routes-manifest.json +0 -1
  438. package/.vercel/output/functions/tasks/[id].func/.next/server/app-paths-manifest.json +0 -1
  439. package/.vercel/output/functions/tasks/[id].func/.next/server/pages-manifest.json +0 -1
  440. package/.vercel/output/functions/tasks/[id].func/.vc-config.json +0 -712
  441. package/.vercel/output/functions/tasks/[id].func/___next_launcher.cjs +0 -68
  442. package/.vercel/output/functions/tasks.prerender-config.json +0 -37
  443. package/.vercel/output/functions/tasks.prerender-fallback.html +0 -7
  444. package/.vercel/output/functions/tasks.rsc.prerender-config.json +0 -38
  445. package/.vercel/output/functions/tasks.rsc.prerender-fallback.rsc +0 -23
  446. package/.vercel/output/functions/tasks.segments/_full.segment.rsc.prerender-config.json +0 -28
  447. package/.vercel/output/functions/tasks.segments/_full.segment.rsc.prerender-fallback.rsc +0 -23
  448. package/.vercel/output/functions/tasks.segments/_head.segment.rsc.prerender-config.json +0 -28
  449. package/.vercel/output/functions/tasks.segments/_head.segment.rsc.prerender-fallback.rsc +0 -6
  450. package/.vercel/output/functions/tasks.segments/_index.segment.rsc.prerender-config.json +0 -28
  451. package/.vercel/output/functions/tasks.segments/_index.segment.rsc.prerender-fallback.rsc +0 -7
  452. package/.vercel/output/functions/tasks.segments/_tree.segment.rsc.prerender-config.json +0 -28
  453. package/.vercel/output/functions/tasks.segments/_tree.segment.rsc.prerender-fallback.rsc +0 -3
  454. package/.vercel/output/functions/tasks.segments/tasks/__PAGE__.segment.rsc.prerender-config.json +0 -28
  455. package/.vercel/output/functions/tasks.segments/tasks/__PAGE__.segment.rsc.prerender-fallback.rsc +0 -9
  456. package/.vercel/output/functions/tasks.segments/tasks.segment.rsc.prerender-config.json +0 -28
  457. package/.vercel/output/functions/tasks.segments/tasks.segment.rsc.prerender-fallback.rsc +0 -5
  458. package/.vercel/output/static/404.html +0 -7
  459. package/.vercel/output/static/404.rsc.json +0 -1
  460. package/.vercel/output/static/404.segments/_tree.segment.rsc.json +0 -1
  461. package/.vercel/output/static/500.html +0 -1
  462. package/.vercel/output/static/500.rsc.json +0 -1
  463. package/.vercel/output/static/500.segments/_tree.segment.rsc.json +0 -1
  464. package/.vercel/output/static/_next/__private/trace +0 -2
  465. package/.vercel/output/static/_next/static/GNDo6uXTepa_YJjaEhOTZ/_buildManifest.js +0 -11
  466. package/.vercel/output/static/_next/static/GNDo6uXTepa_YJjaEhOTZ/_clientMiddlewareManifest.js +0 -42
  467. package/.vercel/output/static/_next/static/GNDo6uXTepa_YJjaEhOTZ/_ssgManifest.js +0 -1
  468. package/.vercel/output/static/_next/static/chunks/00lj3.so.3xcl.js +0 -1
  469. package/.vercel/output/static/_next/static/chunks/01bx19dpl~r6u.js +0 -43
  470. package/.vercel/output/static/_next/static/chunks/01xlw8hd842-c.js +0 -1
  471. package/.vercel/output/static/_next/static/chunks/024co7ns8w7ms.js +0 -1
  472. package/.vercel/output/static/_next/static/chunks/03~yq9q893hmn.js +0 -1
  473. package/.vercel/output/static/_next/static/chunks/0_qu9.8wo.eq1.css +0 -2
  474. package/.vercel/output/static/_next/static/chunks/0e-wrhqh4h3r5.js +0 -2
  475. package/.vercel/output/static/_next/static/chunks/0fpff4dxg3a5x.js +0 -7
  476. package/.vercel/output/static/_next/static/chunks/0gjidgcgd2ibn.js +0 -1
  477. package/.vercel/output/static/_next/static/chunks/0io~i_rk3k9q3.js +0 -7
  478. package/.vercel/output/static/_next/static/chunks/0o~g2gtcm3~v5.js +0 -1
  479. package/.vercel/output/static/_next/static/chunks/0pqt~8bl3ukh4.js +0 -4
  480. package/.vercel/output/static/_next/static/chunks/0ql1nb6991-hi.js +0 -1
  481. package/.vercel/output/static/_next/static/chunks/0s4w.hhez3.xx.js +0 -1
  482. package/.vercel/output/static/_next/static/chunks/0tb-yun7e_n3c.js +0 -1
  483. package/.vercel/output/static/_next/static/chunks/0w.7_h6kx__bg.js +0 -1
  484. package/.vercel/output/static/_next/static/chunks/0w5hxo645~s.g.js +0 -31
  485. package/.vercel/output/static/_next/static/chunks/0xqtq9944k~ek.js +0 -1
  486. package/.vercel/output/static/_next/static/chunks/0~sxxils~iff..js +0 -1
  487. package/.vercel/output/static/_next/static/chunks/11f7871-m2pu4.js +0 -1
  488. package/.vercel/output/static/_next/static/chunks/11tov78a0ymt9.js +0 -1
  489. package/.vercel/output/static/_next/static/chunks/12t1c0u8~txfo.js +0 -1
  490. package/.vercel/output/static/_next/static/chunks/15-ywchriw.vi.js +0 -1
  491. package/.vercel/output/static/_next/static/chunks/turbopack-0zklppa1rg.u8.js +0 -1
  492. package/.vercel/output/static/_next/static/media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2 +0 -0
  493. package/.vercel/output/static/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2 +0 -0
  494. package/.vercel/output/static/_next/static/media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2 +0 -0
  495. package/.vercel/output/static/_next/static/media/favicon.0x3dzn~oxb6tn.ico +0 -0
  496. package/.vercel/output/static/_next/static/not-found.txt +0 -1
  497. package/.vercel/output/static/favicon.ico +0 -0
  498. package/.vercel/output/static/favicon.svg +0 -10
  499. package/.vercel/output/static/file.svg +0 -1
  500. package/.vercel/output/static/globe.svg +0 -1
  501. package/.vercel/output/static/next.svg +0 -1
  502. package/.vercel/output/static/vercel.svg +0 -1
  503. package/.vercel/output/static/window.svg +0 -1
  504. /package/.next/static/{AWcMCoVhNlS-VbBXMA0tD → TiDWPnTdwl4UAFFsW9Wa9}/_buildManifest.js +0 -0
  505. /package/.next/static/{AWcMCoVhNlS-VbBXMA0tD → TiDWPnTdwl4UAFFsW9Wa9}/_clientMiddlewareManifest.js +0 -0
  506. /package/.next/static/{AWcMCoVhNlS-VbBXMA0tD → TiDWPnTdwl4UAFFsW9Wa9}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../app/lib/hooks.ts","../../../../app/settings/page.tsx"],"sourcesContent":["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","'use client';\n\nimport { useState } from 'react';\nimport Link from 'next/link';\nimport { useAnetConfig, useHealth, useLicense } from '../lib/hooks';\n\nexport default function SettingsPage() {\n const { config } = useAnetConfig();\n const { health } = useHealth();\n const { license: licData } = useLicense();\n const [licKey, setLicKey] = useState('');\n const [licResult, setLicResult] = useState('');\n const [oldPwd, setOldPwd] = useState('');\n const [newPwd, setNewPwd] = useState('');\n const [pwdResult, setPwdResult] = useState('');\n const rowClass = 'flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between';\n const valueClass = 'break-all sm:max-w-[320px] sm:text-right';\n\n return (\n <div className=\"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono\">\n <h1 className=\"text-2xl font-bold text-white mb-6 lg:ml-0 ml-10\">Settings</h1>\n\n <div className=\"max-w-2xl space-y-6\">\n {/* CommHub Connection */}\n <section className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5\">\n <h2 className=\"text-sm font-semibold text-gray-300 mb-4\">CommHub Connection</h2>\n <div className=\"space-y-3 text-sm\">\n <div className={rowClass}>\n <span className=\"text-gray-500 shrink-0\">Hub URL</span>\n <span className={`text-cyan-300 ${valueClass}`}>{config?.hub || 'not configured'}</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Config Source</span>\n <span className={`text-gray-300 ${valueClass}`}>\n {config?.source === 'file' ? 'Local file (~/.anet/config.json)' : config?.source === 'runtime-env' ? 'Vercel env vars' : 'Missing'}\n </span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Auth Token</span>\n <span className={`${config?.tokenConfigured ? 'text-green-400' : 'text-red-400'} ${valueClass}`}>\n {config?.tokenConfigured ? `Configured (${config.tokenPreview})` : 'Not configured'}\n </span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Server Auth</span>\n <span className={`${health?.auth === 'enabled' ? 'text-green-400' : 'text-yellow-400'} sm:text-right`}>\n {health?.auth || '--'}\n </span>\n </div>\n {config?.error && (\n <div className=\"border-t border-[#2a2a4a] pt-3 text-xs text-gray-600\">\n {config.error}\n </div>\n )}\n </div>\n </section>\n\n {/* Server Info */}\n <section className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5\">\n <h2 className=\"text-sm font-semibold text-gray-300 mb-4\">Server Info</h2>\n <div className=\"space-y-3 text-sm\">\n <div className={rowClass}>\n <span className=\"text-gray-500\">Version</span>\n <span className={`text-gray-300 ${valueClass}`}>{health?.version || '--'}</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Sessions</span>\n <span className={`text-gray-300 ${valueClass}`}>{health?.sessions ?? '--'}</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">SSE Connections</span>\n <span className={`text-gray-300 ${valueClass}`}>{health?.sse_connections ?? '--'}</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Uptime</span>\n <span className={`text-gray-300 ${valueClass}`}>{health?.uptime ? `${Math.floor(health.uptime / 3600)}h ${Math.floor((health.uptime % 3600) / 60)}m` : '--'}</span>\n </div>\n </div>\n </section>\n\n {/* Dashboard Info */}\n <section className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5\">\n <h2 className=\"text-sm font-semibold text-gray-300 mb-4\">Dashboard</h2>\n <div className=\"space-y-3 text-sm\">\n <div className={rowClass}>\n <span className=\"text-gray-500\">Version</span>\n <span className={`text-gray-300 ${valueClass}`}>V2.1</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Data Layer</span>\n <span className={`text-gray-300 ${valueClass}`}>SWR (5s refresh, 3s dedup)</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Pages</span>\n <span className={`text-gray-300 ${valueClass}`}>Overview, Tasks, Nodes, Messages, Settings</span>\n </div>\n </div>\n </section>\n\n {/* License */}\n <section className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5\">\n <h2 className=\"text-sm font-semibold text-gray-300 mb-4\">License</h2>\n {licData?.license ? (\n <div className=\"space-y-3 text-sm\">\n <div className={rowClass}>\n <span className=\"text-gray-500\">Type</span>\n <span className={`font-medium ${licData.license.type === 'pro' ? 'text-green-400' : 'text-yellow-400'}`}>\n {licData.license.type}\n </span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Days Left</span>\n <span className={`${licData.license.days_left <= 7 ? 'text-red-400' : 'text-gray-300'}`}>\n {licData.license.days_left} days\n {licData.license.days_left <= 7 && ' — expiring soon!'}\n </span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Expires</span>\n <span className={`text-gray-300 ${valueClass}`}>{licData.license.expires_at}</span>\n </div>\n {licData.limits && (\n <>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Max Agents</span>\n <span className={`text-gray-300 ${valueClass}`}>{licData.limits.max_agents}</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Max Networks</span>\n <span className={`text-gray-300 ${valueClass}`}>{licData.limits.max_networks}</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Tasks/Day</span>\n <span className={`text-gray-300 ${valueClass}`}>{licData.limits.max_tasks_day}</span>\n </div>\n </>\n )}\n <div className=\"pt-3 border-t border-[#2a2a4a]\">\n <div className=\"flex gap-2\">\n <input type=\"text\" value={licKey} onChange={e => setLicKey(e.target.value)}\n placeholder=\"anet-XXXX-XXXX-XXXX-XXXX\"\n className=\"flex-1 bg-[#0a0a15] border border-[#2a2a4a] rounded px-3 py-2 text-xs text-white placeholder-gray-600 focus:outline-none\" />\n <button onClick={async () => {\n if (!licKey.trim()) return;\n const res = await fetch('/api/hub/license', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ key: licKey }) });\n const data = await res.json();\n setLicResult(data.ok ? `Activated: ${data.type}` : `Failed: ${data.error}`);\n if (data.ok) setLicKey('');\n setTimeout(() => setLicResult(''), 5000);\n }} className=\"px-3 py-2 bg-cyan-600 hover:bg-cyan-500 text-white text-xs rounded transition-colors\">\n Activate\n </button>\n </div>\n {licResult && <div className={`mt-2 text-xs ${licResult.startsWith('Failed') ? 'text-red-400' : 'text-green-400'}`}>{licResult}</div>}\n </div>\n </div>\n ) : (\n <div className=\"text-xs text-gray-600\">License info not available</div>\n )}\n </section>\n\n {/* Change Password */}\n <section className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5\">\n <h2 className=\"text-sm font-semibold text-gray-300 mb-4\">Change Password</h2>\n <div className=\"space-y-3\">\n <input type=\"password\" value={oldPwd} onChange={e => setOldPwd(e.target.value)} placeholder=\"Current password\"\n className=\"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none\" />\n <input type=\"password\" value={newPwd} onChange={e => setNewPwd(e.target.value)} placeholder=\"New password\"\n className=\"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none\" />\n <button onClick={async () => {\n if (!oldPwd || !newPwd) return;\n const saved = sessionStorage.getItem('anet_v3_auth');\n if (!saved) { setPwdResult('Not logged in with V3 auth'); return; }\n const { token } = JSON.parse(saved);\n const res = await fetch('/api/hub/auth', {\n method: 'POST', headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ action: 'change_password', token, current_password: oldPwd, new_password: newPwd }),\n });\n const data = await res.json();\n setPwdResult(data.ok ? 'Password changed' : `Failed: ${data.error}`);\n if (data.ok) { setOldPwd(''); setNewPwd(''); }\n setTimeout(() => setPwdResult(''), 5000);\n }} disabled={!oldPwd || !newPwd}\n className=\"px-4 py-2 bg-cyan-600 hover:bg-cyan-500 disabled:bg-gray-800 disabled:text-gray-600 text-white text-sm rounded-lg transition-colors\">\n Change Password\n </button>\n </div>\n {pwdResult && <div className={`mt-2 text-xs ${pwdResult.startsWith('Failed') ? 'text-red-400' : 'text-green-400'}`}>{pwdResult}</div>}\n </section>\n\n {/* API Tokens + Networks */}\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4\">\n <Link href=\"/settings/tokens\" className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors\">\n <h2 className=\"text-sm font-semibold text-gray-300\">API Tokens</h2>\n <p className=\"text-xs text-gray-500 mt-2\">Create and manage tokens for CLI access.</p>\n <span className=\"text-xs text-cyan-400 mt-3 inline-block\">Manage &rarr;</span>\n </Link>\n <Link href=\"/settings/networks\" className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors\">\n <h2 className=\"text-sm font-semibold text-gray-300\">Networks</h2>\n <p className=\"text-xs text-gray-500 mt-2\">Create, manage, and delete agent networks.</p>\n <span className=\"text-xs text-cyan-400 mt-3 inline-block\">Manage &rarr;</span>\n </Link>\n </div>\n\n {/* Danger Zone */}\n <section className=\"bg-[#111128] border border-red-900/30 rounded-xl p-5\">\n <h2 className=\"text-sm font-semibold text-red-400 mb-4\">Session</h2>\n <p className=\"text-xs text-gray-500 mb-3\">Sign out will clear your dashboard session cookie.</p>\n <button\n onClick={async () => {\n await fetch('/api/auth/logout', { method: 'POST' }).catch(() => {});\n window.location.assign('/login');\n }}\n className=\"px-4 py-2 bg-red-600/20 hover:bg-red-600/30 text-red-300 text-sm rounded-lg border border-red-800/30 transition-colors\"\n >\n Sign out\n </button>\n </section>\n </div>\n </div>\n );\n}\n"],"names":["fetcher","url","res","fetch","status","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","SettingsPage","licData","licKey","setLicKey","licResult","setLicResult","oldPwd","setOldPwd","newPwd","setNewPwd","pwdResult","setPwdResult","rowClass","valueClass","className","hub","tokenConfigured","tokenPreview","auth","version","sse_connections","uptime","Math","floor","type","days_left","expires_at","limits","max_agents","max_networks","max_tasks_day","value","onChange","e","target","placeholder","onClick","trim","method","headers","body","JSON","stringify","key","setTimeout","startsWith","saved","sessionStorage","getItem","token","parse","action","current_password","new_password","disabled","href","catch"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../app/lib/hooks.ts","../../../../app/settings/page.tsx"],"sourcesContent":["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","'use client';\n\nimport { useState } from 'react';\nimport Link from 'next/link';\nimport { useAnetConfig, useHealth, useLicense } from '../lib/hooks';\n\nexport default function SettingsPage() {\n const { config } = useAnetConfig();\n const { health } = useHealth();\n const { license: licData } = useLicense();\n const [licKey, setLicKey] = useState('');\n const [licResult, setLicResult] = useState('');\n const [oldPwd, setOldPwd] = useState('');\n const [newPwd, setNewPwd] = useState('');\n const [pwdResult, setPwdResult] = useState('');\n const rowClass = 'flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between';\n const valueClass = 'break-all sm:max-w-[320px] sm:text-right';\n\n return (\n <div className=\"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono\">\n <h1 className=\"text-2xl font-bold text-white mb-6 lg:ml-0 ml-10\">Settings</h1>\n\n <div className=\"max-w-2xl space-y-6\">\n {/* CommHub Connection */}\n <section className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5\">\n <h2 className=\"text-sm font-semibold text-gray-300 mb-4\">CommHub Connection</h2>\n <div className=\"space-y-3 text-sm\">\n <div className={rowClass}>\n <span className=\"text-gray-500 shrink-0\">Hub URL</span>\n <span className={`text-cyan-300 ${valueClass}`}>{config?.hub || 'not configured'}</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Config Source</span>\n <span className={`text-gray-300 ${valueClass}`}>\n {config?.source === 'file' ? 'Local file (~/.anet/config.json)' : config?.source === 'runtime-env' ? 'Vercel env vars' : 'Missing'}\n </span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Auth Token</span>\n <span className={`${config?.tokenConfigured ? 'text-green-400' : 'text-red-400'} ${valueClass}`}>\n {config?.tokenConfigured ? `Configured (${config.tokenPreview})` : 'Not configured'}\n </span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Server Auth</span>\n <span className={`${health?.auth === 'enabled' ? 'text-green-400' : 'text-yellow-400'} sm:text-right`}>\n {health?.auth || '--'}\n </span>\n </div>\n {config?.error && (\n <div className=\"border-t border-[#2a2a4a] pt-3 text-xs text-gray-600\">\n {config.error}\n </div>\n )}\n </div>\n </section>\n\n {/* Server Info */}\n <section className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5\">\n <h2 className=\"text-sm font-semibold text-gray-300 mb-4\">Server Info</h2>\n <div className=\"space-y-3 text-sm\">\n <div className={rowClass}>\n <span className=\"text-gray-500\">Version</span>\n <span className={`text-gray-300 ${valueClass}`}>{health?.version || '--'}</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Sessions</span>\n <span className={`text-gray-300 ${valueClass}`}>{health?.sessions ?? '--'}</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">SSE Connections</span>\n <span className={`text-gray-300 ${valueClass}`}>{health?.sse_connections ?? '--'}</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Uptime</span>\n <span className={`text-gray-300 ${valueClass}`}>{health?.uptime ? `${Math.floor(health.uptime / 3600)}h ${Math.floor((health.uptime % 3600) / 60)}m` : '--'}</span>\n </div>\n </div>\n </section>\n\n {/* Dashboard Info */}\n <section className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5\">\n <h2 className=\"text-sm font-semibold text-gray-300 mb-4\">Dashboard</h2>\n <div className=\"space-y-3 text-sm\">\n <div className={rowClass}>\n <span className=\"text-gray-500\">Version</span>\n <span className={`text-gray-300 ${valueClass}`}>V2.1</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Data Layer</span>\n <span className={`text-gray-300 ${valueClass}`}>SWR (5s refresh, 3s dedup)</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Pages</span>\n <span className={`text-gray-300 ${valueClass}`}>Overview, Tasks, Nodes, Messages, Settings</span>\n </div>\n </div>\n </section>\n\n {/* License */}\n <section className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5\">\n <h2 className=\"text-sm font-semibold text-gray-300 mb-4\">License</h2>\n {licData?.license ? (\n <div className=\"space-y-3 text-sm\">\n <div className={rowClass}>\n <span className=\"text-gray-500\">Type</span>\n <span className={`font-medium ${licData.license.type === 'pro' ? 'text-green-400' : 'text-yellow-400'}`}>\n {licData.license.type}\n </span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Days Left</span>\n <span className={`${licData.license.days_left <= 7 ? 'text-red-400' : 'text-gray-300'}`}>\n {licData.license.days_left} days\n {licData.license.days_left <= 7 && ' — expiring soon!'}\n </span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Expires</span>\n <span className={`text-gray-300 ${valueClass}`}>{licData.license.expires_at}</span>\n </div>\n {licData.limits && (\n <>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Max Agents</span>\n <span className={`text-gray-300 ${valueClass}`}>{licData.limits.max_agents}</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Max Networks</span>\n <span className={`text-gray-300 ${valueClass}`}>{licData.limits.max_networks}</span>\n </div>\n <div className={rowClass}>\n <span className=\"text-gray-500\">Tasks/Day</span>\n <span className={`text-gray-300 ${valueClass}`}>{licData.limits.max_tasks_day}</span>\n </div>\n </>\n )}\n <div className=\"pt-3 border-t border-[#2a2a4a]\">\n <div className=\"flex gap-2\">\n <input type=\"text\" value={licKey} onChange={e => setLicKey(e.target.value)}\n placeholder=\"anet-XXXX-XXXX-XXXX-XXXX\"\n className=\"flex-1 bg-[#0a0a15] border border-[#2a2a4a] rounded px-3 py-2 text-xs text-white placeholder-gray-600 focus:outline-none\" />\n <button onClick={async () => {\n if (!licKey.trim()) return;\n const res = await fetch('/api/hub/license', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ key: licKey }) });\n const data = await res.json();\n setLicResult(data.ok ? `Activated: ${data.type}` : `Failed: ${data.error}`);\n if (data.ok) setLicKey('');\n setTimeout(() => setLicResult(''), 5000);\n }} className=\"px-3 py-2 bg-cyan-600 hover:bg-cyan-500 text-white text-xs rounded transition-colors\">\n Activate\n </button>\n </div>\n {licResult && <div className={`mt-2 text-xs ${licResult.startsWith('Failed') ? 'text-red-400' : 'text-green-400'}`}>{licResult}</div>}\n </div>\n </div>\n ) : (\n <div className=\"text-xs text-gray-600\">License info not available</div>\n )}\n </section>\n\n {/* Change Password */}\n <section className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5\">\n <h2 className=\"text-sm font-semibold text-gray-300 mb-4\">Change Password</h2>\n <div className=\"space-y-3\">\n <input type=\"password\" value={oldPwd} onChange={e => setOldPwd(e.target.value)} placeholder=\"Current password\"\n className=\"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none\" />\n <input type=\"password\" value={newPwd} onChange={e => setNewPwd(e.target.value)} placeholder=\"New password\"\n className=\"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:outline-none\" />\n <button onClick={async () => {\n if (!oldPwd || !newPwd) return;\n const saved = sessionStorage.getItem('anet_v3_auth');\n if (!saved) { setPwdResult('Not logged in with V3 auth'); return; }\n const { token } = JSON.parse(saved);\n const res = await fetch('/api/hub/auth', {\n method: 'POST', headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ action: 'change_password', token, current_password: oldPwd, new_password: newPwd }),\n });\n const data = await res.json();\n setPwdResult(data.ok ? 'Password changed' : `Failed: ${data.error}`);\n if (data.ok) {\n if (data.token) {\n const auth = JSON.parse(saved);\n sessionStorage.setItem('anet_v3_auth', JSON.stringify({ ...auth, token: data.token }));\n }\n setOldPwd('');\n setNewPwd('');\n }\n setTimeout(() => setPwdResult(''), 5000);\n }} disabled={!oldPwd || !newPwd}\n className=\"px-4 py-2 bg-cyan-600 hover:bg-cyan-500 disabled:bg-gray-800 disabled:text-gray-600 text-white text-sm rounded-lg transition-colors\">\n Change Password\n </button>\n </div>\n {pwdResult && <div className={`mt-2 text-xs ${pwdResult.startsWith('Failed') ? 'text-red-400' : 'text-green-400'}`}>{pwdResult}</div>}\n </section>\n\n {/* API Tokens + Networks */}\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4\">\n <Link href=\"/settings/tokens\" className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors\">\n <h2 className=\"text-sm font-semibold text-gray-300\">API Tokens</h2>\n <p className=\"text-xs text-gray-500 mt-2\">Create and manage tokens for CLI access.</p>\n <span className=\"text-xs text-cyan-400 mt-3 inline-block\">Manage &rarr;</span>\n </Link>\n <Link href=\"/settings/networks\" className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-5 hover:border-cyan-500/30 transition-colors\">\n <h2 className=\"text-sm font-semibold text-gray-300\">Networks</h2>\n <p className=\"text-xs text-gray-500 mt-2\">Create, manage, and delete agent networks.</p>\n <span className=\"text-xs text-cyan-400 mt-3 inline-block\">Manage &rarr;</span>\n </Link>\n </div>\n\n {/* Danger Zone */}\n <section className=\"bg-[#111128] border border-red-900/30 rounded-xl p-5\">\n <h2 className=\"text-sm font-semibold text-red-400 mb-4\">Session</h2>\n <p className=\"text-xs text-gray-500 mb-3\">Sign out will clear your dashboard session cookie.</p>\n <button\n onClick={async () => {\n await fetch('/api/auth/logout', { method: 'POST' }).catch(() => {});\n window.location.assign('/login');\n }}\n className=\"px-4 py-2 bg-red-600/20 hover:bg-red-600/30 text-red-300 text-sm rounded-lg border border-red-800/30 transition-colors\"\n >\n Sign out\n </button>\n </section>\n </div>\n </div>\n );\n}\n"],"names":["fetcher","url","res","fetch","status","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","SettingsPage","licData","licKey","setLicKey","licResult","setLicResult","oldPwd","setOldPwd","newPwd","setNewPwd","pwdResult","setPwdResult","rowClass","valueClass","className","hub","tokenConfigured","tokenPreview","auth","version","sse_connections","uptime","Math","floor","type","days_left","expires_at","limits","max_agents","max_networks","max_tasks_day","value","onChange","e","target","placeholder","onClick","trim","method","headers","body","JSON","stringify","key","setTimeout","startsWith","saved","sessionStorage","getItem","token","parse","action","current_password","new_password","setItem","disabled","href","catch"],"mappings":"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"}
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
7
7
  "static/chunks/03~yq9q893hmn.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/AWcMCoVhNlS-VbBXMA0tD/_buildManifest.js",
11
- "static/AWcMCoVhNlS-VbBXMA0tD/_ssgManifest.js",
12
- "static/AWcMCoVhNlS-VbBXMA0tD/_clientMiddlewareManifest.js"
10
+ "static/TiDWPnTdwl4UAFFsW9Wa9/_buildManifest.js",
11
+ "static/TiDWPnTdwl4UAFFsW9Wa9/_ssgManifest.js",
12
+ "static/TiDWPnTdwl4UAFFsW9Wa9/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/0xrnwfefpke-g.js",
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html lang="en" data-theme="cyber" 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/0vsl4rolzp2fe.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/0gjbwb8u5wd72.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>
1
+ <!DOCTYPE html><html lang="en" data-theme="cyber" 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_b22ht_r8.-s.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/0gjbwb8u5wd72.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>
2
2
  try {
3
3
  var t = localStorage.getItem('anet-theme') || 'cyber';
4
4
  document.documentElement.setAttribute('data-theme', t);
@@ -9,4 +9,4 @@ try {
9
9
  w-52
10
10
  -translate-x-full
11
11
  lg:translate-x-0 lg:static lg:shrink-0
12
- "><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>Audit Log</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="/server-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="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg><span>Server 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="/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><div class="flex items-center gap-2 px-3 py-2 justify-between"><div class="relative"><button aria-label="切换主题" class="px-2.5 py-1.5 rounded-md text-xs flex items-center gap-1.5 hover:opacity-80 transition-opacity" style="background:var(--bg-elevated);color:var(--fg);border:1px solid var(--border)"><span aria-hidden="true">🌃</span><span>Cyber</span></button></div><button class="hidden lg:flex p-1.5 rounded text-gray-600 hover:text-gray-400 transition-colors" aria-label="Collapse sidebar"><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></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[84128,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"ThemeProvider\"]\n3:I[58963,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"NetworkProvider\"]\n4:I[25045,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"AppShell\"]\n5:I[39756,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\"]\n6:I[37457,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\"]\n7:I[97367,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\nb:I[97367,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"ViewportBoundary\"]\nd:I[97367,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"MetadataBoundary\"]\nf:I[68027,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0vsl4rolzp2fe.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/0vsl4rolzp2fe.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/14bsg3_-taiw4.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"data-theme\":\"cyber\",\"className\":\"geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\ntry {\\n var t = localStorage.getItem('anet-theme') || 'cyber';\\n document.documentElement.setAttribute('data-theme', t);\\n} catch (e) {}\\n\"}}]}],[\"$\",\"body\",null,{\"className\":\"min-h-full\",\"style\":{\"background\":\"var(--bg)\",\"color\":\"var(--fg)\"},\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",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,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",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: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: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: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: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,[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null]},null,false,\"$@a\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0vsl4rolzp2fe.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"AWcMCoVhNlS-VbBXMA0tD\"}\n"])</script><script>self.__next_f.push([1,"10:[]\na:\"$W10\"\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"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,"11:I[27201,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"IconMark\"]\n9:null\ne:[[\"$\",\"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\"}],[\"$\",\"$L11\",\"10\",{}]]\n"])</script></body></html>
12
+ "><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>Audit Log</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="/server-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="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg><span>Server 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="/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><div class="flex items-center gap-2 px-3 py-2 justify-between"><div class="relative"><button aria-label="切换主题" class="px-2.5 py-1.5 rounded-md text-xs flex items-center gap-1.5 hover:opacity-80 transition-opacity" style="background:var(--bg-elevated);color:var(--fg);border:1px solid var(--border)"><span aria-hidden="true">🌃</span><span>Cyber</span></button></div><button class="hidden lg:flex p-1.5 rounded text-gray-600 hover:text-gray-400 transition-colors" aria-label="Collapse sidebar"><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></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[84128,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"ThemeProvider\"]\n3:I[58963,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"NetworkProvider\"]\n4:I[25045,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"AppShell\"]\n5:I[39756,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\"]\n6:I[37457,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\"]\n7:I[97367,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\nb:I[97367,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"ViewportBoundary\"]\nd:I[97367,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"MetadataBoundary\"]\nf:I[68027,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0_b22ht_r8.-s.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_b22ht_r8.-s.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/14bsg3_-taiw4.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"data-theme\":\"cyber\",\"className\":\"geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\ntry {\\n var t = localStorage.getItem('anet-theme') || 'cyber';\\n document.documentElement.setAttribute('data-theme', t);\\n} catch (e) {}\\n\"}}]}],[\"$\",\"body\",null,{\"className\":\"min-h-full\",\"style\":{\"background\":\"var(--bg)\",\"color\":\"var(--fg)\"},\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",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,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",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: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: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: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: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,[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null]},null,false,\"$@a\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0_b22ht_r8.-s.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"TiDWPnTdwl4UAFFsW9Wa9\"}\n"])</script><script>self.__next_f.push([1,"10:[]\na:\"$W10\"\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"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,"11:I[27201,[\"/_next/static/chunks/0gjbwb8u5wd72.js\",\"/_next/static/chunks/14bsg3_-taiw4.js\"],\"IconMark\"]\n9:null\ne:[[\"$\",\"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\"}],[\"$\",\"$L11\",\"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/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\":\"AWcMCoVhNlS-VbBXMA0tD\"}\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>
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\":\"TiDWPnTdwl4UAFFsW9Wa9\"}\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>
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"m8r2KQRL3NHHKcfC8l78MjxYQ2LchzZGNo/rTKH+Zl0=\"\n}"
1
+ self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"90otMO5/pxGZUVJeeE7SsIQlyY2McmXIrUJQEy7ny2E=\"\n}"
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "node": {},
3
3
  "edge": {},
4
- "encryptionKey": "m8r2KQRL3NHHKcfC8l78MjxYQ2LchzZGNo/rTKH+Zl0="
4
+ "encryptionKey": "90otMO5/pxGZUVJeeE7SsIQlyY2McmXIrUJQEy7ny2E="
5
5
  }