@sleep2agi/agent-network-dashboard 0.1.0-preview.2 → 0.1.0-preview.4

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 (141) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/diagnostics/route-bundle-stats.json +6 -6
  5. package/.next/fallback-build-manifest.json +3 -3
  6. package/.next/server/app/_global-error.html +1 -1
  7. package/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found.html +1 -1
  14. package/.next/server/app/_not-found.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  21. package/.next/server/app/admin.html +1 -1
  22. package/.next/server/app/admin.rsc +1 -1
  23. package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
  24. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  25. package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
  26. package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
  27. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  28. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  29. package/.next/server/app/docs.html +1 -1
  30. package/.next/server/app/docs.rsc +1 -1
  31. package/.next/server/app/docs.segments/_full.segment.rsc +1 -1
  32. package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  33. package/.next/server/app/docs.segments/_index.segment.rsc +1 -1
  34. package/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
  35. package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  36. package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  37. package/.next/server/app/index.html +2 -2
  38. package/.next/server/app/index.rsc +2 -2
  39. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  40. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  41. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  42. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  43. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  44. package/.next/server/app/login.html +1 -1
  45. package/.next/server/app/login.rsc +1 -1
  46. package/.next/server/app/login.segments/_full.segment.rsc +1 -1
  47. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  48. package/.next/server/app/login.segments/_index.segment.rsc +1 -1
  49. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  50. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  51. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  52. package/.next/server/app/logs.html +1 -1
  53. package/.next/server/app/logs.rsc +1 -1
  54. package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
  55. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  56. package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
  57. package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
  58. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  59. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  60. package/.next/server/app/messages.html +1 -1
  61. package/.next/server/app/messages.rsc +1 -1
  62. package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
  63. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  64. package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
  65. package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
  66. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  67. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  68. package/.next/server/app/node/page_client-reference-manifest.js +1 -1
  69. package/.next/server/app/node.html +2 -2
  70. package/.next/server/app/node.rsc +2 -2
  71. package/.next/server/app/node.segments/_full.segment.rsc +2 -2
  72. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  73. package/.next/server/app/node.segments/_index.segment.rsc +1 -1
  74. package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
  75. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +2 -2
  76. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  77. package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
  78. package/.next/server/app/nodes.html +2 -2
  79. package/.next/server/app/nodes.rsc +2 -2
  80. package/.next/server/app/nodes.segments/_full.segment.rsc +2 -2
  81. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  82. package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
  83. package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
  84. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +2 -2
  85. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  86. package/.next/server/app/page_client-reference-manifest.js +1 -1
  87. package/.next/server/app/settings/networks.html +1 -1
  88. package/.next/server/app/settings/networks.rsc +1 -1
  89. package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
  90. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  91. package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
  92. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
  93. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  94. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  95. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  96. package/.next/server/app/settings/tokens.html +1 -1
  97. package/.next/server/app/settings/tokens.rsc +1 -1
  98. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
  99. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  100. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
  101. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
  102. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  103. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  104. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  105. package/.next/server/app/settings.html +1 -1
  106. package/.next/server/app/settings.rsc +1 -1
  107. package/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  108. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  109. package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  110. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  111. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  112. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  113. package/.next/server/app/tasks.html +1 -1
  114. package/.next/server/app/tasks.rsc +1 -1
  115. package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
  116. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  117. package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
  118. package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
  119. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  120. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  121. package/.next/server/chunks/[root-of-the-server]__0nl3akl._.js +1 -1
  122. package/.next/server/chunks/[root-of-the-server]__0nl3akl._.js.map +1 -1
  123. package/.next/server/chunks/[root-of-the-server]__0swcbs5._.js +1 -1
  124. package/.next/server/chunks/[root-of-the-server]__0swcbs5._.js.map +1 -1
  125. package/.next/server/chunks/ssr/_0s2kgzl._.js +1 -1
  126. package/.next/server/chunks/ssr/_0s2kgzl._.js.map +1 -1
  127. package/.next/server/middleware-build-manifest.js +3 -3
  128. package/.next/server/pages/404.html +1 -1
  129. package/.next/server/pages/500.html +1 -1
  130. package/.next/static/chunks/{00lj3.so.3xcl.js → 03qq_1ze1j3x_.js} +1 -1
  131. package/.next/static/chunks/{11tov78a0ymt9.js → 0e4dwg687ga5q.js} +1 -1
  132. package/.next/static/chunks/{0gjidgcgd2ibn.js → 0ga7wt1a18fpq.js} +1 -1
  133. package/.next/trace +2 -2
  134. package/.next/trace-build +1 -1
  135. package/app/api/hub/events/route.ts +10 -3
  136. package/app/api/hub/send/route.ts +6 -2
  137. package/app/components/TaskChatPanel.tsx +4 -2
  138. package/package.json +1 -1
  139. /package/.next/static/{zVDeG-cp6fcKuUs2y1LJi → lgag_dfMO-AGdtcyMHSLe}/_buildManifest.js +0 -0
  140. /package/.next/static/{zVDeG-cp6fcKuUs2y1LJi → lgag_dfMO-AGdtcyMHSLe}/_clientMiddlewareManifest.js +0 -0
  141. /package/.next/static/{zVDeG-cp6fcKuUs2y1LJi → lgag_dfMO-AGdtcyMHSLe}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18150,e=>{"use strict";e.s(["formatUptime",0,function(e){let t=Math.floor(e/3600),s=Math.floor(e%3600/60);return t>0?`${t}h ${s}m`:`${s}m`},"timeAgo",0,function(e){if(!e)return"--";let t=Math.floor((Date.now()-new Date(e.replace(" ","T")+"Z").getTime())/1e3);return t<60?`${t}s ago`:t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}])},65822,e=>{"use strict";var t=e.i(83599),s=e.i(58963);let n=async e=>{let t=await fetch(e);if(401===t.status)throw window.location.assign("/login"),Error("unauthorized");return t.json()},r={refreshInterval:5e3,dedupingInterval:3e3};function a(e,t){if(!t)return e;let s=e.includes("?")?"&":"?";return`${e}${s}network_id=${encodeURIComponent(t)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,t.default)("/api/anet/config",n,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:s}=(0,t.default)("/api/hub/health",n,r);return{health:e||null,error:s}},"useLicense",0,function(){let{data:e,error:s}=(0,t.default)("/api/hub/license",n,{refreshInterval:6e4});return{license:e?.ok?e:null,error:s}},"useMessages",0,function(e=100){let{networkId:i}=(0,s.useNetworkId)(),{data:l,error:o,isLoading:d}=(0,t.default)(a(`/api/hub/messages?limit=${e}`,i),n,r);return{messages:l?.messages||[],error:o,isLoading:d}},"useSessions",0,function(){let{networkId:e}=(0,s.useNetworkId)(),{data:i,error:l,isLoading:o}=(0,t.default)(a("/api/hub/status",e),n,r);return{sessions:i?.sessions||[],hint:i?._hint,error:l,isLoading:o}},"useStats",0,function(){let{networkId:e}=(0,s.useNetworkId)(),{data:i,error:l}=(0,t.default)(a("/api/hub/stats",e),n,r);return{stats:i?.ok?i:null,error:l}},"useTasks",0,function(e){let{networkId:i}=(0,s.useNetworkId)(),l=new URLSearchParams({limit:"100",...e}).toString(),{data:o,error:d,isLoading:c}=(0,t.default)(a(`/api/hub/tasks?${l}`,i),n,r);return{tasks:o?.tasks||[],count:o?.count??0,source:o?.source,error:d,isLoading:c}}])},16015,(e,t,s)=>{},98547,(e,t,s)=>{var n=e.i(47167);e.r(16015);var r=e.r(71645),a=r&&"object"==typeof r&&"default"in r?r:{default:r},i=void 0!==n.default&&n.default.env&&!0,l=function(e){return"[object String]"===Object.prototype.toString.call(e)},o=function(){function e(e){var t=void 0===e?{}:e,s=t.name,n=void 0===s?"stylesheet":s,r=t.optimizeForSpeed,a=void 0===r?i:r;d(l(n),"`name` must be a string"),this._name=n,this._deletedRulePlaceholder="#"+n+"-deleted-rule____{}",d("boolean"==typeof a,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=a,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var o="u">typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=o?o.getAttribute("content"):null}var t,s=e.prototype;return s.setOptimizeForSpeed=function(e){d("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),d(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},s.isOptimizeForSpeed=function(){return this._optimizeForSpeed},s.inject=function(){var e=this;if(d(!this._injected,"sheet already injected"),this._injected=!0,"u">typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(i||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(t,s){return"number"==typeof s?e._serverSheet.cssRules[s]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),s},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},s.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]},s.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},s.insertRule=function(e,t){if(d(l(e),"`insertRule` accepts only strings"),"u"<typeof window)return"number"!=typeof t&&(t=this._serverSheet.cssRules.length),this._serverSheet.insertRule(e,t),this._rulesCount++;if(this._optimizeForSpeed){var s=this.getSheet();"number"!=typeof t&&(t=s.cssRules.length);try{s.insertRule(e,t)}catch(t){return i||console.warn("StyleSheet: illegal rule: \n\n"+e+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),-1}}else{var n=this._tags[t];this._tags.push(this.makeStyleTag(this._name,e,n))}return this._rulesCount++},s.replaceRule=function(e,t){if(this._optimizeForSpeed||"u"<typeof window){var s="u">typeof window?this.getSheet():this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!s.cssRules[e])return e;s.deleteRule(e);try{s.insertRule(t,e)}catch(n){i||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),s.insertRule(this._deletedRulePlaceholder,e)}}else{var n=this._tags[e];d(n,"old rule at index `"+e+"` not found"),n.textContent=t}return e},s.deleteRule=function(e){if("u"<typeof window)return void this._serverSheet.deleteRule(e);if(this._optimizeForSpeed)this.replaceRule(e,"");else{var t=this._tags[e];d(t,"rule at index `"+e+"` not found"),t.parentNode.removeChild(t),this._tags[e]=null}},s.flush=function(){this._injected=!1,this._rulesCount=0,"u">typeof window?(this._tags.forEach(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]):this._serverSheet.cssRules=[]},s.cssRules=function(){var e=this;return"u"<typeof window?this._serverSheet.cssRules:this._tags.reduce(function(t,s){return s?t=t.concat(Array.prototype.map.call(e.getSheetForTag(s).cssRules,function(t){return t.cssText===e._deletedRulePlaceholder?null:t})):t.push(null),t},[])},s.makeStyleTag=function(e,t,s){t&&d(l(t),"makeStyleTag accepts only strings as second parameter");var n=document.createElement("style");this._nonce&&n.setAttribute("nonce",this._nonce),n.type="text/css",n.setAttribute("data-"+e,""),t&&n.appendChild(document.createTextNode(t));var r=document.head||document.getElementsByTagName("head")[0];return s?r.insertBefore(n,s):r.appendChild(n),n},t=[{key:"length",get:function(){return this._rulesCount}}],function(e,t){for(var s=0;s<t.length;s++){var n=t[s];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(e.prototype,t),e}();function d(e,t){if(!e)throw Error("StyleSheet: "+t+".")}var c=function(e){for(var t=5381,s=e.length;s;)t=33*t^e.charCodeAt(--s);return t>>>0},u={};function h(e,t){if(!t)return"jsx-"+e;var s=String(t),n=e+s;return u[n]||(u[n]="jsx-"+c(e+"-"+s)),u[n]}function x(e,t){"u"<typeof window&&(t=t.replace(/\/style/gi,"\\/style"));var s=e+t;return u[s]||(u[s]=t.replace(/__jsx-style-dynamic-selector/g,e)),u[s]}var m=function(){function e(e){var t=void 0===e?{}:e,s=t.styleSheet,n=void 0===s?null:s,r=t.optimizeForSpeed,a=void 0!==r&&r;this._sheet=n||new o({name:"styled-jsx",optimizeForSpeed:a}),this._sheet.inject(),n&&"boolean"==typeof a&&(this._sheet.setOptimizeForSpeed(a),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var t=e.prototype;return t.add=function(e){var t=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(e.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),"u">typeof window&&!this._fromServer&&(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,t){return e[t]=0,e},{}));var s=this.getIdAndRules(e),n=s.styleId,r=s.rules;if(n in this._instancesCounts){this._instancesCounts[n]+=1;return}var a=r.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[n]=a,this._instancesCounts[n]=1},t.remove=function(e){var t=this,s=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(s in this._instancesCounts,"styleId: `"+s+"` not found"),this._instancesCounts[s]-=1,this._instancesCounts[s]<1){var n=this._fromServer&&this._fromServer[s];n?(n.parentNode.removeChild(n),delete this._fromServer[s]):(this._indices[s].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[s]),delete this._instancesCounts[s]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],s=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return s[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,s;return t=this.cssRules(),void 0===(s=e)&&(s={}),t.map(function(e){var t=e[0],n=e[1];return a.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:s.nonce?s.nonce:void 0,dangerouslySetInnerHTML:{__html:n}})})},t.getIdAndRules=function(e){var t=e.children,s=e.dynamic,n=e.id;if(s){var r=h(n,s);return{styleId:r,rules:Array.isArray(t)?t.map(function(e){return x(r,e)}):[x(r,t)]}}return{styleId:h(n),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),p=r.createContext(null);function g(){return new m}function f(){return r.useContext(p)}p.displayName="StyleSheetContext";var y=a.default.useInsertionEffect||a.default.useLayoutEffect,b="u">typeof window?g():void 0;function v(e){var t=b||f();return t&&("u"<typeof window?t.add(e):y(function(){return t.add(e),function(){t.remove(e)}},[e.id,String(e.dynamic)])),null}v.dynamic=function(e){return e.map(function(e){return h(e[0],e[1])}).join(" ")},s.StyleRegistry=function(e){var t=e.registry,s=e.children,n=r.useContext(p),i=r.useState(function(){return n||t||g()})[0];return a.default.createElement(p.Provider,{value:i},s)},s.createStyleRegistry=g,s.style=v,s.useStyleRegistry=f},21373,(e,t,s)=>{t.exports=e.r(98547).style},58442,e=>{"use strict";var t=e.i(43476),s=e.i(21373),n=e.i(71645),r=e.i(18150);let a=["created","delivered","running","replied"],i={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 l({status:e}){let s=a.indexOf(e),n="failed"===e;return(0,t.jsxs)("div",{className:"flex items-center gap-1 mt-1.5",children:[a.map((e,r)=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("div",{className:`w-2 h-2 rounded-full transition-all duration-700 ${n?0===r?"bg-red-400":"bg-gray-700":r<=s?i[e]||"bg-gray-600":"bg-gray-700"}`}),r<a.length-1&&(0,t.jsx)("div",{className:`w-4 h-px transition-colors duration-700 ${n?"bg-red-800":r<s?"bg-gray-500":"bg-gray-800"}`})]},e)),(0,t.jsx)("span",{className:`text-[10px] ml-1.5 font-medium ${n?"text-red-400":"replied"===e?"text-purple-400":"running"===e?"text-green-400":"text-gray-500"}`,children:e}),("running"===e||"delivered"===e)&&(0,t.jsxs)("span",{className:"ml-1",children:[(0,t.jsx)("span",{className:"inline-block w-1 h-1 rounded-full bg-green-400 animate-pulse"}),(0,t.jsx)("span",{className:"inline-block w-1 h-1 rounded-full bg-green-400 animate-pulse ml-0.5",style:{animationDelay:"0.2s"}}),(0,t.jsx)("span",{className:"inline-block w-1 h-1 rounded-full bg-green-400 animate-pulse ml-0.5",style:{animationDelay:"0.4s"}})]})]})}function o({text:e}){if(!e)return(0,t.jsx)("span",{className:"text-gray-600 italic",children:"No content"});let s=e.split(/(```[\s\S]*?```|`[^`\n]+`|\*\*[^*]+\*\*)/g);return(0,t.jsx)("div",{className:"whitespace-pre-wrap break-words leading-relaxed",children:s.map((e,s)=>{if(e.startsWith("```")&&e.endsWith("```")){let n=e.slice(3,-3),r=n.match(/^(\w+)\n/)?.[1]||"",a=r?n.slice(r.length+1):n;return(0,t.jsxs)("div",{className:"my-2 rounded-lg overflow-hidden border border-[#1a1a2a]",children:[r&&(0,t.jsx)("div",{className:"bg-[#0a0a15] px-3 py-1 text-[10px] text-gray-500 border-b border-[#1a1a2a]",children:r}),(0,t.jsx)("pre",{className:"bg-[#050510] px-3 py-2 text-[11px] text-green-300 overflow-x-auto",children:a})]},s)}return e.startsWith("`")&&e.endsWith("`")?(0,t.jsx)("code",{className:"bg-[#0a0a15] rounded px-1.5 py-0.5 text-cyan-300 text-[11px] border border-[#1a1a2a]",children:e.slice(1,-1)},s):e.startsWith("**")&&e.endsWith("**")?(0,t.jsx)("strong",{className:"text-white font-semibold",children:e.slice(2,-2)},s):(0,t.jsx)("span",{children:e},s)})})}e.s(["TaskChatPanel",0,function({alias:e,onClose:a,inline:i,availableNodes:d}){let[c,u]=(0,n.useState)([]),[h,x]=(0,n.useState)(""),[m,p]=(0,n.useState)("normal"),[g,f]=(0,n.useState)(!1),[y,b]=(0,n.useState)(new Set),[v,j]=(0,n.useState)(!1),[N,w]=(0,n.useState)(e),[S,_]=(0,n.useState)(!1),[k,C]=(0,n.useState)(""),[R,$]=(0,n.useState)([]),z=(0,n.useRef)(null),F=(0,n.useRef)(null);(0,n.useEffect)(()=>{d?$(d):fetch("/api/hub/status").then(e=>e.json()).then(e=>{$((e.sessions||[]).filter(e=>"offline"!==e.status).map(e=>e.alias))}).catch(()=>{})},[d]),(0,n.useEffect)(()=>{w(e)},[e]);let T=(0,n.useCallback)(async()=>{try{let t=await fetch(`/api/hub/tasks?to_name=${encodeURIComponent(e)}&limit=30`),s=await t.json();s.tasks&&u(s.tasks.reverse())}catch{}finally{j(!0)}},[e]);(0,n.useEffect)(()=>{u([]),j(!1),T(),setTimeout(()=>F.current?.focus(),300)},[e,T]),(0,n.useEffect)(()=>{z.current?.scrollIntoView({behavior:"smooth"})},[c]),(0,n.useEffect)(()=>{if(0===y.size)return;let e=Date.now(),t=setInterval(async()=>{if(Date.now()-e>12e4){b(new Set),clearInterval(t);return}for(let e of y)try{let t=await fetch(`/api/hub/tasks?task_id=${encodeURIComponent(e)}`),s=await t.json();if(s.tasks?.[0]){let t=s.tasks[0];u(s=>s.map(s=>s.task_id===e?{...s,...t}:s)),["replied","failed","closed","expired","cancelled"].includes(t.status)&&b(t=>{let s=new Set(t);return s.delete(e),s})}}catch{}},2e3);return()=>clearInterval(t)},[y]);let I=async()=>{if(!h.trim()||g)return;let e=h.trim(),t=N,s=e.match(/^@(\S+)\s+([\s\S]+)/);if(s){let n=R.find(e=>e.toLowerCase()===s[1].toLowerCase());n&&(t=n,e=s[2])}f(!0),x(""),_(!1),F.current&&(F.current.style.height="auto");try{let s=await fetch("/api/hub/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:t,task:e,priority:m})}),n=await s.json();if(n.ok){let s={task_id:n.message_id||`tmp-${Date.now()}`,from_name:"Dashboard",to_name:t,status:"created",priority:m,content:e,result:"",created_at:new Date().toISOString()};u(e=>[...e,s]),n.message_id&&b(e=>new Set(e).add(n.message_id))}}catch{}f(!1),F.current?.focus()},A=R.filter(t=>t!==e&&t.toLowerCase().includes(k)).slice(0,8),O=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 py-4 space-y-4",children:[!v&&(0,t.jsx)("div",{className:"flex justify-center py-8",children:(0,t.jsx)("div",{className:"w-5 h-5 border-2 border-cyan-500/30 border-t-cyan-500 rounded-full animate-spin"})}),v&&0===c.length&&(0,t.jsxs)("div",{className:"text-center py-12",children:[(0,t.jsx)("div",{className:"text-3xl mb-3",children:"💬"}),(0,t.jsx)("div",{className:"text-gray-500 text-sm",children:"Start a conversation"}),(0,t.jsxs)("div",{className:"text-gray-600 text-xs mt-1",children:["Send a task to ",e]})]}),c.map((e,s)=>(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.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,t.jsx)("div",{className:"text-[13px] text-gray-200",children:(0,t.jsx)(o,{text:e.content})}),(0,t.jsxs)("div",{className:"flex items-center justify-between mt-1.5 gap-3",children:[(0,t.jsx)(l,{status:e.status}),(0,t.jsx)("span",{className:"text-[9px] text-gray-600 shrink-0",children:(0,r.timeAgo)(e.created_at)})]})]})}),e.result&&(0,t.jsx)("div",{className:"flex justify-start",children:(0,t.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,t.jsx)("div",{className:"text-[10px] text-green-400 font-medium mb-1.5",children:e.to_name}),(0,t.jsx)("div",{className:"text-[13px] text-gray-200",children:(0,t.jsx)(o,{text:e.result})})]})}),"running"===e.status&&!e.result&&(0,t.jsx)("div",{className:"flex justify-start",children:(0,t.jsx)("div",{className:"bg-[#111128] border border-[#2a2a4a] rounded-2xl rounded-bl-md px-4 py-3",children:(0,t.jsxs)("div",{className:"flex gap-1",children:[(0,t.jsx)("span",{className:"w-2 h-2 rounded-full bg-gray-500 animate-bounce",style:{animationDelay:"0s"}}),(0,t.jsx)("span",{className:"w-2 h-2 rounded-full bg-gray-500 animate-bounce",style:{animationDelay:"0.15s"}}),(0,t.jsx)("span",{className:"w-2 h-2 rounded-full bg-gray-500 animate-bounce",style:{animationDelay:"0.3s"}})]})})})]},e.task_id)),(0,t.jsx)("div",{ref:z})]}),(0,t.jsxs)("div",{className:"border-t border-[#2a2a4a] bg-[#0d0d1a] px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[(0,t.jsxs)("div",{className:"flex-1 relative",children:[S&&A.length>0&&(0,t.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:A.map(e=>(0,t.jsxs)("button",{onClick:()=>{let t,s;return t=h.lastIndexOf("@"),s=h.slice(0,t),void(x(`${s}@${e} `),_(!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,t.jsx)("span",{className:"w-2 h-2 rounded-full bg-cyan-400 shrink-0"}),(0,t.jsx)("span",{className:"text-gray-300",children:e})]},e))}),(0,t.jsx)("textarea",{ref:F,value:h,onChange:e=>{var t;(e=>{x(e);let t=e.lastIndexOf("@");if(t>=0&&(0===t||" "===e[t-1]||"\n"===e[t-1])){let s=e.slice(t+1);if(!s.includes(" ")&&!s.includes("\n")){C(s.toLowerCase()),_(!0);return}}_(!1)})(e.target.value),(t=e.target).style.height="auto",t.style.height=Math.min(t.scrollHeight,150)+"px"},onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&"Enter"===e.key&&(e.preventDefault(),I()),"Escape"===e.key&&_(!1)},placeholder:`Message ${e}...`,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,t.jsx)("div",{className:"absolute right-2 bottom-1.5 flex items-center gap-1",children:(0,t.jsxs)("select",{value:m,onChange:e=>p(e.target.value),className:"bg-transparent text-[9px] text-gray-600 focus:outline-none cursor-pointer",children:[(0,t.jsx)("option",{value:"normal",children:"N"}),(0,t.jsx)("option",{value:"high",children:"H"}),(0,t.jsx)("option",{value:"low",children:"L"})]})})]}),(0,t.jsx)("button",{onClick:I,disabled:g||!h.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:g?(0,t.jsx)("div",{className:"w-5 h-5 border-2 border-white/30 border-t-white rounded-full animate-spin"}):(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,t.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,t.jsxs)("div",{className:"flex justify-between text-[9px] text-gray-700 mt-1.5",children:[(0,t.jsx)("span",{children:h.includes("@")?`Sending to: ${N}`:"Type @ to mention another node"}),(0,t.jsx)("span",{children:"⌘+Enter"})]})]})]});return i?(0,t.jsx)("div",{className:"flex flex-col h-full",children:O}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{onClick:a,className:"jsx-c3e56cbc81656d9 fixed inset-0 bg-black/30 z-40 lg:hidden"}),(0,t.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,t.jsxs)("div",{className:"jsx-c3e56cbc81656d9 flex items-center justify-between px-4 py-3 border-b border-[#2a2a4a] bg-[#0d0d1a]",children:[(0,t.jsxs)("div",{className:"jsx-c3e56cbc81656d9 flex items-center gap-3",children:[(0,t.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:e.slice(0,2)}),(0,t.jsxs)("div",{className:"jsx-c3e56cbc81656d9",children:[(0,t.jsx)("div",{className:"jsx-c3e56cbc81656d9 text-sm font-semibold text-white",children:e}),(0,t.jsx)("div",{className:"jsx-c3e56cbc81656d9 text-[10px] text-gray-500",children:y.size>0?"Processing...":"Ready"})]})]}),(0,t.jsx)("button",{onClick:a,className:"jsx-c3e56cbc81656d9 text-gray-500 hover:text-white p-1.5 rounded-lg hover:bg-[#1a1a2a]",children:(0,t.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,className:"jsx-c3e56cbc81656d9 w-5 h-5",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12",className:"jsx-c3e56cbc81656d9"})})})]}),O]}),(0,t.jsx)(s.default,{id:"c3e56cbc81656d9",children:"@keyframes slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.animate-slide-in{animation:.2s ease-out slide-in}"})]})}])},86688,e=>{"use strict";var t=e.i(43476),s=e.i(71645),n=e.i(22016),r=e.i(18150),a=e.i(65822),i=e.i(58442);let l={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"};e.s(["default",0,function(){let e,o,d,c,{sessions:u,isLoading:h}=(0,a.useSessions)(),{health:x}=(0,a.useHealth)(),m=x?.sse_sessions||{},[p,g]=(0,s.useState)(""),[f,y]=(0,s.useState)(""),[b,v]=(0,s.useState)("list"),[j,N]=(0,s.useState)({}),[w,S]=(0,s.useState)(null),[_,k]=(0,s.useState)({}),[C,R]=(0,s.useState)(null),$=u.map(e=>({...e,online:!!m[e.alias]})).filter(e=>"online"===p?e.online:"offline"===p?!e.online:!p||p===e.status).filter(e=>!f||e.alias.toLowerCase().includes(f.toLowerCase())||(e.agent||"").toLowerCase().includes(f.toLowerCase())).sort((e,t)=>!!t.online-!!e.online||("working"===t.status)-("working"===e.status)),z=u.filter(e=>m[e.alias]).length,F=e=>{S(t=>t===e?null:e),k(t=>({...t,[e]:{}}))},T=(e,t)=>{N(s=>({...s,[e]:t}))},I=async e=>{let t=j[e]?.trim()||"";if(t){k(t=>({...t,[e]:{sending:!0}}));try{let s=await fetch("/api/hub/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:e,task:t})}),n=await s.json();if(!s.ok||n?.ok===!1)throw Error(n?.error||"Send failed");N(t=>({...t,[e]:""})),k(t=>({...t,[e]:{success:"Task sent"}})),S(null)}catch(t){k(s=>({...s,[e]:{error:t instanceof Error?t.message:"Send failed"}}))}}};return(0,t.jsxs)("div",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4 mb-6",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold text-white lg:ml-0 ml-10",children:"Nodes"}),(0,t.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:[z," online"]}),(0,t.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:[u.length," total"]})]}),u.length>0&&(e=$.filter(e=>e.online&&"working"===e.status).length,o=$.filter(e=>e.online&&"idle"===e.status).length,d=$.filter(e=>!e.online).length,c=$.length||1,(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)("div",{className:"flex h-2 rounded-full overflow-hidden bg-gray-800",children:[e>0&&(0,t.jsx)("div",{className:"bg-green-500",style:{width:`${e/c*100}%`}}),o>0&&(0,t.jsx)("div",{className:"bg-cyan-500",style:{width:`${o/c*100}%`}}),d>0&&(0,t.jsx)("div",{className:"bg-gray-600",style:{width:`${d/c*100}%`}})]}),(0,t.jsxs)("div",{className:"flex gap-4 mt-1.5 text-[10px] text-gray-500",children:[e>0&&(0,t.jsxs)("span",{children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-green-500 mr-1"}),e," working"]}),o>0&&(0,t.jsxs)("span",{children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-cyan-500 mr-1"}),o," idle"]}),d>0&&(0,t.jsxs)("span",{children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-gray-600 mr-1"}),d," offline"]})]})]})),(0,t.jsxs)("div",{className:"flex flex-wrap gap-3 mb-6",children:[(0,t.jsx)("input",{type:"text",value:f,onChange:e=>y(e.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,t.jsxs)("select",{value:p,onChange:e=>g(e.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,t.jsx)("option",{value:"",children:"All"}),(0,t.jsx)("option",{value:"online",children:"Online"}),(0,t.jsx)("option",{value:"offline",children:"Offline"}),(0,t.jsx)("option",{value:"working",children:"Working"}),(0,t.jsx)("option",{value:"idle",children:"Idle"}),(0,t.jsx)("option",{value:"blocked",children:"Blocked"}),(0,t.jsx)("option",{value:"error",children:"Error"})]}),(0,t.jsx)("div",{className:"ml-auto flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 text-sm",children:["list","grid"].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>v(e),className:`rounded-md px-3 py-1.5 transition-colors ${b===e?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"list"===e?"List":"Grid"},e))})]}),h?(0,t.jsx)("div",{className:"animate-pulse space-y-2",children:[1,2,3,4].map(e=>(0,t.jsx)("div",{className:"h-16 bg-gray-800/20 rounded-lg"},e))}):0===$.length?(0,t.jsx)("div",{className:"text-center py-16 text-gray-600",children:"No nodes match your filters."}):"grid"===b?(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:$.map(e=>{let s=e.online?e.status:"offline",a=_[e.alias]||{},i="number"==typeof e.progress?e.progress:0;return(0,t.jsxs)("div",{className:`relative overflow-hidden rounded-xl border border-[#2a2a4a] bg-[#111128] p-4 transition-colors ${!e.online?"opacity-60":""}`,children:[!e.online&&(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:(0,t.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,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsx)(n.default,{href:`/node?alias=${encodeURIComponent(e.alias)}`,className:"min-w-0 flex-1 hover:text-cyan-300",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"truncate text-base font-semibold text-white",children:e.alias}),(0,t.jsx)("span",{className:`shrink-0 rounded-md border px-2 py-0.5 text-[11px] ${l[s]||l.offline}`,children:s})]})}),(0,t.jsxs)("div",{className:"flex gap-1.5 shrink-0",children:[(0,t.jsx)("button",{type:"button",onClick:()=>R(e.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,t.jsx)("button",{type:"button",onClick:()=>F(e.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,t.jsxs)("div",{className:"mt-3 space-y-2 text-xs text-gray-500",children:[(0,t.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,t.jsx)("span",{children:"Agent"}),(0,t.jsx)("span",{className:"truncate text-gray-300",children:e.agent||"--"})]}),(0,t.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,t.jsx)("span",{children:"Server"}),(0,t.jsx)("span",{className:"truncate text-gray-300",children:e.server||"--"})]}),(0,t.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,t.jsx)("span",{children:"Updated"}),(0,t.jsx)("span",{className:"text-gray-300",children:(0,r.timeAgo)(e.last_seen_at||e.updated_at)})]})]}),(0,t.jsx)("div",{className:"mt-3 rounded-lg border border-[#1a1a2a] bg-[#0a0a15] px-3 py-2 text-xs text-gray-400",children:e.task?e.task:"No current task"}),i>0&&i<100&&(0,t.jsx)("div",{className:"mt-3 h-1.5 overflow-hidden rounded-full bg-gray-800",children:(0,t.jsx)("div",{className:"h-1.5 rounded-full bg-cyan-400 transition-all",style:{width:`${i}%`}})}),w===e.alias&&(0,t.jsxs)("div",{className:"mt-4 space-y-2 rounded-lg border border-[#2a2a4a] bg-[#0a0a15] p-3",children:[(0,t.jsx)("input",{type:"text",value:j[e.alias]||"",onChange:t=>T(e.alias,t.target.value),onKeyDown:t=>"Enter"===t.key&&I(e.alias),placeholder:`Send task to ${e.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,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>S(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,t.jsx)("button",{type:"button",onClick:()=>I(e.alias),disabled:a.sending||!(j[e.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:a.sending?"Sending...":"Send"})]})]}),a.error&&(0,t.jsx)("div",{className:"mt-2 text-xs text-red-400",children:a.error}),a.success&&w!==e.alias&&(0,t.jsx)("div",{className:"mt-2 text-xs text-green-400",children:a.success})]},e.alias)})}):(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 px-4 py-2 text-xs text-gray-600 uppercase",children:[(0,t.jsx)("div",{className:"col-span-1",children:"Status"}),(0,t.jsx)("div",{className:"col-span-2",children:"Alias"}),(0,t.jsx)("div",{className:"col-span-2",children:"Agent"}),(0,t.jsx)("div",{className:"col-span-2",children:"Server"}),(0,t.jsx)("div",{className:"col-span-2",children:"Current Task"}),(0,t.jsx)("div",{className:"col-span-1",children:"Updated"}),(0,t.jsx)("div",{className:"col-span-2 text-right",children:"Actions"})]}),$.map(e=>{let s=e.online?e.status:"offline",a=_[e.alias]||{};return(0,t.jsxs)("div",{className:`rounded-lg border border-[#2a2a4a] bg-[#111128] px-4 py-3 transition-colors hover:border-[#3a3a5a] ${!e.online?"opacity-50":""}`,children:[(0,t.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 items-center",children:[(0,t.jsx)("div",{className:"col-span-1",children:(0,t.jsx)("span",{className:`text-xs px-2 py-0.5 rounded-md border ${l[s]||l.offline}`,children:s})}),(0,t.jsx)("div",{className:"col-span-2 min-w-0",children:(0,t.jsx)(n.default,{href:`/node?alias=${encodeURIComponent(e.alias)}`,className:"truncate text-sm font-medium text-white hover:text-cyan-300",children:e.alias})}),(0,t.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",children:e.agent||"--"}),(0,t.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",children:e.server||"--"}),(0,t.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-500",children:e.task||"--"}),(0,t.jsx)("div",{className:"col-span-1 text-xs text-gray-500",children:(0,r.timeAgo)(e.last_seen_at||e.updated_at)}),(0,t.jsxs)("div",{className:"col-span-2 flex justify-end gap-1.5",children:[(0,t.jsx)("button",{type:"button",onClick:()=>R(e.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,t.jsx)("button",{type:"button",onClick:()=>F(e.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,t.jsxs)("div",{className:"sm:hidden space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)(n.default,{href:`/node?alias=${encodeURIComponent(e.alias)}`,className:"truncate text-sm font-medium text-white hover:text-cyan-300",children:e.alias}),(0,t.jsx)("span",{className:`shrink-0 text-xs px-2 py-0.5 rounded-md border ${l[s]||l.offline}`,children:s})]}),(0,t.jsxs)("div",{className:"text-xs text-gray-500",children:[e.agent||"--"," · ",(0,r.timeAgo)(e.last_seen_at||e.updated_at)]}),e.task&&(0,t.jsx)("div",{className:"truncate text-xs text-gray-500",children:e.task}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>R(e.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,t.jsx)("button",{type:"button",onClick:()=>F(e.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"})]})]}),w===e.alias&&(0,t.jsxs)("div",{className:"mt-3 space-y-2 border-t border-[#2a2a4a] pt-3",children:[(0,t.jsx)("input",{type:"text",value:j[e.alias]||"",onChange:t=>T(e.alias,t.target.value),onKeyDown:t=>"Enter"===t.key&&I(e.alias),placeholder:`Send task to ${e.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,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>S(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,t.jsx)("button",{type:"button",onClick:()=>I(e.alias),disabled:a.sending||!(j[e.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:a.sending?"Sending...":"Send"})]})]}),a.error&&(0,t.jsx)("div",{className:"mt-2 text-xs text-red-400",children:a.error}),a.success&&w!==e.alias&&(0,t.jsx)("div",{className:"mt-2 text-xs text-green-400",children:a.success})]},e.alias)})]}),C&&(0,t.jsx)(i.TaskChatPanel,{alias:C,onClose:()=>R(null)})]})}])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18150,e=>{"use strict";e.s(["formatUptime",0,function(e){let t=Math.floor(e/3600),s=Math.floor(e%3600/60);return t>0?`${t}h ${s}m`:`${s}m`},"timeAgo",0,function(e){if(!e)return"--";let t=Math.floor((Date.now()-new Date(e.replace(" ","T")+"Z").getTime())/1e3);return t<60?`${t}s ago`:t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}])},65822,e=>{"use strict";var t=e.i(83599),s=e.i(58963);let n=async e=>{let t=await fetch(e);if(401===t.status)throw window.location.assign("/login"),Error("unauthorized");return t.json()},r={refreshInterval:5e3,dedupingInterval:3e3};function a(e,t){if(!t)return e;let s=e.includes("?")?"&":"?";return`${e}${s}network_id=${encodeURIComponent(t)}`}e.s(["useAnetConfig",0,function(){let{data:e}=(0,t.default)("/api/anet/config",n,{refreshInterval:3e4});return{config:e||null}},"useHealth",0,function(){let{data:e,error:s}=(0,t.default)("/api/hub/health",n,r);return{health:e||null,error:s}},"useLicense",0,function(){let{data:e,error:s}=(0,t.default)("/api/hub/license",n,{refreshInterval:6e4});return{license:e?.ok?e:null,error:s}},"useMessages",0,function(e=100){let{networkId:i}=(0,s.useNetworkId)(),{data:l,error:o,isLoading:d}=(0,t.default)(a(`/api/hub/messages?limit=${e}`,i),n,r);return{messages:l?.messages||[],error:o,isLoading:d}},"useSessions",0,function(){let{networkId:e}=(0,s.useNetworkId)(),{data:i,error:l,isLoading:o}=(0,t.default)(a("/api/hub/status",e),n,r);return{sessions:i?.sessions||[],hint:i?._hint,error:l,isLoading:o}},"useStats",0,function(){let{networkId:e}=(0,s.useNetworkId)(),{data:i,error:l}=(0,t.default)(a("/api/hub/stats",e),n,r);return{stats:i?.ok?i:null,error:l}},"useTasks",0,function(e){let{networkId:i}=(0,s.useNetworkId)(),l=new URLSearchParams({limit:"100",...e}).toString(),{data:o,error:d,isLoading:c}=(0,t.default)(a(`/api/hub/tasks?${l}`,i),n,r);return{tasks:o?.tasks||[],count:o?.count??0,source:o?.source,error:d,isLoading:c}}])},16015,(e,t,s)=>{},98547,(e,t,s)=>{var n=e.i(47167);e.r(16015);var r=e.r(71645),a=r&&"object"==typeof r&&"default"in r?r:{default:r},i=void 0!==n.default&&n.default.env&&!0,l=function(e){return"[object String]"===Object.prototype.toString.call(e)},o=function(){function e(e){var t=void 0===e?{}:e,s=t.name,n=void 0===s?"stylesheet":s,r=t.optimizeForSpeed,a=void 0===r?i:r;d(l(n),"`name` must be a string"),this._name=n,this._deletedRulePlaceholder="#"+n+"-deleted-rule____{}",d("boolean"==typeof a,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=a,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var o="u">typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=o?o.getAttribute("content"):null}var t,s=e.prototype;return s.setOptimizeForSpeed=function(e){d("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),d(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},s.isOptimizeForSpeed=function(){return this._optimizeForSpeed},s.inject=function(){var e=this;if(d(!this._injected,"sheet already injected"),this._injected=!0,"u">typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(i||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(t,s){return"number"==typeof s?e._serverSheet.cssRules[s]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),s},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},s.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]},s.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},s.insertRule=function(e,t){if(d(l(e),"`insertRule` accepts only strings"),"u"<typeof window)return"number"!=typeof t&&(t=this._serverSheet.cssRules.length),this._serverSheet.insertRule(e,t),this._rulesCount++;if(this._optimizeForSpeed){var s=this.getSheet();"number"!=typeof t&&(t=s.cssRules.length);try{s.insertRule(e,t)}catch(t){return i||console.warn("StyleSheet: illegal rule: \n\n"+e+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),-1}}else{var n=this._tags[t];this._tags.push(this.makeStyleTag(this._name,e,n))}return this._rulesCount++},s.replaceRule=function(e,t){if(this._optimizeForSpeed||"u"<typeof window){var s="u">typeof window?this.getSheet():this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!s.cssRules[e])return e;s.deleteRule(e);try{s.insertRule(t,e)}catch(n){i||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),s.insertRule(this._deletedRulePlaceholder,e)}}else{var n=this._tags[e];d(n,"old rule at index `"+e+"` not found"),n.textContent=t}return e},s.deleteRule=function(e){if("u"<typeof window)return void this._serverSheet.deleteRule(e);if(this._optimizeForSpeed)this.replaceRule(e,"");else{var t=this._tags[e];d(t,"rule at index `"+e+"` not found"),t.parentNode.removeChild(t),this._tags[e]=null}},s.flush=function(){this._injected=!1,this._rulesCount=0,"u">typeof window?(this._tags.forEach(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]):this._serverSheet.cssRules=[]},s.cssRules=function(){var e=this;return"u"<typeof window?this._serverSheet.cssRules:this._tags.reduce(function(t,s){return s?t=t.concat(Array.prototype.map.call(e.getSheetForTag(s).cssRules,function(t){return t.cssText===e._deletedRulePlaceholder?null:t})):t.push(null),t},[])},s.makeStyleTag=function(e,t,s){t&&d(l(t),"makeStyleTag accepts only strings as second parameter");var n=document.createElement("style");this._nonce&&n.setAttribute("nonce",this._nonce),n.type="text/css",n.setAttribute("data-"+e,""),t&&n.appendChild(document.createTextNode(t));var r=document.head||document.getElementsByTagName("head")[0];return s?r.insertBefore(n,s):r.appendChild(n),n},t=[{key:"length",get:function(){return this._rulesCount}}],function(e,t){for(var s=0;s<t.length;s++){var n=t[s];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(e.prototype,t),e}();function d(e,t){if(!e)throw Error("StyleSheet: "+t+".")}var c=function(e){for(var t=5381,s=e.length;s;)t=33*t^e.charCodeAt(--s);return t>>>0},u={};function h(e,t){if(!t)return"jsx-"+e;var s=String(t),n=e+s;return u[n]||(u[n]="jsx-"+c(e+"-"+s)),u[n]}function x(e,t){"u"<typeof window&&(t=t.replace(/\/style/gi,"\\/style"));var s=e+t;return u[s]||(u[s]=t.replace(/__jsx-style-dynamic-selector/g,e)),u[s]}var m=function(){function e(e){var t=void 0===e?{}:e,s=t.styleSheet,n=void 0===s?null:s,r=t.optimizeForSpeed,a=void 0!==r&&r;this._sheet=n||new o({name:"styled-jsx",optimizeForSpeed:a}),this._sheet.inject(),n&&"boolean"==typeof a&&(this._sheet.setOptimizeForSpeed(a),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var t=e.prototype;return t.add=function(e){var t=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(e.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),"u">typeof window&&!this._fromServer&&(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,t){return e[t]=0,e},{}));var s=this.getIdAndRules(e),n=s.styleId,r=s.rules;if(n in this._instancesCounts){this._instancesCounts[n]+=1;return}var a=r.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[n]=a,this._instancesCounts[n]=1},t.remove=function(e){var t=this,s=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(s in this._instancesCounts,"styleId: `"+s+"` not found"),this._instancesCounts[s]-=1,this._instancesCounts[s]<1){var n=this._fromServer&&this._fromServer[s];n?(n.parentNode.removeChild(n),delete this._fromServer[s]):(this._indices[s].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[s]),delete this._instancesCounts[s]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],s=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return s[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,s;return t=this.cssRules(),void 0===(s=e)&&(s={}),t.map(function(e){var t=e[0],n=e[1];return a.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:s.nonce?s.nonce:void 0,dangerouslySetInnerHTML:{__html:n}})})},t.getIdAndRules=function(e){var t=e.children,s=e.dynamic,n=e.id;if(s){var r=h(n,s);return{styleId:r,rules:Array.isArray(t)?t.map(function(e){return x(r,e)}):[x(r,t)]}}return{styleId:h(n),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),p=r.createContext(null);function g(){return new m}function f(){return r.useContext(p)}p.displayName="StyleSheetContext";var y=a.default.useInsertionEffect||a.default.useLayoutEffect,b="u">typeof window?g():void 0;function v(e){var t=b||f();return t&&("u"<typeof window?t.add(e):y(function(){return t.add(e),function(){t.remove(e)}},[e.id,String(e.dynamic)])),null}v.dynamic=function(e){return e.map(function(e){return h(e[0],e[1])}).join(" ")},s.StyleRegistry=function(e){var t=e.registry,s=e.children,n=r.useContext(p),i=r.useState(function(){return n||t||g()})[0];return a.default.createElement(p.Provider,{value:i},s)},s.createStyleRegistry=g,s.style=v,s.useStyleRegistry=f},21373,(e,t,s)=>{t.exports=e.r(98547).style},58442,e=>{"use strict";var t=e.i(43476),s=e.i(21373),n=e.i(71645),r=e.i(18150);let a=["created","delivered","running","replied"],i={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 l({status:e}){let s=a.indexOf(e),n="failed"===e;return(0,t.jsxs)("div",{className:"flex items-center gap-1 mt-1.5",children:[a.map((e,r)=>(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("div",{className:`w-2 h-2 rounded-full transition-all duration-700 ${n?0===r?"bg-red-400":"bg-gray-700":r<=s?i[e]||"bg-gray-600":"bg-gray-700"}`}),r<a.length-1&&(0,t.jsx)("div",{className:`w-4 h-px transition-colors duration-700 ${n?"bg-red-800":r<s?"bg-gray-500":"bg-gray-800"}`})]},e)),(0,t.jsx)("span",{className:`text-[10px] ml-1.5 font-medium ${n?"text-red-400":"replied"===e?"text-purple-400":"running"===e?"text-green-400":"text-gray-500"}`,children:e}),("running"===e||"delivered"===e)&&(0,t.jsxs)("span",{className:"ml-1",children:[(0,t.jsx)("span",{className:"inline-block w-1 h-1 rounded-full bg-green-400 animate-pulse"}),(0,t.jsx)("span",{className:"inline-block w-1 h-1 rounded-full bg-green-400 animate-pulse ml-0.5",style:{animationDelay:"0.2s"}}),(0,t.jsx)("span",{className:"inline-block w-1 h-1 rounded-full bg-green-400 animate-pulse ml-0.5",style:{animationDelay:"0.4s"}})]})]})}function o({text:e}){if(!e)return(0,t.jsx)("span",{className:"text-gray-600 italic",children:"No content"});let s=e.split(/(```[\s\S]*?```|`[^`\n]+`|\*\*[^*]+\*\*)/g);return(0,t.jsx)("div",{className:"whitespace-pre-wrap break-words leading-relaxed",children:s.map((e,s)=>{if(e.startsWith("```")&&e.endsWith("```")){let n=e.slice(3,-3),r=n.match(/^(\w+)\n/)?.[1]||"",a=r?n.slice(r.length+1):n;return(0,t.jsxs)("div",{className:"my-2 rounded-lg overflow-hidden border border-[#1a1a2a]",children:[r&&(0,t.jsx)("div",{className:"bg-[#0a0a15] px-3 py-1 text-[10px] text-gray-500 border-b border-[#1a1a2a]",children:r}),(0,t.jsx)("pre",{className:"bg-[#050510] px-3 py-2 text-[11px] text-green-300 overflow-x-auto",children:a})]},s)}return e.startsWith("`")&&e.endsWith("`")?(0,t.jsx)("code",{className:"bg-[#0a0a15] rounded px-1.5 py-0.5 text-cyan-300 text-[11px] border border-[#1a1a2a]",children:e.slice(1,-1)},s):e.startsWith("**")&&e.endsWith("**")?(0,t.jsx)("strong",{className:"text-white font-semibold",children:e.slice(2,-2)},s):(0,t.jsx)("span",{children:e},s)})})}e.s(["TaskChatPanel",0,function({alias:e,onClose:a,inline:i,availableNodes:d}){let[c,u]=(0,n.useState)([]),[h,x]=(0,n.useState)(""),[m,p]=(0,n.useState)("normal"),[g,f]=(0,n.useState)(!1),[y,b]=(0,n.useState)(new Set),[v,j]=(0,n.useState)(!1),[N,w]=(0,n.useState)(e),[S,_]=(0,n.useState)(!1),[k,C]=(0,n.useState)(""),[R,$]=(0,n.useState)([]),z=(0,n.useRef)(null),F=(0,n.useRef)(null);(0,n.useEffect)(()=>{d?$(d):fetch("/api/hub/status").then(e=>e.json()).then(e=>{$((e.sessions||[]).filter(e=>"offline"!==e.status).map(e=>e.alias))}).catch(()=>{})},[d]),(0,n.useEffect)(()=>{w(e)},[e]);let T=(0,n.useCallback)(async()=>{try{let t=await fetch(`/api/hub/tasks?to_name=${encodeURIComponent(e)}&limit=30`),s=await t.json();s.tasks&&u(s.tasks.reverse())}catch{}finally{j(!0)}},[e]);(0,n.useEffect)(()=>{u([]),j(!1),T(),setTimeout(()=>F.current?.focus(),300)},[e,T]),(0,n.useEffect)(()=>{z.current?.scrollIntoView({behavior:"smooth"})},[c]),(0,n.useEffect)(()=>{if(0===y.size)return;let e=Date.now(),t=setInterval(async()=>{if(Date.now()-e>12e4){b(new Set),clearInterval(t);return}for(let e of y)try{let t=await fetch(`/api/hub/tasks?task_id=${encodeURIComponent(e)}`),s=await t.json();if(s.tasks?.[0]){let t=s.tasks[0];u(s=>s.map(s=>s.task_id===e?{...s,...t}:s)),["replied","failed","closed","expired","cancelled"].includes(t.status)&&b(t=>{let s=new Set(t);return s.delete(e),s})}}catch{}},2e3);return()=>clearInterval(t)},[y]);let I=async()=>{if(!h.trim()||g)return;let e=h.trim(),t=N,s=e.match(/^@(\S+)\s+([\s\S]+)/);if(s){let n=R.find(e=>e.toLowerCase()===s[1].toLowerCase());n&&(t=n,e=s[2])}f(!0),x(""),_(!1),F.current&&(F.current.style.height="auto");try{let s=await fetch("/api/hub/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:t,task:e,priority:m})}),n=await s.json();if(n.ok){let s={task_id:n.message_id||`tmp-${Date.now()}`,from_name:"Dashboard",to_name:t,status:"created",priority:m,content:e,result:"",created_at:new Date().toISOString()};u(e=>[...e,s]),n.message_id&&b(e=>new Set(e).add(n.message_id))}}catch{}f(!1),F.current?.focus()},A=R.filter(t=>t!==e&&t.toLowerCase().includes(k)).slice(0,8),E=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 py-4 space-y-4",children:[!v&&(0,t.jsx)("div",{className:"flex justify-center py-8",children:(0,t.jsx)("div",{className:"w-5 h-5 border-2 border-cyan-500/30 border-t-cyan-500 rounded-full animate-spin"})}),v&&0===c.length&&(0,t.jsxs)("div",{className:"text-center py-12",children:[(0,t.jsx)("div",{className:"text-3xl mb-3",children:"💬"}),(0,t.jsx)("div",{className:"text-gray-500 text-sm",children:"Start a conversation"}),(0,t.jsxs)("div",{className:"text-gray-600 text-xs mt-1",children:["Send a task to ",e]})]}),c.map((e,s)=>(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.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,t.jsx)("div",{className:"text-[13px] text-gray-200",children:(0,t.jsx)(o,{text:e.content})}),(0,t.jsxs)("div",{className:"flex items-center justify-between mt-1.5 gap-3",children:[(0,t.jsx)(l,{status:e.status}),(0,t.jsx)("span",{className:"text-[9px] text-gray-600 shrink-0",children:(0,r.timeAgo)(e.created_at)})]})]})}),e.result&&(0,t.jsx)("div",{className:"flex justify-start",children:(0,t.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,t.jsx)("div",{className:"text-[10px] text-green-400 font-medium mb-1.5",children:e.to_name}),(0,t.jsx)("div",{className:"text-[13px] text-gray-200",children:(0,t.jsx)(o,{text:e.result})})]})}),"running"===e.status&&!e.result&&(0,t.jsx)("div",{className:"flex justify-start",children:(0,t.jsx)("div",{className:"bg-[#111128] border border-[#2a2a4a] rounded-2xl rounded-bl-md px-4 py-3",children:(0,t.jsxs)("div",{className:"flex gap-1",children:[(0,t.jsx)("span",{className:"w-2 h-2 rounded-full bg-gray-500 animate-bounce",style:{animationDelay:"0s"}}),(0,t.jsx)("span",{className:"w-2 h-2 rounded-full bg-gray-500 animate-bounce",style:{animationDelay:"0.15s"}}),(0,t.jsx)("span",{className:"w-2 h-2 rounded-full bg-gray-500 animate-bounce",style:{animationDelay:"0.3s"}})]})})})]},e.task_id)),(0,t.jsx)("div",{ref:z})]}),(0,t.jsxs)("div",{className:"border-t border-[#2a2a4a] bg-[#0d0d1a] px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[(0,t.jsxs)("div",{className:"flex-1 relative",children:[S&&A.length>0&&(0,t.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:A.map(e=>(0,t.jsxs)("button",{onClick:()=>{let t,s;return t=h.lastIndexOf("@"),s=h.slice(0,t),void(x(`${s}@${e} `),_(!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,t.jsx)("span",{className:"w-2 h-2 rounded-full bg-cyan-400 shrink-0"}),(0,t.jsx)("span",{className:"text-gray-300",children:e})]},e))}),(0,t.jsx)("textarea",{ref:F,value:h,onChange:e=>{var t;(e=>{x(e);let t=e.lastIndexOf("@");if(t>=0&&(0===t||" "===e[t-1]||"\n"===e[t-1])){let s=e.slice(t+1);if(!s.includes(" ")&&!s.includes("\n")){C(s.toLowerCase()),_(!0);return}}_(!1)})(e.target.value),(t=e.target).style.height="auto",t.style.height=Math.min(t.scrollHeight,150)+"px"},onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),I()),"Escape"===e.key&&_(!1)},placeholder:`Message ${e}...`,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,t.jsx)("div",{className:"absolute right-2 bottom-1.5 flex items-center gap-1",children:(0,t.jsxs)("select",{value:m,onChange:e=>p(e.target.value),className:"bg-transparent text-[9px] text-gray-600 focus:outline-none cursor-pointer",children:[(0,t.jsx)("option",{value:"normal",children:"N"}),(0,t.jsx)("option",{value:"high",children:"H"}),(0,t.jsx)("option",{value:"low",children:"L"})]})})]}),(0,t.jsx)("button",{onClick:I,disabled:g||!h.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:g?(0,t.jsx)("div",{className:"w-5 h-5 border-2 border-white/30 border-t-white rounded-full animate-spin"}):(0,t.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,t.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,t.jsxs)("div",{className:"flex justify-between text-[9px] text-gray-700 mt-1.5",children:[(0,t.jsx)("span",{children:h.includes("@")?`Sending to: ${N}`:"Type @ to mention another node"}),(0,t.jsx)("span",{children:"Enter to send · Shift+Enter for newline"})]})]})]});return i?(0,t.jsx)("div",{className:"flex flex-col h-full",children:E}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{onClick:a,className:"jsx-c3e56cbc81656d9 fixed inset-0 bg-black/30 z-40 lg:hidden"}),(0,t.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,t.jsxs)("div",{className:"jsx-c3e56cbc81656d9 flex items-center justify-between px-4 py-3 border-b border-[#2a2a4a] bg-[#0d0d1a]",children:[(0,t.jsxs)("div",{className:"jsx-c3e56cbc81656d9 flex items-center gap-3",children:[(0,t.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:e.slice(0,2)}),(0,t.jsxs)("div",{className:"jsx-c3e56cbc81656d9",children:[(0,t.jsx)("div",{className:"jsx-c3e56cbc81656d9 text-sm font-semibold text-white",children:e}),(0,t.jsx)("div",{className:"jsx-c3e56cbc81656d9 text-[10px] text-gray-500",children:y.size>0?"Processing...":"Ready"})]})]}),(0,t.jsx)("button",{onClick:a,className:"jsx-c3e56cbc81656d9 text-gray-500 hover:text-white p-1.5 rounded-lg hover:bg-[#1a1a2a]",children:(0,t.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,className:"jsx-c3e56cbc81656d9 w-5 h-5",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12",className:"jsx-c3e56cbc81656d9"})})})]}),E]}),(0,t.jsx)(s.default,{id:"c3e56cbc81656d9",children:"@keyframes slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.animate-slide-in{animation:.2s ease-out slide-in}"})]})}])},86688,e=>{"use strict";var t=e.i(43476),s=e.i(71645),n=e.i(22016),r=e.i(18150),a=e.i(65822),i=e.i(58442);let l={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"};e.s(["default",0,function(){let e,o,d,c,{sessions:u,isLoading:h}=(0,a.useSessions)(),{health:x}=(0,a.useHealth)(),m=x?.sse_sessions||{},[p,g]=(0,s.useState)(""),[f,y]=(0,s.useState)(""),[b,v]=(0,s.useState)("list"),[j,N]=(0,s.useState)({}),[w,S]=(0,s.useState)(null),[_,k]=(0,s.useState)({}),[C,R]=(0,s.useState)(null),$=u.map(e=>({...e,online:!!m[e.alias]})).filter(e=>"online"===p?e.online:"offline"===p?!e.online:!p||p===e.status).filter(e=>!f||e.alias.toLowerCase().includes(f.toLowerCase())||(e.agent||"").toLowerCase().includes(f.toLowerCase())).sort((e,t)=>!!t.online-!!e.online||("working"===t.status)-("working"===e.status)),z=u.filter(e=>m[e.alias]).length,F=e=>{S(t=>t===e?null:e),k(t=>({...t,[e]:{}}))},T=(e,t)=>{N(s=>({...s,[e]:t}))},I=async e=>{let t=j[e]?.trim()||"";if(t){k(t=>({...t,[e]:{sending:!0}}));try{let s=await fetch("/api/hub/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({alias:e,task:t})}),n=await s.json();if(!s.ok||n?.ok===!1)throw Error(n?.error||"Send failed");N(t=>({...t,[e]:""})),k(t=>({...t,[e]:{success:"Task sent"}})),S(null)}catch(t){k(s=>({...s,[e]:{error:t instanceof Error?t.message:"Send failed"}}))}}};return(0,t.jsxs)("div",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 p-4 sm:p-6 font-mono",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4 mb-6",children:[(0,t.jsx)("h1",{className:"text-2xl font-bold text-white lg:ml-0 ml-10",children:"Nodes"}),(0,t.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:[z," online"]}),(0,t.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:[u.length," total"]})]}),u.length>0&&(e=$.filter(e=>e.online&&"working"===e.status).length,o=$.filter(e=>e.online&&"idle"===e.status).length,d=$.filter(e=>!e.online).length,c=$.length||1,(0,t.jsxs)("div",{className:"mb-6",children:[(0,t.jsxs)("div",{className:"flex h-2 rounded-full overflow-hidden bg-gray-800",children:[e>0&&(0,t.jsx)("div",{className:"bg-green-500",style:{width:`${e/c*100}%`}}),o>0&&(0,t.jsx)("div",{className:"bg-cyan-500",style:{width:`${o/c*100}%`}}),d>0&&(0,t.jsx)("div",{className:"bg-gray-600",style:{width:`${d/c*100}%`}})]}),(0,t.jsxs)("div",{className:"flex gap-4 mt-1.5 text-[10px] text-gray-500",children:[e>0&&(0,t.jsxs)("span",{children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-green-500 mr-1"}),e," working"]}),o>0&&(0,t.jsxs)("span",{children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-cyan-500 mr-1"}),o," idle"]}),d>0&&(0,t.jsxs)("span",{children:[(0,t.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-gray-600 mr-1"}),d," offline"]})]})]})),(0,t.jsxs)("div",{className:"flex flex-wrap gap-3 mb-6",children:[(0,t.jsx)("input",{type:"text",value:f,onChange:e=>y(e.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,t.jsxs)("select",{value:p,onChange:e=>g(e.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,t.jsx)("option",{value:"",children:"All"}),(0,t.jsx)("option",{value:"online",children:"Online"}),(0,t.jsx)("option",{value:"offline",children:"Offline"}),(0,t.jsx)("option",{value:"working",children:"Working"}),(0,t.jsx)("option",{value:"idle",children:"Idle"}),(0,t.jsx)("option",{value:"blocked",children:"Blocked"}),(0,t.jsx)("option",{value:"error",children:"Error"})]}),(0,t.jsx)("div",{className:"ml-auto flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 text-sm",children:["list","grid"].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>v(e),className:`rounded-md px-3 py-1.5 transition-colors ${b===e?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"list"===e?"List":"Grid"},e))})]}),h?(0,t.jsx)("div",{className:"animate-pulse space-y-2",children:[1,2,3,4].map(e=>(0,t.jsx)("div",{className:"h-16 bg-gray-800/20 rounded-lg"},e))}):0===$.length?(0,t.jsx)("div",{className:"text-center py-16 text-gray-600",children:"No nodes match your filters."}):"grid"===b?(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:$.map(e=>{let s=e.online?e.status:"offline",a=_[e.alias]||{},i="number"==typeof e.progress?e.progress:0;return(0,t.jsxs)("div",{className:`relative overflow-hidden rounded-xl border border-[#2a2a4a] bg-[#111128] p-4 transition-colors ${!e.online?"opacity-60":""}`,children:[!e.online&&(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:(0,t.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,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsx)(n.default,{href:`/node?alias=${encodeURIComponent(e.alias)}`,className:"min-w-0 flex-1 hover:text-cyan-300",children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"truncate text-base font-semibold text-white",children:e.alias}),(0,t.jsx)("span",{className:`shrink-0 rounded-md border px-2 py-0.5 text-[11px] ${l[s]||l.offline}`,children:s})]})}),(0,t.jsxs)("div",{className:"flex gap-1.5 shrink-0",children:[(0,t.jsx)("button",{type:"button",onClick:()=>R(e.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,t.jsx)("button",{type:"button",onClick:()=>F(e.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,t.jsxs)("div",{className:"mt-3 space-y-2 text-xs text-gray-500",children:[(0,t.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,t.jsx)("span",{children:"Agent"}),(0,t.jsx)("span",{className:"truncate text-gray-300",children:e.agent||"--"})]}),(0,t.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,t.jsx)("span",{children:"Server"}),(0,t.jsx)("span",{className:"truncate text-gray-300",children:e.server||"--"})]}),(0,t.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,t.jsx)("span",{children:"Updated"}),(0,t.jsx)("span",{className:"text-gray-300",children:(0,r.timeAgo)(e.last_seen_at||e.updated_at)})]})]}),(0,t.jsx)("div",{className:"mt-3 rounded-lg border border-[#1a1a2a] bg-[#0a0a15] px-3 py-2 text-xs text-gray-400",children:e.task?e.task:"No current task"}),i>0&&i<100&&(0,t.jsx)("div",{className:"mt-3 h-1.5 overflow-hidden rounded-full bg-gray-800",children:(0,t.jsx)("div",{className:"h-1.5 rounded-full bg-cyan-400 transition-all",style:{width:`${i}%`}})}),w===e.alias&&(0,t.jsxs)("div",{className:"mt-4 space-y-2 rounded-lg border border-[#2a2a4a] bg-[#0a0a15] p-3",children:[(0,t.jsx)("input",{type:"text",value:j[e.alias]||"",onChange:t=>T(e.alias,t.target.value),onKeyDown:t=>"Enter"===t.key&&I(e.alias),placeholder:`Send task to ${e.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,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>S(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,t.jsx)("button",{type:"button",onClick:()=>I(e.alias),disabled:a.sending||!(j[e.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:a.sending?"Sending...":"Send"})]})]}),a.error&&(0,t.jsx)("div",{className:"mt-2 text-xs text-red-400",children:a.error}),a.success&&w!==e.alias&&(0,t.jsx)("div",{className:"mt-2 text-xs text-green-400",children:a.success})]},e.alias)})}):(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 px-4 py-2 text-xs text-gray-600 uppercase",children:[(0,t.jsx)("div",{className:"col-span-1",children:"Status"}),(0,t.jsx)("div",{className:"col-span-2",children:"Alias"}),(0,t.jsx)("div",{className:"col-span-2",children:"Agent"}),(0,t.jsx)("div",{className:"col-span-2",children:"Server"}),(0,t.jsx)("div",{className:"col-span-2",children:"Current Task"}),(0,t.jsx)("div",{className:"col-span-1",children:"Updated"}),(0,t.jsx)("div",{className:"col-span-2 text-right",children:"Actions"})]}),$.map(e=>{let s=e.online?e.status:"offline",a=_[e.alias]||{};return(0,t.jsxs)("div",{className:`rounded-lg border border-[#2a2a4a] bg-[#111128] px-4 py-3 transition-colors hover:border-[#3a3a5a] ${!e.online?"opacity-50":""}`,children:[(0,t.jsxs)("div",{className:"hidden sm:grid sm:grid-cols-12 gap-2 items-center",children:[(0,t.jsx)("div",{className:"col-span-1",children:(0,t.jsx)("span",{className:`text-xs px-2 py-0.5 rounded-md border ${l[s]||l.offline}`,children:s})}),(0,t.jsx)("div",{className:"col-span-2 min-w-0",children:(0,t.jsx)(n.default,{href:`/node?alias=${encodeURIComponent(e.alias)}`,className:"truncate text-sm font-medium text-white hover:text-cyan-300",children:e.alias})}),(0,t.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",children:e.agent||"--"}),(0,t.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-400",children:e.server||"--"}),(0,t.jsx)("div",{className:"col-span-2 truncate text-xs text-gray-500",children:e.task||"--"}),(0,t.jsx)("div",{className:"col-span-1 text-xs text-gray-500",children:(0,r.timeAgo)(e.last_seen_at||e.updated_at)}),(0,t.jsxs)("div",{className:"col-span-2 flex justify-end gap-1.5",children:[(0,t.jsx)("button",{type:"button",onClick:()=>R(e.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,t.jsx)("button",{type:"button",onClick:()=>F(e.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,t.jsxs)("div",{className:"sm:hidden space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)(n.default,{href:`/node?alias=${encodeURIComponent(e.alias)}`,className:"truncate text-sm font-medium text-white hover:text-cyan-300",children:e.alias}),(0,t.jsx)("span",{className:`shrink-0 text-xs px-2 py-0.5 rounded-md border ${l[s]||l.offline}`,children:s})]}),(0,t.jsxs)("div",{className:"text-xs text-gray-500",children:[e.agent||"--"," · ",(0,r.timeAgo)(e.last_seen_at||e.updated_at)]}),e.task&&(0,t.jsx)("div",{className:"truncate text-xs text-gray-500",children:e.task}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>R(e.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,t.jsx)("button",{type:"button",onClick:()=>F(e.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"})]})]}),w===e.alias&&(0,t.jsxs)("div",{className:"mt-3 space-y-2 border-t border-[#2a2a4a] pt-3",children:[(0,t.jsx)("input",{type:"text",value:j[e.alias]||"",onChange:t=>T(e.alias,t.target.value),onKeyDown:t=>"Enter"===t.key&&I(e.alias),placeholder:`Send task to ${e.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,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:()=>S(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,t.jsx)("button",{type:"button",onClick:()=>I(e.alias),disabled:a.sending||!(j[e.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:a.sending?"Sending...":"Send"})]})]}),a.error&&(0,t.jsx)("div",{className:"mt-2 text-xs text-red-400",children:a.error}),a.success&&w!==e.alias&&(0,t.jsx)("div",{className:"mt-2 text-xs text-green-400",children:a.success})]},e.alias)})]}),C&&(0,t.jsx)(i.TaskChatPanel,{alias:C,onClose:()=>R(null)})]})}])}]);
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":8684,"timestamp":1637973680475,"id":4,"parentId":1,"tags":{},"startTime":1777612074127,"traceId":"7d6289232aca9cc3"},{"name":"load-custom-routes","duration":936,"timestamp":1637973692475,"id":5,"parentId":1,"tags":{},"startTime":1777612074139,"traceId":"7d6289232aca9cc3"},{"name":"create-dist-dir","duration":15751,"timestamp":1637973693550,"id":6,"parentId":1,"tags":{},"startTime":1777612074140,"traceId":"7d6289232aca9cc3"},{"name":"clean","duration":426385,"timestamp":1637973721165,"id":7,"parentId":1,"tags":{},"startTime":1777612074168,"traceId":"7d6289232aca9cc3"},{"name":"discover-routes","duration":79332,"timestamp":1637974878736,"id":8,"parentId":1,"tags":{},"startTime":1777612075325,"traceId":"7d6289232aca9cc3"},{"name":"create-root-mapping","duration":979,"timestamp":1637974958243,"id":9,"parentId":1,"tags":{},"startTime":1777612075405,"traceId":"7d6289232aca9cc3"},{"name":"generate-route-types","duration":95391,"timestamp":1637974972846,"id":10,"parentId":1,"tags":{},"startTime":1777612075419,"traceId":"7d6289232aca9cc3"},{"name":"public-dir-conflict-check","duration":2277,"timestamp":1637975071211,"id":11,"parentId":1,"tags":{},"startTime":1777612075518,"traceId":"7d6289232aca9cc3"},{"name":"generate-routes-manifest","duration":51493,"timestamp":1637975074132,"id":12,"parentId":1,"tags":{},"startTime":1777612075521,"traceId":"7d6289232aca9cc3"},{"name":"run-turbopack","duration":37869577,"timestamp":1637975201785,"id":14,"parentId":1,"tags":{},"startTime":1777612075648,"traceId":"7d6289232aca9cc3"},{"name":"turbopack-build-events","duration":1304,"timestamp":1637976935224,"id":15,"parentId":1,"tags":{},"startTime":1777612077382,"traceId":"7d6289232aca9cc3"},{"name":"run-typescript","duration":34586819,"timestamp":1638013132539,"id":16,"parentId":1,"tags":{},"startTime":1777612113579,"traceId":"7d6289232aca9cc3"},{"name":"generate-required-server-files","duration":6820,"timestamp":1638047724524,"id":18,"parentId":1,"tags":{},"startTime":1777612148171,"traceId":"7d6289232aca9cc3"},{"name":"check-static-error-page","duration":112864,"timestamp":1638047956763,"id":20,"parentId":19,"tags":{},"startTime":1777612148403,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1231161,"timestamp":1638048084186,"id":61,"parentId":22,"tags":{},"startTime":1777612148531,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1334759,"timestamp":1638047981918,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1777612148428,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1393765,"timestamp":1638048084790,"id":62,"parentId":25,"tags":{},"startTime":1777612148531,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1471003,"timestamp":1638048007751,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1777612148454,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1448182,"timestamp":1638048085606,"id":64,"parentId":27,"tags":{},"startTime":1777612148532,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1523235,"timestamp":1638048010695,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1777612148457,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1496060,"timestamp":1638048086274,"id":65,"parentId":28,"tags":{},"startTime":1777612148533,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1570986,"timestamp":1638048011458,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1777612148458,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1516093,"timestamp":1638048086394,"id":66,"parentId":29,"tags":{},"startTime":1777612148533,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1590531,"timestamp":1638048012101,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1777612148458,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1534081,"timestamp":1638048085490,"id":63,"parentId":26,"tags":{},"startTime":1777612148532,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1610419,"timestamp":1638048009957,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1777612148456,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1538783,"timestamp":1638048086438,"id":67,"parentId":30,"tags":{},"startTime":1777612148533,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1612090,"timestamp":1638048013449,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1777612148460,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1549396,"timestamp":1638048088414,"id":69,"parentId":33,"tags":{},"startTime":1777612148535,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1619495,"timestamp":1638048018609,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1777612148465,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1566510,"timestamp":1638048088721,"id":70,"parentId":34,"tags":{},"startTime":1777612148535,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1634979,"timestamp":1638048020427,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1777612148467,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1576188,"timestamp":1638048088772,"id":71,"parentId":35,"tags":{},"startTime":1777612148535,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1644465,"timestamp":1638048020762,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1777612148467,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1592444,"timestamp":1638048088804,"id":72,"parentId":36,"tags":{},"startTime":1777612148535,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1657898,"timestamp":1638048023494,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1777612148470,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1597854,"timestamp":1638048086473,"id":68,"parentId":32,"tags":{},"startTime":1777612148533,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1666474,"timestamp":1638048017964,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1777612148464,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1607572,"timestamp":1638048088839,"id":73,"parentId":37,"tags":{},"startTime":1777612148535,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1672897,"timestamp":1638048023992,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1777612148470,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1616462,"timestamp":1638048088879,"id":75,"parentId":39,"tags":{},"startTime":1777612148535,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1680035,"timestamp":1638048025404,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1777612148472,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1626724,"timestamp":1638048088894,"id":76,"parentId":40,"tags":{},"startTime":1777612148535,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1689765,"timestamp":1638048025953,"id":40,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1777612148472,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1630086,"timestamp":1638048088852,"id":74,"parentId":38,"tags":{},"startTime":1777612148535,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1694293,"timestamp":1638048024838,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1777612148471,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1638715,"timestamp":1638048088904,"id":77,"parentId":41,"tags":{},"startTime":1777612148535,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1700804,"timestamp":1638048026971,"id":41,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1777612148473,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1644720,"timestamp":1638048088918,"id":78,"parentId":42,"tags":{},"startTime":1777612148535,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1704827,"timestamp":1638048029103,"id":42,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1777612148475,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1654282,"timestamp":1638048088931,"id":79,"parentId":43,"tags":{},"startTime":1777612148535,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1713301,"timestamp":1638048030055,"id":43,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1777612148478,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1661731,"timestamp":1638048088940,"id":80,"parentId":44,"tags":{},"startTime":1777612148535,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1718851,"timestamp":1638048032724,"id":44,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1777612148479,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1666225,"timestamp":1638048088965,"id":81,"parentId":45,"tags":{},"startTime":1777612148535,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1721853,"timestamp":1638048033503,"id":45,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1777612148480,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1676258,"timestamp":1638048080785,"id":60,"parentId":21,"tags":{},"startTime":1777612148527,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1790248,"timestamp":1638047966911,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1777612148413,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1675652,"timestamp":1638048088995,"id":83,"parentId":48,"tags":{},"startTime":1777612148535,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1727513,"timestamp":1638048037331,"id":48,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1777612148484,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1684124,"timestamp":1638048088973,"id":82,"parentId":46,"tags":{},"startTime":1777612148535,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1739166,"timestamp":1638048034056,"id":46,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1777612148480,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1668182,"timestamp":1638048111248,"id":85,"parentId":31,"tags":{},"startTime":1777612148558,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1765386,"timestamp":1638048014347,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1777612148461,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1766494,"timestamp":1638048195314,"id":86,"parentId":23,"tags":{},"startTime":1777612148642,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1978956,"timestamp":1638047983456,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1777612148430,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1875546,"timestamp":1638048105799,"id":84,"parentId":24,"tags":{},"startTime":1777612148552,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1997973,"timestamp":1638047983819,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1777612148430,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1786549,"timestamp":1638048195707,"id":87,"parentId":49,"tags":{},"startTime":1777612148642,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1941446,"timestamp":1638048040937,"id":49,"parentId":19,"tags":{"page":"/login"},"startTime":1777612148487,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1793449,"timestamp":1638048195730,"id":88,"parentId":50,"tags":{},"startTime":1777612148642,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1944759,"timestamp":1638048044510,"id":50,"parentId":19,"tags":{"page":"/logs"},"startTime":1777612148491,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1804455,"timestamp":1638048195791,"id":89,"parentId":51,"tags":{},"startTime":1777612148642,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1955019,"timestamp":1638048045535,"id":51,"parentId":19,"tags":{"page":"/messages"},"startTime":1777612148492,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1821544,"timestamp":1638048195813,"id":90,"parentId":52,"tags":{},"startTime":1777612148642,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1971258,"timestamp":1638048046163,"id":52,"parentId":19,"tags":{"page":"/node"},"startTime":1777612148493,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1822086,"timestamp":1638048195824,"id":91,"parentId":53,"tags":{},"startTime":1777612148642,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1971209,"timestamp":1638048046752,"id":53,"parentId":19,"tags":{"page":"/nodes"},"startTime":1777612148493,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1825546,"timestamp":1638048195839,"id":92,"parentId":55,"tags":{},"startTime":1777612148642,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1967473,"timestamp":1638048054075,"id":55,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1777612148500,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1839971,"timestamp":1638048195850,"id":93,"parentId":57,"tags":{},"startTime":1777612148642,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1975539,"timestamp":1638048060374,"id":57,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1777612148507,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1848770,"timestamp":1638048195868,"id":95,"parentId":59,"tags":{},"startTime":1777612148642,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":1981121,"timestamp":1638048063642,"id":59,"parentId":19,"tags":{"page":"/tasks"},"startTime":1777612148510,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1859878,"timestamp":1638048195876,"id":96,"parentId":47,"tags":{},"startTime":1777612148642,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":2021229,"timestamp":1638048034618,"id":47,"parentId":19,"tags":{"page":"/docs"},"startTime":1777612148481,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1867461,"timestamp":1638048195897,"id":97,"parentId":54,"tags":{},"startTime":1777612148642,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":2012163,"timestamp":1638048051322,"id":54,"parentId":19,"tags":{"page":"/"},"startTime":1777612148498,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1879626,"timestamp":1638048195857,"id":94,"parentId":58,"tags":{},"startTime":1777612148642,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":2012678,"timestamp":1638048062920,"id":58,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1777612148509,"traceId":"7d6289232aca9cc3"},{"name":"is-page-static","duration":1880862,"timestamp":1638048195921,"id":98,"parentId":56,"tags":{},"startTime":1777612148642,"traceId":"7d6289232aca9cc3"},{"name":"check-page","duration":2022019,"timestamp":1638048054857,"id":56,"parentId":19,"tags":{"page":"/settings"},"startTime":1777612148501,"traceId":"7d6289232aca9cc3"},{"name":"static-check","duration":2124702,"timestamp":1638047952350,"id":19,"parentId":1,"tags":{},"startTime":1777612148399,"traceId":"7d6289232aca9cc3"},{"name":"write-routes-manifest","duration":1049,"timestamp":1638050096415,"id":100,"parentId":1,"tags":{},"startTime":1777612150543,"traceId":"7d6289232aca9cc3"},{"name":"load-dotenv","duration":172,"timestamp":1638050139037,"id":103,"parentId":102,"tags":{},"startTime":1777612150585,"traceId":"7d6289232aca9cc3"},{"name":"run-export-path-map","duration":739,"timestamp":1638050145916,"id":104,"parentId":102,"tags":{},"startTime":1777612150592,"traceId":"7d6289232aca9cc3"},{"name":"next-export","duration":2427520,"timestamp":1638050135670,"id":102,"parentId":1,"tags":{},"startTime":1777612150582,"traceId":"7d6289232aca9cc3"},{"name":"move-exported-app-not-found-","duration":2364,"timestamp":1638052576093,"id":105,"parentId":101,"tags":{},"startTime":1777612153022,"traceId":"7d6289232aca9cc3"},{"name":"move-exported-app-global-error-","duration":1103,"timestamp":1638052578594,"id":106,"parentId":101,"tags":{},"startTime":1777612153025,"traceId":"7d6289232aca9cc3"},{"name":"static-generation","duration":2479941,"timestamp":1638050110722,"id":101,"parentId":1,"tags":{},"startTime":1777612150557,"traceId":"7d6289232aca9cc3"},{"name":"write-routes-manifest","duration":1271,"timestamp":1638052591222,"id":107,"parentId":1,"tags":{},"startTime":1777612153038,"traceId":"7d6289232aca9cc3"}]
2
- [{"name":"print-tree-view","duration":8986,"timestamp":1638052652096,"id":108,"parentId":1,"tags":{},"startTime":1777612153098,"traceId":"7d6289232aca9cc3"},{"name":"write-route-bundle-stats","duration":48992,"timestamp":1638052661159,"id":109,"parentId":1,"tags":{},"startTime":1777612153108,"traceId":"7d6289232aca9cc3"},{"name":"telemetry-flush","duration":221,"timestamp":1638052710195,"id":110,"parentId":1,"tags":{},"startTime":1777612153157,"traceId":"7d6289232aca9cc3"},{"name":"next-build","duration":79653867,"timestamp":1637973056608,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1777612073503,"traceId":"7d6289232aca9cc3"}]
1
+ [{"name":"generate-buildid","duration":3809,"timestamp":1665201318600,"id":4,"parentId":1,"tags":{},"startTime":1777639301765,"traceId":"0a7723eb8b5e5622"},{"name":"load-custom-routes","duration":3171,"timestamp":1665201323382,"id":5,"parentId":1,"tags":{},"startTime":1777639301770,"traceId":"0a7723eb8b5e5622"},{"name":"create-dist-dir","duration":870,"timestamp":1665201326705,"id":6,"parentId":1,"tags":{},"startTime":1777639301773,"traceId":"0a7723eb8b5e5622"},{"name":"clean","duration":129385,"timestamp":1665201333528,"id":7,"parentId":1,"tags":{},"startTime":1777639301780,"traceId":"0a7723eb8b5e5622"},{"name":"discover-routes","duration":71057,"timestamp":1665201669996,"id":8,"parentId":1,"tags":{},"startTime":1777639302116,"traceId":"0a7723eb8b5e5622"},{"name":"create-root-mapping","duration":573,"timestamp":1665201741219,"id":9,"parentId":1,"tags":{},"startTime":1777639302188,"traceId":"0a7723eb8b5e5622"},{"name":"generate-route-types","duration":109902,"timestamp":1665201750782,"id":10,"parentId":1,"tags":{},"startTime":1777639302197,"traceId":"0a7723eb8b5e5622"},{"name":"public-dir-conflict-check","duration":868,"timestamp":1665201860896,"id":11,"parentId":1,"tags":{},"startTime":1777639302307,"traceId":"0a7723eb8b5e5622"},{"name":"generate-routes-manifest","duration":22814,"timestamp":1665201863952,"id":12,"parentId":1,"tags":{},"startTime":1777639302310,"traceId":"0a7723eb8b5e5622"},{"name":"run-turbopack","duration":46325478,"timestamp":1665201913096,"id":14,"parentId":1,"tags":{},"startTime":1777639302359,"traceId":"0a7723eb8b5e5622"},{"name":"turbopack-build-events","duration":566,"timestamp":1665203215633,"id":15,"parentId":1,"tags":{},"startTime":1777639303662,"traceId":"0a7723eb8b5e5622"},{"name":"run-typescript","duration":48798993,"timestamp":1665248304495,"id":16,"parentId":1,"tags":{},"startTime":1777639348751,"traceId":"0a7723eb8b5e5622"},{"name":"generate-required-server-files","duration":10432,"timestamp":1665297108427,"id":18,"parentId":1,"tags":{},"startTime":1777639397555,"traceId":"0a7723eb8b5e5622"},{"name":"check-static-error-page","duration":228069,"timestamp":1665297666535,"id":20,"parentId":19,"tags":{},"startTime":1777639398113,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":2631407,"timestamp":1665297914902,"id":61,"parentId":22,"tags":{},"startTime":1777639398361,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":2813378,"timestamp":1665297733309,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1777639398180,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3501376,"timestamp":1665297912940,"id":60,"parentId":21,"tags":{},"startTime":1777639398359,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":3701008,"timestamp":1665297713630,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1777639398160,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3565234,"timestamp":1665297915722,"id":63,"parentId":26,"tags":{},"startTime":1777639398362,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":3704283,"timestamp":1665297776838,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1777639398223,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3579531,"timestamp":1665297915303,"id":62,"parentId":25,"tags":{},"startTime":1777639398362,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":3719137,"timestamp":1665297775821,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1777639398222,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3607860,"timestamp":1665297916563,"id":66,"parentId":29,"tags":{},"startTime":1777639398363,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":3740403,"timestamp":1665297784137,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1777639398230,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3645742,"timestamp":1665297916425,"id":65,"parentId":28,"tags":{},"startTime":1777639398363,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":3778754,"timestamp":1665297783485,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1777639398230,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3665920,"timestamp":1665297930193,"id":68,"parentId":32,"tags":{},"startTime":1777639398377,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":3797436,"timestamp":1665297798799,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1777639398245,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3735518,"timestamp":1665297928792,"id":67,"parentId":30,"tags":{},"startTime":1777639398375,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":3875421,"timestamp":1665297789344,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1777639398236,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3770451,"timestamp":1665297932913,"id":70,"parentId":34,"tags":{},"startTime":1777639398379,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":3903968,"timestamp":1665297799614,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1777639398246,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3814159,"timestamp":1665297932982,"id":71,"parentId":35,"tags":{},"startTime":1777639398379,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":3944664,"timestamp":1665297802801,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1777639398249,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3864906,"timestamp":1665297932352,"id":69,"parentId":33,"tags":{},"startTime":1777639398379,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":3998622,"timestamp":1665297799316,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1777639398246,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3892947,"timestamp":1665297915831,"id":64,"parentId":27,"tags":{},"startTime":1777639398362,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4026639,"timestamp":1665297782274,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1777639398229,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3900023,"timestamp":1665297933118,"id":74,"parentId":38,"tags":{},"startTime":1777639398379,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4021951,"timestamp":1665297812414,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1777639398259,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3923431,"timestamp":1665297933099,"id":73,"parentId":37,"tags":{},"startTime":1777639398379,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4046675,"timestamp":1665297809921,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1777639398256,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3925647,"timestamp":1665297933057,"id":72,"parentId":36,"tags":{},"startTime":1777639398379,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4049995,"timestamp":1665297808775,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1777639398255,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3931000,"timestamp":1665297933133,"id":75,"parentId":39,"tags":{},"startTime":1777639398379,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4048725,"timestamp":1665297815505,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1777639398262,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3960947,"timestamp":1665297933253,"id":78,"parentId":42,"tags":{},"startTime":1777639398380,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4076665,"timestamp":1665297824112,"id":42,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1777639398270,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3971328,"timestamp":1665297933140,"id":76,"parentId":40,"tags":{},"startTime":1777639398379,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4081910,"timestamp":1665297822641,"id":40,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1777639398269,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3978624,"timestamp":1665297933228,"id":77,"parentId":41,"tags":{},"startTime":1777639398380,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4088083,"timestamp":1665297823828,"id":41,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1777639398270,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3985647,"timestamp":1665297933260,"id":79,"parentId":43,"tags":{},"startTime":1777639398380,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4094411,"timestamp":1665297824646,"id":43,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1777639398271,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":4000601,"timestamp":1665297933272,"id":80,"parentId":44,"tags":{},"startTime":1777639398380,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4108598,"timestamp":1665297825346,"id":44,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1777639398272,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":4001260,"timestamp":1665297933296,"id":82,"parentId":46,"tags":{},"startTime":1777639398380,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4109000,"timestamp":1665297825648,"id":46,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1777639398272,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3978568,"timestamp":1665297969162,"id":84,"parentId":24,"tags":{},"startTime":1777639398416,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4208445,"timestamp":1665297739536,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1777639398186,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":4021558,"timestamp":1665297933308,"id":83,"parentId":48,"tags":{},"startTime":1777639398380,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4124782,"timestamp":1665297830894,"id":48,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1777639398277,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":4025912,"timestamp":1665297933289,"id":81,"parentId":45,"tags":{},"startTime":1777639398380,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4134408,"timestamp":1665297825544,"id":45,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1777639398272,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3988623,"timestamp":1665297971721,"id":85,"parentId":31,"tags":{},"startTime":1777639398418,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4165914,"timestamp":1665297797855,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1777639398244,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3895632,"timestamp":1665298104142,"id":88,"parentId":50,"tags":{},"startTime":1777639398550,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4166068,"timestamp":1665297835273,"id":50,"parentId":19,"tags":{"page":"/logs"},"startTime":1777639398282,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3929961,"timestamp":1665298104158,"id":89,"parentId":51,"tags":{},"startTime":1777639398551,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4198346,"timestamp":1665297835894,"id":51,"parentId":19,"tags":{"page":"/messages"},"startTime":1777639398282,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":3985955,"timestamp":1665298104168,"id":90,"parentId":52,"tags":{},"startTime":1777639398551,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4253623,"timestamp":1665297836574,"id":52,"parentId":19,"tags":{"page":"/node"},"startTime":1777639398283,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":4007230,"timestamp":1665298104180,"id":91,"parentId":53,"tags":{},"startTime":1777639398551,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4274574,"timestamp":1665297836933,"id":53,"parentId":19,"tags":{"page":"/nodes"},"startTime":1777639398283,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":4087787,"timestamp":1665298104193,"id":92,"parentId":55,"tags":{},"startTime":1777639398551,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4347597,"timestamp":1665297844965,"id":55,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1777639398291,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":4256139,"timestamp":1665298104201,"id":93,"parentId":57,"tags":{},"startTime":1777639398551,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4491032,"timestamp":1665297869411,"id":57,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1777639398316,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":4333517,"timestamp":1665298104212,"id":94,"parentId":58,"tags":{},"startTime":1777639398551,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4552246,"timestamp":1665297885635,"id":58,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1777639398332,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":4364621,"timestamp":1665298104223,"id":95,"parentId":59,"tags":{},"startTime":1777639398551,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4582812,"timestamp":1665297886280,"id":59,"parentId":19,"tags":{"page":"/tasks"},"startTime":1777639398333,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":4401394,"timestamp":1665298102831,"id":86,"parentId":23,"tags":{},"startTime":1777639398550,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4768923,"timestamp":1665297735477,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1777639398182,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":4437432,"timestamp":1665298104232,"id":96,"parentId":47,"tags":{},"startTime":1777639398551,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4715434,"timestamp":1665297826335,"id":47,"parentId":19,"tags":{"page":"/docs"},"startTime":1777639398273,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":4438297,"timestamp":1665298104249,"id":97,"parentId":54,"tags":{},"startTime":1777639398551,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4704557,"timestamp":1665297838081,"id":54,"parentId":19,"tags":{"page":"/"},"startTime":1777639398284,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":4489889,"timestamp":1665298104081,"id":87,"parentId":49,"tags":{},"startTime":1777639398550,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4762441,"timestamp":1665297831761,"id":49,"parentId":19,"tags":{"page":"/login"},"startTime":1777639398278,"traceId":"0a7723eb8b5e5622"},{"name":"is-page-static","duration":4502611,"timestamp":1665298138507,"id":98,"parentId":56,"tags":{},"startTime":1777639398585,"traceId":"0a7723eb8b5e5622"},{"name":"check-page","duration":4795440,"timestamp":1665297845747,"id":56,"parentId":19,"tags":{"page":"/settings"},"startTime":1777639398292,"traceId":"0a7723eb8b5e5622"},{"name":"static-check","duration":4994342,"timestamp":1665297648071,"id":19,"parentId":1,"tags":{},"startTime":1777639398094,"traceId":"0a7723eb8b5e5622"},{"name":"write-routes-manifest","duration":2165,"timestamp":1665302710971,"id":100,"parentId":1,"tags":{},"startTime":1777639403157,"traceId":"0a7723eb8b5e5622"},{"name":"load-dotenv","duration":84,"timestamp":1665302783844,"id":103,"parentId":102,"tags":{},"startTime":1777639403230,"traceId":"0a7723eb8b5e5622"},{"name":"run-export-path-map","duration":2293,"timestamp":1665302816043,"id":104,"parentId":102,"tags":{},"startTime":1777639403262,"traceId":"0a7723eb8b5e5622"},{"name":"next-export","duration":4430130,"timestamp":1665302780545,"id":102,"parentId":1,"tags":{},"startTime":1777639403227,"traceId":"0a7723eb8b5e5622"},{"name":"move-exported-app-not-found-","duration":14242,"timestamp":1665307247634,"id":105,"parentId":101,"tags":{},"startTime":1777639407694,"traceId":"0a7723eb8b5e5622"},{"name":"move-exported-app-global-error-","duration":5811,"timestamp":1665307262458,"id":106,"parentId":101,"tags":{},"startTime":1777639407709,"traceId":"0a7723eb8b5e5622"},{"name":"static-generation","duration":4537854,"timestamp":1665302748062,"id":101,"parentId":1,"tags":{},"startTime":1777639403194,"traceId":"0a7723eb8b5e5622"},{"name":"write-routes-manifest","duration":4210,"timestamp":1665307286648,"id":107,"parentId":1,"tags":{},"startTime":1777639407733,"traceId":"0a7723eb8b5e5622"}]
2
+ [{"name":"print-tree-view","duration":28249,"timestamp":1665307492744,"id":108,"parentId":1,"tags":{},"startTime":1777639407939,"traceId":"0a7723eb8b5e5622"},{"name":"write-route-bundle-stats","duration":103691,"timestamp":1665307521214,"id":109,"parentId":1,"tags":{},"startTime":1777639407968,"traceId":"0a7723eb8b5e5622"},{"name":"telemetry-flush","duration":1671,"timestamp":1665307625521,"id":110,"parentId":1,"tags":{},"startTime":1777639408072,"traceId":"0a7723eb8b5e5622"},{"name":"next-build","duration":106460487,"timestamp":1665201166781,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1777639301613,"traceId":"0a7723eb8b5e5622"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":37869577,"timestamp":1637975201785,"id":14,"parentId":1,"tags":{},"startTime":1777612075648,"traceId":"7d6289232aca9cc3"},{"name":"turbopack-build-events","duration":1304,"timestamp":1637976935224,"id":15,"parentId":1,"tags":{},"startTime":1777612077382,"traceId":"7d6289232aca9cc3"},{"name":"run-typescript","duration":34586819,"timestamp":1638013132539,"id":16,"parentId":1,"tags":{},"startTime":1777612113579,"traceId":"7d6289232aca9cc3"},{"name":"static-check","duration":2124702,"timestamp":1638047952350,"id":19,"parentId":1,"tags":{},"startTime":1777612148399,"traceId":"7d6289232aca9cc3"},{"name":"static-generation","duration":2479941,"timestamp":1638050110722,"id":101,"parentId":1,"tags":{},"startTime":1777612150557,"traceId":"7d6289232aca9cc3"},{"name":"telemetry-flush","duration":221,"timestamp":1638052710195,"id":110,"parentId":1,"tags":{},"startTime":1777612153157,"traceId":"7d6289232aca9cc3"},{"name":"next-build","duration":79653867,"timestamp":1637973056608,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1777612073503,"traceId":"7d6289232aca9cc3"}]
1
+ [{"name":"run-turbopack","duration":46325478,"timestamp":1665201913096,"id":14,"parentId":1,"tags":{},"startTime":1777639302359,"traceId":"0a7723eb8b5e5622"},{"name":"turbopack-build-events","duration":566,"timestamp":1665203215633,"id":15,"parentId":1,"tags":{},"startTime":1777639303662,"traceId":"0a7723eb8b5e5622"},{"name":"run-typescript","duration":48798993,"timestamp":1665248304495,"id":16,"parentId":1,"tags":{},"startTime":1777639348751,"traceId":"0a7723eb8b5e5622"},{"name":"static-check","duration":4994342,"timestamp":1665297648071,"id":19,"parentId":1,"tags":{},"startTime":1777639398094,"traceId":"0a7723eb8b5e5622"},{"name":"static-generation","duration":4537854,"timestamp":1665302748062,"id":101,"parentId":1,"tags":{},"startTime":1777639403194,"traceId":"0a7723eb8b5e5622"},{"name":"telemetry-flush","duration":1671,"timestamp":1665307625521,"id":110,"parentId":1,"tags":{},"startTime":1777639408072,"traceId":"0a7723eb8b5e5622"},{"name":"next-build","duration":106460487,"timestamp":1665201166781,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1777639301613,"traceId":"0a7723eb8b5e5622"}]
@@ -1,4 +1,4 @@
1
- import { requireDashboardAuth } from '@/app/lib/dashboard-auth';
1
+ import { requireDashboardAuth, getV3UserToken } from '@/app/lib/dashboard-auth';
2
2
 
3
3
  const HUB_URL = process.env.COMMHUB_URL || 'http://47.77.216.1:9200';
4
4
  const AUTH_TOKEN = process.env.COMMHUB_AUTH_TOKEN || '';
@@ -11,8 +11,13 @@ export async function GET() {
11
11
  const authFailure = await requireDashboardAuth();
12
12
  if (authFailure) return authFailure;
13
13
 
14
+ // Prefer the logged-in user's utok_ (V3) over the legacy global token.
15
+ // Without this, Dashboards started without COMMHUB_AUTH_TOKEN env get 502
16
+ // because the hub rejects the unauthenticated SSE upstream.
17
+ const userToken = await getV3UserToken();
18
+ const bearer = userToken || AUTH_TOKEN;
14
19
  const headers: Record<string, string> = {};
15
- if (AUTH_TOKEN) headers['Authorization'] = `Bearer ${AUTH_TOKEN}`;
20
+ if (bearer) headers['Authorization'] = `Bearer ${bearer}`;
16
21
 
17
22
  try {
18
23
  const upstream = await fetch(`${HUB_URL}/events/Dashboard`, {
@@ -50,8 +55,10 @@ export async function HEAD(req: Request) {
50
55
  // P0 fix: probe /health instead of opening real SSE upstream.
51
56
  // Opening /events/:session keeps an upstream connection hanging, which
52
57
  // exhausts the browser's HTTP/1.1 connection pool and blocks RSC fetches.
58
+ const userToken = await getV3UserToken();
59
+ const bearer = userToken || AUTH_TOKEN;
53
60
  const headers: Record<string, string> = {};
54
- if (AUTH_TOKEN) headers['Authorization'] = `Bearer ${AUTH_TOKEN}`;
61
+ if (bearer) headers['Authorization'] = `Bearer ${bearer}`;
55
62
 
56
63
  const controller = new AbortController();
57
64
  const timeout = setTimeout(() => controller.abort(), 3000);
@@ -24,9 +24,13 @@ export async function POST(req: Request) {
24
24
  }
25
25
  } catch {}
26
26
 
27
- // Use MCP send_task with server token + explicit network_id
27
+ // Prefer logged-in user's utok_ (V3); fall back to global AUTH_TOKEN.
28
+ // The server now accepts utok_ on /mcp (preview.34+) so Dashboard tasks
29
+ // route through the user's own auth without needing a global token env.
30
+ const userToken = await getV3UserToken();
31
+ const bearer = userToken || AUTH_TOKEN;
28
32
  const headers: Record<string, string> = { 'Content-Type': 'application/json', 'Accept': 'application/json, text/event-stream' };
29
- if (AUTH_TOKEN) headers['Authorization'] = `Bearer ${AUTH_TOKEN}`;
33
+ if (bearer) headers['Authorization'] = `Bearer ${bearer}`;
30
34
  const res = await fetch(`${HUB_URL}/mcp`, {
31
35
  method: 'POST',
32
36
  headers,
@@ -222,7 +222,9 @@ export function TaskChatPanel({ alias, onClose, inline, availableNodes }: TaskCh
222
222
  };
223
223
 
224
224
  const handleKeyDown = (e: React.KeyboardEvent) => {
225
- if ((e.metaKey || e.ctrlKey) && e.key === 'Enter') {
225
+ // Enter sends, Shift+Enter inserts newline (standard chat UX).
226
+ // Users habit-pressed Enter expecting send and saw nothing happen.
227
+ if (e.key === 'Enter' && !e.shiftKey && !e.nativeEvent.isComposing) {
226
228
  e.preventDefault();
227
229
  send();
228
230
  }
@@ -370,7 +372,7 @@ export function TaskChatPanel({ alias, onClose, inline, availableNodes }: TaskCh
370
372
  </div>
371
373
  <div className="flex justify-between text-[9px] text-gray-700 mt-1.5">
372
374
  <span>{input.includes('@') ? `Sending to: ${targetAlias}` : `Type @ to mention another node`}</span>
373
- <span>⌘+Enter</span>
375
+ <span>Enter to send · Shift+Enter for newline</span>
374
376
  </div>
375
377
  </div>
376
378
  </>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.1.0-preview.2",
3
+ "version": "0.1.0-preview.4",
4
4
  "description": "Agent Network Dashboard — Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",