@sleep2agi/agent-network 2.1.8-preview.1 → 2.1.8-preview.10

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.
@@ -1 +1 @@
1
- const a0_0x5b7137=a0_0x3a9e;(function(_0x368c6b,_0x16dfdc){const _0x4c3e3b=a0_0x3a9e,_0xa33256=_0x368c6b();while(!![]){try{const _0x45bfad=parseInt(_0x4c3e3b(0x161))/0x1+-parseInt(_0x4c3e3b(0x139))/0x2+-parseInt(_0x4c3e3b(0x13d))/0x3+-parseInt(_0x4c3e3b(0x15d))/0x4*(-parseInt(_0x4c3e3b(0x145))/0x5)+-parseInt(_0x4c3e3b(0x14b))/0x6+-parseInt(_0x4c3e3b(0x150))/0x7+-parseInt(_0x4c3e3b(0x138))/0x8*(-parseInt(_0x4c3e3b(0x154))/0x9);if(_0x45bfad===_0x16dfdc)break;else _0xa33256['push'](_0xa33256['shift']());}catch(_0x50b4fa){_0xa33256['push'](_0xa33256['shift']());}}}(a0_0x50b6,0xd2b76));import{EventEmitter as a0_0x30148e}from'events';function a0_0x3a9e(_0x34c1a0,_0x1e8279){_0x34c1a0=_0x34c1a0-0x112;const _0x50b639=a0_0x50b6();let _0x3a9e5a=_0x50b639[_0x34c1a0];return _0x3a9e5a;}import{hostname as a0_0x503094}from'os';class T extends a0_0x30148e{[a0_0x5b7137(0x156)];[a0_0x5b7137(0x12e)];[a0_0x5b7137(0x11d)];[a0_0x5b7137(0x137)];[a0_0x5b7137(0x13c)];['heartbeatInterval'];[a0_0x5b7137(0x13a)];[a0_0x5b7137(0x126)];[a0_0x5b7137(0x12b)];[a0_0x5b7137(0x151)]=!0x1;constructor(_0x4f170e){const _0x49349e=a0_0x5b7137;super();if(this[_0x49349e(0x156)]=_0x4f170e[_0x49349e(0x156)][_0x49349e(0x144)](/\/$/,''),this['alias']=_0x4f170e[_0x49349e(0x12e)],this[_0x49349e(0x11d)]=_0x4f170e[_0x49349e(0x11d)],this[_0x49349e(0x137)]=_0x4f170e[_0x49349e(0x137)]||_0x49349e(0x115),this[_0x49349e(0x13c)]=_0x49349e(0x15e)+_0x4f170e[_0x49349e(0x12e)]+'-'+Date[_0x49349e(0x131)]()[_0x49349e(0x14f)](0x24),this[_0x49349e(0x14e)]=_0x4f170e['heartbeatInterval']??0x2bf20,this[_0x49349e(0x13a)]=_0x4f170e[_0x49349e(0x13a)]??0xbb8,_0x4f170e[_0x49349e(0x12d)]!==!0x1)this[_0x49349e(0x13e)]();}[a0_0x5b7137(0x129)](_0x37ccc5){const _0x3cc102=a0_0x5b7137;console['log']('['+new Date()[_0x3cc102(0x15c)]()['slice'](0x0,0x8)+_0x3cc102(0x159)+this['alias']+']\x20'+_0x37ccc5);}async[a0_0x5b7137(0x123)](_0x499327,_0x5b1586){const _0x58d35f=a0_0x5b7137;let _0x5451bf={'Content-Type':_0x58d35f(0x11a),'Accept':_0x58d35f(0x149)};if(this[_0x58d35f(0x11d)])_0x5451bf['Authorization']=_0x58d35f(0x116)+this[_0x58d35f(0x11d)];let _0x18892c=await(await fetch(this[_0x58d35f(0x156)]+'/mcp',{'method':_0x58d35f(0x124),'headers':_0x5451bf,'body':JSON[_0x58d35f(0x158)]({'jsonrpc':'2.0','id':Date[_0x58d35f(0x131)](),'method':_0x58d35f(0x15b),'params':{'name':_0x499327,'arguments':_0x5b1586}})}))['text'](),_0x4a72c7=_0x18892c[_0x58d35f(0x134)](/data: (.+)/),_0x48f8ac=_0x4a72c7?JSON[_0x58d35f(0x14a)](_0x4a72c7[0x1]):JSON[_0x58d35f(0x14a)](_0x18892c),_0x5e9505=_0x48f8ac?.['result']?.[_0x58d35f(0x11c)]?.[0x0]?.[_0x58d35f(0x169)];return _0x5e9505?JSON[_0x58d35f(0x14a)](_0x5e9505):_0x48f8ac;}async[a0_0x5b7137(0x13e)](){const _0xa04d8=a0_0x5b7137;if(this[_0xa04d8(0x151)])return;this[_0xa04d8(0x151)]=!0x0,await this['status'](_0xa04d8(0x122)),this[_0xa04d8(0x129)](_0xa04d8(0x12a)),this[_0xa04d8(0x126)]=setInterval(()=>{const _0x5110f1=_0xa04d8;this['status'](_0x5110f1(0x122))[_0x5110f1(0x148)](_0x365a9f=>this['log'](_0x5110f1(0x163)+_0x365a9f[_0x5110f1(0x164)]));},this['heartbeatInterval']),this[_0xa04d8(0x165)]();}async['disconnect'](){const _0x1331a5=a0_0x5b7137;if(this['running']=!0x1,this['sseAbort']?.[_0x1331a5(0x16a)](),this[_0x1331a5(0x126)])clearInterval(this[_0x1331a5(0x126)]);await this[_0x1331a5(0x113)](_0x1331a5(0x133))[_0x1331a5(0x148)](()=>{}),this['log'](_0x1331a5(0x117));}async[a0_0x5b7137(0x141)](_0x11585e,_0x3d9154,_0x2a7991='normal'){return this['call']('send_task',{'alias':_0x11585e,'task':_0x3d9154,'priority':_0x2a7991,'from_session':this['alias']});}async[a0_0x5b7137(0x164)](_0x30be2e,_0x3a408a){const _0x56bca0=a0_0x5b7137;return this[_0x56bca0(0x123)](_0x56bca0(0x162),{'alias':_0x30be2e,'message':_0x3a408a,'from_session':this[_0x56bca0(0x12e)]});}async[a0_0x5b7137(0x15f)](_0x2dc105,_0x5cdedc,_0x37cdf8=a0_0x5b7137(0x13f)){const _0x4deea5=a0_0x5b7137;return this['call'](_0x4deea5(0x120),{'in_reply_to':_0x2dc105,'text':_0x5cdedc,'status':_0x37cdf8});}async['status'](_0x4173c2,_0x51fcbf){const _0x3ec50d=a0_0x5b7137;return this[_0x3ec50d(0x123)](_0x3ec50d(0x147),{'resume_id':this['resumeId'],'alias':this[_0x3ec50d(0x12e)],'status':_0x4173c2,'server':a0_0x503094(),'hostname':a0_0x503094(),'agent':this['agent'],'project_dir':process[_0x3ec50d(0x119)](),..._0x51fcbf});}async[a0_0x5b7137(0x155)](){const _0x1f47e2=a0_0x5b7137;return this[_0x1f47e2(0x123)](_0x1f47e2(0x118),{});}async[a0_0x5b7137(0x168)](_0x57ba6b,_0x135b6b){const _0x459760=a0_0x5b7137;return this[_0x459760(0x123)](_0x459760(0x168),{'message':_0x57ba6b,'filter_server':_0x135b6b?.[_0x459760(0x153)],'filter_status':_0x135b6b?.[_0x459760(0x113)]});}async[a0_0x5b7137(0x165)](){const _0x349970=a0_0x5b7137;let _0xe70dc7=encodeURIComponent(this['alias']),_0x58f6fd=this[_0x349970(0x156)]+'/events/'+_0xe70dc7,_0x9f127a=this['reconnectDelay'];while(this[_0x349970(0x151)]){try{this[_0x349970(0x12b)]=new AbortController();let _0x1cb5ad={'Accept':_0x349970(0x167)};if(this[_0x349970(0x11d)])_0x1cb5ad[_0x349970(0x135)]=_0x349970(0x116)+this[_0x349970(0x11d)];let _0x1024f5=await fetch(_0x58f6fd,{'headers':_0x1cb5ad,'signal':this['sseAbort'][_0x349970(0x14d)]});if(!_0x1024f5['ok']||!_0x1024f5[_0x349970(0x11f)]){this[_0x349970(0x129)](_0x349970(0x143)+_0x1024f5[_0x349970(0x113)]),await this[_0x349970(0x121)](_0x9f127a),_0x9f127a=Math['min'](_0x9f127a*1.5,0xea60);continue;}_0x9f127a=this['reconnectDelay'];let _0x1f31e6=_0x1024f5['body']['getReader'](),_0x458a39=new TextDecoder(),_0x29867a='';while(this[_0x349970(0x151)]){let {done:_0x470b66,value:_0x4e011c}=await _0x1f31e6[_0x349970(0x130)]();if(_0x470b66)break;_0x29867a+=_0x458a39[_0x349970(0x14c)](_0x4e011c,{'stream':!0x0});let _0x4c2ec2=_0x29867a[_0x349970(0x157)]('\x0a');_0x29867a=_0x4c2ec2['pop']()||'';for(let _0x1c2a13 of _0x4c2ec2){if(!_0x1c2a13[_0x349970(0x11e)](_0x349970(0x12c)))continue;try{let _0x1f2280=JSON[_0x349970(0x14a)](_0x1c2a13[_0x349970(0x142)](0x6));if(_0x1f2280[_0x349970(0x146)]===_0x349970(0x114)){this[_0x349970(0x129)]('SSE\x20connected'),this[_0x349970(0x160)](_0x349970(0x114));continue;}if(_0x1f2280['type']==='new_task'||_0x1f2280['type']===_0x349970(0x166)||_0x1f2280[_0x349970(0x146)]===_0x349970(0x168))await this[_0x349970(0x140)]();}catch{}}}}catch(_0x291002){if(_0x291002['name']===_0x349970(0x127))break;this[_0x349970(0x160)](_0x349970(0x136),_0x291002),this[_0x349970(0x129)](_0x349970(0x128)+_0x291002[_0x349970(0x164)]);}if(this[_0x349970(0x151)])this[_0x349970(0x160)](_0x349970(0x117)),this[_0x349970(0x129)](_0x349970(0x132)+_0x9f127a/0x3e8+_0x349970(0x112)),await this[_0x349970(0x121)](_0x9f127a),_0x9f127a=Math[_0x349970(0x11b)](_0x9f127a*1.5,0xea60);}}async['processInbox'](){const _0x3de6eb=a0_0x5b7137;try{let _0x4e7a11=(await this['call'](_0x3de6eb(0x15a),{'alias':this[_0x3de6eb(0x12e)],'limit':0xa}))?.[_0x3de6eb(0x125)]||[];for(let _0x172209 of _0x4e7a11)await this[_0x3de6eb(0x123)](_0x3de6eb(0x12f),{'alias':this[_0x3de6eb(0x12e)],'message_id':_0x172209['id']}),this[_0x3de6eb(0x129)]('←\x20'+_0x172209['from_session']+':\x20'+_0x172209[_0x3de6eb(0x11c)][_0x3de6eb(0x142)](0x0,0x3c)),this[_0x3de6eb(0x160)](_0x3de6eb(0x13b),_0x172209),this[_0x3de6eb(0x160)](_0x3de6eb(0x164),_0x172209);}catch(_0x14078f){this[_0x3de6eb(0x129)](_0x3de6eb(0x152)+_0x14078f[_0x3de6eb(0x164)]);}}[a0_0x5b7137(0x121)](_0x497186){return new Promise(_0x1e4ebe=>setTimeout(_0x1e4ebe,_0x497186));}}function a0_0x50b6(){const _0x3c3306=['url','split','stringify',']\x20[commhub:','get_inbox','tools/call','toTimeString','2341108BCqiWa','sdk-','reply','emit','1368224cjUKhZ','send_message','heartbeat\x20failed:\x20','message','connectSSE','new_message','text/event-stream','broadcast','text','abort','s...','status','connected','sdk','Bearer\x20','disconnected','get_all_status','cwd','application/json','min','content','token','startsWith','body','send_reply','sleep','idle','call','POST','messages','heartbeatTimer','AbortError','SSE\x20error:\x20','log','registered','sseAbort','data:\x20','autoConnect','alias','ack_inbox','read','now','SSE\x20reconnecting\x20in\x20','offline','match','Authorization','error','agent','21115600yYYPKL','3226694FIWqxc','reconnectDelay','task','resumeId','1664292QsGGlt','connect','completed','processInbox','send','slice','SSE\x20failed:\x20','replace','5XSXNco','type','report_status','catch','application/json,\x20text/event-stream','parse','3571782yTpjGE','decode','signal','heartbeatInterval','toString','6765143ZPWdlX','running','inbox\x20error:\x20','server','9rPQdnq','getAllStatus'];a0_0x50b6=function(){return _0x3c3306;};return a0_0x50b6();}var $=T;export{$ as default,T as CommHub};
1
+ function a0_0x7b72(){const _0x1eb0c6=['text/event-stream','pop','broadcast','type','agent','heartbeatTimer','4azIUoX','19971nMskyC','cwd','startsWith','text','slice','send_task','call','normal','17479517cNLNSH','get_all_status','send_reply','heartbeatInterval','report_status','toTimeString','get_inbox','14805900lWrIQk','split','emit','4824OeqyWi','ack_inbox','offline','log','toString','alias','connectSSE','processInbox','catch','connect','content','tools/call','460953nsHeop','sleep','disconnect','status','decode','1104845omPrVN','new_task','name','replace','url','connected','2273979PvVwgk','running','disconnected','abort','token','completed','getAllStatus','6sttYpE','message','2.0','stringify','heartbeat\x20failed:\x20','resumeId','SSE\x20reconnecting\x20in\x20','360BwwaIM','error','getReader','send','idle','parse','new_message','body','AbortError','registered','read','reconnectDelay','result','task','Bearer\x20','sseAbort','SSE\x20connected','now','POST','inbox\x20error:\x20','sdk-','SSE\x20failed:\x20','18215kVvKCN','min'];a0_0x7b72=function(){return _0x1eb0c6;};return a0_0x7b72();}const a0_0x1afe55=a0_0x1000;(function(_0xd6a717,_0x2ad381){const _0x1cca76=a0_0x1000,_0x41f832=_0xd6a717();while(!![]){try{const _0x3d95f7=-parseInt(_0x1cca76(0x206))/0x1*(-parseInt(_0x1cca76(0x1c2))/0x2)+-parseInt(_0x1cca76(0x1bb))/0x3*(-parseInt(_0x1cca76(0x1e7))/0x4)+parseInt(_0x1cca76(0x1df))/0x5*(parseInt(_0x1cca76(0x1c9))/0x6)+-parseInt(_0x1cca76(0x1b5))/0x7+parseInt(_0x1cca76(0x1fa))/0x8*(-parseInt(_0x1cca76(0x1e8))/0x9)+parseInt(_0x1cca76(0x1f7))/0xa+-parseInt(_0x1cca76(0x1f0))/0xb;if(_0x3d95f7===_0x2ad381)break;else _0x41f832['push'](_0x41f832['shift']());}catch(_0x1e18f4){_0x41f832['push'](_0x41f832['shift']());}}}(a0_0x7b72,0xb858b));import{EventEmitter as a0_0x3b47b0}from'events';import{hostname as a0_0x42ffa0}from'os';function a0_0x1000(_0x3b7431,_0x51e81b){_0x3b7431=_0x3b7431-0x1b2;const _0x7b72ae=a0_0x7b72();let _0x100096=_0x7b72ae[_0x3b7431];return _0x100096;}class T extends a0_0x3b47b0{[a0_0x1afe55(0x1b9)];['alias'];[a0_0x1afe55(0x1bf)];[a0_0x1afe55(0x1e5)];[a0_0x1afe55(0x1c7)];[a0_0x1afe55(0x1f3)];[a0_0x1afe55(0x1d4)];[a0_0x1afe55(0x1e6)];[a0_0x1afe55(0x1d8)];['running']=!0x1;constructor(_0x92f9be){const _0x15f2e1=a0_0x1afe55;super();if(this[_0x15f2e1(0x1b9)]=_0x92f9be[_0x15f2e1(0x1b9)][_0x15f2e1(0x1b8)](/\/$/,''),this[_0x15f2e1(0x1ff)]=_0x92f9be[_0x15f2e1(0x1ff)],this[_0x15f2e1(0x1bf)]=_0x92f9be[_0x15f2e1(0x1bf)],this[_0x15f2e1(0x1e5)]=_0x92f9be['agent']||'sdk',this[_0x15f2e1(0x1c7)]=_0x15f2e1(0x1dd)+_0x92f9be[_0x15f2e1(0x1ff)]+'-'+Date[_0x15f2e1(0x1da)]()[_0x15f2e1(0x1fe)](0x24),this[_0x15f2e1(0x1f3)]=_0x92f9be[_0x15f2e1(0x1f3)]??0x2bf20,this['reconnectDelay']=_0x92f9be[_0x15f2e1(0x1d4)]??0xbb8,_0x92f9be['autoConnect']!==!0x1)this['connect']();}[a0_0x1afe55(0x1fd)](_0x4076ab){const _0x3f382f=a0_0x1afe55;console[_0x3f382f(0x1fd)]('['+new Date()[_0x3f382f(0x1f5)]()[_0x3f382f(0x1ec)](0x0,0x8)+']\x20[commhub:'+this[_0x3f382f(0x1ff)]+']\x20'+_0x4076ab);}async[a0_0x1afe55(0x1ee)](_0x995c54,_0x207495){const _0x42085b=a0_0x1afe55;let _0x3ea3e0={'Content-Type':'application/json','Accept':'application/json,\x20text/event-stream'};if(this['token'])_0x3ea3e0['Authorization']='Bearer\x20'+this[_0x42085b(0x1bf)];let _0x3e3369=await(await fetch(this[_0x42085b(0x1b9)]+'/mcp',{'method':_0x42085b(0x1db),'headers':_0x3ea3e0,'body':JSON[_0x42085b(0x1c5)]({'jsonrpc':_0x42085b(0x1c4),'id':Date['now'](),'method':_0x42085b(0x205),'params':{'name':_0x995c54,'arguments':_0x207495}})}))[_0x42085b(0x1eb)](),_0x3326fd=_0x3e3369['match'](/data: (.+)/),_0x44cd9d=_0x3326fd?JSON[_0x42085b(0x1ce)](_0x3326fd[0x1]):JSON[_0x42085b(0x1ce)](_0x3e3369),_0x14ef7c=_0x44cd9d?.[_0x42085b(0x1d5)]?.['content']?.[0x0]?.[_0x42085b(0x1eb)];return _0x14ef7c?JSON['parse'](_0x14ef7c):_0x44cd9d;}async[a0_0x1afe55(0x203)](){const _0x26ab5f=a0_0x1afe55;if(this[_0x26ab5f(0x1bc)])return;this[_0x26ab5f(0x1bc)]=!0x0,await this[_0x26ab5f(0x1b3)]('idle'),this['log'](_0x26ab5f(0x1d2)),this[_0x26ab5f(0x1e6)]=setInterval(()=>{const _0x18a792=_0x26ab5f;this['status'](_0x18a792(0x1cd))[_0x18a792(0x202)](_0x28fff8=>this[_0x18a792(0x1fd)](_0x18a792(0x1c6)+_0x28fff8[_0x18a792(0x1c3)]));},this[_0x26ab5f(0x1f3)]),this[_0x26ab5f(0x200)]();}async[a0_0x1afe55(0x1b2)](){const _0x3a86d4=a0_0x1afe55;if(this[_0x3a86d4(0x1bc)]=!0x1,this[_0x3a86d4(0x1d8)]?.[_0x3a86d4(0x1be)](),this[_0x3a86d4(0x1e6)])clearInterval(this[_0x3a86d4(0x1e6)]);await this['status'](_0x3a86d4(0x1fc))['catch'](()=>{}),this[_0x3a86d4(0x1fd)](_0x3a86d4(0x1bd));}async[a0_0x1afe55(0x1cc)](_0x5e08b3,_0x549c92,_0x519eb2=a0_0x1afe55(0x1ef)){const _0x7b5ebe=a0_0x1afe55;return this[_0x7b5ebe(0x1ee)](_0x7b5ebe(0x1ed),{'alias':_0x5e08b3,'task':_0x549c92,'priority':_0x519eb2,'from_session':this[_0x7b5ebe(0x1ff)]});}async[a0_0x1afe55(0x1c3)](_0x253c87,_0x2d027c){const _0x346bdc=a0_0x1afe55;return this[_0x346bdc(0x1ee)]('send_message',{'alias':_0x253c87,'message':_0x2d027c,'from_session':this[_0x346bdc(0x1ff)]});}async['reply'](_0x4768f2,_0x4f2687,_0x568d9a=a0_0x1afe55(0x1c0)){const _0x176b38=a0_0x1afe55;return this[_0x176b38(0x1ee)](_0x176b38(0x1f2),{'in_reply_to':_0x4768f2,'text':_0x4f2687,'status':_0x568d9a});}async[a0_0x1afe55(0x1b3)](_0x37adb4,_0x1ece9c){const _0x35abb3=a0_0x1afe55;return this[_0x35abb3(0x1ee)](_0x35abb3(0x1f4),{'resume_id':this[_0x35abb3(0x1c7)],'alias':this[_0x35abb3(0x1ff)],'status':_0x37adb4,'server':a0_0x42ffa0(),'hostname':a0_0x42ffa0(),'agent':this[_0x35abb3(0x1e5)],'project_dir':process[_0x35abb3(0x1e9)](),..._0x1ece9c});}async[a0_0x1afe55(0x1c1)](){const _0x596037=a0_0x1afe55;return this[_0x596037(0x1ee)](_0x596037(0x1f1),{});}async[a0_0x1afe55(0x1e3)](_0x4d7a68,_0x5572f9){const _0x723f47=a0_0x1afe55;return this[_0x723f47(0x1ee)](_0x723f47(0x1e3),{'message':_0x4d7a68,'filter_server':_0x5572f9?.['server'],'filter_status':_0x5572f9?.[_0x723f47(0x1b3)]});}async['connectSSE'](){const _0x4936f1=a0_0x1afe55;let _0x69675f=encodeURIComponent(this[_0x4936f1(0x1ff)]),_0x47f42d=this['url']+'/events/'+_0x69675f,_0x4c0bd1=this[_0x4936f1(0x1d4)];while(this[_0x4936f1(0x1bc)]){try{this[_0x4936f1(0x1d8)]=new AbortController();let _0x43db52={'Accept':_0x4936f1(0x1e1)};if(this[_0x4936f1(0x1bf)])_0x43db52['Authorization']=_0x4936f1(0x1d7)+this[_0x4936f1(0x1bf)];let _0x37ab7b=await fetch(_0x47f42d,{'headers':_0x43db52,'signal':this[_0x4936f1(0x1d8)]['signal']});if(!_0x37ab7b['ok']||!_0x37ab7b[_0x4936f1(0x1d0)]){this[_0x4936f1(0x1fd)](_0x4936f1(0x1de)+_0x37ab7b['status']),await this[_0x4936f1(0x207)](_0x4c0bd1),_0x4c0bd1=Math[_0x4936f1(0x1e0)](_0x4c0bd1*1.5,0xea60);continue;}_0x4c0bd1=this[_0x4936f1(0x1d4)];let _0x522075=_0x37ab7b[_0x4936f1(0x1d0)][_0x4936f1(0x1cb)](),_0x2295ad=new TextDecoder(),_0x14f039='';while(this[_0x4936f1(0x1bc)]){let {done:_0x53d81a,value:_0x93d298}=await _0x522075[_0x4936f1(0x1d3)]();if(_0x53d81a)break;_0x14f039+=_0x2295ad[_0x4936f1(0x1b4)](_0x93d298,{'stream':!0x0});let _0x33cdb8=_0x14f039[_0x4936f1(0x1f8)]('\x0a');_0x14f039=_0x33cdb8[_0x4936f1(0x1e2)]()||'';for(let _0x28f33d of _0x33cdb8){if(!_0x28f33d[_0x4936f1(0x1ea)]('data:\x20'))continue;try{let _0x2edc8d=JSON[_0x4936f1(0x1ce)](_0x28f33d[_0x4936f1(0x1ec)](0x6));if(_0x2edc8d['type']===_0x4936f1(0x1ba)){this[_0x4936f1(0x1fd)](_0x4936f1(0x1d9)),this[_0x4936f1(0x1f9)]('connected');continue;}if(_0x2edc8d[_0x4936f1(0x1e4)]===_0x4936f1(0x1b6)||_0x2edc8d['type']===_0x4936f1(0x1cf)||_0x2edc8d['type']===_0x4936f1(0x1e3))await this[_0x4936f1(0x201)]();}catch{}}}}catch(_0x54b0ae){if(_0x54b0ae[_0x4936f1(0x1b7)]===_0x4936f1(0x1d1))break;this[_0x4936f1(0x1f9)](_0x4936f1(0x1ca),_0x54b0ae),this[_0x4936f1(0x1fd)]('SSE\x20error:\x20'+_0x54b0ae[_0x4936f1(0x1c3)]);}if(this[_0x4936f1(0x1bc)])this[_0x4936f1(0x1f9)]('disconnected'),this[_0x4936f1(0x1fd)](_0x4936f1(0x1c8)+_0x4c0bd1/0x3e8+'s...'),await this[_0x4936f1(0x207)](_0x4c0bd1),_0x4c0bd1=Math[_0x4936f1(0x1e0)](_0x4c0bd1*1.5,0xea60);}}async[a0_0x1afe55(0x201)](){const _0x1d5f9c=a0_0x1afe55;try{let _0x437e33=(await this['call'](_0x1d5f9c(0x1f6),{'alias':this['alias'],'limit':0xa}))?.['messages']||[];for(let _0x3a36d0 of _0x437e33)await this[_0x1d5f9c(0x1ee)](_0x1d5f9c(0x1fb),{'alias':this['alias'],'message_id':_0x3a36d0['id']}),this[_0x1d5f9c(0x1fd)]('←\x20'+_0x3a36d0['from_session']+':\x20'+_0x3a36d0[_0x1d5f9c(0x204)][_0x1d5f9c(0x1ec)](0x0,0x3c)),this[_0x1d5f9c(0x1f9)](_0x1d5f9c(0x1d6),_0x3a36d0),this[_0x1d5f9c(0x1f9)]('message',_0x3a36d0);}catch(_0x3a742c){this[_0x1d5f9c(0x1fd)](_0x1d5f9c(0x1dc)+_0x3a742c[_0x1d5f9c(0x1c3)]);}}['sleep'](_0x4fd68e){return new Promise(_0x209a8d=>setTimeout(_0x209a8d,_0x4fd68e));}}var $=T;export{$ as default,T as CommHub};
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env bun
2
- const a0_0x207ea2=a0_0x5156;(function(_0x367ff5,_0x562351){const _0x4d5144=a0_0x5156,_0x12e498=_0x367ff5();while(!![]){try{const _0x2ceae7=-parseInt(_0x4d5144(0x1fe))/0x1+parseInt(_0x4d5144(0x1df))/0x2*(parseInt(_0x4d5144(0x177))/0x3)+-parseInt(_0x4d5144(0x1e0))/0x4*(-parseInt(_0x4d5144(0x1d6))/0x5)+-parseInt(_0x4d5144(0x1f6))/0x6+parseInt(_0x4d5144(0x18c))/0x7+-parseInt(_0x4d5144(0x1b3))/0x8*(-parseInt(_0x4d5144(0x1c4))/0x9)+-parseInt(_0x4d5144(0x19f))/0xa;if(_0x2ceae7===_0x562351)break;else _0x12e498['push'](_0x12e498['shift']());}catch(_0x117ce6){_0x12e498['push'](_0x12e498['shift']());}}}(a0_0x2b20,0x3b70c));import{readFileSync as a0_0x37e8bd,existsSync as a0_0xee8275}from'fs';import{randomUUID as a0_0x2c4b26}from'crypto';import{join as a0_0x1c9881}from'path';import{hostname as a0_0x3dd656}from'os';function a0_0x5156(_0x4cd11a,_0xf9aec0){_0x4cd11a=_0x4cd11a-0x16e;const _0x2b20a3=a0_0x2b20();let _0x515620=_0x2b20a3[_0x4cd11a];return _0x515620;}import{execSync as a0_0x4ceae2}from'child_process';import{Server as a0_0x39eb7a}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0x544d8e}from'@modelcontextprotocol/sdk/server/stdio.js';import{ListToolsRequestSchema as a0_0x4b6a40,CallToolRequestSchema as a0_0x213c08}from'@modelcontextprotocol/sdk/types.js';function p(_0x482a99){const _0x2d49a2=a0_0x5156;if(!a0_0xee8275(_0x482a99))return;for(let _0x19b868 of a0_0x37e8bd(_0x482a99,_0x2d49a2(0x1ca))[_0x2d49a2(0x19e)]('\x0a')){let _0x3d1849=_0x19b868[_0x2d49a2(0x1dd)]();if(!_0x3d1849||_0x3d1849[_0x2d49a2(0x1e5)]('#'))continue;let _0x489dd4=_0x3d1849[_0x2d49a2(0x1e3)]('=');if(_0x489dd4<0x0)continue;let _0x38721f=_0x3d1849['slice'](0x0,_0x489dd4)[_0x2d49a2(0x1dd)](),_0x5a7aca=_0x3d1849['slice'](_0x489dd4+0x1)[_0x2d49a2(0x1dd)]()[_0x2d49a2(0x1b7)](/^["']|["']$/g,'');if(!process.env[_0x38721f])process.env[_0x38721f]=_0x5a7aca;}}var C=process.env.HOME||'~',T=a0_0x1c9881(C,a0_0x207ea2(0x190));p(a0_0x1c9881(T,a0_0x207ea2(0x1c5)));var L=process['cwd']()['replace'](/\//g,'-');p(a0_0x1c9881(T,L,a0_0x207ea2(0x1c5)));function U(){const _0xee1db2=a0_0x207ea2;try{return a0_0x4ceae2('tmux\x20display-message\x20-p\x20\x27#S\x27',{'encoding':_0xee1db2(0x1ca),'timeout':0x7d0})[_0xee1db2(0x1dd)]();}catch{return'';}}function v(){const _0x1d5f83=a0_0x207ea2;try{let _0x45ca9a=a0_0x1c9881(C,_0x1d5f83(0x1d9),_0x1d5f83(0x1cc));if(a0_0xee8275(_0x45ca9a))return JSON[_0x1d5f83(0x1ae)](a0_0x37e8bd(_0x45ca9a,_0x1d5f83(0x1ca)));}catch{}return{};}var H=v(),f=process.env.COMMHUB_URL||H[a0_0x207ea2(0x1c6)]||'http://127.0.0.1:9200',j=process.env.COMMHUB_TMUX||U(),Z=process.env.COMMHUB_ALIAS||j||a0_0x3dd656(),w=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0x2c4b26(),X=process.env.COMMHUB_TOKEN||H[a0_0x207ea2(0x1ee)]||'';function Y(_0x296626){const _0x4a961a=a0_0x207ea2;let _0x53f466=new Date()[_0x4a961a(0x1bd)]()[_0x4a961a(0x1c3)](0x0,0x8);process[_0x4a961a(0x17d)]['write']('['+_0x53f466+']\x20[commhub]\x20'+_0x296626+'\x0a');}function h(_0x4d8929){return new Promise(_0x22e0e2=>setTimeout(_0x22e0e2,_0x4d8929));}Y(a0_0x207ea2(0x1e2)+f+a0_0x207ea2(0x1a5)+Z+a0_0x207ea2(0x1b6)+w['slice'](0x0,0x8)+a0_0x207ea2(0x1c7)+(j||a0_0x207ea2(0x182))+'\x20CWD='+process[a0_0x207ea2(0x1d0)]()+a0_0x207ea2(0x19b)+L);var k=new Map(),K=new a0_0x39eb7a({'name':'commhub-channel','version':a0_0x207ea2(0x1b9)},{'capabilities':{'experimental':{'claude/channel':{}},'tools':{}},'instructions':[a0_0x207ea2(0x17b),a0_0x207ea2(0x1b8),a0_0x207ea2(0x1a1),'You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.',a0_0x207ea2(0x1a6)+Z][a0_0x207ea2(0x1d3)]('\x0a')});K[a0_0x207ea2(0x1eb)](a0_0x4b6a40,async()=>({'tools':[{'name':a0_0x207ea2(0x189),'description':a0_0x207ea2(0x1f8),'inputSchema':{'type':'object','properties':{'task_id':{'type':a0_0x207ea2(0x1a2),'description':a0_0x207ea2(0x1fd)},'text':{'type':a0_0x207ea2(0x1a2),'description':a0_0x207ea2(0x192)},'status':{'type':'string','enum':[a0_0x207ea2(0x1e8),a0_0x207ea2(0x1ad),a0_0x207ea2(0x176),'blocked','error','in_progress'],'description':'Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates'}},'required':[a0_0x207ea2(0x193)]}},{'name':a0_0x207ea2(0x173),'description':'Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','inputSchema':{'type':'object','properties':{'status':{'type':a0_0x207ea2(0x1a2),'enum':[a0_0x207ea2(0x183),a0_0x207ea2(0x1c9),a0_0x207ea2(0x17c),a0_0x207ea2(0x1de)]},'task':{'type':a0_0x207ea2(0x1a2),'description':a0_0x207ea2(0x197)},'progress':{'type':a0_0x207ea2(0x184),'description':a0_0x207ea2(0x1a8)}},'required':[a0_0x207ea2(0x1f3)]}},{'name':a0_0x207ea2(0x1ec),'description':a0_0x207ea2(0x1d8),'inputSchema':{'type':a0_0x207ea2(0x1da),'properties':{'alias':{'type':a0_0x207ea2(0x1a2),'description':a0_0x207ea2(0x16e)},'task':{'type':'string','description':a0_0x207ea2(0x188)},'priority':{'type':a0_0x207ea2(0x1a2),'enum':[a0_0x207ea2(0x174),a0_0x207ea2(0x17e),a0_0x207ea2(0x1e4)],'description':'Priority\x20(default:\x20normal)'}},'required':[a0_0x207ea2(0x170),'task']}},{'name':'commhub_send_message','description':'Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','inputSchema':{'type':a0_0x207ea2(0x1da),'properties':{'alias':{'type':a0_0x207ea2(0x1a2),'description':'Target\x20session\x20alias'},'message':{'type':a0_0x207ea2(0x1a2),'description':a0_0x207ea2(0x186)}},'required':[a0_0x207ea2(0x170),a0_0x207ea2(0x1ef)]}},{'name':a0_0x207ea2(0x1b2),'description':'Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','inputSchema':{'type':'object','properties':{}}}]}));function a0_0x2b20(){const _0x24bd9d=['Target\x20session\x20alias','\x22\x20(','alias','application/json,\x20text/event-stream','pop','commhub_report_status','high','notifications/claude/channel','cancelled','14793klqozx','tools/call','get_inbox','catch','Messages\x20from\x20CommHub\x20arrive\x20as\x20<channel\x20source=\x22commhub\x22\x20task_id=\x22...\x22\x20priority=\x22...\x22\x20from=\x22...\x22>','blocked','stderr','normal','session\x20disconnected','Bearer\x20','get','none','working','number','connect','Message\x20content','data:\x20','Task\x20content','commhub_reply','find','\x20priority=','1637419AQQjJv','POST','MCP\x20stdio\x20connected','send_reply','.claude/channels/commhub','new_task','Reply\x20text\x20/\x20result\x20summary','text','2025-03-26','no\x20response','connected','Current\x20task\x20description','new_message','stringify','send_task','\x20PROJECT_ENV=','end','warning:\x20could\x20not\x20register:\x20','split','3397440hggomn','from','Reply\x20using\x20the\x20commhub_reply\x20tool\x20to\x20report\x20status\x20or\x20results\x20back.','string','ready\x20—\x20waiting\x20for\x20events','read','\x20ALIAS=','Session\x20alias:\x20','from_session','Progress\x200-100','SSE\x20stream\x20ended,\x20reconnecting...','get_all_status','registered\x20as\x20\x22','2.0','failed','parse','getReader','notification','inbox_count','commhub_get_all_status','1275704KwixmD','CommHub\x20init\x20failed:\x20','connecting\x20to\x20','\x20RESUME_ID=','replace','These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.','0.3.0','then','messages','parse\x20error:\x20','toTimeString','SIGINT','heartbeat\x20failed:\x20','delete','SIGTERM','application/json','slice','9RVuChZ','.env','hub','...\x20TMUX=','←\x20message\x20from\x20','idle','utf-8','message_id','config.json','set','decode','report_status','cwd','exit','Authorization','join','length','\x20from\x20','40PDYIyO','initialize','Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','.anet','object','body','unknown\x20tool','trim','error','134CmTTIu','103204nnVbuP','priority','ENV:\x20URL=','indexOf','low','startsWith','/events/','ack_inbox','completed','SSE\x20error:\x20','content','setRequestHandler','commhub_send_task','fatal:\x20','token','message','replied','starting\x20SSE\x20listener...','claude-code','status','type','SSE\x20connected\x20as\x20\x22','1550058tWWeqw','send_message','Reply\x20to\x20a\x20CommHub\x20task\x20—\x20report\x20completion\x20or\x20send\x20a\x20message\x20back\x20to\x20the\x20hub.','stdin','broadcast','statusText','result','The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)','88610yoQGJV','commhub_send_message'];a0_0x2b20=function(){return _0x24bd9d;};return a0_0x2b20();}async function P(_0x148c31,_0xa95505){const _0x2b4357=a0_0x207ea2;let _0x4ffb16=await fetch(f+'/mcp',{'method':_0x2b4357(0x18d),'headers':{'Content-Type':'application/json','Accept':'application/json,\x20text/event-stream',...X?{'Authorization':_0x2b4357(0x180)+X}:{}},'body':JSON['stringify']({'jsonrpc':'2.0','id':0x1,'method':_0x2b4357(0x1d7),'params':{'protocolVersion':_0x2b4357(0x194),'capabilities':{},'clientInfo':{'name':'commhub-channel','version':'0.3.0'}}})});if(!_0x4ffb16['ok']){let _0x4fb530=await _0x4ffb16['text']();return Y(_0x2b4357(0x1b4)+_0x4ffb16[_0x2b4357(0x1f3)]+'\x20'+_0x4fb530[_0x2b4357(0x1c3)](0x0,0x64)),{'ok':!0x1,'error':'init\x20failed:\x20'+_0x4ffb16[_0x2b4357(0x1f3)]};}await _0x4ffb16['text']();let _0x5229c2=(await(await fetch(f+'/mcp',{'method':'POST','headers':{'Content-Type':_0x2b4357(0x1c2),'Accept':_0x2b4357(0x171),...X?{'Authorization':_0x2b4357(0x180)+X}:{}},'body':JSON[_0x2b4357(0x199)]({'jsonrpc':_0x2b4357(0x1ac),'id':0x2,'method':_0x2b4357(0x178),'params':{'name':_0x148c31,'arguments':_0xa95505}})}))[_0x2b4357(0x193)]())[_0x2b4357(0x19e)]('\x0a')['find'](_0x2947a8=>_0x2947a8['startsWith'](_0x2b4357(0x187)));if(_0x5229c2){let _0x12edca=JSON['parse'](_0x5229c2['slice'](0x6));return _0x12edca?.['result']?.[_0x2b4357(0x1ea)]?.[0x0]?.[_0x2b4357(0x193)]?JSON[_0x2b4357(0x1ae)](_0x12edca[_0x2b4357(0x1fc)][_0x2b4357(0x1ea)][0x0][_0x2b4357(0x193)]):_0x12edca;}return{'ok':!0x1,'error':_0x2b4357(0x195)};}K['setRequestHandler'](a0_0x213c08,async _0x300b2c=>{const _0x2dec11=a0_0x207ea2;let {name:_0x27959c,arguments:_0x2121f2}=_0x300b2c['params'];if(_0x27959c==='commhub_reply'){let {task_id:_0x16a45b,text:_0x125696,status:_0x4f8f0b}=_0x2121f2;if(_0x4f8f0b===_0x2dec11(0x1e8)||_0x4f8f0b===_0x2dec11(0x1ad)||_0x4f8f0b==='cancelled'){let _0x1ccdf5=_0x4f8f0b===_0x2dec11(0x1e8)?_0x2dec11(0x1f0):_0x4f8f0b,_0x5a22ad=_0x16a45b?k[_0x2dec11(0x181)](_0x16a45b)||_0x2dec11(0x1c6):_0x2dec11(0x1c6),_0x5cbc11=await P(_0x2dec11(0x18f),{'alias':_0x5a22ad,'text':_0x125696,'in_reply_to':_0x16a45b||void 0x0,'status':_0x1ccdf5,'from_session':Z});if(_0x16a45b)k[_0x2dec11(0x1c0)](_0x16a45b);return{'content':[{'type':_0x2dec11(0x193),'text':JSON['stringify'](_0x5cbc11)}]};}let _0x494a4=await P('report_status',{'resume_id':w,'alias':Z,'status':_0x4f8f0b===_0x2dec11(0x17c)?_0x2dec11(0x17c):_0x4f8f0b==='error'?'error':_0x2dec11(0x183),'task':_0x125696[_0x2dec11(0x1c3)](0x0,0xc8),'output':_0x125696});return{'content':[{'type':_0x2dec11(0x193),'text':JSON[_0x2dec11(0x199)](_0x494a4)}]};}if(_0x27959c===_0x2dec11(0x173)){let {status:_0x78eef9,task:_0x347a72,progress:_0x3748ba}=_0x2121f2,_0x1bc8f2=await P(_0x2dec11(0x1cf),{'resume_id':w,'alias':Z,'status':_0x78eef9,'task':_0x347a72,'progress':_0x3748ba});return{'content':[{'type':_0x2dec11(0x193),'text':JSON[_0x2dec11(0x199)](_0x1bc8f2)}]};}if(_0x27959c==='commhub_send_task'){let {alias:_0xfd1c1a,task:_0x2c9429,priority:_0x302360}=_0x2121f2,_0x5f00af=await P(_0x2dec11(0x19a),{'alias':_0xfd1c1a,'task':_0x2c9429,'priority':_0x302360||'normal','from_session':Z});return{'content':[{'type':_0x2dec11(0x193),'text':JSON[_0x2dec11(0x199)](_0x5f00af)}]};}if(_0x27959c===_0x2dec11(0x1ff)){let {alias:_0x247e43,message:_0x295755}=_0x2121f2,_0x5bb238=await P(_0x2dec11(0x1f7),{'alias':_0x247e43,'message':_0x295755,'from_session':Z});return{'content':[{'type':_0x2dec11(0x193),'text':JSON[_0x2dec11(0x199)](_0x5bb238)}]};}if(_0x27959c===_0x2dec11(0x1b2)){let _0x5d043a=await P(_0x2dec11(0x1aa),{});return{'content':[{'type':_0x2dec11(0x193),'text':JSON[_0x2dec11(0x199)](_0x5d043a)}]};}return{'content':[{'type':_0x2dec11(0x193),'text':JSON[_0x2dec11(0x199)]({'error':_0x2dec11(0x1dc)})}]};});async function u(){const _0xf1e092=a0_0x207ea2;let _0x3b769f=f+_0xf1e092(0x1e6)+encodeURIComponent(Z),_0x3fe994={};if(X)_0x3fe994[_0xf1e092(0x1d2)]=_0xf1e092(0x180)+X;Y(_0xf1e092(0x1b5)+_0x3b769f);while(!0x0){try{let _0x28c9c9=await fetch(_0x3b769f,{'headers':_0x3fe994});if(!_0x28c9c9['ok']){Y(_0xf1e092(0x1e9)+_0x28c9c9[_0xf1e092(0x1f3)]+'\x20'+_0x28c9c9[_0xf1e092(0x1fb)]),await h(0x1388);continue;}let _0x1a10c5=_0x28c9c9[_0xf1e092(0x1db)][_0xf1e092(0x1af)](),_0x1409ab=new TextDecoder(),_0x16ae11='';while(!0x0){let {done:_0x4d48a8,value:_0x7a5476}=await _0x1a10c5[_0xf1e092(0x1a4)]();if(_0x4d48a8)break;_0x16ae11+=_0x1409ab[_0xf1e092(0x1ce)](_0x7a5476,{'stream':!0x0});let _0x2b316a=_0x16ae11[_0xf1e092(0x19e)]('\x0a\x0a');_0x16ae11=_0x2b316a[_0xf1e092(0x172)]()||'';for(let _0x3e9897 of _0x2b316a){let _0x18917c=_0x3e9897['split']('\x0a')[_0xf1e092(0x18a)](_0x3d1d16=>_0x3d1d16[_0xf1e092(0x1e5)](_0xf1e092(0x187)));if(!_0x18917c)continue;try{let _0x520ae6=JSON[_0xf1e092(0x1ae)](_0x18917c[_0xf1e092(0x1c3)](0x6));await S(_0x520ae6);}catch(_0x123d36){Y(_0xf1e092(0x1bc)+_0x123d36);}}}Y(_0xf1e092(0x1a9));}catch(_0x2a91da){Y('SSE\x20connection\x20error:\x20'+_0x2a91da);}await h(0xbb8);}}async function S(_0x15908c){const _0x2ddcad=a0_0x207ea2;if(_0x15908c[_0x2ddcad(0x1f4)]===_0x2ddcad(0x196)){Y(_0x2ddcad(0x1f5)+Z+'\x22');return;}if(_0x15908c['type']===_0x2ddcad(0x198)){if(Y(_0x2ddcad(0x1c8)+_0x15908c[_0x2ddcad(0x1a0)]+':\x20'+_0x15908c['message']['slice'](0x0,0x3c)),await K[_0x2ddcad(0x1b0)]({'method':_0x2ddcad(0x175),'params':{'content':_0x15908c[_0x2ddcad(0x1ef)],'meta':{'sender':_0x15908c[_0x2ddcad(0x1a0)]||_0x2ddcad(0x1c6),'sender_id':'commhub','user':_0x15908c['from']||'hub','priority':_0x2ddcad(0x17e)}}}),_0x15908c[_0x2ddcad(0x1cb)])await P(_0x2ddcad(0x1e7),{'alias':Z,'message_id':_0x15908c['message_id']});return;}if(_0x15908c[_0x2ddcad(0x1f4)]===_0x2ddcad(0x191)||_0x15908c['type']===_0x2ddcad(0x1fa)){Y('←\x20'+_0x15908c[_0x2ddcad(0x1f4)]+':\x20inbox_count='+_0x15908c[_0x2ddcad(0x1b1)]+_0x2ddcad(0x18b)+(_0x15908c[_0x2ddcad(0x1e1)]||'normal'));let _0x53c0a2=await P(_0x2ddcad(0x179),{'alias':Z,'limit':0x5});if(_0x53c0a2?.['ok']&&_0x53c0a2[_0x2ddcad(0x1bb)]?.[_0x2ddcad(0x1d4)]>0x0)for(let _0x54a6a8 of _0x53c0a2[_0x2ddcad(0x1bb)]){let _0x25e919={'sender':_0x54a6a8['from_session']||_0x2ddcad(0x1c6),'sender_id':'commhub','user':_0x54a6a8[_0x2ddcad(0x1a7)]||_0x2ddcad(0x1c6),'task_id':_0x54a6a8['id'],'priority':_0x54a6a8[_0x2ddcad(0x1e1)]||_0x2ddcad(0x17e)};k[_0x2ddcad(0x1cd)](_0x54a6a8['id'],_0x54a6a8[_0x2ddcad(0x1a7)]||_0x2ddcad(0x1c6)),await K[_0x2ddcad(0x1b0)]({'method':_0x2ddcad(0x175),'params':{'content':_0x54a6a8[_0x2ddcad(0x1ea)],'meta':_0x25e919}}),Y('→\x20injected\x20task\x20'+_0x54a6a8['id'][_0x2ddcad(0x1c3)](0x0,0x8)+_0x2ddcad(0x1d5)+_0x54a6a8[_0x2ddcad(0x1a7)]+':\x20'+_0x54a6a8[_0x2ddcad(0x1ea)][_0x2ddcad(0x1c3)](0x0,0x3c)),await P(_0x2ddcad(0x1e7),{'alias':Z,'message_id':_0x54a6a8['id']});}}}async function A(){const _0x1f785f=a0_0x207ea2;let _0x58cb98=new a0_0x544d8e();await K[_0x1f785f(0x185)](_0x58cb98),Y(_0x1f785f(0x18e)),Y(_0x1f785f(0x1f1)),u()[_0x1f785f(0x17a)](_0x7a1db6=>Y('SSE\x20fatal:\x20'+_0x7a1db6)),P(_0x1f785f(0x1cf),{'resume_id':w,'alias':Z,'status':_0x1f785f(0x1c9),'server':a0_0x3dd656(),'hostname':a0_0x3dd656(),'agent':_0x1f785f(0x1f2),'project_dir':process[_0x1f785f(0x1d0)](),'tmux_name':j||void 0x0})[_0x1f785f(0x1ba)](()=>Y(_0x1f785f(0x1ab)+Z+_0x1f785f(0x16f)+w['slice'](0x0,0x8)+')'))[_0x1f785f(0x17a)](_0x332b56=>Y(_0x1f785f(0x19d)+_0x332b56)),setInterval(()=>{const _0x550a0d=_0x1f785f;P(_0x550a0d(0x1cf),{'resume_id':w,'alias':Z,'status':'idle','server':a0_0x3dd656(),'hostname':a0_0x3dd656(),'agent':_0x550a0d(0x1f2),'project_dir':process[_0x550a0d(0x1d0)](),'tmux_name':j||void 0x0})[_0x550a0d(0x17a)](_0x3f30c5=>Y(_0x550a0d(0x1bf)+_0x3f30c5));},0x2bf20),Y(_0x1f785f(0x1a3));}A()[a0_0x207ea2(0x17a)](_0x3ffc7f=>{const _0x135a31=a0_0x207ea2;Y(_0x135a31(0x1ed)+_0x3ffc7f),process[_0x135a31(0x1d1)](0x1);});async function N(){const _0x196b4d=a0_0x207ea2;Y('shutting\x20down,\x20reporting\x20offline...'),await P('report_status',{'resume_id':w,'alias':Z,'status':_0x196b4d(0x1de),'task':_0x196b4d(0x17f)})[_0x196b4d(0x17a)](()=>{}),process[_0x196b4d(0x1d1)](0x0);}process[a0_0x207ea2(0x1f9)]['on'](a0_0x207ea2(0x19c),()=>N()),process['on'](a0_0x207ea2(0x1c1),()=>N()),process['on'](a0_0x207ea2(0x1be),()=>N());
2
+ const a0_0x145213=a0_0x1726;(function(_0x35d1b7,_0x55a4d8){const _0x3f9b18=a0_0x1726,_0x12ded9=_0x35d1b7();while(!![]){try{const _0x2e52be=parseInt(_0x3f9b18(0x22a))/0x1+parseInt(_0x3f9b18(0x246))/0x2+-parseInt(_0x3f9b18(0x221))/0x3*(-parseInt(_0x3f9b18(0x1fe))/0x4)+-parseInt(_0x3f9b18(0x1dd))/0x5+parseInt(_0x3f9b18(0x253))/0x6+-parseInt(_0x3f9b18(0x1d4))/0x7*(parseInt(_0x3f9b18(0x210))/0x8)+parseInt(_0x3f9b18(0x1f4))/0x9*(-parseInt(_0x3f9b18(0x1e0))/0xa);if(_0x2e52be===_0x55a4d8)break;else _0x12ded9['push'](_0x12ded9['shift']());}catch(_0x40303a){_0x12ded9['push'](_0x12ded9['shift']());}}}(a0_0x2c08,0xcafd4));import{readFileSync as a0_0x877ba6,existsSync as a0_0x1aea09}from'fs';import{randomUUID as a0_0x5016fd}from'crypto';import{join as a0_0x17586f}from'path';import{hostname as a0_0x4f0241}from'os';import{execSync as a0_0x3c53fb}from'child_process';import{Server as a0_0x538177}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0x82e55d}from'@modelcontextprotocol/sdk/server/stdio.js';import{ListToolsRequestSchema as a0_0x5d9c02,CallToolRequestSchema as a0_0x2fb0ef}from'@modelcontextprotocol/sdk/types.js';function p(_0x16f7ea){const _0x431a32=a0_0x1726;if(!a0_0x1aea09(_0x16f7ea))return;for(let _0x4f2737 of a0_0x877ba6(_0x16f7ea,_0x431a32(0x22c))[_0x431a32(0x1f2)]('\x0a')){let _0x4ba3f6=_0x4f2737[_0x431a32(0x21c)]();if(!_0x4ba3f6||_0x4ba3f6[_0x431a32(0x211)]('#'))continue;let _0x509b56=_0x4ba3f6[_0x431a32(0x23f)]('=');if(_0x509b56<0x0)continue;let _0x285ee9=_0x4ba3f6[_0x431a32(0x214)](0x0,_0x509b56)['trim'](),_0x4d9aa0=_0x4ba3f6[_0x431a32(0x214)](_0x509b56+0x1)[_0x431a32(0x21c)]()['replace'](/^["']|["']$/g,'');if(!process.env[_0x285ee9])process.env[_0x285ee9]=_0x4d9aa0;}}var C=process.env.HOME||'~',T=a0_0x17586f(C,a0_0x145213(0x203));p(a0_0x17586f(T,a0_0x145213(0x1df)));var L=process[a0_0x145213(0x256)]()[a0_0x145213(0x1ef)](/\//g,'-');function a0_0x1726(_0x143ff0,_0x51d18d){_0x143ff0=_0x143ff0-0x1cd;const _0x2c0855=a0_0x2c08();let _0x1726b7=_0x2c0855[_0x143ff0];return _0x1726b7;}p(a0_0x17586f(T,L,a0_0x145213(0x1df)));function U(){const _0x23ea82=a0_0x145213;try{return a0_0x3c53fb(_0x23ea82(0x206),{'encoding':_0x23ea82(0x22c),'timeout':0x7d0})['trim']();}catch{return'';}}function v(){const _0x56beeb=a0_0x145213;try{let _0x27de68=a0_0x17586f(C,'.anet',_0x56beeb(0x1d5));if(a0_0x1aea09(_0x27de68))return JSON[_0x56beeb(0x1f1)](a0_0x877ba6(_0x27de68,'utf-8'));}catch{}return{};}var H=v(),f=process.env.COMMHUB_URL||H[a0_0x145213(0x1fa)]||a0_0x145213(0x1da),j=process.env.COMMHUB_TMUX||U(),Z=process.env.COMMHUB_ALIAS||j||a0_0x4f0241(),w=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0x5016fd(),X=process.env.COMMHUB_TOKEN||H[a0_0x145213(0x231)]||'';function Y(_0x5e9274){const _0x59c0ea=a0_0x145213;let _0x3fefa4=new Date()['toTimeString']()[_0x59c0ea(0x214)](0x0,0x8);process[_0x59c0ea(0x222)]['write']('['+_0x3fefa4+_0x59c0ea(0x1d6)+_0x5e9274+'\x0a');}function h(_0x26d56d){return new Promise(_0x4a9cd9=>setTimeout(_0x4a9cd9,_0x26d56d));}Y('ENV:\x20URL='+f+a0_0x145213(0x1db)+Z+'\x20RESUME_ID='+w[a0_0x145213(0x214)](0x0,0x8)+'...\x20TMUX='+(j||a0_0x145213(0x215))+a0_0x145213(0x1ce)+process['cwd']()+a0_0x145213(0x1e3)+L);function a0_0x2c08(){const _0x27079c=['indexOf','Reply\x20to\x20a\x20CommHub\x20task\x20—\x20report\x20completion\x20or\x20send\x20a\x20message\x20back\x20to\x20the\x20hub.','high','heartbeat\x20failed:\x20','shutting\x20down,\x20reporting\x20offline...','completed','replied','612212OKhKbv','init\x20failed:\x20','2.0','pop','report_status','length','status','stdin','stringify','notifications/claude/channel','tools/call','getReader','commhub-channel','7773852BsgEKb','catch','new_task','cwd','Task\x20content','then','SIGINT','messages','blocked','SSE\x20error:\x20','from','\x20CWD=','Target\x20session\x20alias','alias','commhub_send_message','task','type','9087547JFEpBr','config.json',']\x20[commhub]\x20','\x20from\x20','object','send_message','http://127.0.0.1:9200','\x20ALIAS=','notification','5009330KkibmC','/mcp','.env','40ZtkYuo','commhub','fatal:\x20','\x20PROJECT_ENV=','Messages\x20from\x20CommHub\x20arrive\x20as\x20<channel\x20source=\x22commhub\x22\x20task_id=\x22...\x22\x20priority=\x22...\x22\x20from=\x22...\x22>','cancelled','connecting\x20to\x20','SSE\x20connected\x20as\x20\x22','Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','error','find','number','SSE\x20fatal:\x20','Reply\x20text\x20/\x20result\x20summary','unknown\x20tool','replace','commhub_reply','parse','split','get_all_status','374553OtImUn','text','application/json,\x20text/event-stream','The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)','ready\x20—\x20waiting\x20for\x20events','←\x20message\x20from\x20','hub','join','get','string','4ecbYyX','message_id','Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','CommHub\x20init\x20failed:\x20','exit','.claude/channels/commhub','POST','registered\x20as\x20\x22','tmux\x20display-message\x20-p\x20\x27#S\x27','→\x20injected\x20task\x20','inbox_count','failed','\x20priority=','commhub_report_status','message','delete','content','result','8LTgpyQ','startsWith','priority','session\x20disconnected','slice','none','from_session','commhub_get_all_status','data:\x20','claude-code','Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','decode','trim','warning:\x20could\x20not\x20register:\x20','commhub_send_task',':\x20inbox_count=','setRequestHandler','460428kWRpvM','stderr','params','Reply\x20using\x20the\x20commhub_reply\x20tool\x20to\x20report\x20status\x20or\x20results\x20back.','SSE\x20connection\x20error:\x20','Message\x20content','MCP\x20stdio\x20connected','Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','ack_inbox','1542775IjGVUx','2025-03-26','utf-8','broadcast','normal','Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates','SIGTERM','token','Bearer\x20','connected','application/json','parse\x20error:\x20','Progress\x200-100','idle','starting\x20SSE\x20listener...','SSE\x20stream\x20ended,\x20reconnecting...','working','0.3.0','Priority\x20(default:\x20normal)','send_reply','statusText'];a0_0x2c08=function(){return _0x27079c;};return a0_0x2c08();}var k=new Map(),K=new a0_0x538177({'name':'commhub-channel','version':a0_0x145213(0x23b)},{'capabilities':{'experimental':{'claude/channel':{}},'tools':{}},'instructions':[a0_0x145213(0x1e4),'These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.',a0_0x145213(0x224),'You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.','Session\x20alias:\x20'+Z][a0_0x145213(0x1fb)]('\x0a')});K[a0_0x145213(0x220)](a0_0x5d9c02,async()=>({'tools':[{'name':a0_0x145213(0x1f0),'description':a0_0x145213(0x240),'inputSchema':{'type':a0_0x145213(0x1d8),'properties':{'task_id':{'type':'string','description':a0_0x145213(0x1f7)},'text':{'type':a0_0x145213(0x1fd),'description':a0_0x145213(0x1ed)},'status':{'type':'string','enum':[a0_0x145213(0x244),'failed',a0_0x145213(0x1e5),a0_0x145213(0x25b),'error','in_progress'],'description':a0_0x145213(0x22f)}},'required':[a0_0x145213(0x1f5)]}},{'name':a0_0x145213(0x20b),'description':a0_0x145213(0x228),'inputSchema':{'type':'object','properties':{'status':{'type':a0_0x145213(0x1fd),'enum':[a0_0x145213(0x23a),a0_0x145213(0x237),'blocked','error']},'task':{'type':a0_0x145213(0x1fd),'description':'Current\x20task\x20description'},'progress':{'type':a0_0x145213(0x1eb),'description':a0_0x145213(0x236)}},'required':[a0_0x145213(0x24c)]}},{'name':a0_0x145213(0x21e),'description':a0_0x145213(0x1e8),'inputSchema':{'type':a0_0x145213(0x1d8),'properties':{'alias':{'type':a0_0x145213(0x1fd),'description':a0_0x145213(0x1cf)},'task':{'type':a0_0x145213(0x1fd),'description':a0_0x145213(0x257)},'priority':{'type':a0_0x145213(0x1fd),'enum':[a0_0x145213(0x241),a0_0x145213(0x22e),'low'],'description':a0_0x145213(0x23c)}},'required':[a0_0x145213(0x1d0),a0_0x145213(0x1d2)]}},{'name':a0_0x145213(0x1d1),'description':a0_0x145213(0x21a),'inputSchema':{'type':a0_0x145213(0x1d8),'properties':{'alias':{'type':a0_0x145213(0x1fd),'description':'Target\x20session\x20alias'},'message':{'type':'string','description':a0_0x145213(0x226)}},'required':[a0_0x145213(0x1d0),a0_0x145213(0x20c)]}},{'name':a0_0x145213(0x217),'description':a0_0x145213(0x200),'inputSchema':{'type':a0_0x145213(0x1d8),'properties':{}}}]}));async function P(_0x2d0b16,_0x573b9c){const _0x1491ae=a0_0x145213;let _0x274b8f=await fetch(f+_0x1491ae(0x1de),{'method':_0x1491ae(0x204),'headers':{'Content-Type':_0x1491ae(0x234),'Accept':_0x1491ae(0x1f6),...X?{'Authorization':'Bearer\x20'+X}:{}},'body':JSON[_0x1491ae(0x24e)]({'jsonrpc':'2.0','id':0x1,'method':'initialize','params':{'protocolVersion':_0x1491ae(0x22b),'capabilities':{},'clientInfo':{'name':_0x1491ae(0x252),'version':'0.3.0'}}})});if(!_0x274b8f['ok']){let _0x1c88f9=await _0x274b8f[_0x1491ae(0x1f5)]();return Y(_0x1491ae(0x201)+_0x274b8f[_0x1491ae(0x24c)]+'\x20'+_0x1c88f9[_0x1491ae(0x214)](0x0,0x64)),{'ok':!0x1,'error':_0x1491ae(0x247)+_0x274b8f[_0x1491ae(0x24c)]};}await _0x274b8f[_0x1491ae(0x1f5)]();let _0x585808=(await(await fetch(f+_0x1491ae(0x1de),{'method':_0x1491ae(0x204),'headers':{'Content-Type':_0x1491ae(0x234),'Accept':_0x1491ae(0x1f6),...X?{'Authorization':_0x1491ae(0x232)+X}:{}},'body':JSON[_0x1491ae(0x24e)]({'jsonrpc':_0x1491ae(0x248),'id':0x2,'method':_0x1491ae(0x250),'params':{'name':_0x2d0b16,'arguments':_0x573b9c}})}))['text']())[_0x1491ae(0x1f2)]('\x0a')[_0x1491ae(0x1ea)](_0x3d2da4=>_0x3d2da4['startsWith'](_0x1491ae(0x218)));if(_0x585808){let _0x49b8a=JSON['parse'](_0x585808[_0x1491ae(0x214)](0x6));return _0x49b8a?.[_0x1491ae(0x20f)]?.[_0x1491ae(0x20e)]?.[0x0]?.[_0x1491ae(0x1f5)]?JSON[_0x1491ae(0x1f1)](_0x49b8a[_0x1491ae(0x20f)][_0x1491ae(0x20e)][0x0]['text']):_0x49b8a;}return{'ok':!0x1,'error':'no\x20response'};}K[a0_0x145213(0x220)](a0_0x2fb0ef,async _0x130297=>{const _0x46cf07=a0_0x145213;let {name:_0x1d7094,arguments:_0xb0b89e}=_0x130297[_0x46cf07(0x223)];if(_0x1d7094===_0x46cf07(0x1f0)){let {task_id:_0x286df7,text:_0x421a27,status:_0x5a8ae9}=_0xb0b89e;if(_0x5a8ae9===_0x46cf07(0x244)||_0x5a8ae9===_0x46cf07(0x209)||_0x5a8ae9===_0x46cf07(0x1e5)){let _0x45bdf0=_0x5a8ae9==='completed'?_0x46cf07(0x245):_0x5a8ae9,_0x5d43ad=_0x286df7?k[_0x46cf07(0x1fc)](_0x286df7)||_0x46cf07(0x1fa):_0x46cf07(0x1fa),_0x4e1b59=await P(_0x46cf07(0x23d),{'alias':_0x5d43ad,'text':_0x421a27,'in_reply_to':_0x286df7||void 0x0,'status':_0x45bdf0,'from_session':Z});if(_0x286df7)k[_0x46cf07(0x20d)](_0x286df7);return{'content':[{'type':_0x46cf07(0x1f5),'text':JSON[_0x46cf07(0x24e)](_0x4e1b59)}]};}let _0x553aa4=await P(_0x46cf07(0x24a),{'resume_id':w,'alias':Z,'status':_0x5a8ae9==='blocked'?_0x46cf07(0x25b):_0x5a8ae9===_0x46cf07(0x1e9)?_0x46cf07(0x1e9):_0x46cf07(0x23a),'task':_0x421a27[_0x46cf07(0x214)](0x0,0xc8),'output':_0x421a27});return{'content':[{'type':_0x46cf07(0x1f5),'text':JSON[_0x46cf07(0x24e)](_0x553aa4)}]};}if(_0x1d7094==='commhub_report_status'){let {status:_0x4a41ca,task:_0x12374d,progress:_0x5c2554}=_0xb0b89e,_0x2841fd=await P(_0x46cf07(0x24a),{'resume_id':w,'alias':Z,'status':_0x4a41ca,'task':_0x12374d,'progress':_0x5c2554});return{'content':[{'type':_0x46cf07(0x1f5),'text':JSON[_0x46cf07(0x24e)](_0x2841fd)}]};}if(_0x1d7094===_0x46cf07(0x21e)){let {alias:_0x39989c,task:_0x31500f,priority:_0x205336}=_0xb0b89e,_0x59d9fd=await P('send_task',{'alias':_0x39989c,'task':_0x31500f,'priority':_0x205336||_0x46cf07(0x22e),'from_session':Z});return{'content':[{'type':_0x46cf07(0x1f5),'text':JSON[_0x46cf07(0x24e)](_0x59d9fd)}]};}if(_0x1d7094===_0x46cf07(0x1d1)){let {alias:_0x3f0733,message:_0x37a313}=_0xb0b89e,_0x557db9=await P(_0x46cf07(0x1d9),{'alias':_0x3f0733,'message':_0x37a313,'from_session':Z});return{'content':[{'type':'text','text':JSON[_0x46cf07(0x24e)](_0x557db9)}]};}if(_0x1d7094===_0x46cf07(0x217)){let _0xfdc06f=await P(_0x46cf07(0x1f3),{});return{'content':[{'type':_0x46cf07(0x1f5),'text':JSON[_0x46cf07(0x24e)](_0xfdc06f)}]};}return{'content':[{'type':_0x46cf07(0x1f5),'text':JSON['stringify']({'error':_0x46cf07(0x1ee)})}]};});async function u(){const _0x15b440=a0_0x145213;let _0x5ce6bd=f+'/events/'+encodeURIComponent(Z),_0x3ad54b={};if(X)_0x3ad54b['Authorization']='Bearer\x20'+X;Y(_0x15b440(0x1e6)+_0x5ce6bd);while(!0x0){try{let _0x53202e=await fetch(_0x5ce6bd,{'headers':_0x3ad54b});if(!_0x53202e['ok']){Y(_0x15b440(0x25c)+_0x53202e['status']+'\x20'+_0x53202e[_0x15b440(0x23e)]),await h(0x1388);continue;}let _0x5243e4=_0x53202e['body'][_0x15b440(0x251)](),_0xe2da19=new TextDecoder(),_0x5446df='';while(!0x0){let {done:_0x4f76f2,value:_0x126c49}=await _0x5243e4['read']();if(_0x4f76f2)break;_0x5446df+=_0xe2da19[_0x15b440(0x21b)](_0x126c49,{'stream':!0x0});let _0x5d5bdb=_0x5446df[_0x15b440(0x1f2)]('\x0a\x0a');_0x5446df=_0x5d5bdb[_0x15b440(0x249)]()||'';for(let _0x309708 of _0x5d5bdb){let _0x154dba=_0x309708[_0x15b440(0x1f2)]('\x0a')[_0x15b440(0x1ea)](_0x34783c=>_0x34783c[_0x15b440(0x211)]('data:\x20'));if(!_0x154dba)continue;try{let _0x3095ba=JSON['parse'](_0x154dba['slice'](0x6));await S(_0x3095ba);}catch(_0x4eb15e){Y(_0x15b440(0x235)+_0x4eb15e);}}}Y(_0x15b440(0x239));}catch(_0x26eda9){Y(_0x15b440(0x225)+_0x26eda9);}await h(0xbb8);}}async function S(_0x3bae2d){const _0x8e2267=a0_0x145213;if(_0x3bae2d[_0x8e2267(0x1d3)]===_0x8e2267(0x233)){Y(_0x8e2267(0x1e7)+Z+'\x22');return;}if(_0x3bae2d[_0x8e2267(0x1d3)]==='new_message'){if(Y(_0x8e2267(0x1f9)+_0x3bae2d['from']+':\x20'+_0x3bae2d['message'][_0x8e2267(0x214)](0x0,0x3c)),await K[_0x8e2267(0x1dc)]({'method':_0x8e2267(0x24f),'params':{'content':_0x3bae2d['message'],'meta':{'sender':_0x3bae2d[_0x8e2267(0x1cd)]||_0x8e2267(0x1fa),'sender_id':_0x8e2267(0x1e1),'user':_0x3bae2d['from']||'hub','priority':_0x8e2267(0x22e)}}}),_0x3bae2d[_0x8e2267(0x1ff)])await P(_0x8e2267(0x229),{'alias':Z,'message_id':_0x3bae2d[_0x8e2267(0x1ff)]});return;}if(_0x3bae2d[_0x8e2267(0x1d3)]===_0x8e2267(0x255)||_0x3bae2d['type']===_0x8e2267(0x22d)){Y('←\x20'+_0x3bae2d[_0x8e2267(0x1d3)]+_0x8e2267(0x21f)+_0x3bae2d[_0x8e2267(0x208)]+_0x8e2267(0x20a)+(_0x3bae2d['priority']||_0x8e2267(0x22e)));let _0x521231=await P('get_inbox',{'alias':Z,'limit':0x5});if(_0x521231?.['ok']&&_0x521231['messages']?.[_0x8e2267(0x24b)]>0x0)for(let _0x36caf4 of _0x521231[_0x8e2267(0x25a)]){let _0x5e41a4={'sender':_0x36caf4[_0x8e2267(0x216)]||_0x8e2267(0x1fa),'sender_id':_0x8e2267(0x1e1),'user':_0x36caf4[_0x8e2267(0x216)]||'hub','task_id':_0x36caf4['id'],'priority':_0x36caf4[_0x8e2267(0x212)]||'normal'};k['set'](_0x36caf4['id'],_0x36caf4[_0x8e2267(0x216)]||_0x8e2267(0x1fa)),await K['notification']({'method':_0x8e2267(0x24f),'params':{'content':_0x36caf4[_0x8e2267(0x20e)],'meta':_0x5e41a4}}),Y(_0x8e2267(0x207)+_0x36caf4['id'][_0x8e2267(0x214)](0x0,0x8)+_0x8e2267(0x1d7)+_0x36caf4[_0x8e2267(0x216)]+':\x20'+_0x36caf4[_0x8e2267(0x20e)]['slice'](0x0,0x3c)),await P(_0x8e2267(0x229),{'alias':Z,'message_id':_0x36caf4['id']});}}}async function A(){const _0x3533ce=a0_0x145213;let _0x485c7c=new a0_0x82e55d();await K['connect'](_0x485c7c),Y(_0x3533ce(0x227)),Y(_0x3533ce(0x238)),u()[_0x3533ce(0x254)](_0xb4d690=>Y(_0x3533ce(0x1ec)+_0xb4d690)),P(_0x3533ce(0x24a),{'resume_id':w,'alias':Z,'status':'idle','server':a0_0x4f0241(),'hostname':a0_0x4f0241(),'agent':_0x3533ce(0x219),'project_dir':process[_0x3533ce(0x256)](),'tmux_name':j||void 0x0})[_0x3533ce(0x258)](()=>Y(_0x3533ce(0x205)+Z+'\x22\x20('+w[_0x3533ce(0x214)](0x0,0x8)+')'))[_0x3533ce(0x254)](_0x5a0920=>Y(_0x3533ce(0x21d)+_0x5a0920)),setInterval(()=>{const _0x183699=_0x3533ce;P(_0x183699(0x24a),{'resume_id':w,'alias':Z,'status':_0x183699(0x237),'server':a0_0x4f0241(),'hostname':a0_0x4f0241(),'agent':_0x183699(0x219),'project_dir':process['cwd'](),'tmux_name':j||void 0x0})[_0x183699(0x254)](_0x1b6041=>Y(_0x183699(0x242)+_0x1b6041));},0x2bf20),Y(_0x3533ce(0x1f8));}A()[a0_0x145213(0x254)](_0x159faa=>{const _0x345828=a0_0x145213;Y(_0x345828(0x1e2)+_0x159faa),process[_0x345828(0x202)](0x1);});async function N(){const _0x122d73=a0_0x145213;Y(_0x122d73(0x243)),await P(_0x122d73(0x24a),{'resume_id':w,'alias':Z,'status':_0x122d73(0x1e9),'task':_0x122d73(0x213)})[_0x122d73(0x254)](()=>{}),process[_0x122d73(0x202)](0x0);}process[a0_0x145213(0x24d)]['on']('end',()=>N()),process['on'](a0_0x145213(0x230),()=>N()),process['on'](a0_0x145213(0x259),()=>N());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network",
3
- "version": "2.1.8-preview.1",
3
+ "version": "2.1.8-preview.10",
4
4
  "description": "AI Agent Network CLI — Create multi-agent networks with user management, network isolation, and 3 AI runtimes (Claude/Codex/MiniMax). 39 commands.",
5
5
  "type": "module",
6
6
  "main": "dist/src/client.js",
@@ -52,7 +52,8 @@
52
52
  "url": "https://github.com/sleep2agi/agent-network/issues"
53
53
  },
54
54
  "engines": {
55
- "bun": ">=1.2.0"
55
+ "bun": ">=1.2.0",
56
+ "node": ">=22.13.0"
56
57
  },
57
58
  "dependencies": {
58
59
  "@inquirer/prompts": "^8.4.3"
package/dist/client.d.ts DELETED
@@ -1,78 +0,0 @@
1
- /**
2
- * @sleep2agi/commhub-sdk
3
- *
4
- * CommHub 通信 SDK — 一个文件,SSE 长连接 + 自动重连 + 心跳。
5
- * 支持 Node.js 18+ 和 Bun。
6
- */
7
- import { EventEmitter } from "events";
8
- export interface CommHubOptions {
9
- /** CommHub Server URL, e.g. "http://YOUR_COMMHUB_IP:9200" */
10
- url: string;
11
- /** Session alias, e.g. "SDK马" */
12
- alias: string;
13
- /** Auth token (optional) */
14
- token?: string;
15
- /** Agent type for registration (default: "sdk") */
16
- agent?: string;
17
- /** Heartbeat interval in ms (default: 180000 = 3 min) */
18
- heartbeatInterval?: number;
19
- /** SSE reconnect base delay in ms (default: 3000) */
20
- reconnectDelay?: number;
21
- /** Auto-connect on creation (default: true) */
22
- autoConnect?: boolean;
23
- }
24
- export interface InboxMessage {
25
- id: string;
26
- content: string;
27
- from_session: string;
28
- priority: string;
29
- created_at: string;
30
- }
31
- export interface CommHubEvents {
32
- task: (msg: InboxMessage) => void;
33
- message: (msg: InboxMessage) => void;
34
- connected: () => void;
35
- disconnected: () => void;
36
- error: (err: Error) => void;
37
- }
38
- export declare class CommHub extends EventEmitter {
39
- private url;
40
- private alias;
41
- private token?;
42
- private agent;
43
- private resumeId;
44
- private heartbeatInterval;
45
- private reconnectDelay;
46
- private heartbeatTimer?;
47
- private sseAbort?;
48
- private running;
49
- constructor(opts: CommHubOptions);
50
- private log;
51
- private call;
52
- /** Connect to CommHub: register + start SSE + heartbeat */
53
- connect(): Promise<void>;
54
- /** Disconnect: stop SSE + heartbeat, report offline */
55
- disconnect(): Promise<void>;
56
- /** Send a task to another session */
57
- send(targetAlias: string, content: string, priority?: "high" | "normal" | "low"): Promise<any>;
58
- /** Send a message (no task lifecycle) */
59
- message(targetAlias: string, content: string): Promise<any>;
60
- /** Reply to a task (update status) */
61
- reply(taskId: string, text: string, status?: "completed" | "blocked" | "error" | "in_progress"): Promise<any>;
62
- /** Update session status */
63
- status(state: string, extra?: {
64
- task?: string;
65
- progress?: number;
66
- }): Promise<any>;
67
- /** Get all session statuses */
68
- getAllStatus(): Promise<any>;
69
- /** Broadcast to all sessions */
70
- broadcast(content: string, filter?: {
71
- server?: string;
72
- status?: string;
73
- }): Promise<any>;
74
- private connectSSE;
75
- private processInbox;
76
- private sleep;
77
- }
78
- export default CommHub;