@sleep2agi/agent-network 2.2.13 → 2.2.14
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/node-server.js +1 -1
- package/package.json +1 -1
package/dist/src/client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x1b1415=a0_0x23fc;(function(_0x3997aa,_0x430378){const _0x4fdb7c=a0_0x23fc,_0x567da1=_0x3997aa();while(!![]){try{const _0x220f50=-parseInt(_0x4fdb7c(0x190))/0x1*(-parseInt(_0x4fdb7c(0x19a))/0x2)+parseInt(_0x4fdb7c(0x1be))/0x3+-parseInt(_0x4fdb7c(0x181))/0x4*(-parseInt(_0x4fdb7c(0x186))/0x5)+parseInt(_0x4fdb7c(0x1af))/0x6*(parseInt(_0x4fdb7c(0x184))/0x7)+-parseInt(_0x4fdb7c(0x1c1))/0x8*(-parseInt(_0x4fdb7c(0x19f))/0x9)+-parseInt(_0x4fdb7c(0x19c))/0xa+-parseInt(_0x4fdb7c(0x19d))/0xb*(parseInt(_0x4fdb7c(0x1a4))/0xc);if(_0x220f50===_0x430378)break;else _0x567da1['push'](_0x567da1['shift']());}catch(_0x59e4f7){_0x567da1['push'](_0x567da1['shift']());}}}(a0_0x1911,0xbdbcc));function a0_0x1911(){const _0x3c24aa=['status','startsWith','connected','text','toTimeString','pop','log','POST','agent','broadcast','inbox\x20error:\x20','alias','result','emit','tools/call','disconnect','getAllStatus','new_task','reconnectDelay','running','name','connectSSE','sleep','heartbeatTimer','2.0','16112TpSRJo','slice','data:\x20','9913421EgDpgt','send_message','1360mUkhJk','match','send','decode','body','server','idle','application/json','completed','normal','16fAVhwR','send_reply','stringify','send_task','get_inbox','report_status','resumeId','getReader','offline','error','42886MCkGxZ','token','1892720ZoqJOz','11DatBMB','read','72Mjzccl','min','heartbeatInterval','AbortError','reply','32294484uOjfFT','sseAbort','split','application/json,\x20text/event-stream','toString','signal','Authorization','ack_inbox','disconnected','SSE\x20connected','s...','6nVxIgb','sdk','new_message','message',']\x20[commhub:','catch','call','now','heartbeat\x20failed:\x20','parse','content','get_all_status','replace','url','abort','1148472ZcYEPa','type','Bearer\x20','419912fUpHGP','connect'];a0_0x1911=function(){return _0x3c24aa;};return a0_0x1911();}import{EventEmitter as a0_0x8b6e27}from'events';import{hostname as a0_0x1b7d0c}from'os';function a0_0x23fc(_0x2f8bc5,_0x19a6ae){_0x2f8bc5=_0x2f8bc5-0x176;const _0x1911f3=a0_0x1911();let _0x23fc2e=_0x1911f3[_0x2f8bc5];return _0x23fc2e;}class T extends a0_0x8b6e27{[a0_0x1b1415(0x1bc)];[a0_0x1b1415(0x1ce)];['token'];['agent'];[a0_0x1b1415(0x196)];['heartbeatInterval'];[a0_0x1b1415(0x17a)];[a0_0x1b1415(0x17f)];[a0_0x1b1415(0x1a5)];[a0_0x1b1415(0x17b)]=!0x1;constructor(_0x2790c3){const _0x44aa2d=a0_0x1b1415;super();if(this[_0x44aa2d(0x1bc)]=_0x2790c3[_0x44aa2d(0x1bc)][_0x44aa2d(0x1bb)](/\/$/,''),this[_0x44aa2d(0x1ce)]=_0x2790c3['alias'],this[_0x44aa2d(0x19b)]=_0x2790c3[_0x44aa2d(0x19b)],this[_0x44aa2d(0x1cb)]=_0x2790c3['agent']||_0x44aa2d(0x1b0),this[_0x44aa2d(0x196)]='sdk-'+_0x2790c3[_0x44aa2d(0x1ce)]+'-'+Date['now']()[_0x44aa2d(0x1a8)](0x24),this[_0x44aa2d(0x1a1)]=_0x2790c3[_0x44aa2d(0x1a1)]??0x2bf20,this[_0x44aa2d(0x17a)]=_0x2790c3[_0x44aa2d(0x17a)]??0xbb8,_0x2790c3['autoConnect']!==!0x1)this[_0x44aa2d(0x1c2)]();}[a0_0x1b1415(0x1c9)](_0x527360){const _0x59bd74=a0_0x1b1415;console[_0x59bd74(0x1c9)]('['+new Date()[_0x59bd74(0x1c7)]()[_0x59bd74(0x182)](0x0,0x8)+_0x59bd74(0x1b3)+this[_0x59bd74(0x1ce)]+']\x20'+_0x527360);}async[a0_0x1b1415(0x1b5)](_0xd59721,_0x4b9cae){const _0x177aa9=a0_0x1b1415;let _0x28cb95={'Content-Type':_0x177aa9(0x18d),'Accept':_0x177aa9(0x1a7)};if(this['token'])_0x28cb95[_0x177aa9(0x1aa)]=_0x177aa9(0x1c0)+this['token'];let _0x8858e0=await(await fetch(this[_0x177aa9(0x1bc)]+'/mcp',{'method':_0x177aa9(0x1ca),'headers':_0x28cb95,'body':JSON[_0x177aa9(0x192)]({'jsonrpc':_0x177aa9(0x180),'id':Date[_0x177aa9(0x1b6)](),'method':_0x177aa9(0x176),'params':{'name':_0xd59721,'arguments':_0x4b9cae}})}))[_0x177aa9(0x1c6)](),_0x51ded4=_0x8858e0[_0x177aa9(0x187)](/data: (.+)/),_0x240995=_0x51ded4?JSON[_0x177aa9(0x1b8)](_0x51ded4[0x1]):JSON[_0x177aa9(0x1b8)](_0x8858e0),_0x2b5b31=_0x240995?.[_0x177aa9(0x1cf)]?.['content']?.[0x0]?.['text'];return _0x2b5b31?JSON['parse'](_0x2b5b31):_0x240995;}async['connect'](){const _0x177a7d=a0_0x1b1415;if(this[_0x177a7d(0x17b)])return;this[_0x177a7d(0x17b)]=!0x0,await this[_0x177a7d(0x1c3)](_0x177a7d(0x18c)),this[_0x177a7d(0x1c9)]('registered'),this[_0x177a7d(0x17f)]=setInterval(()=>{const _0x1fe456=_0x177a7d;this[_0x1fe456(0x1c3)](_0x1fe456(0x18c))[_0x1fe456(0x1b4)](_0x442376=>this['log'](_0x1fe456(0x1b7)+_0x442376[_0x1fe456(0x1b2)]));},this['heartbeatInterval']),this[_0x177a7d(0x17d)]();}async[a0_0x1b1415(0x177)](){const _0x2468f9=a0_0x1b1415;if(this['running']=!0x1,this[_0x2468f9(0x1a5)]?.[_0x2468f9(0x1bd)](),this['heartbeatTimer'])clearInterval(this[_0x2468f9(0x17f)]);await this[_0x2468f9(0x1c3)](_0x2468f9(0x198))[_0x2468f9(0x1b4)](()=>{}),this[_0x2468f9(0x1c9)](_0x2468f9(0x1ac));}async[a0_0x1b1415(0x188)](_0x467cbb,_0x50819d,_0x543cf9=a0_0x1b1415(0x18f)){const _0x5da324=a0_0x1b1415;return this['call'](_0x5da324(0x193),{'alias':_0x467cbb,'task':_0x50819d,'priority':_0x543cf9,'from_session':this[_0x5da324(0x1ce)]});}async[a0_0x1b1415(0x1b2)](_0x23e246,_0x1f01f2){const _0x5a392b=a0_0x1b1415;return this[_0x5a392b(0x1b5)](_0x5a392b(0x185),{'alias':_0x23e246,'message':_0x1f01f2,'from_session':this['alias']});}async[a0_0x1b1415(0x1a3)](_0x5ec11e,_0x388169,_0x222664=a0_0x1b1415(0x18e)){const _0x692106=a0_0x1b1415;return this['call'](_0x692106(0x191),{'in_reply_to':_0x5ec11e,'text':_0x388169,'status':_0x222664});}async[a0_0x1b1415(0x1c3)](_0x5ab495,_0x1c134d){const _0x289052=a0_0x1b1415;return this[_0x289052(0x1b5)](_0x289052(0x195),{'resume_id':this[_0x289052(0x196)],'alias':this['alias'],'status':_0x5ab495,'server':a0_0x1b7d0c(),'hostname':a0_0x1b7d0c(),'agent':this[_0x289052(0x1cb)],'project_dir':process['cwd'](),..._0x1c134d});}async[a0_0x1b1415(0x178)](){const _0x41fe04=a0_0x1b1415;return this[_0x41fe04(0x1b5)](_0x41fe04(0x1ba),{});}async['broadcast'](_0x4a92e0,_0x59df09){const _0x9e89cf=a0_0x1b1415;return this['call'](_0x9e89cf(0x1cc),{'message':_0x4a92e0,'filter_server':_0x59df09?.[_0x9e89cf(0x18b)],'filter_status':_0x59df09?.[_0x9e89cf(0x1c3)]});}async[a0_0x1b1415(0x17d)](){const _0xbf0511=a0_0x1b1415;let _0x203ca2=encodeURIComponent(this[_0xbf0511(0x1ce)]),_0x3b4800=this[_0xbf0511(0x1bc)]+'/events/'+_0x203ca2,_0x4e4a9b=this[_0xbf0511(0x17a)];while(this['running']){try{this[_0xbf0511(0x1a5)]=new AbortController();let _0x6292a6={'Accept':'text/event-stream'};if(this[_0xbf0511(0x19b)])_0x6292a6['Authorization']='Bearer\x20'+this[_0xbf0511(0x19b)];let _0x2e5b96=await fetch(_0x3b4800,{'headers':_0x6292a6,'signal':this[_0xbf0511(0x1a5)][_0xbf0511(0x1a9)]});if(!_0x2e5b96['ok']||!_0x2e5b96[_0xbf0511(0x18a)]){this[_0xbf0511(0x1c9)]('SSE\x20failed:\x20'+_0x2e5b96['status']),await this[_0xbf0511(0x17e)](_0x4e4a9b),_0x4e4a9b=Math[_0xbf0511(0x1a0)](_0x4e4a9b*1.5,0xea60);continue;}_0x4e4a9b=this['reconnectDelay'];let _0x243ab5=_0x2e5b96[_0xbf0511(0x18a)][_0xbf0511(0x197)](),_0x322863=new TextDecoder(),_0x3c1db2='';while(this[_0xbf0511(0x17b)]){let {done:_0x3e1671,value:_0x1b78a2}=await _0x243ab5[_0xbf0511(0x19e)]();if(_0x3e1671)break;_0x3c1db2+=_0x322863[_0xbf0511(0x189)](_0x1b78a2,{'stream':!0x0});let _0x809b30=_0x3c1db2[_0xbf0511(0x1a6)]('\x0a');_0x3c1db2=_0x809b30[_0xbf0511(0x1c8)]()||'';for(let _0x1d6b1c of _0x809b30){if(!_0x1d6b1c[_0xbf0511(0x1c4)](_0xbf0511(0x183)))continue;try{let _0x44d61a=JSON[_0xbf0511(0x1b8)](_0x1d6b1c[_0xbf0511(0x182)](0x6));if(_0x44d61a[_0xbf0511(0x1bf)]===_0xbf0511(0x1c5)){this[_0xbf0511(0x1c9)](_0xbf0511(0x1ad)),this[_0xbf0511(0x1d0)](_0xbf0511(0x1c5));continue;}if(_0x44d61a[_0xbf0511(0x1bf)]===_0xbf0511(0x179)||_0x44d61a[_0xbf0511(0x1bf)]===_0xbf0511(0x1b1)||_0x44d61a[_0xbf0511(0x1bf)]==='broadcast')await this['processInbox']();}catch{}}}}catch(_0x5dffbe){if(_0x5dffbe[_0xbf0511(0x17c)]===_0xbf0511(0x1a2))break;this[_0xbf0511(0x1d0)](_0xbf0511(0x199),_0x5dffbe),this['log']('SSE\x20error:\x20'+_0x5dffbe[_0xbf0511(0x1b2)]);}if(this[_0xbf0511(0x17b)])this[_0xbf0511(0x1d0)](_0xbf0511(0x1ac)),this[_0xbf0511(0x1c9)]('SSE\x20reconnecting\x20in\x20'+_0x4e4a9b/0x3e8+_0xbf0511(0x1ae)),await this['sleep'](_0x4e4a9b),_0x4e4a9b=Math[_0xbf0511(0x1a0)](_0x4e4a9b*1.5,0xea60);}}async['processInbox'](){const _0x2c5790=a0_0x1b1415;try{let _0x156ab1=(await this[_0x2c5790(0x1b5)](_0x2c5790(0x194),{'alias':this[_0x2c5790(0x1ce)],'limit':0xa}))?.['messages']||[];for(let _0x227447 of _0x156ab1)await this[_0x2c5790(0x1b5)](_0x2c5790(0x1ab),{'alias':this[_0x2c5790(0x1ce)],'message_id':_0x227447['id']}),this[_0x2c5790(0x1c9)]('←\x20'+_0x227447['from_session']+':\x20'+_0x227447[_0x2c5790(0x1b9)][_0x2c5790(0x182)](0x0,0x3c)),this[_0x2c5790(0x1d0)]('task',_0x227447),this['emit'](_0x2c5790(0x1b2),_0x227447);}catch(_0xc0a3bc){this[_0x2c5790(0x1c9)](_0x2c5790(0x1cd)+_0xc0a3bc['message']);}}[a0_0x1b1415(0x17e)](_0x237a4c){return new Promise(_0x460ba7=>setTimeout(_0x460ba7,_0x237a4c));}}var $=T;export{$ as default,T as CommHub};
|
package/dist/src/node-server.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
const a0_0x17352e=a0_0x28cd;(function(_0x310d3a,_0x44708a){const _0xfd8f47=a0_0x28cd,_0x331827=_0x310d3a();while(!![]){try{const _0x7c62ac=-parseInt(_0xfd8f47(0xfb))/0x1*(-parseInt(_0xfd8f47(0xe2))/0x2)+-parseInt(_0xfd8f47(0xfc))/0x3*(parseInt(_0xfd8f47(0xb9))/0x4)+parseInt(_0xfd8f47(0x109))/0x5+parseInt(_0xfd8f47(0xc1))/0x6+parseInt(_0xfd8f47(0xd8))/0x7+parseInt(_0xfd8f47(0x11b))/0x8+-parseInt(_0xfd8f47(0x10e))/0x9;if(_0x7c62ac===_0x44708a)break;else _0x331827['push'](_0x331827['shift']());}catch(_0x2f3a56){_0x331827['push'](_0x331827['shift']());}}}(a0_0x996b,0xc8854));import{readFileSync as a0_0x1c77ff,existsSync as a0_0x499dfa}from'fs';import{randomUUID as a0_0x2f8589}from'crypto';import{join as a0_0x560653}from'path';import{hostname as a0_0x56c1bc}from'os';import{execSync as a0_0x5e731b}from'child_process';import{Server as a0_0x167dc5}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0x1ee29d}from'@modelcontextprotocol/sdk/server/stdio.js';import{ListToolsRequestSchema as a0_0x4dc97e,CallToolRequestSchema as a0_0x300c67}from'@modelcontextprotocol/sdk/types.js';function a0_0x996b(){const _0x45d6ce=['slice','connected','872910EWGMVa','commhub_send_task','stringify','parse','message','re-register\x20failed:\x20','error','Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','now','application/json','inbox_count','session\x20disconnected','0.3.0','statusText','token','failed','read','normal','\x20priority=','application/json,\x20text/event-stream','\x20/\x20hostname=','.\x20Restart\x20node\x20via\x20`anet\x20node\x20start\x20<alias>`\x20so\x20the\x20env\x20is\x20set\x20explicitly\x20(#203).\x0a',']\x20[commhub]\x20','6030731VePGRW','replied',':\x20inbox_count=','...\x20TMUX=','replace','2.0','\x20RESUME_ID=','commhub_reply','Reply\x20to\x20a\x20CommHub\x20task\x20—\x20report\x20completion\x20or\x20send\x20a\x20message\x20back\x20to\x20the\x20hub.','Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates','849878fVhUmQ','end','no\x20response','cancelled','idle','alias','trim','status','then','new_message','cwd','object','blocked','ready\x20—\x20waiting\x20for\x20events','Session\x20alias:\x20','connecting\x20to\x20','toTimeString','message_id','Messages\x20from\x20CommHub\x20arrive\x20as\x20<channel\x20source=\x22commhub\x22\x20task_id=\x22...\x22\x20priority=\x22...\x22\x20from=\x22...\x22>','commhub-channel','The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)','Progress\x200-100','SIGINT','Priority\x20(default:\x20normal)','/events/','2mxpuiW','3fcmLRK','/mcp','Authorization','SSE\x20connected\x20as\x20\x22','hub','shutting\x20down,\x20reporting\x20offline...','.env','startsWith','completed','SSE\x20connection\x20error:\x20','SSE\x20fatal:\x20','SSE\x20连续\x20>1h\x20连不上\x20hub\x20(','connect','2140030PPjwGn','.claude/channels/commhub','parse\x20error:\x20','\x20PROJECT_ENV=','SSE\x20error:\x20','14760360Awmqou','min','\x20ALIAS=','warning:\x20could\x20not\x20register:\x20','in_progress','new_task','length','2025-03-26','get','These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.','would\x20mis-attribute.\x20Refusing\x20to\x20guess\x20from\x20TMUX_NAME=','unattributed-','ENV:\x20URL=','4011928NXUwtO','Target\x20session\x20alias','claude-code','write','catch','Current\x20task\x20description','utf-8','commhub','notification','stderr','commhub_report_status','.anet','split','→\x20injected\x20task\x20','report_status','\x20from\x20','type','heartbeat\x20failed:\x20','stdin','working','delete','send_reply','tmux\x20display-message\x20-p\x20\x27#S\x27','getReader','from','content','text','pid','get_inbox','result','commhub_get_all_status','find','POST','none','notifications/claude/channel','params','commhub_send_message','Reply\x20using\x20the\x20commhub_reply\x20tool\x20to\x20report\x20status\x20or\x20results\x20back.','SIGTERM','unknown\x20tool','exit','Bearer\x20','task','tools/call','priority','send_message','string','high','join','\x20CWD=','(none)','get_all_status','[commhub]\x20WARN:\x20COMMHUB_ALIAS\x20env\x20var\x20is\x20unset\x20—\x20outbound\x20from_session\x20','setRequestHandler','1300084unByik','starting\x20SSE\x20listener...','from_session',')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。','http://127.0.0.1:9200','Message\x20content'];a0_0x996b=function(){return _0x45d6ce;};return a0_0x996b();}function I(_0x9dc50d){const _0x3b4798=a0_0x28cd;if(!a0_0x499dfa(_0x9dc50d))return;for(let _0x93e1e9 of a0_0x1c77ff(_0x9dc50d,_0x3b4798(0x121))[_0x3b4798(0x127)]('\x0a')){let _0xf301bf=_0x93e1e9['trim']();if(!_0xf301bf||_0xf301bf[_0x3b4798(0x103)]('#'))continue;let _0x30b48d=_0xf301bf['indexOf']('=');if(_0x30b48d<0x0)continue;let _0x453db9=_0xf301bf['slice'](0x0,_0x30b48d)[_0x3b4798(0xe8)](),_0x978156=_0xf301bf[_0x3b4798(0xbf)](_0x30b48d+0x1)[_0x3b4798(0xe8)]()[_0x3b4798(0xdc)](/^["']|["']$/g,'');if(!process.env[_0x453db9])process.env[_0x453db9]=_0x978156;}}var L=process.env.HOME||'~',U=a0_0x560653(L,a0_0x17352e(0x10a));I(a0_0x560653(U,a0_0x17352e(0x102)));var v=process[a0_0x17352e(0xec)]()[a0_0x17352e(0xdc)](/\//g,'-');I(a0_0x560653(U,v,'.env'));function d(){const _0xa8a647=a0_0x17352e;try{return a0_0x5e731b(_0xa8a647(0x131),{'encoding':_0xa8a647(0x121),'timeout':0x7d0})[_0xa8a647(0xe8)]();}catch{return'';}}function m(){const _0x31856f=a0_0x17352e;try{let _0x80fef8=a0_0x560653(L,_0x31856f(0x126),'config.json');if(a0_0x499dfa(_0x80fef8))return JSON[_0x31856f(0xc4)](a0_0x1c77ff(_0x80fef8,_0x31856f(0x121)));}catch{}return{};}var u=m(),j=process.env.COMMHUB_URL||u[a0_0x17352e(0x100)]||a0_0x17352e(0xbd),f=process.env.COMMHUB_TMUX||d();function r(){const _0x5e2dee=a0_0x17352e;if(process.env.COMMHUB_ALIAS&&process.env.COMMHUB_ALIAS[_0x5e2dee(0xe8)]())return process.env.COMMHUB_ALIAS[_0x5e2dee(0xe8)]();return process[_0x5e2dee(0x124)][_0x5e2dee(0x11e)](_0x5e2dee(0xb7)+(_0x5e2dee(0x118)+(f||_0x5e2dee(0xb5))+_0x5e2dee(0xd5)+a0_0x56c1bc()+_0x5e2dee(0xd6))),_0x5e2dee(0x119)+process[_0x5e2dee(0x136)];}var G=r(),K=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0x2f8589(),F=process.env.COMMHUB_TOKEN||u[a0_0x17352e(0xcf)]||'';function W(_0x310d26){const _0x2547b7=a0_0x17352e;let _0x47850c=new Date()[_0x2547b7(0xf2)]()[_0x2547b7(0xbf)](0x0,0x8);process[_0x2547b7(0x124)]['write']('['+_0x47850c+_0x2547b7(0xd7)+_0x310d26+'\x0a');}function N(_0x2b90f1){return new Promise(_0x9ea74e=>setTimeout(_0x9ea74e,_0x2b90f1));}W(a0_0x17352e(0x11a)+j+a0_0x17352e(0x110)+G+a0_0x17352e(0xde)+K['slice'](0x0,0x8)+a0_0x17352e(0xdb)+(f||a0_0x17352e(0x13c))+a0_0x17352e(0xb4)+process['cwd']()+a0_0x17352e(0x10c)+v);var D=new Map(),x=new a0_0x167dc5({'name':a0_0x17352e(0xf5),'version':a0_0x17352e(0xcd)},{'capabilities':{'experimental':{'claude/channel':{}},'tools':{}},'instructions':[a0_0x17352e(0xf4),a0_0x17352e(0x117),a0_0x17352e(0x140),'You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.',a0_0x17352e(0xf0)+G][a0_0x17352e(0xb3)]('\x0a')});x['setRequestHandler'](a0_0x4dc97e,async()=>({'tools':[{'name':a0_0x17352e(0xdf),'description':a0_0x17352e(0xe0),'inputSchema':{'type':a0_0x17352e(0xed),'properties':{'task_id':{'type':a0_0x17352e(0xb1),'description':a0_0x17352e(0xf6)},'text':{'type':a0_0x17352e(0xb1),'description':'Reply\x20text\x20/\x20result\x20summary'},'status':{'type':a0_0x17352e(0xb1),'enum':['completed',a0_0x17352e(0xd0),a0_0x17352e(0xe5),a0_0x17352e(0xee),a0_0x17352e(0xc7),a0_0x17352e(0x112)],'description':a0_0x17352e(0xe1)}},'required':['text']}},{'name':a0_0x17352e(0x125),'description':'Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','inputSchema':{'type':a0_0x17352e(0xed),'properties':{'status':{'type':'string','enum':[a0_0x17352e(0x12e),a0_0x17352e(0xe6),'blocked',a0_0x17352e(0xc7)]},'task':{'type':a0_0x17352e(0xb1),'description':a0_0x17352e(0x120)},'progress':{'type':'number','description':a0_0x17352e(0xf7)}},'required':[a0_0x17352e(0xe9)]}},{'name':a0_0x17352e(0xc2),'description':a0_0x17352e(0xc8),'inputSchema':{'type':a0_0x17352e(0xed),'properties':{'alias':{'type':a0_0x17352e(0xb1),'description':a0_0x17352e(0x11c)},'task':{'type':a0_0x17352e(0xb1),'description':'Task\x20content'},'priority':{'type':'string','enum':[a0_0x17352e(0xb2),a0_0x17352e(0xd2),'low'],'description':a0_0x17352e(0xf9)}},'required':['alias',a0_0x17352e(0x145)]}},{'name':a0_0x17352e(0x13f),'description':'Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','inputSchema':{'type':a0_0x17352e(0xed),'properties':{'alias':{'type':a0_0x17352e(0xb1),'description':a0_0x17352e(0x11c)},'message':{'type':a0_0x17352e(0xb1),'description':a0_0x17352e(0xbe)}},'required':[a0_0x17352e(0xe7),a0_0x17352e(0xc5)]}},{'name':a0_0x17352e(0x139),'description':'Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','inputSchema':{'type':a0_0x17352e(0xed),'properties':{}}}]}));async function Y(_0xf32a2b,_0x35ab56){const _0x3134c4=a0_0x17352e;let _0x4c7b3f=await fetch(j+'/mcp',{'method':_0x3134c4(0x13b),'headers':{'Content-Type':_0x3134c4(0xca),'Accept':_0x3134c4(0xd4),...F?{'Authorization':'Bearer\x20'+F}:{}},'body':JSON[_0x3134c4(0xc3)]({'jsonrpc':'2.0','id':0x1,'method':'initialize','params':{'protocolVersion':_0x3134c4(0x115),'capabilities':{},'clientInfo':{'name':_0x3134c4(0xf5),'version':'0.3.0'}}})});if(!_0x4c7b3f['ok']){let _0x51779b=await _0x4c7b3f[_0x3134c4(0x135)]();return W('CommHub\x20init\x20failed:\x20'+_0x4c7b3f[_0x3134c4(0xe9)]+'\x20'+_0x51779b['slice'](0x0,0x64)),{'ok':!0x1,'error':'init\x20failed:\x20'+_0x4c7b3f[_0x3134c4(0xe9)]};}await _0x4c7b3f[_0x3134c4(0x135)]();let _0x553d44=(await(await fetch(j+_0x3134c4(0xfd),{'method':_0x3134c4(0x13b),'headers':{'Content-Type':_0x3134c4(0xca),'Accept':'application/json,\x20text/event-stream',...F?{'Authorization':_0x3134c4(0x144)+F}:{}},'body':JSON['stringify']({'jsonrpc':_0x3134c4(0xdd),'id':0x2,'method':_0x3134c4(0x146),'params':{'name':_0xf32a2b,'arguments':_0x35ab56}})}))['text']())['split']('\x0a')[_0x3134c4(0x13a)](_0x3d7dca=>_0x3d7dca[_0x3134c4(0x103)]('data:\x20'));if(_0x553d44){let _0x5b9334=JSON[_0x3134c4(0xc4)](_0x553d44[_0x3134c4(0xbf)](0x6));return _0x5b9334?.['result']?.[_0x3134c4(0x134)]?.[0x0]?.[_0x3134c4(0x135)]?JSON[_0x3134c4(0xc4)](_0x5b9334[_0x3134c4(0x138)][_0x3134c4(0x134)][0x0]['text']):_0x5b9334;}return{'ok':!0x1,'error':_0x3134c4(0xe4)};}function a0_0x28cd(_0xbeb1bf,_0x3e4125){_0xbeb1bf=_0xbeb1bf-0xaf;const _0x996b93=a0_0x996b();let _0x28cd87=_0x996b93[_0xbeb1bf];return _0x28cd87;}x[a0_0x17352e(0xb8)](a0_0x300c67,async _0x551476=>{const _0x20c728=a0_0x17352e;let {name:_0x17faee,arguments:_0xc90664}=_0x551476[_0x20c728(0x13e)];if(_0x17faee===_0x20c728(0xdf)){let {task_id:_0x4e5432,text:_0x297114,status:_0x4a3086}=_0xc90664;if(_0x4a3086===_0x20c728(0x104)||_0x4a3086===_0x20c728(0xd0)||_0x4a3086==='cancelled'){let _0x55bd16=_0x4a3086===_0x20c728(0x104)?_0x20c728(0xd9):_0x4a3086,_0x2a2dc7=_0x4e5432?D[_0x20c728(0x116)](_0x4e5432)||_0x20c728(0x100):_0x20c728(0x100),_0x1cfc88=await Y(_0x20c728(0x130),{'alias':_0x2a2dc7,'text':_0x297114,'in_reply_to':_0x4e5432||void 0x0,'status':_0x55bd16,'from_session':G});if(_0x4e5432)D[_0x20c728(0x12f)](_0x4e5432);return{'content':[{'type':_0x20c728(0x135),'text':JSON['stringify'](_0x1cfc88)}]};}let _0x2c3433=await Y(_0x20c728(0x129),{'resume_id':K,'alias':G,'status':_0x4a3086===_0x20c728(0xee)?_0x20c728(0xee):_0x4a3086===_0x20c728(0xc7)?_0x20c728(0xc7):_0x20c728(0x12e),'task':_0x297114[_0x20c728(0xbf)](0x0,0xc8),'output':_0x297114});return{'content':[{'type':'text','text':JSON['stringify'](_0x2c3433)}]};}if(_0x17faee===_0x20c728(0x125)){let {status:_0x471378,task:_0x2947a6,progress:_0x2a3e3b}=_0xc90664,_0x10653e=await Y(_0x20c728(0x129),{'resume_id':K,'alias':G,'status':_0x471378,'task':_0x2947a6,'progress':_0x2a3e3b});return{'content':[{'type':_0x20c728(0x135),'text':JSON['stringify'](_0x10653e)}]};}if(_0x17faee===_0x20c728(0xc2)){let {alias:_0x3679cc,task:_0x205b49,priority:_0x2592bb}=_0xc90664,_0x163dd5=await Y('send_task',{'alias':_0x3679cc,'task':_0x205b49,'priority':_0x2592bb||_0x20c728(0xd2),'from_session':G});return{'content':[{'type':'text','text':JSON[_0x20c728(0xc3)](_0x163dd5)}]};}if(_0x17faee===_0x20c728(0x13f)){let {alias:_0x526b9f,message:_0x4d88e0}=_0xc90664,_0x3fb959=await Y(_0x20c728(0xb0),{'alias':_0x526b9f,'message':_0x4d88e0,'from_session':G});return{'content':[{'type':_0x20c728(0x135),'text':JSON[_0x20c728(0xc3)](_0x3fb959)}]};}if(_0x17faee===_0x20c728(0x139)){let _0x1f0678=await Y(_0x20c728(0xb6),{});return{'content':[{'type':_0x20c728(0x135),'text':JSON[_0x20c728(0xc3)](_0x1f0678)}]};}return{'content':[{'type':_0x20c728(0x135),'text':JSON[_0x20c728(0xc3)]({'error':_0x20c728(0x142)})}]};});var O=0x3e8,R=0x7530,T=0x36ee80;async function l(){const _0x5382ed=a0_0x17352e;try{await Y(_0x5382ed(0x129),{'resume_id':K,'alias':G,'status':_0x5382ed(0xe6),'server':a0_0x56c1bc(),'hostname':a0_0x56c1bc(),'agent':_0x5382ed(0x11d),'project_dir':process[_0x5382ed(0xec)](),'tmux_name':f||void 0x0}),W('re-registered\x20as\x20\x22'+G+'\x22\x20after\x20SSE\x20reconnect');}catch(_0x1392e0){W(_0x5382ed(0xc6)+_0x1392e0);}}async function o(){const _0x31c1f6=a0_0x17352e;let _0x493d63=j+_0x31c1f6(0xfa)+encodeURIComponent(G),_0x3cbdca={};if(F)_0x3cbdca[_0x31c1f6(0xfe)]='Bearer\x20'+F;W(_0x31c1f6(0xf1)+_0x493d63);let _0x717469=O,_0x4ab8d5=!0x0,_0x403b17=null;while(!0x0){try{let _0x3ef9c4=await fetch(_0x493d63,{'headers':_0x3cbdca});if(!_0x3ef9c4['ok']){if(W(_0x31c1f6(0x10d)+_0x3ef9c4['status']+'\x20'+_0x3ef9c4[_0x31c1f6(0xce)]),_0x403b17=_0x403b17??Date['now'](),Date[_0x31c1f6(0xc9)]()-_0x403b17>T){W(_0x31c1f6(0x107)+j+_0x31c1f6(0xbc));return;}await N(_0x717469),_0x717469=Math[_0x31c1f6(0x10f)](_0x717469*0x2,R);continue;}let _0x5764e2=_0x3ef9c4['body'][_0x31c1f6(0x132)](),_0x29dc4b=new TextDecoder(),_0x1bfe00='';_0x717469=O;while(!0x0){let {done:_0x41780b,value:_0xfb1aab}=await _0x5764e2[_0x31c1f6(0xd1)]();if(_0x41780b)break;_0x1bfe00+=_0x29dc4b['decode'](_0xfb1aab,{'stream':!0x0});let _0x3af0bc=_0x1bfe00[_0x31c1f6(0x127)]('\x0a\x0a');_0x1bfe00=_0x3af0bc['pop']()||'';for(let _0x115981 of _0x3af0bc){let _0x5af90e=_0x115981[_0x31c1f6(0x127)]('\x0a')[_0x31c1f6(0x13a)](_0x1ab562=>_0x1ab562[_0x31c1f6(0x103)]('data:\x20'));if(!_0x5af90e)continue;try{let _0x4caa24=JSON[_0x31c1f6(0xc4)](_0x5af90e[_0x31c1f6(0xbf)](0x6));if(await a(_0x4caa24),_0x4caa24[_0x31c1f6(0x12b)]===_0x31c1f6(0xc0)){if(_0x403b17=null,!_0x4ab8d5)await l();_0x4ab8d5=!0x1;}}catch(_0x3c00b7){W(_0x31c1f6(0x10b)+_0x3c00b7);}}}W('SSE\x20stream\x20ended,\x20reconnecting...');}catch(_0x4534e1){W(_0x31c1f6(0x105)+_0x4534e1);}if(_0x403b17=_0x403b17??Date[_0x31c1f6(0xc9)](),Date[_0x31c1f6(0xc9)]()-_0x403b17>T){W(_0x31c1f6(0x107)+j+')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。');return;}await N(_0x717469),_0x717469=Math['min'](_0x717469*0x2,R);}}async function a(_0x1cc631){const _0x27d149=a0_0x17352e;if(_0x1cc631[_0x27d149(0x12b)]===_0x27d149(0xc0)){W(_0x27d149(0xff)+G+'\x22');return;}if(_0x1cc631[_0x27d149(0x12b)]===_0x27d149(0xeb)){if(W('←\x20message\x20from\x20'+_0x1cc631[_0x27d149(0x133)]+':\x20'+_0x1cc631[_0x27d149(0xc5)][_0x27d149(0xbf)](0x0,0x3c)),await x[_0x27d149(0x123)]({'method':_0x27d149(0x13d),'params':{'content':_0x1cc631[_0x27d149(0xc5)],'meta':{'sender':_0x1cc631[_0x27d149(0x133)]||_0x27d149(0x100),'sender_id':_0x27d149(0x122),'user':_0x1cc631[_0x27d149(0x133)]||_0x27d149(0x100),'priority':_0x27d149(0xd2)}}}),_0x1cc631[_0x27d149(0xf3)])await Y('ack_inbox',{'alias':G,'message_id':_0x1cc631[_0x27d149(0xf3)]});return;}if(_0x1cc631['type']===_0x27d149(0x113)||_0x1cc631[_0x27d149(0x12b)]==='broadcast'){W('←\x20'+_0x1cc631[_0x27d149(0x12b)]+_0x27d149(0xda)+_0x1cc631[_0x27d149(0xcb)]+_0x27d149(0xd3)+(_0x1cc631[_0x27d149(0xaf)]||_0x27d149(0xd2)));let _0x44481e=await Y(_0x27d149(0x137),{'alias':G,'limit':0x5});if(_0x44481e?.['ok']&&_0x44481e['messages']?.[_0x27d149(0x114)]>0x0)for(let _0x6e2e91 of _0x44481e['messages']){let _0x563438={'sender':_0x6e2e91[_0x27d149(0xbb)]||'hub','sender_id':_0x27d149(0x122),'user':_0x6e2e91[_0x27d149(0xbb)]||'hub','task_id':_0x6e2e91['id'],'priority':_0x6e2e91[_0x27d149(0xaf)]||'normal'};D['set'](_0x6e2e91['id'],_0x6e2e91['from_session']||'hub'),await x['notification']({'method':_0x27d149(0x13d),'params':{'content':_0x6e2e91[_0x27d149(0x134)],'meta':_0x563438}}),W(_0x27d149(0x128)+_0x6e2e91['id'][_0x27d149(0xbf)](0x0,0x8)+_0x27d149(0x12a)+_0x6e2e91['from_session']+':\x20'+_0x6e2e91[_0x27d149(0x134)][_0x27d149(0xbf)](0x0,0x3c)),await Y('ack_inbox',{'alias':G,'message_id':_0x6e2e91['id']});}}}async function n(){const _0x2fa415=a0_0x17352e;let _0xc95d36=new a0_0x1ee29d();await x[_0x2fa415(0x108)](_0xc95d36),W('MCP\x20stdio\x20connected'),W(_0x2fa415(0xba)),o()[_0x2fa415(0x11f)](_0x5ddef9=>W(_0x2fa415(0x106)+_0x5ddef9)),Y(_0x2fa415(0x129),{'resume_id':K,'alias':G,'status':'idle','server':a0_0x56c1bc(),'hostname':a0_0x56c1bc(),'agent':'claude-code','project_dir':process[_0x2fa415(0xec)](),'tmux_name':f||void 0x0})[_0x2fa415(0xea)](()=>W('registered\x20as\x20\x22'+G+'\x22\x20('+K[_0x2fa415(0xbf)](0x0,0x8)+')'))['catch'](_0x5b7f3d=>W(_0x2fa415(0x111)+_0x5b7f3d)),setInterval(()=>{const _0x123496=_0x2fa415;Y(_0x123496(0x129),{'resume_id':K,'alias':G,'status':_0x123496(0xe6),'server':a0_0x56c1bc(),'hostname':a0_0x56c1bc(),'agent':'claude-code','project_dir':process[_0x123496(0xec)](),'tmux_name':f||void 0x0})[_0x123496(0x11f)](_0x2b187d=>W(_0x123496(0x12c)+_0x2b187d));},0x2bf20),W(_0x2fa415(0xef));}n()[a0_0x17352e(0x11f)](_0xbc3394=>{const _0x1474a9=a0_0x17352e;W('fatal:\x20'+_0xbc3394),process[_0x1474a9(0x143)](0x1);});async function b(){const _0x4da67e=a0_0x17352e;W(_0x4da67e(0x101)),await Y('report_status',{'resume_id':K,'alias':G,'status':'offline','task':_0x4da67e(0xcc)})[_0x4da67e(0x11f)](()=>{}),process[_0x4da67e(0x143)](0x0);}process[a0_0x17352e(0x12d)]['on'](a0_0x17352e(0xe3),()=>b()),process['on'](a0_0x17352e(0x141),()=>b()),process['on'](a0_0x17352e(0xf8),()=>b());
|
|
2
|
+
const a0_0x3f98b5=a0_0x4ed9;(function(_0x989aa2,_0x43256d){const _0x3a96eb=a0_0x4ed9,_0x2695e6=_0x989aa2();while(!![]){try{const _0x573ae3=-parseInt(_0x3a96eb(0x180))/0x1*(parseInt(_0x3a96eb(0x161))/0x2)+-parseInt(_0x3a96eb(0x11e))/0x3+parseInt(_0x3a96eb(0x129))/0x4*(-parseInt(_0x3a96eb(0x14b))/0x5)+-parseInt(_0x3a96eb(0x128))/0x6*(-parseInt(_0x3a96eb(0x16d))/0x7)+parseInt(_0x3a96eb(0x150))/0x8*(-parseInt(_0x3a96eb(0x12a))/0x9)+-parseInt(_0x3a96eb(0x17e))/0xa+parseInt(_0x3a96eb(0x118))/0xb*(parseInt(_0x3a96eb(0x173))/0xc);if(_0x573ae3===_0x43256d)break;else _0x2695e6['push'](_0x2695e6['shift']());}catch(_0x53f6bf){_0x2695e6['push'](_0x2695e6['shift']());}}}(a0_0x12f1,0x2b473));import{readFileSync as a0_0x2af9b1,existsSync as a0_0x4d110f}from'fs';import{randomUUID as a0_0x108fe8}from'crypto';import{join as a0_0x54eb7a}from'path';import{hostname as a0_0x27c663}from'os';import{execSync as a0_0x49f351}from'child_process';import{Server as a0_0x5ef26a}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0x373ecb}from'@modelcontextprotocol/sdk/server/stdio.js';import{ListToolsRequestSchema as a0_0x3ed9bf,CallToolRequestSchema as a0_0xab78d7}from'@modelcontextprotocol/sdk/types.js';function I(_0x481624){const _0x2988d6=a0_0x4ed9;if(!a0_0x4d110f(_0x481624))return;for(let _0x1330d5 of a0_0x2af9b1(_0x481624,_0x2988d6(0x168))[_0x2988d6(0x15f)]('\x0a')){let _0x191225=_0x1330d5[_0x2988d6(0x164)]();if(!_0x191225||_0x191225['startsWith']('#'))continue;let _0x1e0f2d=_0x191225[_0x2988d6(0x111)]('=');if(_0x1e0f2d<0x0)continue;let _0x5e6baf=_0x191225['slice'](0x0,_0x1e0f2d)[_0x2988d6(0x164)](),_0x14df20=_0x191225[_0x2988d6(0x159)](_0x1e0f2d+0x1)[_0x2988d6(0x164)]()['replace'](/^["']|["']$/g,'');if(!process.env[_0x5e6baf])process.env[_0x5e6baf]=_0x14df20;}}var L=process.env.HOME||'~',U=a0_0x54eb7a(L,a0_0x3f98b5(0x12b));function a0_0x4ed9(_0x1a5e74,_0x3c1b8b){_0x1a5e74=_0x1a5e74-0x101;const _0x12f119=a0_0x12f1();let _0x4ed95f=_0x12f119[_0x1a5e74];return _0x4ed95f;}I(a0_0x54eb7a(U,'.env'));var v=process[a0_0x3f98b5(0x127)]()['replace'](/\//g,'-');function a0_0x12f1(){const _0x56533=['application/json','325mnPewH','[commhub]\x20WARN:\x20COMMHUB_ALIAS\x20env\x20var\x20is\x20unset\x20—\x20outbound\x20from_session\x20','\x20/\x20hostname=','blocked','notifications/claude/channel','completed','normal','unknown\x20tool','startsWith','POST','Task\x20content','toTimeString','SSE\x20connected\x20as\x20\x22','commhub_get_all_status','from_session','idle','claude-code','alias','.anet','data:\x20','→\x20injected\x20task\x20','unattributed-','Messages\x20from\x20CommHub\x20arrive\x20as\x20<channel\x20source=\x22commhub\x22\x20task_id=\x22...\x22\x20priority=\x22...\x22\x20from=\x22...\x22>','priority','MCP\x20stdio\x20connected','\x20from\x20','2025-03-26',')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。','high','The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)','.env','in_progress','registered\x20as\x20\x22','pid','Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','catch','commhub','parse\x20error:\x20','session\x20disconnected','params','content','commhub-channel','statusText','indexOf','cancelled','message','init\x20failed:\x20','commhub_send_task','\x20CWD=','string','20339BmtXbP','stdin','Progress\x200-100','SSE\x20连续\x20>1h\x20连不上\x20hub\x20(','broadcast','shutting\x20down,\x20reporting\x20offline...','1018050yxKhIE','ack_inbox','commhub_send_message','commhub_reply','find','Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','CommHub\x20init\x20failed:\x20','result','Session\x20alias:\x20','cwd','50454SkdcIZ','5100phGjtu','25497diNjdX','.claude/channels/commhub','set','then','hub','type','text','/mcp','tmux\x20display-message\x20-p\x20\x27#S\x27','commhub_report_status','←\x20message\x20from\x20','from','application/json,\x20text/event-stream','connected','failed','decode','2.0','fatal:\x20','number','Current\x20task\x20description','read','re-registered\x20as\x20\x22','(none)','working','report_status','\x22\x20(','heartbeat\x20failed:\x20','\x22\x20after\x20SSE\x20reconnect','min','object','Reply\x20using\x20the\x20commhub_reply\x20tool\x20to\x20report\x20status\x20or\x20results\x20back.','starting\x20SSE\x20listener...','token','885XyaUkL','now','stderr','warning:\x20could\x20not\x20register:\x20','Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','264GiUIwP','connecting\x20to\x20','low','\x20PROJECT_ENV=','http://127.0.0.1:9200','\x20ALIAS=','end','Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','messages','slice','task','exit','none','get','SSE\x20error:\x20','split','Authorization','1814trZCOm','would\x20mis-attribute.\x20Refusing\x20to\x20guess\x20from\x20TMUX_NAME=','notification','trim','message_id','new_task','/events/','utf-8','0.3.0','These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.','status','ENV:\x20URL=','63ghXpGm','ready\x20—\x20waiting\x20for\x20events','Message\x20content','stringify','setRequestHandler','SIGINT','8532hOFeNg','Target\x20session\x20alias','new_message','write','replied','Bearer\x20','parse','send_task',':\x20inbox_count=','error','delete','2597640PhldRn'];a0_0x12f1=function(){return _0x56533;};return a0_0x12f1();}I(a0_0x54eb7a(U,v,a0_0x3f98b5(0x104)));function d(){const _0x40c729=a0_0x3f98b5;try{return a0_0x49f351(_0x40c729(0x132),{'encoding':_0x40c729(0x168),'timeout':0x7d0})['trim']();}catch{return'';}}function m(){const _0x2de17d=a0_0x3f98b5;try{let _0x5202bf=a0_0x54eb7a(L,_0x2de17d(0x192),'config.json');if(a0_0x4d110f(_0x5202bf))return JSON['parse'](a0_0x2af9b1(_0x5202bf,_0x2de17d(0x168)));}catch{}return{};}var u=m(),j=process.env.COMMHUB_URL||u[a0_0x3f98b5(0x12e)]||a0_0x3f98b5(0x154),f=process.env.COMMHUB_TMUX||d();function r(){const _0x58db4f=a0_0x3f98b5;if(process.env.COMMHUB_ALIAS&&process.env.COMMHUB_ALIAS[_0x58db4f(0x164)]())return process.env.COMMHUB_ALIAS['trim']();return process[_0x58db4f(0x14d)]['write'](_0x58db4f(0x181)+(_0x58db4f(0x162)+(f||_0x58db4f(0x140))+_0x58db4f(0x182)+a0_0x27c663()+'.\x20Restart\x20node\x20via\x20`anet\x20node\x20start\x20<alias>`\x20so\x20the\x20env\x20is\x20set\x20explicitly\x20(#203).\x0a')),_0x58db4f(0x195)+process[_0x58db4f(0x107)];}var G=r(),K=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0x108fe8(),F=process.env.COMMHUB_TOKEN||u[a0_0x3f98b5(0x14a)]||'';function W(_0x33eca1){const _0x81ff0a=a0_0x3f98b5;let _0x4e2284=new Date()[_0x81ff0a(0x18b)]()[_0x81ff0a(0x159)](0x0,0x8);process[_0x81ff0a(0x14d)][_0x81ff0a(0x176)]('['+_0x4e2284+']\x20[commhub]\x20'+_0x33eca1+'\x0a');}function N(_0xab33f7){return new Promise(_0x4d98b6=>setTimeout(_0x4d98b6,_0xab33f7));}W(a0_0x3f98b5(0x16c)+j+a0_0x3f98b5(0x155)+G+'\x20RESUME_ID='+K[a0_0x3f98b5(0x159)](0x0,0x8)+'...\x20TMUX='+(f||a0_0x3f98b5(0x15c))+a0_0x3f98b5(0x116)+process[a0_0x3f98b5(0x127)]()+a0_0x3f98b5(0x153)+v);var D=new Map(),x=new a0_0x5ef26a({'name':'commhub-channel','version':a0_0x3f98b5(0x169)},{'capabilities':{'experimental':{'claude/channel':{}},'tools':{}},'instructions':[a0_0x3f98b5(0x196),a0_0x3f98b5(0x16a),a0_0x3f98b5(0x148),'You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.',a0_0x3f98b5(0x126)+G]['join']('\x0a')});x['setRequestHandler'](a0_0x3ed9bf,async()=>({'tools':[{'name':a0_0x3f98b5(0x121),'description':'Reply\x20to\x20a\x20CommHub\x20task\x20—\x20report\x20completion\x20or\x20send\x20a\x20message\x20back\x20to\x20the\x20hub.','inputSchema':{'type':a0_0x3f98b5(0x147),'properties':{'task_id':{'type':a0_0x3f98b5(0x117),'description':a0_0x3f98b5(0x103)},'text':{'type':a0_0x3f98b5(0x117),'description':'Reply\x20text\x20/\x20result\x20summary'},'status':{'type':'string','enum':[a0_0x3f98b5(0x185),a0_0x3f98b5(0x138),a0_0x3f98b5(0x112),a0_0x3f98b5(0x183),a0_0x3f98b5(0x17c),a0_0x3f98b5(0x105)],'description':'Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates'}},'required':[a0_0x3f98b5(0x130)]}},{'name':a0_0x3f98b5(0x133),'description':a0_0x3f98b5(0x108),'inputSchema':{'type':a0_0x3f98b5(0x147),'properties':{'status':{'type':a0_0x3f98b5(0x117),'enum':[a0_0x3f98b5(0x141),a0_0x3f98b5(0x18f),a0_0x3f98b5(0x183),'error']},'task':{'type':'string','description':a0_0x3f98b5(0x13d)},'progress':{'type':a0_0x3f98b5(0x13c),'description':a0_0x3f98b5(0x11a)}},'required':[a0_0x3f98b5(0x16b)]}},{'name':'commhub_send_task','description':a0_0x3f98b5(0x14f),'inputSchema':{'type':'object','properties':{'alias':{'type':a0_0x3f98b5(0x117),'description':a0_0x3f98b5(0x174)},'task':{'type':a0_0x3f98b5(0x117),'description':a0_0x3f98b5(0x18a)},'priority':{'type':'string','enum':[a0_0x3f98b5(0x102),a0_0x3f98b5(0x186),a0_0x3f98b5(0x152)],'description':'Priority\x20(default:\x20normal)'}},'required':[a0_0x3f98b5(0x191),a0_0x3f98b5(0x15a)]}},{'name':a0_0x3f98b5(0x120),'description':a0_0x3f98b5(0x123),'inputSchema':{'type':a0_0x3f98b5(0x147),'properties':{'alias':{'type':a0_0x3f98b5(0x117),'description':a0_0x3f98b5(0x174)},'message':{'type':a0_0x3f98b5(0x117),'description':a0_0x3f98b5(0x16f)}},'required':[a0_0x3f98b5(0x191),a0_0x3f98b5(0x113)]}},{'name':'commhub_get_all_status','description':a0_0x3f98b5(0x157),'inputSchema':{'type':'object','properties':{}}}]}));async function Y(_0x1cdf37,_0x133e63){const _0x2304db=a0_0x3f98b5;let _0x562a40=await fetch(j+_0x2304db(0x131),{'method':_0x2304db(0x189),'headers':{'Content-Type':_0x2304db(0x17f),'Accept':_0x2304db(0x136),...F?{'Authorization':_0x2304db(0x178)+F}:{}},'body':JSON[_0x2304db(0x170)]({'jsonrpc':_0x2304db(0x13a),'id':0x1,'method':'initialize','params':{'protocolVersion':_0x2304db(0x19a),'capabilities':{},'clientInfo':{'name':_0x2304db(0x10f),'version':_0x2304db(0x169)}}})});if(!_0x562a40['ok']){let _0x444ffe=await _0x562a40[_0x2304db(0x130)]();return W(_0x2304db(0x124)+_0x562a40[_0x2304db(0x16b)]+'\x20'+_0x444ffe[_0x2304db(0x159)](0x0,0x64)),{'ok':!0x1,'error':_0x2304db(0x114)+_0x562a40['status']};}await _0x562a40[_0x2304db(0x130)]();let _0x1f1334=(await(await fetch(j+_0x2304db(0x131),{'method':_0x2304db(0x189),'headers':{'Content-Type':_0x2304db(0x17f),'Accept':'application/json,\x20text/event-stream',...F?{'Authorization':'Bearer\x20'+F}:{}},'body':JSON[_0x2304db(0x170)]({'jsonrpc':'2.0','id':0x2,'method':'tools/call','params':{'name':_0x1cdf37,'arguments':_0x133e63}})}))[_0x2304db(0x130)]())[_0x2304db(0x15f)]('\x0a')[_0x2304db(0x122)](_0x445326=>_0x445326[_0x2304db(0x188)](_0x2304db(0x193)));if(_0x1f1334){let _0x2b6ed9=JSON[_0x2304db(0x179)](_0x1f1334[_0x2304db(0x159)](0x6));return _0x2b6ed9?.[_0x2304db(0x125)]?.[_0x2304db(0x10e)]?.[0x0]?.[_0x2304db(0x130)]?JSON[_0x2304db(0x179)](_0x2b6ed9['result']['content'][0x0][_0x2304db(0x130)]):_0x2b6ed9;}return{'ok':!0x1,'error':'no\x20response'};}x[a0_0x3f98b5(0x171)](a0_0xab78d7,async _0x4fe64f=>{const _0x1e7352=a0_0x3f98b5;let {name:_0x43ba8c,arguments:_0x3251a3}=_0x4fe64f[_0x1e7352(0x10d)];if(_0x43ba8c===_0x1e7352(0x121)){let {task_id:_0x182178,text:_0x398c73,status:_0x2ca5a3}=_0x3251a3;if(_0x2ca5a3===_0x1e7352(0x185)||_0x2ca5a3===_0x1e7352(0x138)||_0x2ca5a3===_0x1e7352(0x112)){let _0x11b37e=_0x2ca5a3===_0x1e7352(0x185)?_0x1e7352(0x177):_0x2ca5a3,_0x4ea0af=_0x182178?D[_0x1e7352(0x15d)](_0x182178)||_0x1e7352(0x12e):_0x1e7352(0x12e),_0x5580aa=await Y('send_reply',{'alias':_0x4ea0af,'text':_0x398c73,'in_reply_to':_0x182178||void 0x0,'status':_0x11b37e,'from_session':G});if(_0x182178)D[_0x1e7352(0x17d)](_0x182178);return{'content':[{'type':_0x1e7352(0x130),'text':JSON[_0x1e7352(0x170)](_0x5580aa)}]};}let _0x3a2a05=await Y('report_status',{'resume_id':K,'alias':G,'status':_0x2ca5a3===_0x1e7352(0x183)?_0x1e7352(0x183):_0x2ca5a3===_0x1e7352(0x17c)?'error':_0x1e7352(0x141),'task':_0x398c73['slice'](0x0,0xc8),'output':_0x398c73});return{'content':[{'type':_0x1e7352(0x130),'text':JSON['stringify'](_0x3a2a05)}]};}if(_0x43ba8c===_0x1e7352(0x133)){let {status:_0x26fa66,task:_0x4e98f8,progress:_0x452d16}=_0x3251a3,_0x51dc40=await Y(_0x1e7352(0x142),{'resume_id':K,'alias':G,'status':_0x26fa66,'task':_0x4e98f8,'progress':_0x452d16});return{'content':[{'type':_0x1e7352(0x130),'text':JSON[_0x1e7352(0x170)](_0x51dc40)}]};}if(_0x43ba8c===_0x1e7352(0x115)){let {alias:_0x5a815e,task:_0x4c9504,priority:_0x412896}=_0x3251a3,_0x3850d5=await Y(_0x1e7352(0x17a),{'alias':_0x5a815e,'task':_0x4c9504,'priority':_0x412896||_0x1e7352(0x186),'from_session':G});return{'content':[{'type':_0x1e7352(0x130),'text':JSON['stringify'](_0x3850d5)}]};}if(_0x43ba8c==='commhub_send_message'){let {alias:_0x3cbbe7,message:_0x3e010f}=_0x3251a3,_0x2a329b=await Y('send_message',{'alias':_0x3cbbe7,'message':_0x3e010f,'from_session':G});return{'content':[{'type':_0x1e7352(0x130),'text':JSON[_0x1e7352(0x170)](_0x2a329b)}]};}if(_0x43ba8c===_0x1e7352(0x18d)){let _0x40f432=await Y('get_all_status',{});return{'content':[{'type':'text','text':JSON['stringify'](_0x40f432)}]};}return{'content':[{'type':'text','text':JSON['stringify']({'error':_0x1e7352(0x187)})}]};});var O=0x3e8,R=0x7530,T=0x36ee80;async function l(){const _0x517640=a0_0x3f98b5;try{await Y(_0x517640(0x142),{'resume_id':K,'alias':G,'status':'idle','server':a0_0x27c663(),'hostname':a0_0x27c663(),'agent':_0x517640(0x190),'project_dir':process['cwd'](),'tmux_name':f||void 0x0}),W(_0x517640(0x13f)+G+_0x517640(0x145));}catch(_0x3883bb){W('re-register\x20failed:\x20'+_0x3883bb);}}async function o(){const _0x4f88b6=a0_0x3f98b5;let _0x1ebd25=j+_0x4f88b6(0x167)+encodeURIComponent(G),_0x5278d5={};if(F)_0x5278d5[_0x4f88b6(0x160)]=_0x4f88b6(0x178)+F;W(_0x4f88b6(0x151)+_0x1ebd25);let _0x22817=O,_0x26eeee=!0x0,_0x47f826=null;while(!0x0){try{let _0x5411e7=await fetch(_0x1ebd25,{'headers':_0x5278d5});if(!_0x5411e7['ok']){if(W(_0x4f88b6(0x15e)+_0x5411e7[_0x4f88b6(0x16b)]+'\x20'+_0x5411e7[_0x4f88b6(0x110)]),_0x47f826=_0x47f826??Date[_0x4f88b6(0x14c)](),Date[_0x4f88b6(0x14c)]()-_0x47f826>T){W('SSE\x20连续\x20>1h\x20连不上\x20hub\x20('+j+')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。');return;}await N(_0x22817),_0x22817=Math[_0x4f88b6(0x146)](_0x22817*0x2,R);continue;}let _0x17977f=_0x5411e7['body']['getReader'](),_0x22e9eb=new TextDecoder(),_0xbb5024='';_0x22817=O;while(!0x0){let {done:_0x3ba50f,value:_0x1a23e2}=await _0x17977f[_0x4f88b6(0x13e)]();if(_0x3ba50f)break;_0xbb5024+=_0x22e9eb[_0x4f88b6(0x139)](_0x1a23e2,{'stream':!0x0});let _0x1ad0b8=_0xbb5024[_0x4f88b6(0x15f)]('\x0a\x0a');_0xbb5024=_0x1ad0b8['pop']()||'';for(let _0x439583 of _0x1ad0b8){let _0x322adc=_0x439583[_0x4f88b6(0x15f)]('\x0a')[_0x4f88b6(0x122)](_0x228975=>_0x228975[_0x4f88b6(0x188)](_0x4f88b6(0x193)));if(!_0x322adc)continue;try{let _0x266111=JSON['parse'](_0x322adc[_0x4f88b6(0x159)](0x6));if(await a(_0x266111),_0x266111[_0x4f88b6(0x12f)]===_0x4f88b6(0x137)){if(_0x47f826=null,!_0x26eeee)await l();_0x26eeee=!0x1;}}catch(_0x483939){W(_0x4f88b6(0x10b)+_0x483939);}}}W('SSE\x20stream\x20ended,\x20reconnecting...');}catch(_0x1cef53){W('SSE\x20connection\x20error:\x20'+_0x1cef53);}if(_0x47f826=_0x47f826??Date[_0x4f88b6(0x14c)](),Date['now']()-_0x47f826>T){W(_0x4f88b6(0x11b)+j+_0x4f88b6(0x101));return;}await N(_0x22817),_0x22817=Math[_0x4f88b6(0x146)](_0x22817*0x2,R);}}async function a(_0x3b6b2f){const _0x1ffd03=a0_0x3f98b5;if(_0x3b6b2f[_0x1ffd03(0x12f)]===_0x1ffd03(0x137)){W(_0x1ffd03(0x18c)+G+'\x22');return;}if(_0x3b6b2f[_0x1ffd03(0x12f)]===_0x1ffd03(0x175)){if(W(_0x1ffd03(0x134)+_0x3b6b2f['from']+':\x20'+_0x3b6b2f[_0x1ffd03(0x113)][_0x1ffd03(0x159)](0x0,0x3c)),await x[_0x1ffd03(0x163)]({'method':_0x1ffd03(0x184),'params':{'content':_0x3b6b2f[_0x1ffd03(0x113)],'meta':{'sender':_0x3b6b2f[_0x1ffd03(0x135)]||'hub','sender_id':'commhub','user':_0x3b6b2f['from']||_0x1ffd03(0x12e),'priority':_0x1ffd03(0x186)}}}),_0x3b6b2f['message_id'])await Y(_0x1ffd03(0x11f),{'alias':G,'message_id':_0x3b6b2f[_0x1ffd03(0x165)]});return;}if(_0x3b6b2f[_0x1ffd03(0x12f)]===_0x1ffd03(0x166)||_0x3b6b2f['type']===_0x1ffd03(0x11c)){W('←\x20'+_0x3b6b2f['type']+_0x1ffd03(0x17b)+_0x3b6b2f['inbox_count']+'\x20priority='+(_0x3b6b2f[_0x1ffd03(0x197)]||_0x1ffd03(0x186)));let _0x58f500=await Y('get_inbox',{'alias':G,'limit':0x5});if(_0x58f500?.['ok']&&_0x58f500[_0x1ffd03(0x158)]?.['length']>0x0)for(let _0x47a0ec of _0x58f500[_0x1ffd03(0x158)]){let _0x406506={'sender':_0x47a0ec['from_session']||_0x1ffd03(0x12e),'sender_id':_0x1ffd03(0x10a),'user':_0x47a0ec[_0x1ffd03(0x18e)]||_0x1ffd03(0x12e),'task_id':_0x47a0ec['id'],'priority':_0x47a0ec[_0x1ffd03(0x197)]||_0x1ffd03(0x186)};D[_0x1ffd03(0x12c)](_0x47a0ec['id'],_0x47a0ec[_0x1ffd03(0x18e)]||'hub'),await x[_0x1ffd03(0x163)]({'method':_0x1ffd03(0x184),'params':{'content':_0x47a0ec['content'],'meta':_0x406506}}),W(_0x1ffd03(0x194)+_0x47a0ec['id']['slice'](0x0,0x8)+_0x1ffd03(0x199)+_0x47a0ec[_0x1ffd03(0x18e)]+':\x20'+_0x47a0ec[_0x1ffd03(0x10e)][_0x1ffd03(0x159)](0x0,0x3c)),await Y('ack_inbox',{'alias':G,'message_id':_0x47a0ec['id']});}}}async function n(){const _0x2127fe=a0_0x3f98b5;let _0x2d5a54=new a0_0x373ecb();await x['connect'](_0x2d5a54),W(_0x2127fe(0x198)),W(_0x2127fe(0x149)),o()[_0x2127fe(0x109)](_0x14c733=>W('SSE\x20fatal:\x20'+_0x14c733)),Y('report_status',{'resume_id':K,'alias':G,'status':_0x2127fe(0x18f),'server':a0_0x27c663(),'hostname':a0_0x27c663(),'agent':'claude-code','project_dir':process[_0x2127fe(0x127)](),'tmux_name':f||void 0x0})[_0x2127fe(0x12d)](()=>W(_0x2127fe(0x106)+G+_0x2127fe(0x143)+K[_0x2127fe(0x159)](0x0,0x8)+')'))[_0x2127fe(0x109)](_0x56487f=>W(_0x2127fe(0x14e)+_0x56487f)),setInterval(()=>{const _0x33b939=_0x2127fe;Y(_0x33b939(0x142),{'resume_id':K,'alias':G,'status':_0x33b939(0x18f),'server':a0_0x27c663(),'hostname':a0_0x27c663(),'agent':'claude-code','project_dir':process[_0x33b939(0x127)](),'tmux_name':f||void 0x0})[_0x33b939(0x109)](_0x51eee3=>W(_0x33b939(0x144)+_0x51eee3));},0x2bf20),W(_0x2127fe(0x16e));}n()[a0_0x3f98b5(0x109)](_0x503239=>{const _0x3911cf=a0_0x3f98b5;W(_0x3911cf(0x13b)+_0x503239),process[_0x3911cf(0x15b)](0x1);});async function b(){const _0x413359=a0_0x3f98b5;W(_0x413359(0x11d)),await Y(_0x413359(0x142),{'resume_id':K,'alias':G,'status':'offline','task':_0x413359(0x10c)})[_0x413359(0x109)](()=>{}),process['exit'](0x0);}process[a0_0x3f98b5(0x119)]['on'](a0_0x3f98b5(0x156),()=>b()),process['on']('SIGTERM',()=>b()),process['on'](a0_0x3f98b5(0x172),()=>b());
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sleep2agi/agent-network",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.14",
|
|
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",
|