@sleep2agi/agent-network 2.3.0-preview.36 → 2.3.0-preview.37
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/README.md +35 -334
- package/dist/bin/cli.js +1 -1
- package/dist/src/client.js +1 -1
- package/dist/src/im/feishu/worker.js +1 -1
- package/dist/src/node-server.js +1 -1
- package/dist/src/opencode-agent-node-pair.d.ts +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_0x3998da=a0_0x497d;(function(_0x51f69e,_0xb5e54a){const _0x5aa0d3=a0_0x497d,_0x14ecfb=_0x51f69e();while(!![]){try{const _0x3c4231=parseInt(_0x5aa0d3(0x12c))/0x1*(parseInt(_0x5aa0d3(0x119))/0x2)+-parseInt(_0x5aa0d3(0x105))/0x3+-parseInt(_0x5aa0d3(0x15c))/0x4+parseInt(_0x5aa0d3(0x10b))/0x5+parseInt(_0x5aa0d3(0x185))/0x6+parseInt(_0x5aa0d3(0x17d))/0x7+parseInt(_0x5aa0d3(0x141))/0x8*(-parseInt(_0x5aa0d3(0x113))/0x9);if(_0x3c4231===_0xb5e54a)break;else _0x14ecfb['push'](_0x14ecfb['shift']());}catch(_0x176713){_0x14ecfb['push'](_0x14ecfb['shift']());}}}(a0_0x5b0c,0x297fb));import{readFileSync as a0_0xb14a48,existsSync as a0_0x4e597a}from'fs';import{randomUUID as a0_0x59272c}from'crypto';import{join as a0_0x3fa273}from'path';import{hostname as a0_0xd1cc4e}from'os';import{execSync as a0_0x2e0630}from'child_process';function B(_0xcd48dc){const _0x23a6ed=a0_0x497d;let _0x3d2961=_0xcd48dc['replace'](/[^a-zA-Z0-9\-_]/g,'-');return _0x3d2961===''?_0x23a6ed(0xff):_0x3d2961;}import{Server as a0_0x417339}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0_0xc4434c}from'@modelcontextprotocol/sdk/server/stdio.js';import{ListToolsRequestSchema as a0_0x5b019d,CallToolRequestSchema as a0_0x44159d}from'@modelcontextprotocol/sdk/types.js';function T(_0x30c0d8){const _0x8bc4c8=a0_0x497d;if(!a0_0x4e597a(_0x30c0d8))return;for(let _0x22a5a7 of a0_0xb14a48(_0x30c0d8,_0x8bc4c8(0x180))[_0x8bc4c8(0x132)]('\x0a')){let _0x2064ba=_0x22a5a7[_0x8bc4c8(0xfc)]();if(!_0x2064ba||_0x2064ba[_0x8bc4c8(0x16f)]('#'))continue;let _0x561314=_0x2064ba[_0x8bc4c8(0x179)]('=');if(_0x561314<0x0)continue;let _0x36fc57=_0x2064ba[_0x8bc4c8(0x193)](0x0,_0x561314)[_0x8bc4c8(0xfc)](),_0x32b677=_0x2064ba[_0x8bc4c8(0x193)](_0x561314+0x1)[_0x8bc4c8(0xfc)]()[_0x8bc4c8(0x139)](/^["']|["']$/g,'');if(!process.env[_0x36fc57])process.env[_0x36fc57]=_0x32b677;}}var C=process.env.HOME||'~',r=a0_0x3fa273(C,'.claude/channels/commhub');function a0_0x5b0c(){const _0x36d998=['utf-8','Session\x20alias:\x20','unref',']\x20[commhub]\x20','Task\x20outcome:\x20completed/failed/cancelled\x20for\x20final\x20results,\x20blocked/error/in_progress\x20for\x20status\x20updates','1087032XHTiqc','failed','content','commhub_report_status',')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。','none','2.0','send_task','Send\x20a\x20message\x20to\x20another\x20session\x20(no\x20task\x20lifecycle,\x20just\x20chat).\x20Use\x20for\x20replies\x20and\x20status\x20updates.','SSE\x20error:\x20','\x20RESUME_ID=','notification','low','cwd','slice','connected','get','text','catch','high','task',':\x20inbox_count=','trim','send_reply','read','unknown','messages','2025-03-26','length','/events/','Send\x20a\x20task\x20to\x20another\x20session\x20via\x20CommHub.','149097VzEDbr','Task\x20content','type','working','set','re-register\x20failed:\x20','574205DPGnXJ','now','code','\x20PROJECT_ENV=','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.','Get\x20status\x20of\x20all\x20sessions\x20from\x20CommHub.','decode','statusText','9OeJacA','normal','commhub_send_task','POST','Current\x20task\x20description','parent\x20claude\x20died\x20(reparented\x20to\x20PID\x201\x20from\x20','6ANKPhy','→\x20injected\x20task\x20','send_message','unknown\x20tool','blocked','SSE\x20连续\x20>1h\x20连不上\x20hub\x20(','.anet','Reply\x20text\x20/\x20result\x20summary','stdin','ppid','result','commhub_reply','commhub','report_status','warning:\x20could\x20not\x20register:\x20','SSE\x20connected\x20as\x20\x22','commhub_get_all_status','Progress\x200-100','completed','16202DdDXvL','parse','message_id','MCP\x20stdio\x20connected','\x20ALIAS=','session\x20disconnected','split','setRequestHandler','claude-code','function','http://127.0.0.1:9200','commhub-channel','SSE\x20connection\x20error:\x20','replace','replied','pid','Bearer\x20','registered\x20as\x20\x22','SSE\x20fatal:\x20','(none)','initialize','2996296peoWYW','toTimeString','find','Messages\x20from\x20CommHub\x20arrive\x20as\x20<channel\x20source=\x22commhub\x22\x20task_id=\x22...\x22\x20priority=\x22...\x22\x20from=\x22...\x22>','/mcp','SIGTERM','notifications/claude/channel','application/json','data:\x20','ack_inbox','0.3.0','\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全网规则).','then','connect','[commhub]\x20WARN:\x20COMMHUB_ALIAS\x20env\x20var\x20is\x20unset\x20—\x20outbound\x20from_session\x20','min','\x20/\x20hostname=','priority','stringify','write','SIGINT','You\x20can\x20also\x20use\x20commhub_report_status\x20to\x20update\x20your\x20session\x20status.','exit','kill','shutting\x20down,\x20reporting\x20offline...','hub','\x20CWD=','308764SeRrgP','idle','Priority\x20(default:\x20normal)','message','no\x20response','end','.env','from','fatal:\x20','pop','ENV:\x20URL=','params','init\x20failed:\x20','config.json','status','tools/call','heartbeat\x20failed:\x20','from_session','cancelled','startsWith','new_message','parent\x20claude\x20pid=','tmux\x20display-message\x20-p\x20\x27#S\x27','in_progress','string','\x22\x20after\x20SSE\x20reconnect','token','ready\x20—\x20waiting\x20for\x20events','starting\x20SSE\x20listener...','indexOf','stderr','Target\x20session\x20alias','unattributed-','2287509jtjsOm','object','error'];a0_0x5b0c=function(){return _0x36d998;};return a0_0x5b0c();}T(a0_0x3fa273(r,a0_0x3998da(0x162)));var H=B(process[a0_0x3998da(0x192)]());T(a0_0x3fa273(r,H,a0_0x3998da(0x162)));function E(){const _0x30a24b=a0_0x3998da;try{return a0_0x2e0630(_0x30a24b(0x172),{'encoding':_0x30a24b(0x180),'timeout':0x7d0})[_0x30a24b(0xfc)]();}catch{return'';}}function _(){const _0x80465=a0_0x3998da;try{let _0x4684b4=a0_0x3fa273(C,_0x80465(0x11f),_0x80465(0x169));if(a0_0x4e597a(_0x4684b4))return JSON[_0x80465(0x12d)](a0_0xb14a48(_0x4684b4,_0x80465(0x180)));}catch{}return{};}var R=_(),Y=process.env.COMMHUB_URL||R[a0_0x3998da(0x15a)]||a0_0x3998da(0x136),j=process.env.COMMHUB_TMUX||E();function a0_0x497d(_0x2b7237,_0x1da58b){_0x2b7237=_0x2b7237-0xf5;const _0x5b0c1d=a0_0x5b0c();let _0x497d38=_0x5b0c1d[_0x2b7237];return _0x497d38;}function S(){const _0xf8d3ec=a0_0x3998da;if(process.env.COMMHUB_ALIAS&&process.env.COMMHUB_ALIAS['trim']())return process.env.COMMHUB_ALIAS['trim']();return process[_0xf8d3ec(0x17a)][_0xf8d3ec(0x154)](_0xf8d3ec(0x14f)+('would\x20mis-attribute.\x20Refusing\x20to\x20guess\x20from\x20TMUX_NAME='+(j||_0xf8d3ec(0x13f))+_0xf8d3ec(0x151)+a0_0xd1cc4e()+'.\x20Restart\x20node\x20via\x20`anet\x20node\x20start\x20<alias>`\x20so\x20the\x20env\x20is\x20set\x20explicitly\x20(#203).\x0a')),_0xf8d3ec(0x17c)+process[_0xf8d3ec(0x13b)];}var p=S(),V=process.env.COMMHUB_RESUME_ID||process.env.CLAUDE_RESUME_ID||a0_0x59272c(),k=process.env.COMMHUB_TOKEN||R[a0_0x3998da(0x176)]||'';function z(_0x21b7ba){const _0x1538bd=a0_0x3998da;let _0x322f6b=new Date()[_0x1538bd(0x142)]()[_0x1538bd(0x193)](0x0,0x8);process[_0x1538bd(0x17a)]['write']('['+_0x322f6b+_0x1538bd(0x183)+_0x21b7ba+'\x0a');}function i(_0xddae49){return new Promise(_0x32bd71=>setTimeout(_0x32bd71,_0xddae49));}z(a0_0x3998da(0x166)+Y+a0_0x3998da(0x130)+p+a0_0x3998da(0x18f)+V[a0_0x3998da(0x193)](0x0,0x8)+'...\x20TMUX='+(j||a0_0x3998da(0x18a))+a0_0x3998da(0x15b)+process[a0_0x3998da(0x192)]()+a0_0x3998da(0x10e)+H);var G=new Map(),K=new a0_0x417339({'name':a0_0x3998da(0x137),'version':'0.3.0'},{'capabilities':{'experimental':{'claude/channel':{}},'tools':{}},'instructions':[a0_0x3998da(0x144),'These\x20are\x20tasks\x20dispatched\x20by\x20the\x20hub\x20or\x20other\x20sessions\x20via\x20the\x20CommHub\x20Server.','Reply\x20routing\x20(IMPORTANT\x20—\x20the\x20tool\x20you\x20pick\x20determines\x20whether\x20the\x20receiver\x20actually\x20gets\x20woken\x20up):',a0_0x3998da(0x14c),'\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.',a0_0x3998da(0x156),a0_0x3998da(0x181)+p]['join']('\x0a')});K[a0_0x3998da(0x133)](a0_0x5b019d,async()=>({'tools':[{'name':a0_0x3998da(0x124),'description':a0_0x3998da(0x10f),'inputSchema':{'type':a0_0x3998da(0x17e),'properties':{'task_id':{'type':'string','description':'The\x20task_id\x20from\x20the\x20channel\x20message\x20(or\x20\x27hub\x27\x20for\x20general)'},'text':{'type':a0_0x3998da(0x174),'description':a0_0x3998da(0x120)},'status':{'type':a0_0x3998da(0x174),'enum':[a0_0x3998da(0x12b),a0_0x3998da(0x186),a0_0x3998da(0x16e),'blocked',a0_0x3998da(0x17f),a0_0x3998da(0x173)],'description':a0_0x3998da(0x184)}},'required':[a0_0x3998da(0xf7)]}},{'name':a0_0x3998da(0x188),'description':'Update\x20this\x20session\x27s\x20status\x20in\x20CommHub\x20(working/idle/blocked/error).\x20Returns\x20inbox_count.','inputSchema':{'type':a0_0x3998da(0x17e),'properties':{'status':{'type':a0_0x3998da(0x174),'enum':['working','idle','blocked',a0_0x3998da(0x17f)]},'task':{'type':a0_0x3998da(0x174),'description':a0_0x3998da(0x117)},'progress':{'type':'number','description':a0_0x3998da(0x12a)}},'required':[a0_0x3998da(0x16a)]}},{'name':a0_0x3998da(0x115),'description':a0_0x3998da(0x104),'inputSchema':{'type':a0_0x3998da(0x17e),'properties':{'alias':{'type':'string','description':'Target\x20session\x20alias'},'task':{'type':'string','description':a0_0x3998da(0x106)},'priority':{'type':a0_0x3998da(0x174),'enum':[a0_0x3998da(0xf9),'normal',a0_0x3998da(0x191)],'description':a0_0x3998da(0x15e)}},'required':['alias',a0_0x3998da(0xfa)]}},{'name':'commhub_send_message','description':a0_0x3998da(0x18d),'inputSchema':{'type':a0_0x3998da(0x17e),'properties':{'alias':{'type':'string','description':a0_0x3998da(0x17b)},'message':{'type':a0_0x3998da(0x174),'description':'Message\x20content'}},'required':['alias',a0_0x3998da(0x15f)]}},{'name':'commhub_get_all_status','description':a0_0x3998da(0x110),'inputSchema':{'type':'object','properties':{}}}]}));async function Q(_0x1315ba,_0x40a4cf){const _0x7811c8=a0_0x3998da;let _0x3a4dd7=await fetch(Y+_0x7811c8(0x145),{'method':_0x7811c8(0x116),'headers':{'Content-Type':_0x7811c8(0x148),'Accept':'application/json,\x20text/event-stream',...k?{'Authorization':_0x7811c8(0x13c)+k}:{}},'body':JSON[_0x7811c8(0x153)]({'jsonrpc':_0x7811c8(0x18b),'id':0x1,'method':_0x7811c8(0x140),'params':{'protocolVersion':_0x7811c8(0x101),'capabilities':{},'clientInfo':{'name':_0x7811c8(0x137),'version':_0x7811c8(0x14b)}}})});if(!_0x3a4dd7['ok']){let _0x1b5ea0=await _0x3a4dd7[_0x7811c8(0xf7)]();return z('CommHub\x20init\x20failed:\x20'+_0x3a4dd7[_0x7811c8(0x16a)]+'\x20'+_0x1b5ea0[_0x7811c8(0x193)](0x0,0x64)),{'ok':!0x1,'error':_0x7811c8(0x168)+_0x3a4dd7['status']};}await _0x3a4dd7[_0x7811c8(0xf7)]();let _0x9e7fcd=(await(await fetch(Y+_0x7811c8(0x145),{'method':_0x7811c8(0x116),'headers':{'Content-Type':_0x7811c8(0x148),'Accept':'application/json,\x20text/event-stream',...k?{'Authorization':'Bearer\x20'+k}:{}},'body':JSON['stringify']({'jsonrpc':_0x7811c8(0x18b),'id':0x2,'method':_0x7811c8(0x16b),'params':{'name':_0x1315ba,'arguments':_0x40a4cf}})}))[_0x7811c8(0xf7)]())[_0x7811c8(0x132)]('\x0a')[_0x7811c8(0x143)](_0x206328=>_0x206328['startsWith'](_0x7811c8(0x149)));if(_0x9e7fcd){let _0x42a9a8=JSON[_0x7811c8(0x12d)](_0x9e7fcd[_0x7811c8(0x193)](0x6));return _0x42a9a8?.[_0x7811c8(0x123)]?.[_0x7811c8(0x187)]?.[0x0]?.[_0x7811c8(0xf7)]?JSON[_0x7811c8(0x12d)](_0x42a9a8[_0x7811c8(0x123)]['content'][0x0][_0x7811c8(0xf7)]):_0x42a9a8;}return{'ok':!0x1,'error':_0x7811c8(0x160)};}K['setRequestHandler'](a0_0x44159d,async _0x571893=>{const _0x4bc984=a0_0x3998da;let {name:_0xad1f02,arguments:_0x1e0f64}=_0x571893[_0x4bc984(0x167)];if(_0xad1f02===_0x4bc984(0x124)){let {task_id:_0x1a76c0,text:_0x4913cc,status:_0x35803a}=_0x1e0f64;if(_0x35803a===_0x4bc984(0x12b)||_0x35803a===_0x4bc984(0x186)||_0x35803a==='cancelled'){let _0x57a8fa=_0x35803a===_0x4bc984(0x12b)?_0x4bc984(0x13a):_0x35803a,_0x559a54=_0x1a76c0?G[_0x4bc984(0xf6)](_0x1a76c0)||_0x4bc984(0x15a):'hub',_0x49fc23=await Q(_0x4bc984(0xfd),{'alias':_0x559a54,'text':_0x4913cc,'in_reply_to':_0x1a76c0||void 0x0,'status':_0x57a8fa,'from_session':p});if(_0x1a76c0)G['delete'](_0x1a76c0);return{'content':[{'type':_0x4bc984(0xf7),'text':JSON['stringify'](_0x49fc23)}]};}let _0x5a5262=await Q('report_status',{'resume_id':V,'alias':p,'status':_0x35803a===_0x4bc984(0x11d)?_0x4bc984(0x11d):_0x35803a===_0x4bc984(0x17f)?_0x4bc984(0x17f):_0x4bc984(0x108),'task':_0x4913cc[_0x4bc984(0x193)](0x0,0xc8),'output':_0x4913cc});return{'content':[{'type':_0x4bc984(0xf7),'text':JSON['stringify'](_0x5a5262)}]};}if(_0xad1f02===_0x4bc984(0x188)){let {status:_0x589d8a,task:_0x5d08e1,progress:_0x1e2639}=_0x1e0f64,_0x22f75d=await Q('report_status',{'resume_id':V,'alias':p,'status':_0x589d8a,'task':_0x5d08e1,'progress':_0x1e2639});return{'content':[{'type':_0x4bc984(0xf7),'text':JSON['stringify'](_0x22f75d)}]};}if(_0xad1f02==='commhub_send_task'){let {alias:_0x5a415f,task:_0x1ea4a4,priority:_0x5d9ca9}=_0x1e0f64,_0x4aeec9=await Q(_0x4bc984(0x18c),{'alias':_0x5a415f,'task':_0x1ea4a4,'priority':_0x5d9ca9||_0x4bc984(0x114),'from_session':p});return{'content':[{'type':_0x4bc984(0xf7),'text':JSON[_0x4bc984(0x153)](_0x4aeec9)}]};}if(_0xad1f02==='commhub_send_message'){let {alias:_0x24b048,message:_0x5b11d0}=_0x1e0f64,_0x44ee77=await Q(_0x4bc984(0x11b),{'alias':_0x24b048,'message':_0x5b11d0,'from_session':p});return{'content':[{'type':_0x4bc984(0xf7),'text':JSON[_0x4bc984(0x153)](_0x44ee77)}]};}if(_0xad1f02===_0x4bc984(0x129)){let _0x21e99d=await Q('get_all_status',{});return{'content':[{'type':_0x4bc984(0xf7),'text':JSON['stringify'](_0x21e99d)}]};}return{'content':[{'type':_0x4bc984(0xf7),'text':JSON['stringify']({'error':_0x4bc984(0x11c)})}]};});var D=0x3e8,v=0x7530,O=0x36ee80;async function m(){const _0x1d9abe=a0_0x3998da;try{await Q(_0x1d9abe(0x126),{'resume_id':V,'alias':p,'status':_0x1d9abe(0x15d),'server':a0_0xd1cc4e(),'hostname':a0_0xd1cc4e(),'agent':_0x1d9abe(0x134),'project_dir':process[_0x1d9abe(0x192)](),'tmux_name':j||void 0x0}),z('re-registered\x20as\x20\x22'+p+_0x1d9abe(0x175));}catch(_0x439e42){z(_0x1d9abe(0x10a)+_0x439e42);}}async function l(){const _0x3cc62f=a0_0x3998da;let _0xea8e30=Y+_0x3cc62f(0x103)+encodeURIComponent(p),_0x53aa0f={};if(k)_0x53aa0f['Authorization']=_0x3cc62f(0x13c)+k;z('connecting\x20to\x20'+_0xea8e30);let _0x4c6ff5=D,_0x5ebb04=!0x0,_0x3c462b=null;while(!0x0){try{let _0xbf13d4=await fetch(_0xea8e30,{'headers':_0x53aa0f});if(!_0xbf13d4['ok']){if(z(_0x3cc62f(0x18e)+_0xbf13d4[_0x3cc62f(0x16a)]+'\x20'+_0xbf13d4[_0x3cc62f(0x112)]),_0x3c462b=_0x3c462b??Date[_0x3cc62f(0x10c)](),Date['now']()-_0x3c462b>O){z('SSE\x20连续\x20>1h\x20连不上\x20hub\x20('+Y+')\x20—\x20放弃自动重连。手动\x20anet\x20node\x20start\x20恢复。');return;}await i(_0x4c6ff5),_0x4c6ff5=Math['min'](_0x4c6ff5*0x2,v);continue;}let _0x4c11da=_0xbf13d4['body']['getReader'](),_0x5b6ff4=new TextDecoder(),_0x366469='';_0x4c6ff5=D;while(!0x0){let {done:_0x2f6554,value:_0x575fe2}=await _0x4c11da[_0x3cc62f(0xfe)]();if(_0x2f6554)break;_0x366469+=_0x5b6ff4[_0x3cc62f(0x111)](_0x575fe2,{'stream':!0x0});let _0x5b76a2=_0x366469[_0x3cc62f(0x132)]('\x0a\x0a');_0x366469=_0x5b76a2[_0x3cc62f(0x165)]()||'';for(let _0x26f2f6 of _0x5b76a2){let _0x2a5cbf=_0x26f2f6[_0x3cc62f(0x132)]('\x0a')[_0x3cc62f(0x143)](_0x3f56d7=>_0x3f56d7[_0x3cc62f(0x16f)]('data:\x20'));if(!_0x2a5cbf)continue;try{let _0x33d77b=JSON['parse'](_0x2a5cbf[_0x3cc62f(0x193)](0x6));if(await A(_0x33d77b),_0x33d77b[_0x3cc62f(0x107)]===_0x3cc62f(0xf5)){if(_0x3c462b=null,!_0x5ebb04)await m();_0x5ebb04=!0x1;}}catch(_0x308181){z('parse\x20error:\x20'+_0x308181);}}}z('SSE\x20stream\x20ended,\x20reconnecting...');}catch(_0x5f3642){z(_0x3cc62f(0x138)+_0x5f3642);}if(_0x3c462b=_0x3c462b??Date[_0x3cc62f(0x10c)](),Date[_0x3cc62f(0x10c)]()-_0x3c462b>O){z(_0x3cc62f(0x11e)+Y+_0x3cc62f(0x189));return;}await i(_0x4c6ff5),_0x4c6ff5=Math[_0x3cc62f(0x150)](_0x4c6ff5*0x2,v);}}async function A(_0x26c82c){const _0x4fc10b=a0_0x3998da;if(_0x26c82c[_0x4fc10b(0x107)]===_0x4fc10b(0xf5)){z(_0x4fc10b(0x128)+p+'\x22');return;}if(_0x26c82c[_0x4fc10b(0x107)]===_0x4fc10b(0x170)){if(z('←\x20message\x20from\x20'+_0x26c82c[_0x4fc10b(0x163)]+':\x20'+_0x26c82c['message']['slice'](0x0,0x3c)),await K[_0x4fc10b(0x190)]({'method':'notifications/claude/channel','params':{'content':_0x26c82c[_0x4fc10b(0x15f)],'meta':{'sender':_0x26c82c[_0x4fc10b(0x163)]||'hub','sender_id':_0x4fc10b(0x125),'user':_0x26c82c[_0x4fc10b(0x163)]||_0x4fc10b(0x15a),'priority':_0x4fc10b(0x114)}}}),_0x26c82c[_0x4fc10b(0x12e)])await Q(_0x4fc10b(0x14a),{'alias':p,'message_id':_0x26c82c[_0x4fc10b(0x12e)]});return;}if(_0x26c82c[_0x4fc10b(0x107)]==='new_task'||_0x26c82c[_0x4fc10b(0x107)]==='broadcast'){z('←\x20'+_0x26c82c[_0x4fc10b(0x107)]+_0x4fc10b(0xfb)+_0x26c82c['inbox_count']+'\x20priority='+(_0x26c82c[_0x4fc10b(0x152)]||_0x4fc10b(0x114)));let _0x10054b=await Q('get_inbox',{'alias':p,'limit':0x5});if(_0x10054b?.['ok']&&_0x10054b[_0x4fc10b(0x100)]?.[_0x4fc10b(0x102)]>0x0)for(let _0x3c4839 of _0x10054b[_0x4fc10b(0x100)]){let _0x553fd1={'sender':_0x3c4839['from_session']||_0x4fc10b(0x15a),'sender_id':'commhub','user':_0x3c4839[_0x4fc10b(0x16d)]||_0x4fc10b(0x15a),'task_id':_0x3c4839['id'],'priority':_0x3c4839[_0x4fc10b(0x152)]||_0x4fc10b(0x114)};G[_0x4fc10b(0x109)](_0x3c4839['id'],_0x3c4839['from_session']||'hub'),await K[_0x4fc10b(0x190)]({'method':_0x4fc10b(0x147),'params':{'content':_0x3c4839[_0x4fc10b(0x187)],'meta':_0x553fd1}}),z(_0x4fc10b(0x11a)+_0x3c4839['id'][_0x4fc10b(0x193)](0x0,0x8)+'\x20from\x20'+_0x3c4839[_0x4fc10b(0x16d)]+':\x20'+_0x3c4839[_0x4fc10b(0x187)][_0x4fc10b(0x193)](0x0,0x3c)),await Q(_0x4fc10b(0x14a),{'alias':p,'message_id':_0x3c4839['id']});}}}async function t(){const _0x2ef511=a0_0x3998da;let _0x32af90=new a0_0xc4434c();await K[_0x2ef511(0x14e)](_0x32af90),z(_0x2ef511(0x12f)),z(_0x2ef511(0x178)),l()[_0x2ef511(0xf8)](_0x78b2f0=>z(_0x2ef511(0x13e)+_0x78b2f0)),Q(_0x2ef511(0x126),{'resume_id':V,'alias':p,'status':_0x2ef511(0x15d),'server':a0_0xd1cc4e(),'hostname':a0_0xd1cc4e(),'agent':_0x2ef511(0x134),'project_dir':process[_0x2ef511(0x192)](),'tmux_name':j||void 0x0})[_0x2ef511(0x14d)](()=>z(_0x2ef511(0x13d)+p+'\x22\x20('+V['slice'](0x0,0x8)+')'))[_0x2ef511(0xf8)](_0x2948cd=>z(_0x2ef511(0x127)+_0x2948cd)),setInterval(()=>{const _0x52493b=_0x2ef511;Q(_0x52493b(0x126),{'resume_id':V,'alias':p,'status':_0x52493b(0x15d),'server':a0_0xd1cc4e(),'hostname':a0_0xd1cc4e(),'agent':'claude-code','project_dir':process[_0x52493b(0x192)](),'tmux_name':j||void 0x0})[_0x52493b(0xf8)](_0x5311a8=>z(_0x52493b(0x16c)+_0x5311a8));},0x2bf20),z(_0x2ef511(0x177));}t()[a0_0x3998da(0xf8)](_0x219017=>{const _0x3c6010=a0_0x3998da;z(_0x3c6010(0x164)+_0x219017),process[_0x3c6010(0x157)](0x1);});async function b(){const _0x174360=a0_0x3998da;z(_0x174360(0x159)),await Q('report_status',{'resume_id':V,'alias':p,'status':'offline','task':_0x174360(0x131)})[_0x174360(0xf8)](()=>{}),process['exit'](0x0);}process[a0_0x3998da(0x121)]['on'](a0_0x3998da(0x161),()=>b()),process['on'](a0_0x3998da(0x146),()=>b()),process['on'](a0_0x3998da(0x155),()=>b());var d=process['ppid'];if(d&&d>0x1){let h=setInterval(()=>{const _0x1554d0=a0_0x3998da;if(process[_0x1554d0(0x122)]===0x1&&d!==0x1){z(_0x1554d0(0x118)+d+')\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat'),b();return;}try{process[_0x1554d0(0x158)](d,0x0);}catch(_0x325ac9){if(_0x325ac9?.[_0x1554d0(0x10d)]==='ESRCH')z(_0x1554d0(0x171)+d+'\x20no\x20longer\x20exists\x20(kill-0\x20ESRCH)\x20—\x20self-exit\x20to\x20avoid\x20ghost\x20heart-beat'),b();}},0x7530);if(typeof h[a0_0x3998da(0x182)]===a0_0x3998da(0x135))h[a0_0x3998da(0x182)]();}
|
|
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']();}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const OPENCODE_AGENT_NETWORK_VERSION = "2.3.0-preview.
|
|
1
|
+
export declare const OPENCODE_AGENT_NETWORK_VERSION = "2.3.0-preview.34";
|
|
2
2
|
export declare const OPENCODE_AGENT_NODE_VERSION = "2.5.0-preview.26";
|
|
3
3
|
export declare const OPENCODE_AGENT_NODE_SPEC = "@sleep2agi/agent-node@2.5.0-preview.26";
|
|
4
4
|
export declare function opencodeExactPairInstallCommand(): string;
|
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.37",
|
|
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",
|