@sleep2agi/agent-network 2.3.0-preview.37 → 2.3.0-preview.38
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/im/feishu/worker.js +163 -154
- package/dist/src/node-server.js +1 -1
- package/package.json +1 -1
package/dist/src/node-server.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
-
const a0_0x2c4552=a0_0x3be1;(function(_0x2cbe21,_0x1a2a66){const _0x1c4e5d=a0_0x3be1,_0x339a5d=_0x2cbe21();while(!![]){try{const _0x1f49e4=parseInt(_0x1c4e5d(0x1ad))/0x1*(-parseInt(_0x1c4e5d(0x224))/0x2)+-parseInt(_0x1c4e5d(0x1d9))/0x3*(-parseInt(_0x1c4e5d(0x217))/0x4)+-parseInt(_0x1c4e5d(0x1f9))/0x5*(parseInt(_0x1c4e5d(0x1f2))/0x6)+-parseInt(_0x1c4e5d(0x182))/0x7*(parseInt(_0x1c4e5d(0x21d))/0x8)+-parseInt(_0x1c4e5d(0x21e))/0x9*(-parseInt(_0x1c4e5d(0x1e1))/0xa)+-parseInt(_0x1c4e5d(0x1c1))/0xb*(-parseInt(_0x1c4e5d(0x215))/0xc)+parseInt(_0x1c4e5d(0x1e5))/0xd*(parseInt(_0x1c4e5d(0x1cd))/0xe);if(_0x1f49e4===_0x1a2a66)break;else _0x339a5d['push'](_0x339a5d['shift']());}catch(_0x810d97){_0x339a5d['push'](_0x339a5d['shift']());}}}(a0_0x2318,0xc76e4));import{readFileSync as a0_0x4289c7,existsSync as a0_0x16af32}from'fs';import{randomUUID as a0_0x1c158b}from'crypto';import{join as a0_0x453f6b}from'path';function a0_0x2318(){const _0x30202e=['cwd','...\x20TMUX=','13610qJEaMx','body','setRequestHandler','length','16123341CRAGpF','utf-8','commhub_report_status','(none)','\x22\x20(','\x20\x20•\x20If\x20the\x20sender\x20is\x20another\x20agent\x20node\x20(from\x20CommHub,\x20from\x20your\x20peer\x27s\x20session\x20alias),\x20reply\x20with\x20commhub_send_task(alias=\x22<their\x20alias>\x22,\x20task=\x22<your\x20reply>\x22).\x20This\x20creates\x20a\x20new\x20routable\x20task\x20that\x20wakes\x20the\x20peer\x20via\x20new_task\x20SSE\x20so\x20they\x20process\x20it.\x20commhub_reply\x20does\x20NOT\x20wake\x20agent\x20peers\x20—\x20they\x27d\x20only\x20see\x20it\x20on\x20the\x20next\x20inbox\x20poll\x20(Vincent\x202026-07-28\x20全网规则).','\x20no\x20longer\x20exists\x20(kill-0\x20ESRCH)\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat','session\x20disconnected','warning:\x20could\x20not\x20register:\x20','from_session','stderr','send_message','replied','4261950YzhiJe','task','idle','from','.claude/channels/commhub','Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','would\x20mis-attribute.\x20Refusing\x20to\x20guess\x20from\x20TMUX_NAME=','5wsSxJW','connected','code','MCP\x20stdio\x20connected','startsWith','\x20\x20•\x20Only\x20use\x20commhub_reply\x20when\x20the\x20sender\x20is\x20the\x20Dashboard/UI\x20(task_id\x20came\x20from\x20a\x20browser\x20chat).\x20Use\x20status=\x22completed\x22\x20(terminal)\x20so\x20send_reply\x20routes\x20it,\x20updates\x20the\x20task\x20row\x20(Dashboard\x20displays\x20it),\x20and\x20emits\x20new_reply\x20SSE\x20for\x20the\x20live\x20Dashboard\x20viewer.\x20Non-terminal\x20status\x20(in_progress/blocked/error)\x20just\x20updates\x20your\x20session\x20status\x20and\x20does\x20NOT\x20reach\x20the\x20Dashboard.','claude-code','Priority\x20(default:\x20normal)','get','Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates','registered\x20as\x20\x22','write','SIGTERM','string','ENV:\x20URL=','SIGINT','no\x20response','commhub','commhub_send_message','SSE\x20连续\x20>1h\x20连不上\x20hub\x20(','slice','decode','high',':\x20inbox_count=','message_id','unref','failed','re-register\x20failed:\x20','216poWawz','blocked','4sBHLzO','Reply\x20to\x20a\x20Dashboard/UI-originated\x20CommHub\x20task.\x20⚠\x20For\x20agent-to-agent\x20replies\x20use\x20commhub_send_task\x20instead\x20—\x20commhub_reply\x20does\x20NOT\x20wake\x20agent\x20peers\x20via\x20SSE\x20(Vincent\x202026-07-28\x20全网规则).\x20status=\x22completed\x22\x20(terminal)\x20routes\x20to\x20send_reply\x20and\x20emits\x20new_reply\x20SSE\x20for\x20the\x20live\x20Dashboard;\x20non-terminal\x20status\x20(in_progress/blocked/error)\x20only\x20updates\x20session\x20status\x20(report_status)\x20and\x20does\x20NOT\x20reach\x20the\x20Dashboard.','read','report_status','.\x20Restart\x20node\x20via\x20`anet\x20node\x20start\x20<alias>`\x20so\x20the\x20env\x20is\x20set\x20explicitly\x20(#203).\x0a','commhub_get_all_status','8JFLiOK','3285CyCRFz','tmux\x20display-message\x20-p\x20\x27#S\x27',']\x20[commhub]\x20','send_reply','offline','pop','242618FQXzXr','catch','ack_inbox','result','2025-03-26','Messages\x20from\x20CommHub\x20arrive\x20as\x20<channel\x20source=\x22commhub\x22\x20task_id=\x22...\x22\x20priority=\x22...\x22\x20from=\x22...\x22>','join','5474798HBQJwr','fatal:\x20','get_inbox','statusText','error','ESRCH','priority','notifications/claude/channel','new_task','token','working','replace','content','commhub_reply','\x20RESUME_ID=','send_task','now','[commhub]\x20WARN:\x20COMMHUB_ALIAS\x20env\x20var\x20is\x20unset\x20—\x20outbound\x20from_session\x20','\x20CWD=','.env','0.3.0','split','connect','commhub-channel','Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','CommHub\x20init\x20failed:\x20','application/json','config.json','Current\x20task\x20description','inbox_count','exit','find','\x22\x20after\x20SSE\x20reconnect','\x20from\x20','delete','SSE\x20connection\x20error:\x20','SSE\x20error:\x20','hub','These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.','stdin','Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','kill','normal','12IGXfmw','ppid',')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。','←\x20message\x20from\x20','Task\x20content','type','SSE\x20connected\x20as\x20\x22','Progress\x200-100','→\x20injected\x20task\x20','shutting\x20down,\x20reporting\x20offline...','You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.','status','Authorization','POST','heartbeat\x20failed:\x20','completed','data:\x20','pid','text','unknown\x20tool','380589XZKlfy','min','notification','\x20/\x20hostname=','new_message','in_progress','stringify','application/json,\x20text/event-stream','starting\x20SSE\x20listener...','SSE\x20fatal:\x20','parse','message','14YQWtlw','get_all_status','messages','unknown',')\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat','trim','Session\x20alias:\x20','then','Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','object','The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)','params','4215633qBJyLm','init\x20failed:\x20','\x20PROJECT_ENV=','http://127.0.0.1:9200','alias','Target\x20session\x20alias'];a0_0x2318=function(){return _0x30202e;};return a0_0x2318();}import{hostname as a0_0x2b7f10}from'os';import{execSync as a0_0x3a9435}from'child_process';function B(_0x4d6419){const _0x4ca303=a0_0x3be1;let _0x389a94=_0x4d6419['replace'](/[^a-zA-Z0-9\-_]/g,'-');return _0x389a94===''?_0x4ca303(0x1d0):_0x389a94;}import{Server as a0_0x4fdfae}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0x2e972b}from'@modelcontextprotocol/sdk/server/stdio.js';import{ListToolsRequestSchema as a0_0x38cfb7,CallToolRequestSchema as a0_0x1b6d63}from'@modelcontextprotocol/sdk/types.js';function T(_0x19bbfe){const _0x34c8e5=a0_0x3be1;if(!a0_0x16af32(_0x19bbfe))return;for(let _0x30d49b of a0_0x4289c7(_0x19bbfe,_0x34c8e5(0x1e6))[_0x34c8e5(0x197)]('\x0a')){let _0x4b021e=_0x30d49b['trim']();if(!_0x4b021e||_0x4b021e[_0x34c8e5(0x1fd)]('#'))continue;let _0x1e85e4=_0x4b021e['indexOf']('=');if(_0x1e85e4<0x0)continue;let _0xde92f8=_0x4b021e[_0x34c8e5(0x20d)](0x0,_0x1e85e4)['trim'](),_0x58c892=_0x4b021e[_0x34c8e5(0x20d)](_0x1e85e4+0x1)['trim']()[_0x34c8e5(0x18d)](/^["']|["']$/g,'');if(!process.env[_0xde92f8])process.env[_0xde92f8]=_0x58c892;}}var C=process.env.HOME||'~',r=a0_0x453f6b(C,a0_0x2c4552(0x1f6));T(a0_0x453f6b(r,'.env'));var H=B(process[a0_0x2c4552(0x1df)]());T(a0_0x453f6b(r,H,a0_0x2c4552(0x195)));function E(){const _0x4f6673=a0_0x2c4552;try{return a0_0x3a9435(_0x4f6673(0x21f),{'encoding':_0x4f6673(0x1e6),'timeout':0x7d0})[_0x4f6673(0x1d2)]();}catch{return'';}}function _(){const _0x4fa482=a0_0x2c4552;try{let _0x871d9e=a0_0x453f6b(C,'.anet',_0x4fa482(0x19d));if(a0_0x16af32(_0x871d9e))return JSON[_0x4fa482(0x1cb)](a0_0x4289c7(_0x871d9e,'utf-8'));}catch{}return{};}function a0_0x3be1(_0x51ae3a,_0x1a29bd){_0x51ae3a=_0x51ae3a-0x17e;const _0x231827=a0_0x2318();let _0x3be1fc=_0x231827[_0x51ae3a];return _0x3be1fc;}var R=_(),Y=process.env.COMMHUB_URL||R['hub']||a0_0x2c4552(0x1dc),j=process.env.COMMHUB_TMUX||E();function S(){const _0x5ad3c4=a0_0x2c4552;if(process.env.COMMHUB_ALIAS&&process.env.COMMHUB_ALIAS[_0x5ad3c4(0x1d2)]())return process.env.COMMHUB_ALIAS[_0x5ad3c4(0x1d2)]();return process[_0x5ad3c4(0x1ef)][_0x5ad3c4(0x204)](_0x5ad3c4(0x193)+(_0x5ad3c4(0x1f8)+(j||_0x5ad3c4(0x1e8))+_0x5ad3c4(0x1c4)+a0_0x2b7f10()+_0x5ad3c4(0x21b))),'unattributed-'+process[_0x5ad3c4(0x1be)];}var p=S(),V=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0x1c158b(),k=process.env.COMMHUB_TOKEN||R[a0_0x2c4552(0x18b)]||'';function z(_0x30b81c){const _0x45e3a4=a0_0x2c4552;let _0x34a07c=new Date()['toTimeString']()[_0x45e3a4(0x20d)](0x0,0x8);process['stderr'][_0x45e3a4(0x204)]('['+_0x34a07c+_0x45e3a4(0x220)+_0x30b81c+'\x0a');}function i(_0x16344d){return new Promise(_0x31e5f7=>setTimeout(_0x31e5f7,_0x16344d));}z(a0_0x2c4552(0x207)+Y+'\x20ALIAS='+p+a0_0x2c4552(0x190)+V[a0_0x2c4552(0x20d)](0x0,0x8)+a0_0x2c4552(0x1e0)+(j||'none')+a0_0x2c4552(0x194)+process[a0_0x2c4552(0x1df)]()+a0_0x2c4552(0x1db)+H);var G=new Map(),K=new a0_0x4fdfae({'name':a0_0x2c4552(0x199),'version':'0.3.0'},{'capabilities':{'experimental':{'claude/channel':{}},'tools':{}},'instructions':[a0_0x2c4552(0x180),a0_0x2c4552(0x1a8),'Reply\x20routing\x20(IMPORTANT\x20—\x20the\x20tool\x20you\x20pick\x20determines\x20whether\x20the\x20receiver\x20actually\x20gets\x20woken\x20up):',a0_0x2c4552(0x1ea),a0_0x2c4552(0x1fe),a0_0x2c4552(0x1b7),a0_0x2c4552(0x1d3)+p][a0_0x2c4552(0x181)]('\x0a')});K[a0_0x2c4552(0x1e3)](a0_0x38cfb7,async()=>({'tools':[{'name':a0_0x2c4552(0x18f),'description':a0_0x2c4552(0x218),'inputSchema':{'type':'object','properties':{'task_id':{'type':a0_0x2c4552(0x206),'description':a0_0x2c4552(0x1d7)},'text':{'type':a0_0x2c4552(0x206),'description':'Reply\x20text\x20/\x20result\x20summary'},'status':{'type':a0_0x2c4552(0x206),'enum':['completed',a0_0x2c4552(0x213),'cancelled',a0_0x2c4552(0x216),'error',a0_0x2c4552(0x1c6)],'description':a0_0x2c4552(0x202)}},'required':[a0_0x2c4552(0x1bf)]}},{'name':a0_0x2c4552(0x1e7),'description':a0_0x2c4552(0x19a),'inputSchema':{'type':'object','properties':{'status':{'type':a0_0x2c4552(0x206),'enum':[a0_0x2c4552(0x18c),a0_0x2c4552(0x1f4),a0_0x2c4552(0x216),a0_0x2c4552(0x186)]},'task':{'type':a0_0x2c4552(0x206),'description':a0_0x2c4552(0x19e)},'progress':{'type':'number','description':a0_0x2c4552(0x1b4)}},'required':[a0_0x2c4552(0x1b8)]}},{'name':'commhub_send_task','description':a0_0x2c4552(0x1d5),'inputSchema':{'type':a0_0x2c4552(0x1d6),'properties':{'alias':{'type':'string','description':'Target\x20session\x20alias'},'task':{'type':a0_0x2c4552(0x206),'description':a0_0x2c4552(0x1b1)},'priority':{'type':'string','enum':[a0_0x2c4552(0x20f),a0_0x2c4552(0x1ac),'low'],'description':a0_0x2c4552(0x200)}},'required':[a0_0x2c4552(0x1dd),a0_0x2c4552(0x1f3)]}},{'name':a0_0x2c4552(0x20b),'description':a0_0x2c4552(0x1f7),'inputSchema':{'type':'object','properties':{'alias':{'type':a0_0x2c4552(0x206),'description':a0_0x2c4552(0x1de)},'message':{'type':'string','description':'Message\x20content'}},'required':[a0_0x2c4552(0x1dd),a0_0x2c4552(0x1cc)]}},{'name':a0_0x2c4552(0x21c),'description':a0_0x2c4552(0x1aa),'inputSchema':{'type':a0_0x2c4552(0x1d6),'properties':{}}}]}));async function Q(_0x3c66b9,_0xbbd1ce){const _0x165339=a0_0x2c4552;let _0x3f7358=await fetch(Y+'/mcp',{'method':_0x165339(0x1ba),'headers':{'Content-Type':_0x165339(0x19c),'Accept':_0x165339(0x1c8),...k?{'Authorization':'Bearer\x20'+k}:{}},'body':JSON[_0x165339(0x1c7)]({'jsonrpc':'2.0','id':0x1,'method':'initialize','params':{'protocolVersion':_0x165339(0x17f),'capabilities':{},'clientInfo':{'name':_0x165339(0x199),'version':_0x165339(0x196)}}})});if(!_0x3f7358['ok']){let _0x22caed=await _0x3f7358['text']();return z(_0x165339(0x19b)+_0x3f7358[_0x165339(0x1b8)]+'\x20'+_0x22caed[_0x165339(0x20d)](0x0,0x64)),{'ok':!0x1,'error':_0x165339(0x1da)+_0x3f7358[_0x165339(0x1b8)]};}await _0x3f7358['text']();let _0x3a4d87=(await(await fetch(Y+'/mcp',{'method':_0x165339(0x1ba),'headers':{'Content-Type':_0x165339(0x19c),'Accept':_0x165339(0x1c8),...k?{'Authorization':'Bearer\x20'+k}:{}},'body':JSON['stringify']({'jsonrpc':'2.0','id':0x2,'method':'tools/call','params':{'name':_0x3c66b9,'arguments':_0xbbd1ce}})}))[_0x165339(0x1bf)]())[_0x165339(0x197)]('\x0a')['find'](_0x5027b8=>_0x5027b8[_0x165339(0x1fd)](_0x165339(0x1bd)));if(_0x3a4d87){let _0x3dd1fb=JSON['parse'](_0x3a4d87[_0x165339(0x20d)](0x6));return _0x3dd1fb?.[_0x165339(0x17e)]?.[_0x165339(0x18e)]?.[0x0]?.[_0x165339(0x1bf)]?JSON[_0x165339(0x1cb)](_0x3dd1fb['result'][_0x165339(0x18e)][0x0][_0x165339(0x1bf)]):_0x3dd1fb;}return{'ok':!0x1,'error':_0x165339(0x209)};}K[a0_0x2c4552(0x1e3)](a0_0x1b6d63,async _0x154a65=>{const _0x541d6a=a0_0x2c4552;let {name:_0x31a92d,arguments:_0x41a2ab}=_0x154a65[_0x541d6a(0x1d8)];if(_0x31a92d===_0x541d6a(0x18f)){let {task_id:_0x5da221,text:_0x1c0b97,status:_0x294e69}=_0x41a2ab;if(_0x294e69===_0x541d6a(0x1bc)||_0x294e69===_0x541d6a(0x213)||_0x294e69==='cancelled'){let _0x20911b=_0x294e69===_0x541d6a(0x1bc)?_0x541d6a(0x1f1):_0x294e69,_0x4c4240=_0x5da221?G[_0x541d6a(0x201)](_0x5da221)||'hub':'hub',_0x145383=await Q(_0x541d6a(0x221),{'alias':_0x4c4240,'text':_0x1c0b97,'in_reply_to':_0x5da221||void 0x0,'status':_0x20911b,'from_session':p});if(_0x5da221)G[_0x541d6a(0x1a4)](_0x5da221);return{'content':[{'type':'text','text':JSON[_0x541d6a(0x1c7)](_0x145383)}]};}let _0x198239=await Q(_0x541d6a(0x21a),{'resume_id':V,'alias':p,'status':_0x294e69===_0x541d6a(0x216)?'blocked':_0x294e69===_0x541d6a(0x186)?_0x541d6a(0x186):'working','task':_0x1c0b97[_0x541d6a(0x20d)](0x0,0xc8),'output':_0x1c0b97});return{'content':[{'type':_0x541d6a(0x1bf),'text':JSON[_0x541d6a(0x1c7)](_0x198239)}]};}if(_0x31a92d==='commhub_report_status'){let {status:_0xbc30f3,task:_0x593395,progress:_0x559b26}=_0x41a2ab,_0x251fe7=await Q('report_status',{'resume_id':V,'alias':p,'status':_0xbc30f3,'task':_0x593395,'progress':_0x559b26});return{'content':[{'type':'text','text':JSON['stringify'](_0x251fe7)}]};}if(_0x31a92d==='commhub_send_task'){let {alias:_0x27c473,task:_0x56202c,priority:_0x10f37e}=_0x41a2ab,_0x44b444=await Q(_0x541d6a(0x191),{'alias':_0x27c473,'task':_0x56202c,'priority':_0x10f37e||_0x541d6a(0x1ac),'from_session':p});return{'content':[{'type':_0x541d6a(0x1bf),'text':JSON[_0x541d6a(0x1c7)](_0x44b444)}]};}if(_0x31a92d===_0x541d6a(0x20b)){let {alias:_0x5245d0,message:_0x5e246d}=_0x41a2ab,_0x2ce042=await Q(_0x541d6a(0x1f0),{'alias':_0x5245d0,'message':_0x5e246d,'from_session':p});return{'content':[{'type':_0x541d6a(0x1bf),'text':JSON[_0x541d6a(0x1c7)](_0x2ce042)}]};}if(_0x31a92d==='commhub_get_all_status'){let _0x5a7c9e=await Q(_0x541d6a(0x1ce),{});return{'content':[{'type':'text','text':JSON[_0x541d6a(0x1c7)](_0x5a7c9e)}]};}return{'content':[{'type':_0x541d6a(0x1bf),'text':JSON[_0x541d6a(0x1c7)]({'error':_0x541d6a(0x1c0)})}]};});var D=0x3e8,v=0x7530,O=0x36ee80;async function m(){const _0x3e275d=a0_0x2c4552;try{await Q('report_status',{'resume_id':V,'alias':p,'status':'idle','server':a0_0x2b7f10(),'hostname':a0_0x2b7f10(),'agent':_0x3e275d(0x1ff),'project_dir':process[_0x3e275d(0x1df)](),'tmux_name':j||void 0x0}),z('re-registered\x20as\x20\x22'+p+_0x3e275d(0x1a2));}catch(_0x5c2899){z(_0x3e275d(0x214)+_0x5c2899);}}async function l(){const _0x5f560d=a0_0x2c4552;let _0xc2e708=Y+'/events/'+encodeURIComponent(p),_0x3041ab={};if(k)_0x3041ab[_0x5f560d(0x1b9)]='Bearer\x20'+k;z('connecting\x20to\x20'+_0xc2e708);let _0x5bb519=D,_0x467333=!0x0,_0x5a889c=null;while(!0x0){try{let _0x5b3cdd=await fetch(_0xc2e708,{'headers':_0x3041ab});if(!_0x5b3cdd['ok']){if(z(_0x5f560d(0x1a6)+_0x5b3cdd[_0x5f560d(0x1b8)]+'\x20'+_0x5b3cdd[_0x5f560d(0x185)]),_0x5a889c=_0x5a889c??Date['now'](),Date['now']()-_0x5a889c>O){z(_0x5f560d(0x20c)+Y+_0x5f560d(0x1af));return;}await i(_0x5bb519),_0x5bb519=Math[_0x5f560d(0x1c2)](_0x5bb519*0x2,v);continue;}let _0x7459c4=_0x5b3cdd[_0x5f560d(0x1e2)]['getReader'](),_0x620e50=new TextDecoder(),_0x1e778f='';_0x5bb519=D;while(!0x0){let {done:_0x5a9faf,value:_0x479f88}=await _0x7459c4[_0x5f560d(0x219)]();if(_0x5a9faf)break;_0x1e778f+=_0x620e50[_0x5f560d(0x20e)](_0x479f88,{'stream':!0x0});let _0x39ee81=_0x1e778f[_0x5f560d(0x197)]('\x0a\x0a');_0x1e778f=_0x39ee81[_0x5f560d(0x223)]()||'';for(let _0x23cf8d of _0x39ee81){let _0x5327da=_0x23cf8d[_0x5f560d(0x197)]('\x0a')[_0x5f560d(0x1a1)](_0x3f0030=>_0x3f0030[_0x5f560d(0x1fd)](_0x5f560d(0x1bd)));if(!_0x5327da)continue;try{let _0x3d3dbb=JSON[_0x5f560d(0x1cb)](_0x5327da[_0x5f560d(0x20d)](0x6));if(await A(_0x3d3dbb),_0x3d3dbb[_0x5f560d(0x1b2)]===_0x5f560d(0x1fa)){if(_0x5a889c=null,!_0x467333)await m();_0x467333=!0x1;}}catch(_0x13f210){z('parse\x20error:\x20'+_0x13f210);}}}z('SSE\x20stream\x20ended,\x20reconnecting...');}catch(_0x31208b){z(_0x5f560d(0x1a5)+_0x31208b);}if(_0x5a889c=_0x5a889c??Date[_0x5f560d(0x192)](),Date['now']()-_0x5a889c>O){z(_0x5f560d(0x20c)+Y+_0x5f560d(0x1af));return;}await i(_0x5bb519),_0x5bb519=Math['min'](_0x5bb519*0x2,v);}}async function A(_0x3522f4){const _0x2327ce=a0_0x2c4552;if(_0x3522f4[_0x2327ce(0x1b2)]===_0x2327ce(0x1fa)){z(_0x2327ce(0x1b3)+p+'\x22');return;}if(_0x3522f4[_0x2327ce(0x1b2)]===_0x2327ce(0x1c5)){if(z(_0x2327ce(0x1b0)+_0x3522f4[_0x2327ce(0x1f5)]+':\x20'+_0x3522f4[_0x2327ce(0x1cc)][_0x2327ce(0x20d)](0x0,0x3c)),await K[_0x2327ce(0x1c3)]({'method':_0x2327ce(0x189),'params':{'content':_0x3522f4[_0x2327ce(0x1cc)],'meta':{'sender':_0x3522f4[_0x2327ce(0x1f5)]||_0x2327ce(0x1a7),'sender_id':_0x2327ce(0x20a),'user':_0x3522f4['from']||_0x2327ce(0x1a7),'priority':_0x2327ce(0x1ac)}}}),_0x3522f4[_0x2327ce(0x211)])await Q(_0x2327ce(0x226),{'alias':p,'message_id':_0x3522f4[_0x2327ce(0x211)]});return;}if(_0x3522f4[_0x2327ce(0x1b2)]===_0x2327ce(0x18a)||_0x3522f4[_0x2327ce(0x1b2)]==='broadcast'){z('←\x20'+_0x3522f4['type']+_0x2327ce(0x210)+_0x3522f4[_0x2327ce(0x19f)]+'\x20priority='+(_0x3522f4[_0x2327ce(0x188)]||'normal'));let _0x30292b=await Q(_0x2327ce(0x184),{'alias':p,'limit':0x5});if(_0x30292b?.['ok']&&_0x30292b[_0x2327ce(0x1cf)]?.[_0x2327ce(0x1e4)]>0x0)for(let _0x5eba3c of _0x30292b[_0x2327ce(0x1cf)]){let _0x304692={'sender':_0x5eba3c['from_session']||_0x2327ce(0x1a7),'sender_id':_0x2327ce(0x20a),'user':_0x5eba3c[_0x2327ce(0x1ee)]||'hub','task_id':_0x5eba3c['id'],'priority':_0x5eba3c['priority']||_0x2327ce(0x1ac)};G['set'](_0x5eba3c['id'],_0x5eba3c[_0x2327ce(0x1ee)]||'hub'),await K[_0x2327ce(0x1c3)]({'method':_0x2327ce(0x189),'params':{'content':_0x5eba3c['content'],'meta':_0x304692}}),z(_0x2327ce(0x1b5)+_0x5eba3c['id'][_0x2327ce(0x20d)](0x0,0x8)+_0x2327ce(0x1a3)+_0x5eba3c[_0x2327ce(0x1ee)]+':\x20'+_0x5eba3c['content']['slice'](0x0,0x3c)),await Q(_0x2327ce(0x226),{'alias':p,'message_id':_0x5eba3c['id']});}}}async function t(){const _0x17a8e7=a0_0x2c4552;let _0x4ef0db=new a0_0x2e972b();await K[_0x17a8e7(0x198)](_0x4ef0db),z(_0x17a8e7(0x1fc)),z(_0x17a8e7(0x1c9)),l()[_0x17a8e7(0x225)](_0x3d2499=>z(_0x17a8e7(0x1ca)+_0x3d2499)),Q(_0x17a8e7(0x21a),{'resume_id':V,'alias':p,'status':_0x17a8e7(0x1f4),'server':a0_0x2b7f10(),'hostname':a0_0x2b7f10(),'agent':'claude-code','project_dir':process['cwd'](),'tmux_name':j||void 0x0})[_0x17a8e7(0x1d4)](()=>z(_0x17a8e7(0x203)+p+_0x17a8e7(0x1e9)+V['slice'](0x0,0x8)+')'))[_0x17a8e7(0x225)](_0x3bd44c=>z(_0x17a8e7(0x1ed)+_0x3bd44c)),setInterval(()=>{const _0x53f364=_0x17a8e7;Q(_0x53f364(0x21a),{'resume_id':V,'alias':p,'status':'idle','server':a0_0x2b7f10(),'hostname':a0_0x2b7f10(),'agent':_0x53f364(0x1ff),'project_dir':process['cwd'](),'tmux_name':j||void 0x0})['catch'](_0x37eb18=>z(_0x53f364(0x1bb)+_0x37eb18));},0x2bf20),z('ready\x20—\x20waiting\x20for\x20events');}t()['catch'](_0x5667be=>{const _0x50eea1=a0_0x2c4552;z(_0x50eea1(0x183)+_0x5667be),process[_0x50eea1(0x1a0)](0x1);});async function b(){const _0x3b3bad=a0_0x2c4552;z(_0x3b3bad(0x1b6)),await Q(_0x3b3bad(0x21a),{'resume_id':V,'alias':p,'status':_0x3b3bad(0x222),'task':_0x3b3bad(0x1ec)})[_0x3b3bad(0x225)](()=>{}),process[_0x3b3bad(0x1a0)](0x0);}process[a0_0x2c4552(0x1a9)]['on']('end',()=>b()),process['on'](a0_0x2c4552(0x205),()=>b()),process['on'](a0_0x2c4552(0x208),()=>b());var d=process[a0_0x2c4552(0x1ae)];if(d&&d>0x1){let h=setInterval(()=>{const _0x4c20f8=a0_0x2c4552;if(process[_0x4c20f8(0x1ae)]===0x1&&d!==0x1){z('parent\x20claude\x20died\x20(reparented\x20to\x20PID\x201\x20from\x20'+d+_0x4c20f8(0x1d1)),b();return;}try{process[_0x4c20f8(0x1ab)](d,0x0);}catch(_0x23cf66){if(_0x23cf66?.[_0x4c20f8(0x1fb)]===_0x4c20f8(0x187))z('parent\x20claude\x20pid='+d+_0x4c20f8(0x1eb)),b();}},0x7530);if(typeof h[a0_0x2c4552(0x212)]==='function')h['unref']();}
|
|
2
|
+
const a0_0x4ee3e0=a0_0x5ae1;(function(_0x21f592,_0x550adc){const _0x1bb4b6=a0_0x5ae1,_0x185374=_0x21f592();while(!![]){try{const _0x15d868=-parseInt(_0x1bb4b6(0x12c))/0x1+parseInt(_0x1bb4b6(0x12a))/0x2+parseInt(_0x1bb4b6(0x158))/0x3*(parseInt(_0x1bb4b6(0xf2))/0x4)+parseInt(_0x1bb4b6(0x16c))/0x5*(parseInt(_0x1bb4b6(0xe1))/0x6)+-parseInt(_0x1bb4b6(0x153))/0x7+parseInt(_0x1bb4b6(0xeb))/0x8+-parseInt(_0x1bb4b6(0x114))/0x9;if(_0x15d868===_0x550adc)break;else _0x185374['push'](_0x185374['shift']());}catch(_0xfb8f40){_0x185374['push'](_0x185374['shift']());}}}(a0_0x2a69,0xf2092));import{readFileSync as a0_0x1acbb3,existsSync as a0_0x350f8a}from'fs';import{randomUUID as a0_0xcba0e0}from'crypto';import{join as a0_0x400161}from'path';import{hostname as a0_0x3964f1}from'os';import{execSync as a0_0x7c693c}from'child_process';function B(_0x4cb1cf){const _0x16d4a5=a0_0x5ae1;let _0x3830cd=_0x4cb1cf[_0x16d4a5(0x11c)](/[^a-zA-Z0-9\-_]/g,'-');return _0x3830cd===''?'unknown':_0x3830cd;}import{Server as a0_0x25d19c}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0x5d40c7}from'@modelcontextprotocol/sdk/server/stdio.js';function a0_0x5ae1(_0x14c599,_0x5706dc){_0x14c599=_0x14c599-0xdc;const _0x2a6905=a0_0x2a69();let _0x5ae197=_0x2a6905[_0x14c599];return _0x5ae197;}import{ListToolsRequestSchema as a0_0x1fb0b7,CallToolRequestSchema as a0_0x563c14}from'@modelcontextprotocol/sdk/types.js';function T(_0x5c2d5d){const _0x445630=a0_0x5ae1;if(!a0_0x350f8a(_0x5c2d5d))return;for(let _0xab4d69 of a0_0x1acbb3(_0x5c2d5d,_0x445630(0x15b))[_0x445630(0x16f)]('\x0a')){let _0x1cb376=_0xab4d69[_0x445630(0x124)]();if(!_0x1cb376||_0x1cb376[_0x445630(0x126)]('#'))continue;let _0x4b299d=_0x1cb376[_0x445630(0x122)]('=');if(_0x4b299d<0x0)continue;let _0x18d165=_0x1cb376[_0x445630(0x128)](0x0,_0x4b299d)[_0x445630(0x124)](),_0x202d44=_0x1cb376[_0x445630(0x128)](_0x4b299d+0x1)[_0x445630(0x124)]()[_0x445630(0x11c)](/^["']|["']$/g,'');if(!process.env[_0x18d165])process.env[_0x18d165]=_0x202d44;}}var C=process.env.HOME||'~',r=a0_0x400161(C,a0_0x4ee3e0(0x137));T(a0_0x400161(r,'.env'));var H=B(process['cwd']());T(a0_0x400161(r,H,a0_0x4ee3e0(0x14a)));function E(){const _0x40bf85=a0_0x4ee3e0;try{return a0_0x7c693c('tmux\x20display-message\x20-p\x20\x27#S\x27',{'encoding':_0x40bf85(0x15b),'timeout':0x7d0})[_0x40bf85(0x124)]();}catch{return'';}}function _(){const _0x3a41cf=a0_0x4ee3e0;try{let _0x524fd8=a0_0x400161(C,_0x3a41cf(0x13c),'config.json');if(a0_0x350f8a(_0x524fd8))return JSON[_0x3a41cf(0x141)](a0_0x1acbb3(_0x524fd8,_0x3a41cf(0x15b)));}catch{}return{};}var R=_(),Y=process.env.COMMHUB_URL||R['hub']||a0_0x4ee3e0(0x120),j=process.env.COMMHUB_TMUX||E();function S(){const _0x508799=a0_0x4ee3e0;if(process.env.COMMHUB_ALIAS&&process.env.COMMHUB_ALIAS['trim']())return process.env.COMMHUB_ALIAS[_0x508799(0x124)]();return process[_0x508799(0x150)][_0x508799(0x105)](_0x508799(0x11d)+(_0x508799(0xea)+(j||_0x508799(0xe2))+_0x508799(0x12d)+a0_0x3964f1()+_0x508799(0x178))),_0x508799(0x170)+process[_0x508799(0x16e)];}var p=S(),V=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0xcba0e0(),k=process.env.COMMHUB_TOKEN||R['token']||'';function z(_0x592ff7){const _0x30e6c2=a0_0x4ee3e0;let _0x2227cf=new Date()[_0x30e6c2(0x127)]()[_0x30e6c2(0x128)](0x0,0x8);process[_0x30e6c2(0x150)][_0x30e6c2(0x105)]('['+_0x2227cf+_0x30e6c2(0xef)+_0x592ff7+'\x0a');}function i(_0x5a32a0){return new Promise(_0x17e0fa=>setTimeout(_0x17e0fa,_0x5a32a0));}z('ENV:\x20URL='+Y+'\x20ALIAS='+p+a0_0x4ee3e0(0xe6)+V[a0_0x4ee3e0(0x128)](0x0,0x8)+a0_0x4ee3e0(0x10d)+(j||a0_0x4ee3e0(0xf8))+a0_0x4ee3e0(0x159)+process[a0_0x4ee3e0(0xf0)]()+'\x20PROJECT_ENV='+H);var G=new Map(),K=new a0_0x25d19c({'name':a0_0x4ee3e0(0xfb),'version':'0.3.0'},{'capabilities':{'experimental':{'claude/channel':{}},'tools':{}},'instructions':[a0_0x4ee3e0(0x12f),'These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.',a0_0x4ee3e0(0xdd),'\x20\x20•\x20If\x20the\x20sender\x20is\x20another\x20agent\x20node\x20(from\x20CommHub,\x20from\x20your\x20peer\x27s\x20session\x20alias),\x20reply\x20with\x20commhub_send_task(alias=\x22<their\x20alias>\x22,\x20task=\x22<your\x20reply>\x22).\x20This\x20creates\x20a\x20new\x20routable\x20task\x20that\x20wakes\x20the\x20peer\x20via\x20new_task\x20SSE\x20so\x20they\x20process\x20it.\x20commhub_reply\x20does\x20NOT\x20wake\x20agent\x20peers\x20—\x20they\x27d\x20only\x20see\x20it\x20on\x20the\x20next\x20inbox\x20poll\x20(Vincent\x202026-07-28\x20全网规则).',a0_0x4ee3e0(0xff),a0_0x4ee3e0(0x139),a0_0x4ee3e0(0x11e)+p]['join']('\x0a')});K[a0_0x4ee3e0(0x11f)](a0_0x1fb0b7,async()=>({'tools':[{'name':'commhub_reply','description':'Reply\x20to\x20a\x20Dashboard/UI-originated\x20CommHub\x20task.\x20\u26A0\x20For\x20agent-to-agent\x20replies\x20use\x20commhub_send_task\x20instead\x20\u2014\x20commhub_reply\x20does\x20NOT\x20wake\x20agent\x20peers\x20via\x20SSE\x20(Vincent\x202026-07-28\x20\u5168\u7F51\u89C4\u5219).\x20status=\x22completed\x22\x20(terminal)\x20routes\x20to\x20send_reply\x20and\x20emits\x20new_reply\x20SSE\x20for\x20the\x20live\x20Dashboard;\x20non-terminal\x20status\x20(in_progress/blocked/error)\x20only\x20updates\x20session\x20status\x20(report_status)\x20and\x20does\x20NOT\x20reach\x20the\x20Dashboard.','inputSchema':{'type':a0_0x4ee3e0(0xf5),'properties':{'task_id':{'type':a0_0x4ee3e0(0x102),'description':a0_0x4ee3e0(0xec)},'text':{'type':a0_0x4ee3e0(0x102),'description':a0_0x4ee3e0(0xed)},'status':{'type':a0_0x4ee3e0(0x102),'enum':[a0_0x4ee3e0(0x108),a0_0x4ee3e0(0x154),a0_0x4ee3e0(0xf1),a0_0x4ee3e0(0x109),a0_0x4ee3e0(0x125),a0_0x4ee3e0(0x100)],'description':a0_0x4ee3e0(0x117)}},'required':[a0_0x4ee3e0(0x14e)]}},{'name':a0_0x4ee3e0(0x17b),'description':a0_0x4ee3e0(0x148),'inputSchema':{'type':'object','properties':{'status':{'type':a0_0x4ee3e0(0x102),'enum':[a0_0x4ee3e0(0x13a),a0_0x4ee3e0(0xfc),'blocked','error']},'task':{'type':'string','description':'Current\x20task\x20description'},'progress':{'type':a0_0x4ee3e0(0x167),'description':a0_0x4ee3e0(0x14b)}},'required':[a0_0x4ee3e0(0x14f)]}},{'name':a0_0x4ee3e0(0x15c),'description':a0_0x4ee3e0(0xf7),'inputSchema':{'type':a0_0x4ee3e0(0xf5),'properties':{'alias':{'type':a0_0x4ee3e0(0x102),'description':a0_0x4ee3e0(0x134)},'task':{'type':a0_0x4ee3e0(0x102),'description':a0_0x4ee3e0(0x144)},'priority':{'type':a0_0x4ee3e0(0x102),'enum':[a0_0x4ee3e0(0x166),a0_0x4ee3e0(0xe4),a0_0x4ee3e0(0x14d)],'description':'Priority\x20(default:\x20normal)'}},'required':[a0_0x4ee3e0(0x10a),a0_0x4ee3e0(0x12b)]}},{'name':'commhub_send_message','description':a0_0x4ee3e0(0x174),'inputSchema':{'type':'object','properties':{'alias':{'type':a0_0x4ee3e0(0x102),'description':'Target\x20session\x20alias'},'message':{'type':'string','description':a0_0x4ee3e0(0xfd)}},'required':['alias','message']}},{'name':'commhub_get_all_status','description':'Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','inputSchema':{'type':a0_0x4ee3e0(0xf5),'properties':{}}}]}));async function Q(_0x246fa5,_0x24af39){const _0xf095f2=a0_0x4ee3e0;let _0x2e5c1=await fetch(Y+_0xf095f2(0x156),{'method':_0xf095f2(0x163),'headers':{'Content-Type':'application/json','Accept':_0xf095f2(0x131),...k?{'Authorization':_0xf095f2(0x152)+k}:{}},'body':JSON['stringify']({'jsonrpc':'2.0','id':0x1,'method':_0xf095f2(0x164),'params':{'protocolVersion':_0xf095f2(0x136),'capabilities':{},'clientInfo':{'name':_0xf095f2(0xfb),'version':'0.3.0'}}})});if(!_0x2e5c1['ok']){let _0x6e715d=await _0x2e5c1[_0xf095f2(0x14e)]();return z(_0xf095f2(0x10b)+_0x2e5c1[_0xf095f2(0x14f)]+'\x20'+_0x6e715d[_0xf095f2(0x128)](0x0,0x64)),{'ok':!0x1,'error':_0xf095f2(0x15d)+_0x2e5c1[_0xf095f2(0x14f)]};}await _0x2e5c1[_0xf095f2(0x14e)]();let _0x1cda5d=(await(await fetch(Y+'/mcp',{'method':'POST','headers':{'Content-Type':_0xf095f2(0x101),'Accept':_0xf095f2(0x131),...k?{'Authorization':_0xf095f2(0x152)+k}:{}},'body':JSON[_0xf095f2(0x133)]({'jsonrpc':_0xf095f2(0xfa),'id':0x2,'method':_0xf095f2(0x15a),'params':{'name':_0x246fa5,'arguments':_0x24af39}})}))[_0xf095f2(0x14e)]())[_0xf095f2(0x16f)]('\x0a')[_0xf095f2(0x10e)](_0x553885=>_0x553885[_0xf095f2(0x126)](_0xf095f2(0xfe)));if(_0x1cda5d){let _0x1211a2=JSON['parse'](_0x1cda5d['slice'](0x6));return _0x1211a2?.['result']?.[_0xf095f2(0x172)]?.[0x0]?.[_0xf095f2(0x14e)]?JSON[_0xf095f2(0x141)](_0x1211a2[_0xf095f2(0x11b)][_0xf095f2(0x172)][0x0][_0xf095f2(0x14e)]):_0x1211a2;}return{'ok':!0x1,'error':'no\x20response'};}function a0_0x2a69(){const _0x47e1a3=[')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。','...\x20TMUX=','find','hub','send_message','exit','re-register\x20failed:\x20','decode','17201916pWEaID','catch','kill','Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates','\x20no\x20longer\x20exists\x20(kill-0\x20ESRCH)\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat','starting\x20SSE\x20listener...','ready\x20—\x20waiting\x20for\x20events','result','replace','[commhub]\x20WARN:\x20COMMHUB_ALIAS\x20env\x20var\x20is\x20unset\x20—\x20outbound\x20from_session\x20','Session\x20alias:\x20','setRequestHandler','http://127.0.0.1:9200','SIGINT','indexOf','connecting\x20to\x20','trim','error','startsWith','toTimeString','slice','commhub','810284kshMKq','task','354526SbzYzU','\x20/\x20hostname=','messages','Messages\x20from\x20CommHub\x20arrive\x20as\x20<channel\x20source=\x22commhub\x22\x20task_id=\x22...\x22\x20priority=\x22...\x22\x20from=\x22...\x22>','SSE\x20stream\x20ended,\x20reconnecting...','application/json,\x20text/event-stream','parse\x20error:\x20','stringify','Target\x20session\x20alias','→\x20injected\x20task\x20','2025-03-26','.claude/channels/commhub','send_task','You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.','working','shutting\x20down,\x20reporting\x20offline...','.anet','send_reply','notification','function','from','parse','message_id','min','Task\x20content','fatal:\x20','new_message','report_status','Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','getReader','.env','Progress\x200-100','SSE\x20connected\x20as\x20\x22','low','text','status','stderr','now','Bearer\x20','374087FFnehZ','failed','type','/mcp','\x20from\x20','7968Pumwgn','\x20CWD=','tools/call','utf-8','commhub_send_task','init\x20failed:\x20','connect','get_inbox','end','\x22\x20(','session\x20disconnected','POST','initialize','claude-code','high','number','SSE\x20fatal:\x20','get','notifications/claude/channel','delete','9020WjXcvk','ESRCH','pid','split','unattributed-','SSE\x20error:\x20','content','SSE\x20connection\x20error:\x20','Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','priority','commhub_get_all_status','set','.\x20Restart\x20node\x20via\x20`anet\x20node\x20start\x20<alias>`\x20so\x20the\x20env\x20is\x20set\x20explicitly\x20(#203).\x0a','from_session','statusText','commhub_report_status','read','Reply\x20routing\x20(IMPORTANT\x20—\x20the\x20tool\x20you\x20pick\x20determines\x20whether\x20the\x20receiver\x20actually\x20gets\x20woken\x20up):','connected','heartbeat\x20failed:\x20','re-registered\x20as\x20\x22','492fmwUEE','(none)','SIGTERM','normal','/events/','\x20RESUME_ID=','stdin','replied','registered\x20as\x20\x22','would\x20mis-attribute.\x20Refusing\x20to\x20guess\x20from\x20TMUX_NAME=','8122104ePPMwn','The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)','Reply\x20text\x20/\x20result\x20summary','unref',']\x20[commhub]\x20','cwd','cancelled','2624guLSZn','then','unknown\x20tool','object','Authorization','Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','none','get_all_status','2.0','commhub-channel','idle','Message\x20content','data:\x20','\x20\x20•\x20Only\x20use\x20commhub_reply\x20when\x20the\x20sender\x20is\x20the\x20Dashboard/UI\x20(task_id\x20came\x20from\x20a\x20browser\x20chat).\x20Use\x20status=\x22completed\x22\x20(terminal)\x20so\x20send_reply\x20routes\x20it,\x20updates\x20the\x20task\x20row\x20(Dashboard\x20displays\x20it),\x20and\x20emits\x20new_reply\x20SSE\x20for\x20the\x20live\x20Dashboard\x20viewer.\x20Non-terminal\x20status\x20(in_progress/blocked/error)\x20just\x20updates\x20your\x20session\x20status\x20and\x20does\x20NOT\x20reach\x20the\x20Dashboard.','in_progress','application/json','string','message','params','write','warning:\x20could\x20not\x20register:\x20','ppid','completed','blocked','alias','CommHub\x20init\x20failed:\x20'];a0_0x2a69=function(){return _0x47e1a3;};return a0_0x2a69();}K[a0_0x4ee3e0(0x11f)](a0_0x563c14,async _0x2a2295=>{const _0xd934ba=a0_0x4ee3e0;let {name:_0x2dea0b,arguments:_0x45fb25}=_0x2a2295[_0xd934ba(0x104)];if(_0x2dea0b==='commhub_reply'){let {task_id:_0x3ae184,text:_0x4b0eb0,status:_0x307e9c}=_0x45fb25;if(_0x307e9c===_0xd934ba(0x108)||_0x307e9c==='failed'||_0x307e9c==='cancelled'){let _0x880f67=_0x307e9c===_0xd934ba(0x108)?_0xd934ba(0xe8):_0x307e9c,_0x2a5d66=_0x3ae184?G[_0xd934ba(0x169)](_0x3ae184)||_0xd934ba(0x10f):_0xd934ba(0x10f),_0x41c890=await Q(_0xd934ba(0x13d),{'alias':_0x2a5d66,'text':_0x4b0eb0,'in_reply_to':_0x3ae184||void 0x0,'status':_0x880f67,'from_session':p});if(_0x3ae184)G[_0xd934ba(0x16b)](_0x3ae184);return{'content':[{'type':_0xd934ba(0x14e),'text':JSON[_0xd934ba(0x133)](_0x41c890)}]};}let _0x594aaf=await Q(_0xd934ba(0x147),{'resume_id':V,'alias':p,'status':_0x307e9c==='blocked'?'blocked':_0x307e9c===_0xd934ba(0x125)?_0xd934ba(0x125):_0xd934ba(0x13a),'task':_0x4b0eb0['slice'](0x0,0xc8),'output':_0x4b0eb0});return{'content':[{'type':_0xd934ba(0x14e),'text':JSON[_0xd934ba(0x133)](_0x594aaf)}]};}if(_0x2dea0b===_0xd934ba(0x17b)){let {status:_0x17303c,task:_0x203e06,progress:_0x3cb254}=_0x45fb25,_0x2831da=await Q('report_status',{'resume_id':V,'alias':p,'status':_0x17303c,'task':_0x203e06,'progress':_0x3cb254});return{'content':[{'type':_0xd934ba(0x14e),'text':JSON[_0xd934ba(0x133)](_0x2831da)}]};}if(_0x2dea0b===_0xd934ba(0x15c)){let {alias:_0x36c717,task:_0x3138a9,priority:_0x5f2208}=_0x45fb25,_0x4807b3=await Q(_0xd934ba(0x138),{'alias':_0x36c717,'task':_0x3138a9,'priority':_0x5f2208||'normal','from_session':p});return{'content':[{'type':_0xd934ba(0x14e),'text':JSON[_0xd934ba(0x133)](_0x4807b3)}]};}if(_0x2dea0b==='commhub_send_message'){let {alias:_0x465633,message:_0x1678a7}=_0x45fb25,_0x30686b=await Q(_0xd934ba(0x110),{'alias':_0x465633,'message':_0x1678a7,'from_session':p});return{'content':[{'type':_0xd934ba(0x14e),'text':JSON[_0xd934ba(0x133)](_0x30686b)}]};}if(_0x2dea0b===_0xd934ba(0x176)){let _0x6193a8=await Q(_0xd934ba(0xf9),{});return{'content':[{'type':_0xd934ba(0x14e),'text':JSON[_0xd934ba(0x133)](_0x6193a8)}]};}return{'content':[{'type':_0xd934ba(0x14e),'text':JSON[_0xd934ba(0x133)]({'error':_0xd934ba(0xf4)})}]};});var D=0x3e8,v=0x7530,O=0x36ee80;async function m(){const _0x3fef30=a0_0x4ee3e0;try{await Q(_0x3fef30(0x147),{'resume_id':V,'alias':p,'status':_0x3fef30(0xfc),'server':a0_0x3964f1(),'hostname':a0_0x3964f1(),'agent':_0x3fef30(0x165),'project_dir':process[_0x3fef30(0xf0)](),'tmux_name':j||void 0x0}),z(_0x3fef30(0xe0)+p+'\x22\x20after\x20SSE\x20reconnect');}catch(_0x244cd0){z(_0x3fef30(0x112)+_0x244cd0);}}async function l(){const _0x51875a=a0_0x4ee3e0;let _0x39bfd0=Y+_0x51875a(0xe5)+encodeURIComponent(p),_0x80a81a={};if(k)_0x80a81a[_0x51875a(0xf6)]=_0x51875a(0x152)+k;z(_0x51875a(0x123)+_0x39bfd0);let _0x54240b=D,_0x4aaa43=!0x0,_0x1a24a1=null;while(!0x0){try{let _0x1cb52d=await fetch(_0x39bfd0,{'headers':_0x80a81a});if(!_0x1cb52d['ok']){if(z(_0x51875a(0x171)+_0x1cb52d[_0x51875a(0x14f)]+'\x20'+_0x1cb52d[_0x51875a(0x17a)]),_0x1a24a1=_0x1a24a1??Date[_0x51875a(0x151)](),Date[_0x51875a(0x151)]()-_0x1a24a1>O){z('SSE\x20连续\x20>1h\x20连不上\x20hub\x20('+Y+_0x51875a(0x10c));return;}await i(_0x54240b),_0x54240b=Math[_0x51875a(0x143)](_0x54240b*0x2,v);continue;}let _0x5d6f66=_0x1cb52d['body'][_0x51875a(0x149)](),_0x4f0322=new TextDecoder(),_0x183d88='';_0x54240b=D;while(!0x0){let {done:_0x537919,value:_0x9e02e0}=await _0x5d6f66[_0x51875a(0xdc)]();if(_0x537919)break;_0x183d88+=_0x4f0322[_0x51875a(0x113)](_0x9e02e0,{'stream':!0x0});let _0x109618=_0x183d88['split']('\x0a\x0a');_0x183d88=_0x109618['pop']()||'';for(let _0x37f149 of _0x109618){let _0x7655=_0x37f149[_0x51875a(0x16f)]('\x0a')[_0x51875a(0x10e)](_0x84b827=>_0x84b827['startsWith'](_0x51875a(0xfe)));if(!_0x7655)continue;try{let _0x571795=JSON[_0x51875a(0x141)](_0x7655[_0x51875a(0x128)](0x6));if(await A(_0x571795),_0x571795[_0x51875a(0x155)]===_0x51875a(0xde)){if(_0x1a24a1=null,!_0x4aaa43)await m();_0x4aaa43=!0x1;}}catch(_0x400b07){z(_0x51875a(0x132)+_0x400b07);}}}z(_0x51875a(0x130));}catch(_0x3d1ec1){z(_0x51875a(0x173)+_0x3d1ec1);}if(_0x1a24a1=_0x1a24a1??Date['now'](),Date[_0x51875a(0x151)]()-_0x1a24a1>O){z('SSE\x20连续\x20>1h\x20连不上\x20hub\x20('+Y+_0x51875a(0x10c));return;}await i(_0x54240b),_0x54240b=Math['min'](_0x54240b*0x2,v);}}async function A(_0x592f6f){const _0xbf8119=a0_0x4ee3e0;if(_0x592f6f[_0xbf8119(0x155)]===_0xbf8119(0xde)){z(_0xbf8119(0x14c)+p+'\x22');return;}if(_0x592f6f[_0xbf8119(0x155)]===_0xbf8119(0x146)){if(z('←\x20message\x20from\x20'+_0x592f6f[_0xbf8119(0x140)]+':\x20'+_0x592f6f[_0xbf8119(0x103)][_0xbf8119(0x128)](0x0,0x3c)),await K[_0xbf8119(0x13e)]({'method':_0xbf8119(0x16a),'params':{'content':_0x592f6f['message'],'meta':{'sender':_0x592f6f[_0xbf8119(0x140)]||'hub','sender_id':_0xbf8119(0x129),'user':_0x592f6f[_0xbf8119(0x140)]||_0xbf8119(0x10f),'priority':_0xbf8119(0xe4)}}}),_0x592f6f[_0xbf8119(0x142)])await Q('ack_inbox',{'alias':p,'message_id':_0x592f6f[_0xbf8119(0x142)]});return;}if(_0x592f6f['type']==='new_task'||_0x592f6f[_0xbf8119(0x155)]==='broadcast'){z('←\x20'+_0x592f6f[_0xbf8119(0x155)]+':\x20inbox_count='+_0x592f6f['inbox_count']+'\x20priority='+(_0x592f6f['priority']||_0xbf8119(0xe4)));let _0x540707=await Q(_0xbf8119(0x15f),{'alias':p,'limit':0x5});if(_0x540707?.['ok']&&_0x540707[_0xbf8119(0x12e)]?.['length']>0x0)for(let _0x51663b of _0x540707[_0xbf8119(0x12e)]){let _0x29bc54={'sender':_0x51663b['from_session']||_0xbf8119(0x10f),'sender_id':'commhub','user':_0x51663b[_0xbf8119(0x179)]||_0xbf8119(0x10f),'task_id':_0x51663b['id'],'priority':_0x51663b[_0xbf8119(0x175)]||_0xbf8119(0xe4)};G[_0xbf8119(0x177)](_0x51663b['id'],_0x51663b['from_session']||'hub'),await K['notification']({'method':_0xbf8119(0x16a),'params':{'content':_0x51663b[_0xbf8119(0x172)],'meta':_0x29bc54}}),z(_0xbf8119(0x135)+_0x51663b['id'][_0xbf8119(0x128)](0x0,0x8)+_0xbf8119(0x157)+_0x51663b['from_session']+':\x20'+_0x51663b[_0xbf8119(0x172)][_0xbf8119(0x128)](0x0,0x3c)),await Q('ack_inbox',{'alias':p,'message_id':_0x51663b['id']});}}}async function t(){const _0x138b96=a0_0x4ee3e0;let _0x59616b=new a0_0x5d40c7();await K[_0x138b96(0x15e)](_0x59616b),z('MCP\x20stdio\x20connected'),z(_0x138b96(0x119)),l()[_0x138b96(0x115)](_0x30b217=>z(_0x138b96(0x168)+_0x30b217)),Q(_0x138b96(0x147),{'resume_id':V,'alias':p,'status':_0x138b96(0xfc),'server':a0_0x3964f1(),'hostname':a0_0x3964f1(),'agent':_0x138b96(0x165),'project_dir':process['cwd'](),'tmux_name':j||void 0x0})[_0x138b96(0xf3)](()=>z(_0x138b96(0xe9)+p+_0x138b96(0x161)+V[_0x138b96(0x128)](0x0,0x8)+')'))[_0x138b96(0x115)](_0x53b10a=>z(_0x138b96(0x106)+_0x53b10a)),setInterval(()=>{const _0x40053a=_0x138b96;Q(_0x40053a(0x147),{'resume_id':V,'alias':p,'status':_0x40053a(0xfc),'server':a0_0x3964f1(),'hostname':a0_0x3964f1(),'agent':'claude-code','project_dir':process[_0x40053a(0xf0)](),'tmux_name':j||void 0x0})['catch'](_0x3edae5=>z(_0x40053a(0xdf)+_0x3edae5));},0x2bf20),z(_0x138b96(0x11a));}t()[a0_0x4ee3e0(0x115)](_0x1f4bcf=>{const _0x26eea7=a0_0x4ee3e0;z(_0x26eea7(0x145)+_0x1f4bcf),process[_0x26eea7(0x111)](0x1);});async function b(){const _0x5d5a04=a0_0x4ee3e0;z(_0x5d5a04(0x13b)),await Q(_0x5d5a04(0x147),{'resume_id':V,'alias':p,'status':'offline','task':_0x5d5a04(0x162)})[_0x5d5a04(0x115)](()=>{}),process[_0x5d5a04(0x111)](0x0);}process[a0_0x4ee3e0(0xe7)]['on'](a0_0x4ee3e0(0x160),()=>b()),process['on'](a0_0x4ee3e0(0xe3),()=>b()),process['on'](a0_0x4ee3e0(0x121),()=>b());var d=process[a0_0x4ee3e0(0x107)];if(d&&d>0x1){let h=setInterval(()=>{const _0x103e71=a0_0x4ee3e0;if(process[_0x103e71(0x107)]===0x1&&d!==0x1){z('parent\x20claude\x20died\x20(reparented\x20to\x20PID\x201\x20from\x20'+d+')\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat'),b();return;}try{process[_0x103e71(0x116)](d,0x0);}catch(_0x5a0e5b){if(_0x5a0e5b?.['code']===_0x103e71(0x16d))z('parent\x20claude\x20pid='+d+_0x103e71(0x118)),b();}},0x7530);if(typeof h[a0_0x4ee3e0(0xee)]===a0_0x4ee3e0(0x13f))h[a0_0x4ee3e0(0xee)]();}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sleep2agi/agent-network",
|
|
3
|
-
"version": "2.3.0-preview.
|
|
3
|
+
"version": "2.3.0-preview.38",
|
|
4
4
|
"description": "AI Agent Network CLI — Local-first multi-agent orchestration across 6 runtimes (Claude Code CLI / Claude Agent SDK / Codex SDK / Codex app-server / Grok Build ACP / OpenCode CLI) and 8+ LLM providers. Apache 2.0.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/client.js",
|