@funny-booth/agent-core 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/launcher.js +1 -1
- package/dist/prompt.js +61 -0
- package/dist/vault.js +115 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const _0x14b8ca=_0x52d5;(function(_0x558655,_0x457d73){const _0x3d4173=_0x52d5,_0x582558=_0x558655();while(!![]){try{const _0x2e9b33=parseInt(_0x3d4173(0x98))/0x1*(parseInt(_0x3d4173(0xb9))/0x2)+parseInt(_0x3d4173(0x99))/0x3+parseInt(_0x3d4173(0xad))/0x4*(-parseInt(_0x3d4173(0xf3))/0x5)+parseInt(_0x3d4173(0xf2))/0x6*(parseInt(_0x3d4173(0xd0))/0x7)+-parseInt(_0x3d4173(0xa4))/0x8+-parseInt(_0x3d4173(0xc4))/0x9*(-parseInt(_0x3d4173(0xa6))/0xa)+parseInt(_0x3d4173(0x93))/0xb*(-parseInt(_0x3d4173(0xc0))/0xc);if(_0x2e9b33===_0x457d73)break;else _0x582558['push'](_0x582558['shift']());}catch(_0x355a86){_0x582558['push'](_0x582558['shift']());}}}(_0xb6c2,0x19eab));Object[_0x14b8ca(0xcc)](exports,_0x14b8ca(0xcb),{'value':!![]});const mcp_js_1=require(_0x14b8ca(0xa5)),stdio_js_1=require(_0x14b8ca(0xd2)),zod_1=require(_0x14b8ca(0x9c)),child_process_1=require(_0x14b8ca(0x9e)),fs_1=require('fs'),os_1=require('os'),path_1=require(_0x14b8ca(0xfd)),CONFIG_DIR=(0x0,path_1[_0x14b8ca(0xd7)])((0x0,os_1[_0x14b8ca(0xb3)])(),_0x14b8ca(0xee),_0x14b8ca(0xa3)),SETUP_TOKEN_FILE=(0x0,path_1[_0x14b8ca(0xd7)])(CONFIG_DIR,_0x14b8ca(0xda)),AUTH_FILE=(0x0,path_1[_0x14b8ca(0xd7)])(CONFIG_DIR,_0x14b8ca(0xb5)),AUTH_FILE_TMP=(0x0,path_1[_0x14b8ca(0xd7)])(CONFIG_DIR,_0x14b8ca(0xf4)),rawArgs=process['argv'][_0x14b8ca(0xc8)](0x2),isAuthCommand=rawArgs[0x0]===_0x14b8ca(0x94),parsedArgs=isAuthCommand?rawArgs[_0x14b8ca(0xc8)](0x1):rawArgs;let cliPortalUrl='',cliToken='';function _0x52d5(_0x56f7c8,_0x184cda){_0x56f7c8=_0x56f7c8-0x8d;const _0xb6c2b6=_0xb6c2();let _0x52d56a=_0xb6c2b6[_0x56f7c8];if(_0x52d5['ESwjpm']===undefined){var _0x57d5bf=function(_0x47c2fd){const _0x585b00='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5bf08c='',_0x5bde77='';for(let _0x4890a3=0x0,_0x1cf7ff,_0x49be3e,_0x380670=0x0;_0x49be3e=_0x47c2fd['charAt'](_0x380670++);~_0x49be3e&&(_0x1cf7ff=_0x4890a3%0x4?_0x1cf7ff*0x40+_0x49be3e:_0x49be3e,_0x4890a3++%0x4)?_0x5bf08c+=String['fromCharCode'](0xff&_0x1cf7ff>>(-0x2*_0x4890a3&0x6)):0x0){_0x49be3e=_0x585b00['indexOf'](_0x49be3e);}for(let _0x57828d=0x0,_0x5f1b50=_0x5bf08c['length'];_0x57828d<_0x5f1b50;_0x57828d++){_0x5bde77+='%'+('00'+_0x5bf08c['charCodeAt'](_0x57828d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5bde77);};_0x52d5['HAPqVh']=_0x57d5bf,_0x52d5['eVtXRy']={},_0x52d5['ESwjpm']=!![];}const _0xce13e3=_0xb6c2b6[0x0],_0x43e064=_0x56f7c8+_0xce13e3,_0x37824c=_0x52d5['eVtXRy'][_0x43e064];return!_0x37824c?(_0x52d56a=_0x52d5['HAPqVh'](_0x52d56a),_0x52d5['eVtXRy'][_0x43e064]=_0x52d56a):_0x52d56a=_0x37824c,_0x52d56a;}for(const arg of parsedArgs){const eqIdx=arg[_0x14b8ca(0x97)]('=');if(eqIdx===-0x1)continue;const key=arg[_0x14b8ca(0xc8)](0x0,eqIdx),val=arg[_0x14b8ca(0xc8)](eqIdx+0x1);if(key===_0x14b8ca(0xe0))cliPortalUrl=val;if(key===_0x14b8ca(0xd6))cliToken=val;}function readAuthData(){const _0x43b7e6=_0x14b8ca,_0x530e3d={'PWGyU':'utf-8'};if(!(0x0,fs_1['existsSync'])(AUTH_FILE))return null;try{return JSON[_0x43b7e6(0x9d)]((0x0,fs_1[_0x43b7e6(0x9b)])(AUTH_FILE,_0x530e3d['PWGyU']));}catch{return null;}}function isJwtExpired(_0xfb7117){const _0x4a35d9=_0x14b8ca,_0x4aa02f={'uboUu':function(_0x4dc52a,_0x47972c){return _0x4dc52a<_0x47972c;},'JCLwJ':function(_0x14e776,_0x1560c4){return _0x14e776+_0x1560c4;}};try{const _0x2ca183=JSON['parse'](Buffer[_0x4a35d9(0xd4)](_0xfb7117[_0x4a35d9(0xf8)]('.')[0x1],'base64url')[_0x4a35d9(0xdf)]());return _0x4aa02f['uboUu'](_0x2ca183[_0x4a35d9(0xe2)]*0x3e8,_0x4aa02f[_0x4a35d9(0x8e)](Date[_0x4a35d9(0xaa)](),0xea60));}catch{return!![];}}function _0xb6c2(){const _0x2e4a8a=['CMvHzezPBgvtEw5J','EM9K','CgfYC2u','y2HPBgrFChjVy2vZCW','BwTKAxjtEw5J','ue9tva','Bg9Hzf9RBM93BgvKz2u','EhjzBfi','ywDLBNqTy29Yzq','mti3ntm3nMr0whDcAG','qg1VzgvSy29UDgv4DhbYB3rVy29Sl3nKAY9Zzxj2zxiVBwnWlMPZ','mtbzyM1xu1m','Ewrnwfi','D3jPDgu','BwvZC2fNzq','BM93','y29UBMvJDa','jYdJGAVLR77LV5ZJGzNJGOTlBM93BgvKz2xJGyZOPOVJGAtJGyVJGORJGB7JGzVJGPpJGAFJGzFJGz/JGilNRQhNKiBOGixJGAVJGyRLLy/JGytLKiJJGO/JGzVJGy/JGAdJGzxJGytJGii','mJq4CxHhCMjN','4PYfioIQJEIOVoobJowUJos6HUobL+obVUobL+obN+oaGUocQoodVoocUoocP+odS+odIoocKUs9V+EuQoobP+obJEobVUobMEoaGGO','Aw5ZDgfSBf9JB21Tyw5K','u3rKAw9tzxj2zxjuCMfUC3bVCNq','BgLZDf9Ty3bZ','44kK44oZ44k544oi44o844oR5AsX5PwxoGO','Ag9TzwrPCG','twnWu2vYDMvY','yxv0Ac5QC29U','DhvhC20','yMLUza','u0rTzKy','mtHzC2f6Dg8','rMf0ywW6ia','ANnVBG','DuLwA1i','tunqifnLCNzLCIbZDgfYDgvKcG','BwLU','vLDLqxC','oty0mty0EerkrKn5','zgvZy3jPyMu','mc4XlJa','Aw5ZDgfSBf9Ty3a','nZi2mdnQwhDJt3C','C3rKzxjY','C3rYAw5NAwz5','yxbWBgLJyxrPB24VANnVBG','C2XPy2u','55kW5Akd5Asj5PwW77Yi5l6loIb7r01bsuXFve9lru46icD4EhGNFE+8Iq','qvbj44kO44oP44o8oIa','x19LC01VzhvSzq','zgvMAw5LuhjVCgvYDhK','6k2M5zgkoIdOQO3OQlZMG4xLOlhJGyZOPOVJGAtJGyVJGORJGB7JGzVJGPpJGijSB2fKx2TUB3DSzwrNzEETIEobRUodHoodVoodQ+obR+s9V+EuQoobP+obJEobVUobM+ocK+oaGGO','vM5mBMC','qMvHCMvYia','mta1EK9Sq2fL','EhHut20','qg1VzgvSy29UDgv4DhbYB3rVy29Sl3nKAY9Zzxj2zxiVC3rKAw8UANm','zxHLyW','zNjVBq','Bhndyw4','ls10B2TLBG','AM9PBG','C3rYAw5N','zxjYB3i','C2v0DxbFDg9Rzw4','44kO44oP44o8oIa','y2f0y2G','A3fnzhi','6kQn6kI844kO44oP44o8oIdJGRVJG4pJG4JJGQlJG4pJG5FJGyZLROZKUOBJGzFJGABJGytJGB7JGzVJGPpJGilNRQhNKiBOGixJGAVPGkpNTAhJGzFJGABJGy/JGAdJGzxJGytJGii','Dg9tDhjPBMC','ls1WB3j0ywWTDxjS','l2fWAs9Ty3bZ','zxHW','DxrMltG','l2fWAs9HDxrOl2nOyw5Nzs1WyxnZD29Yza','Cg9YDgfSx3vYBa','DLHZu1e','6kQn6kI844kO44oP44o8oIdJG4JJG7ZJGQ/JG7pJGyZNHkhLIRNJGyVJGihJGRxJG7ZJG5dJG7ZJGAVMJQxNTPRJGAFJGy3JGB7JGzVJGPmk','zKXjzKW','zxHPDa','Dgv4Da','D3jPDgvgAwXLu3LUyW','BMfTzq','s3bpv3G','lMnVBMzPzW','ufndr2G','5PAW44gx44ge44or44k544oV44o844oj77YiooAwH+wTL+s7PEs4IU+8Iq','uvbOq0O','odm0mdzxA2vKCKy','mtK5mevTthj6wq','yxv0Ac5QC29UlNrTCa','y0nrA3O','y2HHBMDLx3bHC3n3B3jK','CMvUyw1Lu3LUyW','C3bSAxq','l2fWAs9HDxrOl2v4y2HHBMDL','l2fWAs9RBM93BgvKz2u/A2v5D29Yzd0','C3rHDhvZ','swLnyxO','Cgf0Aa','44kK44oZ44k544oi44o844oR44gz44kltunq44gUsuq','sKnmD0O','qNDsveK','y29UDgvUDa','s25VD2XLzgDL44kT44o844oV44o844oj77Yi5l6loIbau2fSzxncB3rF6kAb5lU25A6A576P77Yj','DKztu2e','mZn6weTjBxu','yxv0Aa','Cg9YDgfSvxjS','AND0','Aw5KzxHpzG','mtu4odDkBxjXr3u','nte1mtG3y21Qvenh','zKPHBNa'];_0xb6c2=function(){return _0x2e4a8a;};return _0xb6c2();}async function exchangeToken(_0x3862e4,_0x2fe62b){const _0x13dd37=_0x14b8ca;try{const _0xc0d3da=await fetch(_0x3862e4+_0x13dd37(0xf9),{'method':_0x13dd37(0xa0),'headers':{'Content-Type':_0x13dd37(0xc7)},'body':JSON['stringify']({'setup_token':_0x2fe62b})});if(!_0xc0d3da['ok'])return null;const _0x830d=await _0xc0d3da[_0x13dd37(0xbb)]();return _0x830d[_0x13dd37(0x96)]??null;}catch{return null;}}function saveAuthData(_0x169b83){const _0x28d74f=_0x14b8ca,_0x2f1841={'kqMdr':_0x28d74f(0xe3)};if(!(0x0,fs_1['existsSync'])(CONFIG_DIR))(0x0,fs_1[_0x28d74f(0x9f)])(CONFIG_DIR,{'recursive':!![],'mode':0x1c0});(0x0,fs_1[_0x28d74f(0xeb)])(AUTH_FILE_TMP,JSON['stringify'](_0x169b83),{'encoding':_0x2f1841[_0x28d74f(0xdd)],'mode':0x180}),(0x0,fs_1[_0x28d74f(0xf7)])(AUTH_FILE_TMP,AUTH_FILE);}async function getValidJwt(){const _0x2b23de=_0x14b8ca,_0x157baa={'tuGsm':function(_0x1bdabb){return _0x1bdabb();},'fLIfL':_0x2b23de(0xe3),'IiMaz':function(_0x1e828d,_0x185917){return _0x1e828d(_0x185917);}},_0x19cbbd=_0x157baa[_0x2b23de(0xb6)](readAuthData);if(!_0x19cbbd)return null;if(!isJwtExpired(_0x19cbbd['jwt']))return{'jwt':_0x19cbbd[_0x2b23de(0x96)],'portalUrl':_0x19cbbd['portal_url']};if(!(0x0,fs_1['existsSync'])(SETUP_TOKEN_FILE))return null;const _0x2b01ae=(0x0,fs_1[_0x2b23de(0x9b)])(SETUP_TOKEN_FILE,_0x157baa[_0x2b23de(0xe8)])['trim'](),_0x435126=await exchangeToken(_0x19cbbd[_0x2b23de(0xe5)],_0x2b01ae);if(!_0x435126)return null;return _0x157baa[_0x2b23de(0xfc)](saveAuthData,{'jwt':_0x435126,'portal_url':_0x19cbbd[_0x2b23de(0xe5)]}),{'jwt':_0x435126,'portalUrl':_0x19cbbd[_0x2b23de(0xe5)]};}async function runAuthCommand(){const _0x41d096=_0x14b8ca,_0x256751={'uIVkR':function(_0x23cf7f,_0x40b395){return _0x23cf7f||_0x40b395;},'KpOWx':'エラー:\x20--portal-url\x20と\x20--token\x20が必要です\x0a','SDmfF':_0x41d096(0xe7),'VnLng':_0x41d096(0xe3),'lsCan':function(_0x94e07d,_0x3fc966){return _0x94e07d(_0x3fc966);},'ydMXR':_0x41d096(0xae)};_0x256751[_0x41d096(0xbc)](!cliPortalUrl,!cliToken)&&(process[_0x41d096(0xc5)][_0x41d096(0xa8)](_0x256751[_0x41d096(0xed)]),process['exit'](0x1));const _0x3de712=await exchangeToken(cliPortalUrl,cliToken);!_0x3de712&&(process[_0x41d096(0xc5)]['write'](_0x256751[_0x41d096(0xb8)]),process[_0x41d096(0xe9)](0x1));if(!(0x0,fs_1['existsSync'])(CONFIG_DIR))(0x0,fs_1[_0x41d096(0x9f)])(CONFIG_DIR,{'recursive':!![],'mode':0x1c0});(0x0,fs_1[_0x41d096(0xeb)])(SETUP_TOKEN_FILE,cliToken,{'encoding':_0x256751[_0x41d096(0xce)],'mode':0x180}),_0x256751[_0x41d096(0xd5)](saveAuthData,{'jwt':_0x3de712,'portal_url':cliPortalUrl}),process['stdout']['write'](_0x256751[_0x41d096(0xa7)]);}let PORTAL_URL='',JWT='';const AUTH_ERROR={'content':[{'type':'text','text':_0x14b8ca(0xde)}]},server=new mcp_js_1[(_0x14b8ca(0xb4))]({'name':_0x14b8ca(0xa3),'version':_0x14b8ca(0xc2)}),tool=server['tool'][_0x14b8ca(0xb7)](server);tool(_0x14b8ca(0xa1),{'keyword':zod_1['z'][_0x14b8ca(0xd8)]()['describe'](_0x14b8ca(0x91))},async({keyword:_0x333b0f})=>{const _0x46bfc7=_0x14b8ca,_0x4d8239={'xrYlR':function(_0x3a82e6,_0x4b1594){return _0x3a82e6||_0x4b1594;},'cCQkz':function(_0x4f7af8,_0x5db63f){return _0x4f7af8(_0x5db63f);},'VWeAw':_0x46bfc7(0xea)};if(_0x4d8239[_0x46bfc7(0xa2)](!JWT,!PORTAL_URL))return AUTH_ERROR;const _0xcbc7f9=await fetch(PORTAL_URL+_0x46bfc7(0xfa)+_0x4d8239[_0x46bfc7(0xf5)](encodeURIComponent,_0x333b0f),{'headers':{'Authorization':_0x46bfc7(0xcf)+JWT}});if(!_0xcbc7f9['ok'])return{'content':[{'type':_0x4d8239[_0x46bfc7(0xbf)],'text':_0x46bfc7(0xca)+_0xcbc7f9['status']}]};const _0x577fec=await _0xcbc7f9[_0x46bfc7(0xbb)]();if(_0x577fec[_0x46bfc7(0xd9)]||!_0x577fec[_0x46bfc7(0x90)])return{'content':[{'type':_0x4d8239['VWeAw'],'text':'キーワード\x20\x27'+_0x333b0f+_0x46bfc7(0xac)}]};return{'content':[{'type':_0x46bfc7(0xea),'text':_0x577fec[_0x46bfc7(0x90)]}]};}),tool(_0x14b8ca(0xb1),{},async()=>{const _0x3a6adc=_0x14b8ca;if(!JWT||!PORTAL_URL)return AUTH_ERROR;const _0xbe94f6=await fetch(PORTAL_URL+_0x3a6adc(0xe1),{'headers':{'Authorization':'Bearer\x20'+JWT}});if(!_0xbe94f6['ok'])return{'content':[{'type':_0x3a6adc(0xea),'text':_0x3a6adc(0xca)+_0xbe94f6[_0x3a6adc(0xfb)]}]};const _0x24b3a0=await _0xbe94f6['json']();return{'content':[{'type':_0x3a6adc(0xea),'text':JSON[_0x3a6adc(0xc6)](_0x24b3a0,null,0x2)}]};}),tool(_0x14b8ca(0xc3),{'mcp_id':zod_1['z'][_0x14b8ca(0xd8)]()[_0x14b8ca(0xc1)](_0x14b8ca(0x8d)),'env_vars':zod_1['z']['record'](zod_1['z'][_0x14b8ca(0xd8)]())['optional']()[_0x14b8ca(0xc1)](_0x14b8ca(0xc9))},async({mcp_id:_0x31da26,env_vars:_0x2ac0bf})=>{const _0x1bf560=_0x14b8ca,_0xcb00ec={'BwRTI':'text','QPhCJ':'インストールコマンドを取得できませんでした'};if(!JWT||!PORTAL_URL)return AUTH_ERROR;const _0x34becc=await fetch(PORTAL_URL+'/api/mcps/install',{'method':_0x1bf560(0xa0),'headers':{'Authorization':_0x1bf560(0xcf)+JWT,'Content-Type':_0x1bf560(0xc7)},'body':JSON[_0x1bf560(0xc6)]({'mcp_id':_0x31da26,'env_vars':_0x2ac0bf})});if(!_0x34becc['ok'])return{'content':[{'type':'text','text':_0x1bf560(0xca)+_0x34becc[_0x1bf560(0xfb)]}]};const _0x220b71=await _0x34becc['json']();if(!_0x220b71['install_command'])return{'content':[{'type':_0xcb00ec[_0x1bf560(0x8f)],'text':_0xcb00ec[_0x1bf560(0xf1)]}]};return new Promise(_0x599084=>{const _0x2d41f8=_0x1bf560,_0x494e2d={'xxTOm':function(_0x3fc60a,_0x1ca231){return _0x3fc60a(_0x1ca231);}};(0x0,child_process_1[_0x2d41f8(0xd3)])(_0x220b71[_0x2d41f8(0xaf)],(_0x3eddd3,_0x41d265,_0xd1f01d)=>{const _0x2025be=_0x2d41f8;if(_0x3eddd3){_0x494e2d[_0x2025be(0xd1)](_0x599084,{'content':[{'type':_0x2025be(0xea),'text':_0x2025be(0xb2)+(_0xd1f01d||_0x3eddd3[_0x2025be(0xa9)])}]});return;}_0x599084({'content':[{'type':'text','text':_0x220b71[_0x2025be(0xec)]+'\x20のインストールが完了しました。Claude\x20Codeを再起動してください。\x0a\x0a実行コマンド:\x20'+_0x220b71[_0x2025be(0xaf)]}]});});});}),tool(_0x14b8ca(0xf6),{'current_password':zod_1['z'][_0x14b8ca(0xd8)]()[_0x14b8ca(0xc1)]('現在のパスワード'),'new_password':zod_1['z'][_0x14b8ca(0xd8)]()[_0x14b8ca(0xbe)](0x8)[_0x14b8ca(0xc1)](_0x14b8ca(0xf0))},async({current_password:_0x139408,new_password:_0x3ba540})=>{const _0x529a8e=_0x14b8ca,_0x27e91a={'fJanp':function(_0x25a01c,_0x33711e){return _0x25a01c||_0x33711e;},'vFSSa':function(_0x474c61,_0x2e76f1,_0x211987){return _0x474c61(_0x2e76f1,_0x211987);}};if(_0x27e91a[_0x529a8e(0x9a)](!JWT,!PORTAL_URL))return AUTH_ERROR;const _0x392bc4=await _0x27e91a[_0x529a8e(0x92)](fetch,PORTAL_URL+_0x529a8e(0xe4),{'method':_0x529a8e(0xa0),'headers':{'Authorization':'Bearer\x20'+JWT,'Content-Type':_0x529a8e(0xc7)},'body':JSON[_0x529a8e(0xc6)]({'current_password':_0x139408,'new_password':_0x3ba540})});if(!_0x392bc4['ok']){const _0x5763d2=await _0x392bc4[_0x529a8e(0xbb)]();return{'content':[{'type':_0x529a8e(0xea),'text':_0x529a8e(0xdb)+(_0x5763d2[_0x529a8e(0xd9)]??_0x392bc4['status'])}]};}return{'content':[{'type':_0x529a8e(0xea),'text':'パスワードを変更しました'}]};});async function main(){const _0x38d231=_0x14b8ca,_0x1e755f={'vXsSQ':function(_0x18bf02){return _0x18bf02();},'PSCGh':_0x38d231(0xbd)};if(isAuthCommand){await runAuthCommand();return;}if(process.env.TOOL_TOKEN&&process.env.PORTAL_URL)JWT=process.env.TOOL_TOKEN,PORTAL_URL=process.env.PORTAL_URL;else{const _0x5e9f96=await _0x1e755f[_0x38d231(0xe6)](getValidJwt);_0x5e9f96?(JWT=_0x5e9f96['jwt'],PORTAL_URL=_0x5e9f96[_0x38d231(0x95)]):process[_0x38d231(0xc5)][_0x38d231(0xa8)](_0x38d231(0xcd));}const _0x2b0220=new stdio_js_1[(_0x38d231(0xb0))]();await server[_0x38d231(0xab)](_0x2b0220),process[_0x38d231(0xc5)]['write'](_0x1e755f[_0x38d231(0xef)]);}main()[_0x14b8ca(0xdc)](_0x570c47=>{const _0x4977de=_0x14b8ca;process['stderr'][_0x4977de(0xa8)](_0x4977de(0xba)+_0x570c47+'\x0a'),process[_0x4977de(0xe9)](0x1);});
|
|
1
|
+
'use strict';const _0x94ef32=_0x17e7;(function(_0x40c0ae,_0xbb34b0){const _0x45f03e=_0x17e7,_0x3869b3=_0x40c0ae();while(!![]){try{const _0x253454=-parseInt(_0x45f03e(0x1c8))/0x1+parseInt(_0x45f03e(0x1ea))/0x2*(-parseInt(_0x45f03e(0x1f8))/0x3)+parseInt(_0x45f03e(0x1f0))/0x4+parseInt(_0x45f03e(0x1b8))/0x5+parseInt(_0x45f03e(0x21a))/0x6*(parseInt(_0x45f03e(0x205))/0x7)+parseInt(_0x45f03e(0x1d5))/0x8*(parseInt(_0x45f03e(0x1df))/0x9)+-parseInt(_0x45f03e(0x19a))/0xa*(parseInt(_0x45f03e(0x1c9))/0xb);if(_0x253454===_0xbb34b0)break;else _0x3869b3['push'](_0x3869b3['shift']());}catch(_0x237a57){_0x3869b3['push'](_0x3869b3['shift']());}}}(_0x38bb,0xa9108));Object[_0x94ef32(0x1d7)](exports,_0x94ef32(0x19c),{'value':!![]});const mcp_js_1=require(_0x94ef32(0x214)),stdio_js_1=require(_0x94ef32(0x1e4)),zod_1=require(_0x94ef32(0x1de)),child_process_1=require(_0x94ef32(0x1a8)),fs_1=require('fs'),os_1=require('os'),path_1=require(_0x94ef32(0x20f)),vault_1=require(_0x94ef32(0x201)),prompt_1=require(_0x94ef32(0x21c)),CONFIG_DIR=(0x0,path_1['join'])((0x0,os_1[_0x94ef32(0x1ef)])(),'.config','agent-core'),SETUP_TOKEN_FILE=(0x0,path_1[_0x94ef32(0x1c6)])(CONFIG_DIR,_0x94ef32(0x199)),AUTH_FILE=(0x0,path_1[_0x94ef32(0x1c6)])(CONFIG_DIR,_0x94ef32(0x1d3)),AUTH_FILE_TMP=(0x0,path_1['join'])(CONFIG_DIR,_0x94ef32(0x197)),rawArgs=process['argv'][_0x94ef32(0x1d2)](0x2),isAuthCommand=rawArgs[0x0]==='auth',isSecretCommand=rawArgs[0x0]==='secret',parsedArgs=isAuthCommand?rawArgs[_0x94ef32(0x1d2)](0x1):rawArgs;let cliPortalUrl='',cliToken='';for(const arg of parsedArgs){const eqIdx=arg['indexOf']('=');if(eqIdx===-0x1)continue;const key=arg[_0x94ef32(0x1d2)](0x0,eqIdx),val=arg[_0x94ef32(0x1d2)](eqIdx+0x1);if(key===_0x94ef32(0x1ee))cliPortalUrl=val;if(key===_0x94ef32(0x1b9))cliToken=val;}function readAuthData(){const _0x86bac9=_0x94ef32;if(!(0x0,fs_1[_0x86bac9(0x1cc)])(AUTH_FILE))return null;try{return JSON[_0x86bac9(0x1fd)]((0x0,fs_1[_0x86bac9(0x1e6)])(AUTH_FILE,_0x86bac9(0x1db)));}catch{return null;}}function isJwtExpired(_0x419d81){const _0x32cc11=_0x94ef32,_0xcb1bd7={'KDYNL':_0x32cc11(0x1ac),'gScEI':function(_0x135c99,_0x36d0c4){return _0x135c99+_0x36d0c4;}};try{const _0x1a2d3d=JSON[_0x32cc11(0x1fd)](Buffer[_0x32cc11(0x216)](_0x419d81['split']('.')[0x1],_0xcb1bd7[_0x32cc11(0x211)])[_0x32cc11(0x1d0)]());return _0x1a2d3d[_0x32cc11(0x1fe)]*0x3e8<_0xcb1bd7[_0x32cc11(0x1bd)](Date[_0x32cc11(0x1d9)](),0xea60);}catch{return!![];}}async function exchangeToken(_0x422721,_0x1d1014){const _0x4b0647=_0x94ef32,_0x5841ad={'YaESp':function(_0x155dc0,_0x453be8,_0x35b460){return _0x155dc0(_0x453be8,_0x35b460);},'adtgc':_0x4b0647(0x1c4)};try{const _0x748c89=await _0x5841ad[_0x4b0647(0x1c3)](fetch,_0x422721+_0x4b0647(0x1e1),{'method':_0x4b0647(0x203),'headers':{'Content-Type':_0x5841ad['adtgc']},'body':JSON[_0x4b0647(0x1b3)]({'setup_token':_0x1d1014})});if(!_0x748c89['ok'])return null;const _0x370aee=await _0x748c89[_0x4b0647(0x1ed)]();return _0x370aee['jwt']??null;}catch{return null;}}function saveAuthData(_0x59bb8e){const _0x1ba039=_0x94ef32,_0x3989b5={'QrzCv':_0x1ba039(0x1db)};if(!(0x0,fs_1[_0x1ba039(0x1cc)])(CONFIG_DIR))(0x0,fs_1['mkdirSync'])(CONFIG_DIR,{'recursive':!![],'mode':0x1c0});(0x0,fs_1[_0x1ba039(0x1be)])(AUTH_FILE_TMP,JSON[_0x1ba039(0x1b3)](_0x59bb8e),{'encoding':_0x3989b5['QrzCv'],'mode':0x180}),(0x0,fs_1['renameSync'])(AUTH_FILE_TMP,AUTH_FILE);}async function getValidJwt(){const _0x59e8d5=_0x94ef32,_0x5f0e1e={'LzNVV':function(_0x378771){return _0x378771();},'witxN':'utf-8'},_0x5e5a9f=_0x5f0e1e[_0x59e8d5(0x20d)](readAuthData);if(!_0x5e5a9f)return null;if(!isJwtExpired(_0x5e5a9f[_0x59e8d5(0x1a3)]))return{'jwt':_0x5e5a9f[_0x59e8d5(0x1a3)],'portalUrl':_0x5e5a9f[_0x59e8d5(0x1c0)]};if(!(0x0,fs_1[_0x59e8d5(0x1cc)])(SETUP_TOKEN_FILE))return null;const _0x401dd6=(0x0,fs_1[_0x59e8d5(0x1e6)])(SETUP_TOKEN_FILE,_0x5f0e1e[_0x59e8d5(0x212)])[_0x59e8d5(0x1e5)](),_0x33dcc6=await exchangeToken(_0x5e5a9f[_0x59e8d5(0x1c0)],_0x401dd6);if(!_0x33dcc6)return null;return saveAuthData({'jwt':_0x33dcc6,'portal_url':_0x5e5a9f['portal_url']}),{'jwt':_0x33dcc6,'portalUrl':_0x5e5a9f[_0x59e8d5(0x1c0)]};}async function runAuthCommand(){const _0x3fec0a=_0x94ef32,_0x43361c={'vjDpV':function(_0x3085bb,_0xf55d57){return _0x3085bb||_0xf55d57;},'dVNwo':_0x3fec0a(0x1a5),'abazw':_0x3fec0a(0x1cd)};_0x43361c[_0x3fec0a(0x1a0)](!cliPortalUrl,!cliToken)&&(process[_0x3fec0a(0x208)][_0x3fec0a(0x196)](_0x43361c[_0x3fec0a(0x1c7)]),process[_0x3fec0a(0x202)](0x1));const _0x53b905=await exchangeToken(cliPortalUrl,cliToken);!_0x53b905&&(process[_0x3fec0a(0x208)][_0x3fec0a(0x196)](_0x43361c['abazw']),process[_0x3fec0a(0x202)](0x1));if(!(0x0,fs_1[_0x3fec0a(0x1cc)])(CONFIG_DIR))(0x0,fs_1[_0x3fec0a(0x19b)])(CONFIG_DIR,{'recursive':!![],'mode':0x1c0});(0x0,fs_1['writeFileSync'])(SETUP_TOKEN_FILE,cliToken,{'encoding':_0x3fec0a(0x1db),'mode':0x180}),saveAuthData({'jwt':_0x53b905,'portal_url':cliPortalUrl}),process[_0x3fec0a(0x1af)][_0x3fec0a(0x196)](_0x3fec0a(0x1cf));}function resolveToolName(){const _0x327bd4=_0x94ef32,_0x1fe1da={'fHHTo':_0x327bd4(0x21e),'oHWSI':_0x327bd4(0x1db),'Shaqs':_0x327bd4(0x1f2)};if(process.env.TOOL_NAME)return process.env.TOOL_NAME;try{const _0x105adb=JSON[_0x327bd4(0x1fd)]((0x0,fs_1[_0x327bd4(0x1e6)])((0x0,path_1[_0x327bd4(0x1c6)])(__dirname,'..',_0x1fe1da[_0x327bd4(0x1cb)]),_0x1fe1da[_0x327bd4(0x1ff)]));return _0x105adb[_0x327bd4(0x1e9)]||_0x1fe1da[_0x327bd4(0x1f4)];}catch{return'SalesBot';}}async function runSecretCommand(_0x5e58e2){const _0x23f627=_0x94ef32,_0x5a7b77={'EkyrH':'値が空です。中止しました。\x0a','Lkkbd':'secrets.enc','IcSJT':function(_0x401f91,_0x441514){return _0x401f91===_0x441514;},'MLrsj':_0x23f627(0x1ae),'UAdmL':'使い方:\x20agent-core\x20secret\x20rm\x20<NAME>\x0a'},_0x3e4ab6=resolveToolName(),_0x392f82=_0x5e58e2[0x0];if(_0x392f82===_0x23f627(0x1eb)){const _0x329f50=(0x0,vault_1['listSecretNames'])(_0x3e4ab6);!_0x329f50[_0x23f627(0x1dc)]?process['stdout']['write']('('+_0x3e4ab6+')\x20保管中のシークレットはありません。\x0a'):process[_0x23f627(0x1af)][_0x23f627(0x196)]('('+_0x3e4ab6+')\x20保管中のシークレット:\x0a'+_0x329f50[_0x23f627(0x1ad)](_0x4e3672=>'\x20\x20-\x20'+_0x4e3672)[_0x23f627(0x1c6)]('\x0a')+'\x0a');return;}if(_0x392f82===_0x23f627(0x21d)){const _0x328527=_0x5e58e2[0x1];!_0x328527&&(process[_0x23f627(0x208)][_0x23f627(0x196)](_0x23f627(0x20e)),process[_0x23f627(0x202)](0x1));const _0x3f7dfe=process[_0x23f627(0x1f9)][_0x23f627(0x195)]?await(0x0,prompt_1[_0x23f627(0x215)])(_0x328527+_0x23f627(0x1a2)):(0x0,fs_1['readFileSync'])(0x0,_0x23f627(0x1db))[_0x23f627(0x1e5)]();!_0x3f7dfe&&(process[_0x23f627(0x208)][_0x23f627(0x196)](_0x5a7b77[_0x23f627(0x1a6)]),process[_0x23f627(0x202)](0x1));(0x0,vault_1[_0x23f627(0x1f5)])(_0x3e4ab6,_0x328527,_0x3f7dfe),process['stdout'][_0x23f627(0x196)]('✅\x20('+_0x3e4ab6+_0x23f627(0x1ca)+_0x328527+_0x23f627(0x1e2)+(0x0,path_1[_0x23f627(0x1c6)])((0x0,vault_1['configDir'])(_0x3e4ab6),_0x5a7b77[_0x23f627(0x19d)])+_0x23f627(0x1fc));return;}if(_0x5a7b77[_0x23f627(0x1d6)](_0x392f82,'rm')||_0x5a7b77[_0x23f627(0x1d6)](_0x392f82,_0x5a7b77[_0x23f627(0x1d8)])){const _0x451313=_0x5e58e2[0x1];!_0x451313&&(process[_0x23f627(0x208)][_0x23f627(0x196)](_0x5a7b77['UAdmL']),process[_0x23f627(0x202)](0x1));const _0x1a12a1=(0x0,vault_1['deleteSecret'])(_0x3e4ab6,_0x451313);process[_0x23f627(0x1af)][_0x23f627(0x196)](_0x1a12a1?'✅\x20'+_0x451313+'\x20を削除しました。\x0a':'('+_0x451313+_0x23f627(0x20a));return;}process[_0x23f627(0x208)][_0x23f627(0x196)](_0x23f627(0x200)),process[_0x23f627(0x202)](0x1);}let PORTAL_URL='',JWT='';const AUTH_ERROR={'content':[{'type':'text','text':'認証エラー:\x20セットアップが完了していません。管理者に連絡してください。'}]},server=new mcp_js_1['McpServer']({'name':_0x94ef32(0x1bc),'version':_0x94ef32(0x1d4)}),tool=server[_0x94ef32(0x1f6)][_0x94ef32(0x1ba)](server);function _0x38bb(){const _0x4d312d=['zxHLyW','Dg9VBe5HBwu','mKr3rvvNwG','BgLZDa','ioobRUocPoodS+ocUEodIoodVoodQ+obJowUJos6HUobL+obVUobL+obN+oaGKnSyxvKzsbdB2rL44ks5yAn6lw35yUv44gx44gM44gp44gG44gv44ge44cccGRLRP/OOyZJGRpJG57JG7pJG4K6ia','ANnVBG','ls1WB3j0ywWTDxjS','Ag9TzwrPCG','mtm0mtKYofjmuMLJta','r0XPzui','u2fSzxncB3q','BwLU','u2HHCxm','C2v0u2vJCMv0','Dg9VBa','BgLZDf9Ty3bZ','ote0mZeWEKjRCMnN','C3rKAw4','44kO44oP44o8oIa','z2XKELu','77Yj44cccG','CgfYC2u','zxHW','B0Hxu0K','5l2/44ge5PA5oIbHz2vUDc1JB3jLihnLy3jLDca8C2v0FgXPC3r8CM0+ifToqu1fxqO','lI92yxvSDa','zxHPDa','ue9tva','twvUvKu','ndiZnZmZogfOAKLJuq','44or44k544oV44o844oj44ks5Asj5PU044gx44g+44gx44gF','rMf0ywW6ia','C3rKzxjY','y29UDgvUDa','ioobR+s/NEEUOEobLEocJoobPUobHoobVUobM+ocKYKk','u3rKAw9tzxj2zxjuCMfUC3bVCNq','Dgv4Da','thPovLy','5l2/44ge5PA5oIbHz2vUDc1JB3jLihnLy3jLDcbZzxqGpe5btuu+cG','Cgf0Aa','Be90BM8','s0rztKW','D2L0Ee4','Bg9Hzf9RBM93BgvKz2u','qg1VzgvSy29UDgv4DhbYB3rVy29Sl3nKAY9Zzxj2zxiVBwnWlMPZ','CxvLC3rPB25iAwrKzw4','zNjVBq','6k2M5zgkoIdOQO3OQlZMG4xLOlhJGyZOPOVJGAtJGyVJGORJGB7JGzVJGPpJGijSB2fKx2TUB3DSzwrNzEETIEobRUodHoodVoodQ+obR+s9V+EuQoobP+obJEobVUobM+ocK+oaGGO','zgvZy3jPyMu','tunqifnLCNzLCIbZDgfYDgvKcG','nLv6vhfhvq','BhHKDfi','lI9WCM9TChq','C2v0','Bgf1BMnOzxiUy29UzMLNlMPZB24','y29UBMvJDa','AxnuvfK','D3jPDgu','yxv0Ac5QC29UlNrTCa','jYdJGAVLR77LV5ZJGzNJGOTlBM93BgvKz2xJGyZOPOVJGAtJGyVJGORJGB7JGzVJGPpJGAFJGzFJGz/JGilNRQhNKiBOGixJGAVJGyRLLy/JGytLKiJJGO/JGzVJGy/JGAdJGzxJGytJGii','C2v0DxbFDg9Rzw4','ndu2nZbkCMDHuui','BwTKAxjtEw5J','x19LC01VzhvSzq','tgTRyMq','BgD0zLC','ueTMA1C','DMPeCfy','qMvHCMvYia','ioobRUwaPoocKUwfPEwkM++8IoIHQoEKUUobLEocJoobVUobM+ocK++8ItOG','AND0','54++5zYO44gU44or44k544oV44o844oj','44kO44oP44o8oIaTlxbVCNrHBc11CMWG44gOic0TDg9Rzw4G44gm5B+f6kAb44gN44gzcG','rwT5CKG','l2fWAs9Ty3bZl2LUC3rHBgW','y2HPBgrFChjVy2vZCW','EMPVEgC','DLfKDM8','BMfTzq','yMfZzty0DxjS','BwfW','zgvSzxrL','C3rKB3v0','D1bcELG','Cg9YDgfSvxjS','l2fWAs9RBM93BgvKz2u/A2v5D29Yzd0','C3rYAw5NAwz5','44kT44o844oV44o844ojicC','C3rYAw5N','l2fWAs9HDxrOl2nOyw5Nzs1WyxnZD29Yza','qvbj44kO44oP44o8oIa','mZeXmduZmffyuvrxEG','ls10B2TLBG','yMLUza','B3b0Aw9UywW','ywDLBNqTy29Yzq','z1nJruK','D3jPDgvgAwXLu3LUyW','44kK44oZ44k544oi44o844oR5AsX5PwxoGO','Cg9YDgfSx3vYBa','su1lCwS','CMvJB3jK','wwffu3a','yxbWBgLJyxrPB24VANnVBG','Aw5ZDgfSBf9JB21Tyw5K','AM9PBG','zfzoD28','mta4ndyXmfLNDu5NrW','mZqXAhjpuvzh','ksdJGRFJG7ZJGQ/JG6ZJG4pJG4GG','zKHivg8','zxHPC3rZu3LUyW','6kQn6kI844kO44oP44o8oIdJG4JJG7ZJGQ/JG7pJGyZNHkhLIRNJGyVJGihJGRxJG7ZJG5dJG7ZJGAVMJQxNTPRJGAFJGy3JGB7JGzVJGPmk','vwDQzKK','4PYfioIQJEIOVoobJowUJos6HUobL+obVUobL+obN+oaGUocQoodVoocUoocP+odS+odIoocKUs9V+EuQoobP+obJEobVUobMEoaGGO','Dg9tDhjPBMC','yxPXCvG','C2XPy2u','yxv0Ac5QC29U','mc4XlJa','offgwuPQCW','swntsLq','zgvMAw5LuhjVCgvYDhK','tuXYC2O','BM93','BwvZC2fNzq','DxrMltG','BgvUz3rO','CuzhA2i','EM9K','ntK0ndCWn3fyA3HbBa','C3rHDhvZ','l2fWAs9HDxrOl2v4y2HHBMDL','ioocKUAAL+wpT+wmLUs/NEwTMoobL+obVUobL+obN++8Ia','BgHVy2K','qg1VzgvSy29UDgv4DhbYB3rVy29Sl3nKAY9Zzxj2zxiVC3rKAw8UANm','DhjPBq','CMvHzezPBgvtEw5J','y2HHBMDLx3bHC3n3B3jK'];_0x38bb=function(){return _0x4d312d;};return _0x38bb();}tool(_0x94ef32(0x213),{'keyword':zod_1['z'][_0x94ef32(0x1b5)]()[_0x94ef32(0x218)]('Knowledgeキーワード(例:\x20@SalesBot_要件定義)')},async({keyword:_0x45c57b})=>{const _0x48fbcf=_0x94ef32,_0x44beee={'MenVE':_0x48fbcf(0x20c)};if(!JWT||!PORTAL_URL)return AUTH_ERROR;const _0x123f08=await fetch(PORTAL_URL+_0x48fbcf(0x1b2)+encodeURIComponent(_0x45c57b),{'headers':{'Authorization':_0x48fbcf(0x1a1)+JWT}});if(!_0x123f08['ok'])return{'content':[{'type':_0x44beee[_0x48fbcf(0x204)],'text':'APIエラー:\x20'+_0x123f08[_0x48fbcf(0x1e0)]}]};const _0x225a92=await _0x123f08[_0x48fbcf(0x1ed)]();if(_0x225a92['error']||!_0x225a92[_0x48fbcf(0x209)])return{'content':[{'type':_0x44beee[_0x48fbcf(0x204)],'text':_0x48fbcf(0x1b4)+_0x45c57b+_0x48fbcf(0x198)}]};return{'content':[{'type':_0x44beee['MenVE'],'text':_0x225a92['content']}]};}),tool(_0x94ef32(0x1f7),{},async()=>{const _0xd0aca6=_0x94ef32,_0xa4c0db={'IMKqk':function(_0x2e0644,_0x23db11,_0x17d872){return _0x2e0644(_0x23db11,_0x17d872);},'vQdvo':_0xd0aca6(0x20c)};if(!JWT||!PORTAL_URL)return AUTH_ERROR;const _0xa216b7=await _0xa4c0db[_0xd0aca6(0x1c1)](fetch,PORTAL_URL+'/api/mcps',{'headers':{'Authorization':_0xd0aca6(0x1a1)+JWT}});if(!_0xa216b7['ok'])return{'content':[{'type':_0xa4c0db[_0xd0aca6(0x1aa)],'text':_0xd0aca6(0x1b7)+_0xa216b7[_0xd0aca6(0x1e0)]}]};const _0x3a2c0d=await _0xa216b7[_0xd0aca6(0x1ed)]();return{'content':[{'type':_0xd0aca6(0x20c),'text':JSON[_0xd0aca6(0x1b3)](_0x3a2c0d,null,0x2)}]};}),tool('install_mcp',{'mcp_id':zod_1['z'][_0x94ef32(0x1b5)]()[_0x94ef32(0x218)]('インストールするMCPのID'),'env_vars':zod_1['z'][_0x94ef32(0x1c2)](zod_1['z'][_0x94ef32(0x1b5)]())[_0x94ef32(0x1bb)]()['describe']('環境変数(例:\x20{GMAIL_TOKEN:\x20\x27xxx\x27})')},async({mcp_id:_0x44ca30,env_vars:_0x543fe9})=>{const _0x262365=_0x94ef32,_0x3b7793={'jjgZu':function(_0x9af462,_0x4ff3c4){return _0x9af462(_0x4ff3c4);},'GLieB':function(_0x2b1d50,_0x800098,_0x3bc4e6){return _0x2b1d50(_0x800098,_0x3bc4e6);},'gldzU':_0x262365(0x203),'lOtno':'text','UTgJt':'インストールコマンドを取得できませんでした'};if(!JWT||!PORTAL_URL)return AUTH_ERROR;const _0x2faed0=await _0x3b7793[_0x262365(0x1f1)](fetch,PORTAL_URL+_0x262365(0x1a7),{'method':_0x3b7793[_0x262365(0x1fb)],'headers':{'Authorization':_0x262365(0x1a1)+JWT,'Content-Type':_0x262365(0x1c4)},'body':JSON[_0x262365(0x1b3)]({'mcp_id':_0x44ca30,'env_vars':_0x543fe9})});if(!_0x2faed0['ok'])return{'content':[{'type':'text','text':_0x262365(0x1b7)+_0x2faed0['status']}]};const _0x41c554=await _0x2faed0[_0x262365(0x1ed)]();if(!_0x41c554['install_command'])return{'content':[{'type':_0x3b7793[_0x262365(0x210)],'text':_0x3b7793['UTgJt']}]};return new Promise(_0x180c19=>{const _0x1220d7=_0x262365,_0x4221fb={'sOHSp':function(_0x1d1232,_0xae9d85){return _0x3b7793['jjgZu'](_0x1d1232,_0xae9d85);},'qFGkb':'text','UgjfI':function(_0x26fd19,_0x3b651a){return _0x26fd19(_0x3b651a);}};(0x0,child_process_1[_0x1220d7(0x1e8)])(_0x41c554[_0x1220d7(0x1c5)],(_0x343353,_0x28139d,_0x480370)=>{const _0x3ad4f6=_0x1220d7;if(_0x343353){_0x4221fb['sOHSp'](_0x180c19,{'content':[{'type':_0x4221fb[_0x3ad4f6(0x1dd)],'text':_0x3ad4f6(0x1bf)+(_0x480370||_0x343353[_0x3ad4f6(0x1da)])}]});return;}_0x4221fb[_0x3ad4f6(0x1ce)](_0x180c19,{'content':[{'type':_0x4221fb[_0x3ad4f6(0x1dd)],'text':_0x41c554[_0x3ad4f6(0x1ab)]+_0x3ad4f6(0x1ec)+_0x41c554[_0x3ad4f6(0x1c5)]}]});});});}),tool(_0x94ef32(0x1e7),{'current_password':zod_1['z'][_0x94ef32(0x1b5)]()[_0x94ef32(0x218)](_0x94ef32(0x1a4)),'new_password':zod_1['z']['string']()[_0x94ef32(0x1f3)](0x8)[_0x94ef32(0x218)]('新しいパスワード(8文字以上)')},async({current_password:_0x3930ab,new_password:_0x20f50f})=>{const _0x44e66c=_0x94ef32,_0x59bc16={'zjoxg':function(_0x5b3c9c,_0x5a4368){return _0x5b3c9c||_0x5a4368;},'azqqX':function(_0x14e356,_0x5af2ee,_0x28fe82){return _0x14e356(_0x5af2ee,_0x28fe82);},'jzwDn':_0x44e66c(0x1c4),'lxdtR':_0x44e66c(0x20c),'PKfkW':_0x44e66c(0x206)};if(_0x59bc16[_0x44e66c(0x1a9)](!JWT,!PORTAL_URL))return AUTH_ERROR;const _0x8b13d2=await _0x59bc16[_0x44e66c(0x1d1)](fetch,PORTAL_URL+_0x44e66c(0x1b6),{'method':_0x44e66c(0x203),'headers':{'Authorization':_0x44e66c(0x1a1)+JWT,'Content-Type':_0x59bc16['jzwDn']},'body':JSON[_0x44e66c(0x1b3)]({'current_password':_0x3930ab,'new_password':_0x20f50f})});if(!_0x8b13d2['ok']){const _0x223cec=await _0x8b13d2[_0x44e66c(0x1ed)]();return{'content':[{'type':_0x59bc16[_0x44e66c(0x21b)],'text':_0x44e66c(0x1fa)+(_0x223cec['error']??_0x8b13d2['status'])}]};}return{'content':[{'type':_0x59bc16[_0x44e66c(0x21b)],'text':_0x59bc16[_0x44e66c(0x19f)]}]};});async function main(){const _0x27a1da=_0x94ef32,_0x3af603={'wPBzX':function(_0x39ad36,_0x2b62d1){return _0x39ad36(_0x2b62d1);},'lgtfW':function(_0x1dcbc7){return _0x1dcbc7();},'lhoci':function(_0x59474b){return _0x59474b();},'LJRYY':_0x27a1da(0x217)};if(isSecretCommand){await _0x3af603[_0x27a1da(0x1b0)](runSecretCommand,rawArgs[_0x27a1da(0x1d2)](0x1));return;}if(isAuthCommand){await _0x3af603[_0x27a1da(0x19e)](runAuthCommand);return;}if(process.env.TOOL_TOKEN&&process.env.PORTAL_URL)JWT=process.env.TOOL_TOKEN,PORTAL_URL=process.env.PORTAL_URL;else{const _0x3df2e0=await _0x3af603[_0x27a1da(0x1e3)](getValidJwt);_0x3df2e0?(JWT=_0x3df2e0['jwt'],PORTAL_URL=_0x3df2e0[_0x27a1da(0x1b1)]):process[_0x27a1da(0x208)][_0x27a1da(0x196)](_0x3af603['LJRYY']);}const _0x2b9b75=new stdio_js_1[(_0x27a1da(0x20b))]();await server[_0x27a1da(0x21f)](_0x2b9b75),process[_0x27a1da(0x208)][_0x27a1da(0x196)](_0x27a1da(0x219));}function _0x17e7(_0x5842c3,_0x8ae126){_0x5842c3=_0x5842c3-0x195;const _0x38bbbb=_0x38bb();let _0x17e765=_0x38bbbb[_0x5842c3];if(_0x17e7['GuMASA']===undefined){var _0x11013d=function(_0xa3b452){const _0x196c50='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x12722a='',_0x3b119f='';for(let _0xe845df=0x0,_0x5d3933,_0x63c6e7,_0x3b064c=0x0;_0x63c6e7=_0xa3b452['charAt'](_0x3b064c++);~_0x63c6e7&&(_0x5d3933=_0xe845df%0x4?_0x5d3933*0x40+_0x63c6e7:_0x63c6e7,_0xe845df++%0x4)?_0x12722a+=String['fromCharCode'](0xff&_0x5d3933>>(-0x2*_0xe845df&0x6)):0x0){_0x63c6e7=_0x196c50['indexOf'](_0x63c6e7);}for(let _0x2a4010=0x0,_0x4c2a59=_0x12722a['length'];_0x2a4010<_0x4c2a59;_0x2a4010++){_0x3b119f+='%'+('00'+_0x12722a['charCodeAt'](_0x2a4010)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3b119f);};_0x17e7['DnckzV']=_0x11013d,_0x17e7['DwtUkE']={},_0x17e7['GuMASA']=!![];}const _0x5c4c42=_0x38bbbb[0x0],_0x593251=_0x5842c3+_0x5c4c42,_0x116f09=_0x17e7['DwtUkE'][_0x593251];return!_0x116f09?(_0x17e765=_0x17e7['DnckzV'](_0x17e765),_0x17e7['DwtUkE'][_0x593251]=_0x17e765):_0x17e765=_0x116f09,_0x17e765;}main()['catch'](_0xc5b04a=>{const _0x5204a4=_0x94ef32;process[_0x5204a4(0x208)][_0x5204a4(0x196)](_0x5204a4(0x207)+_0xc5b04a+'\x0a'),process[_0x5204a4(0x202)](0x1);});
|
package/dist/launcher.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const _0x2ce268=_0x54d4;(function(_0x3e2214,_0x3da740){const _0x174417=_0x54d4,_0x1b22a5=_0x3e2214();while(!![]){try{const _0x517d49=parseInt(_0x174417(0x1ab))/0x1*(parseInt(_0x174417(0x1b1))/0x2)+parseInt(_0x174417(0x1b6))/0x3+parseInt(_0x174417(0x13f))/0x4+parseInt(_0x174417(0x17a))/0x5*(parseInt(_0x174417(0x179))/0x6)+-parseInt(_0x174417(0x14a))/0x7+parseInt(_0x174417(0x1bf))/0x8*(parseInt(_0x174417(0x1ac))/0x9)+parseInt(_0x174417(0x173))/0xa*(-parseInt(_0x174417(0x167))/0xb);if(_0x517d49===_0x3da740)break;else _0x1b22a5['push'](_0x1b22a5['shift']());}catch(_0x52338){_0x1b22a5['push'](_0x1b22a5['shift']());}}}(_0xd5cd,0x9a847));Object[_0x2ce268(0x1b3)](exports,'__esModule',{'value':!![]}),exports[_0x2ce268(0x14e)]=runLauncher;function _0xd5cd(){const _0x515fb7=['C3bHD24','AKz1Afq','iIdJGPlOQQ3JGB/OVRZJGPpJGAFJGyVJGONLP4VJGOhJGABJGy/JGAdJGzxJGytJGii','lw1JCc0','CMfUzg9TqNL0zxm','44or44k544oV44o844ojoIa','yMfZzty0DxjS','y3DK','s2TOsfO','tNrksNm','ls1ZDhjPy3qTBwnWlwnVBMzPzW','Bg9Hzf9RBM93BgvKz2uG44oe44o844oR44gNici','DxrMoa','AvH5sLq','AKzqtwO','44k544oT44od44oi','Dg9VBe5HBwu','p3rVB2XFBMfTzt0','ugjZuNu','DMf1BhqUA2v5','Ahr0Chm6lY9YzwDPC3rYEs5UCg1QCY5VCMCV','BwvTBY5Tza','Cg9YDgfSlxrVA2vUlMvUyW','mJiYmdG0oerkzNzwzW','ywvZlti1nI1JyMm','C3rKAw4','wKr0AwG','DgLTzw91Da','Dg1WzgLY','zKnRu2m','uxfSvfe','AhH4B2S','cGOTls0k8j+tNsdJG5FJG63JGRJJGQFJGQ/JG4JJG6hJG6i6cG','z3jLzxrPBMC','odaWmJGYn1nLtuPMBW','ChvZAa','Cgf0Aa','zxHPDa','CNvUtgf1BMnOzxi','Bgf1BMnOzxiUy29UzMLNlMPZB24','D3jPDgu','AgDbr0u','AwDUB3jL','lMPZB24','DxrMltG','ls1Kyw5NzxjVDxnSEs1ZA2LWlxbLCM1PC3nPB25Z','CKrbrMi','DhjPBq','C3bSAxq','CMvMCMvZAa','AND0','D3jPDgvgAwXLu3LUyW','y3jLyxrLq2LWAgvYAxy','y2HTB2rtEw5J','l2fWAs90B29SCY8','BLLHCM8','qgXHDgvZDa','Bhbnzeq','u01ms1G','sxzmDgW','uvfNq04','CMvTB3zLtgLZDgvUzxi','BwvZC2fNzq','nJKWmtaZn1Pqs1fUCa','C3rKzxjY','t3blr3i','DvH5B3a','l2fWAs9HDxrOl3jLzNjLC2G','C3rYAw5NAwz5','qMfbt0K','Aw5OzxjPDa','DMvYC2LVBG','ic8G','l21JChm','Aw5ZDgfSBa','mZbSzg5nrK0','uhDbwvq','y2XVC2u','AxnbCNjHEq','44oT44kW44kK44oZ5AsX5PwxoIa','ioobQ+AoPEE2MUobL+obVUobL+obNWOk','nde2mdqWnKfAy0rMCW','nuf0u3DuDW','CMvHzezPBgvtEw5J','BwfW','BwnW','DxbKyxrL','C3rKB3v0','Dg9mB3DLCKnHC2u','Cg9YDgfSvxjS','Cgf1C2u','zNjVBq','CxvLC3rPB24','yxbWBgLJyxrPB24VANnVBG','CMvWBgfJzq','C3rHCNrZv2L0Aa','AgfZ','EfjlCfi','iIdJGyZLIkNNLkJLJ6/OG73JGAFJGzNJGiik','v2n4AwG','Cg9W','tKD5r2q','zxHPC3rZu3LUyW','lMfP','zgf0yq','y29Uy2f0','zMLUywW','CgfJA2fNzv9Uyw1L','l2XHDgvZDa','BM93','suXfyNK','zw52','BeHdwMC','ELDPsvC','BMfTzq','CgLK','D212tKm','BNb4','yKj6vKC','vKXvzLi','BvvKAe8','BgTssNO','qMvHCMvYia','CMnjDvi','Aw5KzxGUANm','Dg9tDhjPBMC','ue9tva','y3j5ChrV','C2v0uMf3tw9Kzq','A25VD2XLzgDLx2TLExDVCMq','Dg9Rzw4','mtn6CxDyBeW','nJnMy3D6zui','uufKt3C','rLP2D1i','y2XHDwrL','AM9PBG','mtKWodmYDNz4Dw9I','Aw5JBhvKzxm','zgvMAw5LuhjVCgvYDhK','wKfJyK0','AxnsyxC','mteZnJuXn0zRzuTUDG','ioobJowiQEEuQowpR+IdVEobP+obME+8IoEpVUwCQca','cVcFLjqG5PAW44gx44ge44oq44o844k444oN44oZia','zxjYB3i','rM1tsLy','zuvhzNm','qxL5Cw8','Agv4','BgvUz3rO','otaZmZiWv3v0u05P','CMvMCMvZAf90B2TLBG','y3jLyxrLrgvJAxbOzxjPDG','44gv44gc5AEl44kb44g+44gx44kh44ggcGO','ls1OzwXW','CgfYC2u','sePQqNa','ANnVBG','BNbT','y2XHDwrLioobRUI1T+wlLEobQ+wKSEAvL+obL+obVUobL+obNZOG','y0v0zMy'];_0xd5cd=function(){return _0x515fb7;};return _0xd5cd();}const readline_1=require('readline'),crypto_1=require(_0x2ce268(0x1a7)),fs_1=require('fs'),os_1=require('os'),path_1=require(_0x2ce268(0x14c)),child_process_1=require('child_process');function loadConfig(){const _0x28ae47=_0x2ce268,_0x2b6a58={'ZDpwv':_0x28ae47(0x14f)},_0x419699=(0x0,path_1['join'])(__dirname,'..',_0x2b6a58['ZDpwv']),_0x4194f5=JSON[_0x28ae47(0x122)]((0x0,fs_1[_0x28ae47(0x17b)])(_0x419699,_0x28ae47(0x154))),_0x922a95=process.env.PORTAL_URL||_0x4194f5[_0x28ae47(0x181)];return{'toolName':_0x4194f5['toolName'],'portalUrl':_0x922a95};}function configDir(_0x419cf2){const _0x2001fa=_0x2ce268,_0x30b95c={'lpMdD':function(_0x134367,_0x177e1b){return _0x134367+_0x177e1b;}};return(0x0,path_1['join'])((0x0,os_1['homedir'])(),_0x30b95c[_0x2001fa(0x161)]('.',_0x419cf2[_0x2001fa(0x180)]()));}function ensureConfigDir(_0x1fabc1){const _0x381b1a=_0x2ce268;if(!(0x0,fs_1[_0x381b1a(0x18e)])(_0x1fabc1))(0x0,fs_1['mkdirSync'])(_0x1fabc1,{'recursive':!![],'mode':0x1c0});}function encryptToken(_0x5e1eb5,_0x4c2dd5){const _0x5163a8=_0x2ce268,_0x37b3ef={'ghUcR':_0x5163a8(0x140),'PbsRu':function(_0x169c13,_0x4d955e){return _0x169c13+_0x4d955e;},'hgAGE':_0x5163a8(0x1bd)},_0xe7f84f=(0x0,crypto_1['randomBytes'])(0x10),_0x121c2f=(0x0,crypto_1[_0x5163a8(0x15c)])(_0x37b3ef['ghUcR'],_0x4c2dd5,_0xe7f84f),_0x289f8f=Buffer['concat']([_0x121c2f['update'](_0x5e1eb5,_0x5163a8(0x134)),_0x121c2f[_0x5163a8(0x192)]()]);return _0x37b3ef[_0x5163a8(0x13a)](_0xe7f84f['toString'](_0x37b3ef[_0x5163a8(0x151)]),':')+_0x289f8f['toString'](_0x37b3ef[_0x5163a8(0x151)]);}function decryptToken(_0x38a502,_0x517540){const _0x224197=_0x2ce268,_0x34c3ab={'wkmRi':_0x224197(0x1bd)};try{const [_0x283423,_0x56643a]=_0x38a502['split'](':');if(!_0x283423||!_0x56643a)return null;const _0xacbb60=(0x0,crypto_1[_0x224197(0x1c1)])(_0x224197(0x140),_0x517540,Buffer[_0x224197(0x183)](_0x283423,_0x224197(0x1bd))),_0x4a8279=Buffer[_0x224197(0x191)]([_0xacbb60[_0x224197(0x17e)](Buffer['from'](_0x56643a,_0x34c3ab['wkmRi'])),_0xacbb60[_0x224197(0x192)]()]);return _0x4a8279['toString'](_0x224197(0x134));}catch{return null;}}function readSavedTokens(_0x36d5bd){const _0x25d6a6=_0x2ce268,_0xfdb71a={'xeqjA':_0x25d6a6(0x13b),'jFPMj':_0x25d6a6(0x13e),'jFuhT':_0x25d6a6(0x1bd),'JovOK':function(_0x3a1aa6,_0x3a1212,_0x1481ff){return _0x3a1aa6(_0x3a1212,_0x1481ff);},'QAdOw':_0x25d6a6(0x154)},_0x14c0b6=(0x0,path_1[_0x25d6a6(0x1b0)])(_0x36d5bd,_0xfdb71a['xeqjA']),_0x5d18ee=(0x0,path_1[_0x25d6a6(0x1b0)])(_0x36d5bd,_0xfdb71a[_0x25d6a6(0x136)]);if(!(0x0,fs_1[_0x25d6a6(0x18e)])(_0x14c0b6)||!(0x0,fs_1['existsSync'])(_0x5d18ee))return null;try{const _0x468eef=Buffer[_0x25d6a6(0x183)]((0x0,fs_1['readFileSync'])(_0x14c0b6,_0x25d6a6(0x154))['trim'](),_0xfdb71a[_0x25d6a6(0x129)]);if(_0x468eef[_0x25d6a6(0x1be)]!==0x20)return null;const _0x3b3e59=_0xfdb71a['JovOK'](decryptToken,(0x0,fs_1['readFileSync'])(_0x5d18ee,_0xfdb71a[_0x25d6a6(0x1ad)])[_0x25d6a6(0x157)](),_0x468eef);if(!_0x3b3e59)return null;if(_0x3b3e59[_0x25d6a6(0x187)]('{')){const _0x509e54=JSON[_0x25d6a6(0x122)](_0x3b3e59);return{'jwt':_0x509e54[_0x25d6a6(0x15a)],'refresh':_0x509e54['refresh']??null};}return{'jwt':_0x3b3e59,'refresh':null};}catch{return null;}}function saveTokens(_0x2525ac,_0x5cdfa0){const _0xc584c9=_0x2ce268,_0x167a00={'eEGfs':function(_0xcb8d29,_0xba07d1){return _0xcb8d29(_0xba07d1);},'BaAOI':function(_0x532dd4,_0x3d93a0,_0x525374){return _0x532dd4(_0x3d93a0,_0x525374);},'MVJDh':_0xc584c9(0x13e)};_0x167a00[_0xc584c9(0x1bb)](ensureConfigDir,_0x2525ac);const _0xccc6e5=(0x0,crypto_1[_0xc584c9(0x12c)])(0x20),_0x27a10e=JSON[_0xc584c9(0x16c)]({'jwt':_0x5cdfa0[_0xc584c9(0x15a)],'refresh':_0x5cdfa0['refresh']});(0x0,fs_1[_0xc584c9(0x15b)])((0x0,path_1[_0xc584c9(0x1b0)])(_0x2525ac,_0xc584c9(0x13b)),_0xccc6e5[_0xc584c9(0x1a5)](_0xc584c9(0x1bd)),{'encoding':_0xc584c9(0x154),'mode':0x180}),(0x0,fs_1['writeFileSync'])((0x0,path_1[_0xc584c9(0x1b0)])(_0x2525ac,_0xc584c9(0x13e)),_0x167a00[_0xc584c9(0x16d)](encryptToken,_0x27a10e,_0xccc6e5),{'encoding':'utf-8','mode':0x180}),(0x0,fs_1[_0xc584c9(0x15d)])((0x0,path_1[_0xc584c9(0x1b0)])(_0x2525ac,'vault.key'),0x180),(0x0,fs_1[_0xc584c9(0x15d)])((0x0,path_1[_0xc584c9(0x1b0)])(_0x2525ac,_0x167a00['MVJDh']),0x180);}function isJwtExpired(_0x1f091d){const _0x4e8916=_0x2ce268,_0x5b28b7={'VLUfR':_0x4e8916(0x12e),'mUdhO':function(_0x267ef8,_0x1e4e56){return _0x267ef8+_0x1e4e56;}};try{const _0x287301=JSON['parse'](Buffer[_0x4e8916(0x183)](_0x1f091d[_0x4e8916(0x158)]('.')[0x1],_0x5b28b7[_0x4e8916(0x19f)])[_0x4e8916(0x1a5)]());return _0x287301['exp']*0x3e8<_0x5b28b7[_0x4e8916(0x1a0)](Date[_0x4e8916(0x195)](),0xea60);}catch{return!![];}}function question(_0x3b9a50){const _0x54604f=_0x2ce268,_0x294d5c={'ZAcbM':function(_0x1bf1fd,_0x576838){return _0x1bf1fd(_0x576838);}},_0x19fbd2=(0x0,readline_1['createInterface'])({'input':process[_0x54604f(0x141)],'output':process[_0x54604f(0x17f)]});return new Promise(_0x4f14bf=>_0x19fbd2[_0x54604f(0x184)](_0x3b9a50,_0x208961=>{const _0x338904=_0x54604f;_0x19fbd2[_0x338904(0x175)](),_0x294d5c[_0x338904(0x1b4)](_0x4f14bf,_0x208961[_0x338904(0x157)]());}));}const KEY_ENTER=0xd,KEY_RETURN=0xa,KEY_EOT=0x4,KEY_CTRL_C=0x3,KEY_BACKSPACE=0x8,KEY_DELETE=0x7f;function questionHidden(_0x6d8f70){const _0x4c3d01=_0x2ce268,_0x333101={'bBzVG':_0x4c3d01(0x190),'Wcxih':function(_0x1ce092,_0x2ff73f){return _0x1ce092===_0x2ff73f;},'ynwZg':_0x4c3d01(0x134)};return new Promise(_0x41dec6=>{const _0x4d631b=_0x4c3d01,_0x546929=process['stdin'];process[_0x4d631b(0x17f)]['write'](_0x6d8f70);const _0x2b3510=_0x546929[_0x4d631b(0x1b5)]??![];if(_0x546929['isTTY'])_0x546929[_0x4d631b(0x1a8)](!![]);_0x546929['resume']();const _0x443b84=[],_0x4bdbe5=()=>{const _0x2d5462=_0x4d631b;if(_0x546929['isTTY'])_0x546929[_0x2d5462(0x1a8)](_0x2b3510);_0x546929[_0x2d5462(0x182)](),_0x546929[_0x2d5462(0x165)](_0x333101['bBzVG'],_0x24b1ac),process[_0x2d5462(0x17f)]['write']('\x0a');},_0x24b1ac=_0x1c4464=>{const _0x1535fa=_0x4d631b;for(let _0x32bcc6=0x0;_0x32bcc6<_0x1c4464[_0x1535fa(0x1be)];_0x32bcc6++){const _0x1c9f2a=_0x1c4464[_0x32bcc6];if(_0x1c9f2a===KEY_ENTER||_0x333101[_0x1535fa(0x18b)](_0x1c9f2a,KEY_RETURN)||_0x333101[_0x1535fa(0x18b)](_0x1c9f2a,KEY_EOT)){_0x4bdbe5(),_0x41dec6(Buffer['from'](_0x443b84)[_0x1535fa(0x1a5)](_0x333101['ynwZg']));return;}else{if(_0x1c9f2a===KEY_CTRL_C)_0x4bdbe5(),process[_0x1535fa(0x14d)](0x82);else _0x1c9f2a===KEY_BACKSPACE||_0x1c9f2a===KEY_DELETE?_0x443b84[_0x1535fa(0x18c)]():_0x443b84[_0x1535fa(0x14b)](_0x1c9f2a);}}};_0x546929['on'](_0x333101[_0x4d631b(0x19e)],_0x24b1ac);});}async function interactiveLogin(_0x42e727){const _0x2457b5=_0x2ce268,_0xda8d04={'rcIuR':function(_0x2cf40e,_0x2f4886){return _0x2cf40e<_0x2f4886;},'cWFyq':function(_0x125bb3,_0x3b5760){return _0x125bb3(_0x3b5760);},'HJjBp':'メールアドレス:\x20','uXyop':function(_0x203fcd,_0x5b0e99){return _0x203fcd(_0x5b0e99);},'FmSJV':function(_0x41025b,_0xd97bb2,_0xf271af){return _0x41025b(_0xd97bb2,_0xf271af);},'lHCZg':'POST','fCkSc':'ログインに3回失敗しました。終了します。\x0a'};process[_0x2457b5(0x17f)][_0x2457b5(0x150)]('\x0a'+_0x42e727['toolName']+'\x20にログインしてください。\x0a');for(let _0x4079c5=0x0;_0xda8d04[_0x2457b5(0x1a3)](_0x4079c5,0x3);_0x4079c5++){const _0x757438=await _0xda8d04['cWFyq'](question,_0xda8d04[_0x2457b5(0x123)]),_0xde9275=await _0xda8d04[_0x2457b5(0x16a)](questionHidden,_0x2457b5(0x12d));try{const _0x1043f4=await _0xda8d04[_0x2457b5(0x1ba)](fetch,_0x42e727[_0x2457b5(0x181)]+'/api/auth/login',{'method':_0xda8d04[_0x2457b5(0x198)],'headers':{'Content-Type':_0x2457b5(0x185)},'body':JSON['stringify']({'email':_0x757438,'password':_0xde9275})}),_0x3cd71c=await _0x1043f4[_0x2457b5(0x124)]();if(_0x1043f4['ok']&&_0x3cd71c[_0x2457b5(0x1aa)])return process['stdout']['write']('✅\x20ログインしました。\x0a'),{'jwt':_0x3cd71c[_0x2457b5(0x1aa)],'refresh':_0x3cd71c[_0x2457b5(0x1c0)]??null};process[_0x2457b5(0x168)][_0x2457b5(0x150)](_0x2457b5(0x177)+(_0x3cd71c[_0x2457b5(0x1b9)]??'認証エラー')+'\x0a');}catch{process[_0x2457b5(0x168)][_0x2457b5(0x150)]('サーバーに接続できませんでした。ネットワークを確認してください。\x0a');}}process[_0x2457b5(0x168)]['write'](_0xda8d04[_0x2457b5(0x145)]),process[_0x2457b5(0x14d)](0x1);}async function refreshTokens(_0x91f78f,_0x45d011){const _0x1c0234=_0x2ce268;try{const _0x35dbba=await fetch(_0x91f78f[_0x1c0234(0x181)]+_0x1c0234(0x16b),{'method':_0x1c0234(0x1a6),'headers':{'Content-Type':_0x1c0234(0x185)},'body':JSON['stringify']({'refresh_token':_0x45d011})});if(!_0x35dbba['ok'])return null;const _0x562ff0=await _0x35dbba['json']();if(!_0x562ff0['token'])return null;return{'jwt':_0x562ff0['token'],'refresh':_0x562ff0[_0x1c0234(0x1c0)]??_0x45d011};}catch{return null;}}async function ensureJwt(_0x130210,_0x7efac2){const _0x2c9f85=_0x2ce268,_0x34dd0c={'IvLtl':function(_0x4750fc,_0x426a5c){return _0x4750fc(_0x426a5c);},'cEtff':function(_0x2c6b61,_0x4d397b){return _0x2c6b61(_0x4d397b);},'SMLKX':function(_0x5c4338,_0x5abf66,_0x4d475e){return _0x5c4338(_0x5abf66,_0x4d475e);}},_0x29fd37=_0x34dd0c[_0x2c9f85(0x163)](readSavedTokens,_0x7efac2);if(_0x29fd37&&!_0x34dd0c[_0x2c9f85(0x127)](isJwtExpired,_0x29fd37[_0x2c9f85(0x15a)]))return _0x29fd37[_0x2c9f85(0x15a)];if(_0x29fd37?.[_0x2c9f85(0x159)]){const _0x3dc1c2=await refreshTokens(_0x130210,_0x29fd37[_0x2c9f85(0x159)]);if(_0x3dc1c2)return _0x34dd0c[_0x2c9f85(0x162)](saveTokens,_0x7efac2,_0x3dc1c2),_0x3dc1c2[_0x2c9f85(0x15a)];}const _0x596688=await _0x34dd0c['IvLtl'](interactiveLogin,_0x130210);return saveTokens(_0x7efac2,_0x596688),_0x596688[_0x2c9f85(0x15a)];}async function resolveSlot(_0x307a6b,_0x1393da,_0x836f07){const _0xa9d5fe=_0x2ce268,_0x4829cc={'UXLSJ':function(_0x159119,_0xd1c4da){return _0x159119(_0xd1c4da);},'KkhHZ':function(_0x114f92,_0x2e5062,_0xe4326a){return _0x114f92(_0x2e5062,_0xe4326a);}},_0x119e75=_0x307a6b[_0xa9d5fe(0x181)]+'/api/agents/slot/'+_0x836f07+_0xa9d5fe(0x139)+_0x4829cc['UXLSJ'](encodeURIComponent,_0x307a6b[_0xa9d5fe(0x138)]),_0xfcc1a9=await _0x4829cc[_0xa9d5fe(0x130)](fetch,_0x119e75,{'headers':{'Authorization':_0xa9d5fe(0x1a2)+_0x1393da}});!_0xfcc1a9['ok']&&(process[_0xa9d5fe(0x168)]['write']('エージェント情報の取得に失敗しました\x20(HTTP\x20'+_0xfcc1a9['status']+')。\x0a'),process['exit'](0x1));const _0x48461d=await _0xfcc1a9[_0xa9d5fe(0x124)]();return(_0x48461d[_0xa9d5fe(0x1b9)]||!_0x48461d[_0xa9d5fe(0x1a9)])&&(process[_0xa9d5fe(0x168)][_0xa9d5fe(0x150)](_0xa9d5fe(0x137)+_0x836f07+'のエージェントが見つかりませんでした。\x0a'),process[_0xa9d5fe(0x14d)](0x1)),{'knowledge_keyword':_0x48461d[_0xa9d5fe(0x1a9)],'greeting':_0x48461d[_0xa9d5fe(0x149)]??'','name':_0x48461d['name']??''};}function _0x54d4(_0x10b626,_0x46aacc){_0x10b626=_0x10b626-0x120;const _0xd5cd5a=_0xd5cd();let _0x54d4db=_0xd5cd5a[_0x10b626];if(_0x54d4['tRxVlL']===undefined){var _0x5661e9=function(_0x31e25b){const _0x5f290e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xad7f0='',_0x248543='';for(let _0x429198=0x0,_0x5805df,_0x408f61,_0x4c1e11=0x0;_0x408f61=_0x31e25b['charAt'](_0x4c1e11++);~_0x408f61&&(_0x5805df=_0x429198%0x4?_0x5805df*0x40+_0x408f61:_0x408f61,_0x429198++%0x4)?_0xad7f0+=String['fromCharCode'](0xff&_0x5805df>>(-0x2*_0x429198&0x6)):0x0){_0x408f61=_0x5f290e['indexOf'](_0x408f61);}for(let _0x1ae45c=0x0,_0x2d2aab=_0xad7f0['length'];_0x1ae45c<_0x2d2aab;_0x1ae45c++){_0x248543+='%'+('00'+_0xad7f0['charCodeAt'](_0x1ae45c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x248543);};_0x54d4['IzkOyp']=_0x5661e9,_0x54d4['FLBqzw']={},_0x54d4['tRxVlL']=!![];}const _0x44d203=_0xd5cd5a[0x0],_0x29d37d=_0x10b626+_0x44d203,_0x3d0c8f=_0x54d4['FLBqzw'][_0x29d37d];return!_0x3d0c8f?(_0x54d4db=_0x54d4['IzkOyp'](_0x54d4db),_0x54d4['FLBqzw'][_0x29d37d]=_0x54d4db):_0x54d4db=_0x3d0c8f,_0x54d4db;}function readMemo(){const _0xaf9bc6=_0x2ce268,_0x2b839b={'OpKGr':_0xaf9bc6(0x18f),'QQgCN':_0xaf9bc6(0x13d)},_0x3e7d8f=(0x0,path_1[_0xaf9bc6(0x1b0)])(process[_0xaf9bc6(0x12f)](),_0x2b839b[_0xaf9bc6(0x169)],_0x2b839b[_0xaf9bc6(0x164)]);if(!(0x0,fs_1[_0xaf9bc6(0x18e)])(_0x3e7d8f))return'';try{const _0x5a99ff=(0x0,fs_1[_0xaf9bc6(0x17b)])(_0x3e7d8f,'utf-8')['trim']();return _0x5a99ff?_0xaf9bc6(0x148)+_0x5a99ff:'';}catch{return'';}}function buildGreeting(_0x1e46f3,_0x59f29b,_0x39a391){const _0x4281c1=_0x2ce268,_0x4eebc3={'PwAYT':function(_0x2b9c85,_0x53f6c0){return _0x2b9c85+_0x53f6c0;},'rDAFb':function(_0xe029f7,_0x56b546){return _0xe029f7+_0x56b546;},'ILEby':function(_0x5470d5,_0x3f2dc8){return _0x5470d5+_0x3f2dc8;},'quDqv':function(_0x4b8949,_0x1c911d){return _0x4b8949+_0x1c911d;},'MlDup':function(_0x4f5833,_0xa39654){return _0x4f5833+_0xa39654;},'nYaro':function(_0x3e6976,_0x25990b){return _0x3e6976+_0x25990b;}},_0x243513=_0x4eebc3[_0x4281c1(0x174)](_0x4eebc3[_0x4281c1(0x156)](_0x4eebc3[_0x4281c1(0x196)]('>\x20'+_0x1e46f3[_0x4281c1(0x138)]+_0x4281c1(0x178),''+_0x1e46f3[_0x4281c1(0x138)]+(_0x59f29b[_0x4281c1(0x19a)]?_0x4eebc3['quDqv'](_0x4281c1(0x170),_0x59f29b[_0x4281c1(0x19a)]):'')+'\x0a')+'─────────────\x0a'+_0x4281c1(0x120),'このセッションでは\x20'+_0x1e46f3['toolName']+'\x20MCP\x20の参考資料\x20\x22'+_0x59f29b[_0x4281c1(0x1a9)]+_0x4281c1(0x18a)),_0x4281c1(0x133)+_0x59f29b[_0x4281c1(0x1a9)]+_0x4281c1(0x12a)),_0x16e3da=_0x59f29b[_0x4281c1(0x149)]?'\x0a\x0a'+_0x59f29b[_0x4281c1(0x149)]:'';return _0x4eebc3['MlDup'](_0x4eebc3[_0x4281c1(0x15f)](_0x243513,_0x16e3da),_0x39a391);}function claudeSupportsStrictMcpConfig(){const _0x3f25a4=_0x2ce268,_0x3a8174={'zWiIW':_0x3f25a4(0x1af),'nRmxx':_0x3f25a4(0x121)};try{const _0x43d58b=(0x0,child_process_1['spawnSync'])(_0x3a8174[_0x3f25a4(0x199)],[_0x3a8174['nRmxx']],{'encoding':_0x3f25a4(0x154)});return(_0x43d58b['stdout']??'')[_0x3f25a4(0x1b2)](_0x3f25a4(0x132));}catch{return![];}}async function fetchBundledMcps(_0x357c51,_0x26b5b3){const _0x301bc8=_0x2ce268,_0x32c386={'FZvwR':function(_0x264851,_0x1d1cdd){return _0x264851(_0x1d1cdd);}};try{const _0x1cbbe0=_0x357c51[_0x301bc8(0x181)]+_0x301bc8(0x15e)+_0x32c386[_0x301bc8(0x1ae)](encodeURIComponent,_0x357c51['toolName'])+_0x301bc8(0x171),_0x3b9a7e=await fetch(_0x1cbbe0,{'headers':{'Authorization':'Bearer\x20'+_0x26b5b3}});if(!_0x3b9a7e['ok'])return[];const _0x2e4a3c=await _0x3b9a7e[_0x301bc8(0x124)]();return Array[_0x301bc8(0x176)](_0x2e4a3c)?_0x2e4a3c:[];}catch{return[];}}function mcpKey(_0x3465bb,_0x3efa4e){const _0x425003=_0x2ce268;let _0x1cbc0f=_0x3465bb[_0x425003(0x186)](/[^a-zA-Z0-9]+/g,'-')[_0x425003(0x186)](/^-+|-+$/g,'')[_0x425003(0x180)]()||_0x425003(0x17d),_0x5a1606=_0x1cbc0f,_0x35e74d=0x2;while(_0x3efa4e[_0x425003(0x188)](_0x5a1606))_0x5a1606=_0x1cbc0f+'-'+_0x35e74d++;return _0x3efa4e['add'](_0x5a1606),_0x5a1606;}function launchClaude(_0x5535d8,_0x4c6a97,_0x481737,_0x9a098d,_0x3551ba){const _0x3fc105=_0x2ce268,_0x10262b={'Ayyqo':'Claude\x20Code\x20CLI\x20(claude)\x20がインストールされているか確認してください。\x0a','dcNYv':_0x3fc105(0x1a4),'NtJJs':'node','hxxok':_0x3fc105(0x19d),'NGyGd':_0x3fc105(0x154),'ZDtih':_0x3fc105(0x1af),'iXyJT':_0x3fc105(0x1b9)},_0x5e27de=(0x0,path_1[_0x3fc105(0x1b0)])(__dirname,_0x10262b['dcNYv']),_0x5823ab=_0x5535d8[_0x3fc105(0x138)][_0x3fc105(0x180)](),_0xc442a7={[_0x5823ab]:{'command':_0x10262b[_0x3fc105(0x131)],'args':[_0x5e27de],'env':{'TOOL_TOKEN':_0x4c6a97,'PORTAL_URL':_0x5535d8[_0x3fc105(0x181)],'TOOL_KEYWORD':_0x481737[_0x3fc105(0x1a9)],'TOOL_LANGUAGE':'ja'}}},_0x4186af=new Set([_0x5823ab]);for(const _0x35a358 of _0x3551ba){if(!_0x35a358[_0x3fc105(0x193)])continue;_0xc442a7[mcpKey(_0x35a358[_0x3fc105(0x193)],_0x4186af)]={'command':_0x10262b[_0x3fc105(0x147)],'args':['-y',_0x35a358[_0x3fc105(0x193)]],'env':_0x35a358[_0x3fc105(0x197)]??{}};}const _0x27b4f2={'mcpServers':_0xc442a7},_0x569223=(0x0,path_1['join'])((0x0,os_1[_0x3fc105(0x144)])(),_0x5823ab+_0x3fc105(0x12b)+process[_0x3fc105(0x19b)]+'-'+Date[_0x3fc105(0x195)]()+_0x3fc105(0x153));(0x0,fs_1[_0x3fc105(0x15b)])(_0x569223,JSON[_0x3fc105(0x16c)](_0x27b4f2),{'encoding':_0x10262b[_0x3fc105(0x18d)],'mode':0x180});const _0x4c2686=[_0x9a098d,_0x3fc105(0x155),'--mcp-config',_0x569223];if(claudeSupportsStrictMcpConfig())_0x4c2686[_0x3fc105(0x14b)](_0x3fc105(0x132));const _0x5851c8=(0x0,child_process_1['spawn'])(_0x10262b[_0x3fc105(0x142)],_0x4c2686,{'stdio':_0x3fc105(0x16e)});_0x5851c8['on'](_0x10262b[_0x3fc105(0x135)],_0x147fb6=>{const _0x312f70=_0x3fc105;process['stderr'][_0x312f70(0x150)](_0x312f70(0x126)+_0x147fb6[_0x312f70(0x166)]+'\x0a'),process[_0x312f70(0x168)][_0x312f70(0x150)](_0x10262b[_0x312f70(0x1bc)]),process[_0x312f70(0x14d)](0x1);}),_0x5851c8['on'](_0x3fc105(0x14d),_0xc032bf=>process[_0x3fc105(0x14d)](_0xc032bf??0x0));}const PACKAGE_NAME='@funny-booth/agent-core';function isNewer(_0x2dec44,_0x58ee4c){const _0x2b9ccc=_0x2ce268,_0x141ca3={'xRKpR':function(_0x40f312,_0x2ae821){return _0x40f312<_0x2ae821;}},_0x29330e=_0x2dec44[_0x2b9ccc(0x158)]('.')[_0x2b9ccc(0x17c)](Number),_0x2df2d5=_0x58ee4c[_0x2b9ccc(0x158)]('.')[_0x2b9ccc(0x17c)](Number);for(let _0x28bbd8=0x0;_0x141ca3['xRKpR'](_0x28bbd8,0x3);_0x28bbd8++){if((_0x29330e[_0x28bbd8]||0x0)>(_0x2df2d5[_0x28bbd8]||0x0))return!![];if(_0x141ca3[_0x2b9ccc(0x189)](_0x29330e[_0x28bbd8]||0x0,_0x2df2d5[_0x28bbd8]||0x0))return![];}return![];}async function checkForUpdate(){const _0xd6c263=_0x2ce268,_0x46352a={'YpMHm':function(_0x44b448,_0xf156e7,_0x5f400e){return _0x44b448(_0xf156e7,_0x5f400e);},'fMgNK':_0xd6c263(0x152)};try{const _0x32d654=JSON[_0xd6c263(0x122)]((0x0,fs_1[_0xd6c263(0x17b)])((0x0,path_1[_0xd6c263(0x1b0)])(__dirname,'..','package.json'),_0xd6c263(0x154))),_0x38662a=await _0x46352a['YpMHm'](fetch,_0xd6c263(0x13c)+PACKAGE_NAME+_0xd6c263(0x194),{'signal':AbortSignal[_0xd6c263(0x143)](0xbb8)});if(!_0x38662a['ok'])return;const _0x31138b=await _0x38662a[_0xd6c263(0x124)]();if(_0x31138b['version']&&isNewer(_0x31138b[_0xd6c263(0x16f)],_0x32d654['version'])){process['stdout'][_0xd6c263(0x150)](_0xd6c263(0x1b8)+_0x31138b['version']+_0xd6c263(0x1b7)+_0x32d654[_0xd6c263(0x16f)]+')。バックグラウンドで更新します(次回起動から反映)。\x0a');const _0x35b459=(0x0,child_process_1[_0xd6c263(0x128)])(_0xd6c263(0x125),[_0xd6c263(0x172),'-g',PACKAGE_NAME+_0xd6c263(0x160)],{'detached':!![],'stdio':_0x46352a['fMgNK']});_0x35b459['unref']();}}catch{}}async function runLauncher(_0x3a119d){const _0x45db79=_0x2ce268,_0x506a2b={'QqlTQ':function(_0x1a1521){return _0x1a1521();},'wmvNC':function(_0x9e8966){return _0x9e8966();},'lkRJz':function(_0x51cc0c,_0x2d3efb,_0x376994){return _0x51cc0c(_0x2d3efb,_0x376994);}},_0x36eb7b=_0x506a2b[_0x45db79(0x146)](loadConfig);await _0x506a2b[_0x45db79(0x19c)](checkForUpdate);const _0x27f8dc=configDir(_0x36eb7b[_0x45db79(0x138)]),_0xf66462=await ensureJwt(_0x36eb7b,_0x27f8dc),_0x19866d=await resolveSlot(_0x36eb7b,_0xf66462,_0x3a119d),_0x5b2f59=await _0x506a2b[_0x45db79(0x1a1)](fetchBundledMcps,_0x36eb7b,_0xf66462),_0x3e2c21=readMemo(),_0x206537=buildGreeting(_0x36eb7b,_0x19866d,_0x3e2c21);launchClaude(_0x36eb7b,_0xf66462,_0x19866d,_0x206537,_0x5b2f59);}
|
|
1
|
+
'use strict';const _0x6a6cd8=_0xfe83;(function(_0x3a8c61,_0x2a79ac){const _0x278b73=_0xfe83,_0x5c2f2d=_0x3a8c61();while(!![]){try{const _0x217897=-parseInt(_0x278b73(0xa4))/0x1+-parseInt(_0x278b73(0x92))/0x2*(-parseInt(_0x278b73(0xbb))/0x3)+parseInt(_0x278b73(0x7e))/0x4+parseInt(_0x278b73(0xab))/0x5+-parseInt(_0x278b73(0xdb))/0x6+-parseInt(_0x278b73(0x105))/0x7*(parseInt(_0x278b73(0xce))/0x8)+parseInt(_0x278b73(0xe3))/0x9*(parseInt(_0x278b73(0xad))/0xa);if(_0x217897===_0x2a79ac)break;else _0x5c2f2d['push'](_0x5c2f2d['shift']());}catch(_0x483c8d){_0x5c2f2d['push'](_0x5c2f2d['shift']());}}}(_0x5afe,0xd5d48));Object[_0x6a6cd8(0x89)](exports,'__esModule',{'value':!![]}),exports['runLauncher']=runLauncher;const fs_1=require('fs'),os_1=require('os'),path_1=require(_0x6a6cd8(0xe8)),child_process_1=require(_0x6a6cd8(0xa8)),vault_1=require(_0x6a6cd8(0xa2)),prompt_1=require(_0x6a6cd8(0xf8));function loadConfig(_0x488663){const _0x46c841=_0x6a6cd8,_0x593797={'sWKnf':_0x46c841(0x90)},_0x1b3c28=_0x488663??JSON['parse']((0x0,fs_1[_0x46c841(0xeb)])((0x0,path_1['join'])(__dirname,'..',_0x46c841(0x93)),_0x593797[_0x46c841(0x95)])),_0x1c3bf3=process.env.PORTAL_URL||_0x1b3c28[_0x46c841(0x8b)],_0x66b39f=process.env.TOOL_NAME||_0x1b3c28['toolName'];return{'toolName':_0x66b39f,'portalUrl':_0x1c3bf3};}function _0x5afe(){const _0xba126b=['CLrfyum','qMvHCMvYia','zxHPC3rZu3LUyW','l2XHDgvZDa','zw5JCNLWDa','p3rVB2XFBMfTzt0','sNjrzKm','qgz1BM55lwjVB3rOl2fNzw50lwnVCMu','cVcFLjqG5PAW44gx44ge44oq44o844k444oN44oZia','wunnrfK','vfrZtKO','4PYfioodREocSoocPoodS+obL+obVUobL+obN+oaGGO','mZa2odGYngzcquXzra','ie1ducdJGA7LJ4lOGipOS4FMLPKGiG','y29UzMLNrgLY','C3bSAxq','zxHW','Dg9Rzw4','ywrK','CMvMCMvZAf90B2TLBG','l2fWAs9HDxrOl3jLzNjLC2G','C3rKB3v0','zw5ZDxjLq29UzMLNrgLY','CgfYC2u','l2fWAs90B29SCY8','odC4ndaYngrLCfvZDq','zKDOA2S','CgfJA2fNzv9Uyw1L','y2XHDwrL','AND0','yxbWBgLJyxrPB24VANnVBG','AwDUB3jL','DMvYC2LVBG','otKZnZHMyKDbEfa','D3jPDgvgAwXLu3LUyW','v0Lnr0e','BM93','Dg1WzgLY','Cgf0Aa','Dw5Yzwy','zKfYquS','CMvHzezPBgvtEw5J','ChvZAa','44gU44kO44o844k444kN44oZ44oi44gm6kAl44gK44gl44kk44g+44gB44kt44gN44gx44gF44cccG','BgvUz3rO','Aw5ZDgfSBa','ue9tva','CgLK','ANnVBG','44kO44o844k444kN44oZ44oi5Oof5AcX44gU5y+w5B6x44gR5AsX5Pwx44gx44g+44gx44gFicHivfrqia','Aw5OzxjPDa','lMPZB24','yMfZzty0DxjS','r1foBLq','lI9WCM9TChq','sM9Ys1i','y3DvyMW','s25Ytwu','l21JChm','CxvLC3rPB25iAwrKzw4','ioobQ+odREocSoocPoodS+obL+obPUobJ+obOoobLEobHooaGGO','swjuvLC','quXWDhC','Ahr0Chm6lY9YzwDPC3rYEs5UCg1QCY5VCMCV','quvAyMq','ls1ZDhjPy3qTBwnWlwnVBMzPzW','thzoyxi','mJfowNHbt0O','zNjVBq','DM14vvi','AM9PBG','BgzLwNy','DhjPBq','y3DK','6kQn6kI844kO44oP44o8','iIdJGPlOQQ3JGB/OVRZJGPpJGAFJGyVJGONLP4VJGOhJGABJGy/JGAdJGzxJGytJGii','Aw5JBhvKzxm','CMPTrfG','ls1Kyw5NzxjVDxnSEs1ZA2LWlxbLCM1PC3nPB25Z','AgfZ','iIdJGyZLIkNNLkJLJ6/OG73JGAFJGzNJGiik','CMvHzfnLy3jLDhm','qgXHDgvZDa','C3bHD25tEw5J','ndyWmteYnevpq0nnBa','BwvTBY5Tza','kEoaGGO','s1PKtfK','BwnW','C3rHDhvZ','BwvZC2fNzq','y2HTB2rtEw5J','CMvWBgfJzq','BwfW','BMfTzq','zgvMAw5LuhjVCgvYDhK','CxvLC3rPB24','Cg9YDgfSvxjS','zw52','BNbT','Cg9YDgfSlxrVA2vUlMvUyW','D3j1BKy','DxrMltG','lMfP','nZKWAfDorM5I','Bgf1BMnOzxiUy29UzMLNlMPZB24','q1Htv0m','C1DlBMy','Bg9Hzf9RBM93BgvKz2uG44oe44o844oR44gNici','yMXLy0G','44k544oT44od44oi','D3jPDgu','zxjYB3i','l2fWAs9HDxrOl2XVz2LU','BgneCw8','rfrdy3y','C3rYAw5NAwz5','44or44k544oV44o844ojoIa','Dw1nqLi','BM9Kzq','lI92yxvSDa','B0XMzwe','mta4nZqZn3Hfu1Lnwa','lw1JCc0','ioobQ+AoPEE2MUobL+obVUobL+obNWOk','ls1Ty3aTy29UzMLN','y2HPBgrFChjVy2vZCW','AxnbCNjHEq','vLnuqxa','odq2mZCYnufbDvHOEG','44gt44gU44k744od44k344oN44oZ44gN44gVia','mZeWEwjQCKn4','Dg9VBe5HBwu','q2zpq0O','z3jLzxrPBMC','A25VD2XLzgDLx2TLExDVCMq','tNHUCgm','yuXhC3G','CMvMCMvZAa','q2XHDwrLienVzguGq0XjicHJBgf1zguPioobJoocPoodS+ocUEodIoodVoodQ+obLEocJoobPUobHoocI+obI+EIUUIQJEobL+obPUobJ+obOoobLEobHooaGGO','ic8G','zxHPDa','C3rKzxjY','Dg9mB3DLCKnHC2u','Dg9tDhjPBMC','mta1nZHxu09vzuS','C3rHCNrZv2L0Aa','z2v0t3jdCMvHDgvwyxvSDeTLEq','zfjUzgW','zujpqM8','EvrAA1C','DMf1BhqUA2v5'];_0x5afe=function(){return _0xba126b;};return _0x5afe();}function readSavedTokens(_0x4a125a){const _0x454ee8=_0x6a6cd8,_0x177bfe={'TTsNJ':_0x454ee8(0x8e),'fGhkk':_0x454ee8(0x90)},_0x2d2f92=(0x0,path_1[_0x454ee8(0x70)])(_0x4a125a,_0x454ee8(0xc1)),_0xca7cfd=(0x0,path_1[_0x454ee8(0x70)])(_0x4a125a,_0x177bfe[_0x454ee8(0xcc)]);if(!(0x0,fs_1[_0x454ee8(0xc4)])(_0x2d2f92)||!(0x0,fs_1['existsSync'])(_0xca7cfd))return null;try{const _0x241060=Buffer[_0x454ee8(0x106)]((0x0,fs_1[_0x454ee8(0xeb)])(_0x2d2f92,_0x454ee8(0x90))[_0x454ee8(0x72)](),'hex');if(_0x241060[_0x454ee8(0xee)]!==0x20)return null;const _0x1c30e8=(0x0,vault_1['decrypt'])((0x0,fs_1[_0x454ee8(0xeb)])(_0xca7cfd,_0x177bfe[_0x454ee8(0xdc)])['trim'](),_0x241060);if(!_0x1c30e8)return null;if(_0x1c30e8[_0x454ee8(0xbc)]('{')){const _0x56ab65=JSON[_0x454ee8(0xd9)](_0x1c30e8);return{'jwt':_0x56ab65[_0x454ee8(0xdf)],'refresh':_0x56ab65['refresh']??null};}return{'jwt':_0x1c30e8,'refresh':null};}catch{return null;}}function saveTokens(_0x1cb44b,_0x1d8c8b){const _0x29f6a8=_0x6a6cd8,_0x2b1c83={'CfOCJ':'utf-8','CXSWC':_0x29f6a8(0x8e)};(0x0,vault_1[_0x29f6a8(0xd8)])(_0x1cb44b);const _0x255e55=(0x0,vault_1[_0x29f6a8(0xbd)])(_0x1cb44b),_0x12e519=JSON[_0x29f6a8(0x9e)]({'jwt':_0x1d8c8b[_0x29f6a8(0xdf)],'refresh':_0x1d8c8b[_0x29f6a8(0xb4)]});(0x0,fs_1[_0x29f6a8(0xe4)])((0x0,path_1['join'])(_0x1cb44b,'portal-token.enc'),(0x0,vault_1[_0x29f6a8(0xc6)])(_0x12e519,_0x255e55),{'encoding':_0x2b1c83[_0x29f6a8(0xaf)],'mode':0x180}),(0x0,fs_1[_0x29f6a8(0x85)])((0x0,path_1[_0x29f6a8(0x70)])(_0x1cb44b,_0x2b1c83[_0x29f6a8(0x94)]),0x180);}function isJwtExpired(_0x412ba9){const _0x21af41=_0x6a6cd8,_0xb7d243={'aLGsx':_0x21af41(0xf6),'gcumP':function(_0x262d21,_0x5b9c96){return _0x262d21<_0x5b9c96;},'AEZbd':function(_0x1e571a,_0x4c5635){return _0x1e571a*_0x4c5635;}};try{const _0x13f6fe=JSON[_0x21af41(0xd9)](Buffer[_0x21af41(0x106)](_0x412ba9['split']('.')[0x1],_0xb7d243[_0x21af41(0xb3)])[_0x21af41(0xba)]());return _0xb7d243['gcumP'](_0xb7d243[_0x21af41(0x102)](_0x13f6fe[_0x21af41(0xd2)],0x3e8),Date['now']()+0xea60);}catch{return!![];}}async function interactiveLogin(_0x17c438){const _0x3d918e=_0x6a6cd8,_0x4a3d08={'EamOO':_0x3d918e(0x9f),'oLfea':_0x3d918e(0xf0),'YsbFm':'application/json','lfeZv':_0x3d918e(0xcd),'vmxUR':_0x3d918e(0x74),'rjmDX':'ログインに3回失敗しました。終了します。\x0a'};process[_0x3d918e(0xd7)]['write']('\x0a'+_0x17c438[_0x3d918e(0xae)]+_0x3d918e(0xfe));for(let _0x672794=0x0;_0x672794<0x3;_0x672794++){const _0x33c8d1=await(0x0,prompt_1[_0x3d918e(0x8a)])('メールアドレス:\x20'),_0x533ae0=await(0x0,prompt_1[_0x3d918e(0xfd)])(_0x4a3d08['EamOO']);try{const _0x511a97=await fetch(_0x17c438[_0x3d918e(0x8b)]+_0x3d918e(0x9b),{'method':_0x4a3d08[_0x3d918e(0xa3)],'headers':{'Content-Type':_0x4a3d08['YsbFm']},'body':JSON[_0x3d918e(0x9e)]({'email':_0x33c8d1,'password':_0x533ae0})}),_0x13d460=await _0x511a97[_0x3d918e(0xf2)]();if(_0x511a97['ok']&&_0x13d460[_0x3d918e(0xd3)])return process['stdout']['write'](_0x4a3d08[_0x3d918e(0x71)]),{'jwt':_0x13d460[_0x3d918e(0xd3)],'refresh':_0x13d460[_0x3d918e(0xd5)]??null};process[_0x3d918e(0xb8)]['write']('ログイン失敗:\x20'+(_0x13d460['error']??_0x4a3d08[_0x3d918e(0x107)])+'\x0a');}catch{process[_0x3d918e(0xb8)][_0x3d918e(0x99)]('サーバーに接続できませんでした。ネットワークを確認してください。\x0a');}}process[_0x3d918e(0xb8)][_0x3d918e(0x99)](_0x4a3d08[_0x3d918e(0x77)]),process[_0x3d918e(0xb7)](0x1);}async function refreshTokens(_0x73ccf1,_0x5d1ab0){const _0x20dd84=_0x6a6cd8;try{const _0x665968=await fetch(_0x73ccf1[_0x20dd84(0x8b)]+_0x20dd84(0xd6),{'method':_0x20dd84(0xf0),'headers':{'Content-Type':_0x20dd84(0xe0)},'body':JSON[_0x20dd84(0x9e)]({'refresh_token':_0x5d1ab0})});if(!_0x665968['ok'])return null;const _0x5acdd3=await _0x665968[_0x20dd84(0xf2)]();if(!_0x5acdd3[_0x20dd84(0xd3)])return null;return{'jwt':_0x5acdd3[_0x20dd84(0xd3)],'refresh':_0x5acdd3[_0x20dd84(0xd5)]??_0x5d1ab0};}catch{return null;}}async function ensureJwt(_0x5c327a,_0x118c1b){const _0x529170=_0x6a6cd8,_0x5de67c={'KnrMe':function(_0x57daa3,_0x407cbc){return _0x57daa3(_0x407cbc);},'Nxnpc':function(_0x47109a,_0x5a0631){return _0x47109a(_0x5a0631);},'rTEaC':function(_0x53b8c7,_0x3dc8c6,_0x30e461){return _0x53b8c7(_0x3dc8c6,_0x30e461);}},_0x3671cb=_0x5de67c[_0x529170(0xfb)](readSavedTokens,_0x118c1b);if(_0x3671cb&&!_0x5de67c[_0x529170(0xb2)](isJwtExpired,_0x3671cb[_0x529170(0xdf)]))return _0x3671cb[_0x529170(0xdf)];if(_0x3671cb?.[_0x529170(0xb4)]){const _0x32edbf=await _0x5de67c[_0x529170(0xc2)](refreshTokens,_0x5c327a,_0x3671cb[_0x529170(0xb4)]);if(_0x32edbf)return saveTokens(_0x118c1b,_0x32edbf),_0x32edbf[_0x529170(0xdf)];}const _0x36dae0=await interactiveLogin(_0x5c327a);return saveTokens(_0x118c1b,_0x36dae0),_0x36dae0[_0x529170(0xdf)];}async function resolveSlot(_0x4de336,_0x3c2caf,_0x48d6fd){const _0x20ee03=_0x6a6cd8,_0x4286ae={'dRndl':function(_0x549006,_0x5f129a){return _0x549006(_0x5f129a);},'fArAK':function(_0x4e9900,_0x2a1ff2,_0x4eb196){return _0x4e9900(_0x2a1ff2,_0x4eb196);}},_0x326806=_0x4de336[_0x20ee03(0x8b)]+'/api/agents/slot/'+_0x48d6fd+_0x20ee03(0xc7)+_0x4286ae[_0x20ee03(0xbe)](encodeURIComponent,_0x4de336[_0x20ee03(0xae)]),_0x128c89=await _0x4286ae[_0x20ee03(0xea)](fetch,_0x326806,{'headers':{'Authorization':_0x20ee03(0xc3)+_0x3c2caf}});!_0x128c89['ok']&&(process[_0x20ee03(0xb8)][_0x20ee03(0x99)](_0x20ee03(0xf3)+_0x128c89[_0x20ee03(0x83)]+_0x20ee03(0x80)),process['exit'](0x1));const _0x4af242=await _0x128c89[_0x20ee03(0xf2)]();return(_0x4af242[_0x20ee03(0x9a)]||!_0x4af242[_0x20ee03(0xb1)])&&(process[_0x20ee03(0xb8)][_0x20ee03(0x99)](_0x20ee03(0x98)+_0x48d6fd+_0x20ee03(0xed)),process[_0x20ee03(0xb7)](0x1)),{'knowledge_keyword':_0x4af242[_0x20ee03(0xb1)],'greeting':_0x4af242['greeting']??'','name':_0x4af242[_0x20ee03(0x88)]??''};}function readMemo(){const _0x219692=_0x6a6cd8,_0x49b169={'DTCcv':_0x219692(0x7f),'YCMDY':_0x219692(0x90)},_0x1aee31=(0x0,path_1[_0x219692(0x70)])(process[_0x219692(0x73)](),_0x219692(0x91),_0x49b169[_0x219692(0x9d)]);if(!(0x0,fs_1[_0x219692(0xc4)])(_0x1aee31))return'';try{const _0x2887a6=(0x0,fs_1[_0x219692(0xeb)])(_0x1aee31,_0x49b169[_0x219692(0xcb)])[_0x219692(0x72)]();return _0x2887a6?'\x0a\x0a---\x0a📝\x20プロジェクトメモ:\x0a'+_0x2887a6:'';}catch{return'';}}function buildGreeting(_0x3460f2,_0x52dcf0,_0x484f48){const _0x3642d8=_0x6a6cd8,_0x5e4ce6={'KZdLY':function(_0x3238ac,_0x2a7ec8){return _0x3238ac+_0x2a7ec8;}},_0x2f0eb4=_0x5e4ce6['KZdLY'](_0x5e4ce6[_0x3642d8(0x81)](_0x5e4ce6[_0x3642d8(0x81)](_0x5e4ce6['KZdLY']('>\x20'+_0x3460f2[_0x3642d8(0xae)]+_0x3642d8(0xa6),''+_0x3460f2[_0x3642d8(0xae)]+(_0x52dcf0['name']?_0x5e4ce6[_0x3642d8(0x81)](_0x3642d8(0xb6),_0x52dcf0['name']):'')+'\x0a'),'─────────────\x0a'),'さあ始めましょう\x0a\x0a')+(_0x3642d8(0xac)+_0x3460f2[_0x3642d8(0xae)]+_0x3642d8(0xcf)+_0x52dcf0[_0x3642d8(0xb1)]+_0x3642d8(0x7a)),_0x3642d8(0x96)+_0x52dcf0[_0x3642d8(0xb1)]+_0x3642d8(0x75)),_0x1f2aa7=_0x52dcf0[_0x3642d8(0xb0)]?'\x0a\x0a'+_0x52dcf0['greeting']:'';return _0x5e4ce6['KZdLY'](_0x2f0eb4+_0x1f2aa7,_0x484f48);}function claudeSupportsStrictMcpConfig(){const _0x4cf5ec=_0x6a6cd8,_0x4c9e45={'rcalM':_0x4cf5ec(0xde),'ESeWV':'--help','JorKR':_0x4cf5ec(0x90)};try{const _0x26eb15=(0x0,child_process_1[_0x4cf5ec(0x7d)])(_0x4c9e45['rcalM'],[_0x4c9e45['ESeWV']],{'encoding':_0x4c9e45[_0x4cf5ec(0xf9)]});return(_0x26eb15[_0x4cf5ec(0xd7)]??'')[_0x4cf5ec(0x76)](_0x4cf5ec(0x103));}catch{return![];}}async function fetchBundledMcps(_0x164f34,_0x511193){const _0x1441d4=_0x6a6cd8,_0x1e1a5b={'NAUzz':function(_0x20a7fd,_0x427894){return _0x20a7fd(_0x427894);},'rMSvp':function(_0x5860ba,_0x437dad,_0x400ac9){return _0x5860ba(_0x437dad,_0x400ac9);}};try{const _0x2a60d0=_0x164f34[_0x1441d4(0x8b)]+_0x1441d4(0xda)+_0x1e1a5b['NAUzz'](encodeURIComponent,_0x164f34[_0x1441d4(0xae)])+_0x1441d4(0xfc),_0x2756fe=await _0x1e1a5b['rMSvp'](fetch,_0x2a60d0,{'headers':{'Authorization':_0x1441d4(0xc3)+_0x511193}});if(!_0x2756fe['ok'])return[];const _0xcf0c6e=await _0x2756fe['json']();return Array[_0x1441d4(0xa9)](_0xcf0c6e)?_0xcf0c6e:[];}catch{return[];}}function mcpKey(_0x5df81a,_0x201b45){const _0x4e76c2=_0x6a6cd8;let _0x717762=_0x5df81a[_0x4e76c2(0x86)](/[^a-zA-Z0-9]+/g,'-')[_0x4e76c2(0x86)](/^-+|-+$/g,'')[_0x4e76c2(0xb9)]()||_0x4e76c2(0x82),_0x5807c8=_0x717762,_0x4965e6=0x2;while(_0x201b45[_0x4e76c2(0x79)](_0x5807c8))_0x5807c8=_0x717762+'-'+_0x4965e6++;return _0x201b45[_0x4e76c2(0xd4)](_0x5807c8),_0x5807c8;}function launchClaude(_0x1d5a00,_0x410885,_0x1b9508,_0x4fc9d,_0xa13c1d){const _0x4a2ac0=_0x6a6cd8,_0x12b93e={'blecH':_0x4a2ac0(0xb5),'JrQfC':'index.js','GQNnT':_0x4a2ac0(0xa1),'lcDqo':'npx','IbTVW':_0x4a2ac0(0x90),'WIMGA':_0x4a2ac0(0xa7),'oPUbM':function(_0x5be4db){return _0x5be4db();},'eBOBo':_0x4a2ac0(0xf4),'wSSyy':_0x4a2ac0(0x9a),'wrunF':'exit'},_0x33d2f4=(0x0,path_1[_0x4a2ac0(0x70)])(__dirname,_0x12b93e[_0x4a2ac0(0xc8)]),_0x310930=_0x1d5a00[_0x4a2ac0(0xae)]['toLowerCase'](),_0xaaf3f6={[_0x310930]:{'command':_0x12b93e[_0x4a2ac0(0xf7)],'args':[_0x33d2f4],'env':{'TOOL_TOKEN':_0x410885,'PORTAL_URL':_0x1d5a00[_0x4a2ac0(0x8b)],'TOOL_KEYWORD':_0x1b9508[_0x4a2ac0(0xb1)],'TOOL_LANGUAGE':'ja'}}},_0x81a4c7=(0x0,vault_1[_0x4a2ac0(0x7b)])(_0x1d5a00[_0x4a2ac0(0xae)]),_0x38a7d6=new Set([_0x310930]);for(const _0x44bc61 of _0xa13c1d){if(!_0x44bc61[_0x4a2ac0(0xdd)])continue;_0xaaf3f6[mcpKey(_0x44bc61[_0x4a2ac0(0xdd)],_0x38a7d6)]={'command':_0x12b93e[_0x4a2ac0(0x9c)],'args':['-y',_0x44bc61[_0x4a2ac0(0xdd)]],'env':{'PORTAL_URL':_0x1d5a00[_0x4a2ac0(0x8b)],'TOOL_TOKEN':_0x410885,..._0x44bc61[_0x4a2ac0(0x8c)]??{},..._0x81a4c7}};}const _0x273a0f={'mcpServers':_0xaaf3f6},_0x2c33c0=(0x0,path_1[_0x4a2ac0(0x70)])((0x0,os_1[_0x4a2ac0(0xe7)])(),_0x310930+_0x4a2ac0(0xa5)+process[_0x4a2ac0(0xf1)]+'-'+Date[_0x4a2ac0(0xe6)]()+_0x4a2ac0(0xf5));(0x0,fs_1[_0x4a2ac0(0xe4)])(_0x2c33c0,JSON['stringify'](_0x273a0f),{'encoding':_0x12b93e[_0x4a2ac0(0xff)],'mode':0x180});const _0x2e61c7=[_0x4fc9d,_0x4a2ac0(0x78),_0x12b93e[_0x4a2ac0(0xe5)],_0x2c33c0];if(_0x12b93e['oPUbM'](claudeSupportsStrictMcpConfig))_0x2e61c7[_0x4a2ac0(0xec)](_0x4a2ac0(0x103));const _0x38250a=(0x0,child_process_1['spawn'])(_0x4a2ac0(0xde),_0x2e61c7,{'stdio':_0x12b93e[_0x4a2ac0(0xbf)]});_0x38250a['on'](_0x12b93e['wSSyy'],_0x4086fc=>{const _0x255c2a=_0x4a2ac0;process[_0x255c2a(0xb8)][_0x255c2a(0x99)]('claude\x20の起動に失敗しました:\x20'+_0x4086fc[_0x255c2a(0x84)]+'\x0a'),process[_0x255c2a(0xb8)]['write'](_0x12b93e[_0x255c2a(0x97)]),process[_0x255c2a(0xb7)](0x1);}),_0x38250a['on'](_0x12b93e[_0x4a2ac0(0x8f)],_0x1dd9f8=>process[_0x4a2ac0(0xb7)](_0x1dd9f8??0x0));}const PACKAGE_NAME=_0x6a6cd8(0xc9);function isNewer(_0xad741a,_0x245032){const _0x389e18=_0x6a6cd8,_0x5b30d4={'WREIW':function(_0x422182,_0x4d1c75){return _0x422182>_0x4d1c75;},'umMBR':function(_0x3ebf8d,_0x55f7ac){return _0x3ebf8d<_0x55f7ac;}},_0x3d9fd4=_0xad741a[_0x389e18(0xd1)]('.')[_0x389e18(0x87)](Number),_0x523d5f=_0x245032[_0x389e18(0xd1)]('.')[_0x389e18(0x87)](Number);for(let _0x21ad36=0x0;_0x21ad36<0x3;_0x21ad36++){if(_0x5b30d4['WREIW'](_0x3d9fd4[_0x21ad36]||0x0,_0x523d5f[_0x21ad36]||0x0))return!![];if(_0x5b30d4[_0x389e18(0xa0)](_0x3d9fd4[_0x21ad36]||0x0,_0x523d5f[_0x21ad36]||0x0))return![];}return![];}function _0xfe83(_0x4eff73,_0x4a12d3){_0x4eff73=_0x4eff73-0x70;const _0x5afe7a=_0x5afe();let _0xfe831f=_0x5afe7a[_0x4eff73];if(_0xfe83['ElgARc']===undefined){var _0xa0d24a=function(_0x3b1054){const _0x240dbe='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4876cf='',_0x867698='';for(let _0x201c16=0x0,_0x23c8b8,_0x5a326c,_0x59a6e7=0x0;_0x5a326c=_0x3b1054['charAt'](_0x59a6e7++);~_0x5a326c&&(_0x23c8b8=_0x201c16%0x4?_0x23c8b8*0x40+_0x5a326c:_0x5a326c,_0x201c16++%0x4)?_0x4876cf+=String['fromCharCode'](0xff&_0x23c8b8>>(-0x2*_0x201c16&0x6)):0x0){_0x5a326c=_0x240dbe['indexOf'](_0x5a326c);}for(let _0x125690=0x0,_0xc44d28=_0x4876cf['length'];_0x125690<_0xc44d28;_0x125690++){_0x867698+='%'+('00'+_0x4876cf['charCodeAt'](_0x125690)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x867698);};_0xfe83['tlnxok']=_0xa0d24a,_0xfe83['xpOkbz']={},_0xfe83['ElgARc']=!![];}const _0x5224a6=_0x5afe7a[0x0],_0x51bbf1=_0x4eff73+_0x5224a6,_0x299cf1=_0xfe83['xpOkbz'][_0x51bbf1];return!_0x299cf1?(_0xfe831f=_0xfe83['tlnxok'](_0xfe831f),_0xfe83['xpOkbz'][_0x51bbf1]=_0xfe831f):_0xfe831f=_0x299cf1,_0xfe831f;}async function checkForUpdate(){const _0x24d1e4=_0x6a6cd8,_0x40f78c={'LvNar':'package.json','RqtmG':_0x24d1e4(0x90),'cwUbl':function(_0x1c9ace,_0x841fa2,_0x141ae0){return _0x1c9ace(_0x841fa2,_0x141ae0);}};try{const _0x50ff86=JSON[_0x24d1e4(0xd9)]((0x0,fs_1[_0x24d1e4(0xeb)])((0x0,path_1['join'])(__dirname,'..',_0x40f78c[_0x24d1e4(0x104)]),_0x40f78c['RqtmG'])),_0xcae6e5=await _0x40f78c[_0x24d1e4(0xfa)](fetch,_0x24d1e4(0x101)+PACKAGE_NAME+_0x24d1e4(0xc5),{'signal':AbortSignal['timeout'](0xbb8)});if(!_0xcae6e5['ok'])return;const _0x27b25d=await _0xcae6e5[_0x24d1e4(0xf2)]();if(_0x27b25d[_0x24d1e4(0xe2)]&&isNewer(_0x27b25d[_0x24d1e4(0xe2)],_0x50ff86['version'])){process[_0x24d1e4(0xd7)]['write'](_0x24d1e4(0xca)+_0x27b25d[_0x24d1e4(0xe2)]+'\x20が利用可能です(現在\x20'+_0x50ff86[_0x24d1e4(0xe2)]+')。バックグラウンドで更新します(次回起動から反映)。\x0a');const _0xb6f47=(0x0,child_process_1['spawn'])(_0x24d1e4(0x8d),[_0x24d1e4(0xef),'-g',PACKAGE_NAME+_0x24d1e4(0x7c)],{'detached':!![],'stdio':_0x24d1e4(0xe1)});_0xb6f47[_0x24d1e4(0xe9)]();}}catch{}}async function runLauncher(_0x32721b,_0x5143fc){const _0x49c229=_0x6a6cd8,_0x2a4bc7={'ALptw':function(_0x353cb4,_0x376638,_0x478b04,_0x39c37f){return _0x353cb4(_0x376638,_0x478b04,_0x39c37f);},'yTZkW':function(_0x4ddfc9){return _0x4ddfc9();},'VSTAp':function(_0x47e5f3,_0x111c35,_0xc70e5f,_0xad7aca){return _0x47e5f3(_0x111c35,_0xc70e5f,_0xad7aca);},'ulFoz':function(_0x2986fe,_0x3c7075,_0x4254d3,_0x2fde92,_0x1d6381,_0x50cd0d){return _0x2986fe(_0x3c7075,_0x4254d3,_0x2fde92,_0x1d6381,_0x50cd0d);}},_0x513d4f=loadConfig(_0x5143fc);await checkForUpdate();const _0x4bee98=(0x0,vault_1[_0x49c229(0xd0)])(_0x513d4f[_0x49c229(0xae)]),_0x1f50c4=await ensureJwt(_0x513d4f,_0x4bee98),_0x2ad05d=await _0x2a4bc7[_0x49c229(0x100)](resolveSlot,_0x513d4f,_0x1f50c4,_0x32721b),_0x6052f8=await fetchBundledMcps(_0x513d4f,_0x1f50c4),_0x151f8a=_0x2a4bc7[_0x49c229(0xc0)](readMemo),_0x2cd531=_0x2a4bc7[_0x49c229(0xaa)](buildGreeting,_0x513d4f,_0x2ad05d,_0x151f8a);_0x2a4bc7['ulFoz'](launchClaude,_0x513d4f,_0x1f50c4,_0x2ad05d,_0x2cd531,_0x6052f8);}
|
package/dist/prompt.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
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
|
+
bytes.pop();
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
bytes.push(code);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
stdin.on("data", onData);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=prompt.js.map
|
package/dist/vault.js
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================================
|
|
3
|
+
// ローカル暗号金庫(FUNNY BOOTH 共通)
|
|
4
|
+
//
|
|
5
|
+
// クライアントのマシン上の ~/.{toolName}/ に、認証情報を AES-256-CBC で保管する。
|
|
6
|
+
// - vault.key : 32byte のローカル鍵(tokens/secrets 共用。一度作ったら再利用)
|
|
7
|
+
// - portal-token.enc : ログイン JWT/refresh(launcher が管理)
|
|
8
|
+
// - secrets.enc : 名前付きシークレットの JSON マップ(OPENAI_API_KEY 等)
|
|
9
|
+
//
|
|
10
|
+
// 設計方針:
|
|
11
|
+
// - シークレットは「クライアント自身のキー」をクライアントのマシンに置く。
|
|
12
|
+
// 運用者のポータル DB には一切載せない(露出を構造的に防ぐ)。
|
|
13
|
+
// - 起動時に launcher が読み、同梱MCPの env にポータル env より優先して注入する。
|
|
14
|
+
// ============================================================================
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.configDir = configDir;
|
|
17
|
+
exports.ensureConfigDir = ensureConfigDir;
|
|
18
|
+
exports.getOrCreateVaultKey = getOrCreateVaultKey;
|
|
19
|
+
exports.encrypt = encrypt;
|
|
20
|
+
exports.decrypt = decrypt;
|
|
21
|
+
exports.readSecrets = readSecrets;
|
|
22
|
+
exports.setSecret = setSecret;
|
|
23
|
+
exports.deleteSecret = deleteSecret;
|
|
24
|
+
exports.listSecretNames = listSecretNames;
|
|
25
|
+
const crypto_1 = require("crypto");
|
|
26
|
+
const fs_1 = require("fs");
|
|
27
|
+
const os_1 = require("os");
|
|
28
|
+
const path_1 = require("path");
|
|
29
|
+
// ~/.{toolName}(小文字、独立名前空間)
|
|
30
|
+
function configDir(toolName) {
|
|
31
|
+
return (0, path_1.join)((0, os_1.homedir)(), "." + toolName.toLowerCase());
|
|
32
|
+
}
|
|
33
|
+
function ensureConfigDir(dir) {
|
|
34
|
+
if (!(0, fs_1.existsSync)(dir))
|
|
35
|
+
(0, fs_1.mkdirSync)(dir, { recursive: true, mode: 0o700 });
|
|
36
|
+
}
|
|
37
|
+
// tokens/secrets 共用の 32byte AES 鍵。あれば再利用、無ければ生成する。
|
|
38
|
+
// (鍵をトークン保存の度に作り直すと secrets.enc が復号不能になるため「安定した1鍵」を保つ)
|
|
39
|
+
function getOrCreateVaultKey(dir) {
|
|
40
|
+
ensureConfigDir(dir);
|
|
41
|
+
const keyFile = (0, path_1.join)(dir, "vault.key");
|
|
42
|
+
if ((0, fs_1.existsSync)(keyFile)) {
|
|
43
|
+
const existing = Buffer.from((0, fs_1.readFileSync)(keyFile, "utf-8").trim(), "hex");
|
|
44
|
+
if (existing.length === 32)
|
|
45
|
+
return existing;
|
|
46
|
+
}
|
|
47
|
+
const key = (0, crypto_1.randomBytes)(32);
|
|
48
|
+
(0, fs_1.writeFileSync)(keyFile, key.toString("hex"), { encoding: "utf-8", mode: 0o600 });
|
|
49
|
+
(0, fs_1.chmodSync)(keyFile, 0o600);
|
|
50
|
+
return key;
|
|
51
|
+
}
|
|
52
|
+
function encrypt(plain, key) {
|
|
53
|
+
const iv = (0, crypto_1.randomBytes)(16);
|
|
54
|
+
const cipher = (0, crypto_1.createCipheriv)("aes-256-cbc", key, iv);
|
|
55
|
+
const enc = Buffer.concat([cipher.update(plain, "utf8"), cipher.final()]);
|
|
56
|
+
return iv.toString("hex") + ":" + enc.toString("hex");
|
|
57
|
+
}
|
|
58
|
+
function decrypt(payload, key) {
|
|
59
|
+
try {
|
|
60
|
+
const [ivHex, dataHex] = payload.split(":");
|
|
61
|
+
if (!ivHex || !dataHex)
|
|
62
|
+
return null;
|
|
63
|
+
const decipher = (0, crypto_1.createDecipheriv)("aes-256-cbc", key, Buffer.from(ivHex, "hex"));
|
|
64
|
+
const dec = Buffer.concat([decipher.update(Buffer.from(dataHex, "hex")), decipher.final()]);
|
|
65
|
+
return dec.toString("utf8");
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const SECRETS_FILE = "secrets.enc";
|
|
72
|
+
// 金庫全体を復号して名前→値のマップで返す(無ければ空)
|
|
73
|
+
function readSecrets(toolName) {
|
|
74
|
+
const dir = configDir(toolName);
|
|
75
|
+
const file = (0, path_1.join)(dir, SECRETS_FILE);
|
|
76
|
+
if (!(0, fs_1.existsSync)(file))
|
|
77
|
+
return {};
|
|
78
|
+
try {
|
|
79
|
+
const key = getOrCreateVaultKey(dir);
|
|
80
|
+
const plain = decrypt((0, fs_1.readFileSync)(file, "utf-8").trim(), key);
|
|
81
|
+
if (!plain)
|
|
82
|
+
return {};
|
|
83
|
+
const obj = JSON.parse(plain);
|
|
84
|
+
return obj && typeof obj === "object" ? obj : {};
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return {};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function writeSecrets(toolName, secrets) {
|
|
91
|
+
const dir = configDir(toolName);
|
|
92
|
+
ensureConfigDir(dir);
|
|
93
|
+
const key = getOrCreateVaultKey(dir);
|
|
94
|
+
const file = (0, path_1.join)(dir, SECRETS_FILE);
|
|
95
|
+
(0, fs_1.writeFileSync)(file, encrypt(JSON.stringify(secrets), key), { encoding: "utf-8", mode: 0o600 });
|
|
96
|
+
(0, fs_1.chmodSync)(file, 0o600);
|
|
97
|
+
}
|
|
98
|
+
function setSecret(toolName, name, value) {
|
|
99
|
+
const secrets = readSecrets(toolName);
|
|
100
|
+
secrets[name] = value;
|
|
101
|
+
writeSecrets(toolName, secrets);
|
|
102
|
+
}
|
|
103
|
+
function deleteSecret(toolName, name) {
|
|
104
|
+
const secrets = readSecrets(toolName);
|
|
105
|
+
if (!(name in secrets))
|
|
106
|
+
return false;
|
|
107
|
+
delete secrets[name];
|
|
108
|
+
writeSecrets(toolName, secrets);
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
// 値は返さず名前だけ列挙する(露出を避ける)
|
|
112
|
+
function listSecretNames(toolName) {
|
|
113
|
+
return Object.keys(readSecrets(toolName));
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=vault.js.map
|