monster-orchestrator 3.1.0 → 3.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist-obf/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const a0bq=a0c;(function(a,c){const bp=a0c,d=a();while(!![]){try{const e=parseInt(bp(0x172))/0x1+-parseInt(bp(0x1c9))/0x2+parseInt(bp(0xca))/0x3*(parseInt(bp(0x10a))/0x4)+-parseInt(bp(0xb8))/0x5*(-parseInt(bp(0x166))/0x6)+parseInt(bp(0x125))/0x7+parseInt(bp(0x19e))/0x8+-parseInt(bp(0xc9))/0x9*(parseInt(bp(0x118))/0xa);if(e===c)break;else d['push'](d['shift']());}catch(h){d['push'](d['shift']());}}}(a0a,0xe8cc7));import{Server as a0aN}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0aO}from'@modelcontextprotocol/sdk/server/stdio.js';import{CallToolRequestSchema as a0aP,ListToolsRequestSchema as a0aQ}from'@modelcontextprotocol/sdk/types.js';import*as a0aR from'node:fs';function a0a(){const d4=['r2fszxK','Aw52ywXPzcbMAwXLigzVCM1HDa','svnpidG2mdeG5PMc5yI744cc44gt44gU5PMc5yI75lUL6zMn44gU44kK44oz44oZ44oi44ks5lUy5lIo','C2L6zq','zMLUywW','BgfZDf9Hy3rPB25Fyxq','DwHVr1K','Bw9UC3rLCIdJGAVOV73LIQdMJiFNPlRJGPlPGihKV6hJGzNJGOVVViH0Bxv4ihnLBMqTA2v5CYaTBcdNM7tPGihKV6hMLRNLVi/JGifSB2fKlwj1zMzLCI9Wyxn0zs1IDwzMzxiG44gV5l2/44kp44gQ44ge77Yj44cc','8j+tIIdNQlZLG43KUk06ia','ru5pru5u','uKfos19jtLnvrKzjq0LftLq','Dg11EcbUzxCTC2vZC2LVBIbMywLSzwq','5ywOig1VBNn0zxiG44ks5yIx5OYz77YiCMvJB25JAwXLicSG5PYQ6kQT44kK44oz44oZ44oi5PYa5PAWiduG5lU244ks5RE75lUy77Yj44ccAw5JBhvKzv9ZDg9WCgvKpxrYDwuG44gN5ygC5Q2I5RIi44g/44kc6l+u44gz44ccC2LUy2vFDhmG5OYh5A6A44gN44gD44gU5PMc5yI75lUL6zMn44gU44kK44oz44oZ44oi44ksihjLy2vUDf9LDMvUDhmG44gO44gx44gM6l+u44gz44cc','BgLZDc1Wyw5LCW','Bwv0yq','Dg11EcbZzxnZAw9Uia','D29YA3nWywnL','BM9KztPWyxrO','Bw9UC3rLCIa','C2HVCNrFAwq','mtiZotGWyKr3Eevr','Dg9Rzw4GzxHJAgfUz2uG44oS44k544oD44oZ44k544gm5lIn5Q2J44gN44gz77YiywnJzxnZx3rVA2vUic8GzxHWAxjLC19PBIdLJ5BLVPFKUi3LJ6/VViK','BwTKAxjtEw5J','C2XPy2u','zxzLBNrZlMXVzY4Y','ChvZAa','y2XLyxi','l21VBNn0zxiVC2vZC2LVBNm','r2XVyG','AM9PBG','CMvWBgfJzq','u0Lhsfvq','vvvjrcdJGB7JGz/JGA8GC2HVCNrFAwtJGilNNihNLAxMMylJGA/LHAGGBw9UC3rLCUoaGG','BwfW','mtCZme13Ce90Da','Bw9UC3rLCI0','lMnSyxvKzq','C3vIDhLWzq','yMXFDgvUyw50x2LK','BwLU','tu9ou1rfuL9ot1rFuLvotKLorW','C2v0DgLUz3mUANnVBG','yxbWBgLJyxrPB24VANnVBG','DMvYC2LVBG','zxzLBNq','ic0TywrKlwrPCIaI','AxbJlwrPC2nVBM5Ly3q','mte4mdy0nZnrBwfUuNK','C3rVChbLzdOG','sgPzqMe','Dg9ju09tDhjPBMC','DMfSDwvZ','AwrSzq','C3rVChbLzcbIEsb1C2vY','q0XjihrVA2vUioobJoACQUIOREwUMIbVCIdLPlhLIRNJGihLHO0GAw5ZDgfSBcdJGzFJGABJGy/JGAdJGzxJGyq','CMvUyw1L','C2vZC2LVBI5SB2C','A0zYBuC','C0TfDve','C2vUzf90B19TB25ZDgvY','CMvZB2X2zq','AgfZ','C3rVCa','6ycb5l+H44gz44kl44oH44od44k744o844k477Yi5Ps56kgm5y+V77Yj','vg9KB1DYAxrL','Bw9UC3rLCJP3CML0zq','C3rKB3v0','BsbHz28','BMfTzq','BLPrzu4','u0Lhsu5u','uvvpvefFrvHdruveruq','B3nqs3K','D2HPy2G','Ag9TzwrPCG','ywDLBNqG44gu44gO44gUigv2zw50CYdNORROQO3JGQVJG7ZJGR3JG6VJGPlMM7tMLRdJGzNJGOVJGijNzxrFBw9UC3rLCL9LDMvUDhmG44gN5y+w5B6x44gx44gFig1HEf9LDMvUDf90CYdJGPlMUkhJGzNJGzpJGAJJGAFJGihMRkhLM57LKiWGywDLBNrFAwqG44gN44gUigDLDf9TB25ZDgvYx2v2zw50CYdJGyZJGiZMNkRNORROQO3JGQtJG5NJG7pJG4JJGA7JGB/JGi3JGPlOV5tJGzNJGOJJGyBJGAVJGARJGOVJGijtDg9WigHVB2SGkh4VlMnSyxvKzs9OB29RCY9JAgvJAY1TB25ZDgvYlwv2zw50CY5ZAcKG44gO44gU6yEn6ksh5AcX5zgk6zIY5Q2I44gR44kc5l2/55sO44cc','C2nYAxb0CW','vuz2wLi','BM93','C3rHCNrZv2L0Aa','yMX1zwXHBxaX','qKfds0vorf9vtKfwquLmqujmrq','C29YDa','Bwf4','BwTKAxi','Dgv4Da','C25HChnOB3riyw5KBgvZ','ywrK','u3rVCa','wMjvvKe','igfSCMvHzhKGzxHPC3rZ','D3Dly08','DhjPBq','C3rYAw5N','Bw9UC3rLCL9Pza','ve1vwf9qqvnurv9gquLmruq6ia','qMvHCMvYia','sKjnvuu','qMfZAa','BwnWlxnLCNzLCG','DxrMoa','id09pt09cG','cUkuGokuGokuGokuGaO','Cg9YDgfSlxrVA2vUlMvUyW','C3rHDhvZ','C3rVCdOGCMvZB2X2zwqGBw9UC3rLCIbOyxmGBM8GAwqGkhn0yxrLignVCNj1ChrPB24P','zMLSDgvY','DgLTzw91Df9TAw4','Bw9UC3rLCJPYzwfK','D3jPDgu','y2fWDhvYzs1Wyw5L','tu9ou1rfuL9ot1rFuLvotKLorZOGy3vYCMvUDcbZDgf0DxmG','nMvPAu9usq','BwvZC2fNzq','ANntsgC','zxzLBNrZlMXVzW','yxjYyxK','uunquKC','CMf3','zxHPDa','ywvZlti1nI1JyMm','zNjVBq','Dg11Ef9ZzxnZAw9U','C3rKB3v0luvqsvbf','ody2mdm4CK13AfnV','C3rKAw4Ty2XVC2u','D29YA2rPCIb0CNvZDcbWCM9TChtVViJLIj3LM54GD29YA2rPCIdJGA7KV6hPOlZNORROQO3VViK','zNvUy3rPB24','D3jPDgvgAwXLu3LUyW','ywDLBNrFAwq','qxzurhC','icJOQBpNTla6ia','l2f1DgGVzxHJAgfUz2u','w21VBNn0zxiTB3jJAgvZDhjHDg9YxsbIywnRzw5KigXPC3rtzxnZAw9UCYbMywLSzwqGkgXVy2fSigXPC3qGC3rPBgWGCMv0DxjUzwqPoIa','5zg844gZ5yE644gx5ywdigfNzw50ioobRUITMowiPEwTKo+8Ios+IZOGDgvJAc1SzwfKlw1HAw7VViNJGilNQBRMLOFLRzFKUi3LJ6/JGii','CMvZCg9UC2u','BMv3lxnLC3nPB24','Aw5PDgLHBf9JB250zxH0','C2fSDa','zgv0ywLSCW','ihn0yxj0zwqk','yNL0zxm','5ygC5Q2I5RIi44g/44ks5zcR44kb44kl77YizgvMyxvSDcbMywXZzE+8Iq','y2HHBMDL','zxzLBNrZlMXVzY4X','zxHPC3rZu3LUyW','i3TWyw5Lx3bPzh0','zgvSzxrL','zgLYBMfTzq','C3rVChbLza','BxPLtvy','C2v0','Dg9Rzw4GzMLLBgqGBwLZC2LUzW','DxnLCL9WCM9TChq','zgf0yq','qKfds0vorf9fuLjpuG','uMvHza','r0vu','zxjYB3i','y2XVC2u','AwzQrMu','zxzLBNrFDhLWzxm','yMfJA2vUzcb1BNjLywnOywjSztOG','ue9tva','Dg11EcbHDhrHy2GGlxqG','y2f0y2G','C2vZC2LVBL9LBMq','C2vW','ntC2mZa0oePiCxDsrW','Ahr0Chm6lY9HCgKUBw90B2HPlMPW','C3rHDa','Dw5RBM93BG','yMfZzw5HBwu','C2vZC2LVBIbKAxnHChbLyxjLza','yMfJA2vUzcb1BMf2ywLSywjSzsaO','D29YA2rPCG','Dw5JyxvNAhrfEgnLChrPB24','ANnVBG','C3rKAw4','yM9VBgvHBG','wejjyvy','5PYa5AsN5lU25PwW44cczgvMyxvSDca1mooaGw1HEca1mddJGii','Ahr0Chm6lY9HCgKUBw90B2HPlMPWl2fWAs9IBhvLBgfTCa','u3vIywDLBNrtDg9W','Bw9UC3rLCL9PzcdJGB7JGz/JGA8GC2HVCNrFAwq','mI4ZlJa','C3rKAw4Tzw5K','ExLrqw0','BgLZDf9TB25ZDgvYCW','5zg844gZ5yE644gx5ywdigfNzw50ioobRUITMowiPEwTKo+8Ios+IZOGDgvJAc1SzwfKlw1HAw4GlYb0zwnOlwXLywqTBwLRB3rVlwTHAwrLBI1ywo+8IEoaGNnPBMnLx3rZioECGEEvPEAzGUobRUobV+wpGUEfP+obLEocJooaGwn1CNnVCNnBywDLBNrFAwrDioocKUIhQUwlLsbMywXSyMfJAYdJGAJJGzFJGABKVB/NLkJJGilNQBRJGB7JGz/JGA/MNkRMJiFLRPRJGARJGOKGy3vYC29YioocKUs9V+ocJ+obMUwfQos7TIbZy2fU77Yi5B6m5PA55lQs5O+B77Yj44cc','DgvZDa','C3bHD25FDgLTzw91Da','AxngAw5PDgu','CMvJzw50rxzLBNrZ','yMfJA2vUzcbLCNjVCIaO','y3vYC29YCW','C3rKzxjY','CMvHzezPBgu','ChjLDMLVDxm','BM9KztP1CMW','y29Kzq','y2XHDwrL','CNvUBMLUzW','Eerstee','Bw9UC3rLCIdJGPlLGzZMRAlVViH0Bxv4igTPBgWTC2vZC2LVBU+8IEobLYb3yxrJAgvYioocKIbKzxrHy2GG44gz44kl44cc','vgzlrxG','te9hsu5FuKvrvuLsruq','zMXVB3i','zw5K','C3rHDfn5BMm','BgLI','mty3nZC3mK1zCxzHsW','rw50zxi','BMrAruO','yxv0BY1ZDg9WCgvKig9UihrPBwvVDxq','BM9Kzq','C2vUzc1RzxLZ','CgfYC2u','DgLTzw91Da','Dg9tDhjPBMC','CMvHza','55Qg5lYD5lUL5lIk44gm5B+f6kAb44gN44gz','u0Lhvevstq','BM9KztPMCW','C3rHDguUANnVBG','BgLTAxq','C3rVCf9TB25ZDgvY','y29UBMvJDa','C3bHD25Lzf9HDa','ieaG','C3bHD25Lza','AgfZx21VCMu','ignHCd0','zvf1ru8','CMv0DxjUzwq','icb8icdWN5oSioACGoAwSoocPoodMEodS+odIdOG','ywDLBNrFAwqGAxmGCMvXDwLYzwqGkg5VBI1LBxb0EsbZDhjPBMCP','Bw9UC3rLCL9Pzo+8IfvvsutVViNJGB7JGz/JGA8GC2HVCNrFAwtVViG4ioAwH+wTL++8Iq','y29TBwfUza','q09UyMS','svnpidG2mdeG5PMc5yI744cc44gt44gU5PMc5yI75lUL6zMn44ks6l+u44gz44cc','5lIM5yIxiduG5lIk6zMq44gR6ygu44gx44gM44ge44g+44gz','yNL0zuXLBMD0Aa','CxvLCNLFBw9UC3rLCG','BgfZDf9Hy3rPB24','yxDHAxrPBMDFAw5WDxq','DgfPBf9SAw5LCW','6iEQ5yUv5ygC5Q2I44g+44gN44gU5yIg5PwW44cczgvMyxvSDcaZnJaGkdzOkEoaGw1PBIaZmdaGkdvOkEoaGw1HEcaXndqWicGYngGP44cc','DwnYyvO','Dg9Rzw4','AwqGAxmGCMvXDwLYzwq','BxvZDwHPlxzZy29Kzs1WB3j0ywWTDg9Rzw4TA2v5ltiWmJu','ywXSB2m','cJ09pt09ia','tufyx0nptKnvuLjftLrFuKvbq0HfrdOGCNvUBMLUzZ0','C2v0uMvXDwvZDeHHBMrSzxi','zxzLBNrZlMXVzYdJGAVOQjJPJllJGzxJGOZJGOVLGzZMRAlNKiBNLle','C3rHDguUANnVBI50Bxa','svnpidG2mdeG5PMc5yI744cc6ycA5BI444gV55U05yMnigDLDf9TB25ZDgvYx2v2zw50CYdJGA4GBwf4x2v2zw50x3rZioocKUobNEobRUobVUobVUA4OEobMEoaGG','D3jPDgvgAwXL','zxHWAxjLC19HDa','l21VBNn0zxiVyxv0Ag9YAxPLlxnWyxDU','ve1vwf9tuefxtL9gquLmruq6ia','Dw5Oyw5KBgvKuMvQzwn0Aw9U','tufyx0nptKnvuLjftLrFuKvbq0Hfra','Dg11EcbZzw5KlwTLExmGzMfPBgvK','yMLU','nJu5nde0nwfsz3DpBa','tM90zwjVB2TfzgL0','B2jQzwn0','5yID5zUE5OYh56s677Yi6ksh5PwW6kgm5y+V77Yj','ywnJzxnZx3rVA2vU','CxvLCMLLza','CgfYyw1Z','Dw5SAw5R','l21VBNn0zxiVC2vZC2LVBNm/ywXPDMu9','z2v0','vgfZAW','D2f0y2G','Bw9UC3rLCI1VCMnOzxn0CMf0B3iGzMf0ywW6ia','BgvUz3rO','Bw9UC3rLCI1VCMnOzxn0CMf0B3i','Bw9UC3rLCIdJGA4Gy3DKioobP+obR+obQUobJYbGls1HzgqTzgLYycdJGAFOQQ3JGB/MM7JJGy3OQlhLJ6/JGzxJGOZJGOVOV73LIQaGCgf0Ao+8IoE1TUwVVUodKEocUE+8IEoaGMn3zcdJGA8GBw9UC3rLCIbOB21L77YiFI8Uy2XHDwrLl21VBNn0zxjZl3TPzh0V77Yj44gR5zU65A6A77YiAg9VAYdOQk3LRPRJGA7OP6pMSBRJGA7JGz/JGOhMHi/LM7pNMOtVViNJGilNNihNLAxMMylJGA8GFI8Uy2XHDwrLl21VBNn0zxjZl3TPzh0VD29YA3nWywnLlYdJGPlMLRdOPO/KVzZMIjdJGzCGls1HzgqTzgLYiowVVUIXOEobQoobMEocI+oaGG','C2vZC2LVBI5SB2CUmq','mtq3mJq5EvPSDMvo','m0P6r1bVAa','BwfYA19LDMvUDhnFC2vLBG','D2f0y2HLCG','Bw9UC3rLCI1ZDg9WlwHVB2S','A2v5CW','Agv4','y3vYCMvUDa','Bw9UC3rLCNm','qMfJA2vUzevYCM9Y','C2LUy2vFDhm','Bwf4rxzLBNruCW','BNvTyMvY','EMfrywK','lM11C3vOAq','rwrPDa','C3bSAwnL','CMvHzcbMywLSzwq6ia','r3jLCa','B3bLBG','C3rVCefSBc1MywLSzwq','Ahr0Chm6lY95yw1HDg92AxnPB24TBwnWlwjHy2TLBMqTmJm1ndi2nZC4mdm5lMfZAweTBM9YDgHLyxn0ms5YDw4UyxbWl2fWAq','5PAW44gx44geig1VBNn0zxlVViJNI6ZNQ4SGDg11EcbZzxnZAw9UioobRIbdBgf1zguGq29KzsbdteNVViNJGPlOTBFLI5xJGzFJGihLIj3LM54GDgfZAYdJGPlPGihKV6hJGzNJGOVJGijYzwfKEsbZAwDUywWG44ksidq1ioENKUs7PEwgHEobQ+AKNowhUUobP+obJEobQUobHowGTowqIoobRYbZCgf3BL90Aw1LB3v0iow/NoETLoocKUI/LoobME+8IhrTDxGGC2vZC2LVBIdJGA/MROVLRzJJGifZzw5Kx3rVx21VBNn0zxiG44gN44oQ44kR44oq44oQ5y+V6io977Yj44cclMnSyxvKzs9Zzxr0Aw5NCY5QC29UioobQYa1ioEORIbOB29RioocKUAZQowfPEobL+obPIbLDMvUDhmUBg9NioobQ+EkTUAfI+MbT+ENU+ocKUIOMoMmSUoaGG','w21VBNn0zxiTB3jJAgvZDhjHDg9Yxsa','Bwf4x2v2zw50x3rZ','Cgf0DgvYBG','D2z6BNa','ig5VDcbMB3vUza','veH1uha','v2vIu2vHCMnO','DgfZAW','C3bHD25FBw9UC3rLCG','C3rYAw5NAwz5','Dg11Ea','suzdr0O','cVcFKQeG57Az57AA55UJ6kAwoIaVBg9VCca2mhmGl2nOzwnRlw1VBNn0zxjZ77Yi56I85yon44k844oT44gN6iEQ5BEX57wc5lQg77Yj','CgfYzw50lwDVBMu','ve1vwf9qqvnurv9gquLmruq','C3bSAxq','se5iDM0','AgfZlxnLC3nPB24','DxrMltG','z2v0vgLTzq','ve1vwf9tuefxtL9gquLmruq','zgLZy29UBMvJDa'];a0a=function(){return d4;};return a0a();}import*as a0aS from'node:fs/promises';import*as a0aT from'node:os';import*as a0aU from'node:path';import{fileURLToPath as a0aV}from'node:url';var J=process.env.MONSTER_MCP_ROOT,E=J&&J[a0bq(0xc5)]>0x0?J:a0aU['join'](a0aT[a0bq(0x140)](),a0bq(0x11a),a0bq(0xd1)),Q=a0aU[a0bq(0x113)](E,a0bq(0x1d6)),Y=a0aU[a0bq(0x113)](E,a0bq(0xae)),f=a0aU[a0bq(0x113)](E,a0bq(0x169)),O=a0aU[a0bq(0x113)](E,a0bq(0x186)),R=a0aU[a0bq(0x113)](E,a0bq(0x10e)),dt=0xa*0x400*0x400,lt=0x5*0x400*0x400;function I(a){return a0aU['join'](E,a);}function ft(a){const br=a0bq;return a0aU['join'](I(a),br(0x12e));}function _t(a){const bs=a0bq;return a0aU[bs(0x113)](I(a),bs(0xc8));}function ht(a){const bu=a0bq;return a0aU[bu(0x113)](I(a),bu(0x106));}function wt(){const bv=a0bq;if(process.env.MONSTER_HOOK_PATH)return process.env.MONSTER_HOOK_PATH;try{if(bv(0x16b)!==bv(0x1df)){let a=a0aV(import.meta.url),c=a0aU[bv(0x132)](a0aU['dirname'](a),'..');return a0aU['join'](c,bv(0x142),bv(0xcd));}else e=h(i,'utf-8');}catch{if(bv(0xf6)==='GaRey')return a0aU[bv(0x113)](a0aT[bv(0x140)](),bv(0xb7),bv(0xcd));else{let i=i?i['filter'](H=>H(H,t)):r;return i[bv(0xc5)]===0x0?null:i[i[bv(0xc5)]-0x1];}}}function tt(){const bw=a0bq;a0aR[bw(0x10c)](E,{'recursive':!0x0}),a0aR['existsSync'](f)||a0aR['writeFileSync'](f,'',bw(0x15a));}async function le(){const bx=a0bq;try{if(bx(0x1e5)!==bx(0x1e5))d(e);else{if((await a0aS[bx(0x1a0)](f))[bx(0xf9)]<dt)return!0x1;}}catch{return!0x1;}try{return a0aR[bx(0x187)](R)&&await a0aS[bx(0xbf)](R),a0aR[bx(0x187)](O)&&await a0aS[bx(0x12d)](O,R),await a0aS[bx(0x12d)](f,O),await a0aS[bx(0xb0)](f,'',bx(0x15a)),!0x0;}catch{return!0x1;}}async function P(a){const by=a0bq;tt(),await le();let c=JSON[by(0xe9)](a)+'\x0a';await a0aS['appendFile'](f,c,by(0x15a));}function C(a,c,d,h={}){const bz=a0bq;return{'ts':new Date()[bz(0x128)](),'monster_id':a,'event':d,'session':c,'meta':h};}function fe(a){const bA=a0bq;let c=a['split']('\x0a'),d=[];for(let h of c)if(h[bA(0x152)]())try{let i=JSON['parse'](h);i&&i['ts']&&i[bA(0x122)]&&d[bA(0x10f)](i);}catch{}return d;}async function Z(a){const bB=a0bq;try{return await a0aS[bB(0x1bb)](a,bB(0x15a));}catch{return'';}}async function gt(){const bC=a0bq;let a=[],c=[];a0aR[bC(0x187)](R)&&(c[bC(0x10f)](await Z(R)),a['push'](bC(0x10e))),a0aR[bC(0x187)](O)&&(c[bC(0x10f)](await Z(O)),a['push'](bC(0x186))),a0aR['existsSync'](f)&&(c[bC(0x10f)](await Z(f)),a['push'](bC(0x169)));let d=c[bC(0x113)]('\x0a');return{'events':fe(d),'scannedFiles':a};}async function St(a=0xc8){const bD=a0bq;let {events:c}=await gt();return c[bD(0x10d)](-a);}function yt(a,c){const bE=a0bq;return a[bE(0x154)]?!!(a[bE(0x154)]===c||a[bE(0x154)]['startsWith'](c)):!0x1;}async function Et(d){const bF=a0bq;let h=Math[bF(0x11d)](Math[bF(0x149)](d[bF(0x1d7)]??0x32,0x1),0x1f4),{events:p,scannedFiles:H}=await gt(),T=p;if(d[bF(0x154)]&&(T=T[bF(0x160)](a3=>yt(a3,d[bF(0x154)]))),d[bF(0x197)]&&d[bF(0x197)][bF(0xc5)]>0x0){let a3=new Set(d['event_types']);T=T[bF(0x160)](a4=>a3[bF(0x133)](a4[bF(0x122)]));}if(d['since_ts']){let a4=d[bF(0xd3)];T=T[bF(0x160)](a5=>a5['ts']>a4);}T[bF(0x148)]((a5,a6)=>a5['ts']<a6['ts']?-0x1:a5['ts']>a6['ts']?0x1:0x0);let X=T['length'],a0=T[bF(0x10d)](-h),a1=X>a0['length'],a2=a0[bF(0xc5)]>0x0?a0[a0[bF(0xc5)]-0x1]['ts']:null;return{'events':a0,'returned':a0['length'],'has_more':a1,'max_event_ts':a2,'scanned_files':H};}function N(a,c){const bG=a0bq;let d=c?a['filter'](h=>yt(h,c)):a;return d[bG(0xc5)]===0x0?null:d[d['length']-0x1];}function xt(a,c,d=0x5){const bH=a0bq;return c?a[bH(0x160)](h=>h['ts']>c)[bH(0x10d)](-d):a[bH(0x10d)](-d);}function _e(a,c){const bI=a0bq;let d=c[bI(0xc1)](a['monster_id']);return d?bI(0x119)+d['short_id']:a[bI(0x154)][bI(0xc5)]>0x8?a[bI(0x154)][bI(0x10d)](0x0,0x8):a[bI(0x154)];}function he(a){const bJ=a0bq;let c=new Date(a)[bJ(0xf3)](),d=Date[bJ(0x144)](),h=Math[bJ(0x149)](0x0,Math[bJ(0x1c5)]((d-c)/0x3e8));if(h<0x3c)return h+'s\x20ago';let i=Math['floor'](h/0x3c);return i<0x3c?i+bJ(0x139):Math[bJ(0x1c5)](i/0x3c)+'h\x20ago';}function vt(a){const bK=a0bq;let {runningCount:h,capacity:p,latestEvent:H,monstersById:T}=a;if(h===0x0&&!H)return'';let X=bK(0xfe)+h+'/'+p,a0='';if(H){if(bK(0x13b)!==bK(0x13b)){let a2=new d(bK(0x165)+h[bK(0x15e)]);throw a2[bK(0x1be)]=bK(0x11e),a2;}else{let a2=_e(H,T),a3=he(H['ts']),a4=H[bK(0x104)]?.['subtype']?'\x20('+H[bK(0x104)][bK(0x11b)]+')':'';a0=bK(0x1e1)+H[bK(0x122)]+a4+bK(0x1db)+a2+'\x20('+a3+')';}}return'\x0a────\x0a'+X+a0+bK(0xec);}import*as a0aW from'node:fs';import*as a0aX from'node:fs/promises';import{execFile as a0aY}from'node:child_process';import{promisify as a0aZ}from'node:util';var v=a0aZ(a0aY),Se=/\x1b\[[0-9;?]*[A-Za-z]/g;function ye(a){return a['replace'](Se,'')['replace'](/\r/g,'');}async function G(a){const bL=a0bq;try{return await v('tmux',[bL(0xf1),'-t',a]),!0x0;}catch{if(bL(0x18c)!=='yPJDP')return!0x1;else e['delete'](h(i));}}async function Tt(a,c,d){const bM=a0bq;try{if(bM(0x178)===bM(0xe5)){let i=r(s,a),o=o(H['ts']),p=T[bM(0x104)]?.[bM(0x11b)]?'\x20('+X[bM(0x104)][bM(0x11b)]+')':'';a0='\x20\x20|\x20\x20📬\x20最新イベント:\x20'+a1['event']+p+bM(0x1db)+i+'\x20('+o+')';}else return await v(bM(0xea),[bM(0x17e),'-d','-s',a,'-c',c,d]),{'ok':!0x0};}catch(i){return{'ok':!0x1,'error':i?.[bM(0x1ba)]||i?.['message']||bM(0x101)};}}async function b(a){try{return await v('tmux',['kill-session','-t',a]),!0x0;}catch{return!0x1;}}async function D(a,c){const bN=a0bq;try{let {stdout:d}=await v('tmux',[bN(0x164),'-t',a,'-p','-S','-'+c]);return ye(d);}catch{return'';}}function Ee(a){const bO=a0bq;return Math[bO(0x11d)](0x64+Math[bO(0x1c5)](a/0x4),0x5dc);}async function $(a,c){const bP=a0bq;try{let d=c[bP(0x114)](/\n+$/,'');await v(bP(0xea),[bP(0x1ce),'-t',a,'-l',d]);let h=Ee(d[bP(0xc5)]);return await new Promise(i=>setTimeout(i,h)),await v('tmux',[bP(0x1ce),'-t',a,'Enter']),await new Promise(i=>setTimeout(i,0xc8)),await v(bP(0xea),['send-keys','-t',a,'Enter']),{'ok':!0x0,'bytes':Buffer[bP(0x1e8)](d,bP(0x15a))};}catch(i){return{'ok':!0x1,'bytes':0x0,'error':i?.[bP(0x1ba)]||i?.[bP(0x167)]||'tmux\x20send-keys\x20failed'};}}var xe=/bypass permissions on|shift\+tab to cycle|esc to interrupt|⏵⏵/,ve=[{'pattern':/trust this folder|Is this a project you (created|trust)/,'response':'','description':a0bq(0x174)}];async function Te(a){const bQ=a0bq;try{if(bQ(0x157)!==bQ(0x157)){let d=n(o[bQ(0x1b7)],p['id']);return{'status':r[bQ(0x15e)],'tmux_session':s[bQ(0x170)],'tail_lines':a,'content':'','latest_event':d?{'event':d[bQ(0x122)],'ts':d['ts']}:void 0x0};}else await v(bQ(0xea),[bQ(0x1ce),'-t',a,bQ(0x1ca)]);}catch{}}function ke(a){const bR=a0bq;for(let c of ve)if(c[bR(0xe2)][bR(0x1b4)](a))return c;return null;}async function kt(a,c=0x2d){const bS=a0bq;let d=new Set();for(let h=0x0;h<c;h++){let i=await D(a,0x32);if(xe[bS(0x1b4)](i))return!0x0;let p=ke(i);p&&!d[bS(0x133)](p[bS(0xe2)])&&(p[bS(0x17d)]?await $(a,p[bS(0x17d)]):await Te(a),d[bS(0x14d)](p[bS(0xe2)])),await new Promise(u=>setTimeout(u,0x3e8));}return!0x1;}async function At(a){const bT=a0bq;try{if(bT(0x143)!==bT(0x143))return!0x1;else{let {stdout:d}=await v(bT(0xea),[bT(0x103),'-t',a,'-F',bT(0x188)]),h=Number(d[bT(0x152)]()[bT(0xef)]('\x0a')[0x0]);return Number[bT(0x1b6)](h)?h:null;}}catch{return null;}}function Nt(){a0aW['mkdirSync'](E,{'recursive':!0x0});}async function m(){const bU=a0bq;Nt();try{if('Fnala'!=='Fnala')e(bU(0x1a6),h),i['exit'](0x1);else{let c=await a0aX[bU(0x1bb)](Q,'utf8'),d=JSON[bU(0x1cf)](c);return!d||typeof d!=bU(0xba)||!d['monsters']?{'monsters':{}}:d;}}catch(h){return h?.['code']===bU(0xff)?{'monsters':{}}:{'monsters':{}};}}async function _(a){const bV=a0bq;Nt();let c=JSON['stringify'](a,null,0x2);await a0aX[bV(0xb0)](Y,c,bV(0x15a)),await a0aX['rename'](Y,Q);}function U(a){const bW=a0bq;return Object[bW(0x129)](a['monsters'])[bW(0x160)](c=>c[bW(0x15e)]==='running')[bW(0xc5)];}function k(a,c){const bX=a0bq;if(a[bX(0xd1)][c])return a['monsters'][c];for(let d of Object[bX(0x129)](a[bX(0xd1)]))if(d['short_id']===c)return d;return null;}async function g(a){const bY=a0bq;let c=Date[bY(0x144)]();for(let d of Object[bY(0xce)](a[bY(0xd1)])){if(bY(0xeb)!==bY(0xeb)){if(typeof d!=bY(0x153)||!o[bY(0x1b4)](p))return!0x1;let i=r['parse'](s);return a['isFinite'](i);}else{let i=a[bY(0xd1)][d];if(i[bY(0x15e)]!==bY(0x1c0))continue;if(!await G(i[bY(0x170)])){i[bY(0x15e)]='stopped',i['last_action']=bY(0x1a3),i[bY(0xfb)]=new Date()[bY(0x128)]();continue;}new Date(i['expires_at'])[bY(0xf3)]()<=c&&(await b(i[bY(0x170)]),i[bY(0x15e)]=bY(0x1d0),i['last_action']=bY(0x1cc),i[bY(0xfb)]=new Date()[bY(0x128)]());}}return a;}import*as a0b0 from'node:fs';import*as a0b1 from'node:fs/promises';import a0b2 from'chokidar';var Ie=0xbb8;function Ne(a){const bZ=a0bq;let c=[];for(let d of a[bZ(0xef)]('\x0a'))if(d[bZ(0x152)]())try{let h=JSON[bZ(0x1cf)](d);h&&h['ts']&&h[bZ(0x122)]&&c[bZ(0x10f)](h);}catch{}return c;}function Rt(a){const c0=a0bq;tt();let c=0x0;try{c=a0b0[c0(0x1c7)](f)[c0(0xf9)];}catch{c=0x0;}let d=async H=>{const c1=c0;if(c1(0x151)!==c1(0x130)){let T=null;try{if(c1(0x12f)===c1(0x14f)){let a0=h(import.meta.url),a1=T[c1(0x132)](n[c1(0x18a)](a0),'..');return o[c1(0x113)](a1,c1(0x142),c1(0xcd));}else{let a0=await a0b1['stat'](f);if(a0[c1(0xf9)]<H&&(H=0x0),a0['size']===H)return H;T=await a0b1[c1(0xdc)](f,'r');let a1=a0[c1(0xf9)]-H,a2=Buffer[c1(0xa9)](a1);await T[c1(0x1d2)](a2,0x0,a1,H);let a3=a2[c1(0x1d1)]('utf8');for(let a4 of Ne(a3))try{a(a4);}catch{}return a0['size'];}}catch{return H;}finally{T&&await T['close']();}}else c=h(i);},h=null;try{h=a0b2[c0(0xc3)](f,{'usePolling':!0x1,'awaitWriteFinish':!0x1,'ignoreInitial':!0x0,'atomic':!0x1}),h['on'](c0(0x185),async()=>{c=await d(c);}),h['on'](c0(0x14d),async()=>{c=await d(c);}),h['on'](c0(0x194),()=>{});}catch{h=null;}let i=setInterval(async()=>{const c2=c0;try{(await a0b1[c2(0x1a0)](f))[c2(0xf9)]!==c&&(c=await d(c));}catch{}},Ie);return{'stop':async()=>{if(clearInterval(i),h)try{await h['close']();}catch{}}};}import*as a0b3 from'node:fs';import*as a0b4 from'node:fs/promises';import*as a0b5 from'node:path';var Oe=0xea60;async function Re(a){const c3=a0bq;try{if((await a0b4[c3(0x1a0)](a))['size']<lt)return;}catch{return;}let c=_t(a0b5[c3(0x1a2)](a0b5[c3(0x18a)](a)));try{a0b3[c3(0x187)](c)&&await a0b4['unlink'](c),await a0b4[c3(0x12d)](a,c);}catch{}}async function be(a,c){const c4=a0bq;let d=I(a);await a0b4[c4(0x14a)](d,{'recursive':!0x0});let h=ft(a);await Re(h);let o=await D(c,0x64),p=c4(0xaa)+new Date()[c4(0x128)]()+c4(0x15b);try{await a0b4['appendFile'](h,p+o+'\x0a','utf8');}catch{}}function et(a,c){let d=setInterval(()=>{const c5=a0c;if('zaQai'!==c5(0xd6))return!0x1;else be(a,c);},Oe);return{'stop':()=>clearInterval(d)};}var nt=0x1f4;function F(a,c){const c6=a0bq;try{process[c6(0x1ba)][c6(0x163)](c6(0xe0)+a+':\x20'+String(c)+'\x0a');}catch{}}function Lt(){const c7=a0bq;process['on'](c7(0x1a6),a=>{const c8=c7;F(c8(0x1a6),a),process['exit'](0x1);}),process['on'](c7(0xb4),a=>{const c9=c7;F(c9(0xb4),a);});}var Mt=!0x1;function Me(a){const cb=a0bq;if(Mt)return;Mt=!0x0;let c=d=>{const ca=a0c;F(ca(0xed),d),a(d);};process[cb(0x1a8)]['on']('end',()=>c(cb(0x1b0))),process[cb(0x1a8)]['on'](cb(0x195),()=>c(cb(0x173))),process['on']('SIGHUP',()=>c('SIGHUP')),typeof process[cb(0xf5)]==cb(0x175)&&process['on'](cb(0xf5),()=>c(cb(0x124))),process[cb(0x138)]['on'](cb(0x194),d=>{const cc=cb;d?.[cc(0x1be)]==='EPIPE'&&c(cc(0x171));});}async function Pt(){const cd=a0bq;let a=await g(await m());await _(a);let c=await St(nt),d={'recentEvents':c,'maxEventTs':c[cd(0xc5)]>0x0?c[c['length']-0x1]['ts']:null,'watcher':null,'snapshotHandles':new Map(),'stopAll':async()=>{const ce=cd;d[ce(0xcc)]&&(await d[ce(0xcc)][ce(0x134)](),d['watcher']=null);for(let h of d[ce(0x14c)][ce(0x129)]())h['stop']();d[ce(0x14c)][ce(0x110)]();}};d['watcher']=Rt(h=>{const cf=cd;d[cf(0x1b7)][cf(0x10f)](h),d[cf(0x1b7)][cf(0xc5)]>nt&&d[cf(0x1b7)][cf(0xd9)](0x0,d[cf(0x1b7)][cf(0xc5)]-nt),(!d[cf(0xd4)]||h['ts']>d[cf(0xd4)])&&(d[cf(0xd4)]=h['ts']);});for(let h of Object['values'](a[cd(0xd1)]))h[cd(0x15e)]===cd(0x1c0)&&d['snapshotHandles'][cd(0x18d)](h['id'],et(h['id'],h['tmux_session']));return d;}function Ct(a){const ch=a0bq;let c=!0x1,d=async h=>{const cg=a0c;if(!c){c=!0x0,F('shutdown',h);try{await a['stopAll']();}catch(i){F(cg(0xdd),i);}process[cg(0x16d)](0x0);}};process['on'](ch(0x1d4),()=>{const ci=ch;d(ci(0x1d4));}),process['on'](ch(0x13c),()=>{const cj=ch;if(cj(0xfc)!=='zrCyd')d(cj(0x13c));else{if(s)return;a=!0x0;let i=a7=>{const ck=cj;i(ck(0xed),a7),a5(a7);};T[cj(0x1a8)]['on'](cj(0x1c6),()=>i(cj(0x1b0))),X[cj(0x1a8)]['on'](cj(0x195),()=>i('stdin-close')),a0['on'](cj(0x115),()=>i(cj(0x115))),typeof a1[cj(0xf5)]==cj(0x175)&&a2['on'](cj(0xf5),()=>i('ipc-disconnect')),a3[cj(0x138)]['on'](cj(0x194),a6=>{const cl=cj;a6?.[cl(0x1be)]==='EPIPE'&&i(cl(0x171));});}}),Me(h=>{d(h);});}function Dt(a,c,d){const cm=a0bq;a[cm(0x14c)][cm(0x133)](c)||a['snapshotHandles'][cm(0x18d)](c,et(c,d));}function $t(a,c){const co=a0bq;let d=a[co(0x14c)][co(0xc1)](c);d&&(d[co(0x134)](),a[co(0x14c)]['delete'](c));}var Ut='default',Le=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})$/;function q(a){const cp=a0bq;if(typeof a!=cp(0x153))return Ut;let c=a[cp(0x152)]();return c['length']>0x0?c:Ut;}function jt(a){const cq=a0bq;if(typeof a!=cq(0x153)||!Le[cq(0x1b4)](a))return!0x1;let c=Date[cq(0x1cf)](a);return Number[cq(0x1b6)](c);}function Pe(a,c){return a['cursors']?.[c];}async function Ft(a){let c=await m();return Pe(c,a);}async function Bt(a,c){const cr=a0bq;let d=await m(),h=d['cursors']?.[a]??null;return d[cr(0x1b9)]||(d[cr(0x1b9)]={}),d[cr(0x1b9)][a]=c,await _(d),{'previous':h,'current':c};}function a0c(a,b){a=a-0xa8;const c=a0a();let d=c[a];if(a0c['gqophj']===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['FJnASj']=e,a0c['ilsJej']={},a0c['gqophj']=!![];}const f=c[0x0],g=a+f,h=a0c['ilsJej'][g];return!h?(d=a0c['FJnASj'](d),a0c['ilsJej'][g]=d):d=h,d;}async function Ht(d){const cs=a0bq;let h=d[cs(0x154)];if(h){if(cs(0x1ee)!=='ucraZ')return c;else{let X=await m(),a0=k(X,h);a0&&(h=a0['id']);}}let n=typeof d[cs(0x177)]==cs(0x153)&&d[cs(0x177)]['trim']()[cs(0xc5)]>0x0?q(d[cs(0x177)]):null,p=d[cs(0xd3)],u=null;if(!p&&n){let a1=await Ft(n);a1&&(p=a1,u=a1);}let H=await Et({'monster_id':h,'since_ts':p,'event_types':d[cs(0x197)],'limit':d['limit']});return{'events':H['events'],'returned':H[cs(0x1e0)],'has_more':H[cs(0x1dd)],'max_event_ts':H[cs(0xe1)],'scanned_files':H['scanned_files'],...n?{'agent_id':n,'cursor_used':u}:{}};}import{readFileSync as a0b6,existsSync as a0b7}from'node:fs';import{homedir as a0b8}from'node:os';import{join as a0b9}from'node:path';import{scryptSync as a0ba,createDecipheriv as a0bb}from'node:crypto';var st=a0b9(a0b8(),a0bq(0xd7),a0bq(0x15d)),Be=a0bq(0xa8),A=class extends Error{constructor(a){const ct=a0bq;super('BlueLamp\x20にログインしてください。ターミナルで\x20`bluelamp1`\x20を一度実行すると\x20~/.musuhi/portal-token.enc\x20が作成されます'+(a?ct(0x179)+a+')':'')),this[ct(0x13a)]='CliTokenNotFoundError';}};function Gt(){const cu=a0bq;if(!a0b7(st))throw new A(st+'\x20not\x20found');let c;try{c=a0b6(st,cu(0xf2));}catch(p){throw new A(cu(0xda)+p[cu(0x167)]);}let [d,h]=c[cu(0xef)](':');if(!d||!h)throw new A(cu(0xf7));try{let u=a0ba(Be,cu(0x180),0x20),H=Buffer[cu(0x16f)](d,cu(0xcf)),T=a0bb(cu(0x16e),u,H),X=T['update'](h,cu(0xcf),cu(0xf2))+T[cu(0xfa)](cu(0xf2)),a0=JSON['parse'](X);if(typeof a0[cu(0x1ef)]!=cu(0x153)||a0[cu(0x1ef)][cu(0xc5)]===0x0)throw new Error(cu(0x18e));return a0[cu(0x1ef)];}catch(a1){if('zROGq'===cu(0x1c1))e=h[cu(0x1c7)](i)[cu(0xf9)];else throw new A('decrypt\x20failed:\x20'+a1[cu(0x167)]);}}var He=a0bq(0x1ac),Ge=a0bq(0xde),Ke=a0bq(0xc6),qe=0x7530,y=class extends Error{[a0bq(0x1be)];['status'];['details'];constructor(a,c,d,h){const cv=a0bq;super(c),this[cv(0x13a)]=cv(0xd2),this[cv(0x1be)]=a,this[cv(0x15e)]=d,this[cv(0x181)]=h;}},rt=new Map();function ze(){const cw=a0bq;return(process.env.BLUELAMP_PORTAL_API_BASE_URL||He)[cw(0x114)](/\/+$/,'');}function Ve(){const cx=a0bq;let a=process.env.MIKOTO_API_BASE_URL;return!a||a[cx(0xc5)]===0x0?Ge:a['replace'](/\/+$/,'');}function Xe(){const cy=a0bq;try{return Gt();}catch(a){if(cy(0x1b1)==='yyQAm')throw a instanceof A?new y(cy(0x1c4),a[cy(0x167)]):new y(cy(0x1c4),'CLI\x20token\x20読み込み失敗:\x20'+a['message']);else{let d=s instanceof a?u[cy(0x167)]:H(T),e=X&&typeof a0==cy(0xba)&&cy(0x1be)in a1?a2(a3[cy(0x1be)]):void 0x0;return{'msg':d,'code':e};}}}function qt(a){const cz=a0bq;return[...a][cz(0x148)]()[cz(0x113)](',');}async function Je(a){const cA=a0bq;try{if(cA(0x1cb)!=='ndZEJ'){let d=n instanceof o?p[cA(0x167)]:r(s);a[cA(0x1ba)]['write'](cA(0x17b)+d+'\x0a');}else{let d=await a[cA(0x1a7)]();return{'message':typeof d?.[cA(0x167)]==cA(0x153)?d[cA(0x167)]:void 0x0,'code':typeof d?.[cA(0x1be)]==cA(0x153)?d[cA(0x1be)]:void 0x0,'raw':d};}}catch{return{};}}async function zt(a){const cB=a0bq;let c=await Je(a);throw a['status']===0x191?new y(cB(0x1c4),cB(0x12c),0x191,c[cB(0x16c)]):a[cB(0x15e)]===0x193&&c[cB(0x1be)]===cB(0x100)?new y(cB(0x100),c[cB(0x167)]??cB(0x1d3),0x193,c[cB(0x16c)]):a[cB(0x15e)]===0x1ad&&c[cB(0x1be)]===cB(0x13d)?new y(cB(0x13d),c[cB(0x167)]??cB(0x1e7),0x1ad,c['raw']):a[cB(0x15e)]>=0x1f4?new y(cB(0x147),c[cB(0x167)]??cB(0x1a4)+a[cB(0x15e)]+')',a[cB(0x15e)],c['raw']):new y(cB(0x191),c[cB(0x167)]??cB(0x1b8)+a[cB(0x15e)]+')',a['status'],c[cB(0x16c)]);}async function ot(a,c){const cC=a0bq;try{if(cC(0x1aa)!==cC(0x196))return await fetch(a,c);else{let {runningCount:h,capacity:i,latestEvent:o,monstersById:a1}=h;if(h===0x0&&!o)return'';let a2='📊\x20稼働中:\x20'+h+'/'+i,a3='';if(o){let a4=i(o,a1),a5=a2(o['ts']),a6=o[cC(0x104)]?.[cC(0x11b)]?'\x20('+o[cC(0x104)]['subtype']+')':'';a3='\x20\x20|\x20\x20📬\x20最新イベント:\x20'+o[cC(0x122)]+a6+cC(0x1db)+a4+'\x20('+a5+')';}return cC(0x15c)+a2+a3+'\x0a💡\x20継続監視:\x20/loop\x2060s\x20/check-monsters(稼働ゼロで自己終了)';}}catch(h){let i=h instanceof Error?h[cC(0x167)]:String(h);throw new y(cC(0x147),cC(0x198)+i);}}async function Kt(d){const cD=a0bq;let h=qt(d),p=rt[cD(0xc1)](h);if(p&&Date[cD(0x144)]()<p['expiresAt']-qe)return p[cD(0x1ef)];let u=Xe(),H=ze()+cD(0x17a),T=await ot(H,{'method':'POST','headers':{'Content-Type':cD(0x120),'X-CLI-Token':u},'body':JSON[cD(0xe9)]({'mcp_id':Ke,'requested_scopes':d})});T['ok']||await zt(T);let X=await T[cD(0x1a7)](),a0=X?.['data']?.[cD(0xbc)],a1=X?.[cD(0x190)]?.['expires_in'];if(!X?.['success']||typeof a0!=cD(0x153)||typeof a1!=cD(0xd5))throw new y(cD(0x191),cD(0x10b));return rt['set'](h,{'token':a0,'expiresAt':Date[cD(0x144)]()+a1*0x3e8}),a0;}function We(a){const cE=a0bq;rt[cE(0x189)](qt(a));}async function it(c,d,h,p){const cF=a0bq;let u=''+Ve()+d,H=a0=>({'method':c,'headers':{'Authorization':cF(0x156)+a0,'Content-Type':cF(0x120)},'body':h!==void 0x0?JSON['stringify'](h):void 0x0}),T=await Kt([p]),X=await ot(u,H(T));return X['status']===0x191&&(We([p]),T=await Kt([p]),X=await ot(u,H(T))),X['ok']||await zt(X),await X['json']();}async function Vt(a){const cG=a0bq;return await it(cG(0x199),cG(0xb2),a,cG(0x137));}async function Xt(a){const cH=a0bq;return await it(cH(0x199),'/monster/stop',{'session_id':a},'monster:write');}async function Jt(a){const cI=a0bq;let c=a===void 0x0?cI(0x111):cI(0xc0)+encodeURIComponent(a[cI(0x113)](','));return await it(cI(0x193),c,void 0x0,cI(0x162));}import*as a0bc from'node:fs';import*as a0bd from'node:path';import{randomUUID as a0bf}from'node:crypto';import*as a0bg from'node:fs';import*as a0bh from'node:path';var Qe=[{'key':a0bq(0x14e),'arg':a0bq(0x12a)},{'key':'Notification','arg':a0bq(0x1eb)},{'key':'UserPromptSubmit','arg':a0bq(0x18f)},{'key':'SessionEnd','arg':'session_end'},{'key':a0bq(0x1ad),'arg':'subagent_stop'}],Ye=[a0bq(0x158),a0bq(0x192),'Write',a0bq(0xd8),a0bq(0x112),a0bq(0xdb),'WebFetch',a0bq(0xe6),a0bq(0xc2),a0bq(0x136),a0bq(0xb9)];function Ze(a,c){const cJ=a0bq;let d=c??wt(),h={};for(let {key:i,arg:p}of Qe)h[i]=[{'matcher':'','hooks':[{'type':cJ(0x1e4),'command':d+'\x20'+a+'\x20'+p}]}];return{'hooks':h,'permissions':{'allow':Ye}};}function Wt(a,c){const cK=a0bq;let d=a0bh[cK(0x113)](a,'.claude');a0bg[cK(0x10c)](d,{'recursive':!0x0});let h=a0bh['join'](d,cK(0x11f)),i=Ze(c);return a0bg[cK(0x176)](h,JSON['stringify'](i,null,0x2),'utf8'),h;}import{execFileSync as a0bi}from'node:child_process';import{existsSync as a0bj,realpathSync as a0bk,writeFileSync as a0bl}from'node:fs';import{dirname as a0bm,join as a0bn,resolve as a0bo}from'node:path';var on=a0bq(0x19f);function an(){return process.env.BLUELAMP_PORTAL_API_BASE_URL||on;}function cn(){const cL=a0bq;let a;try{if(cL(0x127)===cL(0x1c3))return{'ok':!0x1,'bytes':0x0,'error':d?.[cL(0x1ba)]||e?.['message']||cL(0xb6)};else a=a0bi(cL(0x13f),[cL(0x146)],{'encoding':cL(0xf2)})[cL(0x152)]();}catch{return null;}if(!a||!a0bj(a))return null;let c;try{c=a0bk(a);}catch{return null;}let d=a0bo(a0bm(c),'..'),h=a0bn(d,cL(0x1c8),cL(0x159),'index.cjs');return a0bj(h)?h:null;}function un(a,c,d){const cM=a0bq;return{'mcpServers':{'bluelamp':{'command':cM(0x1cd),'args':[a],'env':{'PORTAL_URL':c,...d?{'MUSUHI_TENANT_ID':d}:{}}}}};}function Zt(a,c){const cN=a0bq;let d=cn();if(!d)return null;let h=an(),i=un(d,h,c),p=a0bn(a,'.mcp.json');return a0bl(p,JSON[cN(0xe9)](i,null,0x2),cN(0xf2)),p;}var mn=process.env.MONSTER_CLAUDE_BIN??a0bq(0x1bf),te=0xc,dn=0x20;function ln(){const cO=a0bq;let a=Number(process.env.MONSTER_MAX_CONCURRENT??te);return Number[cO(0x1b6)](a)?Math[cO(0x11d)](Math['max'](Math['floor'](a),0x1),dn):te;}function fn(){const cP=a0bq;let a=Number(process.env.MONSTER_DEFAULT_TIMEOUT_MIN??0x168);return Number[cP(0x1b6)](a)?Math[cP(0x11d)](Math['max'](Math[cP(0x1c5)](a),0x12c),0x5a0):0x168;}var L=ln();function _n(a){const cQ=a0bq;let c=a??fn();return Number[cQ(0x1b6)](c)?Math[cQ(0x11d)](Math[cQ(0x149)](Math[cQ(0x1c5)](c),0x12c),0x5a0):0x168;}async function ee(T,a0){const cR=a0bq;if(!T[cR(0xe7)]||typeof T[cR(0xe7)]!=cR(0x153))throw new Error('task\x20(string)\x20is\x20required');let a1=await g(await m());if(U(a1)>=L){if(cR(0xf0)===cR(0xf0)){let al=new Error(cR(0xab)+U(a1)+cR(0x1de)+L);throw al[cR(0x1be)]=cR(0xb5),al;}else return!0x1;}let a2=a0bf(),a3=a2['slice'](0x0,0x8),a4=cR(0x119)+a3;if(await G(a4))throw new Error(cR(0x105)+a4+cR(0x150));let a5=T[cR(0x1a5)]??ht(a2),a6=_n(T[cR(0x161)]);await Vt({'session_id':a2,'workdir':a5,'metadata':{'task_head':T['task'][cR(0x10d)](0x0,0xc8),'has_initial_context':!!T['initial_context'],'timeout_min':a6}}),a0bc[cR(0x10c)](a5,{'recursive':!0x0});let a7=I(a2);a0bc['mkdirSync'](a7,{'recursive':!0x0}),T[cR(0x17f)]&&a0bc['writeFileSync'](a0bd[cR(0x113)](a7,'CLAUDE.md'),T[cR(0x17f)],cR(0x15a)),Wt(a7,a2);let a8=a6,a9=new Date(),aa=new Date(a9[cR(0xf3)]()+a8*0xea60),ab=a5===a7||a5[cR(0x145)](a7+a0bd[cR(0x19d)])?'':cR(0x123)+a5+'\x22',ac=Zt(a7,T[cR(0x11c)]),ad=ac?'\x20--mcp-config\x20\x22'+ac+'\x22':'',af=mn+'\x20--dangerously-skip-permissions'+ab+ad,ag=await Tt(a4,a7,af);if(!ag['ok']){let ao=new Error(cR(0xb3)+ag[cR(0x194)]);throw ao[cR(0x1be)]=cR(0xf4),ao;}let ah=await At(a4);if(!await kt(a4,0x2d)){let ap=await m(),aq={'id':a2,'short_id':a3,'tmux_session':a4,'workdir':a5,'task':T[cR(0xe7)]['slice'](0x0,0xc8),'has_initial_context':!!T['initial_context'],'spawned_at':a9[cR(0x128)](),'expires_at':aa[cR(0x128)](),'status':cR(0x1c0),'last_action':cR(0x1b5),'last_action_at':new Date()[cR(0x128)](),'ready_timeout':!0x0,'pgid':ah};return ap['monsters'][a2]=aq,await _(ap),await P(C(a2,a4,'spawn_timeout',{'pgid':ah??null,'timeout_sec':0x2d})),{'monster_id':a2,'short_id':a3,'tmux_session':a4,'workdir':a5,'spawned_at':a9['toISOString'](),'ready_timeout':!0x0,'recovery_hint':'ready\x20signal\x20未検出。tmux\x20session\x20は存在。send_to_monster\x20でタスク再送可能'};}await new Promise(ar=>setTimeout(ar,0x320));let ai=await $(a4,T[cR(0xe7)]);if(!ai['ok']){if(cR(0x13e)!==cR(0xe3)){await b(a4);let ar=new Error(cR(0x155)+ai[cR(0x194)]);throw ar[cR(0x1be)]=cR(0xee),ar;}else{let au=new h(i[cR(0x197)]);n=o[cR(0x160)](av=>au[cR(0x133)](av[cR(0x122)]));}}let aj={'id':a2,'short_id':a3,'tmux_session':a4,'workdir':a5,'task':T['task'][cR(0x10d)](0x0,0xc8),'has_initial_context':!!T['initial_context'],'spawned_at':a9['toISOString'](),'expires_at':aa[cR(0x128)](),'status':cR(0x1c0),'last_action':cR(0x1dc),'last_action_at':a9[cR(0x128)](),'ready_timeout':!0x1,'pgid':ah},ak=await m();return ak[cR(0xd1)][a2]=aj,await _(ak),await P(C(a2,a4,cR(0x1dc),{'pgid':ah??null,'initial_context':!!T['initial_context']})),Dt(a0,a2,a4),{'monster_id':a2,'short_id':a3,'tmux_session':a4,'workdir':a5,'spawned_at':aj[cR(0x1da)],'expires_at':aj[cR(0xb1)],'ready_timeout':!0x1,'attach_command':cR(0x19a)+a4};}async function ne(h,i){const cS=a0bq;let H=await g(await m());await _(H);let X=h['include_stopped']===!0x0,a0=Object[cS(0x129)](H[cS(0xd1)]),a1=a0[cS(0x160)](a6=>a6[cS(0x15e)]==='running')[cS(0x117)](a6=>a6['id']);try{await Jt(a1);}catch(a6){let a7=a6 instanceof Error?a6[cS(0x167)]:String(a6);process[cS(0x1ba)][cS(0x163)](cS(0x17b)+a7+'\x0a');}let a2=(X?a0:a0[cS(0x160)](a8=>a8[cS(0x15e)]===cS(0x1c0)))[cS(0x117)](a8=>{const cT=cS;let a9=N(i['recentEvents'],a8['id']);return{'id':a8['id'],'short_id':a8[cT(0x109)],'tmux_session':a8[cT(0x170)],'status':a8[cT(0x15e)],'workdir':a8[cT(0x1a5)],'spawned_at':a8[cT(0x1da)],'expires_at':a8[cT(0xb1)],'task_head':a8['task'],'latest_event':a9?{'event':a9[cT(0x122)],'subtype':typeof a9['meta']?.[cT(0x11b)]==cT(0x153)?a9[cT(0x104)]['subtype']:void 0x0,'ts':a9['ts']}:void 0x0};}),a3=a0[cS(0x160)](a8=>a8[cS(0x15e)]===cS(0x1c0))['length'],a4=xt(i[cS(0x1b7)],h['since_ts'],0x5),a5=a4[cS(0xc5)]>0x0?a4[a4[cS(0xc5)]-0x1]['ts']:i[cS(0xd4)];return{'total':a0[cS(0xc5)],'running':a3,'capacity':L,'monsters':a2,'recent_events':a4,'max_event_ts':a5};}async function se(a){const cU=a0bq;if(typeof a?.[cU(0x177)]!=cU(0x153)||a[cU(0x177)][cU(0x152)]()[cU(0xc5)]===0x0)throw new Error(cU(0x1e2));if(!jt(a?.['ts']))throw new Error('ts\x20is\x20required\x20and\x20must\x20be\x20ISO\x208601\x20(e.g.\x202026-04-30T12:34:56Z)');let c=q(a[cU(0x177)]),d=await Bt(c,a['ts']);return{'agent_id':c,'ts':d[cU(0xd0)],'previous_ts':d[cU(0x1bc)]};}async function re(c,d){const cV=a0bq;if(!c['id'])throw new Error(cV(0x1f0));let h=await g(await m()),p=k(h,c['id']);if(!p)throw new Error(cV(0x108)+c['id']+cV(0xe4));let u=Math[cV(0x11d)](Math[cV(0x149)](c[cV(0x1ec)]??0x32,0x1),0x1f4);if(p['status']!=='running'){let X=N(d['recentEvents'],p['id']);return{'status':p[cV(0x15e)],'tmux_session':p[cV(0x170)],'tail_lines':u,'content':'','latest_event':X?{'event':X[cV(0x122)],'ts':X['ts']}:void 0x0};}let H=await D(p[cV(0x170)],u);p['last_action']=cV(0xbd),p['last_action_at']=new Date()[cV(0x128)](),await _(h);let T=N(d[cV(0x1b7)],p['id']);return{'status':p[cV(0x15e)],'tmux_session':p[cV(0x170)],'tail_lines':u,'content':H,'latest_event':T?{'event':T[cV(0x122)],'ts':T['ts']}:void 0x0};}async function oe(a){const cW=a0bq;if(!a['id']||!a[cW(0x167)])throw new Error('id\x20and\x20message\x20are\x20required');let c=await g(await m()),d=k(c,a['id']);if(!d)throw new Error(cW(0x108)+a['id']+'\x20not\x20found');if(d[cW(0x15e)]!==cW(0x1c0)){let p=new Error(cW(0x165)+d['status']);throw p[cW(0x1be)]='MONSTER_NOT_RUNNING',p;}let h=await $(d[cW(0x170)],a[cW(0x167)]);if(!h['ok']){let u=new Error(cW(0x155)+h[cW(0x194)]);throw u[cW(0x1be)]=cW(0xee),u;}let i=new Date()[cW(0x128)]();return d[cW(0x1ea)]='sent',d['last_action_at']=i,await _(c),{'sent_at':i,'monster_id':d['id'],'bytes_sent':h[cW(0x183)]};}async function ie(a,c){const cX=a0bq;if(!a['id'])throw new Error('id\x20is\x20required');let d=await g(await m()),h=k(d,a['id']);if(!h)throw new Error(cX(0x108)+a['id']+cX(0xe4));if(!h['id'])throw new Error(cX(0x15f));let p=a['reason']??cX(0x12b);h[cX(0x15e)]===cX(0x1c0)&&await b(h[cX(0x170)]),h[cX(0x15e)]=cX(0x18b),h['last_action']=cX(0x126)+p,h[cX(0xfb)]=new Date()[cX(0x128)](),await _(d),$t(c,h['id']),await P(C(h['id'],h[cX(0x170)],cX(0x18b),{'reason':p}));try{await Xt(h['id']);}catch(u){if(cX(0x168)===cX(0x168)){let H=u instanceof Error?u[cX(0x167)]:String(u);process[cX(0x1ba)][cX(0x163)]('[monster-orchestrator]\x20backend\x20stopSession\x20failed\x20(local\x20stop\x20still\x20succeeded):\x20'+H+'\x0a');}else return{'mcpServers':{'bluelamp':{'command':cX(0x1cd),'args':[h],'env':{'PORTAL_URL':i,...n?{'MUSUHI_TENANT_ID':u}:{}}}}};}return{'stopped_at':h['last_action_at'],'monster_id':h['id'],'reason':p,'remaining_running':U(d)};}var yn=[{'name':a0bq(0xe8),'description':a0bq(0xdf),'inputSchema':{'type':a0bq(0xba),'properties':{'task':{'type':a0bq(0x153),'description':a0bq(0xbb)},'workdir':{'type':'string','description':a0bq(0xc7)},'initial_context':{'type':a0bq(0x153),'description':'CLAUDE.md\x20に書き込む追加コンテキスト(任意)'},'timeout_min':{'type':a0bq(0xd5),'description':a0bq(0x1ed)},'bl_tenant_id':{'type':a0bq(0x153),'description':'monster\x20が動作する\x20BlueLamp\x20テナントの\x20UUID(任意)。指定すると\x20MUSUHI_TENANT_ID\x20として注入され、monster\x20の\x20load_knowledge\x20等がそのテナントで解決される(@テックリードプラス\x20等のテナントエージェントをメンバー権限で読める・rank\x20gate\x20で判定・越境なし)。@CTO/司令塔\x20が「このモンスターをどのテナントとして動かすか」を明示する用途。省略時は従来どおり\x20active_tenant_id\x20依存。'}},'required':[a0bq(0xe7)]}},{'name':a0bq(0x1b2),'description':a0bq(0x102),'inputSchema':{'type':'object','properties':{'include_stopped':{'type':a0bq(0x1a9),'description':a0bq(0x184)},'since_ts':{'type':a0bq(0x153),'description':a0bq(0xf8)}}}},{'name':'query_monster','description':'monster\x20の\x20tmux\x20pane\x20末尾\x20N\x20行を取得する(ANSI\x20strip\x20済)。','inputSchema':{'type':'object','properties':{'id':{'type':a0bq(0x153),'description':a0bq(0x1e3)},'tail_lines':{'type':a0bq(0xd5),'description':'取得行数。default\x2050、max\x20500。'}},'required':['id']}},{'name':'send_to_monster','description':a0bq(0xfd),'inputSchema':{'type':a0bq(0xba),'properties':{'id':{'type':a0bq(0x153),'description':a0bq(0x1ae)},'message':{'type':a0bq(0x153),'description':a0bq(0x135)}},'required':['id',a0bq(0x167)]}},{'name':a0bq(0x1d8),'description':a0bq(0x1c2),'inputSchema':{'type':a0bq(0xba),'properties':{'id':{'type':a0bq(0x153),'description':a0bq(0x1ae)},'reason':{'type':a0bq(0x153),'description':a0bq(0xad)}},'required':['id']}},{'name':'get_monster_events','description':'events.log(+\x20rotate\x20済\x20.1/.2)から\x20NDJSON\x20イベントをページング取得する。monster_id\x20/\x20since_ts\x20/\x20event_types\x20でフィルタ、limit\x20で件数制限(default\x2050、max\x20500)。v2.3.0\x20から\x20agent_id\x20を渡すと\x20since_ts\x20省略時に\x20state.json.cursors[agent_id]\x20を自動\x20fallback\x20として使う(前回\x20mark_events_seen\x20で記録した時刻以降のみ取得)。テックリード型\x20agent\x20は\x20agent_id=\x27tech-lead-main\x27\x20等を指定\x20+\x20取得後\x20max_event_ts\x20で\x20mark_events_seen\x20を呼ぶ運用を推奨。','inputSchema':{'type':a0bq(0xba),'properties':{'monster_id':{'type':'string','description':a0bq(0x116)},'since_ts':{'type':a0bq(0x153),'description':a0bq(0x1e6)},'event_types':{'type':a0bq(0x16a),'items':{'type':a0bq(0x153),'enum':['spawned',a0bq(0x1b5),a0bq(0x12a),'awaiting_input',a0bq(0x18f),a0bq(0x19c),'subagent_stop',a0bq(0x18b),a0bq(0x194)]}},'limit':{'type':'number','description':a0bq(0x1ab)},'agent_id':{'type':a0bq(0x153),'description':a0bq(0x1b3)}}}},{'name':'mark_events_seen','description':a0bq(0x141),'inputSchema':{'type':a0bq(0xba),'properties':{'agent_id':{'type':'string','description':a0bq(0x17c)},'ts':{'type':'string','description':a0bq(0xaf)}},'required':['agent_id','ts']}}];async function ae(d,h){const cY=a0bq;let p=JSON['stringify'](h,null,0x2),u=await m(),H=Object[cY(0x129)](u[cY(0xd1)]),T=H[cY(0x160)](a2=>a2[cY(0x15e)]===cY(0x1c0))['length'],X=new Map(H[cY(0x117)](a2=>[a2['id'],a2])),a0=N(d[cY(0x1b7)]),a1=vt({'runningCount':T,'capacity':L,'latestEvent':a0,'monstersById':X});return a1?''+p+a1:p;}function En(a){const cZ=a0bq;let c=a instanceof Error?a['message']:String(a),d=a&&typeof a=='object'&&cZ(0x1be)in a?String(a['code']):void 0x0;return{'msg':c,'code':d};}async function xn(a,c,d){const d0=a0bq;switch(a){case d0(0xe8):return ee(c,d);case'list_monsters':return ne(c,d);case d0(0x1e9):return re(c,d);case d0(0x131):return oe(c);case d0(0x1d8):return ie(c,d);case'get_monster_events':return Ht(c);case d0(0xcb):return se(c);default:throw new Error('unknown\x20tool:\x20'+a);}}async function vn(){const d1=a0bq;Lt();let d=await Pt();Ct(d);let h=new a0aN({'name':'monster-orchestrator','version':d1(0x1af)},{'capabilities':{'tools':{}}});h['setRequestHandler'](a0aQ,async()=>({'tools':yn})),h[d1(0xac)](a0aP,async H=>{const d2=d1;let T=H['params']['name'],X=H[d2(0xbe)]['arguments']??{};try{let a0=await xn(T,X,d);return{'content':[{'type':d2(0x14b),'text':await ae(d,a0)}]};}catch(a1){let {msg:a2,code:a3}=En(a1);return{'content':[{'type':d2(0x14b),'text':await ae(d,{'error':a2,'code':a3})}],'isError':!0x0};}});let p=new a0aO();await h[d1(0x1d9)](p);let u=d1(0x1a1);try{let {readFileSync:H}=await import(d1(0x1d5)),{fileURLToPath:T}=await import(d1(0x1bd)),{dirname:X,join:a0}=await import(d1(0x107)),a1=a0(X(T(import.meta.url)),'..','package.json');u=JSON['parse'](H(a1,d1(0xf2)))[d1(0x121)]||d1(0x1a1);}catch{}process[d1(0x1ba)][d1(0x163)]('monster-orchestrator\x20MCP\x20server\x20v'+u+d1(0x182));}vn()[a0bq(0x19b)](a=>{const d3=a0bq;process[d3(0x1ba)][d3(0x163)](d3(0xc4)+String(a)+'\x0a'),process[d3(0x16d)](0x1);});
|
|
2
|
+
const a0bE=a0c;(function(a,c){const bD=a0c,e=a();while(!![]){try{const i=parseInt(bD(0x285))/0x1+-parseInt(bD(0x247))/0x2*(-parseInt(bD(0x19d))/0x3)+parseInt(bD(0x196))/0x4+parseInt(bD(0x2d1))/0x5*(-parseInt(bD(0x317))/0x6)+-parseInt(bD(0x245))/0x7+-parseInt(bD(0x1e7))/0x8*(-parseInt(bD(0x29e))/0x9)+-parseInt(bD(0x2a0))/0xa;if(i===c)break;else e['push'](e['shift']());}catch(m){e['push'](e['shift']());}}}(a0a,0xe11e6));import{readFileSync as a0aQ}from'node:fs';import{dirname as a0aR,join as a0aS}from'node:path';import{fileURLToPath as a0aT}from'node:url';import{Server as a0aU}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport as a0aV}from'@modelcontextprotocol/sdk/server/stdio.js';import{CallToolRequestSchema as a0aW,ListToolsRequestSchema as a0aX}from'@modelcontextprotocol/sdk/types.js';import*as a0aY from'node:fs';import*as a0aZ from'node:fs/promises';import*as a0b0 from'node:os';import*as a0b1 from'node:path';import{fileURLToPath as a0b2}from'node:url';var et=process.env.MONSTER_MCP_ROOT,y=et&&et[a0bE(0x27a)]>0x0?et:a0b1['join'](a0b0[a0bE(0x17e)](),a0bE(0x204),a0bE(0x2db)),W=a0b1['join'](y,'state.json'),N=a0b1[a0bE(0x208)](y,'state.lock'),_=a0b1['join'](y,'events.log'),P=a0b1[a0bE(0x208)](y,a0bE(0x23a)),$=a0b1['join'](y,'events.log.2'),vt=0xa*0x400*0x400,Tt=0x5*0x400*0x400,Ve=a0b1[a0bE(0x208)](y,a0bE(0x20b)),Wr=Ve+'.lock',C=a0b1[a0bE(0x208)](y,a0bE(0x1d1)),Ot=C+'.1',At=0x2*0x400*0x400;function k(a){const bF=a0bE;return a0b1[bF(0x208)](y,a);}function rt(a){const bG=a0bE;return a0b1['join'](k(a),bG(0x1fc));}function Nt(a){const bH=a0bE;return a0b1[bH(0x208)](k(a),'session.log.1');}function q(a){const bI=a0bE;return a0b1[bI(0x208)](k(a),bI(0x318));}function kt(a){const bJ=a0bE;return a0b1[bJ(0x208)](k(a),bJ(0x24a));}function Rt(){const bK=a0bE;if(process.env.MONSTER_HOOK_PATH)return process.env.MONSTER_HOOK_PATH;try{let a=a0b2(import.meta.url),c=a0b1[bK(0x179)](a0b1[bK(0x19a)](a),'..');return a0b1['join'](c,bK(0x2d8),bK(0x209));}catch{return bK(0x2ed)==='moOpO'?a0b1[bK(0x208)](a0b0['homedir'](),bK(0x32a),bK(0x209)):i[bK(0x208)](m(n),'workspace');}}function ot(){const bL=a0bE;a0aY[bL(0x257)](y,{'recursive':!0x0}),a0aY[bL(0x325)](_)||a0aY[bL(0x305)](_,'',bL(0x290));}async function Je(){const bM=a0bE;try{if(bM(0x181)!=='Zewop'){if(m(n))throw new o(p);return!0x1;}else{if((await a0aZ[bM(0x2ce)](_))[bM(0x20c)]<vt)return!0x1;}}catch{return!0x1;}try{return bM(0x221)===bM(0x2bb)?'':(a0aY[bM(0x325)]($)&&await a0aZ[bM(0x200)]($),a0aY['existsSync'](P)&&await a0aZ[bM(0x2cf)](P,$),await a0aZ['rename'](_,P),await a0aZ[bM(0x21c)](_,'',bM(0x290)),!0x0);}catch{return!0x1;}}async function j(a){const bN=a0bE;ot(),await Je();let c=JSON['stringify'](a)+'\x0a';await a0aZ[bN(0x1a9)](_,c,bN(0x290));}function H(a,c,i,m={}){const bO=a0bE;return{'ts':new Date()[bO(0x1e6)](),'monster_id':a,'event':i,'session':c,'meta':m};}function Xe(a){const bP=a0bE;let c=a['split']('\x0a'),i=[];for(let m of c)if(m[bP(0x28f)]())try{let o=JSON[bP(0x206)](m);o&&o['ts']&&o[bP(0x19f)]&&i['push'](o);}catch{}return i;}async function st(a){const bQ=a0bE;try{return await a0aZ[bQ(0x2b4)](a,bQ(0x290));}catch{if(bQ(0x1c0)===bQ(0x1c0))return'';else{if(i['length']===0x0)return null;let e=m[bQ(0x2eb)](r=>r[bQ(0x1f8)]+'(status='+r[bQ(0x312)]+bQ(0x303)+r['pgid']+'\x20since='+r['lastActionAt']+')')[bQ(0x208)]('\x20');return'孤児プロセス候補\x20'+n[bQ(0x27a)]+'\x20件(検知のみ・kill\x20はしない\x20/\x20pid\x20再利用の可能性があるため断定ではない):\x20'+e;}}}async function It(){const bR=a0bE;let a=[],c=[];a0aY[bR(0x325)]($)&&(c[bR(0x168)](await st($)),a[bR(0x168)](bR(0x160))),a0aY[bR(0x325)](P)&&(c['push'](await st(P)),a[bR(0x168)]('events.log.1')),a0aY[bR(0x325)](_)&&(c['push'](await st(_)),a[bR(0x168)](bR(0x273)));let i=c['join']('\x0a');return{'events':Xe(i),'scannedFiles':a};}async function Lt(a=0xc8){let {events:c}=await It();return c['slice'](-a);}function bt(a,c){const bS=a0bE;return a[bS(0x2b9)]?!!(a['monster_id']===c||a['monster_id']['startsWith'](c)):!0x1;}async function Mt(m){const bT=a0bE;let p=Math[bT(0x29f)](Math[bT(0x1d7)](m[bT(0x23d)]??0x32,0x1),0x1f4),{events:x,scannedFiles:S}=await It(),a0=x;if(m['monster_id']&&(a0=a0[bT(0x2b5)](a5=>bt(a5,m['monster_id']))),m[bT(0x1a0)]&&m['event_types'][bT(0x27a)]>0x0){if('OxxMc'!==bT(0x1ba))return a4?.[bT(0x272)]===bT(0x1b7);else{let a6=new Set(m[bT(0x1a0)]);a0=a0[bT(0x2b5)](a7=>a6[bT(0x2bd)](a7[bT(0x19f)]));}}if(m[bT(0x23f)]){let a7=m[bT(0x23f)];a0=a0[bT(0x2b5)](a8=>a8['ts']>a7);}a0['sort']((a8,a9)=>a8['ts']<a9['ts']?-0x1:a8['ts']>a9['ts']?0x1:0x0);let a1=a0[bT(0x27a)],a2=a0[bT(0x246)](-p),a3=a1>a2[bT(0x27a)],a4=a2[bT(0x27a)]>0x0?a2[a2[bT(0x27a)]-0x1]['ts']:null;return{'events':a2,'returned':a2[bT(0x27a)],'has_more':a3,'max_event_ts':a4,'scanned_files':S};}function b(a,c){const bU=a0bE;let i=c?a[bU(0x2b5)](m=>bt(m,c)):a;return i[bU(0x27a)]===0x0?null:i[i[bU(0x27a)]-0x1];}function Pt(a,c,i=0x5){const bV=a0bE;return c?a[bV(0x2b5)](m=>m['ts']>c)[bV(0x246)](-i):a[bV(0x246)](-i);}function ze(a,c){const bW=a0bE;let i=c['get'](a[bW(0x2b9)]);return i?'monster-'+i[bW(0x227)]:a[bW(0x2b9)]['length']>0x8?a[bW(0x2b9)][bW(0x246)](0x0,0x8):a[bW(0x2b9)];}function We(a){const bX=a0bE;let c=new Date(a)[bX(0x1ed)](),i=Date[bX(0x21e)](),m=Math[bX(0x1d7)](0x0,Math[bX(0x1d3)]((i-c)/0x3e8));if(m<0x3c)return m+bX(0x236);let o=Math[bX(0x1d3)](m/0x3c);return o<0x3c?o+bX(0x1ec):Math[bX(0x1d3)](o/0x3c)+bX(0x2c8);}function $t(a){const bY=a0bE;let {runningCount:p,capacity:x,latestEvent:S,monstersById:a0}=a;if(p===0x0&&!S)return'';let a1=bY(0x2ab)+p+'/'+x,a2='';if(S){let a3=ze(S,a0),a4=We(S['ts']),a5=S[bY(0x2d9)]?.[bY(0x1fe)]?'\x20('+S[bY(0x2d9)][bY(0x1fe)]+')':'';a2='\x20\x20|\x20\x20📬\x20最新イベント:\x20'+S[bY(0x19f)]+a5+bY(0x24f)+a3+'\x20('+a4+')';}return bY(0x301)+a1+a2+'\x0a💡\x20継続監視:\x20/loop\x2060s\x20/check-monsters(稼働ゼロで自己終了)';}import*as a0b3 from'node:fs';import*as a0b4 from'node:fs/promises';import*as a0b5 from'node:fs';import*as a0b6 from'node:fs/promises';import{execFile as a0b7}from'node:child_process';import{promisify as a0b8}from'node:util';import*as a0b9 from'node:fs';var A=a0b8(a0b7);function Qe(){const bZ=a0bE;let a=process.env.MONSTER_TMUX_BIN;if(a)return a;for(let c of[bZ(0x229),'/usr/local/bin/tmux'])try{if(a0b9[bZ(0x325)](c))return c;}catch{}return'tmux';}var T=Qe(),it=class extends Error{constructor(a){const c0=a0bE;super('tmux\x20を実行できません(bin='+T+c0(0x169)+String(a)),this[c0(0x1b3)]=c0(0x287);}};function Ze(a){const c1=a0bE;let c=a?.[c1(0x272)];return c===c1(0x21d)||c===c1(0x180)||c==='EPERM';}var tn=/\x1b\[[0-9;?]*[A-Za-z]/g;function Dt(a){const c2=a0bE;return a[c2(0x262)](tn,'')['replace'](/\r/g,'');}async function M(a){const c3=a0bE;try{return await A(T,[c3(0x289),'-t',a]),!0x0;}catch(c){if(c3(0x172)!==c3(0x172))c(i);else{if(Ze(c))throw new it(c);return!0x1;}}}async function Ut(a=process.env){const c4=a0bE;if(!a[c4(0x1e5)])return null;try{if(c4(0x281)!==c4(0x2df)){let {stdout:c}=await A(T,['display-message','-p','#S']),i=Dt(c)[c4(0x28f)]();return i['length']>0x0?i:null;}else{let o=o(p.env.MONSTER_DEFAULT_TIMEOUT_MIN??0x168);return r[c4(0x241)](o)?s[c4(0x29f)](a[c4(0x1d7)](u[c4(0x1d3)](o),0x12c),0x5a0):0x168;}}catch{if(c4(0x223)===c4(0x223))return null;else{let p=new p(r)[c4(0x1ed)](),r=s[c4(0x21e)](),s=a[c4(0x1d7)](0x0,u[c4(0x1d3)]((r-p)/0x3e8));if(s<0x3c)return s+c4(0x236);let u=x['floor'](s/0x3c);return u<0x3c?u+c4(0x1ec):S[c4(0x1d3)](u/0x3c)+c4(0x2c8);}}}async function Ft(a,c,i){const c5=a0bE;try{return await A(T,['new-session','-d','-s',a,'-c',c,i]),{'ok':!0x0};}catch(m){return{'ok':!0x1,'error':m?.['stderr']||m?.['message']||c5(0x212)};}}async function D(a){const c6=a0bE;try{if(c6(0x25a)===c6(0x2c5)){let e=new m(n[c6(0x1a0)]);o=p[c6(0x2b5)](u=>e[c6(0x2bd)](u[c6(0x19f)]));}else return await A(T,[c6(0x268),'-t',a]),!0x0;}catch{return!0x1;}}async function B(a,c){const c7=a0bE;try{if(c7(0x1e2)==='Euljd')return!0x1;else{let {stdout:m}=await A(T,[c7(0x320),'-t',a,'-p','-S','-'+c]);return Dt(m);}}catch{return'';}}function en(a){const c8=a0bE;return Math[c8(0x29f)](0x64+Math[c8(0x1d3)](a/0x4),0x5dc);}async function G(a,c){const c9=a0bE;try{if(c9(0x1fd)!==c9(0x1fd))return null;else{let m=c[c9(0x262)](/\n+$/,'');await A(T,[c9(0x2e2),'-t',a,'-l',m]);let o=en(m['length']);return await new Promise(p=>setTimeout(p,o)),await A(T,[c9(0x2e2),'-t',a,c9(0x240)]),await new Promise(p=>setTimeout(p,0xc8)),await A(T,['send-keys','-t',a,'Enter']),{'ok':!0x0,'bytes':Buffer[c9(0x215)](m,'utf8')};}}catch(p){if(c9(0x163)!=='BfjZe')m[c9(0x1c2)][c9(0x1c4)]('monster-orchestrator\x20fatal:\x20'+p(o)+'\x0a'),p['exit'](0x1);else return{'ok':!0x1,'bytes':0x0,'error':p?.[c9(0x1c2)]||p?.[c9(0x299)]||c9(0x2f7)};}}var nn=/bypass permissions on|shift\+tab to cycle|esc to interrupt|⏵⏵/,rn=[{'pattern':/trust this folder|Is this a project you (created|trust)/,'response':'','description':a0bE(0x188)}];async function sn(a){try{await A(T,['send-keys','-t',a,'Enter']);}catch{}}function on(a){const ca=a0bE;for(let c of rn)if(c[ca(0x182)][ca(0x1bc)](a))return c;return null;}async function jt(a,c=0x2d){const cb=a0bE;let i=new Set();for(let m=0x0;m<c;m++){let p=await B(a,0x32);if(nn[cb(0x1bc)](p))return!0x0;let u=on(p);u&&!i[cb(0x2bd)](u['pattern'])&&(u[cb(0x29c)]?await G(a,u[cb(0x29c)]):await sn(a),i['add'](u[cb(0x182)])),await new Promise(x=>setTimeout(x,0x3e8));}return!0x1;}async function Ht(a){const cc=a0bE;try{if('STRpR'!==cc(0x1ac)){let {stdout:c}=await A(T,[cc(0x1ff),'-t',a,'-F','#{pane_pid}']),i=Number(c[cc(0x28f)]()[cc(0x26a)]('\x0a')[0x0]);return Number[cc(0x241)](i)?i:null;}else return[...c][cc(0x2c0)]()[cc(0x208)](',');}catch{return null;}}var Kt=0xea60,an=0x64,cn=Kt*0x3;function at(a){const cd=a0bE;try{if(cd(0x1c9)==='zewxX')throw o instanceof p?new r(cd(0x18a),s[cd(0x299)]):new a(cd(0x18a),'CLI\x20token\x20読み込み失敗:\x20'+u[cd(0x299)]);else{let i=JSON['parse'](a);if(!i||typeof i!='object')return null;let m=Number(i[cd(0x2ee)]);if(!Number['isInteger'](m)||m<=0x0)return null;let o=i['ts'];return{'pid':m,'ts':typeof o==cd(0x1f1)?o:''};}}catch{if(cd(0x16e)!=='eCIXI')return null;else e(cd(0x1f3),i);}}function un(a,c){const cf=a0bE;return JSON[cf(0x193)]({'pid':a,'ts':new Date(c)['toISOString']()});}function pn(a,c,i,m){const cg=a0bE;if(!a||a[cg(0x2ee)]===c||!m(a['pid']))return!0x0;let o=Date[cg(0x206)](a['ts']);return Number['isFinite'](o)?i-o>cn:!0x0;}function ln(a){const ch=a0bE;return a[ch(0x28f)]()[ch(0x27a)]>0x0;}function fn(a){const ci=a0bE;return a===ci(0x248)?ci(0x2a6):ci(0x288);}function dn(a,c){const cj=a0bE;return cj(0x1ad)+a+cj(0x25e)+c+'\x0a';}function K(a){const ck=a0bE;try{return process['kill'](a,0x0),!0x0;}catch(c){return c?.[ck(0x272)]===ck(0x1b7);}}async function Bt(a){const cl=a0bE;await a0b6[cl(0x30a)](k(a),{'recursive':!0x0});}async function mn(a){const cm=a0bE;let c=rt(a);try{if((await a0b6[cm(0x2ce)](c))[cm(0x20c)]<Tt)return;}catch{if(cm(0x27d)!==cm(0x2f3))return;else return n['monster_id']?!!(o[cm(0x2b9)]===p||r[cm(0x2b9)][cm(0x214)](s)):!0x1;}let i=Nt(a);try{if('vrwdQ'===cm(0x176)){let p=o(p['values'](r[cm(0x2db)]),s),r=a(p);return r&&u(r),p;}else a0b5[cm(0x325)](i)&&await a0b6[cm(0x200)](i),await a0b6[cm(0x2cf)](c,i);}catch{}}function Vt(a=process[a0bE(0x2ee)]){const cv=a0bE;return{'sessionLiveness':async c=>{const co=a0c;try{return await M(c)?'alive':co(0x248);}catch{return co(0x1f2)==='eMyjM'?co(0x1eb):{'ts':new n()[co(0x1e6)](),'monster_id':o,'event':p,'session':r,'meta':s};}},'capturePane':(c,i)=>B(c,i),'readLock':async c=>{const cp=a0c;try{return await a0b6[cp(0x2b4)](q(c),cp(0x290));}catch{return null;}},'writeLock':async(c,i)=>{const cq=a0c;if(cq(0x24c)===cq(0x251))return c??i??cq(0x21b);else{await Bt(c);let o=q(c),p=o+'.'+a+cq(0x17a);await a0b6[cq(0x21c)](p,i,cq(0x290)),await a0b6[cq(0x2cf)](p,o);}},'removeLock':async(c,i)=>{const cs=a0c;if('hjSIA'!==cs(0x2d0)){let m=q(c);try{let o=at(await a0b6[cs(0x2b4)](m,cs(0x290)));if(o&&o['pid']!==i)return;await a0b6[cs(0x200)](m);}catch{}}else{let u={...a4,'monsters':{...a5['monsters']}},x=new a6([...a7[cs(0x1f7)](a8[cs(0x2db)]),...a9['keys'](aa[cs(0x2db)])]);for(let a0 of x){let a1=au['monsters'][a0],a2=av[cs(0x2db)][a0];aw['stringify'](a1)!==ax['stringify'](a2)&&(a2===void 0x0?delete u[cs(0x2db)][a0]:u[cs(0x2db)][a0]=a2);}let S=new ag([...ah[cs(0x1f7)](ai[cs(0x321)]??{}),...aj[cs(0x1f7)](ak[cs(0x321)]??{})]);for(let a3 of S){let a4=(aA[cs(0x321)]??{})[a3],a5=(aB['cursors']??{})[a3];a4!==a5&&(a5===void 0x0?u[cs(0x321)]&&delete u[cs(0x321)][a3]:u[cs(0x321)]={...u[cs(0x321)]??{},[a3]:a5});}return u;}},'rotateLog':c=>mn(c),'appendLog':async(c,i)=>{const cu=a0c;await Bt(c);try{await a0b6[cu(0x1a9)](rt(c),i,cu(0x290));}catch{}},'isPidAlive':K,'now':()=>Date[cv(0x21e)](),'selfPid':a};}async function hn(a,c){const cw=a0bE;let i=await c['readLock'](a),m=i===null?null:at(i);if(!pn(m,c['selfPid'],c[cw(0x21e)](),c[cw(0x1b2)]))return!0x1;try{await c['writeLock'](a,un(c[cw(0x1bb)],c[cw(0x21e)]()));}catch{if(cw(0x19e)===cw(0x28d)){let x=new c(cw(0x28a)+i[cw(0x232)]);throw x[cw(0x272)]='MODEL_REJECTED',x;}else return!0x0;}let p=null;try{let x=await c[cw(0x282)](a);p=x===null?null:at(x);}catch{return!0x0;}return p===null?!0x0:p[cw(0x2ee)]===c[cw(0x1bb)];}async function _n(a,c,i=Vt()){const cx=a0bE;let m=await i['sessionLiveness'](c);if(fn(m)==='stop')return await i['removeLock'](a,i[cx(0x1bb)]),cx(0x2dd);if(!await hn(a,i))return cx(0x24d);let o=await i[cx(0x1aa)](c,an);return ln(o)?(await i['rotateLog'](a),await i[cx(0x1ea)](a,dn(new Date(i[cx(0x21e)]())[cx(0x1e6)](),o)),'appended'):cx(0x184);}function Jt(m,p,u={}){const cy=a0bE;let x=u['intervalMs']??Kt,S=u[cy(0x291)]??Vt(),a0=!0x1,a1=!0x1,a2=null,a3=a4=>{const cz=cy;cz(0x1e8)!=='xrKWq'?a0||(a0=!0x0,a2!==null&&(clearInterval(a2),a2=null),Promise[cz(0x179)](S['removeLock'](m,S[cz(0x1bb)]))[cz(0x177)](()=>{}),u[cz(0x1ab)]?.(a4)):a1=m(u,cz(0x2fd));};return a2=setInterval(()=>{const cA=cy;if(cA(0x1f6)===cA(0x1f6))a0||a1||(a1=!0x0,_n(m,p,S)[cA(0x1c1)](a4=>{const cB=cA;cB(0x2d6)===cB(0x1bd)?(u['on'](cB(0x26b),a6=>{const cC=cB;m('uncaughtException',a6),a4[cC(0x263)](0x1);}),x['on'](cB(0x270),a6=>{const cD=cB;m(cD(0x270),a6);})):a4===cB(0x2dd)&&a3(cB(0x183));})[cA(0x177)](()=>{})['finally'](()=>{a1=!0x1;}));else try{return m[cA(0x210)](u,0x0),!0x0;}catch(a5){return a5?.['code']==='EPERM';}},x),{'stop':()=>a3(cy(0x1be))};}function ut(){const cE=a0bE;a0b3[cE(0x257)](y,{'recursive':!0x0});}var ct=new WeakMap();function wn(a){const cF=a0bE;let c=JSON[cF(0x206)](a);return!c||typeof c!='object'||!c[cF(0x2db)]?{'monsters':{}}:c;}async function Yt(){const cG=a0bE;try{if(cG(0x274)!==cG(0x2b1))return wn(await a0b4[cG(0x2b4)](W,cG(0x290)));else m(cG(0x2af),n),o(p);}catch{if(cG(0x284)!=='IxfVK'){let e=new e(cG(0x32b)+i[cG(0x2cd)]);throw e['code']=cG(0x296),e;}else return{'monsters':{}};}}async function f(){const cH=a0bE;ut();let a=await Yt();return ct[cH(0x1cb)](a,structuredClone(a)),a;}var Xt=0x0;function a0c(a,b){a=a-0x15d;const c=a0a();let d=c[a];if(a0c['VjTPME']===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['TzKwQG']=e,a0c['qRCeFY']={},a0c['VjTPME']=!![];}const f=c[0x0],g=a+f,h=a0c['qRCeFY'][g];return!h?(d=a0c['TzKwQG'](d),a0c['qRCeFY'][g]=d):d=h,d;}function Sn(){const cI=a0bE;return Xt+=0x1,W+'.'+process[cI(0x2ee)]+'-'+Xt+cI(0x17a);}var zt=0x2710,Wt=0x3a98;function gn(a){return new Promise(c=>setTimeout(c,a));}async function yn(a){const cJ=a0bE;ut();let c=Date['now']()+Wt;for(;;){try{await a0b4[cJ(0x21c)](N,JSON[cJ(0x193)]({'pid':process[cJ(0x2ee)],'ts':Date[cJ(0x21e)]()}),{'flag':'wx'});break;}catch(m){if(m?.['code']!==cJ(0x2e5))throw m;}let i=!0x1;try{let o=JSON['parse'](await a0b4[cJ(0x2b4)](N,cJ(0x290)));i=typeof o?.['pid']==cJ(0x283)&&(!K(o[cJ(0x2ee)])||Date[cJ(0x21e)]()-Number(o['ts']??0x0)>zt);}catch{try{let p=await a0b4['stat'](N);i=Date['now']()-p[cJ(0x16c)]>zt;}catch{}}if(i){let s=N+cJ(0x30f)+process['pid'];await a0b4[cJ(0x2cf)](N,s)['catch'](()=>{}),await a0b4['rm'](s,{'force':!0x0})[cJ(0x177)](()=>{});continue;}if(Date[cJ(0x21e)]()>c)throw new Error(cJ(0x18e)+N+'\x20を\x20'+Wt+cJ(0x1fa));await gn(0x5+Math[cJ(0x1ca)]()*0x14);}try{return await a();}finally{try{JSON[cJ(0x206)](await a0b4[cJ(0x2b4)](N,cJ(0x290)))?.[cJ(0x2ee)]===process['pid']&&await a0b4['rm'](N,{'force':!0x0});}catch{}}}function En(m,p,u){const cK=a0bE;let x={...m,'monsters':{...m['monsters']}},S=new Set([...Object[cK(0x1f7)](p['monsters']),...Object[cK(0x1f7)](u[cK(0x2db)])]);for(let a1 of S){if(cK(0x311)!==cK(0x20a)){let a2=p[cK(0x2db)][a1],a3=u[cK(0x2db)][a1];JSON[cK(0x193)](a2)!==JSON[cK(0x193)](a3)&&(a3===void 0x0?delete x[cK(0x2db)][a1]:x[cK(0x2db)][a1]=a3);}else return a1[cK(0x208)](m(u),cK(0x318));}let a0=new Set([...Object[cK(0x1f7)](p[cK(0x321)]??{}),...Object[cK(0x1f7)](u[cK(0x321)]??{})]);for(let a5 of a0){let a6=(p[cK(0x321)]??{})[a5],a7=(u[cK(0x321)]??{})[a5];a6!==a7&&(a7===void 0x0?x[cK(0x321)]&&delete x[cK(0x321)][a5]:x[cK(0x321)]={...x[cK(0x321)]??{},[a5]:a7});}return x;}async function w(a){ut(),await yn(async()=>{const cL=a0c;let c=ct[cL(0x192)](a),i=c?En(await Yt(),c,a):a,m=JSON[cL(0x193)](i,null,0x2),p=Sn();try{await a0b4[cL(0x21c)](p,m,'utf8'),await a0b4[cL(0x2cf)](p,W);}catch(u){throw await a0b4['rm'](p,{'force':!0x0})[cL(0x177)](()=>{}),u;}ct[cL(0x1cb)](a,structuredClone(a));});}function V(a){const cM=a0bE;return Object[cM(0x2aa)](a[cM(0x2db)])[cM(0x2b5)](c=>c[cM(0x312)]===cM(0x2d7))[cM(0x27a)];}function R(a,c){const cN=a0bE;if(a[cN(0x2db)][c])return a[cN(0x2db)][c];for(let i of Object[cN(0x2aa)](a[cN(0x2db)]))if(i[cN(0x227)]===c)return i;return null;}async function E(a){const cO=a0bE;let c=Date[cO(0x21e)](),m=!0x1;for(let p of Object[cO(0x1f7)](a[cO(0x2db)])){if('oMCoJ'===cO(0x216)){let u=a[cO(0x2db)][p];if(u[cO(0x312)]!==cO(0x2d7))continue;let x=new Date(u[cO(0x189)])['getTime']()<=c,S=await M(u[cO(0x26c)]);if(x){m=!0x0,u[cO(0x312)]=cO(0x2a9),S?(await D(u['tmux_session']),u['last_action']=cO(0x297)):u[cO(0x314)]='expired;\x20session\x20already\x20gone',u['last_action_at']=new Date()[cO(0x1e6)]();continue;}S||(m=!0x0,u['status']=cO(0x19b),u[cO(0x314)]='session\x20disappeared',u[cO(0x249)]=new Date()[cO(0x1e6)]());}else return(c.env.BLUELAMP_PORTAL_API_BASE_URL||i)['replace'](/\/+$/,'');}if(m)try{if(cO(0x2c6)===cO(0x1f9)){let a2=m[cO(0x205)][cO(0x192)](m);a2&&(a2[cO(0x2a6)](),o[cO(0x205)]['delete'](p));}else await w(a);}catch(a2){let a3=a2 instanceof Error?a2[cO(0x299)]:String(a2);process[cO(0x1c2)]['write'](cO(0x16a)+a3+'\x0a');}return a;}async function Qt(a){let c=await f();return a(c),await w(c),c;}import*as a0ba from'node:fs';import*as a0bb from'node:fs/promises';import a0bc from'chokidar';var vn=0xbb8;function Tn(a){const cP=a0bE;let c=[];for(let i of a[cP(0x26a)]('\x0a'))if(i['trim']())try{let m=JSON[cP(0x206)](i);m&&m['ts']&&m[cP(0x19f)]&&c[cP(0x168)](m);}catch{}return c;}function te(a){const cQ=a0bE;ot();let c=0x0;try{if(cQ(0x2e3)===cQ(0x2e3))c=a0ba[cQ(0x250)](_)['size'];else{let S=u??p();return m[cQ(0x241)](S)?p[cQ(0x29f)](a['max'](u[cQ(0x1d3)](S),0x12c),0x5a0):0x168;}}catch{c=0x0;}let i=async S=>{const cR=cQ;let a0=null;try{let a1=await a0bb[cR(0x2ce)](_);if(a1['size']<S&&(S=0x0),a1[cR(0x20c)]===S)return S;a0=await a0bb[cR(0x22e)](_,'r');let a2=a1[cR(0x20c)]-S,a3=Buffer[cR(0x252)](a2);await a0[cR(0x2ba)](a3,0x0,a2,S);let a4=a3['toString'](cR(0x290));for(let a5 of Tn(a4))try{a(a5);}catch{}return a1['size'];}catch{if('VmdGQ'==='VmdGQ')return S;else try{return m();}catch(a7){throw a7 instanceof x?new S('LOGIN_REQUIRED',a7[cR(0x299)]):new a0(cR(0x18a),'CLI\x20token\x20読み込み失敗:\x20'+a7[cR(0x299)]);}}finally{if(cR(0x254)===cR(0x254))a0&&await a0[cR(0x2f8)]();else{let a8=new c(cR(0x1a6)+S[cR(0x2cd)]);throw a8[cR(0x272)]=cR(0x201),a8;}}},m=null;try{m=a0bc[cQ(0x2ae)](_,{'usePolling':!0x1,'awaitWriteFinish':!0x1,'ignoreInitial':!0x0,'atomic':!0x1}),m['on']('change',async()=>{const cS=cQ;if('bIESX'===cS(0x1fb))c=await i(c);else return{};}),m['on'](cQ(0x2f1),async()=>{c=await i(c);}),m['on'](cQ(0x2cd),()=>{});}catch{if(cQ(0x27c)===cQ(0x27c))m=null;else{if(typeof m!=cQ(0x1f1))return i;let a0=u['trim']();return a0[cQ(0x27a)]>0x0?a0:p;}}let p=setInterval(async()=>{const cT=cQ;try{(await a0bb[cT(0x2ce)](_))[cT(0x20c)]!==c&&(c=await i(c));}catch{}},vn),u=!0x1;return{'stop':async()=>{const cU=cQ;if(!u&&(u=!0x0,clearInterval(p),m)){if(cU(0x27b)==='iQkLo'){let a0=m;m=null;try{if(cU(0x31d)!=='wzITr')await a0[cU(0x2f8)]();else{let a2=a0['since_ts'];m=n['filter'](a3=>a3['ts']>a2);}}catch{}}else return e[cU(0x2aa)](i[cU(0x2db)])[cU(0x2b5)](a3=>a3[cU(0x312)]===cU(0x2d7))[cU(0x27a)];}}};}var pt=0x1f4;function On(a,c){const cV=a0bE;let i=[];for(let m of a){if(!m||m['status']===cV(0x2d7))continue;let o=m['pgid'];typeof o!=cV(0x283)||!Number[cV(0x235)](o)||o<=0x0||c(o)&&i[cV(0x168)]({'monsterId':m['id'],'shortId':m[cV(0x227)],'status':m[cV(0x312)],'pgid':o,'lastActionAt':m[cV(0x249)]});}return i;}function An(a){const cW=a0bE;if(a[cW(0x27a)]===0x0)return null;let c=a[cW(0x2eb)](i=>i['shortId']+cW(0x2ec)+i[cW(0x312)]+cW(0x303)+i[cW(0x219)]+'\x20since='+i['lastActionAt']+')')['join']('\x20');return cW(0x323)+a[cW(0x27a)]+'\x20件(検知のみ・kill\x20はしない\x20/\x20pid\x20再利用の可能性があるため断定ではない):\x20'+c;}function Nn(a,c=p=>U(a0bE(0x218),p),i=K){let m=On(Object['values'](a['monsters']),i),o=An(m);return o&&c(o),m;}function ne(a,c,i,m={}){const cY=a0bE;let o=null;return o=Jt(c,i,{...m,'onFinished':p=>{const cX=a0c;o!==null&&a[cX(0x205)][cX(0x192)](c)===o&&a[cX(0x205)]['delete'](c),m[cX(0x1ab)]?.(p);}}),a[cY(0x205)][cY(0x1cb)](c,o),o;}function U(a,c){const cZ=a0bE;try{process[cZ(0x1c2)][cZ(0x1c4)](cZ(0x1e0)+a+':\x20'+String(c)+'\x0a');}catch{}}function re(){const d0=a0bE;process['on'](d0(0x26b),a=>{const d1=d0;U(d1(0x26b),a),process[d1(0x263)](0x1);}),process['on'](d0(0x270),a=>{const d2=d0;if(d2(0x22c)!==d2(0x22c))return c==='gone'?d2(0x2a6):d2(0x288);else U(d2(0x270),a);});}var ee=!0x1;function kn(a){const d4=a0bE;if(ee)return;ee=!0x0;let c=i=>{const d3=a0c;U(d3(0x2af),i),a(i);};process[d4(0x286)]['on'](d4(0x17c),()=>c(d4(0x1e4))),process[d4(0x286)]['on'](d4(0x2f8),()=>c(d4(0x27e))),process['on'](d4(0x266),()=>c(d4(0x266))),typeof process[d4(0x2b3)]==d4(0x29d)&&process['on'](d4(0x2b3),()=>c(d4(0x2c9))),process[d4(0x2e4)]['on'](d4(0x2cd),i=>{const d5=d4;if(d5(0x17b)!==d5(0x1f5))i?.[d5(0x272)]===d5(0x1b1)&&c(d5(0x167));else try{let o=a(u(x(import.meta.url)),'..',d5(0x2a8));return S['parse'](a0(o,'utf-8'))[d5(0x1f4)]||d5(0x1eb);}catch{return'unknown';}});}async function se(){const d6=a0bE;let a=await E(await f());await w(a),Nn(a);let c=await Lt(pt),i={'recentEvents':c,'maxEventTs':c[d6(0x27a)]>0x0?c[c[d6(0x27a)]-0x1]['ts']:null,'watcher':null,'snapshotHandles':new Map(),'stopAll':async()=>{const d7=d6;if('dvngV'!==d7(0x2be)){let o=s[d7(0x208)](a,d7(0x204));u[d7(0x257)](o,{'recursive':!0x0});let p=x[d7(0x208)](o,d7(0x1c8)),s=S(a0,void 0x0,a1);return a2[d7(0x305)](p,a3[d7(0x193)](s,null,0x2),d7(0x290)),p;}else{i[d7(0x203)]&&(await i['watcher'][d7(0x2a6)](),i[d7(0x203)]=null);for(let o of i['snapshotHandles'][d7(0x2aa)]())o['stop']();i['snapshotHandles'][d7(0x199)]();}}};i[d6(0x203)]=te(m=>{const d8=d6;i[d8(0x304)][d8(0x168)](m),i[d8(0x304)][d8(0x27a)]>pt&&i[d8(0x304)]['splice'](0x0,i['recentEvents'][d8(0x27a)]-pt),(!i[d8(0x197)]||m['ts']>i[d8(0x197)])&&(i[d8(0x197)]=m['ts']);});for(let m of Object['values'](a[d6(0x2db)]))m['status']===d6(0x2d7)&&ne(i,m['id'],m['tmux_session']);return i;}function oe(a){const da=a0bE;let c=!0x1,i=async m=>{const d9=a0c;if(d9(0x1b5)==='XvQVW'){if(!c){c=!0x0,U(d9(0x1cc),m);try{if(d9(0x316)!==d9(0x31c))await a['stopAll']();else return!0x0;}catch(p){if(d9(0x25d)===d9(0x2e8))return!0x1;else U(d9(0x1f3),p);}process[d9(0x263)](0x0);}}else return;};process['on'](da(0x2ad),()=>{i('SIGTERM');}),process['on'](da(0x243),()=>{i('SIGINT');}),kn(m=>{i(m);});}function ie(a,c,i){const db=a0bE;a[db(0x205)][db(0x2bd)](c)||ne(a,c,i);}function ae(a,c){const dc=a0bE;let i=a[dc(0x205)][dc(0x192)](c);i&&(i[dc(0x2a6)](),a[dc(0x205)][dc(0x238)](c));}var ce=a0bE(0x170),Rn=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})$/;function Y(a){const dd=a0bE;if(typeof a!=dd(0x1f1))return ce;let c=a[dd(0x28f)]();return c[dd(0x27a)]>0x0?c:ce;}function ue(a){const df=a0bE;if(typeof a!=df(0x1f1)||!Rn[df(0x1bc)](a))return!0x1;let c=Date[df(0x206)](a);return Number['isFinite'](c);}function In(a,c){const dg=a0bE;return a[dg(0x321)]?.[c];}async function pe(a){let c=await f();return In(c,a);}async function le(a,c){const dh=a0bE;let i=await f(),m=i['cursors']?.[a]??null;return i[dh(0x321)]||(i[dh(0x321)]={}),i[dh(0x321)][a]=c,await w(i),{'previous':m,'current':c};}async function fe(m){const di=a0bE;let n=m[di(0x2b9)];if(n){let a0=await f(),a1=R(a0,n);a1&&(n=a1['id']);}let p=typeof m['agent_id']=='string'&&m[di(0x1af)][di(0x28f)]()[di(0x27a)]>0x0?Y(m[di(0x1af)]):null,u=m[di(0x23f)],x=null;if(!u&&p){let a2=await pe(p);a2&&(u=a2,x=a2);}let S=await Mt({'monster_id':n,'since_ts':u,'event_types':m['event_types'],'limit':m['limit']});return{'events':S[di(0x191)],'returned':S[di(0x1ce)],'has_more':S[di(0x1f0)],'max_event_ts':S['max_event_ts'],'scanned_files':S[di(0x2fe)],...p?{'agent_id':p,'cursor_used':x}:{}};}import{readFileSync as a0bd,existsSync as a0bf}from'node:fs';import{homedir as a0bg}from'node:os';import{join as a0bh}from'node:path';import{scryptSync as a0bi,createDecipheriv as a0bj}from'node:crypto';var lt=a0bh(a0bg(),'.musuhi','portal-token.enc'),Dn='musuhi-vscode-portal-token-key-2025',I=class extends Error{constructor(a){const dj=a0bE;super(dj(0x324)+(a?'\x20(詳細:\x20'+a+')':'')),this[dj(0x1b3)]='CliTokenNotFoundError';}};function de(){const dk=a0bE;if(!a0bf(lt))throw new I(lt+dk(0x1d4));let c;try{c=a0bd(lt,dk(0x2fd));}catch(u){if(dk(0x295)!==dk(0x295))try{let a1=u[dk(0x206)](s);if(!a1||typeof a1!=dk(0x2e0))return null;let a2=t(a1[dk(0x2ee)]);if(!u[dk(0x235)](a2)||a2<=0x0)return null;let a3=a1['ts'];return{'pid':a2,'ts':typeof a3=='string'?a3:''};}catch{return null;}else throw new I(dk(0x1b6)+u[dk(0x299)]);}let [m,p]=c[dk(0x26a)](':');if(!m||!p)throw new I(dk(0x2bf));try{let S=a0bi(Dn,dk(0x220),0x20),a0=Buffer['from'](m,dk(0x2cc)),a1=a0bj(dk(0x2ca),S,a0),a2=a1[dk(0x226)](p,dk(0x2cc),dk(0x2fd))+a1[dk(0x164)](dk(0x2fd)),a3=JSON['parse'](a2);if(typeof a3['token']!=dk(0x1f1)||a3[dk(0x27f)][dk(0x27a)]===0x0)throw new Error(dk(0x15d));return a3[dk(0x27f)];}catch(a4){if('huCKc'!==dk(0x18d))throw new I(dk(0x271)+a4['message']);else a4!==null&&s[dk(0x205)][dk(0x192)](t)===u&&x[dk(0x205)][dk(0x238)](S),a0['onFinished']?.(a1);}}var Un=a0bE(0x259),Fn=a0bE(0x26e),jn='monster-orchestrator',Hn=0x7530,O=class extends Error{['code'];[a0bE(0x312)];[a0bE(0x2b0)];constructor(a,c,i,m){const dl=a0bE;super(c),this['name']=dl(0x258),this[dl(0x272)]=a,this[dl(0x312)]=i,this[dl(0x2b0)]=m;}},ft=new Map();function Bn(){const dm=a0bE;return(process.env.BLUELAMP_PORTAL_API_BASE_URL||Un)[dm(0x262)](/\/+$/,'');}function Gn(){const dp=a0bE;let a=process.env.MIKOTO_API_BASE_URL;return!a||a[dp(0x27a)]===0x0?Fn:a['replace'](/\/+$/,'');}function Kn(){const dq=a0bE;try{return de();}catch(a){throw a instanceof I?new O(dq(0x18a),a[dq(0x299)]):new O(dq(0x18a),dq(0x29a)+a[dq(0x299)]);}}function he(a){const ds=a0bE;return[...a][ds(0x2c0)]()[ds(0x208)](',');}async function Vn(a){const du=a0bE;try{if(du(0x31e)==='Yftvs')return m?{...n,'supervisor_session':o}:p;else{let i=await a['json']();return{'message':typeof i?.['message']=='string'?i[du(0x299)]:void 0x0,'code':typeof i?.[du(0x272)]==du(0x1f1)?i[du(0x272)]:void 0x0,'raw':i};}}catch{if(du(0x1c7)!==du(0x1e3))return{};else{let n=new m(du(0x162)+n(o)+du(0x15e)+p);throw n[du(0x272)]=du(0x2fa),n;}}}async function _e(a){const dv=a0bE;let c=await Vn(a);throw a[dv(0x312)]===0x191?new O('LOGIN_REQUIRED','CLI\x20token\x20\u304C\u672A\u8A2D\u5B9A\x20or\x20\u5931\u52B9\u3001\u518D\x20install\x20\u3057\u3066\u304F\u3060\u3055\u3044',0x191,c[dv(0x1d8)]):a[dv(0x312)]===0x193&&c[dv(0x272)]==='RANK_INSUFFICIENT'?new O('RANK_INSUFFICIENT',c[dv(0x299)]??'\u7686\u4F1D\u4EE5\u4E0A\u304C\u5FC5\u8981\u3067\u3059',0x193,c[dv(0x1d8)]):a[dv(0x312)]===0x1ad&&c[dv(0x272)]===dv(0x307)?new O(dv(0x307),c['message']??dv(0x171),0x1ad,c[dv(0x1d8)]):a[dv(0x312)]>=0x1f4?new O(dv(0x31f),c[dv(0x299)]??dv(0x293)+a[dv(0x312)]+')',a['status'],c[dv(0x1d8)]):new O('BACKEND_ERROR',c[dv(0x299)]??'backend\x20error\x20('+a[dv(0x312)]+')',a[dv(0x312)],c[dv(0x1d8)]);}async function dt(a,c){const dw=a0bE;try{return dw(0x1a4)!=='wxlce'?c:await fetch(a,c);}catch(m){let o=m instanceof Error?m[dw(0x299)]:String(m);throw new O(dw(0x31f),dw(0x298)+o);}}async function me(m){const dx=a0bE;let p=he(m),u=ft['get'](p);if(u&&Date[dx(0x21e)]()<u[dx(0x24b)]-Hn)return u[dx(0x27f)];let x=Kn(),S=Bn()+dx(0x30e),a0=await dt(S,{'method':dx(0x1bf),'headers':{'Content-Type':dx(0x2b2),'X-CLI-Token':x},'body':JSON[dx(0x193)]({'mcp_id':jn,'requested_scopes':m})});a0['ok']||await _e(a0);let a1=await a0['json'](),a2=a1?.[dx(0x278)]?.['access_token'],a3=a1?.['data']?.[dx(0x20e)];if(!a1?.['success']||typeof a2!=dx(0x1f1)||typeof a3!=dx(0x283))throw new O(dx(0x322),'token\x20exchange\x20\u30EC\u30B9\u30DD\u30F3\u30B9\u304C\u4E0D\u6B63\u3067\u3059\uFF08access_token\x20/\x20expires_in\x20\u53D6\u5F97\u4E0D\u53EF\uFF09');return ft[dx(0x1cb)](p,{'token':a2,'expiresAt':Date[dx(0x21e)]()+a3*0x3e8}),a2;}function Jn(a){const dy=a0bE;ft[dy(0x238)](he(a));}async function mt(c,m,p,u){const dz=a0bE;let x=''+Gn()+m,S=a2=>({'method':c,'headers':{'Authorization':dz(0x326)+a2,'Content-Type':'application/json'},'body':p!==void 0x0?JSON[dz(0x193)](p):void 0x0}),a0=await me([u]),a1=await dt(x,S(a0));return a1['status']===0x191&&(Jn([u]),a0=await me([u]),a1=await dt(x,S(a0))),a1['ok']||await _e(a1),await a1['json']();}async function we(a){const dA=a0bE;return await mt(dA(0x1bf),'/monster/authorize-spawn',a,'monster:write');}async function Se(a){const dB=a0bE;return await mt(dB(0x1bf),dB(0x1de),{'session_id':a},dB(0x309));}async function ge(a){const dC=a0bE;let c=a===void 0x0?dC(0x244):dC(0x166)+encodeURIComponent(a[dC(0x208)](','));return await mt(dC(0x1da),c,void 0x0,dC(0x30d));}import*as a0bk from'node:fs';import*as a0bl from'node:path';import{execFile as a0bm}from'node:child_process';import{randomUUID as a0bo}from'node:crypto';import{promisify as a0bp}from'node:util';import*as a0bq from'node:fs';import*as a0bs from'node:path';var Xn=[{'key':a0bE(0x302),'arg':a0bE(0x17f)},{'key':'Notification','arg':'awaiting_input'},{'key':a0bE(0x2c4),'arg':a0bE(0x28c)},{'key':a0bE(0x2e6),'arg':a0bE(0x2de)},{'key':a0bE(0x233),'arg':'subagent_stop'}],zn=[a0bE(0x22f),a0bE(0x1dd),a0bE(0x300),a0bE(0x190),'Glob',a0bE(0x2a3),a0bE(0x1ef),a0bE(0x211),a0bE(0x195),a0bE(0x25c),'NotebookEdit'];function Wn(a,c,m){const dD=a0bE;let p=c??Rt(),u={};for(let {key:x,arg:S}of Xn)u[x]=[{'matcher':'','hooks':[{'type':dD(0x1c3),'command':p+'\x20'+a+'\x20'+S}]}];return{'hooks':u,'permissions':{'allow':zn},...m?{'model':m}:{}};}function ye(a,c,i){const dE=a0bE;let m=a0bs[dE(0x208)](a,dE(0x204));a0bq['mkdirSync'](m,{'recursive':!0x0});let p=a0bs[dE(0x208)](m,dE(0x1c8)),u=Wn(c,void 0x0,i);return a0bq['writeFileSync'](p,JSON['stringify'](u,null,0x2),dE(0x290)),p;}import{execFileSync as a0bu}from'node:child_process';import{existsSync as a0bv,realpathSync as a0bw,writeFileSync as a0bx}from'node:fs';import{dirname as a0by,join as a0bz,resolve as a0bA}from'node:path';var er=a0bE(0x207);function nr(){return process.env.BLUELAMP_PORTAL_API_BASE_URL||er;}function rr(){const dF=a0bE;let a;try{a=a0bu(dF(0x2d4),[dF(0x2c7)],{'encoding':dF(0x2fd)})[dF(0x28f)]();}catch{return null;}if(!a||!a0bv(a))return null;let c;try{c=a0bw(a);}catch{return null;}let i=a0bA(a0by(c),'..'),m=a0bz(i,'lib','mcp-server',dF(0x1b9));return a0bv(m)?m:null;}function sr(a,c,i){const dG=a0bE;return{'mcpServers':{'bluelamp':{'command':dG(0x306),'args':[a],'env':{'PORTAL_URL':c,...i?{'MUSUHI_TENANT_ID':i}:{}}}}};}function ve(a,c){const dH=a0bE;let i=rr();if(!i)return null;let m=nr(),p=sr(i,m,c),u=a0bz(a,'.mcp.json');return a0bx(u,JSON[dH(0x193)](p,null,0x2),dH(0x2fd)),u;}import*as a0bB from'node:fs';import*as a0bC from'node:path';function or(){const dI=a0bE;try{if(dI(0x2d2)===dI(0x2d2)){if(a0bB[dI(0x250)](C)[dI(0x20c)]<At)return;a0bB['renameSync'](C,Ot);}else{if(p[dI(0x2db)][r])return s[dI(0x2db)][t];for(let c of a0[dI(0x2aa)](a1[dI(0x2db)]))if(c[dI(0x227)]===a2)return c;return null;}}catch{}}function X(a){const dJ=a0bE;let c=new Date()[dJ(0x1e6)]()+'\x20'+a+'\x0a';try{a0bB[dJ(0x257)](a0bC[dJ(0x19a)](C),{'recursive':!0x0}),or(),a0bB[dJ(0x2a2)](C,c,dJ(0x290));}catch{}}var wt=a0bE(0x2fc),ir=0x80,ar=/^[A-Za-z0-9._@+-]+$/;function a0a(){const em=['u0Lhsfvq','Bw9UC3rLCI1VCMnOzxn0CMf0B3iGtunqihnLCNzLCIb2','A2LSBc1ZzxnZAw9U','C3bHD25Lzf9HDa','C3bSAxq','Dw5JyxvNAhrfEgnLChrPB24','Dg11Ef9ZzxnZAw9U','yMX1zwXHBxa1mW','Ahr0Chm6lY9TAwTVDg8Ty29TCgfUEs1HCgKTmJm1ndi2nZC4mdm5lMfZAweTBM9YDgHLyxn0ms5YDw4UyxbWl2fWAq','Dg11Ea','Dw5Oyw5KBgvKuMvQzwn0Aw9U','zgvJCNLWDcbMywLSzwq6ia','y29Kzq','zxzLBNrZlMXVzW','DuDPCwe','C2vZC2LVBG','Bgf1BMnOzxiG44gVihn0CMLUzYdJGA7JGB/LJ5FJGzhKU5JJGzhJGOVVViJLJ5FPOjJLNOS6ia','DgfZAW','zgf0yq','8j+AQcbZCgf3BJOGBw9UC3rLCJ0','BgvUz3rO','AvfRtg8','DNH2tw8','BgzKCfe','C3rKAw4Ty2XVC2u','Dg9Rzw4','Bgf1BMnOzxiG44gVigbJBgf1zgvGioobVUobN+obRYbGyMX1zwXHBxbotMdVViHotJ0X44cCotK544o75ywi6AcT44k844oT44gQ44gx77Yj44gU44g/6kIX5y+VoIa','AM9HrMm','CMvHzeXVy2S','BNvTyMvY','sxHMvKS','mty1ntG3n1nbD3jXzW','C3rKAw4','vg11EfvUyxzHAwXHyMXLrxjYB3i','y29UDgLUDwu','AgfZlxnLC3nPB24','tu9eruXFuKvkrunuruq6ia','C3vIywDLBNrFC3rVCa','DxnLCL9WCM9TChq','Cw9Ov1e','Bw9KzwWG44gV6iUX5PwW5A2x5AEl44g+44kk44o76iUX5PwW5A2xl2aUyc9Gx2aVyc1G44o7nJqG5PAh5A2x5lUL5yAf44gU44g/6kIX5y+V77Yi5l6loIbGB3b1C2aGlYbGy2XHDwrLlwzHyMXLltvG77YjoIa','DhjPBq','DxrMoa','zgvWCW','BgLZDf9TB25ZDgvYCW','yMfJA2vUzcb1BMf2ywLSywjSzsaO','Bgf1BMnOzxi','BhfMqu8','ve1vwf9tuefxtL9gquLmruq','yxv0BY1ZDg9WCgvKig9UihrPBwvVDxq','yMfJA2vUzcb1BNjLywnOywjSztOG','BwvZC2fNzq','q0XjihrVA2vUioIQREobV+I+VoobV+wKSEAvLZOG','y29UzMXPy3q','CMvZCg9UC2u','zNvUy3rPB24','odaXrhLvwNfh','BwLU','mti3nZqZnJbLuMfRBLm','w21VBNn0zxiTB3jJAgvZDhjHDg9YxsbIywnRzw5Kihn0B3btzxnZAw9UigzHAwXLzcaOBg9JywWGC3rVCcbZDgLSBcbZDwnJzwvKzwqPoIa','yxbWzw5KrMLSzvn5BMm','r3jLCa','vvvjrcdJGB7JGz/JGA8GC2HVCNrFAwtJGilNNihNLAxMMylJGA/LHAGGBw9UC3rLCUoaGG','5PAW44gx44geig1VBNn0zxlVViJNI6ZNQ4SGDg11EcbZzxnZAw9UioobRIbdBgf1zguGq29KzsbdteNVViNJGPlOTBFLI5xJGzFJGihLIj3LM54GDgfZAYdJGPlPGihKV6hJGzNJGOVJGijYzwfKEsbZAwDUywWG44ksidq1ioENKUs7PEwgHEobQ+AKNowhUUobP+obJEobQUobHowGTowqIoobRYbZCgf3BL90Aw1LB3v0iow/NoETLoocKUI/LoobME+8IhrTDxGGC2vZC2LVBIdJGA/MROVLRzJJGifZzw5Kx3rVx21VBNn0zxiG44gN44oQ44kR44oq44oQ5y+V6io977Yj44cclMnSyxvKzs9Zzxr0Aw5NCY5QC29UioobQYa1ioEORIbOB29RioocKUAZQowfPEobL+obPIbLDMvUDhmUBg9NioobQ+EkTUAfI+MbT+ENU+ocKUIOMoMmSUoaGG','C3rVCa','44gt44gUig1VBNn0zxiG44gm5l2/44gg44oI44oh44oR77Yi5lU75Osp77Yj44ccBw9UC3rLCIbOB21LioobRIbGlMnSyxvKzs9Zzxr0Aw5NCY5QC29UycdJGASGyg1VzgvSycdJGAJJGzFJGABMM7JJGyVJGOZJGihJGRdJG63JG7ZJG5dJG6VML6lLRPRJGOJJGORLHkRLHyJJGzxJGOZJGOVJGilLVAlLVi/JGA/OI7hMLBdLRzFLP4VJGB7JGORJG7VOI7hMLBdLRzCVyc5Gl2bFyc9GlwdJG7S2ncdMLOFLRzFKU6xLHOxVViJKVOS6igbVChvZycaVigbJBgf1zguTzMfIBguTnwdVViNJGilLVAlLVi/LPjBJGA8GC3bHD24G44ks5OUs5zcM44gz44kl77Yi5PEI5A6A44g444gV44ov44kP44o844oR44oq44od44kV44gx44gQ44ge77Yj44cc44oI44oh44oR5zcn44gU5A6F5zYOigfSBg93BgLZDcdJGA/MJihJGz/JGARJGytJGilNNihNLAxMMylJGA8GBgf1BMnOzxiG44gU5B255yMY5PEI5A6A44ks5PU444gp77Yi55UJ552J57o7igjSDwvSyw1WntmVndC9ygnSyxvKzs1MywjSzs01yoodU+obNEocJos7PEwKLJ1GB3b1C2dJG7VKUlVLKjVOO4hLRPOGmJaYnI0Woc0WnI9rnU+8IEoaGUw/NoETLoobQcbZDgf0zs5QC29UioobQ+wUN+MAM+obQ+ABUoobHoobNYbTB2rLBcdJGPlOQjJPJllJGzNJGOVJGii','CgfJA2fNzs5QC29U','DgLTzw91Da','DMfSDwvZ','8j+tIIdNQlZLG43KUk06ia','tu9ou1rfuL9ot1rFuLvotKLorW','u0Lhvevstq','D2f0y2G','CgfYzw50lwDVBMu','zgv0ywLSCW','DKHhBMG','yxbWBgLJyxrPB24VANnVBG','zgLZy29UBMvJDa','CMvHzezPBgu','zMLSDgvY','y2XHDwrLlwzHyMXLltu','C3bHD25Lza','ic0TBwnWlwnVBMzPzYaI','Bw9UC3rLCL9Pza','CMvHza','Ee5MAKy','l2jPBI9ZAa','AgfZ','zhzUz1y','Aw52ywXPzcbMAwXLigzVCM1HDa','C29YDa','C3bHD25FDgLTzw91Da','z29prvq','DMfSDwu','vxnLCLbYB21WDfn1yM1PDa','tgrmvKe','BLrNwhe','yMX1zwXHBxaX','AcbHz28','AxbJlwrPC2nVBM5Ly3q','ywvZlti1nI1JyMm','Dgv4Da','Agv4','zxjYB3i','C3rHDa','CMvUyw1L','wxvyy24','mtK1mhLmCxHoAq','wwD0Egi','svnpidG2mdeG5PMc5yI744cc44gt44gU5PMc5yI75lUL6zMn44ks6l+u44gz44cc','D2HPy2G','C2vUDa','qNHtsvC','CNvUBMLUzW','C2nYAxb0CW','Bwv0yq','zMfPBgvK','Bw9UC3rLCNm','iokaLcdJGzpJGA4GBw9UC3rLCIdJGyZMRAlJGB7JGApJGABJGOlOQRdJGAVJGOlPGjRNN6xJGzxJGOZJGARJGytJGilNM6pNNApJGA8GDg11EcbKAxnWBgf5lw1LC3nHz2uGlxaGjYntjYdJGA7LGktJGPiGC3vWzxj2AxnVCLnLC3nPB24G44gR5RIH44gz44gt44gO44cc5Osp5zUZ55Qe44gR55UJ552J44ks5lUy44gr44gQ44geihnWyxDUioobQUocIsb1BNn1CgvYDMLZzwq6ihrYDwuG44ks5A6J6kIa44gz44kl44gt44gO','C3rVChbLzc1ZzxnZAw9UlwDVBMu','C2vZC2LVBL9LBMq','Eu5SEfK','B2jQzwn0','w21VBNn0zxiTB3jJAgvZDhjHDg9YxsbIywnRzw5KigXPC3rtzxnZAw9UCYbMywLSzwqGkgXVy2fSigXPC3qGC3rPBgWGCMv0DxjUzwqPoIa','C2vUzc1RzxLZ','runZzNa','C3rKB3v0','ruvysvnu','u2vZC2LVBKvUza','zLzmAwq','thz6uw4','C291CMnL','Bw9UC3rLCI1VCMnOzxn0CMf0B3i','BwfW','khn0yxr1CZ0','Bw9pCe8','CgLK','5zg844gZ5yE644gx5ywdigfNzw50ioobRUITMowiPEwTKo+8Ios+IZOGDgvJAc1SzwfKlw1HAw7VViNJGilNQBRMLOFLRzFKUi3LJ6/JGii','ihn1CgvYDMLZB3jFC2vZC2LVBJ0','ywrK','C3rVCdOGCMvZB2X2zwqGBw9UC3rLCIbOyxmGBM8GAwqGkhn0yxrLignVCNj1ChrPB24P','qw50tKG','Dg11EcbHDhrHy2GGlxqG','C3vWzxj2AxnVCLnLC3nPB24','BgfZDefJDgLVBKf0','Dg11EcbZzw5KlwTLExmGzMfPBgvK','y2XVC2u','5ygC5Q2I5RIi44g/44ks5zcR44kb44kl77YizgvMyxvSDcbMywXZzE+8Iq','tufyx0nptKnvuLjftLrFuKvbq0Hfra','xLTblvPHlxOWltLDw0eTwMeTEJaTos5Flv17mcW2m30K','tu9ou1rfuL9tvvbfuLzju09sx1nfu1njt04','DxrMltG','C2nHBM5Lzf9MAwXLCW','zw52','v3jPDgu','cUkuGokuGokuGokuGaO','u3rVCa','ihbPzd0','CMvJzw50rxzLBNrZ','D3jPDgvgAwXLu3LUyW','BM9Kzq','uvvpvefFrvHdruveruq','zxzLBNrZlMXVz++8IcSGCM90yxrLioA4IcaUms8UmU+8IEobI+ocIsborePtt04G44kK44oz44oZ44oi44ks44oA44o844k444oZ44kW5y+w5B6x44gz44kl44ccBw9UC3rLCL9PzcaVihnPBMnLx3rZic8GzxzLBNrFDhLWzxmG44gN44ov44kJ44oR44k/44cbBgLTAxqG44gN5lU25PwW5yI26zMq77YizgvMyxvSDca1mooaGw1HEca1mddVViNJGij2mI4ZlJaG44gl44kjigfNzw50x2LKioocKUA4OEobMEobQcbZAw5Jzv90CYdNNihNLAxMMylJGASGC3rHDguUANnVBI5JDxjZB3jZw2fNzw50x2LKxsdJGPlOH6RLI5uGzMfSBgjHy2SG44gO44gx44gM5l2/44gg77Yi5yMn5zUEig1HCMTFzxzLBNrZx3nLzw4G44gN6kIy6yYY44gx44gF5PMc5yI75lUL6zMn44gU44g/5y+w5B6x77Yj44cc44og44od44kV44oQ44o844oj5z6ligfNzw50ioobRYbHz2vUDf9Pzd0NDgvJAc1SzwfKlw1HAw4NioETIEocKUAmH+wUMIaRiowpLUw+L+w+JcbTyxHFzxzLBNrFDhmG44gNig1HCMTFzxzLBNrZx3nLzw4G44ks5zg844g26ygl55sO44ks5O6O5AwO44cc','Bw9UC3rLCJP3CML0zq','BwTKAxi','CMvHzhKGC2LNBMfSioACQUAKNowhUUoaGNrTDxGGC2vZC2LVBIdJGA/LRzJLNkJJGijZzw5Kx3rVx21VBNn0zxiG44gN44k/44k544kV5yAn6ycb5y+V6io9','tM5kzeS','Bw9UC3rLCJPYzwfK','l2f1DgGVzxHJAgfUz2u','lNn0ywXLlG','Dw5KzwnSyxjLzf91BNDPCMvK','tgTtEKC','C3rHDhvZ','ihn1CgvYDMLZB3jtzxnZAw9UioobQcb1BNn1CgvYDMLZzwq9Dhj1zsdJGyZLKiZMMylJGAVMJiFLRPRJGzxJGOZJGz8G4OcuioAxOUwUMUobQEobIUocIUMfJEE3MUocKUweQUwfIoobLYbZDxbLCNzPC29Yx3nLC3nPB249','BgfZDf9Hy3rPB24','6kEJ5Rg644gm5AsX5Pwx77Yi','thr0DNK','mtmYmtjOrLfou1C','C25HChnOB3qUBg9JAW','tg1gBfG','igfSCMvHzhKGzxHPC3rZ','zxzLBNrZlMXVzYdJGAVOQjJPJllJGzxJGOZJGOVLGzZMRAlNKiBNLle','tK1Qrg8','DMfxAg8','wwXmrNC','qKfds0vorf9vtKfwquLmqujmrq','y2fWDhvYzs1Wyw5L','y3vYC29YCW','qKfds0vorf9fuLjpuG','5A2K5ywq44ox44oT44k744k55ycz6koCia','qMX1zuXHBxaG44gR44oT44kW44kK44oZ44gx44gM44gp44gG44gv44ge44cc44k/44o844oF44ok44oR44gNigbIBhvLBgfTCdfGioocKUs4Gow6PUwUN+IHJoobMEocI+obQcb+lY5TDxn1AgKVCg9YDgfSlxrVA2vUlMvUyYdJGyZKVzZMIjdJGzxJGOZJGB7JGzK','zxHPC3rZu3LUyW','qMvHCMvYia','5y+W5BIZkhn0yxrLlMPZB24P44g444gU6kIy6yYY44gR5AsX5PwxoIa','yM9VBgvHBG','q0XbvurflM1K','yMLU','ve1vwf9tuefxtL9gquLmruq6ia','Dg9Rzw4GzMLLBgqGBwLZC2LUzW','ignHCd0','5zg844gZ5yE644gx5ywd77Yi55UJ552J44kO44o844k444kN44oZ44oi77Yj6iEQ6lQR44gUihrTDxGGC2vZC2LVBIdLKi3VViJKU7VMHi/VViNJGilMUkhJGzNJGAJJGihJGzpJGA4GBw9UC3rLCIdJGyZLGzZMRAlVViHHD2fPDgLUz19PBNb1DcaVihn0B3bWzwtVViNJGzFJGz/MMylNGRNJGACGC3vWzxj2AxnVCI1UB3rPzNKGD2f0y2HLCIdJGyZLVzpOQBlJGRVJG4pJGRFJG6FJG7pJGBJNIRBMS4hPGjRNN6xJGPlOH6RLI5xMS6JLHAxJGzNJGOVVViJNM6pNNApJGA7JG53JG7ZJG6RJG7pJGRdJGyZKUi3OPOhJGAVJGARJGOVVViNJGilLJ5BLVPFMLRNMS5u6igb0Bxv4igrPC3bSyxKTBwvZC2fNzsaTCcaNi1mNyooaGUkAOo+4JYbnq1aG44k144o844oq44ox44oT44k744k544gR44gVifrnvvGG55kW5Akd5Asj5PwW44gm54sH44ge44gF44kb6iEQ5yUv5QsC5yE644gV44gN44gn44gA44cb44gt44gU5PIo56s65BYv5PwW44gm5zsV5lIa44gU5A6F55sO57wm6lEV44cc55Yb55wL44gz44kl44gOihnWyxDUioobR+E2MUIHJoobMEocI+obJooaJoACQUMfJEE3MIbZCgf3BUoaJEobQoobL+obPIbZDxbLCNzPC29Ylw5VDgLMEs5SB2CG44gR6k2M5zgk44gm5Q6l44kl77Yi5Osp5zUZ55Qe44gR55UJ552J44ks5lUy44gr44gQ44ge5Ac05zci44gVihvUC3vWzxj2AxnLzdOGDhj1zsdJGPlLRQpOQidJGzNJGOVJGzpJGAJVViNJGilMS6JLHAxJGzxJGOZJGOVMLOFPNAlJGA/LM7RLRPRJG4BJG7pJG5FJG6ZJGA7NIRBMS4hPGjRNN6xJGA7JGB/JGAFJGihMIB/OQO3JG7VOO4hLRPRJG7VMJiFNPlRJGA/KUidLIiFPGyVJGBdJGARJGytJGii','zxzLBNrZlMXVzY4Y','C3rVCf9TB25ZDgvY','tufyx0nptKnvuLjftLrFuKvbq0HfrdOGCNvUBMLUzZ0','qMzQwMu','zMLUywW','77Yj44gV5Bco5ywL44gv44km44gM44ge44gQ44ge77Yiy29TBwfUzcaTDIdJGAFMNkRMPjZLH7RVViNJGijJBgf1zguG44g444gU44ov44kP44o844oR44oq44od44kV44gV44gx44gQ44ge','l21VBNn0zxiVC2vZC2LVBNm/ywXPDMu9','C3rKB3v0luvqsvbf','ChvZAa','77Yj44ccuefuscdJGASGl29WDc9OB21LyNjLDY9IAw4G44gm54sH44geigXHDw5JAgqG562j44gl44kjioI1T+wlLEobLEocJoobPUobHoocI+wpR+IdVEAaP+obJoobGUocIUobVUobMEoaGK1ptLnurvjFve1vwf9csu4G44gN5PIo56s65OYh5A6A44gN44gn44g+44gz44cc5y6F5zUGoIa','CMvJB25JAwXLoIbMywLSzwqGDg8GCgvYC2LZDcbZDgf0ztOG','77Yi5y+x44gr5lUy44gr44kj44km44gQ44gl44gJ44gF5OYh5A6AoIa','BxrPBwvnCW','ihn1CgvYDMLZB3jFC2vZC2LVBIdJGPlOQjJPJllJGAFJGy3JGARJGyVJGApJGz8','A3LXv2K','C2vW','zgvMyxvSDa','5lIM5yIxiduG5lIk6zMq44gR6ygu44gx44gM44ge44g+44gz','CwDdC0y','C3bHD25FBw9UC3rLCG','y3vYCMvUDa','vLrxB0i','thn4uvO','y2f0y2G','CgfYyw1Z','CMvZB2X2zq','lNrTCa','wfLsvvK','zw5K','svnpidG2mdeG5PMc5yI744cc6ycA5BI444gV55U05yMnigDLDf9TB25ZDgvYx2v2zw50CYdJGA4GBwf4x2v2zw50x3rZioocKUobNEobRUobVUobVUA4OEobMEoaGG','Ag9TzwrPCG','AwrSzq','rufdq0vt','wMv3B3a','Cgf0DgvYBG','C2vZC2LVBI1NB25L','C2TPChbLzc1LBxb0Eq','Bw9UC3rLCL9PzcdJGB7JGz/JGA8GC2HVCNrFAwq','Bw9UC3rLCI1VCMnOzxn0CMf0B3iGzMf0ywW6ia','yxDHAxrPBMDFAw5WDxq','D29YA2rPCIb0CNvZDcbWCM9TChtVViJLIj3LM54GD29YA2rPCIdJGA7KV6hPOlZNORROQO3VViK','zxHWAxjLC19HDa','te9hsu5FuKvrvuLsruq','B3b1CW','BgfZDefJDgLVBG','DePgDLi','u1rbvevFte9ds19usu1ft1vuoIa','5Osp5zUZ55Qe44gR55UJ552J44ks5lUy44gr44gA44gR6lw35yUv44gz44kl44gt44gO44gU5PIo56s65A6J6kIa77Yi5PEI5A6AigzHBhnLio+8NsdNM6pNNApJGBJPHy3NT5RJGzNJGOVVViNJGij0CNvLioocKUwUO+IOGoobL+obNYbZCgf3BIdJGAdJGzhJGyZJGiZMNkRPHy3NT5RJGAFJGOlMRApLUlJJGi3JGAJJGzFJGABMIBhJGO/JGOZJGihORABLKyRJGyZLH7RJGARJGytJGilLRQpOQidJGzVJGzRJGASGC3vWzxj2AxnVCLnLC3nPB24G44kc5RIH44gv44gQ44gl44gJ44gF5Ac05zci44cbC3bHD24G44gV57AA6kgm44gz44kl44gm44co44gt44gUig1VBNn0zxiG44gm5Q2I44g+44gJ44gM44kc6kQW44gR44kc6ycA55+L44gv44km44gQ44ge44cp5PEO44gU6k2M5zgk44gmihn1CgvYDMLZB3iTBM90Awz5lMXVzYdJGAVMROVJGOVVViHcqunlte9hicmZntOG6BUz44gJ44gM5PYQ6ywn57EA44gR44gx44gQ44ge77Yj44ccC3vWzxj2AxnVCLnLC3nPB24G44gO5zcm5PMc44gR5RIH44gx44gF5Ac05zci44gV6ywn57EA44gm5ysQ5ywi44gv44km44kl44cc','rwrPDa','zxzLBNrZ','z2v0','C3rYAw5NAwz5','DgfZAYaOC3rYAw5NksbPCYbYzxf1AxjLza','vgfZAW','ndiYotqWmffUsvjPza','Bwf4rxzLBNruCW','C3bHD246ia','y2XLyxi','zgLYBMfTzq','C3rVChbLza','ic8GC3bHD24G6iEQ5l2t44gV5OIq5yQFkhrTDxGG44k744od44k344oN44oZia','mJfeu0jzshi','CfHmALa','zxzLBNq','zxzLBNrFDhLWzxm','6ycb5l+H44gz44kl44oH44od44k744o844k477Yi5Ps56kgm5y+V77Yj','zNjVBq','C2vUzf90B19TB25ZDgvY','D3HSy2u','CMvHzhLuAw1LB3v0','ve1vwf9qqvnurv9gquLmruq6ia','Bw9KzwWG44gVihn0CMLUzYdJGA7JGB/LJ5FJGzhKU5JJGzhJGOVVViJLJ5FPOjJLNOS6ia','Bw9UC3rLCIdJGPlLGzZMRAlVViH0Bxv4igTPBgWTC2vZC2LVBU+8IEobLYb3yxrJAgvYioocKIbKzxrHy2GG44gz44kl44cc','yxbWzw5KrMLSzq','y2fWDhvYzvbHBMu','B25gAw5PC2HLza','seTZv3q','cJ09pt09ia','BM9Uzq','ywDLBNrFAwq','Dg11EfnLC3nPB24','rvbjueu','AxnqAwrbBgL2zq','BMfTzq','CxvLCNLFBw9UC3rLCG','whzrvLC','CMvHzcbMywLSzwq6ia','rvbfuK0','zgvJBgfYzwrFDw53AxjLza','Aw5KzxGUy2PZ','t3H4twm','C2vSzLbPza','DgvZDa','ExbqDhq','zgv0ywnOzwq','ue9tva','r0PdsKC','DgHLBG','C3rKzxjY','y29TBwfUza','D3jPDgu','uMfJz2y','DgfPBf9SAw5LCW','uMDKswe','C2v0DgLUz3mUANnVBG','AfPurve','CMfUzg9T','C2v0','C2H1DgrVD24','Bw9UC3rLCIa','CMv0DxjUzwq','ChjLDMLVDxm','77Yi5BYv5PwWihn1CgvYDMLZB3jtzxnZAw9UioobQUobLYaVia','C3vWzxj2AxnVCI1UB3rPzNKUBg9N','44gt44gU5zg844gZ5yE644gx44gG44gr6lw35yUv5A2q44ks5BEU44gx5PU/44gi44kl77Yi5lU75Osp77Yj44cc6kIX5y+V5B2I5BYp44gVigbJBgf1zgvGioobVUobN+obRYbGyMX1zwXHBxbotMdVViHotJ0X44cCotK544o75ywi6AcT44k844oT44gQ44gx77Yj44gU44g/44gN44cb5B2I5BYp5Asw44o75PYQ5Bco5ywL44gU5ycK44gVihnWyxDUioocKUAlKUwqPUobMEocI++8IgnSyxvKzsdJGBJJGA/JG5xJGQNJG7ZJG6VJG5dJG4pJGQ/JGzFJGARJGytVViNJGilOP6pMSBRPOiBLUO86igXHDw5JAgvYiow8LEAvSca+ie1ptLnurvjFq0Xbvurfx0jjtIa+igbJBgf1zgvG44cc55Yb55wL5PMc44gV5B6t5P2L44gO5zcm5lIa5OYz5yUv44cc5l6loIbGyMX1zwXHBxa1mwdJGilNLARLJ7FJGAJJG63JG7ZJG6VJGA7LR77LV5ZJGA8GygXPC3rFDgvUyw50x2fNzw50C2aG44gU44cm56IU5yILoIdJGQRJG7ZJGRhJGRNJG4JJG6ZJG7ZJGR/JG7WGkgjSDwvSyw1WtK4P44cn5QYe44gm5Q2J5PYS44cc44gt44gt44gR5A++5B+C6kgO44ks5PU444gl44gQ44ge77Yi5A6F6kof5PU05PAW44gN6iwq44kl44gF44kb77Yj','zMXVB3i','ig5VDcbMB3vUza','ic8G','q0XbvurflM1KioobQ+ABUoobJEI+VoocGoI/VEwkOoocS+odS+odHUocREocUEodIo+8Ios7U+AeJ++8Iq','Bwf4','CMf3','AwqGAxmGCMvXDwLYzwq','r0vu','yxjYyxK','yNL0zxm','uMvHza','l21VBNn0zxiVC3rVCa','Bw9UC3rLCIdJGAVOV73LIQdMJiFNPlRJGPlPGihKV6hJGzNJGOVVViH0Bxv4ihnLBMqTA2v5CYaTBcdNM7tPGihKV6hMLRNLVi/JGifSB2fKlwj1zMzLCI9Wyxn0zs1IDwzMzxiG44gV5l2/44kp44gQ44ge77Yj44cc','w21VBNn0zxiTB3jJAgvZDhjHDg9Yxsa','Curru0O','quTfugW','y0jcAMu','C3rKAw4Tzw5K','ve1vwa','Dg9ju09tDhjPBMC','mteYoti4D1fgz2HH','sKHoqMK','5PYa5AsN5lU25PwW44cczgvMyxvSDca1mooaGw1HEca1mddJGii','yxbWzw5Ktg9N','Dw5RBM93BG','BsbHz28','z2v0vgLTzq','5yID5zUE5OYh56s677Yi6ksh5PwW6kgm5y+V77Yj','v2vIrMv0y2G','AgfZx21VCMu','C3rYAw5N','zu15AK0','C3rVCefSBc1MywLSzwq','DMvYC2LVBG','CgDxswK','tg1zDu8','A2v5CW','C2HVCNrjza','wgLsy0C','BxmG5lUL5yAf44gR5y+w5B6x44gN44gn44gQ44gl44gJ44gF','yKLfu1G','C2vZC2LVBI5SB2C','q0TYqMC','C3vIDhLWzq','BgLZDc1Wyw5LCW','Dw5SAw5R','ve1vwf9qqvnurv9gquLmruq','Bw9UC3rLCI0','D2f0y2HLCG','lMnSyxvKzq','C25HChnOB3riyw5KBgvZ','CgfYC2u','Ahr0Chm6lY9HCgKUBw90B2HPlMPW','AM9PBG','Bw9UC3rLCI1ZDg9WlwHVB2S','rvbNseO','C3vWzxj2AxnVCI1UB3rPzNKUANnVBG','C2L6zq','yxjNDw1LBNq','zxHWAxjLC19PBG','ihn0yxj0zwqk','A2LSBa','v2vIu2vHCMnO','Dg11EcbUzxCTC2vZC2LVBIbMywLSzwq','icHZB3vYy2u9','C3rHCNrZv2L0Aa','yNL0zuXLBMD0Aa','B01dB0O','D2LYAw5N','B3jWAgfUlxnJyw4','CgDPza','DgLTzw91Df9TAw4','y2XHDwrL','D3jPDgvgAwXL','ru5pru5u','BM93','B3v0y29Tzq','C2fSDa','y1v4u0e','D2LYzwq','DeHszgO','AwqGyw5Kig1LC3nHz2uGyxjLihjLCxvPCMvK','8j+AQcdMNkRPHy3NT5OGC3bHD246ig1VBNn0zxi9','DxbKyxrL','C2HVCNrFAwq','tefvtKnirvjFuKvkrunuruq6ia','l29WDc9OB21LyNjLDY9IAw4VDg11Ea','Dg11EcbZzxnZAw9Uia','tefvtKnirvjFtK9ux0Lou1rbteXfrdOG44gD44gU44k544oT44od44oi77Yi','sNPKshO','C3bHD246ig1VBNn0zxi9','B3bLBG','qMfZAa','tu9ou1rfuL9ot1rFuLvotKLorZOGy3vYCMvUDcbZDgf0DxmG','C3rVChbLzdOG','CMvHC29U','u3vIywDLBNrtDg9W','Bw9KzwW','AxnjBNrLz2vY','CYbHz28','y29TBwfUzcaTDIaTlsaIjdeI','zgvSzxrL','ksdJGPlOQjJPJllJGzFJGz/VViH1BNn1CgvYDMLZzwqG5A6J6kIa44gV54sH6kAw77Yj','zxzLBNrZlMXVzY4X','C3bHD25Lzef0','iowUN+wCQcNJGilJGzpJGA4GBw9UC3rLCIdJGA/LJ7dLUlpJGAVOViNJGOVJGB7JGACGBgLZDf9TB25ZDgvYCYdJGAVLH7RJGzRJGifZDg9Wx21VBNn0zxiG44kc5yQ544gl44gQ44ge44cc5yAnihnWyxDUioobM+obMUoaGEobVUobMUwpSow4S+obRUEkTUAfI+ocKUEIUUIQJEobMEocI+obK+obQa','BgLTAxq','C2v0uMvXDwvZDeHHBMrSzxi','C2LUy2vFDhm','rw50zxi','AxngAw5PDgu','Bw9UC3rLCIdJGA4GDg11EcbWyw5LioACQ+wWVIboioIHJoocKUwpLUw+L+obMEocI++8Iefou0KGC3rYAxaG5RIi77Yj44cc','u0Lhsu5u','l21VBNn0zxiVC2vZC2LVBNm','otG1nJyXnLLsC2TItW','C2XPy2u','mtqXotu0D2DxqK1n','z29Uzq','BgfZDf9Hy3rPB25Fyxq','D29YA3nWywnL','zxHWAxjLC0f0','yvvVC0m','C2TPChbLzc1UB3qTB3DUzxi','Aw5PDgLHBf9JB250zxH0','ieaG','C3rHDfn5BMm','EuTLtuW','ywXSB2m','yMXzsvO','vMvfDxi','D29YA2rPCG','Bw9UC3rLCIdJGA4Gy3DKioobP+obR+obQUobJYbGls1HzgqTzgLYycdJGAFOQQ3JGB/MM7JJGy3OQlhLJ6/JGzxJGOZJGOVOV73LIQaGCgf0Ao+8IoE1TUwVVUodKEocUE+8IEoaGMn3zcdJGA8GBw9UC3rLCIbOB21L77YiFI8Uy2XHDwrLl21VBNn0zxjZl3TPzh0V77Yj44gR5zU65A6A77YiAg9VAYdOQk3LRPRJGA7OP6pMSBRJGA7JGz/JGOhMHi/LM7pNMOtVViNJGilNNihNLAxMMylJGA8GFI8Uy2XHDwrLl21VBNn0zxjZl3TPzh0VD29YA3nWywnLlYdJGPlMLRdOPO/KVzZMIjdJGzCGls1HzgqTzgLYiowVVUIXOEobQoobMEocI+oaGG','BwTKAxjtEw5J','qMfJA2vUzevYCM9Y','Ahr0Chm6lY9HCgKUBw90B2HPlMPWl2fWAs9IBhvLBgfTCa','uKnZzMe','6iEQ5yUv5ygC5Q2I44g+44gN44gU5yIg5PwW44cczgvMyxvSDcaZnJaGkdzOkEoaGw1PBIaZmdaGkdvOkEoaGw1HEcaXndqWicGYngGP44cc','vg9KB1DYAxrL','uMjNtfi','id09pt09cG','BwfYA19LDMvUDhnFC2vLBG','CxvLCMLLza','Bw9UC3rLCL9Pzo+8IfvvsutVViNJGB7JGz/JGA8GC2HVCNrFAwtVViG4ioAwH+wTL++8Iq','CMvWBgfJzq','zxHPDa','Aw5JBhvKzv9ZDg9WCgvK','Aw5WDxq'];a0a=function(){return em;};return a0a();}function _t(a){const dK=a0bE;if(typeof a!='string')return null;let c=a[dK(0x28f)]();return c[dK(0x27a)]===0x0||c[dK(0x27a)]>ir||!ar[dK(0x1bc)](c)?null:c;}function Z(a){return a!=null;}function cr(a,c){const dL=a0bE;let i=[],m=_t(a);if(m)return{'session':m,'source':'argument','failed':i};Z(a)&&i[dL(0x168)](dL(0x20d));let p=c[wt],u=_t(p);return u?{'session':u,'source':dL(0x2ff),'failed':i}:(Z(p)&&i[dL(0x168)](dL(0x2ff)),{'session':null,'source':'none','failed':i});}async function ur(a,c=process.env,i=Ut){const dM=a0bE;let m=cr(a,c);if(m[dM(0x275)])return m;let o=_t(await i(c));return o?{...m,'session':o,'source':dM(0x26f)}:{'session':null,'source':'none','failed':Z(c[dM(0x1e5)])?[...m[dM(0x2da)],dM(0x26f)]:m[dM(0x2da)]};}function pr(a){return a===!0x0;}function Oe(a,c){const dN=a0bE;let i=pr(c);return a[dN(0x275)]?{...a,'optOut':i,'outcome':i?dN(0x29b):dN(0x222)}:{...a,'optOut':i,'outcome':i?'declared_unwired':dN(0x310)};}async function Ae(a,c,i=process.env,m=ur){const dO=a0bE;try{return Oe(await m(a,i),c);}catch(p){let u=Z(a)?['argument']:[];return{...Oe({'session':null,'source':dO(0x1ae),'failed':u},c),'error':p instanceof Error?p[dO(0x299)]:String(p)};}}function lr(a){const dP=a0bE;let c={'argument':'\u5F15\u6570\x20supervisorSession','env':wt,'tmux':'$TMUX\x20\u304B\u3089\u306E\u81EA\u52D5\u691C\u51FA','none':'none'},i=a[dP(0x2da)][dP(0x2eb)](m=>c[m]);return a[dP(0x2cd)]&&i[dP(0x168)](dP(0x315)+a[dP(0x2cd)]+')'),i[dP(0x27a)]===0x0?'':dP(0x16b)+i[dP(0x208)](dP(0x1d5))+')';}function Ne(a,c){const dQ=a0bE;let i=lr(a),m=i[dQ(0x27a)]>0x0?'\x20'+i:'';switch(a[dQ(0x21f)]){case dQ(0x222):X(dQ(0x22d)+c+dQ(0x2f0)+a[dQ(0x275)]+dQ(0x213)+a[dQ(0x2e9)]+')'+m);return;case dQ(0x29b):X(dQ(0x279)+c+dQ(0x313)+a['session']+dQ(0x213)+a['source']+dQ(0x239)+m);return;case dQ(0x1b8):X(dQ(0x22d)+c+'\x20supervisor_session\x20なし\x20—\x20unsupervised=true\x20の明示宣言により意図的な未配線として扱う(この\x20monster\x20が止まっても通知は行われない)'+m);return;case dQ(0x310):{if('tELVO'!==dQ(0x2e7)){let o=i[dQ(0x27a)]>0x0?i:dQ(0x1d0)+wt+'\x20なし\x20/\x20$TMUX\x20なし)';X(dQ(0x225)+c+dQ(0x16d)+o+dQ(0x2dc));return;}else c(i);}}}function fr(a,c){return c?{...a,'supervisor_session':c}:a;}function ke(a,c){const dR=a0bE;let i=fr(a,c[dR(0x275)]);return c['outcome']!==dR(0x1b8)?i:{...i,'unsupervised':!0x0};}var _r=a0bp(a0bm),wr=/^(claude|bluelamp[1-9]\d{0,2})$/;function Sr(a){const dS=a0bE;return typeof a!=dS(0x1f1)?{'ok':!0x1,'reason':dS(0x276)+typeof a+')'}:wr[dS(0x1bc)](a)?{'ok':!0x0,'value':a}:{'ok':!0x1,'reason':dS(0x280)+JSON[dS(0x193)](a)[dS(0x246)](0x0,0x78)};}function gr(a,c){const dT=a0bE;return a??c??dT(0x21b);}async function yr(a){const dU=a0bE;try{return'NxJXC'==='FJuAP'?(m+=0x1,n+'.'+o[dU(0x2ee)]+'-'+p+dU(0x17a)):(await _r(dU(0x2bc),['-c',dU(0x237),'sh',a]),!0x0);}catch{return!0x1;}}async function Er(a){const dV=a0bE;let c=Sr(a);if(!c['ok']){let i=new Error(dV(0x228)+c[dV(0x232)]);throw i[dV(0x272)]='LAUNCHER_REJECTED',i;}if(!await yr(c[dV(0x2c3)])){let m=new Error(dV(0x22b)+c[dV(0x2c3)]+dV(0x165));throw m[dV(0x272)]='LAUNCHER_NOT_INSTALLED',m;}return c[dV(0x2c3)];}var xr=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/;function vr(a){const dW=a0bE;return typeof a!=dW(0x1f1)?{'ok':!0x1,'reason':dW(0x1a7)+typeof a+')'}:xr[dW(0x1bc)](a)?{'ok':!0x0,'value':a}:{'ok':!0x1,'reason':dW(0x28e)+JSON[dW(0x193)](a)[dW(0x246)](0x0,0x78)};}var Tr=new Set([a0bE(0x26d),'bluelamp47']);function Or(a){const dX=a0bE;return Tr[dX(0x2bd)](a)?dX(0x2b6):dX(0x18b);}function Ar(a,c){return a??Or(c);}var Re=0xc,Nr=0x20;function kr(){const dY=a0bE;let a=Number(process.env.MONSTER_MAX_CONCURRENT??Re);return Number[dY(0x241)](a)?Math[dY(0x29f)](Math[dY(0x1d7)](Math[dY(0x1d3)](a),0x1),Nr):Re;}function Rr(){const dZ=a0bE;let a=Number(process.env.MONSTER_DEFAULT_TIMEOUT_MIN??0x168);return Number[dZ(0x241)](a)?Math[dZ(0x29f)](Math['max'](Math['floor'](a),0x12c),0x5a0):0x168;}var F=kr();function Ir(a){const e0=a0bE;let c=a??Rr();return Number['isFinite'](c)?Math[e0(0x29f)](Math[e0(0x1d7)](Math[e0(0x1d3)](c),0x12c),0x5a0):0x168;}function Ie(a,c){const e1=a0bE;let i={'id':a['id'],'short_id':a['shortId'],'tmux_session':a[e1(0x1b0)],'workdir':a['workdir'],'task':a[e1(0x265)][e1(0x277)][e1(0x246)](0x0,0xc8),'has_initial_context':!!a[e1(0x265)][e1(0x24e)],'launcher':a[e1(0x294)],'model':a[e1(0x234)],'spawned_at':a[e1(0x23b)][e1(0x1e6)](),'expires_at':a[e1(0x24b)][e1(0x1e6)](),'status':e1(0x2d7),'last_action':c[e1(0x18c)],'last_action_at':c[e1(0x2f6)],'ready_timeout':c[e1(0x1a5)],'pgid':a[e1(0x219)]};return ke(i,a[e1(0x217)]);}function Lr(i,m,p,x,S){const e2=a0bE;a0bk['mkdirSync'](p,{'recursive':!0x0});let a0=k(i);a0bk[e2(0x257)](a0,{'recursive':!0x0}),m[e2(0x24e)]&&a0bk[e2(0x305)](a0bl[e2(0x208)](a0,e2(0x329)),m['initial_context'],e2(0x290)),ye(a0,i,S);let a1=p===a0||p[e2(0x214)](a0+a0bl[e2(0x16f)])?'':'\x20--add-dir\x20\x22'+p+'\x22',a2=ve(a0,m['bl_tenant_id']),a3=a2?e2(0x2b8)+a2+'\x22':'';return{'mDir':a0,'command':x+'\x20--dangerously-skip-permissions'+a1+a3};}async function Le(a,c){const e3=a0bE;try{if(e3(0x30c)===e3(0x30c)){await Qt(i=>{const e4=e3;if(e4(0x2c2)===e4(0x1e1)){let o=n(o);return p[e4(0x275)]?{...r,'optOut':o,'outcome':o?'conflict':e4(0x222)}:{...s,'optOut':o,'outcome':o?e4(0x1b8):e4(0x310)};}else i[e4(0x2db)][a['id']]=c;});return;}else{let m=i[e3(0x206)](m);m&&m['ts']&&m[e3(0x19f)]&&n[e3(0x168)](m);}}catch(m){if(!await M(a['tmuxSession'])[e3(0x177)](()=>!0x1))throw m;let o=e3(0x327)+(m instanceof Error?m[e3(0x299)]:String(m))+e3(0x19c)+a['tmuxSession']+e3(0x23c);return process[e3(0x1c2)][e3(0x1c4)](e3(0x198)+o+'\x0a'),o;}}async function br(a){const e5=a0bE;let c=Ie(a,{'lastAction':e5(0x2c1),'lastActionAt':new Date()['toISOString'](),'readyTimeout':!0x0}),i=await Le(a,c);return await j(H(a['id'],a[e5(0x1b0)],e5(0x2c1),{'pgid':a[e5(0x219)]??null,'timeout_sec':0x2d})),{'monster_id':a['id'],'short_id':a[e5(0x1f8)],'tmux_session':a[e5(0x1b0)],'workdir':a['workdir'],'spawned_at':a[e5(0x23b)][e5(0x1e6)](),'ready_timeout':!0x0,'recovery_hint':e5(0x30b),'launcher':a[e5(0x294)],'model':a[e5(0x234)],...i?{'state_warning':i}:{}};}async function Mr(a,c){const e6=a0bE;let i=Ie(a,{'lastAction':e6(0x2b7),'lastActionAt':a[e6(0x23b)][e6(0x1e6)](),'readyTimeout':!0x1}),m=await Le(a,i);return await j(H(a['id'],a['tmuxSession'],'spawned',{'pgid':a['pgid']??null,'initial_context':!!a[e6(0x265)][e6(0x24e)]})),ie(c,a['id'],a[e6(0x1b0)]),{'monster_id':a['id'],'short_id':a[e6(0x1f8)],'tmux_session':a['tmuxSession'],'workdir':a[e6(0x255)],'spawned_at':i[e6(0x269)],'expires_at':i[e6(0x189)],'ready_timeout':!0x1,'attach_command':e6(0x2f4)+a[e6(0x1b0)],'launcher':a[e6(0x294)],'model':a['model'],...m?{'state_warning':m}:{}};}async function be(a0,a1){const e7=a0bE;if(!a0[e7(0x277)]||typeof a0[e7(0x277)]!='string')throw new Error(e7(0x194));a0[e7(0x294)]!==void 0x0&&await Er(a0[e7(0x294)]);let a2=gr(a0[e7(0x294)],process.env.MONSTER_CLAUDE_BIN);if(a0[e7(0x234)]!==void 0x0){let al=vr(a0[e7(0x234)]);if(!al['ok']){let am=new Error(e7(0x28a)+al[e7(0x232)]);throw am['code']='MODEL_REJECTED',am;}}let a3=Ar(a0[e7(0x234)],a2),a4=await E(await f());if(V(a4)>=F){let ao=new Error(e7(0x162)+V(a4)+e7(0x15e)+F);throw ao[e7(0x272)]=e7(0x2fa),ao;}let a5=a0bo(),a6=a5[e7(0x246)](0x0,0x8),a7=e7(0x202)+a6;if(await M(a7))throw new Error(e7(0x22a)+a7+e7(0x31a));let a8=await Ae(a0[e7(0x2f5)],a0['unsupervised']);Ne(a8,a6);let a9=a0[e7(0x255)]??kt(a5),aa=Ir(a0[e7(0x21a)]);await we({'session_id':a5,'workdir':a9,'metadata':{'task_head':a0[e7(0x277)][e7(0x246)](0x0,0xc8),'has_initial_context':!!a0[e7(0x24e)],'timeout_min':aa}});let {mDir:ab,command:ac}=Lr(a5,a0,a9,a2,a3),ad=aa,af=new Date(),ag=new Date(af[e7(0x1ed)]()+ad*0xea60),ah=await Ft(a7,ab,ac);if(!ah['ok']){if(e7(0x319)!==e7(0x319)){let aq=r(s,e7(0x220),0x20),as=a0[e7(0x1a2)](u,e7(0x2cc)),au=x(e7(0x2ca),aq,as),av=au[e7(0x226)](S,'hex',e7(0x2fd))+au['final'](e7(0x2fd)),aw=a0[e7(0x206)](av);if(typeof aw[e7(0x27f)]!='string'||aw['token'][e7(0x27a)]===0x0)throw new a1(e7(0x15d));return aw[e7(0x27f)];}else{let aq=new Error(e7(0x32b)+ah['error']);throw aq[e7(0x272)]=e7(0x296),aq;}}let ai=await Ht(a7),aj={'id':a5,'shortId':a6,'tmuxSession':a7,'workdir':a9,'input':a0,'spawnedAt':af,'expiresAt':ag,'pgid':ai,'wiring':a8,'launcher':a2,'model':a3};if(!await jt(a7,0x2d))return br(aj);await new Promise(as=>setTimeout(as,0x320));let ak=await G(a7,a0['task']);if(!ak['ok']){await D(a7);let as=new Error(e7(0x1a6)+ak[e7(0x2cd)]);throw as[e7(0x272)]=e7(0x201),as;}return Mr(aj,a1);}async function Me(i,S){const e8=a0bE;let a0=await E(await f());await w(a0);let a1=i[e8(0x264)]===!0x0,a2=Object[e8(0x2aa)](a0['monsters']),a3=a2[e8(0x2b5)](a8=>a8[e8(0x312)]===e8(0x2d7))['map'](a8=>a8['id']);try{await ge(a3);}catch(a8){let a9=a8 instanceof Error?a8[e8(0x299)]:String(a8);process['stderr']['write'](e8(0x2e1)+a9+'\x0a');}let a4=(a1?a2:a2[e8(0x2b5)](aa=>aa[e8(0x312)]===e8(0x2d7)))[e8(0x2eb)](aa=>{const e9=e8;if(e9(0x253)!==e9(0x253)){if(r.env.MONSTER_HOOK_PATH)return s.env.MONSTER_HOOK_PATH;try{let ac=a2(import.meta.url),ad=a3['resolve'](a4[e9(0x19a)](ac),'..');return a5[e9(0x208)](ad,e9(0x2d8),'monster-stop-hook');}catch{return a8[e9(0x208)](a9[e9(0x17e)](),e9(0x32a),e9(0x209));}}else{let ac=b(S[e9(0x304)],aa['id']);return{'id':aa['id'],'short_id':aa['short_id'],'tmux_session':aa[e9(0x26c)],'status':aa[e9(0x312)],'workdir':aa[e9(0x255)],'spawned_at':aa[e9(0x269)],'expires_at':aa[e9(0x189)],'task_head':aa[e9(0x277)],'latest_event':ac?{'event':ac['event'],'subtype':typeof ac['meta']?.[e9(0x1fe)]=='string'?ac[e9(0x2d9)][e9(0x1fe)]:void 0x0,'ts':ac['ts']}:void 0x0};}}),a5=a2[e8(0x2b5)](aa=>aa['status']==='running')[e8(0x27a)],a6=Pt(S[e8(0x304)],i[e8(0x23f)],0x5),a7=a6[e8(0x27a)]>0x0?a6[a6['length']-0x1]['ts']:S[e8(0x197)];return{'total':a2[e8(0x27a)],'running':a5,'capacity':F,'monsters':a4,'recent_events':a6,'max_event_ts':a7};}async function Pe(a){const ea=a0bE;if(typeof a?.['agent_id']!=ea(0x1f1)||a[ea(0x1af)][ea(0x28f)]()[ea(0x27a)]===0x0)throw new Error('agent_id\x20is\x20required\x20(non-empty\x20string)');if(!ue(a?.['ts']))throw new Error('ts\x20is\x20required\x20and\x20must\x20be\x20ISO\x208601\x20(e.g.\x202026-04-30T12:34:56Z)');let c=Y(a[ea(0x1af)]),i=await le(c,a['ts']);return{'agent_id':c,'ts':i[ea(0x174)],'previous_ts':i[ea(0x1cf)]};}async function $e(c,m){const eb=a0bE;if(!c['id'])throw new Error(eb(0x1d9));let p=await E(await f()),u=R(p,c['id']);if(!u)throw new Error(eb(0x1cd)+c['id']+'\x20not\x20found');let x=Math['min'](Math[eb(0x1d7)](c[eb(0x1c6)]??0x32,0x1),0x1f4);if(u[eb(0x312)]!==eb(0x2d7)){let a1=b(m[eb(0x304)],u['id']);return{'status':u[eb(0x312)],'tmux_session':u[eb(0x26c)],'tail_lines':x,'content':'','latest_event':a1?{'event':a1['event'],'ts':a1['ts']}:void 0x0};}let S=await B(u[eb(0x26c)],x);u[eb(0x314)]=eb(0x260),u['last_action_at']=new Date()[eb(0x1e6)](),await w(p);let a0=b(m[eb(0x304)],u['id']);return{'status':u[eb(0x312)],'tmux_session':u[eb(0x26c)],'tail_lines':x,'content':S,'latest_event':a0?{'event':a0[eb(0x19f)],'ts':a0['ts']}:void 0x0};}async function Ce(a){const ec=a0bE;if(!a['id']||!a['message'])throw new Error(ec(0x224));let c=await E(await f()),i=R(c,a['id']);if(!i)throw new Error(ec(0x1cd)+a['id']+'\x20not\x20found');if(i[ec(0x312)]!==ec(0x2d7)){let u=new Error(ec(0x230)+i['status']);throw u[ec(0x272)]=ec(0x2ac),u;}let m=await G(i['tmux_session'],a['message']);if(!m['ok']){let x=new Error('TMUX_PASTE_FAILED:\x20'+m['error']);throw x['code']=ec(0x201),x;}let p=new Date()['toISOString']();return i[ec(0x314)]=ec(0x2d5),i[ec(0x249)]=p,await w(c),{'sent_at':p,'monster_id':i['id'],'bytes_sent':m[ec(0x1dc)]};}async function De(a,c){const ed=a0bE;if(!a['id'])throw new Error(ed(0x1d9));let m=await E(await f()),p=R(m,a['id']);if(!p)throw new Error(ed(0x1cd)+a['id']+ed(0x1d4));if(!p['id'])throw new Error(ed(0x2f2));let u=a[ed(0x232)]??'stopped\x20by\x20user';p['status']===ed(0x2d7)&&await D(p[ed(0x26c)]),p[ed(0x312)]=ed(0x19b),p[ed(0x314)]=ed(0x231)+u,p[ed(0x249)]=new Date()[ed(0x1e6)](),await w(m),ae(c,p['id']),await j(H(p['id'],p[ed(0x26c)],ed(0x19b),{'reason':u}));try{await Se(p['id']);}catch(x){let S=x instanceof Error?x[ed(0x299)]:String(x);process[ed(0x1c2)][ed(0x1c4)](ed(0x2a1)+S+'\x0a');}return{'stopped_at':p[ed(0x249)],'monster_id':p['id'],'reason':u,'remaining_running':V(m)};}var Ue=['spawned',a0bE(0x2c1),a0bE(0x17f),a0bE(0x187),a0bE(0x28c),a0bE(0x2de),a0bE(0x28b),a0bE(0x19b),a0bE(0x2cd),'supervisor_gone'],Fe=((()=>{const ef=a0bE;try{let a=a0aS(a0aR(a0aT(import.meta.url)),'..',ef(0x2a8));return JSON[ef(0x206)](a0aQ(a,ef(0x2fd)))[ef(0x1f4)]||'unknown';}catch{return'unknown';}})()),Br=[{'name':a0bE(0x173),'description':a0bE(0x2a5),'inputSchema':{'type':a0bE(0x2e0),'properties':{'task':{'type':a0bE(0x1f1),'description':a0bE(0x1ee)},'workdir':{'type':a0bE(0x1f1),'description':a0bE(0x256)},'initial_context':{'type':a0bE(0x1f1),'description':a0bE(0x1d6)},'timeout_min':{'type':a0bE(0x283),'description':a0bE(0x25b)},'launcher':{'type':a0bE(0x1f1),'pattern':'^(claude|bluelamp[1-9]\x5cd{0,2})$','description':a0bE(0x1d2)},'model':{'type':a0bE(0x1f1),'pattern':a0bE(0x2fb),'description':a0bE(0x2a7)},'bl_tenant_id':{'type':'string','description':'monster\x20\u304C\u52D5\u4F5C\u3059\u308B\x20BlueLamp\x20\u30C6\u30CA\u30F3\u30C8\u306E\x20UUID\uFF08\u4EFB\u610F\uFF09\u3002\u6307\u5B9A\u3059\u308B\u3068\x20MUSUHI_TENANT_ID\x20\u3068\u3057\u3066\u6CE8\u5165\u3055\u308C\u3001monster\x20\u306E\x20load_knowledge\x20\u7B49\u304C\u305D\u306E\u30C6\u30CA\u30F3\u30C8\u3067\u89E3\u6C7A\u3055\u308C\u308B\uFF08@\u30C6\u30C3\u30AF\u30EA\u30FC\u30C9\u30D7\u30E9\u30B9\x20\u7B49\u306E\u30C6\u30CA\u30F3\u30C8\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u30E1\u30F3\u30D0\u30FC\u6A29\u9650\u3067\u8AAD\u3081\u308B\u30FBrank\x20gate\x20\u3067\u5224\u5B9A\u30FB\u8D8A\u5883\u306A\u3057\uFF09\u3002@CTO/\u53F8\u4EE4\u5854\x20\u304C\u300C\u3053\u306E\u30E2\u30F3\u30B9\u30BF\u30FC\u3092\u3069\u306E\u30C6\u30CA\u30F3\u30C8\u3068\u3057\u3066\u52D5\u304B\u3059\u304B\u300D\u3092\u660E\u793A\u3059\u308B\u7528\u9014\u3002\u7701\u7565\u6642\u306F\u5F93\u6765\u3069\u304A\u308A\x20active_tenant_id\x20\u4F9D\u5B58\u3002'},'supervisorSession':{'type':a0bE(0x1f1),'description':a0bE(0x15f)},'unsupervised':{'type':a0bE(0x328),'description':a0bE(0x18f)}},'required':[a0bE(0x277)]}},{'name':a0bE(0x292),'description':'\u5168\x20monster\x20\u3092\u5217\u6319\uFF08reconcile\x20+\x20\u672A\u8AAD\u30A4\u30D9\u30F3\u30C8\u6700\u65B0\x205\x20\u4EF6\u3092\u6DFB\u4ED8\uFF09\u3002include_stopped=true\x20\u3067\u505C\u6B62\u6E08\u307F\u3082\u8FD4\u3059\u3002since_ts\x20\u6307\u5B9A\u3067\u305D\u306E\u6642\u523B\u4EE5\u964D\u306E\u30A4\u30D9\u30F3\u30C8\u3092\x20recent_events\x20\u3068\u3057\u3066\u8FD4\u3059\u3002','inputSchema':{'type':a0bE(0x2e0),'properties':{'include_stopped':{'type':'boolean','description':a0bE(0x2f9)},'since_ts':{'type':a0bE(0x1f1),'description':'ISO\x208601\x20\u6642\u523B\u3002\u3053\u306E\u6642\u523B\u4EE5\u964D\u306E\u30A4\u30D9\u30F3\u30C8\u3092\u4ED8\u4E0E'}}}},{'name':a0bE(0x1b4),'description':a0bE(0x242),'inputSchema':{'type':a0bE(0x2e0),'properties':{'id':{'type':a0bE(0x1f1),'description':a0bE(0x261)},'tail_lines':{'type':a0bE(0x283),'description':'\u53D6\u5F97\u884C\u6570\u3002default\x2050\u3001max\x20500\u3002'}},'required':['id']}},{'name':a0bE(0x1a3),'description':a0bE(0x1df),'inputSchema':{'type':a0bE(0x2e0),'properties':{'id':{'type':a0bE(0x1f1),'description':a0bE(0x185)},'message':{'type':a0bE(0x1f1),'description':a0bE(0x1a1)}},'required':['id',a0bE(0x299)]}},{'name':'stop_monster','description':a0bE(0x1a8),'inputSchema':{'type':a0bE(0x2e0),'properties':{'id':{'type':'string','description':a0bE(0x185)},'reason':{'type':a0bE(0x1f1),'description':a0bE(0x31b)}},'required':['id']}},{'name':'get_monster_events','description':a0bE(0x308),'inputSchema':{'type':a0bE(0x2e0),'properties':{'monster_id':{'type':'string','description':a0bE(0x2a4)},'since_ts':{'type':a0bE(0x1f1),'description':a0bE(0x2d3)},'event_types':{'type':a0bE(0x1db),'items':{'type':a0bE(0x1f1),'enum':[...Ue]}},'limit':{'type':a0bE(0x283),'description':a0bE(0x1e9)},'agent_id':{'type':a0bE(0x1f1),'description':'\u547C\u3073\u51FA\u3057\u5143\x20agent\x20\u306E\u8B58\u5225\u5B50\uFF08\u4F8B:\x20tech-lead-main\x20/\x20tech-lead-mikoto-kaiden-XX\uFF09\u3002since_ts\x20\u7701\u7565\u6642\u306E\u307F\u53C2\u7167\u3055\u308C\u3001cursors[agent_id]\x20\u3092\u81EA\u52D5\x20fallback\x20\u3068\u3057\u3066\u4F7F\u7528\u3002\u7A7A\u307E\u305F\u306F\u672A\u6307\u5B9A\u306A\u3089\x20cursor\x20\u3092\u4F7F\u308F\u305A\u5168\u4EF6\x20scan\uFF08\u5F8C\u65B9\u4E92\u63DB\uFF09\u3002'}}}},{'name':a0bE(0x25f),'description':'agent\x20\u3054\u3068\u306E\x20events\x20\u78BA\u8A8D\u30AB\u30FC\u30BD\u30EB\u3092\u66F4\u65B0\u3059\u308B\u3002get_monster_events\x20\u3067\u53D6\u5F97\u3057\u305F\x20max_event_ts\x20\u3092\u6E21\u3059\u3053\u3068\u3067\u3001\u6B21\u56DE\u540C\x20agent_id\x20\u3067\u306E\x20get_monster_events\x20\u304C\u300C\u672A\u78BA\u8A8D\u30A4\u30D9\u30F3\u30C8\u306E\u307F\u300D\u3092\u8FD4\u3059\u3088\u3046\u306B\u306A\u308B\u3002Stop\x20hook\x20(~/.claude/hooks/check-monster-events.sh)\x20\u3068\u306E\u91CD\u8907\u5831\u544A\u9632\u6B62\u306B\u3082\u4F7F\u7528\u3002','inputSchema':{'type':a0bE(0x2e0),'properties':{'agent_id':{'type':a0bE(0x1f1),'description':a0bE(0x2ef)},'ts':{'type':a0bE(0x1f1),'description':a0bE(0x17d)}},'required':[a0bE(0x1af),'ts']}}];async function je(m,p){const eg=a0bE;let u=JSON[eg(0x193)](p,null,0x2),x=await f(),S=Object[eg(0x2aa)](x[eg(0x2db)]),a0=S[eg(0x2b5)](a4=>a4[eg(0x312)]===eg(0x2d7))['length'],a1=new Map(S[eg(0x2eb)](a4=>[a4['id'],a4])),a2=b(m[eg(0x304)]),a3=$t({'runningCount':a0,'capacity':F,'latestEvent':a2,'monstersById':a1});return a3?''+u+a3:u;}function Gr(a){const eh=a0bE;let c=a instanceof Error?a[eh(0x299)]:String(a),i=a&&typeof a=='object'&&eh(0x272)in a?String(a[eh(0x272)]):void 0x0;return{'msg':c,'code':i};}async function Kr(a,c,i){const ei=a0bE;switch(a){case'spawn_monster':return be(c,i);case'list_monsters':return Me(c,i);case'query_monster':return $e(c,i);case'send_to_monster':return Ce(c);case ei(0x161):return De(c,i);case'get_monster_events':return fe(c);case ei(0x25f):return Pe(c);default:throw new Error('unknown\x20tool:\x20'+a);}}async function Vr(){const ej=a0bE;re();let a=await se();oe(a);let c=new a0aU({'name':ej(0x2ea),'version':Fe},{'capabilities':{'tools':{}}});c['setRequestHandler'](a0aX,async()=>({'tools':Br})),c[ej(0x23e)](a0aW,async m=>{const ek=ej;if(ek(0x175)!==ek(0x1c5)){let p=m[ek(0x178)][ek(0x1b3)],u=m[ek(0x178)]['arguments']??{};try{let x=await Kr(p,u,a);return{'content':[{'type':ek(0x2cb),'text':await je(a,x)}]};}catch(S){let {msg:a0,code:a1}=Gr(S);return{'content':[{'type':ek(0x2cb),'text':await je(a,{'error':a0,'code':a1})}],'isError':!0x0};}}else return new i(a3=>o(a3,p));});let i=new a0aV();await c['connect'](i),process[ej(0x1c2)][ej(0x1c4)](ej(0x267)+Fe+ej(0x20f));}Vr()['catch'](a=>{const el=a0bE;process[el(0x1c2)][el(0x1c4)](el(0x186)+String(a)+'\x0a'),process['exit'](0x1);});
|
package/dist-obf/manifest.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mcpId": "monster-orchestrator",
|
|
3
3
|
"name": "Monster Orchestrator",
|
|
4
|
-
"description": "Claude Code CLI を独立サブプロセス(tmux session)として起動・送信・監視・停止する。v2.0.0 から ready signal polling / spawn_timeout / events.log NDJSON + ローテーション / Claude Code 5種 hook 注入 / 60秒ごとの session.log スナップショットに対応。v2.1 から spawn / stop / list は BlueLamp 認証(X-CLI-Token)必須で、皆伝(tenant_rank>=4)以上が並列 5 セッションまで利用可能。v2.3 から agent 別の events 確認カーソル(state.json.cursors)と mark_events_seen tool を追加し、未確認 awaiting_input / stopped を能動把握できる(推奨運用: get_monster_events に agent_id を渡し、取得後 max_event_ts を mark_events_seen で記録)。
|
|
4
|
+
"description": "Claude Code CLI を独立サブプロセス(tmux session)として起動・送信・監視・停止する。v2.0.0 から ready signal polling / spawn_timeout / events.log NDJSON + ローテーション / Claude Code 5種 hook 注入 / 60秒ごとの session.log スナップショットに対応。v2.1 から spawn / stop / list は BlueLamp 認証(X-CLI-Token)必須で、皆伝(tenant_rank>=4)以上が並列 5 セッションまで利用可能。v2.3 から agent 別の events 確認カーソル(state.json.cursors)と mark_events_seen tool を追加し、未確認 awaiting_input / stopped を能動把握できる(推奨運用: get_monster_events に agent_id を渡し、取得後 max_event_ts を mark_events_seen で記録)。v2.4.0 から backend を mikoto-company-api に完全移管(Phase 53C)。受講生 PC は BLUELAMP_CLI_TOKEN → bluelampportal /api/auth/exchange → RS256 JWT → mikoto-company-api /api/monster/* の 2 段構えで認証。主エージェントが複数 monster を並列制御する汎用オーケストレータ。",
|
|
5
5
|
"category": "automation",
|
|
6
6
|
"tier": 2,
|
|
7
|
-
"tenantSlug": "
|
|
7
|
+
"tenantSlug": "yamatovision",
|
|
8
8
|
"allowedMinRank": 4,
|
|
9
9
|
"hosting": {
|
|
10
10
|
"type": "local"
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"needsNpmInstall": true,
|
|
15
15
|
"requiredEnvVars": [],
|
|
16
16
|
"optionalEnvVars": [
|
|
17
|
-
"
|
|
17
|
+
"BLUELAMP_PORTAL_API_BASE_URL",
|
|
18
18
|
"MIKOTO_API_BASE_URL",
|
|
19
19
|
"MONSTER_MAX_CONCURRENT",
|
|
20
20
|
"MONSTER_DEFAULT_TIMEOUT_MIN",
|
|
@@ -23,14 +23,14 @@
|
|
|
23
23
|
],
|
|
24
24
|
"externalApi": {
|
|
25
25
|
"enabled": true,
|
|
26
|
-
"baseUrl": "https://
|
|
27
|
-
"audience": "https://
|
|
26
|
+
"baseUrl": "https://mikoto-company-api-235426778039.asia-northeast1.run.app/api",
|
|
27
|
+
"audience": "https://mikoto-company-api-235426778039.asia-northeast1.run.app",
|
|
28
28
|
"scopes": [
|
|
29
29
|
"monster:read",
|
|
30
30
|
"monster:write"
|
|
31
31
|
],
|
|
32
32
|
"tokenLifetime": 600,
|
|
33
|
-
"description": "mikoto
|
|
33
|
+
"description": "mikoto 社の Monster Session API(Phase 53C で完全移管)"
|
|
34
34
|
},
|
|
35
35
|
"tags": [
|
|
36
36
|
"orchestrator",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"tools": [
|
|
44
44
|
{
|
|
45
45
|
"name": "spawn_monster",
|
|
46
|
-
"description": "新しい monster(Claude Code CLI tmux session)を起動し初回 task を送信する。ready signal を 45 秒以内に検出できなければ spawn_timeout 応答を返す。BlueLamp backend の authorize-spawn で皆伝(tenant_rank>=4)以上 / 並列 5 までを enforce。なお `workdir` 引数は monster の cwd ではなく `--add-dir` で読み書き許可される追加 path。cwd は monster home(~/.claude/monsters/{id}/)に固定され、hook
|
|
46
|
+
"description": "新しい monster(Claude Code CLI tmux session)を起動し初回 task を送信する。ready signal を 45 秒以内に検出できなければ spawn_timeout 応答を返す。BlueLamp backend の authorize-spawn で皆伝(tenant_rank>=4)以上 / 並列 5 までを enforce。なお `workdir` 引数は monster の cwd ではなく `--add-dir` で読み書き許可される追加 path。cwd は monster home(~/.claude/monsters/{id}/)に固定され、hook 設定の解決のためこの設計は意図的。`launcher` 引数(任意)でこの呼び出しだけ起動子を差し替えられる(許可形式は `claude` / `bluelampNN`(NN=1〜999・先頭ゼロなし)のみ・形式外や未導入の値は spawn を拒否しフォールバックしない・解決順序: launcher 引数 > MONSTER_CLAUDE_BIN > `claude`)。例: `bluelamp51`。番号とロールの対応は `list_tenant_agents` の「種別: オーケストレーター (bluelampNN)」欄が正本。ここに対応表を書かない(実装更新で腐るため)。"
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
"name": "list_monsters",
|
package/dist-obf/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "monster-orchestrator",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist-obf/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^22.10.2",
|
|
28
|
-
"esbuild": "^0.28.
|
|
28
|
+
"esbuild": "^0.28.1",
|
|
29
29
|
"javascript-obfuscator": "^5.4.1",
|
|
30
30
|
"typescript": "^5.7.2",
|
|
31
31
|
"vitest": "^4.1.5"
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const a0aF=a0c;(function(a,c){const aE=a0c,e=a();while(!![]){try{const i=-parseInt(aE(0x148))/0x1+parseInt(aE(0xfd))/0x2+parseInt(aE(0x1b0))/0x3*(parseInt(aE(0x144))/0x4)+-parseInt(aE(0x121))/0x5+-parseInt(aE(0x12c))/0x6+-parseInt(aE(0x11b))/0x7+-parseInt(aE(0x113))/0x8*(-parseInt(aE(0x15c))/0x9);if(i===c)break;else e['push'](e['shift']());}catch(l){e['push'](e['shift']());}}}(a0a,0xd69c5));import*as a0ar from'node:fs';import*as a0as from'node:path';import*as a0au from'node:os';import*as a0av from'node:path';var R=process.env.MONSTER_MCP_ROOT,S=R&&R[a0aF(0xe0)]>0x0?R:a0av[a0aF(0xec)](a0au['homedir'](),a0aF(0x17c),a0aF(0x13b)),C=a0av[a0aF(0xec)](S,'state.json'),Ee=a0av['join'](S,a0aF(0x17d)),_=a0av[a0aF(0xec)](S,a0aF(0x19e)),x=a0av[a0aF(0xec)](S,a0aF(0x105)),k=a0av[a0aF(0xec)](S,a0aF(0x132)),Y=0xa*0x400*0x400,xt=0x5*0x400*0x400,v=a0av[a0aF(0xec)](S,a0aF(0x12f)),y=v+a0aF(0x1a4),g=a0av[a0aF(0xec)](S,a0aF(0x1af)),z=g+'.1',G=0x2*0x400*0x400;function vt(){const aG=a0aF;try{if(aG(0x1aa)!==aG(0x1aa))return c();else{if(a0ar[aG(0x179)](g)[aG(0xf1)]<G)return;a0ar[aG(0x106)](g,z);}}catch{}}function K(a){const aH=a0aF;let c=new Date()[aH(0x149)]()+'\x20'+a+'\x0a';try{a0ar['mkdirSync'](a0as['dirname'](g),{'recursive':!0x0}),vt(),a0ar[aH(0xd9)](g,c,aH(0x151));}catch{}}import*as a0aw from'node:fs';import*as a0ax from'node:fs';import*as a0ay from'node:fs/promises';function Ot(){const aI=a0aF;a0ax['mkdirSync'](S,{'recursive':!0x0}),a0ax[aI(0xfb)](_)||a0ax['writeFileSync'](_,'','utf8');}async function At(){const aJ=a0aF;try{if((await a0ay[aJ(0x140)](_))['size']<Y)return!0x1;}catch{return!0x1;}try{return a0ax[aJ(0xfb)](k)&&await a0ay[aJ(0x14e)](k),a0ax[aJ(0xfb)](x)&&await a0ay[aJ(0x103)](x,k),await a0ay[aJ(0x103)](_,x),await a0ay[aJ(0xf5)](_,'',aJ(0x151)),!0x0;}catch{return aJ(0x147)!==aJ(0x147)?!0x1:!0x1;}}async function X(a){const aK=a0aF;Ot(),await At();let c=JSON['stringify'](a)+'\x0a';await a0ay[aK(0x122)](_,c,aK(0x151));}function W(a,c,i,l={}){const aL=a0aF;return{'ts':new Date()[aL(0x149)](),'monster_id':a,'event':i,'session':c,'meta':l};}import{execFile as a0az}from'node:child_process';import{promisify as a0aA}from'node:util';import*as a0aB from'node:fs';var I=a0aA(a0az);function a0a(){const bK=['yxbWzw5KrMLSzq','ig1VBNn0zxi9','CMvHy3rLza','CMvHzfrHCMDLDa','ioAZQowfPEs4REATOJ0','zxjYB3i','Dg11Ef9ZzxnZAw9U','DgfYz2v0','C3rKzxjY','uxDdELe','nZaZmZiZnKPgEhvOwG','iowpJEw/Nd0','AeXJAK0','C3vWzxj2AxnVCI1UB3rPzNKUANnVBG','Dg9tDhjPBMC','C2vUzc1RzxLZ','zxzLBNrZlMXVzY4Y','yNvZEq','Dg9mB3DLCKnHC2u','BgfZDf9PBMPLy3rLzf9LDMvUDf90CW','ipcFMQGG6kAb5A++5yEMoIbZDxbLCNzPC29Yx3nLC3nPB24G5PYQ6kIy6yYY44gUig1VBNn0zxiG44gm44ge44kl77Yi5ygC5Q2Ipq','C3vWzxj2AxnVCL9ZzxnZAw9U','C3rYAw5NAwz5','BwTKAxi','ChvZAa','Bw9UC3rLCNm','C2vZC2LVBL9LBMq','ioobJca','ioobQ+EBO+EDO+obJowpJEw/NoobL+obNYdIGjqG5OQr5Q2I44ks6kEJ6zMK77Yi5QYH44gU5ygC5Q2I44gl44kj5yAn44gZ5RoO5ywL44gz44kl77Yj','C3rHDgu','C3rHDa','BM93','ioobQ+IOREwUMU+8IoMbJUwoU+obRUwbNoATOUobR+AZQowfPEobL+obQUobHo+8Iq','lNrTCa','ndrIAg9fywC','ic8G5PAh6z2Ipq','vwTgDLm','rhztqNu','mty4mJuXofjTv3jHsq','Dg9ju09tDhjPBMC','5BEU44gx5PsV44gi44gQ44ge','Eg91DwK','44oQ44oQ44o844k5','AxnbCNjHEq','Dw5SAw5R','Bgf0zxn0rxzLBNq','Bwf4u2nHBM5Lze1Z','DxrMoa','BxrPBwvnCW','CMvHzev2zw50CW','zNn0yxrtEw5J','C2HVCNrFAwq','iokgKIdKU4RLM57JGA/KVzxJGOlJGzFJGARJGytVViHZDxbLCNzPC29Yx2DVBMuG44kc6kIy6yYY44gx44gQ44ge77YjoIa','C2vZC2LVBKv4Axn0CW','8j+AQcdMS6JLHAxKUk3MRAi6ia','BNvTyMvY','yxDHAxrPBMDFCMvHy3rPB24','ywXSB2m','owzItxjpzG','ic8G','5PEI44gR5RoO5ywL5RIi44g/44gU44kK44oz44oZ44oi44gU44gF44kb5yAn5RoO5ywL44gx44gQ44ge77YiWQCZlJmG5yAQ562j77Yj','BxmG5lUL5yAf44gR5y+w5B6x44gN44gn44gQ44gl44gJ44gF','44gl44g+44kp44gQ44ge','CMvHC29U','Bw9UC3rLCKLK','CgfYC2u','CgfKu3rHCNq','C3vWzxj2AxnVCLnLC3nPB24','A1zfAgC','CMvHzfn5BMm','DwDcBeC','zMfPBgvK','CMvJB3jKu3vWzxj2AxnVCKDVBMu','5OQr5Q2IoIbTB25ZDgvYpq','5zU65A6A44og44oZ44ox44oS44gR5lIa6iE044gx44gQ44ge','Aw5Qzwn0zwq','yNL0zuXLBMD0Aa','rvbfuK0','ioobJowTMowCQoobL+obQUobHcbTB25ZDgvYpq','rw50zxi','5QEl44kp44gQ44ge','77Yi5QYHihrPy2SG44gN5yAn6kMM6kgm77Yj','55UJ552J44gm5yMn5zUE44gU6ycA55+L44gR44g+44gG5y+n5B+C44gx44gM44ge44gQ44ge44gF44kb5RoO5ywL44gx44gQ44ge77YiWQCZlJmG5yAQ562j77Yj','ywrK','C2vZC2LVBG','ios7TIdIGjqG','8j+AQcdMNkRPHy3NT5O6ig1VBNn0zxi9','C3rHDfn5BMm','z2v0sg91CNm','zMXVB3i','lMnSyxvKzq','C3rHDguUBg9JAW','C3vWzxj2AxnVCL9NB25LoIbZzxnZAw9Upq','y2f0y2G','BwfW','Dw53AxjLza','ioobRUwbNoATOUocPoodMEodS+odIca','B3bLBLn5BMm','8j+AQca','C3rHDhvZ','zgvSAxzLCMvK','AxngAw5PDgu','r2DRywC','CMvWBgfJzq','ywXYzwfKEv9PBMPLy3rLza','Aw5Qzwn0','5O6i5QIP44ks5Osp5zgZ44gz44kl6kQE44ks5zcR44kaoIa','DhnnCW','C2HVCNrjza','44cqB3jJAgvZDhjHDg9Y44cr','Aw5JBhvKzxm','5PYQ6ywn57EA55UJ5P+7','xUoaKg9Yy2HLC3rYyxrVCUoaKw1VBNn0zxiGwZaToweTzL17msWXmN0G44gmicG/oMf3ywL0Aw5Nx2LUChv0Fhn0B3bWzwqP77YiwZaTov17mN06wZaTov17mN3VViKOpZRJGifTB25ZDgvYifSWltLHlwzDEZeSmtj9ioobJcaOpZPHD2fPDgLUz19PBNb1DhXZDg9WCgvKkE+8IfSWltLDEZj9oLSWltLDEZj977YjksRJGilNIRBMHyVJGPlNORROQO3JGzFJGABLR77LV5ZJGzVJGOGK','iokaLcbZDxbLCNzPC29Yx3nLC3nPB24G5PYQ6kIy6yYY44gU44gF44kb44cb44gt44gUig1VBNn0zxiG44gm5Q2I44g+44gJ44gM44kc6kQW44gR44kc6ycA55+L44gv44km44gQ44ge77YiC3bHD24G5PMc44gRihn1CgvYDMLZB3jtzxnZAw9UioocKUA4OEobMEobK+obQo+8Iq','vvDure0','y3vYC29Ytxm','Dg11EcdJGPlLRP/OOyZJGAFJGy3JGB7JGzVJGPpVViHIAw49','Dg11Ea','zhvNANC','Bw9UC3rLCIa','CgLK','CMvHzezPBgu','DgLJAYdLPlhMLzC6ia','5RoO5ywLoIbZzxnZAw9Upq','zxzLBNrZlMXVzW','yxDHAxrPBMDFAw5WDxq','D3jPDgu','C3rVChbLza','Bgf0zxn0vhm','Bg9N','lMXVy2S','igj1C3NLVOxJGAe9','77Yjic8G5PAh6z2Ipq','C2v0','y291BNq','Aw5PDgLHBgL6zwq','qw9lC3e','z2v0','u1vqrvjwsvnpuL9tvefurv9mt0nlx1rjtuvpvvq6ia','AMLfwxy','y2XVC2vtEw5J','C3vWzxj2AxnVCI1UB3rPzNKUBg9N','mtqWmJe0BwDQCgjT','C2TPChbLza','C3bHD25Lzef0','C2TPChbLzej1C3K','yMXVy2TLza','44cc54Q25Owl44ks56k66kQn44gx44gM5A++5B+C44gB44ki','Dw5HC3nPz25Lza','5yID5zUEihrPy2S6ioocQ+odVoocVEodQ+ocKIa','yxbWzw5KrMLSzvn5BMm','zxzLBNq','44gM6iMV44ge','y29Kzq','z29Uzq','A2v5CW','ktOG5PYQ6ywn57EAia','BgvUz3rO','khnWyxDUzwqG','C3bHD25Lzf9HDa','Bwf0y2G','rufdq0vt','DxnLCL9WCM9TChq','D0rYCwW','ru5pru5u','ioAwH+MDOJ0','CMvKDwnL','44oE44o844k4','B2jQzwn0','AM9PBG','q2TNB1i','ios9K++8IsdIGjqG55UJ6kAw57AY44gR56M044gm6zAl44ge44gM44ge44kl','y3vYC29Yx3rZ','DMfSDwvZ','C2L6zq','y05iufi','Dw5ZDxbLCNzPC2vK','C2XPy2u','D3jPDgvgAwXL','CMvHzezPBgvtEw5J','5RoO5ywL6kAl6ycb44kkoIdMLOFPNAlJGPlNTytJGOhJGARJGyVJGApJGz8GBw9UC3rLCJ0','44oh44ox44oT44kK','ios7TU+8IoACGoAwSca','zw50CMLLCW','zxHPC3rZu3LUyW','Dw9TExO','mJGWmdG5mfjVDMTQua','l3vZCI9SB2nHBc9IAw4VDg11Ea','DhjPBq','DgvZDa','BwvZC2fNzq','iowVVUIXOEwKLJ0','CMvUyw1L','ktOG5PYQ6ywn57EAidaG5lU277Yi56I85yon5lIT44gUig1VBNn0zxiG44gV44gz44g544gMihn1CgvYDMLZB3jFC2vZC2LVBIdJGyZOQjJPJllJGzxJGOZJGABJGytJGOVVViK','zxzLBNrZlMXVzY4X','CMvUyw1Lu3LUyW','D0TJzfO','iokgKIdPGjRNN6xJGA/PGihJGONJGARJGyq','77Yj4Ocuia','y2fWDhvYzs1Wyw5L','C3vWzxj2AxnVCL9NB25L','CMfUzg9T','C29YDa','C3rYAw5N','ioACQUMfJEE3MJ0','wgv3u1K','vg11EfvUyxzHAwXHyMXLrxjYB3i','zK5iz04','mJe1nZeXnJHjCNbPDuS','AxrLBxm','t2L6rNu','8j+AQcdJGRVJG4pJGRFJG6FJG7pLRP/LNkJJGPlLIktLRPRJGAFJGy3JGB7JGzVJGPmGC2vZC2LVBJ0','44gx44gM44gp44gG44gv44ge','vuTXBgO','AKrAs1u','BwLU','ndK3otCWmLHLs3nOtW','CfHyru8','yNvZEsbZA2LWoIbZzxnZAw9Upq','C3vWChjLC3nLza','AgfZlxnLC3nPB24','ios4JEMbLd0','odi5mdiWwhbgy21w'];a0a=function(){return bK;};return a0a();}function Nt(){const aM=a0aF;let a=process.env.MONSTER_TMUX_BIN;if(a)return a;for(let c of['/opt/homebrew/bin/tmux',aM(0xfe)])try{if(a0aB['existsSync'](c))return c;}catch{}return aM(0x197);}var O=Nt(),$=class extends Error{constructor(a){const aN=a0aF;super(aN(0x196)+O+')。PATH\x20に\x20/opt/homebrew/bin\x20が無い\x20launchd\x20等から\x20起動されている可能性があります。MONSTER_TMUX_BIN\x20で明示指定できます。原因:\x20'+String(a)),this['name']=aN(0x111);}};function Rt(a){const aO=a0aF;let c=a?.[aO(0xdc)];return c===aO(0xe7)||c===aO(0xe4)||c===aO(0x16f);}var $t=/\x1b\[[0-9;?]*[A-Za-z]/g;function Lt(a){const aP=a0aF;return a[aP(0x189)]($t,'')[aP(0x189)](/\r/g,'');}async function L(a){const aQ=a0aF;try{return await I(O,[aQ(0x11f),'-t',a]),!0x0;}catch(c){if(Rt(c))throw new $(c);return!0x1;}}var Mt=/esc to interrupt/i;async function q(a){const aR=a0aF;let c=await Q(a,0x32);return c[aR(0xff)]()['length']===0x0?!0x0:Mt[aR(0x100)](c);}async function Q(a,c){const aS=a0aF;try{let {stdout:i}=await I(O,[aS(0x10a),'-t',a,'-p','-S','-'+c]);return Lt(i);}catch{if(aS(0x12e)!=='TAemU')return'';else{let o=[];for(let p of r){let r=a(p);r&&o['push'](r);}return o[aS(0xe0)]===0x0?null:''+o+o[aS(0xec)]('\u3001')+p;}}}function bt(a){const aT=a0aF;return Math[aT(0x11a)](0x64+Math[aT(0x17b)](a/0x4),0x5dc);}async function tt(a,c){const aU=a0aF;try{let i=c[aU(0x189)](/\n+$/,'');await I(O,['send-keys','-t',a,'-l',i]);let l=bt(i['length']);return await new Promise(p=>setTimeout(p,l)),await I(O,[aU(0x131),'-t',a,aU(0x171)]),await new Promise(p=>setTimeout(p,0xc8)),await I(O,[aU(0x131),'-t',a,aU(0x171)]),{'ok':!0x0,'bytes':Buffer[aU(0x16e)](i,aU(0x151))};}catch(o){return{'ok':!0x1,'bytes':0x0,'error':o?.[aU(0x12a)]||o?.[aU(0x101)]||'tmux\x20send-keys\x20failed'};}}var M=[a0aF(0x19f),a0aF(0x1a1)],Pt=a0aF(0x18f),jt=a0aF(0xd6);function Ft(a){const aV=a0aF;if(typeof a!=aV(0x10e))return null;let c=a[aV(0x134)]()[aV(0x189)](/[^0-9a-f]/g,'');return c[aV(0xe0)]===0x0?null:c['slice'](0x0,0xc);}function Dt(a){const aW=a0aF;return typeof a=='string'&&M[aW(0x190)](a);}function Ht(a){const aX=a0aF;if(typeof a!='string')return null;let c=Date[aX(0x163)](a);if(!Number[aX(0x187)](c))return null;let i=new Date(c),l=String(i[aX(0x17a)]())[aX(0x164)](0x2,'0'),p=String(i['getMinutes']())[aX(0x164)](0x2,'0');return l+':'+p;}function Bt(a){const aY=a0aF;let c=Ft(a[aY(0x18e)]),i=Ht(a['ts']);return!c||!i||!Dt(a['event'])?null:aY(0x199)+c+aY(0x13d)+a[aY(0xda)]+'('+i+')';}function et(a){const aZ=a0aF;let c=[];for(let i of a){let l=Bt(i);l&&c[aZ(0x13a)](l);}return c[aZ(0xe0)]===0x0?null:''+Pt+c['join']('\u3001')+jt;}var Ut=new RegExp(a0aF(0x192)),Vt=['\u627F\u8A8D','\u627F\u8AFE','\u4E86\u627F','\u8A31\u53EF','\u8A8D\u53EF','\u8A31\u8AFE','\u88C1\u5B9A','\u6C7A\u88C1','GO','\u30B4\u30FC',a0aF(0xea),'\u30BF\u30B0',a0aF(0x14c),a0aF(0xf8),'\u672C\u756A','\u53EF','\u3066\u3088\u3044',a0aF(0xdb),'\u3066\u3044\u3044',a0aF(0x172),a0aF(0x160),a0aF(0x117),'\u554F\u984C\u306A\u3044',a0aF(0x14a),/\b(?:ok|okay|go|approve[ds]?|approval|authoriz(?:e|ed|ation)|merge[ds]?|tag|release|deploy|greenlight)\b/i];function N(a){const b0=a0aF;let c=[];for(let i of Vt){if(typeof i==b0(0x10e)){a[b0(0x190)](i)&&c[b0(0x13a)](i);continue;}let l=a[b0(0xe3)](i);l&&c[b0(0x13a)](l[0x0]);}return c;}function b(a){const b1=a0aF;return N(a)[b1(0xe0)]>0x0;}function nt(a){const b2=a0aF;return Ut[b2(0x100)](a)?b(a)?{'ok':!0x1,'reason':b2(0x18c)+N(a)[b2(0xec)](b2(0x15d))}:{'ok':!0x0}:{'ok':!0x1,'reason':b2(0x16c)};}var Ct=[a0aF(0xe5),a0aF(0x13c)],Yt=a=>typeof a==a0aF(0xeb)&&a!==null&&!Array[a0aF(0x14d)](a);function zt(c){const b3=a0aF;let i=c[b3(0xff)]();if(i[b3(0xe0)]===0x0)return null;let l;try{l=JSON[b3(0x163)](i);}catch{return null;}if(!Yt(l))return null;let {ts:p,monster_id:u,event:A}=l;if(typeof p!='string'||typeof u!=b3(0x10e)||u[b3(0xe0)]===0x0||typeof A!=b3(0x10e))return null;let E=Date[b3(0x163)](p);return Number[b3(0x187)](E)?{'ts':p,'tsMs':E,'monsterId':u,'event':A}:null;}function st(a){let c=[];for(let i of a){let l=zt(i);l&&c['push'](l);}return c;}function Gt(a){const b4=a0aF;return M[b4(0x190)](a);}function Jt(a){const b5=a0aF;return Ct[b5(0x190)](a);}function rt(l,E){const b6=a0aF;let U=new Map(),a0=new Map();for(let [a6,a7]of Object[b6(0xfa)](E['entries'])){if(b6(0x119)!==b6(0x1ad)){U[b6(0x1a7)](a6,a7[b6(0x15a)]);let a8=Date['parse'](a7[b6(0x135)]);Number[b6(0x187)](a8)&&a0[b6(0x1a7)](a6,a8);}else return a6['entries'](l)['map'](([aa,ab])=>{let {shortId:ac,supervisorSession:ad,status:af,unsupervised:ag,spawnedAt:ah}=a1(aa,ab);return{'shortId':ac,'supervisorSession':ad,'status':af,'unsupervised':ag,'spawnedAt':ah};});}let a1=new Set(),a2=new Map(),a3=new Map(),a4=null,a5=(aa,ab)=>{const b7=b6;let ac=aa[b7(0x162)]+'\x00'+ab;a3[b7(0x1a7)](ac,{'monsterId':aa[b7(0x162)],'reason':ab,'count':(a3['get'](ac)?.[b7(0x1a8)]??0x0)+0x1,'latestTs':aa['ts'],'latestEvent':aa[b7(0xda)]});};for(let aa of[...l][b6(0x10d)]((ab,ac)=>ab['tsMs']-ac[b6(0x18d)])){if(E[b6(0x195)]!==null&&aa[b6(0x18d)]<=E['cursorMs'])continue;if((a4===null||aa[b6(0x18d)]>a4)&&(a4=aa[b6(0x18d)]),Jt(aa[b6(0xda)])){U[b6(0x1ab)](aa['monsterId'])&&(U[b6(0x1a7)](aa[b6(0x162)],!0x1),a1[b6(0x175)](aa[b6(0x162)]));continue;}if(!Gt(aa['event']))continue;if(U[b6(0x1ab)](aa[b6(0x162)])){if(b6(0x198)===b6(0xe6))return o[b6(0x100)](ab)?r(s)?{'ok':!0x1,'reason':b6(0x18c)+l(u)[b6(0xec)](b6(0x15d))}:{'ok':!0x0}:{'ok':!0x1,'reason':b6(0x16c)};else{a5(aa,'awaiting_reaction');continue;}}let ab=a0['get'](aa[b6(0x162)]);if(ab!==void 0x0&&aa['tsMs']<=ab){a5(aa,b6(0x18a));continue;}a2[b6(0x1a7)](aa[b6(0x162)],aa);}return{'notify':[...a2[b6(0xf0)]()][b6(0x10d)]((ad,af)=>ad[b6(0x18d)]-af['tsMs']),'suppressed':[...a3[b6(0xf0)]()],'reacted':[...a1],'maxScannedMs':a4};}import*as a0aC from'node:fs/promises';import*as a0aD from'node:path';var Kt=0xea60,Be=Kt*0x3;function ot(a){const b8=a0aF;try{return process['kill'](a,0x0),!0x0;}catch(c){return c?.['code']===b8(0x16f);}}var Xt=0xc8,P=()=>({'version':0x1,'cursor_ts':null,'monsters':{}}),j=a=>typeof a==a0aF(0xeb)&&a!==null&&!Array[a0aF(0x14d)](a);function Wt(a){const b9=a0aF;if(!j(a))return{};let c={};for(let [i,l]of Object['entries'](a))j(l)&&typeof l[b9(0x135)]==b9(0x10e)&&(c[i]={'last_injected_event_ts':l[b9(0x135)],'awaiting_reaction':l['awaiting_reaction']===!0x0});return c;}function Zt(a){const ba=a0aF;let c;try{c=JSON[ba(0x163)](a);}catch{return P();}return j(c)?{'version':0x1,'cursor_ts':typeof c['cursor_ts']==ba(0x10e)?c[ba(0xef)]:null,'monsters':Wt(c[ba(0x13b)])}:P();}var F=new WeakMap();async function ft(){const bb=a0aF;try{return Zt(await a0aC['readFile'](v,bb(0x151)));}catch{return P();}}async function pt(){const bc=a0aF;let a=await ft();return F[bc(0x1a7)](a,structuredClone(a)),a;}var it=0x0;function qt(){const bd=a0aF;return it+=0x1,v+'.'+process[bd(0x19a)]+'-'+it+bd(0x143);}var at=0x2710,ct=0x3a98;function Qt(a){return new Promise(c=>setTimeout(c,a));}async function te(a){const be=a0aF;await a0aC[be(0x139)](a0aD['dirname'](v),{'recursive':!0x0});let c=Date['now']()+ct;for(;;){try{await a0aC['writeFile'](y,JSON['stringify']({'pid':process[be(0x19a)],'ts':Date[be(0x141)]()}),{'flag':'wx'});break;}catch(l){if(l?.[be(0xdc)]!=='EEXIST')throw l;}let i=!0x1;try{let o=JSON[be(0x163)](await a0aC[be(0x19b)](y,be(0x151)));i=typeof o?.[be(0x19a)]==be(0x159)&&(!ot(o['pid'])||Date[be(0x141)]()-Number(o['ts']??0x0)>at);}catch{try{if(be(0xfc)!==be(0x188)){let p=await a0aC[be(0x140)](y);i=Date[be(0x141)]()-p[be(0x152)]>at;}else return c();}catch{}}if(i){let u=y+'.stale.'+process[be(0x19a)];await a0aC['rename'](y,u)[be(0x17f)](()=>{}),await a0aC['rm'](u,{'force':!0x0})[be(0x17f)](()=>{});continue;}if(Date[be(0x141)]()>c)throw new Error(be(0x1ac)+y+'\x20を\x20'+ct+be(0x15f));await Qt(0x5+Math[be(0x10c)]()*0x14);}try{return await a();}finally{try{JSON[be(0x163)](await a0aC[be(0x19b)](y,be(0x151)))?.[be(0x19a)]===process[be(0x19a)]&&await a0aC['rm'](y,{'force':!0x0});}catch{}}}function ee(c,i,l){const bf=a0aF;let p={'version':0x1,'cursor_ts':c[bf(0xef)],'monsters':{...c[bf(0x13b)]}};i[bf(0xef)]!==l['cursor_ts']&&(p[bf(0xef)]=l['cursor_ts']);let A=new Set([...Object[bf(0xde)](i[bf(0x13b)]),...Object['keys'](l[bf(0x13b)])]);for(let E of A){if(bf(0xed)!==bf(0x107)){let U=i[bf(0x13b)][E],a0=l[bf(0x13b)][E];JSON['stringify'](U)!==JSON[bf(0x138)](a0)&&(a0===void 0x0?delete p['monsters'][E]:p[bf(0x13b)][E]=a0);}else return{'ts':new l()[bf(0x149)](),'monster_id':o,'event':p,'session':E,'meta':s};}return p;}async function lt(a,c){await te(async()=>{const bg=a0c;if('jTUoJ'===bg(0x115)){let {shortId:l,supervisorSession:u,status:A,unsupervised:E,spawnedAt:U}=i(l,n);return{'shortId':l,'supervisorSession':u,'status':A,'unsupervised':E,'spawnedAt':U};}else{let l=F[bg(0x1ab)](c??a),p=l?ee(await ft(),l,a):a,u=JSON[bg(0x138)](p,null,0x2)+'\x0a',A=qt();try{await a0aC[bg(0xf5)](A,u,bg(0x151)),await a0aC[bg(0x103)](A,v);}catch(E){throw await a0aC['rm'](A,{'force':!0x0})['catch'](()=>{}),E;}F[bg(0x1a7)](a,structuredClone(a));}});}function dt(a,c,i){const bh=a0aF;return{...a,'monsters':{...a[bh(0x13b)],[c]:{'last_injected_event_ts':i,'awaiting_reaction':!0x0}}};}function mt(a,c){const bi=a0aF;let i=a[bi(0x13b)][c];return!i||!i[bi(0x15a)]?a:{...a,'monsters':{...a[bi(0x13b)],[c]:{...i,'awaiting_reaction':!0x1}}};}function D(a,c){return{...a,'cursor_ts':c};}function ht(a){const bj=a0aF;let c=a['cursor_ts'],i=Object[bj(0xfa)](a[bj(0x13b)])['filter'](([,l])=>l[bj(0x15a)]||c===null?!0x0:l[bj(0x135)]>c);return i[bj(0x10d)]((l,p)=>l[0x1][bj(0x135)]<p[0x1]['last_injected_event_ts']?0x1:-0x1),{...a,'monsters':Object['fromEntries'](i[bj(0xf4)](0x0,Xt))};}function ne(c,i){const bk=a0aF;let l=new Map(),p=[];for(let u of c){let A=i[bk(0x125)](u[bk(0x162)]);if(!A[bk(0x165)]){if(bk(0x110)===bk(0x110)){p[bk(0x13a)](u);continue;}else{if(l(n))throw new u(p);return!0x1;}}let E=l[bk(0x1ab)](A['supervisorSession'])??{'session':A['supervisorSession'],'items':[]};E['items'][bk(0x13a)]({'event':u,'target':A}),l[bk(0x1a7)](A[bk(0x165)],E);}return{'groups':[...l['values']()],'unassigned':p};}function se(a,c){const bl=a0aF;if(b(a)){if(bl(0x11c)!=='pXXEO')return i[bl(0x1a3)]('🚨\x20セッション実在を判定できません\x20session='+o[bl(0x176)]+'\x20monster='+p+bl(0x156)+r(s)),bl(0x1b1);else{let o=N(a);return c('🚨\x20注入中止:\x20授権を意味する語を含む('+o[bl(0xec)](bl(0x15d))+bl(0x1a6)+JSON[bl(0x138)](a)),!0x1;}}let i=nt(a);return i['ok']?!0x0:(c(bl(0x158)+i[bl(0x161)]+bl(0x145)+JSON[bl(0x138)](a)),!0x1);}var St=a0aF(0x191),re=/未配線監査\((\d{4}-\d{2}-\d{2})\)/;function oe(a){const bm=a0aF;return a[bm(0x149)]()[bm(0xf4)](0x0,0xa);}function ie(a){const bn=a0aF;return a['filter'](c=>c[bn(0x185)]==='running'&&!c[bn(0x165)]&&!c[bn(0xf3)])['map'](c=>({'shortId':c['shortId'],'spawnedAt':c['spawnedAt']}));}function _t(a){const bo=a0aF;let c=null;for(let i of a){let l=i[bo(0xe3)](re);l&&(c=l[0x1]);}return c;}function ae(a,c){return a!==c;}function ce(a,c){const bp=a0aF;if(a[bp(0xe0)]===0x0)return St+'('+c+bp(0x104);let i=a['map'](l=>l[bp(0x18e)]+bp(0xe1)+l[bp(0x1b2)]+')')['join'](bp(0x15d));return bp(0x184)+St+'('+c+bp(0xdf)+a[bp(0xe0)]+bp(0x177)+i+bp(0x193);}function ue(a,c){const bq=a0aF;let i=oe(c);if(!ae(a['lastUnwiredAuditDay'](),i))return 0x0;let l=ie(a['readLedger']());return a['log'](ce(l,i)),l[bq(0xe0)];}function a0c(a,b){a=a-0xd4;const c=a0a();let d=c[a];if(a0c['nINkGj']===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['RgDGAK']=e,a0c['mESoor']={},a0c['nINkGj']=!![];}const f=c[0x0],g=a+f,h=a0c['mESoor'][g];return!h?(d=a0c['RgDGAK'](d),a0c['mESoor'][g]=d):d=h,d;}function fe(a,c){const br=a0aF;return br(0x178)+c['shortId']+br(0x13d)+a['event']+'('+a['ts']+')\x20—\x20supervisor_session\x20未記録のため注入先が無く、この停止は誰にも通知されない(spawn\x20時に\x20supervisorSession\x20を渡すこと)';}async function pe(c,i){const bs=a0aF;let l=c[bs(0x114)][bs(0x180)](a0=>a0[bs(0x129)][bs(0x18e)])[bs(0xec)](','),p;try{p=await i[bs(0x157)](c[bs(0x176)]);}catch(a0){return i[bs(0x1a3)](bs(0x116)+c['session']+bs(0x123)+l+bs(0x156)+String(a0)),'skipped';}if(!p){if(bs(0x166)!==bs(0x146)){for(let a1 of c[bs(0x114)])await i[bs(0x16a)](a1[bs(0xda)],a1[bs(0x129)]);return i[bs(0x1a3)](bs(0x17e)+c[bs(0x176)]+bs(0x170)+l+bs(0x108)),'gone';}else return i['includes'](i);}if(await i['sessionBusy'](c['session']))return i[bs(0x1a3)](bs(0x11d)+c[bs(0x176)]+'\x20が実行中\x20monster='+l+bs(0x173)),'busy';let A=c[bs(0x114)][bs(0x180)](a3=>({'shortId':a3[bs(0x129)]['shortId'],'event':a3['event'][bs(0xda)],'ts':a3[bs(0xda)]['ts']})),E=et(A);if(E===null)return i['log'](bs(0xf7)+l),bs(0x1b1);if(!se(E,i[bs(0x1a3)]))return bs(0x1b1);let U=await i[bs(0x18b)](c[bs(0x176)],E);return U['ok']?(i[bs(0x1a3)](bs(0x19d)+c[bs(0x176)]+bs(0x123)+l+bs(0xe8)+JSON[bs(0x138)](E)),bs(0x186)):(i[bs(0x1a3)]('注入失敗(次\x20tick\x20で再試行):\x20session='+c[bs(0x176)]+'\x20'+(U[bs(0x127)]??'')),'failed');}function le(a,c,i){const bu=a0aF;let l=c[bu(0xe0)]>0x0?c[c[bu(0xe0)]-0x1]['ts']:new Date()[bu(0x149)]();return i[bu(0x1a3)](bu(0xd8)+l+bu(0x142)),{'state':D(a,l),'initialized':!0x0,'injected':0x0,'skippedBusy':0x0,'gone':0x0,'unassigned':0x0,'unwired':0x0,'failed':0x0,'suppressed':0x0,'reacted':0x0,'blocked':0x0};}function de(a){const bv=a0aF;return a[bv(0x16d)]+a[bv(0xd4)]+a[bv(0xdd)]+a[bv(0xd7)]+a[bv(0x169)]+a['suppressed']+a[bv(0x124)]+a[bv(0xd5)];}function yt(a){const bw=a0aF;let c=a[bw(0xd7)]>0x0||a[bw(0x181)]>0x0;if(!a[bw(0x1a9)]&&de(a)===0x0&&!c)return null;let i='tick\x20完了:\x20注入='+a[bw(0x16d)]+bw(0x1a5)+a['skippedBusy']+'\x20supervisor_gone='+a[bw(0xdd)]+bw(0x102)+a['unassigned']+bw(0x120)+a[bw(0x169)]+'\x20抑止='+a[bw(0x11e)]+bw(0x12d)+a['reacted']+bw(0x126)+a[bw(0xd5)]+bw(0x10f)+a[bw(0x181)];return c?i+bw(0x136)+a['unassigned']+'\x20件\x20/\x20台帳='+a[bw(0x181)]+bw(0xee):i;}function me(a,c){const bx=a0aF;let i=a['reason']===bx(0x15a)?bx(0x174):bx(0x15e);return bx(0x16b)+c+bx(0x182)+a[bx(0x1a8)]+'\x20件(最新\x20'+a[bx(0x14f)]+'\x20'+a[bx(0x1a2)]+bx(0x109)+i;}async function gt(a0,a1){const by=a0aF;let a2=ue(a1,new Date()),a3=a1[by(0x153)]();if(a0[by(0xef)]===null)return{...le(a0,a3,a1),'unwired':a2};let a4=Date['parse'](a0[by(0xef)]),a5=rt(a3,{'cursorMs':Number[by(0x187)](a4)?a4:null,'entries':a0[by(0x13b)]}),a6=a0;for(let ac of a5[by(0x124)])a6=mt(a6,ac),a1[by(0x1a3)]('反応観測:\x20monster='+a1['readTarget'](ac)[by(0x18e)]+by(0x13e));let {groups:a7,unassigned:a8}=ne(a5['notify'],a1),a9={'injected':0x0,'skippedBusy':0x0,'gone':0x0,'failed':0x0,'blocked':0x0};for(let ad of a7){let af=await pe(ad,a1);if(af===by(0x186)){a9[by(0x16d)]+=ad[by(0x114)][by(0xe0)];for(let ag of ad[by(0x114)])a6=dt(a6,ag['event'][by(0x162)],ag[by(0xda)]['ts']);continue;}af===by(0x133)?a9[by(0xd4)]+=ad[by(0x114)][by(0xe0)]:af===by(0xdd)?a9[by(0xdd)]+=ad[by(0x114)]['length']:af===by(0x169)?a9[by(0x169)]+=ad[by(0x114)][by(0xe0)]:af===by(0x1b1)&&(a9[by(0xd5)]+=ad['items'][by(0xe0)]);}let aa=a9[by(0xd4)]>0x0||a9[by(0x169)]>0x0;if(!aa&&a5[by(0x150)]!==null){for(let ah of a5['suppressed'])a1[by(0x1a3)](me(ah,a1[by(0x125)](ah[by(0x162)])['shortId']));for(let ai of a8)a1[by(0x1a3)](fe(ai,a1[by(0x125)](ai[by(0x162)])));a6=D(a6,new Date(a5[by(0x150)])[by(0x149)]());}let ab=a5[by(0x11e)][by(0xe9)]((aj,ak)=>aj+ak['count'],0x0);return{'state':ht(a6),'initialized':!0x1,'injected':a9[by(0x16d)],'skippedBusy':a9['skippedBusy'],'gone':a9[by(0xdd)],'unassigned':a8[by(0xe0)],'unwired':a2,'failed':a9['failed'],'suppressed':aa?0x0:ab,'reacted':a5[by(0x124)][by(0xe0)],'blocked':a9[by(0xd5)]};}var he=0x200*0x400;function wt(a){const bz=a0aF;let c;try{if('QwCzQ'!==bz(0x12b))return{...l,'monsters':{...n[bz(0x13b)],[o]:{'last_injected_event_ts':p,'awaiting_reaction':!0x0}}};else c=a0aw[bz(0x183)](a,'r');}catch{return bz(0x194)===bz(0x118)?e!==i:[];}try{let p=a0aw[bz(0x154)](c)[bz(0xf1)],u=Math[bz(0x11a)](p,he),A=Buffer[bz(0x15b)](u);a0aw[bz(0x167)](c,A,0x0,u,p-u);let E=A[bz(0x130)](bz(0x151))['split']('\x0a');return u<p?E[bz(0xf4)](0x1):E;}catch{return'PyahP'!==bz(0xf2)?[]:[];}finally{a0aw[bz(0x1ae)](c);}}function Se(){const bA=a0aF;return[_,x]['flatMap'](a=>st(wt(a)))[bA(0x10d)]((a,c)=>a['tsMs']-c['tsMs']);}function H(){const bB=a0aF;try{return JSON[bB(0x163)](a0aw[bB(0xf6)](C,'utf8'))['monsters']??{};}catch{return{};}}function Tt(a,c){const bC=a0aF;return{'shortId':typeof c?.[bC(0x155)]==bC(0x10e)&&c[bC(0x155)][bC(0xe0)]>0x0?c['short_id']:a[bC(0xf4)](0x0,0x8),'supervisorSession':typeof c?.[bC(0x137)]==bC(0x10e)&&c[bC(0x137)][bC(0xe0)]>0x0?c['supervisor_session']:null,'tmuxSession':typeof c?.[bC(0x128)]=='string'?c[bC(0x128)]:'','status':typeof c?.['status']==bC(0x10e)?c[bC(0x185)]:'','unsupervised':c?.[bC(0xf3)]===!0x0,'spawnedAt':typeof c?.[bC(0xe2)]==bC(0x10e)?c['spawned_at']:''};}function _e(a=H()){return c=>{let {shortId:i,supervisorSession:l,tmuxSession:p}=Tt(c,a[c]);return{'shortId':i,'supervisorSession':l,'tmuxSession':p};};}function ye(a=H()){const bD=a0aF;return Object['entries'](a)[bD(0x180)](([c,i])=>{const bE=bD;if(bE(0x112)===bE(0x112)){let {shortId:l,supervisorSession:p,status:A,unsupervised:E,spawnedAt:U}=Tt(c,i);return{'shortId':l,'supervisorSession':p,'status':A,'unsupervised':E,'spawnedAt':U};}else{let a1=n['reason']===bE(0x15a)?bE(0x174):bE(0x15e);return'抑止:\x20monster='+o+bE(0x182)+p[bE(0x1a8)]+bE(0xf9)+r[bE(0x14f)]+'\x20'+s[bE(0x1a2)]+bE(0x109)+a1;}});}function ge(){return _t(wt(g));}async function we(a,c){const bF=a0aF;await X(W(a[bF(0x162)],c['tmuxSession'],bF(0x10b),{'supervisor_session':c[bF(0x165)],'trigger_event':a[bF(0xda)],'trigger_ts':a['ts']}));}function Et(a){let c=H();return{'readEvents':Se,'readTarget':_e(c),'readLedger':()=>ye(c),'lastUnwiredAuditDay':ge,'sessionExists':L,'sessionBusy':q,'inject':async(i,l)=>{const bG=a0c;if(bG(0x14b)!==bG(0x168)){let p=await tt(i,l);return{'ok':p['ok'],'error':p[bG(0x127)]};}else{let {shortId:u,supervisorSession:A,tmuxSession:E}=l(n,o[p]);return{'shortId':u,'supervisorSession':A,'tmuxSession':E};}},'recordSupervisorGone':we,'log':a};}function B(a){const bH=a0aF;process['stdout'][bH(0x1a0)](new Date()[bH(0x149)]()+'\x20'+a+'\x0a'),K(a);}async function Te(){const bI=a0aF;let a=await pt(),c=await gt(a,Et(B));await lt(c[bI(0x13f)],a);let i=yt(c);i!==null&&B(i);}Te()['catch'](a=>{const bJ=a0aF;B(bJ(0x19c)+(a instanceof Error?a['message']:String(a))),process['exit'](0x1);});
|
package/manifest.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mcpId": "monster-orchestrator",
|
|
3
3
|
"name": "Monster Orchestrator",
|
|
4
|
-
"description": "Claude Code CLI を独立サブプロセス(tmux session)として起動・送信・監視・停止する。v2.0.0 から ready signal polling / spawn_timeout / events.log NDJSON + ローテーション / Claude Code 5種 hook 注入 / 60秒ごとの session.log スナップショットに対応。v2.1 から spawn / stop / list は BlueLamp 認証(X-CLI-Token)必須で、皆伝(tenant_rank>=4)以上が並列 5 セッションまで利用可能。v2.3 から agent 別の events 確認カーソル(state.json.cursors)と mark_events_seen tool を追加し、未確認 awaiting_input / stopped を能動把握できる(推奨運用: get_monster_events に agent_id を渡し、取得後 max_event_ts を mark_events_seen で記録)。
|
|
4
|
+
"description": "Claude Code CLI を独立サブプロセス(tmux session)として起動・送信・監視・停止する。v2.0.0 から ready signal polling / spawn_timeout / events.log NDJSON + ローテーション / Claude Code 5種 hook 注入 / 60秒ごとの session.log スナップショットに対応。v2.1 から spawn / stop / list は BlueLamp 認証(X-CLI-Token)必須で、皆伝(tenant_rank>=4)以上が並列 5 セッションまで利用可能。v2.3 から agent 別の events 確認カーソル(state.json.cursors)と mark_events_seen tool を追加し、未確認 awaiting_input / stopped を能動把握できる(推奨運用: get_monster_events に agent_id を渡し、取得後 max_event_ts を mark_events_seen で記録)。v2.4.0 から backend を mikoto-company-api に完全移管(Phase 53C)。受講生 PC は BLUELAMP_CLI_TOKEN → bluelampportal /api/auth/exchange → RS256 JWT → mikoto-company-api /api/monster/* の 2 段構えで認証。主エージェントが複数 monster を並列制御する汎用オーケストレータ。",
|
|
5
5
|
"category": "automation",
|
|
6
6
|
"tier": 2,
|
|
7
|
-
"tenantSlug": "
|
|
7
|
+
"tenantSlug": "yamatovision",
|
|
8
8
|
"allowedMinRank": 4,
|
|
9
9
|
"hosting": {
|
|
10
10
|
"type": "local"
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"needsNpmInstall": true,
|
|
15
15
|
"requiredEnvVars": [],
|
|
16
16
|
"optionalEnvVars": [
|
|
17
|
-
"
|
|
17
|
+
"BLUELAMP_PORTAL_API_BASE_URL",
|
|
18
18
|
"MIKOTO_API_BASE_URL",
|
|
19
19
|
"MONSTER_MAX_CONCURRENT",
|
|
20
20
|
"MONSTER_DEFAULT_TIMEOUT_MIN",
|
|
@@ -23,14 +23,14 @@
|
|
|
23
23
|
],
|
|
24
24
|
"externalApi": {
|
|
25
25
|
"enabled": true,
|
|
26
|
-
"baseUrl": "https://
|
|
27
|
-
"audience": "https://
|
|
26
|
+
"baseUrl": "https://mikoto-company-api-235426778039.asia-northeast1.run.app/api",
|
|
27
|
+
"audience": "https://mikoto-company-api-235426778039.asia-northeast1.run.app",
|
|
28
28
|
"scopes": [
|
|
29
29
|
"monster:read",
|
|
30
30
|
"monster:write"
|
|
31
31
|
],
|
|
32
32
|
"tokenLifetime": 600,
|
|
33
|
-
"description": "mikoto
|
|
33
|
+
"description": "mikoto 社の Monster Session API(Phase 53C で完全移管)"
|
|
34
34
|
},
|
|
35
35
|
"tags": [
|
|
36
36
|
"orchestrator",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"tools": [
|
|
44
44
|
{
|
|
45
45
|
"name": "spawn_monster",
|
|
46
|
-
"description": "新しい monster(Claude Code CLI tmux session)を起動し初回 task を送信する。ready signal を 45 秒以内に検出できなければ spawn_timeout 応答を返す。BlueLamp backend の authorize-spawn で皆伝(tenant_rank>=4)以上 / 並列 5 までを enforce。なお `workdir` 引数は monster の cwd ではなく `--add-dir` で読み書き許可される追加 path。cwd は monster home(~/.claude/monsters/{id}/)に固定され、hook
|
|
46
|
+
"description": "新しい monster(Claude Code CLI tmux session)を起動し初回 task を送信する。ready signal を 45 秒以内に検出できなければ spawn_timeout 応答を返す。BlueLamp backend の authorize-spawn で皆伝(tenant_rank>=4)以上 / 並列 5 までを enforce。なお `workdir` 引数は monster の cwd ではなく `--add-dir` で読み書き許可される追加 path。cwd は monster home(~/.claude/monsters/{id}/)に固定され、hook 設定の解決のためこの設計は意図的。`launcher` 引数(任意)でこの呼び出しだけ起動子を差し替えられる(許可形式は `claude` / `bluelampNN`(NN=1〜999・先頭ゼロなし)のみ・形式外や未導入の値は spawn を拒否しフォールバックしない・解決順序: launcher 引数 > MONSTER_CLAUDE_BIN > `claude`)。例: `bluelamp51`。番号とロールの対応は `list_tenant_agents` の「種別: オーケストレーター (bluelampNN)」欄が正本。ここに対応表を書かない(実装更新で腐るため)。"
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
"name": "list_monsters",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "monster-orchestrator",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist-obf/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^22.10.2",
|
|
28
|
-
"esbuild": "^0.28.
|
|
28
|
+
"esbuild": "^0.28.1",
|
|
29
29
|
"javascript-obfuscator": "^5.4.1",
|
|
30
30
|
"typescript": "^5.7.2",
|
|
31
31
|
"vitest": "^4.1.5"
|