@morphllm/morphmcp 0.8.127 → 0.8.129
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/log-utils.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_0x444bf9=a0_0x2d77;(function(_0x34532a,_0x1d153b){const _0x1a4345=a0_0x2d77,_0x8c8afd=_0x34532a();while(!![]){try{const _0x3c6cce=-parseInt(_0x1a4345(0x1c4))/0x1+-parseInt(_0x1a4345(0x1f1))/0x2*(parseInt(_0x1a4345(0x1bf))/0x3)+parseInt(_0x1a4345(0x1f8))/0x4*(-parseInt(_0x1a4345(0x1cf))/0x5)+-parseInt(_0x1a4345(0x1e9))/0x6*(parseInt(_0x1a4345(0x229))/0x7)+parseInt(_0x1a4345(0x1fa))/0x8*(-parseInt(_0x1a4345(0x269))/0x9)+-parseInt(_0x1a4345(0x251))/0xa*(-parseInt(_0x1a4345(0x1db))/0xb)+parseInt(_0x1a4345(0x245))/0xc;if(_0x3c6cce===_0x1d153b)break;else _0x8c8afd['push'](_0x8c8afd['shift']());}catch(_0x49815e){_0x8c8afd['push'](_0x8c8afd['shift']());}}}(a0_0x20ce,0xafa40));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_0x1c8efe from'fs/promises';import a0_0x35ce7e from'path';import a0_0x5cb303 from'os';import{createRequire}from'module';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';import{getOperatingSystemType,logMcpStderr}from'./log-utils.js';import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider,GITHUB_SEARCH_TOOL_NAME,GITHUB_SEARCH_DESCRIPTION}from'@morphllm/morphsdk/tools/warp-grep';import{WarpGrepClient,formatResult}from'@morphllm/morphsdk/tools/warp-grep/client';import a0_0x24b08d from'axios';function fixPathRepetition(_0x7b1a2a){const _0x2b3bf4=a0_0x2d77,_0x572107=_0x7b1a2a[_0x2b3bf4(0x19b)](a0_0x35ce7e['sep'])['filter'](Boolean);if(_0x572107['length']<0x2)return null;for(let _0xdd98=Math['floor'](_0x572107['length']/0x2);_0xdd98>=0x1;_0xdd98--){for(let _0x13e245=0x0;_0x13e245<=_0x572107[_0x2b3bf4(0x193)]-0x2*_0xdd98;_0x13e245++){const _0x29e8de=_0x572107[_0x2b3bf4(0x294)](_0x13e245,_0x13e245+_0xdd98),_0x44a2bf=_0x572107[_0x2b3bf4(0x294)](_0x13e245+_0xdd98,_0x13e245+0x2*_0xdd98);if(_0x29e8de[_0x2b3bf4(0x21a)]((_0xbfda40,_0x5792fa)=>_0xbfda40===_0x44a2bf[_0x5792fa])){const _0x20331b=[..._0x572107[_0x2b3bf4(0x294)](0x0,_0x13e245),..._0x572107[_0x2b3bf4(0x294)](_0x13e245+_0xdd98)];return a0_0x35ce7e[_0x2b3bf4(0x246)]+_0x20331b[_0x2b3bf4(0x1c1)](a0_0x35ce7e[_0x2b3bf4(0x246)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x59a613=a0_0x2d77;try{const _0x16eb84=require(_0x59a613(0x278));return _0x16eb84[_0x59a613(0x221)]??_0x59a613(0x212);}catch(_0x2aaf69){return logMcpStderr(_0x59a613(0x27e),_0x2aaf69),_0x59a613(0x212);}}function printHelp(){const _0x146f24=a0_0x2d77;console[_0x146f24(0x214)]('@morphllm/morphmcp\x20'+getPackageVersion()),console[_0x146f24(0x214)](_0x146f24(0x198)),console[_0x146f24(0x214)](_0x146f24(0x1ee)),console[_0x146f24(0x214)]('\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)'),console[_0x146f24(0x214)](_0x146f24(0x199)),console[_0x146f24(0x214)](_0x146f24(0x258)),console[_0x146f24(0x214)](_0x146f24(0x25b)),console[_0x146f24(0x214)](_0x146f24(0x1ff)),console[_0x146f24(0x214)]('\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo');}const cliArgs=process[a0_0x444bf9(0x19c)][a0_0x444bf9(0x294)](0x2),VERSION_FLAGS=new Set([a0_0x444bf9(0x1ca),'-v','-V']),HELP_FLAGS=new Set([a0_0x444bf9(0x19f),'-h']);cliArgs[a0_0x444bf9(0x228)](_0x4cf66d=>VERSION_FLAGS[a0_0x444bf9(0x291)](_0x4cf66d))&&(console[a0_0x444bf9(0x214)]('@morphllm/morphmcp\x20'+getPackageVersion()),process['exit'](0x0));cliArgs[a0_0x444bf9(0x228)](_0x49c262=>HELP_FLAGS[a0_0x444bf9(0x291)](_0x49c262))&&(printHelp(),process['exit'](0x0));function getCliArg(_0x295aba){const _0x274eaa=a0_0x444bf9;for(let _0x29949b=0x0;_0x29949b<cliArgs[_0x274eaa(0x193)];_0x29949b++){const _0x4692a8=cliArgs[_0x29949b];if(_0x4692a8[_0x274eaa(0x226)]('--'+_0x295aba+'='))return _0x4692a8[_0x274eaa(0x294)](('--'+_0x295aba+'=')[_0x274eaa(0x193)]);if(_0x4692a8==='--'+_0x295aba&&_0x29949b+0x1<cliArgs[_0x274eaa(0x193)])return cliArgs[_0x29949b+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs[a0_0x444bf9(0x193)];i++){const arg=cliArgs[i];if(VERSION_FLAGS['has'](arg)||HELP_FLAGS[a0_0x444bf9(0x291)](arg))continue;if(arg[a0_0x444bf9(0x226)](a0_0x444bf9(0x1a1)))continue;if(arg===a0_0x444bf9(0x26b)){i++;continue;}args[a0_0x444bf9(0x1af)](arg);}const WORKSPACE_ROOT=process[a0_0x444bf9(0x20d)]['WORKSPACE_ROOT']||process[a0_0x444bf9(0x20d)][a0_0x444bf9(0x28c)]||process[a0_0x444bf9(0x282)](),ENABLE_WORKSPACE_MODE=process['env'][a0_0x444bf9(0x222)]!==a0_0x444bf9(0x20c),MORPH_API_KEY=getCliArg('api-key')??process['env'][a0_0x444bf9(0x20b)],MORPH_API_URL=process['env']['MORPH_API_URL'],MORPH_WARP_GREP_TIMEOUT=process[a0_0x444bf9(0x20d)][a0_0x444bf9(0x22e)]?parseInt(process[a0_0x444bf9(0x20d)][a0_0x444bf9(0x22e)],0xa):undefined,OPERATING_SYSTEM_TYPE=getOperatingSystemType(),KNOWN_TOOL_NAMES=new Set([a0_0x444bf9(0x281),a0_0x444bf9(0x220),'github_codebase_search']),DISABLED_TOOLS=process['env'][a0_0x444bf9(0x1f0)]?new Set(process[a0_0x444bf9(0x20d)][a0_0x444bf9(0x1f0)]['split'](',')[a0_0x444bf9(0x1e1)](_0x291cf1=>_0x291cf1[a0_0x444bf9(0x1f6)]())[a0_0x444bf9(0x1b2)](_0x4609b0=>_0x4609b0[a0_0x444bf9(0x193)]>0x0)):new Set();if(DISABLED_TOOLS['size']>0x0){for(const tool of DISABLED_TOOLS){!KNOWN_TOOL_NAMES[a0_0x444bf9(0x291)](tool)&&console[a0_0x444bf9(0x1a3)](a0_0x444bf9(0x1d9)+tool+'\x22.\x20Known\x20tools:\x20'+[...KNOWN_TOOL_NAMES][a0_0x444bf9(0x1c1)](',\x20'));}console[a0_0x444bf9(0x1a3)](a0_0x444bf9(0x225)+[...DISABLED_TOOLS][a0_0x444bf9(0x1c1)](',\x20'));}MORPH_API_KEY&&!MORPH_API_KEY[a0_0x444bf9(0x226)](a0_0x444bf9(0x1f4))&&!MORPH_API_KEY[a0_0x444bf9(0x226)](a0_0x444bf9(0x24d))&&logMcpStderr('Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27');async function reportMorphError(_0x52e6fa){const _0x4d7edb=a0_0x444bf9;try{await a0_0x24b08d[_0x4d7edb(0x1aa)](_0x4d7edb(0x19a),{..._0x52e6fa,'timestamp':new Date()[_0x4d7edb(0x1fb)](),'source':_0x52e6fa['source']||_0x4d7edb(0x25a),'os_type':OPERATING_SYSTEM_TYPE,'context':{'os_type':OPERATING_SYSTEM_TYPE,..._0x52e6fa[_0x4d7edb(0x191)]}},{'timeout':0x1388,'headers':{'Content-Type':'application/json','Authorization':_0x4d7edb(0x1be)+MORPH_API_KEY}});}catch{}}args['length']===0x0&&!ENABLE_WORKSPACE_MODE&&(logMcpStderr(a0_0x444bf9(0x1ab)),logMcpStderr('Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:'),logMcpStderr(a0_0x444bf9(0x231)),logMcpStderr(a0_0x444bf9(0x26d)),logMcpStderr(a0_0x444bf9(0x27a)),logMcpStderr(a0_0x444bf9(0x1a5)));function normalizePath(_0x9f3b0e){return a0_0x35ce7e['normalize'](_0x9f3b0e);}function expandHome(_0x4f9946){const _0x9e27a8=a0_0x444bf9;if(_0x4f9946['startsWith']('~/')||_0x4f9946==='~')return a0_0x35ce7e['join'](a0_0x5cb303[_0x9e27a8(0x262)](),_0x4f9946['slice'](0x1));return _0x4f9946;}let allowedDirectories=await Promise['all'](args[a0_0x444bf9(0x1e1)](async _0x586c69=>{const _0x49a7c9=a0_0x444bf9,_0x45f034=expandHome(_0x586c69),_0x26a932=a0_0x35ce7e[_0x49a7c9(0x1d1)](_0x45f034);try{const _0x5a9f93=await a0_0x1c8efe['realpath'](_0x26a932);return normalizePath(_0x5a9f93);}catch(_0x3958cc){return normalizePath(_0x26a932);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x444bf9(0x193)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x444bf9(0x1af)](workspaceDir),logMcpStderr(a0_0x444bf9(0x1f5)+workspaceDir+'\x20as\x20allowed\x20directory'));}catch(a0_0x44b8b7){logMcpStderr(a0_0x444bf9(0x1b1)+a0_0x44b8b7);}async function detectWorkspaceRoot(_0x378d41){const _0xbf78ce=a0_0x444bf9;let _0x2ac732=a0_0x35ce7e['resolve'](_0x378d41);const _0xb6ab50=['.git',_0xbf78ce(0x18a),_0xbf78ce(0x240),_0xbf78ce(0x1cc),_0xbf78ce(0x1c8),_0xbf78ce(0x270),_0xbf78ce(0x21c),_0xbf78ce(0x1d7),_0xbf78ce(0x21f)];while(_0x2ac732!==a0_0x35ce7e[_0xbf78ce(0x26f)](_0x2ac732)){for(const _0x72980b of _0xb6ab50){const _0x48abff=a0_0x35ce7e['join'](_0x2ac732,_0x72980b);try{return await a0_0x1c8efe[_0xbf78ce(0x26e)](_0x48abff),normalizePath(_0x2ac732);}catch{}}_0x2ac732=a0_0x35ce7e[_0xbf78ce(0x26f)](_0x2ac732);}return normalizePath(_0x378d41);}await Promise[a0_0x444bf9(0x1d6)](args['map'](async _0x23358e=>{const _0x5bcc7f=a0_0x444bf9;try{const _0x23fcab=await a0_0x1c8efe[_0x5bcc7f(0x1a0)](expandHome(_0x23358e));!_0x23fcab[_0x5bcc7f(0x24e)]()&&(logMcpStderr(_0x5bcc7f(0x25f)+_0x23358e+_0x5bcc7f(0x1e3)),process[_0x5bcc7f(0x28f)](0x1));}catch(_0x5c9b0d){logMcpStderr(_0x5bcc7f(0x261)+_0x23358e+':',_0x5c9b0d),process[_0x5bcc7f(0x28f)](0x1);}}));async function validatePath(_0x105db2){const _0x4d50e6=a0_0x444bf9,_0x5994ba=expandHome(_0x105db2),_0x12ca5a=a0_0x35ce7e[_0x4d50e6(0x1d1)](_0x5994ba);try{const _0x4d71d6=await a0_0x1c8efe[_0x4d50e6(0x1bd)](_0x12ca5a);return _0x4d71d6;}catch(_0x5143d6){if(_0x5143d6[_0x4d50e6(0x256)]===_0x4d50e6(0x1c0)){const _0x5c25ff=a0_0x35ce7e[_0x4d50e6(0x26f)](_0x12ca5a);try{const _0x3e4459=await a0_0x1c8efe[_0x4d50e6(0x1bd)](_0x5c25ff);return a0_0x35ce7e['join'](_0x3e4459,a0_0x35ce7e[_0x4d50e6(0x227)](_0x12ca5a));}catch{throw new Error(_0x4d50e6(0x213)+_0x5c25ff);}}throw _0x5143d6;}}function a0_0x20ce(){const _0x566486=['instruction','lines','default','Failed\x20to\x20read\x20file:\x20','every','PathError','.cursor','FileReadError','requiresApiKey','composer.json','codebase_search','version','ENABLE_WORKSPACE_MODE','stringify','object','Disabled\x20tools:\x20','startsWith','basename','some','28MBGlSh','No\x20relevant\x20code\x20found\x20for\x20the\x20query.','etimedout','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','text','MORPH_WARP_GREP_TIMEOUT','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','substring','user','setRequestHandler','code_edit','added\x20','runWarpGrep_call','indexOf','BinaryFile','timings','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.','repo_path','metadata','inputSchema','package.json','Search\x20type\x20hint.\x20Use\x20\x27node_modules\x27\x20when\x20searching\x20inside\x20node_modules\x20or\x20other\x20dependency\x20directories\x20that\x20are\x20normally\x20excluded.',',\x20modified\x20','searchGitHub','branch','39152700RjJpyI','sep','.\x20Changes:\x20','morph-warp-grep-v1-1111v0','errors','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','linesAdded','\x20disabled\x20via\x20DISABLED_TOOLS','morph-','isDirectory','unknown\x20error','data','20xwdPgz','Warning:\x20','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','Here\x20is\x20the\x20content\x20of\x20files:\x0a','connect','code','match','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','WarpGrepError','mcp-filesystem','\x0aExamples:','\x22>\x0aError\x20reading\x20file:\x20','\x20for:\x20\x22','\x20valid\x20directories','Error:\x20','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','Error\x20accessing\x20directory\x20','homedir','path','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','TimeoutError','Preview\x20changes\x20without\x20applying\x20them.','utf-8','UnknownError','6714360MyEsiM','getClientCapabilities','--api-key','Fallback:\x20Using\x20workspace\x20root\x20','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','access','dirname','go.mod','isArray','toLowerCase','optional','dryRun','Fatal\x20error\x20running\x20server:','Unknown\x20tool:\x20','array','../package.json','Repository\x20owner/repo\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','owner_repo','roots','github_codebase_search','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','A\x20code\x20exploration\x20tool,\x20use\x20this\x20tool\x20when\x20exploring\x20an\x20unfamiliar\x20codebase,\x20and\x20you\x27re\x20unsure\x20of\x20the\x20exact\x20file\x20or\x20string\x20to\x20look\x20for.\x20This\x20tool\x20will\x20find\x20all\x20relevant\x20bits\x20of\x20code\x20given\x20a\x20natural\x20lanugage\x20description,\x20or\x20questin\x20of\x20the\x20thing\x20you\x27re\x20looking\x20for.\x20','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20toolin\x20its\x20search.\x20','edit_file','cwd','morph-v3-fast','GitHub\x20search\x20failed:\x20','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','\x22\x20is\x20disabled\x20via\x20DISABLED_TOOLS\x20environment\x20variable','Specific\x20commit\x20hash\x20to\x20search','WarpGrep\x20sub-tool\x20errors:\x20','success','files','enum','PWD','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','exit','[could\x20not\x20read\x20file:\x20','has','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','Created\x20File','slice','Please\x20provide\x20github\x20search\x20url\x20or\x20owner/repo\x20id','readFile','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','.vscode','<file\x20path=\x22','node_modules','read','content','params','assistant','context','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','length','payload','messages','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','https://morphllm.com/api/error-report','split','argv','oninitialized','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','--help','stat','--api-key=','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','error','For\x20deletions:\x0a','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','stack','ms:','Repository\x20identifier','Natural-language\x20question/description\x20about\x20the\x20code\x20you\x20want\x20to\x20understand.\x20Good\x20example:\x20\x22Where\x20does\x20auth\x20get\x20handled,\x20what\x20are\x20the\x20different\x20oauth\x20methods\x20supported?\x22,\x20\x22Trace\x20all\x20code\x20that\x20relates\x20to\x20how\x20data\x20is\x20injested\x20and\x20processed\x22.\x20Bad\x20example:\x20\x22auth()\x22,\x20\x22auth\x20login\x20dashoard\x20google\x20email\x22.\x20This\x20tool\x20does\x20NOT\x20accept\x20regex,\x20keyword\x20dumps,\x20or\x20symbol-only\x20queries.','post','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','completed_with_file_errors','timeout','Morph\x20FastApply\x20failed\x20without\x20error\x20message','push','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','filter','0.2.0','\x27\x20in\x20`','constructor','-\x20Grepped\x20\x27',',\x20removed\x20','timed\x20out','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','RipgrepError','catch','Invalid\x20arguments:\x20','realpath','Bearer\x20','651201XCFuDf','ENOENT','join','github_url','read\x20','800835GssrtI','Applied','[github_codebase_search]\x20Searching\x20','.\x20Path:\x20','pyproject.toml','Tool\x20','--version','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','Cargo.toml','Benefits:\x0a','[github_codebase_search]\x20Failed\x20in\x20','5PsdOqU','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','resolve','SymlinkError','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','linesModified','-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a','all','tsconfig.json','warn','Warning:\x20DISABLED_TOOLS\x20contains\x20unknown\x20tool\x20\x22','describe','5112283iqrxaN','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','message','now','Tool\x20\x22','\x0a...\x20(truncated,\x20total:\x20','map','string','\x20is\x20not\x20a\x20directory','Morph\x20Edit\x20Preview','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','ReadError','ToolException','listRoots','2041338aocoCs','Morph\x20Edit\x20','Error\x20running\x20fast\x20context\x20search:\x20','SubToolError','safeParse','\x0aOptions:','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','DISABLED_TOOLS','2anFKPV','\x20(new\x20file)','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.\x20','sk-','Workspace\x20mode\x20enabled:\x20Using\x20','trim','includes','1391892zTQlbF','name','8DXfqJD','toISOString','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','Rules:\x0a','description','\x20\x20morph-mcp','\x20error(s)','number','changes','boolean','search_string','Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','terminationReason','min','RipgrepNotAvailable','grep','MORPH_API_KEY','false','env','role','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','Failed\x20to\x20request\x20roots\x20from\x20client:','Relevant\x20context\x20found:','unknown','Parent\x20directory\x20does\x20not\x20exist:\x20','log','finish'];a0_0x20ce=function(){return _0x566486;};return a0_0x20ce();}const MorphEditFileArgsSchema=z[a0_0x444bf9(0x224)]({'path':z[a0_0x444bf9(0x1e2)](),'code_edit':z[a0_0x444bf9(0x1e2)]()[a0_0x444bf9(0x1da)](a0_0x444bf9(0x28e)),'instruction':z['string']()[a0_0x444bf9(0x1da)](a0_0x444bf9(0x1d0)),'dryRun':z[a0_0x444bf9(0x203)]()[a0_0x444bf9(0x218)](![])['describe'](a0_0x444bf9(0x266))}),CODEBASE_SEARCH_QUERY_DESCRIPTION=a0_0x444bf9(0x1a9),WarpGrepArgsSchema=z[a0_0x444bf9(0x224)]({'search_string':z[a0_0x444bf9(0x1e2)]()[a0_0x444bf9(0x1da)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repo_path':z[a0_0x444bf9(0x1e2)]()[a0_0x444bf9(0x1da)]('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'),'search_type':z[a0_0x444bf9(0x28b)](['default',a0_0x444bf9(0x18c)])[a0_0x444bf9(0x273)]()[a0_0x444bf9(0x1da)](a0_0x444bf9(0x241))}),WarpGrepGitHubArgsSchema=z[a0_0x444bf9(0x224)]({'search_string':z['string']()[a0_0x444bf9(0x1da)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'github_url':z[a0_0x444bf9(0x1e2)]()[a0_0x444bf9(0x273)]()[a0_0x444bf9(0x1da)]('GitHub\x20repository\x20URL\x20to\x20search\x20(e.g.\x20\x27https://github.com/vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.'),'owner_repo':z[a0_0x444bf9(0x1e2)]()[a0_0x444bf9(0x273)]()['describe'](a0_0x444bf9(0x279)),'branch':z[a0_0x444bf9(0x1e2)]()[a0_0x444bf9(0x273)]()[a0_0x444bf9(0x1da)](a0_0x444bf9(0x205))}),CodebaseSearchArgsSchema=z[a0_0x444bf9(0x224)]({'query':z[a0_0x444bf9(0x1e2)]()[a0_0x444bf9(0x1da)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repoId':z[a0_0x444bf9(0x1e2)]()[a0_0x444bf9(0x1da)](a0_0x444bf9(0x1a8)),'branch':z[a0_0x444bf9(0x1e2)]()[a0_0x444bf9(0x273)]()[a0_0x444bf9(0x1da)](a0_0x444bf9(0x264)),'commitHash':z['string']()[a0_0x444bf9(0x273)]()[a0_0x444bf9(0x1da)](a0_0x444bf9(0x287)),'targetDirectories':z[a0_0x444bf9(0x277)](z[a0_0x444bf9(0x1e2)]())[a0_0x444bf9(0x218)]([])['describe'](a0_0x444bf9(0x1cb)),'limit':z[a0_0x444bf9(0x201)]()['optional']()['default'](0xa)[a0_0x444bf9(0x1da)]('Max\x20results\x20to\x20return')}),server=new Server({'name':'morph-mcp','version':a0_0x444bf9(0x1b3)},{'capabilities':{'tools':{}}});server[a0_0x444bf9(0x235)](ListToolsRequestSchema,async()=>{const _0x579827=a0_0x444bf9,_0x44f8a5=[{'name':_0x579827(0x281),'description':_0x579827(0x285)+_0x579827(0x1dc)+'🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a'+_0x579827(0x19e)+_0x579827(0x1cd)+'-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a'+_0x579827(0x206)+_0x579827(0x22f)+'-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a'+_0x579827(0x28d)+_0x579827(0x1a2)+_0x579827(0x20f)+_0x579827(0x1a4)+_0x579827(0x1ef)+_0x579827(0x1d5)+_0x579827(0x1fd)+_0x579827(0x192)+'-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a'+_0x579827(0x253)+_0x579827(0x1d3)+_0x579827(0x197)+_0x579827(0x196)+_0x579827(0x260),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':_0x579827(0x220),'description':_0x579827(0x27f)+CODEBASE_SEARCH_QUERY_DESCRIPTION+'\x20'+_0x579827(0x280)+_0x579827(0x1f3)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':GITHUB_SEARCH_TOOL_NAME,'description':GITHUB_SEARCH_DESCRIPTION,'inputSchema':zodToJsonSchema(WarpGrepGitHubArgsSchema),'requiresApiKey':!![]}],_0x352c58=_0x44f8a5[_0x579827(0x1b2)](_0x33e6d1=>{const _0x458292=_0x579827;if(DISABLED_TOOLS['has'](_0x33e6d1[_0x458292(0x1f9)]))return console[_0x458292(0x1a3)](_0x458292(0x1c9)+_0x33e6d1[_0x458292(0x1f9)]+_0x458292(0x24c)),![];if(_0x458292(0x21e)in _0x33e6d1&&_0x33e6d1[_0x458292(0x21e)]&&!MORPH_API_KEY)return logMcpStderr(_0x458292(0x252)+_0x33e6d1[_0x458292(0x1f9)]+'\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config'),![];return!![];});return{'tools':_0x352c58[_0x579827(0x1e1)](_0x530a87=>({'name':_0x530a87['name'],'description':_0x530a87[_0x579827(0x1fe)],'inputSchema':_0x530a87[_0x579827(0x23f)]}))};}),server[a0_0x444bf9(0x235)](CallToolRequestSchema,async _0x1dcc5f=>{const _0x4e4103=a0_0x444bf9,{name:_0x120311,arguments:_0x32625e}=_0x1dcc5f[_0x4e4103(0x18f)];try{if(DISABLED_TOOLS[_0x4e4103(0x291)](_0x120311))throw new Error(_0x4e4103(0x1df)+_0x120311+_0x4e4103(0x286));switch(_0x120311){case _0x4e4103(0x281):{const _0x4468e4=MorphEditFileArgsSchema[_0x4e4103(0x1ed)](_0x32625e);if(!_0x4468e4[_0x4e4103(0x289)])throw new Error('Invalid\x20arguments\x20for\x20morph_edit_file:\x20'+_0x4468e4['error']);const _0x5c69ca=await validatePath(_0x4468e4[_0x4e4103(0x250)]['path']);let _0x2c8b45=null,_0x436aea=!![],_0x21003f=null;try{_0x2c8b45=await a0_0x1c8efe[_0x4e4103(0x296)](_0x5c69ca,_0x4e4103(0x267));}catch(_0x5cec27){const _0x44399f=_0x5cec27['code'];_0x44399f===_0x4e4103(0x1c0)?(_0x436aea=![],_0x2c8b45=''):(_0x21003f=_0x4e4103(0x219)+(_0x44399f||'unknown')+'\x20-\x20'+(_0x5cec27 instanceof Error?_0x5cec27[_0x4e4103(0x1dd)]:String(_0x5cec27)),logMcpStderr(_0x4e4103(0x252)+_0x21003f));}let _0x89e79f;try{const _0x4ab829=MORPH_API_KEY;if(!_0x4ab829)throw new Error(_0x4e4103(0x1e5));const _0x7e7bc6=a0_0x35ce7e['dirname'](_0x5c69ca),_0x3210b3=a0_0x35ce7e[_0x4e4103(0x227)](_0x5c69ca),_0xd3034d=await executeEditFile({'target_filepath':_0x3210b3,'code_edit':_0x4468e4['data'][_0x4e4103(0x236)],'instructions':_0x4468e4[_0x4e4103(0x250)][_0x4e4103(0x216)]},{'morphApiKey':_0x4ab829,'morphApiUrl':MORPH_API_URL,'baseDir':_0x7e7bc6,'autoWrite':!_0x4468e4[_0x4e4103(0x250)][_0x4e4103(0x274)],'generateUdiff':![],'debug':![]});_0x89e79f=_0xd3034d['completionId'];if(!_0xd3034d['success'])throw new Error(_0xd3034d[_0x4e4103(0x1a3)]||_0x4e4103(0x1ae));const _0x1bc200=_0xd3034d[_0x4e4103(0x202)],_0x467f74=_0x4e4103(0x237)+_0x1bc200[_0x4e4103(0x24b)]+_0x4e4103(0x1b7)+_0x1bc200['linesRemoved']+_0x4e4103(0x242)+_0x1bc200[_0x4e4103(0x1d4)];if(_0x4468e4[_0x4e4103(0x250)]['dryRun'])return{'content':[{'type':_0x4e4103(0x22d),'text':_0x4e4103(0x1e4)+(_0x436aea?'':_0x4e4103(0x1f2))+':\x20'+_0x4468e4[_0x4e4103(0x250)][_0x4e4103(0x216)]+_0x4e4103(0x247)+_0x467f74+_0x4e4103(0x1c7)+_0x4468e4['data'][_0x4e4103(0x263)]+'.'}]};return{'content':[{'type':'text','text':_0x4e4103(0x1ea)+(_0x436aea?_0x4e4103(0x1c5):_0x4e4103(0x293))+':\x20'+_0x4468e4[_0x4e4103(0x250)][_0x4e4103(0x216)]+'.\x20Changes:\x20'+_0x467f74+_0x4e4103(0x1c7)+_0x4468e4[_0x4e4103(0x250)][_0x4e4103(0x263)]+'.'}]};}catch(_0x702240){const _0x377f35=_0x702240 instanceof Error?_0x702240['message']:String(_0x702240);return reportMorphError({'error_message':_0x377f35,'error_type':_0x702240 instanceof Error?_0x702240[_0x4e4103(0x1b5)][_0x4e4103(0x1f9)]:'UnknownError','context':{'tool':_0x4e4103(0x281),'completion_id':_0x89e79f,'file_path':_0x4468e4[_0x4e4103(0x250)][_0x4e4103(0x263)],'validated_path':_0x5c69ca,'instruction':_0x4468e4[_0x4e4103(0x250)]['instruction'],'model':_0x4e4103(0x283),'dry_run':_0x4468e4['data'][_0x4e4103(0x274)],'file_exists':_0x436aea,'file_read_error':_0x21003f,'file_readable':_0x2c8b45!==null,'request_content':{'path':_0x4468e4[_0x4e4103(0x250)][_0x4e4103(0x263)],'code_edit':_0x4468e4[_0x4e4103(0x250)][_0x4e4103(0x236)],'instruction':_0x4468e4['data'][_0x4e4103(0x216)],'original_code':_0x2c8b45!==null?_0x2c8b45[_0x4e4103(0x193)]>0xc350?_0x2c8b45['substring'](0x0,0xc350)+_0x4e4103(0x1e0)+_0x2c8b45[_0x4e4103(0x193)]+'\x20chars)':_0x2c8b45:_0x4e4103(0x290)+(_0x21003f||_0x4e4103(0x24f))+']','original_code_length':_0x2c8b45?.[_0x4e4103(0x193)]??0x0,'model':_0x4e4103(0x283),'dry_run':_0x4468e4[_0x4e4103(0x250)][_0x4e4103(0x274)]}},'stack_trace':_0x702240 instanceof Error?_0x702240[_0x4e4103(0x1a6)]:undefined,'source':_0x4e4103(0x25a)})[_0x4e4103(0x1bb)](()=>{}),{'content':[{'type':'text','text':'❌\x20Morph\x20Edit\x20Failed:\x20'+_0x377f35}],'isError':!![]};}}case'codebase_search':{const _0x18046d=WarpGrepArgsSchema[_0x4e4103(0x1ed)](_0x32625e);if(!_0x18046d[_0x4e4103(0x289)])return{'content':[{'type':_0x4e4103(0x22d),'text':_0x4e4103(0x1bc)+_0x18046d[_0x4e4103(0x1a3)]}],'isError':!![]};const _0x34f735=_0x1f6f5c=>{const _0x57238e=_0x4e4103,_0x345c2f=[];for(const _0x3f46f6 of _0x1f6f5c||[]){const _0x8767d3=_0x3f46f6[_0x57238e(0x20e)],_0x1722f0=_0x3f46f6[_0x57238e(0x18e)];if(_0x8767d3===_0x57238e(0x190)&&_0x1722f0){const _0x4fe280=_0x1722f0[_0x57238e(0x19b)]('\x0a')[_0x57238e(0x1b2)](_0x5a1d41=>_0x5a1d41[_0x57238e(0x1f6)]());for(const _0x4bd33c of _0x4fe280){const _0x2edb19=_0x4bd33c[_0x57238e(0x257)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x2edb19){_0x345c2f[_0x57238e(0x1af)]('grep\x20\x27'+_0x2edb19[0x1]+'\x27\x20'+_0x2edb19[0x2]);continue;}const _0xbab3ba=_0x4bd33c['match'](/^read\s+(.+)$/);if(_0xbab3ba){_0x345c2f[_0x57238e(0x1af)](_0x57238e(0x1c3)+_0xbab3ba[0x1]);continue;}const _0x49638e=_0x4bd33c[_0x57238e(0x257)](/^list_directory\s+(.+)$/);if(_0x49638e){_0x345c2f[_0x57238e(0x1af)]('list_directory\x20'+_0x49638e[0x1]);continue;}}}}return _0x345c2f;},_0xb67d00=_0x421c30=>{const _0x34b0a2=_0x4e4103,_0x1775d0=[];if(!_0x421c30||!Array[_0x34b0a2(0x271)](_0x421c30))return _0x1775d0;const _0x1d2349=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':'FileNotFound','tool':'read'},{'pattern':/\[PATH ERROR\]/,'error_type':_0x34b0a2(0x21b),'tool':_0x34b0a2(0x18d)},{'pattern':/\[READ ERROR\]/,'error_type':'ReadError','tool':'read'},{'pattern':/\[UNREADABLE FILE\]/,'error_type':_0x34b0a2(0x23a),'tool':_0x34b0a2(0x18d)},{'pattern':/\[RIPGREP ERROR\]/,'error_type':_0x34b0a2(0x1ba),'tool':_0x34b0a2(0x20a)},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x34b0a2(0x209),'tool':'grep'},{'pattern':/\[BINARY FILE\]/,'error_type':_0x34b0a2(0x23a),'tool':'read'},{'pattern':/\[SYMLINK\]/,'error_type':_0x34b0a2(0x1d2),'tool':_0x34b0a2(0x18d)},{'pattern':/not a text file/,'error_type':'BinaryFile','tool':_0x34b0a2(0x18d)},{'pattern':/symbolic link/,'error_type':_0x34b0a2(0x1d2),'tool':_0x34b0a2(0x18d)},{'pattern':/Error reading file:/,'error_type':_0x34b0a2(0x1e6),'tool':_0x34b0a2(0x18d)},{'pattern':/status="error"/,'error_type':_0x34b0a2(0x1e7),'tool':_0x34b0a2(0x212)}];let _0x457c20=0x0;for(const _0x190a59 of _0x421c30){if(_0x190a59[_0x34b0a2(0x20e)]===_0x34b0a2(0x234)){_0x457c20++;const _0x4a6a2a=_0x190a59[_0x34b0a2(0x18e)];if(!_0x4a6a2a||typeof _0x4a6a2a!==_0x34b0a2(0x1e2))continue;for(const {pattern:_0x36b571,error_type:_0x19fb1f,tool:_0x5701be}of _0x1d2349){const _0x24f721=_0x4a6a2a[_0x34b0a2(0x257)](new RegExp(_0x36b571['source'],'g'));if(_0x24f721)for(const _0x41edf0 of _0x24f721){const _0x16e1f2=_0x4a6a2a[_0x34b0a2(0x239)](_0x41edf0),_0x20ca55=_0x4a6a2a[_0x34b0a2(0x233)](_0x16e1f2,Math[_0x34b0a2(0x208)](_0x16e1f2+0xc8,_0x4a6a2a[_0x34b0a2(0x193)]));_0x1775d0[_0x34b0a2(0x1af)]({'tool':_0x5701be,'error_type':_0x19fb1f,'error_message':_0x20ca55[_0x34b0a2(0x19b)]('\x0a')[0x0],'turn':_0x457c20});}}}}return _0x1775d0;};try{const _0x3a7797=a0_0x35ce7e[_0x4e4103(0x1d1)](_0x18046d[_0x4e4103(0x250)]['repo_path']),_0x1c0924=_0x18046d[_0x4e4103(0x250)]['search_type'],_0xfb3ba1=_0x1c0924===_0x4e4103(0x18c)?{'allowNames':[_0x4e4103(0x18c)]}:undefined,_0xd88ce9=new LocalRipgrepProvider(_0x3a7797,undefined,_0xfb3ba1),_0x92600d=await runWarpGrep({'searchTerm':_0x18046d['data'][_0x4e4103(0x204)],'repoRoot':_0x3a7797,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0xd88ce9,'search_type':_0x1c0924}),_0x9969d8=_0xb67d00(_0x92600d[_0x4e4103(0x195)]);_0x9969d8[_0x4e4103(0x193)]>0x0&&reportMorphError({'error_message':_0x4e4103(0x288)+_0x9969d8[_0x4e4103(0x193)]+_0x4e4103(0x200),'error_type':_0x4e4103(0x1ec),'level':_0x4e4103(0x1d8),'tool':'codebase_search','context':{'repo_path':_0x18046d['data'][_0x4e4103(0x23d)],'query':_0x18046d[_0x4e4103(0x250)][_0x4e4103(0x204)],'model':_0x4e4103(0x248),'termination_reason':_0x92600d[_0x4e4103(0x207)],'sub_tool_errors':_0x9969d8,'timings':_0x92600d[_0x4e4103(0x23b)],'tool_calls':_0x34f735(_0x92600d['messages']),'messages':_0x92600d[_0x4e4103(0x195)]?.['map'](_0x3ee5c1=>({'role':_0x3ee5c1['role'],'content':_0x3ee5c1[_0x4e4103(0x18e)]}))},'source':_0x4e4103(0x25a)})[_0x4e4103(0x1bb)](()=>{});let _0x323d11='';if(_0x92600d[_0x4e4103(0x207)]==='completed'&&_0x92600d[_0x4e4103(0x215)]?.[_0x4e4103(0x23e)]?.['files']){const _0xef3ca7=_0x92600d[_0x4e4103(0x215)]['metadata']['files'];if(_0xef3ca7[_0x4e4103(0x193)]===0x0)return _0x323d11=_0x92600d[_0x4e4103(0x215)][_0x4e4103(0x194)]||_0x4e4103(0x22a),{'content':[{'type':_0x4e4103(0x22d),'text':_0x323d11}]};const _0x6877a=[],_0x8dedb9=[_0x4e4103(0x24a)];for(const _0x42da19 of _0x92600d[_0x4e4103(0x195)]){const _0x18ca75=_0x42da19[_0x4e4103(0x20e)],_0x52f0a7=_0x42da19[_0x4e4103(0x18e)];if(_0x18ca75===_0x4e4103(0x190)&&_0x52f0a7){const _0x1b6ade=_0x52f0a7[_0x4e4103(0x19b)]('\x0a')['filter'](_0x34212f=>_0x34212f['trim']());for(const _0x3ea2d5 of _0x1b6ade){const _0x4b8c8b=_0x3ea2d5[_0x4e4103(0x257)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x4b8c8b){_0x8dedb9[_0x4e4103(0x1af)](_0x4e4103(0x1b6)+_0x4b8c8b[0x1]+_0x4e4103(0x1b4)+_0x4b8c8b[0x2]+'`');continue;}const _0x56ac10=_0x3ea2d5[_0x4e4103(0x257)](/^read\s+(.+)$/);if(_0x56ac10){_0x8dedb9[_0x4e4103(0x1af)]('-\x20Read\x20file\x20`'+_0x56ac10[0x1]+'`');continue;}const _0x330d73=_0x3ea2d5[_0x4e4103(0x257)](/^list_directory\s+(.+)$/);if(_0x330d73){_0x8dedb9[_0x4e4103(0x1af)]('-\x20Listed\x20directory\x20`'+_0x330d73[0x1]+'`');continue;}}}}_0x6877a[_0x4e4103(0x1af)](_0x8dedb9[_0x4e4103(0x1c1)]('\x0a'));const _0x48a926=['',_0x4e4103(0x211)];for(const _0x3ba80b of _0xef3ca7){if(_0x3ba80b['lines']==='*')_0x48a926[_0x4e4103(0x1af)]('-\x20'+_0x3ba80b[_0x4e4103(0x263)]+':*');else{if(Array[_0x4e4103(0x271)](_0x3ba80b[_0x4e4103(0x217)])){const _0x16c6a3=_0x3ba80b['lines'][_0x4e4103(0x1e1)](([_0x36d7df,_0x54774b])=>{if(_0x36d7df===_0x54774b)return''+_0x36d7df;return _0x36d7df+'-'+_0x54774b;});_0x48a926[_0x4e4103(0x1af)]('-\x20'+_0x3ba80b['path']+':'+_0x16c6a3[_0x4e4103(0x1c1)](','));}else _0x48a926['push']('-\x20'+_0x3ba80b[_0x4e4103(0x263)]+':*');}}_0x48a926[_0x4e4103(0x1af)](''),_0x6877a[_0x4e4103(0x1af)](_0x48a926['join']('\x0a')),_0x6877a['push'](_0x4e4103(0x254));const _0x370886=[];for(const _0x338554 of _0xef3ca7){let _0x23b7e1=a0_0x35ce7e['resolve'](_0x18046d[_0x4e4103(0x250)][_0x4e4103(0x23d)],_0x338554[_0x4e4103(0x263)]),_0x437a9b=null,_0x22347b=null;try{_0x437a9b=await a0_0x1c8efe[_0x4e4103(0x296)](_0x23b7e1,{'encoding':'utf-8'});}catch(_0x39fcc4){const _0x27b0f9=fixPathRepetition(_0x23b7e1);if(_0x27b0f9)try{_0x437a9b=await a0_0x1c8efe[_0x4e4103(0x296)](_0x27b0f9,{'encoding':'utf-8'}),_0x23b7e1=_0x27b0f9;}catch{_0x22347b=_0x39fcc4 instanceof Error?_0x39fcc4:new Error(String(_0x39fcc4));}else _0x22347b=_0x39fcc4 instanceof Error?_0x39fcc4:new Error(String(_0x39fcc4));}if(_0x437a9b!==null){const _0x5079e1=_0x437a9b['split'](/\r?\n/),_0x3dce49=[_0x4e4103(0x18b)+_0x338554['path']+'\x22>'];if(_0x338554['lines']==='*'||!Array[_0x4e4103(0x271)](_0x338554['lines']))for(let _0x418ec6=0x1;_0x418ec6<=_0x5079e1[_0x4e4103(0x193)];_0x418ec6++){const _0x1360de=_0x5079e1[_0x418ec6-0x1];_0x3dce49[_0x4e4103(0x1af)](_0x418ec6+'|\x20'+_0x1360de);}else for(const [_0x3408cd,_0x57a2bb]of _0x338554[_0x4e4103(0x217)]){_0x3dce49['length']>0x1&&_0x3dce49[_0x4e4103(0x1af)]('');for(let _0x5d39d0=_0x3408cd;_0x5d39d0<=_0x57a2bb&&_0x5d39d0<=_0x5079e1[_0x4e4103(0x193)];_0x5d39d0++){const _0x2f2cfa=_0x5079e1[_0x5d39d0-0x1];_0x3dce49[_0x4e4103(0x1af)](_0x5d39d0+'|\x20'+_0x2f2cfa);}}_0x3dce49[_0x4e4103(0x1af)]('</file>'),_0x370886['push'](_0x3dce49[_0x4e4103(0x1c1)]('\x0a'));}else _0x370886[_0x4e4103(0x1af)](_0x4e4103(0x18b)+_0x338554['path']+_0x4e4103(0x25c)+(_0x22347b?.[_0x4e4103(0x1dd)]||'Unknown\x20error')+'\x0a</file>');}_0x6877a['push'](_0x370886['join']('\x0a\x0a')),_0x323d11=_0x6877a[_0x4e4103(0x1c1)]('\x0a');const _0x1e2c8a=_0x92600d[_0x4e4103(0x249)]?.[_0x4e4103(0x1b2)](_0x1dd1c2=>_0x1dd1c2[_0x4e4103(0x1dd)]?.[_0x4e4103(0x226)]('File\x20read\x20error:'))||[];if(_0x1e2c8a['length']>0x0){const _0x14da29=_0x1e2c8a[_0x4e4103(0x1e1)](_0x42e69a=>_0x42e69a[_0x4e4103(0x1dd)])['join'](';\x20');reportMorphError({'error_message':_0x14da29,'error_type':_0x4e4103(0x21d),'context':{'tool':_0x4e4103(0x220),'repo_path':_0x18046d[_0x4e4103(0x250)][_0x4e4103(0x23d)],'query':_0x18046d[_0x4e4103(0x250)]['search_string'],'model':_0x4e4103(0x248),'termination_reason':_0x4e4103(0x1ac),'error_count':_0x1e2c8a[_0x4e4103(0x193)],'is_timeout':![],'timings':_0x92600d[_0x4e4103(0x23b)],'files_attempted':_0xef3ca7[_0x4e4103(0x1e1)](_0x35357d=>({'path':_0x35357d[_0x4e4103(0x263)],'lines':_0x35357d[_0x4e4103(0x217)]})),'tool_calls':_0x34f735(_0x92600d[_0x4e4103(0x195)]),'messages':_0x92600d[_0x4e4103(0x195)]?.[_0x4e4103(0x1e1)](_0x32dbc=>({'role':_0x32dbc[_0x4e4103(0x20e)],'content':_0x32dbc[_0x4e4103(0x18e)]})),'request_content':{'query':_0x18046d['data']['search_string'],'repo_path':_0x18046d[_0x4e4103(0x250)][_0x4e4103(0x23d)],'repoRoot':a0_0x35ce7e[_0x4e4103(0x1d1)](_0x18046d[_0x4e4103(0x250)][_0x4e4103(0x23d)]),'model':_0x4e4103(0x248)}},'source':_0x4e4103(0x25a)})[_0x4e4103(0x1bb)](()=>{});}}else{if(_0x92600d[_0x4e4103(0x207)]==='terminated'&&_0x92600d[_0x4e4103(0x249)][_0x4e4103(0x193)]>0x0){const _0x5356dd=_0x92600d[_0x4e4103(0x249)][_0x4e4103(0x1e1)](_0x4ec44e=>_0x4ec44e[_0x4e4103(0x1dd)])[_0x4e4103(0x1c1)](';\x20');_0x323d11=_0x4e4103(0x25f)+_0x5356dd;const _0x2afd61=_0x5356dd[_0x4e4103(0x272)]()['includes']('timeout')||_0x5356dd['toLowerCase']()[_0x4e4103(0x1f7)]('timed\x20out')||_0x5356dd['toLowerCase']()[_0x4e4103(0x1f7)](_0x4e4103(0x22b)),_0x34f17a=_0x92600d[_0x4e4103(0x215)]?.[_0x4e4103(0x23e)]?.[_0x4e4103(0x28a)],_0x1b90bb=_0x92600d['errors'][0x0];reportMorphError({'error_message':_0x5356dd,'error_type':_0x2afd61?_0x4e4103(0x265):_0x1b90bb?.[_0x4e4103(0x1b5)]?.[_0x4e4103(0x1f9)]||_0x4e4103(0x259),'context':{'tool':_0x4e4103(0x220),'repo_path':_0x18046d['data'][_0x4e4103(0x23d)],'query':_0x18046d[_0x4e4103(0x250)]['search_string'],'model':'morph-warp-grep-v1-1111v0','termination_reason':_0x92600d[_0x4e4103(0x207)],'error_count':_0x92600d['errors'][_0x4e4103(0x193)],'is_timeout':_0x2afd61,'timings':_0x92600d[_0x4e4103(0x23b)],'files_attempted':_0x34f17a?.[_0x4e4103(0x1e1)](_0x2c4253=>({'path':_0x2c4253[_0x4e4103(0x263)],'lines':_0x2c4253[_0x4e4103(0x217)]})),'tool_calls':_0x34f735(_0x92600d[_0x4e4103(0x195)]),'messages':_0x92600d['messages']?.['map'](_0x37f5ac=>({'role':_0x37f5ac[_0x4e4103(0x20e)],'content':_0x37f5ac[_0x4e4103(0x18e)]})),'request_content':{'query':_0x18046d[_0x4e4103(0x250)][_0x4e4103(0x204)],'repo_path':_0x18046d[_0x4e4103(0x250)][_0x4e4103(0x23d)],'repoRoot':a0_0x35ce7e[_0x4e4103(0x1d1)](_0x18046d[_0x4e4103(0x250)]['repo_path']),'model':_0x4e4103(0x248)}},'stack_trace':_0x1b90bb?.[_0x4e4103(0x1a6)]||undefined,'source':'mcp-filesystem'})['catch'](()=>{});}else _0x323d11='Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.';}return{'content':[{'type':'text','text':_0x323d11}]};}catch(_0x560f5c){const _0x1b316b=_0x560f5c instanceof Error?_0x560f5c[_0x4e4103(0x1dd)]:String(_0x560f5c),_0x4b54a1=_0x1b316b[_0x4e4103(0x272)]()[_0x4e4103(0x1f7)](_0x4e4103(0x1ad))||_0x1b316b[_0x4e4103(0x272)]()[_0x4e4103(0x1f7)](_0x4e4103(0x1b8))||_0x1b316b[_0x4e4103(0x272)]()[_0x4e4103(0x1f7)](_0x4e4103(0x22b))||_0x560f5c instanceof Error&&_0x560f5c[_0x4e4103(0x1f9)]===_0x4e4103(0x265);return reportMorphError({'error_message':_0x1b316b,'error_type':_0x4b54a1?_0x4e4103(0x265):_0x560f5c instanceof Error?_0x560f5c[_0x4e4103(0x1b5)][_0x4e4103(0x1f9)]:_0x4e4103(0x268),'context':{'tool':_0x4e4103(0x220),'repo_path':_0x18046d[_0x4e4103(0x250)]['repo_path'],'query':_0x18046d[_0x4e4103(0x250)]['search_string'],'model':_0x4e4103(0x248),'is_timeout':_0x4b54a1,'exception_phase':_0x4e4103(0x238),'request_content':{'query':_0x18046d[_0x4e4103(0x250)][_0x4e4103(0x204)],'repo_path':_0x18046d[_0x4e4103(0x250)][_0x4e4103(0x23d)],'repoRoot':a0_0x35ce7e['resolve'](_0x18046d[_0x4e4103(0x250)][_0x4e4103(0x23d)]),'model':_0x4e4103(0x248)}},'stack_trace':_0x560f5c instanceof Error?_0x560f5c[_0x4e4103(0x1a6)]:undefined,'source':_0x4e4103(0x25a)})[_0x4e4103(0x1bb)](()=>{}),{'content':[{'type':'text','text':_0x4e4103(0x1eb)+_0x1b316b}],'isError':![]};}}case'github_codebase_search':{const _0x488ca2=WarpGrepGitHubArgsSchema[_0x4e4103(0x1ed)](_0x32625e);if(!_0x488ca2['success'])return{'content':[{'type':_0x4e4103(0x22d),'text':'Invalid\x20arguments:\x20'+_0x488ca2[_0x4e4103(0x1a3)]}],'isError':!![]};const _0x2a6e87=_0x488ca2[_0x4e4103(0x250)][_0x4e4103(0x1c2)]||_0x488ca2[_0x4e4103(0x250)][_0x4e4103(0x27b)];if(!_0x2a6e87)return{'content':[{'type':_0x4e4103(0x22d),'text':_0x4e4103(0x295)}],'isError':!![]};const _0xf21d43=MORPH_API_KEY;if(!_0xf21d43)throw new Error('MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.');const _0x2c22d7=Date[_0x4e4103(0x1de)]();logMcpStderr(_0x4e4103(0x1c6)+_0x2a6e87+_0x4e4103(0x25d)+_0x488ca2[_0x4e4103(0x250)][_0x4e4103(0x204)]+'\x22');try{const _0x14a830=new WarpGrepClient({'morphApiKey':_0xf21d43,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0x91ae98=await _0x14a830[_0x4e4103(0x243)]({'searchTerm':_0x488ca2[_0x4e4103(0x250)]['search_string'],'github':_0x2a6e87,'branch':_0x488ca2['data'][_0x4e4103(0x244)]}),_0x1203ba=Date[_0x4e4103(0x1de)]()-_0x2c22d7;logMcpStderr('[github_codebase_search]\x20Done\x20in\x20'+_0x1203ba+'ms.\x20Success:\x20'+_0x91ae98[_0x4e4103(0x289)]);const _0x97d967=formatResult(_0x91ae98);return{'content':[{'type':'text','text':_0x97d967}]};}catch(_0x215074){const _0x49072c=Date[_0x4e4103(0x1de)]()-_0x2c22d7,_0x43868e=_0x215074 instanceof Error?_0x215074[_0x4e4103(0x1dd)]:String(_0x215074);return logMcpStderr(_0x4e4103(0x1ce)+_0x49072c+_0x4e4103(0x1a7),_0x43868e),reportMorphError({'error_message':_0x43868e,'error_type':_0x215074 instanceof Error?_0x215074['constructor'][_0x4e4103(0x1f9)]:_0x4e4103(0x268),'context':{'tool':_0x4e4103(0x27d),'github_url':_0x2a6e87,'search_string':_0x488ca2[_0x4e4103(0x250)][_0x4e4103(0x204)],'branch':_0x488ca2[_0x4e4103(0x250)][_0x4e4103(0x244)]},'stack_trace':_0x215074 instanceof Error?_0x215074[_0x4e4103(0x1a6)]:undefined,'source':'mcp-filesystem','tool':'github_codebase_search','latency_ms':_0x49072c})['catch'](()=>{}),{'content':[{'type':_0x4e4103(0x22d),'text':_0x4e4103(0x284)+_0x43868e}],'isError':![]};}}default:throw new Error(_0x4e4103(0x276)+_0x120311);}}catch(_0x5677f7){const _0x2bd155=_0x5677f7 instanceof Error?_0x5677f7[_0x4e4103(0x1dd)]:String(_0x5677f7);return reportMorphError({'error_message':_0x2bd155,'error_type':_0x5677f7 instanceof Error?_0x5677f7[_0x4e4103(0x1b5)][_0x4e4103(0x1f9)]:_0x4e4103(0x268),'context':{'tool':_0x120311,'arguments':_0x32625e?JSON[_0x4e4103(0x223)](_0x32625e)[_0x4e4103(0x233)](0x0,0x1f4):undefined,'mcp_server_version':_0x4e4103(0x1b3)},'stack_trace':_0x5677f7 instanceof Error?_0x5677f7['stack']:undefined,'source':'mcp-filesystem'})[_0x4e4103(0x1bb)](()=>{}),{'content':[{'type':_0x4e4103(0x22d),'text':_0x4e4103(0x25f)+_0x2bd155}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x44ede4){const _0x5134dd=a0_0x444bf9,_0x2aba02=await getValidRootDirectories(_0x44ede4);if(_0x2aba02[_0x5134dd(0x193)]>0x0)allowedDirectories=[..._0x2aba02],logMcpStderr(_0x5134dd(0x230)+_0x2aba02['length']+_0x5134dd(0x25e));else{logMcpStderr(_0x5134dd(0x189));if(ENABLE_WORKSPACE_MODE)try{const _0x177a91=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x177a91&&(allowedDirectories=[_0x177a91],logMcpStderr(_0x5134dd(0x26c)+_0x177a91));}catch(_0x15bb65){logMcpStderr('Warning:\x20Workspace\x20fallback\x20failed:\x20'+_0x15bb65);}}}server['setNotificationHandler'](RootsListChangedNotificationSchema,async()=>{const _0x76134e=a0_0x444bf9;try{const _0x455f74=await server[_0x76134e(0x1e8)]();_0x455f74&&'roots'in _0x455f74&&await updateAllowedDirectoriesFromRoots(_0x455f74[_0x76134e(0x27c)]);}catch(_0x290852){logMcpStderr(_0x76134e(0x210),_0x290852 instanceof Error?_0x290852[_0x76134e(0x1dd)]:String(_0x290852));}}),server[a0_0x444bf9(0x19d)]=async()=>{const _0x1d4dc4=a0_0x444bf9,_0x4e882b=server[_0x1d4dc4(0x26a)]();if(_0x4e882b?.[_0x1d4dc4(0x27c)])try{const _0x5f41f7=await server[_0x1d4dc4(0x1e8)]();_0x5f41f7&&_0x1d4dc4(0x27c)in _0x5f41f7?await updateAllowedDirectoriesFromRoots(_0x5f41f7[_0x1d4dc4(0x27c)]):logMcpStderr(_0x1d4dc4(0x232));}catch(_0xd6e46c){logMcpStderr(_0x1d4dc4(0x292),_0xd6e46c instanceof Error?_0xd6e46c[_0x1d4dc4(0x1dd)]:String(_0xd6e46c));}else{if(allowedDirectories['length']>0x0)logMcpStderr(_0x1d4dc4(0x1b0),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)logMcpStderr(_0x1d4dc4(0x1fc));else throw new Error(_0x1d4dc4(0x23c));}}};async function runServer(){const _0xf8ffd7=a0_0x444bf9,_0x503084=new StdioServerTransport();await server[_0xf8ffd7(0x255)](_0x503084),logMcpStderr(_0xf8ffd7(0x22c)),allowedDirectories[_0xf8ffd7(0x193)]===0x0&&logMcpStderr(_0xf8ffd7(0x1b9));}function a0_0x2d77(_0x2ca8b2,_0x321791){_0x2ca8b2=_0x2ca8b2-0x189;const _0x20ce27=a0_0x20ce();let _0x2d77dc=_0x20ce27[_0x2ca8b2];return _0x2d77dc;}runServer()[a0_0x444bf9(0x1bb)](_0x4c0ce1=>{const _0x1bd90c=a0_0x444bf9;logMcpStderr(_0x1bd90c(0x275),_0x4c0ce1),process['exit'](0x1);});
|
|
2
|
+
const a0_0x5417d0=a0_0x462f;(function(_0x24e0c6,_0x4d228c){const _0x48b43e=a0_0x462f,_0x4d6c68=_0x24e0c6();while(!![]){try{const _0x2dffb9=-parseInt(_0x48b43e(0x1f0))/0x1*(-parseInt(_0x48b43e(0x1da))/0x2)+-parseInt(_0x48b43e(0x16b))/0x3+-parseInt(_0x48b43e(0x181))/0x4*(parseInt(_0x48b43e(0x178))/0x5)+-parseInt(_0x48b43e(0x1f9))/0x6+-parseInt(_0x48b43e(0x1f3))/0x7+-parseInt(_0x48b43e(0x15a))/0x8*(-parseInt(_0x48b43e(0x1d4))/0x9)+parseInt(_0x48b43e(0x1b3))/0xa*(parseInt(_0x48b43e(0x172))/0xb);if(_0x2dffb9===_0x4d228c)break;else _0x4d6c68['push'](_0x4d6c68['shift']());}catch(_0xfc3354){_0x4d6c68['push'](_0x4d6c68['shift']());}}}(a0_0x4d4b,0x86f0e));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_0x8c62a7 from'fs/promises';import a0_0x5e6b08 from'path';import a0_0x4a6458 from'os';import{createRequire}from'module';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';import{getOperatingSystemType,logMcpStderr}from'./log-utils.js';import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider,GITHUB_SEARCH_TOOL_NAME,GITHUB_SEARCH_DESCRIPTION}from'@morphllm/morphsdk/tools/warp-grep';import{WarpGrepClient,formatResult}from'@morphllm/morphsdk/tools/warp-grep/client';import a0_0xb47080 from'axios';function fixPathRepetition(_0x5ac938){const _0x3eb4a4=a0_0x462f,_0xaa0649=_0x5ac938[_0x3eb4a4(0x1f6)](a0_0x5e6b08[_0x3eb4a4(0x177)])['filter'](Boolean);if(_0xaa0649[_0x3eb4a4(0x217)]<0x2)return null;for(let _0x21021f=Math[_0x3eb4a4(0x15b)](_0xaa0649[_0x3eb4a4(0x217)]/0x2);_0x21021f>=0x1;_0x21021f--){for(let _0x25de96=0x0;_0x25de96<=_0xaa0649[_0x3eb4a4(0x217)]-0x2*_0x21021f;_0x25de96++){const _0x112900=_0xaa0649[_0x3eb4a4(0x162)](_0x25de96,_0x25de96+_0x21021f),_0x5d82ee=_0xaa0649[_0x3eb4a4(0x162)](_0x25de96+_0x21021f,_0x25de96+0x2*_0x21021f);if(_0x112900['every']((_0x5d3ff7,_0x55b153)=>_0x5d3ff7===_0x5d82ee[_0x55b153])){const _0x55987f=[..._0xaa0649[_0x3eb4a4(0x162)](0x0,_0x25de96),..._0xaa0649[_0x3eb4a4(0x162)](_0x25de96+_0x21021f)];return a0_0x5e6b08[_0x3eb4a4(0x177)]+_0x55987f['join'](a0_0x5e6b08['sep']);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x3653c0=a0_0x462f;try{const _0x2e9a55=require('../package.json');return _0x2e9a55[_0x3653c0(0x159)]??'unknown';}catch(_0x52908c){return logMcpStderr('Warning:\x20Unable\x20to\x20determine\x20package\x20version:',_0x52908c),'unknown';}}function printHelp(){const _0x3e6402=a0_0x462f;console[_0x3e6402(0x1ad)](_0x3e6402(0x1d9)+getPackageVersion()),console[_0x3e6402(0x1ad)]('\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]'),console[_0x3e6402(0x1ad)]('\x0aOptions:'),console['log']('\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)'),console[_0x3e6402(0x1ad)](_0x3e6402(0x207)),console[_0x3e6402(0x1ad)](_0x3e6402(0x20d)),console['log']('\x0aExamples:'),console['log']('\x20\x20morph-mcp'),console['log'](_0x3e6402(0x237));}const cliArgs=process[a0_0x5417d0(0x23a)]['slice'](0x2),VERSION_FLAGS=new Set([a0_0x5417d0(0x153),'-v','-V']),HELP_FLAGS=new Set([a0_0x5417d0(0x23f),'-h']);cliArgs[a0_0x5417d0(0x15c)](_0x455fe2=>VERSION_FLAGS[a0_0x5417d0(0x17f)](_0x455fe2))&&(console[a0_0x5417d0(0x1ad)](a0_0x5417d0(0x1d9)+getPackageVersion()),process[a0_0x5417d0(0x198)](0x0));cliArgs[a0_0x5417d0(0x15c)](_0xdaa2a2=>HELP_FLAGS[a0_0x5417d0(0x17f)](_0xdaa2a2))&&(printHelp(),process['exit'](0x0));function a0_0x462f(_0x15d807,_0x4f2f2f){_0x15d807=_0x15d807-0x150;const _0x4d4ba5=a0_0x4d4b();let _0x462f7a=_0x4d4ba5[_0x15d807];return _0x462f7a;}function getCliArg(_0xe1d6af){const _0x326c3c=a0_0x5417d0;for(let _0x538de4=0x0;_0x538de4<cliArgs[_0x326c3c(0x217)];_0x538de4++){const _0x36261e=cliArgs[_0x538de4];if(_0x36261e[_0x326c3c(0x239)]('--'+_0xe1d6af+'='))return _0x36261e[_0x326c3c(0x162)](('--'+_0xe1d6af+'=')[_0x326c3c(0x217)]);if(_0x36261e==='--'+_0xe1d6af&&_0x538de4+0x1<cliArgs[_0x326c3c(0x217)])return cliArgs[_0x538de4+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs[a0_0x5417d0(0x217)];i++){const arg=cliArgs[i];if(VERSION_FLAGS[a0_0x5417d0(0x17f)](arg)||HELP_FLAGS[a0_0x5417d0(0x17f)](arg))continue;if(arg[a0_0x5417d0(0x239)]('--api-key='))continue;if(arg===a0_0x5417d0(0x22a)){i++;continue;}args['push'](arg);}const WORKSPACE_ROOT=process[a0_0x5417d0(0x190)][a0_0x5417d0(0x17d)]||process[a0_0x5417d0(0x190)][a0_0x5417d0(0x1a0)]||process['cwd'](),ENABLE_WORKSPACE_MODE=process['env'][a0_0x5417d0(0x1c4)]!=='false',MORPH_API_KEY=getCliArg(a0_0x5417d0(0x1d6))??process[a0_0x5417d0(0x190)][a0_0x5417d0(0x1d1)],MORPH_API_URL=process[a0_0x5417d0(0x190)][a0_0x5417d0(0x18e)],MORPH_WARP_GREP_TIMEOUT=process[a0_0x5417d0(0x190)][a0_0x5417d0(0x167)]?parseInt(process['env'][a0_0x5417d0(0x167)],0xa):undefined,OPERATING_SYSTEM_TYPE=getOperatingSystemType(),KNOWN_TOOL_NAMES=new Set([a0_0x5417d0(0x225),a0_0x5417d0(0x248),a0_0x5417d0(0x1c7)]),DISABLED_TOOLS=process['env'][a0_0x5417d0(0x161)]?new Set(process[a0_0x5417d0(0x190)][a0_0x5417d0(0x161)][a0_0x5417d0(0x1f6)](',')[a0_0x5417d0(0x1e2)](_0x82d812=>_0x82d812[a0_0x5417d0(0x1e4)]())[a0_0x5417d0(0x1bb)](_0x4c948c=>_0x4c948c[a0_0x5417d0(0x217)]>0x0)):new Set();if(DISABLED_TOOLS[a0_0x5417d0(0x1b5)]>0x0){for(const tool of DISABLED_TOOLS){!KNOWN_TOOL_NAMES[a0_0x5417d0(0x17f)](tool)&&console[a0_0x5417d0(0x246)](a0_0x5417d0(0x1e1)+tool+a0_0x5417d0(0x1c5)+[...KNOWN_TOOL_NAMES][a0_0x5417d0(0x1b0)](',\x20'));}console[a0_0x5417d0(0x246)]('Disabled\x20tools:\x20'+[...DISABLED_TOOLS][a0_0x5417d0(0x1b0)](',\x20'));}MORPH_API_KEY&&!MORPH_API_KEY[a0_0x5417d0(0x239)](a0_0x5417d0(0x191))&&!MORPH_API_KEY[a0_0x5417d0(0x239)]('morph-')&&logMcpStderr(a0_0x5417d0(0x23c));async function reportMorphError(_0x39194e){const _0x17fe52=a0_0x5417d0;try{await a0_0xb47080[_0x17fe52(0x171)]('https://morphllm.com/api/error-report',{..._0x39194e,'timestamp':new Date()[_0x17fe52(0x1cf)](),'source':_0x39194e['source']||_0x17fe52(0x17b),'os_type':OPERATING_SYSTEM_TYPE,'context':{'os_type':OPERATING_SYSTEM_TYPE,..._0x39194e[_0x17fe52(0x1c1)]}},{'timeout':0x1388,'headers':{'Content-Type':_0x17fe52(0x1fe),'Authorization':_0x17fe52(0x19e)+MORPH_API_KEY}});}catch{}}args[a0_0x5417d0(0x217)]===0x0&&!ENABLE_WORKSPACE_MODE&&(logMcpStderr('Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]'),logMcpStderr(a0_0x5417d0(0x1f1)),logMcpStderr(a0_0x5417d0(0x1f7)),logMcpStderr(a0_0x5417d0(0x234)),logMcpStderr(a0_0x5417d0(0x16e)),logMcpStderr(a0_0x5417d0(0x17e)));function normalizePath(_0x104652){return a0_0x5e6b08['normalize'](_0x104652);}function expandHome(_0x5c9abb){const _0x860d6=a0_0x5417d0;if(_0x5c9abb[_0x860d6(0x239)]('~/')||_0x5c9abb==='~')return a0_0x5e6b08['join'](a0_0x4a6458[_0x860d6(0x1fc)](),_0x5c9abb['slice'](0x1));return _0x5c9abb;}let allowedDirectories=await Promise[a0_0x5417d0(0x1f5)](args[a0_0x5417d0(0x1e2)](async _0x942478=>{const _0x52b470=a0_0x5417d0,_0x522dc4=expandHome(_0x942478),_0x2e676b=a0_0x5e6b08[_0x52b470(0x19b)](_0x522dc4);try{const _0x3dd2f1=await a0_0x8c62a7[_0x52b470(0x183)](_0x2e676b);return normalizePath(_0x3dd2f1);}catch(_0x5e9405){return normalizePath(_0x2e676b);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x5417d0(0x217)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x5417d0(0x199)](workspaceDir),logMcpStderr(a0_0x5417d0(0x22c)+workspaceDir+'\x20as\x20allowed\x20directory'));}catch(a0_0x2c221d){logMcpStderr(a0_0x5417d0(0x1e7)+a0_0x2c221d);}function a0_0x4d4b(){const _0x4f756e=['Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','morph-v3-fast','Unknown\x20error','metadata','ENOENT','Cargo.toml','oninitialized','Here\x20is\x20the\x20content\x20of\x20files:\x0a','57481lRCOey','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','3604804CkEvTy','Morph\x20Edit\x20','all','split','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','branch','2999586VZEOfI','default','Benefits:\x0a','homedir','read\x20','application/json','toLowerCase','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','finish','changes','timed\x20out','Repository\x20owner/repo\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.','added\x20','Invalid\x20arguments:\x20','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','WarpGrepError','For\x20deletions:\x0a','node_modules','repo_path','Error:\x20','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','timeout','.\x20Changes:\x20','inputSchema','github_url','safeParse','messages','search_string','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20toolin\x20its\x20search.\x20','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.','length','lines','name','[github_codebase_search]\x20Searching\x20','basename','object','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','ReadError','morph-warp-grep-v1-1111v0','setNotificationHandler','code_edit','Repository\x20identifier','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','morph-mcp','edit_file','Search\x20type\x20hint.\x20Use\x20\x27node_modules\x27\x20when\x20searching\x20inside\x20node_modules\x20or\x20other\x20dependency\x20directories\x20that\x20are\x20normally\x20excluded.','isDirectory','terminated','Applied','--api-key','Preview\x20changes\x20without\x20applying\x20them.','Workspace\x20mode\x20enabled:\x20Using\x20','isArray','constructor','owner_repo','files','getClientCapabilities','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','Failed\x20to\x20request\x20roots\x20from\x20client:','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','\x20disabled\x20via\x20DISABLED_TOOLS','\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo','0.2.0','startsWith','argv','Rules:\x0a','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','terminationReason','enum','--help','\x22>\x0aError\x20reading\x20file:\x20','catch','read','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','WarpGrep\x20sub-tool\x20errors:\x20','[github_codebase_search]\x20Done\x20in\x20','error','Parent\x20directory\x20does\x20not\x20exist:\x20','codebase_search','setRequestHandler','dirname','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','access','--version','data','instruction','PathError','includes','\x20-\x20','version','709408woQWFS','floor','some','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','assistant','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','No\x20relevant\x20code\x20found\x20for\x20the\x20query.','DISABLED_TOOLS','slice','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','now','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','MORPH_WARP_GREP_TIMEOUT','completionId','indexOf','Tool\x20\x22','2350959nGTscM','\x27\x20in\x20`','.cursor','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','etimedout','success','post','25139323htUBcR','substring','Warning:\x20Workspace\x20fallback\x20failed:\x20','grep','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','sep','5QwWnhS','description','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','mcp-filesystem','Unknown\x20tool:\x20','WORKSPACE_ROOT','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','has','Error\x20accessing\x20directory\x20','905732gFOixl','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','realpath','❌\x20Morph\x20Edit\x20Failed:\x20','code','.\x20Path:\x20','Tool\x20','roots','\x20for:\x20\x22','content','unknown','TimeoutError','describe','MORPH_API_URL','Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)','env','sk-','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','Natural-language\x20question/description\x20about\x20the\x20code\x20you\x20want\x20to\x20understand.\x20Good\x20example:\x20\x22Where\x20does\x20auth\x20get\x20handled,\x20what\x20are\x20the\x20different\x20oauth\x20methods\x20supported?\x22,\x20\x22Trace\x20all\x20code\x20that\x20relates\x20to\x20how\x20data\x20is\x20injested\x20and\x20processed\x22.\x20Bad\x20example:\x20\x22auth()\x22,\x20\x22auth\x20login\x20dashoard\x20google\x20email\x22.\x20This\x20tool\x20does\x20NOT\x20accept\x20regex,\x20keyword\x20dumps,\x20or\x20symbol-only\x20queries.','Please\x20provide\x20github\x20search\x20url\x20or\x20owner/repo\x20id','Error\x20running\x20fast\x20context\x20search:\x20','tsconfig.json','exit','push','\x20is\x20not\x20a\x20directory','resolve','Specific\x20commit\x20hash\x20to\x20search','params','Bearer\x20','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','PWD','Failed\x20to\x20read\x20file:\x20','payload','source','completed_with_file_errors','SymlinkError','path','package.json','BinaryFile','ms.\x20Success:\x20','runWarpGrep_call','\x22\x20is\x20disabled\x20via\x20DISABLED_TOOLS\x20environment\x20variable','linesAdded','log','min',',\x20removed\x20','join','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','array','10lHwzmq','Fallback:\x20Using\x20workspace\x20root\x20','size','composer.json','requiresApiKey','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','match','GitHub\x20repository\x20URL\x20to\x20search\x20(e.g.\x20\x27https://github.com/vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.','filter','ms:','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','FileReadError','message','grep\x20\x27','context','dryRun','role','ENABLE_WORKSPACE_MODE','\x22.\x20Known\x20tools:\x20','timings','github_codebase_search','UnknownError','Morph\x20FastApply\x20failed\x20without\x20error\x20message','optional','completed','list_directory\x20','\x20valid\x20directories','connect','toISOString','RipgrepNotAvailable','MORPH_API_KEY',',\x20modified\x20','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','18nqbwUg','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','api-key','readFile','text','@morphllm/morphmcp\x20','4yNEwKf','number','utf-8','string','\x0a...\x20(truncated,\x20total:\x20','-\x20Read\x20file\x20`','listRoots','Warning:\x20DISABLED_TOOLS\x20contains\x20unknown\x20tool\x20\x22','map','errors','trim','stack','\x20error(s)','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20'];a0_0x4d4b=function(){return _0x4f756e;};return a0_0x4d4b();}async function detectWorkspaceRoot(_0x4020a6){const _0x76ea26=a0_0x5417d0;let _0x567059=a0_0x5e6b08[_0x76ea26(0x19b)](_0x4020a6);const _0x3d04e9=['.git','.vscode',_0x76ea26(0x1a7),_0x76ea26(0x1ed),'pyproject.toml','go.mod',_0x76ea26(0x16d),_0x76ea26(0x197),_0x76ea26(0x1b6)];while(_0x567059!==a0_0x5e6b08['dirname'](_0x567059)){for(const _0x2413a6 of _0x3d04e9){const _0x51b6bb=a0_0x5e6b08['join'](_0x567059,_0x2413a6);try{return await a0_0x8c62a7[_0x76ea26(0x152)](_0x51b6bb),normalizePath(_0x567059);}catch{}}_0x567059=a0_0x5e6b08[_0x76ea26(0x150)](_0x567059);}return normalizePath(_0x4020a6);}await Promise[a0_0x5417d0(0x1f5)](args['map'](async _0x1ebb72=>{const _0x5beeff=a0_0x5417d0;try{const _0x3277f4=await a0_0x8c62a7['stat'](expandHome(_0x1ebb72));!_0x3277f4[_0x5beeff(0x227)]()&&(logMcpStderr(_0x5beeff(0x20c)+_0x1ebb72+_0x5beeff(0x19a)),process[_0x5beeff(0x198)](0x1));}catch(_0x173192){logMcpStderr(_0x5beeff(0x180)+_0x1ebb72+':',_0x173192),process[_0x5beeff(0x198)](0x1);}}));async function validatePath(_0x56a20b){const _0x35b9ce=a0_0x5417d0,_0x31ca28=expandHome(_0x56a20b),_0x44e543=a0_0x5e6b08['resolve'](_0x31ca28);try{const _0x534708=await a0_0x8c62a7[_0x35b9ce(0x183)](_0x44e543);return _0x534708;}catch(_0x56a1fc){if(_0x56a1fc[_0x35b9ce(0x185)]===_0x35b9ce(0x1ec)){const _0x1ba3bb=a0_0x5e6b08['dirname'](_0x44e543);try{const _0x33a5c0=await a0_0x8c62a7['realpath'](_0x1ba3bb);return a0_0x5e6b08['join'](_0x33a5c0,a0_0x5e6b08[_0x35b9ce(0x21b)](_0x44e543));}catch{throw new Error(_0x35b9ce(0x247)+_0x1ba3bb);}}throw _0x56a1fc;}}const MorphEditFileArgsSchema=z[a0_0x5417d0(0x21c)]({'path':z[a0_0x5417d0(0x1dd)](),'code_edit':z[a0_0x5417d0(0x1dd)]()['describe'](a0_0x5417d0(0x182)),'instruction':z[a0_0x5417d0(0x1dd)]()[a0_0x5417d0(0x18d)](a0_0x5417d0(0x223)),'dryRun':z['boolean']()[a0_0x5417d0(0x1fa)](![])['describe'](a0_0x5417d0(0x22b))}),CODEBASE_SEARCH_QUERY_DESCRIPTION=a0_0x5417d0(0x194),WarpGrepArgsSchema=z[a0_0x5417d0(0x21c)]({'search_string':z['string']()[a0_0x5417d0(0x18d)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repo_path':z[a0_0x5417d0(0x1dd)]()['describe']('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'),'search_type':z[a0_0x5417d0(0x23e)]([a0_0x5417d0(0x1fa),a0_0x5417d0(0x20a)])[a0_0x5417d0(0x1ca)]()[a0_0x5417d0(0x18d)](a0_0x5417d0(0x226))}),WarpGrepGitHubArgsSchema=z['object']({'search_string':z[a0_0x5417d0(0x1dd)]()['describe'](CODEBASE_SEARCH_QUERY_DESCRIPTION),'github_url':z['string']()[a0_0x5417d0(0x1ca)]()[a0_0x5417d0(0x18d)](a0_0x5417d0(0x1ba)),'owner_repo':z[a0_0x5417d0(0x1dd)]()['optional']()[a0_0x5417d0(0x18d)](a0_0x5417d0(0x204)),'branch':z[a0_0x5417d0(0x1dd)]()[a0_0x5417d0(0x1ca)]()['describe'](a0_0x5417d0(0x18f))}),CodebaseSearchArgsSchema=z[a0_0x5417d0(0x21c)]({'query':z[a0_0x5417d0(0x1dd)]()[a0_0x5417d0(0x18d)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repoId':z[a0_0x5417d0(0x1dd)]()[a0_0x5417d0(0x18d)](a0_0x5417d0(0x222)),'branch':z[a0_0x5417d0(0x1dd)]()[a0_0x5417d0(0x1ca)]()['describe'](a0_0x5417d0(0x193)),'commitHash':z[a0_0x5417d0(0x1dd)]()[a0_0x5417d0(0x1ca)]()['describe'](a0_0x5417d0(0x19c)),'targetDirectories':z[a0_0x5417d0(0x1b2)](z['string']())[a0_0x5417d0(0x1fa)]([])[a0_0x5417d0(0x18d)](a0_0x5417d0(0x176)),'limit':z[a0_0x5417d0(0x1db)]()[a0_0x5417d0(0x1ca)]()[a0_0x5417d0(0x1fa)](0xa)[a0_0x5417d0(0x18d)]('Max\x20results\x20to\x20return')}),server=new Server({'name':a0_0x5417d0(0x224),'version':a0_0x5417d0(0x238)},{'capabilities':{'tools':{}}});server['setRequestHandler'](ListToolsRequestSchema,async()=>{const _0x778dc1=a0_0x5417d0,_0x17e72b=[{'name':'edit_file','description':'**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a'+_0x778dc1(0x151)+'🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\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'+_0x778dc1(0x1fb)+_0x778dc1(0x15f)+_0x778dc1(0x165)+_0x778dc1(0x232)+_0x778dc1(0x163)+_0x778dc1(0x19f)+_0x778dc1(0x243)+_0x778dc1(0x1f2)+_0x778dc1(0x209)+'-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a'+'-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a'+_0x778dc1(0x23b)+'-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a'+_0x778dc1(0x200)+'-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a'+_0x778dc1(0x1b8)+_0x778dc1(0x17a)+_0x778dc1(0x192)+'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':_0x778dc1(0x248),'description':'A\x20code\x20exploration\x20tool,\x20use\x20this\x20tool\x20when\x20exploring\x20an\x20unfamiliar\x20codebase,\x20and\x20you\x27re\x20unsure\x20of\x20the\x20exact\x20file\x20or\x20string\x20to\x20look\x20for.\x20This\x20tool\x20will\x20find\x20all\x20relevant\x20bits\x20of\x20code\x20given\x20a\x20natural\x20lanugage\x20description,\x20or\x20questin\x20of\x20the\x20thing\x20you\x27re\x20looking\x20for.\x20'+CODEBASE_SEARCH_QUERY_DESCRIPTION+'\x20'+_0x778dc1(0x215)+'You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.\x20'+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':GITHUB_SEARCH_TOOL_NAME,'description':GITHUB_SEARCH_DESCRIPTION,'inputSchema':zodToJsonSchema(WarpGrepGitHubArgsSchema),'requiresApiKey':!![]}],_0x40b5d9=_0x17e72b['filter'](_0x4b52e3=>{const _0x2dadf0=_0x778dc1;if(DISABLED_TOOLS[_0x2dadf0(0x17f)](_0x4b52e3['name']))return console[_0x2dadf0(0x246)](_0x2dadf0(0x187)+_0x4b52e3[_0x2dadf0(0x219)]+_0x2dadf0(0x236)),![];if(_0x2dadf0(0x1b7)in _0x4b52e3&&_0x4b52e3[_0x2dadf0(0x1b7)]&&!MORPH_API_KEY)return logMcpStderr('Warning:\x20'+_0x4b52e3[_0x2dadf0(0x219)]+_0x2dadf0(0x166)),![];return!![];});return{'tools':_0x40b5d9['map'](_0x4aed2f=>({'name':_0x4aed2f[_0x778dc1(0x219)],'description':_0x4aed2f[_0x778dc1(0x179)],'inputSchema':_0x4aed2f[_0x778dc1(0x210)]}))};}),server[a0_0x5417d0(0x249)](CallToolRequestSchema,async _0x1a873a=>{const _0xd71059=a0_0x5417d0,{name:_0x4959a5,arguments:_0x52ad0a}=_0x1a873a[_0xd71059(0x19d)];try{if(DISABLED_TOOLS[_0xd71059(0x17f)](_0x4959a5))throw new Error(_0xd71059(0x16a)+_0x4959a5+_0xd71059(0x1ab));switch(_0x4959a5){case _0xd71059(0x225):{const _0x52b535=MorphEditFileArgsSchema['safeParse'](_0x52ad0a);if(!_0x52b535[_0xd71059(0x170)])throw new Error(_0xd71059(0x1d5)+_0x52b535[_0xd71059(0x246)]);const _0x339993=await validatePath(_0x52b535[_0xd71059(0x154)][_0xd71059(0x1a6)]);let _0x16b3dc=null,_0x13dea5=!![],_0x2de8f2=null;try{_0x16b3dc=await a0_0x8c62a7[_0xd71059(0x1d7)](_0x339993,_0xd71059(0x1dc));}catch(_0x580b2f){const _0x2ac70c=_0x580b2f[_0xd71059(0x185)];_0x2ac70c===_0xd71059(0x1ec)?(_0x13dea5=![],_0x16b3dc=''):(_0x2de8f2=_0xd71059(0x1a1)+(_0x2ac70c||_0xd71059(0x18b))+_0xd71059(0x158)+(_0x580b2f instanceof Error?_0x580b2f[_0xd71059(0x1bf)]:String(_0x580b2f)),logMcpStderr('Warning:\x20'+_0x2de8f2));}let _0x4f5544;try{const _0x39d501=MORPH_API_KEY;if(!_0x39d501)throw new Error(_0xd71059(0x235));const _0x5374b3=a0_0x5e6b08[_0xd71059(0x150)](_0x339993),_0x5f81cc=a0_0x5e6b08['basename'](_0x339993),_0x1d3fb1=await executeEditFile({'target_filepath':_0x5f81cc,'code_edit':_0x52b535['data'][_0xd71059(0x221)],'instructions':_0x52b535[_0xd71059(0x154)][_0xd71059(0x155)]},{'morphApiKey':_0x39d501,'morphApiUrl':MORPH_API_URL,'baseDir':_0x5374b3,'autoWrite':!_0x52b535[_0xd71059(0x154)][_0xd71059(0x1c2)],'generateUdiff':![],'debug':![]});_0x4f5544=_0x1d3fb1[_0xd71059(0x168)];if(!_0x1d3fb1[_0xd71059(0x170)])throw new Error(_0x1d3fb1[_0xd71059(0x246)]||_0xd71059(0x1c9));const _0x5d2606=_0x1d3fb1[_0xd71059(0x202)],_0x168420=_0xd71059(0x205)+_0x5d2606[_0xd71059(0x1ac)]+_0xd71059(0x1af)+_0x5d2606['linesRemoved']+_0xd71059(0x1d2)+_0x5d2606['linesModified'];if(_0x52b535[_0xd71059(0x154)][_0xd71059(0x1c2)])return{'content':[{'type':_0xd71059(0x1d8),'text':'Morph\x20Edit\x20Preview'+(_0x13dea5?'':'\x20(new\x20file)')+':\x20'+_0x52b535[_0xd71059(0x154)]['instruction']+_0xd71059(0x20f)+_0x168420+_0xd71059(0x186)+_0x52b535[_0xd71059(0x154)]['path']+'.'}]};return{'content':[{'type':'text','text':_0xd71059(0x1f4)+(_0x13dea5?_0xd71059(0x229):'Created\x20File')+':\x20'+_0x52b535[_0xd71059(0x154)][_0xd71059(0x155)]+_0xd71059(0x20f)+_0x168420+_0xd71059(0x186)+_0x52b535[_0xd71059(0x154)][_0xd71059(0x1a6)]+'.'}]};}catch(_0x536c7f){const _0xa9b4d=_0x536c7f instanceof Error?_0x536c7f[_0xd71059(0x1bf)]:String(_0x536c7f);return reportMorphError({'error_message':_0xa9b4d,'error_type':_0x536c7f instanceof Error?_0x536c7f['constructor']['name']:_0xd71059(0x1c8),'context':{'tool':_0xd71059(0x225),'completion_id':_0x4f5544,'file_path':_0x52b535[_0xd71059(0x154)]['path'],'validated_path':_0x339993,'instruction':_0x52b535[_0xd71059(0x154)][_0xd71059(0x155)],'model':'morph-v3-fast','dry_run':_0x52b535[_0xd71059(0x154)][_0xd71059(0x1c2)],'file_exists':_0x13dea5,'file_read_error':_0x2de8f2,'file_readable':_0x16b3dc!==null,'request_content':{'path':_0x52b535[_0xd71059(0x154)]['path'],'code_edit':_0x52b535['data'][_0xd71059(0x221)],'instruction':_0x52b535[_0xd71059(0x154)][_0xd71059(0x155)],'original_code':_0x16b3dc!==null?_0x16b3dc['length']>0xc350?_0x16b3dc['substring'](0x0,0xc350)+_0xd71059(0x1de)+_0x16b3dc[_0xd71059(0x217)]+'\x20chars)':_0x16b3dc:'[could\x20not\x20read\x20file:\x20'+(_0x2de8f2||'unknown\x20error')+']','original_code_length':_0x16b3dc?.[_0xd71059(0x217)]??0x0,'model':_0xd71059(0x1e9),'dry_run':_0x52b535[_0xd71059(0x154)]['dryRun']}},'stack_trace':_0x536c7f instanceof Error?_0x536c7f[_0xd71059(0x1e5)]:undefined,'source':_0xd71059(0x17b)})['catch'](()=>{}),{'content':[{'type':_0xd71059(0x1d8),'text':_0xd71059(0x184)+_0xa9b4d}],'isError':!![]};}}case _0xd71059(0x248):{const _0x18b1b9=WarpGrepArgsSchema[_0xd71059(0x212)](_0x52ad0a);if(!_0x18b1b9[_0xd71059(0x170)])return{'content':[{'type':'text','text':_0xd71059(0x206)+_0x18b1b9['error']}],'isError':!![]};const _0x53437d=_0x246412=>{const _0x451f48=_0xd71059,_0x32ce81=[];for(const _0x23b665 of _0x246412||[]){const _0x5863ca=_0x23b665[_0x451f48(0x1c3)],_0x98d722=_0x23b665[_0x451f48(0x18a)];if(_0x5863ca===_0x451f48(0x15e)&&_0x98d722){const _0x122288=_0x98d722[_0x451f48(0x1f6)]('\x0a')[_0x451f48(0x1bb)](_0x4638d9=>_0x4638d9[_0x451f48(0x1e4)]());for(const _0x223015 of _0x122288){const _0x2fbc6a=_0x223015[_0x451f48(0x1b9)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x2fbc6a){_0x32ce81[_0x451f48(0x199)](_0x451f48(0x1c0)+_0x2fbc6a[0x1]+'\x27\x20'+_0x2fbc6a[0x2]);continue;}const _0x1e4c97=_0x223015[_0x451f48(0x1b9)](/^read\s+(.+)$/);if(_0x1e4c97){_0x32ce81['push'](_0x451f48(0x1fd)+_0x1e4c97[0x1]);continue;}const _0x46f484=_0x223015[_0x451f48(0x1b9)](/^list_directory\s+(.+)$/);if(_0x46f484){_0x32ce81[_0x451f48(0x199)](_0x451f48(0x1cc)+_0x46f484[0x1]);continue;}}}}return _0x32ce81;},_0x4881db=_0x43ca4e=>{const _0x2357ba=_0xd71059,_0x491636=[];if(!_0x43ca4e||!Array[_0x2357ba(0x22d)](_0x43ca4e))return _0x491636;const _0x8ea5b9=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':'FileNotFound','tool':_0x2357ba(0x242)},{'pattern':/\[PATH ERROR\]/,'error_type':_0x2357ba(0x156),'tool':'read'},{'pattern':/\[READ ERROR\]/,'error_type':_0x2357ba(0x21e),'tool':_0x2357ba(0x242)},{'pattern':/\[UNREADABLE FILE\]/,'error_type':_0x2357ba(0x1a8),'tool':_0x2357ba(0x242)},{'pattern':/\[RIPGREP ERROR\]/,'error_type':'RipgrepError','tool':_0x2357ba(0x175)},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x2357ba(0x1d0),'tool':_0x2357ba(0x175)},{'pattern':/\[BINARY FILE\]/,'error_type':_0x2357ba(0x1a8),'tool':_0x2357ba(0x242)},{'pattern':/\[SYMLINK\]/,'error_type':_0x2357ba(0x1a5),'tool':'read'},{'pattern':/not a text file/,'error_type':_0x2357ba(0x1a8),'tool':_0x2357ba(0x242)},{'pattern':/symbolic link/,'error_type':_0x2357ba(0x1a5),'tool':_0x2357ba(0x242)},{'pattern':/Error reading file:/,'error_type':_0x2357ba(0x21e),'tool':_0x2357ba(0x242)},{'pattern':/status="error"/,'error_type':'ToolException','tool':'unknown'}];let _0x73b099=0x0;for(const _0x519eb2 of _0x43ca4e){if(_0x519eb2[_0x2357ba(0x1c3)]==='user'){_0x73b099++;const _0x1c8a14=_0x519eb2['content'];if(!_0x1c8a14||typeof _0x1c8a14!==_0x2357ba(0x1dd))continue;for(const {pattern:_0x5f4e08,error_type:_0x5cf777,tool:_0xe1048f}of _0x8ea5b9){const _0x4700ae=_0x1c8a14[_0x2357ba(0x1b9)](new RegExp(_0x5f4e08[_0x2357ba(0x1a3)],'g'));if(_0x4700ae)for(const _0x12005c of _0x4700ae){const _0x2a6ec8=_0x1c8a14[_0x2357ba(0x169)](_0x12005c),_0x1c32e3=_0x1c8a14[_0x2357ba(0x173)](_0x2a6ec8,Math[_0x2357ba(0x1ae)](_0x2a6ec8+0xc8,_0x1c8a14[_0x2357ba(0x217)]));_0x491636['push']({'tool':_0xe1048f,'error_type':_0x5cf777,'error_message':_0x1c32e3['split']('\x0a')[0x0],'turn':_0x73b099});}}}}return _0x491636;};try{const _0x506144=a0_0x5e6b08['resolve'](_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x20b)]),_0x53a198=_0x18b1b9['data']['search_type'],_0x43d155=_0x53a198===_0xd71059(0x20a)?{'allowNames':[_0xd71059(0x20a)]}:undefined,_0x27d961=new LocalRipgrepProvider(_0x506144,undefined,_0x43d155),_0x191f7c=await runWarpGrep({'searchTerm':_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x214)],'repoRoot':_0x506144,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x27d961,'search_type':_0x53a198}),_0x21835b=_0x4881db(_0x191f7c['messages']);_0x21835b[_0xd71059(0x217)]>0x0&&reportMorphError({'error_message':_0xd71059(0x244)+_0x21835b[_0xd71059(0x217)]+_0xd71059(0x1e6),'error_type':'SubToolError','level':'warn','tool':_0xd71059(0x248),'context':{'repo_path':_0x18b1b9[_0xd71059(0x154)]['repo_path'],'query':_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x214)],'model':'morph-warp-grep-v1-1111v0','termination_reason':_0x191f7c['terminationReason'],'sub_tool_errors':_0x21835b,'timings':_0x191f7c[_0xd71059(0x1c6)],'tool_calls':_0x53437d(_0x191f7c[_0xd71059(0x213)]),'messages':_0x191f7c[_0xd71059(0x213)]?.[_0xd71059(0x1e2)](_0x28e01b=>({'role':_0x28e01b[_0xd71059(0x1c3)],'content':_0x28e01b[_0xd71059(0x18a)]}))},'source':_0xd71059(0x17b)})[_0xd71059(0x241)](()=>{});let _0x16838a='';if(_0x191f7c[_0xd71059(0x23d)]===_0xd71059(0x1cb)&&_0x191f7c[_0xd71059(0x201)]?.[_0xd71059(0x1eb)]?.[_0xd71059(0x230)]){const _0x5f5488=_0x191f7c['finish'][_0xd71059(0x1eb)][_0xd71059(0x230)];if(_0x5f5488[_0xd71059(0x217)]===0x0)return _0x16838a=_0x191f7c[_0xd71059(0x201)][_0xd71059(0x1a2)]||_0xd71059(0x160),{'content':[{'type':_0xd71059(0x1d8),'text':_0x16838a}]};const _0x32b79e=[],_0x142498=[_0xd71059(0x1bd)];for(const _0xfd73a7 of _0x191f7c['messages']){const _0x46000a=_0xfd73a7[_0xd71059(0x1c3)],_0x172a65=_0xfd73a7['content'];if(_0x46000a==='assistant'&&_0x172a65){const _0x274022=_0x172a65[_0xd71059(0x1f6)]('\x0a')['filter'](_0x2240e6=>_0x2240e6['trim']());for(const _0x4219d9 of _0x274022){const _0x1828a9=_0x4219d9['match'](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x1828a9){_0x142498[_0xd71059(0x199)]('-\x20Grepped\x20\x27'+_0x1828a9[0x1]+_0xd71059(0x16c)+_0x1828a9[0x2]+'`');continue;}const _0x5d2788=_0x4219d9['match'](/^read\s+(.+)$/);if(_0x5d2788){_0x142498[_0xd71059(0x199)](_0xd71059(0x1df)+_0x5d2788[0x1]+'`');continue;}const _0x2edefc=_0x4219d9[_0xd71059(0x1b9)](/^list_directory\s+(.+)$/);if(_0x2edefc){_0x142498[_0xd71059(0x199)]('-\x20Listed\x20directory\x20`'+_0x2edefc[0x1]+'`');continue;}}}}_0x32b79e[_0xd71059(0x199)](_0x142498['join']('\x0a'));const _0x5a7cea=['','Relevant\x20context\x20found:'];for(const _0x472507 of _0x5f5488){if(_0x472507[_0xd71059(0x218)]==='*')_0x5a7cea['push']('-\x20'+_0x472507[_0xd71059(0x1a6)]+':*');else{if(Array[_0xd71059(0x22d)](_0x472507[_0xd71059(0x218)])){const _0x200eb1=_0x472507[_0xd71059(0x218)][_0xd71059(0x1e2)](([_0x2aee88,_0x45e888])=>{if(_0x2aee88===_0x45e888)return''+_0x2aee88;return _0x2aee88+'-'+_0x45e888;});_0x5a7cea[_0xd71059(0x199)]('-\x20'+_0x472507[_0xd71059(0x1a6)]+':'+_0x200eb1[_0xd71059(0x1b0)](','));}else _0x5a7cea[_0xd71059(0x199)]('-\x20'+_0x472507['path']+':*');}}_0x5a7cea['push'](''),_0x32b79e['push'](_0x5a7cea['join']('\x0a')),_0x32b79e[_0xd71059(0x199)](_0xd71059(0x1ef));const _0xe4f0ae=[];for(const _0x4b8601 of _0x5f5488){let _0x113e31=a0_0x5e6b08[_0xd71059(0x19b)](_0x18b1b9['data']['repo_path'],_0x4b8601[_0xd71059(0x1a6)]),_0x20215e=null,_0x641f93=null;try{_0x20215e=await a0_0x8c62a7['readFile'](_0x113e31,{'encoding':_0xd71059(0x1dc)});}catch(_0x37b659){const _0x4ddfbf=fixPathRepetition(_0x113e31);if(_0x4ddfbf)try{_0x20215e=await a0_0x8c62a7['readFile'](_0x4ddfbf,{'encoding':_0xd71059(0x1dc)}),_0x113e31=_0x4ddfbf;}catch{_0x641f93=_0x37b659 instanceof Error?_0x37b659:new Error(String(_0x37b659));}else _0x641f93=_0x37b659 instanceof Error?_0x37b659:new Error(String(_0x37b659));}if(_0x20215e!==null){const _0xe0d44d=_0x20215e[_0xd71059(0x1f6)](/\r?\n/),_0x1c3940=['<file\x20path=\x22'+_0x4b8601[_0xd71059(0x1a6)]+'\x22>'];if(_0x4b8601[_0xd71059(0x218)]==='*'||!Array['isArray'](_0x4b8601[_0xd71059(0x218)]))for(let _0xa53b7c=0x1;_0xa53b7c<=_0xe0d44d['length'];_0xa53b7c++){const _0x9d28a2=_0xe0d44d[_0xa53b7c-0x1];_0x1c3940['push'](_0xa53b7c+'|\x20'+_0x9d28a2);}else for(const [_0x4d54c4,_0x73a4de]of _0x4b8601['lines']){_0x1c3940[_0xd71059(0x217)]>0x1&&_0x1c3940[_0xd71059(0x199)]('');for(let _0x4ed7df=_0x4d54c4;_0x4ed7df<=_0x73a4de&&_0x4ed7df<=_0xe0d44d[_0xd71059(0x217)];_0x4ed7df++){const _0x58d05c=_0xe0d44d[_0x4ed7df-0x1];_0x1c3940[_0xd71059(0x199)](_0x4ed7df+'|\x20'+_0x58d05c);}}_0x1c3940[_0xd71059(0x199)]('</file>'),_0xe4f0ae['push'](_0x1c3940[_0xd71059(0x1b0)]('\x0a'));}else _0xe4f0ae['push']('<file\x20path=\x22'+_0x4b8601['path']+_0xd71059(0x240)+(_0x641f93?.['message']||_0xd71059(0x1ea))+'\x0a</file>');}_0x32b79e[_0xd71059(0x199)](_0xe4f0ae[_0xd71059(0x1b0)]('\x0a\x0a')),_0x16838a=_0x32b79e[_0xd71059(0x1b0)]('\x0a');const _0x497d79=_0x191f7c[_0xd71059(0x1e3)]?.[_0xd71059(0x1bb)](_0x591025=>_0x591025[_0xd71059(0x1bf)]?.[_0xd71059(0x239)]('File\x20read\x20error:'))||[];if(_0x497d79[_0xd71059(0x217)]>0x0){const _0x17b19c=_0x497d79[_0xd71059(0x1e2)](_0x649405=>_0x649405['message'])['join'](';\x20');reportMorphError({'error_message':_0x17b19c,'error_type':_0xd71059(0x1be),'context':{'tool':_0xd71059(0x248),'repo_path':_0x18b1b9['data'][_0xd71059(0x20b)],'query':_0x18b1b9['data']['search_string'],'model':_0xd71059(0x21f),'termination_reason':_0xd71059(0x1a4),'error_count':_0x497d79[_0xd71059(0x217)],'is_timeout':![],'timings':_0x191f7c[_0xd71059(0x1c6)],'files_attempted':_0x5f5488[_0xd71059(0x1e2)](_0x4ee5b5=>({'path':_0x4ee5b5[_0xd71059(0x1a6)],'lines':_0x4ee5b5['lines']})),'tool_calls':_0x53437d(_0x191f7c['messages']),'messages':_0x191f7c[_0xd71059(0x213)]?.['map'](_0x7e8f69=>({'role':_0x7e8f69['role'],'content':_0x7e8f69[_0xd71059(0x18a)]})),'request_content':{'query':_0x18b1b9['data'][_0xd71059(0x214)],'repo_path':_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x20b)],'repoRoot':a0_0x5e6b08[_0xd71059(0x19b)](_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x20b)]),'model':_0xd71059(0x21f)}},'source':_0xd71059(0x17b)})[_0xd71059(0x241)](()=>{});}}else{if(_0x191f7c['terminationReason']===_0xd71059(0x228)&&_0x191f7c[_0xd71059(0x1e3)]['length']>0x0){const _0x2fa8fa=_0x191f7c[_0xd71059(0x1e3)][_0xd71059(0x1e2)](_0x1ddd9c=>_0x1ddd9c[_0xd71059(0x1bf)])[_0xd71059(0x1b0)](';\x20');_0x16838a=_0xd71059(0x20c)+_0x2fa8fa;const _0x3af85=_0x2fa8fa[_0xd71059(0x1ff)]()['includes'](_0xd71059(0x20e))||_0x2fa8fa[_0xd71059(0x1ff)]()[_0xd71059(0x157)](_0xd71059(0x203))||_0x2fa8fa[_0xd71059(0x1ff)]()[_0xd71059(0x157)](_0xd71059(0x16f)),_0x2cc81b=_0x191f7c['finish']?.['metadata']?.[_0xd71059(0x230)],_0x136493=_0x191f7c[_0xd71059(0x1e3)][0x0];reportMorphError({'error_message':_0x2fa8fa,'error_type':_0x3af85?'TimeoutError':_0x136493?.[_0xd71059(0x22e)]?.['name']||_0xd71059(0x208),'context':{'tool':_0xd71059(0x248),'repo_path':_0x18b1b9[_0xd71059(0x154)]['repo_path'],'query':_0x18b1b9['data']['search_string'],'model':'morph-warp-grep-v1-1111v0','termination_reason':_0x191f7c[_0xd71059(0x23d)],'error_count':_0x191f7c['errors']['length'],'is_timeout':_0x3af85,'timings':_0x191f7c[_0xd71059(0x1c6)],'files_attempted':_0x2cc81b?.['map'](_0x3e16d4=>({'path':_0x3e16d4['path'],'lines':_0x3e16d4[_0xd71059(0x218)]})),'tool_calls':_0x53437d(_0x191f7c[_0xd71059(0x213)]),'messages':_0x191f7c[_0xd71059(0x213)]?.[_0xd71059(0x1e2)](_0x5ebcb4=>({'role':_0x5ebcb4[_0xd71059(0x1c3)],'content':_0x5ebcb4[_0xd71059(0x18a)]})),'request_content':{'query':_0x18b1b9['data'][_0xd71059(0x214)],'repo_path':_0x18b1b9['data'][_0xd71059(0x20b)],'repoRoot':a0_0x5e6b08['resolve'](_0x18b1b9['data'][_0xd71059(0x20b)]),'model':_0xd71059(0x21f)}},'stack_trace':_0x136493?.[_0xd71059(0x1e5)]||undefined,'source':_0xd71059(0x17b)})[_0xd71059(0x241)](()=>{});}else _0x16838a='Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.';}return{'content':[{'type':_0xd71059(0x1d8),'text':_0x16838a}]};}catch(_0x14c62c){const _0x59b80d=_0x14c62c instanceof Error?_0x14c62c[_0xd71059(0x1bf)]:String(_0x14c62c),_0x57d126=_0x59b80d['toLowerCase']()[_0xd71059(0x157)](_0xd71059(0x20e))||_0x59b80d[_0xd71059(0x1ff)]()[_0xd71059(0x157)](_0xd71059(0x203))||_0x59b80d[_0xd71059(0x1ff)]()[_0xd71059(0x157)](_0xd71059(0x16f))||_0x14c62c instanceof Error&&_0x14c62c[_0xd71059(0x219)]===_0xd71059(0x18c);return reportMorphError({'error_message':_0x59b80d,'error_type':_0x57d126?'TimeoutError':_0x14c62c instanceof Error?_0x14c62c[_0xd71059(0x22e)]['name']:_0xd71059(0x1c8),'context':{'tool':_0xd71059(0x248),'repo_path':_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x20b)],'query':_0x18b1b9[_0xd71059(0x154)]['search_string'],'model':_0xd71059(0x21f),'is_timeout':_0x57d126,'exception_phase':_0xd71059(0x1aa),'request_content':{'query':_0x18b1b9[_0xd71059(0x154)]['search_string'],'repo_path':_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x20b)],'repoRoot':a0_0x5e6b08['resolve'](_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x20b)]),'model':_0xd71059(0x21f)}},'stack_trace':_0x14c62c instanceof Error?_0x14c62c['stack']:undefined,'source':_0xd71059(0x17b)})[_0xd71059(0x241)](()=>{}),{'content':[{'type':_0xd71059(0x1d8),'text':_0xd71059(0x196)+_0x59b80d}],'isError':![]};}}case _0xd71059(0x1c7):{const _0x3054b5=WarpGrepGitHubArgsSchema[_0xd71059(0x212)](_0x52ad0a);if(!_0x3054b5[_0xd71059(0x170)])return{'content':[{'type':_0xd71059(0x1d8),'text':_0xd71059(0x206)+_0x3054b5[_0xd71059(0x246)]}],'isError':!![]};const _0x3b8a67=_0x3054b5[_0xd71059(0x154)][_0xd71059(0x211)]||_0x3054b5[_0xd71059(0x154)][_0xd71059(0x22f)];if(!_0x3b8a67)return{'content':[{'type':'text','text':_0xd71059(0x195)}],'isError':!![]};const _0x2d8e20=MORPH_API_KEY;if(!_0x2d8e20)throw new Error(_0xd71059(0x235));const _0x1f916d=Date['now']();logMcpStderr(_0xd71059(0x21a)+_0x3b8a67+_0xd71059(0x189)+_0x3054b5[_0xd71059(0x154)][_0xd71059(0x214)]+'\x22');try{const _0xb7d95=new WarpGrepClient({'morphApiKey':_0x2d8e20,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0xf9a009=await _0xb7d95['searchGitHub']({'searchTerm':_0x3054b5['data']['search_string'],'github':_0x3b8a67,'branch':_0x3054b5[_0xd71059(0x154)][_0xd71059(0x1f8)]}),_0x133a28=Date[_0xd71059(0x164)]()-_0x1f916d;logMcpStderr(_0xd71059(0x245)+_0x133a28+_0xd71059(0x1a9)+_0xf9a009[_0xd71059(0x170)]);const _0x2a17e0=formatResult(_0xf9a009);return{'content':[{'type':_0xd71059(0x1d8),'text':_0x2a17e0}]};}catch(_0x33a40b){const _0x2e0785=Date[_0xd71059(0x164)]()-_0x1f916d,_0x328072=_0x33a40b instanceof Error?_0x33a40b['message']:String(_0x33a40b);return logMcpStderr('[github_codebase_search]\x20Failed\x20in\x20'+_0x2e0785+_0xd71059(0x1bc),_0x328072),reportMorphError({'error_message':_0x328072,'error_type':_0x33a40b instanceof Error?_0x33a40b[_0xd71059(0x22e)][_0xd71059(0x219)]:_0xd71059(0x1c8),'context':{'tool':_0xd71059(0x1c7),'github_url':_0x3b8a67,'search_string':_0x3054b5[_0xd71059(0x154)][_0xd71059(0x214)],'branch':_0x3054b5[_0xd71059(0x154)][_0xd71059(0x1f8)]},'stack_trace':_0x33a40b instanceof Error?_0x33a40b['stack']:undefined,'source':_0xd71059(0x17b),'tool':'github_codebase_search','latency_ms':_0x2e0785})['catch'](()=>{}),{'content':[{'type':_0xd71059(0x1d8),'text':'GitHub\x20search\x20failed:\x20'+_0x328072}],'isError':![]};}}default:throw new Error(_0xd71059(0x17c)+_0x4959a5);}}catch(_0x1caef5){const _0x3c51a1=_0x1caef5 instanceof Error?_0x1caef5[_0xd71059(0x1bf)]:String(_0x1caef5);return reportMorphError({'error_message':_0x3c51a1,'error_type':_0x1caef5 instanceof Error?_0x1caef5[_0xd71059(0x22e)][_0xd71059(0x219)]:'UnknownError','context':{'tool':_0x4959a5,'arguments':_0x52ad0a?JSON['stringify'](_0x52ad0a)['substring'](0x0,0x1f4):undefined,'mcp_server_version':'0.2.0'},'stack_trace':_0x1caef5 instanceof Error?_0x1caef5['stack']:undefined,'source':_0xd71059(0x17b)})[_0xd71059(0x241)](()=>{}),{'content':[{'type':_0xd71059(0x1d8),'text':_0xd71059(0x20c)+_0x3c51a1}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x57e70b){const _0x13a1d7=a0_0x5417d0,_0x2d3e40=await getValidRootDirectories(_0x57e70b);if(_0x2d3e40['length']>0x0)allowedDirectories=[..._0x2d3e40],logMcpStderr(_0x13a1d7(0x15d)+_0x2d3e40[_0x13a1d7(0x217)]+_0x13a1d7(0x1cd));else{logMcpStderr('No\x20valid\x20root\x20directories\x20provided\x20by\x20client');if(ENABLE_WORKSPACE_MODE)try{const _0x4a29b9=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x4a29b9&&(allowedDirectories=[_0x4a29b9],logMcpStderr(_0x13a1d7(0x1b4)+_0x4a29b9));}catch(_0x2a51f8){logMcpStderr(_0x13a1d7(0x174)+_0x2a51f8);}}}server[a0_0x5417d0(0x220)](RootsListChangedNotificationSchema,async()=>{const _0x4a2f3e=a0_0x5417d0;try{const _0x18bd0b=await server[_0x4a2f3e(0x1e0)]();_0x18bd0b&&_0x4a2f3e(0x188)in _0x18bd0b&&await updateAllowedDirectoriesFromRoots(_0x18bd0b[_0x4a2f3e(0x188)]);}catch(_0x1573cf){logMcpStderr(_0x4a2f3e(0x233),_0x1573cf instanceof Error?_0x1573cf[_0x4a2f3e(0x1bf)]:String(_0x1573cf));}}),server[a0_0x5417d0(0x1ee)]=async()=>{const _0x101408=a0_0x5417d0,_0x32d2d0=server[_0x101408(0x231)]();if(_0x32d2d0?.['roots'])try{const _0x39344d=await server[_0x101408(0x1e0)]();_0x39344d&&_0x101408(0x188)in _0x39344d?await updateAllowedDirectoriesFromRoots(_0x39344d[_0x101408(0x188)]):logMcpStderr(_0x101408(0x1e8));}catch(_0x1768c9){logMcpStderr('Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:',_0x1768c9 instanceof Error?_0x1768c9[_0x101408(0x1bf)]:String(_0x1768c9));}else{if(allowedDirectories['length']>0x0)logMcpStderr(_0x101408(0x21d),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)logMcpStderr('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode');else throw new Error(_0x101408(0x216));}}};async function runServer(){const _0x558449=a0_0x5417d0,_0x5b81b1=new StdioServerTransport();await server[_0x558449(0x1ce)](_0x5b81b1),logMcpStderr(_0x558449(0x1d3)),allowedDirectories[_0x558449(0x217)]===0x0&&logMcpStderr(_0x558449(0x1b1));}runServer()[a0_0x5417d0(0x241)](_0x4371b5=>{const _0x36b4b0=a0_0x5417d0;logMcpStderr('Fatal\x20error\x20running\x20server:',_0x4371b5),process[_0x36b4b0(0x198)](0x1);});
|
package/dist/log-utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a1_0x8d42(){var _0x56c8af=['macOS','197052LaFdFw','430739CDIeaX','21952jtcGNz','952056YwMufD','40uNuIkI','402JAoKAf','linux','2CzzgkI','2667490UYyThk','platform','40ZVHGAs','800316yQsNiG','win32','3283488Gkruxt','darwin','Unknown','156sZLtKt','[os='];a1_0x8d42=function(){return _0x56c8af;};return a1_0x8d42();}var a1_0x17f0dc=a1_0x3f6e;(function(_0x5d7074,_0x58e58a){var _0x4dfab9=a1_0x3f6e,_0x3be4b7=_0x5d7074();while(!![]){try{var _0x4a5eda=parseInt(_0x4dfab9(0x128))/0x1*(-parseInt(_0x4dfab9(0x12e))/0x2)+parseInt(_0x4dfab9(0x12c))/0x3*(parseInt(_0x4dfab9(0x129))/0x4)+-parseInt(_0x4dfab9(0x12b))/0x5*(parseInt(_0x4dfab9(0x127))/0x6)+-parseInt(_0x4dfab9(0x12f))/0x7+parseInt(_0x4dfab9(0x121))/0x8+-parseInt(_0x4dfab9(0x12a))/0x9*(parseInt(_0x4dfab9(0x11e))/0xa)+parseInt(_0x4dfab9(0x11f))/0xb*(parseInt(_0x4dfab9(0x124))/0xc);if(_0x4a5eda===_0x58e58a)break;else _0x3be4b7['push'](_0x3be4b7['shift']());}catch(_0x30e986){_0x3be4b7['push'](_0x3be4b7['shift']());}}}(a1_0x8d42,0x91037));import a1_0x32843c from'os';export function getOperatingSystemType(_0x4afb9c=a1_0x32843c[a1_0x17f0dc(0x11d)]()){var _0x5731a4=a1_0x17f0dc;switch(_0x4afb9c){case _0x5731a4(0x122):return _0x5731a4(0x126);case _0x5731a4(0x120):return'Windows';case _0x5731a4(0x12d):return'Linux';default:return _0x5731a4(0x123);}}export function formatMcpLogMessage(_0xa9d0ed,_0x29b13d=a1_0x32843c['platform']()){var _0x135625=a1_0x17f0dc;return _0x135625(0x125)+getOperatingSystemType(_0x29b13d)+']\x20'+_0xa9d0ed;}function a1_0x3f6e(_0x386539,_0x389180){_0x386539=_0x386539-0x11d;var _0x8d4239=a1_0x8d42();var _0x3f6eb8=_0x8d4239[_0x386539];return _0x3f6eb8;}export function logMcpStderr(_0x5d912a,..._0x575f01){console['error'](formatMcpLogMessage(_0x5d912a),..._0x575f01);}
|
package/dist/path-utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x439218,_0x917068){const _0x5a1e9f=a2_0x3187,_0x4e0fc5=_0x439218();while(!![]){try{const _0x4eb2d0=-parseInt(_0x5a1e9f(0xa5))/0x1*(-parseInt(_0x5a1e9f(0xa1))/0x2)+-parseInt(_0x5a1e9f(0x9b))/0x3+-parseInt(_0x5a1e9f(0xa8))/0x4+-parseInt(_0x5a1e9f(0xa6))/0x5+parseInt(_0x5a1e9f(0xaa))/0x6*(-parseInt(_0x5a1e9f(0x97))/0x7)+-parseInt(_0x5a1e9f(0x95))/0x8*(-parseInt(_0x5a1e9f(0xa9))/0x9)+parseInt(_0x5a1e9f(0xa7))/0xa*(parseInt(_0x5a1e9f(0xa2))/0xb);if(_0x4eb2d0===_0x917068)break;else _0x4e0fc5['push'](_0x4e0fc5['shift']());}catch(_0x242bbe){_0x4e0fc5['push'](_0x4e0fc5['shift']());}}}(a2_0x5465,0xbdef0));import a2_0x5b3650 from'path';function a2_0x3187(_0x48537e,_0x1651f4){_0x48537e=_0x48537e-0x94;const _0x546526=a2_0x5465();let _0x318775=_0x546526[_0x48537e];return _0x318775;}import a2_0xe0df7a from'os';export function convertToWindowsPath(_0x56f9e7){const _0x3a83d9=a2_0x3187;if(_0x56f9e7['startsWith'](_0x3a83d9(0x96))){const _0x605a9a=_0x56f9e7[_0x3a83d9(0xa4)](0x5)[_0x3a83d9(0x99)](),_0x3cba91=_0x56f9e7[_0x3a83d9(0x98)](0x6)[_0x3a83d9(0x9f)](/\//g,'\x5c');return _0x605a9a+':'+_0x3cba91;}if(_0x56f9e7['match'](/^\/[a-zA-Z]\//)){const _0x3aa9a2=_0x56f9e7['charAt'](0x1)[_0x3a83d9(0x99)](),_0x240561=_0x56f9e7[_0x3a83d9(0x98)](0x2)[_0x3a83d9(0x9f)](/\//g,'\x5c');return _0x3aa9a2+':'+_0x240561;}if(_0x56f9e7[_0x3a83d9(0xa0)](/^[a-zA-Z]:/))return _0x56f9e7[_0x3a83d9(0x9f)](/\//g,'\x5c');return _0x56f9e7;}function a2_0x5465(){const _0x5118db=['charAt','41VLDZuc','1709965hvvwPH','10BKcnGw','5046584kxUWQc','720YQcHfa','6XmbRoR','join','69840lHFkmG','/mnt/','4055716nhoLvO','slice','toUpperCase','test','475842jFDflA','startsWith','homedir','substring','replace','match','68652wDarsa','11152273bwvLdm','normalize'];a2_0x5465=function(){return _0x5118db;};return a2_0x5465();}export function normalizePath(_0x2138f6){const _0x56c66f=a2_0x3187;_0x2138f6=_0x2138f6['trim']()['replace'](/^["']|["']$/g,'');const _0x366e44=_0x2138f6[_0x56c66f(0x9c)]('/')&&!_0x2138f6[_0x56c66f(0xa0)](/^\/mnt\/[a-z]\//i)&&!_0x2138f6[_0x56c66f(0xa0)](/^\/[a-zA-Z]\//);if(_0x366e44)return _0x2138f6['replace'](/\/+/g,'/')['replace'](/\/+$/,'');_0x2138f6=convertToWindowsPath(_0x2138f6);if(_0x2138f6[_0x56c66f(0x9c)]('\x5c\x5c')){let _0x19f312=_0x2138f6;_0x19f312=_0x19f312[_0x56c66f(0x9f)](/^\\{2,}/,'\x5c\x5c');const _0x4e302c=_0x19f312[_0x56c66f(0x9e)](0x2)['replace'](/\\\\/g,'\x5c');_0x2138f6='\x5c\x5c'+_0x4e302c;}else _0x2138f6=_0x2138f6[_0x56c66f(0x9f)](/\\\\/g,'\x5c');let _0x2df60d=a2_0x5b3650[_0x56c66f(0xa3)](_0x2138f6);_0x2138f6[_0x56c66f(0x9c)]('\x5c\x5c')&&!_0x2df60d[_0x56c66f(0x9c)]('\x5c\x5c')&&(_0x2df60d='\x5c'+_0x2df60d);if(_0x2df60d[_0x56c66f(0xa0)](/^[a-zA-Z]:/)){let _0x4bd6d8=_0x2df60d['replace'](/\//g,'\x5c');return/^[a-z]:/[_0x56c66f(0x9a)](_0x4bd6d8)&&(_0x4bd6d8=_0x4bd6d8[_0x56c66f(0xa4)](0x0)['toUpperCase']()+_0x4bd6d8[_0x56c66f(0x98)](0x1)),_0x4bd6d8;}return _0x2df60d[_0x56c66f(0x9f)](/\//g,'\x5c');}export function expandHome(_0x145a1e){const _0x323246=a2_0x3187;if(_0x145a1e[_0x323246(0x9c)]('~/')||_0x145a1e==='~')return a2_0x5b3650[_0x323246(0x94)](a2_0xe0df7a[_0x323246(0x9d)](),_0x145a1e[_0x323246(0x98)](0x1));return _0x145a1e;}
|
package/dist/path-validation.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x2a6c27,_0x21a443){const _0x927bae=a3_0x14f7,_0x284d76=_0x2a6c27();while(!![]){try{const _0x35d1f7=parseInt(_0x927bae(0xfa))/0x1+parseInt(_0x927bae(0x102))/0x2*(-parseInt(_0x927bae(0x109))/0x3)+parseInt(_0x927bae(0x100))/0x4*(-parseInt(_0x927bae(0xf9))/0x5)+parseInt(_0x927bae(0xfe))/0x6+-parseInt(_0x927bae(0x10c))/0x7*(parseInt(_0x927bae(0xff))/0x8)+parseInt(_0x927bae(0xfb))/0x9+parseInt(_0x927bae(0x105))/0xa;if(_0x35d1f7===_0x21a443)break;else _0x284d76['push'](_0x284d76['shift']());}catch(_0x1598be){_0x284d76['push'](_0x284d76['shift']());}}}(a3_0x3002,0xdd23e));import a3_0x4a9b7d from'path';export function isPathWithinAllowedDirectories(_0x51fee2,_0xdbb689){const _0x4330d8=a3_0x14f7;if(typeof _0x51fee2!==_0x4330d8(0x10b)||!Array[_0x4330d8(0x103)](_0xdbb689))return![];if(!_0x51fee2||_0xdbb689[_0x4330d8(0x101)]===0x0)return![];if(_0x51fee2[_0x4330d8(0xfd)]('\x00'))return![];let _0x35aecb;try{_0x35aecb=a3_0x4a9b7d[_0x4330d8(0x107)](a3_0x4a9b7d[_0x4330d8(0xfc)](_0x51fee2));}catch{return![];}if(!a3_0x4a9b7d[_0x4330d8(0x10a)](_0x35aecb))throw new Error('Path\x20must\x20be\x20absolute\x20after\x20normalization');return _0xdbb689[_0x4330d8(0x106)](_0x46ac71=>{const _0x1257e=_0x4330d8;if(typeof _0x46ac71!==_0x1257e(0x10b)||!_0x46ac71)return![];if(_0x46ac71[_0x1257e(0xfd)]('\x00'))return![];let _0x21a1c9;try{_0x21a1c9=a3_0x4a9b7d['resolve'](a3_0x4a9b7d[_0x1257e(0xfc)](_0x46ac71));}catch{return![];}if(!a3_0x4a9b7d[_0x1257e(0x10a)](_0x21a1c9))throw new Error('Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization');if(_0x35aecb===_0x21a1c9)return!![];if(_0x21a1c9===a3_0x4a9b7d['sep'])return _0x35aecb[_0x1257e(0x108)](a3_0x4a9b7d['sep']);return _0x35aecb[_0x1257e(0x108)](_0x21a1c9+a3_0x4a9b7d[_0x1257e(0x104)]);});}function a3_0x14f7(_0x255d39,_0x39a4d1){_0x255d39=_0x255d39-0xf9;const _0x3002f1=a3_0x3002();let _0x14f73f=_0x3002f1[_0x255d39];return _0x14f73f;}function a3_0x3002(){const _0x5f3997=['string','1182951QRHJli','178040QlRSRC','1301111iHrkCt','2423151VMGypv','normalize','includes','2272824GoVpko','32gTaxbF','88LYwaWA','length','30116FinrsL','isArray','sep','9279560qXAlVV','some','resolve','startsWith','102XZGMex','isAbsolute'];a3_0x3002=function(){return _0x5f3997;};return a3_0x3002();}
|
package/dist/roots-utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x27a096,_0x13f1d1){const _0xda035b=a4_0x55a3,_0x468bb2=_0x27a096();while(!![]){try{const _0x14933c=-parseInt(_0xda035b(0x1fb))/0x1+-parseInt(_0xda035b(0x1fc))/0x2+-parseInt(_0xda035b(0x204))/0x3+parseInt(_0xda035b(0x201))/0x4+-parseInt(_0xda035b(0x1ef))/0x5*(parseInt(_0xda035b(0x1f7))/0x6)+-parseInt(_0xda035b(0x1fd))/0x7*(parseInt(_0xda035b(0x1f2))/0x8)+parseInt(_0xda035b(0x202))/0x9*(parseInt(_0xda035b(0x1f5))/0xa);if(_0x14933c===_0x13f1d1)break;else _0x468bb2['push'](_0x468bb2['shift']());}catch(_0x2d2f24){_0x468bb2['push'](_0x468bb2['shift']());}}}(a4_0x4bfd,0xed29f));import{promises as a4_0x71a54f}from'fs';import a4_0x555bca from'path';import a4_0x32bd46 from'os';import{normalizePath}from'./path-utils.js';import{logMcpStderr}from'./log-utils.js';async function parseRootUri(_0x6430f8){const _0x57191d=a4_0x55a3;try{const _0x2b5582=_0x6430f8[_0x57191d(0x1f8)](_0x57191d(0x1ec))?_0x6430f8[_0x57191d(0x1f4)](0x7):_0x6430f8,_0x370eac=_0x2b5582['startsWith']('~/')||_0x2b5582==='~'?a4_0x555bca['join'](a4_0x32bd46[_0x57191d(0x1f9)](),_0x2b5582[_0x57191d(0x1f4)](0x1)):_0x2b5582,_0x4144c9=a4_0x555bca[_0x57191d(0x1ed)](_0x370eac),_0x8ae696=await a4_0x71a54f[_0x57191d(0x203)](_0x4144c9);return normalizePath(_0x8ae696);}catch{return null;}}function a4_0x55a3(_0x344167,_0x529922){_0x344167=_0x344167-0x1ec;const _0x4bfd5a=a4_0x4bfd();let _0x55a392=_0x4bfd5a[_0x344167];return _0x55a392;}function formatDirectoryError(_0x2161d5,_0x50e7d0,_0x5021e4){const _0x1f92d0=a4_0x55a3;if(_0x5021e4)return'Skipping\x20'+_0x5021e4+':\x20'+_0x2161d5;const _0xec57f4=_0x50e7d0 instanceof Error?_0x50e7d0[_0x1f92d0(0x1ee)]:String(_0x50e7d0);return _0x1f92d0(0x1fe)+_0x2161d5+_0x1f92d0(0x1f6)+_0xec57f4;}export async function getValidRootDirectories(_0x1155af){const _0x32a34a=a4_0x55a3,_0x52dd40=[];for(const _0x51156f of _0x1155af){const _0x40a5f1=await parseRootUri(_0x51156f[_0x32a34a(0x1f3)]);if(!_0x40a5f1){logMcpStderr(formatDirectoryError(_0x51156f[_0x32a34a(0x1f3)],undefined,_0x32a34a(0x1f0)));continue;}try{const _0x16f709=await a4_0x71a54f[_0x32a34a(0x1ff)](_0x40a5f1);_0x16f709[_0x32a34a(0x1fa)]()?_0x52dd40[_0x32a34a(0x1f1)](_0x40a5f1):logMcpStderr(formatDirectoryError(_0x40a5f1,undefined,_0x32a34a(0x200)));}catch(_0x20f998){logMcpStderr(formatDirectoryError(_0x40a5f1,_0x20f998));}}return _0x52dd40;}function a4_0x4bfd(){const _0x5857e0=['5022auiCQi','realpath','5810535dYvyeL','file://','resolve','message','705njLOLk','invalid\x20path\x20or\x20inaccessible','push','8FWGWbc','uri','slice','124920fhWJnn','\x20due\x20to\x20error:\x20','62220mdfGUj','startsWith','homedir','isDirectory','1466530lGLFPF','2021976oObUMe','1152613unJPnd','Skipping\x20invalid\x20directory:\x20','stat','non-directory\x20root','168316vyEXsx'];a4_0x4bfd=function(){return _0x5857e0;};return a4_0x4bfd();}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morphllm/morphmcp",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.129",
|
|
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.137",
|
|
39
39
|
"@vscode/ripgrep": "^1.15.14",
|
|
40
40
|
"axios": "^1.6.0",
|
|
41
41
|
"chalk": "^5.3.0",
|