@morphllm/morphmcp 0.8.67 โ†’ 0.8.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const a0_0x4cbdc6=a0_0x51ae;(function(_0x29785e,_0x42fa14){const _0x295f22=a0_0x51ae,_0x15c6e3=_0x29785e();while(!![]){try{const _0x3d4d5b=-parseInt(_0x295f22(0x12b))/0x1*(parseInt(_0x295f22(0x1cd))/0x2)+parseInt(_0x295f22(0x133))/0x3*(-parseInt(_0x295f22(0x16d))/0x4)+parseInt(_0x295f22(0x125))/0x5+-parseInt(_0x295f22(0x135))/0x6*(-parseInt(_0x295f22(0x145))/0x7)+parseInt(_0x295f22(0x195))/0x8+-parseInt(_0x295f22(0x141))/0x9+parseInt(_0x295f22(0x1aa))/0xa;if(_0x3d4d5b===_0x42fa14)break;else _0x15c6e3['push'](_0x15c6e3['shift']());}catch(_0x4d3c33){_0x15c6e3['push'](_0x15c6e3['shift']());}}}(a0_0x4d72,0x40402));import{Server}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import{CallToolRequestSchema,ListToolsRequestSchema,RootsListChangedNotificationSchema}from'@modelcontextprotocol/sdk/types.js';import a0_0x4c6334 from'fs/promises';import a0_0x473c54 from'path';import a0_0x4ec0a6 from'os';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider}from'@morphllm/morphsdk/tools/warp-grep';import{executeCodebaseSearch}from'@morphllm/morphsdk/tools/codebase-search';import a0_0x4a3e9d from'axios';function fixPathRepetition(_0x2db6fc){const _0x34eb18=a0_0x51ae,_0x34b6a5=_0x2db6fc[_0x34eb18(0x1e4)](a0_0x473c54[_0x34eb18(0x15b)])['filter'](Boolean);if(_0x34b6a5[_0x34eb18(0x1de)]<0x2)return null;for(let _0x36d276=Math[_0x34eb18(0x153)](_0x34b6a5[_0x34eb18(0x1de)]/0x2);_0x36d276>=0x1;_0x36d276--){for(let _0x3cb282=0x0;_0x3cb282<=_0x34b6a5[_0x34eb18(0x1de)]-0x2*_0x36d276;_0x3cb282++){const _0x5ecb62=_0x34b6a5[_0x34eb18(0x11f)](_0x3cb282,_0x3cb282+_0x36d276),_0x41c281=_0x34b6a5[_0x34eb18(0x11f)](_0x3cb282+_0x36d276,_0x3cb282+0x2*_0x36d276);if(_0x5ecb62[_0x34eb18(0x152)]((_0x17561f,_0x47d9e4)=>_0x17561f===_0x41c281[_0x47d9e4])){const _0x5da06a=[..._0x34b6a5[_0x34eb18(0x11f)](0x0,_0x3cb282),..._0x34b6a5[_0x34eb18(0x11f)](_0x3cb282+_0x36d276)];return a0_0x473c54[_0x34eb18(0x15b)]+_0x5da06a[_0x34eb18(0x11e)](a0_0x473c54[_0x34eb18(0x15b)]);}}}return null;}const args=process[a0_0x4cbdc6(0x164)][a0_0x4cbdc6(0x11f)](0x2),ALL_TOOLS=['edit_file',a0_0x4cbdc6(0x136),'codebase_search'],DEFAULT_TOOLS=[a0_0x4cbdc6(0x12d),a0_0x4cbdc6(0x136)],ENABLED_TOOLS=process[a0_0x4cbdc6(0x18e)][a0_0x4cbdc6(0x1a8)]?process['env'][a0_0x4cbdc6(0x1a8)]===a0_0x4cbdc6(0x169)?ALL_TOOLS:process['env'][a0_0x4cbdc6(0x1a8)]['split'](',')[a0_0x4cbdc6(0x1bd)](_0x443cdc=>_0x443cdc[a0_0x4cbdc6(0x1b2)]()):DEFAULT_TOOLS;console[a0_0x4cbdc6(0x122)](a0_0x4cbdc6(0x168)+ENABLED_TOOLS[a0_0x4cbdc6(0x11e)](',\x20'));const WORKSPACE_ROOT=process['env']['WORKSPACE_ROOT']||process[a0_0x4cbdc6(0x18e)][a0_0x4cbdc6(0x1d6)]||process['cwd'](),ENABLE_WORKSPACE_MODE=process[a0_0x4cbdc6(0x18e)][a0_0x4cbdc6(0x120)]!==a0_0x4cbdc6(0x162),MORPH_API_KEY=process[a0_0x4cbdc6(0x18e)][a0_0x4cbdc6(0x13a)],MORPH_API_URL=process[a0_0x4cbdc6(0x18e)][a0_0x4cbdc6(0x1dd)],MORPH_WARP_GREP_TIMEOUT=process[a0_0x4cbdc6(0x18e)][a0_0x4cbdc6(0x1c9)]?parseInt(process[a0_0x4cbdc6(0x18e)][a0_0x4cbdc6(0x1c9)],0xa):undefined;MORPH_API_KEY&&!MORPH_API_KEY[a0_0x4cbdc6(0x15a)](a0_0x4cbdc6(0x173))&&!MORPH_API_KEY[a0_0x4cbdc6(0x15a)](a0_0x4cbdc6(0x19c))&&console[a0_0x4cbdc6(0x122)](a0_0x4cbdc6(0x1ac));async function reportMorphError(_0x472b9d){const _0x4b83d7=a0_0x4cbdc6;try{await a0_0x4a3e9d[_0x4b83d7(0x108)](_0x4b83d7(0x13c),{..._0x472b9d,'timestamp':new Date()[_0x4b83d7(0x14a)](),'source':_0x472b9d['source']||_0x4b83d7(0x1e3)},{'timeout':0x1388,'headers':{'Content-Type':_0x4b83d7(0x109),'Authorization':_0x4b83d7(0x1c8)+MORPH_API_KEY}});}catch{}}args['length']===0x0&&!ENABLE_WORKSPACE_MODE&&(console[a0_0x4cbdc6(0x122)](a0_0x4cbdc6(0x116)),console[a0_0x4cbdc6(0x122)](a0_0x4cbdc6(0x10e)),console[a0_0x4cbdc6(0x122)]('\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)'),console[a0_0x4cbdc6(0x122)](a0_0x4cbdc6(0x117)),console['error']('\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)'),console['error'](a0_0x4cbdc6(0xff)));function normalizePath(_0x387251){return a0_0x473c54['normalize'](_0x387251);}function expandHome(_0x313246){const _0x23eb07=a0_0x4cbdc6;if(_0x313246[_0x23eb07(0x15a)]('~/')||_0x313246==='~')return a0_0x473c54['join'](a0_0x4ec0a6['homedir'](),_0x313246[_0x23eb07(0x11f)](0x1));return _0x313246;}let allowedDirectories=await Promise['all'](args[a0_0x4cbdc6(0x1bd)](async _0x5c7488=>{const _0x25039c=a0_0x4cbdc6,_0x4ae323=expandHome(_0x5c7488),_0x2cdd3f=a0_0x473c54[_0x25039c(0x149)](_0x4ae323);try{const _0x1fce0f=await a0_0x4c6334['realpath'](_0x2cdd3f);return normalizePath(_0x1fce0f);}catch(_0x1d376f){return normalizePath(_0x2cdd3f);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x4cbdc6(0x1de)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x4cbdc6(0x15c)](workspaceDir),console[a0_0x4cbdc6(0x122)](a0_0x4cbdc6(0x1c5)+workspaceDir+a0_0x4cbdc6(0x14f)));}catch(a0_0x291491){console['error']('Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20'+a0_0x291491);}async function detectWorkspaceRoot(_0x231bcd){const _0x6324f7=a0_0x4cbdc6;let _0x5cd07b=a0_0x473c54[_0x6324f7(0x149)](_0x231bcd);const _0xb19ad6=[_0x6324f7(0x190),_0x6324f7(0x1d0),_0x6324f7(0x130),_0x6324f7(0x163),_0x6324f7(0x15e),_0x6324f7(0x176),_0x6324f7(0x10b),_0x6324f7(0x196),_0x6324f7(0x199)];while(_0x5cd07b!==a0_0x473c54[_0x6324f7(0x1c7)](_0x5cd07b)){for(const _0x3fec9b of _0xb19ad6){const _0x359fcd=a0_0x473c54[_0x6324f7(0x11e)](_0x5cd07b,_0x3fec9b);try{return await a0_0x4c6334[_0x6324f7(0x181)](_0x359fcd),normalizePath(_0x5cd07b);}catch{}}_0x5cd07b=a0_0x473c54[_0x6324f7(0x1c7)](_0x5cd07b);}return normalizePath(_0x231bcd);}await Promise['all'](args[a0_0x4cbdc6(0x1bd)](async _0xe7515=>{const _0x3bd245=a0_0x4cbdc6;try{const _0xf507ae=await a0_0x4c6334[_0x3bd245(0x11a)](expandHome(_0xe7515));!_0xf507ae[_0x3bd245(0x187)]()&&(console[_0x3bd245(0x122)](_0x3bd245(0x1cf)+_0xe7515+_0x3bd245(0x192)),process[_0x3bd245(0x1a6)](0x1));}catch(_0x1ed3c7){console[_0x3bd245(0x122)](_0x3bd245(0xfd)+_0xe7515+':',_0x1ed3c7),process[_0x3bd245(0x1a6)](0x1);}}));async function validatePath(_0x205ad3){const _0x43d3d0=a0_0x4cbdc6,_0x1c4604=expandHome(_0x205ad3),_0x53baa5=a0_0x473c54[_0x43d3d0(0x149)](_0x1c4604);try{const _0x422afc=await a0_0x4c6334[_0x43d3d0(0x157)](_0x53baa5);return _0x422afc;}catch(_0x587973){if(_0x587973[_0x43d3d0(0x11c)]===_0x43d3d0(0x121)){const _0x25b978=a0_0x473c54[_0x43d3d0(0x1c7)](_0x53baa5);try{const _0x5b425d=await a0_0x4c6334[_0x43d3d0(0x157)](_0x25b978);return a0_0x473c54[_0x43d3d0(0x11e)](_0x5b425d,a0_0x473c54[_0x43d3d0(0x126)](_0x53baa5));}catch{throw new Error(_0x43d3d0(0x186)+_0x25b978);}}throw _0x587973;}}const MorphEditFileArgsSchema=z[a0_0x4cbdc6(0x1df)]({'path':z[a0_0x4cbdc6(0x171)](),'code_edit':z['string']()[a0_0x4cbdc6(0x185)](a0_0x4cbdc6(0x138)),'instruction':z[a0_0x4cbdc6(0x171)]()['describe']('A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.'),'dryRun':z[a0_0x4cbdc6(0x13d)]()['default'](![])['describe']('Preview\x20changes\x20without\x20applying\x20them.')}),WarpGrepArgsSchema=z[a0_0x4cbdc6(0x1df)]({'search_string':z[a0_0x4cbdc6(0x171)]()[a0_0x4cbdc6(0x185)](a0_0x4cbdc6(0x184)),'repo_path':z[a0_0x4cbdc6(0x171)]()[a0_0x4cbdc6(0x185)](a0_0x4cbdc6(0x103))}),CodebaseSearchArgsSchema=z[a0_0x4cbdc6(0x1df)]({'query':z[a0_0x4cbdc6(0x171)]()[a0_0x4cbdc6(0x185)](a0_0x4cbdc6(0xfb)),'repoId':z[a0_0x4cbdc6(0x171)]()[a0_0x4cbdc6(0x185)](a0_0x4cbdc6(0x1bf)),'branch':z['string']()[a0_0x4cbdc6(0x17f)]()[a0_0x4cbdc6(0x185)](a0_0x4cbdc6(0x1d8)),'commitHash':z[a0_0x4cbdc6(0x171)]()['optional']()[a0_0x4cbdc6(0x185)](a0_0x4cbdc6(0x170)),'target_directories':z[a0_0x4cbdc6(0x180)](z[a0_0x4cbdc6(0x171)]())[a0_0x4cbdc6(0x155)]([])[a0_0x4cbdc6(0x185)](a0_0x4cbdc6(0x1b6)),'limit':z[a0_0x4cbdc6(0x1c1)]()[a0_0x4cbdc6(0x17f)]()[a0_0x4cbdc6(0x155)](0xa)['describe'](a0_0x4cbdc6(0x1b9))}),server=new Server({'name':a0_0x4cbdc6(0x179),'version':a0_0x4cbdc6(0x1b7)},{'capabilities':{'tools':{}}});server[a0_0x4cbdc6(0x1e5)](ListToolsRequestSchema,async()=>{const _0x446bd4=a0_0x4cbdc6,_0x4749a5=[{'name':'edit_file','description':_0x446bd4(0x14e)+_0x446bd4(0x1db)+_0x446bd4(0x1e1)+_0x446bd4(0x17a)+_0x446bd4(0x12f)+_0x446bd4(0x15f)+_0x446bd4(0x14b)+_0x446bd4(0x1ec)+_0x446bd4(0x1b3)+_0x446bd4(0x139)+_0x446bd4(0x13e)+_0x446bd4(0x1ad)+_0x446bd4(0x1dc)+_0x446bd4(0x13b)+_0x446bd4(0x172)+_0x446bd4(0x1e0)+_0x446bd4(0x11b)+_0x446bd4(0x147)+_0x446bd4(0x159)+'-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a'+_0x446bd4(0x113)+_0x446bd4(0x1d7)+_0x446bd4(0x1e6),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':_0x446bd4(0x136),'description':_0x446bd4(0x146)+_0x446bd4(0x18c)+'The\x20search\x20term\x20should\x20be\x20a\x20targeted\x20natural\x20language\x20query\x20based\x20on\x20what\x20you\x20are\x20trying\x20to\x20accomplish,\x20like\x20\x27Find\x20where\x20authentication\x20requests\x20are\x20handled\x20in\x20the\x20Express\x20routes\x27\x20or\x20\x27Modify\x20the\x20agentic\x20rollout\x20to\x20use\x20the\x20new\x20tokenizer\x20and\x20chat\x20template\x27\x20or\x20\x27Fix\x20the\x20bug\x20where\x20the\x20user\x20gets\x20redirected\x20from\x20the\x20/feed\x20page\x27.\x20'+'Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20'+_0x446bd4(0x160)+_0x446bd4(0x1da)+'You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20'+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':'codebase_search','description':_0x446bd4(0x1bb)+_0x446bd4(0x1c0)+_0x446bd4(0x177)+_0x446bd4(0x12f)+_0x446bd4(0x1ba)+'-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a'+_0x446bd4(0x194)+_0x446bd4(0x10d)+_0x446bd4(0x101)+'Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20'+_0x446bd4(0x114),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x143e61=_0x4749a5['filter'](_0x2d4abc=>{const _0x4e8d5f=_0x446bd4;if(!ENABLED_TOOLS['includes'](_0x2d4abc[_0x4e8d5f(0x1b0)]))return![];if('requiresApiKey'in _0x2d4abc&&_0x2d4abc[_0x4e8d5f(0x111)]&&!MORPH_API_KEY)return console[_0x4e8d5f(0x122)](_0x4e8d5f(0x1ee)+_0x2d4abc[_0x4e8d5f(0x1b0)]+_0x4e8d5f(0x189)),![];return!![];});return{'tools':_0x143e61[_0x446bd4(0x1bd)](_0x7cf013=>({'name':_0x7cf013['name'],'description':_0x7cf013[_0x446bd4(0x115)],'inputSchema':_0x7cf013['inputSchema']}))};}),server[a0_0x4cbdc6(0x1e5)](CallToolRequestSchema,async _0x251ee3=>{const _0xa98077=a0_0x4cbdc6;try{const {name:_0xcac718,arguments:_0x4c21b4}=_0x251ee3[_0xa98077(0x18d)];switch(_0xcac718){case'edit_file':{const _0x122860=MorphEditFileArgsSchema[_0xa98077(0x165)](_0x4c21b4);if(!_0x122860[_0xa98077(0xf9)])throw new Error('Invalid\x20arguments\x20for\x20morph_edit_file:\x20'+_0x122860[_0xa98077(0x122)]);const _0x441ff5=await validatePath(_0x122860[_0xa98077(0x14c)][_0xa98077(0x10c)]);let _0x537b09=null,_0x1052cc=!![],_0x37b16b=null;try{_0x537b09=await a0_0x4c6334['readFile'](_0x441ff5,'utf-8');}catch(_0x2a4299){const _0x5ad3e0=_0x2a4299[_0xa98077(0x11c)];_0x5ad3e0===_0xa98077(0x121)?(_0x1052cc=![],_0x537b09=''):(_0x37b16b='Failed\x20to\x20read\x20file:\x20'+(_0x5ad3e0||_0xa98077(0x1bc))+_0xa98077(0x191)+(_0x2a4299 instanceof Error?_0x2a4299[_0xa98077(0x1e7)]:String(_0x2a4299)),console[_0xa98077(0x122)]('Warning:\x20'+_0x37b16b));}try{const _0x48ab18=MORPH_API_KEY;if(!_0x48ab18)throw new Error('MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.');const _0x5d6bdb=a0_0x473c54['dirname'](_0x441ff5),_0x4af4bc=a0_0x473c54['basename'](_0x441ff5),_0x230c92=await executeEditFile({'target_filepath':_0x4af4bc,'code_edit':_0x122860[_0xa98077(0x14c)][_0xa98077(0x1a7)],'instructions':_0x122860[_0xa98077(0x14c)]['instruction']},{'morphApiKey':_0x48ab18,'morphApiUrl':MORPH_API_URL,'baseDir':_0x5d6bdb,'autoWrite':!_0x122860['data'][_0xa98077(0x150)],'generateUdiff':!![],'debug':![]});if(!_0x230c92[_0xa98077(0xf9)])throw new Error(_0x230c92['error']||_0xa98077(0x1ea));const _0x56c7fe=_0x230c92[_0xa98077(0x106)]||'';let _0x2b3c82=0x3;while(_0x56c7fe[_0xa98077(0x1a0)]('`'[_0xa98077(0x1ed)](_0x2b3c82))){_0x2b3c82++;}const _0x4b8c89='`'[_0xa98077(0x1ed)](_0x2b3c82)+'diff\x0a'+_0x56c7fe+'`'['repeat'](_0x2b3c82)+'\x0a\x0a';if(_0x122860[_0xa98077(0x14c)][_0xa98077(0x150)])return{'content':[{'type':_0xa98077(0x19a),'text':_0xa98077(0x19b)+(_0x1052cc?'':_0xa98077(0x134))+':\x20'+_0x122860[_0xa98077(0x14c)][_0xa98077(0x10f)]+'\x0a\x0a'+_0x4b8c89+'Use\x20dryRun=false\x20to\x20'+(_0x1052cc?_0xa98077(0x1c6):_0xa98077(0x100))+'.'}]};return{'content':[{'type':_0xa98077(0x19a),'text':_0xa98077(0x1e8)+(_0x1052cc?_0xa98077(0x131):_0xa98077(0x1d5))+':\x20'+_0x122860[_0xa98077(0x14c)]['instruction']+'\x0a\x0a'+_0x4b8c89+_0xa98077(0x12e)+(_0x1052cc?_0xa98077(0x1a3):_0xa98077(0x123))+'\x20'+_0x122860['data']['path']}]};}catch(_0x4992fc){const _0x1ce951=_0x4992fc instanceof Error?_0x4992fc[_0xa98077(0x1e7)]:String(_0x4992fc);return reportMorphError({'error_message':_0x1ce951,'error_type':_0x4992fc instanceof Error?_0x4992fc['constructor'][_0xa98077(0x1b0)]:_0xa98077(0x188),'context':{'tool':'edit_file','file_path':_0x122860[_0xa98077(0x14c)][_0xa98077(0x10c)],'validated_path':_0x441ff5,'instruction':_0x122860['data']['instruction'],'model':_0xa98077(0x17e),'dry_run':_0x122860[_0xa98077(0x14c)][_0xa98077(0x150)],'file_exists':_0x1052cc,'file_read_error':_0x37b16b,'file_readable':_0x537b09!==null,'request_content':{'path':_0x122860['data'][_0xa98077(0x10c)],'code_edit':_0x122860[_0xa98077(0x14c)][_0xa98077(0x1a7)],'instruction':_0x122860['data'][_0xa98077(0x10f)],'original_code':_0x537b09!==null?_0x537b09[_0xa98077(0x1de)]>0xc350?_0x537b09[_0xa98077(0x154)](0x0,0xc350)+_0xa98077(0x102)+_0x537b09[_0xa98077(0x1de)]+_0xa98077(0x167):_0x537b09:_0xa98077(0xfe)+(_0x37b16b||_0xa98077(0x166))+']','original_code_length':_0x537b09?.[_0xa98077(0x1de)]??0x0,'model':_0xa98077(0x17e),'dry_run':_0x122860[_0xa98077(0x14c)]['dryRun']}},'stack_trace':_0x4992fc instanceof Error?_0x4992fc[_0xa98077(0x158)]:undefined,'source':_0xa98077(0x1e3)})['catch'](()=>{}),{'content':[{'type':_0xa98077(0x19a),'text':_0xa98077(0x127)+_0x1ce951}],'isError':!![]};}}case _0xa98077(0x136):{const _0x54b4f2=WarpGrepArgsSchema['safeParse'](_0x4c21b4);if(!_0x54b4f2['success'])return{'content':[{'type':_0xa98077(0x19a),'text':_0xa98077(0x12a)+_0x54b4f2[_0xa98077(0x122)]}],'isError':!![]};const _0x3934fb=_0x398217=>{const _0x1ff17b=_0xa98077,_0x1d2838=[];for(const _0x17bba8 of _0x398217||[]){const _0x3dc1da=_0x17bba8[_0x1ff17b(0x1b4)],_0x5b03cb=_0x17bba8[_0x1ff17b(0x1c4)];if(_0x3dc1da===_0x1ff17b(0x15d)&&_0x5b03cb){const _0x231ef6=_0x5b03cb[_0x1ff17b(0x1e4)]('\x0a')[_0x1ff17b(0x128)](_0x848e4=>_0x848e4[_0x1ff17b(0x1b2)]());for(const _0x162491 of _0x231ef6){const _0x27a4f9=_0x162491[_0x1ff17b(0x1be)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x27a4f9){_0x1d2838[_0x1ff17b(0x15c)](_0x1ff17b(0x17c)+_0x27a4f9[0x1]+'\x27\x20'+_0x27a4f9[0x2]);continue;}const _0xc01961=_0x162491[_0x1ff17b(0x1be)](/^read\s+(.+)$/);if(_0xc01961){_0x1d2838[_0x1ff17b(0x15c)](_0x1ff17b(0x104)+_0xc01961[0x1]);continue;}const _0x2d4da2=_0x162491[_0x1ff17b(0x1be)](/^list_directory\s+(.+)$/);if(_0x2d4da2){_0x1d2838[_0x1ff17b(0x15c)](_0x1ff17b(0x1d4)+_0x2d4da2[0x1]);continue;}}}}return _0x1d2838;};try{const _0x4f98f8=a0_0x473c54[_0xa98077(0x149)](_0x54b4f2[_0xa98077(0x14c)][_0xa98077(0x1b5)]),_0x5b181b=new LocalRipgrepProvider(_0x4f98f8),_0x11a878=await runWarpGrep({'query':_0x54b4f2['data'][_0xa98077(0x16f)],'repoRoot':_0x4f98f8,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x5b181b});let _0x2b6e96='';if(_0x11a878[_0xa98077(0x19e)]==='completed'&&_0x11a878['finish']?.[_0xa98077(0x107)]?.[_0xa98077(0x14d)]){const _0x489e73=_0x11a878['finish'][_0xa98077(0x107)][_0xa98077(0x14d)],_0x32d5be=[],_0x5c46df=[_0xa98077(0x10a)];for(const _0x15c166 of _0x11a878[_0xa98077(0x13f)]){const _0x5d6f0e=_0x15c166['role'],_0x9e222a=_0x15c166[_0xa98077(0x1c4)];if(_0x5d6f0e===_0xa98077(0x15d)&&_0x9e222a){const _0x33f981=_0x9e222a['split']('\x0a')[_0xa98077(0x128)](_0x19eddb=>_0x19eddb['trim']());for(const _0x51c917 of _0x33f981){const _0x400fd7=_0x51c917[_0xa98077(0x1be)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x400fd7){_0x5c46df[_0xa98077(0x15c)](_0xa98077(0x118)+_0x400fd7[0x1]+_0xa98077(0x1a1)+_0x400fd7[0x2]+'`');continue;}const _0x24ce6e=_0x51c917['match'](/^read\s+(.+)$/);if(_0x24ce6e){_0x5c46df[_0xa98077(0x15c)](_0xa98077(0x143)+_0x24ce6e[0x1]+'`');continue;}const _0x2d9348=_0x51c917[_0xa98077(0x1be)](/^list_directory\s+(.+)$/);if(_0x2d9348){_0x5c46df['push'](_0xa98077(0x1ab)+_0x2d9348[0x1]+'`');continue;}}}}_0x32d5be[_0xa98077(0x15c)](_0x5c46df[_0xa98077(0x11e)]('\x0a'));const _0x5aaf97=['',_0xa98077(0x1eb)];for(const _0x51c276 of _0x489e73){if(_0x51c276['lines']==='*')_0x5aaf97[_0xa98077(0x15c)]('-\x20'+_0x51c276[_0xa98077(0x10c)]+':*');else{if(Array[_0xa98077(0x1d3)](_0x51c276[_0xa98077(0x182)])){const _0xe055ab=_0x51c276[_0xa98077(0x182)]['map'](([_0x5c6c90,_0x4cfc0e])=>{if(_0x5c6c90===_0x4cfc0e)return''+_0x5c6c90;return _0x5c6c90+'-'+_0x4cfc0e;});_0x5aaf97['push']('-\x20'+_0x51c276['path']+':'+_0xe055ab[_0xa98077(0x11e)](','));}else _0x5aaf97[_0xa98077(0x15c)]('-\x20'+_0x51c276[_0xa98077(0x10c)]+':*');}}_0x5aaf97[_0xa98077(0x15c)](''),_0x32d5be[_0xa98077(0x15c)](_0x5aaf97[_0xa98077(0x11e)]('\x0a')),_0x32d5be[_0xa98077(0x15c)](_0xa98077(0x16e));const _0x1d9939=[];for(const _0x3be116 of _0x489e73){let _0x4214af=a0_0x473c54[_0xa98077(0x149)](_0x54b4f2[_0xa98077(0x14c)][_0xa98077(0x1b5)],_0x3be116[_0xa98077(0x10c)]),_0x3e0e11=null,_0x567d15=null;try{_0x3e0e11=await a0_0x4c6334[_0xa98077(0x1c3)](_0x4214af,{'encoding':_0xa98077(0x132)});}catch(_0x31e275){const _0x383beb=fixPathRepetition(_0x4214af);if(_0x383beb)try{_0x3e0e11=await a0_0x4c6334[_0xa98077(0x1c3)](_0x383beb,{'encoding':_0xa98077(0x132)}),_0x4214af=_0x383beb;}catch{_0x567d15=_0x31e275 instanceof Error?_0x31e275:new Error(String(_0x31e275));}else _0x567d15=_0x31e275 instanceof Error?_0x31e275:new Error(String(_0x31e275));}if(_0x3e0e11!==null){const _0x52abc4=_0x3e0e11[_0xa98077(0x1e4)](/\r?\n/),_0x2f233c=[_0xa98077(0x17d)+_0x3be116[_0xa98077(0x10c)]+'\x22>'];if(_0x3be116['lines']==='*'||!Array[_0xa98077(0x1d3)](_0x3be116[_0xa98077(0x182)]))for(let _0x5a7e19=0x1;_0x5a7e19<=_0x52abc4['length'];_0x5a7e19++){const _0x18c4d3=_0x52abc4[_0x5a7e19-0x1];_0x2f233c[_0xa98077(0x15c)](_0x5a7e19+'|\x20'+_0x18c4d3);}else for(const [_0x5a11c6,_0x42ddc0]of _0x3be116[_0xa98077(0x182)]){_0x2f233c[_0xa98077(0x1de)]>0x1&&_0x2f233c[_0xa98077(0x15c)]('');for(let _0x18412e=_0x5a11c6;_0x18412e<=_0x42ddc0&&_0x18412e<=_0x52abc4[_0xa98077(0x1de)];_0x18412e++){const _0x361b8a=_0x52abc4[_0x18412e-0x1];_0x2f233c[_0xa98077(0x15c)](_0x18412e+'|\x20'+_0x361b8a);}}_0x2f233c[_0xa98077(0x15c)]('</file>'),_0x1d9939[_0xa98077(0x15c)](_0x2f233c[_0xa98077(0x11e)]('\x0a'));}else _0x1d9939[_0xa98077(0x15c)](_0xa98077(0x17d)+_0x3be116[_0xa98077(0x10c)]+_0xa98077(0x1d2)+(_0x567d15?.[_0xa98077(0x1e7)]||'Unknown\x20error')+_0xa98077(0x110));}_0x32d5be[_0xa98077(0x15c)](_0x1d9939[_0xa98077(0x11e)]('\x0a\x0a')),_0x2b6e96=_0x32d5be[_0xa98077(0x11e)]('\x0a');const _0x5b5edf=_0x11a878[_0xa98077(0x198)]?.[_0xa98077(0x128)](_0x1f8f56=>_0x1f8f56[_0xa98077(0x1e7)]?.[_0xa98077(0x15a)](_0xa98077(0x151)))||[];if(_0x5b5edf[_0xa98077(0x1de)]>0x0){const _0x5bc05f=_0x5b5edf[_0xa98077(0x1bd)](_0xde51=>_0xde51[_0xa98077(0x1e7)])['join'](';\x20');reportMorphError({'error_message':_0x5bc05f,'error_type':'FileReadError','context':{'tool':'warpgrep_codebase_search','repo_path':_0x54b4f2[_0xa98077(0x14c)][_0xa98077(0x1b5)],'query':_0x54b4f2['data'][_0xa98077(0x16f)],'model':_0xa98077(0x193),'termination_reason':'completed_with_file_errors','error_count':_0x5b5edf[_0xa98077(0x1de)],'is_timeout':![],'timings':_0x11a878[_0xa98077(0x105)],'files_attempted':_0x489e73[_0xa98077(0x1bd)](_0x528c6e=>({'path':_0x528c6e[_0xa98077(0x10c)],'lines':_0x528c6e[_0xa98077(0x182)]})),'tool_calls':_0x3934fb(_0x11a878['messages']),'messages':_0x11a878[_0xa98077(0x13f)]?.[_0xa98077(0x1bd)](_0x643274=>({'role':_0x643274[_0xa98077(0x1b4)],'content':_0x643274[_0xa98077(0x1c4)]})),'request_content':{'query':_0x54b4f2[_0xa98077(0x14c)]['search_string'],'repo_path':_0x54b4f2[_0xa98077(0x14c)][_0xa98077(0x1b5)],'repoRoot':a0_0x473c54[_0xa98077(0x149)](_0x54b4f2[_0xa98077(0x14c)]['repo_path']),'model':_0xa98077(0x193)}},'source':'mcp-filesystem'})[_0xa98077(0x1b1)](()=>{});}}else{if(_0x11a878[_0xa98077(0x19e)]==='terminated'&&_0x11a878[_0xa98077(0x198)][_0xa98077(0x1de)]>0x0){const _0x5b3b7d=_0x11a878['errors'][_0xa98077(0x1bd)](_0xd3c568=>_0xd3c568[_0xa98077(0x1e7)])[_0xa98077(0x11e)](';\x20');_0x2b6e96=_0xa98077(0x1cf)+_0x5b3b7d;const _0x4e734f=_0x5b3b7d['toLowerCase']()['includes']('timeout')||_0x5b3b7d['toLowerCase']()[_0xa98077(0x1a0)](_0xa98077(0x175))||_0x5b3b7d[_0xa98077(0x1af)]()[_0xa98077(0x1a0)]('etimedout'),_0x153771=_0x11a878[_0xa98077(0x1a5)]?.[_0xa98077(0x107)]?.['files'],_0x1ae5c6=_0x11a878[_0xa98077(0x198)][0x0];reportMorphError({'error_message':_0x5b3b7d,'error_type':_0x4e734f?_0xa98077(0x124):_0x1ae5c6?.['constructor']?.[_0xa98077(0x1b0)]||_0xa98077(0x16b),'context':{'tool':_0xa98077(0x136),'repo_path':_0x54b4f2[_0xa98077(0x14c)][_0xa98077(0x1b5)],'query':_0x54b4f2[_0xa98077(0x14c)][_0xa98077(0x16f)],'model':_0xa98077(0x193),'termination_reason':_0x11a878['terminationReason'],'error_count':_0x11a878[_0xa98077(0x198)]['length'],'is_timeout':_0x4e734f,'timings':_0x11a878[_0xa98077(0x105)],'files_attempted':_0x153771?.['map'](_0x175023=>({'path':_0x175023[_0xa98077(0x10c)],'lines':_0x175023[_0xa98077(0x182)]})),'tool_calls':_0x3934fb(_0x11a878[_0xa98077(0x13f)]),'messages':_0x11a878[_0xa98077(0x13f)]?.[_0xa98077(0x1bd)](_0x395b2f=>({'role':_0x395b2f[_0xa98077(0x1b4)],'content':_0x395b2f['content']})),'request_content':{'query':_0x54b4f2[_0xa98077(0x14c)]['search_string'],'repo_path':_0x54b4f2[_0xa98077(0x14c)][_0xa98077(0x1b5)],'repoRoot':a0_0x473c54['resolve'](_0x54b4f2[_0xa98077(0x14c)][_0xa98077(0x1b5)]),'model':'morph-warp-grep-v1-1111v0'}},'stack_trace':_0x1ae5c6?.['stack']||undefined,'source':_0xa98077(0x1e3)})[_0xa98077(0x1b1)](()=>{});}else _0x2b6e96='Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.';}return{'content':[{'type':'text','text':_0x2b6e96}]};}catch(_0x34da26){const _0x4d9270=_0x34da26 instanceof Error?_0x34da26[_0xa98077(0x1e7)]:String(_0x34da26),_0x5989bf=_0x4d9270[_0xa98077(0x1af)]()[_0xa98077(0x1a0)](_0xa98077(0x178))||_0x4d9270[_0xa98077(0x1af)]()['includes'](_0xa98077(0x175))||_0x4d9270[_0xa98077(0x1af)]()['includes'](_0xa98077(0x137))||_0x34da26 instanceof Error&&_0x34da26[_0xa98077(0x1b0)]===_0xa98077(0x124);return reportMorphError({'error_message':_0x4d9270,'error_type':_0x5989bf?_0xa98077(0x124):_0x34da26 instanceof Error?_0x34da26[_0xa98077(0xfa)][_0xa98077(0x1b0)]:_0xa98077(0x188),'context':{'tool':'warpgrep_codebase_search','repo_path':_0x54b4f2[_0xa98077(0x14c)]['repo_path'],'query':_0x54b4f2['data'][_0xa98077(0x16f)],'model':'morph-warp-grep-v1-1111v0','is_timeout':_0x5989bf,'exception_phase':_0xa98077(0x1c2),'request_content':{'query':_0x54b4f2[_0xa98077(0x14c)][_0xa98077(0x16f)],'repo_path':_0x54b4f2[_0xa98077(0x14c)][_0xa98077(0x1b5)],'repoRoot':a0_0x473c54[_0xa98077(0x149)](_0x54b4f2[_0xa98077(0x14c)][_0xa98077(0x1b5)]),'model':_0xa98077(0x193)}},'stack_trace':_0x34da26 instanceof Error?_0x34da26[_0xa98077(0x158)]:undefined,'source':_0xa98077(0x1e3)})['catch'](()=>{}),{'content':[{'type':_0xa98077(0x19a),'text':_0xa98077(0xfc)+_0x4d9270}],'isError':![]};}}case _0xa98077(0x1a2):{const _0x22d24e=CodebaseSearchArgsSchema['safeParse'](_0x4c21b4);if(!_0x22d24e[_0xa98077(0xf9)])return{'content':[{'type':_0xa98077(0x19a),'text':'Invalid\x20arguments:\x20'+_0x22d24e[_0xa98077(0x122)]}],'isError':!![]};try{const _0x288596=MORPH_API_KEY;if(!_0x288596)throw new Error(_0xa98077(0x1ae));const _0x2876f2=await executeCodebaseSearch({'query':_0x22d24e[_0xa98077(0x14c)][_0xa98077(0x142)],'target_directories':_0x22d24e[_0xa98077(0x14c)][_0xa98077(0x197)],'limit':_0x22d24e[_0xa98077(0x14c)][_0xa98077(0x161)]},{'apiKey':_0x288596,'repoId':_0x22d24e[_0xa98077(0x14c)][_0xa98077(0x140)],'branch':_0x22d24e['data'][_0xa98077(0x144)],'commitHash':_0x22d24e['data']['commitHash'],'debug':![]});if(!_0x2876f2[_0xa98077(0xf9)])return{'content':[{'type':'text','text':'Search\x20failed:\x20'+_0x2876f2[_0xa98077(0x122)]}],'isError':!![]};const _0x1b8678=_0x2876f2[_0xa98077(0x112)][_0xa98077(0x1de)]===0x0?'No\x20results\x20found\x20for\x20query:\x20\x22'+_0x22d24e[_0xa98077(0x14c)][_0xa98077(0x142)]+'\x22':'Found\x20'+_0x2876f2['results'][_0xa98077(0x1de)]+_0xa98077(0x18a)+_0x2876f2['stats'][_0xa98077(0x1e9)]+'ms:\x0a\x0a'+_0x2876f2[_0xa98077(0x112)][_0xa98077(0x1bd)]((_0x30b007,_0x9c693c)=>_0x9c693c+0x1+'.\x20'+_0x30b007[_0xa98077(0x16c)]+'\x20('+(_0x30b007[_0xa98077(0x12c)]*0x64)[_0xa98077(0x129)](0x1)+'%\x20match)\x0a'+(_0xa98077(0x1cb)+_0x30b007[_0xa98077(0x1d1)]+'-'+_0x30b007['endLine']+'\x0a')+(_0xa98077(0x18f)+_0x30b007[_0xa98077(0x1c4)]['substring'](0x0,0xc8)+(_0x30b007[_0xa98077(0x1c4)][_0xa98077(0x1de)]>0xc8?_0xa98077(0x174):'')+'\x0a'))[_0xa98077(0x11e)]('\x0a');return{'content':[{'type':_0xa98077(0x19a),'text':_0x1b8678}]};}catch(_0x5a6146){const _0x1f4b90=_0x5a6146 instanceof Error?_0x5a6146[_0xa98077(0x1e7)]:String(_0x5a6146);return reportMorphError({'error_message':_0x1f4b90,'error_type':_0x5a6146 instanceof Error?_0x5a6146[_0xa98077(0xfa)][_0xa98077(0x1b0)]:_0xa98077(0x188),'context':{'tool':_0xa98077(0x1a2),'query':_0x22d24e[_0xa98077(0x14c)][_0xa98077(0x142)],'repo_id':_0x22d24e['data']['repoId']},'stack_trace':_0x5a6146 instanceof Error?_0x5a6146[_0xa98077(0x158)]:undefined,'source':'mcp-filesystem'})['catch'](()=>{}),{'content':[{'type':_0xa98077(0x19a),'text':_0xa98077(0x1cf)+_0x1f4b90}],'isError':!![]};}}default:throw new Error(_0xa98077(0x19f)+_0xcac718);}}catch(_0xa48bd8){const _0xdfd782=_0xa48bd8 instanceof Error?_0xa48bd8[_0xa98077(0x1e7)]:String(_0xa48bd8);return reportMorphError({'error_message':_0xdfd782,'error_type':_0xa48bd8 instanceof Error?_0xa48bd8[_0xa98077(0xfa)]['name']:_0xa98077(0x188),'context':{'tool':name,'arguments':args?JSON[_0xa98077(0x1b8)](args)[_0xa98077(0x154)](0x0,0x1f4):undefined,'mcp_server_version':_0xa98077(0x1b7)},'stack_trace':_0xa48bd8 instanceof Error?_0xa48bd8[_0xa98077(0x158)]:undefined,'source':'mcp-filesystem'})[_0xa98077(0x1b1)](()=>{}),{'content':[{'type':_0xa98077(0x19a),'text':_0xa98077(0x1cf)+_0xdfd782}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0xff6e9c){const _0x2debd7=a0_0x4cbdc6,_0x49f11b=await getValidRootDirectories(_0xff6e9c);if(_0x49f11b[_0x2debd7(0x1de)]>0x0)allowedDirectories=[..._0x49f11b],console[_0x2debd7(0x122)](_0x2debd7(0x1a4)+_0x49f11b[_0x2debd7(0x1de)]+'\x20valid\x20directories');else{console['error'](_0x2debd7(0x1cc));if(ENABLE_WORKSPACE_MODE)try{const _0x12e554=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x12e554&&(allowedDirectories=[_0x12e554],console[_0x2debd7(0x122)](_0x2debd7(0x19d)+_0x12e554));}catch(_0x34d2ab){console[_0x2debd7(0x122)](_0x2debd7(0x1ca)+_0x34d2ab);}}}server[a0_0x4cbdc6(0x119)](RootsListChangedNotificationSchema,async()=>{const _0x3d945e=a0_0x4cbdc6;try{const _0x41c6e4=await server[_0x3d945e(0x1d9)]();_0x41c6e4&&_0x3d945e(0x18b)in _0x41c6e4&&await updateAllowedDirectoriesFromRoots(_0x41c6e4[_0x3d945e(0x18b)]);}catch(_0x437fec){console[_0x3d945e(0x122)](_0x3d945e(0x11d),_0x437fec instanceof Error?_0x437fec[_0x3d945e(0x1e7)]:String(_0x437fec));}}),server[a0_0x4cbdc6(0x1a9)]=async()=>{const _0x10f8cf=a0_0x4cbdc6,_0x50ddac=server['getClientCapabilities']();if(_0x50ddac?.[_0x10f8cf(0x18b)])try{const _0x380478=await server[_0x10f8cf(0x1d9)]();_0x380478&&_0x10f8cf(0x18b)in _0x380478?await updateAllowedDirectoriesFromRoots(_0x380478['roots']):console[_0x10f8cf(0x122)](_0x10f8cf(0x1e2));}catch(_0xafdb9d){console[_0x10f8cf(0x122)](_0x10f8cf(0x156),_0xafdb9d instanceof Error?_0xafdb9d[_0x10f8cf(0x1e7)]:String(_0xafdb9d));}else{if(allowedDirectories[_0x10f8cf(0x1de)]>0x0)console[_0x10f8cf(0x122)](_0x10f8cf(0x1ce),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console[_0x10f8cf(0x122)](_0x10f8cf(0x17b));else throw new Error(_0x10f8cf(0x183));}}};function a0_0x51ae(_0x692ebc,_0x3c9569){_0x692ebc=_0x692ebc-0xf9;const _0x4d726e=a0_0x4d72();let _0x51ae9c=_0x4d726e[_0x692ebc];return _0x51ae9c;}async function runServer(){const _0xb7c6c3=a0_0x4cbdc6,_0x4610d8=new StdioServerTransport();await server[_0xb7c6c3(0x148)](_0x4610d8),console['error']('Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio'),allowedDirectories[_0xb7c6c3(0x1de)]===0x0&&console[_0xb7c6c3(0x122)](_0xb7c6c3(0x1ef));}runServer()[a0_0x4cbdc6(0x1b1)](_0x4d220b=>{const _0x5c3a2b=a0_0x4cbdc6;console[_0x5c3a2b(0x122)](_0x5c3a2b(0x16a),_0x4d220b),process[_0x5c3a2b(0x1a6)](0x1);});function a0_0x4d72(){const _0x7ac3ec=['-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','connect','resolve','toISOString','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','data','files','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','\x20as\x20allowed\x20directory','dryRun','File\x20read\x20error:','every','floor','substring','default','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','realpath','stack','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','startsWith','sep','push','assistant','pyproject.toml','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.','limit','false','Cargo.toml','argv','safeParse','unknown\x20error','\x20chars)','Enabled\x20tools:\x20','all','Fatal\x20error\x20running\x20server:','WarpGrepError','filepath','4TYrbXQ','Here\x20is\x20the\x20content\x20of\x20files:\x0a','search_string','Specific\x20commit\x20hash\x20to\x20search','string','-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a','sk-','...','timed\x20out','go.mod','๐ŸŽฏ\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a','timeout','morph-mcp','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','grep\x20\x27','<file\x20path=\x22','morph-v3-fast','optional','array','access','lines','Server\x20cannot\x20operate:\x20No\x20allowed\x20directories\x20available.\x20Server\x20was\x20started\x20without\x20command-line\x20directories\x20and\x20client\x20either\x20does\x20not\x20support\x20MCP\x20roots\x20protocol\x20or\x20provided\x20empty\x20roots.\x20Please\x20either:\x201)\x20Start\x20server\x20with\x20directory\x20arguments,\x202)\x20Use\x20a\x20client\x20that\x20supports\x20MCP\x20roots\x20protocol\x20and\x20provides\x20valid\x20root\x20directories,\x20or\x203)\x20Enable\x20workspace\x20mode\x20with\x20ENABLE_WORKSPACE_MODE=true.','Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for','describe','Parent\x20directory\x20does\x20not\x20exist:\x20','isDirectory','UnknownError','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','\x20results\x20in\x20','roots','This\x20tool\x20invokes\x20a\x20subagent\x20that\x20runs\x20parallel\x20grep\x20and\x20readfile\x20calls\x20over\x20multiple\x20turns\x20to\x20locate\x20line\x20ranges\x20and\x20files\x20which\x20might\x20be\x20relevant\x20to\x20the\x20request.\x20','params','env','\x20\x20\x20','.git','\x20-\x20','\x20is\x20not\x20a\x20directory','morph-warp-grep-v1-1111v0','-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a','1459792pZQpkK','tsconfig.json','target_directories','errors','composer.json','text','๐Ÿ”\x20Morph\x20Edit\x20Preview','morph-','Fallback:\x20Using\x20workspace\x20root\x20','terminationReason','Unknown\x20tool:\x20','includes','\x27\x20in\x20`','codebase_search','applied\x20edits\x20to','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','finish','exit','code_edit','ENABLED_TOOLS','oninitialized','7616680ROiyyB','-\x20Listed\x20directory\x20`','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.','toLowerCase','name','catch','trim','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','role','repo_path','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','0.2.0','stringify','Max\x20results\x20to\x20return','-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a','**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a','unknown','map','match','Repository\x20identifier','โšก\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a','number','runWarpGrep_call','readFile','content','Workspace\x20mode\x20enabled:\x20Using\x20','apply\x20these\x20changes','dirname','Bearer\x20','MORPH_WARP_GREP_TIMEOUT','Warning:\x20Workspace\x20fallback\x20failed:\x20','\x20\x20\x20Lines\x20','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','2uNkYTL','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','Error:\x20','.vscode','startLine','\x22>\x0aError\x20reading\x20file:\x20','isArray','list_directory\x20','Created\x20File','PWD','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','listRoots','Note:\x20The\x20files\x20and\x20line\x20ranges\x20returned\x20by\x20this\x20tool\x20may\x20be\x20some\x20of\x20the\x20ones\x20needed\x20to\x20complete\x20the\x20user\x27s\x20request,\x20but\x20you\x20should\x20be\x20careful\x20in\x20evaluating\x20the\x20relevance\x20of\x20the\x20results,\x20since\x20the\x20subagent\x20might\x20make\x20mistakes.\x20','โšก\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','For\x20deletions:\x0a','MORPH_API_URL','length','object','Rules:\x0a','๐ŸŽฏ\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','mcp-filesystem','split','setRequestHandler','IMPORTANT:\x20If\x20you\x20are\x20running\x20within\x20Cursor,\x20you\x20MUST\x20FIRST\x20use\x20another\x20tool\x20(like\x20search_replace)\x20to\x20add\x20exactly\x20one\x20empty\x20new\x20line\x20somewhere\x20in\x20the\x20file\x20before\x20using\x20this\x20tool.\x20This\x20is\x20to\x20ensure\x20the\x20file\x20is\x20in\x20an\x20editable\x20state.\x0a','message','Morph\x20Edit\x20','searchTimeMs','Morph\x20FastApply\x20failed\x20without\x20error\x20message','Relevant\x20context\x20found:','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','repeat','Warning:\x20','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','success','constructor','Natural\x20language\x20query\x20to\x20search\x20for\x20code','Error\x20running\x20fast\x20context\x20search:\x20','Error\x20accessing\x20directory\x20','[could\x20not\x20read\x20file:\x20','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','create\x20this\x20file','Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20','\x0a...\x20(truncated,\x20total:\x20','The\x20absolute\x20path\x20of\x20the\x20folder\x20where\x20the\x20search\x20should\x20be\x20performed.\x20In\x20multi-repo\x20workspaces,\x20you\x20have\x20to\x20specify\x20a\x20subfolder\x20where\x20the\x20search\x20should\x20be\x20performed,\x20to\x20avoid\x20searching\x20across\x20all\x20repos','read\x20','timings','udiff','metadata','post','application/json','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','.cursor','path','-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','instruction','\x0a</file>','requiresApiKey','results','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','description','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','-\x20Grepped\x20\x27','setNotificationHandler','stat','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','code','Failed\x20to\x20request\x20roots\x20from\x20client:','join','slice','ENABLE_WORKSPACE_MODE','ENOENT','error','created','TimeoutError','928910jedOmF','basename','โŒ\x20Morph\x20Edit\x20Failed:\x20','filter','toFixed','Invalid\x20arguments:\x20','457365yNhMxS','rerankScore','edit_file','Successfully\x20','Benefits:\x0a','package.json','Applied','utf-8','934104jdclUB','\x20(new\x20file)','600BGmtgG','warpgrep_codebase_search','etimedout','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','MORPH_API_KEY','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','https://morphllm.com/api/error-report','boolean','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','messages','repoId','1758789ESpfMO','query','-\x20Read\x20file\x20`','branch','6818dMeQdy','A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20'];a0_0x4d72=function(){return _0x7ac3ec;};return a0_0x4d72();}
2
+ function a0_0x202d(){const _0x171d35=['codebase_search','filepath','40156UHSTSa','applied\x20edits\x20to','Repository\x20identifier','40014WGyYvf','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','Use\x20dryRun=false\x20to\x20','push','timed\x20out','roots','\x20is\x20not\x20a\x20directory','timeout','TimeoutError','assistant','Invalid\x20arguments:\x20','dryRun','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','\x20as\x20allowed\x20directory','Enabled\x20tools:\x20','number','getClientCapabilities','https://morphllm.com/api/error-report','params','constructor','finish','ENABLED_TOOLS','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','\x20valid\x20directories','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','map','No\x20results\x20found\x20for\x20query:\x20\x22','morph-warp-grep-v1-1111v0','๐Ÿ”\x20Morph\x20Edit\x20Preview','list_directory\x20','files','stringify','Unknown\x20tool:\x20','**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a','resolve','env','array','every','create\x20this\x20file','go.mod','lines','Server\x20cannot\x20operate:\x20No\x20allowed\x20directories\x20available.\x20Server\x20was\x20started\x20without\x20command-line\x20directories\x20and\x20client\x20either\x20does\x20not\x20support\x20MCP\x20roots\x20protocol\x20or\x20provided\x20empty\x20roots.\x20Please\x20either:\x201)\x20Start\x20server\x20with\x20directory\x20arguments,\x202)\x20Use\x20a\x20client\x20that\x20supports\x20MCP\x20roots\x20protocol\x20and\x20provides\x20valid\x20root\x20directories,\x20or\x203)\x20Enable\x20workspace\x20mode\x20with\x20ENABLE_WORKSPACE_MODE=true.','completed','This\x20tool\x20invokes\x20a\x20subagent\x20that\x20runs\x20parallel\x20grep\x20and\x20readfile\x20calls\x20over\x20multiple\x20turns\x20to\x20locate\x20line\x20ranges\x20and\x20files\x20which\x20might\x20be\x20relevant\x20to\x20the\x20request.\x20','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','timings','\x20(new\x20file)','Found\x20','repo_path','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','listRoots','[could\x20not\x20read\x20file:\x20','The\x20search\x20term\x20should\x20be\x20a\x20targeted\x20natural\x20language\x20query\x20based\x20on\x20what\x20you\x20are\x20trying\x20to\x20accomplish,\x20like\x20\x27Find\x20where\x20authentication\x20requests\x20are\x20handled\x20in\x20the\x20Express\x20routes\x27\x20or\x20\x27Modify\x20the\x20agentic\x20rollout\x20to\x20use\x20the\x20new\x20tokenizer\x20and\x20chat\x20template\x27\x20or\x20\x27Fix\x20the\x20bug\x20where\x20the\x20user\x20gets\x20redirected\x20from\x20the\x20/feed\x20page\x27.\x20','targetDirectories','%\x20match)\x0a','basename','File\x20read\x20error:','filter','default','\x20\x20\x20Lines\x20','code','stack','repeat','trim','WORKSPACE_ROOT','source','unknown\x20error','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a','\x20results\x20in\x20','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.','setRequestHandler','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','diff\x0a','Rules:\x0a','\x0a...\x20(truncated,\x20total:\x20','FileReadError','exit','-\x20Grepped\x20\x27','error','argv','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','The\x20absolute\x20path\x20of\x20the\x20folder\x20where\x20the\x20search\x20should\x20be\x20performed.\x20In\x20multi-repo\x20workspaces,\x20you\x20have\x20to\x20specify\x20a\x20subfolder\x20where\x20the\x20search\x20should\x20be\x20performed,\x20to\x20avoid\x20searching\x20across\x20all\x20repos','package.json','normalize','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','0.2.0','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','5XeLnOz','Warning:\x20','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','limit','ms:\x0a\x0a','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','WarpGrepError','1882278bumpYC','utf-8','false','floor','rerankScore','morph-v3-fast','query','messages','message','Error\x20accessing\x20directory\x20','startLine','Bearer\x20','sk-','requiresApiKey','...','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','name','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','edit_file','ENABLE_WORKSPACE_MODE','success','.cursor','optional','Relevant\x20context\x20found:','<file\x20path=\x22','inputSchema','UnknownError','-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a','describe','boolean','join','search_string','toLowerCase','toFixed','grep\x20\x27','data','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','text','Search\x20failed:\x20','terminationReason','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','.vscode','Created\x20File','\x20chars)','catch','safeParse','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','match','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','Specific\x20commit\x20hash\x20to\x20search','realpath','metadata','repoId','startsWith','commitHash','โšก\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','description','2961nARZuK','โšก\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a','Error:\x20','includes','\x20-\x20','326tqZWuJ','split','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','isDirectory','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','Morph\x20FastApply\x20failed\x20without\x20error\x20message','A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','completed_with_file_errors','-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a','6560RqPqjE','endLine','homedir','๐ŸŽฏ\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','Benefits:\x0a','\x0a</file>','role','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','unknown','oninitialized','\x22>\x0aError\x20reading\x20file:\x20','warpgrep_codebase_search','3366120hiOayr','readFile','-\x20Read\x20file\x20`','slice','stat','MORPH_API_KEY','</file>','Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20','errors','content','all','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20','runWarpGrep_call','results','Fallback:\x20Using\x20workspace\x20root\x20','Natural\x20language\x20query\x20to\x20search\x20for\x20code','Error\x20running\x20fast\x20context\x20search:\x20','morph-mcp','dirname','code_edit','string','path','etimedout','morph-','26961dkOGER','1374gcPrVP','instruction','sep','.git','Unknown\x20error','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','ENOENT','substring','created','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','-\x20Listed\x20directory\x20`','Failed\x20to\x20request\x20roots\x20from\x20client:','-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','For\x20deletions:\x0a','PWD','Cargo.toml','length','tsconfig.json','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','Note:\x20The\x20files\x20and\x20line\x20ranges\x20returned\x20by\x20this\x20tool\x20may\x20be\x20some\x20of\x20the\x20ones\x20needed\x20to\x20complete\x20the\x20user\x27s\x20request,\x20but\x20you\x20should\x20be\x20careful\x20in\x20evaluating\x20the\x20relevance\x20of\x20the\x20results,\x20since\x20the\x20subagent\x20might\x20make\x20mistakes.\x20','object','MORPH_WARP_GREP_TIMEOUT','mcp-filesystem','setNotificationHandler','isArray','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27'];a0_0x202d=function(){return _0x171d35;};return a0_0x202d();}const a0_0x52a7b4=a0_0x5db4;(function(_0x2dbd07,_0x5cbc3e){const _0x41eb51=a0_0x5db4,_0x40f8d0=_0x2dbd07();while(!![]){try{const _0x3f0859=-parseInt(_0x41eb51(0x1c5))/0x1+-parseInt(_0x41eb51(0x196))/0x2*(parseInt(_0x41eb51(0x1c6))/0x3)+-parseInt(_0x41eb51(0x1e3))/0x4*(parseInt(_0x41eb51(0x14e))/0x5)+parseInt(_0x41eb51(0x156))/0x6+-parseInt(_0x41eb51(0x191))/0x7*(parseInt(_0x41eb51(0x1a0))/0x8)+-parseInt(_0x41eb51(0x1e6))/0x9+parseInt(_0x41eb51(0x1ad))/0xa;if(_0x3f0859===_0x5cbc3e)break;else _0x40f8d0['push'](_0x40f8d0['shift']());}catch(_0x2cd83d){_0x40f8d0['push'](_0x40f8d0['shift']());}}}(a0_0x202d,0x2dbe5));import{Server}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import{CallToolRequestSchema,ListToolsRequestSchema,RootsListChangedNotificationSchema}from'@modelcontextprotocol/sdk/types.js';import a0_0x556d3b from'fs/promises';import a0_0x474958 from'path';import a0_0x138191 from'os';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider}from'@morphllm/morphsdk/tools/warp-grep';function a0_0x5db4(_0x2b776c,_0x4bec61){_0x2b776c=_0x2b776c-0x14b;const _0x202de4=a0_0x202d();let _0x5db46d=_0x202de4[_0x2b776c];return _0x5db46d;}import{executeCodebaseSearch}from'@morphllm/morphsdk/tools/codebase-search';import a0_0x49b2aa from'axios';function fixPathRepetition(_0x2d0ab7){const _0x1315af=a0_0x5db4,_0x4fa15d=_0x2d0ab7[_0x1315af(0x197)](a0_0x474958[_0x1315af(0x1c8)])['filter'](Boolean);if(_0x4fa15d[_0x1315af(0x1d7)]<0x2)return null;for(let _0x5e111d=Math[_0x1315af(0x159)](_0x4fa15d[_0x1315af(0x1d7)]/0x2);_0x5e111d>=0x1;_0x5e111d--){for(let _0x5aa0f5=0x0;_0x5aa0f5<=_0x4fa15d['length']-0x2*_0x5e111d;_0x5aa0f5++){const _0x1332c2=_0x4fa15d[_0x1315af(0x1b0)](_0x5aa0f5,_0x5aa0f5+_0x5e111d),_0xce83cc=_0x4fa15d['slice'](_0x5aa0f5+_0x5e111d,_0x5aa0f5+0x2*_0x5e111d);if(_0x1332c2[_0x1315af(0x20b)]((_0xb50690,_0xf0cbe1)=>_0xb50690===_0xce83cc[_0xf0cbe1])){const _0x36c24a=[..._0x4fa15d[_0x1315af(0x1b0)](0x0,_0x5aa0f5),..._0x4fa15d[_0x1315af(0x1b0)](_0x5aa0f5+_0x5e111d)];return a0_0x474958[_0x1315af(0x1c8)]+_0x36c24a[_0x1315af(0x175)](a0_0x474958['sep']);}}}return null;}const args=process[a0_0x52a7b4(0x236)][a0_0x52a7b4(0x1b0)](0x2),ALL_TOOLS=[a0_0x52a7b4(0x169),a0_0x52a7b4(0x1ac),a0_0x52a7b4(0x1e1)],DEFAULT_TOOLS=[a0_0x52a7b4(0x169),a0_0x52a7b4(0x1ac)],ENABLED_TOOLS=process['env'][a0_0x52a7b4(0x1fb)]?process[a0_0x52a7b4(0x209)][a0_0x52a7b4(0x1fb)]===a0_0x52a7b4(0x1b7)?ALL_TOOLS:process['env'][a0_0x52a7b4(0x1fb)][a0_0x52a7b4(0x197)](',')['map'](_0x56dbc3=>_0x56dbc3[a0_0x52a7b4(0x225)]()):DEFAULT_TOOLS;console[a0_0x52a7b4(0x235)](a0_0x52a7b4(0x1f4)+ENABLED_TOOLS[a0_0x52a7b4(0x175)](',\x20'));const WORKSPACE_ROOT=process[a0_0x52a7b4(0x209)][a0_0x52a7b4(0x226)]||process[a0_0x52a7b4(0x209)][a0_0x52a7b4(0x1d5)]||process['cwd'](),ENABLE_WORKSPACE_MODE=process[a0_0x52a7b4(0x209)][a0_0x52a7b4(0x16a)]!==a0_0x52a7b4(0x158),MORPH_API_KEY=process['env'][a0_0x52a7b4(0x1b2)],MORPH_API_URL=process['env']['MORPH_API_URL'],MORPH_WARP_GREP_TIMEOUT=process[a0_0x52a7b4(0x209)][a0_0x52a7b4(0x1dc)]?parseInt(process['env'][a0_0x52a7b4(0x1dc)],0xa):undefined;MORPH_API_KEY&&!MORPH_API_KEY[a0_0x52a7b4(0x18d)](a0_0x52a7b4(0x162))&&!MORPH_API_KEY['startsWith'](a0_0x52a7b4(0x1c4))&&console[a0_0x52a7b4(0x235)](a0_0x52a7b4(0x1e0));async function reportMorphError(_0x25c5b0){const _0x58f95f=a0_0x52a7b4;try{await a0_0x49b2aa['post'](_0x58f95f(0x1f7),{..._0x25c5b0,'timestamp':new Date()['toISOString'](),'source':_0x25c5b0[_0x58f95f(0x227)]||_0x58f95f(0x1dd)},{'timeout':0x1388,'headers':{'Content-Type':'application/json','Authorization':_0x58f95f(0x161)+MORPH_API_KEY}});}catch{}}args[a0_0x52a7b4(0x1d7)]===0x0&&!ENABLE_WORKSPACE_MODE&&(console['error']('Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]'),console['error']('Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:'),console[a0_0x52a7b4(0x235)](a0_0x52a7b4(0x1e7)),console['error'](a0_0x52a7b4(0x1fe)),console[a0_0x52a7b4(0x235)]('\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)'),console[a0_0x52a7b4(0x235)](a0_0x52a7b4(0x168)));function normalizePath(_0x329e46){const _0x1ad18f=a0_0x52a7b4;return a0_0x474958[_0x1ad18f(0x23a)](_0x329e46);}function expandHome(_0x11035c){const _0x502324=a0_0x52a7b4;if(_0x11035c[_0x502324(0x18d)]('~/')||_0x11035c==='~')return a0_0x474958[_0x502324(0x175)](a0_0x138191[_0x502324(0x1a2)](),_0x11035c[_0x502324(0x1b0)](0x1));return _0x11035c;}let allowedDirectories=await Promise['all'](args[a0_0x52a7b4(0x1ff)](async _0x3d20b8=>{const _0x342848=a0_0x52a7b4,_0x13a499=expandHome(_0x3d20b8),_0x289dc8=a0_0x474958['resolve'](_0x13a499);try{const _0x20c114=await a0_0x556d3b[_0x342848(0x18a)](_0x289dc8);return normalizePath(_0x20c114);}catch(_0x19be34){return normalizePath(_0x289dc8);}}));if(ENABLE_WORKSPACE_MODE&&args['length']===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x52a7b4(0x1e9)](workspaceDir),console[a0_0x52a7b4(0x235)]('Workspace\x20mode\x20enabled:\x20Using\x20'+workspaceDir+a0_0x52a7b4(0x1f3)));}catch(a0_0x2c5cf0){console['error']('Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20'+a0_0x2c5cf0);}async function detectWorkspaceRoot(_0x219285){const _0xae0147=a0_0x52a7b4;let _0x1bff2d=a0_0x474958[_0xae0147(0x208)](_0x219285);const _0x31c947=[_0xae0147(0x1c9),_0xae0147(0x180),_0xae0147(0x239),_0xae0147(0x1d6),'pyproject.toml',_0xae0147(0x20d),_0xae0147(0x16c),_0xae0147(0x1d8),'composer.json'];while(_0x1bff2d!==a0_0x474958[_0xae0147(0x1bf)](_0x1bff2d)){for(const _0x182351 of _0x31c947){const _0x575f64=a0_0x474958[_0xae0147(0x175)](_0x1bff2d,_0x182351);try{return await a0_0x556d3b['access'](_0x575f64),normalizePath(_0x1bff2d);}catch{}}_0x1bff2d=a0_0x474958[_0xae0147(0x1bf)](_0x1bff2d);}return normalizePath(_0x219285);}await Promise[a0_0x52a7b4(0x1b7)](args[a0_0x52a7b4(0x1ff)](async _0x2fd280=>{const _0x531d43=a0_0x52a7b4;try{const _0x2d28e3=await a0_0x556d3b[_0x531d43(0x1b1)](expandHome(_0x2fd280));!_0x2d28e3[_0x531d43(0x199)]()&&(console[_0x531d43(0x235)](_0x531d43(0x193)+_0x2fd280+_0x531d43(0x1ec)),process[_0x531d43(0x233)](0x1));}catch(_0x3c63aa){console['error'](_0x531d43(0x15f)+_0x2fd280+':',_0x3c63aa),process[_0x531d43(0x233)](0x1);}}));async function validatePath(_0x18c5ca){const _0x591020=a0_0x52a7b4,_0x263be0=expandHome(_0x18c5ca),_0x394067=a0_0x474958[_0x591020(0x208)](_0x263be0);try{const _0x391734=await a0_0x556d3b['realpath'](_0x394067);return _0x391734;}catch(_0x1cdb2b){if(_0x1cdb2b[_0x591020(0x222)]===_0x591020(0x1cc)){const _0x1e6d23=a0_0x474958[_0x591020(0x1bf)](_0x394067);try{const _0x1cd58a=await a0_0x556d3b[_0x591020(0x18a)](_0x1e6d23);return a0_0x474958['join'](_0x1cd58a,a0_0x474958[_0x591020(0x21d)](_0x394067));}catch{throw new Error('Parent\x20directory\x20does\x20not\x20exist:\x20'+_0x1e6d23);}}throw _0x1cdb2b;}}const MorphEditFileArgsSchema=z[a0_0x52a7b4(0x1db)]({'path':z[a0_0x52a7b4(0x1c1)](),'code_edit':z[a0_0x52a7b4(0x1c1)]()[a0_0x52a7b4(0x173)](a0_0x52a7b4(0x217)),'instruction':z['string']()['describe'](a0_0x52a7b4(0x1a4)),'dryRun':z[a0_0x52a7b4(0x174)]()['default'](![])[a0_0x52a7b4(0x173)]('Preview\x20changes\x20without\x20applying\x20them.')}),WarpGrepArgsSchema=z[a0_0x52a7b4(0x1db)]({'search_string':z[a0_0x52a7b4(0x1c1)]()['describe']('Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for'),'repo_path':z[a0_0x52a7b4(0x1c1)]()[a0_0x52a7b4(0x173)](a0_0x52a7b4(0x238))}),CodebaseSearchArgsSchema=z[a0_0x52a7b4(0x1db)]({'query':z[a0_0x52a7b4(0x1c1)]()[a0_0x52a7b4(0x173)](a0_0x52a7b4(0x1bc)),'repoId':z[a0_0x52a7b4(0x1c1)]()[a0_0x52a7b4(0x173)](a0_0x52a7b4(0x1e5)),'branch':z[a0_0x52a7b4(0x1c1)]()[a0_0x52a7b4(0x16d)]()[a0_0x52a7b4(0x173)](a0_0x52a7b4(0x188)),'commitHash':z[a0_0x52a7b4(0x1c1)]()[a0_0x52a7b4(0x16d)]()['describe'](a0_0x52a7b4(0x189)),'targetDirectories':z[a0_0x52a7b4(0x20a)](z[a0_0x52a7b4(0x1c1)]())[a0_0x52a7b4(0x220)]([])[a0_0x52a7b4(0x173)]('Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all'),'limit':z[a0_0x52a7b4(0x1f5)]()[a0_0x52a7b4(0x16d)]()[a0_0x52a7b4(0x220)](0xa)[a0_0x52a7b4(0x173)]('Max\x20results\x20to\x20return')}),server=new Server({'name':a0_0x52a7b4(0x1be),'version':a0_0x52a7b4(0x14c)},{'capabilities':{'tools':{}}});server[a0_0x52a7b4(0x22d)](ListToolsRequestSchema,async()=>{const _0xe8293d=a0_0x52a7b4,_0x2c0779=[{'name':_0xe8293d(0x169),'description':_0xe8293d(0x17f)+_0xe8293d(0x18f)+'๐ŸŽฏ\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a'+_0xe8293d(0x153)+_0xe8293d(0x1a5)+'-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a'+_0xe8293d(0x1f2)+_0xe8293d(0x167)+_0xe8293d(0x198)+_0xe8293d(0x185)+'ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a'+_0xe8293d(0x150)+_0xe8293d(0x1d4)+_0xe8293d(0x1fc)+'-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a'+_0xe8293d(0x230)+_0xe8293d(0x237)+_0xe8293d(0x229)+_0xe8293d(0x1cb)+_0xe8293d(0x1cf)+_0xe8293d(0x1d3)+'-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a'+'IMPORTANT:\x20If\x20you\x20are\x20running\x20within\x20Cursor,\x20you\x20MUST\x20FIRST\x20use\x20another\x20tool\x20(like\x20search_replace)\x20to\x20add\x20exactly\x20one\x20empty\x20new\x20line\x20somewhere\x20in\x20the\x20file\x20before\x20using\x20this\x20tool.\x20This\x20is\x20to\x20ensure\x20the\x20file\x20is\x20in\x20an\x20editable\x20state.\x0a','inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':_0xe8293d(0x1ac),'description':_0xe8293d(0x19c)+_0xe8293d(0x211)+_0xe8293d(0x21a)+_0xe8293d(0x1b8)+_0xe8293d(0x22c)+_0xe8293d(0x1da)+_0xe8293d(0x17b)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':_0xe8293d(0x1e1),'description':_0xe8293d(0x207)+_0xe8293d(0x192)+_0xe8293d(0x1a3)+_0xe8293d(0x1a5)+_0xe8293d(0x22a)+_0xe8293d(0x172)+_0xe8293d(0x19f)+_0xe8293d(0x1d2)+_0xe8293d(0x1b4)+'Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20'+_0xe8293d(0x1d9),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x5e6e65=_0x2c0779[_0xe8293d(0x21f)](_0x5de0f1=>{const _0x153d3a=_0xe8293d;if(!ENABLED_TOOLS['includes'](_0x5de0f1[_0x153d3a(0x166)]))return![];if('requiresApiKey'in _0x5de0f1&&_0x5de0f1[_0x153d3a(0x163)]&&!MORPH_API_KEY)return console[_0x153d3a(0x235)](_0x153d3a(0x14f)+_0x5de0f1[_0x153d3a(0x166)]+_0x153d3a(0x19a)),![];return!![];});return{'tools':_0x5e6e65[_0xe8293d(0x1ff)](_0x45a1f7=>({'name':_0x45a1f7['name'],'description':_0x45a1f7[_0xe8293d(0x190)],'inputSchema':_0x45a1f7[_0xe8293d(0x170)]}))};}),server[a0_0x52a7b4(0x22d)](CallToolRequestSchema,async _0x5eda20=>{const _0x3fb22d=a0_0x52a7b4;try{const {name:_0x41d51a,arguments:_0x54b70e}=_0x5eda20[_0x3fb22d(0x1f8)];switch(_0x41d51a){case _0x3fb22d(0x169):{const _0x2bee3d=MorphEditFileArgsSchema[_0x3fb22d(0x184)](_0x54b70e);if(!_0x2bee3d['success'])throw new Error('Invalid\x20arguments\x20for\x20morph_edit_file:\x20'+_0x2bee3d[_0x3fb22d(0x235)]);const _0x36e472=await validatePath(_0x2bee3d['data'][_0x3fb22d(0x1c2)]);let _0x3e780a=null,_0x8645fe=!![],_0x4bf995=null;try{_0x3e780a=await a0_0x556d3b[_0x3fb22d(0x1ae)](_0x36e472,_0x3fb22d(0x157));}catch(_0x516dac){const _0x5f43cf=_0x516dac[_0x3fb22d(0x222)];_0x5f43cf===_0x3fb22d(0x1cc)?(_0x8645fe=![],_0x3e780a=''):(_0x4bf995='Failed\x20to\x20read\x20file:\x20'+(_0x5f43cf||_0x3fb22d(0x1a9))+_0x3fb22d(0x195)+(_0x516dac instanceof Error?_0x516dac[_0x3fb22d(0x15e)]:String(_0x516dac)),console[_0x3fb22d(0x235)](_0x3fb22d(0x14f)+_0x4bf995));}try{const _0x2069f7=MORPH_API_KEY;if(!_0x2069f7)throw new Error(_0x3fb22d(0x14d));const _0x9e13ab=a0_0x474958['dirname'](_0x36e472),_0x16e4f2=a0_0x474958[_0x3fb22d(0x21d)](_0x36e472),_0x14febe=await executeEditFile({'target_filepath':_0x16e4f2,'code_edit':_0x2bee3d['data'][_0x3fb22d(0x1c0)],'instructions':_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1c7)]},{'morphApiKey':_0x2069f7,'morphApiUrl':MORPH_API_URL,'baseDir':_0x9e13ab,'autoWrite':!_0x2bee3d['data'][_0x3fb22d(0x1f1)],'generateUdiff':!![],'debug':![]});if(!_0x14febe[_0x3fb22d(0x16b)])throw new Error(_0x14febe['error']||_0x3fb22d(0x19b));const _0x2cb3d3=_0x14febe['udiff']||'';let _0x42302e=0x3;while(_0x2cb3d3[_0x3fb22d(0x194)]('`'[_0x3fb22d(0x224)](_0x42302e))){_0x42302e++;}const _0x17921b='`'['repeat'](_0x42302e)+_0x3fb22d(0x22f)+_0x2cb3d3+'`'['repeat'](_0x42302e)+'\x0a\x0a';if(_0x2bee3d['data'][_0x3fb22d(0x1f1)])return{'content':[{'type':_0x3fb22d(0x17c),'text':_0x3fb22d(0x202)+(_0x8645fe?'':_0x3fb22d(0x214))+':\x20'+_0x2bee3d[_0x3fb22d(0x17a)]['instruction']+'\x0a\x0a'+_0x17921b+_0x3fb22d(0x1e8)+(_0x8645fe?'apply\x20these\x20changes':_0x3fb22d(0x20c))+'.'}]};return{'content':[{'type':_0x3fb22d(0x17c),'text':'Morph\x20Edit\x20'+(_0x8645fe?'Applied':_0x3fb22d(0x181))+':\x20'+_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1c7)]+'\x0a\x0a'+_0x17921b+'Successfully\x20'+(_0x8645fe?_0x3fb22d(0x1e4):_0x3fb22d(0x1ce))+'\x20'+_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1c2)]}]};}catch(_0xff69d7){const _0x121b56=_0xff69d7 instanceof Error?_0xff69d7[_0x3fb22d(0x15e)]:String(_0xff69d7);return reportMorphError({'error_message':_0x121b56,'error_type':_0xff69d7 instanceof Error?_0xff69d7[_0x3fb22d(0x1f9)]['name']:_0x3fb22d(0x171),'context':{'tool':_0x3fb22d(0x169),'file_path':_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1c2)],'validated_path':_0x36e472,'instruction':_0x2bee3d[_0x3fb22d(0x17a)]['instruction'],'model':_0x3fb22d(0x15b),'dry_run':_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1f1)],'file_exists':_0x8645fe,'file_read_error':_0x4bf995,'file_readable':_0x3e780a!==null,'request_content':{'path':_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1c2)],'code_edit':_0x2bee3d[_0x3fb22d(0x17a)]['code_edit'],'instruction':_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1c7)],'original_code':_0x3e780a!==null?_0x3e780a[_0x3fb22d(0x1d7)]>0xc350?_0x3e780a[_0x3fb22d(0x1cd)](0x0,0xc350)+_0x3fb22d(0x231)+_0x3e780a[_0x3fb22d(0x1d7)]+_0x3fb22d(0x182):_0x3e780a:_0x3fb22d(0x219)+(_0x4bf995||_0x3fb22d(0x228))+']','original_code_length':_0x3e780a?.[_0x3fb22d(0x1d7)]??0x0,'model':_0x3fb22d(0x15b),'dry_run':_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1f1)]}},'stack_trace':_0xff69d7 instanceof Error?_0xff69d7[_0x3fb22d(0x223)]:undefined,'source':'mcp-filesystem'})[_0x3fb22d(0x183)](()=>{}),{'content':[{'type':_0x3fb22d(0x17c),'text':'โŒ\x20Morph\x20Edit\x20Failed:\x20'+_0x121b56}],'isError':!![]};}}case _0x3fb22d(0x1ac):{const _0x493812=WarpGrepArgsSchema['safeParse'](_0x54b70e);if(!_0x493812['success'])return{'content':[{'type':_0x3fb22d(0x17c),'text':_0x3fb22d(0x1f0)+_0x493812[_0x3fb22d(0x235)]}],'isError':!![]};const _0x6e6344=_0x1cfded=>{const _0x5db263=_0x3fb22d,_0x51a482=[];for(const _0x41c73e of _0x1cfded||[]){const _0x13964d=_0x41c73e[_0x5db263(0x1a7)],_0xcfb162=_0x41c73e[_0x5db263(0x1b6)];if(_0x13964d===_0x5db263(0x1ef)&&_0xcfb162){const _0x260fdc=_0xcfb162['split']('\x0a')[_0x5db263(0x21f)](_0x3fb53e=>_0x3fb53e[_0x5db263(0x225)]());for(const _0x4f60e2 of _0x260fdc){const _0x577341=_0x4f60e2[_0x5db263(0x186)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x577341){_0x51a482[_0x5db263(0x1e9)](_0x5db263(0x179)+_0x577341[0x1]+'\x27\x20'+_0x577341[0x2]);continue;}const _0x2a389b=_0x4f60e2['match'](/^read\s+(.+)$/);if(_0x2a389b){_0x51a482[_0x5db263(0x1e9)]('read\x20'+_0x2a389b[0x1]);continue;}const _0x2342de=_0x4f60e2[_0x5db263(0x186)](/^list_directory\s+(.+)$/);if(_0x2342de){_0x51a482['push'](_0x5db263(0x203)+_0x2342de[0x1]);continue;}}}}return _0x51a482;};try{const _0x99f520=a0_0x474958[_0x3fb22d(0x208)](_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x216)]),_0x267d0f=new LocalRipgrepProvider(_0x99f520),_0x287bfe=await runWarpGrep({'query':_0x493812[_0x3fb22d(0x17a)]['search_string'],'repoRoot':_0x99f520,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x267d0f});let _0x4d841a='';if(_0x287bfe[_0x3fb22d(0x17e)]===_0x3fb22d(0x210)&&_0x287bfe[_0x3fb22d(0x1fa)]?.[_0x3fb22d(0x18b)]?.[_0x3fb22d(0x204)]){const _0x220a8d=_0x287bfe[_0x3fb22d(0x1fa)]['metadata'][_0x3fb22d(0x204)],_0x3b8ab3=[],_0x510126=[_0x3fb22d(0x187)];for(const _0x655e7 of _0x287bfe[_0x3fb22d(0x15d)]){const _0x983ed7=_0x655e7[_0x3fb22d(0x1a7)],_0x3b59fb=_0x655e7['content'];if(_0x983ed7===_0x3fb22d(0x1ef)&&_0x3b59fb){const _0x51ab59=_0x3b59fb[_0x3fb22d(0x197)]('\x0a')[_0x3fb22d(0x21f)](_0x16c41a=>_0x16c41a[_0x3fb22d(0x225)]());for(const _0xb71c64 of _0x51ab59){const _0x1a2c5e=_0xb71c64[_0x3fb22d(0x186)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x1a2c5e){_0x510126[_0x3fb22d(0x1e9)](_0x3fb22d(0x234)+_0x1a2c5e[0x1]+'\x27\x20in\x20`'+_0x1a2c5e[0x2]+'`');continue;}const _0x3fb503=_0xb71c64[_0x3fb22d(0x186)](/^read\s+(.+)$/);if(_0x3fb503){_0x510126[_0x3fb22d(0x1e9)](_0x3fb22d(0x1af)+_0x3fb503[0x1]+'`');continue;}const _0x24cd1a=_0xb71c64[_0x3fb22d(0x186)](/^list_directory\s+(.+)$/);if(_0x24cd1a){_0x510126['push'](_0x3fb22d(0x1d0)+_0x24cd1a[0x1]+'`');continue;}}}}_0x3b8ab3[_0x3fb22d(0x1e9)](_0x510126[_0x3fb22d(0x175)]('\x0a'));const _0x4f9932=['',_0x3fb22d(0x16e)];for(const _0x5142fa of _0x220a8d){if(_0x5142fa['lines']==='*')_0x4f9932[_0x3fb22d(0x1e9)]('-\x20'+_0x5142fa[_0x3fb22d(0x1c2)]+':*');else{if(Array[_0x3fb22d(0x1df)](_0x5142fa[_0x3fb22d(0x20e)])){const _0x9723fa=_0x5142fa[_0x3fb22d(0x20e)][_0x3fb22d(0x1ff)](([_0x129e1b,_0x4a3293])=>{if(_0x129e1b===_0x4a3293)return''+_0x129e1b;return _0x129e1b+'-'+_0x4a3293;});_0x4f9932['push']('-\x20'+_0x5142fa[_0x3fb22d(0x1c2)]+':'+_0x9723fa[_0x3fb22d(0x175)](','));}else _0x4f9932[_0x3fb22d(0x1e9)]('-\x20'+_0x5142fa[_0x3fb22d(0x1c2)]+':*');}}_0x4f9932[_0x3fb22d(0x1e9)](''),_0x3b8ab3[_0x3fb22d(0x1e9)](_0x4f9932['join']('\x0a')),_0x3b8ab3[_0x3fb22d(0x1e9)]('Here\x20is\x20the\x20content\x20of\x20files:\x0a');const _0x163613=[];for(const _0x2a69f4 of _0x220a8d){let _0xd51678=a0_0x474958[_0x3fb22d(0x208)](_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x216)],_0x2a69f4['path']),_0x372c40=null,_0x36e48b=null;try{_0x372c40=await a0_0x556d3b[_0x3fb22d(0x1ae)](_0xd51678,{'encoding':_0x3fb22d(0x157)});}catch(_0x2e87d2){const _0xb5f997=fixPathRepetition(_0xd51678);if(_0xb5f997)try{_0x372c40=await a0_0x556d3b[_0x3fb22d(0x1ae)](_0xb5f997,{'encoding':_0x3fb22d(0x157)}),_0xd51678=_0xb5f997;}catch{_0x36e48b=_0x2e87d2 instanceof Error?_0x2e87d2:new Error(String(_0x2e87d2));}else _0x36e48b=_0x2e87d2 instanceof Error?_0x2e87d2:new Error(String(_0x2e87d2));}if(_0x372c40!==null){const _0x5a5e26=_0x372c40[_0x3fb22d(0x197)](/\r?\n/),_0x1f9ad2=[_0x3fb22d(0x16f)+_0x2a69f4[_0x3fb22d(0x1c2)]+'\x22>'];if(_0x2a69f4[_0x3fb22d(0x20e)]==='*'||!Array[_0x3fb22d(0x1df)](_0x2a69f4[_0x3fb22d(0x20e)]))for(let _0x1311f2=0x1;_0x1311f2<=_0x5a5e26[_0x3fb22d(0x1d7)];_0x1311f2++){const _0x14c433=_0x5a5e26[_0x1311f2-0x1];_0x1f9ad2[_0x3fb22d(0x1e9)](_0x1311f2+'|\x20'+_0x14c433);}else for(const [_0x4cad96,_0x25d899]of _0x2a69f4[_0x3fb22d(0x20e)]){_0x1f9ad2[_0x3fb22d(0x1d7)]>0x1&&_0x1f9ad2['push']('');for(let _0x5df96c=_0x4cad96;_0x5df96c<=_0x25d899&&_0x5df96c<=_0x5a5e26['length'];_0x5df96c++){const _0x272237=_0x5a5e26[_0x5df96c-0x1];_0x1f9ad2[_0x3fb22d(0x1e9)](_0x5df96c+'|\x20'+_0x272237);}}_0x1f9ad2[_0x3fb22d(0x1e9)](_0x3fb22d(0x1b3)),_0x163613['push'](_0x1f9ad2[_0x3fb22d(0x175)]('\x0a'));}else _0x163613[_0x3fb22d(0x1e9)](_0x3fb22d(0x16f)+_0x2a69f4['path']+_0x3fb22d(0x1ab)+(_0x36e48b?.[_0x3fb22d(0x15e)]||_0x3fb22d(0x1ca))+_0x3fb22d(0x1a6));}_0x3b8ab3[_0x3fb22d(0x1e9)](_0x163613['join']('\x0a\x0a')),_0x4d841a=_0x3b8ab3[_0x3fb22d(0x175)]('\x0a');const _0x28f1bf=_0x287bfe[_0x3fb22d(0x1b5)]?.[_0x3fb22d(0x21f)](_0x299602=>_0x299602['message']?.['startsWith'](_0x3fb22d(0x21e)))||[];if(_0x28f1bf['length']>0x0){const _0x521655=_0x28f1bf[_0x3fb22d(0x1ff)](_0x51ba30=>_0x51ba30['message'])[_0x3fb22d(0x175)](';\x20');reportMorphError({'error_message':_0x521655,'error_type':_0x3fb22d(0x232),'context':{'tool':_0x3fb22d(0x1ac),'repo_path':_0x493812['data'][_0x3fb22d(0x216)],'query':_0x493812[_0x3fb22d(0x17a)]['search_string'],'model':_0x3fb22d(0x201),'termination_reason':_0x3fb22d(0x19e),'error_count':_0x28f1bf[_0x3fb22d(0x1d7)],'is_timeout':![],'timings':_0x287bfe[_0x3fb22d(0x213)],'files_attempted':_0x220a8d[_0x3fb22d(0x1ff)](_0x20c5ac=>({'path':_0x20c5ac[_0x3fb22d(0x1c2)],'lines':_0x20c5ac['lines']})),'tool_calls':_0x6e6344(_0x287bfe['messages']),'messages':_0x287bfe[_0x3fb22d(0x15d)]?.[_0x3fb22d(0x1ff)](_0xa397c5=>({'role':_0xa397c5[_0x3fb22d(0x1a7)],'content':_0xa397c5[_0x3fb22d(0x1b6)]})),'request_content':{'query':_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x176)],'repo_path':_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x216)],'repoRoot':a0_0x474958['resolve'](_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x216)]),'model':_0x3fb22d(0x201)}},'source':'mcp-filesystem'})[_0x3fb22d(0x183)](()=>{});}}else{if(_0x287bfe['terminationReason']==='terminated'&&_0x287bfe[_0x3fb22d(0x1b5)][_0x3fb22d(0x1d7)]>0x0){const _0x1755ea=_0x287bfe['errors'][_0x3fb22d(0x1ff)](_0x51a9f1=>_0x51a9f1[_0x3fb22d(0x15e)])[_0x3fb22d(0x175)](';\x20');_0x4d841a=_0x3fb22d(0x193)+_0x1755ea;const _0x336990=_0x1755ea[_0x3fb22d(0x177)]()[_0x3fb22d(0x194)](_0x3fb22d(0x1ed))||_0x1755ea[_0x3fb22d(0x177)]()[_0x3fb22d(0x194)](_0x3fb22d(0x1ea))||_0x1755ea[_0x3fb22d(0x177)]()[_0x3fb22d(0x194)](_0x3fb22d(0x1c3)),_0x370b0a=_0x287bfe[_0x3fb22d(0x1fa)]?.[_0x3fb22d(0x18b)]?.[_0x3fb22d(0x204)],_0x45a891=_0x287bfe[_0x3fb22d(0x1b5)][0x0];reportMorphError({'error_message':_0x1755ea,'error_type':_0x336990?_0x3fb22d(0x1ee):_0x45a891?.[_0x3fb22d(0x1f9)]?.[_0x3fb22d(0x166)]||_0x3fb22d(0x155),'context':{'tool':_0x3fb22d(0x1ac),'repo_path':_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x216)],'query':_0x493812[_0x3fb22d(0x17a)]['search_string'],'model':_0x3fb22d(0x201),'termination_reason':_0x287bfe[_0x3fb22d(0x17e)],'error_count':_0x287bfe[_0x3fb22d(0x1b5)][_0x3fb22d(0x1d7)],'is_timeout':_0x336990,'timings':_0x287bfe[_0x3fb22d(0x213)],'files_attempted':_0x370b0a?.['map'](_0x157eb7=>({'path':_0x157eb7[_0x3fb22d(0x1c2)],'lines':_0x157eb7[_0x3fb22d(0x20e)]})),'tool_calls':_0x6e6344(_0x287bfe[_0x3fb22d(0x15d)]),'messages':_0x287bfe[_0x3fb22d(0x15d)]?.[_0x3fb22d(0x1ff)](_0x1ef0c6=>({'role':_0x1ef0c6['role'],'content':_0x1ef0c6[_0x3fb22d(0x1b6)]})),'request_content':{'query':_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x176)],'repo_path':_0x493812[_0x3fb22d(0x17a)]['repo_path'],'repoRoot':a0_0x474958['resolve'](_0x493812['data'][_0x3fb22d(0x216)]),'model':_0x3fb22d(0x201)}},'stack_trace':_0x45a891?.['stack']||undefined,'source':_0x3fb22d(0x1dd)})[_0x3fb22d(0x183)](()=>{});}else _0x4d841a=_0x3fb22d(0x1a8);}return{'content':[{'type':_0x3fb22d(0x17c),'text':_0x4d841a}]};}catch(_0x3e105f){const _0x120ca0=_0x3e105f instanceof Error?_0x3e105f[_0x3fb22d(0x15e)]:String(_0x3e105f),_0xc628b9=_0x120ca0['toLowerCase']()[_0x3fb22d(0x194)](_0x3fb22d(0x1ed))||_0x120ca0[_0x3fb22d(0x177)]()[_0x3fb22d(0x194)](_0x3fb22d(0x1ea))||_0x120ca0[_0x3fb22d(0x177)]()['includes'](_0x3fb22d(0x1c3))||_0x3e105f instanceof Error&&_0x3e105f[_0x3fb22d(0x166)]==='TimeoutError';return reportMorphError({'error_message':_0x120ca0,'error_type':_0xc628b9?_0x3fb22d(0x1ee):_0x3e105f instanceof Error?_0x3e105f['constructor'][_0x3fb22d(0x166)]:_0x3fb22d(0x171),'context':{'tool':_0x3fb22d(0x1ac),'repo_path':_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x216)],'query':_0x493812[_0x3fb22d(0x17a)]['search_string'],'model':_0x3fb22d(0x201),'is_timeout':_0xc628b9,'exception_phase':_0x3fb22d(0x1b9),'request_content':{'query':_0x493812['data'][_0x3fb22d(0x176)],'repo_path':_0x493812['data'][_0x3fb22d(0x216)],'repoRoot':a0_0x474958[_0x3fb22d(0x208)](_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x216)]),'model':_0x3fb22d(0x201)}},'stack_trace':_0x3e105f instanceof Error?_0x3e105f['stack']:undefined,'source':_0x3fb22d(0x1dd)})['catch'](()=>{}),{'content':[{'type':_0x3fb22d(0x17c),'text':_0x3fb22d(0x1bd)+_0x120ca0}],'isError':![]};}}case _0x3fb22d(0x1e1):{const _0x5a6812=CodebaseSearchArgsSchema[_0x3fb22d(0x184)](_0x54b70e);if(!_0x5a6812['success'])return{'content':[{'type':_0x3fb22d(0x17c),'text':_0x3fb22d(0x1f0)+_0x5a6812['error']}],'isError':!![]};try{const _0x419587=MORPH_API_KEY;if(!_0x419587)throw new Error('MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.');const _0x4a271b=_0x5a6812[_0x3fb22d(0x17a)][_0x3fb22d(0x21b)],_0x43cd56=await executeCodebaseSearch({'query':_0x5a6812['data']['query'],'target_directories':_0x4a271b,'limit':_0x5a6812[_0x3fb22d(0x17a)][_0x3fb22d(0x151)]},{'apiKey':_0x419587,'repoId':_0x5a6812[_0x3fb22d(0x17a)][_0x3fb22d(0x18c)],'branch':_0x5a6812['data']['branch'],'commitHash':_0x5a6812[_0x3fb22d(0x17a)][_0x3fb22d(0x18e)],'debug':![]});if(!_0x43cd56[_0x3fb22d(0x16b)])return{'content':[{'type':'text','text':_0x3fb22d(0x17d)+_0x43cd56[_0x3fb22d(0x235)]}],'isError':!![]};const _0x112a4e=_0x43cd56[_0x3fb22d(0x1ba)][_0x3fb22d(0x1d7)]===0x0?_0x3fb22d(0x200)+_0x5a6812[_0x3fb22d(0x17a)][_0x3fb22d(0x15c)]+'\x22':_0x3fb22d(0x215)+_0x43cd56[_0x3fb22d(0x1ba)][_0x3fb22d(0x1d7)]+_0x3fb22d(0x22b)+_0x43cd56['stats']['searchTimeMs']+_0x3fb22d(0x152)+_0x43cd56[_0x3fb22d(0x1ba)][_0x3fb22d(0x1ff)]((_0x2291a3,_0xca56c3)=>_0xca56c3+0x1+'.\x20'+_0x2291a3[_0x3fb22d(0x1e2)]+'\x20('+(_0x2291a3[_0x3fb22d(0x15a)]*0x64)[_0x3fb22d(0x178)](0x1)+_0x3fb22d(0x21c)+(_0x3fb22d(0x221)+_0x2291a3[_0x3fb22d(0x160)]+'-'+_0x2291a3[_0x3fb22d(0x1a1)]+'\x0a')+('\x20\x20\x20'+_0x2291a3[_0x3fb22d(0x1b6)][_0x3fb22d(0x1cd)](0x0,0xc8)+(_0x2291a3[_0x3fb22d(0x1b6)]['length']>0xc8?_0x3fb22d(0x164):'')+'\x0a'))[_0x3fb22d(0x175)]('\x0a');return{'content':[{'type':_0x3fb22d(0x17c),'text':_0x112a4e}]};}catch(_0x4c7f2f){const _0x49d685=_0x4c7f2f instanceof Error?_0x4c7f2f['message']:String(_0x4c7f2f);return reportMorphError({'error_message':_0x49d685,'error_type':_0x4c7f2f instanceof Error?_0x4c7f2f['constructor'][_0x3fb22d(0x166)]:'UnknownError','context':{'tool':'codebase_search','query':_0x5a6812['data']['query'],'repo_id':_0x5a6812[_0x3fb22d(0x17a)][_0x3fb22d(0x18c)],'target_directories':_0x5a6812[_0x3fb22d(0x17a)][_0x3fb22d(0x21b)]},'stack_trace':_0x4c7f2f instanceof Error?_0x4c7f2f[_0x3fb22d(0x223)]:undefined,'source':_0x3fb22d(0x1dd)})[_0x3fb22d(0x183)](()=>{}),{'content':[{'type':_0x3fb22d(0x17c),'text':'Error:\x20'+_0x49d685}],'isError':!![]};}}default:throw new Error(_0x3fb22d(0x206)+_0x41d51a);}}catch(_0x52d9c2){const _0x282713=_0x52d9c2 instanceof Error?_0x52d9c2[_0x3fb22d(0x15e)]:String(_0x52d9c2);return reportMorphError({'error_message':_0x282713,'error_type':_0x52d9c2 instanceof Error?_0x52d9c2[_0x3fb22d(0x1f9)]['name']:_0x3fb22d(0x171),'context':{'tool':name,'arguments':args?JSON[_0x3fb22d(0x205)](args)['substring'](0x0,0x1f4):undefined,'mcp_server_version':'0.2.0'},'stack_trace':_0x52d9c2 instanceof Error?_0x52d9c2['stack']:undefined,'source':_0x3fb22d(0x1dd)})[_0x3fb22d(0x183)](()=>{}),{'content':[{'type':'text','text':_0x3fb22d(0x193)+_0x282713}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x12f81c){const _0x3065b=a0_0x52a7b4,_0xdbd8a1=await getValidRootDirectories(_0x12f81c);if(_0xdbd8a1['length']>0x0)allowedDirectories=[..._0xdbd8a1],console[_0x3065b(0x235)](_0x3065b(0x212)+_0xdbd8a1[_0x3065b(0x1d7)]+_0x3065b(0x1fd));else{console[_0x3065b(0x235)]('No\x20valid\x20root\x20directories\x20provided\x20by\x20client');if(ENABLE_WORKSPACE_MODE)try{const _0x4454e2=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x4454e2&&(allowedDirectories=[_0x4454e2],console[_0x3065b(0x235)](_0x3065b(0x1bb)+_0x4454e2));}catch(_0x5301fe){console[_0x3065b(0x235)]('Warning:\x20Workspace\x20fallback\x20failed:\x20'+_0x5301fe);}}}server[a0_0x52a7b4(0x1de)](RootsListChangedNotificationSchema,async()=>{const _0x381264=a0_0x52a7b4;try{const _0xd54666=await server[_0x381264(0x218)]();_0xd54666&&_0x381264(0x1eb)in _0xd54666&&await updateAllowedDirectoriesFromRoots(_0xd54666['roots']);}catch(_0x126e09){console[_0x381264(0x235)](_0x381264(0x1d1),_0x126e09 instanceof Error?_0x126e09[_0x381264(0x15e)]:String(_0x126e09));}}),server[a0_0x52a7b4(0x1aa)]=async()=>{const _0xa8ad5=a0_0x52a7b4,_0x55cc31=server[_0xa8ad5(0x1f6)]();if(_0x55cc31?.[_0xa8ad5(0x1eb)])try{const _0x1172fc=await server[_0xa8ad5(0x218)]();_0x1172fc&&'roots'in _0x1172fc?await updateAllowedDirectoriesFromRoots(_0x1172fc['roots']):console[_0xa8ad5(0x235)](_0xa8ad5(0x14b));}catch(_0x5ab73d){console['error'](_0xa8ad5(0x154),_0x5ab73d instanceof Error?_0x5ab73d[_0xa8ad5(0x15e)]:String(_0x5ab73d));}else{if(allowedDirectories[_0xa8ad5(0x1d7)]>0x0)console[_0xa8ad5(0x235)](_0xa8ad5(0x19d),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console['error'](_0xa8ad5(0x165));else throw new Error(_0xa8ad5(0x20f));}}};async function runServer(){const _0x2797a8=a0_0x52a7b4,_0x4881c2=new StdioServerTransport();await server['connect'](_0x4881c2),console[_0x2797a8(0x235)]('Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio'),allowedDirectories[_0x2797a8(0x1d7)]===0x0&&console['error'](_0x2797a8(0x22e));}runServer()['catch'](_0x3c52d2=>{const _0x551288=a0_0x52a7b4;console[_0x551288(0x235)]('Fatal\x20error\x20running\x20server:',_0x3c52d2),process['exit'](0x1);});
@@ -1 +1 @@
1
- function a1_0x162b(){const _0x3f5500=['5783113mFZart','60tzyKoO','charAt','toUpperCase','4689708DCIqIz','4431234diBqrl','slice','2841480TxIgAf','replace','startsWith','substring','match','5FAvbjP','8586936WMDgyW','normalize','929IDFNVx','4029744ENzYHX','trim'];a1_0x162b=function(){return _0x3f5500;};return a1_0x162b();}(function(_0x32a349,_0x2392eb){const _0x40a627=a1_0x262e,_0xc40178=_0x32a349();while(!![]){try{const _0x31185d=parseInt(_0x40a627(0x12d))/0x1*(-parseInt(_0x40a627(0x131))/0x2)+-parseInt(_0x40a627(0x135))/0x3+parseInt(_0x40a627(0x12e))/0x4+-parseInt(_0x40a627(0x12a))/0x5*(parseInt(_0x40a627(0x134))/0x6)+parseInt(_0x40a627(0x130))/0x7+parseInt(_0x40a627(0x12b))/0x8+parseInt(_0x40a627(0x137))/0x9;if(_0x31185d===_0x2392eb)break;else _0xc40178['push'](_0xc40178['shift']());}catch(_0x4b8c7a){_0xc40178['push'](_0xc40178['shift']());}}}(a1_0x162b,0xe48b4));function a1_0x262e(_0x537492,_0x140186){_0x537492=_0x537492-0x129;const _0x162ba1=a1_0x162b();let _0x262edf=_0x162ba1[_0x537492];return _0x262edf;}import a1_0x4908ad from'path';import a1_0x3da7d7 from'os';export function convertToWindowsPath(_0x1e7f89){const _0x488d6f=a1_0x262e;if(_0x1e7f89[_0x488d6f(0x139)]('/mnt/')){const _0x81ca62=_0x1e7f89[_0x488d6f(0x132)](0x5)[_0x488d6f(0x133)](),_0x1068d2=_0x1e7f89['slice'](0x6)[_0x488d6f(0x138)](/\//g,'\x5c');return _0x81ca62+':'+_0x1068d2;}if(_0x1e7f89[_0x488d6f(0x129)](/^\/[a-zA-Z]\//)){const _0x552499=_0x1e7f89[_0x488d6f(0x132)](0x1)[_0x488d6f(0x133)](),_0x55a065=_0x1e7f89[_0x488d6f(0x136)](0x2)[_0x488d6f(0x138)](/\//g,'\x5c');return _0x552499+':'+_0x55a065;}if(_0x1e7f89[_0x488d6f(0x129)](/^[a-zA-Z]:/))return _0x1e7f89[_0x488d6f(0x138)](/\//g,'\x5c');return _0x1e7f89;}export function normalizePath(_0x41956f){const _0xb9a9a5=a1_0x262e;_0x41956f=_0x41956f[_0xb9a9a5(0x12f)]()[_0xb9a9a5(0x138)](/^["']|["']$/g,'');const _0x5ba9bc=_0x41956f[_0xb9a9a5(0x139)]('/')&&!_0x41956f['match'](/^\/mnt\/[a-z]\//i)&&!_0x41956f[_0xb9a9a5(0x129)](/^\/[a-zA-Z]\//);if(_0x5ba9bc)return _0x41956f[_0xb9a9a5(0x138)](/\/+/g,'/')[_0xb9a9a5(0x138)](/\/+$/,'');_0x41956f=convertToWindowsPath(_0x41956f);if(_0x41956f['startsWith']('\x5c\x5c')){let _0x333691=_0x41956f;_0x333691=_0x333691[_0xb9a9a5(0x138)](/^\\{2,}/,'\x5c\x5c');const _0x39f235=_0x333691[_0xb9a9a5(0x13a)](0x2)[_0xb9a9a5(0x138)](/\\\\/g,'\x5c');_0x41956f='\x5c\x5c'+_0x39f235;}else _0x41956f=_0x41956f[_0xb9a9a5(0x138)](/\\\\/g,'\x5c');let _0x580280=a1_0x4908ad[_0xb9a9a5(0x12c)](_0x41956f);_0x41956f[_0xb9a9a5(0x139)]('\x5c\x5c')&&!_0x580280[_0xb9a9a5(0x139)]('\x5c\x5c')&&(_0x580280='\x5c'+_0x580280);if(_0x580280[_0xb9a9a5(0x129)](/^[a-zA-Z]:/)){let _0x1b50d2=_0x580280[_0xb9a9a5(0x138)](/\//g,'\x5c');return/^[a-z]:/['test'](_0x1b50d2)&&(_0x1b50d2=_0x1b50d2[_0xb9a9a5(0x132)](0x0)['toUpperCase']()+_0x1b50d2['slice'](0x1)),_0x1b50d2;}return _0x580280['replace'](/\//g,'\x5c');}export function expandHome(_0x1958a1){const _0x349642=a1_0x262e;if(_0x1958a1['startsWith']('~/')||_0x1958a1==='~')return a1_0x4908ad['join'](a1_0x3da7d7['homedir'](),_0x1958a1[_0x349642(0x136)](0x1));return _0x1958a1;}
1
+ function a1_0x275f(_0x3f4db5,_0x417503){_0x3f4db5=_0x3f4db5-0xe4;const _0x26c6f0=a1_0x26c6();let _0x275fc8=_0x26c6f0[_0x3f4db5];return _0x275fc8;}(function(_0x3e9c42,_0x584691){const _0xda64a9=a1_0x275f,_0x5e07dc=_0x3e9c42();while(!![]){try{const _0x4c2cde=-parseInt(_0xda64a9(0xe6))/0x1*(parseInt(_0xda64a9(0xf6))/0x2)+-parseInt(_0xda64a9(0xec))/0x3+-parseInt(_0xda64a9(0xef))/0x4+-parseInt(_0xda64a9(0xf1))/0x5+parseInt(_0xda64a9(0xf4))/0x6*(parseInt(_0xda64a9(0xe5))/0x7)+parseInt(_0xda64a9(0xeb))/0x8+parseInt(_0xda64a9(0xea))/0x9*(parseInt(_0xda64a9(0xf2))/0xa);if(_0x4c2cde===_0x584691)break;else _0x5e07dc['push'](_0x5e07dc['shift']());}catch(_0x43fb05){_0x5e07dc['push'](_0x5e07dc['shift']());}}}(a1_0x26c6,0x2b2bb));import a1_0x11b135 from'path';import a1_0x25d1ab from'os';function a1_0x26c6(){const _0x4960c4=['toUpperCase','6LKIvEl','slice','692qZRKDg','match','364630nSKfSn','769vEGStA','startsWith','/mnt/','charAt','10332kNsyEU','2508720BUZGvW','221466gnAKHX','replace','substring','1254128aMvoFc','normalize','283085TsCHwS','4540SLChtr'];a1_0x26c6=function(){return _0x4960c4;};return a1_0x26c6();}export function convertToWindowsPath(_0x1661ab){const _0x573fdc=a1_0x275f;if(_0x1661ab[_0x573fdc(0xe7)](_0x573fdc(0xe8))){const _0x2f0dd4=_0x1661ab['charAt'](0x5)[_0x573fdc(0xf3)](),_0x46a9cd=_0x1661ab[_0x573fdc(0xf5)](0x6)['replace'](/\//g,'\x5c');return _0x2f0dd4+':'+_0x46a9cd;}if(_0x1661ab['match'](/^\/[a-zA-Z]\//)){const _0x2c61e0=_0x1661ab[_0x573fdc(0xe9)](0x1)[_0x573fdc(0xf3)](),_0xadf681=_0x1661ab[_0x573fdc(0xf5)](0x2)[_0x573fdc(0xed)](/\//g,'\x5c');return _0x2c61e0+':'+_0xadf681;}if(_0x1661ab[_0x573fdc(0xe4)](/^[a-zA-Z]:/))return _0x1661ab[_0x573fdc(0xed)](/\//g,'\x5c');return _0x1661ab;}export function normalizePath(_0xa86f90){const _0x25465d=a1_0x275f;_0xa86f90=_0xa86f90['trim']()['replace'](/^["']|["']$/g,'');const _0x19aa4d=_0xa86f90['startsWith']('/')&&!_0xa86f90[_0x25465d(0xe4)](/^\/mnt\/[a-z]\//i)&&!_0xa86f90['match'](/^\/[a-zA-Z]\//);if(_0x19aa4d)return _0xa86f90['replace'](/\/+/g,'/')[_0x25465d(0xed)](/\/+$/,'');_0xa86f90=convertToWindowsPath(_0xa86f90);if(_0xa86f90['startsWith']('\x5c\x5c')){let _0x3e5f63=_0xa86f90;_0x3e5f63=_0x3e5f63['replace'](/^\\{2,}/,'\x5c\x5c');const _0x55a12c=_0x3e5f63[_0x25465d(0xee)](0x2)[_0x25465d(0xed)](/\\\\/g,'\x5c');_0xa86f90='\x5c\x5c'+_0x55a12c;}else _0xa86f90=_0xa86f90[_0x25465d(0xed)](/\\\\/g,'\x5c');let _0x3f2ce6=a1_0x11b135[_0x25465d(0xf0)](_0xa86f90);_0xa86f90[_0x25465d(0xe7)]('\x5c\x5c')&&!_0x3f2ce6['startsWith']('\x5c\x5c')&&(_0x3f2ce6='\x5c'+_0x3f2ce6);if(_0x3f2ce6[_0x25465d(0xe4)](/^[a-zA-Z]:/)){let _0x1b98bd=_0x3f2ce6[_0x25465d(0xed)](/\//g,'\x5c');return/^[a-z]:/['test'](_0x1b98bd)&&(_0x1b98bd=_0x1b98bd['charAt'](0x0)['toUpperCase']()+_0x1b98bd[_0x25465d(0xf5)](0x1)),_0x1b98bd;}return _0x3f2ce6[_0x25465d(0xed)](/\//g,'\x5c');}export function expandHome(_0x240a43){const _0x4a9caa=a1_0x275f;if(_0x240a43[_0x4a9caa(0xe7)]('~/')||_0x240a43==='~')return a1_0x11b135['join'](a1_0x25d1ab['homedir'](),_0x240a43[_0x4a9caa(0xf5)](0x1));return _0x240a43;}
@@ -1 +1 @@
1
- (function(_0x4e933e,_0x8f7bb6){const _0x50b1e2=a2_0x50d4,_0xeda2c3=_0x4e933e();while(!![]){try{const _0xa9dc56=parseInt(_0x50b1e2(0x1f8))/0x1+-parseInt(_0x50b1e2(0x1ec))/0x2+parseInt(_0x50b1e2(0x1f9))/0x3*(-parseInt(_0x50b1e2(0x1ff))/0x4)+parseInt(_0x50b1e2(0x1f6))/0x5*(parseInt(_0x50b1e2(0x1f0))/0x6)+-parseInt(_0x50b1e2(0x1fe))/0x7+-parseInt(_0x50b1e2(0x1ed))/0x8*(parseInt(_0x50b1e2(0x1fa))/0x9)+parseInt(_0x50b1e2(0x1fc))/0xa;if(_0xa9dc56===_0x8f7bb6)break;else _0xeda2c3['push'](_0xeda2c3['shift']());}catch(_0x2e768d){_0xeda2c3['push'](_0xeda2c3['shift']());}}}(a2_0x3130,0x858ea));import a2_0x2084b2 from'path';export function isPathWithinAllowedDirectories(_0xb1e143,_0x5920f3){const _0x598a51=a2_0x50d4;if(typeof _0xb1e143!=='string'||!Array[_0x598a51(0x1fd)](_0x5920f3))return![];if(!_0xb1e143||_0x5920f3[_0x598a51(0x1eb)]===0x0)return![];if(_0xb1e143[_0x598a51(0x1ef)]('\x00'))return![];let _0x156f00;try{_0x156f00=a2_0x2084b2[_0x598a51(0x1f1)](a2_0x2084b2[_0x598a51(0x1f4)](_0xb1e143));}catch{return![];}if(!a2_0x2084b2[_0x598a51(0x1f7)](_0x156f00))throw new Error(_0x598a51(0x1ee));return _0x5920f3[_0x598a51(0x1f5)](_0x59b886=>{const _0x56d7d8=_0x598a51;if(typeof _0x59b886!=='string'||!_0x59b886)return![];if(_0x59b886[_0x56d7d8(0x1ef)]('\x00'))return![];let _0x5e2abe;try{_0x5e2abe=a2_0x2084b2[_0x56d7d8(0x1f1)](a2_0x2084b2[_0x56d7d8(0x1f4)](_0x59b886));}catch{return![];}if(!a2_0x2084b2[_0x56d7d8(0x1f7)](_0x5e2abe))throw new Error(_0x56d7d8(0x1f2));if(_0x156f00===_0x5e2abe)return!![];if(_0x5e2abe===a2_0x2084b2[_0x56d7d8(0x1fb)])return _0x156f00[_0x56d7d8(0x1f3)](a2_0x2084b2[_0x56d7d8(0x1fb)]);return _0x156f00[_0x56d7d8(0x1f3)](_0x5e2abe+a2_0x2084b2[_0x56d7d8(0x1fb)]);});}function a2_0x50d4(_0x1a7dd8,_0x3c9c3d){_0x1a7dd8=_0x1a7dd8-0x1eb;const _0x31307c=a2_0x3130();let _0x50d4e1=_0x31307c[_0x1a7dd8];return _0x50d4e1;}function a2_0x3130(){const _0x3c0113=['resolve','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','startsWith','normalize','some','5kWNZHZ','isAbsolute','1054540DOUqZH','3vUjBlH','2932029YVnLEN','sep','4752920YjHQyt','isArray','1147776tMKTTL','1855564CWkVQE','length','827666TQFgpq','8Sfpwbt','Path\x20must\x20be\x20absolute\x20after\x20normalization','includes','2308146frhcqx'];a2_0x3130=function(){return _0x3c0113;};return a2_0x3130();}
1
+ function a2_0x5113(){const _0x9d8ca4=['isAbsolute','isArray','resolve','3BXfbhS','141930UMqgVw','565132yEnPde','11844jrTQNw','177758aWlNVI','startsWith','sep','includes','288KAehqZ','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','2111112BqTOBD','normalize','string','Path\x20must\x20be\x20absolute\x20after\x20normalization','1040225xuGkEW','some','44212wAmAKn'];a2_0x5113=function(){return _0x9d8ca4;};return a2_0x5113();}(function(_0x541197,_0xe43549){const _0xf6ee3d=a2_0x1474,_0x79026a=_0x541197();while(!![]){try{const _0x1597f5=parseInt(_0xf6ee3d(0x1ea))/0x1+-parseInt(_0xf6ee3d(0x1e9))/0x2+-parseInt(_0xf6ee3d(0x1e6))/0x3*(-parseInt(_0xf6ee3d(0x1e8))/0x4)+-parseInt(_0xf6ee3d(0x1e0))/0x5+parseInt(_0xf6ee3d(0x1ee))/0x6*(parseInt(_0xf6ee3d(0x1e2))/0x7)+-parseInt(_0xf6ee3d(0x1f0))/0x8+parseInt(_0xf6ee3d(0x1e7))/0x9;if(_0x1597f5===_0xe43549)break;else _0x79026a['push'](_0x79026a['shift']());}catch(_0x2c924b){_0x79026a['push'](_0x79026a['shift']());}}}(a2_0x5113,0x2717b));function a2_0x1474(_0x168936,_0x53576a){_0x168936=_0x168936-0x1dd;const _0x511361=a2_0x5113();let _0x14744a=_0x511361[_0x168936];return _0x14744a;}import a2_0x9c3f62 from'path';export function isPathWithinAllowedDirectories(_0x5eafe3,_0xaa3c43){const _0xcedbd7=a2_0x1474;if(typeof _0x5eafe3!==_0xcedbd7(0x1de)||!Array[_0xcedbd7(0x1e4)](_0xaa3c43))return![];if(!_0x5eafe3||_0xaa3c43['length']===0x0)return![];if(_0x5eafe3[_0xcedbd7(0x1ed)]('\x00'))return![];let _0x2fe410;try{_0x2fe410=a2_0x9c3f62[_0xcedbd7(0x1e5)](a2_0x9c3f62[_0xcedbd7(0x1dd)](_0x5eafe3));}catch{return![];}if(!a2_0x9c3f62[_0xcedbd7(0x1e3)](_0x2fe410))throw new Error(_0xcedbd7(0x1df));return _0xaa3c43[_0xcedbd7(0x1e1)](_0x3134f0=>{const _0x519c0e=_0xcedbd7;if(typeof _0x3134f0!==_0x519c0e(0x1de)||!_0x3134f0)return![];if(_0x3134f0[_0x519c0e(0x1ed)]('\x00'))return![];let _0x595d5a;try{_0x595d5a=a2_0x9c3f62[_0x519c0e(0x1e5)](a2_0x9c3f62[_0x519c0e(0x1dd)](_0x3134f0));}catch{return![];}if(!a2_0x9c3f62[_0x519c0e(0x1e3)](_0x595d5a))throw new Error(_0x519c0e(0x1ef));if(_0x2fe410===_0x595d5a)return!![];if(_0x595d5a===a2_0x9c3f62[_0x519c0e(0x1ec)])return _0x2fe410['startsWith'](a2_0x9c3f62[_0x519c0e(0x1ec)]);return _0x2fe410[_0x519c0e(0x1eb)](_0x595d5a+a2_0x9c3f62['sep']);});}
@@ -1 +1 @@
1
- function a3_0x1f78(_0x8c3ea9,_0x3dad3b){_0x8c3ea9=_0x8c3ea9-0x190;const _0x13ca80=a3_0x13ca();let _0x1f784e=_0x13ca80[_0x8c3ea9];return _0x1f784e;}(function(_0x304fb9,_0x24402b){const _0x11fa9b=a3_0x1f78,_0x5e0f32=_0x304fb9();while(!![]){try{const _0x2bb451=-parseInt(_0x11fa9b(0x198))/0x1*(-parseInt(_0x11fa9b(0x19d))/0x2)+-parseInt(_0x11fa9b(0x1a4))/0x3+-parseInt(_0x11fa9b(0x1a8))/0x4*(-parseInt(_0x11fa9b(0x19e))/0x5)+parseInt(_0x11fa9b(0x192))/0x6*(parseInt(_0x11fa9b(0x1a6))/0x7)+-parseInt(_0x11fa9b(0x196))/0x8*(parseInt(_0x11fa9b(0x1a2))/0x9)+parseInt(_0x11fa9b(0x1a1))/0xa*(parseInt(_0x11fa9b(0x193))/0xb)+-parseInt(_0x11fa9b(0x19c))/0xc;if(_0x2bb451===_0x24402b)break;else _0x5e0f32['push'](_0x5e0f32['shift']());}catch(_0x26bc4f){_0x5e0f32['push'](_0x5e0f32['shift']());}}}(a3_0x13ca,0x22bad));import{promises as a3_0x1dd21f}from'fs';function a3_0x13ca(){const _0x4f61fa=['257072LWxfKn','homedir','21797dQxkIu','slice','file://','push','2646408QJUmpK','2eZYrQm','87895CkwObs','\x20due\x20to\x20error:\x20','uri','20BEAsfD','9YgrLaC','stat','750159pMMQWm','invalid\x20path\x20or\x20inaccessible','7sbXmKB','resolve','20JUxXHJ','error','join','1549728zXonXb','1523467OEyPye','realpath','startsWith'];a3_0x13ca=function(){return _0x4f61fa;};return a3_0x13ca();}import a3_0x14d9cf from'path';import a3_0x228507 from'os';import{normalizePath}from'./path-utils.js';async function parseRootUri(_0x68983){const _0x4cef0c=a3_0x1f78;try{const _0x297b17=_0x68983[_0x4cef0c(0x195)](_0x4cef0c(0x19a))?_0x68983['slice'](0x7):_0x68983,_0x195b7f=_0x297b17[_0x4cef0c(0x195)]('~/')||_0x297b17==='~'?a3_0x14d9cf[_0x4cef0c(0x191)](a3_0x228507[_0x4cef0c(0x197)](),_0x297b17[_0x4cef0c(0x199)](0x1)):_0x297b17,_0x209637=a3_0x14d9cf[_0x4cef0c(0x1a7)](_0x195b7f),_0x531a27=await a3_0x1dd21f[_0x4cef0c(0x194)](_0x209637);return normalizePath(_0x531a27);}catch{return null;}}function formatDirectoryError(_0x2a804d,_0x67f388,_0x59d5c9){const _0xbd2a97=a3_0x1f78;if(_0x59d5c9)return'Skipping\x20'+_0x59d5c9+':\x20'+_0x2a804d;const _0x47ea31=_0x67f388 instanceof Error?_0x67f388['message']:String(_0x67f388);return'Skipping\x20invalid\x20directory:\x20'+_0x2a804d+_0xbd2a97(0x19f)+_0x47ea31;}export async function getValidRootDirectories(_0xbe6d06){const _0x278c0a=a3_0x1f78,_0x24e24d=[];for(const _0x28b564 of _0xbe6d06){const _0x48937e=await parseRootUri(_0x28b564[_0x278c0a(0x1a0)]);if(!_0x48937e){console[_0x278c0a(0x190)](formatDirectoryError(_0x28b564[_0x278c0a(0x1a0)],undefined,_0x278c0a(0x1a5)));continue;}try{const _0x457fba=await a3_0x1dd21f[_0x278c0a(0x1a3)](_0x48937e);_0x457fba['isDirectory']()?_0x24e24d[_0x278c0a(0x19b)](_0x48937e):console[_0x278c0a(0x190)](formatDirectoryError(_0x48937e,undefined,'non-directory\x20root'));}catch(_0x41d8b3){console['error'](formatDirectoryError(_0x48937e,_0x41d8b3));}}return _0x24e24d;}
1
+ (function(_0xccc81a,_0x4428e4){const _0x5628cb=a3_0x3e38,_0x368924=_0xccc81a();while(!![]){try{const _0x286722=-parseInt(_0x5628cb(0xa2))/0x1*(-parseInt(_0x5628cb(0xb8))/0x2)+parseInt(_0x5628cb(0xb1))/0x3+-parseInt(_0x5628cb(0xaf))/0x4*(-parseInt(_0x5628cb(0xb3))/0x5)+parseInt(_0x5628cb(0xa4))/0x6*(parseInt(_0x5628cb(0xa6))/0x7)+-parseInt(_0x5628cb(0xa1))/0x8+parseInt(_0x5628cb(0xb4))/0x9+parseInt(_0x5628cb(0xab))/0xa*(-parseInt(_0x5628cb(0xa7))/0xb);if(_0x286722===_0x4428e4)break;else _0x368924['push'](_0x368924['shift']());}catch(_0x1284b7){_0x368924['push'](_0x368924['shift']());}}}(a3_0x19a2,0x4267f));import{promises as a3_0x4e6092}from'fs';import a3_0x352cf3 from'path';import a3_0x4e28ba from'os';import{normalizePath}from'./path-utils.js';function a3_0x3e38(_0x53ed72,_0x437b27){_0x53ed72=_0x53ed72-0xa0;const _0x19a2ee=a3_0x19a2();let _0x3e3808=_0x19a2ee[_0x53ed72];return _0x3e3808;}async function parseRootUri(_0x5636aa){const _0x288664=a3_0x3e38;try{const _0xe676f7=_0x5636aa['startsWith'](_0x288664(0xb7))?_0x5636aa['slice'](0x7):_0x5636aa,_0x468513=_0xe676f7[_0x288664(0xad)]('~/')||_0xe676f7==='~'?a3_0x352cf3[_0x288664(0xa9)](a3_0x4e28ba['homedir'](),_0xe676f7[_0x288664(0xa0)](0x1)):_0xe676f7,_0x21192a=a3_0x352cf3[_0x288664(0xb9)](_0x468513),_0x2bdae9=await a3_0x4e6092[_0x288664(0xac)](_0x21192a);return normalizePath(_0x2bdae9);}catch{return null;}}function formatDirectoryError(_0x291798,_0x3b5fc6,_0x15e6a5){const _0x25ef30=a3_0x3e38;if(_0x15e6a5)return _0x25ef30(0xb0)+_0x15e6a5+':\x20'+_0x291798;const _0x2f0381=_0x3b5fc6 instanceof Error?_0x3b5fc6[_0x25ef30(0xb5)]:String(_0x3b5fc6);return _0x25ef30(0xaa)+_0x291798+'\x20due\x20to\x20error:\x20'+_0x2f0381;}export async function getValidRootDirectories(_0x4452c8){const _0x2ad414=a3_0x3e38,_0x4b1228=[];for(const _0x4689e2 of _0x4452c8){const _0x355d38=await parseRootUri(_0x4689e2['uri']);if(!_0x355d38){console[_0x2ad414(0xa3)](formatDirectoryError(_0x4689e2['uri'],undefined,_0x2ad414(0xb6)));continue;}try{const _0x522189=await a3_0x4e6092[_0x2ad414(0xa5)](_0x355d38);_0x522189[_0x2ad414(0xb2)]()?_0x4b1228[_0x2ad414(0xae)](_0x355d38):console['error'](formatDirectoryError(_0x355d38,undefined,_0x2ad414(0xa8)));}catch(_0xbf54d7){console[_0x2ad414(0xa3)](formatDirectoryError(_0x355d38,_0xbf54d7));}}return _0x4b1228;}function a3_0x19a2(){const _0x507387=['push','968iuIyFY','Skipping\x20','1548105JmUdJS','isDirectory','4155MbtZeg','3534948xfqgox','message','invalid\x20path\x20or\x20inaccessible','file://','6XnhVfs','resolve','slice','3868056vvMPvd','39119uuUMBh','error','36GPYJKj','stat','452018BzfJbl','11rAahHe','non-directory\x20root','join','Skipping\x20invalid\x20directory:\x20','8592040IfCRqf','realpath','startsWith'];a3_0x19a2=function(){return _0x507387;};return a3_0x19a2();}
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env npx ts-node
2
+ /**
3
+ * Test script for auto-update functionality
4
+ * Tests that version checking and update detection works correctly
5
+ */
6
+ export {};
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env npx ts-node
2
+ (function(_0x3021aa,_0x1dd1b7){const _0x476385=a4_0x272e,_0x286a9f=_0x3021aa();while(!![]){try{const _0x47faf1=parseInt(_0x476385(0x213))/0x1*(parseInt(_0x476385(0x1da))/0x2)+parseInt(_0x476385(0x1e3))/0x3*(-parseInt(_0x476385(0x226))/0x4)+parseInt(_0x476385(0x217))/0x5+-parseInt(_0x476385(0x1f5))/0x6+parseInt(_0x476385(0x219))/0x7*(parseInt(_0x476385(0x1ff))/0x8)+parseInt(_0x476385(0x20c))/0x9+-parseInt(_0x476385(0x1fb))/0xa;if(_0x47faf1===_0x1dd1b7)break;else _0x286a9f['push'](_0x286a9f['shift']());}catch(_0x310884){_0x286a9f['push'](_0x286a9f['shift']());}}}(a4_0x121a,0x9edb1),(function(_0x308cbc,_0x86fadf){const _0x21dcd7=a4_0x272e,_0x2a30ea=a4_0x4c72,_0x1c77bc=_0x308cbc();while(!![]){try{const _0x25832f=-parseInt(_0x2a30ea(0x1a1))/0x1*(parseInt(_0x2a30ea(0x1b1))/0x2)+parseInt(_0x2a30ea(0x1c8))/0x3+-parseInt(_0x2a30ea(0x191))/0x4*(parseInt(_0x2a30ea(0x1e0))/0x5)+parseInt(_0x2a30ea(0x198))/0x6+parseInt(_0x2a30ea(0x1da))/0x7+-parseInt(_0x2a30ea(0x1d4))/0x8*(-parseInt(_0x2a30ea(0x1a9))/0x9)+parseInt(_0x2a30ea(0x195))/0xa*(-parseInt(_0x2a30ea(0x1f2))/0xb);if(_0x25832f===_0x86fadf)break;else _0x1c77bc[_0x21dcd7(0x211)](_0x1c77bc[_0x21dcd7(0x1dc)]());}catch(_0x50cfda){_0x1c77bc[_0x21dcd7(0x211)](_0x1c77bc[_0x21dcd7(0x1dc)]());}}}(a4_0x2012,0x84d85),(function(_0x40b5fd,_0x36c331){const _0x3bc939=a4_0x272e,_0x499df8=a4_0x4c72,_0x43bba5=a4_0x5f43,_0x5e8205=_0x40b5fd();while(!![]){try{const _0x23b0ef=parseInt(_0x43bba5(0x7d))/0x1*(parseInt(_0x43bba5(0xa0))/0x2)+parseInt(_0x43bba5(0x9f))/0x3+-parseInt(_0x43bba5(0xac))/0x4+parseInt(_0x43bba5(0x7a))/0x5*(-parseInt(_0x43bba5(0x8b))/0x6)+parseInt(_0x43bba5(0xc0))/0x7*(-parseInt(_0x43bba5(0xc6))/0x8)+parseInt(_0x43bba5(0x7c))/0x9+-parseInt(_0x43bba5(0x90))/0xa*(-parseInt(_0x43bba5(0xc2))/0xb);if(_0x23b0ef===_0x36c331)break;else _0x5e8205[_0x499df8(0x1de)](_0x5e8205[_0x499df8(0x19e)]());}catch(_0x35285d){_0x5e8205[_0x3bc939(0x211)](_0x5e8205[_0x3bc939(0x1dc)]());}}}(a4_0x5a16,0xeb34d),(function(_0x1bea49,_0x52feb3){const _0x2d69b6=a4_0x4c72,_0x2bad56=a4_0x5f43,_0x2be829=a4_0x1e63,_0x4e3596=_0x1bea49();while(!![]){try{const _0x39a3c3=parseInt(_0x2be829(0x12e))/0x1*(-parseInt(_0x2be829(0xe0))/0x2)+parseInt(_0x2be829(0x11f))/0x3+-parseInt(_0x2be829(0x128))/0x4*(parseInt(_0x2be829(0x123))/0x5)+-parseInt(_0x2be829(0xf6))/0x6*(-parseInt(_0x2be829(0xfd))/0x7)+parseInt(_0x2be829(0x107))/0x8+-parseInt(_0x2be829(0xe4))/0x9+-parseInt(_0x2be829(0x122))/0xa*(-parseInt(_0x2be829(0xe9))/0xb);if(_0x39a3c3===_0x52feb3)break;else _0x4e3596[_0x2d69b6(0x1de)](_0x4e3596[_0x2bad56(0x8c)]());}catch(_0x435db2){_0x4e3596[_0x2bad56(0x8d)](_0x4e3596[_0x2d69b6(0x19e)]());}}}(a4_0x49da,0x7de4e),(function(_0x211d77,_0x126bb){const _0xb439c4=a4_0x5f43,_0x433a6f=a4_0x1e63,_0x27f717=a4_0xbea0,_0x1f55ad=_0x211d77();while(!![]){try{const _0x29b9ee=-parseInt(_0x27f717(0x1b7))/0x1+-parseInt(_0x27f717(0x191))/0x2*(parseInt(_0x27f717(0x1dd))/0x3)+parseInt(_0x27f717(0x1cf))/0x4*(parseInt(_0x27f717(0x1a0))/0x5)+-parseInt(_0x27f717(0x1ba))/0x6*(parseInt(_0x27f717(0x1c6))/0x7)+-parseInt(_0x27f717(0x1d7))/0x8*(-parseInt(_0x27f717(0x1b8))/0x9)+-parseInt(_0x27f717(0x1af))/0xa*(-parseInt(_0x27f717(0x1cb))/0xb)+parseInt(_0x27f717(0x1ce))/0xc;if(_0x29b9ee===_0x126bb)break;else _0x1f55ad[_0xb439c4(0x8d)](_0x1f55ad[_0x433a6f(0x10e)]());}catch(_0x574bf8){_0x1f55ad[_0x433a6f(0xf8)](_0x1f55ad[_0x433a6f(0x10e)]());}}}(a4_0x3aa6,0x5a596),function(_0x414a6d,_0x183481){const _0xbb7c7e=a4_0xbea0,_0x102f06=a4_0x135b,_0x2d7cb4=_0x414a6d();while(!![]){try{const _0x52a1c3=parseInt(_0x102f06(0xe7))/0x1+parseInt(_0x102f06(0x105))/0x2+-parseInt(_0x102f06(0xef))/0x3*(parseInt(_0x102f06(0xbf))/0x4)+parseInt(_0x102f06(0x106))/0x5+parseInt(_0x102f06(0xdd))/0x6*(-parseInt(_0x102f06(0xf5))/0x7)+parseInt(_0x102f06(0xc8))/0x8+-parseInt(_0x102f06(0xfb))/0x9*(parseInt(_0x102f06(0xca))/0xa);if(_0x52a1c3===_0x183481)break;else _0x2d7cb4[_0xbb7c7e(0x1b1)](_0x2d7cb4[_0xbb7c7e(0x1d5)]());}catch(_0x59c366){_0x2d7cb4[_0xbb7c7e(0x1b1)](_0x2d7cb4[_0xbb7c7e(0x1d5)]());}}}(a4_0x547f,0x3e131))))));function a4_0x5ce9(){const _0x22cf50=a4_0x5f43,_0x303f7b=a4_0x1e63,_0x534839=a4_0xbea0,_0x2f88cf=a4_0x135b,_0x3821ed=[_0x2f88cf(0xf3),_0x2f88cf(0xe4),_0x2f88cf(0x107),_0x2f88cf(0xbe),_0x2f88cf(0xde),_0x2f88cf(0xd3),_0x534839(0x1be),_0x2f88cf(0xc4),_0x534839(0x1b9),_0x2f88cf(0xf8),_0x2f88cf(0xe5),_0x2f88cf(0xc1),_0x534839(0x1c7),_0x2f88cf(0xd0),_0x2f88cf(0xd9),_0x2f88cf(0xe1),_0x2f88cf(0xc7),_0x2f88cf(0xe6),_0x534839(0x1a9),_0x2f88cf(0xe9),_0x2f88cf(0xd6),_0x2f88cf(0xd5),_0x2f88cf(0xc2),_0x2f88cf(0xcc),_0x2f88cf(0xd7),_0x534839(0x1a8),_0x2f88cf(0xf0),_0x2f88cf(0xc5),_0x2f88cf(0xf6),_0x2f88cf(0xe8),_0x2f88cf(0x103),_0x2f88cf(0xfe),_0x2f88cf(0xf2),_0x2f88cf(0xff),_0x2f88cf(0xee),_0x2f88cf(0xd8),_0x2f88cf(0xe2),_0x2f88cf(0xf9),_0x2f88cf(0xec),_0x2f88cf(0xfa),_0x2f88cf(0xcb),_0x2f88cf(0xe3),_0x303f7b(0xdf),_0x2f88cf(0xda),_0x2f88cf(0xc3),_0x2f88cf(0xdc),_0x2f88cf(0x101),_0x2f88cf(0xc0),_0x2f88cf(0xd4),_0x2f88cf(0xf1),_0x2f88cf(0xd1),_0x534839(0x1a2),_0x2f88cf(0xd2),_0x2f88cf(0xed),_0x2f88cf(0x102),_0x534839(0x1a3),_0x2f88cf(0xf4),_0x2f88cf(0x100),_0x2f88cf(0xeb),_0x534839(0x1a1),_0x22cf50(0x95),_0x2f88cf(0xf7)];return a4_0x5ce9=function(){return _0x3821ed;},a4_0x5ce9();}function a4_0x2012(){const _0x3b1571=a4_0x272e,_0x5467f6=[_0x3b1571(0x206),'current',_0x3b1571(0x1ec),'readFile','103EruPTq',_0x3b1571(0x23b),'209Qefgei',_0x3b1571(0x208),'\x0a๐Ÿ“ฆ\x20Testing\x20installed\x20version\x20detection...',_0x3b1571(0x215),'48KUuJLz','Could\x20not\x20compare\x20versions','3489895LkHbjH',_0x3b1571(0x239),_0x3b1571(0x201),_0x3b1571(0x21d),_0x3b1571(0x214),_0x3b1571(0x225),_0x3b1571(0x240),'3dUlqVe',_0x3b1571(0x207),_0x3b1571(0x244),_0x3b1571(0x20a),_0x3b1571(0x232),_0x3b1571(0x212),_0x3b1571(0x218),_0x3b1571(0x245),_0x3b1571(0x242),_0x3b1571(0x1e4),_0x3b1571(0x231),'11864zzpRNx',_0x3b1571(0x228),'83242odDznL','3474FcBhtp',_0x3b1571(0x1e0),_0x3b1571(0x1ef),_0x3b1571(0x1ea),_0x3b1571(0x22d),_0x3b1571(0x237),_0x3b1571(0x211),_0x3b1571(0x1e1),_0x3b1571(0x22f),_0x3b1571(0x1fc),_0x3b1571(0x1f9),'data','\x0a๐Ÿ”\x20Testing\x20update\x20detection...',_0x3b1571(0x21a),_0x3b1571(0x1f2),_0x3b1571(0x229),'8ZIRFVI',_0x3b1571(0x204),_0x3b1571(0x234),_0x3b1571(0x1df),_0x3b1571(0x1e5),'1195248vGjQSn','2577870QrCDmr',_0x3b1571(0x227),_0x3b1571(0x1e2),_0x3b1571(0x21f),'742841pPNlgP','12AiKcvE',_0x3b1571(0x1f3),_0x3b1571(0x230),_0x3b1571(0x210),_0x3b1571(0x205),'4ucnGVk',_0x3b1571(0x1f1),'2866278AExLqf',_0x3b1571(0x1e6),_0x3b1571(0x21b),_0x3b1571(0x238),_0x3b1571(0x1ed),_0x3b1571(0x200),_0x3b1571(0x1dc),_0x3b1571(0x22a),_0x3b1571(0x23e),_0x3b1571(0x1eb),'10091040wxACHE',_0x3b1571(0x1fd),_0x3b1571(0x216),'\x20โ†’\x20',_0x3b1571(0x1e8),_0x3b1571(0x1de),_0x3b1571(0x235),_0x3b1571(0x1fe),'341590DvNuKi',_0x3b1571(0x223),_0x3b1571(0x1e9),_0x3b1571(0x221),'3YVxfgl','4vUFHnX',_0x3b1571(0x1fa),_0x3b1571(0x1e7),_0x3b1571(0x246),_0x3b1571(0x20e),'1640LPHlgh',_0x3b1571(0x243),_0x3b1571(0x222)];return a4_0x2012=function(){return _0x5467f6;},a4_0x2012();}(function(_0x119c12,_0x320d3f){const _0x21838b=a4_0x135b,_0x573937=a4_0x125d,_0xc0ca96=_0x119c12();while(!![]){try{const _0x350209=parseInt(_0x573937(0xc5))/0x1*(parseInt(_0x573937(0xe4))/0x2)+-parseInt(_0x573937(0xc1))/0x3*(-parseInt(_0x573937(0xbf))/0x4)+parseInt(_0x573937(0xd3))/0x5*(-parseInt(_0x573937(0xbd))/0x6)+-parseInt(_0x573937(0xb3))/0x7+-parseInt(_0x573937(0xc0))/0x8+-parseInt(_0x573937(0xb4))/0x9+parseInt(_0x573937(0xb8))/0xa;if(_0x350209===_0x320d3f)break;else _0xc0ca96[_0x21838b(0xe5)](_0xc0ca96[_0x21838b(0xbe)]());}catch(_0x1cab02){_0xc0ca96[_0x21838b(0xe5)](_0xc0ca96[_0x21838b(0xbe)]());}}}(a4_0x5ce9,0x831d4));function a4_0x125d(_0x3f6347,_0x215164){_0x3f6347=_0x3f6347-0xa8;const _0x43384d=a4_0x5ce9();let _0x1221e8=_0x43384d[_0x3f6347];return _0x1221e8;}const a4_0x41fc8e=a4_0x5d88;function a4_0x4c72(_0x1bd3a2,_0x190822){_0x1bd3a2=_0x1bd3a2-0x191;const _0x42e765=a4_0x2012();let _0x465a06=_0x42e765[_0x1bd3a2];return _0x465a06;}(function(_0x352495,_0x49a9b4){const _0x369e78=a4_0x135b,_0x9774fa=a4_0x125d,_0x1500a5=a4_0x5d88,_0x23cedc=_0x352495();while(!![]){try{const _0x3d1fe6=-parseInt(_0x1500a5(0x198))/0x1*(-parseInt(_0x1500a5(0x1c0))/0x2)+parseInt(_0x1500a5(0x1bb))/0x3*(-parseInt(_0x1500a5(0x1ab))/0x4)+parseInt(_0x1500a5(0x193))/0x5*(parseInt(_0x1500a5(0x19b))/0x6)+-parseInt(_0x1500a5(0x1c1))/0x7*(parseInt(_0x1500a5(0x194))/0x8)+parseInt(_0x1500a5(0x1b2))/0x9+-parseInt(_0x1500a5(0x1b3))/0xa+-parseInt(_0x1500a5(0x1b4))/0xb*(-parseInt(_0x1500a5(0x190))/0xc);if(_0x3d1fe6===_0x49a9b4)break;else _0x23cedc[_0x369e78(0xe5)](_0x23cedc[_0x9774fa(0xb2)]());}catch(_0x2a1399){_0x23cedc[_0x369e78(0xe5)](_0x23cedc[_0x9774fa(0xb2)]());}}}(a4_0xea68,0x23b15));function a4_0x135b(_0x4ea04f,_0x1a54b4){_0x4ea04f=_0x4ea04f-0xbe;const _0x173ac1=a4_0x547f();let _0x35d423=_0x173ac1[_0x4ea04f];return _0x35d423;}import a4_0x4b81f0 from'axios';function a4_0xbea0(_0x3ed338,_0x3d306e){_0x3ed338=_0x3ed338-0x191;const _0x453bbe=a4_0x3aa6();let _0x88edcf=_0x453bbe[_0x3ed338];return _0x88edcf;}function a4_0x272e(_0x179e66,_0x276e78){_0x179e66=_0x179e66-0x1da;const _0x121af4=a4_0x121a();let _0x272e24=_0x121af4[_0x179e66];return _0x272e24;}function a4_0x5f43(_0x164e87,_0x54f2c4){_0x164e87=_0x164e87-0x68;const _0x28e1c8=a4_0x5a16();let _0x4712f8=_0x28e1c8[_0x164e87];return _0x4712f8;}import a4_0x5c9c88 from'semver';function a4_0x121a(){const _0x3716ca=['node_modules','10GVhOVd','119226JsoeXd','6452433IWXIjD','Already\x20up\x20to\x20date:\x20','parse','74TkxUkK','2070096LhrjTW','4504005rdqQPs','filter','1086JKBhPU','15800qKRdqJ','56iuAMFJ','push','468098zbsolM','2RvUXZA','1.0.1','๐Ÿงช\x20Testing\x20Auto-Update\x20Functionality\x0a','Expected\x20','4530240RWUfJx','\x0a๐Ÿ”ข\x20Testing\x20semver\x20comparison...','2757160oxXOUg','dirname','\x20passed,\x20','958554rexthq','log','\x0a๐Ÿ“Š\x20Results:\x20','1215795IopjIl','๐Ÿ“ก\x20Testing\x20npm\x20registry\x20connection...','error','7962zGPsmc','88QHjdxF','2778424mzDipZ','545931ThXHRf','4ikgtMS','2853IePpXn','243957ENHHrN','5QHbgXb','Fetch\x20@morphllm/morphmcp\x20version\x20from\x20npm','\x20failed','split',',\x20got\x20','419510VBnwZB','1511845VSrkdq','join','1192uyyZYa','138jLCHGI','75340SHoSZE','1398992KfuZHp','807188SgfNwx','122228dDxnHz','1736lPATRZ','774125nNoEWH','1362500CHLgJb','69033EzeNAK','version','semver.lt(','6TuFXTw','1266258DDQMZk','671nWSOGg','length','4123300Tjljwz','4311090UmGNDz','7351164wwfrUv','@morphllm/morphsdk','package.json','Read\x20installed\x20@morphllm/morphsdk\x20version','1149890UziuRZ','Failed\x20to\x20fetch','shift','utf-8','@morphllm/morphmcp','597285WCFVPs','Latest:\x20','SDK\x20update\x20detection','\x0aโš ๏ธ\x20\x20Some\x20tests\x20failed.\x20Check\x20the\x20output\x20above.\x0a','814524niBzzF','6954065MXPllX','passed','186492ACbCBL','2fdXiir','\x0aโœจ\x20All\x20tests\x20passed!\x20Auto-update\x20functionality\x20is\x20working.\x0a','1.0.0','876rNaOKJ','860067sweNUI','210134vjgIGe','expected','733BPdoDx','5762477YWsOtg','8203352hJBiHf','catch','341pJqArm','/latest','301bYwDLr','6908100ZYwewU','0.8.0','https://registry.npmjs.org/','890287QXlsfW','Fetch\x20@morphllm/morphsdk\x20version\x20from\x20npm','3798486jenXXQ','12706120dAvdbI','6895wuCwRw','3934676xmVmLL','54117PlRYDh','16QnKkNt','Update\x20available:\x20','2Prmgiq','latest','repeat'];a4_0x121a=function(){return _0x3716ca;};return a4_0x121a();}import a4_0xee218b from'fs/promises';import a4_0x32e891 from'path';import{fileURLToPath}from'url';const __dirname=a4_0x32e891[a4_0x41fc8e(0x1a9)](fileURLToPath(import.meta.url)),results=[];function a4_0xea68(){const _0x3a8660=a4_0x1e63,_0xccfa48=a4_0xbea0,_0x72e9ea=a4_0x135b,_0x24b13b=a4_0x125d,_0x4893fa=[_0x24b13b(0xaf),_0xccfa48(0x1b9),_0x24b13b(0xde),_0x24b13b(0xca),_0xccfa48(0x1c2),_0x24b13b(0xab),_0x24b13b(0xd0),_0x24b13b(0xad),_0x24b13b(0xaa),_0x24b13b(0xb9),_0x24b13b(0xd7),_0x24b13b(0xd5),_0x72e9ea(0xc9),_0x24b13b(0xbe),_0x72e9ea(0x104),_0x24b13b(0xce),_0x24b13b(0xd1),_0x72e9ea(0xce),_0x24b13b(0xe5),_0x24b13b(0xac),_0x24b13b(0xcd),_0x72e9ea(0xdf),_0x24b13b(0xc6),_0x72e9ea(0xcd),_0x72e9ea(0xfd),_0x24b13b(0xdc),_0x24b13b(0xbb),_0x24b13b(0xcc),_0x24b13b(0xd6),_0x24b13b(0xc9),_0x24b13b(0xc2),_0x72e9ea(0x108),_0x24b13b(0xe2),_0x24b13b(0xdf),_0x24b13b(0xd2),_0x72e9ea(0xea),_0x3a8660(0x12c),_0x24b13b(0xe0),_0x24b13b(0xc4),_0x24b13b(0xc7),_0x72e9ea(0xfc),_0x72e9ea(0xdb),_0x24b13b(0xba),_0x24b13b(0xa8),_0x24b13b(0xe1),_0x72e9ea(0xcf),_0x24b13b(0xd8),_0x24b13b(0xc8),_0x72e9ea(0xe0),_0x24b13b(0xa9),_0x24b13b(0xae),_0x24b13b(0xdb),_0x24b13b(0xbc),_0x24b13b(0xb1),_0x24b13b(0xcb),_0x24b13b(0xe3),_0x24b13b(0xdd)];return a4_0xea68=function(){return _0x4893fa;},a4_0xea68();}function a4_0x3aa6(){const _0x54b175=a4_0x272e,_0x7d896e=a4_0x4c72,_0x16c703=a4_0x5f43,_0x532778=a4_0x1e63,_0x4af64d=[_0x532778(0x12a),_0x16c703(0x69),_0x532778(0xec),_0x532778(0xe2),_0x16c703(0xb0),_0x7d896e(0x1bc),_0x532778(0x12f),_0x532778(0x130),_0x532778(0xea),_0x532778(0x110),_0x532778(0x129),_0x532778(0xee),_0x532778(0xf9),_0x532778(0x131),_0x532778(0x111),_0x532778(0x103),_0x532778(0x112),_0x16c703(0xc1),_0x532778(0xf0),_0x532778(0xdc),_0x532778(0x113),_0x532778(0x119),_0x532778(0xeb),_0x16c703(0x6f),_0x532778(0xf8),_0x532778(0x114),_0x532778(0x101),_0x532778(0xf5),_0x532778(0x108),_0x532778(0x109),_0x16c703(0x6e),_0x16c703(0x70),_0x532778(0x11d),_0x532778(0xef),_0x16c703(0x86),_0x532778(0x10d),_0x532778(0x118),_0x532778(0xe5),_0x532778(0xe6),_0x16c703(0xa4),_0x16c703(0xca),_0x532778(0x121),_0x532778(0xf2),_0x532778(0x10b),_0x532778(0x120),_0x532778(0xe3),_0x532778(0x116),_0x532778(0x104),_0x532778(0x11b),_0x532778(0xfc),_0x54b175(0x23f),_0x532778(0xf4),'Installed:\x20',_0x532778(0x125),_0x532778(0xfb),_0x16c703(0xa9),_0x532778(0xf7),_0x532778(0xf1),_0x532778(0x102),_0x16c703(0x99),_0x532778(0x10e),_0x16c703(0x96),_0x532778(0x11c),_0x532778(0x10f),_0x532778(0x127),_0x532778(0x10a),_0x532778(0x115),_0x532778(0xed),_0x532778(0x134),_0x532778(0x106),_0x532778(0x11a),_0x532778(0x12d),_0x532778(0xfe),_0x16c703(0xb8),_0x532778(0x132),_0x532778(0x124),_0x532778(0x117),_0x532778(0x10c),_0x16c703(0xa6),_0x532778(0xde),_0x532778(0xfa)];return a4_0x3aa6=function(){return _0x4af64d;},a4_0x3aa6();}function a4_0x1e63(_0x446f6f,_0x401889){_0x446f6f=_0x446f6f-0xdc;const _0x2b3aca=a4_0x49da();let _0x135149=_0x2b3aca[_0x446f6f];return _0x135149;}function a4_0x5d88(_0x411cad,_0x177528){_0x411cad=_0x411cad-0x18f;const _0x1e61d1=a4_0xea68();let _0x12dc92=_0x1e61d1[_0x411cad];return _0x12dc92;}function test(_0x364bd2,_0x4d5809,_0x35b627){const _0x20e902=a4_0x41fc8e;results[_0x20e902(0x1ae)]({'name':_0x364bd2,'passed':_0x4d5809,'message':_0x35b627});const _0x4d837b=_0x4d5809?'โœ…':'โŒ';console[_0x20e902(0x1bf)](_0x4d837b+'\x20'+_0x364bd2+':\x20'+_0x35b627);}function a4_0x5a16(){const _0xf1f9a4=a4_0x272e,_0x37ec49=a4_0x4c72,_0x13daab=[_0x37ec49(0x1d1),_0x37ec49(0x19b),_0xf1f9a4(0x1f0),_0x37ec49(0x199),_0x37ec49(0x1a2),_0x37ec49(0x1ab),_0xf1f9a4(0x1f4),_0xf1f9a4(0x1dd),_0xf1f9a4(0x236),_0xf1f9a4(0x20f),_0x37ec49(0x1e1),_0xf1f9a4(0x23c),_0x37ec49(0x1d6),_0x37ec49(0x1cc),_0x37ec49(0x1e8),_0x37ec49(0x1ad),_0x37ec49(0x1be),_0x37ec49(0x1b9),_0x37ec49(0x19f),_0x37ec49(0x1ef),_0x37ec49(0x1af),_0x37ec49(0x196),_0x37ec49(0x1a5),_0x37ec49(0x1bf),_0x37ec49(0x1c3),_0x37ec49(0x1bd),_0xf1f9a4(0x241),_0x37ec49(0x1c6),_0xf1f9a4(0x1f8),_0x37ec49(0x1d3),_0xf1f9a4(0x233),_0x37ec49(0x1b5),_0xf1f9a4(0x1ee),_0x37ec49(0x1a4),_0x37ec49(0x1c0),_0x37ec49(0x1ae),_0x37ec49(0x19a),_0x37ec49(0x1d5),_0x37ec49(0x1b6),_0x37ec49(0x1e6),_0xf1f9a4(0x20d),'70GUexxX',_0x37ec49(0x1b4),_0xf1f9a4(0x23a),_0x37ec49(0x1ee),_0x37ec49(0x197),_0xf1f9a4(0x23d),'shift','push',_0x37ec49(0x1cb),_0x37ec49(0x1a0),'50AiidNN',_0x37ec49(0x1e2),_0x37ec49(0x1f0),_0x37ec49(0x1c7),_0x37ec49(0x1b3),_0xf1f9a4(0x22c),_0x37ec49(0x1d2),_0x37ec49(0x1e3),_0x37ec49(0x1ca),_0x37ec49(0x1d9),_0x37ec49(0x1e9),_0x37ec49(0x1f1),_0x37ec49(0x1a6),_0x37ec49(0x1dc),_0x37ec49(0x1dd),_0x37ec49(0x1b0),_0x37ec49(0x1d8),_0x37ec49(0x1e7),_0x37ec49(0x1ec),_0x37ec49(0x1c2),_0x37ec49(0x1e4),_0x37ec49(0x19c),_0x37ec49(0x1d0),_0x37ec49(0x1eb),_0x37ec49(0x193),_0x37ec49(0x1bb),_0x37ec49(0x1c9),_0xf1f9a4(0x22b),_0xf1f9a4(0x224),_0xf1f9a4(0x20b),'get',_0x37ec49(0x1ba),_0x37ec49(0x1db),_0x37ec49(0x1b8),_0x37ec49(0x19d),_0xf1f9a4(0x1f7),_0xf1f9a4(0x21e),_0x37ec49(0x1df),_0xf1f9a4(0x209),_0x37ec49(0x192),_0x37ec49(0x1d7),_0x37ec49(0x1c5),_0x37ec49(0x1a8),_0x37ec49(0x1c1),_0xf1f9a4(0x1db),_0x37ec49(0x1ed),_0x37ec49(0x1a3),_0xf1f9a4(0x203),_0xf1f9a4(0x22e)];return a4_0x5a16=function(){return _0x13daab;},a4_0x5a16();}function a4_0x547f(){const _0x5d0977=a4_0x5f43,_0x49eea6=a4_0x1e63,_0x5dc71e=a4_0xbea0,_0x645176=[_0x49eea6(0x105),_0x5dc71e(0x1d9),_0x5dc71e(0x1ad),_0x5dc71e(0x1a5),_0x5dc71e(0x196),_0x5dc71e(0x1bf),_0x5dc71e(0x19c),_0x5dc71e(0x1e0),_0x49eea6(0xe7),_0x5dc71e(0x1b3),_0x5dc71e(0x1d2),_0x5dc71e(0x1ae),_0x5dc71e(0x192),_0x5dc71e(0x1c0),_0x5dc71e(0x1de),_0x5dc71e(0x1c3),_0x49eea6(0x12b),_0x5d0977(0xc5),_0x5dc71e(0x1a6),_0x5dc71e(0x1c4),_0x5dc71e(0x1cc),_0x5dc71e(0x1b6),_0x5dc71e(0x1b0),_0x5dc71e(0x1ca),_0x5dc71e(0x1c5),_0x49eea6(0x126),_0x5dc71e(0x1ac),_0x5dc71e(0x1b2),_0x5d0977(0x6c),_0x49eea6(0xe1),_0x49eea6(0xff),_0x5dc71e(0x198),_0x5dc71e(0x1cd),_0x49eea6(0x100),_0x5dc71e(0x1d5),_0x5dc71e(0x195),_0x5d0977(0xb5),_0x5dc71e(0x1a4),_0x5dc71e(0x199),_0x5dc71e(0x1c8),_0x5dc71e(0x1b5),_0x49eea6(0x133),_0x5dc71e(0x1d4),_0x5dc71e(0x1d8),_0x49eea6(0xe8),_0x5dc71e(0x197),_0x5dc71e(0x1bb),_0x5dc71e(0x1e1),_0x5dc71e(0x1da),_0x5dc71e(0x194),_0x5dc71e(0x19f),_0x5dc71e(0x1db),_0x5dc71e(0x1ab),_0x5dc71e(0x1d0),_0x5dc71e(0x1b4),_0x5dc71e(0x1d6),_0x5dc71e(0x19e),_0x5dc71e(0x1bd),_0x5dc71e(0x1df),_0x5dc71e(0x1c1),_0x49eea6(0xf3),_0x5dc71e(0x19b),_0x5dc71e(0x1bc),_0x5dc71e(0x1aa),_0x49eea6(0xdd),_0x5dc71e(0x19d),_0x5dc71e(0x19a),_0x5dc71e(0x193),_0x5dc71e(0x1dc),_0x5dc71e(0x1d3),_0x5dc71e(0x1d1),_0x5dc71e(0x1c9),_0x49eea6(0x11e),_0x5dc71e(0x1b1),_0x5dc71e(0x1a7)];return a4_0x547f=function(){return _0x645176;},a4_0x547f();}async function getInstalledVersion(_0x28f2b8){const _0x852f6c=a4_0x125d,_0x492a55=a4_0x41fc8e;try{const _0x5ade34=a4_0x32e891[_0x492a55(0x1c2)](__dirname,_0x852f6c(0xda),..._0x28f2b8[_0x492a55(0x1ac)]('/'),_0x492a55(0x195)),_0x5f1ca6=await a4_0xee218b[_0x852f6c(0xd9)](_0x5ade34,_0x492a55(0x1a8)),_0x4b56da=JSON[_0x852f6c(0xb6)](_0x5f1ca6);return _0x4b56da[_0x492a55(0x1c6)]||null;}catch{return null;}}async function getLatestVersion(_0x543ece){const _0x4482f9=a4_0x125d,_0x428971=a4_0x41fc8e;try{const _0x2758f8=await a4_0x4b81f0[_0x4482f9(0xcf)](_0x428971(0x1ad)+_0x543ece+_0x428971(0x1a2),{'timeout':0x2710});return _0x2758f8[_0x428971(0x1b6)]?.[_0x428971(0x1c6)]||null;}catch{return null;}}async function runTests(){const _0x1d4e79=a4_0x135b,_0x132fb3=a4_0x125d,_0xdc3af1=a4_0x41fc8e;console[_0xdc3af1(0x1bf)](_0x132fb3(0xd4)),console[_0xdc3af1(0x1bf)]('='[_0xdc3af1(0x19a)](0x32)+'\x0a'),console[_0xdc3af1(0x1bf)](_0xdc3af1(0x1c4));const _0x1dfa82=await getLatestVersion(_0xdc3af1(0x196));test(_0xdc3af1(0x1ba),_0x1dfa82!==null,_0x1dfa82?_0x1d4e79(0xc6)+_0x1dfa82:_0xdc3af1(0x1b1));const _0x3bb040=await getLatestVersion(_0x132fb3(0xc3));test(_0xdc3af1(0x1bd),_0x3bb040!==null,_0x3bb040?_0x1d4e79(0xc6)+_0x3bb040:_0xdc3af1(0x1b1)),console[_0xdc3af1(0x1bf)](_0xdc3af1(0x1c5));const _0x389a7e=await getInstalledVersion(_0xdc3af1(0x196));test(_0x132fb3(0xb0),_0x389a7e!==null,_0x389a7e?_0xdc3af1(0x1a1)+_0x389a7e:_0xdc3af1(0x192)),console[_0xdc3af1(0x1bf)](_0xdc3af1(0x1aa));const _0x2094dc=[{'current':_0xdc3af1(0x197),'latest':_0xdc3af1(0x1b7),'expected':!![]},{'current':_0xdc3af1(0x1b7),'latest':_0xdc3af1(0x197),'expected':![]},{'current':_0xdc3af1(0x197),'latest':_0xdc3af1(0x197),'expected':![]},{'current':_0xdc3af1(0x1c7),'latest':_0xdc3af1(0x197),'expected':!![]}];for(const _0x20f603 of _0x2094dc){const _0x3a89d5=a4_0x5c9c88['lt'](_0x20f603[_0xdc3af1(0x1af)],_0x20f603[_0xdc3af1(0x1b5)]);test(_0xdc3af1(0x1a0)+_0x20f603[_0x132fb3(0xd7)]+',\x20'+_0x20f603[_0xdc3af1(0x1b5)]+')',_0x3a89d5===_0x20f603[_0xdc3af1(0x19f)],_0xdc3af1(0x1bc)+_0x20f603[_0x132fb3(0xdb)]+_0xdc3af1(0x1c3)+_0x3a89d5);}console[_0xdc3af1(0x1bf)](_0xdc3af1(0x19d));if(_0x389a7e&&_0x1dfa82){const _0x1f8237=a4_0x5c9c88['lt'](_0x389a7e,_0x1dfa82);test(_0xdc3af1(0x1a7),!![],_0x1f8237?_0xdc3af1(0x19c)+_0x389a7e+_0xdc3af1(0x1be)+_0x1dfa82:_0xdc3af1(0x1b0)+_0x389a7e);}else test(_0x132fb3(0xde),![],_0xdc3af1(0x19e));console[_0xdc3af1(0x1bf)]('\x0a'+'='[_0xdc3af1(0x19a)](0x32));const _0x5e537f=results[_0xdc3af1(0x199)](_0x54bcc8=>_0x54bcc8[_0xdc3af1(0x1a6)])[_0x1d4e79(0xd2)],_0x36a345=results[_0xdc3af1(0x199)](_0x21ddf4=>!_0x21ddf4[_0x132fb3(0xb7)])[_0xdc3af1(0x1a3)];console[_0x132fb3(0xbb)](_0xdc3af1(0x1a4)+_0x5e537f+_0xdc3af1(0x18f)+_0x36a345+_0xdc3af1(0x1a5)),_0x36a345===0x0?console[_0xdc3af1(0x1bf)](_0x132fb3(0xb5)):console[_0xdc3af1(0x1bf)](_0xdc3af1(0x1b8));}runTests()[a4_0x41fc8e(0x191)](console[a4_0x41fc8e(0x1b9)]);function a4_0x49da(){const _0x3d6de1=a4_0x272e,_0x1a59dc=a4_0x4c72,_0x22b538=a4_0x5f43,_0x11601a=[_0x22b538(0xb6),_0x22b538(0x87),_0x22b538(0x88),_0x22b538(0xcb),_0x22b538(0xba),_0x22b538(0x9a),_0x3d6de1(0x1dc),_0x22b538(0xbe),_0x22b538(0x74),_0x22b538(0xc3),_0x22b538(0x80),_0x22b538(0x9d),_0x22b538(0x93),_0x22b538(0x85),_0x22b538(0x78),_0x22b538(0x7e),'Not\x20found\x20(may\x20be\x20linked\x20locally)',_0x22b538(0xae),_0x1a59dc(0x1a7),_0x22b538(0xbf),_0x22b538(0x82),_0x22b538(0xa2),_0x1a59dc(0x1b2),_0x22b538(0x89),_0x22b538(0x6b),_0x1a59dc(0x1e5),_0x1a59dc(0x1aa),_0x22b538(0x77),_0x22b538(0x91),_0x22b538(0xad),_0x22b538(0xb3),_0x22b538(0x94),_0x22b538(0x71),_0x1a59dc(0x1ac),_0x1a59dc(0x1cd),_0x22b538(0xa3),_0x22b538(0xc4),_0x3d6de1(0x202),_0x22b538(0x79),_0x22b538(0x97),_0x22b538(0x75),_0x22b538(0x7f),_0x22b538(0xab),_0x22b538(0xc8),_0x22b538(0xbb),_0x22b538(0xb4),_0x22b538(0x73),_0x22b538(0xbc),_0x22b538(0xaf),_0x22b538(0xb9),_0x1a59dc(0x1c4),_0x22b538(0x83),_0x22b538(0x9e),_0x22b538(0x8e),_0x22b538(0x9c),_0x22b538(0x6d),_0x22b538(0x98),_0x22b538(0xbd),_0x22b538(0x84),_0x22b538(0x92),_0x22b538(0x7b),_0x22b538(0x8f),_0x22b538(0xb2),_0x22b538(0x6a),'13404FlcuRz',_0x22b538(0x68),_0x22b538(0x8a),_0x22b538(0xb7),_0x3d6de1(0x1f6),_0x22b538(0xa7),_0x22b538(0xaa),_0x1a59dc(0x1b7),_0x22b538(0xa1),_0x22b538(0x8d),_0x22b538(0x81),_0x22b538(0x9b),_0x22b538(0x72),_0x22b538(0x76),_0x22b538(0xc7),_0x22b538(0xb1),_0x22b538(0xc9),_0x3d6de1(0x220),_0x22b538(0xa8),_0x3d6de1(0x21c),_0x1a59dc(0x1ce),_0x22b538(0xa5),_0x1a59dc(0x1cf),_0x1a59dc(0x194),_0x1a59dc(0x1ea)];return a4_0x49da=function(){return _0x11601a;},a4_0x49da();}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morphllm/morphmcp",
3
- "version": "0.8.67",
3
+ "version": "0.8.70",
4
4
  "description": "Fast & accurate MCP server with AI-powered file editing and intelligent code search. Prevents context pollution and saves time for a better user experience.",
5
5
  "license": "MIT",
6
6
  "author": "Morph (https://morphllm.com)",
@@ -35,7 +35,7 @@
35
35
  "dependencies": {
36
36
  "@google/generative-ai": "^0.21.0",
37
37
  "@modelcontextprotocol/sdk": "^1.12.3",
38
- "@morphllm/morphsdk": "0.2.94",
38
+ "@morphllm/morphsdk": "0.2.95",
39
39
  "@vscode/ripgrep": "^1.15.14",
40
40
  "axios": "^1.6.0",
41
41
  "chalk": "^5.3.0",