@sleep2agi/agent-network 2.3.0-preview.90 → 2.3.0-preview.92
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/bin/cli.js +2 -2
- package/dist/src/client.js +1 -1
- package/dist/src/copresence-identity.d.ts +14 -0
- package/dist/src/hub-health-timeout.d.ts +4 -0
- package/dist/src/node-server.js +7 -7
- package/dist/src/opencode-agent-node-pair.d.ts +2 -2
- package/dist/src/outbound-attachments.d.ts +3 -0
- package/dist/src/reply-local-links.d.ts +47 -0
- package/package.json +1 -1
package/dist/src/client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const a0_0x50df69=a0_0x6d08;(function(_0x31dedc,_0x58d114){const _0x29e3c0=a0_0x6d08,_0x16fb4f=_0x31dedc();while(!![]){try{const _0x1d2a7d=parseInt(_0x29e3c0(0x1c4))/0x1*(-parseInt(_0x29e3c0(0x1d0))/0x2)+-parseInt(_0x29e3c0(0x1d2))/0x3*(-parseInt(_0x29e3c0(0x1a8))/0x4)+parseInt(_0x29e3c0(0x1a0))/0x5+parseInt(_0x29e3c0(0x16b))/0x6+parseInt(_0x29e3c0(0x1c3))/0x7+-parseInt(_0x29e3c0(0x1b0))/0x8+-parseInt(_0x29e3c0(0x1ae))/0x9*(parseInt(_0x29e3c0(0x1da))/0xa);if(_0x1d2a7d===_0x58d114)break;else _0x16fb4f['push'](_0x16fb4f['shift']());}catch(_0x1b50af){_0x16fb4f['push'](_0x16fb4f['shift']());}}}(a0_0x5250,0x35a3c));function a0_0x6d08(_0x41486a,_0x42ad7c){_0x41486a=_0x41486a-0x15d;const _0x525039=a0_0x5250();let _0x6d08c9=_0x525039[_0x41486a];return _0x6d08c9;}import{EventEmitter as a0_0x522963}from'events';function a0_0x5250(){const _0x4159cb=['lifecycleTracking','token','\x20transport=','reply','cwd','<unknown>','1457034CqJdlj','getReader','POST','get_all_status','send_message','<pending>','pop','toAlias','Bearer\x20','messages','application/json','agent','error_message','sdk-','Authorization','sleep','/events/','mcp_http','send_reply','\x20duration_ms=','resumeId','\x20lifecycle=','match','\x20task_id=','parentTaskId','emit','heartbeatInterval','completed','duration_ms','SSE\x20failed:\x20','send','new_task','body','disconnected','message_id','heartbeat\x20failed:\x20','unknown\x20error','getAllStatus','application/json,\x20text/event-stream','connected','\x20from=','reconnectDelay','send_task','normal','s...','server','delivered','CommHub\x20response\x20omitted\x20task_id','message','stringify','error_code','[REDACTED]','parse','495785rseDXk','get_inbox','type','url','<missing>','disconnect','tools/call','sdk','5316VIntJT','task.send.failed','error','json',']\x20[commhub:','not_tracked','9tzykLE','SSE\x20connected','2293328JJAHwR','fromAlias','processInbox','SSE\x20reconnecting\x20in\x20','\x20to=','lifecycle_tracking','task.send.delivered','transport','\x20parent_task_id=','task_id','catch','failed','sseAbort','task.ack','min','content','call','alias','/mcp','1398845gJPrQQ','1sMyzmX','offline','startsWith','task.replied','data:\x20','parent_task_id','toTimeString','missing_task_id','heartbeatTimer','log','status','split','397778CRkVvl','now','957XDNPzz','slice','\x20error=','connect','autoConnect','send_rejected','idle','to_alias','2605190OHdgkD','replace','\x20network_id=','text','task','running','network_id','string','networkId','connectSSE','send_failed'];a0_0x5250=function(){return _0x4159cb;};return a0_0x5250();}import{hostname as a0_0x21b1e0}from'os';var K=/(?:atok|ntok|utok|ghp|github_pat)_[A-Za-z0-9_-]+|Bearer\s+\S+/gi,L=(_0x2ad2cb,_0x44ae8d)=>(_0x2ad2cb??_0x44ae8d)[a0_0x50df69(0x1db)](/[\r\n\x00-\x1f\x7f]/g,'\x20')['slice'](0x0,0xf0);function N(_0xb6c746){const _0x73a7b=a0_0x50df69;return(_0xb6c746 instanceof Error?_0xb6c746[_0x73a7b(0x19b)]:String(_0xb6c746??_0x73a7b(0x18f)))[_0x73a7b(0x1db)](K,_0x73a7b(0x19e))[_0x73a7b(0x1db)](/[\r\n\x00-\x1f\x7f]/g,'\x20')[_0x73a7b(0x1d3)](0x0,0xf0);}function O(_0x491582,_0xbe8889=process.env.ANET_TASK_TRACE_FORMAT===a0_0x50df69(0x1ab)){const _0x5446ec=a0_0x50df69;if(_0xbe8889)return JSON['stringify'](_0x491582);let _0x483fea=L(_0x491582[_0x5446ec(0x1c9)],_0x5446ec(0x1a4)),_0x376ee3=L(_0x491582['task_id'],_0x5446ec(0x170)),_0x3ecec0=_0x491582[_0x5446ec(0x19d)]?_0x5446ec(0x1d4)+_0x491582[_0x5446ec(0x19d)]+':'+(_0x491582[_0x5446ec(0x177)]??''):'';return'[commhub:task]\x20'+_0x491582[_0x5446ec(0x1ce)]+_0x5446ec(0x193)+L(_0x491582['from_alias'],_0x5446ec(0x16a))+_0x5446ec(0x1b4)+L(_0x491582[_0x5446ec(0x1d9)],_0x5446ec(0x16a))+_0x5446ec(0x182)+_0x376ee3+_0x5446ec(0x1b8)+_0x483fea+_0x5446ec(0x1dc)+L(_0x491582[_0x5446ec(0x160)],_0x5446ec(0x16a))+_0x5446ec(0x167)+_0x491582['transport']+_0x5446ec(0x17e)+_0x491582[_0x5446ec(0x187)]+_0x5446ec(0x180)+_0x491582[_0x5446ec(0x1b5)]+_0x3ecec0;}function U(_0x1c9827){const _0x2694d2=a0_0x50df69;return{'event':{'sending':'task.send.start','delivered':_0x2694d2(0x1b6),'failed':_0x2694d2(0x1a9),'acked':_0x2694d2(0x1bd),'started':'task.started','replied':_0x2694d2(0x1c7),'expired':'task.expired'}[_0x1c9827[_0x2694d2(0x1ce)]],..._0x1c9827};}function j(_0x4a8db1){const _0x5199fa=a0_0x50df69;let _0x32a36e=_0x4a8db1?.[_0x5199fa(0x1b9)]||_0x4a8db1?.[_0x5199fa(0x18d)]||_0x4a8db1?.['id'];if(_0x32a36e)return String(_0x32a36e);let _0x16a0d1=_0x4a8db1?.[_0x5199fa(0x1bf)]?.[0x0]?.[_0x5199fa(0x15d)];if(typeof _0x16a0d1!==_0x5199fa(0x161))return null;try{let _0x522ec6=JSON[_0x5199fa(0x19f)](_0x16a0d1);return _0x522ec6?.[_0x5199fa(0x1b9)]||_0x522ec6?.[_0x5199fa(0x18d)]||_0x522ec6?.['id']||null;}catch{return null;}}async function X(_0x184542,_0x5a5a2d){const _0x208c13=a0_0x50df69;let _0x4d187a=_0x5a5a2d['now']??Date[_0x208c13(0x1d1)],_0x2df1b7=_0x4d187a(),_0x11e44f=(_0x40653f,_0x5d868a,_0x415f0b,_0x287a1c)=>{const _0x1f3b2a=_0x208c13;_0x5a5a2d[_0x1f3b2a(0x1cd)](O(U({'from_alias':_0x184542['fromAlias'],'to_alias':_0x184542[_0x1f3b2a(0x172)],'task_id':_0x5d868a,'parent_task_id':_0x184542[_0x1f3b2a(0x183)],'network_id':_0x184542['networkId'],'transport':_0x184542[_0x1f3b2a(0x1b7)],'status':_0x40653f,'duration_ms':_0x4d187a()-_0x2df1b7,'lifecycle_tracking':_0x184542[_0x1f3b2a(0x165)],..._0x415f0b!==void 0x0?{'error_code':_0x287a1c||_0x1f3b2a(0x164),'error_message':N(_0x415f0b)}:{}})));};_0x11e44f('sending',null);try{let _0x5b4f99=await _0x5a5a2d['send'](),_0x2e0ce8=j(_0x5b4f99);if(_0x2e0ce8)_0x11e44f(_0x208c13(0x199),_0x2e0ce8);else{if(_0x5b4f99?.['ok']===!0x1||_0x5b4f99?.[_0x208c13(0x1aa)])_0x11e44f('failed',_0x2e0ce8,_0x5b4f99?.[_0x208c13(0x1aa)]||'CommHub\x20rejected\x20task',_0x208c13(0x1d7));else _0x11e44f(_0x208c13(0x1bb),null,_0x208c13(0x19a),_0x208c13(0x1cb));}return _0x5b4f99;}catch(_0x43d20b){throw _0x11e44f(_0x208c13(0x1bb),null,_0x43d20b,_0x208c13(0x164)),_0x43d20b;}}async function Y(_0x37120d,_0x134c0c){const _0x1a2310=a0_0x50df69;return X({'fromAlias':_0x37120d[_0x1a2310(0x1b1)],'toAlias':_0x37120d[_0x1a2310(0x1c1)],'parentTaskId':_0x37120d[_0x1a2310(0x183)]||null,'networkId':_0x37120d[_0x1a2310(0x162)]||null,'transport':_0x1a2310(0x17c),'lifecycleTracking':_0x1a2310(0x1ad)},_0x134c0c);}class $ extends a0_0x522963{[a0_0x50df69(0x1a3)];['alias'];[a0_0x50df69(0x166)];[a0_0x50df69(0x176)];[a0_0x50df69(0x17f)];[a0_0x50df69(0x185)];[a0_0x50df69(0x194)];[a0_0x50df69(0x1cc)];[a0_0x50df69(0x1bc)];[a0_0x50df69(0x15f)]=!0x1;constructor(_0x1a8091){const _0x52b8ae=a0_0x50df69;super();if(this[_0x52b8ae(0x1a3)]=_0x1a8091[_0x52b8ae(0x1a3)][_0x52b8ae(0x1db)](/\/$/,''),this[_0x52b8ae(0x1c1)]=_0x1a8091[_0x52b8ae(0x1c1)],this[_0x52b8ae(0x166)]=_0x1a8091[_0x52b8ae(0x166)],this[_0x52b8ae(0x176)]=_0x1a8091['agent']||_0x52b8ae(0x1a7),this[_0x52b8ae(0x17f)]=_0x52b8ae(0x178)+_0x1a8091['alias']+'-'+Date['now']()['toString'](0x24),this[_0x52b8ae(0x185)]=_0x1a8091[_0x52b8ae(0x185)]??0x2bf20,this[_0x52b8ae(0x194)]=_0x1a8091[_0x52b8ae(0x194)]??0xbb8,_0x1a8091[_0x52b8ae(0x1d6)]!==!0x1)this[_0x52b8ae(0x1d5)]();}[a0_0x50df69(0x1cd)](_0x48a12b){const _0xc28632=a0_0x50df69;console[_0xc28632(0x1cd)]('['+new Date()[_0xc28632(0x1ca)]()[_0xc28632(0x1d3)](0x0,0x8)+_0xc28632(0x1ac)+this[_0xc28632(0x1c1)]+']\x20'+_0x48a12b);}async[a0_0x50df69(0x1c0)](_0x5e3876,_0x1bf066){const _0x16eec7=a0_0x50df69;let _0x4d30d6={'Content-Type':_0x16eec7(0x175),'Accept':_0x16eec7(0x191)};if(this['token'])_0x4d30d6[_0x16eec7(0x179)]=_0x16eec7(0x173)+this[_0x16eec7(0x166)];let _0x3daef6=await(await fetch(this[_0x16eec7(0x1a3)]+_0x16eec7(0x1c2),{'method':_0x16eec7(0x16d),'headers':_0x4d30d6,'body':JSON[_0x16eec7(0x19c)]({'jsonrpc':'2.0','id':Date[_0x16eec7(0x1d1)](),'method':_0x16eec7(0x1a6),'params':{'name':_0x5e3876,'arguments':_0x1bf066}})}))[_0x16eec7(0x15d)](),_0x5aabf2=_0x3daef6[_0x16eec7(0x181)](/data: (.+)/),_0xfd3606=_0x5aabf2?JSON[_0x16eec7(0x19f)](_0x5aabf2[0x1]):JSON[_0x16eec7(0x19f)](_0x3daef6),_0x49eec2=_0xfd3606?.['result']?.[_0x16eec7(0x1bf)]?.[0x0]?.['text'];return _0x49eec2?JSON[_0x16eec7(0x19f)](_0x49eec2):_0xfd3606;}async['connect'](){const _0x38a21f=a0_0x50df69;if(this[_0x38a21f(0x15f)])return;this[_0x38a21f(0x15f)]=!0x0,await this['status'](_0x38a21f(0x1d8)),this[_0x38a21f(0x1cd)]('registered'),this[_0x38a21f(0x1cc)]=setInterval(()=>{const _0x405b98=_0x38a21f;this[_0x405b98(0x1ce)](_0x405b98(0x1d8))[_0x405b98(0x1ba)](_0x58eb65=>this[_0x405b98(0x1cd)](_0x405b98(0x18e)+_0x58eb65[_0x405b98(0x19b)]));},this['heartbeatInterval']),this[_0x38a21f(0x163)]();}async[a0_0x50df69(0x1a5)](){const _0x58681b=a0_0x50df69;if(this['running']=!0x1,this['sseAbort']?.['abort'](),this[_0x58681b(0x1cc)])clearInterval(this[_0x58681b(0x1cc)]);await this[_0x58681b(0x1ce)](_0x58681b(0x1c5))[_0x58681b(0x1ba)](()=>{}),this[_0x58681b(0x1cd)]('disconnected');}async[a0_0x50df69(0x189)](_0x505321,_0x169084,_0x1b7eeb=a0_0x50df69(0x196)){const _0x1dbb6b=a0_0x50df69;return Y({'alias':_0x505321,'fromAlias':this[_0x1dbb6b(0x1c1)]},{'log':_0x22f647=>console[_0x1dbb6b(0x1cd)](_0x22f647),'send':()=>this[_0x1dbb6b(0x1c0)](_0x1dbb6b(0x195),{'alias':_0x505321,'task':_0x169084,'priority':_0x1b7eeb,'from_session':this[_0x1dbb6b(0x1c1)]})});}async[a0_0x50df69(0x19b)](_0x3e7b83,_0x3f59d9){const _0x2dadd6=a0_0x50df69;return this[_0x2dadd6(0x1c0)](_0x2dadd6(0x16f),{'alias':_0x3e7b83,'message':_0x3f59d9,'from_session':this[_0x2dadd6(0x1c1)]});}async[a0_0x50df69(0x168)](_0x31d5d0,_0x70a516,_0x2c415c=a0_0x50df69(0x186)){const _0x1c272a=a0_0x50df69;return this[_0x1c272a(0x1c0)](_0x1c272a(0x17d),{'in_reply_to':_0x31d5d0,'text':_0x70a516,'status':_0x2c415c});}async['status'](_0x2851b5,_0x5c729f){const _0x3cee08=a0_0x50df69;return this[_0x3cee08(0x1c0)]('report_status',{'resume_id':this[_0x3cee08(0x17f)],'alias':this[_0x3cee08(0x1c1)],'status':_0x2851b5,'server':a0_0x21b1e0(),'hostname':a0_0x21b1e0(),'agent':this[_0x3cee08(0x176)],'project_dir':process[_0x3cee08(0x169)](),..._0x5c729f});}async[a0_0x50df69(0x190)](){const _0x4f5444=a0_0x50df69;return this[_0x4f5444(0x1c0)](_0x4f5444(0x16e),{});}async['broadcast'](_0x3bdb2,_0x314cd5){const _0x39ee39=a0_0x50df69;return this['call']('broadcast',{'message':_0x3bdb2,'filter_server':_0x314cd5?.[_0x39ee39(0x198)],'filter_status':_0x314cd5?.['status']});}async[a0_0x50df69(0x163)](){const _0x1576f9=a0_0x50df69;let _0x4192de=encodeURIComponent(this[_0x1576f9(0x1c1)]),_0x1688c3=this[_0x1576f9(0x1a3)]+_0x1576f9(0x17b)+_0x4192de,_0x567e55=this[_0x1576f9(0x194)];while(this[_0x1576f9(0x15f)]){try{this[_0x1576f9(0x1bc)]=new AbortController();let _0x1ff880={'Accept':'text/event-stream'};if(this[_0x1576f9(0x166)])_0x1ff880[_0x1576f9(0x179)]=_0x1576f9(0x173)+this[_0x1576f9(0x166)];let _0x42c074=await fetch(_0x1688c3,{'headers':_0x1ff880,'signal':this['sseAbort']['signal']});if(!_0x42c074['ok']||!_0x42c074[_0x1576f9(0x18b)]){this[_0x1576f9(0x1cd)](_0x1576f9(0x188)+_0x42c074[_0x1576f9(0x1ce)]),await this[_0x1576f9(0x17a)](_0x567e55),_0x567e55=Math[_0x1576f9(0x1be)](_0x567e55*1.5,0xea60);continue;}_0x567e55=this[_0x1576f9(0x194)];let _0xf34c41=_0x42c074['body'][_0x1576f9(0x16c)](),_0xa47661=new TextDecoder(),_0x367c07='';while(this['running']){let {done:_0x9b584e,value:_0x4aab12}=await _0xf34c41['read']();if(_0x9b584e)break;_0x367c07+=_0xa47661['decode'](_0x4aab12,{'stream':!0x0});let _0x33faf6=_0x367c07[_0x1576f9(0x1cf)]('\x0a');_0x367c07=_0x33faf6[_0x1576f9(0x171)]()||'';for(let _0x3ae793 of _0x33faf6){if(!_0x3ae793[_0x1576f9(0x1c6)](_0x1576f9(0x1c8)))continue;try{let _0x27fc14=JSON['parse'](_0x3ae793[_0x1576f9(0x1d3)](0x6));if(_0x27fc14[_0x1576f9(0x1a2)]===_0x1576f9(0x192)){this[_0x1576f9(0x1cd)](_0x1576f9(0x1af)),this['emit'](_0x1576f9(0x192));continue;}if(_0x27fc14['type']===_0x1576f9(0x18a)||_0x27fc14[_0x1576f9(0x1a2)]==='new_message'||_0x27fc14[_0x1576f9(0x1a2)]==='broadcast')await this[_0x1576f9(0x1b2)]();}catch{}}}}catch(_0x2d2c44){if(_0x2d2c44['name']==='AbortError')break;this['emit']('error',_0x2d2c44),this[_0x1576f9(0x1cd)]('SSE\x20error:\x20'+_0x2d2c44[_0x1576f9(0x19b)]);}if(this[_0x1576f9(0x15f)])this[_0x1576f9(0x184)](_0x1576f9(0x18c)),this['log'](_0x1576f9(0x1b3)+_0x567e55/0x3e8+_0x1576f9(0x197)),await this[_0x1576f9(0x17a)](_0x567e55),_0x567e55=Math[_0x1576f9(0x1be)](_0x567e55*1.5,0xea60);}}async[a0_0x50df69(0x1b2)](){const _0xdcacf9=a0_0x50df69;try{let _0x3b2f6a=(await this[_0xdcacf9(0x1c0)](_0xdcacf9(0x1a1),{'alias':this['alias'],'limit':0xa}))?.[_0xdcacf9(0x174)]||[];for(let _0x3eff35 of _0x3b2f6a)await this[_0xdcacf9(0x1c0)]('ack_inbox',{'alias':this['alias'],'message_id':_0x3eff35['id']}),this[_0xdcacf9(0x1cd)]('←\x20'+_0x3eff35['from_session']+':\x20'+_0x3eff35[_0xdcacf9(0x1bf)][_0xdcacf9(0x1d3)](0x0,0x3c)),this[_0xdcacf9(0x184)](_0xdcacf9(0x15e),_0x3eff35),this[_0xdcacf9(0x184)](_0xdcacf9(0x19b),_0x3eff35);}catch(_0x280555){this[_0xdcacf9(0x1cd)]('inbox\x20error:\x20'+_0x280555[_0xdcacf9(0x19b)]);}}['sleep'](_0x1c9c72){return new Promise(_0x5675d8=>setTimeout(_0x5675d8,_0x1c9c72));}}var F=$;export{F as default,$ as CommHub};
|
|
1
|
+
const a0_0x311e1a=a0_0x33e6;(function(_0x41ef6e,_0x27b81f){const _0x2784b6=a0_0x33e6,_0x3359=_0x41ef6e();while(!![]){try{const _0x494712=-parseInt(_0x2784b6(0x169))/0x1*(-parseInt(_0x2784b6(0x167))/0x2)+parseInt(_0x2784b6(0x1a5))/0x3*(parseInt(_0x2784b6(0x197))/0x4)+parseInt(_0x2784b6(0x189))/0x5*(parseInt(_0x2784b6(0x1a3))/0x6)+parseInt(_0x2784b6(0x148))/0x7+parseInt(_0x2784b6(0x1c0))/0x8+-parseInt(_0x2784b6(0x185))/0x9*(parseInt(_0x2784b6(0x182))/0xa)+parseInt(_0x2784b6(0x1b2))/0xb*(-parseInt(_0x2784b6(0x193))/0xc);if(_0x494712===_0x27b81f)break;else _0x3359['push'](_0x3359['shift']());}catch(_0x299023){_0x3359['push'](_0x3359['shift']());}}}(a0_0xcd86,0xaaf84));import{EventEmitter as a0_0x27b4d0}from'events';import{hostname as a0_0x31e9d4}from'os';var K=/(?:atok|ntok|utok|ghp|github_pat)_[A-Za-z0-9_-]+|Bearer\s+\S+/gi,L=(_0x4b86e4,_0x2a1bc2)=>(_0x4b86e4??_0x2a1bc2)[a0_0x311e1a(0x191)](/[\r\n\x00-\x1f\x7f]/g,'\x20')['slice'](0x0,0xf0);function N(_0x2fdcf0){const _0x1a0e58=a0_0x311e1a;return(_0x2fdcf0 instanceof Error?_0x2fdcf0['message']:String(_0x2fdcf0??_0x1a0e58(0x19b)))['replace'](K,_0x1a0e58(0x176))[_0x1a0e58(0x191)](/[\r\n\x00-\x1f\x7f]/g,'\x20')['slice'](0x0,0xf0);}function O(_0xb72ce5,_0x4c0ae5=process.env.ANET_TASK_TRACE_FORMAT===a0_0x311e1a(0x1b3)){const _0x4c4926=a0_0x311e1a;if(_0x4c0ae5)return JSON[_0x4c4926(0x1b6)](_0xb72ce5);let _0x40ec1e=L(_0xb72ce5['parent_task_id'],'<missing>'),_0x5158ee=L(_0xb72ce5[_0x4c4926(0x14f)],'<pending>'),_0x29d3d6=_0xb72ce5[_0x4c4926(0x162)]?'\x20error='+_0xb72ce5[_0x4c4926(0x162)]+':'+(_0xb72ce5[_0x4c4926(0x166)]??''):'';return _0x4c4926(0x1b8)+_0xb72ce5[_0x4c4926(0x153)]+_0x4c4926(0x1b7)+L(_0xb72ce5[_0x4c4926(0x15d)],'<unknown>')+'\x20to='+L(_0xb72ce5['to_alias'],_0x4c4926(0x1a0))+'\x20task_id='+_0x5158ee+_0x4c4926(0x171)+_0x40ec1e+'\x20network_id='+L(_0xb72ce5[_0x4c4926(0x1c7)],_0x4c4926(0x1a0))+'\x20transport='+_0xb72ce5['transport']+_0x4c4926(0x178)+_0xb72ce5[_0x4c4926(0x161)]+_0x4c4926(0x157)+_0xb72ce5[_0x4c4926(0x159)]+_0x29d3d6;}function U(_0x22c76f){const _0x34b886=a0_0x311e1a;return{'event':{'sending':_0x34b886(0x173),'delivered':_0x34b886(0x184),'failed':_0x34b886(0x168),'acked':'task.ack','started':'task.started','replied':_0x34b886(0x192),'expired':_0x34b886(0x16c)}[_0x22c76f[_0x34b886(0x153)]],..._0x22c76f};}function j(_0x17221e){const _0x1540eb=a0_0x311e1a;let _0x2a12ca=_0x17221e?.['task_id']||_0x17221e?.['message_id']||_0x17221e?.['id'];if(_0x2a12ca)return String(_0x2a12ca);let _0x36d1a1=_0x17221e?.['content']?.[0x0]?.[_0x1540eb(0x1b9)];if(typeof _0x36d1a1!==_0x1540eb(0x1ac))return null;try{let _0x107dac=JSON['parse'](_0x36d1a1);return _0x107dac?.[_0x1540eb(0x14f)]||_0x107dac?.['message_id']||_0x107dac?.['id']||null;}catch{return null;}}async function X(_0x5a3a52,_0x5cfe08){const _0x4e4489=a0_0x311e1a;let _0x492a54=_0x5cfe08['now']??Date[_0x4e4489(0x1a6)],_0x497dc8=_0x492a54(),_0x26a8ed=(_0x72a84f,_0x4b2345,_0x34cffe,_0x7caf61)=>{const _0x382924=_0x4e4489;_0x5cfe08[_0x382924(0x164)](O(U({'from_alias':_0x5a3a52['fromAlias'],'to_alias':_0x5a3a52['toAlias'],'task_id':_0x4b2345,'parent_task_id':_0x5a3a52[_0x382924(0x1a9)],'network_id':_0x5a3a52[_0x382924(0x160)],'transport':_0x5a3a52['transport'],'status':_0x72a84f,'duration_ms':_0x492a54()-_0x497dc8,'lifecycle_tracking':_0x5a3a52[_0x382924(0x14a)],..._0x34cffe!==void 0x0?{'error_code':_0x7caf61||_0x382924(0x1bb),'error_message':N(_0x34cffe)}:{}})));};_0x26a8ed(_0x4e4489(0x1aa),null);try{let _0xac9a6c=await _0x5cfe08[_0x4e4489(0x16e)](),_0x42d7a5=j(_0xac9a6c);if(_0x42d7a5)_0x26a8ed('delivered',_0x42d7a5);else{if(_0xac9a6c?.['ok']===!0x1||_0xac9a6c?.['error'])_0x26a8ed(_0x4e4489(0x1bc),_0x42d7a5,_0xac9a6c?.['error']||_0x4e4489(0x1bf),_0x4e4489(0x181));else _0x26a8ed('failed',null,_0x4e4489(0x155),_0x4e4489(0x16a));}return _0xac9a6c;}catch(_0x4c4990){throw _0x26a8ed('failed',null,_0x4c4990,_0x4e4489(0x1bb)),_0x4c4990;}}async function Y(_0x436b1e,_0xfe2ba8){const _0x386ca6=a0_0x311e1a;return X({'fromAlias':_0x436b1e['fromAlias'],'toAlias':_0x436b1e[_0x386ca6(0x1c4)],'parentTaskId':_0x436b1e[_0x386ca6(0x1a9)]||null,'networkId':_0x436b1e[_0x386ca6(0x160)]||null,'transport':_0x386ca6(0x18c),'lifecycleTracking':_0x386ca6(0x17b)},_0xfe2ba8);}function a0_0x33e6(_0x20fe63,_0x365f91){_0x20fe63=_0x20fe63-0x148;const _0xcd8612=a0_0xcd86();let _0x33e6df=_0xcd8612[_0x20fe63];return _0x33e6df;}class $ extends a0_0x27b4d0{[a0_0x311e1a(0x165)];[a0_0x311e1a(0x1c4)];[a0_0x311e1a(0x1ab)];[a0_0x311e1a(0x1a8)];[a0_0x311e1a(0x187)];[a0_0x311e1a(0x195)];[a0_0x311e1a(0x17e)];[a0_0x311e1a(0x14e)];['sseAbort'];[a0_0x311e1a(0x199)]=!0x1;constructor(_0x327169){const _0x4aab6d=a0_0x311e1a;super();if(this[_0x4aab6d(0x165)]=_0x327169[_0x4aab6d(0x165)]['replace'](/\/$/,''),this['alias']=_0x327169[_0x4aab6d(0x1c4)],this[_0x4aab6d(0x1ab)]=_0x327169[_0x4aab6d(0x1ab)],this[_0x4aab6d(0x1a8)]=_0x327169[_0x4aab6d(0x1a8)]||_0x4aab6d(0x17d),this[_0x4aab6d(0x187)]=_0x4aab6d(0x1b1)+_0x327169['alias']+'-'+Date['now']()[_0x4aab6d(0x198)](0x24),this[_0x4aab6d(0x195)]=_0x327169[_0x4aab6d(0x195)]??0x2bf20,this[_0x4aab6d(0x17e)]=_0x327169['reconnectDelay']??0xbb8,_0x327169[_0x4aab6d(0x1a4)]!==!0x1)this[_0x4aab6d(0x174)]();}[a0_0x311e1a(0x164)](_0x455ba3){const _0x3453d8=a0_0x311e1a;console[_0x3453d8(0x164)]('['+new Date()[_0x3453d8(0x15b)]()[_0x3453d8(0x16d)](0x0,0x8)+_0x3453d8(0x19e)+this[_0x3453d8(0x1c4)]+']\x20'+_0x455ba3);}async[a0_0x311e1a(0x18a)](_0x2a2e5d,_0x55e5d4){const _0x1ef880=a0_0x311e1a;let _0x4c1185={'Content-Type':_0x1ef880(0x156),'Accept':_0x1ef880(0x1c2)};if(this['token'])_0x4c1185[_0x1ef880(0x175)]=_0x1ef880(0x150)+this['token'];let _0xa30c9e=await(await fetch(this[_0x1ef880(0x165)]+_0x1ef880(0x180),{'method':'POST','headers':_0x4c1185,'body':JSON[_0x1ef880(0x1b6)]({'jsonrpc':_0x1ef880(0x1ae),'id':Date['now'](),'method':_0x1ef880(0x179),'params':{'name':_0x2a2e5d,'arguments':_0x55e5d4}})}))[_0x1ef880(0x1b9)](),_0x1c24fe=_0xa30c9e[_0x1ef880(0x194)](/data: (.+)/),_0xc2ead0=_0x1c24fe?JSON[_0x1ef880(0x1a1)](_0x1c24fe[0x1]):JSON[_0x1ef880(0x1a1)](_0xa30c9e),_0x133b72=_0xc2ead0?.[_0x1ef880(0x1b4)]?.[_0x1ef880(0x177)]?.[0x0]?.[_0x1ef880(0x1b9)];return _0x133b72?JSON[_0x1ef880(0x1a1)](_0x133b72):_0xc2ead0;}async['connect'](){const _0x607f51=a0_0x311e1a;if(this[_0x607f51(0x199)])return;this[_0x607f51(0x199)]=!0x0,await this[_0x607f51(0x153)](_0x607f51(0x14c)),this[_0x607f51(0x164)](_0x607f51(0x172)),this['heartbeatTimer']=setInterval(()=>{const _0x7ac72e=_0x607f51;this[_0x7ac72e(0x153)]('idle')[_0x7ac72e(0x186)](_0x5be026=>this[_0x7ac72e(0x164)]('heartbeat\x20failed:\x20'+_0x5be026[_0x7ac72e(0x18d)]));},this['heartbeatInterval']),this[_0x607f51(0x14d)]();}async[a0_0x311e1a(0x149)](){const _0x27f304=a0_0x311e1a;if(this[_0x27f304(0x199)]=!0x1,this[_0x27f304(0x1bd)]?.[_0x27f304(0x17a)](),this['heartbeatTimer'])clearInterval(this[_0x27f304(0x14e)]);await this[_0x27f304(0x153)](_0x27f304(0x152))['catch'](()=>{}),this[_0x27f304(0x164)](_0x27f304(0x19a));}async[a0_0x311e1a(0x16e)](_0x4ed0df,_0x2e4108,_0x552eb0=a0_0x311e1a(0x190)){const _0x1146de=a0_0x311e1a;return Y({'alias':_0x4ed0df,'fromAlias':this['alias']},{'log':_0x2485b9=>console['log'](_0x2485b9),'send':()=>this[_0x1146de(0x18a)](_0x1146de(0x15a),{'alias':_0x4ed0df,'task':_0x2e4108,'priority':_0x552eb0,'from_session':this[_0x1146de(0x1c4)]})});}async[a0_0x311e1a(0x18d)](_0x26fcd9,_0x9013bc){const _0x547ad8=a0_0x311e1a;return this[_0x547ad8(0x18a)]('send_message',{'alias':_0x26fcd9,'message':_0x9013bc,'from_session':this[_0x547ad8(0x1c4)]});}async[a0_0x311e1a(0x1b5)](_0x3c9e35,_0x1e908,_0x14408a=a0_0x311e1a(0x18b)){const _0xefeaca=a0_0x311e1a;return this[_0xefeaca(0x18a)](_0xefeaca(0x170),{'in_reply_to':_0x3c9e35,'text':_0x1e908,'status':_0x14408a});}async[a0_0x311e1a(0x153)](_0xb474e0,_0x4617b4){const _0x4f2fd3=a0_0x311e1a;return this['call'](_0x4f2fd3(0x1c1),{'resume_id':this[_0x4f2fd3(0x187)],'alias':this[_0x4f2fd3(0x1c4)],'status':_0xb474e0,'server':a0_0x31e9d4(),'hostname':a0_0x31e9d4(),'agent':this[_0x4f2fd3(0x1a8)],'project_dir':process[_0x4f2fd3(0x1c6)](),..._0x4617b4});}async[a0_0x311e1a(0x19d)](){return this['call']('get_all_status',{});}async[a0_0x311e1a(0x154)](_0x20cade,_0x3bdec2){const _0x3d7d3f=a0_0x311e1a;return this[_0x3d7d3f(0x18a)](_0x3d7d3f(0x154),{'message':_0x20cade,'filter_server':_0x3bdec2?.[_0x3d7d3f(0x15f)],'filter_status':_0x3bdec2?.['status']});}async[a0_0x311e1a(0x14d)](){const _0x39b079=a0_0x311e1a;let _0x543813=encodeURIComponent(this[_0x39b079(0x1c4)]),_0xae0ef5=this['url']+_0x39b079(0x14b)+_0x543813,_0x1dd618=this[_0x39b079(0x17e)];while(this[_0x39b079(0x199)]){try{this[_0x39b079(0x1bd)]=new AbortController();let _0x11b1ab={'Accept':_0x39b079(0x18f)};if(this[_0x39b079(0x1ab)])_0x11b1ab[_0x39b079(0x175)]=_0x39b079(0x150)+this[_0x39b079(0x1ab)];let _0x5be525=await fetch(_0xae0ef5,{'headers':_0x11b1ab,'signal':this[_0x39b079(0x1bd)][_0x39b079(0x16f)]});if(!_0x5be525['ok']||!_0x5be525[_0x39b079(0x158)]){this[_0x39b079(0x164)](_0x39b079(0x1be)+_0x5be525[_0x39b079(0x153)]),await this['sleep'](_0x1dd618),_0x1dd618=Math['min'](_0x1dd618*1.5,0xea60);continue;}_0x1dd618=this[_0x39b079(0x17e)];let _0x124684=_0x5be525['body']['getReader'](),_0x30eb80=new TextDecoder(),_0x2bee21='';while(this['running']){let {done:_0x2b2ab3,value:_0x20e146}=await _0x124684[_0x39b079(0x163)]();if(_0x2b2ab3)break;_0x2bee21+=_0x30eb80[_0x39b079(0x15e)](_0x20e146,{'stream':!0x0});let _0x3215e2=_0x2bee21['split']('\x0a');_0x2bee21=_0x3215e2[_0x39b079(0x188)]()||'';for(let _0x566cce of _0x3215e2){if(!_0x566cce[_0x39b079(0x18e)]('data:\x20'))continue;try{let _0x2c9ed1=JSON['parse'](_0x566cce['slice'](0x6));if(_0x2c9ed1[_0x39b079(0x16b)]===_0x39b079(0x1b0)){this[_0x39b079(0x164)]('SSE\x20connected'),this[_0x39b079(0x1af)]('connected');continue;}if(_0x2c9ed1['type']===_0x39b079(0x1a7)||_0x2c9ed1[_0x39b079(0x16b)]==='new_message'||_0x2c9ed1[_0x39b079(0x16b)]===_0x39b079(0x154))await this[_0x39b079(0x1ba)]();}catch{}}}}catch(_0x122701){if(_0x122701[_0x39b079(0x183)]===_0x39b079(0x17f))break;this[_0x39b079(0x1af)](_0x39b079(0x1c8),_0x122701),this['log'](_0x39b079(0x1c5)+_0x122701[_0x39b079(0x18d)]);}if(this['running'])this['emit'](_0x39b079(0x19a)),this[_0x39b079(0x164)](_0x39b079(0x15c)+_0x1dd618/0x3e8+_0x39b079(0x17c)),await this[_0x39b079(0x19c)](_0x1dd618),_0x1dd618=Math[_0x39b079(0x1c3)](_0x1dd618*1.5,0xea60);}}async[a0_0x311e1a(0x1ba)](){const _0x5b7bde=a0_0x311e1a;try{let _0x5ad3ba=(await this['call'](_0x5b7bde(0x1ad),{'alias':this[_0x5b7bde(0x1c4)],'limit':0xa}))?.[_0x5b7bde(0x151)]||[];for(let _0x2b9a8a of _0x5ad3ba)await this['call'](_0x5b7bde(0x1a2),{'alias':this[_0x5b7bde(0x1c4)],'message_id':_0x2b9a8a['id']}),this[_0x5b7bde(0x164)]('←\x20'+_0x2b9a8a['from_session']+':\x20'+_0x2b9a8a[_0x5b7bde(0x177)][_0x5b7bde(0x16d)](0x0,0x3c)),this['emit'](_0x5b7bde(0x196),_0x2b9a8a),this[_0x5b7bde(0x1af)](_0x5b7bde(0x18d),_0x2b9a8a);}catch(_0x25c548){this[_0x5b7bde(0x164)](_0x5b7bde(0x19f)+_0x25c548[_0x5b7bde(0x18d)]);}}['sleep'](_0x4459fa){return new Promise(_0x4a5414=>setTimeout(_0x4a5414,_0x4459fa));}}function a0_0xcd86(){const _0x2cc7dc=['offline','status','broadcast','CommHub\x20response\x20omitted\x20task_id','application/json','\x20lifecycle=','body','lifecycle_tracking','send_task','toTimeString','SSE\x20reconnecting\x20in\x20','from_alias','decode','server','networkId','duration_ms','error_code','read','log','url','error_message','636598yoIZXS','task.send.failed','1PFgbuk','missing_task_id','type','task.expired','slice','send','signal','send_reply','\x20parent_task_id=','registered','task.send.start','connect','Authorization','[REDACTED]','content','\x20duration_ms=','tools/call','abort','not_tracked','s...','sdk','reconnectDelay','AbortError','/mcp','send_rejected','1435220lTPbPH','name','task.send.delivered','9kEVtqp','catch','resumeId','pop','5HeSzyp','call','completed','mcp_http','message','startsWith','text/event-stream','normal','replace','task.replied','60yYwZga','match','heartbeatInterval','task','1160528jiVvrX','toString','running','disconnected','unknown\x20error','sleep','getAllStatus',']\x20[commhub:','inbox\x20error:\x20','<unknown>','parse','ack_inbox','1462302CTlssU','autoConnect','12VArfha','now','new_task','agent','parentTaskId','sending','token','string','get_inbox','2.0','emit','connected','sdk-','2989239FykyXX','json','result','reply','stringify','\x20from=','[commhub:task]\x20','text','processInbox','send_failed','failed','sseAbort','SSE\x20failed:\x20','CommHub\x20rejected\x20task','2483816NEUqJp','report_status','application/json,\x20text/event-stream','min','alias','SSE\x20error:\x20','cwd','network_id','error','1186766pqbpVs','disconnect','lifecycleTracking','/events/','idle','connectSSE','heartbeatTimer','task_id','Bearer\x20','messages'];a0_0xcd86=function(){return _0x2cc7dc;};return a0_0xcd86();}var F=$;export{F as default,$ as CommHub};
|
|
@@ -28,6 +28,9 @@ export interface ProcStat {
|
|
|
28
28
|
pgid: number;
|
|
29
29
|
starttime_jiffies: number;
|
|
30
30
|
ppid: number;
|
|
31
|
+
/** /proc/PID/stat 第 6 字段 session id。tmux 每个 pane 的 shell 是 session leader,pane 死后它的孤儿仍保留这个 sid ——
|
|
32
|
+
* 这是「进程属于本节点哪一段」最稳的证据(2026-09-14 事故:生产 hub 从 pm2 继承了 marker env,光看 env 会把 hub 当上一代杀掉)。 */
|
|
33
|
+
sid?: number;
|
|
31
34
|
}
|
|
32
35
|
/**
|
|
33
36
|
* Injectable primitive for /proc access. Real impl reads the filesystem;
|
|
@@ -255,6 +258,9 @@ export type ReapResult = {
|
|
|
255
258
|
};
|
|
256
259
|
export interface ReapOptions {
|
|
257
260
|
graceMs: number;
|
|
261
|
+
/** 本节点的 CODEX_HOME 真实路径。给了它,marker 命中的进程还要过一道「树成员」核验:sid/pgid 属于 marker 记录的三段 pane,
|
|
262
|
+
* 或其环境里 CODEX_HOME 就是这个目录;都不满足的是「外来携带者」(比如从共存 TUI 里重启过的 pm2 及其子进程),只报告、不杀、不算未回收。 */
|
|
263
|
+
nodeHome?: string;
|
|
258
264
|
logger: (msg: string) => void;
|
|
259
265
|
/**
|
|
260
266
|
* Sleep primitive (grace period). Real code uses setTimeout; tests inject
|
|
@@ -289,6 +295,14 @@ export interface ReapOptions {
|
|
|
289
295
|
* 7. Send SIGKILL to any group still alive.
|
|
290
296
|
* 8. Post-rescan: if any marker-carrying pid alive → preserve marker.
|
|
291
297
|
*/
|
|
298
|
+
/** 2026-09-14 事故的护栏:marker 命中 ≠ 本节点的进程。见 ReapOptions.nodeHome。 */
|
|
299
|
+
export declare function partitionMarkerHitsByTree(enumer: ProcessEnumerator, hits: number[], anchors: ScanAnchors | undefined, nodeHome: string | undefined): {
|
|
300
|
+
members: number[];
|
|
301
|
+
foreign: Array<{
|
|
302
|
+
pid: number;
|
|
303
|
+
reason: string;
|
|
304
|
+
}>;
|
|
305
|
+
};
|
|
292
306
|
export declare function reapMarkerGroups(enumer: ProcessEnumerator, killer: KillPrimitive, markerUuid: string, opts: ReapOptions): Promise<ReapResult>;
|
|
293
307
|
export interface PrepareStartDeps {
|
|
294
308
|
/** Usually () => readMarker(nodesDir, nodeId). */
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const LOOPBACK_HUB_HEALTH_TIMEOUT_MS = 2000;
|
|
2
|
+
export declare const REMOTE_HUB_HEALTH_TIMEOUT_MS = 10000;
|
|
3
|
+
export declare const HUB_HEALTH_TIMEOUT_ENV = "ANET_HUB_HEALTH_TIMEOUT_MS";
|
|
4
|
+
export declare function hubHealthTimeoutMs(hub: string, env?: NodeJS.ProcessEnv): number;
|