monster-orchestrator 3.2.5 → 3.2.6

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monster-orchestrator",
3
- "version": "3.2.5",
3
+ "version": "3.2.6",
4
4
  "type": "module",
5
5
  "main": "dist-obf/index.js",
6
6
  "bin": {
@@ -9,7 +9,11 @@
9
9
  "files": [
10
10
  "dist-obf/",
11
11
  "manifest.json",
12
- "README.md"
12
+ "README.md",
13
+ "scripts/monster-stop-hook",
14
+ "scripts/check-monster-events.sh",
15
+ "scripts/supervisor-notify-tick.sh",
16
+ "scripts/monster-deathcheck"
13
17
  ],
14
18
  "engines": {
15
19
  "node": ">=20"
@@ -17,9 +21,11 @@
17
21
  "scripts": {
18
22
  "build": "tsc",
19
23
  "build:obfuscated": "bash scripts/build-obfuscated.sh",
24
+ "typecheck": "tsc -p tsconfig.test.json --noEmit",
20
25
  "test": "vitest run"
21
26
  },
22
27
  "dependencies": {
28
+ "@bluelamp/cli-token": "1.0.1",
23
29
  "@modelcontextprotocol/sdk": "^1.0.0",
24
30
  "chokidar": "^3.6.0"
25
31
  },
@@ -29,5 +35,10 @@
29
35
  "javascript-obfuscator": "^5.4.1",
30
36
  "typescript": "^5.7.2",
31
37
  "vitest": "^4.1.5"
38
+ },
39
+ "buildInfo": {
40
+ "builtFromCommit": "8aeb215",
41
+ "builtAt": "2026-08-27T02:31:17Z",
42
+ "srcSha256": "71ed4ac54ec5d2d824f9d2f74dced1b037b0771280b9527697d112ac61506d17"
32
43
  }
33
44
  }
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const a0aO=a0c;(function(a,c){const aN=a0c,e=a();while(!![]){try{const i=parseInt(aN(0x141))/0x1+-parseInt(aN(0x167))/0x2+-parseInt(aN(0x192))/0x3+-parseInt(aN(0x17c))/0x4+parseInt(aN(0x126))/0x5+parseInt(aN(0x12d))/0x6+parseInt(aN(0x227))/0x7;if(i===c)break;else e['push'](e['shift']());}catch(l){e['push'](e['shift']());}}}(a0a,0xbd2a5));import*as a0aB from'node:fs';import*as a0aC from'node:path';import*as a0aD from'node:os';import*as a0aE from'node:path';var j=process.env.MONSTER_MCP_ROOT,h=j&&j[a0aO(0x1fc)]>0x0?j:a0aE[a0aO(0x134)](a0aD[a0aO(0x13c)](),a0aO(0x114),'monsters'),X=a0aE[a0aO(0x134)](h,a0aO(0x209)),qe=a0aE[a0aO(0x134)](h,a0aO(0x170)),g=a0aE[a0aO(0x134)](h,a0aO(0x125)),A=a0aE[a0aO(0x134)](h,'events.log.1'),R=a0aE[a0aO(0x134)](h,a0aO(0x1f1)),K=0xa*0x400*0x400,Ht=0x5*0x400*0x400,N=a0aE[a0aO(0x134)](h,a0aO(0x104)),T=N+a0aO(0x180),E=a0aE[a0aO(0x134)](h,a0aO(0x142)),W=E+'.1',Z=0x2*0x400*0x400;function Ct(){const aP=a0aO;try{if(a0aB['statSync'](E)[aP(0x107)]<Z)return;a0aB['renameSync'](E,W);}catch{}}function Q(a){const aQ=a0aO;let c=new Date()['toISOString']()+'\x20'+a+'\x0a';try{a0aB['mkdirSync'](a0aC['dirname'](E),{'recursive':!0x0}),Ct(),a0aB[aQ(0x1c5)](E,c,aQ(0x184));}catch{}}import*as a0aF from'node:fs';import*as a0aG from'node:fs';import*as a0aH from'node:fs/promises';function Ut(){const aR=a0aO;a0aG['mkdirSync'](h,{'recursive':!0x0}),a0aG[aR(0x222)](g)||a0aG[aR(0x21c)](g,'',aR(0x184));}async function Vt(){const aS=a0aO;try{if((await a0aH[aS(0x1c2)](g))[aS(0x107)]<K)return!0x1;}catch{return!0x1;}try{return a0aG['existsSync'](R)&&await a0aH['unlink'](R),a0aG[aS(0x222)](A)&&await a0aH[aS(0x1be)](A,R),await a0aH[aS(0x1be)](g,A),await a0aH['writeFile'](g,'',aS(0x184)),!0x0;}catch{return!0x1;}}async function tt(a){const aT=a0aO;Ut(),await Vt();let c=JSON[aT(0x18e)](a)+'\x0a';await a0aH['appendFile'](g,c,aT(0x184));}function et(a,c,i,l={}){return{'ts':new Date()['toISOString'](),'monster_id':a,'event':i,'session':c,'meta':l};}import{execFile as a0aI}from'node:child_process';import{promisify as a0aJ}from'node:util';import*as a0aK from'node:fs';var $=a0aJ(a0aI);function Yt(){const aU=a0aO;let a=process.env.MONSTER_TMUX_BIN;if(a)return a;for(let c of[aU(0x1b2),aU(0x19c)])try{if(a0aK[aU(0x222)](c))return c;}catch{}return aU(0x138);}var I=Yt(),M=class extends Error{},L=class extends M{constructor(a){const aV=a0aO;super('tmux\x20を実行できません(bin='+I+aV(0x196)+String(a)),this['name']=aV(0x173);}},P=class extends M{constructor(a){const aW=a0aO;super(aW(0x19d)+I+aW(0x225)+(process.env.TMUX?'\u3042\u308A':'\u306A\u3057')+aW(0x15e)+(process.env.TMUX_TMPDIR??aW(0x220))+aW(0x15b)+a),this['name']=aW(0x185);}};function zt(a){const aX=a0aO;let c=a?.[aX(0x20e)];return c===aX(0x1f6)||c===aX(0x208)||c===aX(0x1e7);}function Xt(a){const aY=a0aO;let c=a,i=typeof c?.[aY(0x143)]==aY(0x1a2)&&c['stderr'][aY(0x1fc)]>0x0?c['stderr']:String(c?.[aY(0x19f)]??a);return st(i)['trim']();}var Kt=/can't find session|session not found/i,Wt=/\x1b\[[0-9;?]*[A-Za-z]/g;function st(a){const aZ=a0aO;return a[aZ(0x1a4)](Wt,'')[aZ(0x1a4)](/\r/g,'');}async function F(a){const b0=a0aO;try{return await $(I,[b0(0x1af),'-t',a]),!0x0;}catch(c){if(zt(c))throw new L(c);let i=Xt(c);if(Kt['test'](i))return!0x1;throw new P(i);}}var Zt=/esc to interrupt/i;async function rt(a){const b1=a0aO;let c=await ot(a,0x32);return c[b1(0x165)]()[b1(0x1fc)]===0x0?!0x0:Zt[b1(0x1f9)](c);}async function ot(a,c){try{let {stdout:i}=await $(I,['capture-pane','-t',a,'-p','-S','-'+c]);return st(i);}catch{return'';}}function qt(a){return Math['min'](0x64+Math['floor'](a/0x4),0x5dc);}async function it(a,c){const b2=a0aO;try{if(b2(0x18d)===b2(0x1d7))return i[b2(0x154)](l)[b2(0x21e)](([O,a0])=>{let {shortId:a1,supervisorSession:a2,status:a3,unsupervised:a4,spawnedAt:a5}=o(O,a0);return{'shortId':a1,'supervisorSession':a2,'status':a3,'unsupervised':a4,'spawnedAt':a5};});else{let l=c[b2(0x1a4)](/\n+$/,'');await $(I,['send-keys','-t',a,'-l',l]);let o=qt(l[b2(0x1fc)]);return await new Promise(p=>setTimeout(p,o)),await $(I,[b2(0x132),'-t',a,b2(0x102)]),await new Promise(p=>setTimeout(p,0xc8)),await $(I,[b2(0x132),'-t',a,b2(0x102)]),{'ok':!0x0,'bytes':Buffer['byteLength'](l,b2(0x184))};}}catch(p){return{'ok':!0x1,'bytes':0x0,'error':p?.[b2(0x143)]||p?.['message']||b2(0x116)};}}var B=['awaiting_input',a0aO(0x17a)],ct=a0aO(0x1b1),Qt=a0aO(0x12f),ut=a0aO(0x191);function te(a){const b3=a0aO;if(typeof a!='string')return null;let c=a[b3(0x1ad)]()['replace'](/[^0-9a-f]/g,'');return c[b3(0x1fc)]===0x0?null:c[b3(0x219)](0x0,0xc);}function ee(a){const b4=a0aO;return typeof a==b4(0x1a2)&&B[b4(0x1db)](a);}function ft(a){const b5=a0aO;if(typeof a!=b5(0x1a2))return null;let c=Date[b5(0x11a)](a);if(!Number[b5(0x182)](c))return null;let i=new Date(c),l=String(i['getHours']())['padStart'](0x2,'0'),p=String(i[b5(0x188)]())[b5(0x11c)](0x2,'0');return l+':'+p;}function ne(a){const b6=a0aO;let c=te(a[b6(0x139)]),i=ft(a['ts']);return!c||!i||!ee(a[b6(0x181)])?null:b6(0x187)+c+b6(0x16d)+a['event']+'('+i+')';}function lt(a){const b7=a0aO;let c=[];for(let i of a){if(b7(0x153)!==b7(0x1c6)){let l=ne(i);l&&c[b7(0x12e)](l);}else i=l[b7(0x1d4)](i,'r');}return c[b7(0x1fc)]===0x0?null:''+ct+c['join']('\u3001')+Qt;}var se=new RegExp(a0aO(0x217)),re=['\u627F\u8A8D','\u627F\u8AFE','\u4E86\u627F','\u8A31\u53EF','\u8A8D\u53EF','\u8A31\u8AFE','\u88C1\u5B9A','\u6C7A\u88C1','GO','\u30B4\u30FC',a0aO(0x123),'\u30BF\u30B0',a0aO(0x14d),a0aO(0x189),'\u672C\u756A','\u53EF',a0aO(0x145),a0aO(0x1ba),'\u3066\u3044\u3044','\u69CB\u308F\u306A\u3044',a0aO(0x20b),a0aO(0x1b7),'\u554F\u984C\u306A\u3044',a0aO(0x14a),/\b(?:ok|okay|go|approve[ds]?|approval|authoriz(?:e|ed|ation)|merge[ds]?|tag|release|deploy|greenlight)\b/i];function k(a){const b8=a0aO;let c=[];for(let i of re){if(b8(0x122)!==b8(0x204)){if(typeof i=='string'){a[b8(0x1db)](i)&&c[b8(0x12e)](i);continue;}let l=a[b8(0x151)](i);l&&c[b8(0x12e)](l[0x0]);}else return{'shortId':typeof O?.[b8(0x18c)]==b8(0x1a2)&&a0[b8(0x18c)][b8(0x1fc)]>0x0?a1[b8(0x18c)]:a2[b8(0x219)](0x0,0x8),'supervisorSession':typeof a3?.['supervisor_session']==b8(0x1a2)&&a4[b8(0x169)][b8(0x1fc)]>0x0?a5['supervisor_session']:null,'tmuxSession':typeof a6?.['tmux_session']==b8(0x1a2)?a7['tmux_session']:'','status':typeof a8?.['status']==b8(0x1a2)?a9['status']:'','unsupervised':aa?.['unsupervised']===!0x0,'spawnedAt':typeof ab?.[b8(0x15c)]==b8(0x1a2)?ac[b8(0x15c)]:''};}return c;}function b(a){const b9=a0aO;return k(a)[b9(0x1fc)]>0x0;}function pt(a){const ba=a0aO;if(!se[ba(0x1f9)](a))return{'ok':!0x1,'reason':ba(0x162)};if(b(a))return{'ok':!0x1,'reason':ba(0x1e1)+k(a)['join'](ba(0x118))};if(_t(a)){if(ba(0x1ab)!==ba(0x1ab))try{if(x[ba(0x205)](y)[ba(0x107)]<O)return;a0[ba(0x1fa)](a1,a2);}catch{}else{let i=H(a);return{'ok':!0x1,'reason':ht+':\x20'+i['join'](ba(0x118))};}}return{'ok':!0x0};}var dt=0x40,oe=new RegExp('^['+ut+']+$');function at(a){const bb=a0aO;if(typeof a!='string')return null;let c=a[bb(0x165)]();return c['length']===0x0||c['length']>dt||!oe[bb(0x1f9)](c)?null:c;}function mt(a){const bc=a0aO;let c=at(a[bc(0x10f)]),i=at(a[bc(0x1e4)]),l=ft(a[bc(0x215)]);return!c||!i||!l?null:ct+'監督\x20session\x20'+c+'\x20が不在と検知された('+l+bc(0x168)+c+'\x20と自席\x20'+i+bc(0x214);}var D='['+ut+']{1,'+dt+'}',ie=new RegExp(a0aO(0x213)+D+a0aO(0x1ed)+D+a0aO(0x197)+D+'\x20がそれぞれ何行出るか数えよ(自席が\x200\x20行なら測り方が壊れている)。監督不在が事実なら、配線の付け替えを\x20CTO\x20へ上げよ。停止の要否は貴席と\x20CTO\x20が決めよ$'),ae=/([0-9]{2}:[0-9]{2})/,ce=/前景で tmux list-sessions を撃ち、/,ue=/(自席が 0 行なら測り方が壊れている)/,fe=/has-session/,le=[a0aO(0x224),'\u6D88\u6EC5','\u6D88\u5931',a0aO(0x146),'\u6B7B\u4EA1',a0aO(0x1b6),a0aO(0x152),'\u9000\u5E2D\u3057\u305F',a0aO(0x1d9),a0aO(0x148),a0aO(0x137),a0aO(0x10d),'\u3044\u306A\u3044','\u3044\u306A\u304F\u306A\u3063\u305F',a0aO(0x212),a0aO(0x1d2),a0aO(0x211),a0aO(0x16b),/\b(?:is|has|was|been)\s+(?:gone|dead|missing|terminated|absent)\b/i];function St(a){const bd=a0aO;let c=[];for(let i of le){if(typeof i=='string'){if(bd(0x199)===bd(0x199)){a[bd(0x1db)](i)&&c[bd(0x12e)](i);continue;}else i[bd(0x135)](o[bd(0x1b9)],{'monsterId':p[bd(0x1b9)],'shortId':r[bd(0x139)],'reason':l});}let l=a['match'](i);l&&c[bd(0x12e)](l[0x0]);}return c;}function pe(a){const bf=a0aO;return St(a)[bf(0x1fc)]>0x0;}var de=['\u505C\u6B62','\u7D42\u4E86','\u4E2D\u6B62','\u4E2D\u65AD','\u4F11\u6B62','\u5F85\u6A5F','\u64A4\u53CE','\u64A4\u9000','\u96E2\u8131','\u653E\u68C4','\u4E2D\u5EA7','\u7834\u68C4','\u524A\u9664','\u62B9\u6D88','\u6D88\u53BB','\u51CD\u7D50','\u5C01\u9396','\u9589\u9396','\u89E3\u6563'],me=['\u305B\u3088','\u305B\u3044','\u3057\u308D','\u3057\u3066',a0aO(0x1d0),a0aO(0x17e),'\u306A\u3055\u3044',a0aO(0x179),'\u9858\u3046'],Se=[new RegExp(a0aO(0x129)+de['join']('|')+')(?:'+me[a0aO(0x134)]('|')+')'),/やめ(?:よ|ろ|て|ること|なさい)/,/\b(?:must|should|please)\s+(?:stop|halt|abort|terminate|cease|suspend|stand\s?down)\b/i,/\b(?:stop|halt|abort|terminate|cease|suspend|shut\s?down|stand\s?down)\s+(?:now|immediately|work(?:ing)?|the\s|your\s|this\s)/i];function H(a){const bg=a0aO;let c=[];for(let i of Se){let l=a[bg(0x151)](i);l&&c['push'](l[0x0]);}return c;}function _t(a){const bh=a0aO;return H(a)[bh(0x1fc)]>0x0;}var ht='\u904B\u8EE2\u3092\u7D42\u308F\u3089\u305B\u308B\u547D\u4EE4\u3092\u904B\u3093\u3067\u3044\u308B\u3002\u6CE8\u5165\u306F\u72B6\u6CC1\u901A\u77E5\u307E\u3067\u3067\u3001\u6307\u793A\u306F\u904B\u3070\u306A\u3044\uFF08\u8981\u4EF6\x20\xA72\uFF09\u3002\u53D7\u3051\u624B\u81EA\u8EAB\u306B\u6E2C\u3089\u305B\u308B\u547D\u4EE4\uFF08\u6483\u3066\u30FB\u6570\u3048\u3088\uFF09\u3068\u3001\u4EBA\u3078\u5224\u65AD\u3092\u623B\u3059\u5F62\uFF08CTO\x20\u3078\u4E0A\u3052\u3088\u30FB\u505C\u6B62\u306E\u8981\u5426\u306F\u8CB4\u5E2D\u3068\x20CTO\x20\u304C\u6C7A\u3081\u3088\uFF09\u306F\u8A31\u3055\u308C\u308B\u3002\u7981\u3058\u3066\u3044\u308B\u306E\u306F**\u53D7\u3051\u624B\u306E\u904B\u8EE2\u3092\u7D42\u308F\u3089\u305B\u308B/\u4E2D\u65AD\u3055\u305B\u308B\u547D\u4EE4**\u3067\u3001\u7406\u7531\u306F\u8AA4\u691C\u77E5\u304C\u5373\u5EA7\u306B\u4E0D\u53EF\u9006\u306A\u505C\u6B62\u306B\u306A\u308A\u3001\u3057\u304B\u3082\u6B62\u307E\u3063\u305F\u5074\u304C\u6B62\u307E\u3063\u305F\u305B\u3044\u3067\u7570\u8B70\u3092\u5531\u3048\u3089\u308C\u306A\u304F\u306A\u308B\u305F\u3081';function gt(a){const bi=a0aO;if(b(a))return{'ok':!0x1,'reason':bi(0x1e1)+k(a)['join']('\x20/\x20')};if(_t(a)){let c=H(a);return{'ok':!0x1,'reason':ht+':\x20'+c[bi(0x134)](bi(0x118))};}return pe(a)?{'ok':!0x1,'reason':bi(0x1a8)+St(a)[bi(0x134)](bi(0x118))+bi(0x203)}:fe['test'](a)?{'ok':!0x1,'reason':bi(0x11b)}:ae['test'](a)?ce[bi(0x1f9)](a)?ue[bi(0x1f9)](a)?ie['test'](a)?{'ok':!0x0}:{'ok':!0x1,'reason':bi(0x1df)}:{'ok':!0x1,'reason':bi(0x1b3)}:{'ok':!0x1,'reason':bi(0x1d3)}:{'ok':!0x1,'reason':bi(0x19b)};}var _e=[a0aO(0x21a),a0aO(0x16a)],he=a=>typeof a==a0aO(0x1da)&&a!==null&&!Array[a0aO(0x12c)](a);function ge(i){const bj=a0aO;let l=i['trim']();if(l[bj(0x1fc)]===0x0)return null;let p;try{p=JSON[bj(0x11a)](l);}catch{return null;}if(!he(p))return null;let {ts:r,monster_id:u,event:x}=p;if(typeof r!=bj(0x1a2)||typeof u!='string'||u[bj(0x1fc)]===0x0||typeof x!=bj(0x1a2))return null;let y=Date['parse'](r);return Number[bj(0x182)](y)?{'ts':r,'tsMs':y,'monsterId':u,'event':x}:null;}function Tt(a){let c=[];for(let i of a){let l=ge(i);l&&c['push'](l);}return c;}function Te(a){const bk=a0aO;return B[bk(0x1db)](a);}function ye(a){const bl=a0aO;return _e[bl(0x1db)](a);}function yt(u,x){const bm=a0aO;let y=new Map(),O=new Map();for(let [a5,a6]of Object[bm(0x154)](x[bm(0x154)])){if(bm(0x1eb)===bm(0x1eb)){y[bm(0x135)](a5,a6[bm(0x1bc)]);let a7=Date['parse'](a6[bm(0x1de)]);Number[bm(0x182)](a7)&&O[bm(0x135)](a5,a7);}else return a2();}let a0=new Set(),a1=new Map(),a2=new Map(),a3=null,a4=(a9,aa)=>{const bn=bm;if('EpgME'!=='ptQjL'){let ab=a9[bn(0x1b9)]+'\x00'+aa;a2[bn(0x135)](ab,{'monsterId':a9[bn(0x1b9)],'reason':aa,'count':(a2['get'](ab)?.['count']??0x0)+0x1,'latestTs':a9['ts'],'latestEvent':a9[bn(0x181)]});}else return a2?.[bn(0x20e)]===bn(0x1e7);};for(let a9 of[...u]['sort']((aa,ab)=>aa['tsMs']-ab[bm(0x1b4)])){if(bm(0x159)===bm(0x159)){if(x[bm(0x1b0)]!==null&&a9[bm(0x1b4)]<=x[bm(0x1b0)])continue;if((a3===null||a9[bm(0x1b4)]>a3)&&(a3=a9[bm(0x1b4)]),ye(a9[bm(0x181)])){y['get'](a9[bm(0x1b9)])&&(y[bm(0x135)](a9[bm(0x1b9)],!0x1),a0[bm(0x1fb)](a9['monsterId']));continue;}if(!Te(a9['event']))continue;if(y[bm(0x19e)](a9['monsterId'])){a4(a9,bm(0x1bc));continue;}let aa=O['get'](a9[bm(0x1b9)]);if(aa!==void 0x0&&a9[bm(0x1b4)]<=aa){a4(a9,bm(0x194));continue;}a1[bm(0x135)](a9['monsterId'],a9);}else y[bm(0x103)]['write'](new a0()['toISOString']()+'\x20'+a4+'\x0a'),a3(O);}return{'notify':[...a1[bm(0x1b5)]()][bm(0x1bd)]((ac,ad)=>ac[bm(0x1b4)]-ad[bm(0x1b4)]),'suppressed':[...a2[bm(0x1b5)]()],'reacted':[...a0],'maxScannedMs':a3};}import*as a0aL from'node:fs/promises';import*as a0aM from'node:path';var Ee=0xea60,hn=Ee*0x3;function Et(a){const bo=a0aO;try{if('gDaie'!==bo(0x1ea))return process[bo(0x1e2)](a,0x0),!0x0;else{if(e?.[bo(0x20e)]!==bo(0x17d))throw i;}}catch(i){return i?.[bo(0x20e)]===bo(0x1e7);}}var ve=0xc8,C=()=>({'version':0x1,'cursor_ts':null,'monsters':{}}),U=a=>typeof a=='object'&&a!==null&&!Array['isArray'](a);function we(a){const bp=a0aO;if(!U(a))return{};let c={};for(let [i,l]of Object[bp(0x154)](a))U(l)&&typeof l[bp(0x1de)]==bp(0x1a2)&&(c[i]={'last_injected_event_ts':l[bp(0x1de)],'awaiting_reaction':l[bp(0x1bc)]===!0x0,...typeof l[bp(0x140)]=='string'&&l[bp(0x140)]['length']>0x0?{'reverse_injected_supervisor':l[bp(0x140)]}:{}});return c;}function xe(a){const bq=a0aO;let c;try{c=JSON['parse'](a);}catch{return C();}return U(c)?{'version':0x1,'cursor_ts':typeof c[bq(0x158)]=='string'?c[bq(0x158)]:null,'monsters':we(c['monsters'])}:C();}var V=new WeakMap();async function It(){const br=a0aO;try{return xe(await a0aL['readFile'](N,br(0x184)));}catch{return C();}}async function At(){const bs=a0aO;let a=await It();return V[bs(0x135)](a,structuredClone(a)),a;}var vt=0x0;function Oe(){const bu=a0aO;return vt+=0x1,N+'.'+process[bu(0x113)]+'-'+vt+bu(0x14f);}var wt=0x2710,xt=0x3a98;function Ie(a){return new Promise(c=>setTimeout(c,a));}async function Ae(a){const bv=a0aO;await a0aL[bv(0x1c4)](a0aM[bv(0x1f2)](N),{'recursive':!0x0});let c=Date['now']()+xt;for(;;){if(bv(0x1f0)==='zZGTV'){try{await a0aL[bv(0x1a9)](T,JSON[bv(0x18e)]({'pid':process[bv(0x113)],'ts':Date['now']()}),{'flag':'wx'});break;}catch(l){if(l?.[bv(0x20e)]!==bv(0x17d))throw l;}let i=!0x1;try{let o=JSON[bv(0x11a)](await a0aL[bv(0x19a)](T,'utf8'));i=typeof o?.[bv(0x113)]=='number'&&(!Et(o[bv(0x113)])||Date[bv(0x1ca)]()-Number(o['ts']??0x0)>wt);}catch{if(bv(0x1d6)===bv(0x1d6))try{let p=await a0aL['stat'](T);i=Date[bv(0x1ca)]()-p[bv(0x117)]>wt;}catch{}else{if(o[bv(0x205)](p)[bv(0x107)]<r)return;s[bv(0x1fa)](a,u);}}if(i){let u=T+'.stale.'+process[bv(0x113)];await a0aL[bv(0x1be)](T,u)['catch'](()=>{}),await a0aL['rm'](u,{'force':!0x0})['catch'](()=>{});continue;}if(Date[bv(0x1ca)]()>c)throw new Error(bv(0x155)+T+bv(0x108)+xt+bv(0x1cc));await Ie(0x5+Math['random']()*0x14);}else return'';}try{return await a();}finally{try{JSON[bv(0x11a)](await a0aL['readFile'](T,bv(0x184)))?.[bv(0x113)]===process[bv(0x113)]&&await a0aL['rm'](T,{'force':!0x0});}catch{}}}function Ne(i,l,p){const bw=a0aO;let u={'version':0x1,'cursor_ts':i['cursor_ts'],'monsters':{...i[bw(0x1f5)]}};l[bw(0x158)]!==p[bw(0x158)]&&(u['cursor_ts']=p['cursor_ts']);let x=new Set([...Object[bw(0x12b)](l[bw(0x1f5)]),...Object[bw(0x12b)](p[bw(0x1f5)])]);for(let y of x){let O=l[bw(0x1f5)][y],a0=p[bw(0x1f5)][y];JSON[bw(0x18e)](O)!==JSON[bw(0x18e)](a0)&&(a0===void 0x0?delete u['monsters'][y]:u[bw(0x1f5)][y]=a0);}return u;}async function Nt(a,c){await Ae(async()=>{const bx=a0c;let i=V[bx(0x19e)](c??a),l=i?Ne(await It(),i,a):a,p=JSON[bx(0x18e)](l,null,0x2)+'\x0a',r=Oe();try{await a0aL[bx(0x1a9)](r,p,bx(0x184)),await a0aL[bx(0x1be)](r,N);}catch(u){if(bx(0x1cb)===bx(0x1c8))return c[bx(0x1db)](i);else throw await a0aL['rm'](r,{'force':!0x0})[bx(0x178)](()=>{}),u;}V[bx(0x135)](a,structuredClone(a));});}function $t(a,c,i){const by=a0aO;return{...a,'monsters':{...a[by(0x1f5)],[c]:{...a[by(0x1f5)][c],'last_injected_event_ts':i,'awaiting_reaction':!0x0}}};}function kt(a,c,i,l){const bz=a0aO;let p=a[bz(0x1f5)][c];return{...a,'monsters':{...a[bz(0x1f5)],[c]:{'last_injected_event_ts':p?.['last_injected_event_ts']??l,'awaiting_reaction':p?.[bz(0x1bc)]??!0x1,'reverse_injected_supervisor':i}}};}function Rt(a,c){const bA=a0aO;let i=a[bA(0x1f5)][c];return!i||!i[bA(0x1bc)]?a:{...a,'monsters':{...a[bA(0x1f5)],[c]:{...i,'awaiting_reaction':!0x1}}};}function G(a,c){return{...a,'cursor_ts':c};}function Mt(a){const bB=a0aO;let c=a[bB(0x158)],i=Object[bB(0x154)](a[bB(0x1f5)])[bB(0x1fe)](([,l])=>l[bB(0x1bc)]||l[bB(0x140)]||c===null?!0x0:l[bB(0x1de)]>c);return i[bB(0x1bd)]((l,p)=>l[0x1][bB(0x1de)]<p[0x1][bB(0x1de)]?0x1:-0x1),{...a,'monsters':Object[bB(0x11d)](i[bB(0x219)](0x0,ve))};}function $e(i,l){const bC=a0aO;let p=new Map(),r=[];for(let u of i){let x=l['readTarget'](u['monsterId']);if(!x[bC(0x10f)]){r[bC(0x12e)](u);continue;}let y=p[bC(0x19e)](x[bC(0x10f)])??{'session':x[bC(0x10f)],'items':[]};y[bC(0x183)][bC(0x12e)]({'event':u,'target':x}),p[bC(0x135)](x[bC(0x10f)],y);}return{'groups':[...p[bC(0x1b5)]()],'unassigned':r};}function ke(a,c){const bD=a0aO;if(b(a)){let l=k(a);return c(bD(0x115)+l[bD(0x134)](bD(0x118))+bD(0x1bb)+JSON[bD(0x18e)](a)),!0x1;}let i=pt(a);return i['ok']?!0x0:(c(bD(0x12a)+i[bD(0x120)]+'\x20/\x20文面='+JSON[bD(0x18e)](a)),!0x1);}function Re(i,l,u){const bE=a0aO;let x=new Map(),y=new Map(),O=new Set();for(let {event:a0,target:a1}of i){if(O[bE(0x17b)](a0[bE(0x1b9)]))continue;O[bE(0x1fb)](a0[bE(0x1b9)]);let a2=a3=>{const bF=bE;if('ulsVJ'===bF(0x1a5)){if(x(y)){let a6=a9(aa);return ab(bF(0x115)+a6[bF(0x134)]('\x20/\x20')+bF(0x1bb)+ac[bF(0x18e)](ad)),!0x1;}let a5=a4(a5);return a5['ok']?!0x0:(a6(bF(0x12a)+a5[bF(0x120)]+'\x20/\x20文面='+a7[bF(0x18e)](a8)),!0x1);}else y[bF(0x135)](a0[bF(0x1b9)],{'monsterId':a0[bF(0x1b9)],'shortId':a1[bF(0x139)],'reason':a3});};if(u[a0[bE(0x1b9)]]?.[bE(0x140)]===l){if(bE(0x1f8)==='dIIjs'){let {shortId:a4,supervisorSession:a5,tmuxSession:a6}=l(u,y[a2]);return{'shortId':a4,'supervisorSession':a5,'tmuxSession':a6};}else{a2(bE(0x200));continue;}}if(a1['tmuxSession'][bE(0x1fc)]===0x0){a2('no_target_session');continue;}if(a1['tmuxSession']===l){a2(bE(0x163));continue;}x[bE(0x135)](a0[bE(0x1b9)],{'monsterId':a0['monsterId'],'shortId':a1[bE(0x139)],'tmuxSession':a1[bE(0x1e5)],'supervisorSession':l,'eventTs':a0['ts']});}return{'targets':[...x['values']()],'skipped':[...y[bE(0x1b5)]()]};}function Me(a,c){const bG=a0aO;let i=gt(a);return i['ok']?!0x0:(c('🚨\x20逆向き注入中止:\x20'+i['reason']+'\x20/\x20文面='+JSON[bG(0x18e)](a)),!0x1);}async function be(u,x,O,a0){const bH=a0aO;let a1={'state':O,'injected':0x0,'blocked':0x0,'failed':0x0},{targets:a2,skipped:a3}=Re(u[bH(0x183)],u['session'],O['monsters']);a1['blocked']+=a3['length'];for(let a4 of a3){if(a4[bH(0x120)]===bH(0x200))continue;let a5=a4[bH(0x120)]===bH(0x1c9)?bH(0x15a):bH(0x1c3);x[bH(0x195)]('🚨\x20逆向き注入見送り:\x20monster='+a4[bH(0x139)]+bH(0x1a6)+u[bH(0x206)]+'\x20—\x20'+a5);}for(let a6 of a2){let a7=mt({'supervisorSession':u[bH(0x206)],'subordinateSession':a6[bH(0x1e5)],'detectedAt':a0});if(a7===null){x['log'](bH(0x119)+a6[bH(0x139)]+bH(0x1a6)+JSON[bH(0x18e)](u[bH(0x206)])+'\x20自席='+JSON[bH(0x18e)](a6[bH(0x1e5)])+bH(0x136)),a1[bH(0x11f)]+=0x1;continue;}if(!Me(a7,x[bH(0x195)])){a1[bH(0x11f)]+=0x1;continue;}let a8;try{a8=await x[bH(0x202)](a6[bH(0x1e5)]);}catch(aa){if(bH(0x16e)===bH(0x16e)){x[bH(0x195)](bH(0x1d1)+a6[bH(0x1e5)]+bH(0x15f)+a6['shortId']+bH(0x175)+String(aa)),a1[bH(0x10c)]+=0x1;continue;}else{if(a7[bH(0x1fc)]===0x0)return a6+'('+a0+bH(0x221);let ac=u[bH(0x21e)](ad=>ad[bH(0x139)]+bH(0x186)+ad['spawnedAt']+')')[bH(0x134)](bH(0x118));return'🚨\x20'+u+'('+x+bH(0x147)+a8[bH(0x1fc)]+'\x20件\x20—\x20'+ac+bH(0x10e);}}if(!a8){x[bH(0x195)](bH(0x18b)+a6['tmuxSession']+'(monster='+a6[bH(0x139)]+bH(0x156)),a1[bH(0x11f)]+=0x1;continue;}let a9=await x[bH(0x1ce)](a6[bH(0x1e5)],a7);if(!a9['ok']){x[bH(0x195)]('逆向き注入失敗(次\x20tick\x20で再試行):\x20session='+a6[bH(0x1e5)]+bH(0x15f)+a6[bH(0x139)]+'\x20'+(a9['error']??'')),a1['failed']+=0x1;continue;}a1['state']=kt(a1[bH(0x13d)],a6[bH(0x1b9)],a6['supervisorSession'],a6['eventTs']),a1[bH(0x223)]+=0x1,x[bH(0x195)](bH(0x20a)+u['session']+bH(0x110)+a6[bH(0x139)]+bH(0x210)+a6[bH(0x1e5)]+bH(0x20d)+JSON[bH(0x18e)](a7));}return a1;}var bt='\u672A\u914D\u7DDA\u76E3\u67FB',je=/未配線監査\((\d{4}-\d{2}-\d{2})\)/;function Le(a){return a['toISOString']()['slice'](0x0,0xa);}function Pe(a){const bI=a0aO;return a[bI(0x1fe)](c=>c['status']===bI(0x1ef)&&!c[bI(0x10f)]&&!c[bI(0x112)])[bI(0x21e)](c=>({'shortId':c[bI(0x139)],'spawnedAt':c[bI(0x171)]}));}function jt(a){const bJ=a0aO;let c=null;for(let i of a){let l=i[bJ(0x151)](je);l&&(c=l[0x1]);}return c;}function Fe(a,c){return a!==c;}function De(a,c){const bK=a0aO;if(a[bK(0x1fc)]===0x0)return bt+'('+c+bK(0x221);let i=a[bK(0x21e)](l=>l[bK(0x139)]+bK(0x186)+l[bK(0x171)]+')')[bK(0x134)](bK(0x118));return bK(0x109)+bt+'('+c+bK(0x147)+a[bK(0x1fc)]+bK(0x14b)+i+bK(0x10e);}function Be(a,c){const bL=a0aO;let i=Le(c);if(!Fe(a[bL(0x18f)](),i))return 0x0;let l=Pe(a['readLedger']());return a[bL(0x195)](De(l,i)),l[bL(0x1fc)];}function He(a,c){const bM=a0aO;return bM(0x1a7)+c[bM(0x139)]+'\x20が\x20'+a[bM(0x181)]+'('+a['ts']+')\x20—\x20supervisor_session\x20未記録のため注入先が無く、この停止は誰にも通知されない(spawn\x20時に\x20supervisorSession\x20を渡すこと)';}function a0c(a,b){a=a-0x102;const c=a0a();let d=c[a];if(a0c['LIRjpS']===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['GqpAAW']=e,a0c['lWniGI']={},a0c['LIRjpS']=!![];}const f=c[0x0],g=a+f,h=a0c['lWniGI'][g];return!h?(d=a0c['GqpAAW'](d),a0c['lWniGI'][g]=d):d=h,d;}async function Ce(i,l){const bN=a0aO;let p=i[bN(0x183)][bN(0x21e)](a0=>a0['target'][bN(0x139)])[bN(0x134)](','),u;try{u=await l[bN(0x202)](i['session']);}catch(a0){return l['log'](bN(0x111)+i[bN(0x206)]+bN(0x15f)+p+bN(0x166)+String(a0)),bN(0x1d5);}if(!u){for(let a1 of i['items'])await l[bN(0x1aa)](a1['event'],a1['target']);return l[bN(0x195)](bN(0x13e)+i[bN(0x206)]+bN(0x10b)+p+bN(0x198)),bN(0x1f7);}if(await l[bN(0x1ff)](i['session']))return l[bN(0x195)](bN(0x157)+i[bN(0x206)]+bN(0x216)+p+bN(0x1d8)),bN(0x144);let x=i[bN(0x183)]['map'](a2=>({'shortId':a2[bN(0x164)]['shortId'],'event':a2[bN(0x181)][bN(0x181)],'ts':a2[bN(0x181)]['ts']})),y=lt(x);if(y===null)return l[bN(0x195)](bN(0x1f4)+p),bN(0x1d5);if(!ke(y,l['log']))return bN(0x1d5);let O=await l[bN(0x1ce)](i['session'],y);return O['ok']?(l[bN(0x195)](bN(0x190)+i['session']+bN(0x15f)+p+bN(0x218)+JSON[bN(0x18e)](y)),bN(0x1c7)):(l[bN(0x195)](bN(0x1c0)+i[bN(0x206)]+'\x20'+(O[bN(0x106)]??'')),bN(0x10c));}function Ue(a,c,i){const bO=a0aO;let l=c[bO(0x1fc)]>0x0?c[c[bO(0x1fc)]-0x1]['ts']:new Date()['toISOString']();return i['log'](bO(0x18a)+l+bO(0x1a1)),{'state':G(a,l),'initialized':!0x0,'injected':0x0,'skippedBusy':0x0,'gone':0x0,'unassigned':0x0,'unwired':0x0,'failed':0x0,'suppressed':0x0,'reacted':0x0,'blocked':0x0,'reverseInjected':0x0,'reverseBlocked':0x0,'reverseFailed':0x0};}function a0a(){const c2=['77YiC2vZC2LVBJ0','5lIn5zYO44gG','5lIn5zYO44gN44gc44kl','xUoaKg9Yy2HLC3rYyxrVCUoaKEEBO+EDOYbZzxnZAw9Uia','ioobJoobNEocJoobNUocJos9LEIHJowhUUocI+obI+AvSoobIoocIo+8IoIhQUw4REobJcaWioIHJoobQUocIEA4RoocIUAwUEobJowJIUocJoobPUobHoocI++8IEoaGUEBO+EDO+s4JEwCQoobJos6I+wUN+obQUocIEoaGEMfJEE3MUobRUs7MoobKEABV+obIoocKIbdve8G44g45lIk44gs44ki44cc5ygC5Q2I44gU6kAb5zcM44gV6lk05BIT44gOienutYdJGyZMSBRJGOhJGOG','zgv0zwn0zwrbDa','ioobJowUN+IHJos4RsbTB25ZDgvYpq','xUoaKg9Yy2HLC3rYyxrVCUoaKw1VBNn0zxiGwZaToweTzL17msWXmN0G44gmicG/oMf3ywL0Aw5Nx2LUChv0Fhn0B3bWzwqP77YiwZaTov17mN06wZaTov17mN3VViKOpZRJGifTB25ZDgvYifSWltLHlwzDEZeSmtj9ioobJcaOpZPHD2fPDgLUz19PBNb1DhXZDg9WCgvKkE+8IfSWltLDEZj9oLSWltLDEZj977YjksRJGilNIRBMHyVJGPlNORROQO3JGzFJGABLR77LV5ZJGzVJGOGK','ioAwH+MDOJ0','C2XPy2u','DxnLCL9WCM9TChq','Bwf4u2nHBM5Lze1Z','D3jPDgvgAwXLu3LUyW','CMv2zxjZzujSB2nRzwq','BwfW','ywXSB2m','5PYQ6kIT5A6A','ktOG5PYQ6ywn57EAidaG5lU277Yi56I85yon5lIT44gUig1VBNn0zxiG44gV44gz44g544gMihn1CgvYDMLZB3jFC2vZC2LVBIdJGyZOQjJPJllJGzxJGOZJGABJGytJGOVVViK','zxHPC3rZu3LUyW','Aw5Qzwn0zwq','5RAi44gi44gF','lcbutvvypq','Bgf0zxn0vhm','ndy1nJK4oePuB1z6wa','rw50zxi','C3rKB3v0','C3vWzxj2AxnVCI1UB3rPzNKUANnVBG','5PEI44gR5RoO5ywL5RIi44g/44gU44kK44oz44oZ44oi44gU44gF44kb5yAn5RoO5ywL44gx44gQ44ge77YiWQCZlJmG5yAQ562j77Yj','zxjYB3i','C2L6zq','ioocKIa','8j+AQca','Dg11Ef9ZzxnZAw9U','ioobJowTMowCQoobL+obQUobHcbTB25ZDgvYpq','zMfPBgvK','5Bgf44gQ44ge','iokaLcbZDxbLCNzPC29Yx3nLC3nPB24G5PYQ6kIy6yYY44gU44gF44kb44cb44gt44gUig1VBNn0zxiG44gm5Q2I44g+44gJ44gM44kc6kQW44gR44kc6ycA55+L44gv44km44gQ44ge77YiC3bHD24G5PMc44gRihn1CgvYDMLZB3jtzxnZAw9UioocKUA4OEobMEobK+obQo+8Iq','C3vWzxj2AxnVCLnLC3nPB24','ioobRUs4JEwCQoocKUMfJEs4IYbTB25ZDgvYpq','8j+AQcdJGRVJG4pJGRFJG6FJG7pLRP/LNkJJGPlLIktLRPRJGAFJGy3JGB7JGzVJGPmGC2vZC2LVBJ0','Dw5ZDxbLCNzPC2vK','CgLK','lMnSyxvKzq','8j+AQcdMS6JLHAxKUk3MRAi6ioAoIoAOQEocKUAeJ+wrS+obMEocI+IQNUocKUwqQ+ocGo+8Ia','Dg11EcbZzw5KlwTLExmGzMfPBgvK','BxrPBwvnCW','ic8G','8j+AQcdPGiBLKjhJGy3MS6JLHAxKUk3MRAi6ioAwH+MDOUocKUE1HoocGEobQUobI+obO+obNYbTB25ZDgvYpq','CgfYC2u','AgfZlxnLC3nPB24G44ks5Pkd44gF44gB44gM44ge44kl77Yi6iom5PMV44k344kN44oR44gN5yg944gUierfquqG44ks6l+u44gz5RIS44kk5PA544gN44gc44kk44cb6kQK44kk44gm5zcM5A6A5yg044gR44gG44gr5yE644kl44gF44kb44co55UJ552J44gm5RAi44gi44gF44cp44ks6ygo5yMW55sF5OIq44gz44kl44cc5yMn5PMV44gUihrTDxGGBgLZDc1ZzxnZAw9UCYdJGAFMLBdJGyJJGzxJGzVJGOVJGzpJGAJVViK','CgfKu3rHCNq','zNjVBuvUDhjPzxm','y2XVC2vtEw5J','yMXVy2TLza','CMvHC29U','Dw5HC3nPz25Lza','DwrLu2i','44oE44o844k4','uw5Iv0i','zxzLBNrZlMXVzW','mZu3mtK2nwTtwvvXBW','CMvHzfn5BMm','CMv2zxjZzuLUAMvJDgvK','kd86','8j+AQcdMS6JLHAxKUk3MRAi6ia','A2v5CW','AxnbCNjHEq','odq4ntG2meTQthjlyq','ChvZAa','44cc54Q25Owl44ks56k66kQn44gx44gM5A++5B+C44gB44ki','Bgf0zxn0rxzLBNq','DgLJAYdLPlhMLzC6ia','C2vUzc1RzxLZ','CMv2zxjZzuzHAwXLza','AM9PBG','C2v0','77YiC2vZC2LVBIdLKi3JGyZLJ6/LPiNPG6JJGA4GywXSB3CTBgLZDcdJGPlPGjRJGONJGARJGytJGyVJGihMPjZNN6xMMylLIlVJGyZOQQ3JGOhJGARJGytVViK','5A2y5zYO44gx44gQ44ge','Dg11Ea','C2HVCNrjza','ioMaHUwqKEobJEs4JEMbLd0','C3vWChjLC3nLza','Ag9TzwrPCG','C3rHDgu','C3vWzxj2AxnVCL9NB25LoIbZzxnZAw9Upq','ios7TU+8IoACGoAwSca','CMv2zxjZzv9PBMPLy3rLzf9ZDxbLCNzPC29Y','odaXmJi1zLzcsvfz','C3vWzxj2AxnVCI1UB3rPzNKUBg9N','C3rKzxjY','yNvZEq','44gM44ki44ge','5Q2744kt44gG','ktOG5PYQ6ywn57EAia','6jc944gH44gF','s3Hozu8','5BEU44gx5PsV44gi44gQ44ge','ios7TIdIGjqG','iowVVUIXOEwKLJ0','44oQ44oQ44o844k5','ioobQ+EBO+EDO+obJowpJEw/NoobL+obNYdIGjqG5OQr5Q2I44ks6kEJ6zMK77Yi5QYH44gU5ygC5Q2I44gl44kj5yAn44gZ5RoO5ywL44gz44kl77Yj','lNrTCa','ios7TIaViowpSow4SZ0','Bwf0y2G','57wc5lQg44gx44gF','ANLXvhO','zw50CMLLCW','u1vqrvjwsvnpuL9tvefurv9mt0nlx1rjtuvpvvq6ia','77Yj44gm5A6F5zYO44gx44gQ44geiokaLcdNN6xJGONJGzVJGOVNM7JMIyVJGyZLSyxJGARJGytVViHYzwnVBMnPBguG44gm5y+W5BIZ44ks55U044gz77Yj','yNvZEsbZA2LWoIbZzxnZAw9Upq','y3vYC29Yx3rZ','sNfvv3e','5y+W5BIZ44gRihrTDxHFC2vZC2LVBIdJGyZNHkhJGy/MS6JLHAxLHyJJGyZMSBRJGB7JGONJGARJGyq','77Yj44cc8j+AQcaQkUocU+odG+ocT+odP+odS+obJoEeOEobHoobK+obQoobRUIOVoAlOoobQ+obR+obQUocIUobVUobM+ocKYOQ77Yi5RIS5A6A5lIn6io977Yj44cc5zg844gZ5yE644gx5ywd44gU55kW5Akd44gm5A++6kMX44k344kN44oR44gO6ygv44gg44k944kX44od44oi44ks6kAl44gM44ge44kl5y+V6io95OcN44gm44gc44kk44g+44gz44cc6kMZ57sWoIa','C3bHD25Lzf9HDa','y291BNq','lcbutvvyx1rnuerjuJ0','ig1VBNn0zxi9','C3vWzxj2AxnVCL9NB25L','CMvHy3rLza','5zU65A6A44og44oZ44ox44oS44gR5lIa6iE044gx44gQ44ge','C2vSzG','DgfYz2v0','DhjPBq','iokgKIdKU4RLM57JGA/KVzxJGOlJGzFJGARJGytVViHZDxbLCNzPC29Yx2DVBMuG44kc6kIy6yYY44gx44gQ44ge77YjoIa','mJy5nda5nMzdEvvyCW','77Yj44cc5yMn5PMV44gNihrTDxGGBgLZDc1ZzxnZAw9UCYdJGPlMKOpJGAhJGie','C3vWzxj2AxnVCL9ZzxnZAw9U','C2vZC2LVBL9LBMq','5lIn5zYO44gm56k65A6A','Dg9tDhjPBMC','ioobJca','sg9hqMq','ioACQUMfJEE3MJ0','C3rHDguUBg9JAW','C3bHD25Lzef0','C3rHDhvZ','vg11EfvUyxzHAwXHyMXLrxjYB3i','zMXHDe1HCa','iokgKIdKU4RLM57JGA/PGiBLKjhJGy3MS6JLHAxJGzFJGARJGyq6ia','ipcFMQGG6kAb5A++5yEMoIbZDxbLCNzPC29Yx3nLC3nPB24G5PYQ6kIy6yYY44gUig1VBNn0zxiG44gm44ge44kl77Yi5ygC5Q2Ipq','BwLU','y2f0y2G','44gz44g544gx','C3rVChbLza','AgfZ','mJGXodKWoe1lwfbLvG','ruvysvnu','44gv44km44gF44gx','ios4JEMbLd0','lMXVy2S','zxzLBNq','AxngAw5PDgu','AxrLBxm','DxrMoa','vg11EfnLCNzLCLvUCMvHy2HHyMXLrxjYB3i','khnWyxDUzwqG','Bw9UC3rLCIa','z2v0twLUDxrLCW','44oh44ox44oT44kK','5yID5zUEihrPy2S6ioocQ+odVoocVEodQ+ocKIa','6ycg5zcr44gn5RoO5ywL6kAl6ycb44kkoIdPHy3KUiSGC2vZC2LVBJ0','C2HVCNrFAwq','te1wyMq','C3rYAw5NAwz5','BgfZDfvUD2LYzwrbDwrPDerHEq','5RoO5ywLoIbZzxnZAw9Upq','qs1Ays16mc05lL9akY0','mJmWntG0ohn2DfHwBW','77Yj4Ocuia','ywXYzwfKEv9PBMPLy3rLza','Bg9N','77Yj44ccuefuscdJGASGl29WDc9OB21LyNjLDY9IAw4G44gm54sH44geigXHDw5JAgqG562j44gl44kjioI1T+wlLEobLEocJoobPUobHoocI+wpR+IdVEAaP+obJoobGUocIUobVUobMEoaGK1ptLnurvjFve1vwf9csu4G44gN5PIo56s65OYh5A6A44gN44gn44g+44gz44cc5y6F5zUGoIa','ioobQoIhQUw4Rsa','iokgKIdNM6pNNApLRPVJGAVJGA/PGihJGONJGARJGytVViJPHy3KUiVJGBJJGA7PGiBLKjhJGy3PGjRNN6xJGA/LIkxOOyZJGAVLH7RJGOVVViK','sxvywKq','CMvHzezPBgu','5QsC55+L5PMc5yI777YiseG6tu3VViNJGPlLKkVJGB7JGARJGytVViJLJ5FJGzhMIyVJGyZPGjRNN6xJGA7LJ6tJGzxJGPlLIktMLQ3JGAFJGy3JGARJGytVViK','l3vZCI9SB2nHBc9IAw4VDg11Ea','Dg11EcdJGRxJG7ZJG5dJGAVNUyVJGyZJGORJGB7JGzVJGPpVViHIAw49','z2v0','BwvZC2fNzq','C3bSAxq','ioobQ+IOREwUMU+8IoMbJUwoU+obRUwbNoATOUobR+AZQowfPEobL+obQUobHo+8Iq','C3rYAw5N','zxHPDa','CMvWBgfJzq','tezxAw8','ihn1CgvYDMLZB3jFC2vZC2LVBJ0','8j+AQcdMNkRPHy3NT5O6ig1VBNn0zxi9','55UJ552J44gU5lIn5zYO44ks5PAT5A6A44gx44gM44ge44kloIa','D3jPDgvgAwXL','CMvJB3jKu3vWzxj2AxnVCKDVBMu','uNPYAwS','zNn0yxrtEw5J','Dg9mB3DLCKnHC2u','ioMaHUwqKEobJEIMI+MaGEocIJ0','AgfZlxnLC3nPB24','y3vYC29Ytxm','44cqB3jJAgvZDhjHDg9Y44cr','l29WDc9OB21LyNjLDY9IAw4VDg11Ea','5RIS5A6A5zMO44gU5A++54wN77Yi6iEQ5BIT44gU6kgm5PwW77Yj44ks5zcR44g+44gQ44ge77Yi5y+x44gr5OMl44gm44co55UJ552J44gm5Bgf44gQ44ge44cp44gO44co5RIS44kk5PA544gm5Aok44km44gM44ge44kl44cp44ks5yY65yIL44gN44gn44gQ44ge77Yj','DhnnCW','DMfSDwvZ','5AsX5yQ544gx44gF','44gx44gM44gp44gG44gv44ge','ioAkKEATOJ0','Bw9UC3rLCKLK','44gM6iMV44ge','77Yjic8G5PAh6z2Ipq','yxDHAxrPBMDFCMvHy3rPB24','C29YDa','CMvUyw1L','ioobRUwbNoATOUocPoodMEodS+odIca','5RoO5ywL5AsX5Pwx77Yi5QYHihrPy2SG44gN5yAn6kMM6kgm77YjoIbZzxnZAw9Upq','CMvHzezPBgvtEw5J','C3rHDa','6ywn5lIl6iEQ6lQR44gm55UJ552J44gO44gx44gM6kIy6yYY44gv44km44gM44ge44kl77Yi6iEQ5BEX5RoO5ywL44gR44gQ44kl77Yj','BwTKAxi','yxbWzw5KrMLSzvn5BMm','whfcwwy','zgvSAxzLCMvK','yvDewvC','BM9FDgfYz2v0x3nLC3nPB24','BM93','ELvmz3G','BxmG5lUL5yAf44gR5y+w5B6x44gN44gn44gQ44gl44gJ44gF','igj1C3NLVOxJGAe9','Aw5Qzwn0','D3jPDgu','44gz44kl44gt44gO','8j+AQcdPHy3KUiSGC2vZC2LVBIdJGA7LRP/LNkJJGPlLIktLRPRJGAFJGy3JGB7JGzVJGPmGC2vZC2LVBJ0','5lIn5zYO44gN44gz','5y+x44gr5OMl44gR5yMn5PMV44gUihrTDxGGBgLZDc1ZzxnZAw9UCYdJGPlMKOpJGz/JGzVJGOVOOyZLI5xOPOhMSylJGPlLKkVJGB7JGARJGytVViJMS6JLHAxJGyZMUkZLRPRJGA7JGy3JGApJGyVJGzhJGAFJGA/JGARJGy/LGzZMRAlJGA7MOlNMI6dJGAVJGARJGApJGABJGzFJGB7JGyBVViK','B3bLBLn5BMm','C2TPChbLza','wvboA2e','ue1Ayvy','77Yi5QYHihrPy2SG44gN5yAn6kMM6kgm77Yj','5ygC5Q2I44gx44gF','B2jQzwn0','Aw5JBhvKzxm','C3bMzvK','Aw5PDgLHBgL6zwq','BgfZDf9PBMPLy3rLzf9LDMvUDf90CW','6ycg5zcr44gn44gU5zU65A6A44og44oZ44ox44oS44gR5lIa6iE044gx44gQ44ge','z2v0sg91CNm','5O6i5QIP44ks5Osp5zgZ44gz44kl6kQE44ks5zcR44kaoIa','A2LSBa','u2jZAfO','C3vIB3jKAw5HDgvtzxnZAw9U','Dg11EfnLC3nPB24','Dg9ju09tDhjPBMC','rvbfuK0','ioAZQowfPEs4REATOJ0','yLLRr00','z0jlCgm','ugTit3e','EePYrwu','ioobJos4JEwCQoobQoAKNoEFPEobLEocJoobN++8IfSWltLDEZj9oLSWltLDEZj977Yj44cc5yMn5PMV44gNihrTDxGGBgLZDc1ZzxnZAw9UCYdJGPlMKOpJGAhJGie','CMvHzfrHCMDLDa','CNvUBMLUzW','ELPhvfy','zxzLBNrZlMXVzY4Y','zgLYBMfTzq','DxjtsuC','5RoO5ywL6kAl6ycb44kkoIdMLOFPNAlJGPlNTytJGOhJGARJGyVJGApJGz8GBw9UC3rLCJ0','Bw9UC3rLCNm','ru5pru5u','z29Uzq','tw55tg8','DgvZDa','CMvUyw1Lu3LUyW','ywrK','BgvUz3rO','CMvHzev2zw50CW','zMLSDgvY','C2vZC2LVBKj1C3K','ywXYzwfKEv9UB3rPzMLLza','Dw53AxjLza','C2vZC2LVBKv4Axn0CW','77Yi55UJ552J44gm5B6P5Rs744gx44gF5B6m44gR5Bgk44gp44gO5PAh6z2I44gm5zIy44gR44gQ44kl44cc5QsC55+L44gU5AcX5zgk44gO44gx44gM5PU444gp44gt44gO77Yj','C1HtANK','C3rHDfn5BMm','C2vZC2LVBG','wLLxv0G','rufdq0vt','C3rHDguUANnVBG','6ycg5zcr44gn5RoO5ywLoIdNM6pNNAmGC2vZC2LVBJ0','44gl44g+44kp44gQ44ge','ios9K++8IsdIGjqG55UJ6kAw57AY44gR56M044gm6zAl44ge44gM44ge44kl','77Yj44g46ycA55+LioAwH+MDOJ0','y29Kzq','C2TPChbLzej1C3K'];a0a=function(){return c2;};return a0a();}function Ve(a){const bP=a0aO;return a[bP(0x223)]+a[bP(0x20f)]+a[bP(0x1f7)]+a['unassigned']+a[bP(0x10c)]+a[bP(0x13b)]+a[bP(0x161)]+a[bP(0x11f)];}function Lt(a){const bQ=a0aO;let c=a[bQ(0x121)]>0x0||a['unwired']>0x0;if(!a[bQ(0x1dd)]&&Ve(a)===0x0&&!c)return null;let i='tick\x20完了:\x20注入='+a[bQ(0x223)]+bQ(0x1cd)+a[bQ(0x20f)]+'\x20supervisor_gone='+a[bQ(0x1f7)]+bQ(0x14c)+a['unassigned']+bQ(0x17f)+a[bQ(0x10c)]+bQ(0x1b8)+a[bQ(0x13b)]+'\x20反応='+a['reacted']+bQ(0x1e8)+a[bQ(0x11f)]+bQ(0x16f)+a['unwired']+'\x20逆向き注入='+a[bQ(0x128)]+bQ(0x1ae)+a[bQ(0x21d)]+bQ(0x13a)+a[bQ(0x133)];return c?i+bQ(0x176)+a[bQ(0x121)]+bQ(0x150)+a[bQ(0x201)]+bQ(0x20c):i;}function Ge(a,c){const bR=a0aO;let i=a[bR(0x120)]==='awaiting_reaction'?'\u76E3\u7763\u304C\u524D\u56DE\u306E\u901A\u77E5\u306B\u307E\u3060\u53CD\u5FDC\u3057\u3066\u3044\u306A\u3044\u305F\u3081\u6CE8\u5165\u3057\u306A\u3044\uFF08\xA73.3\x20\u51AA\u7B49\uFF09':bR(0x105);return'抑止:\x20monster='+c+bR(0x1bf)+a[bR(0x15d)]+bR(0x13f)+a[bR(0x130)]+'\x20'+a[bR(0x226)]+bR(0x193)+i;}async function Pt(a0,a1){const bS=a0aO;let a2=new Date(),a3=Be(a1,a2),a4=a1[bS(0x1fd)]();if(a0[bS(0x158)]===null)return{...Ue(a0,a4,a1),'unwired':a3};let a5=Date[bS(0x11a)](a0['cursor_ts']),a6=yt(a4,{'cursorMs':Number[bS(0x182)](a5)?a5:null,'entries':a0[bS(0x1f5)]}),a7=a0;for(let ad of a6[bS(0x161)])a7=Rt(a7,ad),a1[bS(0x195)]('反応観測:\x20monster='+a1[bS(0x1ee)](ad)[bS(0x139)]+bS(0x14e));let {groups:a8,unassigned:a9}=$e(a6['notify'],a1),aa={'injected':0x0,'skippedBusy':0x0,'gone':0x0,'failed':0x0,'blocked':0x0,'reverseInjected':0x0,'reverseBlocked':0x0,'reverseFailed':0x0};for(let af of a8){let ag=await Ce(af,a1);if(ag===bS(0x1c7)){if(bS(0x207)!==bS(0x1ec)){aa['injected']+=af['items'][bS(0x1fc)];for(let ah of af['items'])a7=$t(a7,ah[bS(0x181)][bS(0x1b9)],ah[bS(0x181)]['ts']);continue;}else return aa(ab(a2));}if(ag===bS(0x144))aa[bS(0x20f)]+=af[bS(0x183)]['length'];else{if(ag===bS(0x1f7)){aa[bS(0x1f7)]+=af[bS(0x183)][bS(0x1fc)];let aj=await be(af,a1,a7,a2['toISOString']());a7=aj[bS(0x13d)],aa['reverseInjected']+=aj[bS(0x223)],aa[bS(0x21d)]+=aj[bS(0x11f)],aa['reverseFailed']+=aj['failed'];}else ag==='failed'?aa[bS(0x10c)]+=af[bS(0x183)][bS(0x1fc)]:ag===bS(0x1d5)&&(aa[bS(0x11f)]+=af[bS(0x183)][bS(0x1fc)]);}}let ab=aa[bS(0x20f)]>0x0||aa[bS(0x10c)]>0x0||aa[bS(0x133)]>0x0;if(!ab&&a6[bS(0x21b)]!==null){for(let ak of a6[bS(0x13b)])a1[bS(0x195)](Ge(ak,a1[bS(0x1ee)](ak[bS(0x1b9)])[bS(0x139)]));for(let al of a9)a1[bS(0x195)](He(al,a1[bS(0x1ee)](al[bS(0x1b9)])));a7=G(a7,new Date(a6[bS(0x21b)])['toISOString']());}let ac=a6[bS(0x13b)]['reduce']((am,an)=>am+an[bS(0x15d)],0x0);return{'state':Mt(a7),'initialized':!0x1,'injected':aa[bS(0x223)],'skippedBusy':aa[bS(0x20f)],'gone':aa[bS(0x1f7)],'unassigned':a9[bS(0x1fc)],'unwired':a3,'failed':aa['failed'],'suppressed':ab?0x0:ac,'reacted':a6[bS(0x161)][bS(0x1fc)],'blocked':aa[bS(0x11f)],'reverseInjected':aa['reverseInjected'],'reverseBlocked':aa['reverseBlocked'],'reverseFailed':aa[bS(0x133)]};}var Je=0x200*0x400;function Ft(c){const bT=a0aO;let i;try{if(bT(0x149)!==bT(0x149)){if(typeof p!=bT(0x1a2))return null;let p=r[bT(0x11a)](s);if(!c[bT(0x182)](p))return null;let r=new u(p),u=x(r[bT(0x1e0)]())[bT(0x11c)](0x2,'0'),x=y(r['getMinutes']())[bT(0x11c)](0x2,'0');return u+':'+x;}else i=a0aF[bT(0x1d4)](c,'r');}catch{return'hJgZq'===bT(0x124)?i[bT(0x11a)](l[bT(0x1c1)](n,'utf8'))[bT(0x1f5)]??{}:[];}try{if(bT(0x1e9)!==bT(0x1e3)){let r=a0aF[bT(0x1ac)](i)[bT(0x107)],u=Math[bT(0x177)](r,Je),x=Buffer[bT(0x21f)](u);a0aF[bT(0x127)](i,x,0x0,u,r-u);let y=x[bT(0x16c)](bT(0x184))[bT(0x1a0)]('\x0a');return u<r?y[bT(0x219)](0x1):y;}else{let a0=c[bT(0x1f5)][u],a1=x[bT(0x1f5)][y];O[bT(0x18e)](a0)!==a0['stringify'](a1)&&(a1===void 0x0?delete a1[bT(0x1f5)][a2]:a3[bT(0x1f5)][a4]=a1);}}catch{return[];}finally{if(bT(0x1f3)!==bT(0x1f3))return[l,n][bT(0x174)](a1=>r(s(a1)))[bT(0x1bd)]((a1,a2)=>a1[bT(0x1b4)]-a2[bT(0x1b4)]);else a0aF[bT(0x11e)](i);}}function Ye(){const bU=a0aO;return[g,A]['flatMap'](a=>Tt(Ft(a)))[bU(0x1bd)]((a,c)=>a[bU(0x1b4)]-c[bU(0x1b4)]);}function J(){const bV=a0aO;try{return JSON[bV(0x11a)](a0aF[bV(0x1c1)](X,bV(0x184)))[bV(0x1f5)]??{};}catch{return{};}}function Dt(a,c){const bW=a0aO;return{'shortId':typeof c?.[bW(0x18c)]==bW(0x1a2)&&c['short_id']['length']>0x0?c['short_id']:a['slice'](0x0,0x8),'supervisorSession':typeof c?.[bW(0x169)]==bW(0x1a2)&&c[bW(0x169)][bW(0x1fc)]>0x0?c['supervisor_session']:null,'tmuxSession':typeof c?.[bW(0x10a)]==bW(0x1a2)?c['tmux_session']:'','status':typeof c?.['status']==bW(0x1a2)?c[bW(0x172)]:'','unsupervised':c?.['unsupervised']===!0x0,'spawnedAt':typeof c?.[bW(0x15c)]==bW(0x1a2)?c[bW(0x15c)]:''};}function ze(a=J()){return c=>{const bX=a0c;if(bX(0x1dc)===bX(0x1dc)){let {shortId:i,supervisorSession:l,tmuxSession:p}=Dt(c,a[c]);return{'shortId':i,'supervisorSession':l,'tmuxSession':p};}else return c['toISOString']()[bX(0x219)](0x0,0xa);};}function Xe(a=J()){return Object['entries'](a)['map'](([i,l])=>{let {shortId:p,supervisorSession:u,status:x,unsupervised:y,spawnedAt:O}=Dt(i,l);return{'shortId':p,'supervisorSession':u,'status':x,'unsupervised':y,'spawnedAt':O};});}function Ke(){return jt(Ft(E));}async function We(a,c){const bY=a0aO;await tt(et(a[bY(0x1b9)],c[bY(0x1e5)],bY(0x160),{'supervisor_session':c[bY(0x10f)],'trigger_event':a[bY(0x181)],'trigger_ts':a['ts']}));}function Bt(a){let c=J();return{'readEvents':Ye,'readTarget':ze(c),'readLedger':()=>Xe(c),'lastUnwiredAuditDay':Ke,'sessionExists':F,'sessionBusy':rt,'inject':async(i,l)=>{const bZ=a0c;let p=await it(i,l);return{'ok':p['ok'],'error':p[bZ(0x106)]};},'recordSupervisorGone':We,'log':a};}function Y(a){const c0=a0aO;process['stdout'][c0(0x1cf)](new Date()[c0(0x1e6)]()+'\x20'+a+'\x0a'),Q(a);}async function Ze(){let a=await At(),c=await Pt(a,Bt(Y));await Nt(c['state'],a);let i=Lt(c);i!==null&&Y(i);}Ze()['catch'](a=>{const c1=a0aO;Y(c1(0x131)+(a instanceof Error?a['message']:String(a))),process[c1(0x1a3)](0x1);});
2
+ const a0bQ=a0c;(function(a,c){const bO=a0c,d=a();while(!![]){try{const e=-parseInt(bO(0x255))/0x1*(parseInt(bO(0x2d7))/0x2)+parseInt(bO(0x2b9))/0x3*(-parseInt(bO(0x1cb))/0x4)+-parseInt(bO(0x296))/0x5*(parseInt(bO(0x1da))/0x6)+-parseInt(bO(0x1d5))/0x7+-parseInt(bO(0x23a))/0x8*(-parseInt(bO(0x2c3))/0x9)+-parseInt(bO(0x1b6))/0xa+parseInt(bO(0x22e))/0xb;if(e===c)break;else d['push'](d['shift']());}catch(f){d['push'](d['shift']());}}}(a0a,0xb2127));import*as a0bC from'node:fs';import*as a0bD from'node:path';var Wt=/[\u0000-\u001f\u007f-\u009f]/g;function Q(a){const bP=a0c;return a['replace'](Wt,'\x20')['replace'](/\s+/g,'\x20')[bP(0x1b3)]();}import*as a0bE from'node:os';import*as a0bF from'node:path';var C=process.env.MONSTER_MCP_ROOT,y=C&&C[a0bQ(0x245)]>0x0?C:a0bF['join'](a0bE[a0bQ(0x1ba)](),a0bQ(0x2e1),a0bQ(0x2a6)),et=a0bF[a0bQ(0x2cb)](y,'state.json'),gn=a0bF['join'](y,a0bQ(0x2f2)),v=a0bF['join'](y,a0bQ(0x2af)),k=a0bF['join'](y,a0bQ(0x1dd)),j=a0bF[a0bQ(0x2cb)](y,a0bQ(0x259)),nt=0xa*0x400*0x400,qt=0x5*0x400*0x400,E=a0bF[a0bQ(0x2cb)](y,'supervisor-notify.json'),x=E+a0bQ(0x2be),O=a0bF[a0bQ(0x2cb)](y,a0bQ(0x22b)),st=O+'.1',rt=0x2*0x400*0x400;function Zt(){const bR=a0bQ;try{if(a0bC[bR(0x239)](O)['size']<rt)return;a0bC[bR(0x2db)](O,st);}catch{}}function it(a){const bS=a0bQ;let c=new Date()[bS(0x1be)]()+'\x20'+Q(a)+'\x0a';try{if('VnuPk'===bS(0x1ef))return d(c)[bS(0x245)]>0x0;else a0bC[bS(0x213)](a0bD[bS(0x288)](O),{'recursive':!0x0}),Zt(),a0bC[bS(0x235)](O,c,bS(0x28b));}catch{}}import*as a0bG from'node:fs';import*as a0bH from'node:fs';import*as a0bI from'node:fs/promises';function Qt(){const bT=a0bQ;a0bH[bT(0x213)](y,{'recursive':!0x0}),a0bH[bT(0x1e5)](v)||a0bH[bT(0x217)](v,'',bT(0x28b));}async function te(){const bU=a0bQ;try{if('xUZhP'===bU(0x2c4)){if((await a0bI[bU(0x2e2)](v))[bU(0x2ed)]<nt)return!0x1;}else return e['min'](0x64+f[bU(0x26a)](h/0x4),0x5dc);}catch{if(bU(0x2b1)!=='kwwAE')return!0x1;else{let d=[];for(let e of f){let f=i['match'](e);f&&d[bU(0x253)](f[0x0]);}return d;}}try{return a0bH['existsSync'](j)&&await a0bI['unlink'](j),a0bH[bU(0x1e5)](k)&&await a0bI[bU(0x2cc)](k,j),await a0bI['rename'](v,k),await a0bI[bU(0x272)](v,'',bU(0x28b)),!0x0;}catch{return!0x1;}}async function at(a){const bV=a0bQ;Qt(),await te();let c=JSON[bV(0x2e5)](a)+'\x0a';await a0bI['appendFile'](v,c,bV(0x28b));}function ct(a,c,d,f={}){const bW=a0bQ;return{'ts':new Date()[bW(0x1be)](),'monster_id':a,'event':d,'session':c,'meta':f};}import{execFile as a0bJ}from'node:child_process';import{promisify as a0bK}from'node:util';import*as a0bL from'node:fs';var M=a0bK(a0bJ);function se(){const bX=a0bQ;let a=process.env.MONSTER_TMUX_BIN;if(a)return a;for(let c of[bX(0x20f),'/usr/local/bin/tmux'])try{if(a0bL[bX(0x1e5)](c))return c;}catch{}return bX(0x2c2);}var $=se(),L=class extends Error{},H=class extends L{constructor(a){const bY=a0bQ;super(bY(0x21c)+$+bY(0x1d0)+String(a)),this[bY(0x1c9)]=bY(0x249);}},U=class extends L{constructor(a){const bZ=a0bQ;super(bZ(0x2ad)+$+bZ(0x237)+(process.env.TMUX?'\u3042\u308A':'\u306A\u3057')+bZ(0x246)+(process.env.TMUX_TMPDIR??bZ(0x25e))+bZ(0x1b0)+a),this['name']=bZ(0x2a1);}};function re(a){const c0=a0bQ;let c=a?.[c0(0x280)];return c===c0(0x1db)||c===c0(0x2e8)||c===c0(0x287);}function oe(a){const c1=a0bQ;let c=a,d=typeof c?.[c1(0x292)]==c1(0x221)&&c[c1(0x292)][c1(0x245)]>0x0?c[c1(0x292)]:String(c?.['message']??a);return ft(d)[c1(0x1b3)]();}var ie=/can't find session|session not found/i;function ae(a){const c2=a0bQ;return ie[c2(0x2a4)](a)?c2(0x212):c2(0x2c6);}var ce=/\x1b\[[0-9;?]*[A-Za-z]/g;function ft(a){const c3=a0bQ;return a['replace'](ce,'')[c3(0x29d)](/\r/g,'');}async function B(a){const c4=a0bQ;try{return await M($,[c4(0x216),'-t',a]),!0x0;}catch(c){if(re(c))throw new H(c);let d=oe(c);if(ae(d)==='absent')return!0x1;throw new U(d);}}var ue=/esc to interrupt/i;async function lt(a){const c5=a0bQ;let c=await dt(a,0x32);return c['trim']()[c5(0x245)]===0x0?!0x0:ue[c5(0x2a4)](c);}async function dt(a,c){const c6=a0bQ;try{let {stdout:d}=await M($,[c6(0x281),'-t',a,'-p','-S','-'+c]);return ft(d);}catch{return'';}}function fe(a){const c7=a0bQ;return Math[c7(0x23e)](0x64+Math[c7(0x26a)](a/0x4),0x5dc);}function le(a){const c8=a0bQ;return a[c8(0x29d)](/\n+$/,'');}async function pt(a,c){const c9=a0bQ;try{if('vYIGC'===c9(0x233)){let d=le(c);await M($,[c9(0x1f0),'-t',a,'-l',d]);let f=fe(d[c9(0x245)]);return await new Promise(h=>setTimeout(h,f)),await M($,[c9(0x1f0),'-t',a,'Enter']),await new Promise(h=>setTimeout(h,0xc8)),await M($,[c9(0x1f0),'-t',a,c9(0x2b0)]),{'ok':!0x0,'bytes':Buffer[c9(0x2e3)](d,c9(0x28b))};}else{if(a5(a6))return{'ok':!0x1,'reason':c9(0x1cf)+a7(a8)[c9(0x2cb)](c9(0x29e))};if(a9(aa)){let i=av(aw);return{'ok':!0x1,'reason':ax+':\x20'+i[c9(0x2cb)](c9(0x29e))};}return af(ag)?{'ok':!0x1,'reason':'監督の不在を断定している:\x20'+ah(ai)['join'](c9(0x29e))+c9(0x28a)}:aj[c9(0x2a4)](ak)?{'ok':!0x1,'reason':'has-session\x20\u3092\u6483\u305F\u305B\u3066\u3044\u308B\uFF08\u80CC\u666F\u30B7\u30A7\u30EB\u3067\u507D\u306E\x20DEAD\x20\u3092\u8FD4\u3059\u6E2C\u308A\u65B9\u3067\u3042\u308A\u3001\u8AA4\u308A\u304C\u5426\u5B9A\u5074\u306B\u3060\u3051\u51FA\u308B\u305F\u3081\u300E\u76E3\u7763\u304C\u6D88\u3048\u305F\u300F\u3092\u904E\u5270\u751F\u6210\u3059\u308B\u3002\u524D\u666F\u306E\x20tmux\x20list-sessions\x20\u3067\u6570\u3048\u3055\u305B\u308B\u3053\u3068\uFF09'}:al['test'](am)?ao['test'](ap)?aq[c9(0x2a4)](ar)?as[c9(0x2a4)](au)?{'ok':!0x0}:{'ok':!0x1,'reason':c9(0x2d1)}:{'ok':!0x1,'reason':c9(0x276)}:{'ok':!0x1,'reason':'\u53D7\u3051\u624B\u306B\u524D\u666F\u306E\x20tmux\x20list-sessions\x20\u3092\u6483\u305F\u305B\u308B\u884C\u52D5\u8981\u6C42\u3092\u542B\u307E\u306A\u3044\uFF08\u6CE8\u5165\u304C\u6E2C\u5B9A\u306E\u304D\u3063\u304B\u3051\u3067\u306F\u306A\u304F\u505C\u6B62\u306E\u6839\u62E0\u306B\u306A\u3063\u3066\u3057\u307E\u3046\uFF09'}:{'ok':!0x1,'reason':c9(0x1f7)};}}catch(i){return{'ok':!0x1,'bytes':0x0,'error':i?.[c9(0x292)]||i?.['message']||c9(0x22a)};}}var G=[a0bQ(0x1ec),a0bQ(0x1b1)],_t=a0bQ(0x283),de=a0bQ(0x1c8),St=a0bQ(0x1dc);function pe(a){const ca=a0bQ;if(typeof a!='string')return null;let c=a['toLowerCase']()[ca(0x29d)](/[^0-9a-f]/g,'');return c['length']===0x0?null:c[ca(0x27f)](0x0,0xc);}function me(a){const cb=a0bQ;return typeof a==cb(0x221)&&G[cb(0x2ac)](a);}function ht(a){const cc=a0bQ;if(typeof a!='string')return null;let c=Date[cc(0x1e4)](a);if(!Number[cc(0x240)](c))return null;let d=new Date(c),f=String(d[cc(0x2c5)]())[cc(0x225)](0x2,'0'),h=String(d[cc(0x26e)]())[cc(0x225)](0x2,'0');return f+':'+h;}function _e(a){const cd=a0bQ;let c=pe(a['shortId']),d=ht(a['ts']);return!c||!d||!me(a['event'])?null:cd(0x290)+c+'\x20が\x20'+a[cd(0x23f)]+'('+d+')';}function gt(a){const cf=a0bQ;let c=[];for(let d of a){if('hFHbw'!==cf(0x219)){let f=_e(d);f&&c[cf(0x253)](f);}else m(cf(0x200)+(d instanceof o?p[cf(0x204)]:r(s))),a[cf(0x21a)](0x1);}return c[cf(0x245)]===0x0?null:''+_t+c[cf(0x2cb)]('\u3001')+de;}var Se=new RegExp(a0bQ(0x252)),he=['\u627F\u8A8D','\u627F\u8AFE','\u4E86\u627F','\u8A31\u53EF','\u8A8D\u53EF','\u8A31\u8AFE','\u88C1\u5B9A','\u6C7A\u88C1','GO','\u30B4\u30FC',a0bQ(0x1ae),'\u30BF\u30B0',a0bQ(0x1ea),a0bQ(0x229),'\u672C\u756A','\u53EF','\u3066\u3088\u3044',a0bQ(0x27d),'\u3066\u3044\u3044',a0bQ(0x2d2),a0bQ(0x2ba),'\u3057\u3066\u304F\u3060\u3055\u3044',a0bQ(0x1ee),a0bQ(0x1b5),/\b(?:ok|okay|go|approve[ds]?|approval|authoriz(?:e|ed|ation)|merge[ds]?|tag|release|deploy|greenlight)\b/i];function b(a){const cg=a0bQ;let c=[];for(let d of he){if(cg(0x2a0)===cg(0x2a0)){if(typeof d=='string'){if(cg(0x25c)!==cg(0x1bf)){a['includes'](d)&&c[cg(0x253)](d);continue;}else return{...i,'monsters':{...m[cg(0x2a6)],[d]:{...o[cg(0x2a6)][p],'last_injected_event_ts':r,'awaiting_reaction':!0x0}}};}let f=a[cg(0x1d8)](d);f&&c['push'](f[0x0]);}else{let m=m(d[cg(0x2b5)]),o=o(p[cg(0x22d)]),p=r(s[cg(0x2f1)]);return!m||!o||!p?null:a+cg(0x208)+m+'\x20が不在と検知された('+p+cg(0x234)+m+cg(0x1e2)+o+cg(0x22f);}}return c;}function P(a){const ch=a0bQ;return b(a)[ch(0x245)]>0x0;}function Et(a){const ci=a0bQ;if(!Se[ci(0x2a4)](a))return{'ok':!0x1,'reason':ci(0x2ef)};if(P(a))return{'ok':!0x1,'reason':ci(0x1cf)+b(a)[ci(0x2cb)]('\x20/\x20')};if(vt(a)){let c=Y(a);return{'ok':!0x1,'reason':xt+':\x20'+c['join'](ci(0x29e))};}return{'ok':!0x0};}var Tt=0x40,ge=new RegExp('^['+St+a0bQ(0x23d));function mt(a){const cj=a0bQ;if(typeof a!=cj(0x221))return null;let c=a['trim']();return c[cj(0x245)]===0x0||c[cj(0x245)]>Tt||!ge[cj(0x2a4)](c)?null:c;}function wt(a){const ck=a0bQ;let c=mt(a[ck(0x2b5)]),d=mt(a[ck(0x22d)]),f=ht(a[ck(0x2f1)]);return!c||!d||!f?null:_t+ck(0x208)+c+'\x20が不在と検知された('+f+ck(0x234)+c+ck(0x1e2)+d+ck(0x22f);}var V='['+St+a0bQ(0x1f5)+Tt+'}',Ee=new RegExp(a0bQ(0x1bd)+V+a0bQ(0x2a9)+V+a0bQ(0x1e2)+V+a0bQ(0x28d)),Te=/([0-9]{2}:[0-9]{2})/,we=/前景で tmux list-sessions を撃ち、/,ye=/(自席が 0 行なら測り方が壊れている)/,ve=/has-session/,xe=[a0bQ(0x2a8),'\u6D88\u6EC5','\u6D88\u5931',a0bQ(0x2a7),'\u6B7B\u4EA1',a0bQ(0x250),a0bQ(0x262),a0bQ(0x2f0),a0bQ(0x29f),a0bQ(0x1af),'\u5B58\u5728\u3057\u306A\u3044',a0bQ(0x291),a0bQ(0x2a5),a0bQ(0x27a),'\u4E0D\u5728\u3067\u3042\u308B',a0bQ(0x271),a0bQ(0x266),'\u4E0D\u5728\u304C\u78BA\u5B9A',/\b(?:is|has|was|been)\s+(?:gone|dead|missing|terminated|absent)\b/i];function yt(a){const cl=a0bQ;let c=[];for(let d of xe){if(cl(0x1f9)==='BpVrZ')return new c(o=>i(o,m));else{if(typeof d==cl(0x221)){a[cl(0x2ac)](d)&&c[cl(0x253)](d);continue;}let h=a[cl(0x1d8)](d);h&&c[cl(0x253)](h[0x0]);}}return c;}function Ie(a){const cm=a0bQ;return yt(a)[cm(0x245)]>0x0;}var Oe=['\u505C\u6B62','\u7D42\u4E86','\u4E2D\u6B62','\u4E2D\u65AD','\u4F11\u6B62','\u5F85\u6A5F','\u64A4\u53CE','\u64A4\u9000','\u96E2\u8131','\u653E\u68C4','\u4E2D\u5EA7','\u7834\u68C4','\u524A\u9664','\u62B9\u6D88','\u6D88\u53BB','\u51CD\u7D50','\u5C01\u9396','\u9589\u9396','\u89E3\u6563'],Re=['\u305B\u3088','\u305B\u3044','\u3057\u308D','\u3057\u3066',a0bQ(0x214),a0bQ(0x1b4),a0bQ(0x2e4),a0bQ(0x236),'\u9858\u3046'],Ae=[new RegExp('(?:'+Oe[a0bQ(0x2cb)]('|')+a0bQ(0x2d8)+Re['join']('|')+')'),/やめ(?:よ|ろ|て|ること|なさい)/,/\b(?:must|should|please)\s+(?:stop|halt|abort|terminate|cease|suspend|stand\s?down)\b/i,/\b(?:stop|halt|abort|terminate|cease|suspend|shut\s?down|stand\s?down)\s+(?:now|immediately|work(?:ing)?|the\s|your\s|this\s)/i];function Y(a){const co=a0bQ;let c=[];for(let d of Ae){if(co(0x1d7)===co(0x2dc)){let h=h(i);return h['ok']?!0x0:(m('🚨\x20逆向き注入中止:\x20'+h[co(0x1c0)]+'\x20/\x20文面='+d[co(0x2e5)](o)),!0x1);}else{let h=a[co(0x1d8)](d);h&&c[co(0x253)](h[0x0]);}}return c;}function vt(a){const cp=a0bQ;return Y(a)[cp(0x245)]>0x0;}var xt=a0bQ(0x1b7);function It(a){const cq=a0bQ;if(P(a))return{'ok':!0x1,'reason':cq(0x1cf)+b(a)[cq(0x2cb)](cq(0x29e))};if(vt(a)){let c=Y(a);return{'ok':!0x1,'reason':xt+':\x20'+c['join'](cq(0x29e))};}return Ie(a)?{'ok':!0x1,'reason':cq(0x1ab)+yt(a)[cq(0x2cb)](cq(0x29e))+cq(0x28a)}:ve[cq(0x2a4)](a)?{'ok':!0x1,'reason':cq(0x2d5)}:Te[cq(0x2a4)](a)?we[cq(0x2a4)](a)?ye[cq(0x2a4)](a)?Ee['test'](a)?{'ok':!0x0}:{'ok':!0x1,'reason':cq(0x2d1)}:{'ok':!0x1,'reason':'\u6E2C\u5B9A\u5668\u306E\u5BFE\u7167\uFF08\u81EA\u5E2D\u306E\u884C\u6570\uFF09\u3092\u542B\u307E\u306A\u3044\uFF08\u53D7\u3051\u624B\u304C\u300E\u76E3\u7763\u304C\u5C45\u306A\u3044\u300F\u3068\u300E\u6E2C\u308A\u65B9\u304C\u58CA\u308C\u3066\u3044\u308B\u300F\u3092\u533A\u5225\u3067\u304D\u306A\u3044\uFF09'}:{'ok':!0x1,'reason':'\u53D7\u3051\u624B\u306B\u524D\u666F\u306E\x20tmux\x20list-sessions\x20\u3092\u6483\u305F\u305B\u308B\u884C\u52D5\u8981\u6C42\u3092\u542B\u307E\u306A\u3044\uFF08\u6CE8\u5165\u304C\u6E2C\u5B9A\u306E\u304D\u3063\u304B\u3051\u3067\u306F\u306A\u304F\u505C\u6B62\u306E\u6839\u62E0\u306B\u306A\u3063\u3066\u3057\u307E\u3046\uFF09'}:{'ok':!0x1,'reason':cq(0x1f7)};}var $e=[a0bQ(0x2e0),a0bQ(0x285)],ke=a=>typeof a==a0bQ(0x2aa)&&a!==null&&!Array['isArray'](a);function Ne(c){const cr=a0bQ;let d=c[cr(0x1b3)]();if(d[cr(0x245)]===0x0)return null;let f;try{if('dsikp'!==cr(0x1e0)){let I=e(f);return{'ok':!0x1,'reason':h+':\x20'+I['join'](cr(0x29e))};}else f=JSON['parse'](d);}catch{return null;}if(!ke(f))return null;let {ts:h,monster_id:m,event:o}=f;if(typeof h!=cr(0x221)||typeof m!='string'||m[cr(0x245)]===0x0||typeof o!=cr(0x221))return null;let p=Date[cr(0x1e4)](h);return Number[cr(0x240)](p)?{'ts':h,'tsMs':p,'monsterId':m,'event':o}:null;}function Ot(a){const cs=a0bQ;let c=[];for(let d of a){if(cs(0x22c)!==cs(0x22c))return f?.['code']==='ENOENT'?{'ok':!0x0,'state':h()}:{'ok':!0x1,'kind':cs(0x263),'detail':i(m)};else{let h=Ne(d);h&&c['push'](h);}}return c;}function Me(a){const cu=a0bQ;return G[cu(0x2ac)](a);}function be(a){const cv=a0bQ;return $e[cv(0x2ac)](a);}function Rt(f,m){const cw=a0bQ;let I=new Map(),N=new Map(),T=new Map();for(let [a5,a6]of Object[cw(0x24b)](m[cw(0x24b)])){if(cw(0x29b)!=='dNKjV'){I[cw(0x25a)](a5,a6[cw(0x1f6)]);let a7=Date['parse'](a6['last_injected_event_ts']);Number[cw(0x240)](a7)&&N[cw(0x25a)](a5,a7);let a8=a6[cw(0x297)]===void 0x0?NaN:Date['parse'](a6['last_scanned_event_ts']);Number[cw(0x240)](a8)&&T[cw(0x25a)](a5,a8);}else return{...a3,'cursor_ts':m};}let a0=new Set(),a1=new Map(),a2=new Map(),a3=null,a4=(aa,ab)=>{const cx=cw;let ac=aa[cx(0x2b2)]+'\x00'+ab;a2[cx(0x25a)](ac,{'monsterId':aa[cx(0x2b2)],'reason':ab,'count':(a2[cx(0x1eb)](ac)?.[cx(0x210)]??0x0)+0x1,'latestTs':aa['ts'],'latestEvent':aa[cx(0x23f)]});};for(let aa of[...f][cw(0x2bc)]((ab,ac)=>ab[cw(0x1c3)]-ac['tsMs'])){if(m[cw(0x278)]!==null&&aa['tsMs']<=m['cursorMs'])continue;(a3===null||aa['tsMs']>a3)&&(a3=aa[cw(0x1c3)]);let ab=T['get'](aa[cw(0x2b2)]);if(ab!==void 0x0&&aa[cw(0x1c3)]<=ab)continue;if(be(aa[cw(0x23f)])){I['get'](aa[cw(0x2b2)])&&(I['set'](aa['monsterId'],!0x1),a0[cw(0x243)](aa['monsterId']));continue;}if(!Me(aa[cw(0x23f)]))continue;if(I[cw(0x1eb)](aa['monsterId'])){a4(aa,cw(0x1f6));continue;}let ac=N[cw(0x1eb)](aa[cw(0x2b2)]);if(ac!==void 0x0&&aa[cw(0x1c3)]<=ac){a4(aa,cw(0x29c));continue;}a1[cw(0x25a)](aa['monsterId'],aa);}return{'notify':[...a1[cw(0x1c4)]()]['sort']((ad,af)=>ad['tsMs']-af['tsMs']),'suppressed':[...a2['values']()],'reacted':[...a0],'maxScannedMs':a3};}import*as a0bM from'node:fs/promises';import*as a0bN from'node:path';var je=0xea60,Fn=je*0x3;function At(a){const cy=a0bQ;try{return process[cy(0x2c0)](a,0x0),!0x0;}catch(c){return cy(0x1c1)===cy(0x1c6)?!0x1:c?.[cy(0x280)]==='EPERM';}}var Le=0xc8,Pe=()=>({'version':0x1,'cursor_ts':null,'monsters':{}}),z=a=>typeof a==a0bQ(0x2aa)&&a!==null&&!Array[a0bQ(0x25b)](a),J=a=>typeof a==a0bQ(0x221)&&a[a0bQ(0x245)]>0x0?a:void 0x0;function Fe(c){const cz=a0bQ;if(!z(c))return{};let d={};for(let [f,h]of Object[cz(0x24b)](c)){if(!z(h)||typeof h[cz(0x261)]!='string')continue;let m=J(h[cz(0x298)]),o=J(h[cz(0x23c)]),p=J(h['last_scanned_event_ts']);d[f]={'last_injected_event_ts':h[cz(0x261)],'awaiting_reaction':h[cz(0x1f6)]===!0x0,...m===void 0x0?{}:{'reverse_injected_supervisor':m},...o===void 0x0?{}:{'last_gone_recorded_event_ts':o},...p===void 0x0?{}:{'last_scanned_event_ts':p}};}return d;}function De(a){const cA=a0bQ;let c=JSON['parse'](a);if(!z(c))throw new Error('\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306F\u306A\u3044');return{'version':0x1,'cursor_ts':typeof c[cA(0x28c)]==cA(0x221)?c[cA(0x28c)]:null,'monsters':Fe(c[cA(0x2a6)])};}var F=new WeakMap();function $t(a){const cB=a0bQ;let c=a;return''+(typeof c?.[cB(0x280)]==cB(0x221)?c[cB(0x280)]+':\x20':'')+String(c?.[cB(0x204)]??a);}function a0a(){const dp=['AxngAw5PDgu','C2vZC2LVBKj1C3K','lMnVCNj1ChqU','ywrK','C2HVCNrjza','BgvUz3rO','lcbutvvyx1rnuerjuJ0','khnWyxDUzwqG','ios7TIaViowpSow4SZ0','vg11EfvUyxzHAwXHyMXLrxjYB3i','Dg11Ef9ZzxnZAw9U','zw50CMLLCW','DgfYz2v0','CgLK','55UJ552J44gm5yMn5zUE44gU6ycA55+L44gR44g+44gG5y+n5B+C44gx44gM44ge44gQ44ge44gF44kb5RoO5ywL44gx44gQ44ge77YiWQCZlJmG5yAQ562j77Yj','Aw5PDgLHBgL6zwq','5AsX5yQ544gx44gF','77Yjic8G5PAh6z2Ipq','xUoaKg9Yy2HLC3rYyxrVCUoaKw1VBNn0zxiGwZaToweTzL17msWXmN0G44gmicG/oMf3ywL0Aw5Nx2LUChv0Fhn0B3bWzwqP77YiwZaTov17mN06wZaTov17mN3VViKOpZRJGifTB25ZDgvYifSWltLHlwzDEZeSmtj9ioobJcaOpZPHD2fPDgLUz19PBNb1DhXZDg9WCgvKkE+8IfSWltLDEZj9oLSWltLDEZj977YjksRJGilNIRBMHyVJGPlNORROQO3JGzFJGABLR77LV5ZJGzVJGOGK','ChvZAa','Aw5Qzwn0zwq','mZy2nJa1yLjQAvHW','CMv2zxjZzuLUAMvJDgvK','8j+AQca','6ycg5zcr44gn5RoO5ywL6kAl6ycb44kkoIdPHy3KUiSGC2vZC2LVBJ0','zxzLBNrZlMXVzY4Y','C2v0','AxnbCNjHEq','zeXQtKq','ywXSB2m','5PYQ6kIT5A6A','77Yj4Ocuia','ioobJowUN+IHJos4RsbTB25ZDgvYpq','BgfZDf9PBMPLy3rLzf9LDMvUDf90CW','57wc5lQg44gx44gF','Dw5YzwfKywjSzq','C2vSzG','5RoO5ywL6kAl6ycb44kkoIdMLOFPNAlJGPlNTytJGOhJGARJGyVJGApJGz8GBw9UC3rLCJ0','5lIn5zYO44gG','tffVue8','C2vZC2LVBG','ioobQ+IOREwUMU+8IoMbJUwoU+obRUwbNoATOUobR+AZQowfPEobL+obQUobHo+8Iq','zMXVB3i','BM9FDgfYz2v0x3nLC3nPB24','yNvZEsbZA2LWoIbZzxnZAw9Upq','D3L5DuC','z2v0twLUDxrLCW','CNvUBMLUzW','rM9VqNO','5lIn5zYO44gN44gz','D3jPDgvgAwXL','C3bHD25Lzef0','C2vZC2LVBKv4Axn0CW','ios4JEMbLd0','5RIS5A6A5zMO44gU5A++54wN77Yi6iEQ5BIT44gU6kgm5PwW77Yj44ks5zcR44g+44gQ44ge77Yi5y+x44gr5OMl44gm44co55UJ552J44gm5Bgf44gQ44ge44cp44gO44co5RIS44kk5PA544gm5Aok44km44gM44ge44kl44cp44ks5yY65yIL44gN44gn44gQ44ge77Yj','ioobRUs4JEwCQoocKUMfJEs4IYbTB25ZDgvYpq','y3vYC29Ytxm','igj1C3NLVOxJGAe9','44ge44gQ44gp44gQ44gJ44gF','CMvHzeXLzgDLCG','v29ZvgS','44gM6iMV44ge','BM93','C2XPy2u','y29Kzq','y2fWDhvYzs1Wyw5L','ioIhQUw4Rt0','44cqB3jJAgvZDhjHDg9Y44cr','ioMaHUwqKEobJEs4JEMbLd0','C2vZC2LVBL9LBMq','D0X1ELm','rvbfuK0','zgLYBMfTzq','BwfW','77Yi55UJ552J44gm5B6P5Rs744gx44gF5B6m44gR5Bgk44gp44gO5PAh6z2I44gm5zIy44gR44gQ44kl44cc5QsC55+L44gU5AcX5zgk44gO44gx44gM5PU444gp44gt44gO77Yj','DxrMoa','y3vYC29Yx3rZ','ioobJoobNEocJoobNUocJos9LEIHJowhUUocI+obI+AvSoobIoocIo+8IoIhQUw4REobJcaWioIHJoobQUocIEA4RoocIUAwUEobJowJIUocJoobPUobHoocI++8IEoaGUEBO+EDO+s4JEwCQoobJos6I+wUN+obQUocIEoaGEMfJEE3MUobRUs7MoobKEABV+obIoocKIbdve8G44g45lIk44gs44ki44cc5ygC5Q2I44gU6kAb5zcM44gV6lk05BIT44gOienutYdJGyZMSBRJGOhJGOGK','5y+n5B+C6kAZ5RISoIbTB25ZDgvYpq','zuL6sKK','Bw9UC3rLCIa','5Bgf44gQ44ge','C3rKzxjY','Dw53AxjLza','77YiC2vZC2LVBJ0','iowpJEw/Nd0','nu5zBMjzyq','BgfZDf9Zy2fUBMvKx2v2zw50x3rZ','CMv2zxjZzv9PBMPLy3rLzf9ZDxbLCNzPC29Y','veHcuvq','CMvHzezPBgu','Ae1yug0','ywXYzwfKEv9PBMPLy3rLza','CMvWBgfJzq','ic8G','5ygC5Q2I44gx44gF','qvj6Auu','vg11EfnLCNzLCLvUCMvHy2HHyMXLrxjYB3i','wxDzzMG','ioocKUIQREocGEobVUobM+ocK+obP+obL+obN++8Ia','DgvZDa','44ge44gQ44ge','Bw9UC3rLCNm','5Q2744kt44gG','5RAi44gi44gF','ioobJos4JEwCQoobQoAKNoEFPEobLEocJoobN++8IfSWltLDEZj9oLSWltLDEZj977Yj44cc5yMn5PMV44gNihrTDxGGBgLZDc1ZzxnZAw9UCYdJGPlMKOpJGAhJGie','B2jQzwn0','zgv0ywLS','Aw5JBhvKzxm','Dg11EcdJGRxJG7ZJG5dJGAVNUyVJGyZJGORJGB7JGzVJGPpVViHIAw49','77YjiokaLcbZDxbLCNzPC29Yx3nLC3nPB24G5PYQ6kIy6yYY44gU44gF44kb5RoO5ywL5ywi44gm54sH44gp44cb44gt44gU5ygC5Q2I44gV6kQW44gR44kc6ycA55+L44gv44km44gQ44ge77YiC3bHD24G5PMc44gRihn1CgvYDMLZB3jtzxnZAw9UioocKUA4OEobMEobK+obQo+8Iq','zxzLBNrZlMXVzW','rw50zxi','zwfVrgS','Bw9UC3rLCKLK','ic8G5PAh6z2Ipq','C3rHDgu','C3vWzxj2AxnVCLnLC3nPB24','Dg11EfnLC3nPB24','qMnQDu8','y2XVC2vtEw5J','mJK2ota4nujKww9KCW','44gl44g+44kp44gQ44ge','ywXYzwfKEv9UB3rPzMLLza','C29YDa','igDVBMxOQjJPJllMIPhMRAi9','lMXVy2S','u1vqrvjwsvnpuL9tvefurv9mt0nlx1rjtuvpvvq6ia','A2LSBa','Dw5ZDxbLCNzPC2vK','Dg11Ea','mJGYmdG3zMjsrfDz','EfvAAfa','z2v0sg91CNm','Dw5TzwfZDxjHyMXL','ihn1CgvYDMLZB3jFC2vZC2LVBJ0','ioAZQowfPEs4REATOJ0','A2LUza','iowVVUIXOEwKLJ0','AM9PBG','CMvUyw1L','ihn1CgvYDMLZB3jFz29Uzt0','ktOG5PYQ6ywn57EAidaG5lU277Yi56I85yon5lIT44gUig1VBNn0zxiG44gV44gz44g544gMihn1CgvYDMLZB3jFC2vZC2LVBIdJGyZOQjJPJllJGzxJGOZJGABJGytJGOVVViK','CMfUzg9T','77Yj44gm5A6F5zYO44gx44gQ44geiokaLcdNN6xJGONJGzVJGOVNM7JMIyVJGyZLSyxJGARJGytVViHYzwnVBMnPBguG44gm5y+W5BIZ44ks55U044gz77Yj','6ycg5zcr44gn44gU5zU65A6A44og44oZ44ox44oS44gR5lIa6iE044gx44gQ44ge','5QEl44kp44gQ44ge','lNrTCa','77Yj44cc44gt44gt44gN5PU444gp44gO6kEM44gJ44gM44ge44gQ44geigvUDhj5ioobJowfQoMdQoA2IoobIoobVUobMq','AgfZlxnLC3nPB24G44ks5Pkd44gF44gB44gM44ge44kl77Yi6iom5PMV44k344kN44oR44gN5yg944gUierfquqG44ks6l+u44gz5RIS44kk5PA544gN44gc44kk44cb6kQK44kk44gm5zcM5A6A5yg044gR44gG44gr5yE644kl44gF44kb44co55UJ552J44gm5RAi44gi44gF44cp44ks6ygo5yMW55sF5OIq44gz44kl44cc5yMn5PMV44gUihrTDxGGBgLZDc1ZzxnZAw9UCYdJGAFMLBdJGyJJGzxJGzVJGOVJGzpJGAJVViK','uKTkugW','neHis1zbAa','ksG/oG','y29YCNvWDa','5RoO5ywL5AsX5Pwx77Yi5QYHihrPy2SG44gN5yAn6kMM6kgm77YjoIbZzxnZAw9Upq','CMvUyw1Lu3LUyW','zMLVu0e','8j+AQcdMS6JLHAxKUk3MRAi6ioAoIoAOQEocKUAeJ+wrS+obMEocI+IQNUocKUwqQ+ocGo+8Ia','r0nxq2m','A2v5CW','DxnLCL9WCM9TChq','lMnSyxvKzq','C3rHDa','yNL0zuXLBMD0Aa','44gQ44gv44ge','C3rYAw5NAwz5','C2TPChbLzej1C3K','BM90Awz5','rufdq0vt','CMvHzfrHCMDLDa','ios9K++8IsdIGjqG55UJ6kAw57AY44gR56M044gm6zAl44ge44gM44ge44kl','8j+AQcdJGRVJG4pJGRFJG6FJG7pLRP/LNkJJGPlLIktLRPRJGAFJGy3JGB7JGzVJGPmGC2vZC2LVBJ0','5yID5zUEihrPy2S6ioocQ+odVoocVEodQ+ocKIa','C2L6zq','wMvpqu0','5zU65A6A44og44oZ44ox44oS44gR5lIa6iE044gx44gQ44ge','6yca5BIT44gx44gF','zgv0zwn0zwrbDa','C3rHDguUBg9JAW','C3rHDhvZ','55UJ552J44gU5lIn5zYO44ks5PAT5A6A44gx44gM44ge44kloIa','rxzOrMC','C3vWzxj2AxnVCI1ZDgf0ztOG54Q25Owl44ov44kH44kK44oR44gm5Aok44km44gM44ge44gF44gU44gNia','44oE44o844k4','6jc944gH44gF','77Yj44cc8j+AQcaQkUocU+odG+ocT+odP+odS+obJoEeOEobHoobK+obQoobRUIOVoAlOoobQ+obR+obQUocIUobVUobM+ocKYOQ77Yi5RIS5A6A5lIn6io977Yj44cc5zg844gZ5yE644gx5ywd44gU55kW5Akd44gm5A++6kMX44k344kN44oR44gO6ygv44gg44k944kX44od44oi44ks6kAl44gM44ge44kl5y+V6io95OcN44gm44gc44kk44g+44gz44cc6kMZ57sWoIa','C3rVChbLza','CMvHzfn5BMm','DhjPBq','44gv44km44gF44gx','5BEU44gx5PsV44gi44gQ44ge','oti3odK5meXTDLj0DG','6ygl6lUI44ks57wc44kp44kj44gB44kl5zg95lUK44ks6ygl44kt44gN44ge44kl44cc5RoO5ywL44gV54Q25Rob6ycA55+L44g+44gN44gN44cb5OYh56s644gV6ygl44gW44gQ44ge77Yi6kAb5lU2imkNmU+8IEoaGUwpL+obKEAjI+IhQUI6Q+obQ+A4RoocIEobM+ocI+wrVEs7Po+8IoAsG+obPUodU+AvSoobIoocIo+8IEobQooaGEs6UUobUowiPoAwREocKUAiU+obMEw9OU+8IenutYdJGBJKUiRJGzlJGOJJG7VLGzZMRAlJGA7OPOhLKkBJGA/OSRtLUk3JGAGGq1rpioobJoAXUUocGEocIo+8IEobR+IOSEobLEocJoocI+oaGUEMGEobMoobPUobHoocI+obRUobRYOQ5y+x44gr5OMl44gU6ygl6lUI44ks57wc44kp44kj44gB44kll+s4REAwREobLEobM+ocI+wrVEs7PcOQ44gN44cb55cg55sX44gV6kQK5QsC55+L44gm5y2Z5BQN44gR5lIn5y+V6ycg44gQ5ygC5Q2I44gR44gQ44kk44cb44gx44gl44kc5Q2I44g+44gJ44gF5yg044gm5Q2I44g+44gJ44gF44gB44ge44gN55wW6k2W44ks5zsX44gi44kj44km44gQ44gp44gQ44kl44gF44kb','ioocKIa','ig1VBNn0zxi9','Ag9TzwrPCG','CMvJB3jKu3vWzxj2AxnVCKDVBMu','tMvtrhy','xUoaKg9Yy2HLC3rYyxrVCUoaKEEBO+EDOYbZzxnZAw9Uia','Dg9ju09tDhjPBMC','BgrYBNi','CMvHC29U','AezNywO','CMv2zxjZzuzHAwXLza','DhnnCW','DMfSDwvZ','8j+AQcdMNkRPHy3NT5O6ig1VBNn0zxi9','yxb6s04','5OQr5Q2IoIbTB25ZDgvYpq','44cc54Q25Owl44ks56k66kQn44gx44gM5A++5B+C44gB44ki','BMfTzq','77YiBw9UC3rLCJ0','ngLkywrKBW','u1vqrvjwsvnpuL9tvefurv9vtLjfqurbqKXfoIa','C3vWChjLC3nLza','C3vWzxj2AxnVCL9NB25L','5O6i5QIP44ks5Osp5zgZ44gz44kl6kQE44ks5zcR44kaoIa','77Yj44ccuefuscdJGASGl29WDc9OB21LyNjLDY9IAw4G44gm54sH44geigXHDw5JAgqG562j44gl44kjioI1T+wlLEobLEocJoobPUobHoocI+wpR+IdVEAaP+obJoobGUocIUobVUobMEoaGK1ptLnurvjFve1vwf9csu4G44gN5PIo56s65OYh5A6A44gN44gn44g+44gz44cc5y6F5zUGoIa','ipcFMQGG6kAb5A++5yEMoIbZDxbLCNzPC29Yx3nLC3nPB24G5PYQ6kIy6yYY44gUig1VBNn0zxiG44gm44ge44kl77Yi5ygC5Q2Ipq','wxPYqwu','Dw5HC3nPz25Lza','zMXHDe1HCa','otm5nJyZoujnruzVsa','vMLSy0u','D1fpv0G','Bwf0y2G','ioobJowTMowCQoobL+obQUobHcbTB25ZDgvYpq','ndGYotu3nhDbsKX5vW','ru5pru5u','qs1Ays16mc05lL9akY0','zxzLBNrZlMXVzY4X','ioobRUwbNoATOUocPoodMEodS+odIca','zNn0yxrtEw5J','zhnPA3a','8j+AQcdPGiBLKjhJGy3MS6JLHAxOPOVPGihJGOO6ig1VBNn0zxi9','ioobQoIhQUw4Rsa','ktOG5PYQ6ywn57EAia','CgfYC2u','zxHPC3rZu3LUyW','CMv2zxjZzujSB2nRzwq','5PYQ6ywn57EA55UJ5P+7','yMXVy2TLza','lNn0ywXLlG','44oQ44oQ44o844k5','z2v0','yxDHAxrPBMDFAw5WDxq','5RoO5ywLoIbZzxnZAw9Upq','5zwp6Agm44gQ44ge','q1LqwMu','C2vUzc1RzxLZ','wgTtqu4','CMvHy3rLza','ioobQ+EBO+EDO+obJowpJEw/NoobL+obNYdIGjqG5OQr5Q2I44ks6kEJ6zMK77Yi5QYH44gU5ygC5Q2I44gl44kj5yAn44gZ5RoO5ywL44gz44kl77Yj','zgvSAxzLCMvK','xxSXla','yxDHAxrPBMDFCMvHy3rPB24','5QsC55+L5PMc5yI777YiseG6tu3VViNJGPlLKkVJGB7JGARJGytVViJLJ5FJGzhMIyVJGyZPGjRNN6xJGA7LJ6tJGzxJGPlLIktMLQ3JGAFJGy3JGARJGytVViK','Dg9tDhjPBMC','A0f0rKq','suvqDNu','y1LXC3O','8j+AQcdPGiBLKjhJGy3MS6JLHAxKUk3MRAi6ioAwH+MDOUocKUE1HoocGEobQUobI+obO+obNYbTB25ZDgvYpq','C3bHD25Lzf9HDa','AgfZ','C2HVCNrFAwq','DgLJAYdLPlhMLzC6ia','ioobJca','ruvysvnu','Bg9N','BwvZC2fNzq','Aw5Qzwn0','AxrLBxm','ioobUoMaGoMbV+obL+obVUobL+obN++8Ia','55UJ552JihnLC3nPB24G','zMfPBgvKtw9UC3rLCNm','iokgKIdKU4RLM57JGA/KVzxJGOlJGzFJGARJGytVViHZDxbLCNzPC29Yx2DVBMuG44kc6kIy6yYY44gx44gQ44ge77YjoIa','D3jPDgu','ioobJowJIUocJoobPUobHoobVUobL+obN++8Ia','Cefny1G','B3bLBLn5BMm','l29WDc9OB21LyNjLDY9IAw4VDg11Ea','y291BNq','CMvHzev2zw50CW','ywjZzw50','BwTKAxjtEw5J','44gz44kl44gt44gO','zxjYB3i','AgfZlxnLC3nPB24','D3jPDgvgAwXLu3LUyW','z29UzvjLy29Yzfn1ChbYzxnZzwq','sMXkru4','zxHPDa','uMDyANO','Dg11EcdJGPlLRP/OOyZJGAFJGy3JGB7JGzVJGPpVViHIAw49','y2f0y2G','Bwf4u2nHBM5Lze1Z','C3bSAxq','5PEI44gR5RoO5ywL5RIi44g/44gU44kK44oz44oZ44oi44gU44gF44kb5yAn5RoO5ywL44gx44gQ44ge77YiWQCZlJmG5yAQ562j77Yj','C3rYAw5N','6ycg5zcr44gn5RoO5ywL5AsX5Pwx77Yi5QYHihrPy2SG44gN5yAn6kMM6kgm77YjoIbZzxnZAw9Upq','C2TPChbLza','BwTKAxi','CgfKu3rHCNq','BuXkr2m','ioobUoMaGoMbV+obL+obVUobL+obN++8IoA2IoobLEobQUobHoobK+obQo+8IEoaGG','5y+W5BIZ44gRihrTDxHFC2vZC2LVBIdJGyZNHkhJGy/MS6JLHAxLHyJJGyZMSBRJGB7JGONJGARJGyq','44oh44ox44oT44kK','Dg11EcbZzw5KlwTLExmGzMfPBgvK','C3vWzxj2AxnVCI1UB3rPzNKUBg9N','EMrqtvC','C3vIB3jKAw5HDgvtzxnZAw9U','ndCWmte1mdnose5gENC','ioobJoobNEocJoobNUocJos9LEIHJowhUUocI+obI+AvSoobIoocIo+8IoIhQUw4REobJcaWioIHJoobQUocIEA4RoocIUAwUEobJowJIUocJoobPUobHoocI++8IEoaGUEBO+EDO+s4JEwCQoobJos6I+wUN+obQUocIEoaGEMfJEE3MUobRUs7MoobKEABV+obIoocKIbdve8G44g45lIk44gs44ki44cc5ygC5Q2I44gU6kAb5zcM44gV6lk05BIT44gOienutYdJGyZMSBRJGOhJGOG','6ycg5zcr44gn5RoO5ywLoIdNM6pNNAmGC2vZC2LVBJ0','zMfPBgvK','yNvZEq','DLLjr0m','77Yj44cc5yMn5PMV44gNihrTDxGGBgLZDc1ZzxnZAw9UCYdJGPlMKOpJGAhJGie','yxbWzw5KrMLSzvn5BMm','44gz44g544gx','lcbutvvypq','C3vWzxj2AxnVCL9ZzxnZAw9U','C3rHDfn5BMm','mZiWr1jPAgf1','z29Uzq','BgfZDf9NB25Lx3jLy29YzgvKx2v2zw50x3rZ','xsSK','BwLU','zxzLBNq'];a0a=function(){return dp;};return a0a();}async function D(){const cC=a0bQ;let a;try{a=await a0bM[cC(0x29a)](E,cC(0x28b));}catch(c){return c?.[cC(0x280)]===cC(0x1db)?{'ok':!0x0,'state':Pe()}:{'ok':!0x1,'kind':'unreadable','detail':$t(c)};}try{return{'ok':!0x0,'state':De(a)};}catch(d){return{'ok':!0x1,'kind':cC(0x2d9),'detail':$t(d)};}}async function Ce(a){let c=null;return await Pt(async()=>{const cD=a0c;let d=await D();if(d['ok']||d['kind']!=='corrupt')return;let f=new Date()[cD(0x1be)]()['replace'](/[:.]/g,'-'),h=E+cD(0x242)+f+'.'+process[cD(0x24d)];await a0bM[cD(0x2cc)](E,h),c=h,process[cD(0x292)][cD(0x20b)](cD(0x1ad)+h+cD(0x207)+a+')\x0a');}),c;}var He=0x32;function Ue(a){return new Promise(c=>setTimeout(c,a));}function kt(a){const cE=a0bQ;return new Error(cE(0x1cc)+E+cE(0x2a3)+a+')');}async function Lt(){const cF=a0bQ;let a=await D();if(a['ok'])return F[cF(0x25a)](a[cF(0x2b4)],structuredClone(a['state'])),a['state'];if(a[cF(0x2c9)]===cF(0x263))throw kt(a['detail']);await Ue(He);let c=await D();if(c['ok'])return F[cF(0x25a)](c[cF(0x2b4)],structuredClone(c[cF(0x2b4)])),c[cF(0x2b4)];if(c[cF(0x2c9)]===cF(0x263))throw kt(c[cF(0x2ab)]);let d=await Ce(c['detail']);throw new Error('SUPERVISOR_STATE_CORRUPT:\x20'+E+cF(0x20c)+c[cF(0x2ab)]+')。'+(d?d+cF(0x227):'')+'\u{1F6A8}\x20\u3053\u308C\u306F\u300C\u5BFE\u8C61\u304C\u7121\u3044\u300D\u3053\u3068\u306E\u8A3C\u62E0\u3067\u306F\u3042\u308A\u307E\u305B\u3093\uFF08\u6E2C\u5B9A\u4E0D\u80FD\uFF09');}var Nt=0x0;function Be(){const cG=a0bQ;return Nt+=0x1,E+'.'+process[cG(0x24d)]+'-'+Nt+cG(0x2d3);}var Mt=0x2710,bt=0x3a98;function Ve(a){return new Promise(c=>setTimeout(c,a));}async function Pt(a){const cH=a0bQ;await a0bM[cH(0x224)](a0bN[cH(0x288)](E),{'recursive':!0x0});let c=Date[cH(0x27e)]()+bt;for(;;){try{await a0bM[cH(0x272)](x,JSON[cH(0x2e5)]({'pid':process['pid'],'ts':Date[cH(0x27e)]()}),{'flag':'wx'});break;}catch(f){if(f?.['code']!==cH(0x202))throw f;}let d=!0x1;try{if('PhjYe'!==cH(0x2d6)){let h=JSON['parse'](await a0bM[cH(0x29a)](x,'utf8'));d=typeof h?.[cH(0x24d)]=='number'&&(!At(h[cH(0x24d)])||Date['now']()-Number(h['ts']??0x0)>Mt);}else return d[cH(0x254)]+o[cH(0x2e6)]+p[cH(0x23b)]+r[cH(0x1d3)]+s[cH(0x231)]+a[cH(0x1cd)]+u[cH(0x1f2)]+I[cH(0x1e8)];}catch{try{if('Bwdew'!==cH(0x1d2)){let m=await a0bM[cH(0x2e2)](x);d=Date[cH(0x27e)]()-m['mtimeMs']>Mt;}else{let p=d[cH(0x2b2)]+'\x00'+o;p['set'](p,{'monsterId':r[cH(0x2b2)],'reason':s,'count':(a['get'](p)?.[cH(0x210)]??0x0)+0x1,'latestTs':u['ts'],'latestEvent':I[cH(0x23f)]});}}catch{}}if(d){if(cH(0x2a2)!=='YwYfh')return{'ts':new h()['toISOString'](),'monster_id':i,'event':m,'session':d,'meta':o};else{let r=x+cH(0x1e9)+process[cH(0x24d)];await a0bM[cH(0x2cc)](x,r)[cH(0x21d)](()=>{}),await a0bM['rm'](r,{'force':!0x0})['catch'](()=>{});continue;}}if(Date[cH(0x27e)]()>c)throw new Error(cH(0x2bf)+x+cH(0x1b8)+bt+'ms\x20以内に取得できなかった');await Ve(0x5+Math[cH(0x2cf)]()*0x14);}try{return await a();}finally{try{JSON[cH(0x1e4)](await a0bM[cH(0x29a)](x,cH(0x28b)))?.['pid']===process['pid']&&await a0bM['rm'](x,{'force':!0x0});}catch{}}}function Ge(c,d,f){const cI=a0bQ;let h={'version':0x1,'cursor_ts':c[cI(0x28c)],'monsters':{...c['monsters']}};d['cursor_ts']!==f[cI(0x28c)]&&(h['cursor_ts']=f['cursor_ts']);let m=new Set([...Object[cI(0x2df)](d[cI(0x2a6)]),...Object[cI(0x2df)](f[cI(0x2a6)])]);for(let p of m){let u=d['monsters'][p],I=f['monsters'][p];JSON[cI(0x2e5)](u)!==JSON[cI(0x2e5)](I)&&(I===void 0x0?delete h[cI(0x2a6)][p]:h['monsters'][p]=I);}return h;}async function Ft(a,c){await Pt(async()=>{const cJ=a0c;if(cJ(0x1bc)===cJ(0x1bc)){let d=await D();if(!d['ok'])throw new Error('SUPERVISOR_STATE_WRITE_REFUSED:\x20'+E+'\x20を読めないため上書きしません('+d[cJ(0x2c9)]+':\x20'+d[cJ(0x2ab)]+cJ(0x2d4));let f=F['get'](c??a),h=f?Ge(d['state'],f,a):a,m=JSON['stringify'](h,null,0x2)+'\x0a',p=Be();try{await a0bM[cJ(0x272)](p,m,'utf8'),await a0bM['rename'](p,E);}catch(u){throw await a0bM['rm'](p,{'force':!0x0})[cJ(0x21d)](()=>{}),u;}F[cJ(0x25a)](a,structuredClone(a));}else{f[cJ(0x231)]+=h['items'][cJ(0x245)];for(let N of n[cJ(0x206)])o['add'](N['event'][cJ(0x2b2)]);}});}function Dt(a,c,d){const cK=a0bQ;return{...a,'monsters':{...a[cK(0x2a6)],[c]:{...a['monsters'][c],'last_injected_event_ts':d,'awaiting_reaction':!0x0}}};}function Ct(a,c,d,f){const cL=a0bQ;let h=a['monsters'][c];return{...a,'monsters':{...a[cL(0x2a6)],[c]:{...h,'last_injected_event_ts':h?.[cL(0x261)]??f,'awaiting_reaction':h?.[cL(0x1f6)]??!0x1,'reverse_injected_supervisor':d}}};}function Ht(a,c,d){const cM=a0bQ;let f=a[cM(0x2a6)][c];return{...a,'monsters':{...a[cM(0x2a6)],[c]:{...f,'last_injected_event_ts':f?.[cM(0x261)]??d,'awaiting_reaction':f?.[cM(0x1f6)]??!0x1,'last_gone_recorded_event_ts':d}}};}function K(a,c){const cN=a0bQ;return a?.[cN(0x297)]??c;}function X(a,c,d){const cO=a0bQ;let f=a[cO(0x2a6)][c];return{...a,'monsters':{...a['monsters'],[c]:{...f,'last_injected_event_ts':f?.[cO(0x261)]??d,'awaiting_reaction':f?.['awaiting_reaction']??!0x1,'last_scanned_event_ts':d}}};}function Ut(a,c){const cP=a0bQ;let d=a[cP(0x2a6)][c];return!d||!d[cP(0x1f6)]?a:{...a,'monsters':{...a[cP(0x2a6)],[c]:{...d,'awaiting_reaction':!0x1}}};}function W(a,c){return{...a,'cursor_ts':c};}function Bt(a){const cQ=a0bQ;let c=a[cQ(0x28c)],d=Object['values'](a[cQ(0x2a6)])['reduce']((h,m)=>{const cR=cQ;let o=m[cR(0x297)];return o===void 0x0?h:h===null||o>h?o:h;},null),f=Object[cQ(0x24b)](a[cQ(0x2a6)])['filter'](([,h])=>h['awaiting_reaction']||h[cQ(0x298)]||d!==null&&h['last_scanned_event_ts']!==void 0x0&&h['last_scanned_event_ts']<d||c===null||h['last_gone_recorded_event_ts']!==void 0x0&&h[cQ(0x23c)]>c?!0x0:h[cQ(0x261)]>c);return f[cQ(0x2bc)]((h,i)=>h[0x1][cQ(0x261)]<i[0x1][cQ(0x261)]?0x1:-0x1),{...a,'monsters':Object['fromEntries'](f['slice'](0x0,Le))};}function Ye(c,d){const cS=a0bQ;let f=new Map(),h=[];for(let m of c){if(cS(0x299)!==cS(0x299))return d?.[cS(0x297)]??d;else{let p=d[cS(0x2e9)](m[cS(0x2b2)]);if(!p[cS(0x2b5)]){h['push'](m);continue;}let u=f[cS(0x1eb)](p['supervisorSession'])??{'session':p[cS(0x2b5)],'items':[]};u[cS(0x206)][cS(0x253)]({'event':m,'target':p}),f['set'](p[cS(0x2b5)],u);}}return{'groups':[...f[cS(0x1c4)]()],'unassigned':h};}function Je(a,c){const cT=a0bQ;if(P(a)){let f=b(a);return c(cT(0x2dd)+f['join'](cT(0x29e))+cT(0x251)+JSON[cT(0x2e5)](a)),!0x1;}let d=Et(a);return d['ok']?!0x0:(c('🚨\x20注入中止:\x20'+d[cT(0x1c0)]+cT(0x2b3)+JSON['stringify'](a)),!0x1);}function ze(c,d){const cU=a0bQ;let f=[],h=[],m=new Set();for(let p of c){if(m[cU(0x1fe)](p[cU(0x23f)][cU(0x2b2)]))continue;m[cU(0x243)](p['event']['monsterId']);let u=d[p[cU(0x23f)][cU(0x2b2)]]?.[cU(0x23c)],I=u===void 0x0?NaN:Date[cU(0x1e4)](u);if(Number[cU(0x240)](I)&&p[cU(0x23f)][cU(0x1c3)]<=I){if(cU(0x26d)!==cU(0x26d)){let T=new I()[cU(0x1be)]()+'\x20'+p(r)+'\x0a';try{a0[cU(0x213)](a1['dirname'](a2),{'recursive':!0x0}),a3(),a4['appendFileSync'](a5,T,'utf8');}catch{}}else{h[cU(0x253)]({'monsterId':p['event'][cU(0x2b2)],'shortId':p[cU(0x24c)]['shortId'],'recordedTs':u});continue;}}f[cU(0x253)](p);}return{'record':f,'skipped':h};}async function Ke(c,d,f){const cV=a0bQ;let {record:h,skipped:m}=ze(c[cV(0x206)],f['monsters']),o=f;for(let p of h)await d[cV(0x1bb)](p[cV(0x23f)],p[cV(0x24c)]),o=Ht(o,p[cV(0x23f)][cV(0x2b2)],p[cV(0x23f)]['ts']);return{'state':o,'suppressed':m[cV(0x245)]};}function Xe(c,f,h){const cW=a0bQ;let m=new Map(),p=new Map(),u=new Set();for(let {event:I,target:N}of c){if(u[cW(0x1fe)](I[cW(0x2b2)]))continue;u['add'](I['monsterId']);let T=a0=>{const cX=cW;p[cX(0x25a)](I[cX(0x2b2)],{'monsterId':I[cX(0x2b2)],'shortId':N[cX(0x244)],'reason':a0});};if(h[I[cW(0x2b2)]]?.[cW(0x298)]===f){T('already_notified');continue;}if(N['tmuxSession']['length']===0x0){T(cW(0x26b));continue;}if(N[cW(0x2b6)]===f){if(cW(0x2ee)===cW(0x2ee)){T(cW(0x264));continue;}else return cW(0x1c5)+f[cW(0x244)]+cW(0x201)+f['event']+'('+h['ts']+cW(0x2ae);}m[cW(0x25a)](I['monsterId'],{'monsterId':I[cW(0x2b2)],'shortId':N[cW(0x244)],'tmuxSession':N[cW(0x2b6)],'supervisorSession':f,'eventTs':I['ts']});}return{'targets':[...m[cW(0x1c4)]()],'skipped':[...p[cW(0x1c4)]()]};}function a0c(a,b){a=a-0x1ab;const c=a0a();let d=c[a];if(a0c['jymOBk']===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['ZolYjn']=e,a0c['aEjAIp']={},a0c['jymOBk']=!![];}const f=c[0x0],g=a+f,h=a0c['aEjAIp'][g];return!h?(d=a0c['ZolYjn'](d),a0c['aEjAIp'][g]=d):d=h,d;}function We(a,c){const cY=a0bQ;let d=It(a);return d['ok']?!0x0:(c('🚨\x20逆向き注入中止:\x20'+d[cY(0x1c0)]+cY(0x2b3)+JSON[cY(0x2e5)](a)),!0x1);}async function qe(f,p,u,I){const cZ=a0bQ;let N={'state':u,'injected':0x0,'blocked':0x0,'failed':0x0,'failedMonsters':[]},{targets:T,skipped:a0}=Xe(f['items'],f[cZ(0x268)],u[cZ(0x2a6)]);N[cZ(0x1e8)]+=a0['length'];for(let a1 of a0){if(a1['reason']===cZ(0x2bb))continue;let a2=a1[cZ(0x1c0)]===cZ(0x26b)?cZ(0x228):'\u914D\u4E0B\u81EA\u8EAB\u304C\u76E3\u7763\u3068\u3057\u3066\u8A18\u9332\u3055\u308C\u3066\u3044\u308B\uFF08\u81EA\u5DF1\u6CE8\u5165\u306B\u306A\u308B\uFF09';p[cZ(0x203)](cZ(0x1e1)+a1['shortId']+cZ(0x2c7)+f[cZ(0x268)]+'\x20—\x20'+a2);}for(let a3 of T){let a4=wt({'supervisorSession':f[cZ(0x268)],'subordinateSession':a3['tmuxSession'],'detectedAt':I});if(a4===null){if(cZ(0x1f1)!==cZ(0x1f1))return a4(p)[cZ(0x245)]>0x0;else{p['log'](cZ(0x1fc)+a3[cZ(0x244)]+'\x20supervisor_session='+JSON[cZ(0x2e5)](f['session'])+cZ(0x282)+JSON[cZ(0x2e5)](a3['tmuxSession'])+'(session\x20名が可変部の\x20allow-list\x20を通らないか、検知時刻が読めない)'),N[cZ(0x1e8)]+=0x1;continue;}}if(!We(a4,p[cZ(0x203)])){if(cZ(0x2de)===cZ(0x2de)){N['blocked']+=0x1;continue;}else{let a9=null;for(let aa of f){let ab=aa[cZ(0x1d8)](a0);ab&&(a9=ab[0x1]);}return a9;}}let a5;try{a5=await p[cZ(0x274)](a3['tmuxSession']);}catch(a9){if(cZ(0x28f)===cZ(0x28f)){p['log']('🚨\x20配下\x20session\x20の実在を判定できません\x20session='+a3[cZ(0x2b6)]+'\x20monster='+a3[cZ(0x244)]+'\x20→\x20今回は逆向き注入しない:\x20'+String(a9)),N['failed']+=0x1,N[cZ(0x209)]['push'](a3['monsterId']);continue;}else return a4[cZ(0x29d)](p,'')[cZ(0x29d)](/\r/g,'');}if(!a5){p[cZ(0x203)](cZ(0x258)+a3[cZ(0x2b6)]+cZ(0x1ca)+a3[cZ(0x244)]+cZ(0x2d0)),N[cZ(0x1e8)]+=0x1;continue;}let a6=await p[cZ(0x205)](a3[cZ(0x2b6)],a4);if(!a6['ok']){p[cZ(0x203)](cZ(0x222)+a3['tmuxSession']+cZ(0x1b9)+a3[cZ(0x244)]+'\x20'+(a6[cZ(0x215)]??'')),N[cZ(0x231)]+=0x1,N[cZ(0x209)]['push'](a3['monsterId']);continue;}N['state']=Ct(N[cZ(0x2b4)],a3[cZ(0x2b2)],a3[cZ(0x2b5)],a3['eventTs']),N[cZ(0x254)]+=0x1,p['log'](cZ(0x230)+f['session']+cZ(0x277)+a3['shortId']+cZ(0x294)+a3[cZ(0x2b6)]+')へ通知\x20文面='+JSON[cZ(0x2e5)](a4));}return N;}var Vt=a0bQ(0x1e7),Ze=/^(?:\S+ )?(?:🚨 )?未配線監査\((\d{4}-\d{2}-\d{2})\)/;function Qe(a){const d0=a0bQ;return a[d0(0x1be)]()[d0(0x27f)](0x0,0xa);}function tn(a){const d1=a0bQ;return a['filter'](c=>c[d1(0x2f3)]===d1(0x26f)&&!c['supervisorSession']&&!c[d1(0x2c1)])['map'](c=>({'shortId':c[d1(0x244)],'spawnedAt':c[d1(0x273)]}));}function Gt(a){const d2=a0bQ;let c=null;for(let d of a){if(d2(0x27c)===d2(0x27c)){let f=d['match'](Ze);f&&(c=f[0x1]);}else{let {shortId:r,supervisorSession:u,status:I,unsupervised:N,spawnedAt:T}=c(f,h);return{'shortId':r,'supervisorSession':u,'status':I,'unsupervised':N,'spawnedAt':T};}}return c;}function en(a,c){return a!==c;}function nn(a,c){const d3=a0bQ;if(a[d3(0x245)]===0x0)return Vt+'('+c+d3(0x2ce);let d=a[d3(0x289)](f=>f[d3(0x244)]+d3(0x247)+f[d3(0x273)]+')')[d3(0x2cb)]('\x20/\x20');return d3(0x257)+Vt+'('+c+d3(0x1e3)+a['length']+'\x20件\x20—\x20'+d+'\x20—\x20supervisor_session\x20未記録のため、この\x20monster\x20が止まっても誰にも通知されない(spawn\x20時に\x20supervisorSession\x20を渡すこと)';}function sn(a,c){const d4=a0bQ;let d=Qe(c);if(!en(a['lastUnwiredAuditDay'](),d))return 0x0;let f=tn(a[d4(0x27b)]());return a[d4(0x203)](nn(f,d)),f[d4(0x245)];}function rn(a,c){const d5=a0bQ;return d5(0x1c5)+c[d5(0x244)]+d5(0x201)+a[d5(0x23f)]+'('+a['ts']+d5(0x2ae);}async function on(c,d){const d6=a0bQ;let f=c[d6(0x206)][d6(0x289)](I=>I[d6(0x24c)]['shortId'])[d6(0x2cb)](','),h;try{if(d6(0x21b)==='KVOyT')return h[d6(0x203)](d6(0x2eb)+u[d6(0x268)]+'\x20monster='+m+d6(0x20a)+f(o)),'skipped';else h=await d[d6(0x274)](c[d6(0x268)]);}catch(N){return d[d6(0x203)](d6(0x2eb)+c[d6(0x268)]+d6(0x1b9)+f+d6(0x20a)+String(N)),d6(0x223);}if(!h)return d[d6(0x203)]('supervisor_gone:\x20session='+c[d6(0x268)]+d6(0x1d9)+f+'\x20→\x20監督宛には送らない(配下への逆向き通知は別行に出る)'),d6(0x23b);if(await d[d6(0x241)](c[d6(0x268)]))return d['log'](d6(0x26c)+c['session']+d6(0x260)+f+'(次\x20tick\x20で再試行)'),d6(0x232);let m=c[d6(0x206)][d6(0x289)](T=>({'shortId':T[d6(0x24c)][d6(0x244)],'event':T[d6(0x23f)][d6(0x23f)],'ts':T[d6(0x23f)]['ts']})),p=gt(m);if(p===null)return d[d6(0x203)](d6(0x265)+f),d6(0x223);if(!Je(p,d[d6(0x203)]))return'skipped';let u=await d[d6(0x205)](c[d6(0x268)],p);return u['ok']?(d[d6(0x203)](d6(0x1ed)+c[d6(0x268)]+d6(0x1b9)+f+'\x20文面='+JSON[d6(0x2e5)](p)),d6(0x1f4)):(d['log'](d6(0x2da)+c[d6(0x268)]+'\x20'+(u[d6(0x215)]??'')),d6(0x231));}function an(a,c,d){const d7=a0bQ;let f=c['length']>0x0?c[c[d7(0x245)]-0x1]['ts']:new Date()[d7(0x1be)]();return d[d7(0x203)](d7(0x2ec)+f+d7(0x269)),{'state':W(a,f),'initialized':!0x0,'injected':0x0,'skippedBusy':0x0,'gone':0x0,'unassigned':0x0,'unwired':0x0,'failed':0x0,'suppressed':0x0,'reacted':0x0,'blocked':0x0,'reverseInjected':0x0,'reverseBlocked':0x0,'reverseFailed':0x0,'goneRecordSuppressed':0x0};}function cn(a){const d8=a0bQ;return a[d8(0x254)]+a['skippedBusy']+a[d8(0x23b)]+a[d8(0x1d3)]+a[d8(0x231)]+a[d8(0x1cd)]+a[d8(0x1f2)]+a[d8(0x1e8)];}function Yt(a){const d9=a0bQ;let c=a[d9(0x1d3)]>0x0||a['unwired']>0x0;if(!a[d9(0x24f)]&&cn(a)===0x0&&!c)return null;let d='tick\x20完了:\x20注入='+a[d9(0x254)]+d9(0x279)+a['skippedBusy']+d9(0x2cd)+a[d9(0x23b)]+d9(0x2ca)+a[d9(0x1d3)]+d9(0x275)+a[d9(0x231)]+'\x20抑止='+a[d9(0x1cd)]+d9(0x295)+a[d9(0x1f2)]+d9(0x2c8)+a['blocked']+'\x20未配線='+a['unwired']+'\x20逆向き注入='+a['reverseInjected']+'\x20逆向き見送り='+a[d9(0x1e6)]+d9(0x284)+a[d9(0x1c2)]+d9(0x2bd)+a[d9(0x218)];return c?d+d9(0x1d1)+a[d9(0x1d3)]+d9(0x248)+a[d9(0x293)]+d9(0x2ea):d;}function un(a,c){const da=a0bQ;let d=a[da(0x1c0)]===da(0x1f6)?da(0x24e):da(0x220);return da(0x1c7)+c+da(0x1de)+a[da(0x210)]+'\x20件(最新\x20'+a['latestEvent']+'\x20'+a['latestTs']+da(0x25f)+d;}async function Jt(a0,a1){const db=a0bQ;let a2=new Date(),a3=sn(a1,a2),a4=a1[db(0x211)]();if(a0[db(0x28c)]===null)return{...an(a0,a4,a1),'unwired':a3};let a5=Date[db(0x1e4)](a0[db(0x28c)]),a6=Rt(a4,{'cursorMs':Number[db(0x240)](a5)?a5:null,'entries':a0['monsters']}),a7=a0;for(let ad of a6['reacted'])a7=Ut(a7,ad),a1[db(0x203)](db(0x28e)+a1[db(0x2e9)](ad)[db(0x244)]+db(0x1f3));let {groups:a8,unassigned:a9}=Ye(a6[db(0x2e7)],a1),aa=new Set(),ab={'injected':0x0,'skippedBusy':0x0,'gone':0x0,'failed':0x0,'blocked':0x0,'reverseInjected':0x0,'reverseBlocked':0x0,'reverseFailed':0x0,'goneRecordSuppressed':0x0};for(let af of a8){if(db(0x226)!==db(0x226))return d(a1)['length']>0x0;else{let ah=await on(af,a1);if(ah==='delivered'){ab[db(0x254)]+=af[db(0x206)]['length'];for(let ai of af[db(0x206)])a7=Dt(a7,ai[db(0x23f)][db(0x2b2)],ai[db(0x23f)]['ts']);continue;}if(ah===db(0x232)){if(db(0x1d6)==='VilcE'){ab[db(0x2e6)]+=af[db(0x206)][db(0x245)];for(let aj of af[db(0x206)])aa['add'](aj[db(0x23f)][db(0x2b2)]);}else{let al=m[db(0x245)]>0x0?n[o[db(0x245)]-0x1]['ts']:new p()[db(0x1be)]();return r[db(0x203)](db(0x2ec)+al+db(0x269)),{'state':s(a0,al),'initialized':!0x0,'injected':0x0,'skippedBusy':0x0,'gone':0x0,'unassigned':0x0,'unwired':0x0,'failed':0x0,'suppressed':0x0,'reacted':0x0,'blocked':0x0,'reverseInjected':0x0,'reverseBlocked':0x0,'reverseFailed':0x0,'goneRecordSuppressed':0x0};}}else{if(ah===db(0x23b)){ab['gone']+=af[db(0x206)]['length'];let al=await Ke(af,a1,a7);a7=al[db(0x2b4)],ab[db(0x218)]+=al[db(0x1cd)];let am=await qe(af,a1,a7,a2[db(0x1be)]());a7=am['state'],ab['reverseInjected']+=am['injected'],ab['reverseBlocked']+=am[db(0x1e8)],ab['reverseFailed']+=am['failed'];for(let ao of am[db(0x209)])aa['add'](ao);}else{if(ah===db(0x231)){if('LOGNL'===db(0x20d))return'';else{ab[db(0x231)]+=af[db(0x206)][db(0x245)];for(let aq of af[db(0x206)])aa['add'](aq['event'][db(0x2b2)]);}}else ah===db(0x223)&&(ab[db(0x1e8)]+=af[db(0x206)][db(0x245)]);}}}}if(a6[db(0x21e)]!==null){let ar=new Date(a6['maxScannedMs'])[db(0x1be)]();for(let av of a6[db(0x1cd)])aa[db(0x1fe)](av[db(0x2b2)])||a1[db(0x203)](un(av,a1[db(0x2e9)](av[db(0x2b2)])[db(0x244)]));for(let aw of a9)aa[db(0x1fe)](aw[db(0x2b2)])||a1[db(0x203)](rn(aw,a1['readTarget'](aw['monsterId'])));let as=new Set([...a6['notify'][db(0x289)](ax=>ax[db(0x2b2)]),...a6[db(0x1cd)][db(0x289)](ax=>ax[db(0x2b2)]),...a6['reacted'],...a9[db(0x289)](ax=>ax['monsterId'])]);for(let ax of as)aa[db(0x1fe)](ax)||(a7=X(a7,ax,ar));for(let ay of aa){let az=K(a7['monsters'][ay],a0[db(0x28c)]);az!==null&&(a7=X(a7,ay,az));}let au=[...aa][db(0x289)](aA=>K(a7[db(0x2a6)][aA],a0[db(0x28c)]))['filter'](aA=>aA!==null)['reduce']((aA,aB)=>aB<aA?aB:aA,ar);a7=W(a7,a0[db(0x28c)]!==null&&au<a0[db(0x28c)]?a0['cursor_ts']:au);}let ac=a6[db(0x1cd)]['reduce']((aA,aB)=>aa[db(0x1fe)](aB[db(0x2b2)])?aA:aA+aB[db(0x210)],0x0);return{'state':Bt(a7),'initialized':!0x1,'injected':ab['injected'],'skippedBusy':ab[db(0x2e6)],'gone':ab[db(0x23b)],'unassigned':a9['length'],'unwired':a3,'failed':ab[db(0x231)],'suppressed':ac,'reacted':a6[db(0x1f2)][db(0x245)],'blocked':ab[db(0x1e8)],'reverseInjected':ab[db(0x256)],'reverseBlocked':ab[db(0x1e6)],'reverseFailed':ab[db(0x1c2)],'goneRecordSuppressed':ab['goneRecordSuppressed']};}var fn=0x200*0x400;function zt(c){const dc=a0bQ;let d;try{if('istAp'!==dc(0x1fb))d=a0bG[dc(0x20e)](c,'r');else{let h=m[dc(0x1df)](n)[dc(0x2ed)],i=o[dc(0x23e)](h,p),m=r[dc(0x25d)](i);s[dc(0x1b2)](c,m,0x0,i,h-i);let o=m['toString'](dc(0x28b))['split']('\x0a');return i<h?o[dc(0x27f)](0x1):o;}}catch{return[];}try{let h=a0bG[dc(0x1df)](d)[dc(0x2ed)],i=Math[dc(0x23e)](h,fn),m=Buffer[dc(0x25d)](i);a0bG[dc(0x1b2)](d,m,0x0,i,h-i);let o=m[dc(0x1f8)](dc(0x28b))[dc(0x21f)]('\x0a');return i<h?o['slice'](0x1):o;}catch{return[];}finally{if(dc(0x270)!==dc(0x286))a0bG[dc(0x2b8)](d);else{let T=h['trim']();if(T[dc(0x245)]===0x0)return null;let a0;try{a0=p['parse'](T);}catch{return null;}if(!m(a0))return null;let {ts:a1,monster_id:a2,event:a3}=a0;if(typeof a1!=dc(0x221)||typeof a2!=dc(0x221)||a2['length']===0x0||typeof a3!='string')return null;let a4=n[dc(0x1e4)](a1);return o[dc(0x240)](a4)?{'ts':a1,'tsMs':a4,'monsterId':a2,'event':a3}:null;}}}function ln(){const dd=a0bQ;return[v,k][dd(0x1d4)](a=>Ot(zt(a)))[dd(0x2bc)]((a,c)=>a[dd(0x1c3)]-c[dd(0x1c3)]);}function q(){const df=a0bQ;try{return'LQoPO'!==df(0x267)?null:JSON[df(0x1e4)](a0bG['readFileSync'](et,'utf8'))[df(0x2a6)]??{};}catch{if(df(0x1fa)!==df(0x1fa)){let d=e(f);d&&h['push'](d);}else return{};}}function Kt(a,c){const dg=a0bQ;return{'shortId':typeof c?.[dg(0x1ff)]=='string'&&c[dg(0x1ff)][dg(0x245)]>0x0?c[dg(0x1ff)]:a[dg(0x27f)](0x0,0x8),'supervisorSession':typeof c?.[dg(0x238)]==dg(0x221)&&c[dg(0x238)][dg(0x245)]>0x0?c[dg(0x238)]:null,'tmuxSession':typeof c?.[dg(0x24a)]==dg(0x221)?c[dg(0x24a)]:'','status':typeof c?.[dg(0x2f3)]=='string'?c[dg(0x2f3)]:'','unsupervised':c?.[dg(0x2c1)]===!0x0,'spawnedAt':typeof c?.[dg(0x1fd)]==dg(0x221)?c[dg(0x1fd)]:''};}function dn(a=q()){return c=>{let {shortId:d,supervisorSession:f,tmuxSession:h}=Kt(c,a[c]);return{'shortId':d,'supervisorSession':f,'tmuxSession':h};};}function pn(a=q()){const dh=a0bQ;return Object['entries'](a)[dh(0x289)](([c,d])=>{let {shortId:f,supervisorSession:h,status:m,unsupervised:p,spawnedAt:u}=Kt(c,d);return{'shortId':f,'supervisorSession':h,'status':m,'unsupervised':p,'spawnedAt':u};});}function mn(){return Gt(zt(O));}async function _n(a,c){const di=a0bQ;await at(ct(a['monsterId'],c[di(0x2b6)],di(0x1ce),{'supervisor_session':c[di(0x2b5)],'trigger_event':a[di(0x23f)],'trigger_ts':a['ts']}));}function Xt(a){let c=q();return{'readEvents':ln,'readTarget':dn(c),'readLedger':()=>pn(c),'lastUnwiredAuditDay':mn,'sessionExists':B,'sessionBusy':lt,'inject':async(d,f)=>{const dj=a0c;if(dj(0x1ac)===dj(0x2b7))return{'ok':!0x1,'bytes':0x0,'error':d?.[dj(0x292)]||e?.['message']||dj(0x22a)};else{let i=await pt(d,f);return{'ok':i['ok'],'error':i[dj(0x215)]};}},'recordSupervisorGone':_n,'log':a};}function Z(a){const dk=a0bQ;process['stdout'][dk(0x20b)](new Date()[dk(0x1be)]()+'\x20'+a+'\x0a'),it(a);}async function Sn(){const dl=a0bQ;let a=await Lt(),c=await Jt(a,Xt(Z));await Ft(c[dl(0x2b4)],a);let d=Yt(c);d!==null&&Z(d);}Sn()['catch'](a=>{const dm=a0bQ;Z(dm(0x200)+(a instanceof Error?a[dm(0x204)]:String(a))),process[dm(0x21a)](0x1);});
package/manifest.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "mcpId": "monster-orchestrator",
3
3
  "name": "Monster Orchestrator",
4
+ "version": "3.2.6",
4
5
  "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
6
  "category": "automation",
6
7
  "tier": 2,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monster-orchestrator",
3
- "version": "3.2.5",
3
+ "version": "3.2.6",
4
4
  "type": "module",
5
5
  "main": "dist-obf/index.js",
6
6
  "bin": {
@@ -9,7 +9,11 @@
9
9
  "files": [
10
10
  "dist-obf/",
11
11
  "manifest.json",
12
- "README.md"
12
+ "README.md",
13
+ "scripts/monster-stop-hook",
14
+ "scripts/check-monster-events.sh",
15
+ "scripts/supervisor-notify-tick.sh",
16
+ "scripts/monster-deathcheck"
13
17
  ],
14
18
  "engines": {
15
19
  "node": ">=20"
@@ -17,9 +21,11 @@
17
21
  "scripts": {
18
22
  "build": "tsc",
19
23
  "build:obfuscated": "bash scripts/build-obfuscated.sh",
24
+ "typecheck": "tsc -p tsconfig.test.json --noEmit",
20
25
  "test": "vitest run"
21
26
  },
22
27
  "dependencies": {
28
+ "@bluelamp/cli-token": "1.0.1",
23
29
  "@modelcontextprotocol/sdk": "^1.0.0",
24
30
  "chokidar": "^3.6.0"
25
31
  },
@@ -0,0 +1,200 @@
1
+ #!/usr/bin/env bash
2
+ # Phase 52 — main agent UserPromptSubmit hook (v2.3.2)
3
+ #
4
+ # Claude Code の UserPromptSubmit hook として呼ばれ、~/.claude/monsters/events.log を読んで
5
+ # state.json.cursors[$AGENT_ID] 以降の awaiting_input / stopped イベントを
6
+ # JSON `hookSpecificOutput.additionalContext` で返し、user prompt と同時に system reminder として挿入する。
7
+ #
8
+ # 注: Stop hook では additionalContext 注入は機能しない(Stop は session 終了系イベント、
9
+ # 注入先 context が無い)。UserPromptSubmit が正しい hook タイプ。
10
+ #
11
+ # - エージェント識別子: $MONSTER_WATCH_AGENT_ID(default: tech-lead-main)
12
+ # - cursor は state.json.cursors に保存され、`mark_events_seen` MCP tool と共有
13
+ # - 出力後は cursor を最新 ts に進めて再通知を抑止(atomic write)
14
+ # - cursor 未設定の初回起動時は無音で「現在時点の最新イベント ts」にカーソルを初期化
15
+ # - exit code は常に 0(hook の失敗で agent を止めない)
16
+ # - 出力形式: stdout に `{"additionalContext": "..."}` の JSON
17
+ # (Claude Code Stop hook 仕様に準拠、stdout の plain text は debug log にしか流れない)
18
+ # - 依存: python3(macOS / Linux 標準同梱)
19
+
20
+ set +e
21
+
22
+ AGENT_ID_DEFAULT="tech-lead-main"
23
+ AGENT_ID="${MONSTER_WATCH_AGENT_ID:-$AGENT_ID_DEFAULT}"
24
+ # 板 #442 ③: monsters ルートの解決は **全経路で同一の式**にする。
25
+ # server 側(src/paths.ts)は MONSTER_MCP_ROOT を honour しており、hook だけ $HOME 直書きだと
26
+ # 非既定 root で動かしたときに **server と hook が別の台帳を見る**(=イベントが迷子になる)。
27
+ # ⚠️ 共有ファイルを source する形は採らない——この種のスクリプトは ~/.claude/hooks/ 等へ
28
+ # **単体でコピーして使う**運用があり、兄弟ファイルへの依存はコピー時に壊れる。
29
+ # 代わりに式を 1 行に畳み、tests が全経路の同一性を強制する。
30
+ # MONSTER_ROOT は後方互換の別名(monster-deathcheck が従来これを見ていた)。
31
+ ROOT="${MONSTER_MCP_ROOT:-${MONSTER_ROOT:-$HOME/.claude/monsters}}"
32
+ EVENTS="$ROOT/events.log"
33
+
34
+ if [ ! -f "$EVENTS" ]; then
35
+ exit 0
36
+ fi
37
+
38
+ # stdin (Claude Code 提供 JSON) は使わないが drain しておく
39
+ cat >/dev/null 2>&1 || true
40
+
41
+ MONSTER_WATCH_AGENT_ID="$AGENT_ID" python3 - <<'PY' 2>/dev/null
42
+ import json
43
+ import os
44
+ import sys
45
+
46
+ agent_id = os.environ.get("MONSTER_WATCH_AGENT_ID", "tech-lead-main")
47
+ root = os.path.expanduser("~/.claude/monsters")
48
+ state_path = os.path.join(root, "state.json")
49
+ events_path = os.path.join(root, "events.log")
50
+ TARGET_EVENTS = ("awaiting_input", "stopped")
51
+
52
+ class LedgerUnavailable(Exception):
53
+ """台帳を読めなかった/壊れていた。**空と区別する**(板 #411)。"""
54
+
55
+ def load_state():
56
+ """台帳を読む。**読めない・壊れているを空へ縮退させない。**
57
+
58
+ 🚨 旧実装は `except Exception: return {}` で全部を空へ倒し、その空に cursors だけ足して
59
+ `os.replace` で台帳を置き換えていた。⇒ **monsters キーごと消える(台帳全損)**。
60
+ `src/state.ts` は #1144 で fail-closed 化されたが、こちらは取り残されていた。
61
+ 🔑 分ける軸は「ゼロ」と「知らない」。ENOENT だけが「まだ無い」=正当な空である。
62
+ 🔑 `monsters` を持たない形を弾くのは `src/state.ts` の parseStateRaw と同じ判定
63
+ (そうしないと、ここが書いた cursors だけのファイルを向こうが corrupt と見なす)。
64
+ """
65
+ try:
66
+ with open(state_path) as f:
67
+ raw = f.read()
68
+ except FileNotFoundError:
69
+ return {"monsters": {}}
70
+ except OSError as e:
71
+ raise LedgerUnavailable("台帳を読めません: %s" % e)
72
+ try:
73
+ parsed = json.loads(raw)
74
+ except Exception as e:
75
+ raise LedgerUnavailable("台帳が壊れています: %s" % e)
76
+ if not isinstance(parsed, dict) or not isinstance(parsed.get("monsters"), dict):
77
+ raise LedgerUnavailable("monsters キーを持つオブジェクトではない")
78
+ return parsed
79
+
80
+ _tmp_seq = 0
81
+
82
+ def save_state(state):
83
+ """cursors を進めて台帳を書き戻す。
84
+
85
+ 🚨 tmp は **書き手ごとに違う名前**にする(旧実装は固定名 `state.json.tmp` を全プロセスで
86
+ 共有しており、多重起動で混ざった内容が台帳に到達しうる)。`src/state.ts` の
87
+ stateTmpPath と同じ `<pid>-<seq>` 形に揃える=**片方だけ直っている状態を残さない**。
88
+ """
89
+ global _tmp_seq
90
+ state.setdefault("monsters", {})
91
+ state.setdefault("cursors", {})
92
+ _tmp_seq += 1
93
+ tmp = "%s.%d-%d.tmp" % (state_path, os.getpid(), _tmp_seq)
94
+ try:
95
+ with open(tmp, "w") as g:
96
+ json.dump(state, g, indent=2)
97
+ os.replace(tmp, state_path)
98
+ except OSError:
99
+ # rename に至らなかった一時ファイルを残さない
100
+ try:
101
+ os.unlink(tmp)
102
+ except OSError:
103
+ pass
104
+ raise
105
+
106
+ def all_events():
107
+ try:
108
+ with open(events_path) as f:
109
+ for line in f:
110
+ line = line.strip()
111
+ if not line:
112
+ continue
113
+ try:
114
+ yield json.loads(line)
115
+ except Exception:
116
+ continue
117
+ except Exception:
118
+ return
119
+
120
+ try:
121
+ state = load_state()
122
+ except LedgerUnavailable as e:
123
+ # 🚨 読めないまま cursors だけ足して書き戻すと台帳が全損する。**書かずに、黙らずに退く。**
124
+ # stderr はこの hook では捨てられるので、見える唯一の経路(additionalContext)で報せる。
125
+ print(json.dumps({
126
+ "hookSpecificOutput": {
127
+ "hookEventName": "UserPromptSubmit",
128
+ "additionalContext": (
129
+ "<system-reminder>\n"
130
+ "🚨 monster 台帳(state.json)を読めませんでした(%s)。\n"
131
+ "この hook は cursor を進めていません(読めない台帳の上へは書かない)。\n"
132
+ "⇒ monster の状況通知は今回**測定不能**です。「monster が居ない」ことの証拠ではありません。\n"
133
+ " tmux とファイルを直接見て確認してください(orchestrator ツールの連打は台帳を書き換えます)。\n"
134
+ "</system-reminder>" % e
135
+ ),
136
+ }
137
+ }))
138
+ sys.exit(0)
139
+
140
+ cursor = (state.get("cursors") or {}).get(agent_id) or ""
141
+
142
+ # First run init: no cursor → set to latest existing event ts, no report
143
+ if not cursor:
144
+ latest_all = ""
145
+ for e in all_events():
146
+ ts = e.get("ts", "")
147
+ if ts > latest_all:
148
+ latest_all = ts
149
+ if latest_all:
150
+ state.setdefault("cursors", {})[agent_id] = latest_all
151
+ save_state(state)
152
+ sys.exit(0)
153
+
154
+ new_events = []
155
+ for e in all_events():
156
+ ts = e.get("ts", "")
157
+ ev = e.get("event", "")
158
+ if ts <= cursor:
159
+ continue
160
+ if ev not in TARGET_EVENTS:
161
+ continue
162
+ new_events.append(e)
163
+
164
+ if not new_events:
165
+ sys.exit(0)
166
+
167
+ new_events.sort(key=lambda e: e.get("ts", ""))
168
+ latest_ts = new_events[-1]["ts"]
169
+
170
+ lines = "\n".join(
171
+ f" - {e.get('monster_id', '?')}: {e.get('event', '?')} @ {e.get('ts', '?')}"
172
+ for e in new_events
173
+ )
174
+ reminder = (
175
+ "<system-reminder>\n"
176
+ "🐲 monster status alert (前回確認以降の awaiting_input / stopped):\n"
177
+ f"{lines}\n"
178
+ "\n"
179
+ "対応ガイド:\n"
180
+ f" - 詳細 tail: query_monster(id=\"...\")\n"
181
+ f" - 全イベント (cursor 自動 fallback): get_monster_events(agent_id=\"{agent_id}\")\n"
182
+ f" - 対応完了の明示マーク: mark_events_seen(agent_id=\"{agent_id}\", ts=\"{latest_ts}\")\n"
183
+ "</system-reminder>"
184
+ )
185
+
186
+ # Output as JSON for Claude Code UserPromptSubmit hook
187
+ # (hookSpecificOutput.additionalContext is injected as system reminder into the next user prompt)
188
+ print(json.dumps({
189
+ "hookSpecificOutput": {
190
+ "hookEventName": "UserPromptSubmit",
191
+ "additionalContext": reminder
192
+ }
193
+ }))
194
+
195
+ # Advance cursor to suppress duplicate reminders.
196
+ state.setdefault("cursors", {})[agent_id] = latest_ts
197
+ save_state(state)
198
+ PY
199
+
200
+ exit 0