@funny-booth/agent-core 0.1.50 → 0.1.52

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 @@
1
+ const _0x1eac32=_0x5cd8;(function(_0x99fb24,_0x5ccf92){const _0x46cb70=_0x5cd8,_0x17c9da=_0x99fb24();while(!![]){try{const _0x56692d=parseInt(_0x46cb70(0x123))/0x1+parseInt(_0x46cb70(0xf6))/0x2+-parseInt(_0x46cb70(0xfc))/0x3*(parseInt(_0x46cb70(0x102))/0x4)+-parseInt(_0x46cb70(0x111))/0x5+-parseInt(_0x46cb70(0xf0))/0x6+-parseInt(_0x46cb70(0x11d))/0x7+parseInt(_0x46cb70(0xf3))/0x8;if(_0x56692d===_0x5ccf92)break;else _0x17c9da['push'](_0x17c9da['shift']());}catch(_0x5d7d78){_0x17c9da['push'](_0x17c9da['shift']());}}}(_0x2bd1,0xb6c09));import{TOOL_LABELS,TOOL_VERBS,TOOL_FALLBACK,GREETINGS,FACES}from'./words.js';export const BOLT=_0x1eac32(0x117);export const FLASH=['#FFFFFF',_0x1eac32(0x11f),_0x1eac32(0x10d),'#5A4A14',_0x1eac32(0x10d),_0x1eac32(0x117)];export const DONE_MS=0x1388;export const TIP_AFTER_MS=0x2710;export const TOAST_AFTER_MS=0x7530;const BATTERY=0x5,TIRED_BELOW=0x14;function _0x5cd8(_0x371fe5,_0x19d6e5){_0x371fe5=_0x371fe5-0xef;const _0x2bd13a=_0x2bd1();let _0x5cd89e=_0x2bd13a[_0x371fe5];if(_0x5cd8['RyDpFV']===undefined){var _0x49be73=function(_0x1afe15){const _0x4dfdb0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x12dd25='',_0x5c27cb='';for(let _0x224bd5=0x0,_0x467d53,_0x231b27,_0x1e57de=0x0;_0x231b27=_0x1afe15['charAt'](_0x1e57de++);~_0x231b27&&(_0x467d53=_0x224bd5%0x4?_0x467d53*0x40+_0x231b27:_0x231b27,_0x224bd5++%0x4)?_0x12dd25+=String['fromCharCode'](0xff&_0x467d53>>(-0x2*_0x224bd5&0x6)):0x0){_0x231b27=_0x4dfdb0['indexOf'](_0x231b27);}for(let _0x4738ac=0x0,_0x119460=_0x12dd25['length'];_0x4738ac<_0x119460;_0x4738ac++){_0x5c27cb+='%'+('00'+_0x12dd25['charCodeAt'](_0x4738ac)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5c27cb);};_0x5cd8['omvVoJ']=_0x49be73,_0x5cd8['IHQOmP']={},_0x5cd8['RyDpFV']=!![];}const _0x3b8862=_0x2bd13a[0x0],_0x85022d=_0x371fe5+_0x3b8862,_0x4618de=_0x5cd8['IHQOmP'][_0x85022d];return!_0x4618de?(_0x5cd89e=_0x5cd8['omvVoJ'](_0x5cd89e),_0x5cd8['IHQOmP'][_0x85022d]=_0x5cd89e):_0x5cd89e=_0x4618de,_0x5cd89e;}export function cells(_0x1f1e58){const _0x157355=_0x1eac32;let _0x231a08=0x0;for(const _0x313eff of _0x1f1e58)_0x231a08+=/[ᄀ-ᅟ⺀-꓏가-힣豈-﫿︰-﹏＀-⦆¢-₩]/[_0x157355(0x118)](_0x313eff)?0x2:0x1;return _0x231a08;}export function greetingAt(_0x5f5130){let _0x5593dc=GREETINGS[0x0][0x1];for(const [_0x19bf36,_0x136d4b]of GREETINGS)if(_0x5f5130>=_0x19bf36)_0x5593dc=_0x136d4b;return _0x5593dc;}export function toolLabel(_0x51ead7){const _0x589973=_0x1eac32,_0x3c9344={'oQsUN':function(_0x362b78,_0x398f89){return _0x362b78(_0x398f89);}},_0x3d719f=_0x3c9344[_0x589973(0x114)](String,_0x51ead7)['split']('__')[_0x589973(0x10e)]();if(TOOL_LABELS[_0x51ead7])return TOOL_LABELS[_0x51ead7];if(TOOL_LABELS[_0x3d719f])return TOOL_LABELS[_0x3d719f];if(String(_0x51ead7)['startsWith']('mcp__')){for(const [_0x444f76,_0x1ad748]of TOOL_VERBS)if(_0x444f76['test'](_0x3d719f))return _0x1ad748;}return TOOL_FALLBACK;}export function toolDetail(_0x284ffb){const _0x5e8c13=_0x1eac32,_0x5e63f6={'zqgsO':function(_0x57e555,_0x1bde3c){return _0x57e555===_0x1bde3c;},'Mcqul':_0x5e8c13(0xfb),'gZnvf':function(_0x5cfda0,_0x2fdb1f){return _0x5cfda0(_0x2fdb1f);},'RCKEs':function(_0x2cbb9d,_0x426377){return _0x2cbb9d==_0x426377;},'BSjIR':function(_0x26c592,_0x51c4bf){return _0x26c592>_0x51c4bf;},'QVAkb':function(_0x33498e,_0x5c4add){return _0x33498e+_0x5c4add;}},_0x5ac873=_0x284ffb&&_0x5e63f6['zqgsO'](typeof _0x284ffb,_0x5e63f6[_0x5e8c13(0xff)])?_0x284ffb:{},_0x435161=_0x4292b2=>String(_0x4292b2)[_0x5e8c13(0x101)](/[\\/]/)[_0x5e8c13(0x10e)](),_0x38597f=_0x5ac873[_0x5e8c13(0x109)]??_0x5ac873[_0x5e8c13(0xfa)]??(_0x5ac873[_0x5e8c13(0x120)]?_0x5e63f6['gZnvf'](_0x435161,_0x5ac873[_0x5e8c13(0x120)]):undefined)??(_0x5ac873[_0x5e8c13(0x11e)]?_0x435161(_0x5ac873[_0x5e8c13(0x11e)]):undefined)??_0x5ac873[_0x5e8c13(0xf8)]??_0x5ac873[_0x5e8c13(0x11a)]??_0x5ac873[_0x5e8c13(0x11c)]??(_0x5ac873[_0x5e8c13(0x119)]?_0x5e63f6[_0x5e8c13(0x104)](String,_0x5ac873[_0x5e8c13(0x119)])[_0x5e8c13(0x121)](/^@/,''):undefined)??_0x5ac873[_0x5e8c13(0x112)];if(_0x5e63f6['RCKEs'](_0x38597f,null))return'';const _0x318c7d=String(_0x38597f)[_0x5e8c13(0x121)](/\s+/g,'\x20')['trim']();return _0x5e63f6[_0x5e8c13(0xfd)]([..._0x318c7d]['length'],0x3c)?_0x5e63f6[_0x5e8c13(0xf4)]([..._0x318c7d][_0x5e8c13(0x108)](0x0,0x3b)['join'](''),'…'):_0x318c7d;}export function groupSummary(_0x3ba9e8){const _0x3b3e3c=_0x1eac32,_0x22bc6f={'uLIwH':function(_0x3103f8,_0x2bd4c7){return _0x3103f8(_0x2bd4c7);}},_0x38726d=new Map();for(const _0x39151f of _0x3ba9e8){const _0x45058d=_0x22bc6f[_0x3b3e3c(0xf5)](toolLabel,_0x39151f[_0x3b3e3c(0x105)]);_0x38726d['set'](_0x45058d,(_0x38726d[_0x3b3e3c(0x10b)](_0x45058d)??0x0)+0x1);}return[..._0x38726d][_0x3b3e3c(0xf1)](([_0x5ed891,_0x448d4b])=>_0x5ed891+'\x20'+_0x448d4b+'件')['join']('・');}export function duration(_0x2a509a){const _0x3a4d74=_0x1eac32,_0x53033e={'GEHfM':function(_0xeaf2c8,_0x2e2022){return _0xeaf2c8%_0x2e2022;}},_0x16f1cd=Math['round'](_0x2a509a/0x3e8);return _0x16f1cd<0x3c?_0x16f1cd+'秒':Math[_0x3a4d74(0xf2)](_0x16f1cd/0x3c)+'分'+_0x53033e[_0x3a4d74(0x10a)](_0x16f1cd,0x3c)+'秒';}export function faceOf(_0x323331,_0x59a957,_0x362723,_0x26371e){const _0x8cac87=_0x1eac32,_0x2e2754={'eKfrs':function(_0x4dd5c5,_0x522acd){return _0x4dd5c5===_0x522acd;},'ddvEM':function(_0x255f95,_0x3b3405){return _0x255f95>=_0x3b3405;},'xBUGW':_0x8cac87(0xfe),'wAasM':function(_0x5703d7,_0x474253){return _0x5703d7===_0x474253;},'IbCLz':function(_0x58262d,_0x20e1a9){return _0x58262d!=_0x20e1a9;},'vXgTg':function(_0x19a668,_0x454842){return _0x19a668<_0x454842;}},_0x43de2d=_0x2e2754[_0x8cac87(0x122)](_0x323331,_0x8cac87(0x103))&&_0x2e2754[_0x8cac87(0xf7)](_0x26371e,_0x59a957)?_0x2e2754['xBUGW']:_0x323331;if(_0x2e2754['wAasM'](_0x43de2d,_0x2e2754[_0x8cac87(0x116)])&&_0x2e2754[_0x8cac87(0x11b)](_0x362723,null)&&_0x2e2754[_0x8cac87(0x125)](_0x362723,TIRED_BELOW))return FACES[_0x8cac87(0xf9)];return FACES[_0x43de2d];}function _0x2bd1(){const _0x413049=['Cg9W','qvLOsuS','ic8G','ntCZodG3nvbMAK1uBq','BMfTzq','ioAUI+ocIIa','B1fZvu4','Dgv4Da','Eejvr1C','i0y1qZu0mG','DgvZDa','A2v5D29Yza','CxvLCNK','swjdthO','DxjS','ndGXmta0nhnNrwn6Eq','BM90zwjVB2TFCgf0Aa','iZvbneeXna','zMLSzv9WyxrO','CMvWBgfJzq','zuTMCNm','nJCYoteXzxv4suvR','t1PtrhG','DLHNvgC','r29WAuy','nZeXnZqYmKDMvwXvqG','BwfW','zMXVB3i','mJG1otuYmdbdt1HwyLa','uvzbA2i','DuXjD0G','mtiWmdK4mLPAyMTquq','zgr2ru0','Cgf0DgvYBG','DgLYzwq','y29TBwfUza','B2jQzwn0','nde3tu5krwHT','qLnQsvi','AwrSzq','twnXDwW','ELDLsw8','C3bSAxq','mZeWmJb3zMnmswS','zg9Uzq','z1PUDMy','Dg9VBa','CM91BMq','Bu14C0y','C2XPy2u','zgvZy3jPChrPB24','r0vizK0','z2v0','y2Lxufy','i0zgrKzgrG'];_0x2bd1=function(){return _0x413049;};return _0x2bd1();}export function bandParts({label:_0x4f81c3,agent:_0x70e57f,folder:_0x330adb,left:_0x132917,face:_0x3a0e6e},_0x5ef3a3){const _0x1afdb6=_0x1eac32,_0x49d709={'OZSDx':function(_0x55fae1,_0x3724ba){return _0x55fae1==_0x3724ba;},'ciWPV':function(_0x280b14,_0x4a3fd6){return _0x280b14/_0x4a3fd6;},'zWeIo':function(_0x5534a4,_0x133a54){return _0x5534a4-_0x133a54;},'GopiF':function(_0xd7bab,_0x397e16){return _0xd7bab+_0x397e16;},'mMxsF':function(_0x170b57,_0x4d26cf){return _0x170b57(_0x4d26cf);},'AYhIK':function(_0x47569f,_0x1f490c){return _0x47569f(_0x1f490c);},'uezCO':function(_0x220e92,_0x45cf11){return _0x220e92>=_0x45cf11;},'QFGzt':function(_0x4f6ad8,_0x471a15){return _0x4f6ad8(_0x471a15);}},_0x526e8b=_0x70e57f?_0x4f81c3+_0x1afdb6(0x110)+_0x70e57f:_0x4f81c3,_0x29f581=_0x330adb?'\x20['+_0x330adb+']':'',_0x41dd7f=_0x49d709[_0x1afdb6(0x124)](_0x132917,null)?0x0:Math[_0x1afdb6(0x106)](_0x132917/_0x49d709[_0x1afdb6(0x10c)](0x64,BATTERY)),_0x2f7206=_0x132917==null?null:{'filled':_0x41dd7f,'empty':_0x49d709[_0x1afdb6(0x100)](BATTERY,_0x41dd7f),'text':_0x1afdb6(0x113)+_0x132917+'%','low':_0x132917<=0x1e},_0x168018=_0x2f7206?_0x49d709[_0x1afdb6(0xef)](BATTERY,cells(_0x2f7206[_0x1afdb6(0x115)]))+0x4:0x0;let _0x552d65=_0x5ef3a3-0x8-cells('ϟ\x20'+_0x526e8b);const _0x219147=!!_0x29f581&&_0x552d65>=_0x49d709[_0x1afdb6(0x107)](cells,_0x29f581);if(_0x219147)_0x552d65-=_0x49d709[_0x1afdb6(0x10f)](cells,_0x29f581);const _0x40a0f6=!!_0x2f7206&&_0x49d709['uezCO'](_0x552d65,_0x168018);if(_0x40a0f6)_0x552d65-=_0x168018;const _0xe121e8=_0x40a0f6&&_0x552d65>=_0x49d709[_0x1afdb6(0xef)](_0x49d709['QFGzt'](cells,_0x3a0e6e),0x2);return{'folder':_0x219147?_0x29f581:'','battery':_0x40a0f6?_0x2f7206:null,'face':_0xe121e8?_0x3a0e6e:''};}
@@ -0,0 +1 @@
1
+ (function(_0x262dec,_0x167448){const _0x855b28=_0x2a04,_0x2081e9=_0x262dec();while(!![]){try{const _0x344842=parseInt(_0x855b28(0x1e0))/0x1*(parseInt(_0x855b28(0x1c2))/0x2)+parseInt(_0x855b28(0x1cd))/0x3*(parseInt(_0x855b28(0x1e1))/0x4)+-parseInt(_0x855b28(0x1ce))/0x5*(parseInt(_0x855b28(0x1dc))/0x6)+parseInt(_0x855b28(0x1c4))/0x7*(parseInt(_0x855b28(0x1cc))/0x8)+parseInt(_0x855b28(0x1eb))/0x9*(-parseInt(_0x855b28(0x1c7))/0xa)+-parseInt(_0x855b28(0x1cf))/0xb*(parseInt(_0x855b28(0x1ed))/0xc)+-parseInt(_0x855b28(0x1e6))/0xd*(-parseInt(_0x855b28(0x1c9))/0xe);if(_0x344842===_0x167448)break;else _0x2081e9['push'](_0x2081e9['shift']());}catch(_0x5143cc){_0x2081e9['push'](_0x2081e9['shift']());}}}(_0x44c0,0xeb7ce));export const PRE_MOD=0xfff1;export function preBase(_0x296ebf){const _0x151bbb=_0x2a04,_0x2ff6f0={'FDDeD':function(_0x476c45,_0x72bcb2){return _0x476c45+_0x72bcb2;},'OPUaC':function(_0x5e8277,_0x18f727){return _0x5e8277%_0x18f727;},'kAJhw':function(_0x491a7d,_0x37cff5,_0x3ab8b0){return _0x491a7d(_0x37cff5,_0x3ab8b0);}};return _0x2ff6f0['FDDeD'](0x100,_0x2ff6f0[_0x151bbb(0x1c1)](_0x2ff6f0[_0x151bbb(0x1ca)](parseInt,_0x296ebf['slice'](0x0,0x8),0x10),PRE_MOD-0x100));}export function newKey(_0x13293a){const _0x5dd3af=_0x2a04,_0x2f41a8={'KflwG':function(_0x5cbc40,_0x4b5fa7){return _0x5cbc40(_0x4b5fa7);}};return[..._0x2f41a8[_0x5dd3af(0x1de)](_0x13293a,new Uint8Array(0x20))][_0x5dd3af(0x1c6)](_0x54181a=>_0x54181a['toString'](0x10)[_0x5dd3af(0x1df)](0x2,'0'))[_0x5dd3af(0x1e4)]('');}export function buildTable(_0xbaa568){const _0x3d0190=_0x2a04,_0x1c1254=new Map();for(const _0x24b429 of _0xbaa568){if(!_0x1c1254[_0x3d0190(0x1d9)](_0x24b429['len']))_0x1c1254[_0x3d0190(0x1e7)](_0x24b429[_0x3d0190(0x1ef)],new Map());const _0x2207e5=_0x1c1254['get'](_0x24b429[_0x3d0190(0x1ef)]);if(!_0x2207e5[_0x3d0190(0x1d9)](_0x24b429['pre']))_0x2207e5[_0x3d0190(0x1e7)](_0x24b429['pre'],[]);_0x2207e5[_0x3d0190(0x1ec)](_0x24b429['pre'])[_0x3d0190(0x1db)](_0x24b429);}return _0x1c1254;}function _0x44c0(){const _0x55a210=['zw5JB2rL','BwfW','mtqYotCZmhr5BMnyBq','C0n6uM0','ndG0odjMD0nYuKW','A0fkAhC','ufvsrgK','mJy0vuHeBu5U','mZLis1biA2e','nty1zuLZrMDH','mtiYnJK3m09byLzzDW','C3rHCNq','EhfpBha','y2HHCKnVzgvbDa','C2XPy2u','tfbPCK8','ruDwBLC','zMLUza','AxnbCNjHEq','C29Tzq','AgfZ','BfHIreO','ChvZAa','otqZmZHirgTkB0e','BgvUz3rO','s2zSD0C','CgfKu3rHCNq','mwnKBvDyzG','nda2nZa4v2fhEKPi','4PEp4PEp4PEp4PEp77Yi','BMfTzq','AM9PBG','vNL2rwG','nJa3muPkrhDNyq','C2v0','C29YDa','B2jQzwn0','zw5K','ndvPwujqu08','z2v0','mty4uLHPzK5m','vxvnCKu','BgvU','C3rYAw5N','t1bvyum','mJGWodu2mNHMt0XLEG','zw50CMLLCW','mtqZmdu5AefruMrV'];_0x44c0=function(){return _0x55a210;};return _0x44c0();}function _0x2a04(_0x18377a,_0x31edc7){_0x18377a=_0x18377a-0x1c1;const _0x44c0e6=_0x44c0();let _0x2a0499=_0x44c0e6[_0x18377a];if(_0x2a04['OHXibb']===undefined){var _0x11145a=function(_0x99f35f){const _0x6d5c68='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3a745d='',_0x3df287='';for(let _0x51ae71=0x0,_0x42981a,_0x3e2cb1,_0x336753=0x0;_0x3e2cb1=_0x99f35f['charAt'](_0x336753++);~_0x3e2cb1&&(_0x42981a=_0x51ae71%0x4?_0x42981a*0x40+_0x3e2cb1:_0x3e2cb1,_0x51ae71++%0x4)?_0x3a745d+=String['fromCharCode'](0xff&_0x42981a>>(-0x2*_0x51ae71&0x6)):0x0){_0x3e2cb1=_0x6d5c68['indexOf'](_0x3e2cb1);}for(let _0x4edbc1=0x0,_0x196dca=_0x3a745d['length'];_0x4edbc1<_0x196dca;_0x4edbc1++){_0x3df287+='%'+('00'+_0x3a745d['charCodeAt'](_0x4edbc1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3df287);};_0x2a04['GyvANl']=_0x11145a,_0x2a04['RTDRId']={},_0x2a04['OHXibb']=!![];}const _0xe5d85b=_0x44c0e6[0x0],_0x2ef4e7=_0x18377a+_0xe5d85b,_0x34ea05=_0x2a04['RTDRId'][_0x2ef4e7];return!_0x34ea05?(_0x2a0499=_0x2a04['GyvANl'](_0x2a0499),_0x2a04['RTDRId'][_0x2ef4e7]=_0x2a0499):_0x2a0499=_0x34ea05,_0x2a0499;}async function sha256Hex(_0xe7613e,_0x36d707){const _0x4ce426=_0x2a04,_0x3d3bd6=await _0xe7613e(new TextEncoder()[_0x4ce426(0x1c5)](_0x36d707));return[...new Uint8Array(_0x3d3bd6)][_0x4ce426(0x1c6)](_0xd33c1a=>_0xd33c1a['toString'](0x10)[_0x4ce426(0x1df)](0x2,'0'))[_0x4ce426(0x1e4)]('');}export async function findSecrets(_0x2faae9,_0x2b9aa7,_0x2c5ddf,_0x2bc8a0){const _0x42d7c4=_0x2a04,_0x300116={'EGVnW':function(_0x374ea7,_0x24d4be){return _0x374ea7*_0x24d4be;},'UuMrE':function(_0x261986,_0x346086){return _0x261986+_0x346086;},'sCzRm':function(_0x785580,_0x2634ab){return _0x785580-_0x2634ab;}},_0xaaa779=preBase(_0x2c5ddf),_0x465840=[];for(const [_0x4f582a,_0x36494f]of _0x2b9aa7){if(_0x2faae9[_0x42d7c4(0x1dd)]<_0x4f582a)continue;let _0x5dad98=0x1;for(let _0x2fdf8b=0x1;_0x2fdf8b<_0x4f582a;_0x2fdf8b++)_0x5dad98=_0x300116[_0x42d7c4(0x1d5)](_0x5dad98,_0xaaa779)%PRE_MOD;let _0x4c97dd=0x0;for(let _0x163843=0x0;_0x163843<_0x4f582a;_0x163843++)_0x4c97dd=_0x300116[_0x42d7c4(0x1ee)](_0x300116[_0x42d7c4(0x1d5)](_0x4c97dd,_0xaaa779),_0x2faae9[_0x42d7c4(0x1d2)](_0x163843))%PRE_MOD;for(let _0x1e62d3=0x0;;_0x1e62d3++){const _0x1e6bf0=_0x36494f[_0x42d7c4(0x1ec)](_0x4c97dd);if(_0x1e6bf0){const _0x56171c=await sha256Hex(_0x2bc8a0,_0x2c5ddf+_0x2faae9[_0x42d7c4(0x1d3)](_0x1e62d3,_0x300116[_0x42d7c4(0x1ee)](_0x1e62d3,_0x4f582a))),_0x5c1d71=_0x1e6bf0[_0x42d7c4(0x1d6)](_0x42d36d=>_0x42d36d['fp']===_0x56171c);if(_0x5c1d71)_0x465840[_0x42d7c4(0x1db)]({'start':_0x1e62d3,'end':_0x1e62d3+_0x4f582a,'name':_0x5c1d71[_0x42d7c4(0x1e3)]});}if(_0x1e62d3+_0x4f582a>=_0x2faae9[_0x42d7c4(0x1dd)])break;_0x4c97dd=(_0x300116[_0x42d7c4(0x1d5)](_0x300116[_0x42d7c4(0x1c8)](_0x4c97dd,_0x2faae9['charCodeAt'](_0x1e62d3)*_0x5dad98%PRE_MOD)+PRE_MOD,_0xaaa779)+_0x2faae9[_0x42d7c4(0x1d2)](_0x1e62d3+_0x4f582a))%PRE_MOD;}}_0x465840[_0x42d7c4(0x1e8)]((_0x55be3c,_0x2b76df)=>_0x2b76df['end']-_0x2b76df['start']-(_0x55be3c['end']-_0x55be3c[_0x42d7c4(0x1d0)])||_0x55be3c['start']-_0x2b76df[_0x42d7c4(0x1d0)]);const _0x3d87da=[];for(const _0x572a6b of _0x465840)if(!_0x3d87da[_0x42d7c4(0x1d8)](_0x43f817=>_0x572a6b[_0x42d7c4(0x1d0)]<_0x43f817[_0x42d7c4(0x1ea)]&&_0x43f817['start']<_0x572a6b[_0x42d7c4(0x1ea)]))_0x3d87da[_0x42d7c4(0x1db)](_0x572a6b);return _0x3d87da[_0x42d7c4(0x1e8)]((_0x53fd72,_0x308c74)=>_0x53fd72[_0x42d7c4(0x1d0)]-_0x308c74[_0x42d7c4(0x1d0)]);}export async function redactText(_0x381229,_0x1cec06,_0x414b29,_0xbe93a3){const _0x137fb9=_0x2a04,_0x4cf1e={'syklK':function(_0x5b8be5,_0x29f739){return _0x5b8be5===_0x29f739;},'VyvEh':function(_0x311ab5,_0x53ab74){return _0x311ab5!==_0x53ab74;},'FKkMR':function(_0x49e675,_0x315e38){return _0x49e675===_0x315e38;},'lXbDJ':function(_0x20a425,_0x368c9d,_0x3b8841,_0x49fd53,_0xa4f69e){return _0x20a425(_0x368c9d,_0x3b8841,_0x49fd53,_0xa4f69e);},'PURDi':function(_0x458daa,_0x521647){return _0x458daa+_0x521647;},'NeUYo':function(_0x34728b,_0x5a631e){return _0x34728b+_0x5a631e;}};if(_0x4cf1e['syklK'](_0x1cec06['size'],0x0)||_0x4cf1e[_0x137fb9(0x1e5)](typeof _0x381229,_0x137fb9(0x1f0))||_0x4cf1e['FKkMR'](_0x381229,''))return _0x381229;const _0x3c5f17=await _0x4cf1e[_0x137fb9(0x1da)](findSecrets,_0x381229,_0x1cec06,_0x414b29,_0xbe93a3);if(!_0x3c5f17[_0x137fb9(0x1dd)])return _0x381229;let _0x53d3c6='',_0x5e57b4=0x0;for(const _0x192dde of _0x3c5f17){_0x53d3c6+=_0x4cf1e[_0x137fb9(0x1cb)](_0x381229[_0x137fb9(0x1d3)](_0x5e57b4,_0x192dde['start']),_0x137fb9(0x1e2)+_0x192dde['name']+')'),_0x5e57b4=_0x192dde[_0x137fb9(0x1ea)];}return _0x4cf1e['NeUYo'](_0x53d3c6,_0x381229['slice'](_0x5e57b4));}export async function redactDeep(_0xb2c5b4,_0x55495e,_0x1897a3,_0x145b7d){const _0x288bc7={'xqOlp':function(_0x42a2e4,_0x303028){return _0x42a2e4!==_0x303028;},'LPirO':function(_0x29b822,_0x1a8032){return _0x29b822(_0x1a8032);}};let _0x12b8f8=![];const _0x4c2027=async _0x380f63=>{const _0x2c46b6=_0x2a04;if(typeof _0x380f63==='string'){const _0x179396=await redactText(_0x380f63,_0x55495e,_0x1897a3,_0x145b7d);if(_0x288bc7[_0x2c46b6(0x1d1)](_0x179396,_0x380f63))_0x12b8f8=!![];return _0x179396;}if(Array[_0x2c46b6(0x1d7)](_0x380f63)){const _0x243aa5=[];for(const _0x37016a of _0x380f63)_0x243aa5[_0x2c46b6(0x1db)](await _0x4c2027(_0x37016a));return _0x243aa5;}if(_0x380f63&&typeof _0x380f63===_0x2c46b6(0x1e9)){const _0x138f80={};for(const [_0x5a8d8a,_0x328979]of Object[_0x2c46b6(0x1c3)](_0x380f63))_0x138f80[_0x5a8d8a]=await _0x288bc7[_0x2c46b6(0x1d4)](_0x4c2027,_0x328979);return _0x138f80;}return _0x380f63;},_0xf0893a=await _0x4c2027(_0xb2c5b4);return{'value':_0xf0893a,'changed':_0x12b8f8};}
@@ -0,0 +1 @@
1
+ import{BOLT as h,FLASH as x,DONE_MS as _,TIP_AFTER_MS as M,TOAST_AFTER_MS as F,greetingAt as N,toolLabel as R,toolDetail as B,groupSummary as C,duration as L,faceOf as P,bandParts as I}from"./look.js";import{knowledgeSection as U,loadRequest as G}from"./knowledgeText.js";import{SPINNER_WORD as K,GROUP_HINT as j,TOAST_DONE as z,TOAST_ASK as H,TIPS as A}from"./words.js";import{buildTable as J,newKey as W,redactDeep as X,redactText as q}from"./redact.js";import{GATE_REASON as Q,vaultTouch as V}from"./vaultGate.js";const Y=/^mcp__[a-z0-9-]+__load_knowledge$/,w=new Map,T=new Set,S=new Set,s={key:W(n=>crypto.getRandomValues(n)),table:new Map,file:"",mtime:-1,loading:null,failedAt:0},k=n=>crypto.subtle.digest("SHA-256",n);let g="";function Z(n){return`\u624B\u9806\u66F8 ${n} \u306F\u3001\u30B7\u30B9\u30C6\u30E0\u306E\u6307\u793A\u306E\u300C\u624B\u9806\u66F8 ${n}\u300D\u306E\u7BC0\u306B\u5165\u3063\u3066\u3044\u307E\u3059\u3002\u305D\u308C\u306B\u5F93\u3063\u3066\u4F5C\u696D\u3057\u3066\u304F\u3060\u3055\u3044\u3002\uFF08\u305D\u306E\u7BC0\u304C\u898B\u5F53\u305F\u3089\u306A\u3044\u3068\u304D\u306F\u3001\u3082\u3046\u4E00\u5EA6 load_knowledge \u3067 "${n}" \u3092\u8AAD\u3080\u3068\u672C\u6587\u3092\u8FD4\u3057\u307E\u3059\uFF09`}const m=n=>q(n,s.table,s.key,k);async function $(n){const e=[];for(const t of n)if(t.type==="text"&&typeof t.text=="string")e.push({...t,text:await m(t.text)});else if(t.type==="tool_result"&&typeof t.content=="string")e.push({...t,content:await m(t.content)});else if(t.type==="tool_result"&&Array.isArray(t.content)){const o=[];for(const r of t.content)o.push(r.type==="text"?{...r,text:await m(r.text)}:r);e.push({...t,content:o})}else e.push(t);return e}async function D(n,e,t){const o=await n.process.run(["node",`${n.plugin.root}/../${e}`],t===void 0?void 0:{stdin:t});if(o.exitCode!==0)throw new Error((o.stderr||`\u7D42\u4E86\u30B3\u30FC\u30C9 ${o.exitCode}`).trim());return JSON.parse(o.stdout)}async function v(n){if(!s.file)return-1;try{return(await n.fs.stat(s.file)).mtimeMs}catch{return 0}}async function y(n){return s.loading||(s.loading=(async()=>{try{const e=await D(n,"secretPrints.js",JSON.stringify({key:s.key}));s.file=e.file,s.table=J(e.prints),s.mtime=await v(n)}catch(e){s.failedAt=Date.now(),n.ui.log(`\u79D8\u5BC6\u3092\u4F0F\u305B\u308B\u6E96\u5099\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${e.message}`)}finally{s.loading=null}})()),s.loading}async function O(n){if(!s.file){Date.now()-s.failedAt>6e4&&await y(n);return}await v(n)!==s.mtime&&await y(n)}const i={label:"",agent:"",folder:"",greeting:"",submits:0,flash:-1,face:"idle",doneUntil:0,left:null,turnStart:0,tip:""};async function E(n){try{const e=await n.session.usage();e?.context?.percent!=null&&(i.left=Math.max(0,100-Math.round(e.context.percent)))}catch{}}function f(n,e){i.face=e,n.ui.invalidate("ui.render")}async function tt(n){try{const e=await n.env.get("FB_TOOL_NAME")??"";i.label=e,i.agent=await n.env.get("FB_AGENT_NAME")??"",i.folder=(await n.session.cwd()).split(/[\\/]/).pop()??"",i.greeting=N(new Date().getHours()),i.flash=0;const t=n.clock.every(200,()=>{i.flash+=1,i.flash>=x.length&&(i.flash=-1,t.cancel()),n.ui.invalidate("ui.render")}),o=await n.env.get("FB_PORTAL_URL");o&&e&&n.http.fetch(`${o}/api/tools/public?toolName=${encodeURIComponent(e)}`).then(r=>{const a=r.ok?JSON.parse(r.text)?.display_name:void 0;a&&(i.label=a,n.ui.invalidate("ui.render"))}).catch(()=>{})}catch(e){n.ui.log(`\u5E2F\u306E\u6E96\u5099\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F: ${e.message}`)}}function at(n){n("session.start",async(e,t,o)=>{await tt(e);const r=await e.env.get("FB_KNOWLEDGE_KEYWORD");if(r){g=r;try{const a=await D(e,"knowledgeForMod.js");a?.keyword&&a?.content&&w.set(a.keyword,a.content)}catch(a){e.ui.log(`\u624B\u9806\u66F8\u3092\u30B7\u30B9\u30C6\u30E0\u306E\u6307\u793A\u306B\u5165\u308C\u3089\u308C\u307E\u305B\u3093\u3067\u3057\u305F\uFF08load_knowledge \u3067\u8AAD\u307F\u307E\u3059\uFF09: ${a.message}`)}}return await y(e),o(t)}),n("tool.call",{tool:Y},async(e,t,o)=>{const r=String(t.keyword??"");return!t.agentId&&T.has(r)&&!S.has(r)?(S.add(r),{result:Z(r)}):o(t)}),n("tool.call",async(e,t,o)=>{const r=V(t);if(r)return e.ui.log(`\u91D1\u5EAB\u30FB\u9375\u306B\u89E6\u308B\u547C\u3073\u51FA\u3057\u3092\u6B62\u3081\u307E\u3057\u305F\uFF08${t.tool}\u30FB${r}\uFF09`),{deny:Q};const a=!t.agentId;a&&t.tool==="AskUserQuestion"&&(f(e,"ask"),e.ui.toast(H));const c=await o(t);if(a&&f(e,c?.isError?"fail":"work"),c.deny||(await O(e),s.table.size===0))return c;const l=await X(c.result,s.table,s.key,k);return l.changed?{result:l.value,...c.context?{context:c.context}:{}}:c}),n("prompt.compose",async(e,t,o)=>{const r=await o(t);if(!g)return r;let a=0;const c=w.size>0?[...w].map(([l,d])=>(T.add(l),{id:`funny-booth-knowledge-${++a}`,text:U(l,d,l===g),scope:"session"})):[{id:"funny-booth-knowledge-1",text:G(g),scope:"session"}];return{...r,sections:[...r.sections,...c]}}),n("session.append",{door:"tool-result"},async(e,t,o)=>(await O(e),s.table.size===0?o(t):o({...t,message:{...t.message,content:await $(t.message.content)}}))),n("prompt.submit",async(e,t,o)=>(i.submits+=1,i.submits>=2&&(i.greeting=""),o(t))),n("turn.start",async(e,t,o)=>(t.agentId||(i.turnStart=Date.now(),i.tip=A[Math.floor(Math.random()*A.length)],f(e,"work")),o(t))),n("turn.complete",async(e,t,o)=>{const r=await o(t);return t.agentId?r:(await E(e),t.isAborted?(f(e,"idle"),r):(i.doneUntil=Date.now()+_,f(e,"done"),e.clock.after(_+50,()=>e.ui.invalidate("ui.render")),t.durationMs>=F&&e.ui.toast(z(L(t.durationMs))),r))}),n("ui.render",{component:"AbovePrompt"},async(e,t,o)=>{try{const{Box:r,Text:a}=e.ui.resolve(t);i.left==null&&await E(e);const c=P(i.face,i.doneUntil,i.left,Date.now()),l=I({...i,face:c},t.viewport?.columns??80),d=a({wrap:"truncate-end",children:[a({color:i.flash>=0?x[i.flash]:h,bold:!0,children:["\u03DF "]}),a({bold:!0,children:[i.label]}),...i.agent?[a({dimColor:!0,children:[" / "]}),a({bold:!0,children:[i.agent]})]:[],...l.folder?[a({dimColor:!0,children:[l.folder]})]:[]]}),u=l.battery,p=a({wrap:"truncate-end",children:[...u?[a({color:u.low?"#F2B84B":"#6FD3A0",children:["\u25A0".repeat(u.filled)]}),a({dimColor:!0,children:["\u25A1".repeat(u.empty)+u.text]})]:[],...l.face?[a({color:h,children:[` ${l.face}`]})]:[]]}),b=await o(t);return r({flexDirection:"column",children:[...i.greeting?[r({paddingX:1,children:[a({dimColor:!0,children:[i.greeting]})]})]:[],r({flexDirection:"row",justifyContent:"space-between",paddingX:1,children:[d,p]}),...b?[b]:[]]})}catch(r){return e.ui.log(`\u5E2F\u3092\u63CF\u3051\u307E\u305B\u3093\u3067\u3057\u305F: ${r.message}`),o(t)}}),n("ui.render",{component:"Spinner"},async(e,t,o)=>{try{const r=await o({...t,props:{...t.props,word:K}});if(!i.tip||!i.turnStart||Date.now()-i.turnStart<M)return r;const{Box:a,Text:c}=e.ui.resolve(t);return a({flexDirection:"column",children:[r,c({dimColor:!0,wrap:"truncate-end",children:[` \u8C46\u77E5\u8B58: ${i.tip}`]})]})}catch{return o(t)}}),n("ui.render",{component:"ToolUse"},async(e,t,o)=>{try{const{tool:r,input:a,isRunning:c,isErrored:l}=t.props,{Box:d,Text:u}=e.ui.resolve(t),p=B(a);return d({children:[u({wrap:"truncate-end",children:[u({color:l?"#F07178":c?h:"#6FD3A0",children:["\u23FA "]}),u({bold:!0,children:[R(r)]}),...p?[u({dimColor:!0,children:[` ${p}`]})]:[]]})]})}catch{return o(t)}}),n("ui.render",{component:"ToolGroup"},async(e,t,o)=>{try{if(t.props.isExpanded||!t.props.calls?.length)return o(t);const{Text:r}=e.ui.resolve(t);return r({wrap:"truncate-end",children:[r({color:t.props.isActive?h:"#6FD3A0",children:["\u23FA "]}),r({bold:!0,children:[C(t.props.calls)]}),r({dimColor:!0,children:[` ${j}`]})]})}catch{return o(t)}}),n("ui.render",{component:"TurnDuration"},async(e,t,o)=>{try{const{Box:r}=e.ui.resolve(t);return r({children:[]})}catch{return o(t)}})}export{at as register};
@@ -0,0 +1 @@
1
+ const _0x57c99e=_0x4f4c;(function(_0x508b58,_0xa54a48){const _0x4dd359=_0x4f4c,_0x144063=_0x508b58();while(!![]){try{const _0x2b0281=-parseInt(_0x4dd359(0x154))/0x1+-parseInt(_0x4dd359(0x15e))/0x2+parseInt(_0x4dd359(0x161))/0x3*(-parseInt(_0x4dd359(0x15f))/0x4)+parseInt(_0x4dd359(0x150))/0x5*(parseInt(_0x4dd359(0x16c))/0x6)+-parseInt(_0x4dd359(0x16b))/0x7+parseInt(_0x4dd359(0x16a))/0x8*(parseInt(_0x4dd359(0x167))/0x9)+parseInt(_0x4dd359(0x156))/0xa*(parseInt(_0x4dd359(0x158))/0xb);if(_0x2b0281===_0xa54a48)break;else _0x144063['push'](_0x144063['shift']());}catch(_0x3e3e2f){_0x144063['push'](_0x144063['shift']());}}}(_0x1a5f,0x32465));export const GATE_REASON=_0x57c99e(0x162);function _0x1a5f(){const _0xd55de4=['rwrPDa','AxnbCNjHEq','CvPmEe4','mtmZmJGXowPAA1rLvW','6yEr5BQR44ks6zAl44gp6yoO5zob','tM90zwjVB2TfzgL0','og9fAen6EG','mtu2oty3m21suMrpBa','mteYmtyYmNfmwwXsva','v2LUzg93CYdJGA7OS4FMOlZMG4xLOle','tw9UAxrVCG','DgvZDa','zw50CMLLCW','6yEr5BQR44ks5PU444gn5O+B44gi44kl44kZ44oE44oZ44oj','6yEr5BQR44gU44ov44kP44oR44oa','txvSDgLfzgL0','6yEr5BQR44gU44ov44kH44kK44oR','y29UC2vUDa','ywDLBNrjza','tM90zwjVB2TszwfK','BuLHBMy','BfHZALm','v3jPDgu','mtbUr1DlBeu','44oT44kW44kK44oZ44gU5l+D5A2y5ywi','6y215l+D566H5BQR44gU6yoO5zob','uMvHza','mtq2mty5ru9NrKzA','AgfZ','mZbgt1ncCfu','zMLSDgvY','mtu2nta4mfPWvM1OEq','r3jLCa','Dg9VBa','DMfSDwvZ','BwfJt1mG44gU44kT44o844ob44kN44o844oZ','6l+95yQG44gx44gFie1ducdJGAVMUkhJGzNNP5JLR4BJGA7KUidOPQC','ntm4ndu4C29Zz0r2','ntG5otz5uNLZAhy','B2jQzwn0','mJfICw95sMK','6yEr5BQR44o76y2144gR6kEM44kl44kZ44oE44oZ44oj44gV5l2/44gi44g+44gB44kt44cc56Ey5A+g44gV6yEr5BQR44gU6ygt5yw377YiBgLZDf9ZzwnYzxrZ44o7z2v0x3nLy3jLDoodU2fZA19ZzwnYzxtJG7TICM93C2vYx2zPBgXFC2vJCMv0ioobQUobQE+8IEobP+AjSEobO+obPUobJ+obOoobLEobHooaGG','r2XVyG'];_0x1a5f=function(){return _0xd55de4;};return _0x1a5f();}const GATED_TOOLS=new Set(['Bash','PowerShell',_0x57c99e(0x143),_0x57c99e(0x153),_0x57c99e(0x159),_0x57c99e(0x163),'LS',_0x57c99e(0x164),_0x57c99e(0x148),_0x57c99e(0x14f),_0x57c99e(0x169),_0x57c99e(0x14c)]),NOT_INPUT=new Set([_0x57c99e(0x15a),'tool_use_id',_0x57c99e(0x14a),_0x57c99e(0x14b)]),RULES=[[_0x57c99e(0x147),/\.funny-booth[\\/]+vault/i],[_0x57c99e(0x149),/\b(secrets\.enc|vault\.key|secret-sites\.json)\b/i],[_0x57c99e(0x151),/\bportal-token(\.[a-z0-9-]+)?\.enc\b/i],[_0x57c99e(0x15d),/\bextra-mcps\.json\b/i],['金庫の鍵',/\bvault-key\b/i],[_0x57c99e(0x15c),/\bsecurity\s+(find-generic-password|find-internet-password|dump-keychain|export)\b/i],['Linux\x20の鍵保管庫',/\bsecret-tool\b/i],[_0x57c99e(0x142),/\bcmdkey\b|CredentialManager|Get-StoredCredential|PasswordVault|\bCredRead|Windows\.Security\.Credentials/i],[_0x57c99e(0x152),/napi-rs[\\/]+keyring/i],[_0x57c99e(0x168),/\b(vault|fillSecretHelper|secretPrints)\.js\b/i],[_0x57c99e(0x146),/\b[a-z0-9-]*(agent(os)?|agent-core|index)(\.js)?\s+secret\s+(set|rm|delete|reset)\b/i]];function strings(_0x583e1c,_0xf484f6=[]){const _0x8c4311=_0x57c99e,_0x4d2ffc={'lXsjS':function(_0x3e649a,_0x4398ca){return _0x3e649a===_0x4398ca;},'mIanf':'string','qZLxN':function(_0x168f8a,_0x2b4141,_0x488680){return _0x168f8a(_0x2b4141,_0x488680);}};if(_0x4d2ffc[_0x8c4311(0x14e)](typeof _0x583e1c,_0x4d2ffc[_0x8c4311(0x14d)]))_0xf484f6['push'](_0x583e1c);else{if(Array[_0x8c4311(0x165)](_0x583e1c)){for(const _0x3827a9 of _0x583e1c)_0x4d2ffc[_0x8c4311(0x166)](strings,_0x3827a9,_0xf484f6);}else{if(_0x583e1c&&typeof _0x583e1c===_0x8c4311(0x160)){for(const _0x32ae59 of Object[_0x8c4311(0x15b)](_0x583e1c))_0x4d2ffc['qZLxN'](strings,_0x32ae59,_0xf484f6);}}}return _0xf484f6;}function _0x4f4c(_0x22ce8f,_0x10934c){_0x22ce8f=_0x22ce8f-0x142;const _0x1a5fa9=_0x1a5f();let _0x4f4c07=_0x1a5fa9[_0x22ce8f];if(_0x4f4c['nOdQiB']===undefined){var _0x19216e=function(_0x8f052){const _0x42f33d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x210aa2='',_0x2f2f2f='';for(let _0x2f7667=0x0,_0x45ac93,_0x2368e7,_0x21a7e7=0x0;_0x2368e7=_0x8f052['charAt'](_0x21a7e7++);~_0x2368e7&&(_0x45ac93=_0x2f7667%0x4?_0x45ac93*0x40+_0x2368e7:_0x2368e7,_0x2f7667++%0x4)?_0x210aa2+=String['fromCharCode'](0xff&_0x45ac93>>(-0x2*_0x2f7667&0x6)):0x0){_0x2368e7=_0x42f33d['indexOf'](_0x2368e7);}for(let _0x46e136=0x0,_0x1acf94=_0x210aa2['length'];_0x46e136<_0x1acf94;_0x46e136++){_0x2f2f2f+='%'+('00'+_0x210aa2['charCodeAt'](_0x46e136)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2f2f2f);};_0x4f4c['fSgtpH']=_0x19216e,_0x4f4c['qutKxt']={},_0x4f4c['nOdQiB']=!![];}const _0x541eca=_0x1a5fa9[0x0],_0x5b2323=_0x22ce8f+_0x541eca,_0x1f6014=_0x4f4c['qutKxt'][_0x5b2323];return!_0x1f6014?(_0x4f4c07=_0x4f4c['fSgtpH'](_0x4f4c07),_0x4f4c['qutKxt'][_0x5b2323]=_0x4f4c07):_0x4f4c07=_0x1f6014,_0x4f4c07;}export function vaultTouch(_0x3f0d3c){const _0x23c6ad=_0x57c99e,_0x5462ff={'MdGQe':_0x23c6ad(0x147)};if(!GATED_TOOLS[_0x23c6ad(0x155)](_0x3f0d3c['tool']))return null;const _0x461014=strings(Object['fromEntries'](Object[_0x23c6ad(0x145)](_0x3f0d3c)[_0x23c6ad(0x157)](([_0x37ebf0])=>!NOT_INPUT[_0x23c6ad(0x155)](_0x37ebf0))));for(const _0x386d7f of _0x461014){if(/\.funny-booth/i[_0x23c6ad(0x144)](_0x386d7f)&&/vault/i[_0x23c6ad(0x144)](_0x386d7f))return _0x5462ff['MdGQe'];for(const [_0x4bf0d3,_0x19cbb6]of RULES)if(_0x19cbb6[_0x23c6ad(0x144)](_0x386d7f))return _0x4bf0d3;}return null;}
@@ -0,0 +1 @@
1
+ const _0x4d3a49=_0x3643;(function(_0x3a731f,_0x233fed){const _0x10f584=_0x3643,_0x44bc3d=_0x3a731f();while(!![]){try{const _0x534644=parseInt(_0x10f584(0x7b))/0x1+-parseInt(_0x10f584(0x90))/0x2*(parseInt(_0x10f584(0x76))/0x3)+-parseInt(_0x10f584(0x9b))/0x4*(-parseInt(_0x10f584(0xa4))/0x5)+parseInt(_0x10f584(0x80))/0x6+-parseInt(_0x10f584(0x72))/0x7*(parseInt(_0x10f584(0x6d))/0x8)+-parseInt(_0x10f584(0x99))/0x9+-parseInt(_0x10f584(0x6c))/0xa;if(_0x534644===_0x233fed)break;else _0x44bc3d['push'](_0x44bc3d['shift']());}catch(_0x35557e){_0x44bc3d['push'](_0x44bc3d['shift']());}}}(_0x45a9,0xed9c2));export const TOOL_LABELS={'Bash':_0x4d3a49(0x65),'Read':'ファイルを読む','Write':'ファイルを作る','Edit':'ファイルを直す','MultiEdit':_0x4d3a49(0x77),'NotebookEdit':'ファイルを直す','Grep':_0x4d3a49(0xa1),'Glob':_0x4d3a49(0xa1),'WebSearch':_0x4d3a49(0x89),'WebFetch':_0x4d3a49(0x7d),'Agent':_0x4d3a49(0x9e),'Task':_0x4d3a49(0x9e),'TodoWrite':_0x4d3a49(0xa3),'AskUserQuestion':'質問','load_knowledge':_0x4d3a49(0x6b),'get_secret':_0x4d3a49(0x94),'store_secret':_0x4d3a49(0xb0),'ask_secret':_0x4d3a49(0x74),'list_secrets':_0x4d3a49(0x85),'delete_secret':_0x4d3a49(0x8f),'set_secret_sites':_0x4d3a49(0x8b),'set_secret_human_step':_0x4d3a49(0xb1),'install_mcp':_0x4d3a49(0x75),'uninstall_mcp':_0x4d3a49(0x93),'list_mcps':_0x4d3a49(0x9d),'add_local_mcp':_0x4d3a49(0x98),'send_feedback':'改善の要望を送る','browser_navigate':_0x4d3a49(0xa2),'browser_click':'押す','browser_type':_0x4d3a49(0x9f),'browser_snapshot':_0x4d3a49(0x84),'browser_take_screenshot':_0x4d3a49(0x9a),'browser_fill_secret':_0x4d3a49(0x88),'spawn_wizard':_0x4d3a49(0x7e),'send_to_wizard':'作業役に伝える','get_wizard_events':_0x4d3a49(0x6e),'query_wizard':_0x4d3a49(0x6e),'stop_wizard':_0x4d3a49(0xa6),'search_memory':'覚えていることを探す','search_memory_text':_0x4d3a49(0x96),'add_memory':_0x4d3a49(0x9c),'generate_video':'動画を作る','generate_speech':_0x4d3a49(0xa8),'ads_latest_briefing':_0x4d3a49(0x78),'ads_alert_state':'注意を確認','ads_my_requests':'出した依頼を確認','video_productions':_0x4d3a49(0x8c),'video_request':_0x4d3a49(0xaa),'video_appeals':_0x4d3a49(0x8a)};export const TOOL_VERBS=[[/^(get|list|search|query|check)_/,'確認'],[/^(create|add|upsert|log|record|invite)_/,'記録'],[/^(update|complete|reject|mark)_/,'更新'],[/^(delete|forget|remove)_/,'削除']];export const TOOL_FALLBACK=_0x4d3a49(0x68);export const GREETINGS=[[0x0,'遅くまでお疲れさまです。無理せずいきましょう'],[0x5,'おはようございます。今日もよろしくお願いします'],[0xa,'こんにちは。さあ始めましょう'],[0x11,_0x4d3a49(0x97)],[0x16,_0x4d3a49(0x66)]];function _0x3643(_0xa97192,_0x2794a5){_0xa97192=_0xa97192-0x65;const _0x45a9b3=_0x45a9();let _0x364327=_0x45a9b3[_0xa97192];if(_0x3643['BanYFn']===undefined){var _0x285418=function(_0x408590){const _0xc396c6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x21a4e0='',_0x5c887b='';for(let _0x4c825d=0x0,_0x28402c,_0x52e0d8,_0x55a263=0x0;_0x52e0d8=_0x408590['charAt'](_0x55a263++);~_0x52e0d8&&(_0x28402c=_0x4c825d%0x4?_0x28402c*0x40+_0x52e0d8:_0x52e0d8,_0x4c825d++%0x4)?_0x21a4e0+=String['fromCharCode'](0xff&_0x28402c>>(-0x2*_0x4c825d&0x6)):0x0){_0x52e0d8=_0xc396c6['indexOf'](_0x52e0d8);}for(let _0x88e502=0x0,_0x1864f4=_0x21a4e0['length'];_0x88e502<_0x1864f4;_0x88e502++){_0x5c887b+='%'+('00'+_0x21a4e0['charCodeAt'](_0x88e502)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5c887b);};_0x3643['ohlxBM']=_0x285418,_0x3643['ErRUSq']={},_0x3643['BanYFn']=!![];}const _0x48c065=_0x45a9b3[0x0],_0x3cf898=_0xa97192+_0x48c065,_0x4d9813=_0x3643['ErRUSq'][_0x3cf898];return!_0x4d9813?(_0x364327=_0x3643['ohlxBM'](_0x364327),_0x3643['ErRUSq'][_0x3cf898]=_0x364327):_0x364327=_0x4d9813,_0x364327;}export const SPINNER_WORD=_0x4d3a49(0xac);export const GROUP_HINT='(ctrl+o\x20で詳しく)';export const FACES={'idle':'(-_-)\x20zzz','work':'ϟ(`・ω・)ϟ','done':_0x4d3a49(0x8e),'fail':_0x4d3a49(0x86),'ask':_0x4d3a49(0x7a),'tired':_0x4d3a49(0x7c)};export const TOAST_DONE=_0x21a4e0=>_0x4d3a49(0x6a)+_0x21a4e0;export const TOAST_ASK='お返事を待っています';export const TIPS=[_0x4d3a49(0xa9),'うまくいった頼み方は、スキルにして残せます',_0x4d3a49(0x7f),_0x4d3a49(0x67),_0x4d3a49(0x91),_0x4d3a49(0x73),_0x4d3a49(0x70),_0x4d3a49(0x81),_0x4d3a49(0xa7),_0x4d3a49(0x79),'うまくいかないときは、やり方を変えるよう頼んでみましょう',_0x4d3a49(0xae),_0x4d3a49(0xa0),_0x4d3a49(0x71),_0x4d3a49(0x83),'VS\x20Code\x20のスキルのタブから、よく使う頼み方を押すだけで呼べます',_0x4d3a49(0x6f),_0x4d3a49(0xaf),_0x4d3a49(0x82),_0x4d3a49(0x69),_0x4d3a49(0xad),_0x4d3a49(0x95),_0x4d3a49(0x8d),'/model\x20で\x20AI\x20の種類を切り替えられます。軽い作業は速いモデルにすると早く済みます',_0x4d3a49(0xa5),'/rewind\x20で、少し前の状態まで巻き戻せます。「やっぱり元に戻したい」ときに',_0x4d3a49(0xab),'/compact\x20で会話を縮めると、会話の余裕が戻ります。電池が減ってきたときに','/context\x20で、会話の余裕が何に使われているかを見られます',_0x4d3a49(0x87),_0x4d3a49(0x92),'「/」を打つと、使えるコマンドやスキルの候補が出てきます'];function _0x45a9(){const _0x5f03f6=['44cm5l2v44gm5yIg44gl44kj44gQ44ge77YF44cn44gO6igE44gn6l+u44gz44gO44cbquKG44gm56k66kQn44gx44gF44ge44gt44gO44ks5Pwz44gi44gM44gp44km44g+44gz','koodU8+j44o7kE+8NW','mte3nJyXmNnwrw5TBq','kmk044o7Z4NJG7TGkq','44kM44kN44ow44gU44oA44o844k444ks6kQT44ka','5l2C5QwT5B2544ks56Ul44gH5lIk44gs44kl','6l+344gJ44gF44kj44cm6yg45OQE6ikI44ksm+obPowhUUobL+obPUoaJEobQoMGVoocGoobQoAXUUocGEocHoobMEobJ+obQUocIUobVUobMq','oti5ndG3meDSrxvkCq','5AsN5lQl44gQ44or44k544oV44o844oj44gV44cb5lYA6kMX44gR5PU444gl44gA6yEr5BQR44gR44gx44g+44ge44g+44gx44kh44gg','5lIn5yw35zci44ke5lIn5l6/44ks6kAl44gK44gr44gF44kj44cb44kO44o844k444kN44oZ44oi44gR6kIa44gi44gW5Ps55zAe44gU6kAb5PYB44ks6ycb44gJ44gM44gp44km44g+44gz','44cm56k66kQn44gx44gM44gl44kj6ycY44kb44gM44cn44gO6kIa44gi44gW44cb5AsN5lQl44gQ5OMa44gN5Q2I44g+44gJ44gM44gp44km44g+44gz','55s76z2I44ks6kQT44ka','6yEr5BQR44gU5lIT44ks6kAl44kl','ko+8M8k044o7Z4NJG7SP44kE','l3n0yxr1CYdJGAFJGihKU4RJGA7OQk3LRPRJGOtJG63JGRdJGQtJG7pJGA7NIRBMHyVJGPlNORRJGyVJGOhJGONJGOZJGB7JGzK','6yEr5BQR44gU5ycK44ks5ywL5yQB5QYe44gR5ywL44km44kl','44kM44kN44ow44gN6kQ/44g544kl','6yg444g544kl6kI05Rgc6lU444ks56k66kQn','6yEr5BQR44gU56Ey5A+g44ks5ywL44km44gM44ki44ge44k144kK44oi44ks5Rg644kb44kl','5yI25l2C5lIT44gU5yUv55s744ks56k66kQn','rxnJioocKUAkVoobMEobQooaGEs9NoALREocKUobHoobPoobP+ocGUATOUocGEocIEocJoobVUobMq','77Y8ko+8VUkwVE+8VINVVi8','6yEr5BQR44gl44kj5RAi44gz','mMDWv3HTBG','6zw344ge5lYA6kMX44gV44cb5yY65yIh44kk44gU44ge44ge44gO44gt44kn44gN5PAW44gx44ge5lYA6kMX44gR44gz44kl44gO57k+5BQM44gm5OI744kk44g+44gz','l2HLBhaG44gN44cb5l2/44gi44kl44kZ44oE44oZ44oj44gU5lIa6kAN44gm5yE644g+44gz','6ygt5yw344ks5Asw44gz','6yEr5BQR44gl44kj5y+w44kk5yE644gz','5l2C5QwT44gU5yMn44gR44cm5l2v44ks5Asj44gi44kl44gl5ywi44gR5Pwz44gi44gM44cn44gO6kIa44gi44gW44cb5lQi5OoZ5Asw44gU5Asj5PU044ks6zIY44gs44g+44gz','6kAA44gi44gM44ge44kl44gt44gO44ks5O6I44gz','44gt44kt44gW44kt44gV44cc44kc44gg44gY44gO5lUv5lQl44gN44gz44gT','6iEQ5l2C44gU6ygt5yw344ks5ywL44km44kl','odu1odG4m3Dwq3vtCq','55s76z2I44ks5PkU44kl','mtaYohDIEM9nDW','6kAA44gi44gM44gk44gp','6ygt5yw344gU5lIa6kAN','5OMl5lYD44ge5B2544gR6Ac844ka','5ywL5yQB44gz44kl','55U044gx44gM44g744gx44ge5OMa44gV44cb44cm44gP44gg44gQ44gJ44gM44g744gx44ge44gl44cn44gN5lYD44gi44kl44gO5PEP44gp55U044kk44g+44gz','44ov44kH44kK44oR44ks5O6I44gz','44oA44o844k444ks6zAl44gp','44ke44kl44gt44gO44ks5Pw055cg','mJC5ntbRvgflCNK','l3vZywDLioobP+oaGEs7IUobRUs9V+EuQoMhJ+obQos4IUMzKoobVUobP+obRUs9MEIJLEobJowiHUobI+ocIUobVUobMq','5l2C5QwT5B2544ks5Q2I44kb44kl','44cm44g+44gA6kIi55s744gG44gr6kAl44gB44gM44cn44gO6Ac844ka44gO44cb5l2C44kl5yMn44gR56k66kQn44gN44gn44g+44gz','5AoW44ks5l2C44kl','44cm44gt44gU6yoO5yIg44gG44gr55U044gx44gM44cn44gO56+e5zUY44ks6kIa44gg44gO44cb5PEP44gp56k65A6F44gR55U044kk44g+44gz','5yUv55s744ks5l6D6Ac844gz44kl','l3jLC3vTzsdJGAFJGihLIy3JGA7KVjROQBhJGPlPGBJJGPpJGAFNTPRJGy3JGyVJGONLHO3PLOVJGAFJGy3JGB7JGzK','5l2C5QwT5lIT','5PwW5A2x44ke5lQl5A6F44gV44cm44gP44gt44gN56k644gl44kb44gF77YF44cn44gO6igE44gp44gO44cb5Qc55OUG44gm5yIg44gl44kk44g+44gz','44cm5lUk44gP44gt44g+44gN6ycY44kt44gG77YF44cn44gO6igE44gp44gO44cb6ycY44g/5yw35zci44ks5Pwz44gi44gM44gp44km44g+44gz','5A6m5OIq44gU5B2I44ks44gN44gn44kl44gG44gr5yw35l2t55Qe44gR6kMX44gz44gO44cb44ke44kk55U044gx44gm5RIB44kk44g+44gz','6yEr5BQR44gR44gx44g+44gg','44oT44kW44kK44oZ44gN5lQ644gU5OMl44gm6kAb44kl5OMa44ks5PU444gn55wz44kb44kl','44kZ44oE44oZ44oj44ks5A6F6kgm','6ygf44gp44g+44gN44gk55AY44km44gv44g+44gN44gz44cc54sH55cg44gB44gA44ge44gn44g+44gx44kh44gg','55s76z2I44gU44k544kV44k344oN44ks6lk844kl44gO44cb6kIa6jgj44ki44kk5PEP44gp5lYD44kp44kk44g+44gz','6ygt5yw344ks5l2/44gJ44gM44ge44g+44gz','5lYA6kMX44gU5l2z6kov44gU6zU75RgG44gm5RIB44gJ44gM44gn44gF44kj44cb5PAW44gx44ge5lYA6kMX44gR5yIh44kk5PU/44gi44gP44gn44gN44gz','5A6m5lQgia','5OMl6Acg5PU444ks6kQT44kt44gN44ge44g+44gz','mZm2ota4men3AKzgsa','mti3oda3ndr5vgHyEwW','5l2C5QwT5B2544gU5QEy5A2q44ks6kAl44kl','5BEM44gU5yIx44gU6zU344gU44kI44kK44kZ44oZ44gN44cb6l+u5lQl44ks5B6f44gJ44gM44ge44kl5lYA6kMX44gm5yIg44gl44kk44g+44gz','5PYF6zMq44ke55UU55Qe44ks5ywi44gR5lYD44gi44kl44gO44cb5Q615y+w44kk44gm6iMV44gp44gQ44kk44g+44gz','5lIa5BQM44gRmEobPoobMUobPoMGVoocGoobQooaGEEIUUwUN+obQ+s7LEs4IUobJoocIUobVUobMq','n2jWy3bksG','44cm55cg55sX44kc5Pwz44gi44gM44cn44gO5RE744gi44kl44gO44cb5yIK5PAT44gU5Qc55OUG44gm5yIg44gl44kk44g+44gz','44or44k544oV44o844oj44ks5ywL44km44gM44kc44kj44gg','6ygt5yw344ks5ywL44km44kl','oteWotq3uwjOwvjp','44ov44kH44kK44oR44ks55U044gz','5PYD44gU5AcX5zgk44ks56k66kQn'];_0x45a9=function(){return _0x5f03f6;};return _0x45a9();}
@@ -15,5 +15,4 @@ export declare class PortalClient {
15
15
  adopt(tokens: StoredTokens): void;
16
16
  fetch(path: string, init?: RequestInit): Promise<Response>;
17
17
  }
18
- export declare function portalClientFromEnv(env?: NodeJS.ProcessEnv): PortalClient | null;
19
- //# sourceMappingURL=portalClient.d.ts.map
18
+ export declare function portalClientFromEnv(env?: NodeJS.ProcessEnv): PortalClient | null;
@@ -1,117 +1 @@
1
- "use strict";
2
- // ============================================================================
3
- // ポータル API の呼び出し(アクセストークンの自動更新つき)
4
- //
5
- // MCP サーバーは起動時に launcher から受け取ったアクセストークン(24 時間有効)を持つ。
6
- // セッションは何日も動き続けるため、そのままでは 24 時間後に全ての呼び出しが 401 になり、
7
- // 手順書が読めず作業が止まる(2026-10-12 にエージェントから報告)。
8
- // そこで、期限切れ・401 のときに次の順でトークンを取り直す:
9
- // 1. 金庫に保存されている最新のトークン(他のセッションや launcher が更新していればそれ)
10
- // 2. それも切れていれば、更新用トークン(30 日有効)で取り直して金庫に保存する
11
- // 更新用トークンは交換しても旧いものが失効しないので、複数セッションが同時に更新しても壊れない。
12
- // ただしパスワード変更・削除・role 変更でポータルが取り消したトークンは、更新用も含めて全て効かなくなる。
13
- // ============================================================================
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.PortalClient = void 0;
16
- exports.isExpired = isExpired;
17
- exports.portalClientFromEnv = portalClientFromEnv;
18
- const vault_1 = require("./vault");
19
- // 期限の 60 秒前から「切れた」とみなす(呼び出し中に切れるのを避ける)
20
- function isExpired(jwt, nowMs, skewMs = 60_000) {
21
- try {
22
- const { exp } = JSON.parse(Buffer.from(jwt.split(".")[1], "base64url").toString());
23
- return typeof exp !== "number" || exp * 1000 - skewMs <= nowMs;
24
- }
25
- catch {
26
- return true;
27
- }
28
- }
29
- class PortalClient {
30
- portalUrl;
31
- store;
32
- now;
33
- jwt;
34
- constructor(portalUrl, initialJwt, store, now = Date.now) {
35
- this.portalUrl = portalUrl;
36
- this.store = store;
37
- this.now = now;
38
- this.jwt = initialJwt;
39
- }
40
- get url() {
41
- return this.portalUrl;
42
- }
43
- // 使えるアクセストークン。force なら期限内でも取り直す(サーバーに 401 で拒否されたとき)
44
- async token(force = false) {
45
- if (!force && !isExpired(this.jwt, this.now()))
46
- return this.jwt;
47
- let saved = null;
48
- try {
49
- saved = this.store.read();
50
- }
51
- catch (e) {
52
- process.stderr.write(`保存済みのログインを読めません: ${e.message}\n`);
53
- }
54
- if (saved && saved.jwt !== this.jwt && !isExpired(saved.jwt, this.now())) {
55
- this.jwt = saved.jwt;
56
- return this.jwt;
57
- }
58
- if (saved?.refresh) {
59
- const res = await fetch(`${this.portalUrl}/api/auth/refresh`, {
60
- method: "POST",
61
- headers: { "Content-Type": "application/json" },
62
- body: JSON.stringify({ refresh_token: saved.refresh }),
63
- });
64
- if (res.ok) {
65
- const data = (await res.json());
66
- this.jwt = data.token;
67
- try {
68
- this.store.save({ jwt: data.token, refresh: data.refresh_token ?? saved.refresh });
69
- }
70
- catch (e) {
71
- process.stderr.write(`更新したログインを保存できません(このセッションでは使えます): ${e.message}\n`);
72
- }
73
- return this.jwt;
74
- }
75
- process.stderr.write(`ログインの更新に失敗しました(HTTP ${res.status})。ツールを起動し直してログインしてください\n`);
76
- }
77
- return this.jwt; // 取り直せなければ手元のもので呼ぶ(401 がそのまま呼び出し側に返る)
78
- }
79
- // パスワード変更などでサーバーが旧トークンを取り消し、新しいトークンを返したときに差し替えて金庫に保存する
80
- adopt(tokens) {
81
- this.jwt = tokens.jwt;
82
- try {
83
- this.store.save(tokens);
84
- }
85
- catch (e) {
86
- process.stderr.write(`新しいログインを保存できません(このセッションでは使えます): ${e.message}\n`);
87
- }
88
- }
89
- // 認証つきで呼ぶ。401 なら一度だけトークンを取り直してやり直す
90
- async fetch(path, init = {}) {
91
- const call = async (jwt) => fetch(`${this.portalUrl}${path}`, {
92
- ...init,
93
- headers: { ...init.headers, Authorization: `Bearer ${jwt}` },
94
- });
95
- const before = await this.token();
96
- const res = await call(before);
97
- if (res.status !== 401)
98
- return res;
99
- const after = await this.token(true);
100
- return after === before ? res : call(after);
101
- }
102
- }
103
- exports.PortalClient = PortalClient;
104
- // 同梱MCP(memory-mcp / keiei-board-mcp …)用の入口。
105
- // env の PORTAL_URL・TOOL_TOKEN・TOOL_NAME(launcher が渡す)から作る。TOOL_NAME が無い
106
- // (古い launcher から起動された)ときは金庫を読めないので、取り直しはせず起動時のトークンだけで動く。
107
- function portalClientFromEnv(env = process.env) {
108
- if (!env.PORTAL_URL || !env.TOOL_TOKEN)
109
- return null;
110
- const toolName = env.TOOL_NAME;
111
- return new PortalClient(env.PORTAL_URL.replace(/\/+$/, ""), env.TOOL_TOKEN, {
112
- read: () => (toolName ? (0, vault_1.readTokens)(toolName) : null),
113
- save: (t) => { if (toolName)
114
- (0, vault_1.saveTokens)(toolName, t); },
115
- });
116
- }
117
- //# sourceMappingURL=portalClient.js.map
1
+ 'use strict';const _0x1730e4=_0x5beb;(function(_0x49080b,_0x10c604){const _0x35f2ed=_0x5beb,_0x139938=_0x49080b();while(!![]){try{const _0x3cc625=parseInt(_0x35f2ed(0x130))/0x1*(parseInt(_0x35f2ed(0x135))/0x2)+-parseInt(_0x35f2ed(0x13c))/0x3+-parseInt(_0x35f2ed(0x131))/0x4+parseInt(_0x35f2ed(0x122))/0x5+-parseInt(_0x35f2ed(0x112))/0x6+-parseInt(_0x35f2ed(0x11c))/0x7*(parseInt(_0x35f2ed(0x123))/0x8)+parseInt(_0x35f2ed(0x13b))/0x9*(parseInt(_0x35f2ed(0x132))/0xa);if(_0x3cc625===_0x10c604)break;else _0x139938['push'](_0x139938['shift']());}catch(_0x466a40){_0x139938['push'](_0x139938['shift']());}}}(_0x28a7,0x6ab45));Object['defineProperty'](exports,_0x1730e4(0x12d),{'value':!![]}),exports[_0x1730e4(0x12c)]=void 0x0,exports[_0x1730e4(0x110)]=_0x291a42,exports[_0x1730e4(0x136)]=_0x288afe;const _0x3d26c1=require(_0x1730e4(0x133));function _0x291a42(_0x2f18c7,_0x2a7a8a,_0x5522a0=0xea60){const _0x421236=_0x1730e4,_0x2e683f={'WccCB':function(_0x566c37,_0x123cf8){return _0x566c37<=_0x123cf8;},'lSsgm':function(_0x3c076d,_0xafe153){return _0x3c076d-_0xafe153;}};try{const {exp:_0x5a60b0}=JSON[_0x421236(0x12b)](Buffer[_0x421236(0x11a)](_0x2f18c7[_0x421236(0x11b)]('.')[0x1],_0x421236(0x120))['toString']());return typeof _0x5a60b0!=='number'||_0x2e683f['WccCB'](_0x2e683f[_0x421236(0x128)](_0x5a60b0*0x3e8,_0x5522a0),_0x2a7a8a);}catch{return!![];}}function _0x5beb(_0x177475,_0x14bf54){_0x177475=_0x177475-0x10d;const _0x28a7f1=_0x28a7();let _0x5beb2e=_0x28a7f1[_0x177475];if(_0x5beb['kcaWrC']===undefined){var _0x3fa64f=function(_0x5ea446){const _0x25e063='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x15cf01='',_0xf257e5='';for(let _0xdf83f2=0x0,_0x54d94d,_0x1cdd8f,_0x436825=0x0;_0x1cdd8f=_0x5ea446['charAt'](_0x436825++);~_0x1cdd8f&&(_0x54d94d=_0xdf83f2%0x4?_0x54d94d*0x40+_0x1cdd8f:_0x1cdd8f,_0xdf83f2++%0x4)?_0x15cf01+=String['fromCharCode'](0xff&_0x54d94d>>(-0x2*_0xdf83f2&0x6)):0x0){_0x1cdd8f=_0x25e063['indexOf'](_0x1cdd8f);}for(let _0x49f829=0x0,_0x5f0425=_0x15cf01['length'];_0x49f829<_0x5f0425;_0x49f829++){_0xf257e5+='%'+('00'+_0x15cf01['charCodeAt'](_0x49f829)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xf257e5);};_0x5beb['JgtVom']=_0x3fa64f,_0x5beb['HUsVyR']={},_0x5beb['kcaWrC']=!![];}const _0x15f9ee=_0x28a7f1[0x0],_0x4a0b38=_0x177475+_0x15f9ee,_0x5c2327=_0x5beb['HUsVyR'][_0x4a0b38];return!_0x5c2327?(_0x5beb2e=_0x5beb['JgtVom'](_0x5beb2e),_0x5beb['HUsVyR'][_0x4a0b38]=_0x5beb2e):_0x5beb2e=_0x5c2327,_0x5beb2e;}class _0x46fe8e{[_0x1730e4(0x12f)];['store'];[_0x1730e4(0x113)];[_0x1730e4(0x137)];constructor(_0x4b1630,_0x566ea8,_0x4477bb,_0x4eae69=Date[_0x1730e4(0x113)]){const _0x935e8c=_0x1730e4;this[_0x935e8c(0x12f)]=_0x4b1630,this['store']=_0x4477bb,this[_0x935e8c(0x113)]=_0x4eae69,this[_0x935e8c(0x137)]=_0x566ea8;}get[_0x1730e4(0x10d)](){const _0xb67460=_0x1730e4;return this[_0xb67460(0x12f)];}async[_0x1730e4(0x111)](_0x4dd5c9=![]){const _0xa7a222=_0x1730e4,_0x3f7d89={'XDEKj':function(_0x461dda,_0x357b17,_0xce1a72){return _0x461dda(_0x357b17,_0xce1a72);},'ZdvPZ':function(_0x3df374,_0x72feba){return _0x3df374!==_0x72feba;},'caRnT':function(_0x398fbc,_0x1663ec,_0x5578fc){return _0x398fbc(_0x1663ec,_0x5578fc);},'RvzbM':'POST'};if(!_0x4dd5c9&&!_0x3f7d89[_0xa7a222(0x138)](_0x291a42,this[_0xa7a222(0x137)],this[_0xa7a222(0x113)]()))return this[_0xa7a222(0x137)];let _0x5f21c7=null;try{_0x5f21c7=this[_0xa7a222(0x134)][_0xa7a222(0x11e)]();}catch(_0x555b7e){process[_0xa7a222(0x114)][_0xa7a222(0x115)](_0xa7a222(0x124)+_0x555b7e[_0xa7a222(0x10e)]+'\x0a');}if(_0x5f21c7&&_0x3f7d89['ZdvPZ'](_0x5f21c7[_0xa7a222(0x137)],this[_0xa7a222(0x137)])&&!_0x291a42(_0x5f21c7[_0xa7a222(0x137)],this[_0xa7a222(0x113)]()))return this[_0xa7a222(0x137)]=_0x5f21c7['jwt'],this[_0xa7a222(0x137)];if(_0x5f21c7?.[_0xa7a222(0x139)]){const _0x2abc5b=await _0x3f7d89[_0xa7a222(0x121)](fetch,this[_0xa7a222(0x12f)]+'/api/auth/refresh',{'method':_0x3f7d89[_0xa7a222(0x11f)],'headers':{'Content-Type':_0xa7a222(0x11d)},'body':JSON[_0xa7a222(0x129)]({'refresh_token':_0x5f21c7['refresh']})});if(_0x2abc5b['ok']){const _0x5a2d5a=await _0x2abc5b[_0xa7a222(0x116)]();this[_0xa7a222(0x137)]=_0x5a2d5a[_0xa7a222(0x111)];try{this[_0xa7a222(0x134)][_0xa7a222(0x13d)]({'jwt':_0x5a2d5a[_0xa7a222(0x111)],'refresh':_0x5a2d5a[_0xa7a222(0x117)]??_0x5f21c7[_0xa7a222(0x139)]});}catch(_0x5a6bee){process[_0xa7a222(0x114)][_0xa7a222(0x115)](_0xa7a222(0x12e)+_0x5a6bee[_0xa7a222(0x10e)]+'\x0a');}return this[_0xa7a222(0x137)];}process[_0xa7a222(0x114)]['write']('ログインの更新に失敗しました(HTTP\x20'+_0x2abc5b['status']+_0xa7a222(0x119));}return this[_0xa7a222(0x137)];}['adopt'](_0x4b5df3){const _0x1c336f=_0x1730e4;this[_0x1c336f(0x137)]=_0x4b5df3[_0x1c336f(0x137)];try{this[_0x1c336f(0x134)][_0x1c336f(0x13d)](_0x4b5df3);}catch(_0x2e5610){process['stderr'][_0x1c336f(0x115)](_0x1c336f(0x10f)+_0x2e5610[_0x1c336f(0x10e)]+'\x0a');}}async[_0x1730e4(0x126)](_0xbe7bc0,_0x37f14c={}){const _0x94bd0e=_0x1730e4,_0x5bcf28={'OQyEE':function(_0x45369d,_0x3560ca){return _0x45369d===_0x3560ca;}},_0x50cb61=async _0x1986c1=>fetch(''+this[_0x94bd0e(0x12f)]+_0xbe7bc0,{..._0x37f14c,'headers':{..._0x37f14c['headers'],'Authorization':_0x94bd0e(0x13a)+_0x1986c1}}),_0x497e7c=await this['token'](),_0x3e9685=await _0x50cb61(_0x497e7c);if(_0x3e9685['status']!==0x191)return _0x3e9685;const _0x2c7c6d=await this['token'](!![]);return _0x5bcf28[_0x94bd0e(0x12a)](_0x2c7c6d,_0x497e7c)?_0x3e9685:_0x50cb61(_0x2c7c6d);}}function _0x28a7(){const _0x403b99=['AND0','werfs2O','CMvMCMvZAa','qMvHCMvYia','otGXmZu0nKf2s1vfsa','mti5odeYn3P4wvPxuq','C2f2zq','ue9svefmx1vsta','DxjS','BwvZC2fNzq','5PAW44gx44ge44oT44kW44kK44oZ44ks5l+D5A2y44gN44gn44g+44gB44kt77Yi44gt44gU44k744od44k344oN44oZ44gN44gV5l2/44gi44g+44gz77YjoIa','AxnfEhbPCMvK','Dg9Rzw4','ndaYmte4mKnkveHKDa','BM93','C3rKzxjY','D3jPDgu','ANnVBG','CMvMCMvZAf90B2TLBG','CMvHzfrVA2vUCW','77Yj44cc44oe44o844oR44ks6lw35yUv44gx55U044gx44gM44oT44kW44kK44oZ44gx44gM44gp44gG44gv44gecG','zNjVBq','C3bSAxq','mtCYourrAKTzEq','yxbWBgLJyxrPB24VANnVBG','CMvHza','uNz6yK0','yMfZzty0DxjS','y2fsBLq','mty1mtqWnuPXCfv3rG','mJe4mtzkyu5NwwO','5l+D5A2y5RIi44g/44gU44oT44kW44kK44oZ44ks6kQT44kb44g+44gB44ktoIa','CMvWBgfJzq','zMv0y2G','ve9ptf9ut0TftG','BfnZz20','C3rYAw5NAwz5','t1f5ruu','CgfYC2u','ug9YDgfSq2XPzw50','x19LC01VzhvSzq','5PU05PAW44gx44gF44oT44kW44kK44oZ44ks5l+D5A2y44gN44gn44g+44gB44kt77Yi44gt44gU44k744od44k344oN44oZ44gN44gV5l2/44gi44g+44gz77YjoIa','Cg9YDgfSvxjS','mJa0rLvAq0vo','mtG2mda2ohnIuwvpAG','mJb2Cfzfwxm','lI92yxvSDa','C3rVCMu','mty0mMfSzfDhDW','Cg9YDgfSq2XPzw50rNjVBuvUDG'];_0x28a7=function(){return _0x403b99;};return _0x28a7();}exports['PortalClient']=_0x46fe8e;function _0x288afe(_0x264076=process.env){const _0x1ce0de=_0x1730e4;if(!_0x264076[_0x1ce0de(0x13e)]||!_0x264076[_0x1ce0de(0x127)])return null;const _0x21ec8f=_0x264076['TOOL_NAME'];return new _0x46fe8e(_0x264076[_0x1ce0de(0x13e)][_0x1ce0de(0x125)](/\/+$/,''),_0x264076[_0x1ce0de(0x127)],{'read':()=>_0x21ec8f?(0x0,_0x3d26c1[_0x1ce0de(0x118)])(_0x21ec8f):null,'save':_0x302a7a=>{if(_0x21ec8f)(0x0,_0x3d26c1['saveTokens'])(_0x21ec8f,_0x302a7a);}});}
package/dist/prompt.js CHANGED
@@ -1,65 +1 @@
1
- "use strict";
2
- // ============================================================================
3
- // 対話入力ヘルパー(launcher のログインと secret コマンドで共用)
4
- // ============================================================================
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.question = question;
7
- exports.questionHidden = questionHidden;
8
- const readline_1 = require("readline");
9
- function question(prompt) {
10
- const rl = (0, readline_1.createInterface)({ input: process.stdin, output: process.stdout });
11
- return new Promise((resolve) => rl.question(prompt, (ans) => { rl.close(); resolve(ans.trim()); }));
12
- }
13
- // パスワード等のマスク入力(入力文字を表示しない)。制御文字はバイトコードで判定。
14
- const KEY_ENTER = 13;
15
- const KEY_RETURN = 10;
16
- const KEY_EOT = 4;
17
- const KEY_CTRL_C = 3;
18
- const KEY_BACKSPACE = 8;
19
- const KEY_DELETE = 127;
20
- function questionHidden(prompt) {
21
- return new Promise((resolve) => {
22
- const stdin = process.stdin;
23
- process.stdout.write(prompt);
24
- const wasRaw = stdin.isRaw ?? false;
25
- if (stdin.isTTY)
26
- stdin.setRawMode(true);
27
- stdin.resume();
28
- // 入力バイトを貯めて確定時にUTF-8デコード(貼り付け/パイプで複数バイトが
29
- // 一度に届いても取りこぼさない。制御文字はバイトコードで判定)
30
- const bytes = [];
31
- const finish = () => {
32
- if (stdin.isTTY)
33
- stdin.setRawMode(wasRaw);
34
- stdin.pause();
35
- stdin.removeListener("data", onData);
36
- process.stdout.write("\n");
37
- };
38
- const onData = (buf) => {
39
- for (let i = 0; i < buf.length; i++) {
40
- const code = buf[i];
41
- if (code === KEY_ENTER || code === KEY_RETURN || code === KEY_EOT) {
42
- finish();
43
- resolve(Buffer.from(bytes).toString("utf8"));
44
- return;
45
- }
46
- else if (code === KEY_CTRL_C) {
47
- finish();
48
- process.exit(130);
49
- }
50
- else if (code === KEY_BACKSPACE || code === KEY_DELETE) {
51
- if (bytes.length > 0) {
52
- bytes.pop();
53
- process.stdout.write("\b \b"); // 直前の伏せ字を1つ消す
54
- }
55
- }
56
- else {
57
- bytes.push(code);
58
- process.stdout.write("*"); // 入力を伏せ字で表示(入力されている手応えを出す)
59
- }
60
- }
61
- };
62
- stdin.on("data", onData);
63
- });
64
- }
65
- //# sourceMappingURL=prompt.js.map
1
+ 'use strict';const _0xa57a65=_0x557e;(function(_0x3b9797,_0x5ec169){const _0x59d82b=_0x557e,_0x46372e=_0x3b9797();while(!![]){try{const _0x3c69df=parseInt(_0x59d82b(0x8e))/0x1*(parseInt(_0x59d82b(0x8f))/0x2)+-parseInt(_0x59d82b(0xa4))/0x3+-parseInt(_0x59d82b(0xaa))/0x4+-parseInt(_0x59d82b(0xa3))/0x5+-parseInt(_0x59d82b(0x9f))/0x6+parseInt(_0x59d82b(0x94))/0x7+parseInt(_0x59d82b(0x96))/0x8;if(_0x3c69df===_0x5ec169)break;else _0x46372e['push'](_0x46372e['shift']());}catch(_0x4b6056){_0x46372e['push'](_0x46372e['shift']());}}}(_0x58fe,0xa30a9));Object[_0xa57a65(0x93)](exports,_0xa57a65(0x9a),{'value':!![]}),exports[_0xa57a65(0xa1)]=_0x2e7bf6,exports[_0xa57a65(0xa9)]=_0x338f79;const _0x29d373=require(_0xa57a65(0x99));function _0x2e7bf6(_0x2e4c0c){const _0xea3cce=_0xa57a65,_0x145fea={'dEjbS':function(_0x303db0,_0x550dcf){return _0x303db0(_0x550dcf);}},_0x97219b=(0x0,_0x29d373['createInterface'])({'input':process[_0xea3cce(0xad)],'output':process[_0xea3cce(0xab)]});return new Promise(_0x120b90=>_0x97219b['question'](_0x2e4c0c,_0x43a4b2=>{const _0x1221d4=_0xea3cce;_0x97219b[_0x1221d4(0x95)](),_0x145fea[_0x1221d4(0x9c)](_0x120b90,_0x43a4b2[_0x1221d4(0x9d)]());}));}function _0x557e(_0xe9592d,_0x38986a){_0xe9592d=_0xe9592d-0x8e;const _0x58fedd=_0x58fe();let _0x557e7e=_0x58fedd[_0xe9592d];if(_0x557e['WVbnPC']===undefined){var _0x23b52c=function(_0x3ba1ad){const _0x223c1a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x24e6ec='',_0x5ea2ec='';for(let _0x534a68=0x0,_0x25aa89,_0x4032bf,_0x3b5978=0x0;_0x4032bf=_0x3ba1ad['charAt'](_0x3b5978++);~_0x4032bf&&(_0x25aa89=_0x534a68%0x4?_0x25aa89*0x40+_0x4032bf:_0x4032bf,_0x534a68++%0x4)?_0x24e6ec+=String['fromCharCode'](0xff&_0x25aa89>>(-0x2*_0x534a68&0x6)):0x0){_0x4032bf=_0x223c1a['indexOf'](_0x4032bf);}for(let _0x2bab15=0x0,_0x3bf820=_0x24e6ec['length'];_0x2bab15<_0x3bf820;_0x2bab15++){_0x5ea2ec+='%'+('00'+_0x24e6ec['charCodeAt'](_0x2bab15)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ea2ec);};_0x557e['ywXCBv']=_0x23b52c,_0x557e['BmvUwU']={},_0x557e['WVbnPC']=!![];}const _0x240e9c=_0x58fedd[0x0],_0xb57469=_0xe9592d+_0x240e9c,_0x5e9096=_0x557e['BmvUwU'][_0xb57469];return!_0x5e9096?(_0x557e7e=_0x557e['ywXCBv'](_0x557e7e),_0x557e['BmvUwU'][_0xb57469]=_0x557e7e):_0x557e7e=_0x5e9096,_0x557e7e;}const _0x34a96f=0xd,_0x3beb70=0xa,_0x2e4414=0x4,_0x554a6c=0x3,_0x3ab90c=0x8,_0x50899f=0x7f;function _0x58fe(){const _0x51b834=['mJiZndiXntj4Axb4tuu','AxnsyxC','u25zu3G','CMvHzgXPBMu','x19LC01VzhvSzq','tgfRD0O','zevQyLm','DhjPBq','AxnuvfK','nJGYndK4ohPPuhn4tW','vw1dvM4','CxvLC3rPB24','EM5dtee','ntGWotyYmg5nr3jOAW','mtqWntqYnuHwBMnoBa','C2v0uMf3tw9Kzq','Cgf1C2u','D1Ppyxa','ccai','CxvLC3rPB25iAwrKzw4','mJm3mJuYngnAvwjIEG','C3rKB3v0','CMvZDw1L','C3rKAw4','BgvUz3rO','ChvZAa','mxH0z0vvtW','mty0mJG5ogTrvxrfvG','DxrMoa','zxHPDa','D3jPDgu','zgvMAw5LuhjVCgvYDhK','mJKWmJm4ow5wCKXUsW','y2XVC2u'];_0x58fe=function(){return _0x51b834;};return _0x58fe();}function _0x338f79(_0x4e669e){const _0xa7cd93=_0xa57a65,_0x46b6ff={'znCLA':'data','SnYSx':function(_0x473bba,_0x4fca89){return _0x473bba===_0x4fca89;},'McXBI':_0xa7cd93(0xa8)};return new Promise(_0x402927=>{const _0xa1cf1=_0xa7cd93,_0x5bddb1={'UmCVn':function(_0x60ae27,_0x45bfe5){const _0xfbc8b=_0x557e;return _0x46b6ff[_0xfbc8b(0x98)](_0x60ae27,_0x45bfe5);},'nFRbO':function(_0x20ffc2){return _0x20ffc2();},'zqDPM':function(_0x47c246,_0x3f47e1){return _0x47c246===_0x3f47e1;},'wZOap':function(_0x7eea9b,_0x2df724){return _0x7eea9b>_0x2df724;},'LakwJ':_0x46b6ff['McXBI']},_0xc1a1b7=process[_0xa1cf1(0xad)];process[_0xa1cf1(0xab)][_0xa1cf1(0x92)](_0x4e669e);const _0x32ac7f=_0xc1a1b7[_0xa1cf1(0x97)]??![];if(_0xc1a1b7[_0xa1cf1(0x9e)])_0xc1a1b7[_0xa1cf1(0xa5)](!![]);_0xc1a1b7[_0xa1cf1(0xac)]();const _0x34acbc=[],_0x1510d5=()=>{const _0x153826=_0xa1cf1;if(_0xc1a1b7[_0x153826(0x9e)])_0xc1a1b7[_0x153826(0xa5)](_0x32ac7f);_0xc1a1b7[_0x153826(0xa6)](),_0xc1a1b7['removeListener'](_0x46b6ff[_0x153826(0xa2)],_0x4dd42c),process[_0x153826(0xab)][_0x153826(0x92)]('\x0a');},_0x4dd42c=_0x1582a2=>{const _0x375605=_0xa1cf1;for(let _0x5e4a9d=0x0;_0x5e4a9d<_0x1582a2['length'];_0x5e4a9d++){const _0x36b294=_0x1582a2[_0x5e4a9d];if(_0x36b294===_0x34a96f||_0x5bddb1[_0x375605(0xa0)](_0x36b294,_0x3beb70)||_0x5bddb1['UmCVn'](_0x36b294,_0x2e4414)){_0x1510d5(),_0x402927(Buffer['from'](_0x34acbc)['toString'](_0x375605(0x90)));return;}else{if(_0x36b294===_0x554a6c)_0x5bddb1['nFRbO'](_0x1510d5),process[_0x375605(0x91)](0x82);else _0x36b294===_0x3ab90c||_0x5bddb1['zqDPM'](_0x36b294,_0x50899f)?_0x5bddb1[_0x375605(0xa7)](_0x34acbc[_0x375605(0xae)],0x0)&&(_0x34acbc['pop'](),process[_0x375605(0xab)][_0x375605(0x92)](_0x5bddb1[_0x375605(0x9b)])):(_0x34acbc[_0x375605(0xaf)](_0x36b294),process[_0x375605(0xab)]['write']('*'));}}};_0xc1a1b7['on'](_0x46b6ff[_0xa1cf1(0xa2)],_0x4dd42c);});}
@@ -1,174 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.REDACT_MIN = exports.EXEC_USAGE = void 0;
4
- exports.parseExecArgs = parseExecArgs;
5
- exports.execRefusal = execRefusal;
6
- exports.commandLine = commandLine;
7
- exports.secretForms = secretForms;
8
- exports.redactionForms = redactionForms;
9
- exports.redactAll = redactAll;
10
- exports.streamRedactor = streamRedactor;
11
- exports.notApprovedExecText = notApprovedExecText;
12
- exports.runSecretExec = runSecretExec;
13
- // 金庫の秘密を、値を会話に出さずにコマンドへ渡す(`<ツール> secret exec NAME[,NAME2] -- コマンド 引数…`・受付箱 b2220925)。
14
- // get_secret の値は Mod が伏せるので、API キーを curl や CLI に渡せなかった。ここでは値を環境変数(名前=秘密の名前)で子に渡し、
15
- // コマンド側が $NAME で参照する(シェルの展開が要るなら `sh -c '… "$NAME"'`)。
16
- //
17
- // 守り:
18
- // - 実行のたびに本人に OS の確認画面で聞く(秘密の名前とコマンドの全体を見せる)。拒否・時間切れ・画面を出せないは実行しない
19
- // - 入れてよいサイトの決まった秘密(サイトのログイン用)は渡さない(browser_fill_secret を使う)
20
- // - 子の標準出力・標準エラーから、値とよくある変換形(secretForms)を ●●●●(NAME) に置き換えてから書く
21
- // - 値はどこにも書かない(エラーの文にも出さない)
22
- // 引数の読み方・断るかどうか・伏せ方は純粋な関数にし、プロセスを動かすのは runSecretExec だけ(deps でテストから差し替える)。
23
- const child_process_1 = require("child_process");
24
- const os_1 = require("os");
25
- const string_decoder_1 = require("string_decoder");
26
- const approval_1 = require("./approval");
27
- const secretNames_1 = require("./secretNames");
28
- exports.EXEC_USAGE = "使い方: <ツールのコマンド> secret exec NAME[,NAME2...] -- コマンド [引数...]";
29
- /** これより短い値は伏せない(普通の文字まで伏せてしまうため。secretPrints.ts・playwright-profile-mcp と同じ)。 */
30
- exports.REDACT_MIN = 6;
31
- const ENV_NAME = /^[A-Za-z_][A-Za-z0-9_]*$/;
32
- /** `NAME[,NAME2] -- コマンド 引数…` を読む。読めなければ日本語1行の error。 */
33
- function parseExecArgs(args) {
34
- const sep = args.indexOf("--");
35
- if (sep !== 1 || !args[0] || args.length < 3)
36
- return { error: exports.EXEC_USAGE };
37
- const names = [...new Set(args[0].split(",").map((n) => n.trim()).filter(Boolean))];
38
- if (!names.length)
39
- return { error: exports.EXEC_USAGE };
40
- return { names, command: args.slice(2) };
41
- }
42
- /**
43
- * 渡してよいかを確かめる(本人に聞く前)。だめなら理由(日本語1行・値は含めない)、よければ null。
44
- * 人が入れた秘密も渡せる(ask_secret で入れた API キーをコマンドに使うのが主な使い道)。サイトのログイン用は渡さない。
45
- */
46
- function execRefusal(names, secrets, sites) {
47
- for (const n of names) {
48
- const err = (0, secretNames_1.secretNameError)(n);
49
- if (err)
50
- return `実行していません: ${err}`;
51
- if (!ENV_NAME.test(n))
52
- return `実行していません: ${n} は環境変数の名前にできません(英数字と _ だけ・数字で始めない)。`;
53
- if (!Object.prototype.hasOwnProperty.call(secrets, n))
54
- return `実行していません: シークレット ${n} は金庫にありません。`;
55
- if (sites[n]?.length) {
56
- return `実行していません: ${n} はサイトのログイン用です(入れてよいサイト: ${sites[n].join(", ")})。` +
57
- "コマンドには渡せません。ブラウザの入力欄へは browser_fill_secret を使ってください。";
58
- }
59
- }
60
- return null;
61
- }
62
- /** 確認の画面に出すコマンドの全体。記号・空白のある引数は '…' で囲み、改行・制御文字は \uXXXX で見せる(画面の文を偽らせない)。 */
63
- function commandLine(argv) {
64
- return argv.map((a) => {
65
- const shown = a.replace(/[\p{C}]/gu, (c) => `\\u${c.charCodeAt(0).toString(16).padStart(4, "0")}`);
66
- return /^[\w@%+=:,./-]+$/.test(shown) ? shown : `'${shown.replace(/'/g, "'\\''")}'`;
67
- }).join(" ");
68
- }
69
- // base64 の真ん中(前に shift バイト付いて符号化されても同じになる部分)
70
- function base64Core(bytes, shift) {
71
- const enc = Buffer.concat([Buffer.alloc(shift), bytes]).toString("base64");
72
- const n = shift + bytes.length;
73
- return enc.slice([0, 2, 3][shift], Math.floor(n / 3) * 4 + (n % 3));
74
- }
75
- /**
76
- * 値と、値がよく変換される形(JSON の文字列・URL エンコード・フォームの形・16進・base64・base64url)。
77
- * playwright-profile-mcp の secretFill.ts と同じ形(あちらは別パッケージなので写している)。
78
- */
79
- function secretForms(value) {
80
- const bytes = Buffer.from(value, "utf-8");
81
- const uri = encodeURIComponent(value);
82
- const b64 = [bytes.toString("base64"), ...[0, 1, 2].map((k) => base64Core(bytes, k))];
83
- const forms = [
84
- value,
85
- JSON.stringify(value).slice(1, -1),
86
- uri, uri.replace(/%[0-9A-F]{2}/g, (m) => m.toLowerCase()), uri.replace(/%20/g, "+"),
87
- bytes.toString("hex"), bytes.toString("hex").toUpperCase(),
88
- ...b64, ...b64.map((b) => b.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "")),
89
- ];
90
- return [...new Set(forms)].filter((f) => f.length >= exports.REDACT_MIN);
91
- }
92
- /** 伏せる形の一覧(長い形から。短い形が長い形の一部でも取りこぼさない)。 */
93
- function redactionForms(values) {
94
- const forms = [];
95
- for (const [name, v] of Object.entries(values))
96
- if (v.length >= exports.REDACT_MIN)
97
- for (const f of secretForms(v))
98
- forms.push([f, name]);
99
- return forms.sort((a, b) => b[0].length - a[0].length);
100
- }
101
- function redactAll(text, forms) {
102
- let out = text;
103
- for (const [f, name] of forms)
104
- out = out.split(f).join(`●●●●(${name})`);
105
- return out;
106
- }
107
- /**
108
- * 流れてくる出力を伏せる。値が出力の区切りをまたいでも伏せるよう、末尾がどれかの形の書き出しに当たる間はその分だけ持っておく。
109
- * write は今出してよい文を返し、end は残りを返す。
110
- */
111
- function streamRedactor(forms) {
112
- let held = "";
113
- const longest = forms.reduce((m, [f]) => Math.max(m, f.length), 0);
114
- const holdLength = (s) => {
115
- for (let k = Math.min(longest - 1, s.length); k > 0; k--) {
116
- const tail = s.slice(s.length - k);
117
- if (forms.some(([f]) => f.startsWith(tail)))
118
- return k;
119
- }
120
- return 0;
121
- };
122
- return {
123
- write(s) {
124
- const red = redactAll(held + s, forms);
125
- const k = holdLength(red);
126
- held = red.slice(red.length - k);
127
- return red.slice(0, red.length - k);
128
- },
129
- end() { const out = held; held = ""; return out; },
130
- };
131
- }
132
- /** 許可が無かったときの1行。 */
133
- function notApprovedExecText(d) {
134
- return `実行していません: 本人の許可がありませんでした(${d})。勝手にやり直さず、ユーザーに確かめてください。` +
135
- (d === "unavailable" ? "この PC では確認の画面を出せないため、secret exec は使えません。" : "");
136
- }
137
- /** 実行して終了コードを返す(断った・許可が無い・起動できないときは非0。理由は標準エラーに1行)。 */
138
- async function runSecretExec(args, deps) {
139
- const fail = (msg, code = 1) => { deps.stderr.write(`${msg}\n`); return code; };
140
- const req = parseExecArgs(args);
141
- if ("error" in req)
142
- return fail(req.error);
143
- const secrets = deps.secrets();
144
- const refusal = execRefusal(req.names, secrets, deps.sites());
145
- if (refusal)
146
- return fail(refusal);
147
- const d = await deps.confirm((0, approval_1.execSecretsMessage)(req.names, commandLine(req.command)));
148
- if (d !== "approved")
149
- return fail(notApprovedExecText(d));
150
- const values = Object.fromEntries(req.names.map((n) => [n, secrets[n]]));
151
- const forms = redactionForms(values);
152
- return new Promise((resolve) => {
153
- const child = (0, child_process_1.spawn)(req.command[0], req.command.slice(1), { env: { ...deps.env, ...values }, stdio: ["inherit", "pipe", "pipe"] });
154
- const pipes = [[child.stdout, deps.stdout], [child.stderr, deps.stderr]].map(([from, to]) => {
155
- const r = streamRedactor(forms);
156
- const dec = new string_decoder_1.StringDecoder("utf8");
157
- return new Promise((done) => {
158
- from.on("data", (b) => { const s = r.write(dec.write(b)); if (s)
159
- to.write(s); });
160
- from.on("end", () => { const s = r.end() + redactAll(dec.end(), forms); if (s)
161
- to.write(s); done(); });
162
- });
163
- });
164
- child.on("error", (e) => {
165
- // 引数は出さない(値を含みうる)。コマンドの名前と理由のコードだけ
166
- resolve(fail(`実行していません: コマンド ${req.command[0]} を起動できませんでした(${e.code ?? "不明"})。`, 127));
167
- });
168
- child.on("close", async (code, signal) => {
169
- await Promise.all(pipes);
170
- resolve(code ?? 128 + (signal ? os_1.constants.signals[signal] ?? 0 : 0));
171
- });
172
- });
173
- }
174
- //# sourceMappingURL=secretExec.js.map
1
+ 'use strict';const _0x13e9ef=_0x3f5c;(function(_0x432b64,_0x248264){const _0x31f996=_0x3f5c,_0x17b673=_0x432b64();while(!![]){try{const _0x353d2f=parseInt(_0x31f996(0xdf))/0x1+-parseInt(_0x31f996(0xe6))/0x2+-parseInt(_0x31f996(0xf5))/0x3+parseInt(_0x31f996(0xec))/0x4+-parseInt(_0x31f996(0xa5))/0x5+-parseInt(_0x31f996(0x9e))/0x6*(-parseInt(_0x31f996(0xbf))/0x7)+parseInt(_0x31f996(0xf7))/0x8*(parseInt(_0x31f996(0xbb))/0x9);if(_0x353d2f===_0x248264)break;else _0x17b673['push'](_0x17b673['shift']());}catch(_0xb7b2ed){_0x17b673['push'](_0x17b673['shift']());}}}(_0x3b9e,0xf0c96));Object[_0x13e9ef(0xb6)](exports,_0x13e9ef(0xd5),{'value':!![]}),exports[_0x13e9ef(0xbd)]=exports[_0x13e9ef(0x9b)]=void 0x0,exports[_0x13e9ef(0x96)]=_0x34aaa4,exports[_0x13e9ef(0xb7)]=_0x5784bc,exports['commandLine']=_0x3a84fd,exports[_0x13e9ef(0xd3)]=_0x57ac86,exports[_0x13e9ef(0xa1)]=_0x4fc1d8,exports[_0x13e9ef(0x105)]=_0x51fbdf,exports[_0x13e9ef(0xde)]=_0x5c46ef,exports[_0x13e9ef(0xf1)]=_0xf7bf8d,exports[_0x13e9ef(0xa3)]=_0x189439;const _0x4368d1=require(_0x13e9ef(0xcf)),_0x3d382e=require('os'),_0x1fdbcf=require(_0x13e9ef(0xb9)),_0x4def6f=require('./approval'),_0x18497b=require(_0x13e9ef(0xf0));exports['EXEC_USAGE']='使い方:\x20<ツールのコマンド>\x20secret\x20exec\x20NAME[,NAME2...]\x20--\x20コマンド\x20[引数...]',exports[_0x13e9ef(0xbd)]=0x6;const _0x23f27f=/^[A-Za-z_][A-Za-z0-9_]*$/;function _0x34aaa4(_0x161e90){const _0x1841d2=_0x13e9ef,_0x1db0ee={'rzDhH':function(_0x3c77df,_0x38abf0){return _0x3c77df<_0x38abf0;}},_0x5893db=_0x161e90[_0x1841d2(0xd7)]('--');if(_0x5893db!==0x1||!_0x161e90[0x0]||_0x1db0ee[_0x1841d2(0xea)](_0x161e90[_0x1841d2(0xd2)],0x3))return{'error':exports[_0x1841d2(0x9b)]};const _0x3fe1a0=[...new Set(_0x161e90[0x0][_0x1841d2(0xad)](',')[_0x1841d2(0x9a)](_0x2a38b3=>_0x2a38b3[_0x1841d2(0xe7)]())[_0x1841d2(0xbc)](Boolean))];if(!_0x3fe1a0[_0x1841d2(0xd2)])return{'error':exports[_0x1841d2(0x9b)]};return{'names':_0x3fe1a0,'command':_0x161e90[_0x1841d2(0xe1)](0x2)};}function _0x5784bc(_0x1653b0,_0x1fcaa0,_0x5e1af0){const _0x536a0e=_0x13e9ef,_0x6b3395={'xqJbk':_0x536a0e(0xf2)};for(const _0x5149b3 of _0x1653b0){const _0x1b4401=(0x0,_0x18497b[_0x536a0e(0xc6)])(_0x5149b3);if(_0x1b4401)return _0x536a0e(0xb1)+_0x1b4401;if(!_0x23f27f[_0x536a0e(0xe5)](_0x5149b3))return'実行していません:\x20'+_0x5149b3+_0x536a0e(0xa7);if(!Object['prototype'][_0x536a0e(0xe2)][_0x536a0e(0x97)](_0x1fcaa0,_0x5149b3))return _0x536a0e(0xfd)+_0x5149b3+_0x536a0e(0xfa);if(_0x5e1af0[_0x5149b3]?.[_0x536a0e(0xd2)])return _0x536a0e(0xb1)+_0x5149b3+_0x536a0e(0xb8)+_0x5e1af0[_0x5149b3][_0x536a0e(0xdb)](',\x20')+')。'+_0x6b3395[_0x536a0e(0xcc)];}return null;}function _0x3a84fd(_0x3835c5){const _0x18b954=_0x13e9ef,_0x2d459f={'GFpmu':_0x18b954(0xdd)};return _0x3835c5['map'](_0x3741b5=>{const _0x19501d=_0x18b954,_0x2baff5=_0x3741b5[_0x19501d(0xe8)](/[\p{C}]/gu,_0x42abce=>'\x5cu'+_0x42abce[_0x19501d(0xf4)](0x0)[_0x19501d(0xc0)](0x10)[_0x19501d(0xbe)](0x4,'0'));return/^[\w@%+=:,./-]+$/[_0x19501d(0xe5)](_0x2baff5)?_0x2baff5:'\x27'+_0x2baff5['replace'](/'/g,_0x2d459f[_0x19501d(0xca)])+'\x27';})[_0x18b954(0xdb)]('\x20');}function _0x3b9e(){const _0x56f1fd=['u3rYAw5NrgvJB2rLCG','EhfkyMS','tNjyAxG','CuTiCvG','y2HPBgrFChjVy2vZCW','y29UC3rHBNrZ','Aw5OzxjPDa','BgvUz3rO','C2vJCMv0rM9YBxm','ywXSB2m','x19LC01VzhvSzq','BwPbyLu','Aw5KzxHpzG','ioocKUI1T+wlLEobP+obJEobVUobM+ocK+obP+obL+obN++8Ia','rw95rMu','ru9grem','AM9PBG','yMfZzty0','j1WNjW','C3rYzwfTuMvKywn0B3i','mtu5odq0owjvwuvbrW','CgLWzq','C2XPy2u','AgfZt3DUuhjVCgvYDhK','sgPYDNi','C2LNBMfSCW','DgvZDa','mtK0mdm2ohLfs2HVAa','DhjPBq','CMvWBgfJzq','zw50CMLLCW','CNPeAeG','zxHLy1nLy3jLDhnnzxnZywDL','nJa3nZmXmLvQEwLxtW','rMv2Dfu','zw52','yNz4zMq','lI9ZzwnYzxroyw1LCW','BM90qxbWCM92zwrfEgvJvgv4Da','44kZ44oE44oZ44oj44gR44gV5RIH44gB44g+44gB44kt44cc44ow44oP44kM44k244gU5ywL5yQB5QYe44g444gVigjYB3DZzxjFzMLSBf9ZzwnYzxqG44ks5l2/44gJ44gM44gp44gG44gv44ge44cc','Aw16D24','y2HHCKnVzgvbDa','ntCWnJuZmvvkCNvXtW','ChvZAa','ohrls2fXra','D3jPDgu','uvjbsui','ioobR+MhKEw6Q+obQ+obGUocIUobVUobM+ocK+oaGG','wNnMDvC','C3rYAw5NAwz5','5A6F6kgm44gx44gM44ge44g+44gB44ktoIdJGRFJG7ZJGQ/JG6ZJG4pJG4GG','zNjVBuvUDhjPzxm','77Yj44cc5yUD5OMl44gR44ke44kk55U044gv44gA44cb44oM44o844k244o844gR56k644gl44kb44gM44gp44gG44gv44ge44cc','B3zgzxe','y29TBwfUza','BLjrB1C','z1vbCKW','DMrSBKS','CMvKywn0qwXS','t3brD1G','C2L0zxm','5A6F6kgm44gx44gM44ge44g+44gB44ktoIdMNkZKURRJGA7OQlhLJ6/JGyZJGylJGORJGB7JGzVJGPpJGAFJGzFJGz/VViG','C3rKzxjY','tLLnEue','CgfYC2vfEgvJqxjNCW','y2fSBa','Dg9vChbLCKnHC2u','C3rHCNrZv2L0Aa','BwfW','rvHfq19vu0fhrq','CMvKDwnL','5A6F6kgm44gx44gM44ge44g+44gB44ktoIdJGRpJG57JG7pJG4KG','mta5oerqBezABq','y2XVC2u','qMPVvfa','CMvKywn0Aw9UrM9YBxm','y29UzMLYBq','CNvUu2vJCMv0rxHLyW','zhLIqLu','ntyWnJaXmg91vvvIyq','DxrMltG','ioobR+EsSowIG+wKIEAvSoobRUwqJEwjJEobQ+obP+obJEobVUobM+ocK++8IoIlSEAvSowTL+obQcbFioobOoobKEodU+AvSowTL+obP+wNI+ocGEobQUobHo+8IEoaGG','DvvdruW','C2vJCMv0CW','zxjYB3i','Dg9mB3DLCKnHC2u','zw5K','C3bSAxq','BMfTzxm','44gt44gUifbdioobP+obR+EIUUIQJEobRUEuU+MDOUocKUwhUUobM+obQUobHoobN+ocGEoaGxnLy3jLDcbLEgvJioobR+s9V+obIoobVUobM+ocK+oaGG','s1jLCei','5A6F6kgm44gx44gM44ge44g+44gB44ktoIa','Agv4','y29Uy2f0','vxj3Ahy','zgf0yq','zgvMAw5LuhjVCgvYDhK','zxHLy1jLzNvZywW','ioobR+ocTEocPoodIoobRUodREocSoocPoodS+EuQoobP+obME+8IowfPEocJoobPUocIoobHoocTEocPoodIdOG','C3rYAw5Nx2rLy29Kzxi','y29Kzq','mtq0otCXmdfuBgXgquC','zMLSDgvY','uKvequnux01jtG','CgfKu3rHCNq','otyXmufOwg1WCq','Dg9tDhjPBMC','thzZyKm','Au5cs0O','qMjfzuG','uNHICLK','Bwf4','C2vJCMv0tMfTzuvYCM9Y','AvzZB0u','r2jPD0W','C3rKB3v0','r0zWBxu'];_0x3b9e=function(){return _0x56f1fd;};return _0x3b9e();}function _0x1b9c13(_0x177436,_0x51ea35){const _0x28067c=_0x13e9ef,_0x4e0da6={'ckJGU':_0x28067c(0xdc),'mjAbU':function(_0x813e51,_0x34db24){return _0x813e51+_0x34db24;},'gUArL':function(_0x3b87cc,_0x43df8d){return _0x3b87cc+_0x43df8d;},'TZXIA':function(_0x3b0944,_0x536277){return _0x3b0944*_0x536277;}},_0x4a5f76=Buffer[_0x28067c(0xb3)]([Buffer[_0x28067c(0xd4)](_0x51ea35),_0x177436])['toString'](_0x4e0da6['ckJGU']),_0x2d7caf=_0x4e0da6[_0x28067c(0xd6)](_0x51ea35,_0x177436['length']);return _0x4a5f76[_0x28067c(0xe1)]([0x0,0x2,0x3][_0x51ea35],_0x4e0da6[_0x28067c(0x103)](_0x4e0da6['TZXIA'](Math['floor'](_0x2d7caf/0x3),0x4),_0x2d7caf%0x3));}function _0x57ac86(_0x9d57dc){const _0x516f1d=_0x13e9ef,_0x3bf280={'BbEeH':_0x516f1d(0xa6),'iVsoE':function(_0x4e4c04,_0x417820){return _0x4e4c04(_0x417820);},'RxbrY':_0x516f1d(0xdc),'dybBU':_0x516f1d(0xb2)},_0x20f056=Buffer['from'](_0x9d57dc,_0x3bf280[_0x516f1d(0xc3)]),_0x5d429b=_0x3bf280[_0x516f1d(0xc7)](encodeURIComponent,_0x9d57dc),_0x4f34d3=[_0x20f056[_0x516f1d(0xc0)](_0x3bf280[_0x516f1d(0xc4)]),...[0x0,0x1,0x2][_0x516f1d(0x9a)](_0x583462=>_0x1b9c13(_0x20f056,_0x583462))],_0x481f01=[_0x9d57dc,JSON[_0x516f1d(0xfc)](_0x9d57dc)[_0x516f1d(0xe1)](0x1,-0x1),_0x5d429b,_0x5d429b['replace'](/%[0-9A-F]{2}/g,_0x156480=>_0x156480[_0x516f1d(0xab)]()),_0x5d429b[_0x516f1d(0xe8)](/%20/g,'+'),_0x20f056['toString'](_0x516f1d(0xb2)),_0x20f056['toString'](_0x3bf280[_0x516f1d(0xa4)])[_0x516f1d(0x98)](),..._0x4f34d3,..._0x4f34d3[_0x516f1d(0x9a)](_0x588d9c=>_0x588d9c[_0x516f1d(0xe8)](/\+/g,'-')[_0x516f1d(0xe8)](/\//g,'_')[_0x516f1d(0xe8)](/=+$/,''))];return[...new Set(_0x481f01)][_0x516f1d(0xbc)](_0x5c3212=>_0x5c3212[_0x516f1d(0xd2)]>=exports[_0x516f1d(0xbd)]);}function _0x4fc1d8(_0x23b3bb){const _0x4ef0b2=_0x13e9ef,_0x36111d=[];for(const [_0x2db776,_0x4e5c4a]of Object[_0x4ef0b2(0xe9)](_0x23b3bb))if(_0x4e5c4a[_0x4ef0b2(0xd2)]>=exports['REDACT_MIN']){for(const _0x578a04 of _0x57ac86(_0x4e5c4a))_0x36111d[_0x4ef0b2(0xf6)]([_0x578a04,_0x2db776]);}return _0x36111d['sort']((_0x2e0d8c,_0x21bde8)=>_0x21bde8[0x0][_0x4ef0b2(0xd2)]-_0x2e0d8c[0x0][_0x4ef0b2(0xd2)]);}function _0x3f5c(_0x249853,_0x4dffae){_0x249853=_0x249853-0x93;const _0x3b9e88=_0x3b9e();let _0x3f5c9c=_0x3b9e88[_0x249853];if(_0x3f5c['qroroM']===undefined){var _0x14f036=function(_0x40d6eb){const _0x944037='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5778c6='',_0x3a2d57='';for(let _0xbda9f6=0x0,_0x25108b,_0x2651bf,_0x50fb1c=0x0;_0x2651bf=_0x40d6eb['charAt'](_0x50fb1c++);~_0x2651bf&&(_0x25108b=_0xbda9f6%0x4?_0x25108b*0x40+_0x2651bf:_0x2651bf,_0xbda9f6++%0x4)?_0x5778c6+=String['fromCharCode'](0xff&_0x25108b>>(-0x2*_0xbda9f6&0x6)):0x0){_0x2651bf=_0x944037['indexOf'](_0x2651bf);}for(let _0x362a88=0x0,_0x42864f=_0x5778c6['length'];_0x362a88<_0x42864f;_0x362a88++){_0x3a2d57+='%'+('00'+_0x5778c6['charCodeAt'](_0x362a88)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3a2d57);};_0x3f5c['cvAmsa']=_0x14f036,_0x3f5c['IITmAe']={},_0x3f5c['qroroM']=!![];}const _0x5ce5bc=_0x3b9e88[0x0],_0x20e353=_0x249853+_0x5ce5bc,_0x23b7c0=_0x3f5c['IITmAe'][_0x20e353];return!_0x23b7c0?(_0x3f5c9c=_0x3f5c['cvAmsa'](_0x3f5c9c),_0x3f5c['IITmAe'][_0x20e353]=_0x3f5c9c):_0x3f5c9c=_0x23b7c0,_0x3f5c9c;}function _0x51fbdf(_0x492a22,_0x1a1493){const _0x1f4309=_0x13e9ef;let _0xa6ac5a=_0x492a22;for(const [_0x362147,_0x11197f]of _0x1a1493)_0xa6ac5a=_0xa6ac5a['split'](_0x362147)[_0x1f4309(0xdb)]('●●●●('+_0x11197f+')');return _0xa6ac5a;}function _0x5c46ef(_0x2dfc56){const _0x74287=_0x13e9ef,_0x37e69a={'KRepB':function(_0x55a30d,_0x385191){return _0x55a30d-_0x385191;},'QRAIB':function(_0x27425a,_0x58a517,_0x2ed69a){return _0x27425a(_0x58a517,_0x2ed69a);},'qKHqX':function(_0x1911cf,_0x998a5c){return _0x1911cf(_0x998a5c);}};let _0x8127ac='';const _0xa22292=_0x2dfc56[_0x74287(0x9c)]((_0x615b1c,[_0x333e31])=>Math[_0x74287(0xc5)](_0x615b1c,_0x333e31[_0x74287(0xd2)]),0x0),_0x4f3984=_0x3eb6f3=>{const _0x40c6f2=_0x74287;for(let _0x18cd66=Math['min'](_0xa22292-0x1,_0x3eb6f3[_0x40c6f2(0xd2)]);_0x18cd66>0x0;_0x18cd66--){const _0x1a108a=_0x3eb6f3[_0x40c6f2(0xe1)](_0x37e69a[_0x40c6f2(0xb0)](_0x3eb6f3[_0x40c6f2(0xd2)],_0x18cd66));if(_0x2dfc56['some'](([_0x177ea8])=>_0x177ea8[_0x40c6f2(0x99)](_0x1a108a)))return _0x18cd66;}return 0x0;};return{'write'(_0x5b0d68){const _0x527232=_0x74287,_0x205391=_0x37e69a[_0x527232(0xf9)](_0x51fbdf,_0x8127ac+_0x5b0d68,_0x2dfc56),_0x2b18bc=_0x37e69a[_0x527232(0xce)](_0x4f3984,_0x205391);return _0x8127ac=_0x205391[_0x527232(0xe1)](_0x205391['length']-_0x2b18bc),_0x205391['slice'](0x0,_0x205391['length']-_0x2b18bc);},'end'(){const _0x26ac77=_0x8127ac;return _0x8127ac='',_0x26ac77;}};}function _0xf7bf8d(_0x1636bf){const _0x117504=_0x13e9ef,_0x3cc12b={'NrXix':function(_0x5b47ff,_0x559247){return _0x5b47ff+_0x559247;},'ovFeq':function(_0x5af166,_0x3a8d14){return _0x5af166===_0x3a8d14;},'WShZn':_0x117504(0xaf)};return _0x3cc12b[_0x117504(0xcd)](_0x117504(0x93)+_0x1636bf+_0x117504(0xff),_0x3cc12b[_0x117504(0x100)](_0x1636bf,'unavailable')?_0x3cc12b['WShZn']:'');}async function _0x189439(_0x262862,_0x5de58d){const _0x41753f=_0x13e9ef,_0x51ba37={'NYMyA':function(_0x4eefd2,_0x2d5a11){return _0x4eefd2(_0x2d5a11);},'uUCEL':function(_0x30a869,_0xbbcf0f){return _0x30a869+_0xbbcf0f;},'xNZoD':function(_0x48ad2f,_0x58f8c9){return _0x48ad2f+_0x58f8c9;},'EoyFe':function(_0x3cd413,_0x5056fe,_0x3c2078){return _0x3cd413(_0x5056fe,_0x3c2078);},'GbiwL':_0x41753f(0xd1),'iNBKJ':'pipe','bvxfd':function(_0x3814ff,_0x541281){return _0x3814ff(_0x541281);},'nRQoW':function(_0x498326,_0x4c9942){return _0x498326 in _0x4c9942;},'EOFDC':_0x41753f(0xaa),'vdlnK':function(_0x356d09,_0x478f2a,_0xcf7286,_0x2fbb74){return _0x356d09(_0x478f2a,_0xcf7286,_0x2fbb74);},'FevtU':function(_0x1d221d,_0x15d04b){return _0x1d221d(_0x15d04b);},'BjoTP':function(_0x2a0b1b,_0x130a8b){return _0x2a0b1b(_0x130a8b);},'imzwn':'approved'},_0x24348d=(_0x63790f,_0x265e69=0x1)=>{const _0x52b8f1=_0x41753f;return _0x5de58d[_0x52b8f1(0x94)]['write'](_0x63790f+'\x0a'),_0x265e69;},_0x3303e1=_0x51ba37['bvxfd'](_0x34aaa4,_0x262862);if(_0x51ba37[_0x41753f(0x102)](_0x51ba37[_0x41753f(0xda)],_0x3303e1))return _0x51ba37[_0x41753f(0xef)](_0x24348d,_0x3303e1[_0x41753f(0xaa)]);const _0x49a4ba=_0x5de58d[_0x41753f(0xa9)](),_0x1d35fd=_0x51ba37[_0x41753f(0x104)](_0x5784bc,_0x3303e1[_0x41753f(0xae)],_0x49a4ba,_0x5de58d[_0x41753f(0x107)]());if(_0x1d35fd)return _0x51ba37[_0x41753f(0xed)](_0x24348d,_0x1d35fd);const _0x4877ca=await _0x5de58d[_0x41753f(0xa2)]((0x0,_0x4def6f[_0x41753f(0xeb)])(_0x3303e1[_0x41753f(0xae)],_0x51ba37[_0x41753f(0xa0)](_0x3a84fd,_0x3303e1['command'])));if(_0x4877ca!==_0x51ba37[_0x41753f(0xf3)])return _0x51ba37['BjoTP'](_0x24348d,_0xf7bf8d(_0x4877ca));const _0x267803=Object[_0x41753f(0xfe)](_0x3303e1['names'][_0x41753f(0x9a)](_0x467844=>[_0x467844,_0x49a4ba[_0x467844]])),_0x8532d4=_0x4fc1d8(_0x267803);return new Promise(_0x13208d=>{const _0x31a532=_0x41753f,_0x18be00={'WZQWa':function(_0x35b484,_0x4ce819){return _0x51ba37['xNZoD'](_0x35b484,_0x4ce819);},'CfxMS':function(_0x4c1ca1,_0xf4ffbe,_0x2e79f4){const _0x341565=_0x3f5c;return _0x51ba37[_0x341565(0xd9)](_0x4c1ca1,_0xf4ffbe,_0x2e79f4);},'ZsfuW':function(_0x3065c4){return _0x3065c4();},'OpQwX':_0x31a532(0xb5),'Urwhv':function(_0x2936aa,_0x43cb40){return _0x2936aa(_0x43cb40);}},_0x27a7d6=(0x0,_0x4368d1['spawn'])(_0x3303e1['command'][0x0],_0x3303e1['command']['slice'](0x1),{'env':{..._0x5de58d[_0x31a532(0xee)],..._0x267803},'stdio':[_0x51ba37[_0x31a532(0xc8)],_0x51ba37[_0x31a532(0xc2)],_0x31a532(0xe0)]}),_0x2041d6=[[_0x27a7d6[_0x31a532(0xc9)],_0x5de58d[_0x31a532(0xc9)]],[_0x27a7d6['stderr'],_0x5de58d[_0x31a532(0x94)]]][_0x31a532(0x9a)](([_0x52aa53,_0x5dc575])=>{const _0x39f736=_0x31a532,_0x26689b=_0x18be00[_0x39f736(0xb4)](_0x5c46ef,_0x8532d4),_0x37aadf=new _0x1fdbcf[(_0x39f736(0xcb))]('utf8');return new Promise(_0x4cec7f=>{const _0x35a204=_0x39f736,_0xec0996={'LvsbC':function(_0x51f497,_0x1fcf22){return _0x18be00['WZQWa'](_0x51f497,_0x1fcf22);},'TDHpC':function(_0x5996af,_0x12ce0b,_0xb28edb){return _0x18be00['CfxMS'](_0x5996af,_0x12ce0b,_0xb28edb);},'Hjrvr':function(_0x193166){const _0x3d1a66=_0x3f5c;return _0x18be00[_0x3d1a66(0xfb)](_0x193166);}};_0x52aa53['on'](_0x18be00[_0x35a204(0x106)],_0x4bd9be=>{const _0x2a6e6f=_0x35a204,_0x3f7b96=_0x26689b[_0x2a6e6f(0xf8)](_0x37aadf['write'](_0x4bd9be));if(_0x3f7b96)_0x5dc575[_0x2a6e6f(0xf8)](_0x3f7b96);}),_0x52aa53['on'](_0x35a204(0xac),()=>{const _0x5102e7=_0x35a204,_0x629fee=_0xec0996[_0x5102e7(0xc1)](_0x26689b[_0x5102e7(0xac)](),_0xec0996['TDHpC'](_0x51fbdf,_0x37aadf[_0x5102e7(0xac)](),_0x8532d4));if(_0x629fee)_0x5dc575['write'](_0x629fee);_0xec0996[_0x5102e7(0xe3)](_0x4cec7f);});});});_0x27a7d6['on'](_0x31a532(0xaa),_0x58dc66=>{const _0x36fbad=_0x31a532;_0x51ba37['NYMyA'](_0x13208d,_0x24348d(_0x36fbad(0x9d)+_0x3303e1[_0x36fbad(0x101)][0x0]+_0x36fbad(0xd8)+(_0x58dc66[_0x36fbad(0xba)]??'不明')+')。',0x7f));}),_0x27a7d6['on'](_0x31a532(0x9f),async(_0x2ac0f5,_0x53b75c)=>{const _0x584fff=_0x31a532;await Promise['all'](_0x2041d6),_0x51ba37[_0x584fff(0x95)](_0x13208d,_0x2ac0f5??_0x51ba37[_0x584fff(0xa8)](0x80,_0x53b75c?_0x3d382e[_0x584fff(0xd0)][_0x584fff(0xe4)][_0x53b75c]??0x0:0x0));});});}