monster-orchestrator 3.1.0 → 3.2.0

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