@funny-booth/agent-core 0.1.19 → 0.1.21
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/feedback.js +1 -1
- package/dist/index.js +1 -1
- package/dist/launcher.js +1 -1
- package/dist/mcpPackages.js +1 -1
- package/dist/vault.js +349 -59
- package/package.json +2 -1
package/dist/feedback.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const
|
|
1
|
+
'use strict';const _0x1ccacd=_0x2089;(function(_0x865e49,_0x50a0c3){const _0x590249=_0x2089,_0x5df1d7=_0x865e49();while(!![]){try{const _0x1a051c=parseInt(_0x590249(0x140))/0x1+-parseInt(_0x590249(0x151))/0x2+parseInt(_0x590249(0x14f))/0x3*(parseInt(_0x590249(0x154))/0x4)+-parseInt(_0x590249(0x16f))/0x5*(parseInt(_0x590249(0x14e))/0x6)+parseInt(_0x590249(0x13f))/0x7+parseInt(_0x590249(0x153))/0x8+parseInt(_0x590249(0x14d))/0x9*(parseInt(_0x590249(0x164))/0xa);if(_0x1a051c===_0x50a0c3)break;else _0x5df1d7['push'](_0x5df1d7['shift']());}catch(_0x25a08b){_0x5df1d7['push'](_0x5df1d7['shift']());}}}(_0x4e21,0xf1210));function _0x4e21(){const _0xcf6de6=['AM9PBG','Bhb5Cw4','vhfKqKW','C3rKzxjY','C3rYAw5NAwz5','DMvYC2LVBG','AgfZ','yxbWBgLJyxrPB24VANnVBG','mtC2ota5nu12BuXvAG','6iEQ5yUv6kIy6yYY44gU6ycb5l+H44gR5AsX5Pwx44gx44g+44gx44gFoIbivfrqia','mJq5ndeYmwPts05SBW','ntq0odi4qLjjDeXz','C2vUzf9MzwvKyMfJAYdJGAFKV53LROJMI4xLVzpJGAVPGihJGApJGABJGy/JGAdJGzxJGytVViJMOyJKU7BJGA7KUk3OUQVJGOtNP5JLR4BJGA/MM7JJGyVJGARJGytVViNJGii','zxjYB3i','Cg9ZDezLzwrIywnR','ioobJoodNEodVoocV+odQYa','Dw5RBM93BG','CgfJA2fNzs5QC29U','cGOTls0k','ywrK','u0vorf9gruveqKfds19ervnduKLqveLptG','C3rHDhvZ','s05pv0XfreDfx0zpt1rfuG','mEs7TUobQZhJGAtJGA7OQBhPOyZJGPlJGihKVzxJGyZOTBFJGy3JGz/JGyVJG7VJGANJGyBJGARJGApJGABJGBVJGzFJGytJGyVJGyZKV53LROJMI4xLVzpJGAVKVj3JGO/JGOVJGOJJGyBJGAVMM7JJGy/JGii','mJiZmLbJzhbUEa','mJrSt3Lzruy','m3jmv0jtCa','lsdMIyVPOiBMM7JJGA7OQQtJGORJG7VLJ6tJGytOQjJOV7dJG7VOTRpJGORJGARJGytMIyVPOiyk','mZC2mti4mhfQAK1OCq','C2HVDwXKqxv0B1jLCg9YDa','mZeWmdC4ngLVwKDSAq','ntq2nJa0v1HsAezp','ioobJoodNEodVoocV+odQ+obPYbivfrqia','ywDLBNqTy29YzsdJGA7JG4tJG7ZJG6SG','lsdLM57PGB/NRzBJGPlOH6RLIiBJGAFKVzZJGOVLV4xOPOhJGyZJGylJGApJGz/KUi3KVR/JGihJGylJGOZJGBdKVzZMPA3JGyZPGj/JGy/NORRLRP/JGAVJGARJGOVMQz/OG70k','yxv0B1jLCg9YDezHAwX1CMu','5l2C5QwT5lIT44gR5QYH44gU44gP44km44gl44gR5Rcx44gL44ge44gF44kj44cb5l2C5QwT44gU5yY65yIh44kk44gNihnLBMrFzMvLzgjHy2SG44ks5zg844kt44gN5l+D5A6i5OUf5B2t44gR6ycb44kl44gt44gO77Yi44oM44o844k244o844gR6Ac844g+44km44gM44ge44gQ44gp44gM44kc6ycb44kl77YjoGO','ioocKUwpL+obKEwpLUobO+obN++8IoIhQUwlLEIOMoMmSU+8IEoaGG','l2fWAs9MzwvKyMfJAW','44oM44o844k244o844gR6Ac844g+44km44gM44ge44gQ44gp44gM44kc44cb5Rcx44gL44ge44gF44kj5l2C5QwT44gU5yY65yIh44kk44gN6ycb44gJ44gM44ki44ge44cc5Qgi5lU244gU5lIT6lQR44o76AgN5A6I5Oof5AcX44o756Ey5A+g44gU5ycK44gV5PU444gl44gQ44ge44cc','4Oc7ios9NoALREobRUwmUUwiH+ocIUobP+AmR+ocIUI/LoocIUoaGEobK+obRUAjI+MGHUABUoodU+odHoodVoodQ+odU+wqJoAISu1duoobRUs4JEwfT+wqIoocHoAuUEwwHoEcUEobQ+AWL+obPEobHoobPUobHoobN+ocIEoaGq','ywDLBNqTy29YztO','D3jPDgu','6iEQ5yUv6kIy6yYY44gU6ycb5l+H44gR5AsX5Pwx44gx44g+44gx44gFoIa','6ycb44kl44gU44gV44cb44oe44o844oR576K44gD44gU44kc44gU44g444gU5OYh5Pgy44gG44gr44cc44oM44o844k244o844gU5Qgi5lU244gU5lIT6lQR44o76AgN5A6I5Oof5AcX44o756Ey5A+g44gU5ycK44gV5PU444gl44gQ44ge44cc','Cgf0Aa','ue9tva','mte1mJuWtxbOBhrX','rKvfrejbq0TFsu5tvfjvq1rjt05t','x19LC01VzhvSzq'];_0x4e21=function(){return _0xcf6de6;};return _0x4e21();}function _0x2089(_0x52df86,_0x3f9dd5){_0x52df86=_0x52df86-0x13f;const _0x4e2111=_0x4e21();let _0x20895f=_0x4e2111[_0x52df86];if(_0x2089['gtpaFT']===undefined){var _0x12de5a=function(_0x23b43b){const _0xd123a1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5b957f='',_0x133faa='';for(let _0x5c9ae0=0x0,_0x316472,_0x24388b,_0x55e523=0x0;_0x24388b=_0x23b43b['charAt'](_0x55e523++);~_0x24388b&&(_0x316472=_0x5c9ae0%0x4?_0x316472*0x40+_0x24388b:_0x24388b,_0x5c9ae0++%0x4)?_0x5b957f+=String['fromCharCode'](0xff&_0x316472>>(-0x2*_0x5c9ae0&0x6)):0x0){_0x24388b=_0xd123a1['indexOf'](_0x24388b);}for(let _0x832e55=0x0,_0x336a56=_0x5b957f['length'];_0x832e55<_0x336a56;_0x832e55++){_0x133faa+='%'+('00'+_0x5b957f['charCodeAt'](_0x832e55)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x133faa);};_0x2089['obqvPb']=_0x12de5a,_0x2089['tKEOux']={},_0x2089['gtpaFT']=!![];}const _0x12566a=_0x4e2111[0x0],_0x59514b=_0x52df86+_0x12566a,_0x4f2073=_0x2089['tKEOux'][_0x59514b];return!_0x4f2073?(_0x20895f=_0x2089['obqvPb'](_0x20895f),_0x2089['tKEOux'][_0x59514b]=_0x20895f):_0x20895f=_0x4f2073,_0x20895f;}Object['defineProperty'](exports,_0x1ccacd(0x166),{'value':!![]}),exports['SEND_FEEDBACK_DESCRIPTION']=exports[_0x1ccacd(0x14b)]=exports[_0x1ccacd(0x165)]=void 0x0,exports[_0x1ccacd(0x152)]=shouldAutoReport,exports['clientVersion']=clientVersion,exports[_0x1ccacd(0x143)]=postFeedback,exports[_0x1ccacd(0x158)]=autoReportFailure;const fs_1=require('fs'),path_1=require(_0x1ccacd(0x162));exports[_0x1ccacd(0x165)]='このセッションのツール群(agent-core\x20のツール、同梱MCP、load_knowledge\x20で読む手順書)は継続的に改修されている。'+_0x1ccacd(0x159)+'-\x20ツールや同梱MCPの不具合(エラー、誤動作、説明と違う挙動)\x0a'+_0x1ccacd(0x150)+_0x1ccacd(0x157)+_0x1ccacd(0x161)+_0x1ccacd(0x14c),exports[_0x1ccacd(0x14b)]=_0x1ccacd(0x147)+_0x1ccacd(0x15d)+_0x1ccacd(0x141),exports[_0x1ccacd(0x149)]='ツール群(agent-core・同梱MCP・手順書)の不具合や改善点を保守担当に送る。'+_0x1ccacd(0x15c);function shouldAutoReport(_0x3cd85a){return _0x3cd85a>=0x190&&_0x3cd85a!==0x191&&_0x3cd85a!==0x193;}function clientVersion(){const _0x2e5d7a=_0x1ccacd;try{return JSON['parse']((0x0,fs_1['readFileSync'])((0x0,path_1[_0x2e5d7a(0x167)])(__dirname,'..',_0x2e5d7a(0x146)),'utf-8'))[_0x2e5d7a(0x16c)];}catch{return _0x2e5d7a(0x145);}}async function postFeedback(_0x394c5d,_0x50485d,_0x28e287){const _0x327bd0=_0x1ccacd;return fetch(_0x394c5d+_0x327bd0(0x15b),{'method':_0x327bd0(0x163),'headers':{'Authorization':'Bearer\x20'+_0x50485d,'Content-Type':_0x327bd0(0x16e)},'body':JSON[_0x327bd0(0x16b)](_0x28e287)});}const reported=new Set();async function autoReportFailure(_0x25b0f9,_0x44de68,_0x327b77,_0x9ea608,_0x4c8aa5,_0x6f1e2c){const _0x15ddbe=_0x1ccacd,_0x1be56e={'lpyqn':function(_0x258bc6,_0x28731b){return _0x258bc6(_0x28731b);},'nOgjM':function(_0x1eca7e,_0x29b376,_0x41076f,_0x3f0889){return _0x1eca7e(_0x29b376,_0x41076f,_0x3f0889);},'TqdBL':_0x15ddbe(0x142)};if(!_0x1be56e[_0x15ddbe(0x168)](shouldAutoReport,_0x4c8aa5))return;const _0xd46cae=_0x9ea608+'\x20'+_0x4c8aa5+'\x20'+_0x6f1e2c;if(reported[_0x15ddbe(0x16d)](_0xd46cae))return;reported[_0x15ddbe(0x148)](_0xd46cae);try{const _0x3e7547=await _0x1be56e['nOgjM'](postFeedback,_0x25b0f9,_0x44de68,{'tool_name':_0x327b77,'kind':_0x1be56e[_0x15ddbe(0x169)],'target':_0x15ddbe(0x15e)+_0x9ea608,'title':_0x9ea608+_0x15ddbe(0x155)+_0x4c8aa5,'detail':_0x15ddbe(0x156)+_0x9ea608+_0x15ddbe(0x144)+_0x6f1e2c+'\x20を呼んで\x20HTTP\x20'+_0x4c8aa5+_0x15ddbe(0x15a),'client_version':clientVersion()});if(!_0x3e7547['ok'])process[_0x15ddbe(0x16a)]['write'](_0x15ddbe(0x170)+_0x3e7547[_0x15ddbe(0x14a)]+'\x0a');}catch(_0x754b05){process[_0x15ddbe(0x16a)][_0x15ddbe(0x15f)](_0x15ddbe(0x160)+_0x754b05['message']+'\x0a');}}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
'use strict';const _0x228fc0=_0x2529;(function(_0x3e9753,_0x457bc6){const _0x3e220b=_0x2529,_0xec1f82=_0x3e9753();while(!![]){try{const _0x2754cb=parseInt(_0x3e220b(0x1f5))/0x1+-parseInt(_0x3e220b(0x1c9))/0x2*(-parseInt(_0x3e220b(0x1c0))/0x3)+parseInt(_0x3e220b(0x1d7))/0x4*(-parseInt(_0x3e220b(0x1e9))/0x5)+parseInt(_0x3e220b(0x1f3))/0x6*(parseInt(_0x3e220b(0x203))/0x7)+parseInt(_0x3e220b(0x1dc))/0x8*(-parseInt(_0x3e220b(0x1bd))/0x9)+-parseInt(_0x3e220b(0x1f9))/0xa+parseInt(_0x3e220b(0x221))/0xb;if(_0x2754cb===_0x457bc6)break;else _0xec1f82['push'](_0xec1f82['shift']());}catch(_0x4b3286){_0xec1f82['push'](_0xec1f82['shift']());}}}(_0x336c,0xe34b2));Object[_0x228fc0(0x245)](exports,_0x228fc0(0x1d0),{'value':!![]});const mcp_js_1=require(_0x228fc0(0x217)),stdio_js_1=require(_0x228fc0(0x20a)),zod_1=require(_0x228fc0(0x1f6)),child_process_1=require('child_process'),fs_1=require('fs'),path_1=require(_0x228fc0(0x23d)),vault_1=require('./vault'),prompt_1=require(_0x228fc0(0x205)),feedback_1=require(_0x228fc0(0x1cf)),rawArgs=process['argv']['slice'](0x2),isSecretCommand=rawArgs[0x0]===_0x228fc0(0x23e);function _0x336c(){const _0x158e6e=['qvbj44kO44oP44o8oIa','rMf0ywW6ia','BwLU','y21xuve','5l2v44gR44gK44ge44gM44gl77Yi5l6loIbHz2vUDc1JB3jLlcba44og44od44kV44oQ44o844ojlcbazNvUBNKTyM9VDgGVD2L6yxjKlw9Yy2HLC3rYyxrVCU+8Iq','sgXzr00','EKvQz2G','twnWu2vYDMvY','4PYfioocT+odVoocR+odRoodG+odIca','ioocKUwjIUMzPoobL+obVUobL+obN+oaGG','ANnVBG','ue9tva','y2XPzw50vMvYC2LVBG','u2fSzxncB3q','AxnuvfK','mZqYsw1nwNzN','44k344o844kV44oS44od44oiia','DxfHAwq','mJa4mdCZmufcAwTNBW','C3rVCMvFC2vJCMv0ic8Gz2v0x3nLy3jLDcaVigXPC3rFC2vJCMv0CYaVigrLBgv0zv9ZzwnYzxqG44gm','DhjPBq','C2vJCMv0CY5LBMm','y29UDgvUDa','BwvZC2fNzq','Aw5ZDgfSBf9JB21Tyw5K','C3rKzxjY','C1rXz3e','mLv0sw1uEa','zgvZy3jPyMu','sezIB3K','EK9gvfi','5yMk6zMK44gz44kl44k344o844kV44oS44od44oi5zcn','ioobRUocPoodS+ocUEodIoodVoodQ+obJowUJos6HUobL+obVUobL+obN+oaGKnSyxvKzsbdB2rL44ks5yAn6lw35yUv44gx44gM44gp44gG44gv44ge44cccGRLRP/OOyZJGRpJG57JG7pJG4K6ia','lI9MzwvKyMfJAW','x19LC01VzhvSzq','5l+D566H5lIT44gU44k344o844kV44oS44od44oioGO','6kQn6kI85Oof5AcX44gm44gc44kk44g+44gB44kt44cc6lw35yUv44ox44oT44kW44oP44oG77YiBgf1BMnOzxlVViNJGyVJGONOTBFLI5xJGzFJGABJGy/JGAdJGzxJGytJGiik','ywDLBNqTy29Yzq','5l+D5A6i5OUf5B2t44gR6ycb44kk44g+44gx44gF44cc44gc44kk44gm44gO44gg44gu44gw44ge44g+44gz44cc5l2C5QwT44ks57AA44gr44gM44gp44gG44gv44ge44cc','C2v0u2vJCMv0','s3LhwuK','nZa4nJrrwMzszwG','AfHfs2y','44k344o844kV44oS44od44oi5zcn77Yi5l6loIbpuevoquLFqvbjx0TfwE+8Iq','BwfW','77Yj44cccG','mZy3nJi0CvnlweHl','ioobRUwaPoocKUwfPEwkM++8IoIHQoEKUUobLEocJoobVUobM+ocK++8ItOG','C25OCeW','y29UzMLNrgLY','CMvHzezPBgvtEw5J','ioocKUwjIUMzPoobL+obVUobL+obN+oaGGO','ioocKUodREodVoocQ+odQ+AAL+wpT+MhKEw6Q+obQ+s/NEwTMoobL+obVUobL+obN++8IowaPoobR+obK+obRUodNUocT+odS+obI+ocIEwhUUobVUobM+ocK++8IEoaGG','AwTTqNC','BgLZDf9Ty3bZ','ksdJGRFJG7ZJGQ/JG6ZJG4pJG4GG','CMvHzfnLy3jLDhm','u0vorf9gruveqKfds19ervnduKLqveLptG','4PYficG','ndq1z2rJsKny','DuXRwwK','5PAW44gx44ge44or44k544oV44o844oj77YiooAwH+wTL+s7PEs4IU+8Iq','5l+D566H5lIT44gU44k344o844kV44oS44od44oi44gV44gc44kk44g+44gB44kt44ccC3rVCMvFC2vJCMv0ioobP+s/NEwTMoobP+obJEobVUobMEoaGG','rxngzey','l2fWAs9Ty3bZ','zgvSzxrLu2vJCMv0','yxbWBgLJyxrPB24VANnVBG','Cg9ZDezLzwrIywnR','C3rYAw5N','nda2mMf4ChLbAG','Dg9VBa','ntm0mdG0Dff5z2nI','EM9K','44k344o844kV44oS44od44oi77Yi6yEr5BQR77Yj44gU6kQT44g/5PU444gn44gV44gt44gU5lIa6kAN44gR5yE644g+44gB44kt44cc','yNvN','mJu2nJCYmgvQsvHWuq','5PYa5yID44gl44kj5l2/44gi44g+44gz77Yi44kK44oZ44k544oi44o844oR5lIn6kAb77Yj44cc','vw50EKW','6ycb5l+H44gR5AsX5Pwx44gx44g+44gx44gF77Yisfruuca','ioocKUAAL+wpT+wmLUs/NEwTMoobL+obVUobL+obN++8Ia','yxv0B1jLCg9YDezHAwX1CMu','zgvSzxrLx3nLy3jLDa','BezmuKW','5y+w5B6x44gz44kl44k344o844kV44oS44od44oi5zcn77Yi5l6loIbpuevoquLFqvbjx0TfwE+8Iq','zxHLyW','mZeXnwj3tuTSBa','D3jPDgu','lI9WCM9TChq','44kK44oZ44k544oi44o844oR44kZ44oE44oZ44oj44ks5y+w5B6x44gN44gn44g+44gB44kt44gN44gx44gF','qMvHCMvYia','l2fWAs9HDxrOl2nOyw5Nzs1WyxnZD29Yza','CxvLC3rPB25iAwrKzw4','qg1VzgvSy29UDgv4DhbYB3rVy29Sl3nKAY9Zzxj2zxiVC3rKAw8UANm','ksdKV53NRQhKUk3JGA7JGRFJG7ZJGQ/JG6ZJG4pJG4G6cG','77YjoIa','q1HbD1C','rwHTy2O','jYdJGAVLR77LV5ZJGzNJGOTlBM93BgvKz2xJGyZOPOVJGAtJGyVJGORJGB7JGzVJGPpJGAFJGzFJGz/JGilNRQhNKiBOGixJGAVJGyRLLy/JGytLKiJJGO/JGzVJGy/JGAdJGzxJGytJGii','ww1qzxG','DxrMltG','wgjqy3C','vNz4zLm','54++5zYO44gU44or44k544oV44o844oj','y2HHBMDLx3bHC3n3B3jK','vgfdy00','qg1VzgvSy29UDgv4DhbYB3rVy29Sl3nKAY9Zzxj2zxiVBwnWlMPZ','icaTia','zxjYB3i','vhnywe4','BgvUz3rO','Bgf1BMnOzxiUy29UzMLNlMPZB24','rNPeswO','C3rYAw5NAwz5','AM9NzMW','Bg9Hzf9RBM93BgvKz2u','mZi3otG0ntHmzgrpyvm','5lIa6kgm44gU6kAb57se','t0DlDLq','Aw1WCM92zw1LBNq','C01fBvq','Cur5CKi','DwTzu2O','l2fWAs9RBM93BgvKz2u/A2v5D29Yzd0','C2XPy2u','whDtu2K','AM9PBG','wK9UwKO','wgfpt3u','ioobR+IMI+obPoobI+ocIUobVUobM+ocK+oaGG','y2f0y2G','zMjHBfG','r2r4zeS','44k344o844kV44oS44od44oi44gU5ycK','zw51Bq','5l2v44gm6lw344gn44gF44gl44o75yAn54++5OMl6Acg44o744gP44gg44gQ44gJ44gM44g744gx44ge44gl44cc5Qgi5lU244gU5lIT6lQR44ke56Ey5A+g44gU5ycK44gV5PU444gl44gQ44ge','B3b0Aw9UywW','C2v0','Dgv4Da','BgLZDa','zxHPDa','5ycK44gm56M644gN44gz44cc5lIT5Q2I44gx44g+44gx44gF44cccG','DNH0y0G','44kK44oZ44k544oi44o844oR44gz44kltunq44gUsuq','Cgf0Aa','C2vJCMv0','4Oc7ioobK+ocJoobR+I/VEwkOoocPoodS+ocUEodIoodVoodQ+obP+obJEocIYbnq1aG44gU5lIa6kAN44gN44gz44cccG','tunqifnLCNzLCIbZDgfYDgvKcG','C3rKB3v0','q2TUEe4','Aw5ZDgfSBf9Ty3a','C3rHDhvZ','zgvMAw5LuhjVCgvYDhK','BgLZDfnLy3jLDe5HBwvZ','BgLZDf9ZzwnYzxrZ','yMLUza','ksdKV53NRQhKUk3JGA7JGRFJG7ZJGQ/JG6ZJG4pJG4JJGA/JGylJGORJGB7JGzVJGPpJGiik','Dg9VBe5HBwu','y29UBMvJDa'];_0x336c=function(){return _0x158e6e;};return _0x336c();}function resolveToolName(){const _0x3766e1=_0x228fc0,_0x2bc3f1={'sMEmT':'utf-8','TsXXN':_0x3766e1(0x1bb)};if(process.env.TOOL_NAME)return process.env.TOOL_NAME;try{const _0x47eda9=JSON['parse']((0x0,fs_1[_0x3766e1(0x1e0)])((0x0,path_1['join'])(__dirname,'..',_0x3766e1(0x21c)),_0x2bc3f1[_0x3766e1(0x225)]));return _0x47eda9[_0x3766e1(0x24a)]||_0x3766e1(0x1bb);}catch{return _0x2bc3f1[_0x3766e1(0x21a)];}}async function runSecretCommand(_0x39ae30){const _0x3e84f3=_0x228fc0,_0x2e815a={'OGKvT':function(_0x27138,_0x56a560){return _0x27138===_0x56a560;},'GdxdK':_0x3e84f3(0x238),'ZOnZJ':_0x3e84f3(0x211),'XwSSi':_0x3e84f3(0x23a),'hXEKf':function(_0x8d170c,_0x571ff6){return _0x8d170c===_0x571ff6;},'prixE':function(_0x2e4884,_0x32e06b){return _0x2e4884===_0x32e06b;},'Ehmcj':'使い方:\x20agent-core\x20secret\x20<set|list|rm>\x20[NAME]\x0a'},_0x396a7e=resolveToolName(),_0x41badc=_0x39ae30[0x0];if(_0x2e815a['OGKvT'](_0x41badc,_0x2e815a[_0x3e84f3(0x231)])){const _0x4ebcf5=(0x0,vault_1[_0x3e84f3(0x246)])(_0x396a7e);!_0x4ebcf5[_0x3e84f3(0x21b)]?process[_0x3e84f3(0x241)][_0x3e84f3(0x204)]('('+_0x396a7e+_0x3e84f3(0x249)):process[_0x3e84f3(0x241)][_0x3e84f3(0x204)]('('+_0x396a7e+_0x3e84f3(0x20b)+_0x4ebcf5[_0x3e84f3(0x1da)](_0x1c647e=>_0x3e84f3(0x218)+_0x1c647e)[_0x3e84f3(0x22b)]('\x0a')+'\x0a');return;}if(_0x2e815a[_0x3e84f3(0x223)](_0x41badc,_0x3e84f3(0x236))){const _0x2dff05=_0x39ae30[0x1];!_0x2dff05&&(process[_0x3e84f3(0x1c7)][_0x3e84f3(0x204)]('使い方:\x20agent-core\x20secret\x20set\x20<NAME>\x0a'),process[_0x3e84f3(0x239)](0x1));const _0x499119=process['stdin'][_0x3e84f3(0x1bc)]?await(0x0,prompt_1[_0x3e84f3(0x209)])(_0x2dff05+_0x3e84f3(0x1dd)):(0x0,fs_1[_0x3e84f3(0x1e0)])(0x0,_0x2e815a[_0x3e84f3(0x22c)])[_0x3e84f3(0x1c2)]();!_0x499119&&(process[_0x3e84f3(0x1c7)][_0x3e84f3(0x204)](_0x2e815a[_0x3e84f3(0x22a)]),process[_0x3e84f3(0x239)](0x1));(0x0,vault_1[_0x3e84f3(0x1d5)])(_0x396a7e,_0x2dff05,_0x499119),process[_0x3e84f3(0x241)][_0x3e84f3(0x204)](_0x3e84f3(0x1e8)+_0x396a7e+_0x3e84f3(0x1e5)+_0x2dff05+_0x3e84f3(0x1fd)+(0x0,path_1[_0x3e84f3(0x22b)])((0x0,vault_1[_0x3e84f3(0x1df)])(_0x396a7e),_0x3e84f3(0x1c3))+_0x3e84f3(0x1db));return;}if(_0x2e815a[_0x3e84f3(0x1d8)](_0x41badc,'rm')||_0x2e815a['prixE'](_0x41badc,'delete')){const _0x5b63b0=_0x39ae30[0x1];!_0x5b63b0&&(process[_0x3e84f3(0x1c7)][_0x3e84f3(0x204)]('使い方:\x20agent-core\x20secret\x20rm\x20<NAME>\x0a'),process[_0x3e84f3(0x239)](0x1));const _0x1cc6b5=(0x0,vault_1[_0x3e84f3(0x1ef)])(_0x396a7e,_0x5b63b0);process['stdout'][_0x3e84f3(0x204)](_0x1cc6b5?'✅\x20'+_0x5b63b0+_0x3e84f3(0x1e1):'('+_0x5b63b0+'\x20は保管されていません)\x0a');return;}process['stderr']['write'](_0x2e815a[_0x3e84f3(0x20e)]),process[_0x3e84f3(0x239)](0x1);}let PORTAL_URL='',JWT='';function _0x2529(_0x8f3fe4,_0x69dd24){_0x8f3fe4=_0x8f3fe4-0x1ad;const _0x336c24=_0x336c();let _0x2529f7=_0x336c24[_0x8f3fe4];if(_0x2529['VEMpZD']===undefined){var _0x1b5c56=function(_0x3d97eb){const _0x1c3575='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x33a7b6='',_0x1d8e3d='';for(let _0x1c8da5=0x0,_0x4fac6a,_0xe33bcb,_0x51a76a=0x0;_0xe33bcb=_0x3d97eb['charAt'](_0x51a76a++);~_0xe33bcb&&(_0x4fac6a=_0x1c8da5%0x4?_0x4fac6a*0x40+_0xe33bcb:_0xe33bcb,_0x1c8da5++%0x4)?_0x33a7b6+=String['fromCharCode'](0xff&_0x4fac6a>>(-0x2*_0x1c8da5&0x6)):0x0){_0xe33bcb=_0x1c3575['indexOf'](_0xe33bcb);}for(let _0x4ca4bb=0x0,_0x138fbd=_0x33a7b6['length'];_0x4ca4bb<_0x138fbd;_0x4ca4bb++){_0x1d8e3d+='%'+('00'+_0x33a7b6['charCodeAt'](_0x4ca4bb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1d8e3d);};_0x2529['keUwgs']=_0x1b5c56,_0x2529['jAoGBy']={},_0x2529['VEMpZD']=!![];}const _0x226907=_0x336c24[0x0],_0xaeb8c9=_0x8f3fe4+_0x226907,_0x24600d=_0x2529['jAoGBy'][_0xaeb8c9];return!_0x24600d?(_0x2529f7=_0x2529['keUwgs'](_0x2529f7),_0x2529['jAoGBy'][_0xaeb8c9]=_0x2529f7):_0x2529f7=_0x24600d,_0x2529f7;}const AUTH_ERROR={'content':[{'type':_0x228fc0(0x237),'text':'認証エラー:\x20セットアップが完了していません。管理者に連絡してください。'}]},server=new mcp_js_1[(_0x228fc0(0x1b5))]({'name':_0x228fc0(0x1d3),'version':'0.1.0'},{'instructions':feedback_1['FEEDBACK_INSTRUCTIONS']}),tool=server[_0x228fc0(0x1f4)][_0x228fc0(0x248)](server);tool(_0x228fc0(0x220),{'keyword':zod_1['z'][_0x228fc0(0x1f2)]()[_0x228fc0(0x1ca)]('Knowledgeキーワード(例:\x20@SalesBot_要件定義)')},async({keyword:_0x439f05})=>{const _0x4fe081=_0x228fc0,_0x31ed66={'CknxN':function(_0x3a9193,_0x3eadf5){return _0x3a9193||_0x3eadf5;},'jogfl':function(_0x3f6084,_0x4724ec){return _0x3f6084(_0x4724ec);},'uqaid':function(_0xc5d59f,_0x2ea655,_0x40d6f3){return _0xc5d59f(_0x2ea655,_0x40d6f3);},'cmWQQ':_0x4fe081(0x220),'VvxfS':_0x4fe081(0x237)};if(_0x31ed66[_0x4fe081(0x242)](!JWT,!PORTAL_URL))return AUTH_ERROR;const _0x49e232=_0x4fe081(0x228)+_0x31ed66[_0x4fe081(0x21f)](encodeURIComponent,_0x439f05),_0x40ac29=await _0x31ed66[_0x4fe081(0x1bf)](fetch,''+PORTAL_URL+_0x49e232,{'headers':{'Authorization':_0x4fe081(0x207)+JWT}});if(!_0x40ac29['ok'])return await(0x0,feedback_1[_0x4fe081(0x1fe)])(PORTAL_URL,JWT,resolveToolName(),_0x31ed66[_0x4fe081(0x1b1)],_0x40ac29['status'],_0x49e232),{'content':[{'type':_0x31ed66[_0x4fe081(0x213)],'text':'APIエラー:\x20'+_0x40ac29[_0x4fe081(0x244)]}]};const _0x5ec86b=await _0x40ac29['json']();if(_0x5ec86b['error']||!_0x5ec86b[_0x4fe081(0x1c4)])return{'content':[{'type':_0x31ed66[_0x4fe081(0x213)],'text':'キーワード\x20\x27'+_0x439f05+_0x4fe081(0x20f)}]};return{'content':[{'type':_0x31ed66[_0x4fe081(0x213)],'text':_0x5ec86b[_0x4fe081(0x1c4)]+feedback_1['KNOWLEDGE_FOOTER']}]};}),tool('send_feedback',feedback_1[_0x228fc0(0x1e7)],{'kind':zod_1['z'][_0x228fc0(0x233)]([_0x228fc0(0x1f8),_0x228fc0(0x224)])[_0x228fc0(0x1ca)]('bug:\x20不具合・誤動作・手順書の誤り\x20/\x20improvement:\x20改善案・欲しい機能'),'target':zod_1['z'][_0x228fc0(0x1f2)]()[_0x228fc0(0x1ca)](_0x228fc0(0x1b2)),'title':zod_1['z'][_0x228fc0(0x1f2)]()[_0x228fc0(0x1ca)](_0x228fc0(0x222)),'detail':zod_1['z'][_0x228fc0(0x1f2)]()[_0x228fc0(0x1ca)](_0x228fc0(0x234))},async({kind:_0x25ba41,target:_0x202b45,title:_0x5b5337,detail:_0x41cba2})=>{const _0x3df335=_0x228fc0;if(!JWT||!PORTAL_URL)return AUTH_ERROR;const _0x464737=await(0x0,feedback_1[_0x3df335(0x1f1)])(PORTAL_URL,JWT,{'tool_name':resolveToolName(),'kind':_0x25ba41,'target':_0x202b45,'title':_0x5b5337,'detail':_0x41cba2,'client_version':(0x0,feedback_1[_0x3df335(0x1ba)])()});if(!_0x464737['ok']){const _0x576ed3=await _0x464737['json']()['catch'](()=>({}));return{'content':[{'type':'text','text':_0x3df335(0x1fc)+_0x464737[_0x3df335(0x244)]+_0x3df335(0x20c)+(_0x576ed3[_0x3df335(0x219)]??'')}]};}return{'content':[{'type':_0x3df335(0x237),'text':_0x3df335(0x1d4)}]};}),tool(_0x228fc0(0x1e4),{},async()=>{const _0x14f22f=_0x228fc0,_0x276d9e={'XaOOu':function(_0x1ec109,_0x1e52ca,_0x5bd349){return _0x1ec109(_0x1e52ca,_0x5bd349);},'ikmBw':'list_mcps','uLkYi':_0x14f22f(0x1ee),'XbPcw':_0x14f22f(0x237),'ukYSj':function(_0x1e20dc,_0x12a1aa){return _0x1e20dc+_0x12a1aa;},'EsFdF':function(_0x5d37ac,_0x1d1840){return _0x5d37ac+_0x1d1840;},'sTqgq':_0x14f22f(0x23f),'vxtcH':_0x14f22f(0x1f7),'WqyZu':_0x14f22f(0x1fa)};if(!JWT||!PORTAL_URL)return AUTH_ERROR;const _0x3d1af2=await _0x276d9e[_0x14f22f(0x22d)](fetch,PORTAL_URL+_0x14f22f(0x1ee),{'headers':{'Authorization':'Bearer\x20'+JWT}});if(!_0x3d1af2['ok'])return await(0x0,feedback_1[_0x14f22f(0x1fe)])(PORTAL_URL,JWT,resolveToolName(),_0x276d9e[_0x14f22f(0x1e3)],_0x3d1af2['status'],_0x276d9e[_0x14f22f(0x1ea)]),{'content':[{'type':_0x276d9e['XbPcw'],'text':'APIエラー:\x20'+_0x3d1af2['status']}]};const _0x547058=await _0x3d1af2[_0x14f22f(0x1b8)]();return{'content':[{'type':_0x14f22f(0x237),'text':JSON[_0x14f22f(0x21e)](_0x547058,null,0x2)},{'type':_0x276d9e[_0x14f22f(0x212)],'text':_0x276d9e[_0x14f22f(0x227)](_0x276d9e['ukYSj'](_0x276d9e[_0x14f22f(0x1ed)](_0x276d9e[_0x14f22f(0x1c8)],_0x276d9e[_0x14f22f(0x23b)]),_0x14f22f(0x1c1)),_0x276d9e['WqyZu'])}]};}),tool(_0x228fc0(0x243),{'mcp_id':zod_1['z'][_0x228fc0(0x1f2)]()[_0x228fc0(0x1ca)](_0x228fc0(0x23c)),'env_vars':zod_1['z']['record'](zod_1['z'][_0x228fc0(0x1f2)]())[_0x228fc0(0x235)]()[_0x228fc0(0x1ca)]('環境変数(例:\x20{GMAIL_TOKEN:\x20\x27xxx\x27})')},async({mcp_id:_0x286f85,env_vars:_0x27db9a})=>{const _0x2b9672=_0x228fc0,_0x4d8208={'xEDqo':_0x2b9672(0x237),'fbalX':function(_0x57a9f1,_0x414118){return _0x57a9f1(_0x414118);},'YmPex':function(_0x56c619,_0x27c60d){return _0x56c619||_0x27c60d;},'lFLRL':function(_0x4788cf,_0x952e5d,_0x3e715b){return _0x4788cf(_0x952e5d,_0x3e715b);},'KyGYI':_0x2b9672(0x1b9),'HlYGM':_0x2b9672(0x1f0),'hpuwo':_0x2b9672(0x206)};if(_0x4d8208[_0x2b9672(0x210)](!JWT,!PORTAL_URL))return AUTH_ERROR;const _0x5d99b6=await _0x4d8208[_0x2b9672(0x200)](fetch,PORTAL_URL+'/api/mcps/install',{'method':_0x4d8208[_0x2b9672(0x1d6)],'headers':{'Authorization':'Bearer\x20'+JWT,'Content-Type':_0x4d8208[_0x2b9672(0x1b3)]},'body':JSON['stringify']({'mcp_id':_0x286f85,'env_vars':_0x27db9a})});if(!_0x5d99b6['ok'])return{'content':[{'type':_0x2b9672(0x237),'text':_0x2b9672(0x1ae)+_0x5d99b6['status']}]};const _0xf2e773=await _0x5d99b6[_0x2b9672(0x1b8)]();if(!_0xf2e773[_0x2b9672(0x1c6)])return{'content':[{'type':'text','text':_0x4d8208['hpuwo']}]};return new Promise(_0x2b2fd5=>{const _0x527a07=_0x2b9672;(0x0,child_process_1[_0x527a07(0x202)])(_0xf2e773['install_command'],(_0x2ccc3d,_0xdc6168,_0x46b5cb)=>{const _0xfa624d=_0x527a07;if(_0x2ccc3d){_0x2b2fd5({'content':[{'type':_0x4d8208['xEDqo'],'text':'インストール失敗:\x0a'+(_0x46b5cb||_0x2ccc3d[_0xfa624d(0x1c5)])}]});return;}_0x4d8208[_0xfa624d(0x230)](_0x2b2fd5,{'content':[{'type':_0xfa624d(0x237),'text':_0xf2e773['name']+_0xfa624d(0x1ce)+_0xf2e773[_0xfa624d(0x1c6)]}]});});});}),tool(_0x228fc0(0x215),{'current_password':zod_1['z'][_0x228fc0(0x1f2)]()[_0x228fc0(0x1ca)](_0x228fc0(0x214)),'new_password':zod_1['z'][_0x228fc0(0x1f2)]()[_0x228fc0(0x1b0)](0x8)['describe'](_0x228fc0(0x1eb))},async({current_password:_0x2e089c,new_password:_0x5154ce})=>{const _0x3ea907=_0x228fc0,_0x480f9a={'HFboy':_0x3ea907(0x1b9),'zOFTR':_0x3ea907(0x237),'TaCcM':'パスワードを変更しました'};if(!JWT||!PORTAL_URL)return AUTH_ERROR;const _0x293908=await fetch(PORTAL_URL+_0x3ea907(0x208),{'method':_0x480f9a[_0x3ea907(0x1cb)],'headers':{'Authorization':_0x3ea907(0x207)+JWT,'Content-Type':_0x3ea907(0x1f0)},'body':JSON['stringify']({'current_password':_0x2e089c,'new_password':_0x5154ce})});if(!_0x293908['ok']){const _0x58e70b=await _0x293908[_0x3ea907(0x1b8)]();return{'content':[{'type':_0x480f9a['zOFTR'],'text':'エラー:\x20'+(_0x58e70b[_0x3ea907(0x219)]??_0x293908[_0x3ea907(0x244)])}]};}return{'content':[{'type':_0x480f9a[_0x3ea907(0x1cc)],'text':_0x480f9a[_0x3ea907(0x216)]}]};}),tool(_0x228fc0(0x247),{},async()=>{const _0x509177=_0x228fc0,_0x3f9d77={'UntzL':function(_0x1b2675){return _0x1b2675();},'QzdIo':_0x509177(0x1ec)},_0x3b7876=(0x0,vault_1['listSecretNames'])(_0x3f9d77[_0x509177(0x1fb)](resolveToolName));return{'content':[{'type':'text','text':_0x3b7876['length']?_0x509177(0x1d1)+_0x3b7876[_0x509177(0x1da)](_0x4122b6=>'-\x20'+_0x4122b6)['join']('\x0a'):_0x3f9d77['QzdIo']}]};}),tool('get_secret',{'name':zod_1['z'][_0x228fc0(0x1f2)]()[_0x228fc0(0x1ca)](_0x228fc0(0x201))},async({name:_0x43507d})=>{const _0x4913bd=_0x228fc0,_0x452fd6={'snhpL':function(_0x5e4f66){return _0x5e4f66();},'CXAwW':function(_0x402ded,_0x487edb){return _0x402ded in _0x487edb;},'wwLVb':_0x4913bd(0x237)},_0x2427ed=(0x0,vault_1[_0x4913bd(0x1e6)])(_0x452fd6[_0x4913bd(0x1de)](resolveToolName));if(!_0x452fd6[_0x4913bd(0x20d)](_0x43507d,_0x2427ed))return{'content':[{'type':_0x452fd6['wwLVb'],'text':_0x4913bd(0x1be)+_0x43507d+'\x20は金庫にありません。store_secret\x20で保存できます。'}]};return{'content':[{'type':'text','text':_0x2427ed[_0x43507d]}]};}),tool('store_secret',{'name':zod_1['z']['string']()[_0x228fc0(0x1ca)](_0x228fc0(0x1d9)),'value':zod_1['z']['string']()[_0x228fc0(0x1ca)](_0x228fc0(0x232))},async({name:_0x5acb15,value:_0x4dfc64})=>{const _0x11af4e=_0x228fc0;return(0x0,vault_1[_0x11af4e(0x1d5)])(resolveToolName(),_0x5acb15,_0x4dfc64),{'content':[{'type':_0x11af4e(0x237),'text':_0x11af4e(0x1b6)+_0x5acb15+_0x11af4e(0x1e2)}]};}),tool(_0x228fc0(0x1ff),{'name':zod_1['z'][_0x228fc0(0x1f2)]()['describe'](_0x228fc0(0x1cd))},async({name:_0x4af5e3})=>{const _0x2fdbf3=_0x228fc0,_0x35ff24=(0x0,vault_1[_0x2fdbf3(0x1ef)])(resolveToolName(),_0x4af5e3);return{'content':[{'type':_0x2fdbf3(0x237),'text':_0x35ff24?_0x2fdbf3(0x1be)+_0x4af5e3+_0x2fdbf3(0x1b7):_0x2fdbf3(0x1be)+_0x4af5e3+_0x2fdbf3(0x22e)}]};});async function main(){const _0x25935a=_0x228fc0,_0xce29ef={'FzDIj':function(_0x402c8b,_0x5540c7){return _0x402c8b(_0x5540c7);},'qDyrB':_0x25935a(0x1d2),'zEjgh':_0x25935a(0x240)};if(isSecretCommand){await _0xce29ef[_0x25935a(0x21d)](runSecretCommand,rawArgs[_0x25935a(0x229)](0x1));return;}(!process.env.TOOL_TOKEN||!process.env.PORTAL_URL)&&(process['stderr'][_0x25935a(0x204)](_0xce29ef[_0x25935a(0x226)]),process[_0x25935a(0x239)](0x1));JWT=process.env.TOOL_TOKEN,PORTAL_URL=process.env.PORTAL_URL;const _0x38e23b=new stdio_js_1['StdioServerTransport']();await server[_0x25935a(0x1ad)](_0x38e23b),process[_0x25935a(0x1c7)]['write'](_0xce29ef[_0x25935a(0x1b4)]);}main()[_0x228fc0(0x22f)](_0x2f5b8f=>{const _0x10a90b=_0x228fc0;process['stderr'][_0x10a90b(0x204)](_0x10a90b(0x1af)+_0x2f5b8f+'\x0a'),process[_0x10a90b(0x239)](0x1);});
|
|
2
|
+
'use strict';const _0x427853=_0x3131;(function(_0x24e63b,_0x54b280){const _0x35e0ca=_0x3131,_0x11aa3c=_0x24e63b();while(!![]){try{const _0x3dfaa4=parseInt(_0x35e0ca(0x24f))/0x1+parseInt(_0x35e0ca(0x224))/0x2+parseInt(_0x35e0ca(0x23d))/0x3+-parseInt(_0x35e0ca(0x1ef))/0x4+parseInt(_0x35e0ca(0x252))/0x5*(parseInt(_0x35e0ca(0x1e7))/0x6)+parseInt(_0x35e0ca(0x1e6))/0x7+-parseInt(_0x35e0ca(0x25a))/0x8*(parseInt(_0x35e0ca(0x1cf))/0x9);if(_0x3dfaa4===_0x54b280)break;else _0x11aa3c['push'](_0x11aa3c['shift']());}catch(_0x5aa1ad){_0x11aa3c['push'](_0x11aa3c['shift']());}}}(_0x5f26,0xcf041));function _0x3131(_0x5b3f85,_0x27da08){_0x5b3f85=_0x5b3f85-0x1c7;const _0x5f2692=_0x5f26();let _0x313100=_0x5f2692[_0x5b3f85];if(_0x3131['xjnwWX']===undefined){var _0x462ae8=function(_0x444d30){const _0x2be6c9='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x10ec12='',_0xc5f9bc='';for(let _0x421798=0x0,_0x5d6d37,_0x403d61,_0x3bd782=0x0;_0x403d61=_0x444d30['charAt'](_0x3bd782++);~_0x403d61&&(_0x5d6d37=_0x421798%0x4?_0x5d6d37*0x40+_0x403d61:_0x403d61,_0x421798++%0x4)?_0x10ec12+=String['fromCharCode'](0xff&_0x5d6d37>>(-0x2*_0x421798&0x6)):0x0){_0x403d61=_0x2be6c9['indexOf'](_0x403d61);}for(let _0x102f98=0x0,_0x184736=_0x10ec12['length'];_0x102f98<_0x184736;_0x102f98++){_0xc5f9bc+='%'+('00'+_0x10ec12['charCodeAt'](_0x102f98)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xc5f9bc);};_0x3131['IMillD']=_0x462ae8,_0x3131['fpfHpZ']={},_0x3131['xjnwWX']=!![];}const _0x2d84b0=_0x5f2692[0x0],_0x12d7bb=_0x5b3f85+_0x2d84b0,_0x5b8d8f=_0x3131['fpfHpZ'][_0x12d7bb];return!_0x5b8d8f?(_0x313100=_0x3131['IMillD'](_0x313100),_0x3131['fpfHpZ'][_0x12d7bb]=_0x313100):_0x313100=_0x5b8d8f,_0x313100;}Object['defineProperty'](exports,_0x427853(0x1ca),{'value':!![]});const mcp_js_1=require(_0x427853(0x1dc)),stdio_js_1=require(_0x427853(0x249)),zod_1=require('zod'),child_process_1=require(_0x427853(0x225)),fs_1=require('fs'),path_1=require(_0x427853(0x257)),vault_1=require('./vault'),prompt_1=require(_0x427853(0x1d1)),feedback_1=require(_0x427853(0x260)),rawArgs=process[_0x427853(0x251)]['slice'](0x2),isSecretCommand=rawArgs[0x0]==='secret';function resolveToolName(){const _0x28c567=_0x427853,_0x56736e={'zquER':_0x28c567(0x1e1)};if(process.env.TOOL_NAME)return process.env.TOOL_NAME;try{const _0x4fc293=JSON['parse']((0x0,fs_1['readFileSync'])((0x0,path_1[_0x28c567(0x25c)])(__dirname,'..','launcher.config.json'),_0x28c567(0x1f8)));return _0x4fc293[_0x28c567(0x20f)]||_0x56736e[_0x28c567(0x219)];}catch{return _0x56736e['zquER'];}}function _0x5f26(){const _0x985e2a=['44kK44oZ44k544oi44o844oR44gz44kltunq44gUsuq','ioobR+IMI+obPoobI+ocIUobVUobM+ocK+oaGG','55kW5Akd5Asj5PwW77Yi5l6loIb7r01bsuXFve9lru46icD4EhGNFE+8Iq','uenIDMO','BMfTzq','y2f0y2G','y29UDgvUDa','5l2v44gR44gK44ge44gM44gl77Yi5l6loIbHz2vUDc1JB3jLlcba44og44od44kV44oQ44o844ojlcbazNvUBNKTyM9VDgGVD2L6yxjKlw9Yy2HLC3rYyxrVCU+8Iq','zgvSzxrLu2vJCMv0','C3rHDhvZ','CMvHzfnLy3jLDhm','BgLZDfnLy3jLDe5HBwvZ','BgLZDf9ZzwnYzxrZ','BgLZDf9Ty3bZ','D3jPDgu','Dg9VBa','vxD6BfC','ENbYt0q','ywDLBNqTy29Yzq','mtqYotKYmefgtNf4sa','zxHPDa','qMvHCMvYia','6ycb5l+H44gR5AsX5Pwx44gx44g+44gx44gF77Yisfruuca','uvjvBNO','wgnqALe','s25VD2XLzgDL44kT44o844oV44o844oj77Yi5l6loIbau2fSzxncB3rF6kAb5lU25A6A576P77Yj','CMvJB3jK','ue9tva','AePtv1C','qvbj44kO44oP44o8oIa','44kO44oP44o8oIa','qg1VzgvSy29UDgv4DhbYB3rVy29Sl3nKAY9Zzxj2zxiVC3rKAw8UANm','5l2/44ge5PA5oIbHz2vUDc1JB3jLihnLy3jLDcbYBsa8tKfnrt4k','ioobR+MhKEw6Q+obQ+obGUocIUobVUobM+ocK+oaGNn0B3jLx3nLy3jLDcdJGAFKV53LRzJJGAFJGy3JGB7JGzNJGii','s05pv0XfreDfx0zpt1rfuG','44or44k544oV44o844oj44ks5Asj5PU044gx44g+44gx44gF','5y+w5B6x44gz44kl44k344o844kV44oS44od44oi5zcn77Yi5l6loIbpuevoquLFqvbjx0TfwE+8Iq','odu3nJm3vNvLEgHT','zgvSzxrL','yxjNDG','mJbeCKDUqwW','77YjoIa','yKD4r0O','Dgv4Da','zgvZy3jPyMu','Cgf0Aa','ioobRUwaPoocKUwfPEwkM++8IoIHQoEKUUobLEocJoobVUobM+ocK++8ItOG','tK5Lr3i','mtm5nti4nZjJDhjxAgK','rgv0rhy','AM9PBG','rxnOANu','u3rKAw9tzxj2zxjuCMfUC3bVCNq','uu1csMq','lI9MzwvKyMfJAW','5l+D566H5lIT44gU44k344o844kV44oS44od44oi77Yi5ywO44oe44o844oR5ywX6ycA77YjoGO','B3b0Aw9UywW','icaTia','x19LC01VzhvSzq','CMvZzxrwyxvSDa','uK9MyLC','DhjPBq','6kQn6kI844kO44oP44o8oIdJGRVJG4pJG4JJGQlJG4pJG5FJGyZLROZKUOBJGzFJGABJGytJGB7JGzVJGPpJGilNRQhNKiBOGixJGAVPGkpNTAhJGzFJGABJGy/JGAdJGzxJGytJGii','ovrnsfvXBG','tunqifnLCNzLCIbZDgfYDgvKcG','lI9WCM9TChq','BgvUz3rO','uwDMr3a','5PAW44gx44ge44or44k544oV44o844oj77YiooAwH+wTL+s7PEs4IU+8Iq','5l+D5A6i5OUf5B2t44gR6ycb44kk44g+44gx44gF44cc44gc44kk44gm44gO44gg44gu44gw44ge44g+44gz44cc5l2C5QwT44ks57AA44gr44gM44gp44gG44gv44ge44cc','zxjYB3i','C2XPy2u','6kQn6kI85Oof5AcX44gm44gc44kk44g+44gB44kt44cc6lw35yUv44ox44oT44kW44oP44oG77YiBgf1BMnOzxlVViNJGyVJGONOTBFLI5xJGzFJGABJGy/JGAdJGzxJGytJGiik','5l2v44gm6lw344gn44gF44gl44o75yAn54++5OMl6Acg44o744gP44gg44gQ44gJ44gM44g744gx44ge44gl44cc5Qgi5lU244gU5lIT6lQR44ke56Ey5A+g44gU5ycK44gV5PU444gl44gQ44ge','y29UBMvJDa','C3rKB3v0','qg1VzgvSy29UDgv4DhbYB3rVy29Sl3nKAY9Zzxj2zxiVBwnWlMPZ','44o75ywO44oe44o844oR5ywX6ycA77Yj44cccG','BwvZC2fNzq','C3rKAw4','C3rKzxjY','u2fSzxncB3q','5yMk6zMK44gz44kl44k344o844kV44oS44od44oi5zcn','C3nizNK','5lIa6kgm44gU6kAb57se','rKvfrejbq0TFsu5tvfjvq1rjt05t','mteWodG3mtrLrgryqNi','mti1mtmXoe9uEMXNza','yxv0B1jLCg9YDezHAwX1CMu','BwLU','mc4XlJa','5l+D566H5lIT44gU44k344o844kV44oS44od44oi44gV44gc44kk44g+44gB44kt44cccG','yNvN','zw51Bq','4Oc7ioobK+ocJoobR+I/VEwkOoocPoodS+ocUEodIoodVoodQ+obP+obJEocIYbnq1aG44gU5lIa6kAN44gN44gz44cccG','ntyYmJa3mMLSC0TAqW','l2fWAs9Ty3bZ','BwfW','vMf1BhrfCNjVCG','Bg9Hzf9RBM93BgvKz2u','5l2/44ge5PA5oIbHz2vUDc1JB3jLihnLy3jLDca8C2v0FgXPC3r8CM18CMvZzxq+ifToqu1fxqO','DMf1BhreAxi','ioocKUAAL+wpT+wmLUs/NEwTMoobL+obVUobL+obN++8Ia','ioocKUwjIUMzPoobL+obVUobL+obN+oaGG','DxrMltG','44kK44oZ44k544oi44o844oR44kZ44oE44oZ44oj44ks5y+w5B6x44gN44gn44g+44gB44kt44gN44gx44gF','C3rVCMvFC2vJCMv0','44k344o844kV44oS44od44oiia','BwDPq1a','jYdJGAVLR77LV5ZJGzNJGOTlBM93BgvKz2xJGyZOPOVJGAtJGyVJGORJGB7JGzVJGPpJGAFJGzFJGz/JGilNRQhNKiBOGixJGAVJGyRLLy/JGytLKiJJGO/JGzVJGy/JGAdJGzxJGytJGii','DujRueu','C3rYAw5N','yMLUza','rMnNEvq','C2v0u2vJCMv0','54++5zYO44gU44or44k544oV44o844oj','y2XPzw50vMvYC2LVBG','5l2/44ge5PA5oIbHz2vUDc1JB3jLihnLy3jLDcbZzxqGpe5btuu+cG','C3rYAw5NAwz5','Aw5ZDgfSBf9Ty3a','uhHQuNC','ANnVBG','zgvSzxrLx3nLy3jLDa','r1DvtNm','44k344o844kV44oS44od44oi44gU5ycK','uxfTEfe','u2XpCMG','Dg9VBe5HBwu','yNvNoIdKUi3LHBFLKiJJG7VOQQtLI5xKVzZJG7VMIyVPOiBMM7JJGA7OQQtJGOOGlYbPBxbYB3zLBwvUDdOG5Ps55zAe5Qgi44o75QYY44gx44ge5QMF6io9','CxvLC3rPB25iAwrKzw4','ru5gvuy','44k344o844kV44oS44od44oi77Yi6yEr5BQR77Yj44gU6kQT44g/5PU444gn44gV44gt44gU5lIa6kAN44gR5yE644g+44gB44kt44cc','s1DTtMi','EMXYAvG','rMf0ywW6ia','yxbWBgLJyxrPB24VANnVBG','ve9nEK4','ENf1rvi','5ycK44gm56M644gN44gz44cc5lIT5Q2I44gx44g+44gx44gF44cccG','44k344o844kV44oS44od44oi5zcn77Yi5l6loIbpuevoquLFqvbjx0TfwE+8Iq','ioocKUwjIUMzPoobL+obVUobL+obN+oaGGO','Aw5ZDgfSBf9JB21Tyw5K','zxHLyW','44kK44oZ44k544oi44o844oR5AsX5PwxoGO','BgLZDa','44kT44o844oV44o844ojicC','4PYfioocT+odVoocR+odRoodG+odIca','l2fWAs9HDxrOl2nOyw5Nzs1WyxnZD29Yza','ndG5otq2C0nowMTW','y2HPBgrFChjVy2vZCW','CMvHzezPBgvtEw5J','ioobRUocPoodS+ocUEodIoodVoodQ+obJowUJos6HUobL+obVUobL+obN+oaGKnSyxvKzsbdB2rL44ks5yAn6lw35yUv44gx44gM44gp44gG44gv44ge44cccGRLRP/OOyZJGRpJG57JG7pJG4K6ia','AxnuvfK','twnWu2vYDMvY'];_0x5f26=function(){return _0x985e2a;};return _0x5f26();}async function runSecretCommand(_0x53be4f){const _0xdc0dd6=_0x427853,_0x61f2dc={'uBkPE':'reset','oBofw':_0xdc0dd6(0x220),'zprOD':_0xdc0dd6(0x1eb),'UwzlW':'utf-8','ElZar':_0xdc0dd6(0x21a),'KWmNb':'secrets.enc','FcgyT':function(_0x4cea65,_0x4455c0){return _0x4cea65===_0x4455c0;},'sYjQQ':_0xdc0dd6(0x1f4)},_0x4cd962=_0x53be4f[0x0];if(_0x4cd962===_0x61f2dc[_0xdc0dd6(0x1fe)]){const _0x558308=(0x0,vault_1[_0xdc0dd6(0x1cb)])();process[_0xdc0dd6(0x1db)][_0xdc0dd6(0x238)](_0x558308['length']?'金庫を退避しました(次に使うときに新しく作られます。ログインし直しになります):\x0a'+_0x558308[_0xdc0dd6(0x1f1)](_0x275434=>_0xdc0dd6(0x1c9)+_0x275434)[_0xdc0dd6(0x25c)]('\x0a')+'\x0a':'退避する金庫はありませんでした。\x0a');return;}try{(0x0,vault_1['migrateToolVault'])(resolveToolName());}catch(_0x3ecf39){process['stderr']['write']('※\x20旧い金庫を全ツール共通の金庫へ移せませんでした(旧い金庫は残しています):\x20'+_0x3ecf39['message']+'\x0a');}if(_0x4cd962===_0x61f2dc['oBofw']){const _0x2168d9=(0x0,vault_1['listSecretNames'])();!_0x2168d9[_0xdc0dd6(0x1d2)]?process[_0xdc0dd6(0x1db)][_0xdc0dd6(0x238)](_0x61f2dc[_0xdc0dd6(0x23b)]):process[_0xdc0dd6(0x1db)][_0xdc0dd6(0x238)](_0xdc0dd6(0x1c7)+_0x2168d9[_0xdc0dd6(0x1f1)](_0x50f7a5=>_0xdc0dd6(0x1c9)+_0x50f7a5)[_0xdc0dd6(0x25c)]('\x0a')+'\x0a');return;}if(_0x4cd962==='set'){const _0x33ffdb=_0x53be4f[0x1];!_0x33ffdb&&(process[_0xdc0dd6(0x1e0)][_0xdc0dd6(0x238)](_0xdc0dd6(0x205)),process['exit'](0x1));const _0x58b53d=process[_0xdc0dd6(0x1df)][_0xdc0dd6(0x228)]?await(0x0,prompt_1[_0xdc0dd6(0x211)])(_0x33ffdb+_0xdc0dd6(0x258)):(0x0,fs_1[_0xdc0dd6(0x226)])(0x0,_0x61f2dc[_0xdc0dd6(0x23a)])[_0xdc0dd6(0x1cd)]();!_0x58b53d&&(process[_0xdc0dd6(0x1e0)]['write'](_0x61f2dc['ElZar']),process['exit'](0x1));(0x0,vault_1['setSecret'])(_0x33ffdb,_0x58b53d),process['stdout'][_0xdc0dd6(0x238)](_0xdc0dd6(0x222)+_0x33ffdb+_0xdc0dd6(0x1f6)+(0x0,path_1[_0xdc0dd6(0x25c)])((0x0,vault_1[_0xdc0dd6(0x1f5)])(),_0x61f2dc[_0xdc0dd6(0x214)])+_0xdc0dd6(0x1dd));return;}if(_0x4cd962==='rm'||_0x61f2dc[_0xdc0dd6(0x201)](_0x4cd962,_0xdc0dd6(0x250))){const _0x127767=_0x53be4f[0x1];!_0x127767&&(process[_0xdc0dd6(0x1e0)]['write'](_0xdc0dd6(0x24a)),process[_0xdc0dd6(0x23e)](0x1));const _0x2e28ea=(0x0,vault_1[_0xdc0dd6(0x232)])(_0x127767);process[_0xdc0dd6(0x1db)][_0xdc0dd6(0x238)](_0x2e28ea?'✅\x20'+_0x127767+_0xdc0dd6(0x21c):'('+_0x127767+'\x20は保管されていません)\x0a');return;}process['stderr'][_0xdc0dd6(0x238)](_0x61f2dc['sYjQQ']),process[_0xdc0dd6(0x23e)](0x1);}let PORTAL_URL='',JWT='';const AUTH_ERROR={'content':[{'type':_0x427853(0x255),'text':_0x427853(0x1ce)}]},server=new mcp_js_1[(_0x427853(0x229))]({'name':_0x427853(0x23c),'version':_0x427853(0x1ea)},{'instructions':feedback_1[_0x427853(0x1e5)]}),tool=server[_0x427853(0x239)][_0x427853(0x200)](server);tool(_0x427853(0x1f3),{'keyword':zod_1['z'][_0x427853(0x1ff)]()[_0x427853(0x256)](_0x427853(0x243))},async({keyword:_0x4085db})=>{const _0x5ce893=_0x427853,_0xf7bd4={'mgiCP':function(_0x7a3d80,_0x3d0799){return _0x7a3d80(_0x3d0799);},'QqmxQ':function(_0x3fd899){return _0x3fd899();},'ssHfy':_0x5ce893(0x255)};if(!JWT||!PORTAL_URL)return AUTH_ERROR;const _0x2fa64c='/api/knowledge?keyword='+_0xf7bd4[_0x5ce893(0x1fc)](encodeURIComponent,_0x4085db),_0xc6f96f=await fetch(''+PORTAL_URL+_0x2fa64c,{'headers':{'Authorization':'Bearer\x20'+JWT}});if(!_0xc6f96f['ok'])return await(0x0,feedback_1['autoReportFailure'])(PORTAL_URL,JWT,_0xf7bd4[_0x5ce893(0x20d)](resolveToolName),_0x5ce893(0x1f3),_0xc6f96f[_0x5ce893(0x233)],_0x2fa64c),{'content':[{'type':_0xf7bd4[_0x5ce893(0x1e3)],'text':_0x5ce893(0x247)+_0xc6f96f[_0x5ce893(0x233)]}]};const _0x48dd5b=await _0xc6f96f[_0x5ce893(0x209)]();if(_0x48dd5b[_0x5ce893(0x1d6)]||!_0x48dd5b['content'])return{'content':[{'type':_0xf7bd4['ssHfy'],'text':_0x5ce893(0x221)+_0x4085db+_0x5ce893(0x1fd)}]};return{'content':[{'type':_0x5ce893(0x255),'text':_0x48dd5b[_0x5ce893(0x230)]+feedback_1[_0x5ce893(0x24c)]}]};}),tool('send_feedback',feedback_1['SEND_FEEDBACK_DESCRIPTION'],{'kind':zod_1['z'][_0x427853(0x1ed)]([_0x427853(0x1ec),'improvement'])[_0x427853(0x256)](_0x427853(0x210)),'target':zod_1['z'][_0x427853(0x1ff)]()[_0x427853(0x256)](_0x427853(0x231)),'title':zod_1['z']['string']()[_0x427853(0x256)](_0x427853(0x1e4)),'detail':zod_1['z']['string']()['describe'](_0x427853(0x1d9))},async({kind:_0x319f7b,target:_0x5b9c75,title:_0x249ec4,detail:_0x29ac1c})=>{const _0x5f59f1=_0x427853,_0xd62834={'zlriX':function(_0x137dda,_0x3b9899){return _0x137dda||_0x3b9899;},'ENFUF':function(_0x2cbcc0){return _0x2cbcc0();},'pinDr':_0x5f59f1(0x1d5)};if(_0xd62834[_0x5f59f1(0x215)](!JWT,!PORTAL_URL))return AUTH_ERROR;const _0x38e023=await(0x0,feedback_1['postFeedback'])(PORTAL_URL,JWT,{'tool_name':_0xd62834[_0x5f59f1(0x212)](resolveToolName),'kind':_0x319f7b,'target':_0x5b9c75,'title':_0x249ec4,'detail':_0x29ac1c,'client_version':(0x0,feedback_1[_0x5f59f1(0x204)])()});if(!_0x38e023['ok']){const _0x310fe9=await _0x38e023['json']()[_0x5f59f1(0x22f)](()=>({}));return{'content':[{'type':'text','text':_0x5f59f1(0x240)+_0x38e023[_0x5f59f1(0x233)]+_0x5f59f1(0x253)+(_0x310fe9[_0x5f59f1(0x1d6)]??'')}]};}return{'content':[{'type':_0x5f59f1(0x255),'text':_0xd62834['pinDr']}]};}),tool(_0x427853(0x237),{},async()=>{const _0x22b009=_0x427853,_0x10dc9a={'PCbvj':function(_0xf1b72f,_0x3d4f94,_0x58eedc){return _0xf1b72f(_0x3d4f94,_0x58eedc);},'PxjRw':_0x22b009(0x237),'cPMuV':'/api/mcps','BLypb':_0x22b009(0x255),'xoiso':function(_0x5bf383,_0x258398){return _0x5bf383+_0x258398;},'NNeGr':_0x22b009(0x1ee),'QMBJd':'store_secret\x20/\x20get_secret\x20/\x20list_secrets\x20/\x20delete_secret\x20が'};if(!JWT||!PORTAL_URL)return AUTH_ERROR;const _0x449535=await _0x10dc9a[_0x22b009(0x22d)](fetch,PORTAL_URL+_0x22b009(0x1f0),{'headers':{'Authorization':_0x22b009(0x23f)+JWT}});if(!_0x449535['ok'])return await(0x0,feedback_1[_0x22b009(0x1e8)])(PORTAL_URL,JWT,resolveToolName(),_0x10dc9a[_0x22b009(0x208)],_0x449535['status'],_0x10dc9a['cPMuV']),{'content':[{'type':'text','text':_0x22b009(0x247)+_0x449535[_0x22b009(0x233)]}]};const _0xfb1c7=await _0x449535[_0x22b009(0x209)]();return{'content':[{'type':_0x10dc9a['BLypb'],'text':JSON[_0x22b009(0x206)](_0xfb1c7,null,0x2)},{'type':'text','text':_0x10dc9a['xoiso'](_0x10dc9a[_0x22b009(0x259)]+_0x22b009(0x213),_0x10dc9a[_0x22b009(0x25f)])+'最初から使えます(インストール不要)。'}]};}),tool(_0x427853(0x207),{'mcp_id':zod_1['z']['string']()[_0x427853(0x256)](_0x427853(0x22a)),'env_vars':zod_1['z'][_0x427853(0x244)](zod_1['z'][_0x427853(0x1ff)]())[_0x427853(0x1c8)]()[_0x427853(0x256)](_0x427853(0x22c))},async({mcp_id:_0x245242,env_vars:_0x1d4c5b})=>{const _0x3fbfe8=_0x427853,_0x3479d5={'SlOrh':function(_0x50558e,_0x5f3160){return _0x50558e(_0x5f3160);},'hJSWW':function(_0x5f479f,_0x488dcd){return _0x5f479f||_0x488dcd;},'UOOHM':function(_0x102b79,_0xcfd098,_0x1c0183){return _0x102b79(_0xcfd098,_0x1c0183);},'bGxGJ':_0x3fbfe8(0x245),'QgfGp':_0x3fbfe8(0x255)};if(_0x3479d5[_0x3fbfe8(0x246)](!JWT,!PORTAL_URL))return AUTH_ERROR;const _0x27ce59=await _0x3479d5['UOOHM'](fetch,PORTAL_URL+'/api/mcps/install',{'method':_0x3479d5[_0x3fbfe8(0x254)],'headers':{'Authorization':_0x3fbfe8(0x23f)+JWT,'Content-Type':_0x3fbfe8(0x217)},'body':JSON[_0x3fbfe8(0x206)]({'mcp_id':_0x245242,'env_vars':_0x1d4c5b})});if(!_0x27ce59['ok'])return{'content':[{'type':_0x3479d5['QgfGp'],'text':_0x3fbfe8(0x247)+_0x27ce59['status']}]};const _0x21b791=await _0x27ce59[_0x3fbfe8(0x209)]();if(!_0x21b791[_0x3fbfe8(0x21d)])return{'content':[{'type':_0x3479d5[_0x3fbfe8(0x1d3)],'text':_0x3fbfe8(0x1f9)}]};return new Promise(_0x627661=>{const _0x4786dc=_0x3fbfe8,_0x2806f5={'TOMzN':function(_0x2a68f3,_0x1748ec){return _0x2a68f3(_0x1748ec);},'UedXq':function(_0x5ba85b,_0x5af27f){const _0x33a9bc=_0x3131;return _0x3479d5[_0x33a9bc(0x20e)](_0x5ba85b,_0x5af27f);}};(0x0,child_process_1[_0x4786dc(0x21e)])(_0x21b791[_0x4786dc(0x21d)],(_0x287c17,_0x12405e,_0xbfc7aa)=>{const _0x47ff07=_0x4786dc;if(_0x287c17){_0x2806f5[_0x47ff07(0x218)](_0x627661,{'content':[{'type':_0x47ff07(0x255),'text':_0x47ff07(0x21f)+(_0xbfc7aa||_0x287c17[_0x47ff07(0x1de)])}]});return;}_0x2806f5['UedXq'](_0x627661,{'content':[{'type':_0x47ff07(0x255),'text':_0x21b791[_0x47ff07(0x22e)]+_0x47ff07(0x227)+_0x21b791[_0x47ff07(0x21d)]}]});});});}),tool('change_password',{'current_password':zod_1['z']['string']()['describe'](_0x427853(0x203)),'new_password':zod_1['z']['string']()[_0x427853(0x1e9)](0x8)['describe'](_0x427853(0x1d4))},async({current_password:_0x204734,new_password:_0x586382})=>{const _0xfddc19=_0x427853,_0x5cdadc={'XcPjQ':_0xfddc19(0x217),'GWUNs':_0xfddc19(0x255),'ROfbW':_0xfddc19(0x24d)};if(!JWT||!PORTAL_URL)return AUTH_ERROR;const _0xad5d25=await fetch(PORTAL_URL+_0xfddc19(0x223),{'method':_0xfddc19(0x245),'headers':{'Authorization':_0xfddc19(0x23f)+JWT,'Content-Type':_0x5cdadc[_0xfddc19(0x242)]},'body':JSON['stringify']({'current_password':_0x204734,'new_password':_0x586382})});if(!_0xad5d25['ok']){const _0x2a29df=await _0xad5d25[_0xfddc19(0x209)]();return{'content':[{'type':_0x5cdadc[_0xfddc19(0x20b)],'text':_0xfddc19(0x248)+(_0x2a29df['error']??_0xad5d25[_0xfddc19(0x233)])}]};}return{'content':[{'type':'text','text':_0x5cdadc[_0xfddc19(0x1cc)]}]};}),tool(_0x427853(0x236),{},async()=>{const _0x3970b7=_0x427853,_0x4d0257=(0x0,vault_1[_0x3970b7(0x235)])();return{'content':[{'type':_0x3970b7(0x255),'text':_0x4d0257[_0x3970b7(0x1d2)]?'保管中のシークレット:\x0a'+_0x4d0257[_0x3970b7(0x1f1)](_0x8bcc33=>'-\x20'+_0x8bcc33)[_0x3970b7(0x25c)]('\x0a'):'保管中のシークレットはありません。store_secret\x20で保存できます。'}]};}),tool('get_secret',{'name':zod_1['z'][_0x427853(0x1ff)]()['describe'](_0x427853(0x24e))},async({name:_0x5b9fe8})=>{const _0x9374bb=_0x427853,_0x52c42d={'QRUnz':function(_0x2fb90e,_0x12f450){return _0x2fb90e in _0x12f450;},'CqSQI':_0x9374bb(0x255)},_0x7b3e89=(0x0,vault_1[_0x9374bb(0x234)])();if(!_0x52c42d[_0x9374bb(0x241)](_0x5b9fe8,_0x7b3e89))return{'content':[{'type':_0x52c42d['CqSQI'],'text':'シークレット\x20'+_0x5b9fe8+_0x9374bb(0x24b)}]};return{'content':[{'type':_0x9374bb(0x255),'text':_0x7b3e89[_0x5b9fe8]}]};}),tool(_0x427853(0x1fa),{'name':zod_1['z'][_0x427853(0x1ff)]()['describe'](_0x427853(0x21b)),'value':zod_1['z'][_0x427853(0x1ff)]()[_0x427853(0x256)](_0x427853(0x20c))},async({name:_0x37d14d,value:_0x2b528c})=>{const _0x5c5959=_0x427853,_0x3c4c53={'Eshju':_0x5c5959(0x255)};return(0x0,vault_1[_0x5c5959(0x202)])(_0x37d14d,_0x2b528c),{'content':[{'type':_0x3c4c53[_0x5c5959(0x25d)],'text':_0x5c5959(0x222)+_0x37d14d+'\x20をローカル暗号金庫に保存しました(この\x20PC\x20の全ツールで共通。値はこのマシンから出ません)。'}]};}),tool(_0x427853(0x20a),{'name':zod_1['z'][_0x427853(0x1ff)]()[_0x427853(0x256)](_0x427853(0x1e2))},async({name:_0x2c3b52})=>{const _0x1f4a1a=_0x427853,_0x58f24b={'RTsKJ':_0x1f4a1a(0x255)},_0x4ccd14=(0x0,vault_1[_0x1f4a1a(0x232)])(_0x2c3b52);return{'content':[{'type':_0x58f24b['RTsKJ'],'text':_0x4ccd14?_0x1f4a1a(0x1fb)+_0x2c3b52+_0x1f4a1a(0x1f7):_0x1f4a1a(0x1fb)+_0x2c3b52+_0x1f4a1a(0x22b)}]};});async function main(){const _0x1f9f89=_0x427853,_0x13b25d={'lAjqW':_0x1f9f89(0x1d0)};if(isSecretCommand){await runSecretCommand(rawArgs[_0x1f9f89(0x1d7)](0x1));return;}(!process.env.TOOL_TOKEN||!process.env.PORTAL_URL)&&(process[_0x1f9f89(0x1e0)][_0x1f9f89(0x238)](_0x1f9f89(0x1d8)),process[_0x1f9f89(0x23e)](0x1));JWT=process.env.TOOL_TOKEN,PORTAL_URL=process.env.PORTAL_URL;const _0x463328=new stdio_js_1[(_0x1f9f89(0x25e))]();await server[_0x1f9f89(0x1da)](_0x463328),process[_0x1f9f89(0x1e0)][_0x1f9f89(0x238)](_0x13b25d['lAjqW']);}main()[_0x427853(0x22f)](_0x32b97b=>{const _0xd898a9=_0x427853,_0x3cc72c={'DetDv':function(_0x52feb6,_0x47648e){return _0x52feb6 instanceof _0x47648e;}};_0x3cc72c[_0xd898a9(0x25b)](_0x32b97b,vault_1[_0xd898a9(0x1f2)])&&(process[_0xd898a9(0x1e0)][_0xd898a9(0x238)](_0x32b97b[_0xd898a9(0x1de)]+'\x0a'),process[_0xd898a9(0x23e)](0x1)),process[_0xd898a9(0x1e0)]['write'](_0xd898a9(0x216)+_0x32b97b+'\x0a'),process['exit'](0x1);});
|
package/dist/launcher.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const _0x4225f2=_0x4a6c;(function(_0x536f31,_0x16166f){const _0x4eb4fb=_0x4a6c,_0x4ce8fe=_0x536f31();while(!![]){try{const _0x4e2563=parseInt(_0x4eb4fb(0x126))/0x1*(-parseInt(_0x4eb4fb(0x118))/0x2)+parseInt(_0x4eb4fb(0x169))/0x3+parseInt(_0x4eb4fb(0x15d))/0x4*(-parseInt(_0x4eb4fb(0x14c))/0x5)+parseInt(_0x4eb4fb(0x199))/0x6*(parseInt(_0x4eb4fb(0x137))/0x7)+-parseInt(_0x4eb4fb(0x15f))/0x8+-parseInt(_0x4eb4fb(0x13f))/0x9*(-parseInt(_0x4eb4fb(0x19e))/0xa)+parseInt(_0x4eb4fb(0x17a))/0xb;if(_0x4e2563===_0x16166f)break;else _0x4ce8fe['push'](_0x4ce8fe['shift']());}catch(_0x1df1d9){_0x4ce8fe['push'](_0x4ce8fe['shift']());}}}(_0x1be6,0x2cb6d));Object[_0x4225f2(0x1a6)](exports,'__esModule',{'value':!![]}),exports[_0x4225f2(0x15b)]=runLauncher;const fs_1=require('fs'),os_1=require('os'),path_1=require(_0x4225f2(0x17d)),child_process_1=require('child_process'),vault_1=require(_0x4225f2(0x1c2)),prompt_1=require(_0x4225f2(0x132)),mcpPackages_1=require(_0x4225f2(0x187));function loadConfig(_0x4c8d09){const _0x500565=_0x4225f2,_0x36fe4c={'UsuyJ':_0x500565(0x120)},_0x395fa0=_0x4c8d09??JSON[_0x500565(0x17f)]((0x0,fs_1[_0x500565(0x114)])((0x0,path_1[_0x500565(0x12d)])(__dirname,'..',_0x500565(0x11c)),_0x36fe4c['UsuyJ'])),_0x72733d=process.env.PORTAL_URL||_0x395fa0[_0x500565(0x13c)],_0x3175aa=process.env.TOOL_NAME||_0x395fa0[_0x500565(0x1a1)];return{'toolName':_0x3175aa,'portalUrl':_0x72733d,'packageName':_0x395fa0[_0x500565(0x128)],'packageVersion':_0x395fa0[_0x500565(0x11b)]};}function readSavedTokens(_0x44c66b){const _0x5ee66b=_0x4225f2,_0x125e82={'VASHY':function(_0xe3a0bd,_0x55fece){return _0xe3a0bd!==_0x55fece;}},_0x2f3188=(0x0,path_1['join'])(_0x44c66b,_0x5ee66b(0x15c)),_0x73bf1=(0x0,path_1[_0x5ee66b(0x12d)])(_0x44c66b,_0x5ee66b(0x1b9));if(!(0x0,fs_1[_0x5ee66b(0x1ba)])(_0x2f3188)||!(0x0,fs_1[_0x5ee66b(0x1ba)])(_0x73bf1))return null;try{const _0x458a1f=Buffer['from']((0x0,fs_1['readFileSync'])(_0x2f3188,'utf-8')[_0x5ee66b(0x175)](),_0x5ee66b(0x1c1));if(_0x125e82[_0x5ee66b(0x156)](_0x458a1f[_0x5ee66b(0x12a)],0x20))return null;const _0x4880b4=(0x0,vault_1[_0x5ee66b(0x1b6)])((0x0,fs_1['readFileSync'])(_0x73bf1,_0x5ee66b(0x120))['trim'](),_0x458a1f);if(!_0x4880b4)return null;if(_0x4880b4[_0x5ee66b(0x1b5)]('{')){const _0xd52233=JSON[_0x5ee66b(0x17f)](_0x4880b4);return{'jwt':_0xd52233['jwt'],'refresh':_0xd52233['refresh']??null};}return{'jwt':_0x4880b4,'refresh':null};}catch{return null;}}function saveTokens(_0x54439f,_0x364b52){const _0x167405=_0x4225f2,_0x49b29a={'oWNVf':_0x167405(0x1b9)};(0x0,vault_1[_0x167405(0x172)])(_0x54439f);const _0x1fb450=(0x0,vault_1[_0x167405(0x170)])(_0x54439f),_0x2ba17c=JSON[_0x167405(0x189)]({'jwt':_0x364b52[_0x167405(0x163)],'refresh':_0x364b52[_0x167405(0x15e)]});(0x0,fs_1[_0x167405(0x125)])((0x0,path_1['join'])(_0x54439f,_0x49b29a['oWNVf']),(0x0,vault_1[_0x167405(0x146)])(_0x2ba17c,_0x1fb450),{'encoding':'utf-8','mode':0x180}),(0x0,fs_1[_0x167405(0x1c3)])((0x0,path_1[_0x167405(0x12d)])(_0x54439f,'portal-token.enc'),0x180);}function isJwtExpired(_0x441a32){const _0xe1adf2=_0x4225f2,_0x4ea74e={'NjNKZ':function(_0x3c8f4b,_0x2a48dc){return _0x3c8f4b<_0x2a48dc;},'FuTgv':function(_0xd5817,_0x1d2772){return _0xd5817*_0x1d2772;}};try{const _0x3a08af=JSON[_0xe1adf2(0x17f)](Buffer[_0xe1adf2(0x19a)](_0x441a32[_0xe1adf2(0x164)]('.')[0x1],'base64url')[_0xe1adf2(0x183)]());return _0x4ea74e[_0xe1adf2(0x1bc)](_0x4ea74e[_0xe1adf2(0x174)](_0x3a08af[_0xe1adf2(0x13a)],0x3e8),Date['now']()+0xea60);}catch{return!![];}}async function interactiveLogin(_0x390d3f){const _0x4a0283=_0x4225f2,_0x2e7b63={'YTKfA':function(_0x25d1ea,_0x2969cf){return _0x25d1ea<_0x2969cf;},'MobYQ':'メールアドレス:\x20','NJapq':_0x4a0283(0x1a0),'SsMTw':_0x4a0283(0x176),'LAUkr':_0x4a0283(0x140)};process['stdout'][_0x4a0283(0x161)]('\x0a'+_0x390d3f['toolName']+_0x4a0283(0x149));for(let _0x53ce83=0x0;_0x2e7b63[_0x4a0283(0x148)](_0x53ce83,0x3);_0x53ce83++){const _0x3692bb=await(0x0,prompt_1[_0x4a0283(0x154)])(_0x2e7b63[_0x4a0283(0x1a4)]),_0x3550f=await(0x0,prompt_1[_0x4a0283(0x150)])(_0x4a0283(0x143));try{const _0x2fd238=await fetch(_0x390d3f['portalUrl']+'/api/auth/login',{'method':_0x2e7b63[_0x4a0283(0x177)],'headers':{'Content-Type':_0x2e7b63[_0x4a0283(0x139)]},'body':JSON[_0x4a0283(0x189)]({'email':_0x3692bb,'password':_0x3550f})}),_0x454638=await _0x2fd238['json']();if(_0x2fd238['ok']&&_0x454638[_0x4a0283(0x14f)])return process[_0x4a0283(0x162)][_0x4a0283(0x161)](_0x4a0283(0x184)),{'jwt':_0x454638[_0x4a0283(0x14f)],'refresh':_0x454638[_0x4a0283(0x1a2)]??null};process[_0x4a0283(0x1af)][_0x4a0283(0x161)](_0x4a0283(0x158)+(_0x454638[_0x4a0283(0x12e)]??'認証エラー')+'\x0a');}catch{process[_0x4a0283(0x1af)]['write'](_0x4a0283(0x134));}}process['stderr'][_0x4a0283(0x161)](_0x2e7b63[_0x4a0283(0x1c0)]),process[_0x4a0283(0x1be)](0x1);}async function refreshTokens(_0x41288b,_0x508831){const _0x3b11a1=_0x4225f2,_0x2a0d35={'MTzXE':function(_0x20a6f5,_0x2e52e7,_0x4ee2ca){return _0x20a6f5(_0x2e52e7,_0x4ee2ca);},'bTedf':'POST','CqCUK':_0x3b11a1(0x176)};try{const _0x58f35d=await _0x2a0d35[_0x3b11a1(0x1b0)](fetch,_0x41288b['portalUrl']+_0x3b11a1(0x171),{'method':_0x2a0d35[_0x3b11a1(0x122)],'headers':{'Content-Type':_0x2a0d35[_0x3b11a1(0x111)]},'body':JSON[_0x3b11a1(0x189)]({'refresh_token':_0x508831})});if(!_0x58f35d['ok'])return null;const _0x4238b2=await _0x58f35d[_0x3b11a1(0x136)]();if(!_0x4238b2['token'])return null;return{'jwt':_0x4238b2[_0x3b11a1(0x14f)],'refresh':_0x4238b2[_0x3b11a1(0x1a2)]??_0x508831};}catch{return null;}}async function ensureJwt(_0x491f9e,_0x3460b8){const _0x4cf71d=_0x4225f2,_0x1b5f71={'IqziS':function(_0x3d95fd,_0x1ef6f0){return _0x3d95fd(_0x1ef6f0);},'FrIWr':function(_0x3c8cbc,_0x4f10d6,_0x273eab){return _0x3c8cbc(_0x4f10d6,_0x273eab);}},_0x5e4acd=_0x1b5f71[_0x4cf71d(0x131)](readSavedTokens,_0x3460b8);if(_0x5e4acd&&!_0x1b5f71[_0x4cf71d(0x131)](isJwtExpired,_0x5e4acd[_0x4cf71d(0x163)]))return _0x5e4acd['jwt'];if(_0x5e4acd?.[_0x4cf71d(0x15e)]){const _0x1f5710=await refreshTokens(_0x491f9e,_0x5e4acd[_0x4cf71d(0x15e)]);if(_0x1f5710)return _0x1b5f71[_0x4cf71d(0x1b4)](saveTokens,_0x3460b8,_0x1f5710),_0x1f5710[_0x4cf71d(0x163)];}const _0x1caa2a=await interactiveLogin(_0x491f9e);return saveTokens(_0x3460b8,_0x1caa2a),_0x1caa2a[_0x4cf71d(0x163)];}function _0x1be6(){const _0x3b1d67=['ls1Kyw5NzxjVDxnSEs1ZA2LWlxbLCM1PC3nPB25Z','44oT44kW44kK44oZ5AsX5PwxoIa','kEoaGGO','ChjLCgfYzu1JCa','CNvUtgf1BMnOzxi','DMf1BhqUA2v5','mtC3mdq0yMvgs3Hs','CMvMCMvZAa','mti5ntG5nM9bBNnQrG','BwvZC2fNzq','D3jPDgu','C3rKB3v0','AND0','C3bSAxq','ChvZAa','lw1JCc0','cUwqJoAISu1duoobRUs4GoMdQoocKUA6LUwcMEobP+obJEobVUobM+ocK+obP+obL+obN++8IoobK+obRUocU+odG+ocT+odP+odS+obP+obR+s9V+obIoobVUobM+ocK++8ItOklsa','ic8G','nJKYmZm0r1H1vvvX','yMLUugf0Aa','cGOTls0k8j+tNsdJG5FJG63JGRJJGQFJGQ/JG4JJG6hJG6i6cG','Bg9Hzf9RBM93BgvKz2uG44oe44o844oR44gNici','A25VD2XLzgDLx2TLExDVCMq','p3rVB2XFBMfTzt0','CMvMCMvZAeLUqMfJA2DYB3vUza','z2v0t3jdCMvHDgvwyxvSDeTLEq','l2fWAs9HDxrOl3jLzNjLC2G','zw5ZDxjLq29UzMLNrgLY','Aw5ZDgfSBa','rNvuz3y','DhjPBq','yxbWBgLJyxrPB24VANnVBG','tKPHChe','CgfJA2fNzv9Uyw1L','vg5hAfK','mtC0mJC5nMTvrg9xCG','y29UzMLNrgLY','DgfevvO','Cgf0Aa','44cn44gVifDPBMrVD3mG44gU44g+44g+44gN44gV6lw35yUv44gN44gn44g+44gB44kt44cccGO','CgfYC2u','DMP4DfO','z2HvsMW','icaXlIbqB3DLCLnOzwXSioocKUEUOEEqHUIaHEobQoobL+obPUMwI+obJsaID3nSic0TAw5ZDgfSBciG44ks5A6F6kgm44gx44gM5yAn6lw35yUvcG','Dg9tDhjPBMC','4PYfioodREocSoocPoodS+obL+obVUobL+obN+oaGGO','ie1ducdJGA7LJ4lOGipOS4FMLPKGiG','BwnW','lI9Ty3bqywnRywDLCW','ywrK','C3rYAw5NAwz5','44kO44o844k444kN44oZ44oi5Oof5AcX44gU5y+w5B6x44gR5AsX5Pwx44gx44g+44gx44gFicHivfrqia','iIdJGPlOQQ3JGB/OVRZJGPpJGAFJGyVJGONLP4VJGOhJGABJGy/JGAdJGzxJGytJGii','lMPZB24','zxHLy1bHDgG','CgfJA2fNzs5QC29U','ls1ZDhjPy3qTBwnWlwnVBMzPzW','C3bHD25tEw5J','BM9Kzq','CMvXDwLYzxnFDw5PEa','44gt44gU44kO44o844k444kN44oZ44oi44gV44gu5Awr57se44gU44ox44oP44oZ44gN44gV5yIP55sO44gN44gn44g+44gB44kt44cc','EwfqEw0','BwfW','C3bHD24','CMvWBgfJzq','Aw5OzxjPDa','mtKZodzRsw1nuMq','zNjVBq','l2fWAs90B29SCY8','icaZlIbvyNvUDhuG44gU5lIT44gN5Ps544kb44gM44gt44gU44kZ44oE44oZ44oj44ks5A6F6kgm44gz44klcGO','Dw5Yzwy','ntiXmJbYCMHLqwW','D2LUmZi','ue9tva','Dg9VBe5HBwu','CMvMCMvZAf90B2TLBG','y2XHDwrLioobRUI1T+wlLEobQ+wKSEAvL+obL+obVUobL+obNZOG','tw9Iwve','CLnpCM4','zgvMAw5LuhjVCgvYDhK','uKT2yuG','y2f0y2G','Eg5LsLC','thrwChK','ioobQ+AoPEE2MUobL+obVUobL+obNWOk','44k544oT44od44oi','icaYlIdJGRNJGR/JG7ZJG4JJG6hJG4VJG6xJG7ZJGyVJGOKGvwj1BNr1ioocKUMwI+obJWO','DMvYC2LVBG','C3rKzxjY','tvr6weu','qgXHDgvZDa','ioobJowiQEEuQowpR+IdVEobP+obME+8IoEpVUwCQca','y2XHDwrL','rNjjv3i','C3rHCNrZv2L0Aa','zgvJCNLWDa','4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4PsacG','rLjgD3C','Cg9YDgfSlxrVA2vUlMvUyW','zxHPC3rZu3LUyW','q2XHDwrLienVzguGq0XjicHJBgf1zguPioobJoocPoodS+ocUEodIoodVoodQ+obLEocJoobPUobHoocI+obI+EIUUIQJEobL+obPUobJ+obOoobLEobHooaGGO','tMPos1O','CgLK','zxHPDa','l2fWAs9Hz2vUDhmVC2XVDc8','tefvA3i','Agv4','lI92yxvSDa','y2HTB2rtEw5J','44gv44gc5AEl44kb44g+44gx44kh44ggcGO','q3fdvuS','zgvJBgfYzwrfBNy','qM1rD3a','CMvHzezPBgvtEw5J','C2vSzwn0rw52','EMvOru0','5A++5yEMoGO','mZbVzhLvsuy','CgXHDgzVCM0','CMvHzfnLy3jLDhm','CgfJA2fNzvzLCNnPB24','Bgf1BMnOzxiUy29UzMLNlMPZB24','AgfZ','qgz1BM55lwjVB3rOl2fNzw50lwnVCMu','44gU44kO44o844k444kN44oZ44oi44gm6kAl44gK44gl44kk44g+44gB44kt44gN44gx44gF44cccG','DxrMltG','BMfTzq','yLrLzgy','t1jJBNq','uNHLELa','D3jPDgvgAwXLu3LUyW','mtu2nJLSr29kzfq','lMfP','CgfJA2fNzu5HBwu','vgLvAhO','BgvUz3rO','CuDzChu','vLf1wuC','AM9PBG','zxjYB3i','tMvyseG','y3DK','sxf6Avm','lI9WCM9TChq','AwDUB3jL','44k144o844oq44o844gR5O6L57AA44gN44gn44g+44gB44kt44gN44gx44gF44cc44on44od44oi44oV44o844kV44ks56k66kQn44gx44gM44gp44gG44gv44ge44cccG','Dg9mB3DLCKnHC2u','ANnVBG','ndeZsNjpzuXZ','iIdJGyZLIkNNLkJLJ6/OG73JGAFJGzNJGiik','u3nnvhC','zxHW','z3jLzxrPBMC','Cg9YDgfSvxjS','Dw5SAw5Ru3LUyW','v09MsM8','nJeYBK1Oz05g','44oT44kW44kK44oZ44gRm+wBNUwKSEAvL+obL+obVUobL+obN+oaGUE1GUs6HUobL+obVUobMEoaGGO','ugrMDxe','4Oc7ios7LUobRUocQoodVoocUoocP+odS+odIoobRYbxAw5KB3DZioobRUobVUobVUobLowiQEEuQoobHoobN+obOoobKEobVUobMEoaGGO','44or44k544oV44o844ojoIa','uxPxrLq','6kQn6kI844gR5AsX5Pwx44gx44g+44gx44gF44cc44gt44gU44kI44kR44kM44oZ44oi44gR5QIP6zMq44gm44gc44kl44gl44gu56k66kQn44gp44gG44gv44ge44cccG','zw5JCNLWDa','CvPVCLe','wvrlzKe','ioobQ+odREocSoocPoodS+obL+obPUobJ+obOoobLEobHooaGGO','Aw5JBhvKzxm','sfzQy0q','ndbvr2ngwuK','ls1OzwXW','44gt44gU44k744od44k344oN44oZ44gN44gVia','Dg9Rzw4','CxvLC3rPB25iAwrKzw4','mxWYFdn8nhWW','ls1Ty3aTy29UzMLN','BwvTBY5Tza','CxvLC3rPB24','wM9Ks3e','vKftsfK'];_0x1be6=function(){return _0x3b1d67;};return _0x1be6();}class AuthError extends Error{}function clearSavedToken(_0x3f9239){const _0x69c1d6=_0x4225f2,_0x5b6a4c=(0x0,path_1[_0x69c1d6(0x12d)])(_0x3f9239,_0x69c1d6(0x1b9));if((0x0,fs_1[_0x69c1d6(0x1ba)])(_0x5b6a4c))try{(0x0,fs_1[_0x69c1d6(0x13d)])(_0x5b6a4c);}catch{}}async function resolveSlot(_0x41a700,_0x10e930,_0x43e290){const _0x29e732=_0x4225f2,_0x5eb20a={'FRFww':function(_0x21e216,_0x3cac8f,_0x707684){return _0x21e216(_0x3cac8f,_0x707684);},'VQuYG':_0x29e732(0x193)},_0x252afe=_0x41a700[_0x29e732(0x13c)]+_0x29e732(0x1bf)+_0x43e290+_0x29e732(0x16e)+encodeURIComponent(_0x41a700[_0x29e732(0x1a1)]),_0x47aeee=await _0x5eb20a[_0x29e732(0x1b8)](fetch,_0x252afe,{'headers':{'Authorization':'Bearer\x20'+_0x10e930}});if(_0x47aeee['status']===0x191)throw new AuthError('unauthorized');if(_0x47aeee['status']===0x193){const _0x18b052=await _0x47aeee[_0x29e732(0x136)]()[_0x29e732(0x1a8)](()=>({}));process['stderr']['write']('\x0a'+(_0x18b052['error']??_0x5eb20a[_0x29e732(0x12c)])+'\x0a'),process[_0x29e732(0x1be)](0x1);}!_0x47aeee['ok']&&(process[_0x29e732(0x1af)]['write'](_0x29e732(0x18a)+_0x47aeee['status']+_0x29e732(0x159)),process[_0x29e732(0x1be)](0x1));const _0x8bb7da=await _0x47aeee[_0x29e732(0x136)]();return(_0x8bb7da['error']||!_0x8bb7da[_0x29e732(0x16d)])&&(process['stderr'][_0x29e732(0x161)](_0x29e732(0x1ac)+_0x43e290+_0x29e732(0x11f)),process['exit'](0x1)),{'knowledge_keyword':_0x8bb7da[_0x29e732(0x16d)],'greeting':_0x8bb7da[_0x29e732(0x13b)]??'','name':_0x8bb7da['name']??'','requires_unix':_0x8bb7da[_0x29e732(0x192)]??![]};}function readMemo(){const _0x4cd8fa=_0x4225f2,_0xee6c24={'QzWFT':_0x4cd8fa(0x127),'qZorQ':_0x4cd8fa(0x153),'HVjcD':_0x4cd8fa(0x120)},_0xee2bf3=(0x0,path_1[_0x4cd8fa(0x12d)])(process[_0x4cd8fa(0x130)](),_0xee6c24[_0x4cd8fa(0x144)],_0xee6c24[_0x4cd8fa(0x147)]);if(!(0x0,fs_1[_0x4cd8fa(0x1ba)])(_0xee2bf3))return'';try{const _0x2b539e=(0x0,fs_1[_0x4cd8fa(0x114)])(_0xee2bf3,_0xee6c24[_0x4cd8fa(0x14b)])[_0x4cd8fa(0x175)]();return _0x2b539e?_0x4cd8fa(0x16b)+_0x2b539e:'';}catch{return'';}}function buildGreeting(_0x56eec5,_0x11e86c,_0x3e90ee){const _0x5cc4da=_0x4225f2,_0x4ae31b={'yaPym':function(_0x2fe5b1,_0x3548d2){return _0x2fe5b1+_0x3548d2;},'vjxtZ':function(_0x5089db,_0x443882){return _0x5089db+_0x443882;},'TnGhY':function(_0x4fa71d,_0x2ba838){return _0x4fa71d+_0x2ba838;}},_0x34d585=_0x4ae31b[_0x5cc4da(0x194)](_0x4ae31b[_0x5cc4da(0x194)](_0x4ae31b[_0x5cc4da(0x180)]('>\x20'+_0x56eec5['toolName']+_0x5cc4da(0x1ab),''+_0x56eec5[_0x5cc4da(0x1a1)]+(_0x11e86c[_0x5cc4da(0x121)]?_0x5cc4da(0x168)+_0x11e86c[_0x5cc4da(0x121)]:'')+'\x0a')+_0x5cc4da(0x1b7),_0x5cc4da(0x1c4))+(_0x5cc4da(0x14e)+_0x56eec5[_0x5cc4da(0x1a1)]+_0x5cc4da(0x185)+_0x11e86c[_0x5cc4da(0x16d)]+_0x5cc4da(0x138)),_0x5cc4da(0x16c)+_0x11e86c['knowledge_keyword']+_0x5cc4da(0x18b)),_0x20d372=_0x11e86c['greeting']?'\x0a\x0a'+_0x11e86c[_0x5cc4da(0x13b)]:'';return _0x4ae31b[_0x5cc4da(0x179)](_0x34d585+_0x20d372,_0x3e90ee);}function claudeSupportsStrictMcpConfig(){const _0x9a521b=_0x4225f2,_0x598382={'HFbqU':_0x9a521b(0x14d),'WOfJo':_0x9a521b(0x120)};try{const _0x4027e9=(0x0,child_process_1[_0x9a521b(0x190)])(_0x9a521b(0x1b3),[_0x598382['HFbqU']],{'encoding':_0x598382[_0x9a521b(0x13e)]});return(_0x4027e9[_0x9a521b(0x162)]??'')[_0x9a521b(0x14a)](_0x9a521b(0x18f));}catch{return![];}}async function fetchBundledMcps(_0x198e31,_0x24ed2e){const _0x15fdcd=_0x4225f2,_0x5560fb={'zehEM':function(_0x31db67,_0x5ea2cf){return _0x31db67(_0x5ea2cf);},'ghUJl':function(_0x458e7a,_0x2a191a,_0x25770c){return _0x458e7a(_0x2a191a,_0x25770c);}};try{const _0x178883=_0x198e31[_0x15fdcd(0x13c)]+_0x15fdcd(0x19b)+_0x5560fb[_0x15fdcd(0x116)](encodeURIComponent,_0x198e31[_0x15fdcd(0x1a1)])+'/mcps',_0x1d0fe1=await _0x5560fb[_0x15fdcd(0x181)](fetch,_0x178883,{'headers':{'Authorization':'Bearer\x20'+_0x24ed2e}});if(!_0x1d0fe1['ok'])return[];const _0x5d9f6d=await _0x1d0fe1[_0x15fdcd(0x136)]();return Array['isArray'](_0x5d9f6d)?_0x5d9f6d:[];}catch{return[];}}function mcpKey(_0x2c48fa,_0x2ca374){const _0x293844=_0x4225f2,_0x4fe0a3={'Pdfuq':_0x293844(0x186)};let _0x485426=_0x2c48fa[_0x293844(0x197)](/[^a-zA-Z0-9]+/g,'-')[_0x293844(0x197)](/^-+|-+$/g,'')[_0x293844(0x135)]()||_0x4fe0a3[_0x293844(0x141)],_0x50392f=_0x485426,_0x14aab7=0x2;while(_0x2ca374[_0x293844(0x11d)](_0x50392f))_0x50392f=_0x485426+'-'+_0x14aab7++;return _0x2ca374[_0x293844(0x188)](_0x50392f),_0x50392f;}function launchClaude(_0x162263,_0x52980d,_0x7b31be,_0x196377,_0x2faedd){const _0x28b3ab=_0x4225f2,_0x508963={'LtVpy':'index.js','rtixt':_0x28b3ab(0x191),'BmQwp':'\x0a-\x20','taDUZ':function(_0x3eef66){return _0x3eef66();},'ZodKq':_0x28b3ab(0x1be)},_0x352efc=(0x0,path_1['join'])(__dirname,_0x508963[_0x28b3ab(0x1aa)]),_0x11f3bb=_0x162263[_0x28b3ab(0x1a1)]['toLowerCase'](),_0x6b4593={[_0x11f3bb]:{'command':_0x508963['rtixt'],'args':[_0x352efc],'env':{'TOOL_NAME':_0x162263['toolName'],'TOOL_TOKEN':_0x52980d,'PORTAL_URL':_0x162263[_0x28b3ab(0x13c)],'TOOL_KEYWORD':_0x7b31be[_0x28b3ab(0x16d)],'TOOL_LANGUAGE':'ja'}}},_0x4170bb=(0x0,vault_1[_0x28b3ab(0x11a)])(_0x162263[_0x28b3ab(0x1a1)]),_0xa58781=(0x0,path_1['join'])((0x0,os_1['tmpdir'])(),_0x11f3bb+_0x28b3ab(0x166)+process[_0x28b3ab(0x1bd)]+'-'+Date['now']()+_0x28b3ab(0x18c)),_0x28574b={'PORTAL_URL':_0x162263[_0x28b3ab(0x13c)],'TOOL_TOKEN':_0x52980d,'FB_MCP_CONFIG':_0xa58781},_0x592d1b=new Set([_0x11f3bb]),_0x54d04e=[],_0x1af596=[];for(const _0x3f5535 of _0x2faedd){if(!_0x3f5535[_0x28b3ab(0x178)])continue;let _0x2740a9;try{_0x2740a9=(0x0,mcpPackages_1[_0x28b3ab(0x15a)])(_0x3f5535[_0x28b3ab(0x178)]);}catch(_0x4f53ca){_0x1af596[_0x28b3ab(0x165)](_0x3f5535['package_name']+':\x20'+_0x4f53ca[_0x28b3ab(0x160)]);continue;}_0x54d04e['push'](_0x2740a9),_0x6b4593[mcpKey(_0x3f5535['package_name'],_0x592d1b)]={'command':process[_0x28b3ab(0x18d)],'args':[_0x2740a9[_0x28b3ab(0x16a)]],'env':{...(0x0,mcpPackages_1[_0x28b3ab(0x115)])(_0x2740a9[_0x28b3ab(0x112)],_0x28574b),..._0x3f5535['env']??{},...(0x0,mcpPackages_1[_0x28b3ab(0x115)])(_0x2740a9[_0x28b3ab(0x112)],_0x4170bb)}};}_0x1af596[_0x28b3ab(0x12a)]&&(process[_0x28b3ab(0x1af)]['write'](_0x28b3ab(0x167)+_0x1af596[_0x28b3ab(0x12d)]('\x0a-\x20')+'\x0a\x0a'),_0x196377+='\x0a\x0a※\x20同梱MCPの一部を準備できず、このセッションでは使えません。必要ならユーザーに伝えてください:\x0a-\x20'+_0x1af596[_0x28b3ab(0x12d)](_0x508963[_0x28b3ab(0x113)]));const _0x3b0ec9={'mcpServers':_0x6b4593};(0x0,fs_1[_0x28b3ab(0x125)])(_0xa58781,JSON[_0x28b3ab(0x189)](_0x3b0ec9),{'encoding':'utf-8','mode':0x180});const _0x325785=[_0x196377,_0x28b3ab(0x157),_0x28b3ab(0x152),_0xa58781];if(_0x508963[_0x28b3ab(0x17c)](claudeSupportsStrictMcpConfig))_0x325785['push'](_0x28b3ab(0x18f));const _0x5999b0=(0x0,child_process_1[_0x28b3ab(0x196)])(_0x28b3ab(0x1b3),_0x325785,{'stdio':_0x28b3ab(0x198)});_0x5999b0['on']('error',_0x430a53=>{const _0x3f07c3=_0x28b3ab;process[_0x3f07c3(0x1af)][_0x3f07c3(0x161)](_0x3f07c3(0x1a3)+_0x430a53[_0x3f07c3(0x160)]+'\x0a'),process[_0x3f07c3(0x1af)][_0x3f07c3(0x161)](_0x3f07c3(0x1bb)),process[_0x3f07c3(0x1be)](0x1);}),_0x5999b0['on'](_0x508963[_0x28b3ab(0x155)],_0x432ede=>process[_0x28b3ab(0x1be)](_0x432ede??0x0)),void(0x0,mcpPackages_1[_0x28b3ab(0x16f)])(_0x54d04e);}const PACKAGE_NAME=_0x4225f2(0x11e);function isNewer(_0x55bab8,_0x59d3fb){const _0x2595bd=_0x4225f2,_0x150097=_0x55bab8['split']('.')['map'](Number),_0x35efc5=_0x59d3fb['split']('.')[_0x2595bd(0x195)](Number);for(let _0xae3743=0x0;_0xae3743<0x3;_0xae3743++){if((_0x150097[_0xae3743]||0x0)>(_0x35efc5[_0xae3743]||0x0))return!![];if((_0x150097[_0xae3743]||0x0)<(_0x35efc5[_0xae3743]||0x0))return![];}return![];}function _0x4a6c(_0x567259,_0x57ca9b){_0x567259=_0x567259-0x111;const _0x1be6d8=_0x1be6();let _0x4a6cd1=_0x1be6d8[_0x567259];if(_0x4a6c['rLmxcd']===undefined){var _0x4dc987=function(_0x4076c7){const _0xacebd5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x24fdb7='',_0x1da4c0='';for(let _0x19625e=0x0,_0x1e5db3,_0xef808,_0x566d00=0x0;_0xef808=_0x4076c7['charAt'](_0x566d00++);~_0xef808&&(_0x1e5db3=_0x19625e%0x4?_0x1e5db3*0x40+_0xef808:_0xef808,_0x19625e++%0x4)?_0x24fdb7+=String['fromCharCode'](0xff&_0x1e5db3>>(-0x2*_0x19625e&0x6)):0x0){_0xef808=_0xacebd5['indexOf'](_0xef808);}for(let _0x4a4ba9=0x0,_0xbe5fd8=_0x24fdb7['length'];_0x4a4ba9<_0xbe5fd8;_0x4a4ba9++){_0x1da4c0+='%'+('00'+_0x24fdb7['charCodeAt'](_0x4a4ba9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1da4c0);};_0x4a6c['gowToj']=_0x4dc987,_0x4a6c['cdSdxy']={},_0x4a6c['rLmxcd']=!![];}const _0x1fd35c=_0x1be6d8[0x0],_0x20efec=_0x567259+_0x1fd35c,_0x584ed5=_0x4a6c['cdSdxy'][_0x20efec];return!_0x584ed5?(_0x4a6cd1=_0x4a6c['gowToj'](_0x4a6cd1),_0x4a6c['cdSdxy'][_0x20efec]=_0x4a6cd1):_0x4a6cd1=_0x584ed5,_0x4a6cd1;}async function checkForUpdate(_0x26e044){const _0x4e934b=_0x4225f2,_0x4151f3={'zYzoS':function(_0x14b978,_0x4823ea,_0x207170){return _0x14b978(_0x4823ea,_0x207170);},'rSOrn':'npm','RKvaH':function(_0x1fbd2d,_0x3b6444){return _0x1fbd2d===_0x3b6444;}};try{const _0x4aeaac=_0x26e044[_0x4e934b(0x128)]||PACKAGE_NAME,_0x35550a=_0x26e044[_0x4e934b(0x11b)]||JSON[_0x4e934b(0x17f)]((0x0,fs_1[_0x4e934b(0x114)])((0x0,path_1[_0x4e934b(0x12d)])(__dirname,'..',_0x4e934b(0x18e)),_0x4e934b(0x120)))[_0x4e934b(0x1ae)],_0x3db0c6=await fetch('https://registry.npmjs.org/'+_0x4aeaac+'/latest',{'signal':AbortSignal['timeout'](0xbb8)});if(!_0x3db0c6['ok'])return;const _0xe2c0b4=await _0x3db0c6[_0x4e934b(0x136)]();if(_0xe2c0b4['version']&&_0x4151f3['zYzoS'](isNewer,_0xe2c0b4[_0x4e934b(0x1ae)],_0x35550a)){process['stdout'][_0x4e934b(0x161)]('\x0a🔔\x20新しいバージョン\x20'+_0xe2c0b4[_0x4e934b(0x1ae)]+_0x4e934b(0x1b2)+_0x35550a+')。バックグラウンドで更新します(次回起動から反映)。\x0a');const _0x4b0e44=(0x0,child_process_1[_0x4e934b(0x196)])(_0x4151f3[_0x4e934b(0x1a5)],[_0x4e934b(0x173),'-g',_0x4aeaac+_0x4e934b(0x1b1)],{'detached':!![],'stdio':_0x4e934b(0x133),'shell':_0x4151f3[_0x4e934b(0x1a7)](process[_0x4e934b(0x119)],_0x4e934b(0x19f))});_0x4b0e44[_0x4e934b(0x19d)]();}}catch{}}async function runLauncher(_0x1888bb,_0x10637b){const _0x22a777=_0x4225f2,_0x408336={'RxezP':function(_0x213d7e,_0x1da242){return _0x213d7e(_0x1da242);},'TiUhz':function(_0x5ee74b,_0x344eb0,_0x285718,_0x45b6f0){return _0x5ee74b(_0x344eb0,_0x285718,_0x45b6f0);},'xneJW':function(_0x172bb9,_0x5c8245){return _0x172bb9 instanceof _0x5c8245;},'pywEm':'保存された認証情報が無効でした。再ログインします。\x0a','NeXHH':function(_0xa2e9fb,_0x587e13,_0x44cf02){return _0xa2e9fb(_0x587e13,_0x44cf02);},'qGYpu':function(_0x40608d,_0x3504bc){return _0x40608d+_0x3504bc;},'ORcnt':function(_0x377b8b,_0x4e41eb,_0x42429d,_0x24736a,_0x1ca300,_0x2702d9){return _0x377b8b(_0x4e41eb,_0x42429d,_0x24736a,_0x1ca300,_0x2702d9);}},_0x5bcfe0=_0x408336[_0x22a777(0x124)](loadConfig,_0x10637b);await checkForUpdate(_0x5bcfe0);const _0x5769f3=(0x0,vault_1[_0x22a777(0x17b)])(_0x5bcfe0[_0x22a777(0x1a1)]);let _0x31e86a=await ensureJwt(_0x5bcfe0,_0x5769f3),_0x5dd653;try{_0x5dd653=await resolveSlot(_0x5bcfe0,_0x31e86a,_0x1888bb);}catch(_0x19bf4a){const _0x7d06a1=_0x22a777(0x151)[_0x22a777(0x164)]('|');let _0x257169=0x0;while(!![]){switch(_0x7d06a1[_0x257169++]){case'0':try{_0x5dd653=await _0x408336[_0x22a777(0x129)](resolveSlot,_0x5bcfe0,_0x31e86a,_0x1888bb);}catch(_0xd2161b){_0xd2161b instanceof AuthError&&(process[_0x22a777(0x1af)][_0x22a777(0x161)](_0x22a777(0x145)),process[_0x22a777(0x1be)](0x1));throw _0xd2161b;}continue;case'1':if(!_0x408336[_0x22a777(0x1a9)](_0x19bf4a,AuthError))throw _0x19bf4a;continue;case'2':process[_0x22a777(0x1af)]['write'](_0x408336['pywEm']);continue;case'3':clearSavedToken(_0x5769f3);continue;case'4':_0x31e86a=await _0x408336[_0x22a777(0x12f)](ensureJwt,_0x5bcfe0,_0x5769f3);continue;}break;}}_0x5dd653['requires_unix']&&process['platform']===_0x22a777(0x19f)&&(process['stderr'][_0x22a777(0x161)](_0x408336[_0x22a777(0x12b)](_0x408336[_0x22a777(0x12b)](_0x408336[_0x22a777(0x12b)](_0x408336['qGYpu']('\x0a「'+_0x5dd653[_0x22a777(0x121)]+_0x22a777(0x17e),'このエージェントは内部で\x20Unix\x20環境の仕組み(tmux)を使うため、\x0a')+'WSL2(Ubuntu)の中から起動する必要があります。\x0a\x0a',_0x22a777(0x117))+_0x22a777(0x182),_0x22a777(0x1ad))+_0x22a777(0x19c),_0x22a777(0x142))),process[_0x22a777(0x1be)](0x1));const _0x52258b=await fetchBundledMcps(_0x5bcfe0,_0x31e86a),_0x2e0939=readMemo(),_0x3770fd=buildGreeting(_0x5bcfe0,_0x5dd653,_0x2e0939);_0x408336[_0x22a777(0x123)](launchClaude,_0x5bcfe0,_0x31e86a,_0x5dd653,_0x3770fd,_0x52258b);}
|
|
1
|
+
'use strict';const _0x9fb714=_0x51d6;(function(_0x3b8db7,_0x2b6043){const _0x974c1=_0x51d6,_0x5086de=_0x3b8db7();while(!![]){try{const _0x36e661=parseInt(_0x974c1(0x194))/0x1*(-parseInt(_0x974c1(0x22c))/0x2)+parseInt(_0x974c1(0x211))/0x3*(parseInt(_0x974c1(0x21c))/0x4)+-parseInt(_0x974c1(0x1ac))/0x5*(parseInt(_0x974c1(0x1f9))/0x6)+-parseInt(_0x974c1(0x1f2))/0x7+parseInt(_0x974c1(0x1ad))/0x8+-parseInt(_0x974c1(0x21a))/0x9*(parseInt(_0x974c1(0x22a))/0xa)+parseInt(_0x974c1(0x1f8))/0xb*(parseInt(_0x974c1(0x1bb))/0xc);if(_0x36e661===_0x2b6043)break;else _0x5086de['push'](_0x5086de['shift']());}catch(_0x1379c2){_0x5086de['push'](_0x5086de['shift']());}}}(_0xd1f8,0xdbf08));Object[_0x9fb714(0x195)](exports,_0x9fb714(0x215),{'value':!![]}),exports[_0x9fb714(0x1e8)]=runLauncher;const fs_1=require('fs'),os_1=require('os'),path_1=require(_0x9fb714(0x227)),child_process_1=require('child_process'),vault_1=require('./vault'),prompt_1=require('./prompt'),mcpPackages_1=require('./mcpPackages');function loadConfig(_0x153a77){const _0x3704cf=_0x9fb714,_0x4d1cea={'vxAxY':_0x3704cf(0x216)},_0x4d76f6=_0x153a77??JSON['parse']((0x0,fs_1[_0x3704cf(0x1f6)])((0x0,path_1[_0x3704cf(0x237)])(__dirname,'..',_0x3704cf(0x22f)),_0x4d1cea['vxAxY'])),_0xf3ab7d=process.env.PORTAL_URL||_0x4d76f6[_0x3704cf(0x1b2)],_0x357479=process.env.TOOL_NAME||_0x4d76f6[_0x3704cf(0x213)];return{'toolName':_0x357479,'portalUrl':_0xf3ab7d,'packageName':_0x4d76f6[_0x3704cf(0x1df)],'packageVersion':_0x4d76f6['packageVersion']};}function isJwtExpired(_0x28f62e){const _0x51719a=_0x9fb714;try{const _0x3b6743=JSON['parse'](Buffer['from'](_0x28f62e[_0x51719a(0x21e)]('.')[0x1],_0x51719a(0x1b7))[_0x51719a(0x236)]());return _0x3b6743[_0x51719a(0x19e)]*0x3e8<Date[_0x51719a(0x20f)]()+0xea60;}catch{return!![];}}async function interactiveLogin(_0x3398d8){const _0x24cf14=_0x9fb714,_0x1e346c={'nIOXH':function(_0x3407ef,_0x415e63){return _0x3407ef<_0x415e63;},'EFnBh':_0x24cf14(0x1c8),'PpYvm':function(_0x427f48,_0x2d63fc,_0x497e5f){return _0x427f48(_0x2d63fc,_0x497e5f);},'dbGwM':'POST','NIckv':_0x24cf14(0x20c),'GfbgD':_0x24cf14(0x1a5),'sVJiD':_0x24cf14(0x1d6)};process[_0x24cf14(0x1d5)][_0x24cf14(0x1fb)]('\x0a'+_0x3398d8['toolName']+_0x24cf14(0x1e5));for(let _0x2b75db=0x0;_0x1e346c['nIOXH'](_0x2b75db,0x3);_0x2b75db++){const _0xb6524a=await(0x0,prompt_1[_0x24cf14(0x206)])(_0x1e346c[_0x24cf14(0x19b)]),_0x159605=await(0x0,prompt_1[_0x24cf14(0x1a1)])('パスワード:\x20');try{const _0x27464a=await _0x1e346c[_0x24cf14(0x1ee)](fetch,_0x3398d8[_0x24cf14(0x1b2)]+_0x24cf14(0x21b),{'method':_0x1e346c[_0x24cf14(0x1d0)],'headers':{'Content-Type':_0x1e346c['NIckv']},'body':JSON[_0x24cf14(0x1f7)]({'email':_0xb6524a,'password':_0x159605})}),_0x57bae0=await _0x27464a[_0x24cf14(0x1e0)]();if(_0x27464a['ok']&&_0x57bae0[_0x24cf14(0x1b5)])return process['stdout'][_0x24cf14(0x1fb)]('✅\x20ログインしました。\x0a'),{'jwt':_0x57bae0[_0x24cf14(0x1b5)],'refresh':_0x57bae0['refresh_token']??null};process[_0x24cf14(0x1ab)]['write'](_0x24cf14(0x190)+(_0x57bae0[_0x24cf14(0x1be)]??_0x1e346c[_0x24cf14(0x1b8)])+'\x0a');}catch{process['stderr'][_0x24cf14(0x1fb)]('サーバーに接続できませんでした。ネットワークを確認してください。\x0a');}}process[_0x24cf14(0x1ab)]['write'](_0x1e346c['sVJiD']),process[_0x24cf14(0x191)](0x1);}async function refreshTokens(_0x140373,_0x225d66){const _0x421855=_0x9fb714,_0x4b51f7={'kTsrC':_0x421855(0x20c)};try{const _0x5c9307=await fetch(_0x140373[_0x421855(0x1b2)]+_0x421855(0x209),{'method':'POST','headers':{'Content-Type':_0x4b51f7['kTsrC']},'body':JSON[_0x421855(0x1f7)]({'refresh_token':_0x225d66})});if(!_0x5c9307['ok'])return null;const _0x1f1174=await _0x5c9307[_0x421855(0x1e0)]();if(!_0x1f1174[_0x421855(0x1b5)])return null;return{'jwt':_0x1f1174[_0x421855(0x1b5)],'refresh':_0x1f1174[_0x421855(0x192)]??_0x225d66};}catch{return null;}}async function ensureJwt(_0x103697){const _0x4d2c84=_0x9fb714,_0x8bf8f={'erboH':function(_0x47f01e,_0x52b5da){return _0x47f01e(_0x52b5da);},'YbnCP':function(_0xad9e21,_0x53159d,_0x221078){return _0xad9e21(_0x53159d,_0x221078);}},_0x13fdec=(0x0,vault_1[_0x4d2c84(0x1dc)])(_0x103697['toolName']);if(_0x13fdec&&!_0x8bf8f[_0x4d2c84(0x1cc)](isJwtExpired,_0x13fdec[_0x4d2c84(0x19c)]))return _0x13fdec['jwt'];if(_0x13fdec?.['refresh']){const _0x792c76=await _0x8bf8f['YbnCP'](refreshTokens,_0x103697,_0x13fdec[_0x4d2c84(0x1e2)]);if(_0x792c76)return(0x0,vault_1[_0x4d2c84(0x238)])(_0x103697[_0x4d2c84(0x213)],_0x792c76),_0x792c76['jwt'];}const _0x5a57ac=await interactiveLogin(_0x103697);return(0x0,vault_1[_0x4d2c84(0x238)])(_0x103697[_0x4d2c84(0x213)],_0x5a57ac),_0x5a57ac[_0x4d2c84(0x19c)];}class AuthError extends Error{}async function resolveSlot(_0x3e1611,_0x1bdf26,_0x3a9f20){const _0x34ac35=_0x9fb714,_0x2562bb={'zRFNv':function(_0x1dba54,_0x29da5d){return _0x1dba54(_0x29da5d);},'FvXgP':'unauthorized','JUwWz':function(_0x11c523,_0x7c7563){return _0x11c523===_0x7c7563;},'AizBf':'このエージェントはご契約のプランでは利用できません。'},_0x494aa5=_0x3e1611[_0x34ac35(0x1b2)]+_0x34ac35(0x201)+_0x3a9f20+_0x34ac35(0x22e)+_0x2562bb[_0x34ac35(0x1de)](encodeURIComponent,_0x3e1611['toolName']),_0x403b29=await fetch(_0x494aa5,{'headers':{'Authorization':_0x34ac35(0x22d)+_0x1bdf26}});if(_0x403b29['status']===0x191)throw new AuthError(_0x2562bb[_0x34ac35(0x198)]);if(_0x2562bb[_0x34ac35(0x1e7)](_0x403b29[_0x34ac35(0x1bd)],0x193)){const _0x2866bd=await _0x403b29[_0x34ac35(0x1e0)]()[_0x34ac35(0x210)](()=>({}));process[_0x34ac35(0x1ab)]['write']('\x0a'+(_0x2866bd[_0x34ac35(0x1be)]??_0x2562bb[_0x34ac35(0x212)])+'\x0a'),process[_0x34ac35(0x191)](0x1);}!_0x403b29['ok']&&(process[_0x34ac35(0x1ab)][_0x34ac35(0x1fb)](_0x34ac35(0x23d)+_0x403b29[_0x34ac35(0x1bd)]+')。\x0a'),process[_0x34ac35(0x191)](0x1));const _0x1fde83=await _0x403b29['json']();return(_0x1fde83[_0x34ac35(0x1be)]||!_0x1fde83[_0x34ac35(0x202)])&&(process[_0x34ac35(0x1ab)][_0x34ac35(0x1fb)](_0x34ac35(0x1f4)+_0x3a9f20+_0x34ac35(0x231)),process[_0x34ac35(0x191)](0x1)),{'knowledge_keyword':_0x1fde83['knowledge_keyword'],'greeting':_0x1fde83[_0x34ac35(0x1b9)]??'','name':_0x1fde83[_0x34ac35(0x223)]??'','requires_unix':_0x1fde83[_0x34ac35(0x22b)]??![]};}function readMemo(){const _0x2515db=_0x9fb714,_0x5c13a7={'egZQp':_0x2515db(0x1b1),'nMqnP':_0x2515db(0x216)},_0x43f278=(0x0,path_1[_0x2515db(0x237)])(process['cwd'](),_0x2515db(0x234),_0x5c13a7[_0x2515db(0x1cd)]);if(!(0x0,fs_1['existsSync'])(_0x43f278))return'';try{const _0x152186=(0x0,fs_1['readFileSync'])(_0x43f278,_0x5c13a7[_0x2515db(0x217)])[_0x2515db(0x1e6)]();return _0x152186?'\x0a\x0a---\x0a📝\x20プロジェクトメモ:\x0a'+_0x152186:'';}catch{return'';}}function buildGreeting(_0x45d12d,_0x1cb07f,_0x528a57){const _0x3ad63b=_0x9fb714,_0x7065f2={'DpXWw':function(_0x174f91,_0x7075e5){return _0x174f91+_0x7075e5;}},_0x29cb93=_0x7065f2[_0x3ad63b(0x1c9)]('>\x20'+_0x45d12d['toolName']+_0x3ad63b(0x220)+(''+_0x45d12d[_0x3ad63b(0x213)]+(_0x1cb07f[_0x3ad63b(0x223)]?_0x7065f2['DpXWw'](_0x3ad63b(0x1ed),_0x1cb07f[_0x3ad63b(0x223)]):'')+'\x0a'),_0x3ad63b(0x1fe))+_0x3ad63b(0x1db)+(_0x3ad63b(0x21d)+_0x45d12d[_0x3ad63b(0x213)]+'\x20MCP\x20の参考資料\x20\x22'+_0x1cb07f[_0x3ad63b(0x202)]+_0x3ad63b(0x1f5))+(_0x3ad63b(0x19d)+_0x1cb07f['knowledge_keyword']+_0x3ad63b(0x1c3)),_0x3e052c=_0x1cb07f[_0x3ad63b(0x1b9)]?'\x0a\x0a'+_0x1cb07f['greeting']:'';return _0x29cb93+_0x3e052c+_0x528a57;}function claudeSupportsStrictMcpConfig(){const _0x102ef5=_0x9fb714,_0x1cb045={'KDCyu':'--help','XXVPK':_0x102ef5(0x1a0)};try{const _0x1a1d42=(0x0,child_process_1[_0x102ef5(0x23b)])('claude',[_0x1cb045[_0x102ef5(0x1ff)]],{'encoding':'utf-8'});return(_0x1a1d42[_0x102ef5(0x1d5)]??'')[_0x102ef5(0x222)](_0x1cb045['XXVPK']);}catch{return![];}}async function fetchBundledMcps(_0x371f76,_0x4f0df6){const _0x565313=_0x9fb714,_0x1fce00={'emaXQ':function(_0x3b30af,_0x142107){return _0x3b30af(_0x142107);}};try{const _0x51850d=_0x371f76['portalUrl']+_0x565313(0x221)+_0x1fce00[_0x565313(0x224)](encodeURIComponent,_0x371f76[_0x565313(0x213)])+_0x565313(0x233),_0x33fd10=await fetch(_0x51850d,{'headers':{'Authorization':_0x565313(0x22d)+_0x4f0df6}});if(!_0x33fd10['ok'])return[];const _0x249e63=await _0x33fd10[_0x565313(0x1e0)]();return Array[_0x565313(0x1a7)](_0x249e63)?_0x249e63:[];}catch{return[];}}function mcpKey(_0x45a6da,_0x1ef278){const _0x3effcc=_0x9fb714,_0x19559b={'arvEk':'mcp'};let _0x38ca51=_0x45a6da[_0x3effcc(0x1ba)](/[^a-zA-Z0-9]+/g,'-')[_0x3effcc(0x1ba)](/^-+|-+$/g,'')['toLowerCase']()||_0x19559b[_0x3effcc(0x19a)],_0x176f13=_0x38ca51,_0x4aa68a=0x2;while(_0x1ef278['has'](_0x176f13))_0x176f13=_0x38ca51+'-'+_0x4aa68a++;return _0x1ef278['add'](_0x176f13),_0x176f13;}function _0x51d6(_0xa58976,_0x44179f){_0xa58976=_0xa58976-0x190;const _0xd1f8b3=_0xd1f8();let _0x51d6b8=_0xd1f8b3[_0xa58976];if(_0x51d6['qtSmFu']===undefined){var _0x52692b=function(_0x3f90e8){const _0x1b0c4d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5b70a6='',_0xee2ddb='';for(let _0x17509d=0x0,_0x5a1228,_0x4f1c7d,_0x25c699=0x0;_0x4f1c7d=_0x3f90e8['charAt'](_0x25c699++);~_0x4f1c7d&&(_0x5a1228=_0x17509d%0x4?_0x5a1228*0x40+_0x4f1c7d:_0x4f1c7d,_0x17509d++%0x4)?_0x5b70a6+=String['fromCharCode'](0xff&_0x5a1228>>(-0x2*_0x17509d&0x6)):0x0){_0x4f1c7d=_0x1b0c4d['indexOf'](_0x4f1c7d);}for(let _0x5483d0=0x0,_0x335c59=_0x5b70a6['length'];_0x5483d0<_0x335c59;_0x5483d0++){_0xee2ddb+='%'+('00'+_0x5b70a6['charCodeAt'](_0x5483d0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xee2ddb);};_0x51d6['UNZtLM']=_0x52692b,_0x51d6['yidntZ']={},_0x51d6['qtSmFu']=!![];}const _0x50aff7=_0xd1f8b3[0x0],_0x4c4f20=_0xa58976+_0x50aff7,_0x37fa73=_0x51d6['yidntZ'][_0x4c4f20];return!_0x37fa73?(_0x51d6b8=_0x51d6['UNZtLM'](_0x51d6b8),_0x51d6['yidntZ'][_0x4c4f20]=_0x51d6b8):_0x51d6b8=_0x37fa73,_0x51d6b8;}function launchClaude(_0x2bab36,_0x5dea67,_0x487425,_0x5548fa,_0x166538){const _0x2e8e70=_0x9fb714,_0x143b24={'JTXQS':'Claude\x20Code\x20CLI\x20(claude)\x20がインストールされているか確認してください。\x0a','ADhjN':_0x2e8e70(0x1fd),'Ezrag':function(_0x210a61,_0x1d6fe0,_0x72f520){return _0x210a61(_0x1d6fe0,_0x72f520);},'nxspM':_0x2e8e70(0x1ca),'cnnvF':'utf-8','yZZdz':_0x2e8e70(0x20d),'mPTOz':'--mcp-config','GrWPn':function(_0x499a62){return _0x499a62();},'brciz':_0x2e8e70(0x1a0),'GjaIs':_0x2e8e70(0x203),'tlqaJ':'exit'},_0x5c8e09=(0x0,path_1[_0x2e8e70(0x237)])(__dirname,_0x143b24[_0x2e8e70(0x1d4)]),_0x53dae5=_0x2bab36[_0x2e8e70(0x213)][_0x2e8e70(0x1b4)](),_0x2fff95={[_0x53dae5]:{'command':'node','args':[_0x5c8e09],'env':{'TOOL_NAME':_0x2bab36['toolName'],'TOOL_TOKEN':_0x5dea67,'PORTAL_URL':_0x2bab36['portalUrl'],'TOOL_KEYWORD':_0x487425['knowledge_keyword'],'TOOL_LANGUAGE':'ja'}}},_0x5ad4f9=(0x0,vault_1[_0x2e8e70(0x1b6)])(),_0x238a18=(0x0,path_1[_0x2e8e70(0x237)])((0x0,os_1['tmpdir'])(),_0x53dae5+_0x2e8e70(0x1d9)+process[_0x2e8e70(0x1da)]+'-'+Date[_0x2e8e70(0x20f)]()+_0x2e8e70(0x20a)),_0x1a52bb={'PORTAL_URL':_0x2bab36['portalUrl'],'TOOL_TOKEN':_0x5dea67,'FB_MCP_CONFIG':_0x238a18},_0x4985b7=new Set([_0x53dae5]),_0x337307=[],_0x501423=[];for(const _0x4f4f82 of _0x166538){if(!_0x4f4f82[_0x2e8e70(0x208)])continue;let _0x731f6;try{_0x731f6=(0x0,mcpPackages_1[_0x2e8e70(0x23a)])(_0x4f4f82['package_name']);}catch(_0x59f17b){_0x501423[_0x2e8e70(0x239)](_0x4f4f82[_0x2e8e70(0x208)]+':\x20'+_0x59f17b[_0x2e8e70(0x1d3)]);continue;}_0x337307[_0x2e8e70(0x239)](_0x731f6),_0x2fff95[_0x143b24['Ezrag'](mcpKey,_0x4f4f82['package_name'],_0x4985b7)]={'command':process['execPath'],'args':[_0x731f6[_0x2e8e70(0x23c)]],'env':{...(0x0,mcpPackages_1[_0x2e8e70(0x1ec)])(_0x731f6[_0x2e8e70(0x199)],_0x1a52bb),..._0x4f4f82['env']??{},...(0x0,mcpPackages_1['selectEnv'])(_0x731f6[_0x2e8e70(0x199)],_0x5ad4f9)}};}_0x501423['length']&&(process[_0x2e8e70(0x1ab)][_0x2e8e70(0x1fb)](_0x2e8e70(0x1a2)+_0x501423[_0x2e8e70(0x237)](_0x2e8e70(0x1ca))+'\x0a\x0a'),_0x5548fa+=_0x2e8e70(0x218)+_0x501423['join'](_0x143b24[_0x2e8e70(0x235)]));const _0x418e66={'mcpServers':_0x2fff95};(0x0,fs_1[_0x2e8e70(0x1cb)])(_0x238a18,JSON[_0x2e8e70(0x1f7)](_0x418e66),{'encoding':_0x143b24[_0x2e8e70(0x1e1)],'mode':0x180});const _0x1f58ed=[_0x5548fa,_0x143b24[_0x2e8e70(0x226)],_0x143b24[_0x2e8e70(0x1c1)],_0x238a18];if(_0x143b24[_0x2e8e70(0x1f1)](claudeSupportsStrictMcpConfig))_0x1f58ed[_0x2e8e70(0x239)](_0x143b24[_0x2e8e70(0x207)]);const _0x2815b8=(0x0,child_process_1[_0x2e8e70(0x20e)])(_0x143b24['GjaIs'],_0x1f58ed,{'stdio':'inherit'});_0x2815b8['on'](_0x2e8e70(0x1be),_0x325efe=>{const _0x374ba3=_0x2e8e70;process[_0x374ba3(0x1ab)][_0x374ba3(0x1fb)](_0x374ba3(0x1c7)+_0x325efe[_0x374ba3(0x1d3)]+'\x0a'),process[_0x374ba3(0x1ab)][_0x374ba3(0x1fb)](_0x143b24[_0x374ba3(0x1a6)]),process[_0x374ba3(0x191)](0x1);}),_0x2815b8['on'](_0x143b24[_0x2e8e70(0x1d8)],_0x5204a1=>process[_0x2e8e70(0x191)](_0x5204a1??0x0)),void(0x0,mcpPackages_1['refreshInBackground'])(_0x337307);}const PACKAGE_NAME=_0x9fb714(0x229);function isNewer(_0x2f03c5,_0x350e25){const _0x1df3e3=_0x9fb714,_0x1193f8={'BJEPa':function(_0x6072a9,_0x4de5bc){return _0x6072a9>_0x4de5bc;},'SWxqV':function(_0x359456,_0x26e58a){return _0x359456<_0x26e58a;}},_0x39b8cc=_0x2f03c5['split']('.')['map'](Number),_0x8364fa=_0x350e25[_0x1df3e3(0x21e)]('.')[_0x1df3e3(0x197)](Number);for(let _0x2abe8f=0x0;_0x2abe8f<0x3;_0x2abe8f++){if(_0x1193f8['BJEPa'](_0x39b8cc[_0x2abe8f]||0x0,_0x8364fa[_0x2abe8f]||0x0))return!![];if(_0x1193f8[_0x1df3e3(0x1eb)](_0x39b8cc[_0x2abe8f]||0x0,_0x8364fa[_0x2abe8f]||0x0))return![];}return![];}function _0xd1f8(){const _0x10365c=['44cc5l2/44kp44km44kl44gU44gV44cmqooaJEobRUs7MoobI+obQUobHoAwUEobP+obMEoaGG','r3jxug4','mtiZntiXmdjftMTbD3i','s1nqAMC','44k544oT44od44oi','iIdJGyZLIkNNLkJLJ6/OG73JGAFJGzNJGiik','CMvHzezPBgvtEw5J','C3rYAw5NAwz5','mJi0nJi4ndD0C1PlrhG','ndiYmJy3nerIEurxuq','BwLNCMf0zvrVB2XwyxvSDa','D3jPDgu','Ahr0Chm6lY9YzwDPC3rYEs5UCg1QCY5VCMCV','Aw5KzxGUANm','4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4PsacG','s0rdExu','BwLNCMf0zwq','l2fWAs9Hz2vUDhmVC2XVDc8','A25VD2XLzgDLx2TLExDVCMq','y2XHDwrL','6kQn6kI844gR5AsX5Pwx44gx44g+44gx44gF44cc44gt44gU44kI44kR44kM44oZ44oi44gR5QIP6zMq44gm44gc44kl44gl44gu56k66kQn44gp44gG44gv44ge44cccG','cUMhKEw6Q+ocKUwfQoodHoodVoodQ+wfSEMaMUobQ+obVUobQoocGEobVUobL+obN++8Ih4VlMz1BM55lwjVB3rOl3zHDwX077Yj44cccG','CxvLC3rPB24','yNjJAxO','CgfJA2fNzv9Uyw1L','l2fWAs9HDxrOl3jLzNjLC2G','lMPZB24','5A++5yEMoGO','yxbWBgLJyxrPB24VANnVBG','ls1Kyw5NzxjVDxnSEs1ZA2LWlxbLCM1PC3nPB25Z','C3bHD24','BM93','y2f0y2G','otyXmJn0tfjwvNC','qwL6qMy','Dg9VBe5HBwu','icaZlIbvyNvUDhuG44gU5lIT44gN5Ps544kb44gM44gt44gU44kZ44oE44oZ44oj44ks5A6F6kgm44gz44klcGO','x19LC01VzhvSzq','DxrMltG','BK1XBLa','cGRIGlSG5zcm5QkXtunq44gU5lIa6yoO44ks5RQw5ykz44gN44gn44gA44cb44gt44gU44k744od44k344oN44oZ44gN44gV5l2/44gi44g+44gB44kt44cc5B+f6kAb44gQ44kj44oM44o844k244o844gR5lYD44gi44gM44gp44gG44gv44geoGOTia','l2XHDgvZDa','mJa1mKjktwrTDa','l2fWAs9HDxrOl2XVz2LU','mJeYt2rpy1rr','44gt44gU44k744od44k344oN44oZ44gN44gVia','C3bSAxq','qgXHDgvZDa','ioobQ+AoPEE2MUobL+obVUobL+obNWOk','l2fWAs90B29SCY8','Aw5JBhvKzxm','BMfTzq','zw1Hwfe','44gt44gU44kO44o844k444kN44oZ44oi44gV5yAf6yoO44gNifvUAxGG55kW5Akd44gU5lUv57we44g/77YiDg11Eo+8IEocKUs9V+obHUobN+ocGEoaGqO','EvPAzhO','Cgf0Aa','6kAb44kj44gQ44ge5PA544ksihnLy3jLDcbYBsdJGAFMTOJJGzFJGABJGy/JGAdJGzxJGytJGiik','qgz1BM55lwjVB3rOl2fNzw50lwnVCMu','ntmZmJblqxHyq2K','CMvXDwLYzxnFDw5PEa','mJzZA2PhtMW','qMvHCMvYia','p3rVB2XFBMfTzt0','Bgf1BMnOzxiUy29UzMLNlMPZB24','ioobJowiQEEuQowpR+IdVEobP+obME+8IoEpVUwCQca','44gU44kO44o844k444kN44oZ44oi44gm6kAl44gK44gl44kk44g+44gB44kt44gN44gx44gF44cccG','BNbT','l21JChm','lMfP','BNHZCe0','Dg9tDhjPBMC','AM9PBG','C2f2zvrVA2vUCW','ChvZAa','ChjLCgfYzu1JCa','C3bHD25tEw5J','yMLUugf0Aa','44kO44o844k444kN44oZ44oi5Oof5AcX44gU5y+w5B6x44gR5AsX5Pwx44gx44g+44gx44gFicHivfrqia','77Yj44cc44oq44od44kV44kW44oP44kM44oZ44oj44gN5PU05PAW44gx44g+44gz77Yi5QYH5zUE6lw35yUv44gl44kj5y+n5PIG77Yj44cccG','zhLzs3G','44oT44kW44kK44oZ5AsX5PwxoIa','zxHPDa','CMvMCMvZAf90B2TLBG','Avntz2C','otq3mdLStNn0t0C','zgvMAw5LuhjVCgvYDhK','z3LszM8','BwfW','rNzyz1a','zgvJBgfYzwrfBNy','yxj2rwS','ruzUqMG','AND0','Bg9Hzf9RBM93BgvKz2uG44oe44o844oR44gNici','zxHW','wgnXq00','ls1ZDhjPy3qTBwnWlwnVBMzPzW','CxvLC3rPB25iAwrKzw4','cUwqJoAISu1duoobRUs4GoMdQoocKUA6LUwcMEobP+obJEobVUobM+ocK+obP+obL+obN++8IoobK+obRUocU+odG+ocT+odP+odS+obP+obR+s9V+obIoobVUobM+ocK++8ItOklsa','weHmshC','DMvYC2LVBG','6kQn6kI844kO44oP44o8','sLryuvm','AxnbCNjHEq','CgfJA2fNzvzLCNnPB24','uhnvzM0','Aw5ZDgfSBa','C3rKzxjY','mtbYDu55sKu','ntKWmdGXnNj0uKD1DW','vLv2BMy','B2PMqKG','icaXlIbqB3DLCLnOzwXSioocKUEUOEEqHUIaHEobQoobL+obPUMwI+obJsaID3nSic0TAw5ZDgfSBciG44ks5A6F6kgm44gx44gM5yAn6lw35yUvcG','BwvTBY5Tza','Cg9YDgfSvxjS','AwDUB3jL','Dg9mB3DLCKnHC2u','Dg9Rzw4','CMvHzfnLy3jLDhm','yMfZzty0DxjS','r2zIz0q','z3jLzxrPBMC','CMvWBgfJzq','mJrUyNPxsvO','v2nmAM4','C3rHDhvZ','zxjYB3i','cUkaUYdPH5hLUQVJGAVLKiZJGzJLKi3LIy3JGAFLGktJGA7PGzxJGyBNP5JLR4BJGyZJGylJGORJGB7JGzK6ia','qvbfuMq','Bvbut3O','CgfJA2fNzs5QC29U','iIdJGPlOQQ3JGB/OVRZJGPpJGAFJGyVJGONLP4VJGOhJGABJGy/JGAdJGzxJGytJGii','y2XLyxjuB2TLBNm','D09bBK4','D2LUmZi','y2XHDwrLioobRUI1T+wlLEobQ+wKSEAvL+obL+obVUobL+obNZOG','44oH44o844oR44kI44oj44oS44k5oIa','rhbyv3C','cI0G','D3jPDgvgAwXLu3LUyW','zxjIB0G','zwDAuxa','CgXHDgzVCM0','qNzNBxm','zgjhD00','qKfdBwC','vxLkyva','BwvZC2fNzq','qurOAK4','C3rKB3v0','44oT44kW44kK44oZ44gRm+wBNUwKSEAvL+obL+obVUobL+obN+oaGUE1GUs6HUobL+obVUobMEoaGGO','5l+D5A2y44gv44km44gF6kQn6kI85Oof5AcX44gm54sH5yQ544gN44gx44gF44cc5yAn44oT44kW44kK44oZ44gx44g+44gz44cccG','DgXXyuO','lw1JCc0','CgLK','44gv44gc5AEl44kb44g+44gx44kh44ggcGO','CMvHzfrVA2vUCW','cVcFLjqG5PAW44gx44ge44oq44o844k444oN44oZia','ELjgtNy','CgfJA2fNzu5HBwu','ANnVBG','y25UDKy','CMvMCMvZAa','zMLSDgvY','4Oc7ios7LUobRUocQoodVoocUoocP+odS+odIoobRYbxAw5KB3DZioobRUobVUobVUobLowiQEEuQoobHoobN+obOoobKEobVUobMEoaGGO','ioobQ+odREocSoocPoodS+obL+obPUobJ+obOoobLEobHooaGGO','DhjPBq','sLv3v3O','CNvUtgf1BMnOzxi','zvfwvLi','DgLTzw91Da','u1D4Cvy','C2vSzwn0rw52','ic8G','uhbzDM0','CgfYC2u'];_0xd1f8=function(){return _0x10365c;};return _0xd1f8();}async function checkForUpdate(_0x124220){const _0x45cc67=_0x9fb714,_0x57204e={'jrYSM':_0x45cc67(0x1c2),'BACmg':_0x45cc67(0x232),'TuKsO':_0x45cc67(0x1aa),'dyYKx':_0x45cc67(0x1c6)};try{const _0x4144b9=_0x124220[_0x45cc67(0x1df)]||PACKAGE_NAME,_0x25b17c=_0x124220[_0x45cc67(0x1a8)]||JSON[_0x45cc67(0x1ef)]((0x0,fs_1['readFileSync'])((0x0,path_1[_0x45cc67(0x237)])(__dirname,'..',_0x57204e['jrYSM']),_0x45cc67(0x216)))[_0x45cc67(0x1a4)],_0x359d99=await fetch(_0x45cc67(0x1fc)+_0x4144b9+_0x45cc67(0x219),{'signal':AbortSignal[_0x45cc67(0x1ea)](0xbb8)});if(!_0x359d99['ok'])return;const _0x1cb8be=await _0x359d99[_0x45cc67(0x1e0)]();if(_0x1cb8be[_0x45cc67(0x1a4)]&&isNewer(_0x1cb8be[_0x45cc67(0x1a4)],_0x25b17c)){process[_0x45cc67(0x1d5)][_0x45cc67(0x1fb)](_0x45cc67(0x1dd)+_0x1cb8be[_0x45cc67(0x1a4)]+_0x45cc67(0x230)+_0x25b17c+_0x45cc67(0x23e));const _0x169117=(0x0,child_process_1[_0x45cc67(0x20e)])(_0x57204e[_0x45cc67(0x1d1)],[_0x57204e['TuKsO'],'-g',_0x4144b9+_0x45cc67(0x21f)],{'detached':!![],'stdio':_0x45cc67(0x1b3),'shell':process[_0x45cc67(0x1ce)]===_0x57204e[_0x45cc67(0x23f)]});_0x169117['unref']();}}catch{}}async function runLauncher(_0x1536eb,_0x149cc9){const _0x12b85e=_0x9fb714,_0x166d5d={'gyRfo':function(_0x231b8c,_0x39e05d){return _0x231b8c(_0x39e05d);},'ojfBH':function(_0x59d68c,_0x4f4248){return _0x59d68c(_0x4f4248);},'KSPjg':function(_0x14019e,_0x773c7c,_0x1bedeb){return _0x14019e(_0x773c7c,_0x1bedeb);},'APERd':function(_0x1b6f83,_0x5c27c8){return _0x1b6f83 instanceof _0x5c27c8;}},_0xd0f883=_0x166d5d[_0x12b85e(0x196)](loadConfig,_0x149cc9);await _0x166d5d[_0x12b85e(0x1af)](checkForUpdate,_0xd0f883);try{await _0x166d5d[_0x12b85e(0x1f3)](runWithVault,_0xd0f883,_0x1536eb);}catch(_0x57b41e){if(!_0x166d5d[_0x12b85e(0x1c0)](_0x57b41e,vault_1['VaultError']))throw _0x57b41e;process[_0x12b85e(0x1ab)][_0x12b85e(0x1fb)]('\x0a'+_0x57b41e[_0x12b85e(0x1d3)]+'\x0a'),process[_0x12b85e(0x191)](0x1);}}async function runWithVault(_0x3f0c41,_0x30cd4a){const _0x2ed888=_0x9fb714,_0x26dd28={'Bvgms':_0x2ed888(0x205),'UyJaP':function(_0xd78923,_0x3b865b){return _0xd78923+_0x3b865b;},'iSSgg':function(_0x1cdbe0,_0x2226de,_0x1ee7c5,_0x47c1d0){return _0x1cdbe0(_0x2226de,_0x1ee7c5,_0x47c1d0);},'KnApi':'1|4|0|2|3','XHLHw':function(_0x3a37b6,_0x33e8d5){return _0x3a37b6 instanceof _0x33e8d5;},'wOAnN':function(_0x3cd582,_0x1818ad){return _0x3cd582(_0x1818ad);},'XcqCM':function(_0x37035c,_0x2dbb4a,_0x37d078,_0x5616a1){return _0x37035c(_0x2dbb4a,_0x37d078,_0x5616a1);},'eQVVR':_0x2ed888(0x204),'GcMmm':_0x2ed888(0x1d7),'VUvnf':_0x2ed888(0x1c6),'PsUfm':function(_0x57365a,_0x5b35ee){return _0x57365a+_0x5b35ee;},'WcLjn':function(_0x7fd7c9,_0x5a7c7b,_0x226d49,_0xf60722,_0x381bdc,_0x1ff7fc){return _0x7fd7c9(_0x5a7c7b,_0x226d49,_0xf60722,_0x381bdc,_0x1ff7fc);}};try{const _0x11a25e=(0x0,vault_1[_0x2ed888(0x1fa)])(_0x3f0c41[_0x2ed888(0x213)]);if(_0x11a25e[_0x2ed888(0x200)])process[_0x2ed888(0x1d5)][_0x2ed888(0x1fb)](_0x26dd28[_0x2ed888(0x1cf)]);}catch(_0x5e3411){process[_0x2ed888(0x1ab)]['write']('\x0a※\x20旧い金庫を全ツール共通の金庫へ移せませんでした(旧い金庫は残しています):\x20'+_0x5e3411['message']+'\x0a');}const _0x3736a1=[...new Set((0x0,vault_1['listSecretNames'])()[_0x2ed888(0x1e3)](_0x573765=>_0x573765[_0x2ed888(0x222)]('@'))['map'](_0x4b722b=>_0x4b722b[_0x2ed888(0x21e)]('@')[0x0]))];_0x3736a1['length']&&process[_0x2ed888(0x1d5)][_0x2ed888(0x1fb)](_0x26dd28[_0x2ed888(0x1d2)](_0x2ed888(0x1bf)+_0x3736a1[_0x2ed888(0x237)](',\x20')+_0x2ed888(0x1f0),_0x2ed888(0x228)));let _0x90e36a=await ensureJwt(_0x3f0c41),_0xb4d79a;try{_0xb4d79a=await _0x26dd28[_0x2ed888(0x193)](resolveSlot,_0x3f0c41,_0x90e36a,_0x30cd4a);}catch(_0x5c3fe1){const _0x5ad842=_0x26dd28['KnApi'][_0x2ed888(0x21e)]('|');let _0x43fc8c=0x0;while(!![]){switch(_0x5ad842[_0x43fc8c++]){case'0':(0x0,vault_1[_0x2ed888(0x1c4)])(_0x3f0c41['toolName']);continue;case'1':if(!_0x26dd28[_0x2ed888(0x1a3)](_0x5c3fe1,AuthError))throw _0x5c3fe1;continue;case'2':_0x90e36a=await _0x26dd28[_0x2ed888(0x1c5)](ensureJwt,_0x3f0c41);continue;case'3':try{_0xb4d79a=await _0x26dd28[_0x2ed888(0x19f)](resolveSlot,_0x3f0c41,_0x90e36a,_0x30cd4a);}catch(_0x26ebc2){_0x26ebc2 instanceof AuthError&&(process['stderr'][_0x2ed888(0x1fb)](_0x26dd28[_0x2ed888(0x1e9)]),process[_0x2ed888(0x191)](0x1));throw _0x26ebc2;}continue;case'4':process[_0x2ed888(0x1ab)][_0x2ed888(0x1fb)](_0x26dd28['GcMmm']);continue;}break;}}_0xb4d79a['requires_unix']&&process['platform']===_0x26dd28[_0x2ed888(0x1ae)]&&(process['stderr'][_0x2ed888(0x1fb)](_0x26dd28[_0x2ed888(0x1a9)](_0x26dd28[_0x2ed888(0x1d2)](_0x26dd28[_0x2ed888(0x1a9)]('\x0a「'+_0xb4d79a[_0x2ed888(0x223)]+'」は\x20Windows\x20のままでは起動できません。\x0a\x0a'+_0x2ed888(0x225),'WSL2(Ubuntu)の中から起動する必要があります。\x0a\x0a'),_0x2ed888(0x20b)),_0x2ed888(0x1b0))+'\x20\x202.\x20スタートメニューから\x20Ubuntu\x20を開く\x0a'+_0x2ed888(0x214)+_0x2ed888(0x1e4)),process['exit'](0x1));const _0x54e20d=await fetchBundledMcps(_0x3f0c41,_0x90e36a),_0x8ce31b=readMemo(),_0x436387=buildGreeting(_0x3f0c41,_0xb4d79a,_0x8ce31b);_0x26dd28[_0x2ed888(0x1bc)](launchClaude,_0x3f0c41,_0x90e36a,_0xb4d79a,_0x436387,_0x54e20d);}
|
package/dist/mcpPackages.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const _0x31d6fb=_0x223f;(function(_0x4f852c,_0x46d83b){const _0x4315f3=_0x223f,_0x34e05f=_0x4f852c();while(!![]){try{const _0x5e555b=parseInt(_0x4315f3(0x13a))/0x1*(parseInt(_0x4315f3(0xe6))/0x2)+parseInt(_0x4315f3(0x117))/0x3+parseInt(_0x4315f3(0x11d))/0x4*(parseInt(_0x4315f3(0x138))/0x5)+-parseInt(_0x4315f3(0xfa))/0x6*(parseInt(_0x4315f3(0x148))/0x7)+parseInt(_0x4315f3(0x10a))/0x8+-parseInt(_0x4315f3(0xff))/0x9*(parseInt(_0x4315f3(0xc3))/0xa)+-parseInt(_0x4315f3(0xc7))/0xb;if(_0x5e555b===_0x46d83b)break;else _0x34e05f['push'](_0x34e05f['shift']());}catch(_0x2144e2){_0x34e05f['push'](_0x34e05f['shift']());}}}(_0x14d7,0xee977));Object[_0x31d6fb(0xe8)](exports,_0x31d6fb(0x105),{'value':!![]}),exports['PRUNE_IDLE_MS']=exports[_0x31d6fb(0x140)]=void 0x0,exports[_0x31d6fb(0xc9)]=isVersion,exports[_0x31d6fb(0xf7)]=compareVersions,exports[_0x31d6fb(0x123)]=newestFirst,exports[_0x31d6fb(0x14a)]=versionsToPrune,exports['declaredEnv']=declaredEnv,exports[_0x31d6fb(0xe7)]=selectEnv,exports[_0x31d6fb(0xe4)]=resolveBin,exports[_0x31d6fb(0xd3)]=packagesRoot,exports[_0x31d6fb(0x128)]=listInstalled,exports[_0x31d6fb(0x125)]=latestVersion,exports['installSync']=installSync,exports[_0x31d6fb(0x102)]=prepareMcp,exports[_0x31d6fb(0xd8)]=updateLogPath,exports[_0x31d6fb(0x121)]=refreshInBackground;const fs_1=require('fs'),os_1=require('os'),path_1=require(_0x31d6fb(0x118)),child_process_1=require(_0x31d6fb(0x13b)),VERSION_RE=/^\d+\.\d+\.\d+$/;exports[_0x31d6fb(0x140)]=0x2,exports[_0x31d6fb(0xcf)]=0x7*0x18*0x36ee80;function _0x14d7(){const _0x4fd843=['C3bSAxq','vMjkrhG','v2jysg4','Aw5JBhvKzxm','s1znCu0','zw50CMLLCW','zxHPC3rZu3LUyW','DMvYC2LVBG','yujyDxK','BwnWlxbHy2THz2vZ','q0zOBfO','C29Tzq','nZe1mZeWtejzAu5I','BwfW','mZq1odvArxzzA2S','y2HPBgrFChjVy2vZCW','BgvUz3rO','qNrcEM4','DgvZDa','ls1UBY1HDwrPDa','s0vfuf9wrvjtsu9ouW','BMjKrNG','rxHXAvy','BNbTlwnSAs5QCW','qK5rAKe','rujlrxG','zxjYB3i','AuH2wMq','mJiYnZi2n1jgrvvQrq','DxbKyxrLlMXVzW','DMvYC2LVBNnuB1bYDw5L','tKrusxm','ioobRUocPoodS+ocUEodIoodVoodQ+obQ+wKSEAvL+obL+obVUobL+obNZOG','C2XPy2u','CMvHzgrPCLn5BMm','sLPrvwq','ELbozKK','yxbWzw5KrMLSzvn5BMm','BMfTzq','BM93','C3rHCNrZv2L0Aa','DMLLDW','mtiWrwvLvuzU','77Yj44cctM9Kzs5QCYdJGPlLHAZLVi/JGQtJG7pJGRNJG4JJG7ZJG6NJG7ZJGAFLHAxJGOZNM7tJGzFJGABJGy/JGAdJGzxJGyq','ChjL','zgLYBMfTzq','odKZndeWmwrwt0XYDG','CgfYC2u','AxnwzxjZAw9U','zxHPDa','v3bTwxO','yMLU','wNvLA00','CMvUyw1Lu3LUyW','ufjvtKvFsurmrv9nuW','BLnqv3u','lMXHC3qTDxnLza','shDksxa','CgfJA2fNzxnsB290','C29YDa','C3rHDfn5BMm','CgLK','tKnfweq','DxbKyxrLtg9Nugf0Aa','A0Dpt1e','s3bXBMu','D2fPDa','C3bHD25tEw5J','C3bHD24','BwTKAxjtEw5J','ls1UBY1WywnRywDLlwXVy2S','C3rKzxjY','zNvUBNLcB290Aa','ugnIEK4','EgrvC3a','CMvZB2X2zujPBG','BM9Kzv9TB2r1BgvZ','mJrnB3vuuvK','C2vSzwn0rw52','zgvMAw5LuhjVCgvYDhK','lNrTCc0','AgfZ','rujvu1K','C3rHDhvZia','t3LPqNe','Aw5ZDgfSBa','C3rYAw5N','Dg9ju09tDhjPBMC','CgTN','BfPrvw8','BNbT','vw5jtw8','y21K','Cg9W','y29TCgfYzvzLCNnPB25Z','C3rKB3v0','rez5CNi','nNDStu5ZyG','CMvHzezPBgvtEw5J','uwLWywW','DhjPBq','rvrwExa','mtaWnJi1nhvrC1f4tq','CgfJA2fNzs5QC29U','CM1tEw5J','ChjLCgfYzu1JCa','AxnbCNjHEq','rufdq0vt','x19LC01VzhvSzq','ioobRUocPoodS+ocUEodIoodVoodQ+obQ+wKSEAvL+obL+obVUobL+obN++8Ihn0yxr1CYa','Ew5Asu0','77Yi5QYH5zUE6lw35yUv44gl44kj5l2/55sO77Yj','yu1WBw4','mtaWodm1mdrTDg1gquu','B2jQzwn0','ugLRqLq','y29Kzq','AvjSELq','q251A2e','ls1SB2DSzxzLBd1LCNjVCG','DxrMltG','5zcm5QkXtunqia','Aw5ZDgfSBgvKia','rvbfuK0','q3DeDwq','BxrPBwvnCW','ndaZndaXm0zLy0LNvq','Cgf0Aa','zMLSDgvY','ugPjBKC','yxnNv20','C2Diyvi','mtjeAKn4s20','D3jPDgvgAwXLu3LUyW','ioobRUACGoAwSoEjIoocKIbUCg0G44gl44kj5y+w5B6x44gN44gn44g+44gB44ktoIa','rvvUuee','CMvMCMvZAeLUqMfJA2DYB3vUza','rxLLCwS','BMv3zxn0rMLYC3q','veTlD0e','Bgf0zxn0vMvYC2LVBG','zw52','D2LUmZi','BgLZDeLUC3rHBgXLza','AM9PBG','ls1WCMvMAxG','lMz1BM55lwjVB3rO'];_0x14d7=function(){return _0x4fd843;};return _0x14d7();}function isVersion(_0x414492){const _0x5933f4=_0x31d6fb;return VERSION_RE[_0x5933f4(0x13e)](_0x414492);}function compareVersions(_0x1c6892,_0x267925){const _0x1945d7=_0x31d6fb,_0x5d4b45={'aBXuy':function(_0x37eb05,_0x5ad11c){return _0x37eb05<_0x5ad11c;},'nbdFx':function(_0x2e08c5,_0x4d465d){return _0x2e08c5!==_0x4d465d;},'EUnPA':function(_0x85c39b,_0x329e16){return _0x85c39b-_0x329e16;}},_0xc69efd=_0x1c6892['split']('.')[_0x1945d7(0x139)](Number),_0x2adeb5=_0x267925[_0x1945d7(0x12c)]('.')['map'](Number);for(let _0x3e72e7=0x0;_0x5d4b45[_0x1945d7(0x134)](_0x3e72e7,0x3);_0x3e72e7++){if(_0x5d4b45[_0x1945d7(0x141)](_0xc69efd[_0x3e72e7],_0x2adeb5[_0x3e72e7]))return _0x5d4b45[_0x1945d7(0x120)](_0xc69efd[_0x3e72e7],_0x2adeb5[_0x3e72e7]);}return 0x0;}function newestFirst(_0x2ca968){const _0x568a6a=_0x31d6fb;return _0x2ca968['filter'](isVersion)[_0x568a6a(0xd4)]((_0x286dab,_0xfcda1f)=>compareVersions(_0xfcda1f,_0x286dab));}function versionsToPrune(_0x15ac92,_0x5542cb,_0x31207f,_0x4e7816=exports[_0x31d6fb(0x140)],_0x4afb81=exports[_0x31d6fb(0xcf)]){const _0x1d63c8=_0x31d6fb,_0x43e044={'ynZIM':function(_0x590317,_0x2dbd2f){return _0x590317(_0x2dbd2f);}};return _0x43e044[_0x1d63c8(0x107)](newestFirst,_0x15ac92)[_0x1d63c8(0x14d)](_0x4e7816)[_0x1d63c8(0x119)](_0x2373c6=>_0x5542cb[_0x2373c6]!==undefined&&_0x31207f-_0x5542cb[_0x2373c6]>=_0x4afb81);}function declaredEnv(_0x3cc1b9){const _0x2b0146=_0x31d6fb,_0x4dbe79=_0x3cc1b9?.[_0x2b0146(0xe1)];if(!_0x4dbe79||!Array[_0x2b0146(0x103)](_0x4dbe79[_0x2b0146(0x126)]))return[];return _0x4dbe79['env'][_0x2b0146(0x119)](_0x141372=>typeof _0x141372===_0x2b0146(0xef)&&_0x141372['length']>0x0);}function selectEnv(_0x38e35a,_0x267f25){const _0x1cf15f=_0x31d6fb,_0x304111={};for(const [_0x28f2fb,_0x838dcb]of Object[_0x1cf15f(0x131)](_0x267f25)){const _0x11eae9=_0x38e35a[_0x1cf15f(0x137)](_0x442eac=>_0x442eac['endsWith']('*')?_0x28f2fb[_0x1cf15f(0x154)](_0x442eac['slice'](0x0,-0x1)):_0x28f2fb===_0x442eac);if(_0x11eae9)_0x304111[_0x28f2fb]=_0x838dcb;}return _0x304111;}function resolveBin(_0xdd11b){const _0x559329=_0x31d6fb,_0x24a56d={'lacIU':function(_0x308699,_0x57d3a6){return _0x308699===_0x57d3a6;}},_0x21e51b=_0xdd11b[_0x559329(0xcc)];if(typeof _0x21e51b===_0x559329(0xef))return _0x21e51b;if(_0x21e51b&&typeof _0x21e51b===_0x559329(0x10b)){const _0x2e108=Object[_0x559329(0x131)](_0x21e51b);if(_0x24a56d['lacIU'](_0x2e108[_0x559329(0x13c)],0x1))return _0x2e108[0x0][0x1];const _0x43bb16=_0xdd11b[_0x559329(0x152)][_0x559329(0x12c)]('/')[_0x559329(0xf6)](),_0x5ca5ac=_0x2e108['find'](([_0x4334f5])=>_0x4334f5===_0x43bb16);if(_0x5ca5ac)return _0x5ca5ac[0x1];}throw new Error(_0xdd11b[_0x559329(0x152)]+':\x20package.json\x20の\x20bin\x20から起動ファイルを決められません');}function packagesRoot(){const _0x47a1e1=_0x31d6fb;return process.env.FB_MCP_PACKAGES_DIR||(0x0,path_1[_0x47a1e1(0x129)])((0x0,os_1['homedir'])(),_0x47a1e1(0x12b),_0x47a1e1(0x135));}function packageDir(_0xe2a48e){const _0x1bea13=_0x31d6fb,_0x1db8bd={'DFyrr':function(_0x4bf860){return _0x4bf860();}};return(0x0,path_1[_0x1bea13(0x129)])(_0x1db8bd[_0x1bea13(0xf9)](packagesRoot),encodeURIComponent(_0xe2a48e));}function versionDir(_0x589fc3,_0x5486f6){return(0x0,path_1['join'])(packageDir(_0x589fc3),_0x5486f6);}function installedPkgJsonPath(_0x17ca7f,_0x2d84de){const _0x165a15=_0x31d6fb,_0x16d77e={'BNQjA':_0x165a15(0xe5),'RVfYh':_0x165a15(0x100)};return(0x0,path_1['join'])(versionDir(_0x17ca7f,_0x2d84de),_0x16d77e[_0x165a15(0x144)],..._0x17ca7f['split']('/'),_0x16d77e['RVfYh']);}function listInstalled(_0x5d61c6){const _0x14496c=_0x31d6fb,_0x41eadd={'ollFY':function(_0x393f49,_0x41ac2d){return _0x393f49(_0x41ac2d);}},_0x2de2dd=_0x41eadd['ollFY'](packageDir,_0x5d61c6);if(!(0x0,fs_1['existsSync'])(_0x2de2dd))return[];return(0x0,fs_1['readdirSync'])(_0x2de2dd)[_0x14496c(0x119)](_0x14025a=>isVersion(_0x14025a)&&(0x0,fs_1[_0x14496c(0x132)])(installedPkgJsonPath(_0x5d61c6,_0x14025a)));}function npmCommand(){const _0x79f717=_0x31d6fb,_0x3f7fd9={'EBKEx':function(_0x56dd93,_0x3312e8){return _0x56dd93!==_0x3312e8;},'iHvZd':_0x79f717(0xf3),'PjInG':'bin'};if(_0x3f7fd9[_0x79f717(0x145)](process['platform'],_0x79f717(0x127)))return{'cmd':'npm','pre':[]};const _0x247ae9=(0x0,path_1[_0x79f717(0x129)])((0x0,path_1[_0x79f717(0xc6)])(process['execPath']),_0x79f717(0xe5),_0x3f7fd9[_0x79f717(0x147)],_0x3f7fd9[_0x79f717(0x11a)],_0x79f717(0x143));if(!(0x0,fs_1[_0x79f717(0x132)])(_0x247ae9))throw new Error('npm\x20が見つかりません('+_0x247ae9+_0x79f717(0xc4));return{'cmd':process['execPath'],'pre':[_0x247ae9]};}const NPM_VIEW_TIMEOUT_MS=0x7530;function latestVersion(_0x7923e2){const _0xe07f6b=_0x31d6fb,_0x592ace={'lSCuo':function(_0x1ba38b){return _0x1ba38b();},'XFmoD':_0xe07f6b(0x111),'ETVyp':function(_0x3a9cc8,_0x706ecc){return _0x3a9cc8(_0x706ecc);}},_0x1676bb=_0x592ace['lSCuo'](npmCommand),_0x43356d=(0x0,child_process_1['spawnSync'])(_0x1676bb[_0xe07f6b(0xf5)],[..._0x1676bb[_0xe07f6b(0xc5)],_0xe07f6b(0x155),_0x7923e2,_0xe07f6b(0x133)],{'encoding':_0x592ace['XFmoD'],'timeout':NPM_VIEW_TIMEOUT_MS}),_0x30c710=(_0x43356d[_0xe07f6b(0xf8)]??'')[_0xe07f6b(0xfd)]();if(_0x43356d['status']!==0x0||!_0x592ace[_0xe07f6b(0xfe)](isVersion,_0x30c710))throw new Error(_0x7923e2+_0xe07f6b(0x11f)+((_0x43356d['stderr']??'')[_0xe07f6b(0xfd)]()||'status\x20'+_0x43356d['status']));return _0x30c710;}function npmInstallArgs(_0x3e80e1,_0x26a979,_0x37817e){const _0x2e8622=_0x31d6fb,_0xbe66af={'GhNYJ':_0x2e8622(0xee),'bFUEs':'--no-save','qMWbY':_0x2e8622(0xdf),'Kpqne':'--omit=dev','Cnuka':'--no-fund','JZQUd':_0x2e8622(0x110)};return[_0xbe66af['GhNYJ'],_0x2e8622(0x12a),_0x37817e,_0xbe66af['bFUEs'],_0xbe66af['qMWbY'],_0xbe66af[_0x2e8622(0xda)],_0x2e8622(0x13f),_0xbe66af[_0x2e8622(0x10f)],_0xbe66af[_0x2e8622(0x14f)],_0x3e80e1+'@'+_0x26a979];}function sleepMs(_0x1faed6){const _0x2d4597=_0x31d6fb;Atomics[_0x2d4597(0xdb)](new Int32Array(new SharedArrayBuffer(0x4)),0x0,0x0,_0x1faed6);}const TRANSIENT_FS=new Set([_0x31d6fb(0x114),_0x31d6fb(0xeb),_0x31d6fb(0x104)]);function renameWithRetry(_0x54be37,_0xe2567){const _0x38ed1f=_0x31d6fb,_0x592a3b={'CFhlZ':function(_0x2294da,_0x3ff0e6){return _0x2294da>=_0x3ff0e6;}};for(let _0x2b858d=0x0;;_0x2b858d++){try{(0x0,fs_1[_0x38ed1f(0xce)])(_0x54be37,_0xe2567);return;}catch(_0x480465){const _0x1d0d65=_0x480465[_0x38ed1f(0x10d)]??'';if(_0x592a3b[_0x38ed1f(0x136)](_0x2b858d,0x5)||!TRANSIENT_FS[_0x38ed1f(0xea)](_0x1d0d65)||(0x0,fs_1[_0x38ed1f(0x132)])(_0xe2567))throw _0x480465;sleepMs(0xc8*0x2**_0x2b858d);}}}function commitInstall(_0x3232eb,_0x75fe02,_0x1cf398){const _0x1313b3=_0x31d6fb,_0x2aa4d7={'ktlkF':function(_0x2038ed,_0x206846,_0x57890a){return _0x2038ed(_0x206846,_0x57890a);}};try{renameWithRetry(_0x1cf398,_0x2aa4d7['ktlkF'](versionDir,_0x3232eb,_0x75fe02));}catch(_0x1cf4a2){(0x0,fs_1[_0x1313b3(0x101)])(_0x1cf398,{'recursive':!![],'force':!![]});if(!(0x0,fs_1[_0x1313b3(0x132)])(installedPkgJsonPath(_0x3232eb,_0x75fe02)))throw _0x1cf4a2;}}function tmpDirFor(_0x38c36b,_0x104e11){const _0x591b58=_0x31d6fb,_0x24677f={'WbXHn':function(_0x3ef0af,_0x5efd9b){return _0x3ef0af(_0x5efd9b);}};return(0x0,fs_1[_0x591b58(0xde)])(_0x24677f[_0x591b58(0x12e)](packageDir,_0x38c36b),{'recursive':!![]}),(0x0,path_1[_0x591b58(0x129)])(packageDir(_0x38c36b),_0x104e11+'.tmp-'+process[_0x591b58(0xd6)]+'-'+Date[_0x591b58(0x153)]());}function installSync(_0x526e16,_0x241233){const _0x266a40=_0x31d6fb,_0x4c80a1={'WLQHq':function(_0x1cc574,_0x2652e8,_0x2de86d,_0x3b0258){return _0x1cc574(_0x2652e8,_0x2de86d,_0x3b0258);},'PikBT':function(_0x59ffae,_0xe75b62){return _0x59ffae!==_0xe75b62;}},_0x42b662=npmCommand(),_0x22afac=tmpDirFor(_0x526e16,_0x241233),_0x22b63b=(0x0,child_process_1[_0x266a40(0xdc)])(_0x42b662['cmd'],[..._0x42b662['pre'],..._0x4c80a1['WLQHq'](npmInstallArgs,_0x526e16,_0x241233,_0x22afac)],{'encoding':_0x266a40(0x111)});if(_0x4c80a1[_0x266a40(0x10c)](_0x22b63b['status'],0x0)){(0x0,fs_1[_0x266a40(0x101)])(_0x22afac,{'recursive':!![],'force':!![]});throw new Error(_0x526e16+'@'+_0x241233+_0x266a40(0x14c)+((_0x22b63b[_0x266a40(0xe0)]??'')[_0x266a40(0xfd)]()||_0x266a40(0xec)+_0x22b63b['status']));}commitInstall(_0x526e16,_0x241233,_0x22afac);}function installAsync(_0x16c256,_0x3ba1bc){const _0x5f2b8f=_0x31d6fb,_0xf3b0dc={'AKLuN':function(_0x7b06fa,_0x1264c6){return _0x7b06fa!==_0x1264c6;},'asgWm':function(_0x5f003e,_0x17f333,_0x5ea3b3,_0x2afe6b){return _0x5f003e(_0x17f333,_0x5ea3b3,_0x2afe6b);},'iTqZA':function(_0x200fa6){return _0x200fa6();},'sgHaR':function(_0x456536,_0x439822){return _0x456536(_0x439822);},'KVMqM':function(_0x514b64,_0x2122b1,_0x5b41a0){return _0x514b64(_0x2122b1,_0x5b41a0);},'kGOOQ':'ignore','xdUsp':_0x5f2b8f(0x146),'zPNfI':_0x5f2b8f(0xca)};return new Promise((_0x5348d9,_0xefa329)=>{const _0x3384cb=_0x5f2b8f,_0x3c48e5=npmCommand(),_0x3220be=_0xf3b0dc[_0x3384cb(0x130)](tmpDirFor,_0x16c256,_0x3ba1bc),_0x7dc206=(0x0,child_process_1[_0x3384cb(0xdd)])(_0x3c48e5['cmd'],[..._0x3c48e5[_0x3384cb(0xc5)],...npmInstallArgs(_0x16c256,_0x3ba1bc,_0x3220be)],{'stdio':_0xf3b0dc[_0x3384cb(0xd9)]});_0x7dc206['on'](_0xf3b0dc[_0x3384cb(0xe3)],_0xefa329),_0x7dc206['on'](_0xf3b0dc[_0x3384cb(0x150)],_0x2c1d5a=>{const _0x269f39=_0x3384cb;if(_0xf3b0dc['AKLuN'](_0x2c1d5a,0x0)){(0x0,fs_1[_0x269f39(0x101)])(_0x3220be,{'recursive':!![],'force':!![]}),_0xefa329(new Error(_0x16c256+'@'+_0x3ba1bc+_0x269f39(0x106)+_0x2c1d5a+')'));return;}try{_0xf3b0dc[_0x269f39(0x11b)](commitInstall,_0x16c256,_0x3ba1bc,_0x3220be),_0xf3b0dc['iTqZA'](_0x5348d9);}catch(_0x14c1bc){_0xf3b0dc[_0x269f39(0x11c)](_0xefa329,_0x14c1bc);}});});}const LAST_USED=_0x31d6fb(0xd1);function markUsed(_0x29cd93,_0x40c4c1){const _0x2ab92b=_0x31d6fb,_0x271b01={'WpmYz':function(_0x4c981e,_0x5023ca){return _0x4c981e(_0x5023ca);}};(0x0,fs_1[_0x2ab92b(0x11e)])((0x0,path_1['join'])(versionDir(_0x29cd93,_0x40c4c1),LAST_USED),_0x271b01[_0x2ab92b(0xcb)](String,Date[_0x2ab92b(0x153)]()));}function readLastUsed(_0x7bcbee,_0x1b3571){const _0x95b6c3=_0x31d6fb,_0x1b7376={'CwDud':function(_0x3f92c1,_0x56faef){return _0x3f92c1(_0x56faef);},'TKKwA':_0x95b6c3(0x111)},_0x4c9f91={};for(const _0x595703 of _0x1b3571){const _0x56e14d=(0x0,path_1[_0x95b6c3(0x129)])(versionDir(_0x7bcbee,_0x595703),LAST_USED);if((0x0,fs_1[_0x95b6c3(0x132)])(_0x56e14d))_0x4c9f91[_0x595703]=_0x1b7376[_0x95b6c3(0x115)](Number,(0x0,fs_1[_0x95b6c3(0xfb)])(_0x56e14d,_0x1b7376[_0x95b6c3(0x124)]))||0x0;}return _0x4c9f91;}function prune(_0x3332da){const _0x4d317b=_0x31d6fb,_0x10dcfd={'omUTT':function(_0x5bdb05,_0x3b163a,_0x2b6541,_0x286ef8){return _0x5bdb05(_0x3b163a,_0x2b6541,_0x286ef8);},'ExqiV':function(_0x314428,_0x8e23ef,_0x273987){return _0x314428(_0x8e23ef,_0x273987);},'Qipal':function(_0xc16f4d,_0x3b3fca){return _0xc16f4d(_0x3b3fca);},'lZQUo':_0x4d317b(0xe9),'xCkXT':function(_0x499341,_0xe2964f){return _0x499341>_0xe2964f;},'aMpmn':function(_0x2e26a2,_0x405cbe){return _0x2e26a2-_0x405cbe;}},_0x510fac=listInstalled(_0x3332da);for(const _0x4e89cd of _0x10dcfd['omUTT'](versionsToPrune,_0x510fac,readLastUsed(_0x3332da,_0x510fac),Date[_0x4d317b(0x153)]())){(0x0,fs_1['rmSync'])(_0x10dcfd[_0x4d317b(0x142)](versionDir,_0x3332da,_0x4e89cd),{'recursive':!![],'force':!![]});}const _0x620327=_0x10dcfd[_0x4d317b(0xfc)](packageDir,_0x3332da);for(const _0x1c5b07 of(0x0,fs_1[_0x4d317b(0x14e)])(_0x620327)){if(!_0x1c5b07[_0x4d317b(0x12f)](_0x10dcfd[_0x4d317b(0xf2)]))continue;const _0x925c5c=(0x0,path_1[_0x4d317b(0x129)])(_0x620327,_0x1c5b07);if(_0x10dcfd['xCkXT'](_0x10dcfd[_0x4d317b(0x109)](Date[_0x4d317b(0x153)](),(0x0,fs_1[_0x4d317b(0xd5)])(_0x925c5c)[_0x4d317b(0x116)]),0x36ee80))(0x0,fs_1[_0x4d317b(0x101)])(_0x925c5c,{'recursive':!![],'force':!![]});}}function _0x223f(_0x473ced,_0xa4a4f6){_0x473ced=_0x473ced-0xc3;const _0x14d7c0=_0x14d7();let _0x223fe2=_0x14d7c0[_0x473ced];if(_0x223f['rtOKnK']===undefined){var _0x3f0cfe=function(_0x1e021b){const _0x1a2020='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5e9e0a='',_0x303dca='';for(let _0x4225a3=0x0,_0x46ee13,_0x3b27df,_0x398a97=0x0;_0x3b27df=_0x1e021b['charAt'](_0x398a97++);~_0x3b27df&&(_0x46ee13=_0x4225a3%0x4?_0x46ee13*0x40+_0x3b27df:_0x3b27df,_0x4225a3++%0x4)?_0x5e9e0a+=String['fromCharCode'](0xff&_0x46ee13>>(-0x2*_0x4225a3&0x6)):0x0){_0x3b27df=_0x1a2020['indexOf'](_0x3b27df);}for(let _0x5cf506=0x0,_0x13b275=_0x5e9e0a['length'];_0x5cf506<_0x13b275;_0x5cf506++){_0x303dca+='%'+('00'+_0x5e9e0a['charCodeAt'](_0x5cf506)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x303dca);};_0x223f['FeYxAM']=_0x3f0cfe,_0x223f['YkKVOD']={},_0x223f['rtOKnK']=!![];}const _0xe71ee4=_0x14d7c0[0x0],_0x17a69d=_0x473ced+_0xe71ee4,_0x3f6a7a=_0x223f['YkKVOD'][_0x17a69d];return!_0x3f6a7a?(_0x223fe2=_0x223f['FeYxAM'](_0x223fe2),_0x223f['YkKVOD'][_0x17a69d]=_0x223fe2):_0x223fe2=_0x3f6a7a,_0x223fe2;}function prepareMcp(_0xb35c03){const _0x3eeaa0=_0x31d6fb,_0x292683={'ahbvT':function(_0x4d59e7,_0x1ec669){return _0x4d59e7(_0x1ec669);},'NDTIs':function(_0x102640,_0x282018){return _0x102640(_0x282018);},'VbJDx':function(_0x5d1793,_0x25d0c3){return _0x5d1793(_0x25d0c3);},'OyiBq':function(_0x60fb25,_0x32bd7f,_0x50b2ca){return _0x60fb25(_0x32bd7f,_0x50b2ca);},'iRlzT':function(_0x15475e,_0xf767a,_0x263980){return _0x15475e(_0xf767a,_0x263980);},'HwJIp':_0x3eeaa0(0x111),'nSPWu':function(_0x59152a,_0x4179c2,_0x333e0f){return _0x59152a(_0x4179c2,_0x333e0f);},'NCEXD':'node_modules'};let _0x5ac700=_0x292683['ahbvT'](newestFirst,_0x292683[_0x3eeaa0(0x14b)](listInstalled,_0xb35c03))[0x0];!_0x5ac700&&(_0x5ac700=_0x292683[_0x3eeaa0(0x12d)](latestVersion,_0xb35c03),process[_0x3eeaa0(0xf8)]['write'](_0x3eeaa0(0x112)+_0xb35c03+'@'+_0x5ac700+'\x20を準備しています(初回のみ)...\x0a'),installSync(_0xb35c03,_0x5ac700));_0x292683[_0x3eeaa0(0xed)](markUsed,_0xb35c03,_0x5ac700);const _0x17d03b=JSON[_0x3eeaa0(0xc8)]((0x0,fs_1[_0x3eeaa0(0xfb)])(_0x292683[_0x3eeaa0(0x10e)](installedPkgJsonPath,_0xb35c03,_0x5ac700),_0x292683[_0x3eeaa0(0xd2)])),_0x459989=(0x0,path_1[_0x3eeaa0(0x129)])(_0x292683[_0x3eeaa0(0xd0)](versionDir,_0xb35c03,_0x5ac700),_0x292683[_0x3eeaa0(0xd7)],..._0xb35c03[_0x3eeaa0(0x12c)]('/'),resolveBin(_0x17d03b));return{'pkg':_0xb35c03,'version':_0x5ac700,'binPath':_0x459989,'declaredEnv':declaredEnv(_0x17d03b)};}function updateLogPath(){const _0x158260=_0x31d6fb;return(0x0,path_1[_0x158260(0x129)])(packagesRoot(),_0x158260(0x149));}function log(_0x5dfbb2){const _0x46866c=_0x31d6fb,_0x554499={'UnIMo':function(_0x3677f2){return _0x3677f2();},'ZuekM':function(_0x34bf55){return _0x34bf55();}};(0x0,fs_1[_0x46866c(0xde)])(_0x554499[_0x46866c(0xf4)](packagesRoot),{'recursive':!![]}),(0x0,fs_1[_0x46866c(0x151)])(_0x554499[_0x46866c(0xcd)](updateLogPath),new Date()[_0x46866c(0xf0)]()+'\x20'+_0x5dfbb2+'\x0a');}async function refreshInBackground(_0x45ac65){const _0x3e77c2=_0x31d6fb,_0x229a79={'PcbzN':function(_0x5bad66,_0x2beb86){return _0x5bad66(_0x2beb86);},'BtBzn':function(_0x706e55,_0x4dc993,_0x2acb92){return _0x706e55(_0x4dc993,_0x2acb92);},'Eyeqk':function(_0x18ad27,_0x3d82e3){return _0x18ad27(_0x3d82e3);}};for(const _0x50a830 of _0x45ac65){try{const _0x49d281=latestVersion(_0x50a830[_0x3e77c2(0xf1)]);!_0x229a79[_0x3e77c2(0xe2)](listInstalled,_0x50a830[_0x3e77c2(0xf1)])['includes'](_0x49d281)&&(await _0x229a79[_0x3e77c2(0x13d)](installAsync,_0x50a830[_0x3e77c2(0xf1)],_0x49d281),log(_0x3e77c2(0x113)+_0x50a830['pkg']+'@'+_0x49d281+_0x3e77c2(0x108))),_0x229a79[_0x3e77c2(0x122)](prune,_0x50a830[_0x3e77c2(0xf1)]);}catch(_0x58d231){log('FAILED\x20'+_0x50a830[_0x3e77c2(0xf1)]+':\x20'+_0x58d231['message']);}}}
|
|
1
|
+
'use strict';const _0x3a275f=_0xf610;(function(_0x3d4892,_0x233ca3){const _0x327789=_0xf610,_0x497ae0=_0x3d4892();while(!![]){try{const _0x3cc11e=parseInt(_0x327789(0x20f))/0x1+-parseInt(_0x327789(0x1ad))/0x2*(parseInt(_0x327789(0x1c5))/0x3)+parseInt(_0x327789(0x1ea))/0x4*(parseInt(_0x327789(0x1e5))/0x5)+-parseInt(_0x327789(0x1d5))/0x6*(-parseInt(_0x327789(0x1cc))/0x7)+parseInt(_0x327789(0x231))/0x8*(parseInt(_0x327789(0x1e4))/0x9)+parseInt(_0x327789(0x233))/0xa*(parseInt(_0x327789(0x220))/0xb)+-parseInt(_0x327789(0x1d8))/0xc;if(_0x3cc11e===_0x233ca3)break;else _0x497ae0['push'](_0x497ae0['shift']());}catch(_0x1a1254){_0x497ae0['push'](_0x497ae0['shift']());}}}(_0x3558,0xe4320));Object[_0x3a275f(0x206)](exports,_0x3a275f(0x217),{'value':!![]}),exports[_0x3a275f(0x1d1)]=exports['KEEP_VERSIONS']=void 0x0,exports[_0x3a275f(0x1ba)]=isVersion,exports[_0x3a275f(0x1cd)]=compareVersions,exports['newestFirst']=newestFirst,exports[_0x3a275f(0x22f)]=versionsToPrune,exports['declaredEnv']=declaredEnv,exports['selectEnv']=selectEnv,exports['resolveBin']=resolveBin,exports[_0x3a275f(0x22d)]=packagesRoot,exports[_0x3a275f(0x1e2)]=listInstalled,exports[_0x3a275f(0x1b6)]=latestVersion,exports[_0x3a275f(0x1fc)]=installSync,exports['prepareMcp']=prepareMcp,exports[_0x3a275f(0x204)]=updateLogPath,exports['refreshInBackground']=refreshInBackground;function _0xf610(_0x18b0b2,_0x5abacb){_0x18b0b2=_0x18b0b2-0x1ad;const _0x3558ef=_0x3558();let _0xf61050=_0x3558ef[_0x18b0b2];if(_0xf610['Tnkcdw']===undefined){var _0x495458=function(_0x42a748){const _0x91e52='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xb9f13b='',_0x2b2e92='';for(let _0x284b89=0x0,_0x2261da,_0xd70ddd,_0x596f38=0x0;_0xd70ddd=_0x42a748['charAt'](_0x596f38++);~_0xd70ddd&&(_0x2261da=_0x284b89%0x4?_0x2261da*0x40+_0xd70ddd:_0xd70ddd,_0x284b89++%0x4)?_0xb9f13b+=String['fromCharCode'](0xff&_0x2261da>>(-0x2*_0x284b89&0x6)):0x0){_0xd70ddd=_0x91e52['indexOf'](_0xd70ddd);}for(let _0x38eecc=0x0,_0x494bc2=_0xb9f13b['length'];_0x38eecc<_0x494bc2;_0x38eecc++){_0x2b2e92+='%'+('00'+_0xb9f13b['charCodeAt'](_0x38eecc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b2e92);};_0xf610['bnXNpQ']=_0x495458,_0xf610['xDWffa']={},_0xf610['Tnkcdw']=!![];}const _0x353d24=_0x3558ef[0x0],_0x57d74c=_0x18b0b2+_0x353d24,_0x408953=_0xf610['xDWffa'][_0x57d74c];return!_0x408953?(_0xf61050=_0xf610['bnXNpQ'](_0xf61050),_0xf610['xDWffa'][_0x57d74c]=_0xf61050):_0xf61050=_0x408953,_0xf61050;}const fs_1=require('fs'),os_1=require('os'),path_1=require('path'),child_process_1=require(_0x3a275f(0x21f)),VERSION_RE=/^\d+\.\d+\.\d+$/;exports[_0x3a275f(0x1e3)]=0x2,exports[_0x3a275f(0x1d1)]=0x7*0x18*0x36ee80;function isVersion(_0x9f3624){const _0x52ced4=_0x3a275f;return VERSION_RE[_0x52ced4(0x200)](_0x9f3624);}function compareVersions(_0x3c0c73,_0x1042fc){const _0x490dbe=_0x3a275f,_0x525b3a={'vXIbm':function(_0x141bf9,_0x5be39f){return _0x141bf9!==_0x5be39f;},'QlYDY':function(_0x29d04f,_0x277f79){return _0x29d04f-_0x277f79;}},_0x586a3c=_0x3c0c73[_0x490dbe(0x1e7)]('.')[_0x490dbe(0x1d3)](Number),_0x4abb5d=_0x1042fc[_0x490dbe(0x1e7)]('.')['map'](Number);for(let _0x593e3f=0x0;_0x593e3f<0x3;_0x593e3f++){if(_0x525b3a[_0x490dbe(0x20a)](_0x586a3c[_0x593e3f],_0x4abb5d[_0x593e3f]))return _0x525b3a[_0x490dbe(0x1be)](_0x586a3c[_0x593e3f],_0x4abb5d[_0x593e3f]);}return 0x0;}function newestFirst(_0x2c01dd){const _0x6a7c85=_0x3a275f;return _0x2c01dd[_0x6a7c85(0x1fd)](isVersion)[_0x6a7c85(0x223)]((_0x725707,_0x2c627a)=>compareVersions(_0x2c627a,_0x725707));}function versionsToPrune(_0x104473,_0x18c723,_0x139f63,_0x424cea=exports['KEEP_VERSIONS'],_0x27e836=exports[_0x3a275f(0x1d1)]){const _0x4da13e=_0x3a275f;return newestFirst(_0x104473)[_0x4da13e(0x1bf)](_0x424cea)[_0x4da13e(0x1fd)](_0xc2da6f=>_0x18c723[_0xc2da6f]!==undefined&&_0x139f63-_0x18c723[_0xc2da6f]>=_0x27e836);}function declaredEnv(_0x1ab7a3){const _0x4b6d86=_0x3a275f,_0x2f8798=_0x1ab7a3?.[_0x4b6d86(0x1f9)];if(!_0x2f8798||!Array['isArray'](_0x2f8798['env']))return[];return _0x2f8798[_0x4b6d86(0x226)][_0x4b6d86(0x1fd)](_0x577468=>typeof _0x577468===_0x4b6d86(0x21a)&&_0x577468['length']>0x0);}function selectEnv(_0x357d7c,_0x188153){const _0x34f40a=_0x3a275f,_0x215eb7={};for(const [_0x384750,_0x24eef0]of Object[_0x34f40a(0x1fe)](_0x188153)){const _0x593d04=_0x357d7c['some'](_0x4364cd=>_0x4364cd[_0x34f40a(0x235)]('*')?_0x384750[_0x34f40a(0x216)](_0x4364cd[_0x34f40a(0x1bf)](0x0,-0x1)):_0x384750===_0x4364cd);if(_0x593d04)_0x215eb7[_0x384750]=_0x24eef0;}return _0x215eb7;}function resolveBin(_0x514a78){const _0x7d72b8=_0x3a275f,_0x157303={'ocWTC':function(_0x112064,_0x2e791e){return _0x112064===_0x2e791e;},'nOwNc':_0x7d72b8(0x21a),'ZbeeL':_0x7d72b8(0x225)},_0x26bada=_0x514a78[_0x7d72b8(0x203)];if(_0x157303[_0x7d72b8(0x1f3)](typeof _0x26bada,_0x157303[_0x7d72b8(0x22b)]))return _0x26bada;if(_0x26bada&&typeof _0x26bada===_0x157303[_0x7d72b8(0x1d9)]){const _0xa3edd3=Object['entries'](_0x26bada);if(_0xa3edd3[_0x7d72b8(0x1fa)]===0x1)return _0xa3edd3[0x0][0x1];const _0x1fd7fa=_0x514a78[_0x7d72b8(0x1d2)][_0x7d72b8(0x1e7)]('/')[_0x7d72b8(0x1dc)](),_0x2382ec=_0xa3edd3[_0x7d72b8(0x227)](([_0x27e958])=>_0x27e958===_0x1fd7fa);if(_0x2382ec)return _0x2382ec[0x1];}throw new Error(_0x514a78[_0x7d72b8(0x1d2)]+_0x7d72b8(0x1fb));}function packagesRoot(){const _0x20e477=_0x3a275f;return process.env.FB_MCP_PACKAGES_DIR||(0x0,path_1[_0x20e477(0x215)])((0x0,os_1[_0x20e477(0x1c4)])(),_0x20e477(0x1d0),_0x20e477(0x202));}function packageDir(_0x8004ec){const _0x1bfb33=_0x3a275f,_0x570830={'EXlxv':function(_0x3e45dd){return _0x3e45dd();}};return(0x0,path_1[_0x1bfb33(0x215)])(_0x570830[_0x1bfb33(0x1f6)](packagesRoot),encodeURIComponent(_0x8004ec));}function versionDir(_0xfe472b,_0xbba4d2){const _0x1863e8=_0x3a275f,_0x3e86ee={'ZPHbB':function(_0x2168c1,_0x97b76){return _0x2168c1(_0x97b76);}};return(0x0,path_1[_0x1863e8(0x215)])(_0x3e86ee[_0x1863e8(0x1e0)](packageDir,_0xfe472b),_0xbba4d2);}function installedPkgJsonPath(_0x40e1a,_0x2dbdb4){const _0x31e72e=_0x3a275f,_0x4276ef={'NsstR':'node_modules','bUDrg':_0x31e72e(0x1ee)};return(0x0,path_1[_0x31e72e(0x215)])(versionDir(_0x40e1a,_0x2dbdb4),_0x4276ef[_0x31e72e(0x211)],..._0x40e1a[_0x31e72e(0x1e7)]('/'),_0x4276ef[_0x31e72e(0x1dd)]);}function listInstalled(_0x534b9e){const _0x2b125b=_0x3a275f,_0x383697={'UtHMM':function(_0x54c55f,_0x2affa9){return _0x54c55f(_0x2affa9);}},_0x2d62f2=_0x383697['UtHMM'](packageDir,_0x534b9e);if(!(0x0,fs_1[_0x2b125b(0x1f4)])(_0x2d62f2))return[];return(0x0,fs_1[_0x2b125b(0x20c)])(_0x2d62f2)[_0x2b125b(0x1fd)](_0x33e60b=>isVersion(_0x33e60b)&&(0x0,fs_1[_0x2b125b(0x1f4)])(installedPkgJsonPath(_0x534b9e,_0x33e60b)));}function npmCommand(){const _0x369c7d=_0x3a275f,_0x604434={'kuoUy':function(_0x62275a,_0x1b2b9c){return _0x62275a!==_0x1b2b9c;},'POPFG':_0x369c7d(0x21d)};if(_0x604434[_0x369c7d(0x212)](process[_0x369c7d(0x1f1)],_0x604434['POPFG']))return{'cmd':_0x369c7d(0x209),'pre':[]};const _0x549a49=(0x0,path_1[_0x369c7d(0x215)])((0x0,path_1['dirname'])(process[_0x369c7d(0x22e)]),_0x369c7d(0x21b),_0x369c7d(0x209),'bin',_0x369c7d(0x1c1));if(!(0x0,fs_1[_0x369c7d(0x1f4)])(_0x549a49))throw new Error(_0x369c7d(0x1d6)+_0x549a49+_0x369c7d(0x232));return{'cmd':process[_0x369c7d(0x22e)],'pre':[_0x549a49]};}const NPM_VIEW_TIMEOUT_MS=0x7530;function latestVersion(_0x1aa3ed){const _0x59386f=_0x3a275f,_0x2e13b8={'bAQvi':_0x59386f(0x1e1),'WeZsY':function(_0x2e5140,_0x5560eb){return _0x2e5140(_0x5560eb);}},_0x4477b6=npmCommand(),_0x49a01e=(0x0,child_process_1[_0x59386f(0x1c2)])(_0x4477b6['cmd'],[..._0x4477b6[_0x59386f(0x1eb)],_0x2e13b8['bAQvi'],_0x1aa3ed,_0x59386f(0x20e)],{'encoding':_0x59386f(0x1e9),'timeout':NPM_VIEW_TIMEOUT_MS}),_0x2a3463=(_0x49a01e[_0x59386f(0x1ff)]??'')[_0x59386f(0x1ce)]();if(_0x49a01e[_0x59386f(0x1b4)]!==0x0||!_0x2e13b8[_0x59386f(0x221)](isVersion,_0x2a3463))throw new Error(_0x1aa3ed+'\x20の最新版を\x20npm\x20から取得できません:\x20'+((_0x49a01e['stderr']??'')[_0x59386f(0x1ce)]()||_0x59386f(0x1c7)+_0x49a01e[_0x59386f(0x1b4)]));return _0x2a3463;}function npmInstallArgs(_0x139f44,_0x64ddab,_0x13035b){const _0x5bf019=_0x3a275f,_0x321af2={'KkxQv':_0x5bf019(0x1da),'BYqQe':'--no-package-lock','FLvpp':_0x5bf019(0x1bc)};return[_0x5bf019(0x1e6),_0x5bf019(0x1b2),_0x13035b,_0x321af2[_0x5bf019(0x1cf)],_0x321af2[_0x5bf019(0x224)],'--omit=dev',_0x5bf019(0x1d7),_0x321af2[_0x5bf019(0x236)],_0x5bf019(0x1c3),_0x139f44+'@'+_0x64ddab];}function sleepMs(_0xb72526){const _0x5edac4=_0x3a275f;Atomics[_0x5edac4(0x201)](new Int32Array(new SharedArrayBuffer(0x4)),0x0,0x0,_0xb72526);}const TRANSIENT_FS=new Set(['EPERM',_0x3a275f(0x229),_0x3a275f(0x219)]);function renameWithRetry(_0x20be95,_0x51d77d){const _0x3e3646=_0x3a275f;for(let _0x17d582=0x0;;_0x17d582++){try{(0x0,fs_1[_0x3e3646(0x214)])(_0x20be95,_0x51d77d);return;}catch(_0xc3d93a){const _0x5ea27c=_0xc3d93a[_0x3e3646(0x1b9)]??'';if(_0x17d582>=0x5||!TRANSIENT_FS[_0x3e3646(0x1c6)](_0x5ea27c)||(0x0,fs_1[_0x3e3646(0x1f4)])(_0x51d77d))throw _0xc3d93a;sleepMs(0xc8*0x2**_0x17d582);}}}function commitInstall(_0x4416d2,_0x4348d3,_0x51e65a){const _0xe46827=_0x3a275f,_0x4a9c30={'DWnJQ':function(_0xfb2e75,_0x146a28,_0x30401b){return _0xfb2e75(_0x146a28,_0x30401b);},'qYPLu':function(_0x540f1d,_0x5618ba,_0x5778a9){return _0x540f1d(_0x5618ba,_0x5778a9);}};try{renameWithRetry(_0x51e65a,_0x4a9c30[_0xe46827(0x21c)](versionDir,_0x4416d2,_0x4348d3));}catch(_0x29d498){(0x0,fs_1[_0xe46827(0x207)])(_0x51e65a,{'recursive':!![],'force':!![]});if(!(0x0,fs_1[_0xe46827(0x1f4)])(_0x4a9c30['qYPLu'](installedPkgJsonPath,_0x4416d2,_0x4348d3)))throw _0x29d498;}}function tmpDirFor(_0x13adaf,_0x3a6258){const _0x1b63b0=_0x3a275f,_0x2dc6be={'NsThG':function(_0x28ce6c,_0xee347d){return _0x28ce6c(_0xee347d);}};return(0x0,fs_1[_0x1b63b0(0x22c)])(packageDir(_0x13adaf),{'recursive':!![]}),(0x0,path_1[_0x1b63b0(0x215)])(_0x2dc6be[_0x1b63b0(0x1df)](packageDir,_0x13adaf),_0x3a6258+_0x1b63b0(0x1b7)+process[_0x1b63b0(0x1db)]+'-'+Date[_0x1b63b0(0x237)]());}function installSync(_0x1a8887,_0x26fbed){const _0x53847f=_0x3a275f,_0x593cce={'YvwIk':_0x53847f(0x1e9),'QrtCt':function(_0x50a4b9,_0x2449fc){return _0x50a4b9!==_0x2449fc;},'pOwhm':function(_0x1bf219,_0x1ac949,_0x8b5d09,_0x5b1abb){return _0x1bf219(_0x1ac949,_0x8b5d09,_0x5b1abb);}},_0x351043=npmCommand(),_0x5c61ff=tmpDirFor(_0x1a8887,_0x26fbed),_0x22affb=(0x0,child_process_1[_0x53847f(0x1c2)])(_0x351043['cmd'],[..._0x351043['pre'],...npmInstallArgs(_0x1a8887,_0x26fbed,_0x5c61ff)],{'encoding':_0x593cce[_0x53847f(0x1bb)]});if(_0x593cce[_0x53847f(0x1b3)](_0x22affb[_0x53847f(0x1b4)],0x0)){(0x0,fs_1[_0x53847f(0x207)])(_0x5c61ff,{'recursive':!![],'force':!![]});throw new Error(_0x1a8887+'@'+_0x26fbed+_0x53847f(0x1b1)+((_0x22affb[_0x53847f(0x1f5)]??'')[_0x53847f(0x1ce)]()||_0x53847f(0x1c7)+_0x22affb[_0x53847f(0x1b4)]));}_0x593cce['pOwhm'](commitInstall,_0x1a8887,_0x26fbed,_0x5c61ff);}function installAsync(_0x1cfd94,_0x5768cf){const _0x2d2ab2=_0x3a275f,_0x3bbb08={'CVYPM':function(_0xcb38fb,_0x142c96){return _0xcb38fb(_0x142c96);},'mUpsw':function(_0x1858f5){return _0x1858f5();},'kABug':_0x2d2ab2(0x208)};return new Promise((_0x259739,_0x21daea)=>{const _0x5244f7=_0x2d2ab2,_0x55a1c6=_0x3bbb08['mUpsw'](npmCommand),_0x17d185=tmpDirFor(_0x1cfd94,_0x5768cf),_0x3ef4dd=(0x0,child_process_1['spawn'])(_0x55a1c6[_0x5244f7(0x222)],[..._0x55a1c6[_0x5244f7(0x1eb)],...npmInstallArgs(_0x1cfd94,_0x5768cf,_0x17d185)],{'stdio':_0x5244f7(0x1cb)});_0x3ef4dd['on'](_0x5244f7(0x22a),_0x21daea),_0x3ef4dd['on'](_0x3bbb08[_0x5244f7(0x1b0)],_0x1d90b4=>{const _0x26b0a1=_0x5244f7;if(_0x1d90b4!==0x0){(0x0,fs_1['rmSync'])(_0x17d185,{'recursive':!![],'force':!![]}),_0x3bbb08[_0x26b0a1(0x1f7)](_0x21daea,new Error(_0x1cfd94+'@'+_0x5768cf+_0x26b0a1(0x20d)+_0x1d90b4+')'));return;}try{commitInstall(_0x1cfd94,_0x5768cf,_0x17d185),_0x259739();}catch(_0x2d4a35){_0x21daea(_0x2d4a35);}});});}function _0x3558(){const _0x2ed9a6=['AgfZ','C3rHDhvZia','C3rHDfn5BMm','rMzosMS','5zcm5QkXtunqia','AwDUB3jL','mtrdCfv5ze0','y29TCgfYzvzLCNnPB25Z','DhjPBq','s2T4uxy','lMz1BM55lwjVB3rO','ufjvtKvFsurmrv9nuW','BMfTzq','BwfW','wKjbqNm','mZqYnJy2nKf4yuXjwa','BNbTioobJoIMI+obPoobI+ocIUobVUobM+ocK++8Ia','ls1UBY1HDwrPDa','mJGWmJC5ntzwr2PdBgG','wMjLzuW','ls1UBY1ZyxzL','CgLK','Cg9W','yLveCMC','Aw5ZDgfSBgvKia','tNnuAeC','wLbiyKi','DMLLDW','BgLZDeLUC3rHBgXLza','s0vfuf9wrvjtsu9ouW','mtqXm3HutLbfsG','mZvZuxPWD1u','Aw5ZDgfSBa','C3bSAxq','yxbWzw5KrMLSzvn5BMm','DxrMltG','nJC5ntK2qNzUDxvf','ChjL','Dg9ju09tDhjPBMC','Aw5JBhvKzxm','CgfJA2fNzs5QC29U','CgfYC2u','77Yi5QYH5zUE6lw35yUv44gl44kj5l2/55sO77Yj','CgXHDgzVCM0','zej4vwO','B2nxvem','zxHPC3rZu3LUyW','C3rKzxjY','rvHSEhy','q1zzue0','BwvZC2fNzq','zNvUBNLcB290Aa','BgvUz3rO','oIbWywnRywDLlMPZB24G44gUigjPBIdJGyVJGONOTBFLI5xJG5xJGQhJGQtJG6VJGPlMSBRJGOhJGONJGOZJGB7JGzVJGPm','Aw5ZDgfSBfn5BMm','zMLSDgvY','zw50CMLLCW','C3rKB3v0','DgvZDa','D2fPDa','BwnWlxbHy2THz2vZ','yMLU','DxbKyxrLtg9Nugf0Aa','s1j1C3G','zgvMAw5LuhjVCgvYDhK','CM1tEw5J','zxHPDa','BNbT','DLHjyM0','rKfjteveia','CMvHzgrPCLn5BMm','ioobRUocPoodS+ocUEodIoodVoodQ+obQ+wKSEAvL+obL+obVUobL+obN++8Ihn0yxr1CYa','DMvYC2LVBG','otqWmZeXBLvNr1f5','BwL1BNG','tNnZDfi','A3vVvxK','s25st0q','CMvUyw1Lu3LUyW','AM9PBG','C3rHCNrZv2L0Aa','x19LC01VzhvSzq','ChPhz2K','rufdq0vt','C3rYAw5N','BM9Kzv9TB2r1BgvZ','rfDUsLe','D2LUmZi','D3jPDgvgAwXLu3LUyW','y2HPBgrFChjVy2vZCW','nZa4mJLdsg5Urhy','v2vAC1K','y21K','C29YDa','qLLXuwu','B2jQzwn0','zw52','zMLUza','DxbKyxrLlMXVzW','rujvu1K','zxjYB3i','BK93tMm','BwTKAxjtEw5J','CgfJA2fNzxnsB290','zxHLy1bHDgG','DMvYC2LVBNnuB1bYDw5L','BxrPBwvnCW','nJKWnhfxs05Wvq','77Yj44cctM9Kzs5QCYdJGPlLHAZLVi/JGQtJG7pJGRNJG4JJG7ZJG6NJG7ZJGAFLHAxJGOZNM7tJGzFJGABJGy/JGAdJGzxJGyq','mJaWmeTYvgrgtW','CMvHzezPBgvtEw5J','zw5KC1DPDgG','rKX2Cha','BM93','zej0yLe','mJHnvwPQv0u','AvPXqMO','q0X0veC','A0fcDwC','ioobRUocPoodS+ocUEodIoodVoodQ+obQ+wKSEAvL+obL+obVUobL+obNZOG','ls1WCMvMAxG','uxj0q3q','C3rHDhvZ','tfj3Ewe','Bgf0zxn0vMvYC2LVBG','lNrTCc0','ioocKUA6LUwcMEobL+obPUobHoobVUobME+8IowiNEwBNUobRUobV++8Is4UlGO','y29Kzq','AxnwzxjZAw9U','wxz3swS','ls1UBY1MDw5K','lMXHC3qTDxnLza','uwXzrfK','C2XPy2u','CgTN','BNbTlwnSAs5QCW','C3bHD25tEw5J','ls1SB2DSzxzLBd1LCNjVCG','Ag9TzwrPCG','mZa1mZa3v0vyqwTM'];_0x3558=function(){return _0x2ed9a6;};return _0x3558();}const LAST_USED=_0x3a275f(0x1bd);function markUsed(_0x540e12,_0x2d0087){const _0x9a12c4=_0x3a275f,_0x34152b={'miunx':function(_0x44edae,_0x775104){return _0x44edae(_0x775104);}};(0x0,fs_1[_0x9a12c4(0x21e)])((0x0,path_1[_0x9a12c4(0x215)])(versionDir(_0x540e12,_0x2d0087),LAST_USED),_0x34152b[_0x9a12c4(0x210)](String,Date[_0x9a12c4(0x237)]()));}function readLastUsed(_0x5d05b1,_0x76f1fe){const _0x276128=_0x3a275f,_0x3a10d1={'KnROD':function(_0xd8b2f,_0x2f710d,_0x17fdaa){return _0xd8b2f(_0x2f710d,_0x17fdaa);},'ZBABs':function(_0x590f23,_0x8f94bb){return _0x590f23(_0x8f94bb);}},_0x58df98={};for(const _0x2b3d34 of _0x76f1fe){const _0x2c3003=(0x0,path_1[_0x276128(0x215)])(_0x3a10d1[_0x276128(0x213)](versionDir,_0x5d05b1,_0x2b3d34),LAST_USED);if((0x0,fs_1['existsSync'])(_0x2c3003))_0x58df98[_0x2b3d34]=_0x3a10d1[_0x276128(0x1d4)](Number,(0x0,fs_1[_0x276128(0x234)])(_0x2c3003,_0x276128(0x1e9)))||0x0;}return _0x58df98;}function prune(_0x146ff9){const _0x3640ce=_0x3a275f,_0x593715={'pzGgi':function(_0x1d5ff5,_0x1254d3,_0x11ce47,_0x1e9450){return _0x1d5ff5(_0x1254d3,_0x11ce47,_0x1e9450);},'CLtTG':function(_0x24b1c7,_0x31d797,_0x2de959){return _0x24b1c7(_0x31d797,_0x2de959);}},_0x3ce391=listInstalled(_0x146ff9);for(const _0x1357f1 of _0x593715[_0x3640ce(0x218)](versionsToPrune,_0x3ce391,_0x593715[_0x3640ce(0x1af)](readLastUsed,_0x146ff9,_0x3ce391),Date['now']())){(0x0,fs_1[_0x3640ce(0x207)])(versionDir(_0x146ff9,_0x1357f1),{'recursive':!![],'force':!![]});}const _0x56128b=packageDir(_0x146ff9);for(const _0xe527b6 of(0x0,fs_1[_0x3640ce(0x20c)])(_0x56128b)){if(!_0xe527b6[_0x3640ce(0x1ed)](_0x3640ce(0x1b7)))continue;const _0x5be891=(0x0,path_1['join'])(_0x56128b,_0xe527b6);if(Date[_0x3640ce(0x237)]()-(0x0,fs_1[_0x3640ce(0x1c8)])(_0x5be891)[_0x3640ce(0x230)]>0x36ee80)(0x0,fs_1['rmSync'])(_0x5be891,{'recursive':!![],'force':!![]});}}function prepareMcp(_0x18e9bc){const _0x47730d=_0x3a275f,_0x581530={'UHrRT':function(_0x297d3c,_0x20309e){return _0x297d3c(_0x20309e);},'dBxUj':_0x47730d(0x1e9),'LRwya':function(_0x160567,_0x29f0d){return _0x160567(_0x29f0d);}};let _0x4323c0=newestFirst(_0x581530['UHrRT'](listInstalled,_0x18e9bc))[0x0];!_0x4323c0&&(_0x4323c0=latestVersion(_0x18e9bc),process[_0x47730d(0x1ff)]['write'](_0x47730d(0x1ca)+_0x18e9bc+'@'+_0x4323c0+_0x47730d(0x1b8)),installSync(_0x18e9bc,_0x4323c0));markUsed(_0x18e9bc,_0x4323c0);const _0x382d48=JSON[_0x47730d(0x1ef)]((0x0,fs_1[_0x47730d(0x234)])(installedPkgJsonPath(_0x18e9bc,_0x4323c0),_0x581530[_0x47730d(0x1f2)])),_0x11d0b1=(0x0,path_1[_0x47730d(0x215)])(versionDir(_0x18e9bc,_0x4323c0),_0x47730d(0x21b),..._0x18e9bc[_0x47730d(0x1e7)]('/'),_0x581530[_0x47730d(0x1b5)](resolveBin,_0x382d48));return{'pkg':_0x18e9bc,'version':_0x4323c0,'binPath':_0x11d0b1,'declaredEnv':declaredEnv(_0x382d48)};}function updateLogPath(){const _0x581b42=_0x3a275f,_0x5ca6f2={'dBtbQ':function(_0xc31078){return _0xc31078();}};return(0x0,path_1[_0x581b42(0x215)])(_0x5ca6f2[_0x581b42(0x238)](packagesRoot),_0x581b42(0x228));}function log(_0x556156){const _0x5ccb42=_0x3a275f,_0x17bf7d={'iZqBj':function(_0x121edd){return _0x121edd();}};(0x0,fs_1[_0x5ccb42(0x22c)])(_0x17bf7d[_0x5ccb42(0x1ae)](packagesRoot),{'recursive':!![]}),(0x0,fs_1[_0x5ccb42(0x1e8)])(_0x17bf7d[_0x5ccb42(0x1ae)](updateLogPath),new Date()[_0x5ccb42(0x1ec)]()+'\x20'+_0x556156+'\x0a');}async function refreshInBackground(_0x4c3b05){const _0xaee15c=_0x3a275f,_0x4d6f9f={'KRusx':function(_0x3d8054,_0x1158b3){return _0x3d8054(_0x1158b3);},'FfNJk':function(_0x2d7b6e,_0x3abf15){return _0x2d7b6e(_0x3abf15);}};for(const _0x953794 of _0x4c3b05){try{const _0x46d8ed=_0x4d6f9f[_0xaee15c(0x205)](latestVersion,_0x953794[_0xaee15c(0x1c0)]);!listInstalled(_0x953794['pkg'])[_0xaee15c(0x1ed)](_0x46d8ed)&&(await installAsync(_0x953794[_0xaee15c(0x1c0)],_0x46d8ed),_0x4d6f9f[_0xaee15c(0x205)](log,_0xaee15c(0x1de)+_0x953794[_0xaee15c(0x1c0)]+'@'+_0x46d8ed+_0xaee15c(0x1f0))),prune(_0x953794[_0xaee15c(0x1c0)]);}catch(_0xa3b71){_0x4d6f9f[_0xaee15c(0x1c9)](log,_0xaee15c(0x20b)+_0x953794[_0xaee15c(0x1c0)]+':\x20'+_0xa3b71[_0xaee15c(0x1f8)]);}}}
|
package/dist/vault.js
CHANGED
|
@@ -1,32 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================================
|
|
3
|
-
// ローカル暗号金庫(FUNNY BOOTH
|
|
3
|
+
// ローカル暗号金庫(FUNNY BOOTH 共通・要件書 §11.12.15)
|
|
4
4
|
//
|
|
5
|
-
//
|
|
6
|
-
// -
|
|
7
|
-
//
|
|
8
|
-
//
|
|
5
|
+
// 同じ PC の全ツール(DevAgent / PersonaWrite / 経営エージェント …)で1つの金庫を共有する。
|
|
6
|
+
// - 暗号鍵 : OS の鍵保管庫(macOS キーチェーン / Windows 資格情報マネージャー / Linux Secret Service)。
|
|
7
|
+
// 鍵保管庫が無い環境(WSL2・ヘッドレス Linux)では ~/.funny-booth/vault/vault.key に置き、
|
|
8
|
+
// そのことを表示する。最初に決めた保管先は store.json に記録し、以後はそこだけを使う。
|
|
9
|
+
// - 秘密 : ~/.funny-booth/vault/secrets.enc(名前→値の JSON を AES-256-CBC で暗号化)
|
|
10
|
+
// - ログイン: ~/.{toolName}/portal-token.enc(ツールごとにアカウントが違うのでツール別。鍵は共有)
|
|
9
11
|
//
|
|
10
12
|
// 設計方針:
|
|
11
|
-
// -
|
|
12
|
-
//
|
|
13
|
-
// -
|
|
13
|
+
// - 秘密は「クライアント自身のキー」をクライアントのマシンに置く。運用者のポータル DB には載せない。
|
|
14
|
+
// - 鍵を秘密と同じ場所にファイルで置かない(他のプログラムが鍵ファイルを読んで復号できないようにする)。
|
|
15
|
+
// - 旧形式(~/.{toolName}/vault.key + secrets.enc のツール別金庫)は migrateToolVault で共有金庫へ移す。
|
|
14
16
|
// ============================================================================
|
|
15
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.VaultError = void 0;
|
|
16
19
|
exports.configDir = configDir;
|
|
17
20
|
exports.ensureConfigDir = ensureConfigDir;
|
|
18
|
-
exports.
|
|
21
|
+
exports.vaultDir = vaultDir;
|
|
19
22
|
exports.encrypt = encrypt;
|
|
20
23
|
exports.decrypt = decrypt;
|
|
24
|
+
exports.vaultKey = vaultKey;
|
|
25
|
+
exports.resetVault = resetVault;
|
|
21
26
|
exports.readSecrets = readSecrets;
|
|
22
27
|
exports.setSecret = setSecret;
|
|
23
28
|
exports.deleteSecret = deleteSecret;
|
|
24
29
|
exports.listSecretNames = listSecretNames;
|
|
30
|
+
exports.readTokens = readTokens;
|
|
31
|
+
exports.saveTokens = saveTokens;
|
|
32
|
+
exports.clearTokens = clearTokens;
|
|
33
|
+
exports.mergeSecrets = mergeSecrets;
|
|
34
|
+
exports.migrateToolVault = migrateToolVault;
|
|
25
35
|
const crypto_1 = require("crypto");
|
|
26
36
|
const fs_1 = require("fs");
|
|
27
37
|
const os_1 = require("os");
|
|
28
38
|
const path_1 = require("path");
|
|
29
|
-
// ~/.{toolName}
|
|
39
|
+
// ~/.{toolName}(小文字、独立名前空間)。ログイン情報の置き場所
|
|
30
40
|
function configDir(toolName) {
|
|
31
41
|
return (0, path_1.join)((0, os_1.homedir)(), "." + toolName.toLowerCase());
|
|
32
42
|
}
|
|
@@ -34,21 +44,12 @@ function ensureConfigDir(dir) {
|
|
|
34
44
|
if (!(0, fs_1.existsSync)(dir))
|
|
35
45
|
(0, fs_1.mkdirSync)(dir, { recursive: true, mode: 0o700 });
|
|
36
46
|
}
|
|
37
|
-
|
|
38
|
-
//
|
|
39
|
-
function
|
|
40
|
-
|
|
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;
|
|
47
|
+
const SECRETS_FILE = "secrets.enc";
|
|
48
|
+
// 共有金庫の置き場所
|
|
49
|
+
function vaultDir() {
|
|
50
|
+
return (0, path_1.join)((0, os_1.homedir)(), ".funny-booth", "vault");
|
|
51
51
|
}
|
|
52
|
+
// ── 暗号 ────────────────────────────────────────────────────────────────────
|
|
52
53
|
function encrypt(plain, key) {
|
|
53
54
|
const iv = (0, crypto_1.randomBytes)(16);
|
|
54
55
|
const cipher = (0, crypto_1.createCipheriv)("aes-256-cbc", key, iv);
|
|
@@ -68,48 +69,337 @@ function decrypt(payload, key) {
|
|
|
68
69
|
return null;
|
|
69
70
|
}
|
|
70
71
|
}
|
|
71
|
-
|
|
72
|
-
//
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
// ── 失敗の伝え方 ─────────────────────────────────────────────────────────────
|
|
73
|
+
// 金庫を使えないときのエラー。原因と復旧の方法を必ず添える(黙って空や新しい鍵で続けない)
|
|
74
|
+
class VaultError extends Error {
|
|
75
|
+
}
|
|
76
|
+
exports.VaultError = VaultError;
|
|
77
|
+
const RESET_HINT = "金庫を退避して作り直すには `<ツールのコマンド> secret reset`(例: devagent secret reset)を実行してください。" +
|
|
78
|
+
"保存していた秘密は失われ、ログインし直しになります(退避したファイルは残ります)。";
|
|
79
|
+
// ── 書き込み(途中で切れたファイルを残さない)────────────────────────────────
|
|
80
|
+
function atomicWrite(file, data) {
|
|
81
|
+
const tmp = `${file}.${process.pid}.${(0, crypto_1.randomBytes)(4).toString("hex")}.tmp`;
|
|
82
|
+
const fd = (0, fs_1.openSync)(tmp, "w", 0o600);
|
|
78
83
|
try {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (!plain)
|
|
82
|
-
return {};
|
|
83
|
-
const obj = JSON.parse(plain);
|
|
84
|
-
return obj && typeof obj === "object" ? obj : {};
|
|
84
|
+
(0, fs_1.writeSync)(fd, data);
|
|
85
|
+
(0, fs_1.fsyncSync)(fd);
|
|
85
86
|
}
|
|
86
|
-
|
|
87
|
+
finally {
|
|
88
|
+
(0, fs_1.closeSync)(fd);
|
|
89
|
+
}
|
|
90
|
+
(0, fs_1.renameSync)(tmp, file);
|
|
91
|
+
try {
|
|
92
|
+
(0, fs_1.chmodSync)(file, 0o600);
|
|
93
|
+
}
|
|
94
|
+
catch { /* Windows では効かない */ }
|
|
95
|
+
}
|
|
96
|
+
// ── 排他(複数ツールの同時起動で鍵の二重作成・金庫の書き込み競合を防ぐ)──────────
|
|
97
|
+
function sleepMs(ms) {
|
|
98
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
99
|
+
}
|
|
100
|
+
function pidAlive(pid) {
|
|
101
|
+
try {
|
|
102
|
+
process.kill(pid, 0);
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
catch (e) {
|
|
106
|
+
return e.code === "EPERM";
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// ロックには持ち主(pid と乱数)を書く。持ち主が終了しているときだけ奪い、解放は自分のものだけ
|
|
110
|
+
function withVaultLock(fn) {
|
|
111
|
+
(0, fs_1.mkdirSync)(vaultDir(), { recursive: true, mode: 0o700 });
|
|
112
|
+
const lock = (0, path_1.join)(vaultDir(), ".lock");
|
|
113
|
+
const mine = `${process.pid} ${(0, crypto_1.randomBytes)(8).toString("hex")}`;
|
|
114
|
+
const start = Date.now();
|
|
115
|
+
for (;;) {
|
|
116
|
+
try {
|
|
117
|
+
const fd = (0, fs_1.openSync)(lock, "wx", 0o600);
|
|
118
|
+
try {
|
|
119
|
+
(0, fs_1.writeSync)(fd, mine);
|
|
120
|
+
}
|
|
121
|
+
finally {
|
|
122
|
+
(0, fs_1.closeSync)(fd);
|
|
123
|
+
}
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
let holder = "";
|
|
128
|
+
try {
|
|
129
|
+
holder = (0, fs_1.readFileSync)(lock, "utf-8");
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
continue;
|
|
133
|
+
} // 消えた→再試行
|
|
134
|
+
const pid = Number(holder.split(" ")[0]);
|
|
135
|
+
if (holder && Number.isInteger(pid) && pid > 0 && !pidAlive(pid)) {
|
|
136
|
+
// 持ち主が終了している。読んだ内容のままなら消す(他者が取り直していたら消さない)
|
|
137
|
+
try {
|
|
138
|
+
if ((0, fs_1.readFileSync)(lock, "utf-8") === holder)
|
|
139
|
+
(0, fs_1.unlinkSync)(lock);
|
|
140
|
+
}
|
|
141
|
+
catch { /* 消えた */ }
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
if (Date.now() - start > 30_000) {
|
|
145
|
+
throw new VaultError(`金庫を使っている別のプロセスが終わりません(${lock}、pid ${pid || "?"})。しばらく待ってからやり直してください`);
|
|
146
|
+
}
|
|
147
|
+
sleepMs(50);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
return fn();
|
|
152
|
+
}
|
|
153
|
+
finally {
|
|
154
|
+
try {
|
|
155
|
+
if ((0, fs_1.readFileSync)(lock, "utf-8") === mine)
|
|
156
|
+
(0, fs_1.unlinkSync)(lock);
|
|
157
|
+
}
|
|
158
|
+
catch { /* noop */ }
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
// ── 鍵 ─────────────────────────────────────────────────────────────────────
|
|
162
|
+
const KEYCHAIN_SERVICE = "funny-booth";
|
|
163
|
+
const KEYCHAIN_ACCOUNT = "vault-key";
|
|
164
|
+
// 最初に鍵を作ったときの保管先を記録し、以後はそこだけを使う
|
|
165
|
+
// (鍵保管庫が一時的に使えないときに鍵ファイルへ切り替えて別の鍵を作る=金庫が読めなくなる事故を防ぐ)
|
|
166
|
+
const STORE_FILE = "store.json";
|
|
167
|
+
function recordedStore() {
|
|
168
|
+
const f = (0, path_1.join)(vaultDir(), STORE_FILE);
|
|
169
|
+
if (!(0, fs_1.existsSync)(f))
|
|
170
|
+
return null;
|
|
171
|
+
const kind = JSON.parse((0, fs_1.readFileSync)(f, "utf-8")).store;
|
|
172
|
+
if (kind !== "keychain" && kind !== "file")
|
|
173
|
+
throw new VaultError(`金庫の設定が壊れています(${f})。${RESET_HINT}`);
|
|
174
|
+
return kind;
|
|
175
|
+
}
|
|
176
|
+
function fileStore() {
|
|
177
|
+
const keyFile = (0, path_1.join)(vaultDir(), "vault.key");
|
|
178
|
+
return {
|
|
179
|
+
kind: "file",
|
|
180
|
+
get: () => ((0, fs_1.existsSync)(keyFile) ? (0, fs_1.readFileSync)(keyFile, "utf-8").trim() : null),
|
|
181
|
+
set: (hex) => atomicWrite(keyFile, hex),
|
|
182
|
+
remove: () => { if ((0, fs_1.existsSync)(keyFile))
|
|
183
|
+
(0, fs_1.unlinkSync)(keyFile); },
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
// OS の鍵保管庫。Linux は Secret Service に固定する(既定の自動選択は、無いと黙って再起動で消える
|
|
187
|
+
// kernel keyutils に落ちるため)。使えなければ理由つきで例外
|
|
188
|
+
function keychainStore() {
|
|
189
|
+
// ネイティブモジュールは必要になったときに読む(読めない環境でも鍵ファイル方式にたどり着けるように)
|
|
190
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
191
|
+
const { Entry } = require("@napi-rs/keyring");
|
|
192
|
+
const entry = new Entry(KEYCHAIN_SERVICE, KEYCHAIN_ACCOUNT, { linux: { store: "secret-service" } });
|
|
193
|
+
entry.getPassword(); // ここで使えるかを確かめる
|
|
194
|
+
return {
|
|
195
|
+
kind: "keychain",
|
|
196
|
+
get: () => entry.getPassword() ?? null,
|
|
197
|
+
set: (hex) => entry.setPassword(hex),
|
|
198
|
+
remove: () => { entry.deletePassword(); },
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
function keyStore() {
|
|
202
|
+
if (process.env.FB_VAULT_STORE === "file")
|
|
203
|
+
return fileStore();
|
|
204
|
+
const recorded = recordedStore();
|
|
205
|
+
if (recorded === "file")
|
|
206
|
+
return fileStore();
|
|
207
|
+
if (recorded === "keychain") {
|
|
208
|
+
try {
|
|
209
|
+
return keychainStore();
|
|
210
|
+
}
|
|
211
|
+
catch (e) {
|
|
212
|
+
throw new VaultError(`OS の鍵保管庫から金庫の鍵を読めません: ${e.message}。` +
|
|
213
|
+
"キーチェーンのロック解除や、アクセス許可(「常に許可」)を確認してください。" + RESET_HINT);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
// まだ鍵が無い: 鍵保管庫が使えればそこ、無ければ鍵ファイル(そのことを表示する。stdout は MCP 通信に使うので stderr)
|
|
217
|
+
try {
|
|
218
|
+
return keychainStore();
|
|
219
|
+
}
|
|
220
|
+
catch (e) {
|
|
221
|
+
process.stderr.write(`※ OS の鍵保管庫が使えないため、金庫の鍵をファイルに保存します(${(0, path_1.join)(vaultDir(), "vault.key")}): ${e.message}\n`);
|
|
222
|
+
return fileStore();
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
let cachedKey = null;
|
|
226
|
+
// 共有金庫の鍵。無ければ作る(ロックの中で作り直しを防ぐ)。金庫があるのに鍵が無いときは作らずに止める
|
|
227
|
+
function vaultKey() {
|
|
228
|
+
if (cachedKey)
|
|
229
|
+
return cachedKey;
|
|
230
|
+
const store = keyStore();
|
|
231
|
+
const existing = store.get();
|
|
232
|
+
if (existing) {
|
|
233
|
+
cachedKey = parseKey(existing);
|
|
234
|
+
// 保管先の記録が無ければ残す(以後、別の保管先で鍵を作り直さないため)
|
|
235
|
+
if (!(0, fs_1.existsSync)((0, path_1.join)(vaultDir(), STORE_FILE)))
|
|
236
|
+
atomicWrite((0, path_1.join)(vaultDir(), STORE_FILE), JSON.stringify({ store: store.kind }));
|
|
237
|
+
return cachedKey;
|
|
238
|
+
}
|
|
239
|
+
return withVaultLock(() => {
|
|
240
|
+
const again = store.get(); // ロック待ちの間に他のプロセスが作ったかもしれない
|
|
241
|
+
if (again)
|
|
242
|
+
return (cachedKey = parseKey(again));
|
|
243
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(vaultDir(), SECRETS_FILE))) {
|
|
244
|
+
throw new VaultError(`金庫はあるのに、その鍵が見つかりません(保管先: ${store.kind})。${RESET_HINT}`);
|
|
245
|
+
}
|
|
246
|
+
const hex = (0, crypto_1.randomBytes)(32).toString("hex");
|
|
247
|
+
store.set(hex);
|
|
248
|
+
if (store.get() !== hex)
|
|
249
|
+
throw new VaultError("金庫の鍵を保存できませんでした(書いた鍵を読み戻せません)");
|
|
250
|
+
atomicWrite((0, path_1.join)(vaultDir(), STORE_FILE), JSON.stringify({ store: store.kind }));
|
|
251
|
+
return (cachedKey = Buffer.from(hex, "hex"));
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
function parseKey(hex) {
|
|
255
|
+
const key = Buffer.from(hex, "hex");
|
|
256
|
+
if (key.length !== 32)
|
|
257
|
+
throw new VaultError(`金庫の鍵が壊れています(32 バイトではありません)。${RESET_HINT}`);
|
|
258
|
+
return key;
|
|
259
|
+
}
|
|
260
|
+
// 金庫を退避して作り直す(ユーザーが明示的に実行する復旧手段)。退避したファイルは消さない
|
|
261
|
+
function resetVault() {
|
|
262
|
+
(0, fs_1.mkdirSync)(vaultDir(), { recursive: true, mode: 0o700 });
|
|
263
|
+
return withVaultLock(() => {
|
|
264
|
+
const moved = [];
|
|
265
|
+
const stamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
266
|
+
for (const f of [SECRETS_FILE, STORE_FILE, "vault.key"]) {
|
|
267
|
+
const p = (0, path_1.join)(vaultDir(), f);
|
|
268
|
+
if ((0, fs_1.existsSync)(p)) {
|
|
269
|
+
(0, fs_1.renameSync)(p, `${p}.broken-${stamp}`);
|
|
270
|
+
moved.push(`${p}.broken-${stamp}`);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
try {
|
|
274
|
+
keychainStore().remove();
|
|
275
|
+
}
|
|
276
|
+
catch { /* 鍵保管庫が無い・鍵が無い */ }
|
|
277
|
+
cachedKey = null;
|
|
278
|
+
return moved;
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
// ── 秘密(全ツール共有)────────────────────────────────────────────────────
|
|
282
|
+
function readSecretsFile(file, key) {
|
|
283
|
+
if (!(0, fs_1.existsSync)(file))
|
|
87
284
|
return {};
|
|
285
|
+
const plain = decrypt((0, fs_1.readFileSync)(file, "utf-8").trim(), key);
|
|
286
|
+
// 復号できない金庫を空として扱うと、次の書き込みで中身を消してしまう。黙らずに止める
|
|
287
|
+
if (plain === null)
|
|
288
|
+
throw new VaultError(`金庫を復号できません(${file})。鍵が変わった可能性があります。${RESET_HINT}`);
|
|
289
|
+
const obj = JSON.parse(plain);
|
|
290
|
+
return obj && typeof obj === "object" ? obj : {};
|
|
291
|
+
}
|
|
292
|
+
function writeSecretsFile(secrets) {
|
|
293
|
+
(0, fs_1.mkdirSync)(vaultDir(), { recursive: true, mode: 0o700 });
|
|
294
|
+
atomicWrite((0, path_1.join)(vaultDir(), SECRETS_FILE), encrypt(JSON.stringify(secrets), vaultKey()));
|
|
295
|
+
}
|
|
296
|
+
// 金庫全体を復号して名前→値のマップで返す(無ければ空)
|
|
297
|
+
function readSecrets() {
|
|
298
|
+
return readSecretsFile((0, path_1.join)(vaultDir(), SECRETS_FILE), vaultKey());
|
|
299
|
+
}
|
|
300
|
+
// 鍵の作成も同じロックを使うため、ロックを取る前に鍵を用意しておく(ロックは再入できない)
|
|
301
|
+
function setSecret(name, value) {
|
|
302
|
+
vaultKey();
|
|
303
|
+
withVaultLock(() => {
|
|
304
|
+
const secrets = readSecrets();
|
|
305
|
+
secrets[name] = value;
|
|
306
|
+
writeSecretsFile(secrets);
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
function deleteSecret(name) {
|
|
310
|
+
vaultKey();
|
|
311
|
+
return withVaultLock(() => {
|
|
312
|
+
const secrets = readSecrets();
|
|
313
|
+
if (!(name in secrets))
|
|
314
|
+
return false;
|
|
315
|
+
delete secrets[name];
|
|
316
|
+
writeSecretsFile(secrets);
|
|
317
|
+
return true;
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
// 値は返さず名前だけ列挙する(露出を避ける)
|
|
321
|
+
function listSecretNames() {
|
|
322
|
+
return Object.keys(readSecrets());
|
|
323
|
+
}
|
|
324
|
+
const TOKEN_FILE = "portal-token.enc";
|
|
325
|
+
function parseTokens(plain) {
|
|
326
|
+
// 旧形式(生 JWT 保存)との後方互換
|
|
327
|
+
if (plain.startsWith("{")) {
|
|
328
|
+
const obj = JSON.parse(plain);
|
|
329
|
+
return { jwt: obj.jwt, refresh: obj.refresh ?? null };
|
|
88
330
|
}
|
|
331
|
+
return { jwt: plain, refresh: null };
|
|
332
|
+
}
|
|
333
|
+
// 保存済みログインを読む。無い・復号できない(鍵が変わった等)なら null=再ログインさせる
|
|
334
|
+
function readTokens(toolName) {
|
|
335
|
+
const file = (0, path_1.join)(configDir(toolName), TOKEN_FILE);
|
|
336
|
+
if (!(0, fs_1.existsSync)(file))
|
|
337
|
+
return null;
|
|
338
|
+
const plain = decrypt((0, fs_1.readFileSync)(file, "utf-8").trim(), vaultKey());
|
|
339
|
+
return plain ? parseTokens(plain) : null;
|
|
89
340
|
}
|
|
90
|
-
function
|
|
341
|
+
function saveTokens(toolName, tokens) {
|
|
91
342
|
const dir = configDir(toolName);
|
|
92
343
|
ensureConfigDir(dir);
|
|
93
|
-
|
|
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;
|
|
344
|
+
atomicWrite((0, path_1.join)(dir, TOKEN_FILE), encrypt(JSON.stringify({ jwt: tokens.jwt, refresh: tokens.refresh }), vaultKey()));
|
|
110
345
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
346
|
+
function clearTokens(toolName) {
|
|
347
|
+
const file = (0, path_1.join)(configDir(toolName), TOKEN_FILE);
|
|
348
|
+
if ((0, fs_1.existsSync)(file))
|
|
349
|
+
(0, fs_1.unlinkSync)(file);
|
|
350
|
+
}
|
|
351
|
+
// ── 旧形式からの移行 ─────────────────────────────────────────────────────────
|
|
352
|
+
// 同名で値が違う秘密は上書きせず、「名前@ツール名」で両方残す(どちらが正しいかは人が決める)
|
|
353
|
+
function mergeSecrets(shared, incoming, toolName) {
|
|
354
|
+
const merged = { ...shared };
|
|
355
|
+
const conflicts = [];
|
|
356
|
+
for (const [name, value] of Object.entries(incoming)) {
|
|
357
|
+
if (!(name in merged) || merged[name] === value) {
|
|
358
|
+
merged[name] = value;
|
|
359
|
+
continue;
|
|
360
|
+
}
|
|
361
|
+
// 退避名が既にあって値が違うなら連番にする(前回退避した値を上書きしない)
|
|
362
|
+
let alt = `${name}@${toolName}`;
|
|
363
|
+
for (let i = 2; alt in merged && merged[alt] !== value; i++)
|
|
364
|
+
alt = `${name}@${toolName}#${i}`;
|
|
365
|
+
merged[alt] = value;
|
|
366
|
+
conflicts.push(name);
|
|
367
|
+
}
|
|
368
|
+
return { merged, conflicts };
|
|
369
|
+
}
|
|
370
|
+
// ~/.{toolName}/vault.key があれば、そのツールの秘密を共有金庫へ移し、ログインを共有鍵で暗号化し直し、
|
|
371
|
+
// 読み戻して一致を確かめてから旧い鍵と旧い金庫を消す。何も無ければ何もしない。
|
|
372
|
+
function migrateToolVault(toolName) {
|
|
373
|
+
const dir = configDir(toolName);
|
|
374
|
+
const oldKeyFile = (0, path_1.join)(dir, "vault.key");
|
|
375
|
+
if (!(0, fs_1.existsSync)(oldKeyFile))
|
|
376
|
+
return { migrated: false, conflicts: [] };
|
|
377
|
+
vaultKey();
|
|
378
|
+
return withVaultLock(() => {
|
|
379
|
+
if (!(0, fs_1.existsSync)(oldKeyFile))
|
|
380
|
+
return { migrated: false, conflicts: [] }; // 別プロセスが先に移した
|
|
381
|
+
const oldKey = parseKey((0, fs_1.readFileSync)(oldKeyFile, "utf-8").trim());
|
|
382
|
+
const oldSecretsFile = (0, path_1.join)(dir, SECRETS_FILE);
|
|
383
|
+
const oldSecrets = readSecretsFile(oldSecretsFile, oldKey);
|
|
384
|
+
const tokenFile = (0, path_1.join)(dir, TOKEN_FILE);
|
|
385
|
+
const oldTokenPlain = (0, fs_1.existsSync)(tokenFile) ? decrypt((0, fs_1.readFileSync)(tokenFile, "utf-8").trim(), oldKey) : null;
|
|
386
|
+
const { merged, conflicts } = mergeSecrets(readSecrets(), oldSecrets, toolName);
|
|
387
|
+
writeSecretsFile(merged);
|
|
388
|
+
if (oldTokenPlain)
|
|
389
|
+
saveTokens(toolName, parseTokens(oldTokenPlain));
|
|
390
|
+
// 読み戻して一致を確かめてから旧いものを消す(確かめられなければ旧いものは残す)
|
|
391
|
+
const after = readSecrets();
|
|
392
|
+
for (const [name, value] of Object.entries(merged)) {
|
|
393
|
+
if (after[name] !== value)
|
|
394
|
+
throw new Error(`金庫の移行を確かめられませんでした(${name})。旧い金庫は残しています`);
|
|
395
|
+
}
|
|
396
|
+
if (oldTokenPlain && JSON.stringify(readTokens(toolName)) !== JSON.stringify(parseTokens(oldTokenPlain))) {
|
|
397
|
+
throw new Error("ログイン情報の移行を確かめられませんでした。旧い金庫は残しています");
|
|
398
|
+
}
|
|
399
|
+
if ((0, fs_1.existsSync)(oldSecretsFile))
|
|
400
|
+
(0, fs_1.unlinkSync)(oldSecretsFile);
|
|
401
|
+
(0, fs_1.unlinkSync)(oldKeyFile);
|
|
402
|
+
return { migrated: true, conflicts };
|
|
403
|
+
});
|
|
114
404
|
}
|
|
115
405
|
//# sourceMappingURL=vault.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@funny-booth/agent-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.21",
|
|
4
4
|
"description": "AIエージェント起動CLI(共有ランチャー + MCPサーバー)",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "commonjs",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
43
|
+
"@napi-rs/keyring": "^2.1.1",
|
|
43
44
|
"zod": "^3.25.0"
|
|
44
45
|
},
|
|
45
46
|
"devDependencies": {
|