@sleep2agi/agent-network 2.3.0-preview.22 → 2.3.0-preview.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env bun
2
- const a0_0x381461=a0_0x4a44;(function(_0x33a132,_0x44e9d9){const _0x587d61=a0_0x4a44,_0x5d48e7=_0x33a132();while(!![]){try{const _0x493286=parseInt(_0x587d61(0x187))/0x1+parseInt(_0x587d61(0x14f))/0x2*(-parseInt(_0x587d61(0x14c))/0x3)+-parseInt(_0x587d61(0x18d))/0x4*(-parseInt(_0x587d61(0x17a))/0x5)+parseInt(_0x587d61(0x146))/0x6+-parseInt(_0x587d61(0x139))/0x7+parseInt(_0x587d61(0x1c8))/0x8*(parseInt(_0x587d61(0x198))/0x9)+parseInt(_0x587d61(0x1ab))/0xa*(-parseInt(_0x587d61(0x16c))/0xb);if(_0x493286===_0x44e9d9)break;else _0x5d48e7['push'](_0x5d48e7['shift']());}catch(_0x4250e5){_0x5d48e7['push'](_0x5d48e7['shift']());}}}(a0_0x5f4b,0xaf23a));import{readFileSync as a0_0x27c08a,existsSync as a0_0x1b3e2b}from'fs';import{randomUUID as a0_0x1c4ee0}from'crypto';import{join as a0_0x3777b1}from'path';import{hostname as a0_0x123de3}from'os';import{execSync as a0_0x2105b5}from'child_process';function B(_0x5589e0){const _0x204bdd=a0_0x4a44;let _0x4b61ee=_0x5589e0['replace'](/[^a-zA-Z0-9\-_]/g,'-');return _0x4b61ee===''?_0x204bdd(0x141):_0x4b61ee;}import{Server as a0_0x3f0c72}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0x5b6013}from'@modelcontextprotocol/sdk/server/stdio.js';import{ListToolsRequestSchema as a0_0x19929b,CallToolRequestSchema as a0_0x409267}from'@modelcontextprotocol/sdk/types.js';function T(_0x4fa907){const _0x27f8ee=a0_0x4a44;if(!a0_0x1b3e2b(_0x4fa907))return;for(let _0x215110 of a0_0x27c08a(_0x4fa907,_0x27f8ee(0x14b))['split']('\x0a')){let _0x206993=_0x215110[_0x27f8ee(0x1b1)]();if(!_0x206993||_0x206993[_0x27f8ee(0x199)]('#'))continue;let _0x1d5ce6=_0x206993[_0x27f8ee(0x15b)]('=');if(_0x1d5ce6<0x0)continue;let _0x8372f5=_0x206993[_0x27f8ee(0x1ad)](0x0,_0x1d5ce6)[_0x27f8ee(0x1b1)](),_0xe466a6=_0x206993[_0x27f8ee(0x1ad)](_0x1d5ce6+0x1)[_0x27f8ee(0x1b1)]()['replace'](/^["']|["']$/g,'');if(!process.env[_0x8372f5])process.env[_0x8372f5]=_0xe466a6;}}var C=process.env.HOME||'~',r=a0_0x3777b1(C,a0_0x381461(0x186));T(a0_0x3777b1(r,a0_0x381461(0x17b)));var H=B(process[a0_0x381461(0x15a)]());T(a0_0x3777b1(r,H,a0_0x381461(0x17b)));function E(){const _0xca7d39=a0_0x381461;try{return a0_0x2105b5(_0xca7d39(0x133),{'encoding':_0xca7d39(0x14b),'timeout':0x7d0})[_0xca7d39(0x1b1)]();}catch{return'';}}function _(){const _0x1a4502=a0_0x381461;try{let _0x5a8358=a0_0x3777b1(C,'.anet','config.json');if(a0_0x1b3e2b(_0x5a8358))return JSON['parse'](a0_0x27c08a(_0x5a8358,_0x1a4502(0x14b)));}catch{}return{};}var R=_(),Y=process.env.COMMHUB_URL||R['hub']||'http://127.0.0.1:9200',j=process.env.COMMHUB_TMUX||E();function a0_0x5f4b(){const _0x10aae3=['→\x20injected\x20task\x20','completed','parse','ppid','commhub_send_message','result','Reply\x20to\x20a\x20CommHub\x20task\x20—\x20report\x20completion\x20or\x20send\x20a\x20message\x20back\x20to\x20the\x20hub.','error','working','data:\x20','normal','15ctyNUf','.env','in_progress','string','SIGTERM','unattributed-',')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。','heartbeat\x20failed:\x20','number','find','Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','SSE\x20fatal:\x20','.claude/channels/commhub','275294fbIQaJ','status','application/json,\x20text/event-stream','failed','connected','Bearer\x20','1531792Zkazdp','\x20PROJECT_ENV=','(none)','stringify','content','tools/call','kill','...\x20TMUX=','Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','code','getReader','647523zdGddD','startsWith','[commhub]\x20WARN:\x20COMMHUB_ALIAS\x20env\x20var\x20is\x20unset\x20—\x20outbound\x20from_session\x20','write','length','blocked','\x20RESUME_ID=','The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)','Session\x20alias:\x20','MCP\x20stdio\x20connected','end','report_status','SSE\x20connected\x20as\x20\x22','shutting\x20down,\x20reporting\x20offline...','get','Reply\x20text\x20/\x20result\x20summary',')\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat','object','Reply\x20using\x20the\x20commhub_reply\x20tool\x20to\x20report\x20status\x20or\x20results\x20back.','140badgoe','send_task','slice','offline','\x20from\x20','init\x20failed:\x20','trim','Message\x20content','would\x20mis-attribute.\x20Refusing\x20to\x20guess\x20from\x20TMUX_NAME=','\x22\x20(','setRequestHandler','new_task','starting\x20SSE\x20listener...','pid','Task\x20content','You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.','alias','claude-code','2.0','messages','parent\x20claude\x20died\x20(reparented\x20to\x20PID\x201\x20from\x20','high','ack_inbox','from_session','priority','unknown\x20tool','Current\x20task\x20description','commhub_get_all_status','no\x20response','104hIfpjm','task','set',']\x20[commhub]\x20','unref','2025-03-26','send_reply','broadcast','now','These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.','message_id','tmux\x20display-message\x20-p\x20\x27#S\x27','cancelled','\x20CWD=','catch','commhub_report_status','Priority\x20(default:\x20normal)','5497933cyfBqE','←\x20message\x20from\x20','Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','0.3.0','hub','type','from','parse\x20error:\x20','unknown','pop','function','inbox_count','/mcp','8557788OIcwUK','SSE\x20连续\x20>1h\x20连不上\x20hub\x20(','connect','decode',':\x20inbox_count=','utf-8','22620nNxAxC','ESRCH','stdin','208LYDuvq','Authorization','min','split','stderr','toTimeString','session\x20disconnected','.\x20Restart\x20node\x20via\x20`anet\x20node\x20start\x20<alias>`\x20so\x20the\x20env\x20is\x20set\x20explicitly\x20(#203).\x0a','Target\x20session\x20alias','fatal:\x20','\x20/\x20hostname=','cwd','indexOf','message','get_inbox','application/json','exit','/events/','commhub-channel','commhub','registered\x20as\x20\x22','text','notifications/claude/channel','notification','Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates','\x20priority=','commhub_send_task','commhub_reply','idle','1177627IwKWgK','POST','ready\x20—\x20waiting\x20for\x20events'];a0_0x5f4b=function(){return _0x10aae3;};return a0_0x5f4b();}function S(){const _0xb69a9e=a0_0x381461;if(process.env.COMMHUB_ALIAS&&process.env.COMMHUB_ALIAS[_0xb69a9e(0x1b1)]())return process.env.COMMHUB_ALIAS[_0xb69a9e(0x1b1)]();return process[_0xb69a9e(0x153)][_0xb69a9e(0x19b)](_0xb69a9e(0x19a)+(_0xb69a9e(0x1b3)+(j||_0xb69a9e(0x18f))+_0xb69a9e(0x159)+a0_0x123de3()+_0xb69a9e(0x156))),_0xb69a9e(0x17f)+process[_0xb69a9e(0x1b8)];}var p=S(),V=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0x1c4ee0(),k=process.env.COMMHUB_TOKEN||R['token']||'';function z(_0xa1078d){const _0x193111=a0_0x381461;let _0xf2abda=new Date()[_0x193111(0x154)]()[_0x193111(0x1ad)](0x0,0x8);process[_0x193111(0x153)][_0x193111(0x19b)]('['+_0xf2abda+_0x193111(0x1cb)+_0xa1078d+'\x0a');}function a0_0x4a44(_0x3a147d,_0x3a95eb){_0x3a147d=_0x3a147d-0x133;const _0x5f4b57=a0_0x5f4b();let _0x4a44de=_0x5f4b57[_0x3a147d];return _0x4a44de;}function i(_0x44e2d7){return new Promise(_0x583dc0=>setTimeout(_0x583dc0,_0x44e2d7));}z('ENV:\x20URL='+Y+'\x20ALIAS='+p+a0_0x381461(0x19e)+V[a0_0x381461(0x1ad)](0x0,0x8)+a0_0x381461(0x194)+(j||'none')+a0_0x381461(0x135)+process[a0_0x381461(0x15a)]()+a0_0x381461(0x18e)+H);var G=new Map(),K=new a0_0x3f0c72({'name':a0_0x381461(0x161),'version':'0.3.0'},{'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_0x381461(0x1d1),a0_0x381461(0x1aa),a0_0x381461(0x1ba),a0_0x381461(0x1a0)+p]['join']('\x0a')});K[a0_0x381461(0x1b5)](a0_0x19929b,async()=>({'tools':[{'name':a0_0x381461(0x16a),'description':a0_0x381461(0x175),'inputSchema':{'type':a0_0x381461(0x1a9),'properties':{'task_id':{'type':'string','description':a0_0x381461(0x19f)},'text':{'type':a0_0x381461(0x17d),'description':a0_0x381461(0x1a7)},'status':{'type':a0_0x381461(0x17d),'enum':[a0_0x381461(0x170),a0_0x381461(0x18a),'cancelled',a0_0x381461(0x19d),a0_0x381461(0x176),a0_0x381461(0x17c)],'description':a0_0x381461(0x167)}},'required':[a0_0x381461(0x164)]}},{'name':a0_0x381461(0x137),'description':a0_0x381461(0x13b),'inputSchema':{'type':a0_0x381461(0x1a9),'properties':{'status':{'type':'string','enum':[a0_0x381461(0x177),a0_0x381461(0x16b),a0_0x381461(0x19d),'error']},'task':{'type':a0_0x381461(0x17d),'description':a0_0x381461(0x1c5)},'progress':{'type':a0_0x381461(0x182),'description':'Progress\x200-100'}},'required':['status']}},{'name':a0_0x381461(0x169),'description':a0_0x381461(0x184),'inputSchema':{'type':a0_0x381461(0x1a9),'properties':{'alias':{'type':'string','description':a0_0x381461(0x157)},'task':{'type':a0_0x381461(0x17d),'description':a0_0x381461(0x1b9)},'priority':{'type':'string','enum':[a0_0x381461(0x1c0),a0_0x381461(0x179),'low'],'description':a0_0x381461(0x138)}},'required':['alias',a0_0x381461(0x1c9)]}},{'name':a0_0x381461(0x173),'description':a0_0x381461(0x195),'inputSchema':{'type':'object','properties':{'alias':{'type':'string','description':'Target\x20session\x20alias'},'message':{'type':a0_0x381461(0x17d),'description':a0_0x381461(0x1b2)}},'required':[a0_0x381461(0x1bb),a0_0x381461(0x15c)]}},{'name':a0_0x381461(0x1c6),'description':'Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','inputSchema':{'type':'object','properties':{}}}]}));async function Q(_0x1f89bf,_0x1ab88c){const _0x55c786=a0_0x381461;let _0x13c808=await fetch(Y+'/mcp',{'method':_0x55c786(0x16d),'headers':{'Content-Type':'application/json','Accept':_0x55c786(0x189),...k?{'Authorization':_0x55c786(0x18c)+k}:{}},'body':JSON[_0x55c786(0x190)]({'jsonrpc':_0x55c786(0x1bd),'id':0x1,'method':'initialize','params':{'protocolVersion':_0x55c786(0x1cd),'capabilities':{},'clientInfo':{'name':_0x55c786(0x161),'version':_0x55c786(0x13c)}}})});if(!_0x13c808['ok']){let _0x32ddb3=await _0x13c808[_0x55c786(0x164)]();return z('CommHub\x20init\x20failed:\x20'+_0x13c808[_0x55c786(0x188)]+'\x20'+_0x32ddb3[_0x55c786(0x1ad)](0x0,0x64)),{'ok':!0x1,'error':_0x55c786(0x1b0)+_0x13c808[_0x55c786(0x188)]};}await _0x13c808[_0x55c786(0x164)]();let _0x24b7b2=(await(await fetch(Y+_0x55c786(0x145),{'method':'POST','headers':{'Content-Type':_0x55c786(0x15e),'Accept':'application/json,\x20text/event-stream',...k?{'Authorization':_0x55c786(0x18c)+k}:{}},'body':JSON[_0x55c786(0x190)]({'jsonrpc':_0x55c786(0x1bd),'id':0x2,'method':_0x55c786(0x192),'params':{'name':_0x1f89bf,'arguments':_0x1ab88c}})}))[_0x55c786(0x164)]())['split']('\x0a')[_0x55c786(0x183)](_0x24c575=>_0x24c575[_0x55c786(0x199)]('data:\x20'));if(_0x24b7b2){let _0x48cc4d=JSON[_0x55c786(0x171)](_0x24b7b2[_0x55c786(0x1ad)](0x6));return _0x48cc4d?.['result']?.['content']?.[0x0]?.[_0x55c786(0x164)]?JSON['parse'](_0x48cc4d[_0x55c786(0x174)][_0x55c786(0x191)][0x0][_0x55c786(0x164)]):_0x48cc4d;}return{'ok':!0x1,'error':_0x55c786(0x1c7)};}K[a0_0x381461(0x1b5)](a0_0x409267,async _0x49a111=>{const _0x3353f8=a0_0x381461;let {name:_0x3db445,arguments:_0x500406}=_0x49a111['params'];if(_0x3db445==='commhub_reply'){let {task_id:_0x1fecdb,text:_0x14a00a,status:_0xfcfc2}=_0x500406;if(_0xfcfc2===_0x3353f8(0x170)||_0xfcfc2===_0x3353f8(0x18a)||_0xfcfc2===_0x3353f8(0x134)){let _0x2f75f6=_0xfcfc2===_0x3353f8(0x170)?'replied':_0xfcfc2,_0x2c230c=_0x1fecdb?G[_0x3353f8(0x1a6)](_0x1fecdb)||_0x3353f8(0x13d):_0x3353f8(0x13d),_0x3ffeae=await Q(_0x3353f8(0x1ce),{'alias':_0x2c230c,'text':_0x14a00a,'in_reply_to':_0x1fecdb||void 0x0,'status':_0x2f75f6,'from_session':p});if(_0x1fecdb)G['delete'](_0x1fecdb);return{'content':[{'type':_0x3353f8(0x164),'text':JSON[_0x3353f8(0x190)](_0x3ffeae)}]};}let _0x801497=await Q(_0x3353f8(0x1a3),{'resume_id':V,'alias':p,'status':_0xfcfc2==='blocked'?_0x3353f8(0x19d):_0xfcfc2===_0x3353f8(0x176)?_0x3353f8(0x176):_0x3353f8(0x177),'task':_0x14a00a[_0x3353f8(0x1ad)](0x0,0xc8),'output':_0x14a00a});return{'content':[{'type':_0x3353f8(0x164),'text':JSON['stringify'](_0x801497)}]};}if(_0x3db445===_0x3353f8(0x137)){let {status:_0x48990c,task:_0x466086,progress:_0xcfcccb}=_0x500406,_0x2a0c98=await Q(_0x3353f8(0x1a3),{'resume_id':V,'alias':p,'status':_0x48990c,'task':_0x466086,'progress':_0xcfcccb});return{'content':[{'type':_0x3353f8(0x164),'text':JSON[_0x3353f8(0x190)](_0x2a0c98)}]};}if(_0x3db445==='commhub_send_task'){let {alias:_0x9001e8,task:_0x19a34d,priority:_0x4bf2d9}=_0x500406,_0x32c827=await Q(_0x3353f8(0x1ac),{'alias':_0x9001e8,'task':_0x19a34d,'priority':_0x4bf2d9||_0x3353f8(0x179),'from_session':p});return{'content':[{'type':'text','text':JSON[_0x3353f8(0x190)](_0x32c827)}]};}if(_0x3db445==='commhub_send_message'){let {alias:_0x58acea,message:_0x619038}=_0x500406,_0x3cad74=await Q('send_message',{'alias':_0x58acea,'message':_0x619038,'from_session':p});return{'content':[{'type':_0x3353f8(0x164),'text':JSON['stringify'](_0x3cad74)}]};}if(_0x3db445===_0x3353f8(0x1c6)){let _0x4538ae=await Q('get_all_status',{});return{'content':[{'type':_0x3353f8(0x164),'text':JSON[_0x3353f8(0x190)](_0x4538ae)}]};}return{'content':[{'type':_0x3353f8(0x164),'text':JSON[_0x3353f8(0x190)]({'error':_0x3353f8(0x1c4)})}]};});var D=0x3e8,v=0x7530,O=0x36ee80;async function m(){const _0x54944e=a0_0x381461;try{await Q(_0x54944e(0x1a3),{'resume_id':V,'alias':p,'status':_0x54944e(0x16b),'server':a0_0x123de3(),'hostname':a0_0x123de3(),'agent':_0x54944e(0x1bc),'project_dir':process['cwd'](),'tmux_name':j||void 0x0}),z('re-registered\x20as\x20\x22'+p+'\x22\x20after\x20SSE\x20reconnect');}catch(_0x4cffcb){z('re-register\x20failed:\x20'+_0x4cffcb);}}async function l(){const _0x28d855=a0_0x381461;let _0x235ae6=Y+_0x28d855(0x160)+encodeURIComponent(p),_0x49a300={};if(k)_0x49a300[_0x28d855(0x150)]='Bearer\x20'+k;z('connecting\x20to\x20'+_0x235ae6);let _0x1e9f3f=D,_0x3c6715=!0x0,_0x3d31e9=null;while(!0x0){try{let _0xeb66be=await fetch(_0x235ae6,{'headers':_0x49a300});if(!_0xeb66be['ok']){if(z('SSE\x20error:\x20'+_0xeb66be[_0x28d855(0x188)]+'\x20'+_0xeb66be['statusText']),_0x3d31e9=_0x3d31e9??Date[_0x28d855(0x1d0)](),Date['now']()-_0x3d31e9>O){z('SSE\x20连续\x20>1h\x20连不上\x20hub\x20('+Y+_0x28d855(0x180));return;}await i(_0x1e9f3f),_0x1e9f3f=Math[_0x28d855(0x151)](_0x1e9f3f*0x2,v);continue;}let _0x221263=_0xeb66be['body'][_0x28d855(0x197)](),_0x5cc1dd=new TextDecoder(),_0x50aca2='';_0x1e9f3f=D;while(!0x0){let {done:_0x42efe1,value:_0x497c63}=await _0x221263['read']();if(_0x42efe1)break;_0x50aca2+=_0x5cc1dd[_0x28d855(0x149)](_0x497c63,{'stream':!0x0});let _0x1f00f4=_0x50aca2[_0x28d855(0x152)]('\x0a\x0a');_0x50aca2=_0x1f00f4[_0x28d855(0x142)]()||'';for(let _0xeffb77 of _0x1f00f4){let _0x54bff8=_0xeffb77[_0x28d855(0x152)]('\x0a')[_0x28d855(0x183)](_0x40fdc7=>_0x40fdc7[_0x28d855(0x199)](_0x28d855(0x178)));if(!_0x54bff8)continue;try{let _0x2c0d5b=JSON[_0x28d855(0x171)](_0x54bff8[_0x28d855(0x1ad)](0x6));if(await A(_0x2c0d5b),_0x2c0d5b[_0x28d855(0x13e)]===_0x28d855(0x18b)){if(_0x3d31e9=null,!_0x3c6715)await m();_0x3c6715=!0x1;}}catch(_0x3ff333){z(_0x28d855(0x140)+_0x3ff333);}}}z('SSE\x20stream\x20ended,\x20reconnecting...');}catch(_0x13d01d){z('SSE\x20connection\x20error:\x20'+_0x13d01d);}if(_0x3d31e9=_0x3d31e9??Date['now'](),Date[_0x28d855(0x1d0)]()-_0x3d31e9>O){z(_0x28d855(0x147)+Y+_0x28d855(0x180));return;}await i(_0x1e9f3f),_0x1e9f3f=Math['min'](_0x1e9f3f*0x2,v);}}async function A(_0x17e91c){const _0x292ebb=a0_0x381461;if(_0x17e91c['type']==='connected'){z(_0x292ebb(0x1a4)+p+'\x22');return;}if(_0x17e91c[_0x292ebb(0x13e)]==='new_message'){if(z(_0x292ebb(0x13a)+_0x17e91c[_0x292ebb(0x13f)]+':\x20'+_0x17e91c['message'][_0x292ebb(0x1ad)](0x0,0x3c)),await K[_0x292ebb(0x166)]({'method':_0x292ebb(0x165),'params':{'content':_0x17e91c[_0x292ebb(0x15c)],'meta':{'sender':_0x17e91c['from']||_0x292ebb(0x13d),'sender_id':_0x292ebb(0x162),'user':_0x17e91c[_0x292ebb(0x13f)]||_0x292ebb(0x13d),'priority':_0x292ebb(0x179)}}}),_0x17e91c[_0x292ebb(0x1d2)])await Q('ack_inbox',{'alias':p,'message_id':_0x17e91c[_0x292ebb(0x1d2)]});return;}if(_0x17e91c[_0x292ebb(0x13e)]===_0x292ebb(0x1b6)||_0x17e91c['type']===_0x292ebb(0x1cf)){z('←\x20'+_0x17e91c['type']+_0x292ebb(0x14a)+_0x17e91c[_0x292ebb(0x144)]+_0x292ebb(0x168)+(_0x17e91c[_0x292ebb(0x1c3)]||_0x292ebb(0x179)));let _0x3e2090=await Q(_0x292ebb(0x15d),{'alias':p,'limit':0x5});if(_0x3e2090?.['ok']&&_0x3e2090[_0x292ebb(0x1be)]?.[_0x292ebb(0x19c)]>0x0)for(let _0x5f1d8e of _0x3e2090['messages']){let _0x134953={'sender':_0x5f1d8e['from_session']||'hub','sender_id':_0x292ebb(0x162),'user':_0x5f1d8e[_0x292ebb(0x1c2)]||_0x292ebb(0x13d),'task_id':_0x5f1d8e['id'],'priority':_0x5f1d8e[_0x292ebb(0x1c3)]||'normal'};G[_0x292ebb(0x1ca)](_0x5f1d8e['id'],_0x5f1d8e[_0x292ebb(0x1c2)]||_0x292ebb(0x13d)),await K['notification']({'method':_0x292ebb(0x165),'params':{'content':_0x5f1d8e[_0x292ebb(0x191)],'meta':_0x134953}}),z(_0x292ebb(0x16f)+_0x5f1d8e['id']['slice'](0x0,0x8)+_0x292ebb(0x1af)+_0x5f1d8e[_0x292ebb(0x1c2)]+':\x20'+_0x5f1d8e[_0x292ebb(0x191)][_0x292ebb(0x1ad)](0x0,0x3c)),await Q(_0x292ebb(0x1c1),{'alias':p,'message_id':_0x5f1d8e['id']});}}}async function t(){const _0x3504eb=a0_0x381461;let _0x4aa5c4=new a0_0x5b6013();await K[_0x3504eb(0x148)](_0x4aa5c4),z(_0x3504eb(0x1a1)),z(_0x3504eb(0x1b7)),l()[_0x3504eb(0x136)](_0x966733=>z(_0x3504eb(0x185)+_0x966733)),Q(_0x3504eb(0x1a3),{'resume_id':V,'alias':p,'status':_0x3504eb(0x16b),'server':a0_0x123de3(),'hostname':a0_0x123de3(),'agent':_0x3504eb(0x1bc),'project_dir':process['cwd'](),'tmux_name':j||void 0x0})['then'](()=>z(_0x3504eb(0x163)+p+_0x3504eb(0x1b4)+V[_0x3504eb(0x1ad)](0x0,0x8)+')'))[_0x3504eb(0x136)](_0x3d624f=>z('warning:\x20could\x20not\x20register:\x20'+_0x3d624f)),setInterval(()=>{const _0x3be89c=_0x3504eb;Q(_0x3be89c(0x1a3),{'resume_id':V,'alias':p,'status':_0x3be89c(0x16b),'server':a0_0x123de3(),'hostname':a0_0x123de3(),'agent':_0x3be89c(0x1bc),'project_dir':process['cwd'](),'tmux_name':j||void 0x0})[_0x3be89c(0x136)](_0x19bc83=>z(_0x3be89c(0x181)+_0x19bc83));},0x2bf20),z(_0x3504eb(0x16e));}t()[a0_0x381461(0x136)](_0x22884a=>{const _0x5b52e4=a0_0x381461;z(_0x5b52e4(0x158)+_0x22884a),process[_0x5b52e4(0x15f)](0x1);});async function b(){const _0x5803ad=a0_0x381461;z(_0x5803ad(0x1a5)),await Q('report_status',{'resume_id':V,'alias':p,'status':_0x5803ad(0x1ae),'task':_0x5803ad(0x155)})[_0x5803ad(0x136)](()=>{}),process['exit'](0x0);}process[a0_0x381461(0x14e)]['on'](a0_0x381461(0x1a2),()=>b()),process['on'](a0_0x381461(0x17e),()=>b()),process['on']('SIGINT',()=>b());var d=process['ppid'];if(d&&d>0x1){let h=setInterval(()=>{const _0x49f4d8=a0_0x381461;if(process[_0x49f4d8(0x172)]===0x1&&d!==0x1){z(_0x49f4d8(0x1bf)+d+_0x49f4d8(0x1a8)),b();return;}try{process[_0x49f4d8(0x193)](d,0x0);}catch(_0x132f6d){if(_0x132f6d?.[_0x49f4d8(0x196)]===_0x49f4d8(0x14d))z('parent\x20claude\x20pid='+d+'\x20no\x20longer\x20exists\x20(kill-0\x20ESRCH)\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat'),b();}},0x7530);if(typeof h[a0_0x381461(0x1cc)]===a0_0x381461(0x143))h[a0_0x381461(0x1cc)]();}
2
+ const a0_0x3b6422=a0_0xf80d;(function(_0x574999,_0x77944f){const _0x161710=a0_0xf80d,_0xea13ec=_0x574999();while(!![]){try{const _0x5ac65b=-parseInt(_0x161710(0x1d7))/0x1+-parseInt(_0x161710(0x1d6))/0x2+-parseInt(_0x161710(0x1f5))/0x3+-parseInt(_0x161710(0x183))/0x4+-parseInt(_0x161710(0x1ce))/0x5+-parseInt(_0x161710(0x209))/0x6*(-parseInt(_0x161710(0x1a2))/0x7)+-parseInt(_0x161710(0x1ba))/0x8*(-parseInt(_0x161710(0x1e3))/0x9);if(_0x5ac65b===_0x77944f)break;else _0xea13ec['push'](_0xea13ec['shift']());}catch(_0x8636e2){_0xea13ec['push'](_0xea13ec['shift']());}}}(a0_0x21d0,0x716aa));import{readFileSync as a0_0x91ce9,existsSync as a0_0x28dea3}from'fs';import{randomUUID as a0_0x510387}from'crypto';import{join as a0_0x362b52}from'path';import{hostname as a0_0x453644}from'os';import{execSync as a0_0x558b7a}from'child_process';function B(_0x1a0ce0){const _0x1f0e4e=a0_0xf80d;let _0x5d9e21=_0x1a0ce0[_0x1f0e4e(0x1c1)](/[^a-zA-Z0-9\-_]/g,'-');return _0x5d9e21===''?'unknown':_0x5d9e21;}import{Server as a0_0x3d67c8}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0xc69828}from'@modelcontextprotocol/sdk/server/stdio.js';import{ListToolsRequestSchema as a0_0x643f8c,CallToolRequestSchema as a0_0x700957}from'@modelcontextprotocol/sdk/types.js';function T(_0x54347e){const _0x38d283=a0_0xf80d;if(!a0_0x28dea3(_0x54347e))return;for(let _0x280977 of a0_0x91ce9(_0x54347e,'utf-8')[_0x38d283(0x1f2)]('\x0a')){let _0x1bc511=_0x280977[_0x38d283(0x1f9)]();if(!_0x1bc511||_0x1bc511[_0x38d283(0x1fa)]('#'))continue;let _0x609a2c=_0x1bc511[_0x38d283(0x1a0)]('=');if(_0x609a2c<0x0)continue;let _0xbb42cb=_0x1bc511[_0x38d283(0x1cf)](0x0,_0x609a2c)[_0x38d283(0x1f9)](),_0x4b81fe=_0x1bc511['slice'](_0x609a2c+0x1)[_0x38d283(0x1f9)]()[_0x38d283(0x1c1)](/^["']|["']$/g,'');if(!process.env[_0xbb42cb])process.env[_0xbb42cb]=_0x4b81fe;}}var C=process.env.HOME||'~',r=a0_0x362b52(C,a0_0x3b6422(0x1d9));T(a0_0x362b52(r,a0_0x3b6422(0x1e0)));var H=B(process['cwd']());T(a0_0x362b52(r,H,a0_0x3b6422(0x1e0)));function E(){const _0x10e5d2=a0_0x3b6422;try{return a0_0x558b7a(_0x10e5d2(0x1b4),{'encoding':_0x10e5d2(0x1a8),'timeout':0x7d0})['trim']();}catch{return'';}}function _(){const _0x35605c=a0_0x3b6422;try{let _0x50f503=a0_0x362b52(C,_0x35605c(0x208),_0x35605c(0x191));if(a0_0x28dea3(_0x50f503))return JSON[_0x35605c(0x1c6)](a0_0x91ce9(_0x50f503,_0x35605c(0x1a8)));}catch{}return{};}var R=_(),Y=process.env.COMMHUB_URL||R[a0_0x3b6422(0x1d0)]||a0_0x3b6422(0x1da),j=process.env.COMMHUB_TMUX||E();function S(){const _0x2de900=a0_0x3b6422;if(process.env.COMMHUB_ALIAS&&process.env.COMMHUB_ALIAS[_0x2de900(0x1f9)]())return process.env.COMMHUB_ALIAS['trim']();return process[_0x2de900(0x19c)][_0x2de900(0x1b1)]('[commhub]\x20WARN:\x20COMMHUB_ALIAS\x20env\x20var\x20is\x20unset\x20—\x20outbound\x20from_session\x20'+(_0x2de900(0x18e)+(j||_0x2de900(0x1c3))+'\x20/\x20hostname='+a0_0x453644()+_0x2de900(0x195))),'unattributed-'+process[_0x2de900(0x1bf)];}function a0_0xf80d(_0x2f8a46,_0xd7a82f){_0x2f8a46=_0x2f8a46-0x182;const _0x21d0fd=a0_0x21d0();let _0xf80d59=_0x21d0fd[_0x2f8a46];return _0xf80d59;}var p=S(),V=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0x510387(),k=process.env.COMMHUB_TOKEN||R['token']||'';function z(_0x11da4f){const _0x283b69=a0_0x3b6422;let _0x2713bd=new Date()[_0x283b69(0x1ac)]()['slice'](0x0,0x8);process['stderr']['write']('['+_0x2713bd+']\x20[commhub]\x20'+_0x11da4f+'\x0a');}function i(_0x24ebdc){return new Promise(_0x3a48b4=>setTimeout(_0x3a48b4,_0x24ebdc));}z(a0_0x3b6422(0x1b6)+Y+a0_0x3b6422(0x192)+p+'\x20RESUME_ID='+V[a0_0x3b6422(0x1cf)](0x0,0x8)+a0_0x3b6422(0x1cc)+(j||'none')+a0_0x3b6422(0x217)+process[a0_0x3b6422(0x20b)]()+a0_0x3b6422(0x202)+H);var G=new Map(),K=new a0_0x3d67c8({'name':a0_0x3b6422(0x1a7),'version':a0_0x3b6422(0x1e5)},{'capabilities':{'experimental':{'claude/channel':{}},'tools':{}},'instructions':[a0_0x3b6422(0x1f8),a0_0x3b6422(0x1a1),a0_0x3b6422(0x1fc),a0_0x3b6422(0x188),'Session\x20alias:\x20'+p]['join']('\x0a')});K[a0_0x3b6422(0x18b)](a0_0x643f8c,async()=>({'tools':[{'name':a0_0x3b6422(0x1ca),'description':a0_0x3b6422(0x1ee),'inputSchema':{'type':a0_0x3b6422(0x18f),'properties':{'task_id':{'type':a0_0x3b6422(0x207),'description':a0_0x3b6422(0x193)},'text':{'type':a0_0x3b6422(0x207),'description':a0_0x3b6422(0x204)},'status':{'type':a0_0x3b6422(0x207),'enum':['completed',a0_0x3b6422(0x1f0),'cancelled','blocked',a0_0x3b6422(0x1dd),a0_0x3b6422(0x1e1)],'description':'Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates'}},'required':[a0_0x3b6422(0x1d4)]}},{'name':a0_0x3b6422(0x199),'description':a0_0x3b6422(0x20e),'inputSchema':{'type':a0_0x3b6422(0x18f),'properties':{'status':{'type':'string','enum':[a0_0x3b6422(0x19e),a0_0x3b6422(0x1bc),a0_0x3b6422(0x1ab),a0_0x3b6422(0x1dd)]},'task':{'type':a0_0x3b6422(0x207),'description':a0_0x3b6422(0x182)},'progress':{'type':'number','description':a0_0x3b6422(0x1e6)}},'required':['status']}},{'name':a0_0x3b6422(0x1d1),'description':'Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','inputSchema':{'type':a0_0x3b6422(0x18f),'properties':{'alias':{'type':'string','description':a0_0x3b6422(0x1d8)},'task':{'type':a0_0x3b6422(0x207),'description':a0_0x3b6422(0x1d3)},'priority':{'type':a0_0x3b6422(0x207),'enum':[a0_0x3b6422(0x1db),a0_0x3b6422(0x1f7),a0_0x3b6422(0x1ad)],'description':'Priority\x20(default:\x20normal)'}},'required':[a0_0x3b6422(0x1f1),a0_0x3b6422(0x1c4)]}},{'name':a0_0x3b6422(0x1a5),'description':a0_0x3b6422(0x211),'inputSchema':{'type':a0_0x3b6422(0x18f),'properties':{'alias':{'type':a0_0x3b6422(0x207),'description':a0_0x3b6422(0x1d8)},'message':{'type':a0_0x3b6422(0x207),'description':'Message\x20content'}},'required':[a0_0x3b6422(0x1f1),a0_0x3b6422(0x1aa)]}},{'name':a0_0x3b6422(0x215),'description':a0_0x3b6422(0x1df),'inputSchema':{'type':a0_0x3b6422(0x18f),'properties':{}}}]}));function a0_0x21d0(){const _0x24ea14=['SSE\x20fatal:\x20','You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.','MCP\x20stdio\x20connected','from','setRequestHandler','notifications/claude/channel','send_reply','would\x20mis-attribute.\x20Refusing\x20to\x20guess\x20from\x20TMUX_NAME=','object','connecting\x20to\x20','config.json','\x20ALIAS=','The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)','notification','.\x20Restart\x20node\x20via\x20`anet\x20node\x20start\x20<alias>`\x20so\x20the\x20env\x20is\x20set\x20explicitly\x20(#203).\x0a','\x22\x20after\x20SSE\x20reconnect','\x20no\x20longer\x20exists\x20(kill-0\x20ESRCH)\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat','from_session','commhub_report_status','SSE\x20连续\x20>1h\x20连不上\x20hub\x20(','result','stderr',')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。','working','priority','indexOf','These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.','1631zAyssS','broadcast','warning:\x20could\x20not\x20register:\x20','commhub_send_message','claude-code','commhub-channel','utf-8','2025-03-26','message','blocked','toTimeString','low','unref','heartbeat\x20failed:\x20','report_status','write','SIGTERM','SSE\x20connection\x20error:\x20','tmux\x20display-message\x20-p\x20\x27#S\x27','shutting\x20down,\x20reporting\x20offline...','ENV:\x20URL=','session\x20disconnected','starting\x20SSE\x20listener...','Bearer\x20','11768lMKTjh','new_message','idle','ack_inbox','getReader','pid','now','replace','end','(none)','task','stringify','parse','2.0','read','offline','commhub_reply','cancelled','...\x20TMUX=','send_message','2423555VCexEf','slice','hub','commhub_send_task','/events/','Task\x20content','text','get_all_status','192662ghuabL','344026vvLOaB','Target\x20session\x20alias','.claude/channels/commhub','http://127.0.0.1:9200','high',')\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat','error','initialize','Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','.env','in_progress','function','8730TasCYa','length','0.3.0','Progress\x200-100','unknown\x20tool','kill','/mcp','parse\x20error:\x20','fatal:\x20','application/json','status','Reply\x20to\x20a\x20CommHub\x20task\x20—\x20report\x20completion\x20or\x20send\x20a\x20message\x20back\x20to\x20the\x20hub.','POST','failed','alias','split','\x22\x20(','SSE\x20stream\x20ended,\x20reconnecting...','486288ZWwGpN','exit','normal','Messages\x20from\x20CommHub\x20arrive\x20as\x20<channel\x20source=\x22commhub\x22\x20task_id=\x22...\x22\x20priority=\x22...\x22\x20from=\x22...\x22>','trim','startsWith','statusText','Reply\x20using\x20the\x20commhub_reply\x20tool\x20to\x20report\x20status\x20or\x20results\x20back.','application/json,\x20text/event-stream','catch','min','connected','connect','\x20PROJECT_ENV=','parent\x20claude\x20died\x20(reparented\x20to\x20PID\x201\x20from\x20','Reply\x20text\x20/\x20result\x20summary','ESRCH','code','string','.anet','10254yfOqyE','no\x20response','cwd','SSE\x20connected\x20as\x20\x22','data:\x20','Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','commhub','message_id','Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','completed','type','content','commhub_get_all_status','→\x20injected\x20task\x20','\x20CWD=','messages','replied','re-registered\x20as\x20\x22','Current\x20task\x20description','1093396CaTcMC','parent\x20claude\x20pid=','stdin','get_inbox'];a0_0x21d0=function(){return _0x24ea14;};return a0_0x21d0();}async function Q(_0xd6be26,_0x1f6996){const _0x5758ed=a0_0x3b6422;let _0x1e8ee9=await fetch(Y+'/mcp',{'method':_0x5758ed(0x1ef),'headers':{'Content-Type':_0x5758ed(0x1ec),'Accept':_0x5758ed(0x1fd),...k?{'Authorization':_0x5758ed(0x1b9)+k}:{}},'body':JSON[_0x5758ed(0x1c5)]({'jsonrpc':_0x5758ed(0x1c7),'id':0x1,'method':_0x5758ed(0x1de),'params':{'protocolVersion':_0x5758ed(0x1a9),'capabilities':{},'clientInfo':{'name':_0x5758ed(0x1a7),'version':'0.3.0'}}})});if(!_0x1e8ee9['ok']){let _0x410b38=await _0x1e8ee9[_0x5758ed(0x1d4)]();return z('CommHub\x20init\x20failed:\x20'+_0x1e8ee9[_0x5758ed(0x1ed)]+'\x20'+_0x410b38['slice'](0x0,0x64)),{'ok':!0x1,'error':'init\x20failed:\x20'+_0x1e8ee9['status']};}await _0x1e8ee9['text']();let _0x20ec5f=(await(await fetch(Y+_0x5758ed(0x1e9),{'method':_0x5758ed(0x1ef),'headers':{'Content-Type':_0x5758ed(0x1ec),'Accept':_0x5758ed(0x1fd),...k?{'Authorization':_0x5758ed(0x1b9)+k}:{}},'body':JSON['stringify']({'jsonrpc':_0x5758ed(0x1c7),'id':0x2,'method':'tools/call','params':{'name':_0xd6be26,'arguments':_0x1f6996}})}))['text']())[_0x5758ed(0x1f2)]('\x0a')['find'](_0x2a8db8=>_0x2a8db8[_0x5758ed(0x1fa)](_0x5758ed(0x20d)));if(_0x20ec5f){let _0x4c521c=JSON['parse'](_0x20ec5f[_0x5758ed(0x1cf)](0x6));return _0x4c521c?.[_0x5758ed(0x19b)]?.[_0x5758ed(0x214)]?.[0x0]?.[_0x5758ed(0x1d4)]?JSON['parse'](_0x4c521c['result'][_0x5758ed(0x214)][0x0][_0x5758ed(0x1d4)]):_0x4c521c;}return{'ok':!0x1,'error':_0x5758ed(0x20a)};}K[a0_0x3b6422(0x18b)](a0_0x700957,async _0xa151d2=>{const _0x9a0ebe=a0_0x3b6422;let {name:_0x2320e3,arguments:_0x23ceb2}=_0xa151d2['params'];if(_0x2320e3===_0x9a0ebe(0x1ca)){let {task_id:_0x52cdd2,text:_0x3b54c8,status:_0x300608}=_0x23ceb2;if(_0x300608===_0x9a0ebe(0x212)||_0x300608===_0x9a0ebe(0x1f0)||_0x300608===_0x9a0ebe(0x1cb)){let _0x2c8468=_0x300608==='completed'?_0x9a0ebe(0x219):_0x300608,_0x2445e9=_0x52cdd2?G['get'](_0x52cdd2)||_0x9a0ebe(0x1d0):_0x9a0ebe(0x1d0),_0x2c07f7=await Q(_0x9a0ebe(0x18d),{'alias':_0x2445e9,'text':_0x3b54c8,'in_reply_to':_0x52cdd2||void 0x0,'status':_0x2c8468,'from_session':p});if(_0x52cdd2)G['delete'](_0x52cdd2);return{'content':[{'type':_0x9a0ebe(0x1d4),'text':JSON[_0x9a0ebe(0x1c5)](_0x2c07f7)}]};}let _0x306a01=await Q(_0x9a0ebe(0x1b0),{'resume_id':V,'alias':p,'status':_0x300608==='blocked'?'blocked':_0x300608===_0x9a0ebe(0x1dd)?_0x9a0ebe(0x1dd):'working','task':_0x3b54c8[_0x9a0ebe(0x1cf)](0x0,0xc8),'output':_0x3b54c8});return{'content':[{'type':_0x9a0ebe(0x1d4),'text':JSON['stringify'](_0x306a01)}]};}if(_0x2320e3===_0x9a0ebe(0x199)){let {status:_0x4a2f1c,task:_0x3345c2,progress:_0x11dccc}=_0x23ceb2,_0x2ef8a0=await Q(_0x9a0ebe(0x1b0),{'resume_id':V,'alias':p,'status':_0x4a2f1c,'task':_0x3345c2,'progress':_0x11dccc});return{'content':[{'type':_0x9a0ebe(0x1d4),'text':JSON[_0x9a0ebe(0x1c5)](_0x2ef8a0)}]};}if(_0x2320e3==='commhub_send_task'){let {alias:_0xd03809,task:_0x208804,priority:_0x548efb}=_0x23ceb2,_0x5744b5=await Q('send_task',{'alias':_0xd03809,'task':_0x208804,'priority':_0x548efb||_0x9a0ebe(0x1f7),'from_session':p});return{'content':[{'type':_0x9a0ebe(0x1d4),'text':JSON['stringify'](_0x5744b5)}]};}if(_0x2320e3==='commhub_send_message'){let {alias:_0x786e64,message:_0x2f5871}=_0x23ceb2,_0xcfbef1=await Q(_0x9a0ebe(0x1cd),{'alias':_0x786e64,'message':_0x2f5871,'from_session':p});return{'content':[{'type':_0x9a0ebe(0x1d4),'text':JSON[_0x9a0ebe(0x1c5)](_0xcfbef1)}]};}if(_0x2320e3==='commhub_get_all_status'){let _0x22f60c=await Q(_0x9a0ebe(0x1d5),{});return{'content':[{'type':_0x9a0ebe(0x1d4),'text':JSON[_0x9a0ebe(0x1c5)](_0x22f60c)}]};}return{'content':[{'type':_0x9a0ebe(0x1d4),'text':JSON['stringify']({'error':_0x9a0ebe(0x1e7)})}]};});var D=0x3e8,v=0x7530,O=0x36ee80;async function m(){const _0x314ad8=a0_0x3b6422;try{await Q(_0x314ad8(0x1b0),{'resume_id':V,'alias':p,'status':_0x314ad8(0x1bc),'server':a0_0x453644(),'hostname':a0_0x453644(),'agent':_0x314ad8(0x1a6),'project_dir':process['cwd'](),'tmux_name':j||void 0x0}),z(_0x314ad8(0x21a)+p+_0x314ad8(0x196));}catch(_0x4775f2){z('re-register\x20failed:\x20'+_0x4775f2);}}async function l(){const _0xd92624=a0_0x3b6422;let _0x184204=Y+_0xd92624(0x1d2)+encodeURIComponent(p),_0x4eabaa={};if(k)_0x4eabaa['Authorization']=_0xd92624(0x1b9)+k;z(_0xd92624(0x190)+_0x184204);let _0x37cedf=D,_0x321365=!0x0,_0x2710b9=null;while(!0x0){try{let _0xe7d7d4=await fetch(_0x184204,{'headers':_0x4eabaa});if(!_0xe7d7d4['ok']){if(z('SSE\x20error:\x20'+_0xe7d7d4[_0xd92624(0x1ed)]+'\x20'+_0xe7d7d4[_0xd92624(0x1fb)]),_0x2710b9=_0x2710b9??Date[_0xd92624(0x1c0)](),Date[_0xd92624(0x1c0)]()-_0x2710b9>O){z(_0xd92624(0x19a)+Y+_0xd92624(0x19d));return;}await i(_0x37cedf),_0x37cedf=Math[_0xd92624(0x1ff)](_0x37cedf*0x2,v);continue;}let _0x5c2bb4=_0xe7d7d4['body'][_0xd92624(0x1be)](),_0x17c1ea=new TextDecoder(),_0x146e58='';_0x37cedf=D;while(!0x0){let {done:_0x36ebaa,value:_0x469c99}=await _0x5c2bb4[_0xd92624(0x1c8)]();if(_0x36ebaa)break;_0x146e58+=_0x17c1ea['decode'](_0x469c99,{'stream':!0x0});let _0x49fc8c=_0x146e58[_0xd92624(0x1f2)]('\x0a\x0a');_0x146e58=_0x49fc8c['pop']()||'';for(let _0x39e68b of _0x49fc8c){let _0x10d791=_0x39e68b['split']('\x0a')['find'](_0xaa2933=>_0xaa2933[_0xd92624(0x1fa)](_0xd92624(0x20d)));if(!_0x10d791)continue;try{let _0x111e22=JSON[_0xd92624(0x1c6)](_0x10d791[_0xd92624(0x1cf)](0x6));if(await A(_0x111e22),_0x111e22[_0xd92624(0x213)]===_0xd92624(0x200)){if(_0x2710b9=null,!_0x321365)await m();_0x321365=!0x1;}}catch(_0x3c3a71){z(_0xd92624(0x1ea)+_0x3c3a71);}}}z(_0xd92624(0x1f4));}catch(_0x29e3e3){z(_0xd92624(0x1b3)+_0x29e3e3);}if(_0x2710b9=_0x2710b9??Date['now'](),Date[_0xd92624(0x1c0)]()-_0x2710b9>O){z(_0xd92624(0x19a)+Y+')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。');return;}await i(_0x37cedf),_0x37cedf=Math['min'](_0x37cedf*0x2,v);}}async function A(_0x44db47){const _0x46402d=a0_0x3b6422;if(_0x44db47[_0x46402d(0x213)]===_0x46402d(0x200)){z(_0x46402d(0x20c)+p+'\x22');return;}if(_0x44db47[_0x46402d(0x213)]===_0x46402d(0x1bb)){if(z('←\x20message\x20from\x20'+_0x44db47[_0x46402d(0x18a)]+':\x20'+_0x44db47[_0x46402d(0x1aa)][_0x46402d(0x1cf)](0x0,0x3c)),await K[_0x46402d(0x194)]({'method':'notifications/claude/channel','params':{'content':_0x44db47[_0x46402d(0x1aa)],'meta':{'sender':_0x44db47[_0x46402d(0x18a)]||_0x46402d(0x1d0),'sender_id':_0x46402d(0x20f),'user':_0x44db47[_0x46402d(0x18a)]||_0x46402d(0x1d0),'priority':'normal'}}}),_0x44db47[_0x46402d(0x210)])await Q(_0x46402d(0x1bd),{'alias':p,'message_id':_0x44db47[_0x46402d(0x210)]});return;}if(_0x44db47[_0x46402d(0x213)]==='new_task'||_0x44db47[_0x46402d(0x213)]===_0x46402d(0x1a3)){z('←\x20'+_0x44db47[_0x46402d(0x213)]+':\x20inbox_count='+_0x44db47['inbox_count']+'\x20priority='+(_0x44db47[_0x46402d(0x19f)]||'normal'));let _0x293c38=await Q(_0x46402d(0x186),{'alias':p,'limit':0x5});if(_0x293c38?.['ok']&&_0x293c38[_0x46402d(0x218)]?.[_0x46402d(0x1e4)]>0x0)for(let _0x4fac11 of _0x293c38[_0x46402d(0x218)]){let _0x3a0145={'sender':_0x4fac11[_0x46402d(0x198)]||'hub','sender_id':_0x46402d(0x20f),'user':_0x4fac11[_0x46402d(0x198)]||_0x46402d(0x1d0),'task_id':_0x4fac11['id'],'priority':_0x4fac11[_0x46402d(0x19f)]||_0x46402d(0x1f7)};G['set'](_0x4fac11['id'],_0x4fac11[_0x46402d(0x198)]||'hub'),await K[_0x46402d(0x194)]({'method':_0x46402d(0x18c),'params':{'content':_0x4fac11['content'],'meta':_0x3a0145}}),z(_0x46402d(0x216)+_0x4fac11['id'][_0x46402d(0x1cf)](0x0,0x8)+'\x20from\x20'+_0x4fac11[_0x46402d(0x198)]+':\x20'+_0x4fac11[_0x46402d(0x214)][_0x46402d(0x1cf)](0x0,0x3c)),await Q(_0x46402d(0x1bd),{'alias':p,'message_id':_0x4fac11['id']});}}}async function t(){const _0x2298a3=a0_0x3b6422;let _0x2797e6=new a0_0xc69828();await K[_0x2298a3(0x201)](_0x2797e6),z(_0x2298a3(0x189)),z(_0x2298a3(0x1b8)),l()[_0x2298a3(0x1fe)](_0x2ec07d=>z(_0x2298a3(0x187)+_0x2ec07d)),Q(_0x2298a3(0x1b0),{'resume_id':V,'alias':p,'status':'idle','server':a0_0x453644(),'hostname':a0_0x453644(),'agent':_0x2298a3(0x1a6),'project_dir':process['cwd'](),'tmux_name':j||void 0x0})['then'](()=>z('registered\x20as\x20\x22'+p+_0x2298a3(0x1f3)+V[_0x2298a3(0x1cf)](0x0,0x8)+')'))[_0x2298a3(0x1fe)](_0x35baca=>z(_0x2298a3(0x1a4)+_0x35baca)),setInterval(()=>{const _0x4d2a97=_0x2298a3;Q('report_status',{'resume_id':V,'alias':p,'status':_0x4d2a97(0x1bc),'server':a0_0x453644(),'hostname':a0_0x453644(),'agent':'claude-code','project_dir':process['cwd'](),'tmux_name':j||void 0x0})[_0x4d2a97(0x1fe)](_0x51b1db=>z(_0x4d2a97(0x1af)+_0x51b1db));},0x2bf20),z('ready\x20—\x20waiting\x20for\x20events');}t()[a0_0x3b6422(0x1fe)](_0x5ac334=>{const _0x2f911e=a0_0x3b6422;z(_0x2f911e(0x1eb)+_0x5ac334),process[_0x2f911e(0x1f6)](0x1);});async function b(){const _0x3af293=a0_0x3b6422;z(_0x3af293(0x1b5)),await Q(_0x3af293(0x1b0),{'resume_id':V,'alias':p,'status':_0x3af293(0x1c9),'task':_0x3af293(0x1b7)})[_0x3af293(0x1fe)](()=>{}),process[_0x3af293(0x1f6)](0x0);}process[a0_0x3b6422(0x185)]['on'](a0_0x3b6422(0x1c2),()=>b()),process['on'](a0_0x3b6422(0x1b2),()=>b()),process['on']('SIGINT',()=>b());var d=process['ppid'];if(d&&d>0x1){let h=setInterval(()=>{const _0x2d8840=a0_0x3b6422;if(process['ppid']===0x1&&d!==0x1){z(_0x2d8840(0x203)+d+_0x2d8840(0x1dc)),b();return;}try{process[_0x2d8840(0x1e8)](d,0x0);}catch(_0x3da0a1){if(_0x3da0a1?.[_0x2d8840(0x206)]===_0x2d8840(0x205))z(_0x2d8840(0x184)+d+_0x2d8840(0x197)),b();}},0x7530);if(typeof h['unref']===a0_0x3b6422(0x1e2))h[a0_0x3b6422(0x1ae)]();}
@@ -1,4 +1,4 @@
1
- export type RuntimeName = "claude-code-cli" | "codex-sdk" | "claude-agent-sdk" | "grok-build-acp" | "opencode-cli" | "codex-app-server";
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
4
  type ProfileLike = {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network",
3
- "version": "2.3.0-preview.22",
4
- "description": "AI Agent Network CLI — Local-first multi-agent orchestration across 4 runtimes (Claude Code CLI / Claude Agent SDK / Codex SDK / Grok Build ACP) and 8+ LLM providers (Anthropic / OpenAI / xAI Grok / MiniMax / DeepSeek / GLM / Kimi / InternLM / Xiaomi MiMo / OpenRouter). Apache 2.0.",
3
+ "version": "2.3.0-preview.23",
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",
7
7
  "types": "dist/client.d.ts",
@@ -36,6 +36,9 @@
36
36
  "grok",
37
37
  "xai",
38
38
  "grok-build-acp",
39
+ "grok-build-cli",
40
+ "grok-tui",
41
+ "copresence",
39
42
  "acp",
40
43
  "minimax",
41
44
  "mimo",
@@ -54,7 +57,8 @@
54
57
  "directory": "agent-network"
55
58
  },
56
59
  "publishConfig": {
57
- "access": "public"
60
+ "access": "public",
61
+ "tag": "preview"
58
62
  },
59
63
  "bugs": {
60
64
  "url": "https://github.com/sleep2agi/agent-network/issues"