@morphllm/morphmcp 0.8.72 → 0.8.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/path-utils.js +1 -1
- package/dist/path-validation.js +1 -1
- package/dist/roots-utils.js +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const a0_0x37c554=a0_0x32af;(function(_0x4f6805,_0x51a856){const _0x5bdcef=a0_0x32af,_0x312559=_0x4f6805();while(!![]){try{const _0x4d5e94=parseInt(_0x5bdcef(0x153))/0x1+parseInt(_0x5bdcef(0xdd))/0x2+parseInt(_0x5bdcef(0x174))/0x3+-parseInt(_0x5bdcef(0xc2))/0x4+parseInt(_0x5bdcef(0x105))/0x5*(-parseInt(_0x5bdcef(0x165))/0x6)+parseInt(_0x5bdcef(0x108))/0x7*(-parseInt(_0x5bdcef(0x100))/0x8)+parseInt(_0x5bdcef(0x14e))/0x9;if(_0x4d5e94===_0x51a856)break;else _0x312559['push'](_0x312559['shift']());}catch(_0x4a318b){_0x312559['push'](_0x312559['shift']());}}}(a0_0x5a79,0xbb23e));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_0x4604e7 from'fs/promises';import a0_0x57fd1b from'path';import a0_0x2170f3 from'os';function a0_0x32af(_0x54d660,_0x36054d){_0x54d660=_0x54d660-0xa9;const _0x5a793c=a0_0x5a79();let _0x32af53=_0x5a793c[_0x54d660];return _0x32af53;}import{createRequire}from'module';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_0x1753c4 from'axios';function fixPathRepetition(_0x2a823b){const _0x17bcc3=a0_0x32af,_0x3b58e1=_0x2a823b['split'](a0_0x57fd1b[_0x17bcc3(0xae)])['filter'](Boolean);if(_0x3b58e1['length']<0x2)return null;for(let _0x4194df=Math[_0x17bcc3(0x171)](_0x3b58e1['length']/0x2);_0x4194df>=0x1;_0x4194df--){for(let _0x45bdca=0x0;_0x45bdca<=_0x3b58e1['length']-0x2*_0x4194df;_0x45bdca++){const _0x969b46=_0x3b58e1[_0x17bcc3(0x17b)](_0x45bdca,_0x45bdca+_0x4194df),_0x3e3450=_0x3b58e1[_0x17bcc3(0x17b)](_0x45bdca+_0x4194df,_0x45bdca+0x2*_0x4194df);if(_0x969b46['every']((_0x1537e4,_0x346dc7)=>_0x1537e4===_0x3e3450[_0x346dc7])){const _0x47a666=[..._0x3b58e1[_0x17bcc3(0x17b)](0x0,_0x45bdca),..._0x3b58e1[_0x17bcc3(0x17b)](_0x45bdca+_0x4194df)];return a0_0x57fd1b['sep']+_0x47a666[_0x17bcc3(0x138)](a0_0x57fd1b['sep']);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x47f694=a0_0x32af;try{const _0x242025=require(_0x47f694(0xf7));return _0x242025[_0x47f694(0xdf)]??'unknown';}catch(_0x21d49e){return console[_0x47f694(0x180)]('Warning:\x20Unable\x20to\x20determine\x20package\x20version:',_0x21d49e),_0x47f694(0x107);}}function printHelp(){const _0x1174f9=a0_0x32af;console[_0x1174f9(0x19c)](_0x1174f9(0x147)+getPackageVersion()),console['log'](_0x1174f9(0xb5)),console[_0x1174f9(0x19c)](_0x1174f9(0x17a)),console['log'](_0x1174f9(0xfc)),console[_0x1174f9(0x19c)](_0x1174f9(0x101)),console['log'](_0x1174f9(0x192)),console['log'](_0x1174f9(0xcc)),console[_0x1174f9(0x19c)](_0x1174f9(0xf6));}const cliArgs=process[a0_0x37c554(0x148)][a0_0x37c554(0x17b)](0x2),VERSION_FLAGS=new Set([a0_0x37c554(0xab),'-v','-V']),HELP_FLAGS=new Set(['--help','-h']);cliArgs[a0_0x37c554(0xd1)](_0x29002b=>VERSION_FLAGS[a0_0x37c554(0x193)](_0x29002b))&&(console['log']('@morphllm/morphmcp\x20'+getPackageVersion()),process[a0_0x37c554(0x102)](0x0));cliArgs[a0_0x37c554(0xd1)](_0x8cce5=>HELP_FLAGS[a0_0x37c554(0x193)](_0x8cce5))&&(printHelp(),process[a0_0x37c554(0x102)](0x0));const args=cliArgs[a0_0x37c554(0xc5)](_0x4d0705=>!VERSION_FLAGS[a0_0x37c554(0x193)](_0x4d0705)&&!HELP_FLAGS['has'](_0x4d0705)),ALL_TOOLS=[a0_0x37c554(0x115),a0_0x37c554(0x14d),a0_0x37c554(0x168)],DEFAULT_TOOLS=[a0_0x37c554(0x115),a0_0x37c554(0x14d)],ENABLED_TOOLS=process[a0_0x37c554(0x190)][a0_0x37c554(0xc7)]?process[a0_0x37c554(0x190)][a0_0x37c554(0xc7)]===a0_0x37c554(0x162)?ALL_TOOLS:process[a0_0x37c554(0x190)][a0_0x37c554(0xc7)][a0_0x37c554(0x123)](',')[a0_0x37c554(0x185)](_0x8196e9=>_0x8196e9[a0_0x37c554(0x137)]()):DEFAULT_TOOLS;console['error'](a0_0x37c554(0x179)+ENABLED_TOOLS[a0_0x37c554(0x138)](',\x20'));const WORKSPACE_ROOT=process[a0_0x37c554(0x190)]['WORKSPACE_ROOT']||process[a0_0x37c554(0x190)][a0_0x37c554(0x139)]||process[a0_0x37c554(0xd7)](),ENABLE_WORKSPACE_MODE=process['env']['ENABLE_WORKSPACE_MODE']!==a0_0x37c554(0x197),MORPH_API_KEY=process[a0_0x37c554(0x190)][a0_0x37c554(0x132)],MORPH_API_URL=process[a0_0x37c554(0x190)][a0_0x37c554(0x11a)],MORPH_WARP_GREP_TIMEOUT=process['env'][a0_0x37c554(0x13b)]?parseInt(process[a0_0x37c554(0x190)]['MORPH_WARP_GREP_TIMEOUT'],0xa):undefined;MORPH_API_KEY&&!MORPH_API_KEY[a0_0x37c554(0x18d)](a0_0x37c554(0xca))&&!MORPH_API_KEY[a0_0x37c554(0x18d)]('morph-')&&console[a0_0x37c554(0x180)](a0_0x37c554(0xbf));async function reportMorphError(_0x2dd224){const _0x911aa4=a0_0x37c554;try{await a0_0x1753c4[_0x911aa4(0x13e)](_0x911aa4(0xf0),{..._0x2dd224,'timestamp':new Date()[_0x911aa4(0xd6)](),'source':_0x2dd224['source']||_0x911aa4(0x12e)},{'timeout':0x1388,'headers':{'Content-Type':_0x911aa4(0x16f),'Authorization':_0x911aa4(0xfb)+MORPH_API_KEY}});}catch{}}args['length']===0x0&&!ENABLE_WORKSPACE_MODE&&(console[a0_0x37c554(0x180)](a0_0x37c554(0x109)),console[a0_0x37c554(0x180)](a0_0x37c554(0x10b)),console['error']('\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)'),console[a0_0x37c554(0x180)]('\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)'),console['error'](a0_0x37c554(0x14c)),console['error'](a0_0x37c554(0xb1)));function normalizePath(_0x50cb1d){const _0x23167f=a0_0x37c554;return a0_0x57fd1b[_0x23167f(0xe1)](_0x50cb1d);}function expandHome(_0x32e870){const _0x37ed08=a0_0x37c554;if(_0x32e870[_0x37ed08(0x18d)]('~/')||_0x32e870==='~')return a0_0x57fd1b[_0x37ed08(0x138)](a0_0x2170f3[_0x37ed08(0xbd)](),_0x32e870['slice'](0x1));return _0x32e870;}let allowedDirectories=await Promise[a0_0x37c554(0x162)](args[a0_0x37c554(0x185)](async _0xa35721=>{const _0x76b173=expandHome(_0xa35721),_0x288d1c=a0_0x57fd1b['resolve'](_0x76b173);try{const _0x2c2a9d=await a0_0x4604e7['realpath'](_0x288d1c);return normalizePath(_0x2c2a9d);}catch(_0x2e3af6){return normalizePath(_0x288d1c);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x37c554(0xd2)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories['push'](workspaceDir),console[a0_0x37c554(0x180)](a0_0x37c554(0x13a)+workspaceDir+a0_0x37c554(0xf3)));}catch(a0_0x4ab103){console[a0_0x37c554(0x180)](a0_0x37c554(0x18f)+a0_0x4ab103);}async function detectWorkspaceRoot(_0x248adf){const _0x567ec8=a0_0x37c554;let _0x4cdfb8=a0_0x57fd1b[_0x567ec8(0x110)](_0x248adf);const _0x272fea=['.git',_0x567ec8(0x17c),_0x567ec8(0x182),'Cargo.toml',_0x567ec8(0x198),_0x567ec8(0x10e),_0x567ec8(0xc1),_0x567ec8(0x118),_0x567ec8(0x16c)];while(_0x4cdfb8!==a0_0x57fd1b['dirname'](_0x4cdfb8)){for(const _0x5aa3ee of _0x272fea){const _0x24e43f=a0_0x57fd1b['join'](_0x4cdfb8,_0x5aa3ee);try{return await a0_0x4604e7['access'](_0x24e43f),normalizePath(_0x4cdfb8);}catch{}}_0x4cdfb8=a0_0x57fd1b['dirname'](_0x4cdfb8);}return normalizePath(_0x248adf);}await Promise[a0_0x37c554(0x162)](args['map'](async _0x2e4ddb=>{const _0x4408e4=a0_0x37c554;try{const _0x205d16=await a0_0x4604e7[_0x4408e4(0x158)](expandHome(_0x2e4ddb));!_0x205d16[_0x4408e4(0xbe)]()&&(console[_0x4408e4(0x180)](_0x4408e4(0xb0)+_0x2e4ddb+_0x4408e4(0xee)),process['exit'](0x1));}catch(_0x3cb5e8){console[_0x4408e4(0x180)](_0x4408e4(0x131)+_0x2e4ddb+':',_0x3cb5e8),process['exit'](0x1);}}));async function validatePath(_0x3635fd){const _0x517ef4=a0_0x37c554,_0x33fe84=expandHome(_0x3635fd),_0x18e5d0=a0_0x57fd1b[_0x517ef4(0x110)](_0x33fe84);try{const _0x2267ab=await a0_0x4604e7[_0x517ef4(0x111)](_0x18e5d0);return _0x2267ab;}catch(_0x413e62){if(_0x413e62['code']===_0x517ef4(0x12d)){const _0x381c03=a0_0x57fd1b['dirname'](_0x18e5d0);try{const _0x2b8ad6=await a0_0x4604e7[_0x517ef4(0x111)](_0x381c03);return a0_0x57fd1b[_0x517ef4(0x138)](_0x2b8ad6,a0_0x57fd1b['basename'](_0x18e5d0));}catch{throw new Error(_0x517ef4(0x135)+_0x381c03);}}throw _0x413e62;}}const MorphEditFileArgsSchema=z[a0_0x37c554(0xc6)]({'path':z[a0_0x37c554(0x116)](),'code_edit':z['string']()[a0_0x37c554(0x19d)](a0_0x37c554(0x169)),'instruction':z[a0_0x37c554(0x116)]()[a0_0x37c554(0x19d)](a0_0x37c554(0x183)),'dryRun':z['boolean']()[a0_0x37c554(0x11c)](![])[a0_0x37c554(0x19d)](a0_0x37c554(0x117))}),WarpGrepArgsSchema=z[a0_0x37c554(0xc6)]({'search_string':z[a0_0x37c554(0x116)]()[a0_0x37c554(0x19d)]('Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for'),'repo_path':z[a0_0x37c554(0x116)]()[a0_0x37c554(0x19d)](a0_0x37c554(0xef))}),CodebaseSearchArgsSchema=z['object']({'query':z[a0_0x37c554(0x116)]()['describe']('Natural\x20language\x20query\x20to\x20search\x20for\x20code'),'repoId':z[a0_0x37c554(0x116)]()[a0_0x37c554(0x19d)](a0_0x37c554(0xf4)),'branch':z['string']()['optional']()[a0_0x37c554(0x19d)]('Branch\x20to\x20search\x20(uses\x20latest\x20commit)'),'commitHash':z[a0_0x37c554(0x116)]()[a0_0x37c554(0x15d)]()[a0_0x37c554(0x19d)](a0_0x37c554(0x140)),'targetDirectories':z[a0_0x37c554(0x104)](z[a0_0x37c554(0x116)]())['default']([])[a0_0x37c554(0x19d)](a0_0x37c554(0xf5)),'limit':z[a0_0x37c554(0xd3)]()[a0_0x37c554(0x15d)]()[a0_0x37c554(0x11c)](0xa)['describe'](a0_0x37c554(0x164))}),server=new Server({'name':a0_0x37c554(0x145),'version':'0.2.0'},{'capabilities':{'tools':{}}});server['setRequestHandler'](ListToolsRequestSchema,async()=>{const _0x2210ac=a0_0x37c554,_0x37d333=[{'name':_0x2210ac(0x115),'description':'**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a'+_0x2210ac(0x188)+_0x2210ac(0x161)+_0x2210ac(0x151)+'Benefits:\x0a'+_0x2210ac(0x15e)+_0x2210ac(0xfd)+'-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a'+_0x2210ac(0xd0)+_0x2210ac(0x146)+'ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a'+'Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a'+'For\x20deletions:\x0a'+_0x2210ac(0xe3)+'-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a'+_0x2210ac(0x12c)+'-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a'+'-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a'+'-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a'+_0x2210ac(0x122)+_0x2210ac(0xf8)+'-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a'+_0x2210ac(0x12a),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':_0x2210ac(0x14d),'description':_0x2210ac(0x19b)+_0x2210ac(0x187)+_0x2210ac(0x11e)+_0x2210ac(0xce)+_0x2210ac(0x14a)+'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'+_0x2210ac(0x17f)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':_0x2210ac(0x168),'description':_0x2210ac(0x170)+_0x2210ac(0x199)+_0x2210ac(0x114)+_0x2210ac(0x144)+_0x2210ac(0xf1)+_0x2210ac(0xeb)+_0x2210ac(0x18b)+'-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a'+'Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20'+_0x2210ac(0xcb)+_0x2210ac(0xe0),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x2f43bf=_0x37d333[_0x2210ac(0xc5)](_0x3cca16=>{const _0x5acdb2=_0x2210ac;if(!ENABLED_TOOLS[_0x5acdb2(0x152)](_0x3cca16[_0x5acdb2(0x11b)]))return![];if(_0x5acdb2(0x154)in _0x3cca16&&_0x3cca16[_0x5acdb2(0x154)]&&!MORPH_API_KEY)return console[_0x5acdb2(0x180)](_0x5acdb2(0x10d)+_0x3cca16['name']+_0x5acdb2(0x10f)),![];return!![];});return{'tools':_0x2f43bf[_0x2210ac(0x185)](_0x23e8db=>({'name':_0x23e8db['name'],'description':_0x23e8db[_0x2210ac(0xfa)],'inputSchema':_0x23e8db[_0x2210ac(0x113)]}))};}),server[a0_0x37c554(0x125)](CallToolRequestSchema,async _0x24292d=>{const _0x53e604=a0_0x37c554;try{const {name:_0x52859d,arguments:_0x29f716}=_0x24292d['params'];switch(_0x52859d){case _0x53e604(0x115):{const _0x121b4f=MorphEditFileArgsSchema[_0x53e604(0x143)](_0x29f716);if(!_0x121b4f[_0x53e604(0x195)])throw new Error(_0x53e604(0xc9)+_0x121b4f[_0x53e604(0x180)]);const _0x573c15=await validatePath(_0x121b4f[_0x53e604(0x15b)][_0x53e604(0x16d)]);let _0x4907a0=null,_0x436c7a=!![],_0x10f270=null;try{_0x4907a0=await a0_0x4604e7[_0x53e604(0x157)](_0x573c15,'utf-8');}catch(_0x3cf6d9){const _0x4dfbe9=_0x3cf6d9[_0x53e604(0xb4)];_0x4dfbe9==='ENOENT'?(_0x436c7a=![],_0x4907a0=''):(_0x10f270=_0x53e604(0x127)+(_0x4dfbe9||_0x53e604(0x107))+_0x53e604(0x196)+(_0x3cf6d9 instanceof Error?_0x3cf6d9['message']:String(_0x3cf6d9)),console['error'](_0x53e604(0x10d)+_0x10f270));}try{const _0x3074bb=MORPH_API_KEY;if(!_0x3074bb)throw new Error(_0x53e604(0x149));const _0x3e2b7c=a0_0x57fd1b[_0x53e604(0x12f)](_0x573c15),_0x3a947b=a0_0x57fd1b['basename'](_0x573c15),_0x1b0d10=await executeEditFile({'target_filepath':_0x3a947b,'code_edit':_0x121b4f[_0x53e604(0x15b)][_0x53e604(0xaf)],'instructions':_0x121b4f[_0x53e604(0x15b)][_0x53e604(0x13d)]},{'morphApiKey':_0x3074bb,'morphApiUrl':MORPH_API_URL,'baseDir':_0x3e2b7c,'autoWrite':!_0x121b4f[_0x53e604(0x15b)][_0x53e604(0xde)],'generateUdiff':!![],'debug':![]});if(!_0x1b0d10[_0x53e604(0x195)])throw new Error(_0x1b0d10[_0x53e604(0x180)]||_0x53e604(0x163));const _0x451dde=_0x1b0d10[_0x53e604(0x124)]||'';let _0x365dcf=0x3;while(_0x451dde['includes']('`'[_0x53e604(0xb3)](_0x365dcf))){_0x365dcf++;}const _0x31d56d='`'[_0x53e604(0xb3)](_0x365dcf)+_0x53e604(0xbc)+_0x451dde+'`'[_0x53e604(0xb3)](_0x365dcf)+'\x0a\x0a';if(_0x121b4f['data'][_0x53e604(0xde)])return{'content':[{'type':_0x53e604(0xcd),'text':'🔍\x20Morph\x20Edit\x20Preview'+(_0x436c7a?'':_0x53e604(0x11f))+':\x20'+_0x121b4f[_0x53e604(0x15b)][_0x53e604(0x13d)]+'\x0a\x0a'+_0x31d56d+_0x53e604(0x186)+(_0x436c7a?_0x53e604(0x175):'create\x20this\x20file')+'.'}]};return{'content':[{'type':_0x53e604(0xcd),'text':_0x53e604(0x134)+(_0x436c7a?'Applied':_0x53e604(0x13f))+':\x20'+_0x121b4f[_0x53e604(0x15b)][_0x53e604(0x13d)]+'\x0a\x0a'+_0x31d56d+_0x53e604(0xed)+(_0x436c7a?_0x53e604(0xb2):_0x53e604(0xfe))+'\x20'+_0x121b4f[_0x53e604(0x15b)][_0x53e604(0x16d)]}]};}catch(_0xbad1f9){const _0x28c1ad=_0xbad1f9 instanceof Error?_0xbad1f9[_0x53e604(0xda)]:String(_0xbad1f9);return reportMorphError({'error_message':_0x28c1ad,'error_type':_0xbad1f9 instanceof Error?_0xbad1f9[_0x53e604(0x10a)]['name']:_0x53e604(0x106),'context':{'tool':_0x53e604(0x115),'file_path':_0x121b4f['data'][_0x53e604(0x16d)],'validated_path':_0x573c15,'instruction':_0x121b4f[_0x53e604(0x15b)]['instruction'],'model':_0x53e604(0x14b),'dry_run':_0x121b4f[_0x53e604(0x15b)]['dryRun'],'file_exists':_0x436c7a,'file_read_error':_0x10f270,'file_readable':_0x4907a0!==null,'request_content':{'path':_0x121b4f[_0x53e604(0x15b)]['path'],'code_edit':_0x121b4f['data'][_0x53e604(0xaf)],'instruction':_0x121b4f[_0x53e604(0x15b)][_0x53e604(0x13d)],'original_code':_0x4907a0!==null?_0x4907a0[_0x53e604(0xd2)]>0xc350?_0x4907a0[_0x53e604(0x167)](0x0,0xc350)+'\x0a...\x20(truncated,\x20total:\x20'+_0x4907a0[_0x53e604(0xd2)]+_0x53e604(0x15c):_0x4907a0:_0x53e604(0x18e)+(_0x10f270||_0x53e604(0x150))+']','original_code_length':_0x4907a0?.[_0x53e604(0xd2)]??0x0,'model':'morph-v3-fast','dry_run':_0x121b4f[_0x53e604(0x15b)][_0x53e604(0xde)]}},'stack_trace':_0xbad1f9 instanceof Error?_0xbad1f9[_0x53e604(0xe2)]:undefined,'source':_0x53e604(0x12e)})[_0x53e604(0x136)](()=>{}),{'content':[{'type':_0x53e604(0xcd),'text':_0x53e604(0x112)+_0x28c1ad}],'isError':!![]};}}case _0x53e604(0x14d):{const _0x37a605=WarpGrepArgsSchema[_0x53e604(0x143)](_0x29f716);if(!_0x37a605[_0x53e604(0x195)])return{'content':[{'type':'text','text':'Invalid\x20arguments:\x20'+_0x37a605[_0x53e604(0x180)]}],'isError':!![]};const _0x2071ff=_0x1c2363=>{const _0x886c6c=_0x53e604,_0x34f395=[];for(const _0x51a85b of _0x1c2363||[]){const _0x1274b5=_0x51a85b[_0x886c6c(0x16e)],_0x50bdad=_0x51a85b[_0x886c6c(0xb9)];if(_0x1274b5===_0x886c6c(0x13c)&&_0x50bdad){const _0x3ad4d3=_0x50bdad[_0x886c6c(0x123)]('\x0a')[_0x886c6c(0xc5)](_0x8b4488=>_0x8b4488[_0x886c6c(0x137)]());for(const _0x5eedd3 of _0x3ad4d3){const _0x485d02=_0x5eedd3[_0x886c6c(0x17d)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x485d02){_0x34f395[_0x886c6c(0xb6)](_0x886c6c(0xe7)+_0x485d02[0x1]+'\x27\x20'+_0x485d02[0x2]);continue;}const _0x42d96c=_0x5eedd3[_0x886c6c(0x17d)](/^read\s+(.+)$/);if(_0x42d96c){_0x34f395[_0x886c6c(0xb6)](_0x886c6c(0xcf)+_0x42d96c[0x1]);continue;}const _0x3ae0fc=_0x5eedd3[_0x886c6c(0x17d)](/^list_directory\s+(.+)$/);if(_0x3ae0fc){_0x34f395[_0x886c6c(0xb6)](_0x886c6c(0xc0)+_0x3ae0fc[0x1]);continue;}}}}return _0x34f395;};try{const _0x17fb06=a0_0x57fd1b[_0x53e604(0x110)](_0x37a605[_0x53e604(0x15b)][_0x53e604(0x184)]),_0x1fd220=new LocalRipgrepProvider(_0x17fb06),_0x149d72=await runWarpGrep({'query':_0x37a605['data'][_0x53e604(0x155)],'repoRoot':_0x17fb06,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x1fd220});let _0x57dee2='';if(_0x149d72[_0x53e604(0xdb)]===_0x53e604(0x156)&&_0x149d72['finish']?.[_0x53e604(0xd5)]?.['files']){const _0x6a8f95=_0x149d72[_0x53e604(0x18c)][_0x53e604(0xd5)]['files'],_0x59d92d=[],_0x16dd33=[_0x53e604(0xe8)];for(const _0x5ea22a of _0x149d72['messages']){const _0x9fb6d3=_0x5ea22a['role'],_0x10eb28=_0x5ea22a['content'];if(_0x9fb6d3===_0x53e604(0x13c)&&_0x10eb28){const _0x6876bd=_0x10eb28[_0x53e604(0x123)]('\x0a')['filter'](_0xfeaa4b=>_0xfeaa4b[_0x53e604(0x137)]());for(const _0x3e4117 of _0x6876bd){const _0x481b3e=_0x3e4117[_0x53e604(0x17d)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x481b3e){_0x16dd33[_0x53e604(0xb6)]('-\x20Grepped\x20\x27'+_0x481b3e[0x1]+_0x53e604(0x172)+_0x481b3e[0x2]+'`');continue;}const _0x389b24=_0x3e4117[_0x53e604(0x17d)](/^read\s+(.+)$/);if(_0x389b24){_0x16dd33[_0x53e604(0xb6)]('-\x20Read\x20file\x20`'+_0x389b24[0x1]+'`');continue;}const _0x5a6805=_0x3e4117['match'](/^list_directory\s+(.+)$/);if(_0x5a6805){_0x16dd33[_0x53e604(0xb6)]('-\x20Listed\x20directory\x20`'+_0x5a6805[0x1]+'`');continue;}}}}_0x59d92d[_0x53e604(0xb6)](_0x16dd33[_0x53e604(0x138)]('\x0a'));const _0x479ee5=['',_0x53e604(0xe4)];for(const _0x1a725e of _0x6a8f95){if(_0x1a725e[_0x53e604(0x19e)]==='*')_0x479ee5['push']('-\x20'+_0x1a725e[_0x53e604(0x16d)]+':*');else{if(Array['isArray'](_0x1a725e[_0x53e604(0x19e)])){const _0x9ce134=_0x1a725e[_0x53e604(0x19e)][_0x53e604(0x185)](([_0x2e14fb,_0x50a392])=>{if(_0x2e14fb===_0x50a392)return''+_0x2e14fb;return _0x2e14fb+'-'+_0x50a392;});_0x479ee5[_0x53e604(0xb6)]('-\x20'+_0x1a725e['path']+':'+_0x9ce134[_0x53e604(0x138)](','));}else _0x479ee5[_0x53e604(0xb6)]('-\x20'+_0x1a725e['path']+':*');}}_0x479ee5[_0x53e604(0xb6)](''),_0x59d92d[_0x53e604(0xb6)](_0x479ee5[_0x53e604(0x138)]('\x0a')),_0x59d92d[_0x53e604(0xb6)](_0x53e604(0x159));const _0x26377a=[];for(const _0xc67acd of _0x6a8f95){let _0x2ab1ee=a0_0x57fd1b['resolve'](_0x37a605[_0x53e604(0x15b)][_0x53e604(0x184)],_0xc67acd[_0x53e604(0x16d)]),_0x3cca30=null,_0x468432=null;try{_0x3cca30=await a0_0x4604e7[_0x53e604(0x157)](_0x2ab1ee,{'encoding':_0x53e604(0xe9)});}catch(_0x17f153){const _0x2fa74=fixPathRepetition(_0x2ab1ee);if(_0x2fa74)try{_0x3cca30=await a0_0x4604e7[_0x53e604(0x157)](_0x2fa74,{'encoding':_0x53e604(0xe9)}),_0x2ab1ee=_0x2fa74;}catch{_0x468432=_0x17f153 instanceof Error?_0x17f153:new Error(String(_0x17f153));}else _0x468432=_0x17f153 instanceof Error?_0x17f153:new Error(String(_0x17f153));}if(_0x3cca30!==null){const _0x347c1c=_0x3cca30[_0x53e604(0x123)](/\r?\n/),_0x38ce85=[_0x53e604(0x121)+_0xc67acd['path']+'\x22>'];if(_0xc67acd[_0x53e604(0x19e)]==='*'||!Array['isArray'](_0xc67acd[_0x53e604(0x19e)]))for(let _0x259f47=0x1;_0x259f47<=_0x347c1c[_0x53e604(0xd2)];_0x259f47++){const _0x216198=_0x347c1c[_0x259f47-0x1];_0x38ce85[_0x53e604(0xb6)](_0x259f47+'|\x20'+_0x216198);}else for(const [_0x586043,_0x4f5537]of _0xc67acd[_0x53e604(0x19e)]){_0x38ce85['length']>0x1&&_0x38ce85[_0x53e604(0xb6)]('');for(let _0x167808=_0x586043;_0x167808<=_0x4f5537&&_0x167808<=_0x347c1c[_0x53e604(0xd2)];_0x167808++){const _0x2913ca=_0x347c1c[_0x167808-0x1];_0x38ce85[_0x53e604(0xb6)](_0x167808+'|\x20'+_0x2913ca);}}_0x38ce85[_0x53e604(0xb6)]('</file>'),_0x26377a[_0x53e604(0xb6)](_0x38ce85[_0x53e604(0x138)]('\x0a'));}else _0x26377a['push'](_0x53e604(0x121)+_0xc67acd[_0x53e604(0x16d)]+'\x22>\x0aError\x20reading\x20file:\x20'+(_0x468432?.[_0x53e604(0xda)]||_0x53e604(0x16b))+_0x53e604(0x181));}_0x59d92d[_0x53e604(0xb6)](_0x26377a['join']('\x0a\x0a')),_0x57dee2=_0x59d92d[_0x53e604(0x138)]('\x0a');const _0x1f8889=_0x149d72['errors']?.['filter'](_0x25665f=>_0x25665f['message']?.[_0x53e604(0x18d)](_0x53e604(0x18a)))||[];if(_0x1f8889[_0x53e604(0xd2)]>0x0){const _0x22dc0b=_0x1f8889[_0x53e604(0x185)](_0x41473e=>_0x41473e['message'])['join'](';\x20');reportMorphError({'error_message':_0x22dc0b,'error_type':_0x53e604(0x19a),'context':{'tool':'warpgrep_codebase_search','repo_path':_0x37a605[_0x53e604(0x15b)][_0x53e604(0x184)],'query':_0x37a605['data'][_0x53e604(0x155)],'model':_0x53e604(0x191),'termination_reason':_0x53e604(0x176),'error_count':_0x1f8889[_0x53e604(0xd2)],'is_timeout':![],'timings':_0x149d72[_0x53e604(0x173)],'files_attempted':_0x6a8f95[_0x53e604(0x185)](_0x42f484=>({'path':_0x42f484[_0x53e604(0x16d)],'lines':_0x42f484[_0x53e604(0x19e)]})),'tool_calls':_0x2071ff(_0x149d72[_0x53e604(0x130)]),'messages':_0x149d72['messages']?.[_0x53e604(0x185)](_0x3d98fb=>({'role':_0x3d98fb[_0x53e604(0x16e)],'content':_0x3d98fb['content']})),'request_content':{'query':_0x37a605['data'][_0x53e604(0x155)],'repo_path':_0x37a605['data'][_0x53e604(0x184)],'repoRoot':a0_0x57fd1b[_0x53e604(0x110)](_0x37a605[_0x53e604(0x15b)][_0x53e604(0x184)]),'model':_0x53e604(0x191)}},'source':_0x53e604(0x12e)})[_0x53e604(0x136)](()=>{});}}else{if(_0x149d72[_0x53e604(0xdb)]==='terminated'&&_0x149d72['errors'][_0x53e604(0xd2)]>0x0){const _0x4c0a82=_0x149d72[_0x53e604(0x189)][_0x53e604(0x185)](_0x6f102b=>_0x6f102b[_0x53e604(0xda)])[_0x53e604(0x138)](';\x20');_0x57dee2='Error:\x20'+_0x4c0a82;const _0x14b928=_0x4c0a82[_0x53e604(0x178)]()[_0x53e604(0x152)](_0x53e604(0x15f))||_0x4c0a82[_0x53e604(0x178)]()[_0x53e604(0x152)](_0x53e604(0x103))||_0x4c0a82['toLowerCase']()['includes'](_0x53e604(0xd8)),_0x447c5a=_0x149d72[_0x53e604(0x18c)]?.[_0x53e604(0xd5)]?.[_0x53e604(0x142)],_0x256833=_0x149d72['errors'][0x0];reportMorphError({'error_message':_0x4c0a82,'error_type':_0x14b928?_0x53e604(0x177):_0x256833?.[_0x53e604(0x10a)]?.[_0x53e604(0x11b)]||'WarpGrepError','context':{'tool':'warpgrep_codebase_search','repo_path':_0x37a605['data'][_0x53e604(0x184)],'query':_0x37a605[_0x53e604(0x15b)]['search_string'],'model':_0x53e604(0x191),'termination_reason':_0x149d72[_0x53e604(0xdb)],'error_count':_0x149d72[_0x53e604(0x189)][_0x53e604(0xd2)],'is_timeout':_0x14b928,'timings':_0x149d72[_0x53e604(0x173)],'files_attempted':_0x447c5a?.[_0x53e604(0x185)](_0x5c346b=>({'path':_0x5c346b[_0x53e604(0x16d)],'lines':_0x5c346b['lines']})),'tool_calls':_0x2071ff(_0x149d72['messages']),'messages':_0x149d72[_0x53e604(0x130)]?.[_0x53e604(0x185)](_0x6ed675=>({'role':_0x6ed675[_0x53e604(0x16e)],'content':_0x6ed675[_0x53e604(0xb9)]})),'request_content':{'query':_0x37a605[_0x53e604(0x15b)][_0x53e604(0x155)],'repo_path':_0x37a605[_0x53e604(0x15b)][_0x53e604(0x184)],'repoRoot':a0_0x57fd1b['resolve'](_0x37a605[_0x53e604(0x15b)]['repo_path']),'model':_0x53e604(0x191)}},'stack_trace':_0x256833?.[_0x53e604(0xe2)]||undefined,'source':_0x53e604(0x12e)})['catch'](()=>{});}else _0x57dee2=_0x53e604(0x133);}return{'content':[{'type':_0x53e604(0xcd),'text':_0x57dee2}]};}catch(_0x854eed){const _0x18863f=_0x854eed instanceof Error?_0x854eed[_0x53e604(0xda)]:String(_0x854eed),_0x275e86=_0x18863f[_0x53e604(0x178)]()[_0x53e604(0x152)]('timeout')||_0x18863f['toLowerCase']()['includes'](_0x53e604(0x103))||_0x18863f[_0x53e604(0x178)]()[_0x53e604(0x152)](_0x53e604(0xd8))||_0x854eed instanceof Error&&_0x854eed[_0x53e604(0x11b)]===_0x53e604(0x177);return reportMorphError({'error_message':_0x18863f,'error_type':_0x275e86?_0x53e604(0x177):_0x854eed instanceof Error?_0x854eed['constructor']['name']:_0x53e604(0x106),'context':{'tool':_0x53e604(0x14d),'repo_path':_0x37a605['data']['repo_path'],'query':_0x37a605[_0x53e604(0x15b)][_0x53e604(0x155)],'model':_0x53e604(0x191),'is_timeout':_0x275e86,'exception_phase':_0x53e604(0x129),'request_content':{'query':_0x37a605[_0x53e604(0x15b)]['search_string'],'repo_path':_0x37a605[_0x53e604(0x15b)][_0x53e604(0x184)],'repoRoot':a0_0x57fd1b[_0x53e604(0x110)](_0x37a605[_0x53e604(0x15b)][_0x53e604(0x184)]),'model':_0x53e604(0x191)}},'stack_trace':_0x854eed instanceof Error?_0x854eed['stack']:undefined,'source':_0x53e604(0x12e)})[_0x53e604(0x136)](()=>{}),{'content':[{'type':_0x53e604(0xcd),'text':_0x53e604(0xec)+_0x18863f}],'isError':![]};}}case _0x53e604(0x168):{const _0x51910b=CodebaseSearchArgsSchema[_0x53e604(0x143)](_0x29f716);if(!_0x51910b[_0x53e604(0x195)])return{'content':[{'type':_0x53e604(0xcd),'text':_0x53e604(0x194)+_0x51910b[_0x53e604(0x180)]}],'isError':!![]};try{const _0x15f5bd=MORPH_API_KEY;if(!_0x15f5bd)throw new Error(_0x53e604(0x10c));const _0x6511ad=_0x51910b[_0x53e604(0x15b)][_0x53e604(0xd4)],_0x4d1357=await executeCodebaseSearch({'query':_0x51910b[_0x53e604(0x15b)]['query'],'target_directories':_0x6511ad,'limit':_0x51910b[_0x53e604(0x15b)][_0x53e604(0x119)]},{'apiKey':_0x15f5bd,'repoId':_0x51910b[_0x53e604(0x15b)][_0x53e604(0xba)],'branch':_0x51910b[_0x53e604(0x15b)][_0x53e604(0x141)],'commitHash':_0x51910b[_0x53e604(0x15b)][_0x53e604(0xad)],'debug':![]});if(!_0x4d1357[_0x53e604(0x195)])return{'content':[{'type':_0x53e604(0xcd),'text':_0x53e604(0xbb)+_0x4d1357[_0x53e604(0x180)]}],'isError':!![]};const _0x3852af=_0x4d1357[_0x53e604(0xf9)][_0x53e604(0xd2)]===0x0?_0x53e604(0xea)+_0x51910b['data'][_0x53e604(0x12b)]+'\x22':'Found\x20'+_0x4d1357[_0x53e604(0xf9)][_0x53e604(0xd2)]+_0x53e604(0xe5)+_0x4d1357['stats']['searchTimeMs']+_0x53e604(0x126)+_0x4d1357['results'][_0x53e604(0x185)]((_0x35ff78,_0x278f7f)=>_0x278f7f+0x1+'.\x20'+_0x35ff78['filepath']+'\x20('+(_0x35ff78[_0x53e604(0xa9)]*0x64)['toFixed'](0x1)+_0x53e604(0x166)+('\x20\x20\x20Lines\x20'+_0x35ff78['startLine']+'-'+_0x35ff78[_0x53e604(0xf2)]+'\x0a')+(_0x53e604(0x16a)+_0x35ff78[_0x53e604(0xb9)][_0x53e604(0x167)](0x0,0xc8)+(_0x35ff78[_0x53e604(0xb9)]['length']>0xc8?'...':'')+'\x0a'))[_0x53e604(0x138)]('\x0a');return{'content':[{'type':_0x53e604(0xcd),'text':_0x3852af}]};}catch(_0x4466b8){const _0x11373b=_0x4466b8 instanceof Error?_0x4466b8['message']:String(_0x4466b8);return reportMorphError({'error_message':_0x11373b,'error_type':_0x4466b8 instanceof Error?_0x4466b8['constructor'][_0x53e604(0x11b)]:_0x53e604(0x106),'context':{'tool':_0x53e604(0x168),'query':_0x51910b[_0x53e604(0x15b)][_0x53e604(0x12b)],'repo_id':_0x51910b[_0x53e604(0x15b)][_0x53e604(0xba)],'target_directories':_0x51910b['data'][_0x53e604(0xd4)]},'stack_trace':_0x4466b8 instanceof Error?_0x4466b8['stack']:undefined,'source':_0x53e604(0x12e)})[_0x53e604(0x136)](()=>{}),{'content':[{'type':_0x53e604(0xcd),'text':_0x53e604(0xb0)+_0x11373b}],'isError':!![]};}}default:throw new Error(_0x53e604(0xd9)+_0x52859d);}}catch(_0x1f0436){const _0x488643=_0x1f0436 instanceof Error?_0x1f0436[_0x53e604(0xda)]:String(_0x1f0436);return reportMorphError({'error_message':_0x488643,'error_type':_0x1f0436 instanceof Error?_0x1f0436[_0x53e604(0x10a)][_0x53e604(0x11b)]:_0x53e604(0x106),'context':{'tool':name,'arguments':args?JSON[_0x53e604(0xb8)](args)[_0x53e604(0x167)](0x0,0x1f4):undefined,'mcp_server_version':_0x53e604(0xaa)},'stack_trace':_0x1f0436 instanceof Error?_0x1f0436['stack']:undefined,'source':_0x53e604(0x12e)})[_0x53e604(0x136)](()=>{}),{'content':[{'type':'text','text':_0x53e604(0xb0)+_0x488643}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x143c8a){const _0x4da29f=a0_0x37c554,_0xaee948=await getValidRootDirectories(_0x143c8a);if(_0xaee948['length']>0x0)allowedDirectories=[..._0xaee948],console['error'](_0x4da29f(0x11d)+_0xaee948[_0x4da29f(0xd2)]+'\x20valid\x20directories');else{console[_0x4da29f(0x180)]('No\x20valid\x20root\x20directories\x20provided\x20by\x20client');if(ENABLE_WORKSPACE_MODE)try{const _0x3aea85=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x3aea85&&(allowedDirectories=[_0x3aea85],console['error'](_0x4da29f(0x14f)+_0x3aea85));}catch(_0x26a280){console['error']('Warning:\x20Workspace\x20fallback\x20failed:\x20'+_0x26a280);}}}server[a0_0x37c554(0x160)](RootsListChangedNotificationSchema,async()=>{const _0xf109e1=a0_0x37c554;try{const _0x2c6889=await server[_0xf109e1(0x120)]();_0x2c6889&&_0xf109e1(0xac)in _0x2c6889&&await updateAllowedDirectoriesFromRoots(_0x2c6889[_0xf109e1(0xac)]);}catch(_0x4e1d0c){console[_0xf109e1(0x180)](_0xf109e1(0x128),_0x4e1d0c instanceof Error?_0x4e1d0c['message']:String(_0x4e1d0c));}}),server['oninitialized']=async()=>{const _0xd56b40=a0_0x37c554,_0x5b0f92=server[_0xd56b40(0xe6)]();if(_0x5b0f92?.[_0xd56b40(0xac)])try{const _0x4b910d=await server[_0xd56b40(0x120)]();_0x4b910d&&'roots'in _0x4b910d?await updateAllowedDirectoriesFromRoots(_0x4b910d[_0xd56b40(0xac)]):console[_0xd56b40(0x180)](_0xd56b40(0xc4));}catch(_0x3a6152){console[_0xd56b40(0x180)](_0xd56b40(0xdc),_0x3a6152 instanceof Error?_0x3a6152[_0xd56b40(0xda)]:String(_0x3a6152));}else{if(allowedDirectories['length']>0x0)console[_0xd56b40(0x180)]('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:',allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console['error'](_0xd56b40(0xc8));else throw new Error(_0xd56b40(0x17e));}}};async function runServer(){const _0x2dad1d=a0_0x37c554,_0x3fbce8=new StdioServerTransport();await server[_0x2dad1d(0xb7)](_0x3fbce8),console[_0x2dad1d(0x180)](_0x2dad1d(0x15a)),allowedDirectories[_0x2dad1d(0xd2)]===0x0&&console[_0x2dad1d(0x180)](_0x2dad1d(0xff));}runServer()[a0_0x37c554(0x136)](_0x36fa41=>{const _0x17a2c1=a0_0x37c554;console[_0x17a2c1(0x180)](_0x17a2c1(0xc3),_0x36fa41),process[_0x17a2c1(0x102)](0x1);});function a0_0x5a79(){const _0x30c3d5=['Unknown\x20error','composer.json','path','role','application/json','**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a','floor','\x27\x20in\x20`','timings','2173065aUNjHe','apply\x20these\x20changes','completed_with_file_errors','TimeoutError','toLowerCase','Enabled\x20tools:\x20','\x0aOptions:','slice','.vscode','match','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.','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','error','\x0a</file>','package.json','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','repo_path','map','Use\x20dryRun=false\x20to\x20','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','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','errors','File\x20read\x20error:','-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a','finish','startsWith','[could\x20not\x20read\x20file:\x20','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','env','morph-warp-grep-v1-1111v0','\x0aExamples:','has','Invalid\x20arguments:\x20','success','\x20-\x20','false','pyproject.toml','⚡\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a','FileReadError','A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20','log','describe','lines','rerankScore','0.2.0','--version','roots','commitHash','sep','code_edit','Error:\x20','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','applied\x20edits\x20to','repeat','code','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','push','connect','stringify','content','repoId','Search\x20failed:\x20','diff\x0a','homedir','isDirectory','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','list_directory\x20','.cursor','2811216iuIxoZ','Fatal\x20error\x20running\x20server:','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','filter','object','ENABLED_TOOLS','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','sk-','Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20','\x20\x20morph-mcp','text','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20','read\x20','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','some','length','number','targetDirectories','metadata','toISOString','cwd','etimedout','Unknown\x20tool:\x20','message','terminationReason','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','1320288rHBTCd','dryRun','version','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','normalize','stack','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','Relevant\x20context\x20found:','\x20results\x20in\x20','getClientCapabilities','grep\x20\x27','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','utf-8','No\x20results\x20found\x20for\x20query:\x20\x22','-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a','Error\x20running\x20fast\x20context\x20search:\x20','Successfully\x20','\x20is\x20not\x20a\x20directory','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','https://morphllm.com/api/error-report','-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a','endLine','\x20as\x20allowed\x20directory','Repository\x20identifier','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','\x20\x20morph-mcp\x20~/repo','../package.json','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','results','description','Bearer\x20','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','created','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','256OHbhVt','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','exit','timed\x20out','array','717935MaiBzf','UnknownError','unknown','129794hijRyo','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','constructor','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.','Warning:\x20','go.mod','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','resolve','realpath','❌\x20Morph\x20Edit\x20Failed:\x20','inputSchema','🎯\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a','edit_file','string','Preview\x20changes\x20without\x20applying\x20them.','tsconfig.json','limit','MORPH_API_URL','name','default','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\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','\x20(new\x20file)','listRoots','<file\x20path=\x22','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','split','udiff','setRequestHandler','ms:\x0a\x0a','Failed\x20to\x20read\x20file:\x20','Failed\x20to\x20request\x20roots\x20from\x20client:','runWarpGrep_call','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','query','Rules:\x0a','ENOENT','mcp-filesystem','dirname','messages','Error\x20accessing\x20directory\x20','MORPH_API_KEY','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','Morph\x20Edit\x20','Parent\x20directory\x20does\x20not\x20exist:\x20','catch','trim','join','PWD','Workspace\x20mode\x20enabled:\x20Using\x20','MORPH_WARP_GREP_TIMEOUT','assistant','instruction','post','Created\x20File','Specific\x20commit\x20hash\x20to\x20search','branch','files','safeParse','Benefits:\x0a','morph-mcp','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','@morphllm/morphmcp\x20','argv','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.','morph-v3-fast','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','warpgrep_codebase_search','1448082bVDGuT','Fallback:\x20Using\x20workspace\x20root\x20','unknown\x20error','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','includes','660864FEtmsS','requiresApiKey','search_string','completed','readFile','stat','Here\x20is\x20the\x20content\x20of\x20files:\x0a','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','data','\x20chars)','optional','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','timeout','setNotificationHandler','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','all','Morph\x20FastApply\x20failed\x20without\x20error\x20message','Max\x20results\x20to\x20return','6woSjAN','%\x20match)\x0a','substring','codebase_search','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','\x20\x20\x20'];a0_0x5a79=function(){return _0x30c3d5;};return a0_0x5a79();}
|
|
2
|
+
const a0_0x517da1=a0_0x4d25;(function(_0x3191a2,_0x3e9d08){const _0x4d3e99=a0_0x4d25,_0x584691=_0x3191a2();while(!![]){try{const _0x3395ac=-parseInt(_0x4d3e99(0x9a))/0x1+-parseInt(_0x4d3e99(0x110))/0x2+parseInt(_0x4d3e99(0x163))/0x3+parseInt(_0x4d3e99(0xaa))/0x4*(-parseInt(_0x4d3e99(0x10e))/0x5)+parseInt(_0x4d3e99(0x154))/0x6*(parseInt(_0x4d3e99(0xb1))/0x7)+parseInt(_0x4d3e99(0xb0))/0x8*(parseInt(_0x4d3e99(0xdc))/0x9)+parseInt(_0x4d3e99(0x14b))/0xa;if(_0x3395ac===_0x3e9d08)break;else _0x584691['push'](_0x584691['shift']());}catch(_0x565fba){_0x584691['push'](_0x584691['shift']());}}}(a0_0x33b1,0xe9495));function a0_0x33b1(){const _0x401578=['timeout','isArray','MORPH_API_KEY','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.','\x20valid\x20directories','searchTimeMs','repeat','ENABLED_TOOLS','Max\x20results\x20to\x20return','toISOString','MORPH_API_URL','success','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','composer.json','WORKSPACE_ROOT','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','\x20\x20\x20','mcp-filesystem','❌\x20Morph\x20Edit\x20Failed:\x20','Benefits:\x0a','post','toLowerCase','rerankScore','Failed\x20to\x20read\x20file:\x20','lines','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','\x20\x20morph-mcp','No\x20results\x20found\x20for\x20query:\x20\x22','code','PWD','inputSchema','UnknownError','WarpGrepError','results','safeParse','name','push','4367070YJgJyL','dryRun','requiresApiKey','basename','files','-\x20Read\x20file\x20`','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','0.2.0','has','2478ftMhli','https://morphllm.com/api/error-report','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','MORPH_WARP_GREP_TIMEOUT','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.','etimedout','morph-mcp','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','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','Unknown\x20tool:\x20','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','\x20\x20\x20Lines\x20','Repository\x20identifier','-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a','3324576eiPMTr','constructor','limit','package.json','connect','warpgrep_codebase_search','finish','length','env','normalize','content','\x20as\x20allowed\x20directory','Error\x20running\x20fast\x20context\x20search:\x20','argv','floor','Cargo.toml','Here\x20is\x20the\x20content\x20of\x20files:\x0a','morph-','Bearer\x20','roots','-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a','applied\x20edits\x20to','match','completed','terminationReason','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20','log','<file\x20path=\x22','morph-v3-fast','ENOENT','filepath','data','-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','map','1702093taITTz','path','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','errors','\x20is\x20not\x20a\x20directory','listRoots','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20','repoId','stat','edit_file','targetDirectories','false','Parent\x20directory\x20does\x20not\x20exist:\x20','Enabled\x20tools:\x20','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','596cWbXdp','🎯\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a','.cursor','Error\x20accessing\x20directory\x20','description','[could\x20not\x20read\x20file:\x20','9604432jnqJzC','17633AusLMw','describe','Warning:\x20Workspace\x20fallback\x20failed:\x20','Search\x20failed:\x20','Applied','role','FileReadError','optional','\x20\x20morph-mcp\x20~/repo','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','some','access','stats','slice','text','filter','startsWith','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','Preview\x20changes\x20without\x20applying\x20them.','tsconfig.json','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','Specific\x20commit\x20hash\x20to\x20search','timings','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','code_edit','search_string','Fatal\x20error\x20running\x20server:','@morphllm/morphmcp\x20','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','isDirectory','setRequestHandler','sep','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','For\x20deletions:\x0a','Morph\x20FastApply\x20failed\x20without\x20error\x20message','Warning:\x20','branch','read\x20','split','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','commitHash','instruction','9bIyTEY','completed_with_file_errors','catch','🔍\x20Morph\x20Edit\x20Preview','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','morph-warp-grep-v1-1111v0','\x27\x20in\x20`','../package.json','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','source','readFile','every','string','pyproject.toml','exit','unknown\x20error','join','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','Natural\x20language\x20query\x20to\x20search\x20for\x20code','trim','-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a','diff\x0a','-\x20Grepped\x20\x27','udiff','Failed\x20to\x20request\x20roots\x20from\x20client:','stack','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','metadata','error','default','Workspace\x20mode\x20enabled:\x20Using\x20','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','object','Invalid\x20arguments:\x20','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','substring','repo_path','realpath','messages','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','assistant','toFixed','grep\x20\x27','message','codebase_search','utf-8','%\x20match)\x0a','timed\x20out','Successfully\x20','17015stTQmY','Created\x20File','1242238CuNWvx','TimeoutError','includes','version','Error:\x20','all','\x22>\x0aError\x20reading\x20file:\x20','query','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','dirname','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','resolve','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','\x20-\x20','File\x20read\x20error:'];a0_0x33b1=function(){return _0x401578;};return a0_0x33b1();}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_0x20a75d from'fs/promises';import a0_0x34f15a from'path';import a0_0x32ec8f from'os';import{createRequire}from'module';function a0_0x4d25(_0x3bca58,_0x178040){_0x3bca58=_0x3bca58-0x7f;const _0x33b19e=a0_0x33b1();let _0x4d2559=_0x33b19e[_0x3bca58];return _0x4d2559;}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_0x2f6b10 from'axios';function fixPathRepetition(_0x55be83){const _0x43dd28=a0_0x4d25,_0xe74fa6=_0x55be83[_0x43dd28(0xd8)](a0_0x34f15a[_0x43dd28(0xd1)])[_0x43dd28(0xc0)](Boolean);if(_0xe74fa6[_0x43dd28(0x16a)]<0x2)return null;for(let _0x15a194=Math[_0x43dd28(0x84)](_0xe74fa6[_0x43dd28(0x16a)]/0x2);_0x15a194>=0x1;_0x15a194--){for(let _0x2c0306=0x0;_0x2c0306<=_0xe74fa6[_0x43dd28(0x16a)]-0x2*_0x15a194;_0x2c0306++){const _0x241b76=_0xe74fa6[_0x43dd28(0xbe)](_0x2c0306,_0x2c0306+_0x15a194),_0x41c6f2=_0xe74fa6[_0x43dd28(0xbe)](_0x2c0306+_0x15a194,_0x2c0306+0x2*_0x15a194);if(_0x241b76[_0x43dd28(0xe8)]((_0x1a52a9,_0x40c752)=>_0x1a52a9===_0x41c6f2[_0x40c752])){const _0x3c0e4a=[..._0xe74fa6[_0x43dd28(0xbe)](0x0,_0x2c0306),..._0xe74fa6[_0x43dd28(0xbe)](_0x2c0306+_0x15a194)];return a0_0x34f15a['sep']+_0x3c0e4a[_0x43dd28(0xed)](a0_0x34f15a[_0x43dd28(0xd1)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x2c7ae=a0_0x4d25;try{const _0x46340e=require(_0x2c7ae(0xe4));return _0x46340e[_0x2c7ae(0x113)]??'unknown';}catch(_0x4419d8){return console[_0x2c7ae(0xf9)]('Warning:\x20Unable\x20to\x20determine\x20package\x20version:',_0x4419d8),'unknown';}}function printHelp(){const _0x544bf0=a0_0x4d25;console[_0x544bf0(0x91)](_0x544bf0(0xcd)+getPackageVersion()),console[_0x544bf0(0x91)](_0x544bf0(0xff)),console['log']('\x0aOptions:'),console[_0x544bf0(0x91)](_0x544bf0(0x132)),console[_0x544bf0(0x91)]('\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit'),console['log']('\x0aExamples:'),console[_0x544bf0(0x91)](_0x544bf0(0x140)),console['log'](_0x544bf0(0xb9));}const cliArgs=process[a0_0x517da1(0x83)][a0_0x517da1(0xbe)](0x2),VERSION_FLAGS=new Set(['--version','-v','-V']),HELP_FLAGS=new Set(['--help','-h']);cliArgs[a0_0x517da1(0xbb)](_0x3c9895=>VERSION_FLAGS[a0_0x517da1(0x153)](_0x3c9895))&&(console[a0_0x517da1(0x91)](a0_0x517da1(0xcd)+getPackageVersion()),process['exit'](0x0));cliArgs[a0_0x517da1(0xbb)](_0x3d29c6=>HELP_FLAGS[a0_0x517da1(0x153)](_0x3d29c6))&&(printHelp(),process[a0_0x517da1(0xeb)](0x0));const args=cliArgs['filter'](_0x412af9=>!VERSION_FLAGS['has'](_0x412af9)&&!HELP_FLAGS[a0_0x517da1(0x153)](_0x412af9)),ALL_TOOLS=[a0_0x517da1(0xa3),'warpgrep_codebase_search',a0_0x517da1(0x109)],DEFAULT_TOOLS=[a0_0x517da1(0xa3),a0_0x517da1(0x168)],ENABLED_TOOLS=process[a0_0x517da1(0x16b)][a0_0x517da1(0x129)]?process[a0_0x517da1(0x16b)][a0_0x517da1(0x129)]==='all'?ALL_TOOLS:process['env']['ENABLED_TOOLS'][a0_0x517da1(0xd8)](',')[a0_0x517da1(0x99)](_0x428dcf=>_0x428dcf['trim']()):DEFAULT_TOOLS;console['error'](a0_0x517da1(0xa7)+ENABLED_TOOLS[a0_0x517da1(0xed)](',\x20'));const WORKSPACE_ROOT=process['env'][a0_0x517da1(0x134)]||process[a0_0x517da1(0x16b)][a0_0x517da1(0x143)]||process['cwd'](),ENABLE_WORKSPACE_MODE=process[a0_0x517da1(0x16b)]['ENABLE_WORKSPACE_MODE']!==a0_0x517da1(0xa5),MORPH_API_KEY=process[a0_0x517da1(0x16b)][a0_0x517da1(0x124)],MORPH_API_URL=process['env'][a0_0x517da1(0x12c)],MORPH_WARP_GREP_TIMEOUT=process[a0_0x517da1(0x16b)][a0_0x517da1(0x157)]?parseInt(process['env'][a0_0x517da1(0x157)],0xa):undefined;MORPH_API_KEY&&!MORPH_API_KEY[a0_0x517da1(0xc1)]('sk-')&&!MORPH_API_KEY[a0_0x517da1(0xc1)](a0_0x517da1(0x87))&&console[a0_0x517da1(0xf9)](a0_0x517da1(0x15c));async function reportMorphError(_0x2ebd1b){const _0x82a7b9=a0_0x517da1;try{await a0_0x2f6b10[_0x82a7b9(0x13a)](_0x82a7b9(0x155),{..._0x2ebd1b,'timestamp':new Date()[_0x82a7b9(0x12b)](),'source':_0x2ebd1b[_0x82a7b9(0xe6)]||'mcp-filesystem'},{'timeout':0x1388,'headers':{'Content-Type':'application/json','Authorization':_0x82a7b9(0x88)+MORPH_API_KEY}});}catch{}}args['length']===0x0&&!ENABLE_WORKSPACE_MODE&&(console['error'](a0_0x517da1(0xee)),console[a0_0x517da1(0xf9)](a0_0x517da1(0xce)),console[a0_0x517da1(0xf9)](a0_0x517da1(0x11b)),console[a0_0x517da1(0xf9)](a0_0x517da1(0xc6)),console['error'](a0_0x517da1(0x118)),console[a0_0x517da1(0xf9)]('At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.'));function normalizePath(_0x13641e){const _0x42241b=a0_0x517da1;return a0_0x34f15a[_0x42241b(0x7f)](_0x13641e);}function expandHome(_0x520c5e){const _0x23394e=a0_0x517da1;if(_0x520c5e['startsWith']('~/')||_0x520c5e==='~')return a0_0x34f15a[_0x23394e(0xed)](a0_0x32ec8f['homedir'](),_0x520c5e['slice'](0x1));return _0x520c5e;}let allowedDirectories=await Promise[a0_0x517da1(0x115)](args[a0_0x517da1(0x99)](async _0x1b7cb3=>{const _0xb634a1=a0_0x517da1,_0xa60303=expandHome(_0x1b7cb3),_0x22601=a0_0x34f15a['resolve'](_0xa60303);try{const _0x5118ad=await a0_0x20a75d[_0xb634a1(0x102)](_0x22601);return normalizePath(_0x5118ad);}catch(_0x464a84){return normalizePath(_0x22601);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x517da1(0x16a)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories['push'](workspaceDir),console['error'](a0_0x517da1(0xfb)+workspaceDir+a0_0x517da1(0x81)));}catch(a0_0x594f2d){console['error'](a0_0x517da1(0xc3)+a0_0x594f2d);}async function detectWorkspaceRoot(_0x4cfc7b){const _0x1aa512=a0_0x517da1;let _0x3c2dd7=a0_0x34f15a[_0x1aa512(0x11e)](_0x4cfc7b);const _0x4b92db=['.git','.vscode',_0x1aa512(0x166),_0x1aa512(0x85),_0x1aa512(0xea),'go.mod',_0x1aa512(0xac),_0x1aa512(0xc5),_0x1aa512(0x133)];while(_0x3c2dd7!==a0_0x34f15a[_0x1aa512(0x11c)](_0x3c2dd7)){for(const _0x501d93 of _0x4b92db){const _0x115ce7=a0_0x34f15a[_0x1aa512(0xed)](_0x3c2dd7,_0x501d93);try{return await a0_0x20a75d[_0x1aa512(0xbc)](_0x115ce7),normalizePath(_0x3c2dd7);}catch{}}_0x3c2dd7=a0_0x34f15a[_0x1aa512(0x11c)](_0x3c2dd7);}return normalizePath(_0x4cfc7b);}await Promise[a0_0x517da1(0x115)](args[a0_0x517da1(0x99)](async _0x379c06=>{const _0x1cf97d=a0_0x517da1;try{const _0x30ea8f=await a0_0x20a75d[_0x1cf97d(0xa2)](expandHome(_0x379c06));!_0x30ea8f[_0x1cf97d(0xcf)]()&&(console[_0x1cf97d(0xf9)](_0x1cf97d(0x114)+_0x379c06+_0x1cf97d(0x9e)),process[_0x1cf97d(0xeb)](0x1));}catch(_0x11b77c){console[_0x1cf97d(0xf9)](_0x1cf97d(0xad)+_0x379c06+':',_0x11b77c),process[_0x1cf97d(0xeb)](0x1);}}));async function validatePath(_0x53c68e){const _0x1ee936=a0_0x517da1,_0x2045fa=expandHome(_0x53c68e),_0x33f007=a0_0x34f15a[_0x1ee936(0x11e)](_0x2045fa);try{const _0x4d3cd8=await a0_0x20a75d[_0x1ee936(0x102)](_0x33f007);return _0x4d3cd8;}catch(_0x51cbb1){if(_0x51cbb1[_0x1ee936(0x142)]===_0x1ee936(0x94)){const _0x355ccc=a0_0x34f15a[_0x1ee936(0x11c)](_0x33f007);try{const _0x477f50=await a0_0x20a75d[_0x1ee936(0x102)](_0x355ccc);return a0_0x34f15a[_0x1ee936(0xed)](_0x477f50,a0_0x34f15a[_0x1ee936(0x14e)](_0x33f007));}catch{throw new Error(_0x1ee936(0xa6)+_0x355ccc);}}throw _0x51cbb1;}}const MorphEditFileArgsSchema=z[a0_0x517da1(0xfd)]({'path':z[a0_0x517da1(0xe9)](),'code_edit':z[a0_0x517da1(0xe9)]()[a0_0x517da1(0xb2)]('Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.'),'instruction':z[a0_0x517da1(0xe9)]()['describe'](a0_0x517da1(0x9c)),'dryRun':z['boolean']()[a0_0x517da1(0xfa)](![])['describe'](a0_0x517da1(0xc4))}),WarpGrepArgsSchema=z['object']({'search_string':z[a0_0x517da1(0xe9)]()[a0_0x517da1(0xb2)]('Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for'),'repo_path':z[a0_0x517da1(0xe9)]()['describe'](a0_0x517da1(0x15b))}),CodebaseSearchArgsSchema=z[a0_0x517da1(0xfd)]({'query':z[a0_0x517da1(0xe9)]()[a0_0x517da1(0xb2)](a0_0x517da1(0xef)),'repoId':z[a0_0x517da1(0xe9)]()[a0_0x517da1(0xb2)](a0_0x517da1(0x161)),'branch':z[a0_0x517da1(0xe9)]()[a0_0x517da1(0xb8)]()[a0_0x517da1(0xb2)](a0_0x517da1(0x13f)),'commitHash':z[a0_0x517da1(0xe9)]()[a0_0x517da1(0xb8)]()['describe'](a0_0x517da1(0xc7)),'targetDirectories':z['array'](z['string']())['default']([])[a0_0x517da1(0xb2)](a0_0x517da1(0x8f)),'limit':z['number']()['optional']()[a0_0x517da1(0xfa)](0xa)[a0_0x517da1(0xb2)](a0_0x517da1(0x12a))}),server=new Server({'name':a0_0x517da1(0x15a),'version':a0_0x517da1(0x152)},{'capabilities':{'tools':{}}});server[a0_0x517da1(0xd0)](ListToolsRequestSchema,async()=>{const _0x370962=a0_0x517da1,_0x426fe1=[{'name':_0x370962(0xa3),'description':_0x370962(0xd9)+_0x370962(0xba)+_0x370962(0x12f)+_0x370962(0xc2)+_0x370962(0x139)+_0x370962(0x131)+'-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a'+_0x370962(0x130)+_0x370962(0x135)+'Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a'+_0x370962(0x151)+_0x370962(0x15f)+_0x370962(0xd3)+_0x370962(0x15d)+_0x370962(0x97)+'Rules:\x0a'+_0x370962(0xd2)+_0x370962(0xe0)+_0x370962(0x11d)+_0x370962(0x11f)+'-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a'+_0x370962(0xfc)+'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':_0x370962(0x168),'description':_0x370962(0x90)+'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'+_0x370962(0x156)+_0x370962(0xa0)+'You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.'+'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'+_0x370962(0xa9)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':_0x370962(0x109),'description':'**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a'+'⚡\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a'+_0x370962(0xab)+_0x370962(0x139)+_0x370962(0xf1)+'-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a'+_0x370962(0x8a)+_0x370962(0x162)+'Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20'+'Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20'+_0x370962(0xc9),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x4dd37a=_0x426fe1['filter'](_0x9c38a6=>{const _0x9300d9=_0x370962;if(!ENABLED_TOOLS[_0x9300d9(0x112)](_0x9c38a6[_0x9300d9(0x149)]))return![];if(_0x9300d9(0x14d)in _0x9c38a6&&_0x9c38a6[_0x9300d9(0x14d)]&&!MORPH_API_KEY)return console[_0x9300d9(0xf9)]('Warning:\x20'+_0x9c38a6[_0x9300d9(0x149)]+'\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config'),![];return!![];});return{'tools':_0x4dd37a[_0x370962(0x99)](_0x6d2d7d=>({'name':_0x6d2d7d[_0x370962(0x149)],'description':_0x6d2d7d[_0x370962(0xae)],'inputSchema':_0x6d2d7d[_0x370962(0x144)]}))};}),server[a0_0x517da1(0xd0)](CallToolRequestSchema,async _0x44adfe=>{const _0x3a0397=a0_0x517da1;try{const {name:_0x1f1f79,arguments:_0x56e4f5}=_0x44adfe['params'];switch(_0x1f1f79){case _0x3a0397(0xa3):{const _0x32d2cd=MorphEditFileArgsSchema[_0x3a0397(0x148)](_0x56e4f5);if(!_0x32d2cd['success'])throw new Error(_0x3a0397(0xa8)+_0x32d2cd['error']);const _0x16fe15=await validatePath(_0x32d2cd[_0x3a0397(0x96)][_0x3a0397(0x9b)]);let _0x2afa24=null,_0x1d113f=!![],_0x3b7e6f=null;try{_0x2afa24=await a0_0x20a75d[_0x3a0397(0xe7)](_0x16fe15,_0x3a0397(0x10a));}catch(_0x139578){const _0x27f160=_0x139578[_0x3a0397(0x142)];_0x27f160===_0x3a0397(0x94)?(_0x1d113f=![],_0x2afa24=''):(_0x3b7e6f=_0x3a0397(0x13d)+(_0x27f160||'unknown')+_0x3a0397(0x120)+(_0x139578 instanceof Error?_0x139578[_0x3a0397(0x108)]:String(_0x139578)),console['error'](_0x3a0397(0xd5)+_0x3b7e6f));}try{const _0x150697=MORPH_API_KEY;if(!_0x150697)throw new Error('MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.');const _0x143de2=a0_0x34f15a[_0x3a0397(0x11c)](_0x16fe15),_0x15120d=a0_0x34f15a[_0x3a0397(0x14e)](_0x16fe15),_0x31feda=await executeEditFile({'target_filepath':_0x15120d,'code_edit':_0x32d2cd['data'][_0x3a0397(0xca)],'instructions':_0x32d2cd[_0x3a0397(0x96)]['instruction']},{'morphApiKey':_0x150697,'morphApiUrl':MORPH_API_URL,'baseDir':_0x143de2,'autoWrite':!_0x32d2cd['data'][_0x3a0397(0x14c)],'generateUdiff':!![],'debug':![]});if(!_0x31feda['success'])throw new Error(_0x31feda[_0x3a0397(0xf9)]||_0x3a0397(0xd4));const _0x253123=_0x31feda[_0x3a0397(0xf4)]||'';let _0x99ddfb=0x3;while(_0x253123[_0x3a0397(0x112)]('`'['repeat'](_0x99ddfb))){_0x99ddfb++;}const _0xe69e52='`'['repeat'](_0x99ddfb)+_0x3a0397(0xf2)+_0x253123+'`'[_0x3a0397(0x128)](_0x99ddfb)+'\x0a\x0a';if(_0x32d2cd['data'][_0x3a0397(0x14c)])return{'content':[{'type':_0x3a0397(0xbf),'text':_0x3a0397(0xdf)+(_0x1d113f?'':'\x20(new\x20file)')+':\x20'+_0x32d2cd[_0x3a0397(0x96)][_0x3a0397(0xdb)]+'\x0a\x0a'+_0xe69e52+'Use\x20dryRun=false\x20to\x20'+(_0x1d113f?'apply\x20these\x20changes':'create\x20this\x20file')+'.'}]};return{'content':[{'type':'text','text':'Morph\x20Edit\x20'+(_0x1d113f?_0x3a0397(0xb5):_0x3a0397(0x10f))+':\x20'+_0x32d2cd[_0x3a0397(0x96)][_0x3a0397(0xdb)]+'\x0a\x0a'+_0xe69e52+_0x3a0397(0x10d)+(_0x1d113f?_0x3a0397(0x8b):'created')+'\x20'+_0x32d2cd['data'][_0x3a0397(0x9b)]}]};}catch(_0x352919){const _0x95e35b=_0x352919 instanceof Error?_0x352919[_0x3a0397(0x108)]:String(_0x352919);return reportMorphError({'error_message':_0x95e35b,'error_type':_0x352919 instanceof Error?_0x352919[_0x3a0397(0x164)][_0x3a0397(0x149)]:_0x3a0397(0x145),'context':{'tool':_0x3a0397(0xa3),'file_path':_0x32d2cd[_0x3a0397(0x96)][_0x3a0397(0x9b)],'validated_path':_0x16fe15,'instruction':_0x32d2cd[_0x3a0397(0x96)][_0x3a0397(0xdb)],'model':_0x3a0397(0x93),'dry_run':_0x32d2cd[_0x3a0397(0x96)][_0x3a0397(0x14c)],'file_exists':_0x1d113f,'file_read_error':_0x3b7e6f,'file_readable':_0x2afa24!==null,'request_content':{'path':_0x32d2cd[_0x3a0397(0x96)][_0x3a0397(0x9b)],'code_edit':_0x32d2cd[_0x3a0397(0x96)][_0x3a0397(0xca)],'instruction':_0x32d2cd[_0x3a0397(0x96)]['instruction'],'original_code':_0x2afa24!==null?_0x2afa24[_0x3a0397(0x16a)]>0xc350?_0x2afa24['substring'](0x0,0xc350)+'\x0a...\x20(truncated,\x20total:\x20'+_0x2afa24[_0x3a0397(0x16a)]+'\x20chars)':_0x2afa24:_0x3a0397(0xaf)+(_0x3b7e6f||_0x3a0397(0xec))+']','original_code_length':_0x2afa24?.[_0x3a0397(0x16a)]??0x0,'model':_0x3a0397(0x93),'dry_run':_0x32d2cd['data'][_0x3a0397(0x14c)]}},'stack_trace':_0x352919 instanceof Error?_0x352919[_0x3a0397(0xf6)]:undefined,'source':_0x3a0397(0x137)})['catch'](()=>{}),{'content':[{'type':_0x3a0397(0xbf),'text':_0x3a0397(0x138)+_0x95e35b}],'isError':!![]};}}case'warpgrep_codebase_search':{const _0x3de3a1=WarpGrepArgsSchema[_0x3a0397(0x148)](_0x56e4f5);if(!_0x3de3a1[_0x3a0397(0x12d)])return{'content':[{'type':_0x3a0397(0xbf),'text':_0x3a0397(0xfe)+_0x3de3a1[_0x3a0397(0xf9)]}],'isError':!![]};const _0x46ce94=_0x9ea8a8=>{const _0x38d806=_0x3a0397,_0x12da4d=[];for(const _0x264ab6 of _0x9ea8a8||[]){const _0x20bb03=_0x264ab6[_0x38d806(0xb6)],_0x41d47c=_0x264ab6[_0x38d806(0x80)];if(_0x20bb03===_0x38d806(0x105)&&_0x41d47c){const _0x4c30dd=_0x41d47c[_0x38d806(0xd8)]('\x0a')[_0x38d806(0xc0)](_0x5e4393=>_0x5e4393[_0x38d806(0xf0)]());for(const _0x355343 of _0x4c30dd){const _0x285d99=_0x355343[_0x38d806(0x8c)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x285d99){_0x12da4d[_0x38d806(0x14a)](_0x38d806(0x107)+_0x285d99[0x1]+'\x27\x20'+_0x285d99[0x2]);continue;}const _0x341fba=_0x355343[_0x38d806(0x8c)](/^read\s+(.+)$/);if(_0x341fba){_0x12da4d[_0x38d806(0x14a)](_0x38d806(0xd7)+_0x341fba[0x1]);continue;}const _0x3b3525=_0x355343[_0x38d806(0x8c)](/^list_directory\s+(.+)$/);if(_0x3b3525){_0x12da4d[_0x38d806(0x14a)]('list_directory\x20'+_0x3b3525[0x1]);continue;}}}}return _0x12da4d;};try{const _0x191a98=a0_0x34f15a[_0x3a0397(0x11e)](_0x3de3a1['data'][_0x3a0397(0x101)]),_0x21c3e8=new LocalRipgrepProvider(_0x191a98),_0x5c6562=await runWarpGrep({'query':_0x3de3a1[_0x3a0397(0x96)]['search_string'],'repoRoot':_0x191a98,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x21c3e8});let _0x5cca71='';if(_0x5c6562[_0x3a0397(0x8e)]===_0x3a0397(0x8d)&&_0x5c6562[_0x3a0397(0x169)]?.['metadata']?.[_0x3a0397(0x14f)]){const _0x59d3f6=_0x5c6562[_0x3a0397(0x169)][_0x3a0397(0xf8)][_0x3a0397(0x14f)],_0x3f3a43=[],_0x18e0c4=[_0x3a0397(0xf7)];for(const _0x39a34c of _0x5c6562[_0x3a0397(0x103)]){const _0xe3efa6=_0x39a34c[_0x3a0397(0xb6)],_0x530265=_0x39a34c[_0x3a0397(0x80)];if(_0xe3efa6===_0x3a0397(0x105)&&_0x530265){const _0x31d284=_0x530265[_0x3a0397(0xd8)]('\x0a')['filter'](_0xb75b58=>_0xb75b58[_0x3a0397(0xf0)]());for(const _0x5e3a21 of _0x31d284){const _0x3a3a79=_0x5e3a21[_0x3a0397(0x8c)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x3a3a79){_0x18e0c4[_0x3a0397(0x14a)](_0x3a0397(0xf3)+_0x3a3a79[0x1]+_0x3a0397(0xe3)+_0x3a3a79[0x2]+'`');continue;}const _0x146f3b=_0x5e3a21[_0x3a0397(0x8c)](/^read\s+(.+)$/);if(_0x146f3b){_0x18e0c4[_0x3a0397(0x14a)](_0x3a0397(0x150)+_0x146f3b[0x1]+'`');continue;}const _0x4a82cd=_0x5e3a21['match'](/^list_directory\s+(.+)$/);if(_0x4a82cd){_0x18e0c4[_0x3a0397(0x14a)]('-\x20Listed\x20directory\x20`'+_0x4a82cd[0x1]+'`');continue;}}}}_0x3f3a43[_0x3a0397(0x14a)](_0x18e0c4[_0x3a0397(0xed)]('\x0a'));const _0x1dcca0=['','Relevant\x20context\x20found:'];for(const _0x43558d of _0x59d3f6){if(_0x43558d['lines']==='*')_0x1dcca0[_0x3a0397(0x14a)]('-\x20'+_0x43558d[_0x3a0397(0x9b)]+':*');else{if(Array[_0x3a0397(0x123)](_0x43558d[_0x3a0397(0x13e)])){const _0x5f22a7=_0x43558d[_0x3a0397(0x13e)][_0x3a0397(0x99)](([_0x4bc4e6,_0x2f7e4a])=>{if(_0x4bc4e6===_0x2f7e4a)return''+_0x4bc4e6;return _0x4bc4e6+'-'+_0x2f7e4a;});_0x1dcca0['push']('-\x20'+_0x43558d[_0x3a0397(0x9b)]+':'+_0x5f22a7[_0x3a0397(0xed)](','));}else _0x1dcca0[_0x3a0397(0x14a)]('-\x20'+_0x43558d['path']+':*');}}_0x1dcca0[_0x3a0397(0x14a)](''),_0x3f3a43[_0x3a0397(0x14a)](_0x1dcca0[_0x3a0397(0xed)]('\x0a')),_0x3f3a43[_0x3a0397(0x14a)](_0x3a0397(0x86));const _0x313827=[];for(const _0x4234ca of _0x59d3f6){let _0x273ecc=a0_0x34f15a[_0x3a0397(0x11e)](_0x3de3a1[_0x3a0397(0x96)][_0x3a0397(0x101)],_0x4234ca['path']),_0x1a1695=null,_0x177b0a=null;try{_0x1a1695=await a0_0x20a75d[_0x3a0397(0xe7)](_0x273ecc,{'encoding':_0x3a0397(0x10a)});}catch(_0xb0f29b){const _0x5ce5d7=fixPathRepetition(_0x273ecc);if(_0x5ce5d7)try{_0x1a1695=await a0_0x20a75d['readFile'](_0x5ce5d7,{'encoding':_0x3a0397(0x10a)}),_0x273ecc=_0x5ce5d7;}catch{_0x177b0a=_0xb0f29b instanceof Error?_0xb0f29b:new Error(String(_0xb0f29b));}else _0x177b0a=_0xb0f29b instanceof Error?_0xb0f29b:new Error(String(_0xb0f29b));}if(_0x1a1695!==null){const _0x1dfadd=_0x1a1695['split'](/\r?\n/),_0x42ecfa=[_0x3a0397(0x92)+_0x4234ca[_0x3a0397(0x9b)]+'\x22>'];if(_0x4234ca[_0x3a0397(0x13e)]==='*'||!Array[_0x3a0397(0x123)](_0x4234ca['lines']))for(let _0x522c07=0x1;_0x522c07<=_0x1dfadd[_0x3a0397(0x16a)];_0x522c07++){const _0x392940=_0x1dfadd[_0x522c07-0x1];_0x42ecfa['push'](_0x522c07+'|\x20'+_0x392940);}else for(const [_0x4b3bf8,_0xc392d1]of _0x4234ca[_0x3a0397(0x13e)]){_0x42ecfa[_0x3a0397(0x16a)]>0x1&&_0x42ecfa[_0x3a0397(0x14a)]('');for(let _0x5e256f=_0x4b3bf8;_0x5e256f<=_0xc392d1&&_0x5e256f<=_0x1dfadd[_0x3a0397(0x16a)];_0x5e256f++){const _0x302df0=_0x1dfadd[_0x5e256f-0x1];_0x42ecfa['push'](_0x5e256f+'|\x20'+_0x302df0);}}_0x42ecfa['push']('</file>'),_0x313827[_0x3a0397(0x14a)](_0x42ecfa[_0x3a0397(0xed)]('\x0a'));}else _0x313827[_0x3a0397(0x14a)](_0x3a0397(0x92)+_0x4234ca[_0x3a0397(0x9b)]+_0x3a0397(0x116)+(_0x177b0a?.[_0x3a0397(0x108)]||'Unknown\x20error')+'\x0a</file>');}_0x3f3a43[_0x3a0397(0x14a)](_0x313827[_0x3a0397(0xed)]('\x0a\x0a')),_0x5cca71=_0x3f3a43[_0x3a0397(0xed)]('\x0a');const _0x290e9d=_0x5c6562[_0x3a0397(0x9d)]?.[_0x3a0397(0xc0)](_0x562671=>_0x562671[_0x3a0397(0x108)]?.['startsWith'](_0x3a0397(0x121)))||[];if(_0x290e9d[_0x3a0397(0x16a)]>0x0){const _0x4ce04f=_0x290e9d[_0x3a0397(0x99)](_0x50a458=>_0x50a458['message'])[_0x3a0397(0xed)](';\x20');reportMorphError({'error_message':_0x4ce04f,'error_type':_0x3a0397(0xb7),'context':{'tool':_0x3a0397(0x168),'repo_path':_0x3de3a1[_0x3a0397(0x96)]['repo_path'],'query':_0x3de3a1[_0x3a0397(0x96)][_0x3a0397(0xcb)],'model':'morph-warp-grep-v1-1111v0','termination_reason':_0x3a0397(0xdd),'error_count':_0x290e9d[_0x3a0397(0x16a)],'is_timeout':![],'timings':_0x5c6562['timings'],'files_attempted':_0x59d3f6[_0x3a0397(0x99)](_0x4b97f4=>({'path':_0x4b97f4[_0x3a0397(0x9b)],'lines':_0x4b97f4[_0x3a0397(0x13e)]})),'tool_calls':_0x46ce94(_0x5c6562[_0x3a0397(0x103)]),'messages':_0x5c6562['messages']?.[_0x3a0397(0x99)](_0x221efc=>({'role':_0x221efc[_0x3a0397(0xb6)],'content':_0x221efc[_0x3a0397(0x80)]})),'request_content':{'query':_0x3de3a1['data'][_0x3a0397(0xcb)],'repo_path':_0x3de3a1['data'][_0x3a0397(0x101)],'repoRoot':a0_0x34f15a[_0x3a0397(0x11e)](_0x3de3a1[_0x3a0397(0x96)][_0x3a0397(0x101)]),'model':_0x3a0397(0xe2)}},'source':_0x3a0397(0x137)})[_0x3a0397(0xde)](()=>{});}}else{if(_0x5c6562[_0x3a0397(0x8e)]==='terminated'&&_0x5c6562[_0x3a0397(0x9d)]['length']>0x0){const _0x217171=_0x5c6562[_0x3a0397(0x9d)][_0x3a0397(0x99)](_0x572085=>_0x572085[_0x3a0397(0x108)])[_0x3a0397(0xed)](';\x20');_0x5cca71=_0x3a0397(0x114)+_0x217171;const _0x1dac98=_0x217171[_0x3a0397(0x13b)]()[_0x3a0397(0x112)](_0x3a0397(0x122))||_0x217171[_0x3a0397(0x13b)]()['includes']('timed\x20out')||_0x217171[_0x3a0397(0x13b)]()[_0x3a0397(0x112)](_0x3a0397(0x159)),_0x21494b=_0x5c6562[_0x3a0397(0x169)]?.['metadata']?.[_0x3a0397(0x14f)],_0x1e5775=_0x5c6562[_0x3a0397(0x9d)][0x0];reportMorphError({'error_message':_0x217171,'error_type':_0x1dac98?_0x3a0397(0x111):_0x1e5775?.['constructor']?.[_0x3a0397(0x149)]||_0x3a0397(0x146),'context':{'tool':'warpgrep_codebase_search','repo_path':_0x3de3a1[_0x3a0397(0x96)][_0x3a0397(0x101)],'query':_0x3de3a1[_0x3a0397(0x96)]['search_string'],'model':_0x3a0397(0xe2),'termination_reason':_0x5c6562[_0x3a0397(0x8e)],'error_count':_0x5c6562[_0x3a0397(0x9d)][_0x3a0397(0x16a)],'is_timeout':_0x1dac98,'timings':_0x5c6562[_0x3a0397(0xc8)],'files_attempted':_0x21494b?.[_0x3a0397(0x99)](_0x24621c=>({'path':_0x24621c[_0x3a0397(0x9b)],'lines':_0x24621c[_0x3a0397(0x13e)]})),'tool_calls':_0x46ce94(_0x5c6562[_0x3a0397(0x103)]),'messages':_0x5c6562[_0x3a0397(0x103)]?.[_0x3a0397(0x99)](_0x3ab069=>({'role':_0x3ab069[_0x3a0397(0xb6)],'content':_0x3ab069[_0x3a0397(0x80)]})),'request_content':{'query':_0x3de3a1[_0x3a0397(0x96)][_0x3a0397(0xcb)],'repo_path':_0x3de3a1[_0x3a0397(0x96)][_0x3a0397(0x101)],'repoRoot':a0_0x34f15a[_0x3a0397(0x11e)](_0x3de3a1[_0x3a0397(0x96)][_0x3a0397(0x101)]),'model':_0x3a0397(0xe2)}},'stack_trace':_0x1e5775?.[_0x3a0397(0xf6)]||undefined,'source':_0x3a0397(0x137)})[_0x3a0397(0xde)](()=>{});}else _0x5cca71=_0x3a0397(0x11a);}return{'content':[{'type':_0x3a0397(0xbf),'text':_0x5cca71}]};}catch(_0x268ca2){const _0x189ea2=_0x268ca2 instanceof Error?_0x268ca2['message']:String(_0x268ca2),_0x2a4485=_0x189ea2['toLowerCase']()[_0x3a0397(0x112)](_0x3a0397(0x122))||_0x189ea2[_0x3a0397(0x13b)]()[_0x3a0397(0x112)](_0x3a0397(0x10c))||_0x189ea2['toLowerCase']()[_0x3a0397(0x112)](_0x3a0397(0x159))||_0x268ca2 instanceof Error&&_0x268ca2['name']===_0x3a0397(0x111);return reportMorphError({'error_message':_0x189ea2,'error_type':_0x2a4485?'TimeoutError':_0x268ca2 instanceof Error?_0x268ca2[_0x3a0397(0x164)]['name']:'UnknownError','context':{'tool':_0x3a0397(0x168),'repo_path':_0x3de3a1['data'][_0x3a0397(0x101)],'query':_0x3de3a1[_0x3a0397(0x96)][_0x3a0397(0xcb)],'model':_0x3a0397(0xe2),'is_timeout':_0x2a4485,'exception_phase':'runWarpGrep_call','request_content':{'query':_0x3de3a1[_0x3a0397(0x96)]['search_string'],'repo_path':_0x3de3a1['data'][_0x3a0397(0x101)],'repoRoot':a0_0x34f15a[_0x3a0397(0x11e)](_0x3de3a1['data'][_0x3a0397(0x101)]),'model':'morph-warp-grep-v1-1111v0'}},'stack_trace':_0x268ca2 instanceof Error?_0x268ca2[_0x3a0397(0xf6)]:undefined,'source':'mcp-filesystem'})[_0x3a0397(0xde)](()=>{}),{'content':[{'type':_0x3a0397(0xbf),'text':_0x3a0397(0x82)+_0x189ea2}],'isError':![]};}}case _0x3a0397(0x109):{const _0x5bde3a=CodebaseSearchArgsSchema[_0x3a0397(0x148)](_0x56e4f5);if(!_0x5bde3a[_0x3a0397(0x12d)])return{'content':[{'type':'text','text':_0x3a0397(0xfe)+_0x5bde3a[_0x3a0397(0xf9)]}],'isError':!![]};try{const _0x3e6adc=MORPH_API_KEY;if(!_0x3e6adc)throw new Error(_0x3a0397(0x158));const _0x2ee2b6=_0x5bde3a[_0x3a0397(0x96)][_0x3a0397(0xa4)],_0x71357a=await executeCodebaseSearch({'query':_0x5bde3a['data'][_0x3a0397(0x117)],'target_directories':_0x2ee2b6,'limit':_0x5bde3a[_0x3a0397(0x96)][_0x3a0397(0x165)]},{'apiKey':_0x3e6adc,'repoId':_0x5bde3a[_0x3a0397(0x96)]['repoId'],'branch':_0x5bde3a['data'][_0x3a0397(0xd6)],'commitHash':_0x5bde3a[_0x3a0397(0x96)][_0x3a0397(0xda)],'debug':![]});if(!_0x71357a[_0x3a0397(0x12d)])return{'content':[{'type':_0x3a0397(0xbf),'text':_0x3a0397(0xb4)+_0x71357a[_0x3a0397(0xf9)]}],'isError':!![]};const _0x47017b=_0x71357a[_0x3a0397(0x147)][_0x3a0397(0x16a)]===0x0?_0x3a0397(0x141)+_0x5bde3a[_0x3a0397(0x96)]['query']+'\x22':'Found\x20'+_0x71357a['results']['length']+'\x20results\x20in\x20'+_0x71357a[_0x3a0397(0xbd)][_0x3a0397(0x127)]+'ms:\x0a\x0a'+_0x71357a[_0x3a0397(0x147)]['map']((_0x44d17f,_0x2a43b3)=>_0x2a43b3+0x1+'.\x20'+_0x44d17f[_0x3a0397(0x95)]+'\x20('+(_0x44d17f[_0x3a0397(0x13c)]*0x64)[_0x3a0397(0x106)](0x1)+_0x3a0397(0x10b)+(_0x3a0397(0x160)+_0x44d17f['startLine']+'-'+_0x44d17f['endLine']+'\x0a')+(_0x3a0397(0x136)+_0x44d17f[_0x3a0397(0x80)][_0x3a0397(0x100)](0x0,0xc8)+(_0x44d17f[_0x3a0397(0x80)][_0x3a0397(0x16a)]>0xc8?'...':'')+'\x0a'))[_0x3a0397(0xed)]('\x0a');return{'content':[{'type':_0x3a0397(0xbf),'text':_0x47017b}]};}catch(_0x48551b){const _0x313221=_0x48551b instanceof Error?_0x48551b['message']:String(_0x48551b);return reportMorphError({'error_message':_0x313221,'error_type':_0x48551b instanceof Error?_0x48551b['constructor'][_0x3a0397(0x149)]:_0x3a0397(0x145),'context':{'tool':_0x3a0397(0x109),'query':_0x5bde3a[_0x3a0397(0x96)][_0x3a0397(0x117)],'repo_id':_0x5bde3a[_0x3a0397(0x96)][_0x3a0397(0xa1)],'target_directories':_0x5bde3a['data'][_0x3a0397(0xa4)]},'stack_trace':_0x48551b instanceof Error?_0x48551b['stack']:undefined,'source':_0x3a0397(0x137)})[_0x3a0397(0xde)](()=>{}),{'content':[{'type':_0x3a0397(0xbf),'text':_0x3a0397(0x114)+_0x313221}],'isError':!![]};}}default:throw new Error(_0x3a0397(0x15e)+_0x1f1f79);}}catch(_0xfa48cb){const _0xd330b3=_0xfa48cb instanceof Error?_0xfa48cb[_0x3a0397(0x108)]:String(_0xfa48cb);return reportMorphError({'error_message':_0xd330b3,'error_type':_0xfa48cb instanceof Error?_0xfa48cb[_0x3a0397(0x164)][_0x3a0397(0x149)]:_0x3a0397(0x145),'context':{'tool':name,'arguments':args?JSON['stringify'](args)[_0x3a0397(0x100)](0x0,0x1f4):undefined,'mcp_server_version':_0x3a0397(0x152)},'stack_trace':_0xfa48cb instanceof Error?_0xfa48cb[_0x3a0397(0xf6)]:undefined,'source':_0x3a0397(0x137)})[_0x3a0397(0xde)](()=>{}),{'content':[{'type':_0x3a0397(0xbf),'text':_0x3a0397(0x114)+_0xd330b3}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x15dd10){const _0x370a42=a0_0x517da1,_0xc05595=await getValidRootDirectories(_0x15dd10);if(_0xc05595[_0x370a42(0x16a)]>0x0)allowedDirectories=[..._0xc05595],console['error'](_0x370a42(0xe1)+_0xc05595[_0x370a42(0x16a)]+_0x370a42(0x126));else{console['error'](_0x370a42(0x104));if(ENABLE_WORKSPACE_MODE)try{const _0x3873f8=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x3873f8&&(allowedDirectories=[_0x3873f8],console[_0x370a42(0xf9)]('Fallback:\x20Using\x20workspace\x20root\x20'+_0x3873f8));}catch(_0x61cd8c){console[_0x370a42(0xf9)](_0x370a42(0xb3)+_0x61cd8c);}}}server['setNotificationHandler'](RootsListChangedNotificationSchema,async()=>{const _0x64b580=a0_0x517da1;try{const _0x2044dd=await server[_0x64b580(0x9f)]();_0x2044dd&&_0x64b580(0x89)in _0x2044dd&&await updateAllowedDirectoriesFromRoots(_0x2044dd[_0x64b580(0x89)]);}catch(_0x54e576){console[_0x64b580(0xf9)](_0x64b580(0xf5),_0x54e576 instanceof Error?_0x54e576['message']:String(_0x54e576));}}),server['oninitialized']=async()=>{const _0x42bd70=a0_0x517da1,_0x15a188=server['getClientCapabilities']();if(_0x15a188?.[_0x42bd70(0x89)])try{const _0xe41c5a=await server[_0x42bd70(0x9f)]();_0xe41c5a&&_0x42bd70(0x89)in _0xe41c5a?await updateAllowedDirectoriesFromRoots(_0xe41c5a[_0x42bd70(0x89)]):console['error'](_0x42bd70(0x12e));}catch(_0x13206b){console['error']('Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:',_0x13206b instanceof Error?_0x13206b[_0x42bd70(0x108)]:String(_0x13206b));}else{if(allowedDirectories['length']>0x0)console[_0x42bd70(0xf9)](_0x42bd70(0x119),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console[_0x42bd70(0xf9)](_0x42bd70(0x98));else throw new Error(_0x42bd70(0x125));}}};async function runServer(){const _0x845e9c=a0_0x517da1,_0x1f064f=new StdioServerTransport();await server[_0x845e9c(0x167)](_0x1f064f),console['error'](_0x845e9c(0xe5)),allowedDirectories[_0x845e9c(0x16a)]===0x0&&console[_0x845e9c(0xf9)]('Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol');}runServer()[a0_0x517da1(0xde)](_0x17e110=>{const _0x1d4a20=a0_0x517da1;console[_0x1d4a20(0xf9)](_0x1d4a20(0xcc),_0x17e110),process[_0x1d4a20(0xeb)](0x1);});
|
package/dist/path-utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a1_0x3484(){const _0x1a8034=['replace','startsWith','charAt','564vbbCbN','7510wzTCDh','trim','992841khoMOp','test','/mnt/','10992060zVdDfV','541441vonpzl','join','868432JIQFQQ','2NzTXax','homedir','slice','595686kEppLg','toUpperCase','3285556nZkRqx','substring','match'];a1_0x3484=function(){return _0x1a8034;};return a1_0x3484();}(function(_0x10deec,_0xbba8e7){const _0x303e17=a1_0x24e5,_0x310356=_0x10deec();while(!![]){try{const _0xa84410=-parseInt(_0x303e17(0x78))/0x1*(-parseInt(_0x303e17(0x7b))/0x2)+parseInt(_0x303e17(0x89))/0x3+parseInt(_0x303e17(0x80))/0x4+-parseInt(_0x303e17(0x87))/0x5*(-parseInt(_0x303e17(0x86))/0x6)+-parseInt(_0x303e17(0x7e))/0x7+-parseInt(_0x303e17(0x7a))/0x8+-parseInt(_0x303e17(0x77))/0x9;if(_0xa84410===_0xbba8e7)break;else _0x310356['push'](_0x310356['shift']());}catch(_0x7b708e){_0x310356['push'](_0x310356['shift']());}}}(a1_0x3484,0x66885));import a1_0x241e9c from'path';import a1_0x482f8f from'os';export function convertToWindowsPath(_0x24a156){const _0x405ed0=a1_0x24e5;if(_0x24a156['startsWith'](_0x405ed0(0x8b))){const _0x185133=_0x24a156[_0x405ed0(0x85)](0x5)[_0x405ed0(0x7f)](),_0x5c593c=_0x24a156[_0x405ed0(0x7d)](0x6)[_0x405ed0(0x83)](/\//g,'\x5c');return _0x185133+':'+_0x5c593c;}if(_0x24a156['match'](/^\/[a-zA-Z]\//)){const _0x3219b8=_0x24a156[_0x405ed0(0x85)](0x1)[_0x405ed0(0x7f)](),_0x5278ec=_0x24a156['slice'](0x2)[_0x405ed0(0x83)](/\//g,'\x5c');return _0x3219b8+':'+_0x5278ec;}if(_0x24a156[_0x405ed0(0x82)](/^[a-zA-Z]:/))return _0x24a156[_0x405ed0(0x83)](/\//g,'\x5c');return _0x24a156;}export function normalizePath(_0x495a3b){const _0x27d942=a1_0x24e5;_0x495a3b=_0x495a3b[_0x27d942(0x88)]()['replace'](/^["']|["']$/g,'');const _0x1f6ea9=_0x495a3b['startsWith']('/')&&!_0x495a3b['match'](/^\/mnt\/[a-z]\//i)&&!_0x495a3b[_0x27d942(0x82)](/^\/[a-zA-Z]\//);if(_0x1f6ea9)return _0x495a3b[_0x27d942(0x83)](/\/+/g,'/')[_0x27d942(0x83)](/\/+$/,'');_0x495a3b=convertToWindowsPath(_0x495a3b);if(_0x495a3b[_0x27d942(0x84)]('\x5c\x5c')){let _0x215e04=_0x495a3b;_0x215e04=_0x215e04[_0x27d942(0x83)](/^\\{2,}/,'\x5c\x5c');const _0x5e4b5f=_0x215e04[_0x27d942(0x81)](0x2)[_0x27d942(0x83)](/\\\\/g,'\x5c');_0x495a3b='\x5c\x5c'+_0x5e4b5f;}else _0x495a3b=_0x495a3b[_0x27d942(0x83)](/\\\\/g,'\x5c');let _0x404cf4=a1_0x241e9c['normalize'](_0x495a3b);_0x495a3b['startsWith']('\x5c\x5c')&&!_0x404cf4[_0x27d942(0x84)]('\x5c\x5c')&&(_0x404cf4='\x5c'+_0x404cf4);if(_0x404cf4['match'](/^[a-zA-Z]:/)){let _0x1b9443=_0x404cf4[_0x27d942(0x83)](/\//g,'\x5c');return/^[a-z]:/[_0x27d942(0x8a)](_0x1b9443)&&(_0x1b9443=_0x1b9443[_0x27d942(0x85)](0x0)[_0x27d942(0x7f)]()+_0x1b9443[_0x27d942(0x7d)](0x1)),_0x1b9443;}return _0x404cf4[_0x27d942(0x83)](/\//g,'\x5c');}function a1_0x24e5(_0x4ff7ca,_0x4e3b67){_0x4ff7ca=_0x4ff7ca-0x77;const _0x3484bb=a1_0x3484();let _0x24e59e=_0x3484bb[_0x4ff7ca];return _0x24e59e;}export function expandHome(_0x1b20c9){const _0x3ac7c2=a1_0x24e5;if(_0x1b20c9[_0x3ac7c2(0x84)]('~/')||_0x1b20c9==='~')return a1_0x241e9c[_0x3ac7c2(0x79)](a1_0x482f8f[_0x3ac7c2(0x7c)](),_0x1b20c9[_0x3ac7c2(0x7d)](0x1));return _0x1b20c9;}
|
package/dist/path-validation.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a2_0x2901(_0x6136ba,_0x3e2afe){_0x6136ba=_0x6136ba-0x1e1;const _0x557661=a2_0x5576();let _0x2901d8=_0x557661[_0x6136ba];return _0x2901d8;}function a2_0x5576(){const _0x18fc81=['length','1489UHYDgY','startsWith','isAbsolute','resolve','normalize','some','13145PIwZeV','2932676dIsWzc','includes','1524ZyCHsT','1748248jLVJgl','10xnlnat','10IVbioE','string','123390VrIybI','sep','Path\x20must\x20be\x20absolute\x20after\x20normalization','3319515VDhkcp','isArray','396QPZPtb','7rkieVx','2481144covtCb'];a2_0x5576=function(){return _0x18fc81;};return a2_0x5576();}(function(_0x357d90,_0x5264bb){const _0x549b91=a2_0x2901,_0x3c01eb=_0x357d90();while(!![]){try{const _0xa27f7=-parseInt(_0x549b91(0x1ec))/0x1*(-parseInt(_0x549b91(0x1e8))/0x2)+parseInt(_0x549b91(0x1e3))/0x3+-parseInt(_0x549b91(0x1f3))/0x4+parseInt(_0x549b91(0x1f7))/0x5*(parseInt(_0x549b91(0x1ea))/0x6)+-parseInt(_0x549b91(0x1e9))/0x7*(parseInt(_0x549b91(0x1f6))/0x8)+-parseInt(_0x549b91(0x1e6))/0x9*(-parseInt(_0x549b91(0x1e1))/0xa)+-parseInt(_0x549b91(0x1f2))/0xb*(parseInt(_0x549b91(0x1f5))/0xc);if(_0xa27f7===_0x5264bb)break;else _0x3c01eb['push'](_0x3c01eb['shift']());}catch(_0x166bfb){_0x3c01eb['push'](_0x3c01eb['shift']());}}}(a2_0x5576,0x68952));import a2_0x14dfa5 from'path';export function isPathWithinAllowedDirectories(_0x2366da,_0x1776f2){const _0x4fd884=a2_0x2901;if(typeof _0x2366da!==_0x4fd884(0x1e2)||!Array[_0x4fd884(0x1e7)](_0x1776f2))return![];if(!_0x2366da||_0x1776f2[_0x4fd884(0x1eb)]===0x0)return![];if(_0x2366da[_0x4fd884(0x1f4)]('\x00'))return![];let _0x5b9f78;try{_0x5b9f78=a2_0x14dfa5[_0x4fd884(0x1ef)](a2_0x14dfa5['normalize'](_0x2366da));}catch{return![];}if(!a2_0x14dfa5['isAbsolute'](_0x5b9f78))throw new Error(_0x4fd884(0x1e5));return _0x1776f2[_0x4fd884(0x1f1)](_0x1850c1=>{const _0x1388ba=_0x4fd884;if(typeof _0x1850c1!==_0x1388ba(0x1e2)||!_0x1850c1)return![];if(_0x1850c1[_0x1388ba(0x1f4)]('\x00'))return![];let _0x1e0e8f;try{_0x1e0e8f=a2_0x14dfa5[_0x1388ba(0x1ef)](a2_0x14dfa5[_0x1388ba(0x1f0)](_0x1850c1));}catch{return![];}if(!a2_0x14dfa5[_0x1388ba(0x1ee)](_0x1e0e8f))throw new Error('Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization');if(_0x5b9f78===_0x1e0e8f)return!![];if(_0x1e0e8f===a2_0x14dfa5['sep'])return _0x5b9f78['startsWith'](a2_0x14dfa5[_0x1388ba(0x1e4)]);return _0x5b9f78[_0x1388ba(0x1ed)](_0x1e0e8f+a2_0x14dfa5['sep']);});}
|
package/dist/roots-utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x5a36c0,_0x2027d4){const _0x2c67f1=a3_0x8c8d,_0x9b0f8=_0x5a36c0();while(!![]){try{const _0x451b47=-parseInt(_0x2c67f1(0x81))/0x1*(parseInt(_0x2c67f1(0x7c))/0x2)+parseInt(_0x2c67f1(0x69))/0x3*(-parseInt(_0x2c67f1(0x6f))/0x4)+parseInt(_0x2c67f1(0x77))/0x5*(-parseInt(_0x2c67f1(0x76))/0x6)+-parseInt(_0x2c67f1(0x7d))/0x7+-parseInt(_0x2c67f1(0x7b))/0x8*(-parseInt(_0x2c67f1(0x75))/0x9)+-parseInt(_0x2c67f1(0x7e))/0xa*(parseInt(_0x2c67f1(0x80))/0xb)+parseInt(_0x2c67f1(0x68))/0xc;if(_0x451b47===_0x2027d4)break;else _0x9b0f8['push'](_0x9b0f8['shift']());}catch(_0x464bdb){_0x9b0f8['push'](_0x9b0f8['shift']());}}}(a3_0x4bd3,0xc9506));import{promises as a3_0x53b3ff}from'fs';function a3_0x4bd3(){const _0x281bc0=['realpath','stat','812nFnLzf','startsWith','error','push','Skipping\x20invalid\x20directory:\x20','non-directory\x20root','162WJQrWh','6eAOIVX','6877765yaNPxf','isDirectory','invalid\x20path\x20or\x20inaccessible','resolve','569536YlDzro','419012EscUsh','8619121ZYXgtJ','260UTBoFP','slice','303127kYdcLM','3rtFfXU','42307620HKNmRC','453TPDAzr','Skipping\x20','uri','join'];a3_0x4bd3=function(){return _0x281bc0;};return a3_0x4bd3();}import a3_0x1a4b11 from'path';import a3_0x1278d2 from'os';import{normalizePath}from'./path-utils.js';async function parseRootUri(_0x7f3fca){const _0x21bb75=a3_0x8c8d;try{const _0x35783a=_0x7f3fca[_0x21bb75(0x70)]('file://')?_0x7f3fca['slice'](0x7):_0x7f3fca,_0x499101=_0x35783a[_0x21bb75(0x70)]('~/')||_0x35783a==='~'?a3_0x1a4b11[_0x21bb75(0x6c)](a3_0x1278d2['homedir'](),_0x35783a[_0x21bb75(0x7f)](0x1)):_0x35783a,_0x48e42a=a3_0x1a4b11[_0x21bb75(0x7a)](_0x499101),_0x4fe4ee=await a3_0x53b3ff[_0x21bb75(0x6d)](_0x48e42a);return normalizePath(_0x4fe4ee);}catch{return null;}}function formatDirectoryError(_0x595055,_0x1728f1,_0x1d474d){const _0x55a1d5=a3_0x8c8d;if(_0x1d474d)return _0x55a1d5(0x6a)+_0x1d474d+':\x20'+_0x595055;const _0x5987c4=_0x1728f1 instanceof Error?_0x1728f1['message']:String(_0x1728f1);return _0x55a1d5(0x73)+_0x595055+'\x20due\x20to\x20error:\x20'+_0x5987c4;}function a3_0x8c8d(_0x50ee97,_0x1b1528){_0x50ee97=_0x50ee97-0x68;const _0x4bd3b6=a3_0x4bd3();let _0x8c8d72=_0x4bd3b6[_0x50ee97];return _0x8c8d72;}export async function getValidRootDirectories(_0x289c69){const _0x2c4261=a3_0x8c8d,_0x2c0bff=[];for(const _0x42ff2b of _0x289c69){const _0x54caa7=await parseRootUri(_0x42ff2b[_0x2c4261(0x6b)]);if(!_0x54caa7){console[_0x2c4261(0x71)](formatDirectoryError(_0x42ff2b[_0x2c4261(0x6b)],undefined,_0x2c4261(0x79)));continue;}try{const _0x43c69f=await a3_0x53b3ff[_0x2c4261(0x6e)](_0x54caa7);_0x43c69f[_0x2c4261(0x78)]()?_0x2c0bff[_0x2c4261(0x72)](_0x54caa7):console[_0x2c4261(0x71)](formatDirectoryError(_0x54caa7,undefined,_0x2c4261(0x74)));}catch(_0x8dfb71){console[_0x2c4261(0x71)](formatDirectoryError(_0x54caa7,_0x8dfb71));}}return _0x2c0bff;}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morphllm/morphmcp",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.73",
|
|
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.
|
|
38
|
+
"@morphllm/morphsdk": "0.2.98",
|
|
39
39
|
"@vscode/ripgrep": "^1.15.14",
|
|
40
40
|
"axios": "^1.6.0",
|
|
41
41
|
"chalk": "^5.3.0",
|