@sleep2agi/agent-network-dashboard 0.1.0-preview.7 → 0.1.0-preview.9

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 (325) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +6 -6
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/diagnostics/route-bundle-stats.json +90 -87
  5. package/.next/fallback-build-manifest.json +3 -3
  6. package/.next/server/app/_global-error/page/build-manifest.json +3 -3
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +8 -8
  10. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +8 -8
  12. package/.next/server/app/_global-error.segments/_head.segment.rsc +4 -4
  13. package/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page/build-manifest.json +3 -3
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/_not-found.html +2 -2
  18. package/.next/server/app/_not-found.rsc +11 -11
  19. package/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
  20. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  21. package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
  22. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  23. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  24. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  25. package/.next/server/app/admin/page/build-manifest.json +3 -3
  26. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/admin.html +2 -2
  28. package/.next/server/app/admin.rsc +13 -13
  29. package/.next/server/app/admin.segments/_full.segment.rsc +13 -13
  30. package/.next/server/app/admin.segments/_head.segment.rsc +4 -4
  31. package/.next/server/app/admin.segments/_index.segment.rsc +6 -6
  32. package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  33. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +4 -4
  34. package/.next/server/app/admin.segments/admin.segment.rsc +3 -3
  35. package/.next/server/app/api/anet/config/route.js +2 -2
  36. package/.next/server/app/api/anet/config/route.js.nft.json +1 -1
  37. package/.next/server/app/api/auth/login/route.js +2 -2
  38. package/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  39. package/.next/server/app/api/auth/logout/route.js +2 -2
  40. package/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  41. package/.next/server/app/api/auth/v3/route.js +2 -2
  42. package/.next/server/app/api/auth/v3/route.js.nft.json +1 -1
  43. package/.next/server/app/api/hub/audit-log/route.js +2 -2
  44. package/.next/server/app/api/hub/audit-log/route.js.nft.json +1 -1
  45. package/.next/server/app/api/hub/auth/route.js +2 -2
  46. package/.next/server/app/api/hub/auth/route.js.nft.json +1 -1
  47. package/.next/server/app/api/hub/broadcast/route.js +2 -2
  48. package/.next/server/app/api/hub/broadcast/route.js.nft.json +1 -1
  49. package/.next/server/app/api/hub/events/route.js +2 -2
  50. package/.next/server/app/api/hub/events/route.js.nft.json +1 -1
  51. package/.next/server/app/api/hub/health/route.js +2 -2
  52. package/.next/server/app/api/hub/health/route.js.nft.json +1 -1
  53. package/.next/server/app/api/hub/inbox/route.js +2 -2
  54. package/.next/server/app/api/hub/inbox/route.js.nft.json +1 -1
  55. package/.next/server/app/api/hub/license/route.js +2 -2
  56. package/.next/server/app/api/hub/license/route.js.nft.json +1 -1
  57. package/.next/server/app/api/hub/messages/route.js +2 -2
  58. package/.next/server/app/api/hub/messages/route.js.nft.json +1 -1
  59. package/.next/server/app/api/hub/networks/route.js +2 -2
  60. package/.next/server/app/api/hub/networks/route.js.nft.json +1 -1
  61. package/.next/server/app/api/hub/nodes/route.js +2 -2
  62. package/.next/server/app/api/hub/nodes/route.js.nft.json +1 -1
  63. package/.next/server/app/api/hub/register/route.js +2 -2
  64. package/.next/server/app/api/hub/register/route.js.nft.json +1 -1
  65. package/.next/server/app/api/hub/send/route.js +2 -2
  66. package/.next/server/app/api/hub/send/route.js.nft.json +1 -1
  67. package/.next/server/app/api/hub/session/route.js +2 -2
  68. package/.next/server/app/api/hub/session/route.js.nft.json +1 -1
  69. package/.next/server/app/api/hub/stats/route.js +2 -2
  70. package/.next/server/app/api/hub/stats/route.js.nft.json +1 -1
  71. package/.next/server/app/api/hub/status/route.js +2 -2
  72. package/.next/server/app/api/hub/status/route.js.nft.json +1 -1
  73. package/.next/server/app/api/hub/task-events/route.js +2 -2
  74. package/.next/server/app/api/hub/task-events/route.js.nft.json +1 -1
  75. package/.next/server/app/api/hub/tasks/route.js +2 -2
  76. package/.next/server/app/api/hub/tasks/route.js.nft.json +1 -1
  77. package/.next/server/app/api/hub/tmux/route.js +2 -2
  78. package/.next/server/app/api/hub/tmux/route.js.nft.json +1 -1
  79. package/.next/server/app/api/hub/tokens/route.js +2 -2
  80. package/.next/server/app/api/hub/tokens/route.js.nft.json +1 -1
  81. package/.next/server/app/docs/page/build-manifest.json +3 -3
  82. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/docs.html +2 -2
  84. package/.next/server/app/docs.rsc +13 -13
  85. package/.next/server/app/docs.segments/_full.segment.rsc +13 -13
  86. package/.next/server/app/docs.segments/_head.segment.rsc +4 -4
  87. package/.next/server/app/docs.segments/_index.segment.rsc +6 -6
  88. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  89. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +4 -4
  90. package/.next/server/app/docs.segments/docs.segment.rsc +3 -3
  91. package/.next/server/app/index.html +2 -2
  92. package/.next/server/app/index.rsc +13 -13
  93. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  94. package/.next/server/app/index.segments/_full.segment.rsc +13 -13
  95. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  96. package/.next/server/app/index.segments/_index.segment.rsc +6 -6
  97. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  98. package/.next/server/app/login/page/build-manifest.json +3 -3
  99. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  100. package/.next/server/app/login.html +1 -1
  101. package/.next/server/app/login.rsc +13 -13
  102. package/.next/server/app/login.segments/_full.segment.rsc +13 -13
  103. package/.next/server/app/login.segments/_head.segment.rsc +4 -4
  104. package/.next/server/app/login.segments/_index.segment.rsc +6 -6
  105. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  106. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  107. package/.next/server/app/login.segments/login.segment.rsc +3 -3
  108. package/.next/server/app/logs/page/build-manifest.json +3 -3
  109. package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  110. package/.next/server/app/logs.html +2 -2
  111. package/.next/server/app/logs.rsc +13 -13
  112. package/.next/server/app/logs.segments/_full.segment.rsc +13 -13
  113. package/.next/server/app/logs.segments/_head.segment.rsc +4 -4
  114. package/.next/server/app/logs.segments/_index.segment.rsc +6 -6
  115. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  116. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +4 -4
  117. package/.next/server/app/logs.segments/logs.segment.rsc +3 -3
  118. package/.next/server/app/messages/page/build-manifest.json +3 -3
  119. package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
  120. package/.next/server/app/messages.html +2 -2
  121. package/.next/server/app/messages.rsc +13 -13
  122. package/.next/server/app/messages.segments/_full.segment.rsc +13 -13
  123. package/.next/server/app/messages.segments/_head.segment.rsc +4 -4
  124. package/.next/server/app/messages.segments/_index.segment.rsc +6 -6
  125. package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
  126. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +4 -4
  127. package/.next/server/app/messages.segments/messages.segment.rsc +3 -3
  128. package/.next/server/app/node/page/build-manifest.json +3 -3
  129. package/.next/server/app/node/page.js.nft.json +1 -1
  130. package/.next/server/app/node/page_client-reference-manifest.js +1 -1
  131. package/.next/server/app/node.html +2 -2
  132. package/.next/server/app/node.rsc +13 -13
  133. package/.next/server/app/node.segments/_full.segment.rsc +13 -13
  134. package/.next/server/app/node.segments/_head.segment.rsc +4 -4
  135. package/.next/server/app/node.segments/_index.segment.rsc +6 -6
  136. package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
  137. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +4 -4
  138. package/.next/server/app/node.segments/node.segment.rsc +3 -3
  139. package/.next/server/app/nodes/page/build-manifest.json +3 -3
  140. package/.next/server/app/nodes/page.js.nft.json +1 -1
  141. package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
  142. package/.next/server/app/nodes.html +2 -2
  143. package/.next/server/app/nodes.rsc +13 -13
  144. package/.next/server/app/nodes.segments/_full.segment.rsc +13 -13
  145. package/.next/server/app/nodes.segments/_head.segment.rsc +4 -4
  146. package/.next/server/app/nodes.segments/_index.segment.rsc +6 -6
  147. package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
  148. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +4 -4
  149. package/.next/server/app/nodes.segments/nodes.segment.rsc +3 -3
  150. package/.next/server/app/page/build-manifest.json +3 -3
  151. package/.next/server/app/page.js.nft.json +1 -1
  152. package/.next/server/app/page_client-reference-manifest.js +1 -1
  153. package/.next/server/app/settings/networks/page/build-manifest.json +3 -3
  154. package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
  155. package/.next/server/app/settings/networks.html +2 -2
  156. package/.next/server/app/settings/networks.rsc +13 -13
  157. package/.next/server/app/settings/networks.segments/_full.segment.rsc +13 -13
  158. package/.next/server/app/settings/networks.segments/_head.segment.rsc +4 -4
  159. package/.next/server/app/settings/networks.segments/_index.segment.rsc +6 -6
  160. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
  161. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +4 -4
  162. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +3 -3
  163. package/.next/server/app/settings/networks.segments/settings.segment.rsc +3 -3
  164. package/.next/server/app/settings/page/build-manifest.json +3 -3
  165. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  166. package/.next/server/app/settings/tokens/page/build-manifest.json +3 -3
  167. package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
  168. package/.next/server/app/settings/tokens.html +2 -2
  169. package/.next/server/app/settings/tokens.rsc +13 -13
  170. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +13 -13
  171. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +4 -4
  172. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +6 -6
  173. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
  174. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +4 -4
  175. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +3 -3
  176. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +3 -3
  177. package/.next/server/app/settings.html +2 -2
  178. package/.next/server/app/settings.rsc +13 -13
  179. package/.next/server/app/settings.segments/_full.segment.rsc +13 -13
  180. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  181. package/.next/server/app/settings.segments/_index.segment.rsc +6 -6
  182. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  183. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  184. package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  185. package/.next/server/app/tasks/[id]/page/build-manifest.json +3 -3
  186. package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  187. package/.next/server/app/tasks/page/build-manifest.json +3 -3
  188. package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  189. package/.next/server/app/tasks.html +2 -2
  190. package/.next/server/app/tasks.rsc +13 -13
  191. package/.next/server/app/tasks.segments/_full.segment.rsc +13 -13
  192. package/.next/server/app/tasks.segments/_head.segment.rsc +4 -4
  193. package/.next/server/app/tasks.segments/_index.segment.rsc +6 -6
  194. package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
  195. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +4 -4
  196. package/.next/server/app/tasks.segments/tasks.segment.rsc +3 -3
  197. package/.next/server/chunks/[root-of-the-server]__0.r9hpx._.js +3 -0
  198. package/.next/server/chunks/{[root-of-the-server]__0sywwd7._.js.map → [root-of-the-server]__0.r9hpx._.js.map} +1 -1
  199. package/.next/server/chunks/[root-of-the-server]__0.~awwb._.js +3 -0
  200. package/.next/server/chunks/{[root-of-the-server]__02up7n2._.js.map → [root-of-the-server]__0.~awwb._.js.map} +1 -1
  201. package/.next/server/chunks/[root-of-the-server]__011ghni._.js +3 -0
  202. package/.next/server/chunks/{[root-of-the-server]__0mmo75i._.js.map → [root-of-the-server]__011ghni._.js.map} +1 -1
  203. package/.next/server/chunks/[root-of-the-server]__0_roltz._.js +3 -0
  204. package/.next/server/chunks/{[root-of-the-server]__05uypa~._.js.map → [root-of-the-server]__0_roltz._.js.map} +1 -1
  205. package/.next/server/chunks/[root-of-the-server]__0ak3zmb._.js +3 -0
  206. package/.next/server/chunks/{[root-of-the-server]__0u9ppm.._.js.map → [root-of-the-server]__0ak3zmb._.js.map} +1 -1
  207. package/.next/server/chunks/[root-of-the-server]__0c0_p0v._.js +3 -0
  208. package/.next/server/chunks/{[root-of-the-server]__0uxkj4r._.js.map → [root-of-the-server]__0c0_p0v._.js.map} +1 -1
  209. package/.next/server/chunks/[root-of-the-server]__0c5h0a~._.js +3 -0
  210. package/.next/server/chunks/{[root-of-the-server]__0hz-gqk._.js.map → [root-of-the-server]__0c5h0a~._.js.map} +1 -1
  211. package/.next/server/chunks/[root-of-the-server]__0cfodg2._.js +3 -0
  212. package/.next/server/chunks/{[root-of-the-server]__0nb8029._.js.map → [root-of-the-server]__0cfodg2._.js.map} +1 -1
  213. package/.next/server/chunks/[root-of-the-server]__0fo7jlh._.js +3 -0
  214. package/.next/server/chunks/{[root-of-the-server]__0m77953._.js.map → [root-of-the-server]__0fo7jlh._.js.map} +1 -1
  215. package/.next/server/chunks/[root-of-the-server]__0hj~i84._.js +3 -0
  216. package/.next/server/chunks/{[root-of-the-server]__0nl3akl._.js.map → [root-of-the-server]__0hj~i84._.js.map} +1 -1
  217. package/.next/server/chunks/[root-of-the-server]__0hxwf9u._.js +3 -0
  218. package/.next/server/chunks/{[root-of-the-server]__13e9ex0._.js.map → [root-of-the-server]__0hxwf9u._.js.map} +1 -1
  219. package/.next/server/chunks/[root-of-the-server]__0k.vegl._.js +3 -0
  220. package/.next/server/chunks/{[root-of-the-server]__0g16ayc._.js.map → [root-of-the-server]__0k.vegl._.js.map} +1 -1
  221. package/.next/server/chunks/[root-of-the-server]__0k3eytp._.js +3 -0
  222. package/.next/server/chunks/{[root-of-the-server]__0q86a80._.js.map → [root-of-the-server]__0k3eytp._.js.map} +1 -1
  223. package/.next/server/chunks/[root-of-the-server]__0khwewd._.js +3 -0
  224. package/.next/server/chunks/{[root-of-the-server]__12s1q1.._.js.map → [root-of-the-server]__0khwewd._.js.map} +1 -1
  225. package/.next/server/chunks/[root-of-the-server]__0ku8l.~._.js +3 -0
  226. package/.next/server/chunks/{[root-of-the-server]__0344fys._.js.map → [root-of-the-server]__0ku8l.~._.js.map} +1 -1
  227. package/.next/server/chunks/[root-of-the-server]__0kx9lo1._.js +3 -0
  228. package/.next/server/chunks/{[root-of-the-server]__0o1z0_7._.js.map → [root-of-the-server]__0kx9lo1._.js.map} +1 -1
  229. package/.next/server/chunks/[root-of-the-server]__0lu__6g._.js +3 -0
  230. package/.next/server/chunks/{[root-of-the-server]__0150zad._.js.map → [root-of-the-server]__0lu__6g._.js.map} +1 -1
  231. package/.next/server/chunks/[root-of-the-server]__0nsfjkb._.js +3 -0
  232. package/.next/server/chunks/{[root-of-the-server]__0swcbs5._.js.map → [root-of-the-server]__0nsfjkb._.js.map} +1 -1
  233. package/.next/server/chunks/[root-of-the-server]__0p3fo6l._.js +1 -1
  234. package/.next/server/chunks/[root-of-the-server]__0t0.lss._.js +3 -0
  235. package/.next/server/chunks/{[root-of-the-server]__09dhh_t._.js.map → [root-of-the-server]__0t0.lss._.js.map} +1 -1
  236. package/.next/server/chunks/[root-of-the-server]__0wpe~w2._.js +3 -0
  237. package/.next/server/chunks/{[root-of-the-server]__09kj7n.._.js.map → [root-of-the-server]__0wpe~w2._.js.map} +1 -1
  238. package/.next/server/chunks/[root-of-the-server]__0x.-194._.js +3 -0
  239. package/.next/server/chunks/{[root-of-the-server]__11aui~e._.js.map → [root-of-the-server]__0x.-194._.js.map} +1 -1
  240. package/.next/server/chunks/[root-of-the-server]__10ducxb._.js +3 -0
  241. package/.next/server/chunks/{[root-of-the-server]__10439sp._.js.map → [root-of-the-server]__10ducxb._.js.map} +1 -1
  242. package/.next/server/chunks/[root-of-the-server]__10~rj8b._.js +3 -0
  243. package/.next/server/chunks/{[root-of-the-server]__0w~31ff._.js.map → [root-of-the-server]__10~rj8b._.js.map} +1 -1
  244. package/.next/server/chunks/[root-of-the-server]__114809t._.js +3 -0
  245. package/.next/server/chunks/{[root-of-the-server]__0uf_olq._.js.map → [root-of-the-server]__114809t._.js.map} +1 -1
  246. package/.next/server/chunks/[root-of-the-server]__11yl3c.._.js +3 -0
  247. package/.next/server/chunks/{[root-of-the-server]__090uiv5._.js.map → [root-of-the-server]__11yl3c.._.js.map} +1 -1
  248. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0yubv2d.js +1 -1
  249. package/.next/server/chunks/ssr/[root-of-the-server]__093ymui._.js +3 -0
  250. package/.next/server/chunks/ssr/[root-of-the-server]__093ymui._.js.map +1 -0
  251. package/.next/server/chunks/ssr/[root-of-the-server]__0nrckjd._.js +3 -0
  252. package/.next/server/chunks/ssr/[root-of-the-server]__0nrckjd._.js.map +1 -0
  253. package/.next/server/chunks/ssr/[root-of-the-server]__0xm3h9x._.js +3 -0
  254. package/.next/server/chunks/ssr/[root-of-the-server]__0xm3h9x._.js.map +1 -0
  255. package/.next/server/chunks/ssr/[root-of-the-server]__0~yad5w._.js +3 -0
  256. package/.next/server/chunks/ssr/[root-of-the-server]__0~yad5w._.js.map +1 -0
  257. package/.next/server/middleware-build-manifest.js +6 -6
  258. package/.next/server/pages/404.html +2 -2
  259. package/.next/server/pages/500.html +1 -1
  260. package/.next/static/chunks/00uwfd~z5dh.b.js +1 -0
  261. package/.next/static/chunks/{0io~i_rk3k9q3.js → 060yf6n1jdcri.js} +1 -1
  262. package/.next/static/chunks/{01bx19dpl~r6u.js → 063eleenll4ri.js} +1 -1
  263. package/.next/static/chunks/{0fpff4dxg3a5x.js → 08aj9~75raaah.js} +1 -1
  264. package/.next/static/chunks/{0xqtq9944k~ek.js → 08v0-ki6vwpxf.js} +1 -1
  265. package/.next/static/chunks/{0tb-yun7e_n3c.js → 09al3qm76q7nd.js} +1 -1
  266. package/.next/static/chunks/{12t1c0u8~txfo.js → 0afxijuigt-49.js} +1 -1
  267. package/.next/static/chunks/0dkkv90do9a4r.js +1 -0
  268. package/.next/static/chunks/{024co7ns8w7ms.js → 0ejz4zwhu3a3y.js} +1 -1
  269. package/.next/static/chunks/{0ql1nb6991-hi.js → 0h4x8zbbd__pl.js} +1 -1
  270. package/.next/static/chunks/{02w9ytw8eey3r.js → 0krweyme4bfjm.js} +1 -1
  271. package/.next/static/chunks/0ogeals5ufhho.js +1 -0
  272. package/.next/static/chunks/{15-ywchriw.vi.js → 0u359llqm1_01.js} +1 -1
  273. package/.next/static/chunks/{0~sxxils~iff..js → 0ugk4jd4e7oft.js} +1 -1
  274. package/.next/static/chunks/{0w.7_h6kx__bg.js → 0uqfv6rc-xdru.js} +1 -1
  275. package/.next/static/chunks/{11f7871-m2pu4.js → 0vlojka~d~9h4.js} +1 -1
  276. package/.next/static/chunks/0xakhywf66-mg.js +1 -0
  277. package/.next/static/chunks/0xenn83e6rq1m.css +2 -0
  278. package/.next/static/chunks/{0w5hxo645~s.g.js → 0xrnwfefpke-g.js} +2 -2
  279. package/.next/static/chunks/{0s4w.hhez3.xx.js → 14bsg3_-taiw4.js} +1 -1
  280. package/.next/static/chunks/{turbopack-0zklppa1rg.u8.js → turbopack-0vsvjs02l449s.js} +1 -1
  281. package/.next/trace +2 -2
  282. package/.next/trace-build +1 -1
  283. package/app/api/hub/tasks/route.ts +2 -0
  284. package/app/components/TaskChatPanel.tsx +48 -22
  285. package/package.json +3 -1
  286. package/.next/server/chunks/[root-of-the-server]__0150zad._.js +0 -3
  287. package/.next/server/chunks/[root-of-the-server]__02up7n2._.js +0 -3
  288. package/.next/server/chunks/[root-of-the-server]__0344fys._.js +0 -3
  289. package/.next/server/chunks/[root-of-the-server]__05uypa~._.js +0 -3
  290. package/.next/server/chunks/[root-of-the-server]__090uiv5._.js +0 -3
  291. package/.next/server/chunks/[root-of-the-server]__09dhh_t._.js +0 -3
  292. package/.next/server/chunks/[root-of-the-server]__09kj7n.._.js +0 -3
  293. package/.next/server/chunks/[root-of-the-server]__0g16ayc._.js +0 -3
  294. package/.next/server/chunks/[root-of-the-server]__0hz-gqk._.js +0 -3
  295. package/.next/server/chunks/[root-of-the-server]__0m77953._.js +0 -3
  296. package/.next/server/chunks/[root-of-the-server]__0mmo75i._.js +0 -3
  297. package/.next/server/chunks/[root-of-the-server]__0nb8029._.js +0 -3
  298. package/.next/server/chunks/[root-of-the-server]__0nl3akl._.js +0 -3
  299. package/.next/server/chunks/[root-of-the-server]__0o1z0_7._.js +0 -3
  300. package/.next/server/chunks/[root-of-the-server]__0q86a80._.js +0 -3
  301. package/.next/server/chunks/[root-of-the-server]__0swcbs5._.js +0 -3
  302. package/.next/server/chunks/[root-of-the-server]__0sywwd7._.js +0 -3
  303. package/.next/server/chunks/[root-of-the-server]__0u9ppm.._.js +0 -3
  304. package/.next/server/chunks/[root-of-the-server]__0uf_olq._.js +0 -3
  305. package/.next/server/chunks/[root-of-the-server]__0uxkj4r._.js +0 -3
  306. package/.next/server/chunks/[root-of-the-server]__0w~31ff._.js +0 -3
  307. package/.next/server/chunks/[root-of-the-server]__10439sp._.js +0 -3
  308. package/.next/server/chunks/[root-of-the-server]__11aui~e._.js +0 -3
  309. package/.next/server/chunks/[root-of-the-server]__12s1q1.._.js +0 -3
  310. package/.next/server/chunks/[root-of-the-server]__13e9ex0._.js +0 -3
  311. package/.next/server/chunks/ssr/_0s2kgzl._.js +0 -3
  312. package/.next/server/chunks/ssr/_0s2kgzl._.js.map +0 -1
  313. package/.next/server/chunks/ssr/app_05bbp~.._.js +0 -3
  314. package/.next/server/chunks/ssr/app_05bbp~.._.js.map +0 -1
  315. package/.next/server/chunks/ssr/app_0d3prqs._.js +0 -3
  316. package/.next/server/chunks/ssr/app_0d3prqs._.js.map +0 -1
  317. package/.next/server/chunks/ssr/app_0p9bx.i._.js +0 -3
  318. package/.next/server/chunks/ssr/app_0p9bx.i._.js.map +0 -1
  319. package/.next/static/chunks/06f76ht~w6c6c.js +0 -1
  320. package/.next/static/chunks/0_qu9.8wo.eq1.css +0 -2
  321. package/.next/static/chunks/0g5j6.4xxjqd3.js +0 -1
  322. package/.next/static/chunks/15cp_p75shcm9.js +0 -1
  323. /package/.next/static/{2rqnf6RwG7ululyvXyiP5 → E8R10krmbjKv-G9MRFxJD}/_buildManifest.js +0 -0
  324. /package/.next/static/{2rqnf6RwG7ululyvXyiP5 → E8R10krmbjKv-G9MRFxJD}/_clientMiddlewareManifest.js +0 -0
  325. /package/.next/static/{2rqnf6RwG7ululyvXyiP5 → E8R10krmbjKv-G9MRFxJD}/_ssgManifest.js +0 -0
@@ -1,3 +0,0 @@
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"))},71647,e=>{"use strict";var t=e.i(282);function r(){return process.env.COMMHUB_URL||"http://47.77.216.1:9200"}async function a(e,a){let n=`${r()}${e}`,s=process.env.COMMHUB_AUTH_TOKEN||"",i={},o=a?.headers;if(!o?.Authorization){try{let e=await (0,t.getV3UserToken)();e&&(i={Authorization:`Bearer ${e}`})}catch{}!i.Authorization&&s&&(i={Authorization:`Bearer ${s}`})}return fetch(n,{...a,headers:{...i,...a?.headers},next:{revalidate:0}})}r(),e.s(["hubFetch",0,a])},1494,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),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),x=e.i(26937),v=e.i(10372),R=e.i(93695);e.i(20232);var f=e.i(220),g=e.i(282),w=e.i(71647);async function m(){let e=await (0,g.requireDashboardAuth)();if(e)return e;try{let e=await (0,w.hubFetch)("/health"),t=await e.json();return Response.json(t)}catch(e){return Response.json({error:"CommHub unreachable",detail:e instanceof Error?e.message:String(e)},{status:502})}}e.s(["GET",0,m],84796);var E=e.i(84796);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/hub/health/route",pathname:"/api/hub/health",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/hub/health/route.ts",nextConfigOutput:"",userland:E,...{}}),{workAsyncStorage:y,workUnitAsyncStorage:b,serverHooks:A}=C;async function T(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),C.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/hub/health/route";g=g.replace(/\/index$/,"")||"/";let w=await C.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:m,params:E,nextConfig:y,parsedUrl:b,isDraftMode:A,prerenderManifest:T,routerServerContext:N,isOnDemandRevalidate:q,revalidateOnlyGenerated:_,resolvedPathname:O,clientReferenceManifest:P,serverActionsManifest:S}=w,k=(0,o.normalizeAppPath)(g),H=!!(T.dynamicRoutes[k]||T.routes[O]),U=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,b,!1):t.end("This page could not be found"),null);if(H&&!A){let e=!!T.routes[O],t=T.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await U();throw new R.NoFallbackError}}let j=null;!H||C.isDev||A||(j="/index"===(j=O)?"/":j);let M=!0===C.isDev||!H,I=H&&!M;S&&P&&(0,i.setManifestsSingleton)({page:g,clientReferenceManifest:P,serverActionsManifest:S});let D=e.method||"GET",$=(0,s.getTracer)(),B=$.getActiveScopeSpan(),F=!!(null==N?void 0:N.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),L=(0,n.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,y,T,K);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let z={params:E,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:M,incrementalCache:L,cacheLifeProfiles:y.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>C.onRequestError(e,t,a,n,N)},sharedContext:{buildId:m}},G=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>C.handle(W,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.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=`${D} ${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(`${D} ${g}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!K&&q&&_&&!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=z.renderOpts.fetchMetrics;let o=z.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=z.renderOpts.collectedTags;if(!H)return await (0,c.sendResponse)(G,V,s,z.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[v.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:f.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 C.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:q})},!1,N),t}},u=await C.handleResponse({req:e,nextConfig:y,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:q,revalidateOnlyGenerated:_,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!H)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",q?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&H||d.delete(v.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,x.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(G,V,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};F&&B?await o(B):(n=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${D} ${g}`,kind:s.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},o),void 0,!F))}catch(t){if(t instanceof R.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:q})},!1,N),H)throw t;return await (0,c.sendResponse)(G,V,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:b})},"routeModule",0,C,"serverHooks",0,A,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,b],1494)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0sywwd7._.js.map
@@ -1,3 +0,0 @@
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"))},71647,e=>{"use strict";var t=e.i(282);function r(){return process.env.COMMHUB_URL||"http://47.77.216.1:9200"}async function a(e,a){let n=`${r()}${e}`,s=process.env.COMMHUB_AUTH_TOKEN||"",i={},o=a?.headers;if(!o?.Authorization){try{let e=await (0,t.getV3UserToken)();e&&(i={Authorization:`Bearer ${e}`})}catch{}!i.Authorization&&s&&(i={Authorization:`Bearer ${s}`})}return fetch(n,{...a,headers:{...i,...a?.headers},next:{revalidate:0}})}r(),e.s(["hubFetch",0,a])},46343,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),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),x=e.i(26937),R=e.i(10372),v=e.i(93695);e.i(20232);var f=e.i(220),g=e.i(282),m=e.i(71647);async function w(e){let t=await (0,g.requireDashboardAuth)();if(t)return t;let{searchParams:r}=new URL(e.url),a=r.get("name")||"",n=r.get("lines")||"30";if(!a)return Response.json({error:"name required"},{status:400});try{let e=await (0,m.hubFetch)(`/api/tmux/${encodeURIComponent(a)}?lines=${n}`),t=e.headers.get("content-type")||"";if(e.ok&&t.includes("application/json"))return Response.json(await e.json());return Response.json({ok:!1,error:`tmux capture failed (${e.status})`})}catch(e){return Response.json({error:"failed",detail:e instanceof Error?e.message:String(e)},{status:502})}}e.s(["GET",0,w],20656);var E=e.i(20656);let y=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/hub/tmux/route",pathname:"/api/hub/tmux",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/hub/tmux/route.ts",nextConfigOutput:"",userland:E,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:A,serverHooks:b}=y;async function T(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),y.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/hub/tmux/route";g=g.replace(/\/index$/,"")||"/";let m=await y.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!m)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:C,parsedUrl:A,isDraftMode:b,prerenderManifest:T,routerServerContext:q,isOnDemandRevalidate:N,revalidateOnlyGenerated:_,resolvedPathname:k,clientReferenceManifest:O,serverActionsManifest:P}=m,j=(0,o.normalizeAppPath)(g),S=!!(T.dynamicRoutes[j]||T.routes[k]),U=async()=>((null==q?void 0:q.render404)?await q.render404(e,t,A,!1):t.end("This page could not be found"),null);if(S&&!b){let e=!!T.routes[k],t=T.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await U();throw new v.NoFallbackError}}let H=null;!S||y.isDev||b||(H="/index"===(H=k)?"/":H);let M=!0===y.isDev||!S,I=S&&!M;P&&O&&(0,i.setManifestsSingleton)({page:g,clientReferenceManifest:O,serverActionsManifest:P});let $=e.method||"GET",D=(0,s.getTracer)(),B=D.getActiveScopeSpan(),F=!!(null==q?void 0:q.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),L=(0,n.getRequestMeta)(e,"incrementalCache")||await y.getIncrementalCache(e,C,T,K);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let z={params:E,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:M,incrementalCache:L,cacheLifeProfiles:C.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>y.onRequestError(e,t,a,n,q)},sharedContext:{buildId:w}},G=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>y.handle(W,z).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")!==d.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(`${$} ${g}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!K&&N&&_&&!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=z.renderOpts.fetchMetrics;let o=z.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=z.renderOpts.collectedTags;if(!S)return await (0,c.sendResponse)(G,V,s,z.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[R.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:f.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:g,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:N})},!1,q),t}},u=await y.handleResponse({req:e,nextConfig:C,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:_,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!S)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==f.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&S||d.delete(R.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,x.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(G,V,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};F&&B?await o(B):(n=D.getActiveScopeSpan(),await D.withPropagatedContext(e.headers,()=>D.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${g}`,kind:s.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!F))}catch(t){if(t instanceof v.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:N})},!1,q),S)throw t;return await (0,c.sendResponse)(G,V,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:A})},"routeModule",0,y,"serverHooks",0,b,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,A],46343)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0u9ppm.._.js.map
@@ -1,3 +0,0 @@
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"))},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(26937),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://47.77.216.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")||"";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),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 l=await fetch(`${f}/api/completions?limit=${a}`,{headers:await _(),next:{revalidate:0}}),d=((await l.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&&(d=[]),i&&(d=d.filter(e=>e.from_name.includes(i))),o&&(d=d.filter(e=>e.to_name.includes(o))),Response.json({ok:!0,tasks:d,count:d.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:N,serverActionsManifest:P}=f,q=(0,o.normalizeAppPath)(v),O=!!(b.dynamicRoutes[q]||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[q];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;P&&N&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:N,serverActionsManifest:P});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:q,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
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0uf_olq._.js.map
@@ -1,3 +0,0 @@
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"))},71647,e=>{"use strict";var t=e.i(282);function r(){return process.env.COMMHUB_URL||"http://47.77.216.1:9200"}async function a(e,a){let n=`${r()}${e}`,o=process.env.COMMHUB_AUTH_TOKEN||"",s={},i=a?.headers;if(!i?.Authorization){try{let e=await (0,t.getV3UserToken)();e&&(s={Authorization:`Bearer ${e}`})}catch{}!s.Authorization&&o&&(s={Authorization:`Bearer ${o}`})}return fetch(n,{...a,headers:{...s,...a?.headers},next:{revalidate:0}})}r(),e.s(["hubFetch",0,a])},15768,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),n=e.i(59756),o=e.i(61916),s=e.i(74677),i=e.i(69741),l=e.i(16795),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),v=e.i(26937),x=e.i(10372),R=e.i(93695);e.i(20232);var w=e.i(220),g=e.i(89171),f=e.i(282),m=e.i(71647);async function k(e){try{let{action:t,username:r,password:a}=await e.json();if(!t||!a)return Response.json({error:"username and password required"},{status:400});let n="register"===t?"/api/auth/register":"login"===t?"/api/auth/login":null;if(!n)return Response.json({error:"invalid action"},{status:400});let o=await (0,m.hubFetch)(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:r,password:a})}),s=await o.json();if(!s.ok||!s.token&&!s.network_token)return Response.json({ok:!1,error:s.error||"auth failed"},{status:401});let i=s.token||s.network_token,l=[],u=s.network_id||null;if(s.token)try{let e=await (0,m.hubFetch)("/api/auth/me",{headers:{Authorization:`Bearer ${s.token}`}}),t=e.headers.get("content-type")||"";if(e.ok&&t.includes("application/json")){let t=await e.json();l=t.networks||[],u=t.current_network?.network_id||t.networks?.[0]?.network_id||u}}catch{}let d=g.NextResponse.json({ok:!0,user:s.user,token:s.token,network_token:s.network_token||null,network_id:u,networks:l}),p=e.headers.get("x-forwarded-proto")||new URL(e.url).protocol.replace(":","");return d.cookies.set(f.DASHBOARD_SESSION_COOKIE,`v3:${i}`,{httpOnly:!0,secure:"https"===p&&"1"!==process.env.COOKIE_INSECURE,sameSite:"lax",path:"/",maxAge:86400}),d}catch(e){return Response.json({error:"CommHub unreachable",detail:e instanceof Error?e.message:String(e)},{status:502})}}e.s(["POST",0,k],50381);var E=e.i(50381);let y=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/auth/v3/route",pathname:"/api/auth/v3",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/auth/v3/route.ts",nextConfigOutput:"",userland:E,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:A,serverHooks:_}=y;async function b(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),y.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/auth/v3/route";g=g.replace(/\/index$/,"")||"/";let f=await y.prepare(e,t,{srcPage:g,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:k,nextConfig:E,parsedUrl:C,isDraftMode:A,prerenderManifest:_,routerServerContext:b,isOnDemandRevalidate:O,revalidateOnlyGenerated:S,resolvedPathname:T,clientReferenceManifest:N,serverActionsManifest:j}=f,P=(0,i.normalizeAppPath)(g),q=!!(_.dynamicRoutes[P]||_.routes[T]),U=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,C,!1):t.end("This page could not be found"),null);if(q&&!A){let e=!!_.routes[T],t=_.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await U();throw new R.NoFallbackError}}let H=null;!q||y.isDev||A||(H="/index"===(H=T)?"/":H);let I=!0===y.isDev||!q,M=q&&!I;j&&N&&(0,s.setManifestsSingleton)({page:g,clientReferenceManifest:N,serverActionsManifest:j});let D=e.method||"GET",$=(0,o.getTracer)(),B=$.getActiveScopeSpan(),F=!!(null==b?void 0:b.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),L=(0,n.getRequestMeta)(e,"incrementalCache")||await y.getIncrementalCache(e,E,_,K);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let z={params:k,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:I,incrementalCache:L,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,b)},sharedContext:{buildId:m}},V=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(V,(0,u.signalFromNodeResponse)(t));try{let n,s=async e=>y.handle(W,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.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=`${D} ${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(`${D} ${g}`)}),i=async n=>{var o,i;let l=async({previousCacheEntry:r})=>{try{if(!K&&O&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(n);e.fetchMetrics=z.renderOpts.fetchMetrics;let i=z.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let l=z.renderOpts.collectedTags;if(!q)return await (0,c.sendResponse)(V,G,o,z.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[x.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:o.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:g,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,b),t}},u=await y.handleResponse({req:e,nextConfig:E,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:S,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!q)return null;if((null==u||null==(o=u.value)?void 0:o.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(i=u.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&q||d.delete(x.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,v.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(V,G,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};F&&B?await i(B):(n=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${D} ${g}`,kind:o.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},i),void 0,!F))}catch(t){if(t instanceof R.NoFallbackError||await y.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,b),q)throw t;return await (0,c.sendResponse)(V,G,new Response(null,{status:500})),null}}e.s(["handler",0,b,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:A})},"routeModule",0,y,"serverHooks",0,_,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,A],15768)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0uxkj4r._.js.map
@@ -1,3 +0,0 @@
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"))},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(26937),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:_,serverActionsManifest:k}=f,q=(0,i.normalizeAppPath)(w),j=!!(b.dynamicRoutes[q]||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[q];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;k&&_&&(0,o.setManifestsSingleton)({page:w,clientReferenceManifest:_,serverActionsManifest:k});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:q,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
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0w~31ff._.js.map
@@ -1,3 +0,0 @@
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"))},71647,e=>{"use strict";var t=e.i(282);function r(){return process.env.COMMHUB_URL||"http://47.77.216.1:9200"}async function a(e,a){let n=`${r()}${e}`,s=process.env.COMMHUB_AUTH_TOKEN||"",i={},o=a?.headers;if(!o?.Authorization){try{let e=await (0,t.getV3UserToken)();e&&(i={Authorization:`Bearer ${e}`})}catch{}!i.Authorization&&s&&(i={Authorization:`Bearer ${s}`})}return fetch(n,{...a,headers:{...i,...a?.headers},next:{revalidate:0}})}r(),e.s(["hubFetch",0,a])},69566,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),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),x=e.i(26937),v=e.i(10372),R=e.i(93695);e.i(20232);var g=e.i(220),f=e.i(282),m=e.i(71647);async function w(e){let t=await (0,f.requireDashboardAuth)();if(t)return t;let{searchParams:r}=new URL(e.url),a=r.get("alias");if(!a)return Response.json({error:"alias required"},{status:400});try{let e=await (0,m.hubFetch)("/api/status"),t=((await e.json()).sessions||[]).find(e=>e.alias===a),r=await (0,m.hubFetch)("/mcp",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json, text/event-stream"},body:JSON.stringify({jsonrpc:"2.0",id:Date.now(),method:"tools/call",params:{name:"get_inbox",arguments:{alias:a,limit:50}}})}),n=await r.text(),s=n.match(/data:\s*(\{.*\})/),i=s?JSON.parse(s[1]):JSON.parse(n),o=i?.result?.content?.[0]?.text,l=o?JSON.parse(o):{messages:[]},u=await (0,m.hubFetch)("/health"),d=await u.json();return Response.json({session:t||null,inbox:l.messages||[],sse:d.sse_sessions?.[a]||0})}catch(e){return Response.json({error:"failed",detail:e instanceof Error?e.message:String(e)},{status:502})}}e.s(["GET",0,w],66778);var E=e.i(66778);let y=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/hub/session/route",pathname:"/api/hub/session",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/hub/session/route.ts",nextConfigOutput:"",userland:E,...{}}),{workAsyncStorage:b,workUnitAsyncStorage:C,serverHooks:A}=y;async function T(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),y.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/hub/session/route";f=f.replace(/\/index$/,"")||"/";let m=await y.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!m)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:E,nextConfig:b,parsedUrl:C,isDraftMode:A,prerenderManifest:T,routerServerContext:N,isOnDemandRevalidate:O,revalidateOnlyGenerated:S,resolvedPathname:_,clientReferenceManifest:q,serverActionsManifest:j}=m,P=(0,o.normalizeAppPath)(f),k=!!(T.dynamicRoutes[P]||T.routes[_]),U=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,C,!1):t.end("This page could not be found"),null);if(k&&!A){let e=!!T.routes[_],t=T.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await U();throw new R.NoFallbackError}}let H=null;!k||y.isDev||A||(H="/index"===(H=_)?"/":H);let M=!0===y.isDev||!k,I=k&&!M;j&&q&&(0,i.setManifestsSingleton)({page:f,clientReferenceManifest:q,serverActionsManifest:j});let D=e.method||"GET",$=(0,s.getTracer)(),F=$.getActiveScopeSpan(),B=!!(null==N?void 0:N.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),L=(0,n.getRequestMeta)(e,"incrementalCache")||await y.getIncrementalCache(e,b,T,K);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let z={params:E,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:M,incrementalCache:L,cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>y.onRequestError(e,t,a,n,N)},sharedContext:{buildId:w}},G=new l.NodeNextRequest(e),J=new l.NodeNextResponse(t),V=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>y.handle(V,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.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=`${D} ${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(`${D} ${f}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!K&&O&&S&&!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=z.renderOpts.fetchMetrics;let o=z.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=z.renderOpts.collectedTags;if(!k)return await (0,c.sendResponse)(G,J,s,z.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[v.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=v.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=v.INFINITE_CACHE?void 0:z.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:f,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:O})},!1,N),t}},u=await y.handleResponse({req:e,nextConfig:b,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:S,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!k)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&k||d.delete(v.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,x.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(G,J,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};B&&F?await o(F):(n=$.getActiveScopeSpan(),await $.withPropagatedContext(e.headers,()=>$.trace(d.BaseServerSpan.handleRequest,{spanName:`${D} ${f}`,kind:s.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},o),void 0,!B))}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:O})},!1,N),k)throw t;return await (0,c.sendResponse)(G,J,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:C})},"routeModule",0,y,"serverHooks",0,A,"workAsyncStorage",0,b,"workUnitAsyncStorage",0,C],69566)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__10439sp._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[66680,(e,r,t)=>{r.exports=e.x("node:crypto",()=>require("node:crypto"))},12714,(e,r,t)=>{r.exports=e.x("node:fs/promises",()=>require("node:fs/promises"))},60526,(e,r,t)=>{r.exports=e.x("node:os",()=>require("node:os"))},50227,(e,r,t)=>{r.exports=e.x("node:path",()=>require("node:path"))},17374,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={ActionDidNotRevalidate:function(){return o},ActionDidRevalidateDynamicOnly:function(){return i},ActionDidRevalidateStaticAndDynamic:function(){return s}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=0,s=1,i=2},30240,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={MutableRequestCookiesAdapter:function(){return h},ReadonlyRequestCookiesError:function(){return u},RequestCookiesAdapter:function(){return d},appendMutableCookies:function(){return p},areCookiesMutableInCurrentPhase:function(){return g},createCookiesWithMutableAccessCheck:function(){return b},getModifiedCookieValues:function(){return f},responseCookiesToRequestCookies:function(){return m}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(472),s=e.r(30759),i=e.r(56704),c=e.r(17374);class u extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new u}}class d{static seal(e){return new Proxy(e,{get(e,r,t){switch(r){case"clear":case"delete":case"set":return u.callable;default:return s.ReflectAdapter.get(e,r,t)}}})}}let l=Symbol.for("next.mutated.cookies");function f(e){let r=e[l];return r&&Array.isArray(r)&&0!==r.length?r:[]}function p(e,r){let t=f(r);if(0===t.length)return!1;let n=new o.ResponseCookies(e),a=n.getAll();for(let e of t)n.set(e);for(let e of a)n.set(e);return!0}class h{static wrap(e,r){let t=new o.ResponseCookies(new Headers);for(let r of e.getAll())t.set(r);let n=[],a=new Set,u=()=>{let e=i.workAsyncStorage.getStore();if(e&&(e.pathWasRevalidated=c.ActionDidRevalidateStaticAndDynamic),n=t.getAll().filter(e=>a.has(e.name)),r){let e=[];for(let r of n){let t=new o.ResponseCookies(new Headers);t.set(r),e.push(t.toString())}r(e)}},d=new Proxy(t,{get(e,r,t){switch(r){case l:return n;case"delete":return function(...r){a.add("string"==typeof r[0]?r[0]:r[0].name);try{return e.delete(...r),d}finally{u()}};case"set":return function(...r){a.add("string"==typeof r[0]?r[0]:r[0].name);try{return e.set(...r),d}finally{u()}};default:return s.ReflectAdapter.get(e,r,t)}}});return d}}function b(e){let r=new Proxy(e.mutableCookies,{get(t,n,a){switch(n){case"delete":return function(...n){return y(e,"cookies().delete"),t.delete(...n),r};case"set":return function(...n){return y(e,"cookies().set"),t.set(...n),r};default:return s.ReflectAdapter.get(t,n,a)}}});return r}function g(e){return"action"===e.phase}function y(e,r){if(!g(e))throw new u}function m(e){let r=new o.RequestCookies(new Headers);for(let t of e.getAll())r.set(t);return r}},13884,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return c}});let n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=a(void 0);if(r&&r.has(e))return r.get(e);var t={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var s=n?Object.getOwnPropertyDescriptor(e,o):null;s&&(s.get||s.set)?Object.defineProperty(t,o,s):t[o]=e[o]}return t.default=e,r&&r.set(e,t),t}(e.r(47540));function a(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(a=function(e){return e?t:r})(e)}let o={current:null},s="function"==typeof n.cache?n.cache:e=>e,i=console.warn;function c(e){return function(...r){i(e(...r))}}s(e=>{try{i(o.current)}finally{o.current=null}})},7460,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"cookies",{enumerable:!0,get:function(){return p}});let n=e.r(30240),a=e.r(472),o=e.r(56704),s=e.r(32319),i=e.r(68665),c=e.r(97573),u=e.r(4642),d=e.r(13884),l=e.r(43824),f=e.r(76414);function p(){let e="cookies",r=o.workAsyncStorage.getStore(),t=s.workUnitAsyncStorage.getStore();if(r){if(t&&"after"===t.phase&&!(0,l.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${r.route} used \`cookies()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E843",enumerable:!1,configurable:!0});if(r.forceStatic)return b(n.RequestCookiesAdapter.seal(new a.RequestCookies(new Headers({}))));if(r.dynamicShouldError)throw Object.defineProperty(new c.StaticGenBailoutError(`Route ${r.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(t)switch(t.type){case"cache":let o=Object.defineProperty(Error(`Route ${r.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(o,p),r.invalidDynamicUsageError??=o,o;case"unstable-cache":throw Object.defineProperty(Error(`Route ${r.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${r.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var d=r,g=t;let y=h.get(g);if(y)return y;let m=(0,u.makeHangingPromise)(g.renderSignal,d.route,"`cookies()`");return h.set(g,m),m;case"prerender-client":case"validation-client":let R="`cookies`";throw Object.defineProperty(new f.InvariantError(`${R} must not be used within a Client Component. Next.js should be preventing ${R} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,i.postponeWithTracking)(r.route,e,t.dynamicTracking);case"prerender-legacy":return(0,i.throwToInterruptStaticGeneration)(e,r,t);case"prerender-runtime":return(0,u.delayUntilRuntimeStage)(t,b(t.cookies));case"private-cache":return b(t.cookies);case"request":let E;if((0,i.trackDynamicDataInDynamicRender)(t),E=(0,n.areCookiesMutableInCurrentPhase)(t)?t.userspaceMutableCookies:t.cookies,!t.asyncApiPromises)return b(E);{let e=(0,s.isInEarlyRenderStage)(t);if(E===t.mutableCookies)return e?t.asyncApiPromises.earlyMutableCookies:t.asyncApiPromises.mutableCookies;return e?t.asyncApiPromises.earlyCookies:t.asyncApiPromises.cookies}}}(0,s.throwForMissingRequestStore)(e)}e.r(18185);let h=new WeakMap;function b(e){let r=h.get(e);if(r)return r;let t=Promise.resolve(e);return h.set(e,t),t}(0,d.createDedupedByCallsiteServerErrorLoggerDev)(function(e,r){let t=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${t}used ${r}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})},36052,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={HeadersAdapter:function(){return i},ReadonlyHeadersError:function(){return s}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(30759);class s extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new s}}class i extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(r,t,n){if("symbol"==typeof t)return o.ReflectAdapter.get(r,t,n);let a=t.toLowerCase(),s=Object.keys(e).find(e=>e.toLowerCase()===a);if(void 0!==s)return o.ReflectAdapter.get(r,s,n)},set(r,t,n,a){if("symbol"==typeof t)return o.ReflectAdapter.set(r,t,n,a);let s=t.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===s);return o.ReflectAdapter.set(r,i??t,n,a)},has(r,t){if("symbol"==typeof t)return o.ReflectAdapter.has(r,t);let n=t.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==a&&o.ReflectAdapter.has(r,a)},deleteProperty(r,t){if("symbol"==typeof t)return o.ReflectAdapter.deleteProperty(r,t);let n=t.toLowerCase(),a=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===a||o.ReflectAdapter.deleteProperty(r,a)}})}static seal(e){return new Proxy(e,{get(e,r,t){switch(r){case"append":case"delete":case"set":return s.callable;default:return o.ReflectAdapter.get(e,r,t)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new i(e)}append(e,r){let t=this.headers[e];"string"==typeof t?this.headers[e]=[t,r]:Array.isArray(t)?t.push(r):this.headers[e]=r}delete(e){delete this.headers[e]}get(e){let r=this.headers[e];return void 0!==r?this.merge(r):null}has(e){return void 0!==this.headers[e]}set(e,r){this.headers[e]=r}forEach(e,r){for(let[t,n]of this.entries())e.call(r,n,t,this)}*entries(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase(),t=this.get(r);yield[r,t]}}*keys(){for(let e of Object.keys(this.headers)){let r=e.toLowerCase();yield r}}*values(){for(let e of Object.keys(this.headers)){let r=this.get(e);yield r}}[Symbol.iterator](){return this.entries()}}},19971,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"headers",{enumerable:!0,get:function(){return f}});let n=e.r(36052),a=e.r(56704),o=e.r(32319),s=e.r(68665),i=e.r(97573),c=e.r(4642),u=e.r(13884),d=e.r(43824),l=e.r(76414);function f(){let e="headers",r=a.workAsyncStorage.getStore(),t=o.workUnitAsyncStorage.getStore();if(r){if(t&&"after"===t.phase&&!(0,d.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${r.route} used \`headers()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E839",enumerable:!1,configurable:!0});if(r.forceStatic)return h(n.HeadersAdapter.seal(new Headers({})));if(t)switch(t.type){case"cache":{let e=Object.defineProperty(Error(`Route ${r.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E833",enumerable:!1,configurable:!0});throw Error.captureStackTrace(e,f),r.invalidDynamicUsageError??=e,e}case"unstable-cache":throw Object.defineProperty(Error(`Route ${r.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E838",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${r.route} used \`headers()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1134",enumerable:!1,configurable:!0})}if(r.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${r.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E828",enumerable:!1,configurable:!0});if(t)switch(t.type){case"prerender":var u=r,b=t;let a=p.get(b);if(a)return a;let g=(0,c.makeHangingPromise)(b.renderSignal,u.route,"`headers()`");return p.set(b,g),g;case"prerender-client":case"validation-client":let y="`headers`";throw Object.defineProperty(new l.InvariantError(`${y} must not be used within a client component. Next.js should be preventing ${y} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1017",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,s.postponeWithTracking)(r.route,e,t.dynamicTracking);case"prerender-legacy":return(0,s.throwToInterruptStaticGeneration)(e,r,t);case"prerender-runtime":return(0,c.delayUntilRuntimeStage)(t,h(t.headers));case"private-cache":return h(t.headers);case"request":if((0,s.trackDynamicDataInDynamicRender)(t),t.asyncApiPromises)return(0,o.isInEarlyRenderStage)(t)?t.asyncApiPromises.earlyHeaders:t.asyncApiPromises.headers;return h(t.headers)}}(0,o.throwForMissingRequestStore)(e)}e.r(18185);let p=new WeakMap;function h(e){let r=p.get(e);if(r)return r;let t=Promise.resolve(e);return p.set(e,t),t}(0,u.createDedupedByCallsiteServerErrorLoggerDev)(function(e,r){let t=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${t}used ${r}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},21423,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"draftMode",{enumerable:!0,get:function(){return l}});let n=e.r(32319),a=e.r(56704),o=e.r(68665),s=e.r(13884),i=e.r(97573),c=e.r(65252),u=e.r(76414),d=e.r(4642);function l(){let e="draftMode",r=a.workAsyncStorage.getStore(),t=n.workUnitAsyncStorage.getStore();switch((!r||!t)&&(0,n.throwForMissingRequestStore)(e),t.type){case"prerender-runtime":return(0,d.delayUntilRuntimeStage)(t,f(t.draftMode,r));case"request":return f(t.draftMode,r);case"cache":case"private-cache":case"unstable-cache":let o=(0,n.getDraftModeProviderForCacheScope)(r,t);if(o)return f(o,r);case"prerender":case"prerender-ppr":case"prerender-legacy":return f(null,r);case"prerender-client":case"validation-client":{let e="`draftMode`";throw Object.defineProperty(new u.InvariantError(`${e} must not be used within a Client Component. Next.js should be preventing ${e} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0})}case"generate-static-params":throw Object.defineProperty(Error(`Route ${r.route} used \`${e}()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1132",enumerable:!1,configurable:!0});default:return t}}function f(e,r){let t=h.get(e??p);return t||Promise.resolve(new b(e))}e.r(30759);let p={},h=new WeakMap;class b{constructor(e){this._provider=e}get isEnabled(){return null!==this._provider&&this._provider.isEnabled}enable(){g("draftMode().enable()",this.enable),null!==this._provider&&this._provider.enable()}disable(){g("draftMode().disable()",this.disable),null!==this._provider&&this._provider.disable()}}function g(e,r){let t=a.workAsyncStorage.getStore(),s=n.workUnitAsyncStorage.getStore();if(t){if((null==s?void 0:s.phase)==="after")throw Object.defineProperty(Error(`Route ${t.route} used "${e}" inside \`after()\`. The enabled status of \`draftMode()\` can be read inside \`after()\` but you cannot enable or disable \`draftMode()\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E845",enumerable:!1,configurable:!0});if(t.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${t.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(s)switch(s.type){case"cache":case"private-cache":{let n=Object.defineProperty(Error(`Route ${t.route} used "${e}" inside "use cache". The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E829",enumerable:!1,configurable:!0});throw Error.captureStackTrace(n,r),t.invalidDynamicUsageError??=n,n}case"unstable-cache":throw Object.defineProperty(Error(`Route ${t.route} used "${e}" inside a function cached with \`unstable_cache()\`. The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E844",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":{let r=Object.defineProperty(Error(`Route ${t.route} used ${e} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`),"__NEXT_ERROR_CODE",{value:"E126",enumerable:!1,configurable:!0});return(0,o.abortAndThrowOnSynchronousRequestDataAccess)(t.route,e,r,s)}case"prerender-client":case"validation-client":let n="`draftMode`";throw Object.defineProperty(new u.InvariantError(`${n} must not be used within a Client Component. Next.js should be preventing ${n} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,o.postponeWithTracking)(t.route,e,s.dynamicTracking);case"prerender-legacy":s.revalidate=0;let a=Object.defineProperty(new c.DynamicServerError(`Route ${t.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw t.dynamicUsageDescription=e,t.dynamicUsageStack=a.stack,a;case"request":(0,o.trackDynamicDataInDynamicRender)(s);break;case"generate-static-params":throw Object.defineProperty(Error(`Route ${t.route} used \`${e}\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1121",enumerable:!1,configurable:!0})}}}(0,s.createDedupedByCallsiteServerErrorLoggerDev)(function(e,r){let t=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${t}used ${r}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},93458,(e,r,t)=>{r.exports.cookies=e.r(7460).cookies,r.exports.headers=e.r(19971).headers,r.exports.draftMode=e.r(21423).draftMode},282,e=>{"use strict";var r=e.i(66680),t=e.i(12714),n=e.i(60526),a=e.i(50227),o=e.i(93458);let s="anet_dashboard_session",i=(0,a.join)((0,n.homedir)(),".anet","config.json");function c(e){return(0,r.createHash)("sha256").update(`anet-dashboard:${e}`).digest("hex")}function u(e,t){let n=Buffer.from(e),a=Buffer.from(t);return n.length===a.length&&(0,r.timingSafeEqual)(n,a)}async function d(){let e=JSON.parse(await (0,t.readFile)(i,"utf8"));return"string"==typeof e.token?e.token:""}async function l(){let e=process.env.DASHBOARD_PASSWORD||process.env.ANET_DASHBOARD_PASSWORD;if(e)return e;let r=await d();return r&&!process.env._DASHBOARD_TOKEN_WARN_SHOWN&&(console.warn("[dashboard] WARNING: using CommHub token as login password. Set DASHBOARD_PASSWORD for security."),process.env._DASHBOARD_TOKEN_WARN_SHOWN="1"),r}async function f(e){return c(e)}async function p(e){let r=await l();return r.length>0&&u(c(e),c(r))}async function h(){let e=await (0,o.cookies)(),r=e.get(s)?.value||"";if(r.startsWith("v3:")){let e=r.slice(3);return(e.startsWith("atok_")||e.startsWith("utok_")||e.startsWith("ntok_"))&&e.length>10}let t=await l();return t.length>0&&u(r,await f(t))}async function b(){let e=await (0,o.cookies)(),r=e.get(s)?.value||"";return r.startsWith("v3:")?r.slice(3):null}async function g(){return await h()?null:Response.json({error:"login required"},{status:401})}e.s(["DASHBOARD_SESSION_COOKIE",0,s,"createDashboardSessionValue",0,f,"getV3UserToken",0,b,"requireDashboardAuth",0,g,"verifyDashboardPassword",0,p])}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__11aui~e._.js.map
@@ -1,3 +0,0 @@
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"))},71647,e=>{"use strict";var t=e.i(282);function r(){return process.env.COMMHUB_URL||"http://47.77.216.1:9200"}async function a(e,a){let n=`${r()}${e}`,s=process.env.COMMHUB_AUTH_TOKEN||"",i={},o=a?.headers;if(!o?.Authorization){try{let e=await (0,t.getV3UserToken)();e&&(i={Authorization:`Bearer ${e}`})}catch{}!i.Authorization&&s&&(i={Authorization:`Bearer ${s}`})}return fetch(n,{...a,headers:{...i,...a?.headers},next:{revalidate:0}})}r(),e.s(["hubFetch",0,a])},68251,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),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),x=e.i(26937),R=e.i(10372),v=e.i(93695);e.i(20232);var g=e.i(220),f=e.i(282),w=e.i(71647);async function m(e){let t=await (0,f.requireDashboardAuth)();if(t)return t;let{searchParams:r}=new URL(e.url),a=r.get("network_id")||"",n=a&&"all"!==a,s=n?`?network_id=${encodeURIComponent(a)}`:"";try{let e=await (0,w.hubFetch)(`/api/status${s}`),t=await e.json();if(n&&Array.isArray(t.sessions)&&0===t.sessions.length)try{let e=await (0,w.hubFetch)("/api/status"),r=await e.json(),n=Array.isArray(r.sessions)?r.sessions.length:0;if(n>0)return Response.json({...t,_hint:{global_count:n,filtered_network:a}})}catch{}return Response.json(t)}catch(e){return Response.json({error:"CommHub unreachable",detail:e instanceof Error?e.message:String(e)},{status:502})}}e.s(["GET",0,m],63574);var y=e.i(63574);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/hub/status/route",pathname:"/api/hub/status",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/hub/status/route.ts",nextConfigOutput:"",userland:y,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:C,serverHooks:b}=E;async function _(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),E.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/hub/status/route";f=f.replace(/\/index$/,"")||"/";let w=await E.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:m,params:y,nextConfig:A,parsedUrl:C,isDraftMode:b,prerenderManifest:_,routerServerContext:T,isOnDemandRevalidate:N,revalidateOnlyGenerated:k,resolvedPathname:q,clientReferenceManifest:O,serverActionsManifest:P}=w,S=(0,o.normalizeAppPath)(f),U=!!(_.dynamicRoutes[S]||_.routes[q]),j=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,C,!1):t.end("This page could not be found"),null);if(U&&!b){let e=!!_.routes[q],t=_.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await j();throw new v.NoFallbackError}}let H=null;!U||E.isDev||b||(H="/index"===(H=q)?"/":H);let M=!0===E.isDev||!U,I=U&&!M;P&&O&&(0,i.setManifestsSingleton)({page:f,clientReferenceManifest:O,serverActionsManifest:P});let $=e.method||"GET",D=(0,s.getTracer)(),F=D.getActiveScopeSpan(),B=!!(null==T?void 0:T.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),L=(0,n.getRequestMeta)(e,"incrementalCache")||await E.getIncrementalCache(e,A,_,K);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let z={params:y,previewProps:_.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:M,incrementalCache:L,cacheLifeProfiles:A.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>E.onRequestError(e,t,a,n,T)},sharedContext:{buildId:m}},G=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>E.handle(W,z).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")!==d.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(`${$} ${f}`)}),o=async n=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!K&&N&&k&&!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=z.renderOpts.fetchMetrics;let o=z.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=z.renderOpts.collectedTags;if(!U)return await (0,c.sendResponse)(G,V,s,z.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[R.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:z.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 E.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:N})},!1,T),t}},u=await E.handleResponse({req:e,nextConfig:A,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:k,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!U)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",N?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),b&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&U||d.delete(R.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,x.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(G,V,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};B&&F?await o(F):(n=D.getActiveScopeSpan(),await D.withPropagatedContext(e.headers,()=>D.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${f}`,kind:s.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!B))}catch(t){if(t instanceof v.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:N})},!1,T),U)throw t;return await (0,c.sendResponse)(G,V,new Response(null,{status:500})),null}}e.s(["handler",0,_,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:C})},"routeModule",0,E,"serverHooks",0,b,"workAsyncStorage",0,A,"workUnitAsyncStorage",0,C],68251)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__12s1q1.._.js.map
@@ -1,3 +0,0 @@
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"))},71647,e=>{"use strict";var t=e.i(282);function r(){return process.env.COMMHUB_URL||"http://47.77.216.1:9200"}async function a(e,a){let n=`${r()}${e}`,s=process.env.COMMHUB_AUTH_TOKEN||"",o={},i=a?.headers;if(!i?.Authorization){try{let e=await (0,t.getV3UserToken)();e&&(o={Authorization:`Bearer ${e}`})}catch{}!o.Authorization&&s&&(o={Authorization:`Bearer ${s}`})}return fetch(n,{...a,headers:{...o,...a?.headers},next:{revalidate:0}})}r(),e.s(["hubFetch",0,a])},11693,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),u=e.i(87718),d=e.i(95169),p=e.i(47587),c=e.i(66012),h=e.i(70101),x=e.i(26937),R=e.i(10372),v=e.i(93695);e.i(20232);var g=e.i(220),f=e.i(282),w=e.i(71647);async function m(e){let t=await (0,f.requireDashboardAuth)();if(t)return t;let{searchParams:r}=new URL(e.url),a=r.get("network_id")||"",n=a?`?network_id=${encodeURIComponent(a)}`:"";try{let e=await (0,w.hubFetch)(`/api/stats${n}`),t=e.headers.get("content-type")||"";if(e.ok&&t.includes("application/json"))return Response.json(await e.json());return Response.json({ok:!1,error:"stats endpoint not available"},{status:404})}catch(e){return Response.json({error:"CommHub unreachable",detail:e instanceof Error?e.message:String(e)},{status:502})}}e.s(["GET",0,m],99582);var E=e.i(99582);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/hub/stats/route",pathname:"/api/hub/stats",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/hub/stats/route.ts",nextConfigOutput:"",userland:E,...{}}),{workAsyncStorage:y,workUnitAsyncStorage:b,serverHooks:A}=C;async function T(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),C.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/hub/stats/route";f=f.replace(/\/index$/,"")||"/";let w=await C.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:m,params:E,nextConfig:y,parsedUrl:b,isDraftMode:A,prerenderManifest:T,routerServerContext:_,isOnDemandRevalidate:k,revalidateOnlyGenerated:N,resolvedPathname:q,clientReferenceManifest:O,serverActionsManifest:P}=w,S=(0,i.normalizeAppPath)(f),U=!!(T.dynamicRoutes[S]||T.routes[q]),j=async()=>((null==_?void 0:_.render404)?await _.render404(e,t,b,!1):t.end("This page could not be found"),null);if(U&&!A){let e=!!T.routes[q],t=T.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(y.adapterPath)return await j();throw new v.NoFallbackError}}let H=null;!U||C.isDev||A||(H="/index"===(H=q)?"/":H);let M=!0===C.isDev||!U,I=U&&!M;P&&O&&(0,o.setManifestsSingleton)({page:f,clientReferenceManifest:O,serverActionsManifest:P});let $=e.method||"GET",D=(0,s.getTracer)(),B=D.getActiveScopeSpan(),F=!!(null==_?void 0:_.isWrappedByNextServer),K=!!(0,n.getRequestMeta)(e,"minimalMode"),L=(0,n.getRequestMeta)(e,"incrementalCache")||await C.getIncrementalCache(e,y,T,K);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let z={params:E,previewProps:T.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:M,incrementalCache:L,cacheLifeProfiles:y.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>C.onRequestError(e,t,a,n,_)},sharedContext:{buildId:m}},G=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let n,o=async e=>C.handle(W,z).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")!==d.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(`${$} ${f}`)}),i=async n=>{var s,i;let l=async({previousCacheEntry:r})=>{try{if(!K&&k&&N&&!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=z.renderOpts.fetchMetrics;let i=z.renderOpts.pendingWaitUntil;i&&a.waitUntil&&(a.waitUntil(i),i=void 0);let l=z.renderOpts.collectedTags;if(!U)return await (0,c.sendResponse)(G,V,s,z.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[R.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:z.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 C.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:k})},!1,_),t}},u=await C.handleResponse({req:e,nextConfig:y,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:N,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:K});if(!U)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(i=u.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",k?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return K&&U||d.delete(R.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,x.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(G,V,new Response(u.value.body,{headers:d,status:u.value.status||200})),null};F&&B?await i(B):(n=D.getActiveScopeSpan(),await D.withPropagatedContext(e.headers,()=>D.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${f}`,kind:s.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},i),void 0,!F))}catch(t){if(t instanceof v.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:k})},!1,_),U)throw t;return await (0,c.sendResponse)(G,V,new Response(null,{status:500})),null}}e.s(["handler",0,T,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:b})},"routeModule",0,C,"serverHooks",0,A,"workAsyncStorage",0,y,"workUnitAsyncStorage",0,b],11693)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__13e9ex0._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[54826,(a,b,c)=>{},15299,(a,b,c)=>{a.r(54826);var d=a.r(72131),e=d&&"object"==typeof d&&"default"in d?d:{default:d},f="u">typeof process&&process.env&&!0,g=function(a){return"[object String]"===Object.prototype.toString.call(a)},h=function(){function a(a){var b=void 0===a?{}:a,c=b.name,d=void 0===c?"stylesheet":c,e=b.optimizeForSpeed,h=void 0===e?f:e;i(g(d),"`name` must be a string"),this._name=d,this._deletedRulePlaceholder="#"+d+"-deleted-rule____{}",i("boolean"==typeof h,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=h,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0,this._nonce=null}var b,c=a.prototype;return c.setOptimizeForSpeed=function(a){i("boolean"==typeof a,"`setOptimizeForSpeed` accepts a boolean"),i(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=a,this.inject()},c.isOptimizeForSpeed=function(){return this._optimizeForSpeed},c.inject=function(){var a=this;i(!this._injected,"sheet already injected"),this._injected=!0,this._serverSheet={cssRules:[],insertRule:function(b,c){return"number"==typeof c?a._serverSheet.cssRules[c]={cssText:b}:a._serverSheet.cssRules.push({cssText:b}),c},deleteRule:function(b){a._serverSheet.cssRules[b]=null}}},c.getSheetForTag=function(a){if(a.sheet)return a.sheet;for(var b=0;b<document.styleSheets.length;b++)if(document.styleSheets[b].ownerNode===a)return document.styleSheets[b]},c.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},c.insertRule=function(a,b){return i(g(a),"`insertRule` accepts only strings"),"number"!=typeof b&&(b=this._serverSheet.cssRules.length),this._serverSheet.insertRule(a,b),this._rulesCount++},c.replaceRule=function(a,b){this._optimizeForSpeed;var c=this._serverSheet;if(b.trim()||(b=this._deletedRulePlaceholder),!c.cssRules[a])return a;c.deleteRule(a);try{c.insertRule(b,a)}catch(d){f||console.warn("StyleSheet: illegal rule: \n\n"+b+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),c.insertRule(this._deletedRulePlaceholder,a)}return a},c.deleteRule=function(a){this._serverSheet.deleteRule(a)},c.flush=function(){this._injected=!1,this._rulesCount=0,this._serverSheet.cssRules=[]},c.cssRules=function(){return this._serverSheet.cssRules},c.makeStyleTag=function(a,b,c){b&&i(g(b),"makeStyleTag accepts only strings as second parameter");var d=document.createElement("style");this._nonce&&d.setAttribute("nonce",this._nonce),d.type="text/css",d.setAttribute("data-"+a,""),b&&d.appendChild(document.createTextNode(b));var e=document.head||document.getElementsByTagName("head")[0];return c?e.insertBefore(d,c):e.appendChild(d),d},b=[{key:"length",get:function(){return this._rulesCount}}],function(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}(a.prototype,b),a}();function i(a,b){if(!a)throw Error("StyleSheet: "+b+".")}var j=function(a){for(var b=5381,c=a.length;c;)b=33*b^a.charCodeAt(--c);return b>>>0},k={};function l(a,b){if(!b)return"jsx-"+a;var c=String(b),d=a+c;return k[d]||(k[d]="jsx-"+j(a+"-"+c)),k[d]}function m(a,b){var c=a+(b=b.replace(/\/style/gi,"\\/style"));return k[c]||(k[c]=b.replace(/__jsx-style-dynamic-selector/g,a)),k[c]}var n=function(){function a(a){var b=void 0===a?{}:a,c=b.styleSheet,d=void 0===c?null:c,e=b.optimizeForSpeed,f=void 0!==e&&e;this._sheet=d||new h({name:"styled-jsx",optimizeForSpeed:f}),this._sheet.inject(),d&&"boolean"==typeof f&&(this._sheet.setOptimizeForSpeed(f),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var b=a.prototype;return b.add=function(a){var b=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(a.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed());var c=this.getIdAndRules(a),d=c.styleId,e=c.rules;if(d in this._instancesCounts){this._instancesCounts[d]+=1;return}var f=e.map(function(a){return b._sheet.insertRule(a)}).filter(function(a){return -1!==a});this._indices[d]=f,this._instancesCounts[d]=1},b.remove=function(a){var b=this,c=this.getIdAndRules(a).styleId;if(function(a,b){if(!a)throw Error("StyleSheetRegistry: "+b+".")}(c in this._instancesCounts,"styleId: `"+c+"` not found"),this._instancesCounts[c]-=1,this._instancesCounts[c]<1){var d=this._fromServer&&this._fromServer[c];d?(d.parentNode.removeChild(d),delete this._fromServer[c]):(this._indices[c].forEach(function(a){return b._sheet.deleteRule(a)}),delete this._indices[c]),delete this._instancesCounts[c]}},b.update=function(a,b){this.add(b),this.remove(a)},b.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},b.cssRules=function(){var a=this,b=this._fromServer?Object.keys(this._fromServer).map(function(b){return[b,a._fromServer[b]]}):[],c=this._sheet.cssRules();return b.concat(Object.keys(this._indices).map(function(b){return[b,a._indices[b].map(function(a){return c[a].cssText}).join(a._optimizeForSpeed?"":"\n")]}).filter(function(a){return!!a[1]}))},b.styles=function(a){var b,c;return b=this.cssRules(),void 0===(c=a)&&(c={}),b.map(function(a){var b=a[0],d=a[1];return e.default.createElement("style",{id:"__"+b,key:"__"+b,nonce:c.nonce?c.nonce:void 0,dangerouslySetInnerHTML:{__html:d}})})},b.getIdAndRules=function(a){var b=a.children,c=a.dynamic,d=a.id;if(c){var e=l(d,c);return{styleId:e,rules:Array.isArray(b)?b.map(function(a){return m(e,a)}):[m(e,b)]}}return{styleId:l(d),rules:Array.isArray(b)?b:[b]}},b.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(a,b){return a[b.id.slice(2)]=b,a},{})},a}(),o=d.createContext(null);function p(){return new n}function q(){return d.useContext(o)}function r(a){var b=q();return b&&b.add(a),null}o.displayName="StyleSheetContext",e.default.useInsertionEffect||e.default.useLayoutEffect,r.dynamic=function(a){return a.map(function(a){return l(a[0],a[1])}).join(" ")},c.StyleRegistry=function(a){var b=a.registry,c=a.children,f=d.useContext(o),g=d.useState(function(){return f||b||p()})[0];return e.default.createElement(o.Provider,{value:g},c)},c.createStyleRegistry=p,c.style=r,c.useStyleRegistry=q},31626,(a,b,c)=>{b.exports=a.r(15299).style},15261,a=>{"use strict";var b=a.i(87924),c=a.i(31626),d=a.i(72131),e=a.i(43515);let f=["created","delivered","running","replied"],g={created:"bg-gray-400",delivered:"bg-blue-400",running:"bg-green-400",replied:"bg-purple-400",failed:"bg-red-400",closed:"bg-gray-500"};function h({status:a}){let c=f.indexOf(a),d="failed"===a;return(0,b.jsxs)("div",{className:"flex items-center gap-1 mt-1.5",children:[f.map((a,e)=>(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("div",{className:`w-2 h-2 rounded-full transition-all duration-700 ${d?0===e?"bg-red-400":"bg-gray-700":e<=c?g[a]||"bg-gray-600":"bg-gray-700"}`}),e<f.length-1&&(0,b.jsx)("div",{className:`w-4 h-px transition-colors duration-700 ${d?"bg-red-800":e<c?"bg-gray-500":"bg-gray-800"}`})]},a)),(0,b.jsx)("span",{className:`text-[10px] ml-1.5 font-medium ${d?"text-red-400":"replied"===a?"text-purple-400":"running"===a?"text-green-400":"text-gray-500"}`,children:a}),("running"===a||"delivered"===a)&&(0,b.jsxs)("span",{className:"ml-1",children:[(0,b.jsx)("span",{className:"inline-block w-1 h-1 rounded-full bg-green-400 animate-pulse"}),(0,b.jsx)("span",{className:"inline-block w-1 h-1 rounded-full bg-green-400 animate-pulse ml-0.5",style:{animationDelay:"0.2s"}}),(0,b.jsx)("span",{className:"inline-block w-1 h-1 rounded-full bg-green-400 animate-pulse ml-0.5",style:{animationDelay:"0.4s"}})]})]})}function i({text:a}){if(!a)return(0,b.jsx)("span",{className:"text-gray-600 italic",children:"No content"});let c=a.split(/(```[\s\S]*?```|`[^`\n]+`|\*\*[^*]+\*\*)/g);return(0,b.jsx)("div",{className:"whitespace-pre-wrap break-words leading-relaxed",children:c.map((a,c)=>{if(a.startsWith("```")&&a.endsWith("```")){let d=a.slice(3,-3),e=d.match(/^(\w+)\n/)?.[1]||"",f=e?d.slice(e.length+1):d;return(0,b.jsxs)("div",{className:"my-2 rounded-lg overflow-hidden border border-[#1a1a2a]",children:[e&&(0,b.jsx)("div",{className:"bg-[#0a0a15] px-3 py-1 text-[10px] text-gray-500 border-b border-[#1a1a2a]",children:e}),(0,b.jsx)("pre",{className:"bg-[#050510] px-3 py-2 text-[11px] text-green-300 overflow-x-auto",children:f})]},c)}return a.startsWith("`")&&a.endsWith("`")?(0,b.jsx)("code",{className:"bg-[#0a0a15] rounded px-1.5 py-0.5 text-cyan-300 text-[11px] border border-[#1a1a2a]",children:a.slice(1,-1)},c):a.startsWith("**")&&a.endsWith("**")?(0,b.jsx)("strong",{className:"text-white font-semibold",children:a.slice(2,-2)},c):(0,b.jsx)("span",{children:a},c)})})}a.s(["TaskChatPanel",0,function({alias:a,onClose:f,inline:g,availableNodes:j}){let[k,l]=(0,d.useState)([]),[m,n]=(0,d.useState)(""),[o,p]=(0,d.useState)("normal"),[q,r]=(0,d.useState)(!1),[s,t]=(0,d.useState)(new Set),[u,v]=(0,d.useState)(!1),[w,x]=(0,d.useState)(a),[y,z]=(0,d.useState)(!1),[A,B]=(0,d.useState)(""),[C,D]=(0,d.useState)([]),E=(0,d.useRef)(null),F=(0,d.useRef)(null);(0,d.useEffect)(()=>{j?D(j):fetch("/api/hub/status").then(a=>a.json()).then(a=>{D((a.sessions||[]).filter(a=>"offline"!==a.status).map(a=>a.alias))}).catch(()=>{})},[j]),(0,d.useEffect)(()=>{x(a)},[a]);let G=(0,d.useCallback)(async()=>{try{let b=await fetch(`/api/hub/tasks?to_name=${encodeURIComponent(a)}&limit=30`),c=await b.json();c.tasks&&l(c.tasks.reverse())}catch{}finally{v(!0)}},[a]);(0,d.useEffect)(()=>{l([]),v(!1),G(),setTimeout(()=>F.current?.focus(),300)},[a,G]),(0,d.useEffect)(()=>{E.current?.scrollIntoView({behavior:"smooth"})},[k]),(0,d.useEffect)(()=>{if(0===s.size)return;let a=Date.now(),b=setInterval(async()=>{if(Date.now()-a>12e4){t(new Set),clearInterval(b);return}for(let a of s)try{let b=await fetch(`/api/hub/tasks?task_id=${encodeURIComponent(a)}`),c=await b.json();if(c.tasks?.[0]){let b=c.tasks[0];l(c=>c.map(c=>c.task_id===a?{...c,...b}:c)),["replied","failed","closed","expired","cancelled"].includes(b.status)&&t(b=>{let c=new Set(b);return c.delete(a),c})}}catch{}},2e3);return()=>clearInterval(b)},[s]);let H=async()=>{if(!m.trim()||q)return;let a=m.trim(),b=w,c=a.match(/^@(\S+)\s+([\s\S]+)/);if(c){let d=C.find(a=>a.toLowerCase()===c[1].toLowerCase());d&&(b=d,a=c[2])}r(!0),n(""),z(!1),F.current&&(F.current.style.height="auto");let d=`tmp-${Date.now()}`,e={task_id:d,from_name:"Dashboard",to_name:b,status:"created",priority:o,content:a,result:"",created_at:new Date().toISOString()};l(a=>[...a,e]);try{let c=await fetch("/api/hub/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:b,task:a,priority:o})}),e=await c.json().catch(()=>({ok:!1,error:`HTTP ${c.status}`}));if(e.ok&&e.message_id)l(a=>a.map(a=>a.task_id===d?{...a,task_id:e.message_id,status:"delivered"}:a)),t(a=>new Set(a).add(e.message_id));else{let a=e.error||e.detail||`send failed (status ${c.status})`;l(b=>b.map(b=>b.task_id===d?{...b,status:"failed",result:`❌ ${a}`}:b))}}catch(b){let a=b instanceof Error?b.message:String(b);l(b=>b.map(b=>b.task_id===d?{...b,status:"failed",result:`❌ network error: ${a}`}:b))}r(!1),F.current?.focus()},I=C.filter(b=>b!==a&&b.toLowerCase().includes(A)).slice(0,8),J=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 py-4 space-y-4",children:[!u&&(0,b.jsx)("div",{className:"flex justify-center py-8",children:(0,b.jsx)("div",{className:"w-5 h-5 border-2 border-cyan-500/30 border-t-cyan-500 rounded-full animate-spin"})}),u&&0===k.length&&(0,b.jsxs)("div",{className:"text-center py-12",children:[(0,b.jsx)("div",{className:"text-3xl mb-3",children:"💬"}),(0,b.jsx)("div",{className:"text-gray-500 text-sm",children:"Start a conversation"}),(0,b.jsxs)("div",{className:"text-gray-600 text-xs mt-1",children:["Send a task to ",a]})]}),k.map((a,c)=>(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsx)("div",{className:"flex justify-end",children:(0,b.jsxs)("div",{className:"max-w-[85%] bg-cyan-500/8 border border-cyan-500/15 rounded-2xl rounded-br-md px-4 py-2.5 shadow-sm",children:[(0,b.jsx)("div",{className:"text-[13px] text-gray-200",children:(0,b.jsx)(i,{text:a.content})}),(0,b.jsxs)("div",{className:"flex items-center justify-between mt-1.5 gap-3",children:[(0,b.jsx)(h,{status:a.status}),(0,b.jsx)("span",{className:"text-[9px] text-gray-600 shrink-0",children:(0,e.timeAgo)(a.created_at)})]})]})}),a.result&&(0,b.jsx)("div",{className:"flex justify-start",children:(0,b.jsxs)("div",{className:"max-w-[85%] bg-green-500/8 border border-green-500/15 rounded-2xl rounded-bl-md px-4 py-2.5 shadow-sm",children:[(0,b.jsx)("div",{className:"text-[10px] text-green-400 font-medium mb-1.5",children:a.to_name}),(0,b.jsx)("div",{className:"text-[13px] text-gray-200",children:(0,b.jsx)(i,{text:a.result})})]})}),"running"===a.status&&!a.result&&(0,b.jsx)("div",{className:"flex justify-start",children:(0,b.jsx)("div",{className:"bg-[#111128] border border-[#2a2a4a] rounded-2xl rounded-bl-md px-4 py-3",children:(0,b.jsxs)("div",{className:"flex gap-1",children:[(0,b.jsx)("span",{className:"w-2 h-2 rounded-full bg-gray-500 animate-bounce",style:{animationDelay:"0s"}}),(0,b.jsx)("span",{className:"w-2 h-2 rounded-full bg-gray-500 animate-bounce",style:{animationDelay:"0.15s"}}),(0,b.jsx)("span",{className:"w-2 h-2 rounded-full bg-gray-500 animate-bounce",style:{animationDelay:"0.3s"}})]})})})]},a.task_id)),(0,b.jsx)("div",{ref:E})]}),(0,b.jsxs)("div",{className:"border-t border-[#2a2a4a] bg-[#0d0d1a] px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex items-end gap-2",children:[(0,b.jsxs)("div",{className:"flex-1 relative",children:[y&&I.length>0&&(0,b.jsx)("div",{className:"absolute bottom-full left-0 right-0 mb-1 bg-[#111128] border border-[#2a2a4a] rounded-lg shadow-xl shadow-black/50 overflow-hidden z-10 max-h-48 overflow-y-auto",children:I.map(a=>(0,b.jsxs)("button",{onClick:()=>{let b,c;return b=m.lastIndexOf("@"),c=m.slice(0,b),void(n(`${c}@${a} `),z(!1),F.current?.focus())},className:"w-full flex items-center gap-2 px-3 py-2 text-xs text-left hover:bg-cyan-500/10 transition-colors",children:[(0,b.jsx)("span",{className:"w-2 h-2 rounded-full bg-cyan-400 shrink-0"}),(0,b.jsx)("span",{className:"text-gray-300",children:a})]},a))}),(0,b.jsx)("textarea",{ref:F,value:m,onChange:a=>{var b;(a=>{n(a);let b=a.lastIndexOf("@");if(b>=0&&(0===b||" "===a[b-1]||"\n"===a[b-1])){let c=a.slice(b+1);if(!c.includes(" ")&&!c.includes("\n")){B(c.toLowerCase()),z(!0);return}}z(!1)})(a.target.value),(b=a.target).style.height="auto",b.style.height=Math.min(b.scrollHeight,150)+"px"},onKeyDown:a=>{"Enter"!==a.key||a.shiftKey||a.nativeEvent.isComposing||(a.preventDefault(),H()),"Escape"===a.key&&z(!1)},placeholder:`Message ${a}...`,rows:1,className:"w-full bg-[#111128] border border-[#2a2a4a] rounded-xl px-4 py-2.5 pr-16 text-sm text-white placeholder-gray-600 focus:border-cyan-500/40 focus:outline-none resize-none transition-colors"}),(0,b.jsx)("div",{className:"absolute right-2 bottom-1.5 flex items-center gap-1",children:(0,b.jsxs)("select",{value:o,onChange:a=>p(a.target.value),className:"bg-transparent text-[9px] text-gray-600 focus:outline-none cursor-pointer",children:[(0,b.jsx)("option",{value:"normal",children:"N"}),(0,b.jsx)("option",{value:"high",children:"H"}),(0,b.jsx)("option",{value:"low",children:"L"})]})})]}),(0,b.jsx)("button",{onClick:H,disabled:q||!m.trim(),className:"p-2.5 bg-cyan-600 hover:bg-cyan-500 disabled:bg-gray-800 disabled:text-gray-600 text-white rounded-xl transition-all shrink-0 active:scale-95",children:q?(0,b.jsx)("div",{className:"w-5 h-5 border-2 border-white/30 border-t-white rounded-full animate-spin"}):(0,b.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 12L3.269 3.126A59.768 59.768 0 0121.485 12 59.77 59.77 0 013.27 20.876L5.999 12zm0 0h7.5"})})})]}),(0,b.jsxs)("div",{className:"flex justify-between text-[9px] text-gray-700 mt-1.5",children:[(0,b.jsx)("span",{children:m.includes("@")?`Sending to: ${w}`:"Type @ to mention another node"}),(0,b.jsx)("span",{children:"Enter to send · Shift+Enter for newline"})]})]})]});return g?(0,b.jsx)("div",{className:"flex flex-col h-full",children:J}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{onClick:f,className:"jsx-c3e56cbc81656d9 fixed inset-0 bg-black/30 z-40 lg:hidden"}),(0,b.jsxs)("div",{className:"jsx-c3e56cbc81656d9 fixed top-0 right-0 h-full w-full lg:w-[500px] bg-[#0a0a1a] border-l border-[#2a2a4a] z-50 flex flex-col shadow-2xl shadow-black/60 animate-slide-in",children:[(0,b.jsxs)("div",{className:"jsx-c3e56cbc81656d9 flex items-center justify-between px-4 py-3 border-b border-[#2a2a4a] bg-[#0d0d1a]",children:[(0,b.jsxs)("div",{className:"jsx-c3e56cbc81656d9 flex items-center gap-3",children:[(0,b.jsx)("div",{className:"jsx-c3e56cbc81656d9 w-8 h-8 rounded-full bg-gradient-to-br from-cyan-500/30 to-blue-500/30 flex items-center justify-center text-xs font-bold text-cyan-300",children:a.slice(0,2)}),(0,b.jsxs)("div",{className:"jsx-c3e56cbc81656d9",children:[(0,b.jsx)("div",{className:"jsx-c3e56cbc81656d9 text-sm font-semibold text-white",children:a}),(0,b.jsx)("div",{className:"jsx-c3e56cbc81656d9 text-[10px] text-gray-500",children:s.size>0?"Processing...":"Ready"})]})]}),(0,b.jsx)("button",{onClick:f,className:"jsx-c3e56cbc81656d9 text-gray-500 hover:text-white p-1.5 rounded-lg hover:bg-[#1a1a2a]",children:(0,b.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,className:"jsx-c3e56cbc81656d9 w-5 h-5",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12",className:"jsx-c3e56cbc81656d9"})})})]}),J]}),(0,b.jsx)(c.default,{id:"c3e56cbc81656d9",children:"@keyframes slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.animate-slide-in{animation:.2s ease-out slide-in}"})]})}])}];
2
-
3
- //# sourceMappingURL=_0s2kgzl._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../node_modules/styled-jsx/dist/index/index.js","../../../../node_modules/styled-jsx/style.js","../../../../app/components/TaskChatPanel.tsx"],"sourcesContent":["require('client-only');\nvar React = require('react');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar React__default = /*#__PURE__*/_interopDefaultLegacy(React);\n\n/*\nBased on Glamor's sheet\nhttps://github.com/threepointone/glamor/blob/667b480d31b3721a905021b26e1290ce92ca2879/src/sheet.js\n*/ function _defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nvar isProd = typeof process !== \"undefined\" && process.env && process.env.NODE_ENV === \"production\";\nvar isString = function(o) {\n return Object.prototype.toString.call(o) === \"[object String]\";\n};\nvar StyleSheet = /*#__PURE__*/ function() {\n function StyleSheet(param) {\n var ref = param === void 0 ? {} : param, _name = ref.name, name = _name === void 0 ? \"stylesheet\" : _name, _optimizeForSpeed = ref.optimizeForSpeed, optimizeForSpeed = _optimizeForSpeed === void 0 ? isProd : _optimizeForSpeed;\n invariant$1(isString(name), \"`name` must be a string\");\n this._name = name;\n this._deletedRulePlaceholder = \"#\" + name + \"-deleted-rule____{}\";\n invariant$1(typeof optimizeForSpeed === \"boolean\", \"`optimizeForSpeed` must be a boolean\");\n this._optimizeForSpeed = optimizeForSpeed;\n this._serverSheet = undefined;\n this._tags = [];\n this._injected = false;\n this._rulesCount = 0;\n var node = typeof window !== \"undefined\" && document.querySelector('meta[property=\"csp-nonce\"]');\n this._nonce = node ? node.getAttribute(\"content\") : null;\n }\n var _proto = StyleSheet.prototype;\n _proto.setOptimizeForSpeed = function setOptimizeForSpeed(bool) {\n invariant$1(typeof bool === \"boolean\", \"`setOptimizeForSpeed` accepts a boolean\");\n invariant$1(this._rulesCount === 0, \"optimizeForSpeed cannot be when rules have already been inserted\");\n this.flush();\n this._optimizeForSpeed = bool;\n this.inject();\n };\n _proto.isOptimizeForSpeed = function isOptimizeForSpeed() {\n return this._optimizeForSpeed;\n };\n _proto.inject = function inject() {\n var _this = this;\n invariant$1(!this._injected, \"sheet already injected\");\n this._injected = true;\n if (typeof window !== \"undefined\" && this._optimizeForSpeed) {\n this._tags[0] = this.makeStyleTag(this._name);\n this._optimizeForSpeed = \"insertRule\" in this.getSheet();\n if (!this._optimizeForSpeed) {\n if (!isProd) {\n console.warn(\"StyleSheet: optimizeForSpeed mode not supported falling back to standard mode.\");\n }\n this.flush();\n this._injected = true;\n }\n return;\n }\n this._serverSheet = {\n cssRules: [],\n insertRule: function(rule, index) {\n if (typeof index === \"number\") {\n _this._serverSheet.cssRules[index] = {\n cssText: rule\n };\n } else {\n _this._serverSheet.cssRules.push({\n cssText: rule\n });\n }\n return index;\n },\n deleteRule: function(index) {\n _this._serverSheet.cssRules[index] = null;\n }\n };\n };\n _proto.getSheetForTag = function getSheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n }\n // this weirdness brought to you by firefox\n for(var i = 0; i < document.styleSheets.length; i++){\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n }\n };\n _proto.getSheet = function getSheet() {\n return this.getSheetForTag(this._tags[this._tags.length - 1]);\n };\n _proto.insertRule = function insertRule(rule, index) {\n invariant$1(isString(rule), \"`insertRule` accepts only strings\");\n if (typeof window === \"undefined\") {\n if (typeof index !== \"number\") {\n index = this._serverSheet.cssRules.length;\n }\n this._serverSheet.insertRule(rule, index);\n return this._rulesCount++;\n }\n if (this._optimizeForSpeed) {\n var sheet = this.getSheet();\n if (typeof index !== \"number\") {\n index = sheet.cssRules.length;\n }\n // this weirdness for perf, and chrome's weird bug\n // https://stackoverflow.com/questions/20007992/chrome-suddenly-stopped-accepting-insertrule\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n }\n return -1;\n }\n } else {\n var insertionPoint = this._tags[index];\n this._tags.push(this.makeStyleTag(this._name, rule, insertionPoint));\n }\n return this._rulesCount++;\n };\n _proto.replaceRule = function replaceRule(index, rule) {\n if (this._optimizeForSpeed || typeof window === \"undefined\") {\n var sheet = typeof window !== \"undefined\" ? this.getSheet() : this._serverSheet;\n if (!rule.trim()) {\n rule = this._deletedRulePlaceholder;\n }\n if (!sheet.cssRules[index]) {\n // @TBD Should we throw an error?\n return index;\n }\n sheet.deleteRule(index);\n try {\n sheet.insertRule(rule, index);\n } catch (error) {\n if (!isProd) {\n console.warn(\"StyleSheet: illegal rule: \\n\\n\" + rule + \"\\n\\nSee https://stackoverflow.com/q/20007992 for more info\");\n }\n // In order to preserve the indices we insert a deleteRulePlaceholder\n sheet.insertRule(this._deletedRulePlaceholder, index);\n }\n } else {\n var tag = this._tags[index];\n invariant$1(tag, \"old rule at index `\" + index + \"` not found\");\n tag.textContent = rule;\n }\n return index;\n };\n _proto.deleteRule = function deleteRule(index) {\n if (typeof window === \"undefined\") {\n this._serverSheet.deleteRule(index);\n return;\n }\n if (this._optimizeForSpeed) {\n this.replaceRule(index, \"\");\n } else {\n var tag = this._tags[index];\n invariant$1(tag, \"rule at index `\" + index + \"` not found\");\n tag.parentNode.removeChild(tag);\n this._tags[index] = null;\n }\n };\n _proto.flush = function flush() {\n this._injected = false;\n this._rulesCount = 0;\n if (typeof window !== \"undefined\") {\n this._tags.forEach(function(tag) {\n return tag && tag.parentNode.removeChild(tag);\n });\n this._tags = [];\n } else {\n // simpler on server\n this._serverSheet.cssRules = [];\n }\n };\n _proto.cssRules = function cssRules() {\n var _this = this;\n if (typeof window === \"undefined\") {\n return this._serverSheet.cssRules;\n }\n return this._tags.reduce(function(rules, tag) {\n if (tag) {\n rules = rules.concat(Array.prototype.map.call(_this.getSheetForTag(tag).cssRules, function(rule) {\n return rule.cssText === _this._deletedRulePlaceholder ? null : rule;\n }));\n } else {\n rules.push(null);\n }\n return rules;\n }, []);\n };\n _proto.makeStyleTag = function makeStyleTag(name, cssString, relativeToTag) {\n if (cssString) {\n invariant$1(isString(cssString), \"makeStyleTag accepts only strings as second parameter\");\n }\n var tag = document.createElement(\"style\");\n if (this._nonce) tag.setAttribute(\"nonce\", this._nonce);\n tag.type = \"text/css\";\n tag.setAttribute(\"data-\" + name, \"\");\n if (cssString) {\n tag.appendChild(document.createTextNode(cssString));\n }\n var head = document.head || document.getElementsByTagName(\"head\")[0];\n if (relativeToTag) {\n head.insertBefore(tag, relativeToTag);\n } else {\n head.appendChild(tag);\n }\n return tag;\n };\n _createClass(StyleSheet, [\n {\n key: \"length\",\n get: function get() {\n return this._rulesCount;\n }\n }\n ]);\n return StyleSheet;\n}();\nfunction invariant$1(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheet: \" + message + \".\");\n }\n}\n\nfunction hash(str) {\n var _$hash = 5381, i = str.length;\n while(i){\n _$hash = _$hash * 33 ^ str.charCodeAt(--i);\n }\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n * integers. Since we want the results to be always positive, convert the\n * signed int to an unsigned by doing an unsigned bitshift. */ return _$hash >>> 0;\n}\nvar stringHash = hash;\n\nvar sanitize = function(rule) {\n return rule.replace(/\\/style/gi, \"\\\\/style\");\n};\nvar cache = {};\n/**\n * computeId\n *\n * Compute and memoize a jsx id from a basedId and optionally props.\n */ function computeId(baseId, props) {\n if (!props) {\n return \"jsx-\" + baseId;\n }\n var propsToString = String(props);\n var key = baseId + propsToString;\n if (!cache[key]) {\n cache[key] = \"jsx-\" + stringHash(baseId + \"-\" + propsToString);\n }\n return cache[key];\n}\n/**\n * computeSelector\n *\n * Compute and memoize dynamic selectors.\n */ function computeSelector(id, css) {\n var selectoPlaceholderRegexp = /__jsx-style-dynamic-selector/g;\n // Sanitize SSR-ed CSS.\n // Client side code doesn't need to be sanitized since we use\n // document.createTextNode (dev) and the CSSOM api sheet.insertRule (prod).\n if (typeof window === \"undefined\") {\n css = sanitize(css);\n }\n var idcss = id + css;\n if (!cache[idcss]) {\n cache[idcss] = css.replace(selectoPlaceholderRegexp, id);\n }\n return cache[idcss];\n}\n\nfunction mapRulesToStyle(cssRules, options) {\n if (options === void 0) options = {};\n return cssRules.map(function(args) {\n var id = args[0];\n var css = args[1];\n return /*#__PURE__*/ React__default[\"default\"].createElement(\"style\", {\n id: \"__\" + id,\n // Avoid warnings upon render with a key\n key: \"__\" + id,\n nonce: options.nonce ? options.nonce : undefined,\n dangerouslySetInnerHTML: {\n __html: css\n }\n });\n });\n}\nvar StyleSheetRegistry = /*#__PURE__*/ function() {\n function StyleSheetRegistry(param) {\n var ref = param === void 0 ? {} : param, _styleSheet = ref.styleSheet, styleSheet = _styleSheet === void 0 ? null : _styleSheet, _optimizeForSpeed = ref.optimizeForSpeed, optimizeForSpeed = _optimizeForSpeed === void 0 ? false : _optimizeForSpeed;\n this._sheet = styleSheet || new StyleSheet({\n name: \"styled-jsx\",\n optimizeForSpeed: optimizeForSpeed\n });\n this._sheet.inject();\n if (styleSheet && typeof optimizeForSpeed === \"boolean\") {\n this._sheet.setOptimizeForSpeed(optimizeForSpeed);\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n }\n var _proto = StyleSheetRegistry.prototype;\n _proto.add = function add(props) {\n var _this = this;\n if (undefined === this._optimizeForSpeed) {\n this._optimizeForSpeed = Array.isArray(props.children);\n this._sheet.setOptimizeForSpeed(this._optimizeForSpeed);\n this._optimizeForSpeed = this._sheet.isOptimizeForSpeed();\n }\n if (typeof window !== \"undefined\" && !this._fromServer) {\n this._fromServer = this.selectFromServer();\n this._instancesCounts = Object.keys(this._fromServer).reduce(function(acc, tagName) {\n acc[tagName] = 0;\n return acc;\n }, {});\n }\n var ref = this.getIdAndRules(props), styleId = ref.styleId, rules = ref.rules;\n // Deduping: just increase the instances count.\n if (styleId in this._instancesCounts) {\n this._instancesCounts[styleId] += 1;\n return;\n }\n var indices = rules.map(function(rule) {\n return _this._sheet.insertRule(rule);\n })// Filter out invalid rules\n .filter(function(index) {\n return index !== -1;\n });\n this._indices[styleId] = indices;\n this._instancesCounts[styleId] = 1;\n };\n _proto.remove = function remove(props) {\n var _this = this;\n var styleId = this.getIdAndRules(props).styleId;\n invariant(styleId in this._instancesCounts, \"styleId: `\" + styleId + \"` not found\");\n this._instancesCounts[styleId] -= 1;\n if (this._instancesCounts[styleId] < 1) {\n var tagFromServer = this._fromServer && this._fromServer[styleId];\n if (tagFromServer) {\n tagFromServer.parentNode.removeChild(tagFromServer);\n delete this._fromServer[styleId];\n } else {\n this._indices[styleId].forEach(function(index) {\n return _this._sheet.deleteRule(index);\n });\n delete this._indices[styleId];\n }\n delete this._instancesCounts[styleId];\n }\n };\n _proto.update = function update(props, nextProps) {\n this.add(nextProps);\n this.remove(props);\n };\n _proto.flush = function flush() {\n this._sheet.flush();\n this._sheet.inject();\n this._fromServer = undefined;\n this._indices = {};\n this._instancesCounts = {};\n };\n _proto.cssRules = function cssRules() {\n var _this = this;\n var fromServer = this._fromServer ? Object.keys(this._fromServer).map(function(styleId) {\n return [\n styleId,\n _this._fromServer[styleId]\n ];\n }) : [];\n var cssRules = this._sheet.cssRules();\n return fromServer.concat(Object.keys(this._indices).map(function(styleId) {\n return [\n styleId,\n _this._indices[styleId].map(function(index) {\n return cssRules[index].cssText;\n }).join(_this._optimizeForSpeed ? \"\" : \"\\n\")\n ];\n })// filter out empty rules\n .filter(function(rule) {\n return Boolean(rule[1]);\n }));\n };\n _proto.styles = function styles(options) {\n return mapRulesToStyle(this.cssRules(), options);\n };\n _proto.getIdAndRules = function getIdAndRules(props) {\n var css = props.children, dynamic = props.dynamic, id = props.id;\n if (dynamic) {\n var styleId = computeId(id, dynamic);\n return {\n styleId: styleId,\n rules: Array.isArray(css) ? css.map(function(rule) {\n return computeSelector(styleId, rule);\n }) : [\n computeSelector(styleId, css)\n ]\n };\n }\n return {\n styleId: computeId(id),\n rules: Array.isArray(css) ? css : [\n css\n ]\n };\n };\n /**\n * selectFromServer\n *\n * Collects style tags from the document with id __jsx-XXX\n */ _proto.selectFromServer = function selectFromServer() {\n var elements = Array.prototype.slice.call(document.querySelectorAll('[id^=\"__jsx-\"]'));\n return elements.reduce(function(acc, element) {\n var id = element.id.slice(2);\n acc[id] = element;\n return acc;\n }, {});\n };\n return StyleSheetRegistry;\n}();\nfunction invariant(condition, message) {\n if (!condition) {\n throw new Error(\"StyleSheetRegistry: \" + message + \".\");\n }\n}\nvar StyleSheetContext = /*#__PURE__*/ React.createContext(null);\nStyleSheetContext.displayName = \"StyleSheetContext\";\nfunction createStyleRegistry() {\n return new StyleSheetRegistry();\n}\nfunction StyleRegistry(param) {\n var configuredRegistry = param.registry, children = param.children;\n var rootRegistry = React.useContext(StyleSheetContext);\n var ref = React.useState(function() {\n return rootRegistry || configuredRegistry || createStyleRegistry();\n }), registry = ref[0];\n return /*#__PURE__*/ React__default[\"default\"].createElement(StyleSheetContext.Provider, {\n value: registry\n }, children);\n}\nfunction useStyleRegistry() {\n return React.useContext(StyleSheetContext);\n}\n\n// Opt-into the new `useInsertionEffect` API in React 18, fallback to `useLayoutEffect`.\n// https://github.com/reactwg/react-18/discussions/110\nvar useInsertionEffect = React__default[\"default\"].useInsertionEffect || React__default[\"default\"].useLayoutEffect;\nvar defaultRegistry = typeof window !== \"undefined\" ? createStyleRegistry() : undefined;\nfunction JSXStyle(props) {\n var registry = defaultRegistry ? defaultRegistry : useStyleRegistry();\n // If `registry` does not exist, we do nothing here.\n if (!registry) {\n return null;\n }\n if (typeof window === \"undefined\") {\n registry.add(props);\n return null;\n }\n useInsertionEffect(function() {\n registry.add(props);\n return function() {\n registry.remove(props);\n };\n // props.children can be string[], will be striped since id is identical\n }, [\n props.id,\n String(props.dynamic)\n ]);\n return null;\n}\nJSXStyle.dynamic = function(info) {\n return info.map(function(tagInfo) {\n var baseId = tagInfo[0];\n var props = tagInfo[1];\n return computeId(baseId, props);\n }).join(\" \");\n};\n\nexports.StyleRegistry = StyleRegistry;\nexports.createStyleRegistry = createStyleRegistry;\nexports.style = JSXStyle;\nexports.useStyleRegistry = useStyleRegistry;\n","module.exports = require('./dist/index').style\n","'use client';\n\nimport { useState, useEffect, useRef, useCallback } from 'react';\nimport { timeAgo } from './utils';\n\ninterface ChatTask {\n task_id: string;\n from_name: string;\n to_name: string;\n status: string;\n priority: string;\n content: string;\n result: string;\n created_at: string;\n}\n\nconst STATUS_STEPS = ['created', 'delivered', 'running', 'replied'];\nconst STATUS_COLORS: Record<string, string> = {\n created: 'bg-gray-400', delivered: 'bg-blue-400', running: 'bg-green-400',\n replied: 'bg-purple-400', failed: 'bg-red-400', closed: 'bg-gray-500',\n};\n\nfunction StatusBar({ status }: { status: string }) {\n const idx = STATUS_STEPS.indexOf(status);\n const isFailed = status === 'failed';\n return (\n <div className=\"flex items-center gap-1 mt-1.5\">\n {STATUS_STEPS.map((s, i) => (\n <div key={s} className=\"flex items-center gap-1\">\n <div className={`w-2 h-2 rounded-full transition-all duration-700 ${\n isFailed ? (i === 0 ? 'bg-red-400' : 'bg-gray-700')\n : i <= idx ? (STATUS_COLORS[s] || 'bg-gray-600') : 'bg-gray-700'\n }`} />\n {i < STATUS_STEPS.length - 1 && (\n <div className={`w-4 h-px transition-colors duration-700 ${\n isFailed ? 'bg-red-800' : i < idx ? 'bg-gray-500' : 'bg-gray-800'\n }`} />\n )}\n </div>\n ))}\n <span className={`text-[10px] ml-1.5 font-medium ${\n isFailed ? 'text-red-400' : status === 'replied' ? 'text-purple-400'\n : status === 'running' ? 'text-green-400' : 'text-gray-500'\n }`}>{status}</span>\n {(status === 'running' || status === 'delivered') && (\n <span className=\"ml-1\">\n <span className=\"inline-block w-1 h-1 rounded-full bg-green-400 animate-pulse\" />\n <span className=\"inline-block w-1 h-1 rounded-full bg-green-400 animate-pulse ml-0.5\" style={{ animationDelay: '0.2s' }} />\n <span className=\"inline-block w-1 h-1 rounded-full bg-green-400 animate-pulse ml-0.5\" style={{ animationDelay: '0.4s' }} />\n </span>\n )}\n </div>\n );\n}\n\nfunction MarkdownContent({ text }: { text: string }) {\n if (!text) return <span className=\"text-gray-600 italic\">No content</span>;\n\n const parts = text.split(/(```[\\s\\S]*?```|`[^`\\n]+`|\\*\\*[^*]+\\*\\*)/g);\n return (\n <div className=\"whitespace-pre-wrap break-words leading-relaxed\">\n {parts.map((part, i) => {\n if (part.startsWith('```') && part.endsWith('```')) {\n const lines = part.slice(3, -3);\n const lang = lines.match(/^(\\w+)\\n/)?.[1] || '';\n const code = lang ? lines.slice(lang.length + 1) : lines;\n return (\n <div key={i} className=\"my-2 rounded-lg overflow-hidden border border-[#1a1a2a]\">\n {lang && <div className=\"bg-[#0a0a15] px-3 py-1 text-[10px] text-gray-500 border-b border-[#1a1a2a]\">{lang}</div>}\n <pre className=\"bg-[#050510] px-3 py-2 text-[11px] text-green-300 overflow-x-auto\">{code}</pre>\n </div>\n );\n }\n if (part.startsWith('`') && part.endsWith('`')) {\n return <code key={i} className=\"bg-[#0a0a15] rounded px-1.5 py-0.5 text-cyan-300 text-[11px] border border-[#1a1a2a]\">{part.slice(1, -1)}</code>;\n }\n if (part.startsWith('**') && part.endsWith('**')) {\n return <strong key={i} className=\"text-white font-semibold\">{part.slice(2, -2)}</strong>;\n }\n return <span key={i}>{part}</span>;\n })}\n </div>\n );\n}\n\ninterface TaskChatPanelProps {\n alias: string;\n onClose: () => void;\n /** When true, renders without outer panel chrome (for use inside CommandCenter) */\n inline?: boolean;\n /** Available nodes for @ mention */\n availableNodes?: string[];\n}\n\nexport function TaskChatPanel({ alias, onClose, inline, availableNodes }: TaskChatPanelProps) {\n const [messages, setMessages] = useState<ChatTask[]>([]);\n const [input, setInput] = useState('');\n const [priority, setPriority] = useState('normal');\n const [sending, setSending] = useState(false);\n const [pollingIds, setPollingIds] = useState<Set<string>>(new Set());\n const [historyLoaded, setHistoryLoaded] = useState(false);\n const [targetAlias, setTargetAlias] = useState(alias);\n const [showMentions, setShowMentions] = useState(false);\n const [mentionFilter, setMentionFilter] = useState('');\n const [mentionNodes, setMentionNodes] = useState<string[]>([]);\n const messagesEndRef = useRef<HTMLDivElement>(null);\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n\n // Load available nodes for @ mention\n useEffect(() => {\n if (availableNodes) { setMentionNodes(availableNodes); return; }\n fetch('/api/hub/status').then(r => r.json()).then(d => {\n const nodes = (d.sessions || []).filter((s: { status: string }) => s.status !== 'offline').map((s: { alias: string }) => s.alias);\n setMentionNodes(nodes);\n }).catch(() => {});\n }, [availableNodes]);\n\n // Reset target when alias changes\n useEffect(() => { setTargetAlias(alias); }, [alias]);\n\n // Load task history for this node\n const loadHistory = useCallback(async () => {\n try {\n const res = await fetch(`/api/hub/tasks?to_name=${encodeURIComponent(alias)}&limit=30`);\n const data = await res.json();\n if (data.tasks) {\n // Show oldest first\n setMessages(data.tasks.reverse());\n }\n } catch {} finally {\n setHistoryLoaded(true);\n }\n }, [alias]);\n\n useEffect(() => {\n setMessages([]);\n setHistoryLoaded(false);\n loadHistory();\n // Focus textarea\n setTimeout(() => textareaRef.current?.focus(), 300);\n }, [alias, loadHistory]);\n\n // Auto-scroll to bottom\n useEffect(() => {\n messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' });\n }, [messages]);\n\n // Poll pending tasks for status updates\n useEffect(() => {\n if (pollingIds.size === 0) return;\n const startTime = Date.now();\n const interval = setInterval(async () => {\n // Timeout after 120s\n if (Date.now() - startTime > 120000) {\n setPollingIds(new Set());\n clearInterval(interval);\n return;\n }\n for (const taskId of pollingIds) {\n try {\n const res = await fetch(`/api/hub/tasks?task_id=${encodeURIComponent(taskId)}`);\n const data = await res.json();\n if (data.tasks?.[0]) {\n const updated = data.tasks[0];\n setMessages(prev => prev.map(m => m.task_id === taskId ? { ...m, ...updated } : m));\n if (['replied', 'failed', 'closed', 'expired', 'cancelled'].includes(updated.status)) {\n setPollingIds(prev => { const n = new Set(prev); n.delete(taskId); return n; });\n }\n }\n } catch {}\n }\n }, 2000);\n return () => clearInterval(interval);\n }, [pollingIds]);\n\n const send = async () => {\n if (!input.trim() || sending) return;\n let taskContent = input.trim();\n let sendTo = targetAlias;\n\n // Parse @mention at start: \"@NodeName rest of message\"\n const atMatch = taskContent.match(/^@(\\S+)\\s+([\\s\\S]+)/);\n if (atMatch) {\n const mentioned = mentionNodes.find(n => n.toLowerCase() === atMatch[1].toLowerCase());\n if (mentioned) {\n sendTo = mentioned;\n taskContent = atMatch[2];\n }\n }\n\n setSending(true);\n setInput('');\n setShowMentions(false);\n if (textareaRef.current) textareaRef.current.style.height = 'auto';\n\n // Optimistic echo first so the user always sees their message in history\n // even if the network call fails or the server returns ok:false. Earlier\n // version only added on data.ok=true → silent failures looked like\n // 'tasks get swallowed'.\n const localTaskId = `tmp-${Date.now()}`;\n const optimistic: ChatTask = {\n task_id: localTaskId,\n from_name: 'Dashboard',\n to_name: sendTo,\n status: 'created',\n priority,\n content: taskContent,\n result: '',\n created_at: new Date().toISOString(),\n };\n setMessages(prev => [...prev, optimistic]);\n\n try {\n const res = await fetch('/api/hub/send', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ alias: sendTo, task: taskContent, priority }),\n });\n const data = await res.json().catch(() => ({ ok: false, error: `HTTP ${res.status}` }));\n if (data.ok && data.message_id) {\n setMessages(prev => prev.map(m =>\n m.task_id === localTaskId ? { ...m, task_id: data.message_id, status: 'delivered' } : m,\n ));\n setPollingIds(prev => new Set(prev).add(data.message_id));\n } else {\n const reason = data.error || data.detail || `send failed (status ${res.status})`;\n setMessages(prev => prev.map(m =>\n m.task_id === localTaskId ? { ...m, status: 'failed', result: `❌ ${reason}` } : m,\n ));\n }\n } catch (e: unknown) {\n const msg = e instanceof Error ? e.message : String(e);\n setMessages(prev => prev.map(m =>\n m.task_id === localTaskId ? { ...m, status: 'failed', result: `❌ network error: ${msg}` } : m,\n ));\n }\n setSending(false);\n textareaRef.current?.focus();\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n // Enter sends, Shift+Enter inserts newline (standard chat UX).\n // Users habit-pressed Enter expecting send and saw nothing happen.\n if (e.key === 'Enter' && !e.shiftKey && !e.nativeEvent.isComposing) {\n e.preventDefault();\n send();\n }\n if (e.key === 'Escape') setShowMentions(false);\n };\n\n const handleInputChange = (value: string) => {\n setInput(value);\n // Check if user just typed @\n const lastAt = value.lastIndexOf('@');\n if (lastAt >= 0 && (lastAt === 0 || value[lastAt - 1] === ' ' || value[lastAt - 1] === '\\n')) {\n const after = value.slice(lastAt + 1);\n if (!after.includes(' ') && !after.includes('\\n')) {\n setMentionFilter(after.toLowerCase());\n setShowMentions(true);\n return;\n }\n }\n setShowMentions(false);\n };\n\n const insertMention = (nodeName: string) => {\n const lastAt = input.lastIndexOf('@');\n const before = input.slice(0, lastAt);\n setInput(`${before}@${nodeName} `);\n setShowMentions(false);\n textareaRef.current?.focus();\n };\n\n const filteredMentions = mentionNodes.filter(n =>\n n !== alias && n.toLowerCase().includes(mentionFilter)\n ).slice(0, 8);\n\n const autoResize = (el: HTMLTextAreaElement) => {\n el.style.height = 'auto';\n el.style.height = Math.min(el.scrollHeight, 150) + 'px';\n };\n\n // Inline mode: just the chat content, no panel chrome\n const chatContent = (\n <>\n {/* Messages area */}\n <div className=\"flex-1 overflow-y-auto px-4 py-4 space-y-4\">\n {!historyLoaded && (\n <div className=\"flex justify-center py-8\">\n <div className=\"w-5 h-5 border-2 border-cyan-500/30 border-t-cyan-500 rounded-full animate-spin\" />\n </div>\n )}\n {historyLoaded && messages.length === 0 && (\n <div className=\"text-center py-12\">\n <div className=\"text-3xl mb-3\">💬</div>\n <div className=\"text-gray-500 text-sm\">Start a conversation</div>\n <div className=\"text-gray-600 text-xs mt-1\">Send a task to {alias}</div>\n </div>\n )}\n\n {messages.map((m, idx) => (\n <div key={m.task_id} className=\"space-y-2\">\n {/* Outgoing task */}\n <div className=\"flex justify-end\">\n <div className=\"max-w-[85%] bg-cyan-500/8 border border-cyan-500/15 rounded-2xl rounded-br-md px-4 py-2.5 shadow-sm\">\n <div className=\"text-[13px] text-gray-200\">\n <MarkdownContent text={m.content} />\n </div>\n <div className=\"flex items-center justify-between mt-1.5 gap-3\">\n <StatusBar status={m.status} />\n <span className=\"text-[9px] text-gray-600 shrink-0\">{timeAgo(m.created_at)}</span>\n </div>\n </div>\n </div>\n\n {/* Incoming reply */}\n {m.result && (\n <div className=\"flex justify-start\">\n <div className=\"max-w-[85%] bg-green-500/8 border border-green-500/15 rounded-2xl rounded-bl-md px-4 py-2.5 shadow-sm\">\n <div className=\"text-[10px] text-green-400 font-medium mb-1.5\">{m.to_name}</div>\n <div className=\"text-[13px] text-gray-200\">\n <MarkdownContent text={m.result} />\n </div>\n </div>\n </div>\n )}\n\n {/* Typing indicator when running */}\n {m.status === 'running' && !m.result && (\n <div className=\"flex justify-start\">\n <div className=\"bg-[#111128] border border-[#2a2a4a] rounded-2xl rounded-bl-md px-4 py-3\">\n <div className=\"flex gap-1\">\n <span className=\"w-2 h-2 rounded-full bg-gray-500 animate-bounce\" style={{ animationDelay: '0s' }} />\n <span className=\"w-2 h-2 rounded-full bg-gray-500 animate-bounce\" style={{ animationDelay: '0.15s' }} />\n <span className=\"w-2 h-2 rounded-full bg-gray-500 animate-bounce\" style={{ animationDelay: '0.3s' }} />\n </div>\n </div>\n </div>\n )}\n </div>\n ))}\n <div ref={messagesEndRef} />\n </div>\n\n {/* Input area */}\n <div className=\"border-t border-[#2a2a4a] bg-[#0d0d1a] px-4 py-3\">\n <div className=\"flex items-end gap-2\">\n <div className=\"flex-1 relative\">\n {/* @ mention dropdown */}\n {showMentions && filteredMentions.length > 0 && (\n <div className=\"absolute bottom-full left-0 right-0 mb-1 bg-[#111128] border border-[#2a2a4a] rounded-lg shadow-xl shadow-black/50 overflow-hidden z-10 max-h-48 overflow-y-auto\">\n {filteredMentions.map(node => (\n <button key={node} onClick={() => insertMention(node)}\n className=\"w-full flex items-center gap-2 px-3 py-2 text-xs text-left hover:bg-cyan-500/10 transition-colors\">\n <span className=\"w-2 h-2 rounded-full bg-cyan-400 shrink-0\" />\n <span className=\"text-gray-300\">{node}</span>\n </button>\n ))}\n </div>\n )}\n <textarea\n ref={textareaRef}\n value={input}\n onChange={e => { handleInputChange(e.target.value); autoResize(e.target); }}\n onKeyDown={handleKeyDown}\n placeholder={`Message ${alias}...`}\n rows={1}\n className=\"w-full bg-[#111128] border border-[#2a2a4a] rounded-xl px-4 py-2.5 pr-16 text-sm text-white placeholder-gray-600 focus:border-cyan-500/40 focus:outline-none resize-none transition-colors\"\n />\n <div className=\"absolute right-2 bottom-1.5 flex items-center gap-1\">\n <select value={priority} onChange={e => setPriority(e.target.value)}\n className=\"bg-transparent text-[9px] text-gray-600 focus:outline-none cursor-pointer\">\n <option value=\"normal\">N</option>\n <option value=\"high\">H</option>\n <option value=\"low\">L</option>\n </select>\n </div>\n </div>\n <button onClick={send} disabled={sending || !input.trim()}\n className=\"p-2.5 bg-cyan-600 hover:bg-cyan-500 disabled:bg-gray-800 disabled:text-gray-600 text-white rounded-xl transition-all shrink-0 active:scale-95\">\n {sending ? (\n <div className=\"w-5 h-5 border-2 border-white/30 border-t-white rounded-full animate-spin\" />\n ) : (\n <svg className=\"w-5 h-5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M6 12L3.269 3.126A59.768 59.768 0 0121.485 12 59.77 59.77 0 013.27 20.876L5.999 12zm0 0h7.5\" />\n </svg>\n )}\n </button>\n </div>\n <div className=\"flex justify-between text-[9px] text-gray-700 mt-1.5\">\n <span>{input.includes('@') ? `Sending to: ${targetAlias}` : `Type @ to mention another node`}</span>\n <span>Enter to send · Shift+Enter for newline</span>\n </div>\n </div>\n </>\n );\n\n if (inline) {\n return <div className=\"flex flex-col h-full\">{chatContent}</div>;\n }\n\n return (\n <>\n <div className=\"fixed inset-0 bg-black/30 z-40 lg:hidden\" onClick={onClose} />\n <div className=\"fixed top-0 right-0 h-full w-full lg:w-[500px] bg-[#0a0a1a] border-l border-[#2a2a4a] z-50 flex flex-col shadow-2xl shadow-black/60 animate-slide-in\">\n {/* Header */}\n <div className=\"flex items-center justify-between px-4 py-3 border-b border-[#2a2a4a] bg-[#0d0d1a]\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-8 h-8 rounded-full bg-gradient-to-br from-cyan-500/30 to-blue-500/30 flex items-center justify-center text-xs font-bold text-cyan-300\">\n {alias.slice(0, 2)}\n </div>\n <div>\n <div className=\"text-sm font-semibold text-white\">{alias}</div>\n <div className=\"text-[10px] text-gray-500\">{pollingIds.size > 0 ? 'Processing...' : 'Ready'}</div>\n </div>\n </div>\n <button onClick={onClose} className=\"text-gray-500 hover:text-white p-1.5 rounded-lg hover:bg-[#1a1a2a]\">\n <svg className=\"w-5 h-5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n {chatContent}\n </div>\n <style jsx global>{`\n @keyframes slide-in { from { transform: translateX(100%); } to { transform: translateX(0); } }\n .animate-slide-in { animation: slide-in 0.2s ease-out; }\n `}</style>\n </>\n );\n}\n"],"names":["React","_interopDefaultLegacy","e","React__default","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","isProd","process","env","isString","o","toString","call","StyleSheet","param","ref","_name","name","_optimizeForSpeed","optimizeForSpeed","invariant$1","_deletedRulePlaceholder","_serverSheet","undefined","_tags","_injected","_rulesCount","node","document","querySelector","_nonce","_proto","setOptimizeForSpeed","bool","flush","inject","isOptimizeForSpeed","_this","cssRules","insertRule","rule","index","cssText","push","deleteRule","getSheetForTag","tag","sheet","styleSheets","ownerNode","getSheet","insertionPoint","replaceRule","trim","error","console","warn","makeStyleTag","cssString","relativeToTag","createElement","setAttribute","type","appendChild","createTextNode","head","getElementsByTagName","insertBefore","get","condition","message","Error","hash","str","_$hash","charCodeAt","stringHash","sanitize","replace","cache","computeId","baseId","propsToString","String","computeSelector","id","css","selectoPlaceholderRegexp","idcss","mapRulesToStyle","options","map","args","nonce","dangerouslySetInnerHTML","__html","StyleSheetRegistry","_styleSheet","styleSheet","_sheet","_fromServer","_indices","_instancesCounts","add","Array","isArray","children","getIdAndRules","styleId","rules","indices","filter","remove","invariant","tagFromServer","parentNode","removeChild","forEach","update","nextProps","fromServer","keys","concat","join","Boolean","styles","dynamic","selectFromServer","elements","slice","querySelectorAll","reduce","acc","element","StyleSheetContext","createContext","displayName","createStyleRegistry","StyleRegistry","configuredRegistry","registry","rootRegistry","useContext","useState","Provider","value","useStyleRegistry","useInsertionEffect","useLayoutEffect","defaultRegistry","JSXStyle","info","tagInfo","exports","style","module","STATUS_STEPS","STATUS_COLORS","created","delivered","running","replied","failed","closed","StatusBar","status","idx","indexOf","isFailed","className","s","animationDelay","MarkdownContent","text","parts","split","part","startsWith","endsWith","lines","lang","match","code","TaskChatPanel","alias","onClose","inline","availableNodes","messages","setMessages","input","setInput","priority","setPriority","sending","setSending","pollingIds","setPollingIds","Set","historyLoaded","setHistoryLoaded","targetAlias","setTargetAlias","showMentions","setShowMentions","mentionFilter","setMentionFilter","mentionNodes","setMentionNodes","messagesEndRef","textareaRef","fetch","then","r","json","d","nodes","sessions","catch","loadHistory","res","encodeURIComponent","data","tasks","reverse","setTimeout","current","focus","scrollIntoView","behavior","size","startTime","Date","now","interval","setInterval","clearInterval","taskId","updated","prev","m","task_id","includes","n","delete","send","taskContent","sendTo","atMatch","mentioned","find","toLowerCase","height","localTaskId","optimistic","from_name","to_name","content","result","created_at","toISOString","method","headers","body","JSON","stringify","task","ok","message_id","reason","detail","msg","handleKeyDown","shiftKey","nativeEvent","isComposing","preventDefault","handleInputChange","lastAt","lastIndexOf","after","insertMention","nodeName","before","filteredMentions","autoResize","el","Math","min","scrollHeight","chatContent","onClick","onChange","onKeyDown","placeholder","rows","disabled","fill","viewBox","stroke","strokeWidth","strokeLinecap","strokeLinejoin"],"mappings":"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","ignoreList":[0,1]}
@@ -1,3 +0,0 @@
1
- module.exports=[43515,a=>{"use strict";a.s(["formatUptime",0,function(a){let b=Math.floor(a/3600),c=Math.floor(a%3600/60);return b>0?`${b}h ${c}m`:`${c}m`},"timeAgo",0,function(a){if(!a)return"--";let b=Math.floor((Date.now()-new Date(a.replace(" ","T")+"Z").getTime())/1e3);return b<60?`${b}s ago`:b<3600?`${Math.floor(b/60)}m ago`:b<86400?`${Math.floor(b/3600)}h ago`:`${Math.floor(b/86400)}d ago`}])},44332,a=>{"use strict";var b=a.i(72596),c=a.i(22397);let d=async a=>{let b=await fetch(a);if(401===b.status)throw window.location.assign("/login"),Error("unauthorized");return b.json()},e={refreshInterval:5e3,dedupingInterval:3e3};function f(a,b){if(!b)return a;let c=a.includes("?")?"&":"?";return`${a}${c}network_id=${encodeURIComponent(b)}`}a.s(["useAnetConfig",0,function(){let{data:a}=(0,b.default)("/api/anet/config",d,{refreshInterval:3e4});return{config:a||null}},"useHealth",0,function(){let{data:a,error:c}=(0,b.default)("/api/hub/health",d,e);return{health:a||null,error:c}},"useLicense",0,function(){let{data:a,error:c}=(0,b.default)("/api/hub/license",d,{refreshInterval:6e4});return{license:a?.ok?a:null,error:c}},"useMessages",0,function(a=100){let{networkId:g}=(0,c.useNetworkId)(),{data:h,error:i,isLoading:j}=(0,b.default)(f(`/api/hub/messages?limit=${a}`,g),d,e);return{messages:h?.messages||[],error:i,isLoading:j}},"useSessions",0,function(){let{networkId:a}=(0,c.useNetworkId)(),{data:g,error:h,isLoading:i}=(0,b.default)(f("/api/hub/status",a),d,e);return{sessions:g?.sessions||[],hint:g?._hint,error:h,isLoading:i}},"useStats",0,function(){let{networkId:a}=(0,c.useNetworkId)(),{data:g,error:h}=(0,b.default)(f("/api/hub/stats",a),d,e);return{stats:g?.ok?g:null,error:h}},"useTasks",0,function(a){let{networkId:g}=(0,c.useNetworkId)(),h=new URLSearchParams({limit:"100",...a}).toString(),{data:i,error:j,isLoading:k}=(0,b.default)(f(`/api/hub/tasks?${h}`,g),d,e);return{tasks:i?.tasks||[],count:i?.count??0,source:i?.source,error:j,isLoading:k}}])},96794,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(43515),f=a.i(44332),g=a.i(15261);let h={working:"bg-green-500/10 text-green-300 border-green-500/20",idle:"bg-blue-500/10 text-blue-300 border-blue-500/20",blocked:"bg-yellow-500/10 text-yellow-300 border-yellow-500/20",error:"bg-red-500/10 text-red-300 border-red-500/20",offline:"bg-gray-500/10 text-gray-500 border-gray-500/20"};a.s(["default",0,function(){let a,i,j,k,{sessions:l,isLoading:m}=(0,f.useSessions)(),{health:n}=(0,f.useHealth)(),o=n?.sse_sessions||{},[p,q]=(0,c.useState)(""),[r,s]=(0,c.useState)(""),[t,u]=(0,c.useState)("list"),[v,w]=(0,c.useState)({}),[x,y]=(0,c.useState)(null),[z,A]=(0,c.useState)({}),[B,C]=(0,c.useState)(null),D=l.map(a=>({...a,online:!!o[a.alias]})).filter(a=>"online"===p?a.online:"offline"===p?!a.online:!p||p===a.status).filter(a=>!r||a.alias.toLowerCase().includes(r.toLowerCase())||(a.agent||"").toLowerCase().includes(r.toLowerCase())).sort((a,b)=>!!b.online-!!a.online||("working"===b.status)-("working"===a.status)),E=l.filter(a=>o[a.alias]).length,F=a=>{y(b=>b===a?null:a),A(b=>({...b,[a]:{}}))},G=(a,b)=>{w(c=>({...c,[a]:b}))},H=async a=>{let b=v[a]?.trim()||"";if(b){A(b=>({...b,[a]:{sending:!0}}));try{let c=await fetch("/api/hub/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:a,task:b})}),d=await c.json();if(!c.ok||d?.ok===!1)throw Error(d?.error||"Send failed");w(b=>({...b,[a]:""})),A(b=>({...b,[a]:{success:"Task sent"}})),y(null)}catch(b){A(c=>({...c,[a]:{error:b instanceof Error?b.message:"Send failed"}}))}}};return(0,b.jsxs)("div",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono",children:[(0,b.jsxs)("div",{className:"flex items-center gap-4 mb-6",children:[(0,b.jsx)("h1",{className:"text-2xl font-bold text-white lg:ml-0 ml-10",children:"Nodes"}),(0,b.jsxs)("span",{className:"text-xs bg-green-900/30 text-green-400 px-2 py-0.5 rounded-full border border-green-800/30",children:[E," online"]}),(0,b.jsxs)("span",{className:"text-xs bg-gray-900/30 text-gray-400 px-2 py-0.5 rounded-full border border-gray-800/30",children:[l.length," total"]})]}),l.length>0&&(a=D.filter(a=>a.online&&"working"===a.status).length,i=D.filter(a=>a.online&&"idle"===a.status).length,j=D.filter(a=>!a.online).length,k=D.length||1,(0,b.jsxs)("div",{className:"mb-6",children:[(0,b.jsxs)("div",{className:"flex h-2 rounded-full overflow-hidden bg-gray-800",children:[a>0&&(0,b.jsx)("div",{className:"bg-green-500",style:{width:`${a/k*100}%`}}),i>0&&(0,b.jsx)("div",{className:"bg-cyan-500",style:{width:`${i/k*100}%`}}),j>0&&(0,b.jsx)("div",{className:"bg-gray-600",style:{width:`${j/k*100}%`}})]}),(0,b.jsxs)("div",{className:"flex gap-4 mt-1.5 text-[10px] text-gray-500",children:[a>0&&(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-green-500 mr-1"}),a," working"]}),i>0&&(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-cyan-500 mr-1"}),i," idle"]}),j>0&&(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-gray-600 mr-1"}),j," offline"]})]})]})),(0,b.jsxs)("div",{className:"flex flex-wrap gap-3 mb-6",children:[(0,b.jsx)("input",{type:"text",value:r,onChange:a=>s(a.target.value),placeholder:"Search nodes...",className:"bg-[#111128] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white placeholder-gray-600 focus:border-blue-500/50 focus:outline-none w-48"}),(0,b.jsxs)("select",{value:p,onChange:a=>q(a.target.value),className:"bg-[#111128] border border-[#2a2a4a] rounded-lg px-3 py-2 text-sm text-white focus:border-blue-500/50 focus:outline-none",children:[(0,b.jsx)("option",{value:"",children:"All"}),(0,b.jsx)("option",{value:"online",children:"Online"}),(0,b.jsx)("option",{value:"offline",children:"Offline"}),(0,b.jsx)("option",{value:"working",children:"Working"}),(0,b.jsx)("option",{value:"idle",children:"Idle"}),(0,b.jsx)("option",{value:"blocked",children:"Blocked"}),(0,b.jsx)("option",{value:"error",children:"Error"})]}),(0,b.jsx)("div",{className:"ml-auto flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 text-sm",children:["list","grid"].map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>u(a),className:`rounded-md px-3 py-1.5 transition-colors ${t===a?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"list"===a?"List":"Grid"},a))})]}),m?(0,b.jsx)("div",{className:"animate-pulse space-y-2",children:[1,2,3,4].map(a=>(0,b.jsx)("div",{className:"h-16 bg-gray-800/20 rounded-lg"},a))}):0===D.length?(0,b.jsx)("div",{className:"text-center py-16 text-gray-600",children:"No nodes match your filters."}):"grid"===t?(0,b.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:D.map(a=>{let c=a.online?a.status:"offline",f=z[a.alias]||{},g="number"==typeof a.progress?a.progress:0;return(0,b.jsxs)("div",{className:`relative overflow-hidden rounded-xl border border-[#2a2a4a] bg-[#111128] p-4 transition-colors ${!a.online?"opacity-60":""}`,children:[!a.online&&(0,b.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:(0,b.jsx)("span",{className:"rotate-[-20deg] rounded-xl border border-white/10 bg-black/20 px-5 py-2 text-xl font-bold uppercase tracking-[0.35em] text-white/10",children:"Offline"})}),(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,b.jsx)(d.default,{href:`/node?alias=${encodeURIComponent(a.alias)}`,className:"min-w-0 flex-1 hover:text-cyan-300",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"truncate text-base font-semibold text-white",children:a.alias}),(0,b.jsx)("span",{className:`shrink-0 rounded-md border px-2 py-0.5 text-[11px] ${h[c]||h.offline}`,children:c})]})}),(0,b.jsxs)("div",{className:"flex gap-1.5 shrink-0",children:[(0,b.jsx)("button",{type:"button",onClick:()=>C(a.alias),className:"rounded-lg border border-green-500/20 bg-green-500/10 px-3 py-1.5 text-xs text-green-300 transition-colors hover:bg-green-500/20",children:"Chat"}),(0,b.jsx)("button",{type:"button",onClick:()=>F(a.alias),className:"rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-3 py-1.5 text-xs text-cyan-300 transition-colors hover:bg-cyan-500/20",children:"Task"})]})]}),(0,b.jsxs)("div",{className:"mt-3 space-y-2 text-xs text-gray-500",children:[(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("span",{children:"Agent"}),(0,b.jsx)("span",{className:"truncate text-gray-300",children:a.agent||"--"})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("span",{children:"Server"}),(0,b.jsx)("span",{className:"truncate text-gray-300",children:a.server||"--"})]}),(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("span",{children:"Updated"}),(0,b.jsx)("span",{className:"text-gray-300",children:(0,e.timeAgo)(a.last_seen_at||a.updated_at)})]})]}),(0,b.jsx)("div",{className:"mt-3 rounded-lg border border-[#1a1a2a] bg-[#0a0a15] px-3 py-2 text-xs text-gray-400",children:a.task?a.task:"No current task"}),g>0&&g<100&&(0,b.jsx)("div",{className:"mt-3 h-1.5 overflow-hidden rounded-full bg-gray-800",children:(0,b.jsx)("div",{className:"h-1.5 rounded-full bg-cyan-400 transition-all",style:{width:`${g}%`}})}),x===a.alias&&(0,b.jsxs)("div",{className:"mt-4 space-y-2 rounded-lg border border-[#2a2a4a] bg-[#0a0a15] p-3",children:[(0,b.jsx)("input",{type:"text",value:v[a.alias]||"",onChange:b=>G(a.alias,b.target.value),onKeyDown:b=>"Enter"===b.key&&H(a.alias),placeholder:`Send task to ${a.alias}...`,className:"w-full rounded-lg border border-[#2a2a4a] bg-[#050510] px-3 py-2 text-xs text-white placeholder-gray-600 focus:border-cyan-500 focus:outline-none"}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:()=>y(null),className:"rounded-lg border border-gray-700 px-3 py-1.5 text-xs text-gray-400 hover:text-gray-200",children:"Cancel"}),(0,b.jsx)("button",{type:"button",onClick:()=>H(a.alias),disabled:f.sending||!(v[a.alias]||"").trim(),className:"rounded-lg bg-cyan-600 px-3 py-1.5 text-xs text-white hover:bg-cyan-500 disabled:cursor-not-allowed disabled:bg-gray-700",children:f.sending?"Sending...":"Send"})]})]}),f.error&&(0,b.jsx)("div",{className:"mt-2 text-xs text-red-400",children:f.error}),f.success&&x!==a.alias&&(0,b.jsx)("div",{className:"mt-2 text-xs text-green-400",children:f.success})]},a.alias)})}):(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 px-4 py-2 text-xs text-gray-600 uppercase",children:[(0,b.jsx)("div",{className:"col-span-1",children:"Status"}),(0,b.jsx)("div",{className:"col-span-2",children:"Alias"}),(0,b.jsx)("div",{className:"col-span-2",children:"Agent"}),(0,b.jsx)("div",{className:"col-span-2",children:"Server"}),(0,b.jsx)("div",{className:"col-span-2",children:"Current Task"}),(0,b.jsx)("div",{className:"col-span-1",children:"Updated"}),(0,b.jsx)("div",{className:"col-span-2 text-right",children:"Actions"})]}),D.map(a=>{let c=a.online?a.status:"offline",f=z[a.alias]||{};return(0,b.jsxs)("div",{className:`rounded-lg border border-[#2a2a4a] bg-[#111128] px-4 py-3 transition-colors hover:border-[#3a3a5a] ${!a.online?"opacity-50":""}`,children:[(0,b.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 items-center",children:[(0,b.jsx)("div",{className:"col-span-1",children:(0,b.jsx)("span",{className:`text-xs px-2 py-0.5 rounded-md border ${h[c]||h.offline}`,children:c})}),(0,b.jsx)("div",{className:"col-span-2 min-w-0",children:(0,b.jsx)(d.default,{href:`/node?alias=${encodeURIComponent(a.alias)}`,className:"truncate text-sm font-medium text-white hover:text-cyan-300",children:a.alias})}),(0,b.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",children:a.agent||"--"}),(0,b.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",children:a.server||"--"}),(0,b.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-500",children:a.task||"--"}),(0,b.jsx)("div",{className:"col-span-1 text-xs text-gray-500",children:(0,e.timeAgo)(a.last_seen_at||a.updated_at)}),(0,b.jsxs)("div",{className:"col-span-2 flex justify-end gap-1.5",children:[(0,b.jsx)("button",{type:"button",onClick:()=>C(a.alias),className:"rounded-lg border border-green-500/20 bg-green-500/10 px-2 py-1 text-xs text-green-300 hover:bg-green-500/20",children:"Chat"}),(0,b.jsx)("button",{type:"button",onClick:()=>F(a.alias),className:"rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-2 py-1 text-xs text-cyan-300 hover:bg-cyan-500/20",children:"Task"})]})]}),(0,b.jsxs)("div",{className:"sm:hidden space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)(d.default,{href:`/node?alias=${encodeURIComponent(a.alias)}`,className:"truncate text-sm font-medium text-white hover:text-cyan-300",children:a.alias}),(0,b.jsx)("span",{className:`shrink-0 text-xs px-2 py-0.5 rounded-md border ${h[c]||h.offline}`,children:c})]}),(0,b.jsxs)("div",{className:"text-xs text-gray-500",children:[a.agent||"--"," · ",(0,e.timeAgo)(a.last_seen_at||a.updated_at)]}),a.task&&(0,b.jsx)("div",{className:"truncate text-xs text-gray-500",children:a.task}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:()=>C(a.alias),className:"flex-1 rounded-lg border border-green-500/20 bg-green-500/10 px-3 py-2 text-xs text-green-300 hover:bg-green-500/20",children:"Chat"}),(0,b.jsx)("button",{type:"button",onClick:()=>F(a.alias),className:"flex-1 rounded-lg border border-cyan-500/20 bg-cyan-500/10 px-3 py-2 text-xs text-cyan-300 hover:bg-cyan-500/20",children:"Send Task"})]})]}),x===a.alias&&(0,b.jsxs)("div",{className:"mt-3 space-y-2 border-t border-[#2a2a4a] pt-3",children:[(0,b.jsx)("input",{type:"text",value:v[a.alias]||"",onChange:b=>G(a.alias,b.target.value),onKeyDown:b=>"Enter"===b.key&&H(a.alias),placeholder:`Send task to ${a.alias}...`,className:"w-full rounded-lg border border-[#2a2a4a] bg-[#0a0a15] px-3 py-2 text-xs text-white placeholder-gray-600 focus:border-cyan-500 focus:outline-none"}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:()=>y(null),className:"rounded-lg border border-gray-700 px-3 py-1.5 text-xs text-gray-400 hover:text-gray-200",children:"Cancel"}),(0,b.jsx)("button",{type:"button",onClick:()=>H(a.alias),disabled:f.sending||!(v[a.alias]||"").trim(),className:"rounded-lg bg-cyan-600 px-3 py-1.5 text-xs text-white hover:bg-cyan-500 disabled:cursor-not-allowed disabled:bg-gray-700",children:f.sending?"Sending...":"Send"})]})]}),f.error&&(0,b.jsx)("div",{className:"mt-2 text-xs text-red-400",children:f.error}),f.success&&x!==a.alias&&(0,b.jsx)("div",{className:"mt-2 text-xs text-green-400",children:f.success})]},a.alias)})]}),B&&(0,b.jsx)(g.TaskChatPanel,{alias:B,onClose:()=>C(null)})]})}])}];
2
-
3
- //# sourceMappingURL=app_05bbp~.._.js.map