@sleep2agi/agent-network 2.2.12 → 2.2.13
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 +6 -2
package/dist/src/client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0xd3454a=a0_0x45d1;function a0_0x45d1(_0x1456f3,_0x361a63){_0x1456f3=_0x1456f3-0xa6;const _0x4b59e7=a0_0x4b59();let _0x45d1d6=_0x4b59e7[_0x1456f3];return _0x45d1d6;}(function(_0x3fd396,_0x52bbd7){const _0x228272=a0_0x45d1,_0x50438f=_0x3fd396();while(!![]){try{const _0x29660a=parseInt(_0x228272(0xcf))/0x1+parseInt(_0x228272(0xf7))/0x2*(parseInt(_0x228272(0xb4))/0x3)+-parseInt(_0x228272(0xb2))/0x4*(-parseInt(_0x228272(0xab))/0x5)+parseInt(_0x228272(0xf3))/0x6+parseInt(_0x228272(0xe5))/0x7+-parseInt(_0x228272(0xa8))/0x8*(-parseInt(_0x228272(0xac))/0x9)+-parseInt(_0x228272(0xd3))/0xa*(parseInt(_0x228272(0xaf))/0xb);if(_0x29660a===_0x52bbd7)break;else _0x50438f['push'](_0x50438f['shift']());}catch(_0x4f3d3d){_0x50438f['push'](_0x50438f['shift']());}}}(a0_0x4b59,0x1c027));import{EventEmitter as a0_0xda3f13}from'events';import{hostname as a0_0x214d2e}from'os';class T extends a0_0xda3f13{['url'];[a0_0xd3454a(0xb0)];[a0_0xd3454a(0xcb)];[a0_0xd3454a(0xd5)];[a0_0xd3454a(0xbc)];[a0_0xd3454a(0xd7)];[a0_0xd3454a(0xda)];[a0_0xd3454a(0xc2)];[a0_0xd3454a(0xca)];[a0_0xd3454a(0xb8)]=!0x1;constructor(_0x32cea1){const _0x125677=a0_0xd3454a;super();if(this['url']=_0x32cea1['url'][_0x125677(0xf8)](/\/$/,''),this[_0x125677(0xb0)]=_0x32cea1[_0x125677(0xb0)],this[_0x125677(0xcb)]=_0x32cea1['token'],this[_0x125677(0xd5)]=_0x32cea1['agent']||_0x125677(0xf6),this[_0x125677(0xbc)]='sdk-'+_0x32cea1[_0x125677(0xb0)]+'-'+Date[_0x125677(0xed)]()[_0x125677(0xb6)](0x24),this[_0x125677(0xd7)]=_0x32cea1[_0x125677(0xd7)]??0x2bf20,this['reconnectDelay']=_0x32cea1[_0x125677(0xda)]??0xbb8,_0x32cea1[_0x125677(0xe2)]!==!0x1)this['connect']();}[a0_0xd3454a(0xe4)](_0x392b39){const _0x8a73=a0_0xd3454a;console[_0x8a73(0xe4)]('['+new Date()[_0x8a73(0xd4)]()[_0x8a73(0xaa)](0x0,0x8)+']\x20[commhub:'+this['alias']+']\x20'+_0x392b39);}async['call'](_0x2c2040,_0xc1f9ef){const _0x5bf881=a0_0xd3454a;let _0x1d70e0={'Content-Type':_0x5bf881(0xb5),'Accept':_0x5bf881(0xba)};if(this[_0x5bf881(0xcb)])_0x1d70e0[_0x5bf881(0xe7)]=_0x5bf881(0xd1)+this[_0x5bf881(0xcb)];let _0x57ae88=await(await fetch(this[_0x5bf881(0xcc)]+_0x5bf881(0xb7),{'method':'POST','headers':_0x1d70e0,'body':JSON['stringify']({'jsonrpc':'2.0','id':Date[_0x5bf881(0xed)](),'method':_0x5bf881(0xc4),'params':{'name':_0x2c2040,'arguments':_0xc1f9ef}})}))[_0x5bf881(0xd0)](),_0x202c57=_0x57ae88[_0x5bf881(0xdd)](/data: (.+)/),_0x12906d=_0x202c57?JSON[_0x5bf881(0xd8)](_0x202c57[0x1]):JSON[_0x5bf881(0xd8)](_0x57ae88),_0x2e1ffb=_0x12906d?.['result']?.['content']?.[0x0]?.[_0x5bf881(0xd0)];return _0x2e1ffb?JSON[_0x5bf881(0xd8)](_0x2e1ffb):_0x12906d;}async[a0_0xd3454a(0xd9)](){const _0x5dab25=a0_0xd3454a;if(this['running'])return;this['running']=!0x0,await this[_0x5dab25(0xc5)]('idle'),this[_0x5dab25(0xe4)](_0x5dab25(0xc1)),this['heartbeatTimer']=setInterval(()=>{const _0x4a38f3=_0x5dab25;this[_0x4a38f3(0xc5)](_0x4a38f3(0xf2))[_0x4a38f3(0xc0)](_0x25a0dc=>this[_0x4a38f3(0xe4)](_0x4a38f3(0xfb)+_0x25a0dc[_0x4a38f3(0xf9)]));},this['heartbeatInterval']),this['connectSSE']();}async['disconnect'](){const _0x336e6f=a0_0xd3454a;if(this['running']=!0x1,this[_0x336e6f(0xca)]?.[_0x336e6f(0xb3)](),this['heartbeatTimer'])clearInterval(this[_0x336e6f(0xc2)]);await this[_0x336e6f(0xc5)](_0x336e6f(0xa9))[_0x336e6f(0xc0)](()=>{}),this[_0x336e6f(0xe4)]('disconnected');}async[a0_0xd3454a(0xe9)](_0x3258e2,_0x497452,_0x94460e=a0_0xd3454a(0xcd)){const _0x48fc73=a0_0xd3454a;return this[_0x48fc73(0xb9)]('send_task',{'alias':_0x3258e2,'task':_0x497452,'priority':_0x94460e,'from_session':this['alias']});}async[a0_0xd3454a(0xf9)](_0x1e243f,_0x32a6ab){const _0x55c599=a0_0xd3454a;return this[_0x55c599(0xb9)]('send_message',{'alias':_0x1e243f,'message':_0x32a6ab,'from_session':this[_0x55c599(0xb0)]});}async[a0_0xd3454a(0xfc)](_0x3ed133,_0x2cdc32,_0x272160='completed'){const _0x1a8761=a0_0xd3454a;return this[_0x1a8761(0xb9)](_0x1a8761(0xbb),{'in_reply_to':_0x3ed133,'text':_0x2cdc32,'status':_0x272160});}async[a0_0xd3454a(0xc5)](_0x59a844,_0x3fa31f){const _0x504139=a0_0xd3454a;return this[_0x504139(0xb9)](_0x504139(0xd2),{'resume_id':this['resumeId'],'alias':this[_0x504139(0xb0)],'status':_0x59a844,'server':a0_0x214d2e(),'hostname':a0_0x214d2e(),'agent':this[_0x504139(0xd5)],'project_dir':process[_0x504139(0xeb)](),..._0x3fa31f});}async['getAllStatus'](){const _0x5e3a95=a0_0xd3454a;return this[_0x5e3a95(0xb9)](_0x5e3a95(0xf4),{});}async[a0_0xd3454a(0xbe)](_0x26e919,_0x3ed2a1){const _0x4fa93d=a0_0xd3454a;return this[_0x4fa93d(0xb9)](_0x4fa93d(0xbe),{'message':_0x26e919,'filter_server':_0x3ed2a1?.[_0x4fa93d(0xa7)],'filter_status':_0x3ed2a1?.[_0x4fa93d(0xc5)]});}async[a0_0xd3454a(0xdc)](){const _0x5b4291=a0_0xd3454a;let _0x31f452=encodeURIComponent(this[_0x5b4291(0xb0)]),_0x4bc4b5=this['url']+_0x5b4291(0xc7)+_0x31f452,_0x58c9ac=this[_0x5b4291(0xda)];while(this['running']){try{this[_0x5b4291(0xca)]=new AbortController();let _0x31d529={'Accept':_0x5b4291(0xdf)};if(this[_0x5b4291(0xcb)])_0x31d529['Authorization']='Bearer\x20'+this[_0x5b4291(0xcb)];let _0x5621ad=await fetch(_0x4bc4b5,{'headers':_0x31d529,'signal':this[_0x5b4291(0xca)][_0x5b4291(0xec)]});if(!_0x5621ad['ok']||!_0x5621ad[_0x5b4291(0xf0)]){this[_0x5b4291(0xe4)](_0x5b4291(0xde)+_0x5621ad['status']),await this['sleep'](_0x58c9ac),_0x58c9ac=Math[_0x5b4291(0xa6)](_0x58c9ac*1.5,0xea60);continue;}_0x58c9ac=this['reconnectDelay'];let _0x424d5b=_0x5621ad[_0x5b4291(0xf0)]['getReader'](),_0x36cb0e=new TextDecoder(),_0x40b7f8='';while(this[_0x5b4291(0xb8)]){let {done:_0x2f64dc,value:_0x56e9bd}=await _0x424d5b[_0x5b4291(0xd6)]();if(_0x2f64dc)break;_0x40b7f8+=_0x36cb0e[_0x5b4291(0xad)](_0x56e9bd,{'stream':!0x0});let _0x3d5cb3=_0x40b7f8[_0x5b4291(0xce)]('\x0a');_0x40b7f8=_0x3d5cb3['pop']()||'';for(let _0x307cfc of _0x3d5cb3){if(!_0x307cfc['startsWith']('data:\x20'))continue;try{let _0x3d5529=JSON[_0x5b4291(0xd8)](_0x307cfc[_0x5b4291(0xaa)](0x6));if(_0x3d5529[_0x5b4291(0xbf)]===_0x5b4291(0xea)){this[_0x5b4291(0xe4)](_0x5b4291(0xe6)),this[_0x5b4291(0xf1)](_0x5b4291(0xea));continue;}if(_0x3d5529['type']===_0x5b4291(0xee)||_0x3d5529[_0x5b4291(0xbf)]==='new_message'||_0x3d5529[_0x5b4291(0xbf)]===_0x5b4291(0xbe))await this[_0x5b4291(0xc8)]();}catch{}}}}catch(_0x2e2910){if(_0x2e2910[_0x5b4291(0xe8)]===_0x5b4291(0xe3))break;this[_0x5b4291(0xf1)](_0x5b4291(0xc3),_0x2e2910),this[_0x5b4291(0xe4)](_0x5b4291(0xb1)+_0x2e2910[_0x5b4291(0xf9)]);}if(this[_0x5b4291(0xb8)])this[_0x5b4291(0xf1)](_0x5b4291(0xae)),this[_0x5b4291(0xe4)](_0x5b4291(0xef)+_0x58c9ac/0x3e8+_0x5b4291(0xfa)),await this[_0x5b4291(0xc6)](_0x58c9ac),_0x58c9ac=Math[_0x5b4291(0xa6)](_0x58c9ac*1.5,0xea60);}}async[a0_0xd3454a(0xc8)](){const _0x2c45e0=a0_0xd3454a;try{let _0x174d99=(await this['call'](_0x2c45e0(0xc9),{'alias':this[_0x2c45e0(0xb0)],'limit':0xa}))?.[_0x2c45e0(0xe1)]||[];for(let _0x56c822 of _0x174d99)await this[_0x2c45e0(0xb9)]('ack_inbox',{'alias':this[_0x2c45e0(0xb0)],'message_id':_0x56c822['id']}),this[_0x2c45e0(0xe4)]('←\x20'+_0x56c822[_0x2c45e0(0xdb)]+':\x20'+_0x56c822[_0x2c45e0(0xe0)][_0x2c45e0(0xaa)](0x0,0x3c)),this[_0x2c45e0(0xf1)](_0x2c45e0(0xf5),_0x56c822),this[_0x2c45e0(0xf1)](_0x2c45e0(0xf9),_0x56c822);}catch(_0xe4c58f){this[_0x2c45e0(0xe4)](_0x2c45e0(0xbd)+_0xe4c58f['message']);}}[a0_0xd3454a(0xc6)](_0x310d24){return new Promise(_0x3214b0=>setTimeout(_0x3214b0,_0x310d24));}}var $=T;export{$ as default,T as CommHub};function a0_0x4b59(){const _0x5b879d=['slice','55mQuPgd','297zFnOyw','decode','disconnected','55ZsZfDu','alias','SSE\x20error:\x20','5272hULIIY','abort','42NkXfUW','application/json','toString','/mcp','running','call','application/json,\x20text/event-stream','send_reply','resumeId','inbox\x20error:\x20','broadcast','type','catch','registered','heartbeatTimer','error','tools/call','status','sleep','/events/','processInbox','get_inbox','sseAbort','token','url','normal','split','31072LQVsRf','text','Bearer\x20','report_status','907820yvyZAG','toTimeString','agent','read','heartbeatInterval','parse','connect','reconnectDelay','from_session','connectSSE','match','SSE\x20failed:\x20','text/event-stream','content','messages','autoConnect','AbortError','log','947086LCiYOB','SSE\x20connected','Authorization','name','send','connected','cwd','signal','now','new_task','SSE\x20reconnecting\x20in\x20','body','emit','idle','359100NCbDGa','get_all_status','task','sdk','24844rLChPF','replace','message','s...','heartbeat\x20failed:\x20','reply','min','server','37336DbjEob','offline'];a0_0x4b59=function(){return _0x5b879d;};return a0_0x4b59();}
|
package/dist/src/node-server.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
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());
|
|
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());
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sleep2agi/agent-network",
|
|
3
|
-
"version": "2.2.
|
|
4
|
-
"description": "AI Agent Network CLI
|
|
3
|
+
"version": "2.2.13",
|
|
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",
|
|
7
7
|
"types": "dist/client.d.ts",
|
|
@@ -71,5 +71,9 @@
|
|
|
71
71
|
"javascript-obfuscator": "^5.4.1",
|
|
72
72
|
"node-pty": "^1.1.0",
|
|
73
73
|
"typescript": "^5.0.0"
|
|
74
|
+
},
|
|
75
|
+
"overrides": {
|
|
76
|
+
"hono": "^4.12.21",
|
|
77
|
+
"qs": "^6.15.2"
|
|
74
78
|
}
|
|
75
79
|
}
|