@sleep2agi/agent-network-dashboard 0.2.1-preview.1 → 0.2.2-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 (195) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/diagnostics/route-bundle-stats.json +30 -30
  5. package/.next/fallback-build-manifest.json +3 -3
  6. package/.next/server/app/_global-error.html +1 -1
  7. package/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found/page.js +1 -1
  14. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/_not-found.html +7 -2
  17. package/.next/server/app/_not-found.rsc +18 -17
  18. package/.next/server/app/_not-found.segments/_full.segment.rsc +18 -17
  19. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  20. package/.next/server/app/_not-found.segments/_index.segment.rsc +7 -6
  21. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  22. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  23. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  24. package/.next/server/app/admin/page.js +1 -1
  25. package/.next/server/app/admin/page.js.nft.json +1 -1
  26. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/admin.html +7 -2
  28. package/.next/server/app/admin.rsc +22 -21
  29. package/.next/server/app/admin.segments/_full.segment.rsc +22 -21
  30. package/.next/server/app/admin.segments/_head.segment.rsc +4 -4
  31. package/.next/server/app/admin.segments/_index.segment.rsc +7 -6
  32. package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  33. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +4 -4
  34. package/.next/server/app/admin.segments/admin.segment.rsc +3 -3
  35. package/.next/server/app/docs/page.js +1 -1
  36. package/.next/server/app/docs/page.js.nft.json +1 -1
  37. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/docs.html +8 -3
  39. package/.next/server/app/docs.rsc +22 -21
  40. package/.next/server/app/docs.segments/_full.segment.rsc +22 -21
  41. package/.next/server/app/docs.segments/_head.segment.rsc +4 -4
  42. package/.next/server/app/docs.segments/_index.segment.rsc +7 -6
  43. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  44. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +4 -4
  45. package/.next/server/app/docs.segments/docs.segment.rsc +3 -3
  46. package/.next/server/app/index.html +7 -2
  47. package/.next/server/app/index.rsc +20 -19
  48. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  49. package/.next/server/app/index.segments/_full.segment.rsc +20 -19
  50. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  51. package/.next/server/app/index.segments/_index.segment.rsc +7 -6
  52. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  53. package/.next/server/app/login/page.js +1 -1
  54. package/.next/server/app/login/page.js.nft.json +1 -1
  55. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/login.html +6 -1
  57. package/.next/server/app/login.rsc +22 -21
  58. package/.next/server/app/login.segments/_full.segment.rsc +22 -21
  59. package/.next/server/app/login.segments/_head.segment.rsc +4 -4
  60. package/.next/server/app/login.segments/_index.segment.rsc +7 -6
  61. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  62. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  63. package/.next/server/app/login.segments/login.segment.rsc +3 -3
  64. package/.next/server/app/logs/page.js +1 -1
  65. package/.next/server/app/logs/page.js.nft.json +1 -1
  66. package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  67. package/.next/server/app/logs.html +7 -2
  68. package/.next/server/app/logs.rsc +22 -21
  69. package/.next/server/app/logs.segments/_full.segment.rsc +22 -21
  70. package/.next/server/app/logs.segments/_head.segment.rsc +4 -4
  71. package/.next/server/app/logs.segments/_index.segment.rsc +7 -6
  72. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  73. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +4 -4
  74. package/.next/server/app/logs.segments/logs.segment.rsc +3 -3
  75. package/.next/server/app/messages/page.js +1 -1
  76. package/.next/server/app/messages/page.js.nft.json +1 -1
  77. package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
  78. package/.next/server/app/messages.html +7 -2
  79. package/.next/server/app/messages.rsc +22 -21
  80. package/.next/server/app/messages.segments/_full.segment.rsc +22 -21
  81. package/.next/server/app/messages.segments/_head.segment.rsc +4 -4
  82. package/.next/server/app/messages.segments/_index.segment.rsc +7 -6
  83. package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
  84. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +4 -4
  85. package/.next/server/app/messages.segments/messages.segment.rsc +3 -3
  86. package/.next/server/app/node/page.js +1 -1
  87. package/.next/server/app/node/page.js.nft.json +1 -1
  88. package/.next/server/app/node/page_client-reference-manifest.js +1 -1
  89. package/.next/server/app/node.html +7 -2
  90. package/.next/server/app/node.rsc +22 -21
  91. package/.next/server/app/node.segments/_full.segment.rsc +22 -21
  92. package/.next/server/app/node.segments/_head.segment.rsc +4 -4
  93. package/.next/server/app/node.segments/_index.segment.rsc +7 -6
  94. package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
  95. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +4 -4
  96. package/.next/server/app/node.segments/node.segment.rsc +3 -3
  97. package/.next/server/app/nodes/page.js +1 -1
  98. package/.next/server/app/nodes/page.js.nft.json +1 -1
  99. package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
  100. package/.next/server/app/nodes.html +7 -2
  101. package/.next/server/app/nodes.rsc +22 -21
  102. package/.next/server/app/nodes.segments/_full.segment.rsc +22 -21
  103. package/.next/server/app/nodes.segments/_head.segment.rsc +4 -4
  104. package/.next/server/app/nodes.segments/_index.segment.rsc +7 -6
  105. package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
  106. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +4 -4
  107. package/.next/server/app/nodes.segments/nodes.segment.rsc +3 -3
  108. package/.next/server/app/page.js +1 -1
  109. package/.next/server/app/page.js.nft.json +1 -1
  110. package/.next/server/app/page_client-reference-manifest.js +1 -1
  111. package/.next/server/app/server-logs/page.js +1 -1
  112. package/.next/server/app/server-logs/page.js.nft.json +1 -1
  113. package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
  114. package/.next/server/app/server-logs.html +7 -2
  115. package/.next/server/app/server-logs.rsc +22 -21
  116. package/.next/server/app/server-logs.segments/_full.segment.rsc +22 -21
  117. package/.next/server/app/server-logs.segments/_head.segment.rsc +4 -4
  118. package/.next/server/app/server-logs.segments/_index.segment.rsc +7 -6
  119. package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
  120. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +4 -4
  121. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +3 -3
  122. package/.next/server/app/settings/networks/page.js +1 -1
  123. package/.next/server/app/settings/networks/page.js.nft.json +1 -1
  124. package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
  125. package/.next/server/app/settings/networks.html +7 -2
  126. package/.next/server/app/settings/networks.rsc +22 -21
  127. package/.next/server/app/settings/networks.segments/_full.segment.rsc +22 -21
  128. package/.next/server/app/settings/networks.segments/_head.segment.rsc +4 -4
  129. package/.next/server/app/settings/networks.segments/_index.segment.rsc +7 -6
  130. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
  131. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +4 -4
  132. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +3 -3
  133. package/.next/server/app/settings/networks.segments/settings.segment.rsc +3 -3
  134. package/.next/server/app/settings/page.js +1 -1
  135. package/.next/server/app/settings/page.js.nft.json +1 -1
  136. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  137. package/.next/server/app/settings/tokens/page.js +1 -1
  138. package/.next/server/app/settings/tokens/page.js.nft.json +1 -1
  139. package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
  140. package/.next/server/app/settings/tokens.html +7 -2
  141. package/.next/server/app/settings/tokens.rsc +22 -21
  142. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +22 -21
  143. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +4 -4
  144. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +7 -6
  145. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
  146. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +4 -4
  147. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +3 -3
  148. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +3 -3
  149. package/.next/server/app/settings.html +7 -2
  150. package/.next/server/app/settings.rsc +22 -21
  151. package/.next/server/app/settings.segments/_full.segment.rsc +22 -21
  152. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  153. package/.next/server/app/settings.segments/_index.segment.rsc +7 -6
  154. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  155. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  156. package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  157. package/.next/server/app/tasks/[id]/page.js +1 -1
  158. package/.next/server/app/tasks/[id]/page.js.nft.json +1 -1
  159. package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  160. package/.next/server/app/tasks/page.js +1 -1
  161. package/.next/server/app/tasks/page.js.nft.json +1 -1
  162. package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  163. package/.next/server/app/tasks.html +7 -2
  164. package/.next/server/app/tasks.rsc +22 -21
  165. package/.next/server/app/tasks.segments/_full.segment.rsc +22 -21
  166. package/.next/server/app/tasks.segments/_head.segment.rsc +4 -4
  167. package/.next/server/app/tasks.segments/_index.segment.rsc +7 -6
  168. package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
  169. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +4 -4
  170. package/.next/server/app/tasks.segments/tasks.segment.rsc +3 -3
  171. package/.next/server/chunks/ssr/[root-of-the-server]__0i1gizm._.js +9 -0
  172. package/.next/server/chunks/ssr/[root-of-the-server]__0i1gizm._.js.map +1 -0
  173. package/.next/server/chunks/ssr/[root-of-the-server]__0ywihy_._.js +8 -0
  174. package/.next/server/chunks/ssr/[root-of-the-server]__0ywihy_._.js.map +1 -0
  175. package/.next/server/middleware-build-manifest.js +3 -3
  176. package/.next/server/pages/404.html +7 -2
  177. package/.next/server/pages/500.html +1 -1
  178. package/.next/static/chunks/0f7op3pijuqfp.css +2 -0
  179. package/.next/static/chunks/16bfhcp03jjz1.js +7 -0
  180. package/.next/trace +2 -2
  181. package/.next/trace-build +1 -1
  182. package/app/components/Sidebar.tsx +13 -8
  183. package/app/components/ThemeSwitcher.tsx +89 -0
  184. package/app/globals.css +159 -18
  185. package/app/layout.tsx +20 -5
  186. package/package.json +1 -1
  187. package/.next/server/chunks/ssr/[root-of-the-server]__0k9__ar._.js +0 -3
  188. package/.next/server/chunks/ssr/[root-of-the-server]__0k9__ar._.js.map +0 -1
  189. package/.next/server/chunks/ssr/[root-of-the-server]__0zie0wm._.js +0 -9
  190. package/.next/server/chunks/ssr/[root-of-the-server]__0zie0wm._.js.map +0 -1
  191. package/.next/static/chunks/00ajkj4areor0.js +0 -7
  192. package/.next/static/chunks/15bt8hbbo-gw1.css +0 -2
  193. /package/.next/static/{U4yGjxe7O16XnFFqa_0yt → Tf4F3TRpP0nswPPK_Wls7}/_buildManifest.js +0 -0
  194. /package/.next/static/{U4yGjxe7O16XnFFqa_0yt → Tf4F3TRpP0nswPPK_Wls7}/_clientMiddlewareManifest.js +0 -0
  195. /package/.next/static/{U4yGjxe7O16XnFFqa_0yt → Tf4F3TRpP0nswPPK_Wls7}/_ssgManifest.js +0 -0
package/app/globals.css CHANGED
@@ -1,36 +1,119 @@
1
1
  @import "tailwindcss";
2
2
 
3
- :root {
4
- --background: #0a0a1a;
5
- --foreground: #e5e7eb;
3
+ /* ────────────────────────────────────────────────────
4
+ Design tokens — switch via [data-theme="..."] on <html>
5
+ See ThemeProvider for runtime selection.
6
+ ──────────────────────────────────────────────────── */
7
+
8
+ :root,
9
+ [data-theme="cyber"] {
10
+ --bg: #0a0a1a;
11
+ --bg-secondary: #11112a;
12
+ --bg-elevated: #161640;
13
+ --fg: #e5e7eb;
14
+ --fg-muted: #9ca3af;
15
+ --fg-dim: #6b7280;
16
+ --border: #2a2a4a;
17
+ --border-hover: #3a3a5a;
18
+ --accent: #8b5cf6;
19
+ --accent-fg: #ffffff;
20
+ --success: #10b981;
21
+ --warning: #f59e0b;
22
+ --danger: #ef4444;
23
+ --info: #3b82f6;
24
+ --scrollbar: #2a2a4a;
25
+ --scrollbar-hover: #3a3a5a;
26
+ --code-bg: #1a1a3a;
27
+ color-scheme: dark;
28
+ }
29
+
30
+ [data-theme="light"] {
31
+ --bg: #fafafa;
32
+ --bg-secondary: #ffffff;
33
+ --bg-elevated: #f4f4f5;
34
+ --fg: #18181b;
35
+ --fg-muted: #52525b;
36
+ --fg-dim: #a1a1aa;
37
+ --border: #e4e4e7;
38
+ --border-hover: #d4d4d8;
39
+ --accent: #6366f1;
40
+ --accent-fg: #ffffff;
41
+ --success: #059669;
42
+ --warning: #d97706;
43
+ --danger: #dc2626;
44
+ --info: #2563eb;
45
+ --scrollbar: #e4e4e7;
46
+ --scrollbar-hover: #a1a1aa;
47
+ --code-bg: #f4f4f5;
48
+ color-scheme: light;
49
+ }
50
+
51
+ [data-theme="mint"] {
52
+ --bg: #f0fdf4;
53
+ --bg-secondary: #ffffff;
54
+ --bg-elevated: #dcfce7;
55
+ --fg: #052e16;
56
+ --fg-muted: #166534;
57
+ --fg-dim: #4ade80;
58
+ --border: #bbf7d0;
59
+ --border-hover: #86efac;
60
+ --accent: #16a34a;
61
+ --accent-fg: #ffffff;
62
+ --success: #16a34a;
63
+ --warning: #ca8a04;
64
+ --danger: #dc2626;
65
+ --info: #0891b2;
66
+ --scrollbar: #bbf7d0;
67
+ --scrollbar-hover: #86efac;
68
+ --code-bg: #dcfce7;
69
+ color-scheme: light;
70
+ }
71
+
72
+ [data-theme="sunset"] {
73
+ --bg: #1a0f1f;
74
+ --bg-secondary: #2d1633;
75
+ --bg-elevated: #3f1d47;
76
+ --fg: #fde68a;
77
+ --fg-muted: #fbbf24;
78
+ --fg-dim: #b45309;
79
+ --border: #581c87;
80
+ --border-hover: #7e22ce;
81
+ --accent: #f97316;
82
+ --accent-fg: #ffffff;
83
+ --success: #84cc16;
84
+ --warning: #facc15;
85
+ --danger: #f43f5e;
86
+ --info: #ec4899;
87
+ --scrollbar: #581c87;
88
+ --scrollbar-hover: #7e22ce;
89
+ --code-bg: #2d1633;
90
+ color-scheme: dark;
6
91
  }
7
92
 
8
93
  @theme inline {
9
- --color-background: var(--background);
10
- --color-foreground: var(--foreground);
94
+ --color-background: var(--bg);
95
+ --color-foreground: var(--fg);
11
96
  --font-mono: var(--font-geist-mono);
12
97
  }
13
98
 
99
+ html, body {
100
+ background: var(--bg);
101
+ color: var(--fg);
102
+ }
103
+
14
104
  body {
15
- background: var(--background);
16
- color: var(--foreground);
17
105
  font-family: var(--font-mono), ui-monospace, monospace;
106
+ transition: background-color 0.2s ease, color 0.2s ease;
18
107
  }
19
108
 
20
- /* Smooth scrollbar for inbox */
21
- .scrollbar-thin::-webkit-scrollbar {
22
- width: 4px;
23
- }
24
- .scrollbar-thin::-webkit-scrollbar-track {
25
- background: transparent;
26
- }
109
+ /* Smooth scrollbar themed */
110
+ .scrollbar-thin::-webkit-scrollbar { width: 4px; height: 4px; }
111
+ .scrollbar-thin::-webkit-scrollbar-track { background: transparent; }
27
112
  .scrollbar-thin::-webkit-scrollbar-thumb {
28
- background: #2a2a4a;
113
+ background: var(--scrollbar);
29
114
  border-radius: 4px;
30
115
  }
31
- .scrollbar-thin::-webkit-scrollbar-thumb:hover {
32
- background: #3a3a5a;
33
- }
116
+ .scrollbar-thin::-webkit-scrollbar-thumb:hover { background: var(--scrollbar-hover); }
34
117
 
35
118
  /* Fade in animation */
36
119
  @keyframes fade-in {
@@ -54,3 +137,61 @@ body {
54
137
  padding-bottom: env(safe-area-inset-bottom);
55
138
  }
56
139
  }
140
+
141
+ /* ────────────────────────────────────────────────────
142
+ Compatibility shims — gradually replace hard-coded
143
+ #0a0a1a / zinc-9xx / etc. in components with var()
144
+ over time. These rules let the existing components
145
+ pick up the active theme even before they are
146
+ migrated.
147
+ ──────────────────────────────────────────────────── */
148
+
149
+ [data-theme="light"] .bg-\[\#0a0a1a\],
150
+ [data-theme="light"] .bg-\[\#11112a\],
151
+ [data-theme="light"] .bg-\[\#161640\],
152
+ [data-theme="mint"] .bg-\[\#0a0a1a\],
153
+ [data-theme="mint"] .bg-\[\#11112a\],
154
+ [data-theme="mint"] .bg-\[\#161640\] {
155
+ background-color: var(--bg) !important;
156
+ }
157
+
158
+ [data-theme="light"] .text-zinc-100,
159
+ [data-theme="light"] .text-zinc-200,
160
+ [data-theme="light"] .text-white,
161
+ [data-theme="mint"] .text-zinc-100,
162
+ [data-theme="mint"] .text-zinc-200,
163
+ [data-theme="mint"] .text-white {
164
+ color: var(--fg) !important;
165
+ }
166
+
167
+ [data-theme="light"] .text-zinc-400,
168
+ [data-theme="light"] .text-zinc-500,
169
+ [data-theme="mint"] .text-zinc-400,
170
+ [data-theme="mint"] .text-zinc-500 {
171
+ color: var(--fg-muted) !important;
172
+ }
173
+
174
+ [data-theme="light"] .bg-zinc-900,
175
+ [data-theme="light"] .bg-zinc-950,
176
+ [data-theme="light"] .bg-black,
177
+ [data-theme="mint"] .bg-zinc-900,
178
+ [data-theme="mint"] .bg-zinc-950,
179
+ [data-theme="mint"] .bg-black {
180
+ background-color: var(--bg-secondary) !important;
181
+ }
182
+
183
+ [data-theme="light"] .bg-zinc-800,
184
+ [data-theme="mint"] .bg-zinc-800 {
185
+ background-color: var(--bg-elevated) !important;
186
+ }
187
+
188
+ [data-theme="light"] .border-zinc-700,
189
+ [data-theme="light"] .border-zinc-800,
190
+ [data-theme="light"] .border-white\/10,
191
+ [data-theme="light"] .border-white\/5,
192
+ [data-theme="mint"] .border-zinc-700,
193
+ [data-theme="mint"] .border-zinc-800,
194
+ [data-theme="mint"] .border-white\/10,
195
+ [data-theme="mint"] .border-white\/5 {
196
+ border-color: var(--border) !important;
197
+ }
package/app/layout.tsx CHANGED
@@ -3,6 +3,7 @@ import { Geist_Mono } from "next/font/google";
3
3
  import "./globals.css";
4
4
  import { AppShell } from "./components/AppShell";
5
5
  import { NetworkProvider } from "./lib/network-context";
6
+ import { ThemeProvider } from "./components/ThemeSwitcher";
6
7
 
7
8
  const geistMono = Geist_Mono({
8
9
  variable: "--font-geist-mono",
@@ -28,17 +29,31 @@ export const viewport: Viewport = {
28
29
  themeColor: "#0a0a1a",
29
30
  };
30
31
 
32
+ // Inline pre-paint script to apply persisted theme before React hydrates,
33
+ // preventing a white flash on light/mint themes for users who already set it.
34
+ const themeBootScript = `
35
+ try {
36
+ var t = localStorage.getItem('anet-theme') || 'cyber';
37
+ document.documentElement.setAttribute('data-theme', t);
38
+ } catch (e) {}
39
+ `;
40
+
31
41
  export default function RootLayout({
32
42
  children,
33
43
  }: Readonly<{
34
44
  children: React.ReactNode;
35
45
  }>) {
36
46
  return (
37
- <html lang="en" className={`${geistMono.variable} h-full antialiased`}>
38
- <body className="min-h-full bg-[#0a0a1a]">
39
- <NetworkProvider>
40
- <AppShell>{children}</AppShell>
41
- </NetworkProvider>
47
+ <html lang="en" data-theme="cyber" className={`${geistMono.variable} h-full antialiased`}>
48
+ <head>
49
+ <script dangerouslySetInnerHTML={{ __html: themeBootScript }} />
50
+ </head>
51
+ <body className="min-h-full" style={{ background: 'var(--bg)', color: 'var(--fg)' }}>
52
+ <ThemeProvider>
53
+ <NetworkProvider>
54
+ <AppShell>{children}</AppShell>
55
+ </NetworkProvider>
56
+ </ThemeProvider>
42
57
  </body>
43
58
  </html>
44
59
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.2.1-preview.1",
3
+ "version": "0.2.2-preview.0",
4
4
  "description": "Agent Network Dashboard — Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -1,3 +0,0 @@
1
- module.exports=[35214,a=>{a.v({className:"geist_mono_8d43a2aa-module__8Li5zG__className",variable:"geist_mono_8d43a2aa-module__8Li5zG__variable"})},22877,a=>{"use strict";a.s(["AppShell",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/AppShell.tsx <module evaluation>","AppShell")},49817,a=>{"use strict";a.s(["AppShell",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/AppShell.tsx","AppShell")},50286,a=>{"use strict";a.i(22877);var b=a.i(49817);a.n(b)},47730,a=>{"use strict";a.s(["NetworkProvider",()=>c,"useNetworkId",()=>d]);var b=a.i(11857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call NetworkProvider() from the server but NetworkProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/lib/network-context.tsx <module evaluation>","NetworkProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useNetworkId() from the server but useNetworkId is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/lib/network-context.tsx <module evaluation>","useNetworkId")},27862,a=>{"use strict";a.s(["NetworkProvider",()=>c,"useNetworkId",()=>d]);var b=a.i(11857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call NetworkProvider() from the server but NetworkProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/lib/network-context.tsx","NetworkProvider"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call useNetworkId() from the server but useNetworkId is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/lib/network-context.tsx","useNetworkId")},84951,a=>{"use strict";a.i(47730);var b=a.i(27862);a.n(b)},33290,a=>{"use strict";var b=a.i(7997),c=a.i(35214);let d={className:c.default.className,style:{fontFamily:"'Geist Mono', 'Geist Mono Fallback'",fontStyle:"normal"}};null!=c.default.variable&&(d.variable=c.default.variable);var e=a.i(50286),f=a.i(84951);a.s(["default",0,function({children:a}){return(0,b.jsx)("html",{lang:"en",className:`${d.variable} h-full antialiased`,children:(0,b.jsx)("body",{className:"min-h-full bg-[#0a0a1a]",children:(0,b.jsx)(f.NetworkProvider,{children:(0,b.jsx)(e.AppShell,{children:a})})})})},"metadata",0,{title:"Agent Network Dashboard",description:"Real-time monitoring dashboard for Agent Network nodes via CommHub",icons:{icon:"/favicon.svg"},openGraph:{title:"Agent Network Dashboard",description:"Real-time monitoring dashboard for Agent Network nodes",type:"website"}},"viewport",0,{width:"device-width",initialScale:1,maximumScale:1,userScalable:!1,themeColor:"#0a0a1a"}],33290)},70864,a=>{a.n(a.i(33290))}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0k9__ar._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["turbopack:///[next]/internal/font/google/geist_mono_8d43a2aa.module.css [app-rsc] (css module)","../../../../app/components/AppShell.tsx/__nextjs-internal-proxy.mjs","../../../../app/lib/network-context.tsx/__nextjs-internal-proxy.mjs","turbopack:///[next]/internal/font/google/geist_mono_8d43a2aa.js","../../../../app/layout.tsx"],"sourcesContent":["__turbopack_context__.v({\n \"className\": \"geist_mono_8d43a2aa-module__8Li5zG__className\",\n \"variable\": \"geist_mono_8d43a2aa-module__8Li5zG__variable\",\n});\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const AppShell = registerClientReference(\n function() { throw new Error(\"Attempted to call AppShell() from the server but AppShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/app/components/AppShell.tsx\",\n \"AppShell\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const NetworkProvider = registerClientReference(\n function() { throw new Error(\"Attempted to call NetworkProvider() from the server but NetworkProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/app/lib/network-context.tsx\",\n \"NetworkProvider\",\n);\nexport const useNetworkId = registerClientReference(\n function() { throw new Error(\"Attempted to call useNetworkId() from the server but useNetworkId is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/app/lib/network-context.tsx\",\n \"useNetworkId\",\n);\n","import cssModule from \"@vercel/turbopack-next/internal/font/google/cssmodule.module.css?{%22path%22:%22layout.tsx%22,%22import%22:%22Geist_Mono%22,%22arguments%22:[{%22variable%22:%22--font-geist-mono%22,%22subsets%22:[%22latin%22]}],%22variableName%22:%22geistMono%22}\";\nconst fontData = {\n className: cssModule.className,\n style: {\n fontFamily: \"'Geist Mono', 'Geist Mono Fallback'\",\n fontStyle: \"normal\",\n\n },\n};\n\nif (cssModule.variable != null) {\n fontData.variable = cssModule.variable;\n}\n\nexport default fontData;\n","import type { Metadata, Viewport } from \"next\";\nimport { Geist_Mono } from \"next/font/google\";\nimport \"./globals.css\";\nimport { AppShell } from \"./components/AppShell\";\nimport { NetworkProvider } from \"./lib/network-context\";\n\nconst geistMono = Geist_Mono({\n variable: \"--font-geist-mono\",\n subsets: [\"latin\"],\n});\n\nexport const metadata: Metadata = {\n title: \"Agent Network Dashboard\",\n description: \"Real-time monitoring dashboard for Agent Network nodes via CommHub\",\n icons: { icon: '/favicon.svg' },\n openGraph: {\n title: \"Agent Network Dashboard\",\n description: \"Real-time monitoring dashboard for Agent Network nodes\",\n type: \"website\",\n },\n};\n\nexport const viewport: Viewport = {\n width: \"device-width\",\n initialScale: 1,\n maximumScale: 1,\n userScalable: false,\n themeColor: \"#0a0a1a\",\n};\n\nexport default function RootLayout({\n children,\n}: Readonly<{\n children: React.ReactNode;\n}>) {\n return (\n <html lang=\"en\" className={`${geistMono.variable} h-full antialiased`}>\n <body className=\"min-h-full bg-[#0a0a1a]\">\n <NetworkProvider>\n <AppShell>{children}</AppShell>\n </NetworkProvider>\n </body>\n </html>\n );\n}\n"],"names":["AppShell","Error","NetworkProvider","useNetworkId","fontData","className","style","fontFamily","fontStyle","variable"],"mappings":"0BAAA,EAAA,CAAA,CAAA,CACA,UAAA,gDACA,SAAA,8CACA,mDCDO,IAAMA,EAAW,CAAA,EADxB,AACwB,EADxB,CAAA,CAAA,OACwB,uBAAA,AAAuB,EAC3C,WAAa,MAAM,AAAIC,MAAM,8NAAgO,EAC7P,4DACA,4DAHG,IAAMD,EAAW,CAAA,EADxB,AACwB,EADxB,CAAA,CAAA,OACwB,uBAAA,AAAuB,EAC3C,WAAa,MAAUC,AAAJ,MAAU,8NAAgO,EAC7P,wCACA,mJCJJ,IAAA,EAAA,EAAA,CAAA,CAAA,OACO,IAAMC,EAAkB,CAAA,EAAA,EAAA,uBAAA,AAAuB,EAClD,WAAa,MAAM,AAAID,MAAM,4OAA8O,EAC3Q,4DACA,mBAESE,EAAe,CAAA,EAAA,EAAA,uBAAA,AAAuB,EAC/C,WAAa,MAAUF,AAAJ,MAAU,sOAAwO,EACrQ,4DACA,4FATJ,IAAA,EAAA,EAAA,CAAA,CAAA,OACO,IAAMC,EAAkB,CAAA,EAAA,EAAA,uBAAA,AAAuB,EAClD,WAAa,MAAM,AAAID,MAAM,4OAA8O,EAC3Q,wCACA,mBAESE,EAAe,CAAA,EAAA,EAAA,uBAAA,AAAuB,EAC/C,WAAa,MAAUF,AAAJ,MAAU,sOAAwO,EACrQ,wCACA,mHCVJ,EAAA,EAAA,CAAA,CAAA,OACA,IAAMG,EAAW,CACbC,UAAW,EAAA,OAAS,CAACA,SAAS,CAC9BC,MAAO,CACHC,WAAY,sCACZC,UAAW,QAEf,CACJ,CAE0B,MAAM,CAA5B,EAAA,OAAS,CAACC,QAAQ,GAClBL,EAASK,QAAQ,CAAG,EAAA,OAAS,CAACA,QAAAA,AAAQ,ECR1C,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,wBA0Be,SAAS,AAAW,UACjC,CAAQ,CAGR,EACA,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,KAAK,KAAK,UAAW,CAAA,EAAG,ADtBnBL,ECsB6B,QAAQ,CAAC,mBAAmB,CAAC,UACnE,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,mCACd,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,eAAe,CAAA,UACd,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,QAAQ,CAAA,UAAE,SAKrB,eAjCkC,CAChC,MAAO,0BACP,YAAa,qEACb,MAAO,CAAE,KAAM,cAAe,EAC9B,UAAW,CACT,MAAOA,0BACP,YAAa,yDACb,KAAM,SACR,CACF,eAEkC,CAChC,MAAO,eACP,aAAc,EACd,aAAc,EACd,cAAc,EACd,WAAY,SACd","ignoreList":[0,1,2,3]}
@@ -1,9 +0,0 @@
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)}])},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);let h=a=>fetch(a).then(a=>a.ok?a.json():{networks:[]}),i=[{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"}],j={owner:"⭐",admin:"🔧",member:"👤",viewer:"👁"};function k(){let a=(0,c.usePathname)(),[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)(!1),{networkId:o,setNetworkId:p}=(0,g.useNetworkId)(),{data:q}=(0,f.default)("/api/hub/networks",h,{refreshInterval:15e3,dedupingInterval:1e4}),r=q?.networks||[],s=(0,b.jsx)("nav",{className:"flex flex-col gap-1 px-2 py-4",children:i.map(c=>{var e;return(0,b.jsxs)(d.default,{href:c.href,prefetch:!1,onClick:()=>n(!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]"} ${k?"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})}),!k&&(0,b.jsx)("span",{children:c.label})]},c.href)})});return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{onClick:()=>n(!m),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:m?(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"})})}),m&&(0,b.jsx)("div",{className:"fixed inset-0 bg-black/50 z-30 lg:hidden",onClick:()=>n(!1)}),(0,b.jsxs)("aside",{className:`
2
- fixed top-0 left-0 h-full z-40 bg-[#0d0d1a] border-r border-[#2a2a4a]
3
- transition-all duration-200
4
- ${k?"w-16":"w-52"}
5
- ${m?"translate-x-0":"-translate-x-full"}
6
- lg:translate-x-0 lg:static lg:shrink-0
7
- `,children:[(0,b.jsx)("div",{className:`px-4 py-5 border-b border-[#2a2a4a] ${k?"text-center":""}`,children:k?(0,b.jsx)("span",{className:"text-cyan-400 font-bold text-lg",children:"A"}):(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-white font-bold text-sm",children:"Agent Network"}),(0,b.jsx)("div",{className:"text-gray-600 text-xs",children:"Dashboard"})]})}),!k&&r.length>0&&(0,b.jsxs)("div",{className:"px-2 py-3 border-b border-[#2a2a4a]",children:[(0,b.jsx)("div",{className:"px-3 text-[10px] text-gray-600 uppercase mb-2",children:"Networks"}),(0,b.jsx)("div",{className:"space-y-0.5 max-h-32 overflow-y-auto",children:r.map(a=>(0,b.jsxs)("button",{onClick:()=>{p(a.network_id),n(!1)},className:`w-full flex items-center gap-2 px-3 py-1.5 rounded-md text-xs transition-colors text-left ${o===a.network_id?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-300 hover:bg-[#1a1a2a]"}`,children:[(0,b.jsx)("span",{children:j[a.role||"member"]||"👤"}),(0,b.jsx)("span",{className:"truncate",children:a.network_name})]},a.network_id))})]}),(0,b.jsx)("div",{className:"pb-20",children:s}),(0,b.jsxs)("div",{className:"absolute bottom-0 left-0 right-0 border-t border-[#2a2a4a] bg-[#0d0d1a]",children:[!k&&(0,b.jsxs)("button",{onClick:async()=>{await fetch("/api/auth/logout",{method:"POST"}).catch(()=>{}),sessionStorage.removeItem("anet_v3_auth"),window.location.assign("/login")},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",children:[(0,b.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,b.jsx)("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"})}),"Sign out"]}),(0,b.jsx)("button",{onClick:()=>l(!k),className:"hidden lg:flex w-full justify-center py-2 text-gray-600 hover:text-gray-400 transition-colors",children:(0,b.jsx)("svg",{className:`w-4 h-4 transition-transform ${k?"rotate-180":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 19l-7-7 7-7"})})})]})]})]})}let l=["/login"];a.s(["AppShell",0,function({children:a}){let d=(0,c.usePathname)();return l.includes(d)?(0,b.jsx)(b.Fragment,{children:a}):(0,b.jsxs)("div",{className:"flex min-h-screen",children:[(0,b.jsx)(k,{}),(0,b.jsx)("main",{className:"flex-1 min-w-0",children:a})]})}],42588)}];
8
-
9
- //# sourceMappingURL=%5Broot-of-the-server%5D__0zie0wm._.js.map
@@ -1 +0,0 @@
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/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 { 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';\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 <button\n onClick={() => setCollapsed(!collapsed)}\n className=\"hidden lg:flex w-full justify-center py-2 text-gray-600 hover:text-gray-400 transition-colors\"\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 </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","networkFetcher","url","fetch","then","r","ok","json","networks","NAV_ITEMS","href","label","icon","ROLE_ICON","owner","admin","member","viewer","Sidebar","pathname","collapsed","setCollapsed","mobileOpen","setMobileOpen","data","netData","refreshInterval","dedupingInterval","isActive","nav","className","map","item","prefetch","onClick","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,7 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return s},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function o(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function l(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,i(e));else t.set(r,i(n));return t}function s(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},18967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return w},MissingStaticPage:function(){return x},NormalizeError:function(){return v},PageNotFoundError:function(){return b},SP:function(){return g},ST:function(){return m},WEB_VITALS:function(){return o},execOnce:function(){return i},getDisplayName:function(){return f},getLocationOrigin:function(){return u},getURL:function(){return c},isAbsoluteUrl:function(){return s},isResSent:function(){return d},loadGetInitialProps:function(){return p},normalizeRepeatedSlashes:function(){return h},stringifyError:function(){return E}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let l=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>l.test(e);function u(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=u();return e.substring(t.length)}function f(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function h(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function p(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await p(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&d(r))return n;if(!n)throw Object.defineProperty(Error(`"${f(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let g="u">typeof performance,m=g&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class v extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class x extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class w extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function E(e){return JSON.stringify({message:e.message,stack:e.stack})}},33525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},95057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return l},formatWithValidation:function(){return u},urlObjectKeys:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(90809)._(e.r(98183)),i=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:r}=e,n=e.protocol||"",a=e.pathname||"",l=e.hash||"",s=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:r&&(u=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(u+=":"+e.port)),s&&"object"==typeof s&&(s=String(o.urlQueryToSearchParams(s)));let c=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||i.test(n))&&!1!==u?(u="//"+(u||""),a&&"/"!==a[0]&&(a="/"+a)):u||(u=""),l&&"#"!==l[0]&&(l="#"+l),c&&"?"!==c[0]&&(c="?"+c),a=a.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${u}${a}${c}${l}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return l(e)}},77086,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return a}});let n=e.r(71645);function a(e,t){let r=(0,n.useRef)(null),a=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=a.current;t&&(a.current=null,t())}else e&&(r.current=o(e,n)),t&&(a.current=o(t,n))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return o}});let n=e.r(18967),a=e.r(52817);function o(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,a.hasBasePath)(r.pathname)}catch(e){return!1}}},84508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},22016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return y},useLinkStatus:function(){return b}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(90809),i=e.r(18050),l=o._(e.r(71645)),s=e.r(95057),u=e.r(8372),c=e.r(77086),f=e.r(18967),d=e.r(5550);e.r(33525);let h=e.r(88540),p=e.r(91949),g=e.r(73668),m=e.r(9396);function y(t){var r,n;let a,o,y,[b,x]=(0,l.useOptimistic)(p.IDLE_LINK_STATUS),w=(0,l.useRef)(null),{href:E,as:j,children:_,prefetch:k=null,passHref:S,replace:O,shallow:T,scroll:N,onClick:R,onMouseEnter:C,onTouchStart:P,legacyBehavior:M=!1,onNavigate:L,transitionTypes:A,ref:I,unstable_dynamicOnHover:V,...D}=t;a=_,M&&("string"==typeof a||"number"==typeof a)&&(a=(0,i.jsx)("a",{children:a}));let $=l.default.useContext(u.AppRouterContext),F=!1!==k,U=!1!==k?null===(n=k)||"auto"===n?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,W="string"==typeof(r=j||E)?r:(0,s.formatUrl)(r);if(M){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=l.default.Children.only(a)}let z=M?o&&"object"==typeof o&&o.ref:I,B=l.default.useCallback(e=>(null!==$&&(w.current=(0,p.mountLinkInstance)(e,W,$,U,F,x)),()=>{w.current&&((0,p.unmountLinkForCurrentNavigation)(w.current),w.current=null),(0,p.unmountPrefetchableInstance)(e)}),[F,W,$,U,x]),K={ref:(0,c.useMergedRef)(B,z),onClick(t){M||"function"!=typeof R||R(t),M&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!$||t.defaultPrevented||function(t,r,n,a,o,i,s){if("u">typeof window){let u,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((u=t.currentTarget.getAttribute("target"))&&"_self"!==u||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,g.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);l.default.startTransition(()=>{f(r,a?"replace":"push",!1===o?h.ScrollBehavior.NoScroll:h.ScrollBehavior.Default,n.current,s)})}}(t,W,w,O,N,L,A)},onMouseEnter(e){M||"function"!=typeof C||C(e),M&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),$&&F&&(0,p.onNavigationIntent)(e.currentTarget,!0===V)},onTouchStart:function(e){M||"function"!=typeof P||P(e),M&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),$&&F&&(0,p.onNavigationIntent)(e.currentTarget,!0===V)}};return(0,f.isAbsoluteUrl)(W)?K.href=W:M&&!S&&("a"!==o.type||"href"in o.props)||(K.href=(0,d.addBasePath)(W)),y=M?l.default.cloneElement(o,K):(0,i.jsx)("a",{...D,...K,children:a}),(0,i.jsx)(v.Provider,{value:b,children:y})}e.r(84508);let v=(0,l.createContext)(p.IDLE_LINK_STATUS),b=()=>(0,l.useContext)(v);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},58963,e=>{"use strict";var t=e.i(18050),r=e.i(71645);let n=(0,r.createContext)({networkId:"",setNetworkId:()=>{}});e.s(["NetworkProvider",0,function({children:e}){let[a,o]=(0,r.useState)("");return(0,r.useEffect)(()=>{let e=sessionStorage.getItem("anet_network_id");e&&o(e)},[]),(0,t.jsx)(n.Provider,{value:{networkId:a,setNetworkId:e=>{o(e),sessionStorage.setItem("anet_network_id",e)}},children:e})},"useNetworkId",0,function(){return(0,r.useContext)(n)}])},55838,(e,t,r)=>{"use strict";var n=e.r(71645),a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=n.useState,i=n.useEffect,l=n.useLayoutEffect,s=n.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!a(e,r)}catch(e){return!0}}var c="u"<typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),n=o({inst:{value:r,getSnapshot:t}}),a=n[0].inst,c=n[1];return l(function(){a.value=r,a.getSnapshot=t,u(a)&&c({inst:a})},[e,r,t]),i(function(){return u(a)&&c({inst:a}),e(function(){u(a)&&c({inst:a})})},[e]),s(r),r};r.useSyncExternalStore=void 0!==n.useSyncExternalStore?n.useSyncExternalStore:c},2239,(e,t,r)=>{"use strict";t.exports=e.r(55838)},83599,71235,e=>{"use strict";var t=e.i(71645),r=e.i(2239);e.s(["ERROR_REVALIDATE_EVENT",0,3,"FOCUS_EVENT",0,0,"MUTATE_EVENT",0,2,"RECONNECT_EVENT",0,1],11671);var n=Object.prototype.hasOwnProperty;let a=new WeakMap,o=()=>{},i=o(),l=Object,s=e=>e===i,u=(e,t)=>({...e,...t}),c={},f={},d="undefined",h=typeof window!=d,p=typeof document!=d,g=h&&"Deno"in window,m=(e,t)=>{let r=a.get(e);return[()=>!s(t)&&e.get(t)||c,n=>{if(!s(t)){let a=e.get(t);t in f||(f[t]=a),r[5](t,u(a,n),a||c)}},r[6],()=>!s(t)&&t in f?f[t]:!s(t)&&e.get(t)||c]},y=!0,[v,b]=h&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[o,o],x={initFocus:e=>(p&&document.addEventListener("visibilitychange",e),v("focus",e),()=>{p&&document.removeEventListener("visibilitychange",e),b("focus",e)}),initReconnect:e=>{let t=()=>{y=!0,e()},r=()=>{y=!1};return v("online",t),v("offline",r),()=>{b("online",t),b("offline",r)}}},w=!t.default.useId,E=!h||g,j=E?t.useEffect:t.useLayoutEffect,_="u">typeof navigator&&navigator.connection,k=!E&&_&&(["slow-2g","2g"].includes(_.effectiveType)||_.saveData),S=new WeakMap,O=(e,t)=>e===`[object ${t}]`,T=0,N=e=>{let t,r,n=typeof e,a=l.prototype.toString.call(e),o=O(a,"Date"),i=O(a,"RegExp"),u=O(a,"Object");if(l(e)!==e||o||i)t=o?e.toJSON():"symbol"==n?e.toString():"string"==n?JSON.stringify(e):""+e;else{if(t=S.get(e))return t;if(t=++T+"~",S.set(e,t),Array.isArray(e)){for(r=0,t="@";r<e.length;r++)t+=N(e[r])+",";S.set(e,t)}if(u){t="#";let n=l.keys(e).sort();for(;!s(r=n.pop());)s(e[r])||(t+=r+":"+N(e[r])+",");S.set(e,t)}}return t},R=e=>{if("function"==typeof e)try{e=e()}catch(t){e=""}let t=e;return[e="string"==typeof e?e:(Array.isArray(e)?e.length:e)?N(e):"",t]},C=0,P=()=>++C;async function M(...e){let[t,r,n,o]=e,l=u({populateCache:!0,throwOnError:!0},"boolean"==typeof o?{revalidate:o}:o||{}),c=l.populateCache,f=l.rollbackOnError,d=l.optimisticData,h=l.throwOnError;if("function"==typeof r){let e=[];for(let n of t.keys())!/^\$(inf|sub)\$/.test(n)&&r(t.get(n)._k)&&e.push(n);return Promise.all(e.map(p))}return p(r);async function p(r){let o,[u]=R(r);if(!u)return;let[p,g]=m(t,u),[y,v,b,x]=a.get(t),w=()=>{let e=y[u];return("function"==typeof l.revalidate?l.revalidate(p().data,r):!1!==l.revalidate)&&(delete b[u],delete x[u],e&&e[0])?e[0](2).then(()=>p().data):p().data};if(e.length<3)return w();let E=n,j=!1,_=P();v[u]=[_,0];let k=!s(d),S=p(),O=S.data,T=S._c,N=s(T)?O:T;if(k&&g({data:d="function"==typeof d?d(N,O):d,_c:N}),"function"==typeof E)try{E=E(N)}catch(e){o=e,j=!0}if(E&&"function"==typeof E.then){let e;if(E=await E.catch(e=>{o=e,j=!0}),_!==v[u][0]){if(j)throw o;return E}j&&k&&(e=o,"function"==typeof f?f(e):!1!==f)&&(c=!0,g({data:N,_c:i}))}if(c&&!j&&("function"==typeof c?g({data:c(E,N),error:i,_c:i}):g({data:E,error:i,_c:i})),v[u][1]=P(),Promise.resolve(w()).then(()=>{g({_c:i})}),j){if(h)throw o;return}return E}}let L=(e,t)=>{for(let r in e)e[r][0]&&e[r][0](t)},A=(e,t)=>{if(!a.has(e)){let r=u(x,t),n=Object.create(null),l=M.bind(i,e),s=o,c=Object.create(null),f=(e,t)=>{let r=c[e]||[];return c[e]=r,r.push(t),()=>r.splice(r.indexOf(t),1)},d=(t,r,n)=>{e.set(t,r);let a=c[t];if(a)for(let e of a)e(r,n)},h=()=>{if(!a.has(e)&&(a.set(e,[n,Object.create(null),Object.create(null),Object.create(null),l,d,f]),!E)){let t=r.initFocus(setTimeout.bind(i,L.bind(i,n,0))),o=r.initReconnect(setTimeout.bind(i,L.bind(i,n,1)));s=()=>{t&&t(),o&&o(),a.delete(e)}}};return h(),[e,l,h,s]}return[e,a.get(e)[4]]},[I,V]=A(new Map),D=u({onLoadingSlow:o,onSuccess:o,onError:o,onErrorRetry:(e,t,r,n,a)=>{let o=r.errorRetryCount,i=a.retryCount,l=~~((Math.random()+.5)*(1<<(i<8?i:8)))*r.errorRetryInterval;(s(o)||!(i>o))&&setTimeout(n,l,a)},onDiscarded:o,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:k?1e4:5e3,focusThrottleInterval:5e3,dedupingInterval:2e3,loadingTimeout:k?5e3:3e3,compare:function e(t,r){var a,o;if(t===r)return!0;if(t&&r&&(a=t.constructor)===r.constructor){if(a===Date)return t.getTime()===r.getTime();if(a===RegExp)return t.toString()===r.toString();if(a===Array){if((o=t.length)===r.length)for(;o--&&e(t[o],r[o]););return -1===o}if(!a||"object"==typeof t){for(a in o=0,t)if(n.call(t,a)&&++o&&!n.call(r,a)||!(a in r)||!e(t[a],r[a]))return!1;return Object.keys(r).length===o}}return t!=t&&r!=r},isPaused:()=>!1,cache:I,mutate:V,fallback:{}},{isOnline:()=>y,isVisible:()=>{let e=p&&document.visibilityState;return s(e)||"hidden"!==e}}),$=(e,t)=>{let r=u(e,t);if(t){let{use:n,fallback:a}=e,{use:o,fallback:i}=t;n&&o&&(r.use=n.concat(o)),a&&i&&(r.fallback=u(a,i))}return r},F=(0,t.createContext)({});var U=e.i(11671);let W=h&&window.__SWR_DEVTOOLS_USE__,z=W?window.__SWR_DEVTOOLS_USE__:[],B=()=>{let e=(0,t.useContext)(F);return(0,t.useMemo)(()=>u(D,e),[e])},K=z.concat(e=>(t,r,n)=>{let o=r&&((...e)=>{let[n]=R(t),[,,,o]=a.get(I);if(n.startsWith("$inf$"))return r(...e);let i=o[n];return s(i)?r(...e):(delete o[n],i)});return e(t,o,n)}),H=e=>function(...t){let r,n=B(),[a,o,i]="function"==typeof(r=t)[1]?[r[0],r[1],r[2]||{}]:[r[0],null,(null===r[1]?r[2]:r[1])||{}],l=$(n,i),s=e,{use:u}=l,c=(u||[]).concat(K);for(let e=c.length;e--;)s=c[e](s);return s(a,o||l.fetcher||null,l)},q=(e,t,r)=>{let n=t[e]||(t[e]=[]);return n.push(r),()=>{let e=n.indexOf(r);e>=0&&(n[e]=n[n.length-1],n.pop())}};W&&(window.__SWR_DEVTOOLS_REACT__=t.default),e.s(["subscribeCallback",0,q,"useSWRConfig",0,B,"withArgs",0,H],71235);let J=()=>{},Q=J(),X=(new WeakMap,t.default.use||(e=>{switch(e.status){case"pending":throw e;case"fulfilled":return e.value;case"rejected":throw e.reason;default:throw e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e}})),Z={dedupe:!0},G=Promise.resolve(i),Y=()=>o;l.defineProperty(e=>{let{value:r}=e,n=(0,t.useContext)(F),a="function"==typeof r,o=(0,t.useMemo)(()=>a?r(n):r,[a,n,r]),l=(0,t.useMemo)(()=>a?o:$(n,o),[a,n,o]),s=o&&o.provider,c=(0,t.useRef)(i);s&&!c.current&&(c.current=A(s(l.cache||I),o));let f=c.current;return f&&(l.cache=f[0],l.mutate=f[1]),j(()=>{if(f)return f[2]&&f[2](),f[3]},[]),(0,t.createElement)(F.Provider,u(e,{value:l}))},"defaultValue",{value:D});let ee=H((e,n,o)=>{let{cache:l,compare:c,suspense:f,fallbackData:p,revalidateOnMount:g,revalidateIfStale:y,refreshInterval:v,refreshWhenHidden:b,refreshWhenOffline:x,keepPreviousData:_,strictServerPrefetchWarning:k}=o,[S,O,T,N]=a.get(l),[C,L]=R(e),A=(0,t.useRef)(!1),I=(0,t.useRef)(!1),V=(0,t.useRef)(C),D=(0,t.useRef)(n),$=(0,t.useRef)(o),F=()=>$.current.isVisible()&&$.current.isOnline(),[W,z,B,K]=m(l,C),H=(0,t.useRef)({}).current,J=s(p)?s(o.fallback)?i:o.fallback[C]:p,Q=(e,t)=>{for(let r in H)if("data"===r){if(!c(e[r],t[r])&&(!s(e[r])||!c(es,t[r])))return!1}else if(t[r]!==e[r])return!1;return!0},ee=!A.current,et=(0,t.useMemo)(()=>{let e=W(),t=K(),r=e=>{let t=u(e);return(delete t._k,(()=>{if(!C||!n||$.current.isPaused())return!1;if(ee&&!s(g))return g;let e=s(J)?t.data:J;return s(e)||y})())?{isValidating:!0,isLoading:!0,...t}:t},a=r(e),o=e===t?a:r(t),i=a;return[()=>{let e=r(W());return Q(e,i)?(i.data=e.data,i.isLoading=e.isLoading,i.isValidating=e.isValidating,i.error=e.error,i):(i=e,e)},()=>o]},[l,C]),er=(0,r.useSyncExternalStore)((0,t.useCallback)(e=>B(C,(t,r)=>{Q(r,t)||e()}),[l,C]),et[0],et[1]),en=S[C]&&S[C].length>0,ea=er.data,eo=s(ea)?J&&"function"==typeof J.then?X(J):J:ea,ei=er.error,el=(0,t.useRef)(eo),es=_?s(ea)?s(el.current)?eo:el.current:ea:eo,eu=C&&s(eo),ec=(0,t.useRef)(null);E||(0,r.useSyncExternalStore)(Y,()=>(ec.current=!1,ec),()=>(ec.current=!0,ec));let ef=ec.current;k&&ef&&!f&&eu&&console.warn(`Missing pre-initiated data for serialized key "${C}" during server-side rendering. Data fetching should be initiated on the server and provided to SWR via fallback data. You can set "strictServerPrefetchWarning: false" to disable this warning.`);let ed=!(!C||!n||$.current.isPaused())&&(!en||!!s(ei))&&(ee&&!s(g)?g:f?!s(eo)&&y:s(eo)||y),eh=ee&&ed,ep=s(er.isValidating)?eh:er.isValidating,eg=s(er.isLoading)?eh:er.isLoading,em=(0,t.useCallback)(async e=>{let t,r,n=D.current;if(!C||!n||I.current||$.current.isPaused())return!1;let a=!0,l=e||{},u=!T[C]||!l.dedupe,f=()=>w?!I.current&&C===V.current&&A.current:C===V.current,d={isValidating:!1,isLoading:!1},h=()=>{z(d)},p=()=>{let e=T[C];e&&e[1]===r&&delete T[C]},g={isValidating:!0};s(W().data)&&(g.isLoading=!0);try{if(u&&(z(g),o.loadingTimeout&&s(W().data)&&setTimeout(()=>{a&&f()&&$.current.onLoadingSlow(C,o)},o.loadingTimeout),T[C]=[n(L),P()]),[t,r]=T[C],t=await t,u&&setTimeout(p,o.dedupingInterval),!T[C]||T[C][1]!==r)return u&&f()&&$.current.onDiscarded(C),!1;d.error=i;let e=O[C];if(!s(e)&&(r<=e[0]||r<=e[1]||0===e[1]))return h(),u&&f()&&$.current.onDiscarded(C),!1;let l=W().data;d.data=c(l,t)?l:t,u&&f()&&$.current.onSuccess(t,C,o)}catch(r){p();let e=$.current,{shouldRetryOnError:t}=e;!e.isPaused()&&(d.error=r,u&&f())&&(e.onError(r,C,e),(!0===t||"function"==typeof t&&t(r))&&(!$.current.revalidateOnFocus||!$.current.revalidateOnReconnect||F())&&e.onErrorRetry(r,C,e,e=>{let t=S[C];t&&t[0]&&t[0](U.ERROR_REVALIDATE_EVENT,e)},{retryCount:(l.retryCount||0)+1,dedupe:!0}))}return a=!1,h(),!0},[C,l]),ey=(0,t.useCallback)((...e)=>M(l,V.current,...e),[]);if(j(()=>{D.current=n,$.current=o,s(ea)||(el.current=ea)}),j(()=>{if(!C)return;let e=em.bind(i,Z),t=0;$.current.revalidateOnFocus&&(t=Date.now()+$.current.focusThrottleInterval);let r=q(C,S,(r,n={})=>{if(r==U.FOCUS_EVENT){let r=Date.now();$.current.revalidateOnFocus&&r>t&&F()&&(t=r+$.current.focusThrottleInterval,e())}else if(r==U.RECONNECT_EVENT)$.current.revalidateOnReconnect&&F()&&e();else if(r==U.MUTATE_EVENT)return em();else if(r==U.ERROR_REVALIDATE_EVENT)return em(n)});if(I.current=!1,V.current=C,A.current=!0,z({_k:L}),ed&&!T[C])if(s(eo)||E)e();else h&&typeof window.requestAnimationFrame!=d?window.requestAnimationFrame(e):setTimeout(e,1);return()=>{I.current=!0,r()}},[C]),j(()=>{let e;function t(){let t="function"==typeof v?v(W().data):v;t&&-1!==e&&(e=setTimeout(r,t))}function r(){!W().error&&(b||$.current.isVisible())&&(x||$.current.isOnline())?em(Z).then(t):t()}return t(),()=>{e&&(clearTimeout(e),e=-1)}},[v,b,x,C]),(0,t.useDebugValue)(es),f){if(!w&&E&&eu)throw Error("Fallback data is required when using Suspense in SSR.");eu&&(D.current=n,$.current=o,I.current=!1);let e=N[C];if(X(!s(e)&&eu?ey(e):G),!s(ei)&&eu)throw ei;let t=eu?em(Z):G;!s(es)&&eu&&(t.status="fulfilled",t.value=!0),X(t)}return{mutate:ey,get data(){return H.data=!0,es},get error(){return H.error=!0,ei},get isValidating(){return H.isValidating=!0,ep},get isLoading(){return H.isLoading=!0,eg}}});e.s(["default",0,ee],83599)},18566,(e,t,r)=>{t.exports=e.r(76562)},25045,e=>{"use strict";var t=e.i(18050),r=e.i(18566),n=e.i(22016),a=e.i(71645),o=e.i(83599),i=e.i(58963);let l=e=>fetch(e).then(e=>e.ok?e.json():{networks:[]}),s=[{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"}],u={owner:"⭐",admin:"🔧",member:"👤",viewer:"👁"};function c(){let e=(0,r.usePathname)(),[c,f]=(0,a.useState)(!1),[d,h]=(0,a.useState)(!1),{networkId:p,setNetworkId:g}=(0,i.useNetworkId)(),{data:m}=(0,o.default)("/api/hub/networks",l,{refreshInterval:15e3,dedupingInterval:1e4}),y=m?.networks||[],v=(0,t.jsx)("nav",{className:"flex flex-col gap-1 px-2 py-4",children:s.map(r=>{var a;return(0,t.jsxs)(n.default,{href:r.href,prefetch:!1,onClick:()=>h(!1),className:`flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] ${("/"===(a=r.href)?"/"===e:"/settings"===a?"/settings"===e:e.startsWith(a))?"bg-cyan-500/10 text-cyan-300 border border-cyan-500/20":"text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a]"} ${c?"justify-center":""}`,children:[(0,t.jsx)("svg",{className:"w-5 h-5 shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:r.icon})}),!c&&(0,t.jsx)("span",{children:r.label})]},r.href)})});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:()=>h(!d),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,t.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:d?(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"}):(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 6h16M4 12h16M4 18h16"})})}),d&&(0,t.jsx)("div",{className:"fixed inset-0 bg-black/50 z-30 lg:hidden",onClick:()=>h(!1)}),(0,t.jsxs)("aside",{className:`
2
- fixed top-0 left-0 h-full z-40 bg-[#0d0d1a] border-r border-[#2a2a4a]
3
- transition-all duration-200
4
- ${c?"w-16":"w-52"}
5
- ${d?"translate-x-0":"-translate-x-full"}
6
- lg:translate-x-0 lg:static lg:shrink-0
7
- `,children:[(0,t.jsx)("div",{className:`px-4 py-5 border-b border-[#2a2a4a] ${c?"text-center":""}`,children:c?(0,t.jsx)("span",{className:"text-cyan-400 font-bold text-lg",children:"A"}):(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-white font-bold text-sm",children:"Agent Network"}),(0,t.jsx)("div",{className:"text-gray-600 text-xs",children:"Dashboard"})]})}),!c&&y.length>0&&(0,t.jsxs)("div",{className:"px-2 py-3 border-b border-[#2a2a4a]",children:[(0,t.jsx)("div",{className:"px-3 text-[10px] text-gray-600 uppercase mb-2",children:"Networks"}),(0,t.jsx)("div",{className:"space-y-0.5 max-h-32 overflow-y-auto",children:y.map(e=>(0,t.jsxs)("button",{onClick:()=>{g(e.network_id),h(!1)},className:`w-full flex items-center gap-2 px-3 py-1.5 rounded-md text-xs transition-colors text-left ${p===e.network_id?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-300 hover:bg-[#1a1a2a]"}`,children:[(0,t.jsx)("span",{children:u[e.role||"member"]||"👤"}),(0,t.jsx)("span",{className:"truncate",children:e.network_name})]},e.network_id))})]}),(0,t.jsx)("div",{className:"pb-20",children:v}),(0,t.jsxs)("div",{className:"absolute bottom-0 left-0 right-0 border-t border-[#2a2a4a] bg-[#0d0d1a]",children:[!c&&(0,t.jsxs)("button",{onClick:async()=>{await fetch("/api/auth/logout",{method:"POST"}).catch(()=>{}),sessionStorage.removeItem("anet_v3_auth"),window.location.assign("/login")},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",children:[(0,t.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,t.jsx)("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"})}),"Sign out"]}),(0,t.jsx)("button",{onClick:()=>f(!c),className:"hidden lg:flex w-full justify-center py-2 text-gray-600 hover:text-gray-400 transition-colors",children:(0,t.jsx)("svg",{className:`w-4 h-4 transition-transform ${c?"rotate-180":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 19l-7-7 7-7"})})})]})]})]})}let f=["/login"];e.s(["AppShell",0,function({children:e}){let n=(0,r.usePathname)();return f.includes(n)?(0,t.jsx)(t.Fragment,{children:e}):(0,t.jsxs)("div",{className:"flex min-h-screen",children:[(0,t.jsx)(c,{}),(0,t.jsx)("main",{className:"flex-1 min-w-0",children:e})]})}],25045)}]);