@morphllm/morphmcp
Advanced tools
+1
-1
| #!/usr/bin/env node | ||
| const a0_0x43b56b=a0_0x1c30;(function(_0x189010,_0x75d701){const _0x6c0f88=a0_0x1c30,_0x390661=_0x189010();while(!![]){try{const _0x2c2d76=parseInt(_0x6c0f88(0x1e9))/0x1+-parseInt(_0x6c0f88(0x15f))/0x2*(-parseInt(_0x6c0f88(0x22d))/0x3)+parseInt(_0x6c0f88(0x215))/0x4*(-parseInt(_0x6c0f88(0x1b6))/0x5)+parseInt(_0x6c0f88(0x18c))/0x6*(-parseInt(_0x6c0f88(0x181))/0x7)+-parseInt(_0x6c0f88(0x1d5))/0x8*(-parseInt(_0x6c0f88(0x217))/0x9)+parseInt(_0x6c0f88(0x189))/0xa+parseInt(_0x6c0f88(0x1bf))/0xb*(-parseInt(_0x6c0f88(0x148))/0xc);if(_0x2c2d76===_0x75d701)break;else _0x390661['push'](_0x390661['shift']());}catch(_0x14a803){_0x390661['push'](_0x390661['shift']());}}}(a0_0x2b08,0x5cc89));function a0_0x1c30(_0x279a26,_0x224a88){_0x279a26=_0x279a26-0x10c;const _0x2b08e4=a0_0x2b08();let _0x1c306e=_0x2b08e4[_0x279a26];return _0x1c306e;}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_0x2f91f5 from'fs/promises';import a0_0x26b8c3 from'path';import a0_0x49f44b 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{logger}from'./logger.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{compactFileContexts}from'@morphllm/morphsdk/tools/compact';import a0_0x10c885 from'axios';function fixPathRepetition(_0x36fbf0){const _0x4b40cd=a0_0x1c30,_0xe7b0f6=_0x36fbf0['split'](a0_0x26b8c3[_0x4b40cd(0x1be)])[_0x4b40cd(0x1e1)](Boolean);if(_0xe7b0f6[_0x4b40cd(0x198)]<0x2)return null;for(let _0x4e90d6=Math[_0x4b40cd(0x185)](_0xe7b0f6['length']/0x2);_0x4e90d6>=0x1;_0x4e90d6--){for(let _0x4886ba=0x0;_0x4886ba<=_0xe7b0f6['length']-0x2*_0x4e90d6;_0x4886ba++){const _0x38bebb=_0xe7b0f6[_0x4b40cd(0x1ca)](_0x4886ba,_0x4886ba+_0x4e90d6),_0x1240a2=_0xe7b0f6[_0x4b40cd(0x1ca)](_0x4886ba+_0x4e90d6,_0x4886ba+0x2*_0x4e90d6);if(_0x38bebb[_0x4b40cd(0x221)]((_0x3dfb25,_0x13cec6)=>_0x3dfb25===_0x1240a2[_0x13cec6])){const _0x47c9ce=[..._0xe7b0f6['slice'](0x0,_0x4886ba),..._0xe7b0f6[_0x4b40cd(0x1ca)](_0x4886ba+_0x4e90d6)];return a0_0x26b8c3['sep']+_0x47c9ce[_0x4b40cd(0x1eb)](a0_0x26b8c3[_0x4b40cd(0x1be)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x1cef48=a0_0x1c30;try{const _0x196eaa=require(_0x1cef48(0x1f8));return _0x196eaa[_0x1cef48(0x154)]??_0x1cef48(0x1d2);}catch(_0x42347c){return logMcpStderr(_0x1cef48(0x150),_0x42347c),_0x1cef48(0x1d2);}}function printHelp(){const _0x39a4ce=a0_0x1c30;console[_0x39a4ce(0x1fe)]('@morphllm/morphmcp\x20'+getPackageVersion()),console[_0x39a4ce(0x1fe)]('\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]'),console[_0x39a4ce(0x1fe)](_0x39a4ce(0x1c9)),console[_0x39a4ce(0x1fe)](_0x39a4ce(0x127)),console['log'](_0x39a4ce(0x133)),console[_0x39a4ce(0x1fe)](_0x39a4ce(0x239)),console[_0x39a4ce(0x1fe)](_0x39a4ce(0x1bc)),console[_0x39a4ce(0x1fe)]('\x20\x20morph-mcp'),console[_0x39a4ce(0x1fe)](_0x39a4ce(0x223));}const cliArgs=process[a0_0x43b56b(0x1cf)][a0_0x43b56b(0x1ca)](0x2),VERSION_FLAGS=new Set([a0_0x43b56b(0x1f5),'-v','-V']),HELP_FLAGS=new Set([a0_0x43b56b(0x192),'-h']);cliArgs[a0_0x43b56b(0x13a)](_0x25e489=>VERSION_FLAGS[a0_0x43b56b(0x1b2)](_0x25e489))&&(console[a0_0x43b56b(0x1fe)](a0_0x43b56b(0x231)+getPackageVersion()),process[a0_0x43b56b(0x131)](0x0));function a0_0x2b08(){const _0x26b7f5=['\x22>\x0aError\x20reading\x20file:\x20','changes','argv','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','MORPH_WARP_GREP_TIMEOUT','unknown','file_read_complete','split','984FvwxQY','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','-\x20Grepped\x20\x27','optional','stack','read\x20','read','\x20as\x20allowed\x20directory','tool_call_error','Error\x20accessing\x20directory\x20','pattern','warn','filter','message','Morph\x20Edit\x20Preview','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','WarpGrepError','terminationReason','--api-key=','ENABLE_WORKSPACE_MODE','657483CYocAT','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','join','object','-\x20Glob\x20search\x20`','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','status','\x20-\x20','tsconfig.json','homedir','WarpGrep\x20sub-tool\x20errors:\x20','Benefits:\x0a','--version','debug','\x20(new\x20file)','../package.json','mcp-filesystem','`\x20in\x20`','Unknown\x20error','ms:','timings','log','false','payload','inputSchema','\x20is\x20not\x20a\x20directory','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','Please\x20provide\x20github\x20search\x20url\x20or\x20owner/repo\x20id','toISOString','Cargo.toml','number','toLowerCase','grep\x20\x27','-\x20Listed\x20directory\x20`','PathError','github_codebase_search','No\x20relevant\x20code\x20found\x20for\x20the\x20query.','list_directory\x20','Error:\x20','grep_search','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','tool_call_complete','params','instructions','43844XbQBjg','basename','44262znlVPC','MORPH_API_KEY','composer.json','Morph\x20FastApply\x20failed\x20without\x20error\x20message','completed_with_file_errors','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','tool_calls','SubToolError','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','Applied','every','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo','readFile','errors','code','RipgrepError','match','0.2.0','api_request_start','Authentication\x20failed:\x20Your\x20Morph\x20API\x20key\x20is\x20invalid\x20or\x20has\x20been\x20revoked.\x20Please\x20visit\x20https://morphllm.com\x20to\x20get\x20a\x20valid\x20API\x20key,\x20then\x20update\x20your\x20MCP\x20configuration.','completed','3uuoFoJ','unknown\x20error','owner_repo','glob','@morphllm/morphmcp\x20','codebase_search','grep','search_type','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all',',\x20modified\x20','.git','LocalRipgrepProvider','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','role','setNotificationHandler',',\x20removed\x20','file_read_failed','setRequestHandler','path_validation_resolved','tool_call_received','name','isArray','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.','GitHub\x20search\x20failed:\x20','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','ToolException','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','cwd','\x0a...\x20(truncated,\x20total:\x20','path_validation_failed','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','branch','error','.\x20Changes:\x20','sk-','data','utf-8','\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)','source','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','now','node_modules','safeParse','\x22\x20is\x20disabled\x20via\x20DISABLED_TOOLS\x20environment\x20variable','push','github_search_start','[github_codebase_search]\x20Done\x20in\x20','exit','files','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','assistant','string','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','listRoots','normalize','morph-','some','connect','RipgrepNotAvailable','command','TimeoutError','Repository\x20owner/repo\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.','API\x20error\x20(auth/rate-limit)','Invalid\x20arguments:\x20','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','isDirectory','trim','pyproject.toml','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','852fZuCtl','Parent\x20directory\x20does\x20not\x20exist:\x20','\x0a</file>','FileReadError','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.','DISABLED_TOOLS','morph-mcp','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','File\x20read\x20error:','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','morph-warp-grep-v2.1','version','substring','size','requiresApiKey','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','UnknownError','linesModified','Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)','Tool\x20\x22','access','Repository\x20identifier','1029624cPNkrn','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.','\x20valid\x20directories','function','describe','dirname','Bearer\x20','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','ReadError','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','linesAdded','api-key','[github_codebase_search]\x20Failed\x20in\x20','min','morph-v3-large','finish','path','metadata','content','map','search_string','PWD','Warning:\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','.vscode','code_edit','tool','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','Warning:\x20DISABLED_TOOLS\x20contains\x20unknown\x20tool\x20\x22','Workspace\x20mode\x20enabled:\x20Using\x20','path_validation_start','MORPH_LARGE_APPLY','constructor','resolve','84AMqJUu','response','stringify','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','floor','\x22>\x0a','-\x20Read\x20file\x20`','instruction','2125950bOQWtT','Warning:\x20Workspace\x20fallback\x20failed:\x20','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','235446TNOovY','warp_grep_start','<file\x20path=\x22','Fatal\x20error\x20running\x20server:','\x20chars)','edit_file','--help','parse','success','repo_path','[could\x20not\x20read\x20file:\x20','Error\x20running\x20fast\x20context\x20search:\x20','length','\x20error(s)','application/json','catch','.cursor','env','MCP','Morph\x20Edit\x20','go.mod','https://morphllm.com/api/error-report','\x20disabled\x20via\x20DISABLED_TOOLS','-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\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','array','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','timed\x20out','morph-v3-fast','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','Max\x20results\x20to\x20return','No\x20Morph\x20API\x20key\x20configured.\x20Please\x20visit\x20https://morphllm.com\x20to\x20get\x20an\x20API\x20key,\x20then\x20set\x20MORPH_API_KEY\x20in\x20your\x20MCP\x20configuration.','startsWith','provider_created','\x22.\x20Known\x20tools:\x20','boolean','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','has','tool_call_id','default','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','295mJpZGa','roots','dryRun','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','messages','.\x20Path:\x20','\x0aExamples:','post','sep','76252ZSkVmD','text','lines','includes','Invalid\x20Morph\x20API\x20key\x20format.\x20API\x20keys\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27.\x20Please\x20visit\x20https://morphllm.com\x20to\x20get\x20a\x20valid\x20API\x20key.','Created\x20File','terminated','list_directory','indexOf','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','\x0aOptions:','slice','timeout','linesRemoved'];a0_0x2b08=function(){return _0x26b7f5;};return a0_0x2b08();}cliArgs[a0_0x43b56b(0x13a)](_0x181e65=>HELP_FLAGS[a0_0x43b56b(0x1b2)](_0x181e65))&&(printHelp(),process['exit'](0x0));function getCliArg(_0x59cbd9){const _0x1b7f87=a0_0x43b56b;for(let _0xbd67f7=0x0;_0xbd67f7<cliArgs[_0x1b7f87(0x198)];_0xbd67f7++){const _0x4b1b7c=cliArgs[_0xbd67f7];if(_0x4b1b7c[_0x1b7f87(0x1ac)]('--'+_0x59cbd9+'='))return _0x4b1b7c[_0x1b7f87(0x1ca)](('--'+_0x59cbd9+'=')['length']);if(_0x4b1b7c==='--'+_0x59cbd9&&_0xbd67f7+0x1<cliArgs[_0x1b7f87(0x198)])return cliArgs[_0xbd67f7+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs[a0_0x43b56b(0x198)];i++){const arg=cliArgs[i];if(VERSION_FLAGS[a0_0x43b56b(0x1b2)](arg)||HELP_FLAGS[a0_0x43b56b(0x1b2)](arg))continue;if(arg['startsWith'](a0_0x43b56b(0x1e7)))continue;if(arg==='--api-key'){i++;continue;}args[a0_0x43b56b(0x12e)](arg);}const WORKSPACE_ROOT=process[a0_0x43b56b(0x19d)]['WORKSPACE_ROOT']||process[a0_0x43b56b(0x19d)][a0_0x43b56b(0x174)]||process[a0_0x43b56b(0x11c)](),ENABLE_WORKSPACE_MODE=process[a0_0x43b56b(0x19d)][a0_0x43b56b(0x1e8)]!==a0_0x43b56b(0x1ff),MORPH_API_KEY=getCliArg(a0_0x43b56b(0x16a))??process['env'][a0_0x43b56b(0x218)],MORPH_API_URL=process[a0_0x43b56b(0x19d)]['MORPH_API_URL'],MORPH_LARGE_APPLY=process[a0_0x43b56b(0x19d)][a0_0x43b56b(0x17e)]!==a0_0x43b56b(0x1ff),MORPH_WARP_GREP_TIMEOUT=process['env'][a0_0x43b56b(0x1d1)]?parseInt(process[a0_0x43b56b(0x19d)][a0_0x43b56b(0x1d1)],0xa):undefined,OPERATING_SYSTEM_TYPE=getOperatingSystemType(),KNOWN_TOOL_NAMES=new Set(['edit_file',a0_0x43b56b(0x232),a0_0x43b56b(0x20c)]),DEFAULT_DISABLED_TOOLS=new Set([a0_0x43b56b(0x191)]),DISABLED_TOOLS=process['env']['DISABLED_TOOLS']?new Set(process[a0_0x43b56b(0x19d)][a0_0x43b56b(0x14d)][a0_0x43b56b(0x1d4)](',')[a0_0x43b56b(0x172)](_0x54f164=>_0x54f164[a0_0x43b56b(0x145)]())[a0_0x43b56b(0x1e1)](_0x51eb95=>_0x51eb95[a0_0x43b56b(0x198)]>0x0)):DEFAULT_DISABLED_TOOLS;if(DISABLED_TOOLS[a0_0x43b56b(0x156)]>0x0){for(const tool of DISABLED_TOOLS){!KNOWN_TOOL_NAMES[a0_0x43b56b(0x1b2)](tool)&&console[a0_0x43b56b(0x122)](a0_0x43b56b(0x17b)+tool+a0_0x43b56b(0x1ae)+[...KNOWN_TOOL_NAMES][a0_0x43b56b(0x1eb)](',\x20'));}console[a0_0x43b56b(0x122)]('Disabled\x20tools:\x20'+[...DISABLED_TOOLS][a0_0x43b56b(0x1eb)](',\x20'));}MORPH_API_KEY&&!MORPH_API_KEY['startsWith'](a0_0x43b56b(0x124))&&!MORPH_API_KEY[a0_0x43b56b(0x1ac)](a0_0x43b56b(0x139))&&logMcpStderr(a0_0x43b56b(0x11a));async function reportMorphError(_0x393422){const _0x18c680=a0_0x43b56b;try{await a0_0x10c885[_0x18c680(0x1bd)](_0x18c680(0x1a1),{..._0x393422,'timestamp':new Date()[_0x18c680(0x205)](),'source':_0x393422[_0x18c680(0x128)]||_0x18c680(0x1f9),'os_type':OPERATING_SYSTEM_TYPE,'context':{'os_type':OPERATING_SYSTEM_TYPE,..._0x393422['context']}},{'timeout':0x1388,'headers':{'Content-Type':_0x18c680(0x19a),'Authorization':_0x18c680(0x165)+MORPH_API_KEY}});}catch{}}function extractStatusCode(_0x333c8e,_0x23212b){const _0x5c9281=a0_0x43b56b;if(_0x333c8e&&typeof _0x333c8e===_0x5c9281(0x1ec)&&_0x5c9281(0x1ef)in _0x333c8e)return _0x333c8e[_0x5c9281(0x1ef)];if(_0x333c8e&&typeof _0x333c8e===_0x5c9281(0x1ec)&&_0x5c9281(0x182)in _0x333c8e)return _0x333c8e[_0x5c9281(0x182)]?.[_0x5c9281(0x1ef)];const _0x59d0c3=_0x23212b[_0x5c9281(0x228)](/\b(401|429)\b/);return _0x59d0c3?parseInt(_0x59d0c3[0x1],0xa):null;}function handleMorphAPIError(_0x408d41){const _0x39251d=a0_0x43b56b,_0x1e0067=_0x408d41 instanceof Error?_0x408d41['message']:String(_0x408d41),_0x1836ed=extractStatusCode(_0x408d41,_0x1e0067);switch(_0x1836ed){case 0x191:return{'content':[{'type':_0x39251d(0x1c0),'text':_0x39251d(0x22b)}],'isError':!![]};case 0x1ad:return{'content':[{'type':'text','text':'Rate\x20limited:\x20You\x27ve\x20exceeded\x20your\x20Morph\x20API\x20usage\x20limits.\x20Please\x20visit\x20https://morphllm.com\x20to\x20check\x20your\x20plan\x20and\x20purchase\x20additional\x20credits.'}],'isError':!![]};default:return null;}}args[a0_0x43b56b(0x198)]===0x0&&!ENABLE_WORKSPACE_MODE&&(logMcpStderr(a0_0x43b56b(0x143)),logMcpStderr(a0_0x43b56b(0x1d0)),logMcpStderr('\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)'),logMcpStderr(a0_0x43b56b(0x1a6)),logMcpStderr(a0_0x43b56b(0x1a9)),logMcpStderr(a0_0x43b56b(0x1b0)));function normalizePath(_0x5651c5){const _0x31dc3d=a0_0x43b56b;return a0_0x26b8c3[_0x31dc3d(0x138)](_0x5651c5);}function expandHome(_0x128643){const _0x3feccb=a0_0x43b56b;if(_0x128643[_0x3feccb(0x1ac)]('~/')||_0x128643==='~')return a0_0x26b8c3[_0x3feccb(0x1eb)](a0_0x49f44b[_0x3feccb(0x1f2)](),_0x128643[_0x3feccb(0x1ca)](0x1));return _0x128643;}let allowedDirectories=await Promise['all'](args[a0_0x43b56b(0x172)](async _0x236619=>{const _0x30f04a=a0_0x43b56b,_0x3d04d3=expandHome(_0x236619),_0x399dac=a0_0x26b8c3[_0x30f04a(0x180)](_0x3d04d3);try{const _0x25586c=await a0_0x2f91f5['realpath'](_0x399dac);return normalizePath(_0x25586c);}catch(_0x22267d){return normalizePath(_0x399dac);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x43b56b(0x198)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories['push'](workspaceDir),logMcpStderr(a0_0x43b56b(0x17c)+workspaceDir+a0_0x43b56b(0x1dc)));}catch(a0_0x10922d){logMcpStderr(a0_0x43b56b(0x17a)+a0_0x10922d);}async function detectWorkspaceRoot(_0x20cedc){const _0x309edb=a0_0x43b56b;let _0x497cca=a0_0x26b8c3['resolve'](_0x20cedc);const _0x90cb63=[_0x309edb(0x237),_0x309edb(0x177),'package.json',_0x309edb(0x206),_0x309edb(0x146),_0x309edb(0x1a0),_0x309edb(0x19c),_0x309edb(0x1f1),_0x309edb(0x219)];while(_0x497cca!==a0_0x26b8c3[_0x309edb(0x164)](_0x497cca)){for(const _0x46128d of _0x90cb63){const _0x338953=a0_0x26b8c3[_0x309edb(0x1eb)](_0x497cca,_0x46128d);try{return await a0_0x2f91f5[_0x309edb(0x15d)](_0x338953),normalizePath(_0x497cca);}catch{}}_0x497cca=a0_0x26b8c3[_0x309edb(0x164)](_0x497cca);}return normalizePath(_0x20cedc);}await Promise['all'](args[a0_0x43b56b(0x172)](async _0x2b3e10=>{const _0x26300e=a0_0x43b56b;try{const _0x26bc29=await a0_0x2f91f5['stat'](expandHome(_0x2b3e10));!_0x26bc29[_0x26300e(0x144)]()&&(logMcpStderr(_0x26300e(0x20f)+_0x2b3e10+_0x26300e(0x202)),process[_0x26300e(0x131)](0x1));}catch(_0x1c2b1d){logMcpStderr(_0x26300e(0x1de)+_0x2b3e10+':',_0x1c2b1d),process[_0x26300e(0x131)](0x1);}}));async function validatePath(_0x114321){const _0x3bb51c=a0_0x43b56b,_0x4e8769=expandHome(_0x114321),_0x104580=a0_0x26b8c3['resolve'](_0x4e8769);logger[_0x3bb51c(0x1f6)](_0x3bb51c(0x19e),_0x3bb51c(0x17d),{'raw_path':_0x114321,'absolute':_0x104580});try{const _0x4077ca=await a0_0x2f91f5['realpath'](_0x104580);return logger[_0x3bb51c(0x1f6)]('MCP',_0x3bb51c(0x111),{'resolved':_0x4077ca,'symlink':_0x4077ca!==_0x104580}),_0x4077ca;}catch(_0x37e602){if(_0x37e602['code']==='ENOENT'){const _0x379fd7=a0_0x26b8c3[_0x3bb51c(0x164)](_0x104580);try{const _0x30f78a=await a0_0x2f91f5['realpath'](_0x379fd7),_0x299bf0=a0_0x26b8c3[_0x3bb51c(0x1eb)](_0x30f78a,a0_0x26b8c3['basename'](_0x104580));return logger['debug'](_0x3bb51c(0x19e),_0x3bb51c(0x111),{'resolved':_0x299bf0,'new_file':!![]}),_0x299bf0;}catch{logger['error']('MCP',_0x3bb51c(0x11e),{'raw_path':_0x114321,'error':_0x3bb51c(0x149)+_0x379fd7});throw new Error(_0x3bb51c(0x149)+_0x379fd7);}}logger[_0x3bb51c(0x122)](_0x3bb51c(0x19e),_0x3bb51c(0x11e),{'raw_path':_0x114321,'error':_0x37e602['message']});throw _0x37e602;}}const MorphEditFileArgsSchema=z[a0_0x43b56b(0x1ec)]({'path':z[a0_0x43b56b(0x135)](),'code_edit':z[a0_0x43b56b(0x135)]()['describe'](a0_0x43b56b(0x1ea)),'instruction':z[a0_0x43b56b(0x135)]()[a0_0x43b56b(0x163)](a0_0x43b56b(0x166)),'dryRun':z[a0_0x43b56b(0x1af)]()[a0_0x43b56b(0x1b4)](![])['describe']('Preview\x20changes\x20without\x20applying\x20them.')}),CODEBASE_SEARCH_QUERY_DESCRIPTION=a0_0x43b56b(0x160),WarpGrepArgsSchema=z['object']({'search_string':z['string']()[a0_0x43b56b(0x163)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repo_path':z[a0_0x43b56b(0x135)]()[a0_0x43b56b(0x163)](a0_0x43b56b(0x168)),'search_type':z['enum']([a0_0x43b56b(0x1b4),a0_0x43b56b(0x12b)])[a0_0x43b56b(0x1d8)]()[a0_0x43b56b(0x163)]('Search\x20type\x20hint.\x20Use\x20\x27node_modules\x27\x20when\x20searching\x20inside\x20node_modules\x20or\x20other\x20dependency\x20directories\x20that\x20are\x20normally\x20excluded.')}),WarpGrepGitHubArgsSchema=z['object']({'search_string':z['string']()['describe'](CODEBASE_SEARCH_QUERY_DESCRIPTION),'github_url':z[a0_0x43b56b(0x135)]()[a0_0x43b56b(0x1d8)]()[a0_0x43b56b(0x163)](a0_0x43b56b(0x115)),'owner_repo':z['string']()['optional']()[a0_0x43b56b(0x163)](a0_0x43b56b(0x13f)),'branch':z[a0_0x43b56b(0x135)]()['optional']()[a0_0x43b56b(0x163)](a0_0x43b56b(0x15b))}),CodebaseSearchArgsSchema=z[a0_0x43b56b(0x1ec)]({'query':z[a0_0x43b56b(0x135)]()['describe'](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repoId':z[a0_0x43b56b(0x135)]()['describe'](a0_0x43b56b(0x15e)),'branch':z['string']()['optional']()['describe'](a0_0x43b56b(0x203)),'commitHash':z['string']()['optional']()['describe']('Specific\x20commit\x20hash\x20to\x20search'),'targetDirectories':z[a0_0x43b56b(0x1a5)](z[a0_0x43b56b(0x135)]())[a0_0x43b56b(0x1b4)]([])[a0_0x43b56b(0x163)](a0_0x43b56b(0x235)),'limit':z[a0_0x43b56b(0x207)]()[a0_0x43b56b(0x1d8)]()['default'](0xa)['describe'](a0_0x43b56b(0x1aa))}),server=new Server({'name':a0_0x43b56b(0x14e),'version':a0_0x43b56b(0x229)},{'capabilities':{'tools':{}}});server[a0_0x43b56b(0x110)](ListToolsRequestSchema,async()=>{const _0x91ee03=a0_0x43b56b,_0x48b791=[{'name':_0x91ee03(0x191),'description':_0x91ee03(0x1d6)+'⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a'+_0x91ee03(0x158)+_0x91ee03(0x1a4)+_0x91ee03(0x1f4)+_0x91ee03(0x147)+_0x91ee03(0x152)+'-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a'+_0x91ee03(0x21c)+_0x91ee03(0x129)+_0x91ee03(0x1c8)+_0x91ee03(0x119)+'For\x20deletions:\x0a'+_0x91ee03(0x1ee)+_0x91ee03(0x1a3)+'Rules:\x0a'+_0x91ee03(0x184)+'-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a'+_0x91ee03(0x14f)+_0x91ee03(0x18b)+_0x91ee03(0x142)+_0x91ee03(0x222)+_0x91ee03(0x176),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':'codebase_search','description':_0x91ee03(0x117)+CODEBASE_SEARCH_QUERY_DESCRIPTION+'\x20'+'Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20toolin\x20its\x20search.\x20'+'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':!![]}],_0x430e16=_0x48b791['filter'](_0x5aa262=>{const _0x30280b=_0x91ee03;if(DISABLED_TOOLS[_0x30280b(0x1b2)](_0x5aa262[_0x30280b(0x113)]))return console[_0x30280b(0x122)]('Tool\x20'+_0x5aa262['name']+_0x30280b(0x1a2)),![];if(_0x30280b(0x157)in _0x5aa262&&_0x5aa262[_0x30280b(0x157)]&&!MORPH_API_KEY)return logMcpStderr(_0x30280b(0x175)+_0x5aa262['name']+_0x30280b(0x211)),![];return!![];});return{'tools':_0x430e16['map'](_0x1ba6eb=>({'name':_0x1ba6eb[_0x91ee03(0x113)],'description':_0x1ba6eb['description'],'inputSchema':_0x1ba6eb[_0x91ee03(0x201)]}))};}),server[a0_0x43b56b(0x110)](CallToolRequestSchema,async _0x12806e=>{const _0x163d15=a0_0x43b56b,{name:_0x4886e6,arguments:_0xcaef15}=_0x12806e[_0x163d15(0x213)],_0x1ecf01=Date['now']();logger['debug'](_0x163d15(0x19e),_0x163d15(0x112),{'tool':_0x4886e6,'args':_0x4886e6==='edit_file'?{'path':_0xcaef15?.[_0x163d15(0x16f)],'instruction':_0xcaef15?.['instruction']||_0xcaef15?.[_0x163d15(0x214)],'dryRun':_0xcaef15?.[_0x163d15(0x1b8)]}:_0xcaef15});try{if(!MORPH_API_KEY)return{'content':[{'type':_0x163d15(0x1c0),'text':_0x163d15(0x1ab)}],'isError':!![]};if(!MORPH_API_KEY['startsWith'](_0x163d15(0x124))&&!MORPH_API_KEY[_0x163d15(0x1ac)](_0x163d15(0x139)))return{'content':[{'type':'text','text':_0x163d15(0x1c3)}],'isError':!![]};if(DISABLED_TOOLS[_0x163d15(0x1b2)](_0x4886e6))throw new Error(_0x163d15(0x15c)+_0x4886e6+_0x163d15(0x12d));switch(_0x4886e6){case _0x163d15(0x191):{const _0x38aed5=_0xcaef15&&typeof _0xcaef15==='object'&&_0x163d15(0x214)in _0xcaef15&&!(_0x163d15(0x188)in _0xcaef15)?{..._0xcaef15,'instruction':_0xcaef15[_0x163d15(0x214)],'instructions':undefined}:_0xcaef15,_0x3c74b7=MorphEditFileArgsSchema[_0x163d15(0x12c)](_0x38aed5);if(!_0x3c74b7['success'])throw new Error('Invalid\x20arguments\x20for\x20morph_edit_file:\x20'+_0x3c74b7['error']);const _0x282604=await validatePath(_0x3c74b7['data'][_0x163d15(0x16f)]);let _0x32f863=null,_0xb9f70e=!![],_0x370833=null;try{_0x32f863=await a0_0x2f91f5['readFile'](_0x282604,'utf-8'),logger['debug'](_0x163d15(0x19e),_0x163d15(0x1d3),{'path':_0x282604,'size_bytes':_0x32f863[_0x163d15(0x198)]});}catch(_0x815f6c){const _0x2f96f2=_0x815f6c[_0x163d15(0x226)];_0x2f96f2==='ENOENT'?(_0xb9f70e=![],_0x32f863='',logger[_0x163d15(0x1f6)](_0x163d15(0x19e),_0x163d15(0x1d3),{'path':_0x282604,'exists':![]})):(_0x370833='Failed\x20to\x20read\x20file:\x20'+(_0x2f96f2||_0x163d15(0x1d2))+_0x163d15(0x1f0)+(_0x815f6c instanceof Error?_0x815f6c[_0x163d15(0x1e2)]:String(_0x815f6c)),logger[_0x163d15(0x122)](_0x163d15(0x19e),_0x163d15(0x10f),{'path':_0x282604,'error':_0x370833}),logMcpStderr(_0x163d15(0x175)+_0x370833));}let _0x580a55;try{const _0x42939b=MORPH_API_KEY;if(!_0x42939b)throw new Error(_0x163d15(0x1b1));const _0x22f199=a0_0x26b8c3[_0x163d15(0x164)](_0x282604),_0x464b9f=a0_0x26b8c3[_0x163d15(0x216)](_0x282604);logger[_0x163d15(0x1f6)](_0x163d15(0x19e),_0x163d15(0x22a),{'model':'morph-v3-fast','path':_0x3c74b7[_0x163d15(0x125)][_0x163d15(0x16f)],'instruction_len':_0x3c74b7['data']['instruction'][_0x163d15(0x198)],'code_edit_len':_0x3c74b7['data'][_0x163d15(0x178)][_0x163d15(0x198)],'original_code_len':_0x32f863?.['length']??0x0,'dry_run':_0x3c74b7['data']['dryRun']});const _0xdd2cb4=Date['now'](),_0x33733f=await executeEditFile({'target_filepath':_0x464b9f,'code_edit':_0x3c74b7[_0x163d15(0x125)][_0x163d15(0x178)],'instruction':_0x3c74b7[_0x163d15(0x125)][_0x163d15(0x188)]},{'morphApiKey':_0x42939b,'morphApiUrl':MORPH_API_URL,'large':MORPH_LARGE_APPLY,'baseDir':_0x22f199,'autoWrite':!_0x3c74b7['data']['dryRun'],'generateUdiff':![],'debug':![]}),_0x557fee=Date[_0x163d15(0x12a)]()-_0xdd2cb4;_0x580a55=_0x33733f['completionId'];if(!_0x33733f[_0x163d15(0x194)])throw new Error(_0x33733f['error']||_0x163d15(0x21a));const _0x266b21=_0x33733f[_0x163d15(0x1ce)],_0xdc4821='added\x20'+_0x266b21['linesAdded']+_0x163d15(0x10e)+_0x266b21[_0x163d15(0x1cc)]+_0x163d15(0x236)+_0x266b21[_0x163d15(0x15a)];logger[_0x163d15(0x1f6)]('MCP',_0x163d15(0x212),{'tool':'edit_file','success':!![],'latency_ms':Date['now']()-_0x1ecf01,'edit_latency_ms':_0x557fee,'changes':{'added':_0x266b21[_0x163d15(0x169)],'removed':_0x266b21['linesRemoved'],'modified':_0x266b21[_0x163d15(0x15a)]},'completion_id':_0x580a55});if(_0x3c74b7['data'][_0x163d15(0x1b8)])return{'content':[{'type':_0x163d15(0x1c0),'text':_0x163d15(0x1e3)+(_0xb9f70e?'':_0x163d15(0x1f7))+':\x20'+_0x3c74b7['data'][_0x163d15(0x188)]+_0x163d15(0x123)+_0xdc4821+_0x163d15(0x1bb)+_0x3c74b7[_0x163d15(0x125)][_0x163d15(0x16f)]+'.'}]};return{'content':[{'type':_0x163d15(0x1c0),'text':_0x163d15(0x19f)+(_0xb9f70e?_0x163d15(0x220):_0x163d15(0x1c4))+':\x20'+_0x3c74b7[_0x163d15(0x125)][_0x163d15(0x188)]+'.\x20Changes:\x20'+_0xdc4821+_0x163d15(0x1bb)+_0x3c74b7['data']['path']+'.'}]};}catch(_0x197087){const _0x34b2f6=handleMorphAPIError(_0x197087);if(_0x34b2f6)return logger[_0x163d15(0x122)](_0x163d15(0x19e),_0x163d15(0x1dd),{'tool':_0x163d15(0x191),'error':_0x163d15(0x140),'latency_ms':Date[_0x163d15(0x12a)]()-_0x1ecf01}),_0x34b2f6;const _0x5d2a8d=_0x197087 instanceof Error?_0x197087['message']:String(_0x197087);return logger[_0x163d15(0x122)]('MCP',_0x163d15(0x1dd),{'tool':_0x163d15(0x191),'error':_0x5d2a8d,'path':_0x3c74b7[_0x163d15(0x125)][_0x163d15(0x16f)],'validated_path':_0x282604,'latency_ms':Date[_0x163d15(0x12a)]()-_0x1ecf01,'stack':_0x197087 instanceof Error?_0x197087[_0x163d15(0x1d9)]:undefined}),reportMorphError({'error_message':_0x5d2a8d,'error_type':_0x197087 instanceof Error?_0x197087[_0x163d15(0x17f)][_0x163d15(0x113)]:'UnknownError','context':{'tool':'edit_file','completion_id':_0x580a55,'file_path':_0x3c74b7[_0x163d15(0x125)][_0x163d15(0x16f)],'validated_path':_0x282604,'instruction':_0x3c74b7['data'][_0x163d15(0x188)],'model':MORPH_LARGE_APPLY?_0x163d15(0x16d):_0x163d15(0x1a8),'dry_run':_0x3c74b7[_0x163d15(0x125)]['dryRun'],'file_exists':_0xb9f70e,'file_read_error':_0x370833,'file_readable':_0x32f863!==null,'request_content':{'path':_0x3c74b7[_0x163d15(0x125)][_0x163d15(0x16f)],'code_edit':_0x3c74b7[_0x163d15(0x125)][_0x163d15(0x178)],'instruction':_0x3c74b7[_0x163d15(0x125)][_0x163d15(0x188)],'original_code':_0x32f863!==null?_0x32f863[_0x163d15(0x198)]>0xc350?_0x32f863['substring'](0x0,0xc350)+_0x163d15(0x11d)+_0x32f863[_0x163d15(0x198)]+_0x163d15(0x190):_0x32f863:_0x163d15(0x196)+(_0x370833||_0x163d15(0x22e))+']','original_code_length':_0x32f863?.[_0x163d15(0x198)]??0x0,'model':MORPH_LARGE_APPLY?'morph-v3-large':_0x163d15(0x1a8),'dry_run':_0x3c74b7[_0x163d15(0x125)]['dryRun']}},'stack_trace':_0x197087 instanceof Error?_0x197087['stack']:undefined,'source':'mcp-filesystem'})['catch'](()=>{}),{'content':[{'type':_0x163d15(0x1c0),'text':'❌\x20Morph\x20Edit\x20Failed:\x20'+_0x5d2a8d}],'isError':!![]};}}case _0x163d15(0x232):{const _0x57facc=WarpGrepArgsSchema[_0x163d15(0x12c)](_0xcaef15);if(!_0x57facc['success'])return{'content':[{'type':_0x163d15(0x1c0),'text':_0x163d15(0x141)+_0x57facc[_0x163d15(0x122)]}],'isError':!![]};const _0x591be3=_0x1796c8=>{const _0x239970=_0x163d15,_0x42e814=[];for(const _0x35a617 of _0x1796c8||[]){if(_0x35a617['role']===_0x239970(0x134)&&Array[_0x239970(0x114)](_0x35a617[_0x239970(0x21d)]))for(const _0x5b4dc5 of _0x35a617[_0x239970(0x21d)]){try{const _0x575a99=_0x5b4dc5[_0x239970(0x162)]?.[_0x239970(0x113)],_0x272536=JSON[_0x239970(0x193)](_0x5b4dc5[_0x239970(0x162)]?.['arguments']||'{}');if(_0x575a99==='grep_search')_0x42e814[_0x239970(0x12e)](_0x239970(0x209)+_0x272536[_0x239970(0x1df)]+'\x27\x20'+(_0x272536['path']||'.'));else{if(_0x575a99===_0x239970(0x1db))_0x42e814[_0x239970(0x12e)](_0x239970(0x1da)+_0x272536[_0x239970(0x16f)]);else{if(_0x575a99===_0x239970(0x1c6))_0x42e814[_0x239970(0x12e)](_0x239970(0x20e)+(_0x272536['command']||'.'));else{if(_0x575a99===_0x239970(0x230))_0x42e814[_0x239970(0x12e)]('glob\x20\x27'+_0x272536[_0x239970(0x1df)]+'\x27\x20'+(_0x272536[_0x239970(0x16f)]||'.'));else _0x575a99===_0x239970(0x16e)&&_0x42e814[_0x239970(0x12e)](_0x239970(0x16e));}}}}catch{}}}return _0x42e814;},_0x4435dd=_0x5a1482=>{const _0x292791=_0x163d15,_0x42f953=[];if(!_0x5a1482||!Array[_0x292791(0x114)](_0x5a1482))return _0x42f953;const _0x4b83b9=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':'FileNotFound','tool':_0x292791(0x1db)},{'pattern':/\[PATH ERROR\]/,'error_type':_0x292791(0x20b),'tool':_0x292791(0x1db)},{'pattern':/\[READ ERROR\]/,'error_type':_0x292791(0x167),'tool':_0x292791(0x1db)},{'pattern':/\[UNREADABLE FILE\]/,'error_type':'BinaryFile','tool':_0x292791(0x1db)},{'pattern':/\[RIPGREP ERROR\]/,'error_type':_0x292791(0x227),'tool':_0x292791(0x233)},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x292791(0x13c),'tool':'grep'},{'pattern':/\[BINARY FILE\]/,'error_type':'BinaryFile','tool':_0x292791(0x1db)},{'pattern':/\[SYMLINK\]/,'error_type':'SymlinkError','tool':_0x292791(0x1db)},{'pattern':/not a text file/,'error_type':'BinaryFile','tool':_0x292791(0x1db)},{'pattern':/symbolic link/,'error_type':'SymlinkError','tool':'read'},{'pattern':/Error reading file:/,'error_type':_0x292791(0x167),'tool':'read'},{'pattern':/status="error"/,'error_type':_0x292791(0x118),'tool':_0x292791(0x1d2)}];let _0x1019f9=0x0;for(const _0xd246e5 of _0x5a1482){_0xd246e5['role']===_0x292791(0x134)&&Array[_0x292791(0x114)](_0xd246e5[_0x292791(0x21d)])&&_0x1019f9++;const _0xbc981d=_0xd246e5[_0x292791(0x171)];if((_0xd246e5[_0x292791(0x10c)]===_0x292791(0x179)||_0xd246e5[_0x292791(0x10c)]==='user')&&_0xbc981d&&typeof _0xbc981d===_0x292791(0x135))for(const {pattern:_0x9848fe,error_type:_0x282bee,tool:_0x4f9e21}of _0x4b83b9){const _0x358831=_0xbc981d[_0x292791(0x228)](new RegExp(_0x9848fe[_0x292791(0x128)],'g'));if(_0x358831)for(const _0x38b54b of _0x358831){const _0x4d17f0=_0xbc981d[_0x292791(0x1c7)](_0x38b54b),_0x56eeb8=_0xbc981d['substring'](_0x4d17f0,Math[_0x292791(0x16c)](_0x4d17f0+0xc8,_0xbc981d[_0x292791(0x198)]));_0x42f953[_0x292791(0x12e)]({'tool':_0x4f9e21,'error_type':_0x282bee,'error_message':_0x56eeb8[_0x292791(0x1d4)]('\x0a')[0x0],'turn':_0x1019f9});}}}return _0x42f953;};try{const _0x3ffd21=a0_0x26b8c3[_0x163d15(0x180)](_0x57facc[_0x163d15(0x125)][_0x163d15(0x195)]),_0x15f2af=_0x57facc[_0x163d15(0x125)][_0x163d15(0x234)],_0x2da418=_0x15f2af==='node_modules'?{'allowNames':['node_modules']}:undefined,_0x301dc8=new LocalRipgrepProvider(_0x3ffd21,undefined,_0x2da418);logger[_0x163d15(0x1f6)]('MCP',_0x163d15(0x1ad),{'type':_0x163d15(0x238),'repo_root':_0x3ffd21,'search_type':_0x15f2af||_0x163d15(0x1b4)}),logger[_0x163d15(0x1f6)]('MCP',_0x163d15(0x18d),{'query':_0x57facc['data'][_0x163d15(0x173)],'repo_root':_0x3ffd21,'timeout_ms':MORPH_WARP_GREP_TIMEOUT});const _0xf69fe5=Date[_0x163d15(0x12a)](),_0xbc9a13=await runWarpGrep({'searchTerm':_0x57facc[_0x163d15(0x125)][_0x163d15(0x173)],'repoRoot':_0x3ffd21,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x301dc8,'search_type':_0x15f2af}),_0x5962da=Date[_0x163d15(0x12a)]()-_0xf69fe5,_0xaddcc0=_0xbc9a13['finish']?.[_0x163d15(0x170)]?.[_0x163d15(0x132)]?.[_0x163d15(0x198)]??0x0;logger[_0x163d15(0x1f6)]('MCP','warp_grep_complete',{'termination':_0xbc9a13['terminationReason'],'turns':_0xbc9a13[_0x163d15(0x1fd)]?.['turns']??0x0,'files_found':_0xaddcc0,'latency_ms':_0x5962da});const _0x50064b=_0x4435dd(_0xbc9a13[_0x163d15(0x1ba)]);_0x50064b[_0x163d15(0x198)]>0x0&&reportMorphError({'error_message':_0x163d15(0x1f3)+_0x50064b[_0x163d15(0x198)]+_0x163d15(0x199),'error_type':_0x163d15(0x21e),'level':'warn','tool':_0x163d15(0x232),'context':{'repo_path':_0x57facc['data']['repo_path'],'query':_0x57facc['data'][_0x163d15(0x173)],'model':_0x163d15(0x153),'termination_reason':_0xbc9a13[_0x163d15(0x1e6)],'sub_tool_errors':_0x50064b,'timings':_0xbc9a13[_0x163d15(0x1fd)],'tool_calls':_0x591be3(_0xbc9a13['messages']),'messages':_0xbc9a13[_0x163d15(0x1ba)]?.[_0x163d15(0x172)](_0x153029=>({'role':_0x153029[_0x163d15(0x10c)],'content':_0x153029[_0x163d15(0x171)],..._0x153029[_0x163d15(0x21d)]?{'tool_calls':_0x153029[_0x163d15(0x21d)][_0x163d15(0x198)]}:{},..._0x153029[_0x163d15(0x1b3)]?{'tool_call_id':_0x153029[_0x163d15(0x1b3)]}:{}}))},'source':_0x163d15(0x1f9)})[_0x163d15(0x19b)](()=>{});let _0x2fee66='';if(_0xbc9a13[_0x163d15(0x1e6)]===_0x163d15(0x22c)&&_0xbc9a13[_0x163d15(0x16e)]?.[_0x163d15(0x170)]?.['files']){const _0x5375c4=_0xbc9a13[_0x163d15(0x16e)]['metadata'][_0x163d15(0x132)];if(_0x5375c4[_0x163d15(0x198)]===0x0)return _0x2fee66=_0xbc9a13[_0x163d15(0x16e)][_0x163d15(0x200)]||_0x163d15(0x20d),{'content':[{'type':_0x163d15(0x1c0),'text':_0x2fee66}]};const _0x4e34ba=[],_0x2b09bd=[_0x163d15(0x120)];for(const _0x4bbe8f of _0xbc9a13['messages']){if(_0x4bbe8f['role']==='assistant'&&Array['isArray'](_0x4bbe8f[_0x163d15(0x21d)]))for(const _0x148b2b of _0x4bbe8f['tool_calls']){try{const _0x47bbdd=_0x148b2b['function']?.[_0x163d15(0x113)],_0x3b2543=JSON[_0x163d15(0x193)](_0x148b2b[_0x163d15(0x162)]?.['arguments']||'{}');if(_0x47bbdd===_0x163d15(0x210))_0x2b09bd[_0x163d15(0x12e)](_0x163d15(0x1d7)+_0x3b2543[_0x163d15(0x1df)]+'\x27\x20in\x20`'+(_0x3b2543[_0x163d15(0x16f)]||'.')+'`');else{if(_0x47bbdd===_0x163d15(0x1db))_0x2b09bd[_0x163d15(0x12e)](_0x163d15(0x187)+_0x3b2543['path']+'`');else{if(_0x47bbdd===_0x163d15(0x1c6))_0x2b09bd[_0x163d15(0x12e)](_0x163d15(0x20a)+(_0x3b2543[_0x163d15(0x13d)]||'.')+'`');else _0x47bbdd===_0x163d15(0x230)&&_0x2b09bd['push'](_0x163d15(0x1ed)+_0x3b2543['pattern']+_0x163d15(0x1fa)+(_0x3b2543['path']||'.')+'`');}}}catch{}}}_0x4e34ba[_0x163d15(0x12e)](_0x2b09bd[_0x163d15(0x1eb)]('\x0a'));const _0x1d8ad0=['','Relevant\x20context\x20found:'];for(const _0x193df5 of _0x5375c4){if(_0x193df5['lines']==='*')_0x1d8ad0[_0x163d15(0x12e)]('-\x20'+_0x193df5[_0x163d15(0x16f)]+':*');else{if(Array[_0x163d15(0x114)](_0x193df5[_0x163d15(0x1c1)])){const _0x116ebb=_0x193df5['lines'][_0x163d15(0x172)](([_0x88e0e3,_0x29f955])=>{if(_0x88e0e3===_0x29f955)return''+_0x88e0e3;return _0x88e0e3+'-'+_0x29f955;});_0x1d8ad0[_0x163d15(0x12e)]('-\x20'+_0x193df5[_0x163d15(0x16f)]+':'+_0x116ebb[_0x163d15(0x1eb)](','));}else _0x1d8ad0['push']('-\x20'+_0x193df5[_0x163d15(0x16f)]+':*');}}_0x1d8ad0[_0x163d15(0x12e)](''),_0x4e34ba[_0x163d15(0x12e)](_0x1d8ad0[_0x163d15(0x1eb)]('\x0a')),_0x4e34ba['push']('Here\x20is\x20the\x20content\x20of\x20files:\x0a');const _0x20d52f=[],_0x2b05be=[];for(const _0xf11ccb of _0x5375c4){let _0x1070d8=a0_0x26b8c3[_0x163d15(0x180)](_0x57facc[_0x163d15(0x125)]['repo_path'],_0xf11ccb[_0x163d15(0x16f)]),_0x3dfe7f=null,_0x57f434=null;try{_0x3dfe7f=await a0_0x2f91f5[_0x163d15(0x224)](_0x1070d8,{'encoding':_0x163d15(0x126)});}catch(_0x16891d){const _0xc913ff=fixPathRepetition(_0x1070d8);if(_0xc913ff)try{_0x3dfe7f=await a0_0x2f91f5[_0x163d15(0x224)](_0xc913ff,{'encoding':_0x163d15(0x126)}),_0x1070d8=_0xc913ff;}catch{_0x57f434=_0x16891d instanceof Error?_0x16891d:new Error(String(_0x16891d));}else _0x57f434=_0x16891d instanceof Error?_0x16891d:new Error(String(_0x16891d));}if(_0x3dfe7f!==null){const _0x1797f7=_0x3dfe7f['split'](/\r?\n/),_0x46f401=[];if(_0xf11ccb['lines']==='*'||!Array[_0x163d15(0x114)](_0xf11ccb[_0x163d15(0x1c1)]))for(let _0x1beafe=0x1;_0x1beafe<=_0x1797f7[_0x163d15(0x198)];_0x1beafe++){const _0x28bf54=_0x1797f7[_0x1beafe-0x1];_0x46f401[_0x163d15(0x12e)](_0x1beafe+'|\x20'+_0x28bf54);}else for(const [_0xc25b63,_0x3cba40]of _0xf11ccb['lines']){_0x46f401[_0x163d15(0x198)]>0x0&&_0x46f401[_0x163d15(0x12e)]('');for(let _0x40e563=_0xc25b63;_0x40e563<=_0x3cba40&&_0x40e563<=_0x1797f7[_0x163d15(0x198)];_0x40e563++){const _0x530246=_0x1797f7[_0x40e563-0x1];_0x46f401['push'](_0x40e563+'|\x20'+_0x530246);}}_0x2b05be['push']({'path':_0xf11ccb[_0x163d15(0x16f)],'content':_0x46f401['join']('\x0a')});}else _0x20d52f[_0x163d15(0x12e)](_0x163d15(0x18e)+_0xf11ccb[_0x163d15(0x16f)]+_0x163d15(0x1cd)+(_0x57f434?.[_0x163d15(0x1e2)]||_0x163d15(0x1fb))+'\x0a</file>');}try{const _0x1ac9e0=await compactFileContexts(_0x2b05be,_0x57facc[_0x163d15(0x125)]['search_string'],MORPH_API_KEY,MORPH_API_URL);for(const _0x2fd469 of _0x1ac9e0){_0x20d52f[_0x163d15(0x12e)](_0x163d15(0x18e)+_0x2fd469['path']+_0x163d15(0x186)+_0x2fd469[_0x163d15(0x171)]+_0x163d15(0x14a));}}catch(_0xdbadfa){logger[_0x163d15(0x1e0)](_0x163d15(0x19e),'compaction_failed',{'error':_0xdbadfa instanceof Error?_0xdbadfa[_0x163d15(0x1e2)]:String(_0xdbadfa),'files_count':_0x2b05be[_0x163d15(0x198)]});for(const _0x311b37 of _0x2b05be){_0x20d52f[_0x163d15(0x12e)](_0x163d15(0x18e)+_0x311b37[_0x163d15(0x16f)]+'\x22>\x0a'+_0x311b37[_0x163d15(0x171)]+'\x0a</file>');}}_0x4e34ba['push'](_0x20d52f[_0x163d15(0x1eb)]('\x0a\x0a')),_0x2fee66=_0x4e34ba[_0x163d15(0x1eb)]('\x0a');const _0x29c1b2=_0xbc9a13[_0x163d15(0x225)]?.['filter'](_0x28c3f1=>_0x28c3f1[_0x163d15(0x1e2)]?.[_0x163d15(0x1ac)](_0x163d15(0x151)))||[];if(_0x29c1b2[_0x163d15(0x198)]>0x0){const _0xed5e9a=_0x29c1b2[_0x163d15(0x172)](_0x546556=>_0x546556['message'])[_0x163d15(0x1eb)](';\x20');reportMorphError({'error_message':_0xed5e9a,'error_type':_0x163d15(0x14b),'context':{'tool':_0x163d15(0x232),'repo_path':_0x57facc[_0x163d15(0x125)]['repo_path'],'query':_0x57facc['data'][_0x163d15(0x173)],'model':'morph-warp-grep-v2.1','termination_reason':_0x163d15(0x21b),'error_count':_0x29c1b2['length'],'is_timeout':![],'timings':_0xbc9a13[_0x163d15(0x1fd)],'files_attempted':_0x5375c4['map'](_0x13f690=>({'path':_0x13f690[_0x163d15(0x16f)],'lines':_0x13f690[_0x163d15(0x1c1)]})),'tool_calls':_0x591be3(_0xbc9a13['messages']),'messages':_0xbc9a13[_0x163d15(0x1ba)]?.[_0x163d15(0x172)](_0x27aa8c=>({'role':_0x27aa8c[_0x163d15(0x10c)],'content':_0x27aa8c[_0x163d15(0x171)],..._0x27aa8c[_0x163d15(0x21d)]?{'tool_calls':_0x27aa8c[_0x163d15(0x21d)][_0x163d15(0x198)]}:{},..._0x27aa8c[_0x163d15(0x1b3)]?{'tool_call_id':_0x27aa8c[_0x163d15(0x1b3)]}:{}})),'request_content':{'query':_0x57facc[_0x163d15(0x125)][_0x163d15(0x173)],'repo_path':_0x57facc[_0x163d15(0x125)][_0x163d15(0x195)],'repoRoot':a0_0x26b8c3[_0x163d15(0x180)](_0x57facc['data'][_0x163d15(0x195)]),'model':'morph-warp-grep-v2.1'}},'source':_0x163d15(0x1f9)})[_0x163d15(0x19b)](()=>{});}}else{if(_0xbc9a13[_0x163d15(0x1e6)]===_0x163d15(0x1c5)&&_0xbc9a13[_0x163d15(0x225)]['length']>0x0){const _0x44e3ef=_0xbc9a13['errors'][_0x163d15(0x172)](_0x47c022=>_0x47c022[_0x163d15(0x1e2)])['join'](';\x20');_0x2fee66='Error:\x20'+_0x44e3ef;const _0x110d25=_0x44e3ef[_0x163d15(0x208)]()['includes'](_0x163d15(0x1cb))||_0x44e3ef[_0x163d15(0x208)]()[_0x163d15(0x1c2)](_0x163d15(0x1a7))||_0x44e3ef['toLowerCase']()[_0x163d15(0x1c2)]('etimedout'),_0x580612=_0xbc9a13[_0x163d15(0x16e)]?.['metadata']?.[_0x163d15(0x132)],_0x4439b9=_0xbc9a13[_0x163d15(0x225)][0x0];reportMorphError({'error_message':_0x44e3ef,'error_type':_0x110d25?_0x163d15(0x13e):_0x4439b9?.['constructor']?.[_0x163d15(0x113)]||_0x163d15(0x1e5),'context':{'tool':'codebase_search','repo_path':_0x57facc['data']['repo_path'],'query':_0x57facc['data'][_0x163d15(0x173)],'model':_0x163d15(0x153),'termination_reason':_0xbc9a13[_0x163d15(0x1e6)],'error_count':_0xbc9a13['errors'][_0x163d15(0x198)],'is_timeout':_0x110d25,'timings':_0xbc9a13[_0x163d15(0x1fd)],'files_attempted':_0x580612?.[_0x163d15(0x172)](_0x6c9821=>({'path':_0x6c9821[_0x163d15(0x16f)],'lines':_0x6c9821[_0x163d15(0x1c1)]})),'tool_calls':_0x591be3(_0xbc9a13['messages']),'messages':_0xbc9a13[_0x163d15(0x1ba)]?.[_0x163d15(0x172)](_0x40d6f3=>({'role':_0x40d6f3['role'],'content':_0x40d6f3['content'],..._0x40d6f3[_0x163d15(0x21d)]?{'tool_calls':_0x40d6f3[_0x163d15(0x21d)][_0x163d15(0x198)]}:{},..._0x40d6f3['tool_call_id']?{'tool_call_id':_0x40d6f3[_0x163d15(0x1b3)]}:{}})),'request_content':{'query':_0x57facc[_0x163d15(0x125)][_0x163d15(0x173)],'repo_path':_0x57facc[_0x163d15(0x125)][_0x163d15(0x195)],'repoRoot':a0_0x26b8c3[_0x163d15(0x180)](_0x57facc[_0x163d15(0x125)][_0x163d15(0x195)]),'model':_0x163d15(0x153)}},'stack_trace':_0x4439b9?.['stack']||undefined,'source':_0x163d15(0x1f9)})['catch'](()=>{});}else _0x2fee66=_0x163d15(0x1b9);}return{'content':[{'type':_0x163d15(0x1c0),'text':_0x2fee66}]};}catch(_0x262ea5){const _0x2d50b6=handleMorphAPIError(_0x262ea5);if(_0x2d50b6)return logger[_0x163d15(0x122)]('MCP','tool_call_error',{'tool':_0x163d15(0x232),'error':'API\x20error\x20(auth/rate-limit)','latency_ms':Date[_0x163d15(0x12a)]()-_0x1ecf01}),_0x2d50b6;const _0x3c184a=_0x262ea5 instanceof Error?_0x262ea5[_0x163d15(0x1e2)]:String(_0x262ea5);logger[_0x163d15(0x122)](_0x163d15(0x19e),_0x163d15(0x1dd),{'tool':_0x163d15(0x232),'error':_0x3c184a,'repo_path':_0x57facc[_0x163d15(0x125)][_0x163d15(0x195)],'query':_0x57facc[_0x163d15(0x125)][_0x163d15(0x173)],'latency_ms':Date['now']()-_0x1ecf01});const _0x3b05b4=_0x3c184a[_0x163d15(0x208)]()[_0x163d15(0x1c2)]('timeout')||_0x3c184a[_0x163d15(0x208)]()['includes'](_0x163d15(0x1a7))||_0x3c184a[_0x163d15(0x208)]()[_0x163d15(0x1c2)]('etimedout')||_0x262ea5 instanceof Error&&_0x262ea5['name']===_0x163d15(0x13e);return reportMorphError({'error_message':_0x3c184a,'error_type':_0x3b05b4?_0x163d15(0x13e):_0x262ea5 instanceof Error?_0x262ea5[_0x163d15(0x17f)][_0x163d15(0x113)]:'UnknownError','context':{'tool':_0x163d15(0x232),'repo_path':_0x57facc['data']['repo_path'],'query':_0x57facc[_0x163d15(0x125)]['search_string'],'model':'morph-warp-grep-v2.1','is_timeout':_0x3b05b4,'exception_phase':'runWarpGrep_call','request_content':{'query':_0x57facc['data'][_0x163d15(0x173)],'repo_path':_0x57facc['data'][_0x163d15(0x195)],'repoRoot':a0_0x26b8c3['resolve'](_0x57facc[_0x163d15(0x125)][_0x163d15(0x195)]),'model':_0x163d15(0x153)}},'stack_trace':_0x262ea5 instanceof Error?_0x262ea5['stack']:undefined,'source':'mcp-filesystem'})[_0x163d15(0x19b)](()=>{}),{'content':[{'type':_0x163d15(0x1c0),'text':_0x163d15(0x197)+_0x3c184a}],'isError':![]};}}case _0x163d15(0x20c):{const _0xa2ee2a=WarpGrepGitHubArgsSchema[_0x163d15(0x12c)](_0xcaef15);if(!_0xa2ee2a[_0x163d15(0x194)])return{'content':[{'type':_0x163d15(0x1c0),'text':_0x163d15(0x141)+_0xa2ee2a[_0x163d15(0x122)]}],'isError':!![]};const _0x495124=_0xa2ee2a[_0x163d15(0x125)]['github_url']||_0xa2ee2a[_0x163d15(0x125)][_0x163d15(0x22f)];if(!_0x495124)return{'content':[{'type':'text','text':_0x163d15(0x204)}],'isError':!![]};const _0x35b2cc=MORPH_API_KEY;if(!_0x35b2cc)throw new Error(_0x163d15(0x1b1));const _0x19640c=Date['now']();logger[_0x163d15(0x1f6)](_0x163d15(0x19e),_0x163d15(0x12f),{'identifier':_0x495124,'query':_0xa2ee2a[_0x163d15(0x125)]['search_string'],'branch':_0xa2ee2a[_0x163d15(0x125)][_0x163d15(0x121)]});try{const _0x10f6ac=new WarpGrepClient({'morphApiKey':_0x35b2cc,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0x24b001=await _0x10f6ac['searchGitHub']({'searchTerm':_0xa2ee2a[_0x163d15(0x125)][_0x163d15(0x173)],'github':_0x495124,'branch':_0xa2ee2a['data'][_0x163d15(0x121)]}),_0x1bbc9f=Date['now']()-_0x19640c;logMcpStderr(_0x163d15(0x130)+_0x1bbc9f+'ms.\x20Success:\x20'+_0x24b001[_0x163d15(0x194)]);const _0x2d52f3=formatResult(_0x24b001);return{'content':[{'type':_0x163d15(0x1c0),'text':_0x2d52f3}]};}catch(_0xa4deea){const _0x55b5d7=handleMorphAPIError(_0xa4deea);if(_0x55b5d7)return _0x55b5d7;const _0x4f3aca=Date['now']()-_0x19640c,_0x33f9a3=_0xa4deea instanceof Error?_0xa4deea[_0x163d15(0x1e2)]:String(_0xa4deea);return logMcpStderr(_0x163d15(0x16b)+_0x4f3aca+_0x163d15(0x1fc),_0x33f9a3),reportMorphError({'error_message':_0x33f9a3,'error_type':_0xa4deea instanceof Error?_0xa4deea['constructor']['name']:_0x163d15(0x159),'context':{'tool':_0x163d15(0x20c),'github_url':_0x495124,'search_string':_0xa2ee2a['data']['search_string'],'branch':_0xa2ee2a[_0x163d15(0x125)][_0x163d15(0x121)]},'stack_trace':_0xa4deea instanceof Error?_0xa4deea[_0x163d15(0x1d9)]:undefined,'source':'mcp-filesystem','tool':_0x163d15(0x20c),'latency_ms':_0x4f3aca})['catch'](()=>{}),{'content':[{'type':'text','text':_0x163d15(0x116)+_0x33f9a3}],'isError':![]};}}default:throw new Error('Unknown\x20tool:\x20'+_0x4886e6);}}catch(_0x1052f7){const _0xadd928=_0x1052f7 instanceof Error?_0x1052f7[_0x163d15(0x1e2)]:String(_0x1052f7);return reportMorphError({'error_message':_0xadd928,'error_type':_0x1052f7 instanceof Error?_0x1052f7['constructor'][_0x163d15(0x113)]:_0x163d15(0x159),'context':{'tool':_0x4886e6,'arguments':_0xcaef15?JSON[_0x163d15(0x183)](_0xcaef15)[_0x163d15(0x155)](0x0,0x1f4):undefined,'mcp_server_version':'0.2.0'},'stack_trace':_0x1052f7 instanceof Error?_0x1052f7[_0x163d15(0x1d9)]:undefined,'source':_0x163d15(0x1f9)})['catch'](()=>{}),{'content':[{'type':_0x163d15(0x1c0),'text':'Error:\x20'+_0xadd928}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x52499e){const _0x4b94c6=a0_0x43b56b,_0x5c7c32=await getValidRootDirectories(_0x52499e);if(_0x5c7c32[_0x4b94c6(0x198)]>0x0)allowedDirectories=[..._0x5c7c32],logMcpStderr('Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20'+_0x5c7c32[_0x4b94c6(0x198)]+_0x4b94c6(0x161));else{logMcpStderr(_0x4b94c6(0x11b));if(ENABLE_WORKSPACE_MODE)try{const _0x4d094b=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x4d094b&&(allowedDirectories=[_0x4d094b],logMcpStderr('Fallback:\x20Using\x20workspace\x20root\x20'+_0x4d094b));}catch(_0x3eb85b){logMcpStderr(_0x4b94c6(0x18a)+_0x3eb85b);}}}server[a0_0x43b56b(0x10d)](RootsListChangedNotificationSchema,async()=>{const _0x410249=a0_0x43b56b;try{const _0x2a19ea=await server[_0x410249(0x137)]();_0x2a19ea&&'roots'in _0x2a19ea&&await updateAllowedDirectoriesFromRoots(_0x2a19ea[_0x410249(0x1b7)]);}catch(_0x12cf51){logMcpStderr('Failed\x20to\x20request\x20roots\x20from\x20client:',_0x12cf51 instanceof Error?_0x12cf51[_0x410249(0x1e2)]:String(_0x12cf51));}}),server['oninitialized']=async()=>{const _0x1973de=a0_0x43b56b,_0x528c35=server['getClientCapabilities']();if(_0x528c35?.[_0x1973de(0x1b7)])try{const _0x530451=await server[_0x1973de(0x137)]();_0x530451&&_0x1973de(0x1b7)in _0x530451?await updateAllowedDirectoriesFromRoots(_0x530451['roots']):logMcpStderr(_0x1973de(0x1e4));}catch(_0x3ec59b){logMcpStderr(_0x1973de(0x11f),_0x3ec59b instanceof Error?_0x3ec59b[_0x1973de(0x1e2)]:String(_0x3ec59b));}else{if(allowedDirectories[_0x1973de(0x198)]>0x0)logMcpStderr('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:',allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)logMcpStderr(_0x1973de(0x1b5));else throw new Error(_0x1973de(0x14c));}}};async function runServer(){const _0x5c8118=a0_0x43b56b,_0x3c244b=new StdioServerTransport();await server[_0x5c8118(0x13b)](_0x3c244b),logMcpStderr(_0x5c8118(0x21f)),allowedDirectories['length']===0x0&&logMcpStderr(_0x5c8118(0x136));}runServer()[a0_0x43b56b(0x19b)](_0xef10e9=>{const _0x139527=a0_0x43b56b;logMcpStderr(_0x139527(0x18f),_0xef10e9),process[_0x139527(0x131)](0x1);}); | ||
| const a0_0x5a9e7=a0_0x41c0;(function(_0x10bc74,_0x14ae84){const _0x4501e6=a0_0x41c0,_0x2492df=_0x10bc74();while(!![]){try{const _0x1a49bb=parseInt(_0x4501e6(0x1d1))/0x1+parseInt(_0x4501e6(0x21e))/0x2*(parseInt(_0x4501e6(0x22e))/0x3)+-parseInt(_0x4501e6(0x26d))/0x4*(parseInt(_0x4501e6(0x1da))/0x5)+parseInt(_0x4501e6(0x1d0))/0x6+-parseInt(_0x4501e6(0x292))/0x7*(-parseInt(_0x4501e6(0x201))/0x8)+-parseInt(_0x4501e6(0x20e))/0x9*(parseInt(_0x4501e6(0x234))/0xa)+-parseInt(_0x4501e6(0x1d2))/0xb;if(_0x1a49bb===_0x14ae84)break;else _0x2492df['push'](_0x2492df['shift']());}catch(_0xab7462){_0x2492df['push'](_0x2492df['shift']());}}}(a0_0x484b,0xbc1ff));import{Server}from'@modelcontextprotocol/sdk/server/index.js';function a0_0x484b(){const _0x4e8163=['No\x20valid\x20root\x20directories\x20provided\x20by\x20client','Morph\x20FastApply\x20failed\x20without\x20error\x20message','slice','listRoots','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','[github_codebase_search]\x20Failed\x20in\x20','setNotificationHandler','node_modules','\x20is\x20not\x20a\x20directory','\x27\x20in\x20`','Authentication\x20failed:\x20Your\x20Morph\x20API\x20key\x20is\x20invalid\x20or\x20has\x20been\x20revoked.\x20Please\x20visit\x20https://morphllm.com\x20to\x20get\x20a\x20valid\x20API\x20key,\x20then\x20update\x20your\x20MCP\x20configuration.','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','Warning:\x20DISABLED_TOOLS\x20contains\x20unknown\x20tool\x20\x22','optional','No\x20relevant\x20code\x20found\x20for\x20the\x20query.','tool_calls','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','name','\x20\x20morph-mcp','173288ApSNXT','Warning:\x20','Workspace\x20mode\x20enabled:\x20Using\x20','completed','error','Failed\x20to\x20request\x20roots\x20from\x20client:','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','Warning:\x20Workspace\x20fallback\x20failed:\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.','MCP','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)','\x22>\x0a','linesRemoved','\x20disabled\x20via\x20DISABLED_TOOLS','status','Relevant\x20context\x20found:','join','TimeoutError','linesModified','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','filter','warp_grep_complete','enum','composer.json','catch','success','string','sep','Repository\x20identifier','morph-v3-fast','length','split','oninitialized','Morph\x20Edit\x20','\x20-\x20','--version','5838sHyzmF','github_url','function','\x20chars)','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','exit','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','\x20error(s)','glob\x20\x27','indexOf','RipgrepNotAvailable','toISOString','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','\x0aExamples:','dryRun','<file\x20path=\x22','context','toLowerCase','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','github_codebase_search','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','dirname','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','text','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','response','Max\x20results\x20to\x20return','all','glob','search_string','https://morphllm.com/api/error-report','linesAdded','Fatal\x20error\x20running\x20server:','grep_search','false','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','BinaryFile','\x20as\x20allowed\x20directory','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','describe','Fallback:\x20Using\x20workspace\x20root\x20','SymlinkError','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','sk-','Applied','grep\x20\x27','params','stringify','has','messages','File\x20read\x20error:','read\x20','files','-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a','default','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','branch','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','pattern','Tool\x20','Specific\x20commit\x20hash\x20to\x20search','code','UnknownError','.\x20Changes:\x20','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','tool','No\x20Morph\x20API\x20key\x20configured.\x20Please\x20visit\x20https://morphllm.com\x20to\x20get\x20an\x20API\x20key,\x20then\x20set\x20MORPH_API_KEY\x20in\x20your\x20MCP\x20configuration.','message','content','Error\x20accessing\x20directory\x20','morph-warp-grep-v2.1','owner_repo','etimedout','log','safeParse','connect','unknown\x20error','command','warn','ms.\x20Success:\x20','path_validation_resolved','parse','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','.cursor','Please\x20provide\x20github\x20search\x20url\x20or\x20owner/repo\x20id','utf-8','object','now','push','setRequestHandler','warp_grep_start','getClientCapabilities','env','-\x20Glob\x20search\x20`','Invalid\x20arguments:\x20','API\x20error\x20(auth/rate-limit)','Unknown\x20tool:\x20','payload','7992096tVnkII','308517QikQnb','16523628YNSWDu','tool_call_complete','list_directory','\x22>\x0aError\x20reading\x20file:\x20','read','list_directory\x20','metadata','finish','20MIJQvv','ToolException','MORPH_API_KEY','PathError','substring','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','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','Bearer\x20','\x22\x20is\x20disabled\x20via\x20the\x20DISABLED_TOOLS\x20environment\x20variable\x20in\x20your\x20MCP\x20configuration.\x20Please\x20use\x20an\x20alternative\x20approach.','Unknown\x20error','isArray','ReadError','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','.\x20Path:\x20','terminationReason','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.\x20','\x0a...\x20(truncated,\x20total:\x20','\x0aOptions:','tool_call_error','--api-key=','post','MORPH_WARP_GREP_TIMEOUT','cwd','requiresApiKey','user','path_validation_start','ms:','ENABLE_WORKSPACE_MODE','ENOENT','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','\x20(new\x20file)','timings','api-key','stack','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','realpath','file_read_failed','morph-','instructions','13688glQFPR','For\x20deletions:\x0a','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','normalize','\x20valid\x20directories','timeout','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','resolve','WarpGrep\x20sub-tool\x20errors:\x20','searchGitHub','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.','codebase_search','source','45FtTqBK','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','file_read_complete','number','unknown',',\x20modified\x20','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','role','LocalRipgrepProvider','description','startsWith','edit_file','@morphllm/morphmcp\x20','includes','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','mcp-filesystem','14kicccm','path_validation_failed','constructor','completed_with_file_errors','completionId','path','arguments','morph-v3-large','code_edit','.git','every','SubToolError','Tool\x20\x22','readFile','floor','basename','43782jJPZrI','assistant','Rate\x20limited:\x20You\x27ve\x20exceeded\x20your\x20Morph\x20API\x20usage\x20limits.\x20Please\x20visit\x20https://morphllm.com\x20to\x20check\x20your\x20plan\x20and\x20purchase\x20additional\x20credits.','repo_path','tsconfig.json','roots','1447340CKyTxa','application/json','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','FileReadError','-\x20Listed\x20directory\x20`','map','Search\x20type\x20hint.\x20Use\x20\x27node_modules\x27\x20when\x20searching\x20inside\x20node_modules\x20or\x20other\x20dependency\x20directories\x20that\x20are\x20normally\x20excluded.','inputSchema','GitHub\x20search\x20failed:\x20','instruction','array','Error:\x20','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','some','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','0.2.0','data','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','--api-key','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','grep','debug','access','changes','\x22.\x20Known\x20tools:\x20','lines','Parent\x20directory\x20does\x20not\x20exist:\x20','\x0a</file>','terminated','../package.json','argv','tool_call_id','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','--help','errors','RipgrepError','MORPH_API_URL','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a'];a0_0x484b=function(){return _0x4e8163;};return a0_0x484b();}import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import{CallToolRequestSchema,ListToolsRequestSchema,RootsListChangedNotificationSchema}from'@modelcontextprotocol/sdk/types.js';import a0_0x179cb1 from'fs/promises';import a0_0x2b211b from'path';import a0_0x480327 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{logger}from'./logger.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{compactFileContexts}from'@morphllm/morphsdk/tools/compact';import a0_0x24fdaa from'axios';function fixPathRepetition(_0x78a992){const _0x1249fb=a0_0x41c0,_0x37c659=_0x78a992[_0x1249fb(0x28d)](a0_0x2b211b[_0x1249fb(0x289)])[_0x1249fb(0x282)](Boolean);if(_0x37c659[_0x1249fb(0x28c)]<0x2)return null;for(let _0xaaae62=Math[_0x1249fb(0x22c)](_0x37c659[_0x1249fb(0x28c)]/0x2);_0xaaae62>=0x1;_0xaaae62--){for(let _0x43807b=0x0;_0x43807b<=_0x37c659[_0x1249fb(0x28c)]-0x2*_0xaaae62;_0x43807b++){const _0x3860de=_0x37c659[_0x1249fb(0x25c)](_0x43807b,_0x43807b+_0xaaae62),_0x5ad865=_0x37c659[_0x1249fb(0x25c)](_0x43807b+_0xaaae62,_0x43807b+0x2*_0xaaae62);if(_0x3860de[_0x1249fb(0x228)]((_0x304315,_0x1fad87)=>_0x304315===_0x5ad865[_0x1fad87])){const _0x44738d=[..._0x37c659[_0x1249fb(0x25c)](0x0,_0x43807b),..._0x37c659[_0x1249fb(0x25c)](_0x43807b+_0xaaae62)];return a0_0x2b211b[_0x1249fb(0x289)]+_0x44738d[_0x1249fb(0x27e)](a0_0x2b211b[_0x1249fb(0x289)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x2fd045=a0_0x41c0;try{const _0x1f339f=require(_0x2fd045(0x251));return _0x1f339f['version']??'unknown';}catch(_0x2bb643){return logMcpStderr(_0x2fd045(0x1e6),_0x2bb643),_0x2fd045(0x212);}}function printHelp(){const _0x192096=a0_0x41c0;console[_0x192096(0x1b7)](_0x192096(0x21a)+getPackageVersion()),console[_0x192096(0x1b7)](_0x192096(0x203)),console[_0x192096(0x1b7)](_0x192096(0x1eb)),console[_0x192096(0x1b7)](_0x192096(0x278)),console[_0x192096(0x1b7)](_0x192096(0x245)),console[_0x192096(0x1b7)](_0x192096(0x1df)),console[_0x192096(0x1b7)](_0x192096(0x29f)),console[_0x192096(0x1b7)](_0x192096(0x26c)),console[_0x192096(0x1b7)]('\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo');}const cliArgs=process[a0_0x5a9e7(0x252)]['slice'](0x2),VERSION_FLAGS=new Set([a0_0x5a9e7(0x291),'-v','-V']),HELP_FLAGS=new Set([a0_0x5a9e7(0x255),'-h']);function a0_0x41c0(_0x59718b,_0x488300){_0x59718b=_0x59718b-0x1a1;const _0x484ba9=a0_0x484b();let _0x41c05b=_0x484ba9[_0x59718b];return _0x41c05b;}cliArgs['some'](_0x533e93=>VERSION_FLAGS[a0_0x5a9e7(0x2c2)](_0x533e93))&&(console[a0_0x5a9e7(0x1b7)](a0_0x5a9e7(0x21a)+getPackageVersion()),process[a0_0x5a9e7(0x297)](0x0));cliArgs[a0_0x5a9e7(0x241)](_0x5834af=>HELP_FLAGS[a0_0x5a9e7(0x2c2)](_0x5834af))&&(printHelp(),process['exit'](0x0));function getCliArg(_0x1a328e){const _0x1b1f1a=a0_0x5a9e7;for(let _0x390396=0x0;_0x390396<cliArgs[_0x1b1f1a(0x28c)];_0x390396++){const _0x1bd5ac=cliArgs[_0x390396];if(_0x1bd5ac[_0x1b1f1a(0x218)]('--'+_0x1a328e+'='))return _0x1bd5ac['slice'](('--'+_0x1a328e+'=')[_0x1b1f1a(0x28c)]);if(_0x1bd5ac==='--'+_0x1a328e&&_0x390396+0x1<cliArgs[_0x1b1f1a(0x28c)])return cliArgs[_0x390396+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs['length'];i++){const arg=cliArgs[i];if(VERSION_FLAGS['has'](arg)||HELP_FLAGS['has'](arg))continue;if(arg[a0_0x5a9e7(0x218)](a0_0x5a9e7(0x1ed)))continue;if(arg===a0_0x5a9e7(0x246)){i++;continue;}args[a0_0x5a9e7(0x1c6)](arg);}const WORKSPACE_ROOT=process[a0_0x5a9e7(0x1ca)]['WORKSPACE_ROOT']||process[a0_0x5a9e7(0x1ca)]['PWD']||process[a0_0x5a9e7(0x1f0)](),ENABLE_WORKSPACE_MODE=process[a0_0x5a9e7(0x1ca)][a0_0x5a9e7(0x1f5)]!==a0_0x5a9e7(0x2b4),MORPH_API_KEY=getCliArg(a0_0x5a9e7(0x1fa))??process['env'][a0_0x5a9e7(0x1dc)],MORPH_API_URL=process[a0_0x5a9e7(0x1ca)][a0_0x5a9e7(0x258)],MORPH_LARGE_APPLY=process[a0_0x5a9e7(0x1ca)]['MORPH_LARGE_APPLY']!==a0_0x5a9e7(0x2b4),MORPH_WARP_GREP_TIMEOUT=process[a0_0x5a9e7(0x1ca)][a0_0x5a9e7(0x1ef)]?parseInt(process[a0_0x5a9e7(0x1ca)]['MORPH_WARP_GREP_TIMEOUT'],0xa):undefined,OPERATING_SYSTEM_TYPE=getOperatingSystemType(),KNOWN_TOOL_NAMES=new Set(['edit_file',a0_0x5a9e7(0x20c),a0_0x5a9e7(0x2a5)]),DEFAULT_DISABLED_TOOLS=new Set([a0_0x5a9e7(0x219)]),DISABLED_TOOLS=process[a0_0x5a9e7(0x1ca)]['DISABLED_TOOLS']?new Set(process[a0_0x5a9e7(0x1ca)]['DISABLED_TOOLS'][a0_0x5a9e7(0x28d)](',')[a0_0x5a9e7(0x239)](_0x5606f5=>_0x5606f5['trim']())[a0_0x5a9e7(0x282)](_0x52f2de=>_0x52f2de[a0_0x5a9e7(0x28c)]>0x0)):DEFAULT_DISABLED_TOOLS;if(DISABLED_TOOLS['size']>0x0){for(const tool of DISABLED_TOOLS){!KNOWN_TOOL_NAMES[a0_0x5a9e7(0x2c2)](tool)&&console[a0_0x5a9e7(0x271)](a0_0x5a9e7(0x266)+tool+a0_0x5a9e7(0x24c)+[...KNOWN_TOOL_NAMES][a0_0x5a9e7(0x27e)](',\x20'));}console[a0_0x5a9e7(0x271)]('Disabled\x20tools:\x20'+[...DISABLED_TOOLS][a0_0x5a9e7(0x27e)](',\x20'));}MORPH_API_KEY&&!MORPH_API_KEY[a0_0x5a9e7(0x218)]('sk-')&&!MORPH_API_KEY[a0_0x5a9e7(0x218)]('morph-')&&logMcpStderr(a0_0x5a9e7(0x242));async function reportMorphError(_0x5c0cbf){const _0x42afc3=a0_0x5a9e7;try{await a0_0x24fdaa[_0x42afc3(0x1ee)](_0x42afc3(0x2b0),{..._0x5c0cbf,'timestamp':new Date()[_0x42afc3(0x29d)](),'source':_0x5c0cbf[_0x42afc3(0x20d)]||'mcp-filesystem','os_type':OPERATING_SYSTEM_TYPE,'context':{'os_type':OPERATING_SYSTEM_TYPE,..._0x5c0cbf[_0x42afc3(0x2a2)]}},{'timeout':0x1388,'headers':{'Content-Type':_0x42afc3(0x235),'Authorization':_0x42afc3(0x1e1)+MORPH_API_KEY}});}catch{}}function extractStatusCode(_0x105747,_0x1d32f5){const _0x45b272=a0_0x5a9e7;if(_0x105747&&typeof _0x105747===_0x45b272(0x1c4)&&_0x45b272(0x27c)in _0x105747)return _0x105747['status'];if(_0x105747&&typeof _0x105747===_0x45b272(0x1c4)&&_0x45b272(0x2ab)in _0x105747)return _0x105747['response']?.[_0x45b272(0x27c)];const _0xc7eb77=_0x1d32f5['match'](/\b(401|429)\b/);return _0xc7eb77?parseInt(_0xc7eb77[0x1],0xa):null;}function handleMorphAPIError(_0x5c47ab){const _0x3906fc=a0_0x5a9e7,_0x5a0f59=_0x5c47ab instanceof Error?_0x5c47ab[_0x3906fc(0x1b1)]:String(_0x5c47ab),_0x57d82b=extractStatusCode(_0x5c47ab,_0x5a0f59);switch(_0x57d82b){case 0x191:return{'content':[{'type':'text','text':_0x3906fc(0x264)}],'isError':!![]};case 0x1ad:return{'content':[{'type':'text','text':_0x3906fc(0x230)}],'isError':!![]};default:return null;}}args[a0_0x5a9e7(0x28c)]===0x0&&!ENABLE_WORKSPACE_MODE&&(logMcpStderr('Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]'),logMcpStderr('Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:'),logMcpStderr('\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)'),logMcpStderr(a0_0x5a9e7(0x29e)),logMcpStderr(a0_0x5a9e7(0x247)),logMcpStderr(a0_0x5a9e7(0x2a8)));function normalizePath(_0x24afb0){const _0x2e6d3e=a0_0x5a9e7;return a0_0x2b211b[_0x2e6d3e(0x204)](_0x24afb0);}function expandHome(_0x293d49){const _0x443688=a0_0x5a9e7;if(_0x293d49[_0x443688(0x218)]('~/')||_0x293d49==='~')return a0_0x2b211b[_0x443688(0x27e)](a0_0x480327['homedir'](),_0x293d49['slice'](0x1));return _0x293d49;}let allowedDirectories=await Promise[a0_0x5a9e7(0x2ad)](args[a0_0x5a9e7(0x239)](async _0x228ea9=>{const _0x2500db=a0_0x5a9e7,_0x5345c7=expandHome(_0x228ea9),_0x4cd231=a0_0x2b211b[_0x2500db(0x208)](_0x5345c7);try{const _0x6441cf=await a0_0x179cb1[_0x2500db(0x1fd)](_0x4cd231);return normalizePath(_0x6441cf);}catch(_0x1c998c){return normalizePath(_0x4cd231);}}));if(ENABLE_WORKSPACE_MODE&&args['length']===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x5a9e7(0x1c6)](workspaceDir),logMcpStderr(a0_0x5a9e7(0x26f)+workspaceDir+a0_0x5a9e7(0x2b7)));}catch(a0_0x336d39){logMcpStderr(a0_0x5a9e7(0x20f)+a0_0x336d39);}async function detectWorkspaceRoot(_0x4c6c1b){const _0x2fb0ef=a0_0x5a9e7;let _0x591826=a0_0x2b211b[_0x2fb0ef(0x208)](_0x4c6c1b);const _0x4c157f=[_0x2fb0ef(0x227),'.vscode','package.json','Cargo.toml','pyproject.toml','go.mod',_0x2fb0ef(0x1c1),_0x2fb0ef(0x232),_0x2fb0ef(0x285)];while(_0x591826!==a0_0x2b211b['dirname'](_0x591826)){for(const _0x4ef516 of _0x4c157f){const _0x39b9de=a0_0x2b211b[_0x2fb0ef(0x27e)](_0x591826,_0x4ef516);try{return await a0_0x179cb1[_0x2fb0ef(0x24a)](_0x39b9de),normalizePath(_0x591826);}catch{}}_0x591826=a0_0x2b211b[_0x2fb0ef(0x2a7)](_0x591826);}return normalizePath(_0x4c6c1b);}await Promise['all'](args[a0_0x5a9e7(0x239)](async _0x804c57=>{const _0x4041a3=a0_0x5a9e7;try{const _0x364a66=await a0_0x179cb1['stat'](expandHome(_0x804c57));!_0x364a66['isDirectory']()&&(logMcpStderr('Error:\x20'+_0x804c57+_0x4041a3(0x262)),process[_0x4041a3(0x297)](0x1));}catch(_0x43b5d2){logMcpStderr(_0x4041a3(0x1b3)+_0x804c57+':',_0x43b5d2),process['exit'](0x1);}}));async function validatePath(_0x588bc5){const _0x5075cf=a0_0x5a9e7,_0x493d05=expandHome(_0x588bc5),_0x38db43=a0_0x2b211b['resolve'](_0x493d05);logger[_0x5075cf(0x249)]('MCP',_0x5075cf(0x1f3),{'raw_path':_0x588bc5,'absolute':_0x38db43});try{const _0x347034=await a0_0x179cb1[_0x5075cf(0x1fd)](_0x38db43);return logger['debug'](_0x5075cf(0x276),_0x5075cf(0x1be),{'resolved':_0x347034,'symlink':_0x347034!==_0x38db43}),_0x347034;}catch(_0x20c10c){if(_0x20c10c[_0x5075cf(0x1ab)]==='ENOENT'){const _0x2879ff=a0_0x2b211b['dirname'](_0x38db43);try{const _0x4d260c=await a0_0x179cb1[_0x5075cf(0x1fd)](_0x2879ff),_0x4679e5=a0_0x2b211b[_0x5075cf(0x27e)](_0x4d260c,a0_0x2b211b[_0x5075cf(0x22d)](_0x38db43));return logger[_0x5075cf(0x249)](_0x5075cf(0x276),'path_validation_resolved',{'resolved':_0x4679e5,'new_file':!![]}),_0x4679e5;}catch{logger['error'](_0x5075cf(0x276),_0x5075cf(0x21f),{'raw_path':_0x588bc5,'error':_0x5075cf(0x24e)+_0x2879ff});throw new Error(_0x5075cf(0x24e)+_0x2879ff);}}logger[_0x5075cf(0x271)](_0x5075cf(0x276),_0x5075cf(0x21f),{'raw_path':_0x588bc5,'error':_0x20c10c['message']});throw _0x20c10c;}}const MorphEditFileArgsSchema=z[a0_0x5a9e7(0x1c4)]({'path':z[a0_0x5a9e7(0x288)](),'code_edit':z[a0_0x5a9e7(0x288)]()[a0_0x5a9e7(0x2b9)]('Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.'),'instruction':z[a0_0x5a9e7(0x288)]()[a0_0x5a9e7(0x2b9)](a0_0x5a9e7(0x2aa)),'dryRun':z['boolean']()['default'](![])[a0_0x5a9e7(0x2b9)]('Preview\x20changes\x20without\x20applying\x20them.')}),CODEBASE_SEARCH_QUERY_DESCRIPTION='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.',WarpGrepArgsSchema=z[a0_0x5a9e7(0x1c4)]({'search_string':z[a0_0x5a9e7(0x288)]()[a0_0x5a9e7(0x2b9)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repo_path':z[a0_0x5a9e7(0x288)]()[a0_0x5a9e7(0x2b9)]('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_0x5a9e7(0x284)]([a0_0x5a9e7(0x1a4),a0_0x5a9e7(0x261)])[a0_0x5a9e7(0x267)]()[a0_0x5a9e7(0x2b9)](a0_0x5a9e7(0x23a))}),WarpGrepGitHubArgsSchema=z[a0_0x5a9e7(0x1c4)]({'search_string':z[a0_0x5a9e7(0x288)]()[a0_0x5a9e7(0x2b9)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'github_url':z[a0_0x5a9e7(0x288)]()[a0_0x5a9e7(0x267)]()[a0_0x5a9e7(0x2b9)](a0_0x5a9e7(0x20b)),'owner_repo':z[a0_0x5a9e7(0x288)]()['optional']()[a0_0x5a9e7(0x2b9)]('Repository\x20owner/repo\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.'),'branch':z['string']()[a0_0x5a9e7(0x267)]()['describe']('Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)')}),CodebaseSearchArgsSchema=z['object']({'query':z[a0_0x5a9e7(0x288)]()[a0_0x5a9e7(0x2b9)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repoId':z[a0_0x5a9e7(0x288)]()[a0_0x5a9e7(0x2b9)](a0_0x5a9e7(0x28a)),'branch':z['string']()[a0_0x5a9e7(0x267)]()[a0_0x5a9e7(0x2b9)]('Branch\x20to\x20search\x20(uses\x20latest\x20commit)'),'commitHash':z['string']()[a0_0x5a9e7(0x267)]()[a0_0x5a9e7(0x2b9)](a0_0x5a9e7(0x1aa)),'targetDirectories':z[a0_0x5a9e7(0x23e)](z['string']())[a0_0x5a9e7(0x1a4)]([])[a0_0x5a9e7(0x2b9)](a0_0x5a9e7(0x1a5)),'limit':z[a0_0x5a9e7(0x211)]()[a0_0x5a9e7(0x267)]()['default'](0xa)[a0_0x5a9e7(0x2b9)](a0_0x5a9e7(0x2ac))}),server=new Server({'name':'morph-mcp','version':a0_0x5a9e7(0x243)},{'capabilities':{'tools':{}}});server[a0_0x5a9e7(0x1c7)](ListToolsRequestSchema,async()=>{const _0x2659dc=a0_0x5a9e7,_0x15d431=[{'name':_0x2659dc(0x219),'description':_0x2659dc(0x207)+_0x2659dc(0x26a)+_0x2659dc(0x240)+_0x2659dc(0x254)+'Benefits:\x0a'+'-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a'+_0x2659dc(0x265)+_0x2659dc(0x214)+'-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a'+_0x2659dc(0x1a7)+_0x2659dc(0x2b8)+_0x2659dc(0x2b5)+_0x2659dc(0x202)+_0x2659dc(0x21c)+_0x2659dc(0x1a3)+'Rules:\x0a'+'-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a'+_0x2659dc(0x25e)+'-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a'+_0x2659dc(0x2a4)+_0x2659dc(0x259)+'-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a'+_0x2659dc(0x281),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':_0x2659dc(0x20c),'description':_0x2659dc(0x1e0)+CODEBASE_SEARCH_QUERY_DESCRIPTION+'\x20'+'Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20toolin\x20its\x20search.\x20'+_0x2659dc(0x1e9)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':GITHUB_SEARCH_TOOL_NAME,'description':GITHUB_SEARCH_DESCRIPTION,'inputSchema':zodToJsonSchema(WarpGrepGitHubArgsSchema),'requiresApiKey':!![]}],_0x1497ef=_0x15d431[_0x2659dc(0x282)](_0x16c8e9=>{const _0x4f3c3f=_0x2659dc;if(DISABLED_TOOLS['has'](_0x16c8e9[_0x4f3c3f(0x26b)]))return console[_0x4f3c3f(0x271)](_0x4f3c3f(0x1a9)+_0x16c8e9[_0x4f3c3f(0x26b)]+_0x4f3c3f(0x27b)),![];if(_0x4f3c3f(0x1f1)in _0x16c8e9&&_0x16c8e9['requiresApiKey']&&!MORPH_API_KEY)return logMcpStderr(_0x4f3c3f(0x26e)+_0x16c8e9['name']+_0x4f3c3f(0x1ae)),![];return!![];});return{'tools':_0x1497ef[_0x2659dc(0x239)](_0x548f2f=>({'name':_0x548f2f[_0x2659dc(0x26b)],'description':_0x548f2f[_0x2659dc(0x217)],'inputSchema':_0x548f2f[_0x2659dc(0x23b)]}))};}),server[a0_0x5a9e7(0x1c7)](CallToolRequestSchema,async _0x3a84ef=>{const _0x3d061a=a0_0x5a9e7,{name:_0x4e4578,arguments:_0x3b30af}=_0x3a84ef[_0x3d061a(0x2c0)],_0x36d916=Date[_0x3d061a(0x1c5)]();logger[_0x3d061a(0x249)]('MCP','tool_call_received',{'tool':_0x4e4578,'args':_0x4e4578===_0x3d061a(0x219)?{'path':_0x3b30af?.[_0x3d061a(0x223)],'instruction':_0x3b30af?.[_0x3d061a(0x23d)]||_0x3b30af?.[_0x3d061a(0x200)],'dryRun':_0x3b30af?.[_0x3d061a(0x2a0)]}:_0x3b30af});try{if(!MORPH_API_KEY)return{'content':[{'type':'text','text':_0x3d061a(0x1b0)}],'isError':!![]};if(!MORPH_API_KEY[_0x3d061a(0x218)](_0x3d061a(0x2bd))&&!MORPH_API_KEY[_0x3d061a(0x218)](_0x3d061a(0x1ff)))return{'content':[{'type':_0x3d061a(0x2a9),'text':'Invalid\x20Morph\x20API\x20key\x20format.\x20API\x20keys\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27.\x20Please\x20visit\x20https://morphllm.com\x20to\x20get\x20a\x20valid\x20API\x20key.'}],'isError':!![]};if(DISABLED_TOOLS[_0x3d061a(0x2c2)](_0x4e4578))return{'content':[{'type':'text','text':_0x3d061a(0x22a)+_0x4e4578+_0x3d061a(0x1e2)}],'isError':![]};switch(_0x4e4578){case'edit_file':{const _0x534175=_0x3b30af&&typeof _0x3b30af==='object'&&_0x3d061a(0x200)in _0x3b30af&&!('instruction'in _0x3b30af)?{..._0x3b30af,'instruction':_0x3b30af[_0x3d061a(0x200)],'instructions':undefined}:_0x3b30af,_0x5cc39a=MorphEditFileArgsSchema['safeParse'](_0x534175);if(!_0x5cc39a[_0x3d061a(0x287)])throw new Error(_0x3d061a(0x273)+_0x5cc39a['error']);const _0x1beafa=await validatePath(_0x5cc39a['data'][_0x3d061a(0x223)]);let _0x13cf29=null,_0x4f2fc4=!![],_0x1da537=null;try{_0x13cf29=await a0_0x179cb1[_0x3d061a(0x22b)](_0x1beafa,_0x3d061a(0x1c3)),logger[_0x3d061a(0x249)](_0x3d061a(0x276),_0x3d061a(0x210),{'path':_0x1beafa,'size_bytes':_0x13cf29[_0x3d061a(0x28c)]});}catch(_0x49df03){const _0x2f99f3=_0x49df03[_0x3d061a(0x1ab)];_0x2f99f3===_0x3d061a(0x1f6)?(_0x4f2fc4=![],_0x13cf29='',logger[_0x3d061a(0x249)]('MCP',_0x3d061a(0x210),{'path':_0x1beafa,'exists':![]})):(_0x1da537='Failed\x20to\x20read\x20file:\x20'+(_0x2f99f3||_0x3d061a(0x212))+_0x3d061a(0x290)+(_0x49df03 instanceof Error?_0x49df03[_0x3d061a(0x1b1)]:String(_0x49df03)),logger['error']('MCP',_0x3d061a(0x1fe),{'path':_0x1beafa,'error':_0x1da537}),logMcpStderr(_0x3d061a(0x26e)+_0x1da537));}let _0x32b7c8;try{const _0x230d5a=MORPH_API_KEY;if(!_0x230d5a)throw new Error(_0x3d061a(0x2bc));const _0x46e301=a0_0x2b211b['dirname'](_0x1beafa),_0x84cca2=a0_0x2b211b[_0x3d061a(0x22d)](_0x1beafa);logger[_0x3d061a(0x249)]('MCP','api_request_start',{'model':_0x3d061a(0x28b),'path':_0x5cc39a['data']['path'],'instruction_len':_0x5cc39a[_0x3d061a(0x244)][_0x3d061a(0x23d)][_0x3d061a(0x28c)],'code_edit_len':_0x5cc39a[_0x3d061a(0x244)][_0x3d061a(0x226)]['length'],'original_code_len':_0x13cf29?.[_0x3d061a(0x28c)]??0x0,'dry_run':_0x5cc39a['data'][_0x3d061a(0x2a0)]});const _0x286b80=Date[_0x3d061a(0x1c5)](),_0xb6be7=await executeEditFile({'target_filepath':_0x84cca2,'code_edit':_0x5cc39a[_0x3d061a(0x244)]['code_edit'],'instruction':_0x5cc39a[_0x3d061a(0x244)][_0x3d061a(0x23d)]},{'morphApiKey':_0x230d5a,'morphApiUrl':MORPH_API_URL,'large':MORPH_LARGE_APPLY,'baseDir':_0x46e301,'autoWrite':!_0x5cc39a[_0x3d061a(0x244)][_0x3d061a(0x2a0)],'generateUdiff':![],'debug':![]}),_0x2499e9=Date[_0x3d061a(0x1c5)]()-_0x286b80;_0x32b7c8=_0xb6be7[_0x3d061a(0x222)];if(!_0xb6be7[_0x3d061a(0x287)])throw new Error(_0xb6be7[_0x3d061a(0x271)]||_0x3d061a(0x25b));const _0x1edc30=_0xb6be7[_0x3d061a(0x24b)],_0xcf306c='added\x20'+_0x1edc30[_0x3d061a(0x2b1)]+',\x20removed\x20'+_0x1edc30['linesRemoved']+_0x3d061a(0x213)+_0x1edc30[_0x3d061a(0x280)];logger[_0x3d061a(0x249)]('MCP',_0x3d061a(0x1d3),{'tool':_0x3d061a(0x219),'success':!![],'latency_ms':Date[_0x3d061a(0x1c5)]()-_0x36d916,'edit_latency_ms':_0x2499e9,'changes':{'added':_0x1edc30[_0x3d061a(0x2b1)],'removed':_0x1edc30[_0x3d061a(0x27a)],'modified':_0x1edc30[_0x3d061a(0x280)]},'completion_id':_0x32b7c8});if(_0x5cc39a[_0x3d061a(0x244)][_0x3d061a(0x2a0)])return{'content':[{'type':_0x3d061a(0x2a9),'text':'Morph\x20Edit\x20Preview'+(_0x4f2fc4?'':_0x3d061a(0x1f8))+':\x20'+_0x5cc39a['data'][_0x3d061a(0x23d)]+_0x3d061a(0x1ad)+_0xcf306c+_0x3d061a(0x1e7)+_0x5cc39a[_0x3d061a(0x244)][_0x3d061a(0x223)]+'.'}]};return{'content':[{'type':_0x3d061a(0x2a9),'text':_0x3d061a(0x28f)+(_0x4f2fc4?_0x3d061a(0x2be):'Created\x20File')+':\x20'+_0x5cc39a[_0x3d061a(0x244)][_0x3d061a(0x23d)]+'.\x20Changes:\x20'+_0xcf306c+_0x3d061a(0x1e7)+_0x5cc39a[_0x3d061a(0x244)][_0x3d061a(0x223)]+'.'}]};}catch(_0x145687){const _0x18a3fc=handleMorphAPIError(_0x145687);if(_0x18a3fc)return logger['error'](_0x3d061a(0x276),_0x3d061a(0x1ec),{'tool':_0x3d061a(0x219),'error':_0x3d061a(0x1cd),'latency_ms':Date[_0x3d061a(0x1c5)]()-_0x36d916}),_0x18a3fc;const _0x57db0a=_0x145687 instanceof Error?_0x145687['message']:String(_0x145687);return logger['error'](_0x3d061a(0x276),'tool_call_error',{'tool':'edit_file','error':_0x57db0a,'path':_0x5cc39a['data'][_0x3d061a(0x223)],'validated_path':_0x1beafa,'latency_ms':Date[_0x3d061a(0x1c5)]()-_0x36d916,'stack':_0x145687 instanceof Error?_0x145687['stack']:undefined}),reportMorphError({'error_message':_0x57db0a,'error_type':_0x145687 instanceof Error?_0x145687[_0x3d061a(0x220)][_0x3d061a(0x26b)]:_0x3d061a(0x1ac),'context':{'tool':_0x3d061a(0x219),'completion_id':_0x32b7c8,'file_path':_0x5cc39a[_0x3d061a(0x244)][_0x3d061a(0x223)],'validated_path':_0x1beafa,'instruction':_0x5cc39a['data']['instruction'],'model':MORPH_LARGE_APPLY?_0x3d061a(0x225):_0x3d061a(0x28b),'dry_run':_0x5cc39a[_0x3d061a(0x244)][_0x3d061a(0x2a0)],'file_exists':_0x4f2fc4,'file_read_error':_0x1da537,'file_readable':_0x13cf29!==null,'request_content':{'path':_0x5cc39a[_0x3d061a(0x244)][_0x3d061a(0x223)],'code_edit':_0x5cc39a[_0x3d061a(0x244)]['code_edit'],'instruction':_0x5cc39a[_0x3d061a(0x244)][_0x3d061a(0x23d)],'original_code':_0x13cf29!==null?_0x13cf29[_0x3d061a(0x28c)]>0xc350?_0x13cf29[_0x3d061a(0x1de)](0x0,0xc350)+_0x3d061a(0x1ea)+_0x13cf29[_0x3d061a(0x28c)]+_0x3d061a(0x295):_0x13cf29:'[could\x20not\x20read\x20file:\x20'+(_0x1da537||_0x3d061a(0x1ba))+']','original_code_length':_0x13cf29?.[_0x3d061a(0x28c)]??0x0,'model':MORPH_LARGE_APPLY?'morph-v3-large':_0x3d061a(0x28b),'dry_run':_0x5cc39a[_0x3d061a(0x244)][_0x3d061a(0x2a0)]}},'stack_trace':_0x145687 instanceof Error?_0x145687['stack']:undefined,'source':_0x3d061a(0x21d)})[_0x3d061a(0x286)](()=>{}),{'content':[{'type':_0x3d061a(0x2a9),'text':'❌\x20Morph\x20Edit\x20Failed:\x20'+_0x57db0a}],'isError':!![]};}}case _0x3d061a(0x20c):{const _0x36caff=WarpGrepArgsSchema[_0x3d061a(0x1b8)](_0x3b30af);if(!_0x36caff[_0x3d061a(0x287)])return{'content':[{'type':_0x3d061a(0x2a9),'text':'Invalid\x20arguments:\x20'+_0x36caff[_0x3d061a(0x271)]}],'isError':!![]};const _0x331a66=_0x1447ed=>{const _0xca6d47=_0x3d061a,_0x379146=[];for(const _0x1db667 of _0x1447ed||[]){if(_0x1db667[_0xca6d47(0x215)]===_0xca6d47(0x22f)&&Array[_0xca6d47(0x1e4)](_0x1db667[_0xca6d47(0x269)]))for(const _0x599387 of _0x1db667[_0xca6d47(0x269)]){try{const _0x1167be=_0x599387[_0xca6d47(0x294)]?.[_0xca6d47(0x26b)],_0x21aa1c=JSON[_0xca6d47(0x1bf)](_0x599387[_0xca6d47(0x294)]?.[_0xca6d47(0x224)]||'{}');if(_0x1167be==='grep_search')_0x379146[_0xca6d47(0x1c6)](_0xca6d47(0x2bf)+_0x21aa1c[_0xca6d47(0x1a8)]+'\x27\x20'+(_0x21aa1c[_0xca6d47(0x223)]||'.'));else{if(_0x1167be===_0xca6d47(0x1d6))_0x379146[_0xca6d47(0x1c6)](_0xca6d47(0x1a1)+_0x21aa1c[_0xca6d47(0x223)]);else{if(_0x1167be===_0xca6d47(0x1d4))_0x379146[_0xca6d47(0x1c6)](_0xca6d47(0x1d7)+(_0x21aa1c[_0xca6d47(0x1bb)]||'.'));else{if(_0x1167be===_0xca6d47(0x2ae))_0x379146[_0xca6d47(0x1c6)](_0xca6d47(0x29a)+_0x21aa1c['pattern']+'\x27\x20'+(_0x21aa1c['path']||'.'));else _0x1167be===_0xca6d47(0x1d9)&&_0x379146['push']('finish');}}}}catch{}}}return _0x379146;},_0xe22731=_0x3d0a94=>{const _0x50feba=_0x3d061a,_0x479154=[];if(!_0x3d0a94||!Array[_0x50feba(0x1e4)](_0x3d0a94))return _0x479154;const _0x3034d1=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':'FileNotFound','tool':'read'},{'pattern':/\[PATH ERROR\]/,'error_type':_0x50feba(0x1dd),'tool':_0x50feba(0x1d6)},{'pattern':/\[READ ERROR\]/,'error_type':_0x50feba(0x1e5),'tool':_0x50feba(0x1d6)},{'pattern':/\[UNREADABLE FILE\]/,'error_type':'BinaryFile','tool':_0x50feba(0x1d6)},{'pattern':/\[RIPGREP ERROR\]/,'error_type':_0x50feba(0x257),'tool':_0x50feba(0x248)},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x50feba(0x29c),'tool':'grep'},{'pattern':/\[BINARY FILE\]/,'error_type':_0x50feba(0x2b6),'tool':'read'},{'pattern':/\[SYMLINK\]/,'error_type':_0x50feba(0x2bb),'tool':_0x50feba(0x1d6)},{'pattern':/not a text file/,'error_type':_0x50feba(0x2b6),'tool':_0x50feba(0x1d6)},{'pattern':/symbolic link/,'error_type':_0x50feba(0x2bb),'tool':'read'},{'pattern':/Error reading file:/,'error_type':'ReadError','tool':_0x50feba(0x1d6)},{'pattern':/status="error"/,'error_type':_0x50feba(0x1db),'tool':'unknown'}];let _0x4797a6=0x0;for(const _0x4ea829 of _0x3d0a94){_0x4ea829[_0x50feba(0x215)]===_0x50feba(0x22f)&&Array[_0x50feba(0x1e4)](_0x4ea829[_0x50feba(0x269)])&&_0x4797a6++;const _0x43d073=_0x4ea829['content'];if((_0x4ea829['role']===_0x50feba(0x1af)||_0x4ea829[_0x50feba(0x215)]===_0x50feba(0x1f2))&&_0x43d073&&typeof _0x43d073===_0x50feba(0x288))for(const {pattern:_0x3acfc3,error_type:_0x21bd00,tool:_0x5f09e4}of _0x3034d1){const _0x161cc4=_0x43d073['match'](new RegExp(_0x3acfc3[_0x50feba(0x20d)],'g'));if(_0x161cc4)for(const _0x187f15 of _0x161cc4){const _0x381704=_0x43d073[_0x50feba(0x29b)](_0x187f15),_0x12b53d=_0x43d073[_0x50feba(0x1de)](_0x381704,Math['min'](_0x381704+0xc8,_0x43d073[_0x50feba(0x28c)]));_0x479154['push']({'tool':_0x5f09e4,'error_type':_0x21bd00,'error_message':_0x12b53d[_0x50feba(0x28d)]('\x0a')[0x0],'turn':_0x4797a6});}}}return _0x479154;};try{const _0x41e478=a0_0x2b211b[_0x3d061a(0x208)](_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x231)]),_0x328a9c=_0x36caff[_0x3d061a(0x244)]['search_type'],_0x2f5aef=_0x328a9c===_0x3d061a(0x261)?{'allowNames':[_0x3d061a(0x261)]}:undefined,_0x38c3e2=new LocalRipgrepProvider(_0x41e478,undefined,_0x2f5aef);logger[_0x3d061a(0x249)](_0x3d061a(0x276),'provider_created',{'type':_0x3d061a(0x216),'repo_root':_0x41e478,'search_type':_0x328a9c||_0x3d061a(0x1a4)}),logger[_0x3d061a(0x249)]('MCP',_0x3d061a(0x1c8),{'query':_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x2af)],'repo_root':_0x41e478,'timeout_ms':MORPH_WARP_GREP_TIMEOUT});const _0x396062=Date['now'](),_0x373ef7=await runWarpGrep({'searchTerm':_0x36caff[_0x3d061a(0x244)]['search_string'],'repoRoot':_0x41e478,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x38c3e2,'search_type':_0x328a9c}),_0x23ae6e=Date[_0x3d061a(0x1c5)]()-_0x396062,_0x3b8823=_0x373ef7[_0x3d061a(0x1d9)]?.[_0x3d061a(0x1d8)]?.[_0x3d061a(0x1a2)]?.['length']??0x0;logger[_0x3d061a(0x249)](_0x3d061a(0x276),_0x3d061a(0x283),{'termination':_0x373ef7[_0x3d061a(0x1e8)],'turns':_0x373ef7[_0x3d061a(0x1f9)]?.['turns']??0x0,'files_found':_0x3b8823,'latency_ms':_0x23ae6e});const _0x3184d1=_0xe22731(_0x373ef7[_0x3d061a(0x2c3)]);_0x3184d1['length']>0x0&&reportMorphError({'error_message':_0x3d061a(0x209)+_0x3184d1['length']+_0x3d061a(0x299),'error_type':_0x3d061a(0x229),'level':_0x3d061a(0x1bc),'tool':'codebase_search','context':{'repo_path':_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x231)],'query':_0x36caff['data'][_0x3d061a(0x2af)],'model':_0x3d061a(0x1b4),'termination_reason':_0x373ef7[_0x3d061a(0x1e8)],'sub_tool_errors':_0x3184d1,'timings':_0x373ef7[_0x3d061a(0x1f9)],'tool_calls':_0x331a66(_0x373ef7[_0x3d061a(0x2c3)]),'messages':_0x373ef7[_0x3d061a(0x2c3)]?.[_0x3d061a(0x239)](_0x390169=>({'role':_0x390169[_0x3d061a(0x215)],'content':_0x390169[_0x3d061a(0x1b2)],..._0x390169[_0x3d061a(0x269)]?{'tool_calls':_0x390169['tool_calls'][_0x3d061a(0x28c)]}:{},..._0x390169['tool_call_id']?{'tool_call_id':_0x390169['tool_call_id']}:{}}))},'source':_0x3d061a(0x21d)})[_0x3d061a(0x286)](()=>{});let _0x5f51f9='';if(_0x373ef7['terminationReason']===_0x3d061a(0x270)&&_0x373ef7['finish']?.[_0x3d061a(0x1d8)]?.[_0x3d061a(0x1a2)]){const _0x1b72b6=_0x373ef7[_0x3d061a(0x1d9)][_0x3d061a(0x1d8)]['files'];if(_0x1b72b6['length']===0x0)return _0x5f51f9=_0x373ef7[_0x3d061a(0x1d9)][_0x3d061a(0x1cf)]||_0x3d061a(0x268),{'content':[{'type':_0x3d061a(0x2a9),'text':_0x5f51f9}]};const _0x36d343=[],_0x4a5dbc=[_0x3d061a(0x1f7)];for(const _0x360300 of _0x373ef7[_0x3d061a(0x2c3)]){if(_0x360300[_0x3d061a(0x215)]===_0x3d061a(0x22f)&&Array[_0x3d061a(0x1e4)](_0x360300[_0x3d061a(0x269)]))for(const _0x1b87f4 of _0x360300[_0x3d061a(0x269)]){try{const _0x5c26c6=_0x1b87f4[_0x3d061a(0x294)]?.[_0x3d061a(0x26b)],_0xa67e95=JSON['parse'](_0x1b87f4[_0x3d061a(0x294)]?.[_0x3d061a(0x224)]||'{}');if(_0x5c26c6===_0x3d061a(0x2b3))_0x4a5dbc[_0x3d061a(0x1c6)]('-\x20Grepped\x20\x27'+_0xa67e95['pattern']+_0x3d061a(0x263)+(_0xa67e95[_0x3d061a(0x223)]||'.')+'`');else{if(_0x5c26c6===_0x3d061a(0x1d6))_0x4a5dbc[_0x3d061a(0x1c6)]('-\x20Read\x20file\x20`'+_0xa67e95['path']+'`');else{if(_0x5c26c6===_0x3d061a(0x1d4))_0x4a5dbc[_0x3d061a(0x1c6)](_0x3d061a(0x238)+(_0xa67e95[_0x3d061a(0x1bb)]||'.')+'`');else _0x5c26c6===_0x3d061a(0x2ae)&&_0x4a5dbc[_0x3d061a(0x1c6)](_0x3d061a(0x1cb)+_0xa67e95[_0x3d061a(0x1a8)]+'`\x20in\x20`'+(_0xa67e95[_0x3d061a(0x223)]||'.')+'`');}}}catch{}}}_0x36d343[_0x3d061a(0x1c6)](_0x4a5dbc[_0x3d061a(0x27e)]('\x0a'));const _0x589665=['',_0x3d061a(0x27d)];for(const _0x13d5a0 of _0x1b72b6){if(_0x13d5a0['lines']==='*')_0x589665['push']('-\x20'+_0x13d5a0[_0x3d061a(0x223)]+':*');else{if(Array[_0x3d061a(0x1e4)](_0x13d5a0[_0x3d061a(0x24d)])){const _0x382780=_0x13d5a0[_0x3d061a(0x24d)][_0x3d061a(0x239)](([_0x246f2a,_0x116cbc])=>{if(_0x246f2a===_0x116cbc)return''+_0x246f2a;return _0x246f2a+'-'+_0x116cbc;});_0x589665[_0x3d061a(0x1c6)]('-\x20'+_0x13d5a0[_0x3d061a(0x223)]+':'+_0x382780[_0x3d061a(0x27e)](','));}else _0x589665['push']('-\x20'+_0x13d5a0['path']+':*');}}_0x589665[_0x3d061a(0x1c6)](''),_0x36d343[_0x3d061a(0x1c6)](_0x589665[_0x3d061a(0x27e)]('\x0a')),_0x36d343['push']('Here\x20is\x20the\x20content\x20of\x20files:\x0a');const _0x29d2f9=[],_0x3c312f=[];for(const _0x44c855 of _0x1b72b6){let _0x4d2da3=a0_0x2b211b[_0x3d061a(0x208)](_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x231)],_0x44c855[_0x3d061a(0x223)]),_0xee6b0a=null,_0x2861a8=null;try{_0xee6b0a=await a0_0x179cb1[_0x3d061a(0x22b)](_0x4d2da3,{'encoding':_0x3d061a(0x1c3)});}catch(_0x107771){const _0x4584e3=fixPathRepetition(_0x4d2da3);if(_0x4584e3)try{_0xee6b0a=await a0_0x179cb1['readFile'](_0x4584e3,{'encoding':_0x3d061a(0x1c3)}),_0x4d2da3=_0x4584e3;}catch{_0x2861a8=_0x107771 instanceof Error?_0x107771:new Error(String(_0x107771));}else _0x2861a8=_0x107771 instanceof Error?_0x107771:new Error(String(_0x107771));}if(_0xee6b0a!==null){const _0x163be4=_0xee6b0a[_0x3d061a(0x28d)](/\r?\n/),_0x2676e7=[];if(_0x44c855[_0x3d061a(0x24d)]==='*'||!Array[_0x3d061a(0x1e4)](_0x44c855[_0x3d061a(0x24d)]))for(let _0x312021=0x1;_0x312021<=_0x163be4[_0x3d061a(0x28c)];_0x312021++){const _0x41f446=_0x163be4[_0x312021-0x1];_0x2676e7[_0x3d061a(0x1c6)](_0x312021+'|\x20'+_0x41f446);}else for(const [_0x52b6c0,_0x42ce17]of _0x44c855[_0x3d061a(0x24d)]){_0x2676e7[_0x3d061a(0x28c)]>0x0&&_0x2676e7[_0x3d061a(0x1c6)]('');for(let _0x5c7ab2=_0x52b6c0;_0x5c7ab2<=_0x42ce17&&_0x5c7ab2<=_0x163be4[_0x3d061a(0x28c)];_0x5c7ab2++){const _0x5aa357=_0x163be4[_0x5c7ab2-0x1];_0x2676e7[_0x3d061a(0x1c6)](_0x5c7ab2+'|\x20'+_0x5aa357);}}_0x3c312f[_0x3d061a(0x1c6)]({'path':_0x44c855[_0x3d061a(0x223)],'content':_0x2676e7[_0x3d061a(0x27e)]('\x0a')});}else _0x29d2f9[_0x3d061a(0x1c6)](_0x3d061a(0x2a1)+_0x44c855[_0x3d061a(0x223)]+_0x3d061a(0x1d5)+(_0x2861a8?.[_0x3d061a(0x1b1)]||_0x3d061a(0x1e3))+_0x3d061a(0x24f));}try{const _0x5d9da3=await compactFileContexts(_0x3c312f,_0x36caff['data'][_0x3d061a(0x2af)],MORPH_API_KEY,MORPH_API_URL);for(const _0x1ebb1e of _0x5d9da3){_0x29d2f9[_0x3d061a(0x1c6)]('<file\x20path=\x22'+_0x1ebb1e['path']+_0x3d061a(0x279)+_0x1ebb1e[_0x3d061a(0x1b2)]+'\x0a</file>');}}catch(_0x439f41){logger[_0x3d061a(0x1bc)](_0x3d061a(0x276),'compaction_failed',{'error':_0x439f41 instanceof Error?_0x439f41[_0x3d061a(0x1b1)]:String(_0x439f41),'files_count':_0x3c312f[_0x3d061a(0x28c)]});for(const _0x1cdbfb of _0x3c312f){_0x29d2f9['push']('<file\x20path=\x22'+_0x1cdbfb['path']+_0x3d061a(0x279)+_0x1cdbfb[_0x3d061a(0x1b2)]+_0x3d061a(0x24f));}}_0x36d343[_0x3d061a(0x1c6)](_0x29d2f9['join']('\x0a\x0a')),_0x5f51f9=_0x36d343[_0x3d061a(0x27e)]('\x0a');const _0xc8e0ba=_0x373ef7[_0x3d061a(0x256)]?.['filter'](_0x24fd35=>_0x24fd35[_0x3d061a(0x1b1)]?.[_0x3d061a(0x218)](_0x3d061a(0x2c4)))||[];if(_0xc8e0ba[_0x3d061a(0x28c)]>0x0){const _0x1bab4b=_0xc8e0ba['map'](_0x13caad=>_0x13caad[_0x3d061a(0x1b1)])[_0x3d061a(0x27e)](';\x20');reportMorphError({'error_message':_0x1bab4b,'error_type':_0x3d061a(0x237),'context':{'tool':_0x3d061a(0x20c),'repo_path':_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x231)],'query':_0x36caff[_0x3d061a(0x244)]['search_string'],'model':_0x3d061a(0x1b4),'termination_reason':_0x3d061a(0x221),'error_count':_0xc8e0ba['length'],'is_timeout':![],'timings':_0x373ef7[_0x3d061a(0x1f9)],'files_attempted':_0x1b72b6[_0x3d061a(0x239)](_0x5b78ac=>({'path':_0x5b78ac[_0x3d061a(0x223)],'lines':_0x5b78ac[_0x3d061a(0x24d)]})),'tool_calls':_0x331a66(_0x373ef7[_0x3d061a(0x2c3)]),'messages':_0x373ef7['messages']?.['map'](_0x113b63=>({'role':_0x113b63[_0x3d061a(0x215)],'content':_0x113b63[_0x3d061a(0x1b2)],..._0x113b63[_0x3d061a(0x269)]?{'tool_calls':_0x113b63['tool_calls'][_0x3d061a(0x28c)]}:{},..._0x113b63['tool_call_id']?{'tool_call_id':_0x113b63['tool_call_id']}:{}})),'request_content':{'query':_0x36caff['data'][_0x3d061a(0x2af)],'repo_path':_0x36caff['data']['repo_path'],'repoRoot':a0_0x2b211b[_0x3d061a(0x208)](_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x231)]),'model':_0x3d061a(0x1b4)}},'source':_0x3d061a(0x21d)})[_0x3d061a(0x286)](()=>{});}}else{if(_0x373ef7[_0x3d061a(0x1e8)]===_0x3d061a(0x250)&&_0x373ef7[_0x3d061a(0x256)][_0x3d061a(0x28c)]>0x0){const _0xc15af1=_0x373ef7['errors'][_0x3d061a(0x239)](_0x5abf4f=>_0x5abf4f[_0x3d061a(0x1b1)])[_0x3d061a(0x27e)](';\x20');_0x5f51f9=_0x3d061a(0x23f)+_0xc15af1;const _0x158673=_0xc15af1['toLowerCase']()['includes'](_0x3d061a(0x206))||_0xc15af1[_0x3d061a(0x2a3)]()[_0x3d061a(0x21b)]('timed\x20out')||_0xc15af1['toLowerCase']()[_0x3d061a(0x21b)]('etimedout'),_0x367120=_0x373ef7[_0x3d061a(0x1d9)]?.[_0x3d061a(0x1d8)]?.[_0x3d061a(0x1a2)],_0x1f5bb6=_0x373ef7[_0x3d061a(0x256)][0x0];reportMorphError({'error_message':_0xc15af1,'error_type':_0x158673?_0x3d061a(0x27f):_0x1f5bb6?.[_0x3d061a(0x220)]?.[_0x3d061a(0x26b)]||'WarpGrepError','context':{'tool':_0x3d061a(0x20c),'repo_path':_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x231)],'query':_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x2af)],'model':_0x3d061a(0x1b4),'termination_reason':_0x373ef7[_0x3d061a(0x1e8)],'error_count':_0x373ef7[_0x3d061a(0x256)][_0x3d061a(0x28c)],'is_timeout':_0x158673,'timings':_0x373ef7['timings'],'files_attempted':_0x367120?.[_0x3d061a(0x239)](_0x541d5c=>({'path':_0x541d5c[_0x3d061a(0x223)],'lines':_0x541d5c[_0x3d061a(0x24d)]})),'tool_calls':_0x331a66(_0x373ef7['messages']),'messages':_0x373ef7[_0x3d061a(0x2c3)]?.[_0x3d061a(0x239)](_0x205290=>({'role':_0x205290[_0x3d061a(0x215)],'content':_0x205290[_0x3d061a(0x1b2)],..._0x205290[_0x3d061a(0x269)]?{'tool_calls':_0x205290[_0x3d061a(0x269)][_0x3d061a(0x28c)]}:{},..._0x205290[_0x3d061a(0x253)]?{'tool_call_id':_0x205290[_0x3d061a(0x253)]}:{}})),'request_content':{'query':_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x2af)],'repo_path':_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x231)],'repoRoot':a0_0x2b211b[_0x3d061a(0x208)](_0x36caff['data']['repo_path']),'model':'morph-warp-grep-v2.1'}},'stack_trace':_0x1f5bb6?.[_0x3d061a(0x1fb)]||undefined,'source':_0x3d061a(0x21d)})[_0x3d061a(0x286)](()=>{});}else _0x5f51f9=_0x3d061a(0x277);}return{'content':[{'type':_0x3d061a(0x2a9),'text':_0x5f51f9}]};}catch(_0x146565){const _0x3b576f=handleMorphAPIError(_0x146565);if(_0x3b576f)return logger[_0x3d061a(0x271)]('MCP',_0x3d061a(0x1ec),{'tool':_0x3d061a(0x20c),'error':_0x3d061a(0x1cd),'latency_ms':Date[_0x3d061a(0x1c5)]()-_0x36d916}),_0x3b576f;const _0x5cc724=_0x146565 instanceof Error?_0x146565[_0x3d061a(0x1b1)]:String(_0x146565);logger[_0x3d061a(0x271)](_0x3d061a(0x276),_0x3d061a(0x1ec),{'tool':_0x3d061a(0x20c),'error':_0x5cc724,'repo_path':_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x231)],'query':_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x2af)],'latency_ms':Date[_0x3d061a(0x1c5)]()-_0x36d916});const _0xc0337=_0x5cc724['toLowerCase']()[_0x3d061a(0x21b)]('timeout')||_0x5cc724[_0x3d061a(0x2a3)]()['includes']('timed\x20out')||_0x5cc724[_0x3d061a(0x2a3)]()[_0x3d061a(0x21b)](_0x3d061a(0x1b6))||_0x146565 instanceof Error&&_0x146565[_0x3d061a(0x26b)]===_0x3d061a(0x27f);return reportMorphError({'error_message':_0x5cc724,'error_type':_0xc0337?_0x3d061a(0x27f):_0x146565 instanceof Error?_0x146565[_0x3d061a(0x220)][_0x3d061a(0x26b)]:_0x3d061a(0x1ac),'context':{'tool':_0x3d061a(0x20c),'repo_path':_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x231)],'query':_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x2af)],'model':_0x3d061a(0x1b4),'is_timeout':_0xc0337,'exception_phase':'runWarpGrep_call','request_content':{'query':_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x2af)],'repo_path':_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x231)],'repoRoot':a0_0x2b211b[_0x3d061a(0x208)](_0x36caff[_0x3d061a(0x244)][_0x3d061a(0x231)]),'model':_0x3d061a(0x1b4)}},'stack_trace':_0x146565 instanceof Error?_0x146565[_0x3d061a(0x1fb)]:undefined,'source':_0x3d061a(0x21d)})['catch'](()=>{}),{'content':[{'type':_0x3d061a(0x2a9),'text':'Error\x20running\x20fast\x20context\x20search:\x20'+_0x5cc724}],'isError':![]};}}case _0x3d061a(0x2a5):{const _0x2986e1=WarpGrepGitHubArgsSchema[_0x3d061a(0x1b8)](_0x3b30af);if(!_0x2986e1['success'])return{'content':[{'type':_0x3d061a(0x2a9),'text':_0x3d061a(0x1cc)+_0x2986e1['error']}],'isError':!![]};const _0x460ee8=_0x2986e1['data'][_0x3d061a(0x293)]||_0x2986e1[_0x3d061a(0x244)][_0x3d061a(0x1b5)];if(!_0x460ee8)return{'content':[{'type':_0x3d061a(0x2a9),'text':_0x3d061a(0x1c2)}],'isError':!![]};const _0x50e3a9=MORPH_API_KEY;if(!_0x50e3a9)throw new Error(_0x3d061a(0x2bc));const _0x27a752=Date[_0x3d061a(0x1c5)]();logger['debug'](_0x3d061a(0x276),'github_search_start',{'identifier':_0x460ee8,'query':_0x2986e1[_0x3d061a(0x244)][_0x3d061a(0x2af)],'branch':_0x2986e1[_0x3d061a(0x244)][_0x3d061a(0x1a6)]});try{const _0x534dbf=new WarpGrepClient({'morphApiKey':_0x50e3a9,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0x435a14=await _0x534dbf[_0x3d061a(0x20a)]({'searchTerm':_0x2986e1[_0x3d061a(0x244)][_0x3d061a(0x2af)],'github':_0x460ee8,'branch':_0x2986e1[_0x3d061a(0x244)][_0x3d061a(0x1a6)]}),_0x314817=Date[_0x3d061a(0x1c5)]()-_0x27a752;logMcpStderr('[github_codebase_search]\x20Done\x20in\x20'+_0x314817+_0x3d061a(0x1bd)+_0x435a14[_0x3d061a(0x287)]);const _0x2d61b1=formatResult(_0x435a14);return{'content':[{'type':_0x3d061a(0x2a9),'text':_0x2d61b1}]};}catch(_0x547011){const _0x130174=handleMorphAPIError(_0x547011);if(_0x130174)return _0x130174;const _0x27ef5d=Date[_0x3d061a(0x1c5)]()-_0x27a752,_0x553a44=_0x547011 instanceof Error?_0x547011[_0x3d061a(0x1b1)]:String(_0x547011);return logMcpStderr(_0x3d061a(0x25f)+_0x27ef5d+_0x3d061a(0x1f4),_0x553a44),reportMorphError({'error_message':_0x553a44,'error_type':_0x547011 instanceof Error?_0x547011[_0x3d061a(0x220)][_0x3d061a(0x26b)]:'UnknownError','context':{'tool':_0x3d061a(0x2a5),'github_url':_0x460ee8,'search_string':_0x2986e1[_0x3d061a(0x244)]['search_string'],'branch':_0x2986e1['data'][_0x3d061a(0x1a6)]},'stack_trace':_0x547011 instanceof Error?_0x547011[_0x3d061a(0x1fb)]:undefined,'source':'mcp-filesystem','tool':_0x3d061a(0x2a5),'latency_ms':_0x27ef5d})['catch'](()=>{}),{'content':[{'type':_0x3d061a(0x2a9),'text':_0x3d061a(0x23c)+_0x553a44}],'isError':![]};}}default:throw new Error(_0x3d061a(0x1ce)+_0x4e4578);}}catch(_0x26aae8){const _0x7e9c26=_0x26aae8 instanceof Error?_0x26aae8[_0x3d061a(0x1b1)]:String(_0x26aae8);return reportMorphError({'error_message':_0x7e9c26,'error_type':_0x26aae8 instanceof Error?_0x26aae8['constructor'][_0x3d061a(0x26b)]:'UnknownError','context':{'tool':_0x4e4578,'arguments':_0x3b30af?JSON[_0x3d061a(0x2c1)](_0x3b30af)[_0x3d061a(0x1de)](0x0,0x1f4):undefined,'mcp_server_version':_0x3d061a(0x243)},'stack_trace':_0x26aae8 instanceof Error?_0x26aae8[_0x3d061a(0x1fb)]:undefined,'source':_0x3d061a(0x21d)})['catch'](()=>{}),{'content':[{'type':_0x3d061a(0x2a9),'text':_0x3d061a(0x23f)+_0x7e9c26}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x4efe3c){const _0x324703=a0_0x5a9e7,_0x415f41=await getValidRootDirectories(_0x4efe3c);if(_0x415f41[_0x324703(0x28c)]>0x0)allowedDirectories=[..._0x415f41],logMcpStderr(_0x324703(0x236)+_0x415f41['length']+_0x324703(0x205));else{logMcpStderr(_0x324703(0x25a));if(ENABLE_WORKSPACE_MODE)try{const _0x58020b=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x58020b&&(allowedDirectories=[_0x58020b],logMcpStderr(_0x324703(0x2ba)+_0x58020b));}catch(_0x246f8b){logMcpStderr(_0x324703(0x274)+_0x246f8b);}}}server[a0_0x5a9e7(0x260)](RootsListChangedNotificationSchema,async()=>{const _0x271952=a0_0x5a9e7;try{const _0x5ed46a=await server[_0x271952(0x25d)]();_0x5ed46a&&'roots'in _0x5ed46a&&await updateAllowedDirectoriesFromRoots(_0x5ed46a[_0x271952(0x233)]);}catch(_0x55ef3b){logMcpStderr(_0x271952(0x272),_0x55ef3b instanceof Error?_0x55ef3b['message']:String(_0x55ef3b));}}),server[a0_0x5a9e7(0x28e)]=async()=>{const _0x4969c6=a0_0x5a9e7,_0x19629b=server[_0x4969c6(0x1c9)]();if(_0x19629b?.[_0x4969c6(0x233)])try{const _0xe1e5a=await server[_0x4969c6(0x25d)]();_0xe1e5a&&_0x4969c6(0x233)in _0xe1e5a?await updateAllowedDirectoriesFromRoots(_0xe1e5a[_0x4969c6(0x233)]):logMcpStderr(_0x4969c6(0x1fc));}catch(_0x34d740){logMcpStderr(_0x4969c6(0x296),_0x34d740 instanceof Error?_0x34d740[_0x4969c6(0x1b1)]:String(_0x34d740));}else{if(allowedDirectories[_0x4969c6(0x28c)]>0x0)logMcpStderr(_0x4969c6(0x2a6),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)logMcpStderr(_0x4969c6(0x298));else throw new Error(_0x4969c6(0x275));}}};async function runServer(){const _0x34fff5=a0_0x5a9e7,_0x3e13c4=new StdioServerTransport();await server[_0x34fff5(0x1b9)](_0x3e13c4),logMcpStderr('Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio'),allowedDirectories[_0x34fff5(0x28c)]===0x0&&logMcpStderr(_0x34fff5(0x1c0));}runServer()[a0_0x5a9e7(0x286)](_0x482043=>{const _0x556dd1=a0_0x5a9e7;logMcpStderr(_0x556dd1(0x2b2),_0x482043),process[_0x556dd1(0x297)](0x1);}); |
@@ -1,1 +0,1 @@ | ||
| var a1_0x202fd8=a1_0x157a;(function(_0x3faa7a,_0x4d63eb){var _0x322b96=a1_0x157a,_0xee876=_0x3faa7a();while(!![]){try{var _0x4f354c=-parseInt(_0x322b96(0x159))/0x1*(-parseInt(_0x322b96(0x14e))/0x2)+parseInt(_0x322b96(0x152))/0x3*(-parseInt(_0x322b96(0x154))/0x4)+parseInt(_0x322b96(0x14d))/0x5*(-parseInt(_0x322b96(0x151))/0x6)+parseInt(_0x322b96(0x14c))/0x7+-parseInt(_0x322b96(0x157))/0x8+parseInt(_0x322b96(0x14f))/0x9+parseInt(_0x322b96(0x14b))/0xa;if(_0x4f354c===_0x4d63eb)break;else _0xee876['push'](_0xee876['shift']());}catch(_0x1eb571){_0xee876['push'](_0xee876['shift']());}}}(a1_0x21b8,0x666dc));import a1_0x28474d from'os';import{logger}from'./logger.js';function a1_0x21b8(){var _0x5bfbfc=['34254rlfLcT','102EUZniN','linux','65728TzfwRa','win32','platform','6601880cTiBpm','info','16804DzmMOO','macOS','Linux','[os=','Unknown','darwin','4941840KyDgjT','2196089mKSXji','60ndhxTh','54oewRTv','5493240jfToZn','Windows'];a1_0x21b8=function(){return _0x5bfbfc;};return a1_0x21b8();}export function getOperatingSystemType(_0x3db9e6=a1_0x28474d['platform']()){var _0x582099=a1_0x157a;switch(_0x3db9e6){case _0x582099(0x14a):return _0x582099(0x15a);case _0x582099(0x155):return _0x582099(0x150);case _0x582099(0x153):return _0x582099(0x15b);default:return _0x582099(0x149);}}export function formatMcpLogMessage(_0x2d03c1,_0x6f55c1=a1_0x28474d[a1_0x202fd8(0x156)]()){var _0x286f06=a1_0x202fd8;return _0x286f06(0x15c)+getOperatingSystemType(_0x6f55c1)+']\x20'+_0x2d03c1;}function a1_0x157a(_0xd29b8f,_0xa41123){_0xd29b8f=_0xd29b8f-0x149;var _0x21b8ac=a1_0x21b8();var _0x157a2b=_0x21b8ac[_0xd29b8f];return _0x157a2b;}export function logMcpStderr(_0x19a7c7,..._0x4430b3){var _0x3e056c=a1_0x202fd8;console['error'](formatMcpLogMessage(_0x19a7c7),..._0x4430b3),logger[_0x3e056c(0x158)]('MCP',_0x19a7c7,_0x4430b3['length']?{'args':_0x4430b3['map'](_0x2fe597=>String(_0x2fe597))}:undefined);} | ||
| var a1_0x3d500b=a1_0x4ae8;(function(_0x1c8f95,_0x17c6dc){var _0x3228b6=a1_0x4ae8,_0x952997=_0x1c8f95();while(!![]){try{var _0x51c472=-parseInt(_0x3228b6(0x127))/0x1*(parseInt(_0x3228b6(0x12a))/0x2)+-parseInt(_0x3228b6(0x11c))/0x3+-parseInt(_0x3228b6(0x124))/0x4+parseInt(_0x3228b6(0x121))/0x5+parseInt(_0x3228b6(0x120))/0x6*(-parseInt(_0x3228b6(0x126))/0x7)+-parseInt(_0x3228b6(0x11f))/0x8*(parseInt(_0x3228b6(0x128))/0x9)+parseInt(_0x3228b6(0x119))/0xa;if(_0x51c472===_0x17c6dc)break;else _0x952997['push'](_0x952997['shift']());}catch(_0x3cf336){_0x952997['push'](_0x952997['shift']());}}}(a1_0x48cb,0x6bdba));import a1_0xfff234 from'os';import{logger}from'./logger.js';function a1_0x4ae8(_0x3c9dde,_0x456ab1){_0x3c9dde=_0x3c9dde-0x118;var _0x48cbdd=a1_0x48cb();var _0x4ae87b=_0x48cbdd[_0x3c9dde];return _0x4ae87b;}function a1_0x48cb(){var _0x250d82=['platform','1503184kIqjxP','2207298tVcqtS','3517720CZPbqh','darwin','linux','3218168utTeIF','win32','14ggDpse','2158YtGdyy','9oxsUla','macOS','466YjfHkp','length','MCP','27276510lNxbdy','info','Unknown','2275167mwgtID','[os='];a1_0x48cb=function(){return _0x250d82;};return a1_0x48cb();}export function getOperatingSystemType(_0x582fd1=a1_0xfff234[a1_0x3d500b(0x11e)]()){var _0x4fe7f9=a1_0x3d500b;switch(_0x582fd1){case _0x4fe7f9(0x122):return _0x4fe7f9(0x129);case _0x4fe7f9(0x125):return'Windows';case _0x4fe7f9(0x123):return'Linux';default:return _0x4fe7f9(0x11b);}}export function formatMcpLogMessage(_0x2b7230,_0x476ed5=a1_0xfff234[a1_0x3d500b(0x11e)]()){var _0x57d79e=a1_0x3d500b;return _0x57d79e(0x11d)+getOperatingSystemType(_0x476ed5)+']\x20'+_0x2b7230;}export function logMcpStderr(_0x41a6ac,..._0x1c0f44){var _0x579b81=a1_0x3d500b;console['error'](formatMcpLogMessage(_0x41a6ac),..._0x1c0f44),logger[_0x579b81(0x11a)](_0x579b81(0x118),_0x41a6ac,_0x1c0f44[_0x579b81(0x12b)]?{'args':_0x1c0f44['map'](_0x3555a0=>String(_0x3555a0))}:undefined);} |
+1
-1
@@ -1,1 +0,1 @@ | ||
| const a2_0xd05f8c=a2_0x14ab;(function(_0x1b0f67,_0x1969d5){const _0x1e1b42=a2_0x14ab,_0x56d37e=_0x1b0f67();while(!![]){try{const _0x13648a=-parseInt(_0x1e1b42(0xfd))/0x1+-parseInt(_0x1e1b42(0x104))/0x2+-parseInt(_0x1e1b42(0x102))/0x3+parseInt(_0x1e1b42(0xf6))/0x4*(-parseInt(_0x1e1b42(0x108))/0x5)+parseInt(_0x1e1b42(0xf7))/0x6*(-parseInt(_0x1e1b42(0xff))/0x7)+parseInt(_0x1e1b42(0xfe))/0x8*(parseInt(_0x1e1b42(0x105))/0x9)+parseInt(_0x1e1b42(0xfa))/0xa*(parseInt(_0x1e1b42(0x109))/0xb);if(_0x13648a===_0x1969d5)break;else _0x56d37e['push'](_0x56d37e['shift']());}catch(_0x50261d){_0x56d37e['push'](_0x56d37e['shift']());}}}(a2_0x302a,0xe81e1));function a2_0x14ab(_0x95b78b,_0x2a3e57){_0x95b78b=_0x95b78b-0xee;const _0x302ad5=a2_0x302a();let _0x14ab4e=_0x302ad5[_0x95b78b];return _0x14ab4e;}function a2_0x302a(){const _0x2c1357=['warn','stringify','toISOString','fileStream','88EwnEbS','3740694nqtqLi','env','error','692960zTyaFt',']\x20[','info','1001794hylqJJ','1304abkzQo','7oAvDzd','isEnabled','toUpperCase','2597799BOKkMa','MORPH_LOG_FILE','179704KgXSPE','43587FvqbpN','_log','enable','132690njOMxh','528ksNOEK','debug','write','enabled','MORPH_DEBUG'];a2_0x302a=function(){return _0x2c1357;};return a2_0x302a();}import{createWriteStream}from'fs';class MorphLogger{[a2_0xd05f8c(0xf0)];[a2_0xd05f8c(0xf5)];constructor(){const _0x273445=a2_0xd05f8c;this[_0x273445(0xf0)]=process[_0x273445(0xf8)][_0x273445(0xf1)]==='1'||!!process[_0x273445(0xf8)][_0x273445(0x103)];const _0x175357=process[_0x273445(0xf8)][_0x273445(0x103)];this['fileStream']=_0x175357?createWriteStream(_0x175357,{'flags':'a'}):null;}['debug'](_0x48d401,_0x27cef9,_0x1988e1){const _0x26e3b5=a2_0xd05f8c;this[_0x26e3b5(0x106)](_0x26e3b5(0xee),_0x48d401,_0x27cef9,_0x1988e1);}[a2_0xd05f8c(0xfc)](_0x27847f,_0x1b3ca0,_0x67ed0d){const _0x1b7b8c=a2_0xd05f8c;this[_0x1b7b8c(0x106)](_0x1b7b8c(0xfc),_0x27847f,_0x1b3ca0,_0x67ed0d);}[a2_0xd05f8c(0xf2)](_0x4fe606,_0x8a60ae,_0x330c9c){const _0x13a7aa=a2_0xd05f8c;this[_0x13a7aa(0x106)](_0x13a7aa(0xf2),_0x4fe606,_0x8a60ae,_0x330c9c);}[a2_0xd05f8c(0xf9)](_0x179c8c,_0x4234c6,_0x1f7018){const _0x5e21a4=a2_0xd05f8c;this['_log'](_0x5e21a4(0xf9),_0x179c8c,_0x4234c6,_0x1f7018);}[a2_0xd05f8c(0x107)](){const _0x24e54c=a2_0xd05f8c;this[_0x24e54c(0xf0)]=!![];}get[a2_0xd05f8c(0x100)](){return this['enabled'];}[a2_0xd05f8c(0x106)](_0x996bec,_0x5e8913,_0xdd47da,_0x57850b){const _0xe9d7b=a2_0xd05f8c;if(_0x996bec!=='error'&&!this[_0xe9d7b(0xf0)])return;const _0x2b56e6=new Date()[_0xe9d7b(0xf4)](),_0x4090b9='['+_0x2b56e6+']\x20['+_0x996bec[_0xe9d7b(0x101)]()+_0xe9d7b(0xfb)+_0x5e8913+']';console[_0xe9d7b(0xf9)](_0x57850b?_0x4090b9+'\x20'+_0xdd47da+'\x20'+JSON[_0xe9d7b(0xf3)](_0x57850b):_0x4090b9+'\x20'+_0xdd47da),this[_0xe9d7b(0xf5)]?.[_0xe9d7b(0xef)](JSON[_0xe9d7b(0xf3)]({'ts':_0x2b56e6,'level':_0x996bec,'component':_0x5e8913,'msg':_0xdd47da,..._0x57850b&&{'data':_0x57850b}})+'\x0a');}}export const logger=new MorphLogger(); | ||
| function a2_0x35a2(){const _0x5ed58f=['_log','enabled','15334eqOAqz','1134ShCilG','5085PUgkTx','write','810qelIJY','4912zUZkqo','info','5IGiPyJ','toUpperCase','fileStream','7415760fdqTWb','8022qThTmY',']\x20[','159717AOEkTC','toISOString','isEnabled','env','enable','stringify','MORPH_LOG_FILE','debug','error','445812LqjQeM','MORPH_DEBUG','414428WFpTMa','16bEprfk'];a2_0x35a2=function(){return _0x5ed58f;};return a2_0x35a2();}const a2_0x4c5b84=a2_0x3c85;(function(_0xbf6934,_0x3cba63){const _0x3b3ffa=a2_0x3c85,_0x1ed5b4=_0xbf6934();while(!![]){try{const _0x27531e=-parseInt(_0x3b3ffa(0x1b7))/0x1+parseInt(_0x3b3ffa(0x1b8))/0x2*(-parseInt(_0x3b3ffa(0x1c8))/0x3)+-parseInt(_0x3b3ffa(0x1b5))/0x4*(parseInt(_0x3b3ffa(0x1c2))/0x5)+-parseInt(_0x3b3ffa(0x1c6))/0x6*(-parseInt(_0x3b3ffa(0x1bc))/0x7)+-parseInt(_0x3b3ffa(0x1c0))/0x8*(-parseInt(_0x3b3ffa(0x1bd))/0x9)+parseInt(_0x3b3ffa(0x1bf))/0xa*(parseInt(_0x3b3ffa(0x1bb))/0xb)+parseInt(_0x3b3ffa(0x1c5))/0xc;if(_0x27531e===_0x3cba63)break;else _0x1ed5b4['push'](_0x1ed5b4['shift']());}catch(_0x2287eb){_0x1ed5b4['push'](_0x1ed5b4['shift']());}}}(a2_0x35a2,0x53a4d));import{createWriteStream}from'fs';function a2_0x3c85(_0x2a1ddb,_0x391f1e){_0x2a1ddb=_0x2a1ddb-0x1af;const _0x35a27f=a2_0x35a2();let _0x3c855f=_0x35a27f[_0x2a1ddb];return _0x3c855f;}class MorphLogger{[a2_0x4c5b84(0x1ba)];[a2_0x4c5b84(0x1c4)];constructor(){const _0x33b37d=a2_0x4c5b84;this[_0x33b37d(0x1ba)]=process['env'][_0x33b37d(0x1b6)]==='1'||!!process[_0x33b37d(0x1af)][_0x33b37d(0x1b2)];const _0x30c084=process[_0x33b37d(0x1af)][_0x33b37d(0x1b2)];this[_0x33b37d(0x1c4)]=_0x30c084?createWriteStream(_0x30c084,{'flags':'a'}):null;}['debug'](_0x33dde2,_0x2863cb,_0x3b14ee){const _0x1bb67f=a2_0x4c5b84;this[_0x1bb67f(0x1b9)](_0x1bb67f(0x1b3),_0x33dde2,_0x2863cb,_0x3b14ee);}[a2_0x4c5b84(0x1c1)](_0x1c9bee,_0x2d46ea,_0x52acb1){const _0x13c6cf=a2_0x4c5b84;this[_0x13c6cf(0x1b9)](_0x13c6cf(0x1c1),_0x1c9bee,_0x2d46ea,_0x52acb1);}['warn'](_0x582320,_0x765b99,_0x3051a9){this['_log']('warn',_0x582320,_0x765b99,_0x3051a9);}['error'](_0x3da180,_0x4af7ff,_0x3394b6){const _0x252ad6=a2_0x4c5b84;this[_0x252ad6(0x1b9)](_0x252ad6(0x1b4),_0x3da180,_0x4af7ff,_0x3394b6);}[a2_0x4c5b84(0x1b0)](){this['enabled']=!![];}get[a2_0x4c5b84(0x1ca)](){const _0x252c8d=a2_0x4c5b84;return this[_0x252c8d(0x1ba)];}[a2_0x4c5b84(0x1b9)](_0x300f21,_0x7e8671,_0x5982b0,_0x57ddc3){const _0x11ba6b=a2_0x4c5b84;if(_0x300f21!==_0x11ba6b(0x1b4)&&!this[_0x11ba6b(0x1ba)])return;const _0x110b2b=new Date()[_0x11ba6b(0x1c9)](),_0x40c0e2='['+_0x110b2b+_0x11ba6b(0x1c7)+_0x300f21[_0x11ba6b(0x1c3)]()+']\x20['+_0x7e8671+']';console[_0x11ba6b(0x1b4)](_0x57ddc3?_0x40c0e2+'\x20'+_0x5982b0+'\x20'+JSON[_0x11ba6b(0x1b1)](_0x57ddc3):_0x40c0e2+'\x20'+_0x5982b0),this['fileStream']?.[_0x11ba6b(0x1be)](JSON[_0x11ba6b(0x1b1)]({'ts':_0x110b2b,'level':_0x300f21,'component':_0x7e8671,'msg':_0x5982b0,..._0x57ddc3&&{'data':_0x57ddc3}})+'\x0a');}}export const logger=new MorphLogger(); |
@@ -1,1 +0,1 @@ | ||
| (function(_0xb4dda8,_0x2eec7d){const _0x3af6bb=a3_0x1c2f,_0x3dfca0=_0xb4dda8();while(!![]){try{const _0x5b7742=parseInt(_0x3af6bb(0x124))/0x1*(-parseInt(_0x3af6bb(0x127))/0x2)+parseInt(_0x3af6bb(0x122))/0x3*(parseInt(_0x3af6bb(0x116))/0x4)+-parseInt(_0x3af6bb(0x125))/0x5*(-parseInt(_0x3af6bb(0x11d))/0x6)+parseInt(_0x3af6bb(0x11a))/0x7+-parseInt(_0x3af6bb(0x128))/0x8+parseInt(_0x3af6bb(0x115))/0x9*(-parseInt(_0x3af6bb(0x120))/0xa)+parseInt(_0x3af6bb(0x11e))/0xb;if(_0x5b7742===_0x2eec7d)break;else _0x3dfca0['push'](_0x3dfca0['shift']());}catch(_0x375c16){_0x3dfca0['push'](_0x3dfca0['shift']());}}}(a3_0x13b5,0x57fc1));import a3_0x17c956 from'path';import a3_0x4d9086 from'os';function a3_0x13b5(){const _0xf0f5e1=['homedir','charAt','substring','1225728YTSiCw','startsWith','toUpperCase','2034QnMATK','10070434AvMxZA','test','52990baxQdH','match','107373tMpacr','/mnt/','13nkfZoT','6330HVwrnv','trim','13000ZfJSDx','4562168HHUorV','slice','replace','1161gJMZXU','20DInndh'];a3_0x13b5=function(){return _0xf0f5e1;};return a3_0x13b5();}export function convertToWindowsPath(_0x23eb2f){const _0x43a1df=a3_0x1c2f;if(_0x23eb2f['startsWith'](_0x43a1df(0x123))){const _0x55cacd=_0x23eb2f['charAt'](0x5)['toUpperCase'](),_0xb317ea=_0x23eb2f[_0x43a1df(0x113)](0x6)[_0x43a1df(0x114)](/\//g,'\x5c');return _0x55cacd+':'+_0xb317ea;}if(_0x23eb2f[_0x43a1df(0x121)](/^\/[a-zA-Z]\//)){const _0x410032=_0x23eb2f[_0x43a1df(0x118)](0x1)['toUpperCase'](),_0x12e373=_0x23eb2f[_0x43a1df(0x113)](0x2)['replace'](/\//g,'\x5c');return _0x410032+':'+_0x12e373;}if(_0x23eb2f[_0x43a1df(0x121)](/^[a-zA-Z]:/))return _0x23eb2f[_0x43a1df(0x114)](/\//g,'\x5c');return _0x23eb2f;}function a3_0x1c2f(_0x3af966,_0x3eae5a){_0x3af966=_0x3af966-0x113;const _0x13b547=a3_0x13b5();let _0x1c2fc7=_0x13b547[_0x3af966];return _0x1c2fc7;}export function normalizePath(_0x2a4733){const _0x4f277d=a3_0x1c2f;_0x2a4733=_0x2a4733[_0x4f277d(0x126)]()[_0x4f277d(0x114)](/^["']|["']$/g,'');const _0xe745b8=_0x2a4733[_0x4f277d(0x11b)]('/')&&!_0x2a4733['match'](/^\/mnt\/[a-z]\//i)&&!_0x2a4733[_0x4f277d(0x121)](/^\/[a-zA-Z]\//);if(_0xe745b8)return _0x2a4733[_0x4f277d(0x114)](/\/+/g,'/')[_0x4f277d(0x114)](/\/+$/,'');_0x2a4733=convertToWindowsPath(_0x2a4733);if(_0x2a4733[_0x4f277d(0x11b)]('\x5c\x5c')){let _0x345ace=_0x2a4733;_0x345ace=_0x345ace[_0x4f277d(0x114)](/^\\{2,}/,'\x5c\x5c');const _0x495c3b=_0x345ace[_0x4f277d(0x119)](0x2)[_0x4f277d(0x114)](/\\\\/g,'\x5c');_0x2a4733='\x5c\x5c'+_0x495c3b;}else _0x2a4733=_0x2a4733['replace'](/\\\\/g,'\x5c');let _0x15586d=a3_0x17c956['normalize'](_0x2a4733);_0x2a4733['startsWith']('\x5c\x5c')&&!_0x15586d[_0x4f277d(0x11b)]('\x5c\x5c')&&(_0x15586d='\x5c'+_0x15586d);if(_0x15586d['match'](/^[a-zA-Z]:/)){let _0x11e375=_0x15586d[_0x4f277d(0x114)](/\//g,'\x5c');return/^[a-z]:/[_0x4f277d(0x11f)](_0x11e375)&&(_0x11e375=_0x11e375[_0x4f277d(0x118)](0x0)[_0x4f277d(0x11c)]()+_0x11e375[_0x4f277d(0x113)](0x1)),_0x11e375;}return _0x15586d[_0x4f277d(0x114)](/\//g,'\x5c');}export function expandHome(_0xc58137){const _0x34cbce=a3_0x1c2f;if(_0xc58137[_0x34cbce(0x11b)]('~/')||_0xc58137==='~')return a3_0x17c956['join'](a3_0x4d9086[_0x34cbce(0x117)](),_0xc58137[_0x34cbce(0x113)](0x1));return _0xc58137;} | ||
| (function(_0x549530,_0x645601){const _0x308bc2=a3_0x3959,_0x5bfede=_0x549530();while(!![]){try{const _0x5ab872=-parseInt(_0x308bc2(0x196))/0x1+-parseInt(_0x308bc2(0x1a1))/0x2*(parseInt(_0x308bc2(0x1a0))/0x3)+parseInt(_0x308bc2(0x195))/0x4+-parseInt(_0x308bc2(0x1a2))/0x5+parseInt(_0x308bc2(0x1a4))/0x6*(-parseInt(_0x308bc2(0x199))/0x7)+parseInt(_0x308bc2(0x192))/0x8*(-parseInt(_0x308bc2(0x19f))/0x9)+-parseInt(_0x308bc2(0x19c))/0xa*(-parseInt(_0x308bc2(0x198))/0xb);if(_0x5ab872===_0x645601)break;else _0x5bfede['push'](_0x5bfede['shift']());}catch(_0x218aa2){_0x5bfede['push'](_0x5bfede['shift']());}}}(a3_0x164b,0xb9fa7));function a3_0x3959(_0x6b2f47,_0x216fa3){_0x6b2f47=_0x6b2f47-0x190;const _0x164b84=a3_0x164b();let _0x39595d=_0x164b84[_0x6b2f47];return _0x39595d;}import a3_0x41732a from'path';function a3_0x164b(){const _0x32b6fc=['3823192zWvPgg','join','/mnt/','4970760LuEHOc','158628LESjyp','match','768977ExLlxX','29351CzDwBx','normalize','slice','430IptJyg','substring','toUpperCase','9HrmLET','63CiPgDW','55794MOFXIj','6563745wWJRye','startsWith','1362kOXrct','homedir','charAt','trim','replace'];a3_0x164b=function(){return _0x32b6fc;};return a3_0x164b();}import a3_0x5cdd7a from'os';export function convertToWindowsPath(_0x428ae6){const _0x3195db=a3_0x3959;if(_0x428ae6[_0x3195db(0x1a3)](_0x3195db(0x194))){const _0x134843=_0x428ae6['charAt'](0x5)[_0x3195db(0x19e)](),_0x494654=_0x428ae6[_0x3195db(0x19b)](0x6)['replace'](/\//g,'\x5c');return _0x134843+':'+_0x494654;}if(_0x428ae6[_0x3195db(0x197)](/^\/[a-zA-Z]\//)){const _0x5d528c=_0x428ae6[_0x3195db(0x1a6)](0x1)[_0x3195db(0x19e)](),_0x66b487=_0x428ae6[_0x3195db(0x19b)](0x2)[_0x3195db(0x191)](/\//g,'\x5c');return _0x5d528c+':'+_0x66b487;}if(_0x428ae6[_0x3195db(0x197)](/^[a-zA-Z]:/))return _0x428ae6[_0x3195db(0x191)](/\//g,'\x5c');return _0x428ae6;}export function normalizePath(_0x372ef3){const _0x1fd0a8=a3_0x3959;_0x372ef3=_0x372ef3[_0x1fd0a8(0x190)]()['replace'](/^["']|["']$/g,'');const _0x4cc5b9=_0x372ef3['startsWith']('/')&&!_0x372ef3[_0x1fd0a8(0x197)](/^\/mnt\/[a-z]\//i)&&!_0x372ef3[_0x1fd0a8(0x197)](/^\/[a-zA-Z]\//);if(_0x4cc5b9)return _0x372ef3[_0x1fd0a8(0x191)](/\/+/g,'/')[_0x1fd0a8(0x191)](/\/+$/,'');_0x372ef3=convertToWindowsPath(_0x372ef3);if(_0x372ef3[_0x1fd0a8(0x1a3)]('\x5c\x5c')){let _0x1408cc=_0x372ef3;_0x1408cc=_0x1408cc[_0x1fd0a8(0x191)](/^\\{2,}/,'\x5c\x5c');const _0x50f27d=_0x1408cc[_0x1fd0a8(0x19d)](0x2)['replace'](/\\\\/g,'\x5c');_0x372ef3='\x5c\x5c'+_0x50f27d;}else _0x372ef3=_0x372ef3[_0x1fd0a8(0x191)](/\\\\/g,'\x5c');let _0x52363f=a3_0x41732a[_0x1fd0a8(0x19a)](_0x372ef3);_0x372ef3[_0x1fd0a8(0x1a3)]('\x5c\x5c')&&!_0x52363f[_0x1fd0a8(0x1a3)]('\x5c\x5c')&&(_0x52363f='\x5c'+_0x52363f);if(_0x52363f['match'](/^[a-zA-Z]:/)){let _0x5f3ca0=_0x52363f[_0x1fd0a8(0x191)](/\//g,'\x5c');return/^[a-z]:/['test'](_0x5f3ca0)&&(_0x5f3ca0=_0x5f3ca0[_0x1fd0a8(0x1a6)](0x0)[_0x1fd0a8(0x19e)]()+_0x5f3ca0[_0x1fd0a8(0x19b)](0x1)),_0x5f3ca0;}return _0x52363f[_0x1fd0a8(0x191)](/\//g,'\x5c');}export function expandHome(_0x34ba27){const _0x192197=a3_0x3959;if(_0x34ba27[_0x192197(0x1a3)]('~/')||_0x34ba27==='~')return a3_0x41732a[_0x192197(0x193)](a3_0x5cdd7a[_0x192197(0x1a5)](),_0x34ba27['slice'](0x1));return _0x34ba27;} |
@@ -1,1 +0,1 @@ | ||
| function a4_0x4fe6(){const _0x26ee04=['2890zmvCTW','Path\x20must\x20be\x20absolute\x20after\x20normalization','12137472bcdcnD','string','some','7agYZOO','5002SKovAt','normalize','startsWith','952086EyTMkW','length','45FPKOiV','5735272zuiFYv','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','785500vqhcZp','sep','includes','177078RSDISC','765UHFzUn','resolve','708384oIuMZT'];a4_0x4fe6=function(){return _0x26ee04;};return a4_0x4fe6();}(function(_0x1e0322,_0x21d391){const _0x2748fe=a4_0x4545,_0x3bac44=_0x1e0322();while(!![]){try{const _0x1d8a54=-parseInt(_0x2748fe(0xf5))/0x1+parseInt(_0x2748fe(0xfc))/0x2*(parseInt(_0x2748fe(0xf3))/0x3)+-parseInt(_0x2748fe(0xef))/0x4*(parseInt(_0x2748fe(0x101))/0x5)+parseInt(_0x2748fe(0xff))/0x6*(parseInt(_0x2748fe(0xfb))/0x7)+-parseInt(_0x2748fe(0xed))/0x8+-parseInt(_0x2748fe(0xf8))/0x9+parseInt(_0x2748fe(0xf6))/0xa*(parseInt(_0x2748fe(0xf2))/0xb);if(_0x1d8a54===_0x21d391)break;else _0x3bac44['push'](_0x3bac44['shift']());}catch(_0x4e15c8){_0x3bac44['push'](_0x3bac44['shift']());}}}(a4_0x4fe6,0xdd8da));import a4_0x195184 from'path';function a4_0x4545(_0x5c751f,_0x1fe371){_0x5c751f=_0x5c751f-0xed;const _0x4fe67b=a4_0x4fe6();let _0x45455a=_0x4fe67b[_0x5c751f];return _0x45455a;}export function isPathWithinAllowedDirectories(_0x244fde,_0x163d1b){const _0x42fb35=a4_0x4545;if(typeof _0x244fde!==_0x42fb35(0xf9)||!Array['isArray'](_0x163d1b))return![];if(!_0x244fde||_0x163d1b[_0x42fb35(0x100)]===0x0)return![];if(_0x244fde[_0x42fb35(0xf1)]('\x00'))return![];let _0x2ea334;try{_0x2ea334=a4_0x195184[_0x42fb35(0xf4)](a4_0x195184[_0x42fb35(0xfd)](_0x244fde));}catch{return![];}if(!a4_0x195184['isAbsolute'](_0x2ea334))throw new Error(_0x42fb35(0xf7));return _0x163d1b[_0x42fb35(0xfa)](_0xa5c2c5=>{const _0x130d24=_0x42fb35;if(typeof _0xa5c2c5!==_0x130d24(0xf9)||!_0xa5c2c5)return![];if(_0xa5c2c5[_0x130d24(0xf1)]('\x00'))return![];let _0x54895a;try{_0x54895a=a4_0x195184[_0x130d24(0xf4)](a4_0x195184[_0x130d24(0xfd)](_0xa5c2c5));}catch{return![];}if(!a4_0x195184['isAbsolute'](_0x54895a))throw new Error(_0x130d24(0xee));if(_0x2ea334===_0x54895a)return!![];if(_0x54895a===a4_0x195184[_0x130d24(0xf0)])return _0x2ea334[_0x130d24(0xfe)](a4_0x195184[_0x130d24(0xf0)]);return _0x2ea334[_0x130d24(0xfe)](_0x54895a+a4_0x195184[_0x130d24(0xf0)]);});} | ||
| (function(_0x365a06,_0x380f99){const _0x379f95=a4_0x4fc2,_0x21196a=_0x365a06();while(!![]){try{const _0xe6ffb2=parseInt(_0x379f95(0x1ae))/0x1*(parseInt(_0x379f95(0x1a2))/0x2)+parseInt(_0x379f95(0x1ac))/0x3+-parseInt(_0x379f95(0x1ad))/0x4+parseInt(_0x379f95(0x1a9))/0x5+parseInt(_0x379f95(0x1a3))/0x6*(-parseInt(_0x379f95(0x19d))/0x7)+-parseInt(_0x379f95(0x1aa))/0x8*(parseInt(_0x379f95(0x19e))/0x9)+-parseInt(_0x379f95(0x1a0))/0xa;if(_0xe6ffb2===_0x380f99)break;else _0x21196a['push'](_0x21196a['shift']());}catch(_0x3dfe0f){_0x21196a['push'](_0x21196a['shift']());}}}(a4_0x228e,0x7108a));function a4_0x228e(){const _0x3a9919=['4072nqaRWz','isArray','isAbsolute','2677171uLxrsZ','468PreSaH','string','4214420URSpYo','sep','316fiPfaS','6JzkHKo','Path\x20must\x20be\x20absolute\x20after\x20normalization','normalize','length','includes','startsWith','2226535fGZLQT','61648abvIGu','some','1805037MITQVR','91076TpjvPU'];a4_0x228e=function(){return _0x3a9919;};return a4_0x228e();}import a4_0x142641 from'path';function a4_0x4fc2(_0x4cbddf,_0x55bd72){_0x4cbddf=_0x4cbddf-0x19c;const _0x228ee0=a4_0x228e();let _0x4fc2ea=_0x228ee0[_0x4cbddf];return _0x4fc2ea;}export function isPathWithinAllowedDirectories(_0x216156,_0x2e35bd){const _0x4521be=a4_0x4fc2;if(typeof _0x216156!==_0x4521be(0x19f)||!Array[_0x4521be(0x1af)](_0x2e35bd))return![];if(!_0x216156||_0x2e35bd[_0x4521be(0x1a6)]===0x0)return![];if(_0x216156['includes']('\x00'))return![];let _0x592255;try{_0x592255=a4_0x142641['resolve'](a4_0x142641[_0x4521be(0x1a5)](_0x216156));}catch{return![];}if(!a4_0x142641['isAbsolute'](_0x592255))throw new Error(_0x4521be(0x1a4));return _0x2e35bd[_0x4521be(0x1ab)](_0x265d90=>{const _0x3272d5=_0x4521be;if(typeof _0x265d90!==_0x3272d5(0x19f)||!_0x265d90)return![];if(_0x265d90[_0x3272d5(0x1a7)]('\x00'))return![];let _0x420ea0;try{_0x420ea0=a4_0x142641['resolve'](a4_0x142641[_0x3272d5(0x1a5)](_0x265d90));}catch{return![];}if(!a4_0x142641[_0x3272d5(0x19c)](_0x420ea0))throw new Error('Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization');if(_0x592255===_0x420ea0)return!![];if(_0x420ea0===a4_0x142641[_0x3272d5(0x1a1)])return _0x592255[_0x3272d5(0x1a8)](a4_0x142641[_0x3272d5(0x1a1)]);return _0x592255[_0x3272d5(0x1a8)](_0x420ea0+a4_0x142641[_0x3272d5(0x1a1)]);});} |
@@ -1,1 +0,1 @@ | ||
| (function(_0x211011,_0x1b049a){const _0x3df5c3=a5_0x115f,_0x32049d=_0x211011();while(!![]){try{const _0x28f421=-parseInt(_0x3df5c3(0xf5))/0x1*(parseInt(_0x3df5c3(0xe4))/0x2)+-parseInt(_0x3df5c3(0xec))/0x3*(parseInt(_0x3df5c3(0xde))/0x4)+-parseInt(_0x3df5c3(0xeb))/0x5+-parseInt(_0x3df5c3(0xe3))/0x6+-parseInt(_0x3df5c3(0xe7))/0x7+-parseInt(_0x3df5c3(0xf4))/0x8+-parseInt(_0x3df5c3(0xdf))/0x9*(-parseInt(_0x3df5c3(0xe6))/0xa);if(_0x28f421===_0x1b049a)break;else _0x32049d['push'](_0x32049d['shift']());}catch(_0x5a2bb3){_0x32049d['push'](_0x32049d['shift']());}}}(a5_0x6c6b,0xcf692));import{promises as a5_0x585bd4}from'fs';import a5_0x58cd32 from'path';import a5_0x4b73c6 from'os';function a5_0x115f(_0x35bc89,_0x4aabd9){_0x35bc89=_0x35bc89-0xde;const _0x6c6bf6=a5_0x6c6b();let _0x115ffa=_0x6c6bf6[_0x35bc89];return _0x115ffa;}import{normalizePath}from'./path-utils.js';import{logMcpStderr}from'./log-utils.js';async function parseRootUri(_0x40de6d){const _0x28bac2=a5_0x115f;try{const _0x3cd7ad=_0x40de6d['startsWith'](_0x28bac2(0xf6))?_0x40de6d['slice'](0x7):_0x40de6d,_0x368895=_0x3cd7ad[_0x28bac2(0xea)]('~/')||_0x3cd7ad==='~'?a5_0x58cd32['join'](a5_0x4b73c6[_0x28bac2(0xe0)](),_0x3cd7ad[_0x28bac2(0xf0)](0x1)):_0x3cd7ad,_0x3434fc=a5_0x58cd32[_0x28bac2(0xf2)](_0x368895),_0x2034fb=await a5_0x585bd4[_0x28bac2(0xe2)](_0x3434fc);return normalizePath(_0x2034fb);}catch{return null;}}function a5_0x6c6b(){const _0x93127e=['1772141lyZVlk','invalid\x20path\x20or\x20inaccessible','message','startsWith','4147035XJQZgY','123eWXZMT','stat','push','\x20due\x20to\x20error:\x20','slice','non-directory\x20root','resolve','uri','7410352GsWkjQ','1454028RawjcJ','file://','108044GFoQcr','537291KKOQwF','homedir','Skipping\x20invalid\x20directory:\x20','realpath','4374600IYWKwi','2XaJrvm','Skipping\x20','1030efGpWy'];a5_0x6c6b=function(){return _0x93127e;};return a5_0x6c6b();}function formatDirectoryError(_0x3284d4,_0xe31dc2,_0x51b09e){const _0x138b6b=a5_0x115f;if(_0x51b09e)return _0x138b6b(0xe5)+_0x51b09e+':\x20'+_0x3284d4;const _0x5c1199=_0xe31dc2 instanceof Error?_0xe31dc2[_0x138b6b(0xe9)]:String(_0xe31dc2);return _0x138b6b(0xe1)+_0x3284d4+_0x138b6b(0xef)+_0x5c1199;}export async function getValidRootDirectories(_0x4238d9){const _0x25136b=a5_0x115f,_0x3b6dd3=[];for(const _0x47395a of _0x4238d9){const _0x5ecee4=await parseRootUri(_0x47395a[_0x25136b(0xf3)]);if(!_0x5ecee4){logMcpStderr(formatDirectoryError(_0x47395a[_0x25136b(0xf3)],undefined,_0x25136b(0xe8)));continue;}try{const _0x189ef7=await a5_0x585bd4[_0x25136b(0xed)](_0x5ecee4);_0x189ef7['isDirectory']()?_0x3b6dd3[_0x25136b(0xee)](_0x5ecee4):logMcpStderr(formatDirectoryError(_0x5ecee4,undefined,_0x25136b(0xf1)));}catch(_0x29a1b8){logMcpStderr(formatDirectoryError(_0x5ecee4,_0x29a1b8));}}return _0x3b6dd3;} | ||
| (function(_0x1429e3,_0x438663){const _0x3dab4c=a5_0x5af5,_0x3a3d50=_0x1429e3();while(!![]){try{const _0x5a2153=parseInt(_0x3dab4c(0x147))/0x1*(parseInt(_0x3dab4c(0x144))/0x2)+parseInt(_0x3dab4c(0x14c))/0x3*(parseInt(_0x3dab4c(0x14e))/0x4)+parseInt(_0x3dab4c(0x141))/0x5+parseInt(_0x3dab4c(0x13d))/0x6*(parseInt(_0x3dab4c(0x146))/0x7)+-parseInt(_0x3dab4c(0x135))/0x8*(parseInt(_0x3dab4c(0x14a))/0x9)+-parseInt(_0x3dab4c(0x137))/0xa*(-parseInt(_0x3dab4c(0x142))/0xb)+-parseInt(_0x3dab4c(0x13c))/0xc*(parseInt(_0x3dab4c(0x136))/0xd);if(_0x5a2153===_0x438663)break;else _0x3a3d50['push'](_0x3a3d50['shift']());}catch(_0x14040e){_0x3a3d50['push'](_0x3a3d50['shift']());}}}(a5_0x5b0f,0x849ae));function a5_0x5af5(_0x593e5b,_0x440271){_0x593e5b=_0x593e5b-0x135;const _0x5b0fad=a5_0x5b0f();let _0x5af5e7=_0x5b0fad[_0x593e5b];return _0x5af5e7;}import{promises as a5_0x2a6db5}from'fs';import a5_0x1818b6 from'path';import a5_0x210b9b from'os';import{normalizePath}from'./path-utils.js';import{logMcpStderr}from'./log-utils.js';async function parseRootUri(_0x44a0a5){const _0x36aba3=a5_0x5af5;try{const _0x571b05=_0x44a0a5[_0x36aba3(0x140)](_0x36aba3(0x145))?_0x44a0a5[_0x36aba3(0x149)](0x7):_0x44a0a5,_0x4d7929=_0x571b05[_0x36aba3(0x140)]('~/')||_0x571b05==='~'?a5_0x1818b6[_0x36aba3(0x13b)](a5_0x210b9b[_0x36aba3(0x148)](),_0x571b05[_0x36aba3(0x149)](0x1)):_0x571b05,_0xabcac6=a5_0x1818b6[_0x36aba3(0x13e)](_0x4d7929),_0x322440=await a5_0x2a6db5[_0x36aba3(0x13a)](_0xabcac6);return normalizePath(_0x322440);}catch{return null;}}function formatDirectoryError(_0xf19455,_0x255483,_0x2d81d1){const _0x14505c=a5_0x5af5;if(_0x2d81d1)return'Skipping\x20'+_0x2d81d1+':\x20'+_0xf19455;const _0x3d9754=_0x255483 instanceof Error?_0x255483[_0x14505c(0x14b)]:String(_0x255483);return _0x14505c(0x143)+_0xf19455+_0x14505c(0x14d)+_0x3d9754;}function a5_0x5b0f(){const _0x36ab3c=['369HMwVlw','message','3MYNSIh','\x20due\x20to\x20error:\x20','4100180hSgIab','196952ugnMtS','78XTNsYV','493390xFqMiW','stat','uri','realpath','join','910644cdNohA','6vJFvsT','resolve','isDirectory','startsWith','3384050MpwSuo','11QwGijD','Skipping\x20invalid\x20directory:\x20','3452tDMJVJ','file://','1301237jMapyU','41qGPjwf','homedir','slice'];a5_0x5b0f=function(){return _0x36ab3c;};return a5_0x5b0f();}export async function getValidRootDirectories(_0xffa23f){const _0x21284a=a5_0x5af5,_0x10f973=[];for(const _0x4e4497 of _0xffa23f){const _0x2f13e9=await parseRootUri(_0x4e4497[_0x21284a(0x139)]);if(!_0x2f13e9){logMcpStderr(formatDirectoryError(_0x4e4497[_0x21284a(0x139)],undefined,'invalid\x20path\x20or\x20inaccessible'));continue;}try{const _0x3e90f6=await a5_0x2a6db5[_0x21284a(0x138)](_0x2f13e9);_0x3e90f6[_0x21284a(0x13f)]()?_0x10f973['push'](_0x2f13e9):logMcpStderr(formatDirectoryError(_0x2f13e9,undefined,'non-directory\x20root'));}catch(_0x2383c7){logMcpStderr(formatDirectoryError(_0x2f13e9,_0x2383c7));}}return _0x10f973;} |
+1
-1
| { | ||
| "name": "@morphllm/morphmcp", | ||
| "version": "0.8.163", | ||
| "version": "0.8.164", | ||
| "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,0 +5,0 @@ "license": "MIT", |
Obfuscated code
Supply chain riskObfuscated files are intentionally packed to hide their behavior. This could be a sign of malware.
Found 6 instances in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Obfuscated code
Supply chain riskObfuscated files are intentionally packed to hide their behavior. This could be a sign of malware.
Found 6 instances in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
75214
0.47%