monster-orchestrator 3.0.0 → 3.2.0
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-obf/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const a0bp=a0c;(function(a,c){const bo=a0c,d=a();while(!![]){try{const e=-parseInt(bo(0x1bf))/0x1*(-parseInt(bo(0x1d3))/0x2)+parseInt(bo(0x1ef))/0x3+-parseInt(bo(0x141))/0x4*(parseInt(bo(0x12c))/0x5)+-parseInt(bo(0x1a3))/0x6*(parseInt(bo(0x223))/0x7)+parseInt(bo(0x189))/0x8+parseInt(bo(0x158))/0x9+-parseInt(bo(0x12a))/0xa*(parseInt(bo(0x23c))/0xb);if(e===c)break;else d['push'](d['shift']());}catch(h){d['push'](d['shift']());}}}(a0a,0xee16d));import{Server as a0aM}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0aN}from'@modelcontextprotocol/sdk/server/stdio.js';import{CallToolRequestSchema as a0aO,ListToolsRequestSchema as a0aP}from'@modelcontextprotocol/sdk/types.js';import*as a0aQ from'node:fs';import*as a0aR from'node:fs/promises';import*as a0aS from'node:os';import*as a0aT from'node:path';import{fileURLToPath as a0aU}from'node:url';function a0c(a,b){a=a-0x10e;const c=a0a();let d=c[a];if(a0c['uQtPor']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=0x0,o,p,q=0x0;p=i['charAt'](q++);~p&&(o=n%0x4?o*0x40+p:p,n++%0x4)?l+=String['fromCharCode'](0xff&o>>(-0x2*n&0x6)):0x0){p=j['indexOf'](p);}for(let r=0x0,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(m);};a0c['hKSOFc']=e,a0c['VJPvrk']={},a0c['uQtPor']=!![];}const f=c[0x0],g=a+f,h=a0c['VJPvrk'][g];return!h?(d=a0c['hKSOFc'](d),a0c['VJPvrk'][g]=d):d=h,d;}var J=process.env.MONSTER_MCP_ROOT,E=J&&J[a0bp(0x1a7)]>0x0?J:a0aT[a0bp(0x1eb)](a0aS['homedir'](),a0bp(0x15c),a0bp(0x210)),Q=a0aT[a0bp(0x1eb)](E,a0bp(0x188)),Y=a0aT[a0bp(0x1eb)](E,a0bp(0x1bc)),f=a0aT[a0bp(0x1eb)](E,a0bp(0x13b)),N=a0aT['join'](E,a0bp(0x228)),R=a0aT['join'](E,a0bp(0x1ae)),dt=0xa*0x400*0x400,lt=0x5*0x400*0x400;function O(a){const bq=a0bp;return a0aT[bq(0x1eb)](E,a);}function ft(a){const br=a0bp;return a0aT[br(0x1eb)](O(a),br(0x212));}function _t(a){const bs=a0bp;return a0aT['join'](O(a),bs(0x19b));}function ht(a){const bu=a0bp;return a0aT[bu(0x1eb)](O(a),bu(0x1cb));}function wt(){const bv=a0bp;if(process.env.MONSTER_HOOK_PATH)return process.env.MONSTER_HOOK_PATH;try{let a=a0aU(import.meta.url),c=a0aT[bv(0x15b)](a0aT[bv(0x20a)](a),'..');return a0aT[bv(0x1eb)](c,bv(0x115),'monster-stop-hook');}catch{return a0aT[bv(0x1eb)](a0aS[bv(0x11e)](),bv(0x1f4),bv(0x257));}}function tt(){const bw=a0bp;a0aQ[bw(0x1f1)](E,{'recursive':!0x0}),a0aQ[bw(0x1df)](f)||a0aQ[bw(0x248)](f,'','utf8');}async function de(){const bx=a0bp;try{if((await a0aR[bx(0x12e)](f))[bx(0x161)]<dt)return!0x1;}catch{return!0x1;}try{return a0aQ['existsSync'](R)&&await a0aR['unlink'](R),a0aQ['existsSync'](N)&&await a0aR[bx(0x17a)](N,R),await a0aR['rename'](f,N),await a0aR['writeFile'](f,'','utf8'),!0x0;}catch{return!0x1;}}async function P(a){const by=a0bp;tt(),await de();let c=JSON[by(0x136)](a)+'\x0a';await a0aR['appendFile'](f,c,by(0x151));}function C(a,c,d,h={}){return{'ts':new Date()['toISOString'](),'monster_id':a,'event':d,'session':c,'meta':h};}function le(a){const bz=a0bp;let c=a['split']('\x0a'),d=[];for(let h of c)if(h[bz(0x195)]())try{if(bz(0x176)===bz(0x160)){let o=c[bz(0x118)](h);o&&o['ts']&&o[bz(0x138)]&&i[bz(0x208)](o);}else{let o=JSON['parse'](h);o&&o['ts']&&o[bz(0x138)]&&d[bz(0x208)](o);}}catch{}return d;}async function Z(a){const bA=a0bp;try{return await a0aR[bA(0x170)](a,bA(0x151));}catch{return'';}}async function St(){const bB=a0bp;let a=[],c=[];a0aQ['existsSync'](R)&&(c['push'](await Z(R)),a[bB(0x208)]('events.log.2')),a0aQ['existsSync'](N)&&(c['push'](await Z(N)),a[bB(0x208)](bB(0x228))),a0aQ[bB(0x1df)](f)&&(c[bB(0x208)](await Z(f)),a[bB(0x208)](bB(0x13b)));let d=c['join']('\x0a');return{'events':le(d),'scannedFiles':a};}async function gt(a=0xc8){const bC=a0bp;let {events:c}=await St();return c[bC(0x171)](-a);}function yt(a,c){const bD=a0bp;return a[bD(0x19e)]?!!(a[bD(0x19e)]===c||a[bD(0x19e)][bD(0x20e)](c)):!0x1;}async function Et(d){const bE=a0bp;let h=Math[bE(0x1e2)](Math[bE(0x250)](d[bE(0x134)]??0x32,0x1),0x1f4),{events:p,scannedFiles:H}=await St(),T=p;if(d['monster_id']&&(T=T[bE(0x169)](a3=>yt(a3,d[bE(0x19e)]))),d[bE(0x1b3)]&&d[bE(0x1b3)][bE(0x1a7)]>0x0){if(bE(0x15a)===bE(0x1e5))return null;else{let a4=new Set(d['event_types']);T=T[bE(0x169)](a5=>a4[bE(0x1e3)](a5['event']));}}if(d[bE(0x201)]){if(bE(0x154)===bE(0x20d)){let a6=p['join'](a8,bE(0x15c));a6['mkdirSync'](a6,{'recursive':!0x0});let a7=d[bE(0x1eb)](a6,bE(0x21d)),a8=u(H);return T[bE(0x248)](a7,X['stringify'](a8,null,0x2),bE(0x151)),a7;}else{let a6=d[bE(0x201)];T=T[bE(0x169)](a7=>a7['ts']>a6);}}T['sort']((a7,a8)=>a7['ts']<a8['ts']?-0x1:a7['ts']>a8['ts']?0x1:0x0);let X=T[bE(0x1a7)],a0=T[bE(0x171)](-h),a1=X>a0[bE(0x1a7)],a2=a0[bE(0x1a7)]>0x0?a0[a0[bE(0x1a7)]-0x1]['ts']:null;return{'events':a0,'returned':a0[bE(0x1a7)],'has_more':a1,'max_event_ts':a2,'scanned_files':H};}function I(a,c){const bF=a0bp;let d=c?a[bF(0x169)](h=>yt(h,c)):a;return d[bF(0x1a7)]===0x0?null:d[d['length']-0x1];}function xt(a,c,d=0x5){const bG=a0bp;return c?a[bG(0x169)](h=>h['ts']>c)[bG(0x171)](-d):a['slice'](-d);}function fe(a,c){const bH=a0bp;let d=c[bH(0x17d)](a[bH(0x19e)]);return d?bH(0x25b)+d[bH(0x1bd)]:a[bH(0x19e)][bH(0x1a7)]>0x8?a[bH(0x19e)][bH(0x171)](0x0,0x8):a[bH(0x19e)];}function _e(a){const bI=a0bp;let c=new Date(a)[bI(0x15d)](),d=Date[bI(0x12f)](),h=Math[bI(0x250)](0x0,Math['floor']((d-c)/0x3e8));if(h<0x3c)return h+'s\x20ago';let i=Math['floor'](h/0x3c);return i<0x3c?i+bI(0x148):Math[bI(0x173)](i/0x3c)+bI(0x220);}function vt(a){const bJ=a0bp;let {runningCount:h,capacity:p,latestEvent:H,monstersById:T}=a;if(h===0x0&&!H)return'';let X=bJ(0x19f)+h+'/'+p,a0='';if(H){if(bJ(0x190)===bJ(0x17c))return{};else{let a2=fe(H,T),a3=_e(H['ts']),a4=H[bJ(0x1f2)]?.['subtype']?'\x20('+H[bJ(0x1f2)]['subtype']+')':'';a0=bJ(0x164)+H['event']+a4+'\x20@\x20'+a2+'\x20('+a3+')';}}return bJ(0x22b)+X+a0+bJ(0x142);}import*as a0aV from'node:fs';import*as a0aW from'node:fs/promises';import{execFile as a0aX}from'node:child_process';import{promisify as a0aY}from'node:util';var v=a0aY(a0aX),Se=/\x1b\[[0-9;?]*[A-Za-z]/g;function ge(a){const bK=a0bp;return a['replace'](Se,'')[bK(0x1cd)](/\r/g,'');}async function G(a){const bL=a0bp;try{return await v(bL(0x144),[bL(0x14b),'-t',a]),!0x0;}catch{return!0x1;}}async function Tt(a,c,d){const bM=a0bp;try{if(bM(0x129)!==bM(0x1f6))return await v('tmux',[bM(0x1c4),'-d','-s',a,'-c',c,d]),{'ok':!0x0};else d(c);}catch(i){return{'ok':!0x1,'error':i?.[bM(0x16d)]||i?.['message']||bM(0x184)};}}async function b(a){const bN=a0bp;try{return await v(bN(0x144),['kill-session','-t',a]),!0x0;}catch{return!0x1;}}async function D(a,c){const bO=a0bp;try{let {stdout:d}=await v(bO(0x144),[bO(0x16b),'-t',a,'-p','-S','-'+c]);return ge(d);}catch{if(bO(0x163)!==bO(0x249))return'';else{let i=[];for(let n of h[bO(0x132)]('\x0a'))if(n[bO(0x195)]())try{let u=u[bO(0x118)](n);u&&u['ts']&&u['event']&&i[bO(0x208)](u);}catch{}return i;}}}function ye(a){const bP=a0bp;return Math[bP(0x1e2)](0x64+Math[bP(0x173)](a/0x4),0x5dc);}async function $(a,c){const bQ=a0bp;try{if(bQ(0x16f)===bQ(0x1ce)){let h=n(o.env.MONSTER_MAX_CONCURRENT??0x5);return p[bQ(0x1d0)](h)?r[bQ(0x1e2)](s[bQ(0x250)](h[bQ(0x173)](h),0x1),0xa):0x5;}else{let h=c[bQ(0x1cd)](/\n+$/,'');await v('tmux',[bQ(0x1ed),'-t',a,'-l',h]);let i=ye(h[bQ(0x1a7)]);return await new Promise(o=>setTimeout(o,i)),await v(bQ(0x144),[bQ(0x1ed),'-t',a,bQ(0x14e)]),await new Promise(o=>setTimeout(o,0xc8)),await v(bQ(0x144),[bQ(0x1ed),'-t',a,bQ(0x14e)]),{'ok':!0x0,'bytes':Buffer[bQ(0x259)](h,bQ(0x151))};}}catch(o){if(bQ(0x1d9)==='VGiRX')return{'ok':!0x1,'bytes':0x0,'error':o?.[bQ(0x16d)]||o?.[bQ(0x214)]||bQ(0x153)};else{let r=new o(p)['getTime'](),u=a2[bQ(0x12f)](),H=u['max'](0x0,a['floor']((u-r)/0x3e8));if(H<0x3c)return H+bQ(0x1a6);let a2=u['floor'](H/0x3c);return a2<0x3c?a2+'m\x20ago':H[bQ(0x173)](a2/0x3c)+bQ(0x220);}}}var Ee=/bypass permissions on|shift\+tab to cycle|esc to interrupt|⏵⏵/,xe=[{'pattern':/trust this folder|Is this a project you (created|trust)/,'response':'','description':'workdir\x20trust\x20prompt(初回\x20workdir\x20の信頼確認)'}];async function ve(a){const bR=a0bp;try{await v(bR(0x144),['send-keys','-t',a,bR(0x14e)]);}catch{}}function Te(a){const bS=a0bp;for(let c of xe)if(c['pattern'][bS(0x11c)](a))return c;return null;}async function kt(a,c=0x2d){const bT=a0bp;let d=new Set();for(let h=0x0;h<c;h++){let i=await D(a,0x32);if(Ee[bT(0x11c)](i))return!0x0;let p=Te(i);p&&!d['has'](p[bT(0x1b5)])&&(p[bT(0x140)]?await $(a,p[bT(0x140)]):await ve(a),d[bT(0x166)](p[bT(0x1b5)])),await new Promise(u=>setTimeout(u,0x3e8));}return!0x1;}async function At(a){const bU=a0bp;try{let {stdout:c}=await v(bU(0x144),[bU(0x238),'-t',a,'-F',bU(0x162)]),d=Number(c[bU(0x195)]()[bU(0x132)]('\x0a')[0x0]);return Number[bU(0x1d0)](d)?d:null;}catch{return null;}}function It(){const bV=a0bp;a0aV[bV(0x1f1)](E,{'recursive':!0x0});}async function m(){const bW=a0bp;It();try{let a=await a0aW[bW(0x170)](Q,bW(0x151)),c=JSON[bW(0x118)](a);return!c||typeof c!=bW(0x1fa)||!c[bW(0x210)]?{'monsters':{}}:c;}catch(d){return d?.[bW(0x229)]==='ENOENT'?{'monsters':{}}:{'monsters':{}};}}async function _(a){const bX=a0bp;It();let c=JSON[bX(0x136)](a,null,0x2);await a0aW['writeFile'](Y,c,'utf8'),await a0aW[bX(0x17a)](Y,Q);}function j(a){const bY=a0bp;return Object['values'](a[bY(0x210)])[bY(0x169)](c=>c[bY(0x1e7)]===bY(0x207))[bY(0x1a7)];}function k(a,c){const bZ=a0bp;if(a[bZ(0x210)][c])return a[bZ(0x210)][c];for(let d of Object[bZ(0x168)](a[bZ(0x210)]))if(d[bZ(0x1bd)]===c)return d;return null;}async function S(a){const c0=a0bp;let c=Date['now']();for(let d of Object[c0(0x19d)](a[c0(0x210)])){if(c0(0x18e)==='oclbF'){let h=a[c0(0x210)][d];if(h['status']!==c0(0x207))continue;if(!await G(h[c0(0x14a)])){h[c0(0x1e7)]=c0(0x13d),h[c0(0x196)]='session\x20disappeared',h['last_action_at']=new Date()['toISOString']();continue;}new Date(h[c0(0x19a)])[c0(0x15d)]()<=c&&(await b(h['tmux_session']),h[c0(0x1e7)]=c0(0x139),h[c0(0x196)]='auto-stopped\x20on\x20timeout',h[c0(0x1f8)]=new Date()[c0(0x20f)]());}else return e[c0(0x1eb)](h(i),c0(0x19b));}return a;}import*as a0aZ from'node:fs';import*as a0b0 from'node:fs/promises';import a0b1 from'chokidar';var Ae=0xbb8;function Oe(a){const c1=a0bp;let c=[];for(let d of a[c1(0x132)]('\x0a'))if(d['trim']())try{let h=JSON[c1(0x118)](d);h&&h['ts']&&h[c1(0x138)]&&c[c1(0x208)](h);}catch{}return c;}function Rt(a){const c2=a0bp;tt();let c=0x0;try{c=a0aZ[c2(0x1ad)](f)[c2(0x161)];}catch{c=0x0;}let d=async H=>{const c3=c2;let T=null;try{let X=await a0b0[c3(0x12e)](f);if(X[c3(0x161)]<H&&(H=0x0),X[c3(0x161)]===H)return H;T=await a0b0['open'](f,'r');let a0=X[c3(0x161)]-H,a1=Buffer[c3(0x1b2)](a0);await T['read'](a1,0x0,a0,H);let a2=a1['toString'](c3(0x151));for(let a3 of Oe(a2))try{a(a3);}catch{}return X['size'];}catch{return H;}finally{if(c3(0x21f)==='wflCl')T&&await T[c3(0x227)]();else return e['join'](h(i),c3(0x212));}},h=null;try{if(c2(0x187)!==c2(0x187)){let u=h(import.meta.url),H=i[c2(0x15b)](n[c2(0x20a)](u),'..');return o[c2(0x1eb)](H,'scripts',c2(0x257));}else h=a0b1[c2(0x133)](f,{'usePolling':!0x1,'awaitWriteFinish':!0x1,'ignoreInitial':!0x0,'atomic':!0x1}),h['on'](c2(0x1c3),async()=>{c=await d(c);}),h['on']('add',async()=>{c=await d(c);}),h['on'](c2(0x186),()=>{});}catch{h=null;}let i=setInterval(async()=>{const c4=c2;try{'LODsZ'!==c4(0x247)?(await a0b0[c4(0x12e)](f))['size']!==c&&(c=await d(c)):c=0x0;}catch{}},Ae);return{'stop':async()=>{const c5=c2;if(c5(0x230)===c5(0x1de))n['mkdirSync'](o,{'recursive':!0x0}),p['existsSync'](r)||s['writeFileSync'](a,'','utf8');else{if(clearInterval(i),h)try{'TNpeq'===c5(0x147)?c=h[c5(0x1ad)](i)['size']:await h['close']();}catch{}}}};}import*as a0b2 from'node:fs';import*as a0b3 from'node:fs/promises';import*as a0b4 from'node:path';var Ie=0xea60;async function Ne(a){const c6=a0bp;try{if((await a0b3['stat'](a))[c6(0x161)]<lt)return;}catch{return;}let c=_t(a0b4[c6(0x213)](a0b4[c6(0x20a)](a)));try{a0b2[c6(0x1df)](c)&&await a0b3[c6(0x192)](c),await a0b3[c6(0x17a)](a,c);}catch{}}async function Re(a,c){const c7=a0bp;let d=O(a);await a0b3['mkdir'](d,{'recursive':!0x0});let h=ft(a);await Ne(h);let o=await D(c,0x64),p=c7(0x119)+new Date()[c7(0x20f)]()+'\x20=====\x0a';try{if(c7(0x182)===c7(0x182))await a0b3[c7(0x165)](h,p+o+'\x0a',c7(0x151));else{if(p.env.MONSTER_HOOK_PATH)return r.env.MONSTER_HOOK_PATH;try{let H=a0(import.meta.url),T=a1[c7(0x15b)](a2[c7(0x20a)](H),'..');return a3[c7(0x1eb)](T,c7(0x115),c7(0x257));}catch{return a6[c7(0x1eb)](a7[c7(0x11e)](),c7(0x1f4),c7(0x257));}}}catch{}}function et(a,c){let d=setInterval(()=>{Re(a,c);},Ie);return{'stop':()=>clearInterval(d)};}var nt=0x1f4;function U(a,c){const c8=a0bp;try{process[c8(0x16d)][c8(0x1ff)]('[monster-orchestrator]\x20'+a+':\x20'+String(c)+'\x0a');}catch{}}function Lt(){const c9=a0bp;process['on'](c9(0x1b6),a=>{const ca=c9;U('uncaughtException',a),process[ca(0x1c8)](0x1);}),process['on']('unhandledRejection',a=>{U('unhandledRejection',a);});}var Mt=!0x1;function be(a){const cc=a0bp;if(Mt)return;Mt=!0x0;let c=d=>{const cb=a0c;if('bpepi'==='bpepi')U(cb(0x1fb),d),a(d);else{let i=d.env.MIKOTO_API_BASE_URL;return!i||i['length']===0x0?c:i[cb(0x1cd)](/\/+$/,'');}};process[cc(0x121)]['on'](cc(0x246),()=>c(cc(0x256))),process['stdin']['on'](cc(0x227),()=>c(cc(0x1e9))),process['on'](cc(0x114),()=>c(cc(0x114))),typeof process[cc(0x125)]=='function'&&process['on'](cc(0x125),()=>c(cc(0x1ec))),process[cc(0x24f)]['on']('error',d=>{const cd=cc;d?.[cd(0x229)]==='EPIPE'&&c(cd(0x1d1));});}async function Pt(){const cf=a0bp;let a=await S(await m());await _(a);let c=await gt(nt),d={'recentEvents':c,'maxEventTs':c['length']>0x0?c[c['length']-0x1]['ts']:null,'watcher':null,'snapshotHandles':new Map(),'stopAll':async()=>{const ce=a0c;d[ce(0x1db)]&&(await d['watcher']['stop'](),d['watcher']=null);for(let h of d[ce(0x120)][ce(0x168)]())h['stop']();d[ce(0x120)][ce(0x10f)]();}};d[cf(0x1db)]=Rt(h=>{const cg=cf;d['recentEvents'][cg(0x208)](h),d[cg(0x180)][cg(0x1a7)]>nt&&d[cg(0x180)]['splice'](0x0,d['recentEvents'][cg(0x1a7)]-nt),(!d[cg(0x226)]||h['ts']>d[cg(0x226)])&&(d[cg(0x226)]=h['ts']);});for(let h of Object[cf(0x168)](a[cf(0x210)]))h[cf(0x1e7)]==='running'&&d[cf(0x120)][cf(0x1b4)](h['id'],et(h['id'],h[cf(0x14a)]));return d;}function Ct(a){const ci=a0bp;let c=!0x1,d=async h=>{const ch=a0c;if('voxWL'==='voxWL'){if(!c){c=!0x0,U('shutdown',h);try{await a['stopAll']();}catch(i){U('stopAll-failed',i);}process[ch(0x1c8)](0x0);}}else{let {runningCount:a1,capacity:a2,latestEvent:a3,monstersById:a4}=a1;if(a1===0x0&&!a3)return'';let a5=ch(0x19f)+a1+'/'+a2,a6='';if(a3){let a7=a3(a3,a4),a8=a5(a3['ts']),a9=a3['meta']?.[ch(0x127)]?'\x20('+a3['meta'][ch(0x127)]+')':'';a6=ch(0x164)+a3[ch(0x138)]+a9+'\x20@\x20'+a7+'\x20('+a8+')';}return ch(0x22b)+a5+a6+ch(0x142);}};process['on'](ci(0x251),()=>{const cj=ci;d(cj(0x251));}),process['on'](ci(0x123),()=>{const ck=ci;if(ck(0x11b)===ck(0x172)){let i=new d(ck(0x1da)+c['error']);throw i['code']=ck(0x1d4),i;}else d(ck(0x123));}),be(h=>{d(h);});}function Dt(a,c,d){const cl=a0bp;a[cl(0x120)][cl(0x1e3)](c)||a[cl(0x120)][cl(0x1b4)](c,et(c,d));}function $t(a,c){const cm=a0bp;let d=a[cm(0x120)][cm(0x17d)](c);d&&(d[cm(0x1c6)](),a[cm(0x120)][cm(0x1cf)](c));}var jt='default',Me=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})$/;function q(a){const co=a0bp;if(typeof a!=co(0x1e4))return jt;let c=a['trim']();return c[co(0x1a7)]>0x0?c:jt;}function Ft(a){const cp=a0bp;if(typeof a!='string'||!Me['test'](a))return!0x1;let c=Date[cp(0x118)](a);return Number['isFinite'](c);}function Le(a,c){const cq=a0bp;return a[cq(0x1c5)]?.[c];}async function Ut(a){let c=await m();return Le(c,a);}async function Bt(a,c){const cr=a0bp;let d=await m(),h=d['cursors']?.[a]??null;return d[cr(0x1c5)]||(d[cr(0x1c5)]={}),d[cr(0x1c5)][a]=c,await _(d),{'previous':h,'current':c};}async function Ht(d){const cs=a0bp;let h=d[cs(0x19e)];if(h){let T=await m(),X=k(T,h);X&&(h=X['id']);}let p=typeof d[cs(0x13c)]=='string'&&d[cs(0x13c)][cs(0x195)]()[cs(0x1a7)]>0x0?q(d[cs(0x13c)]):null,s=d[cs(0x201)],u=null;if(!s&&p){let a0=await Ut(p);a0&&(s=a0,u=a0);}let H=await Et({'monster_id':h,'since_ts':s,'event_types':d[cs(0x1b3)],'limit':d[cs(0x134)]});return{'events':H[cs(0x22a)],'returned':H['returned'],'has_more':H[cs(0x1b1)],'max_event_ts':H[cs(0x183)],'scanned_files':H[cs(0x177)],...p?{'agent_id':p,'cursor_used':u}:{}};}import{readFileSync as a0b5,existsSync as a0b6}from'node:fs';import{homedir as a0b7}from'node:os';import{join as a0b8}from'node:path';import{scryptSync as a0b9,createDecipheriv as a0ba}from'node:crypto';var st=a0b8(a0b7(),a0bp(0x145),a0bp(0x19c)),Ue='musuhi-vscode-portal-token-key-2025',A=class extends Error{constructor(a){const ct=a0bp;super('BlueLamp\x20にログインしてください。ターミナルで\x20`bluelamp1`\x20を一度実行すると\x20~/.musuhi/portal-token.enc\x20が作成されます'+(a?ct(0x197)+a+')':'')),this[ct(0x1ea)]='CliTokenNotFoundError';}};function Gt(){const cu=a0bp;if(!a0b6(st))throw new A(st+cu(0x1a2));let c;try{if(cu(0x199)==='KwTeU')c=a0b5(st,cu(0x116));else return'';}catch(u){if(cu(0x235)!==cu(0x216))throw new A(cu(0x146)+u[cu(0x214)]);else return d[cu(0x1eb)](e['homedir'](),cu(0x1f4),cu(0x257));}let [d,h]=c[cu(0x132)](':');if(!d||!h)throw new A(cu(0x24e));try{if(cu(0x130)===cu(0x167)){let X=new d(cu(0x1b0)+d[cu(0x1e7)]);throw X[cu(0x229)]=cu(0x191),X;}else{let X=a0b9(Ue,cu(0x1c1),0x20),a0=Buffer[cu(0x233)](d,cu(0x17b)),a1=a0ba(cu(0x206),X,a0),a2=a1[cu(0x18d)](h,'hex',cu(0x116))+a1['final'](cu(0x116)),a3=JSON['parse'](a2);if(typeof a3[cu(0x1e1)]!='string'||a3['token'][cu(0x1a7)]===0x0)throw new Error('token\x20field\x20missing');return a3[cu(0x1e1)];}}catch(a4){throw new A(cu(0x128)+a4['message']);}}var Be=a0bp(0x1bb),He=a0bp(0x23a),Ge=a0bp(0x14d),Ke=0x7530,y=class extends Error{[a0bp(0x229)];[a0bp(0x1e7)];[a0bp(0x11d)];constructor(a,c,d,h){const cv=a0bp;super(c),this['name']=cv(0x1f0),this[cv(0x229)]=a,this[cv(0x1e7)]=d,this[cv(0x11d)]=h;}},rt=new Map();function qe(){const cw=a0bp;return(process.env.BLUELAMP_PORTAL_API_BASE_URL||Be)[cw(0x1cd)](/\/+$/,'');}function ze(){const cx=a0bp;let a=process.env.MIKOTO_API_BASE_URL;return!a||a[cx(0x1a7)]===0x0?He:a[cx(0x1cd)](/\/+$/,'');}function Ve(){const cy=a0bp;try{if(cy(0x255)!=='GsqRL')return Gt();else{let c=i??d(),d={};for(let {key:e,arg:h}of c)d[e]=[{'matcher':'','hooks':[{'type':cy(0x1d2),'command':c+'\x20'+t+'\x20'+h}]}];return{'hooks':d,'permissions':{'allow':r}};}}catch(c){throw c instanceof A?new y('LOGIN_REQUIRED',c['message']):new y(cy(0x200),cy(0x243)+c[cy(0x214)]);}}function qt(a){const cz=a0bp;return[...a][cz(0x23d)]()[cz(0x1eb)](',');}async function Xe(a){const cA=a0bp;try{if('tqJfP'===cA(0x237))d(cA(0x219),e);else{let d=await a[cA(0x24c)]();return{'message':typeof d?.['message']==cA(0x1e4)?d[cA(0x214)]:void 0x0,'code':typeof d?.[cA(0x229)]==cA(0x1e4)?d['code']:void 0x0,'raw':d};}}catch{return{};}}async function zt(a){const cB=a0bp;let c=await Xe(a);throw a['status']===0x191?new y(cB(0x200),cB(0x1b7),0x191,c[cB(0x11a)]):a['status']===0x193&&c[cB(0x229)]==='RANK_INSUFFICIENT'?new y(cB(0x24d),c[cB(0x214)]??cB(0x253),0x193,c[cB(0x11a)]):a[cB(0x1e7)]===0x1ad&&c['code']==='QUOTA_EXCEEDED'?new y(cB(0x205),c[cB(0x214)]??cB(0x1cc),0x1ad,c[cB(0x11a)]):a[cB(0x1e7)]>=0x1f4?new y(cB(0x156),c[cB(0x214)]??'backend\x20unavailable\x20('+a[cB(0x1e7)]+')',a[cB(0x1e7)],c[cB(0x11a)]):new y(cB(0x1ab),c[cB(0x214)]??cB(0x17f)+a[cB(0x1e7)]+')',a['status'],c[cB(0x11a)]);}async function ot(a,c){const cC=a0bp;try{return await fetch(a,c);}catch(d){if(cC(0x1f5)===cC(0x1e8))c(cC(0x251));else{let i=d instanceof Error?d[cC(0x214)]:String(d);throw new y(cC(0x156),cC(0x22e)+i);}}}async function Kt(d){const cD=a0bp;let h=qt(d),p=rt['get'](h);if(p&&Date['now']()<p[cD(0x245)]-Ke)return p['token'];let u=Ve(),H=qe()+'/auth/exchange',T=await ot(H,{'method':cD(0x20c),'headers':{'Content-Type':cD(0x239),'X-CLI-Token':u},'body':JSON[cD(0x136)]({'mcp_id':Ge,'requested_scopes':d})});T['ok']||await zt(T);let X=await T[cD(0x24c)](),a0=X?.[cD(0x234)]?.[cD(0x21b)],a1=X?.[cD(0x234)]?.['expires_in'];if(!X?.[cD(0x11f)]||typeof a0!=cD(0x1e4)||typeof a1!=cD(0x150))throw new y(cD(0x1ab),cD(0x174));return rt['set'](h,{'token':a0,'expiresAt':Date['now']()+a1*0x3e8}),a0;}function Je(a){rt['delete'](qt(a));}async function it(c,d,h,p){const cE=a0bp;let u=''+ze()+d,H=a0=>({'method':c,'headers':{'Authorization':cE(0x152)+a0,'Content-Type':cE(0x239)},'body':h!==void 0x0?JSON['stringify'](h):void 0x0}),T=await Kt([p]),X=await ot(u,H(T));return X[cE(0x1e7)]===0x191&&(Je([p]),T=await Kt([p]),X=await ot(u,H(T))),X['ok']||await zt(X),await X[cE(0x24c)]();}async function Vt(a){const cF=a0bp;return await it(cF(0x20c),'/monster/authorize-spawn',a,cF(0x1fc));}async function Xt(a){const cG=a0bp;return await it(cG(0x20c),cG(0x16a),{'session_id':a},'monster:write');}async function Jt(a){const cH=a0bp;let c=a===void 0x0?'/monster/sessions':cH(0x13e)+encodeURIComponent(a[cH(0x1eb)](','));return await it('GET',c,void 0x0,'monster:read');}import*as a0bb from'node:fs';import*as a0bc from'node:path';import{randomUUID as a0bd}from'node:crypto';import*as a0bf from'node:fs';import*as a0bg from'node:path';var We=[{'key':a0bp(0x13a),'arg':a0bp(0x20b)},{'key':a0bp(0x1f9),'arg':a0bp(0x179)},{'key':'UserPromptSubmit','arg':'user_prompt'},{'key':a0bp(0x1dd),'arg':'session_end'},{'key':a0bp(0x202),'arg':a0bp(0x15f)}],Qe=['Bash',a0bp(0x17e),'Write','Edit',a0bp(0x232),'Grep','WebFetch',a0bp(0x1ee),'Task',a0bp(0x1a9),a0bp(0x1d5)];function Ye(a,c){const cI=a0bp;let d=c??wt(),h={};for(let {key:i,arg:p}of We)h[i]=[{'matcher':'','hooks':[{'type':cI(0x1d2),'command':d+'\x20'+a+'\x20'+p}]}];return{'hooks':h,'permissions':{'allow':Qe}};}function Wt(a,c){const cJ=a0bp;let d=a0bg['join'](a,cJ(0x15c));a0bf[cJ(0x1f1)](d,{'recursive':!0x0});let h=a0bg[cJ(0x1eb)](d,cJ(0x21d)),i=Ye(c);return a0bf[cJ(0x248)](h,JSON['stringify'](i,null,0x2),cJ(0x151)),h;}function a0a(){const d2=['zxHPDa','Cxj2v1O','ve1vwf9qqvnurv9gquLmruq6ia','D29YA3nWywnL','5lIM5yIxiduG5lIk6zMq44gR6ygu44gx44gM44ge44g+44gz','CMvWBgfJzq','EuDxDhG','zgvSzxrL','AxngAw5PDgu','C3rKB3v0luvqsvbf','y29TBwfUza','mtGWndyZnMLRuvz1wG','ve1vwf9tuefxtL9gquLmruq','tM90zwjVB2TfzgL0','ywDLBNrFAwqGAxmGCMvXDwLYzwqGkg5VBI1LBxb0EsbZDhjPBMCP','5zg844gZ5yE644gx5ywdigfNzw50ioobRUITMowiPEwTKo+8Ios+IZOGDgvJAc1SzwfKlw1HAw4GlYb0zwnOlwXLywqTBwLRB3rVlwTHAwrLBI1ywo+8IEoaGNnPBMnLx3rZioECGEEvPEAzGUobRUobV+wpGUEfP+obLEocJooaGwn1CNnVCNnBywDLBNrFAwrDioocKUIhQUwlLsbMywXSyMfJAYdJGAJJGzFJGABKVB/NLkJJGilNQBRJGB7JGz/JGA/MNkRMJiFLRPRJGARJGOKGy3vYC29YioocKUs9V+ocJ+obMUwfQos7TIbZy2fU77Yi5B6m5PA55lQs5O+B77Yj44cc','Dgv4Da','vKDPuLG','ve1vwf9tuefxtL9gquLmruq6ia','D2f0y2HLCG','zvf0ELm','u2vZC2LVBKvUza','rw51yMe','zxHPC3rZu3LUyW','C3rVCf9TB25ZDgvY','Dg9Rzw4','BwLU','AgfZ','C3rYAw5N','DxvZCLe','5y+w5B6x6kgm5PwW44cczgvMyxvSDca1mooaGw1HEca1mddJGii','C3rHDhvZ','uu1Zv2u','C3rKAw4Ty2XVC2u','BMfTzq','AM9PBG','AxbJlwrPC2nVBM5Ly3q','C2vUzc1RzxLZ','v2vIu2vHCMnO','mZKYndeZmLj5wwPUrW','qMfJA2vUzevYCM9Y','BwTKAxjtEw5J','Bwv0yq','BM9KztPMCW','yMLU','t1fSrvy','B3DTChq','DgLTzw91Df9TAw4','BgfZDf9Hy3rPB25Fyxq','tM90AwzPy2f0Aw9U','B2jQzwn0','CgfYzw50lwDVBMu','Bw9UC3rLCJP3CML0zq','Dg11EcbHDhrHy2GGlxqG','y2XHDwrL','D3jPDgu','te9hsu5FuKvrvuLsruq','C2LUy2vFDhm','u3vIywDLBNrtDg9W','C3bHD25FDgLTzw91Da','Aw5JBhvKzv9ZDg9WCgvK','uvvpvefFrvHdruveruq','ywvZlti1nI1JyMm','CNvUBMLUzW','ChvZAa','CMvHC29U','zgLYBMfTzq','AwrSzq','ue9tva','r3DOu2C','C3rHCNrZv2L0Aa','Dg9ju09tDhjPBMC','Bw9UC3rLCNm','yxjNDw1LBNrZ','C2vZC2LVBI5SB2C','yMfZzw5HBwu','BwvZC2fNzq','z2v0x21VBNn0zxjFzxzLBNrZ','qK5ptwK','C3bHD25Lza','Dg11EcbZzxnZAw9Uia','Dw5Oyw5KBgvKuMvQzwn0Aw9U','ru5pru5u','ywnJzxnZx3rVA2vU','BM9Kzq','C2v0DgLUz3mUANnVBG','BM9KztPWyxrO','D2zSq2W','AcbHz28','lM1JCc5QC29U','5yID5zUE5OYh56s677Yi6ksh5PwW6kgm5y+V77Yj','n0XXq2vvAq','yMX1zwXHBxaX','DMvYC2LVBG','Bwf4rxzLBNruCW','y2XVC2u','zxzLBNrZlMXVzY4X','y29Kzq','zxzLBNrZ','cUkuGokuGokuGokuGaO','Bw9UC3rLCIdJGA4GDg11EcbWyw5LioACQ+wWVIboioIHJoocKUwpLUw+L+obMEocI++8Iefou0KGC3rYAxaG5RIi77Yj44cc','BwfYA19LDMvUDhnFC2vLBG','yMfJA2vUzcb1BNjLywnOywjSztOG','BwfW','BunsBe8','ihn0yxj0zwqk','r2XVyG','zNjVBq','zgf0yq','thrMBue','tKzfq3q','r1nvAe8','BgLZDc1Wyw5LCW','yxbWBgLJyxrPB24VANnVBG','Ahr0Chm6lY95yw1HDg92AxnPB24TBwnWlwjHy2TLBMqTmJm1ndi2nZC4mdm5lMfZAweTBM9YDgHLyxn0ms5YDw4UyxbWl2fWAq','Bw9UC3rLCL9PzcdJGB7JGz/JGA8GC2HVCNrFAwq','mtfpwKzNvwC','C29YDa','Dw5RBM93BG','D2HPy2G','rvbjueu','Bw9UC3rLCIdJGPlLGzZMRAlVViH0Bxv4igTPBgWTC2vZC2LVBU+8IEobLYb3yxrJAgvYioocKIbKzxrHy2GG44gz44kl44cc','CxvLCMLLza','q0XjihrVA2vUioIQREobV+I+VoobV+wKSEAvLZOG','qK5bDeS','zxHWAxjLC0f0','zw5K','ugPTDvy','D3jPDgvgAwXLu3LUyW','Cg9Asfu','tufyx0nptKnvuLjftLrFuKvbq0Hfra','w21VBNn0zxiTB3jJAgvZDhjHDg9YxsbIywnRzw5Kihn0B3btzxnZAw9UigzHAwXLzcaOBg9JywWGC3rVCcbZDgLSBcbZDwnJzwvKzwqPoIa','ANnVBG','uKfos19jtLnvrKzjq0LftLq','Aw52ywXPzcbMAwXLigzVCM1HDa','C3rKB3v0','Bwf4','u0Lhvevstq','C2vW','55Qg5lYD5lUL5lIk44gm5B+f6kAb44gN44gz','Bw9UC3rLCIa','reHtDwu','C3rKAw4Tzw5K','Bw9UC3rLCI1ZDg9WlwHVB2S','C3rVChbLzcbIEsb1C2vY','yNL0zuXLBMD0Aa','zxzLBNrZlMXVzYdJGAVOQjJPJllJGzxJGOZJGOVLGzZMRAlNKiBNLle','Bw9UC3rLCI0','Bw9UC3rLCIdJGA4Gy3DKioobP+obR+obQUobJYbGls1HzgqTzgLYycdJGAFOQQ3JGB/MM7JJGy3OQlhLJ6/JGzxJGOZJGOVOV73LIQaGCgf0Ao+8IoE1TUwVVUodKEocUE+8IEoaGMn3zcdJGA8GBw9UC3rLCIbOB21L77YiFI8Uy2XHDwrLl21VBNn0zxjZl3TPzh0V77Yj44gR5zU65A6A77YiAg9VAYdOQk3LRPRJGA7OP6pMSBRJGA7JGz/JGOhMHi/LM7pNMOtVViNJGilNNihNLAxMMylJGA8GFI8Uy2XHDwrLl21VBNn0zxjZl3TPzh0VD29YA3nWywnLlYdJGPlMLRdOPO/KVzZMIjdJGzCGls1HzgqTzgLYiowVVUIXOEobQoobMEocI+oaGG','y2XLyxi','AwqGyw5Kig1LC3nHz2uGyxjLihjLCxvPCMvK','sNDIDha','Bw9UC3rLCI1VCMnOzxn0CMf0B3iGzMf0ywW6ia','ueDvDfG','u0Lhsfvq','C2nYAxb0CW','DxrMltG','vND2CeS','CgfYC2u','cJ09pt09ia','CMf3','wurdBhK','DgvZDa','zgv0ywLSCW','Ag9TzwrPCG','C3vJy2vZCW','C25HChnOB3riyw5KBgvZ','C3rKAw4','svnpidG2mdeG5PMc5yI744cc44gt44gU5PMc5yI75lUL6zMn44gU44kK44oz44oZ44oi44ks5lUy5lIo','u0Lhsu5u','ic0TBwnWlwnVBMzPzYaI','zgLZy29UBMvJDa','yNj3vhi','C3vIDhLWzq','zgvJCNLWDcbMywLSzwq6ia','vgfHBeK','mtuWodqWntbTCfHWrwq','yM9VBgvHBG','ntvwuMzzBuG','DKHXrw8','C3rHDa','BM93','D2rVrxu','DxnLCL9WCM9TChq','C3bSAxq','D2f0y2G','BgLTAxq','C2vUDa','C3rYAw5NAwz5','zxzLBNrZlMXVz++8IcSGCM90yxrLioA4IcaUms8UmU+8IEobI+ocIsborePtt04G44kK44oz44oZ44oi44ks44oA44o844k444oZ44kW5y+w5B6x44gz44kl44ccBw9UC3rLCL9PzcaVihnPBMnLx3rZic8GzxzLBNrFDhLWzxmG44gN44ov44kJ44oR44k/44cbBgLTAxqG44gN5lU25PwW5yI26zMq77YizgvMyxvSDca1mooaGw1HEca1mddVViNJGij2mI4ZlJaG44gl44kjigfNzw50x2LKioocKUA4OEobMEobQcbZAw5Jzv90CYdNNihNLAxMMylJGASGC3rHDguUANnVBI5JDxjZB3jZw2fNzw50x2LKxsdJGPlOH6RLI5uGzMfSBgjHy2SG44gO44gx44gM5l2/44gg77Yi5yMn5zUEig1HCMTFzxzLBNrZx3nLzw4G44gN6kIy6yYY44gx44gF5PMc5yI75lUL6zMn44gU44g/5y+w5B6x77Yj44cc44og44od44kV44oQ44o844oj5z6ligfNzw50ioobRYbHz2vUDf9Pzd0NDgvJAc1SzwfKlw1HAw4NioETIEocKUAmH+wUMIaRiowpLUw+L+w+JcbTyxHFzxzLBNrFDhmG44gNig1HCMTFzxzLBNrZx3nLzw4G44ks5zg844g26ygl55sO44ks5O6O5AwO44cc','zxzLBNq','DgLTzw91Da','u3rVCa','zxzLBNrZlMXVzW','ywDLBNrFAwq','C3rVChbLza','l21VBNn0zxiVC2vZC2LVBNm/ywXPDMu9','vvvjrcdJGB7JGz/JGA8GC2HVCNrFAwtJGilNNihNLAxMMylJGA/LHAGGBw9UC3rLCUoaGG','CMvZCg9UC2u','nZm0ntziCxnjuMS','cVcFKQeG57Az57AA55UJ6kAwoIaVBg9VCca2mhmGl2nOzwnRlw1VBNn0zxjZ77Yi56I85yon44k844oT44gN6iEQ5BEX57wc5lQg77Yj','D29YA2rPCG','Dg11Ea','lM11C3vOAq','CMvHzcbMywLSzwq6ia','r09JBxa','BsbHz28','CgfYyw1Z','Dg11Ef9ZzxnZAw9U','AgfZlxnLC3nPB24','DgfZAYaOC3rYAw5NksbPCYbYzxf1AxjLza','Bw9UC3rLCI1VCMnOzxn0CMf0B3i','rw50zxi','whjWqvy','BNvTyMvY','DxrMoa','qMvHCMvYia','Dg11EcbZzw5KlwTLExmGzMfPBgvK','zvvyB1q','5PYa5AsN5lU25PwW44cczgvMyxvSDca1mooaGw1HEca1mddJGii','qKfds0vorf9vtKfwquLmqujmrq','DgfZAW','nduYoduXmLneEKDMsq','DhmGAxmGCMvXDwLYzwqGyw5Kig11C3qGyMuGsvnpidG2mdeGkguUzY4GmJaYnI0Wnc0ZmfqXmJOZndO1nLOP','zMHkrem','CMvZB2X2zq','lMnSyxvKzq','z2v0vgLTzq','Aw5PDgLHBf9JB250zxH0','C3vIywDLBNrFC3rVCa','CwvMyMK','C2L6zq','i3TWyw5Lx3bPzh0','q2TKrM4','icb8icdWN5oSioACGoAwSoocPoodMEodS+odIdOG','yxbWzw5KrMLSzq','ywrK','EeTXrgm','DMfSDwvZ','zMLSDgvY','l21VBNn0zxiVC3rVCa','y2fWDhvYzs1Wyw5L','ve1vwf9qqvnurv9gquLmruq','C3rKzxjY','yK5nDNu','swDcDKi','CMvHzezPBgu','C2XPy2u','AuDHs2e','zMXVB3i','Dg9Rzw4GzxHJAgfUz2uG44oS44k544oD44oZ44k544gm5lIn5Q2J44gN44gz77YiywnJzxnZx3rVA2vUic8GzxHWAxjLC19PBIdLJ5BLVPFKUi3LJ6/VViK','C3bHD25FBw9UC3rLCG','Efjgqwu','C2nHBM5Lzf9MAwXLCW','ic0TywrKlwrPCIaI','yxDHAxrPBMDFAw5WDxq','CMvUyw1L','Agv4','Bhn0vfm','z2v0','uMvHza','yMfJA2vUzcbLCNjVCIaO','CMvJzw50rxzLBNrZ','BwnWlxnLCNzLCG','r0zYq0W','Bwf4x2v2zw50x3rZ','Dg11EcbUzxCTC2vZC2LVBIbMywLSzwq','Bw9UC3rLCI1VCMnOzxn0CMf0B3iGtunqihnLCNzLCIb2','zxjYB3i','DwLjC0q','C3rHDguUANnVBG','mti3mJKYohr0z3DWDG','svnpidG2mdeG5PMc5yI744cc44gt44gU5PMc5yI75lUL6zMn44ks6l+u44gz44cc','BgLZDf9TB25ZDgvYCW','y3vYCMvUDa','DxbKyxrL','B2nSyKy','5zg844gZ5yE644gx5ywdigfNzw50ioobRUITMowiPEwTKo+8Ios+IZOGDgvJAc1SzwfKlw1HAw7VViNJGilNQBRMLOFLRzFKUi3LJ6/JGii','z3zfr04','tu9ou1rfuL9ot1rFuLvotKLorW','Dw5SAw5R','6ycb5l+H44gz44kl44oH44od44k744o844k477Yi5Ps56kgm5y+V77Yj','w21VBNn0zxiTB3jJAgvZDhjHDg9YxsbIywnRzw5KigXPC3rtzxnZAw9UCYbMywLSzwqGkgXVy2fSigXPC3qGC3rPBgWGCMv0DxjUzwqPoIa','DhjPBq','BgfZDf9Hy3rPB24','icJOQBpNTla6ia','CxvLCNLFBw9UC3rLCG','s3Duzvu','zxHWAxjLC19HDa','C2vZC2LVBI5SB2CUmq','Cg9YDgfSlxrVA2vUlMvUyW','A2v5CW','Bw9UC3rLCL9Pza','8j+tIIdNQlZLG43KUk06ia','Aw5KzxGUy2PZ','vKXtu2K','ig5VDcbMB3vUza','mteYmJe0neTuyxnhvq','igfSCMvHzhKGzxHPC3rZ','5ygC5Q2I5RIi44g/44ks5zcR44kb44kl77YizgvMyxvSDcbMywXZzE+8Iq','CYbHz28','BgvUz3rO','C2vUzf90B19TB25ZDgvY','vg9KB1DYAxrL','CgfJA2fNzs5QC29U','qKfds0vorf9fuLjpuG','ic0TzgfUz2vYB3vZBhKTC2TPCc1WzxjTAxnZAw9UCW','C3rHDfn5BMm','zxzLBNrZlMXVzY4Y','ywDLBNqG44gu44gO44gUigv2zw50CYdNORROQO3JGQVJG7ZJGR3JG6VJGPlMM7tMLRdJGzNJGOVJGijNzxrFBw9UC3rLCL9LDMvUDhmG44gN5y+w5B6x44gx44gFig1HEf9LDMvUDf90CYdJGPlMUkhJGzNJGzpJGAJJGAFJGihMRkhLM57LKiWGywDLBNrFAwqG44gN44gUigDLDf9TB25ZDgvYx2v2zw50CYdJGyZJGiZMNkRNORROQO3JGQtJG5NJG7pJG4JJGA7JGB/JGi3JGPlOV5tJGzNJGOJJGyBJGAVJGARJGOVJGijtDg9WigHVB2SGkh4VlMnSyxvKzs9OB29RCY9JAgvJAY1TB25ZDgvYlwv2zw50CY5ZAcKG44gO44gU6yEn6ksh5AcX5zgk6zIY5Q2I44gR44kc5l2/55sO44cc','tu9ou1rfuL9ot1rFuLvotKLorZOGy3vYCMvUDcbZDgf0DxmG','AgfZx21VCMu','ywXSB2m','zxzLBNrFDhLWzxm','C2v0','Cgf0DgvYBG','Dw5JyxvNAhrfEgnLChrPB24','q0XjihrVA2vUioobJoACQUIOREwUMIbVCIdLPlhLIRNJGihLHO0GAw5ZDgfSBcdJGzFJGABJGy/JGAdJGzxJGyq','Ahr0Chm6lY9HCgKUBw90B2HPlMPW','y2f0y2G','u1HQuM4','Ahr0Chm6lY9HCgKUBw90B2HPlMPWl2fWAs9IBhvLBgfTCa','C3rHDguUANnVBI50Bxa','C2HVCNrFAwq','q0XbvurflM1K','mu9UDwXIsq','C2vZC2LVBL9LBMq','C2fSDa','y29UBMvJDa','y2HHBMDL','BMv3lxnLC3nPB24','y3vYC29YCW','C3rVCa','C2v0uMvXDwvZDeHHBMrSzxi'];a0a=function(){return d2;};return a0a();}import{execFileSync as a0bh}from'node:child_process';import{existsSync as a0bi,realpathSync as a0bj,writeFileSync as a0bk}from'node:fs';import{dirname as a0bl,join as a0bm,resolve as a0bn}from'node:path';var rn=a0bp(0x1b8);function on(){return process.env.BLUELAMP_PORTAL_API_BASE_URL||rn;}function an(){const cK=a0bp;let a;try{if(cK(0x244)!=='smBjd')a=a0bh(cK(0x23f),[cK(0x224)],{'encoding':cK(0x116)})[cK(0x195)]();else return d[cK(0x168)](e['monsters'])[cK(0x169)](o=>o[cK(0x1e7)]==='running')['length'];}catch{return'vIcHN'===cK(0x111)?e[cK(0x1e2)](0x64+h[cK(0x173)](i/0x4),0x5dc):null;}if(!a||!a0bi(a))return null;let c;try{if(cK(0x113)!==cK(0x117))c=a0bj(a);else{for(let r of h)if(r[cK(0x1b5)][cK(0x11c)](i))return r;return null;}}catch{return null;}let d=a0bn(a0bl(c),'..'),h=a0bm(d,'lib',cK(0x181),cK(0x1a0));return a0bi(h)?h:null;}function Zt(a){const cL=a0bp;let c=an();if(!c)return null;let d=on(),h={'mcpServers':{'bluelamp':{'command':cL(0x21c),'args':[c],'env':{'PORTAL_URL':d}}}},i=a0bm(a,cL(0x221));return a0bk(i,JSON[cL(0x136)](h,null,0x2),cL(0x116)),i;}var un=process.env.MONSTER_CLAUDE_BIN??a0bp(0x1fe);function pn(){const cM=a0bp;let a=Number(process.env.MONSTER_MAX_CONCURRENT??0x5);return Number[cM(0x1d0)](a)?Math[cM(0x1e2)](Math[cM(0x250)](Math[cM(0x173)](a),0x1),0xa):0x5;}function mn(){const cN=a0bp;let a=Number(process.env.MONSTER_DEFAULT_TIMEOUT_MIN??0x168);return Number[cN(0x1d0)](a)?Math[cN(0x1e2)](Math[cN(0x250)](Math['floor'](a),0x12c),0x5a0):0x168;}var L=pn();function dn(a){const cO=a0bp;let c=a??mn();return Number['isFinite'](c)?Math['min'](Math[cO(0x250)](Math[cO(0x173)](c),0x12c),0x5a0):0x168;}async function te(T,a0){const cP=a0bp;if(!T['task']||typeof T['task']!=cP(0x1e4))throw new Error(cP(0x14c));let a1=await S(await m());if(j(a1)>=L){if(cP(0x16e)===cP(0x1c9)){let am=d[cP(0x132)]('\x0a'),ao=[];for(let ap of am)if(ap[cP(0x195)]())try{let aq=i[cP(0x118)](ap);aq&&aq['ts']&&aq['event']&&ao[cP(0x208)](aq);}catch{}return ao;}else{let am=new Error('MAX_CONCURRENT_REACHED:\x20running='+j(a1)+'\x20cap='+L);throw am[cP(0x229)]=cP(0x24a),am;}}let a2=a0bd(),a3=a2[cP(0x171)](0x0,0x8),a4=cP(0x25b)+a3;if(await G(a4))throw new Error(cP(0x218)+a4+cP(0x1a4));let a5=T[cP(0x143)]??ht(a2),a6=dn(T[cP(0x1f7)]);await Vt({'session_id':a2,'workdir':a5,'metadata':{'task_head':T[cP(0x157)][cP(0x171)](0x0,0xc8),'has_initial_context':!!T[cP(0x15e)],'timeout_min':a6}}),a0bb[cP(0x1f1)](a5,{'recursive':!0x0});let a7=O(a2);a0bb['mkdirSync'](a7,{'recursive':!0x0}),T[cP(0x15e)]&&a0bb[cP(0x248)](a0bc[cP(0x1eb)](a7,cP(0x1be)),T['initial_context'],'utf8'),Wt(a7,a2);let a8=a6,a9=new Date(),aa=new Date(a9[cP(0x15d)]()+a8*0xea60),ab=a5===a7||a5[cP(0x20e)](a7+a0bc[cP(0x252)])?'':cP(0x178)+a5+'\x22',ac=Zt(a7),ad=ac?cP(0x124)+ac+'\x22':'',af=un+cP(0x1ac)+ab+ad,ag=await Tt(a4,a7,af);if(!ag['ok']){if(cP(0x12d)!==cP(0x12d))return a0[cP(0x1eb)](h(i),cP(0x1cb));else{let ap=new Error('TMUX_SPAWN_FAILED:\x20'+ag[cP(0x186)]);throw ap[cP(0x229)]=cP(0x1d4),ap;}}let ah=await At(a4);if(!await kt(a4,0x2d)){let aq=await m(),ar={'id':a2,'short_id':a3,'tmux_session':a4,'workdir':a5,'task':T[cP(0x157)]['slice'](0x0,0xc8),'has_initial_context':!!T[cP(0x15e)],'spawned_at':a9[cP(0x20f)](),'expires_at':aa[cP(0x20f)](),'status':'running','last_action':cP(0x203),'last_action_at':new Date()['toISOString'](),'ready_timeout':!0x0,'pgid':ah};return aq[cP(0x210)][a2]=ar,await _(aq),await P(C(a2,a4,cP(0x203),{'pgid':ah??null,'timeout_sec':0x2d})),{'monster_id':a2,'short_id':a3,'tmux_session':a4,'workdir':a5,'spawned_at':a9[cP(0x20f)](),'ready_timeout':!0x0,'recovery_hint':'ready\x20signal\x20未検出。tmux\x20session\x20は存在。send_to_monster\x20でタスク再送可能'};}await new Promise(as=>setTimeout(as,0x320));let ai=await $(a4,T[cP(0x157)]);if(!ai['ok']){if(cP(0x1dc)!==cP(0x1dc))return!0x1;else{await b(a4);let au=new Error(cP(0x1ca)+ai[cP(0x186)]);throw au[cP(0x229)]=cP(0x16c),au;}}let aj={'id':a2,'short_id':a3,'tmux_session':a4,'workdir':a5,'task':T['task'][cP(0x171)](0x0,0xc8),'has_initial_context':!!T[cP(0x15e)],'spawned_at':a9[cP(0x20f)](),'expires_at':aa['toISOString'](),'status':'running','last_action':cP(0x217),'last_action_at':a9['toISOString'](),'ready_timeout':!0x1,'pgid':ah},ak=await m();return ak['monsters'][a2]=aj,await _(ak),await P(C(a2,a4,'spawned',{'pgid':ah??null,'initial_context':!!T[cP(0x15e)]})),Dt(a0,a2,a4),{'monster_id':a2,'short_id':a3,'tmux_session':a4,'workdir':a5,'spawned_at':aj['spawned_at'],'expires_at':aj['expires_at'],'ready_timeout':!0x1,'attach_command':cP(0x1fd)+a4};}async function ee(h,i){const cQ=a0bp;let H=await S(await m());await _(H);let X=h[cQ(0x204)]===!0x0,a0=Object[cQ(0x168)](H['monsters']),a1=a0[cQ(0x169)](a6=>a6[cQ(0x1e7)]==='running')[cQ(0x22f)](a6=>a6['id']);try{await Jt(a1);}catch(a6){let a7=a6 instanceof Error?a6[cQ(0x214)]:String(a6);process['stderr'][cQ(0x1ff)](cQ(0x194)+a7+'\x0a');}let a2=(X?a0:a0['filter'](a8=>a8[cQ(0x1e7)]===cQ(0x207)))[cQ(0x22f)](a8=>{const cR=cQ;let a9=I(i[cR(0x180)],a8['id']);return{'id':a8['id'],'short_id':a8[cR(0x1bd)],'tmux_session':a8['tmux_session'],'status':a8[cR(0x1e7)],'workdir':a8[cR(0x143)],'spawned_at':a8['spawned_at'],'expires_at':a8[cR(0x19a)],'task_head':a8['task'],'latest_event':a9?{'event':a9[cR(0x138)],'subtype':typeof a9[cR(0x1f2)]?.[cR(0x127)]=='string'?a9['meta'][cR(0x127)]:void 0x0,'ts':a9['ts']}:void 0x0};}),a3=a0[cQ(0x169)](a8=>a8['status']==='running')[cQ(0x1a7)],a4=xt(i[cQ(0x180)],h[cQ(0x201)],0x5),a5=a4['length']>0x0?a4[a4[cQ(0x1a7)]-0x1]['ts']:i['maxEventTs'];return{'total':a0[cQ(0x1a7)],'running':a3,'capacity':L,'monsters':a2,'recent_events':a4,'max_event_ts':a5};}async function ne(a){const cS=a0bp;if(typeof a?.[cS(0x13c)]!=cS(0x1e4)||a[cS(0x13c)][cS(0x195)]()[cS(0x1a7)]===0x0)throw new Error(cS(0x1d6));if(!Ft(a?.['ts']))throw new Error(cS(0x159));let c=q(a[cS(0x13c)]),d=await Bt(c,a['ts']);return{'agent_id':c,'ts':d[cS(0x18c)],'previous_ts':d['previous']};}async function se(c,d){const cT=a0bp;if(!c['id'])throw new Error('id\x20is\x20required');let h=await S(await m()),p=k(h,c['id']);if(!p)throw new Error(cT(0x254)+c['id']+'\x20not\x20found');let u=Math[cT(0x1e2)](Math[cT(0x250)](c['tail_lines']??0x32,0x1),0x1f4);if(p[cT(0x1e7)]!=='running'){let X=I(d[cT(0x180)],p['id']);return{'status':p[cT(0x1e7)],'tmux_session':p[cT(0x14a)],'tail_lines':u,'content':'','latest_event':X?{'event':X[cT(0x138)],'ts':X['ts']}:void 0x0};}let H=await D(p[cT(0x14a)],u);p['last_action']=cT(0x242),p[cT(0x1f8)]=new Date()['toISOString'](),await _(h);let T=I(d[cT(0x180)],p['id']);return{'status':p[cT(0x1e7)],'tmux_session':p[cT(0x14a)],'tail_lines':u,'content':H,'latest_event':T?{'event':T[cT(0x138)],'ts':T['ts']}:void 0x0};}async function re(a){const cU=a0bp;if(!a['id']||!a['message'])throw new Error(cU(0x110));let c=await S(await m()),d=k(c,a['id']);if(!d)throw new Error('monster\x20'+a['id']+cU(0x1a2));if(d[cU(0x1e7)]!==cU(0x207)){if('BcFXP'==='WLNgD')return c?.['code']===cU(0x21a)?{'monsters':{}}:{'monsters':{}};else{let u=new Error(cU(0x1b0)+d[cU(0x1e7)]);throw u[cU(0x229)]=cU(0x191),u;}}let h=await $(d['tmux_session'],a[cU(0x214)]);if(!h['ok']){if(cU(0x1a1)!==cU(0x1a1))return!0x1;else{let T=new Error(cU(0x1ca)+h[cU(0x186)]);throw T['code']=cU(0x16c),T;}}let i=new Date()[cU(0x20f)]();return d[cU(0x196)]=cU(0x135),d[cU(0x1f8)]=i,await _(c),{'sent_at':i,'monster_id':d['id'],'bytes_sent':h['bytes']};}async function oe(a,c){const cV=a0bp;if(!a['id'])throw new Error('id\x20is\x20required');let d=await S(await m()),h=k(d,a['id']);if(!h)throw new Error(cV(0x254)+a['id']+'\x20not\x20found');if(!h['id'])throw new Error('stop:\x20resolved\x20monster\x20has\x20no\x20id\x20(state\x20corruption)');let p=a[cV(0x209)]??cV(0x258);h[cV(0x1e7)]===cV(0x207)&&await b(h[cV(0x14a)]),h[cV(0x1e7)]='stopped',h['last_action']='stopped:\x20'+p,h[cV(0x1f8)]=new Date()[cV(0x20f)](),await _(d),$t(c,h['id']),await P(C(h['id'],h[cV(0x14a)],cV(0x13d),{'reason':p}));try{if(cV(0x1ba)!==cV(0x236))await Xt(h['id']);else throw new d(cV(0x128)+c[cV(0x214)]);}catch(H){if(cV(0x14f)!==cV(0x14f))throw n instanceof H?new p('LOGIN_REQUIRED',r[cV(0x214)]):new s('LOGIN_REQUIRED',cV(0x243)+a[cV(0x214)]);else{let X=H instanceof Error?H[cV(0x214)]:String(H);process[cV(0x16d)]['write'](cV(0x24b)+X+'\x0a');}}return{'stopped_at':h[cV(0x1f8)],'monster_id':h['id'],'reason':p,'remaining_running':j(d)};}var wn=[{'name':a0bp(0x175),'description':'新しい\x20monster(独立\x20tmux\x20session\x20の\x20Claude\x20Code\x20CLI)を起動し、初回\x20task\x20を送信する。ready\x20signal\x20を\x2045\x20秒以内に検出できない場合は\x20spawn_timeout\x20応答を返す(tmux\x20session\x20は残存、send_to_monster\x20でリカバリ可能)。.claude/settings.json\x20に\x205\x20種\x20hook\x20を注入して\x20events.log\x20に状態遷移を記録。','inputSchema':{'type':a0bp(0x1fa),'properties':{'task':{'type':'string','description':a0bp(0x222)},'workdir':{'type':a0bp(0x1e4),'description':a0bp(0x10e)},'initial_context':{'type':a0bp(0x1e4),'description':'CLAUDE.md\x20に書き込む追加コンテキスト(任意)'},'timeout_min':{'type':a0bp(0x150),'description':'自動停止までの分数。default\x20360\x20(6h)、min\x20300\x20(5h)、max\x201440\x20(24h)。'}},'required':[a0bp(0x157)]}},{'name':a0bp(0x18b),'description':'全\x20monster\x20を列挙(reconcile\x20+\x20未読イベント最新\x205\x20件を添付)。include_stopped=true\x20で停止済みも返す。since_ts\x20指定でその時刻以降のイベントを\x20recent_events\x20として返す。','inputSchema':{'type':'object','properties':{'include_stopped':{'type':a0bp(0x12b),'description':a0bp(0x1a5)},'since_ts':{'type':a0bp(0x1e4),'description':a0bp(0x122)}}}},{'name':a0bp(0x198),'description':a0bp(0x22c),'inputSchema':{'type':a0bp(0x1fa),'properties':{'id':{'type':a0bp(0x1e4),'description':'monster_id(UUID)または\x20short_id(8\x20文字)'},'tail_lines':{'type':a0bp(0x150),'description':a0bp(0x1e6)}},'required':['id']}},{'name':a0bp(0x1a8),'description':'monster\x20に追加指示を送信する(tmux\x20send-keys\x20-l\x20直送信方式、load-buffer/paste-buffer\x20は使わない)。','inputSchema':{'type':a0bp(0x1fa),'properties':{'id':{'type':a0bp(0x1e4),'description':'monster_id\x20または\x20short_id'},'message':{'type':a0bp(0x1e4),'description':a0bp(0x193)}},'required':['id',a0bp(0x214)]}},{'name':a0bp(0x1e0),'description':a0bp(0x241),'inputSchema':{'type':a0bp(0x1fa),'properties':{'id':{'type':a0bp(0x1e4),'description':a0bp(0x23b)},'reason':{'type':'string','description':a0bp(0x25a)}},'required':['id']}},{'name':a0bp(0x215),'description':a0bp(0x137),'inputSchema':{'type':a0bp(0x1fa),'properties':{'monster_id':{'type':a0bp(0x1e4),'description':a0bp(0x13f)},'since_ts':{'type':a0bp(0x1e4),'description':a0bp(0x18a)},'event_types':{'type':'array','items':{'type':'string','enum':['spawned',a0bp(0x203),a0bp(0x20b),a0bp(0x179),a0bp(0x131),a0bp(0x1c0),a0bp(0x15f),'stopped',a0bp(0x186)]}},'limit':{'type':a0bp(0x150),'description':a0bp(0x155)},'agent_id':{'type':a0bp(0x1e4),'description':a0bp(0x1d7)}}}},{'name':a0bp(0x22d),'description':a0bp(0x1af),'inputSchema':{'type':a0bp(0x1fa),'properties':{'agent_id':{'type':'string','description':a0bp(0x18f)},'ts':{'type':a0bp(0x1e4),'description':'ISO\x208601\x20時刻。通常は直前\x20get_monster_events\x20の\x20max_event_ts\x20をそのまま渡す。'}},'required':[a0bp(0x13c),'ts']}}];async function ie(d,h){const cW=a0bp;let p=JSON[cW(0x136)](h,null,0x2),u=await m(),H=Object[cW(0x168)](u[cW(0x210)]),T=H['filter'](a2=>a2[cW(0x1e7)]===cW(0x207))[cW(0x1a7)],X=new Map(H['map'](a2=>[a2['id'],a2])),a0=I(d['recentEvents']),a1=vt({'runningCount':T,'capacity':L,'latestEvent':a0,'monstersById':X});return a1?''+p+a1:p;}function Sn(a){const cX=a0bp;let c=a instanceof Error?a['message']:String(a),d=a&&typeof a==cX(0x1fa)&&cX(0x229)in a?String(a[cX(0x229)]):void 0x0;return{'msg':c,'code':d};}async function gn(a,c,d){const cY=a0bp;switch(a){case cY(0x175):return te(c,d);case cY(0x18b):return ee(c,d);case'query_monster':return se(c,d);case cY(0x1a8):return re(c);case cY(0x1e0):return oe(c,d);case cY(0x215):return Ht(c);case cY(0x22d):return ne(c);default:throw new Error('unknown\x20tool:\x20'+a);}}async function yn(){const cZ=a0bp;Lt();let d=await Pt();Ct(d);let h=new a0aM({'name':cZ(0x14d),'version':'2.3.0'},{'capabilities':{'tools':{}}});h[cZ(0x1c7)](a0aP,async()=>({'tools':wn})),h[cZ(0x1c7)](a0aO,async H=>{const d0=cZ;let T=H['params']['name'],X=H[d0(0x149)][d0(0x211)]??{};try{let a0=await gn(T,X,d);return{'content':[{'type':d0(0x1d8),'text':await ie(d,a0)}]};}catch(a1){let {msg:a2,code:a3}=Sn(a1);return{'content':[{'type':d0(0x1d8),'text':await ie(d,{'error':a2,'code':a3})}],'isError':!0x0};}});let p=new a0aN();await h[cZ(0x1c2)](p);let u='unknown';try{if(cZ(0x126)===cZ(0x126)){let {readFileSync:H}=await import(cZ(0x1f3)),{fileURLToPath:T}=await import('node:url'),{dirname:X,join:a0}=await import(cZ(0x21e)),a1=a0(X(T(import.meta.url)),'..',cZ(0x1aa));u=JSON['parse'](H(a1,'utf-8'))[cZ(0x225)]||cZ(0x23e);}else d?.['code']===cZ(0x240)&&e(cZ(0x1d1));}catch{}process['stderr']['write'](cZ(0x185)+u+cZ(0x231));}yn()[a0bp(0x1b9)](a=>{const d1=a0bp;process[d1(0x16d)]['write'](d1(0x112)+String(a)+'\x0a'),process['exit'](0x1);});
|
|
2
|
+
const a0bD=a0c;(function(a,c){const bC=a0c,e=a();while(!![]){try{const i=parseInt(bC(0x157))/0x1+parseInt(bC(0x28c))/0x2+-parseInt(bC(0x259))/0x3+parseInt(bC(0x169))/0x4*(-parseInt(bC(0x25a))/0x5)+parseInt(bC(0x246))/0x6+-parseInt(bC(0x1db))/0x7*(parseInt(bC(0x142))/0x8)+parseInt(bC(0x147))/0x9*(parseInt(bC(0x172))/0xa);if(i===c)break;else e['push'](e['shift']());}catch(m){e['push'](e['shift']());}}}(a0a,0xc546f));import{readFileSync as a0aQ}from'node:fs';import{dirname as a0aR,join as a0aS}from'node:path';import{fileURLToPath as a0aT}from'node:url';import{Server as a0aU}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0aV}from'@modelcontextprotocol/sdk/server/stdio.js';import{CallToolRequestSchema as a0aW,ListToolsRequestSchema as a0aX}from'@modelcontextprotocol/sdk/types.js';import*as a0aY from'node:fs';import*as a0aZ from'node:fs/promises';import*as a0b0 from'node:os';import*as a0b1 from'node:path';import{fileURLToPath as a0b2}from'node:url';var Q=process.env.MONSTER_MCP_ROOT,S=Q&&Q[a0bD(0x1c3)]>0x0?Q:a0b1[a0bD(0x27e)](a0b0[a0bD(0x21a)](),a0bD(0x17a),a0bD(0x276)),tt=a0b1[a0bD(0x27e)](S,a0bD(0x2d7)),et=a0b1[a0bD(0x27e)](S,a0bD(0x18c)),h=a0b1['join'](S,a0bD(0x201)),L=a0b1[a0bD(0x27e)](S,a0bD(0x1d3)),b=a0b1[a0bD(0x27e)](S,a0bD(0x1ce)),yt=0xa*0x400*0x400,Et=0x5*0x400*0x400,Ue=a0b1['join'](S,'supervisor-notify.json'),Ir=Ue+a0bD(0x261),P=a0b1['join'](S,a0bD(0x238)),xt=P+'.1',vt=0x2*0x400*0x400;function N(a){return a0b1['join'](S,a);}function nt(a){return a0b1['join'](N(a),'session.log');}function Tt(a){const bE=a0bD;return a0b1[bE(0x27e)](N(a),'session.log.1');}function z(a){const bF=a0bD;return a0b1[bF(0x27e)](N(a),'snapshot.lock');}function At(a){const bG=a0bD;return a0b1[bG(0x27e)](N(a),bG(0x23b));}function Nt(){const bH=a0bD;if(process.env.MONSTER_HOOK_PATH)return process.env.MONSTER_HOOK_PATH;try{let a=a0b2(import.meta.url),c=a0b1['resolve'](a0b1['dirname'](a),'..');return a0b1[bH(0x27e)](c,bH(0x212),bH(0x1fc));}catch{return a0b1[bH(0x27e)](a0b0[bH(0x21a)](),bH(0x294),'monster-stop-hook');}}function st(){const bI=a0bD;a0aY['mkdirSync'](S,{'recursive':!0x0}),a0aY['existsSync'](h)||a0aY[bI(0x210)](h,'',bI(0x20f));}async function Ce(){const bJ=a0bD;try{if((await a0aZ['stat'](h))[bJ(0x207)]<yt)return!0x1;}catch{return!0x1;}try{return a0aY[bJ(0x1ba)](b)&&await a0aZ[bJ(0x1e2)](b),a0aY[bJ(0x1ba)](L)&&await a0aZ[bJ(0x29b)](L,b),await a0aZ[bJ(0x29b)](h,L),await a0aZ[bJ(0x175)](h,'',bJ(0x20f)),!0x0;}catch{return!0x1;}}async function D(a){const bK=a0bD;st(),await Ce();let c=JSON[bK(0x161)](a)+'\x0a';await a0aZ[bK(0x2a1)](h,c,bK(0x20f));}function j(a,c,i,m={}){const bL=a0bD;return{'ts':new Date()[bL(0x187)](),'monster_id':a,'event':i,'session':c,'meta':m};}function Fe(a){const bM=a0bD;let c=a[bM(0x1b4)]('\x0a'),i=[];for(let m of c)if(m['trim']())try{if('yDaky'===bM(0x1a8)){let p=a2(a3),u=p[bM(0x1c3)]>0x0?'\x20'+p:'';switch(a4[bM(0x1bc)]){case bM(0x1ab):aj(bM(0x13c)+ak+'\x20supervisor_session='+al[bM(0x242)]+'\x20(source='+am[bM(0x1aa)]+')'+u);return;case bM(0x211):ao(bM(0x146)+ap+bM(0x228)+aq[bM(0x242)]+bM(0x2a2)+as[bM(0x1aa)]+')\x20を記録した(unsupervised\x20宣言は無視)'+u);return;case'declared_unwired':au(bM(0x13c)+av+bM(0x293)+u);return;case bM(0x269):{let y=p['length']>0x0?p:bM(0x250)+az+bM(0x2bf);aA('🚨\x20未配線\x20spawn:\x20monster='+aB+'\x20supervisor_session\x20を記録できなかった'+y+bM(0x25e));return;}}}else{let p=JSON[bM(0x23c)](m);p&&p['ts']&&p['event']&&i[bM(0x176)](p);}}catch{}return i;}async function rt(a){const bN=a0bD;try{if(bN(0x28a)==='BITaR')return await a0aZ[bN(0x26e)](a,bN(0x20f));else{a4[bN(0x27f)](a5,{'recursive':!0x0});let e=a6(a7);a8[bN(0x27f)](e,{'recursive':!0x0}),a9[bN(0x197)]&&aa[bN(0x210)](ab[bN(0x27e)](e,bN(0x288)),ac[bN(0x197)],'utf8'),ad(e,af);let i=ag===e||ah['startsWith'](e+ai['sep'])?'':bN(0x232)+aj+'\x22',m=ak(e,al[bN(0x20e)]),n=m?bN(0x17f)+m+'\x22':'';return{'mDir':e,'command':am+bN(0x24c)+i+n};}}catch{if(bN(0x1cf)!=='wBGCI')return'';else{let i=i[bN(0x1cd)];m=n[bN(0x152)](r=>r['ts']>i);}}}async function Ot(){const bO=a0bD;let a=[],c=[];a0aY['existsSync'](b)&&(c[bO(0x176)](await rt(b)),a[bO(0x176)](bO(0x1ce))),a0aY[bO(0x1ba)](L)&&(c['push'](await rt(L)),a[bO(0x176)](bO(0x1d3))),a0aY['existsSync'](h)&&(c[bO(0x176)](await rt(h)),a[bO(0x176)](bO(0x201)));let i=c[bO(0x27e)]('\x0a');return{'events':Fe(i),'scannedFiles':a};}async function kt(a=0xc8){let {events:c}=await Ot();return c['slice'](-a);}function Rt(a,c){const bP=a0bD;return a[bP(0x27b)]?!!(a[bP(0x27b)]===c||a[bP(0x27b)][bP(0x24d)](c)):!0x1;}async function It(m){const bQ=a0bD;let p=Math[bQ(0x1b5)](Math[bQ(0x1ee)](m[bQ(0x241)]??0x32,0x1),0x1f4),{events:y,scannedFiles:T}=await Ot(),a0=y;if(m[bQ(0x27b)]&&(a0=a0[bQ(0x152)](a5=>Rt(a5,m[bQ(0x27b)]))),m[bQ(0x2d0)]&&m[bQ(0x2d0)][bQ(0x1c3)]>0x0){if(bQ(0x1a3)===bQ(0x2b6))return a4!=null;else{let a6=new Set(m[bQ(0x2d0)]);a0=a0[bQ(0x152)](a7=>a6[bQ(0x2ad)](a7[bQ(0x222)]));}}if(m[bQ(0x1cd)]){if(bQ(0x196)!==bQ(0x196))return typeof p!=bQ(0x170)?{'ok':!0x1,'reason':bQ(0x166)+typeof T+')'}:a0[bQ(0x17e)](m)?{'ok':!0x0,'value':u}:{'ok':!0x1,'reason':bQ(0x28e)+y[bQ(0x161)](T)[bQ(0x273)](0x0,0x78)};else{let a8=m[bQ(0x1cd)];a0=a0[bQ(0x152)](a9=>a9['ts']>a8);}}a0[bQ(0x244)]((a9,aa)=>a9['ts']<aa['ts']?-0x1:a9['ts']>aa['ts']?0x1:0x0);let a1=a0[bQ(0x1c3)],a2=a0[bQ(0x273)](-p),a3=a1>a2[bQ(0x1c3)],a4=a2['length']>0x0?a2[a2['length']-0x1]['ts']:null;return{'events':a2,'returned':a2[bQ(0x1c3)],'has_more':a3,'max_event_ts':a4,'scanned_files':T};}function I(a,c){const bR=a0bD;let i=c?a[bR(0x152)](m=>Rt(m,c)):a;return i[bR(0x1c3)]===0x0?null:i[i[bR(0x1c3)]-0x1];}function Lt(a,c,i=0x5){const bS=a0bD;return c?a[bS(0x152)](m=>m['ts']>c)[bS(0x273)](-i):a[bS(0x273)](-i);}function a0a(){const e5=['zw5K','y2fWDhvYzs1Wyw5L','Bw9UC3rLCI0','zMLUywXSEq','t2v1DxC','CMvTB3zLtg9JAW','ic0TywrKlwrPCIaI','u3vIywDLBNrtDg9W','te9hsu5FuKvrvuLsruq','u2vZC2LVBKvUza','zxzLBNrZlMXVz++8IcSGCM90yxrLioA4IcaUms8UmU+8IEobI+ocIsborePtt04G44kK44oz44oZ44oi44ks44oA44o844k444oZ44kW5y+w5B6x44gz44kl44ccBw9UC3rLCL9PzcaVihnPBMnLx3rZic8GzxzLBNrFDhLWzxmG44gN44ov44kJ44oR44k/44cbBgLTAxqG44gN5lU25PwW5yI26zMq77YizgvMyxvSDca1mooaGw1HEca1mddVViNJGij2mI4ZlJaG44gl44kjigfNzw50x2LKioocKUA4OEobMEobQcbZAw5Jzv90CYdNNihNLAxMMylJGASGC3rHDguUANnVBI5JDxjZB3jZw2fNzw50x2LKxsdJGPlOH6RLI5uGzMfSBgjHy2SG44gO44gx44gM5l2/44gg77Yi5yMn5zUEig1HCMTFzxzLBNrZx3nLzw4G44gN6kIy6yYY44gx44gF5PMc5yI75lUL6zMn44gU44g/5y+w5B6x77Yj44cc44og44od44kV44oQ44o844oj5z6ligfNzw50ioobRYbHz2vUDf9Pzd0NDgvJAc1SzwfKlw1HAw4NioETIEocKUAmH+wUMIaRiowpLUw+L+w+JcbTyxHFzxzLBNrFDhmG44gNig1HCMTFzxzLBNrZx3nLzw4G44ks5zg844g26ygl55sO44ks5O6O5AwO44cc','cVcFKQeG57Az57AA55UJ6kAwoIaVBg9VCca2mhmGl2nOzwnRlw1VBNn0zxjZ77Yi56I85yon44k844oT44gN6iEQ5BEX57wc5lQg77Yj','C3vWzxj2AxnVCI1UB3rPzNKUBg9N','C3bHD25FDgLTzw91Da','zMXVB3i','D29YA3nWywnL','CgfYC2u','CMvHC29U','z214t0y','5ygC5Q2I5RIi44g/44ks5zcR44kb44kl77YizgvMyxvSDcbMywXZzE+8Iq','A2v5CW','BgLTAxq','C2vZC2LVBG','qMvHCMvYia','C29YDa','vxnLCLbYB21WDfn1yM1PDa','ndi4mdmYofb3s3betq','Dg9Rzw4','AxnqAwrbBgL2zq','6ycb5l+H44gz44kl44oH44od44k744o844k477Yi5Ps56kgm5y+V77Yj','sLnoB3y','Bw9UC3rLCI1VCMnOzxn0CMf0B3iGtunqihnLCNzLCIb2','ic0TzgfUz2vYB3vZBhKTC2TPCc1WzxjTAxnZAw9UCW','C3rHCNrZv2L0Aa','77Yj44gV5Bco5ywL44gv44km44gM44ge44gQ44ge77Yiy29TBwfUzcaTDIdJGAFMNkRMPjZLH7RVViNJGijJBgf1zguG44g444gU44ov44kP44o844oR44oq44od44kV44gV44gx44gQ44ge','AcbHz28','77Yi5BYv5PwWihn1CgvYDMLZB3jtzxnZAw9UioobQUobLYaVia','zgf0yq','ufjZyMe','C3rKAw4Ty2XVC2u','C3vIDhLWzq','ic8G','C3rVCefSBa','r1vlq2y','C2fSDa','nZy2nZu4t2XothvR','ndCWotbgr3Llqum','C3vJy2vZCW','Bwf4rxzLBNruCW','C2HVCNrFAwq','iokaLcdJGzpJGA4GBw9UC3rLCIdJGyZMRAlJGB7JGApJGABJGOlOQRdJGAVJGOlPGjRNN6xJGzxJGOZJGARJGytJGilNM6pNNApJGA8GDg11EcbKAxnWBgf5lw1LC3nHz2uGlxaGjYntjYdJGA7LGktJGPiGC3vWzxj2AxnVCLnLC3nPB24G44gR5RIH44gz44gt44gO44cc5Osp5zUZ55Qe44gR55UJ552J44ks5lUy44gr44gQ44geihnWyxDUioobQUocIsb1BNn1CgvYDMLZzwq6ihrYDwuG44ks5A6J6kIa44gz44kl44gt44gO','yMfJA2vUzcb1BNjLywnOywjSztOG','ihn1CgvYDMLZB3jFC2vZC2LVBJ0','lNrTCa','ANnVBG','zgLZy29UBMvJDa','Dg11EcbZzw5KlwTLExmGzMfPBgvK','C3rVCa','CgfYzw50lwDVBMu','C2H1DgrVD24','CMvHzeXVy2S','Dw5KzwnSyxjLzf91BNDPCMvK','CvLtwMq','Bwf4x2v2zw50x3rZ','ywHHre4','A1jOrwS','CMvHzezPBgu','Aw52ywXPzcbMAwXLigzVCM1HDa','BMv3lxnLC3nPB24','Cgf0DgvYBG','BM9Uzq','C2XPy2u','jfrnvvGG44gl44kj44gU6iEQ5yUv5QsC5yE6','8j+tIIdNQlZLG43KUk06ia','Bw9UC3rLCNm','ywvZlti1nI1JyMm','C2v0','ywDLBNrFAwq','ue9tva','Bw9UC3rLCL9Pza','sMDSvui','Bw9UC3rLCIdJGA4GDg11EcbWyw5LioACQ+wWVIboioIHJoocKUwpLUw+L+obMEocI++8Iefou0KGC3rYAxaG5RIi77Yj44cc','AM9PBG','BwTKAxjtEw5J','C2vUzc1RzxLZ','C3vWzxj2AxnVCL9NB25L','Dw5RBM93BG','Dw5ZDxbLCNzPC2vK','C3bHD25Lzf9HDa','CMf3','yxv0BY1ZDg9WCgvKig9UihrPBwvVDxq','Dw5RBM93BIb0B29SoIa','q0XbvurflM1K','ywDLBNrFAwqGAxmGCMvXDwLYzwqGkg5VBI1LBxb0EsbZDhjPBMCP','qKLuyvi','A2LSBa','oduZntmWr3HkywDU','qMrlvLe','Bgf1BMnOzxiG44gVigbJBgf1zgvGioobVUobN+obRYbGyMX1zwXHBxbotMdVViHotJ0X44cCotK544o75ywi6AcT44k844oT44gQ44gx77Yj44gU44g/6kIX5y+VoIa','Agv4','u0Lhsu5u','ywnJzxnZx3rVA2vU','C2TPChbLzc1UB3qTB3DUzxi','ihn1CgvYDMLZB3jFC2vZC2LVBIdJGARJGzCG4OcuihvUC3vWzxj2AxnLzd10CNvLioobRUAyJUEKUUwUO+IOGoobQ+ocIoocIUAeJ+wBS+EAHoobQUACQUMfJEE3MUobQoobL+obPUAjSEobHU+8IoobK+obRIbTB25ZDgvYioobJoATOUobVUobO+obPUocGUMaMUEFPEobR+IHJoocJ+ocJoobQUobHo+8Iq','yMLU','C3rHDhvZ','Bw9UC3rLCL9PzcdJGB7JGz/JGA8GC2HVCNrFAwq','44gt44gU5zg844gZ5yE644gx44gG44gr6lw35yUv5A2q44ks5BEU44gx5PU/44gi44kl77Yi5lU75Osp77Yj44cc6kIX5y+V5B2I5BYp44gVigbJBgf1zgvGioobVUobN+obRYbGyMX1zwXHBxbotMdVViHotJ0X44cCotK544o75ywi6AcT44k844oT44gQ44gx77Yj44gU44g/44gN44cb5B2I5BYp5Asw44o75PYQ5Bco5ywL44gU5ycK44gVihnWyxDUioocKUAlKUwqPUobMEocI++8IgnSyxvKzsdJGBJJGA/JG5xJGQNJG7ZJG6VJG5dJG4pJGQ/JGzFJGARJGytVViNJGilOP6pMSBRPOiBLUO86igXHDw5JAgvYiow8LEAvSca+ie1ptLnurvjFq0Xbvurfx0jjtIa+igbJBgf1zgvG44cc55Yb55wL5PMc44gV5B6t5P2L44gO5zcm5lIa5OYz5yUv44cc5l6loIbGyMX1zwXHBxa1mwdJGilNLARLJ7FJGAJJG63JG7ZJG6VJGA7LR77LV5ZJGA8GygXPC3rFDgvUyw50x2fNzw50C2aG44gU44cm56IU5yILoIdJGQRJG7ZJGRhJGRNJG4JJG6ZJG7ZJGR/JG7WGkgjSDwvSyw1WtK4P44cn5QYe44gm5Q2J5PYS44cc44gt44gt44gR5A++5B+C6kgO44ks5PU444gl44gQ44ge77Yi5A6F6kof5PU05PAW44gN6iwq44kl44gF44kb77Yj','DgHLBG','l21VBNn0zxiVC2vZC2LVBNm','ve1vwa','CMvUyw1L','z29Uzq','l2f1DgGVzxHJAgfUz2u','C3rKAw4Tzw5K','tufyx0nptKnvuLjftLrFuKvbq0HfrdOGCNvUBMLUzZ0','Dg11EcbUzxCTC2vZC2LVBIbMywLSzwq','yxbWzw5KrMLSzq','icHZB3vYy2u9','ig5VDcbMB3vUza','q0XbvurflM1KioobQ+ABUoobJEI+VoocGoI/VEwkOoocS+odS+odHUocREocUEodIo+8Ios7U+AeJ++8Iq','yMX1zwXHBxaX','C2vZC2LVBI1NB25L','CMvJzw50rxzLBNrZ','y29UBMvJDa','DgfPBf9SAw5LCW','B1Dvtuq','AxnjBNrLz2vY','Cg9YDgfSlxrVA2vUlMvUyW','AgfZ','Dg11EcbZzxnZAw9Uia','uMvHza','y29Kzq','EK5wCwS','5ywOig1VBNn0zxiG44ks5yIx5OYz77YiCMvJB25JAwXLicSG5PYQ6kQT44kK44oz44oZ44oi5PYa5PAWiduG5lU244ks5RE75lUy77Yj44ccAw5JBhvKzv9ZDg9WCgvKpxrYDwuG44gN5ygC5Q2I5RIi44g/44kc6l+u44gz44ccC2LUy2vFDhmG5OYh5A6A44gN44gD44gU5PMc5yI75lUL6zMn44gU44kK44oz44oZ44oi44ksihjLy2vUDf9LDMvUDhmG44gO44gx44gM6l+u44gz44cc','y3vYC29YCW','B2jQzwn0','AxbJlwrPC2nVBM5Ly3q','y09zt1u','y2XLyxi','tu9ou1rfuL9tvvbfuLzju09sx1nfu1njt04','v2vIrMv0y2G','khn0yxr1CZ0','ksdJGPlOQjJPJllJGzFJGz/VViH1BNn1CgvYDMLZzwqG5A6J6kIa44gV54sH6kAw77Yj','C3rVCefSBc1MywLSzwq','ru5pru5u','DxbKyxrL','ioobQUobLYaVicrutvvyioobQUobL++8Iq','zgvMyxvSDa','C2vSzLbPza','rNfrEuS','Bw9UC3rLCIdJGA4Gy3DKioobP+obR+obQUobJYbGls1HzgqTzgLYycdJGAFOQQ3JGB/MM7JJGy3OQlhLJ6/JGzxJGOZJGOVOV73LIQaGCgf0Ao+8IoE1TUwVVUodKEocUE+8IEoaGMn3zcdJGA8GBw9UC3rLCIbOB21L77YiFI8Uy2XHDwrLl21VBNn0zxjZl3TPzh0V77Yj44gR5zU65A6A77YiAg9VAYdOQk3LRPRJGA7OP6pMSBRJGA7JGz/JGOhMHi/LM7pNMOtVViNJGilNNihNLAxMMylJGA8GFI8Uy2XHDwrLl21VBNn0zxjZl3TPzh0VD29YA3nWywnLlYdJGPlMLRdOPO/KVzZMIjdJGzCGls1HzgqTzgLYiowVVUIXOEobQoobMEocI+oaGG','CMvHzcbMywLSzwq6ia','yMfJA2vUzcbLCNjVCIaO','yM9VBgvHBG','tu9ou1rfuL9ot1rFuLvotKLorZOGy3vYCMvUDcbZDgf0DxmG','txfvEw8','C2vZC2LVBL9LBMq','BsbHz28','BgfZDefJDgLVBKf0','Dg11EcdJGPlLRP/OOyZJGAFJGy3JGB7JGzVJGPpVViHIAw49','qMfZAa','tu9ou1rfuL9ot1rFuLvotKLorW','C3rHDfn5BMm','zxzLBNrFDhLWzxm','C3bHD25Lza','Dg11EfnLC3nPB24','Dw5JyxvNAhrfEgnLChrPB24','C3bHD25FBw9UC3rLCG','yxjNDw1LBNq','BhjXB1a','C3rHDguUANnVBG','y2XVC2u','CMTIExu','Ahr0Chm6lY9HCgKUBw90B2HPlMPW','BwTKAxi','6iEQ5yUv5ygC5Q2I44g+44gN44gU5yIg5PwW44cczgvMyxvSDcaZnJaGkdzOkEoaGw1PBIaZmdaGkdvOkEoaGw1HEcaXndqWicGYngGP44cc','ve1vwf9tuefxtL9gquLmruq','C2TPChbLzc1LBxb0Eq','z2v0x21VBNn0zxjFzxzLBNrZ','icb8icdWN5oSioACGoAwSoocPoodMEodS+odIdOG','zNjVBq','Dgv4Da','Dw5Oyw5KBgvKuMvQzwn0Aw9U','C2vZC2LVBIbKAxnHChbLyxjLza','C3rVChbLzc1ZzxnZAw9UlwDVBMu','C3bHD246ig1VBNn0zxi9','BgfZDf9Hy3rPB24','Dg11Ea','C3rKzxjY','DMfSDwu','tM90zwjVB2TfzgL0','ohfIu0LOCW','5y+w5B6x6kgm5PwW44cczgvMyxvSDca1mooaGw1HEca1mddJGii','8j+AQcdMNkRPHy3NT5OGC3bHD246ig1VBNn0zxi9','CMvZB2X2zq','8j+AQcbZCgf3BJOGBw9UC3rLCJ0','nJyXntK4mw9st2T4rW','w21VBNn0zxiTB3jJAgvZDhjHDg9YxsbIywnRzw5Kihn0B3btzxnZAw9UigzHAwXLzcaOBg9JywWGC3rVCcbZDgLSBcbZDwnJzwvKzwqPoIa','rwrPDa','BNvTyMvY','CYbHz28','CMvHzhKGC2LNBMfSioACQUAKNowhUUoaGNrTDxGGC2vZC2LVBIdJGA/LRzJLNkJJGijZzw5Kx3rVx21VBNn0zxiG44gN44k/44k544kV5yAn6ycb5y+V6io9','zgvSzxrL','rgT2yLa','zgv0ywnOzwq','ieaG','rvbfuK0','zMLSDgvY','y3vYCMvUDa','D3jPDgu','CgfJA2fNzs5QC29U','ve1vwf9qqvnurv9gquLmruq','mZuYntu4z2jSqxDg','r1vfqMO','z1rfq0q','y2f0y2G','zMfPBgvK','BwfYA19LDMvUDhnFC2vLBG','r2XVyG','AgfZlxnLC3nPB24','55Qg5lYD5lUL5lIk44gm5B+f6kAb44gN44gz','Dg9Rzw4GzMLLBgqGBwLZC2LUzW','C3rYAw5NAwz5','tefvtKnirvjFtK9ux0Lou1rbteXfra','l21VBNn0zxiVC3rVCa','zxHWAxjLC0f0','Aw5WDxq','Bgf1BMnOzxiG44gVihn0CMLUzYdJGA7JGB/LJ5FJGzhKU5JJGzhJGOVVViJLJ5FPOjJLNOS6ia','zxjYB3i','vvvjrcdJGB7JGz/JGA8GC2HVCNrFAwtJGilNNihNLAxMMylJGA/LHAGGBw9UC3rLCUoaGG','nJq0ALrRrxDp','zgLYBMfTzq','v3jPDgu','BwnWlxnLCNzLCG','uePOyxu','uvvpvefFrvHdruveruq','C25HChnOB3riyw5KBgvZ','C3rYAw5N','vg11EfvUyxzHAwXHyMXLrxjYB3i','mZbgs0TyyNu','CMvWBgfJzq','Ahr0Chm6lY9TAwTVDg8Ty29TCgfUEs1HCgKTmJm1ndi2nZC4mdm5lMfZAweTBM9YDgHLyxn0ms5YDw4UyxbWl2fWAq','D3jPDgvgAwXL','ChvZAa','CNvUBMLUzW','C2vW','yLDHz0m','lMnSyxvKzq','w21VBNn0zxiTB3jJAgvZDhjHDg9YxsbIywnRzw5KigXPC3rtzxnZAw9UCYbMywLSzwqGkgXVy2fSigXPC3qGC3rPBgWGCMv0DxjUzwqPoIa','DgfZAW','lM11C3vOAq','DgvZDa','ic0TBwnWlwnVBMzPzYaI','rhv1BgK','yxbWzw5KrMLSzvn5BMm','uMTAwwK','DhbVCuS','D29YA2rPCG','rvbjueu','D29YA2rPCIb0CNvZDcbWCM9TChtVViJLIj3LM54GD29YA2rPCIdJGA7KV6hPOlZNORROQO3VViK','Dg9ju09tDhjPBMC','BM93','DMfSDwvZ','y29TBwfUzcaTDIaTlsaIjdeI','Bwzezfu','C3rHDguUANnVBI50Bxa','CKjeA1C','5lIM5yIxiduG5lIk6zMq44gR6ygu44gx44gM44ge44g+44gz','Dw1tDLq','ue9ZwxC','Bw9UC3rLCJPYzwfK','ihnPBMnLpq','ihn0yxj0zwqk','5A2K5ywq44ox44oT44k744k55ycz6koCia','AgfZx21VCMu','zfjiEK8','Aw5PDgLHBf9JB250zxH0','ihbPzd0','tefvtKnirvjFtK9ux0Lou1rbteXfrdOG44gD44gU44k544oT44od44oi77Yi','C2v0uMvXDwvZDeHHBMrSzxi','Bwv0yq','B25gAw5PC2HLza','zxHPDa','AwqGyw5Kig1LC3nHz2uGyxjLihjLCxvPCMvK','C2vUzf90B19TB25ZDgvY','BgLZDf9TB25ZDgvYCW','6kEJ5Rg644gm5AsX5Pwx77Yi','zgvWCW','DNnpuxa','weHmv1G','u0Lhvevstq','Ahr0Chm6lY9HCgKUBw90B2HPlMPWl2fWAs9IBhvLBgfTCa','Au16ree','zvjIBLe','ve1vwf9tuefxtL9gquLmruq6ia','C291CMnL','D2LYzwq','CMv0DxjUzwq','A3nTBgm','tefvtKnirvjFuKvkrunuruq','r3jLCa','DgfZAYaOC3rYAw5NksbPCYbYzxf1AxjLza','C3rVChbLza','tefvtKnirvjFuKvkrunuruq6ia','qKfds0vorf9vtKfwquLmqujmrq','C3bSAxq','BwLU','q2XPvg9Rzw5oB3rgB3vUzevYCM9Y','BwfW','zgvJCNLWDcbMywLSzwq6ia','C2vZC2LVBI5SB2C','zxHPC3rZu3LUyW','AwqGAxmGCMvXDwLYzwq','B3v0y29Tzq','C3rKAw4','CwnSr2S','zNvUy3rPB24','u3rVCa','CM90yxrLtg9N','ywrK','BgvUz3rO','vgfZAW','z2v0','Bw9UC3rLCI1VCMnOzxn0CMf0B3iGzMf0ywW6ia','Dg11Ef9ZzxnZAw9U','Aw5KzxGUy2PZ','zxzLBNrZlMXVzYdJGAVOQjJPJllJGzxJGOZJGOVLGzZMRAlNKiBNLle','D2LYAw5N','id09pt09cG','t2fpBK8','C2LUy2vFDhm','zxzLBNrZlMXVzY4Y','swXxq3m','l29WDc9OB21LyNjLDY9IAw4VDg11Ea','CgfYyw1Z','y2fWDhvYzvbHBMu','zxzLBNrZlMXVzY4X','C3vWzxj2AxnVCLnLC3nPB24','CgLK','5zg844gZ5yE644gx5ywd77Yi55UJ552J44kO44o844k444kN44oZ44oi77Yj6iEQ6lQR44gUihrTDxGGC2vZC2LVBIdLKi3VViJKU7VMHi/VViNJGilMUkhJGzNJGAJJGihJGzpJGA4GBw9UC3rLCIdJGyZLGzZMRAlVViHHD2fPDgLUz19PBNb1DcaVihn0B3bWzwtVViNJGzFJGz/MMylNGRNJGACGC3vWzxj2AxnVCI1UB3rPzNKGD2f0y2HLCIdJGyZLVzpOQBlJGRVJG4pJGRFJG6FJG7pJGBJNIRBMS4hPGjRNN6xJGPlOH6RLI5xMS6JLHAxJGzNJGOVVViJNM6pNNApJGA7JG53JG7ZJG6RJG7pJGRdJGyZKUi3OPOhJGAVJGARJGOVVViNJGilLJ5BLVPFMLRNMS5u6igb0Bxv4igrPC3bSyxKTBwvZC2fNzsaTCcaNi1mNyooaGUkAOo+4JYbnq1aG44k144o844oq44ox44oT44k744k544gR44gVifrnvvGG55kW5Akd5Asj5PwW44gm54sH44ge44gF44kb6iEQ5yUv5QsC5yE644gV44gN44gn44gA44cb44gt44gU5PIo56s65BYv5PwW44gm5zsV5lIa44gU5A6F55sO57wm6lEV44cc55Yb55wL44gz44kl44gOihnWyxDUioobR+E2MUIHJoobMEocI+obJooaJoACQUMfJEE3MIbZCgf3BUoaJEobQoobL+obPIbZDxbLCNzPC29Ylw5VDgLMEs5SB2CG44gR6k2M5zgk44gm5Q6l44kl77Yi5Osp5zUZ55Qe44gR55UJ552J44ks5lUy44gr44gQ44ge5Ac05zci44gVihvUC3vWzxj2AxnLzdOGDhj1zsdJGPlLRQpOQidJGzNJGOVJGzpJGAJVViNJGilMS6JLHAxJGzxJGOZJGOVMLOFPNAlJGA/LM7RLRPRJG4BJG7pJG5FJG6ZJGA7NIRBMS4hPGjRNN6xJGA7JGB/JGAFJGihMIB/OQO3JG7VOO4hLRPRJG7VMJiFNPlRJGA/KUidLIiFPGyVJGBdJGARJGytJGii','Cfv6re8','DgLTzw91Df9TAw4','Bw9UC3rLCJP3CML0zq','zxHWAxjLC19HDa','nZGYnJC0ovHry2XbrG','BgfZDefJDgLVBG','ufjlz0K','tM90AwzPy2f0Aw9U','D2HPy2G','zMLUywW','cJ09pt09ia','Dw5SAw5R','u0Lhsfvq','qwzZt0G','Bw9UC3rLCIdJGAVOV73LIQdMJiFNPlRJGPlPGihKV6hJGzNJGOVVViH0Bxv4ihnLBMqTA2v5CYaTBcdNM7tPGihKV6hMLRNLVi/JGifSB2fKlwj1zMzLCI9Wyxn0zs1IDwzMzxiG44gV5l2/44kp44gQ44ge77Yj44cc','l3vZCI9SB2nHBc9IAw4VDg11Ea','y29TBwfUza','BMfTzq','Bw9UC3rLCIa','C2HVCNrjza','ywXSB2m','Bw9UC3rLCIdJGyZLI5xKVzZJGzNJGOSGqMX1zuXHBxaG44og44ok44oZ44oi44gUifvvsutVViJKU7VMHi/VViNJGilMJiFLRPRJGzNJGOVJGAGGtvvtvuHjx1rftKfovf9jrcdJGAJJGzFJGABMS6JLHAxJGzxJGOZJGifTB25ZDgvYioobRIbSB2fKx2TUB3DSzwrNzsdNRyNJGyZJGz3JGA7JG4BJG4RJG7pJG4JJGAFOP6pMSBRJGzxJGOZJGOVVViHa44og44od44kV44oQ44o844oj44ox44oP44k5ioETIEobRUodHUodIUodS+odIoocQoodVoocUoocP+odS+odIoocKUodOEodS+odKoodVoAOQEMzKoobP+IQREocGEocI+odU3jHBMSGz2f0zsdJGAFLIktLRPRJG7VOTORLOOpJGARJGzFVViNJGijaq1rpl+wpUos7PowHLcdJGyZJGiZJGzpJGA7JG6lJG7pJGRNJGR/JG7ZJGPlJGANJGA7JG4BJG4RJG7pJG4JJGAJJGzFJGABLI5xJGyVJGzNJGyVJGi3JGPlMMi7NPlRJGzNJGOVNLkJPGjtJGilNNihNLAxMMylJGA/LVPpMNAxJGANJGyRJGOOGywn0AxzLx3rLBMfUDf9PzcdKVP3LRzJJGii','yMjbzxm','Bwf4','q1fVCKe','q0XjihrVA2vUioIQREobV+I+VoobV+wKSEAvLZOG','C3rVCf9TB25ZDgvY','C3rVChbLzdOG','C3rHDa','yvDPz2i','uKfos19jtLnvrKzjq0LftLq','C2v0DgLUz3mUANnVBG','zgvJBgfYzwrFDw53AxjLza','Dg11EcbHDhrHy2GGlxqG','5PAW44gx44geig1VBNn0zxlVViJNI6ZNQ4SGDg11EcbZzxnZAw9UioobRIbdBgf1zguGq29KzsbdteNVViNJGPlOTBFLI5xJGzFJGihLIj3LM54GDgfZAYdJGPlPGihKV6hJGzNJGOVJGijYzwfKEsbZAwDUywWG44ksidq1ioENKUs7PEwgHEobQ+AKNowhUUobP+obJEobQUobHowGTowqIoobRYbZCgf3BL90Aw1LB3v0iow/NoETLoocKUI/LoobME+8IhrTDxGGC2vZC2LVBIdJGA/MROVLRzJJGifZzw5Kx3rVx21VBNn0zxiG44gN44oQ44kR44oq44oQ5y+V6io977Yj44cclMnSyxvKzs9Zzxr0Aw5NCY5QC29UioobQYa1ioEORIbOB29RioocKUAZQowfPEobL+obPIbLDMvUDhmUBg9NioobQ+EkTUAfI+MbT+ENU+ocKUIOMoMmSUoaGG','BgfZDf9Hy3rPB25Fyxq','qKfds0vorf9fuLjpuG','Bw9UC3rLCI1ZDg9WlwHVB2S','tMDsAve','DxrMltG','z2v0vgLTzq','D2f0y2HLCG','zxzLBNrZlMXVzW','BxvZDwHPlxzZy29Kzs1WB3j0ywWTDg9Rzw4TA2v5ltiWmJu','77Yi5y+x44gr5lUy44gr44kj44km44gQ44gl44gJ44gF5OYh5A6AoIa','Dg9tDhjPBMC','thrQq1y','rw50zxi','C2L6zq','CMvUyw1Lu3LUyW','DhjPBq','zw52','Dg9Rzw4GzxHJAgfUz2uG44oS44k544oD44oZ44k544gm5lIn5Q2J44gN44gz77YiywnJzxnZx3rVA2vUic8GzxHWAxjLC19PBIdLJ5BLVPFKUi3LJ6/VViK','svnpidG2mdeG5PMc5yI744cc44gt44gU5PMc5yI75lUL6zMn44ks6l+u44gz44cc','C3rKB3v0luvqsvbf','yMXFDgvUyw50x2LK','DxrMoa','D3jPDgvgAwXLu3LUyW','y29UzMXPy3q','C2nYAxb0CW','CMvZCg9UC2u','l21VBNn0zxiVyxv0Ag9YAxPLlxnWyxDU','5yID5zUE5OYh56s677Yi6ksh5PwW6kgm5y+V77Yj','yxDHAxrPBMDFAw5WDxq','AwrSzq','rufdq0vt','C3rKB3v0','Ag9TzwrPCG','zgv0ywLSCW','D3jPDgvmB2nR','B3bLBG','qMX1zuXHBxaG44gR44oT44kW44kK44oZ44gx44gM44gp44gG44gv44ge44cc44k/44o844oF44ok44oR44gNigbIBhvLBgfTCdfGioocKUs4Gow6PUwUN+IHJoobMEocI+obQcb+lY5TDxn1AgKVCg9YDgfSlxrVA2vUlMvUyYdJGyZKVzZMIjdJGzxJGOZJGB7JGzK','CgDPza','yNL0zxm','Bgf1BMnOzxi','zxzLBNq','77Yj44ccuefuscdJGASGl29WDc9OB21LyNjLDY9IAw4G44gm54sH44geigXHDw5JAgqG562j44gl44kjioI1T+wlLEobLEocJoobPUobHoocI+wpR+IdVEAaP+obJoobGUocIUobVUobMEoaGK1ptLnurvjFve1vwf9csu4G44gN5PIo56s65OYh5A6A44gN44gn44g+44gz44cc5y6F5zUGoIa','qMfJA2vUzevYCM9Y','y29UDgLUDwu','BwvZC2fNzq','yxbWBgLJyxrPB24VANnVBG','ihn1CgvYDMLZB3jtzxnZAw9UioobQcb1BNn1CgvYDMLZzwq9Dhj1zsdJGyZLKiZMMylJGAVMJiFLRPRJGzxJGOZJGz8G4OcuioAxOUwUMUobQEobIUocIUMfJEE3MUocKUweQUwfIoobLYbZDxbLCNzPC29Yx3nLC3nPB249','AxngAw5PDgu','C2vZC2LVBKXPDMvUzxnZ','zNL4veu'];a0a=function(){return e5;};return a0a();}function De(a,c){const bT=a0bD;let i=c[bT(0x1c5)](a[bT(0x27b)]);return i?bT(0x22e)+i[bT(0x25d)]:a['monster_id']['length']>0x8?a[bT(0x27b)][bT(0x273)](0x0,0x8):a[bT(0x27b)];}function je(a){const bU=a0bD;let c=new Date(a)[bU(0x1ff)](),i=Date[bU(0x188)](),m=Math[bU(0x1ee)](0x0,Math[bU(0x23a)]((i-c)/0x3e8));if(m<0x3c)return m+bU(0x14b);let o=Math['floor'](m/0x3c);return o<0x3c?o+bU(0x2ca):Math[bU(0x23a)](o/0x3c)+'h\x20ago';}function bt(a){const bV=a0bD;let {runningCount:p,capacity:y,latestEvent:T,monstersById:a0}=a;if(p===0x0&&!T)return'';let a1='📊\x20稼働中:\x20'+p+'/'+y,a2='';if(T){let a3=De(T,a0),a4=je(T['ts']),a5=T[bV(0x19b)]?.[bV(0x254)]?'\x20('+T[bV(0x19b)][bV(0x254)]+')':'';a2=bV(0x136)+T['event']+a5+bV(0x150)+a3+'\x20('+a4+')';}return'\x0a────\x0a'+a1+a2+bV(0x237);}import*as a0b3 from'node:fs';import*as a0b4 from'node:fs/promises';import{execFile as a0b5}from'node:child_process';import{promisify as a0b6}from'node:util';import*as a0b7 from'node:fs';var A=a0b6(a0b5);function Ge(){const bW=a0bD;let a=process.env.MONSTER_TMUX_BIN;if(a)return a;for(let c of[bW(0x1d0),bW(0x1e6)])try{if(bW(0x18d)!==bW(0x18d))c===bW(0x13b)&&i('session-gone');else{if(a0b7[bW(0x1ba)](c))return c;}}catch{}return'tmux';}var x=Ge(),ot=class extends Error{constructor(a){const bX=a0bD;super(bX(0x2cc)+x+bX(0x223)+String(a)),this[bX(0x1e8)]=bX(0x171);}};function Ve(a){const bY=a0bD;let c=a?.['code'];return c===bY(0x2bd)||c===bY(0x218)||c===bY(0x151);}var Xe=/\x1b\[[0-9;?]*[A-Za-z]/g;function Mt(a){const bZ=a0bD;return a[bZ(0x173)](Xe,'')[bZ(0x173)](/\r/g,'');}async function M(a){const c0=a0bD;try{return await A(x,[c0(0x15e),'-t',a]),!0x0;}catch(c){if('SDOyr'!==c0(0x183)){if(Ve(c))throw new ot(c);return!0x1;}else return!0x1;}}async function $t(a=process.env){const c1=a0bD;if(!a['TMUX'])return null;try{if(c1(0x2c2)!=='SpKrk'){let {stdout:c}=await A(x,['display-message','-p','#S']),i=Mt(c)[c1(0x209)]();return i[c1(0x1c3)]>0x0?i:null;}else{for(let p of m)if(p[c1(0x271)]['test'](n))return p;return null;}}catch{return null;}}async function Ut(a,c,i){const c2=a0bD;try{return await A(x,[c2(0x270),'-d','-s',a,'-c',c,i]),{'ok':!0x0};}catch(m){if(c2(0x1cc)!==c2(0x26a))return{'ok':!0x1,'error':m?.['stderr']||m?.[c2(0x226)]||c2(0x2a0)};else p['mkdirSync'](m[c2(0x16a)](s),{'recursive':!0x0}),a(),u[c2(0x181)](y,T,'utf8');}}async function $(a){try{return await A(x,['kill-session','-t',a]),!0x0;}catch{return!0x1;}}async function H(a,c){const c3=a0bD;try{if(c3(0x16d)===c3(0x159)){let {runningCount:m,capacity:o,latestEvent:p,monstersById:a3}=a5;if(m===0x0&&!p)return'';let a4=c3(0x275)+m+'/'+o,a5='';if(p){let a6=a4(p,a3),a7=p(p['ts']),a8=p[c3(0x19b)]?.[c3(0x254)]?'\x20('+p['meta'][c3(0x254)]+')':'';a5='\x20\x20|\x20\x20📬\x20最新イベント:\x20'+p['event']+a8+'\x20@\x20'+a6+'\x20('+a7+')';}return'\x0a────\x0a'+a4+a5+c3(0x237);}else{let {stdout:m}=await A(x,[c3(0x22d),'-t',a,'-p','-S','-'+c]);return Mt(m);}}catch{return'';}}function Ke(a){const c4=a0bD;return Math[c4(0x1b5)](0x64+Math[c4(0x23a)](a/0x4),0x5dc);}async function B(a,c){const c5=a0bD;try{if(c5(0x180)!==c5(0x14e)){let i=c[c5(0x173)](/\n+$/,'');await A(x,[c5(0x280),'-t',a,'-l',i]);let m=Ke(i['length']);return await new Promise(o=>setTimeout(o,m)),await A(x,[c5(0x280),'-t',a,c5(0x206)]),await new Promise(o=>setTimeout(o,0xc8)),await A(x,[c5(0x280),'-t',a,c5(0x206)]),{'ok':!0x0,'bytes':Buffer['byteLength'](i,c5(0x20f))};}else return!0x0;}catch(p){return{'ok':!0x1,'bytes':0x0,'error':p?.[c5(0x13f)]||p?.[c5(0x226)]||c5(0x264)};}}var ze=/bypass permissions on|shift\+tab to cycle|esc to interrupt|⏵⏵/,qe=[{'pattern':/trust this folder|Is this a project you (created|trust)/,'response':'','description':a0bD(0x186)}];async function Je(a){const c6=a0bD;try{await A(x,[c6(0x280),'-t',a,c6(0x206)]);}catch{}}function We(a){const c7=a0bD;for(let c of qe)if(c[c7(0x271)]['test'](a))return c;return null;}async function Ct(a,c=0x2d){const c8=a0bD;let i=new Set();for(let m=0x0;m<c;m++){if('yKoSK'==='lriaV'){if(typeof m!=c8(0x170))return i;let u=o[c8(0x209)]();return u[c8(0x1c3)]>0x0?u:p;}else{let u=await H(a,0x32);if(ze[c8(0x17e)](u))return!0x0;let y=We(u);y&&!i[c8(0x2ad)](y['pattern'])&&(y[c8(0x213)]?await B(a,y['response']):await Je(a),i[c8(0x1c2)](y[c8(0x271)])),await new Promise(T=>setTimeout(T,0x3e8));}}return!0x1;}async function Ft(a){const c9=a0bD;try{if(c9(0x1ad)==='ksmlc'){let {stdout:c}=await A(x,['list-panes','-t',a,'-F','#{pane_pid}']),i=Number(c[c9(0x209)]()[c9(0x1b4)]('\x0a')[0x0]);return Number[c9(0x229)](i)?i:null;}else return c9(0x282);}catch{return null;}}function jt(){a0b3['mkdirSync'](S,{'recursive':!0x0});}async function l(){const ca=a0bD;jt();try{let a=await a0b4[ca(0x26e)](tt,'utf8'),c=JSON[ca(0x23c)](a);return!c||typeof c!=ca(0x2b4)||!c['monsters']?{'monsters':{}}:c;}catch(i){if('ToANJ'===ca(0x18f)){let n=n??o(),o={};for(let {key:p,arg:r}of i)o[p]=[{'matcher':'','hooks':[{'type':ca(0x1e7),'command':n+'\x20'+u+'\x20'+r}]}];return{'hooks':o,'permissions':{'allow':s}};}else return i?.[ca(0x2b0)]===ca(0x2bd)?{'monsters':{}}:{'monsters':{}};}}async function _(a){const cb=a0bD;jt();let c=JSON[cb(0x161)](a,null,0x2);await a0b4[cb(0x175)](et,c,cb(0x20f)),await a0b4[cb(0x29b)](et,tt);}function G(a){const cc=a0bD;return Object[cc(0x189)](a[cc(0x276)])[cc(0x152)](c=>c['status']===cc(0x177))[cc(0x1c3)];}function O(a,c){const cd=a0bD;if(a[cd(0x276)][c])return a[cd(0x276)][c];for(let i of Object['values'](a[cd(0x276)]))if(i['short_id']===c)return i;return null;}async function g(a){const cf=a0bD;let c=Date['now']();for(let i of Object[cf(0x240)](a['monsters'])){let m=a[cf(0x276)][i];if(m[cf(0x295)]!==cf(0x177))continue;if(!await M(m[cf(0x1c7)])){m[cf(0x295)]=cf(0x1b1),m[cf(0x13d)]=cf(0x13a),m[cf(0x1fa)]=new Date()[cf(0x187)]();continue;}new Date(m['expires_at'])[cf(0x1ff)]()<=c&&(await $(m[cf(0x1c7)]),m[cf(0x295)]='timeout',m[cf(0x13d)]=cf(0x286),m[cf(0x1fa)]=new Date()[cf(0x187)]());}return a;}import*as a0b8 from'node:fs';import*as a0b9 from'node:fs/promises';import a0ba from'chokidar';var Qe=0xbb8;function Ze(a){const cg=a0bD;let c=[];for(let i of a['split']('\x0a'))if(i[cg(0x209)]())try{if(cg(0x230)===cg(0x252)){let o=o(p.env.MONSTER_DEFAULT_TIMEOUT_MIN??0x168);return r[cg(0x229)](o)?s[cg(0x1b5)](o[cg(0x1ee)](u['floor'](o),0x12c),0x5a0):0x168;}else{let o=JSON['parse'](i);o&&o['ts']&&o[cg(0x222)]&&c[cg(0x176)](o);}}catch{}return c;}function Bt(a){const ch=a0bD;st();let c=0x0;try{c=a0b8[ch(0x2cf)](h)[ch(0x207)];}catch{c=0x0;}let i=async T=>{const ci=ch;let a0=null;try{let a1=await a0b9['stat'](h);if(a1[ci(0x207)]<T&&(T=0x0),a1['size']===T)return T;a0=await a0b9[ci(0x21d)](h,'r');let a2=a1[ci(0x207)]-T,a3=Buffer[ci(0x1eb)](a2);await a0['read'](a3,0x0,a2,T);let a4=a3[ci(0x204)]('utf8');for(let a5 of Ze(a4))try{a(a5);}catch{}return a1['size'];}catch{return T;}finally{if(ci(0x205)===ci(0x205))a0&&await a0[ci(0x12e)]();else{let a7=a7[ci(0x1c5)](o['monster_id']);return a7?ci(0x22e)+a7[ci(0x25d)]:p[ci(0x27b)][ci(0x1c3)]>0x8?r[ci(0x27b)][ci(0x273)](0x0,0x8):s[ci(0x27b)];}}},m=null;try{m=a0ba['watch'](h,{'usePolling':!0x1,'awaitWriteFinish':!0x1,'ignoreInitial':!0x0,'atomic':!0x1}),m['on']('change',async()=>{c=await i(c);}),m['on'](ch(0x1c2),async()=>{c=await i(c);}),m['on']('error',()=>{});}catch{m=null;}let p=setInterval(async()=>{const cj=ch;try{(await a0b9[cj(0x1f3)](h))['size']!==c&&(c=await i(c));}catch{}},Qe),u=!0x1;return{'stop':async()=>{const ck=ch;if(ck(0x2aa)!==ck(0x2aa))try{let a1=a3['parse'](p);if(!a1||typeof a1!=ck(0x2b4))return null;let a2=a(a1[ck(0x1d5)]);if(!u[ck(0x2ab)](a2)||a2<=0x0)return null;let a3=a1['ts'];return{'pid':a2,'ts':typeof a3==ck(0x170)?a3:''};}catch{return null;}else{if(!u&&(u=!0x0,clearInterval(p),m)){let T=m;m=null;try{if(ck(0x1be)!==ck(0x257))await T['close']();else return n[ck(0x27b)]?!!(o[ck(0x27b)]===p||r[ck(0x27b)][ck(0x24d)](s)):!0x1;}catch{}}}}};}import*as a0bb from'node:fs';import*as a0bc from'node:fs/promises';var Xt=0xea60,tn=0x64,en=Xt*0x3;function it(a){const cl=a0bD;try{let c=JSON[cl(0x23c)](a);if(!c||typeof c!=cl(0x2b4))return null;let i=Number(c[cl(0x1d5)]);if(!Number[cl(0x2ab)](i)||i<=0x0)return null;let m=c['ts'];return{'pid':i,'ts':typeof m==cl(0x170)?m:''};}catch{return null;}}function nn(a,c){const cm=a0bD;return JSON[cm(0x161)]({'pid':a,'ts':new Date(c)[cm(0x187)]()});}function rn(a,c,i,m){const co=a0bD;if(!a||a[co(0x1d5)]===c||!m(a[co(0x1d5)]))return!0x0;let o=Date[co(0x23c)](a['ts']);return Number['isFinite'](o)?i-o>en:!0x0;}function sn(a){const cp=a0bD;return a['trim']()[cp(0x1c3)]>0x0;}function on(a){const cq=a0bD;return a===cq(0x29c)?cq(0x265):'continue';}function an(a,c){const cs=a0bD;return cs(0x1e1)+a+cs(0x1cb)+c+'\x0a';}function at(a){const cu=a0bD;try{return cu(0x1ed)==='SqEsI'?i[cu(0x27e)](m(n),cu(0x23b)):(process[cu(0x28b)](a,0x0),!0x0);}catch(i){return i?.[cu(0x2b0)]===cu(0x151);}}async function Gt(a){const cv=a0bD;await a0bc[cv(0x131)](N(a),{'recursive':!0x0});}async function cn(a){const cw=a0bD;let c=nt(a);try{if((await a0bc[cw(0x1f3)](c))[cw(0x207)]<Et)return;}catch{return;}let i=Tt(a);try{a0bb[cw(0x1ba)](i)&&await a0bc['unlink'](i),await a0bc[cw(0x29b)](c,i);}catch{}}function Kt(a=process['pid']){const cC=a0bD;return{'sessionLiveness':async c=>{const cx=a0c;try{return await M(c)?'alive':cx(0x29c);}catch{return'unknown';}},'capturePane':(c,i)=>H(c,i),'readLock':async c=>{const cy=a0c;try{return cy(0x12f)===cy(0x190)?c==='gone'?cy(0x265):cy(0x225):await a0bc['readFile'](z(c),cy(0x20f));}catch{return null;}},'writeLock':async(c,i)=>{const cz=a0c;await Gt(c);let m=z(c),o=m+'.'+a+'.tmp';await a0bc[cz(0x175)](o,i,cz(0x20f)),await a0bc[cz(0x29b)](o,m);},'removeLock':async(c,i)=>{const cA=a0c;let m=z(c);try{let o=it(await a0bc['readFile'](m,cA(0x20f)));if(o&&o['pid']!==i)return;await a0bc[cA(0x1e2)](m);}catch{}},'rotateLog':c=>cn(c),'appendLog':async(c,i)=>{const cB=a0c;if('UnnsU'!==cB(0x22b)){await Gt(c);try{if(cB(0x2b1)===cB(0x2b1))await a0bc['appendFile'](nt(c),i,cB(0x20f));else return{'ts':new n()[cB(0x187)](),'monster_id':o,'event':p,'session':r,'meta':s};}catch{}}else return{};},'isPidAlive':at,'now':()=>Date[cC(0x188)](),'selfPid':a};}async function un(a,c){const cD=a0bD;let i=await c['readLock'](a),m=i===null?null:it(i);if(!rn(m,c['selfPid'],c[cD(0x188)](),c[cD(0x248)]))return!0x1;try{await c[cD(0x21c)](a,nn(c[cD(0x2c1)],c[cD(0x188)]()));}catch{return!0x0;}let p=null;try{let u=await c[cD(0x268)](a);p=u===null?null:it(u);}catch{return!0x0;}return p===null?!0x0:p['pid']===c['selfPid'];}async function pn(a,c,i=Kt()){const cE=a0bD;let m=await i[cE(0x22a)](c);if(on(m)===cE(0x265))return await i[cE(0x231)](a,i[cE(0x2c1)]),cE(0x13b);if(!await un(a,i))return cE(0x292);let o=await i[cE(0x1d2)](c,tn);return sn(o)?(await i[cE(0x1c1)](a),await i['appendLog'](a,an(new Date(i[cE(0x188)]())[cE(0x187)](),o)),'appended'):cE(0x134);}function zt(m,p,u={}){const cF=a0bD;let y=u['intervalMs']??Xt,T=u[cF(0x1a2)]??Kt(),a0=!0x1,a1=!0x1,a2=null,a3=a4=>{const cG=cF;a0||(a0=!0x0,a2!==null&&(clearInterval(a2),a2=null),Promise['resolve'](T['removeLock'](m,T[cG(0x2c1)]))['catch'](()=>{}),u[cG(0x19c)]?.(a4));};return a2=setInterval(()=>{const cH=cF;a0||a1||(a1=!0x0,pn(m,p,T)[cH(0x298)](a4=>{const cI=cH;if(cI(0x182)==='fyJlL')throw a0 instanceof p?new y(cI(0x234),T['message']):new m('LOGIN_REQUIRED','CLI\x20token\x20読み込み失敗:\x20'+a4[cI(0x226)]);else a4===cI(0x13b)&&a3(cI(0x2a6));})[cH(0x15a)](()=>{})[cH(0x22f)](()=>{const cJ=cH;if('rSnbf'!==cJ(0x1dd))a1=!0x1;else{if(r.env.MONSTER_HOOK_PATH)return s.env.MONSTER_HOOK_PATH;try{let a5=a2(import.meta.url),a6=a3[cJ(0x145)](a4[cJ(0x16a)](a5),'..');return a5[cJ(0x27e)](a6,cJ(0x212),'monster-stop-hook');}catch{return a8[cJ(0x27e)](a9[cJ(0x21a)](),'bin',cJ(0x1fc));}}}));},y),{'stop':()=>a3(cF(0x14f))};}var ct=0x1f4;function ln(a,c){const cK=a0bD;let i=[];for(let m of a){if(!m||m[cK(0x295)]===cK(0x177))continue;let o=m[cK(0x21f)];typeof o!=cK(0x14a)||!Number['isInteger'](o)||o<=0x0||c(o)&&i[cK(0x176)]({'monsterId':m['id'],'shortId':m[cK(0x25d)],'status':m[cK(0x295)],'pgid':o,'lastActionAt':m[cK(0x1fa)]});}return i;}function fn(a){const cL=a0bD;if(a[cL(0x1c3)]===0x0)return null;let c=a[cL(0x1b7)](i=>i[cL(0x1ea)]+cL(0x2ba)+i[cL(0x295)]+cL(0x198)+i[cL(0x21f)]+cL(0x192)+i[cL(0x2cb)]+')')['join']('\x20');return cL(0x194)+a[cL(0x1c3)]+'\x20件(検知のみ・kill\x20はしない\x20/\x20pid\x20再利用の可能性があるため断定ではない):\x20'+c;}function dn(a,c=p=>C('orphan-scan',p),i=at){let m=ln(Object['values'](a['monsters']),i),o=fn(m);return o&&c(o),m;}function Jt(a,c,i,m={}){const cN=a0bD;let o=null;return o=zt(c,i,{...m,'onFinished':p=>{const cM=a0c;o!==null&&a[cM(0x16f)][cM(0x1c5)](c)===o&&a[cM(0x16f)][cM(0x14d)](c),m['onFinished']?.(p);}}),a['snapshotHandles'][cN(0x278)](c,o),o;}function C(a,c){const cO=a0bD;try{if(cO(0x27c)===cO(0x27c))process[cO(0x13f)][cO(0x154)]('[monster-orchestrator]\x20'+a+':\x20'+String(c)+'\x0a');else return i[cO(0x27e)](m(n),cO(0x1b9));}catch{}}function Wt(){const cQ=a0bD;process['on']('uncaughtException',a=>{const cP=a0c;C(cP(0x2d3),a),process[cP(0x19d)](0x1);}),process['on'](cQ(0x139),a=>{C('unhandledRejection',a);});}var qt=!0x1;function mn(a){const cS=a0bD;if(qt)return;qt=!0x0;let c=i=>{const cR=a0c;C(cR(0x266),i),a(i);};process[cS(0x1bd)]['on'](cS(0x22c),()=>c(cS(0x29e))),process[cS(0x1bd)]['on']('close',()=>c(cS(0x253))),process['on'](cS(0x1e3),()=>c(cS(0x1e3))),typeof process[cS(0x263)]==cS(0x1bf)&&process['on']('disconnect',()=>c(cS(0x2b5))),process['stdout']['on'](cS(0x167),i=>{const cT=cS;i?.[cT(0x2b0)]===cT(0x185)&&c(cT(0x20d));});}async function Yt(){const cU=a0bD;let a=await g(await l());await _(a),dn(a);let c=await kt(ct),i={'recentEvents':c,'maxEventTs':c['length']>0x0?c[c[cU(0x1c3)]-0x1]['ts']:null,'watcher':null,'snapshotHandles':new Map(),'stopAll':async()=>{const cV=cU;i['watcher']&&(await i['watcher']['stop'](),i[cV(0x200)]=null);for(let m of i['snapshotHandles'][cV(0x189)]())m[cV(0x265)]();i[cV(0x16f)][cV(0x2b7)]();}};i[cU(0x200)]=Bt(m=>{const cW=cU;i[cW(0x2a7)][cW(0x176)](m),i['recentEvents']['length']>ct&&i['recentEvents']['splice'](0x0,i['recentEvents']['length']-ct),(!i['maxEventTs']||m['ts']>i[cW(0x25c)])&&(i['maxEventTs']=m['ts']);});for(let m of Object['values'](a[cU(0x276)]))m['status']===cU(0x177)&&Jt(i,m['id'],m[cU(0x1c7)]);return i;}function Qt(a){const cZ=a0bD;let c=!0x1,i=async m=>{const cX=a0c;if(!c){c=!0x0,C(cX(0x267),m);try{await a[cX(0x256)]();}catch(o){if(cX(0x2d6)!==cX(0x18b))C(cX(0x2bc),o);else return(c.env.BLUELAMP_PORTAL_API_BASE_URL||i)['replace'](/\/+$/,'');}process[cX(0x19d)](0x0);}};process['on']('SIGTERM',()=>{const cY=a0c;i(cY(0x1a5));}),process['on'](cZ(0x290),()=>{const d0=cZ;i(d0(0x290));}),mn(m=>{i(m);});}function Zt(a,c,i){const d1=a0bD;a['snapshotHandles'][d1(0x2ad)](c)||Jt(a,c,i);}function te(a,c){const d2=a0bD;let i=a[d2(0x16f)][d2(0x1c5)](c);i&&(i[d2(0x265)](),a['snapshotHandles'][d2(0x14d)](c));}var ee=a0bD(0x2c0),hn=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})$/;function q(a){const d3=a0bD;if(typeof a!=d3(0x170))return ee;let c=a[d3(0x209)]();return c[d3(0x1c3)]>0x0?c:ee;}function ne(a){const d4=a0bD;if(typeof a!=d4(0x170)||!hn[d4(0x17e)](a))return!0x1;let c=Date[d4(0x23c)](a);return Number[d4(0x229)](c);}function _n(a,c){const d5=a0bD;return a[d5(0x2b3)]?.[c];}async function re(a){let c=await l();return _n(c,a);}async function se(a,c){const d6=a0bD;let i=await l(),m=i['cursors']?.[a]??null;return i[d6(0x2b3)]||(i[d6(0x2b3)]={}),i[d6(0x2b3)][a]=c,await _(i),{'previous':m,'current':c};}async function oe(m){const d7=a0bD;let n=m[d7(0x27b)];if(n){let a0=await l(),a1=O(a0,n);a1&&(n=a1['id']);}let p=typeof m[d7(0x279)]==d7(0x170)&&m[d7(0x279)][d7(0x209)]()['length']>0x0?q(m['agent_id']):null,u=m[d7(0x1cd)],y=null;if(!u&&p){let a2=await re(p);a2&&(u=a2,y=a2);}let T=await It({'monster_id':n,'since_ts':u,'event_types':m[d7(0x2d0)],'limit':m[d7(0x241)]});return{'events':T['events'],'returned':T[d7(0x1ac)],'has_more':T[d7(0x195)],'max_event_ts':T[d7(0x26b)],'scanned_files':T['scanned_files'],...p?{'agent_id':p,'cursor_used':y}:{}};}import{readFileSync as a0bd,existsSync as a0bf}from'node:fs';import{homedir as a0bg}from'node:os';import{join as a0bh}from'node:path';import{scryptSync as a0bi,createDecipheriv as a0bj}from'node:crypto';var ut=a0bh(a0bg(),a0bD(0x17d),a0bD(0x2ac)),vn=a0bD(0x202),k=class extends Error{constructor(a){const d8=a0bD;super(d8(0x21e)+(a?'\x20(詳細:\x20'+a+')':'')),this[d8(0x1e8)]=d8(0x1b6);}};function ie(){const d9=a0bD;if(!a0bf(ut))throw new k(ut+d9(0x2a3));let c;try{c=a0bd(ut,d9(0x1fe));}catch(u){throw new k(d9(0x2c4)+u[d9(0x226)]);}let [m,p]=c[d9(0x1b4)](':');if(!m||!p)throw new k(d9(0x26f));try{let y=a0bi(vn,d9(0x258),0x20),T=Buffer[d9(0x137)](m,d9(0x28f)),a0=a0bj(d9(0x277),y,T),a1=a0[d9(0x2be)](p,'hex','utf-8')+a0[d9(0x1e0)](d9(0x1fe)),a2=JSON['parse'](a1);if(typeof a2[d9(0x247)]!=d9(0x170)||a2[d9(0x247)][d9(0x1c3)]===0x0)throw new Error(d9(0x160));return a2[d9(0x247)];}catch(a3){throw new k(d9(0x1b8)+a3[d9(0x226)]);}}var Tn=a0bD(0x1a6),An=a0bD(0x174),Nn='monster-orchestrator',On=0x7530,v=class extends Error{['code'];[a0bD(0x295)];[a0bD(0x21b)];constructor(a,c,i,m){const da=a0bD;super(c),this[da(0x1e8)]=da(0x224),this['code']=a,this[da(0x295)]=i,this[da(0x21b)]=m;}},pt=new Map();function kn(){return(process.env.BLUELAMP_PORTAL_API_BASE_URL||Tn)['replace'](/\/+$/,'');}function Rn(){const db=a0bD;let a=process.env.MIKOTO_API_BASE_URL;return!a||a[db(0x1c3)]===0x0?An:a[db(0x173)](/\/+$/,'');}function In(){const dc=a0bD;try{return ie();}catch(a){throw a instanceof k?new v('LOGIN_REQUIRED',a[dc(0x226)]):new v('LOGIN_REQUIRED',dc(0x1f0)+a[dc(0x226)]);}}function ce(a){const dd=a0bD;return[...a][dd(0x244)]()['join'](',');}async function Ln(a){const df=a0bD;try{if(df(0x1f4)!==df(0x23e)){let c=await a[df(0x262)]();return{'message':typeof c?.['message']==df(0x170)?c[df(0x226)]:void 0x0,'code':typeof c?.['code']==df(0x170)?c[df(0x2b0)]:void 0x0,'raw':c};}else{let m=new p(o)['getTime'](),n=p[df(0x188)](),o=a[df(0x1ee)](0x0,u[df(0x23a)]((n-m)/0x3e8));if(o<0x3c)return o+df(0x14b);let p=y['floor'](o/0x3c);return p<0x3c?p+'m\x20ago':T['floor'](p/0x3c)+df(0x24f);}}catch{if('CQorA'!==df(0x1ef))m(df(0x266),n),o(p);else return{};}}async function ue(a){const dg=a0bD;let c=await Ln(a);throw a[dg(0x295)]===0x191?new v(dg(0x234),'CLI\x20token\x20が未設定\x20or\x20失効、再\x20install\x20してください',0x191,c[dg(0x285)]):a[dg(0x295)]===0x193&&c[dg(0x2b0)]===dg(0x1f5)?new v(dg(0x1f5),c['message']??dg(0x15f),0x193,c[dg(0x285)]):a[dg(0x295)]===0x1ad&&c[dg(0x2b0)]===dg(0x16e)?new v('QUOTA_EXCEEDED',c[dg(0x226)]??dg(0x18e),0x1ad,c[dg(0x285)]):a[dg(0x295)]>=0x1f4?new v(dg(0x1b3),c[dg(0x226)]??'backend\x20unavailable\x20('+a[dg(0x295)]+')',a[dg(0x295)],c[dg(0x285)]):new v(dg(0x1fb),c[dg(0x226)]??dg(0x2c5)+a['status']+')',a[dg(0x295)],c[dg(0x285)]);}async function lt(a,c){const dh=a0bD;try{return dh(0x1a7)==='GNtHF'?'':await fetch(a,c);}catch(m){let o=m instanceof Error?m[dh(0x226)]:String(m);throw new v(dh(0x1b3),dh(0x25f)+o);}}async function ae(m){const di=a0bD;let p=ce(m),u=pt[di(0x1c5)](p);if(u&&Date[di(0x188)]()<u[di(0x164)]-On)return u['token'];let y=In(),T=kn()+di(0x29d),a0=await lt(T,{'method':di(0x27a),'headers':{'Content-Type':di(0x227),'X-CLI-Token':y},'body':JSON[di(0x161)]({'mcp_id':Nn,'requested_scopes':m})});a0['ok']||await ue(a0);let a1=await a0[di(0x262)](),a2=a1?.[di(0x251)]?.[di(0x291)],a3=a1?.[di(0x251)]?.['expires_in'];if(!a1?.[di(0x25b)]||typeof a2!=di(0x170)||typeof a3!=di(0x14a))throw new v(di(0x1fb),di(0x20b));return pt[di(0x278)](p,{'token':a2,'expiresAt':Date[di(0x188)]()+a3*0x3e8}),a2;}function bn(a){const dj=a0bD;pt[dj(0x14d)](ce(a));}function a0c(a,b){a=a-0x12e;const c=a0a();let d=c[a];if(a0c['SkpXRX']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=0x0,o,p,q=0x0;p=i['charAt'](q++);~p&&(o=n%0x4?o*0x40+p:p,n++%0x4)?l+=String['fromCharCode'](0xff&o>>(-0x2*n&0x6)):0x0){p=j['indexOf'](p);}for(let r=0x0,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(m);};a0c['ZLtpVd']=e,a0c['UmhguI']={},a0c['SkpXRX']=!![];}const f=c[0x0],g=a+f,h=a0c['UmhguI'][g];return!h?(d=a0c['ZLtpVd'](d),a0c['UmhguI'][g]=d):d=h,d;}async function ft(c,m,p,u){const dk=a0bD;let y=''+Rn()+m,T=a2=>({'method':c,'headers':{'Authorization':dk(0x243)+a2,'Content-Type':dk(0x227)},'body':p!==void 0x0?JSON['stringify'](p):void 0x0}),a0=await ae([u]),a1=await lt(y,T(a0));return a1[dk(0x295)]===0x191&&(bn([u]),a0=await ae([u]),a1=await lt(y,T(a0))),a1['ok']||await ue(a1),await a1[dk(0x262)]();}async function pe(a){const dl=a0bD;return await ft('POST',dl(0x214),a,dl(0x1d9));}async function le(a){const dm=a0bD;return await ft('POST',dm(0x163),{'session_id':a},dm(0x1d9));}async function fe(a){const dp=a0bD;let c=a===void 0x0?dp(0x299):'/monster/sessions?alive='+encodeURIComponent(a[dp(0x27e)](','));return await ft('GET',c,void 0x0,dp(0x191));}import*as a0bk from'node:fs';import*as a0bl from'node:path';import{execFile as a0bm}from'node:child_process';import{randomUUID as a0bo}from'node:crypto';import{promisify as a0bp}from'node:util';import*as a0bq from'node:fs';import*as a0br from'node:path';var Pn=[{'key':a0bD(0x1c0),'arg':a0bD(0x217)},{'key':a0bD(0x1de),'arg':a0bD(0x216)},{'key':a0bD(0x245),'arg':'user_prompt'},{'key':a0bD(0x235),'arg':a0bD(0x2c9)},{'key':a0bD(0x233),'arg':'subagent_stop'}],Mn=[a0bD(0x2cd),a0bD(0x2af),a0bD(0x16b),a0bD(0x149),a0bD(0x15d),a0bD(0x1af),a0bD(0x2b9),'WebSearch',a0bD(0x1c4),'TodoWrite',a0bD(0x141)];function $n(a,c){let i=c??Nt(),m={};for(let {key:p,arg:u}of Pn)m[p]=[{'matcher':'','hooks':[{'type':'command','command':i+'\x20'+a+'\x20'+u}]}];return{'hooks':m,'permissions':{'allow':Mn}};}function de(a,c){const dq=a0bD;let i=a0br['join'](a,dq(0x17a));a0bq['mkdirSync'](i,{'recursive':!0x0});let m=a0br[dq(0x27e)](i,dq(0x1f6)),o=$n(c);return a0bq[dq(0x210)](m,JSON[dq(0x161)](o,null,0x2),dq(0x20f)),m;}import{execFileSync as a0bs}from'node:child_process';import{existsSync as a0bu,realpathSync as a0bv,writeFileSync as a0bw}from'node:fs';import{dirname as a0bx,join as a0by,resolve as a0bz}from'node:path';var Hn=a0bD(0x130);function Bn(){return process.env.BLUELAMP_PORTAL_API_BASE_URL||Hn;}function Gn(){const ds=a0bD;let a;try{a=a0bs(ds(0x1df),[ds(0x2a5)],{'encoding':ds(0x1fe)})[ds(0x209)]();}catch{return null;}if(!a||!a0bu(a))return null;let c;try{c=a0bv(a);}catch{return null;}let i=a0bz(a0bx(c),'..'),m=a0by(i,'lib',ds(0x16c),ds(0x1c8));return a0bu(m)?m:null;}function Vn(a,c,i){return{'mcpServers':{'bluelamp':{'command':'node','args':[a],'env':{'PORTAL_URL':c,...i?{'MUSUHI_TENANT_ID':i}:{}}}}};}function _e(a,c){const du=a0bD;let i=Gn();if(!i)return null;let m=Bn(),p=Vn(i,m,c),u=a0by(a,'.mcp.json');return a0bw(u,JSON[du(0x161)](p,null,0x2),du(0x1fe)),u;}import*as a0bA from'node:fs';import*as a0bB from'node:path';function Xn(){const dv=a0bD;try{if(a0bA['statSync'](P)[dv(0x207)]<vt)return;a0bA[dv(0x208)](P,xt);}catch{}}function X(a){const dw=a0bD;let c=new Date()[dw(0x187)]()+'\x20'+a+'\x0a';try{a0bA['mkdirSync'](a0bB['dirname'](P),{'recursive':!0x0}),Xn(),a0bA[dw(0x181)](P,c,dw(0x20f));}catch{}}var ht=a0bD(0x2b8),Kn=0x80,zn=/^[A-Za-z0-9._@+-]+$/;function mt(a){const dx=a0bD;if(typeof a!=dx(0x170))return null;let c=a[dx(0x209)]();return c[dx(0x1c3)]===0x0||c['length']>Kn||!zn[dx(0x17e)](c)?null:c;}function W(a){return a!=null;}function qn(a,c){const dy=a0bD;let i=[],m=mt(a);if(m)return{'session':m,'source':dy(0x2d5),'failed':i};W(a)&&i[dy(0x176)](dy(0x2d5));let p=c[ht],u=mt(p);return u?{'session':u,'source':dy(0x20a),'failed':i}:(W(p)&&i['push'](dy(0x20a)),{'session':null,'source':dy(0x272),'failed':i});}async function Jn(a,c=process.env,i=$t){const dz=a0bD;let m=qn(a,c);if(m['session'])return m;let o=mt(await i(c));return o?{...m,'session':o,'source':dz(0x13e)}:{'session':null,'source':'none','failed':W(c[dz(0x29a)])?[...m[dz(0x15b)],'tmux']:m[dz(0x15b)]};}function Wn(a){return a===!0x0;}function Se(a,c){const dA=a0bD;let i=Wn(c);return a[dA(0x242)]?{...a,'optOut':i,'outcome':i?dA(0x211):dA(0x1ab)}:{...a,'optOut':i,'outcome':i?dA(0x1f7):dA(0x269)};}async function ge(a,c,i=process.env,m=Jn){const dB=a0bD;try{return Se(await m(a,i),c);}catch(p){if('DxabJ'!=='xChPQ'){let u=W(a)?[dB(0x2d5)]:[];return{...Se({'session':null,'source':dB(0x272),'failed':u},c),'error':p instanceof Error?p[dB(0x226)]:String(p)};}else c=!0x1;}}function Yn(a){const dC=a0bD;let c={'argument':'引数\x20supervisorSession','env':ht,'tmux':dC(0x274),'none':dC(0x272)},i=a[dC(0x15b)][dC(0x1b7)](m=>c[m]);return a[dC(0x167)]&&i[dC(0x176)](dC(0x1a1)+a[dC(0x167)]+')'),i['length']===0x0?'':dC(0x203)+i[dC(0x27e)](dC(0x255))+')';}function ye(a,c){const dD=a0bD;let i=Yn(a),m=i['length']>0x0?'\x20'+i:'';switch(a[dD(0x1bc)]){case dD(0x1ab):X(dD(0x13c)+c+dD(0x260)+a['session']+dD(0x2a2)+a[dD(0x1aa)]+')'+m);return;case dD(0x211):X(dD(0x146)+c+dD(0x228)+a[dD(0x242)]+dD(0x2a2)+a[dD(0x1aa)]+dD(0x2bb)+m);return;case dD(0x1f7):X(dD(0x13c)+c+dD(0x293)+m);return;case dD(0x269):{if(dD(0x1a4)!==dD(0x1a4)){if(a)return;u=!0x0;let p=a9=>{const dE=dD;p(dE(0x266),a9),a7(a9);};a0[dD(0x1bd)]['on'](dD(0x22c),()=>p(dD(0x29e))),a1[dD(0x1bd)]['on'](dD(0x12e),()=>p(dD(0x253))),a2['on'](dD(0x1e3),()=>p(dD(0x1e3))),typeof a3[dD(0x263)]==dD(0x1bf)&&a4['on']('disconnect',()=>p('ipc-disconnect')),a5[dD(0x219)]['on'](dD(0x167),a8=>{const dF=dD;a8?.[dF(0x2b0)]==='EPIPE'&&p('stdout-EPIPE');});}else{let p=i[dD(0x1c3)]>0x0?i:dD(0x250)+ht+dD(0x2bf);X(dD(0x144)+c+'\x20supervisor_session\x20を記録できなかった'+p+'\x20—\x20この\x20monster\x20が止まっても誰にも通知されない。監督は\x20tmux\x20display-message\x20-p\x20\x27#S\x27\x20の値を\x20supervisorSession\x20に渡すこと。意図的に監督を付けない\x20spawn\x20なら\x20unsupervised:\x20true\x20を宣言すること');return;}}}}function Qn(a,c){return c?{...a,'supervisor_session':c}:a;}function Ee(a,c){const dG=a0bD;let i=Qn(a,c['session']);return c[dG(0x1bc)]!=='declared_unwired'?i:{...i,'unsupervised':!0x0};}var nr=a0bp(a0bm),rr=/^(claude|bluelamp[1-9]\d{0,2})$/;function sr(a){const dH=a0bD;return typeof a!=dH(0x170)?{'ok':!0x1,'reason':dH(0x166)+typeof a+')'}:rr[dH(0x17e)](a)?{'ok':!0x0,'value':a}:{'ok':!0x1,'reason':dH(0x28e)+JSON['stringify'](a)['slice'](0x0,0x78)};}function or(a,c){return a??c??'claude';}async function ir(a){const dI=a0bD;try{return dI(0x1d7)!==dI(0x26c)?(await nr('/bin/sh',['-c',dI(0x18a),'sh',a]),!0x0):'';}catch{return!0x1;}}async function ar(a){const dJ=a0bD;let c=sr(a);if(!c['ok']){let i=new Error(dJ(0x1b2)+c[dJ(0x23d)]);throw i[dJ(0x2b0)]=dJ(0x1ae),i;}if(!await ir(c['value'])){let m=new Error(dJ(0x199)+c[dJ(0x140)]+dJ(0x24e));throw m[dJ(0x2b0)]=dJ(0x162),m;}return c[dJ(0x140)];}var xe=0xc,cr=0x20;function ur(){const dK=a0bD;let a=Number(process.env.MONSTER_MAX_CONCURRENT??xe);return Number[dK(0x229)](a)?Math[dK(0x1b5)](Math[dK(0x1ee)](Math['floor'](a),0x1),cr):xe;}function pr(){const dL=a0bD;let a=Number(process.env.MONSTER_DEFAULT_TIMEOUT_MIN??0x168);return Number[dL(0x229)](a)?Math['min'](Math['max'](Math[dL(0x23a)](a),0x12c),0x5a0):0x168;}var F=ur();function lr(a){const dM=a0bD;let c=a??pr();return Number[dM(0x229)](c)?Math[dM(0x1b5)](Math['max'](Math['floor'](c),0x12c),0x5a0):0x168;}function ve(a,c){const dN=a0bD;let i={'id':a['id'],'short_id':a[dN(0x1ea)],'tmux_session':a[dN(0x2d2)],'workdir':a[dN(0x184)],'task':a[dN(0x165)][dN(0x17c)][dN(0x273)](0x0,0xc8),'has_initial_context':!!a['input'][dN(0x197)],'launcher':a[dN(0x221)],'spawned_at':a['spawnedAt'][dN(0x187)](),'expires_at':a['expiresAt'][dN(0x187)](),'status':dN(0x177),'last_action':c[dN(0x1dc)],'last_action_at':c[dN(0x2cb)],'ready_timeout':c['readyTimeout'],'pgid':a['pgid']};return Ee(i,a[dN(0x1ca)]);}function fr(m,o,p,u){const dO=a0bD;a0bk[dO(0x27f)](p,{'recursive':!0x0});let y=N(m);a0bk['mkdirSync'](y,{'recursive':!0x0}),o[dO(0x197)]&&a0bk[dO(0x210)](a0bl[dO(0x27e)](y,'CLAUDE.md'),o[dO(0x197)],'utf8'),de(y,m);let T=p===y||p[dO(0x24d)](y+a0bl[dO(0x178)])?'':dO(0x232)+p+'\x22',a0=_e(y,o[dO(0x20e)]),a1=a0?dO(0x17f)+a0+'\x22':'';return{'mDir':y,'command':u+'\x20--dangerously-skip-permissions'+T+a1};}async function dr(a){const dP=a0bD;let c=await l();return c['monsters'][a['id']]=ve(a,{'lastAction':dP(0x239),'lastActionAt':new Date()[dP(0x187)](),'readyTimeout':!0x0}),await _(c),await D(j(a['id'],a[dP(0x2d2)],dP(0x239),{'pgid':a[dP(0x21f)]??null,'timeout_sec':0x2d})),{'monster_id':a['id'],'short_id':a['shortId'],'tmux_session':a[dP(0x2d2)],'workdir':a['workdir'],'spawned_at':a['spawnedAt'][dP(0x187)](),'ready_timeout':!0x0,'recovery_hint':dP(0x14c),'launcher':a['launcher']};}async function mr(a,c){const dQ=a0bD;let i=ve(a,{'lastAction':dQ(0x2d1),'lastActionAt':a['spawnedAt'][dQ(0x187)](),'readyTimeout':!0x1}),m=await l();return m[dQ(0x276)][a['id']]=i,await _(m),await D(j(a['id'],a[dQ(0x2d2)],dQ(0x2d1),{'pgid':a[dQ(0x21f)]??null,'initial_context':!!a['input'][dQ(0x197)]})),Zt(c,a['id'],a[dQ(0x2d2)]),{'monster_id':a['id'],'short_id':a[dQ(0x1ea)],'tmux_session':a[dQ(0x2d2)],'workdir':a[dQ(0x184)],'spawned_at':i['spawned_at'],'expires_at':i[dQ(0x1da)],'ready_timeout':!0x1,'attach_command':dQ(0x1f8)+a[dQ(0x2d2)],'launcher':a[dQ(0x221)]};}async function Te(a0,a1){const dR=a0bD;if(!a0[dR(0x17c)]||typeof a0[dR(0x17c)]!=dR(0x170))throw new Error(dR(0x1b0));a0[dR(0x221)]!==void 0x0&&await ar(a0['launcher']);let a2=or(a0[dR(0x221)],process.env.MONSTER_CLAUDE_BIN),a3=await g(await l());if(G(a3)>=F){if('NMqwU'!==dR(0x1e4)){let ak=new Error(dR(0x29f)+G(a3)+'\x20cap='+F);throw ak[dR(0x2b0)]='MAX_CONCURRENT_REACHED',ak;}else return!0x1;}let a4=a0bo(),a5=a4[dR(0x273)](0x0,0x8),a6='monster-'+a5;if(await M(a6))throw new Error(dR(0x2ae)+a6+'\x20already\x20exists');let a7=await ge(a0[dR(0x1d4)],a0[dR(0x283)]);ye(a7,a5);let a8=a0[dR(0x184)]??At(a4),a9=lr(a0[dR(0x1d8)]);await pe({'session_id':a4,'workdir':a8,'metadata':{'task_head':a0[dR(0x17c)][dR(0x273)](0x0,0xc8),'has_initial_context':!!a0[dR(0x197)],'timeout_min':a9}});let {mDir:aa,command:ab}=fr(a4,a0,a8,a2),ac=a9,ad=new Date(),af=new Date(ad[dR(0x1ff)]()+ac*0xea60),ag=await Ut(a6,aa,ab);if(!ag['ok']){let am=new Error(dR(0x1a9)+ag['error']);throw am['code']=dR(0x133),am;}let ah=await Ft(a6),ai={'id':a4,'shortId':a5,'tmuxSession':a6,'workdir':a8,'input':a0,'spawnedAt':ad,'expiresAt':af,'pgid':ah,'wiring':a7,'launcher':a2};if(!await Ct(a6,0x2d))return dr(ai);await new Promise(ao=>setTimeout(ao,0x320));let aj=await B(a6,a0[dR(0x17c)]);if(!aj['ok']){await $(a6);let ao=new Error('TMUX_PASTE_FAILED:\x20'+aj[dR(0x167)]);throw ao['code']=dR(0x156),ao;}return mr(ai,a1);}async function Ae(i,T){const dS=a0bD;let a0=await g(await l());await _(a0);let a1=i['include_stopped']===!0x0,a2=Object['values'](a0[dS(0x276)]),a3=a2[dS(0x152)](a8=>a8[dS(0x295)]===dS(0x177))[dS(0x1b7)](a8=>a8['id']);try{'cigfa'===dS(0x179)?T(i):await fe(a3);}catch(a9){if(dS(0x24a)===dS(0x24a)){let aa=a9 instanceof Error?a9[dS(0x226)]:String(a9);process[dS(0x13f)][dS(0x154)](dS(0x17b)+aa+'\x0a');}else return null;}let a4=(a1?a2:a2[dS(0x152)](ac=>ac[dS(0x295)]==='running'))[dS(0x1b7)](ac=>{const dT=dS;let ad=I(T['recentEvents'],ac['id']);return{'id':ac['id'],'short_id':ac[dT(0x25d)],'tmux_session':ac[dT(0x1c7)],'status':ac[dT(0x295)],'workdir':ac[dT(0x184)],'spawned_at':ac[dT(0x284)],'expires_at':ac['expires_at'],'task_head':ac[dT(0x17c)],'latest_event':ad?{'event':ad[dT(0x222)],'subtype':typeof ad['meta']?.['subtype']=='string'?ad['meta'][dT(0x254)]:void 0x0,'ts':ad['ts']}:void 0x0};}),a5=a2[dS(0x152)](ac=>ac[dS(0x295)]==='running')[dS(0x1c3)],a6=Lt(T[dS(0x2a7)],i[dS(0x1cd)],0x5),a7=a6[dS(0x1c3)]>0x0?a6[a6[dS(0x1c3)]-0x1]['ts']:T['maxEventTs'];return{'total':a2[dS(0x1c3)],'running':a5,'capacity':F,'monsters':a4,'recent_events':a6,'max_event_ts':a7};}async function Ne(a){const dU=a0bD;if(typeof a?.['agent_id']!=dU(0x170)||a[dU(0x279)][dU(0x209)]()['length']===0x0)throw new Error(dU(0x289));if(!ne(a?.['ts']))throw new Error('ts\x20is\x20required\x20and\x20must\x20be\x20ISO\x208601\x20(e.g.\x202026-04-30T12:34:56Z)');let c=q(a[dU(0x279)]),i=await se(c,a['ts']);return{'agent_id':c,'ts':i[dU(0x153)],'previous_ts':i['previous']};}async function Oe(c,m){const dV=a0bD;if(!c['id'])throw new Error(dV(0x1bb));let p=await g(await l()),u=O(p,c['id']);if(!u)throw new Error(dV(0x1e9)+c['id']+dV(0x2a3));let y=Math[dV(0x1b5)](Math['max'](c[dV(0x2a9)]??0x32,0x1),0x1f4);if(u[dV(0x295)]!=='running'){if(dV(0x26d)!==dV(0x26d)){let a2=m[dV(0x23c)](a3);if(!a2||typeof a2!=dV(0x2b4))return null;let a3=o(a2['pid']);if(!p[dV(0x2ab)](a3)||a3<=0x0)return null;let a4=a2['ts'];return{'pid':a3,'ts':typeof a4==dV(0x170)?a4:''};}else{let a2=I(m['recentEvents'],u['id']);return{'status':u[dV(0x295)],'tmux_session':u[dV(0x1c7)],'tail_lines':y,'content':'','latest_event':a2?{'event':a2[dV(0x222)],'ts':a2['ts']}:void 0x0};}}let T=await H(u[dV(0x1c7)],y);u['last_action']='queried',u[dV(0x1fa)]=new Date()[dV(0x187)](),await _(p);let a0=I(m[dV(0x2a7)],u['id']);return{'status':u['status'],'tmux_session':u['tmux_session'],'tail_lines':y,'content':T,'latest_event':a0?{'event':a0['event'],'ts':a0['ts']}:void 0x0};}async function ke(a){const dW=a0bD;if(!a['id']||!a[dW(0x226)])throw new Error(dW(0x19e));let c=await g(await l()),i=O(c,a['id']);if(!i)throw new Error(dW(0x1e9)+a['id']+dW(0x2a3));if(i[dW(0x295)]!=='running'){let u=new Error(dW(0x2c7)+i[dW(0x295)]);throw u[dW(0x2b0)]=dW(0x2ce),u;}let m=await B(i[dW(0x1c7)],a['message']);if(!m['ok']){let y=new Error('TMUX_PASTE_FAILED:\x20'+m[dW(0x167)]);throw y[dW(0x2b0)]=dW(0x156),y;}let p=new Date()[dW(0x187)]();return i[dW(0x13d)]='sent',i[dW(0x1fa)]=p,await _(c),{'sent_at':p,'monster_id':i['id'],'bytes_sent':m[dW(0x220)]};}async function Re(a,c){const dX=a0bD;if(!a['id'])throw new Error(dX(0x1bb));let m=await g(await l()),p=O(m,a['id']);if(!p)throw new Error(dX(0x1e9)+a['id']+'\x20not\x20found');if(!p['id'])throw new Error('stop:\x20resolved\x20monster\x20has\x20no\x20id\x20(state\x20corruption)');let u=a[dX(0x23d)]??'stopped\x20by\x20user';p['status']==='running'&&await $(p['tmux_session']),p['status']='stopped',p['last_action']=dX(0x1f2)+u,p['last_action_at']=new Date()[dX(0x187)](),await _(m),te(c,p['id']),await D(j(p['id'],p[dX(0x1c7)],'stopped',{'reason':u}));try{if(dX(0x1fd)!==dX(0x2c8))await le(p['id']);else{let T=i['parse'](m);T&&T['ts']&&T['event']&&n['push'](T);}}catch(T){let a0=T instanceof Error?T['message']:String(T);process[dX(0x13f)][dX(0x154)](dX(0x148)+a0+'\x0a');}return{'stopped_at':p[dX(0x1fa)],'monster_id':p['id'],'reason':u,'remaining_running':G(m)};}var Ie=['spawned','spawn_timeout',a0bD(0x217),a0bD(0x216),'user_prompt',a0bD(0x2c9),'subagent_stop',a0bD(0x1b1),a0bD(0x167),a0bD(0x281)],Le=((()=>{const dY=a0bD;try{let a=a0aS(a0aR(a0aT(import.meta.url)),'..',dY(0x155));return JSON[dY(0x23c)](a0aQ(a,'utf-8'))['version']||dY(0x282);}catch{return dY(0x28d)===dY(0x158)?e[dY(0x27e)](i['homedir'](),dY(0x294),dY(0x1fc)):dY(0x282);}})()),vr=[{'name':a0bD(0x2d4),'description':a0bD(0x1f9),'inputSchema':{'type':'object','properties':{'task':{'type':a0bD(0x170),'description':a0bD(0x215)},'workdir':{'type':'string','description':a0bD(0x2c3)},'initial_context':{'type':a0bD(0x170),'description':a0bD(0x2a4)},'timeout_min':{'type':a0bD(0x14a),'description':a0bD(0x132)},'launcher':{'type':a0bD(0x170),'pattern':'^(claude|bluelamp[1-9]\x5cd{0,2})$','description':a0bD(0x297)},'bl_tenant_id':{'type':'string','description':a0bD(0x1ec)},'supervisorSession':{'type':'string','description':a0bD(0x1d6)},'unsupervised':{'type':a0bD(0x2c6),'description':'意図的に監督を付けずに起動することの明示宣言(既定\x20false\x20=\x20監督へ配線する)。true\x20を宣言した\x20spawn\x20だけが「未配線でも正常」として扱われ、警告が出ない。宣言せずに\x20supervisorSession\x20も渡さなかった場合、spawn\x20は続行するが『この\x20monster\x20が止まっても誰にも通知されない』旨の警告が\x20supervisor-notify.log\x20に残る(BACKLOG\x20#35:\x20黙って未配線にしない)。supervisorSession\x20と同時に渡した場合は配線が優先される。'}},'required':[a0bD(0x17c)]}},{'name':a0bD(0x1a0),'description':a0bD(0x2b2),'inputSchema':{'type':a0bD(0x2b4),'properties':{'include_stopped':{'type':'boolean','description':a0bD(0x23f)},'since_ts':{'type':a0bD(0x170),'description':'ISO\x208601\x20時刻。この時刻以降のイベントを付与'}}}},{'name':'query_monster','description':a0bD(0x27d),'inputSchema':{'type':a0bD(0x2b4),'properties':{'id':{'type':a0bD(0x170),'description':'monster_id(UUID)または\x20short_id(8\x20文字)'},'tail_lines':{'type':'number','description':a0bD(0x143)}},'required':['id']}},{'name':a0bD(0x19f),'description':a0bD(0x1e5),'inputSchema':{'type':a0bD(0x2b4),'properties':{'id':{'type':a0bD(0x170),'description':a0bD(0x296)},'message':{'type':a0bD(0x170),'description':a0bD(0x249)}},'required':['id',a0bD(0x226)]}},{'name':a0bD(0x1f1),'description':'monster\x20を停止(tmux\x20kill-session)し\x20watcher\x20を\x20detach\x20する。','inputSchema':{'type':a0bD(0x2b4),'properties':{'id':{'type':a0bD(0x170),'description':'monster_id\x20または\x20short_id'},'reason':{'type':a0bD(0x170),'description':a0bD(0x1c9)}},'required':['id']}},{'name':a0bD(0x135),'description':a0bD(0x236),'inputSchema':{'type':a0bD(0x2b4),'properties':{'monster_id':{'type':a0bD(0x170),'description':a0bD(0x168)},'since_ts':{'type':'string','description':a0bD(0x20c)},'event_types':{'type':'array','items':{'type':a0bD(0x170),'enum':[...Ie]}},'limit':{'type':a0bD(0x14a),'description':'最大件数。default\x2050、max\x20500。'},'agent_id':{'type':a0bD(0x170),'description':'呼び出し元\x20agent\x20の識別子(例:\x20tech-lead-main\x20/\x20tech-lead-mikoto-kaiden-XX)。since_ts\x20省略時のみ参照され、cursors[agent_id]\x20を自動\x20fallback\x20として使用。空または未指定なら\x20cursor\x20を使わず全件\x20scan(後方互換)。'}}}},{'name':a0bD(0x15c),'description':'agent\x20ごとの\x20events\x20確認カーソルを更新する。get_monster_events\x20で取得した\x20max_event_ts\x20を渡すことで、次回同\x20agent_id\x20での\x20get_monster_events\x20が「未確認イベントのみ」を返すようになる。Stop\x20hook\x20(~/.claude/hooks/check-monster-events.sh)\x20との重複報告防止にも使用。','inputSchema':{'type':a0bD(0x2b4),'properties':{'agent_id':{'type':a0bD(0x170),'description':'呼び出し元\x20agent\x20の識別子(例:\x20tech-lead-main)。空文字不可。'},'ts':{'type':a0bD(0x170),'description':'ISO\x208601\x20時刻。通常は直前\x20get_monster_events\x20の\x20max_event_ts\x20をそのまま渡す。'}},'required':['agent_id','ts']}}];async function be(m,p){const dZ=a0bD;let u=JSON['stringify'](p,null,0x2),y=await l(),T=Object[dZ(0x189)](y[dZ(0x276)]),a0=T['filter'](a4=>a4['status']===dZ(0x177))['length'],a1=new Map(T[dZ(0x1b7)](a4=>[a4['id'],a4])),a2=I(m[dZ(0x2a7)]),a3=bt({'runningCount':a0,'capacity':F,'latestEvent':a2,'monstersById':a1});return a3?''+u+a3:u;}function Tr(a){const e0=a0bD;let c=a instanceof Error?a[e0(0x226)]:String(a),i=a&&typeof a==e0(0x2b4)&&e0(0x2b0)in a?String(a[e0(0x2b0)]):void 0x0;return{'msg':c,'code':i};}async function Ar(a,c,i){const e1=a0bD;switch(a){case e1(0x2d4):return Te(c,i);case e1(0x1a0):return Ae(c,i);case'query_monster':return Oe(c,i);case'send_to_monster':return ke(c);case e1(0x1f1):return Re(c,i);case'get_monster_events':return oe(c);case e1(0x15c):return Ne(c);default:throw new Error(e1(0x287)+a);}}async function Nr(){const e2=a0bD;Wt();let a=await Yt();Qt(a);let c=new a0aU({'name':'monster-orchestrator','version':Le},{'capabilities':{'tools':{}}});c[e2(0x19a)](a0aX,async()=>({'tools':vr})),c['setRequestHandler'](a0aW,async m=>{const e3=e2;let p=m[e3(0x1d1)][e3(0x1e8)],u=m['params']['arguments']??{};try{let y=await Ar(p,u,a);return{'content':[{'type':e3(0x138),'text':await be(a,y)}]};}catch(T){let {msg:a0,code:a1}=Tr(T);return{'content':[{'type':'text','text':await be(a,{'error':a0,'code':a1})}],'isError':!0x0};}});let i=new a0aV();await c[e2(0x2a8)](i),process[e2(0x13f)][e2(0x154)](e2(0x24b)+Le+e2(0x193));}Nr()[a0bD(0x15a)](a=>{const e4=a0bD;process[e4(0x13f)]['write'](e4(0x1c6)+String(a)+'\x0a'),process['exit'](0x1);});
|
package/dist-obf/manifest.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mcpId": "monster-orchestrator",
|
|
3
3
|
"name": "Monster Orchestrator",
|
|
4
|
-
"description": "Claude Code CLI を独立サブプロセス(tmux session)として起動・送信・監視・停止する。v2.0.0 から ready signal polling / spawn_timeout / events.log NDJSON + ローテーション / Claude Code 5種 hook 注入 / 60秒ごとの session.log スナップショットに対応。v2.1 から spawn / stop / list は BlueLamp 認証(X-CLI-Token)必須で、皆伝(tenant_rank>=4)以上が並列 5 セッションまで利用可能。v2.3 から agent 別の events 確認カーソル(state.json.cursors)と mark_events_seen tool を追加し、未確認 awaiting_input / stopped を能動把握できる(推奨運用: get_monster_events に agent_id を渡し、取得後 max_event_ts を mark_events_seen で記録)。
|
|
4
|
+
"description": "Claude Code CLI を独立サブプロセス(tmux session)として起動・送信・監視・停止する。v2.0.0 から ready signal polling / spawn_timeout / events.log NDJSON + ローテーション / Claude Code 5種 hook 注入 / 60秒ごとの session.log スナップショットに対応。v2.1 から spawn / stop / list は BlueLamp 認証(X-CLI-Token)必須で、皆伝(tenant_rank>=4)以上が並列 5 セッションまで利用可能。v2.3 から agent 別の events 確認カーソル(state.json.cursors)と mark_events_seen tool を追加し、未確認 awaiting_input / stopped を能動把握できる(推奨運用: get_monster_events に agent_id を渡し、取得後 max_event_ts を mark_events_seen で記録)。v2.4.0 から backend を mikoto-company-api に完全移管(Phase 53C)。受講生 PC は BLUELAMP_CLI_TOKEN → bluelampportal /api/auth/exchange → RS256 JWT → mikoto-company-api /api/monster/* の 2 段構えで認証。主エージェントが複数 monster を並列制御する汎用オーケストレータ。",
|
|
5
5
|
"category": "automation",
|
|
6
6
|
"tier": 2,
|
|
7
|
-
"tenantSlug": "
|
|
7
|
+
"tenantSlug": "yamatovision",
|
|
8
8
|
"allowedMinRank": 4,
|
|
9
9
|
"hosting": {
|
|
10
10
|
"type": "local"
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"needsNpmInstall": true,
|
|
15
15
|
"requiredEnvVars": [],
|
|
16
16
|
"optionalEnvVars": [
|
|
17
|
-
"
|
|
17
|
+
"BLUELAMP_PORTAL_API_BASE_URL",
|
|
18
18
|
"MIKOTO_API_BASE_URL",
|
|
19
19
|
"MONSTER_MAX_CONCURRENT",
|
|
20
20
|
"MONSTER_DEFAULT_TIMEOUT_MIN",
|
|
@@ -23,14 +23,14 @@
|
|
|
23
23
|
],
|
|
24
24
|
"externalApi": {
|
|
25
25
|
"enabled": true,
|
|
26
|
-
"baseUrl": "https://
|
|
27
|
-
"audience": "https://
|
|
26
|
+
"baseUrl": "https://mikoto-company-api-235426778039.asia-northeast1.run.app/api",
|
|
27
|
+
"audience": "https://mikoto-company-api-235426778039.asia-northeast1.run.app",
|
|
28
28
|
"scopes": [
|
|
29
29
|
"monster:read",
|
|
30
30
|
"monster:write"
|
|
31
31
|
],
|
|
32
32
|
"tokenLifetime": 600,
|
|
33
|
-
"description": "mikoto
|
|
33
|
+
"description": "mikoto 社の Monster Session API(Phase 53C で完全移管)"
|
|
34
34
|
},
|
|
35
35
|
"tags": [
|
|
36
36
|
"orchestrator",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"tools": [
|
|
44
44
|
{
|
|
45
45
|
"name": "spawn_monster",
|
|
46
|
-
"description": "新しい monster(Claude Code CLI tmux session)を起動し初回 task を送信する。ready signal を 45 秒以内に検出できなければ spawn_timeout 応答を返す。BlueLamp backend の authorize-spawn で皆伝(tenant_rank>=4)以上 / 並列 5 までを enforce。なお `workdir` 引数は monster の cwd ではなく `--add-dir` で読み書き許可される追加 path。cwd は monster home(~/.claude/monsters/{id}/)に固定され、hook
|
|
46
|
+
"description": "新しい monster(Claude Code CLI tmux session)を起動し初回 task を送信する。ready signal を 45 秒以内に検出できなければ spawn_timeout 応答を返す。BlueLamp backend の authorize-spawn で皆伝(tenant_rank>=4)以上 / 並列 5 までを enforce。なお `workdir` 引数は monster の cwd ではなく `--add-dir` で読み書き許可される追加 path。cwd は monster home(~/.claude/monsters/{id}/)に固定され、hook 設定の解決のためこの設計は意図的。`launcher` 引数(任意)でこの呼び出しだけ起動子を差し替えられる(許可形式は `claude` / `bluelampNN`(NN=1〜999・先頭ゼロなし)のみ・形式外や未導入の値は spawn を拒否しフォールバックしない・解決順序: launcher 引数 > MONSTER_CLAUDE_BIN > `claude`)。例: `bluelamp51`。番号とロールの対応は `list_tenant_agents` の「種別: オーケストレーター (bluelampNN)」欄が正本。ここに対応表を書かない(実装更新で腐るため)。"
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
"name": "list_monsters",
|
package/dist-obf/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "monster-orchestrator",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist-obf/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^22.10.2",
|
|
28
|
-
"esbuild": "^0.28.
|
|
28
|
+
"esbuild": "^0.28.1",
|
|
29
29
|
"javascript-obfuscator": "^5.4.1",
|
|
30
30
|
"typescript": "^5.7.2",
|
|
31
31
|
"vitest": "^4.1.5"
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const a0aA=a0c;(function(a,c){const az=a0c,e=a();while(!![]){try{const f=-parseInt(az(0x12b))/0x1+-parseInt(az(0x141))/0x2+-parseInt(az(0x156))/0x3+parseInt(az(0xc9))/0x4+parseInt(az(0x142))/0x5*(-parseInt(az(0xd8))/0x6)+parseInt(az(0xaf))/0x7+parseInt(az(0xf6))/0x8;if(f===c)break;else e['push'](e['shift']());}catch(i){e['push'](e['shift']());}}}(a0a,0x37b7b));import*as a0am from'node:fs';import*as a0an from'node:path';import*as a0ao from'node:os';import*as a0ap from'node:path';var N=process.env.MONSTER_MCP_ROOT,_=N&&N['length']>0x0?N:a0ap[a0aA(0x147)](a0ao[a0aA(0xc6)](),a0aA(0xc8),a0aA(0x105)),H=a0ap[a0aA(0x147)](_,a0aA(0xf4)),fe=a0ap[a0aA(0x147)](_,a0aA(0x10b)),S=a0ap[a0aA(0x147)](_,'events.log'),x=a0ap[a0aA(0x147)](_,a0aA(0x15a)),A=a0ap['join'](_,a0aA(0x10d)),U=0xa*0x400*0x400,pe=0x5*0x400*0x400,O=a0ap[a0aA(0x147)](_,a0aA(0x109)),k=O+a0aA(0xcb),h=a0ap[a0aA(0x147)](_,'supervisor-notify.log'),Y=h+'.1',z=0x2*0x400*0x400;function St(){const aB=a0aA;try{if(a0am[aB(0x9d)](h)[aB(0xd7)]<z)return;a0am[aB(0xa1)](h,Y);}catch{}}function G(a){const aC=a0aA;let c=new Date()[aC(0x163)]()+'\x20'+a+'\x0a';try{a0am['mkdirSync'](a0an[aC(0x13c)](h),{'recursive':!0x0}),St(),a0am[aC(0x14c)](h,c,'utf8');}catch{}}import*as a0aq from'node:fs';import*as a0ar from'node:fs';import*as a0as from'node:fs/promises';function ht(){const aD=a0aA;a0ar[aD(0x15b)](_,{'recursive':!0x0}),a0ar[aD(0x91)](S)||a0ar[aD(0x92)](S,'',aD(0x139));}async function gt(){const aE=a0aA;try{if((await a0as['stat'](S))['size']<U)return!0x1;}catch{return!0x1;}try{if(aE(0x10f)===aE(0x10f))return a0ar[aE(0x91)](A)&&await a0as['unlink'](A),a0ar[aE(0x91)](x)&&await a0as[aE(0x111)](x,A),await a0as[aE(0x111)](S,x),await a0as[aE(0x116)](S,'',aE(0x139)),!0x0;else{let c=f['match'](i);c&&(n=c[0x1]);}}catch{return!0x1;}}async function J(a){const aF=a0aA;ht(),await gt();let c=JSON[aF(0xd3)](a)+'\x0a';await a0as[aF(0x10a)](S,c,aF(0x139));}function X(a,c,f,i={}){const aG=a0aA;return{'ts':new Date()[aG(0x163)](),'monster_id':a,'event':f,'session':c,'meta':i};}import{execFile as a0au}from'node:child_process';import{promisify as a0av}from'node:util';import*as a0aw from'node:fs';var I=a0av(a0au);function Et(){const aH=a0aA;let a=process.env.MONSTER_TMUX_BIN;if(a)return a;for(let c of[aH(0x107),'/usr/local/bin/tmux'])try{if(aH(0xd2)==='PMxmt'){if(a0aw[aH(0x91)](c))return c;}else{let i=r[aH(0x153)]+'\x00'+s;a['set'](i,{'monsterId':u['monsterId'],'reason':w,'count':(B[aH(0x158)](i)?.['count']??0x0)+0x1,'latestTs':E['ts'],'latestEvent':a0[aH(0x13f)]});}}catch{}return aH(0xc3);}var v=Et(),$=class extends Error{constructor(a){const aI=a0aA;super(aI(0x131)+v+aI(0xea)+String(a)),this[aI(0x10e)]='TmuxUnavailableError';}};function xt(a){const aJ=a0aA;let c=a?.['code'];return c==='ENOENT'||c===aJ(0x97)||c===aJ(0x103);}var vt=/\x1b\[[0-9;?]*[A-Za-z]/g;function wt(a){const aK=a0aA;return a[aK(0xc7)](vt,'')['replace'](/\r/g,'');}async function W(a){const aL=a0aA;try{if(aL(0x132)!==aL(0xf2))return await I(v,['has-session','-t',a]),!0x0;else{if(o[aL(0x9d)](p)[aL(0xd7)]<r)return;s[aL(0xa1)](a,u);}}catch(f){if('ZdHBJ'!==aL(0x135))f=i[aL(0xf8)](n);else{if(xt(f))throw new $(f);return!0x1;}}}var Ot=/esc to interrupt/i;async function Z(a){const aM=a0aA;let c=await It(a,0x32);return c[aM(0x11b)]()[aM(0xda)]===0x0?!0x0:Ot[aM(0x93)](c);}async function It(a,c){const aN=a0aA;try{let {stdout:f}=await I(v,[aN(0x8f),'-t',a,'-p','-S','-'+c]);return wt(f);}catch{return'';}}function At(a){const aO=a0aA;return Math['min'](0x64+Math[aO(0xfc)](a/0x4),0x5dc);}async function q(a,c){const aP=a0aA;try{let f=c[aP(0xc7)](/\n+$/,'');await I(v,['send-keys','-t',a,'-l',f]);let i=At(f['length']);return await new Promise(o=>setTimeout(o,i)),await I(v,[aP(0x146),'-t',a,aP(0x115)]),await new Promise(o=>setTimeout(o,0xc8)),await I(v,[aP(0x146),'-t',a,'Enter']),{'ok':!0x0,'bytes':Buffer['byteLength'](f,aP(0x139))};}catch(o){return{'ok':!0x1,'bytes':0x0,'error':o?.[aP(0xe6)]||o?.[aP(0x136)]||'tmux\x20send-keys\x20failed'};}}function a0c(a,b){a=a-0x8e;const c=a0a();let d=c[a];if(a0c['FMmLtG']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=0x0,o,p,q=0x0;p=i['charAt'](q++);~p&&(o=n%0x4?o*0x40+p:p,n++%0x4)?l+=String['fromCharCode'](0xff&o>>(-0x2*n&0x6)):0x0){p=j['indexOf'](p);}for(let r=0x0,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(m);};a0c['ZXWqAM']=e,a0c['LCNPMl']={},a0c['FMmLtG']=!![];}const f=c[0x0],g=a+f,h=a0c['LCNPMl'][g];return!h?(d=a0c['ZXWqAM'](d),a0c['LCNPMl'][g]=d):d=h,d;}var M=[a0aA(0xa6),a0aA(0x11e)],Rt=a0aA(0xec),Nt='。状態を確認して対応せよ';function kt(a){const aQ=a0aA;if(typeof a!=aQ(0x13e))return null;let c=a[aQ(0xd5)]()[aQ(0xc7)](/[^0-9a-f]/g,'');return c[aQ(0xda)]===0x0?null:c[aQ(0xc1)](0x0,0xc);}function $t(a){const aR=a0aA;return typeof a==aR(0x13e)&&M[aR(0x155)](a);}function Mt(a){const aS=a0aA;if(typeof a!='string')return null;let c=Date[aS(0xf8)](a);if(!Number[aS(0x150)](c))return null;let f=new Date(c),i=String(f[aS(0xc4)]())['padStart'](0x2,'0'),o=String(f[aS(0xa8)]())[aS(0x14a)](0x2,'0');return i+':'+o;}function jt(a){const aT=a0aA;let c=kt(a[aT(0x95)]),f=Mt(a['ts']);return!c||!f||!$t(a['event'])?null:aT(0xb7)+c+aT(0x114)+a[aT(0x13f)]+'('+f+')';}function Q(a){const aU=a0aA;let c=[];for(let f of a){let i=jt(f);i&&c[aU(0x12c)](i);}return c[aU(0xda)]===0x0?null:''+Rt+c[aU(0x147)]('、')+Nt;}var bt=new RegExp(a0aA(0xd0)),Pt=['承認','承諾','了承','許可','認可','許諾','裁定','決裁','GO','ゴー',a0aA(0x104),'タグ',a0aA(0x119),'デプロイ','本番','可',a0aA(0xde),a0aA(0xae),a0aA(0x149),'構わない',a0aA(0xcc),a0aA(0x13d),a0aA(0xf1),a0aA(0xbe),/\b(?:ok|okay|go|approve[ds]?|approval|authoriz(?:e|ed|ation)|merge[ds]?|tag|release|deploy|greenlight)\b/i];function R(a){const aV=a0aA;let c=[];for(let f of Pt){if(typeof f==aV(0x13e)){if(aV(0x13b)!=='rFVzR'){a[aV(0x155)](f)&&c[aV(0x12c)](f);continue;}else return{'shortId':typeof E?.[aV(0x117)]=='string'&&a0[aV(0x117)][aV(0xda)]>0x0?a1[aV(0x117)]:a2[aV(0xc1)](0x0,0x8),'supervisorSession':typeof a3?.['supervisor_session']==aV(0x13e)&&a4[aV(0xe8)][aV(0xda)]>0x0?a5['supervisor_session']:null,'tmuxSession':typeof a6?.['tmux_session']=='string'?a7[aV(0xbd)]:'','status':typeof a8?.[aV(0xb6)]=='string'?a9[aV(0xb6)]:'','unsupervised':aa?.['unsupervised']===!0x0,'spawnedAt':typeof ab?.['spawned_at']==aV(0x13e)?ac[aV(0xe9)]:''};}let i=a[aV(0xce)](f);i&&c[aV(0x12c)](i[0x0]);}return c;}function j(a){return R(a)['length']>0x0;}function tt(a){const aW=a0aA;return bt[aW(0x93)](a)?j(a)?{'ok':!0x1,'reason':'授権を意味する語を含む:\x20'+R(a)[aW(0x147)](aW(0xad))}:{'ok':!0x0}:{'ok':!0x1,'reason':aW(0x9b)};}var Lt=['user_prompt',a0aA(0x134)],Ft=a=>typeof a==a0aA(0x126)&&a!==null&&!Array[a0aA(0x9f)](a);function Vt(a){const aX=a0aA;let f=a[aX(0x11b)]();if(f['length']===0x0)return null;let i;try{if(aX(0xca)!==aX(0x15e))i=JSON[aX(0xf8)](f);else{let a0=null;for(let a1 of i){let a2=a1[aX(0xce)](w);a2&&(a0=a2[0x1]);}return a0;}}catch{return null;}if(!Ft(i))return null;let {ts:p,monster_id:u,event:w}=i;if(typeof p!=aX(0x13e)||typeof u!=aX(0x13e)||u[aX(0xda)]===0x0||typeof w!=aX(0x13e))return null;let B=Date[aX(0xf8)](p);return Number['isFinite'](B)?{'ts':p,'tsMs':B,'monsterId':u,'event':w}:null;}function et(a){const aY=a0aA;let c=[];for(let f of a){let i=Vt(f);i&&c[aY(0x12c)](i);}return c;}function Bt(a){const aZ=a0aA;return M[aZ(0x155)](a);}function a0a(){const bz=['y291BNq','CMvKDwnL','Dw5ZDxbLCNzPC2vK','5zwp6Agm44gQ44ge','vKLsy2m','ktOG5PYQ6ywn57EAidaG5lU277Yi56I85yon5lIT44gUig1VBNn0zxiG44gV44gz44g544gMihn1CgvYDMLZB3jFC2vZC2LVBIdJGyZOQjJPJllJGzxJGOZJGABJGytJGOVVViK','C3rHDguUANnVBG','iokaLcbZDxbLCNzPC29Yx3nLC3nPB24G5PYQ6kIy6yYY44gU44gF44kb44cb44gt44gUig1VBNn0zxiG44gm5Q2I44g+44gJ44gM44kc6kQW44gR44kc6ycA55+L44gv44km44gQ44ge77YiC3bHD24G5PMc44gRihn1CgvYDMLZB3jtzxnZAw9UioocKUA4OEobMEobK+obQo+8Iq','mJqXmJG0ofnHvgLOva','Dw53AxjLza','CgfYC2u','C3bHD25Lzef0','C3vWzxj2AxnVCL9NB25LoIbZzxnZAw9Upq','BwLU','zMXVB3i','yNvZEq','D3b4tMm','C3rHDgu','ios7TU+8IoACGoAwSca','Dw5HC3nPz25Lza','C2TPChbLza','rvbfuK0','44oE44o844k4','Bw9UC3rLCNm','Aw5Qzwn0zwq','l29WDc9OB21LyNjLDY9IAw4VDg11Ea','zxHPDa','C3vWzxj2AxnVCI1UB3rPzNKUANnVBG','yxbWzw5KrMLSzq','C3rHDguUANnVBI50Bxa','ioobRUwbNoATOUocPoodMEodS+odIca','zxzLBNrZlMXVzY4Y','BMfTzq','z0HeufK','5y+n5B+C6kAZ5RISoIbTB25ZDgvYpq','CMvUyw1L','ioobJowUN+IHJos4RsbTB25ZDgvYpq','C3bSAxq','ioobJca','rw50zxi','D3jPDgvgAwXL','C2HVCNrFAwq','8j+AQcdJGRVJG4pJGRFJG6FJG7pLRP/LNkJJGPlLIktLRPRJGAFJGy3JGB7JGzVJGPmGC2vZC2LVBJ0','44oQ44oQ44o844k5','ywrK','DhjPBq','DMfSDwvZ','ktOG5PYQ6ywn57EAia','C3rVChbLza','AxrLBxm','y2zUBKu','ios4JEMbLd0','BgfZDf9PBMPLy3rLzf9LDMvUDf90CW','CMvHy3rLza','C29YDa','CMTMA2m','B2jQzwn0','zw50CMLLCW','C2v0','77Yi5QYHihrPy2SG44gN5yAn6kMM6kgm77Yj','ioAZQowfPEs4REATOJ0','mtq2nJmWtNjVtgjZ','ChvZAa','C2vZC2LVBG','zNn0yxrtEw5J','txDYvMO','zNjVBuvUDhjPzxm','Dg11EcdJGPlLRP/OOyZJGAFJGy3JGB7JGzVJGPpVViHIAw49','yKPtr1a','C3rKB3v0','C2vZC2LVBL9LBMq','wMriqKO','BwvZC2fNzq','Dg11EfnLC3nPB24','D3jPDgu','DxrMoa','u1vTCMO','rhrmrei','zgLYBMfTzq','44gx44gM44gp44gG44gv44ge','C3rYAw5N','zxzLBNq','5RoO5ywLoIbZzxnZAw9Upq','mJe1ndbYu2jOq3C','mtu1mtK4nwPgtgnhAG','Aw9JtKK','iowVVUIXOEwKLJ0','CMvHzezPBgvtEw5J','C2vUzc1RzxLZ','AM9PBG','yxDHAxrPBMDFCMvHy3rPB24','44gM44ge44ge','CgfKu3rHCNq','z29Uzq','yxbWzw5KrMLSzvn5BMm','5RoO5ywL5AsX5Pwx77Yi5QYHihrPy2SG44gN5yAn6kMM6kgm77YjoIbZzxnZAw9Upq','CvLNyM8','C2TPChbLzej1C3K','AxngAw5PDgu','s0rgyuG','yMXVy2TLza','Bw9UC3rLCKLK','ios7TIdIGjqG','Aw5JBhvKzxm','mZGYmJLPzw9MB24','zgvSAxzLCMvK','z2v0','55UJ552J44gm5yMn5zUE44gU6ycA55+L44gR44g+44gG5y+n5B+C44gx44gM44ge44gQ44ge44gF44kb5RoO5ywL44gx44gQ44ge77YiWQCZlJmG5yAQ562j77Yj','zxzLBNrZlMXVzY4X','BwTKAxjtEw5J','B3bLBLn5BMm','q2DUD3y','rwnywKy','ios7TIaViowpSow4SZ0','zMfPBgvK','y3vYC29Yx3rZ','EKrgD2y','Dg9ju09tDhjPBMC','8j+AQcdMS6JLHAxKUk3MRAi6ia','77YjiokaLcbZDxbLCNzPC29Yx3nLC3nPB24G5PYQ6kIy6yYY44gU44gF44kb5RoO5ywL5ywi44gm54sH44gp44cb44gt44gU5ygC5Q2I44gV6kQW44gR44kc6ycA55+L44gv44km44gQ44ge77YiC3bHD24G5PMc44gRihn1CgvYDMLZB3jtzxnZAw9UioocKUA4OEobMEobK+obQo+8Iq','y2fWDhvYzs1Wyw5L','DhnnCW','zxHPC3rZu3LUyW','D3jPDgvgAwXLu3LUyW','DgvZDa','ioobQ+EBO+EDO+obJowpJEw/NoobL+obNYdIGjqG5OQr5Q2I44ks6kEJ6zMK77Yi5QYH44gU5ygC5Q2I44gl44kj5yAn44gZ5RoO5ywL44gz44kl77Yj','C2HVCNrjza','y2XVC2vtEw5J','rufdq0vt','CMvHzfrHCMDLDa','D1jYyMu','iokgKIdKU4RLM57JGA/KVzxJGOlJGzFJGARJGytVViHZDxbLCNzPC29Yx2DVBMuG44kc6kIy6yYY44gx44gQ44ge77YjoIa','5zU65A6A44og44oZ44ox44oS44gR5lIa6iE044gx44gQ44ge','5yID5zUEihrPy2S6ioocQ+odVoocVEodQ+ocKIa','C3rHDfn5BMm','ig1VBNn0zxi9','AxnbCNjHEq','t3Ddu3a','CMvUyw1Lu3LUyW','ioobQ+IOREwUMU+8IoMbJUwoU+obRUwbNoATOUobR+AZQowfPEobL+obQUobHo+8Iq','ic8G5PAh6z2Ipq','5OQr5Q2IoIbTB25ZDgvYpq','zMLSDgvY','yxDHAxrPBMDFAw5WDxq','CuXMD2C','z2v0twLUDxrLCW','wuvcC20','AKnvDe8','yMzAsNm','igj1C3NLVOxJGAe9','ic8G','44gM6iMV44ge','nZGZmtmYDen6Bevy','5PEI44gR5RoO5ywL5RIi44g/44gU44kK44oz44oZ44oi44gU44gF44kb5yAn5RoO5ywL44gx44gQ44ge77YiWQCZlJmG5yAQ562j77Yj','DgfYz2v0','8j+AQca','sxLtBMW','Aw5PDgLHBgL6zwq','zxjYB3i','C3rHDhvZ','Bw9UC3rLCIa','CNvUBMLUzW','BgfZDfvUD2LYzwrbDwrPDerHEq','CMvJB3jKu3vWzxj2AxnVCKDVBMu','8j+AQcdMS6JLHAxKUk3MRAi6ioAoIoAOQEocKUAeJ+wrS+obMEocI+IQNUocKUwqQ+ocGo+8Ia','CMvHC29U','Dg11Ef9ZzxnZAw9U','5BEU44gx5PsV44gi44gQ44ge','ioAwH+MDOJ0','Bg9N','C2XPy2u','Bwf4u2nHBM5Lze1Z','Dg11Ea','z2v0sg91CNm','8j+AQcdMNkRPHy3NT5O6ig1VBNn0zxi9','Ag9TzwrPCG','CMvWBgfJzq','lMnSyxvKzq','mte4mteWofnNAxP4AW','qM1buwW','lNrTCa','44gl44g+44kp44gQ44ge','ywXYzwfKEv9PBMPLy3rLza','Bwf0y2G','BM90Awz5','xUoaKg9Yy2HLC3rYyxrVCUoaKw1VBNn0zxiGwZaToweTzL17msWXmN0G44gmicG/oMf3ywL0Aw5Nx2LUChv0Fhn0B3bWzwqP77YiwZaTov17mN06wZaTov17mN3VViKOpZRJGifTB25ZDgvYifSWltLHlwzDEZeSmtj9ioobJcaOpZPHD2fPDgLUz19PBNb1DhXZDg9WCgvKkE+8IfSWltLDEZj9oLSWltLDEZj977YjksRJGilNIRBMHyVJGPlNORROQO3JGzFJGABLR77LV5ZJGzVJGOGK','C3vWChjLC3nLza','ue14Bxq','C3rYAw5NAwz5','ipcFMQGG6kAb5A++5yEMoIbZDxbLCNzPC29Yx3nLC3nPB24G5PYQ6kIy6yYY44gUig1VBNn0zxiG44gm44ge44kl77Yi5ygC5Q2Ipq','Dg9mB3DLCKnHC2u','ios9K++8IsdIGjqG55UJ6kAw57AY44gR56M044gm6zAl44ge44gM44ge44kl','C2L6zq','nLf0vLHlCa','iowpJEw/Nd0','BgvUz3rO','5RoO5ywL6kAl6ycb44kkoIdMLOFPNAlJGPlNTytJGOhJGARJGyVJGApJGz8GBw9UC3rLCJ0','CMvHzeXLzgDLCG','BwfW','44gM44ki44ge','yNvZEsbZA2LWoIbZzxnZAw9Upq','C2vZC2LVBKv4Axn0CW','Bgf0zxn0vhm','y3vYC29Ytxm','C3vWzxj2AxnVCLnLC3nPB24','ioAkKEATOJ0','5PYQ6ywn57EA55UJ5P+7','C3rKzxjY','C3vWzxj2AxnVCL9NB25L','C3vWzxj2AxnVCL9ZzxnZAw9U','C3bHD25Lzf9HDa','77Yj44ccuefuscdJGASGl29WDc9OB21LyNjLDY9IAw4G44gm54sH44geigXHDw5JAgqG562j44gl44kjioI1T+wlLEobLEocJoobPUobHoocI+wpR+IdVEAaP+obJoobGUocIUobVUobMEoaGK1ptLnurvjFve1vwf9csu4G44gN5PIo56s65OYh5A6A44gN44gn44g+44gz44cc5y6F5zUGoIa','CMvHzev2zw50CW','44cqB3jJAgvZDhjHDg9Y44cr','DgLJAYdLPlhMLzC6ia'];a0a=function(){return bz;};return a0a();}function Dt(a){const b0=a0aA;return Lt[b0(0x155)](a);}function nt(p,B){const b1=a0aA;let E=new Map(),a0=new Map();for(let [a6,a7]of Object[b1(0x127)](B['entries'])){E[b1(0x128)](a6,a7['awaiting_reaction']);let a8=Date['parse'](a7[b1(0x122)]);Number[b1(0x150)](a8)&&a0[b1(0x128)](a6,a8);}let a1=new Set(),a2=new Map(),a3=new Map(),a4=null,a5=(a9,aa)=>{const b2=b1;if(b2(0x120)!==b2(0x14e)){let ab=a9[b2(0x153)]+'\x00'+aa;a3['set'](ab,{'monsterId':a9[b2(0x153)],'reason':aa,'count':(a3[b2(0x158)](ab)?.[b2(0xee)]??0x0)+0x1,'latestTs':a9['ts'],'latestEvent':a9[b2(0x13f)]});}else{a1[b2(0x128)](a0,p[b2(0x148)]);let ad=a4[b2(0xf8)](a5[b2(0x122)]);B[b2(0x150)](ad)&&E[b2(0x128)](a0,ad);}};for(let a9 of[...p][b1(0x124)]((aa,ab)=>aa[b1(0x90)]-ab['tsMs'])){if(B[b1(0xe2)]!==null&&a9['tsMs']<=B[b1(0xe2)])continue;if((a4===null||a9[b1(0x90)]>a4)&&(a4=a9['tsMs']),Dt(a9[b1(0x13f)])){if(b1(0xa9)!==b1(0x143)){E[b1(0x158)](a9['monsterId'])&&(E['set'](a9[b1(0x153)],!0x1),a1[b1(0x11a)](a9[b1(0x153)]));continue;}else{let ac=aa(a9);ac&&n['push'](ac);}}if(!Bt(a9['event']))continue;if(E[b1(0x158)](a9[b1(0x153)])){a5(a9,'awaiting_reaction');continue;}let aa=a0[b1(0x158)](a9[b1(0x153)]);if(aa!==void 0x0&&a9['tsMs']<=aa){if('wpxNc'===b1(0xfe)){a5(a9,b1(0xcd));continue;}else return a3[b1(0x163)]()[b1(0xc1)](0x0,0xa);}a2['set'](a9[b1(0x153)],a9);}return{'notify':[...a2['values']()][b1(0x124)]((ad,af)=>ad[b1(0x90)]-af[b1(0x90)]),'suppressed':[...a3['values']()],'reacted':[...a1],'maxScannedMs':a4};}import*as a0ax from'node:fs';import*as a0ay from'node:path';var Ht=0xc8,b=()=>({'version':0x1,'cursor_ts':null,'monsters':{}}),P=a=>typeof a=='object'&&a!==null&&!Array['isArray'](a);function Ut(a){const b3=a0aA;if(!P(a))return{};let c={};for(let [f,i]of Object[b3(0x127)](a))P(i)&&typeof i[b3(0x122)]==b3(0x13e)&&(c[f]={'last_injected_event_ts':i[b3(0x122)],'awaiting_reaction':i['awaiting_reaction']===!0x0});return c;}function Yt(a){const b4=a0aA;let c;try{c=JSON[b4(0xf8)](a);}catch{return b();}return P(c)?{'version':0x1,'cursor_ts':typeof c[b4(0x161)]==b4(0x13e)?c['cursor_ts']:null,'monsters':Ut(c[b4(0x105)])}:b();}function rt(){const b5=a0aA;try{return b5(0x12f)===b5(0x99)?f(i[b5(0x145)](n,'utf8')):Yt(a0ax['readFileSync'](O,b5(0x139)));}catch{return b5(0xa0)===b5(0xa7)?[]:b();}}function ot(a){const b6=a0aA;a0ax[b6(0x15b)](a0ay[b6(0x13c)](O),{'recursive':!0x0}),a0ax[b6(0x92)](k,JSON[b6(0xd3)](a,null,0x2)+'\x0a',b6(0x139)),a0ax[b6(0xa1)](k,O);}function it(a,c,f){const b7=a0aA;return{...a,'monsters':{...a[b7(0x105)],[c]:{'last_injected_event_ts':f,'awaiting_reaction':!0x0}}};}function at(a,c){const b8=a0aA;let f=a[b8(0x105)][c];return!f||!f[b8(0x148)]?a:{...a,'monsters':{...a[b8(0x105)],[c]:{...f,'awaiting_reaction':!0x1}}};}function L(a,c){return{...a,'cursor_ts':c};}function ct(a){const b9=a0aA;let c=a[b9(0x161)],f=Object[b9(0x127)](a[b9(0x105)])[b9(0xa5)](([,i])=>i['awaiting_reaction']||c===null?!0x0:i[b9(0x122)]>c);return f[b9(0x124)]((i,o)=>i[0x1][b9(0x122)]<o[0x1]['last_injected_event_ts']?0x1:-0x1),{...a,'monsters':Object[b9(0x130)](f[b9(0xc1)](0x0,Ht))};}function zt(a,f){const ba=a0aA;let i=new Map(),p=[];for(let u of a){let w=f[ba(0x98)](u[ba(0x153)]);if(!w['supervisorSession']){if(ba(0x125)!==ba(0x125)){let a0;try{a0=w[ba(0xf8)](B);}catch{return a0();}return s(a0)?{'version':0x1,'cursor_ts':typeof a0[ba(0x161)]==ba(0x13e)?a0[ba(0x161)]:null,'monsters':a(a0[ba(0x105)])}:u();}else{p[ba(0x12c)](u);continue;}}let B=i['get'](w[ba(0xe3)])??{'session':w[ba(0xe3)],'items':[]};B[ba(0x11f)]['push']({'event':u,'target':w}),i[ba(0x128)](w[ba(0xe3)],B);}return{'groups':[...i[ba(0x11c)]()],'unassigned':p};}function Ct(a,c){const bb=a0aA;if(j(a)){if(bb(0x162)===bb(0x15d)){for(let o of ab[bb(0xd1)])ac[bb(0xc0)](ad(o,af[bb(0x98)](o[bb(0x153)])[bb(0x95)]));for(let p of ag)ah['log'](ai(p,aj[bb(0x98)](p[bb(0x153)])));a6=a7(a8,new a9(aa['maxScannedMs'])[bb(0x163)]());}else{let o=R(a);return c(bb(0xbb)+o[bb(0x147)](bb(0xad))+')\x20/\x20文面='+JSON[bb(0xd3)](a)),!0x1;}}let f=tt(a);return f['ok']?!0x0:(c(bb(0x164)+f[bb(0xbc)]+bb(0xa3)+JSON['stringify'](a)),!0x1);}var ut=a0aA(0xe5),Gt=/未配線監査\((\d{4}-\d{2}-\d{2})\)/;function Jt(a){const bc=a0aA;return a[bc(0x163)]()['slice'](0x0,0xa);}function Xt(a){const bd=a0aA;return a[bd(0xa5)](c=>c[bd(0xb6)]===bd(0xb8)&&!c[bd(0xe3)]&&!c['unsupervised'])[bd(0xdd)](c=>({'shortId':c[bd(0x95)],'spawnedAt':c[bd(0xf9)]}));}function ft(a){const be=a0aA;let c=null;for(let f of a){let i=f[be(0xce)](Gt);i&&(c=i[0x1]);}return c;}function Kt(a,c){return a!==c;}function Wt(a,c){const bf=a0aA;if(a['length']===0x0)return ut+'('+c+bf(0xf3);let f=a[bf(0xdd)](i=>i['shortId']+'(spawned\x20'+i[bf(0xf9)]+')')[bf(0x147)](bf(0xad));return bf(0xb2)+ut+'('+c+bf(0x11d)+a[bf(0xda)]+bf(0x154)+f+bf(0xf5);}function Zt(a,c){const bg=a0aA;let f=Jt(c);if(!Kt(a[bg(0xb9)](),f))return 0x0;let i=Xt(a[bg(0xdc)]());return a[bg(0xc0)](Wt(i,f)),i[bg(0xda)];}function qt(a,c){const bh=a0aA;return bh(0xc5)+c[bh(0x95)]+bh(0x114)+a[bh(0x13f)]+'('+a['ts']+bh(0x8e);}async function Qt(a,f){const bi=a0aA;let i=a[bi(0x11f)]['map'](a0=>a0['target'][bi(0x95)])['join'](','),p;try{if('NbAuY'!=='ntUhg')p=await f[bi(0xe0)](a[bi(0x12d)]);else return f['min'](0x64+i[bi(0xfc)](n/0x4),0x5dc);}catch(a1){return bi(0xab)===bi(0xab)?(f[bi(0xc0)](bi(0x118)+a[bi(0x12d)]+'\x20monster='+i+bi(0x9a)+String(a1)),bi(0x102)):c['filter'](a3=>a3['status']===bi(0xb8)&&!a3[bi(0xe3)]&&!a3[bi(0xf0)])[bi(0xdd)](a3=>({'shortId':a3[bi(0x95)],'spawnedAt':a3[bi(0xf9)]}));}if(!p){for(let a3 of a[bi(0x11f)])await f[bi(0xba)](a3['event'],a3[bi(0xb1)]);return f[bi(0xc0)](bi(0xfa)+a[bi(0x12d)]+'\x20が存在しない\x20monster='+i+'\x20→\x20通知は送らない'),bi(0x14b);}if(await f['sessionBusy'](a[bi(0x12d)]))return f[bi(0xc0)](bi(0xdf)+a[bi(0x12d)]+bi(0x112)+i+bi(0x129)),bi(0xfd);let w=a['items'][bi(0xdd)](a4=>({'shortId':a4['target'][bi(0x95)],'event':a4['event'][bi(0x13f)],'ts':a4[bi(0x13f)]['ts']})),B=Q(w);if(B===null)return f[bi(0xc0)](bi(0xdb)+i),bi(0x102);if(!Ct(B,f[bi(0xc0)]))return bi(0x102);let E=await f['inject'](a['session'],B);return E['ok']?(f[bi(0xc0)](bi(0x140)+a[bi(0x12d)]+bi(0x9e)+i+bi(0xbf)+JSON['stringify'](B)),'delivered'):(f[bi(0xc0)](bi(0x14d)+a[bi(0x12d)]+'\x20'+(E[bi(0xb5)]??'')),bi(0x160));}function te(a,c,f){const bj=a0aA;let i=c[bj(0xda)]>0x0?c[c[bj(0xda)]-0x1]['ts']:new Date()[bj(0x163)]();return f['log'](bj(0x9c)+i+bj(0xa2)),{'state':L(a,i),'initialized':!0x0,'injected':0x0,'skippedBusy':0x0,'gone':0x0,'unassigned':0x0,'unwired':0x0,'failed':0x0,'suppressed':0x0,'reacted':0x0,'blocked':0x0};}function ee(a){const bk=a0aA;return a[bk(0x106)]+a[bk(0x14f)]+a[bk(0x14b)]+a[bk(0x101)]+a[bk(0x160)]+a[bk(0xd1)]+a[bk(0x123)]+a[bk(0x152)];}function pt(a){const bl=a0aA;let c=a['unassigned']>0x0||a[bl(0xf7)]>0x0;if(!a[bl(0xb4)]&&ee(a)===0x0&&!c)return null;let f='tick\x20完了:\x20注入='+a[bl(0x106)]+bl(0xac)+a['skippedBusy']+'\x20supervisor_gone='+a[bl(0x14b)]+bl(0x144)+a[bl(0x101)]+bl(0x121)+a['failed']+bl(0xe4)+a[bl(0xd1)]+bl(0xd9)+a['reacted']+bl(0x12a)+a[bl(0x152)]+'\x20未配線='+a[bl(0xf7)];return c?f+bl(0xd4)+a[bl(0x101)]+bl(0x15f)+a[bl(0xf7)]+bl(0xd6):f;}function ne(a,c){const bm=a0aA;let f=a[bm(0xbc)]===bm(0x148)?bm(0x159):bm(0xb0);return bm(0xa4)+c+bm(0x10c)+a[bm(0xee)]+bm(0x100)+a['latestEvent']+'\x20'+a[bm(0xe1)]+')—\x20'+f;}async function lt(a0,a1){const bn=a0aA;let a2=Zt(a1,new Date()),a3=a1[bn(0xeb)]();if(a0['cursor_ts']===null)return{...te(a0,a3,a1),'unwired':a2};let a4=Date['parse'](a0['cursor_ts']),a5=nt(a3,{'cursorMs':Number[bn(0x150)](a4)?a4:null,'entries':a0['monsters']}),a6=a0;for(let ac of a5['reacted'])a6=at(a6,ac),a1['log'](bn(0x110)+a1[bn(0x98)](ac)[bn(0x95)]+bn(0x94));let {groups:a7,unassigned:a8}=zt(a5[bn(0xcf)],a1),a9={'injected':0x0,'skippedBusy':0x0,'gone':0x0,'failed':0x0,'blocked':0x0};for(let ad of a7){let af=await Qt(ad,a1);if(af===bn(0x157)){if('vUhCy'==='rQbux'){if(typeof ah!=bn(0x13e))return null;let ah=f[bn(0xd5)]()[bn(0xc7)](/[^0-9a-f]/g,'');return ah[bn(0xda)]===0x0?null:ah[bn(0xc1)](0x0,0xc);}else{a9['injected']+=ad[bn(0x11f)][bn(0xda)];for(let ah of ad[bn(0x11f)])a6=it(a6,ah['event'][bn(0x153)],ah[bn(0x13f)]['ts']);continue;}}af===bn(0xfd)?a9[bn(0x14f)]+=ad[bn(0x11f)]['length']:af===bn(0x14b)?a9['gone']+=ad[bn(0x11f)][bn(0xda)]:af==='failed'?a9[bn(0x160)]+=ad[bn(0x11f)]['length']:af===bn(0x102)&&(a9[bn(0x152)]+=ad[bn(0x11f)][bn(0xda)]);}let aa=a9[bn(0x14f)]>0x0||a9['failed']>0x0;if(!aa&&a5[bn(0xc2)]!==null){if(bn(0xaa)===bn(0x151)){let {shortId:aj,supervisorSession:ak,tmuxSession:al}=aa(aj,a5[a9]);return{'shortId':aj,'supervisorSession':ak,'tmuxSession':al};}else{for(let aj of a5['suppressed'])a1[bn(0xc0)](ne(aj,a1[bn(0x98)](aj['monsterId'])[bn(0x95)]));for(let ak of a8)a1['log'](qt(ak,a1[bn(0x98)](ak[bn(0x153)])));a6=L(a6,new Date(a5[bn(0xc2)])[bn(0x163)]());}}let ab=a5[bn(0xd1)][bn(0xef)]((al,am)=>al+am['count'],0x0);return{'state':ct(a6),'initialized':!0x1,'injected':a9[bn(0x106)],'skippedBusy':a9[bn(0x14f)],'gone':a9['gone'],'unassigned':a8[bn(0xda)],'unwired':a2,'failed':a9[bn(0x160)],'suppressed':aa?0x0:ab,'reacted':a5[bn(0x123)][bn(0xda)],'blocked':a9[bn(0x152)]};}var se=0x200*0x400;function dt(a){const bo=a0aA;let c;try{c=a0aq[bo(0x15c)](a,'r');}catch{if('ckAEz'===bo(0x13a)){if(i(n))throw new o(p);return!0x1;}else return[];}try{let i=a0aq[bo(0x12e)](c)['size'],p=Math[bo(0xfb)](i,se),u=Buffer['alloc'](p);a0aq['readSync'](c,u,0x0,p,i-p);let w=u['toString']('utf8')[bo(0x113)]('\x0a');return p<i?w[bo(0xc1)](0x1):w;}catch{return[];}finally{a0aq[bo(0x96)](c);}}function re(){const bp=a0aA;return[S,x]['flatMap'](a=>et(dt(a)))[bp(0x124)]((a,c)=>a[bp(0x90)]-c[bp(0x90)]);}function F(){const bq=a0aA;try{if(bq(0xb3)!==bq(0xb3)){if(!n(o))return{};let c={};for(let [e,f]of t[bq(0x127)](u))w(f)&&typeof f['last_injected_event_ts']==bq(0x13e)&&(c[e]={'last_injected_event_ts':f[bq(0x122)],'awaiting_reaction':f[bq(0x148)]===!0x0});return c;}else return JSON[bq(0xf8)](a0aq['readFileSync'](H,bq(0x139)))['monsters']??{};}catch{return{};}}function mt(a,c){const br=a0aA;return{'shortId':typeof c?.[br(0x117)]=='string'&&c[br(0x117)][br(0xda)]>0x0?c[br(0x117)]:a[br(0xc1)](0x0,0x8),'supervisorSession':typeof c?.[br(0xe8)]==br(0x13e)&&c[br(0xe8)][br(0xda)]>0x0?c['supervisor_session']:null,'tmuxSession':typeof c?.['tmux_session']==br(0x13e)?c[br(0xbd)]:'','status':typeof c?.[br(0xb6)]==br(0x13e)?c[br(0xb6)]:'','unsupervised':c?.[br(0xf0)]===!0x0,'spawnedAt':typeof c?.[br(0xe9)]==br(0x13e)?c[br(0xe9)]:''};}function oe(a=F()){return c=>{let {shortId:f,supervisorSession:i,tmuxSession:o}=mt(c,a[c]);return{'shortId':f,'supervisorSession':i,'tmuxSession':o};};}function ie(a=F()){const bs=a0aA;return Object[bs(0x127)](a)['map'](([f,i])=>{let {shortId:p,supervisorSession:w,status:B,unsupervised:E,spawnedAt:a0}=mt(f,i);return{'shortId':p,'supervisorSession':w,'status':B,'unsupervised':E,'spawnedAt':a0};});}function ae(){return ft(dt(h));}async function ce(a,c){const bu=a0aA;await J(X(a[bu(0x153)],c[bu(0x137)],bu(0xe7),{'supervisor_session':c[bu(0xe3)],'trigger_event':a['event'],'trigger_ts':a['ts']}));}function _t(a){let c=F();return{'readEvents':re,'readTarget':oe(c),'readLedger':()=>ie(c),'lastUnwiredAuditDay':ae,'sessionExists':W,'sessionBusy':Z,'inject':async(f,i)=>{const bv=a0c;let o=await q(f,i);return{'ok':o['ok'],'error':o[bv(0xb5)]};},'recordSupervisorGone':ce,'log':a};}function V(a){const bw=a0aA;process[bw(0x133)][bw(0x138)](new Date()['toISOString']()+'\x20'+a+'\x0a'),G(a);}async function ue(){const bx=a0aA;let a=rt(),c=await lt(a,_t(V));ot(c[bx(0xff)]);let f=pt(c);f!==null&&V(f);}ue()['catch'](a=>{const by=a0aA;V(by(0xed)+(a instanceof Error?a['message']:String(a))),process[by(0x108)](0x1);});
|
package/manifest.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mcpId": "monster-orchestrator",
|
|
3
3
|
"name": "Monster Orchestrator",
|
|
4
|
-
"description": "Claude Code CLI を独立サブプロセス(tmux session)として起動・送信・監視・停止する。v2.0.0 から ready signal polling / spawn_timeout / events.log NDJSON + ローテーション / Claude Code 5種 hook 注入 / 60秒ごとの session.log スナップショットに対応。v2.1 から spawn / stop / list は BlueLamp 認証(X-CLI-Token)必須で、皆伝(tenant_rank>=4)以上が並列 5 セッションまで利用可能。v2.3 から agent 別の events 確認カーソル(state.json.cursors)と mark_events_seen tool を追加し、未確認 awaiting_input / stopped を能動把握できる(推奨運用: get_monster_events に agent_id を渡し、取得後 max_event_ts を mark_events_seen で記録)。
|
|
4
|
+
"description": "Claude Code CLI を独立サブプロセス(tmux session)として起動・送信・監視・停止する。v2.0.0 から ready signal polling / spawn_timeout / events.log NDJSON + ローテーション / Claude Code 5種 hook 注入 / 60秒ごとの session.log スナップショットに対応。v2.1 から spawn / stop / list は BlueLamp 認証(X-CLI-Token)必須で、皆伝(tenant_rank>=4)以上が並列 5 セッションまで利用可能。v2.3 から agent 別の events 確認カーソル(state.json.cursors)と mark_events_seen tool を追加し、未確認 awaiting_input / stopped を能動把握できる(推奨運用: get_monster_events に agent_id を渡し、取得後 max_event_ts を mark_events_seen で記録)。v2.4.0 から backend を mikoto-company-api に完全移管(Phase 53C)。受講生 PC は BLUELAMP_CLI_TOKEN → bluelampportal /api/auth/exchange → RS256 JWT → mikoto-company-api /api/monster/* の 2 段構えで認証。主エージェントが複数 monster を並列制御する汎用オーケストレータ。",
|
|
5
5
|
"category": "automation",
|
|
6
6
|
"tier": 2,
|
|
7
|
-
"tenantSlug": "
|
|
7
|
+
"tenantSlug": "yamatovision",
|
|
8
8
|
"allowedMinRank": 4,
|
|
9
9
|
"hosting": {
|
|
10
10
|
"type": "local"
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"needsNpmInstall": true,
|
|
15
15
|
"requiredEnvVars": [],
|
|
16
16
|
"optionalEnvVars": [
|
|
17
|
-
"
|
|
17
|
+
"BLUELAMP_PORTAL_API_BASE_URL",
|
|
18
18
|
"MIKOTO_API_BASE_URL",
|
|
19
19
|
"MONSTER_MAX_CONCURRENT",
|
|
20
20
|
"MONSTER_DEFAULT_TIMEOUT_MIN",
|
|
@@ -23,14 +23,14 @@
|
|
|
23
23
|
],
|
|
24
24
|
"externalApi": {
|
|
25
25
|
"enabled": true,
|
|
26
|
-
"baseUrl": "https://
|
|
27
|
-
"audience": "https://
|
|
26
|
+
"baseUrl": "https://mikoto-company-api-235426778039.asia-northeast1.run.app/api",
|
|
27
|
+
"audience": "https://mikoto-company-api-235426778039.asia-northeast1.run.app",
|
|
28
28
|
"scopes": [
|
|
29
29
|
"monster:read",
|
|
30
30
|
"monster:write"
|
|
31
31
|
],
|
|
32
32
|
"tokenLifetime": 600,
|
|
33
|
-
"description": "mikoto
|
|
33
|
+
"description": "mikoto 社の Monster Session API(Phase 53C で完全移管)"
|
|
34
34
|
},
|
|
35
35
|
"tags": [
|
|
36
36
|
"orchestrator",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"tools": [
|
|
44
44
|
{
|
|
45
45
|
"name": "spawn_monster",
|
|
46
|
-
"description": "新しい monster(Claude Code CLI tmux session)を起動し初回 task を送信する。ready signal を 45 秒以内に検出できなければ spawn_timeout 応答を返す。BlueLamp backend の authorize-spawn で皆伝(tenant_rank>=4)以上 / 並列 5 までを enforce。なお `workdir` 引数は monster の cwd ではなく `--add-dir` で読み書き許可される追加 path。cwd は monster home(~/.claude/monsters/{id}/)に固定され、hook
|
|
46
|
+
"description": "新しい monster(Claude Code CLI tmux session)を起動し初回 task を送信する。ready signal を 45 秒以内に検出できなければ spawn_timeout 応答を返す。BlueLamp backend の authorize-spawn で皆伝(tenant_rank>=4)以上 / 並列 5 までを enforce。なお `workdir` 引数は monster の cwd ではなく `--add-dir` で読み書き許可される追加 path。cwd は monster home(~/.claude/monsters/{id}/)に固定され、hook 設定の解決のためこの設計は意図的。`launcher` 引数(任意)でこの呼び出しだけ起動子を差し替えられる(許可形式は `claude` / `bluelampNN`(NN=1〜999・先頭ゼロなし)のみ・形式外や未導入の値は spawn を拒否しフォールバックしない・解決順序: launcher 引数 > MONSTER_CLAUDE_BIN > `claude`)。例: `bluelamp51`。番号とロールの対応は `list_tenant_agents` の「種別: オーケストレーター (bluelampNN)」欄が正本。ここに対応表を書かない(実装更新で腐るため)。"
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
"name": "list_monsters",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "monster-orchestrator",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist-obf/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^22.10.2",
|
|
28
|
-
"esbuild": "^0.28.
|
|
28
|
+
"esbuild": "^0.28.1",
|
|
29
29
|
"javascript-obfuscator": "^5.4.1",
|
|
30
30
|
"typescript": "^5.7.2",
|
|
31
31
|
"vitest": "^4.1.5"
|