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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +6 -6
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/diagnostics/route-bundle-stats.json +90 -87
  5. package/.next/fallback-build-manifest.json +3 -3
  6. package/.next/server/app/_global-error/page/build-manifest.json +3 -3
  7. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/_global-error.html +1 -1
  9. package/.next/server/app/_global-error.rsc +8 -8
  10. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +8 -8
  12. package/.next/server/app/_global-error.segments/_head.segment.rsc +4 -4
  13. package/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page/build-manifest.json +3 -3
  16. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/_not-found.html +2 -2
  18. package/.next/server/app/_not-found.rsc +11 -11
  19. package/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
  20. package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  21. package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
  22. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  23. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  24. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  25. package/.next/server/app/admin/page/build-manifest.json +3 -3
  26. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/admin.html +2 -2
  28. package/.next/server/app/admin.rsc +13 -13
  29. package/.next/server/app/admin.segments/_full.segment.rsc +13 -13
  30. package/.next/server/app/admin.segments/_head.segment.rsc +4 -4
  31. package/.next/server/app/admin.segments/_index.segment.rsc +6 -6
  32. package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  33. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +4 -4
  34. package/.next/server/app/admin.segments/admin.segment.rsc +3 -3
  35. package/.next/server/app/api/anet/config/route.js +2 -2
  36. package/.next/server/app/api/anet/config/route.js.nft.json +1 -1
  37. package/.next/server/app/api/auth/login/route.js +2 -2
  38. package/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  39. package/.next/server/app/api/auth/logout/route.js +2 -2
  40. package/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  41. package/.next/server/app/api/auth/v3/route.js +2 -2
  42. package/.next/server/app/api/auth/v3/route.js.nft.json +1 -1
  43. package/.next/server/app/api/hub/audit-log/route.js +2 -2
  44. package/.next/server/app/api/hub/audit-log/route.js.nft.json +1 -1
  45. package/.next/server/app/api/hub/auth/route.js +2 -2
  46. package/.next/server/app/api/hub/auth/route.js.nft.json +1 -1
  47. package/.next/server/app/api/hub/broadcast/route.js +2 -2
  48. package/.next/server/app/api/hub/broadcast/route.js.nft.json +1 -1
  49. package/.next/server/app/api/hub/events/route.js +2 -2
  50. package/.next/server/app/api/hub/events/route.js.nft.json +1 -1
  51. package/.next/server/app/api/hub/health/route.js +2 -2
  52. package/.next/server/app/api/hub/health/route.js.nft.json +1 -1
  53. package/.next/server/app/api/hub/inbox/route.js +2 -2
  54. package/.next/server/app/api/hub/inbox/route.js.nft.json +1 -1
  55. package/.next/server/app/api/hub/license/route.js +2 -2
  56. package/.next/server/app/api/hub/license/route.js.nft.json +1 -1
  57. package/.next/server/app/api/hub/messages/route.js +2 -2
  58. package/.next/server/app/api/hub/messages/route.js.nft.json +1 -1
  59. package/.next/server/app/api/hub/networks/route.js +2 -2
  60. package/.next/server/app/api/hub/networks/route.js.nft.json +1 -1
  61. package/.next/server/app/api/hub/nodes/route.js +2 -2
  62. package/.next/server/app/api/hub/nodes/route.js.nft.json +1 -1
  63. package/.next/server/app/api/hub/register/route.js +2 -2
  64. package/.next/server/app/api/hub/register/route.js.nft.json +1 -1
  65. package/.next/server/app/api/hub/send/route.js +2 -2
  66. package/.next/server/app/api/hub/send/route.js.nft.json +1 -1
  67. package/.next/server/app/api/hub/session/route.js +2 -2
  68. package/.next/server/app/api/hub/session/route.js.nft.json +1 -1
  69. package/.next/server/app/api/hub/stats/route.js +2 -2
  70. package/.next/server/app/api/hub/stats/route.js.nft.json +1 -1
  71. package/.next/server/app/api/hub/status/route.js +2 -2
  72. package/.next/server/app/api/hub/status/route.js.nft.json +1 -1
  73. package/.next/server/app/api/hub/task-events/route.js +2 -2
  74. package/.next/server/app/api/hub/task-events/route.js.nft.json +1 -1
  75. package/.next/server/app/api/hub/tasks/route.js +2 -2
  76. package/.next/server/app/api/hub/tasks/route.js.nft.json +1 -1
  77. package/.next/server/app/api/hub/tmux/route.js +2 -2
  78. package/.next/server/app/api/hub/tmux/route.js.nft.json +1 -1
  79. package/.next/server/app/api/hub/tokens/route.js +2 -2
  80. package/.next/server/app/api/hub/tokens/route.js.nft.json +1 -1
  81. package/.next/server/app/docs/page/build-manifest.json +3 -3
  82. package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/docs.html +2 -2
  84. package/.next/server/app/docs.rsc +13 -13
  85. package/.next/server/app/docs.segments/_full.segment.rsc +13 -13
  86. package/.next/server/app/docs.segments/_head.segment.rsc +4 -4
  87. package/.next/server/app/docs.segments/_index.segment.rsc +6 -6
  88. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  89. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +4 -4
  90. package/.next/server/app/docs.segments/docs.segment.rsc +3 -3
  91. package/.next/server/app/index.html +2 -2
  92. package/.next/server/app/index.rsc +13 -13
  93. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  94. package/.next/server/app/index.segments/_full.segment.rsc +13 -13
  95. package/.next/server/app/index.segments/_head.segment.rsc +4 -4
  96. package/.next/server/app/index.segments/_index.segment.rsc +6 -6
  97. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  98. package/.next/server/app/login/page/build-manifest.json +3 -3
  99. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  100. package/.next/server/app/login.html +1 -1
  101. package/.next/server/app/login.rsc +13 -13
  102. package/.next/server/app/login.segments/_full.segment.rsc +13 -13
  103. package/.next/server/app/login.segments/_head.segment.rsc +4 -4
  104. package/.next/server/app/login.segments/_index.segment.rsc +6 -6
  105. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  106. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  107. package/.next/server/app/login.segments/login.segment.rsc +3 -3
  108. package/.next/server/app/logs/page/build-manifest.json +3 -3
  109. package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  110. package/.next/server/app/logs.html +2 -2
  111. package/.next/server/app/logs.rsc +13 -13
  112. package/.next/server/app/logs.segments/_full.segment.rsc +13 -13
  113. package/.next/server/app/logs.segments/_head.segment.rsc +4 -4
  114. package/.next/server/app/logs.segments/_index.segment.rsc +6 -6
  115. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  116. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +4 -4
  117. package/.next/server/app/logs.segments/logs.segment.rsc +3 -3
  118. package/.next/server/app/messages/page/build-manifest.json +3 -3
  119. package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
  120. package/.next/server/app/messages.html +2 -2
  121. package/.next/server/app/messages.rsc +13 -13
  122. package/.next/server/app/messages.segments/_full.segment.rsc +13 -13
  123. package/.next/server/app/messages.segments/_head.segment.rsc +4 -4
  124. package/.next/server/app/messages.segments/_index.segment.rsc +6 -6
  125. package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
  126. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +4 -4
  127. package/.next/server/app/messages.segments/messages.segment.rsc +3 -3
  128. package/.next/server/app/node/page/build-manifest.json +3 -3
  129. package/.next/server/app/node/page.js.nft.json +1 -1
  130. package/.next/server/app/node/page_client-reference-manifest.js +1 -1
  131. package/.next/server/app/node.html +2 -2
  132. package/.next/server/app/node.rsc +13 -13
  133. package/.next/server/app/node.segments/_full.segment.rsc +13 -13
  134. package/.next/server/app/node.segments/_head.segment.rsc +4 -4
  135. package/.next/server/app/node.segments/_index.segment.rsc +6 -6
  136. package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
  137. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +4 -4
  138. package/.next/server/app/node.segments/node.segment.rsc +3 -3
  139. package/.next/server/app/nodes/page/build-manifest.json +3 -3
  140. package/.next/server/app/nodes/page.js.nft.json +1 -1
  141. package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
  142. package/.next/server/app/nodes.html +2 -2
  143. package/.next/server/app/nodes.rsc +13 -13
  144. package/.next/server/app/nodes.segments/_full.segment.rsc +13 -13
  145. package/.next/server/app/nodes.segments/_head.segment.rsc +4 -4
  146. package/.next/server/app/nodes.segments/_index.segment.rsc +6 -6
  147. package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
  148. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +4 -4
  149. package/.next/server/app/nodes.segments/nodes.segment.rsc +3 -3
  150. package/.next/server/app/page/build-manifest.json +3 -3
  151. package/.next/server/app/page.js.nft.json +1 -1
  152. package/.next/server/app/page_client-reference-manifest.js +1 -1
  153. package/.next/server/app/settings/networks/page/build-manifest.json +3 -3
  154. package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
  155. package/.next/server/app/settings/networks.html +2 -2
  156. package/.next/server/app/settings/networks.rsc +13 -13
  157. package/.next/server/app/settings/networks.segments/_full.segment.rsc +13 -13
  158. package/.next/server/app/settings/networks.segments/_head.segment.rsc +4 -4
  159. package/.next/server/app/settings/networks.segments/_index.segment.rsc +6 -6
  160. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
  161. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +4 -4
  162. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +3 -3
  163. package/.next/server/app/settings/networks.segments/settings.segment.rsc +3 -3
  164. package/.next/server/app/settings/page/build-manifest.json +3 -3
  165. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  166. package/.next/server/app/settings/tokens/page/build-manifest.json +3 -3
  167. package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
  168. package/.next/server/app/settings/tokens.html +2 -2
  169. package/.next/server/app/settings/tokens.rsc +13 -13
  170. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +13 -13
  171. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +4 -4
  172. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +6 -6
  173. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
  174. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +4 -4
  175. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +3 -3
  176. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +3 -3
  177. package/.next/server/app/settings.html +2 -2
  178. package/.next/server/app/settings.rsc +13 -13
  179. package/.next/server/app/settings.segments/_full.segment.rsc +13 -13
  180. package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
  181. package/.next/server/app/settings.segments/_index.segment.rsc +6 -6
  182. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  183. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
  184. package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
  185. package/.next/server/app/tasks/[id]/page/build-manifest.json +3 -3
  186. package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  187. package/.next/server/app/tasks/page/build-manifest.json +3 -3
  188. package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  189. package/.next/server/app/tasks.html +2 -2
  190. package/.next/server/app/tasks.rsc +13 -13
  191. package/.next/server/app/tasks.segments/_full.segment.rsc +13 -13
  192. package/.next/server/app/tasks.segments/_head.segment.rsc +4 -4
  193. package/.next/server/app/tasks.segments/_index.segment.rsc +6 -6
  194. package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
  195. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +4 -4
  196. package/.next/server/app/tasks.segments/tasks.segment.rsc +3 -3
  197. package/.next/server/chunks/[root-of-the-server]__0.r9hpx._.js +3 -0
  198. package/.next/server/chunks/{[root-of-the-server]__0sywwd7._.js.map → [root-of-the-server]__0.r9hpx._.js.map} +1 -1
  199. package/.next/server/chunks/[root-of-the-server]__0.~awwb._.js +3 -0
  200. package/.next/server/chunks/{[root-of-the-server]__02up7n2._.js.map → [root-of-the-server]__0.~awwb._.js.map} +1 -1
  201. package/.next/server/chunks/[root-of-the-server]__011ghni._.js +3 -0
  202. package/.next/server/chunks/{[root-of-the-server]__0mmo75i._.js.map → [root-of-the-server]__011ghni._.js.map} +1 -1
  203. package/.next/server/chunks/[root-of-the-server]__0_roltz._.js +3 -0
  204. package/.next/server/chunks/{[root-of-the-server]__05uypa~._.js.map → [root-of-the-server]__0_roltz._.js.map} +1 -1
  205. package/.next/server/chunks/[root-of-the-server]__0ak3zmb._.js +3 -0
  206. package/.next/server/chunks/{[root-of-the-server]__0u9ppm.._.js.map → [root-of-the-server]__0ak3zmb._.js.map} +1 -1
  207. package/.next/server/chunks/[root-of-the-server]__0c0_p0v._.js +3 -0
  208. package/.next/server/chunks/{[root-of-the-server]__0uxkj4r._.js.map → [root-of-the-server]__0c0_p0v._.js.map} +1 -1
  209. package/.next/server/chunks/[root-of-the-server]__0c5h0a~._.js +3 -0
  210. package/.next/server/chunks/{[root-of-the-server]__0hz-gqk._.js.map → [root-of-the-server]__0c5h0a~._.js.map} +1 -1
  211. package/.next/server/chunks/[root-of-the-server]__0cfodg2._.js +3 -0
  212. package/.next/server/chunks/{[root-of-the-server]__0nb8029._.js.map → [root-of-the-server]__0cfodg2._.js.map} +1 -1
  213. package/.next/server/chunks/[root-of-the-server]__0fo7jlh._.js +3 -0
  214. package/.next/server/chunks/{[root-of-the-server]__0m77953._.js.map → [root-of-the-server]__0fo7jlh._.js.map} +1 -1
  215. package/.next/server/chunks/[root-of-the-server]__0hj~i84._.js +3 -0
  216. package/.next/server/chunks/{[root-of-the-server]__0nl3akl._.js.map → [root-of-the-server]__0hj~i84._.js.map} +1 -1
  217. package/.next/server/chunks/[root-of-the-server]__0hxwf9u._.js +3 -0
  218. package/.next/server/chunks/{[root-of-the-server]__13e9ex0._.js.map → [root-of-the-server]__0hxwf9u._.js.map} +1 -1
  219. package/.next/server/chunks/[root-of-the-server]__0k.vegl._.js +3 -0
  220. package/.next/server/chunks/{[root-of-the-server]__0g16ayc._.js.map → [root-of-the-server]__0k.vegl._.js.map} +1 -1
  221. package/.next/server/chunks/[root-of-the-server]__0k3eytp._.js +3 -0
  222. package/.next/server/chunks/{[root-of-the-server]__0q86a80._.js.map → [root-of-the-server]__0k3eytp._.js.map} +1 -1
  223. package/.next/server/chunks/[root-of-the-server]__0khwewd._.js +3 -0
  224. package/.next/server/chunks/{[root-of-the-server]__12s1q1.._.js.map → [root-of-the-server]__0khwewd._.js.map} +1 -1
  225. package/.next/server/chunks/[root-of-the-server]__0ku8l.~._.js +3 -0
  226. package/.next/server/chunks/{[root-of-the-server]__0344fys._.js.map → [root-of-the-server]__0ku8l.~._.js.map} +1 -1
  227. package/.next/server/chunks/[root-of-the-server]__0kx9lo1._.js +3 -0
  228. package/.next/server/chunks/{[root-of-the-server]__0o1z0_7._.js.map → [root-of-the-server]__0kx9lo1._.js.map} +1 -1
  229. package/.next/server/chunks/[root-of-the-server]__0lu__6g._.js +3 -0
  230. package/.next/server/chunks/{[root-of-the-server]__0150zad._.js.map → [root-of-the-server]__0lu__6g._.js.map} +1 -1
  231. package/.next/server/chunks/[root-of-the-server]__0nsfjkb._.js +3 -0
  232. package/.next/server/chunks/{[root-of-the-server]__0swcbs5._.js.map → [root-of-the-server]__0nsfjkb._.js.map} +1 -1
  233. package/.next/server/chunks/[root-of-the-server]__0p3fo6l._.js +1 -1
  234. package/.next/server/chunks/[root-of-the-server]__0t0.lss._.js +3 -0
  235. package/.next/server/chunks/{[root-of-the-server]__09dhh_t._.js.map → [root-of-the-server]__0t0.lss._.js.map} +1 -1
  236. package/.next/server/chunks/[root-of-the-server]__0wpe~w2._.js +3 -0
  237. package/.next/server/chunks/{[root-of-the-server]__09kj7n.._.js.map → [root-of-the-server]__0wpe~w2._.js.map} +1 -1
  238. package/.next/server/chunks/[root-of-the-server]__0x.-194._.js +3 -0
  239. package/.next/server/chunks/{[root-of-the-server]__11aui~e._.js.map → [root-of-the-server]__0x.-194._.js.map} +1 -1
  240. package/.next/server/chunks/[root-of-the-server]__10ducxb._.js +3 -0
  241. package/.next/server/chunks/{[root-of-the-server]__10439sp._.js.map → [root-of-the-server]__10ducxb._.js.map} +1 -1
  242. package/.next/server/chunks/[root-of-the-server]__10~rj8b._.js +3 -0
  243. package/.next/server/chunks/{[root-of-the-server]__0w~31ff._.js.map → [root-of-the-server]__10~rj8b._.js.map} +1 -1
  244. package/.next/server/chunks/[root-of-the-server]__114809t._.js +3 -0
  245. package/.next/server/chunks/{[root-of-the-server]__0uf_olq._.js.map → [root-of-the-server]__114809t._.js.map} +1 -1
  246. package/.next/server/chunks/[root-of-the-server]__11yl3c.._.js +3 -0
  247. package/.next/server/chunks/{[root-of-the-server]__090uiv5._.js.map → [root-of-the-server]__11yl3c.._.js.map} +1 -1
  248. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0yubv2d.js +1 -1
  249. package/.next/server/chunks/ssr/[root-of-the-server]__093ymui._.js +3 -0
  250. package/.next/server/chunks/ssr/[root-of-the-server]__093ymui._.js.map +1 -0
  251. package/.next/server/chunks/ssr/[root-of-the-server]__0nrckjd._.js +3 -0
  252. package/.next/server/chunks/ssr/[root-of-the-server]__0nrckjd._.js.map +1 -0
  253. package/.next/server/chunks/ssr/[root-of-the-server]__0xm3h9x._.js +3 -0
  254. package/.next/server/chunks/ssr/[root-of-the-server]__0xm3h9x._.js.map +1 -0
  255. package/.next/server/chunks/ssr/[root-of-the-server]__0~yad5w._.js +3 -0
  256. package/.next/server/chunks/ssr/[root-of-the-server]__0~yad5w._.js.map +1 -0
  257. package/.next/server/middleware-build-manifest.js +6 -6
  258. package/.next/server/pages/404.html +2 -2
  259. package/.next/server/pages/500.html +1 -1
  260. package/.next/static/chunks/00uwfd~z5dh.b.js +1 -0
  261. package/.next/static/chunks/{0io~i_rk3k9q3.js → 060yf6n1jdcri.js} +1 -1
  262. package/.next/static/chunks/{01bx19dpl~r6u.js → 063eleenll4ri.js} +1 -1
  263. package/.next/static/chunks/{0fpff4dxg3a5x.js → 08aj9~75raaah.js} +1 -1
  264. package/.next/static/chunks/{0xqtq9944k~ek.js → 08v0-ki6vwpxf.js} +1 -1
  265. package/.next/static/chunks/{0tb-yun7e_n3c.js → 09al3qm76q7nd.js} +1 -1
  266. package/.next/static/chunks/{12t1c0u8~txfo.js → 0afxijuigt-49.js} +1 -1
  267. package/.next/static/chunks/0bajlbn83u82v.css +2 -0
  268. package/.next/static/chunks/0dkkv90do9a4r.js +1 -0
  269. package/.next/static/chunks/{024co7ns8w7ms.js → 0ejz4zwhu3a3y.js} +1 -1
  270. package/.next/static/chunks/{0ql1nb6991-hi.js → 0h4x8zbbd__pl.js} +1 -1
  271. package/.next/static/chunks/{02w9ytw8eey3r.js → 0krweyme4bfjm.js} +1 -1
  272. package/.next/static/chunks/0ogeals5ufhho.js +1 -0
  273. package/.next/static/chunks/{15-ywchriw.vi.js → 0u359llqm1_01.js} +1 -1
  274. package/.next/static/chunks/{0~sxxils~iff..js → 0ugk4jd4e7oft.js} +1 -1
  275. package/.next/static/chunks/{0w.7_h6kx__bg.js → 0uqfv6rc-xdru.js} +1 -1
  276. package/.next/static/chunks/{11f7871-m2pu4.js → 0vlojka~d~9h4.js} +1 -1
  277. package/.next/static/chunks/0xn2oc.5gmj~v.js +1 -0
  278. package/.next/static/chunks/{0w5hxo645~s.g.js → 0xrnwfefpke-g.js} +2 -2
  279. package/.next/static/chunks/{0s4w.hhez3.xx.js → 14bsg3_-taiw4.js} +1 -1
  280. package/.next/static/chunks/{turbopack-0zklppa1rg.u8.js → turbopack-0vsvjs02l449s.js} +1 -1
  281. package/.next/trace +2 -2
  282. package/.next/trace-build +1 -1
  283. package/app/components/TaskChatPanel.tsx +68 -26
  284. package/package.json +3 -1
  285. package/.next/server/chunks/[root-of-the-server]__0150zad._.js +0 -3
  286. package/.next/server/chunks/[root-of-the-server]__02up7n2._.js +0 -3
  287. package/.next/server/chunks/[root-of-the-server]__0344fys._.js +0 -3
  288. package/.next/server/chunks/[root-of-the-server]__05uypa~._.js +0 -3
  289. package/.next/server/chunks/[root-of-the-server]__090uiv5._.js +0 -3
  290. package/.next/server/chunks/[root-of-the-server]__09dhh_t._.js +0 -3
  291. package/.next/server/chunks/[root-of-the-server]__09kj7n.._.js +0 -3
  292. package/.next/server/chunks/[root-of-the-server]__0g16ayc._.js +0 -3
  293. package/.next/server/chunks/[root-of-the-server]__0hz-gqk._.js +0 -3
  294. package/.next/server/chunks/[root-of-the-server]__0m77953._.js +0 -3
  295. package/.next/server/chunks/[root-of-the-server]__0mmo75i._.js +0 -3
  296. package/.next/server/chunks/[root-of-the-server]__0nb8029._.js +0 -3
  297. package/.next/server/chunks/[root-of-the-server]__0nl3akl._.js +0 -3
  298. package/.next/server/chunks/[root-of-the-server]__0o1z0_7._.js +0 -3
  299. package/.next/server/chunks/[root-of-the-server]__0q86a80._.js +0 -3
  300. package/.next/server/chunks/[root-of-the-server]__0swcbs5._.js +0 -3
  301. package/.next/server/chunks/[root-of-the-server]__0sywwd7._.js +0 -3
  302. package/.next/server/chunks/[root-of-the-server]__0u9ppm.._.js +0 -3
  303. package/.next/server/chunks/[root-of-the-server]__0uf_olq._.js +0 -3
  304. package/.next/server/chunks/[root-of-the-server]__0uxkj4r._.js +0 -3
  305. package/.next/server/chunks/[root-of-the-server]__0w~31ff._.js +0 -3
  306. package/.next/server/chunks/[root-of-the-server]__10439sp._.js +0 -3
  307. package/.next/server/chunks/[root-of-the-server]__11aui~e._.js +0 -3
  308. package/.next/server/chunks/[root-of-the-server]__12s1q1.._.js +0 -3
  309. package/.next/server/chunks/[root-of-the-server]__13e9ex0._.js +0 -3
  310. package/.next/server/chunks/ssr/_0s2kgzl._.js +0 -3
  311. package/.next/server/chunks/ssr/_0s2kgzl._.js.map +0 -1
  312. package/.next/server/chunks/ssr/app_05bbp~.._.js +0 -3
  313. package/.next/server/chunks/ssr/app_05bbp~.._.js.map +0 -1
  314. package/.next/server/chunks/ssr/app_0d3prqs._.js +0 -3
  315. package/.next/server/chunks/ssr/app_0d3prqs._.js.map +0 -1
  316. package/.next/server/chunks/ssr/app_0p9bx.i._.js +0 -3
  317. package/.next/server/chunks/ssr/app_0p9bx.i._.js.map +0 -1
  318. package/.next/static/chunks/06f76ht~w6c6c.js +0 -1
  319. package/.next/static/chunks/0_qu9.8wo.eq1.css +0 -2
  320. package/.next/static/chunks/0g5j6.4xxjqd3.js +0 -1
  321. package/.next/static/chunks/15cp_p75shcm9.js +0 -1
  322. /package/.next/static/{5bvXa9VuwCjy1WNEj0yoW → OhhT30BnG1-kXYvlQ_2y3}/_buildManifest.js +0 -0
  323. /package/.next/static/{5bvXa9VuwCjy1WNEj0yoW → OhhT30BnG1-kXYvlQ_2y3}/_clientMiddlewareManifest.js +0 -0
  324. /package/.next/static/{5bvXa9VuwCjy1WNEj0yoW → OhhT30BnG1-kXYvlQ_2y3}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ module.exports=[50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},43515,a=>{"use strict";a.s(["formatUptime",0,function(a){let b=Math.floor(a/3600),c=Math.floor(a%3600/60);return b>0?`${b}h ${c}m`:`${c}m`},"timeAgo",0,function(a){if(!a)return"--";let b=Math.floor((Date.now()-new Date(a.replace(" ","T")+"Z").getTime())/1e3);return b<60?`${b}s ago`:b<3600?`${Math.floor(b/60)}m ago`:b<86400?`${Math.floor(b/3600)}h ago`:`${Math.floor(b/86400)}d ago`}])},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},35131,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(38246),f=a.i(15261),g=a.i(43515);function h({tmuxName:a}){let[d,e]=(0,c.useState)(""),[f,g]=(0,c.useState)(!1),[i,j]=(0,c.useState)(!1),k=async()=>{g(!0);try{let b=await fetch(`/api/hub/tmux?name=${encodeURIComponent(a)}`),c=await b.json();e(c.output||c.error||"No output")}catch{e("Failed to fetch")}g(!1)};return(0,b.jsxs)("div",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,b.jsxs)("h2",{className:"text-sm font-semibold text-gray-300",children:["Terminal (",a,")"]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("button",{onClick:k,disabled:f,className:"text-xs text-cyan-400 hover:text-cyan-300 disabled:text-gray-600",children:f?"Loading...":"Capture"}),d&&(0,b.jsx)("button",{onClick:()=>j(!i),className:"text-xs text-gray-500 hover:text-gray-300",children:i?"Collapse":"Expand"})]})]}),d&&(0,b.jsx)("pre",{className:`text-[11px] text-green-300 bg-[#050510] rounded-lg px-3 py-2 border border-[#1a1a2a] overflow-x-auto whitespace-pre font-mono ${i?"max-h-96":"max-h-32"} overflow-y-auto`,children:d}),!d&&(0,b.jsx)("p",{className:"text-xs text-gray-600",children:"Click Capture to view terminal output"})]})}function i(){let a=(0,d.useSearchParams)().get("alias")||"",[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)([]),[k,l]=(0,c.useState)(0),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[q,r]=(0,c.useState)(!1),s=(0,c.useCallback)(async()=>{if(a)try{let b=await fetch(`/api/hub/session?alias=${encodeURIComponent(a)}`),c=await b.json();c.session&&g(c.session),c.inbox&&i(c.inbox),l(c.sse||0),n("")}catch(a){n(a instanceof Error?a.message:"fetch failed")}},[a]);(0,c.useEffect)(()=>{s();let a=setInterval(s,5e3);return()=>clearInterval(a)},[s]);let[t,u]=(0,c.useState)(""),v=async()=>{if(o.trim()&&a){r(!0),u("");try{let b=await fetch("/api/hub/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:a,task:o})}),c=await b.json();c.ok?(p(""),setTimeout(s,2e3)):u(c.error||"Send failed")}catch(a){u(a instanceof Error?a.message:"Send failed")}r(!1)}};if(!a)return(0,b.jsx)("div",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 p-6 font-mono flex items-center justify-center",children:(0,b.jsxs)("p",{className:"text-gray-500",children:["No alias specified. ",(0,b.jsx)(e.default,{href:"/",className:"text-blue-400 hover:underline",children:"Back to dashboard"})]})});let w=f?.status==="working"?"text-green-400":f?.status==="idle"?"text-blue-400":"text-gray-500";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)(e.default,{href:"/nodes",className:"text-gray-500 hover:text-gray-300 text-sm lg:ml-0 ml-10",children:"← Nodes"}),(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("span",{className:`inline-block w-3 h-3 rounded-full ${k>0?f?.status==="working"?"bg-green-500 animate-pulse":"bg-emerald-400":"bg-gray-500"}`}),(0,b.jsx)("h1",{className:"text-2xl font-bold text-white",children:a}),(0,b.jsx)("span",{className:`text-sm ${w}`,children:f?.status||"unknown"})]})]}),m&&(0,b.jsx)("div",{className:"bg-red-900/20 border border-red-800/40 text-red-300 px-4 py-2 rounded-lg mb-6 text-sm",children:m}),(0,b.jsx)(j,{alias:a,session:f,sse:k,sendMsg:o,setSendMsg:p,sending:q,sendTask:v,sendError:t})]})}function j({alias:a,session:d,sse:e,sendMsg:g,setSendMsg:i,sending:k,sendTask:m,sendError:n}){let[o,p]=(0,c.useState)("chat"),[q,r]=(0,c.useState)([]),[s,t]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{"events"!==o||s||fetch("/api/hub/task-events?limit=50").then(a=>a.json()).then(a=>{r(a.events||[]),t(!0)}).catch(()=>t(!0))},[o,s]),(0,b.jsxs)("div",{className:"bg-[#0d0d1a] border border-[#2a2a4a] rounded-xl overflow-hidden h-[calc(100vh-140px)] flex flex-col",children:[(0,b.jsx)("div",{className:"flex border-b border-[#2a2a4a] bg-[#0a0a15] shrink-0",children:["chat","events","info"].map(a=>(0,b.jsx)("button",{onClick:()=>p(a),className:`px-5 py-3 text-sm font-medium border-b-2 transition-colors ${o===a?"border-cyan-400 text-cyan-300":"border-transparent text-gray-500 hover:text-gray-300"}`,children:"chat"===a?"💬 Chat":"events"===a?"📋 Events":"📊 Info"},a))}),(0,b.jsxs)("div",{className:"flex-1 overflow-hidden",children:["chat"===o&&(0,b.jsx)(f.TaskChatPanel,{alias:a,onClose:()=>{},inline:!0}),"events"===o&&(0,b.jsx)(l,{events:q,loading:!s}),"info"===o&&(0,b.jsxs)("div",{className:"p-4 overflow-y-auto h-full space-y-4 max-w-2xl",children:[(0,b.jsxs)("div",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-4",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-3",children:"Node Info"}),(0,b.jsx)("div",{className:"space-y-2 text-xs",children:[{label:"Node ID",value:d?.node_id,alwaysShow:!0},{label:"Session ID",value:d?.session_id,alwaysShow:!0},{label:"Resume ID",value:d?.resume_id,alwaysShow:!0},{label:"Alias",value:d?.alias,alwaysShow:!0},{label:"Agent",value:d?.agent,alwaysShow:!0},{label:"Model",value:d?.model,alwaysShow:!0},{label:"Version",value:d?.version},{label:"Server",value:d?.server,alwaysShow:!0},{label:"Hostname",value:d?.hostname,alwaysShow:!0},{label:"IP",value:d?.ip,alwaysShow:!0},{label:"Project",value:d?.project_dir},{label:"Config",value:d?.config_path,alwaysShow:!0},{label:"Channels",value:d?.channels?.length?Array.isArray(d.channels)?d.channels.join(", "):d.channels:null,alwaysShow:!0},{label:"Tmux",value:d?.tmux_name},{label:"SSE",value:e>0?`Connected (${e})`:"Disconnected",alwaysShow:!0},{label:"Progress",value:d?.progress?`${d.progress}%`:null},{label:"Score",value:d?.score},{label:"Last Seen",value:d?.last_seen_at,alwaysShow:!0},{label:"Registered",value:d?.registered_at,alwaysShow:!0},{label:"Updated",value:d?.updated_at,alwaysShow:!0}].map(({label:a,value:c,alwaysShow:d})=>c||d?(0,b.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,b.jsx)("span",{className:"text-gray-500 shrink-0",children:a}),(0,b.jsx)("span",{className:"text-gray-300 truncate max-w-[200px]",title:c?String(c):"--",children:c?String(c):"--"})]},a):null)})]}),d?.task&&(0,b.jsxs)("div",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-4",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-2",children:"Current Task"}),(0,b.jsx)("p",{className:"text-xs text-gray-400 whitespace-pre-wrap",children:d.task})]}),d?.output&&(0,b.jsxs)("div",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-4",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-2",children:"Last Output"}),(0,b.jsx)("p",{className:"text-xs text-gray-400 whitespace-pre-wrap max-h-48 overflow-y-auto",children:d.output})]}),(0,b.jsxs)("div",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-4",children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-gray-300 mb-2",children:"Send Task"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("input",{type:"text",value:g,onChange:a=>i(a.target.value),onKeyDown:a=>"Enter"===a.key&&m(),placeholder:`Send task to ${a}...`,className:"flex-1 bg-[#0a0a15] border border-[#2a2a4a] rounded px-3 py-2 text-xs text-white placeholder-gray-600 focus:border-blue-500 focus:outline-none"}),(0,b.jsx)("button",{onClick:m,disabled:k||!g.trim(),className:"px-3 py-2 bg-blue-600 hover:bg-blue-500 disabled:bg-gray-700 text-white text-xs rounded transition-colors",children:k?"...":"Send"})]}),n&&(0,b.jsx)("div",{className:"mt-2 text-xs text-red-400",children:n})]}),d?.tmux_name&&(0,b.jsx)(h,{tmuxName:d.tmux_name})]})]})]})}let k={delivered:{dot:"bg-blue-400",line:"bg-blue-500/30",icon:"📬"},acked:{dot:"bg-yellow-400",line:"bg-yellow-500/30",icon:"✅"},running:{dot:"bg-green-400",line:"bg-green-500/30",icon:"⚡"},replied:{dot:"bg-purple-400",line:"bg-purple-500/30",icon:"💬"},failed:{dot:"bg-red-400",line:"bg-red-500/30",icon:"❌"},created:{dot:"bg-gray-400",line:"bg-gray-500/30",icon:"📝"}};function l({events:a,loading:c}){if(c)return(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"})});if(0===a.length)return(0,b.jsx)("div",{className:"text-center py-12 text-gray-600 text-xs",children:"No task events yet"});let d=new Map;return a.forEach(a=>{let b=a.task_id||`ungrouped-${a.id}`,c=d.get(b)||[];c.push(a),d.set(b,c)}),(0,b.jsx)("div",{className:"p-4 overflow-y-auto h-full space-y-4",children:[...d.entries()].map(([a,c])=>(0,b.jsxs)("div",{className:"bg-[#111128] border border-[#2a2a4a] rounded-xl p-4",children:[(0,b.jsxs)("div",{className:"text-[10px] text-gray-600 mb-3 truncate",children:["Task: ",a.slice(0,20),"..."]}),(0,b.jsxs)("div",{className:"relative pl-6",children:[(0,b.jsx)("div",{className:"absolute left-[9px] top-2 bottom-2 w-0.5 bg-[#1a1a2a]"}),c.map((a,c)=>{let d=k[a.to_status]||k.created;return(0,b.jsxs)("div",{className:"relative pb-4 last:pb-0",children:[(0,b.jsx)("div",{className:`absolute -left-6 top-0.5 w-[18px] h-[18px] rounded-full ${d.dot} flex items-center justify-center text-[9px] z-10 border-2 border-[#111128]`,children:d.icon.length<=2?d.icon:""}),(0,b.jsxs)("div",{className:"ml-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:`text-xs font-medium ${"failed"===a.to_status?"text-red-400":"replied"===a.to_status?"text-purple-400":"text-gray-300"}`,children:a.event_type}),a.from_status&&(0,b.jsxs)("span",{className:"text-[10px] text-gray-600",children:[a.from_status," → ",a.to_status]}),(0,b.jsx)("span",{className:"text-[10px] text-gray-600 ml-auto",children:(0,g.timeAgo)(a.created_at)})]}),a.detail&&(0,b.jsxs)("div",{className:"text-[11px] text-gray-500 mt-0.5 truncate",children:[a.detail.slice(0,50),a.detail.length>50?"...":""]})]})]},a.id)})]})]},a))})}a.s(["default",0,function(){return(0,b.jsx)(c.Suspense,{fallback:(0,b.jsx)("div",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 p-6 font-mono",children:"Loading..."}),children:(0,b.jsx)(i,{})})}])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0nrckjd._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../app/components/utils.ts","../../../../node_modules/styled-jsx/dist/index/index.js","../../../../node_modules/styled-jsx/style.js","../../../../app/node/page.tsx"],"sourcesContent":["export function timeAgo(dateStr: string): string {\n if (!dateStr) return '--';\n const diff = Date.now() - new Date(dateStr.replace(' ', 'T') + 'Z').getTime();\n const s = Math.floor(diff / 1000);\n if (s < 60) return `${s}s ago`;\n if (s < 3600) return `${Math.floor(s / 60)}m ago`;\n if (s < 86400) return `${Math.floor(s / 3600)}h ago`;\n return `${Math.floor(s / 86400)}d ago`;\n}\n\nexport function statusColor(status: string, hasSse: boolean): string {\n if (hasSse && status === 'working') return 'bg-green-500';\n if (hasSse && status === 'idle') return 'bg-emerald-400';\n if (hasSse) return 'bg-blue-400';\n if (status === 'offline') return 'bg-gray-500';\n return 'bg-yellow-400';\n}\n\nexport function formatUptime(seconds: number): string {\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n if (h > 0) return `${h}h ${m}m`;\n return `${m}m`;\n}\n","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 { useEffect, useState, useCallback } from 'react';\nimport { useSearchParams } from 'next/navigation';\nimport Link from 'next/link';\nimport { Suspense } from 'react';\nimport { TaskChatPanel } from '../components/TaskChatPanel';\nimport { timeAgo } from '../components/utils';\n\ninterface SessionDetail {\n resume_id: string;\n alias: string;\n status: string;\n agent: string;\n server: string;\n hostname: string;\n task: string;\n output: string;\n progress: number;\n score: number;\n registered_at: string;\n updated_at: string;\n project_dir: string;\n tmux_name: string;\n ip: string;\n node_id: string;\n session_id: string;\n config_path: string;\n channels: string[];\n last_seen_at: string;\n model: string;\n version: string;\n}\n\ninterface Message {\n id: string;\n content: string;\n from_session: string;\n priority: string;\n created_at: string;\n type: string;\n}\n\nfunction TmuxViewer({ tmuxName }: { tmuxName: string }) {\n const [output, setOutput] = useState('');\n const [loading, setLoading] = useState(false);\n const [expanded, setExpanded] = useState(false);\n\n const fetchTmux = async () => {\n setLoading(true);\n try {\n const res = await fetch(`/api/hub/tmux?name=${encodeURIComponent(tmuxName)}`);\n const data = await res.json();\n setOutput(data.output || data.error || 'No output');\n } catch { setOutput('Failed to fetch'); }\n setLoading(false);\n };\n\n return (\n <div className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-4\">\n <div className=\"flex items-center justify-between mb-2\">\n <h2 className=\"text-sm font-semibold text-gray-300\">Terminal ({tmuxName})</h2>\n <div className=\"flex gap-2\">\n <button onClick={fetchTmux} disabled={loading}\n className=\"text-xs text-cyan-400 hover:text-cyan-300 disabled:text-gray-600\">\n {loading ? 'Loading...' : 'Capture'}\n </button>\n {output && (\n <button onClick={() => setExpanded(!expanded)} className=\"text-xs text-gray-500 hover:text-gray-300\">\n {expanded ? 'Collapse' : 'Expand'}\n </button>\n )}\n </div>\n </div>\n {output && (\n <pre className={`text-[11px] text-green-300 bg-[#050510] rounded-lg px-3 py-2 border border-[#1a1a2a] overflow-x-auto whitespace-pre font-mono ${expanded ? 'max-h-96' : 'max-h-32'} overflow-y-auto`}>\n {output}\n </pre>\n )}\n {!output && <p className=\"text-xs text-gray-600\">Click Capture to view terminal output</p>}\n </div>\n );\n}\n\nfunction NodeDetailContent() {\n const searchParams = useSearchParams();\n const alias = searchParams.get('alias') || '';\n const [session, setSession] = useState<SessionDetail | null>(null);\n const [inbox, setInbox] = useState<Message[]>([]);\n const [sse, setSse] = useState(0);\n const [error, setError] = useState('');\n const [sendMsg, setSendMsg] = useState('');\n const [sending, setSending] = useState(false);\n\n const fetchData = useCallback(async () => {\n if (!alias) return;\n try {\n const res = await fetch(`/api/hub/session?alias=${encodeURIComponent(alias)}`);\n const data = await res.json();\n if (data.session) setSession(data.session);\n if (data.inbox) setInbox(data.inbox);\n setSse(data.sse || 0);\n setError('');\n } catch (e: unknown) {\n setError(e instanceof Error ? e.message : 'fetch failed');\n }\n }, [alias]);\n\n useEffect(() => {\n fetchData();\n const interval = setInterval(fetchData, 5000);\n return () => clearInterval(interval);\n }, [fetchData]);\n\n const [sendError, setSendError] = useState('');\n\n const sendTask = async () => {\n if (!sendMsg.trim() || !alias) return;\n setSending(true);\n setSendError('');\n try {\n const res = await fetch('/api/hub/send', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ alias, task: sendMsg }),\n });\n const data = await res.json();\n if (data.ok) {\n setSendMsg('');\n setTimeout(fetchData, 2000);\n } else {\n setSendError(data.error || 'Send failed');\n }\n } catch (e: unknown) {\n setSendError(e instanceof Error ? e.message : 'Send failed');\n }\n setSending(false);\n };\n\n if (!alias) {\n return (\n <div className=\"min-h-screen bg-[#0a0a1a] text-gray-100 p-6 font-mono flex items-center justify-center\">\n <p className=\"text-gray-500\">No alias specified. <Link href=\"/\" className=\"text-blue-400 hover:underline\">Back to dashboard</Link></p>\n </div>\n );\n }\n\n const statusColor = session?.status === 'working' ? 'text-green-400' :\n session?.status === 'idle' ? 'text-blue-400' : 'text-gray-500';\n\n return (\n <div className=\"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono\">\n {/* Header */}\n <div className=\"flex items-center gap-4 mb-6\">\n <Link href=\"/nodes\" className=\"text-gray-500 hover:text-gray-300 text-sm lg:ml-0 ml-10\">&larr; Nodes</Link>\n <div className=\"flex items-center gap-3\">\n <span className={`inline-block w-3 h-3 rounded-full ${\n sse > 0 ? (session?.status === 'working' ? 'bg-green-500 animate-pulse' : 'bg-emerald-400') : 'bg-gray-500'\n }`} />\n <h1 className=\"text-2xl font-bold text-white\">{alias}</h1>\n <span className={`text-sm ${statusColor}`}>{session?.status || 'unknown'}</span>\n </div>\n </div>\n\n {error && (\n <div className=\"bg-red-900/20 border border-red-800/40 text-red-300 px-4 py-2 rounded-lg mb-6 text-sm\">{error}</div>\n )}\n\n {/* Full-width tabbed layout */}\n <NodeFullPanel alias={alias} session={session} sse={sse} sendMsg={sendMsg} setSendMsg={setSendMsg} sending={sending} sendTask={sendTask} sendError={sendError} />\n </div>\n );\n}\n\nfunction NodeFullPanel({ alias, session, sse, sendMsg, setSendMsg, sending, sendTask, sendError }: {\n alias: string; session: any; sse: number; sendMsg: string; setSendMsg: (v: string) => void; sending: boolean; sendTask: () => void; sendError: string;\n}) {\n const [tab, setTab] = useState<'chat' | 'events' | 'info'>('chat');\n const [events, setEvents] = useState<Array<{ id: number; event_type: string; from_status: string; to_status: string; detail: string; created_at: string }>>([]);\n const [eventsLoaded, setEventsLoaded] = useState(false);\n\n useEffect(() => {\n if (tab === 'events' && !eventsLoaded) {\n fetch('/api/hub/task-events?limit=50').then(r => r.json()).then(d => {\n setEvents(d.events || []);\n setEventsLoaded(true);\n }).catch(() => setEventsLoaded(true));\n }\n }, [tab, eventsLoaded]);\n\n return (\n <div className=\"bg-[#0d0d1a] border border-[#2a2a4a] rounded-xl overflow-hidden h-[calc(100vh-140px)] flex flex-col\">\n {/* Tab bar */}\n <div className=\"flex border-b border-[#2a2a4a] bg-[#0a0a15] shrink-0\">\n {(['chat', 'events', 'info'] as const).map(t => (\n <button key={t} onClick={() => setTab(t)}\n className={`px-5 py-3 text-sm font-medium border-b-2 transition-colors ${\n tab === t ? 'border-cyan-400 text-cyan-300' : 'border-transparent text-gray-500 hover:text-gray-300'\n }`}>\n {t === 'chat' ? '💬 Chat' : t === 'events' ? '📋 Events' : '📊 Info'}\n </button>\n ))}\n </div>\n\n {/* Tab content */}\n <div className=\"flex-1 overflow-hidden\">\n {tab === 'chat' && (\n <TaskChatPanel alias={alias} onClose={() => {}} inline />\n )}\n\n {tab === 'events' && (\n <EventsTimeline events={events} loading={!eventsLoaded} />\n )}\n\n {tab === 'info' && (\n <div className=\"p-4 overflow-y-auto h-full space-y-4 max-w-2xl\">\n <div className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-4\">\n <h2 className=\"text-sm font-semibold text-gray-300 mb-3\">Node Info</h2>\n <div className=\"space-y-2 text-xs\">\n {[\n { label: 'Node ID', value: session?.node_id, alwaysShow: true },\n { label: 'Session ID', value: session?.session_id, alwaysShow: true },\n { label: 'Resume ID', value: session?.resume_id, alwaysShow: true },\n { label: 'Alias', value: session?.alias, alwaysShow: true },\n { label: 'Agent', value: session?.agent, alwaysShow: true },\n { label: 'Model', value: session?.model, alwaysShow: true },\n { label: 'Version', value: session?.version },\n { label: 'Server', value: session?.server, alwaysShow: true },\n { label: 'Hostname', value: session?.hostname, alwaysShow: true },\n { label: 'IP', value: session?.ip, alwaysShow: true },\n { label: 'Project', value: session?.project_dir },\n { label: 'Config', value: session?.config_path, alwaysShow: true },\n { label: 'Channels', value: session?.channels?.length ? (Array.isArray(session.channels) ? session.channels.join(', ') : session.channels) : null, alwaysShow: true },\n { label: 'Tmux', value: session?.tmux_name },\n { label: 'SSE', value: sse > 0 ? `Connected (${sse})` : 'Disconnected', alwaysShow: true },\n { label: 'Progress', value: session?.progress ? `${session.progress}%` : null },\n { label: 'Score', value: session?.score },\n { label: 'Last Seen', value: session?.last_seen_at, alwaysShow: true },\n { label: 'Registered', value: session?.registered_at, alwaysShow: true },\n { label: 'Updated', value: session?.updated_at, alwaysShow: true },\n ].map(({ label, value, alwaysShow }) => (value || alwaysShow) ? (\n <div key={label} className=\"flex justify-between gap-3\">\n <span className=\"text-gray-500 shrink-0\">{label}</span>\n <span className=\"text-gray-300 truncate max-w-[200px]\" title={value ? String(value) : '--'}>\n {value ? String(value) : '--'}\n </span>\n </div>\n ) : null)}\n </div>\n </div>\n\n {/* Current Task */}\n {session?.task && (\n <div className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-4\">\n <h2 className=\"text-sm font-semibold text-gray-300 mb-2\">Current Task</h2>\n <p className=\"text-xs text-gray-400 whitespace-pre-wrap\">{session.task}</p>\n </div>\n )}\n\n {/* Output */}\n {session?.output && (\n <div className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-4\">\n <h2 className=\"text-sm font-semibold text-gray-300 mb-2\">Last Output</h2>\n <p className=\"text-xs text-gray-400 whitespace-pre-wrap max-h-48 overflow-y-auto\">{session.output}</p>\n </div>\n )}\n\n {/* Send Task */}\n <div className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-4\">\n <h2 className=\"text-sm font-semibold text-gray-300 mb-2\">Send Task</h2>\n <div className=\"flex gap-2\">\n <input\n type=\"text\"\n value={sendMsg}\n onChange={e => setSendMsg(e.target.value)}\n onKeyDown={e => e.key === 'Enter' && sendTask()}\n placeholder={`Send task to ${alias}...`}\n className=\"flex-1 bg-[#0a0a15] border border-[#2a2a4a] rounded px-3 py-2 text-xs text-white placeholder-gray-600 focus:border-blue-500 focus:outline-none\"\n />\n <button\n onClick={sendTask}\n disabled={sending || !sendMsg.trim()}\n className=\"px-3 py-2 bg-blue-600 hover:bg-blue-500 disabled:bg-gray-700 text-white text-xs rounded transition-colors\"\n >\n {sending ? '...' : 'Send'}\n </button>\n </div>\n {sendError && <div className=\"mt-2 text-xs text-red-400\">{sendError}</div>}\n </div>\n\n {/* Tmux Terminal */}\n {session?.tmux_name && (\n <TmuxViewer tmuxName={session.tmux_name} />\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nconst EVENT_COLORS: Record<string, { dot: string; line: string; icon: string }> = {\n delivered: { dot: 'bg-blue-400', line: 'bg-blue-500/30', icon: '📬' },\n acked: { dot: 'bg-yellow-400', line: 'bg-yellow-500/30', icon: '✅' },\n running: { dot: 'bg-green-400', line: 'bg-green-500/30', icon: '⚡' },\n replied: { dot: 'bg-purple-400', line: 'bg-purple-500/30', icon: '💬' },\n failed: { dot: 'bg-red-400', line: 'bg-red-500/30', icon: '❌' },\n created: { dot: 'bg-gray-400', line: 'bg-gray-500/30', icon: '📝' },\n};\n\nfunction EventsTimeline({ events, loading }: { events: Array<{ id: number; event_type: string; from_status: string; to_status: string; detail: string; created_at: string; task_id?: string }>; loading: boolean }) {\n if (loading) return <div className=\"flex justify-center py-8\"><div className=\"w-5 h-5 border-2 border-cyan-500/30 border-t-cyan-500 rounded-full animate-spin\" /></div>;\n if (events.length === 0) return <div className=\"text-center py-12 text-gray-600 text-xs\">No task events yet</div>;\n\n // Group by task_id\n const groups = new Map<string, typeof events>();\n events.forEach(e => {\n const key = (e as { task_id?: string }).task_id || `ungrouped-${e.id}`;\n const group = groups.get(key) || [];\n group.push(e);\n groups.set(key, group);\n });\n\n return (\n <div className=\"p-4 overflow-y-auto h-full space-y-4\">\n {[...groups.entries()].map(([taskId, taskEvents]) => (\n <div key={taskId} className=\"bg-[#111128] border border-[#2a2a4a] rounded-xl p-4\">\n <div className=\"text-[10px] text-gray-600 mb-3 truncate\">Task: {taskId.slice(0, 20)}...</div>\n <div className=\"relative pl-6\">\n {/* Vertical line */}\n <div className=\"absolute left-[9px] top-2 bottom-2 w-0.5 bg-[#1a1a2a]\" />\n\n {taskEvents.map((e, i) => {\n const cfg = EVENT_COLORS[e.to_status] || EVENT_COLORS.created;\n return (\n <div key={e.id} className=\"relative pb-4 last:pb-0\">\n {/* Dot on line */}\n <div className={`absolute -left-6 top-0.5 w-[18px] h-[18px] rounded-full ${cfg.dot} flex items-center justify-center text-[9px] z-10 border-2 border-[#111128]`}>\n {cfg.icon.length <= 2 ? cfg.icon : ''}\n </div>\n {/* Content */}\n <div className=\"ml-2\">\n <div className=\"flex items-center gap-2\">\n <span className={`text-xs font-medium ${e.to_status === 'failed' ? 'text-red-400' : e.to_status === 'replied' ? 'text-purple-400' : 'text-gray-300'}`}>\n {e.event_type}\n </span>\n {e.from_status && (\n <span className=\"text-[10px] text-gray-600\">{e.from_status} → {e.to_status}</span>\n )}\n <span className=\"text-[10px] text-gray-600 ml-auto\">{timeAgo(e.created_at)}</span>\n </div>\n {e.detail && (\n <div className=\"text-[11px] text-gray-500 mt-0.5 truncate\">{e.detail.slice(0, 50)}{e.detail.length > 50 ? '...' : ''}</div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n ))}\n </div>\n );\n}\n\nexport default function NodePage() {\n return (\n <Suspense fallback={<div className=\"min-h-screen bg-[#0a0a1a] text-gray-100 p-6 font-mono\">Loading...</div>}>\n <NodeDetailContent />\n </Suspense>\n );\n}\n"],"names":["timeAgo","dateStr","diff","Date","now","replace","getTime","s","Math","floor","statusColor","status","hasSse","formatUptime","seconds","h","m","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","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","TmuxViewer","tmuxName","output","setOutput","loading","setLoading","expanded","setExpanded","fetchTmux","res","fetch","encodeURIComponent","data","json","className","onClick","disabled","NodeDetailContent","searchParams","alias","session","setSession","inbox","setInbox","sse","setSse","setError","sendMsg","setSendMsg","sending","setSending","fetchData","interval","setInterval","clearInterval","sendError","setSendError","sendTask","method","headers","body","JSON","stringify","task","ok","setTimeout","href","NodeFullPanel","tab","setTab","events","setEvents","eventsLoaded","setEventsLoaded","then","r","d","catch","t","onClose","inline","EventsTimeline","label","node_id","alwaysShow","session_id","resume_id","agent","model","version","server","hostname","ip","project_dir","config_path","channels","tmux_name","progress","score","last_seen_at","registered_at","updated_at","title","onChange","onKeyDown","placeholder","EVENT_COLORS","delivered","dot","line","icon","acked","running","replied","failed","created","groups","Map","task_id","group","set","entries","taskId","taskEvents","cfg","to_status","event_type","from_status","created_at","detail","NodePage","fallback"],"mappings":"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","ignoreList":[1,2]}