@morphllm/morphmcp 0.8.153 → 0.8.154

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const a0_0x517431=a0_0x33a4;(function(_0x202d00,_0x438dab){const _0x408f4c=a0_0x33a4,_0x30d8cf=_0x202d00();while(!![]){try{const _0x46583b=-parseInt(_0x408f4c(0x219))/0x1+parseInt(_0x408f4c(0x28e))/0x2+parseInt(_0x408f4c(0x28c))/0x3*(-parseInt(_0x408f4c(0x1f5))/0x4)+-parseInt(_0x408f4c(0x22b))/0x5*(-parseInt(_0x408f4c(0x1d9))/0x6)+parseInt(_0x408f4c(0x253))/0x7+parseInt(_0x408f4c(0x233))/0x8+-parseInt(_0x408f4c(0x282))/0x9;if(_0x46583b===_0x438dab)break;else _0x30d8cf['push'](_0x30d8cf['shift']());}catch(_0x5cc58e){_0x30d8cf['push'](_0x30d8cf['shift']());}}}(a0_0x4f06,0x71232));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_0x4f58e2 from'fs/promises';import a0_0x1019ba from'path';import a0_0x11aec8 from'os';import{createRequire}from'module';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';import{getOperatingSystemType,logMcpStderr}from'./log-utils.js';import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider,GITHUB_SEARCH_TOOL_NAME,GITHUB_SEARCH_DESCRIPTION}from'@morphllm/morphsdk/tools/warp-grep';import{WarpGrepClient,formatResult}from'@morphllm/morphsdk/tools/warp-grep/client';import{compactFileContexts}from'@morphllm/morphsdk/tools/compact';import a0_0xb8966d from'axios';function a0_0x33a4(_0x1462f2,_0x3265cd){_0x1462f2=_0x1462f2-0x1b4;const _0x4f0656=a0_0x4f06();let _0x33a4cf=_0x4f0656[_0x1462f2];return _0x33a4cf;}function fixPathRepetition(_0x57e927){const _0x5056d8=a0_0x33a4,_0x479f34=_0x57e927[_0x5056d8(0x1e1)](a0_0x1019ba[_0x5056d8(0x1d6)])['filter'](Boolean);if(_0x479f34[_0x5056d8(0x26f)]<0x2)return null;for(let _0xa3c03=Math[_0x5056d8(0x273)](_0x479f34[_0x5056d8(0x26f)]/0x2);_0xa3c03>=0x1;_0xa3c03--){for(let _0x54cfb6=0x0;_0x54cfb6<=_0x479f34[_0x5056d8(0x26f)]-0x2*_0xa3c03;_0x54cfb6++){const _0x459ab1=_0x479f34[_0x5056d8(0x204)](_0x54cfb6,_0x54cfb6+_0xa3c03),_0x405039=_0x479f34[_0x5056d8(0x204)](_0x54cfb6+_0xa3c03,_0x54cfb6+0x2*_0xa3c03);if(_0x459ab1['every']((_0x5884ce,_0x4ca6e5)=>_0x5884ce===_0x405039[_0x4ca6e5])){const _0x1c8718=[..._0x479f34[_0x5056d8(0x204)](0x0,_0x54cfb6),..._0x479f34[_0x5056d8(0x204)](_0x54cfb6+_0xa3c03)];return a0_0x1019ba[_0x5056d8(0x1d6)]+_0x1c8718['join'](a0_0x1019ba[_0x5056d8(0x1d6)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x8a8839=a0_0x33a4;try{const _0x331c9f=require('../package.json');return _0x331c9f['version']??'unknown';}catch(_0x3a63cc){return logMcpStderr(_0x8a8839(0x232),_0x3a63cc),_0x8a8839(0x246);}}function printHelp(){const _0x4797de=a0_0x33a4;console[_0x4797de(0x238)](_0x4797de(0x2a9)+getPackageVersion()),console['log'](_0x4797de(0x1bc)),console[_0x4797de(0x238)](_0x4797de(0x2a5)),console[_0x4797de(0x238)](_0x4797de(0x20e)),console[_0x4797de(0x238)](_0x4797de(0x21d)),console[_0x4797de(0x238)](_0x4797de(0x20c)),console[_0x4797de(0x238)](_0x4797de(0x25b)),console[_0x4797de(0x238)]('\x20\x20morph-mcp'),console[_0x4797de(0x238)](_0x4797de(0x1cb));}const cliArgs=process['argv'][a0_0x517431(0x204)](0x2),VERSION_FLAGS=new Set([a0_0x517431(0x29f),'-v','-V']),HELP_FLAGS=new Set([a0_0x517431(0x231),'-h']);cliArgs[a0_0x517431(0x2a1)](_0x1447d1=>VERSION_FLAGS['has'](_0x1447d1))&&(console[a0_0x517431(0x238)](a0_0x517431(0x2a9)+getPackageVersion()),process[a0_0x517431(0x1fb)](0x0));cliArgs[a0_0x517431(0x2a1)](_0xedf5cc=>HELP_FLAGS[a0_0x517431(0x217)](_0xedf5cc))&&(printHelp(),process[a0_0x517431(0x1fb)](0x0));function getCliArg(_0x58c95d){const _0x229696=a0_0x517431;for(let _0x4556e0=0x0;_0x4556e0<cliArgs[_0x229696(0x26f)];_0x4556e0++){const _0x451e9a=cliArgs[_0x4556e0];if(_0x451e9a[_0x229696(0x252)]('--'+_0x58c95d+'='))return _0x451e9a[_0x229696(0x204)](('--'+_0x58c95d+'=')['length']);if(_0x451e9a==='--'+_0x58c95d&&_0x4556e0+0x1<cliArgs[_0x229696(0x26f)])return cliArgs[_0x4556e0+0x1];}return undefined;}function a0_0x4f06(){const _0xdd4995=['-\x20Listed\x20directory\x20`','\x20(new\x20file)','timings','terminated','split','size','role','map','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','repo_path','Here\x20is\x20the\x20content\x20of\x20files:\x0a','list_directory','SubToolError','listRoots','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol',',\x20modified\x20','grep_search','Failed\x20to\x20read\x20file:\x20','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','realpath','error','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','description','12MYTcLF','BinaryFile','all','grep','timeout','\x20as\x20allowed\x20directory','exit','completionId','TimeoutError','[codebase_search]\x20compaction\x20failed','Unknown\x20error','Parent\x20directory\x20does\x20not\x20exist:\x20','params','etimedout','roots','slice','enum','search_type','name','Search\x20type\x20hint.\x20Use\x20\x27node_modules\x27\x20when\x20searching\x20inside\x20node_modules\x20or\x20other\x20dependency\x20directories\x20that\x20are\x20normally\x20excluded.','tool','-\x20Read\x20file\x20`','glob','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','Warning:\x20','\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)','morph-v3-fast','No\x20relevant\x20code\x20found\x20for\x20the\x20query.','Morph\x20Edit\x20','Applied','object','morph-mcp','MORPH_API_KEY','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','has','resolve','168557JAddip','PathError','instructions','function','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','Disabled\x20tools:\x20','Fallback:\x20Using\x20workspace\x20root\x20','success','default','connect','.git','node_modules','stringify','.\x20Changes:\x20','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','MORPH_API_URL','\x27\x20in\x20`','[github_codebase_search]\x20Searching\x20','5hZTina','dirname','indexOf','github_codebase_search','<file\x20path=\x22','string','--help','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','801016xWHKvY','basename','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.\x20','trim','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','log','owner_repo','RipgrepError','lines','runWarpGrep_call','0.2.0','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','File\x20read\x20error:','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','edit_file','toLowerCase','number','SymlinkError','unknown','Preview\x20changes\x20without\x20applying\x20them.','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.','ReadError','isArray','composer.json','\x22>\x0a','morph-warp-grep-v2.1','files','stack','Specific\x20commit\x20hash\x20to\x20search','\x20for:\x20\x22','startsWith','1824725RWjwCW','metadata','ms:','includes','getClientCapabilities','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','readFile','Morph\x20Edit\x20Preview','\x0aExamples:','code_edit','`\x20in\x20`','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','substring','ms.\x20Success:\x20','optional','Max\x20results\x20to\x20return','\x0a</file>','[github_codebase_search]\x20Done\x20in\x20','data','env','pattern','assistant','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','linesRemoved','Error:\x20','tool_call_id','length','describe','--api-key','.\x20Path:\x20','floor','path','WarpGrepError','MORPH_WARP_GREP_TIMEOUT','.vscode','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','Please\x20provide\x20github\x20search\x20url\x20or\x20owner/repo\x20id','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','-\x20Grepped\x20\x27','PWD','Morph\x20FastApply\x20failed\x20without\x20error\x20message','ENOENT','package.json','homedir','read','7326342ViOHXp','now','array','requiresApiKey','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','min','RipgrepNotAvailable','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','text','406143pfbYOn','\x0a...\x20(truncated,\x20total:\x20','1747170RfiKCq','parse','-\x20Glob\x20search\x20`','constructor','safeParse','filter','linesAdded','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','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','https://morphllm.com/api/error-report','inputSchema','DISABLED_TOOLS','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','WORKSPACE_ROOT','codebase_search','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','command','--version','tool_calls','some','join','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','application/json','\x0aOptions:','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','@morphllm/morphmcp\x20','errors','api-key','instruction','Error\x20running\x20fast\x20context\x20search:\x20','catch','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','For\x20deletions:\x0a','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','arguments','messages','added\x20','dryRun','Repository\x20owner/repo\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.','timed\x20out','GitHub\x20search\x20failed:\x20','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','completed_with_file_errors','normalize','setNotificationHandler','toISOString','completed','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','Created\x20File','\x20-\x20','message','sk-','Repository\x20identifier','push','\x20valid\x20directories','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','mcp-filesystem','oninitialized','user','source','FileNotFound','finish','\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo','Warning:\x20DISABLED_TOOLS\x20contains\x20unknown\x20tool\x20\x22','github_url','match','Invalid\x20arguments:\x20','utf-8','terminationReason','search_string','pyproject.toml','content','ENABLE_WORKSPACE_MODE','sep','setRequestHandler','❌\x20Morph\x20Edit\x20Failed:\x20','3706566ADvmbn','branch','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.','UnknownError'];a0_0x4f06=function(){return _0xdd4995;};return a0_0x4f06();}const args=[];for(let i=0x0;i<cliArgs[a0_0x517431(0x26f)];i++){const arg=cliArgs[i];if(VERSION_FLAGS[a0_0x517431(0x217)](arg)||HELP_FLAGS[a0_0x517431(0x217)](arg))continue;if(arg[a0_0x517431(0x252)]('--api-key='))continue;if(arg===a0_0x517431(0x271)){i++;continue;}args[a0_0x517431(0x1c2)](arg);}const WORKSPACE_ROOT=process['env'][a0_0x517431(0x29b)]||process[a0_0x517431(0x268)][a0_0x517431(0x27c)]||process['cwd'](),ENABLE_WORKSPACE_MODE=process[a0_0x517431(0x268)][a0_0x517431(0x1d5)]!=='false',MORPH_API_KEY=getCliArg(a0_0x517431(0x2ab))??process[a0_0x517431(0x268)][a0_0x517431(0x215)],MORPH_API_URL=process[a0_0x517431(0x268)][a0_0x517431(0x228)],MORPH_WARP_GREP_TIMEOUT=process['env'][a0_0x517431(0x276)]?parseInt(process[a0_0x517431(0x268)]['MORPH_WARP_GREP_TIMEOUT'],0xa):undefined,OPERATING_SYSTEM_TYPE=getOperatingSystemType(),KNOWN_TOOL_NAMES=new Set([a0_0x517431(0x242),a0_0x517431(0x29c),a0_0x517431(0x22e)]),DISABLED_TOOLS=process[a0_0x517431(0x268)][a0_0x517431(0x299)]?new Set(process['env'][a0_0x517431(0x299)][a0_0x517431(0x1e1)](',')[a0_0x517431(0x1e4)](_0x5cfb27=>_0x5cfb27[a0_0x517431(0x236)]())['filter'](_0x4feafe=>_0x4feafe['length']>0x0)):new Set();if(DISABLED_TOOLS[a0_0x517431(0x1e2)]>0x0){for(const tool of DISABLED_TOOLS){!KNOWN_TOOL_NAMES['has'](tool)&&console[a0_0x517431(0x1f2)](a0_0x517431(0x1cc)+tool+'\x22.\x20Known\x20tools:\x20'+[...KNOWN_TOOL_NAMES][a0_0x517431(0x2a2)](',\x20'));}console[a0_0x517431(0x1f2)](a0_0x517431(0x21e)+[...DISABLED_TOOLS][a0_0x517431(0x2a2)](',\x20'));}MORPH_API_KEY&&!MORPH_API_KEY[a0_0x517431(0x252)](a0_0x517431(0x1c0))&&!MORPH_API_KEY[a0_0x517431(0x252)]('morph-')&&logMcpStderr(a0_0x517431(0x23e));async function reportMorphError(_0x1634db){const _0x1cb270=a0_0x517431;try{await a0_0xb8966d['post'](_0x1cb270(0x297),{..._0x1634db,'timestamp':new Date()[_0x1cb270(0x1ba)](),'source':_0x1634db[_0x1cb270(0x1c8)]||_0x1cb270(0x1c5),'os_type':OPERATING_SYSTEM_TYPE,'context':{'os_type':OPERATING_SYSTEM_TYPE,..._0x1634db['context']}},{'timeout':0x1388,'headers':{'Content-Type':_0x1cb270(0x2a4),'Authorization':'Bearer\x20'+MORPH_API_KEY}});}catch{}}args[a0_0x517431(0x26f)]===0x0&&!ENABLE_WORKSPACE_MODE&&(logMcpStderr(a0_0x517431(0x258)),logMcpStderr(a0_0x517431(0x29a)),logMcpStderr(a0_0x517431(0x29d)),logMcpStderr(a0_0x517431(0x289)),logMcpStderr('\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)'),logMcpStderr('At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.'));function normalizePath(_0x5d6424){const _0x67ea3f=a0_0x517431;return a0_0x1019ba[_0x67ea3f(0x1b8)](_0x5d6424);}function expandHome(_0x40b358){const _0x227e1b=a0_0x517431;if(_0x40b358[_0x227e1b(0x252)]('~/')||_0x40b358==='~')return a0_0x1019ba[_0x227e1b(0x2a2)](a0_0x11aec8[_0x227e1b(0x280)](),_0x40b358[_0x227e1b(0x204)](0x1));return _0x40b358;}let allowedDirectories=await Promise[a0_0x517431(0x1f7)](args[a0_0x517431(0x1e4)](async _0x7631aa=>{const _0x50a23e=a0_0x517431,_0x37b82e=expandHome(_0x7631aa),_0x1a932a=a0_0x1019ba['resolve'](_0x37b82e);try{const _0x78129c=await a0_0x4f58e2[_0x50a23e(0x1f1)](_0x1a932a);return normalizePath(_0x78129c);}catch(_0x267fe4){return normalizePath(_0x1a932a);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x517431(0x26f)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x517431(0x1c2)](workspaceDir),logMcpStderr('Workspace\x20mode\x20enabled:\x20Using\x20'+workspaceDir+a0_0x517431(0x1fa)));}catch(a0_0x4e9400){logMcpStderr(a0_0x517431(0x23f)+a0_0x4e9400);}async function detectWorkspaceRoot(_0x4e88ef){const _0x281040=a0_0x517431;let _0x4ea693=a0_0x1019ba[_0x281040(0x218)](_0x4e88ef);const _0x6be93d=[_0x281040(0x223),_0x281040(0x277),_0x281040(0x27f),'Cargo.toml',_0x281040(0x1d3),'go.mod','.cursor','tsconfig.json',_0x281040(0x24b)];while(_0x4ea693!==a0_0x1019ba[_0x281040(0x22c)](_0x4ea693)){for(const _0x4a7041 of _0x6be93d){const _0x2f82fd=a0_0x1019ba[_0x281040(0x2a2)](_0x4ea693,_0x4a7041);try{return await a0_0x4f58e2['access'](_0x2f82fd),normalizePath(_0x4ea693);}catch{}}_0x4ea693=a0_0x1019ba[_0x281040(0x22c)](_0x4ea693);}return normalizePath(_0x4e88ef);}await Promise[a0_0x517431(0x1f7)](args[a0_0x517431(0x1e4)](async _0x10b2e8=>{const _0x4002f3=a0_0x517431;try{const _0x180010=await a0_0x4f58e2['stat'](expandHome(_0x10b2e8));!_0x180010['isDirectory']()&&(logMcpStderr(_0x4002f3(0x26d)+_0x10b2e8+'\x20is\x20not\x20a\x20directory'),process[_0x4002f3(0x1fb)](0x1));}catch(_0x5db157){logMcpStderr('Error\x20accessing\x20directory\x20'+_0x10b2e8+':',_0x5db157),process[_0x4002f3(0x1fb)](0x1);}}));async function validatePath(_0x4377f5){const _0x11fd15=a0_0x517431,_0x29ad20=expandHome(_0x4377f5),_0xf00789=a0_0x1019ba[_0x11fd15(0x218)](_0x29ad20);try{const _0x2cba5a=await a0_0x4f58e2[_0x11fd15(0x1f1)](_0xf00789);return _0x2cba5a;}catch(_0x4ca9d4){if(_0x4ca9d4['code']==='ENOENT'){const _0x12e76c=a0_0x1019ba[_0x11fd15(0x22c)](_0xf00789);try{const _0x293c87=await a0_0x4f58e2[_0x11fd15(0x1f1)](_0x12e76c);return a0_0x1019ba[_0x11fd15(0x2a2)](_0x293c87,a0_0x1019ba[_0x11fd15(0x234)](_0xf00789));}catch{throw new Error(_0x11fd15(0x200)+_0x12e76c);}}throw _0x4ca9d4;}}const MorphEditFileArgsSchema=z[a0_0x517431(0x213)]({'path':z['string'](),'code_edit':z[a0_0x517431(0x230)]()[a0_0x517431(0x270)](a0_0x517431(0x227)),'instruction':z[a0_0x517431(0x230)]()[a0_0x517431(0x270)](a0_0x517431(0x2b1)),'dryRun':z['boolean']()[a0_0x517431(0x221)](![])[a0_0x517431(0x270)](a0_0x517431(0x247))}),CODEBASE_SEARCH_QUERY_DESCRIPTION=a0_0x517431(0x1db),WarpGrepArgsSchema=z[a0_0x517431(0x213)]({'search_string':z[a0_0x517431(0x230)]()[a0_0x517431(0x270)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repo_path':z[a0_0x517431(0x230)]()[a0_0x517431(0x270)](a0_0x517431(0x1e5)),'search_type':z[a0_0x517431(0x205)]([a0_0x517431(0x221),a0_0x517431(0x224)])['optional']()['describe'](a0_0x517431(0x208))}),WarpGrepGitHubArgsSchema=z[a0_0x517431(0x213)]({'search_string':z[a0_0x517431(0x230)]()['describe'](CODEBASE_SEARCH_QUERY_DESCRIPTION),'github_url':z[a0_0x517431(0x230)]()['optional']()['describe'](a0_0x517431(0x248)),'owner_repo':z['string']()['optional']()[a0_0x517431(0x270)](a0_0x517431(0x2b6)),'branch':z['string']()['optional']()[a0_0x517431(0x270)]('Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)')}),CodebaseSearchArgsSchema=z['object']({'query':z[a0_0x517431(0x230)]()[a0_0x517431(0x270)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repoId':z[a0_0x517431(0x230)]()[a0_0x517431(0x270)](a0_0x517431(0x1c1)),'branch':z[a0_0x517431(0x230)]()[a0_0x517431(0x263)]()['describe'](a0_0x517431(0x2a7)),'commitHash':z[a0_0x517431(0x230)]()[a0_0x517431(0x263)]()[a0_0x517431(0x270)](a0_0x517431(0x250)),'targetDirectories':z[a0_0x517431(0x284)](z[a0_0x517431(0x230)]())[a0_0x517431(0x221)]([])['describe'](a0_0x517431(0x2a8)),'limit':z[a0_0x517431(0x244)]()[a0_0x517431(0x263)]()[a0_0x517431(0x221)](0xa)['describe'](a0_0x517431(0x264))}),server=new Server({'name':a0_0x517431(0x214),'version':a0_0x517431(0x23d)},{'capabilities':{'tools':{}}});server[a0_0x517431(0x1d7)](ListToolsRequestSchema,async()=>{const _0x4d0bb3=a0_0x517431,_0x2dfdbf=[{'name':_0x4d0bb3(0x242),'description':'**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a'+'⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a'+_0x4d0bb3(0x1f0)+_0x4d0bb3(0x286)+'Benefits:\x0a'+'-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a'+_0x4d0bb3(0x2a6)+_0x4d0bb3(0x25f)+_0x4d0bb3(0x2af)+_0x4d0bb3(0x241)+_0x4d0bb3(0x216)+'Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a'+_0x4d0bb3(0x2b0)+'-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a'+'-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a'+'Rules:\x0a'+_0x4d0bb3(0x278)+_0x4d0bb3(0x2a3)+_0x4d0bb3(0x1c4)+_0x4d0bb3(0x1eb)+_0x4d0bb3(0x28a)+'-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a'+'IMPORTANT:\x20If\x20you\x20are\x20running\x20within\x20Cursor,\x20you\x20MUST\x20FIRST\x20use\x20another\x20tool\x20(like\x20search_replace)\x20to\x20add\x20exactly\x20one\x20empty\x20new\x20line\x20somewhere\x20in\x20the\x20file\x20before\x20using\x20this\x20tool.\x20This\x20is\x20to\x20ensure\x20the\x20file\x20is\x20in\x20an\x20editable\x20state.\x0a','inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':_0x4d0bb3(0x29c),'description':_0x4d0bb3(0x296)+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'+_0x4d0bb3(0x235)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':GITHUB_SEARCH_TOOL_NAME,'description':GITHUB_SEARCH_DESCRIPTION,'inputSchema':zodToJsonSchema(WarpGrepGitHubArgsSchema),'requiresApiKey':!![]}],_0x20fd29=_0x2dfdbf[_0x4d0bb3(0x293)](_0xcfb21f=>{const _0x29f5be=_0x4d0bb3;if(DISABLED_TOOLS[_0x29f5be(0x217)](_0xcfb21f[_0x29f5be(0x207)]))return console[_0x29f5be(0x1f2)]('Tool\x20'+_0xcfb21f[_0x29f5be(0x207)]+'\x20disabled\x20via\x20DISABLED_TOOLS'),![];if(_0x29f5be(0x285)in _0xcfb21f&&_0xcfb21f[_0x29f5be(0x285)]&&!MORPH_API_KEY)return logMcpStderr(_0x29f5be(0x20d)+_0xcfb21f[_0x29f5be(0x207)]+_0x29f5be(0x27a)),![];return!![];});return{'tools':_0x20fd29[_0x4d0bb3(0x1e4)](_0x65fae6=>({'name':_0x65fae6[_0x4d0bb3(0x207)],'description':_0x65fae6[_0x4d0bb3(0x1f4)],'inputSchema':_0x65fae6[_0x4d0bb3(0x298)]}))};}),server['setRequestHandler'](CallToolRequestSchema,async _0x16e958=>{const _0x3d3da1=a0_0x517431,{name:_0x13cd10,arguments:_0x14ef62}=_0x16e958[_0x3d3da1(0x201)];try{if(DISABLED_TOOLS[_0x3d3da1(0x217)](_0x13cd10))throw new Error('Tool\x20\x22'+_0x13cd10+'\x22\x20is\x20disabled\x20via\x20DISABLED_TOOLS\x20environment\x20variable');switch(_0x13cd10){case _0x3d3da1(0x242):{const _0x5ebf17=_0x14ef62&&typeof _0x14ef62===_0x3d3da1(0x213)&&_0x3d3da1(0x21b)in _0x14ef62&&!('instruction'in _0x14ef62)?{..._0x14ef62,'instruction':_0x14ef62['instructions'],'instructions':undefined}:_0x14ef62,_0x5ba07c=MorphEditFileArgsSchema['safeParse'](_0x5ebf17);if(!_0x5ba07c[_0x3d3da1(0x220)])throw new Error(_0x3d3da1(0x1b6)+_0x5ba07c[_0x3d3da1(0x1f2)]);const _0x2cfa04=await validatePath(_0x5ba07c[_0x3d3da1(0x267)]['path']);let _0xaa0e6a=null,_0x8caf6f=!![],_0x31901c=null;try{_0xaa0e6a=await a0_0x4f58e2['readFile'](_0x2cfa04,_0x3d3da1(0x1d0));}catch(_0x8f7090){const _0x371720=_0x8f7090['code'];_0x371720===_0x3d3da1(0x27e)?(_0x8caf6f=![],_0xaa0e6a=''):(_0x31901c=_0x3d3da1(0x1ef)+(_0x371720||_0x3d3da1(0x246))+_0x3d3da1(0x1be)+(_0x8f7090 instanceof Error?_0x8f7090['message']:String(_0x8f7090)),logMcpStderr(_0x3d3da1(0x20d)+_0x31901c));}let _0x205ac6;try{const _0x1a0a3c=MORPH_API_KEY;if(!_0x1a0a3c)throw new Error(_0x3d3da1(0x1f3));const _0xf5078=a0_0x1019ba[_0x3d3da1(0x22c)](_0x2cfa04),_0x345064=a0_0x1019ba[_0x3d3da1(0x234)](_0x2cfa04),_0x1fbb72=await executeEditFile({'target_filepath':_0x345064,'code_edit':_0x5ba07c[_0x3d3da1(0x267)][_0x3d3da1(0x25c)],'instruction':_0x5ba07c['data'][_0x3d3da1(0x2ac)]},{'morphApiKey':_0x1a0a3c,'morphApiUrl':MORPH_API_URL,'baseDir':_0xf5078,'autoWrite':!_0x5ba07c[_0x3d3da1(0x267)][_0x3d3da1(0x2b5)],'generateUdiff':![],'debug':![]});_0x205ac6=_0x1fbb72[_0x3d3da1(0x1fc)];if(!_0x1fbb72[_0x3d3da1(0x220)])throw new Error(_0x1fbb72['error']||_0x3d3da1(0x27d));const _0x45b2e2=_0x1fbb72['changes'],_0x1d76f3=_0x3d3da1(0x2b4)+_0x45b2e2[_0x3d3da1(0x294)]+',\x20removed\x20'+_0x45b2e2[_0x3d3da1(0x26c)]+_0x3d3da1(0x1ed)+_0x45b2e2['linesModified'];if(_0x5ba07c['data'][_0x3d3da1(0x2b5)])return{'content':[{'type':_0x3d3da1(0x28b),'text':_0x3d3da1(0x25a)+(_0x8caf6f?'':_0x3d3da1(0x1de))+':\x20'+_0x5ba07c[_0x3d3da1(0x267)]['instruction']+_0x3d3da1(0x226)+_0x1d76f3+_0x3d3da1(0x272)+_0x5ba07c['data'][_0x3d3da1(0x274)]+'.'}]};return{'content':[{'type':_0x3d3da1(0x28b),'text':_0x3d3da1(0x211)+(_0x8caf6f?_0x3d3da1(0x212):_0x3d3da1(0x1bd))+':\x20'+_0x5ba07c['data']['instruction']+_0x3d3da1(0x226)+_0x1d76f3+_0x3d3da1(0x272)+_0x5ba07c['data']['path']+'.'}]};}catch(_0x2040c6){const _0x173ae2=_0x2040c6 instanceof Error?_0x2040c6[_0x3d3da1(0x1bf)]:String(_0x2040c6);return reportMorphError({'error_message':_0x173ae2,'error_type':_0x2040c6 instanceof Error?_0x2040c6[_0x3d3da1(0x291)][_0x3d3da1(0x207)]:_0x3d3da1(0x1dc),'context':{'tool':'edit_file','completion_id':_0x205ac6,'file_path':_0x5ba07c['data']['path'],'validated_path':_0x2cfa04,'instruction':_0x5ba07c['data'][_0x3d3da1(0x2ac)],'model':'morph-v3-fast','dry_run':_0x5ba07c[_0x3d3da1(0x267)][_0x3d3da1(0x2b5)],'file_exists':_0x8caf6f,'file_read_error':_0x31901c,'file_readable':_0xaa0e6a!==null,'request_content':{'path':_0x5ba07c[_0x3d3da1(0x267)][_0x3d3da1(0x274)],'code_edit':_0x5ba07c[_0x3d3da1(0x267)][_0x3d3da1(0x25c)],'instruction':_0x5ba07c[_0x3d3da1(0x267)][_0x3d3da1(0x2ac)],'original_code':_0xaa0e6a!==null?_0xaa0e6a[_0x3d3da1(0x26f)]>0xc350?_0xaa0e6a[_0x3d3da1(0x261)](0x0,0xc350)+_0x3d3da1(0x28d)+_0xaa0e6a[_0x3d3da1(0x26f)]+'\x20chars)':_0xaa0e6a:'[could\x20not\x20read\x20file:\x20'+(_0x31901c||'unknown\x20error')+']','original_code_length':_0xaa0e6a?.[_0x3d3da1(0x26f)]??0x0,'model':_0x3d3da1(0x20f),'dry_run':_0x5ba07c['data'][_0x3d3da1(0x2b5)]}},'stack_trace':_0x2040c6 instanceof Error?_0x2040c6['stack']:undefined,'source':_0x3d3da1(0x1c5)})[_0x3d3da1(0x2ae)](()=>{}),{'content':[{'type':'text','text':_0x3d3da1(0x1d8)+_0x173ae2}],'isError':!![]};}}case _0x3d3da1(0x29c):{const _0xfdba71=WarpGrepArgsSchema[_0x3d3da1(0x292)](_0x14ef62);if(!_0xfdba71['success'])return{'content':[{'type':_0x3d3da1(0x28b),'text':_0x3d3da1(0x1cf)+_0xfdba71['error']}],'isError':!![]};const _0x21a1b7=_0x122c7c=>{const _0x361312=_0x3d3da1,_0x558337=[];for(const _0x4ed5a1 of _0x122c7c||[]){if(_0x4ed5a1[_0x361312(0x1e3)]===_0x361312(0x26a)&&Array[_0x361312(0x24a)](_0x4ed5a1[_0x361312(0x2a0)]))for(const _0x28b25d of _0x4ed5a1[_0x361312(0x2a0)]){try{const _0x45b31d=_0x28b25d[_0x361312(0x21c)]?.[_0x361312(0x207)],_0x3d54db=JSON[_0x361312(0x28f)](_0x28b25d[_0x361312(0x21c)]?.[_0x361312(0x2b2)]||'{}');if(_0x45b31d===_0x361312(0x1ee))_0x558337['push']('grep\x20\x27'+_0x3d54db[_0x361312(0x269)]+'\x27\x20'+(_0x3d54db['path']||'.'));else{if(_0x45b31d==='read')_0x558337[_0x361312(0x1c2)]('read\x20'+_0x3d54db['path']);else{if(_0x45b31d===_0x361312(0x1e8))_0x558337[_0x361312(0x1c2)]('list_directory\x20'+(_0x3d54db[_0x361312(0x29e)]||'.'));else{if(_0x45b31d===_0x361312(0x20b))_0x558337['push']('glob\x20\x27'+_0x3d54db[_0x361312(0x269)]+'\x27\x20'+(_0x3d54db[_0x361312(0x274)]||'.'));else _0x45b31d===_0x361312(0x1ca)&&_0x558337[_0x361312(0x1c2)](_0x361312(0x1ca));}}}}catch{}}}return _0x558337;},_0x3699af=_0x58e025=>{const _0x6bc0ef=_0x3d3da1,_0x1843bf=[];if(!_0x58e025||!Array[_0x6bc0ef(0x24a)](_0x58e025))return _0x1843bf;const _0x1859a1=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':_0x6bc0ef(0x1c9),'tool':_0x6bc0ef(0x281)},{'pattern':/\[PATH ERROR\]/,'error_type':_0x6bc0ef(0x21a),'tool':'read'},{'pattern':/\[READ ERROR\]/,'error_type':_0x6bc0ef(0x249),'tool':_0x6bc0ef(0x281)},{'pattern':/\[UNREADABLE FILE\]/,'error_type':_0x6bc0ef(0x1f6),'tool':_0x6bc0ef(0x281)},{'pattern':/\[RIPGREP ERROR\]/,'error_type':_0x6bc0ef(0x23a),'tool':'grep'},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x6bc0ef(0x288),'tool':_0x6bc0ef(0x1f8)},{'pattern':/\[BINARY FILE\]/,'error_type':_0x6bc0ef(0x1f6),'tool':_0x6bc0ef(0x281)},{'pattern':/\[SYMLINK\]/,'error_type':_0x6bc0ef(0x245),'tool':_0x6bc0ef(0x281)},{'pattern':/not a text file/,'error_type':_0x6bc0ef(0x1f6),'tool':_0x6bc0ef(0x281)},{'pattern':/symbolic link/,'error_type':_0x6bc0ef(0x245),'tool':'read'},{'pattern':/Error reading file:/,'error_type':_0x6bc0ef(0x249),'tool':_0x6bc0ef(0x281)},{'pattern':/status="error"/,'error_type':'ToolException','tool':_0x6bc0ef(0x246)}];let _0x2573e0=0x0;for(const _0x27a8a8 of _0x58e025){_0x27a8a8['role']==='assistant'&&Array[_0x6bc0ef(0x24a)](_0x27a8a8[_0x6bc0ef(0x2a0)])&&_0x2573e0++;const _0x3d7fc1=_0x27a8a8[_0x6bc0ef(0x1d4)];if((_0x27a8a8[_0x6bc0ef(0x1e3)]===_0x6bc0ef(0x209)||_0x27a8a8[_0x6bc0ef(0x1e3)]===_0x6bc0ef(0x1c7))&&_0x3d7fc1&&typeof _0x3d7fc1==='string')for(const {pattern:_0x25876a,error_type:_0x230a05,tool:_0x1acac6}of _0x1859a1){const _0x5e12ad=_0x3d7fc1[_0x6bc0ef(0x1ce)](new RegExp(_0x25876a[_0x6bc0ef(0x1c8)],'g'));if(_0x5e12ad)for(const _0x1d53c6 of _0x5e12ad){const _0x583b23=_0x3d7fc1[_0x6bc0ef(0x22d)](_0x1d53c6),_0x420bac=_0x3d7fc1['substring'](_0x583b23,Math[_0x6bc0ef(0x287)](_0x583b23+0xc8,_0x3d7fc1[_0x6bc0ef(0x26f)]));_0x1843bf['push']({'tool':_0x1acac6,'error_type':_0x230a05,'error_message':_0x420bac[_0x6bc0ef(0x1e1)]('\x0a')[0x0],'turn':_0x2573e0});}}}return _0x1843bf;};try{const _0x1ed893=a0_0x1019ba['resolve'](_0xfdba71['data']['repo_path']),_0x1ec3f8=_0xfdba71[_0x3d3da1(0x267)][_0x3d3da1(0x206)],_0x588269=_0x1ec3f8===_0x3d3da1(0x224)?{'allowNames':['node_modules']}:undefined,_0x5fb040=new LocalRipgrepProvider(_0x1ed893,undefined,_0x588269),_0x224f6f=await runWarpGrep({'searchTerm':_0xfdba71[_0x3d3da1(0x267)]['search_string'],'repoRoot':_0x1ed893,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x5fb040,'search_type':_0x1ec3f8}),_0x1bb04b=_0x3699af(_0x224f6f[_0x3d3da1(0x2b3)]);_0x1bb04b[_0x3d3da1(0x26f)]>0x0&&reportMorphError({'error_message':'WarpGrep\x20sub-tool\x20errors:\x20'+_0x1bb04b['length']+'\x20error(s)','error_type':_0x3d3da1(0x1e9),'level':'warn','tool':_0x3d3da1(0x29c),'context':{'repo_path':_0xfdba71[_0x3d3da1(0x267)][_0x3d3da1(0x1e6)],'query':_0xfdba71['data'][_0x3d3da1(0x1d2)],'model':'morph-warp-grep-v2.1','termination_reason':_0x224f6f[_0x3d3da1(0x1d1)],'sub_tool_errors':_0x1bb04b,'timings':_0x224f6f[_0x3d3da1(0x1df)],'tool_calls':_0x21a1b7(_0x224f6f[_0x3d3da1(0x2b3)]),'messages':_0x224f6f['messages']?.['map'](_0x1885e5=>({'role':_0x1885e5[_0x3d3da1(0x1e3)],'content':_0x1885e5['content'],..._0x1885e5['tool_calls']?{'tool_calls':_0x1885e5[_0x3d3da1(0x2a0)][_0x3d3da1(0x26f)]}:{},..._0x1885e5[_0x3d3da1(0x26e)]?{'tool_call_id':_0x1885e5['tool_call_id']}:{}}))},'source':'mcp-filesystem'})[_0x3d3da1(0x2ae)](()=>{});let _0x2e13c8='';if(_0x224f6f[_0x3d3da1(0x1d1)]===_0x3d3da1(0x1bb)&&_0x224f6f[_0x3d3da1(0x1ca)]?.['metadata']?.['files']){const _0x4521ea=_0x224f6f[_0x3d3da1(0x1ca)][_0x3d3da1(0x254)][_0x3d3da1(0x24e)];if(_0x4521ea[_0x3d3da1(0x26f)]===0x0)return _0x2e13c8=_0x224f6f[_0x3d3da1(0x1ca)]['payload']||_0x3d3da1(0x210),{'content':[{'type':'text','text':_0x2e13c8}]};const _0xbc5746=[],_0x3a02aa=['Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:'];for(const _0x39876c of _0x224f6f[_0x3d3da1(0x2b3)]){if(_0x39876c[_0x3d3da1(0x1e3)]==='assistant'&&Array['isArray'](_0x39876c[_0x3d3da1(0x2a0)]))for(const _0x76b591 of _0x39876c['tool_calls']){try{const _0x357cf6=_0x76b591[_0x3d3da1(0x21c)]?.[_0x3d3da1(0x207)],_0x3fa033=JSON[_0x3d3da1(0x28f)](_0x76b591[_0x3d3da1(0x21c)]?.[_0x3d3da1(0x2b2)]||'{}');if(_0x357cf6===_0x3d3da1(0x1ee))_0x3a02aa[_0x3d3da1(0x1c2)](_0x3d3da1(0x27b)+_0x3fa033[_0x3d3da1(0x269)]+_0x3d3da1(0x229)+(_0x3fa033[_0x3d3da1(0x274)]||'.')+'`');else{if(_0x357cf6==='read')_0x3a02aa[_0x3d3da1(0x1c2)](_0x3d3da1(0x20a)+_0x3fa033['path']+'`');else{if(_0x357cf6===_0x3d3da1(0x1e8))_0x3a02aa[_0x3d3da1(0x1c2)](_0x3d3da1(0x1dd)+(_0x3fa033[_0x3d3da1(0x29e)]||'.')+'`');else _0x357cf6===_0x3d3da1(0x20b)&&_0x3a02aa[_0x3d3da1(0x1c2)](_0x3d3da1(0x290)+_0x3fa033[_0x3d3da1(0x269)]+_0x3d3da1(0x25d)+(_0x3fa033[_0x3d3da1(0x274)]||'.')+'`');}}}catch{}}}_0xbc5746['push'](_0x3a02aa['join']('\x0a'));const _0x594b88=['','Relevant\x20context\x20found:'];for(const _0x3a7405 of _0x4521ea){if(_0x3a7405[_0x3d3da1(0x23b)]==='*')_0x594b88['push']('-\x20'+_0x3a7405['path']+':*');else{if(Array[_0x3d3da1(0x24a)](_0x3a7405[_0x3d3da1(0x23b)])){const _0xa541a3=_0x3a7405['lines'][_0x3d3da1(0x1e4)](([_0x937a8f,_0x205f3f])=>{if(_0x937a8f===_0x205f3f)return''+_0x937a8f;return _0x937a8f+'-'+_0x205f3f;});_0x594b88[_0x3d3da1(0x1c2)]('-\x20'+_0x3a7405[_0x3d3da1(0x274)]+':'+_0xa541a3[_0x3d3da1(0x2a2)](','));}else _0x594b88[_0x3d3da1(0x1c2)]('-\x20'+_0x3a7405[_0x3d3da1(0x274)]+':*');}}_0x594b88[_0x3d3da1(0x1c2)](''),_0xbc5746[_0x3d3da1(0x1c2)](_0x594b88['join']('\x0a')),_0xbc5746['push'](_0x3d3da1(0x1e7));const _0x1adb7e=[],_0x4dbdaa=[];for(const _0x4a57eb of _0x4521ea){let _0x2242ec=a0_0x1019ba[_0x3d3da1(0x218)](_0xfdba71[_0x3d3da1(0x267)][_0x3d3da1(0x1e6)],_0x4a57eb['path']),_0x3a369a=null,_0x419175=null;try{_0x3a369a=await a0_0x4f58e2[_0x3d3da1(0x259)](_0x2242ec,{'encoding':_0x3d3da1(0x1d0)});}catch(_0x56440f){const _0x6ab03b=fixPathRepetition(_0x2242ec);if(_0x6ab03b)try{_0x3a369a=await a0_0x4f58e2['readFile'](_0x6ab03b,{'encoding':'utf-8'}),_0x2242ec=_0x6ab03b;}catch{_0x419175=_0x56440f instanceof Error?_0x56440f:new Error(String(_0x56440f));}else _0x419175=_0x56440f instanceof Error?_0x56440f:new Error(String(_0x56440f));}if(_0x3a369a!==null){const _0x464143=_0x3a369a['split'](/\r?\n/),_0x4e3159=[];if(_0x4a57eb[_0x3d3da1(0x23b)]==='*'||!Array[_0x3d3da1(0x24a)](_0x4a57eb[_0x3d3da1(0x23b)]))for(let _0x4b66de=0x1;_0x4b66de<=_0x464143[_0x3d3da1(0x26f)];_0x4b66de++){const _0x219d8e=_0x464143[_0x4b66de-0x1];_0x4e3159['push'](_0x4b66de+'|\x20'+_0x219d8e);}else for(const [_0x5883e1,_0x29b82a]of _0x4a57eb[_0x3d3da1(0x23b)]){_0x4e3159[_0x3d3da1(0x26f)]>0x0&&_0x4e3159['push']('');for(let _0x18446f=_0x5883e1;_0x18446f<=_0x29b82a&&_0x18446f<=_0x464143['length'];_0x18446f++){const _0x334a0a=_0x464143[_0x18446f-0x1];_0x4e3159['push'](_0x18446f+'|\x20'+_0x334a0a);}}_0x4dbdaa[_0x3d3da1(0x1c2)]({'path':_0x4a57eb[_0x3d3da1(0x274)],'content':_0x4e3159['join']('\x0a')});}else _0x1adb7e['push'](_0x3d3da1(0x22f)+_0x4a57eb[_0x3d3da1(0x274)]+'\x22>\x0aError\x20reading\x20file:\x20'+(_0x419175?.[_0x3d3da1(0x1bf)]||_0x3d3da1(0x1ff))+_0x3d3da1(0x265));}try{const _0x36713b=await compactFileContexts(_0x4dbdaa,_0xfdba71['data'][_0x3d3da1(0x1d2)],MORPH_API_KEY,MORPH_API_URL);for(const _0x390559 of _0x36713b){_0x1adb7e[_0x3d3da1(0x1c2)](_0x3d3da1(0x22f)+_0x390559[_0x3d3da1(0x274)]+'\x22>\x0a'+_0x390559['content']+_0x3d3da1(0x265));}}catch(_0x54f7bd){console[_0x3d3da1(0x1f2)](_0x3d3da1(0x1fe),_0x54f7bd);for(const _0x4af8ba of _0x4dbdaa){_0x1adb7e[_0x3d3da1(0x1c2)](_0x3d3da1(0x22f)+_0x4af8ba[_0x3d3da1(0x274)]+_0x3d3da1(0x24c)+_0x4af8ba[_0x3d3da1(0x1d4)]+'\x0a</file>');}}_0xbc5746[_0x3d3da1(0x1c2)](_0x1adb7e[_0x3d3da1(0x2a2)]('\x0a\x0a')),_0x2e13c8=_0xbc5746['join']('\x0a');const _0xed6de3=_0x224f6f[_0x3d3da1(0x2aa)]?.[_0x3d3da1(0x293)](_0x51f90c=>_0x51f90c[_0x3d3da1(0x1bf)]?.[_0x3d3da1(0x252)](_0x3d3da1(0x240)))||[];if(_0xed6de3[_0x3d3da1(0x26f)]>0x0){const _0x219d12=_0xed6de3[_0x3d3da1(0x1e4)](_0x319dc7=>_0x319dc7[_0x3d3da1(0x1bf)])[_0x3d3da1(0x2a2)](';\x20');reportMorphError({'error_message':_0x219d12,'error_type':'FileReadError','context':{'tool':_0x3d3da1(0x29c),'repo_path':_0xfdba71[_0x3d3da1(0x267)][_0x3d3da1(0x1e6)],'query':_0xfdba71[_0x3d3da1(0x267)][_0x3d3da1(0x1d2)],'model':_0x3d3da1(0x24d),'termination_reason':_0x3d3da1(0x1b7),'error_count':_0xed6de3['length'],'is_timeout':![],'timings':_0x224f6f[_0x3d3da1(0x1df)],'files_attempted':_0x4521ea['map'](_0x5c96cd=>({'path':_0x5c96cd[_0x3d3da1(0x274)],'lines':_0x5c96cd[_0x3d3da1(0x23b)]})),'tool_calls':_0x21a1b7(_0x224f6f[_0x3d3da1(0x2b3)]),'messages':_0x224f6f[_0x3d3da1(0x2b3)]?.[_0x3d3da1(0x1e4)](_0x3e6dfc=>({'role':_0x3e6dfc[_0x3d3da1(0x1e3)],'content':_0x3e6dfc[_0x3d3da1(0x1d4)],..._0x3e6dfc[_0x3d3da1(0x2a0)]?{'tool_calls':_0x3e6dfc['tool_calls'][_0x3d3da1(0x26f)]}:{},..._0x3e6dfc[_0x3d3da1(0x26e)]?{'tool_call_id':_0x3e6dfc[_0x3d3da1(0x26e)]}:{}})),'request_content':{'query':_0xfdba71[_0x3d3da1(0x267)][_0x3d3da1(0x1d2)],'repo_path':_0xfdba71[_0x3d3da1(0x267)][_0x3d3da1(0x1e6)],'repoRoot':a0_0x1019ba['resolve'](_0xfdba71[_0x3d3da1(0x267)]['repo_path']),'model':_0x3d3da1(0x24d)}},'source':'mcp-filesystem'})[_0x3d3da1(0x2ae)](()=>{});}}else{if(_0x224f6f['terminationReason']===_0x3d3da1(0x1e0)&&_0x224f6f[_0x3d3da1(0x2aa)][_0x3d3da1(0x26f)]>0x0){const _0x3fbe27=_0x224f6f[_0x3d3da1(0x2aa)][_0x3d3da1(0x1e4)](_0x24c4b9=>_0x24c4b9[_0x3d3da1(0x1bf)])[_0x3d3da1(0x2a2)](';\x20');_0x2e13c8=_0x3d3da1(0x26d)+_0x3fbe27;const _0x6ad26d=_0x3fbe27[_0x3d3da1(0x243)]()[_0x3d3da1(0x256)](_0x3d3da1(0x1f9))||_0x3fbe27[_0x3d3da1(0x243)]()[_0x3d3da1(0x256)](_0x3d3da1(0x2b7))||_0x3fbe27[_0x3d3da1(0x243)]()[_0x3d3da1(0x256)]('etimedout'),_0x421acf=_0x224f6f['finish']?.['metadata']?.['files'],_0x9c535e=_0x224f6f[_0x3d3da1(0x2aa)][0x0];reportMorphError({'error_message':_0x3fbe27,'error_type':_0x6ad26d?_0x3d3da1(0x1fd):_0x9c535e?.[_0x3d3da1(0x291)]?.[_0x3d3da1(0x207)]||_0x3d3da1(0x275),'context':{'tool':_0x3d3da1(0x29c),'repo_path':_0xfdba71['data']['repo_path'],'query':_0xfdba71['data'][_0x3d3da1(0x1d2)],'model':_0x3d3da1(0x24d),'termination_reason':_0x224f6f[_0x3d3da1(0x1d1)],'error_count':_0x224f6f[_0x3d3da1(0x2aa)][_0x3d3da1(0x26f)],'is_timeout':_0x6ad26d,'timings':_0x224f6f[_0x3d3da1(0x1df)],'files_attempted':_0x421acf?.[_0x3d3da1(0x1e4)](_0x30144f=>({'path':_0x30144f['path'],'lines':_0x30144f[_0x3d3da1(0x23b)]})),'tool_calls':_0x21a1b7(_0x224f6f[_0x3d3da1(0x2b3)]),'messages':_0x224f6f['messages']?.[_0x3d3da1(0x1e4)](_0x151ba1=>({'role':_0x151ba1[_0x3d3da1(0x1e3)],'content':_0x151ba1['content'],..._0x151ba1['tool_calls']?{'tool_calls':_0x151ba1[_0x3d3da1(0x2a0)][_0x3d3da1(0x26f)]}:{},..._0x151ba1['tool_call_id']?{'tool_call_id':_0x151ba1[_0x3d3da1(0x26e)]}:{}})),'request_content':{'query':_0xfdba71[_0x3d3da1(0x267)]['search_string'],'repo_path':_0xfdba71['data'][_0x3d3da1(0x1e6)],'repoRoot':a0_0x1019ba[_0x3d3da1(0x218)](_0xfdba71[_0x3d3da1(0x267)][_0x3d3da1(0x1e6)]),'model':_0x3d3da1(0x24d)}},'stack_trace':_0x9c535e?.[_0x3d3da1(0x24f)]||undefined,'source':_0x3d3da1(0x1c5)})[_0x3d3da1(0x2ae)](()=>{});}else _0x2e13c8=_0x3d3da1(0x25e);}return{'content':[{'type':_0x3d3da1(0x28b),'text':_0x2e13c8}]};}catch(_0x3cd5e9){const _0x1ad27d=_0x3cd5e9 instanceof Error?_0x3cd5e9[_0x3d3da1(0x1bf)]:String(_0x3cd5e9),_0x49c39a=_0x1ad27d[_0x3d3da1(0x243)]()['includes'](_0x3d3da1(0x1f9))||_0x1ad27d[_0x3d3da1(0x243)]()[_0x3d3da1(0x256)]('timed\x20out')||_0x1ad27d[_0x3d3da1(0x243)]()[_0x3d3da1(0x256)](_0x3d3da1(0x202))||_0x3cd5e9 instanceof Error&&_0x3cd5e9[_0x3d3da1(0x207)]===_0x3d3da1(0x1fd);return reportMorphError({'error_message':_0x1ad27d,'error_type':_0x49c39a?'TimeoutError':_0x3cd5e9 instanceof Error?_0x3cd5e9[_0x3d3da1(0x291)][_0x3d3da1(0x207)]:_0x3d3da1(0x1dc),'context':{'tool':'codebase_search','repo_path':_0xfdba71[_0x3d3da1(0x267)]['repo_path'],'query':_0xfdba71[_0x3d3da1(0x267)][_0x3d3da1(0x1d2)],'model':_0x3d3da1(0x24d),'is_timeout':_0x49c39a,'exception_phase':_0x3d3da1(0x23c),'request_content':{'query':_0xfdba71[_0x3d3da1(0x267)][_0x3d3da1(0x1d2)],'repo_path':_0xfdba71[_0x3d3da1(0x267)][_0x3d3da1(0x1e6)],'repoRoot':a0_0x1019ba[_0x3d3da1(0x218)](_0xfdba71[_0x3d3da1(0x267)][_0x3d3da1(0x1e6)]),'model':_0x3d3da1(0x24d)}},'stack_trace':_0x3cd5e9 instanceof Error?_0x3cd5e9[_0x3d3da1(0x24f)]:undefined,'source':_0x3d3da1(0x1c5)})['catch'](()=>{}),{'content':[{'type':'text','text':_0x3d3da1(0x2ad)+_0x1ad27d}],'isError':![]};}}case _0x3d3da1(0x22e):{const _0x3a4692=WarpGrepGitHubArgsSchema['safeParse'](_0x14ef62);if(!_0x3a4692[_0x3d3da1(0x220)])return{'content':[{'type':_0x3d3da1(0x28b),'text':'Invalid\x20arguments:\x20'+_0x3a4692[_0x3d3da1(0x1f2)]}],'isError':!![]};const _0x46b66c=_0x3a4692[_0x3d3da1(0x267)][_0x3d3da1(0x1cd)]||_0x3a4692['data'][_0x3d3da1(0x239)];if(!_0x46b66c)return{'content':[{'type':_0x3d3da1(0x28b),'text':_0x3d3da1(0x279)}],'isError':!![]};const _0x5fe8b4=MORPH_API_KEY;if(!_0x5fe8b4)throw new Error(_0x3d3da1(0x1f3));const _0x3d494b=Date[_0x3d3da1(0x283)]();logMcpStderr(_0x3d3da1(0x22a)+_0x46b66c+_0x3d3da1(0x251)+_0x3a4692['data']['search_string']+'\x22');try{const _0x4186d7=new WarpGrepClient({'morphApiKey':_0x5fe8b4,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0x2c45fe=await _0x4186d7['searchGitHub']({'searchTerm':_0x3a4692[_0x3d3da1(0x267)][_0x3d3da1(0x1d2)],'github':_0x46b66c,'branch':_0x3a4692['data'][_0x3d3da1(0x1da)]}),_0x5ac616=Date[_0x3d3da1(0x283)]()-_0x3d494b;logMcpStderr(_0x3d3da1(0x266)+_0x5ac616+_0x3d3da1(0x262)+_0x2c45fe[_0x3d3da1(0x220)]);const _0x3dba99=formatResult(_0x2c45fe);return{'content':[{'type':_0x3d3da1(0x28b),'text':_0x3dba99}]};}catch(_0x15c44c){const _0x443bb3=Date['now']()-_0x3d494b,_0x1efb14=_0x15c44c instanceof Error?_0x15c44c[_0x3d3da1(0x1bf)]:String(_0x15c44c);return logMcpStderr('[github_codebase_search]\x20Failed\x20in\x20'+_0x443bb3+_0x3d3da1(0x255),_0x1efb14),reportMorphError({'error_message':_0x1efb14,'error_type':_0x15c44c instanceof Error?_0x15c44c[_0x3d3da1(0x291)][_0x3d3da1(0x207)]:_0x3d3da1(0x1dc),'context':{'tool':_0x3d3da1(0x22e),'github_url':_0x46b66c,'search_string':_0x3a4692['data'][_0x3d3da1(0x1d2)],'branch':_0x3a4692[_0x3d3da1(0x267)][_0x3d3da1(0x1da)]},'stack_trace':_0x15c44c instanceof Error?_0x15c44c[_0x3d3da1(0x24f)]:undefined,'source':'mcp-filesystem','tool':_0x3d3da1(0x22e),'latency_ms':_0x443bb3})[_0x3d3da1(0x2ae)](()=>{}),{'content':[{'type':_0x3d3da1(0x28b),'text':_0x3d3da1(0x1b4)+_0x1efb14}],'isError':![]};}}default:throw new Error('Unknown\x20tool:\x20'+_0x13cd10);}}catch(_0x56e06f){const _0x2a1f04=_0x56e06f instanceof Error?_0x56e06f[_0x3d3da1(0x1bf)]:String(_0x56e06f);return reportMorphError({'error_message':_0x2a1f04,'error_type':_0x56e06f instanceof Error?_0x56e06f[_0x3d3da1(0x291)][_0x3d3da1(0x207)]:'UnknownError','context':{'tool':_0x13cd10,'arguments':_0x14ef62?JSON[_0x3d3da1(0x225)](_0x14ef62)[_0x3d3da1(0x261)](0x0,0x1f4):undefined,'mcp_server_version':'0.2.0'},'stack_trace':_0x56e06f instanceof Error?_0x56e06f[_0x3d3da1(0x24f)]:undefined,'source':'mcp-filesystem'})['catch'](()=>{}),{'content':[{'type':_0x3d3da1(0x28b),'text':'Error:\x20'+_0x2a1f04}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x2ad4c0){const _0x3794e5=a0_0x517431,_0x48877f=await getValidRootDirectories(_0x2ad4c0);if(_0x48877f[_0x3794e5(0x26f)]>0x0)allowedDirectories=[..._0x48877f],logMcpStderr(_0x3794e5(0x237)+_0x48877f['length']+_0x3794e5(0x1c3));else{logMcpStderr('No\x20valid\x20root\x20directories\x20provided\x20by\x20client');if(ENABLE_WORKSPACE_MODE)try{const _0x59f76a=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x59f76a&&(allowedDirectories=[_0x59f76a],logMcpStderr(_0x3794e5(0x21f)+_0x59f76a));}catch(_0x4c87e1){logMcpStderr('Warning:\x20Workspace\x20fallback\x20failed:\x20'+_0x4c87e1);}}}server[a0_0x517431(0x1b9)](RootsListChangedNotificationSchema,async()=>{const _0x3106ae=a0_0x517431;try{const _0x6bd4a4=await server[_0x3106ae(0x1ea)]();_0x6bd4a4&&_0x3106ae(0x203)in _0x6bd4a4&&await updateAllowedDirectoriesFromRoots(_0x6bd4a4[_0x3106ae(0x203)]);}catch(_0xaa184b){logMcpStderr('Failed\x20to\x20request\x20roots\x20from\x20client:',_0xaa184b instanceof Error?_0xaa184b[_0x3106ae(0x1bf)]:String(_0xaa184b));}}),server[a0_0x517431(0x1c6)]=async()=>{const _0x433a3c=a0_0x517431,_0x404264=server[_0x433a3c(0x257)]();if(_0x404264?.[_0x433a3c(0x203)])try{const _0x504160=await server[_0x433a3c(0x1ea)]();_0x504160&&_0x433a3c(0x203)in _0x504160?await updateAllowedDirectoriesFromRoots(_0x504160['roots']):logMcpStderr(_0x433a3c(0x26b));}catch(_0x2021e6){logMcpStderr(_0x433a3c(0x1b5),_0x2021e6 instanceof Error?_0x2021e6[_0x433a3c(0x1bf)]:String(_0x2021e6));}else{if(allowedDirectories[_0x433a3c(0x26f)]>0x0)logMcpStderr('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:',allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)logMcpStderr(_0x433a3c(0x295));else throw new Error('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.');}}};async function runServer(){const _0x3e5982=a0_0x517431,_0x3aa490=new StdioServerTransport();await server[_0x3e5982(0x222)](_0x3aa490),logMcpStderr(_0x3e5982(0x260)),allowedDirectories[_0x3e5982(0x26f)]===0x0&&logMcpStderr(_0x3e5982(0x1ec));}runServer()[a0_0x517431(0x2ae)](_0x23518d=>{const _0x2d2fcb=a0_0x517431;logMcpStderr('Fatal\x20error\x20running\x20server:',_0x23518d),process[_0x2d2fcb(0x1fb)](0x1);});
2
+ const a0_0x58d244=a0_0x1e7e;function a0_0x1e7e(_0x3bb576,_0x318c1){_0x3bb576=_0x3bb576-0x8f;const _0x2fc3e1=a0_0x2fc3();let _0x1e7e1f=_0x2fc3e1[_0x3bb576];return _0x1e7e1f;}(function(_0x47259a,_0x19bddf){const _0x763b23=a0_0x1e7e,_0x100571=_0x47259a();while(!![]){try{const _0x40831f=parseInt(_0x763b23(0x10d))/0x1+-parseInt(_0x763b23(0x9b))/0x2+-parseInt(_0x763b23(0xd4))/0x3*(-parseInt(_0x763b23(0x111))/0x4)+parseInt(_0x763b23(0x109))/0x5+parseInt(_0x763b23(0xbd))/0x6+parseInt(_0x763b23(0xcc))/0x7+-parseInt(_0x763b23(0x15c))/0x8;if(_0x40831f===_0x19bddf)break;else _0x100571['push'](_0x100571['shift']());}catch(_0x4d9c95){_0x100571['push'](_0x100571['shift']());}}}(a0_0x2fc3,0x9ad32));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_0x3291b6 from'fs/promises';import a0_0x422565 from'path';function a0_0x2fc3(){const _0x4cdda5=['PathError','finish','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','join','codebase_search','roots','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','unknown','code','stack','instructions','Cargo.toml','glob','package.json','Max\x20results\x20to\x20return','metadata','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','timings','lines','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','log','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','setNotificationHandler','Error:\x20','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','dryRun','.git','filter','-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a','Please\x20provide\x20github\x20search\x20url\x20or\x20owner/repo\x20id','terminationReason','terminated','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','-\x20Read\x20file\x20`','[could\x20not\x20read\x20file:\x20','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','0.2.0','etimedout','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','463390wgeHlP','isArray','tool_call_id','ms.\x20Success:\x20','morph-warp-grep-v2.1','File\x20read\x20error:','listRoots','MORPH_API_URL','\x20chars)','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','errors','DISABLED_TOOLS','Failed\x20to\x20read\x20file:\x20','stat','\x0a</file>','includes','-\x20Glob\x20search\x20`','code_edit','\x20valid\x20directories','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','match','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','morph-','\x0a...\x20(truncated,\x20total:\x20','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','boolean','SubToolError','FileNotFound','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','inputSchema','No\x20Morph\x20API\x20key\x20configured.\x20Please\x20visit\x20https://morphllm.com\x20to\x20get\x20an\x20API\x20key,\x20then\x20set\x20MORPH_API_KEY\x20in\x20your\x20MCP\x20configuration.','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','slice','stringify','4977918aErekT','min','sk-','string','\x22\x20is\x20disabled\x20via\x20DISABLED_TOOLS\x20environment\x20variable','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','message','composer.json','exit','runWarpGrep_call','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','timeout','[github_codebase_search]\x20Searching\x20','connect','Preview\x20changes\x20without\x20applying\x20them.','4698225pqRGJH','arguments','map','-\x20Listed\x20directory\x20`','ToolException','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.','argv','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','9QesjKk','toLowerCase','files','basename','.cursor','GitHub\x20search\x20failed:\x20','user','completionId','isDirectory','github_codebase_search','assistant','\x22>\x0aError\x20reading\x20file:\x20','split','now','data','optional','glob\x20\x27','UnknownError','timed\x20out','Unknown\x20tool:\x20','resolve','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','edit_file','completed','morph-mcp','\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo','\x0aOptions:','\x20for:\x20\x22','push',',\x20modified\x20','object','\x20(new\x20file)','branch','Error\x20accessing\x20directory\x20','For\x20deletions:\x0a','--version','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','describe','every','ms:','\x20disabled\x20via\x20DISABLED_TOOLS','length','completed_with_file_errors','ENOENT','false','payload','Specific\x20commit\x20hash\x20to\x20search','has','mcp-filesystem','error','dirname','Created\x20File','array','3448755ecHrxs','Warning:\x20','access','startsWith','883600qWrwyO','\x0aExamples:','linesRemoved','BinaryFile','1000508viRYJR','Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)','params','morph-v3-fast','normalize','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','Unknown\x20error','.vscode','FileReadError','function','repo_path','requiresApiKey','sep','readFile','[github_codebase_search]\x20Done\x20in\x20','Invalid\x20arguments:\x20','getClientCapabilities','@morphllm/morphmcp\x20','Repository\x20identifier','warn','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','.\x20Changes:\x20','\x22.\x20Known\x20tools:\x20','path','-\x20Grepped\x20\x27','context','substring','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','Relevant\x20context\x20found:','.\x20Path:\x20','pattern','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.','messages','SymlinkError','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.','read','list_directory\x20','source','default','linesAdded','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.','--api-key','Disabled\x20tools:\x20','size','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','\x22>\x0a','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','Tool\x20','<file\x20path=\x22','WarpGrepError','safeParse','version','response','[codebase_search]\x20compaction\x20failed','added\x20','search_type','Morph\x20Edit\x20Preview','utf-8','grep\x20\x27','ENABLE_WORKSPACE_MODE','search_string','content','unknown\x20error','all','number','text','realpath','post','owner_repo','Warning:\x20Workspace\x20fallback\x20failed:\x20','ReadError','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','node_modules','name','23669624eLCppq','status','changes','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','\x20as\x20allowed\x20directory','\x27\x20in\x20`','success','env','MORPH_API_KEY','grep','homedir','PWD','catch','list_directory','TimeoutError','\x20-\x20','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','Search\x20type\x20hint.\x20Use\x20\x27node_modules\x27\x20when\x20searching\x20inside\x20node_modules\x20or\x20other\x20dependency\x20directories\x20that\x20are\x20normally\x20excluded.','api-key','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','Fatal\x20error\x20running\x20server:','RipgrepError','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','trim','instruction','Fallback:\x20Using\x20workspace\x20root\x20','Parent\x20directory\x20does\x20not\x20exist:\x20','\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)','constructor','role','MORPH_WARP_GREP_TIMEOUT','Rules:\x0a','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','\x20\x20morph-mcp','command','grep_search','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','tool_calls','RipgrepNotAvailable','Benefits:\x0a'];a0_0x2fc3=function(){return _0x4cdda5;};return a0_0x2fc3();}import a0_0x919b4c from'os';import{createRequire}from'module';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';import{getOperatingSystemType,logMcpStderr}from'./log-utils.js';import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider,GITHUB_SEARCH_TOOL_NAME,GITHUB_SEARCH_DESCRIPTION}from'@morphllm/morphsdk/tools/warp-grep';import{WarpGrepClient,formatResult}from'@morphllm/morphsdk/tools/warp-grep/client';import{compactFileContexts}from'@morphllm/morphsdk/tools/compact';import a0_0x3307ea from'axios';function fixPathRepetition(_0x561c70){const _0x6154a3=a0_0x1e7e,_0x1fec15=_0x561c70['split'](a0_0x422565['sep'])[_0x6154a3(0x8f)](Boolean);if(_0x1fec15[_0x6154a3(0xfd)]<0x2)return null;for(let _0x386dc2=Math['floor'](_0x1fec15['length']/0x2);_0x386dc2>=0x1;_0x386dc2--){for(let _0x171060=0x0;_0x171060<=_0x1fec15['length']-0x2*_0x386dc2;_0x171060++){const _0x967978=_0x1fec15[_0x6154a3(0xbb)](_0x171060,_0x171060+_0x386dc2),_0x5a36c1=_0x1fec15[_0x6154a3(0xbb)](_0x171060+_0x386dc2,_0x171060+0x2*_0x386dc2);if(_0x967978[_0x6154a3(0xfa)]((_0x58cac8,_0x202a95)=>_0x58cac8===_0x5a36c1[_0x202a95])){const _0xbdffe9=[..._0x1fec15[_0x6154a3(0xbb)](0x0,_0x171060),..._0x1fec15[_0x6154a3(0xbb)](_0x171060+_0x386dc2)];return a0_0x422565[_0x6154a3(0x11d)]+_0xbdffe9['join'](a0_0x422565[_0x6154a3(0x11d)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x744dc2=a0_0x1e7e;try{const _0x91c930=require('../package.json');return _0x91c930[_0x744dc2(0x145)]??_0x744dc2(0x18e);}catch(_0x3fc366){return logMcpStderr(_0x744dc2(0x19f),_0x3fc366),_0x744dc2(0x18e);}}function printHelp(){const _0x1fcb4d=a0_0x1e7e;console[_0x1fcb4d(0x19b)]('@morphllm/morphmcp\x20'+getPackageVersion()),console[_0x1fcb4d(0x19b)](_0x1fcb4d(0xb7)),console[_0x1fcb4d(0x19b)](_0x1fcb4d(0xee)),console['log'](_0x1fcb4d(0x178)),console[_0x1fcb4d(0x19b)](_0x1fcb4d(0x97)),console[_0x1fcb4d(0x19b)]('\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit'),console[_0x1fcb4d(0x19b)](_0x1fcb4d(0x10e)),console[_0x1fcb4d(0x19b)](_0x1fcb4d(0x17f)),console[_0x1fcb4d(0x19b)](_0x1fcb4d(0xed));}const cliArgs=process[a0_0x58d244(0xd2)][a0_0x58d244(0xbb)](0x2),VERSION_FLAGS=new Set([a0_0x58d244(0xf7),'-v','-V']),HELP_FLAGS=new Set(['--help','-h']);cliArgs['some'](_0x4f0d79=>VERSION_FLAGS[a0_0x58d244(0x103)](_0x4f0d79))&&(console[a0_0x58d244(0x19b)](a0_0x58d244(0x122)+getPackageVersion()),process[a0_0x58d244(0xc5)](0x0));cliArgs['some'](_0x13e55d=>HELP_FLAGS[a0_0x58d244(0x103)](_0x13e55d))&&(printHelp(),process[a0_0x58d244(0xc5)](0x0));function getCliArg(_0x2c35d3){const _0xbaf47b=a0_0x58d244;for(let _0x1e7402=0x0;_0x1e7402<cliArgs[_0xbaf47b(0xfd)];_0x1e7402++){const _0x3a9c0a=cliArgs[_0x1e7402];if(_0x3a9c0a[_0xbaf47b(0x10c)]('--'+_0x2c35d3+'='))return _0x3a9c0a[_0xbaf47b(0xbb)](('--'+_0x2c35d3+'=')[_0xbaf47b(0xfd)]);if(_0x3a9c0a==='--'+_0x2c35d3&&_0x1e7402+0x1<cliArgs['length'])return cliArgs[_0x1e7402+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs[a0_0x58d244(0xfd)];i++){const arg=cliArgs[i];if(VERSION_FLAGS[a0_0x58d244(0x103)](arg)||HELP_FLAGS[a0_0x58d244(0x103)](arg))continue;if(arg[a0_0x58d244(0x10c)]('--api-key='))continue;if(arg===a0_0x58d244(0x13a)){i++;continue;}args['push'](arg);}const WORKSPACE_ROOT=process[a0_0x58d244(0x163)]['WORKSPACE_ROOT']||process[a0_0x58d244(0x163)][a0_0x58d244(0x167)]||process['cwd'](),ENABLE_WORKSPACE_MODE=process[a0_0x58d244(0x163)][a0_0x58d244(0x14d)]!==a0_0x58d244(0x100),MORPH_API_KEY=getCliArg(a0_0x58d244(0x16e))??process['env'][a0_0x58d244(0x164)],MORPH_API_URL=process[a0_0x58d244(0x163)][a0_0x58d244(0xa2)],MORPH_WARP_GREP_TIMEOUT=process[a0_0x58d244(0x163)][a0_0x58d244(0x17b)]?parseInt(process[a0_0x58d244(0x163)][a0_0x58d244(0x17b)],0xa):undefined,OPERATING_SYSTEM_TYPE=getOperatingSystemType(),KNOWN_TOOL_NAMES=new Set([a0_0x58d244(0xea),a0_0x58d244(0x18b),a0_0x58d244(0xdd)]),DISABLED_TOOLS=process['env'][a0_0x58d244(0xa6)]?new Set(process[a0_0x58d244(0x163)][a0_0x58d244(0xa6)][a0_0x58d244(0xe0)](',')[a0_0x58d244(0xce)](_0xd4e900=>_0xd4e900[a0_0x58d244(0x174)]())[a0_0x58d244(0x8f)](_0x2a2609=>_0x2a2609[a0_0x58d244(0xfd)]>0x0)):new Set();if(DISABLED_TOOLS[a0_0x58d244(0x13c)]>0x0){for(const tool of DISABLED_TOOLS){!KNOWN_TOOL_NAMES[a0_0x58d244(0x103)](tool)&&console[a0_0x58d244(0x105)]('Warning:\x20DISABLED_TOOLS\x20contains\x20unknown\x20tool\x20\x22'+tool+a0_0x58d244(0x127)+[...KNOWN_TOOL_NAMES]['join'](',\x20'));}console['error'](a0_0x58d244(0x13b)+[...DISABLED_TOOLS]['join'](',\x20'));}MORPH_API_KEY&&!MORPH_API_KEY[a0_0x58d244(0x10c)](a0_0x58d244(0xbf))&&!MORPH_API_KEY['startsWith'](a0_0x58d244(0xb1))&&logMcpStderr('Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27');async function reportMorphError(_0x150a6d){const _0x4cbb97=a0_0x58d244;try{await a0_0x3307ea[_0x4cbb97(0x155)]('https://morphllm.com/api/error-report',{..._0x150a6d,'timestamp':new Date()['toISOString'](),'source':_0x150a6d[_0x4cbb97(0x136)]||_0x4cbb97(0x104),'os_type':OPERATING_SYSTEM_TYPE,'context':{'os_type':OPERATING_SYSTEM_TYPE,..._0x150a6d[_0x4cbb97(0x12a)]}},{'timeout':0x1388,'headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+MORPH_API_KEY}});}catch{}}function extractStatusCode(_0x492191,_0x4bbb7c){const _0x24a734=a0_0x58d244;if(_0x492191&&typeof _0x492191===_0x24a734(0xf2)&&_0x24a734(0x15d)in _0x492191)return _0x492191[_0x24a734(0x15d)];if(_0x492191&&typeof _0x492191===_0x24a734(0xf2)&&_0x24a734(0x146)in _0x492191)return _0x492191['response']?.[_0x24a734(0x15d)];const _0x48474b=_0x4bbb7c[_0x24a734(0xaf)](/\b(401|429)\b/);return _0x48474b?parseInt(_0x48474b[0x1],0xa):null;}function handleMorphAPIError(_0x27d078){const _0x3a92bc=a0_0x58d244,_0x213796=_0x27d078 instanceof Error?_0x27d078[_0x3a92bc(0xc3)]:String(_0x27d078),_0x412e98=extractStatusCode(_0x27d078,_0x213796);switch(_0x412e98){case 0x191:return{'content':[{'type':_0x3a92bc(0x153),'text':'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.'}],'isError':!![]};case 0x1ad:return{'content':[{'type':_0x3a92bc(0x153),'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['length']===0x0&&!ENABLE_WORKSPACE_MODE&&(logMcpStderr(a0_0x58d244(0xa4)),logMcpStderr('Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:'),logMcpStderr(a0_0x58d244(0xf8)),logMcpStderr(a0_0x58d244(0x94)),logMcpStderr(a0_0x58d244(0xc7)),logMcpStderr('At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.'));function normalizePath(_0x8320e5){const _0x2dcec9=a0_0x58d244;return a0_0x422565[_0x2dcec9(0x115)](_0x8320e5);}function expandHome(_0x4bbba9){const _0xcedcc7=a0_0x58d244;if(_0x4bbba9[_0xcedcc7(0x10c)]('~/')||_0x4bbba9==='~')return a0_0x422565[_0xcedcc7(0x18a)](a0_0x919b4c[_0xcedcc7(0x166)](),_0x4bbba9[_0xcedcc7(0xbb)](0x1));return _0x4bbba9;}let allowedDirectories=await Promise[a0_0x58d244(0x151)](args['map'](async _0x511660=>{const _0x23ec53=a0_0x58d244,_0x1ca69f=expandHome(_0x511660),_0x464fa8=a0_0x422565[_0x23ec53(0xe8)](_0x1ca69f);try{const _0x3b9e1a=await a0_0x3291b6[_0x23ec53(0x154)](_0x464fa8);return normalizePath(_0x3b9e1a);}catch(_0x1fd363){return normalizePath(_0x464fa8);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x58d244(0xfd)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x58d244(0xf0)](workspaceDir),logMcpStderr('Workspace\x20mode\x20enabled:\x20Using\x20'+workspaceDir+a0_0x58d244(0x160)));}catch(a0_0x3a9f94){logMcpStderr('Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20'+a0_0x3a9f94);}async function detectWorkspaceRoot(_0x4d79fe){const _0x5eaee3=a0_0x58d244;let _0x30762b=a0_0x422565[_0x5eaee3(0xe8)](_0x4d79fe);const _0x2be16f=[_0x5eaee3(0x1a1),_0x5eaee3(0x118),_0x5eaee3(0x194),_0x5eaee3(0x192),'pyproject.toml','go.mod',_0x5eaee3(0xd8),'tsconfig.json',_0x5eaee3(0xc4)];while(_0x30762b!==a0_0x422565[_0x5eaee3(0x106)](_0x30762b)){for(const _0x184edc of _0x2be16f){const _0x218113=a0_0x422565['join'](_0x30762b,_0x184edc);try{return await a0_0x3291b6[_0x5eaee3(0x10b)](_0x218113),normalizePath(_0x30762b);}catch{}}_0x30762b=a0_0x422565['dirname'](_0x30762b);}return normalizePath(_0x4d79fe);}await Promise[a0_0x58d244(0x151)](args[a0_0x58d244(0xce)](async _0x1fe39e=>{const _0x3bd5b0=a0_0x58d244;try{const _0x8c52bb=await a0_0x3291b6[_0x3bd5b0(0xa8)](expandHome(_0x1fe39e));!_0x8c52bb[_0x3bd5b0(0xdc)]()&&(logMcpStderr(_0x3bd5b0(0x19e)+_0x1fe39e+'\x20is\x20not\x20a\x20directory'),process[_0x3bd5b0(0xc5)](0x1));}catch(_0x142350){logMcpStderr(_0x3bd5b0(0xf5)+_0x1fe39e+':',_0x142350),process[_0x3bd5b0(0xc5)](0x1);}}));async function validatePath(_0x1ddd1c){const _0x5eb44d=a0_0x58d244,_0x28ac38=expandHome(_0x1ddd1c),_0x4aacfd=a0_0x422565['resolve'](_0x28ac38);try{const _0x5f303d=await a0_0x3291b6[_0x5eb44d(0x154)](_0x4aacfd);return _0x5f303d;}catch(_0x40db6f){if(_0x40db6f[_0x5eb44d(0x18f)]===_0x5eb44d(0xff)){const _0x443fb5=a0_0x422565[_0x5eb44d(0x106)](_0x4aacfd);try{const _0x524d72=await a0_0x3291b6[_0x5eb44d(0x154)](_0x443fb5);return a0_0x422565['join'](_0x524d72,a0_0x422565[_0x5eb44d(0xd7)](_0x4aacfd));}catch{throw new Error(_0x5eb44d(0x177)+_0x443fb5);}}throw _0x40db6f;}}const MorphEditFileArgsSchema=z[a0_0x58d244(0xf2)]({'path':z[a0_0x58d244(0xc0)](),'code_edit':z['string']()[a0_0x58d244(0xf9)](a0_0x58d244(0x16c)),'instruction':z['string']()[a0_0x58d244(0xf9)]('A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.'),'dryRun':z[a0_0x58d244(0xb4)]()[a0_0x58d244(0x137)](![])['describe'](a0_0x58d244(0xcb))}),CODEBASE_SEARCH_QUERY_DESCRIPTION=a0_0x58d244(0x130),WarpGrepArgsSchema=z[a0_0x58d244(0xf2)]({'search_string':z[a0_0x58d244(0xc0)]()[a0_0x58d244(0xf9)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repo_path':z['string']()[a0_0x58d244(0xf9)](a0_0x58d244(0x19a)),'search_type':z['enum'](['default',a0_0x58d244(0x15a)])[a0_0x58d244(0xe3)]()[a0_0x58d244(0xf9)](a0_0x58d244(0x16d))}),WarpGrepGitHubArgsSchema=z[a0_0x58d244(0xf2)]({'search_string':z[a0_0x58d244(0xc0)]()[a0_0x58d244(0xf9)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'github_url':z[a0_0x58d244(0xc0)]()['optional']()[a0_0x58d244(0xf9)](a0_0x58d244(0x139)),'owner_repo':z[a0_0x58d244(0xc0)]()[a0_0x58d244(0xe3)]()[a0_0x58d244(0xf9)]('Repository\x20owner/repo\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.'),'branch':z[a0_0x58d244(0xc0)]()[a0_0x58d244(0xe3)]()[a0_0x58d244(0xf9)](a0_0x58d244(0x112))}),CodebaseSearchArgsSchema=z['object']({'query':z[a0_0x58d244(0xc0)]()[a0_0x58d244(0xf9)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repoId':z[a0_0x58d244(0xc0)]()['describe'](a0_0x58d244(0x123)),'branch':z[a0_0x58d244(0xc0)]()[a0_0x58d244(0xe3)]()['describe'](a0_0x58d244(0x15f)),'commitHash':z['string']()[a0_0x58d244(0xe3)]()[a0_0x58d244(0xf9)](a0_0x58d244(0x102)),'targetDirectories':z[a0_0x58d244(0x108)](z[a0_0x58d244(0xc0)]())[a0_0x58d244(0x137)]([])[a0_0x58d244(0xf9)](a0_0x58d244(0xba)),'limit':z[a0_0x58d244(0x152)]()[a0_0x58d244(0xe3)]()[a0_0x58d244(0x137)](0xa)[a0_0x58d244(0xf9)](a0_0x58d244(0x195))}),server=new Server({'name':a0_0x58d244(0xec),'version':a0_0x58d244(0x98)},{'capabilities':{'tools':{}}});server['setRequestHandler'](ListToolsRequestSchema,async()=>{const _0x9c4778=a0_0x58d244,_0x2fd43d=[{'name':'edit_file','description':'**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a'+'⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a'+_0x9c4778(0x125)+_0x9c4778(0x17d)+_0x9c4778(0x185)+_0x9c4778(0xc2)+_0x9c4778(0x172)+'-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a'+_0x9c4778(0x159)+_0x9c4778(0x9a)+_0x9c4778(0x173)+_0x9c4778(0x13d)+_0x9c4778(0xf6)+_0x9c4778(0x182)+_0x9c4778(0x90)+_0x9c4778(0x17c)+'-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a'+'-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a'+_0x9c4778(0x18d)+_0x9c4778(0x17e)+_0x9c4778(0xb0)+_0x9c4778(0x16f)+_0x9c4778(0x19c),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':_0x9c4778(0x18b),'description':_0x9c4778(0x12c)+CODEBASE_SEARCH_QUERY_DESCRIPTION+'\x20'+_0x9c4778(0x13f)+_0x9c4778(0x140)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':GITHUB_SEARCH_TOOL_NAME,'description':GITHUB_SEARCH_DESCRIPTION,'inputSchema':zodToJsonSchema(WarpGrepGitHubArgsSchema),'requiresApiKey':!![]}],_0xe67bef=_0x2fd43d['filter'](_0x1e9a53=>{const _0x3b6ffd=_0x9c4778;if(DISABLED_TOOLS[_0x3b6ffd(0x103)](_0x1e9a53[_0x3b6ffd(0x15b)]))return console['error'](_0x3b6ffd(0x141)+_0x1e9a53[_0x3b6ffd(0x15b)]+_0x3b6ffd(0xfc)),![];if('requiresApiKey'in _0x1e9a53&&_0x1e9a53[_0x3b6ffd(0x11c)]&&!MORPH_API_KEY)return logMcpStderr('Warning:\x20'+_0x1e9a53[_0x3b6ffd(0x15b)]+_0x3b6ffd(0xe9)),![];return!![];});return{'tools':_0xe67bef[_0x9c4778(0xce)](_0x153b75=>({'name':_0x153b75['name'],'description':_0x153b75['description'],'inputSchema':_0x153b75[_0x9c4778(0xb8)]}))};}),server['setRequestHandler'](CallToolRequestSchema,async _0x343900=>{const _0x104df9=a0_0x58d244,{name:_0x19b1b6,arguments:_0x4ce01a}=_0x343900[_0x104df9(0x113)];try{if(!MORPH_API_KEY)return{'content':[{'type':_0x104df9(0x153),'text':_0x104df9(0xb9)}],'isError':!![]};if(!MORPH_API_KEY[_0x104df9(0x10c)](_0x104df9(0xbf))&&!MORPH_API_KEY['startsWith'](_0x104df9(0xb1)))return{'content':[{'type':_0x104df9(0x153),'text':_0x104df9(0x133)}],'isError':!![]};if(DISABLED_TOOLS[_0x104df9(0x103)](_0x19b1b6))throw new Error('Tool\x20\x22'+_0x19b1b6+_0x104df9(0xc1));switch(_0x19b1b6){case _0x104df9(0xea):{const _0x32761f=_0x4ce01a&&typeof _0x4ce01a===_0x104df9(0xf2)&&_0x104df9(0x191)in _0x4ce01a&&!(_0x104df9(0x175)in _0x4ce01a)?{..._0x4ce01a,'instruction':_0x4ce01a['instructions'],'instructions':undefined}:_0x4ce01a,_0x3980b8=MorphEditFileArgsSchema[_0x104df9(0x144)](_0x32761f);if(!_0x3980b8['success'])throw new Error(_0x104df9(0x188)+_0x3980b8['error']);const _0x6cee4f=await validatePath(_0x3980b8[_0x104df9(0xe2)][_0x104df9(0x128)]);let _0x2abe60=null,_0x4976c2=!![],_0x55cf83=null;try{_0x2abe60=await a0_0x3291b6[_0x104df9(0x11e)](_0x6cee4f,_0x104df9(0x14b));}catch(_0x5e56b0){const _0x82f577=_0x5e56b0[_0x104df9(0x18f)];_0x82f577==='ENOENT'?(_0x4976c2=![],_0x2abe60=''):(_0x55cf83=_0x104df9(0xa7)+(_0x82f577||_0x104df9(0x18e))+_0x104df9(0x16b)+(_0x5e56b0 instanceof Error?_0x5e56b0[_0x104df9(0xc3)]:String(_0x5e56b0)),logMcpStderr(_0x104df9(0x10a)+_0x55cf83));}let _0x1cdb2b;try{const _0x24b60a=MORPH_API_KEY;if(!_0x24b60a)throw new Error('MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.');const _0x42816b=a0_0x422565[_0x104df9(0x106)](_0x6cee4f),_0x3d00c7=a0_0x422565[_0x104df9(0xd7)](_0x6cee4f),_0x1d308b=await executeEditFile({'target_filepath':_0x3d00c7,'code_edit':_0x3980b8[_0x104df9(0xe2)][_0x104df9(0xac)],'instruction':_0x3980b8[_0x104df9(0xe2)][_0x104df9(0x175)]},{'morphApiKey':_0x24b60a,'morphApiUrl':MORPH_API_URL,'baseDir':_0x42816b,'autoWrite':!_0x3980b8[_0x104df9(0xe2)][_0x104df9(0x1a0)],'generateUdiff':![],'debug':![]});_0x1cdb2b=_0x1d308b[_0x104df9(0xdb)];if(!_0x1d308b[_0x104df9(0x162)])throw new Error(_0x1d308b[_0x104df9(0x105)]||'Morph\x20FastApply\x20failed\x20without\x20error\x20message');const _0xa21516=_0x1d308b[_0x104df9(0x15e)],_0xfbe5f3=_0x104df9(0x148)+_0xa21516[_0x104df9(0x138)]+',\x20removed\x20'+_0xa21516[_0x104df9(0x10f)]+_0x104df9(0xf1)+_0xa21516['linesModified'];if(_0x3980b8[_0x104df9(0xe2)]['dryRun'])return{'content':[{'type':_0x104df9(0x153),'text':_0x104df9(0x14a)+(_0x4976c2?'':_0x104df9(0xf3))+':\x20'+_0x3980b8[_0x104df9(0xe2)][_0x104df9(0x175)]+_0x104df9(0x126)+_0xfbe5f3+_0x104df9(0x12e)+_0x3980b8[_0x104df9(0xe2)][_0x104df9(0x128)]+'.'}]};return{'content':[{'type':_0x104df9(0x153),'text':'Morph\x20Edit\x20'+(_0x4976c2?'Applied':_0x104df9(0x107))+':\x20'+_0x3980b8[_0x104df9(0xe2)]['instruction']+_0x104df9(0x126)+_0xfbe5f3+_0x104df9(0x12e)+_0x3980b8[_0x104df9(0xe2)][_0x104df9(0x128)]+'.'}]};}catch(_0x2d31dd){const _0x52a1c1=handleMorphAPIError(_0x2d31dd);if(_0x52a1c1)return _0x52a1c1;const _0x56762d=_0x2d31dd instanceof Error?_0x2d31dd['message']:String(_0x2d31dd);return reportMorphError({'error_message':_0x56762d,'error_type':_0x2d31dd instanceof Error?_0x2d31dd['constructor'][_0x104df9(0x15b)]:_0x104df9(0xe5),'context':{'tool':'edit_file','completion_id':_0x1cdb2b,'file_path':_0x3980b8[_0x104df9(0xe2)][_0x104df9(0x128)],'validated_path':_0x6cee4f,'instruction':_0x3980b8[_0x104df9(0xe2)][_0x104df9(0x175)],'model':_0x104df9(0x114),'dry_run':_0x3980b8['data']['dryRun'],'file_exists':_0x4976c2,'file_read_error':_0x55cf83,'file_readable':_0x2abe60!==null,'request_content':{'path':_0x3980b8[_0x104df9(0xe2)]['path'],'code_edit':_0x3980b8[_0x104df9(0xe2)][_0x104df9(0xac)],'instruction':_0x3980b8[_0x104df9(0xe2)]['instruction'],'original_code':_0x2abe60!==null?_0x2abe60[_0x104df9(0xfd)]>0xc350?_0x2abe60['substring'](0x0,0xc350)+_0x104df9(0xb2)+_0x2abe60['length']+_0x104df9(0xa3):_0x2abe60:_0x104df9(0x96)+(_0x55cf83||_0x104df9(0x150))+']','original_code_length':_0x2abe60?.[_0x104df9(0xfd)]??0x0,'model':_0x104df9(0x114),'dry_run':_0x3980b8[_0x104df9(0xe2)][_0x104df9(0x1a0)]}},'stack_trace':_0x2d31dd instanceof Error?_0x2d31dd[_0x104df9(0x190)]:undefined,'source':_0x104df9(0x104)})[_0x104df9(0x168)](()=>{}),{'content':[{'type':_0x104df9(0x153),'text':'❌\x20Morph\x20Edit\x20Failed:\x20'+_0x56762d}],'isError':!![]};}}case _0x104df9(0x18b):{const _0x90dc19=WarpGrepArgsSchema[_0x104df9(0x144)](_0x4ce01a);if(!_0x90dc19[_0x104df9(0x162)])return{'content':[{'type':_0x104df9(0x153),'text':_0x104df9(0x120)+_0x90dc19[_0x104df9(0x105)]}],'isError':!![]};const _0x77631b=_0x510f81=>{const _0x3b5cbd=_0x104df9,_0x2abf3b=[];for(const _0x5313e1 of _0x510f81||[]){if(_0x5313e1[_0x3b5cbd(0x17a)]==='assistant'&&Array['isArray'](_0x5313e1[_0x3b5cbd(0x183)]))for(const _0x1c01c6 of _0x5313e1[_0x3b5cbd(0x183)]){try{const _0x4871d0=_0x1c01c6[_0x3b5cbd(0x11a)]?.[_0x3b5cbd(0x15b)],_0x16739f=JSON['parse'](_0x1c01c6['function']?.[_0x3b5cbd(0xcd)]||'{}');if(_0x4871d0===_0x3b5cbd(0x181))_0x2abf3b[_0x3b5cbd(0xf0)](_0x3b5cbd(0x14c)+_0x16739f['pattern']+'\x27\x20'+(_0x16739f['path']||'.'));else{if(_0x4871d0===_0x3b5cbd(0x134))_0x2abf3b['push']('read\x20'+_0x16739f[_0x3b5cbd(0x128)]);else{if(_0x4871d0===_0x3b5cbd(0x169))_0x2abf3b[_0x3b5cbd(0xf0)](_0x3b5cbd(0x135)+(_0x16739f[_0x3b5cbd(0x180)]||'.'));else{if(_0x4871d0===_0x3b5cbd(0x193))_0x2abf3b[_0x3b5cbd(0xf0)](_0x3b5cbd(0xe4)+_0x16739f[_0x3b5cbd(0x12f)]+'\x27\x20'+(_0x16739f['path']||'.'));else _0x4871d0===_0x3b5cbd(0x187)&&_0x2abf3b[_0x3b5cbd(0xf0)](_0x3b5cbd(0x187));}}}}catch{}}}return _0x2abf3b;},_0x146410=_0x48d4e3=>{const _0x1164e1=_0x104df9,_0x3e667e=[];if(!_0x48d4e3||!Array[_0x1164e1(0x9c)](_0x48d4e3))return _0x3e667e;const _0x5c672c=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':_0x1164e1(0xb6),'tool':_0x1164e1(0x134)},{'pattern':/\[PATH ERROR\]/,'error_type':_0x1164e1(0x186),'tool':_0x1164e1(0x134)},{'pattern':/\[READ ERROR\]/,'error_type':_0x1164e1(0x158),'tool':_0x1164e1(0x134)},{'pattern':/\[UNREADABLE FILE\]/,'error_type':_0x1164e1(0x110),'tool':_0x1164e1(0x134)},{'pattern':/\[RIPGREP ERROR\]/,'error_type':_0x1164e1(0x171),'tool':_0x1164e1(0x165)},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x1164e1(0x184),'tool':_0x1164e1(0x165)},{'pattern':/\[BINARY FILE\]/,'error_type':_0x1164e1(0x110),'tool':_0x1164e1(0x134)},{'pattern':/\[SYMLINK\]/,'error_type':_0x1164e1(0x132),'tool':_0x1164e1(0x134)},{'pattern':/not a text file/,'error_type':_0x1164e1(0x110),'tool':_0x1164e1(0x134)},{'pattern':/symbolic link/,'error_type':_0x1164e1(0x132),'tool':'read'},{'pattern':/Error reading file:/,'error_type':_0x1164e1(0x158),'tool':_0x1164e1(0x134)},{'pattern':/status="error"/,'error_type':_0x1164e1(0xd0),'tool':'unknown'}];let _0x17ea5e=0x0;for(const _0xf8656d of _0x48d4e3){_0xf8656d[_0x1164e1(0x17a)]===_0x1164e1(0xde)&&Array[_0x1164e1(0x9c)](_0xf8656d['tool_calls'])&&_0x17ea5e++;const _0x10cd4a=_0xf8656d['content'];if((_0xf8656d[_0x1164e1(0x17a)]==='tool'||_0xf8656d['role']===_0x1164e1(0xda))&&_0x10cd4a&&typeof _0x10cd4a===_0x1164e1(0xc0))for(const {pattern:_0x281809,error_type:_0xbb8f0a,tool:_0x51f8ac}of _0x5c672c){const _0x4b17fb=_0x10cd4a[_0x1164e1(0xaf)](new RegExp(_0x281809[_0x1164e1(0x136)],'g'));if(_0x4b17fb)for(const _0x3ee394 of _0x4b17fb){const _0x2b9a76=_0x10cd4a['indexOf'](_0x3ee394),_0x3b3a10=_0x10cd4a[_0x1164e1(0x12b)](_0x2b9a76,Math[_0x1164e1(0xbe)](_0x2b9a76+0xc8,_0x10cd4a[_0x1164e1(0xfd)]));_0x3e667e['push']({'tool':_0x51f8ac,'error_type':_0xbb8f0a,'error_message':_0x3b3a10[_0x1164e1(0xe0)]('\x0a')[0x0],'turn':_0x17ea5e});}}}return _0x3e667e;};try{const _0x2540ed=a0_0x422565[_0x104df9(0xe8)](_0x90dc19[_0x104df9(0xe2)][_0x104df9(0x11b)]),_0x53f6a5=_0x90dc19[_0x104df9(0xe2)][_0x104df9(0x149)],_0x2f5835=_0x53f6a5==='node_modules'?{'allowNames':[_0x104df9(0x15a)]}:undefined,_0x29c93c=new LocalRipgrepProvider(_0x2540ed,undefined,_0x2f5835),_0x59b3e2=await runWarpGrep({'searchTerm':_0x90dc19['data'][_0x104df9(0x14e)],'repoRoot':_0x2540ed,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x29c93c,'search_type':_0x53f6a5}),_0x453d8e=_0x146410(_0x59b3e2[_0x104df9(0x131)]);_0x453d8e[_0x104df9(0xfd)]>0x0&&reportMorphError({'error_message':'WarpGrep\x20sub-tool\x20errors:\x20'+_0x453d8e[_0x104df9(0xfd)]+'\x20error(s)','error_type':_0x104df9(0xb5),'level':_0x104df9(0x124),'tool':'codebase_search','context':{'repo_path':_0x90dc19[_0x104df9(0xe2)][_0x104df9(0x11b)],'query':_0x90dc19[_0x104df9(0xe2)][_0x104df9(0x14e)],'model':'morph-warp-grep-v2.1','termination_reason':_0x59b3e2['terminationReason'],'sub_tool_errors':_0x453d8e,'timings':_0x59b3e2[_0x104df9(0x198)],'tool_calls':_0x77631b(_0x59b3e2[_0x104df9(0x131)]),'messages':_0x59b3e2[_0x104df9(0x131)]?.[_0x104df9(0xce)](_0x359657=>({'role':_0x359657['role'],'content':_0x359657[_0x104df9(0x14f)],..._0x359657[_0x104df9(0x183)]?{'tool_calls':_0x359657['tool_calls']['length']}:{},..._0x359657['tool_call_id']?{'tool_call_id':_0x359657[_0x104df9(0x9d)]}:{}}))},'source':_0x104df9(0x104)})['catch'](()=>{});let _0x80d10b='';if(_0x59b3e2[_0x104df9(0x92)]===_0x104df9(0xeb)&&_0x59b3e2[_0x104df9(0x187)]?.[_0x104df9(0x196)]?.[_0x104df9(0xd6)]){const _0x573264=_0x59b3e2[_0x104df9(0x187)][_0x104df9(0x196)]['files'];if(_0x573264[_0x104df9(0xfd)]===0x0)return _0x80d10b=_0x59b3e2['finish'][_0x104df9(0x101)]||'No\x20relevant\x20code\x20found\x20for\x20the\x20query.',{'content':[{'type':_0x104df9(0x153),'text':_0x80d10b}]};const _0x4a5db8=[],_0xced7fa=['Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:'];for(const _0x123850 of _0x59b3e2[_0x104df9(0x131)]){if(_0x123850[_0x104df9(0x17a)]===_0x104df9(0xde)&&Array['isArray'](_0x123850[_0x104df9(0x183)]))for(const _0x56dc64 of _0x123850[_0x104df9(0x183)]){try{const _0x354cc8=_0x56dc64[_0x104df9(0x11a)]?.['name'],_0x501cbf=JSON['parse'](_0x56dc64['function']?.[_0x104df9(0xcd)]||'{}');if(_0x354cc8===_0x104df9(0x181))_0xced7fa[_0x104df9(0xf0)](_0x104df9(0x129)+_0x501cbf['pattern']+_0x104df9(0x161)+(_0x501cbf['path']||'.')+'`');else{if(_0x354cc8===_0x104df9(0x134))_0xced7fa[_0x104df9(0xf0)](_0x104df9(0x95)+_0x501cbf[_0x104df9(0x128)]+'`');else{if(_0x354cc8===_0x104df9(0x169))_0xced7fa['push'](_0x104df9(0xcf)+(_0x501cbf['command']||'.')+'`');else _0x354cc8===_0x104df9(0x193)&&_0xced7fa[_0x104df9(0xf0)](_0x104df9(0xab)+_0x501cbf[_0x104df9(0x12f)]+'`\x20in\x20`'+(_0x501cbf['path']||'.')+'`');}}}catch{}}}_0x4a5db8[_0x104df9(0xf0)](_0xced7fa[_0x104df9(0x18a)]('\x0a'));const _0x1d5c89=['',_0x104df9(0x12d)];for(const _0x40fd32 of _0x573264){if(_0x40fd32[_0x104df9(0x199)]==='*')_0x1d5c89[_0x104df9(0xf0)]('-\x20'+_0x40fd32[_0x104df9(0x128)]+':*');else{if(Array['isArray'](_0x40fd32[_0x104df9(0x199)])){const _0x2bced2=_0x40fd32[_0x104df9(0x199)][_0x104df9(0xce)](([_0x1ab220,_0x21b28c])=>{if(_0x1ab220===_0x21b28c)return''+_0x1ab220;return _0x1ab220+'-'+_0x21b28c;});_0x1d5c89[_0x104df9(0xf0)]('-\x20'+_0x40fd32[_0x104df9(0x128)]+':'+_0x2bced2[_0x104df9(0x18a)](','));}else _0x1d5c89['push']('-\x20'+_0x40fd32[_0x104df9(0x128)]+':*');}}_0x1d5c89['push'](''),_0x4a5db8['push'](_0x1d5c89[_0x104df9(0x18a)]('\x0a')),_0x4a5db8[_0x104df9(0xf0)]('Here\x20is\x20the\x20content\x20of\x20files:\x0a');const _0x2e27e9=[],_0x3adc90=[];for(const _0xce3396 of _0x573264){let _0x18af74=a0_0x422565[_0x104df9(0xe8)](_0x90dc19['data'][_0x104df9(0x11b)],_0xce3396[_0x104df9(0x128)]),_0x329da1=null,_0x328771=null;try{_0x329da1=await a0_0x3291b6[_0x104df9(0x11e)](_0x18af74,{'encoding':_0x104df9(0x14b)});}catch(_0x529774){const _0x31115d=fixPathRepetition(_0x18af74);if(_0x31115d)try{_0x329da1=await a0_0x3291b6[_0x104df9(0x11e)](_0x31115d,{'encoding':_0x104df9(0x14b)}),_0x18af74=_0x31115d;}catch{_0x328771=_0x529774 instanceof Error?_0x529774:new Error(String(_0x529774));}else _0x328771=_0x529774 instanceof Error?_0x529774:new Error(String(_0x529774));}if(_0x329da1!==null){const _0x3ad603=_0x329da1['split'](/\r?\n/),_0x45fece=[];if(_0xce3396['lines']==='*'||!Array[_0x104df9(0x9c)](_0xce3396[_0x104df9(0x199)]))for(let _0x3d822a=0x1;_0x3d822a<=_0x3ad603[_0x104df9(0xfd)];_0x3d822a++){const _0x1897f0=_0x3ad603[_0x3d822a-0x1];_0x45fece[_0x104df9(0xf0)](_0x3d822a+'|\x20'+_0x1897f0);}else for(const [_0x45bac4,_0x2f0d92]of _0xce3396[_0x104df9(0x199)]){_0x45fece[_0x104df9(0xfd)]>0x0&&_0x45fece['push']('');for(let _0x355639=_0x45bac4;_0x355639<=_0x2f0d92&&_0x355639<=_0x3ad603[_0x104df9(0xfd)];_0x355639++){const _0x57d842=_0x3ad603[_0x355639-0x1];_0x45fece[_0x104df9(0xf0)](_0x355639+'|\x20'+_0x57d842);}}_0x3adc90[_0x104df9(0xf0)]({'path':_0xce3396[_0x104df9(0x128)],'content':_0x45fece['join']('\x0a')});}else _0x2e27e9[_0x104df9(0xf0)](_0x104df9(0x142)+_0xce3396[_0x104df9(0x128)]+_0x104df9(0xdf)+(_0x328771?.[_0x104df9(0xc3)]||_0x104df9(0x117))+_0x104df9(0xa9));}try{const _0xdb5887=await compactFileContexts(_0x3adc90,_0x90dc19[_0x104df9(0xe2)][_0x104df9(0x14e)],MORPH_API_KEY,MORPH_API_URL);for(const _0x242b85 of _0xdb5887){_0x2e27e9[_0x104df9(0xf0)](_0x104df9(0x142)+_0x242b85[_0x104df9(0x128)]+'\x22>\x0a'+_0x242b85[_0x104df9(0x14f)]+_0x104df9(0xa9));}}catch(_0x5797b7){console[_0x104df9(0x105)](_0x104df9(0x147),_0x5797b7);for(const _0x1c7ad2 of _0x3adc90){_0x2e27e9[_0x104df9(0xf0)](_0x104df9(0x142)+_0x1c7ad2[_0x104df9(0x128)]+_0x104df9(0x13e)+_0x1c7ad2[_0x104df9(0x14f)]+_0x104df9(0xa9));}}_0x4a5db8[_0x104df9(0xf0)](_0x2e27e9[_0x104df9(0x18a)]('\x0a\x0a')),_0x80d10b=_0x4a5db8[_0x104df9(0x18a)]('\x0a');const _0x2c6fa9=_0x59b3e2['errors']?.['filter'](_0x23deee=>_0x23deee[_0x104df9(0xc3)]?.[_0x104df9(0x10c)](_0x104df9(0xa0)))||[];if(_0x2c6fa9['length']>0x0){const _0x17c229=_0x2c6fa9[_0x104df9(0xce)](_0x46cf89=>_0x46cf89['message'])[_0x104df9(0x18a)](';\x20');reportMorphError({'error_message':_0x17c229,'error_type':_0x104df9(0x119),'context':{'tool':_0x104df9(0x18b),'repo_path':_0x90dc19[_0x104df9(0xe2)][_0x104df9(0x11b)],'query':_0x90dc19[_0x104df9(0xe2)]['search_string'],'model':_0x104df9(0x9f),'termination_reason':_0x104df9(0xfe),'error_count':_0x2c6fa9[_0x104df9(0xfd)],'is_timeout':![],'timings':_0x59b3e2['timings'],'files_attempted':_0x573264[_0x104df9(0xce)](_0x4f5ada=>({'path':_0x4f5ada[_0x104df9(0x128)],'lines':_0x4f5ada[_0x104df9(0x199)]})),'tool_calls':_0x77631b(_0x59b3e2[_0x104df9(0x131)]),'messages':_0x59b3e2[_0x104df9(0x131)]?.[_0x104df9(0xce)](_0x446e32=>({'role':_0x446e32[_0x104df9(0x17a)],'content':_0x446e32[_0x104df9(0x14f)],..._0x446e32[_0x104df9(0x183)]?{'tool_calls':_0x446e32['tool_calls'][_0x104df9(0xfd)]}:{},..._0x446e32[_0x104df9(0x9d)]?{'tool_call_id':_0x446e32['tool_call_id']}:{}})),'request_content':{'query':_0x90dc19[_0x104df9(0xe2)]['search_string'],'repo_path':_0x90dc19[_0x104df9(0xe2)][_0x104df9(0x11b)],'repoRoot':a0_0x422565[_0x104df9(0xe8)](_0x90dc19[_0x104df9(0xe2)]['repo_path']),'model':_0x104df9(0x9f)}},'source':_0x104df9(0x104)})[_0x104df9(0x168)](()=>{});}}else{if(_0x59b3e2[_0x104df9(0x92)]===_0x104df9(0x93)&&_0x59b3e2['errors'][_0x104df9(0xfd)]>0x0){const _0x21a3b0=_0x59b3e2[_0x104df9(0xa5)][_0x104df9(0xce)](_0x5f1cba=>_0x5f1cba['message'])[_0x104df9(0x18a)](';\x20');_0x80d10b=_0x104df9(0x19e)+_0x21a3b0;const _0x14d9e9=_0x21a3b0[_0x104df9(0xd5)]()[_0x104df9(0xaa)](_0x104df9(0xc8))||_0x21a3b0[_0x104df9(0xd5)]()[_0x104df9(0xaa)](_0x104df9(0xe6))||_0x21a3b0['toLowerCase']()[_0x104df9(0xaa)]('etimedout'),_0x413e40=_0x59b3e2[_0x104df9(0x187)]?.['metadata']?.[_0x104df9(0xd6)],_0xa5a2e7=_0x59b3e2['errors'][0x0];reportMorphError({'error_message':_0x21a3b0,'error_type':_0x14d9e9?_0x104df9(0x16a):_0xa5a2e7?.[_0x104df9(0x179)]?.[_0x104df9(0x15b)]||_0x104df9(0x143),'context':{'tool':_0x104df9(0x18b),'repo_path':_0x90dc19['data'][_0x104df9(0x11b)],'query':_0x90dc19['data'][_0x104df9(0x14e)],'model':_0x104df9(0x9f),'termination_reason':_0x59b3e2[_0x104df9(0x92)],'error_count':_0x59b3e2[_0x104df9(0xa5)][_0x104df9(0xfd)],'is_timeout':_0x14d9e9,'timings':_0x59b3e2['timings'],'files_attempted':_0x413e40?.[_0x104df9(0xce)](_0x564bd1=>({'path':_0x564bd1['path'],'lines':_0x564bd1[_0x104df9(0x199)]})),'tool_calls':_0x77631b(_0x59b3e2[_0x104df9(0x131)]),'messages':_0x59b3e2[_0x104df9(0x131)]?.[_0x104df9(0xce)](_0x3a8d77=>({'role':_0x3a8d77[_0x104df9(0x17a)],'content':_0x3a8d77[_0x104df9(0x14f)],..._0x3a8d77[_0x104df9(0x183)]?{'tool_calls':_0x3a8d77[_0x104df9(0x183)][_0x104df9(0xfd)]}:{},..._0x3a8d77[_0x104df9(0x9d)]?{'tool_call_id':_0x3a8d77['tool_call_id']}:{}})),'request_content':{'query':_0x90dc19[_0x104df9(0xe2)][_0x104df9(0x14e)],'repo_path':_0x90dc19[_0x104df9(0xe2)][_0x104df9(0x11b)],'repoRoot':a0_0x422565[_0x104df9(0xe8)](_0x90dc19[_0x104df9(0xe2)][_0x104df9(0x11b)]),'model':_0x104df9(0x9f)}},'stack_trace':_0xa5a2e7?.[_0x104df9(0x190)]||undefined,'source':_0x104df9(0x104)})[_0x104df9(0x168)](()=>{});}else _0x80d10b=_0x104df9(0x189);}return{'content':[{'type':'text','text':_0x80d10b}]};}catch(_0x1008de){const _0x3fb76d=handleMorphAPIError(_0x1008de);if(_0x3fb76d)return _0x3fb76d;const _0x517069=_0x1008de instanceof Error?_0x1008de[_0x104df9(0xc3)]:String(_0x1008de),_0x32a5b6=_0x517069['toLowerCase']()[_0x104df9(0xaa)]('timeout')||_0x517069[_0x104df9(0xd5)]()[_0x104df9(0xaa)](_0x104df9(0xe6))||_0x517069[_0x104df9(0xd5)]()[_0x104df9(0xaa)](_0x104df9(0x99))||_0x1008de instanceof Error&&_0x1008de[_0x104df9(0x15b)]===_0x104df9(0x16a);return reportMorphError({'error_message':_0x517069,'error_type':_0x32a5b6?'TimeoutError':_0x1008de instanceof Error?_0x1008de[_0x104df9(0x179)][_0x104df9(0x15b)]:_0x104df9(0xe5),'context':{'tool':_0x104df9(0x18b),'repo_path':_0x90dc19[_0x104df9(0xe2)][_0x104df9(0x11b)],'query':_0x90dc19['data'][_0x104df9(0x14e)],'model':_0x104df9(0x9f),'is_timeout':_0x32a5b6,'exception_phase':_0x104df9(0xc6),'request_content':{'query':_0x90dc19[_0x104df9(0xe2)][_0x104df9(0x14e)],'repo_path':_0x90dc19[_0x104df9(0xe2)][_0x104df9(0x11b)],'repoRoot':a0_0x422565['resolve'](_0x90dc19[_0x104df9(0xe2)][_0x104df9(0x11b)]),'model':'morph-warp-grep-v2.1'}},'stack_trace':_0x1008de instanceof Error?_0x1008de[_0x104df9(0x190)]:undefined,'source':'mcp-filesystem'})[_0x104df9(0x168)](()=>{}),{'content':[{'type':'text','text':'Error\x20running\x20fast\x20context\x20search:\x20'+_0x517069}],'isError':![]};}}case _0x104df9(0xdd):{const _0x497eb4=WarpGrepGitHubArgsSchema['safeParse'](_0x4ce01a);if(!_0x497eb4[_0x104df9(0x162)])return{'content':[{'type':_0x104df9(0x153),'text':_0x104df9(0x120)+_0x497eb4[_0x104df9(0x105)]}],'isError':!![]};const _0x5f2cf2=_0x497eb4[_0x104df9(0xe2)]['github_url']||_0x497eb4['data'][_0x104df9(0x156)];if(!_0x5f2cf2)return{'content':[{'type':'text','text':_0x104df9(0x91)}],'isError':!![]};const _0x4b428c=MORPH_API_KEY;if(!_0x4b428c)throw new Error(_0x104df9(0x116));const _0x4c10a0=Date[_0x104df9(0xe1)]();logMcpStderr(_0x104df9(0xc9)+_0x5f2cf2+_0x104df9(0xef)+_0x497eb4[_0x104df9(0xe2)]['search_string']+'\x22');try{const _0x475ca1=new WarpGrepClient({'morphApiKey':_0x4b428c,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0xe68d58=await _0x475ca1['searchGitHub']({'searchTerm':_0x497eb4['data'][_0x104df9(0x14e)],'github':_0x5f2cf2,'branch':_0x497eb4[_0x104df9(0xe2)][_0x104df9(0xf4)]}),_0x39600d=Date[_0x104df9(0xe1)]()-_0x4c10a0;logMcpStderr(_0x104df9(0x11f)+_0x39600d+_0x104df9(0x9e)+_0xe68d58[_0x104df9(0x162)]);const _0x2782d2=formatResult(_0xe68d58);return{'content':[{'type':_0x104df9(0x153),'text':_0x2782d2}]};}catch(_0x32f47a){const _0x21b05a=handleMorphAPIError(_0x32f47a);if(_0x21b05a)return _0x21b05a;const _0x593d93=Date[_0x104df9(0xe1)]()-_0x4c10a0,_0x47ebdf=_0x32f47a instanceof Error?_0x32f47a['message']:String(_0x32f47a);return logMcpStderr('[github_codebase_search]\x20Failed\x20in\x20'+_0x593d93+_0x104df9(0xfb),_0x47ebdf),reportMorphError({'error_message':_0x47ebdf,'error_type':_0x32f47a instanceof Error?_0x32f47a['constructor'][_0x104df9(0x15b)]:_0x104df9(0xe5),'context':{'tool':_0x104df9(0xdd),'github_url':_0x5f2cf2,'search_string':_0x497eb4[_0x104df9(0xe2)][_0x104df9(0x14e)],'branch':_0x497eb4['data']['branch']},'stack_trace':_0x32f47a instanceof Error?_0x32f47a[_0x104df9(0x190)]:undefined,'source':_0x104df9(0x104),'tool':_0x104df9(0xdd),'latency_ms':_0x593d93})['catch'](()=>{}),{'content':[{'type':_0x104df9(0x153),'text':_0x104df9(0xd9)+_0x47ebdf}],'isError':![]};}}default:throw new Error(_0x104df9(0xe7)+_0x19b1b6);}}catch(_0x3606dc){const _0x25005d=_0x3606dc instanceof Error?_0x3606dc[_0x104df9(0xc3)]:String(_0x3606dc);return reportMorphError({'error_message':_0x25005d,'error_type':_0x3606dc instanceof Error?_0x3606dc[_0x104df9(0x179)][_0x104df9(0x15b)]:_0x104df9(0xe5),'context':{'tool':_0x19b1b6,'arguments':_0x4ce01a?JSON[_0x104df9(0xbc)](_0x4ce01a)[_0x104df9(0x12b)](0x0,0x1f4):undefined,'mcp_server_version':'0.2.0'},'stack_trace':_0x3606dc instanceof Error?_0x3606dc[_0x104df9(0x190)]:undefined,'source':_0x104df9(0x104)})[_0x104df9(0x168)](()=>{}),{'content':[{'type':'text','text':_0x104df9(0x19e)+_0x25005d}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x556b4e){const _0x1d38e6=a0_0x58d244,_0x513836=await getValidRootDirectories(_0x556b4e);if(_0x513836[_0x1d38e6(0xfd)]>0x0)allowedDirectories=[..._0x513836],logMcpStderr('Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20'+_0x513836[_0x1d38e6(0xfd)]+_0x1d38e6(0xad));else{logMcpStderr(_0x1d38e6(0x197));if(ENABLE_WORKSPACE_MODE)try{const _0x56f5f0=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x56f5f0&&(allowedDirectories=[_0x56f5f0],logMcpStderr(_0x1d38e6(0x176)+_0x56f5f0));}catch(_0x512cb4){logMcpStderr(_0x1d38e6(0x157)+_0x512cb4);}}}server[a0_0x58d244(0x19d)](RootsListChangedNotificationSchema,async()=>{const _0x5300e7=a0_0x58d244;try{const _0x2f22dd=await server[_0x5300e7(0xa1)]();_0x2f22dd&&_0x5300e7(0x18c)in _0x2f22dd&&await updateAllowedDirectoriesFromRoots(_0x2f22dd['roots']);}catch(_0x2d0661){logMcpStderr('Failed\x20to\x20request\x20roots\x20from\x20client:',_0x2d0661 instanceof Error?_0x2d0661[_0x5300e7(0xc3)]:String(_0x2d0661));}}),server['oninitialized']=async()=>{const _0x40959c=a0_0x58d244,_0x7c52ce=server[_0x40959c(0x121)]();if(_0x7c52ce?.[_0x40959c(0x18c)])try{const _0x44faec=await server[_0x40959c(0xa1)]();_0x44faec&&'roots'in _0x44faec?await updateAllowedDirectoriesFromRoots(_0x44faec[_0x40959c(0x18c)]):logMcpStderr(_0x40959c(0xd3));}catch(_0x374f59){logMcpStderr('Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:',_0x374f59 instanceof Error?_0x374f59[_0x40959c(0xc3)]:String(_0x374f59));}else{if(allowedDirectories['length']>0x0)logMcpStderr('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:',allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)logMcpStderr('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode');else throw new Error(_0x40959c(0xd1));}}};async function runServer(){const _0x2fafca=a0_0x58d244,_0x1c6e3e=new StdioServerTransport();await server[_0x2fafca(0xca)](_0x1c6e3e),logMcpStderr(_0x2fafca(0xb3)),allowedDirectories[_0x2fafca(0xfd)]===0x0&&logMcpStderr(_0x2fafca(0xae));}runServer()['catch'](_0x4bc091=>{const _0x27c893=a0_0x58d244;logMcpStderr(_0x27c893(0x170),_0x4bc091),process[_0x27c893(0xc5)](0x1);});
package/dist/log-utils.js CHANGED
@@ -1 +1 @@
1
- var a1_0x39bd60=a1_0x2069;(function(_0x43b83f,_0x55c28e){var _0x41bcfe=a1_0x2069,_0x525c05=_0x43b83f();while(!![]){try{var _0x10fea0=-parseInt(_0x41bcfe(0x1c3))/0x1+parseInt(_0x41bcfe(0x1b8))/0x2+parseInt(_0x41bcfe(0x1bf))/0x3+-parseInt(_0x41bcfe(0x1b6))/0x4*(-parseInt(_0x41bcfe(0x1b4))/0x5)+parseInt(_0x41bcfe(0x1b9))/0x6*(parseInt(_0x41bcfe(0x1c4))/0x7)+-parseInt(_0x41bcfe(0x1c5))/0x8+-parseInt(_0x41bcfe(0x1b7))/0x9*(-parseInt(_0x41bcfe(0x1bd))/0xa);if(_0x10fea0===_0x55c28e)break;else _0x525c05['push'](_0x525c05['shift']());}catch(_0x248e1a){_0x525c05['push'](_0x525c05['shift']());}}}(a1_0x4623,0xcbec2));import a1_0x144e61 from'os';function a1_0x4623(){var _0x32e009=['3298385GngYKh','Windows','4bAeMZh','403209Zkzxfq','1807968BjeGAz','906kfOZNj','[os=','Linux','macOS','50JzQGQj','platform','938634RDGIaY','darwin','linux','win32','895743uQxGFN','25879NRgbMQ','7422256jhtPlG'];a1_0x4623=function(){return _0x32e009;};return a1_0x4623();}export function getOperatingSystemType(_0x250322=a1_0x144e61[a1_0x39bd60(0x1be)]()){var _0x2accd9=a1_0x39bd60;switch(_0x250322){case _0x2accd9(0x1c0):return _0x2accd9(0x1bc);case _0x2accd9(0x1c2):return _0x2accd9(0x1b5);case _0x2accd9(0x1c1):return _0x2accd9(0x1bb);default:return'Unknown';}}function a1_0x2069(_0x19edda,_0xd8023b){_0x19edda=_0x19edda-0x1b4;var _0x4623d7=a1_0x4623();var _0x2069c5=_0x4623d7[_0x19edda];return _0x2069c5;}export function formatMcpLogMessage(_0xf8a175,_0x5c027b=a1_0x144e61[a1_0x39bd60(0x1be)]()){var _0x36bcf8=a1_0x39bd60;return _0x36bcf8(0x1ba)+getOperatingSystemType(_0x5c027b)+']\x20'+_0xf8a175;}export function logMcpStderr(_0x1b1a34,..._0xfda2b9){console['error'](formatMcpLogMessage(_0x1b1a34),..._0xfda2b9);}
1
+ var a1_0x2924ee=a1_0x11be;(function(_0x3941e1,_0xb516e){var _0x1e4f21=a1_0x11be,_0x4f970d=_0x3941e1();while(!![]){try{var _0x519906=parseInt(_0x1e4f21(0xd0))/0x1+-parseInt(_0x1e4f21(0xc3))/0x2+-parseInt(_0x1e4f21(0xc9))/0x3+parseInt(_0x1e4f21(0xcc))/0x4*(-parseInt(_0x1e4f21(0xc4))/0x5)+-parseInt(_0x1e4f21(0xce))/0x6+parseInt(_0x1e4f21(0xca))/0x7+parseInt(_0x1e4f21(0xc2))/0x8;if(_0x519906===_0xb516e)break;else _0x4f970d['push'](_0x4f970d['shift']());}catch(_0x1f1bec){_0x4f970d['push'](_0x4f970d['shift']());}}}(a1_0x1c4e,0x882c7));import a1_0x3b085a from'os';function a1_0x11be(_0x14bdcd,_0x168f0e){_0x14bdcd=_0x14bdcd-0xc1;var _0x1c4eb3=a1_0x1c4e();var _0x11be78=_0x1c4eb3[_0x14bdcd];return _0x11be78;}export function getOperatingSystemType(_0x335845=a1_0x3b085a['platform']()){var _0x193dcb=a1_0x11be;switch(_0x335845){case _0x193dcb(0xc6):return'macOS';case _0x193dcb(0xc7):return _0x193dcb(0xcd);case _0x193dcb(0xc1):return'Linux';default:return _0x193dcb(0xc8);}}export function formatMcpLogMessage(_0x1f7163,_0x2d9012=a1_0x3b085a[a1_0x2924ee(0xcb)]()){var _0x3f41a5=a1_0x2924ee;return _0x3f41a5(0xcf)+getOperatingSystemType(_0x2d9012)+']\x20'+_0x1f7163;}function a1_0x1c4e(){var _0x12e96b=['445216ZYRidc','316086dIFFhn','92035FMXHdh','error','darwin','win32','Unknown','901539HvuzWg','5510330UtQJzp','platform','60fKEtFP','Windows','2846028lFpNUI','[os=','923924IWMauV','linux'];a1_0x1c4e=function(){return _0x12e96b;};return a1_0x1c4e();}export function logMcpStderr(_0x510265,..._0x79e694){var _0x246e7e=a1_0x2924ee;console[_0x246e7e(0xc5)](formatMcpLogMessage(_0x510265),..._0x79e694);}
@@ -1 +1 @@
1
- (function(_0x463d7e,_0x5b3800){const _0x53a037=a2_0x5047,_0x13e8f3=_0x463d7e();while(!![]){try{const _0x16125b=parseInt(_0x53a037(0x1fa))/0x1+parseInt(_0x53a037(0x1f9))/0x2+parseInt(_0x53a037(0x1ed))/0x3+parseInt(_0x53a037(0x1f3))/0x4+-parseInt(_0x53a037(0x1ef))/0x5+parseInt(_0x53a037(0x1f1))/0x6+-parseInt(_0x53a037(0x1f5))/0x7;if(_0x16125b===_0x5b3800)break;else _0x13e8f3['push'](_0x13e8f3['shift']());}catch(_0x55f218){_0x13e8f3['push'](_0x13e8f3['shift']());}}}(a2_0x2880,0x4cc40));import a2_0xf36f25 from'path';function a2_0x5047(_0x3b1e2b,_0x1272ee){_0x3b1e2b=_0x3b1e2b-0x1e9;const _0x288076=a2_0x2880();let _0x50476e=_0x288076[_0x3b1e2b];return _0x50476e;}function a2_0x2880(){const _0x32c340=['test','4313617xjAbcp','charAt','trim','substring','481094pulALC','274396iBZdDY','join','replace','match','normalize','toUpperCase','97119CRzUkT','homedir','2296500WtZZGB','startsWith','1750836vVsBZo','slice','2203364AVFnuY'];a2_0x2880=function(){return _0x32c340;};return a2_0x2880();}import a2_0xd32699 from'os';export function convertToWindowsPath(_0x4828e3){const _0x48334f=a2_0x5047;if(_0x4828e3[_0x48334f(0x1f0)]('/mnt/')){const _0x37b78e=_0x4828e3[_0x48334f(0x1f6)](0x5)[_0x48334f(0x1ec)](),_0x3ede03=_0x4828e3[_0x48334f(0x1f2)](0x6)[_0x48334f(0x1e9)](/\//g,'\x5c');return _0x37b78e+':'+_0x3ede03;}if(_0x4828e3['match'](/^\/[a-zA-Z]\//)){const _0x34abf9=_0x4828e3[_0x48334f(0x1f6)](0x1)[_0x48334f(0x1ec)](),_0x2cb921=_0x4828e3[_0x48334f(0x1f2)](0x2)[_0x48334f(0x1e9)](/\//g,'\x5c');return _0x34abf9+':'+_0x2cb921;}if(_0x4828e3[_0x48334f(0x1ea)](/^[a-zA-Z]:/))return _0x4828e3['replace'](/\//g,'\x5c');return _0x4828e3;}export function normalizePath(_0x199c55){const _0x3aab0a=a2_0x5047;_0x199c55=_0x199c55[_0x3aab0a(0x1f7)]()[_0x3aab0a(0x1e9)](/^["']|["']$/g,'');const _0x5bed24=_0x199c55[_0x3aab0a(0x1f0)]('/')&&!_0x199c55[_0x3aab0a(0x1ea)](/^\/mnt\/[a-z]\//i)&&!_0x199c55[_0x3aab0a(0x1ea)](/^\/[a-zA-Z]\//);if(_0x5bed24)return _0x199c55[_0x3aab0a(0x1e9)](/\/+/g,'/')[_0x3aab0a(0x1e9)](/\/+$/,'');_0x199c55=convertToWindowsPath(_0x199c55);if(_0x199c55['startsWith']('\x5c\x5c')){let _0x585f1f=_0x199c55;_0x585f1f=_0x585f1f['replace'](/^\\{2,}/,'\x5c\x5c');const _0x128ebc=_0x585f1f[_0x3aab0a(0x1f8)](0x2)['replace'](/\\\\/g,'\x5c');_0x199c55='\x5c\x5c'+_0x128ebc;}else _0x199c55=_0x199c55[_0x3aab0a(0x1e9)](/\\\\/g,'\x5c');let _0x382a46=a2_0xf36f25[_0x3aab0a(0x1eb)](_0x199c55);_0x199c55['startsWith']('\x5c\x5c')&&!_0x382a46[_0x3aab0a(0x1f0)]('\x5c\x5c')&&(_0x382a46='\x5c'+_0x382a46);if(_0x382a46[_0x3aab0a(0x1ea)](/^[a-zA-Z]:/)){let _0x427e53=_0x382a46[_0x3aab0a(0x1e9)](/\//g,'\x5c');return/^[a-z]:/[_0x3aab0a(0x1f4)](_0x427e53)&&(_0x427e53=_0x427e53[_0x3aab0a(0x1f6)](0x0)[_0x3aab0a(0x1ec)]()+_0x427e53[_0x3aab0a(0x1f2)](0x1)),_0x427e53;}return _0x382a46['replace'](/\//g,'\x5c');}export function expandHome(_0x1ff81f){const _0x8442d2=a2_0x5047;if(_0x1ff81f['startsWith']('~/')||_0x1ff81f==='~')return a2_0xf36f25[_0x8442d2(0x1fb)](a2_0xd32699[_0x8442d2(0x1ee)](),_0x1ff81f['slice'](0x1));return _0x1ff81f;}
1
+ (function(_0x272701,_0x38e872){const _0x181fdd=a2_0x29f9,_0x4feae7=_0x272701();while(!![]){try{const _0x4cfe21=-parseInt(_0x181fdd(0x195))/0x1+parseInt(_0x181fdd(0x18e))/0x2+parseInt(_0x181fdd(0x193))/0x3*(parseInt(_0x181fdd(0x196))/0x4)+-parseInt(_0x181fdd(0x192))/0x5*(parseInt(_0x181fdd(0x199))/0x6)+-parseInt(_0x181fdd(0x1a0))/0x7*(parseInt(_0x181fdd(0x191))/0x8)+-parseInt(_0x181fdd(0x190))/0x9*(parseInt(_0x181fdd(0x197))/0xa)+-parseInt(_0x181fdd(0x18d))/0xb*(-parseInt(_0x181fdd(0x19c))/0xc);if(_0x4cfe21===_0x38e872)break;else _0x4feae7['push'](_0x4feae7['shift']());}catch(_0xa485af){_0x4feae7['push'](_0x4feae7['shift']());}}}(a2_0xdc50,0xd6b66));function a2_0xdc50(){const _0x61f386=['match','trim','replace','homedir','814xSNMFJ','1161362jwkLNU','charAt','9bOOMiS','8OUoqTB','5qziuYj','6045IwfGXi','normalize','200630Wlaehx','416BAcNFr','3358040xyFoGQ','slice','7148598tmIkCY','join','toUpperCase','452508ZHmhfR','test','substring','/mnt/','6813646dotHEW','startsWith'];a2_0xdc50=function(){return _0x61f386;};return a2_0xdc50();}import a2_0x18cf15 from'path';function a2_0x29f9(_0x261358,_0x217ed6){_0x261358=_0x261358-0x18b;const _0xdc503c=a2_0xdc50();let _0x29f9b9=_0xdc503c[_0x261358];return _0x29f9b9;}import a2_0x56e78a from'os';export function convertToWindowsPath(_0x402e93){const _0x313a1b=a2_0x29f9;if(_0x402e93[_0x313a1b(0x1a1)](_0x313a1b(0x19f))){const _0x43a361=_0x402e93[_0x313a1b(0x18f)](0x5)['toUpperCase'](),_0x2ba908=_0x402e93[_0x313a1b(0x198)](0x6)[_0x313a1b(0x18b)](/\//g,'\x5c');return _0x43a361+':'+_0x2ba908;}if(_0x402e93[_0x313a1b(0x1a2)](/^\/[a-zA-Z]\//)){const _0x5a2b55=_0x402e93['charAt'](0x1)[_0x313a1b(0x19b)](),_0x56189d=_0x402e93[_0x313a1b(0x198)](0x2)[_0x313a1b(0x18b)](/\//g,'\x5c');return _0x5a2b55+':'+_0x56189d;}if(_0x402e93[_0x313a1b(0x1a2)](/^[a-zA-Z]:/))return _0x402e93[_0x313a1b(0x18b)](/\//g,'\x5c');return _0x402e93;}export function normalizePath(_0x48a231){const _0x447cab=a2_0x29f9;_0x48a231=_0x48a231[_0x447cab(0x1a3)]()[_0x447cab(0x18b)](/^["']|["']$/g,'');const _0x1cc633=_0x48a231['startsWith']('/')&&!_0x48a231[_0x447cab(0x1a2)](/^\/mnt\/[a-z]\//i)&&!_0x48a231[_0x447cab(0x1a2)](/^\/[a-zA-Z]\//);if(_0x1cc633)return _0x48a231[_0x447cab(0x18b)](/\/+/g,'/')[_0x447cab(0x18b)](/\/+$/,'');_0x48a231=convertToWindowsPath(_0x48a231);if(_0x48a231[_0x447cab(0x1a1)]('\x5c\x5c')){let _0x36d992=_0x48a231;_0x36d992=_0x36d992[_0x447cab(0x18b)](/^\\{2,}/,'\x5c\x5c');const _0xd510fe=_0x36d992[_0x447cab(0x19e)](0x2)['replace'](/\\\\/g,'\x5c');_0x48a231='\x5c\x5c'+_0xd510fe;}else _0x48a231=_0x48a231[_0x447cab(0x18b)](/\\\\/g,'\x5c');let _0x3f5860=a2_0x18cf15[_0x447cab(0x194)](_0x48a231);_0x48a231[_0x447cab(0x1a1)]('\x5c\x5c')&&!_0x3f5860[_0x447cab(0x1a1)]('\x5c\x5c')&&(_0x3f5860='\x5c'+_0x3f5860);if(_0x3f5860[_0x447cab(0x1a2)](/^[a-zA-Z]:/)){let _0xd1e754=_0x3f5860['replace'](/\//g,'\x5c');return/^[a-z]:/[_0x447cab(0x19d)](_0xd1e754)&&(_0xd1e754=_0xd1e754[_0x447cab(0x18f)](0x0)['toUpperCase']()+_0xd1e754['slice'](0x1)),_0xd1e754;}return _0x3f5860[_0x447cab(0x18b)](/\//g,'\x5c');}export function expandHome(_0x2de563){const _0x259100=a2_0x29f9;if(_0x2de563[_0x259100(0x1a1)]('~/')||_0x2de563==='~')return a2_0x18cf15[_0x259100(0x19a)](a2_0x56e78a[_0x259100(0x18c)](),_0x2de563['slice'](0x1));return _0x2de563;}
@@ -1 +1 @@
1
- (function(_0x1a6376,_0x211e03){const _0x41d90c=a3_0x1d7d,_0x382db3=_0x1a6376();while(!![]){try{const _0x4b5dc1=parseInt(_0x41d90c(0x10a))/0x1+-parseInt(_0x41d90c(0x10b))/0x2+parseInt(_0x41d90c(0x111))/0x3+parseInt(_0x41d90c(0x10c))/0x4*(-parseInt(_0x41d90c(0x107))/0x5)+parseInt(_0x41d90c(0x101))/0x6*(parseInt(_0x41d90c(0x110))/0x7)+-parseInt(_0x41d90c(0x105))/0x8+-parseInt(_0x41d90c(0x115))/0x9*(parseInt(_0x41d90c(0x112))/0xa);if(_0x4b5dc1===_0x211e03)break;else _0x382db3['push'](_0x382db3['shift']());}catch(_0x28e960){_0x382db3['push'](_0x382db3['shift']());}}}(a3_0x59b3,0x7671d));import a3_0x45a776 from'path';function a3_0x59b3(){const _0x2f5032=['isAbsolute','3222168SbcNHs','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','378230VCwoUQ','includes','isArray','695999yvTZmU','605092djrnDj','20MiwoXB','startsWith','sep','length','1244075FVokTP','2786121wuqtMF','1533820uIrCjq','Path\x20must\x20be\x20absolute\x20after\x20normalization','resolve','45TtJpfz','normalize','24pvqGUs','string','some'];a3_0x59b3=function(){return _0x2f5032;};return a3_0x59b3();}function a3_0x1d7d(_0x2b2ef7,_0x47f9db){_0x2b2ef7=_0x2b2ef7-0x101;const _0x59b3dc=a3_0x59b3();let _0x1d7d4a=_0x59b3dc[_0x2b2ef7];return _0x1d7d4a;}export function isPathWithinAllowedDirectories(_0x1fcd83,_0x59bd9f){const _0x41251e=a3_0x1d7d;if(typeof _0x1fcd83!==_0x41251e(0x102)||!Array[_0x41251e(0x109)](_0x59bd9f))return![];if(!_0x1fcd83||_0x59bd9f[_0x41251e(0x10f)]===0x0)return![];if(_0x1fcd83[_0x41251e(0x108)]('\x00'))return![];let _0x1ae27a;try{_0x1ae27a=a3_0x45a776[_0x41251e(0x114)](a3_0x45a776[_0x41251e(0x116)](_0x1fcd83));}catch{return![];}if(!a3_0x45a776[_0x41251e(0x104)](_0x1ae27a))throw new Error(_0x41251e(0x113));return _0x59bd9f[_0x41251e(0x103)](_0x5a319e=>{const _0x32652a=_0x41251e;if(typeof _0x5a319e!==_0x32652a(0x102)||!_0x5a319e)return![];if(_0x5a319e['includes']('\x00'))return![];let _0x1a6329;try{_0x1a6329=a3_0x45a776[_0x32652a(0x114)](a3_0x45a776[_0x32652a(0x116)](_0x5a319e));}catch{return![];}if(!a3_0x45a776['isAbsolute'](_0x1a6329))throw new Error(_0x32652a(0x106));if(_0x1ae27a===_0x1a6329)return!![];if(_0x1a6329===a3_0x45a776[_0x32652a(0x10e)])return _0x1ae27a[_0x32652a(0x10d)](a3_0x45a776['sep']);return _0x1ae27a[_0x32652a(0x10d)](_0x1a6329+a3_0x45a776[_0x32652a(0x10e)]);});}
1
+ (function(_0x1c8b6b,_0x484cca){const _0x20de59=a3_0x3e71,_0x324462=_0x1c8b6b();while(!![]){try{const _0x388a60=parseInt(_0x20de59(0x152))/0x1*(parseInt(_0x20de59(0x158))/0x2)+-parseInt(_0x20de59(0x14a))/0x3*(-parseInt(_0x20de59(0x15d))/0x4)+-parseInt(_0x20de59(0x159))/0x5+-parseInt(_0x20de59(0x154))/0x6*(parseInt(_0x20de59(0x150))/0x7)+-parseInt(_0x20de59(0x15c))/0x8+-parseInt(_0x20de59(0x153))/0x9*(parseInt(_0x20de59(0x15e))/0xa)+-parseInt(_0x20de59(0x14b))/0xb*(-parseInt(_0x20de59(0x160))/0xc);if(_0x388a60===_0x484cca)break;else _0x324462['push'](_0x324462['shift']());}catch(_0x4bc468){_0x324462['push'](_0x324462['shift']());}}}(a3_0x54e0,0xebf99));function a3_0x54e0(){const _0x314833=['sep','length','isAbsolute','some','3312379nlygRz','includes','8439UEIfwT','3897kNIxhT','6ZhepUz','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','string','resolve','394kHExGf','9279265JqCsPX','normalize','isArray','5957936waaCrc','4gctUoU','44070eLmLQu','startsWith','36uFDZCN','2031855mWmHBM','13232296qMoieO'];a3_0x54e0=function(){return _0x314833;};return a3_0x54e0();}function a3_0x3e71(_0x3fe3a8,_0x3850b7){_0x3fe3a8=_0x3fe3a8-0x14a;const _0x54e0bc=a3_0x54e0();let _0x3e715a=_0x54e0bc[_0x3fe3a8];return _0x3e715a;}import a3_0x3dd61e from'path';export function isPathWithinAllowedDirectories(_0x35b2ba,_0x267f2a){const _0x502531=a3_0x3e71;if(typeof _0x35b2ba!==_0x502531(0x156)||!Array[_0x502531(0x15b)](_0x267f2a))return![];if(!_0x35b2ba||_0x267f2a[_0x502531(0x14d)]===0x0)return![];if(_0x35b2ba['includes']('\x00'))return![];let _0x348e3a;try{_0x348e3a=a3_0x3dd61e[_0x502531(0x157)](a3_0x3dd61e[_0x502531(0x15a)](_0x35b2ba));}catch{return![];}if(!a3_0x3dd61e[_0x502531(0x14e)](_0x348e3a))throw new Error('Path\x20must\x20be\x20absolute\x20after\x20normalization');return _0x267f2a[_0x502531(0x14f)](_0x2f161e=>{const _0x5ed610=_0x502531;if(typeof _0x2f161e!==_0x5ed610(0x156)||!_0x2f161e)return![];if(_0x2f161e[_0x5ed610(0x151)]('\x00'))return![];let _0x1fdd31;try{_0x1fdd31=a3_0x3dd61e[_0x5ed610(0x157)](a3_0x3dd61e[_0x5ed610(0x15a)](_0x2f161e));}catch{return![];}if(!a3_0x3dd61e[_0x5ed610(0x14e)](_0x1fdd31))throw new Error(_0x5ed610(0x155));if(_0x348e3a===_0x1fdd31)return!![];if(_0x1fdd31===a3_0x3dd61e['sep'])return _0x348e3a[_0x5ed610(0x15f)](a3_0x3dd61e['sep']);return _0x348e3a['startsWith'](_0x1fdd31+a3_0x3dd61e[_0x5ed610(0x14c)]);});}
@@ -1 +1 @@
1
- (function(_0x1aff87,_0xf74c12){const _0x2cb14e=a4_0x2114,_0x13dd52=_0x1aff87();while(!![]){try{const _0x3b0600=-parseInt(_0x2cb14e(0x1b7))/0x1*(-parseInt(_0x2cb14e(0x1b2))/0x2)+parseInt(_0x2cb14e(0x1a2))/0x3+parseInt(_0x2cb14e(0x1ad))/0x4+-parseInt(_0x2cb14e(0x1a8))/0x5*(parseInt(_0x2cb14e(0x1af))/0x6)+parseInt(_0x2cb14e(0x1a6))/0x7*(-parseInt(_0x2cb14e(0x1ab))/0x8)+-parseInt(_0x2cb14e(0x1a9))/0x9*(parseInt(_0x2cb14e(0x1b6))/0xa)+parseInt(_0x2cb14e(0x1ac))/0xb;if(_0x3b0600===_0xf74c12)break;else _0x13dd52['push'](_0x13dd52['shift']());}catch(_0x4783e3){_0x13dd52['push'](_0x13dd52['shift']());}}}(a4_0xa252,0x215ed));import{promises as a4_0x41d402}from'fs';import a4_0x290ea1 from'path';import a4_0x123c5f from'os';import{normalizePath}from'./path-utils.js';import{logMcpStderr}from'./log-utils.js';async function parseRootUri(_0x22bfbc){const _0x593b59=a4_0x2114;try{const _0x445ec2=_0x22bfbc[_0x593b59(0x1b5)](_0x593b59(0x1a5))?_0x22bfbc[_0x593b59(0x1b1)](0x7):_0x22bfbc,_0xf9335a=_0x445ec2[_0x593b59(0x1b5)]('~/')||_0x445ec2==='~'?a4_0x290ea1[_0x593b59(0x1ae)](a4_0x123c5f[_0x593b59(0x1a3)](),_0x445ec2['slice'](0x1)):_0x445ec2,_0x30af46=a4_0x290ea1['resolve'](_0xf9335a),_0x2d78ce=await a4_0x41d402[_0x593b59(0x1a7)](_0x30af46);return normalizePath(_0x2d78ce);}catch{return null;}}function a4_0x2114(_0x3c5c67,_0x13f9ef){_0x3c5c67=_0x3c5c67-0x1a0;const _0xa252c=a4_0xa252();let _0x211483=_0xa252c[_0x3c5c67];return _0x211483;}function a4_0xa252(){const _0x325842=['slice','74350TCZPFa','stat','message','startsWith','110wqZvml','1GRvOMn','invalid\x20path\x20or\x20inaccessible','non-directory\x20root','770742tLgEVH','homedir','push','file://','4319uHOQHQ','realpath','15BBLnNV','195417awYLFA','Skipping\x20invalid\x20directory:\x20','2888JBJgrB','3155559iBLZDV','909324oQQtpJ','join','420048ZMmyAI','uri'];a4_0xa252=function(){return _0x325842;};return a4_0xa252();}function formatDirectoryError(_0x13a263,_0x33afa6,_0x122163){const _0x3c1ab7=a4_0x2114;if(_0x122163)return'Skipping\x20'+_0x122163+':\x20'+_0x13a263;const _0x2845f8=_0x33afa6 instanceof Error?_0x33afa6[_0x3c1ab7(0x1b4)]:String(_0x33afa6);return _0x3c1ab7(0x1aa)+_0x13a263+'\x20due\x20to\x20error:\x20'+_0x2845f8;}export async function getValidRootDirectories(_0x3141ff){const _0x51f207=a4_0x2114,_0x528f04=[];for(const _0x7b55 of _0x3141ff){const _0x2ff2a9=await parseRootUri(_0x7b55[_0x51f207(0x1b0)]);if(!_0x2ff2a9){logMcpStderr(formatDirectoryError(_0x7b55[_0x51f207(0x1b0)],undefined,_0x51f207(0x1a0)));continue;}try{const _0x45e2ff=await a4_0x41d402[_0x51f207(0x1b3)](_0x2ff2a9);_0x45e2ff['isDirectory']()?_0x528f04[_0x51f207(0x1a4)](_0x2ff2a9):logMcpStderr(formatDirectoryError(_0x2ff2a9,undefined,_0x51f207(0x1a1)));}catch(_0x21f98d){logMcpStderr(formatDirectoryError(_0x2ff2a9,_0x21f98d));}}return _0x528f04;}
1
+ (function(_0x112a2b,_0xaf8db2){const _0x440bcc=a4_0x5e5d,_0x16a0ee=_0x112a2b();while(!![]){try{const _0x42826d=-parseInt(_0x440bcc(0x80))/0x1*(-parseInt(_0x440bcc(0x89))/0x2)+-parseInt(_0x440bcc(0x88))/0x3*(parseInt(_0x440bcc(0x8c))/0x4)+parseInt(_0x440bcc(0x82))/0x5*(parseInt(_0x440bcc(0x8d))/0x6)+parseInt(_0x440bcc(0x8a))/0x7+parseInt(_0x440bcc(0x7e))/0x8*(parseInt(_0x440bcc(0x7f))/0x9)+-parseInt(_0x440bcc(0x8e))/0xa+-parseInt(_0x440bcc(0x83))/0xb;if(_0x42826d===_0xaf8db2)break;else _0x16a0ee['push'](_0x16a0ee['shift']());}catch(_0x55a1da){_0x16a0ee['push'](_0x16a0ee['shift']());}}}(a4_0x5e1a,0x9148d));import{promises as a4_0x5cb071}from'fs';function a4_0x5e5d(_0x152f6e,_0x986c32){_0x152f6e=_0x152f6e-0x79;const _0x5e1af3=a4_0x5e1a();let _0x5e5d84=_0x5e1af3[_0x152f6e];return _0x5e5d84;}import a4_0x585364 from'path';import a4_0x512446 from'os';import{normalizePath}from'./path-utils.js';function a4_0x5e1a(){const _0x1e62be=['2637470ljvIxn','join','Skipping\x20','message','slice','resolve','push','file://','isDirectory','840TgyZFB','95103JSNHCx','2284IbtqhL','uri','138595ACRDWT','20268226YgatJD','invalid\x20path\x20or\x20inaccessible','non-directory\x20root','startsWith','homedir','56505tMWODu','822vMxBaq','5236231PeixTV','stat','132vrhDDM','114tkZILg'];a4_0x5e1a=function(){return _0x1e62be;};return a4_0x5e1a();}import{logMcpStderr}from'./log-utils.js';async function parseRootUri(_0x4480c6){const _0x3e810a=a4_0x5e5d;try{const _0x34f91e=_0x4480c6['startsWith'](_0x3e810a(0x7c))?_0x4480c6[_0x3e810a(0x79)](0x7):_0x4480c6,_0x2cc4b6=_0x34f91e[_0x3e810a(0x86)]('~/')||_0x34f91e==='~'?a4_0x585364[_0x3e810a(0x8f)](a4_0x512446[_0x3e810a(0x87)](),_0x34f91e[_0x3e810a(0x79)](0x1)):_0x34f91e,_0x1cb59b=a4_0x585364[_0x3e810a(0x7a)](_0x2cc4b6),_0x28f223=await a4_0x5cb071['realpath'](_0x1cb59b);return normalizePath(_0x28f223);}catch{return null;}}function formatDirectoryError(_0x3329ee,_0x1061ed,_0x1acdb0){const _0x13ec42=a4_0x5e5d;if(_0x1acdb0)return _0x13ec42(0x90)+_0x1acdb0+':\x20'+_0x3329ee;const _0x4a45c4=_0x1061ed instanceof Error?_0x1061ed[_0x13ec42(0x91)]:String(_0x1061ed);return'Skipping\x20invalid\x20directory:\x20'+_0x3329ee+'\x20due\x20to\x20error:\x20'+_0x4a45c4;}export async function getValidRootDirectories(_0x4e03f){const _0x2913c5=a4_0x5e5d,_0x49aba0=[];for(const _0x1ec234 of _0x4e03f){const _0x2b7bbc=await parseRootUri(_0x1ec234[_0x2913c5(0x81)]);if(!_0x2b7bbc){logMcpStderr(formatDirectoryError(_0x1ec234[_0x2913c5(0x81)],undefined,_0x2913c5(0x84)));continue;}try{const _0x4b864e=await a4_0x5cb071[_0x2913c5(0x8b)](_0x2b7bbc);_0x4b864e[_0x2913c5(0x7d)]()?_0x49aba0[_0x2913c5(0x7b)](_0x2b7bbc):logMcpStderr(formatDirectoryError(_0x2b7bbc,undefined,_0x2913c5(0x85)));}catch(_0x44eaed){logMcpStderr(formatDirectoryError(_0x2b7bbc,_0x44eaed));}}return _0x49aba0;}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morphllm/morphmcp",
3
- "version": "0.8.153",
3
+ "version": "0.8.154",
4
4
  "description": "Fast & accurate MCP server with AI-powered file editing and intelligent code search. Prevents context pollution and saves time for a better user experience.",
5
5
  "license": "MIT",
6
6
  "author": "Morph (https://morphllm.com)",