@sleep2agi/agent-network 2.1.8-preview.1 → 2.1.8-preview.11
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 +3 -2
- package/dist/client.d.ts +0 -78
package/dist/src/client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x3040dd=a0_0x41a2;(function(_0x3ef044,_0x5a9057){const _0x5f2cde=a0_0x41a2,_0x4142e0=_0x3ef044();while(!![]){try{const _0x2dc5ae=parseInt(_0x5f2cde(0x1cf))/0x1+-parseInt(_0x5f2cde(0x1c5))/0x2+parseInt(_0x5f2cde(0x1d0))/0x3*(-parseInt(_0x5f2cde(0x1b7))/0x4)+parseInt(_0x5f2cde(0x1ac))/0x5+parseInt(_0x5f2cde(0x1ab))/0x6+parseInt(_0x5f2cde(0x1b5))/0x7*(parseInt(_0x5f2cde(0x1cb))/0x8)+-parseInt(_0x5f2cde(0x1a4))/0x9;if(_0x2dc5ae===_0x5a9057)break;else _0x4142e0['push'](_0x4142e0['shift']());}catch(_0x2b02de){_0x4142e0['push'](_0x4142e0['shift']());}}}(a0_0x2203,0x2e5ac));import{EventEmitter as a0_0x185454}from'events';function a0_0x41a2(_0x3b835f,_0x3a2607){_0x3b835f=_0x3b835f-0x1a2;const _0x2203f9=a0_0x2203();let _0x41a2e0=_0x2203f9[_0x3b835f];return _0x41a2e0;}import{hostname as a0_0x31b99c}from'os';class T extends a0_0x185454{[a0_0x3040dd(0x1de)];[a0_0x3040dd(0x1a5)];[a0_0x3040dd(0x1ee)];[a0_0x3040dd(0x1e7)];[a0_0x3040dd(0x1ca)];['heartbeatInterval'];[a0_0x3040dd(0x1c9)];[a0_0x3040dd(0x1a3)];[a0_0x3040dd(0x1dc)];['running']=!0x1;constructor(_0x5b2553){const _0xb7bc30=a0_0x3040dd;super();if(this[_0xb7bc30(0x1de)]=_0x5b2553[_0xb7bc30(0x1de)]['replace'](/\/$/,''),this[_0xb7bc30(0x1a5)]=_0x5b2553[_0xb7bc30(0x1a5)],this['token']=_0x5b2553[_0xb7bc30(0x1ee)],this[_0xb7bc30(0x1e7)]=_0x5b2553[_0xb7bc30(0x1e7)]||'sdk',this['resumeId']=_0xb7bc30(0x1bc)+_0x5b2553[_0xb7bc30(0x1a5)]+'-'+Date[_0xb7bc30(0x1e0)]()[_0xb7bc30(0x1b4)](0x24),this[_0xb7bc30(0x1b1)]=_0x5b2553[_0xb7bc30(0x1b1)]??0x2bf20,this[_0xb7bc30(0x1c9)]=_0x5b2553[_0xb7bc30(0x1c9)]??0xbb8,_0x5b2553[_0xb7bc30(0x1d7)]!==!0x1)this[_0xb7bc30(0x1d2)]();}[a0_0x3040dd(0x1ba)](_0x158584){const _0x556552=a0_0x3040dd;console[_0x556552(0x1ba)]('['+new Date()[_0x556552(0x1a2)]()[_0x556552(0x1d8)](0x0,0x8)+_0x556552(0x1a8)+this[_0x556552(0x1a5)]+']\x20'+_0x158584);}async[a0_0x3040dd(0x1a6)](_0x437bfb,_0x4bacf9){const _0x4730ef=a0_0x3040dd;let _0x4b022d={'Content-Type':'application/json','Accept':_0x4730ef(0x1cc)};if(this['token'])_0x4b022d[_0x4730ef(0x1d6)]=_0x4730ef(0x1e9)+this[_0x4730ef(0x1ee)];let _0x2cde89=await(await fetch(this['url']+_0x4730ef(0x1f0),{'method':_0x4730ef(0x1e8),'headers':_0x4b022d,'body':JSON[_0x4730ef(0x1ea)]({'jsonrpc':'2.0','id':Date[_0x4730ef(0x1e0)](),'method':_0x4730ef(0x1c8),'params':{'name':_0x437bfb,'arguments':_0x4bacf9}})}))[_0x4730ef(0x1e6)](),_0x1697ad=_0x2cde89[_0x4730ef(0x1af)](/data: (.+)/),_0xa89110=_0x1697ad?JSON[_0x4730ef(0x1e5)](_0x1697ad[0x1]):JSON[_0x4730ef(0x1e5)](_0x2cde89),_0x43e028=_0xa89110?.[_0x4730ef(0x1be)]?.['content']?.[0x0]?.[_0x4730ef(0x1e6)];return _0x43e028?JSON['parse'](_0x43e028):_0xa89110;}async[a0_0x3040dd(0x1d2)](){const _0x324506=a0_0x3040dd;if(this[_0x324506(0x1c3)])return;this['running']=!0x0,await this[_0x324506(0x1d9)](_0x324506(0x1b9)),this[_0x324506(0x1ba)](_0x324506(0x1c1)),this[_0x324506(0x1a3)]=setInterval(()=>{const _0x39a371=_0x324506;this[_0x39a371(0x1d9)](_0x39a371(0x1b9))['catch'](_0x329b74=>this[_0x39a371(0x1ba)](_0x39a371(0x1ce)+_0x329b74['message']));},this[_0x324506(0x1b1)]),this['connectSSE']();}async[a0_0x3040dd(0x1d3)](){const _0x271e1e=a0_0x3040dd;if(this[_0x271e1e(0x1c3)]=!0x1,this[_0x271e1e(0x1dc)]?.[_0x271e1e(0x1c0)](),this[_0x271e1e(0x1a3)])clearInterval(this[_0x271e1e(0x1a3)]);await this['status']('offline')['catch'](()=>{}),this['log'](_0x271e1e(0x1c7));}async[a0_0x3040dd(0x1b3)](_0x781e92,_0x51e72c,_0x113b94='normal'){const _0x17bd3e=a0_0x3040dd;return this['call'](_0x17bd3e(0x1db),{'alias':_0x781e92,'task':_0x51e72c,'priority':_0x113b94,'from_session':this['alias']});}async['message'](_0x1c6f15,_0x13d311){const _0x2b4f96=a0_0x3040dd;return this[_0x2b4f96(0x1a6)](_0x2b4f96(0x1f1),{'alias':_0x1c6f15,'message':_0x13d311,'from_session':this[_0x2b4f96(0x1a5)]});}async[a0_0x3040dd(0x1d1)](_0x57d9a0,_0x251d9c,_0x434088='completed'){const _0x2584af=a0_0x3040dd;return this[_0x2584af(0x1a6)](_0x2584af(0x1b8),{'in_reply_to':_0x57d9a0,'text':_0x251d9c,'status':_0x434088});}async[a0_0x3040dd(0x1d9)](_0x29691f,_0x1bcfd8){const _0x5d3e73=a0_0x3040dd;return this[_0x5d3e73(0x1a6)](_0x5d3e73(0x1d4),{'resume_id':this[_0x5d3e73(0x1ca)],'alias':this[_0x5d3e73(0x1a5)],'status':_0x29691f,'server':a0_0x31b99c(),'hostname':a0_0x31b99c(),'agent':this['agent'],'project_dir':process[_0x5d3e73(0x1cd)](),..._0x1bcfd8});}async[a0_0x3040dd(0x1d5)](){const _0x29aabb=a0_0x3040dd;return this[_0x29aabb(0x1a6)]('get_all_status',{});}async[a0_0x3040dd(0x1da)](_0x4e4b4b,_0x8cb010){const _0x1df0a2=a0_0x3040dd;return this['call'](_0x1df0a2(0x1da),{'message':_0x4e4b4b,'filter_server':_0x8cb010?.[_0x1df0a2(0x1c2)],'filter_status':_0x8cb010?.[_0x1df0a2(0x1d9)]});}async['connectSSE'](){const _0x14cf47=a0_0x3040dd;let _0x178115=encodeURIComponent(this[_0x14cf47(0x1a5)]),_0x24ef24=this['url']+_0x14cf47(0x1f2)+_0x178115,_0x3d2915=this[_0x14cf47(0x1c9)];while(this[_0x14cf47(0x1c3)]){try{this[_0x14cf47(0x1dc)]=new AbortController();let _0x3c0710={'Accept':'text/event-stream'};if(this[_0x14cf47(0x1ee)])_0x3c0710[_0x14cf47(0x1d6)]=_0x14cf47(0x1e9)+this['token'];let _0x5323db=await fetch(_0x24ef24,{'headers':_0x3c0710,'signal':this[_0x14cf47(0x1dc)][_0x14cf47(0x1df)]});if(!_0x5323db['ok']||!_0x5323db[_0x14cf47(0x1c6)]){this[_0x14cf47(0x1ba)]('SSE\x20failed:\x20'+_0x5323db[_0x14cf47(0x1d9)]),await this[_0x14cf47(0x1b2)](_0x3d2915),_0x3d2915=Math[_0x14cf47(0x1b0)](_0x3d2915*1.5,0xea60);continue;}_0x3d2915=this[_0x14cf47(0x1c9)];let _0x4f6352=_0x5323db[_0x14cf47(0x1c6)]['getReader'](),_0x16b1e7=new TextDecoder(),_0x3b14f3='';while(this['running']){let {done:_0x47481b,value:_0x3d0920}=await _0x4f6352[_0x14cf47(0x1bd)]();if(_0x47481b)break;_0x3b14f3+=_0x16b1e7[_0x14cf47(0x1dd)](_0x3d0920,{'stream':!0x0});let _0x3431b7=_0x3b14f3[_0x14cf47(0x1ae)]('\x0a');_0x3b14f3=_0x3431b7[_0x14cf47(0x1a9)]()||'';for(let _0x38bcb7 of _0x3431b7){if(!_0x38bcb7[_0x14cf47(0x1c4)]('data:\x20'))continue;try{let _0x5ae523=JSON[_0x14cf47(0x1e5)](_0x38bcb7[_0x14cf47(0x1d8)](0x6));if(_0x5ae523[_0x14cf47(0x1eb)]==='connected'){this['log'](_0x14cf47(0x1e4)),this[_0x14cf47(0x1a7)](_0x14cf47(0x1ec));continue;}if(_0x5ae523[_0x14cf47(0x1eb)]===_0x14cf47(0x1ef)||_0x5ae523[_0x14cf47(0x1eb)]==='new_message'||_0x5ae523[_0x14cf47(0x1eb)]==='broadcast')await this['processInbox']();}catch{}}}}catch(_0x7e184b){if(_0x7e184b[_0x14cf47(0x1b6)]===_0x14cf47(0x1aa))break;this[_0x14cf47(0x1a7)]('error',_0x7e184b),this[_0x14cf47(0x1ba)]('SSE\x20error:\x20'+_0x7e184b[_0x14cf47(0x1e3)]);}if(this[_0x14cf47(0x1c3)])this[_0x14cf47(0x1a7)](_0x14cf47(0x1c7)),this['log']('SSE\x20reconnecting\x20in\x20'+_0x3d2915/0x3e8+_0x14cf47(0x1e1)),await this[_0x14cf47(0x1b2)](_0x3d2915),_0x3d2915=Math[_0x14cf47(0x1b0)](_0x3d2915*1.5,0xea60);}}async[a0_0x3040dd(0x1bf)](){const _0x3c88f5=a0_0x3040dd;try{let _0x37fe3e=(await this[_0x3c88f5(0x1a6)](_0x3c88f5(0x1ad),{'alias':this[_0x3c88f5(0x1a5)],'limit':0xa}))?.[_0x3c88f5(0x1e2)]||[];for(let _0x17c945 of _0x37fe3e)await this[_0x3c88f5(0x1a6)]('ack_inbox',{'alias':this['alias'],'message_id':_0x17c945['id']}),this['log']('←\x20'+_0x17c945[_0x3c88f5(0x1bb)]+':\x20'+_0x17c945['content'][_0x3c88f5(0x1d8)](0x0,0x3c)),this[_0x3c88f5(0x1a7)]('task',_0x17c945),this[_0x3c88f5(0x1a7)](_0x3c88f5(0x1e3),_0x17c945);}catch(_0x4020f9){this[_0x3c88f5(0x1ba)](_0x3c88f5(0x1ed)+_0x4020f9['message']);}}['sleep'](_0x4f99ca){return new Promise(_0x2ffd30=>setTimeout(_0x2ffd30,_0x4f99ca));}}var $=T;export{$ as default,T as CommHub};function a0_0x2203(){const _0x29f3c7=['320212ZzQqDZ','body','disconnected','tools/call','reconnectDelay','resumeId','654832BVmTlk','application/json,\x20text/event-stream','cwd','heartbeat\x20failed:\x20','199146eFpPab','1233HCuFtu','reply','connect','disconnect','report_status','getAllStatus','Authorization','autoConnect','slice','status','broadcast','send_task','sseAbort','decode','url','signal','now','s...','messages','message','SSE\x20connected','parse','text','agent','POST','Bearer\x20','stringify','type','connected','inbox\x20error:\x20','token','new_task','/mcp','send_message','/events/','toTimeString','heartbeatTimer','462600XXijis','alias','call','emit',']\x20[commhub:','pop','AbortError','761544jfFbzd','318330NPNzkm','get_inbox','split','match','min','heartbeatInterval','sleep','send','toString','14jRtezh','name','1480dHlTcz','send_reply','idle','log','from_session','sdk-','read','result','processInbox','abort','registered','server','running','startsWith'];a0_0x2203=function(){return _0x29f3c7;};return a0_0x2203();}
|
package/dist/src/node-server.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
const a0_0x207ea2=a0_0x5156;(function(_0x367ff5,_0x562351){const _0x4d5144=a0_0x5156,_0x12e498=_0x367ff5();while(!![]){try{const _0x2ceae7=-parseInt(_0x4d5144(0x1fe))/0x1+parseInt(_0x4d5144(0x1df))/0x2*(parseInt(_0x4d5144(0x177))/0x3)+-parseInt(_0x4d5144(0x1e0))/0x4*(-parseInt(_0x4d5144(0x1d6))/0x5)+-parseInt(_0x4d5144(0x1f6))/0x6+parseInt(_0x4d5144(0x18c))/0x7+-parseInt(_0x4d5144(0x1b3))/0x8*(-parseInt(_0x4d5144(0x1c4))/0x9)+-parseInt(_0x4d5144(0x19f))/0xa;if(_0x2ceae7===_0x562351)break;else _0x12e498['push'](_0x12e498['shift']());}catch(_0x117ce6){_0x12e498['push'](_0x12e498['shift']());}}}(a0_0x2b20,0x3b70c));import{readFileSync as a0_0x37e8bd,existsSync as a0_0xee8275}from'fs';import{randomUUID as a0_0x2c4b26}from'crypto';import{join as a0_0x1c9881}from'path';import{hostname as a0_0x3dd656}from'os';function a0_0x5156(_0x4cd11a,_0xf9aec0){_0x4cd11a=_0x4cd11a-0x16e;const _0x2b20a3=a0_0x2b20();let _0x515620=_0x2b20a3[_0x4cd11a];return _0x515620;}import{execSync as a0_0x4ceae2}from'child_process';import{Server as a0_0x39eb7a}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0x544d8e}from'@modelcontextprotocol/sdk/server/stdio.js';import{ListToolsRequestSchema as a0_0x4b6a40,CallToolRequestSchema as a0_0x213c08}from'@modelcontextprotocol/sdk/types.js';function p(_0x482a99){const _0x2d49a2=a0_0x5156;if(!a0_0xee8275(_0x482a99))return;for(let _0x19b868 of a0_0x37e8bd(_0x482a99,_0x2d49a2(0x1ca))[_0x2d49a2(0x19e)]('\x0a')){let _0x3d1849=_0x19b868[_0x2d49a2(0x1dd)]();if(!_0x3d1849||_0x3d1849[_0x2d49a2(0x1e5)]('#'))continue;let _0x489dd4=_0x3d1849[_0x2d49a2(0x1e3)]('=');if(_0x489dd4<0x0)continue;let _0x38721f=_0x3d1849['slice'](0x0,_0x489dd4)[_0x2d49a2(0x1dd)](),_0x5a7aca=_0x3d1849['slice'](_0x489dd4+0x1)[_0x2d49a2(0x1dd)]()[_0x2d49a2(0x1b7)](/^["']|["']$/g,'');if(!process.env[_0x38721f])process.env[_0x38721f]=_0x5a7aca;}}var C=process.env.HOME||'~',T=a0_0x1c9881(C,a0_0x207ea2(0x190));p(a0_0x1c9881(T,a0_0x207ea2(0x1c5)));var L=process['cwd']()['replace'](/\//g,'-');p(a0_0x1c9881(T,L,a0_0x207ea2(0x1c5)));function U(){const _0xee1db2=a0_0x207ea2;try{return a0_0x4ceae2('tmux\x20display-message\x20-p\x20\x27#S\x27',{'encoding':_0xee1db2(0x1ca),'timeout':0x7d0})[_0xee1db2(0x1dd)]();}catch{return'';}}function v(){const _0x1d5f83=a0_0x207ea2;try{let _0x45ca9a=a0_0x1c9881(C,_0x1d5f83(0x1d9),_0x1d5f83(0x1cc));if(a0_0xee8275(_0x45ca9a))return JSON[_0x1d5f83(0x1ae)](a0_0x37e8bd(_0x45ca9a,_0x1d5f83(0x1ca)));}catch{}return{};}var H=v(),f=process.env.COMMHUB_URL||H[a0_0x207ea2(0x1c6)]||'http://127.0.0.1:9200',j=process.env.COMMHUB_TMUX||U(),Z=process.env.COMMHUB_ALIAS||j||a0_0x3dd656(),w=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0x2c4b26(),X=process.env.COMMHUB_TOKEN||H[a0_0x207ea2(0x1ee)]||'';function Y(_0x296626){const _0x4a961a=a0_0x207ea2;let _0x53f466=new Date()[_0x4a961a(0x1bd)]()[_0x4a961a(0x1c3)](0x0,0x8);process[_0x4a961a(0x17d)]['write']('['+_0x53f466+']\x20[commhub]\x20'+_0x296626+'\x0a');}function h(_0x4d8929){return new Promise(_0x22e0e2=>setTimeout(_0x22e0e2,_0x4d8929));}Y(a0_0x207ea2(0x1e2)+f+a0_0x207ea2(0x1a5)+Z+a0_0x207ea2(0x1b6)+w['slice'](0x0,0x8)+a0_0x207ea2(0x1c7)+(j||a0_0x207ea2(0x182))+'\x20CWD='+process[a0_0x207ea2(0x1d0)]()+a0_0x207ea2(0x19b)+L);var k=new Map(),K=new a0_0x39eb7a({'name':'commhub-channel','version':a0_0x207ea2(0x1b9)},{'capabilities':{'experimental':{'claude/channel':{}},'tools':{}},'instructions':[a0_0x207ea2(0x17b),a0_0x207ea2(0x1b8),a0_0x207ea2(0x1a1),'You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.',a0_0x207ea2(0x1a6)+Z][a0_0x207ea2(0x1d3)]('\x0a')});K[a0_0x207ea2(0x1eb)](a0_0x4b6a40,async()=>({'tools':[{'name':a0_0x207ea2(0x189),'description':a0_0x207ea2(0x1f8),'inputSchema':{'type':'object','properties':{'task_id':{'type':a0_0x207ea2(0x1a2),'description':a0_0x207ea2(0x1fd)},'text':{'type':a0_0x207ea2(0x1a2),'description':a0_0x207ea2(0x192)},'status':{'type':'string','enum':[a0_0x207ea2(0x1e8),a0_0x207ea2(0x1ad),a0_0x207ea2(0x176),'blocked','error','in_progress'],'description':'Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates'}},'required':[a0_0x207ea2(0x193)]}},{'name':a0_0x207ea2(0x173),'description':'Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','inputSchema':{'type':'object','properties':{'status':{'type':a0_0x207ea2(0x1a2),'enum':[a0_0x207ea2(0x183),a0_0x207ea2(0x1c9),a0_0x207ea2(0x17c),a0_0x207ea2(0x1de)]},'task':{'type':a0_0x207ea2(0x1a2),'description':a0_0x207ea2(0x197)},'progress':{'type':a0_0x207ea2(0x184),'description':a0_0x207ea2(0x1a8)}},'required':[a0_0x207ea2(0x1f3)]}},{'name':a0_0x207ea2(0x1ec),'description':a0_0x207ea2(0x1d8),'inputSchema':{'type':a0_0x207ea2(0x1da),'properties':{'alias':{'type':a0_0x207ea2(0x1a2),'description':a0_0x207ea2(0x16e)},'task':{'type':'string','description':a0_0x207ea2(0x188)},'priority':{'type':a0_0x207ea2(0x1a2),'enum':[a0_0x207ea2(0x174),a0_0x207ea2(0x17e),a0_0x207ea2(0x1e4)],'description':'Priority\x20(default:\x20normal)'}},'required':[a0_0x207ea2(0x170),'task']}},{'name':'commhub_send_message','description':'Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','inputSchema':{'type':a0_0x207ea2(0x1da),'properties':{'alias':{'type':a0_0x207ea2(0x1a2),'description':'Target\x20session\x20alias'},'message':{'type':a0_0x207ea2(0x1a2),'description':a0_0x207ea2(0x186)}},'required':[a0_0x207ea2(0x170),a0_0x207ea2(0x1ef)]}},{'name':a0_0x207ea2(0x1b2),'description':'Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','inputSchema':{'type':'object','properties':{}}}]}));function a0_0x2b20(){const _0x24bd9d=['Target\x20session\x20alias','\x22\x20(','alias','application/json,\x20text/event-stream','pop','commhub_report_status','high','notifications/claude/channel','cancelled','14793klqozx','tools/call','get_inbox','catch','Messages\x20from\x20CommHub\x20arrive\x20as\x20<channel\x20source=\x22commhub\x22\x20task_id=\x22...\x22\x20priority=\x22...\x22\x20from=\x22...\x22>','blocked','stderr','normal','session\x20disconnected','Bearer\x20','get','none','working','number','connect','Message\x20content','data:\x20','Task\x20content','commhub_reply','find','\x20priority=','1637419AQQjJv','POST','MCP\x20stdio\x20connected','send_reply','.claude/channels/commhub','new_task','Reply\x20text\x20/\x20result\x20summary','text','2025-03-26','no\x20response','connected','Current\x20task\x20description','new_message','stringify','send_task','\x20PROJECT_ENV=','end','warning:\x20could\x20not\x20register:\x20','split','3397440hggomn','from','Reply\x20using\x20the\x20commhub_reply\x20tool\x20to\x20report\x20status\x20or\x20results\x20back.','string','ready\x20—\x20waiting\x20for\x20events','read','\x20ALIAS=','Session\x20alias:\x20','from_session','Progress\x200-100','SSE\x20stream\x20ended,\x20reconnecting...','get_all_status','registered\x20as\x20\x22','2.0','failed','parse','getReader','notification','inbox_count','commhub_get_all_status','1275704KwixmD','CommHub\x20init\x20failed:\x20','connecting\x20to\x20','\x20RESUME_ID=','replace','These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.','0.3.0','then','messages','parse\x20error:\x20','toTimeString','SIGINT','heartbeat\x20failed:\x20','delete','SIGTERM','application/json','slice','9RVuChZ','.env','hub','...\x20TMUX=','←\x20message\x20from\x20','idle','utf-8','message_id','config.json','set','decode','report_status','cwd','exit','Authorization','join','length','\x20from\x20','40PDYIyO','initialize','Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','.anet','object','body','unknown\x20tool','trim','error','134CmTTIu','103204nnVbuP','priority','ENV:\x20URL=','indexOf','low','startsWith','/events/','ack_inbox','completed','SSE\x20error:\x20','content','setRequestHandler','commhub_send_task','fatal:\x20','token','message','replied','starting\x20SSE\x20listener...','claude-code','status','type','SSE\x20connected\x20as\x20\x22','1550058tWWeqw','send_message','Reply\x20to\x20a\x20CommHub\x20task\x20—\x20report\x20completion\x20or\x20send\x20a\x20message\x20back\x20to\x20the\x20hub.','stdin','broadcast','statusText','result','The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)','88610yoQGJV','commhub_send_message'];a0_0x2b20=function(){return _0x24bd9d;};return a0_0x2b20();}async function P(_0x148c31,_0xa95505){const _0x2b4357=a0_0x207ea2;let _0x4ffb16=await fetch(f+'/mcp',{'method':_0x2b4357(0x18d),'headers':{'Content-Type':'application/json','Accept':'application/json,\x20text/event-stream',...X?{'Authorization':_0x2b4357(0x180)+X}:{}},'body':JSON['stringify']({'jsonrpc':'2.0','id':0x1,'method':_0x2b4357(0x1d7),'params':{'protocolVersion':_0x2b4357(0x194),'capabilities':{},'clientInfo':{'name':'commhub-channel','version':'0.3.0'}}})});if(!_0x4ffb16['ok']){let _0x4fb530=await _0x4ffb16['text']();return Y(_0x2b4357(0x1b4)+_0x4ffb16[_0x2b4357(0x1f3)]+'\x20'+_0x4fb530[_0x2b4357(0x1c3)](0x0,0x64)),{'ok':!0x1,'error':'init\x20failed:\x20'+_0x4ffb16[_0x2b4357(0x1f3)]};}await _0x4ffb16['text']();let _0x5229c2=(await(await fetch(f+'/mcp',{'method':'POST','headers':{'Content-Type':_0x2b4357(0x1c2),'Accept':_0x2b4357(0x171),...X?{'Authorization':_0x2b4357(0x180)+X}:{}},'body':JSON[_0x2b4357(0x199)]({'jsonrpc':_0x2b4357(0x1ac),'id':0x2,'method':_0x2b4357(0x178),'params':{'name':_0x148c31,'arguments':_0xa95505}})}))[_0x2b4357(0x193)]())[_0x2b4357(0x19e)]('\x0a')['find'](_0x2947a8=>_0x2947a8['startsWith'](_0x2b4357(0x187)));if(_0x5229c2){let _0x12edca=JSON['parse'](_0x5229c2['slice'](0x6));return _0x12edca?.['result']?.[_0x2b4357(0x1ea)]?.[0x0]?.[_0x2b4357(0x193)]?JSON[_0x2b4357(0x1ae)](_0x12edca[_0x2b4357(0x1fc)][_0x2b4357(0x1ea)][0x0][_0x2b4357(0x193)]):_0x12edca;}return{'ok':!0x1,'error':_0x2b4357(0x195)};}K['setRequestHandler'](a0_0x213c08,async _0x300b2c=>{const _0x2dec11=a0_0x207ea2;let {name:_0x27959c,arguments:_0x2121f2}=_0x300b2c['params'];if(_0x27959c==='commhub_reply'){let {task_id:_0x16a45b,text:_0x125696,status:_0x4f8f0b}=_0x2121f2;if(_0x4f8f0b===_0x2dec11(0x1e8)||_0x4f8f0b===_0x2dec11(0x1ad)||_0x4f8f0b==='cancelled'){let _0x1ccdf5=_0x4f8f0b===_0x2dec11(0x1e8)?_0x2dec11(0x1f0):_0x4f8f0b,_0x5a22ad=_0x16a45b?k[_0x2dec11(0x181)](_0x16a45b)||_0x2dec11(0x1c6):_0x2dec11(0x1c6),_0x5cbc11=await P(_0x2dec11(0x18f),{'alias':_0x5a22ad,'text':_0x125696,'in_reply_to':_0x16a45b||void 0x0,'status':_0x1ccdf5,'from_session':Z});if(_0x16a45b)k[_0x2dec11(0x1c0)](_0x16a45b);return{'content':[{'type':_0x2dec11(0x193),'text':JSON['stringify'](_0x5cbc11)}]};}let _0x494a4=await P('report_status',{'resume_id':w,'alias':Z,'status':_0x4f8f0b===_0x2dec11(0x17c)?_0x2dec11(0x17c):_0x4f8f0b==='error'?'error':_0x2dec11(0x183),'task':_0x125696[_0x2dec11(0x1c3)](0x0,0xc8),'output':_0x125696});return{'content':[{'type':_0x2dec11(0x193),'text':JSON[_0x2dec11(0x199)](_0x494a4)}]};}if(_0x27959c===_0x2dec11(0x173)){let {status:_0x78eef9,task:_0x347a72,progress:_0x3748ba}=_0x2121f2,_0x1bc8f2=await P(_0x2dec11(0x1cf),{'resume_id':w,'alias':Z,'status':_0x78eef9,'task':_0x347a72,'progress':_0x3748ba});return{'content':[{'type':_0x2dec11(0x193),'text':JSON[_0x2dec11(0x199)](_0x1bc8f2)}]};}if(_0x27959c==='commhub_send_task'){let {alias:_0xfd1c1a,task:_0x2c9429,priority:_0x302360}=_0x2121f2,_0x5f00af=await P(_0x2dec11(0x19a),{'alias':_0xfd1c1a,'task':_0x2c9429,'priority':_0x302360||'normal','from_session':Z});return{'content':[{'type':_0x2dec11(0x193),'text':JSON[_0x2dec11(0x199)](_0x5f00af)}]};}if(_0x27959c===_0x2dec11(0x1ff)){let {alias:_0x247e43,message:_0x295755}=_0x2121f2,_0x5bb238=await P(_0x2dec11(0x1f7),{'alias':_0x247e43,'message':_0x295755,'from_session':Z});return{'content':[{'type':_0x2dec11(0x193),'text':JSON[_0x2dec11(0x199)](_0x5bb238)}]};}if(_0x27959c===_0x2dec11(0x1b2)){let _0x5d043a=await P(_0x2dec11(0x1aa),{});return{'content':[{'type':_0x2dec11(0x193),'text':JSON[_0x2dec11(0x199)](_0x5d043a)}]};}return{'content':[{'type':_0x2dec11(0x193),'text':JSON[_0x2dec11(0x199)]({'error':_0x2dec11(0x1dc)})}]};});async function u(){const _0xf1e092=a0_0x207ea2;let _0x3b769f=f+_0xf1e092(0x1e6)+encodeURIComponent(Z),_0x3fe994={};if(X)_0x3fe994[_0xf1e092(0x1d2)]=_0xf1e092(0x180)+X;Y(_0xf1e092(0x1b5)+_0x3b769f);while(!0x0){try{let _0x28c9c9=await fetch(_0x3b769f,{'headers':_0x3fe994});if(!_0x28c9c9['ok']){Y(_0xf1e092(0x1e9)+_0x28c9c9[_0xf1e092(0x1f3)]+'\x20'+_0x28c9c9[_0xf1e092(0x1fb)]),await h(0x1388);continue;}let _0x1a10c5=_0x28c9c9[_0xf1e092(0x1db)][_0xf1e092(0x1af)](),_0x1409ab=new TextDecoder(),_0x16ae11='';while(!0x0){let {done:_0x4d48a8,value:_0x7a5476}=await _0x1a10c5[_0xf1e092(0x1a4)]();if(_0x4d48a8)break;_0x16ae11+=_0x1409ab[_0xf1e092(0x1ce)](_0x7a5476,{'stream':!0x0});let _0x2b316a=_0x16ae11[_0xf1e092(0x19e)]('\x0a\x0a');_0x16ae11=_0x2b316a[_0xf1e092(0x172)]()||'';for(let _0x3e9897 of _0x2b316a){let _0x18917c=_0x3e9897['split']('\x0a')[_0xf1e092(0x18a)](_0x3d1d16=>_0x3d1d16[_0xf1e092(0x1e5)](_0xf1e092(0x187)));if(!_0x18917c)continue;try{let _0x520ae6=JSON[_0xf1e092(0x1ae)](_0x18917c[_0xf1e092(0x1c3)](0x6));await S(_0x520ae6);}catch(_0x123d36){Y(_0xf1e092(0x1bc)+_0x123d36);}}}Y(_0xf1e092(0x1a9));}catch(_0x2a91da){Y('SSE\x20connection\x20error:\x20'+_0x2a91da);}await h(0xbb8);}}async function S(_0x15908c){const _0x2ddcad=a0_0x207ea2;if(_0x15908c[_0x2ddcad(0x1f4)]===_0x2ddcad(0x196)){Y(_0x2ddcad(0x1f5)+Z+'\x22');return;}if(_0x15908c['type']===_0x2ddcad(0x198)){if(Y(_0x2ddcad(0x1c8)+_0x15908c[_0x2ddcad(0x1a0)]+':\x20'+_0x15908c['message']['slice'](0x0,0x3c)),await K[_0x2ddcad(0x1b0)]({'method':_0x2ddcad(0x175),'params':{'content':_0x15908c[_0x2ddcad(0x1ef)],'meta':{'sender':_0x15908c[_0x2ddcad(0x1a0)]||_0x2ddcad(0x1c6),'sender_id':'commhub','user':_0x15908c['from']||'hub','priority':_0x2ddcad(0x17e)}}}),_0x15908c[_0x2ddcad(0x1cb)])await P(_0x2ddcad(0x1e7),{'alias':Z,'message_id':_0x15908c['message_id']});return;}if(_0x15908c[_0x2ddcad(0x1f4)]===_0x2ddcad(0x191)||_0x15908c['type']===_0x2ddcad(0x1fa)){Y('←\x20'+_0x15908c[_0x2ddcad(0x1f4)]+':\x20inbox_count='+_0x15908c[_0x2ddcad(0x1b1)]+_0x2ddcad(0x18b)+(_0x15908c[_0x2ddcad(0x1e1)]||'normal'));let _0x53c0a2=await P(_0x2ddcad(0x179),{'alias':Z,'limit':0x5});if(_0x53c0a2?.['ok']&&_0x53c0a2[_0x2ddcad(0x1bb)]?.[_0x2ddcad(0x1d4)]>0x0)for(let _0x54a6a8 of _0x53c0a2[_0x2ddcad(0x1bb)]){let _0x25e919={'sender':_0x54a6a8['from_session']||_0x2ddcad(0x1c6),'sender_id':'commhub','user':_0x54a6a8[_0x2ddcad(0x1a7)]||_0x2ddcad(0x1c6),'task_id':_0x54a6a8['id'],'priority':_0x54a6a8[_0x2ddcad(0x1e1)]||_0x2ddcad(0x17e)};k[_0x2ddcad(0x1cd)](_0x54a6a8['id'],_0x54a6a8[_0x2ddcad(0x1a7)]||_0x2ddcad(0x1c6)),await K[_0x2ddcad(0x1b0)]({'method':_0x2ddcad(0x175),'params':{'content':_0x54a6a8[_0x2ddcad(0x1ea)],'meta':_0x25e919}}),Y('→\x20injected\x20task\x20'+_0x54a6a8['id'][_0x2ddcad(0x1c3)](0x0,0x8)+_0x2ddcad(0x1d5)+_0x54a6a8[_0x2ddcad(0x1a7)]+':\x20'+_0x54a6a8[_0x2ddcad(0x1ea)][_0x2ddcad(0x1c3)](0x0,0x3c)),await P(_0x2ddcad(0x1e7),{'alias':Z,'message_id':_0x54a6a8['id']});}}}async function A(){const _0x1f785f=a0_0x207ea2;let _0x58cb98=new a0_0x544d8e();await K[_0x1f785f(0x185)](_0x58cb98),Y(_0x1f785f(0x18e)),Y(_0x1f785f(0x1f1)),u()[_0x1f785f(0x17a)](_0x7a1db6=>Y('SSE\x20fatal:\x20'+_0x7a1db6)),P(_0x1f785f(0x1cf),{'resume_id':w,'alias':Z,'status':_0x1f785f(0x1c9),'server':a0_0x3dd656(),'hostname':a0_0x3dd656(),'agent':_0x1f785f(0x1f2),'project_dir':process[_0x1f785f(0x1d0)](),'tmux_name':j||void 0x0})[_0x1f785f(0x1ba)](()=>Y(_0x1f785f(0x1ab)+Z+_0x1f785f(0x16f)+w['slice'](0x0,0x8)+')'))[_0x1f785f(0x17a)](_0x332b56=>Y(_0x1f785f(0x19d)+_0x332b56)),setInterval(()=>{const _0x550a0d=_0x1f785f;P(_0x550a0d(0x1cf),{'resume_id':w,'alias':Z,'status':'idle','server':a0_0x3dd656(),'hostname':a0_0x3dd656(),'agent':_0x550a0d(0x1f2),'project_dir':process[_0x550a0d(0x1d0)](),'tmux_name':j||void 0x0})[_0x550a0d(0x17a)](_0x3f30c5=>Y(_0x550a0d(0x1bf)+_0x3f30c5));},0x2bf20),Y(_0x1f785f(0x1a3));}A()[a0_0x207ea2(0x17a)](_0x3ffc7f=>{const _0x135a31=a0_0x207ea2;Y(_0x135a31(0x1ed)+_0x3ffc7f),process[_0x135a31(0x1d1)](0x1);});async function N(){const _0x196b4d=a0_0x207ea2;Y('shutting\x20down,\x20reporting\x20offline...'),await P('report_status',{'resume_id':w,'alias':Z,'status':_0x196b4d(0x1de),'task':_0x196b4d(0x17f)})[_0x196b4d(0x17a)](()=>{}),process[_0x196b4d(0x1d1)](0x0);}process[a0_0x207ea2(0x1f9)]['on'](a0_0x207ea2(0x19c),()=>N()),process['on'](a0_0x207ea2(0x1c1),()=>N()),process['on'](a0_0x207ea2(0x1be),()=>N());
|
|
2
|
+
const a0_0x49c457=a0_0xedf2;(function(_0x5d0f5c,_0x1d4c99){const _0x39c3df=a0_0xedf2,_0x43c3ff=_0x5d0f5c();while(!![]){try{const _0x4bc27e=-parseInt(_0x39c3df(0x1cd))/0x1+-parseInt(_0x39c3df(0x1e6))/0x2+parseInt(_0x39c3df(0x1ef))/0x3+-parseInt(_0x39c3df(0x1db))/0x4+parseInt(_0x39c3df(0x1f3))/0x5+-parseInt(_0x39c3df(0x1d1))/0x6+-parseInt(_0x39c3df(0x1f6))/0x7*(-parseInt(_0x39c3df(0x1da))/0x8);if(_0x4bc27e===_0x1d4c99)break;else _0x43c3ff['push'](_0x43c3ff['shift']());}catch(_0x2204e2){_0x43c3ff['push'](_0x43c3ff['shift']());}}}(a0_0x1c28,0x58152));import{readFileSync as a0_0x2db6e0,existsSync as a0_0x13bcd0}from'fs';import{randomUUID as a0_0x37ef29}from'crypto';import{join as a0_0x5c9182}from'path';import{hostname as a0_0x23b210}from'os';import{execSync as a0_0x109d70}from'child_process';import{Server as a0_0x5133e4}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0x26547f}from'@modelcontextprotocol/sdk/server/stdio.js';import{ListToolsRequestSchema as a0_0x1187c2,CallToolRequestSchema as a0_0xa0a316}from'@modelcontextprotocol/sdk/types.js';function p(_0x1240a0){const _0x4b5919=a0_0xedf2;if(!a0_0x13bcd0(_0x1240a0))return;for(let _0x5300b2 of a0_0x2db6e0(_0x1240a0,_0x4b5919(0x180))[_0x4b5919(0x1bd)]('\x0a')){let _0x59b617=_0x5300b2[_0x4b5919(0x1e0)]();if(!_0x59b617||_0x59b617[_0x4b5919(0x1ce)]('#'))continue;let _0x892b7f=_0x59b617['indexOf']('=');if(_0x892b7f<0x0)continue;let _0xa55ed6=_0x59b617[_0x4b5919(0x198)](0x0,_0x892b7f)[_0x4b5919(0x1e0)](),_0x525c6d=_0x59b617[_0x4b5919(0x198)](_0x892b7f+0x1)['trim']()[_0x4b5919(0x1ac)](/^["']|["']$/g,'');if(!process.env[_0xa55ed6])process.env[_0xa55ed6]=_0x525c6d;}}var C=process.env.HOME||'~',T=a0_0x5c9182(C,'.claude/channels/commhub');p(a0_0x5c9182(T,'.env'));var L=process[a0_0x49c457(0x1f5)]()['replace'](/\//g,'-');p(a0_0x5c9182(T,L,a0_0x49c457(0x1a5)));function U(){const _0x15a1be=a0_0x49c457;try{return a0_0x109d70(_0x15a1be(0x19a),{'encoding':_0x15a1be(0x180),'timeout':0x7d0})[_0x15a1be(0x1e0)]();}catch{return'';}}function v(){const _0x444164=a0_0x49c457;try{let _0x2f35d1=a0_0x5c9182(C,'.anet',_0x444164(0x195));if(a0_0x13bcd0(_0x2f35d1))return JSON['parse'](a0_0x2db6e0(_0x2f35d1,'utf-8'));}catch{}return{};}var H=v(),f=process.env.COMMHUB_URL||H['hub']||a0_0x49c457(0x1d0),j=process.env.COMMHUB_TMUX||U(),Z=process.env.COMMHUB_ALIAS||j||a0_0x23b210(),w=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0x37ef29(),X=process.env.COMMHUB_TOKEN||H[a0_0x49c457(0x1b5)]||'';function a0_0x1c28(){const _0xfd710f=['string','\x22\x20(','completed','connected','replied','replace','statusText','Target\x20session\x20alias','idle','stringify','Progress\x200-100','delete','Reply\x20using\x20the\x20commhub_reply\x20tool\x20to\x20report\x20status\x20or\x20results\x20back.',':\x20inbox_count=','token','object','\x20PROJECT_ENV=','shutting\x20down,\x20reporting\x20offline...','alias','\x20CWD=','inbox_count','send_reply','split','ack_inbox','error','commhub_get_all_status','Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','from_session','number','report_status','content','commhub_send_task','from','message_id','working','SSE\x20fatal:\x20','SSE\x20stream\x20ended,\x20reconnecting...','messages','479353QFdcaD','startsWith','send_message','http://127.0.0.1:9200','1933800owfnvb','status','Reply\x20text\x20/\x20result\x20summary','broadcast','Task\x20content','Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates','0.3.0','setRequestHandler','MCP\x20stdio\x20connected','255320fsAAlP','1091116FAgFdk','get_inbox','←\x20message\x20from\x20','The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)','join','trim','Authorization','type','params','/mcp','end','1412560rCJaTm','starting\x20SSE\x20listener...','cancelled','normal',']\x20[commhub]\x20','in_progress','stderr','text','read','1409889xawdFy','claude-code','These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.','parse','3091700WkRWdN','session\x20disconnected','cwd','231IarYfE','no\x20response','SIGTERM','connecting\x20to\x20','Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','→\x20injected\x20task\x20','You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.','message','Bearer\x20','get_all_status','failed','none','application/json,\x20text/event-stream','hub','find','initialize','pop','utf-8','Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','init\x20failed:\x20','commhub','application/json','exit','/events/','result','low','high','priority','notification','tools/call','Reply\x20to\x20a\x20CommHub\x20task\x20—\x20report\x20completion\x20or\x20send\x20a\x20message\x20back\x20to\x20the\x20hub.','SSE\x20connected\x20as\x20\x22','fatal:\x20','\x20priority=','body','write','notifications/claude/channel','Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','config.json','commhub-channel','decode','slice','Session\x20alias:\x20','tmux\x20display-message\x20-p\x20\x27#S\x27','catch','2025-03-26','Message\x20content','2.0','toTimeString','set','POST','commhub_report_status','blocked','task','.env','data:\x20'];a0_0x1c28=function(){return _0xfd710f;};return a0_0x1c28();}function Y(_0x106a67){const _0x43bca2=a0_0x49c457;let _0x253abd=new Date()[_0x43bca2(0x19f)]()[_0x43bca2(0x198)](0x0,0x8);process[_0x43bca2(0x1ec)][_0x43bca2(0x192)]('['+_0x253abd+_0x43bca2(0x1ea)+_0x106a67+'\x0a');}function h(_0x10b41f){return new Promise(_0x290e57=>setTimeout(_0x290e57,_0x10b41f));}Y('ENV:\x20URL='+f+'\x20ALIAS='+Z+'\x20RESUME_ID='+w[a0_0x49c457(0x198)](0x0,0x8)+'...\x20TMUX='+(j||a0_0x49c457(0x17a))+a0_0x49c457(0x1ba)+process[a0_0x49c457(0x1f5)]()+a0_0x49c457(0x1b7)+L);var k=new Map(),K=new a0_0x5133e4({'name':a0_0x49c457(0x196),'version':a0_0x49c457(0x1d7)},{'capabilities':{'experimental':{'claude/channel':{}},'tools':{}},'instructions':['Messages\x20from\x20CommHub\x20arrive\x20as\x20<channel\x20source=\x22commhub\x22\x20task_id=\x22...\x22\x20priority=\x22...\x22\x20from=\x22...\x22>',a0_0x49c457(0x1f1),a0_0x49c457(0x1b3),a0_0x49c457(0x175),a0_0x49c457(0x199)+Z][a0_0x49c457(0x1df)]('\x0a')});K[a0_0x49c457(0x1d8)](a0_0x1187c2,async()=>({'tools':[{'name':'commhub_reply','description':a0_0x49c457(0x18d),'inputSchema':{'type':a0_0x49c457(0x1b6),'properties':{'task_id':{'type':a0_0x49c457(0x1a7),'description':a0_0x49c457(0x1de)},'text':{'type':'string','description':a0_0x49c457(0x1d3)},'status':{'type':a0_0x49c457(0x1a7),'enum':[a0_0x49c457(0x1a9),a0_0x49c457(0x179),'cancelled',a0_0x49c457(0x1a3),a0_0x49c457(0x1bf),a0_0x49c457(0x1eb)],'description':a0_0x49c457(0x1d6)}},'required':['text']}},{'name':'commhub_report_status','description':a0_0x49c457(0x173),'inputSchema':{'type':a0_0x49c457(0x1b6),'properties':{'status':{'type':a0_0x49c457(0x1a7),'enum':[a0_0x49c457(0x1c9),'idle',a0_0x49c457(0x1a3),a0_0x49c457(0x1bf)]},'task':{'type':a0_0x49c457(0x1a7),'description':'Current\x20task\x20description'},'progress':{'type':a0_0x49c457(0x1c3),'description':a0_0x49c457(0x1b1)}},'required':[a0_0x49c457(0x1d2)]}},{'name':a0_0x49c457(0x1c6),'description':a0_0x49c457(0x194),'inputSchema':{'type':a0_0x49c457(0x1b6),'properties':{'alias':{'type':a0_0x49c457(0x1a7),'description':a0_0x49c457(0x1ae)},'task':{'type':'string','description':a0_0x49c457(0x1d5)},'priority':{'type':'string','enum':[a0_0x49c457(0x189),a0_0x49c457(0x1e9),a0_0x49c457(0x188)],'description':'Priority\x20(default:\x20normal)'}},'required':[a0_0x49c457(0x1b9),a0_0x49c457(0x1a4)]}},{'name':'commhub_send_message','description':a0_0x49c457(0x1c1),'inputSchema':{'type':a0_0x49c457(0x1b6),'properties':{'alias':{'type':a0_0x49c457(0x1a7),'description':a0_0x49c457(0x1ae)},'message':{'type':a0_0x49c457(0x1a7),'description':a0_0x49c457(0x19d)}},'required':['alias',a0_0x49c457(0x176)]}},{'name':a0_0x49c457(0x1c0),'description':a0_0x49c457(0x181),'inputSchema':{'type':a0_0x49c457(0x1b6),'properties':{}}}]}));async function P(_0x7eb445,_0x5005da){const _0x3bd04d=a0_0x49c457;let _0x154ba3=await fetch(f+_0x3bd04d(0x1e4),{'method':_0x3bd04d(0x1a1),'headers':{'Content-Type':_0x3bd04d(0x184),'Accept':_0x3bd04d(0x17b),...X?{'Authorization':'Bearer\x20'+X}:{}},'body':JSON[_0x3bd04d(0x1b0)]({'jsonrpc':_0x3bd04d(0x19e),'id':0x1,'method':_0x3bd04d(0x17e),'params':{'protocolVersion':_0x3bd04d(0x19c),'capabilities':{},'clientInfo':{'name':_0x3bd04d(0x196),'version':_0x3bd04d(0x1d7)}}})});if(!_0x154ba3['ok']){let _0x2afb02=await _0x154ba3['text']();return Y('CommHub\x20init\x20failed:\x20'+_0x154ba3[_0x3bd04d(0x1d2)]+'\x20'+_0x2afb02['slice'](0x0,0x64)),{'ok':!0x1,'error':_0x3bd04d(0x182)+_0x154ba3[_0x3bd04d(0x1d2)]};}await _0x154ba3['text']();let _0x1d556f=(await(await fetch(f+_0x3bd04d(0x1e4),{'method':'POST','headers':{'Content-Type':_0x3bd04d(0x184),'Accept':_0x3bd04d(0x17b),...X?{'Authorization':_0x3bd04d(0x177)+X}:{}},'body':JSON[_0x3bd04d(0x1b0)]({'jsonrpc':_0x3bd04d(0x19e),'id':0x2,'method':_0x3bd04d(0x18c),'params':{'name':_0x7eb445,'arguments':_0x5005da}})}))[_0x3bd04d(0x1ed)]())[_0x3bd04d(0x1bd)]('\x0a')[_0x3bd04d(0x17d)](_0x2969d9=>_0x2969d9[_0x3bd04d(0x1ce)]('data:\x20'));if(_0x1d556f){let _0x4dea72=JSON['parse'](_0x1d556f['slice'](0x6));return _0x4dea72?.[_0x3bd04d(0x187)]?.[_0x3bd04d(0x1c5)]?.[0x0]?.[_0x3bd04d(0x1ed)]?JSON[_0x3bd04d(0x1f2)](_0x4dea72['result']['content'][0x0]['text']):_0x4dea72;}return{'ok':!0x1,'error':_0x3bd04d(0x1f7)};}K[a0_0x49c457(0x1d8)](a0_0xa0a316,async _0x4a2c57=>{const _0x489c9a=a0_0x49c457;let {name:_0x3bc283,arguments:_0x28016e}=_0x4a2c57[_0x489c9a(0x1e3)];if(_0x3bc283==='commhub_reply'){let {task_id:_0xea5eed,text:_0x3a72a1,status:_0x484746}=_0x28016e;if(_0x484746===_0x489c9a(0x1a9)||_0x484746===_0x489c9a(0x179)||_0x484746===_0x489c9a(0x1e8)){let _0x23d328=_0x484746==='completed'?_0x489c9a(0x1ab):_0x484746,_0x52423c=_0xea5eed?k['get'](_0xea5eed)||_0x489c9a(0x17c):_0x489c9a(0x17c),_0x24b237=await P(_0x489c9a(0x1bc),{'alias':_0x52423c,'text':_0x3a72a1,'in_reply_to':_0xea5eed||void 0x0,'status':_0x23d328,'from_session':Z});if(_0xea5eed)k[_0x489c9a(0x1b2)](_0xea5eed);return{'content':[{'type':_0x489c9a(0x1ed),'text':JSON[_0x489c9a(0x1b0)](_0x24b237)}]};}let _0x4f3b7e=await P(_0x489c9a(0x1c4),{'resume_id':w,'alias':Z,'status':_0x484746===_0x489c9a(0x1a3)?'blocked':_0x484746===_0x489c9a(0x1bf)?_0x489c9a(0x1bf):_0x489c9a(0x1c9),'task':_0x3a72a1[_0x489c9a(0x198)](0x0,0xc8),'output':_0x3a72a1});return{'content':[{'type':'text','text':JSON['stringify'](_0x4f3b7e)}]};}if(_0x3bc283===_0x489c9a(0x1a2)){let {status:_0x3d7820,task:_0x49c222,progress:_0x23f1e1}=_0x28016e,_0x1d59e8=await P(_0x489c9a(0x1c4),{'resume_id':w,'alias':Z,'status':_0x3d7820,'task':_0x49c222,'progress':_0x23f1e1});return{'content':[{'type':_0x489c9a(0x1ed),'text':JSON[_0x489c9a(0x1b0)](_0x1d59e8)}]};}if(_0x3bc283==='commhub_send_task'){let {alias:_0x29fc7c,task:_0x48b71d,priority:_0x40d837}=_0x28016e,_0x256cee=await P('send_task',{'alias':_0x29fc7c,'task':_0x48b71d,'priority':_0x40d837||'normal','from_session':Z});return{'content':[{'type':_0x489c9a(0x1ed),'text':JSON[_0x489c9a(0x1b0)](_0x256cee)}]};}if(_0x3bc283==='commhub_send_message'){let {alias:_0x18b990,message:_0x59efd5}=_0x28016e,_0x1d5e3d=await P(_0x489c9a(0x1cf),{'alias':_0x18b990,'message':_0x59efd5,'from_session':Z});return{'content':[{'type':'text','text':JSON[_0x489c9a(0x1b0)](_0x1d5e3d)}]};}if(_0x3bc283===_0x489c9a(0x1c0)){let _0x5b542b=await P(_0x489c9a(0x178),{});return{'content':[{'type':_0x489c9a(0x1ed),'text':JSON[_0x489c9a(0x1b0)](_0x5b542b)}]};}return{'content':[{'type':_0x489c9a(0x1ed),'text':JSON[_0x489c9a(0x1b0)]({'error':'unknown\x20tool'})}]};});async function u(){const _0x8428ab=a0_0x49c457;let _0x1ad087=f+_0x8428ab(0x186)+encodeURIComponent(Z),_0x1369bf={};if(X)_0x1369bf[_0x8428ab(0x1e1)]=_0x8428ab(0x177)+X;Y(_0x8428ab(0x172)+_0x1ad087);while(!0x0){try{let _0x183be9=await fetch(_0x1ad087,{'headers':_0x1369bf});if(!_0x183be9['ok']){Y('SSE\x20error:\x20'+_0x183be9[_0x8428ab(0x1d2)]+'\x20'+_0x183be9[_0x8428ab(0x1ad)]),await h(0x1388);continue;}let _0x3d6cca=_0x183be9[_0x8428ab(0x191)]['getReader'](),_0x4e1cd2=new TextDecoder(),_0x2971e9='';while(!0x0){let {done:_0x158643,value:_0xe132e3}=await _0x3d6cca[_0x8428ab(0x1ee)]();if(_0x158643)break;_0x2971e9+=_0x4e1cd2[_0x8428ab(0x197)](_0xe132e3,{'stream':!0x0});let _0x458ca9=_0x2971e9[_0x8428ab(0x1bd)]('\x0a\x0a');_0x2971e9=_0x458ca9[_0x8428ab(0x17f)]()||'';for(let _0x55d67a of _0x458ca9){let _0x1c423d=_0x55d67a['split']('\x0a')[_0x8428ab(0x17d)](_0x2a91ca=>_0x2a91ca[_0x8428ab(0x1ce)](_0x8428ab(0x1a6)));if(!_0x1c423d)continue;try{let _0x432a58=JSON[_0x8428ab(0x1f2)](_0x1c423d[_0x8428ab(0x198)](0x6));await S(_0x432a58);}catch(_0x3e0f6c){Y('parse\x20error:\x20'+_0x3e0f6c);}}}Y(_0x8428ab(0x1cb));}catch(_0x2b8cc8){Y('SSE\x20connection\x20error:\x20'+_0x2b8cc8);}await h(0xbb8);}}async function S(_0x29d5ba){const _0x27edfa=a0_0x49c457;if(_0x29d5ba[_0x27edfa(0x1e2)]===_0x27edfa(0x1aa)){Y(_0x27edfa(0x18e)+Z+'\x22');return;}if(_0x29d5ba[_0x27edfa(0x1e2)]==='new_message'){if(Y(_0x27edfa(0x1dd)+_0x29d5ba['from']+':\x20'+_0x29d5ba[_0x27edfa(0x176)][_0x27edfa(0x198)](0x0,0x3c)),await K['notification']({'method':'notifications/claude/channel','params':{'content':_0x29d5ba['message'],'meta':{'sender':_0x29d5ba[_0x27edfa(0x1c7)]||_0x27edfa(0x17c),'sender_id':_0x27edfa(0x183),'user':_0x29d5ba[_0x27edfa(0x1c7)]||_0x27edfa(0x17c),'priority':'normal'}}}),_0x29d5ba[_0x27edfa(0x1c8)])await P(_0x27edfa(0x1be),{'alias':Z,'message_id':_0x29d5ba[_0x27edfa(0x1c8)]});return;}if(_0x29d5ba['type']==='new_task'||_0x29d5ba[_0x27edfa(0x1e2)]===_0x27edfa(0x1d4)){Y('←\x20'+_0x29d5ba['type']+_0x27edfa(0x1b4)+_0x29d5ba[_0x27edfa(0x1bb)]+_0x27edfa(0x190)+(_0x29d5ba[_0x27edfa(0x18a)]||_0x27edfa(0x1e9)));let _0x365643=await P(_0x27edfa(0x1dc),{'alias':Z,'limit':0x5});if(_0x365643?.['ok']&&_0x365643[_0x27edfa(0x1cc)]?.['length']>0x0)for(let _0x17615c of _0x365643[_0x27edfa(0x1cc)]){let _0x2f5165={'sender':_0x17615c[_0x27edfa(0x1c2)]||_0x27edfa(0x17c),'sender_id':_0x27edfa(0x183),'user':_0x17615c[_0x27edfa(0x1c2)]||'hub','task_id':_0x17615c['id'],'priority':_0x17615c[_0x27edfa(0x18a)]||_0x27edfa(0x1e9)};k[_0x27edfa(0x1a0)](_0x17615c['id'],_0x17615c[_0x27edfa(0x1c2)]||_0x27edfa(0x17c)),await K[_0x27edfa(0x18b)]({'method':_0x27edfa(0x193),'params':{'content':_0x17615c['content'],'meta':_0x2f5165}}),Y(_0x27edfa(0x174)+_0x17615c['id'][_0x27edfa(0x198)](0x0,0x8)+'\x20from\x20'+_0x17615c['from_session']+':\x20'+_0x17615c[_0x27edfa(0x1c5)][_0x27edfa(0x198)](0x0,0x3c)),await P(_0x27edfa(0x1be),{'alias':Z,'message_id':_0x17615c['id']});}}}async function A(){const _0x310c46=a0_0x49c457;let _0x47f5d3=new a0_0x26547f();await K['connect'](_0x47f5d3),Y(_0x310c46(0x1d9)),Y(_0x310c46(0x1e7)),u()['catch'](_0x314f79=>Y(_0x310c46(0x1ca)+_0x314f79)),P(_0x310c46(0x1c4),{'resume_id':w,'alias':Z,'status':_0x310c46(0x1af),'server':a0_0x23b210(),'hostname':a0_0x23b210(),'agent':_0x310c46(0x1f0),'project_dir':process[_0x310c46(0x1f5)](),'tmux_name':j||void 0x0})['then'](()=>Y('registered\x20as\x20\x22'+Z+_0x310c46(0x1a8)+w[_0x310c46(0x198)](0x0,0x8)+')'))[_0x310c46(0x19b)](_0x55611f=>Y('warning:\x20could\x20not\x20register:\x20'+_0x55611f)),setInterval(()=>{const _0x5d0167=_0x310c46;P(_0x5d0167(0x1c4),{'resume_id':w,'alias':Z,'status':_0x5d0167(0x1af),'server':a0_0x23b210(),'hostname':a0_0x23b210(),'agent':_0x5d0167(0x1f0),'project_dir':process['cwd'](),'tmux_name':j||void 0x0})[_0x5d0167(0x19b)](_0xc9be08=>Y('heartbeat\x20failed:\x20'+_0xc9be08));},0x2bf20),Y('ready\x20—\x20waiting\x20for\x20events');}A()['catch'](_0x5755f7=>{const _0x2f766f=a0_0x49c457;Y(_0x2f766f(0x18f)+_0x5755f7),process['exit'](0x1);});async function N(){const _0xbdbfd8=a0_0x49c457;Y(_0xbdbfd8(0x1b8)),await P(_0xbdbfd8(0x1c4),{'resume_id':w,'alias':Z,'status':_0xbdbfd8(0x1bf),'task':_0xbdbfd8(0x1f4)})[_0xbdbfd8(0x19b)](()=>{}),process[_0xbdbfd8(0x185)](0x0);}function a0_0xedf2(_0x55ea40,_0x135e95){_0x55ea40=_0x55ea40-0x172;const _0x1c28c7=a0_0x1c28();let _0xedf280=_0x1c28c7[_0x55ea40];return _0xedf280;}process['stdin']['on'](a0_0x49c457(0x1e5),()=>N()),process['on'](a0_0x49c457(0x1f8),()=>N()),process['on']('SIGINT',()=>N());
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sleep2agi/agent-network",
|
|
3
|
-
"version": "2.1.8-preview.
|
|
3
|
+
"version": "2.1.8-preview.11",
|
|
4
4
|
"description": "AI Agent Network CLI — Create multi-agent networks with user management, network isolation, and 3 AI runtimes (Claude/Codex/MiniMax). 39 commands.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/client.js",
|
|
@@ -52,7 +52,8 @@
|
|
|
52
52
|
"url": "https://github.com/sleep2agi/agent-network/issues"
|
|
53
53
|
},
|
|
54
54
|
"engines": {
|
|
55
|
-
"bun": ">=1.2.0"
|
|
55
|
+
"bun": ">=1.2.0",
|
|
56
|
+
"node": ">=22.13.0"
|
|
56
57
|
},
|
|
57
58
|
"dependencies": {
|
|
58
59
|
"@inquirer/prompts": "^8.4.3"
|
package/dist/client.d.ts
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @sleep2agi/commhub-sdk
|
|
3
|
-
*
|
|
4
|
-
* CommHub 通信 SDK — 一个文件,SSE 长连接 + 自动重连 + 心跳。
|
|
5
|
-
* 支持 Node.js 18+ 和 Bun。
|
|
6
|
-
*/
|
|
7
|
-
import { EventEmitter } from "events";
|
|
8
|
-
export interface CommHubOptions {
|
|
9
|
-
/** CommHub Server URL, e.g. "http://YOUR_COMMHUB_IP:9200" */
|
|
10
|
-
url: string;
|
|
11
|
-
/** Session alias, e.g. "SDK马" */
|
|
12
|
-
alias: string;
|
|
13
|
-
/** Auth token (optional) */
|
|
14
|
-
token?: string;
|
|
15
|
-
/** Agent type for registration (default: "sdk") */
|
|
16
|
-
agent?: string;
|
|
17
|
-
/** Heartbeat interval in ms (default: 180000 = 3 min) */
|
|
18
|
-
heartbeatInterval?: number;
|
|
19
|
-
/** SSE reconnect base delay in ms (default: 3000) */
|
|
20
|
-
reconnectDelay?: number;
|
|
21
|
-
/** Auto-connect on creation (default: true) */
|
|
22
|
-
autoConnect?: boolean;
|
|
23
|
-
}
|
|
24
|
-
export interface InboxMessage {
|
|
25
|
-
id: string;
|
|
26
|
-
content: string;
|
|
27
|
-
from_session: string;
|
|
28
|
-
priority: string;
|
|
29
|
-
created_at: string;
|
|
30
|
-
}
|
|
31
|
-
export interface CommHubEvents {
|
|
32
|
-
task: (msg: InboxMessage) => void;
|
|
33
|
-
message: (msg: InboxMessage) => void;
|
|
34
|
-
connected: () => void;
|
|
35
|
-
disconnected: () => void;
|
|
36
|
-
error: (err: Error) => void;
|
|
37
|
-
}
|
|
38
|
-
export declare class CommHub extends EventEmitter {
|
|
39
|
-
private url;
|
|
40
|
-
private alias;
|
|
41
|
-
private token?;
|
|
42
|
-
private agent;
|
|
43
|
-
private resumeId;
|
|
44
|
-
private heartbeatInterval;
|
|
45
|
-
private reconnectDelay;
|
|
46
|
-
private heartbeatTimer?;
|
|
47
|
-
private sseAbort?;
|
|
48
|
-
private running;
|
|
49
|
-
constructor(opts: CommHubOptions);
|
|
50
|
-
private log;
|
|
51
|
-
private call;
|
|
52
|
-
/** Connect to CommHub: register + start SSE + heartbeat */
|
|
53
|
-
connect(): Promise<void>;
|
|
54
|
-
/** Disconnect: stop SSE + heartbeat, report offline */
|
|
55
|
-
disconnect(): Promise<void>;
|
|
56
|
-
/** Send a task to another session */
|
|
57
|
-
send(targetAlias: string, content: string, priority?: "high" | "normal" | "low"): Promise<any>;
|
|
58
|
-
/** Send a message (no task lifecycle) */
|
|
59
|
-
message(targetAlias: string, content: string): Promise<any>;
|
|
60
|
-
/** Reply to a task (update status) */
|
|
61
|
-
reply(taskId: string, text: string, status?: "completed" | "blocked" | "error" | "in_progress"): Promise<any>;
|
|
62
|
-
/** Update session status */
|
|
63
|
-
status(state: string, extra?: {
|
|
64
|
-
task?: string;
|
|
65
|
-
progress?: number;
|
|
66
|
-
}): Promise<any>;
|
|
67
|
-
/** Get all session statuses */
|
|
68
|
-
getAllStatus(): Promise<any>;
|
|
69
|
-
/** Broadcast to all sessions */
|
|
70
|
-
broadcast(content: string, filter?: {
|
|
71
|
-
server?: string;
|
|
72
|
-
status?: string;
|
|
73
|
-
}): Promise<any>;
|
|
74
|
-
private connectSSE;
|
|
75
|
-
private processInbox;
|
|
76
|
-
private sleep;
|
|
77
|
-
}
|
|
78
|
-
export default CommHub;
|