@sleep2agi/agent-network 2.2.11 → 2.2.12
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_0x8c6273=a0_0x1663;function a0_0x3999(){const _0x3ad6d8=['644292hKGxkV','3141858sLTjSY','match','2LcpvoE','connectSSE','idle','/mcp','read','type','AbortError','abort','result','getAllStatus','completed','alias','POST','text','sdk','text/event-stream','slice','log','1380RqOHRa','/events/','broadcast','from_session','application/json,\x20text/event-stream','2.0','get_all_status','pop','reconnectDelay','heartbeatInterval','offline','send_message','status','inbox\x20error:\x20','token','2985426rdjEIM',']\x20[commhub:','call','27464RkCBwQ','get_inbox','now','running','518dLaAQZ','parse','signal','new_message','12mbaotY','20mokzjn','reply','connect','send_reply','application/json','connected','autoConnect','body','content','split','task','server','processInbox','tools/call','new_task','1012515EgIbkH','SSE\x20connected','messages','send','Authorization','SSE\x20reconnecting\x20in\x20','replace','disconnected','resumeId','name','error','heartbeatTimer','Bearer\x20','stringify','842290WAViJI','catch','toTimeString','message','registered','url','103829htaRkQ','send_task','sseAbort','sleep','sdk-','agent','emit','SSE\x20failed:\x20'];a0_0x3999=function(){return _0x3ad6d8;};return a0_0x3999();}(function(_0xdc9419,_0x16b2bf){const _0x323d0f=a0_0x1663,_0x5d3ad6=_0xdc9419();while(!![]){try{const _0x1f9338=-parseInt(_0x323d0f(0xb2))/0x1+parseInt(_0x323d0f(0xc3))/0x2*(parseInt(_0x323d0f(0xc1))/0x3)+-parseInt(_0x323d0f(0xef))/0x4*(parseInt(_0x323d0f(0xa4))/0x5)+-parseInt(_0x323d0f(0xe4))/0x6+-parseInt(_0x323d0f(0xeb))/0x7*(-parseInt(_0x323d0f(0xe7))/0x8)+-parseInt(_0x323d0f(0xc0))/0x9*(-parseInt(_0x323d0f(0xf0))/0xa)+parseInt(_0x323d0f(0xb8))/0xb*(parseInt(_0x323d0f(0xd5))/0xc);if(_0x1f9338===_0x16b2bf)break;else _0x5d3ad6['push'](_0x5d3ad6['shift']());}catch(_0x3af492){_0x5d3ad6['push'](_0x5d3ad6['shift']());}}}(a0_0x3999,0x8e3db));import{EventEmitter as a0_0x3d6184}from'events';import{hostname as a0_0x1fb977}from'os';class T extends a0_0x3d6184{['url'];['alias'];[a0_0x8c6273(0xe3)];[a0_0x8c6273(0xbd)];['resumeId'];[a0_0x8c6273(0xde)];[a0_0x8c6273(0xdd)];['heartbeatTimer'];[a0_0x8c6273(0xba)];['running']=!0x1;constructor(_0x593fc0){const _0x41dfc5=a0_0x8c6273;super();if(this['url']=_0x593fc0['url'][_0x41dfc5(0xaa)](/\/$/,''),this[_0x41dfc5(0xce)]=_0x593fc0['alias'],this[_0x41dfc5(0xe3)]=_0x593fc0[_0x41dfc5(0xe3)],this[_0x41dfc5(0xbd)]=_0x593fc0[_0x41dfc5(0xbd)]||_0x41dfc5(0xd1),this[_0x41dfc5(0xac)]=_0x41dfc5(0xbc)+_0x593fc0[_0x41dfc5(0xce)]+'-'+Date[_0x41dfc5(0xe9)]()['toString'](0x24),this[_0x41dfc5(0xde)]=_0x593fc0[_0x41dfc5(0xde)]??0x2bf20,this[_0x41dfc5(0xdd)]=_0x593fc0[_0x41dfc5(0xdd)]??0xbb8,_0x593fc0[_0x41dfc5(0xf6)]!==!0x1)this[_0x41dfc5(0xf2)]();}[a0_0x8c6273(0xd4)](_0x2c2145){const _0x381a56=a0_0x8c6273;console[_0x381a56(0xd4)]('['+new Date()[_0x381a56(0xb4)]()[_0x381a56(0xd3)](0x0,0x8)+_0x381a56(0xe5)+this[_0x381a56(0xce)]+']\x20'+_0x2c2145);}async[a0_0x8c6273(0xe6)](_0x263e7b,_0xdbdc0b){const _0x11fbba=a0_0x8c6273;let _0x48c9a6={'Content-Type':_0x11fbba(0xf4),'Accept':_0x11fbba(0xd9)};if(this[_0x11fbba(0xe3)])_0x48c9a6[_0x11fbba(0xa8)]=_0x11fbba(0xb0)+this[_0x11fbba(0xe3)];let _0x45dc2c=await(await fetch(this[_0x11fbba(0xb7)]+_0x11fbba(0xc6),{'method':_0x11fbba(0xcf),'headers':_0x48c9a6,'body':JSON[_0x11fbba(0xb1)]({'jsonrpc':_0x11fbba(0xda),'id':Date['now'](),'method':_0x11fbba(0xa2),'params':{'name':_0x263e7b,'arguments':_0xdbdc0b}})}))[_0x11fbba(0xd0)](),_0x455929=_0x45dc2c[_0x11fbba(0xc2)](/data: (.+)/),_0x23fb3a=_0x455929?JSON['parse'](_0x455929[0x1]):JSON[_0x11fbba(0xec)](_0x45dc2c),_0x92c687=_0x23fb3a?.[_0x11fbba(0xcb)]?.['content']?.[0x0]?.[_0x11fbba(0xd0)];return _0x92c687?JSON[_0x11fbba(0xec)](_0x92c687):_0x23fb3a;}async[a0_0x8c6273(0xf2)](){const _0x371567=a0_0x8c6273;if(this['running'])return;this[_0x371567(0xea)]=!0x0,await this['status'](_0x371567(0xc5)),this[_0x371567(0xd4)](_0x371567(0xb6)),this[_0x371567(0xaf)]=setInterval(()=>{const _0x364ed2=_0x371567;this['status'](_0x364ed2(0xc5))[_0x364ed2(0xb3)](_0x968e28=>this[_0x364ed2(0xd4)]('heartbeat\x20failed:\x20'+_0x968e28[_0x364ed2(0xb5)]));},this[_0x371567(0xde)]),this[_0x371567(0xc4)]();}async['disconnect'](){const _0x1f910a=a0_0x8c6273;if(this[_0x1f910a(0xea)]=!0x1,this[_0x1f910a(0xba)]?.[_0x1f910a(0xca)](),this['heartbeatTimer'])clearInterval(this[_0x1f910a(0xaf)]);await this[_0x1f910a(0xe1)](_0x1f910a(0xdf))['catch'](()=>{}),this[_0x1f910a(0xd4)](_0x1f910a(0xab));}async[a0_0x8c6273(0xa7)](_0x51e3dc,_0xb201a5,_0x2d79e3='normal'){const _0x1875c2=a0_0x8c6273;return this[_0x1875c2(0xe6)](_0x1875c2(0xb9),{'alias':_0x51e3dc,'task':_0xb201a5,'priority':_0x2d79e3,'from_session':this[_0x1875c2(0xce)]});}async['message'](_0x451435,_0x138ad3){const _0x30e362=a0_0x8c6273;return this[_0x30e362(0xe6)](_0x30e362(0xe0),{'alias':_0x451435,'message':_0x138ad3,'from_session':this['alias']});}async[a0_0x8c6273(0xf1)](_0x777d6c,_0x4cb9d9,_0x6fbd4d=a0_0x8c6273(0xcd)){const _0x7f533b=a0_0x8c6273;return this['call'](_0x7f533b(0xf3),{'in_reply_to':_0x777d6c,'text':_0x4cb9d9,'status':_0x6fbd4d});}async[a0_0x8c6273(0xe1)](_0xa03af0,_0x397836){const _0x2d41cb=a0_0x8c6273;return this['call']('report_status',{'resume_id':this['resumeId'],'alias':this['alias'],'status':_0xa03af0,'server':a0_0x1fb977(),'hostname':a0_0x1fb977(),'agent':this[_0x2d41cb(0xbd)],'project_dir':process['cwd'](),..._0x397836});}async[a0_0x8c6273(0xcc)](){const _0x4d92c2=a0_0x8c6273;return this[_0x4d92c2(0xe6)](_0x4d92c2(0xdb),{});}async['broadcast'](_0x442c7a,_0x596ba8){const _0x1564b3=a0_0x8c6273;return this['call'](_0x1564b3(0xd7),{'message':_0x442c7a,'filter_server':_0x596ba8?.[_0x1564b3(0xfb)],'filter_status':_0x596ba8?.['status']});}async[a0_0x8c6273(0xc4)](){const _0x24fc11=a0_0x8c6273;let _0x5276ad=encodeURIComponent(this[_0x24fc11(0xce)]),_0x5be62c=this[_0x24fc11(0xb7)]+_0x24fc11(0xd6)+_0x5276ad,_0x1ab88b=this[_0x24fc11(0xdd)];while(this['running']){try{this[_0x24fc11(0xba)]=new AbortController();let _0x2abe21={'Accept':_0x24fc11(0xd2)};if(this[_0x24fc11(0xe3)])_0x2abe21[_0x24fc11(0xa8)]=_0x24fc11(0xb0)+this['token'];let _0x27d09c=await fetch(_0x5be62c,{'headers':_0x2abe21,'signal':this[_0x24fc11(0xba)][_0x24fc11(0xed)]});if(!_0x27d09c['ok']||!_0x27d09c[_0x24fc11(0xf7)]){this[_0x24fc11(0xd4)](_0x24fc11(0xbf)+_0x27d09c[_0x24fc11(0xe1)]),await this[_0x24fc11(0xbb)](_0x1ab88b),_0x1ab88b=Math['min'](_0x1ab88b*1.5,0xea60);continue;}_0x1ab88b=this[_0x24fc11(0xdd)];let _0x35e3b8=_0x27d09c['body']['getReader'](),_0x2d42c4=new TextDecoder(),_0x14524c='';while(this[_0x24fc11(0xea)]){let {done:_0x41605c,value:_0x5e2251}=await _0x35e3b8[_0x24fc11(0xc7)]();if(_0x41605c)break;_0x14524c+=_0x2d42c4['decode'](_0x5e2251,{'stream':!0x0});let _0x2d0c7f=_0x14524c[_0x24fc11(0xf9)]('\x0a');_0x14524c=_0x2d0c7f[_0x24fc11(0xdc)]()||'';for(let _0x12c451 of _0x2d0c7f){if(!_0x12c451['startsWith']('data:\x20'))continue;try{let _0x431b35=JSON[_0x24fc11(0xec)](_0x12c451[_0x24fc11(0xd3)](0x6));if(_0x431b35[_0x24fc11(0xc8)]===_0x24fc11(0xf5)){this[_0x24fc11(0xd4)](_0x24fc11(0xa5)),this[_0x24fc11(0xbe)](_0x24fc11(0xf5));continue;}if(_0x431b35[_0x24fc11(0xc8)]===_0x24fc11(0xa3)||_0x431b35['type']===_0x24fc11(0xee)||_0x431b35[_0x24fc11(0xc8)]==='broadcast')await this[_0x24fc11(0xa1)]();}catch{}}}}catch(_0x212738){if(_0x212738[_0x24fc11(0xad)]===_0x24fc11(0xc9))break;this[_0x24fc11(0xbe)](_0x24fc11(0xae),_0x212738),this[_0x24fc11(0xd4)]('SSE\x20error:\x20'+_0x212738['message']);}if(this[_0x24fc11(0xea)])this[_0x24fc11(0xbe)](_0x24fc11(0xab)),this[_0x24fc11(0xd4)](_0x24fc11(0xa9)+_0x1ab88b/0x3e8+'s...'),await this[_0x24fc11(0xbb)](_0x1ab88b),_0x1ab88b=Math['min'](_0x1ab88b*1.5,0xea60);}}async[a0_0x8c6273(0xa1)](){const _0x5be037=a0_0x8c6273;try{let _0xe7168a=(await this[_0x5be037(0xe6)](_0x5be037(0xe8),{'alias':this[_0x5be037(0xce)],'limit':0xa}))?.[_0x5be037(0xa6)]||[];for(let _0x32cec2 of _0xe7168a)await this[_0x5be037(0xe6)]('ack_inbox',{'alias':this[_0x5be037(0xce)],'message_id':_0x32cec2['id']}),this[_0x5be037(0xd4)]('←\x20'+_0x32cec2[_0x5be037(0xd8)]+':\x20'+_0x32cec2[_0x5be037(0xf8)][_0x5be037(0xd3)](0x0,0x3c)),this[_0x5be037(0xbe)](_0x5be037(0xfa),_0x32cec2),this[_0x5be037(0xbe)](_0x5be037(0xb5),_0x32cec2);}catch(_0x3bbd70){this['log'](_0x5be037(0xe2)+_0x3bbd70[_0x5be037(0xb5)]);}}['sleep'](_0x362971){return new Promise(_0x432079=>setTimeout(_0x432079,_0x362971));}}function a0_0x1663(_0x51173e,_0x16ade6){_0x51173e=_0x51173e-0xa1;const _0x399998=a0_0x3999();let _0x1663ae=_0x399998[_0x51173e];return _0x1663ae;}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_0x4936f9=a0_0x16f4;(function(_0xd3eace,_0x243d35){const _0x468f25=a0_0x16f4,_0x2a610f=_0xd3eace();while(!![]){try{const _0x813684=parseInt(_0x468f25(0xac))/0x1+-parseInt(_0x468f25(0xc4))/0x2+-parseInt(_0x468f25(0x103))/0x3*(parseInt(_0x468f25(0xfe))/0x4)+-parseInt(_0x468f25(0x7d))/0x5+-parseInt(_0x468f25(0x8a))/0x6+parseInt(_0x468f25(0xb0))/0x7+-parseInt(_0x468f25(0xea))/0x8*(-parseInt(_0x468f25(0x7c))/0x9);if(_0x813684===_0x243d35)break;else _0x2a610f['push'](_0x2a610f['shift']());}catch(_0x322c74){_0x2a610f['push'](_0x2a610f['shift']());}}}(a0_0x4291,0x4e1eb));import{readFileSync as a0_0x335310,existsSync as a0_0x10e870}from'fs';import{randomUUID as a0_0x76ebc0}from'crypto';import{join as a0_0x1dfd3a}from'path';import{hostname as a0_0x26af58}from'os';import{execSync as a0_0x24440a}from'child_process';import{Server as a0_0x169d00}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0x44ba9c}from'@modelcontextprotocol/sdk/server/stdio.js';function a0_0x4291(){const _0x59ec72=['initialize','idle','/mcp','tmux\x20display-message\x20-p\x20\x27#S\x27','application/json','cwd','split',':\x20inbox_count=','message_id','Reply\x20text\x20/\x20result\x20summary','priority','statusText','trim','Target\x20session\x20alias','none','session\x20disconnected','24SzYtXB','shutting\x20down,\x20reporting\x20offline...','notification','2.0','connected','195537zEhYMd','stderr','blocked','number','\x20from\x20','starting\x20SSE\x20listener...','SSE\x20connection\x20error:\x20','←\x20message\x20from\x20','inbox_count','MCP\x20stdio\x20connected','Priority\x20(default:\x20normal)','POST','SSE\x20connected\x20as\x20\x22','commhub-channel','SSE\x20连续\x20>1h\x20连不上\x20hub\x20(','ack_inbox','205425GNLWfZ','2999630RhlzEF','ENV:\x20URL=','/events/','(none)','stringify','normal','get_inbox','commhub_get_all_status','Messages\x20from\x20CommHub\x20arrive\x20as\x20<channel\x20source=\x22commhub\x22\x20task_id=\x22...\x22\x20priority=\x22...\x22\x20from=\x22...\x22>','init\x20failed:\x20','length','pid','catch','1496160leuctL','then','low','http://127.0.0.1:9200','commhub_send_task','get_all_status','Message\x20content','replied','setRequestHandler','warning:\x20could\x20not\x20register:\x20','SIGTERM','new_task','Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)','connecting\x20to\x20','write','send_task','\x20RESUME_ID=','cancelled','Progress\x200-100','find',']\x20[commhub]\x20','re-register\x20failed:\x20','tools/call','SSE\x20error:\x20','status','notifications/claude/channel','new_message','registered\x20as\x20\x22','\x20CWD=','high',')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。','failed','messages','48593dVAdwR','pop','heartbeat\x20failed:\x20','set','1716813GOkxzM','slice','SSE\x20fatal:\x20','replace','...\x20TMUX=','text','result','alias','from_session','end','Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','min','type','re-registered\x20as\x20\x22','data:\x20','startsWith','commhub_reply','commhub_report_status','exit','claude-code','1164676jkoUno','working','getReader','.env','SSE\x20stream\x20ended,\x20reconnecting...','decode','delete','parse','Current\x20task\x20description','unattributed-','token','broadcast','Reply\x20using\x20the\x20commhub_reply\x20tool\x20to\x20report\x20status\x20or\x20results\x20back.','error','send_message','object','unknown\x20tool','Authorization','toTimeString','message','report_status','.\x20Restart\x20node\x20via\x20`anet\x20node\x20start\x20<alias>`\x20so\x20the\x20env\x20is\x20set\x20explicitly\x20(#203).\x0a','\x20ALIAS=','from','content','stdin','params','application/json,\x20text/event-stream','ready\x20—\x20waiting\x20for\x20events','utf-8','Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','commhub_send_message','commhub','0.3.0','hub','read','Bearer\x20','now','648ktLdih','completed','string','You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.'];a0_0x4291=function(){return _0x59ec72;};return a0_0x4291();}import{ListToolsRequestSchema as a0_0x5c73f9,CallToolRequestSchema as a0_0x9ecd8e}from'@modelcontextprotocol/sdk/types.js';function I(_0x299cff){const _0x4a4ab3=a0_0x16f4;if(!a0_0x10e870(_0x299cff))return;for(let _0x102bf7 of a0_0x335310(_0x299cff,'utf-8')[_0x4a4ab3(0xf4)]('\x0a')){let _0x27db6d=_0x102bf7[_0x4a4ab3(0xfa)]();if(!_0x27db6d||_0x27db6d['startsWith']('#'))continue;let _0x3b3b2f=_0x27db6d['indexOf']('=');if(_0x3b3b2f<0x0)continue;let _0x22142f=_0x27db6d['slice'](0x0,_0x3b3b2f)[_0x4a4ab3(0xfa)](),_0x13a1db=_0x27db6d[_0x4a4ab3(0xb1)](_0x3b3b2f+0x1)[_0x4a4ab3(0xfa)]()[_0x4a4ab3(0xb3)](/^["']|["']$/g,'');if(!process.env[_0x22142f])process.env[_0x22142f]=_0x13a1db;}}var L=process.env.HOME||'~',U=a0_0x1dfd3a(L,'.claude/channels/commhub');I(a0_0x1dfd3a(U,a0_0x4936f9(0xc7)));var v=process[a0_0x4936f9(0xf3)]()[a0_0x4936f9(0xb3)](/\//g,'-');I(a0_0x1dfd3a(U,v,'.env'));function d(){const _0x4b307e=a0_0x4936f9;try{return a0_0x24440a(_0x4b307e(0xf1),{'encoding':_0x4b307e(0xe1),'timeout':0x7d0})[_0x4b307e(0xfa)]();}catch{return'';}}function m(){const _0x5ea49a=a0_0x4936f9;try{let _0x7bf699=a0_0x1dfd3a(L,'.anet','config.json');if(a0_0x10e870(_0x7bf699))return JSON[_0x5ea49a(0xcb)](a0_0x335310(_0x7bf699,'utf-8'));}catch{}return{};}var u=m(),j=process.env.COMMHUB_URL||u[a0_0x4936f9(0xe6)]||a0_0x4936f9(0x8d),f=process.env.COMMHUB_TMUX||d();function r(){const _0x41946c=a0_0x4936f9;if(process.env.COMMHUB_ALIAS&&process.env.COMMHUB_ALIAS[_0x41946c(0xfa)]())return process.env.COMMHUB_ALIAS[_0x41946c(0xfa)]();return process[_0x41946c(0x104)][_0x41946c(0x99)]('[commhub]\x20WARN:\x20COMMHUB_ALIAS\x20env\x20var\x20is\x20unset\x20—\x20outbound\x20from_session\x20'+('would\x20mis-attribute.\x20Refusing\x20to\x20guess\x20from\x20TMUX_NAME='+(f||_0x41946c(0x80))+'\x20/\x20hostname='+a0_0x26af58()+_0x41946c(0xd9))),_0x41946c(0xcd)+process[_0x41946c(0x88)];}var G=r(),K=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0x76ebc0(),F=process.env.COMMHUB_TOKEN||u[a0_0x4936f9(0xce)]||'';function W(_0x4acde8){const _0x522a83=a0_0x4936f9;let _0x4c1a4b=new Date()[_0x522a83(0xd6)]()[_0x522a83(0xb1)](0x0,0x8);process[_0x522a83(0x104)][_0x522a83(0x99)]('['+_0x4c1a4b+_0x522a83(0x9f)+_0x4acde8+'\x0a');}function N(_0x503de6){return new Promise(_0x16b90a=>setTimeout(_0x16b90a,_0x503de6));}W(a0_0x4936f9(0x7e)+j+a0_0x4936f9(0xda)+G+a0_0x4936f9(0x9b)+K[a0_0x4936f9(0xb1)](0x0,0x8)+a0_0x4936f9(0xb4)+(f||a0_0x4936f9(0xfc))+a0_0x4936f9(0xa7)+process['cwd']()+'\x20PROJECT_ENV='+v);var D=new Map(),x=new a0_0x169d00({'name':a0_0x4936f9(0x110),'version':a0_0x4936f9(0xe5)},{'capabilities':{'experimental':{'claude/channel':{}},'tools':{}},'instructions':[a0_0x4936f9(0x85),'These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.',a0_0x4936f9(0xd0),a0_0x4936f9(0xed),'Session\x20alias:\x20'+G]['join']('\x0a')});x['setRequestHandler'](a0_0x5c73f9,async()=>({'tools':[{'name':a0_0x4936f9(0xc0),'description':'Reply\x20to\x20a\x20CommHub\x20task\x20—\x20report\x20completion\x20or\x20send\x20a\x20message\x20back\x20to\x20the\x20hub.','inputSchema':{'type':'object','properties':{'task_id':{'type':a0_0x4936f9(0xec),'description':a0_0x4936f9(0x97)},'text':{'type':a0_0x4936f9(0xec),'description':a0_0x4936f9(0xf7)},'status':{'type':a0_0x4936f9(0xec),'enum':[a0_0x4936f9(0xeb),a0_0x4936f9(0xaa),a0_0x4936f9(0x9c),'blocked','error','in_progress'],'description':'Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates'}},'required':[a0_0x4936f9(0xb5)]}},{'name':a0_0x4936f9(0xc1),'description':a0_0x4936f9(0x96),'inputSchema':{'type':a0_0x4936f9(0xd3),'properties':{'status':{'type':a0_0x4936f9(0xec),'enum':[a0_0x4936f9(0xc5),a0_0x4936f9(0xef),'blocked','error']},'task':{'type':a0_0x4936f9(0xec),'description':a0_0x4936f9(0xcc)},'progress':{'type':a0_0x4936f9(0x106),'description':a0_0x4936f9(0x9d)}},'required':[a0_0x4936f9(0xa3)]}},{'name':a0_0x4936f9(0x8e),'description':a0_0x4936f9(0xe2),'inputSchema':{'type':a0_0x4936f9(0xd3),'properties':{'alias':{'type':a0_0x4936f9(0xec),'description':a0_0x4936f9(0xfb)},'task':{'type':a0_0x4936f9(0xec),'description':'Task\x20content'},'priority':{'type':a0_0x4936f9(0xec),'enum':[a0_0x4936f9(0xa8),a0_0x4936f9(0x82),a0_0x4936f9(0x8c)],'description':a0_0x4936f9(0x10d)}},'required':[a0_0x4936f9(0xb7),'task']}},{'name':a0_0x4936f9(0xe3),'description':a0_0x4936f9(0xba),'inputSchema':{'type':a0_0x4936f9(0xd3),'properties':{'alias':{'type':a0_0x4936f9(0xec),'description':a0_0x4936f9(0xfb)},'message':{'type':a0_0x4936f9(0xec),'description':a0_0x4936f9(0x90)}},'required':[a0_0x4936f9(0xb7),a0_0x4936f9(0xd7)]}},{'name':'commhub_get_all_status','description':'Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','inputSchema':{'type':a0_0x4936f9(0xd3),'properties':{}}}]}));async function Y(_0x541bb4,_0x151c60){const _0x459217=a0_0x4936f9;let _0x451e43=await fetch(j+_0x459217(0xf0),{'method':_0x459217(0x10e),'headers':{'Content-Type':_0x459217(0xf2),'Accept':_0x459217(0xdf),...F?{'Authorization':_0x459217(0xe8)+F}:{}},'body':JSON[_0x459217(0x81)]({'jsonrpc':'2.0','id':0x1,'method':_0x459217(0xee),'params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':_0x459217(0x110),'version':_0x459217(0xe5)}}})});if(!_0x451e43['ok']){let _0x17fa0e=await _0x451e43[_0x459217(0xb5)]();return W('CommHub\x20init\x20failed:\x20'+_0x451e43[_0x459217(0xa3)]+'\x20'+_0x17fa0e[_0x459217(0xb1)](0x0,0x64)),{'ok':!0x1,'error':_0x459217(0x86)+_0x451e43[_0x459217(0xa3)]};}await _0x451e43[_0x459217(0xb5)]();let _0x3357f2=(await(await fetch(j+_0x459217(0xf0),{'method':_0x459217(0x10e),'headers':{'Content-Type':'application/json','Accept':_0x459217(0xdf),...F?{'Authorization':'Bearer\x20'+F}:{}},'body':JSON[_0x459217(0x81)]({'jsonrpc':_0x459217(0x101),'id':0x2,'method':_0x459217(0xa1),'params':{'name':_0x541bb4,'arguments':_0x151c60}})}))[_0x459217(0xb5)]())[_0x459217(0xf4)]('\x0a')[_0x459217(0x9e)](_0x64282f=>_0x64282f['startsWith'](_0x459217(0xbe)));if(_0x3357f2){let _0x20736c=JSON[_0x459217(0xcb)](_0x3357f2['slice'](0x6));return _0x20736c?.['result']?.[_0x459217(0xdc)]?.[0x0]?.[_0x459217(0xb5)]?JSON['parse'](_0x20736c[_0x459217(0xb6)][_0x459217(0xdc)][0x0][_0x459217(0xb5)]):_0x20736c;}return{'ok':!0x1,'error':'no\x20response'};}x[a0_0x4936f9(0x92)](a0_0x9ecd8e,async _0x8c791b=>{const _0x2ab54a=a0_0x4936f9;let {name:_0x484c6c,arguments:_0x45fb8d}=_0x8c791b[_0x2ab54a(0xde)];if(_0x484c6c==='commhub_reply'){let {task_id:_0x46b501,text:_0x376aea,status:_0x19acb5}=_0x45fb8d;if(_0x19acb5===_0x2ab54a(0xeb)||_0x19acb5==='failed'||_0x19acb5===_0x2ab54a(0x9c)){let _0x57b9af=_0x19acb5==='completed'?_0x2ab54a(0x91):_0x19acb5,_0x322eaf=_0x46b501?D['get'](_0x46b501)||_0x2ab54a(0xe6):_0x2ab54a(0xe6),_0x5461c3=await Y('send_reply',{'alias':_0x322eaf,'text':_0x376aea,'in_reply_to':_0x46b501||void 0x0,'status':_0x57b9af,'from_session':G});if(_0x46b501)D[_0x2ab54a(0xca)](_0x46b501);return{'content':[{'type':_0x2ab54a(0xb5),'text':JSON['stringify'](_0x5461c3)}]};}let _0x4f57ba=await Y(_0x2ab54a(0xd8),{'resume_id':K,'alias':G,'status':_0x19acb5===_0x2ab54a(0x105)?_0x2ab54a(0x105):_0x19acb5===_0x2ab54a(0xd1)?'error':_0x2ab54a(0xc5),'task':_0x376aea[_0x2ab54a(0xb1)](0x0,0xc8),'output':_0x376aea});return{'content':[{'type':_0x2ab54a(0xb5),'text':JSON['stringify'](_0x4f57ba)}]};}if(_0x484c6c===_0x2ab54a(0xc1)){let {status:_0x3ec133,task:_0x3099ea,progress:_0x5bc664}=_0x45fb8d,_0x23bdc3=await Y(_0x2ab54a(0xd8),{'resume_id':K,'alias':G,'status':_0x3ec133,'task':_0x3099ea,'progress':_0x5bc664});return{'content':[{'type':_0x2ab54a(0xb5),'text':JSON[_0x2ab54a(0x81)](_0x23bdc3)}]};}if(_0x484c6c==='commhub_send_task'){let {alias:_0x2b9d9c,task:_0x151428,priority:_0x4026cc}=_0x45fb8d,_0x350204=await Y(_0x2ab54a(0x9a),{'alias':_0x2b9d9c,'task':_0x151428,'priority':_0x4026cc||_0x2ab54a(0x82),'from_session':G});return{'content':[{'type':_0x2ab54a(0xb5),'text':JSON['stringify'](_0x350204)}]};}if(_0x484c6c===_0x2ab54a(0xe3)){let {alias:_0x4b93a6,message:_0x404374}=_0x45fb8d,_0x3194fc=await Y(_0x2ab54a(0xd2),{'alias':_0x4b93a6,'message':_0x404374,'from_session':G});return{'content':[{'type':_0x2ab54a(0xb5),'text':JSON[_0x2ab54a(0x81)](_0x3194fc)}]};}if(_0x484c6c===_0x2ab54a(0x84)){let _0x2c321f=await Y(_0x2ab54a(0x8f),{});return{'content':[{'type':_0x2ab54a(0xb5),'text':JSON['stringify'](_0x2c321f)}]};}return{'content':[{'type':_0x2ab54a(0xb5),'text':JSON[_0x2ab54a(0x81)]({'error':_0x2ab54a(0xd4)})}]};});var O=0x3e8,R=0x7530,T=0x36ee80;async function l(){const _0x1e66f3=a0_0x4936f9;try{await Y(_0x1e66f3(0xd8),{'resume_id':K,'alias':G,'status':_0x1e66f3(0xef),'server':a0_0x26af58(),'hostname':a0_0x26af58(),'agent':_0x1e66f3(0xc3),'project_dir':process[_0x1e66f3(0xf3)](),'tmux_name':f||void 0x0}),W(_0x1e66f3(0xbd)+G+'\x22\x20after\x20SSE\x20reconnect');}catch(_0x31c587){W(_0x1e66f3(0xa0)+_0x31c587);}}async function o(){const _0x25e728=a0_0x4936f9;let _0x1b209b=j+_0x25e728(0x7f)+encodeURIComponent(G),_0x4bf09a={};if(F)_0x4bf09a[_0x25e728(0xd5)]='Bearer\x20'+F;W(_0x25e728(0x98)+_0x1b209b);let _0x107110=O,_0x3d6347=!0x0,_0x5c4a3b=null;while(!0x0){try{let _0x506850=await fetch(_0x1b209b,{'headers':_0x4bf09a});if(!_0x506850['ok']){if(W(_0x25e728(0xa2)+_0x506850[_0x25e728(0xa3)]+'\x20'+_0x506850[_0x25e728(0xf9)]),_0x5c4a3b=_0x5c4a3b??Date[_0x25e728(0xe9)](),Date[_0x25e728(0xe9)]()-_0x5c4a3b>T){W(_0x25e728(0x111)+j+_0x25e728(0xa9));return;}await N(_0x107110),_0x107110=Math[_0x25e728(0xbb)](_0x107110*0x2,R);continue;}let _0x150bf2=_0x506850['body'][_0x25e728(0xc6)](),_0x4ea82b=new TextDecoder(),_0x3af7d8='';_0x107110=O;while(!0x0){let {done:_0x5e508f,value:_0x351058}=await _0x150bf2[_0x25e728(0xe7)]();if(_0x5e508f)break;_0x3af7d8+=_0x4ea82b[_0x25e728(0xc9)](_0x351058,{'stream':!0x0});let _0x16338d=_0x3af7d8[_0x25e728(0xf4)]('\x0a\x0a');_0x3af7d8=_0x16338d[_0x25e728(0xad)]()||'';for(let _0x27b2b1 of _0x16338d){let _0x19a2bb=_0x27b2b1[_0x25e728(0xf4)]('\x0a')[_0x25e728(0x9e)](_0x373626=>_0x373626[_0x25e728(0xbf)](_0x25e728(0xbe)));if(!_0x19a2bb)continue;try{let _0x58f43f=JSON[_0x25e728(0xcb)](_0x19a2bb[_0x25e728(0xb1)](0x6));if(await a(_0x58f43f),_0x58f43f[_0x25e728(0xbc)]===_0x25e728(0x102)){if(_0x5c4a3b=null,!_0x3d6347)await l();_0x3d6347=!0x1;}}catch(_0x292429){W('parse\x20error:\x20'+_0x292429);}}}W(_0x25e728(0xc8));}catch(_0x46be9a){W(_0x25e728(0x109)+_0x46be9a);}if(_0x5c4a3b=_0x5c4a3b??Date[_0x25e728(0xe9)](),Date[_0x25e728(0xe9)]()-_0x5c4a3b>T){W(_0x25e728(0x111)+j+_0x25e728(0xa9));return;}await N(_0x107110),_0x107110=Math[_0x25e728(0xbb)](_0x107110*0x2,R);}}async function a(_0x51562f){const _0x46347e=a0_0x4936f9;if(_0x51562f[_0x46347e(0xbc)]===_0x46347e(0x102)){W(_0x46347e(0x10f)+G+'\x22');return;}if(_0x51562f[_0x46347e(0xbc)]===_0x46347e(0xa5)){if(W(_0x46347e(0x10a)+_0x51562f['from']+':\x20'+_0x51562f[_0x46347e(0xd7)]['slice'](0x0,0x3c)),await x[_0x46347e(0x100)]({'method':_0x46347e(0xa4),'params':{'content':_0x51562f[_0x46347e(0xd7)],'meta':{'sender':_0x51562f['from']||_0x46347e(0xe6),'sender_id':'commhub','user':_0x51562f[_0x46347e(0xdb)]||_0x46347e(0xe6),'priority':'normal'}}}),_0x51562f[_0x46347e(0xf6)])await Y('ack_inbox',{'alias':G,'message_id':_0x51562f['message_id']});return;}if(_0x51562f[_0x46347e(0xbc)]===_0x46347e(0x95)||_0x51562f[_0x46347e(0xbc)]===_0x46347e(0xcf)){W('←\x20'+_0x51562f[_0x46347e(0xbc)]+_0x46347e(0xf5)+_0x51562f[_0x46347e(0x10b)]+'\x20priority='+(_0x51562f[_0x46347e(0xf8)]||_0x46347e(0x82)));let _0x4fe3c6=await Y(_0x46347e(0x83),{'alias':G,'limit':0x5});if(_0x4fe3c6?.['ok']&&_0x4fe3c6[_0x46347e(0xab)]?.[_0x46347e(0x87)]>0x0)for(let _0x1197bc of _0x4fe3c6[_0x46347e(0xab)]){let _0x41bdd2={'sender':_0x1197bc['from_session']||_0x46347e(0xe6),'sender_id':_0x46347e(0xe4),'user':_0x1197bc['from_session']||'hub','task_id':_0x1197bc['id'],'priority':_0x1197bc['priority']||_0x46347e(0x82)};D[_0x46347e(0xaf)](_0x1197bc['id'],_0x1197bc['from_session']||_0x46347e(0xe6)),await x[_0x46347e(0x100)]({'method':_0x46347e(0xa4),'params':{'content':_0x1197bc[_0x46347e(0xdc)],'meta':_0x41bdd2}}),W('→\x20injected\x20task\x20'+_0x1197bc['id'][_0x46347e(0xb1)](0x0,0x8)+_0x46347e(0x107)+_0x1197bc[_0x46347e(0xb8)]+':\x20'+_0x1197bc[_0x46347e(0xdc)][_0x46347e(0xb1)](0x0,0x3c)),await Y(_0x46347e(0x112),{'alias':G,'message_id':_0x1197bc['id']});}}}async function n(){const _0x196856=a0_0x4936f9;let _0x4b09d6=new a0_0x44ba9c();await x['connect'](_0x4b09d6),W(_0x196856(0x10c)),W(_0x196856(0x108)),o()[_0x196856(0x89)](_0x1864df=>W(_0x196856(0xb2)+_0x1864df)),Y(_0x196856(0xd8),{'resume_id':K,'alias':G,'status':'idle','server':a0_0x26af58(),'hostname':a0_0x26af58(),'agent':_0x196856(0xc3),'project_dir':process[_0x196856(0xf3)](),'tmux_name':f||void 0x0})[_0x196856(0x8b)](()=>W(_0x196856(0xa6)+G+'\x22\x20('+K[_0x196856(0xb1)](0x0,0x8)+')'))[_0x196856(0x89)](_0x454c66=>W(_0x196856(0x93)+_0x454c66)),setInterval(()=>{const _0x4b9918=_0x196856;Y('report_status',{'resume_id':K,'alias':G,'status':_0x4b9918(0xef),'server':a0_0x26af58(),'hostname':a0_0x26af58(),'agent':_0x4b9918(0xc3),'project_dir':process[_0x4b9918(0xf3)](),'tmux_name':f||void 0x0})[_0x4b9918(0x89)](_0x29619f=>W(_0x4b9918(0xae)+_0x29619f));},0x2bf20),W(_0x196856(0xe0));}n()[a0_0x4936f9(0x89)](_0x36cacf=>{const _0x4d915d=a0_0x4936f9;W('fatal:\x20'+_0x36cacf),process[_0x4d915d(0xc2)](0x1);});async function b(){const _0x2086eb=a0_0x4936f9;W(_0x2086eb(0xff)),await Y(_0x2086eb(0xd8),{'resume_id':K,'alias':G,'status':'offline','task':_0x2086eb(0xfd)})[_0x2086eb(0x89)](()=>{}),process['exit'](0x0);}function a0_0x16f4(_0x5a5592,_0x3b29a0){_0x5a5592=_0x5a5592-0x7c;const _0x42915e=a0_0x4291();let _0x16f429=_0x42915e[_0x5a5592];return _0x16f429;}process[a0_0x4936f9(0xdd)]['on'](a0_0x4936f9(0xb9),()=>b()),process['on'](a0_0x4936f9(0x94),()=>b()),process['on']('SIGINT',()=>b());
|
|
2
|
+
const a0_0x30a5a1=a0_0x53c4;(function(_0x238759,_0x21b89e){const _0x402856=a0_0x53c4,_0x4e7205=_0x238759();while(!![]){try{const _0x2e5888=-parseInt(_0x402856(0x21d))/0x1+parseInt(_0x402856(0x246))/0x2+parseInt(_0x402856(0x1f9))/0x3+-parseInt(_0x402856(0x239))/0x4+-parseInt(_0x402856(0x1ea))/0x5*(parseInt(_0x402856(0x1eb))/0x6)+parseInt(_0x402856(0x1d3))/0x7*(-parseInt(_0x402856(0x1f1))/0x8)+parseInt(_0x402856(0x1fb))/0x9;if(_0x2e5888===_0x21b89e)break;else _0x4e7205['push'](_0x4e7205['shift']());}catch(_0x3ed6b6){_0x4e7205['push'](_0x4e7205['shift']());}}}(a0_0x3396,0x3d206));import{readFileSync as a0_0xa5882d,existsSync as a0_0x78ddd2}from'fs';import{randomUUID as a0_0x1deb56}from'crypto';import{join as a0_0x3aa4b2}from'path';import{hostname as a0_0x24d0e6}from'os';import{execSync as a0_0x155f54}from'child_process';import{Server as a0_0x1e5e0a}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0x1e1423}from'@modelcontextprotocol/sdk/server/stdio.js';import{ListToolsRequestSchema as a0_0x538f8f,CallToolRequestSchema as a0_0xef229f}from'@modelcontextprotocol/sdk/types.js';function a0_0x3396(){const _0x2cd926=['pop','SSE\x20error:\x20','parse','getReader','application/json,\x20text/event-stream','hub','re-registered\x20as\x20\x22',':\x20inbox_count=','\x20priority=','2.0','.claude/channels/commhub','heartbeat\x20failed:\x20','Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates','statusText','init\x20failed:\x20','POST','would\x20mis-attribute.\x20Refusing\x20to\x20guess\x20from\x20TMUX_NAME=','SIGTERM','send_reply','warning:\x20could\x20not\x20register:\x20','\x20ALIAS=','5paorkl','838764aUdFCY','\x20PROJECT_ENV=','claude-code','tmux\x20display-message\x20-p\x20\x27#S\x27','0.3.0','high','8UaWvRW','\x22\x20(','\x20from\x20','delete',']\x20[commhub]\x20','string','text','new_message','715815CbKBDX','.\x20Restart\x20node\x20via\x20`anet\x20node\x20start\x20<alias>`\x20so\x20the\x20env\x20is\x20set\x20explicitly\x20(#203).\x0a','6177465SqDgsd','notifications/claude/channel','content','parse\x20error:\x20','Reply\x20text\x20/\x20result\x20summary','type','token','data:\x20','toTimeString','Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','application/json','failed','cancelled','broadcast','commhub_send_message','SSE\x20连续\x20>1h\x20连不上\x20hub\x20(','Current\x20task\x20description','/mcp','send_task','commhub_reply','Priority\x20(default:\x20normal)','completed','startsWith','commhub_send_task','join','MCP\x20stdio\x20connected','.env','SSE\x20connection\x20error:\x20','Task\x20content','The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)','get','catch','cwd','no\x20response','239087IhkDMz','from_session','now','commhub_report_status','connected','(none)','Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','idle','Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','inbox_count','exit','result','.anet','message','error','slice',')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。','/events/','You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.','new_task','stderr','messages','body','ack_inbox','stringify','split','task','object','95344wxJuMc','from','send_message','blocked','low','Messages\x20from\x20CommHub\x20arrive\x20as\x20<channel\x20source=\x22commhub\x22\x20task_id=\x22...\x22\x20priority=\x22...\x22\x20from=\x22...\x22>','Bearer\x20','notification','Reply\x20using\x20the\x20commhub_reply\x20tool\x20to\x20report\x20status\x20or\x20results\x20back.','\x20/\x20hostname=','These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.','offline','Progress\x200-100','51730xJcfec','commhub','write','trim','report_status','priority','normal','message_id','connect','pid','working','set','replace','shutting\x20down,\x20reporting\x20offline...','indexOf','commhub-channel','\x20RESUME_ID=','SSE\x20stream\x20ended,\x20reconnecting...','re-register\x20failed:\x20','SSE\x20fatal:\x20','get_all_status','Target\x20session\x20alias','←\x20message\x20from\x20','SIGINT','2025-03-26','setRequestHandler','min','...\x20TMUX=','alias','→\x20injected\x20task\x20','utf-8','status','2084348iGHXVk','replied'];a0_0x3396=function(){return _0x2cd926;};return a0_0x3396();}function I(_0x2fefcb){const _0x46764b=a0_0x53c4;if(!a0_0x78ddd2(_0x2fefcb))return;for(let _0x518bd4 of a0_0xa5882d(_0x2fefcb,'utf-8')[_0x46764b(0x236)]('\x0a')){let _0x41b833=_0x518bd4[_0x46764b(0x249)]();if(!_0x41b833||_0x41b833[_0x46764b(0x211)]('#'))continue;let _0x14874f=_0x41b833[_0x46764b(0x1c1)]('=');if(_0x14874f<0x0)continue;let _0x3ff56c=_0x41b833[_0x46764b(0x22c)](0x0,_0x14874f)[_0x46764b(0x249)](),_0x2ecd3f=_0x41b833[_0x46764b(0x22c)](_0x14874f+0x1)[_0x46764b(0x249)]()[_0x46764b(0x1bf)](/^["']|["']$/g,'');if(!process.env[_0x3ff56c])process.env[_0x3ff56c]=_0x2ecd3f;}}var L=process.env.HOME||'~',U=a0_0x3aa4b2(L,a0_0x30a5a1(0x1df));I(a0_0x3aa4b2(U,'.env'));var v=process['cwd']()['replace'](/\//g,'-');I(a0_0x3aa4b2(U,v,a0_0x30a5a1(0x215)));function d(){const _0x3be7e0=a0_0x30a5a1;try{return a0_0x155f54(_0x3be7e0(0x1ee),{'encoding':_0x3be7e0(0x1d1),'timeout':0x7d0})[_0x3be7e0(0x249)]();}catch{return'';}}function m(){const _0x13c335=a0_0x30a5a1;try{let _0x5daef3=a0_0x3aa4b2(L,_0x13c335(0x229),'config.json');if(a0_0x78ddd2(_0x5daef3))return JSON['parse'](a0_0xa5882d(_0x5daef3,_0x13c335(0x1d1)));}catch{}return{};}var u=m(),j=process.env.COMMHUB_URL||u[a0_0x30a5a1(0x1da)]||'http://127.0.0.1:9200',f=process.env.COMMHUB_TMUX||d();function r(){const _0x1de600=a0_0x30a5a1;if(process.env.COMMHUB_ALIAS&&process.env.COMMHUB_ALIAS[_0x1de600(0x249)]())return process.env.COMMHUB_ALIAS[_0x1de600(0x249)]();return process[_0x1de600(0x231)][_0x1de600(0x248)]('[commhub]\x20WARN:\x20COMMHUB_ALIAS\x20env\x20var\x20is\x20unset\x20—\x20outbound\x20from_session\x20'+(_0x1de600(0x1e5)+(f||_0x1de600(0x222))+_0x1de600(0x242)+a0_0x24d0e6()+_0x1de600(0x1fa))),'unattributed-'+process[_0x1de600(0x24f)];}var G=r(),K=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0x1deb56(),F=process.env.COMMHUB_TOKEN||u[a0_0x30a5a1(0x201)]||'';function W(_0x355aac){const _0x68cb3d=a0_0x30a5a1;let _0x1a5f8a=new Date()[_0x68cb3d(0x203)]()['slice'](0x0,0x8);process[_0x68cb3d(0x231)]['write']('['+_0x1a5f8a+_0x68cb3d(0x1f5)+_0x355aac+'\x0a');}function N(_0x27d3a7){return new Promise(_0x4ebf2e=>setTimeout(_0x4ebf2e,_0x27d3a7));}W('ENV:\x20URL='+j+a0_0x30a5a1(0x1e9)+G+a0_0x30a5a1(0x1c3)+K['slice'](0x0,0x8)+a0_0x30a5a1(0x1ce)+(f||'none')+'\x20CWD='+process[a0_0x30a5a1(0x21b)]()+a0_0x30a5a1(0x1ec)+v);var D=new Map(),x=new a0_0x1e5e0a({'name':a0_0x30a5a1(0x1c2),'version':a0_0x30a5a1(0x1ef)},{'capabilities':{'experimental':{'claude/channel':{}},'tools':{}},'instructions':[a0_0x30a5a1(0x23e),a0_0x30a5a1(0x243),a0_0x30a5a1(0x241),a0_0x30a5a1(0x22f),'Session\x20alias:\x20'+G][a0_0x30a5a1(0x213)]('\x0a')});x[a0_0x30a5a1(0x1cc)](a0_0x538f8f,async()=>({'tools':[{'name':a0_0x30a5a1(0x20e),'description':'Reply\x20to\x20a\x20CommHub\x20task\x20—\x20report\x20completion\x20or\x20send\x20a\x20message\x20back\x20to\x20the\x20hub.','inputSchema':{'type':a0_0x30a5a1(0x238),'properties':{'task_id':{'type':'string','description':a0_0x30a5a1(0x218)},'text':{'type':a0_0x30a5a1(0x1f6),'description':a0_0x30a5a1(0x1ff)},'status':{'type':a0_0x30a5a1(0x1f6),'enum':['completed',a0_0x30a5a1(0x206),a0_0x30a5a1(0x207),a0_0x30a5a1(0x23c),a0_0x30a5a1(0x22b),'in_progress'],'description':a0_0x30a5a1(0x1e1)}},'required':['text']}},{'name':a0_0x30a5a1(0x220),'description':a0_0x30a5a1(0x223),'inputSchema':{'type':a0_0x30a5a1(0x238),'properties':{'status':{'type':a0_0x30a5a1(0x1f6),'enum':[a0_0x30a5a1(0x1bd),a0_0x30a5a1(0x224),a0_0x30a5a1(0x23c),a0_0x30a5a1(0x22b)]},'task':{'type':'string','description':a0_0x30a5a1(0x20b)},'progress':{'type':'number','description':a0_0x30a5a1(0x245)}},'required':[a0_0x30a5a1(0x1d2)]}},{'name':a0_0x30a5a1(0x212),'description':'Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','inputSchema':{'type':a0_0x30a5a1(0x238),'properties':{'alias':{'type':a0_0x30a5a1(0x1f6),'description':'Target\x20session\x20alias'},'task':{'type':'string','description':a0_0x30a5a1(0x217)},'priority':{'type':'string','enum':[a0_0x30a5a1(0x1f0),a0_0x30a5a1(0x24c),a0_0x30a5a1(0x23d)],'description':a0_0x30a5a1(0x20f)}},'required':[a0_0x30a5a1(0x1cf),a0_0x30a5a1(0x237)]}},{'name':a0_0x30a5a1(0x209),'description':a0_0x30a5a1(0x204),'inputSchema':{'type':a0_0x30a5a1(0x238),'properties':{'alias':{'type':a0_0x30a5a1(0x1f6),'description':a0_0x30a5a1(0x1c8)},'message':{'type':a0_0x30a5a1(0x1f6),'description':'Message\x20content'}},'required':[a0_0x30a5a1(0x1cf),a0_0x30a5a1(0x22a)]}},{'name':'commhub_get_all_status','description':a0_0x30a5a1(0x225),'inputSchema':{'type':a0_0x30a5a1(0x238),'properties':{}}}]}));async function Y(_0x1b3b5c,_0xdfabc0){const _0x378cba=a0_0x30a5a1;let _0x1bd320=await fetch(j+_0x378cba(0x20c),{'method':_0x378cba(0x1e4),'headers':{'Content-Type':_0x378cba(0x205),'Accept':'application/json,\x20text/event-stream',...F?{'Authorization':_0x378cba(0x23f)+F}:{}},'body':JSON['stringify']({'jsonrpc':_0x378cba(0x1de),'id':0x1,'method':'initialize','params':{'protocolVersion':_0x378cba(0x1cb),'capabilities':{},'clientInfo':{'name':_0x378cba(0x1c2),'version':_0x378cba(0x1ef)}}})});if(!_0x1bd320['ok']){let _0x2f033b=await _0x1bd320[_0x378cba(0x1f7)]();return W('CommHub\x20init\x20failed:\x20'+_0x1bd320['status']+'\x20'+_0x2f033b[_0x378cba(0x22c)](0x0,0x64)),{'ok':!0x1,'error':_0x378cba(0x1e3)+_0x1bd320['status']};}await _0x1bd320[_0x378cba(0x1f7)]();let _0x355c05=(await(await fetch(j+_0x378cba(0x20c),{'method':_0x378cba(0x1e4),'headers':{'Content-Type':_0x378cba(0x205),'Accept':_0x378cba(0x1d9),...F?{'Authorization':_0x378cba(0x23f)+F}:{}},'body':JSON['stringify']({'jsonrpc':_0x378cba(0x1de),'id':0x2,'method':'tools/call','params':{'name':_0x1b3b5c,'arguments':_0xdfabc0}})}))[_0x378cba(0x1f7)]())[_0x378cba(0x236)]('\x0a')['find'](_0x493e07=>_0x493e07['startsWith'](_0x378cba(0x202)));if(_0x355c05){let _0x2b4c12=JSON['parse'](_0x355c05[_0x378cba(0x22c)](0x6));return _0x2b4c12?.[_0x378cba(0x228)]?.['content']?.[0x0]?.['text']?JSON[_0x378cba(0x1d7)](_0x2b4c12['result']['content'][0x0][_0x378cba(0x1f7)]):_0x2b4c12;}return{'ok':!0x1,'error':_0x378cba(0x21c)};}x[a0_0x30a5a1(0x1cc)](a0_0xef229f,async _0x446c00=>{const _0x4e7898=a0_0x30a5a1;let {name:_0x5caab3,arguments:_0x412275}=_0x446c00['params'];if(_0x5caab3===_0x4e7898(0x20e)){let {task_id:_0x4d0022,text:_0x2a85b0,status:_0x1c5bc3}=_0x412275;if(_0x1c5bc3===_0x4e7898(0x210)||_0x1c5bc3===_0x4e7898(0x206)||_0x1c5bc3==='cancelled'){let _0x1f0d24=_0x1c5bc3===_0x4e7898(0x210)?_0x4e7898(0x1d4):_0x1c5bc3,_0x12ec23=_0x4d0022?D[_0x4e7898(0x219)](_0x4d0022)||'hub':_0x4e7898(0x1da),_0x5573ad=await Y(_0x4e7898(0x1e7),{'alias':_0x12ec23,'text':_0x2a85b0,'in_reply_to':_0x4d0022||void 0x0,'status':_0x1f0d24,'from_session':G});if(_0x4d0022)D[_0x4e7898(0x1f4)](_0x4d0022);return{'content':[{'type':_0x4e7898(0x1f7),'text':JSON['stringify'](_0x5573ad)}]};}let _0x37bd3e=await Y(_0x4e7898(0x24a),{'resume_id':K,'alias':G,'status':_0x1c5bc3===_0x4e7898(0x23c)?'blocked':_0x1c5bc3===_0x4e7898(0x22b)?_0x4e7898(0x22b):'working','task':_0x2a85b0[_0x4e7898(0x22c)](0x0,0xc8),'output':_0x2a85b0});return{'content':[{'type':_0x4e7898(0x1f7),'text':JSON[_0x4e7898(0x235)](_0x37bd3e)}]};}if(_0x5caab3===_0x4e7898(0x220)){let {status:_0x3f8470,task:_0x1bc0b6,progress:_0x1f235e}=_0x412275,_0x4fe5aa=await Y(_0x4e7898(0x24a),{'resume_id':K,'alias':G,'status':_0x3f8470,'task':_0x1bc0b6,'progress':_0x1f235e});return{'content':[{'type':_0x4e7898(0x1f7),'text':JSON[_0x4e7898(0x235)](_0x4fe5aa)}]};}if(_0x5caab3==='commhub_send_task'){let {alias:_0x2d5846,task:_0x156b87,priority:_0x42ace8}=_0x412275,_0x1cf339=await Y(_0x4e7898(0x20d),{'alias':_0x2d5846,'task':_0x156b87,'priority':_0x42ace8||_0x4e7898(0x24c),'from_session':G});return{'content':[{'type':_0x4e7898(0x1f7),'text':JSON[_0x4e7898(0x235)](_0x1cf339)}]};}if(_0x5caab3===_0x4e7898(0x209)){let {alias:_0x43f958,message:_0x42fd6f}=_0x412275,_0x272081=await Y(_0x4e7898(0x23b),{'alias':_0x43f958,'message':_0x42fd6f,'from_session':G});return{'content':[{'type':_0x4e7898(0x1f7),'text':JSON[_0x4e7898(0x235)](_0x272081)}]};}if(_0x5caab3==='commhub_get_all_status'){let _0x283599=await Y(_0x4e7898(0x1c7),{});return{'content':[{'type':'text','text':JSON[_0x4e7898(0x235)](_0x283599)}]};}return{'content':[{'type':_0x4e7898(0x1f7),'text':JSON['stringify']({'error':'unknown\x20tool'})}]};});function a0_0x53c4(_0x32cd39,_0x255bc0){_0x32cd39=_0x32cd39-0x1bd;const _0x3396c0=a0_0x3396();let _0x53c4a7=_0x3396c0[_0x32cd39];return _0x53c4a7;}var O=0x3e8,R=0x7530,T=0x36ee80;async function l(){const _0x508c3b=a0_0x30a5a1;try{await Y(_0x508c3b(0x24a),{'resume_id':K,'alias':G,'status':_0x508c3b(0x224),'server':a0_0x24d0e6(),'hostname':a0_0x24d0e6(),'agent':_0x508c3b(0x1ed),'project_dir':process[_0x508c3b(0x21b)](),'tmux_name':f||void 0x0}),W(_0x508c3b(0x1db)+G+'\x22\x20after\x20SSE\x20reconnect');}catch(_0x3c968a){W(_0x508c3b(0x1c5)+_0x3c968a);}}async function o(){const _0x54483d=a0_0x30a5a1;let _0x26f215=j+_0x54483d(0x22e)+encodeURIComponent(G),_0x31b03d={};if(F)_0x31b03d['Authorization']=_0x54483d(0x23f)+F;W('connecting\x20to\x20'+_0x26f215);let _0x5d4f3e=O,_0x45a721=!0x0,_0x513f42=null;while(!0x0){try{let _0x1975d2=await fetch(_0x26f215,{'headers':_0x31b03d});if(!_0x1975d2['ok']){if(W(_0x54483d(0x1d6)+_0x1975d2['status']+'\x20'+_0x1975d2[_0x54483d(0x1e2)]),_0x513f42=_0x513f42??Date[_0x54483d(0x21f)](),Date[_0x54483d(0x21f)]()-_0x513f42>T){W(_0x54483d(0x20a)+j+_0x54483d(0x22d));return;}await N(_0x5d4f3e),_0x5d4f3e=Math['min'](_0x5d4f3e*0x2,R);continue;}let _0x51b6f9=_0x1975d2[_0x54483d(0x233)][_0x54483d(0x1d8)](),_0x2a08ad=new TextDecoder(),_0x4dc6c0='';_0x5d4f3e=O;while(!0x0){let {done:_0x3871d6,value:_0xc6e0b0}=await _0x51b6f9['read']();if(_0x3871d6)break;_0x4dc6c0+=_0x2a08ad['decode'](_0xc6e0b0,{'stream':!0x0});let _0x50fbdb=_0x4dc6c0[_0x54483d(0x236)]('\x0a\x0a');_0x4dc6c0=_0x50fbdb[_0x54483d(0x1d5)]()||'';for(let _0xedb1b9 of _0x50fbdb){let _0x102d70=_0xedb1b9[_0x54483d(0x236)]('\x0a')['find'](_0x22bd46=>_0x22bd46[_0x54483d(0x211)](_0x54483d(0x202)));if(!_0x102d70)continue;try{let _0x5498a5=JSON['parse'](_0x102d70[_0x54483d(0x22c)](0x6));if(await a(_0x5498a5),_0x5498a5['type']===_0x54483d(0x221)){if(_0x513f42=null,!_0x45a721)await l();_0x45a721=!0x1;}}catch(_0x521cde){W(_0x54483d(0x1fe)+_0x521cde);}}}W(_0x54483d(0x1c4));}catch(_0x45f034){W(_0x54483d(0x216)+_0x45f034);}if(_0x513f42=_0x513f42??Date[_0x54483d(0x21f)](),Date[_0x54483d(0x21f)]()-_0x513f42>T){W('SSE\x20连续\x20>1h\x20连不上\x20hub\x20('+j+_0x54483d(0x22d));return;}await N(_0x5d4f3e),_0x5d4f3e=Math[_0x54483d(0x1cd)](_0x5d4f3e*0x2,R);}}async function a(_0x21403f){const _0x348e19=a0_0x30a5a1;if(_0x21403f[_0x348e19(0x200)]===_0x348e19(0x221)){W('SSE\x20connected\x20as\x20\x22'+G+'\x22');return;}if(_0x21403f[_0x348e19(0x200)]===_0x348e19(0x1f8)){if(W(_0x348e19(0x1c9)+_0x21403f[_0x348e19(0x23a)]+':\x20'+_0x21403f[_0x348e19(0x22a)]['slice'](0x0,0x3c)),await x[_0x348e19(0x240)]({'method':_0x348e19(0x1fc),'params':{'content':_0x21403f['message'],'meta':{'sender':_0x21403f['from']||_0x348e19(0x1da),'sender_id':_0x348e19(0x247),'user':_0x21403f['from']||_0x348e19(0x1da),'priority':_0x348e19(0x24c)}}}),_0x21403f[_0x348e19(0x24d)])await Y('ack_inbox',{'alias':G,'message_id':_0x21403f[_0x348e19(0x24d)]});return;}if(_0x21403f[_0x348e19(0x200)]===_0x348e19(0x230)||_0x21403f[_0x348e19(0x200)]===_0x348e19(0x208)){W('←\x20'+_0x21403f[_0x348e19(0x200)]+_0x348e19(0x1dc)+_0x21403f[_0x348e19(0x226)]+_0x348e19(0x1dd)+(_0x21403f[_0x348e19(0x24b)]||_0x348e19(0x24c)));let _0x289c03=await Y('get_inbox',{'alias':G,'limit':0x5});if(_0x289c03?.['ok']&&_0x289c03[_0x348e19(0x232)]?.['length']>0x0)for(let _0x507e06 of _0x289c03['messages']){let _0x5a69a6={'sender':_0x507e06[_0x348e19(0x21e)]||_0x348e19(0x1da),'sender_id':_0x348e19(0x247),'user':_0x507e06[_0x348e19(0x21e)]||'hub','task_id':_0x507e06['id'],'priority':_0x507e06[_0x348e19(0x24b)]||_0x348e19(0x24c)};D[_0x348e19(0x1be)](_0x507e06['id'],_0x507e06[_0x348e19(0x21e)]||_0x348e19(0x1da)),await x[_0x348e19(0x240)]({'method':'notifications/claude/channel','params':{'content':_0x507e06['content'],'meta':_0x5a69a6}}),W(_0x348e19(0x1d0)+_0x507e06['id'][_0x348e19(0x22c)](0x0,0x8)+_0x348e19(0x1f3)+_0x507e06[_0x348e19(0x21e)]+':\x20'+_0x507e06[_0x348e19(0x1fd)][_0x348e19(0x22c)](0x0,0x3c)),await Y(_0x348e19(0x234),{'alias':G,'message_id':_0x507e06['id']});}}}async function n(){const _0x1d6d9d=a0_0x30a5a1;let _0x3f228e=new a0_0x1e1423();await x[_0x1d6d9d(0x24e)](_0x3f228e),W(_0x1d6d9d(0x214)),W('starting\x20SSE\x20listener...'),o()['catch'](_0x1fb40e=>W(_0x1d6d9d(0x1c6)+_0x1fb40e)),Y(_0x1d6d9d(0x24a),{'resume_id':K,'alias':G,'status':_0x1d6d9d(0x224),'server':a0_0x24d0e6(),'hostname':a0_0x24d0e6(),'agent':_0x1d6d9d(0x1ed),'project_dir':process[_0x1d6d9d(0x21b)](),'tmux_name':f||void 0x0})['then'](()=>W('registered\x20as\x20\x22'+G+_0x1d6d9d(0x1f2)+K[_0x1d6d9d(0x22c)](0x0,0x8)+')'))[_0x1d6d9d(0x21a)](_0x22f3ff=>W(_0x1d6d9d(0x1e8)+_0x22f3ff)),setInterval(()=>{const _0x1c6c95=_0x1d6d9d;Y('report_status',{'resume_id':K,'alias':G,'status':_0x1c6c95(0x224),'server':a0_0x24d0e6(),'hostname':a0_0x24d0e6(),'agent':_0x1c6c95(0x1ed),'project_dir':process['cwd'](),'tmux_name':f||void 0x0})[_0x1c6c95(0x21a)](_0x1d482d=>W(_0x1c6c95(0x1e0)+_0x1d482d));},0x2bf20),W('ready\x20—\x20waiting\x20for\x20events');}n()['catch'](_0x59e6f5=>{const _0x4623ab=a0_0x30a5a1;W('fatal:\x20'+_0x59e6f5),process[_0x4623ab(0x227)](0x1);});async function b(){const _0x547694=a0_0x30a5a1;W(_0x547694(0x1c0)),await Y('report_status',{'resume_id':K,'alias':G,'status':_0x547694(0x244),'task':'session\x20disconnected'})[_0x547694(0x21a)](()=>{}),process[_0x547694(0x227)](0x0);}process['stdin']['on']('end',()=>b()),process['on'](a0_0x30a5a1(0x1e6),()=>b()),process['on'](a0_0x30a5a1(0x1ca),()=>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.12",
|
|
4
4
|
"description": "AI Agent Network CLI \u2014 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",
|