@funny-booth/agent-core 0.1.19 → 0.1.20

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 CHANGED
@@ -1 +1 @@
1
- 'use strict';const _0x1f3872=_0x3935;(function(_0x5cf576,_0x355d4d){const _0x17fcea=_0x3935,_0x55aa1=_0x5cf576();while(!![]){try{const _0x266c7e=parseInt(_0x17fcea(0xc5))/0x1*(parseInt(_0x17fcea(0xa2))/0x2)+parseInt(_0x17fcea(0xa1))/0x3*(parseInt(_0x17fcea(0xbd))/0x4)+-parseInt(_0x17fcea(0xc1))/0x5*(parseInt(_0x17fcea(0xb0))/0x6)+parseInt(_0x17fcea(0xd9))/0x7*(-parseInt(_0x17fcea(0xd2))/0x8)+parseInt(_0x17fcea(0xb3))/0x9+-parseInt(_0x17fcea(0xd0))/0xa*(-parseInt(_0x17fcea(0xb2))/0xb)+parseInt(_0x17fcea(0xae))/0xc*(-parseInt(_0x17fcea(0xaf))/0xd);if(_0x266c7e===_0x355d4d)break;else _0x55aa1['push'](_0x55aa1['shift']());}catch(_0x502728){_0x55aa1['push'](_0x55aa1['shift']());}}}(_0x29cf,0x8c3cd));Object[_0x1f3872(0xd4)](exports,_0x1f3872(0xc7),{'value':!![]}),exports[_0x1f3872(0xd5)]=exports[_0x1f3872(0xa8)]=exports[_0x1f3872(0xad)]=void 0x0,exports['shouldAutoReport']=shouldAutoReport,exports[_0x1f3872(0xc2)]=clientVersion,exports[_0x1f3872(0xb7)]=postFeedback,exports[_0x1f3872(0xbe)]=autoReportFailure;const fs_1=require('fs'),path_1=require(_0x1f3872(0xbb));exports[_0x1f3872(0xad)]=_0x1f3872(0xd3)+'作業中に次のどれかに気づいたら、作業の区切りで\x20send_feedback\x20を呼んで保守担当に送ること(ユーザーに頼まれていなくても送る):\x0a'+_0x1f3872(0xa0)+_0x1f3872(0xb4)+_0x1f3872(0xc9)+'送るのは、ツール群そのものへの指摘だけ。ユーザーの案件の中身・顧客情報・秘密の値は書かない。'+_0x1f3872(0xaa),exports[_0x1f3872(0xa8)]=_0x1f3872(0xa4)+_0x1f3872(0xb5)+'send_feedback\x20で保守担当に送ってください(案件の中身や秘密は書かない)。',exports[_0x1f3872(0xd5)]=_0x1f3872(0xd1)+_0x1f3872(0xb1);function shouldAutoReport(_0x5b3119){const _0x2fe971=_0x1f3872,_0xf6dfed={'sibow':function(_0x14a1d3,_0x4116ed){return _0x14a1d3>=_0x4116ed;},'shdkq':function(_0x3a8a5b,_0x45b329){return _0x3a8a5b!==_0x45b329;}};return _0xf6dfed[_0x2fe971(0xcf)](_0x5b3119,0x190)&&_0xf6dfed[_0x2fe971(0xcc)](_0x5b3119,0x191)&&_0xf6dfed['shdkq'](_0x5b3119,0x193);}function _0x3935(_0x30ea85,_0x152730){_0x30ea85=_0x30ea85-0xa0;const _0x29cf8c=_0x29cf();let _0x39354d=_0x29cf8c[_0x30ea85];if(_0x3935['eTQvSr']===undefined){var _0x1400c8=function(_0xed73b3){const _0x850436='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x51a68='',_0x3bdd99='';for(let _0x4d7df0=0x0,_0x18771f,_0x5ef470,_0x224a6f=0x0;_0x5ef470=_0xed73b3['charAt'](_0x224a6f++);~_0x5ef470&&(_0x18771f=_0x4d7df0%0x4?_0x18771f*0x40+_0x5ef470:_0x5ef470,_0x4d7df0++%0x4)?_0x51a68+=String['fromCharCode'](0xff&_0x18771f>>(-0x2*_0x4d7df0&0x6)):0x0){_0x5ef470=_0x850436['indexOf'](_0x5ef470);}for(let _0x2ffb3d=0x0,_0x231d3a=_0x51a68['length'];_0x2ffb3d<_0x231d3a;_0x2ffb3d++){_0x3bdd99+='%'+('00'+_0x51a68['charCodeAt'](_0x2ffb3d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3bdd99);};_0x3935['YsrLOT']=_0x1400c8,_0x3935['XMJxfM']={},_0x3935['eTQvSr']=!![];}const _0xde81a7=_0x29cf8c[0x0],_0x391c54=_0x30ea85+_0xde81a7,_0x3c1c13=_0x3935['XMJxfM'][_0x391c54];return!_0x3c1c13?(_0x39354d=_0x3935['YsrLOT'](_0x39354d),_0x3935['XMJxfM'][_0x391c54]=_0x39354d):_0x39354d=_0x3c1c13,_0x39354d;}function clientVersion(){const _0x4bc669=_0x1f3872,_0x3aad55={'QMkzC':_0x4bc669(0xbf),'AMgYH':_0x4bc669(0xcb)};try{return JSON['parse']((0x0,fs_1[_0x4bc669(0xa9)])((0x0,path_1['join'])(__dirname,'..',_0x3aad55[_0x4bc669(0xa7)]),_0x3aad55['AMgYH']))['version'];}catch{return _0x4bc669(0xc8);}}async function postFeedback(_0x50daa0,_0x2a48b4,_0x57fc7d){const _0x54793c=_0x1f3872,_0x211a59={'EvnRL':function(_0x2a8dbf,_0x5d4aa7,_0x52597e){return _0x2a8dbf(_0x5d4aa7,_0x52597e);}};return _0x211a59[_0x54793c(0xc3)](fetch,_0x50daa0+_0x54793c(0xb8),{'method':_0x54793c(0xca),'headers':{'Authorization':_0x54793c(0xc6)+_0x2a48b4,'Content-Type':_0x54793c(0xd6)},'body':JSON[_0x54793c(0xac)](_0x57fc7d)});}function _0x29cf(){const _0x7096bf=['6iEQ5yUv6kIy6yYY44gU6ycb5l+H44gR5AsX5Pwx44gx44g+44gx44gFoIa','mtu3mNjQsNDLBa','yxv0B1jLCg9YDezHAwX1CMu','CgfJA2fNzs5QC29U','ywDLBNqTy29YzsdJGA7JG4tJG7ZJG6SG','nta1mJmXnxfHvfz1uW','y2XPzw50vMvYC2LVBG','rxzUuKW','ioocKUwpL+obKEwpLUobO+obN++8IoIhQUwlLEIOMoMmSU+8IEoaGG','mta0nZyXr3jVrxPQ','qMvHCMvYia','x19LC01VzhvSzq','Dw5RBM93BG','lsdLM57PGB/NRzBJGPlOH6RLIiBJGAFKVzZJGOVLV4xOPOhJGyZJGylJGApJGz/KUi3KVR/JGihJGylJGOZJGBdKVzZMPA3JGyZPGj/JGy/NORRLRP/JGAVJGARJGOVMQz/OG70k','ue9tva','DxrMltG','C2HKA3e','r3H1vNi','BwvZC2fNzq','C2LIB3C','mZKZmeDNrLrquG','44oe44o844oR576K77YiywDLBNqTy29YzEodU+wqJoAISu1duoodU+AjI+MGHUABUo+8IEobRUs4JEwfT+wqIoocHoAuUEwwHoEcUEocKUs/NEwUIoAlHEw9K+obQ+MaGEocI+oaGG','ndCYAvvjzMfr','44gt44gU44k744od44k344oN44oZ44gU44oe44o844oR576K77YiywDLBNqTy29YzsdJGA7JG4tJG7ZJG6VJGihLKiZMORfnq1dJGifSB2fKx2TUB3DSzwrNzsdJGAFOQQ3JGOdMIyVPOiBMM7JVViNJGA/NTPNNTPRNMOtJGAVMLlNKV67JGzxJGOZJGABJGytJGOVJGii','zgvMAw5LuhjVCgvYDhK','u0vorf9gruveqKfds19ervnduKLqveLptG','yxbWBgLJyxrPB24VANnVBG','ioocKUwrVoocK+obPYbivfrqia','ywrK','nty1nJDesu1nsMm','lsdJG4tJG7ZJG6VJGOtLKiZMORfnq1dJGA7KUi3LHBFLKiJVViJJGQJJG6NJG7ZJGihOQQtLI5xKVzZJGihOQQZMMi7JGAJPGzxJGyBMJjNLI5xVViKk','mJqZowPXtM13Dq','nKHXzNnIvW','D3jPDgu','cGOTls0k','6iEQ5yUv6kIy6yYY44gU6ycb5l+H44gR5AsX5Pwx44gx44g+44gx44gFoIbivfrqia','zxjYB3i','uu1REKm','s05pv0XfreDfx0zpt1rfuG','CMvHzezPBgvtEw5J','mEs7TUobQZhJGAtJGA7OQBhPOyZJGPlJGihKVzxJGyZOTBFJGy3JGz/JGyVJG7VJGANJGyBJGARJGApJGABJGBVJGzFJGytJGyVJGyZKV53LROJMI4xLVzpJGAVKVj3JGO/JGOVJGOJJGyBJGAVMM7JJGy/JGii','Bu5Aze8','C3rYAw5NAwz5','rKvfrejbq0TFsu5tvfjvq1rjt05t','mZe2mdHbC3DzB0q','mti0ogvowfPjBW','nMDQzgLTua','44oM44o844k244o844gR6Ac844g+44km44gM44ge44gQ44gp44gM44kc44cb5Rcx44gL44ge44gF44kj5l2C5QwT44gU5yY65yIh44kk44gN6ycb44gJ44gM44ki44ge44cc5Qgi5lU244gU5lIT6lQR44o76AgN5A6I5Oof5AcX44o756Ey5A+g44gU5ycK44gV5PU444gl44gQ44ge44cc','mJu3mJLezMXSsu0','nJG1mZuWmevjAvz4rW','lsdMIyVPOiBMM7JJGA7OQQtJGORJG7VLJ6tJGytOQjJOV7dJG7VOTRpJGORJGARJGytMIyVPOiyk','4Oc7ios9NoALREobRUwmUUwiH+ocIUobP+AmR+ocIUI/LoocIUoaGEobK+obRUAjI+MGHUABUoodU+odHoodVoodQ+odU+wqJoAISu1duoobRUs4JEwfT+wqIoocHoAuUEwwHoEcUEobQ+AWL+obPEobHoobPUobHoobN+ocIEoaGq','C3rKzxjY','Cg9ZDezLzwrIywnR','l2fWAs9MzwvKyMfJAW','C3rHDhvZ','ywDLBNqTy29YztO','Cgf0Aa'];_0x29cf=function(){return _0x7096bf;};return _0x29cf();}const reported=new Set();async function autoReportFailure(_0x1a9655,_0x32e099,_0x1de6e3,_0xb9d60b,_0x2a7c0a,_0x1b286f){const _0x359eaa=_0x1f3872,_0x1a1cd7={'GxuVr':_0x359eaa(0xa6),'mNZdO':function(_0x4867da){return _0x4867da();}};if(!shouldAutoReport(_0x2a7c0a))return;const _0x4318eb=_0xb9d60b+'\x20'+_0x2a7c0a+'\x20'+_0x1b286f;if(reported['has'](_0x4318eb))return;reported[_0x359eaa(0xd8)](_0x4318eb);try{const _0x38876d=await postFeedback(_0x1a9655,_0x32e099,{'tool_name':_0x1de6e3,'kind':_0x1a1cd7[_0x359eaa(0xcd)],'target':_0x359eaa(0xba)+_0xb9d60b,'title':_0xb9d60b+'\x20がポータルで\x20HTTP\x20'+_0x2a7c0a,'detail':_0x359eaa(0xc0)+_0xb9d60b+'\x20がポータル\x20'+_0x1b286f+_0x359eaa(0xd7)+_0x2a7c0a+_0x359eaa(0xc4),'client_version':_0x1a1cd7[_0x359eaa(0xab)](clientVersion)});if(!_0x38876d['ok'])process[_0x359eaa(0xb6)]['write'](_0x359eaa(0xa5)+_0x38876d[_0x359eaa(0xb9)]+'\x0a');}catch(_0x5638ea){process[_0x359eaa(0xb6)][_0x359eaa(0xa3)](_0x359eaa(0xbc)+_0x5638ea[_0x359eaa(0xce)]+'\x0a');}}
1
+ 'use strict';const _0xab4e69=_0x4822;(function(_0x2060b2,_0x4c0be2){const _0x36133c=_0x4822,_0x4e608a=_0x2060b2();while(!![]){try{const _0x4984d8=parseInt(_0x36133c(0x1df))/0x1+parseInt(_0x36133c(0x20d))/0x2*(parseInt(_0x36133c(0x1fa))/0x3)+-parseInt(_0x36133c(0x1e6))/0x4+-parseInt(_0x36133c(0x203))/0x5+parseInt(_0x36133c(0x208))/0x6+-parseInt(_0x36133c(0x1e8))/0x7*(-parseInt(_0x36133c(0x1e5))/0x8)+-parseInt(_0x36133c(0x1f9))/0x9*(parseInt(_0x36133c(0x1dd))/0xa);if(_0x4984d8===_0x4c0be2)break;else _0x4e608a['push'](_0x4e608a['shift']());}catch(_0x2005ff){_0x4e608a['push'](_0x4e608a['shift']());}}}(_0x2f9f,0x79286));function _0x2f9f(){const _0x31bd11=['C3rHDhvZ','CMvHzezPBgvtEw5J','D3jPDgu','mEs7TUobQZhJGAtJGA7OQBhPOyZJGPlJGihKVzxJGyZOTBFJGy3JGz/JGyVJG7VJGANJGyBJGARJGApJGABJGBVJGzFJGytJGyVJGyZKV53LROJMI4xLVzpJGAVKVj3JGO/JGOVJGOJJGyBJGAVMM7JJGy/JGii','mJmYnZi4uejiBeXL','mtmWnde3mKDNzgfjDq','ioocKUwrVoocK+obPYbivfrqia','mtrMt0zVyNq','AgfZ','C2vUzf9MzwvKyMfJAYdJGAFKV53LROJMI4xLVzpJGAVPGihJGApJGABJGy/JGAdJGzxJGytVViJMOyJKU7BJGA7KUk3OUQVJGOtNP5JLR4BJGA/MM7JJGyVJGARJGytVViNJGii','ioobJoodNEodVoocV+odQYa','C2HVDwXKqxv0B1jLCg9YDa','D21SsMS','AM9PBG','Cgf0Aa','yxbWBgLJyxrPB24VANnVBG','ywrK','DxrMltG','44oe44o844oR576K77YiywDLBNqTy29YzEodU+wqJoAISu1duoodU+AjI+MGHUABUo+8IEobRUs4JEwfT+wqIoocHoAuUEwwHoEcUEocKUs/NEwUIoAlHEw9K+obQ+MaGEocI+oaGG','x19LC01VzhvSzq','C3rKzxjY','4Oc7ios9NoALREobRUwmUUwiH+ocIUobP+AmR+ocIUI/LoocIUoaGEobK+obRUAjI+MGHUABUoodU+odHoodVoodQ+odU+wqJoAISu1duoobRUs4JEwfT+wqIoocHoAuUEwwHoEcUEobQ+AWL+obPEobHoobPUobHoobN+ocIEoaGq','ywDLBNqTy29YzsdJGA7JG4tJG7ZJG6SG','zgvMAw5LuhjVCgvYDhK','nZjrwhHJrgy','nZu3mJnOu3bhweG','ioocKUwpL+obKEwpLUobO+obN++8IoIhQUwlLEIOMoMmSU+8IEoaGG','qMvHCMvYia','BwvZC2fNzq','zxjYB3i','DMvYC2LVBG','Cg9ZDezLzwrIywnR','6ycb44kl44gU44gV44cb44oe44o844oR576K44gD44gU44kc44gU44g444gU5OYh5Pgy44gG44gr44cc44oM44o844k244o844gU5Qgi5lU244gU5lIT6lQR44o76AgN5A6I5Oof5AcX44o756Ey5A+g44gU5ycK44gV5PU444gl44gQ44ge44cc','Ee1lsNK','mZK1mJu1rMTSDe1r','u0vorf9gruveqKfds19ervnduKLqveLptG','ywDLBNqTy29YztO','C3rYAw5NAwz5','6iEQ5yUv6kIy6yYY44gU6ycb5l+H44gR5AsX5Pwx44gx44g+44gx44gFoIbivfrqia','mJyXntmYmNjhqwLqtq','s05pv0XfreDfx0zpt1rfuG','l2fWAs9MzwvKyMfJAW','44oM44o844k244o844gR6Ac844g+44km44gM44ge44gQ44gp44gM44kc44cb5Rcx44gL44ge44gF44kj5l2C5QwT44gU5yY65yIh44kk44gN6ycb44gJ44gM44ki44ge44cc5Qgi5lU244gU5lIT6lQR44o76AgN5A6I5Oof5AcX44o756Ey5A+g44gU5ycK44gV5PU444gl44gQ44ge44cc','A1HPzK0','nZb3r0rrrNi','y2XPzw50vMvYC2LVBG','yxv0B1jLCg9YDezHAwX1CMu','nJq4mJiWue14BNDy','rKvfrejbq0TFsu5tvfjvq1rjt05t','ndi0mJHPCej2Ahu','5l2C5QwT5lIT44gR5QYH44gU44gP44km44gl44gR5Rcx44gL44ge44gF44kj44cb5l2C5QwT44gU5yY65yIh44kk44gNihnLBMrFzMvLzgjHy2SG44ks5zg844kt44gN5l+D5A6i5OUf5B2t44gR6ycb44kl44gt44gO77Yi44oM44o844k244o844gR6Ac844g+44km44gM44ge44gQ44gp44gM44kc6ycb44kl77YjoGO'];_0x2f9f=function(){return _0x31bd11;};return _0x2f9f();}Object[_0xab4e69(0x1f8)](exports,_0xab4e69(0x1f4),{'value':!![]}),exports['SEND_FEEDBACK_DESCRIPTION']=exports['KNOWLEDGE_FOOTER']=exports[_0xab4e69(0x1de)]=void 0x0,exports[_0xab4e69(0x1ec)]=shouldAutoReport,exports[_0xab4e69(0x20e)]=clientVersion,exports[_0xab4e69(0x200)]=postFeedback,exports[_0xab4e69(0x1dc)]=autoReportFailure;const fs_1=require('fs'),path_1=require(_0xab4e69(0x1ef));exports[_0xab4e69(0x1de)]='このセッションのツール群(agent-core\x20のツール、同梱MCP、load_knowledge\x20で読む手順書)は継続的に改修されている。'+_0xab4e69(0x1e0)+'-\x20ツールや同梱MCPの不具合(エラー、誤動作、説明と違う挙動)\x0a'+'-\x20手順書の誤り・古い記述・足りない手順\x0a'+'-\x20回避策を自分で作る必要があった不便、あれば作業が速く確実になる機能\x0a'+_0xab4e69(0x201)+_0xab4e69(0x1e4),exports[_0xab4e69(0x209)]='\x0a\x0a---\x0a'+_0xab4e69(0x1f6)+_0xab4e69(0x1ea),exports[_0xab4e69(0x204)]=_0xab4e69(0x1f3)+_0xab4e69(0x20b);function shouldAutoReport(_0x30db15){const _0x40b644=_0xab4e69,_0x4f0f90={'wmlJk':function(_0xcee68,_0x2aaabd){return _0xcee68>=_0x2aaabd;},'kXifM':function(_0x3f210a,_0x22a6b9){return _0x3f210a!==_0x22a6b9;}};return _0x4f0f90[_0x40b644(0x1ed)](_0x30db15,0x190)&&_0x30db15!==0x191&&_0x4f0f90[_0x40b644(0x20c)](_0x30db15,0x193);}function clientVersion(){const _0x5c2b82=_0xab4e69;try{return JSON['parse']((0x0,fs_1[_0x5c2b82(0x1e2)])((0x0,path_1[_0x5c2b82(0x1ee)])(__dirname,'..','package.json'),_0x5c2b82(0x1f2)))[_0x5c2b82(0x1ff)];}catch{return'unknown';}}async function postFeedback(_0x13a8b1,_0x33516b,_0x1e4250){const _0x39a19f=_0xab4e69,_0x99ed82={'SQVnV':function(_0xcd8e35,_0x5bef2f,_0x1906cb){return _0xcd8e35(_0x5bef2f,_0x1906cb);},'xMKJy':_0x39a19f(0x1f0)};return _0x99ed82['SQVnV'](fetch,_0x13a8b1+_0x39a19f(0x20a),{'method':'POST','headers':{'Authorization':_0x39a19f(0x1fc)+_0x33516b,'Content-Type':_0x99ed82[_0x39a19f(0x202)]},'body':JSON[_0x39a19f(0x206)](_0x1e4250)});}const reported=new Set();function _0x4822(_0x41d88e,_0x297de3){_0x41d88e=_0x41d88e-0x1dc;const _0x2f9ff2=_0x2f9f();let _0x482222=_0x2f9ff2[_0x41d88e];if(_0x4822['MqWQjk']===undefined){var _0x37451c=function(_0xad59c4){const _0x5e0e64='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3b0007='',_0x5caa16='';for(let _0x19cfe0=0x0,_0x11ce71,_0x43accc,_0x3fe471=0x0;_0x43accc=_0xad59c4['charAt'](_0x3fe471++);~_0x43accc&&(_0x11ce71=_0x19cfe0%0x4?_0x11ce71*0x40+_0x43accc:_0x43accc,_0x19cfe0++%0x4)?_0x3b0007+=String['fromCharCode'](0xff&_0x11ce71>>(-0x2*_0x19cfe0&0x6)):0x0){_0x43accc=_0x5e0e64['indexOf'](_0x43accc);}for(let _0x578739=0x0,_0x3a23b2=_0x3b0007['length'];_0x578739<_0x3a23b2;_0x578739++){_0x5caa16+='%'+('00'+_0x3b0007['charCodeAt'](_0x578739)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5caa16);};_0x4822['Hydsuz']=_0x37451c,_0x4822['qOgYxT']={},_0x4822['MqWQjk']=!![];}const _0x1956f2=_0x2f9ff2[0x0],_0x373227=_0x41d88e+_0x1956f2,_0x2f43d7=_0x4822['qOgYxT'][_0x373227];return!_0x2f43d7?(_0x482222=_0x4822['Hydsuz'](_0x482222),_0x4822['qOgYxT'][_0x373227]=_0x482222):_0x482222=_0x2f43d7,_0x482222;}async function autoReportFailure(_0x28c945,_0x4f00fa,_0x20bcaa,_0x308a51,_0x13a101,_0xec210c){const _0x53a6ad=_0xab4e69,_0x581c49={'JCIgX':function(_0x2ad465){return _0x2ad465();}};if(!shouldAutoReport(_0x13a101))return;const _0x4bf4b4=_0x308a51+'\x20'+_0x13a101+'\x20'+_0xec210c;if(reported[_0x53a6ad(0x1e9)](_0x4bf4b4))return;reported[_0x53a6ad(0x1f1)](_0x4bf4b4);try{const _0x42e55b=await postFeedback(_0x28c945,_0x4f00fa,{'tool_name':_0x20bcaa,'kind':_0x53a6ad(0x1fe),'target':_0x53a6ad(0x205)+_0x308a51,'title':_0x308a51+'\x20がポータルで\x20HTTP\x20'+_0x13a101,'detail':_0x53a6ad(0x1f7)+_0x308a51+_0x53a6ad(0x1eb)+_0xec210c+_0x53a6ad(0x1e7)+_0x13a101+_0x53a6ad(0x1fb),'client_version':_0x581c49['JCIgX'](clientVersion)});if(!_0x42e55b['ok'])process['stderr']['write'](_0x53a6ad(0x207)+_0x42e55b[_0x53a6ad(0x1e1)]+'\x0a');}catch(_0x42eb3c){process[_0x53a6ad(0x1f5)][_0x53a6ad(0x1e3)]('自動記録の送信に失敗しました:\x20'+_0x42eb3c[_0x53a6ad(0x1fd)]+'\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 _0x195981=_0x52a4;function _0x1c1d(){const _0x930128=['C3rKB3v0','mtGXnZu4A1DbAxf4','lI92yxvSDa','5l+D566H5lIT44gU44k344o844kV44oS44od44oi77Yi5ywO44oe44o844oR5ywX6ycA77YjoGO','y2f0y2G','44or44k544oV44o844oj44ks5Asj5PU044gx44g+44gx44gF','yNvNoIdKUi3LHBFLKiJJG7VOQQtLI5xKVzZJG7VMIyVPOiBMM7JJGA7OQQtJGOOGlYbPBxbYB3zLBwvUDdOG5Ps55zAe5Qgi44o75QYY44gx44ge5QMF6io9','C2vJCMv0CY5LBMm','C2v0u2vJCMv0','mta0ntm2m3nmwhz4wG','44kK44oZ44k544oi44o844oR44gz44kltunq44gUsuq','ioocKUAAL+wpT+wmLUs/NEwTMoobL+obVUobL+obN++8Ia','mc4XlJa','rM9SrLm','qvbj44kO44oP44o8oIa','s05pv0XfreDfx0zpt1rfuG','Aw1WCM92zw1LBNq','44kO44oP44o8oIa','BgLZDf9Ty3bZ','zg5tvKW','yNvN','BwfW','wKzPEvG','uuzeue4','zw51Bq','mZiWyvP3A3Hf','C2vJCMv0','sM1lqNG','tuvuD0C','zgvSzxrLu2vJCMv0','zgvZy3jPyMu','qg1VzgvSy29UDgv4DhbYB3rVy29Sl3nKAY9Zzxj2zxiVC3rKAw8UANm','u2fSzxncB3q','ANLkuem','44kK44oZ44k544oi44o844oR44kZ44oE44oZ44oj44ks5y+w5B6x44gN44gn44g+44gB44kt44gN44gx44gF','zxHLyW','6kQn6kI85Oof5AcX44gm44gc44kk44g+44gB44kt44cc6lw35yUv44ox44oT44kW44oP44oG77YiBgf1BMnOzxlVViNJGyVJGONOTBFLI5xJGzFJGABJGy/JGAdJGzxJGytJGiik','nZC2uuf3zxLV','C3rVCMvFC2vJCMv0','l2fWAs9Ty3bZl2LUC3rHBgW','DMf1BhreAxi','rMf0ywW6ia','l2fWAs9RBM93BgvKz2u/A2v5D29Yzd0','z2v0x3nLy3jLDa','B3b0Aw9UywW','ue9tva','zgvSzxrL','ioobRUocPoodS+ocUEodIoodVoodQ+obJowUJos6HUobL+obVUobL+obN+oaGKnSyxvKzsbdB2rL44ks5yAn6lw35yUv44gx44gM44gp44gG44gv44ge44cccGRLRP/OOyZJGRpJG57JG7pJG4K6ia','yxv0B1jLCg9YDezHAwX1CMu','44o75ywO44oe44o844oR5ywX6ycA77Yj44cccG','y29UBMvJDa','5l2/44ge5PA5oIbHz2vUDc1JB3jLihnLy3jLDcbYBsa8tKfnrt4k','BgvUz3rO','4Oc7ioobK+ocJoobR+I/VEwkOoocPoodS+ocUEodIoodVoodQ+obP+obJEocIYbnq1aG44gU5lIa6kAN44gN44gz44cccG','C3rKzxjY','CM52qLe','y29UDgvUDa','ruPQyNy','5l+D566H5lIT44gU44k344o844kV44oS44od44oi44gV44gc44kk44g+44gB44kt44ccC3rVCMvFC2vJCMv0ioobP+s/NEwTMoobP+obJEobVUobMEoaGG','q1DJueO','u3rKAw9tzxj2zxjuCMfUC3bVCNq','zxjYB3i','rKvfrejbq0TFsu5tvfjvq1rjt05t','qNDiz1m','ioocKUwjIUMzPoobL+obVUobL+obN+oaGGO','ioobRUwaPoocKUwfPEwkM++8IoIHQoEKUUobLEocJoobVUobM+ocK++8ItOG','D1r0r3a','6yEr5BQR44ks6yca6yg/44gx44g+44gx44gF77Yi5QYH44gR5l2/44gg44gO44gn44gR5PAW44gx44gp5l2C44kj44km44g+44gz44cc44oT44kW44kK44oZ44gx55U044gx44gR44gQ44kk44g+44gz77YjoGO','qMvHCMvYia','44k344o844kV44oS44od44oi44gU5ycK','qg1VzgvSy29UDgv4DhbYB3rVy29Sl3nKAY9Zzxj2zxiVBwnWlMPZ','mtm0mZCWoeXWrNDPAW','C3rKAw4','4PYfioocT+odVoocR+odRoodG+odIca','5l2/44ge5PA5oIbHz2vUDc1JB3jLihnLy3jLDca8C2v0FgXPC3r8CM18CMvZzxq+ifToqu1fxqO','C3rHDhvZ','CMvZzxrwyxvSDa','teDzwfq','5ycK44gm56M644gN44gz44cc5lIT5Q2I44gx44g+44gx44gF44cccG','s3DmzKC','yxbWBgLJyxrPB24VANnVBG','AM9PBG','icaTia','y3vmwM4','BLvYzNy','6kQn6kI844kO44oP44o8oIdJGRVJG4pJG4JJGQlJG4pJG5FJGyZLROZKUOBJGzFJGABJGytJGB7JGzVJGPpJGilNRQhNKiBOGixJGAVPGkpNTAhJGzFJGABJGy/JGAdJGzxJGytJGii','5l2v44gm6lw344gn44gF44gl44o75yAn54++5OMl6Acg44o744gP44gg44gQ44gJ44gM44g744gx44ge44gl44cc5Qgi5lU244gU5lIT6lQR44ke56Ey5A+g44gU5ycK44gV5PU444gl44gQ44ge','D3jPDgu','zKXcvLO','ioocKUwjIUMzPoobL+obVUobL+obN+oaGG','zfn0q1u','6ycb5l+H44gR5AsX5Pwx44gx44g+44gx44gF77Yisfruuca','yMLUza','zgvMAw5LuhjVCgvYDhK','twnWu2vYDMvY','C3rVCMvFC2vJCMv0ic8Gz2v0x3nLy3jLDcaVigXPC3rFC2vJCMv0CYaVigrLBgv0zv9ZzwnYzxqG44gm','lI9MzwvKyMfJAW','u0vorf9gruveqKfds19ervnduKLqveLptG','EMnOBLi','l2fWAs9Ty3bZ','AKDztfK','tK9qrg0','D2fcDfO','ugHzEgS','ioobR+MhKEw6Q+obQ+obGUocIUobVUobM+ocK+oaGNn0B3jLx3nLy3jLDcdJGAFKV53LRzJJGAFJGy3JGB7JGzNJGii','Aw5ZDgfSBf9JB21Tyw5K','CMvJB3jK','jYdJGAVLR77LV5ZJGzNJGOTlBM93BgvKz2xJGyZOPOVJGAtJGyVJGORJGB7JGzVJGPpJGAFJGzFJGz/JGilNRQhNKiBOGixJGAVJGyRLLy/JGytLKiJJGO/JGzVJGy/JGAdJGzxJGytJGii','BwLNCMf0zvrVB2XwyxvSDa','CgfYC2u','ywDLBNqTy29Yzq','mJiWndK3mMzvBM5yrq','44kT44o844oV44o844ojicC','mJaZotrkBMToyw0','CMvHzfnLy3jLDhm','y2HHBMDLx3bHC3n3B3jK','ugT0uvC','mtKWodi2mvjqBuPgzW','5PYa5yID44gl44kj5l2/44gi44g+44gz77Yi44kK44oZ44k544oi44o844oR5lIn6kAb77Yj44cc','ENLVthi','44k344o844kV44oS44od44oi77Yi6yEr5BQR77Yj44gU6kQT44g/5PU444gn44gV44gt44gU5lIa6kAN44gR5yE644g+44gB44kt44cc','qLzNzKi','Bgzyzhi','BwLU','ANnVBG','C3rYAw5NAwz5','5lIa6kgm44gU6kAb57se','tunqifnLCNzLCIbZDgfYDgvKcG','ioocKUodREodVoocQ+odQ+AAL+wpT+MhKEw6Q+obQ+s/NEwTMoobL+obVUobL+obN++8IoobK+obRIbqqYdJGA7LHAJJG4tJG7ZJG6VJGAFLHBhPGjRJGilLGktJGA/JGzpJGA7JG57JGRFJG7pJGyVJGONLH7RJGB7JGzVJGPpVViNJGii','uMXqyLO','swP0ALa','C3rYAw5N','Dgv4Da','44k344o844kV44oS44od44oiia','zxHPDa','BxL0wK4','v25lueS','ioobR+IMI+obPoobI+ocIUobVUobM+ocK+oaGG','5l2/44ge5PA5oIbHz2vUDc1JB3jLihnLy3jLDcbZzxqGpe5btuu+cG','mvH2C3HtCW','C2XPy2u','BgLZDfnLy3jLDe5HBwvZ','CMvZzxq','mJa1v1fnCvfc','C2vUzf9MzwvKyMfJAW','teL3v3C','5l+D566H5lIT44gU44k344o844kV44oS44od44oi44gV44gc44kk44g+44gB44kt44cccG','s25VD2XLzgDL44kT44o844oV44o844oj77Yi5l6loIbau2fSzxncB3rF6kAb5lU25A6A576P77Yj','wxnXv1G','Bg9Hzf9RBM93BgvKz2u','zgnvu2O','Cgf0Aa','DhjPBq','CxvLC3rPB25iAwrKzw4','ntqZndyWneLvuvPIva','Dg9VBe5HBwu','yxjNDG','CMvHzezPBgvtEw5J','Ee9UBNO','y2XPzw50vMvYC2LVBG','54++5zYO44gU44or44k544oV44o844oj','BwvZC2fNzq','5PAW44gx44ge44or44k544oV44o844oj77YiooAwH+wTL+s7PEs4IU+8Iq','6yca6yg/44gz44kl6yEr5BQR44gV44gc44kk44g+44gB44kt44gN44gx44gF44cccG'];_0x1c1d=function(){return _0x930128;};return _0x1c1d();}(function(_0x4f681c,_0x31291b){const _0x33b7ce=_0x52a4,_0x30c636=_0x4f681c();while(!![]){try{const _0x189e85=-parseInt(_0x33b7ce(0x180))/0x1*(-parseInt(_0x33b7ce(0x13c))/0x2)+parseInt(_0x33b7ce(0x16a))/0x3+parseInt(_0x33b7ce(0x18f))/0x4+parseInt(_0x33b7ce(0x184))/0x5*(parseInt(_0x33b7ce(0x19a))/0x6)+-parseInt(_0x33b7ce(0x164))/0x7+-parseInt(_0x33b7ce(0x1be))/0x8*(-parseInt(_0x33b7ce(0x166))/0x9)+-parseInt(_0x33b7ce(0x1b2))/0xa*(parseInt(_0x33b7ce(0x1a2))/0xb);if(_0x189e85===_0x31291b)break;else _0x30c636['push'](_0x30c636['shift']());}catch(_0x26d943){_0x30c636['push'](_0x30c636['shift']());}}}(_0x1c1d,0xbc903));Object[_0x195981(0x152)](exports,'__esModule',{'value':!![]});const mcp_js_1=require(_0x195981(0x13b)),stdio_js_1=require(_0x195981(0x1b8)),zod_1=require('zod'),child_process_1=require('child_process'),fs_1=require('fs'),path_1=require(_0x195981(0x18c)),vault_1=require(_0x195981(0x19b)),prompt_1=require('./prompt'),feedback_1=require(_0x195981(0x155)),rawArgs=process[_0x195981(0x191)][_0x195981(0x181)](0x2),isSecretCommand=rawArgs[0x0]===_0x195981(0x1b3);function resolveToolName(){const _0x405bca=_0x195981,_0x5ae4e0={'nUrfv':'utf-8'};if(process.env.TOOL_NAME)return process.env.TOOL_NAME;try{const _0x4c6319=JSON[_0x405bca(0x162)]((0x0,fs_1[_0x405bca(0x192)])((0x0,path_1[_0x405bca(0x146)])(__dirname,'..','launcher.config.json'),_0x5ae4e0[_0x405bca(0x149)]));return _0x4c6319[_0x405bca(0x190)]||_0x405bca(0x1b9);}catch{return'SalesBot';}}async function runSecretCommand(_0x31d040){const _0x46c07b=_0x195981,_0x58dedc={'xOnnz':function(_0x47a980,_0x1d7061){return _0x47a980===_0x1d7061;},'RlPbZ':_0x46c07b(0x183),'dcUSj':function(_0x1bd544){return _0x1bd544();},'ZFiyX':'list','EJjbv':_0x46c07b(0x187),'jyJPC':'set','BwHgS':'utf-8','cuLZn':_0x46c07b(0x143),'dnSVL':function(_0x2fb5f0,_0x1d87f3){return _0x2fb5f0===_0x1d87f3;},'NOPDm':_0x46c07b(0x1c7),'lfXdr':_0x46c07b(0x1cc)},_0xe29302=_0x31d040[0x0];if(_0x58dedc[_0x46c07b(0x193)](_0xe29302,_0x58dedc[_0x46c07b(0x176)])){const _0x451d89=(0x0,vault_1[_0x46c07b(0x141)])();process[_0x46c07b(0x199)][_0x46c07b(0x14c)](_0x451d89[_0x46c07b(0x1cd)]?_0x46c07b(0x138)+_0x451d89[_0x46c07b(0x1ae)](_0x542a07=>_0x46c07b(0x147)+_0x542a07)['join']('\x0a')+'\x0a':_0x46c07b(0x198));return;}try{(0x0,vault_1[_0x46c07b(0x161)])(_0x58dedc[_0x46c07b(0x18b)](resolveToolName));}catch(_0x19eb44){process[_0x46c07b(0x1cf)][_0x46c07b(0x14c)]('※\x20旧い金庫を全ツール共通の金庫へ移せませんでした(旧い金庫は残しています):\x20'+_0x19eb44[_0x46c07b(0x196)]+'\x0a');}if(_0xe29302===_0x58dedc[_0x46c07b(0x1af)]){const _0xc7fc72=(0x0,vault_1[_0x46c07b(0x182)])();!_0xc7fc72[_0x46c07b(0x1cd)]?process[_0x46c07b(0x199)][_0x46c07b(0x14c)](_0x58dedc[_0x46c07b(0x1d2)]):process[_0x46c07b(0x199)]['write'](_0x46c07b(0x19c)+_0xc7fc72['map'](_0x12e197=>_0x46c07b(0x147)+_0x12e197)[_0x46c07b(0x146)]('\x0a')+'\x0a');return;}if(_0xe29302===_0x58dedc[_0x46c07b(0x1ba)]){const _0x21feed=_0x31d040[0x1];!_0x21feed&&(process['stderr'][_0x46c07b(0x14c)](_0x46c07b(0x17f)),process[_0x46c07b(0x17b)](0x1));const _0x2bc425=process[_0x46c07b(0x13d)]['isTTY']?await(0x0,prompt_1[_0x46c07b(0x18e)])(_0x21feed+_0x46c07b(0x136)):(0x0,fs_1[_0x46c07b(0x192)])(0x0,_0x58dedc[_0x46c07b(0x134)])[_0x46c07b(0x18d)]();!_0x2bc425&&(process[_0x46c07b(0x1cf)]['write'](_0x58dedc[_0x46c07b(0x148)]),process['exit'](0x1));(0x0,vault_1['setSecret'])(_0x21feed,_0x2bc425),process[_0x46c07b(0x199)]['write'](_0x46c07b(0x13e)+_0x21feed+_0x46c07b(0x1a4)+(0x0,path_1[_0x46c07b(0x146)])((0x0,vault_1[_0x46c07b(0x1c1)])(),_0x46c07b(0x1a0))+_0x46c07b(0x1ca));return;}if(_0x58dedc['xOnnz'](_0xe29302,'rm')||_0x58dedc[_0x46c07b(0x1ac)](_0xe29302,_0x58dedc[_0x46c07b(0x15a)])){const _0xcf53a8=_0x31d040[0x1];!_0xcf53a8&&(process[_0x46c07b(0x1cf)][_0x46c07b(0x14c)](_0x58dedc[_0x46c07b(0x16f)]),process[_0x46c07b(0x17b)](0x1));const _0x2d3cfa=(0x0,vault_1[_0x46c07b(0x1b6)])(_0xcf53a8);process[_0x46c07b(0x199)][_0x46c07b(0x14c)](_0x2d3cfa?'✅\x20'+_0xcf53a8+_0x46c07b(0x135):'('+_0xcf53a8+'\x20は保管されていません)\x0a');return;}process[_0x46c07b(0x1cf)][_0x46c07b(0x14c)](_0x46c07b(0x13f)),process['exit'](0x1);}function _0x52a4(_0x3bd68a,_0x348ae8){_0x3bd68a=_0x3bd68a-0x12f;const _0x1c1d5e=_0x1c1d();let _0x52a48d=_0x1c1d5e[_0x3bd68a];if(_0x52a4['tvaWEL']===undefined){var _0x5c1c76=function(_0x6c982d){const _0x565388='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3377ab='',_0x1e2923='';for(let _0x424bfd=0x0,_0x1e3c6f,_0x45af2f,_0x2a951c=0x0;_0x45af2f=_0x6c982d['charAt'](_0x2a951c++);~_0x45af2f&&(_0x1e3c6f=_0x424bfd%0x4?_0x1e3c6f*0x40+_0x45af2f:_0x45af2f,_0x424bfd++%0x4)?_0x3377ab+=String['fromCharCode'](0xff&_0x1e3c6f>>(-0x2*_0x424bfd&0x6)):0x0){_0x45af2f=_0x565388['indexOf'](_0x45af2f);}for(let _0x26613c=0x0,_0x3fe331=_0x3377ab['length'];_0x26613c<_0x3fe331;_0x26613c++){_0x1e2923+='%'+('00'+_0x3377ab['charCodeAt'](_0x26613c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1e2923);};_0x52a4['effbsx']=_0x5c1c76,_0x52a4['CITipt']={},_0x52a4['tvaWEL']=!![];}const _0x2a3816=_0x1c1d5e[0x0],_0x2568b1=_0x3bd68a+_0x2a3816,_0x64a156=_0x52a4['CITipt'][_0x2568b1];return!_0x64a156?(_0x52a48d=_0x52a4['effbsx'](_0x52a48d),_0x52a4['CITipt'][_0x2568b1]=_0x52a48d):_0x52a48d=_0x64a156,_0x52a48d;}let PORTAL_URL='',JWT='';const AUTH_ERROR={'content':[{'type':_0x195981(0x179),'text':_0x195981(0x14a)}]},server=new mcp_js_1[(_0x195981(0x153))]({'name':_0x195981(0x163),'version':_0x195981(0x1a5)},{'instructions':feedback_1[_0x195981(0x133)]}),tool=server['tool'][_0x195981(0x151)](server);tool(_0x195981(0x18a),{'keyword':zod_1['z'][_0x195981(0x178)]()[_0x195981(0x1b7)](_0x195981(0x188))},async({keyword:_0x3e10bb})=>{const _0x128560=_0x195981,_0x20b6bb={'FolFS':function(_0x4b203a,_0x5e1090,_0x37b66a){return _0x4b203a(_0x5e1090,_0x37b66a);},'QFDPN':_0x128560(0x179),'LGYXT':function(_0x3ead10,_0x4295ae){return _0x3ead10+_0x4295ae;}};if(!JWT||!PORTAL_URL)return AUTH_ERROR;const _0x3ce55c=_0x128560(0x1c3)+encodeURIComponent(_0x3e10bb),_0x414883=await _0x20b6bb[_0x128560(0x1a6)](fetch,''+PORTAL_URL+_0x3ce55c,{'headers':{'Authorization':_0x128560(0x139)+JWT}});if(!_0x414883['ok'])return await(0x0,feedback_1[_0x128560(0x1c9)])(PORTAL_URL,JWT,resolveToolName(),_0x128560(0x18a),_0x414883['status'],_0x3ce55c),{'content':[{'type':_0x128560(0x179),'text':_0x128560(0x1a7)+_0x414883[_0x128560(0x140)]}]};const _0x5d60ef=await _0x414883['json']();if(_0x5d60ef['error']||!_0x5d60ef[_0x128560(0x1d1)])return{'content':[{'type':_0x20b6bb[_0x128560(0x1b0)],'text':_0x128560(0x165)+_0x3e10bb+_0x128560(0x160)}]};return{'content':[{'type':'text','text':_0x20b6bb[_0x128560(0x142)](_0x5d60ef['content'],feedback_1[_0x128560(0x1a8)])}]};}),tool(_0x195981(0x185),feedback_1[_0x195981(0x156)],{'kind':zod_1['z'][_0x195981(0x1b1)]([_0x195981(0x1ad),_0x195981(0x1a9)])['describe'](_0x195981(0x19f)),'target':zod_1['z'][_0x195981(0x178)]()['describe']('何についてか(例:\x20agent-core,\x20@テックリード,\x20@funny-booth/wizard-orchestrator)'),'title':zod_1['z']['string']()[_0x195981(0x1b7)](_0x195981(0x173)),'detail':zod_1['z'][_0x195981(0x178)]()[_0x195981(0x1b7)](_0x195981(0x14b))},async({kind:_0xb78dd6,target:_0x12e8a1,title:_0x4aaa08,detail:_0x540627})=>{const _0x3fd57f=_0x195981,_0x4d9e46={'KwLfG':function(_0x251b66){return _0x251b66();},'PhYxk':'保守担当に送りました。ありがとうございます。作業を続けてください。'};if(!JWT||!PORTAL_URL)return AUTH_ERROR;const _0x158613=await(0x0,feedback_1['postFeedback'])(PORTAL_URL,JWT,{'tool_name':_0x4d9e46[_0x3fd57f(0x144)](resolveToolName),'kind':_0xb78dd6,'target':_0x12e8a1,'title':_0x4aaa08,'detail':_0x540627,'client_version':(0x0,feedback_1[_0x3fd57f(0x194)])()});if(!_0x158613['ok']){const _0xc6d23b=await _0x158613[_0x3fd57f(0x171)]()[_0x3fd57f(0x19d)](()=>({}));return{'content':[{'type':'text','text':_0x3fd57f(0x150)+_0x158613[_0x3fd57f(0x140)]+'):\x20'+(_0xc6d23b[_0x3fd57f(0x132)]??'')}]};}return{'content':[{'type':_0x3fd57f(0x179),'text':_0x4d9e46[_0x3fd57f(0x15c)]}]};}),tool(_0x195981(0x1ab),{},async()=>{const _0x291257=_0x195981,_0x3d5ad7={'CWcPJ':function(_0x5b4ab8,_0x3f29bd){return _0x5b4ab8||_0x3f29bd;},'rnvBQ':_0x291257(0x1ab),'fLBVZ':'/api/mcps','aOrDN':_0x291257(0x179),'dStCU':function(_0x365553,_0xadb417){return _0x365553+_0xadb417;},'WnKPK':_0x291257(0x1ce),'zchnR':_0x291257(0x16d),'YsqWX':_0x291257(0x154),'wTtGp':_0x291257(0x16b)};if(_0x3d5ad7[_0x291257(0x130)](!JWT,!PORTAL_URL))return AUTH_ERROR;const _0x327b74=await fetch(PORTAL_URL+_0x291257(0x158),{'headers':{'Authorization':_0x291257(0x139)+JWT}});if(!_0x327b74['ok'])return await(0x0,feedback_1[_0x291257(0x1c9)])(PORTAL_URL,JWT,resolveToolName(),_0x3d5ad7[_0x291257(0x1d0)],_0x327b74['status'],_0x3d5ad7[_0x291257(0x14d)]),{'content':[{'type':_0x3d5ad7['aOrDN'],'text':_0x291257(0x1a7)+_0x327b74['status']}]};const _0x47985a=await _0x327b74[_0x291257(0x171)]();return{'content':[{'type':_0x291257(0x179),'text':JSON[_0x291257(0x172)](_0x47985a,null,0x2)},{'type':_0x291257(0x179),'text':_0x3d5ad7[_0x291257(0x14f)](_0x3d5ad7[_0x291257(0x17d)]+_0x3d5ad7[_0x291257(0x157)],_0x3d5ad7[_0x291257(0x189)])+_0x3d5ad7[_0x291257(0x137)]}]};}),tool('install_mcp',{'mcp_id':zod_1['z'][_0x195981(0x178)]()[_0x195981(0x1b7)](_0x195981(0x1a3)),'env_vars':zod_1['z'][_0x195981(0x15f)](zod_1['z'][_0x195981(0x178)]())[_0x195981(0x1c5)]()[_0x195981(0x1b7)]('環境変数(例:\x20{GMAIL_TOKEN:\x20\x27xxx\x27})')},async({mcp_id:_0x202de9,env_vars:_0xf952d5})=>{const _0x4ce840=_0x195981,_0x2d1b42={'LIwWw':function(_0x576c20,_0x59a638,_0x1d5852){return _0x576c20(_0x59a638,_0x1d5852);},'zyoLr':_0x4ce840(0x1c6),'BVgfB':_0x4ce840(0x179)};if(!JWT||!PORTAL_URL)return AUTH_ERROR;const _0xb8e86b=await _0x2d1b42[_0x4ce840(0x186)](fetch,PORTAL_URL+_0x4ce840(0x1c0),{'method':_0x2d1b42[_0x4ce840(0x16c)],'headers':{'Authorization':'Bearer\x20'+JWT,'Content-Type':_0x4ce840(0x145)},'body':JSON[_0x4ce840(0x172)]({'mcp_id':_0x202de9,'env_vars':_0xf952d5})});if(!_0xb8e86b['ok'])return{'content':[{'type':_0x4ce840(0x179),'text':_0x4ce840(0x1a7)+_0xb8e86b[_0x4ce840(0x140)]}]};const _0x21ec32=await _0xb8e86b['json']();if(!_0x21ec32[_0x4ce840(0x15e)])return{'content':[{'type':_0x2d1b42[_0x4ce840(0x16e)],'text':_0x4ce840(0x1bb)}]};return new Promise(_0x4fdf2c=>{const _0x4c22ea=_0x4ce840,_0x15bc59={'IjtjP':function(_0x4393a3,_0x5d70eb){return _0x4393a3(_0x5d70eb);}};(0x0,child_process_1[_0x4c22ea(0x1bc)])(_0x21ec32['install_command'],(_0x5d37da,_0x4d076e,_0x1e71be)=>{const _0x5adacb=_0x4c22ea;if(_0x5d37da){_0x4fdf2c({'content':[{'type':_0x5adacb(0x179),'text':'インストール失敗:\x0a'+(_0x1e71be||_0x5d37da[_0x5adacb(0x196)])}]});return;}_0x15bc59[_0x5adacb(0x177)](_0x4fdf2c,{'content':[{'type':_0x5adacb(0x179),'text':_0x21ec32['name']+_0x5adacb(0x1c8)+_0x21ec32['install_command']}]});});});}),tool(_0x195981(0x168),{'current_password':zod_1['z'][_0x195981(0x178)]()['describe'](_0x195981(0x195)),'new_password':zod_1['z']['string']()[_0x195981(0x170)](0x8)[_0x195981(0x1b7)](_0x195981(0x197))},async({current_password:_0x125876,new_password:_0xf68e04})=>{const _0x218586=_0x195981,_0x856b41={'PktQW':function(_0x41750e,_0x40e76e,_0x29cdf1){return _0x41750e(_0x40e76e,_0x29cdf1);},'mytZN':'application/json','jGYLY':_0x218586(0x179),'WRQGU':_0x218586(0x19e)};if(!JWT||!PORTAL_URL)return AUTH_ERROR;const _0x1e0302=await _0x856b41[_0x218586(0x169)](fetch,PORTAL_URL+'/api/auth/change-password',{'method':_0x218586(0x1c6),'headers':{'Authorization':_0x218586(0x139)+JWT,'Content-Type':_0x856b41[_0x218586(0x17c)]},'body':JSON[_0x218586(0x172)]({'current_password':_0x125876,'new_password':_0xf68e04})});if(!_0x1e0302['ok']){const _0x211895=await _0x1e0302[_0x218586(0x171)]();return{'content':[{'type':_0x856b41[_0x218586(0x159)],'text':_0x218586(0x1aa)+(_0x211895[_0x218586(0x132)]??_0x1e0302[_0x218586(0x140)])}]};}return{'content':[{'type':_0x218586(0x179),'text':_0x856b41['WRQGU']}]};}),tool('list_secrets',{},async()=>{const _0x27f823=_0x195981,_0x2e62d5={'MdJuE':_0x27f823(0x179)},_0x5271bf=(0x0,vault_1[_0x27f823(0x182)])();return{'content':[{'type':_0x2e62d5['MdJuE'],'text':_0x5271bf[_0x27f823(0x1cd)]?'保管中のシークレット:\x0a'+_0x5271bf[_0x27f823(0x1ae)](_0x5735f9=>'-\x20'+_0x5735f9)[_0x27f823(0x146)]('\x0a'):_0x27f823(0x12f)}]};}),tool(_0x195981(0x1c4),{'name':zod_1['z'][_0x195981(0x178)]()[_0x195981(0x1b7)]('取得するシークレット名(例:\x20OPENAI_API_KEY)')},async({name:_0xd424df})=>{const _0x453b23=_0x195981,_0x256bef={'EIXEH':function(_0x5389ae,_0x3c4d8f){return _0x5389ae in _0x3c4d8f;},'JmKBx':_0x453b23(0x179)},_0x32a838=(0x0,vault_1[_0x453b23(0x167)])();if(!_0x256bef['EIXEH'](_0xd424df,_0x32a838))return{'content':[{'type':_0x256bef[_0x453b23(0x1b4)],'text':_0x453b23(0x17a)+_0xd424df+_0x453b23(0x15d)}]};return{'content':[{'type':_0x453b23(0x179),'text':_0x32a838[_0xd424df]}]};}),tool(_0x195981(0x1bf),{'name':zod_1['z'][_0x195981(0x178)]()[_0x195981(0x1b7)]('シークレット名(例:\x20OPENAI_API_KEY)'),'value':zod_1['z'][_0x195981(0x178)]()[_0x195981(0x1b7)](_0x195981(0x13a))},async({name:_0x4afb2a,value:_0x2a8bfd})=>{const _0x41c108=_0x195981,_0x6424ca={'waBtZ':_0x41c108(0x179)};return(0x0,vault_1[_0x41c108(0x1a1)])(_0x4afb2a,_0x2a8bfd),{'content':[{'type':_0x6424ca[_0x41c108(0x15b)],'text':'✅\x20シークレット\x20'+_0x4afb2a+_0x41c108(0x175)}]};}),tool('delete_secret',{'name':zod_1['z'][_0x195981(0x178)]()[_0x195981(0x1b7)]('削除するシークレット名')},async({name:_0x48e854})=>{const _0x4a179e=_0x195981,_0x1053d7=(0x0,vault_1[_0x4a179e(0x1b6)])(_0x48e854);return{'content':[{'type':_0x4a179e(0x179),'text':_0x1053d7?_0x4a179e(0x17a)+_0x48e854+_0x4a179e(0x14e):'シークレット\x20'+_0x48e854+_0x4a179e(0x17e)}]};});async function main(){const _0x4cbea9=_0x195981;if(isSecretCommand){await runSecretCommand(rawArgs[_0x4cbea9(0x181)](0x1));return;}(!process.env.TOOL_TOKEN||!process.env.PORTAL_URL)&&(process[_0x4cbea9(0x1cf)]['write'](_0x4cbea9(0x1bd)),process[_0x4cbea9(0x17b)](0x1));JWT=process.env.TOOL_TOKEN,PORTAL_URL=process.env.PORTAL_URL;const _0x18dd6c=new stdio_js_1[(_0x4cbea9(0x131))]();await server[_0x4cbea9(0x1cb)](_0x18dd6c),process[_0x4cbea9(0x1cf)][_0x4cbea9(0x14c)](_0x4cbea9(0x174));}main()['catch'](_0x502c80=>{const _0x16c706=_0x195981,_0x4a81b4={'METwG':function(_0x111d53,_0xff4f7f){return _0x111d53 instanceof _0xff4f7f;}};_0x4a81b4[_0x16c706(0x1b5)](_0x502c80,vault_1['VaultError'])&&(process[_0x16c706(0x1cf)]['write'](_0x502c80[_0x16c706(0x196)]+'\x0a'),process[_0x16c706(0x17b)](0x1)),process[_0x16c706(0x1cf)][_0x16c706(0x14c)](_0x16c706(0x1c2)+_0x502c80+'\x0a'),process[_0x16c706(0x17b)](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 _0x30ed91=_0x10f6;(function(_0x2e5f8e,_0x4ab38a){const _0x2e449b=_0x10f6,_0xc2e88f=_0x2e5f8e();while(!![]){try{const _0x129052=-parseInt(_0x2e449b(0x132))/0x1+parseInt(_0x2e449b(0x16a))/0x2+parseInt(_0x2e449b(0x1b5))/0x3*(parseInt(_0x2e449b(0x128))/0x4)+-parseInt(_0x2e449b(0x191))/0x5*(-parseInt(_0x2e449b(0x1af))/0x6)+-parseInt(_0x2e449b(0x1ab))/0x7+-parseInt(_0x2e449b(0x119))/0x8+parseInt(_0x2e449b(0x1c1))/0x9;if(_0x129052===_0x4ab38a)break;else _0xc2e88f['push'](_0xc2e88f['shift']());}catch(_0x2aa428){_0xc2e88f['push'](_0xc2e88f['shift']());}}}(_0x2c2b,0x28d10));Object[_0x30ed91(0x163)](exports,_0x30ed91(0x114),{'value':!![]}),exports[_0x30ed91(0x159)]=runLauncher;function _0x2c2b(){const _0xb1339=['v3PjCuu','BgvUz3rO','Ahr0Chm6lY9YzwDPC3rYEs5UCg1QCY5VCMCV','ChjLCgfYzu1JCa','44gt44gU44kO44o844k444kN44oZ44oi44gV5yAf6yoO44gNifvUAxGG55kW5Akd44gU5lUv57we44g/77YiDg11Eo+8IEocKUs9V+obHUobN+ocGEoaGqO','zxHPDa','ioobJowiQEEuQowpR+IdVEobP+obME+8IoEpVUwCQca','yMLUugf0Aa','uefRvuO','BwvTBY5Tza','y2f0y2G','cUMhKEw6Q+ocKUwfQoodHoodVoodQ+wfSEMaMUobQ+obVUobQoocGEobVUobL+obN++8Ih4VlMz1BM55lwjVB3rOl3zHDwX077Yj44cccG','Aw5JBhvKzxm','lMfP','Dg9mB3DLCKnHC2u','CMvHzfnLy3jLDhm','BNbT','Bg9Hzf9RBM93BgvKz2uG44oe44o844oR44gNici','v1nmmU+8IfvIDw50DE+8IEobRUs4REobI+ocIEI1T+wlLEobMEocI+w/HEIMGEobJoobGUocIUobVUobMEoaGGOk','5l+D5A2y44gv44km44gF6kQn6kI85Oof5AcX44gm54sH5yQ544gN44gx44gF44cc5yAn44oT44kW44kK44oZ44gx44g+44gz44cccG','q2XHDwrLienVzguGq0XjicHJBgf1zguPioobJoocPoodS+ocUEodIoodVoodQ+obLEocJoobPUobHoocI+obI+EIUUIQJEobL+obPUobJ+obOoobLEobHooaGGO','ywrK','ls1OzwXW','CMvMCMvZAa','t0rIv0i','A25VD2XLzgDLx2TLExDVCMq','44gt44gU44kO44o844k444kN44oZ44oi44gV44gu5Awr57se44gU44ox44oP44oZ44gN44gV5yIP55sO44gN44gn44g+44gB44kt44cc','cI0G','CMvMCMvZAf90B2TLBG','CMvHzezPBgvtEw5J','lw1JCc0','zxHPC3rZu3LUyW','D3zhCfy','BM93','Dg1WzgLY','D3jPDgu','CNvUtgf1BMnOzxi','BLvuDuy','rwfzz2K','DhjPBq','CxvLC3rPB24','sNnNzLG','cGRIGlSG5zcm5QkXtunq44gU5lIa6yoO44ks5RQw5ykz44gN44gn44gA44cb44gt44gU44k744od44k344oN44oZ44gN44gV5l2/44gi44g+44gB44kt44cc5B+f6kAb44gQ44kj44oM44o844k244o844gR5lYD44gi44gM44gp44gG44gv44geoGOTia','AwDUB3jL','ANnVBG','zNjVBq','zgvMAw5LuhjVCgvYDhK','AxLHz24','77Yj44cc44oq44od44kV44kW44oP44kM44oZ44oj44gN5PU05PAW44gx44g+44gz77Yi5QYH5zUE6lw35yUv44gl44kj5y+n5PIG77Yj44cccG','BwnW','zxHW','m3WXFdb8nhWY','lI9Ty3bqywnRywDLCW','mZG2mZa0zeX3v3DH','zhPbCva','BwvZC2fNzq','ioobQ+odREocSoocPoodS+obL+obPUobJ+obOoobLEobHooaGGO','BM9Kzq','BwLNCMf0zvrVB2XwyxvSDa','CMvWBgfJzq','txvxB0W','cGOTls0k8j+tNsdJG5FJG63JGRJJGQFJGQ/JG4JJG6hJG6i6cG','tvDtrxe','y2XHDwrL','tLvgr28','DMvYC2LVBG','ue9tva','CgfYC2u','C3rKB3v0','s01oz0G','44or44k544oV44o844ojoIa','CMvHzfrVA2vUCW','Aw5OzxjPDa','DxrMltG','CxvLC3rPB25iAwrKzw4','l2fWAs90B29SCY8','CgfJA2fNzv9Uyw1L','vMf1BhrfCNjVCG','z2T4t3y','C3bHD25tEw5J','uxPMzKK','4PYfioodREocSoocPoodS+obL+obVUobL+obN+oaGGO','C3rKzxjY','vwDIA1i','4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4PsacG','qMvHCMvYia','cUkaUYdPH5hLUQVJGAVLKiZJGzJLKi3LIy3JGAFLGktJGA7PGzxJGyBNP5JLR4BJGyZJGylJGORJGB7JGzK6ia','yxbWBgLJyxrPB24VANnVBG','cUkaUYdML6FJGytPH5hLUQVJGPlLHAJJG4tJG7ZJG6VLHBhPGjRJGA7PH5hLUQVJGBJNP7VJGzVJGB7JGzVJGPpJGAFJGzFJGz/VViJML6FJGytPH5hLUQVJGA/MROVJGzFJGABJGytJGB7JGzNVViK6ia','zvnxsuW','AM9PBG','l2fWAs9Hz2vUDhmVC2XVDc8','mZbozKLZCKC','A0HHrNa','6kQn6kI844gR5AsX5Pwx44gx44g+44gx44gF44cc44gt44gU44kI44kR44kM44oZ44oi44gR5QIP6zMq44gm44gc44kl44gl44gu56k66kQn44gp44gG44gv44ge44cccG','qNDqEey','y2XHDwrLioobRUI1T+wlLEobQ+wKSEAvL+obL+obVUobL+obNZOG','wMD0zfO','Dg9tDhjPBMC','ls1ZDhjPy3qTBwnWlwnVBMzPzW','vuf5Avu','Dg9Rzw4','6kAb44kj44gQ44ge5PA544ksihnLy3jLDcbYBsdJGAFMTOJJGzFJGABJGy/JGAdJGzxJGytJGiik','C3bHD24','y2XLyxjuB2TLBNm','Dg9VBe5HBwu','qgz1BM55lwjVB3rOl2fNzw50lwnVCMu','BMHNu3i','CMvMCMvZAeLUqMfJA2DYB3vUza','44cc5l2/44kp44km44kl44gU44gV44cmqooaJEobRUs7MoobI+obQUobHoAwUEobP+obMEoaGG','ChvZAa','CgXHDgzVCM0','v1vZuMW','44k144o844oq44o844gR5O6L57AA44gN44gn44g+44gB44kt44gN44gx44gF44cc44on44od44oi44oV44o844kV44ks56k66kQn44gx44gM44gp44gG44gv44ge44cccG','Cgf0Aa','Aw5ZDgfSBa','Aw5KzxGUANm','ic8G','mtu3ntKYnevSrgXkrW','ENzMzKu','zxjYB3i','Dw5HDxrOB3jPEMvK','mJKXnZKYueP0t0HQ','u1zeuvm','zw52','cVcFLjqG5PAW44gx44ge44oq44o844k444oN44oZia','44gU44kO44o844k444kN44oZ44oi44gm6kAl44gK44gl44kk44g+44gB44kt44gN44gx44gF44cccG','zgvJBgfYzwrfBNy','nJu5otfktfHpqu4','CgLK','y2HPBgrFChjVy2vZCW','44gv44gc5AEl44kb44g+44gx44kh44ggcGO','D2LUmZi','r2DpAvG','icaXlIbqB3DLCLnOzwXSioocKUEUOEEqHUIaHEobQoobL+obPUMwI+obJsaID3nSic0TAw5ZDgfSBciG44ks5A6F6kgm44gx44gM5yAn6lw35yUvcG','CMvXDwLYzxnFDw5PEa','lI92yxvSDa','cUwqJoAISu1duoobRUs4GoMdQoocKUA6LUwcMEobP+obJEobVUobM+ocK+obP+obL+obN++8IoobK+obRUocU+odG+ocT+odP+odS+obP+obR+s9V+obIoobVUobM+ocK++8ItOklsa','BwfW','BMfTzq','mJKWmZiWmLrAqMDsAq','44oT44kW44kK44oZ5AsX5PwxoIa','BwLNCMf0zwq','CgfJA2fNzu5HBwu','x19LC01VzhvSzq','C3rYAw5NAwz5','z3jLzxrPBMC','44oT44kW44kK44oZ44gRm+wBNUwKSEAvL+obL+obVUobL+obN+oaGUE1GUs6HUobL+obVUobMEoaGGO','DgLTzw91Da','mJi2ndC4ne9OwM9hqq','DfrrBNq','wNn6zxO','4Oc7ios7LUobRUocQoodVoocUoocP+odS+odIoobRYbxAw5KB3DZioobRUobVUobVUobLowiQEEuQoobHoobN+obOoobKEobVUobMEoaGGO','AND0','BgLZDfnLy3jLDe5HBwvZ','C2vSzwn0rw52','l2fWAs9HDxrOl2XVz2LU','AxnbCNjHEq','iIdJGPlOQQ3JGB/OVRZJGPpJGAFJGyVJGONLP4VJGOhJGABJGy/JGAdJGzxJGytJGii','kEoaGGO','C2f2zvrVA2vUCW','z3fvqMG','l2XHDgvZDa','l21JChm','mJHsuKTiuwu','lI9WCM9TChq','CgfJA2fNzvzLCNnPB24','C3rHDhvZ','C3bSAxq','icaZlIbvyNvUDhuG44gU5lIT44gN5Ps544kb44gM44gt44gU44kZ44oE44oZ44oj44ks5A6F6kgm44gz44klcGO','q1fSs0y','zxHLy1bHDgG','CgfJA2fNzs5QC29U','Cg9YDgfSvxjS','mJG2mdG3yNPuvNj5','vgfJB1u','qgXHDgvZDa'];_0x2c2b=function(){return _0xb1339;};return _0x2c2b();}const fs_1=require('fs'),os_1=require('os'),path_1=require(_0x30ed91(0x1a7)),child_process_1=require(_0x30ed91(0x1b7)),vault_1=require(_0x30ed91(0x1bd)),prompt_1=require(_0x30ed91(0x129)),mcpPackages_1=require(_0x30ed91(0x169));function loadConfig(_0xe81e29){const _0x575e3a=_0x30ed91,_0x18d4b3={'hXVAM':'utf-8'},_0x32fc5f=_0xe81e29??JSON[_0x575e3a(0x178)]((0x0,fs_1[_0x575e3a(0x152)])((0x0,path_1[_0x575e3a(0x18f)])(__dirname,'..','launcher.config.json'),_0x18d4b3['hXVAM'])),_0x1b4611=process.env.PORTAL_URL||_0x32fc5f[_0x575e3a(0x131)],_0x1e9d0e=process.env.TOOL_NAME||_0x32fc5f[_0x575e3a(0x19e)];return{'toolName':_0x1e9d0e,'portalUrl':_0x1b4611,'packageName':_0x32fc5f[_0x575e3a(0x113)],'packageVersion':_0x32fc5f[_0x575e3a(0x12a)]};}function _0x10f6(_0x2b52a4,_0x12e556){_0x2b52a4=_0x2b52a4-0x111;const _0x2c2b72=_0x2c2b();let _0x10f60f=_0x2c2b72[_0x2b52a4];if(_0x10f6['kDtjfj']===undefined){var _0x51cca9=function(_0x2ef1b6){const _0x1ff13b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x477e9d='',_0x255ebe='';for(let _0x224f90=0x0,_0x535281,_0x145d62,_0x411060=0x0;_0x145d62=_0x2ef1b6['charAt'](_0x411060++);~_0x145d62&&(_0x535281=_0x224f90%0x4?_0x535281*0x40+_0x145d62:_0x145d62,_0x224f90++%0x4)?_0x477e9d+=String['fromCharCode'](0xff&_0x535281>>(-0x2*_0x224f90&0x6)):0x0){_0x145d62=_0x1ff13b['indexOf'](_0x145d62);}for(let _0x19c557=0x0,_0x1e387e=_0x477e9d['length'];_0x19c557<_0x1e387e;_0x19c557++){_0x255ebe+='%'+('00'+_0x477e9d['charCodeAt'](_0x19c557)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x255ebe);};_0x10f6['YbtWrS']=_0x51cca9,_0x10f6['QsCLfe']={},_0x10f6['kDtjfj']=!![];}const _0x10d737=_0x2c2b72[0x0],_0x364697=_0x2b52a4+_0x10d737,_0x4ce777=_0x10f6['QsCLfe'][_0x364697];return!_0x4ce777?(_0x10f60f=_0x10f6['YbtWrS'](_0x10f60f),_0x10f6['QsCLfe'][_0x364697]=_0x10f60f):_0x10f60f=_0x4ce777,_0x10f60f;}function isJwtExpired(_0xb0ecf8){const _0x42f6db=_0x30ed91,_0x5a181a={'BDsDV':'base64url','NUFGo':function(_0x3d3379,_0x3462f7){return _0x3d3379<_0x3462f7;},'QzffI':function(_0x533c3a,_0x1cef7e){return _0x533c3a+_0x1cef7e;}};try{const _0x51319f=JSON[_0x42f6db(0x178)](Buffer[_0x42f6db(0x162)](_0xb0ecf8['split']('.')[0x1],_0x5a181a['BDsDV'])[_0x42f6db(0x197)]());return _0x5a181a[_0x42f6db(0x175)](_0x51319f[_0x42f6db(0x167)]*0x3e8,_0x5a181a[_0x42f6db(0x185)](Date[_0x42f6db(0x156)](),0xea60));}catch{return!![];}}async function interactiveLogin(_0xe87dca){const _0x99b30e=_0x30ed91,_0x4b645b={'bfuVF':'メールアドレス:\x20','EaYgi':_0x99b30e(0x17b),'BwPxF':function(_0x3758f0,_0x2beeb1,_0x1ffde0){return _0x3758f0(_0x2beeb1,_0x1ffde0);}};process[_0x99b30e(0x179)][_0x99b30e(0x158)]('\x0a'+_0xe87dca['toolName']+_0x99b30e(0x16d));for(let _0x379c41=0x0;_0x379c41<0x3;_0x379c41++){const _0x4b61c2=await(0x0,prompt_1[_0x99b30e(0x15d)])(_0x4b645b['bfuVF']),_0x1a027d=await(0x0,prompt_1[_0x99b30e(0x17f)])(_0x4b645b[_0x99b30e(0x15b)]);try{const _0x4abdbd=await _0x4b645b[_0x99b30e(0x194)](fetch,_0xe87dca['portalUrl']+_0x99b30e(0x120),{'method':_0x99b30e(0x177),'headers':{'Content-Type':_0x99b30e(0x18c)},'body':JSON[_0x99b30e(0x115)]({'email':_0x4b61c2,'password':_0x1a027d})}),_0x2d0936=await _0x4abdbd[_0x99b30e(0x161)]();if(_0x4abdbd['ok']&&_0x2d0936[_0x99b30e(0x19a)])return process[_0x99b30e(0x179)][_0x99b30e(0x158)](_0x99b30e(0x186)),{'jwt':_0x2d0936[_0x99b30e(0x19a)],'refresh':_0x2d0936[_0x99b30e(0x151)]??null};process['stderr'][_0x99b30e(0x158)](_0x99b30e(0x111)+(_0x2d0936[_0x99b30e(0x1ad)]??'認証エラー')+'\x0a');}catch{process[_0x99b30e(0x187)][_0x99b30e(0x158)](_0x99b30e(0x1a6));}}process[_0x99b30e(0x187)][_0x99b30e(0x158)](_0x99b30e(0x117)),process['exit'](0x1);}async function refreshTokens(_0x2be95c,_0x24b336){const _0x380a37=_0x30ed91,_0x4a2d16={'tTQnt':function(_0x123b5b,_0x5ac280,_0x53e3c0){return _0x123b5b(_0x5ac280,_0x53e3c0);}};try{const _0x5e5ecf=await _0x4a2d16[_0x380a37(0x11a)](fetch,_0x2be95c['portalUrl']+'/api/auth/refresh',{'method':'POST','headers':{'Content-Type':_0x380a37(0x18c)},'body':JSON[_0x380a37(0x115)]({'refresh_token':_0x24b336})});if(!_0x5e5ecf['ok'])return null;const _0x3d6f65=await _0x5e5ecf[_0x380a37(0x161)]();if(!_0x3d6f65[_0x380a37(0x19a)])return null;return{'jwt':_0x3d6f65[_0x380a37(0x19a)],'refresh':_0x3d6f65['refresh_token']??_0x24b336};}catch{return null;}}async function ensureJwt(_0xce4c4){const _0x59820c=_0x30ed91,_0x510bcd={'ODbWB':function(_0x3f668a,_0x40cc6c){return _0x3f668a(_0x40cc6c);}},_0x45d453=(0x0,vault_1[_0x59820c(0x17c)])(_0xce4c4[_0x59820c(0x19e)]);if(_0x45d453&&!isJwtExpired(_0x45d453[_0x59820c(0x11d)]))return _0x45d453[_0x59820c(0x11d)];if(_0x45d453?.[_0x59820c(0x14c)]){const _0x3bdaa2=await refreshTokens(_0xce4c4,_0x45d453['refresh']);if(_0x3bdaa2)return(0x0,vault_1[_0x59820c(0x124)])(_0xce4c4[_0x59820c(0x19e)],_0x3bdaa2),_0x3bdaa2[_0x59820c(0x11d)];}const _0x3da840=await _0x510bcd[_0x59820c(0x14d)](interactiveLogin,_0xce4c4);return(0x0,vault_1[_0x59820c(0x124)])(_0xce4c4[_0x59820c(0x19e)],_0x3da840),_0x3da840[_0x59820c(0x11d)];}class AuthError extends Error{}async function resolveSlot(_0x41c801,_0x77e615,_0x2beb67){const _0x3afeda=_0x30ed91,_0x4b2211={'neOTH':function(_0x22f767,_0x472cc8){return _0x22f767===_0x472cc8;},'gkxOv':function(_0x48442a,_0x5751ed){return _0x48442a===_0x5751ed;}},_0x1801de=_0x41c801[_0x3afeda(0x131)]+_0x3afeda(0x190)+_0x2beb67+'?tool_name='+encodeURIComponent(_0x41c801[_0x3afeda(0x19e)]),_0x19836a=await fetch(_0x1801de,{'headers':{'Authorization':_0x3afeda(0x18a)+_0x77e615}});if(_0x4b2211['neOTH'](_0x19836a[_0x3afeda(0x12b)],0x191))throw new AuthError(_0x3afeda(0x1ae));if(_0x4b2211[_0x3afeda(0x183)](_0x19836a[_0x3afeda(0x12b)],0x193)){const _0x3ad6b2=await _0x19836a['json']()[_0x3afeda(0x13f)](()=>({}));process[_0x3afeda(0x187)][_0x3afeda(0x158)]('\x0a'+(_0x3ad6b2[_0x3afeda(0x1ad)]??_0x3afeda(0x14f))+'\x0a'),process[_0x3afeda(0x13a)](0x1);}!_0x19836a['ok']&&(process[_0x3afeda(0x187)][_0x3afeda(0x158)]('エージェント情報の取得に失敗しました\x20(HTTP\x20'+_0x19836a[_0x3afeda(0x12b)]+_0x3afeda(0x123)),process['exit'](0x1));const _0x25199f=await _0x19836a['json']();return(_0x25199f[_0x3afeda(0x1ad)]||!_0x25199f[_0x3afeda(0x14e)])&&(process[_0x3afeda(0x187)]['write']('スロット'+_0x2beb67+_0x3afeda(0x1b3)),process[_0x3afeda(0x13a)](0x1)),{'knowledge_keyword':_0x25199f[_0x3afeda(0x14e)],'greeting':_0x25199f[_0x3afeda(0x116)]??'','name':_0x25199f['name']??'','requires_unix':_0x25199f[_0x3afeda(0x1bc)]??![]};}function readMemo(){const _0x81c593=_0x30ed91,_0x3a0c4b={'dzAqP':_0x81c593(0x13e),'WzIqE':_0x81c593(0x17e)},_0x541eaa=(0x0,path_1[_0x81c593(0x18f)])(process['cwd'](),_0x81c593(0x142),_0x3a0c4b[_0x81c593(0x16b)]);if(!(0x0,fs_1[_0x81c593(0x154)])(_0x541eaa))return'';try{const _0xd94cf7=(0x0,fs_1[_0x81c593(0x152)])(_0x541eaa,_0x3a0c4b[_0x81c593(0x135)])[_0x81c593(0x15c)]();return _0xd94cf7?_0x81c593(0x172)+_0xd94cf7:'';}catch{return'';}}function buildGreeting(_0x244c33,_0x1dfd59,_0x37af0e){const _0x5bea8c=_0x30ed91,_0xa28135={'YcxnD':function(_0x91e80c,_0x321dde){return _0x91e80c+_0x321dde;},'kHaFp':_0x5bea8c(0x1aa),'wylXh':function(_0x500ae0,_0x47086b){return _0x500ae0+_0x47086b;}},_0x337573=_0xa28135['YcxnD'](_0xa28135['YcxnD']('>\x20'+_0x244c33[_0x5bea8c(0x19e)]+'\x20に接続しました\x0a\x0a'+(''+_0x244c33[_0x5bea8c(0x19e)]+(_0x1dfd59[_0x5bea8c(0x1c0)]?_0xa28135[_0x5bea8c(0x192)]+_0x1dfd59[_0x5bea8c(0x1c0)]:'')+'\x0a')+_0x5bea8c(0x189),_0x5bea8c(0x1b8))+('このセッションでは\x20'+_0x244c33[_0x5bea8c(0x19e)]+'\x20MCP\x20の参考資料\x20\x22'+_0x1dfd59[_0x5bea8c(0x14e)]+'\x22\x20が利用可能です。\x0a'),_0x5bea8c(0x146)+_0x1dfd59[_0x5bea8c(0x14e)]+_0x5bea8c(0x122)),_0xb9c9f7=_0x1dfd59[_0x5bea8c(0x116)]?'\x0a\x0a'+_0x1dfd59[_0x5bea8c(0x116)]:'';return _0xa28135['wylXh'](_0x337573,_0xb9c9f7)+_0x37af0e;}function claudeSupportsStrictMcpConfig(){const _0x18b4da=_0x30ed91,_0x3071ea={'MWSEq':_0x18b4da(0x174),'UAyiU':_0x18b4da(0x17e),'ZgtdZ':'--strict-mcp-config'};try{const _0x55c124=(0x0,child_process_1[_0x18b4da(0x184)])(_0x3071ea[_0x18b4da(0x173)],[_0x18b4da(0x14b)],{'encoding':_0x3071ea[_0x18b4da(0x199)]});return(_0x55c124[_0x18b4da(0x179)]??'')['includes'](_0x3071ea[_0x18b4da(0x196)]);}catch{return![];}}async function fetchBundledMcps(_0x2abf8a,_0x14021e){const _0x258e5a=_0x30ed91;try{const _0x356d53=_0x2abf8a['portalUrl']+_0x258e5a(0x180)+encodeURIComponent(_0x2abf8a[_0x258e5a(0x19e)])+_0x258e5a(0x127),_0x2ac04d=await fetch(_0x356d53,{'headers':{'Authorization':'Bearer\x20'+_0x14021e}});if(!_0x2ac04d['ok'])return[];const _0x3b37e9=await _0x2ac04d[_0x258e5a(0x161)]();return Array[_0x258e5a(0x121)](_0x3b37e9)?_0x3b37e9:[];}catch{return[];}}function mcpKey(_0x15b161,_0x48e08f){const _0x42de7e=_0x30ed91;let _0x80ec1e=_0x15b161[_0x42de7e(0x170)](/[^a-zA-Z0-9]+/g,'-')[_0x42de7e(0x170)](/^-+|-+$/g,'')[_0x42de7e(0x143)]()||_0x42de7e(0x166),_0x550393=_0x80ec1e,_0x4c3fef=0x2;while(_0x48e08f['has'](_0x550393))_0x550393=_0x80ec1e+'-'+_0x4c3fef++;return _0x48e08f[_0x42de7e(0x14a)](_0x550393),_0x550393;}function launchClaude(_0x52c952,_0x59d3d5,_0x21631f,_0x4de908,_0x331eac){const _0x3ac566=_0x30ed91,_0xf070e1={'WUsRl':_0x3ac566(0x1a9),'Zszez':function(_0x3fff48,_0x4180d1,_0x5b5e4f){return _0x3fff48(_0x4180d1,_0x5b5e4f);},'pzWtR':'--dangerously-skip-permissions','zvffE':'--mcp-config','UgbkR':function(_0x187fa9){return _0x187fa9();},'TacoU':_0x3ac566(0x17d)},_0x289e0a=(0x0,path_1['join'])(__dirname,_0xf070e1[_0x3ac566(0x1a5)]),_0x3f970d=_0x52c952[_0x3ac566(0x19e)][_0x3ac566(0x143)](),_0x1e822e={[_0x3f970d]:{'command':_0x3ac566(0x16e),'args':[_0x289e0a],'env':{'TOOL_NAME':_0x52c952[_0x3ac566(0x19e)],'TOOL_TOKEN':_0x59d3d5,'PORTAL_URL':_0x52c952[_0x3ac566(0x131)],'TOOL_KEYWORD':_0x21631f[_0x3ac566(0x14e)],'TOOL_LANGUAGE':'ja'}}},_0x584c8c=(0x0,vault_1[_0x3ac566(0x144)])(),_0x48927c=(0x0,path_1['join'])((0x0,os_1[_0x3ac566(0x157)])(),_0x3f970d+_0x3ac566(0x153)+process[_0x3ac566(0x1b6)]+'-'+Date[_0x3ac566(0x156)]()+'.json'),_0x502c2c={'PORTAL_URL':_0x52c952[_0x3ac566(0x131)],'TOOL_TOKEN':_0x59d3d5,'FB_MCP_CONFIG':_0x48927c},_0x17cd5a=new Set([_0x3f970d]),_0x331457=[],_0x25d8ea=[];for(const _0x41b6ed of _0x331eac){if(!_0x41b6ed['package_name'])continue;let _0x20cb1e;try{_0x20cb1e=(0x0,mcpPackages_1[_0x3ac566(0x138)])(_0x41b6ed[_0x3ac566(0x181)]);}catch(_0x4d9d2c){_0x25d8ea[_0x3ac566(0x1a3)](_0x41b6ed['package_name']+':\x20'+_0x4d9d2c[_0x3ac566(0x16c)]);continue;}_0x331457['push'](_0x20cb1e),_0x1e822e[_0xf070e1[_0x3ac566(0x11b)](mcpKey,_0x41b6ed[_0x3ac566(0x181)],_0x17cd5a)]={'command':process[_0x3ac566(0x12f)],'args':[_0x20cb1e[_0x3ac566(0x13c)]],'env':{...(0x0,mcpPackages_1[_0x3ac566(0x11f)])(_0x20cb1e[_0x3ac566(0x1b4)],_0x502c2c),..._0x41b6ed[_0x3ac566(0x1b1)]??{},...(0x0,mcpPackages_1['selectEnv'])(_0x20cb1e[_0x3ac566(0x1b4)],_0x584c8c)}};}_0x25d8ea[_0x3ac566(0x136)]&&(process['stderr']['write'](_0x3ac566(0x1be)+_0x25d8ea[_0x3ac566(0x18f)](_0x3ac566(0x150))+'\x0a\x0a'),_0x4de908+=_0x3ac566(0x15f)+_0x25d8ea[_0x3ac566(0x18f)](_0x3ac566(0x150)));const _0x1ba82c={'mcpServers':_0x1e822e};(0x0,fs_1['writeFileSync'])(_0x48927c,JSON[_0x3ac566(0x115)](_0x1ba82c),{'encoding':_0x3ac566(0x17e),'mode':0x180});const _0x4e5868=[_0x4de908,_0xf070e1['pzWtR'],_0xf070e1[_0x3ac566(0x1ac)],_0x48927c];if(_0xf070e1[_0x3ac566(0x188)](claudeSupportsStrictMcpConfig))_0x4e5868[_0x3ac566(0x1a3)](_0x3ac566(0x198));const _0xfedaff=(0x0,child_process_1[_0x3ac566(0x19c)])(_0x3ac566(0x174),_0x4e5868,{'stdio':_0xf070e1[_0x3ac566(0x133)]});_0xfedaff['on']('error',_0xee73e1=>{const _0x5048a0=_0x3ac566;process[_0x5048a0(0x187)][_0x5048a0(0x158)](_0x5048a0(0x195)+_0xee73e1[_0x5048a0(0x16c)]+'\x0a'),process['stderr']['write'](_0x5048a0(0x149)),process[_0x5048a0(0x13a)](0x1);}),_0xfedaff['on'](_0x3ac566(0x13a),_0x5cea48=>process[_0x3ac566(0x13a)](_0x5cea48??0x0)),void(0x0,mcpPackages_1[_0x3ac566(0x1a1)])(_0x331457);}const PACKAGE_NAME=_0x30ed91(0x19f);function isNewer(_0x3f9fad,_0x21b08e){const _0x4c265f=_0x30ed91,_0x4623a0={'lsmsc':function(_0x5db8f9,_0x365138){return _0x5db8f9<_0x365138;},'nhgSr':function(_0x5b1d66,_0x298fe7){return _0x5b1d66>_0x298fe7;}},_0x540e3d=_0x3f9fad[_0x4c265f(0x12c)]('.')[_0x4c265f(0x1bf)](Number),_0x2ebae7=_0x21b08e[_0x4c265f(0x12c)]('.')[_0x4c265f(0x1bf)](Number);for(let _0x2d8096=0x0;_0x4623a0['lsmsc'](_0x2d8096,0x3);_0x2d8096++){if(_0x4623a0[_0x4c265f(0x1a0)](_0x540e3d[_0x2d8096]||0x0,_0x2ebae7[_0x2d8096]||0x0))return!![];if((_0x540e3d[_0x2d8096]||0x0)<(_0x2ebae7[_0x2d8096]||0x0))return![];}return![];}async function checkForUpdate(_0x16e052){const _0x542f71=_0x30ed91,_0x4bc4cd={'nUTuF':_0x542f71(0x130),'KMNgH':function(_0x37f9a5,_0x2a5876,_0x3fbeed){return _0x37f9a5(_0x2a5876,_0x3fbeed);},'PAkUJ':_0x542f71(0x1a8)};try{const _0x27e9ec=_0x16e052[_0x542f71(0x113)]||PACKAGE_NAME,_0xcafc7b=_0x16e052[_0x542f71(0x12a)]||JSON['parse']((0x0,fs_1[_0x542f71(0x152)])((0x0,path_1[_0x542f71(0x18f)])(__dirname,'..',_0x4bc4cd[_0x542f71(0x15a)]),'utf-8'))[_0x542f71(0x176)],_0x562b50=await fetch(_0x542f71(0x137)+_0x27e9ec+_0x542f71(0x126),{'signal':AbortSignal[_0x542f71(0x118)](0xbb8)});if(!_0x562b50['ok'])return;const _0x222576=await _0x562b50[_0x542f71(0x161)]();if(_0x222576[_0x542f71(0x176)]&&_0x4bc4cd[_0x542f71(0x17a)](isNewer,_0x222576[_0x542f71(0x176)],_0xcafc7b)){process['stdout']['write'](_0x542f71(0x1b2)+_0x222576[_0x542f71(0x176)]+_0x542f71(0x13b)+_0xcafc7b+_0x542f71(0x165));const _0x1d4186=(0x0,child_process_1['spawn'])(_0x542f71(0x145),[_0x4bc4cd[_0x542f71(0x13d)],'-g',_0x27e9ec+_0x542f71(0x134)],{'detached':!![],'stdio':_0x542f71(0x160),'shell':process[_0x542f71(0x1a4)]===_0x542f71(0x1b9)});_0x1d4186['unref']();}}catch{}}async function runLauncher(_0xbcb2da,_0xccfb3d){const _0x46c0b4=_0x30ed91,_0x3a80d0={'iyagn':function(_0x3c4f14,_0x4623be,_0x49e5ae){return _0x3c4f14(_0x4623be,_0x49e5ae);}},_0x43488a=loadConfig(_0xccfb3d);await checkForUpdate(_0x43488a);try{await _0x3a80d0[_0x46c0b4(0x164)](runWithVault,_0x43488a,_0xbcb2da);}catch(_0x93ae2e){if(!(_0x93ae2e instanceof vault_1[_0x46c0b4(0x182)]))throw _0x93ae2e;process['stderr'][_0x46c0b4(0x158)]('\x0a'+_0x93ae2e[_0x46c0b4(0x16c)]+'\x0a'),process[_0x46c0b4(0x13a)](0x1);}}async function runWithVault(_0x1fd057,_0x137e4d){const _0x54a2f7=_0x30ed91,_0x491654={'CQlKF':_0x54a2f7(0x140),'wvGpV':function(_0x5aa480,_0x5a0bf9){return _0x5aa480+_0x5a0bf9;},'eiQfm':function(_0x50e9f9,_0x3e306b,_0x263215,_0x3cf8c5){return _0x50e9f9(_0x3e306b,_0x263215,_0x3cf8c5);},'uZQIv':_0x54a2f7(0x168),'SVDQS':function(_0x20d636,_0x46565f){return _0x20d636 instanceof _0x46565f;},'gqUBh':function(_0x3217e3,_0x5ef789){return _0x3217e3 instanceof _0x5ef789;},'IXoiU':function(_0x2fb3db,_0x47528c){return _0x2fb3db(_0x47528c);},'eSWIL':function(_0xa0833,_0x2b5061){return _0xa0833===_0x2b5061;},'JsgfX':function(_0x264428,_0x105127){return _0x264428+_0x105127;},'MuWoL':function(_0xae32dd,_0x316ad8){return _0xae32dd+_0x316ad8;},'GgOiX':function(_0x40665d,_0x6bab0a,_0x3530ce,_0x5fde93,_0x3ac0f5,_0x1b748a){return _0x40665d(_0x6bab0a,_0x3530ce,_0x5fde93,_0x3ac0f5,_0x1b748a);}};try{const _0x213f82=(0x0,vault_1[_0x54a2f7(0x16f)])(_0x1fd057[_0x54a2f7(0x19e)]);if(_0x213f82[_0x54a2f7(0x112)])process['stdout'][_0x54a2f7(0x158)](_0x491654[_0x54a2f7(0x12e)]);}catch(_0x2ca655){process[_0x54a2f7(0x187)]['write'](_0x54a2f7(0x18d)+_0x2ca655['message']+'\x0a');}const _0x2d08dd=[...new Set((0x0,vault_1[_0x54a2f7(0x11e)])()['filter'](_0x308823=>_0x308823[_0x54a2f7(0x141)]('@'))[_0x54a2f7(0x1bf)](_0x2a9e31=>_0x2a9e31[_0x54a2f7(0x12c)]('@')[0x0]))];_0x2d08dd[_0x54a2f7(0x136)]&&process[_0x54a2f7(0x179)]['write'](_0x491654[_0x54a2f7(0x155)](_0x54a2f7(0x18b)+_0x2d08dd[_0x54a2f7(0x18f)](',\x20')+_0x54a2f7(0x1a2),_0x54a2f7(0x19b)));let _0x33a30d=await ensureJwt(_0x1fd057),_0x5b63fe;try{_0x5b63fe=await _0x491654['eiQfm'](resolveSlot,_0x1fd057,_0x33a30d,_0x137e4d);}catch(_0x4627ff){const _0x38a968=_0x491654['uZQIv'][_0x54a2f7(0x12c)]('|');let _0x5a031d=0x0;while(!![]){switch(_0x38a968[_0x5a031d++]){case'0':(0x0,vault_1[_0x54a2f7(0x19d)])(_0x1fd057[_0x54a2f7(0x19e)]);continue;case'1':process[_0x54a2f7(0x187)][_0x54a2f7(0x158)](_0x54a2f7(0x148));continue;case'2':try{_0x5b63fe=await _0x491654['eiQfm'](resolveSlot,_0x1fd057,_0x33a30d,_0x137e4d);}catch(_0x5ddf24){_0x491654[_0x54a2f7(0x1b0)](_0x5ddf24,AuthError)&&(process[_0x54a2f7(0x187)][_0x54a2f7(0x158)](_0x54a2f7(0x193)),process['exit'](0x1));throw _0x5ddf24;}continue;case'3':if(!_0x491654[_0x54a2f7(0x125)](_0x4627ff,AuthError))throw _0x4627ff;continue;case'4':_0x33a30d=await _0x491654['IXoiU'](ensureJwt,_0x1fd057);continue;}break;}}_0x5b63fe[_0x54a2f7(0x1bc)]&&_0x491654[_0x54a2f7(0x18e)](process['platform'],'win32')&&(process[_0x54a2f7(0x187)][_0x54a2f7(0x158)](_0x491654[_0x54a2f7(0x15e)](_0x491654[_0x54a2f7(0x171)]('\x0a「'+_0x5b63fe[_0x54a2f7(0x1c0)]+'」は\x20Windows\x20のままでは起動できません。\x0a\x0a'+_0x54a2f7(0x139)+_0x54a2f7(0x147),'対処:\x0a'),_0x54a2f7(0x1bb))+'\x20\x202.\x20スタートメニューから\x20Ubuntu\x20を開く\x0a'+_0x54a2f7(0x12d)+_0x54a2f7(0x11c)),process[_0x54a2f7(0x13a)](0x1));const _0x192ead=await fetchBundledMcps(_0x1fd057,_0x33a30d),_0x1913e4=readMemo(),_0x3d607a=buildGreeting(_0x1fd057,_0x5b63fe,_0x1913e4);_0x491654[_0x54a2f7(0x1ba)](launchClaude,_0x1fd057,_0x33a30d,_0x5b63fe,_0x3d607a,_0x192ead);}
@@ -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 _0x2dc25b=_0x3c18;(function(_0x52903b,_0x18e715){const _0x2f3d87=_0x3c18,_0x498dca=_0x52903b();while(!![]){try{const _0x3f7ce7=parseInt(_0x2f3d87(0xa4))/0x1+-parseInt(_0x2f3d87(0xae))/0x2+-parseInt(_0x2f3d87(0xbe))/0x3+parseInt(_0x2f3d87(0x10e))/0x4+-parseInt(_0x2f3d87(0x10d))/0x5+parseInt(_0x2f3d87(0xf2))/0x6+parseInt(_0x2f3d87(0xfd))/0x7*(-parseInt(_0x2f3d87(0xa9))/0x8);if(_0x3f7ce7===_0x18e715)break;else _0x498dca['push'](_0x498dca['shift']());}catch(_0x5602f3){_0x498dca['push'](_0x498dca['shift']());}}}(_0x4d11,0xb1a8b));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports[_0x2dc25b(0xc2)]=exports['KEEP_VERSIONS']=void 0x0,exports[_0x2dc25b(0xa6)]=isVersion,exports[_0x2dc25b(0xc9)]=compareVersions,exports[_0x2dc25b(0xe5)]=newestFirst,exports[_0x2dc25b(0xbd)]=versionsToPrune,exports[_0x2dc25b(0xf1)]=declaredEnv,exports[_0x2dc25b(0xc0)]=selectEnv,exports[_0x2dc25b(0xde)]=resolveBin,exports['packagesRoot']=packagesRoot,exports[_0x2dc25b(0xa8)]=listInstalled,exports[_0x2dc25b(0xfe)]=latestVersion,exports[_0x2dc25b(0xc3)]=installSync,exports[_0x2dc25b(0x114)]=prepareMcp,exports[_0x2dc25b(0x10c)]=updateLogPath,exports[_0x2dc25b(0x117)]=refreshInBackground;const fs_1=require('fs'),os_1=require('os'),path_1=require(_0x2dc25b(0xb1)),child_process_1=require('child_process'),VERSION_RE=/^\d+\.\d+\.\d+$/;exports[_0x2dc25b(0xb9)]=0x2,exports[_0x2dc25b(0xc2)]=0x7*0x18*0x36ee80;function isVersion(_0x3763e0){return VERSION_RE['test'](_0x3763e0);}function compareVersions(_0x429739,_0x124c33){const _0x28a34b=_0x2dc25b,_0x53ac0c={'grajh':function(_0x53152c,_0x1caa51){return _0x53152c<_0x1caa51;},'JbAlP':function(_0x5ddbbb,_0x1720aa){return _0x5ddbbb-_0x1720aa;}},_0x2c0bc9=_0x429739[_0x28a34b(0xab)]('.')['map'](Number),_0x343ab6=_0x124c33[_0x28a34b(0xab)]('.')['map'](Number);for(let _0x41db2d=0x0;_0x53ac0c[_0x28a34b(0xbb)](_0x41db2d,0x3);_0x41db2d++){if(_0x2c0bc9[_0x41db2d]!==_0x343ab6[_0x41db2d])return _0x53ac0c[_0x28a34b(0x115)](_0x2c0bc9[_0x41db2d],_0x343ab6[_0x41db2d]);}return 0x0;}function newestFirst(_0x2f2380){return _0x2f2380['filter'](isVersion)['sort']((_0x23644c,_0x1041ca)=>compareVersions(_0x1041ca,_0x23644c));}function versionsToPrune(_0x5a4518,_0xdadab4,_0x475f09,_0x296c6f=exports['KEEP_VERSIONS'],_0x59f2b4=exports[_0x2dc25b(0xc2)]){const _0x2e9a1c=_0x2dc25b,_0x57d568={'OHipM':function(_0x3c639f,_0x3c9218){return _0x3c639f(_0x3c9218);}};return _0x57d568[_0x2e9a1c(0xb6)](newestFirst,_0x5a4518)['slice'](_0x296c6f)[_0x2e9a1c(0xdf)](_0x2632a5=>_0xdadab4[_0x2632a5]!==undefined&&_0x475f09-_0xdadab4[_0x2632a5]>=_0x59f2b4);}function declaredEnv(_0x267e6c){const _0x48782d=_0x2dc25b,_0x2d5f67=_0x267e6c?.[_0x48782d(0x108)];if(!_0x2d5f67||!Array['isArray'](_0x2d5f67[_0x48782d(0xed)]))return[];return _0x2d5f67[_0x48782d(0xed)][_0x48782d(0xdf)](_0x24851a=>typeof _0x24851a===_0x48782d(0x10f)&&_0x24851a['length']>0x0);}function selectEnv(_0x155ac3,_0x57317d){const _0x3045f2=_0x2dc25b,_0x4d0ff5={};for(const [_0x2fce5c,_0x349d2e]of Object[_0x3045f2(0x9d)](_0x57317d)){const _0xf203a8=_0x155ac3[_0x3045f2(0x9b)](_0x13807c=>_0x13807c[_0x3045f2(0xcc)]('*')?_0x2fce5c[_0x3045f2(0xd6)](_0x13807c['slice'](0x0,-0x1)):_0x2fce5c===_0x13807c);if(_0xf203a8)_0x4d0ff5[_0x2fce5c]=_0x349d2e;}return _0x4d0ff5;}function resolveBin(_0x1757c0){const _0x112ead=_0x2dc25b,_0x5b51d5={'yGTvJ':_0x112ead(0x10f),'RJmVS':function(_0x564644,_0x54d281){return _0x564644===_0x54d281;},'wVAAB':_0x112ead(0xee)},_0x44fad4=_0x1757c0['bin'];if(typeof _0x44fad4===_0x5b51d5['yGTvJ'])return _0x44fad4;if(_0x44fad4&&_0x5b51d5[_0x112ead(0x9a)](typeof _0x44fad4,_0x5b51d5['wVAAB'])){const _0x23928e=Object[_0x112ead(0x9d)](_0x44fad4);if(_0x23928e[_0x112ead(0xa5)]===0x1)return _0x23928e[0x0][0x1];const _0x5a225f=_0x1757c0[_0x112ead(0xb2)][_0x112ead(0xab)]('/')[_0x112ead(0x104)](),_0x591691=_0x23928e[_0x112ead(0xe0)](([_0xd0669c])=>_0xd0669c===_0x5a225f);if(_0x591691)return _0x591691[0x1];}throw new Error(_0x1757c0[_0x112ead(0xb2)]+_0x112ead(0xf7));}function _0x3c18(_0x11f45e,_0x866428){_0x11f45e=_0x11f45e-0x95;const _0x4d116c=_0x4d11();let _0x3c1847=_0x4d116c[_0x11f45e];if(_0x3c18['rRjuYp']===undefined){var _0x4d4541=function(_0x172307){const _0x5efa83='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5c4621='',_0x2e6c1a='';for(let _0x4d8d14=0x0,_0x207126,_0x29bcfd,_0x4b36f0=0x0;_0x29bcfd=_0x172307['charAt'](_0x4b36f0++);~_0x29bcfd&&(_0x207126=_0x4d8d14%0x4?_0x207126*0x40+_0x29bcfd:_0x29bcfd,_0x4d8d14++%0x4)?_0x5c4621+=String['fromCharCode'](0xff&_0x207126>>(-0x2*_0x4d8d14&0x6)):0x0){_0x29bcfd=_0x5efa83['indexOf'](_0x29bcfd);}for(let _0x562d75=0x0,_0x5e6484=_0x5c4621['length'];_0x562d75<_0x5e6484;_0x562d75++){_0x2e6c1a+='%'+('00'+_0x5c4621['charCodeAt'](_0x562d75)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e6c1a);};_0x3c18['KHOuzc']=_0x4d4541,_0x3c18['EeBfnj']={},_0x3c18['rRjuYp']=!![];}const _0x3dc639=_0x4d116c[0x0],_0x128559=_0x11f45e+_0x3dc639,_0x350768=_0x3c18['EeBfnj'][_0x128559];return!_0x350768?(_0x3c1847=_0x3c18['KHOuzc'](_0x3c1847),_0x3c18['EeBfnj'][_0x128559]=_0x3c1847):_0x3c1847=_0x350768,_0x3c1847;}function packagesRoot(){const _0xbf7732=_0x2dc25b,_0x2e717b={'YCrra':_0xbf7732(0x11b)};return process.env.FB_MCP_PACKAGES_DIR||(0x0,path_1['join'])((0x0,os_1[_0xbf7732(0xc1)])(),_0x2e717b[_0xbf7732(0xa1)],_0xbf7732(0xd7));}function packageDir(_0x4965cb){const _0x529d0d=_0x2dc25b,_0x3a1f27={'aROyN':function(_0x3b9a1b){return _0x3b9a1b();},'rlHQP':function(_0x1eb239,_0x115aec){return _0x1eb239(_0x115aec);}};return(0x0,path_1[_0x529d0d(0xc4)])(_0x3a1f27[_0x529d0d(0x9c)](packagesRoot),_0x3a1f27['rlHQP'](encodeURIComponent,_0x4965cb));}function versionDir(_0x1f6c90,_0x3a8a9f){const _0x2cdc15=_0x2dc25b,_0x40a2a9={'iSUMJ':function(_0x3afe6d,_0x1cac01){return _0x3afe6d(_0x1cac01);}};return(0x0,path_1[_0x2cdc15(0xc4)])(_0x40a2a9[_0x2cdc15(0x96)](packageDir,_0x1f6c90),_0x3a8a9f);}function installedPkgJsonPath(_0x150d32,_0x20aaa6){const _0x17b599=_0x2dc25b,_0x33b5f6={'pJoJp':function(_0x4e04a8,_0x64a51d,_0x236b63){return _0x4e04a8(_0x64a51d,_0x236b63);},'LXCNH':_0x17b599(0xc7)};return(0x0,path_1['join'])(_0x33b5f6[_0x17b599(0xb7)](versionDir,_0x150d32,_0x20aaa6),_0x17b599(0xe9),..._0x150d32[_0x17b599(0xab)]('/'),_0x33b5f6[_0x17b599(0xce)]);}function listInstalled(_0x18ced7){const _0x1d8f45=_0x2dc25b,_0x7c6432=packageDir(_0x18ced7);if(!(0x0,fs_1[_0x1d8f45(0xf8)])(_0x7c6432))return[];return(0x0,fs_1['readdirSync'])(_0x7c6432)[_0x1d8f45(0xdf)](_0x1faca1=>isVersion(_0x1faca1)&&(0x0,fs_1[_0x1d8f45(0xf8)])(installedPkgJsonPath(_0x18ced7,_0x1faca1)));}function npmCommand(){const _0x4c84c8=_0x2dc25b,_0x28592d={'skqNe':function(_0x2f04df,_0x400007){return _0x2f04df!==_0x400007;},'pfIIJ':_0x4c84c8(0x10a),'XkrbC':_0x4c84c8(0xe9),'VbBXx':_0x4c84c8(0x11d)};if(_0x28592d['skqNe'](process[_0x4c84c8(0xb4)],_0x4c84c8(0xd1)))return{'cmd':_0x28592d[_0x4c84c8(0xe4)],'pre':[]};const _0x2e3409=(0x0,path_1[_0x4c84c8(0xc4)])((0x0,path_1[_0x4c84c8(0x107)])(process[_0x4c84c8(0xe2)]),_0x28592d[_0x4c84c8(0xaa)],_0x4c84c8(0x10a),_0x28592d[_0x4c84c8(0xaf)],_0x4c84c8(0xb8));if(!(0x0,fs_1[_0x4c84c8(0xf8)])(_0x2e3409))throw new Error(_0x4c84c8(0x112)+_0x2e3409+_0x4c84c8(0x119));return{'cmd':process[_0x4c84c8(0xe2)],'pre':[_0x2e3409]};}const NPM_VIEW_TIMEOUT_MS=0x7530;function latestVersion(_0x4a03e1){const _0x3c0d71=_0x2dc25b,_0x48e4c1={'ydTUb':'view','ontEv':_0x3c0d71(0xf9),'XwGNI':function(_0x3d4e42,_0xd460ba){return _0x3d4e42(_0xd460ba);}},_0xef65fa=npmCommand(),_0x302446=(0x0,child_process_1['spawnSync'])(_0xef65fa['cmd'],[..._0xef65fa['pre'],_0x48e4c1['ydTUb'],_0x4a03e1,_0x48e4c1['ontEv']],{'encoding':_0x3c0d71(0xec),'timeout':NPM_VIEW_TIMEOUT_MS}),_0x3ab736=(_0x302446[_0x3c0d71(0xfc)]??'')[_0x3c0d71(0xf3)]();if(_0x302446[_0x3c0d71(0x116)]!==0x0||!_0x48e4c1[_0x3c0d71(0xd5)](isVersion,_0x3ab736))throw new Error(_0x4a03e1+_0x3c0d71(0xac)+((_0x302446['stderr']??'')[_0x3c0d71(0xf3)]()||_0x3c0d71(0x111)+_0x302446[_0x3c0d71(0x116)]));return _0x3ab736;}function npmInstallArgs(_0x35b8a9,_0x273e96,_0x2c41db){const _0x575535=_0x2dc25b,_0x185bcc={'rvJWm':_0x575535(0xad),'SIilm':_0x575535(0xbc),'JpzVm':'--no-save','ipzKo':_0x575535(0x110)};return[_0x185bcc[_0x575535(0xf5)],_0x185bcc['SIilm'],_0x2c41db,_0x185bcc[_0x575535(0xb5)],_0x575535(0xfb),_0x575535(0xea),_0x575535(0xfa),_0x185bcc[_0x575535(0xcb)],_0x575535(0xd2),_0x35b8a9+'@'+_0x273e96];}function sleepMs(_0x323125){const _0x5bcff7=_0x2dc25b;Atomics[_0x5bcff7(0x10b)](new Int32Array(new SharedArrayBuffer(0x4)),0x0,0x0,_0x323125);}const TRANSIENT_FS=new Set([_0x2dc25b(0x9f),_0x2dc25b(0xa7),_0x2dc25b(0x99)]);function renameWithRetry(_0x249046,_0x978239){const _0x45e799=_0x2dc25b,_0x4ae9b2={'zenvS':function(_0x12982a,_0x43cb83){return _0x12982a(_0x43cb83);},'RKSzK':function(_0x25e73c,_0x3b5664){return _0x25e73c**_0x3b5664;}};for(let _0x518a39=0x0;;_0x518a39++){try{(0x0,fs_1['renameSync'])(_0x249046,_0x978239);return;}catch(_0x259725){const _0x134c41=_0x259725[_0x45e799(0xa2)]??'';if(_0x518a39>=0x5||!TRANSIENT_FS['has'](_0x134c41)||(0x0,fs_1['existsSync'])(_0x978239))throw _0x259725;_0x4ae9b2['zenvS'](sleepMs,0xc8*_0x4ae9b2[_0x45e799(0x97)](0x2,_0x518a39));}}}function commitInstall(_0x28e1df,_0x25bb76,_0x41bba1){const _0x32d2f9=_0x2dc25b;try{renameWithRetry(_0x41bba1,versionDir(_0x28e1df,_0x25bb76));}catch(_0x404018){(0x0,fs_1[_0x32d2f9(0xba)])(_0x41bba1,{'recursive':!![],'force':!![]});if(!(0x0,fs_1[_0x32d2f9(0xf8)])(installedPkgJsonPath(_0x28e1df,_0x25bb76)))throw _0x404018;}}function tmpDirFor(_0x26f840,_0xb432d7){const _0x7b9984=_0x2dc25b,_0x6b367={'omjhU':function(_0x2532e9,_0xbe24eb){return _0x2532e9(_0xbe24eb);}};return(0x0,fs_1[_0x7b9984(0xa3)])(packageDir(_0x26f840),{'recursive':!![]}),(0x0,path_1['join'])(_0x6b367[_0x7b9984(0x113)](packageDir,_0x26f840),_0xb432d7+_0x7b9984(0x118)+process[_0x7b9984(0xbf)]+'-'+Date['now']());}function installSync(_0x5ed7dd,_0x9545bc){const _0x38e206=_0x2dc25b,_0xf28ff9={'EhblK':function(_0x2a3758,_0x21516d,_0x553415,_0x1df3de){return _0x2a3758(_0x21516d,_0x553415,_0x1df3de);}},_0x4be2d6=npmCommand(),_0x372852=tmpDirFor(_0x5ed7dd,_0x9545bc),_0x5da063=(0x0,child_process_1[_0x38e206(0xc5)])(_0x4be2d6[_0x38e206(0xdb)],[..._0x4be2d6[_0x38e206(0xdc)],..._0xf28ff9[_0x38e206(0x98)](npmInstallArgs,_0x5ed7dd,_0x9545bc,_0x372852)],{'encoding':_0x38e206(0xec)});if(_0x5da063['status']!==0x0){(0x0,fs_1[_0x38e206(0xba)])(_0x372852,{'recursive':!![],'force':!![]});throw new Error(_0x5ed7dd+'@'+_0x9545bc+_0x38e206(0xb0)+((_0x5da063[_0x38e206(0xeb)]??'')[_0x38e206(0xf3)]()||_0x38e206(0x111)+_0x5da063[_0x38e206(0x116)]));}commitInstall(_0x5ed7dd,_0x9545bc,_0x372852);}function installAsync(_0x4e2409,_0x484ce4){const _0xea35fd=_0x2dc25b,_0x329016={'adZvf':function(_0xaee988,_0x39090a){return _0xaee988(_0x39090a);},'EJmWY':function(_0x104cc0,_0x495408,_0x4e3a65,_0x4f1cbf){return _0x104cc0(_0x495408,_0x4e3a65,_0x4f1cbf);},'DjDFo':function(_0x14d723,_0x5dca7d,_0x3a580c){return _0x14d723(_0x5dca7d,_0x3a580c);},'xbrnK':_0xea35fd(0x101)};return new Promise((_0x4dc0f9,_0x2e480c)=>{const _0x1a56e6=_0xea35fd,_0x5832e0=npmCommand(),_0x4e56e3=_0x329016[_0x1a56e6(0xdd)](tmpDirFor,_0x4e2409,_0x484ce4),_0x43495e=(0x0,child_process_1[_0x1a56e6(0xff)])(_0x5832e0['cmd'],[..._0x5832e0['pre'],...npmInstallArgs(_0x4e2409,_0x484ce4,_0x4e56e3)],{'stdio':_0x1a56e6(0xda)});_0x43495e['on'](_0x1a56e6(0xa0),_0x2e480c),_0x43495e['on'](_0x329016[_0x1a56e6(0xef)],_0x30ce7b=>{const _0x280ac1=_0x1a56e6;if(_0x30ce7b!==0x0){(0x0,fs_1[_0x280ac1(0xba)])(_0x4e56e3,{'recursive':!![],'force':!![]}),_0x329016['adZvf'](_0x2e480c,new Error(_0x4e2409+'@'+_0x484ce4+_0x280ac1(0xe8)+_0x30ce7b+')'));return;}try{_0x329016[_0x280ac1(0x11a)](commitInstall,_0x4e2409,_0x484ce4,_0x4e56e3),_0x4dc0f9();}catch(_0x5a1f12){_0x329016['adZvf'](_0x2e480c,_0x5a1f12);}});});}const LAST_USED=_0x2dc25b(0x103);function markUsed(_0x4e6034,_0x385973){const _0x4e6b71=_0x2dc25b,_0x2964d7={'tbTsj':function(_0x203db5,_0x2c960e){return _0x203db5(_0x2c960e);}};(0x0,fs_1[_0x4e6b71(0x95)])((0x0,path_1[_0x4e6b71(0xc4)])(versionDir(_0x4e6034,_0x385973),LAST_USED),_0x2964d7[_0x4e6b71(0x100)](String,Date['now']()));}function readLastUsed(_0x1b5abd,_0x4f201d){const _0x19e919=_0x2dc25b,_0x199d66={'ouLWG':function(_0x2fddeb,_0xd04691){return _0x2fddeb(_0xd04691);}},_0x4aa03d={};for(const _0x538785 of _0x4f201d){const _0x28e7f2=(0x0,path_1[_0x19e919(0xc4)])(versionDir(_0x1b5abd,_0x538785),LAST_USED);if((0x0,fs_1[_0x19e919(0xf8)])(_0x28e7f2))_0x4aa03d[_0x538785]=_0x199d66[_0x19e919(0xd0)](Number,(0x0,fs_1['readFileSync'])(_0x28e7f2,_0x19e919(0xec)))||0x0;}return _0x4aa03d;}function prune(_0x86a338){const _0x5b4588=_0x2dc25b,_0x280774={'DLUwC':function(_0x4ee65b,_0x18d911){return _0x4ee65b(_0x18d911);},'UgIRv':_0x5b4588(0x118),'inXEV':function(_0x583fb3,_0x27001a){return _0x583fb3-_0x27001a;}},_0xfbf010=listInstalled(_0x86a338);for(const _0x1058a5 of versionsToPrune(_0xfbf010,readLastUsed(_0x86a338,_0xfbf010),Date[_0x5b4588(0xca)]())){(0x0,fs_1['rmSync'])(versionDir(_0x86a338,_0x1058a5),{'recursive':!![],'force':!![]});}const _0x4bffa1=_0x280774[_0x5b4588(0x105)](packageDir,_0x86a338);for(const _0x39c610 of(0x0,fs_1[_0x5b4588(0xcf)])(_0x4bffa1)){if(!_0x39c610[_0x5b4588(0xf4)](_0x280774[_0x5b4588(0x9e)]))continue;const _0xbc6e81=(0x0,path_1[_0x5b4588(0xc4)])(_0x4bffa1,_0x39c610);if(_0x280774['inXEV'](Date[_0x5b4588(0xca)](),(0x0,fs_1[_0x5b4588(0x106)])(_0xbc6e81)[_0x5b4588(0xcd)])>0x36ee80)(0x0,fs_1[_0x5b4588(0xba)])(_0xbc6e81,{'recursive':!![],'force':!![]});}}function prepareMcp(_0x364c90){const _0x2f0f53=_0x2dc25b,_0xb6f668={'KWvAk':_0x2f0f53(0xec),'ygdhw':function(_0x3455ae,_0x4f8111){return _0x3455ae(_0x4f8111);}};let _0x38b502=newestFirst(listInstalled(_0x364c90))[0x0];!_0x38b502&&(_0x38b502=latestVersion(_0x364c90),process[_0x2f0f53(0xfc)][_0x2f0f53(0xf6)](_0x2f0f53(0xb3)+_0x364c90+'@'+_0x38b502+'\x20を準備しています(初回のみ)...\x0a'),installSync(_0x364c90,_0x38b502));markUsed(_0x364c90,_0x38b502);const _0x199cc7=JSON[_0x2f0f53(0xd9)]((0x0,fs_1[_0x2f0f53(0xe3)])(installedPkgJsonPath(_0x364c90,_0x38b502),_0xb6f668[_0x2f0f53(0xe6)])),_0x3fd04a=(0x0,path_1[_0x2f0f53(0xc4)])(versionDir(_0x364c90,_0x38b502),_0x2f0f53(0xe9),..._0x364c90['split']('/'),_0xb6f668['ygdhw'](resolveBin,_0x199cc7));return{'pkg':_0x364c90,'version':_0x38b502,'binPath':_0x3fd04a,'declaredEnv':_0xb6f668[_0x2f0f53(0xf0)](declaredEnv,_0x199cc7)};}function updateLogPath(){const _0x16ceee=_0x2dc25b;return(0x0,path_1[_0x16ceee(0xc4)])(packagesRoot(),_0x16ceee(0xe7));}function _0x4d11(){const _0x7f3be7=['Dg9ju09tDhjPBMC','BNbT','D2fPDa','DxbKyxrLtg9Nugf0Aa','mZq2mJG2mhPhANjNyG','ntqYmJiWnfjXywzZCW','C3rYAw5N','ls1UBY1MDw5K','C3rHDhvZia','BNbTioobJoIMI+obPoobI+ocIUobVUobM+ocK++8Ia','B21QAfu','ChjLCgfYzu1JCa','sMjbBfa','C3rHDhvZ','CMvMCMvZAeLUqMfJA2DYB3vUza','lNrTCc0','77Yj44cctM9Kzs5QCYdJGPlLHAZLVi/JGQtJG7pJGRNJG4JJG7ZJG6NJG7ZJGAFLHAxJGOZNM7tJGzFJGABJGy/JGAdJGzxJGyq','ruPTv1K','lMz1BM55lwjVB3rO','Aw5ZDgfSBgvKia','yMLU','D3jPDgvgAwXLu3LUyW','AvnvtuO','uKTtEKS','rwHIBeS','rufdq0vt','uKPTvLm','C29Tzq','yvjpEu4','zw50CMLLCW','vwDjuNy','rvbfuK0','zxjYB3i','wunYCMe','y29Kzq','BwTKAxjtEw5J','mta0nJCYou5ZuNDytG','BgvUz3rO','AxnwzxjZAw9U','rujvu1K','BgLZDeLUC3rHBgXLza','ndi2nePtzNbfAW','wgTYyKm','C3bSAxq','ioobRUACGoAwSoEjIoocKIbUCg0G44gl44kj5y+w5B6x44gN44gn44g+44gB44ktoIa','Aw5ZDgfSBa','mZG4oduYwg15zfnt','vMjcwhG','ioobRUocPoodS+ocUEodIoodVoodQ+obQ+wKSEAvL+obL+obVUobL+obNZOG','Cgf0Aa','BMfTzq','5zcm5QkXtunqia','CgXHDgzVCM0','sNb6vM0','t0HPCe0','CePVsNa','BNbTlwnSAs5QCW','s0vfuf9wrvjtsu9ouW','CM1tEw5J','z3jHAMG','ls1WCMvMAxG','DMvYC2LVBNnuB1bYDw5L','mtm4nZiWnKX5Bgz6tW','CgLK','C2vSzwn0rw52','Ag9TzwrPCG','ufjvtKvFsurmrv9nuW','Aw5ZDgfSBfn5BMm','AM9PBG','C3bHD25tEw5J','z1rdAvm','CgfJA2fNzs5QC29U','rKfjteveia','y29TCgfYzvzLCNnPB25Z','BM93','Axb6s28','zw5KC1DPDgG','BxrPBwvnCW','tfHdtKG','CMvHzgrPCLn5BMm','B3vmv0C','D2LUmZi','ls1SB2DSzxzLBd1LCNjVCG','vKrotue','77Yi5QYH5zUE6lw35yUv44gl44kj5l2/55sO77Yj','whDhtKK','C3rHCNrZv2L0Aa','BwnWlxbHy2THz2vZ','BwvZC2fNzq','CgfYC2u','AwDUB3jL','y21K','ChjL','rgPerM8','CMvZB2X2zujPBG','zMLSDgvY','zMLUza','tMLxs0C','zxHLy1bHDgG','CMvHzezPBgvtEw5J','CgzjsuO','BMv3zxn0rMLYC3q','s1D2qwS','DxbKyxrLlMXVzW','ioobRUocPoodS+ocUEodIoodVoodQ+obQ+wKSEAvL+obL+obVUobL+obN++8Ihn0yxr1CYa','BM9Kzv9TB2r1BgvZ','ls1VBwL0pwrLDG','C3rKzxjY','DxrMltG','zw52','B2jQzwn0','EgjYBKS','EwDKAhC','zgvJBgfYzwrfBNy','mti2oti1mM9xsur4Da','DhjPBq','Aw5JBhvKzxm','CNzkv20','D3jPDgu','oIbWywnRywDLlMPZB24G44gUigjPBIdJGyVJGONOTBFLI5xJG5xJGQhJGQtJG6VJGPlMSBRJGOhJGONJGOZJGB7JGzVJGPm','zxHPC3rZu3LUyW','DMvYC2LVBG','ls1UBY1HDwrPDa','ls1UBY1WywnRywDLlwXVy2S','C3rKB3v0','nZa0ow5vywzcrq','Bgf0zxn0vMvYC2LVBG','C3bHD24','DgjuC2O','zxHPDa','CgTN','lMXHC3qTDxnLza','Cg9W','reXvD0m','C3rHDfn5BMm','zgLYBMfTzq','zNvUBNLcB290Aa'];_0x4d11=function(){return _0x7f3be7;};return _0x4d11();}function log(_0x508338){const _0x37026e=_0x2dc25b,_0x41ed6d={'VDNMA':function(_0x5159f0){return _0x5159f0();},'bOGNd':function(_0x33f22a){return _0x33f22a();}};(0x0,fs_1['mkdirSync'])(_0x41ed6d[_0x37026e(0xd3)](packagesRoot),{'recursive':!![]}),(0x0,fs_1['appendFileSync'])(_0x41ed6d['bOGNd'](updateLogPath),new Date()[_0x37026e(0x109)]()+'\x20'+_0x508338+'\x0a');}async function refreshInBackground(_0x450ac1){const _0x93273a=_0x2dc25b,_0x2d90e2={'gTCiS':function(_0x321c59,_0x5eb90f,_0x1d1bd2){return _0x321c59(_0x5eb90f,_0x1d1bd2);},'NiWKG':function(_0x14ddc1,_0x1a73e7){return _0x14ddc1(_0x1a73e7);}};for(const _0x4c01aa of _0x450ac1){try{const _0x3556cb=latestVersion(_0x4c01aa[_0x93273a(0x102)]);!listInstalled(_0x4c01aa[_0x93273a(0x102)])[_0x93273a(0xf4)](_0x3556cb)&&(await _0x2d90e2[_0x93273a(0xc6)](installAsync,_0x4c01aa[_0x93273a(0x102)],_0x3556cb),log(_0x93273a(0x11c)+_0x4c01aa[_0x93273a(0x102)]+'@'+_0x3556cb+_0x93273a(0xd4))),_0x2d90e2[_0x93273a(0xe1)](prune,_0x4c01aa[_0x93273a(0x102)]);}catch(_0x55bcce){_0x2d90e2[_0x93273a(0xe1)](log,_0x93273a(0xc8)+_0x4c01aa[_0x93273a(0x102)]+':\x20'+_0x55bcce[_0x93273a(0xd8)]);}}}
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
- // クライアントのマシン上の ~/.{toolName}/ に、認証情報を AES-256-CBC で保管する。
6
- // - vault.key : 32byte のローカル鍵(tokens/secrets 共用。一度作ったら再利用)
7
- // - portal-token.enc : ログイン JWT/refresh(launcher が管理)
8
- // - secrets.enc : 名前付きシークレットの JSON マップ(OPENAI_API_KEY 等)
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
- // 運用者のポータル DB には一切載せない(露出を構造的に防ぐ)。
13
- // - 起動時に launcher が読み、同梱MCPの env にポータル env より優先して注入する。
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.getOrCreateVaultKey = getOrCreateVaultKey;
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
- // tokens/secrets 共用の 32byte AES 鍵。あれば再利用、無ければ生成する。
38
- // (鍵をトークン保存の度に作り直すと secrets.enc が復号不能になるため「安定した1鍵」を保つ)
39
- function getOrCreateVaultKey(dir) {
40
- ensureConfigDir(dir);
41
- const keyFile = (0, path_1.join)(dir, "vault.key");
42
- if ((0, fs_1.existsSync)(keyFile)) {
43
- const existing = Buffer.from((0, fs_1.readFileSync)(keyFile, "utf-8").trim(), "hex");
44
- if (existing.length === 32)
45
- return existing;
46
- }
47
- const key = (0, crypto_1.randomBytes)(32);
48
- (0, fs_1.writeFileSync)(keyFile, key.toString("hex"), { encoding: "utf-8", mode: 0o600 });
49
- (0, fs_1.chmodSync)(keyFile, 0o600);
50
- return key;
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
- const SECRETS_FILE = "secrets.enc";
72
- // 金庫全体を復号して名前→値のマップで返す(無ければ空)
73
- function readSecrets(toolName) {
74
- const dir = configDir(toolName);
75
- const file = (0, path_1.join)(dir, SECRETS_FILE);
76
- if (!(0, fs_1.existsSync)(file))
77
- return {};
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
- const key = getOrCreateVaultKey(dir);
80
- const plain = decrypt((0, fs_1.readFileSync)(file, "utf-8").trim(), key);
81
- if (!plain)
82
- return {};
83
- const obj = JSON.parse(plain);
84
- return obj && typeof obj === "object" ? obj : {};
84
+ (0, fs_1.writeSync)(fd, data);
85
+ (0, fs_1.fsyncSync)(fd);
85
86
  }
86
- catch {
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 writeSecrets(toolName, secrets) {
341
+ function saveTokens(toolName, tokens) {
91
342
  const dir = configDir(toolName);
92
343
  ensureConfigDir(dir);
93
- const key = getOrCreateVaultKey(dir);
94
- const file = (0, path_1.join)(dir, SECRETS_FILE);
95
- (0, fs_1.writeFileSync)(file, encrypt(JSON.stringify(secrets), key), { encoding: "utf-8", mode: 0o600 });
96
- (0, fs_1.chmodSync)(file, 0o600);
97
- }
98
- function setSecret(toolName, name, value) {
99
- const secrets = readSecrets(toolName);
100
- secrets[name] = value;
101
- writeSecrets(toolName, secrets);
102
- }
103
- function deleteSecret(toolName, name) {
104
- const secrets = readSecrets(toolName);
105
- if (!(name in secrets))
106
- return false;
107
- delete secrets[name];
108
- writeSecrets(toolName, secrets);
109
- return true;
344
+ atomicWrite((0, path_1.join)(dir, TOKEN_FILE), encrypt(JSON.stringify({ jwt: tokens.jwt, refresh: tokens.refresh }), vaultKey()));
110
345
  }
111
- // 値は返さず名前だけ列挙する(露出を避ける)
112
- function listSecretNames(toolName) {
113
- return Object.keys(readSecrets(toolName));
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.19",
3
+ "version": "0.1.20",
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": {