@sleep2agi/agent-network 2.3.0-preview.148 → 2.3.0-preview.149
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.
package/dist/src/client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x3bd68e=a0_0x43bb;(function(_0x55b080,_0x3c750e){const _0x2acc5d=a0_0x43bb,_0x4f107e=_0x55b080();while(!![]){try{const _0x3a9ddf=-parseInt(_0x2acc5d(0x16d))/0x1*(parseInt(_0x2acc5d(0x15a))/0x2)+-parseInt(_0x2acc5d(0x16c))/0x3*(parseInt(_0x2acc5d(0x18f))/0x4)+-parseInt(_0x2acc5d(0x165))/0x5*(-parseInt(_0x2acc5d(0x17a))/0x6)+parseInt(_0x2acc5d(0x194))/0x7*(parseInt(_0x2acc5d(0x15b))/0x8)+parseInt(_0x2acc5d(0x158))/0x9+-parseInt(_0x2acc5d(0x134))/0xa*(-parseInt(_0x2acc5d(0x13c))/0xb)+parseInt(_0x2acc5d(0x191))/0xc;if(_0x3a9ddf===_0x3c750e)break;else _0x4f107e['push'](_0x4f107e['shift']());}catch(_0x4ebdb1){_0x4f107e['push'](_0x4f107e['shift']());}}}(a0_0x883b,0xdb0dc));import{EventEmitter as a0_0x191b82}from'events';import{hostname as a0_0x515ed3}from'os';var K=/(?:atok|ntok|utok|ghp|github_pat)_[A-Za-z0-9_-]+|Bearer\s+\S+/gi,L=(_0x2be728,_0x3719c3)=>(_0x2be728??_0x3719c3)[a0_0x3bd68e(0x133)](/[\r\n\x00-\x1f\x7f]/g,'\x20')[a0_0x3bd68e(0x16a)](0x0,0xf0);function N(_0x361aa2){const _0x472f86=a0_0x3bd68e;return(_0x361aa2 instanceof Error?_0x361aa2[_0x472f86(0x150)]:String(_0x361aa2??_0x472f86(0x187)))['replace'](K,_0x472f86(0x175))['replace'](/[\r\n\x00-\x1f\x7f]/g,'\x20')[_0x472f86(0x16a)](0x0,0xf0);}function O(_0x26321d,_0x3d1c41=process.env.ANET_TASK_TRACE_FORMAT===a0_0x3bd68e(0x137)){const _0x3491c9=a0_0x3bd68e;if(_0x3d1c41)return JSON['stringify'](_0x26321d);let _0x4b1eba=L(_0x26321d[_0x3491c9(0x18a)],'<missing>'),_0x15fc01=L(_0x26321d[_0x3491c9(0x193)],_0x3491c9(0x12b)),_0x24bbf5=_0x26321d['error_code']?_0x3491c9(0x181)+_0x26321d[_0x3491c9(0x16b)]+':'+(_0x26321d[_0x3491c9(0x164)]??''):'';return'[commhub:task]\x20'+_0x26321d['status']+'\x20from='+L(_0x26321d[_0x3491c9(0x168)],'<unknown>')+_0x3491c9(0x12c)+L(_0x26321d[_0x3491c9(0x12a)],_0x3491c9(0x176))+_0x3491c9(0x174)+_0x15fc01+_0x3491c9(0x146)+_0x4b1eba+_0x3491c9(0x116)+L(_0x26321d[_0x3491c9(0x13f)],_0x3491c9(0x176))+_0x3491c9(0x17f)+_0x26321d[_0x3491c9(0x154)]+_0x3491c9(0x15c)+_0x26321d[_0x3491c9(0x16e)]+'\x20lifecycle='+_0x26321d[_0x3491c9(0x153)]+_0x24bbf5;}function U(_0x12e76d){const _0x31f423=a0_0x3bd68e;return{'event':{'sending':_0x31f423(0x110),'delivered':_0x31f423(0x114),'failed':_0x31f423(0x11c),'acked':_0x31f423(0x186),'started':_0x31f423(0x132),'replied':_0x31f423(0x151),'expired':'task.expired'}[_0x12e76d[_0x31f423(0x185)]],..._0x12e76d};}function j(_0x38ffee){const _0x2a3c8f=a0_0x3bd68e;let _0x4a3100=_0x38ffee?.[_0x2a3c8f(0x193)]||_0x38ffee?.['message_id']||_0x38ffee?.['id'];if(_0x4a3100)return String(_0x4a3100);let _0x503927=_0x38ffee?.[_0x2a3c8f(0x184)]?.[0x0]?.[_0x2a3c8f(0x15f)];if(typeof _0x503927!==_0x2a3c8f(0x15e))return null;try{let _0x5110a0=JSON[_0x2a3c8f(0x183)](_0x503927);return _0x5110a0?.[_0x2a3c8f(0x193)]||_0x5110a0?.[_0x2a3c8f(0x119)]||_0x5110a0?.['id']||null;}catch{return null;}}async function X(_0x26f5b9,_0x793dd9){const _0x31933a=a0_0x3bd68e;let _0x21634a=_0x793dd9[_0x31933a(0x171)]??Date[_0x31933a(0x171)],_0x3aae7c=_0x21634a(),_0x7444d5=(_0x190109,_0x1615df,_0x365e2c,_0x565367)=>{const _0x2e422a=_0x31933a;_0x793dd9[_0x2e422a(0x14c)](O(U({'from_alias':_0x26f5b9[_0x2e422a(0x14d)],'to_alias':_0x26f5b9[_0x2e422a(0x139)],'task_id':_0x1615df,'parent_task_id':_0x26f5b9['parentTaskId'],'network_id':_0x26f5b9[_0x2e422a(0x129)],'transport':_0x26f5b9[_0x2e422a(0x154)],'status':_0x190109,'duration_ms':_0x21634a()-_0x3aae7c,'lifecycle_tracking':_0x26f5b9[_0x2e422a(0x11a)],..._0x365e2c!==void 0x0?{'error_code':_0x565367||_0x2e422a(0x14f),'error_message':N(_0x365e2c)}:{}})));};_0x7444d5(_0x31933a(0x167),null);try{let _0x499176=await _0x793dd9[_0x31933a(0x122)](),_0x2a9369=j(_0x499176);if(_0x2a9369)_0x7444d5(_0x31933a(0x12f),_0x2a9369);else{if(_0x499176?.['ok']===!0x1||_0x499176?.[_0x31933a(0x189)])_0x7444d5(_0x31933a(0x15d),_0x2a9369,_0x499176?.[_0x31933a(0x189)]||'CommHub\x20rejected\x20task','send_rejected');else _0x7444d5(_0x31933a(0x15d),null,_0x31933a(0x162),_0x31933a(0x121));}return _0x499176;}catch(_0xca7cf4){throw _0x7444d5(_0x31933a(0x15d),null,_0xca7cf4,_0x31933a(0x14f)),_0xca7cf4;}}function a0_0x43bb(_0x165e7a,_0x1935ac){_0x165e7a=_0x165e7a-0x110;const _0x883bdb=a0_0x883b();let _0x43bbe5=_0x883bdb[_0x165e7a];return _0x43bbe5;}async function Y(_0x100b5e,_0x17f64d){const _0x5d88cf=a0_0x3bd68e;return X({'fromAlias':_0x100b5e[_0x5d88cf(0x14d)],'toAlias':_0x100b5e[_0x5d88cf(0x113)],'parentTaskId':_0x100b5e[_0x5d88cf(0x124)]||null,'networkId':_0x100b5e['networkId']||null,'transport':'mcp_http','lifecycleTracking':_0x5d88cf(0x156)},_0x17f64d);}class $ extends a0_0x191b82{['url'];[a0_0x3bd68e(0x113)];[a0_0x3bd68e(0x138)];['agent'];[a0_0x3bd68e(0x182)];[a0_0x3bd68e(0x128)];[a0_0x3bd68e(0x16f)];[a0_0x3bd68e(0x177)];[a0_0x3bd68e(0x13e)];['running']=!0x1;constructor(_0x37c6a9){const _0x4848a1=a0_0x3bd68e;super();if(this[_0x4848a1(0x155)]=_0x37c6a9['url'][_0x4848a1(0x133)](/\/$/,''),this[_0x4848a1(0x113)]=_0x37c6a9[_0x4848a1(0x113)],this[_0x4848a1(0x138)]=_0x37c6a9[_0x4848a1(0x138)],this[_0x4848a1(0x144)]=_0x37c6a9['agent']||_0x4848a1(0x125),this[_0x4848a1(0x182)]=_0x4848a1(0x18e)+_0x37c6a9[_0x4848a1(0x113)]+'-'+Date[_0x4848a1(0x171)]()[_0x4848a1(0x118)](0x24),this[_0x4848a1(0x128)]=_0x37c6a9[_0x4848a1(0x128)]??0x2bf20,this[_0x4848a1(0x16f)]=_0x37c6a9[_0x4848a1(0x16f)]??0xbb8,_0x37c6a9['autoConnect']!==!0x1)this[_0x4848a1(0x148)]();}['log'](_0x3b0214){const _0x5b694d=a0_0x3bd68e;console[_0x5b694d(0x14c)]('['+new Date()[_0x5b694d(0x195)]()['slice'](0x0,0x8)+_0x5b694d(0x111)+this['alias']+']\x20'+_0x3b0214);}async[a0_0x3bd68e(0x166)](_0x1acf07,_0x4560fe){const _0x372ffe=a0_0x3bd68e;let _0x284243={'Content-Type':_0x372ffe(0x157),'Accept':_0x372ffe(0x142)};if(this[_0x372ffe(0x138)])_0x284243['Authorization']='Bearer\x20'+this[_0x372ffe(0x138)];let _0x1ae88e=await(await fetch(this[_0x372ffe(0x155)]+_0x372ffe(0x18d),{'method':_0x372ffe(0x120),'headers':_0x284243,'body':JSON['stringify']({'jsonrpc':_0x372ffe(0x14b),'id':Date['now'](),'method':'tools/call','params':{'name':_0x1acf07,'arguments':_0x4560fe}})}))[_0x372ffe(0x15f)](),_0x4dc8f8=_0x1ae88e[_0x372ffe(0x145)](/data: (.+)/),_0x2eefb1=_0x4dc8f8?JSON['parse'](_0x4dc8f8[0x1]):JSON[_0x372ffe(0x183)](_0x1ae88e),_0x488095=_0x2eefb1?.[_0x372ffe(0x17b)]?.[_0x372ffe(0x184)]?.[0x0]?.[_0x372ffe(0x15f)];return _0x488095?JSON[_0x372ffe(0x183)](_0x488095):_0x2eefb1;}async[a0_0x3bd68e(0x148)](){const _0x2e5e09=a0_0x3bd68e;if(this[_0x2e5e09(0x14a)])return;this[_0x2e5e09(0x14a)]=!0x0,await this[_0x2e5e09(0x185)](_0x2e5e09(0x117)),this[_0x2e5e09(0x14c)](_0x2e5e09(0x17e)),this[_0x2e5e09(0x177)]=setInterval(()=>{const _0x1799d2=_0x2e5e09;this[_0x1799d2(0x185)](_0x1799d2(0x117))[_0x1799d2(0x13a)](_0x18f609=>this[_0x1799d2(0x14c)](_0x1799d2(0x140)+_0x18f609[_0x1799d2(0x150)]));},this[_0x2e5e09(0x128)]),this[_0x2e5e09(0x131)]();}async['disconnect'](){const _0x34e944=a0_0x3bd68e;if(this['running']=!0x1,this['sseAbort']?.[_0x34e944(0x161)](),this[_0x34e944(0x177)])clearInterval(this[_0x34e944(0x177)]);await this['status']('offline')[_0x34e944(0x13a)](()=>{}),this[_0x34e944(0x14c)](_0x34e944(0x14e));}async[a0_0x3bd68e(0x122)](_0x8a5868,_0x35f5e0,_0x1a4b23=a0_0x3bd68e(0x135)){const _0xbbf727=a0_0x3bd68e;return Y({'alias':_0x8a5868,'fromAlias':this['alias']},{'log':_0x2dac5f=>console[_0xbbf727(0x14c)](_0x2dac5f),'send':()=>this[_0xbbf727(0x166)](_0xbbf727(0x172),{'alias':_0x8a5868,'task':_0x35f5e0,'priority':_0x1a4b23,'from_session':this[_0xbbf727(0x113)]})});}async[a0_0x3bd68e(0x150)](_0x424f49,_0x446a81){const _0x3fc1d0=a0_0x3bd68e;return this[_0x3fc1d0(0x166)](_0x3fc1d0(0x11b),{'alias':_0x424f49,'message':_0x446a81,'from_session':this['alias']});}async[a0_0x3bd68e(0x130)](_0x2236db,_0x28cc40,_0x5801dc=a0_0x3bd68e(0x163)){const _0x2d6b74=a0_0x3bd68e;return this[_0x2d6b74(0x166)](_0x2d6b74(0x112),{'in_reply_to':_0x2236db,'text':_0x28cc40,'status':_0x5801dc});}async[a0_0x3bd68e(0x185)](_0x481d9f,_0x2ec3d4){const _0x535064=a0_0x3bd68e;return this[_0x535064(0x166)](_0x535064(0x18c),{'resume_id':this[_0x535064(0x182)],'alias':this[_0x535064(0x113)],'status':_0x481d9f,'server':a0_0x515ed3(),'hostname':a0_0x515ed3(),'agent':this[_0x535064(0x144)],'project_dir':process[_0x535064(0x11d)](),..._0x2ec3d4});}async[a0_0x3bd68e(0x141)](){const _0x3949a3=a0_0x3bd68e;return this['call'](_0x3949a3(0x170),{});}async[a0_0x3bd68e(0x13d)](_0x15f226,_0x4bcf33){const _0x2c1c86=a0_0x3bd68e;return this[_0x2c1c86(0x166)](_0x2c1c86(0x13d),{'message':_0x15f226,'filter_server':_0x4bcf33?.[_0x2c1c86(0x173)],'filter_status':_0x4bcf33?.[_0x2c1c86(0x185)]});}async[a0_0x3bd68e(0x131)](){const _0x5ec2dd=a0_0x3bd68e;let _0x13765a=encodeURIComponent(this['alias']),_0x204f20=this[_0x5ec2dd(0x155)]+_0x5ec2dd(0x18b)+_0x13765a,_0x3c060a=this['reconnectDelay'];while(this[_0x5ec2dd(0x14a)]){try{this[_0x5ec2dd(0x13e)]=new AbortController();let _0x21d69e={'Accept':_0x5ec2dd(0x179)};if(this['token'])_0x21d69e['Authorization']=_0x5ec2dd(0x13b)+this[_0x5ec2dd(0x138)];let _0x32be43=await fetch(_0x204f20,{'headers':_0x21d69e,'signal':this[_0x5ec2dd(0x13e)]['signal']});if(!_0x32be43['ok']||!_0x32be43['body']){this[_0x5ec2dd(0x14c)](_0x5ec2dd(0x127)+_0x32be43[_0x5ec2dd(0x185)]),await this[_0x5ec2dd(0x149)](_0x3c060a),_0x3c060a=Math[_0x5ec2dd(0x136)](_0x3c060a*1.5,0xea60);continue;}_0x3c060a=this[_0x5ec2dd(0x16f)];let _0x45f7e7=_0x32be43[_0x5ec2dd(0x17d)]['getReader'](),_0x3927ef=new TextDecoder(),_0x142b78='';while(this[_0x5ec2dd(0x14a)]){let {done:_0x723db2,value:_0x47fadd}=await _0x45f7e7[_0x5ec2dd(0x17c)]();if(_0x723db2)break;_0x142b78+=_0x3927ef[_0x5ec2dd(0x115)](_0x47fadd,{'stream':!0x0});let _0x4be443=_0x142b78[_0x5ec2dd(0x11f)]('\x0a');_0x142b78=_0x4be443[_0x5ec2dd(0x126)]()||'';for(let _0x460792 of _0x4be443){if(!_0x460792[_0x5ec2dd(0x11e)](_0x5ec2dd(0x143)))continue;try{let _0x462f7e=JSON[_0x5ec2dd(0x183)](_0x460792[_0x5ec2dd(0x16a)](0x6));if(_0x462f7e[_0x5ec2dd(0x12d)]===_0x5ec2dd(0x169)){this['log'](_0x5ec2dd(0x147)),this[_0x5ec2dd(0x159)](_0x5ec2dd(0x169));continue;}if(_0x462f7e['type']===_0x5ec2dd(0x192)||_0x462f7e[_0x5ec2dd(0x12d)]===_0x5ec2dd(0x12e)||_0x462f7e[_0x5ec2dd(0x12d)]===_0x5ec2dd(0x13d))await this[_0x5ec2dd(0x180)]();}catch{}}}}catch(_0x7ae304){if(_0x7ae304[_0x5ec2dd(0x123)]==='AbortError')break;this[_0x5ec2dd(0x159)](_0x5ec2dd(0x189),_0x7ae304),this['log']('SSE\x20error:\x20'+_0x7ae304[_0x5ec2dd(0x150)]);}if(this[_0x5ec2dd(0x14a)])this[_0x5ec2dd(0x159)](_0x5ec2dd(0x14e)),this[_0x5ec2dd(0x14c)]('SSE\x20reconnecting\x20in\x20'+_0x3c060a/0x3e8+'s...'),await this['sleep'](_0x3c060a),_0x3c060a=Math['min'](_0x3c060a*1.5,0xea60);}}async[a0_0x3bd68e(0x180)](){const _0xac4145=a0_0x3bd68e;try{let _0x1d57b3=(await this[_0xac4145(0x166)](_0xac4145(0x160),{'alias':this['alias'],'limit':0xa}))?.[_0xac4145(0x188)]||[];for(let _0x2a5221 of _0x1d57b3)await this[_0xac4145(0x166)](_0xac4145(0x152),{'alias':this[_0xac4145(0x113)],'message_id':_0x2a5221['id']}),this['log']('←\x20'+_0x2a5221['from_session']+':\x20'+_0x2a5221['content'][_0xac4145(0x16a)](0x0,0x3c)),this[_0xac4145(0x159)](_0xac4145(0x190),_0x2a5221),this[_0xac4145(0x159)](_0xac4145(0x150),_0x2a5221);}catch(_0x3125ae){this['log'](_0xac4145(0x178)+_0x3125ae['message']);}}[a0_0x3bd68e(0x149)](_0x48fdc0){return new Promise(_0x398004=>setTimeout(_0x398004,_0x48fdc0));}}var F=$;export{F as default,$ as CommHub};function a0_0x883b(){const _0x8471c4=['lifecycleTracking','send_message','task.send.failed','cwd','startsWith','split','POST','missing_task_id','send','name','parentTaskId','sdk','pop','SSE\x20failed:\x20','heartbeatInterval','networkId','to_alias','<pending>','\x20to=','type','new_message','delivered','reply','connectSSE','task.started','replace','331060RiypDD','normal','min','json','token','toAlias','catch','Bearer\x20','539sZYboL','broadcast','sseAbort','network_id','heartbeat\x20failed:\x20','getAllStatus','application/json,\x20text/event-stream','data:\x20','agent','match','\x20parent_task_id=','SSE\x20connected','connect','sleep','running','2.0','log','fromAlias','disconnected','send_failed','message','task.replied','ack_inbox','lifecycle_tracking','transport','url','not_tracked','application/json','3521079jdzXAv','emit','30oCBnRY','26008MRKbbE','\x20duration_ms=','failed','string','text','get_inbox','abort','CommHub\x20response\x20omitted\x20task_id','completed','error_message','25DlQytG','call','sending','from_alias','connected','slice','error_code','3FgFJYV','34033yeVlCW','duration_ms','reconnectDelay','get_all_status','now','send_task','server','\x20task_id=','[REDACTED]','<unknown>','heartbeatTimer','inbox\x20error:\x20','text/event-stream','385818ZPaXot','result','read','body','registered','\x20transport=','processInbox','\x20error=','resumeId','parse','content','status','task.ack','unknown\x20error','messages','error','parent_task_id','/events/','report_status','/mcp','sdk-','6646344VSWBed','task','7213128ClpCUd','new_task','task_id','287rJYWlY','toTimeString','task.send.start',']\x20[commhub:','send_reply','alias','task.send.delivered','decode','\x20network_id=','idle','toString','message_id'];a0_0x883b=function(){return _0x8471c4;};return a0_0x883b();}
|
|
1
|
+
function a0_0x3675(){const _0x371deb=['message_id','split','\x20error=','get_inbox','reply','parentTaskId','\x20parent_task_id=','toTimeString','\x20from=','6337148fYQkjE','failed','task.send.delivered','reconnectDelay','heartbeatTimer','server','broadcast','networkId','text','body','34uoKUKI','min','message','task_id','12039752cPlxPj','send_reply','decode','unknown\x20error','CommHub\x20rejected\x20task','new_task','messages','11731368zeAsKv','/mcp','heartbeatInterval','3cbVPAU','match','send','/events/','connected','processInbox','from_session','toString','disconnect','connect','offline','POST','token','from_alias','<unknown>','send_failed','sdk-','running','url','content','\x20task_id=','application/json,\x20text/event-stream','lifecycle_tracking','Authorization','4370715vupuSl','signal','sending','11334idaelU','disconnected','\x20to=','to_alias','data:\x20','15415719akgszp','task.expired','text/event-stream','sleep','autoConnect','SSE\x20connected','registered','6jBwBYd','lifecycleTracking','status','delivered','ack_inbox','replace','task','task.send.failed','string','task.send.start','idle','report_status','sseAbort','\x20duration_ms=','[commhub:task]\x20','catch','\x20lifecycle=','not_tracked','alias','send_rejected','now','slice','AbortError','heartbeat\x20failed:\x20','error_code',']\x20[commhub:','log','task.replied','application/json','resumeId','sdk','connectSSE','12154390mbFamy','pop','inbox\x20error:\x20','stringify','task.ack','error','7XzNIKL','result','send_message','Bearer\x20','new_message','9DdTNZA','normal','completed','missing_task_id','name','parse','call','CommHub\x20response\x20omitted\x20task_id','s...','emit','fromAlias','agent','SSE\x20error:\x20','tools/call','getAllStatus','type'];a0_0x3675=function(){return _0x371deb;};return a0_0x3675();}const a0_0x51d83a=a0_0x588e;function a0_0x588e(_0x7eaa63,_0x1f9e80){_0x7eaa63=_0x7eaa63-0x1ba;const _0x3675fc=a0_0x3675();let _0x588e74=_0x3675fc[_0x7eaa63];return _0x588e74;}(function(_0x55c852,_0x3502ce){const _0x4d3965=a0_0x588e,_0x59ba58=_0x55c852();while(!![]){try{const _0xc58cce=-parseInt(_0x4d3965(0x1c8))/0x1*(-parseInt(_0x4d3965(0x1f1))/0x2)+parseInt(_0x4d3965(0x1d6))/0x3*(-parseInt(_0x4d3965(0x1be))/0x4)+-parseInt(_0x4d3965(0x1ee))/0x5*(parseInt(_0x4d3965(0x1fd))/0x6)+-parseInt(_0x4d3965(0x223))/0x7*(-parseInt(_0x4d3965(0x1cc))/0x8)+-parseInt(_0x4d3965(0x228))/0x9*(-parseInt(_0x4d3965(0x21d))/0xa)+parseInt(_0x4d3965(0x1f6))/0xb+-parseInt(_0x4d3965(0x1d3))/0xc;if(_0xc58cce===_0x3502ce)break;else _0x59ba58['push'](_0x59ba58['shift']());}catch(_0x576bf9){_0x59ba58['push'](_0x59ba58['shift']());}}}(a0_0x3675,0xd6787));import{EventEmitter as a0_0x529cfb}from'events';import{hostname as a0_0x4f2d5f}from'os';var K=/(?:atok|ntok|utok|ghp|github_pat)_[A-Za-z0-9_-]+|Bearer\s+\S+/gi,L=(_0x1fa3d5,_0x4b553f)=>(_0x1fa3d5??_0x4b553f)['replace'](/[\r\n\x00-\x1f\x7f]/g,'\x20')[a0_0x51d83a(0x212)](0x0,0xf0);function N(_0x66d9e0){const _0x22832f=a0_0x51d83a;return(_0x66d9e0 instanceof Error?_0x66d9e0[_0x22832f(0x1ca)]:String(_0x66d9e0??_0x22832f(0x1cf)))[_0x22832f(0x202)](K,'[REDACTED]')[_0x22832f(0x202)](/[\r\n\x00-\x1f\x7f]/g,'\x20')['slice'](0x0,0xf0);}function O(_0x2f1d5a,_0x1f3eb5=process.env.ANET_TASK_TRACE_FORMAT==='json'){const _0x470d3c=a0_0x51d83a;if(_0x1f3eb5)return JSON[_0x470d3c(0x220)](_0x2f1d5a);let _0xd09cad=L(_0x2f1d5a['parent_task_id'],'<missing>'),_0x447384=L(_0x2f1d5a[_0x470d3c(0x1cb)],'<pending>'),_0x3a1c96=_0x2f1d5a[_0x470d3c(0x215)]?_0x470d3c(0x23a)+_0x2f1d5a[_0x470d3c(0x215)]+':'+(_0x2f1d5a['error_message']??''):'';return _0x470d3c(0x20b)+_0x2f1d5a['status']+_0x470d3c(0x1bd)+L(_0x2f1d5a[_0x470d3c(0x1e3)],'<unknown>')+_0x470d3c(0x1f3)+L(_0x2f1d5a[_0x470d3c(0x1f4)],_0x470d3c(0x1e4))+_0x470d3c(0x1ea)+_0x447384+_0x470d3c(0x1bb)+_0xd09cad+'\x20network_id='+L(_0x2f1d5a['network_id'],_0x470d3c(0x1e4))+'\x20transport='+_0x2f1d5a['transport']+_0x470d3c(0x20a)+_0x2f1d5a['duration_ms']+_0x470d3c(0x20d)+_0x2f1d5a[_0x470d3c(0x1ec)]+_0x3a1c96;}function U(_0x4a5a83){const _0x42e61d=a0_0x51d83a;return{'event':{'sending':_0x42e61d(0x206),'delivered':_0x42e61d(0x1c0),'failed':_0x42e61d(0x204),'acked':_0x42e61d(0x221),'started':'task.started','replied':_0x42e61d(0x218),'expired':_0x42e61d(0x1f7)}[_0x4a5a83[_0x42e61d(0x1ff)]],..._0x4a5a83};}function j(_0x271d6f){const _0x215f7c=a0_0x51d83a;let _0x56c559=_0x271d6f?.['task_id']||_0x271d6f?.[_0x215f7c(0x238)]||_0x271d6f?.['id'];if(_0x56c559)return String(_0x56c559);let _0x11b435=_0x271d6f?.[_0x215f7c(0x1e9)]?.[0x0]?.[_0x215f7c(0x1c6)];if(typeof _0x11b435!==_0x215f7c(0x205))return null;try{let _0x237ea5=JSON[_0x215f7c(0x22d)](_0x11b435);return _0x237ea5?.[_0x215f7c(0x1cb)]||_0x237ea5?.['message_id']||_0x237ea5?.['id']||null;}catch{return null;}}async function X(_0x32193f,_0x5f4a93){const _0x341e4e=a0_0x51d83a;let _0x228343=_0x5f4a93[_0x341e4e(0x211)]??Date[_0x341e4e(0x211)],_0x4f41b7=_0x228343(),_0x1e9fe7=(_0x341709,_0x13bd07,_0x13746a,_0x4dfc7e)=>{const _0x4447e6=_0x341e4e;_0x5f4a93['log'](O(U({'from_alias':_0x32193f[_0x4447e6(0x232)],'to_alias':_0x32193f['toAlias'],'task_id':_0x13bd07,'parent_task_id':_0x32193f['parentTaskId'],'network_id':_0x32193f[_0x4447e6(0x1c5)],'transport':_0x32193f['transport'],'status':_0x341709,'duration_ms':_0x228343()-_0x4f41b7,'lifecycle_tracking':_0x32193f[_0x4447e6(0x1fe)],..._0x13746a!==void 0x0?{'error_code':_0x4dfc7e||_0x4447e6(0x1e5),'error_message':N(_0x13746a)}:{}})));};_0x1e9fe7(_0x341e4e(0x1f0),null);try{let _0x1b5400=await _0x5f4a93[_0x341e4e(0x1d8)](),_0x341a20=j(_0x1b5400);if(_0x341a20)_0x1e9fe7(_0x341e4e(0x200),_0x341a20);else{if(_0x1b5400?.['ok']===!0x1||_0x1b5400?.[_0x341e4e(0x222)])_0x1e9fe7(_0x341e4e(0x1bf),_0x341a20,_0x1b5400?.[_0x341e4e(0x222)]||_0x341e4e(0x1d0),_0x341e4e(0x210));else _0x1e9fe7(_0x341e4e(0x1bf),null,_0x341e4e(0x22f),_0x341e4e(0x22b));}return _0x1b5400;}catch(_0x5ac173){throw _0x1e9fe7(_0x341e4e(0x1bf),null,_0x5ac173,'send_failed'),_0x5ac173;}}async function Y(_0x4a1d5b,_0x1aeab6){const _0x4ed9dc=a0_0x51d83a;return X({'fromAlias':_0x4a1d5b[_0x4ed9dc(0x232)],'toAlias':_0x4a1d5b[_0x4ed9dc(0x20f)],'parentTaskId':_0x4a1d5b[_0x4ed9dc(0x1ba)]||null,'networkId':_0x4a1d5b[_0x4ed9dc(0x1c5)]||null,'transport':'mcp_http','lifecycleTracking':_0x4ed9dc(0x20e)},_0x1aeab6);}class $ extends a0_0x529cfb{[a0_0x51d83a(0x1e8)];[a0_0x51d83a(0x20f)];[a0_0x51d83a(0x1e2)];[a0_0x51d83a(0x233)];[a0_0x51d83a(0x21a)];[a0_0x51d83a(0x1d5)];['reconnectDelay'];['heartbeatTimer'];[a0_0x51d83a(0x209)];[a0_0x51d83a(0x1e7)]=!0x1;constructor(_0x52d2b0){const _0x1f9a71=a0_0x51d83a;super();if(this[_0x1f9a71(0x1e8)]=_0x52d2b0[_0x1f9a71(0x1e8)][_0x1f9a71(0x202)](/\/$/,''),this[_0x1f9a71(0x20f)]=_0x52d2b0[_0x1f9a71(0x20f)],this[_0x1f9a71(0x1e2)]=_0x52d2b0[_0x1f9a71(0x1e2)],this['agent']=_0x52d2b0[_0x1f9a71(0x233)]||_0x1f9a71(0x21b),this[_0x1f9a71(0x21a)]=_0x1f9a71(0x1e6)+_0x52d2b0[_0x1f9a71(0x20f)]+'-'+Date[_0x1f9a71(0x211)]()[_0x1f9a71(0x1dd)](0x24),this[_0x1f9a71(0x1d5)]=_0x52d2b0[_0x1f9a71(0x1d5)]??0x2bf20,this['reconnectDelay']=_0x52d2b0[_0x1f9a71(0x1c1)]??0xbb8,_0x52d2b0[_0x1f9a71(0x1fa)]!==!0x1)this[_0x1f9a71(0x1df)]();}['log'](_0x488ce3){const _0x501df2=a0_0x51d83a;console[_0x501df2(0x217)]('['+new Date()[_0x501df2(0x1bc)]()['slice'](0x0,0x8)+_0x501df2(0x216)+this[_0x501df2(0x20f)]+']\x20'+_0x488ce3);}async[a0_0x51d83a(0x22e)](_0x4ad6e0,_0x5ac58f){const _0xfc7ad9=a0_0x51d83a;let _0x8a441={'Content-Type':_0xfc7ad9(0x219),'Accept':_0xfc7ad9(0x1eb)};if(this['token'])_0x8a441[_0xfc7ad9(0x1ed)]=_0xfc7ad9(0x226)+this[_0xfc7ad9(0x1e2)];let _0x14b8e2=await(await fetch(this[_0xfc7ad9(0x1e8)]+_0xfc7ad9(0x1d4),{'method':_0xfc7ad9(0x1e1),'headers':_0x8a441,'body':JSON[_0xfc7ad9(0x220)]({'jsonrpc':'2.0','id':Date[_0xfc7ad9(0x211)](),'method':_0xfc7ad9(0x235),'params':{'name':_0x4ad6e0,'arguments':_0x5ac58f}})}))[_0xfc7ad9(0x1c6)](),_0x3f1eaf=_0x14b8e2[_0xfc7ad9(0x1d7)](/data: (.+)/),_0x3c3cc8=_0x3f1eaf?JSON[_0xfc7ad9(0x22d)](_0x3f1eaf[0x1]):JSON[_0xfc7ad9(0x22d)](_0x14b8e2),_0x30014b=_0x3c3cc8?.[_0xfc7ad9(0x224)]?.[_0xfc7ad9(0x1e9)]?.[0x0]?.[_0xfc7ad9(0x1c6)];return _0x30014b?JSON[_0xfc7ad9(0x22d)](_0x30014b):_0x3c3cc8;}async['connect'](){const _0x5a9383=a0_0x51d83a;if(this['running'])return;this['running']=!0x0,await this[_0x5a9383(0x1ff)](_0x5a9383(0x207)),this[_0x5a9383(0x217)](_0x5a9383(0x1fc)),this[_0x5a9383(0x1c2)]=setInterval(()=>{const _0x54296c=_0x5a9383;this[_0x54296c(0x1ff)]('idle')[_0x54296c(0x20c)](_0x3a6ee3=>this[_0x54296c(0x217)](_0x54296c(0x214)+_0x3a6ee3[_0x54296c(0x1ca)]));},this['heartbeatInterval']),this['connectSSE']();}async[a0_0x51d83a(0x1de)](){const _0x4232fb=a0_0x51d83a;if(this[_0x4232fb(0x1e7)]=!0x1,this[_0x4232fb(0x209)]?.['abort'](),this[_0x4232fb(0x1c2)])clearInterval(this['heartbeatTimer']);await this['status'](_0x4232fb(0x1e0))[_0x4232fb(0x20c)](()=>{}),this[_0x4232fb(0x217)](_0x4232fb(0x1f2));}async['send'](_0x1cacb0,_0x179665,_0x11ef36=a0_0x51d83a(0x229)){const _0x332bcd=a0_0x51d83a;return Y({'alias':_0x1cacb0,'fromAlias':this[_0x332bcd(0x20f)]},{'log':_0x473c63=>console[_0x332bcd(0x217)](_0x473c63),'send':()=>this[_0x332bcd(0x22e)]('send_task',{'alias':_0x1cacb0,'task':_0x179665,'priority':_0x11ef36,'from_session':this['alias']})});}async[a0_0x51d83a(0x1ca)](_0x4156af,_0x24468b){const _0x2a99af=a0_0x51d83a;return this[_0x2a99af(0x22e)](_0x2a99af(0x225),{'alias':_0x4156af,'message':_0x24468b,'from_session':this[_0x2a99af(0x20f)]});}async[a0_0x51d83a(0x23c)](_0xbcab94,_0x3c59bc,_0x1c8ae6=a0_0x51d83a(0x22a)){const _0x599da5=a0_0x51d83a;return this[_0x599da5(0x22e)](_0x599da5(0x1cd),{'in_reply_to':_0xbcab94,'text':_0x3c59bc,'status':_0x1c8ae6});}async['status'](_0x3c1177,_0x564423){const _0x2daf1c=a0_0x51d83a;return this[_0x2daf1c(0x22e)](_0x2daf1c(0x208),{'resume_id':this[_0x2daf1c(0x21a)],'alias':this[_0x2daf1c(0x20f)],'status':_0x3c1177,'server':a0_0x4f2d5f(),'hostname':a0_0x4f2d5f(),'agent':this['agent'],'project_dir':process['cwd'](),..._0x564423});}async[a0_0x51d83a(0x236)](){const _0x429b86=a0_0x51d83a;return this[_0x429b86(0x22e)]('get_all_status',{});}async[a0_0x51d83a(0x1c4)](_0x21c521,_0x401b14){const _0x43d12d=a0_0x51d83a;return this[_0x43d12d(0x22e)]('broadcast',{'message':_0x21c521,'filter_server':_0x401b14?.[_0x43d12d(0x1c3)],'filter_status':_0x401b14?.[_0x43d12d(0x1ff)]});}async[a0_0x51d83a(0x21c)](){const _0x5a7d77=a0_0x51d83a;let _0x1acd3a=encodeURIComponent(this[_0x5a7d77(0x20f)]),_0x18aca5=this[_0x5a7d77(0x1e8)]+_0x5a7d77(0x1d9)+_0x1acd3a,_0x5d2474=this[_0x5a7d77(0x1c1)];while(this['running']){try{this[_0x5a7d77(0x209)]=new AbortController();let _0x35373b={'Accept':_0x5a7d77(0x1f8)};if(this[_0x5a7d77(0x1e2)])_0x35373b[_0x5a7d77(0x1ed)]=_0x5a7d77(0x226)+this[_0x5a7d77(0x1e2)];let _0x5a804e=await fetch(_0x18aca5,{'headers':_0x35373b,'signal':this[_0x5a7d77(0x209)][_0x5a7d77(0x1ef)]});if(!_0x5a804e['ok']||!_0x5a804e['body']){this[_0x5a7d77(0x217)]('SSE\x20failed:\x20'+_0x5a804e['status']),await this[_0x5a7d77(0x1f9)](_0x5d2474),_0x5d2474=Math[_0x5a7d77(0x1c9)](_0x5d2474*1.5,0xea60);continue;}_0x5d2474=this['reconnectDelay'];let _0x469bc4=_0x5a804e[_0x5a7d77(0x1c7)]['getReader'](),_0x1d157c=new TextDecoder(),_0x57a5e5='';while(this[_0x5a7d77(0x1e7)]){let {done:_0xdce690,value:_0xafde70}=await _0x469bc4['read']();if(_0xdce690)break;_0x57a5e5+=_0x1d157c[_0x5a7d77(0x1ce)](_0xafde70,{'stream':!0x0});let _0x162783=_0x57a5e5[_0x5a7d77(0x239)]('\x0a');_0x57a5e5=_0x162783[_0x5a7d77(0x21e)]()||'';for(let _0x18a139 of _0x162783){if(!_0x18a139['startsWith'](_0x5a7d77(0x1f5)))continue;try{let _0x54e5e8=JSON[_0x5a7d77(0x22d)](_0x18a139[_0x5a7d77(0x212)](0x6));if(_0x54e5e8[_0x5a7d77(0x237)]===_0x5a7d77(0x1da)){this[_0x5a7d77(0x217)](_0x5a7d77(0x1fb)),this[_0x5a7d77(0x231)]('connected');continue;}if(_0x54e5e8[_0x5a7d77(0x237)]===_0x5a7d77(0x1d1)||_0x54e5e8[_0x5a7d77(0x237)]===_0x5a7d77(0x227)||_0x54e5e8['type']===_0x5a7d77(0x1c4))await this[_0x5a7d77(0x1db)]();}catch{}}}}catch(_0x596bba){if(_0x596bba[_0x5a7d77(0x22c)]===_0x5a7d77(0x213))break;this[_0x5a7d77(0x231)]('error',_0x596bba),this['log'](_0x5a7d77(0x234)+_0x596bba[_0x5a7d77(0x1ca)]);}if(this['running'])this[_0x5a7d77(0x231)]('disconnected'),this['log']('SSE\x20reconnecting\x20in\x20'+_0x5d2474/0x3e8+_0x5a7d77(0x230)),await this[_0x5a7d77(0x1f9)](_0x5d2474),_0x5d2474=Math[_0x5a7d77(0x1c9)](_0x5d2474*1.5,0xea60);}}async[a0_0x51d83a(0x1db)](){const _0x1d5f7c=a0_0x51d83a;try{let _0x2c73c1=(await this[_0x1d5f7c(0x22e)](_0x1d5f7c(0x23b),{'alias':this[_0x1d5f7c(0x20f)],'limit':0xa}))?.[_0x1d5f7c(0x1d2)]||[];for(let _0x1b136c of _0x2c73c1)await this[_0x1d5f7c(0x22e)](_0x1d5f7c(0x201),{'alias':this[_0x1d5f7c(0x20f)],'message_id':_0x1b136c['id']}),this[_0x1d5f7c(0x217)]('←\x20'+_0x1b136c[_0x1d5f7c(0x1dc)]+':\x20'+_0x1b136c[_0x1d5f7c(0x1e9)][_0x1d5f7c(0x212)](0x0,0x3c)),this[_0x1d5f7c(0x231)](_0x1d5f7c(0x203),_0x1b136c),this[_0x1d5f7c(0x231)]('message',_0x1b136c);}catch(_0x396f71){this['log'](_0x1d5f7c(0x21f)+_0x396f71[_0x1d5f7c(0x1ca)]);}}[a0_0x51d83a(0x1f9)](_0xf4a121){return new Promise(_0x2b68ef=>setTimeout(_0x2b68ef,_0xf4a121));}}var F=$;export{F as default,$ as CommHub};
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
export declare const EXTERNAL_APPSERVER_LAYOUT = "external-appserver";
|
|
2
|
+
/** Each node (app-server + TUI) measured at 1.5–2 GB; refuse below two nodes' worth. */
|
|
3
|
+
export declare const MIN_MEM_AVAILABLE_BYTES: number;
|
|
4
|
+
export declare const READYZ_TIMEOUT_MS = 30000;
|
|
5
|
+
export interface ExternalAppserverProfile {
|
|
6
|
+
runtime?: string;
|
|
7
|
+
codexAppServerUrl?: string;
|
|
8
|
+
codexThreadId?: string;
|
|
9
|
+
codexProjectDir?: string;
|
|
10
|
+
codexCopresence?: boolean;
|
|
11
|
+
codexLaunchLayout?: string;
|
|
12
|
+
codexBin?: string;
|
|
13
|
+
codexHome?: string;
|
|
14
|
+
model?: string;
|
|
15
|
+
env?: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
export interface ExternalAppserverSessions {
|
|
18
|
+
appsrv: string;
|
|
19
|
+
tui: string;
|
|
20
|
+
bridge: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function externalAppserverSessions(alias: string): ExternalAppserverSessions;
|
|
23
|
+
/** Bridge first, so nothing is left attached to a server that is going away. */
|
|
24
|
+
export declare function externalAppserverStopOrder(alias: string): string[];
|
|
25
|
+
/**
|
|
26
|
+
* Does this start/stop/restart take the external-app-server lane?
|
|
27
|
+
* `runtime` is the already-normalized runtime name.
|
|
28
|
+
*/
|
|
29
|
+
export declare function externalAppserverRequested(flagPassed: boolean, profile: ExternalAppserverProfile, runtime: string): boolean;
|
|
30
|
+
export interface ExternalAppserverPlan {
|
|
31
|
+
alias: string;
|
|
32
|
+
nodeDir: string;
|
|
33
|
+
configPath: string;
|
|
34
|
+
workspaceDir: string;
|
|
35
|
+
url: string;
|
|
36
|
+
host: string;
|
|
37
|
+
port: number;
|
|
38
|
+
readyzUrl: string;
|
|
39
|
+
projectDir: string;
|
|
40
|
+
/** True when config.codexProjectDir was empty and the workspace was used instead. */
|
|
41
|
+
projectDirFromWorkspace: boolean;
|
|
42
|
+
threadId: string;
|
|
43
|
+
model: string;
|
|
44
|
+
codexHome: string;
|
|
45
|
+
codexBin: string;
|
|
46
|
+
/** Start the `<alias>-tui` session (codexCopresence && codexThreadId). */
|
|
47
|
+
tui: boolean;
|
|
48
|
+
sessions: ExternalAppserverSessions;
|
|
49
|
+
}
|
|
50
|
+
export declare function planExternalAppserverNode(input: {
|
|
51
|
+
alias: string;
|
|
52
|
+
nodeDir: string;
|
|
53
|
+
workspaceDir: string;
|
|
54
|
+
profile: ExternalAppserverProfile;
|
|
55
|
+
}): {
|
|
56
|
+
ok: true;
|
|
57
|
+
plan: ExternalAppserverPlan;
|
|
58
|
+
} | {
|
|
59
|
+
ok: false;
|
|
60
|
+
error: string;
|
|
61
|
+
};
|
|
62
|
+
/** Names from `wanted` that exist in `existing` — compared as whole strings, never by tmux target rules. */
|
|
63
|
+
export declare function sessionsAlreadyPresent(existing: readonly string[], wanted: readonly string[]): string[];
|
|
64
|
+
/** `{id, name}` rows whose name equals one of `names` exactly, in the order of `names`. */
|
|
65
|
+
export declare function exactSessionRows(rows: readonly {
|
|
66
|
+
id: string;
|
|
67
|
+
name: string;
|
|
68
|
+
}[], names: readonly string[]): {
|
|
69
|
+
id: string;
|
|
70
|
+
name: string;
|
|
71
|
+
}[];
|
|
72
|
+
export declare function parseMemAvailableBytes(meminfo: string): number | null;
|
|
73
|
+
export declare function memoryVerdict(availableBytes: number | null, force: boolean): {
|
|
74
|
+
ok: boolean;
|
|
75
|
+
message: string;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Read the node token from config.json INSIDE the session shell, into the env.
|
|
79
|
+
* The value never appears in tmux's argv, the pane's start command, or any
|
|
80
|
+
* process's /proc/<pid>/cmdline — only the config path does.
|
|
81
|
+
*/
|
|
82
|
+
export declare function tokenInSessionSnippet(configPath: string, jsRuntime: string): string;
|
|
83
|
+
export declare function appserverShellCommand(plan: ExternalAppserverPlan, jsRuntime: string): string;
|
|
84
|
+
export declare function tuiShellCommand(plan: ExternalAppserverPlan): string;
|
|
85
|
+
export declare function bridgeShellCommand(plan: ExternalAppserverPlan, launch: {
|
|
86
|
+
command: string;
|
|
87
|
+
argsPrefix: readonly string[];
|
|
88
|
+
}): string;
|
|
89
|
+
export declare function bridgeLogPath(plan: {
|
|
90
|
+
nodeDir: string;
|
|
91
|
+
}): string;
|
|
92
|
+
export type ResumedVerdict = {
|
|
93
|
+
state: "match";
|
|
94
|
+
seen: string;
|
|
95
|
+
} | {
|
|
96
|
+
state: "mismatch";
|
|
97
|
+
seen: string;
|
|
98
|
+
} | {
|
|
99
|
+
state: "new-thread";
|
|
100
|
+
seen: string;
|
|
101
|
+
} | {
|
|
102
|
+
state: "not-seen";
|
|
103
|
+
} | {
|
|
104
|
+
state: "no-thread-configured";
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Did the bridge resume the configured thread? Reads only the log text written
|
|
108
|
+
* since this start. agent-node prints `[codex-app-server] resumed thread <12 chars>…`
|
|
109
|
+
* or `created thread <12 chars>…` (a silent new session). Registration alone
|
|
110
|
+
* proves nothing about which thread the node is on.
|
|
111
|
+
*/
|
|
112
|
+
export declare function resumedThreadVerdict(logText: string, threadId: string): ResumedVerdict;
|
|
113
|
+
/** True when something is already bound to host:port (a listen attempt fails). */
|
|
114
|
+
export declare function portBusy(host: string, port: number): Promise<boolean>;
|
|
115
|
+
/** Poll `/readyz` until it answers 200 or `timeoutMs` passes. */
|
|
116
|
+
export declare function waitForReadyz(url: string, timeoutMs?: number, intervalMs?: number): Promise<{
|
|
117
|
+
ok: boolean;
|
|
118
|
+
status: number;
|
|
119
|
+
waitedMs: number;
|
|
120
|
+
}>;
|