@morphllm/morphmcp 0.8.94 → 0.8.95

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_0x3f9bb4=a0_0x5ab4;(function(_0x3c88ee,_0x2cd0b4){const _0xf39a32=a0_0x5ab4,_0x2712e6=_0x3c88ee();while(!![]){try{const _0x11c7ae=-parseInt(_0xf39a32(0x146))/0x1*(-parseInt(_0xf39a32(0xf8))/0x2)+-parseInt(_0xf39a32(0xd2))/0x3+-parseInt(_0xf39a32(0x101))/0x4+parseInt(_0xf39a32(0x127))/0x5+-parseInt(_0xf39a32(0xcb))/0x6+parseInt(_0xf39a32(0x93))/0x7*(parseInt(_0xf39a32(0x12c))/0x8)+parseInt(_0xf39a32(0xed))/0x9;if(_0x11c7ae===_0x2cd0b4)break;else _0x2712e6['push'](_0x2712e6['shift']());}catch(_0x18a901){_0x2712e6['push'](_0x2712e6['shift']());}}}(a0_0x58fc,0x1b0d9));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_0x52da4c from'fs/promises';import a0_0x356091 from'path';import a0_0x4f740a from'os';import{createRequire}from'module';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider}from'@morphllm/morphsdk/tools/warp-grep';import{executeCodebaseSearch}from'@morphllm/morphsdk/tools/codebase-search';import a0_0x5a5b93 from'axios';function fixPathRepetition(_0x2ec027){const _0x35caa7=a0_0x5ab4,_0x1148f6=_0x2ec027[_0x35caa7(0xf6)](a0_0x356091['sep'])[_0x35caa7(0x99)](Boolean);if(_0x1148f6[_0x35caa7(0xac)]<0x2)return null;for(let _0x30215f=Math[_0x35caa7(0x9f)](_0x1148f6['length']/0x2);_0x30215f>=0x1;_0x30215f--){for(let _0x515e60=0x0;_0x515e60<=_0x1148f6[_0x35caa7(0xac)]-0x2*_0x30215f;_0x515e60++){const _0x5b9ab2=_0x1148f6[_0x35caa7(0x115)](_0x515e60,_0x515e60+_0x30215f),_0x58275c=_0x1148f6[_0x35caa7(0x115)](_0x515e60+_0x30215f,_0x515e60+0x2*_0x30215f);if(_0x5b9ab2['every']((_0x102163,_0x29c381)=>_0x102163===_0x58275c[_0x29c381])){const _0x73d086=[..._0x1148f6['slice'](0x0,_0x515e60),..._0x1148f6[_0x35caa7(0x115)](_0x515e60+_0x30215f)];return a0_0x356091['sep']+_0x73d086[_0x35caa7(0xe9)](a0_0x356091['sep']);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x462250=a0_0x5ab4;try{const _0x119bcf=require('../package.json');return _0x119bcf[_0x462250(0x117)]??'unknown';}catch(_0x2fb9c9){return console[_0x462250(0xe8)](_0x462250(0xf9),_0x2fb9c9),'unknown';}}function printHelp(){const _0x38bbfb=a0_0x5ab4;console['log']('@morphllm/morphmcp\x20'+getPackageVersion()),console[_0x38bbfb(0x13e)]('\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]'),console[_0x38bbfb(0x13e)](_0x38bbfb(0xca)),console[_0x38bbfb(0x13e)]('\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)'),console[_0x38bbfb(0x13e)](_0x38bbfb(0x105)),console[_0x38bbfb(0x13e)]('\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit'),console[_0x38bbfb(0x13e)](_0x38bbfb(0xef)),console[_0x38bbfb(0x13e)]('\x20\x20morph-mcp'),console[_0x38bbfb(0x13e)](_0x38bbfb(0x6d));}const cliArgs=process[a0_0x3f9bb4(0x10c)][a0_0x3f9bb4(0x115)](0x2),VERSION_FLAGS=new Set([a0_0x3f9bb4(0x7d),'-v','-V']),HELP_FLAGS=new Set([a0_0x3f9bb4(0x157),'-h']);cliArgs[a0_0x3f9bb4(0x161)](_0x550be5=>VERSION_FLAGS[a0_0x3f9bb4(0x83)](_0x550be5))&&(console[a0_0x3f9bb4(0x13e)](a0_0x3f9bb4(0xbf)+getPackageVersion()),process[a0_0x3f9bb4(0x158)](0x0));cliArgs['some'](_0x4f5092=>HELP_FLAGS[a0_0x3f9bb4(0x83)](_0x4f5092))&&(printHelp(),process[a0_0x3f9bb4(0x158)](0x0));function getCliArg(_0x5166a2){const _0x1e9264=a0_0x3f9bb4;for(let _0x1609f5=0x0;_0x1609f5<cliArgs[_0x1e9264(0xac)];_0x1609f5++){const _0x7a4f07=cliArgs[_0x1609f5];if(_0x7a4f07[_0x1e9264(0x12a)]('--'+_0x5166a2+'='))return _0x7a4f07[_0x1e9264(0x115)](('--'+_0x5166a2+'=')[_0x1e9264(0xac)]);if(_0x7a4f07==='--'+_0x5166a2&&_0x1609f5+0x1<cliArgs[_0x1e9264(0xac)])return cliArgs[_0x1609f5+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs['length'];i++){const arg=cliArgs[i];if(VERSION_FLAGS[a0_0x3f9bb4(0x83)](arg)||HELP_FLAGS[a0_0x3f9bb4(0x83)](arg))continue;if(arg[a0_0x3f9bb4(0x12a)](a0_0x3f9bb4(0xf7)))continue;if(arg===a0_0x3f9bb4(0xf4)){i++;continue;}args['push'](arg);}const ALL_TOOLS=[a0_0x3f9bb4(0x91),a0_0x3f9bb4(0x116),a0_0x3f9bb4(0x155)],DEFAULT_TOOLS=[a0_0x3f9bb4(0x91),a0_0x3f9bb4(0x116)],ENABLED_TOOLS=process[a0_0x3f9bb4(0x121)][a0_0x3f9bb4(0xb6)]?process[a0_0x3f9bb4(0x121)][a0_0x3f9bb4(0xb6)]===a0_0x3f9bb4(0xe1)?ALL_TOOLS:process[a0_0x3f9bb4(0x121)][a0_0x3f9bb4(0xb6)][a0_0x3f9bb4(0xf6)](',')[a0_0x3f9bb4(0x11c)](_0x5f15ac=>_0x5f15ac['trim']()):DEFAULT_TOOLS;console[a0_0x3f9bb4(0xe8)](a0_0x3f9bb4(0x153)+ENABLED_TOOLS[a0_0x3f9bb4(0xe9)](',\x20'));const WORKSPACE_ROOT=process[a0_0x3f9bb4(0x121)][a0_0x3f9bb4(0x9d)]||process[a0_0x3f9bb4(0x121)][a0_0x3f9bb4(0xba)]||process['cwd'](),ENABLE_WORKSPACE_MODE=process[a0_0x3f9bb4(0x121)]['ENABLE_WORKSPACE_MODE']!==a0_0x3f9bb4(0x7f),MORPH_API_KEY=getCliArg(a0_0x3f9bb4(0xa3))??process['env'][a0_0x3f9bb4(0x78)],MORPH_API_URL=process[a0_0x3f9bb4(0x121)][a0_0x3f9bb4(0x12d)],MORPH_WARP_GREP_TIMEOUT=process[a0_0x3f9bb4(0x121)]['MORPH_WARP_GREP_TIMEOUT']?parseInt(process['env'][a0_0x3f9bb4(0x14e)],0xa):undefined;function a0_0x5ab4(_0x2c5bca,_0x7fa4ab){_0x2c5bca=_0x2c5bca-0x6d;const _0x58fc4f=a0_0x58fc();let _0x5ab46c=_0x58fc4f[_0x2c5bca];return _0x5ab46c;}MORPH_API_KEY&&!MORPH_API_KEY['startsWith'](a0_0x3f9bb4(0x132))&&!MORPH_API_KEY[a0_0x3f9bb4(0x12a)](a0_0x3f9bb4(0x139))&&console[a0_0x3f9bb4(0xe8)](a0_0x3f9bb4(0x13c));async function reportMorphError(_0x30733d){const _0x511a5b=a0_0x3f9bb4;try{await a0_0x5a5b93['post']('https://morphllm.com/api/error-report',{..._0x30733d,'timestamp':new Date()[_0x511a5b(0x104)](),'source':_0x30733d[_0x511a5b(0x160)]||'mcp-filesystem'},{'timeout':0x1388,'headers':{'Content-Type':_0x511a5b(0x108),'Authorization':'Bearer\x20'+MORPH_API_KEY}});}catch{}}args['length']===0x0&&!ENABLE_WORKSPACE_MODE&&(console[a0_0x3f9bb4(0xe8)](a0_0x3f9bb4(0xb4)),console[a0_0x3f9bb4(0xe8)](a0_0x3f9bb4(0x74)),console[a0_0x3f9bb4(0xe8)](a0_0x3f9bb4(0x7e)),console['error'](a0_0x3f9bb4(0x124)),console[a0_0x3f9bb4(0xe8)]('\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)'),console[a0_0x3f9bb4(0xe8)](a0_0x3f9bb4(0xd5)));function normalizePath(_0x142d99){const _0x2d249f=a0_0x3f9bb4;return a0_0x356091[_0x2d249f(0x142)](_0x142d99);}function expandHome(_0x382073){const _0x35bc0b=a0_0x3f9bb4;if(_0x382073[_0x35bc0b(0x12a)]('~/')||_0x382073==='~')return a0_0x356091[_0x35bc0b(0xe9)](a0_0x4f740a['homedir'](),_0x382073[_0x35bc0b(0x115)](0x1));return _0x382073;}function a0_0x58fc(){const _0x434d2d=['Error\x20accessing\x20directory\x20','This\x20tool\x20invokes\x20a\x20subagent\x20that\x20runs\x20parallel\x20grep\x20and\x20readfile\x20calls\x20over\x20multiple\x20turns\x20to\x20locate\x20line\x20ranges\x20and\x20files\x20which\x20might\x20be\x20relevant\x20to\x20the\x20request.\x20','describe','grep\x20\x27','UnknownError','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','morph-warp-grep-v1-1111v0','Specific\x20commit\x20hash\x20to\x20search','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','File\x20read\x20error:','edit_file','startLine','49PpqURu','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','stat','go.mod','morph-mcp','completed','filter','Here\x20is\x20the\x20content\x20of\x20files:\x0a','access','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','WORKSPACE_ROOT','Rules:\x0a','floor','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.','api-key','\x27\x20in\x20`','timed\x20out','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','repo_path','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','push','search_string','toLowerCase','length','added\x20','etimedout','role','Natural\x20language\x20query\x20to\x20search\x20for\x20code','mcp-filesystem','array','FileReadError','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','success','ENABLED_TOOLS','string','\x20is\x20not\x20a\x20directory','Error\x20running\x20fast\x20context\x20search:\x20','PWD','\x22>\x0aError\x20reading\x20file:\x20','targetDirectories','listRoots','-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a','@morphllm/morphmcp\x20','searchTimeMs','optional','linesRemoved','Fatal\x20error\x20running\x20server:','completionId','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','limit','🎯\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a','assistant','finish','\x0aOptions:','785592uKcVlG','Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20','oninitialized','\x20-\x20','results','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20','Relevant\x20context\x20found:','129483WUluii','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','Found\x20','Max\x20results\x20to\x20return','\x20\x20\x20Lines\x20','.cursor','\x20chars)','toFixed','morph-v3-fast','code','errors',',\x20modified\x20','all','resolve','⚡\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a','-\x20Read\x20file\x20`','object','-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a','The\x20search\x20term\x20should\x20be\x20a\x20targeted\x20natural\x20language\x20query\x20based\x20on\x20what\x20you\x20are\x20trying\x20to\x20accomplish,\x20like\x20\x27Find\x20where\x20authentication\x20requests\x20are\x20handled\x20in\x20the\x20Express\x20routes\x27\x20or\x20\x27Modify\x20the\x20agentic\x20rollout\x20to\x20use\x20the\x20new\x20tokenizer\x20and\x20chat\x20template\x27\x20or\x20\x27Fix\x20the\x20bug\x20where\x20the\x20user\x20gets\x20redirected\x20from\x20the\x20/feed\x20page\x27.\x20','error','join','name','For\x20deletions:\x0a','number','1957005CIxbVl','lines','\x0aExamples:','messages','endLine','Morph\x20Edit\x20Preview','.\x20Changes:\x20','--api-key','**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a','split','--api-key=','2vnpCeX','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','data','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','Preview\x20changes\x20without\x20applying\x20them.','files','ENOENT','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','218416UjRqeT','timings','%\x20match)\x0a','toISOString','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','message','getClientCapabilities','application/json','readFile','Note:\x20The\x20files\x20and\x20line\x20ranges\x20returned\x20by\x20this\x20tool\x20may\x20be\x20some\x20of\x20the\x20ones\x20needed\x20to\x20complete\x20the\x20user\x27s\x20request,\x20but\x20you\x20should\x20be\x20careful\x20in\x20evaluating\x20the\x20relevance\x20of\x20the\x20results,\x20since\x20the\x20subagent\x20might\x20make\x20mistakes.\x20','stringify','argv','match','-\x20Grepped\x20\x27','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','.git','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','Morph\x20FastApply\x20failed\x20without\x20error\x20message','The\x20absolute\x20path\x20of\x20the\x20folder\x20where\x20the\x20search\x20should\x20be\x20performed.\x20In\x20multi-repo\x20workspaces,\x20you\x20have\x20to\x20specify\x20a\x20subfolder\x20where\x20the\x20search\x20should\x20be\x20performed,\x20to\x20avoid\x20searching\x20across\x20all\x20repos','Warning:\x20Workspace\x20fallback\x20failed:\x20','slice','warpgrep_codebase_search','version','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','branch','<file\x20path=\x22','\x20\x20\x20','map','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','constructor','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','env','setNotificationHandler','terminationReason','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','list_directory\x20','includes','83670gXfMDV','roots','content','startsWith','A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20','116528HTvaBT','MORPH_API_URL','.\x20Path:\x20','\x20valid\x20directories','Error:\x20','Warning:\x20','sk-','dryRun','params','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','description','query','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','morph-','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.','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','path','log','metadata','utf-8','\x20as\x20allowed\x20directory','normalize','changes','requiresApiKey','catch','3365HQGYeE','code_edit','Applied','terminated','rerankScore','Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20','setRequestHandler','basename','MORPH_WARP_GREP_TIMEOUT','-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a','safeParse','text','realpath','Enabled\x20tools:\x20','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','codebase_search','Created\x20File','--help','exit','linesAdded','ms:\x0a\x0a','trim','repoId','instruction','Invalid\x20arguments:\x20','❌\x20Morph\x20Edit\x20Failed:\x20','source','some','\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo','substring','</file>','Morph\x20Edit\x20','Benefits:\x0a','pyproject.toml','runWarpGrep_call','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','default','boolean','stack','MORPH_API_KEY','.vscode','Fallback:\x20Using\x20workspace\x20root\x20','dirname','package.json','--version','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','false','isDirectory','Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','has','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','TimeoutError','Parent\x20directory\x20does\x20not\x20exist:\x20'];a0_0x58fc=function(){return _0x434d2d;};return a0_0x58fc();}let allowedDirectories=await Promise['all'](args[a0_0x3f9bb4(0x11c)](async _0x6252c1=>{const _0x547500=a0_0x3f9bb4,_0x29d644=expandHome(_0x6252c1),_0x250fd1=a0_0x356091[_0x547500(0xe2)](_0x29d644);try{const _0x4a2fc6=await a0_0x52da4c[_0x547500(0x152)](_0x250fd1);return normalizePath(_0x4a2fc6);}catch(_0x23b13a){return normalizePath(_0x250fd1);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x3f9bb4(0xac)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x3f9bb4(0xa9)](workspaceDir),console[a0_0x3f9bb4(0xe8)]('Workspace\x20mode\x20enabled:\x20Using\x20'+workspaceDir+a0_0x3f9bb4(0x141)));}catch(a0_0x54a0fe){console[a0_0x3f9bb4(0xe8)]('Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20'+a0_0x54a0fe);}async function detectWorkspaceRoot(_0x4f49f7){const _0x19649c=a0_0x3f9bb4;let _0x13c92a=a0_0x356091[_0x19649c(0xe2)](_0x4f49f7);const _0x4fde60=[_0x19649c(0x110),_0x19649c(0x79),_0x19649c(0x7c),'Cargo.toml',_0x19649c(0x72),_0x19649c(0x96),_0x19649c(0xda),'tsconfig.json','composer.json'];while(_0x13c92a!==a0_0x356091['dirname'](_0x13c92a)){for(const _0x374e63 of _0x4fde60){const _0x47209c=a0_0x356091[_0x19649c(0xe9)](_0x13c92a,_0x374e63);try{return await a0_0x52da4c[_0x19649c(0x9b)](_0x47209c),normalizePath(_0x13c92a);}catch{}}_0x13c92a=a0_0x356091[_0x19649c(0x7b)](_0x13c92a);}return normalizePath(_0x4f49f7);}await Promise[a0_0x3f9bb4(0xe1)](args[a0_0x3f9bb4(0x11c)](async _0x10b8a9=>{const _0x3be20b=a0_0x3f9bb4;try{const _0x1451fe=await a0_0x52da4c[_0x3be20b(0x95)](expandHome(_0x10b8a9));!_0x1451fe[_0x3be20b(0x80)]()&&(console[_0x3be20b(0xe8)](_0x3be20b(0x130)+_0x10b8a9+_0x3be20b(0xb8)),process[_0x3be20b(0x158)](0x1));}catch(_0x57522b){console[_0x3be20b(0xe8)](_0x3be20b(0x87)+_0x10b8a9+':',_0x57522b),process[_0x3be20b(0x158)](0x1);}}));async function validatePath(_0x1eb97b){const _0x20c96e=a0_0x3f9bb4,_0x276460=expandHome(_0x1eb97b),_0x374bfb=a0_0x356091[_0x20c96e(0xe2)](_0x276460);try{const _0x40f463=await a0_0x52da4c[_0x20c96e(0x152)](_0x374bfb);return _0x40f463;}catch(_0x4883f3){if(_0x4883f3[_0x20c96e(0xde)]==='ENOENT'){const _0xc6309f=a0_0x356091['dirname'](_0x374bfb);try{const _0x1c6271=await a0_0x52da4c[_0x20c96e(0x152)](_0xc6309f);return a0_0x356091[_0x20c96e(0xe9)](_0x1c6271,a0_0x356091[_0x20c96e(0x14d)](_0x374bfb));}catch{throw new Error(_0x20c96e(0x86)+_0xc6309f);}}throw _0x4883f3;}}const MorphEditFileArgsSchema=z[a0_0x3f9bb4(0xe5)]({'path':z[a0_0x3f9bb4(0xb7)](),'code_edit':z[a0_0x3f9bb4(0xb7)]()[a0_0x3f9bb4(0x89)](a0_0x3f9bb4(0xff)),'instruction':z['string']()[a0_0x3f9bb4(0x89)](a0_0x3f9bb4(0x82)),'dryRun':z[a0_0x3f9bb4(0x76)]()['default'](![])[a0_0x3f9bb4(0x89)](a0_0x3f9bb4(0xfc))}),WarpGrepArgsSchema=z[a0_0x3f9bb4(0xe5)]({'search_string':z['string']()['describe'](a0_0x3f9bb4(0x81)),'repo_path':z[a0_0x3f9bb4(0xb7)]()[a0_0x3f9bb4(0x89)](a0_0x3f9bb4(0x113))}),CodebaseSearchArgsSchema=z[a0_0x3f9bb4(0xe5)]({'query':z['string']()[a0_0x3f9bb4(0x89)](a0_0x3f9bb4(0xb0)),'repoId':z[a0_0x3f9bb4(0xb7)]()[a0_0x3f9bb4(0x89)]('Repository\x20identifier'),'branch':z[a0_0x3f9bb4(0xb7)]()[a0_0x3f9bb4(0xc1)]()[a0_0x3f9bb4(0x89)](a0_0x3f9bb4(0xa0)),'commitHash':z[a0_0x3f9bb4(0xb7)]()['optional']()[a0_0x3f9bb4(0x89)](a0_0x3f9bb4(0x8e)),'targetDirectories':z[a0_0x3f9bb4(0xb2)](z[a0_0x3f9bb4(0xb7)]())[a0_0x3f9bb4(0x75)]([])['describe'](a0_0x3f9bb4(0x13b)),'limit':z[a0_0x3f9bb4(0xec)]()['optional']()[a0_0x3f9bb4(0x75)](0xa)[a0_0x3f9bb4(0x89)](a0_0x3f9bb4(0xd8))}),server=new Server({'name':a0_0x3f9bb4(0x97),'version':'0.2.0'},{'capabilities':{'tools':{}}});server[a0_0x3f9bb4(0x14c)](ListToolsRequestSchema,async()=>{const _0x52970f=a0_0x3f9bb4,_0x50c6e0=[{'name':_0x52970f(0x91),'description':_0x52970f(0x120)+_0x52970f(0xa1)+_0x52970f(0x11d)+_0x52970f(0xa8)+'Benefits:\x0a'+_0x52970f(0xd4)+'-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a'+_0x52970f(0x138)+_0x52970f(0x118)+_0x52970f(0x8f)+_0x52970f(0x11e)+_0x52970f(0x111)+_0x52970f(0xeb)+_0x52970f(0xa6)+'-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a'+_0x52970f(0x9e)+_0x52970f(0x100)+_0x52970f(0xd6)+_0x52970f(0x154)+_0x52970f(0x8c)+'-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a'+'-\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':_0x52970f(0x116),'description':_0x52970f(0x12b)+_0x52970f(0x88)+_0x52970f(0xe7)+_0x52970f(0xd0)+_0x52970f(0xa2)+_0x52970f(0x10a)+_0x52970f(0x135)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':_0x52970f(0x155),'description':_0x52970f(0xf5)+_0x52970f(0xe3)+_0x52970f(0xc7)+_0x52970f(0x71)+'-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a'+_0x52970f(0x14f)+_0x52970f(0xbe)+_0x52970f(0xe6)+_0x52970f(0x14b)+_0x52970f(0xcc)+'Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x3d8bf8=_0x50c6e0[_0x52970f(0x99)](_0x1318a5=>{const _0xf33d32=_0x52970f;if(!ENABLED_TOOLS['includes'](_0x1318a5[_0xf33d32(0xea)]))return![];if(_0xf33d32(0x144)in _0x1318a5&&_0x1318a5[_0xf33d32(0x144)]&&!MORPH_API_KEY)return console[_0xf33d32(0xe8)](_0xf33d32(0x131)+_0x1318a5[_0xf33d32(0xea)]+_0xf33d32(0xd3)),![];return!![];});return{'tools':_0x3d8bf8['map'](_0x318589=>({'name':_0x318589[_0x52970f(0xea)],'description':_0x318589[_0x52970f(0x136)],'inputSchema':_0x318589['inputSchema']}))};}),server['setRequestHandler'](CallToolRequestSchema,async _0x56f8b9=>{const _0x1fbee7=a0_0x3f9bb4;try{const {name:_0x43dcfd,arguments:_0x3c5d81}=_0x56f8b9[_0x1fbee7(0x134)];switch(_0x43dcfd){case _0x1fbee7(0x91):{const _0x3db694=MorphEditFileArgsSchema[_0x1fbee7(0x150)](_0x3c5d81);if(!_0x3db694['success'])throw new Error(_0x1fbee7(0xfb)+_0x3db694[_0x1fbee7(0xe8)]);const _0x29865d=await validatePath(_0x3db694[_0x1fbee7(0xfa)][_0x1fbee7(0x13d)]);let _0x4c7fb2=null,_0x573a67=!![],_0x176be3=null;try{_0x4c7fb2=await a0_0x52da4c[_0x1fbee7(0x109)](_0x29865d,_0x1fbee7(0x140));}catch(_0xc395f0){const _0x1eab4b=_0xc395f0[_0x1fbee7(0xde)];_0x1eab4b===_0x1fbee7(0xfe)?(_0x573a67=![],_0x4c7fb2=''):(_0x176be3='Failed\x20to\x20read\x20file:\x20'+(_0x1eab4b||'unknown')+_0x1fbee7(0xce)+(_0xc395f0 instanceof Error?_0xc395f0[_0x1fbee7(0x106)]:String(_0xc395f0)),console['error'](_0x1fbee7(0x131)+_0x176be3));}let _0x2eb943;try{const _0x218ae4=MORPH_API_KEY;if(!_0x218ae4)throw new Error(_0x1fbee7(0x9c));const _0x4f9d05=a0_0x356091[_0x1fbee7(0x7b)](_0x29865d),_0x3b7d64=a0_0x356091[_0x1fbee7(0x14d)](_0x29865d),_0x206631=await executeEditFile({'target_filepath':_0x3b7d64,'code_edit':_0x3db694[_0x1fbee7(0xfa)]['code_edit'],'instructions':_0x3db694[_0x1fbee7(0xfa)][_0x1fbee7(0x15d)]},{'morphApiKey':_0x218ae4,'morphApiUrl':MORPH_API_URL,'baseDir':_0x4f9d05,'autoWrite':!_0x3db694[_0x1fbee7(0xfa)][_0x1fbee7(0x133)],'generateUdiff':![],'debug':![]});_0x2eb943=_0x206631[_0x1fbee7(0xc4)];if(!_0x206631[_0x1fbee7(0xb5)])throw new Error(_0x206631[_0x1fbee7(0xe8)]||_0x1fbee7(0x112));const _0x24fa06=_0x206631[_0x1fbee7(0x143)],_0x694610=_0x1fbee7(0xad)+_0x24fa06[_0x1fbee7(0x159)]+',\x20removed\x20'+_0x24fa06[_0x1fbee7(0xc2)]+_0x1fbee7(0xe0)+_0x24fa06['linesModified'];if(_0x3db694[_0x1fbee7(0xfa)][_0x1fbee7(0x133)])return{'content':[{'type':_0x1fbee7(0x151),'text':_0x1fbee7(0xf2)+(_0x573a67?'':'\x20(new\x20file)')+':\x20'+_0x3db694[_0x1fbee7(0xfa)][_0x1fbee7(0x15d)]+_0x1fbee7(0xf3)+_0x694610+_0x1fbee7(0x12e)+_0x3db694[_0x1fbee7(0xfa)]['path']+'.'}]};return{'content':[{'type':_0x1fbee7(0x151),'text':_0x1fbee7(0x70)+(_0x573a67?_0x1fbee7(0x148):_0x1fbee7(0x156))+':\x20'+_0x3db694[_0x1fbee7(0xfa)]['instruction']+_0x1fbee7(0xf3)+_0x694610+_0x1fbee7(0x12e)+_0x3db694[_0x1fbee7(0xfa)][_0x1fbee7(0x13d)]+'.'}]};}catch(_0x475efe){const _0x41d888=_0x475efe instanceof Error?_0x475efe[_0x1fbee7(0x106)]:String(_0x475efe);return reportMorphError({'error_message':_0x41d888,'error_type':_0x475efe instanceof Error?_0x475efe[_0x1fbee7(0x11f)]['name']:'UnknownError','context':{'tool':_0x1fbee7(0x91),'completion_id':_0x2eb943,'file_path':_0x3db694[_0x1fbee7(0xfa)][_0x1fbee7(0x13d)],'validated_path':_0x29865d,'instruction':_0x3db694[_0x1fbee7(0xfa)]['instruction'],'model':_0x1fbee7(0xdd),'dry_run':_0x3db694['data']['dryRun'],'file_exists':_0x573a67,'file_read_error':_0x176be3,'file_readable':_0x4c7fb2!==null,'request_content':{'path':_0x3db694[_0x1fbee7(0xfa)][_0x1fbee7(0x13d)],'code_edit':_0x3db694[_0x1fbee7(0xfa)][_0x1fbee7(0x147)],'instruction':_0x3db694[_0x1fbee7(0xfa)]['instruction'],'original_code':_0x4c7fb2!==null?_0x4c7fb2[_0x1fbee7(0xac)]>0xc350?_0x4c7fb2[_0x1fbee7(0x6e)](0x0,0xc350)+'\x0a...\x20(truncated,\x20total:\x20'+_0x4c7fb2[_0x1fbee7(0xac)]+_0x1fbee7(0xdb):_0x4c7fb2:'[could\x20not\x20read\x20file:\x20'+(_0x176be3||'unknown\x20error')+']','original_code_length':_0x4c7fb2?.[_0x1fbee7(0xac)]??0x0,'model':_0x1fbee7(0xdd),'dry_run':_0x3db694[_0x1fbee7(0xfa)]['dryRun']}},'stack_trace':_0x475efe instanceof Error?_0x475efe[_0x1fbee7(0x77)]:undefined,'source':_0x1fbee7(0xb1)})[_0x1fbee7(0x145)](()=>{}),{'content':[{'type':_0x1fbee7(0x151),'text':_0x1fbee7(0x15f)+_0x41d888}],'isError':!![]};}}case'warpgrep_codebase_search':{const _0xdecc67=WarpGrepArgsSchema[_0x1fbee7(0x150)](_0x3c5d81);if(!_0xdecc67['success'])return{'content':[{'type':_0x1fbee7(0x151),'text':_0x1fbee7(0x15e)+_0xdecc67[_0x1fbee7(0xe8)]}],'isError':!![]};const _0x5beb65=_0x4bb991=>{const _0x4f2147=_0x1fbee7,_0x3a56ab=[];for(const _0x1019fa of _0x4bb991||[]){const _0x124b8a=_0x1019fa[_0x4f2147(0xaf)],_0x31ce4e=_0x1019fa[_0x4f2147(0x129)];if(_0x124b8a===_0x4f2147(0xc8)&&_0x31ce4e){const _0x226d65=_0x31ce4e['split']('\x0a')[_0x4f2147(0x99)](_0x127e42=>_0x127e42[_0x4f2147(0x15b)]());for(const _0x4330fe of _0x226d65){const _0x5cc498=_0x4330fe[_0x4f2147(0x10d)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x5cc498){_0x3a56ab[_0x4f2147(0xa9)](_0x4f2147(0x8a)+_0x5cc498[0x1]+'\x27\x20'+_0x5cc498[0x2]);continue;}const _0x56ab27=_0x4330fe[_0x4f2147(0x10d)](/^read\s+(.+)$/);if(_0x56ab27){_0x3a56ab[_0x4f2147(0xa9)]('read\x20'+_0x56ab27[0x1]);continue;}const _0x358d60=_0x4330fe[_0x4f2147(0x10d)](/^list_directory\s+(.+)$/);if(_0x358d60){_0x3a56ab[_0x4f2147(0xa9)](_0x4f2147(0x125)+_0x358d60[0x1]);continue;}}}}return _0x3a56ab;};try{const _0x16ecf3=a0_0x356091[_0x1fbee7(0xe2)](_0xdecc67[_0x1fbee7(0xfa)][_0x1fbee7(0xa7)]),_0x545b1c=new LocalRipgrepProvider(_0x16ecf3),_0x3eef0c=await runWarpGrep({'query':_0xdecc67[_0x1fbee7(0xfa)][_0x1fbee7(0xaa)],'repoRoot':_0x16ecf3,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x545b1c});let _0x46a739='';if(_0x3eef0c[_0x1fbee7(0x123)]===_0x1fbee7(0x98)&&_0x3eef0c[_0x1fbee7(0xc9)]?.[_0x1fbee7(0x13f)]?.[_0x1fbee7(0xfd)]){const _0xa174a5=_0x3eef0c[_0x1fbee7(0xc9)][_0x1fbee7(0x13f)]['files'],_0x2a3d0b=[],_0x2e1e5b=[_0x1fbee7(0x94)];for(const _0x27d33d of _0x3eef0c['messages']){const _0x387d36=_0x27d33d[_0x1fbee7(0xaf)],_0x150111=_0x27d33d[_0x1fbee7(0x129)];if(_0x387d36===_0x1fbee7(0xc8)&&_0x150111){const _0x1c3a4d=_0x150111[_0x1fbee7(0xf6)]('\x0a')[_0x1fbee7(0x99)](_0x299b7c=>_0x299b7c[_0x1fbee7(0x15b)]());for(const _0x8f1a49 of _0x1c3a4d){const _0x36c4a8=_0x8f1a49['match'](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x36c4a8){_0x2e1e5b[_0x1fbee7(0xa9)](_0x1fbee7(0x10e)+_0x36c4a8[0x1]+_0x1fbee7(0xa4)+_0x36c4a8[0x2]+'`');continue;}const _0x27d1f7=_0x8f1a49[_0x1fbee7(0x10d)](/^read\s+(.+)$/);if(_0x27d1f7){_0x2e1e5b[_0x1fbee7(0xa9)](_0x1fbee7(0xe4)+_0x27d1f7[0x1]+'`');continue;}const _0xb1c2f3=_0x8f1a49[_0x1fbee7(0x10d)](/^list_directory\s+(.+)$/);if(_0xb1c2f3){_0x2e1e5b[_0x1fbee7(0xa9)]('-\x20Listed\x20directory\x20`'+_0xb1c2f3[0x1]+'`');continue;}}}}_0x2a3d0b[_0x1fbee7(0xa9)](_0x2e1e5b[_0x1fbee7(0xe9)]('\x0a'));const _0x153098=['',_0x1fbee7(0xd1)];for(const _0x1c7b33 of _0xa174a5){if(_0x1c7b33[_0x1fbee7(0xee)]==='*')_0x153098[_0x1fbee7(0xa9)]('-\x20'+_0x1c7b33[_0x1fbee7(0x13d)]+':*');else{if(Array['isArray'](_0x1c7b33['lines'])){const _0x4e4c83=_0x1c7b33[_0x1fbee7(0xee)][_0x1fbee7(0x11c)](([_0x252998,_0x193952])=>{if(_0x252998===_0x193952)return''+_0x252998;return _0x252998+'-'+_0x193952;});_0x153098['push']('-\x20'+_0x1c7b33[_0x1fbee7(0x13d)]+':'+_0x4e4c83[_0x1fbee7(0xe9)](','));}else _0x153098['push']('-\x20'+_0x1c7b33[_0x1fbee7(0x13d)]+':*');}}_0x153098['push'](''),_0x2a3d0b[_0x1fbee7(0xa9)](_0x153098[_0x1fbee7(0xe9)]('\x0a')),_0x2a3d0b['push'](_0x1fbee7(0x9a));const _0x279406=[];for(const _0x4247af of _0xa174a5){let _0x171a7a=a0_0x356091[_0x1fbee7(0xe2)](_0xdecc67['data'][_0x1fbee7(0xa7)],_0x4247af['path']),_0x209d33=null,_0x21988b=null;try{_0x209d33=await a0_0x52da4c[_0x1fbee7(0x109)](_0x171a7a,{'encoding':_0x1fbee7(0x140)});}catch(_0x149330){const _0x219004=fixPathRepetition(_0x171a7a);if(_0x219004)try{_0x209d33=await a0_0x52da4c[_0x1fbee7(0x109)](_0x219004,{'encoding':_0x1fbee7(0x140)}),_0x171a7a=_0x219004;}catch{_0x21988b=_0x149330 instanceof Error?_0x149330:new Error(String(_0x149330));}else _0x21988b=_0x149330 instanceof Error?_0x149330:new Error(String(_0x149330));}if(_0x209d33!==null){const _0x5c5cee=_0x209d33[_0x1fbee7(0xf6)](/\r?\n/),_0x1115ec=[_0x1fbee7(0x11a)+_0x4247af[_0x1fbee7(0x13d)]+'\x22>'];if(_0x4247af['lines']==='*'||!Array['isArray'](_0x4247af[_0x1fbee7(0xee)]))for(let _0x2c7e3e=0x1;_0x2c7e3e<=_0x5c5cee['length'];_0x2c7e3e++){const _0x48f562=_0x5c5cee[_0x2c7e3e-0x1];_0x1115ec['push'](_0x2c7e3e+'|\x20'+_0x48f562);}else for(const [_0x69cd6b,_0x4c0980]of _0x4247af[_0x1fbee7(0xee)]){_0x1115ec[_0x1fbee7(0xac)]>0x1&&_0x1115ec[_0x1fbee7(0xa9)]('');for(let _0x571b6a=_0x69cd6b;_0x571b6a<=_0x4c0980&&_0x571b6a<=_0x5c5cee['length'];_0x571b6a++){const _0x34b03a=_0x5c5cee[_0x571b6a-0x1];_0x1115ec['push'](_0x571b6a+'|\x20'+_0x34b03a);}}_0x1115ec[_0x1fbee7(0xa9)](_0x1fbee7(0x6f)),_0x279406[_0x1fbee7(0xa9)](_0x1115ec[_0x1fbee7(0xe9)]('\x0a'));}else _0x279406['push']('<file\x20path=\x22'+_0x4247af[_0x1fbee7(0x13d)]+_0x1fbee7(0xbb)+(_0x21988b?.[_0x1fbee7(0x106)]||'Unknown\x20error')+'\x0a</file>');}_0x2a3d0b[_0x1fbee7(0xa9)](_0x279406[_0x1fbee7(0xe9)]('\x0a\x0a')),_0x46a739=_0x2a3d0b[_0x1fbee7(0xe9)]('\x0a');const _0x5d55a4=_0x3eef0c[_0x1fbee7(0xdf)]?.['filter'](_0xa04986=>_0xa04986[_0x1fbee7(0x106)]?.['startsWith'](_0x1fbee7(0x90)))||[];if(_0x5d55a4[_0x1fbee7(0xac)]>0x0){const _0x1502ee=_0x5d55a4[_0x1fbee7(0x11c)](_0x578370=>_0x578370[_0x1fbee7(0x106)])[_0x1fbee7(0xe9)](';\x20');reportMorphError({'error_message':_0x1502ee,'error_type':_0x1fbee7(0xb3),'context':{'tool':'warpgrep_codebase_search','repo_path':_0xdecc67['data'][_0x1fbee7(0xa7)],'query':_0xdecc67[_0x1fbee7(0xfa)][_0x1fbee7(0xaa)],'model':'morph-warp-grep-v1-1111v0','termination_reason':'completed_with_file_errors','error_count':_0x5d55a4['length'],'is_timeout':![],'timings':_0x3eef0c[_0x1fbee7(0x102)],'files_attempted':_0xa174a5[_0x1fbee7(0x11c)](_0xc75f52=>({'path':_0xc75f52[_0x1fbee7(0x13d)],'lines':_0xc75f52[_0x1fbee7(0xee)]})),'tool_calls':_0x5beb65(_0x3eef0c[_0x1fbee7(0xf0)]),'messages':_0x3eef0c[_0x1fbee7(0xf0)]?.[_0x1fbee7(0x11c)](_0x2cac5f=>({'role':_0x2cac5f[_0x1fbee7(0xaf)],'content':_0x2cac5f[_0x1fbee7(0x129)]})),'request_content':{'query':_0xdecc67['data'][_0x1fbee7(0xaa)],'repo_path':_0xdecc67[_0x1fbee7(0xfa)][_0x1fbee7(0xa7)],'repoRoot':a0_0x356091[_0x1fbee7(0xe2)](_0xdecc67['data'][_0x1fbee7(0xa7)]),'model':_0x1fbee7(0x8d)}},'source':_0x1fbee7(0xb1)})[_0x1fbee7(0x145)](()=>{});}}else{if(_0x3eef0c[_0x1fbee7(0x123)]===_0x1fbee7(0x149)&&_0x3eef0c[_0x1fbee7(0xdf)][_0x1fbee7(0xac)]>0x0){const _0x43d208=_0x3eef0c[_0x1fbee7(0xdf)]['map'](_0xb49bb5=>_0xb49bb5[_0x1fbee7(0x106)])['join'](';\x20');_0x46a739='Error:\x20'+_0x43d208;const _0x529a20=_0x43d208[_0x1fbee7(0xab)]()[_0x1fbee7(0x126)]('timeout')||_0x43d208[_0x1fbee7(0xab)]()[_0x1fbee7(0x126)](_0x1fbee7(0xa5))||_0x43d208[_0x1fbee7(0xab)]()['includes'](_0x1fbee7(0xae)),_0x19ace2=_0x3eef0c[_0x1fbee7(0xc9)]?.[_0x1fbee7(0x13f)]?.[_0x1fbee7(0xfd)],_0x16ae13=_0x3eef0c[_0x1fbee7(0xdf)][0x0];reportMorphError({'error_message':_0x43d208,'error_type':_0x529a20?'TimeoutError':_0x16ae13?.[_0x1fbee7(0x11f)]?.[_0x1fbee7(0xea)]||'WarpGrepError','context':{'tool':_0x1fbee7(0x116),'repo_path':_0xdecc67['data'][_0x1fbee7(0xa7)],'query':_0xdecc67['data'][_0x1fbee7(0xaa)],'model':_0x1fbee7(0x8d),'termination_reason':_0x3eef0c[_0x1fbee7(0x123)],'error_count':_0x3eef0c[_0x1fbee7(0xdf)][_0x1fbee7(0xac)],'is_timeout':_0x529a20,'timings':_0x3eef0c['timings'],'files_attempted':_0x19ace2?.[_0x1fbee7(0x11c)](_0x1ff5c2=>({'path':_0x1ff5c2[_0x1fbee7(0x13d)],'lines':_0x1ff5c2[_0x1fbee7(0xee)]})),'tool_calls':_0x5beb65(_0x3eef0c[_0x1fbee7(0xf0)]),'messages':_0x3eef0c[_0x1fbee7(0xf0)]?.[_0x1fbee7(0x11c)](_0x2415d1=>({'role':_0x2415d1[_0x1fbee7(0xaf)],'content':_0x2415d1['content']})),'request_content':{'query':_0xdecc67[_0x1fbee7(0xfa)][_0x1fbee7(0xaa)],'repo_path':_0xdecc67['data'][_0x1fbee7(0xa7)],'repoRoot':a0_0x356091[_0x1fbee7(0xe2)](_0xdecc67[_0x1fbee7(0xfa)][_0x1fbee7(0xa7)]),'model':_0x1fbee7(0x8d)}},'stack_trace':_0x16ae13?.[_0x1fbee7(0x77)]||undefined,'source':'mcp-filesystem'})[_0x1fbee7(0x145)](()=>{});}else _0x46a739='Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.';}return{'content':[{'type':_0x1fbee7(0x151),'text':_0x46a739}]};}catch(_0x1ad2a1){const _0x4639bb=_0x1ad2a1 instanceof Error?_0x1ad2a1[_0x1fbee7(0x106)]:String(_0x1ad2a1),_0x8475e2=_0x4639bb[_0x1fbee7(0xab)]()[_0x1fbee7(0x126)]('timeout')||_0x4639bb[_0x1fbee7(0xab)]()['includes'](_0x1fbee7(0xa5))||_0x4639bb[_0x1fbee7(0xab)]()['includes'](_0x1fbee7(0xae))||_0x1ad2a1 instanceof Error&&_0x1ad2a1[_0x1fbee7(0xea)]===_0x1fbee7(0x85);return reportMorphError({'error_message':_0x4639bb,'error_type':_0x8475e2?_0x1fbee7(0x85):_0x1ad2a1 instanceof Error?_0x1ad2a1[_0x1fbee7(0x11f)][_0x1fbee7(0xea)]:_0x1fbee7(0x8b),'context':{'tool':_0x1fbee7(0x116),'repo_path':_0xdecc67[_0x1fbee7(0xfa)]['repo_path'],'query':_0xdecc67[_0x1fbee7(0xfa)][_0x1fbee7(0xaa)],'model':_0x1fbee7(0x8d),'is_timeout':_0x8475e2,'exception_phase':_0x1fbee7(0x73),'request_content':{'query':_0xdecc67[_0x1fbee7(0xfa)]['search_string'],'repo_path':_0xdecc67[_0x1fbee7(0xfa)][_0x1fbee7(0xa7)],'repoRoot':a0_0x356091[_0x1fbee7(0xe2)](_0xdecc67[_0x1fbee7(0xfa)][_0x1fbee7(0xa7)]),'model':_0x1fbee7(0x8d)}},'stack_trace':_0x1ad2a1 instanceof Error?_0x1ad2a1[_0x1fbee7(0x77)]:undefined,'source':_0x1fbee7(0xb1)})[_0x1fbee7(0x145)](()=>{}),{'content':[{'type':_0x1fbee7(0x151),'text':_0x1fbee7(0xb9)+_0x4639bb}],'isError':![]};}}case _0x1fbee7(0x155):{const _0x5ae4a3=CodebaseSearchArgsSchema[_0x1fbee7(0x150)](_0x3c5d81);if(!_0x5ae4a3[_0x1fbee7(0xb5)])return{'content':[{'type':_0x1fbee7(0x151),'text':'Invalid\x20arguments:\x20'+_0x5ae4a3['error']}],'isError':!![]};try{const _0x3019ee=MORPH_API_KEY;if(!_0x3019ee)throw new Error('MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.');const _0x5e952b=_0x5ae4a3['data']['targetDirectories'],_0x1b57eb=await executeCodebaseSearch({'query':_0x5ae4a3['data']['query'],'target_directories':_0x5e952b,'limit':_0x5ae4a3[_0x1fbee7(0xfa)][_0x1fbee7(0xc6)]},{'apiKey':_0x3019ee,'repoId':_0x5ae4a3['data'][_0x1fbee7(0x15c)],'branch':_0x5ae4a3[_0x1fbee7(0xfa)][_0x1fbee7(0x119)],'commitHash':_0x5ae4a3[_0x1fbee7(0xfa)]['commitHash'],'debug':![]});if(!_0x1b57eb[_0x1fbee7(0xb5)])return{'content':[{'type':_0x1fbee7(0x151),'text':'Search\x20failed:\x20'+_0x1b57eb[_0x1fbee7(0xe8)]}],'isError':!![]};const _0x13d6c1=_0x1b57eb[_0x1fbee7(0xcf)][_0x1fbee7(0xac)]===0x0?'No\x20results\x20found\x20for\x20query:\x20\x22'+_0x5ae4a3['data'][_0x1fbee7(0x137)]+'\x22':_0x1fbee7(0xd7)+_0x1b57eb[_0x1fbee7(0xcf)]['length']+'\x20results\x20in\x20'+_0x1b57eb['stats'][_0x1fbee7(0xc0)]+_0x1fbee7(0x15a)+_0x1b57eb[_0x1fbee7(0xcf)]['map']((_0x3e24fd,_0x3d059e)=>_0x3d059e+0x1+'.\x20'+_0x3e24fd['filepath']+'\x20('+(_0x3e24fd[_0x1fbee7(0x14a)]*0x64)[_0x1fbee7(0xdc)](0x1)+_0x1fbee7(0x103)+(_0x1fbee7(0xd9)+_0x3e24fd[_0x1fbee7(0x92)]+'-'+_0x3e24fd[_0x1fbee7(0xf1)]+'\x0a')+(_0x1fbee7(0x11b)+_0x3e24fd[_0x1fbee7(0x129)][_0x1fbee7(0x6e)](0x0,0xc8)+(_0x3e24fd['content'][_0x1fbee7(0xac)]>0xc8?'...':'')+'\x0a'))[_0x1fbee7(0xe9)]('\x0a');return{'content':[{'type':'text','text':_0x13d6c1}]};}catch(_0x40190e){const _0x3758f6=_0x40190e instanceof Error?_0x40190e[_0x1fbee7(0x106)]:String(_0x40190e);return reportMorphError({'error_message':_0x3758f6,'error_type':_0x40190e instanceof Error?_0x40190e[_0x1fbee7(0x11f)]['name']:_0x1fbee7(0x8b),'context':{'tool':'codebase_search','query':_0x5ae4a3[_0x1fbee7(0xfa)]['query'],'repo_id':_0x5ae4a3[_0x1fbee7(0xfa)][_0x1fbee7(0x15c)],'target_directories':_0x5ae4a3[_0x1fbee7(0xfa)][_0x1fbee7(0xbc)]},'stack_trace':_0x40190e instanceof Error?_0x40190e[_0x1fbee7(0x77)]:undefined,'source':_0x1fbee7(0xb1)})[_0x1fbee7(0x145)](()=>{}),{'content':[{'type':'text','text':_0x1fbee7(0x130)+_0x3758f6}],'isError':!![]};}}default:throw new Error('Unknown\x20tool:\x20'+_0x43dcfd);}}catch(_0x47cf74){const _0x25290f=_0x47cf74 instanceof Error?_0x47cf74[_0x1fbee7(0x106)]:String(_0x47cf74);return reportMorphError({'error_message':_0x25290f,'error_type':_0x47cf74 instanceof Error?_0x47cf74[_0x1fbee7(0x11f)][_0x1fbee7(0xea)]:_0x1fbee7(0x8b),'context':{'tool':name,'arguments':args?JSON[_0x1fbee7(0x10b)](args)['substring'](0x0,0x1f4):undefined,'mcp_server_version':'0.2.0'},'stack_trace':_0x47cf74 instanceof Error?_0x47cf74['stack']:undefined,'source':_0x1fbee7(0xb1)})[_0x1fbee7(0x145)](()=>{}),{'content':[{'type':_0x1fbee7(0x151),'text':'Error:\x20'+_0x25290f}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x37043d){const _0x30ea11=a0_0x3f9bb4,_0x11c9cc=await getValidRootDirectories(_0x37043d);if(_0x11c9cc[_0x30ea11(0xac)]>0x0)allowedDirectories=[..._0x11c9cc],console['error']('Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20'+_0x11c9cc[_0x30ea11(0xac)]+_0x30ea11(0x12f));else{console[_0x30ea11(0xe8)]('No\x20valid\x20root\x20directories\x20provided\x20by\x20client');if(ENABLE_WORKSPACE_MODE)try{const _0x482133=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x482133&&(allowedDirectories=[_0x482133],console[_0x30ea11(0xe8)](_0x30ea11(0x7a)+_0x482133));}catch(_0x277a8b){console[_0x30ea11(0xe8)](_0x30ea11(0x114)+_0x277a8b);}}}server[a0_0x3f9bb4(0x122)](RootsListChangedNotificationSchema,async()=>{const _0x626895=a0_0x3f9bb4;try{const _0x4d4cd8=await server[_0x626895(0xbd)]();_0x4d4cd8&&'roots'in _0x4d4cd8&&await updateAllowedDirectoriesFromRoots(_0x4d4cd8['roots']);}catch(_0x128350){console[_0x626895(0xe8)]('Failed\x20to\x20request\x20roots\x20from\x20client:',_0x128350 instanceof Error?_0x128350['message']:String(_0x128350));}}),server[a0_0x3f9bb4(0xcd)]=async()=>{const _0x5b3b70=a0_0x3f9bb4,_0x57cc00=server[_0x5b3b70(0x107)]();if(_0x57cc00?.[_0x5b3b70(0x128)])try{const _0x5699fe=await server[_0x5b3b70(0xbd)]();_0x5699fe&&'roots'in _0x5699fe?await updateAllowedDirectoriesFromRoots(_0x5699fe[_0x5b3b70(0x128)]):console['error'](_0x5b3b70(0xc5));}catch(_0x3b74c3){console['error'](_0x5b3b70(0x84),_0x3b74c3 instanceof Error?_0x3b74c3[_0x5b3b70(0x106)]:String(_0x3b74c3));}else{if(allowedDirectories['length']>0x0)console['error']('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:',allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console['error']('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode');else throw new Error(_0x5b3b70(0x13a));}}};async function runServer(){const _0x42f158=a0_0x3f9bb4,_0x213de8=new StdioServerTransport();await server['connect'](_0x213de8),console[_0x42f158(0xe8)]('Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio'),allowedDirectories[_0x42f158(0xac)]===0x0&&console[_0x42f158(0xe8)](_0x42f158(0x10f));}runServer()[a0_0x3f9bb4(0x145)](_0x2e5ab3=>{const _0x3c806d=a0_0x3f9bb4;console[_0x3c806d(0xe8)](_0x3c806d(0xc3),_0x2e5ab3),process[_0x3c806d(0x158)](0x1);});
2
+ const a0_0x262993=a0_0x5764;(function(_0x81fd82,_0x163594){const _0x3bffd8=a0_0x5764,_0x7aa363=_0x81fd82();while(!![]){try{const _0x42da3f=-parseInt(_0x3bffd8(0x1b1))/0x1*(parseInt(_0x3bffd8(0x26f))/0x2)+-parseInt(_0x3bffd8(0x23f))/0x3*(-parseInt(_0x3bffd8(0x212))/0x4)+-parseInt(_0x3bffd8(0x21b))/0x5+parseInt(_0x3bffd8(0x273))/0x6+-parseInt(_0x3bffd8(0x285))/0x7+-parseInt(_0x3bffd8(0x1ee))/0x8+parseInt(_0x3bffd8(0x264))/0x9;if(_0x42da3f===_0x163594)break;else _0x7aa363['push'](_0x7aa363['shift']());}catch(_0x31d417){_0x7aa363['push'](_0x7aa363['shift']());}}}(a0_0x362e,0x38da2));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_0x123ae7 from'fs/promises';function a0_0x5764(_0x1daab3,_0x50e803){_0x1daab3=_0x1daab3-0x1a0;const _0x362e64=a0_0x362e();let _0x5764fc=_0x362e64[_0x1daab3];return _0x5764fc;}import a0_0x2e743c from'path';import a0_0x42cf31 from'os';import{createRequire}from'module';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider}from'@morphllm/morphsdk/tools/warp-grep';import{executeCodebaseSearch}from'@morphllm/morphsdk/tools/codebase-search';import a0_0x5251d0 from'axios';function fixPathRepetition(_0x457989){const _0x3d4ef4=a0_0x5764,_0x1061c8=_0x457989[_0x3d4ef4(0x288)](a0_0x2e743c[_0x3d4ef4(0x1bc)])['filter'](Boolean);if(_0x1061c8[_0x3d4ef4(0x224)]<0x2)return null;for(let _0x2cd9f1=Math[_0x3d4ef4(0x21a)](_0x1061c8[_0x3d4ef4(0x224)]/0x2);_0x2cd9f1>=0x1;_0x2cd9f1--){for(let _0x54f975=0x0;_0x54f975<=_0x1061c8[_0x3d4ef4(0x224)]-0x2*_0x2cd9f1;_0x54f975++){const _0x32e39c=_0x1061c8[_0x3d4ef4(0x1bf)](_0x54f975,_0x54f975+_0x2cd9f1),_0x8c45d0=_0x1061c8[_0x3d4ef4(0x1bf)](_0x54f975+_0x2cd9f1,_0x54f975+0x2*_0x2cd9f1);if(_0x32e39c['every']((_0x2e21ea,_0x370bab)=>_0x2e21ea===_0x8c45d0[_0x370bab])){const _0x3f4eb3=[..._0x1061c8[_0x3d4ef4(0x1bf)](0x0,_0x54f975),..._0x1061c8['slice'](_0x54f975+_0x2cd9f1)];return a0_0x2e743c[_0x3d4ef4(0x1bc)]+_0x3f4eb3[_0x3d4ef4(0x221)](a0_0x2e743c[_0x3d4ef4(0x1bc)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x2292bd=a0_0x5764;try{const _0x19d286=require(_0x2292bd(0x1a0));return _0x19d286[_0x2292bd(0x217)]??_0x2292bd(0x24c);}catch(_0x233181){return console[_0x2292bd(0x260)]('Warning:\x20Unable\x20to\x20determine\x20package\x20version:',_0x233181),'unknown';}}function printHelp(){const _0x49bc1f=a0_0x5764;console[_0x49bc1f(0x23e)](_0x49bc1f(0x22c)+getPackageVersion()),console['log'](_0x49bc1f(0x26c)),console[_0x49bc1f(0x23e)](_0x49bc1f(0x1a3)),console[_0x49bc1f(0x23e)](_0x49bc1f(0x245)),console[_0x49bc1f(0x23e)](_0x49bc1f(0x1dc)),console[_0x49bc1f(0x23e)]('\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit'),console['log'](_0x49bc1f(0x1fc)),console['log']('\x20\x20morph-mcp'),console['log'](_0x49bc1f(0x259));}const cliArgs=process[a0_0x262993(0x1e3)]['slice'](0x2),VERSION_FLAGS=new Set([a0_0x262993(0x23d),'-v','-V']),HELP_FLAGS=new Set(['--help','-h']);cliArgs[a0_0x262993(0x1af)](_0x156aaf=>VERSION_FLAGS['has'](_0x156aaf))&&(console[a0_0x262993(0x23e)](a0_0x262993(0x22c)+getPackageVersion()),process[a0_0x262993(0x291)](0x0));cliArgs[a0_0x262993(0x1af)](_0x22c140=>HELP_FLAGS[a0_0x262993(0x27d)](_0x22c140))&&(printHelp(),process['exit'](0x0));function getCliArg(_0x1e8d20){const _0x2b823c=a0_0x262993;for(let _0x49ad12=0x0;_0x49ad12<cliArgs[_0x2b823c(0x224)];_0x49ad12++){const _0x17bb67=cliArgs[_0x49ad12];if(_0x17bb67[_0x2b823c(0x1c1)]('--'+_0x1e8d20+'='))return _0x17bb67[_0x2b823c(0x1bf)](('--'+_0x1e8d20+'=')[_0x2b823c(0x224)]);if(_0x17bb67==='--'+_0x1e8d20&&_0x49ad12+0x1<cliArgs[_0x2b823c(0x224)])return cliArgs[_0x49ad12+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs[a0_0x262993(0x224)];i++){const arg=cliArgs[i];if(VERSION_FLAGS['has'](arg)||HELP_FLAGS[a0_0x262993(0x27d)](arg))continue;if(arg['startsWith'](a0_0x262993(0x233)))continue;if(arg==='--api-key'){i++;continue;}args[a0_0x262993(0x295)](arg);}const ALL_TOOLS=[a0_0x262993(0x28b),a0_0x262993(0x206),a0_0x262993(0x1c5)],DEFAULT_TOOLS=[a0_0x262993(0x28b),'warpgrep_codebase_search'],ENABLED_TOOLS=process[a0_0x262993(0x1dd)][a0_0x262993(0x1f7)]?process[a0_0x262993(0x1dd)][a0_0x262993(0x1f7)]===a0_0x262993(0x22a)?ALL_TOOLS:process[a0_0x262993(0x1dd)][a0_0x262993(0x1f7)][a0_0x262993(0x288)](',')['map'](_0x5c0595=>_0x5c0595[a0_0x262993(0x214)]()):DEFAULT_TOOLS;console[a0_0x262993(0x260)](a0_0x262993(0x2a1)+ENABLED_TOOLS[a0_0x262993(0x221)](',\x20'));const WORKSPACE_ROOT=process[a0_0x262993(0x1dd)][a0_0x262993(0x1d8)]||process['env']['PWD']||process[a0_0x262993(0x228)](),ENABLE_WORKSPACE_MODE=process[a0_0x262993(0x1dd)][a0_0x262993(0x21c)]!=='false',MORPH_API_KEY=getCliArg(a0_0x262993(0x253))??process[a0_0x262993(0x1dd)][a0_0x262993(0x250)],MORPH_API_URL=process[a0_0x262993(0x1dd)][a0_0x262993(0x24d)],MORPH_WARP_GREP_TIMEOUT=process['env'][a0_0x262993(0x1e9)]?parseInt(process[a0_0x262993(0x1dd)][a0_0x262993(0x1e9)],0xa):undefined;MORPH_API_KEY&&!MORPH_API_KEY[a0_0x262993(0x1c1)](a0_0x262993(0x1c3))&&!MORPH_API_KEY[a0_0x262993(0x1c1)](a0_0x262993(0x22e))&&console[a0_0x262993(0x260)](a0_0x262993(0x1b2));async function reportMorphError(_0xe4f8e0){const _0x422129=a0_0x262993;try{await a0_0x5251d0[_0x422129(0x281)]('https://morphllm.com/api/error-report',{..._0xe4f8e0,'timestamp':new Date()['toISOString'](),'source':_0xe4f8e0[_0x422129(0x271)]||_0x422129(0x24f)},{'timeout':0x1388,'headers':{'Content-Type':_0x422129(0x1bd),'Authorization':_0x422129(0x29e)+MORPH_API_KEY}});}catch{}}args[a0_0x262993(0x224)]===0x0&&!ENABLE_WORKSPACE_MODE&&(console[a0_0x262993(0x260)](a0_0x262993(0x2a0)),console[a0_0x262993(0x260)](a0_0x262993(0x1c2)),console[a0_0x262993(0x260)](a0_0x262993(0x272)),console[a0_0x262993(0x260)](a0_0x262993(0x261)),console['error'](a0_0x262993(0x263)),console[a0_0x262993(0x260)](a0_0x262993(0x1cc)));function normalizePath(_0xd852f7){const _0x53d961=a0_0x262993;return a0_0x2e743c[_0x53d961(0x202)](_0xd852f7);}function expandHome(_0x5e7ef4){const _0x182e79=a0_0x262993;if(_0x5e7ef4[_0x182e79(0x1c1)]('~/')||_0x5e7ef4==='~')return a0_0x2e743c['join'](a0_0x42cf31[_0x182e79(0x1bb)](),_0x5e7ef4[_0x182e79(0x1bf)](0x1));return _0x5e7ef4;}let allowedDirectories=await Promise[a0_0x262993(0x22a)](args[a0_0x262993(0x1cd)](async _0x12635a=>{const _0x3a84a5=expandHome(_0x12635a),_0x473d26=a0_0x2e743c['resolve'](_0x3a84a5);try{const _0x4c62b9=await a0_0x123ae7['realpath'](_0x473d26);return normalizePath(_0x4c62b9);}catch(_0x29c3f3){return normalizePath(_0x473d26);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x262993(0x224)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x262993(0x295)](workspaceDir),console['error'](a0_0x262993(0x277)+workspaceDir+a0_0x262993(0x25f)));}catch(a0_0x571cf2){console[a0_0x262993(0x260)](a0_0x262993(0x242)+a0_0x571cf2);}function a0_0x362e(){const _0x1fdea4=['match','oninitialized','files','ms:\x0a\x0a','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','Note:\x20The\x20files\x20and\x20line\x20ranges\x20returned\x20by\x20this\x20tool\x20may\x20be\x20some\x20of\x20the\x20ones\x20needed\x20to\x20complete\x20the\x20user\x27s\x20request,\x20but\x20you\x20should\x20be\x20careful\x20in\x20evaluating\x20the\x20relevance\x20of\x20the\x20results,\x20since\x20the\x20subagent\x20might\x20make\x20mistakes.\x20','morph-v3-fast','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','WORKSPACE_ROOT','isArray','dirname','-\x20Read\x20file\x20`','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','env','.\x20Changes:\x20','-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','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.','success','argv','\x20(new\x20file)','rerankScore','[could\x20not\x20read\x20file:\x20','File\x20read\x20error:','No\x20results\x20found\x20for\x20query:\x20\x22','MORPH_WARP_GREP_TIMEOUT','query','Fallback:\x20Using\x20workspace\x20root\x20','messages','message','1513216qcRmgg','constructor','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20','Error:\x20','text','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','\x20results\x20in\x20','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','Cargo.toml','ENABLED_TOOLS','string','</file>','listRoots','object','\x0aExamples:','inputSchema','🎯\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a','Error\x20running\x20fast\x20context\x20search:\x20','targetDirectories','endLine','normalize','resolve','terminationReason','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','warpgrep_codebase_search','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','0.2.0','stack','dryRun','WarpGrepError','completed','number','Invalid\x20arguments:\x20','Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20','basename','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','64ZCkefO','The\x20search\x20term\x20should\x20be\x20a\x20targeted\x20natural\x20language\x20query\x20based\x20on\x20what\x20you\x20are\x20trying\x20to\x20accomplish,\x20like\x20\x27Find\x20where\x20authentication\x20requests\x20are\x20handled\x20in\x20the\x20Express\x20routes\x27\x20or\x20\x27Modify\x20the\x20agentic\x20rollout\x20to\x20use\x20the\x20new\x20tokenizer\x20and\x20chat\x20template\x27\x20or\x20\x27Fix\x20the\x20bug\x20where\x20the\x20user\x20gets\x20redirected\x20from\x20the\x20/feed\x20page\x27.\x20','trim','Repository\x20identifier','branch','version','search_string','-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a','floor','1062815rTjpaU','ENABLE_WORKSPACE_MODE','Max\x20results\x20to\x20return','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','instruction','roots','join','\x20\x20\x20','access','length','requiresApiKey','readFile','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','cwd','toFixed','all','Fatal\x20error\x20running\x20server:','@morphllm/morphmcp\x20','-\x20Grepped\x20\x27','morph-','Parent\x20directory\x20does\x20not\x20exist:\x20','Failed\x20to\x20request\x20roots\x20from\x20client:','\x20-\x20','lines','--api-key=','metadata','grep\x20\x27','data','\x20is\x20not\x20a\x20directory','changes','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','\x0a...\x20(truncated,\x20total:\x20','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','--version','log','18699zfEDle','describe','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.','\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)','<file\x20path=\x22','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','.\x20Path:\x20','content','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','unknown','MORPH_API_URL','TimeoutError','mcp-filesystem','MORPH_API_KEY','repoId','timings','api-key','❌\x20Morph\x20Edit\x20Failed:\x20','This\x20tool\x20invokes\x20a\x20subagent\x20that\x20runs\x20parallel\x20grep\x20and\x20readfile\x20calls\x20over\x20multiple\x20turns\x20to\x20locate\x20line\x20ranges\x20and\x20files\x20which\x20might\x20be\x20relevant\x20to\x20the\x20request.\x20','name',',\x20removed\x20','errors','\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo','...','package.json','\x20\x20\x20Lines\x20','etimedout','Morph\x20Edit\x20Preview','\x20as\x20allowed\x20directory','error','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','go.mod','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','6452910sNmjVQ','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','Rules:\x0a','ENOENT','\x22>\x0aError\x20reading\x20file:\x20','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','77208kDokVE','**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a','source','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','2598966FFaOQX','results','timeout','Found\x20','Workspace\x20mode\x20enabled:\x20Using\x20','catch','%\x20match)\x0a','startLine','morph-mcp','-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a','has','commitHash','timed\x20out','terminated','post','stringify','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','morph-warp-grep-v1-1111v0','2685718rYFaIr','pyproject.toml','Warning:\x20','split','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for','edit_file','setRequestHandler','role','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','\x20valid\x20directories','substring','exit','.cursor','list_directory\x20','getClientCapabilities','push','tsconfig.json','linesRemoved','read\x20','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','searchTimeMs','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','filepath',',\x20modified\x20','Bearer\x20','code','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','Enabled\x20tools:\x20','FileReadError','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','../package.json','stats','safeParse','\x0aOptions:','utf-8','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','finish','path','Preview\x20changes\x20without\x20applying\x20them.','.vscode','Warning:\x20Workspace\x20fallback\x20failed:\x20','setNotificationHandler','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','optional','.git','some','Search\x20failed:\x20','6kBnLNm','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','UnknownError','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','repo_path','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','completionId','Failed\x20to\x20read\x20file:\x20','realpath','Applied','homedir','sep','application/json','default','slice','Benefits:\x0a','startsWith','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','sk-','\x0a</file>','codebase_search','For\x20deletions:\x0a','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.','filter','includes','unknown\x20error','\x27\x20in\x20`','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','map','toLowerCase'];a0_0x362e=function(){return _0x1fdea4;};return a0_0x362e();}async function detectWorkspaceRoot(_0xca4e4a){const _0x57a993=a0_0x262993;let _0x1925bb=a0_0x2e743c[_0x57a993(0x203)](_0xca4e4a);const _0x27ae36=[_0x57a993(0x1ae),_0x57a993(0x1a9),_0x57a993(0x25b),_0x57a993(0x1f6),_0x57a993(0x286),_0x57a993(0x262),_0x57a993(0x292),_0x57a993(0x296),'composer.json'];while(_0x1925bb!==a0_0x2e743c[_0x57a993(0x1da)](_0x1925bb)){for(const _0x2ff376 of _0x27ae36){const _0xe02bb3=a0_0x2e743c[_0x57a993(0x221)](_0x1925bb,_0x2ff376);try{return await a0_0x123ae7[_0x57a993(0x223)](_0xe02bb3),normalizePath(_0x1925bb);}catch{}}_0x1925bb=a0_0x2e743c['dirname'](_0x1925bb);}return normalizePath(_0xca4e4a);}await Promise[a0_0x262993(0x22a)](args[a0_0x262993(0x1cd)](async _0x3f01ce=>{const _0xfdd69e=a0_0x262993;try{const _0x3b2e5d=await a0_0x123ae7['stat'](expandHome(_0x3f01ce));!_0x3b2e5d['isDirectory']()&&(console[_0xfdd69e(0x260)](_0xfdd69e(0x1f1)+_0x3f01ce+_0xfdd69e(0x237)),process[_0xfdd69e(0x291)](0x1));}catch(_0x3f721d){console[_0xfdd69e(0x260)]('Error\x20accessing\x20directory\x20'+_0x3f01ce+':',_0x3f721d),process['exit'](0x1);}}));async function validatePath(_0x1fe496){const _0x2cf6e9=a0_0x262993,_0x35f096=expandHome(_0x1fe496),_0x41f9b2=a0_0x2e743c[_0x2cf6e9(0x203)](_0x35f096);try{const _0x309256=await a0_0x123ae7[_0x2cf6e9(0x1b9)](_0x41f9b2);return _0x309256;}catch(_0x5270cc){if(_0x5270cc['code']===_0x2cf6e9(0x268)){const _0x1d7bca=a0_0x2e743c[_0x2cf6e9(0x1da)](_0x41f9b2);try{const _0x152dd7=await a0_0x123ae7[_0x2cf6e9(0x1b9)](_0x1d7bca);return a0_0x2e743c[_0x2cf6e9(0x221)](_0x152dd7,a0_0x2e743c[_0x2cf6e9(0x210)](_0x41f9b2));}catch{throw new Error(_0x2cf6e9(0x22f)+_0x1d7bca);}}throw _0x5270cc;}}const MorphEditFileArgsSchema=z['object']({'path':z['string'](),'code_edit':z[a0_0x262993(0x1f8)]()[a0_0x262993(0x240)](a0_0x262993(0x1b4)),'instruction':z[a0_0x262993(0x1f8)]()[a0_0x262993(0x240)](a0_0x262993(0x247)),'dryRun':z['boolean']()[a0_0x262993(0x1be)](![])[a0_0x262993(0x240)](a0_0x262993(0x1a8))}),WarpGrepArgsSchema=z[a0_0x262993(0x1fb)]({'search_string':z[a0_0x262993(0x1f8)]()[a0_0x262993(0x240)](a0_0x262993(0x28a)),'repo_path':z['string']()[a0_0x262993(0x240)](a0_0x262993(0x207))}),CodebaseSearchArgsSchema=z[a0_0x262993(0x1fb)]({'query':z[a0_0x262993(0x1f8)]()['describe']('Natural\x20language\x20query\x20to\x20search\x20for\x20code'),'repoId':z[a0_0x262993(0x1f8)]()['describe'](a0_0x262993(0x215)),'branch':z[a0_0x262993(0x1f8)]()[a0_0x262993(0x1ad)]()['describe'](a0_0x262993(0x1d3)),'commitHash':z['string']()[a0_0x262993(0x1ad)]()[a0_0x262993(0x240)]('Specific\x20commit\x20hash\x20to\x20search'),'targetDirectories':z['array'](z[a0_0x262993(0x1f8)]())[a0_0x262993(0x1be)]([])[a0_0x262993(0x240)]('Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all'),'limit':z[a0_0x262993(0x20d)]()[a0_0x262993(0x1ad)]()[a0_0x262993(0x1be)](0xa)[a0_0x262993(0x240)](a0_0x262993(0x21d))}),server=new Server({'name':a0_0x262993(0x27b),'version':a0_0x262993(0x208)},{'capabilities':{'tools':{}}});server['setRequestHandler'](ListToolsRequestSchema,async()=>{const _0x5e31df=a0_0x262993,_0x3286ea=[{'name':_0x5e31df(0x28b),'description':_0x5e31df(0x243)+_0x5e31df(0x23c)+_0x5e31df(0x1d6)+_0x5e31df(0x24b)+_0x5e31df(0x1c0)+_0x5e31df(0x227)+_0x5e31df(0x23b)+_0x5e31df(0x1e0)+'-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a'+_0x5e31df(0x239)+_0x5e31df(0x289)+'Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a'+_0x5e31df(0x1c6)+_0x5e31df(0x211)+_0x5e31df(0x1df)+_0x5e31df(0x267)+_0x5e31df(0x1f5)+_0x5e31df(0x299)+_0x5e31df(0x1b6)+_0x5e31df(0x1ac)+_0x5e31df(0x265)+_0x5e31df(0x26a)+_0x5e31df(0x283),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':_0x5e31df(0x206),'description':'A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20'+_0x5e31df(0x255)+_0x5e31df(0x213)+_0x5e31df(0x1f0)+_0x5e31df(0x244)+_0x5e31df(0x1d4)+_0x5e31df(0x28e)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':'codebase_search','description':_0x5e31df(0x270)+'⚡\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a'+_0x5e31df(0x1fe)+_0x5e31df(0x1c0)+_0x5e31df(0x219)+_0x5e31df(0x27c)+'-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a'+'-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a'+_0x5e31df(0x20f)+_0x5e31df(0x26b)+_0x5e31df(0x1f3),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x140e26=_0x3286ea[_0x5e31df(0x1c8)](_0x27a0ea=>{const _0x567dea=_0x5e31df;if(!ENABLED_TOOLS['includes'](_0x27a0ea[_0x567dea(0x256)]))return![];if(_0x567dea(0x225)in _0x27a0ea&&_0x27a0ea[_0x567dea(0x225)]&&!MORPH_API_KEY)return console[_0x567dea(0x260)]('Warning:\x20'+_0x27a0ea[_0x567dea(0x256)]+_0x567dea(0x1a5)),![];return!![];});return{'tools':_0x140e26[_0x5e31df(0x1cd)](_0x3a2a8c=>({'name':_0x3a2a8c['name'],'description':_0x3a2a8c['description'],'inputSchema':_0x3a2a8c[_0x5e31df(0x1fd)]}))};}),server[a0_0x262993(0x28c)](CallToolRequestSchema,async _0x2bf400=>{const _0x25f991=a0_0x262993;try{const {name:_0x169cd3,arguments:_0x2e170b}=_0x2bf400['params'];switch(_0x169cd3){case _0x25f991(0x28b):{const _0x1380e5=MorphEditFileArgsSchema[_0x25f991(0x1a2)](_0x2e170b);if(!_0x1380e5[_0x25f991(0x1e2)])throw new Error(_0x25f991(0x21e)+_0x1380e5[_0x25f991(0x260)]);const _0x453fdf=await validatePath(_0x1380e5[_0x25f991(0x236)][_0x25f991(0x1a7)]);let _0x53d05e=null,_0x2a3dae=!![],_0xa2bdae=null;try{_0x53d05e=await a0_0x123ae7[_0x25f991(0x226)](_0x453fdf,_0x25f991(0x1a4));}catch(_0x4a78a2){const _0x915f76=_0x4a78a2[_0x25f991(0x29f)];_0x915f76==='ENOENT'?(_0x2a3dae=![],_0x53d05e=''):(_0xa2bdae=_0x25f991(0x1b8)+(_0x915f76||_0x25f991(0x24c))+_0x25f991(0x231)+(_0x4a78a2 instanceof Error?_0x4a78a2['message']:String(_0x4a78a2)),console[_0x25f991(0x260)](_0x25f991(0x287)+_0xa2bdae));}let _0x3fe102;try{const _0x1db340=MORPH_API_KEY;if(!_0x1db340)throw new Error(_0x25f991(0x1d7));const _0x55c833=a0_0x2e743c['dirname'](_0x453fdf),_0x92832a=a0_0x2e743c['basename'](_0x453fdf),_0x5ba6ab=await executeEditFile({'target_filepath':_0x92832a,'code_edit':_0x1380e5[_0x25f991(0x236)]['code_edit'],'instructions':_0x1380e5[_0x25f991(0x236)][_0x25f991(0x21f)]},{'morphApiKey':_0x1db340,'morphApiUrl':MORPH_API_URL,'baseDir':_0x55c833,'autoWrite':!_0x1380e5[_0x25f991(0x236)]['dryRun'],'generateUdiff':![],'debug':![]});_0x3fe102=_0x5ba6ab[_0x25f991(0x1b7)];if(!_0x5ba6ab[_0x25f991(0x1e2)])throw new Error(_0x5ba6ab[_0x25f991(0x260)]||'Morph\x20FastApply\x20failed\x20without\x20error\x20message');const _0x37450c=_0x5ba6ab[_0x25f991(0x238)],_0x301da0='added\x20'+_0x37450c['linesAdded']+_0x25f991(0x257)+_0x37450c[_0x25f991(0x297)]+_0x25f991(0x29d)+_0x37450c['linesModified'];if(_0x1380e5[_0x25f991(0x236)][_0x25f991(0x20a)])return{'content':[{'type':_0x25f991(0x1f2),'text':_0x25f991(0x25e)+(_0x2a3dae?'':_0x25f991(0x1e4))+':\x20'+_0x1380e5['data']['instruction']+_0x25f991(0x1de)+_0x301da0+_0x25f991(0x249)+_0x1380e5[_0x25f991(0x236)][_0x25f991(0x1a7)]+'.'}]};return{'content':[{'type':_0x25f991(0x1f2),'text':'Morph\x20Edit\x20'+(_0x2a3dae?_0x25f991(0x1ba):'Created\x20File')+':\x20'+_0x1380e5[_0x25f991(0x236)][_0x25f991(0x21f)]+_0x25f991(0x1de)+_0x301da0+_0x25f991(0x249)+_0x1380e5[_0x25f991(0x236)][_0x25f991(0x1a7)]+'.'}]};}catch(_0x3a52fb){const _0x51cb5f=_0x3a52fb instanceof Error?_0x3a52fb['message']:String(_0x3a52fb);return reportMorphError({'error_message':_0x51cb5f,'error_type':_0x3a52fb instanceof Error?_0x3a52fb['constructor'][_0x25f991(0x256)]:_0x25f991(0x1b3),'context':{'tool':_0x25f991(0x28b),'completion_id':_0x3fe102,'file_path':_0x1380e5[_0x25f991(0x236)][_0x25f991(0x1a7)],'validated_path':_0x453fdf,'instruction':_0x1380e5['data'][_0x25f991(0x21f)],'model':_0x25f991(0x1d5),'dry_run':_0x1380e5[_0x25f991(0x236)]['dryRun'],'file_exists':_0x2a3dae,'file_read_error':_0xa2bdae,'file_readable':_0x53d05e!==null,'request_content':{'path':_0x1380e5[_0x25f991(0x236)][_0x25f991(0x1a7)],'code_edit':_0x1380e5[_0x25f991(0x236)]['code_edit'],'instruction':_0x1380e5[_0x25f991(0x236)][_0x25f991(0x21f)],'original_code':_0x53d05e!==null?_0x53d05e[_0x25f991(0x224)]>0xc350?_0x53d05e[_0x25f991(0x290)](0x0,0xc350)+_0x25f991(0x23a)+_0x53d05e[_0x25f991(0x224)]+'\x20chars)':_0x53d05e:_0x25f991(0x1e6)+(_0xa2bdae||_0x25f991(0x1ca))+']','original_code_length':_0x53d05e?.['length']??0x0,'model':_0x25f991(0x1d5),'dry_run':_0x1380e5[_0x25f991(0x236)]['dryRun']}},'stack_trace':_0x3a52fb instanceof Error?_0x3a52fb[_0x25f991(0x209)]:undefined,'source':'mcp-filesystem'})['catch'](()=>{}),{'content':[{'type':_0x25f991(0x1f2),'text':_0x25f991(0x254)+_0x51cb5f}],'isError':!![]};}}case _0x25f991(0x206):{const _0x264843=WarpGrepArgsSchema['safeParse'](_0x2e170b);if(!_0x264843[_0x25f991(0x1e2)])return{'content':[{'type':_0x25f991(0x1f2),'text':_0x25f991(0x20e)+_0x264843[_0x25f991(0x260)]}],'isError':!![]};const _0x5e416e=_0x17c940=>{const _0x57f488=_0x25f991,_0x596192=[];for(const _0x2fb0c5 of _0x17c940||[]){const _0x1b34a6=_0x2fb0c5[_0x57f488(0x28d)],_0x112e7e=_0x2fb0c5['content'];if(_0x1b34a6==='assistant'&&_0x112e7e){const _0xc66222=_0x112e7e[_0x57f488(0x288)]('\x0a')[_0x57f488(0x1c8)](_0x5cb07b=>_0x5cb07b['trim']());for(const _0x10fd26 of _0xc66222){const _0x28b858=_0x10fd26[_0x57f488(0x1cf)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x28b858){_0x596192[_0x57f488(0x295)](_0x57f488(0x235)+_0x28b858[0x1]+'\x27\x20'+_0x28b858[0x2]);continue;}const _0x2b8c88=_0x10fd26[_0x57f488(0x1cf)](/^read\s+(.+)$/);if(_0x2b8c88){_0x596192[_0x57f488(0x295)](_0x57f488(0x298)+_0x2b8c88[0x1]);continue;}const _0x3a211e=_0x10fd26[_0x57f488(0x1cf)](/^list_directory\s+(.+)$/);if(_0x3a211e){_0x596192[_0x57f488(0x295)](_0x57f488(0x293)+_0x3a211e[0x1]);continue;}}}}return _0x596192;};try{const _0x22c332=a0_0x2e743c[_0x25f991(0x203)](_0x264843[_0x25f991(0x236)][_0x25f991(0x1b5)]),_0x625b19=new LocalRipgrepProvider(_0x22c332),_0x43fe85=await runWarpGrep({'query':_0x264843['data'][_0x25f991(0x218)],'repoRoot':_0x22c332,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x625b19});let _0x411a9a='';if(_0x43fe85[_0x25f991(0x204)]===_0x25f991(0x20c)&&_0x43fe85['finish']?.[_0x25f991(0x234)]?.['files']){const _0x517af2=_0x43fe85['finish'][_0x25f991(0x234)][_0x25f991(0x1d1)],_0x2842c6=[],_0x161c36=[_0x25f991(0x266)];for(const _0x550390 of _0x43fe85['messages']){const _0x2b524a=_0x550390[_0x25f991(0x28d)],_0x3a846d=_0x550390['content'];if(_0x2b524a==='assistant'&&_0x3a846d){const _0x170eb8=_0x3a846d[_0x25f991(0x288)]('\x0a')[_0x25f991(0x1c8)](_0x201801=>_0x201801['trim']());for(const _0x48d0f4 of _0x170eb8){const _0x3c33d8=_0x48d0f4[_0x25f991(0x1cf)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x3c33d8){_0x161c36[_0x25f991(0x295)](_0x25f991(0x22d)+_0x3c33d8[0x1]+_0x25f991(0x1cb)+_0x3c33d8[0x2]+'`');continue;}const _0x36eb07=_0x48d0f4[_0x25f991(0x1cf)](/^read\s+(.+)$/);if(_0x36eb07){_0x161c36[_0x25f991(0x295)](_0x25f991(0x1db)+_0x36eb07[0x1]+'`');continue;}const _0x337458=_0x48d0f4[_0x25f991(0x1cf)](/^list_directory\s+(.+)$/);if(_0x337458){_0x161c36['push']('-\x20Listed\x20directory\x20`'+_0x337458[0x1]+'`');continue;}}}}_0x2842c6[_0x25f991(0x295)](_0x161c36[_0x25f991(0x221)]('\x0a'));const _0x21b5cb=['','Relevant\x20context\x20found:'];for(const _0x585268 of _0x517af2){if(_0x585268[_0x25f991(0x232)]==='*')_0x21b5cb[_0x25f991(0x295)]('-\x20'+_0x585268[_0x25f991(0x1a7)]+':*');else{if(Array['isArray'](_0x585268[_0x25f991(0x232)])){const _0x2eea30=_0x585268[_0x25f991(0x232)][_0x25f991(0x1cd)](([_0x47615f,_0x17b6ac])=>{if(_0x47615f===_0x17b6ac)return''+_0x47615f;return _0x47615f+'-'+_0x17b6ac;});_0x21b5cb['push']('-\x20'+_0x585268[_0x25f991(0x1a7)]+':'+_0x2eea30[_0x25f991(0x221)](','));}else _0x21b5cb[_0x25f991(0x295)]('-\x20'+_0x585268['path']+':*');}}_0x21b5cb[_0x25f991(0x295)](''),_0x2842c6[_0x25f991(0x295)](_0x21b5cb['join']('\x0a')),_0x2842c6[_0x25f991(0x295)]('Here\x20is\x20the\x20content\x20of\x20files:\x0a');const _0x2d7ab8=[];for(const _0x32a2af of _0x517af2){let _0x4c77f7=a0_0x2e743c[_0x25f991(0x203)](_0x264843[_0x25f991(0x236)][_0x25f991(0x1b5)],_0x32a2af[_0x25f991(0x1a7)]),_0x4cc715=null,_0x37e172=null;try{_0x4cc715=await a0_0x123ae7[_0x25f991(0x226)](_0x4c77f7,{'encoding':_0x25f991(0x1a4)});}catch(_0x1ec232){const _0x482d6a=fixPathRepetition(_0x4c77f7);if(_0x482d6a)try{_0x4cc715=await a0_0x123ae7[_0x25f991(0x226)](_0x482d6a,{'encoding':'utf-8'}),_0x4c77f7=_0x482d6a;}catch{_0x37e172=_0x1ec232 instanceof Error?_0x1ec232:new Error(String(_0x1ec232));}else _0x37e172=_0x1ec232 instanceof Error?_0x1ec232:new Error(String(_0x1ec232));}if(_0x4cc715!==null){const _0x276fae=_0x4cc715[_0x25f991(0x288)](/\r?\n/),_0x51a8ec=[_0x25f991(0x246)+_0x32a2af['path']+'\x22>'];if(_0x32a2af[_0x25f991(0x232)]==='*'||!Array[_0x25f991(0x1d9)](_0x32a2af[_0x25f991(0x232)]))for(let _0x404c3d=0x1;_0x404c3d<=_0x276fae[_0x25f991(0x224)];_0x404c3d++){const _0x53ad4c=_0x276fae[_0x404c3d-0x1];_0x51a8ec['push'](_0x404c3d+'|\x20'+_0x53ad4c);}else for(const [_0x50e270,_0x48f7b5]of _0x32a2af['lines']){_0x51a8ec[_0x25f991(0x224)]>0x1&&_0x51a8ec['push']('');for(let _0x52d7de=_0x50e270;_0x52d7de<=_0x48f7b5&&_0x52d7de<=_0x276fae[_0x25f991(0x224)];_0x52d7de++){const _0x47f8d5=_0x276fae[_0x52d7de-0x1];_0x51a8ec[_0x25f991(0x295)](_0x52d7de+'|\x20'+_0x47f8d5);}}_0x51a8ec[_0x25f991(0x295)](_0x25f991(0x1f9)),_0x2d7ab8['push'](_0x51a8ec['join']('\x0a'));}else _0x2d7ab8['push'](_0x25f991(0x246)+_0x32a2af[_0x25f991(0x1a7)]+_0x25f991(0x269)+(_0x37e172?.[_0x25f991(0x1ed)]||'Unknown\x20error')+_0x25f991(0x1c4));}_0x2842c6['push'](_0x2d7ab8['join']('\x0a\x0a')),_0x411a9a=_0x2842c6['join']('\x0a');const _0x548bfe=_0x43fe85['errors']?.[_0x25f991(0x1c8)](_0x1844cf=>_0x1844cf[_0x25f991(0x1ed)]?.[_0x25f991(0x1c1)](_0x25f991(0x1e7)))||[];if(_0x548bfe['length']>0x0){const _0x312e76=_0x548bfe[_0x25f991(0x1cd)](_0x373ab6=>_0x373ab6[_0x25f991(0x1ed)])[_0x25f991(0x221)](';\x20');reportMorphError({'error_message':_0x312e76,'error_type':_0x25f991(0x2a2),'context':{'tool':_0x25f991(0x206),'repo_path':_0x264843[_0x25f991(0x236)][_0x25f991(0x1b5)],'query':_0x264843[_0x25f991(0x236)][_0x25f991(0x218)],'model':_0x25f991(0x284),'termination_reason':'completed_with_file_errors','error_count':_0x548bfe[_0x25f991(0x224)],'is_timeout':![],'timings':_0x43fe85[_0x25f991(0x252)],'files_attempted':_0x517af2[_0x25f991(0x1cd)](_0x5b6d00=>({'path':_0x5b6d00['path'],'lines':_0x5b6d00['lines']})),'tool_calls':_0x5e416e(_0x43fe85['messages']),'messages':_0x43fe85['messages']?.[_0x25f991(0x1cd)](_0x4461d8=>({'role':_0x4461d8[_0x25f991(0x28d)],'content':_0x4461d8[_0x25f991(0x24a)]})),'request_content':{'query':_0x264843[_0x25f991(0x236)][_0x25f991(0x218)],'repo_path':_0x264843['data'][_0x25f991(0x1b5)],'repoRoot':a0_0x2e743c[_0x25f991(0x203)](_0x264843['data'][_0x25f991(0x1b5)]),'model':_0x25f991(0x284)}},'source':_0x25f991(0x24f)})[_0x25f991(0x278)](()=>{});}}else{if(_0x43fe85[_0x25f991(0x204)]===_0x25f991(0x280)&&_0x43fe85['errors'][_0x25f991(0x224)]>0x0){const _0x4c3105=_0x43fe85[_0x25f991(0x258)][_0x25f991(0x1cd)](_0x14f648=>_0x14f648[_0x25f991(0x1ed)])[_0x25f991(0x221)](';\x20');_0x411a9a=_0x25f991(0x1f1)+_0x4c3105;const _0x1ef4cf=_0x4c3105[_0x25f991(0x1ce)]()[_0x25f991(0x1c9)](_0x25f991(0x275))||_0x4c3105[_0x25f991(0x1ce)]()[_0x25f991(0x1c9)](_0x25f991(0x27f))||_0x4c3105[_0x25f991(0x1ce)]()[_0x25f991(0x1c9)](_0x25f991(0x25d)),_0x26c0f1=_0x43fe85[_0x25f991(0x1a6)]?.['metadata']?.[_0x25f991(0x1d1)],_0x4fa723=_0x43fe85['errors'][0x0];reportMorphError({'error_message':_0x4c3105,'error_type':_0x1ef4cf?_0x25f991(0x24e):_0x4fa723?.[_0x25f991(0x1ef)]?.[_0x25f991(0x256)]||_0x25f991(0x20b),'context':{'tool':_0x25f991(0x206),'repo_path':_0x264843[_0x25f991(0x236)][_0x25f991(0x1b5)],'query':_0x264843[_0x25f991(0x236)][_0x25f991(0x218)],'model':'morph-warp-grep-v1-1111v0','termination_reason':_0x43fe85['terminationReason'],'error_count':_0x43fe85['errors'][_0x25f991(0x224)],'is_timeout':_0x1ef4cf,'timings':_0x43fe85[_0x25f991(0x252)],'files_attempted':_0x26c0f1?.[_0x25f991(0x1cd)](_0x3e3eeb=>({'path':_0x3e3eeb[_0x25f991(0x1a7)],'lines':_0x3e3eeb[_0x25f991(0x232)]})),'tool_calls':_0x5e416e(_0x43fe85[_0x25f991(0x1ec)]),'messages':_0x43fe85[_0x25f991(0x1ec)]?.[_0x25f991(0x1cd)](_0x4d30fd=>({'role':_0x4d30fd[_0x25f991(0x28d)],'content':_0x4d30fd[_0x25f991(0x24a)]})),'request_content':{'query':_0x264843[_0x25f991(0x236)][_0x25f991(0x218)],'repo_path':_0x264843[_0x25f991(0x236)][_0x25f991(0x1b5)],'repoRoot':a0_0x2e743c[_0x25f991(0x203)](_0x264843['data'][_0x25f991(0x1b5)]),'model':_0x25f991(0x284)}},'stack_trace':_0x4fa723?.[_0x25f991(0x209)]||undefined,'source':_0x25f991(0x24f)})[_0x25f991(0x278)](()=>{});}else _0x411a9a='Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.';}return{'content':[{'type':_0x25f991(0x1f2),'text':_0x411a9a}]};}catch(_0xafccf4){const _0xa8e689=_0xafccf4 instanceof Error?_0xafccf4[_0x25f991(0x1ed)]:String(_0xafccf4),_0x3c7b20=_0xa8e689['toLowerCase']()[_0x25f991(0x1c9)]('timeout')||_0xa8e689[_0x25f991(0x1ce)]()[_0x25f991(0x1c9)](_0x25f991(0x27f))||_0xa8e689[_0x25f991(0x1ce)]()[_0x25f991(0x1c9)]('etimedout')||_0xafccf4 instanceof Error&&_0xafccf4[_0x25f991(0x256)]===_0x25f991(0x24e);return reportMorphError({'error_message':_0xa8e689,'error_type':_0x3c7b20?_0x25f991(0x24e):_0xafccf4 instanceof Error?_0xafccf4[_0x25f991(0x1ef)][_0x25f991(0x256)]:_0x25f991(0x1b3),'context':{'tool':_0x25f991(0x206),'repo_path':_0x264843['data'][_0x25f991(0x1b5)],'query':_0x264843[_0x25f991(0x236)][_0x25f991(0x218)],'model':_0x25f991(0x284),'is_timeout':_0x3c7b20,'exception_phase':'runWarpGrep_call','request_content':{'query':_0x264843[_0x25f991(0x236)][_0x25f991(0x218)],'repo_path':_0x264843[_0x25f991(0x236)][_0x25f991(0x1b5)],'repoRoot':a0_0x2e743c['resolve'](_0x264843[_0x25f991(0x236)][_0x25f991(0x1b5)]),'model':_0x25f991(0x284)}},'stack_trace':_0xafccf4 instanceof Error?_0xafccf4['stack']:undefined,'source':'mcp-filesystem'})[_0x25f991(0x278)](()=>{}),{'content':[{'type':_0x25f991(0x1f2),'text':_0x25f991(0x1ff)+_0xa8e689}],'isError':![]};}}case _0x25f991(0x1c5):{const _0x552436=CodebaseSearchArgsSchema[_0x25f991(0x1a2)](_0x2e170b);if(!_0x552436[_0x25f991(0x1e2)])return{'content':[{'type':_0x25f991(0x1f2),'text':_0x25f991(0x20e)+_0x552436[_0x25f991(0x260)]}],'isError':!![]};try{const _0x16bdb1=MORPH_API_KEY;if(!_0x16bdb1)throw new Error(_0x25f991(0x1c7));const _0x15e383=_0x552436[_0x25f991(0x236)][_0x25f991(0x200)],_0x4359a3=await executeCodebaseSearch({'query':_0x552436['data'][_0x25f991(0x1ea)],'target_directories':_0x15e383,'limit':_0x552436[_0x25f991(0x236)]['limit']},{'apiKey':_0x16bdb1,'repoId':_0x552436[_0x25f991(0x236)][_0x25f991(0x251)],'branch':_0x552436[_0x25f991(0x236)][_0x25f991(0x216)],'commitHash':_0x552436[_0x25f991(0x236)][_0x25f991(0x27e)],'debug':![]});if(!_0x4359a3['success'])return{'content':[{'type':_0x25f991(0x1f2),'text':_0x25f991(0x1b0)+_0x4359a3[_0x25f991(0x260)]}],'isError':!![]};const _0x19cf4c=_0x4359a3[_0x25f991(0x274)][_0x25f991(0x224)]===0x0?_0x25f991(0x1e8)+_0x552436[_0x25f991(0x236)][_0x25f991(0x1ea)]+'\x22':_0x25f991(0x276)+_0x4359a3[_0x25f991(0x274)][_0x25f991(0x224)]+_0x25f991(0x1f4)+_0x4359a3[_0x25f991(0x1a1)][_0x25f991(0x29a)]+_0x25f991(0x1d2)+_0x4359a3[_0x25f991(0x274)][_0x25f991(0x1cd)]((_0x326972,_0x58295e)=>_0x58295e+0x1+'.\x20'+_0x326972[_0x25f991(0x29c)]+'\x20('+(_0x326972[_0x25f991(0x1e5)]*0x64)[_0x25f991(0x229)](0x1)+_0x25f991(0x279)+(_0x25f991(0x25c)+_0x326972[_0x25f991(0x27a)]+'-'+_0x326972[_0x25f991(0x201)]+'\x0a')+(_0x25f991(0x222)+_0x326972[_0x25f991(0x24a)][_0x25f991(0x290)](0x0,0xc8)+(_0x326972['content'][_0x25f991(0x224)]>0xc8?_0x25f991(0x25a):'')+'\x0a'))[_0x25f991(0x221)]('\x0a');return{'content':[{'type':_0x25f991(0x1f2),'text':_0x19cf4c}]};}catch(_0x43b2d4){const _0x3a1fac=_0x43b2d4 instanceof Error?_0x43b2d4[_0x25f991(0x1ed)]:String(_0x43b2d4);return reportMorphError({'error_message':_0x3a1fac,'error_type':_0x43b2d4 instanceof Error?_0x43b2d4[_0x25f991(0x1ef)][_0x25f991(0x256)]:_0x25f991(0x1b3),'context':{'tool':_0x25f991(0x1c5),'query':_0x552436[_0x25f991(0x236)][_0x25f991(0x1ea)],'repo_id':_0x552436[_0x25f991(0x236)][_0x25f991(0x251)],'target_directories':_0x552436['data'][_0x25f991(0x200)]},'stack_trace':_0x43b2d4 instanceof Error?_0x43b2d4[_0x25f991(0x209)]:undefined,'source':_0x25f991(0x24f)})[_0x25f991(0x278)](()=>{}),{'content':[{'type':'text','text':_0x25f991(0x1f1)+_0x3a1fac}],'isError':!![]};}}default:throw new Error('Unknown\x20tool:\x20'+_0x169cd3);}}catch(_0x1c8908){const _0x4c2652=_0x1c8908 instanceof Error?_0x1c8908[_0x25f991(0x1ed)]:String(_0x1c8908);return reportMorphError({'error_message':_0x4c2652,'error_type':_0x1c8908 instanceof Error?_0x1c8908[_0x25f991(0x1ef)]['name']:_0x25f991(0x1b3),'context':{'tool':name,'arguments':args?JSON[_0x25f991(0x282)](args)[_0x25f991(0x290)](0x0,0x1f4):undefined,'mcp_server_version':'0.2.0'},'stack_trace':_0x1c8908 instanceof Error?_0x1c8908[_0x25f991(0x209)]:undefined,'source':_0x25f991(0x24f)})['catch'](()=>{}),{'content':[{'type':'text','text':_0x25f991(0x1f1)+_0x4c2652}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x5c14f9){const _0x412f64=a0_0x262993,_0x3e5f9b=await getValidRootDirectories(_0x5c14f9);if(_0x3e5f9b[_0x412f64(0x224)]>0x0)allowedDirectories=[..._0x3e5f9b],console[_0x412f64(0x260)](_0x412f64(0x29b)+_0x3e5f9b[_0x412f64(0x224)]+_0x412f64(0x28f));else{console[_0x412f64(0x260)](_0x412f64(0x248));if(ENABLE_WORKSPACE_MODE)try{const _0x1bc3ef=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x1bc3ef&&(allowedDirectories=[_0x1bc3ef],console['error'](_0x412f64(0x1eb)+_0x1bc3ef));}catch(_0x6b8ea5){console['error'](_0x412f64(0x1aa)+_0x6b8ea5);}}}server[a0_0x262993(0x1ab)](RootsListChangedNotificationSchema,async()=>{const _0x506154=a0_0x262993;try{const _0x1b3389=await server[_0x506154(0x1fa)]();_0x1b3389&&_0x506154(0x220)in _0x1b3389&&await updateAllowedDirectoriesFromRoots(_0x1b3389[_0x506154(0x220)]);}catch(_0x535d49){console['error'](_0x506154(0x230),_0x535d49 instanceof Error?_0x535d49[_0x506154(0x1ed)]:String(_0x535d49));}}),server[a0_0x262993(0x1d0)]=async()=>{const _0xc24abd=a0_0x262993,_0x5e07ad=server[_0xc24abd(0x294)]();if(_0x5e07ad?.[_0xc24abd(0x220)])try{const _0x29cba4=await server[_0xc24abd(0x1fa)]();_0x29cba4&&'roots'in _0x29cba4?await updateAllowedDirectoriesFromRoots(_0x29cba4[_0xc24abd(0x220)]):console['error'](_0xc24abd(0x2a3));}catch(_0xbd1443){console[_0xc24abd(0x260)](_0xc24abd(0x26d),_0xbd1443 instanceof Error?_0xbd1443['message']:String(_0xbd1443));}else{if(allowedDirectories[_0xc24abd(0x224)]>0x0)console[_0xc24abd(0x260)](_0xc24abd(0x26e),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console['error']('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode');else throw new Error(_0xc24abd(0x1e1));}}};async function runServer(){const _0x3a7b45=a0_0x262993,_0x35ea6c=new StdioServerTransport();await server['connect'](_0x35ea6c),console['error'](_0x3a7b45(0x241)),allowedDirectories[_0x3a7b45(0x224)]===0x0&&console[_0x3a7b45(0x260)](_0x3a7b45(0x205));}runServer()['catch'](_0x4c853f=>{const _0xa894df=a0_0x262993;console[_0xa894df(0x260)](_0xa894df(0x22b),_0x4c853f),process[_0xa894df(0x291)](0x1);});
@@ -1 +1 @@
1
- (function(_0x34d627,_0x619985){const _0x365648=a1_0x4514,_0x13123d=_0x34d627();while(!![]){try{const _0x4fe12f=-parseInt(_0x365648(0xa0))/0x1+-parseInt(_0x365648(0xa9))/0x2*(parseInt(_0x365648(0xa5))/0x3)+parseInt(_0x365648(0x9e))/0x4+parseInt(_0x365648(0xa3))/0x5+parseInt(_0x365648(0x9f))/0x6*(parseInt(_0x365648(0xa4))/0x7)+parseInt(_0x365648(0x98))/0x8*(parseInt(_0x365648(0x96))/0x9)+parseInt(_0x365648(0x99))/0xa*(-parseInt(_0x365648(0xa2))/0xb);if(_0x4fe12f===_0x619985)break;else _0x13123d['push'](_0x13123d['shift']());}catch(_0x1dc35b){_0x13123d['push'](_0x13123d['shift']());}}}(a1_0x4a13,0x25a8b));import a1_0x4ff0f3 from'path';import a1_0x31c727 from'os';export function convertToWindowsPath(_0xb9323f){const _0x26d119=a1_0x4514;if(_0xb9323f[_0x26d119(0xaa)](_0x26d119(0x9a))){const _0x330480=_0xb9323f[_0x26d119(0xa8)](0x5)['toUpperCase'](),_0x4fa533=_0xb9323f[_0x26d119(0x9c)](0x6)[_0x26d119(0x97)](/\//g,'\x5c');return _0x330480+':'+_0x4fa533;}if(_0xb9323f[_0x26d119(0xa1)](/^\/[a-zA-Z]\//)){const _0x2feb9d=_0xb9323f[_0x26d119(0xa8)](0x1)[_0x26d119(0x9d)](),_0x4c4058=_0xb9323f[_0x26d119(0x9c)](0x2)['replace'](/\//g,'\x5c');return _0x2feb9d+':'+_0x4c4058;}if(_0xb9323f[_0x26d119(0xa1)](/^[a-zA-Z]:/))return _0xb9323f[_0x26d119(0x97)](/\//g,'\x5c');return _0xb9323f;}function a1_0x4514(_0x24b8af,_0x150e85){_0x24b8af=_0x24b8af-0x96;const _0x4a13d0=a1_0x4a13();let _0x451472=_0x4a13d0[_0x24b8af];return _0x451472;}export function normalizePath(_0x3b0eb1){const _0x31f21d=a1_0x4514;_0x3b0eb1=_0x3b0eb1['trim']()[_0x31f21d(0x97)](/^["']|["']$/g,'');const _0x2e1207=_0x3b0eb1['startsWith']('/')&&!_0x3b0eb1['match'](/^\/mnt\/[a-z]\//i)&&!_0x3b0eb1[_0x31f21d(0xa1)](/^\/[a-zA-Z]\//);if(_0x2e1207)return _0x3b0eb1[_0x31f21d(0x97)](/\/+/g,'/')[_0x31f21d(0x97)](/\/+$/,'');_0x3b0eb1=convertToWindowsPath(_0x3b0eb1);if(_0x3b0eb1['startsWith']('\x5c\x5c')){let _0x27aec7=_0x3b0eb1;_0x27aec7=_0x27aec7['replace'](/^\\{2,}/,'\x5c\x5c');const _0x1cb415=_0x27aec7[_0x31f21d(0x9b)](0x2)[_0x31f21d(0x97)](/\\\\/g,'\x5c');_0x3b0eb1='\x5c\x5c'+_0x1cb415;}else _0x3b0eb1=_0x3b0eb1[_0x31f21d(0x97)](/\\\\/g,'\x5c');let _0x139b91=a1_0x4ff0f3['normalize'](_0x3b0eb1);_0x3b0eb1[_0x31f21d(0xaa)]('\x5c\x5c')&&!_0x139b91[_0x31f21d(0xaa)]('\x5c\x5c')&&(_0x139b91='\x5c'+_0x139b91);if(_0x139b91[_0x31f21d(0xa1)](/^[a-zA-Z]:/)){let _0x4a889c=_0x139b91[_0x31f21d(0x97)](/\//g,'\x5c');return/^[a-z]:/['test'](_0x4a889c)&&(_0x4a889c=_0x4a889c[_0x31f21d(0xa8)](0x0)[_0x31f21d(0x9d)]()+_0x4a889c['slice'](0x1)),_0x4a889c;}return _0x139b91['replace'](/\//g,'\x5c');}function a1_0x4a13(){const _0x4a2485=['14nWTRZF','startsWith','90nzNdNG','replace','38464aHBlKb','200LLpouw','/mnt/','substring','slice','toUpperCase','913124QRDDDl','78GJwZaF','13895CAESAu','match','159962BlEAvy','1274195UZMqYk','63469QULhIl','81465ndvcwh','homedir','join','charAt'];a1_0x4a13=function(){return _0x4a2485;};return a1_0x4a13();}export function expandHome(_0x37fddb){const _0x3eb1f1=a1_0x4514;if(_0x37fddb[_0x3eb1f1(0xaa)]('~/')||_0x37fddb==='~')return a1_0x4ff0f3[_0x3eb1f1(0xa7)](a1_0x31c727[_0x3eb1f1(0xa6)](),_0x37fddb[_0x3eb1f1(0x9c)](0x1));return _0x37fddb;}
1
+ (function(_0x51bcbe,_0x4fbc79){const _0x2686b0=a1_0x1d3a,_0x357c63=_0x51bcbe();while(!![]){try{const _0x413807=-parseInt(_0x2686b0(0x188))/0x1*(-parseInt(_0x2686b0(0x18f))/0x2)+parseInt(_0x2686b0(0x193))/0x3*(parseInt(_0x2686b0(0x18c))/0x4)+parseInt(_0x2686b0(0x199))/0x5*(parseInt(_0x2686b0(0x187))/0x6)+-parseInt(_0x2686b0(0x18e))/0x7*(-parseInt(_0x2686b0(0x196))/0x8)+-parseInt(_0x2686b0(0x191))/0x9+parseInt(_0x2686b0(0x184))/0xa*(-parseInt(_0x2686b0(0x19b))/0xb)+parseInt(_0x2686b0(0x19a))/0xc*(-parseInt(_0x2686b0(0x18a))/0xd);if(_0x413807===_0x4fbc79)break;else _0x357c63['push'](_0x357c63['shift']());}catch(_0x5d917b){_0x357c63['push'](_0x357c63['shift']());}}}(a1_0x12b7,0xdffe8));import a1_0x4e3728 from'path';function a1_0x12b7(){const _0xdc8827=['test','1515527QWTiBN','substring','864148Oexmda','match','11888821hrIAgu','26ejaoGb','replace','7077249ySquDc','/mnt/','24UMVnXm','slice','charAt','8nebiXo','join','toUpperCase','7343545FgEpbh','372nROYxe','121iYqeYo','997290wuRaxs','startsWith','trim','6ZEvVpH','116877TtNWaQ'];a1_0x12b7=function(){return _0xdc8827;};return a1_0x12b7();}import a1_0x23191c from'os';export function convertToWindowsPath(_0x3b5de5){const _0x266eb6=a1_0x1d3a;if(_0x3b5de5[_0x266eb6(0x185)](_0x266eb6(0x192))){const _0x5b3f96=_0x3b5de5[_0x266eb6(0x195)](0x5)[_0x266eb6(0x198)](),_0x5ef7c9=_0x3b5de5[_0x266eb6(0x194)](0x6)[_0x266eb6(0x190)](/\//g,'\x5c');return _0x5b3f96+':'+_0x5ef7c9;}if(_0x3b5de5[_0x266eb6(0x18d)](/^\/[a-zA-Z]\//)){const _0x562215=_0x3b5de5[_0x266eb6(0x195)](0x1)['toUpperCase'](),_0x15282c=_0x3b5de5[_0x266eb6(0x194)](0x2)[_0x266eb6(0x190)](/\//g,'\x5c');return _0x562215+':'+_0x15282c;}if(_0x3b5de5[_0x266eb6(0x18d)](/^[a-zA-Z]:/))return _0x3b5de5['replace'](/\//g,'\x5c');return _0x3b5de5;}function a1_0x1d3a(_0x42588a,_0x58b7df){_0x42588a=_0x42588a-0x184;const _0x12b70d=a1_0x12b7();let _0x1d3a74=_0x12b70d[_0x42588a];return _0x1d3a74;}export function normalizePath(_0x45a09e){const _0x1b5bd3=a1_0x1d3a;_0x45a09e=_0x45a09e[_0x1b5bd3(0x186)]()[_0x1b5bd3(0x190)](/^["']|["']$/g,'');const _0x253bf8=_0x45a09e[_0x1b5bd3(0x185)]('/')&&!_0x45a09e[_0x1b5bd3(0x18d)](/^\/mnt\/[a-z]\//i)&&!_0x45a09e['match'](/^\/[a-zA-Z]\//);if(_0x253bf8)return _0x45a09e[_0x1b5bd3(0x190)](/\/+/g,'/')[_0x1b5bd3(0x190)](/\/+$/,'');_0x45a09e=convertToWindowsPath(_0x45a09e);if(_0x45a09e[_0x1b5bd3(0x185)]('\x5c\x5c')){let _0x417617=_0x45a09e;_0x417617=_0x417617[_0x1b5bd3(0x190)](/^\\{2,}/,'\x5c\x5c');const _0x34b1be=_0x417617[_0x1b5bd3(0x18b)](0x2)[_0x1b5bd3(0x190)](/\\\\/g,'\x5c');_0x45a09e='\x5c\x5c'+_0x34b1be;}else _0x45a09e=_0x45a09e[_0x1b5bd3(0x190)](/\\\\/g,'\x5c');let _0x31a21a=a1_0x4e3728['normalize'](_0x45a09e);_0x45a09e[_0x1b5bd3(0x185)]('\x5c\x5c')&&!_0x31a21a[_0x1b5bd3(0x185)]('\x5c\x5c')&&(_0x31a21a='\x5c'+_0x31a21a);if(_0x31a21a['match'](/^[a-zA-Z]:/)){let _0x4c0369=_0x31a21a['replace'](/\//g,'\x5c');return/^[a-z]:/[_0x1b5bd3(0x189)](_0x4c0369)&&(_0x4c0369=_0x4c0369[_0x1b5bd3(0x195)](0x0)[_0x1b5bd3(0x198)]()+_0x4c0369[_0x1b5bd3(0x194)](0x1)),_0x4c0369;}return _0x31a21a[_0x1b5bd3(0x190)](/\//g,'\x5c');}export function expandHome(_0x68a000){const _0x158f4c=a1_0x1d3a;if(_0x68a000['startsWith']('~/')||_0x68a000==='~')return a1_0x4e3728[_0x158f4c(0x197)](a1_0x23191c['homedir'](),_0x68a000[_0x158f4c(0x194)](0x1));return _0x68a000;}
@@ -1 +1 @@
1
- function a2_0x39bc(_0x3fb7f0,_0x213e23){_0x3fb7f0=_0x3fb7f0-0xe0;const _0x2b8752=a2_0x2b87();let _0x39bcda=_0x2b8752[_0x3fb7f0];return _0x39bcda;}(function(_0x2256c4,_0x374f06){const _0x236a75=a2_0x39bc,_0x341118=_0x2256c4();while(!![]){try{const _0x5d6ee4=parseInt(_0x236a75(0xe0))/0x1+parseInt(_0x236a75(0xe8))/0x2*(-parseInt(_0x236a75(0xe4))/0x3)+parseInt(_0x236a75(0xf2))/0x4+parseInt(_0x236a75(0xf0))/0x5*(parseInt(_0x236a75(0xf3))/0x6)+parseInt(_0x236a75(0xe2))/0x7+-parseInt(_0x236a75(0xed))/0x8*(parseInt(_0x236a75(0xe3))/0x9)+parseInt(_0x236a75(0xee))/0xa;if(_0x5d6ee4===_0x374f06)break;else _0x341118['push'](_0x341118['shift']());}catch(_0x501207){_0x341118['push'](_0x341118['shift']());}}}(a2_0x2b87,0xd5741));function a2_0x2b87(){const _0x25f2ed=['startsWith','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','includes','length','2552bJUPUW','2266260wwXsnO','isArray','950660TfKswv','resolve','888368bvXvhU','24JrmSTh','219777vNheRm','normalize','9652888oqafLe','45585CeSYYZ','30771nEWeJI','sep','string','isAbsolute','62rpISRx'];a2_0x2b87=function(){return _0x25f2ed;};return a2_0x2b87();}import a2_0x3ec47c from'path';export function isPathWithinAllowedDirectories(_0x59f681,_0x20b8dd){const _0x4517de=a2_0x39bc;if(typeof _0x59f681!==_0x4517de(0xe6)||!Array[_0x4517de(0xef)](_0x20b8dd))return![];if(!_0x59f681||_0x20b8dd[_0x4517de(0xec)]===0x0)return![];if(_0x59f681[_0x4517de(0xeb)]('\x00'))return![];let _0x1f13a5;try{_0x1f13a5=a2_0x3ec47c[_0x4517de(0xf1)](a2_0x3ec47c[_0x4517de(0xe1)](_0x59f681));}catch{return![];}if(!a2_0x3ec47c[_0x4517de(0xe7)](_0x1f13a5))throw new Error('Path\x20must\x20be\x20absolute\x20after\x20normalization');return _0x20b8dd['some'](_0x47e0c5=>{const _0x4ce119=_0x4517de;if(typeof _0x47e0c5!=='string'||!_0x47e0c5)return![];if(_0x47e0c5[_0x4ce119(0xeb)]('\x00'))return![];let _0x1cc4d2;try{_0x1cc4d2=a2_0x3ec47c['resolve'](a2_0x3ec47c[_0x4ce119(0xe1)](_0x47e0c5));}catch{return![];}if(!a2_0x3ec47c[_0x4ce119(0xe7)](_0x1cc4d2))throw new Error(_0x4ce119(0xea));if(_0x1f13a5===_0x1cc4d2)return!![];if(_0x1cc4d2===a2_0x3ec47c[_0x4ce119(0xe5)])return _0x1f13a5[_0x4ce119(0xe9)](a2_0x3ec47c['sep']);return _0x1f13a5['startsWith'](_0x1cc4d2+a2_0x3ec47c[_0x4ce119(0xe5)]);});}
1
+ (function(_0x419c95,_0x2324b1){const _0xc149fd=a2_0x10a9,_0xf167c8=_0x419c95();while(!![]){try{const _0x323a74=parseInt(_0xc149fd(0x149))/0x1*(parseInt(_0xc149fd(0x152))/0x2)+parseInt(_0xc149fd(0x150))/0x3+-parseInt(_0xc149fd(0x14b))/0x4+-parseInt(_0xc149fd(0x155))/0x5*(-parseInt(_0xc149fd(0x151))/0x6)+-parseInt(_0xc149fd(0x141))/0x7*(parseInt(_0xc149fd(0x144))/0x8)+-parseInt(_0xc149fd(0x153))/0x9+parseInt(_0xc149fd(0x147))/0xa*(parseInt(_0xc149fd(0x14a))/0xb);if(_0x323a74===_0x2324b1)break;else _0xf167c8['push'](_0xf167c8['shift']());}catch(_0x16e9d2){_0xf167c8['push'](_0xf167c8['shift']());}}}(a2_0x2b5c,0xa5ae7));function a2_0x10a9(_0x5a7fde,_0x3d3083){_0x5a7fde=_0x5a7fde-0x13f;const _0x2b5ca1=a2_0x2b5c();let _0x10a932=_0x2b5ca1[_0x5a7fde];return _0x10a932;}import a2_0xc83251 from'path';export function isPathWithinAllowedDirectories(_0x4f3e62,_0xb8fa3e){const _0x3b0bc6=a2_0x10a9;if(typeof _0x4f3e62!==_0x3b0bc6(0x146)||!Array[_0x3b0bc6(0x14f)](_0xb8fa3e))return![];if(!_0x4f3e62||_0xb8fa3e[_0x3b0bc6(0x145)]===0x0)return![];if(_0x4f3e62[_0x3b0bc6(0x140)]('\x00'))return![];let _0x254b8f;try{_0x254b8f=a2_0xc83251[_0x3b0bc6(0x143)](a2_0xc83251[_0x3b0bc6(0x14e)](_0x4f3e62));}catch{return![];}if(!a2_0xc83251[_0x3b0bc6(0x148)](_0x254b8f))throw new Error(_0x3b0bc6(0x142));return _0xb8fa3e[_0x3b0bc6(0x14c)](_0x32e3a3=>{const _0x58b1e8=_0x3b0bc6;if(typeof _0x32e3a3!=='string'||!_0x32e3a3)return![];if(_0x32e3a3[_0x58b1e8(0x140)]('\x00'))return![];let _0x3aa9b7;try{_0x3aa9b7=a2_0xc83251[_0x58b1e8(0x143)](a2_0xc83251['normalize'](_0x32e3a3));}catch{return![];}if(!a2_0xc83251['isAbsolute'](_0x3aa9b7))throw new Error(_0x58b1e8(0x14d));if(_0x254b8f===_0x3aa9b7)return!![];if(_0x3aa9b7===a2_0xc83251[_0x58b1e8(0x13f)])return _0x254b8f[_0x58b1e8(0x154)](a2_0xc83251[_0x58b1e8(0x13f)]);return _0x254b8f[_0x58b1e8(0x154)](_0x3aa9b7+a2_0xc83251['sep']);});}function a2_0x2b5c(){const _0x14a45d=['702376oadZBM','3441537TuIulV','4792088UcmeKo','some','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','normalize','isArray','1604658nmsrYd','48798YGCRde','2ARHzyp','11880369iOtYlz','startsWith','165OdPXsN','sep','includes','434371LYOQfr','Path\x20must\x20be\x20absolute\x20after\x20normalization','resolve','24NvPORU','length','string','60YhWDsV','isAbsolute'];a2_0x2b5c=function(){return _0x14a45d;};return a2_0x2b5c();}
@@ -1 +1 @@
1
- (function(_0x39e909,_0x242e9a){const _0x51a625=a3_0x36a0,_0x1821e8=_0x39e909();while(!![]){try{const _0x3a8f5a=-parseInt(_0x51a625(0x192))/0x1*(parseInt(_0x51a625(0x18f))/0x2)+-parseInt(_0x51a625(0x190))/0x3+parseInt(_0x51a625(0x194))/0x4+-parseInt(_0x51a625(0x18e))/0x5+-parseInt(_0x51a625(0x189))/0x6*(parseInt(_0x51a625(0x18b))/0x7)+parseInt(_0x51a625(0x197))/0x8+parseInt(_0x51a625(0x198))/0x9;if(_0x3a8f5a===_0x242e9a)break;else _0x1821e8['push'](_0x1821e8['shift']());}catch(_0x421051){_0x1821e8['push'](_0x1821e8['shift']());}}}(a3_0x4454,0x9712f));import{promises as a3_0x16fad8}from'fs';import a3_0x4d6e99 from'path';function a3_0x4454(){const _0x515395=['Skipping\x20invalid\x20directory:\x20','non-directory\x20root','slice','72462nmSIcK','isDirectory','77HVdovp','realpath','invalid\x20path\x20or\x20inaccessible','1864550XeTTYP','2NHcdUy','2260074zQzQeq','homedir','596798QFTRkm','resolve','4154260QOiRqW','error','Skipping\x20','3161512jNOurA','9368622rvIAUf','message','uri','startsWith','stat'];a3_0x4454=function(){return _0x515395;};return a3_0x4454();}import a3_0x1b9fc5 from'os';import{normalizePath}from'./path-utils.js';async function parseRootUri(_0x334f1f){const _0x45736b=a3_0x36a0;try{const _0x3d727b=_0x334f1f['startsWith']('file://')?_0x334f1f[_0x45736b(0x188)](0x7):_0x334f1f,_0x38bbf8=_0x3d727b[_0x45736b(0x19b)]('~/')||_0x3d727b==='~'?a3_0x4d6e99['join'](a3_0x1b9fc5[_0x45736b(0x191)](),_0x3d727b['slice'](0x1)):_0x3d727b,_0x101e9d=a3_0x4d6e99[_0x45736b(0x193)](_0x38bbf8),_0x377fab=await a3_0x16fad8[_0x45736b(0x18c)](_0x101e9d);return normalizePath(_0x377fab);}catch{return null;}}function a3_0x36a0(_0x328a8b,_0x3b5b0b){_0x328a8b=_0x328a8b-0x187;const _0x44540d=a3_0x4454();let _0x36a04c=_0x44540d[_0x328a8b];return _0x36a04c;}function formatDirectoryError(_0x1e7d41,_0x496ab1,_0x14f741){const _0xc2d966=a3_0x36a0;if(_0x14f741)return _0xc2d966(0x196)+_0x14f741+':\x20'+_0x1e7d41;const _0x16f31e=_0x496ab1 instanceof Error?_0x496ab1[_0xc2d966(0x199)]:String(_0x496ab1);return _0xc2d966(0x19d)+_0x1e7d41+'\x20due\x20to\x20error:\x20'+_0x16f31e;}export async function getValidRootDirectories(_0x10f18b){const _0x39f9f5=a3_0x36a0,_0x52bb4d=[];for(const _0x51164e of _0x10f18b){const _0x31be68=await parseRootUri(_0x51164e[_0x39f9f5(0x19a)]);if(!_0x31be68){console[_0x39f9f5(0x195)](formatDirectoryError(_0x51164e['uri'],undefined,_0x39f9f5(0x18d)));continue;}try{const _0x20b93b=await a3_0x16fad8[_0x39f9f5(0x19c)](_0x31be68);_0x20b93b[_0x39f9f5(0x18a)]()?_0x52bb4d['push'](_0x31be68):console['error'](formatDirectoryError(_0x31be68,undefined,_0x39f9f5(0x187)));}catch(_0x38a438){console[_0x39f9f5(0x195)](formatDirectoryError(_0x31be68,_0x38a438));}}return _0x52bb4d;}
1
+ (function(_0x2d48e8,_0x1965da){const _0x3ae534=a3_0x533e,_0x2e3af3=_0x2d48e8();while(!![]){try{const _0x5ebdd5=parseInt(_0x3ae534(0x82))/0x1*(parseInt(_0x3ae534(0x87))/0x2)+-parseInt(_0x3ae534(0x88))/0x3+-parseInt(_0x3ae534(0x7f))/0x4*(-parseInt(_0x3ae534(0x6f))/0x5)+-parseInt(_0x3ae534(0x76))/0x6+parseInt(_0x3ae534(0x71))/0x7+-parseInt(_0x3ae534(0x75))/0x8+parseInt(_0x3ae534(0x85))/0x9*(parseInt(_0x3ae534(0x72))/0xa);if(_0x5ebdd5===_0x1965da)break;else _0x2e3af3['push'](_0x2e3af3['shift']());}catch(_0x2d8fbe){_0x2e3af3['push'](_0x2e3af3['shift']());}}}(a3_0x4a7b,0x851ba));import{promises as a3_0x1e8bb5}from'fs';import a3_0x4208d0 from'path';function a3_0x533e(_0x284ca6,_0x508ca4){_0x284ca6=_0x284ca6-0x6e;const _0x4a7ba2=a3_0x4a7b();let _0x533e3b=_0x4a7ba2[_0x284ca6];return _0x533e3b;}import a3_0x4685cd from'os';import{normalizePath}from'./path-utils.js';async function parseRootUri(_0x304a42){const _0x389cb4=a3_0x533e;try{const _0x1095cf=_0x304a42[_0x389cb4(0x86)](_0x389cb4(0x78))?_0x304a42[_0x389cb4(0x7a)](0x7):_0x304a42,_0x1a425b=_0x1095cf[_0x389cb4(0x86)]('~/')||_0x1095cf==='~'?a3_0x4208d0[_0x389cb4(0x77)](a3_0x4685cd[_0x389cb4(0x83)](),_0x1095cf['slice'](0x1)):_0x1095cf,_0x3c2241=a3_0x4208d0[_0x389cb4(0x79)](_0x1a425b),_0x235435=await a3_0x1e8bb5[_0x389cb4(0x81)](_0x3c2241);return normalizePath(_0x235435);}catch{return null;}}function formatDirectoryError(_0x19aa8f,_0x57e9cf,_0x2e54bf){const _0x5b9805=a3_0x533e;if(_0x2e54bf)return _0x5b9805(0x74)+_0x2e54bf+':\x20'+_0x19aa8f;const _0x2b187b=_0x57e9cf instanceof Error?_0x57e9cf[_0x5b9805(0x7d)]:String(_0x57e9cf);return _0x5b9805(0x70)+_0x19aa8f+_0x5b9805(0x80)+_0x2b187b;}function a3_0x4a7b(){const _0x211ce7=['2704400qcxQpQ','non-directory\x20root','Skipping\x20','6699512MBDBeO','2772852wSRygW','join','file://','resolve','slice','isDirectory','error','message','push','12OhjoKl','\x20due\x20to\x20error:\x20','realpath','534811tcjCHE','homedir','invalid\x20path\x20or\x20inaccessible','36tRJdnN','startsWith','2PUibHC','1609044xHsoTQ','uri','605395NdsQUK','Skipping\x20invalid\x20directory:\x20','2809317oUZaQt'];a3_0x4a7b=function(){return _0x211ce7;};return a3_0x4a7b();}export async function getValidRootDirectories(_0x15c8c8){const _0x19ebac=a3_0x533e,_0x5a6c12=[];for(const _0x23c256 of _0x15c8c8){const _0x1f6073=await parseRootUri(_0x23c256[_0x19ebac(0x6e)]);if(!_0x1f6073){console[_0x19ebac(0x7c)](formatDirectoryError(_0x23c256[_0x19ebac(0x6e)],undefined,_0x19ebac(0x84)));continue;}try{const _0x2644b2=await a3_0x1e8bb5['stat'](_0x1f6073);_0x2644b2[_0x19ebac(0x7b)]()?_0x5a6c12[_0x19ebac(0x7e)](_0x1f6073):console['error'](formatDirectoryError(_0x1f6073,undefined,_0x19ebac(0x73)));}catch(_0x86465a){console[_0x19ebac(0x7c)](formatDirectoryError(_0x1f6073,_0x86465a));}}return _0x5a6c12;}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morphllm/morphmcp",
3
- "version": "0.8.94",
3
+ "version": "0.8.95",
4
4
  "description": "Fast & accurate MCP server with AI-powered file editing and intelligent code search. Prevents context pollution and saves time for a better user experience.",
5
5
  "license": "MIT",
6
6
  "author": "Morph (https://morphllm.com)",
@@ -35,7 +35,7 @@
35
35
  "dependencies": {
36
36
  "@google/generative-ai": "^0.21.0",
37
37
  "@modelcontextprotocol/sdk": "^1.12.3",
38
- "@morphllm/morphsdk": "0.2.116",
38
+ "@morphllm/morphsdk": "0.2.117",
39
39
  "@vscode/ripgrep": "^1.15.14",
40
40
  "axios": "^1.6.0",
41
41
  "chalk": "^5.3.0",