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

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_0x2c6c8f=a0_0x5f40;(function(_0x3bce8f,_0x5d5158){const _0x29ab73=a0_0x5f40,_0x28bda2=_0x3bce8f();while(!![]){try{const _0x1c8ea0=parseInt(_0x29ab73(0x1bd))/0x1+-parseInt(_0x29ab73(0x14f))/0x2+parseInt(_0x29ab73(0x1de))/0x3*(-parseInt(_0x29ab73(0x1c0))/0x4)+-parseInt(_0x29ab73(0x140))/0x5*(parseInt(_0x29ab73(0x161))/0x6)+parseInt(_0x29ab73(0x13c))/0x7*(-parseInt(_0x29ab73(0x183))/0x8)+parseInt(_0x29ab73(0x1b2))/0x9+-parseInt(_0x29ab73(0x184))/0xa*(-parseInt(_0x29ab73(0x191))/0xb);if(_0x1c8ea0===_0x5d5158)break;else _0x28bda2['push'](_0x28bda2['shift']());}catch(_0x29fac4){_0x28bda2['push'](_0x28bda2['shift']());}}}(a0_0x189b,0x439ad));import{readFileSync as a0_0x4b5f5b,existsSync as a0_0x202868}from'fs';import{randomUUID as a0_0x18f603}from'crypto';import{join as a0_0xb31e5b}from'path';import{hostname as a0_0x19f96c}from'os';import{execSync as a0_0xa0592}from'child_process';function B(_0x407519){const _0x4292ef=a0_0x5f40;let _0x37212d=_0x407519[_0x4292ef(0x160)](/[^a-zA-Z0-9\-_]/g,'-');return _0x37212d===''?_0x4292ef(0x155):_0x37212d;}import{Server as a0_0x43003b}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0x32bf23}from'@modelcontextprotocol/sdk/server/stdio.js';import{ListToolsRequestSchema as a0_0x561f18,CallToolRequestSchema as a0_0x5008cf}from'@modelcontextprotocol/sdk/types.js';function T(_0x383d7e){const _0x1a4079=a0_0x5f40;if(!a0_0x202868(_0x383d7e))return;for(let _0x1c7cb1 of a0_0x4b5f5b(_0x383d7e,_0x1a4079(0x171))['split']('\x0a')){let _0x12e40c=_0x1c7cb1[_0x1a4079(0x1aa)]();if(!_0x12e40c||_0x12e40c['startsWith']('#'))continue;let _0xd0218=_0x12e40c[_0x1a4079(0x1d3)]('=');if(_0xd0218<0x0)continue;let _0x4d9103=_0x12e40c['slice'](0x0,_0xd0218)[_0x1a4079(0x1aa)](),_0x10afb0=_0x12e40c[_0x1a4079(0x19f)](_0xd0218+0x1)[_0x1a4079(0x1aa)]()[_0x1a4079(0x160)](/^["']|["']$/g,'');if(!process.env[_0x4d9103])process.env[_0x4d9103]=_0x10afb0;}}var C=process.env.HOME||'~',r=a0_0xb31e5b(C,a0_0x2c6c8f(0x15f));T(a0_0xb31e5b(r,a0_0x2c6c8f(0x170)));var H=B(process[a0_0x2c6c8f(0x144)]());T(a0_0xb31e5b(r,H,'.env'));function E(){const _0x1f39bf=a0_0x2c6c8f;try{return a0_0xa0592(_0x1f39bf(0x158),{'encoding':_0x1f39bf(0x171),'timeout':0x7d0})[_0x1f39bf(0x1aa)]();}catch{return'';}}function a0_0x5f40(_0x2aa7a0,_0x8dcc0b){_0x2aa7a0=_0x2aa7a0-0x132;const _0x189bbe=a0_0x189b();let _0x5f4026=_0x189bbe[_0x2aa7a0];return _0x5f4026;}function _(){const _0x1b656c=a0_0x2c6c8f;try{let _0x47a6d3=a0_0xb31e5b(C,_0x1b656c(0x16e),_0x1b656c(0x13e));if(a0_0x202868(_0x47a6d3))return JSON[_0x1b656c(0x15a)](a0_0x4b5f5b(_0x47a6d3,_0x1b656c(0x171)));}catch{}return{};}var R=_(),Y=process.env.COMMHUB_URL||R[a0_0x2c6c8f(0x17d)]||a0_0x2c6c8f(0x182),j=process.env.COMMHUB_TMUX||E();function S(){const _0x5f7b17=a0_0x2c6c8f;if(process.env.COMMHUB_ALIAS&&process.env.COMMHUB_ALIAS[_0x5f7b17(0x1aa)]())return process.env.COMMHUB_ALIAS['trim']();return process[_0x5f7b17(0x178)][_0x5f7b17(0x1ad)]('[commhub]\x20WARN:\x20COMMHUB_ALIAS\x20env\x20var\x20is\x20unset\x20—\x20outbound\x20from_session\x20'+(_0x5f7b17(0x162)+(j||'(none)')+_0x5f7b17(0x189)+a0_0x19f96c()+_0x5f7b17(0x180))),_0x5f7b17(0x13f)+process[_0x5f7b17(0x132)];}var p=S(),V=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0x18f603(),k=process.env.COMMHUB_TOKEN||R[a0_0x2c6c8f(0x1df)]||'';function z(_0x49837a){const _0x4cd1e3=a0_0x2c6c8f;let _0x203050=new Date()[_0x4cd1e3(0x192)]()[_0x4cd1e3(0x19f)](0x0,0x8);process[_0x4cd1e3(0x178)]['write']('['+_0x203050+_0x4cd1e3(0x18e)+_0x49837a+'\x0a');}function i(_0x454230){return new Promise(_0x55aada=>setTimeout(_0x55aada,_0x454230));}z(a0_0x2c6c8f(0x198)+Y+'\x20ALIAS='+p+a0_0x2c6c8f(0x185)+V[a0_0x2c6c8f(0x19f)](0x0,0x8)+a0_0x2c6c8f(0x1cb)+(j||'none')+a0_0x2c6c8f(0x163)+process[a0_0x2c6c8f(0x144)]()+a0_0x2c6c8f(0x1d2)+H);var G=new Map(),K=new a0_0x43003b({'name':'commhub-channel','version':'0.3.0'},{'capabilities':{'experimental':{'claude/channel':{}},'tools':{}},'instructions':[a0_0x2c6c8f(0x1d8),a0_0x2c6c8f(0x16f),a0_0x2c6c8f(0x1c6),a0_0x2c6c8f(0x1a6),a0_0x2c6c8f(0x19d)+p]['join']('\x0a')});K[a0_0x2c6c8f(0x17e)](a0_0x561f18,async()=>({'tools':[{'name':a0_0x2c6c8f(0x133),'description':a0_0x2c6c8f(0x13b),'inputSchema':{'type':'object','properties':{'task_id':{'type':a0_0x2c6c8f(0x14c),'description':a0_0x2c6c8f(0x14a)},'text':{'type':'string','description':a0_0x2c6c8f(0x18d)},'status':{'type':a0_0x2c6c8f(0x14c),'enum':['completed',a0_0x2c6c8f(0x148),a0_0x2c6c8f(0x1a4),a0_0x2c6c8f(0x13a),a0_0x2c6c8f(0x1db),a0_0x2c6c8f(0x1a3)],'description':a0_0x2c6c8f(0x188)}},'required':[a0_0x2c6c8f(0x1dc)]}},{'name':a0_0x2c6c8f(0x14d),'description':a0_0x2c6c8f(0x181),'inputSchema':{'type':a0_0x2c6c8f(0x1ae),'properties':{'status':{'type':a0_0x2c6c8f(0x14c),'enum':[a0_0x2c6c8f(0x1d1),a0_0x2c6c8f(0x19e),a0_0x2c6c8f(0x13a),a0_0x2c6c8f(0x1db)]},'task':{'type':'string','description':a0_0x2c6c8f(0x139)},'progress':{'type':a0_0x2c6c8f(0x1d4),'description':a0_0x2c6c8f(0x1cf)}},'required':[a0_0x2c6c8f(0x1a0)]}},{'name':a0_0x2c6c8f(0x1b0),'description':a0_0x2c6c8f(0x1cc),'inputSchema':{'type':'object','properties':{'alias':{'type':a0_0x2c6c8f(0x14c),'description':'Target\x20session\x20alias'},'task':{'type':a0_0x2c6c8f(0x14c),'description':a0_0x2c6c8f(0x15e)},'priority':{'type':a0_0x2c6c8f(0x14c),'enum':[a0_0x2c6c8f(0x1c7),a0_0x2c6c8f(0x141),'low'],'description':a0_0x2c6c8f(0x1d5)}},'required':[a0_0x2c6c8f(0x176),a0_0x2c6c8f(0x1a1)]}},{'name':a0_0x2c6c8f(0x1c9),'description':a0_0x2c6c8f(0x1b1),'inputSchema':{'type':a0_0x2c6c8f(0x1ae),'properties':{'alias':{'type':a0_0x2c6c8f(0x14c),'description':'Target\x20session\x20alias'},'message':{'type':a0_0x2c6c8f(0x14c),'description':a0_0x2c6c8f(0x190)}},'required':[a0_0x2c6c8f(0x176),a0_0x2c6c8f(0x1a9)]}},{'name':a0_0x2c6c8f(0x154),'description':a0_0x2c6c8f(0x1d0),'inputSchema':{'type':'object','properties':{}}}]}));async function Q(_0x476d72,_0x16d865){const _0x20549c=a0_0x2c6c8f;let _0x2aa2da=await fetch(Y+_0x20549c(0x1a7),{'method':'POST','headers':{'Content-Type':_0x20549c(0x17f),'Accept':'application/json,\x20text/event-stream',...k?{'Authorization':'Bearer\x20'+k}:{}},'body':JSON[_0x20549c(0x138)]({'jsonrpc':_0x20549c(0x134),'id':0x1,'method':_0x20549c(0x199),'params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':_0x20549c(0x1bc),'version':_0x20549c(0x1c1)}}})});if(!_0x2aa2da['ok']){let _0x596b7e=await _0x2aa2da['text']();return z(_0x20549c(0x1c4)+_0x2aa2da[_0x20549c(0x1a0)]+'\x20'+_0x596b7e['slice'](0x0,0x64)),{'ok':!0x1,'error':'init\x20failed:\x20'+_0x2aa2da[_0x20549c(0x1a0)]};}await _0x2aa2da[_0x20549c(0x1dc)]();let _0x12b737=(await(await fetch(Y+_0x20549c(0x1a7),{'method':_0x20549c(0x1c3),'headers':{'Content-Type':_0x20549c(0x17f),'Accept':_0x20549c(0x1be),...k?{'Authorization':_0x20549c(0x166)+k}:{}},'body':JSON[_0x20549c(0x138)]({'jsonrpc':_0x20549c(0x134),'id':0x2,'method':_0x20549c(0x1d9),'params':{'name':_0x476d72,'arguments':_0x16d865}})}))[_0x20549c(0x1dc)]())[_0x20549c(0x1d7)]('\x0a')['find'](_0x42fbfb=>_0x42fbfb[_0x20549c(0x1b8)](_0x20549c(0x19c)));if(_0x12b737){let _0x28e2a9=JSON[_0x20549c(0x15a)](_0x12b737[_0x20549c(0x19f)](0x6));return _0x28e2a9?.[_0x20549c(0x1ba)]?.[_0x20549c(0x1ab)]?.[0x0]?.[_0x20549c(0x1dc)]?JSON['parse'](_0x28e2a9[_0x20549c(0x1ba)][_0x20549c(0x1ab)][0x0][_0x20549c(0x1dc)]):_0x28e2a9;}return{'ok':!0x1,'error':'no\x20response'};}K[a0_0x2c6c8f(0x17e)](a0_0x5008cf,async _0xc96cdb=>{const _0x3e7937=a0_0x2c6c8f;let {name:_0x15e88f,arguments:_0x282a90}=_0xc96cdb[_0x3e7937(0x1b9)];if(_0x15e88f===_0x3e7937(0x133)){let {task_id:_0x56f895,text:_0x383b9b,status:_0x2a86b0}=_0x282a90;if(_0x2a86b0==='completed'||_0x2a86b0===_0x3e7937(0x148)||_0x2a86b0==='cancelled'){let _0x72bd60=_0x2a86b0===_0x3e7937(0x145)?_0x3e7937(0x175):_0x2a86b0,_0x14c876=_0x56f895?G['get'](_0x56f895)||'hub':'hub',_0xb5d117=await Q(_0x3e7937(0x174),{'alias':_0x14c876,'text':_0x383b9b,'in_reply_to':_0x56f895||void 0x0,'status':_0x72bd60,'from_session':p});if(_0x56f895)G[_0x3e7937(0x193)](_0x56f895);return{'content':[{'type':'text','text':JSON[_0x3e7937(0x138)](_0xb5d117)}]};}let _0x24a110=await Q('report_status',{'resume_id':V,'alias':p,'status':_0x2a86b0===_0x3e7937(0x13a)?_0x3e7937(0x13a):_0x2a86b0===_0x3e7937(0x1db)?_0x3e7937(0x1db):_0x3e7937(0x1d1),'task':_0x383b9b['slice'](0x0,0xc8),'output':_0x383b9b});return{'content':[{'type':_0x3e7937(0x1dc),'text':JSON[_0x3e7937(0x138)](_0x24a110)}]};}if(_0x15e88f==='commhub_report_status'){let {status:_0x3006ee,task:_0x331c3a,progress:_0x261f20}=_0x282a90,_0x28c2d8=await Q(_0x3e7937(0x17a),{'resume_id':V,'alias':p,'status':_0x3006ee,'task':_0x331c3a,'progress':_0x261f20});return{'content':[{'type':_0x3e7937(0x1dc),'text':JSON[_0x3e7937(0x138)](_0x28c2d8)}]};}if(_0x15e88f===_0x3e7937(0x1b0)){let {alias:_0xe291b,task:_0x14d1a3,priority:_0x386760}=_0x282a90,_0x3172a8=await Q('send_task',{'alias':_0xe291b,'task':_0x14d1a3,'priority':_0x386760||'normal','from_session':p});return{'content':[{'type':_0x3e7937(0x1dc),'text':JSON[_0x3e7937(0x138)](_0x3172a8)}]};}if(_0x15e88f===_0x3e7937(0x1c9)){let {alias:_0x3f1cde,message:_0x4edb14}=_0x282a90,_0x1bb73e=await Q(_0x3e7937(0x168),{'alias':_0x3f1cde,'message':_0x4edb14,'from_session':p});return{'content':[{'type':_0x3e7937(0x1dc),'text':JSON['stringify'](_0x1bb73e)}]};}if(_0x15e88f===_0x3e7937(0x154)){let _0x51dfc3=await Q(_0x3e7937(0x150),{});return{'content':[{'type':_0x3e7937(0x1dc),'text':JSON[_0x3e7937(0x138)](_0x51dfc3)}]};}return{'content':[{'type':'text','text':JSON['stringify']({'error':_0x3e7937(0x159)})}]};});var D=0x3e8,v=0x7530,O=0x36ee80;async function m(){const _0x938a5c=a0_0x2c6c8f;try{await Q(_0x938a5c(0x17a),{'resume_id':V,'alias':p,'status':'idle','server':a0_0x19f96c(),'hostname':a0_0x19f96c(),'agent':_0x938a5c(0x18b),'project_dir':process[_0x938a5c(0x144)](),'tmux_name':j||void 0x0}),z(_0x938a5c(0x16b)+p+'\x22\x20after\x20SSE\x20reconnect');}catch(_0x5eb05a){z(_0x938a5c(0x165)+_0x5eb05a);}}async function l(){const _0x262485=a0_0x2c6c8f;let _0x3c4176=Y+_0x262485(0x1cd)+encodeURIComponent(p),_0x46d09c={};if(k)_0x46d09c[_0x262485(0x1af)]=_0x262485(0x166)+k;z('connecting\x20to\x20'+_0x3c4176);let _0x1425bb=D,_0x4f276e=!0x0,_0x424393=null;while(!0x0){try{let _0x2b3018=await fetch(_0x3c4176,{'headers':_0x46d09c});if(!_0x2b3018['ok']){if(z(_0x262485(0x1a8)+_0x2b3018[_0x262485(0x1a0)]+'\x20'+_0x2b3018['statusText']),_0x424393=_0x424393??Date[_0x262485(0x197)](),Date[_0x262485(0x197)]()-_0x424393>O){z(_0x262485(0x142)+Y+_0x262485(0x19a));return;}await i(_0x1425bb),_0x1425bb=Math[_0x262485(0x1d6)](_0x1425bb*0x2,v);continue;}let _0x43bad7=_0x2b3018[_0x262485(0x1bf)][_0x262485(0x196)](),_0xf63362=new TextDecoder(),_0x403cbe='';_0x1425bb=D;while(!0x0){let {done:_0x494307,value:_0x2946ce}=await _0x43bad7[_0x262485(0x1a2)]();if(_0x494307)break;_0x403cbe+=_0xf63362[_0x262485(0x187)](_0x2946ce,{'stream':!0x0});let _0x27e2c0=_0x403cbe[_0x262485(0x1d7)]('\x0a\x0a');_0x403cbe=_0x27e2c0[_0x262485(0x1c5)]()||'';for(let _0x36d494 of _0x27e2c0){let _0x2b39b0=_0x36d494['split']('\x0a')[_0x262485(0x164)](_0xb4b1cf=>_0xb4b1cf[_0x262485(0x1b8)](_0x262485(0x19c)));if(!_0x2b39b0)continue;try{let _0x59f2fa=JSON[_0x262485(0x15a)](_0x2b39b0[_0x262485(0x19f)](0x6));if(await A(_0x59f2fa),_0x59f2fa['type']===_0x262485(0x13d)){if(_0x424393=null,!_0x4f276e)await m();_0x4f276e=!0x1;}}catch(_0x6e2578){z(_0x262485(0x177)+_0x6e2578);}}}z(_0x262485(0x1a5));}catch(_0x59592c){z(_0x262485(0x15b)+_0x59592c);}if(_0x424393=_0x424393??Date['now'](),Date[_0x262485(0x197)]()-_0x424393>O){z(_0x262485(0x142)+Y+')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。');return;}await i(_0x1425bb),_0x1425bb=Math[_0x262485(0x1d6)](_0x1425bb*0x2,v);}}async function A(_0x3c0e7a){const _0x203164=a0_0x2c6c8f;if(_0x3c0e7a['type']===_0x203164(0x13d)){z(_0x203164(0x137)+p+'\x22');return;}if(_0x3c0e7a[_0x203164(0x194)]==='new_message'){if(z('←\x20message\x20from\x20'+_0x3c0e7a[_0x203164(0x153)]+':\x20'+_0x3c0e7a[_0x203164(0x1a9)][_0x203164(0x19f)](0x0,0x3c)),await K[_0x203164(0x186)]({'method':_0x203164(0x15d),'params':{'content':_0x3c0e7a[_0x203164(0x1a9)],'meta':{'sender':_0x3c0e7a[_0x203164(0x153)]||'hub','sender_id':_0x203164(0x172),'user':_0x3c0e7a[_0x203164(0x153)]||'hub','priority':_0x203164(0x141)}}}),_0x3c0e7a[_0x203164(0x143)])await Q(_0x203164(0x169),{'alias':p,'message_id':_0x3c0e7a[_0x203164(0x143)]});return;}if(_0x3c0e7a[_0x203164(0x194)]==='new_task'||_0x3c0e7a[_0x203164(0x194)]===_0x203164(0x136)){z('←\x20'+_0x3c0e7a[_0x203164(0x194)]+_0x203164(0x18f)+_0x3c0e7a[_0x203164(0x167)]+_0x203164(0x15c)+(_0x3c0e7a[_0x203164(0x16d)]||'normal'));let _0x1f6b28=await Q(_0x203164(0x157),{'alias':p,'limit':0x5});if(_0x1f6b28?.['ok']&&_0x1f6b28[_0x203164(0x19b)]?.[_0x203164(0x1da)]>0x0)for(let _0x599272 of _0x1f6b28[_0x203164(0x19b)]){let _0x7a7336={'sender':_0x599272[_0x203164(0x1b5)]||_0x203164(0x17d),'sender_id':_0x203164(0x172),'user':_0x599272[_0x203164(0x1b5)]||_0x203164(0x17d),'task_id':_0x599272['id'],'priority':_0x599272[_0x203164(0x16d)]||_0x203164(0x141)};G['set'](_0x599272['id'],_0x599272[_0x203164(0x1b5)]||_0x203164(0x17d)),await K[_0x203164(0x186)]({'method':'notifications/claude/channel','params':{'content':_0x599272[_0x203164(0x1ab)],'meta':_0x7a7336}}),z(_0x203164(0x1bb)+_0x599272['id'][_0x203164(0x19f)](0x0,0x8)+_0x203164(0x156)+_0x599272[_0x203164(0x1b5)]+':\x20'+_0x599272[_0x203164(0x1ab)][_0x203164(0x19f)](0x0,0x3c)),await Q(_0x203164(0x169),{'alias':p,'message_id':_0x599272['id']});}}}async function t(){const _0x528da3=a0_0x2c6c8f;let _0x2e5c32=new a0_0x32bf23();await K[_0x528da3(0x14e)](_0x2e5c32),z(_0x528da3(0x149)),z(_0x528da3(0x1dd)),l()[_0x528da3(0x146)](_0xbe930d=>z(_0x528da3(0x18c)+_0xbe930d)),Q('report_status',{'resume_id':V,'alias':p,'status':_0x528da3(0x19e),'server':a0_0x19f96c(),'hostname':a0_0x19f96c(),'agent':_0x528da3(0x18b),'project_dir':process[_0x528da3(0x144)](),'tmux_name':j||void 0x0})[_0x528da3(0x17c)](()=>z(_0x528da3(0x16c)+p+_0x528da3(0x18a)+V['slice'](0x0,0x8)+')'))['catch'](_0x44757b=>z('warning:\x20could\x20not\x20register:\x20'+_0x44757b)),setInterval(()=>{const _0x229656=_0x528da3;Q(_0x229656(0x17a),{'resume_id':V,'alias':p,'status':_0x229656(0x19e),'server':a0_0x19f96c(),'hostname':a0_0x19f96c(),'agent':_0x229656(0x18b),'project_dir':process['cwd'](),'tmux_name':j||void 0x0})[_0x229656(0x146)](_0xc04943=>z(_0x229656(0x1b7)+_0xc04943));},0x2bf20),z(_0x528da3(0x1c8));}function a0_0x189b(){const _0x2b46ee=['5XJTquL','normal','SSE\x20连续\x20>1h\x20连不上\x20hub\x20(','message_id','cwd','completed','catch','code','failed','MCP\x20stdio\x20connected','The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)','fatal:\x20','string','commhub_report_status','connect','866638IsCLHI','get_all_status','unref','shutting\x20down,\x20reporting\x20offline...','from','commhub_get_all_status','unknown','\x20from\x20','get_inbox','tmux\x20display-message\x20-p\x20\x27#S\x27','unknown\x20tool','parse','SSE\x20connection\x20error:\x20','\x20priority=','notifications/claude/channel','Task\x20content','.claude/channels/commhub','replace','2066280dPjQIG','would\x20mis-attribute.\x20Refusing\x20to\x20guess\x20from\x20TMUX_NAME=','\x20CWD=','find','re-register\x20failed:\x20','Bearer\x20','inbox_count','send_message','ack_inbox','parent\x20claude\x20died\x20(reparented\x20to\x20PID\x201\x20from\x20','re-registered\x20as\x20\x22','registered\x20as\x20\x22','priority','.anet','These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.','.env','utf-8','commhub','SIGINT','send_reply','replied','alias','parse\x20error:\x20','stderr',')\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat','report_status','ppid','then','hub','setRequestHandler','application/json','.\x20Restart\x20node\x20via\x20`anet\x20node\x20start\x20<alias>`\x20so\x20the\x20env\x20is\x20set\x20explicitly\x20(#203).\x0a','Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','http://127.0.0.1:9200','46872BvDAyH','10IAVGNm','\x20RESUME_ID=','notification','decode','Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates','\x20/\x20hostname=','\x22\x20(','claude-code','SSE\x20fatal:\x20','Reply\x20text\x20/\x20result\x20summary',']\x20[commhub]\x20',':\x20inbox_count=','Message\x20content','9221388CUDoxh','toTimeString','delete','type','parent\x20claude\x20pid=','getReader','now','ENV:\x20URL=','initialize',')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。','messages','data:\x20','Session\x20alias:\x20','idle','slice','status','task','read','in_progress','cancelled','SSE\x20stream\x20ended,\x20reconnecting...','You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.','/mcp','SSE\x20error:\x20','message','trim','content','session\x20disconnected','write','object','Authorization','commhub_send_task','Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','3717720rPshaS','end','SIGTERM','from_session','stdin','heartbeat\x20failed:\x20','startsWith','params','result','→\x20injected\x20task\x20','commhub-channel','100819dNZhel','application/json,\x20text/event-stream','body','44452MrLClx','0.3.0','\x20no\x20longer\x20exists\x20(kill-0\x20ESRCH)\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat','POST','CommHub\x20init\x20failed:\x20','pop','Reply\x20using\x20the\x20commhub_reply\x20tool\x20to\x20report\x20status\x20or\x20results\x20back.','high','ready\x20—\x20waiting\x20for\x20events','commhub_send_message','function','...\x20TMUX=','Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','/events/','exit','Progress\x200-100','Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','working','\x20PROJECT_ENV=','indexOf','number','Priority\x20(default:\x20normal)','min','split','Messages\x20from\x20CommHub\x20arrive\x20as\x20<channel\x20source=\x22commhub\x22\x20task_id=\x22...\x22\x20priority=\x22...\x22\x20from=\x22...\x22>','tools/call','length','error','text','starting\x20SSE\x20listener...','6IpkHzx','token','pid','commhub_reply','2.0','kill','broadcast','SSE\x20connected\x20as\x20\x22','stringify','Current\x20task\x20description','blocked','Reply\x20to\x20a\x20CommHub\x20task\x20—\x20report\x20completion\x20or\x20send\x20a\x20message\x20back\x20to\x20the\x20hub.','329Sxvawx','connected','config.json','unattributed-'];a0_0x189b=function(){return _0x2b46ee;};return a0_0x189b();}t()['catch'](_0x20296c=>{const _0x5c6917=a0_0x2c6c8f;z(_0x5c6917(0x14b)+_0x20296c),process[_0x5c6917(0x1ce)](0x1);});async function b(){const _0x4476e8=a0_0x2c6c8f;z(_0x4476e8(0x152)),await Q(_0x4476e8(0x17a),{'resume_id':V,'alias':p,'status':'offline','task':_0x4476e8(0x1ac)})[_0x4476e8(0x146)](()=>{}),process[_0x4476e8(0x1ce)](0x0);}process[a0_0x2c6c8f(0x1b6)]['on'](a0_0x2c6c8f(0x1b3),()=>b()),process['on'](a0_0x2c6c8f(0x1b4),()=>b()),process['on'](a0_0x2c6c8f(0x173),()=>b());var d=process[a0_0x2c6c8f(0x17b)];if(d&&d>0x1){let h=setInterval(()=>{const _0x52ea6e=a0_0x2c6c8f;if(process[_0x52ea6e(0x17b)]===0x1&&d!==0x1){z(_0x52ea6e(0x16a)+d+_0x52ea6e(0x179)),b();return;}try{process[_0x52ea6e(0x135)](d,0x0);}catch(_0x207c0d){if(_0x207c0d?.[_0x52ea6e(0x147)]==='ESRCH')z(_0x52ea6e(0x195)+d+_0x52ea6e(0x1c2)),b();}},0x7530);if(typeof h[a0_0x2c6c8f(0x151)]===a0_0x2c6c8f(0x1ca))h[a0_0x2c6c8f(0x151)]();}
@@ -1,6 +1,14 @@
1
1
  export type RuntimeName = "claude-code-cli" | "codex-sdk" | "claude-agent-sdk" | "grok-build-acp" | "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;
10
+ /** Runtimes whose explicit CLI choice must bypass the API-vendor picker. */
11
+ export declare function runtimeSkipsCreateVendorPicker(runtime: RuntimeName): boolean;
4
12
  type ProfileLike = {
5
13
  runtime?: string;
6
14
  codexRuntime?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network",
3
- "version": "2.3.0-preview.22",
3
+ "version": "2.3.0-preview.24",
4
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.",
5
5
  "type": "module",
6
6
  "main": "dist/src/client.js",