@evomap/evolver 1.89.2 → 1.89.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/BUGBOT.md +182 -0
- package/.env.example +68 -0
- package/.git-commit-guard-token +1 -0
- package/.github/CODEOWNERS +63 -0
- package/.github/ISSUE_TEMPLATE/good_first_issue.md +23 -0
- package/.github/pull_request_template.md +45 -0
- package/.github/workflows/test.yml +75 -0
- package/CHANGELOG.md +1237 -0
- package/README.ja-JP.md +1 -3
- package/README.ko-KR.md +1 -3
- package/README.md +86 -530
- package/README.public.md +569 -0
- package/README.zh-CN.md +1 -3
- package/SECURITY.md +108 -0
- package/assets/gep/events.jsonl +3 -0
- package/assets/gep/genes.json +496 -0
- package/examples/atp-consumer-quickstart.md +100 -0
- package/examples/hello-world.md +38 -0
- package/index.js +44 -48
- package/package.json +6 -17
- package/proxy-package.json +39 -0
- package/public.manifest.json +143 -0
- package/src/adapters/hookAdapter.js +2 -0
- package/src/adapters/scripts/_lockPaths.js +74 -0
- package/src/adapters/scripts/evolver-session-start.js +19 -27
- package/src/config.js +23 -0
- package/src/evolve/guards.js +721 -1
- package/src/evolve/pipeline/collect.js +1283 -1
- package/src/evolve/pipeline/dispatch.js +421 -1
- package/src/evolve/pipeline/enrich.js +440 -1
- package/src/evolve/pipeline/hub.js +319 -1
- package/src/evolve/pipeline/select.js +274 -1
- package/src/evolve/pipeline/signals.js +206 -1
- package/src/evolve/utils.js +264 -1
- package/src/evolve.js +350 -1
- package/src/experiment/agentRunner.js +229 -0
- package/src/experiment/cli.js +159 -0
- package/src/experiment/comparison.js +233 -0
- package/src/experiment/metrics.js +75 -0
- package/src/forceUpdate.js +311 -30
- package/src/gep/a2aProtocol.js +4455 -1
- package/src/gep/antiAbuseTelemetry.js +233 -0
- package/src/gep/autoDistillConv.js +205 -1
- package/src/gep/autoDistillLlm.js +315 -1
- package/src/gep/candidateEval.js +92 -1
- package/src/gep/candidates.js +198 -1
- package/src/gep/contentHash.js +30 -1
- package/src/gep/conversationSniffer.js +266 -1
- package/src/gep/crypto.js +89 -1
- package/src/gep/curriculum.js +163 -1
- package/src/gep/deviceId.js +218 -1
- package/src/gep/envFingerprint.js +118 -1
- package/src/gep/epigenetics.js +31 -1
- package/src/gep/execBridge.js +711 -1
- package/src/gep/explore.js +289 -1
- package/src/gep/hash.js +15 -1
- package/src/gep/hubFetch.js +359 -1
- package/src/gep/hubReview.js +207 -1
- package/src/gep/hubSearch.js +526 -1
- package/src/gep/hubVerify.js +306 -1
- package/src/gep/learningSignals.js +89 -1
- package/src/gep/memoryGraph.js +1374 -1
- package/src/gep/memoryGraphAdapter.js +203 -1
- package/src/gep/mutation.js +203 -1
- package/src/gep/narrativeMemory.js +108 -1
- package/src/gep/openPRRegistry.js +205 -1
- package/src/gep/personality.js +423 -1
- package/src/gep/policyCheck.js +599 -1
- package/src/gep/prompt.js +836 -1
- package/src/gep/recallInject.js +409 -1
- package/src/gep/recallVerifier.js +318 -1
- package/src/gep/reflection.js +177 -1
- package/src/gep/sanitize.js +9 -0
- package/src/gep/selector.js +602 -1
- package/src/gep/skillDistiller.js +1294 -1
- package/src/gep/solidify.js +1699 -1
- package/src/gep/strategy.js +136 -1
- package/src/gep/tokenSavings.js +88 -1
- package/src/gep/validator/sandboxExecutor.js +29 -1
- package/src/gep/workspaceKeychain.js +174 -1
- package/src/proxy/extensions/traceControl.js +99 -1
- package/src/proxy/index.js +14 -5
- package/src/proxy/inject.js +52 -1
- package/src/proxy/lifecycle/manager.js +30 -0
- package/src/proxy/mailbox/store.js +2 -1
- package/src/proxy/router/messages_route.js +13 -2
- package/src/proxy/trace/extractor.js +646 -1
- package/src/proxy/trace/usage.js +105 -1
- package/CONTRIBUTING.md +0 -19
- package/assets/cover.png +0 -0
- package/assets/gep/genes.seed.json +0 -245
- package/scripts/a2a_export.js +0 -63
- package/scripts/a2a_ingest.js +0 -79
- package/scripts/a2a_promote.js +0 -118
- package/scripts/analyze_by_skill.js +0 -121
- package/scripts/build_binaries.js +0 -479
- package/scripts/check-changelog.js +0 -166
- package/scripts/extract_log.js +0 -85
- package/scripts/generate_history.js +0 -75
- package/scripts/gep_append_event.js +0 -96
- package/scripts/gep_personality_report.js +0 -234
- package/scripts/human_report.js +0 -147
- package/scripts/recall-verify-report.js +0 -234
- package/scripts/recover_loop.js +0 -61
- package/scripts/seed-merchants.js +0 -91
- package/scripts/suggest_version.js +0 -89
- package/scripts/validate-modules.js +0 -38
- package/scripts/validate-suite.js +0 -78
- package/skills/index.json +0 -14
- /package/{skills → bundled-skills}/_meta/SKILL.md +0 -0
|
@@ -1 +1,174 @@
|
|
|
1
|
-
const _0x22b68d=_0xa7e3;function _0xa7e3(_0x448c37,_0xc143a9){_0x448c37=_0x448c37-(-0x14e7+-0x2*-0x9fd+0x182);const _0x321847=_0xfcf0();let _0x15a8d1=_0x321847[_0x448c37];if(_0xa7e3['\x66\x55\x76\x5a\x63\x62']===undefined){var _0x52cf7c=function(_0x507ae7){const _0x3e9539='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0xcaab11='',_0x53af04='',_0x2c3a6e=_0xcaab11+_0x52cf7c,_0xaa637d=(''+function(){return-0xf3d*0x2+-0x140b+0x59d*0x9;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x3*-0x740+-0xd4*-0x1b+-0x9b*0x1);for(let _0x18b3e4=0x1*-0x83+-0x440+0x1*0x4c3,_0xcb0039,_0x5dfbed,_0x5396c0=0x23*0xb4+0x1d*0x4c+-0x2138;_0x5dfbed=_0x507ae7['\x63\x68\x61\x72\x41\x74'](_0x5396c0++);~_0x5dfbed&&(_0xcb0039=_0x18b3e4%(-0x1a61*0x1+-0x1835+0x329a)?_0xcb0039*(0x1*0x13f+-0x3c*-0x5d+-0x3*0x799)+_0x5dfbed:_0x5dfbed,_0x18b3e4++%(-0xeab+-0x1*0x1017+-0x27*-0xca))?_0xcaab11+=_0xaa637d||_0x2c3a6e['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x5396c0+(-0x809*0x1+0x1996+-0x1*0x1183))-(-0x384*-0x7+0x6d*-0x47+-0xa1*-0x9)!==-0x981*0x1+-0x1*-0x1fdf+0x199*-0xe?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x1*-0x262b+-0x2*-0x127d+-0x28*-0xe&_0xcb0039>>(-(0x6a*-0x1e+-0x268f+0x32fd)*_0x18b3e4&0x1*0x1c57+0x8d7*0x3+-0x36d6)):_0x18b3e4:0x223d+0x2498+0x46d5*-0x1){_0x5dfbed=_0x3e9539['\x69\x6e\x64\x65\x78\x4f\x66'](_0x5dfbed);}for(let _0x473adc=0x1*0x1c7c+-0x6b*0x55+0x70b,_0x484978=_0xcaab11['\x6c\x65\x6e\x67\x74\x68'];_0x473adc<_0x484978;_0x473adc++){_0x53af04+='\x25'+('\x30\x30'+_0xcaab11['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x473adc)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x1a28+-0xf56+0x12*0x24f))['\x73\x6c\x69\x63\x65'](-(0x26c0+-0x1f15*-0x1+0x45d3*-0x1));}return decodeURIComponent(_0x53af04);};const _0x292f24=function(_0x16bf45,_0x23e538){let _0x44e153=[],_0x55784b=0x305*0x5+0x7c0+0x16d9*-0x1,_0x5cebb0,_0xb44918='';_0x16bf45=_0x52cf7c(_0x16bf45);let _0x391f9b;for(_0x391f9b=0x96d*-0x3+-0x432*0x3+0x28dd;_0x391f9b<0x1*0x22a3+0x11e4+-0x3*0x112d;_0x391f9b++){_0x44e153[_0x391f9b]=_0x391f9b;}for(_0x391f9b=0x2416+0x1*0x345+0x275b*-0x1;_0x391f9b<-0x25dd+-0x109f*-0x1+0x3b5*0x6;_0x391f9b++){_0x55784b=(_0x55784b+_0x44e153[_0x391f9b]+_0x23e538['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x391f9b%_0x23e538['\x6c\x65\x6e\x67\x74\x68']))%(0x67*-0x4f+-0x59d*-0x5+0x4b8),_0x5cebb0=_0x44e153[_0x391f9b],_0x44e153[_0x391f9b]=_0x44e153[_0x55784b],_0x44e153[_0x55784b]=_0x5cebb0;}_0x391f9b=0x147e+-0x1d4d+0x8cf,_0x55784b=-0xd53+0x9*-0x43b+0x3366;for(let _0x1204f7=0x2141+0x1*0xd67+0x8*-0x5d5;_0x1204f7<_0x16bf45['\x6c\x65\x6e\x67\x74\x68'];_0x1204f7++){_0x391f9b=(_0x391f9b+(0xe05+0x1*-0xcd6+-0x12e))%(-0x11ce+0x191a+0x7c*-0xd),_0x55784b=(_0x55784b+_0x44e153[_0x391f9b])%(-0x1a09*0x1+0x967*0x3+-0xa*0x1e),_0x5cebb0=_0x44e153[_0x391f9b],_0x44e153[_0x391f9b]=_0x44e153[_0x55784b],_0x44e153[_0x55784b]=_0x5cebb0,_0xb44918+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x16bf45['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1204f7)^_0x44e153[(_0x44e153[_0x391f9b]+_0x44e153[_0x55784b])%(-0x1*0x19ca+-0x88*-0x3+-0x285*-0xa)]);}return _0xb44918;};_0xa7e3['\x53\x66\x49\x51\x51\x6f']=_0x292f24,_0xa7e3['\x76\x78\x65\x45\x6a\x57']={},_0xa7e3['\x66\x55\x76\x5a\x63\x62']=!![];}const _0x111b05=_0x321847[-0x18*-0x194+0x1c0d+0x96b*-0x7],_0x4204dc=_0x448c37+_0x111b05,_0x58bdac=_0xa7e3['\x76\x78\x65\x45\x6a\x57'][_0x4204dc];if(!_0x58bdac){if(_0xa7e3['\x72\x71\x58\x61\x47\x43']===undefined){const _0x5d801c=function(_0x4582f4){this['\x52\x45\x49\x68\x56\x51']=_0x4582f4,this['\x52\x64\x67\x67\x4e\x6c']=[-0x20ae+0x50c+0x1ba3,-0x2589+-0x229+0x1*0x27b2,0x5*-0x255+-0x33*0x24+0x1*0x12d5],this['\x41\x65\x54\x53\x68\x55']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x72\x48\x53\x6a\x6a\x78']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x5a\x50\x71\x79\x76\x55']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x5d801c['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x4c\x4a\x6e\x6e\x52\x6b']=function(){const _0x5910b7=new RegExp(this['\x72\x48\x53\x6a\x6a\x78']+this['\x5a\x50\x71\x79\x76\x55']),_0x13a3d7=_0x5910b7['\x74\x65\x73\x74'](this['\x41\x65\x54\x53\x68\x55']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x52\x64\x67\x67\x4e\x6c'][0x3*0x679+0xd*0xda+0xf3e*-0x2]:--this['\x52\x64\x67\x67\x4e\x6c'][0x1065*0x2+0x1ef5+-0x3fbf];return this['\x58\x4f\x6a\x73\x4c\x64'](_0x13a3d7);},_0x5d801c['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x58\x4f\x6a\x73\x4c\x64']=function(_0x51edd1){if(!Boolean(~_0x51edd1))return _0x51edd1;return this['\x67\x70\x65\x47\x58\x44'](this['\x52\x45\x49\x68\x56\x51']);},_0x5d801c['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x67\x70\x65\x47\x58\x44']=function(_0x1b27bf){for(let _0x5e4523=0x11*0x24a+0x1*0x126c+0xb3*-0x52,_0x51dac3=this['\x52\x64\x67\x67\x4e\x6c']['\x6c\x65\x6e\x67\x74\x68'];_0x5e4523<_0x51dac3;_0x5e4523++){this['\x52\x64\x67\x67\x4e\x6c']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x51dac3=this['\x52\x64\x67\x67\x4e\x6c']['\x6c\x65\x6e\x67\x74\x68'];}return _0x1b27bf(this['\x52\x64\x67\x67\x4e\x6c'][-0xb23+0xab*-0x2f+0x2a88]);},(''+function(){return 0xbd+-0x178b+0x342*0x7;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x8c3*-0x4+0x4*-0x722+-0x683)&&new _0x5d801c(_0xa7e3)['\x4c\x4a\x6e\x6e\x52\x6b'](),_0xa7e3['\x72\x71\x58\x61\x47\x43']=!![];}_0x15a8d1=_0xa7e3['\x53\x66\x49\x51\x51\x6f'](_0x15a8d1,_0xc143a9),_0xa7e3['\x76\x78\x65\x45\x6a\x57'][_0x4204dc]=_0x15a8d1;}else _0x15a8d1=_0x58bdac;return _0x15a8d1;}(function(_0x280e29,_0x53979c){const _0x5a7f40=_0xa7e3,_0x185b7b=_0x280e29();while(!![]){try{const _0xc3e69a=parseInt(_0x5a7f40(0xa2,'\x41\x70\x71\x36'))/(-0x94*0x29+0x2*-0x1e8+0x1b85)+parseInt(_0x5a7f40(0xd5,'\x7a\x74\x55\x59'))/(0x11*-0x223+-0x10f8+0x354d)+-parseInt(_0x5a7f40(0xdf,'\x6d\x73\x46\x5a'))/(0x1*0x1d75+-0x13*-0x157+-0x36e7)+parseInt(_0x5a7f40(0xf7,'\x4c\x51\x29\x51'))/(-0xb*-0x232+-0x737*0x1+-0x10eb)+parseInt(_0x5a7f40(0xb3,'\x73\x28\x70\x71'))/(-0x99c+0xf1*0x25+0x4*-0x64d)*(-parseInt(_0x5a7f40(0xec,'\x67\x56\x23\x59'))/(-0x71a*-0x1+-0x1*-0x58f+-0x5*0x287))+-parseInt(_0x5a7f40(0xa1,'\x6d\x75\x75\x25'))/(-0xb99*-0x2+0x1*-0xed5+-0x856)+-parseInt(_0x5a7f40(0x9e,'\x45\x4a\x43\x43'))/(-0x238e+-0x392+0x2728*0x1)*(-parseInt(_0x5a7f40(0xfb,'\x74\x6b\x78\x31'))/(0x2556+-0x1fbc+0xf*-0x5f));if(_0xc3e69a===_0x53979c)break;else _0x185b7b['push'](_0x185b7b['shift']());}catch(_0x2d0cea){_0x185b7b['push'](_0x185b7b['shift']());}}}(_0xfcf0,-0xe930e+-0xef83c+0x8ecb*0x4e));const _0x8f1352=(function(){const _0x58a81a=_0xa7e3,_0x5c59df={};_0x5c59df[_0x58a81a(0xaa,'\x79\x54\x4c\x62')]=function(_0x15fb8e,_0x274746){return _0x15fb8e===_0x274746;},_0x5c59df['\x79\x6f\x74\x53\x46']=_0x58a81a(0x100,'\x38\x59\x26\x78');const _0x3ca659=_0x5c59df;let _0x2d3669=!![];return function(_0x33a9b4,_0x1c3c0d){const _0x4bc63a=_0x58a81a;if(_0x3ca659[_0x4bc63a(0xa3,'\x63\x44\x74\x6b')](_0x3ca659[_0x4bc63a(0xa5,'\x58\x51\x79\x65')],_0x3ca659[_0x4bc63a(0xe1,'\x79\x37\x67\x7a')])){const _0x275cf7=_0x2d3669?function(){const _0x2df2b5=_0x4bc63a;if(_0x1c3c0d){const _0x2c6755=_0x1c3c0d[_0x2df2b5(0xaf,'\x42\x61\x53\x4b')](_0x33a9b4,arguments);return _0x1c3c0d=null,_0x2c6755;}}:function(){};return _0x2d3669=![],_0x275cf7;}else return![];};}()),_0x5509c6=_0x8f1352(this,function(){const _0x215212=_0xa7e3,_0x1c76d3={};_0x1c76d3['\x67\x6f\x5a\x4d\x4b']=_0x215212(0xc5,'\x50\x58\x69\x49')+_0x215212(0xe3,'\x35\x72\x62\x4d');const _0x42d66a=_0x1c76d3;return _0x5509c6[_0x215212(0xc8,'\x5d\x36\x57\x5a')]()[_0x215212(0xeb,'\x62\x43\x70\x53')](_0x42d66a[_0x215212(0xfa,'\x63\x44\x74\x6b')])['\x74\x6f\x53\x74\x72\x69\x6e\x67']()[_0x215212(0xc0,'\x6a\x4c\x6e\x21')+_0x215212(0xb8,'\x79\x37\x67\x7a')](_0x5509c6)[_0x215212(0xfd,'\x45\x4a\x43\x43')](_0x42d66a[_0x215212(0xf4,'\x38\x4d\x59\x37')]);});_0x5509c6();const _0x2e1b4f=_0x22b68d(0xc1,'\x45\x25\x4f\x34')+_0x22b68d(0xa4,'\x26\x24\x4f\x70')+_0x22b68d(0xf6,'\x35\x72\x62\x4d')+_0x22b68d(0xdd,'\x36\x70\x71\x24'),_0x42d7dd=/^[a-f0-9]{32,}$/i;let _0x27fa74=undefined;function _0x22370b(){const _0x502da7=_0x22b68d,_0xc1f217={};_0xc1f217[_0x502da7(0xd4,'\x53\x4d\x6b\x4f')]=function(_0x3414f2,_0x5625c6){return _0x3414f2!==_0x5625c6;},_0xc1f217[_0x502da7(0xf2,'\x45\x28\x55\x65')]=function(_0x1f2ff7,_0x63d34c){return _0x1f2ff7===_0x63d34c;},_0xc1f217[_0x502da7(0xa9,'\x4b\x4d\x6e\x21')]=_0x502da7(0xc4,'\x45\x4a\x43\x43'),_0xc1f217[_0x502da7(0x9f,'\x5e\x77\x2a\x39')]=_0x502da7(0xb7,'\x79\x37\x67\x7a');const _0x4133ad=_0xc1f217;if(_0x4133ad[_0x502da7(0x9a,'\x64\x34\x61\x79')](_0x27fa74,undefined))return _0x27fa74;try{if(_0x4133ad[_0x502da7(0xac,'\x6a\x5a\x31\x75')](_0x502da7(0xd7,'\x45\x40\x46\x38'),_0x4133ad[_0x502da7(0xae,'\x5a\x5e\x46\x4c')])){const _0x176276=new _0x421d61[(_0x502da7(0xa6,'\x5d\x61\x76\x4c'))](_0x3925ce,_0x33bd14);return _0x176276[_0x502da7(0xcf,'\x45\x4a\x43\x43')+_0x502da7(0xce,'\x33\x43\x52\x6a')](_0x48e83b),!![];}else{const _0x3ff2d9=require(_0x502da7(0xd9,'\x29\x51\x49\x4d')+_0x502da7(0x95,'\x4c\x79\x45\x68'));if(_0x3ff2d9&&_0x4133ad[_0x502da7(0x104,'\x6d\x73\x46\x5a')](typeof _0x3ff2d9[_0x502da7(0xe7,'\x79\x37\x67\x7a')],_0x4133ad[_0x502da7(0xed,'\x41\x28\x62\x5d')]))return _0x27fa74=_0x3ff2d9,_0x27fa74;return _0x27fa74=null,null;}}catch{return _0x27fa74=null,null;}}function _0x27e296(){const _0x3eb858=_0x22b68d,_0x464aab={'\x50\x74\x6d\x4e\x68':function(_0xde2485,_0x5691ac){return _0xde2485(_0x5691ac);},'\x4d\x70\x63\x73\x41':_0x3eb858(0xfe,'\x50\x58\x69\x49'),'\x51\x48\x76\x46\x68':function(_0x328712,_0x277e3f){return _0x328712===_0x277e3f;},'\x47\x67\x67\x6f\x5a':_0x3eb858(0xb4,'\x4c\x79\x45\x68'),'\x52\x63\x6b\x6b\x4b':function(_0xb70905,_0x1d51d1){return _0xb70905===_0x1d51d1;}},_0x20b6d6=_0x464aab[_0x3eb858(0x9b,'\x28\x40\x67\x62')](String,process.env.EVOLVER_WORKSPACE_KEYCHAIN||_0x464aab[_0x3eb858(0xc3,'\x79\x4e\x4e\x21')])[_0x3eb858(0xf8,'\x4b\x40\x26\x48')+_0x3eb858(0xde,'\x41\x70\x71\x36')]()[_0x3eb858(0xe4,'\x74\x6b\x78\x31')]();if(_0x464aab[_0x3eb858(0x102,'\x64\x34\x61\x79')](_0x20b6d6,_0x3eb858(0x103,'\x5d\x36\x57\x5a'))||_0x464aab[_0x3eb858(0xf9,'\x62\x63\x32\x43')](_0x20b6d6,_0x464aab['\x47\x67\x67\x6f\x5a'])||_0x464aab[_0x3eb858(0xe9,'\x33\x43\x52\x6a')](_0x20b6d6,_0x464aab[_0x3eb858(0xdc,'\x73\x28\x70\x71')]))return _0x20b6d6;return _0x3eb858(0x99,'\x38\x59\x26\x78');}const _0x5b8333=[/no\s+matching\s+entry/i,/could\s+not\s+be\s+found/i,/element\s+not\s+found/i,/\bnoentry\b/i,/\bno\s*entry\b/i,/not\s+found\s+in\s+(?:secure|keychain)/i];function _0xad197(_0x532323){const _0x5f05fc=_0x22b68d,_0x4fb0e6=_0x532323&&_0x532323[_0x5f05fc(0xe8,'\x5e\x77\x2a\x39')]||'';return _0x5b8333[_0x5f05fc(0xda,'\x42\x37\x75\x43')](_0x2dfdf8=>_0x2dfdf8[_0x5f05fc(0x9c,'\x79\x37\x67\x7a')](_0x4fb0e6));}function _0x54cb7b(_0x163497){const _0x188486=_0x22b68d,_0x127d34={'\x4c\x4b\x7a\x59\x4f':function(_0x3c40cc,_0x6c9584){return _0x3c40cc!==_0x6c9584;},'\x79\x6d\x46\x4c\x4c':function(_0x335bc8,_0x245518){return _0x335bc8(_0x245518);},'\x4b\x75\x71\x42\x77':'\x40\x6e\x61\x70\x69\x2d\x72\x73'+'\x2f\x6b\x65\x79\x72\x69\x6e\x67','\x49\x4f\x43\x62\x61':function(_0x4bda9b,_0xb6f5cb){return _0x4bda9b===_0xb6f5cb;},'\x57\x64\x46\x6c\x6c':_0x188486(0x101,'\x42\x61\x53\x4b'),'\x44\x51\x43\x71\x51':'\x73\x74\x72\x69\x6e\x67','\x48\x5a\x5a\x4c\x6a':_0x188486(0xff,'\x35\x72\x62\x4d'),'\x56\x56\x48\x4f\x55':_0x188486(0xc7,'\x77\x35\x34\x46'),'\x79\x4c\x6c\x58\x6a':function(_0x165038,_0x910bbc){return _0x165038(_0x910bbc);}},_0x412eab=_0x22370b(),_0x182018={};_0x182018[_0x188486(0xcb,'\x79\x4e\x4e\x21')+'\x65']=![],_0x182018['\x69\x64']=null;if(!_0x412eab)return _0x182018;try{const _0x558b33=new _0x412eab[(_0x188486(0xb5,'\x73\x28\x70\x71'))](_0x2e1b4f,_0x163497),_0x971c25=_0x558b33[_0x188486(0xbd,'\x62\x63\x32\x43')+_0x188486(0xd1,'\x4c\x79\x45\x68')]();if(_0x127d34[_0x188486(0xef,'\x42\x37\x75\x43')](typeof _0x971c25,_0x127d34[_0x188486(0xcc,'\x6f\x67\x5a\x35')])&&_0x42d7dd[_0x188486(0xf0,'\x6f\x31\x76\x37')](_0x971c25[_0x188486(0xa0,'\x4b\x4d\x6e\x21')]()))return{'\x61\x76\x61\x69\x6c\x61\x62\x6c\x65':!![],'\x69\x64':_0x971c25[_0x188486(0xa8,'\x5d\x61\x76\x4c')]()};const _0x243b76={};return _0x243b76[_0x188486(0xca,'\x53\x4d\x6b\x4f')+'\x65']=!![],_0x243b76['\x69\x64']=null,_0x243b76;}catch(_0x2a7635){if(_0x127d34[_0x188486(0xbe,'\x53\x4d\x6b\x4f')](_0x127d34[_0x188486(0x97,'\x45\x28\x55\x65')],_0x127d34[_0x188486(0x9d,'\x45\x4a\x43\x43')])){if(dIypkt[_0x188486(0xb1,'\x79\x4e\x4e\x21')](_0x144f4f,_0x390d69))return _0x338612;try{const _0x4388c4=dIypkt[_0x188486(0xd8,'\x5d\x36\x57\x5a')](_0x4147fe,dIypkt[_0x188486(0xfc,'\x50\x58\x69\x49')]);if(_0x4388c4&&dIypkt[_0x188486(0xbf,'\x68\x55\x75\x36')](typeof _0x4388c4[_0x188486(0xbc,'\x26\x24\x4f\x70')],dIypkt[_0x188486(0xd6,'\x4c\x51\x29\x51')]))return _0x348634=_0x4388c4,_0x3906cf;return _0x1224dc=null,null;}catch{return _0x1035d3=null,null;}}else{const _0x4eae9c={};_0x4eae9c[_0x188486(0xb0,'\x29\x51\x49\x4d')+'\x65']=!![],_0x4eae9c['\x69\x64']=null;if(_0x127d34[_0x188486(0x96,'\x6d\x73\x46\x5a')](_0xad197,_0x2a7635))return _0x4eae9c;const _0x4a7cd8={};return _0x4a7cd8[_0x188486(0xb9,'\x45\x40\x46\x38')+'\x65']=![],_0x4a7cd8['\x69\x64']=null,_0x4a7cd8;}}}function _0xff425e(_0x560d76,_0x192c16){const _0x12cb49=_0x22b68d,_0x49b543={'\x6e\x42\x52\x6b\x4e':function(_0x55090b){return _0x55090b();},'\x74\x4f\x56\x50\x67':function(_0x1f5d73,_0x3cc0a6){return _0x1f5d73===_0x3cc0a6;},'\x66\x41\x45\x74\x79':_0x12cb49(0xe2,'\x79\x54\x4c\x62')},_0x18678e=_0x49b543[_0x12cb49(0xf5,'\x29\x51\x49\x4d')](_0x22370b);if(!_0x18678e)return![];try{if(_0x49b543[_0x12cb49(0xe0,'\x4e\x29\x46\x36')](_0x49b543[_0x12cb49(0xcd,'\x79\x37\x67\x7a')],_0x49b543[_0x12cb49(0xb6,'\x42\x61\x53\x4b')])){const _0x3faffe=new _0x18678e[(_0x12cb49(0xad,'\x77\x35\x34\x46'))](_0x2e1b4f,_0x560d76);return _0x3faffe[_0x12cb49(0xc9,'\x6a\x5a\x31\x75')+_0x12cb49(0xab,'\x62\x43\x70\x53')](_0x192c16),!![];}else{const _0x1985fd={};_0x1985fd[_0x12cb49(0xe5,'\x41\x70\x71\x36')+'\x65']=!![],_0x1985fd['\x69\x64']=null;if(_0x4540f6(_0x4325ef))return _0x1985fd;const _0x4b1435={};return _0x4b1435[_0x12cb49(0x98,'\x33\x43\x52\x6a')+'\x65']=![],_0x4b1435['\x69\x64']=null,_0x4b1435;}}catch{return![];}}const _0x3d7375={};function _0xfcf0(){const _0x47ac84=['\x57\x37\x74\x64\x4a\x43\x6b\x72\x57\x34\x72\x6f\x57\x50\x46\x63\x47\x6d\x6f\x77','\x43\x43\x6f\x41\x57\x51\x70\x63\x4a\x47','\x57\x50\x69\x57\x57\x52\x4e\x64\x4b\x6d\x6b\x33','\x6a\x6d\x6b\x2b\x57\x36\x33\x63\x55\x53\x6f\x37','\x57\x35\x61\x49\x61\x38\x6f\x7a','\x57\x51\x4a\x63\x4e\x76\x71\x75\x57\x34\x4f','\x57\x34\x52\x64\x55\x33\x47\x35\x57\x36\x4a\x64\x52\x6d\x6f\x2b\x57\x4f\x69','\x73\x38\x6b\x46\x75\x74\x33\x64\x50\x61','\x57\x51\x6e\x72\x43\x4e\x65','\x57\x50\x31\x39\x57\x36\x47\x47\x65\x38\x6b\x32\x42\x78\x74\x64\x4e\x59\x31\x75\x6e\x48\x57','\x46\x66\x46\x63\x56\x63\x47\x51\x65\x65\x50\x7a\x42\x53\x6f\x6c\x57\x36\x4a\x63\x53\x6d\x6b\x32','\x6b\x4d\x78\x63\x4a\x6d\x6b\x6d\x64\x71','\x57\x34\x71\x32\x65\x53\x6f\x52\x57\x35\x47\x6f\x73\x31\x53','\x66\x43\x6b\x66\x57\x52\x75\x6f\x63\x57','\x57\x52\x72\x69\x57\x4f\x54\x6e\x6e\x57','\x57\x36\x38\x63\x6b\x43\x6f\x55\x79\x63\x4a\x63\x4e\x67\x61','\x57\x4f\x76\x75\x57\x50\x7a\x73','\x57\x4f\x6e\x41\x46\x78\x6c\x63\x56\x71','\x70\x73\x31\x6e\x78\x38\x6b\x66','\x57\x52\x76\x4d\x64\x57','\x42\x63\x42\x63\x4f\x6d\x6b\x74\x76\x71','\x57\x52\x68\x63\x4c\x53\x6f\x37\x57\x4f\x70\x64\x48\x57','\x57\x36\x58\x67\x71\x43\x6f\x2f\x57\x36\x47','\x77\x38\x6f\x62\x79\x4a\x68\x63\x4b\x47','\x57\x36\x61\x74\x57\x35\x75\x31\x57\x52\x69\x43\x6e\x38\x6b\x77','\x71\x4c\x50\x42\x57\x4f\x6c\x64\x56\x61','\x57\x50\x78\x63\x51\x53\x6b\x4b\x45\x68\x6c\x64\x48\x43\x6f\x69\x70\x58\x75\x49\x46\x43\x6b\x4b\x6b\x57','\x42\x38\x6f\x79\x67\x77\x50\x7a\x7a\x76\x43','\x77\x68\x50\x4c','\x68\x38\x6f\x64\x6a\x68\x6e\x52','\x78\x6d\x6f\x57\x76\x59\x4e\x63\x4b\x47','\x57\x34\x69\x59\x68\x53\x6f\x6f\x78\x61\x64\x63\x55\x4b\x61','\x57\x35\x61\x4f\x61\x47','\x57\x50\x38\x37\x42\x6d\x6f\x39\x73\x65\x34\x49\x6b\x61','\x57\x36\x62\x4b\x57\x51\x42\x63\x53\x58\x33\x64\x47\x71\x43\x50\x57\x50\x56\x64\x51\x62\x64\x64\x4f\x76\x38','\x57\x36\x6e\x4d\x57\x51\x64\x63\x55\x48\x78\x64\x49\x71\x79\x30\x57\x52\x70\x64\x47\x58\x56\x64\x4b\x33\x34','\x57\x37\x43\x33\x63\x53\x6f\x56\x57\x34\x71','\x57\x52\x68\x64\x52\x53\x6f\x4b\x6a\x38\x6b\x4b\x67\x76\x30\x58','\x57\x4f\x64\x63\x51\x6d\x6f\x69\x57\x37\x37\x63\x4c\x61','\x57\x52\x66\x78\x77\x65\x65\x44','\x57\x51\x68\x64\x4c\x48\x66\x6a\x64\x43\x6b\x6f\x57\x36\x4c\x68','\x57\x52\x71\x47\x57\x37\x4e\x64\x50\x4b\x5a\x63\x49\x72\x57\x64','\x79\x53\x6b\x31\x44\x38\x6b\x71\x57\x36\x35\x6c\x57\x37\x46\x63\x54\x66\x74\x63\x53\x68\x62\x6a\x6e\x30\x43','\x71\x32\x66\x63\x57\x51\x4a\x64\x53\x47','\x57\x52\x6c\x63\x50\x76\x34\x36\x57\x35\x43','\x72\x38\x6f\x30\x57\x35\x6d\x51\x57\x4f\x53\x34\x77\x6d\x6f\x70','\x57\x34\x4a\x64\x56\x43\x6f\x31\x6c\x71\x64\x63\x4c\x43\x6b\x41\x6f\x61','\x57\x4f\x46\x63\x54\x43\x6f\x6a\x57\x4f\x42\x64\x51\x71','\x66\x6d\x6b\x62\x73\x4b\x38\x6d\x57\x52\x34\x53\x57\x37\x38','\x73\x59\x4e\x63\x4e\x53\x6b\x75\x71\x38\x6b\x75\x57\x51\x6e\x67','\x57\x51\x4a\x63\x4b\x43\x6f\x51\x57\x37\x78\x63\x4d\x43\x6f\x35\x45\x6d\x6f\x6a','\x42\x32\x44\x61\x57\x52\x6c\x64\x4e\x38\x6f\x31\x57\x52\x6d\x77','\x57\x34\x58\x7a\x73\x6d\x6f\x34\x57\x37\x4b','\x57\x34\x69\x67\x6e\x43\x6f\x7a\x75\x71','\x57\x37\x52\x64\x49\x43\x6b\x75','\x57\x4f\x33\x63\x52\x4d\x47\x6c\x57\x37\x37\x64\x54\x6d\x6f\x37\x57\x50\x79','\x72\x43\x6f\x63\x7a\x67\x58\x59\x57\x52\x68\x64\x4c\x4d\x53\x39\x6e\x38\x6b\x47\x77\x71\x57','\x77\x67\x35\x4e','\x57\x35\x7a\x53\x57\x52\x62\x4c\x57\x36\x70\x64\x51\x57\x66\x38','\x43\x43\x6f\x75\x41\x5a\x37\x63\x47\x38\x6f\x57\x6f\x72\x71','\x57\x50\x68\x63\x4f\x38\x6f\x4b\x57\x37\x2f\x63\x4b\x47','\x45\x4e\x50\x70\x6b\x53\x6f\x6e\x57\x4f\x4a\x64\x50\x43\x6b\x74\x44\x67\x5a\x63\x4e\x72\x4a\x64\x4c\x47','\x6d\x57\x30\x71\x43\x53\x6f\x6f','\x57\x51\x71\x6d\x76\x43\x6f\x6f\x72\x71','\x67\x43\x6b\x64\x78\x33\x43\x59','\x57\x34\x65\x6c\x57\x35\x75\x53\x57\x52\x44\x71\x6a\x38\x6b\x6a','\x75\x43\x6f\x55\x57\x52\x38\x51','\x57\x36\x31\x57\x45\x38\x6f\x4d\x57\x35\x4f\x6f\x57\x37\x34','\x66\x38\x6f\x44\x6d\x33\x6a\x74','\x57\x36\x4a\x64\x51\x38\x6b\x4a','\x6c\x62\x42\x64\x51\x71','\x57\x50\x46\x63\x50\x53\x6b\x2b\x57\x50\x2f\x63\x53\x63\x74\x64\x54\x65\x42\x64\x56\x38\x6f\x75\x62\x53\x6f\x66\x57\x52\x79','\x6b\x53\x6b\x4e\x57\x35\x78\x63\x4b\x32\x65','\x57\x35\x30\x4f\x62\x6d\x6f\x2b\x42\x47','\x69\x47\x6a\x37\x77\x43\x6b\x4f','\x57\x35\x68\x63\x4a\x73\x6a\x59','\x45\x30\x33\x63\x52\x38\x6f\x6b','\x6c\x62\x70\x64\x52\x78\x4c\x32\x73\x72\x31\x36','\x61\x43\x6b\x37\x57\x34\x42\x63\x4b\x76\x62\x66\x57\x4f\x42\x63\x53\x47','\x57\x36\x65\x50\x62\x6d\x6f\x46\x75\x71','\x46\x38\x6b\x44\x7a\x63\x74\x64\x4e\x6d\x6b\x7a\x71\x57','\x57\x34\x46\x64\x4d\x6d\x6b\x42\x57\x34\x7a\x50','\x64\x38\x6f\x65\x77\x5a\x42\x63\x4f\x6d\x6f\x48\x6a\x57','\x57\x51\x4c\x58\x63\x4b\x68\x64\x4f\x47\x79','\x57\x50\x4a\x63\x54\x30\x44\x56\x57\x37\x57\x4d\x57\x50\x70\x63\x4b\x57\x31\x74\x57\x4f\x78\x64\x54\x6d\x6f\x43\x57\x35\x4f','\x57\x50\x56\x64\x4e\x53\x6f\x69\x57\x50\x2f\x64\x51\x47','\x57\x51\x6d\x5a\x57\x37\x46\x64\x52\x32\x56\x63\x49\x31\x30\x6c','\x41\x38\x6f\x6f\x57\x50\x65\x54\x57\x52\x4b','\x62\x6d\x6b\x74\x69\x73\x30','\x57\x50\x68\x63\x47\x43\x6f\x53\x57\x50\x4e\x64\x4e\x31\x43\x56','\x62\x38\x6f\x56\x63\x43\x6f\x33\x57\x51\x4b','\x57\x52\x78\x64\x49\x38\x6f\x4e\x57\x4f\x68\x64\x4c\x53\x6f\x4c\x62\x6d\x6b\x70','\x57\x52\x72\x50\x57\x36\x54\x52\x57\x51\x53','\x57\x36\x38\x4e\x57\x36\x79\x33\x57\x50\x61','\x57\x50\x78\x64\x4c\x4d\x69\x4c\x6c\x43\x6f\x6c\x57\x34\x50\x61','\x76\x4c\x4c\x47\x6c\x38\x6b\x41\x6e\x65\x2f\x63\x4a\x38\x6f\x7a\x73\x6d\x6b\x61\x41\x6d\x6f\x51','\x57\x35\x64\x64\x56\x43\x6f\x79\x6a\x4a\x42\x63\x4c\x6d\x6b\x6d\x66\x61','\x57\x4f\x46\x64\x47\x38\x6f\x4d\x6d\x43\x6b\x54','\x68\x32\x2f\x63\x4b\x53\x6b\x54\x70\x61','\x6f\x47\x56\x64\x53\x6d\x6b\x73\x44\x4b\x5a\x63\x4c\x43\x6b\x65\x57\x51\x57\x6e\x57\x52\x4b\x37\x69\x61','\x6a\x6d\x6b\x50\x57\x4f\x50\x67\x57\x35\x43','\x57\x4f\x33\x63\x52\x4e\x30\x50\x57\x37\x5a\x64\x52\x57','\x64\x53\x6b\x50\x57\x4f\x39\x52','\x57\x4f\x6c\x64\x47\x32\x71\x4b\x70\x61','\x44\x38\x6f\x78\x57\x4f\x2f\x63\x52\x43\x6b\x72','\x78\x6d\x6f\x65\x46\x64\x37\x63\x4e\x38\x6f\x34\x70\x58\x71','\x57\x50\x53\x38\x57\x51\x64\x64\x54\x43\x6b\x34','\x62\x53\x6b\x62\x41\x31\x47\x42','\x57\x37\x46\x64\x54\x6d\x6f\x66\x57\x37\x33\x64\x54\x61','\x67\x68\x44\x4d\x76\x53\x6b\x5a\x57\x50\x33\x63\x56\x38\x6f\x56','\x57\x35\x52\x64\x4b\x53\x6f\x4a\x57\x37\x6c\x64\x51\x71','\x67\x38\x6f\x46\x67\x43\x6f\x53\x57\x52\x71'];_0xfcf0=function(){return _0x47ac84;};return _0xfcf0();}_0x3d7375[_0x22b68d(0xa7,'\x79\x37\x67\x7a')+_0x22b68d(0xe6,'\x4e\x29\x46\x36')]=_0x2e1b4f,_0x3d7375['\x67\x65\x74\x4d\x6f\x64\x65']=_0x27e296,_0x3d7375[_0x22b68d(0xc6,'\x4b\x40\x26\x48')+'\x6e']=_0x22370b,_0x3d7375[_0x22b68d(0xee,'\x45\x25\x4f\x34')+_0x22b68d(0xd3,'\x42\x61\x53\x4b')]=_0x54cb7b,_0x3d7375[_0x22b68d(0xf3,'\x41\x28\x62\x5d')+_0x22b68d(0xf1,'\x77\x35\x34\x46')]=_0xff425e,_0x3d7375[_0x22b68d(0xd2,'\x6e\x6b\x39\x26')+'\x72\x79\x45\x72\x72\x6f\x72']=_0xad197,module[_0x22b68d(0xdb,'\x6f\x67\x5a\x35')]=_0x3d7375;
|
|
1
|
+
// Keychain-backed workspace-id resolver (issue #111 Phase 1).
|
|
2
|
+
//
|
|
3
|
+
// Layered with paths.js#getWorkspaceId(). The current FS-only secret
|
|
4
|
+
// (`<workspace>/.evolver/workspace-id`, mode 0600) closes the *forgery*
|
|
5
|
+
// gap from PR #109 but leaves a *readability* gap: any process running
|
|
6
|
+
// under the same uid can still read the file and impersonate a workspace
|
|
7
|
+
// it does not own. This module gates that secret behind the OS keychain
|
|
8
|
+
// (macOS Keychain Services / libsecret on Linux / Windows Credential
|
|
9
|
+
// Manager) via the optional `@napi-rs/keyring` native addon.
|
|
10
|
+
//
|
|
11
|
+
// PLATFORM NOTES:
|
|
12
|
+
//
|
|
13
|
+
// macOS — backed by Keychain Services (Security.framework). Entries
|
|
14
|
+
// are encrypted by the OS and scoped to the user login session.
|
|
15
|
+
//
|
|
16
|
+
// Linux — backed by libsecret / GNOME Keyring (or the secret-service
|
|
17
|
+
// D-Bus protocol). Unavailable on headless servers without a
|
|
18
|
+
// D-Bus session; the addon load will succeed but getPassword()
|
|
19
|
+
// throws, causing `available: false` and transparent FS fallback.
|
|
20
|
+
//
|
|
21
|
+
// Windows — backed by Windows Credential Manager (CredRead/CredWrite via
|
|
22
|
+
// DPAPI-encrypted blobs). No extra installation needed when the
|
|
23
|
+
// @napi-rs/keyring addon is present. If the addon is absent (bun
|
|
24
|
+
// binary, stripped package, etc.) the resolver falls back to
|
|
25
|
+
// plaintext FS storage — see WINDOWS SECURITY NOTE below.
|
|
26
|
+
//
|
|
27
|
+
// WINDOWS SECURITY NOTE (fallback path):
|
|
28
|
+
// When @napi-rs/keyring is unavailable on Windows (addon load fails),
|
|
29
|
+
// getWorkspaceId() falls back to a plaintext file at
|
|
30
|
+
// <workspace>/.evolver/workspace-id. On Windows, mode 0o600 passed to
|
|
31
|
+
// fs.writeFileSync / fs.openSync is silently ignored, so the file is NOT
|
|
32
|
+
// restricted to the current user at the filesystem ACL level. The only
|
|
33
|
+
// isolation boundary is the Windows user-profile directory
|
|
34
|
+
// (%USERPROFILE%\.evolver or the workspace path), which is ACL-protected
|
|
35
|
+
// by default but grants access to the SYSTEM account and local Admins.
|
|
36
|
+
// This is weaker than the Unix 0o600 guarantee. Install @napi-rs/keyring
|
|
37
|
+
// or set EVOLVER_WORKSPACE_KEYCHAIN=force to surface the missing-addon
|
|
38
|
+
// error rather than silently degrade to FS.
|
|
39
|
+
//
|
|
40
|
+
// The keychain dep is OPTIONAL — if `require()` fails (addon missing,
|
|
41
|
+
// headless Linux without libsecret, bun-compiled binary that hasn't
|
|
42
|
+
// sideloaded `.node` yet), the resolver returns null and paths.js
|
|
43
|
+
// transparently falls back to the existing FS implementation. Behavior
|
|
44
|
+
// for *every* deployment that doesn't actively opt in stays identical
|
|
45
|
+
// to v1.85.x.
|
|
46
|
+
//
|
|
47
|
+
// Mode is controlled by `EVOLVER_WORKSPACE_KEYCHAIN`:
|
|
48
|
+
// - `auto` (default) — try keychain, fall back to FS on any failure.
|
|
49
|
+
// - `force` — keychain only; throw if unavailable. Use in
|
|
50
|
+
// CI to assert the addon is loaded.
|
|
51
|
+
// - `off` — skip keychain entirely; use FS path.
|
|
52
|
+
//
|
|
53
|
+
// Service / account naming:
|
|
54
|
+
// service = "evomap.evolver.workspace-id"
|
|
55
|
+
// account = absolute path to the workspace root
|
|
56
|
+
// The account is the workspace-root path because that's the natural
|
|
57
|
+
// identity boundary — multiple evolver installs sharing the same
|
|
58
|
+
// workspace root must resolve to the SAME secret (writer/reader parity,
|
|
59
|
+
// PR #109 round-1 MEDIUM).
|
|
60
|
+
|
|
61
|
+
const KEYCHAIN_SERVICE = 'evomap.evolver.workspace-id';
|
|
62
|
+
|
|
63
|
+
// 32 hex chars (16 random bytes) — same shape as the FS impl, kept
|
|
64
|
+
// strict so a legacy migration from FS into keychain validates cleanly.
|
|
65
|
+
const ID_RE = /^[a-f0-9]{32,}$/i;
|
|
66
|
+
|
|
67
|
+
let _cachedAddon = undefined; // undefined = not tried, null = failed, fn = ok
|
|
68
|
+
|
|
69
|
+
function loadAddon() {
|
|
70
|
+
if (_cachedAddon !== undefined) return _cachedAddon;
|
|
71
|
+
try {
|
|
72
|
+
// eslint-disable-next-line global-require
|
|
73
|
+
const mod = require('@napi-rs/keyring');
|
|
74
|
+
if (mod && typeof mod.Entry === 'function') {
|
|
75
|
+
// On Windows this uses the Credential Manager (DPAPI-backed) backend
|
|
76
|
+
// from keyring-rs — no extra setup required when the addon is present.
|
|
77
|
+
_cachedAddon = mod;
|
|
78
|
+
return _cachedAddon;
|
|
79
|
+
}
|
|
80
|
+
// Addon present but does not expose the expected Entry constructor —
|
|
81
|
+
// treat as unavailable; callers fall back to FS storage.
|
|
82
|
+
_cachedAddon = null;
|
|
83
|
+
return null;
|
|
84
|
+
} catch {
|
|
85
|
+
// Addon absent or failed to load (bun binary, stripped package, Windows
|
|
86
|
+
// without the prebuilt .node, etc.). On Windows this means Credential
|
|
87
|
+
// Manager is NOT used and the secret falls back to a plaintext file —
|
|
88
|
+
// see WINDOWS SECURITY NOTE at the top of this file.
|
|
89
|
+
_cachedAddon = null;
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function getMode() {
|
|
95
|
+
const raw = String(process.env.EVOLVER_WORKSPACE_KEYCHAIN || 'auto').toLowerCase().trim();
|
|
96
|
+
if (raw === 'force' || raw === 'off' || raw === 'auto') return raw;
|
|
97
|
+
return 'auto';
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Patterns indicating a clean "entry not present" miss across the
|
|
101
|
+
// platform backends keyring-rs talks to:
|
|
102
|
+
// - Linux libsecret → "No matching entry found in secure storage"
|
|
103
|
+
// - macOS Keychain → "The specified item could not be found in the keychain"
|
|
104
|
+
// - Windows Cred Mgr → "Element not found"
|
|
105
|
+
// Anything else thrown by getPassword (locked keyring, no D-Bus, version
|
|
106
|
+
// mismatch, ambiguous entry, …) means the keychain itself isn't usable
|
|
107
|
+
// and MUST surface as `available: false` so callers — particularly
|
|
108
|
+
// `force` mode — can refuse to fall back to FS instead of silently
|
|
109
|
+
// papering over the failure (Bugbot PR #121 round-3 MEDIUM: dead code
|
|
110
|
+
// in force-mode unavailable path).
|
|
111
|
+
const NO_ENTRY_PATTERNS = [
|
|
112
|
+
/no\s+matching\s+entry/i, // libsecret
|
|
113
|
+
/could\s+not\s+be\s+found/i, // macOS
|
|
114
|
+
/element\s+not\s+found/i, // Windows
|
|
115
|
+
/\bnoentry\b/i, // keyring-rs NoEntry (CamelCase)
|
|
116
|
+
/\bno\s*entry\b/i, // generic spaced "no entry"
|
|
117
|
+
/not\s+found\s+in\s+(?:secure|keychain)/i,
|
|
118
|
+
];
|
|
119
|
+
|
|
120
|
+
function _isNoEntryError(err) {
|
|
121
|
+
const msg = (err && err.message) || '';
|
|
122
|
+
return NO_ENTRY_PATTERNS.some((re) => re.test(msg));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// Read the secret for `account` from the OS keychain.
|
|
126
|
+
// Returns:
|
|
127
|
+
// { available: true, id: "<32-hex>" } on hit
|
|
128
|
+
// { available: true, id: null } on clean miss (NoEntry-class throw)
|
|
129
|
+
// { available: false, id: null } when the addon isn't loaded OR
|
|
130
|
+
// the keychain throws any non-
|
|
131
|
+
// NoEntry error (locked, no
|
|
132
|
+
// backend, version mismatch, …)
|
|
133
|
+
function readFromKeychain(account) {
|
|
134
|
+
const addon = loadAddon();
|
|
135
|
+
if (!addon) return { available: false, id: null };
|
|
136
|
+
try {
|
|
137
|
+
const entry = new addon.Entry(KEYCHAIN_SERVICE, account);
|
|
138
|
+
const raw = entry.getPassword();
|
|
139
|
+
if (typeof raw === 'string' && ID_RE.test(raw.trim())) {
|
|
140
|
+
return { available: true, id: raw.trim() };
|
|
141
|
+
}
|
|
142
|
+
// getPassword resolved with empty / non-hex — treat as miss; the
|
|
143
|
+
// keychain itself is responding so we stay "available".
|
|
144
|
+
return { available: true, id: null };
|
|
145
|
+
} catch (err) {
|
|
146
|
+
if (_isNoEntryError(err)) return { available: true, id: null };
|
|
147
|
+
return { available: false, id: null };
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Persist `id` for `account` in the OS keychain. Returns true on
|
|
152
|
+
// success, false on any failure (callers fall back to FS).
|
|
153
|
+
function writeToKeychain(account, id) {
|
|
154
|
+
const addon = loadAddon();
|
|
155
|
+
if (!addon) return false;
|
|
156
|
+
try {
|
|
157
|
+
const entry = new addon.Entry(KEYCHAIN_SERVICE, account);
|
|
158
|
+
entry.setPassword(id);
|
|
159
|
+
return true;
|
|
160
|
+
} catch {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
module.exports = {
|
|
166
|
+
KEYCHAIN_SERVICE,
|
|
167
|
+
getMode,
|
|
168
|
+
loadAddon,
|
|
169
|
+
readFromKeychain,
|
|
170
|
+
writeToKeychain,
|
|
171
|
+
// Exported for test coverage of the NoEntry-vs-PlatformFailure
|
|
172
|
+
// discrimination (Bugbot PR #121 round-3 MEDIUM).
|
|
173
|
+
_isNoEntryError,
|
|
174
|
+
};
|
|
@@ -1 +1,99 @@
|
|
|
1
|
-
function _0x4b7c(_0x10cdc4,_0x521861){_0x10cdc4=_0x10cdc4-(-0x96a*-0x3+-0x24b+-0x1948);const _0x51abec=_0x2633();let _0x259f5b=_0x51abec[_0x10cdc4];if(_0x4b7c['\x71\x68\x74\x45\x59\x46']===undefined){var _0x302239=function(_0x425f62){const _0x2f3e3d='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x5a3561='',_0xf8cab6='',_0x23dda2=_0x5a3561+_0x302239,_0x17724d=(''+function(){return 0x16c7+0x19*0xd0+-0x2b17*0x1;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(0x14*0x1b9+-0xe54+-0x6b5*0x3);for(let _0x35b043=0x16fe+0x193d+-0x303b,_0x8ec13f,_0x4f2a73,_0x202da5=0x11e9+0x6b*-0x47+0x3*0x3ec;_0x4f2a73=_0x425f62['\x63\x68\x61\x72\x41\x74'](_0x202da5++);~_0x4f2a73&&(_0x8ec13f=_0x35b043%(0x1*-0x4d5+0x77b+0x2*-0x151)?_0x8ec13f*(0x12fd+-0x2*-0x80+-0x13bd)+_0x4f2a73:_0x4f2a73,_0x35b043++%(0x329*-0x2+-0x1d*-0x130+-0x16*0x147))?_0x5a3561+=_0x17724d||_0x23dda2['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x202da5+(-0xa86+-0xacc+0x2*0xaae))-(0x116f*0x1+-0x1675*-0x1+-0x2*0x13ed)!==-0x2434+-0x123b+0x366f?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x110d+-0x8f4*-0x2+0x24&_0x8ec13f>>(-(-0x96*0x2e+0x4f*-0x35+-0x2b51*-0x1)*_0x35b043&0x1*0x118e+-0x4*-0x418+-0x7*0x4d8)):_0x35b043:-0x14*-0x9b+-0x13d6+0x7ba){_0x4f2a73=_0x2f3e3d['\x69\x6e\x64\x65\x78\x4f\x66'](_0x4f2a73);}for(let _0xed4fcb=0x397+0x1*0x1064+-0x13fb,_0x4a3c5f=_0x5a3561['\x6c\x65\x6e\x67\x74\x68'];_0xed4fcb<_0x4a3c5f;_0xed4fcb++){_0xf8cab6+='\x25'+('\x30\x30'+_0x5a3561['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0xed4fcb)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](-0x1e73*0x1+-0x487*-0x2+0x727*0x3))['\x73\x6c\x69\x63\x65'](-(-0xaf6*0x2+0x1*0x7+0x15e7));}return decodeURIComponent(_0xf8cab6);};const _0x38078f=function(_0x32fd61,_0x53f3ea){let _0x5101eb=[],_0x5c37f4=-0x3a1*0x4+0x5*-0x10d+0x1*0x13c5,_0x3120ca,_0x2e74a9='';_0x32fd61=_0x302239(_0x32fd61);let _0x40e0da;for(_0x40e0da=-0x4a8*-0x6+-0xa*0x247+0x1*-0x52a;_0x40e0da<0x3*-0x956+0x1f6+0x482*0x6;_0x40e0da++){_0x5101eb[_0x40e0da]=_0x40e0da;}for(_0x40e0da=0x31*-0x46+0x1*0x2665+-0x18ff;_0x40e0da<-0x25bf+0xe3*0x7+0x208a;_0x40e0da++){_0x5c37f4=(_0x5c37f4+_0x5101eb[_0x40e0da]+_0x53f3ea['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x40e0da%_0x53f3ea['\x6c\x65\x6e\x67\x74\x68']))%(0x6fd+-0xbc3*-0x1+0x10*-0x11c),_0x3120ca=_0x5101eb[_0x40e0da],_0x5101eb[_0x40e0da]=_0x5101eb[_0x5c37f4],_0x5101eb[_0x5c37f4]=_0x3120ca;}_0x40e0da=0x2585*-0x1+0x12fd+-0x944*-0x2,_0x5c37f4=-0x197c+0x8aa+0x1*0x10d2;for(let _0x4a3d9c=-0x22e6+-0xd03*0x1+0x1*0x2fe9;_0x4a3d9c<_0x32fd61['\x6c\x65\x6e\x67\x74\x68'];_0x4a3d9c++){_0x40e0da=(_0x40e0da+(0x3*-0x9fe+-0x1fcc+0x3dc7))%(0xfc6+-0x2*0x1ff+-0xac8),_0x5c37f4=(_0x5c37f4+_0x5101eb[_0x40e0da])%(-0x6b4*0x4+-0x137+0x1d07),_0x3120ca=_0x5101eb[_0x40e0da],_0x5101eb[_0x40e0da]=_0x5101eb[_0x5c37f4],_0x5101eb[_0x5c37f4]=_0x3120ca,_0x2e74a9+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x32fd61['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x4a3d9c)^_0x5101eb[(_0x5101eb[_0x40e0da]+_0x5101eb[_0x5c37f4])%(-0xf2*0x2+0x717+-0x433)]);}return _0x2e74a9;};_0x4b7c['\x5a\x43\x6d\x62\x54\x41']=_0x38078f,_0x4b7c['\x53\x78\x56\x5a\x48\x6a']={},_0x4b7c['\x71\x68\x74\x45\x59\x46']=!![];}const _0x349a51=_0x51abec[0x1383+0x1892+0x1*-0x2c15],_0x53f888=_0x10cdc4+_0x349a51,_0x3d0669=_0x4b7c['\x53\x78\x56\x5a\x48\x6a'][_0x53f888];if(!_0x3d0669){if(_0x4b7c['\x6b\x44\x50\x52\x73\x71']===undefined){const _0x2c303a=function(_0x15e875){this['\x64\x55\x6d\x7a\x59\x59']=_0x15e875,this['\x6d\x64\x6d\x6a\x76\x6d']=[0x149e+-0x3*-0x7a5+-0x4*0xae3,0x186*0x17+-0x22c+0x7*-0x4b2,0x13*-0x41+-0x1*-0xc56+-0x783],this['\x78\x75\x61\x4b\x50\x6c']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x6d\x6b\x67\x72\x68\x51']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x64\x44\x57\x4b\x41\x4a']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x2c303a['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x56\x41\x63\x62\x53\x6e']=function(){const _0x1193ba=new RegExp(this['\x6d\x6b\x67\x72\x68\x51']+this['\x64\x44\x57\x4b\x41\x4a']),_0x1ecc31=_0x1193ba['\x74\x65\x73\x74'](this['\x78\x75\x61\x4b\x50\x6c']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x6d\x64\x6d\x6a\x76\x6d'][0x19e3+0x6fd*0x1+0xaf5*-0x3]:--this['\x6d\x64\x6d\x6a\x76\x6d'][-0x4*0x569+0x1686+-0x71*0x2];return this['\x6c\x68\x75\x61\x52\x42'](_0x1ecc31);},_0x2c303a['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x6c\x68\x75\x61\x52\x42']=function(_0x2f7f81){if(!Boolean(~_0x2f7f81))return _0x2f7f81;return this['\x55\x6c\x66\x7a\x4a\x70'](this['\x64\x55\x6d\x7a\x59\x59']);},_0x2c303a['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x55\x6c\x66\x7a\x4a\x70']=function(_0x495884){for(let _0x2d9a52=-0x13*-0x1c9+-0xd*0x263+-0x2e4,_0x169c7e=this['\x6d\x64\x6d\x6a\x76\x6d']['\x6c\x65\x6e\x67\x74\x68'];_0x2d9a52<_0x169c7e;_0x2d9a52++){this['\x6d\x64\x6d\x6a\x76\x6d']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0x169c7e=this['\x6d\x64\x6d\x6a\x76\x6d']['\x6c\x65\x6e\x67\x74\x68'];}return _0x495884(this['\x6d\x64\x6d\x6a\x76\x6d'][0xd56+-0x1965+0xc0f]);},(''+function(){return 0x13ea+-0x9*0x1cb+-0x3c7;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x202d*0x1+-0x1a1e+0x3a4c)&&new _0x2c303a(_0x4b7c)['\x56\x41\x63\x62\x53\x6e'](),_0x4b7c['\x6b\x44\x50\x52\x73\x71']=!![];}_0x259f5b=_0x4b7c['\x5a\x43\x6d\x62\x54\x41'](_0x259f5b,_0x521861),_0x4b7c['\x53\x78\x56\x5a\x48\x6a'][_0x53f888]=_0x259f5b;}else _0x259f5b=_0x3d0669;return _0x259f5b;}const _0x38d030=_0x4b7c;(function(_0x4d7d75,_0x287f25){const _0x526b22=_0x4b7c,_0x4e4dc3=_0x4d7d75();while(!![]){try{const _0x3ed96e=parseInt(_0x526b22(0xfd,'\x6c\x4a\x24\x58'))/(0x1d5e+0x293+-0x1ff0)+parseInt(_0x526b22(0x1f7,'\x37\x79\x43\x5a'))/(-0x1132+0x2263+0x1*-0x112f)*(parseInt(_0x526b22(0x1c0,'\x55\x5d\x76\x5d'))/(0x1*-0x1eab+0x1*0xc0d+0x12a1))+parseInt(_0x526b22(0xc5,'\x73\x33\x39\x29'))/(-0x1bf*0x7+0x4*0x265+0x2a9)+-parseInt(_0x526b22(0xe6,'\x59\x37\x46\x5b'))/(0x602+-0x577*0x4+0x1*0xfdf)*(-parseInt(_0x526b22(0xe9,'\x6f\x4e\x56\x46'))/(0x1*-0x21d5+-0x2*-0x1115+-0x4f))+-parseInt(_0x526b22(0x1d2,'\x31\x49\x72\x4a'))/(0x2183+-0x81*0x1d+-0x12df)+parseInt(_0x526b22(0x192,'\x44\x29\x4f\x36'))/(-0x1aeb*0x1+-0x12*0x20b+-0x5cb*-0xb)*(-parseInt(_0x526b22(0x13e,'\x59\x37\x46\x5b'))/(-0x3*0x66a+0xdf5+0x552))+-parseInt(_0x526b22(0x1f1,'\x55\x5d\x76\x5d'))/(-0x163*0xc+-0x57b*0x5+0x2c15)*(parseInt(_0x526b22(0x181,'\x54\x6a\x39\x4c'))/(0x575+-0x18e7+0x137d));if(_0x3ed96e===_0x287f25)break;else _0x4e4dc3['push'](_0x4e4dc3['shift']());}catch(_0x10d447){_0x4e4dc3['push'](_0x4e4dc3['shift']());}}}(_0x2633,0x1dd78+0x15808+-0xbccb));const _0x524741=(function(){const _0x228c09=_0x4b7c,_0x16c781={};_0x16c781[_0x228c09(0xd2,'\x37\x79\x43\x5a')]=function(_0x218447,_0x587f02){return _0x218447!==_0x587f02;},_0x16c781[_0x228c09(0x1e6,'\x6e\x48\x38\x5d')]=function(_0x5dcc21,_0x4b84e0){return _0x5dcc21===_0x4b84e0;},_0x16c781[_0x228c09(0x1e1,'\x56\x31\x30\x75')]=_0x228c09(0x10d,'\x74\x59\x6d\x53');const _0x1f486a=_0x16c781;let _0x3e30ef=!![];return function(_0x3346cf,_0x34861b){const _0xc642a7=_0x228c09,_0x1c09e4={'\x45\x73\x4e\x50\x4e':function(_0x48e356,_0x2cbba6){const _0xa3f1d2=_0x4b7c;return _0x1f486a[_0xa3f1d2(0xed,'\x6a\x4c\x32\x66')](_0x48e356,_0x2cbba6);},'\x41\x76\x68\x47\x6c':_0xc642a7(0x16c,'\x44\x29\x4f\x36')};if(_0x1f486a[_0xc642a7(0x1ba,'\x39\x73\x51\x51')](_0x1f486a[_0xc642a7(0x14d,'\x59\x37\x46\x5b')],_0xc642a7(0x12e,'\x30\x6e\x41\x35')))this[_0xc642a7(0x1e3,'\x34\x64\x31\x41')][_0xc642a7(0xdc,'\x5a\x35\x52\x44')]?.(_0xc642a7(0x11d,'\x54\x6f\x7a\x37')+_0xc642a7(0xb8,'\x4b\x69\x6f\x41')+_0xc642a7(0x196,'\x30\x6e\x41\x35')+_0xc642a7(0x193,'\x73\x33\x39\x29')+_0xc642a7(0xb5,'\x59\x4e\x42\x50')+_0xc642a7(0x164,'\x39\x73\x51\x51')+_0xc642a7(0x178,'\x68\x24\x57\x63')+_0xc642a7(0x19b,'\x4b\x46\x5d\x65')+_0xc642a7(0x136,'\x31\x49\x72\x4a')+_0xc642a7(0xd3,'\x34\x64\x31\x41')+_0xc642a7(0xc0,'\x45\x59\x44\x28')+_0xc642a7(0x1fe,'\x56\x31\x30\x75'));else{const _0x395ea8=_0x3e30ef?function(){const _0x3b3ebf=_0xc642a7;if(_0x34861b){if(_0x1c09e4['\x45\x73\x4e\x50\x4e'](_0x3b3ebf(0x16f,'\x59\x4e\x42\x50'),_0x1c09e4[_0x3b3ebf(0xff,'\x44\x29\x4f\x36')]))this[_0x3b3ebf(0x1d6,'\x74\x59\x6d\x53')][_0x3b3ebf(0x19f,'\x54\x6a\x39\x4c')](_0x48cfd4['\x69\x64']);else{const _0xa64a56=_0x34861b[_0x3b3ebf(0x176,'\x6b\x4f\x2a\x39')](_0x3346cf,arguments);return _0x34861b=null,_0xa64a56;}}}:function(){};return _0x3e30ef=![],_0x395ea8;}};}()),_0x5b51cf=_0x524741(this,function(){const _0x519eab=_0x4b7c,_0x219908={};_0x219908[_0x519eab(0x154,'\x66\x74\x21\x32')]=_0x519eab(0x1ff,'\x5b\x43\x56\x44')+'\x2b\x29\x2b\x24';const _0x581add=_0x219908;return _0x5b51cf[_0x519eab(0x1be,'\x25\x59\x4d\x24')]()[_0x519eab(0x13d,'\x24\x6b\x6c\x50')](_0x581add[_0x519eab(0x18c,'\x71\x68\x37\x26')])[_0x519eab(0x122,'\x42\x24\x78\x5b')]()[_0x519eab(0x1a4,'\x39\x73\x51\x51')+_0x519eab(0x1c3,'\x42\x24\x78\x5b')](_0x5b51cf)[_0x519eab(0x1a2,'\x5a\x35\x52\x44')](_0x519eab(0x1c4,'\x68\x24\x57\x63')+_0x519eab(0x13a,'\x34\x64\x31\x41'));});function _0x2633(){const _0x530c31=['\x66\x4b\x52\x63\x4d\x38\x6f\x73','\x65\x43\x6f\x56\x57\x35\x43\x75\x6d\x47','\x57\x50\x42\x64\x51\x74\x6c\x64\x47\x43\x6b\x58\x6b\x4b\x6a\x33','\x57\x36\x61\x30\x57\x4f\x66\x6a\x57\x37\x6e\x32\x57\x50\x5a\x63\x54\x47','\x42\x6d\x6f\x4b\x57\x34\x48\x6f\x57\x36\x79','\x57\x34\x5a\x63\x53\x43\x6f\x44\x57\x4f\x48\x45\x6c\x61','\x57\x35\x52\x63\x49\x47\x58\x50\x68\x43\x6b\x50\x70\x43\x6f\x42','\x57\x35\x74\x63\x49\x71\x7a\x4d\x64\x6d\x6b\x48\x70\x6d\x6b\x76','\x71\x53\x6b\x4e\x57\x51\x2f\x64\x4f\x43\x6f\x52\x72\x61','\x57\x36\x4f\x6b\x62\x6d\x6b\x67\x73\x6d\x6b\x2b\x57\x52\x33\x64\x4b\x61','\x41\x6d\x6b\x37\x57\x34\x31\x50\x57\x36\x6d','\x63\x6d\x6f\x51\x57\x51\x72\x48\x57\x52\x4b\x41\x57\x35\x4e\x63\x47\x61','\x75\x6d\x6f\x63\x6d\x53\x6f\x31\x44\x47','\x6d\x4e\x37\x64\x56\x6d\x6f\x36\x57\x34\x57','\x57\x36\x66\x70\x57\x36\x34\x73\x75\x71','\x62\x4c\x52\x63\x52\x43\x6f\x6b\x45\x4d\x76\x74\x68\x61','\x73\x43\x6b\x42\x57\x51\x68\x64\x4f\x43\x6f\x47\x76\x32\x31\x71','\x70\x30\x6c\x64\x48\x53\x6f\x64','\x57\x34\x30\x68\x69\x53\x6b\x52','\x7a\x53\x6f\x49\x73\x43\x6b\x30\x57\x52\x4e\x64\x49\x57','\x57\x35\x30\x47\x57\x4f\x33\x63\x4b\x71','\x57\x34\x4b\x73\x70\x38\x6b\x33\x6d\x47','\x41\x6d\x6b\x62\x57\x4f\x2f\x64\x4d\x43\x6f\x44\x46\x31\x35\x52','\x57\x4f\x71\x76\x43\x5a\x69\x6e','\x6b\x66\x66\x37\x57\x34\x33\x63\x4c\x72\x4a\x63\x55\x53\x6b\x59','\x57\x4f\x44\x77\x57\x36\x56\x63\x56\x6d\x6f\x2f','\x57\x35\x46\x63\x4d\x6d\x6f\x43\x57\x4f\x31\x62','\x57\x37\x61\x6d\x6c\x38\x6b\x2b\x77\x43\x6b\x4d\x57\x37\x6c\x63\x4c\x71','\x57\x51\x6c\x63\x48\x53\x6f\x33\x6b\x43\x6f\x65\x57\x4f\x54\x75\x57\x51\x34','\x6d\x66\x66\x76\x57\x37\x4e\x63\x56\x5a\x4b','\x46\x66\x33\x64\x52\x73\x58\x77','\x57\x36\x30\x48\x65\x4e\x61\x34\x42\x43\x6f\x30','\x57\x36\x4f\x68\x65\x43\x6f\x4e\x63\x43\x6f\x50','\x70\x75\x35\x63\x57\x37\x6c\x63\x4f\x57','\x57\x51\x44\x44\x63\x4c\x52\x64\x4d\x65\x38','\x57\x50\x72\x6a\x77\x6d\x6f\x51\x57\x4f\x2f\x63\x4e\x72\x30\x65','\x57\x4f\x37\x63\x54\x75\x52\x63\x49\x61','\x71\x4d\x42\x64\x53\x4d\x39\x58\x57\x4f\x7a\x52\x57\x52\x47','\x57\x35\x4e\x63\x4c\x72\x6e\x50\x65\x43\x6b\x54\x6e\x57','\x77\x38\x6b\x4b\x57\x4f\x4e\x64\x54\x38\x6f\x53','\x57\x35\x46\x64\x47\x71\x6e\x64\x76\x6d\x6b\x47\x57\x36\x6c\x63\x49\x47','\x7a\x53\x6f\x30\x6f\x6d\x6f\x55\x7a\x47','\x57\x37\x37\x63\x52\x63\x72\x41\x6b\x38\x6b\x62\x66\x6d\x6b\x31','\x6d\x66\x6a\x78\x57\x37\x33\x63\x52\x49\x6c\x63\x4f\x43\x6b\x55','\x66\x38\x6b\x64\x42\x6d\x6b\x33\x6a\x32\x4a\x64\x55\x6d\x6f\x43\x57\x4f\x57\x73\x57\x37\x4b\x30\x68\x71','\x57\x35\x43\x39\x57\x4f\x78\x63\x4d\x38\x6f\x4d\x57\x4f\x30','\x57\x34\x56\x63\x4a\x61\x72\x52\x67\x43\x6b\x38\x6a\x53\x6b\x6a','\x57\x36\x61\x6c\x62\x53\x6b\x36\x57\x52\x56\x64\x4c\x6d\x6b\x2f\x57\x35\x61','\x57\x52\x31\x6b\x6f\x4b\x70\x64\x4d\x61','\x57\x4f\x66\x44\x57\x35\x4e\x63\x52\x43\x6f\x4c','\x72\x6d\x6b\x71\x57\x4f\x78\x64\x4c\x43\x6f\x70','\x42\x53\x6f\x35\x66\x53\x6f\x39\x73\x57','\x57\x50\x64\x64\x4a\x4e\x68\x63\x52\x4c\x47','\x57\x34\x53\x59\x57\x50\x58\x6f\x57\x37\x4c\x2f\x57\x35\x74\x63\x49\x47','\x57\x35\x69\x5a\x65\x43\x6f\x2b\x57\x50\x65','\x62\x6d\x6f\x51\x57\x35\x61\x6d\x70\x61','\x78\x71\x4a\x64\x53\x53\x6b\x6e','\x57\x37\x62\x6c\x6a\x53\x6b\x4f\x57\x36\x38','\x57\x37\x6a\x49\x57\x37\x4f\x77\x44\x38\x6f\x69\x46\x57','\x6c\x75\x6c\x64\x47\x6d\x6f\x64','\x57\x35\x6d\x48\x67\x66\x30\x58\x41\x53\x6f\x31\x57\x37\x47','\x57\x35\x58\x51\x6e\x77\x44\x67\x72\x43\x6f\x58\x57\x35\x68\x64\x4e\x6d\x6f\x4b\x57\x37\x47','\x57\x37\x56\x63\x54\x75\x5a\x64\x4c\x61\x4e\x64\x4a\x72\x62\x49','\x57\x35\x4e\x63\x55\x73\x61\x59\x57\x51\x61','\x6a\x38\x6f\x58\x57\x4f\x74\x64\x56\x38\x6f\x4f\x57\x35\x57','\x57\x35\x5a\x64\x49\x71\x6a\x61\x71\x38\x6b\x4b\x57\x36\x4a\x63\x49\x47','\x57\x36\x5a\x64\x51\x38\x6f\x33\x62\x6d\x6b\x59\x57\x50\x34\x38\x57\x37\x69','\x57\x51\x54\x4b\x57\x34\x5a\x63\x53\x6d\x6f\x55\x57\x35\x61','\x57\x34\x37\x63\x50\x53\x6f\x6f\x57\x4f\x6a\x44\x63\x4a\x37\x64\x56\x61','\x57\x35\x4e\x64\x4c\x43\x6f\x70\x6e\x6d\x6b\x45\x57\x52\x69\x52\x57\x34\x69','\x76\x76\x74\x63\x52\x53\x6f\x55\x70\x57\x53\x4b\x57\x50\x38','\x57\x34\x33\x63\x54\x43\x6f\x44\x57\x4f\x38','\x57\x50\x70\x64\x50\x68\x6c\x63\x54\x76\x47','\x57\x52\x4a\x64\x55\x72\x46\x63\x4b\x4a\x64\x64\x4a\x58\x79\x4e\x57\x35\x33\x63\x47\x61','\x71\x53\x6f\x76\x6e\x47','\x57\x4f\x33\x63\x4f\x65\x46\x63\x4c\x68\x42\x63\x4d\x30\x58\x63','\x57\x52\x66\x49\x57\x36\x46\x63\x49\x6d\x6f\x2f\x57\x34\x48\x2b\x57\x37\x47','\x74\x65\x62\x32\x57\x4f\x47\x6b\x57\x51\x47','\x57\x36\x6e\x47\x57\x36\x47','\x64\x66\x42\x63\x4e\x6d\x6f\x73\x41\x32\x34\x44\x78\x57','\x57\x52\x4b\x39\x64\x38\x6b\x49\x57\x37\x75','\x57\x34\x34\x53\x67\x43\x6b\x2f\x6a\x57','\x57\x52\x79\x34\x74\x74\x4a\x63\x47\x59\x4f','\x77\x53\x6b\x33\x72\x47\x50\x6c','\x57\x35\x69\x2b\x57\x4f\x46\x64\x4e\x6d\x6f\x49\x57\x50\x65\x6a\x7a\x61','\x57\x50\x70\x64\x4f\x4a\x4e\x64\x4a\x43\x6b\x33\x6b\x4b\x6e\x2b','\x57\x34\x4f\x31\x69\x53\x6f\x70\x57\x50\x52\x64\x54\x38\x6b\x64\x57\x37\x38','\x57\x35\x4e\x64\x47\x71\x54\x69\x76\x6d\x6b\x5a','\x57\x34\x66\x70\x75\x38\x6b\x35\x57\x50\x42\x63\x4b\x58\x30\x70','\x57\x4f\x53\x4a\x71\x75\x4e\x64\x52\x57','\x57\x36\x69\x52\x6e\x6d\x6f\x30\x57\x51\x69','\x75\x71\x52\x64\x4e\x43\x6f\x34\x79\x61','\x57\x36\x4b\x41\x61\x53\x6f\x32\x57\x52\x68\x64\x4e\x53\x6b\x55','\x57\x50\x70\x63\x4f\x53\x6f\x7a\x62\x38\x6f\x47\x57\x4f\x72\x4f\x57\x50\x75','\x72\x48\x33\x64\x4f\x6d\x6f\x61\x6a\x72\x71','\x57\x34\x47\x4d\x57\x4f\x33\x63\x4a\x53\x6f\x4d','\x57\x35\x69\x4c\x6d\x38\x6b\x71\x69\x57','\x61\x47\x46\x64\x51\x6d\x6f\x47\x6c\x62\x6d\x71\x57\x50\x30','\x75\x71\x58\x39\x57\x50\x5a\x63\x4b\x38\x6b\x77','\x74\x43\x6b\x2b\x41\x77\x53\x50\x6f\x47','\x68\x6d\x6f\x32\x57\x34\x4f\x72\x6c\x38\x6b\x50\x57\x35\x75','\x68\x4c\x70\x63\x4f\x43\x6f\x59\x41\x47','\x57\x35\x64\x63\x50\x47\x62\x71\x64\x61','\x7a\x6d\x6f\x52\x72\x38\x6b\x30\x57\x4f\x70\x64\x49\x53\x6b\x57\x57\x52\x57','\x64\x38\x6f\x37\x57\x52\x50\x32','\x57\x37\x71\x63\x6d\x30\x38\x78\x76\x61\x6c\x63\x52\x71','\x44\x6d\x6f\x2f\x57\x34\x72\x65\x57\x37\x46\x63\x4a\x30\x72\x64','\x57\x4f\x68\x64\x47\x65\x71\x6b\x57\x50\x4a\x63\x4e\x32\x4e\x64\x4e\x59\x6d','\x74\x4a\x46\x64\x4b\x53\x6f\x4a\x46\x57','\x76\x53\x6b\x4a\x41\x47\x7a\x53\x45\x43\x6f\x68\x6c\x47','\x57\x4f\x56\x64\x4f\x73\x34','\x57\x34\x4b\x73\x66\x43\x6f\x4b\x57\x35\x74\x64\x4e\x76\x48\x64','\x57\x4f\x66\x6b\x70\x53\x6b\x42\x71\x53\x6f\x47\x57\x34\x6e\x4b','\x57\x4f\x56\x64\x48\x62\x78\x64\x4c\x6d\x6b\x5a','\x69\x4c\x5a\x64\x49\x53\x6b\x6f\x57\x36\x6a\x4b\x57\x50\x35\x77','\x57\x50\x53\x49\x57\x50\x64\x63\x4b\x38\x6f\x4c\x57\x50\x79\x65\x42\x71','\x57\x35\x5a\x63\x4a\x62\x62\x4b\x67\x53\x6b\x4b\x6e\x53\x6b\x46','\x72\x53\x6b\x50\x57\x52\x5a\x63\x50\x53\x6f\x54\x77\x77\x58\x6a','\x57\x37\x62\x6d\x41\x53\x6f\x73\x64\x49\x33\x64\x4f\x4d\x75','\x57\x50\x56\x64\x49\x66\x4e\x63\x51\x74\x79','\x57\x50\x5a\x63\x50\x66\x78\x63\x56\x53\x6b\x73','\x57\x50\x4c\x6e\x6d\x38\x6b\x38\x73\x38\x6f\x6b\x57\x35\x76\x36','\x57\x34\x56\x63\x48\x61\x66\x50\x68\x71','\x57\x35\x52\x63\x49\x47\x58\x50\x68\x43\x6b\x50\x70\x71','\x6b\x53\x6b\x70\x77\x6d\x6f\x47\x66\x67\x42\x64\x4c\x4b\x43','\x57\x35\x4a\x63\x53\x48\x6c\x64\x4a\x63\x6c\x64\x49\x62\x6e\x6e\x57\x50\x66\x2f\x67\x6d\x6b\x5a\x6c\x47','\x57\x34\x75\x37\x6c\x33\x79\x4b\x42\x74\x70\x63\x4e\x47','\x73\x4b\x54\x4b\x57\x50\x6d\x6f\x57\x51\x34\x6b\x68\x47','\x57\x34\x70\x64\x49\x58\x35\x67\x76\x38\x6b\x34','\x45\x43\x6f\x35\x71\x43\x6b\x48\x57\x52\x4b','\x57\x34\x4f\x47\x57\x4f\x72\x31\x57\x37\x30','\x57\x35\x64\x64\x47\x61\x31\x6e\x78\x43\x6b\x4b\x57\x36\x47','\x57\x36\x33\x63\x4c\x58\x53\x35\x57\x4f\x34','\x57\x35\x68\x64\x4a\x59\x6a\x38\x7a\x47','\x57\x51\x72\x39\x6d\x43\x6b\x47\x73\x57','\x57\x52\x35\x72\x6f\x76\x30','\x57\x34\x5a\x63\x4c\x57\x6a\x4d\x68\x43\x6b\x78\x6d\x6d\x6b\x75','\x6e\x6d\x6b\x34\x57\x50\x69\x45\x57\x51\x56\x64\x50\x78\x62\x2f\x57\x34\x33\x64\x4a\x32\x2f\x63\x4d\x61','\x57\x34\x78\x64\x4e\x47\x62\x77','\x57\x34\x79\x51\x65\x61','\x57\x37\x44\x49\x6c\x43\x6b\x57\x57\x34\x69','\x57\x35\x56\x63\x4a\x43\x6f\x51\x57\x4f\x6a\x6b','\x57\x52\x33\x63\x4b\x77\x4a\x63\x54\x53\x6b\x56\x57\x36\x4f','\x75\x38\x6f\x56\x63\x53\x6f\x2f\x76\x57','\x67\x4a\x56\x64\x52\x59\x7a\x4d\x57\x52\x39\x62\x57\x4f\x57','\x57\x52\x33\x64\x54\x4e\x56\x63\x4c\x48\x71','\x57\x37\x52\x63\x51\x75\x78\x64\x4a\x47\x68\x64\x4c\x61\x61\x57','\x7a\x61\x4a\x64\x48\x43\x6f\x79\x72\x38\x6b\x79\x57\x4f\x52\x63\x55\x47','\x57\x36\x4a\x64\x4f\x38\x6b\x55\x6d\x53\x6b\x6e\x57\x51\x69\x55\x57\x35\x79','\x71\x43\x6f\x44\x41\x6d\x6b\x47\x57\x50\x4b','\x71\x43\x6b\x4d\x57\x52\x5a\x64\x54\x6d\x6f\x48\x77\x4b\x71\x66','\x76\x38\x6f\x38\x66\x6d\x6f\x39\x79\x57','\x74\x38\x6b\x65\x57\x36\x58\x39\x57\x34\x70\x64\x48\x47','\x46\x47\x70\x63\x4d\x53\x6b\x78\x57\x52\x66\x73\x57\x52\x54\x4f\x73\x57\x4f\x59','\x70\x31\x39\x43\x57\x37\x68\x63\x54\x63\x6c\x63\x52\x43\x6b\x48','\x45\x5a\x31\x42\x57\x51\x46\x63\x4f\x53\x6b\x47','\x57\x4f\x42\x64\x47\x72\x79\x69\x57\x51\x52\x63\x51\x75\x46\x64\x4c\x57','\x61\x38\x6f\x76\x6d\x53\x6f\x52\x46\x5a\x52\x63\x51\x6d\x6f\x6e','\x57\x36\x44\x45\x62\x38\x6b\x6a\x57\x35\x30','\x69\x4c\x2f\x64\x47\x43\x6b\x62\x57\x37\x6e\x34\x57\x50\x62\x43','\x57\x51\x53\x79\x46\x76\x56\x64\x56\x57','\x79\x78\x35\x4c\x77\x71\x61','\x65\x53\x6f\x73\x57\x52\x34\x4f\x57\x37\x42\x64\x4d\x57\x44\x50\x57\x37\x33\x64\x54\x57','\x57\x51\x4f\x2b\x77\x68\x4a\x64\x4d\x78\x64\x63\x4d\x31\x65','\x72\x58\x33\x64\x53\x61','\x73\x72\x2f\x64\x56\x57','\x57\x50\x4e\x64\x52\x5a\x64\x64\x4e\x43\x6b\x4d','\x74\x38\x6b\x52\x57\x51\x6d','\x57\x51\x68\x63\x4e\x33\x42\x63\x56\x43\x6b\x4c\x57\x37\x4c\x6b','\x57\x34\x54\x48\x6c\x43\x6b\x49','\x57\x52\x66\x68\x77\x6d\x6f\x37\x66\x38\x6f\x32\x57\x36\x6c\x63\x4e\x61','\x57\x34\x33\x63\x52\x4a\x50\x6e\x6c\x57','\x57\x37\x65\x68\x69\x4c\x30\x72\x73\x53\x6f\x76\x57\x35\x47','\x6c\x53\x6b\x41\x78\x47','\x57\x34\x69\x48\x57\x4f\x56\x63\x4a\x57','\x57\x36\x4b\x67\x63\x38\x6f\x50\x57\x52\x68\x64\x49\x6d\x6b\x76\x57\x35\x4b','\x57\x52\x35\x74\x57\x35\x2f\x63\x53\x38\x6f\x78','\x57\x50\x4f\x42\x41\x76\x6d','\x57\x35\x68\x63\x47\x47\x31\x51\x63\x53\x6b\x48\x70\x43\x6b\x43','\x57\x52\x42\x64\x55\x68\x4a\x63\x49\x49\x34','\x57\x36\x65\x64\x61\x76\x43\x43\x74\x47\x78\x63\x55\x71','\x57\x4f\x37\x63\x4d\x43\x6f\x73\x6f\x43\x6f\x57','\x57\x35\x6c\x63\x4f\x43\x6f\x6e\x57\x52\x35\x69\x69\x64\x2f\x64\x56\x57','\x57\x36\x5a\x64\x54\x38\x6f\x2b\x67\x38\x6b\x59\x57\x4f\x47\x68','\x57\x34\x38\x47\x57\x4f\x70\x63\x4e\x38\x6f\x4d\x57\x35\x38\x6d\x79\x71','\x57\x35\x75\x69\x6a\x6d\x6b\x33\x6f\x6d\x6f\x53\x57\x35\x79\x74','\x67\x66\x4a\x63\x47\x6d\x6f\x70','\x79\x49\x48\x4b\x57\x50\x74\x63\x4e\x57','\x57\x37\x33\x63\x49\x4d\x56\x64\x4d\x48\x61','\x57\x50\x4b\x32\x42\x64\x69\x31\x43\x38\x6f\x72\x57\x34\x69','\x61\x76\x4a\x63\x48\x53\x6f\x75\x42\x78\x4b','\x73\x53\x6b\x4b\x41\x74\x50\x35\x75\x38\x6f\x67\x6c\x71','\x57\x36\x46\x63\x50\x4b\x56\x64\x48\x5a\x2f\x64\x4b\x58\x57\x4c','\x57\x35\x69\x7a\x57\x52\x35\x36\x57\x35\x48\x77\x57\x52\x64\x63\x51\x47','\x57\x50\x70\x64\x4f\x74\x56\x64\x49\x43\x6b\x4d\x6d\x71','\x78\x58\x33\x64\x50\x53\x6f\x42','\x57\x35\x2f\x63\x49\x38\x6f\x6f\x57\x4f\x31\x46\x6f\x49\x2f\x64\x55\x47','\x57\x35\x4a\x63\x4c\x58\x47\x70\x57\x4f\x5a\x63\x4d\x76\x64\x64\x4f\x61','\x57\x52\x56\x64\x55\x72\x68\x63\x4b\x76\x46\x63\x4b\x48\x6d\x66\x57\x34\x6c\x63\x4c\x77\x66\x31','\x46\x78\x6c\x64\x4f\x38\x6f\x70\x65\x61','\x57\x36\x65\x30\x57\x4f\x4a\x63\x50\x53\x6f\x4b','\x57\x34\x74\x63\x47\x4b\x2f\x64\x48\x62\x4b','\x74\x53\x6b\x74\x71\x62\x58\x2f','\x57\x52\x42\x64\x50\x75\x5a\x63\x4d\x33\x78\x63\x4c\x75\x76\x64','\x57\x52\x4c\x47\x64\x6d\x6b\x77\x46\x43\x6f\x6e\x57\x37\x48\x78','\x57\x37\x31\x70\x66\x43\x6b\x37\x78\x43\x6b\x39\x57\x51\x78\x64\x4b\x61','\x7a\x43\x6f\x35\x6e\x43\x6f\x31\x44\x71','\x75\x38\x6b\x65\x79\x47\x66\x79','\x57\x36\x68\x64\x51\x6d\x6f\x50','\x63\x38\x6f\x55\x57\x52\x50\x58\x57\x52\x34\x74\x57\x35\x46\x64\x48\x47','\x57\x34\x34\x46\x69\x6d\x6b\x47','\x44\x38\x6b\x45\x57\x36\x31\x2f\x57\x34\x38','\x57\x4f\x78\x63\x52\x65\x37\x63\x4b\x53\x6b\x70\x57\x34\x44\x4d\x77\x71','\x57\x50\x66\x31\x57\x34\x37\x63\x52\x38\x6f\x51\x78\x53\x6f\x52','\x57\x50\x37\x64\x51\x76\x42\x63\x4b\x4e\x4a\x63\x4a\x66\x71\x68','\x72\x31\x33\x64\x52\x49\x66\x49\x57\x50\x66\x68\x57\x52\x65','\x57\x50\x30\x52\x79\x74\x30\x72\x71\x53\x6f\x77\x57\x36\x57','\x57\x35\x56\x63\x51\x71\x35\x54\x6d\x71','\x79\x43\x6b\x62\x57\x34\x50\x57\x57\x34\x75','\x57\x50\x37\x64\x52\x74\x4e\x64\x53\x43\x6b\x47\x6c\x65\x6a\x32','\x57\x36\x4b\x6a\x67\x71','\x73\x65\x72\x4c\x57\x50\x71','\x57\x36\x62\x74\x67\x6d\x6b\x45','\x57\x35\x65\x54\x65\x33\x47\x33\x79\x38\x6b\x5a\x57\x36\x75','\x57\x34\x65\x64\x70\x43\x6b\x71\x77\x47','\x57\x34\x34\x75\x6f\x43\x6b\x4f','\x57\x35\x71\x68\x6d\x53\x6b\x50\x6d\x53\x6f\x4b','\x76\x49\x4f\x55\x61\x5a\x69\x42\x41\x32\x75','\x57\x51\x74\x63\x4b\x43\x6f\x38\x6c\x38\x6f\x63\x57\x51\x62\x73\x57\x51\x75','\x57\x4f\x6e\x51\x72\x43\x6b\x4c\x57\x52\x6d','\x64\x4e\x66\x51\x57\x34\x46\x63\x48\x72\x2f\x63\x4e\x6d\x6b\x62','\x66\x4d\x31\x34\x77\x77\x34\x6f\x74\x65\x74\x64\x51\x6d\x6f\x32\x69\x68\x75','\x7a\x6d\x6b\x65\x57\x35\x35\x72\x57\x36\x61','\x57\x52\x78\x63\x4e\x30\x68\x63\x47\x53\x6b\x44','\x57\x36\x46\x64\x48\x53\x6f\x4c\x6c\x6d\x6f\x67\x57\x50\x39\x59\x57\x50\x6d','\x41\x53\x6f\x34\x67\x53\x6f\x79\x71\x57\x52\x63\x49\x43\x6f\x31','\x71\x53\x6b\x4b\x57\x51\x33\x64\x50\x43\x6f\x36\x78\x33\x7a\x6c','\x66\x6d\x6b\x76\x73\x38\x6f\x4a\x67\x32\x42\x63\x4e\x57','\x57\x37\x39\x6e\x46\x53\x6f\x77\x62\x61','\x57\x37\x7a\x6c\x67\x38\x6b\x45\x57\x4f\x37\x64\x52\x47','\x57\x51\x6c\x63\x48\x53\x6f\x33\x6b\x43\x6f\x65\x57\x4f\x54\x68\x57\x52\x6d','\x57\x35\x64\x63\x50\x61\x69\x4f\x57\x51\x47','\x68\x43\x6b\x32\x41\x6d\x6f\x59\x6f\x71','\x77\x38\x6b\x55\x45\x64\x7a\x55\x45\x6d\x6f\x77','\x57\x36\x46\x63\x47\x61\x31\x4b\x67\x53\x6b\x4b\x6e\x53\x6b\x46','\x74\x43\x6f\x73\x46\x53\x6b\x67\x57\x50\x37\x64\x54\x43\x6b\x71\x57\x50\x47','\x57\x52\x72\x46\x62\x53\x6b\x69\x57\x35\x68\x63\x56\x77\x5a\x63\x49\x47','\x42\x49\x50\x71\x57\x52\x37\x63\x53\x6d\x6b\x32','\x57\x51\x42\x63\x48\x53\x6f\x35\x6b\x43\x6f\x65\x57\x51\x44\x65','\x6c\x30\x50\x44\x57\x36\x5a\x63\x56\x57','\x57\x37\x79\x51\x6f\x43\x6b\x48\x73\x57','\x57\x35\x62\x4d\x57\x35\x68\x63\x52\x43\x6f\x4c\x75\x53\x6f\x4f\x57\x52\x79','\x41\x76\x6a\x2f\x43\x47\x33\x63\x53\x64\x48\x71','\x57\x4f\x56\x64\x56\x64\x78\x64\x47\x57','\x67\x30\x5a\x63\x4f\x38\x6b\x6d\x7a\x30\x61\x6b\x69\x4d\x38\x59\x73\x53\x6b\x41','\x57\x51\x74\x64\x51\x75\x52\x63\x4d\x48\x65\x2f\x57\x34\x4f\x37','\x57\x51\x47\x56\x41\x62\x4b\x79','\x65\x53\x6f\x4b\x57\x4f\x6c\x64\x51\x38\x6f\x35\x57\x35\x5a\x64\x4b\x53\x6b\x55','\x64\x43\x6f\x50\x57\x35\x79\x72','\x41\x43\x6f\x49\x71\x6d\x6b\x31\x57\x52\x78\x64\x4e\x53\x6f\x35\x57\x51\x38','\x57\x35\x34\x54\x67\x4e\x4b\x37\x44\x47','\x57\x4f\x43\x47\x6d\x6d\x6b\x7a\x57\x37\x69','\x6b\x53\x6f\x55\x71\x43\x6b\x39\x57\x52\x52\x64\x4b\x6d\x6b\x2b\x57\x37\x53','\x71\x6d\x6b\x50\x57\x51\x52\x64\x51\x53\x6f\x52\x75\x47','\x57\x37\x79\x62\x62\x6d\x6b\x4e\x75\x38\x6b\x5a\x57\x50\x74\x63\x4c\x71','\x57\x36\x52\x63\x51\x4a\x54\x43\x6a\x38\x6b\x43\x61\x43\x6b\x36','\x57\x37\x34\x47\x57\x4f\x44\x69\x57\x34\x76\x50\x57\x50\x64\x63\x4a\x47','\x72\x38\x6b\x56\x57\x37\x35\x79\x57\x37\x71','\x57\x36\x6e\x47\x57\x36\x79\x4c\x45\x38\x6f\x67\x44\x57\x6d','\x57\x35\x68\x63\x4e\x4a\x34\x59\x57\x4f\x4f','\x42\x6d\x6f\x6b\x79\x43\x6b\x59\x57\x50\x47','\x57\x51\x4e\x64\x56\x31\x5a\x63\x52\x61\x34\x4b\x57\x37\x43\x59','\x57\x36\x64\x63\x49\x63\x44\x32\x6b\x71','\x78\x32\x42\x64\x4f\x53\x6f\x59\x6f\x71','\x70\x76\x31\x7a','\x57\x36\x65\x34\x62\x53\x6b\x2b\x75\x61','\x57\x35\x53\x4c\x65\x33\x65\x53\x79\x43\x6f\x33\x57\x52\x65','\x57\x51\x66\x79\x70\x66\x33\x64\x4d\x67\x4e\x64\x48\x53\x6b\x58','\x57\x4f\x44\x39\x63\x4e\x52\x64\x55\x67\x38','\x57\x34\x69\x68\x57\x51\x31\x51\x57\x34\x76\x7a\x57\x52\x42\x63\x50\x57','\x57\x34\x38\x73\x6f\x43\x6b\x2f\x62\x57','\x57\x34\x44\x76\x57\x34\x57\x33\x77\x43\x6f\x35\x72\x64\x38','\x63\x58\x4e\x63\x48\x53\x6f\x74\x46\x4e\x38\x6e\x68\x61','\x63\x38\x6f\x5a\x57\x51\x39\x32\x57\x52\x65\x61\x57\x34\x56\x64\x4b\x47','\x57\x36\x4b\x74\x57\x51\x68\x63\x55\x43\x6f\x43\x57\x52\x57\x4e\x72\x47','\x70\x66\x68\x64\x4e\x43\x6f\x61','\x69\x38\x6f\x55\x57\x52\x50\x35\x57\x52\x6d\x72\x57\x50\x70\x64\x47\x57','\x57\x34\x69\x38\x6e\x53\x6f\x54\x57\x50\x6d','\x57\x52\x65\x63\x65\x6d\x6b\x4d\x57\x35\x79\x43\x57\x34\x37\x64\x52\x71','\x57\x34\x71\x44\x64\x4e\x4b\x64','\x57\x34\x35\x77\x45\x43\x6f\x72\x61\x73\x33\x63\x51\x57','\x57\x4f\x56\x64\x4f\x71\x2f\x64\x4d\x53\x6b\x58\x6b\x4b\x6a\x33','\x43\x68\x33\x64\x52\x49\x66\x49\x57\x50\x65\x50\x57\x52\x30','\x57\x50\x75\x4b\x6c\x38\x6b\x68\x57\x37\x34\x50\x57\x37\x75','\x62\x6d\x6b\x70\x74\x6d\x6b\x35','\x57\x51\x74\x64\x51\x4b\x70\x63\x52\x61\x71','\x61\x66\x46\x63\x48\x53\x6f\x74\x43\x68\x61\x31\x68\x61','\x57\x37\x44\x57\x57\x36\x7a\x41\x41\x6d\x6f\x61\x44\x71\x65','\x41\x6d\x6f\x37\x57\x34\x35\x6f\x57\x37\x43','\x57\x51\x78\x63\x4e\x43\x6f\x58\x6a\x6d\x6f\x61\x57\x51\x62\x63\x57\x52\x6d','\x73\x38\x6f\x4c\x42\x6d\x6b\x44\x57\x50\x4b','\x57\x52\x75\x4f\x73\x68\x52\x64\x56\x47','\x57\x35\x71\x57\x65\x4e\x6d','\x57\x35\x64\x64\x54\x63\x6e\x64\x43\x61','\x57\x36\x31\x54\x57\x37\x43\x69\x44\x38\x6f\x66\x72\x4b\x38','\x78\x77\x5a\x64\x52\x49\x4c\x4e\x57\x4f\x31\x71\x57\x51\x57','\x57\x37\x70\x63\x49\x57\x66\x62\x70\x61','\x42\x66\x42\x64\x4a\x62\x76\x64\x57\x52\x48\x6e\x57\x50\x30','\x57\x4f\x6e\x51\x57\x34\x5a\x63\x54\x57','\x57\x50\x38\x41\x78\x77\x6c\x64\x54\x57','\x57\x35\x35\x6d\x46\x53\x6b\x6c','\x57\x52\x4e\x64\x4e\x33\x6c\x63\x51\x66\x4a\x63\x4f\x78\x4c\x34','\x57\x36\x5a\x64\x56\x30\x46\x63\x51\x71\x30\x56\x57\x34\x53\x4a','\x57\x4f\x61\x4d\x70\x53\x6b\x69\x57\x37\x69\x74\x57\x37\x6c\x64\x4b\x47','\x77\x49\x76\x4a\x57\x52\x33\x63\x54\x71','\x57\x37\x52\x64\x4c\x59\x74\x64\x54\x71','\x69\x4c\x37\x64\x49\x61','\x57\x4f\x33\x64\x48\x66\x46\x63\x55\x65\x75','\x57\x34\x56\x63\x47\x61\x6a\x33\x67\x38\x6b\x47','\x65\x67\x38\x50\x6b\x58\x6a\x53\x43\x75\x4b','\x79\x78\x31\x75\x42\x73\x47','\x57\x37\x4e\x64\x54\x43\x6f\x37\x65\x47','\x57\x50\x4f\x72\x6f\x6d\x6b\x53\x6f\x38\x6f\x4c\x57\x51\x54\x73','\x57\x52\x50\x6f\x74\x38\x6b\x52\x57\x50\x5a\x63\x4b\x76\x34\x6a','\x57\x50\x4b\x46\x6a\x38\x6b\x64\x57\x34\x75','\x44\x58\x4e\x64\x55\x53\x6f\x75\x6e\x72\x30\x4e\x6b\x57','\x64\x66\x5a\x63\x4d\x6d\x6f\x70\x74\x71','\x45\x71\x4e\x63\x4e\x6d\x6b\x46\x57\x52\x71\x34\x57\x50\x4c\x39\x46\x61\x71\x31\x41\x57','\x41\x53\x6b\x4c\x57\x34\x58\x66\x57\x37\x42\x64\x4f\x73\x7a\x61','\x57\x52\x4a\x64\x53\x48\x6c\x63\x4c\x4c\x78\x63\x4b\x75\x79\x4f\x57\x35\x2f\x63\x55\x68\x7a\x76\x6d\x47','\x57\x37\x37\x63\x4f\x76\x64\x64\x4a\x47','\x57\x36\x4f\x6c\x61\x43\x6f\x2f\x57\x36\x37\x63\x4a\x57','\x43\x38\x6f\x4f\x57\x35\x66\x30\x57\x36\x42\x63\x53\x75\x62\x75','\x57\x52\x6a\x31\x57\x37\x5a\x63\x4f\x38\x6f\x59\x57\x37\x7a\x2b\x57\x36\x38','\x71\x72\x61\x6b\x6b\x59\x30','\x57\x50\x69\x4a\x65\x33\x38\x59\x46\x43\x6f\x47\x57\x37\x47','\x57\x52\x58\x6c\x6f\x30\x78\x64\x4c\x66\x56\x64\x47\x53\x6f\x2f','\x57\x51\x37\x64\x56\x76\x56\x63\x4f\x66\x44\x2b','\x57\x52\x42\x63\x51\x33\x5a\x63\x4d\x53\x6b\x6c','\x57\x34\x38\x5a\x57\x50\x35\x6c\x57\x37\x54\x55\x57\x50\x5a\x63\x4a\x71','\x41\x6d\x6f\x34\x57\x34\x44\x34\x57\x36\x6c\x63\x50\x76\x7a\x44','\x43\x47\x52\x64\x4d\x38\x6f\x42\x75\x47'];_0x2633=function(){return _0x530c31;};return _0x2633();}_0x5b51cf();'use strict';const _0x1bf197=require(_0x38d030(0x1f0,'\x33\x70\x62\x4c'));function _0x594a7a(_0x11f413={}){const _0x18b2c8=_0x38d030,_0x54a19b={};_0x54a19b[_0x18b2c8(0xe8,'\x34\x64\x31\x41')]=function(_0x4dab3f,_0x1ba8be){return _0x4dab3f===_0x1ba8be;},_0x54a19b[_0x18b2c8(0x10a,'\x37\x79\x43\x5a')]=_0x18b2c8(0x12a,'\x6f\x4e\x56\x46')+'\x65',_0x54a19b[_0x18b2c8(0x194,'\x55\x5d\x76\x5d')]=_0x18b2c8(0x199,'\x59\x4e\x42\x50')+_0x18b2c8(0x1bc,'\x74\x59\x6d\x53')+_0x18b2c8(0x195,'\x79\x69\x65\x45'),_0x54a19b[_0x18b2c8(0x1b5,'\x4b\x69\x6f\x41')]=_0x18b2c8(0x11a,'\x54\x6f\x7a\x37')+_0x18b2c8(0xc3,'\x59\x4e\x42\x50')+_0x18b2c8(0x1e0,'\x6f\x26\x67\x30'),_0x54a19b['\x6f\x56\x6c\x59\x50']=function(_0x45befb,_0x2d9753){return _0x45befb!==_0x2d9753;};const _0x22e086=_0x54a19b,_0x5ad4a3={};for(const _0x5b5225 of Object['\x6b\x65\x79\x73'](_0x11f413)[_0x18b2c8(0x133,'\x21\x6c\x38\x70')]()){if(_0x22e086[_0x18b2c8(0x18e,'\x56\x31\x30\x75')](_0x5b5225,_0x22e086[_0x18b2c8(0x13c,'\x31\x49\x72\x4a')])||_0x22e086[_0x18b2c8(0x1a8,'\x6b\x6b\x63\x28')](_0x5b5225,_0x22e086[_0x18b2c8(0x1f5,'\x5e\x21\x5a\x52')])||_0x22e086[_0x18b2c8(0x1da,'\x30\x6e\x41\x35')](_0x5b5225,_0x22e086[_0x18b2c8(0x1bb,'\x24\x6b\x6c\x50')]))continue;if(_0x22e086['\x64\x61\x4e\x53\x57'](_0x5b5225,_0x18b2c8(0x1c5,'\x4c\x31\x32\x69')+_0x18b2c8(0x177,'\x5a\x5d\x6b\x55')))continue;const _0x276001=_0x11f413[_0x5b5225];if(_0x22e086[_0x18b2c8(0x110,'\x4b\x46\x5d\x65')](_0x276001,undefined))_0x5ad4a3[_0x5b5225]=_0x276001;}return JSON[_0x18b2c8(0xd0,'\x54\x6f\x7a\x37')+'\x79'](_0x5ad4a3);}function _0x404023(_0x1c5dcb={},_0x806cb5=process.env){const _0x13a31c=_0x38d030,_0x12a001={'\x6c\x4d\x42\x73\x4e':function(_0x1627f5,_0x51cffa){return _0x1627f5(_0x51cffa);},'\x63\x65\x6a\x6e\x52':function(_0x2fe17e,_0x9f817d){return _0x2fe17e||_0x9f817d;},'\x66\x6f\x4f\x51\x63':function(_0x14b5f4,_0x37e77f){return _0x14b5f4!==_0x37e77f;},'\x45\x51\x78\x67\x74':'\x6a\x58\x4d\x53\x41','\x45\x51\x63\x49\x57':_0x13a31c(0x175,'\x5b\x43\x56\x44'),'\x70\x45\x48\x45\x63':_0x13a31c(0x150,'\x6e\x48\x38\x5d')},_0x423a07=String(_0x806cb5[_0x13a31c(0x1d3,'\x25\x59\x4d\x24')+_0x13a31c(0x116,'\x45\x59\x44\x28')+_0x13a31c(0x16b,'\x4f\x4a\x59\x24')+_0x13a31c(0x147,'\x37\x79\x43\x5a')+_0x13a31c(0x115,'\x5a\x5d\x6b\x55')]||_0x806cb5[_0x13a31c(0x11f,'\x41\x63\x51\x71')+_0x13a31c(0xe5,'\x6b\x4f\x2a\x39')+_0x13a31c(0xab,'\x6f\x26\x67\x30')+'\x47\x5f\x53\x49\x47\x4e\x49\x4e'+_0x13a31c(0xf4,'\x74\x59\x6d\x53')+_0x13a31c(0xb0,'\x5e\x21\x5a\x52')]||'')[_0x13a31c(0xe0,'\x4b\x69\x6f\x41')](),_0x44fbf7=_0x12a001[_0x13a31c(0xf1,'\x47\x4f\x5a\x63')](String,_0x1c5dcb[_0x13a31c(0x183,'\x24\x6b\x6c\x50')+'\x65']||_0x1c5dcb[_0x13a31c(0xbe,'\x6b\x6b\x63\x28')+_0x13a31c(0x109,'\x45\x59\x44\x28')+_0x13a31c(0x1b3,'\x6c\x4a\x24\x58')]||'')['\x74\x72\x69\x6d']();if(_0x12a001[_0x13a31c(0x145,'\x39\x73\x51\x51')](!_0x423a07,!_0x44fbf7))return![];try{return _0x12a001[_0x13a31c(0x10c,'\x55\x5d\x76\x5d')](_0x12a001[_0x13a31c(0x16e,'\x47\x24\x67\x4b')],_0x13a31c(0x187,'\x4f\x4a\x59\x24'))?![]:_0x1bf197[_0x13a31c(0x15a,'\x59\x4e\x42\x50')](_0x12a001[_0x13a31c(0x1c1,'\x66\x74\x21\x32')],Buffer['\x66\x72\x6f\x6d'](_0x12a001['\x6c\x4d\x42\x73\x4e'](_0x594a7a,_0x1c5dcb),_0x13a31c(0x135,'\x6a\x4c\x32\x66')),_0x423a07,Buffer[_0x13a31c(0x12d,'\x6f\x26\x67\x30')](_0x44fbf7,_0x12a001[_0x13a31c(0xc9,'\x6b\x6b\x63\x28')]));}catch{return![];}}class _0x55ee90{constructor({store:_0x2e8959,logger:_0x25b153}={}){const _0x2354f0=_0x38d030,_0x55a2f7={};_0x55a2f7[_0x2354f0(0x129,'\x65\x28\x68\x2a')]=function(_0x271f47,_0x41f819){return _0x271f47||_0x41f819;};const _0x5ef708=_0x55a2f7;this[_0x2354f0(0x1b4,'\x4a\x65\x35\x70')]=_0x2e8959,this[_0x2354f0(0x1ac,'\x30\x6e\x41\x35')]=_0x5ef708[_0x2354f0(0x126,'\x6e\x48\x38\x5d')](_0x25b153,console);}['\x70\x72\x6f\x63\x65\x73\x73'](_0x22ced3){const _0x1ad953=_0x38d030,_0x5617c1={'\x57\x54\x71\x6c\x57':_0x1ad953(0x18a,'\x45\x59\x44\x28')+_0x1ad953(0x1eb,'\x4f\x4a\x59\x24')+'\x69\x67\x6e\x6f\x72\x65\x64\x20'+_0x1ad953(0x1d4,'\x5a\x35\x52\x44')+_0x1ad953(0x1c8,'\x4a\x65\x35\x70')+_0x1ad953(0x14e,'\x6f\x26\x67\x30')+'\x73\x20\x65\x6e\x61\x62\x6c\x65'+_0x1ad953(0x141,'\x4b\x69\x6f\x41')+_0x1ad953(0x160,'\x54\x6f\x7a\x37')+_0x1ad953(0xb7,'\x4a\x65\x35\x70')+_0x1ad953(0x1cf,'\x24\x6b\x6c\x50'),'\x5a\x66\x6a\x5a\x67':function(_0x1b3bc1,_0x547e01){return _0x1b3bc1(_0x547e01);},'\x4d\x4f\x4b\x7a\x58':_0x1ad953(0x1a7,'\x5e\x21\x5a\x52'),'\x70\x78\x64\x70\x48':_0x1ad953(0xee,'\x56\x31\x30\x75'),'\x46\x4f\x68\x72\x66':function(_0x187d49,_0x1c90ef){return _0x187d49!==_0x1c90ef;},'\x75\x6c\x41\x71\x62':_0x1ad953(0x1d0,'\x24\x6b\x6c\x50'),'\x75\x4b\x59\x48\x57':function(_0x42b644,_0x517c32){return _0x42b644!==_0x517c32;},'\x63\x4c\x6d\x68\x49':_0x1ad953(0x12b,'\x74\x59\x6d\x53'),'\x7a\x49\x70\x4e\x6e':_0x1ad953(0x1d1,'\x47\x4f\x5a\x63')+_0x1ad953(0x107,'\x5b\x43\x56\x44')+_0x1ad953(0x157,'\x42\x24\x78\x5b')+_0x1ad953(0x105,'\x74\x59\x6d\x53')+'\x77\x69\x74\x68\x6f\x75\x74\x20'+_0x1ad953(0x17d,'\x30\x6e\x41\x35')+_0x1ad953(0xec,'\x47\x4f\x5a\x63'),'\x4d\x42\x6d\x64\x79':function(_0x12baae,_0x20d9b8){return _0x12baae===_0x20d9b8;},'\x4e\x56\x61\x70\x54':'\x73\x74\x72\x69\x6e\x67','\x58\x6d\x44\x73\x51':function(_0x5d2103,_0x582b04){return _0x5d2103&&_0x582b04;},'\x44\x70\x6e\x42\x66':'\x5a\x43\x4d\x48\x45','\x47\x6f\x55\x4b\x46':_0x1ad953(0x171,'\x6f\x4e\x56\x46')+_0x1ad953(0x15c,'\x24\x6b\x6c\x50')+_0x1ad953(0x144,'\x6c\x4a\x24\x58'),'\x4b\x50\x46\x73\x45':_0x1ad953(0x140,'\x70\x45\x75\x76'),'\x5a\x4a\x71\x68\x41':_0x1ad953(0x1fb,'\x42\x24\x78\x5b'),'\x6f\x45\x49\x74\x77':function(_0x5f03bc,_0x59db04){return _0x5f03bc===_0x59db04;},'\x6a\x41\x46\x6e\x7a':_0x1ad953(0x1cd,'\x34\x64\x31\x41'),'\x78\x57\x76\x6b\x6c':_0x1ad953(0xce,'\x6b\x6b\x63\x28'),'\x7a\x67\x46\x43\x49':_0x1ad953(0x1cb,'\x6a\x4c\x32\x66')+_0x1ad953(0x1f8,'\x5e\x21\x5a\x52')+_0x1ad953(0x113,'\x6f\x26\x67\x30')+_0x1ad953(0x14f,'\x5a\x5d\x6b\x55')+_0x1ad953(0xfe,'\x6e\x48\x38\x5d')+_0x1ad953(0x170,'\x5b\x43\x56\x44')+_0x1ad953(0x128,'\x74\x4d\x52\x39')+_0x1ad953(0x1e9,'\x70\x45\x75\x76')+_0x1ad953(0xcb,'\x4c\x31\x32\x69')+_0x1ad953(0x19a,'\x70\x45\x75\x76')+_0x1ad953(0x1ab,'\x28\x48\x5e\x5e')+'\x5f\x4b\x45\x59','\x5a\x6c\x6c\x52\x48':_0x1ad953(0xd7,'\x44\x29\x4f\x36')+_0x1ad953(0x180,'\x6b\x4f\x2a\x39')+_0x1ad953(0x152,'\x45\x59\x44\x28')+_0x1ad953(0xac,'\x47\x4f\x5a\x63'),'\x5a\x59\x63\x64\x49':function(_0x1ed33b,_0x12e274){return _0x1ed33b+_0x12e274;},'\x4b\x6e\x62\x44\x44':_0x1ad953(0x142,'\x68\x24\x57\x63')+_0x1ad953(0x1e8,'\x66\x74\x21\x32')+_0x1ad953(0xe2,'\x59\x37\x46\x5b')+_0x1ad953(0x1aa,'\x42\x24\x78\x5b')+'\x20','\x4a\x56\x44\x77\x4b':_0x1ad953(0x1d8,'\x30\x6e\x41\x35'),'\x4e\x73\x6d\x43\x59':_0x1ad953(0x1c9,'\x24\x6b\x6c\x50')},_0x221e14=_0x22ced3&&_0x22ced3[_0x1ad953(0x18f,'\x74\x4d\x52\x39')]?_0x22ced3[_0x1ad953(0x1fd,'\x34\x64\x31\x41')]:_0x22ced3,_0x14cd2b=_0x221e14&&(_0x221e14['\x65\x6e\x61\x62\x6c\x65\x64']??_0x221e14['\x74\x72\x61\x63\x65\x5f\x63\x6f'+_0x1ad953(0xeb,'\x4f\x4a\x59\x24')+_0x1ad953(0xca,'\x31\x49\x72\x4a')]??_0x221e14[_0x1ad953(0x1ce,'\x4c\x31\x32\x69')+_0x1ad953(0x10b,'\x74\x4d\x52\x39')+_0x1ad953(0x10e,'\x6e\x48\x38\x5d')+_0x1ad953(0x106,'\x4f\x4a\x59\x24')]);if(_0x5617c1[_0x1ad953(0xcd,'\x54\x6a\x39\x4c')](typeof _0x14cd2b,_0x5617c1[_0x1ad953(0x17c,'\x4f\x4a\x59\x24')])){if(_0x5617c1[_0x1ad953(0x200,'\x24\x6b\x6c\x50')](_0x5617c1[_0x1ad953(0x163,'\x74\x4d\x52\x39')],_0x5617c1[_0x1ad953(0xd8,'\x24\x6b\x6c\x50')]))this[_0x1ad953(0x182,'\x4a\x65\x35\x70')][_0x1ad953(0x19c,'\x59\x4e\x42\x50')]?.(_0x5617c1[_0x1ad953(0x1cc,'\x6e\x48\x38\x5d')]),_0x380dc7=![];else{this[_0x1ad953(0x1ac,'\x30\x6e\x41\x35')][_0x1ad953(0xc2,'\x6c\x4a\x24\x58')]?.(_0x5617c1[_0x1ad953(0x1f6,'\x58\x4e\x25\x7a')]);const _0x817b91={};return _0x817b91[_0x1ad953(0x111,'\x6b\x4f\x2a\x39')]=!![],_0x817b91[_0x1ad953(0xd4,'\x21\x6c\x38\x70')]=![],_0x817b91;}}let _0x467a40=_0x221e14[_0x1ad953(0x158,'\x45\x59\x44\x28')+_0x1ad953(0xb3,'\x25\x59\x4d\x24')+_0x1ad953(0xf3,'\x24\x6b\x6c\x50')]??_0x221e14[_0x1ad953(0x1bf,'\x65\x28\x68\x2a')+_0x1ad953(0xc4,'\x55\x5d\x76\x5d')+_0x1ad953(0x197,'\x70\x45\x75\x76')+'\x6e\x61\x62\x6c\x65\x64'];const _0x17c344=_0x5617c1[_0x1ad953(0x1d7,'\x45\x59\x44\x28')](_0x404023,_0x221e14),_0x240a2e=_0x5617c1[_0x1ad953(0xc8,'\x73\x33\x39\x29')](_0x14cd2b,!![]),_0x36fabf=_0x5617c1[_0x1ad953(0x1db,'\x4c\x31\x32\x69')](_0x467a40,!![]),_0x2119dc=_0x5617c1[_0x1ad953(0xc6,'\x4b\x46\x5d\x65')](typeof _0x221e14[_0x1ad953(0x153,'\x65\x28\x68\x2a')+_0x1ad953(0x198,'\x47\x24\x67\x4b')],_0x5617c1[_0x1ad953(0xaf,'\x21\x6c\x38\x70')])&&_0x221e14[_0x1ad953(0x1c2,'\x6b\x6b\x63\x28')+'\x69\x63\x5f\x6b\x65\x79'][_0x1ad953(0xfc,'\x42\x24\x78\x5b')]();if(_0x5617c1[_0x1ad953(0x10f,'\x24\x6b\x6c\x50')](!_0x17c344,_0x240a2e)){if(_0x5617c1[_0x1ad953(0x120,'\x25\x59\x4d\x24')]==='\x69\x61\x45\x71\x58')_0x31f3d5++;else{this[_0x1ad953(0x172,'\x6b\x4f\x2a\x39')][_0x1ad953(0x167,'\x4b\x69\x6f\x41')]?.(_0x1ad953(0x100,'\x79\x69\x65\x45')+_0x1ad953(0x127,'\x39\x73\x51\x51')+_0x1ad953(0xfb,'\x58\x4e\x25\x7a')+_0x1ad953(0x1ad,'\x68\x24\x57\x63')+'\x64\x20\x74\x72\x61\x63\x65\x20'+_0x1ad953(0xde,'\x6f\x26\x67\x30')+_0x1ad953(0x184,'\x28\x48\x5e\x5e')+_0x1ad953(0x1a0,'\x31\x49\x72\x4a')+_0x1ad953(0x137,'\x6e\x48\x38\x5d')+_0x1ad953(0x17a,'\x73\x55\x42\x5a')+_0x1ad953(0x1a9,'\x4a\x65\x35\x70')+_0x1ad953(0xad,'\x4a\x65\x35\x70'));const _0x3c0f65={};return _0x3c0f65[_0x1ad953(0x1fa,'\x6c\x4a\x24\x58')]=!![],_0x3c0f65[_0x1ad953(0x1b1,'\x28\x48\x5e\x5e')]=![],_0x3c0f65;}}_0x5617c1[_0x1ad953(0xb4,'\x6f\x4e\x56\x46')](!_0x17c344,_0x36fabf)&&(this[_0x1ad953(0x15d,'\x4f\x4a\x59\x24')][_0x1ad953(0xb9,'\x39\x73\x51\x51')]?.(_0x5617c1[_0x1ad953(0x173,'\x73\x55\x42\x5a')]),_0x467a40=![]);this[_0x1ad953(0xf8,'\x6b\x4f\x2a\x39')][_0x1ad953(0x14b,'\x65\x28\x68\x2a')](_0x5617c1[_0x1ad953(0xe7,'\x37\x79\x43\x5a')],_0x14cd2b?_0x5617c1[_0x1ad953(0x15f,'\x37\x79\x43\x5a')]:_0x5617c1[_0x1ad953(0x134,'\x5e\x21\x5a\x52')]);if(typeof _0x467a40===_0x5617c1['\x75\x6c\x41\x71\x62']){if(_0x5617c1[_0x1ad953(0xf9,'\x5b\x43\x56\x44')](_0x1ad953(0x1a5,'\x41\x63\x51\x71'),_0x5617c1[_0x1ad953(0x1af,'\x28\x48\x5e\x5e')])){this[_0x1ad953(0x1ed,'\x37\x79\x43\x5a')][_0x1ad953(0x1bd,'\x54\x6f\x7a\x37')]?.('\x5b\x74\x72\x61\x63\x65\x2d\x63'+_0x1ad953(0x1eb,'\x4f\x4a\x59\x24')+_0x1ad953(0xe3,'\x6f\x4e\x56\x46')+_0x1ad953(0xf5,'\x56\x31\x30\x75')+_0x1ad953(0x119,'\x39\x73\x51\x51')+_0x1ad953(0x102,'\x74\x59\x6d\x53')+_0x1ad953(0x1ca,'\x4f\x4a\x59\x24')+_0x1ad953(0xcc,'\x5b\x43\x56\x44')+_0x1ad953(0x1f2,'\x54\x6a\x39\x4c')+_0x1ad953(0x1f4,'\x78\x74\x71\x40')+_0x1ad953(0x1c7,'\x78\x74\x71\x40')+_0x1ad953(0x155,'\x39\x73\x51\x51'));const _0x28bff1={};return _0x28bff1[_0x1ad953(0x1a3,'\x74\x4d\x52\x39')]=!![],_0x28bff1[_0x1ad953(0x124,'\x41\x63\x51\x71')]=![],_0x28bff1;}else this[_0x1ad953(0x185,'\x5a\x5d\x6b\x55')][_0x1ad953(0x1a1,'\x47\x24\x67\x4b')](_0x1ad953(0xef,'\x6f\x4e\x56\x46')+_0x1ad953(0x114,'\x5a\x5d\x6b\x55')+_0x1ad953(0xae,'\x28\x48\x5e\x5e')+_0x1ad953(0xe1,'\x4b\x69\x6f\x41'),_0x467a40?_0x5617c1[_0x1ad953(0x1ea,'\x74\x59\x6d\x53')]:_0x5617c1[_0x1ad953(0x134,'\x5e\x21\x5a\x52')]);}if(_0x2119dc){if(_0x1ad953(0x1e2,'\x59\x4e\x42\x50')===_0x5617c1[_0x1ad953(0x112,'\x5b\x43\x56\x44')]){const _0x1620f3=_0x3e79dc(_0x52b85e[_0x1ad953(0x1b2,'\x6f\x4e\x56\x46')+_0x1ad953(0x11b,'\x4a\x65\x35\x70')+_0x1ad953(0x17f,'\x24\x6b\x6c\x50')+_0x1ad953(0xea,'\x54\x6a\x39\x4c')+_0x1ad953(0x1b7,'\x33\x70\x62\x4c')]||_0x548cbe[_0x1ad953(0x118,'\x74\x4d\x52\x39')+_0x1ad953(0x108,'\x24\x6b\x6c\x50')+'\x43\x45\x5f\x43\x4f\x4e\x46\x49'+'\x47\x5f\x53\x49\x47\x4e\x49\x4e'+_0x1ad953(0x132,'\x73\x55\x42\x5a')+_0x1ad953(0x179,'\x34\x64\x31\x41')]||'')['\x74\x72\x69\x6d'](),_0x5087c5=rpskcV[_0x1ad953(0xc7,'\x4a\x65\x35\x70')](_0x386370,_0x29cb09[_0x1ad953(0x1e7,'\x73\x33\x39\x29')+'\x65']||_0x38d204[_0x1ad953(0x1dd,'\x24\x6b\x6c\x50')+_0x1ad953(0xbf,'\x73\x33\x39\x29')+_0x1ad953(0xbd,'\x39\x73\x51\x51')]||'')[_0x1ad953(0x166,'\x78\x74\x71\x40')]();if(!_0x1620f3||!_0x5087c5)return![];try{return _0x46dccf[_0x1ad953(0x1d5,'\x30\x6e\x41\x35')](rpskcV[_0x1ad953(0x188,'\x54\x6a\x39\x4c')],_0x30e8c6['\x66\x72\x6f\x6d'](rpskcV[_0x1ad953(0x1d9,'\x55\x5d\x76\x5d')](_0x1b083f,_0x48c26a),_0x1ad953(0x125,'\x47\x4f\x5a\x63')),_0x1620f3,_0x29d774[_0x1ad953(0x169,'\x4a\x65\x35\x70')](_0x5087c5,rpskcV[_0x1ad953(0x12c,'\x5e\x21\x5a\x52')]));}catch{return![];}}else this[_0x1ad953(0x103,'\x6f\x26\x67\x30')][_0x1ad953(0x149,'\x73\x33\x39\x29')]?.(_0x5617c1[_0x1ad953(0xba,'\x33\x70\x62\x4c')]);}this[_0x1ad953(0x161,'\x54\x6a\x39\x4c')][_0x1ad953(0x15e,'\x5b\x43\x56\x44')](_0x5617c1[_0x1ad953(0x1b0,'\x66\x74\x21\x32')],new Date()[_0x1ad953(0x16d,'\x6b\x4f\x2a\x39')+_0x1ad953(0x13b,'\x78\x74\x71\x40')]()),this[_0x1ad953(0xc1,'\x42\x24\x78\x5b')][_0x1ad953(0xcf,'\x70\x45\x75\x76')]?.(_0x5617c1[_0x1ad953(0x18b,'\x28\x48\x5e\x5e')](_0x5617c1[_0x1ad953(0x131,'\x24\x6b\x6c\x50')],_0x14cd2b?_0x5617c1[_0x1ad953(0x11e,'\x28\x48\x5e\x5e')]:_0x5617c1[_0x1ad953(0x1ae,'\x5e\x21\x5a\x52')]));const _0x4dc40f={};return _0x4dc40f[_0x1ad953(0x1fc,'\x4f\x4a\x59\x24')]=!![],_0x4dc40f[_0x1ad953(0xb6,'\x70\x45\x75\x76')]=!![],_0x4dc40f;}[_0x38d030(0xbc,'\x44\x29\x4f\x36')+_0x38d030(0x1df,'\x30\x6e\x41\x35')](){const _0x26d61b=_0x38d030,_0x261737={};_0x261737[_0x26d61b(0x186,'\x47\x24\x67\x4b')]=_0x26d61b(0x123,'\x73\x55\x42\x5a')+_0x26d61b(0x12f,'\x74\x4d\x52\x39')+_0x26d61b(0xb1,'\x24\x6b\x6c\x50')+_0x26d61b(0xfa,'\x21\x6c\x38\x70')+_0x26d61b(0xd5,'\x31\x49\x72\x4a')+_0x26d61b(0x15b,'\x24\x6b\x6c\x50')+_0x26d61b(0x121,'\x6a\x4c\x32\x66'),_0x261737[_0x26d61b(0xdf,'\x5b\x43\x56\x44')]=_0x26d61b(0x1b8,'\x6b\x6b\x63\x28'),_0x261737[_0x26d61b(0xf0,'\x55\x5d\x76\x5d')]=_0x26d61b(0x14a,'\x28\x48\x5e\x5e'),_0x261737[_0x26d61b(0x189,'\x31\x49\x72\x4a')]=_0x26d61b(0x14c,'\x47\x24\x67\x4b')+_0x26d61b(0xda,'\x42\x24\x78\x5b')+'\x69\x67',_0x261737[_0x26d61b(0xbb,'\x73\x33\x39\x29')]=function(_0x43b43a,_0x196cc6){return _0x43b43a===_0x196cc6;},_0x261737[_0x26d61b(0xb2,'\x6e\x48\x38\x5d')]=function(_0x2e16ac,_0x3c3316){return _0x2e16ac===_0x3c3316;},_0x261737[_0x26d61b(0x139,'\x33\x70\x62\x4c')]=_0x26d61b(0x143,'\x41\x63\x51\x71'),_0x261737['\x62\x50\x78\x6f\x4c']=_0x26d61b(0x117,'\x4b\x69\x6f\x41'),_0x261737['\x70\x59\x57\x78\x44']=function(_0x40cad8,_0x195a68){return _0x40cad8!==_0x195a68;},_0x261737[_0x26d61b(0x13f,'\x58\x4e\x25\x7a')]='\x4d\x51\x68\x77\x54';const _0x418dbd=_0x261737,_0x559bc7={};_0x559bc7[_0x26d61b(0xdd,'\x56\x31\x30\x75')]=_0x26d61b(0x138,'\x41\x63\x51\x71')+'\x6c\x6c\x65\x63\x74\x69\x6f\x6e'+_0x26d61b(0x174,'\x6f\x26\x67\x30'),_0x559bc7[_0x26d61b(0x159,'\x65\x28\x68\x2a')]=0x32;const _0x459f9f={};_0x459f9f[_0x26d61b(0xd1,'\x4b\x69\x6f\x41')]=_0x418dbd[_0x26d61b(0x162,'\x78\x74\x71\x40')],_0x459f9f[_0x26d61b(0x156,'\x71\x68\x37\x26')]=0x32;const _0x1aa89a=[...this[_0x26d61b(0x1f3,'\x56\x31\x30\x75')][_0x26d61b(0x101,'\x71\x68\x37\x26')](_0x559bc7),...this[_0x26d61b(0x16a,'\x4b\x69\x6f\x41')][_0x26d61b(0x1dc,'\x5a\x5d\x6b\x55')](_0x459f9f)];let _0x3133f9=0x23e0+-0x773+-0x1c6d;for(const _0x56c47b of _0x1aa89a){const _0x4292e8=this[_0x26d61b(0xf7,'\x6f\x4e\x56\x46')](_0x56c47b),_0x38b7c2=_0x4292e8===!![]||_0x4292e8&&_0x418dbd[_0x26d61b(0x1c6,'\x42\x24\x78\x5b')](_0x4292e8[_0x26d61b(0x111,'\x6b\x4f\x2a\x39')],!![]),_0x429a8b=_0x418dbd[_0x26d61b(0x19d,'\x31\x49\x72\x4a')](_0x4292e8,!![])||_0x4292e8&&_0x418dbd[_0x26d61b(0x1a6,'\x4b\x69\x6f\x41')](_0x4292e8[_0x26d61b(0x1b9,'\x71\x68\x37\x26')],!![]);if(_0x38b7c2){if(_0x418dbd[_0x26d61b(0x1ec,'\x54\x6a\x39\x4c')](_0x418dbd[_0x26d61b(0xd9,'\x37\x79\x43\x5a')],_0x418dbd[_0x26d61b(0xe4,'\x68\x24\x57\x63')])){this[_0x26d61b(0x168,'\x74\x59\x6d\x53')][_0x26d61b(0x11c,'\x78\x74\x71\x40')]?.(PiEfms['\x43\x5a\x4a\x76\x6e']);const _0x4fb9f0={};return _0x4fb9f0[_0x26d61b(0xdb,'\x28\x48\x5e\x5e')]=!![],_0x4fb9f0[_0x26d61b(0x17b,'\x24\x6b\x6c\x50')]=![],_0x4fb9f0;}else this[_0x26d61b(0x104,'\x41\x63\x51\x71')]['\x61\x63\x6b'](_0x56c47b['\x69\x64']);}if(_0x429a8b){if(_0x418dbd[_0x26d61b(0x1e4,'\x54\x6a\x39\x4c')](_0x26d61b(0x17e,'\x54\x6a\x39\x4c'),_0x418dbd['\x7a\x4a\x41\x7a\x46']))_0x3133f9++;else return _0x22d82f[_0x26d61b(0xf6,'\x33\x70\x62\x4c')](PiEfms['\x58\x6c\x4d\x45\x66'],_0x2282c5['\x66\x72\x6f\x6d'](_0x723ebd(_0x114842),_0x26d61b(0x18d,'\x6c\x4a\x24\x58')),_0x408c87,_0x381de5[_0x26d61b(0x190,'\x78\x74\x71\x40')](_0x44f754,PiEfms[_0x26d61b(0x151,'\x34\x64\x31\x41')]));}}return _0x3133f9;}}const _0x2a7146={};_0x2a7146['\x54\x72\x61\x63\x65\x43\x6f\x6e'+'\x74\x72\x6f\x6c']=_0x55ee90,_0x2a7146[_0x38d030(0x1ef,'\x6b\x4f\x2a\x39')+_0x38d030(0xd6,'\x73\x55\x42\x5a')+'\x6e\x66\x69\x67\x50\x61\x79\x6c'+_0x38d030(0x1f9,'\x6c\x4a\x24\x58')]=_0x594a7a,_0x2a7146[_0x38d030(0x130,'\x73\x55\x42\x5a')+_0x38d030(0x191,'\x6f\x26\x67\x30')+_0x38d030(0x165,'\x4f\x4a\x59\x24')+'\x72\x65']=_0x404023,module[_0x38d030(0xf2,'\x6b\x6b\x63\x28')]=_0x2a7146;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const crypto = require('crypto');
|
|
4
|
+
|
|
5
|
+
function canonicalTraceConfigPayload(payload = {}) {
|
|
6
|
+
const clean = {};
|
|
7
|
+
for (const key of Object.keys(payload).sort()) {
|
|
8
|
+
if (key === 'signature' || key === 'trace_config_signature' || key === 'signature_algorithm') continue;
|
|
9
|
+
if (key === 'hub_public_key') continue;
|
|
10
|
+
const value = payload[key];
|
|
11
|
+
if (value !== undefined) clean[key] = value;
|
|
12
|
+
}
|
|
13
|
+
return JSON.stringify(clean);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function verifyTraceConfigSignature(payload = {}, env = process.env) {
|
|
17
|
+
const publicKey = String(
|
|
18
|
+
env.EVOMAP_TRACE_CONFIG_SIGNING_PUBLIC_KEY
|
|
19
|
+
|| env.EVOMAP_PROXY_TRACE_CONFIG_SIGNING_PUBLIC_KEY
|
|
20
|
+
|| ''
|
|
21
|
+
).trim();
|
|
22
|
+
const signature = String(payload.signature || payload.trace_config_signature || '').trim();
|
|
23
|
+
if (!publicKey || !signature) return false;
|
|
24
|
+
try {
|
|
25
|
+
return crypto.verify(
|
|
26
|
+
'sha256',
|
|
27
|
+
Buffer.from(canonicalTraceConfigPayload(payload), 'utf8'),
|
|
28
|
+
publicKey,
|
|
29
|
+
Buffer.from(signature, 'base64')
|
|
30
|
+
);
|
|
31
|
+
} catch {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
class TraceControl {
|
|
37
|
+
constructor({ store, logger } = {}) {
|
|
38
|
+
this.store = store;
|
|
39
|
+
this.logger = logger || console;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
process(message) {
|
|
43
|
+
const payload = message && message.payload ? message.payload : message;
|
|
44
|
+
const enabled = payload && (
|
|
45
|
+
payload.enabled ??
|
|
46
|
+
payload.trace_collection_enabled ??
|
|
47
|
+
payload.proxy_trace_collection_enabled
|
|
48
|
+
);
|
|
49
|
+
if (typeof enabled !== 'boolean') {
|
|
50
|
+
this.logger.warn?.('[trace-control] ignoring config without boolean enabled');
|
|
51
|
+
return { ack: true, applied: false };
|
|
52
|
+
}
|
|
53
|
+
let profileEnabled = payload.profile_analysis_enabled ?? payload.trace_profile_analysis_enabled;
|
|
54
|
+
const signed = verifyTraceConfigSignature(payload);
|
|
55
|
+
const unsafeEnable = enabled === true;
|
|
56
|
+
const unsafeProfile = profileEnabled === true;
|
|
57
|
+
const hasRuntimeHubKey = typeof payload.hub_public_key === 'string' && payload.hub_public_key.trim();
|
|
58
|
+
if (!signed && unsafeEnable) {
|
|
59
|
+
this.logger.warn?.('[trace-control] rejected unsigned trace config that could enable collection/profile analysis');
|
|
60
|
+
return { ack: true, applied: false };
|
|
61
|
+
}
|
|
62
|
+
if (!signed && unsafeProfile) {
|
|
63
|
+
this.logger.warn?.('[trace-control] ignored unsigned profile analysis enable while applying trace disable');
|
|
64
|
+
profileEnabled = false;
|
|
65
|
+
}
|
|
66
|
+
this.store.setState('trace_collection_enabled', enabled ? 'true' : 'false');
|
|
67
|
+
if (typeof profileEnabled === 'boolean') {
|
|
68
|
+
this.store.setState('trace_profile_analysis_enabled', profileEnabled ? 'true' : 'false');
|
|
69
|
+
}
|
|
70
|
+
if (hasRuntimeHubKey) {
|
|
71
|
+
this.logger.warn?.('[trace-control] ignored runtime hub_public_key; use pinned EVOMAP_PROXY_TRACE_HUB_PUBLIC_KEY');
|
|
72
|
+
}
|
|
73
|
+
this.store.setState('trace_collection_updated_at', new Date().toISOString());
|
|
74
|
+
this.logger.log?.('[trace-control] trace collection ' + (enabled ? 'enabled' : 'disabled'));
|
|
75
|
+
return { ack: true, applied: true };
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
pollAndApply() {
|
|
79
|
+
const messages = [
|
|
80
|
+
...this.store.poll({ type: 'trace_collection_config', limit: 50 }),
|
|
81
|
+
...this.store.poll({ type: 'proxy_trace_config', limit: 50 }),
|
|
82
|
+
];
|
|
83
|
+
let applied = 0;
|
|
84
|
+
for (const msg of messages) {
|
|
85
|
+
const result = this.process(msg);
|
|
86
|
+
const ack = result === true || (result && result.ack === true);
|
|
87
|
+
const didApply = result === true || (result && result.applied === true);
|
|
88
|
+
if (ack) {
|
|
89
|
+
this.store.ack(msg.id);
|
|
90
|
+
}
|
|
91
|
+
if (didApply) {
|
|
92
|
+
applied++;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return applied;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
module.exports = { TraceControl, canonicalTraceConfigPayload, verifyTraceConfigSignature };
|
package/src/proxy/index.js
CHANGED
|
@@ -4,7 +4,7 @@ const { getEvomapPath } = require('../gep/paths');
|
|
|
4
4
|
const { MailboxStore } = require('./mailbox/store');
|
|
5
5
|
const { ProxyHttpServer } = require('./server/http');
|
|
6
6
|
const { buildRoutes } = require('./server/routes');
|
|
7
|
-
const { buildMessagesHandler, canonicalizeForBedrock } = require('./router/messages_route');
|
|
7
|
+
const { buildMessagesHandler, canonicalizeForBedrock, supportsAdaptiveThinking } = require('./router/messages_route');
|
|
8
8
|
const { SyncEngine } = require('./sync/engine');
|
|
9
9
|
const { LifecycleManager } = require('./lifecycle/manager');
|
|
10
10
|
const { TaskMonitor } = require('./task/monitor');
|
|
@@ -64,7 +64,15 @@ function planAssetSearch(body = {}) {
|
|
|
64
64
|
|
|
65
65
|
class EvoMapProxy {
|
|
66
66
|
constructor(opts = {}) {
|
|
67
|
-
|
|
67
|
+
// evolver#567: default to the canonical Hub URL (config.resolveHubUrl →
|
|
68
|
+
// https://evomap.ai, honouring the A2A_HUB_URL / EVOMAP_HUB_URL /
|
|
69
|
+
// EVOLVER_DEFAULT_HUB_URL precedence + https enforcement) instead of '',
|
|
70
|
+
// so a freshly-launched proxy is Hub-connected out of the box after
|
|
71
|
+
// `evolver login` rather than silently staying hub-less/offline (which
|
|
72
|
+
// surfaced as 503 "Hub not configured" and node_id: null over MCP).
|
|
73
|
+
// opts.hubUrl still overrides everything.
|
|
74
|
+
const { resolveHubUrl } = require('../config');
|
|
75
|
+
this.hubUrl = (opts.hubUrl || resolveHubUrl()).replace(/\/+$/, '');
|
|
68
76
|
this.dataDir = opts.dataDir || opts.dbPath || _defaultDataDir();
|
|
69
77
|
this.port = opts.port;
|
|
70
78
|
this.logger = opts.logger || console;
|
|
@@ -178,6 +186,7 @@ class EvoMapProxy {
|
|
|
178
186
|
},
|
|
179
187
|
logger: this.logger,
|
|
180
188
|
traceStore: this.store,
|
|
189
|
+
onTraceQueued: () => this.sync?.notifyNewOutbound(),
|
|
181
190
|
});
|
|
182
191
|
|
|
183
192
|
const routes = buildRoutes(this.store, proxyHandlers, this.taskMonitor, {
|
|
@@ -445,8 +454,8 @@ class EvoMapProxy {
|
|
|
445
454
|
delete upstreamBody.stream;
|
|
446
455
|
|
|
447
456
|
// Claude Code v2.1.150+ sends `thinking: { type: 'adaptive' }` plus
|
|
448
|
-
// `output_config.effort` for Opus 4.7+. Keep that shape for
|
|
449
|
-
// folding it to `enabled` makes
|
|
457
|
+
// `output_config.effort` for Opus 4.7+. Keep that shape for those models:
|
|
458
|
+
// folding it to `enabled` makes current 4.7+ endpoints reject compaction
|
|
450
459
|
// with: "thinking.type.enabled is not supported for this model".
|
|
451
460
|
//
|
|
452
461
|
// Older Bedrock-deployed 4.5/4.1 generation models only accept
|
|
@@ -461,7 +470,7 @@ class EvoMapProxy {
|
|
|
461
470
|
// thinking entirely on those calls — fold to 'disabled'. For larger
|
|
462
471
|
// max_tokens we default to max_tokens/2 (the model picks budget in
|
|
463
472
|
// adaptive mode, but Bedrock 'enabled' requires the field).
|
|
464
|
-
const modelSupportsAdaptiveThinking =
|
|
473
|
+
const modelSupportsAdaptiveThinking = supportsAdaptiveThinking(modelId);
|
|
465
474
|
if (
|
|
466
475
|
!modelSupportsAdaptiveThinking
|
|
467
476
|
&& upstreamBody.thinking
|
package/src/proxy/inject.js
CHANGED
|
@@ -1 +1,52 @@
|
|
|
1
|
-
function _0x480c(_0x20a71f,_0xf23b56){_0x20a71f=_0x20a71f-(-0x295*-0x4+-0x1*0x97a+0x113*0x1);const _0x3f5351=_0x23df();let _0x218eaa=_0x3f5351[_0x20a71f];if(_0x480c['\x43\x69\x51\x66\x4c\x4f']===undefined){var _0x25fa34=function(_0x5ee2fe){const _0x364e5d='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x2526e7='',_0x30e0e7='',_0xc91fa8=_0x2526e7+_0x25fa34,_0x343c35=(''+function(){return-0x142+0x2572+0x1*-0x2430;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')!==-(-0x1*0x146b+-0x1f11+0x7*0x75b);for(let _0x9f03cf=0xf7e+0x4b2*-0x1+-0x4*0x2b3,_0x5dc91e,_0x246556,_0x1e8ab8=-0x223*0x1+0x9e9+-0x7c6;_0x246556=_0x5ee2fe['\x63\x68\x61\x72\x41\x74'](_0x1e8ab8++);~_0x246556&&(_0x5dc91e=_0x9f03cf%(0x1dd*-0x11+-0x1d*-0xe1+0x634)?_0x5dc91e*(-0x1fc8+-0x38b+0x515*0x7)+_0x246556:_0x246556,_0x9f03cf++%(-0x2348+-0xde*0xa+-0x4*-0xafe))?_0x2526e7+=_0x343c35||_0xc91fa8['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x1e8ab8+(-0xc8+0x16b3+-0x15e1))-(-0xbb3+0x24d2+-0x1915)!==-0x482+-0x293*-0x8+0x80b*-0x2?String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0x112+0x1bf2+0x1c05*-0x1&_0x5dc91e>>(-(-0x11*0x1cf+0x5*-0x7d+-0x2*-0x1099)*_0x9f03cf&-0x10c1+-0x1d34+0x2dfb*0x1)):_0x9f03cf:-0x1f59*0x1+0x6*-0x5dc+0x4281){_0x246556=_0x364e5d['\x69\x6e\x64\x65\x78\x4f\x66'](_0x246556);}for(let _0x54308c=0x8*-0x133+-0x1ed6+0x12*0x23f,_0x13e6e8=_0x2526e7['\x6c\x65\x6e\x67\x74\x68'];_0x54308c<_0x13e6e8;_0x54308c++){_0x30e0e7+='\x25'+('\x30\x30'+_0x2526e7['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x54308c)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x19b0+-0x1fc1+0x1*0x621))['\x73\x6c\x69\x63\x65'](-(0x1*0x12db+-0x114*-0xb+-0x1eb5));}return decodeURIComponent(_0x30e0e7);};const _0x1ecd1b=function(_0x36a4e3,_0x206d9f){let _0x129ebf=[],_0x4a797c=0x39d+-0x1f3e+0x283*0xb,_0x5c646d,_0x40086e='';_0x36a4e3=_0x25fa34(_0x36a4e3);let _0x2f24c4;for(_0x2f24c4=0xd23+-0x22a7+-0x1b*-0xcc;_0x2f24c4<-0x1*0x111d+-0xeb1*0x1+0x20ce;_0x2f24c4++){_0x129ebf[_0x2f24c4]=_0x2f24c4;}for(_0x2f24c4=-0x1b7c+-0x6f4*0x5+-0x1*-0x3e40;_0x2f24c4<-0x1ebc+0x221+0x1*0x1d9b;_0x2f24c4++){_0x4a797c=(_0x4a797c+_0x129ebf[_0x2f24c4]+_0x206d9f['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2f24c4%_0x206d9f['\x6c\x65\x6e\x67\x74\x68']))%(-0x2*-0x1141+0x676*-0x5+-0x134),_0x5c646d=_0x129ebf[_0x2f24c4],_0x129ebf[_0x2f24c4]=_0x129ebf[_0x4a797c],_0x129ebf[_0x4a797c]=_0x5c646d;}_0x2f24c4=-0x21f5+-0x1*0x52f+0x2724,_0x4a797c=0x25eb*0x1+-0x979+0x1*-0x1c72;for(let _0x460c77=0x15dd*0x1+-0x2*0x5c6+-0xa51;_0x460c77<_0x36a4e3['\x6c\x65\x6e\x67\x74\x68'];_0x460c77++){_0x2f24c4=(_0x2f24c4+(-0x223+0x1c23+0x25d*-0xb))%(0x2*-0x788+0x1280+-0x270),_0x4a797c=(_0x4a797c+_0x129ebf[_0x2f24c4])%(0x1*-0xa9f+0x20ca+0x152b*-0x1),_0x5c646d=_0x129ebf[_0x2f24c4],_0x129ebf[_0x2f24c4]=_0x129ebf[_0x4a797c],_0x129ebf[_0x4a797c]=_0x5c646d,_0x40086e+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x36a4e3['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x460c77)^_0x129ebf[(_0x129ebf[_0x2f24c4]+_0x129ebf[_0x4a797c])%(0x11a4*-0x2+-0xc5*-0x7+0x1ee5)]);}return _0x40086e;};_0x480c['\x49\x44\x54\x62\x5a\x4a']=_0x1ecd1b,_0x480c['\x64\x49\x6f\x78\x63\x52']={},_0x480c['\x43\x69\x51\x66\x4c\x4f']=!![];}const _0x321bef=_0x3f5351[-0x1*0x2510+-0x2*-0x1083+0x40a],_0x2e581f=_0x20a71f+_0x321bef,_0x294204=_0x480c['\x64\x49\x6f\x78\x63\x52'][_0x2e581f];if(!_0x294204){if(_0x480c['\x63\x4a\x77\x6b\x4a\x59']===undefined){const _0x51ae3d=function(_0x1ea5b3){this['\x50\x46\x62\x70\x55\x64']=_0x1ea5b3,this['\x41\x43\x76\x6e\x43\x65']=[0x362*-0x7+0x2548+-0xd99,0x37*0x65+0xa3*-0x3a+-0x7*-0x22d,0x1870+0x1*-0x2631+-0xdc1*-0x1],this['\x50\x46\x71\x78\x41\x43']=function(){return'\x6e\x65\x77\x53\x74\x61\x74\x65';},this['\x69\x49\x46\x4a\x51\x67']='\x5c\x77\x2b\x20\x2a\x5c\x28\x5c\x29\x20\x2a\x7b\x5c\x77\x2b\x20\x2a',this['\x77\x43\x65\x70\x77\x58']='\x5b\x27\x7c\x22\x5d\x2e\x2b\x5b\x27\x7c\x22\x5d\x3b\x3f\x20\x2a\x7d';};_0x51ae3d['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x66\x45\x78\x64\x7a\x52']=function(){const _0x5ddbe6=new RegExp(this['\x69\x49\x46\x4a\x51\x67']+this['\x77\x43\x65\x70\x77\x58']),_0x504074=_0x5ddbe6['\x74\x65\x73\x74'](this['\x50\x46\x71\x78\x41\x43']['\x74\x6f\x53\x74\x72\x69\x6e\x67']())?--this['\x41\x43\x76\x6e\x43\x65'][0x1661+0xc61*-0x3+0xec3]:--this['\x41\x43\x76\x6e\x43\x65'][-0x951+-0x25e7+0x4*0xbce];return this['\x43\x4b\x41\x72\x47\x4d'](_0x504074);},_0x51ae3d['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x43\x4b\x41\x72\x47\x4d']=function(_0x1c9122){if(!Boolean(~_0x1c9122))return _0x1c9122;return this['\x62\x5a\x4c\x61\x52\x46'](this['\x50\x46\x62\x70\x55\x64']);},_0x51ae3d['\x70\x72\x6f\x74\x6f\x74\x79\x70\x65']['\x62\x5a\x4c\x61\x52\x46']=function(_0x8c852a){for(let _0x27ca15=0x1d74+-0x809+-0x156b,_0xd78af0=this['\x41\x43\x76\x6e\x43\x65']['\x6c\x65\x6e\x67\x74\x68'];_0x27ca15<_0xd78af0;_0x27ca15++){this['\x41\x43\x76\x6e\x43\x65']['\x70\x75\x73\x68'](Math['\x72\x6f\x75\x6e\x64'](Math['\x72\x61\x6e\x64\x6f\x6d']())),_0xd78af0=this['\x41\x43\x76\x6e\x43\x65']['\x6c\x65\x6e\x67\x74\x68'];}return _0x8c852a(this['\x41\x43\x76\x6e\x43\x65'][0xb*0x2dd+0x1a89+-0x3a08]);},(''+function(){return-0x16e6+0x22a+0x1*0x14bc;})['\x69\x6e\x64\x65\x78\x4f\x66']('\x0a')===-(-0x2058+0x973+0x16e6)&&new _0x51ae3d(_0x480c)['\x66\x45\x78\x64\x7a\x52'](),_0x480c['\x63\x4a\x77\x6b\x4a\x59']=!![];}_0x218eaa=_0x480c['\x49\x44\x54\x62\x5a\x4a'](_0x218eaa,_0xf23b56),_0x480c['\x64\x49\x6f\x78\x63\x52'][_0x2e581f]=_0x218eaa;}else _0x218eaa=_0x294204;return _0x218eaa;}const _0x264992=_0x480c;(function(_0x1d7d4c,_0x312670){const _0x4b280a=_0x480c,_0x7c2432=_0x1d7d4c();while(!![]){try{const _0x5ab91f=-parseInt(_0x4b280a(0x21d,'\x73\x24\x57\x36'))/(0x2eb*0x9+-0x2654+0x1e*0x67)*(parseInt(_0x4b280a(0x20c,'\x4c\x32\x32\x33'))/(0x1193+-0xcd3+0x4be*-0x1))+-parseInt(_0x4b280a(0x24b,'\x29\x49\x6b\x64'))/(-0x19*0x112+-0x1*-0x1653+0x472*0x1)+parseInt(_0x4b280a(0x212,'\x52\x4d\x44\x73'))/(0xb56*-0x3+0x23e0+-0x1da)*(parseInt(_0x4b280a(0x216,'\x6a\x70\x45\x4f'))/(-0x16ba+-0x1*-0x1ebb+-0x124*0x7))+parseInt(_0x4b280a(0x231,'\x29\x5b\x43\x4e'))/(0x1c48+-0x1*0xa95+-0x11ad)*(parseInt(_0x4b280a(0x266,'\x71\x42\x47\x5b'))/(0x140*0xe+-0x112e+0x19*-0x3))+-parseInt(_0x4b280a(0x278,'\x32\x5d\x34\x63'))/(0x129*-0x17+-0x67d*0x2+0x27b1)*(parseInt(_0x4b280a(0x1ff,'\x65\x35\x35\x38'))/(-0x172*0x5+-0x29*-0x34+0x111*-0x1))+parseInt(_0x4b280a(0x222,'\x64\x61\x49\x49'))/(-0x2a9*0x5+-0x1c31+-0x2988*-0x1)*(-parseInt(_0x4b280a(0x20d,'\x47\x59\x33\x24'))/(0x1657+0x233c+-0x731*0x8))+parseInt(_0x4b280a(0x215,'\x29\x5b\x43\x4e'))/(0xd*0x208+0x7*0xd4+-0x2028);if(_0x5ab91f===_0x312670)break;else _0x7c2432['push'](_0x7c2432['shift']());}catch(_0x4f4ff2){_0x7c2432['push'](_0x7c2432['shift']());}}}(_0x23df,-0x407e7+-0x6dfdd+0xf53f8));const _0xbfd069=(function(){const _0xf8404c=_0x480c,_0x1b884e={};_0x1b884e[_0xf8404c(0x1f1,'\x73\x24\x57\x36')]=function(_0x53f692,_0x56e0e4){return _0x53f692===_0x56e0e4;},_0x1b884e[_0xf8404c(0x214,'\x5b\x6d\x76\x50')]=function(_0x559e1b,_0x39fe06){return _0x559e1b===_0x39fe06;},_0x1b884e[_0xf8404c(0x219,'\x59\x7a\x5d\x33')]=_0xf8404c(0x26c,'\x6a\x70\x45\x4f'),_0x1b884e[_0xf8404c(0x246,'\x37\x4e\x35\x49')]=function(_0x5ebb6c,_0x55d36e){return _0x5ebb6c===_0x55d36e;},_0x1b884e[_0xf8404c(0x21b,'\x51\x61\x36\x62')]=_0xf8404c(0x255,'\x71\x26\x52\x73'),_0x1b884e['\x57\x54\x62\x7a\x4f']='\x51\x57\x54\x51\x72';const _0x42b4f7=_0x1b884e;let _0x5b63aa=!![];return function(_0x50c687,_0x46ed1b){const _0x3dbcee=_0xf8404c,_0x4d1ee8={'\x58\x66\x63\x48\x62':function(_0x3dcf32,_0x25400f){return _0x3dcf32(_0x25400f);},'\x48\x46\x52\x65\x66':function(_0x53e454,_0x308ec3){const _0xadcefb=_0x480c;return _0x42b4f7[_0xadcefb(0x254,'\x64\x61\x33\x6f')](_0x53e454,_0x308ec3);},'\x4d\x48\x4c\x45\x44':function(_0x372a17,_0xd3d218){const _0x51bcb7=_0x480c;return _0x42b4f7[_0x51bcb7(0x20a,'\x23\x25\x6d\x42')](_0x372a17,_0xd3d218);},'\x43\x66\x64\x72\x50':_0x42b4f7['\x56\x43\x43\x72\x50'],'\x77\x6e\x4f\x72\x6f':_0x3dbcee(0x25c,'\x29\x5b\x43\x4e'),'\x79\x48\x6b\x6a\x68':function(_0x40ca32,_0x184a09){const _0x2f701a=_0x3dbcee;return _0x42b4f7[_0x2f701a(0x245,'\x64\x61\x33\x6f')](_0x40ca32,_0x184a09);},'\x49\x65\x54\x7a\x66':_0x42b4f7[_0x3dbcee(0x25b,'\x40\x34\x39\x57')],'\x52\x6c\x64\x77\x73':_0x42b4f7[_0x3dbcee(0x258,'\x23\x38\x39\x45')]},_0x24621f=_0x5b63aa?function(){const _0x1fa12b=_0x3dbcee;if(_0x4d1ee8[_0x1fa12b(0x1f0,'\x51\x61\x36\x62')]!==_0x1fa12b(0x263,'\x4a\x24\x52\x24')){if(_0x46ed1b){const _0x2d1267=_0x46ed1b['\x61\x70\x70\x6c\x79'](_0x50c687,arguments);return _0x46ed1b=null,_0x2d1267;}}else{const _0x24d089=_0x4d1ee8[_0x1fa12b(0x26d,'\x23\x25\x6d\x42')](_0x3c1d4a,_0x3997b9[_0x1fa12b(0x265,'\x36\x54\x23\x56')+_0x1fa12b(0x21a,'\x73\x24\x57\x36')+_0x1fa12b(0x1fc,'\x66\x62\x66\x68')]||'')[_0x1fa12b(0x205,'\x64\x61\x49\x49')]()['\x74\x6f\x4c\x6f\x77\x65\x72\x43'+'\x61\x73\x65']();return _0x4d1ee8[_0x1fa12b(0x223,'\x37\x4e\x35\x49')](_0x24d089,'\x30')||_0x4d1ee8[_0x1fa12b(0x268,'\x4f\x67\x24\x61')](_0x24d089,_0x4d1ee8[_0x1fa12b(0x272,'\x32\x5d\x34\x63')])||_0x24d089===_0x4d1ee8[_0x1fa12b(0x257,'\x40\x34\x39\x57')]||_0x4d1ee8[_0x1fa12b(0x243,'\x29\x49\x6b\x64')](_0x24d089,_0x4d1ee8[_0x1fa12b(0x22c,'\x71\x26\x52\x73')])||_0x4d1ee8[_0x1fa12b(0x238,'\x32\x5d\x34\x63')](_0x24d089,'\x6e\x6f');}}:function(){};return _0x5b63aa=![],_0x24621f;};}()),_0x509f29=_0xbfd069(this,function(){const _0x5c86b9=_0x480c,_0x59630a={};_0x59630a[_0x5c86b9(0x22b,'\x59\x7a\x5d\x33')]=_0x5c86b9(0x244,'\x4f\x67\x24\x61')+_0x5c86b9(0x1f5,'\x71\x42\x47\x5b');const _0x479dc2=_0x59630a;return _0x509f29[_0x5c86b9(0x207,'\x33\x46\x76\x70')]()[_0x5c86b9(0x235,'\x47\x59\x33\x24')](_0x479dc2[_0x5c86b9(0x247,'\x6a\x70\x45\x4f')])[_0x5c86b9(0x256,'\x6d\x6d\x47\x78')]()[_0x5c86b9(0x26b,'\x71\x42\x47\x5b')+_0x5c86b9(0x226,'\x4d\x6f\x23\x5b')](_0x509f29)[_0x5c86b9(0x200,'\x23\x38\x39\x45')](_0x479dc2[_0x5c86b9(0x1ee,'\x29\x5b\x43\x4e')]);});_0x509f29();'use strict';const {getProxyToken:_0x42d06c,getProxyUrl:_0x50f1c8}=require(_0x264992(0x230,'\x65\x35\x35\x38')+_0x264992(0x22e,'\x47\x36\x56\x6b')+'\x73');function _0x3fcb3d(_0x333fc5=process.env){const _0x3398ae=_0x264992,_0x3ac483={'\x73\x6b\x42\x73\x68':function(_0x46f48a,_0x45ec28){return _0x46f48a(_0x45ec28);},'\x69\x49\x73\x75\x42':function(_0x129051,_0x1a9d4b){return _0x129051===_0x1a9d4b;},'\x62\x67\x43\x66\x5a':_0x3398ae(0x277,'\x47\x36\x56\x6b'),'\x72\x6b\x4f\x59\x49':_0x3398ae(0x262,'\x4d\x6f\x23\x5b'),'\x53\x71\x5a\x52\x70':function(_0x5abb1a,_0xc11ba8){return _0x5abb1a===_0xc11ba8;},'\x68\x45\x58\x4e\x4d':_0x3398ae(0x213,'\x29\x5b\x43\x4e')},_0x254561=_0x3ac483[_0x3398ae(0x228,'\x54\x43\x79\x31')](String,_0x333fc5[_0x3398ae(0x27f,'\x24\x35\x5d\x5a')+_0x3398ae(0x24a,'\x30\x37\x26\x37')+_0x3398ae(0x242,'\x33\x46\x76\x70')]||'')[_0x3398ae(0x1fd,'\x52\x4d\x44\x73')]()['\x74\x6f\x4c\x6f\x77\x65\x72\x43'+_0x3398ae(0x211,'\x51\x61\x36\x62')]();return _0x3ac483[_0x3398ae(0x220,'\x47\x59\x33\x24')](_0x254561,'\x30')||_0x3ac483[_0x3398ae(0x20e,'\x48\x77\x56\x73')](_0x254561,_0x3ac483[_0x3398ae(0x24e,'\x4c\x32\x32\x33')])||_0x3ac483['\x69\x49\x73\x75\x42'](_0x254561,_0x3ac483[_0x3398ae(0x248,'\x52\x24\x6e\x52')])||_0x3ac483[_0x3398ae(0x24c,'\x47\x59\x33\x24')](_0x254561,_0x3ac483['\x68\x45\x58\x4e\x4d'])||_0x3ac483[_0x3398ae(0x218,'\x29\x5b\x43\x4e')](_0x254561,'\x6e\x6f');}function _0x23df(){const _0x50c46e=['\x57\x36\x4f\x68\x73\x43\x6b\x30\x62\x71','\x6b\x38\x6f\x69\x57\x36\x64\x63\x55\x6d\x6b\x7a','\x57\x37\x64\x63\x49\x63\x42\x64\x49\x53\x6b\x32\x7a\x73\x57','\x57\x36\x38\x37\x57\x36\x46\x64\x55\x75\x78\x64\x50\x68\x37\x63\x55\x6d\x6b\x38\x64\x57','\x57\x37\x6a\x69\x71\x38\x6f\x50\x57\x35\x6d\x46\x57\x50\x5a\x64\x49\x47','\x57\x36\x33\x64\x4c\x53\x6b\x57\x57\x51\x68\x64\x51\x47\x4a\x63\x4a\x6d\x6b\x57','\x57\x4f\x4f\x69\x69\x31\x48\x6b','\x75\x6d\x6b\x44\x57\x52\x5a\x64\x56\x53\x6b\x4d\x42\x63\x53\x4e\x57\x35\x78\x64\x50\x61','\x57\x35\x37\x63\x4e\x59\x33\x63\x47\x53\x6b\x6a\x57\x37\x62\x49\x57\x51\x6d','\x57\x35\x4a\x63\x4c\x49\x70\x63\x4d\x53\x6b\x43\x57\x36\x48\x49\x57\x51\x43','\x77\x43\x6f\x7a\x6a\x61','\x73\x6d\x6b\x48\x73\x53\x6b\x56','\x57\x52\x65\x4b\x57\x50\x52\x63\x4c\x71','\x57\x51\x33\x64\x50\x6d\x6b\x4e\x57\x34\x76\x30\x57\x34\x74\x64\x4b\x77\x65','\x57\x34\x50\x6f\x78\x73\x78\x64\x4f\x65\x70\x64\x53\x64\x47','\x57\x37\x56\x64\x4d\x43\x6f\x30\x75\x38\x6f\x4c','\x57\x51\x2f\x63\x55\x53\x6b\x2f\x57\x50\x76\x62\x57\x4f\x46\x63\x56\x33\x53','\x70\x53\x6f\x47\x64\x6d\x6f\x33\x6a\x66\x38\x47\x57\x37\x6d\x31','\x57\x35\x43\x49\x44\x38\x6b\x78\x64\x38\x6f\x33\x57\x50\x35\x58','\x57\x51\x2f\x63\x4a\x49\x54\x76\x57\x34\x44\x35','\x78\x5a\x76\x33\x57\x36\x42\x63\x51\x6d\x6b\x42\x66\x31\x43','\x42\x43\x6b\x53\x76\x38\x6f\x70\x71\x4e\x71\x56\x57\x52\x30','\x57\x37\x52\x64\x4c\x6d\x6b\x78\x57\x50\x4a\x64\x49\x47','\x57\x35\x62\x31\x44\x6d\x6f\x69\x57\x37\x75\x76\x57\x52\x33\x64\x4f\x57','\x69\x75\x48\x42\x6f\x53\x6f\x30','\x7a\x38\x6b\x73\x45\x38\x6b\x6b\x57\x36\x30','\x43\x53\x6f\x62\x57\x4f\x52\x63\x48\x57','\x57\x37\x2f\x64\x50\x38\x6f\x77\x78\x61','\x57\x34\x37\x64\x54\x49\x44\x71\x57\x34\x54\x54\x57\x50\x52\x64\x4c\x57','\x73\x4c\x5a\x64\x54\x30\x30','\x57\x34\x68\x64\x52\x53\x6b\x76\x57\x4f\x4e\x64\x49\x63\x5a\x63\x54\x53\x6b\x65','\x76\x43\x6b\x30\x6f\x4a\x33\x63\x4a\x43\x6b\x6f\x57\x51\x4c\x6e\x46\x38\x6f\x32\x57\x4f\x4e\x64\x4d\x47','\x66\x4b\x42\x63\x52\x32\x30\x5a\x77\x49\x34','\x66\x43\x6b\x62\x45\x67\x4a\x64\x47\x58\x72\x68\x57\x51\x30','\x57\x36\x74\x64\x52\x58\x72\x76\x57\x52\x79','\x46\x6d\x6f\x54\x73\x53\x6f\x6e\x74\x38\x6b\x47\x74\x53\x6f\x73\x6b\x43\x6f\x5a','\x70\x38\x6b\x4f\x57\x34\x37\x64\x47\x43\x6f\x76\x57\x4f\x37\x63\x4d\x57\x65','\x71\x38\x6f\x6d\x70\x4c\x75','\x43\x38\x6b\x7a\x72\x61','\x57\x37\x44\x56\x57\x34\x42\x64\x49\x49\x65\x57\x78\x53\x6b\x7a\x73\x38\x6f\x38','\x57\x37\x68\x63\x49\x64\x46\x64\x4c\x6d\x6b\x30\x42\x47','\x45\x38\x6b\x77\x44\x38\x6b\x72\x57\x37\x46\x63\x50\x5a\x44\x70','\x57\x37\x7a\x6f\x72\x43\x6f\x2f\x57\x34\x30\x5a','\x57\x36\x7a\x32\x45\x61\x33\x64\x47\x4d\x46\x64\x49\x47\x57','\x71\x38\x6f\x72\x70\x66\x33\x64\x4c\x47','\x6f\x53\x6b\x4d\x66\x53\x6b\x73','\x69\x33\x46\x63\x47\x65\x4b\x65\x44\x57','\x45\x38\x6b\x38\x42\x6d\x6f\x72\x70\x31\x6d\x6a\x57\x35\x30','\x6c\x6d\x6f\x61\x74\x71','\x72\x65\x50\x7a\x6e\x47\x54\x4b\x57\x51\x52\x63\x56\x57','\x73\x31\x75\x5a\x76\x43\x6b\x71','\x65\x43\x6b\x76\x6b\x53\x6b\x52\x7a\x43\x6b\x76\x73\x43\x6f\x71','\x73\x30\x31\x35\x73\x66\x78\x64\x4e\x75\x71','\x57\x36\x74\x64\x53\x75\x34\x69\x57\x52\x62\x31\x57\x35\x4e\x64\x52\x47','\x57\x37\x4e\x63\x48\x38\x6f\x71\x57\x52\x4b\x48','\x57\x52\x33\x64\x53\x38\x6b\x37\x57\x36\x39\x71','\x62\x53\x6b\x67\x71\x59\x4e\x64\x4f\x4d\x71\x4a\x45\x57','\x65\x4c\x44\x41','\x62\x43\x6b\x6b\x79\x30\x56\x64\x51\x53\x6f\x33\x57\x37\x7a\x4a\x66\x57','\x57\x34\x42\x64\x52\x38\x6b\x72\x57\x4f\x4b','\x6f\x53\x6b\x6f\x44\x33\x4a\x64\x51\x71','\x57\x50\x2f\x63\x55\x6d\x6f\x67\x57\x35\x56\x63\x4b\x32\x37\x64\x4f\x38\x6b\x5a\x6e\x53\x6b\x4d\x57\x34\x69\x63\x57\x37\x79','\x57\x36\x70\x64\x4f\x71\x47\x56\x57\x34\x47\x30\x71\x53\x6b\x38\x42\x4a\x65','\x57\x36\x4e\x64\x4a\x53\x6b\x52\x57\x51\x74\x64\x55\x72\x46\x63\x47\x38\x6b\x50','\x57\x37\x56\x64\x53\x43\x6b\x4c\x57\x52\x37\x64\x4d\x57','\x57\x51\x74\x63\x51\x38\x6b\x37\x57\x34\x61\x70','\x76\x6d\x6b\x4b\x43\x6d\x6b\x31\x57\x34\x69\x62\x6e\x6d\x6b\x77','\x6b\x76\x31\x35\x6f\x38\x6f\x57','\x70\x53\x6f\x53\x79\x68\x37\x64\x4a\x71','\x6e\x6d\x6f\x46\x65\x6d\x6f\x76\x57\x51\x4c\x35\x64\x53\x6b\x52\x7a\x6d\x6f\x32\x57\x34\x5a\x64\x47\x61','\x67\x47\x48\x5a\x57\x34\x56\x63\x48\x72\x64\x64\x4e\x53\x6b\x33','\x57\x34\x37\x64\x47\x38\x6f\x57\x46\x6d\x6f\x52\x72\x53\x6f\x6f\x43\x71','\x57\x52\x5a\x63\x49\x77\x34\x5a\x57\x52\x53','\x57\x4f\x74\x63\x50\x33\x48\x6b\x57\x37\x38','\x46\x43\x6f\x4c\x74\x43\x6f\x6e\x68\x43\x6f\x35\x6c\x43\x6f\x66\x64\x6d\x6f\x36\x57\x37\x78\x63\x50\x6d\x6f\x47','\x46\x67\x6d\x42\x6c\x64\x34','\x6c\x43\x6f\x36\x6e\x76\x44\x75','\x43\x58\x6c\x64\x4a\x53\x6b\x68','\x42\x47\x58\x6b','\x57\x52\x34\x4d\x66\x33\x6a\x57\x57\x50\x2f\x64\x56\x53\x6b\x55','\x74\x4c\x64\x63\x50\x62\x74\x63\x4d\x71','\x57\x4f\x53\x63\x57\x52\x56\x63\x51\x47\x57\x6b\x72\x6d\x6b\x78','\x57\x52\x4a\x63\x52\x62\x50\x31\x57\x35\x53','\x57\x51\x64\x63\x56\x6d\x6b\x71\x57\x34\x79\x2b','\x6d\x43\x6f\x45\x6d\x4b\x50\x78','\x77\x74\x58\x35\x57\x37\x37\x63\x56\x43\x6b\x64\x66\x30\x69','\x57\x34\x6d\x41\x6b\x4c\x39\x42\x57\x51\x70\x64\x47\x53\x6b\x66','\x42\x58\x62\x44\x57\x37\x4a\x63\x4a\x6d\x6b\x2f\x70\x68\x38','\x57\x36\x54\x35\x57\x4f\x64\x63\x4e\x74\x65\x53\x41\x6d\x6b\x4d','\x57\x50\x4e\x63\x54\x38\x6f\x6a\x57\x35\x37\x63\x4d\x4d\x5a\x63\x4e\x43\x6b\x73\x63\x38\x6b\x2f\x57\x37\x71\x38','\x6a\x6d\x6f\x71\x75\x66\x56\x64\x54\x43\x6f\x36\x57\x51\x6e\x2f','\x41\x43\x6b\x7a\x79\x61\x38','\x57\x51\x48\x6e\x57\x51\x57\x52\x57\x50\x74\x63\x4c\x38\x6b\x34\x57\x51\x65\x57\x45\x59\x70\x64\x48\x43\x6b\x4b','\x57\x51\x42\x63\x50\x78\x57\x30\x57\x50\x50\x71','\x42\x43\x6f\x6c\x65\x76\x74\x64\x51\x57','\x57\x50\x6c\x63\x4e\x74\x54\x37\x57\x37\x43','\x69\x6d\x6f\x4f\x57\x35\x42\x63\x52\x38\x6b\x56','\x57\x36\x4b\x39\x57\x36\x64\x63\x56\x30\x33\x64\x48\x68\x70\x63\x4b\x6d\x6b\x4a','\x45\x49\x31\x54\x57\x37\x33\x63\x4b\x72\x56\x64\x53\x57','\x57\x4f\x74\x64\x4d\x6d\x6b\x70\x57\x34\x50\x39','\x77\x74\x58\x36\x57\x36\x52\x63\x55\x53\x6b\x6f\x66\x30\x6d','\x57\x50\x74\x63\x4a\x4b\x4b\x6f\x57\x51\x54\x33\x57\x36\x33\x64\x56\x57','\x57\x52\x30\x53\x6b\x4c\x68\x63\x4c\x73\x52\x64\x47\x61\x66\x5a\x57\x34\x6d\x76\x7a\x57','\x57\x51\x70\x63\x4a\x38\x6b\x50\x57\x50\x66\x4b','\x73\x65\x4e\x63\x49\x47','\x70\x4e\x44\x55\x68\x53\x6f\x51','\x71\x6d\x6b\x6d\x44\x53\x6f\x52\x62\x33\x38\x4b\x57\x36\x34','\x78\x38\x6b\x41\x74\x49\x56\x63\x56\x57','\x57\x37\x6d\x48\x57\x37\x5a\x64\x4f\x4a\x74\x63\x47\x48\x33\x64\x4d\x47','\x70\x32\x56\x63\x49\x77\x34\x53','\x45\x68\x61\x46\x6a\x74\x75','\x57\x4f\x78\x63\x48\x31\x6e\x55\x57\x37\x6d','\x57\x36\x30\x45\x57\x35\x50\x66\x57\x36\x75','\x6b\x38\x6f\x58\x57\x34\x42\x63\x49\x38\x6b\x41\x42\x47\x75\x32','\x57\x52\x52\x64\x56\x43\x6b\x57\x57\x35\x66\x51\x57\x35\x78\x64\x4d\x33\x71','\x66\x6d\x6f\x4a\x68\x68\x70\x64\x4f\x67\x61\x50\x42\x32\x2f\x64\x47\x53\x6f\x52\x57\x36\x75','\x57\x4f\x42\x63\x53\x75\x43\x75\x57\x4f\x4b','\x57\x52\x44\x74\x45\x49\x50\x44','\x67\x30\x62\x38\x71\x75\x71','\x57\x35\x34\x37\x57\x34\x66\x75\x57\x37\x37\x64\x52\x53\x6f\x79\x57\x52\x53','\x57\x37\x2f\x64\x4f\x62\x48\x78\x57\x4f\x33\x64\x47\x4b\x61\x45','\x73\x53\x6b\x77\x44\x43\x6f\x34\x42\x4c\x61\x64\x57\x50\x4f','\x73\x43\x6b\x51\x78\x61\x74\x63\x55\x73\x38','\x57\x34\x4e\x63\x51\x62\x47','\x65\x4b\x46\x63\x4a\x67\x71\x58','\x66\x53\x6f\x75\x63\x66\x75','\x70\x63\x48\x34\x57\x36\x42\x63\x51\x64\x4a\x64\x50\x43\x6b\x65','\x57\x37\x76\x75\x79\x38\x6f\x4a\x57\x34\x75','\x57\x35\x78\x63\x55\x74\x74\x64\x4e\x6d\x6b\x79','\x57\x52\x68\x63\x4b\x5a\x58\x6d\x57\x34\x31\x57\x57\x52\x46\x64\x4a\x61','\x57\x50\x35\x46\x57\x50\x56\x63\x47\x76\x37\x64\x55\x32\x4e\x63\x53\x47','\x57\x35\x48\x64\x41\x53\x6f\x4e\x57\x35\x30','\x57\x34\x46\x64\x50\x53\x6b\x7a','\x6e\x53\x6f\x56\x6c\x4d\x6a\x2b\x57\x36\x43\x61\x57\x36\x75','\x75\x68\x68\x63\x4e\x62\x42\x63\x53\x47','\x57\x34\x70\x64\x49\x53\x6f\x79\x57\x37\x6d\x35\x57\x36\x56\x64\x4d\x32\x35\x69\x6e\x4d\x78\x63\x51\x53\x6b\x59','\x57\x51\x33\x63\x51\x53\x6b\x35\x57\x36\x65\x41\x6a\x38\x6f\x66\x6e\x47','\x61\x76\x56\x63\x56\x4e\x65\x55\x71\x61','\x44\x71\x76\x45','\x57\x36\x52\x63\x50\x72\x74\x63\x56\x43\x6b\x4f','\x57\x34\x70\x63\x4f\x57\x6c\x64\x52\x53\x6b\x66\x73\x72\x4c\x75','\x45\x38\x6b\x77\x44\x38\x6b\x72\x57\x37\x46\x63\x50\x5a\x44\x45','\x75\x65\x42\x64\x52\x5a\x56\x63\x52\x75\x78\x63\x50\x53\x6f\x69\x57\x52\x43','\x57\x52\x4e\x63\x50\x43\x6b\x41\x57\x37\x38\x77','\x57\x50\x7a\x62\x57\x50\x4a\x63\x49\x76\x53','\x42\x38\x6b\x66\x71\x53\x6b\x6a\x57\x37\x34\x30\x6d\x43\x6b\x57','\x57\x50\x42\x63\x4e\x31\x57\x74\x57\x51\x31\x57\x57\x36\x6c\x64\x4f\x47','\x61\x48\x52\x63\x53\x48\x52\x63\x53\x66\x6c\x63\x4c\x6d\x6f\x49','\x57\x52\x68\x63\x53\x4c\x44\x50\x57\x37\x43','\x79\x33\x34\x45\x78\x53\x6b\x44','\x6a\x63\x70\x63\x4b\x59\x74\x63\x48\x78\x64\x63\x56\x53\x6f\x61','\x57\x50\x4e\x63\x48\x33\x6e\x69\x57\x35\x30\x52\x71\x38\x6b\x30','\x44\x6d\x6f\x48\x66\x78\x4e\x64\x51\x38\x6f\x44\x57\x36\x58\x76'];_0x23df=function(){return _0x50c46e;};return _0x23df();}function _0x665f35(_0x54056a={},_0x34aa66=process.env){const _0x267349=_0x264992,_0x24610b={'\x59\x4c\x4d\x42\x68':function(_0x1b3e8d,_0x1e4847){return _0x1b3e8d(_0x1e4847);},'\x5a\x41\x58\x4a\x69':_0x267349(0x283,'\x76\x75\x79\x26'),'\x6d\x4a\x7a\x71\x43':function(_0xf85048){return _0xf85048();},'\x53\x74\x43\x50\x6d':function(_0x32bbb4,_0x414c20){return _0x32bbb4!==_0x414c20;},'\x70\x4c\x4b\x62\x4f':_0x267349(0x24d,'\x48\x67\x25\x5d'),'\x6d\x5a\x4f\x65\x75':_0x267349(0x209,'\x4f\x6c\x54\x71')+_0x267349(0x275,'\x40\x34\x39\x57')+_0x267349(0x202,'\x40\x34\x39\x57'),'\x4d\x53\x51\x53\x6d':function(_0x441874,_0x44e367){return _0x441874!==_0x44e367;},'\x6c\x6a\x67\x42\x48':function(_0x15ced1,_0x5264a8){return _0x15ced1(_0x5264a8);},'\x4b\x4d\x62\x4d\x49':_0x267349(0x20f,'\x30\x37\x26\x37'),'\x50\x54\x49\x72\x7a':_0x267349(0x24f,'\x52\x24\x6e\x52')+_0x267349(0x249,'\x32\x5d\x34\x63')+'\x52\x4c','\x47\x6b\x6e\x6b\x59':'\x41\x4e\x54\x48\x52\x4f\x50\x49'+_0x267349(0x279,'\x4a\x24\x52\x24')+_0x267349(0x233,'\x29\x49\x6b\x64'),'\x5a\x75\x46\x6c\x53':_0x267349(0x27a,'\x4a\x24\x52\x24')+_0x267349(0x1ef,'\x40\x34\x39\x57')};if(_0x24610b[_0x267349(0x271,'\x76\x75\x79\x26')](_0x3fcb3d,_0x34aa66)){const _0x92eaaa={};return _0x92eaaa[_0x267349(0x1f6,'\x29\x5b\x43\x4e')]=![],_0x92eaaa['\x72\x65\x61\x73\x6f\x6e']=_0x24610b[_0x267349(0x1fa,'\x74\x51\x25\x44')],_0x92eaaa;}const _0x59d930=_0x34aa66===process.env&&_0x54056a[_0x267349(0x22f,'\x4d\x6f\x23\x5b')+_0x267349(0x27b,'\x52\x4d\x44\x73')]!==![],_0x131d0b=String(_0x54056a[_0x267349(0x240,'\x54\x43\x79\x31')]||(_0x59d930?_0x24610b[_0x267349(0x25e,'\x54\x43\x79\x31')](_0x50f1c8):'')||'')[_0x267349(0x273,'\x23\x38\x39\x45')](/\/+$/,''),_0x23728c=String(_0x54056a[_0x267349(0x204,'\x52\x4d\x44\x73')]||(_0x59d930?_0x42d06c():'')||'');if(!_0x131d0b||!_0x23728c){if(_0x24610b[_0x267349(0x23f,'\x30\x44\x23\x59')](_0x24610b[_0x267349(0x280,'\x4f\x25\x32\x38')],_0x267349(0x21c,'\x72\x5e\x62\x78'))){const _0x1d8a7a={};return _0x1d8a7a[_0x267349(0x251,'\x74\x53\x53\x58')]=![],_0x1d8a7a[_0x267349(0x261,'\x64\x61\x33\x6f')]=_0x24610b[_0x267349(0x237,'\x26\x32\x51\x2a')],_0x1d8a7a;}else _0x2d147a[_0x267349(0x27e,'\x30\x37\x26\x37')+_0x267349(0x259,'\x26\x32\x51\x2a')+_0x267349(0x20b,'\x64\x61\x49\x49')+_0x267349(0x253,'\x23\x38\x39\x45')]=_0x3bc89b;}const _0x148ffc=String(_0x34aa66[_0x267349(0x250,'\x74\x51\x25\x44')+_0x267349(0x23c,'\x4d\x6f\x23\x5b')+'\x52\x4c']||'')[_0x267349(0x1f3,'\x4f\x25\x32\x38')]()['\x72\x65\x70\x6c\x61\x63\x65'](/\/+$/,'');_0x148ffc&&_0x24610b[_0x267349(0x241,'\x51\x61\x36\x62')](_0x148ffc,_0x131d0b)&&!_0x34aa66[_0x267349(0x285,'\x4d\x6f\x23\x5b')+_0x267349(0x25d,'\x71\x26\x52\x73')+'\x5f\x42\x41\x53\x45\x5f\x55\x52'+'\x4c']&&(_0x34aa66[_0x267349(0x26e,'\x71\x42\x47\x5b')+_0x267349(0x229,'\x65\x35\x35\x38')+_0x267349(0x260,'\x59\x7a\x5d\x33')+'\x4c']=_0x148ffc);const _0x1e06d0=_0x24610b[_0x267349(0x23b,'\x30\x37\x26\x37')](String,_0x34aa66[_0x267349(0x217,'\x29\x5b\x43\x4e')+_0x267349(0x26a,'\x47\x59\x33\x24')+_0x267349(0x1f2,'\x47\x51\x6c\x2a')]||'')[_0x267349(0x27d,'\x65\x35\x35\x38')]();_0x1e06d0&&_0x24610b[_0x267349(0x221,'\x6a\x70\x45\x4f')](_0x1e06d0,_0x23728c)&&!_0x34aa66[_0x267349(0x201,'\x36\x54\x23\x56')+_0x267349(0x26f,'\x6a\x70\x45\x4f')+_0x267349(0x210,'\x6c\x52\x49\x49')+_0x267349(0x208,'\x72\x5e\x62\x78')]&&(_0x267349(0x224,'\x71\x26\x52\x73')!==_0x24610b[_0x267349(0x267,'\x59\x7a\x5d\x33')]?_0x3d50cb[_0x267349(0x25a,'\x4f\x67\x24\x61')+_0x267349(0x1ed,'\x74\x53\x53\x58')+_0x267349(0x1f9,'\x5b\x6d\x76\x50')+'\x4c']=_0x5f23a9:_0x34aa66['\x45\x56\x4f\x4d\x41\x50\x5f\x41'+'\x4e\x54\x48\x52\x4f\x50\x49\x43'+_0x267349(0x281,'\x30\x44\x23\x59')+'\x4b\x45\x4e']=_0x1e06d0);_0x34aa66[_0x267349(0x23d,'\x47\x59\x33\x24')+_0x267349(0x270,'\x52\x4d\x44\x73')+'\x52\x4c']=_0x131d0b,_0x34aa66[_0x267349(0x264,'\x23\x38\x39\x45')+_0x267349(0x22d,'\x4d\x6f\x23\x5b')+_0x267349(0x225,'\x51\x50\x6e\x31')]=_0x23728c,_0x34aa66['\x43\x55\x53\x54\x4f\x4d\x5f\x41'+_0x267349(0x284,'\x26\x32\x51\x2a')]=_0x23728c,_0x34aa66[_0x267349(0x276,'\x29\x5b\x43\x4e')+_0x267349(0x227,'\x47\x36\x56\x6b')]=_0x131d0b,_0x34aa66[_0x267349(0x21f,'\x4f\x25\x32\x38')+_0x267349(0x21e,'\x6d\x6d\x47\x78')+'\x4f\x5f\x49\x4e\x4a\x45\x43\x54'+'\x45\x44']='\x31';const _0x4c5cb4={};return _0x4c5cb4[_0x267349(0x203,'\x24\x35\x5d\x5a')]=!![],_0x4c5cb4[_0x267349(0x1fe,'\x73\x24\x57\x36')]=_0x131d0b,_0x4c5cb4[_0x267349(0x27c,'\x36\x54\x23\x56')]=[_0x24610b['\x50\x54\x49\x72\x7a'],_0x24610b[_0x267349(0x22a,'\x26\x32\x51\x2a')],_0x267349(0x232,'\x72\x5e\x62\x78')+_0x267349(0x206,'\x64\x61\x33\x6f'),_0x24610b[_0x267349(0x236,'\x52\x4d\x44\x73')]],_0x4c5cb4;}const _0x575859={};_0x575859[_0x264992(0x269,'\x73\x24\x57\x36')+_0x264992(0x252,'\x29\x49\x6b\x64')]=_0x665f35,_0x575859['\x69\x73\x44\x69\x73\x61\x62\x6c'+'\x65\x64']=_0x3fcb3d,module[_0x264992(0x1f8,'\x64\x61\x33\x6f')]=_0x575859;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { getProxyToken, getProxyUrl } = require('./server/settings');
|
|
4
|
+
|
|
5
|
+
function isDisabled(env = process.env) {
|
|
6
|
+
const raw = String(env.EVOMAP_PROXY_AUTO_INJECT || '').trim().toLowerCase();
|
|
7
|
+
return raw === '0' || raw === 'false' || raw === 'off' || raw === 'none' || raw === 'no';
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
function injectProxyEnv(info = {}, env = process.env) {
|
|
11
|
+
if (isDisabled(env)) {
|
|
12
|
+
return { injected: false, reason: 'disabled' };
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const useSettingsFallback = env === process.env && info.useSettings !== false;
|
|
16
|
+
const url = String(info.url || (useSettingsFallback ? getProxyUrl() : '') || '').replace(/\/+$/, '');
|
|
17
|
+
const token = String(info.token || (useSettingsFallback ? getProxyToken() : '') || '');
|
|
18
|
+
if (!url || !token) {
|
|
19
|
+
return { injected: false, reason: 'missing_proxy_settings' };
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const currentBase = String(env.ANTHROPIC_BASE_URL || '').trim().replace(/\/+$/, '');
|
|
23
|
+
if (currentBase && currentBase !== url && !env.EVOMAP_ANTHROPIC_BASE_URL) {
|
|
24
|
+
env.EVOMAP_ANTHROPIC_BASE_URL = currentBase;
|
|
25
|
+
}
|
|
26
|
+
const currentAuthToken = String(env.ANTHROPIC_AUTH_TOKEN || '').trim();
|
|
27
|
+
if (currentAuthToken && currentAuthToken !== token && !env.EVOMAP_ANTHROPIC_AUTH_TOKEN) {
|
|
28
|
+
env.EVOMAP_ANTHROPIC_AUTH_TOKEN = currentAuthToken;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
env.ANTHROPIC_BASE_URL = url;
|
|
32
|
+
env.ANTHROPIC_AUTH_TOKEN = token;
|
|
33
|
+
env.CUSTOM_API_KEY = token;
|
|
34
|
+
env.EVOMAP_PROXY_URL = url;
|
|
35
|
+
env.EVOMAP_PROXY_AUTO_INJECTED = '1';
|
|
36
|
+
|
|
37
|
+
return {
|
|
38
|
+
injected: true,
|
|
39
|
+
url,
|
|
40
|
+
vars: [
|
|
41
|
+
'ANTHROPIC_BASE_URL',
|
|
42
|
+
'ANTHROPIC_AUTH_TOKEN',
|
|
43
|
+
'CUSTOM_API_KEY',
|
|
44
|
+
'EVOMAP_PROXY_URL',
|
|
45
|
+
],
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
module.exports = {
|
|
50
|
+
injectProxyEnv,
|
|
51
|
+
isDisabled,
|
|
52
|
+
};
|