@sleep2agi/agent-network-dashboard 0.3.1 → 0.3.3-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 (293) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +0 -1
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/cache/.previewinfo +1 -1
  5. package/.next/cache/.rscinfo +1 -1
  6. package/.next/cache/.tsbuildinfo +1 -1
  7. package/.next/diagnostics/route-bundle-stats.json +29 -43
  8. package/.next/fallback-build-manifest.json +3 -3
  9. package/.next/prerender-manifest.json +3 -27
  10. package/.next/routes-manifest.json +0 -6
  11. package/.next/server/app/_global-error.html +1 -1
  12. package/.next/server/app/_global-error.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/_not-found.html +2 -2
  20. package/.next/server/app/_not-found.rsc +12 -12
  21. package/.next/server/app/_not-found.segments/_full.segment.rsc +12 -12
  22. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  23. package/.next/server/app/_not-found.segments/_index.segment.rsc +7 -7
  24. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  25. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  26. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  27. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/admin.html +2 -2
  29. package/.next/server/app/admin.rsc +14 -14
  30. package/.next/server/app/admin.segments/_full.segment.rsc +14 -14
  31. package/.next/server/app/admin.segments/_head.segment.rsc +4 -4
  32. package/.next/server/app/admin.segments/_index.segment.rsc +7 -7
  33. package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  34. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +4 -4
  35. package/.next/server/app/admin.segments/admin.segment.rsc +3 -3
  36. package/.next/server/app/api/anet/config/route.js +1 -1
  37. package/.next/server/app/api/anet/config/route.js.nft.json +1 -1
  38. package/.next/server/app/api/auth/login/route.js +1 -1
  39. package/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  40. package/.next/server/app/api/auth/logout/route.js +1 -1
  41. package/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  42. package/.next/server/app/api/auth/v3/route.js +1 -1
  43. package/.next/server/app/api/auth/v3/route.js.nft.json +1 -1
  44. package/.next/server/app/api/hub/audit-log/route.js +1 -1
  45. package/.next/server/app/api/hub/audit-log/route.js.nft.json +1 -1
  46. package/.next/server/app/api/hub/auth/route.js +1 -1
  47. package/.next/server/app/api/hub/auth/route.js.nft.json +1 -1
  48. package/.next/server/app/api/hub/broadcast/route.js +1 -1
  49. package/.next/server/app/api/hub/broadcast/route.js.nft.json +1 -1
  50. package/.next/server/app/api/hub/events/route.js +1 -1
  51. package/.next/server/app/api/hub/events/route.js.nft.json +1 -1
  52. package/.next/server/app/api/hub/health/route.js +1 -1
  53. package/.next/server/app/api/hub/health/route.js.nft.json +1 -1
  54. package/.next/server/app/api/hub/inbox/route.js +1 -1
  55. package/.next/server/app/api/hub/inbox/route.js.nft.json +1 -1
  56. package/.next/server/app/api/hub/license/route.js +1 -1
  57. package/.next/server/app/api/hub/license/route.js.nft.json +1 -1
  58. package/.next/server/app/api/hub/messages/route.js +1 -1
  59. package/.next/server/app/api/hub/messages/route.js.nft.json +1 -1
  60. package/.next/server/app/api/hub/networks/route.js +1 -1
  61. package/.next/server/app/api/hub/networks/route.js.nft.json +1 -1
  62. package/.next/server/app/api/hub/nodes/route.js +1 -1
  63. package/.next/server/app/api/hub/nodes/route.js.nft.json +1 -1
  64. package/.next/server/app/api/hub/register/route.js +1 -1
  65. package/.next/server/app/api/hub/register/route.js.nft.json +1 -1
  66. package/.next/server/app/api/hub/send/route.js +1 -1
  67. package/.next/server/app/api/hub/send/route.js.nft.json +1 -1
  68. package/.next/server/app/api/hub/server-logs/route.js +1 -1
  69. package/.next/server/app/api/hub/server-logs/route.js.nft.json +1 -1
  70. package/.next/server/app/api/hub/session/route.js +1 -1
  71. package/.next/server/app/api/hub/session/route.js.nft.json +1 -1
  72. package/.next/server/app/api/hub/stats/route.js +1 -1
  73. package/.next/server/app/api/hub/stats/route.js.nft.json +1 -1
  74. package/.next/server/app/api/hub/status/route.js +1 -1
  75. package/.next/server/app/api/hub/status/route.js.nft.json +1 -1
  76. package/.next/server/app/api/hub/task-events/route.js +1 -1
  77. package/.next/server/app/api/hub/task-events/route.js.nft.json +1 -1
  78. package/.next/server/app/api/hub/tasks/route.js +1 -1
  79. package/.next/server/app/api/hub/tasks/route.js.nft.json +1 -1
  80. package/.next/server/app/api/hub/tmux/route.js +1 -1
  81. package/.next/server/app/api/hub/tmux/route.js.nft.json +1 -1
  82. package/.next/server/app/api/hub/tokens/route.js +1 -1
  83. package/.next/server/app/api/hub/tokens/route.js.nft.json +1 -1
  84. package/.next/server/app/index.html +2 -2
  85. package/.next/server/app/index.rsc +14 -14
  86. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  87. package/.next/server/app/index.segments/_full.segment.rsc +14 -14
  88. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  89. package/.next/server/app/index.segments/_index.segment.rsc +7 -7
  90. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  91. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  92. package/.next/server/app/login.html +2 -2
  93. package/.next/server/app/login.rsc +14 -14
  94. package/.next/server/app/login.segments/_full.segment.rsc +14 -14
  95. package/.next/server/app/login.segments/_head.segment.rsc +4 -4
  96. package/.next/server/app/login.segments/_index.segment.rsc +7 -7
  97. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  98. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  99. package/.next/server/app/login.segments/login.segment.rsc +3 -3
  100. package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  101. package/.next/server/app/logs.html +2 -2
  102. package/.next/server/app/logs.rsc +14 -14
  103. package/.next/server/app/logs.segments/_full.segment.rsc +14 -14
  104. package/.next/server/app/logs.segments/_head.segment.rsc +4 -4
  105. package/.next/server/app/logs.segments/_index.segment.rsc +7 -7
  106. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  107. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +4 -4
  108. package/.next/server/app/logs.segments/logs.segment.rsc +3 -3
  109. package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
  110. package/.next/server/app/messages.html +2 -2
  111. package/.next/server/app/messages.rsc +14 -14
  112. package/.next/server/app/messages.segments/_full.segment.rsc +14 -14
  113. package/.next/server/app/messages.segments/_head.segment.rsc +4 -4
  114. package/.next/server/app/messages.segments/_index.segment.rsc +7 -7
  115. package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
  116. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +4 -4
  117. package/.next/server/app/messages.segments/messages.segment.rsc +3 -3
  118. package/.next/server/app/node/page_client-reference-manifest.js +1 -1
  119. package/.next/server/app/node.html +2 -2
  120. package/.next/server/app/node.rsc +14 -14
  121. package/.next/server/app/node.segments/_full.segment.rsc +14 -14
  122. package/.next/server/app/node.segments/_head.segment.rsc +4 -4
  123. package/.next/server/app/node.segments/_index.segment.rsc +7 -7
  124. package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
  125. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +4 -4
  126. package/.next/server/app/node.segments/node.segment.rsc +3 -3
  127. package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
  128. package/.next/server/app/nodes.html +2 -2
  129. package/.next/server/app/nodes.rsc +14 -14
  130. package/.next/server/app/nodes.segments/_full.segment.rsc +14 -14
  131. package/.next/server/app/nodes.segments/_head.segment.rsc +4 -4
  132. package/.next/server/app/nodes.segments/_index.segment.rsc +7 -7
  133. package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
  134. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +4 -4
  135. package/.next/server/app/nodes.segments/nodes.segment.rsc +3 -3
  136. package/.next/server/app/page_client-reference-manifest.js +1 -1
  137. package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
  138. package/.next/server/app/server-logs.html +2 -2
  139. package/.next/server/app/server-logs.rsc +14 -14
  140. package/.next/server/app/server-logs.segments/_full.segment.rsc +14 -14
  141. package/.next/server/app/server-logs.segments/_head.segment.rsc +4 -4
  142. package/.next/server/app/server-logs.segments/_index.segment.rsc +7 -7
  143. package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
  144. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +4 -4
  145. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +3 -3
  146. package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
  147. package/.next/server/app/settings/networks.html +2 -2
  148. package/.next/server/app/settings/networks.rsc +14 -14
  149. package/.next/server/app/settings/networks.segments/_full.segment.rsc +14 -14
  150. package/.next/server/app/settings/networks.segments/_head.segment.rsc +4 -4
  151. package/.next/server/app/settings/networks.segments/_index.segment.rsc +7 -7
  152. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
  153. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +4 -4
  154. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +3 -3
  155. package/.next/server/app/settings/networks.segments/settings.segment.rsc +3 -3
  156. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  157. package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
  158. package/.next/server/app/settings/tokens.html +2 -2
  159. package/.next/server/app/settings/tokens.rsc +14 -14
  160. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +14 -14
  161. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +4 -4
  162. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +7 -7
  163. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
  164. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +4 -4
  165. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +3 -3
  166. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +3 -3
  167. package/.next/server/app/settings.html +2 -2
  168. package/.next/server/app/settings.rsc +14 -14
  169. package/.next/server/app/settings.segments/_full.segment.rsc +14 -14
  170. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  171. package/.next/server/app/settings.segments/_index.segment.rsc +7 -7
  172. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  173. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  174. package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  175. package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  176. package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  177. package/.next/server/app/tasks.html +2 -2
  178. package/.next/server/app/tasks.rsc +14 -14
  179. package/.next/server/app/tasks.segments/_full.segment.rsc +14 -14
  180. package/.next/server/app/tasks.segments/_head.segment.rsc +4 -4
  181. package/.next/server/app/tasks.segments/_index.segment.rsc +7 -7
  182. package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
  183. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +4 -4
  184. package/.next/server/app/tasks.segments/tasks.segment.rsc +3 -3
  185. package/.next/server/app-paths-manifest.json +0 -1
  186. package/.next/server/chunks/{[root-of-the-server]__0.~awwb._.js → [root-of-the-server]__0-mykaf._.js} +2 -2
  187. package/.next/server/chunks/{[root-of-the-server]__0nsfjkb._.js → [root-of-the-server]__0.d_kqy._.js} +2 -2
  188. package/.next/server/chunks/{[root-of-the-server]__0khwewd._.js → [root-of-the-server]__02pocyg._.js} +2 -2
  189. package/.next/server/chunks/{[root-of-the-server]__10ducxb._.js → [root-of-the-server]__03ueci3._.js} +2 -2
  190. package/.next/server/chunks/{[root-of-the-server]__0h-9kwu._.js → [root-of-the-server]__04aud7x._.js} +2 -2
  191. package/.next/server/chunks/{[root-of-the-server]__011ghni._.js → [root-of-the-server]__05fnt3n._.js} +2 -2
  192. package/.next/server/chunks/{[root-of-the-server]__0t0.lss._.js → [root-of-the-server]__08wy1jr._.js} +2 -2
  193. package/.next/server/chunks/{[root-of-the-server]__0fo7jlh._.js → [root-of-the-server]__0adhu1m._.js} +2 -2
  194. package/.next/server/chunks/{[root-of-the-server]__0_roltz._.js → [root-of-the-server]__0aqv02v._.js} +2 -2
  195. package/.next/server/chunks/{[root-of-the-server]__0k3eytp._.js → [root-of-the-server]__0cawhfq._.js} +2 -2
  196. package/.next/server/chunks/{[root-of-the-server]__0c0_p0v._.js → [root-of-the-server]__0d_-_k.._.js} +2 -2
  197. package/.next/server/chunks/{[root-of-the-server]__0c5h0a~._.js → [root-of-the-server]__0f6bxfl._.js} +2 -2
  198. package/.next/server/chunks/{[root-of-the-server]__0.r9hpx._.js → [root-of-the-server]__0h15edq._.js} +2 -2
  199. package/.next/server/chunks/{[root-of-the-server]__0ak3zmb._.js → [root-of-the-server]__0kltbce._.js} +2 -2
  200. package/.next/server/chunks/{[root-of-the-server]__0wpe~w2._.js → [root-of-the-server]__0mn04fw._.js} +2 -2
  201. package/.next/server/chunks/{[root-of-the-server]__0cfodg2._.js → [root-of-the-server]__0o29v8c._.js} +2 -2
  202. package/.next/server/chunks/{[root-of-the-server]__0lu__6g._.js → [root-of-the-server]__0o4qfn9._.js} +2 -2
  203. package/.next/server/chunks/{[root-of-the-server]__0hxwf9u._.js → [root-of-the-server]__0o7ya7r._.js} +2 -2
  204. package/.next/server/chunks/{[root-of-the-server]__0ku8l.~._.js → [root-of-the-server]__0p6tutt._.js} +2 -2
  205. package/.next/server/chunks/{[root-of-the-server]__0hj~i84._.js → [root-of-the-server]__0pn3wsx._.js} +2 -2
  206. package/.next/server/chunks/{[root-of-the-server]__0kx9lo1._.js → [root-of-the-server]__0rg9ifx._.js} +2 -2
  207. package/.next/server/chunks/{[root-of-the-server]__11yl3c.._.js → [root-of-the-server]__0x.a_yh._.js} +2 -2
  208. package/.next/server/chunks/{[root-of-the-server]__10~rj8b._.js → [root-of-the-server]__0~h2uqi._.js} +2 -2
  209. package/.next/server/chunks/{[root-of-the-server]__114809t._.js → [root-of-the-server]__139~d6a._.js} +2 -2
  210. package/.next/server/chunks/ssr/[root-of-the-server]__0i1gizm._.js +1 -1
  211. package/.next/server/chunks/ssr/[root-of-the-server]__0i1gizm._.js.map +1 -1
  212. package/.next/server/chunks/ssr/app_login_page_tsx_0z71ad3._.js +1 -1
  213. package/.next/server/chunks/ssr/app_login_page_tsx_0z71ad3._.js.map +1 -1
  214. package/.next/server/middleware-build-manifest.js +3 -3
  215. package/.next/server/next-font-manifest.js +1 -1
  216. package/.next/server/next-font-manifest.json +0 -3
  217. package/.next/server/pages/404.html +2 -2
  218. package/.next/server/pages/500.html +1 -1
  219. package/.next/server/server-reference-manifest.js +1 -1
  220. package/.next/server/server-reference-manifest.json +1 -1
  221. package/.next/static/chunks/{16bfhcp03jjz1.js → 0gjbwb8u5wd72.js} +2 -2
  222. package/.next/static/chunks/{0afxijuigt-49.js → 0o5zj~5vjeks3.js} +1 -1
  223. package/.next/static/chunks/0vsl4rolzp2fe.css +2 -0
  224. package/.next/trace +2 -2
  225. package/.next/trace-build +1 -1
  226. package/.next/types/routes.d.ts +1 -2
  227. package/.next/types/validator.ts +0 -9
  228. package/app/components/Sidebar.tsx +0 -1
  229. package/app/globals.css +85 -0
  230. package/app/login/page.tsx +1 -1
  231. package/package.json +1 -1
  232. package/test-results/.last-run.json +2 -7
  233. package/.next/server/app/docs/page/app-paths-manifest.json +0 -3
  234. package/.next/server/app/docs/page/build-manifest.json +0 -17
  235. package/.next/server/app/docs/page/next-font-manifest.json +0 -10
  236. package/.next/server/app/docs/page/react-loadable-manifest.json +0 -1
  237. package/.next/server/app/docs/page/server-reference-manifest.json +0 -4
  238. package/.next/server/app/docs/page.js +0 -14
  239. package/.next/server/app/docs/page.js.map +0 -5
  240. package/.next/server/app/docs/page.js.nft.json +0 -1
  241. package/.next/server/app/docs/page_client-reference-manifest.js +0 -3
  242. package/.next/server/app/docs.html +0 -54
  243. package/.next/server/app/docs.meta +0 -15
  244. package/.next/server/app/docs.rsc +0 -24
  245. package/.next/server/app/docs.segments/_full.segment.rsc +0 -24
  246. package/.next/server/app/docs.segments/_head.segment.rsc +0 -6
  247. package/.next/server/app/docs.segments/_index.segment.rsc +0 -8
  248. package/.next/server/app/docs.segments/_tree.segment.rsc +0 -3
  249. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +0 -9
  250. package/.next/server/app/docs.segments/docs.segment.rsc +0 -5
  251. package/.next/server/chunks/ssr/[root-of-the-server]__0_1hjn2._.js +0 -3
  252. package/.next/server/chunks/ssr/[root-of-the-server]__0_1hjn2._.js.map +0 -1
  253. package/.next/server/chunks/ssr/_next-internal_server_app_docs_page_actions_0xq87ie.js +0 -3
  254. package/.next/server/chunks/ssr/_next-internal_server_app_docs_page_actions_0xq87ie.js.map +0 -1
  255. package/.next/server/chunks/ssr/app_docs_page_tsx_0a3qz3_._.js +0 -45
  256. package/.next/server/chunks/ssr/app_docs_page_tsx_0a3qz3_._.js.map +0 -1
  257. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0qbvqbo.js +0 -4
  258. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0qbvqbo.js.map +0 -1
  259. package/.next/static/chunks/063eleenll4ri.js +0 -43
  260. package/.next/static/chunks/0yecbikzk4e1m.css +0 -2
  261. package/app/docs/page.tsx +0 -334
  262. package/test-results/e2e-Dashboard-E2E-Tests-nodes-page-shows-demo-nodes/error-context.md +0 -149
  263. package/test-results/e2e-Dashboard-E2E-Tests-overview-page-shows-stats/error-context.md +0 -149
  264. package/test-results/e2e-Dashboard-E2E-Tests-settings-page-shows-license-config/error-context.md +0 -149
  265. package/test-results/e2e-Dashboard-E2E-Tests-sidebar-navigation-works/error-context.md +0 -149
  266. package/tsconfig.tsbuildinfo +0 -1
  267. /package/.next/server/chunks/{[root-of-the-server]__0.~awwb._.js.map → [root-of-the-server]__0-mykaf._.js.map} +0 -0
  268. /package/.next/server/chunks/{[root-of-the-server]__0nsfjkb._.js.map → [root-of-the-server]__0.d_kqy._.js.map} +0 -0
  269. /package/.next/server/chunks/{[root-of-the-server]__0khwewd._.js.map → [root-of-the-server]__02pocyg._.js.map} +0 -0
  270. /package/.next/server/chunks/{[root-of-the-server]__10ducxb._.js.map → [root-of-the-server]__03ueci3._.js.map} +0 -0
  271. /package/.next/server/chunks/{[root-of-the-server]__0h-9kwu._.js.map → [root-of-the-server]__04aud7x._.js.map} +0 -0
  272. /package/.next/server/chunks/{[root-of-the-server]__011ghni._.js.map → [root-of-the-server]__05fnt3n._.js.map} +0 -0
  273. /package/.next/server/chunks/{[root-of-the-server]__0t0.lss._.js.map → [root-of-the-server]__08wy1jr._.js.map} +0 -0
  274. /package/.next/server/chunks/{[root-of-the-server]__0fo7jlh._.js.map → [root-of-the-server]__0adhu1m._.js.map} +0 -0
  275. /package/.next/server/chunks/{[root-of-the-server]__0_roltz._.js.map → [root-of-the-server]__0aqv02v._.js.map} +0 -0
  276. /package/.next/server/chunks/{[root-of-the-server]__0k3eytp._.js.map → [root-of-the-server]__0cawhfq._.js.map} +0 -0
  277. /package/.next/server/chunks/{[root-of-the-server]__0c0_p0v._.js.map → [root-of-the-server]__0d_-_k.._.js.map} +0 -0
  278. /package/.next/server/chunks/{[root-of-the-server]__0c5h0a~._.js.map → [root-of-the-server]__0f6bxfl._.js.map} +0 -0
  279. /package/.next/server/chunks/{[root-of-the-server]__0.r9hpx._.js.map → [root-of-the-server]__0h15edq._.js.map} +0 -0
  280. /package/.next/server/chunks/{[root-of-the-server]__0ak3zmb._.js.map → [root-of-the-server]__0kltbce._.js.map} +0 -0
  281. /package/.next/server/chunks/{[root-of-the-server]__0wpe~w2._.js.map → [root-of-the-server]__0mn04fw._.js.map} +0 -0
  282. /package/.next/server/chunks/{[root-of-the-server]__0cfodg2._.js.map → [root-of-the-server]__0o29v8c._.js.map} +0 -0
  283. /package/.next/server/chunks/{[root-of-the-server]__0lu__6g._.js.map → [root-of-the-server]__0o4qfn9._.js.map} +0 -0
  284. /package/.next/server/chunks/{[root-of-the-server]__0hxwf9u._.js.map → [root-of-the-server]__0o7ya7r._.js.map} +0 -0
  285. /package/.next/server/chunks/{[root-of-the-server]__0ku8l.~._.js.map → [root-of-the-server]__0p6tutt._.js.map} +0 -0
  286. /package/.next/server/chunks/{[root-of-the-server]__0hj~i84._.js.map → [root-of-the-server]__0pn3wsx._.js.map} +0 -0
  287. /package/.next/server/chunks/{[root-of-the-server]__0kx9lo1._.js.map → [root-of-the-server]__0rg9ifx._.js.map} +0 -0
  288. /package/.next/server/chunks/{[root-of-the-server]__11yl3c.._.js.map → [root-of-the-server]__0x.a_yh._.js.map} +0 -0
  289. /package/.next/server/chunks/{[root-of-the-server]__10~rj8b._.js.map → [root-of-the-server]__0~h2uqi._.js.map} +0 -0
  290. /package/.next/server/chunks/{[root-of-the-server]__114809t._.js.map → [root-of-the-server]__139~d6a._.js.map} +0 -0
  291. /package/.next/static/{w3FFQojHKbi2FsiXfCIUC → AWcMCoVhNlS-VbBXMA0tD}/_buildManifest.js +0 -0
  292. /package/.next/static/{w3FFQojHKbi2FsiXfCIUC → AWcMCoVhNlS-VbBXMA0tD}/_clientMiddlewareManifest.js +0 -0
  293. /package/.next/static/{w3FFQojHKbi2FsiXfCIUC → AWcMCoVhNlS-VbBXMA0tD}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},74378,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),x=e.i(74838),g=e.i(10372),R=e.i(93695);e.i(20232);var v=e.i(220),w=e.i(89171),f=e.i(282);let m=new Map;async function y(e){var t;let r,a,{allowed:n,retryAfterMs:s}=(t=e.headers.get("x-forwarded-for")?.split(",")[0]?.trim()||e.headers.get("x-real-ip")||"unknown",r=Date.now(),(a=m.get(t))&&!(r>a.resetAt)?a.count>=10?{allowed:!1,remaining:0,retryAfterMs:a.resetAt-r}:(a.count++,{allowed:!0,remaining:10-a.count,retryAfterMs:0}):(m.set(t,{count:1,resetAt:r+9e5}),{allowed:!0,remaining:9,retryAfterMs:0}));if(!n)return Response.json({error:"Too many login attempts. Try again later."},{status:429,headers:{"Retry-After":String(Math.ceil(s/1e3))}});let o=(e.headers.get("content-type")||"").includes("application/json")?String((await e.json()).password||""):String((await e.formData()).get("password")||"");if(!await (0,f.verifyDashboardPassword)(o))return Response.json({error:"invalid password"},{status:401});let i=await (0,f.createDashboardSessionValue)(o),l=w.NextResponse.json({ok:!0}),d=e.headers.get("x-forwarded-proto")||new URL(e.url).protocol.replace(":","");return l.cookies.set(f.DASHBOARD_SESSION_COOKIE,i,{httpOnly:!0,secure:"https"===d&&"1"!==process.env.COOKIE_INSECURE,sameSite:"lax",path:"/",maxAge:43200}),l}"u">typeof setInterval&&setInterval(()=>{let e=Date.now();for(let[t,r]of m)e>r.resetAt&&m.delete(t)},3e5),e.s(["POST",0,y],72735);var E=e.i(72735);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/auth/login/route",pathname:"/api/auth/login",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/auth/login/route.ts",nextConfigOutput:"",userland:E,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:S,serverHooks:b}=A;async function O(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),A.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/auth/login/route";w=w.replace(/\/index$/,"")||"/";let f=await A.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!f)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:m,params:y,nextConfig:E,parsedUrl:C,isDraftMode:S,prerenderManifest:b,routerServerContext:O,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,resolvedPathname:P,clientReferenceManifest:q,serverActionsManifest:_}=f,k=(0,i.normalizeAppPath)(w),j=!!(b.dynamicRoutes[k]||b.routes[P]),I=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,C,!1):t.end("This page could not be found"),null);if(j&&!S){let e=!!b.routes[P],t=b.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await I();throw new R.NoFallbackError}}let D=null;!j||A.isDev||S||(D="/index"===(D=P)?"/":D);let M=!0===A.isDev||!j,H=j&&!M;_&&q&&(0,o.setManifestsSingleton)({page:w,clientReferenceManifest:q,serverActionsManifest:_});let U=e.method||"GET",K=(0,s.getTracer)(),$=K.getActiveScopeSpan(),F=!!(null==O?void 0:O.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),L=(0,n.getRequestMeta)(e,"incrementalCache")||await A.getIncrementalCache(e,E,b,B);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let V={params:y,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:M,incrementalCache:L,cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>A.onRequestError(e,t,a,n,O)},sharedContext:{buildId:m}},G=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(G,(0,d.signalFromNodeResponse)(t));try{let n,o=async e=>A.handle(X,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=K.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${U} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${U} ${w}`)}),i=async n=>{var s,i;let l=async({previousCacheEntry:r})=>{try{if(!B&&N&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(n);e.fetchMetrics=V.renderOpts.fetchMetrics;let i=V.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let l=V.renderOpts.collectedTags;if(!j)return await (0,c.sendResponse)(G,W,s,V.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})},!1,O),t}},d=await A.handleResponse({req:e,nextConfig:E,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:B});if(!j)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",N?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return B&&j||u.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,x.getCacheControlHeader)(d.cacheControl)),await (0,c.sendResponse)(G,W,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};F&&$?await i($):(n=K.getActiveScopeSpan(),await K.withPropagatedContext(e.headers,()=>K.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},i),void 0,!F))}catch(t){if(t instanceof R.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})},!1,O),j)throw t;return await (0,c.sendResponse)(G,W,new Response(null,{status:500})),null}}e.s(["handler",0,O,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:S})},"routeModule",0,A,"serverHooks",0,b,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,S],74378)}];
1
+ module.exports=[50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},74378,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),o=e.i(74677),i=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),x=e.i(74838),g=e.i(10372),R=e.i(93695);e.i(20232);var v=e.i(220),w=e.i(89171),f=e.i(282);let m=new Map;async function y(e){var t;let r,a,{allowed:n,retryAfterMs:s}=(t=e.headers.get("x-forwarded-for")?.split(",")[0]?.trim()||e.headers.get("x-real-ip")||"unknown",r=Date.now(),(a=m.get(t))&&!(r>a.resetAt)?a.count>=10?{allowed:!1,remaining:0,retryAfterMs:a.resetAt-r}:(a.count++,{allowed:!0,remaining:10-a.count,retryAfterMs:0}):(m.set(t,{count:1,resetAt:r+9e5}),{allowed:!0,remaining:9,retryAfterMs:0}));if(!n)return Response.json({error:"Too many login attempts. Try again later."},{status:429,headers:{"Retry-After":String(Math.ceil(s/1e3))}});let o=(e.headers.get("content-type")||"").includes("application/json")?String((await e.json()).password||""):String((await e.formData()).get("password")||"");if(!await (0,f.verifyDashboardPassword)(o))return Response.json({error:"invalid password"},{status:401});let i=await (0,f.createDashboardSessionValue)(o),l=w.NextResponse.json({ok:!0}),d=e.headers.get("x-forwarded-proto")||new URL(e.url).protocol.replace(":","");return l.cookies.set(f.DASHBOARD_SESSION_COOKIE,i,{httpOnly:!0,secure:"https"===d&&"1"!==process.env.COOKIE_INSECURE,sameSite:"lax",path:"/",maxAge:43200}),l}"u">typeof setInterval&&setInterval(()=>{let e=Date.now();for(let[t,r]of m)e>r.resetAt&&m.delete(t)},3e5),e.s(["POST",0,y],72735);var E=e.i(72735);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/auth/login/route",pathname:"/api/auth/login",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/auth/login/route.ts",nextConfigOutput:"",userland:E,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:S,serverHooks:b}=A;async function O(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),A.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/auth/login/route";w=w.replace(/\/index$/,"")||"/";let f=await A.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!f)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:m,params:y,nextConfig:E,parsedUrl:C,isDraftMode:S,prerenderManifest:b,routerServerContext:O,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,resolvedPathname:P,clientReferenceManifest:q,serverActionsManifest:_}=f,k=(0,i.normalizeAppPath)(w),j=!!(b.dynamicRoutes[k]||b.routes[P]),I=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,C,!1):t.end("This page could not be found"),null);if(j&&!S){let e=!!b.routes[P],t=b.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await I();throw new R.NoFallbackError}}let D=null;!j||A.isDev||S||(D="/index"===(D=P)?"/":D);let M=!0===A.isDev||!j,H=j&&!M;_&&q&&(0,o.setManifestsSingleton)({page:w,clientReferenceManifest:q,serverActionsManifest:_});let U=e.method||"GET",K=(0,s.getTracer)(),$=K.getActiveScopeSpan(),F=!!(null==O?void 0:O.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),L=(0,n.getRequestMeta)(e,"incrementalCache")||await A.getIncrementalCache(e,E,b,B);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let V={params:y,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:M,incrementalCache:L,cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>A.onRequestError(e,t,a,n,O)},sharedContext:{buildId:m}},G=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(G,(0,d.signalFromNodeResponse)(t));try{let n,o=async e=>A.handle(X,V).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=K.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${U} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${U} ${w}`)}),i=async n=>{var s,i;let l=async({previousCacheEntry:r})=>{try{if(!B&&N&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(n);e.fetchMetrics=V.renderOpts.fetchMetrics;let i=V.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let l=V.renderOpts.collectedTags;if(!j)return await (0,c.sendResponse)(G,W,s,V.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,a=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:V.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})},!1,O),t}},d=await A.handleResponse({req:e,nextConfig:E,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:B});if(!j)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",N?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return B&&j||u.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,x.getCacheControlHeader)(d.cacheControl)),await (0,c.sendResponse)(G,W,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};F&&$?await i($):(n=K.getActiveScopeSpan(),await K.withPropagatedContext(e.headers,()=>K.trace(u.BaseServerSpan.handleRequest,{spanName:`${U} ${w}`,kind:s.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},i),void 0,!F))}catch(t){if(t instanceof R.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:N})},!1,O),j)throw t;return await (0,c.sendResponse)(G,W,new Response(null,{status:500})),null}}e.s(["handler",0,O,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:S})},"routeModule",0,A,"serverHooks",0,b,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,S],74378)}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__10~rj8b._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0~h2uqi._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},80453,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),m=e.i(74838),x=e.i(10372),R=e.i(93695);e.i(20232);var g=e.i(220),v=e.i(282);let f=process.env.COMMHUB_URL||"http://127.0.0.1:9200",w=process.env.COMMHUB_AUTH_TOKEN||"";async function _(){let e=await (0,v.getV3UserToken)()||w,t={};return e&&(t.Authorization=`Bearer ${e}`),t}async function E(e){let t=await (0,v.requireDashboardAuth)();if(t)return t;let{searchParams:r}=new URL(e.url),a=parseInt(r.get("limit")||"100",10),n=r.get("network_id")||"",s=r.get("status")||"",i=r.get("from_name")||"",o=r.get("to_name")||"",l=r.get("task_id")||"";try{let e=new URLSearchParams;n&&e.set("network_id",n),s&&e.set("status",s),i&&e.set("from_name",i),o&&e.set("to_name",o),l&&e.set("task_id",l),e.set("limit",String(a));let t=await fetch(`${f}/api/tasks?${e.toString()}`,{headers:await _(),next:{revalidate:0}}),r=t.headers.get("content-type")||"";if(t.ok&&r.includes("application/json")){let e=await t.json();if(e.ok&&e.tasks&&e.tasks.length>0)return Response.json(e);if(n&&e.tasks?.length===0){let t=new URLSearchParams;s&&t.set("status",s),i&&t.set("from_name",i),o&&t.set("to_name",o),t.set("limit",String(a));let r=await fetch(`${f}/api/tasks?${t.toString()}`,{headers:await _(),next:{revalidate:0}});if(r.ok){let e=await r.json();if(e.ok&&e.tasks?.length>0)return Response.json({...e,source:"global"})}return Response.json(e)}}let d=await fetch(`${f}/api/completions?limit=${a}`,{headers:await _(),next:{revalidate:0}}),u=((await d.json()).completions||[]).map(e=>({task_id:e.id,from_name:"",to_name:e.session_name,status:"replied",priority:"normal",content:e.task||"",result:e.result||"",created_at:e.completed_at,updated_at:e.completed_at,delivered_at:"",started_at:"",completed_at:e.completed_at,expires_at:""}));return s&&"replied"!==s&&(u=[]),i&&(u=u.filter(e=>e.from_name.includes(i))),o&&(u=u.filter(e=>e.to_name.includes(o))),Response.json({ok:!0,tasks:u,count:u.length,source:"completions"})}catch(e){return Response.json({error:"CommHub unreachable",detail:e instanceof Error?e.message:String(e)},{status:502})}}e.s(["GET",0,E],67716);var k=e.i(67716);let y=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/hub/tasks/route",pathname:"/api/hub/tasks",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/hub/tasks/route.ts",nextConfigOutput:"",userland:k,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:b,serverHooks:A}=y;async function S(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),y.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/hub/tasks/route";v=v.replace(/\/index$/,"")||"/";let f=await y.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!f)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:_,nextConfig:E,parsedUrl:k,isDraftMode:C,prerenderManifest:b,routerServerContext:A,isOnDemandRevalidate:S,revalidateOnlyGenerated:T,resolvedPathname:j,clientReferenceManifest:q,serverActionsManifest:N}=f,P=(0,o.normalizeAppPath)(v),O=!!(b.dynamicRoutes[P]||b.routes[j]),U=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,k,!1):t.end("This page could not be found"),null);if(O&&!C){let e=!!b.routes[j],t=b.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await U();throw new R.NoFallbackError}}let H=null;!O||y.isDev||C||(H="/index"===(H=j)?"/":H);let M=!0===y.isDev||!O,I=O&&!M;N&&q&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:q,serverActionsManifest:N});let $=e.method||"GET",D=(0,s.getTracer)(),B=D.getActiveScopeSpan(),K=!!(null==A?void 0:A.isWrappedByNextServer),L=!!(0,n.getRequestMeta)(e,"minimalMode"),F=(0,n.getRequestMeta)(e,"incrementalCache")||await y.getIncrementalCache(e,E,b,L);null==F||F.resetRequestCache(),globalThis.__incrementalCache=F;let G={params:_,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:M,incrementalCache:F,cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>y.onRequestError(e,t,a,n,A)},sharedContext:{buildId:w}},V=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let n,i=async e=>y.handle(X,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=D.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${$} ${v}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&S&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=G.renderOpts.collectedTags;if(!O)return await (0,c.sendResponse)(V,W,s,G.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[x.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,a=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await y.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:S})},!1,A),t}},d=await y.handleResponse({req:e,nextConfig:E,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!O)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",S?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return L&&O||u.delete(x.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,c.sendResponse)(V,W,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};K&&B?await o(B):(n=D.getActiveScopeSpan(),await D.withPropagatedContext(e.headers,()=>D.trace(u.BaseServerSpan.handleRequest,{spanName:`${$} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!K))}catch(t){if(t instanceof R.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:S})},!1,A),O)throw t;return await (0,c.sendResponse)(V,W,new Response(null,{status:500})),null}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:b})},"routeModule",0,y,"serverHooks",0,A,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,b],80453)}];
1
+ module.exports=[50227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},80453,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),s=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),d=e.i(87718),u=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),m=e.i(74838),x=e.i(10372),R=e.i(93695);e.i(20232);var g=e.i(220),v=e.i(282);let f=process.env.COMMHUB_URL||"http://127.0.0.1:9200",w=process.env.COMMHUB_AUTH_TOKEN||"";async function _(){let e=await (0,v.getV3UserToken)()||w,t={};return e&&(t.Authorization=`Bearer ${e}`),t}async function E(e){let t=await (0,v.requireDashboardAuth)();if(t)return t;let{searchParams:r}=new URL(e.url),a=parseInt(r.get("limit")||"100",10),n=r.get("network_id")||"",s=r.get("status")||"",i=r.get("from_name")||"",o=r.get("to_name")||"",l=r.get("task_id")||"";try{let e=new URLSearchParams;n&&e.set("network_id",n),s&&e.set("status",s),i&&e.set("from_name",i),o&&e.set("to_name",o),l&&e.set("task_id",l),e.set("limit",String(a));let t=await fetch(`${f}/api/tasks?${e.toString()}`,{headers:await _(),next:{revalidate:0}}),r=t.headers.get("content-type")||"";if(t.ok&&r.includes("application/json")){let e=await t.json();if(e.ok&&e.tasks&&e.tasks.length>0)return Response.json(e);if(n&&e.tasks?.length===0){let t=new URLSearchParams;s&&t.set("status",s),i&&t.set("from_name",i),o&&t.set("to_name",o),t.set("limit",String(a));let r=await fetch(`${f}/api/tasks?${t.toString()}`,{headers:await _(),next:{revalidate:0}});if(r.ok){let e=await r.json();if(e.ok&&e.tasks?.length>0)return Response.json({...e,source:"global"})}return Response.json(e)}}let d=await fetch(`${f}/api/completions?limit=${a}`,{headers:await _(),next:{revalidate:0}}),u=((await d.json()).completions||[]).map(e=>({task_id:e.id,from_name:"",to_name:e.session_name,status:"replied",priority:"normal",content:e.task||"",result:e.result||"",created_at:e.completed_at,updated_at:e.completed_at,delivered_at:"",started_at:"",completed_at:e.completed_at,expires_at:""}));return s&&"replied"!==s&&(u=[]),i&&(u=u.filter(e=>e.from_name.includes(i))),o&&(u=u.filter(e=>e.to_name.includes(o))),Response.json({ok:!0,tasks:u,count:u.length,source:"completions"})}catch(e){return Response.json({error:"CommHub unreachable",detail:e instanceof Error?e.message:String(e)},{status:502})}}e.s(["GET",0,E],67716);var k=e.i(67716);let y=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/hub/tasks/route",pathname:"/api/hub/tasks",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/hub/tasks/route.ts",nextConfigOutput:"",userland:k,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:b,serverHooks:A}=y;async function S(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),y.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/hub/tasks/route";v=v.replace(/\/index$/,"")||"/";let f=await y.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!f)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:_,nextConfig:E,parsedUrl:k,isDraftMode:C,prerenderManifest:b,routerServerContext:A,isOnDemandRevalidate:S,revalidateOnlyGenerated:T,resolvedPathname:j,clientReferenceManifest:q,serverActionsManifest:N}=f,P=(0,o.normalizeAppPath)(v),O=!!(b.dynamicRoutes[P]||b.routes[j]),U=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,k,!1):t.end("This page could not be found"),null);if(O&&!C){let e=!!b.routes[j],t=b.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await U();throw new R.NoFallbackError}}let H=null;!O||y.isDev||C||(H="/index"===(H=j)?"/":H);let M=!0===y.isDev||!O,I=O&&!M;N&&q&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:q,serverActionsManifest:N});let $=e.method||"GET",D=(0,s.getTracer)(),B=D.getActiveScopeSpan(),K=!!(null==A?void 0:A.isWrappedByNextServer),L=!!(0,n.getRequestMeta)(e,"minimalMode"),F=(0,n.getRequestMeta)(e,"incrementalCache")||await y.getIncrementalCache(e,E,b,L);null==F||F.resetRequestCache(),globalThis.__incrementalCache=F;let G={params:_,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:M,incrementalCache:F,cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>y.onRequestError(e,t,a,n,A)},sharedContext:{buildId:w}},V=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let n,i=async e=>y.handle(X,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=D.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${$} ${v}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&S&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(n);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=G.renderOpts.collectedTags;if(!O)return await (0,c.sendResponse)(V,W,s,G.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[x.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,a=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await y.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:S})},!1,A),t}},d=await y.handleResponse({req:e,nextConfig:E,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!O)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",S?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return L&&O||u.delete(x.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,c.sendResponse)(V,W,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};K&&B?await o(B):(n=D.getActiveScopeSpan(),await D.withPropagatedContext(e.headers,()=>D.trace(u.BaseServerSpan.handleRequest,{spanName:`${$} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!K))}catch(t){if(t instanceof R.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:S})},!1,A),O)throw t;return await (0,c.sendResponse)(V,W,new Response(null,{status:500})),null}}e.s(["handler",0,S,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:b})},"routeModule",0,y,"serverHooks",0,A,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,b],80453)}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__114809t._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__139~d6a._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},42602,(a,b,c)=>{"use strict";b.exports=a.r(18622)},87924,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactJsxRuntime},72131,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].React},9270,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.AppRouterContext},38783,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactServerDOMTurbopackClient},36313,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HooksClientContext},18341,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ServerInsertedHtml},46058,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},39118,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"},88644,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},54427,(a,b,c)=>{"use strict";function d(){let a,b,c=new Promise((c,d)=>{a=c,b=d});return{resolve:a,reject:b,promise:c}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createPromiseWithResolvers",{enumerable:!0,get:function(){return d}})},22397,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=(0,c.createContext)({networkId:"",setNetworkId:()=>{}});a.s(["NetworkProvider",0,function({children:a}){let[e,f]=(0,c.useState)("");return(0,c.useEffect)(()=>{let a=sessionStorage.getItem("anet_network_id");a&&f(a)},[]),(0,b.jsx)(d.Provider,{value:{networkId:e,setNetworkId:a=>{f(a),sessionStorage.setItem("anet_network_id",a)}},children:a})},"useNetworkId",0,function(){return(0,c.useContext)(d)}])},76194,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=[{id:"cyber",label:"Cyber",emoji:"🌃",desc:"默认深色"},{id:"light",label:"Light",emoji:"☀️",desc:"浅色简洁"},{id:"mint",label:"Mint",emoji:"🌿",desc:"薄荷绿"},{id:"sunset",label:"Sunset",emoji:"🌅",desc:"暖色橙紫"}],e="anet-theme";function f(a){"u">typeof document&&document.documentElement.setAttribute("data-theme",a)}a.s(["ThemeProvider",0,function({children:a}){return(0,c.useEffect)(()=>{f(localStorage.getItem(e)||"cyber")},[]),(0,b.jsx)(b.Fragment,{children:a})},"ThemeSwitcher",0,function({compact:a=!1}){let[g,h]=(0,c.useState)("cyber"),[i,j]=(0,c.useState)(!1);(0,c.useEffect)(()=>{let a=localStorage.getItem(e)||"cyber";h(a),f(a)},[]);let k=d.find(a=>a.id===g)||d[0];return(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{"aria-label":"切换主题",onClick:()=>j(!i),className:"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)"},children:[(0,b.jsx)("span",{"aria-hidden":!0,children:k.emoji}),!a&&(0,b.jsx)("span",{children:k.label})]}),i&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>j(!1)}),(0,b.jsx)("div",{className:"absolute right-0 top-full mt-1 z-50 rounded-md min-w-[160px] py-1 shadow-lg",style:{background:"var(--bg-secondary)",border:"1px solid var(--border)"},children:d.map(a=>(0,b.jsxs)("button",{onClick:()=>{var b;h(b=a.id),localStorage.setItem(e,b),f(b),j(!1)},className:"w-full px-3 py-2 text-left text-xs flex items-center gap-2 hover:opacity-80",style:{background:a.id===g?"var(--bg-elevated)":"transparent",color:"var(--fg)"},children:[(0,b.jsx)("span",{"aria-hidden":!0,children:a.emoji}),(0,b.jsx)("span",{className:"flex-1",children:a.label}),(0,b.jsx)("span",{style:{color:"var(--fg-dim)"},className:"text-[10px]",children:a.desc}),a.id===g&&(0,b.jsx)("span",{style:{color:"var(--accent)"},children:"•"})]},a.id))})]})]})}])},42588,a=>{"use strict";var b=a.i(87924),c=a.i(50944),d=a.i(38246),e=a.i(72131),f=a.i(72596),g=a.i(22397),h=a.i(76194);let i=a=>fetch(a).then(a=>a.ok?a.json():{networks:[]}),j=[{href:"/",label:"Overview",icon:"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"},{href:"/tasks",label:"Tasks",icon:"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"},{href:"/nodes",label:"Nodes",icon:"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"},{href:"/messages",label:"Messages",icon:"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"},{href:"/settings/networks",label:"Networks",icon:"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"},{href:"/logs",label:"Audit Log",icon:"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"},{href:"/server-logs",label:"Server Logs",icon:"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"},{href:"/admin",label:"Admin",icon:"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"},{href:"/docs",label:"Docs",icon:"M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"},{href:"/settings",label:"Settings",icon:"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"}],k={owner:"⭐",admin:"🔧",member:"👤",viewer:"👁"};function l(){let a=(0,c.usePathname)(),[l,m]=(0,e.useState)(!1),[n,o]=(0,e.useState)(!1),{networkId:p,setNetworkId:q}=(0,g.useNetworkId)(),{data:r}=(0,f.default)("/api/hub/networks",i,{refreshInterval:15e3,dedupingInterval:1e4}),s=r?.networks||[],t=(0,b.jsx)("nav",{className:"flex flex-col gap-1 px-2 py-4",children:j.map(c=>{var e;return(0,b.jsxs)(d.default,{href:c.href,prefetch:!1,onClick:()=>o(!1),className:`flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] ${("/"===(e=c.href)?"/"===a:"/settings"===e?"/settings"===a:a.startsWith(e))?"bg-cyan-500/10 text-cyan-300 border border-cyan-500/20":"text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a]"} ${l?"justify-center":""}`,children:[(0,b.jsx)("svg",{className:"w-5 h-5 shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:c.icon})}),!l&&(0,b.jsx)("span",{children:c.label})]},c.href)})});return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{onClick:()=>o(!n),className:"fixed top-4 left-3 z-50 lg:hidden bg-[#111128] border border-[#2a2a4a] rounded-lg p-2.5 text-gray-400 hover:text-white active:bg-[#1a1a3a]","aria-label":"Toggle menu",children:(0,b.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:n?(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"}):(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 6h16M4 12h16M4 18h16"})})}),n&&(0,b.jsx)("div",{className:"fixed inset-0 bg-black/50 z-30 lg:hidden",onClick:()=>o(!1)}),(0,b.jsxs)("aside",{className:`
1
+ module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},42602,(a,b,c)=>{"use strict";b.exports=a.r(18622)},87924,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactJsxRuntime},72131,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].React},9270,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.AppRouterContext},38783,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactServerDOMTurbopackClient},36313,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HooksClientContext},18341,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ServerInsertedHtml},46058,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},39118,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"},88644,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},54427,(a,b,c)=>{"use strict";function d(){let a,b,c=new Promise((c,d)=>{a=c,b=d});return{resolve:a,reject:b,promise:c}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createPromiseWithResolvers",{enumerable:!0,get:function(){return d}})},22397,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=(0,c.createContext)({networkId:"",setNetworkId:()=>{}});a.s(["NetworkProvider",0,function({children:a}){let[e,f]=(0,c.useState)("");return(0,c.useEffect)(()=>{let a=sessionStorage.getItem("anet_network_id");a&&f(a)},[]),(0,b.jsx)(d.Provider,{value:{networkId:e,setNetworkId:a=>{f(a),sessionStorage.setItem("anet_network_id",a)}},children:a})},"useNetworkId",0,function(){return(0,c.useContext)(d)}])},76194,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=[{id:"cyber",label:"Cyber",emoji:"🌃",desc:"默认深色"},{id:"light",label:"Light",emoji:"☀️",desc:"浅色简洁"},{id:"mint",label:"Mint",emoji:"🌿",desc:"薄荷绿"},{id:"sunset",label:"Sunset",emoji:"🌅",desc:"暖色橙紫"}],e="anet-theme";function f(a){"u">typeof document&&document.documentElement.setAttribute("data-theme",a)}a.s(["ThemeProvider",0,function({children:a}){return(0,c.useEffect)(()=>{f(localStorage.getItem(e)||"cyber")},[]),(0,b.jsx)(b.Fragment,{children:a})},"ThemeSwitcher",0,function({compact:a=!1}){let[g,h]=(0,c.useState)("cyber"),[i,j]=(0,c.useState)(!1);(0,c.useEffect)(()=>{let a=localStorage.getItem(e)||"cyber";h(a),f(a)},[]);let k=d.find(a=>a.id===g)||d[0];return(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsxs)("button",{"aria-label":"切换主题",onClick:()=>j(!i),className:"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)"},children:[(0,b.jsx)("span",{"aria-hidden":!0,children:k.emoji}),!a&&(0,b.jsx)("span",{children:k.label})]}),i&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>j(!1)}),(0,b.jsx)("div",{className:"absolute right-0 top-full mt-1 z-50 rounded-md min-w-[160px] py-1 shadow-lg",style:{background:"var(--bg-secondary)",border:"1px solid var(--border)"},children:d.map(a=>(0,b.jsxs)("button",{onClick:()=>{var b;h(b=a.id),localStorage.setItem(e,b),f(b),j(!1)},className:"w-full px-3 py-2 text-left text-xs flex items-center gap-2 hover:opacity-80",style:{background:a.id===g?"var(--bg-elevated)":"transparent",color:"var(--fg)"},children:[(0,b.jsx)("span",{"aria-hidden":!0,children:a.emoji}),(0,b.jsx)("span",{className:"flex-1",children:a.label}),(0,b.jsx)("span",{style:{color:"var(--fg-dim)"},className:"text-[10px]",children:a.desc}),a.id===g&&(0,b.jsx)("span",{style:{color:"var(--accent)"},children:"•"})]},a.id))})]})]})}])},42588,a=>{"use strict";var b=a.i(87924),c=a.i(50944),d=a.i(38246),e=a.i(72131),f=a.i(72596),g=a.i(22397),h=a.i(76194);let i=a=>fetch(a).then(a=>a.ok?a.json():{networks:[]}),j=[{href:"/",label:"Overview",icon:"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"},{href:"/tasks",label:"Tasks",icon:"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"},{href:"/nodes",label:"Nodes",icon:"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"},{href:"/messages",label:"Messages",icon:"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"},{href:"/settings/networks",label:"Networks",icon:"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"},{href:"/logs",label:"Audit Log",icon:"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"},{href:"/server-logs",label:"Server Logs",icon:"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"},{href:"/admin",label:"Admin",icon:"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"},{href:"/settings",label:"Settings",icon:"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"}],k={owner:"⭐",admin:"🔧",member:"👤",viewer:"👁"};function l(){let a=(0,c.usePathname)(),[l,m]=(0,e.useState)(!1),[n,o]=(0,e.useState)(!1),{networkId:p,setNetworkId:q}=(0,g.useNetworkId)(),{data:r}=(0,f.default)("/api/hub/networks",i,{refreshInterval:15e3,dedupingInterval:1e4}),s=r?.networks||[],t=(0,b.jsx)("nav",{className:"flex flex-col gap-1 px-2 py-4",children:j.map(c=>{var e;return(0,b.jsxs)(d.default,{href:c.href,prefetch:!1,onClick:()=>o(!1),className:`flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] ${("/"===(e=c.href)?"/"===a:"/settings"===e?"/settings"===a:a.startsWith(e))?"bg-cyan-500/10 text-cyan-300 border border-cyan-500/20":"text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a]"} ${l?"justify-center":""}`,children:[(0,b.jsx)("svg",{className:"w-5 h-5 shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:c.icon})}),!l&&(0,b.jsx)("span",{children:c.label})]},c.href)})});return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{onClick:()=>o(!n),className:"fixed top-4 left-3 z-50 lg:hidden bg-[#111128] border border-[#2a2a4a] rounded-lg p-2.5 text-gray-400 hover:text-white active:bg-[#1a1a3a]","aria-label":"Toggle menu",children:(0,b.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:n?(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"}):(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 6h16M4 12h16M4 18h16"})})}),n&&(0,b.jsx)("div",{className:"fixed inset-0 bg-black/50 z-30 lg:hidden",onClick:()=>o(!1)}),(0,b.jsxs)("aside",{className:`
2
2
  fixed top-0 left-0 h-full z-40 bg-[#0d0d1a] border-r border-[#2a2a4a]
3
3
  transition-all duration-200
4
4
  ${l?"w-16":"w-52"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/next/src/server/route-modules/app-page/module.compiled.js","../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/contexts/app-router-context.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/contexts/hooks-client-context.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/contexts/server-inserted-html.ts","../../../../node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../node_modules/next/src/shared/lib/segment.ts","../../../../node_modules/next/src/shared/lib/invariant-error.ts","../../../../node_modules/next/src/shared/lib/promise-with-resolvers.ts","../../../../app/lib/network-context.tsx","../../../../app/components/ThemeSwitcher.tsx","../../../../app/components/AppShell.tsx","../../../../app/components/Sidebar.tsx"],"sourcesContent":["if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactJsxRuntime\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.React\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].AppRouterContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactServerDOMTurbopackClient\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HooksClientContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ServerInsertedHtml\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","import type { FlightRouterState, Segment } from './app-router-types'\n\nexport function getSegmentValue(segment: Segment) {\n return Array.isArray(segment) ? segment[1] : segment\n}\n\nexport function isGroupSegment(segment: string) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')')\n}\n\nexport function isParallelRouteSegment(segment: string) {\n return segment.startsWith('@') && segment !== '@children'\n}\n\nexport function addSearchParamsIfPageSegment(\n segment: Segment,\n searchParams: Record<string, string | string[] | undefined>\n) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY)\n\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams)\n return stringifiedQuery !== '{}'\n ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery\n : PAGE_SEGMENT_KEY\n }\n\n return segment\n}\n\nexport function computeSelectedLayoutSegment(\n segments: string[] | null,\n parallelRouteKey: string\n): string | null {\n if (!segments || segments.length === 0) {\n return null\n }\n\n // For 'children', use first segment; for other parallel routes, use last segment\n const rawSegment =\n parallelRouteKey === 'children'\n ? segments[0]\n : segments[segments.length - 1]\n\n // If the default slot is showing, return null since it's not technically \"selected\" (it's a fallback)\n // Returning an internal value like `__DEFAULT__` would be confusing\n return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment\n}\n\n/** Get the canonical parameters from the current level to the leaf node. */\nexport function getSelectedLayoutSegmentPath(\n tree: FlightRouterState,\n parallelRouteKey: string,\n first = true,\n segmentPath: string[] = []\n): string[] {\n let node: FlightRouterState\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey]\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1]\n node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]\n }\n\n if (!node) return segmentPath\n const segment = node[0]\n\n let segmentValue = getSegmentValue(segment)\n\n if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) {\n return segmentPath\n }\n\n segmentPath.push(segmentValue)\n\n return getSelectedLayoutSegmentPath(\n node,\n parallelRouteKey,\n false,\n segmentPath\n )\n}\n\nexport const PAGE_SEGMENT_KEY = '__PAGE__'\nexport const DEFAULT_SEGMENT_KEY = '__DEFAULT__'\nexport const NOT_FOUND_SEGMENT_KEY = '/_not-found'\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","export function createPromiseWithResolvers<T>(): PromiseWithResolvers<T> {\n // Shim of Stage 4 Promise.withResolvers proposal\n let resolve: (value: T | PromiseLike<T>) => void\n let reject: (reason: any) => void\n const promise = new Promise<T>((res, rej) => {\n resolve = res\n reject = rej\n })\n return { resolve: resolve!, reject: reject!, promise }\n}\n","'use client';\n\nimport { createContext, useContext, useState, useEffect, ReactNode } from 'react';\n\ninterface NetworkContextType {\n networkId: string;\n setNetworkId: (id: string) => void;\n}\n\nconst NetworkContext = createContext<NetworkContextType>({ networkId: '', setNetworkId: () => {} });\n\nexport function NetworkProvider({ children }: { children: ReactNode }) {\n const [networkId, setNetworkId] = useState('');\n\n useEffect(() => {\n const saved = sessionStorage.getItem('anet_network_id');\n if (saved) setNetworkId(saved);\n }, []);\n\n const setAndPersist = (id: string) => {\n setNetworkId(id);\n sessionStorage.setItem('anet_network_id', id);\n };\n\n return (\n <NetworkContext.Provider value={{ networkId, setNetworkId: setAndPersist }}>\n {children}\n </NetworkContext.Provider>\n );\n}\n\nexport function useNetworkId() {\n return useContext(NetworkContext);\n}\n","'use client';\n\nimport { useEffect, useState } from 'react';\n\nconst THEMES = [\n { id: 'cyber', label: 'Cyber', emoji: '🌃', desc: '默认深色' },\n { id: 'light', label: 'Light', emoji: '☀️', desc: '浅色简洁' },\n { id: 'mint', label: 'Mint', emoji: '🌿', desc: '薄荷绿' },\n { id: 'sunset', label: 'Sunset', emoji: '🌅', desc: '暖色橙紫' },\n] as const;\n\ntype ThemeId = typeof THEMES[number]['id'];\nconst THEME_KEY = 'anet-theme';\n\nfunction applyTheme(theme: ThemeId) {\n if (typeof document !== 'undefined') {\n document.documentElement.setAttribute('data-theme', theme);\n }\n}\n\nexport function ThemeProvider({ children }: { children: React.ReactNode }) {\n // Apply persisted theme on first render so we don't flash dark before\n // user-selected light. Initial value comes from cookie/localStorage.\n useEffect(() => {\n const stored = (localStorage.getItem(THEME_KEY) as ThemeId) || 'cyber';\n applyTheme(stored);\n }, []);\n return <>{children}</>;\n}\n\nexport function ThemeSwitcher({ compact = false }: { compact?: boolean }) {\n const [theme, setTheme] = useState<ThemeId>('cyber');\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n const stored = (localStorage.getItem(THEME_KEY) as ThemeId) || 'cyber';\n setTheme(stored);\n applyTheme(stored);\n }, []);\n\n function pick(next: ThemeId) {\n setTheme(next);\n localStorage.setItem(THEME_KEY, next);\n applyTheme(next);\n setOpen(false);\n }\n\n const current = THEMES.find(t => t.id === theme) || THEMES[0];\n\n return (\n <div className=\"relative\">\n <button\n aria-label=\"切换主题\"\n onClick={() => setOpen(!open)}\n className=\"px-2.5 py-1.5 rounded-md text-xs flex items-center gap-1.5 hover:opacity-80 transition-opacity\"\n style={{ background: 'var(--bg-elevated)', color: 'var(--fg)', border: '1px solid var(--border)' }}\n >\n <span aria-hidden>{current.emoji}</span>\n {!compact && <span>{current.label}</span>}\n </button>\n {open && (\n <>\n <div className=\"fixed inset-0 z-40\" onClick={() => setOpen(false)} />\n <div\n className=\"absolute right-0 top-full mt-1 z-50 rounded-md min-w-[160px] py-1 shadow-lg\"\n style={{ background: 'var(--bg-secondary)', border: '1px solid var(--border)' }}\n >\n {THEMES.map(t => (\n <button\n key={t.id}\n onClick={() => pick(t.id)}\n className=\"w-full px-3 py-2 text-left text-xs flex items-center gap-2 hover:opacity-80\"\n style={{\n background: t.id === theme ? 'var(--bg-elevated)' : 'transparent',\n color: 'var(--fg)',\n }}\n >\n <span aria-hidden>{t.emoji}</span>\n <span className=\"flex-1\">{t.label}</span>\n <span style={{ color: 'var(--fg-dim)' }} className=\"text-[10px]\">{t.desc}</span>\n {t.id === theme && <span style={{ color: 'var(--accent)' }}>•</span>}\n </button>\n ))}\n </div>\n </>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { usePathname } from 'next/navigation';\nimport { Sidebar } from './Sidebar';\n\nconst NO_SHELL_PATHS = ['/login'];\n\nexport function AppShell({ children }: { children: React.ReactNode }) {\n const pathname = usePathname();\n\n if (NO_SHELL_PATHS.includes(pathname)) {\n return <>{children}</>;\n }\n\n return (\n <div className=\"flex min-h-screen\">\n <Sidebar />\n <main className=\"flex-1 min-w-0\">{children}</main>\n </div>\n );\n}\n","'use client';\n\nimport Link from 'next/link';\nimport { usePathname } from 'next/navigation';\nimport { useState } from 'react';\nimport useSWR from 'swr';\nimport { useNetworkId } from '../lib/network-context';\nimport { ThemeSwitcher } from './ThemeSwitcher';\n\nconst networkFetcher = (url: string) => fetch(url).then(r => r.ok ? r.json() : { networks: [] });\n\nconst NAV_ITEMS = [\n { href: '/', label: 'Overview', icon: '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' },\n { href: '/tasks', label: 'Tasks', icon: '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' },\n { href: '/nodes', label: 'Nodes', icon: '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' },\n { href: '/messages', label: 'Messages', icon: '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' },\n { href: '/settings/networks', label: 'Networks', icon: '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' },\n { href: '/logs', label: 'Audit Log', icon: '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' },\n { href: '/server-logs', label: 'Server Logs', icon: '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' },\n { href: '/admin', label: 'Admin', icon: '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' },\n { href: '/docs', label: 'Docs', icon: 'M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253' },\n { href: '/settings', label: 'Settings', icon: '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' },\n];\n\ninterface SidebarNetwork {\n network_id: string;\n network_name: string;\n role?: string;\n}\n\nconst ROLE_ICON: Record<string, string> = { owner: '⭐', admin: '🔧', member: '👤', viewer: '👁' };\n\nexport function Sidebar() {\n const pathname = usePathname();\n const [collapsed, setCollapsed] = useState(false);\n const [mobileOpen, setMobileOpen] = useState(false);\n const { networkId, setNetworkId } = useNetworkId();\n const { data: netData } = useSWR<{ networks: SidebarNetwork[] }>('/api/hub/networks', networkFetcher, { refreshInterval: 15000, dedupingInterval: 10000 });\n const networks = netData?.networks || [];\n\n const isActive = (href: string) => {\n if (href === '/') return pathname === '/';\n if (href === '/settings') return pathname === '/settings';\n return pathname.startsWith(href);\n };\n\n const nav = (\n <nav className=\"flex flex-col gap-1 px-2 py-4\">\n {NAV_ITEMS.map(item => (\n <Link\n key={item.href}\n href={item.href}\n prefetch={false}\n onClick={() => setMobileOpen(false)}\n className={`flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] ${\n isActive(item.href)\n ? 'bg-cyan-500/10 text-cyan-300 border border-cyan-500/20'\n : 'text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a]'\n } ${collapsed ? 'justify-center' : ''}`}\n >\n <svg className=\"w-5 h-5 shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={1.5}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d={item.icon} />\n </svg>\n {!collapsed && <span>{item.label}</span>}\n </Link>\n ))}\n </nav>\n );\n\n return (\n <>\n {/* Mobile hamburger */}\n <button\n onClick={() => setMobileOpen(!mobileOpen)}\n className=\"fixed top-4 left-3 z-50 lg:hidden bg-[#111128] border border-[#2a2a4a] rounded-lg p-2.5 text-gray-400 hover:text-white active:bg-[#1a1a3a]\"\n aria-label=\"Toggle menu\"\n >\n <svg className=\"w-5 h-5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n {mobileOpen\n ? <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n : <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4 6h16M4 12h16M4 18h16\" />}\n </svg>\n </button>\n\n {/* Mobile overlay */}\n {mobileOpen && (\n <div\n className=\"fixed inset-0 bg-black/50 z-30 lg:hidden\"\n onClick={() => setMobileOpen(false)}\n />\n )}\n\n {/* Sidebar */}\n <aside className={`\n fixed top-0 left-0 h-full z-40 bg-[#0d0d1a] border-r border-[#2a2a4a]\n transition-all duration-200\n ${collapsed ? 'w-16' : 'w-52'}\n ${mobileOpen ? 'translate-x-0' : '-translate-x-full'}\n lg:translate-x-0 lg:static lg:shrink-0\n `}>\n {/* Logo */}\n <div className={`px-4 py-5 border-b border-[#2a2a4a] ${collapsed ? 'text-center' : ''}`}>\n {collapsed ? (\n <span className=\"text-cyan-400 font-bold text-lg\">A</span>\n ) : (\n <div>\n <div className=\"text-white font-bold text-sm\">Agent Network</div>\n <div className=\"text-gray-600 text-xs\">Dashboard</div>\n </div>\n )}\n </div>\n\n {/* Network list */}\n {!collapsed && networks.length > 0 && (\n <div className=\"px-2 py-3 border-b border-[#2a2a4a]\">\n <div className=\"px-3 text-[10px] text-gray-600 uppercase mb-2\">Networks</div>\n <div className=\"space-y-0.5 max-h-32 overflow-y-auto\">\n {networks.map((n: SidebarNetwork) => (\n <button\n key={n.network_id}\n onClick={() => { setNetworkId(n.network_id); setMobileOpen(false); }}\n className={`w-full flex items-center gap-2 px-3 py-1.5 rounded-md text-xs transition-colors text-left ${\n networkId === n.network_id\n ? 'bg-cyan-500/10 text-cyan-300'\n : 'text-gray-500 hover:text-gray-300 hover:bg-[#1a1a2a]'\n }`}\n >\n <span>{ROLE_ICON[n.role || 'member'] || '👤'}</span>\n <span className=\"truncate\">{n.network_name}</span>\n </button>\n ))}\n </div>\n </div>\n )}\n\n <div className=\"pb-20\">\n {nav}\n </div>\n\n {/* Sign out + collapse */}\n <div className=\"absolute bottom-0 left-0 right-0 border-t border-[#2a2a4a] bg-[#0d0d1a]\">\n {!collapsed && (\n <button\n onClick={async () => {\n await fetch('/api/auth/logout', { method: 'POST' }).catch(() => {});\n sessionStorage.removeItem('anet_v3_auth');\n window.location.assign('/login');\n }}\n className=\"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\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={1.5}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"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\" />\n </svg>\n Sign out\n </button>\n )}\n <div className={`flex items-center gap-2 px-3 py-2 ${collapsed ? 'justify-center' : 'justify-between'}`}>\n <ThemeSwitcher compact={collapsed} />\n <button\n onClick={() => setCollapsed(!collapsed)}\n className=\"hidden lg:flex p-1.5 rounded text-gray-600 hover:text-gray-400 transition-colors\"\n aria-label={collapsed ? 'Expand sidebar' : 'Collapse sidebar'}\n >\n <svg className={`w-4 h-4 transition-transform ${collapsed ? 'rotate-180' : ''}`} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n </div>\n </div>\n </aside>\n </>\n );\n}\n"],"names":["process","env","NEXT_RUNTIME","module","exports","require","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","vendored","ReactJsxRuntime","React","AppRouterContext","ReactServerDOMTurbopackClient","HooksClientContext","ServerInsertedHtml","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interop_require_wildcard","obj","__esModule","default","cache","has","get","newObj","__proto__","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_","DEFAULT_SEGMENT_KEY","NOT_FOUND_SEGMENT_KEY","PAGE_SEGMENT_KEY","addSearchParamsIfPageSegment","computeSelectedLayoutSegment","getSegmentValue","getSelectedLayoutSegmentPath","isGroupSegment","isParallelRouteSegment","segment","Array","isArray","endsWith","startsWith","searchParams","isPageSegment","includes","stringifiedQuery","JSON","stringify","segments","parallelRouteKey","length","rawSegment","tree","first","segmentPath","node","parallelRoutes","children","values","segmentValue","push","InvariantError","Error","constructor","message","options","name","createPromiseWithResolvers","resolve","reject","promise","Promise","res","rej","NetworkContext","networkId","setNetworkId","NetworkProvider","saved","sessionStorage","getItem","setAndPersist","id","setItem","Provider","value","useNetworkId","THEMES","label","emoji","THEME_KEY","applyTheme","theme","document","documentElement","setAttribute","ThemeProvider","stored","localStorage","ThemeSwitcher","compact","setTheme","open","setOpen","pick","next","current","find","t","className","onClick","style","background","color","border","map","networkFetcher","url","fetch","then","r","ok","json","networks","NAV_ITEMS","href","icon","ROLE_ICON","owner","admin","member","viewer","Sidebar","pathname","collapsed","setCollapsed","mobileOpen","setMobileOpen","data","netData","refreshInterval","dedupingInterval","isActive","nav","item","prefetch","fill","viewBox","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","n","network_id","role","network_name","method","catch","removeItem","window","location","assign"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}
1
+ {"version":3,"sources":["../../../../node_modules/next/src/server/route-modules/app-page/module.compiled.js","../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/contexts/app-router-context.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/contexts/hooks-client-context.ts","../../../../node_modules/next/src/server/route-modules/app-page/vendored/contexts/server-inserted-html.ts","../../../../node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../node_modules/next/src/shared/lib/segment.ts","../../../../node_modules/next/src/shared/lib/invariant-error.ts","../../../../node_modules/next/src/shared/lib/promise-with-resolvers.ts","../../../../app/lib/network-context.tsx","../../../../app/components/ThemeSwitcher.tsx","../../../../app/components/AppShell.tsx","../../../../app/components/Sidebar.tsx"],"sourcesContent":["if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactJsxRuntime\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.React\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].AppRouterContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactServerDOMTurbopackClient\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HooksClientContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ServerInsertedHtml\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","import type { FlightRouterState, Segment } from './app-router-types'\n\nexport function getSegmentValue(segment: Segment) {\n return Array.isArray(segment) ? segment[1] : segment\n}\n\nexport function isGroupSegment(segment: string) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')')\n}\n\nexport function isParallelRouteSegment(segment: string) {\n return segment.startsWith('@') && segment !== '@children'\n}\n\nexport function addSearchParamsIfPageSegment(\n segment: Segment,\n searchParams: Record<string, string | string[] | undefined>\n) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY)\n\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams)\n return stringifiedQuery !== '{}'\n ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery\n : PAGE_SEGMENT_KEY\n }\n\n return segment\n}\n\nexport function computeSelectedLayoutSegment(\n segments: string[] | null,\n parallelRouteKey: string\n): string | null {\n if (!segments || segments.length === 0) {\n return null\n }\n\n // For 'children', use first segment; for other parallel routes, use last segment\n const rawSegment =\n parallelRouteKey === 'children'\n ? segments[0]\n : segments[segments.length - 1]\n\n // If the default slot is showing, return null since it's not technically \"selected\" (it's a fallback)\n // Returning an internal value like `__DEFAULT__` would be confusing\n return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment\n}\n\n/** Get the canonical parameters from the current level to the leaf node. */\nexport function getSelectedLayoutSegmentPath(\n tree: FlightRouterState,\n parallelRouteKey: string,\n first = true,\n segmentPath: string[] = []\n): string[] {\n let node: FlightRouterState\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey]\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1]\n node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]\n }\n\n if (!node) return segmentPath\n const segment = node[0]\n\n let segmentValue = getSegmentValue(segment)\n\n if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) {\n return segmentPath\n }\n\n segmentPath.push(segmentValue)\n\n return getSelectedLayoutSegmentPath(\n node,\n parallelRouteKey,\n false,\n segmentPath\n )\n}\n\nexport const PAGE_SEGMENT_KEY = '__PAGE__'\nexport const DEFAULT_SEGMENT_KEY = '__DEFAULT__'\nexport const NOT_FOUND_SEGMENT_KEY = '/_not-found'\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","export function createPromiseWithResolvers<T>(): PromiseWithResolvers<T> {\n // Shim of Stage 4 Promise.withResolvers proposal\n let resolve: (value: T | PromiseLike<T>) => void\n let reject: (reason: any) => void\n const promise = new Promise<T>((res, rej) => {\n resolve = res\n reject = rej\n })\n return { resolve: resolve!, reject: reject!, promise }\n}\n","'use client';\n\nimport { createContext, useContext, useState, useEffect, ReactNode } from 'react';\n\ninterface NetworkContextType {\n networkId: string;\n setNetworkId: (id: string) => void;\n}\n\nconst NetworkContext = createContext<NetworkContextType>({ networkId: '', setNetworkId: () => {} });\n\nexport function NetworkProvider({ children }: { children: ReactNode }) {\n const [networkId, setNetworkId] = useState('');\n\n useEffect(() => {\n const saved = sessionStorage.getItem('anet_network_id');\n if (saved) setNetworkId(saved);\n }, []);\n\n const setAndPersist = (id: string) => {\n setNetworkId(id);\n sessionStorage.setItem('anet_network_id', id);\n };\n\n return (\n <NetworkContext.Provider value={{ networkId, setNetworkId: setAndPersist }}>\n {children}\n </NetworkContext.Provider>\n );\n}\n\nexport function useNetworkId() {\n return useContext(NetworkContext);\n}\n","'use client';\n\nimport { useEffect, useState } from 'react';\n\nconst THEMES = [\n { id: 'cyber', label: 'Cyber', emoji: '🌃', desc: '默认深色' },\n { id: 'light', label: 'Light', emoji: '☀️', desc: '浅色简洁' },\n { id: 'mint', label: 'Mint', emoji: '🌿', desc: '薄荷绿' },\n { id: 'sunset', label: 'Sunset', emoji: '🌅', desc: '暖色橙紫' },\n] as const;\n\ntype ThemeId = typeof THEMES[number]['id'];\nconst THEME_KEY = 'anet-theme';\n\nfunction applyTheme(theme: ThemeId) {\n if (typeof document !== 'undefined') {\n document.documentElement.setAttribute('data-theme', theme);\n }\n}\n\nexport function ThemeProvider({ children }: { children: React.ReactNode }) {\n // Apply persisted theme on first render so we don't flash dark before\n // user-selected light. Initial value comes from cookie/localStorage.\n useEffect(() => {\n const stored = (localStorage.getItem(THEME_KEY) as ThemeId) || 'cyber';\n applyTheme(stored);\n }, []);\n return <>{children}</>;\n}\n\nexport function ThemeSwitcher({ compact = false }: { compact?: boolean }) {\n const [theme, setTheme] = useState<ThemeId>('cyber');\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n const stored = (localStorage.getItem(THEME_KEY) as ThemeId) || 'cyber';\n setTheme(stored);\n applyTheme(stored);\n }, []);\n\n function pick(next: ThemeId) {\n setTheme(next);\n localStorage.setItem(THEME_KEY, next);\n applyTheme(next);\n setOpen(false);\n }\n\n const current = THEMES.find(t => t.id === theme) || THEMES[0];\n\n return (\n <div className=\"relative\">\n <button\n aria-label=\"切换主题\"\n onClick={() => setOpen(!open)}\n className=\"px-2.5 py-1.5 rounded-md text-xs flex items-center gap-1.5 hover:opacity-80 transition-opacity\"\n style={{ background: 'var(--bg-elevated)', color: 'var(--fg)', border: '1px solid var(--border)' }}\n >\n <span aria-hidden>{current.emoji}</span>\n {!compact && <span>{current.label}</span>}\n </button>\n {open && (\n <>\n <div className=\"fixed inset-0 z-40\" onClick={() => setOpen(false)} />\n <div\n className=\"absolute right-0 top-full mt-1 z-50 rounded-md min-w-[160px] py-1 shadow-lg\"\n style={{ background: 'var(--bg-secondary)', border: '1px solid var(--border)' }}\n >\n {THEMES.map(t => (\n <button\n key={t.id}\n onClick={() => pick(t.id)}\n className=\"w-full px-3 py-2 text-left text-xs flex items-center gap-2 hover:opacity-80\"\n style={{\n background: t.id === theme ? 'var(--bg-elevated)' : 'transparent',\n color: 'var(--fg)',\n }}\n >\n <span aria-hidden>{t.emoji}</span>\n <span className=\"flex-1\">{t.label}</span>\n <span style={{ color: 'var(--fg-dim)' }} className=\"text-[10px]\">{t.desc}</span>\n {t.id === theme && <span style={{ color: 'var(--accent)' }}>•</span>}\n </button>\n ))}\n </div>\n </>\n )}\n </div>\n );\n}\n","'use client';\n\nimport { usePathname } from 'next/navigation';\nimport { Sidebar } from './Sidebar';\n\nconst NO_SHELL_PATHS = ['/login'];\n\nexport function AppShell({ children }: { children: React.ReactNode }) {\n const pathname = usePathname();\n\n if (NO_SHELL_PATHS.includes(pathname)) {\n return <>{children}</>;\n }\n\n return (\n <div className=\"flex min-h-screen\">\n <Sidebar />\n <main className=\"flex-1 min-w-0\">{children}</main>\n </div>\n );\n}\n","'use client';\n\nimport Link from 'next/link';\nimport { usePathname } from 'next/navigation';\nimport { useState } from 'react';\nimport useSWR from 'swr';\nimport { useNetworkId } from '../lib/network-context';\nimport { ThemeSwitcher } from './ThemeSwitcher';\n\nconst networkFetcher = (url: string) => fetch(url).then(r => r.ok ? r.json() : { networks: [] });\n\nconst NAV_ITEMS = [\n { href: '/', label: 'Overview', icon: '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' },\n { href: '/tasks', label: 'Tasks', icon: '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' },\n { href: '/nodes', label: 'Nodes', icon: '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' },\n { href: '/messages', label: 'Messages', icon: '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' },\n { href: '/settings/networks', label: 'Networks', icon: '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' },\n { href: '/logs', label: 'Audit Log', icon: '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' },\n { href: '/server-logs', label: 'Server Logs', icon: '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' },\n { href: '/admin', label: 'Admin', icon: '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' },\n { href: '/settings', label: 'Settings', icon: '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' },\n];\n\ninterface SidebarNetwork {\n network_id: string;\n network_name: string;\n role?: string;\n}\n\nconst ROLE_ICON: Record<string, string> = { owner: '⭐', admin: '🔧', member: '👤', viewer: '👁' };\n\nexport function Sidebar() {\n const pathname = usePathname();\n const [collapsed, setCollapsed] = useState(false);\n const [mobileOpen, setMobileOpen] = useState(false);\n const { networkId, setNetworkId } = useNetworkId();\n const { data: netData } = useSWR<{ networks: SidebarNetwork[] }>('/api/hub/networks', networkFetcher, { refreshInterval: 15000, dedupingInterval: 10000 });\n const networks = netData?.networks || [];\n\n const isActive = (href: string) => {\n if (href === '/') return pathname === '/';\n if (href === '/settings') return pathname === '/settings';\n return pathname.startsWith(href);\n };\n\n const nav = (\n <nav className=\"flex flex-col gap-1 px-2 py-4\">\n {NAV_ITEMS.map(item => (\n <Link\n key={item.href}\n href={item.href}\n prefetch={false}\n onClick={() => setMobileOpen(false)}\n className={`flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] ${\n isActive(item.href)\n ? 'bg-cyan-500/10 text-cyan-300 border border-cyan-500/20'\n : 'text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a]'\n } ${collapsed ? 'justify-center' : ''}`}\n >\n <svg className=\"w-5 h-5 shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={1.5}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d={item.icon} />\n </svg>\n {!collapsed && <span>{item.label}</span>}\n </Link>\n ))}\n </nav>\n );\n\n return (\n <>\n {/* Mobile hamburger */}\n <button\n onClick={() => setMobileOpen(!mobileOpen)}\n className=\"fixed top-4 left-3 z-50 lg:hidden bg-[#111128] border border-[#2a2a4a] rounded-lg p-2.5 text-gray-400 hover:text-white active:bg-[#1a1a3a]\"\n aria-label=\"Toggle menu\"\n >\n <svg className=\"w-5 h-5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n {mobileOpen\n ? <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n : <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4 6h16M4 12h16M4 18h16\" />}\n </svg>\n </button>\n\n {/* Mobile overlay */}\n {mobileOpen && (\n <div\n className=\"fixed inset-0 bg-black/50 z-30 lg:hidden\"\n onClick={() => setMobileOpen(false)}\n />\n )}\n\n {/* Sidebar */}\n <aside className={`\n fixed top-0 left-0 h-full z-40 bg-[#0d0d1a] border-r border-[#2a2a4a]\n transition-all duration-200\n ${collapsed ? 'w-16' : 'w-52'}\n ${mobileOpen ? 'translate-x-0' : '-translate-x-full'}\n lg:translate-x-0 lg:static lg:shrink-0\n `}>\n {/* Logo */}\n <div className={`px-4 py-5 border-b border-[#2a2a4a] ${collapsed ? 'text-center' : ''}`}>\n {collapsed ? (\n <span className=\"text-cyan-400 font-bold text-lg\">A</span>\n ) : (\n <div>\n <div className=\"text-white font-bold text-sm\">Agent Network</div>\n <div className=\"text-gray-600 text-xs\">Dashboard</div>\n </div>\n )}\n </div>\n\n {/* Network list */}\n {!collapsed && networks.length > 0 && (\n <div className=\"px-2 py-3 border-b border-[#2a2a4a]\">\n <div className=\"px-3 text-[10px] text-gray-600 uppercase mb-2\">Networks</div>\n <div className=\"space-y-0.5 max-h-32 overflow-y-auto\">\n {networks.map((n: SidebarNetwork) => (\n <button\n key={n.network_id}\n onClick={() => { setNetworkId(n.network_id); setMobileOpen(false); }}\n className={`w-full flex items-center gap-2 px-3 py-1.5 rounded-md text-xs transition-colors text-left ${\n networkId === n.network_id\n ? 'bg-cyan-500/10 text-cyan-300'\n : 'text-gray-500 hover:text-gray-300 hover:bg-[#1a1a2a]'\n }`}\n >\n <span>{ROLE_ICON[n.role || 'member'] || '👤'}</span>\n <span className=\"truncate\">{n.network_name}</span>\n </button>\n ))}\n </div>\n </div>\n )}\n\n <div className=\"pb-20\">\n {nav}\n </div>\n\n {/* Sign out + collapse */}\n <div className=\"absolute bottom-0 left-0 right-0 border-t border-[#2a2a4a] bg-[#0d0d1a]\">\n {!collapsed && (\n <button\n onClick={async () => {\n await fetch('/api/auth/logout', { method: 'POST' }).catch(() => {});\n sessionStorage.removeItem('anet_v3_auth');\n window.location.assign('/login');\n }}\n className=\"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\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={1.5}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"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\" />\n </svg>\n Sign out\n </button>\n )}\n <div className={`flex items-center gap-2 px-3 py-2 ${collapsed ? 'justify-center' : 'justify-between'}`}>\n <ThemeSwitcher compact={collapsed} />\n <button\n onClick={() => setCollapsed(!collapsed)}\n className=\"hidden lg:flex p-1.5 rounded text-gray-600 hover:text-gray-400 transition-colors\"\n aria-label={collapsed ? 'Expand sidebar' : 'Collapse sidebar'}\n >\n <svg className={`w-4 h-4 transition-transform ${collapsed ? 'rotate-180' : ''}`} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n </div>\n </div>\n </aside>\n </>\n );\n}\n"],"names":["process","env","NEXT_RUNTIME","module","exports","require","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","vendored","ReactJsxRuntime","React","AppRouterContext","ReactServerDOMTurbopackClient","HooksClientContext","ServerInsertedHtml","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interop_require_wildcard","obj","__esModule","default","cache","has","get","newObj","__proto__","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_","DEFAULT_SEGMENT_KEY","NOT_FOUND_SEGMENT_KEY","PAGE_SEGMENT_KEY","addSearchParamsIfPageSegment","computeSelectedLayoutSegment","getSegmentValue","getSelectedLayoutSegmentPath","isGroupSegment","isParallelRouteSegment","segment","Array","isArray","endsWith","startsWith","searchParams","isPageSegment","includes","stringifiedQuery","JSON","stringify","segments","parallelRouteKey","length","rawSegment","tree","first","segmentPath","node","parallelRoutes","children","values","segmentValue","push","InvariantError","Error","constructor","message","options","name","createPromiseWithResolvers","resolve","reject","promise","Promise","res","rej","NetworkContext","networkId","setNetworkId","NetworkProvider","saved","sessionStorage","getItem","setAndPersist","id","setItem","Provider","value","useNetworkId","THEMES","label","emoji","THEME_KEY","applyTheme","theme","document","documentElement","setAttribute","ThemeProvider","stored","localStorage","ThemeSwitcher","compact","setTheme","open","setOpen","pick","next","current","find","t","className","onClick","style","background","color","border","map","networkFetcher","url","fetch","then","r","ok","json","networks","NAV_ITEMS","href","icon","ROLE_ICON","owner","admin","member","viewer","Sidebar","pathname","collapsed","setCollapsed","mobileOpen","setMobileOpen","data","netData","refreshInterval","dedupingInterval","isActive","nav","item","prefetch","fill","viewBox","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","n","network_id","role","network_name","method","catch","removeItem","window","location","assign"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10]}
@@ -1,3 +1,3 @@
1
- module.exports=[83694,a=>{"use strict";var b=a.i(87924),c=a.i(72131);a.s(["default",0,function(){let[a,d]=(0,c.useState)("login"),[e,f]=(0,c.useState)(""),[g,h]=(0,c.useState)(""),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(!1),m=async b=>{b.preventDefault(),l(!0),j("");try{let b=await fetch("/api/auth/v3",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:a,username:e,password:g})}),c=await b.json();if(c.ok){c.token&&sessionStorage.setItem("anet_v3_auth",JSON.stringify({user:c.user,token:c.token,networks:c.networks||[],currentNetwork:c.network_id||c.networks?.[0]?.network_id||""})),window.location.assign("/");return}j(c.error||"Login failed")}catch{j("Connection failed")}l(!1)};return(0,b.jsxs)("main",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 font-mono flex items-center justify-center relative overflow-hidden",children:[(0,b.jsxs)("div",{className:"absolute inset-0 pointer-events-none",children:[(0,b.jsx)("div",{className:"absolute top-1/4 left-1/2 -translate-x-1/2 w-[600px] h-[600px] rounded-full bg-cyan-500/5 blur-[120px]"}),(0,b.jsx)("div",{className:"absolute bottom-1/4 left-1/3 w-[400px] h-[400px] rounded-full bg-blue-500/5 blur-[100px]"})]}),(0,b.jsxs)("div",{className:"relative w-full max-w-sm mx-4",children:[(0,b.jsxs)("div",{className:"text-center mb-8",children:[(0,b.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-gradient-to-br from-cyan-500/20 to-blue-500/20 border border-cyan-500/20 mb-4",children:(0,b.jsx)("svg",{className:"w-8 h-8 text-cyan-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 016 3.75h2.25A2.25 2.25 0 0110.5 6v2.25a2.25 2.25 0 01-2.25 2.25H6a2.25 2.25 0 01-2.25-2.25V6zM3.75 15.75A2.25 2.25 0 016 13.5h2.25a2.25 2.25 0 012.25 2.25V18a2.25 2.25 0 01-2.25 2.25H6A2.25 2.25 0 013.75 18v-2.25zM13.5 6a2.25 2.25 0 012.25-2.25H18A2.25 2.25 0 0120.25 6v2.25A2.25 2.25 0 0118 10.5h-2.25a2.25 2.25 0 01-2.25-2.25V6zM13.5 15.75a2.25 2.25 0 012.25-2.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-2.25A2.25 2.25 0 0113.5 18v-2.25z"})})}),(0,b.jsx)("h1",{className:"text-2xl font-bold text-white tracking-tight",children:"Agent Network"}),(0,b.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Dashboard"})]}),(0,b.jsx)("div",{className:"flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 mb-4",children:["login","register"].map(c=>(0,b.jsx)("button",{type:"button",onClick:()=>{d(c),j("")},className:`flex-1 rounded-md px-3 py-2 text-sm transition-colors ${a===c?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"login"===c?"Sign in":"Register"},c))}),(0,b.jsxs)("form",{onSubmit:m,className:"border border-[#2a2a4a] bg-[#111128]/80 backdrop-blur-sm rounded-xl p-6 shadow-2xl shadow-black/30",children:[(0,b.jsx)("label",{htmlFor:"username",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Username"}),(0,b.jsx)("input",{id:"username",type:"text",value:e,onChange:a=>f(a.target.value),autoFocus:!0,placeholder:"Enter username",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all mb-4"}),(0,b.jsx)("label",{htmlFor:"password",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Password"}),(0,b.jsx)("input",{id:"password",type:"password",value:g,onChange:a=>h(a.target.value),placeholder:"Enter password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all"}),i&&(0,b.jsx)("div",{className:"mt-3 text-sm text-red-300 bg-red-500/5 border border-red-500/10 rounded-lg px-3 py-2",children:i}),(0,b.jsx)("button",{type:"submit",disabled:k||!g,className:"mt-5 w-full px-4 py-3 bg-gradient-to-r from-cyan-600 to-blue-600 hover:from-cyan-500 hover:to-blue-500 disabled:from-gray-800 disabled:to-gray-800 disabled:text-gray-600 text-white text-sm font-medium rounded-lg transition-all shadow-lg shadow-cyan-500/10 hover:shadow-cyan-500/20 disabled:shadow-none",children:k?"login"===a?"Signing in...":"Registering...":"login"===a?"Sign in":"Create account"})]}),(0,b.jsx)("p",{className:"text-center text-xs text-gray-700 mt-6",children:"Powered by CommHub V3"})]})]})}])}];
1
+ module.exports=[83694,a=>{"use strict";var b=a.i(87924),c=a.i(72131);a.s(["default",0,function(){let[a,d]=(0,c.useState)("login"),[e,f]=(0,c.useState)(""),[g,h]=(0,c.useState)(""),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(!1),m=async b=>{b.preventDefault(),l(!0),j("");try{let b=await fetch("/api/auth/v3",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:a,username:e,password:g})}),c=await b.json();if(c.ok){c.token&&sessionStorage.setItem("anet_v3_auth",JSON.stringify({user:c.user,token:c.token,networks:c.networks||[],currentNetwork:c.network_id||c.networks?.[0]?.network_id||""})),window.location.assign("/");return}j(c.error||"Login failed")}catch{j("Connection failed")}l(!1)};return(0,b.jsxs)("main",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 font-mono flex items-center justify-center relative overflow-hidden",children:[(0,b.jsxs)("div",{className:"absolute inset-0 pointer-events-none",children:[(0,b.jsx)("div",{className:"absolute top-1/4 left-1/2 -translate-x-1/2 w-[600px] h-[600px] rounded-full bg-cyan-500/5 blur-[120px]"}),(0,b.jsx)("div",{className:"absolute bottom-1/4 left-1/3 w-[400px] h-[400px] rounded-full bg-blue-500/5 blur-[100px]"})]}),(0,b.jsxs)("div",{className:"relative w-full max-w-sm mx-4",children:[(0,b.jsxs)("div",{className:"text-center mb-8",children:[(0,b.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-gradient-to-br from-cyan-500/20 to-blue-500/20 border border-cyan-500/20 mb-4",children:(0,b.jsx)("svg",{className:"w-8 h-8 text-cyan-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 6A2.25 2.25 0 016 3.75h2.25A2.25 2.25 0 0110.5 6v2.25a2.25 2.25 0 01-2.25 2.25H6a2.25 2.25 0 01-2.25-2.25V6zM3.75 15.75A2.25 2.25 0 016 13.5h2.25a2.25 2.25 0 012.25 2.25V18a2.25 2.25 0 01-2.25 2.25H6A2.25 2.25 0 013.75 18v-2.25zM13.5 6a2.25 2.25 0 012.25-2.25H18A2.25 2.25 0 0120.25 6v2.25A2.25 2.25 0 0118 10.5h-2.25a2.25 2.25 0 01-2.25-2.25V6zM13.5 15.75a2.25 2.25 0 012.25-2.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-2.25A2.25 2.25 0 0113.5 18v-2.25z"})})}),(0,b.jsx)("h1",{className:"text-2xl font-bold text-white tracking-tight",children:"Agent Network"}),(0,b.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Dashboard"})]}),(0,b.jsx)("div",{className:"flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 mb-4",children:["login","register"].map(c=>(0,b.jsx)("button",{type:"button",onClick:()=>{d(c),j("")},className:`flex-1 rounded-md px-3 py-2 text-sm transition-colors ${a===c?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"login"===c?"Sign in":"Register"},c))}),(0,b.jsxs)("form",{onSubmit:m,className:"border border-[#2a2a4a] bg-[#111128]/80 backdrop-blur-sm rounded-xl p-6 shadow-2xl shadow-black/30",children:[(0,b.jsx)("label",{htmlFor:"username",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Username"}),(0,b.jsx)("input",{id:"username",type:"text",value:e,onChange:a=>f(a.target.value),autoFocus:!0,placeholder:"Enter username",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all mb-4"}),(0,b.jsx)("label",{htmlFor:"password",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Password"}),(0,b.jsx)("input",{id:"password",type:"password",value:g,onChange:a=>h(a.target.value),placeholder:"Enter password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all"}),i&&(0,b.jsx)("div",{className:"mt-3 text-sm text-red-300 bg-red-500/5 border border-red-500/10 rounded-lg px-3 py-2",children:i}),(0,b.jsx)("button",{type:"submit",disabled:k||!g,className:"mt-5 w-full px-4 py-3 bg-gradient-to-r from-cyan-600 to-blue-600 hover:from-cyan-500 hover:to-blue-500 disabled:from-gray-800 disabled:to-gray-800 disabled:text-gray-600 text-white text-sm font-medium rounded-lg transition-all shadow-lg shadow-cyan-500/10 hover:shadow-cyan-500/20 disabled:shadow-none",children:k?"login"===a?"Signing in...":"Registering...":"login"===a?"Sign in":"Create account"})]}),(0,b.jsx)("p",{className:"text-center text-xs text-gray-700 mt-6",children:"Powered by Sleep2AGI"})]})]})}])}];
2
2
 
3
3
  //# sourceMappingURL=app_login_page_tsx_0z71ad3._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../app/login/page.tsx"],"sourcesContent":["'use client';\n\nimport { FormEvent, useState } from 'react';\n\nexport default function LoginPage() {\n const [mode, setMode] = useState<'login' | 'register'>('login');\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n const [error, setError] = useState('');\n const [pending, setPending] = useState(false);\n\n const submit = async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n setPending(true);\n setError('');\n\n try {\n const res = await fetch('/api/auth/v3', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ action: mode, username, password }),\n });\n const data = await res.json();\n\n if (data.ok) {\n // Store V3 auth data for client-side features\n if (data.token) {\n sessionStorage.setItem('anet_v3_auth', JSON.stringify({\n user: data.user,\n token: data.token,\n networks: data.networks || [],\n currentNetwork: data.network_id || data.networks?.[0]?.network_id || '',\n }));\n }\n window.location.assign('/');\n return;\n }\n\n setError(data.error || 'Login failed');\n } catch {\n setError('Connection failed');\n }\n setPending(false);\n };\n\n return (\n <main className=\"min-h-screen bg-[#0a0a1a] text-gray-100 font-mono flex items-center justify-center relative overflow-hidden\">\n <div className=\"absolute inset-0 pointer-events-none\">\n <div className=\"absolute top-1/4 left-1/2 -translate-x-1/2 w-[600px] h-[600px] rounded-full bg-cyan-500/5 blur-[120px]\" />\n <div className=\"absolute bottom-1/4 left-1/3 w-[400px] h-[400px] rounded-full bg-blue-500/5 blur-[100px]\" />\n </div>\n\n <div className=\"relative w-full max-w-sm mx-4\">\n <div className=\"text-center mb-8\">\n <div className=\"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-gradient-to-br from-cyan-500/20 to-blue-500/20 border border-cyan-500/20 mb-4\">\n <svg className=\"w-8 h-8 text-cyan-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={1.5}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M3.75 6A2.25 2.25 0 016 3.75h2.25A2.25 2.25 0 0110.5 6v2.25a2.25 2.25 0 01-2.25 2.25H6a2.25 2.25 0 01-2.25-2.25V6zM3.75 15.75A2.25 2.25 0 016 13.5h2.25a2.25 2.25 0 012.25 2.25V18a2.25 2.25 0 01-2.25 2.25H6A2.25 2.25 0 013.75 18v-2.25zM13.5 6a2.25 2.25 0 012.25-2.25H18A2.25 2.25 0 0120.25 6v2.25A2.25 2.25 0 0118 10.5h-2.25a2.25 2.25 0 01-2.25-2.25V6zM13.5 15.75a2.25 2.25 0 012.25-2.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-2.25A2.25 2.25 0 0113.5 18v-2.25z\" />\n </svg>\n </div>\n <h1 className=\"text-2xl font-bold text-white tracking-tight\">Agent Network</h1>\n <p className=\"text-sm text-gray-500 mt-1\">Dashboard</p>\n </div>\n\n {/* Mode toggle */}\n <div className=\"flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 mb-4\">\n {(['login', 'register'] as const).map(m => (\n <button key={m} type=\"button\" onClick={() => { setMode(m); setError(''); }}\n className={`flex-1 rounded-md px-3 py-2 text-sm transition-colors ${mode === m ? 'bg-cyan-500/10 text-cyan-300' : 'text-gray-500 hover:text-gray-200'}`}>\n {m === 'login' ? 'Sign in' : 'Register'}\n </button>\n ))}\n </div>\n\n <form onSubmit={submit} className=\"border border-[#2a2a4a] bg-[#111128]/80 backdrop-blur-sm rounded-xl p-6 shadow-2xl shadow-black/30\">\n <label htmlFor=\"username\" className=\"block text-xs text-gray-500 mb-2 uppercase tracking-wider\">\n Username\n </label>\n <input id=\"username\" type=\"text\" value={username} onChange={e => setUsername(e.target.value)} autoFocus\n placeholder=\"Enter username\"\n className=\"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all mb-4\" />\n\n <label htmlFor=\"password\" className=\"block text-xs text-gray-500 mb-2 uppercase tracking-wider\">\n Password\n </label>\n <input id=\"password\" type=\"password\" value={password} onChange={e => setPassword(e.target.value)}\n placeholder=\"Enter password\"\n className=\"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all\" />\n\n {error && (\n <div className=\"mt-3 text-sm text-red-300 bg-red-500/5 border border-red-500/10 rounded-lg px-3 py-2\">{error}</div>\n )}\n\n <button type=\"submit\" disabled={pending || !password}\n className=\"mt-5 w-full px-4 py-3 bg-gradient-to-r from-cyan-600 to-blue-600 hover:from-cyan-500 hover:to-blue-500 disabled:from-gray-800 disabled:to-gray-800 disabled:text-gray-600 text-white text-sm font-medium rounded-lg transition-all shadow-lg shadow-cyan-500/10 hover:shadow-cyan-500/20 disabled:shadow-none\">\n {pending ? (mode === 'login' ? 'Signing in...' : 'Registering...') : (mode === 'login' ? 'Sign in' : 'Create account')}\n </button>\n </form>\n\n <p className=\"text-center text-xs text-gray-700 mt-6\">Powered by CommHub V3</p>\n </div>\n </main>\n );\n}\n"],"names":["LoginPage","mode","setMode","username","setUsername","password","setPassword","error","setError","pending","setPending","submit","event","preventDefault","res","fetch","method","headers","body","JSON","stringify","action","data","json","ok","token","sessionStorage","setItem","user","networks","currentNetwork","network_id","window","location","assign","className","fill","viewBox","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","map","m","type","onClick","onSubmit","htmlFor","id","value","onChange","e","target","autoFocus","placeholder","disabled"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../app/login/page.tsx"],"sourcesContent":["'use client';\n\nimport { FormEvent, useState } from 'react';\n\nexport default function LoginPage() {\n const [mode, setMode] = useState<'login' | 'register'>('login');\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n const [error, setError] = useState('');\n const [pending, setPending] = useState(false);\n\n const submit = async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n setPending(true);\n setError('');\n\n try {\n const res = await fetch('/api/auth/v3', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ action: mode, username, password }),\n });\n const data = await res.json();\n\n if (data.ok) {\n // Store V3 auth data for client-side features\n if (data.token) {\n sessionStorage.setItem('anet_v3_auth', JSON.stringify({\n user: data.user,\n token: data.token,\n networks: data.networks || [],\n currentNetwork: data.network_id || data.networks?.[0]?.network_id || '',\n }));\n }\n window.location.assign('/');\n return;\n }\n\n setError(data.error || 'Login failed');\n } catch {\n setError('Connection failed');\n }\n setPending(false);\n };\n\n return (\n <main className=\"min-h-screen bg-[#0a0a1a] text-gray-100 font-mono flex items-center justify-center relative overflow-hidden\">\n <div className=\"absolute inset-0 pointer-events-none\">\n <div className=\"absolute top-1/4 left-1/2 -translate-x-1/2 w-[600px] h-[600px] rounded-full bg-cyan-500/5 blur-[120px]\" />\n <div className=\"absolute bottom-1/4 left-1/3 w-[400px] h-[400px] rounded-full bg-blue-500/5 blur-[100px]\" />\n </div>\n\n <div className=\"relative w-full max-w-sm mx-4\">\n <div className=\"text-center mb-8\">\n <div className=\"inline-flex items-center justify-center w-16 h-16 rounded-2xl bg-gradient-to-br from-cyan-500/20 to-blue-500/20 border border-cyan-500/20 mb-4\">\n <svg className=\"w-8 h-8 text-cyan-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={1.5}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M3.75 6A2.25 2.25 0 016 3.75h2.25A2.25 2.25 0 0110.5 6v2.25a2.25 2.25 0 01-2.25 2.25H6a2.25 2.25 0 01-2.25-2.25V6zM3.75 15.75A2.25 2.25 0 016 13.5h2.25a2.25 2.25 0 012.25 2.25V18a2.25 2.25 0 01-2.25 2.25H6A2.25 2.25 0 013.75 18v-2.25zM13.5 6a2.25 2.25 0 012.25-2.25H18A2.25 2.25 0 0120.25 6v2.25A2.25 2.25 0 0118 10.5h-2.25a2.25 2.25 0 01-2.25-2.25V6zM13.5 15.75a2.25 2.25 0 012.25-2.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-2.25A2.25 2.25 0 0113.5 18v-2.25z\" />\n </svg>\n </div>\n <h1 className=\"text-2xl font-bold text-white tracking-tight\">Agent Network</h1>\n <p className=\"text-sm text-gray-500 mt-1\">Dashboard</p>\n </div>\n\n {/* Mode toggle */}\n <div className=\"flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 mb-4\">\n {(['login', 'register'] as const).map(m => (\n <button key={m} type=\"button\" onClick={() => { setMode(m); setError(''); }}\n className={`flex-1 rounded-md px-3 py-2 text-sm transition-colors ${mode === m ? 'bg-cyan-500/10 text-cyan-300' : 'text-gray-500 hover:text-gray-200'}`}>\n {m === 'login' ? 'Sign in' : 'Register'}\n </button>\n ))}\n </div>\n\n <form onSubmit={submit} className=\"border border-[#2a2a4a] bg-[#111128]/80 backdrop-blur-sm rounded-xl p-6 shadow-2xl shadow-black/30\">\n <label htmlFor=\"username\" className=\"block text-xs text-gray-500 mb-2 uppercase tracking-wider\">\n Username\n </label>\n <input id=\"username\" type=\"text\" value={username} onChange={e => setUsername(e.target.value)} autoFocus\n placeholder=\"Enter username\"\n className=\"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all mb-4\" />\n\n <label htmlFor=\"password\" className=\"block text-xs text-gray-500 mb-2 uppercase tracking-wider\">\n Password\n </label>\n <input id=\"password\" type=\"password\" value={password} onChange={e => setPassword(e.target.value)}\n placeholder=\"Enter password\"\n className=\"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all\" />\n\n {error && (\n <div className=\"mt-3 text-sm text-red-300 bg-red-500/5 border border-red-500/10 rounded-lg px-3 py-2\">{error}</div>\n )}\n\n <button type=\"submit\" disabled={pending || !password}\n className=\"mt-5 w-full px-4 py-3 bg-gradient-to-r from-cyan-600 to-blue-600 hover:from-cyan-500 hover:to-blue-500 disabled:from-gray-800 disabled:to-gray-800 disabled:text-gray-600 text-white text-sm font-medium rounded-lg transition-all shadow-lg shadow-cyan-500/10 hover:shadow-cyan-500/20 disabled:shadow-none\">\n {pending ? (mode === 'login' ? 'Signing in...' : 'Registering...') : (mode === 'login' ? 'Sign in' : 'Create account')}\n </button>\n </form>\n\n <p className=\"text-center text-xs text-gray-700 mt-6\">Powered by Sleep2AGI</p>\n </div>\n </main>\n );\n}\n"],"names":["LoginPage","mode","setMode","username","setUsername","password","setPassword","error","setError","pending","setPending","submit","event","preventDefault","res","fetch","method","headers","body","JSON","stringify","action","data","json","ok","token","sessionStorage","setItem","user","networks","currentNetwork","network_id","window","location","assign","className","fill","viewBox","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","map","m","type","onClick","onSubmit","htmlFor","id","value","onChange","e","target","autoFocus","placeholder","disabled"],"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/w3FFQojHKbi2FsiXfCIUC/_buildManifest.js",
11
- "static/w3FFQojHKbi2FsiXfCIUC/_ssgManifest.js",
12
- "static/w3FFQojHKbi2FsiXfCIUC/_clientMiddlewareManifest.js"
10
+ "static/AWcMCoVhNlS-VbBXMA0tD/_buildManifest.js",
11
+ "static/AWcMCoVhNlS-VbBXMA0tD/_ssgManifest.js",
12
+ "static/AWcMCoVhNlS-VbBXMA0tD/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/0xrnwfefpke-g.js",
@@ -1 +1 @@
1
- self.__NEXT_FONT_MANIFEST="{\n \"app\": {\n \"[project]/app/_not-found/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/admin/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/docs/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/login/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/logs/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/messages/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/node/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/nodes/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/server-logs/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/settings/networks/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/settings/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/settings/tokens/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/tasks/[id]/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/tasks/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ]\n },\n \"appUsingSizeAdjust\": true,\n \"pages\": {},\n \"pagesUsingSizeAdjust\": false\n}"
1
+ self.__NEXT_FONT_MANIFEST="{\n \"app\": {\n \"[project]/app/_not-found/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/admin/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/login/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/logs/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/messages/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/node/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/nodes/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/server-logs/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/settings/networks/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/settings/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/settings/tokens/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/tasks/[id]/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ],\n \"[project]/app/tasks/page\": [\n \"static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\"\n ]\n },\n \"appUsingSizeAdjust\": true,\n \"pages\": {},\n \"pagesUsingSizeAdjust\": false\n}"
@@ -6,9 +6,6 @@
6
6
  "[project]/app/admin/page": [
7
7
  "static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2"
8
8
  ],
9
- "[project]/app/docs/page": [
10
- "static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2"
11
- ],
12
9
  "[project]/app/login/page": [
13
10
  "static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2"
14
11
  ],