@sleep2agi/agent-network 2.3.0-preview.27 → 2.3.0-preview.28
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 +1 -1
- package/dist/src/client.js +1 -1
- package/dist/src/codex-app-server-release.d.ts +17 -0
- package/dist/src/im/feishu/worker.js +1 -1
- package/dist/src/node-server.js +1 -1
- package/dist/src/normalize-runtime.d.ts +6 -0
- package/dist/src/opencode-agent-node-pair.d.ts +3 -3
- package/package.json +1 -1
package/dist/src/node-server.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
const a0_0x53cab8=a0_0x56c5;(function(_0x44c8c0,_0x3e595d){const _0x814fea=a0_0x56c5,_0x2e16d2=_0x44c8c0();while(!![]){try{const _0x437f8a=-parseInt(_0x814fea(0x107))/0x1*(-parseInt(_0x814fea(0x106))/0x2)+parseInt(_0x814fea(0x124))/0x3+-parseInt(_0x814fea(0x174))/0x4+parseInt(_0x814fea(0x10a))/0x5+parseInt(_0x814fea(0x142))/0x6+-parseInt(_0x814fea(0xf8))/0x7*(-parseInt(_0x814fea(0x10d))/0x8)+-parseInt(_0x814fea(0x156))/0x9;if(_0x437f8a===_0x3e595d)break;else _0x2e16d2['push'](_0x2e16d2['shift']());}catch(_0x58502f){_0x2e16d2['push'](_0x2e16d2['shift']());}}}(a0_0x2481,0xd3ae3));import{readFileSync as a0_0x4429aa,existsSync as a0_0x1cefb3}from'fs';import{randomUUID as a0_0x19a542}from'crypto';import{join as a0_0xd5ed86}from'path';import{hostname as a0_0x16a31b}from'os';import{execSync as a0_0x4cfe2a}from'child_process';function a0_0x56c5(_0xe1292f,_0x2f110f){_0xe1292f=_0xe1292f-0xeb;const _0x24819a=a0_0x2481();let _0x56c53c=_0x24819a[_0xe1292f];return _0x56c53c;}function B(_0x122956){let _0xf684e7=_0x122956['replace'](/[^a-zA-Z0-9\-_]/g,'-');return _0xf684e7===''?'unknown':_0xf684e7;}import{Server as a0_0x3a585f}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0x52ce92}from'@modelcontextprotocol/sdk/server/stdio.js';import{ListToolsRequestSchema as a0_0xd1d407,CallToolRequestSchema as a0_0x2c9c1d}from'@modelcontextprotocol/sdk/types.js';function T(_0x56cb20){const _0x467cb9=a0_0x56c5;if(!a0_0x1cefb3(_0x56cb20))return;for(let _0x2dd8f9 of a0_0x4429aa(_0x56cb20,'utf-8')['split']('\x0a')){let _0x53f76f=_0x2dd8f9[_0x467cb9(0xed)]();if(!_0x53f76f||_0x53f76f[_0x467cb9(0x17e)]('#'))continue;let _0x343f00=_0x53f76f['indexOf']('=');if(_0x343f00<0x0)continue;let _0x1dd33c=_0x53f76f[_0x467cb9(0x182)](0x0,_0x343f00)[_0x467cb9(0xed)](),_0x328260=_0x53f76f[_0x467cb9(0x182)](_0x343f00+0x1)[_0x467cb9(0xed)]()['replace'](/^["']|["']$/g,'');if(!process.env[_0x1dd33c])process.env[_0x1dd33c]=_0x328260;}}function a0_0x2481(){const _0x5b948f=['startsWith','failed','connected','utf-8','slice','SSE\x20连续\x20>1h\x20连不上\x20hub\x20(','Reply\x20using\x20the\x20commhub_reply\x20tool\x20to\x20report\x20status\x20or\x20results\x20back.','send_reply','Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','error','application/json','toTimeString','completed','ESRCH','parse','0.3.0','trim','warning:\x20could\x20not\x20register:\x20','length','get_all_status','\x20/\x20hostname=','type',')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。','Progress\x200-100','read','broadcast','object','467397Ktrwxv','end','MCP\x20stdio\x20connected','min','/events/','ready\x20—\x20waiting\x20for\x20events','SSE\x20fatal:\x20','Messages\x20from\x20CommHub\x20arrive\x20as\x20<channel\x20source=\x22commhub\x22\x20task_id=\x22...\x22\x20priority=\x22...\x22\x20from=\x22...\x22>','messages','.env','You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.','none','Target\x20session\x20alias','\x20CWD=','502954DGhsBO','4wWQZeV','Reply\x20text\x20/\x20result\x20summary','priority','3321965qlnBEb','from','result','192zXzMjG','commhub_reply','data:\x20','application/json,\x20text/event-stream','stringify','params','hub','in_progress','task','unknown\x20tool',':\x20inbox_count=','tools/call','status','registered\x20as\x20\x22','decode','ppid','Priority\x20(default:\x20normal)','Current\x20task\x20description','Authorization','get_inbox','SSE\x20connected\x20as\x20\x22','write','blocked','3721278yhykTc','token','message','pop','2025-03-26','unref','split','config.json','The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)','Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','would\x20mis-attribute.\x20Refusing\x20to\x20guess\x20from\x20TMUX_NAME=','.\x20Restart\x20node\x20via\x20`anet\x20node\x20start\x20<alias>`\x20so\x20the\x20env\x20is\x20set\x20explicitly\x20(#203).\x0a','now','Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','no\x20response','low','connect','function','cancelled','content','inbox_count','claude-code','working','\x20from\x20','commhub_report_status','heartbeat\x20failed:\x20','set','Task\x20content','re-register\x20failed:\x20','SSE\x20connection\x20error:\x20','8183946ZchHue','number','\x22\x20after\x20SSE\x20reconnect','idle','commhub_send_task','report_status','send_message','commhub','statusText','parent\x20claude\x20pid=','getReader','body','delete','normal','text','new_task','Message\x20content','init\x20failed:\x20','stdin','SIGINT','43684893EdnmBr','Session\x20alias:\x20','setRequestHandler','SSE\x20error:\x20','Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates','from_session','(none)','session\x20disconnected','commhub_send_message','new_message','then','connecting\x20to\x20','message_id','get','string','unattributed-','CommHub\x20init\x20failed:\x20','\x20priority=','commhub-channel','catch','POST','SSE\x20stream\x20ended,\x20reconnecting...','notifications/claude/channel','find','2.0','.claude/channels/commhub','cwd',']\x20[commhub]\x20','high','code','625208vByHRA','alias','exit','SIGTERM','http://127.0.0.1:9200','commhub_get_all_status','starting\x20SSE\x20listener...','←\x20message\x20from\x20','.anet','notification'];a0_0x2481=function(){return _0x5b948f;};return a0_0x2481();}var C=process.env.HOME||'~',r=a0_0xd5ed86(C,a0_0x53cab8(0x16f));T(a0_0xd5ed86(r,'.env'));var H=B(process[a0_0x53cab8(0x170)]());T(a0_0xd5ed86(r,H,a0_0x53cab8(0x101)));function E(){const _0x406752=a0_0x53cab8;try{return a0_0x4cfe2a('tmux\x20display-message\x20-p\x20\x27#S\x27',{'encoding':_0x406752(0x181),'timeout':0x7d0})['trim']();}catch{return'';}}function _(){const _0x310b2c=a0_0x53cab8;try{let _0x7eaa8e=a0_0xd5ed86(C,_0x310b2c(0x17c),_0x310b2c(0x12b));if(a0_0x1cefb3(_0x7eaa8e))return JSON[_0x310b2c(0xeb)](a0_0x4429aa(_0x7eaa8e,_0x310b2c(0x181)));}catch{}return{};}var R=_(),Y=process.env.COMMHUB_URL||R[a0_0x53cab8(0x113)]||a0_0x53cab8(0x178),j=process.env.COMMHUB_TMUX||E();function S(){const _0x321ef9=a0_0x53cab8;if(process.env.COMMHUB_ALIAS&&process.env.COMMHUB_ALIAS[_0x321ef9(0xed)]())return process.env.COMMHUB_ALIAS[_0x321ef9(0xed)]();return process['stderr']['write']('[commhub]\x20WARN:\x20COMMHUB_ALIAS\x20env\x20var\x20is\x20unset\x20—\x20outbound\x20from_session\x20'+(_0x321ef9(0x12e)+(j||_0x321ef9(0x15c))+_0x321ef9(0xf1)+a0_0x16a31b()+_0x321ef9(0x12f))),_0x321ef9(0x165)+process['pid'];}var p=S(),V=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0x19a542(),k=process.env.COMMHUB_TOKEN||R[a0_0x53cab8(0x125)]||'';function z(_0x4b3b12){const _0x55e715=a0_0x53cab8;let _0x43e8d8=new Date()[_0x55e715(0x189)]()[_0x55e715(0x182)](0x0,0x8);process['stderr'][_0x55e715(0x122)]('['+_0x43e8d8+_0x55e715(0x171)+_0x4b3b12+'\x0a');}function i(_0x5edcd1){return new Promise(_0x48cecb=>setTimeout(_0x48cecb,_0x5edcd1));}z('ENV:\x20URL='+Y+'\x20ALIAS='+p+'\x20RESUME_ID='+V['slice'](0x0,0x8)+'...\x20TMUX='+(j||a0_0x53cab8(0x103))+a0_0x53cab8(0x105)+process[a0_0x53cab8(0x170)]()+'\x20PROJECT_ENV='+H);var G=new Map(),K=new a0_0x3a585f({'name':a0_0x53cab8(0x168),'version':a0_0x53cab8(0xec)},{'capabilities':{'experimental':{'claude/channel':{}},'tools':{}},'instructions':[a0_0x53cab8(0xff),'These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.',a0_0x53cab8(0x184),a0_0x53cab8(0x102),a0_0x53cab8(0x157)+p]['join']('\x0a')});K[a0_0x53cab8(0x158)](a0_0xd1d407,async()=>({'tools':[{'name':a0_0x53cab8(0x10e),'description':'Reply\x20to\x20a\x20CommHub\x20task\x20—\x20report\x20completion\x20or\x20send\x20a\x20message\x20back\x20to\x20the\x20hub.','inputSchema':{'type':a0_0x53cab8(0xf7),'properties':{'task_id':{'type':a0_0x53cab8(0x164),'description':a0_0x53cab8(0x12c)},'text':{'type':a0_0x53cab8(0x164),'description':a0_0x53cab8(0x108)},'status':{'type':a0_0x53cab8(0x164),'enum':[a0_0x53cab8(0x18a),a0_0x53cab8(0x17f),a0_0x53cab8(0x136),'blocked',a0_0x53cab8(0x187),a0_0x53cab8(0x114)],'description':a0_0x53cab8(0x15a)}},'required':[a0_0x53cab8(0x150)]}},{'name':a0_0x53cab8(0x13c),'description':a0_0x53cab8(0x186),'inputSchema':{'type':'object','properties':{'status':{'type':a0_0x53cab8(0x164),'enum':[a0_0x53cab8(0x13a),a0_0x53cab8(0x145),a0_0x53cab8(0x123),a0_0x53cab8(0x187)]},'task':{'type':'string','description':a0_0x53cab8(0x11e)},'progress':{'type':a0_0x53cab8(0x143),'description':a0_0x53cab8(0xf4)}},'required':[a0_0x53cab8(0x119)]}},{'name':a0_0x53cab8(0x146),'description':a0_0x53cab8(0x12d),'inputSchema':{'type':a0_0x53cab8(0xf7),'properties':{'alias':{'type':a0_0x53cab8(0x164),'description':a0_0x53cab8(0x104)},'task':{'type':a0_0x53cab8(0x164),'description':a0_0x53cab8(0x13f)},'priority':{'type':a0_0x53cab8(0x164),'enum':[a0_0x53cab8(0x172),a0_0x53cab8(0x14f),a0_0x53cab8(0x133)],'description':a0_0x53cab8(0x11d)}},'required':['alias',a0_0x53cab8(0x115)]}},{'name':a0_0x53cab8(0x15e),'description':'Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','inputSchema':{'type':a0_0x53cab8(0xf7),'properties':{'alias':{'type':a0_0x53cab8(0x164),'description':a0_0x53cab8(0x104)},'message':{'type':a0_0x53cab8(0x164),'description':a0_0x53cab8(0x152)}},'required':[a0_0x53cab8(0x175),a0_0x53cab8(0x126)]}},{'name':a0_0x53cab8(0x179),'description':a0_0x53cab8(0x131),'inputSchema':{'type':a0_0x53cab8(0xf7),'properties':{}}}]}));async function Q(_0x1a9e77,_0x99f2b1){const _0xc5d447=a0_0x53cab8;let _0x1be83a=await fetch(Y+'/mcp',{'method':_0xc5d447(0x16a),'headers':{'Content-Type':_0xc5d447(0x188),'Accept':_0xc5d447(0x110),...k?{'Authorization':'Bearer\x20'+k}:{}},'body':JSON[_0xc5d447(0x111)]({'jsonrpc':_0xc5d447(0x16e),'id':0x1,'method':'initialize','params':{'protocolVersion':_0xc5d447(0x128),'capabilities':{},'clientInfo':{'name':_0xc5d447(0x168),'version':'0.3.0'}}})});if(!_0x1be83a['ok']){let _0x18d8fb=await _0x1be83a[_0xc5d447(0x150)]();return z(_0xc5d447(0x166)+_0x1be83a[_0xc5d447(0x119)]+'\x20'+_0x18d8fb[_0xc5d447(0x182)](0x0,0x64)),{'ok':!0x1,'error':_0xc5d447(0x153)+_0x1be83a[_0xc5d447(0x119)]};}await _0x1be83a[_0xc5d447(0x150)]();let _0x15398c=(await(await fetch(Y+'/mcp',{'method':_0xc5d447(0x16a),'headers':{'Content-Type':_0xc5d447(0x188),'Accept':_0xc5d447(0x110),...k?{'Authorization':'Bearer\x20'+k}:{}},'body':JSON[_0xc5d447(0x111)]({'jsonrpc':_0xc5d447(0x16e),'id':0x2,'method':_0xc5d447(0x118),'params':{'name':_0x1a9e77,'arguments':_0x99f2b1}})}))[_0xc5d447(0x150)]())[_0xc5d447(0x12a)]('\x0a')[_0xc5d447(0x16d)](_0x5dd473=>_0x5dd473['startsWith'](_0xc5d447(0x10f)));if(_0x15398c){let _0x46e998=JSON[_0xc5d447(0xeb)](_0x15398c[_0xc5d447(0x182)](0x6));return _0x46e998?.[_0xc5d447(0x10c)]?.[_0xc5d447(0x137)]?.[0x0]?.[_0xc5d447(0x150)]?JSON[_0xc5d447(0xeb)](_0x46e998['result']['content'][0x0][_0xc5d447(0x150)]):_0x46e998;}return{'ok':!0x1,'error':_0xc5d447(0x132)};}K[a0_0x53cab8(0x158)](a0_0x2c9c1d,async _0x47c5ab=>{const _0x5ab68b=a0_0x53cab8;let {name:_0x3a3a4c,arguments:_0x5eff6d}=_0x47c5ab[_0x5ab68b(0x112)];if(_0x3a3a4c===_0x5ab68b(0x10e)){let {task_id:_0x25359a,text:_0x22ae0c,status:_0x422d18}=_0x5eff6d;if(_0x422d18==='completed'||_0x422d18===_0x5ab68b(0x17f)||_0x422d18==='cancelled'){let _0xf3083b=_0x422d18===_0x5ab68b(0x18a)?'replied':_0x422d18,_0x4dd758=_0x25359a?G[_0x5ab68b(0x163)](_0x25359a)||_0x5ab68b(0x113):_0x5ab68b(0x113),_0x45b097=await Q(_0x5ab68b(0x185),{'alias':_0x4dd758,'text':_0x22ae0c,'in_reply_to':_0x25359a||void 0x0,'status':_0xf3083b,'from_session':p});if(_0x25359a)G[_0x5ab68b(0x14e)](_0x25359a);return{'content':[{'type':_0x5ab68b(0x150),'text':JSON[_0x5ab68b(0x111)](_0x45b097)}]};}let _0x3a666c=await Q('report_status',{'resume_id':V,'alias':p,'status':_0x422d18==='blocked'?_0x5ab68b(0x123):_0x422d18===_0x5ab68b(0x187)?'error':_0x5ab68b(0x13a),'task':_0x22ae0c[_0x5ab68b(0x182)](0x0,0xc8),'output':_0x22ae0c});return{'content':[{'type':'text','text':JSON[_0x5ab68b(0x111)](_0x3a666c)}]};}if(_0x3a3a4c===_0x5ab68b(0x13c)){let {status:_0x4cd566,task:_0x1fb2ad,progress:_0x2f632e}=_0x5eff6d,_0xd28ba9=await Q(_0x5ab68b(0x147),{'resume_id':V,'alias':p,'status':_0x4cd566,'task':_0x1fb2ad,'progress':_0x2f632e});return{'content':[{'type':'text','text':JSON['stringify'](_0xd28ba9)}]};}if(_0x3a3a4c===_0x5ab68b(0x146)){let {alias:_0x10c417,task:_0x3ba73f,priority:_0x35dc23}=_0x5eff6d,_0x1c4c1c=await Q('send_task',{'alias':_0x10c417,'task':_0x3ba73f,'priority':_0x35dc23||'normal','from_session':p});return{'content':[{'type':_0x5ab68b(0x150),'text':JSON[_0x5ab68b(0x111)](_0x1c4c1c)}]};}if(_0x3a3a4c===_0x5ab68b(0x15e)){let {alias:_0x5a2b26,message:_0x2168ea}=_0x5eff6d,_0x414eb4=await Q(_0x5ab68b(0x148),{'alias':_0x5a2b26,'message':_0x2168ea,'from_session':p});return{'content':[{'type':_0x5ab68b(0x150),'text':JSON['stringify'](_0x414eb4)}]};}if(_0x3a3a4c==='commhub_get_all_status'){let _0x377a59=await Q(_0x5ab68b(0xf0),{});return{'content':[{'type':'text','text':JSON['stringify'](_0x377a59)}]};}return{'content':[{'type':'text','text':JSON[_0x5ab68b(0x111)]({'error':_0x5ab68b(0x116)})}]};});var D=0x3e8,v=0x7530,O=0x36ee80;async function m(){const _0xda9c05=a0_0x53cab8;try{await Q(_0xda9c05(0x147),{'resume_id':V,'alias':p,'status':_0xda9c05(0x145),'server':a0_0x16a31b(),'hostname':a0_0x16a31b(),'agent':_0xda9c05(0x139),'project_dir':process[_0xda9c05(0x170)](),'tmux_name':j||void 0x0}),z('re-registered\x20as\x20\x22'+p+_0xda9c05(0x144));}catch(_0x49c2ba){z(_0xda9c05(0x140)+_0x49c2ba);}}async function l(){const _0x2b35b5=a0_0x53cab8;let _0x5e83dd=Y+_0x2b35b5(0xfc)+encodeURIComponent(p),_0x3b8dba={};if(k)_0x3b8dba[_0x2b35b5(0x11f)]='Bearer\x20'+k;z(_0x2b35b5(0x161)+_0x5e83dd);let _0x545750=D,_0x27f339=!0x0,_0x2370d3=null;while(!0x0){try{let _0x2c5e75=await fetch(_0x5e83dd,{'headers':_0x3b8dba});if(!_0x2c5e75['ok']){if(z(_0x2b35b5(0x159)+_0x2c5e75[_0x2b35b5(0x119)]+'\x20'+_0x2c5e75[_0x2b35b5(0x14a)]),_0x2370d3=_0x2370d3??Date[_0x2b35b5(0x130)](),Date['now']()-_0x2370d3>O){z(_0x2b35b5(0x183)+Y+_0x2b35b5(0xf3));return;}await i(_0x545750),_0x545750=Math[_0x2b35b5(0xfb)](_0x545750*0x2,v);continue;}let _0x35a63d=_0x2c5e75[_0x2b35b5(0x14d)][_0x2b35b5(0x14c)](),_0x5bff21=new TextDecoder(),_0x4df713='';_0x545750=D;while(!0x0){let {done:_0xfd2f1,value:_0x57d1ae}=await _0x35a63d[_0x2b35b5(0xf5)]();if(_0xfd2f1)break;_0x4df713+=_0x5bff21[_0x2b35b5(0x11b)](_0x57d1ae,{'stream':!0x0});let _0xa8f5d9=_0x4df713[_0x2b35b5(0x12a)]('\x0a\x0a');_0x4df713=_0xa8f5d9[_0x2b35b5(0x127)]()||'';for(let _0x1d6081 of _0xa8f5d9){let _0x2d24a5=_0x1d6081['split']('\x0a')[_0x2b35b5(0x16d)](_0x18de99=>_0x18de99[_0x2b35b5(0x17e)]('data:\x20'));if(!_0x2d24a5)continue;try{let _0x1f417d=JSON['parse'](_0x2d24a5['slice'](0x6));if(await A(_0x1f417d),_0x1f417d['type']===_0x2b35b5(0x180)){if(_0x2370d3=null,!_0x27f339)await m();_0x27f339=!0x1;}}catch(_0x98112b){z('parse\x20error:\x20'+_0x98112b);}}}z(_0x2b35b5(0x16b));}catch(_0x1acf2a){z(_0x2b35b5(0x141)+_0x1acf2a);}if(_0x2370d3=_0x2370d3??Date[_0x2b35b5(0x130)](),Date[_0x2b35b5(0x130)]()-_0x2370d3>O){z(_0x2b35b5(0x183)+Y+_0x2b35b5(0xf3));return;}await i(_0x545750),_0x545750=Math[_0x2b35b5(0xfb)](_0x545750*0x2,v);}}async function A(_0x5c5f58){const _0x43d6ae=a0_0x53cab8;if(_0x5c5f58[_0x43d6ae(0xf2)]===_0x43d6ae(0x180)){z(_0x43d6ae(0x121)+p+'\x22');return;}if(_0x5c5f58[_0x43d6ae(0xf2)]===_0x43d6ae(0x15f)){if(z(_0x43d6ae(0x17b)+_0x5c5f58[_0x43d6ae(0x10b)]+':\x20'+_0x5c5f58[_0x43d6ae(0x126)][_0x43d6ae(0x182)](0x0,0x3c)),await K[_0x43d6ae(0x17d)]({'method':_0x43d6ae(0x16c),'params':{'content':_0x5c5f58[_0x43d6ae(0x126)],'meta':{'sender':_0x5c5f58[_0x43d6ae(0x10b)]||_0x43d6ae(0x113),'sender_id':'commhub','user':_0x5c5f58['from']||_0x43d6ae(0x113),'priority':_0x43d6ae(0x14f)}}}),_0x5c5f58[_0x43d6ae(0x162)])await Q('ack_inbox',{'alias':p,'message_id':_0x5c5f58[_0x43d6ae(0x162)]});return;}if(_0x5c5f58[_0x43d6ae(0xf2)]===_0x43d6ae(0x151)||_0x5c5f58[_0x43d6ae(0xf2)]===_0x43d6ae(0xf6)){z('←\x20'+_0x5c5f58[_0x43d6ae(0xf2)]+_0x43d6ae(0x117)+_0x5c5f58[_0x43d6ae(0x138)]+_0x43d6ae(0x167)+(_0x5c5f58[_0x43d6ae(0x109)]||_0x43d6ae(0x14f)));let _0x46221e=await Q(_0x43d6ae(0x120),{'alias':p,'limit':0x5});if(_0x46221e?.['ok']&&_0x46221e[_0x43d6ae(0x100)]?.[_0x43d6ae(0xef)]>0x0)for(let _0x36d79f of _0x46221e[_0x43d6ae(0x100)]){let _0x41bd13={'sender':_0x36d79f[_0x43d6ae(0x15b)]||_0x43d6ae(0x113),'sender_id':_0x43d6ae(0x149),'user':_0x36d79f['from_session']||_0x43d6ae(0x113),'task_id':_0x36d79f['id'],'priority':_0x36d79f[_0x43d6ae(0x109)]||'normal'};G[_0x43d6ae(0x13e)](_0x36d79f['id'],_0x36d79f[_0x43d6ae(0x15b)]||_0x43d6ae(0x113)),await K[_0x43d6ae(0x17d)]({'method':'notifications/claude/channel','params':{'content':_0x36d79f[_0x43d6ae(0x137)],'meta':_0x41bd13}}),z('→\x20injected\x20task\x20'+_0x36d79f['id'][_0x43d6ae(0x182)](0x0,0x8)+_0x43d6ae(0x13b)+_0x36d79f[_0x43d6ae(0x15b)]+':\x20'+_0x36d79f['content'][_0x43d6ae(0x182)](0x0,0x3c)),await Q('ack_inbox',{'alias':p,'message_id':_0x36d79f['id']});}}}async function t(){const _0x344229=a0_0x53cab8;let _0x50a8db=new a0_0x52ce92();await K[_0x344229(0x134)](_0x50a8db),z(_0x344229(0xfa)),z(_0x344229(0x17a)),l()[_0x344229(0x169)](_0x17aa74=>z(_0x344229(0xfe)+_0x17aa74)),Q(_0x344229(0x147),{'resume_id':V,'alias':p,'status':'idle','server':a0_0x16a31b(),'hostname':a0_0x16a31b(),'agent':_0x344229(0x139),'project_dir':process[_0x344229(0x170)](),'tmux_name':j||void 0x0})[_0x344229(0x160)](()=>z(_0x344229(0x11a)+p+'\x22\x20('+V[_0x344229(0x182)](0x0,0x8)+')'))[_0x344229(0x169)](_0x3e42b3=>z(_0x344229(0xee)+_0x3e42b3)),setInterval(()=>{const _0x56718e=_0x344229;Q(_0x56718e(0x147),{'resume_id':V,'alias':p,'status':'idle','server':a0_0x16a31b(),'hostname':a0_0x16a31b(),'agent':_0x56718e(0x139),'project_dir':process['cwd'](),'tmux_name':j||void 0x0})['catch'](_0x1e8e89=>z(_0x56718e(0x13d)+_0x1e8e89));},0x2bf20),z(_0x344229(0xfd));}t()[a0_0x53cab8(0x169)](_0x215b98=>{const _0x59b512=a0_0x53cab8;z('fatal:\x20'+_0x215b98),process[_0x59b512(0x176)](0x1);});async function b(){const _0x12edcd=a0_0x53cab8;z('shutting\x20down,\x20reporting\x20offline...'),await Q(_0x12edcd(0x147),{'resume_id':V,'alias':p,'status':'offline','task':_0x12edcd(0x15d)})['catch'](()=>{}),process['exit'](0x0);}process[a0_0x53cab8(0x154)]['on'](a0_0x53cab8(0xf9),()=>b()),process['on'](a0_0x53cab8(0x177),()=>b()),process['on'](a0_0x53cab8(0x155),()=>b());var d=process[a0_0x53cab8(0x11c)];if(d&&d>0x1){let h=setInterval(()=>{const _0x869c16=a0_0x53cab8;if(process[_0x869c16(0x11c)]===0x1&&d!==0x1){z('parent\x20claude\x20died\x20(reparented\x20to\x20PID\x201\x20from\x20'+d+')\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat'),b();return;}try{process['kill'](d,0x0);}catch(_0x51f5f7){if(_0x51f5f7?.[_0x869c16(0x173)]===_0x869c16(0x18b))z(_0x869c16(0x14b)+d+'\x20no\x20longer\x20exists\x20(kill-0\x20ESRCH)\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat'),b();}},0x7530);if(typeof h[a0_0x53cab8(0x129)]===a0_0x53cab8(0x135))h[a0_0x53cab8(0x129)]();}
|
|
2
|
+
const a0_0x6498e1=a0_0x12a8;(function(_0x244026,_0x4b000b){const _0x1e3187=a0_0x12a8,_0x36596e=_0x244026();while(!![]){try{const _0x243d7b=-parseInt(_0x1e3187(0x1da))/0x1*(-parseInt(_0x1e3187(0x24d))/0x2)+-parseInt(_0x1e3187(0x21c))/0x3+parseInt(_0x1e3187(0x231))/0x4*(parseInt(_0x1e3187(0x22e))/0x5)+parseInt(_0x1e3187(0x1d5))/0x6+-parseInt(_0x1e3187(0x1c7))/0x7*(-parseInt(_0x1e3187(0x252))/0x8)+-parseInt(_0x1e3187(0x1d1))/0x9*(-parseInt(_0x1e3187(0x210))/0xa)+-parseInt(_0x1e3187(0x1d8))/0xb;if(_0x243d7b===_0x4b000b)break;else _0x36596e['push'](_0x36596e['shift']());}catch(_0x2aee3d){_0x36596e['push'](_0x36596e['shift']());}}}(a0_0x53f1,0xc5d48));import{readFileSync as a0_0x3142f2,existsSync as a0_0x5942ba}from'fs';import{randomUUID as a0_0x4dbfec}from'crypto';import{join as a0_0x2f0246}from'path';import{hostname as a0_0x1a2197}from'os';import{execSync as a0_0x5ceba6}from'child_process';function B(_0x3959b2){const _0x5d9373=a0_0x12a8;let _0x1f4ad=_0x3959b2[_0x5d9373(0x24f)](/[^a-zA-Z0-9\-_]/g,'-');return _0x1f4ad===''?_0x5d9373(0x202):_0x1f4ad;}import{Server as a0_0x5309a2}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0x5852f2}from'@modelcontextprotocol/sdk/server/stdio.js';import{ListToolsRequestSchema as a0_0xf8f288,CallToolRequestSchema as a0_0x32ca40}from'@modelcontextprotocol/sdk/types.js';function T(_0x46458a){const _0x462a9a=a0_0x12a8;if(!a0_0x5942ba(_0x46458a))return;for(let _0x5c230a of a0_0x3142f2(_0x46458a,_0x462a9a(0x1c3))[_0x462a9a(0x257)]('\x0a')){let _0x2cb8bd=_0x5c230a[_0x462a9a(0x226)]();if(!_0x2cb8bd||_0x2cb8bd[_0x462a9a(0x1f7)]('#'))continue;let _0x3e9534=_0x2cb8bd[_0x462a9a(0x266)]('=');if(_0x3e9534<0x0)continue;let _0x300125=_0x2cb8bd['slice'](0x0,_0x3e9534)['trim'](),_0x5938df=_0x2cb8bd[_0x462a9a(0x1d4)](_0x3e9534+0x1)[_0x462a9a(0x226)]()[_0x462a9a(0x24f)](/^["']|["']$/g,'');if(!process.env[_0x300125])process.env[_0x300125]=_0x5938df;}}var C=process.env.HOME||'~',r=a0_0x2f0246(C,a0_0x6498e1(0x20a));T(a0_0x2f0246(r,a0_0x6498e1(0x1dc)));var H=B(process[a0_0x6498e1(0x211)]());T(a0_0x2f0246(r,H,'.env'));function E(){const _0x52b40c=a0_0x6498e1;try{return a0_0x5ceba6(_0x52b40c(0x1ed),{'encoding':_0x52b40c(0x1c3),'timeout':0x7d0})['trim']();}catch{return'';}}function a0_0x53f1(){const _0xeed2d4=['error','set','stdin','blocked','working','These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.','unknown','Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates','normal','SSE\x20stream\x20ended,\x20reconnecting...','initialize','stringify','SIGINT','alias','.claude/channels/commhub','low','parent\x20claude\x20died\x20(reparented\x20to\x20PID\x201\x20from\x20','unref','pop','setRequestHandler','50Ctymru','cwd','Reply\x20text\x20/\x20result\x20summary','Target\x20session\x20alias','failed','get_all_status','then','string','[commhub]\x20WARN:\x20COMMHUB_ALIAS\x20env\x20var\x20is\x20unset\x20—\x20outbound\x20from_session\x20','connected','unattributed-','\x20no\x20longer\x20exists\x20(kill-0\x20ESRCH)\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat','1221624luWVXO','result','.\x20Restart\x20node\x20via\x20`anet\x20node\x20start\x20<alias>`\x20so\x20the\x20env\x20is\x20set\x20explicitly\x20(#203).\x0a','status','Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','decode','read','POST','data:\x20','commhub_send_task','trim','text','\x20ALIAS=','high','now','Authorization','application/json,\x20text/event-stream','config.json','10kdyvHw','find','MCP\x20stdio\x20connected','312844pGGcDy','number','body','Progress\x200-100','2025-03-26','\x20priority=','unknown\x20tool','send_task','2.0','connect','would\x20mis-attribute.\x20Refusing\x20to\x20guess\x20from\x20TMUX_NAME=','Task\x20content','notification','kill',']\x20[commhub]\x20','get_inbox','no\x20response','ack_inbox','Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','exit','SIGTERM','←\x20message\x20from\x20','SSE\x20fatal:\x20','broadcast','0.3.0','priority',':\x20inbox_count=','session\x20disconnected','1710746VnojtZ','catch','replace','commhub-channel',')\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat','6421688SsHKdT','application/json','ppid','\x22\x20after\x20SSE\x20reconnect','Current\x20task\x20description','split','messages','Reply\x20to\x20a\x20CommHub\x20task\x20—\x20report\x20completion\x20or\x20send\x20a\x20message\x20back\x20to\x20the\x20hub.','CommHub\x20init\x20failed:\x20','task','Priority\x20(default:\x20normal)','token','ESRCH','re-register\x20failed:\x20','SSE\x20connected\x20as\x20\x22','commhub_send_message','content','SSE\x20连续\x20>1h\x20连不上\x20hub\x20(','\x20/\x20hostname=','\x20RESUME_ID=','indexOf','Message\x20content','join','completed','report_status','hub','utf-8','.anet','parent\x20claude\x20pid=','code','14kDZzqc','min','connecting\x20to\x20','object','send_message','You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.','toTimeString','\x20PROJECT_ENV=','fatal:\x20','ENV:\x20URL=','2638206XcefbA','offline','statusText','slice','212784AsyGnN','pid','commhub_reply','31909141PJwLmA','\x20CWD=','1suwBDk','from','.env','Reply\x20using\x20the\x20commhub_reply\x20tool\x20to\x20report\x20status\x20or\x20results\x20back.','delete','get','idle',')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。','claude-code','SSE\x20error:\x20','Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','type','Session\x20alias:\x20','\x20from\x20','(none)','parse','stderr','→\x20injected\x20task\x20','tools/call','tmux\x20display-message\x20-p\x20\x27#S\x27','Bearer\x20','from_session','Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','commhub_get_all_status','SSE\x20connection\x20error:\x20','commhub','ready\x20—\x20waiting\x20for\x20events','write','registered\x20as\x20\x22','startsWith','message','message_id','\x22\x20(','new_task'];a0_0x53f1=function(){return _0xeed2d4;};return a0_0x53f1();}function _(){const _0x1dd500=a0_0x6498e1;try{let _0x8420f8=a0_0x2f0246(C,_0x1dd500(0x1c4),_0x1dd500(0x22d));if(a0_0x5942ba(_0x8420f8))return JSON['parse'](a0_0x3142f2(_0x8420f8,_0x1dd500(0x1c3)));}catch{}return{};}var R=_(),Y=process.env.COMMHUB_URL||R[a0_0x6498e1(0x1c2)]||'http://127.0.0.1:9200',j=process.env.COMMHUB_TMUX||E();function S(){const _0x3a076e=a0_0x6498e1;if(process.env.COMMHUB_ALIAS&&process.env.COMMHUB_ALIAS[_0x3a076e(0x226)]())return process.env.COMMHUB_ALIAS[_0x3a076e(0x226)]();return process[_0x3a076e(0x1ea)][_0x3a076e(0x1f5)](_0x3a076e(0x218)+(_0x3a076e(0x23b)+(j||_0x3a076e(0x1e8))+_0x3a076e(0x264)+a0_0x1a2197()+_0x3a076e(0x21e))),_0x3a076e(0x21a)+process[_0x3a076e(0x1d6)];}var p=S(),V=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0x4dbfec(),k=process.env.COMMHUB_TOKEN||R[a0_0x6498e1(0x25d)]||'';function z(_0x2c5ae9){const _0x57a4a3=a0_0x6498e1;let _0x3d1a51=new Date()[_0x57a4a3(0x1cd)]()[_0x57a4a3(0x1d4)](0x0,0x8);process[_0x57a4a3(0x1ea)][_0x57a4a3(0x1f5)]('['+_0x3d1a51+_0x57a4a3(0x23f)+_0x2c5ae9+'\x0a');}function i(_0x7acbf4){return new Promise(_0x918c4d=>setTimeout(_0x918c4d,_0x7acbf4));}z(a0_0x6498e1(0x1d0)+Y+a0_0x6498e1(0x228)+p+a0_0x6498e1(0x265)+V['slice'](0x0,0x8)+'...\x20TMUX='+(j||'none')+a0_0x6498e1(0x1d9)+process['cwd']()+a0_0x6498e1(0x1ce)+H);function a0_0x12a8(_0x42932b,_0x168bc2){_0x42932b=_0x42932b-0x1c2;const _0x53f185=a0_0x53f1();let _0x12a8f5=_0x53f185[_0x42932b];return _0x12a8f5;}var G=new Map(),K=new a0_0x5309a2({'name':a0_0x6498e1(0x250),'version':a0_0x6498e1(0x249)},{'capabilities':{'experimental':{'claude/channel':{}},'tools':{}},'instructions':['Messages\x20from\x20CommHub\x20arrive\x20as\x20<channel\x20source=\x22commhub\x22\x20task_id=\x22...\x22\x20priority=\x22...\x22\x20from=\x22...\x22>',a0_0x6498e1(0x201),a0_0x6498e1(0x1dd),a0_0x6498e1(0x1cc),a0_0x6498e1(0x1e6)+p][a0_0x6498e1(0x268)]('\x0a')});K[a0_0x6498e1(0x20f)](a0_0xf8f288,async()=>({'tools':[{'name':a0_0x6498e1(0x1d7),'description':a0_0x6498e1(0x259),'inputSchema':{'type':a0_0x6498e1(0x1ca),'properties':{'task_id':{'type':a0_0x6498e1(0x217),'description':'The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)'},'text':{'type':a0_0x6498e1(0x217),'description':a0_0x6498e1(0x212)},'status':{'type':a0_0x6498e1(0x217),'enum':[a0_0x6498e1(0x269),'failed','cancelled','blocked',a0_0x6498e1(0x1fc),'in_progress'],'description':a0_0x6498e1(0x203)}},'required':[a0_0x6498e1(0x227)]}},{'name':'commhub_report_status','description':a0_0x6498e1(0x1e4),'inputSchema':{'type':a0_0x6498e1(0x1ca),'properties':{'status':{'type':a0_0x6498e1(0x217),'enum':[a0_0x6498e1(0x200),a0_0x6498e1(0x1e0),a0_0x6498e1(0x1ff),a0_0x6498e1(0x1fc)]},'task':{'type':a0_0x6498e1(0x217),'description':a0_0x6498e1(0x256)},'progress':{'type':a0_0x6498e1(0x232),'description':a0_0x6498e1(0x234)}},'required':[a0_0x6498e1(0x21f)]}},{'name':a0_0x6498e1(0x225),'description':a0_0x6498e1(0x243),'inputSchema':{'type':'object','properties':{'alias':{'type':a0_0x6498e1(0x217),'description':a0_0x6498e1(0x213)},'task':{'type':a0_0x6498e1(0x217),'description':a0_0x6498e1(0x23c)},'priority':{'type':a0_0x6498e1(0x217),'enum':[a0_0x6498e1(0x229),'normal',a0_0x6498e1(0x20b)],'description':a0_0x6498e1(0x25c)}},'required':[a0_0x6498e1(0x209),a0_0x6498e1(0x25b)]}},{'name':'commhub_send_message','description':a0_0x6498e1(0x220),'inputSchema':{'type':a0_0x6498e1(0x1ca),'properties':{'alias':{'type':a0_0x6498e1(0x217),'description':a0_0x6498e1(0x213)},'message':{'type':'string','description':a0_0x6498e1(0x267)}},'required':[a0_0x6498e1(0x209),a0_0x6498e1(0x1f8)]}},{'name':'commhub_get_all_status','description':a0_0x6498e1(0x1f0),'inputSchema':{'type':a0_0x6498e1(0x1ca),'properties':{}}}]}));async function Q(_0x4e0162,_0x2255aa){const _0x30caa0=a0_0x6498e1;let _0xaa0c0f=await fetch(Y+'/mcp',{'method':_0x30caa0(0x223),'headers':{'Content-Type':_0x30caa0(0x253),'Accept':_0x30caa0(0x22c),...k?{'Authorization':_0x30caa0(0x1ee)+k}:{}},'body':JSON['stringify']({'jsonrpc':_0x30caa0(0x239),'id':0x1,'method':_0x30caa0(0x206),'params':{'protocolVersion':_0x30caa0(0x235),'capabilities':{},'clientInfo':{'name':'commhub-channel','version':_0x30caa0(0x249)}}})});if(!_0xaa0c0f['ok']){let _0x7422ca=await _0xaa0c0f[_0x30caa0(0x227)]();return z(_0x30caa0(0x25a)+_0xaa0c0f['status']+'\x20'+_0x7422ca[_0x30caa0(0x1d4)](0x0,0x64)),{'ok':!0x1,'error':'init\x20failed:\x20'+_0xaa0c0f[_0x30caa0(0x21f)]};}await _0xaa0c0f['text']();let _0x449b1f=(await(await fetch(Y+'/mcp',{'method':_0x30caa0(0x223),'headers':{'Content-Type':'application/json','Accept':_0x30caa0(0x22c),...k?{'Authorization':_0x30caa0(0x1ee)+k}:{}},'body':JSON[_0x30caa0(0x207)]({'jsonrpc':'2.0','id':0x2,'method':_0x30caa0(0x1ec),'params':{'name':_0x4e0162,'arguments':_0x2255aa}})}))[_0x30caa0(0x227)]())[_0x30caa0(0x257)]('\x0a')[_0x30caa0(0x22f)](_0x1f716d=>_0x1f716d[_0x30caa0(0x1f7)](_0x30caa0(0x224)));if(_0x449b1f){let _0x414ea9=JSON[_0x30caa0(0x1e9)](_0x449b1f['slice'](0x6));return _0x414ea9?.[_0x30caa0(0x21d)]?.['content']?.[0x0]?.[_0x30caa0(0x227)]?JSON[_0x30caa0(0x1e9)](_0x414ea9[_0x30caa0(0x21d)]['content'][0x0][_0x30caa0(0x227)]):_0x414ea9;}return{'ok':!0x1,'error':_0x30caa0(0x241)};}K[a0_0x6498e1(0x20f)](a0_0x32ca40,async _0x466126=>{const _0x3a4aa8=a0_0x6498e1;let {name:_0x50c34b,arguments:_0x1b3012}=_0x466126['params'];if(_0x50c34b===_0x3a4aa8(0x1d7)){let {task_id:_0x147a32,text:_0x171793,status:_0x5130bc}=_0x1b3012;if(_0x5130bc===_0x3a4aa8(0x269)||_0x5130bc===_0x3a4aa8(0x214)||_0x5130bc==='cancelled'){let _0x47123b=_0x5130bc==='completed'?'replied':_0x5130bc,_0x542e2c=_0x147a32?G[_0x3a4aa8(0x1df)](_0x147a32)||_0x3a4aa8(0x1c2):'hub',_0x5c7460=await Q('send_reply',{'alias':_0x542e2c,'text':_0x171793,'in_reply_to':_0x147a32||void 0x0,'status':_0x47123b,'from_session':p});if(_0x147a32)G[_0x3a4aa8(0x1de)](_0x147a32);return{'content':[{'type':_0x3a4aa8(0x227),'text':JSON[_0x3a4aa8(0x207)](_0x5c7460)}]};}let _0x491898=await Q('report_status',{'resume_id':V,'alias':p,'status':_0x5130bc===_0x3a4aa8(0x1ff)?_0x3a4aa8(0x1ff):_0x5130bc===_0x3a4aa8(0x1fc)?_0x3a4aa8(0x1fc):'working','task':_0x171793[_0x3a4aa8(0x1d4)](0x0,0xc8),'output':_0x171793});return{'content':[{'type':_0x3a4aa8(0x227),'text':JSON[_0x3a4aa8(0x207)](_0x491898)}]};}if(_0x50c34b==='commhub_report_status'){let {status:_0x427df2,task:_0x36a16d,progress:_0x476ce0}=_0x1b3012,_0x419e82=await Q(_0x3a4aa8(0x26a),{'resume_id':V,'alias':p,'status':_0x427df2,'task':_0x36a16d,'progress':_0x476ce0});return{'content':[{'type':'text','text':JSON[_0x3a4aa8(0x207)](_0x419e82)}]};}if(_0x50c34b==='commhub_send_task'){let {alias:_0x2c34a9,task:_0x46b1bd,priority:_0x5daa19}=_0x1b3012,_0x36f1ba=await Q(_0x3a4aa8(0x238),{'alias':_0x2c34a9,'task':_0x46b1bd,'priority':_0x5daa19||_0x3a4aa8(0x204),'from_session':p});return{'content':[{'type':_0x3a4aa8(0x227),'text':JSON['stringify'](_0x36f1ba)}]};}if(_0x50c34b===_0x3a4aa8(0x261)){let {alias:_0x1f601c,message:_0xbb1133}=_0x1b3012,_0x58fe62=await Q(_0x3a4aa8(0x1cb),{'alias':_0x1f601c,'message':_0xbb1133,'from_session':p});return{'content':[{'type':'text','text':JSON[_0x3a4aa8(0x207)](_0x58fe62)}]};}if(_0x50c34b===_0x3a4aa8(0x1f1)){let _0x36109c=await Q(_0x3a4aa8(0x215),{});return{'content':[{'type':_0x3a4aa8(0x227),'text':JSON['stringify'](_0x36109c)}]};}return{'content':[{'type':_0x3a4aa8(0x227),'text':JSON[_0x3a4aa8(0x207)]({'error':_0x3a4aa8(0x237)})}]};});var D=0x3e8,v=0x7530,O=0x36ee80;async function m(){const _0x3fd6d5=a0_0x6498e1;try{await Q('report_status',{'resume_id':V,'alias':p,'status':_0x3fd6d5(0x1e0),'server':a0_0x1a2197(),'hostname':a0_0x1a2197(),'agent':_0x3fd6d5(0x1e2),'project_dir':process[_0x3fd6d5(0x211)](),'tmux_name':j||void 0x0}),z('re-registered\x20as\x20\x22'+p+_0x3fd6d5(0x255));}catch(_0x2fac46){z(_0x3fd6d5(0x25f)+_0x2fac46);}}async function l(){const _0x5e0fcd=a0_0x6498e1;let _0x6987c7=Y+'/events/'+encodeURIComponent(p),_0x4f6bb4={};if(k)_0x4f6bb4[_0x5e0fcd(0x22b)]=_0x5e0fcd(0x1ee)+k;z(_0x5e0fcd(0x1c9)+_0x6987c7);let _0xc318e1=D,_0x457bba=!0x0,_0x43a182=null;while(!0x0){try{let _0x2679b0=await fetch(_0x6987c7,{'headers':_0x4f6bb4});if(!_0x2679b0['ok']){if(z(_0x5e0fcd(0x1e3)+_0x2679b0[_0x5e0fcd(0x21f)]+'\x20'+_0x2679b0[_0x5e0fcd(0x1d3)]),_0x43a182=_0x43a182??Date[_0x5e0fcd(0x22a)](),Date['now']()-_0x43a182>O){z(_0x5e0fcd(0x263)+Y+_0x5e0fcd(0x1e1));return;}await i(_0xc318e1),_0xc318e1=Math[_0x5e0fcd(0x1c8)](_0xc318e1*0x2,v);continue;}let _0x3923c7=_0x2679b0[_0x5e0fcd(0x233)]['getReader'](),_0x2d73e6=new TextDecoder(),_0x1f50a8='';_0xc318e1=D;while(!0x0){let {done:_0x195078,value:_0x3228b4}=await _0x3923c7[_0x5e0fcd(0x222)]();if(_0x195078)break;_0x1f50a8+=_0x2d73e6[_0x5e0fcd(0x221)](_0x3228b4,{'stream':!0x0});let _0x1cb17d=_0x1f50a8[_0x5e0fcd(0x257)]('\x0a\x0a');_0x1f50a8=_0x1cb17d[_0x5e0fcd(0x20e)]()||'';for(let _0x390013 of _0x1cb17d){let _0x5ec830=_0x390013['split']('\x0a')[_0x5e0fcd(0x22f)](_0xa2fbdd=>_0xa2fbdd[_0x5e0fcd(0x1f7)](_0x5e0fcd(0x224)));if(!_0x5ec830)continue;try{let _0x1567f0=JSON[_0x5e0fcd(0x1e9)](_0x5ec830[_0x5e0fcd(0x1d4)](0x6));if(await A(_0x1567f0),_0x1567f0[_0x5e0fcd(0x1e5)]===_0x5e0fcd(0x219)){if(_0x43a182=null,!_0x457bba)await m();_0x457bba=!0x1;}}catch(_0x1f40e0){z('parse\x20error:\x20'+_0x1f40e0);}}}z(_0x5e0fcd(0x205));}catch(_0xda38da){z(_0x5e0fcd(0x1f2)+_0xda38da);}if(_0x43a182=_0x43a182??Date[_0x5e0fcd(0x22a)](),Date[_0x5e0fcd(0x22a)]()-_0x43a182>O){z(_0x5e0fcd(0x263)+Y+')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。');return;}await i(_0xc318e1),_0xc318e1=Math[_0x5e0fcd(0x1c8)](_0xc318e1*0x2,v);}}async function A(_0xefe6ed){const _0x57ce02=a0_0x6498e1;if(_0xefe6ed[_0x57ce02(0x1e5)]==='connected'){z(_0x57ce02(0x260)+p+'\x22');return;}if(_0xefe6ed[_0x57ce02(0x1e5)]==='new_message'){if(z(_0x57ce02(0x246)+_0xefe6ed[_0x57ce02(0x1db)]+':\x20'+_0xefe6ed[_0x57ce02(0x1f8)][_0x57ce02(0x1d4)](0x0,0x3c)),await K['notification']({'method':'notifications/claude/channel','params':{'content':_0xefe6ed[_0x57ce02(0x1f8)],'meta':{'sender':_0xefe6ed[_0x57ce02(0x1db)]||_0x57ce02(0x1c2),'sender_id':_0x57ce02(0x1f3),'user':_0xefe6ed[_0x57ce02(0x1db)]||'hub','priority':_0x57ce02(0x204)}}}),_0xefe6ed[_0x57ce02(0x1f9)])await Q(_0x57ce02(0x242),{'alias':p,'message_id':_0xefe6ed[_0x57ce02(0x1f9)]});return;}if(_0xefe6ed['type']===_0x57ce02(0x1fb)||_0xefe6ed[_0x57ce02(0x1e5)]===_0x57ce02(0x248)){z('←\x20'+_0xefe6ed[_0x57ce02(0x1e5)]+_0x57ce02(0x24b)+_0xefe6ed['inbox_count']+_0x57ce02(0x236)+(_0xefe6ed[_0x57ce02(0x24a)]||'normal'));let _0x44d95c=await Q(_0x57ce02(0x240),{'alias':p,'limit':0x5});if(_0x44d95c?.['ok']&&_0x44d95c[_0x57ce02(0x258)]?.['length']>0x0)for(let _0x24ef1f of _0x44d95c[_0x57ce02(0x258)]){let _0xd3095f={'sender':_0x24ef1f[_0x57ce02(0x1ef)]||_0x57ce02(0x1c2),'sender_id':_0x57ce02(0x1f3),'user':_0x24ef1f[_0x57ce02(0x1ef)]||'hub','task_id':_0x24ef1f['id'],'priority':_0x24ef1f[_0x57ce02(0x24a)]||_0x57ce02(0x204)};G[_0x57ce02(0x1fd)](_0x24ef1f['id'],_0x24ef1f[_0x57ce02(0x1ef)]||_0x57ce02(0x1c2)),await K[_0x57ce02(0x23d)]({'method':'notifications/claude/channel','params':{'content':_0x24ef1f[_0x57ce02(0x262)],'meta':_0xd3095f}}),z(_0x57ce02(0x1eb)+_0x24ef1f['id'][_0x57ce02(0x1d4)](0x0,0x8)+_0x57ce02(0x1e7)+_0x24ef1f[_0x57ce02(0x1ef)]+':\x20'+_0x24ef1f[_0x57ce02(0x262)][_0x57ce02(0x1d4)](0x0,0x3c)),await Q(_0x57ce02(0x242),{'alias':p,'message_id':_0x24ef1f['id']});}}}async function t(){const _0x45229e=a0_0x6498e1;let _0x21b46a=new a0_0x5852f2();await K[_0x45229e(0x23a)](_0x21b46a),z(_0x45229e(0x230)),z('starting\x20SSE\x20listener...'),l()['catch'](_0x253586=>z(_0x45229e(0x247)+_0x253586)),Q(_0x45229e(0x26a),{'resume_id':V,'alias':p,'status':_0x45229e(0x1e0),'server':a0_0x1a2197(),'hostname':a0_0x1a2197(),'agent':_0x45229e(0x1e2),'project_dir':process[_0x45229e(0x211)](),'tmux_name':j||void 0x0})[_0x45229e(0x216)](()=>z(_0x45229e(0x1f6)+p+_0x45229e(0x1fa)+V['slice'](0x0,0x8)+')'))['catch'](_0x16071d=>z('warning:\x20could\x20not\x20register:\x20'+_0x16071d)),setInterval(()=>{const _0x5c3775=_0x45229e;Q(_0x5c3775(0x26a),{'resume_id':V,'alias':p,'status':_0x5c3775(0x1e0),'server':a0_0x1a2197(),'hostname':a0_0x1a2197(),'agent':_0x5c3775(0x1e2),'project_dir':process[_0x5c3775(0x211)](),'tmux_name':j||void 0x0})[_0x5c3775(0x24e)](_0x337921=>z('heartbeat\x20failed:\x20'+_0x337921));},0x2bf20),z(_0x45229e(0x1f4));}t()['catch'](_0x34b6de=>{const _0x2e4da7=a0_0x6498e1;z(_0x2e4da7(0x1cf)+_0x34b6de),process[_0x2e4da7(0x244)](0x1);});async function b(){const _0x256fdc=a0_0x6498e1;z('shutting\x20down,\x20reporting\x20offline...'),await Q(_0x256fdc(0x26a),{'resume_id':V,'alias':p,'status':_0x256fdc(0x1d2),'task':_0x256fdc(0x24c)})[_0x256fdc(0x24e)](()=>{}),process[_0x256fdc(0x244)](0x0);}process[a0_0x6498e1(0x1fe)]['on']('end',()=>b()),process['on'](a0_0x6498e1(0x245),()=>b()),process['on'](a0_0x6498e1(0x208),()=>b());var d=process[a0_0x6498e1(0x254)];if(d&&d>0x1){let h=setInterval(()=>{const _0x2915d1=a0_0x6498e1;if(process[_0x2915d1(0x254)]===0x1&&d!==0x1){z(_0x2915d1(0x20c)+d+_0x2915d1(0x251)),b();return;}try{process[_0x2915d1(0x23e)](d,0x0);}catch(_0x373226){if(_0x373226?.[_0x2915d1(0x1c6)]===_0x2915d1(0x25e))z(_0x2915d1(0x1c5)+d+_0x2915d1(0x21b)),b();}},0x7530);if(typeof h[a0_0x6498e1(0x20d)]==='function')h[a0_0x6498e1(0x20d)]();}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
export type RuntimeName = "claude-code-cli" | "codex-sdk" | "claude-agent-sdk" | "grok-build-acp" | "grok-build-cli" | "opencode-cli" | "codex-app-server";
|
|
2
2
|
/** Operator-facing default for any runtime slot that comes in empty / missing / unrecognized. */
|
|
3
3
|
export declare const DEFAULT_RUNTIME: RuntimeName;
|
|
4
|
+
/**
|
|
5
|
+
* Runtimes launched through the agent-node supervisor rather than by spawning
|
|
6
|
+
* the Claude Code CLI directly. Keep this predicate exhaustive so adding a
|
|
7
|
+
* runtime cannot silently fall into the Claude launcher branch.
|
|
8
|
+
*/
|
|
9
|
+
export declare function runtimeUsesAgentNode(runtime: RuntimeName): boolean;
|
|
4
10
|
type ProfileLike = {
|
|
5
11
|
runtime?: string;
|
|
6
12
|
codexRuntime?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export declare const OPENCODE_AGENT_NETWORK_VERSION = "2.3.0-preview.
|
|
2
|
-
export declare const OPENCODE_AGENT_NODE_VERSION = "2.5.0-preview.
|
|
3
|
-
export declare const OPENCODE_AGENT_NODE_SPEC = "@sleep2agi/agent-node@2.5.0-preview.
|
|
1
|
+
export declare const OPENCODE_AGENT_NETWORK_VERSION = "2.3.0-preview.28";
|
|
2
|
+
export declare const OPENCODE_AGENT_NODE_VERSION = "2.5.0-preview.24";
|
|
3
|
+
export declare const OPENCODE_AGENT_NODE_SPEC = "@sleep2agi/agent-node@2.5.0-preview.24";
|
|
4
4
|
export declare function opencodeExactPairInstallCommand(): string;
|
|
5
5
|
/** Runtime capability advertised by agent-node's operator-facing help. */
|
|
6
6
|
export declare function agentNodeHelpSupportsOpencode(help: string): boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sleep2agi/agent-network",
|
|
3
|
-
"version": "2.3.0-preview.
|
|
3
|
+
"version": "2.3.0-preview.28",
|
|
4
4
|
"description": "AI Agent Network CLI — Local-first multi-agent orchestration across Claude, Codex, Grok (ACP plus experimental co-presence TUI), and OpenCode runtimes. Apache 2.0.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/client.js",
|