@morphllm/morphmcp 0.8.108 → 0.8.110

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_0x514987=a0_0xc007;(function(_0xa17b4a,_0x3cae17){const _0x3b9810=a0_0xc007,_0x35a8b1=_0xa17b4a();while(!![]){try{const _0xafa5ab=-parseInt(_0x3b9810(0x21e))/0x1*(-parseInt(_0x3b9810(0x1cb))/0x2)+parseInt(_0x3b9810(0x2dc))/0x3*(parseInt(_0x3b9810(0x299))/0x4)+-parseInt(_0x3b9810(0x1c2))/0x5*(-parseInt(_0x3b9810(0x1f9))/0x6)+parseInt(_0x3b9810(0x28c))/0x7*(parseInt(_0x3b9810(0x2a6))/0x8)+-parseInt(_0x3b9810(0x1da))/0x9*(parseInt(_0x3b9810(0x1d4))/0xa)+-parseInt(_0x3b9810(0x229))/0xb+-parseInt(_0x3b9810(0x1d1))/0xc;if(_0xafa5ab===_0x3cae17)break;else _0x35a8b1['push'](_0x35a8b1['shift']());}catch(_0x6fe9e){_0x35a8b1['push'](_0x35a8b1['shift']());}}}(a0_0x3be4,0xc64f3));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_0x3d154a from'fs/promises';import a0_0x3c2000 from'path';import a0_0x3d97a1 from'os';import{createRequire}from'module';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';function a0_0x3be4(){const _0x12fdc3=['MORPH_WARP_GREP_TIMEOUT','-\x20Listed\x20directory\x20`','roots','access','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','commitHash','880rOxdRh','ms:','Unknown\x20error','log','completed','.vscode','normalize','toLowerCase','.git','\x20\x20\x20Lines\x20','[warpgrep_github_search]\x20Searching\x20','9197243VqGHDR','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.','Max\x20results\x20to\x20return','.\x20Path:\x20','success','stack','\x20valid\x20directories','Morph\x20Edit\x20Preview','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','searchGitHub','Invalid\x20arguments:\x20','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','edit_file','timeout','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','github_url','\x20error(s)','safeParse','TimeoutError','path','indexOf','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','codebase_search','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.','runWarpGrep_call','metadata','WarpGrepError','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','--help','Benefits:\x0a','❌\x20Morph\x20Edit\x20Failed:\x20','endLine','filter','terminated','node_modules','-\x20Read\x20file\x20`','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','text','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo','object','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','Fallback:\x20Using\x20workspace\x20root\x20','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20','stringify','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','ENOENT','No\x20relevant\x20code\x20found\x20for\x20the\x20query.','\x0aExamples:','completionId','setRequestHandler','Morph\x20FastApply\x20failed\x20without\x20error\x20message','now','join','push','\x20results\x20in\x20','branch','morph-','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','isDirectory','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','mcp-filesystem','--version','repoId','default','instruction','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','Warning:\x20Workspace\x20fallback\x20failed:\x20','grep','\x20is\x20not\x20a\x20directory','WarpGrep\x20sub-tool\x20errors:\x20','</file>','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','limit','.\x20Changes:\x20','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','ReadError','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','ms.\x20Success:\x20','../package.json','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','timings','application/json','FileNotFound','catch','targetDirectories','SymlinkError','MORPH_API_KEY','assistant','ms:\x0a\x0a','Created\x20File','getClientCapabilities','substring','includes','\x20\x20morph-mcp','startLine','340774gmWXcx','\x20-\x20','toISOString',',\x20removed\x20','Error:\x20','https://morphllm.com/api/error-report','warpgrep_github_search','version','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','dirname','[warpgrep_github_search]\x20Failed\x20in\x20','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','connect','4WoPzHv','ToolException','constructor','filepath','some','morph-mcp','rerankScore','describe','Unknown\x20tool:\x20','FileReadError','WORKSPACE_ROOT','tsconfig.json','Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20','184Qxswum','--api-key','-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a','Bearer\x20','argv','Error\x20accessing\x20directory\x20','⚡\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a','read','content','ENABLED_TOOLS','lines','messages','sep','number','File\x20read\x20error:','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','Workspace\x20mode\x20enabled:\x20Using\x20','GitHub\x20search\x20failed:\x20','dryRun','data','linesModified','finish','Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20','read\x20','SubToolError','setNotificationHandler','PWD','0.2.0','homedir','startsWith','unknown','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.','code_edit','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','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','string','search_string','RipgrepError','realpath','slice','[could\x20not\x20read\x20file:\x20','exit','readFile','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','Specific\x20commit\x20hash\x20to\x20search','\x20for:\x20\x22','min','linesAdded','unknown\x20error','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','\x22>\x0aError\x20reading\x20file:\x20','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','split','sk-','835446mvCdoW','morph-v3-fast','pyproject.toml','isArray','every','name','\x0aOptions:','**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a','Relevant\x20context\x20found:','\x0a</file>','Enabled\x20tools:\x20','Here\x20is\x20the\x20content\x20of\x20files:\x0a','requiresApiKey','-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a','terminationReason','\x20(new\x20file)','false','...','floor','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','linesRemoved','-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a','155gRtuET','Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)','match','.cursor','added\x20','length','toFixed','GitHub\x20repository\x20URL\x20or\x20\x27owner/repo\x27\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27\x20or\x20\x27https://github.com/vercel/next.js\x27)','@morphllm/morphmcp\x20','212wgUxpI','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','Applied','grep\x20\x27','message','--api-key=','10301520DIpuhW','\x20chars)','\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)','2312340DLsIty','go.mod','\x0a...\x20(truncated,\x20total:\x20','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','list_directory\x20','Rules:\x0a','9PZQULK','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','stats','has','env','UnknownError','all','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','Failed\x20to\x20read\x20file:\x20','payload','oninitialized','api-key','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','optional','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','code','RipgrepNotAvailable','utf-8','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','role','composer.json','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for','Warning:\x20','completed_with_file_errors','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','warpgrep_codebase_search','trim','[warpgrep_github_search]\x20Done\x20in\x20','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','241284gzNuOe','Found\x20','Cargo.toml','\x27\x20in\x20`','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','results','morph-warp-grep-v1-1111v0','enum','files','Query\x20type\x20hint.\x20Use\x20\x27node_modules\x27\x20when\x20searching\x20inside\x20node_modules\x20or\x20other\x20dependency\x20directories\x20that\x20are\x20normally\x20excluded.','boolean',',\x20modified\x20','listRoots','\x20\x20\x20','timed\x20out','repo_path','basename','warn','resolve','error','query_type','inputSchema','BinaryFile','-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a','source','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','errors','map','<file\x20path=\x22'];a0_0x3be4=function(){return _0x12fdc3;};return a0_0x3be4();}import{getValidRootDirectories}from'./roots-utils.js';import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider,GITHUB_SEARCH_TOOL_NAME,GITHUB_SEARCH_DESCRIPTION}from'@morphllm/morphsdk/tools/warp-grep';import{WarpGrepClient,formatResult}from'@morphllm/morphsdk/tools/warp-grep/client';import{executeCodebaseSearch}from'@morphllm/morphsdk/tools/codebase-search';import a0_0x5be7c4 from'axios';function fixPathRepetition(_0x35147f){const _0x275fda=a0_0xc007,_0x280c66=_0x35147f['split'](a0_0x3c2000[_0x275fda(0x2b2)])['filter'](Boolean);if(_0x280c66['length']<0x2)return null;for(let _0x25f9dc=Math[_0x275fda(0x1be)](_0x280c66[_0x275fda(0x1c7)]/0x2);_0x25f9dc>=0x1;_0x25f9dc--){for(let _0x33ccb1=0x0;_0x33ccb1<=_0x280c66['length']-0x2*_0x25f9dc;_0x33ccb1++){const _0x591f7f=_0x280c66[_0x275fda(0x2cd)](_0x33ccb1,_0x33ccb1+_0x25f9dc),_0x103d12=_0x280c66[_0x275fda(0x2cd)](_0x33ccb1+_0x25f9dc,_0x33ccb1+0x2*_0x25f9dc);if(_0x591f7f[_0x275fda(0x1b0)]((_0x149405,_0x59916b)=>_0x149405===_0x103d12[_0x59916b])){const _0x166856=[..._0x280c66['slice'](0x0,_0x33ccb1),..._0x280c66['slice'](_0x33ccb1+_0x25f9dc)];return a0_0x3c2000[_0x275fda(0x2b2)]+_0x166856[_0x275fda(0x261)](a0_0x3c2000[_0x275fda(0x2b2)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x4ab9c7=a0_0xc007;try{const _0x21edff=require(_0x4ab9c7(0x27b));return _0x21edff[_0x4ab9c7(0x293)]??_0x4ab9c7(0x2c4);}catch(_0x2fad3e){return console['error'](_0x4ab9c7(0x279),_0x2fad3e),_0x4ab9c7(0x2c4);}}function printHelp(){const _0x52ccea=a0_0xc007;console['log']('@morphllm/morphmcp\x20'+getPackageVersion()),console[_0x52ccea(0x221)](_0x52ccea(0x294)),console[_0x52ccea(0x221)](_0x52ccea(0x1b2)),console['log'](_0x52ccea(0x1d3)),console[_0x52ccea(0x221)](_0x52ccea(0x1e9)),console[_0x52ccea(0x221)](_0x52ccea(0x1d7)),console[_0x52ccea(0x221)](_0x52ccea(0x25c)),console[_0x52ccea(0x221)](_0x52ccea(0x28a)),console[_0x52ccea(0x221)](_0x52ccea(0x252));}function a0_0xc007(_0x496cba,_0xe6e51f){_0x496cba=_0x496cba-0x1b0;const _0x3be4dd=a0_0x3be4();let _0xc00759=_0x3be4dd[_0x496cba];return _0xc00759;}const cliArgs=process[a0_0x514987(0x2aa)][a0_0x514987(0x2cd)](0x2),VERSION_FLAGS=new Set([a0_0x514987(0x26a),'-v','-V']),HELP_FLAGS=new Set([a0_0x514987(0x247),'-h']);cliArgs[a0_0x514987(0x29d)](_0x410bff=>VERSION_FLAGS[a0_0x514987(0x1dd)](_0x410bff))&&(console[a0_0x514987(0x221)](a0_0x514987(0x1ca)+getPackageVersion()),process['exit'](0x0));cliArgs['some'](_0x91d85=>HELP_FLAGS[a0_0x514987(0x1dd)](_0x91d85))&&(printHelp(),process[a0_0x514987(0x2cf)](0x0));function getCliArg(_0x3d541d){const _0x29295d=a0_0x514987;for(let _0x2d20cd=0x0;_0x2d20cd<cliArgs[_0x29295d(0x1c7)];_0x2d20cd++){const _0x117281=cliArgs[_0x2d20cd];if(_0x117281[_0x29295d(0x2c3)]('--'+_0x3d541d+'='))return _0x117281[_0x29295d(0x2cd)](('--'+_0x3d541d+'=')[_0x29295d(0x1c7)]);if(_0x117281==='--'+_0x3d541d&&_0x2d20cd+0x1<cliArgs[_0x29295d(0x1c7)])return cliArgs[_0x2d20cd+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs[a0_0x514987(0x1c7)];i++){const arg=cliArgs[i];if(VERSION_FLAGS['has'](arg)||HELP_FLAGS['has'](arg))continue;if(arg[a0_0x514987(0x2c3)](a0_0x514987(0x1d0)))continue;if(arg===a0_0x514987(0x2a7)){i++;continue;}args[a0_0x514987(0x262)](arg);}const ALL_TOOLS=[a0_0x514987(0x237),a0_0x514987(0x1f5),a0_0x514987(0x292),a0_0x514987(0x241)],DEFAULT_TOOLS=[a0_0x514987(0x237),a0_0x514987(0x1f5),a0_0x514987(0x292)],ENABLED_TOOLS=process[a0_0x514987(0x1de)][a0_0x514987(0x2af)]?process[a0_0x514987(0x1de)][a0_0x514987(0x2af)]===a0_0x514987(0x1e0)?ALL_TOOLS:process[a0_0x514987(0x1de)][a0_0x514987(0x2af)][a0_0x514987(0x2da)](',')[a0_0x514987(0x215)](_0x33a0f3=>_0x33a0f3[a0_0x514987(0x1f6)]()):DEFAULT_TOOLS;console[a0_0x514987(0x20c)](a0_0x514987(0x1b6)+ENABLED_TOOLS['join'](',\x20'));const WORKSPACE_ROOT=process[a0_0x514987(0x1de)][a0_0x514987(0x2a3)]||process[a0_0x514987(0x1de)][a0_0x514987(0x2c0)]||process['cwd'](),ENABLE_WORKSPACE_MODE=process[a0_0x514987(0x1de)]['ENABLE_WORKSPACE_MODE']!==a0_0x514987(0x1bc),MORPH_API_KEY=getCliArg(a0_0x514987(0x1e6))??process[a0_0x514987(0x1de)][a0_0x514987(0x283)],MORPH_API_URL=process[a0_0x514987(0x1de)]['MORPH_API_URL'],MORPH_WARP_GREP_TIMEOUT=process[a0_0x514987(0x1de)][a0_0x514987(0x217)]?parseInt(process[a0_0x514987(0x1de)][a0_0x514987(0x217)],0xa):undefined;MORPH_API_KEY&&!MORPH_API_KEY[a0_0x514987(0x2c3)](a0_0x514987(0x2db))&&!MORPH_API_KEY[a0_0x514987(0x2c3)](a0_0x514987(0x265))&&console[a0_0x514987(0x20c)](a0_0x514987(0x236));async function reportMorphError(_0x5c5f80){const _0x525e6a=a0_0x514987;try{await a0_0x5be7c4['post'](_0x525e6a(0x291),{..._0x5c5f80,'timestamp':new Date()[_0x525e6a(0x28e)](),'source':_0x5c5f80[_0x525e6a(0x211)]||_0x525e6a(0x269)},{'timeout':0x1388,'headers':{'Content-Type':_0x525e6a(0x27e),'Authorization':_0x525e6a(0x2a9)+MORPH_API_KEY}});}catch{}}args[a0_0x514987(0x1c7)]===0x0&&!ENABLE_WORKSPACE_MODE&&(console[a0_0x514987(0x20c)](a0_0x514987(0x1e1)),console[a0_0x514987(0x20c)](a0_0x514987(0x297)),console[a0_0x514987(0x20c)](a0_0x514987(0x1e2)),console[a0_0x514987(0x20c)]('\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)'),console[a0_0x514987(0x20c)]('\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)'),console['error'](a0_0x514987(0x1fd)));function normalizePath(_0x28364b){const _0x18fa6d=a0_0x514987;return a0_0x3c2000[_0x18fa6d(0x224)](_0x28364b);}function expandHome(_0x5dab8f){const _0x2bf554=a0_0x514987;if(_0x5dab8f[_0x2bf554(0x2c3)]('~/')||_0x5dab8f==='~')return a0_0x3c2000[_0x2bf554(0x261)](a0_0x3d97a1[_0x2bf554(0x2c2)](),_0x5dab8f[_0x2bf554(0x2cd)](0x1));return _0x5dab8f;}let allowedDirectories=await Promise[a0_0x514987(0x1e0)](args[a0_0x514987(0x215)](async _0x367d3e=>{const _0x5f066f=a0_0x514987,_0x22d5ba=expandHome(_0x367d3e),_0x17bfa9=a0_0x3c2000[_0x5f066f(0x20b)](_0x22d5ba);try{const _0x7d832=await a0_0x3d154a['realpath'](_0x17bfa9);return normalizePath(_0x7d832);}catch(_0x51ffa6){return normalizePath(_0x17bfa9);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x514987(0x1c7)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories['push'](workspaceDir),console['error'](a0_0x514987(0x2b6)+workspaceDir+'\x20as\x20allowed\x20directory'));}catch(a0_0x53606e){console['error'](a0_0x514987(0x2b5)+a0_0x53606e);}async function detectWorkspaceRoot(_0x1f1858){const _0x12343f=a0_0x514987;let _0x7ee556=a0_0x3c2000[_0x12343f(0x20b)](_0x1f1858);const _0xf4c2fa=[_0x12343f(0x226),_0x12343f(0x223),'package.json',_0x12343f(0x1fb),_0x12343f(0x2de),_0x12343f(0x1d5),_0x12343f(0x1c5),_0x12343f(0x2a4),_0x12343f(0x1ef)];while(_0x7ee556!==a0_0x3c2000['dirname'](_0x7ee556)){for(const _0x109423 of _0xf4c2fa){const _0x359fd2=a0_0x3c2000[_0x12343f(0x261)](_0x7ee556,_0x109423);try{return await a0_0x3d154a[_0x12343f(0x21a)](_0x359fd2),normalizePath(_0x7ee556);}catch{}}_0x7ee556=a0_0x3c2000[_0x12343f(0x295)](_0x7ee556);}return normalizePath(_0x1f1858);}await Promise[a0_0x514987(0x1e0)](args[a0_0x514987(0x215)](async _0x1ce9ab=>{const _0x5e0951=a0_0x514987;try{const _0x1e1f83=await a0_0x3d154a['stat'](expandHome(_0x1ce9ab));!_0x1e1f83[_0x5e0951(0x267)]()&&(console[_0x5e0951(0x20c)](_0x5e0951(0x290)+_0x1ce9ab+_0x5e0951(0x271)),process[_0x5e0951(0x2cf)](0x1));}catch(_0x1f2889){console[_0x5e0951(0x20c)](_0x5e0951(0x2ab)+_0x1ce9ab+':',_0x1f2889),process[_0x5e0951(0x2cf)](0x1);}}));async function validatePath(_0x1e8c84){const _0xa93cb2=a0_0x514987,_0x82a2a=expandHome(_0x1e8c84),_0x282cf6=a0_0x3c2000['resolve'](_0x82a2a);try{const _0x2679fe=await a0_0x3d154a[_0xa93cb2(0x2cc)](_0x282cf6);return _0x2679fe;}catch(_0x2e1fa7){if(_0x2e1fa7[_0xa93cb2(0x1ea)]===_0xa93cb2(0x25a)){const _0x562da6=a0_0x3c2000['dirname'](_0x282cf6);try{const _0x32e010=await a0_0x3d154a['realpath'](_0x562da6);return a0_0x3c2000[_0xa93cb2(0x261)](_0x32e010,a0_0x3c2000[_0xa93cb2(0x209)](_0x282cf6));}catch{throw new Error('Parent\x20directory\x20does\x20not\x20exist:\x20'+_0x562da6);}}throw _0x2e1fa7;}}const MorphEditFileArgsSchema=z['object']({'path':z[a0_0x514987(0x2c9)](),'code_edit':z[a0_0x514987(0x2c9)]()['describe']('Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.'),'instruction':z[a0_0x514987(0x2c9)]()['describe'](a0_0x514987(0x1f8)),'dryRun':z[a0_0x514987(0x203)]()[a0_0x514987(0x26c)](![])['describe']('Preview\x20changes\x20without\x20applying\x20them.')}),WarpGrepArgsSchema=z['object']({'search_string':z[a0_0x514987(0x2c9)]()[a0_0x514987(0x2a0)](a0_0x514987(0x1f1)),'repo_path':z['string']()[a0_0x514987(0x2a0)](a0_0x514987(0x1f4)),'query_type':z[a0_0x514987(0x200)]([a0_0x514987(0x26c),a0_0x514987(0x24d)])['optional']()[a0_0x514987(0x2a0)](a0_0x514987(0x202))}),WarpGrepGitHubArgsSchema=z[a0_0x514987(0x253)]({'search_string':z[a0_0x514987(0x2c9)]()[a0_0x514987(0x2a0)](a0_0x514987(0x1f1)),'github_url':z['string']()[a0_0x514987(0x2a0)](a0_0x514987(0x1c9)),'branch':z[a0_0x514987(0x2c9)]()[a0_0x514987(0x1e8)]()[a0_0x514987(0x2a0)](a0_0x514987(0x1c3))}),CodebaseSearchArgsSchema=z[a0_0x514987(0x253)]({'query':z[a0_0x514987(0x2c9)]()[a0_0x514987(0x2a0)]('Natural\x20language\x20query\x20to\x20search\x20for\x20code'),'repoId':z[a0_0x514987(0x2c9)]()[a0_0x514987(0x2a0)]('Repository\x20identifier'),'branch':z[a0_0x514987(0x2c9)]()['optional']()['describe']('Branch\x20to\x20search\x20(uses\x20latest\x20commit)'),'commitHash':z[a0_0x514987(0x2c9)]()[a0_0x514987(0x1e8)]()[a0_0x514987(0x2a0)](a0_0x514987(0x2d2)),'targetDirectories':z['array'](z['string']())['default']([])[a0_0x514987(0x2a0)](a0_0x514987(0x2c7)),'limit':z[a0_0x514987(0x2b3)]()[a0_0x514987(0x1e8)]()[a0_0x514987(0x26c)](0xa)[a0_0x514987(0x2a0)](a0_0x514987(0x22b))}),server=new Server({'name':a0_0x514987(0x29e),'version':a0_0x514987(0x2c1)},{'capabilities':{'tools':{}}});server[a0_0x514987(0x25e)](ListToolsRequestSchema,async()=>{const _0x2397d7=a0_0x514987,_0x40df91=[{'name':_0x2397d7(0x237),'description':_0x2397d7(0x1cc)+_0x2397d7(0x240)+_0x2397d7(0x256)+_0x2397d7(0x246)+_0x2397d7(0x248)+_0x2397d7(0x254)+_0x2397d7(0x251)+'-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a'+_0x2397d7(0x235)+_0x2397d7(0x239)+_0x2397d7(0x27c)+_0x2397d7(0x26e)+'For\x20deletions:\x0a'+_0x2397d7(0x231)+'-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a'+_0x2397d7(0x1d9)+_0x2397d7(0x1ed)+_0x2397d7(0x277)+_0x2397d7(0x232)+'-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a'+_0x2397d7(0x268)+_0x2397d7(0x21c)+'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':_0x2397d7(0x1f5),'description':_0x2397d7(0x257)+_0x2397d7(0x1db)+_0x2397d7(0x2d7)+'Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20'+_0x2397d7(0x242)+_0x2397d7(0x2c8)+_0x2397d7(0x1bf)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':GITHUB_SEARCH_TOOL_NAME,'description':GITHUB_SEARCH_DESCRIPTION,'inputSchema':zodToJsonSchema(WarpGrepGitHubArgsSchema),'requiresApiKey':!![]},{'name':_0x2397d7(0x241),'description':_0x2397d7(0x1b3)+_0x2397d7(0x2ac)+'🎯\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a'+'Benefits:\x0a'+_0x2397d7(0x1b9)+_0x2397d7(0x1c1)+_0x2397d7(0x2a8)+_0x2397d7(0x210)+_0x2397d7(0x2a5)+_0x2397d7(0x2bc)+_0x2397d7(0x266),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x3ffc77=_0x40df91[_0x2397d7(0x24b)](_0x50c152=>{const _0x5b467d=_0x2397d7;if(!ENABLED_TOOLS[_0x5b467d(0x289)](_0x50c152[_0x5b467d(0x1b1)]))return![];if('requiresApiKey'in _0x50c152&&_0x50c152[_0x5b467d(0x1b8)]&&!MORPH_API_KEY)return console[_0x5b467d(0x20c)]('Warning:\x20'+_0x50c152['name']+_0x5b467d(0x259)),![];return!![];});return{'tools':_0x3ffc77['map'](_0x281b69=>({'name':_0x281b69[_0x2397d7(0x1b1)],'description':_0x281b69['description'],'inputSchema':_0x281b69[_0x2397d7(0x20e)]}))};}),server[a0_0x514987(0x25e)](CallToolRequestSchema,async _0x49e7b8=>{const _0x5899f2=a0_0x514987;try{const {name:_0x4ee7c6,arguments:_0x4c9bb1}=_0x49e7b8['params'];switch(_0x4ee7c6){case _0x5899f2(0x237):{const _0x27fae7=MorphEditFileArgsSchema[_0x5899f2(0x23c)](_0x4c9bb1);if(!_0x27fae7[_0x5899f2(0x22d)])throw new Error('Invalid\x20arguments\x20for\x20morph_edit_file:\x20'+_0x27fae7['error']);const _0x2e2e31=await validatePath(_0x27fae7['data']['path']);let _0x3d71e3=null,_0x45401f=!![],_0x10329f=null;try{_0x3d71e3=await a0_0x3d154a[_0x5899f2(0x2d0)](_0x2e2e31,_0x5899f2(0x1ec));}catch(_0x25e194){const _0x55b7bd=_0x25e194[_0x5899f2(0x1ea)];_0x55b7bd==='ENOENT'?(_0x45401f=![],_0x3d71e3=''):(_0x10329f=_0x5899f2(0x1e3)+(_0x55b7bd||_0x5899f2(0x2c4))+_0x5899f2(0x28d)+(_0x25e194 instanceof Error?_0x25e194[_0x5899f2(0x1cf)]:String(_0x25e194)),console['error'](_0x5899f2(0x1f2)+_0x10329f));}let _0x7a4cd6;try{const _0x418aaa=MORPH_API_KEY;if(!_0x418aaa)throw new Error(_0x5899f2(0x2d1));const _0x80e517=a0_0x3c2000[_0x5899f2(0x295)](_0x2e2e31),_0x3c303f=a0_0x3c2000['basename'](_0x2e2e31),_0x3e2a1a=await executeEditFile({'target_filepath':_0x3c303f,'code_edit':_0x27fae7['data'][_0x5899f2(0x2c6)],'instructions':_0x27fae7[_0x5899f2(0x2b9)][_0x5899f2(0x26d)]},{'morphApiKey':_0x418aaa,'morphApiUrl':MORPH_API_URL,'baseDir':_0x80e517,'autoWrite':!_0x27fae7[_0x5899f2(0x2b9)][_0x5899f2(0x2b8)],'generateUdiff':![],'debug':![]});_0x7a4cd6=_0x3e2a1a[_0x5899f2(0x25d)];if(!_0x3e2a1a[_0x5899f2(0x22d)])throw new Error(_0x3e2a1a[_0x5899f2(0x20c)]||_0x5899f2(0x25f));const _0x1080fd=_0x3e2a1a['changes'],_0x1700ae=_0x5899f2(0x1c6)+_0x1080fd[_0x5899f2(0x2d5)]+_0x5899f2(0x28f)+_0x1080fd[_0x5899f2(0x1c0)]+_0x5899f2(0x204)+_0x1080fd[_0x5899f2(0x2ba)];if(_0x27fae7['data'][_0x5899f2(0x2b8)])return{'content':[{'type':_0x5899f2(0x250),'text':_0x5899f2(0x230)+(_0x45401f?'':_0x5899f2(0x1bb))+':\x20'+_0x27fae7[_0x5899f2(0x2b9)][_0x5899f2(0x26d)]+_0x5899f2(0x276)+_0x1700ae+_0x5899f2(0x22c)+_0x27fae7[_0x5899f2(0x2b9)][_0x5899f2(0x23e)]+'.'}]};return{'content':[{'type':_0x5899f2(0x250),'text':'Morph\x20Edit\x20'+(_0x45401f?_0x5899f2(0x1cd):_0x5899f2(0x286))+':\x20'+_0x27fae7[_0x5899f2(0x2b9)]['instruction']+_0x5899f2(0x276)+_0x1700ae+_0x5899f2(0x22c)+_0x27fae7['data'][_0x5899f2(0x23e)]+'.'}]};}catch(_0x164754){const _0x3f5ac9=_0x164754 instanceof Error?_0x164754[_0x5899f2(0x1cf)]:String(_0x164754);return reportMorphError({'error_message':_0x3f5ac9,'error_type':_0x164754 instanceof Error?_0x164754[_0x5899f2(0x29b)][_0x5899f2(0x1b1)]:_0x5899f2(0x1df),'context':{'tool':_0x5899f2(0x237),'completion_id':_0x7a4cd6,'file_path':_0x27fae7[_0x5899f2(0x2b9)][_0x5899f2(0x23e)],'validated_path':_0x2e2e31,'instruction':_0x27fae7[_0x5899f2(0x2b9)][_0x5899f2(0x26d)],'model':_0x5899f2(0x2dd),'dry_run':_0x27fae7[_0x5899f2(0x2b9)]['dryRun'],'file_exists':_0x45401f,'file_read_error':_0x10329f,'file_readable':_0x3d71e3!==null,'request_content':{'path':_0x27fae7[_0x5899f2(0x2b9)][_0x5899f2(0x23e)],'code_edit':_0x27fae7[_0x5899f2(0x2b9)][_0x5899f2(0x2c6)],'instruction':_0x27fae7['data'][_0x5899f2(0x26d)],'original_code':_0x3d71e3!==null?_0x3d71e3[_0x5899f2(0x1c7)]>0xc350?_0x3d71e3[_0x5899f2(0x288)](0x0,0xc350)+_0x5899f2(0x1d6)+_0x3d71e3['length']+_0x5899f2(0x1d2):_0x3d71e3:_0x5899f2(0x2ce)+(_0x10329f||_0x5899f2(0x2d6))+']','original_code_length':_0x3d71e3?.[_0x5899f2(0x1c7)]??0x0,'model':'morph-v3-fast','dry_run':_0x27fae7[_0x5899f2(0x2b9)][_0x5899f2(0x2b8)]}},'stack_trace':_0x164754 instanceof Error?_0x164754[_0x5899f2(0x22e)]:undefined,'source':'mcp-filesystem'})['catch'](()=>{}),{'content':[{'type':_0x5899f2(0x250),'text':_0x5899f2(0x249)+_0x3f5ac9}],'isError':!![]};}}case _0x5899f2(0x1f5):{const _0x1ef080=WarpGrepArgsSchema[_0x5899f2(0x23c)](_0x4c9bb1);if(!_0x1ef080[_0x5899f2(0x22d)])return{'content':[{'type':_0x5899f2(0x250),'text':'Invalid\x20arguments:\x20'+_0x1ef080[_0x5899f2(0x20c)]}],'isError':!![]};const _0x3f2a55=_0x517dc2=>{const _0x2bc64e=_0x5899f2,_0x193485=[];for(const _0x41efbd of _0x517dc2||[]){const _0x160b5f=_0x41efbd[_0x2bc64e(0x1ee)],_0x55680d=_0x41efbd[_0x2bc64e(0x2ae)];if(_0x160b5f===_0x2bc64e(0x284)&&_0x55680d){const _0x1c3abe=_0x55680d['split']('\x0a')[_0x2bc64e(0x24b)](_0x2e6226=>_0x2e6226[_0x2bc64e(0x1f6)]());for(const _0x45a69f of _0x1c3abe){const _0x478ab1=_0x45a69f[_0x2bc64e(0x1c4)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x478ab1){_0x193485[_0x2bc64e(0x262)](_0x2bc64e(0x1ce)+_0x478ab1[0x1]+'\x27\x20'+_0x478ab1[0x2]);continue;}const _0x2aa5b2=_0x45a69f[_0x2bc64e(0x1c4)](/^read\s+(.+)$/);if(_0x2aa5b2){_0x193485[_0x2bc64e(0x262)](_0x2bc64e(0x2bd)+_0x2aa5b2[0x1]);continue;}const _0x2e8de2=_0x45a69f[_0x2bc64e(0x1c4)](/^list_directory\s+(.+)$/);if(_0x2e8de2){_0x193485['push'](_0x2bc64e(0x1d8)+_0x2e8de2[0x1]);continue;}}}}return _0x193485;},_0x45e50d=_0x133982=>{const _0x4ed7e0=_0x5899f2,_0x56bb1b=[];if(!_0x133982||!Array[_0x4ed7e0(0x2df)](_0x133982))return _0x56bb1b;const _0x5a26b2=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':_0x4ed7e0(0x27f),'tool':_0x4ed7e0(0x2ad)},{'pattern':/\[PATH ERROR\]/,'error_type':'PathError','tool':_0x4ed7e0(0x2ad)},{'pattern':/\[READ ERROR\]/,'error_type':_0x4ed7e0(0x278),'tool':_0x4ed7e0(0x2ad)},{'pattern':/\[UNREADABLE FILE\]/,'error_type':'BinaryFile','tool':_0x4ed7e0(0x2ad)},{'pattern':/\[RIPGREP ERROR\]/,'error_type':_0x4ed7e0(0x2cb),'tool':_0x4ed7e0(0x270)},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x4ed7e0(0x1eb),'tool':'grep'},{'pattern':/\[BINARY FILE\]/,'error_type':'BinaryFile','tool':'read'},{'pattern':/\[SYMLINK\]/,'error_type':_0x4ed7e0(0x282),'tool':'read'},{'pattern':/not a text file/,'error_type':_0x4ed7e0(0x20f),'tool':_0x4ed7e0(0x2ad)},{'pattern':/symbolic link/,'error_type':_0x4ed7e0(0x282),'tool':_0x4ed7e0(0x2ad)},{'pattern':/Error reading file:/,'error_type':_0x4ed7e0(0x278),'tool':_0x4ed7e0(0x2ad)},{'pattern':/status="error"/,'error_type':_0x4ed7e0(0x29a),'tool':'unknown'}];let _0x3381e3=0x0;for(const _0x5d40a4 of _0x133982){if(_0x5d40a4['role']==='user'){_0x3381e3++;const _0x2c6bee=_0x5d40a4[_0x4ed7e0(0x2ae)];if(!_0x2c6bee||typeof _0x2c6bee!==_0x4ed7e0(0x2c9))continue;for(const {pattern:_0x2ff929,error_type:_0x17762e,tool:_0xf31927}of _0x5a26b2){const _0x14355a=_0x2c6bee[_0x4ed7e0(0x1c4)](new RegExp(_0x2ff929['source'],'g'));if(_0x14355a)for(const _0x1ee32b of _0x14355a){const _0x24c7bf=_0x2c6bee[_0x4ed7e0(0x23f)](_0x1ee32b),_0xdefa36=_0x2c6bee[_0x4ed7e0(0x288)](_0x24c7bf,Math[_0x4ed7e0(0x2d4)](_0x24c7bf+0xc8,_0x2c6bee['length']));_0x56bb1b[_0x4ed7e0(0x262)]({'tool':_0xf31927,'error_type':_0x17762e,'error_message':_0xdefa36['split']('\x0a')[0x0],'turn':_0x3381e3});}}}}return _0x56bb1b;};try{const _0x13952e=a0_0x3c2000[_0x5899f2(0x20b)](_0x1ef080[_0x5899f2(0x2b9)]['repo_path']),_0x1d87a1=_0x1ef080[_0x5899f2(0x2b9)][_0x5899f2(0x20d)],_0x4de88c=_0x1d87a1===_0x5899f2(0x24d)?{'allowNames':['node_modules']}:undefined,_0x6a1052=new LocalRipgrepProvider(_0x13952e,undefined,_0x4de88c),_0x2f63d3=await runWarpGrep({'query':_0x1ef080[_0x5899f2(0x2b9)][_0x5899f2(0x2ca)],'repoRoot':_0x13952e,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x6a1052,'query_type':_0x1d87a1}),_0x2f72c0=_0x45e50d(_0x2f63d3[_0x5899f2(0x2b1)]);_0x2f72c0[_0x5899f2(0x1c7)]>0x0&&reportMorphError({'error_message':_0x5899f2(0x272)+_0x2f72c0[_0x5899f2(0x1c7)]+_0x5899f2(0x23b),'error_type':_0x5899f2(0x2be),'level':_0x5899f2(0x20a),'tool':_0x5899f2(0x1f5),'context':{'repo_path':_0x1ef080[_0x5899f2(0x2b9)][_0x5899f2(0x208)],'query':_0x1ef080['data'][_0x5899f2(0x2ca)],'model':_0x5899f2(0x1ff),'termination_reason':_0x2f63d3['terminationReason'],'sub_tool_errors':_0x2f72c0,'timings':_0x2f63d3['timings'],'tool_calls':_0x3f2a55(_0x2f63d3[_0x5899f2(0x2b1)]),'messages':_0x2f63d3['messages']?.[_0x5899f2(0x215)](_0x3b0524=>({'role':_0x3b0524[_0x5899f2(0x1ee)],'content':_0x3b0524[_0x5899f2(0x2ae)]}))},'source':'mcp-filesystem'})['catch'](()=>{});let _0x3e0425='';if(_0x2f63d3[_0x5899f2(0x1ba)]===_0x5899f2(0x222)&&_0x2f63d3[_0x5899f2(0x2bb)]?.[_0x5899f2(0x244)]?.[_0x5899f2(0x201)]){const _0x4bcb93=_0x2f63d3['finish'][_0x5899f2(0x244)][_0x5899f2(0x201)];if(_0x4bcb93['length']===0x0)return _0x3e0425=_0x2f63d3['finish'][_0x5899f2(0x1e4)]||_0x5899f2(0x25b),{'content':[{'type':_0x5899f2(0x250),'text':_0x3e0425}]};const _0x495bff=[],_0x2592bb=['Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:'];for(const _0x78e1e4 of _0x2f63d3['messages']){const _0x2950ab=_0x78e1e4['role'],_0x32085e=_0x78e1e4[_0x5899f2(0x2ae)];if(_0x2950ab===_0x5899f2(0x284)&&_0x32085e){const _0x37aede=_0x32085e['split']('\x0a')[_0x5899f2(0x24b)](_0x422a2b=>_0x422a2b[_0x5899f2(0x1f6)]());for(const _0x195d59 of _0x37aede){const _0x579163=_0x195d59[_0x5899f2(0x1c4)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x579163){_0x2592bb['push']('-\x20Grepped\x20\x27'+_0x579163[0x1]+_0x5899f2(0x1fc)+_0x579163[0x2]+'`');continue;}const _0x46ae11=_0x195d59['match'](/^read\s+(.+)$/);if(_0x46ae11){_0x2592bb[_0x5899f2(0x262)](_0x5899f2(0x24e)+_0x46ae11[0x1]+'`');continue;}const _0x59a24b=_0x195d59['match'](/^list_directory\s+(.+)$/);if(_0x59a24b){_0x2592bb['push'](_0x5899f2(0x218)+_0x59a24b[0x1]+'`');continue;}}}}_0x495bff['push'](_0x2592bb[_0x5899f2(0x261)]('\x0a'));const _0x55cbfa=['',_0x5899f2(0x1b4)];for(const _0x42835c of _0x4bcb93){if(_0x42835c[_0x5899f2(0x2b0)]==='*')_0x55cbfa[_0x5899f2(0x262)]('-\x20'+_0x42835c[_0x5899f2(0x23e)]+':*');else{if(Array[_0x5899f2(0x2df)](_0x42835c[_0x5899f2(0x2b0)])){const _0x57df1b=_0x42835c[_0x5899f2(0x2b0)][_0x5899f2(0x215)](([_0xf46866,_0x1b9ac2])=>{if(_0xf46866===_0x1b9ac2)return''+_0xf46866;return _0xf46866+'-'+_0x1b9ac2;});_0x55cbfa[_0x5899f2(0x262)]('-\x20'+_0x42835c[_0x5899f2(0x23e)]+':'+_0x57df1b[_0x5899f2(0x261)](','));}else _0x55cbfa[_0x5899f2(0x262)]('-\x20'+_0x42835c[_0x5899f2(0x23e)]+':*');}}_0x55cbfa['push'](''),_0x495bff[_0x5899f2(0x262)](_0x55cbfa[_0x5899f2(0x261)]('\x0a')),_0x495bff['push'](_0x5899f2(0x1b7));const _0x14fb43=[];for(const _0x48196e of _0x4bcb93){let _0x3c9e1c=a0_0x3c2000[_0x5899f2(0x20b)](_0x1ef080[_0x5899f2(0x2b9)][_0x5899f2(0x208)],_0x48196e[_0x5899f2(0x23e)]),_0x146ffc=null,_0x592946=null;try{_0x146ffc=await a0_0x3d154a[_0x5899f2(0x2d0)](_0x3c9e1c,{'encoding':'utf-8'});}catch(_0x120f12){const _0x3b5a89=fixPathRepetition(_0x3c9e1c);if(_0x3b5a89)try{_0x146ffc=await a0_0x3d154a[_0x5899f2(0x2d0)](_0x3b5a89,{'encoding':_0x5899f2(0x1ec)}),_0x3c9e1c=_0x3b5a89;}catch{_0x592946=_0x120f12 instanceof Error?_0x120f12:new Error(String(_0x120f12));}else _0x592946=_0x120f12 instanceof Error?_0x120f12:new Error(String(_0x120f12));}if(_0x146ffc!==null){const _0x53f3fc=_0x146ffc[_0x5899f2(0x2da)](/\r?\n/),_0x4d48e6=[_0x5899f2(0x216)+_0x48196e[_0x5899f2(0x23e)]+'\x22>'];if(_0x48196e[_0x5899f2(0x2b0)]==='*'||!Array[_0x5899f2(0x2df)](_0x48196e[_0x5899f2(0x2b0)]))for(let _0x283265=0x1;_0x283265<=_0x53f3fc['length'];_0x283265++){const _0x2bef10=_0x53f3fc[_0x283265-0x1];_0x4d48e6[_0x5899f2(0x262)](_0x283265+'|\x20'+_0x2bef10);}else for(const [_0x1326e9,_0x597e72]of _0x48196e[_0x5899f2(0x2b0)]){_0x4d48e6[_0x5899f2(0x1c7)]>0x1&&_0x4d48e6[_0x5899f2(0x262)]('');for(let _0x3b8316=_0x1326e9;_0x3b8316<=_0x597e72&&_0x3b8316<=_0x53f3fc[_0x5899f2(0x1c7)];_0x3b8316++){const _0x364e75=_0x53f3fc[_0x3b8316-0x1];_0x4d48e6[_0x5899f2(0x262)](_0x3b8316+'|\x20'+_0x364e75);}}_0x4d48e6[_0x5899f2(0x262)](_0x5899f2(0x273)),_0x14fb43[_0x5899f2(0x262)](_0x4d48e6['join']('\x0a'));}else _0x14fb43[_0x5899f2(0x262)](_0x5899f2(0x216)+_0x48196e[_0x5899f2(0x23e)]+_0x5899f2(0x2d8)+(_0x592946?.[_0x5899f2(0x1cf)]||_0x5899f2(0x220))+_0x5899f2(0x1b5));}_0x495bff['push'](_0x14fb43['join']('\x0a\x0a')),_0x3e0425=_0x495bff[_0x5899f2(0x261)]('\x0a');const _0x2c2956=_0x2f63d3[_0x5899f2(0x214)]?.[_0x5899f2(0x24b)](_0x431f92=>_0x431f92[_0x5899f2(0x1cf)]?.[_0x5899f2(0x2c3)](_0x5899f2(0x2b4)))||[];if(_0x2c2956[_0x5899f2(0x1c7)]>0x0){const _0x4c3966=_0x2c2956['map'](_0x1ba44e=>_0x1ba44e[_0x5899f2(0x1cf)])[_0x5899f2(0x261)](';\x20');reportMorphError({'error_message':_0x4c3966,'error_type':_0x5899f2(0x2a2),'context':{'tool':_0x5899f2(0x1f5),'repo_path':_0x1ef080[_0x5899f2(0x2b9)]['repo_path'],'query':_0x1ef080[_0x5899f2(0x2b9)]['search_string'],'model':_0x5899f2(0x1ff),'termination_reason':_0x5899f2(0x1f3),'error_count':_0x2c2956[_0x5899f2(0x1c7)],'is_timeout':![],'timings':_0x2f63d3[_0x5899f2(0x27d)],'files_attempted':_0x4bcb93[_0x5899f2(0x215)](_0x11cc79=>({'path':_0x11cc79[_0x5899f2(0x23e)],'lines':_0x11cc79[_0x5899f2(0x2b0)]})),'tool_calls':_0x3f2a55(_0x2f63d3['messages']),'messages':_0x2f63d3['messages']?.[_0x5899f2(0x215)](_0x1aea54=>({'role':_0x1aea54['role'],'content':_0x1aea54[_0x5899f2(0x2ae)]})),'request_content':{'query':_0x1ef080[_0x5899f2(0x2b9)]['search_string'],'repo_path':_0x1ef080[_0x5899f2(0x2b9)]['repo_path'],'repoRoot':a0_0x3c2000['resolve'](_0x1ef080['data']['repo_path']),'model':_0x5899f2(0x1ff)}},'source':_0x5899f2(0x269)})[_0x5899f2(0x280)](()=>{});}}else{if(_0x2f63d3[_0x5899f2(0x1ba)]===_0x5899f2(0x24c)&&_0x2f63d3[_0x5899f2(0x214)][_0x5899f2(0x1c7)]>0x0){const _0x4d326c=_0x2f63d3[_0x5899f2(0x214)][_0x5899f2(0x215)](_0x76d105=>_0x76d105[_0x5899f2(0x1cf)])['join'](';\x20');_0x3e0425=_0x5899f2(0x290)+_0x4d326c;const _0x1bc0eb=_0x4d326c['toLowerCase']()[_0x5899f2(0x289)](_0x5899f2(0x238))||_0x4d326c[_0x5899f2(0x225)]()[_0x5899f2(0x289)](_0x5899f2(0x207))||_0x4d326c[_0x5899f2(0x225)]()['includes']('etimedout'),_0xf930f1=_0x2f63d3['finish']?.[_0x5899f2(0x244)]?.[_0x5899f2(0x201)],_0x2832ef=_0x2f63d3[_0x5899f2(0x214)][0x0];reportMorphError({'error_message':_0x4d326c,'error_type':_0x1bc0eb?'TimeoutError':_0x2832ef?.[_0x5899f2(0x29b)]?.[_0x5899f2(0x1b1)]||_0x5899f2(0x245),'context':{'tool':_0x5899f2(0x1f5),'repo_path':_0x1ef080[_0x5899f2(0x2b9)]['repo_path'],'query':_0x1ef080[_0x5899f2(0x2b9)][_0x5899f2(0x2ca)],'model':_0x5899f2(0x1ff),'termination_reason':_0x2f63d3[_0x5899f2(0x1ba)],'error_count':_0x2f63d3[_0x5899f2(0x214)][_0x5899f2(0x1c7)],'is_timeout':_0x1bc0eb,'timings':_0x2f63d3[_0x5899f2(0x27d)],'files_attempted':_0xf930f1?.[_0x5899f2(0x215)](_0x5ed6c2=>({'path':_0x5ed6c2['path'],'lines':_0x5ed6c2[_0x5899f2(0x2b0)]})),'tool_calls':_0x3f2a55(_0x2f63d3[_0x5899f2(0x2b1)]),'messages':_0x2f63d3[_0x5899f2(0x2b1)]?.[_0x5899f2(0x215)](_0x1a8d2d=>({'role':_0x1a8d2d[_0x5899f2(0x1ee)],'content':_0x1a8d2d[_0x5899f2(0x2ae)]})),'request_content':{'query':_0x1ef080[_0x5899f2(0x2b9)]['search_string'],'repo_path':_0x1ef080[_0x5899f2(0x2b9)][_0x5899f2(0x208)],'repoRoot':a0_0x3c2000[_0x5899f2(0x20b)](_0x1ef080[_0x5899f2(0x2b9)][_0x5899f2(0x208)]),'model':_0x5899f2(0x1ff)}},'stack_trace':_0x2832ef?.[_0x5899f2(0x22e)]||undefined,'source':_0x5899f2(0x269)})['catch'](()=>{});}else _0x3e0425=_0x5899f2(0x212);}return{'content':[{'type':_0x5899f2(0x250),'text':_0x3e0425}]};}catch(_0x474a4f){const _0x2db4ae=_0x474a4f instanceof Error?_0x474a4f[_0x5899f2(0x1cf)]:String(_0x474a4f),_0x221f84=_0x2db4ae['toLowerCase']()[_0x5899f2(0x289)](_0x5899f2(0x238))||_0x2db4ae[_0x5899f2(0x225)]()['includes']('timed\x20out')||_0x2db4ae['toLowerCase']()[_0x5899f2(0x289)]('etimedout')||_0x474a4f instanceof Error&&_0x474a4f['name']===_0x5899f2(0x23d);return reportMorphError({'error_message':_0x2db4ae,'error_type':_0x221f84?_0x5899f2(0x23d):_0x474a4f instanceof Error?_0x474a4f[_0x5899f2(0x29b)][_0x5899f2(0x1b1)]:_0x5899f2(0x1df),'context':{'tool':_0x5899f2(0x1f5),'repo_path':_0x1ef080['data'][_0x5899f2(0x208)],'query':_0x1ef080[_0x5899f2(0x2b9)][_0x5899f2(0x2ca)],'model':'morph-warp-grep-v1-1111v0','is_timeout':_0x221f84,'exception_phase':_0x5899f2(0x243),'request_content':{'query':_0x1ef080[_0x5899f2(0x2b9)][_0x5899f2(0x2ca)],'repo_path':_0x1ef080[_0x5899f2(0x2b9)][_0x5899f2(0x208)],'repoRoot':a0_0x3c2000['resolve'](_0x1ef080[_0x5899f2(0x2b9)][_0x5899f2(0x208)]),'model':_0x5899f2(0x1ff)}},'stack_trace':_0x474a4f instanceof Error?_0x474a4f[_0x5899f2(0x22e)]:undefined,'source':_0x5899f2(0x269)})[_0x5899f2(0x280)](()=>{}),{'content':[{'type':_0x5899f2(0x250),'text':'Error\x20running\x20fast\x20context\x20search:\x20'+_0x2db4ae}],'isError':![]};}}case _0x5899f2(0x292):{const _0x48184a=WarpGrepGitHubArgsSchema[_0x5899f2(0x23c)](_0x4c9bb1);if(!_0x48184a['success'])return{'content':[{'type':'text','text':'Invalid\x20arguments:\x20'+_0x48184a[_0x5899f2(0x20c)]}],'isError':!![]};const _0x2a180d=MORPH_API_KEY;if(!_0x2a180d)throw new Error(_0x5899f2(0x2d1));const _0x40f269=Date[_0x5899f2(0x260)]();console['error'](_0x5899f2(0x228)+_0x48184a['data'][_0x5899f2(0x23a)]+_0x5899f2(0x2d3)+_0x48184a[_0x5899f2(0x2b9)]['search_string']+'\x22');try{const _0x45d79e=new WarpGrepClient({'morphApiKey':_0x2a180d,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0x4d7d03=await _0x45d79e[_0x5899f2(0x233)]({'query':_0x48184a[_0x5899f2(0x2b9)][_0x5899f2(0x2ca)],'github':_0x48184a['data'][_0x5899f2(0x23a)],'branch':_0x48184a[_0x5899f2(0x2b9)][_0x5899f2(0x264)]}),_0x26a016=Date['now']()-_0x40f269;console[_0x5899f2(0x20c)](_0x5899f2(0x1f7)+_0x26a016+_0x5899f2(0x27a)+_0x4d7d03[_0x5899f2(0x22d)]);const _0x2c7f66=formatResult(_0x4d7d03);return{'content':[{'type':'text','text':_0x2c7f66}]};}catch(_0x33fffe){const _0x34da35=Date[_0x5899f2(0x260)]()-_0x40f269,_0x55f8e4=_0x33fffe instanceof Error?_0x33fffe[_0x5899f2(0x1cf)]:String(_0x33fffe);return console[_0x5899f2(0x20c)](_0x5899f2(0x296)+_0x34da35+_0x5899f2(0x21f),_0x55f8e4),reportMorphError({'error_message':_0x55f8e4,'error_type':_0x33fffe instanceof Error?_0x33fffe[_0x5899f2(0x29b)]['name']:'UnknownError','context':{'tool':_0x5899f2(0x292),'github_url':_0x48184a[_0x5899f2(0x2b9)][_0x5899f2(0x23a)],'search_string':_0x48184a[_0x5899f2(0x2b9)]['search_string'],'branch':_0x48184a['data'][_0x5899f2(0x264)]},'stack_trace':_0x33fffe instanceof Error?_0x33fffe['stack']:undefined,'source':_0x5899f2(0x269),'tool':_0x5899f2(0x292),'latency_ms':_0x34da35})['catch'](()=>{}),{'content':[{'type':'text','text':_0x5899f2(0x2b7)+_0x55f8e4}],'isError':![]};}}case _0x5899f2(0x241):{const _0x597b8e=CodebaseSearchArgsSchema[_0x5899f2(0x23c)](_0x4c9bb1);if(!_0x597b8e[_0x5899f2(0x22d)])return{'content':[{'type':_0x5899f2(0x250),'text':_0x5899f2(0x234)+_0x597b8e['error']}],'isError':!![]};try{const _0x11c4ae=MORPH_API_KEY;if(!_0x11c4ae)throw new Error(_0x5899f2(0x22a));const _0x21ec5a=_0x597b8e[_0x5899f2(0x2b9)]['targetDirectories'],_0x24cc53=await executeCodebaseSearch({'query':_0x597b8e[_0x5899f2(0x2b9)]['query'],'target_directories':_0x21ec5a,'limit':_0x597b8e[_0x5899f2(0x2b9)][_0x5899f2(0x275)]},{'apiKey':_0x11c4ae,'repoId':_0x597b8e[_0x5899f2(0x2b9)][_0x5899f2(0x26b)],'branch':_0x597b8e[_0x5899f2(0x2b9)][_0x5899f2(0x264)],'commitHash':_0x597b8e[_0x5899f2(0x2b9)][_0x5899f2(0x21d)],'debug':![]});if(!_0x24cc53[_0x5899f2(0x22d)])return{'content':[{'type':'text','text':'Search\x20failed:\x20'+_0x24cc53[_0x5899f2(0x20c)]}],'isError':!![]};const _0x5979a3=_0x24cc53['results'][_0x5899f2(0x1c7)]===0x0?'No\x20results\x20found\x20for\x20query:\x20\x22'+_0x597b8e[_0x5899f2(0x2b9)]['query']+'\x22':_0x5899f2(0x1fa)+_0x24cc53[_0x5899f2(0x1fe)]['length']+_0x5899f2(0x263)+_0x24cc53[_0x5899f2(0x1dc)]['searchTimeMs']+_0x5899f2(0x285)+_0x24cc53[_0x5899f2(0x1fe)][_0x5899f2(0x215)]((_0x262dda,_0x46757c)=>_0x46757c+0x1+'.\x20'+_0x262dda[_0x5899f2(0x29c)]+'\x20('+(_0x262dda[_0x5899f2(0x29f)]*0x64)[_0x5899f2(0x1c8)](0x1)+'%\x20match)\x0a'+(_0x5899f2(0x227)+_0x262dda[_0x5899f2(0x28b)]+'-'+_0x262dda[_0x5899f2(0x24a)]+'\x0a')+(_0x5899f2(0x206)+_0x262dda['content'][_0x5899f2(0x288)](0x0,0xc8)+(_0x262dda[_0x5899f2(0x2ae)]['length']>0xc8?_0x5899f2(0x1bd):'')+'\x0a'))[_0x5899f2(0x261)]('\x0a');return{'content':[{'type':'text','text':_0x5979a3}]};}catch(_0x38e4b0){const _0x4e8f27=_0x38e4b0 instanceof Error?_0x38e4b0[_0x5899f2(0x1cf)]:String(_0x38e4b0);return reportMorphError({'error_message':_0x4e8f27,'error_type':_0x38e4b0 instanceof Error?_0x38e4b0[_0x5899f2(0x29b)][_0x5899f2(0x1b1)]:'UnknownError','context':{'tool':_0x5899f2(0x241),'query':_0x597b8e['data']['query'],'repo_id':_0x597b8e[_0x5899f2(0x2b9)]['repoId'],'target_directories':_0x597b8e['data'][_0x5899f2(0x281)]},'stack_trace':_0x38e4b0 instanceof Error?_0x38e4b0[_0x5899f2(0x22e)]:undefined,'source':_0x5899f2(0x269)})[_0x5899f2(0x280)](()=>{}),{'content':[{'type':_0x5899f2(0x250),'text':_0x5899f2(0x290)+_0x4e8f27}],'isError':!![]};}}default:throw new Error(_0x5899f2(0x2a1)+_0x4ee7c6);}}catch(_0x256153){const _0x1a8853=_0x256153 instanceof Error?_0x256153['message']:String(_0x256153);return reportMorphError({'error_message':_0x1a8853,'error_type':_0x256153 instanceof Error?_0x256153[_0x5899f2(0x29b)]['name']:_0x5899f2(0x1df),'context':{'tool':name,'arguments':args?JSON[_0x5899f2(0x258)](args)[_0x5899f2(0x288)](0x0,0x1f4):undefined,'mcp_server_version':_0x5899f2(0x2c1)},'stack_trace':_0x256153 instanceof Error?_0x256153['stack']:undefined,'source':_0x5899f2(0x269)})['catch'](()=>{}),{'content':[{'type':_0x5899f2(0x250),'text':_0x5899f2(0x290)+_0x1a8853}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x4540ea){const _0xceaa87=a0_0x514987,_0x575fb5=await getValidRootDirectories(_0x4540ea);if(_0x575fb5[_0xceaa87(0x1c7)]>0x0)allowedDirectories=[..._0x575fb5],console[_0xceaa87(0x20c)](_0xceaa87(0x274)+_0x575fb5['length']+_0xceaa87(0x22f));else{console[_0xceaa87(0x20c)](_0xceaa87(0x1f0));if(ENABLE_WORKSPACE_MODE)try{const _0xa8521d=await detectWorkspaceRoot(WORKSPACE_ROOT);_0xa8521d&&(allowedDirectories=[_0xa8521d],console[_0xceaa87(0x20c)](_0xceaa87(0x255)+_0xa8521d));}catch(_0x2b4c40){console[_0xceaa87(0x20c)](_0xceaa87(0x26f)+_0x2b4c40);}}}server[a0_0x514987(0x2bf)](RootsListChangedNotificationSchema,async()=>{const _0x34387e=a0_0x514987;try{const _0x14b951=await server[_0x34387e(0x205)]();_0x14b951&&_0x34387e(0x219)in _0x14b951&&await updateAllowedDirectoriesFromRoots(_0x14b951[_0x34387e(0x219)]);}catch(_0x1ba307){console[_0x34387e(0x20c)]('Failed\x20to\x20request\x20roots\x20from\x20client:',_0x1ba307 instanceof Error?_0x1ba307['message']:String(_0x1ba307));}}),server[a0_0x514987(0x1e5)]=async()=>{const _0x1d31ee=a0_0x514987,_0x2c9d5d=server[_0x1d31ee(0x287)]();if(_0x2c9d5d?.['roots'])try{const _0x255282=await server[_0x1d31ee(0x205)]();_0x255282&&_0x1d31ee(0x219)in _0x255282?await updateAllowedDirectoriesFromRoots(_0x255282['roots']):console[_0x1d31ee(0x20c)](_0x1d31ee(0x21b));}catch(_0x4007a2){console[_0x1d31ee(0x20c)](_0x1d31ee(0x1e7),_0x4007a2 instanceof Error?_0x4007a2[_0x1d31ee(0x1cf)]:String(_0x4007a2));}else{if(allowedDirectories[_0x1d31ee(0x1c7)]>0x0)console['error'](_0x1d31ee(0x2d9),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console['error'](_0x1d31ee(0x213));else throw new Error(_0x1d31ee(0x2c5));}}};async function runServer(){const _0x225032=a0_0x514987,_0x277a83=new StdioServerTransport();await server[_0x225032(0x298)](_0x277a83),console['error'](_0x225032(0x24f)),allowedDirectories[_0x225032(0x1c7)]===0x0&&console[_0x225032(0x20c)]('Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol');}runServer()[a0_0x514987(0x280)](_0x16671c=>{const _0x22f074=a0_0x514987;console[_0x22f074(0x20c)]('Fatal\x20error\x20running\x20server:',_0x16671c),process[_0x22f074(0x2cf)](0x1);});
2
+ const a0_0x1f8383=a0_0x2756;(function(_0x2851b0,_0x438d41){const _0x1ed1b2=a0_0x2756,_0x5d5fbc=_0x2851b0();while(!![]){try{const _0x2429dd=parseInt(_0x1ed1b2(0x289))/0x1+-parseInt(_0x1ed1b2(0x23b))/0x2+-parseInt(_0x1ed1b2(0x232))/0x3+parseInt(_0x1ed1b2(0x1b6))/0x4*(parseInt(_0x1ed1b2(0x19a))/0x5)+-parseInt(_0x1ed1b2(0x207))/0x6+-parseInt(_0x1ed1b2(0x1ac))/0x7*(parseInt(_0x1ed1b2(0x1a8))/0x8)+parseInt(_0x1ed1b2(0x283))/0x9;if(_0x2429dd===_0x438d41)break;else _0x5d5fbc['push'](_0x5d5fbc['shift']());}catch(_0x29887b){_0x5d5fbc['push'](_0x5d5fbc['shift']());}}}(a0_0x5655,0x52bb4));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_0x41cac1 from'fs/promises';import a0_0x59b14c from'path';import a0_0x490833 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,GITHUB_SEARCH_TOOL_NAME,GITHUB_SEARCH_DESCRIPTION}from'@morphllm/morphsdk/tools/warp-grep';import{WarpGrepClient,formatResult}from'@morphllm/morphsdk/tools/warp-grep/client';import{executeCodebaseSearch}from'@morphllm/morphsdk/tools/codebase-search';import a0_0x436e9f from'axios';function fixPathRepetition(_0x4a5830){const _0x4e9710=a0_0x2756,_0x213d8a=_0x4a5830[_0x4e9710(0x1ec)](a0_0x59b14c[_0x4e9710(0x276)])[_0x4e9710(0x1d4)](Boolean);if(_0x213d8a[_0x4e9710(0x269)]<0x2)return null;for(let _0x37db86=Math[_0x4e9710(0x1e6)](_0x213d8a[_0x4e9710(0x269)]/0x2);_0x37db86>=0x1;_0x37db86--){for(let _0x153b73=0x0;_0x153b73<=_0x213d8a[_0x4e9710(0x269)]-0x2*_0x37db86;_0x153b73++){const _0xaf44f8=_0x213d8a[_0x4e9710(0x220)](_0x153b73,_0x153b73+_0x37db86),_0x6f9814=_0x213d8a[_0x4e9710(0x220)](_0x153b73+_0x37db86,_0x153b73+0x2*_0x37db86);if(_0xaf44f8['every']((_0x337824,_0x3b6c5b)=>_0x337824===_0x6f9814[_0x3b6c5b])){const _0x45935e=[..._0x213d8a[_0x4e9710(0x220)](0x0,_0x153b73),..._0x213d8a[_0x4e9710(0x220)](_0x153b73+_0x37db86)];return a0_0x59b14c[_0x4e9710(0x276)]+_0x45935e[_0x4e9710(0x250)](a0_0x59b14c[_0x4e9710(0x276)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x47ac9f=a0_0x2756;try{const _0x100d5b=require(_0x47ac9f(0x26f));return _0x100d5b[_0x47ac9f(0x1fa)]??'unknown';}catch(_0xb4a1fa){return console[_0x47ac9f(0x28e)](_0x47ac9f(0x277),_0xb4a1fa),_0x47ac9f(0x2ab);}}function printHelp(){const _0x22f072=a0_0x2756;console[_0x22f072(0x278)](_0x22f072(0x264)+getPackageVersion()),console[_0x22f072(0x278)](_0x22f072(0x1d8)),console[_0x22f072(0x278)](_0x22f072(0x294)),console[_0x22f072(0x278)](_0x22f072(0x27b)),console[_0x22f072(0x278)](_0x22f072(0x1db)),console[_0x22f072(0x278)](_0x22f072(0x1de)),console['log'](_0x22f072(0x1c5)),console[_0x22f072(0x278)]('\x20\x20morph-mcp'),console[_0x22f072(0x278)](_0x22f072(0x209));}function a0_0x5655(){const _0x5725d1=['-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','slice','Max\x20results\x20to\x20return','Error\x20accessing\x20directory\x20','Unknown\x20tool:\x20','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','toLowerCase','isDirectory','description','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','--help','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','WORKSPACE_ROOT','BinaryFile','listRoots','ENOENT','SymlinkError','\x20for:\x20\x22','data','1474278FJDMzD','morph-warp-grep-v1-1111v0','constructor','includes','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','isArray','Relevant\x20context\x20found:','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.','\x20\x20\x20','1258742UEYTUt','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','success','\x20error(s)','changes','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','[could\x20not\x20read\x20file:\x20','substring','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','composer.json','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.','limit','<file\x20path=\x22','MORPH_WARP_GREP_TIMEOUT','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','%\x20match)\x0a','Natural\x20language\x20query\x20to\x20search\x20for\x20code','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','RipgrepNotAvailable','name','codebase_search','join','Morph\x20FastApply\x20failed\x20without\x20error\x20message','...','\x20is\x20not\x20a\x20directory','[warpgrep_github_search]\x20Searching\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','results','min','getClientCapabilities','query_type','inputSchema','rerankScore','pyproject.toml','ENABLED_TOOLS','Warning:\x20Workspace\x20fallback\x20failed:\x20','Search\x20failed:\x20','code','Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20','Benefits:\x0a','enum','@morphllm/morphmcp\x20','-\x20Read\x20file\x20`','timings','FileReadError','read','length','WarpGrep\x20sub-tool\x20errors:\x20','Here\x20is\x20the\x20content\x20of\x20files:\x0a','source','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','metadata','../package.json','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','package.json','resolve','search_string','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','UnknownError','sep','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','log','requiresApiKey','query','\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)','WarpGrepError','Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for','warpgrep_codebase_search','realpath','false','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','application/json','12095748anrDkQ','optional','.git','Error:\x20','morph-','.\x20Changes:\x20','521793sRsqzk','text','timed\x20out','stack','some','error','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','grep','message','node_modules','Enabled\x20tools:\x20','\x0aOptions:','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','completed_with_file_errors','unknown\x20error','\x20results\x20in\x20','GitHub\x20search\x20failed:\x20','stats','owner_repo','instruction','toISOString','.vscode','ENABLE_WORKSPACE_MODE','lines','warpgrep_github_search','mcp-filesystem','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20','content','morph-v3-fast','-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a','env','No\x20relevant\x20code\x20found\x20for\x20the\x20query.','unknown','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','path','terminationReason','safeParse','object','searchTimeMs','sk-','targetDirectories','basename','[warpgrep_github_search]\x20Failed\x20in\x20','\x20as\x20allowed\x20directory','PathError','ms:','1285405sFgDMv','added\x20','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','cwd','filepath',',\x20removed\x20','indexOf','now','.cursor','PWD','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','terminated','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','push','8DjPDdn','-\x20Listed\x20directory\x20`','linesModified','For\x20deletions:\x0a','3191587kzxbWE','repoId','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.','utf-8','A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20','access','role','all','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','\x20-\x20','8xdxbSA','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','tsconfig.json','--api-key=','boolean','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','Warning:\x20','startsWith','connect','branch','MORPH_API_URL','TimeoutError','-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a','readFile','user','\x0aExamples:','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','0.2.0','finish','repo_path','messages','runWarpGrep_call','morph-mcp','[warpgrep_github_search]\x20Done\x20in\x20','--version','params','--api-key','warn','map','setRequestHandler','filter','Cargo.toml','searchGitHub','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','exit','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','describe','string','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','\x20\x20\x20Lines\x20','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','GitHub\x20repository\x20URL\x20to\x20search\x20(e.g.\x20\x27https://github.com/vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.','linesAdded','\x27\x20in\x20`','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','floor','completionId','Please\x20provide\x20github\x20search\x20url\x20or\x20owner/repo\x20id','etimedout','FileNotFound','Morph\x20Edit\x20Preview','split','ReadError','.\x20Path:\x20','dirname','completed','default','timeout','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','SubToolError','🎯\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a','setNotificationHandler','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','Repository\x20identifier','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','version','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','roots','files','Failed\x20to\x20read\x20file:\x20','homedir','-\x20Grepped\x20\x27','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','Invalid\x20arguments:\x20','assistant','startLine','errors','2785926pFdcGQ','The\x20search\x20term\x20should\x20be\x20a\x20targeted\x20natural\x20language\x20query\x20based\x20on\x20what\x20you\x20are\x20trying\x20to\x20accomplish,\x20like\x20\x27Find\x20where\x20authentication\x20requests\x20are\x20handled\x20in\x20the\x20Express\x20routes\x27\x20or\x20\x27Modify\x20the\x20agentic\x20rollout\x20to\x20use\x20the\x20new\x20tokenizer\x20and\x20chat\x20template\x27\x20or\x20\x27Fix\x20the\x20bug\x20where\x20the\x20user\x20gets\x20redirected\x20from\x20the\x20/feed\x20page\x27.\x20','\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo','trim','-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','⚡\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a','Query\x20type\x20hint.\x20Use\x20\x27node_modules\x27\x20when\x20searching\x20inside\x20node_modules\x20or\x20other\x20dependency\x20directories\x20that\x20are\x20normally\x20excluded.','number','edit_file','Error\x20running\x20fast\x20context\x20search:\x20','ToolException','api-key','match','\x0a...\x20(truncated,\x20total:\x20','oninitialized','catch','RipgrepError','has','Repository\x20owner/repo\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','File\x20read\x20error:','dryRun','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a'];a0_0x5655=function(){return _0x5725d1;};return a0_0x5655();}const cliArgs=process['argv'][a0_0x1f8383(0x220)](0x2),VERSION_FLAGS=new Set([a0_0x1f8383(0x1ce),'-v','-V']),HELP_FLAGS=new Set([a0_0x1f8383(0x229),'-h']);function a0_0x2756(_0x1ae602,_0x222eea){_0x1ae602=_0x1ae602-0x18f;const _0x5655ef=a0_0x5655();let _0x27569e=_0x5655ef[_0x1ae602];return _0x27569e;}cliArgs[a0_0x1f8383(0x28d)](_0xb2553d=>VERSION_FLAGS['has'](_0xb2553d))&&(console[a0_0x1f8383(0x278)](a0_0x1f8383(0x264)+getPackageVersion()),process[a0_0x1f8383(0x1d9)](0x0));cliArgs['some'](_0x1e568d=>HELP_FLAGS[a0_0x1f8383(0x219)](_0x1e568d))&&(printHelp(),process[a0_0x1f8383(0x1d9)](0x0));function getCliArg(_0x236a82){const _0x5df50a=a0_0x1f8383;for(let _0x268773=0x0;_0x268773<cliArgs[_0x5df50a(0x269)];_0x268773++){const _0x562ae9=cliArgs[_0x268773];if(_0x562ae9[_0x5df50a(0x1bd)]('--'+_0x236a82+'='))return _0x562ae9[_0x5df50a(0x220)](('--'+_0x236a82+'=')['length']);if(_0x562ae9==='--'+_0x236a82&&_0x268773+0x1<cliArgs[_0x5df50a(0x269)])return cliArgs[_0x268773+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs[a0_0x1f8383(0x269)];i++){const arg=cliArgs[i];if(VERSION_FLAGS[a0_0x1f8383(0x219)](arg)||HELP_FLAGS['has'](arg))continue;if(arg[a0_0x1f8383(0x1bd)](a0_0x1f8383(0x1b9)))continue;if(arg===a0_0x1f8383(0x1d0)){i++;continue;}args[a0_0x1f8383(0x1a7)](arg);}const ALL_TOOLS=[a0_0x1f8383(0x210),a0_0x1f8383(0x27e),a0_0x1f8383(0x2a3),'codebase_search'],DEFAULT_TOOLS=['edit_file',a0_0x1f8383(0x27e),a0_0x1f8383(0x2a3)],ENABLED_TOOLS=process[a0_0x1f8383(0x2a9)][a0_0x1f8383(0x25d)]?process[a0_0x1f8383(0x2a9)]['ENABLED_TOOLS']===a0_0x1f8383(0x1b3)?ALL_TOOLS:process[a0_0x1f8383(0x2a9)]['ENABLED_TOOLS']['split'](',')[a0_0x1f8383(0x1d2)](_0x128045=>_0x128045[a0_0x1f8383(0x20a)]()):DEFAULT_TOOLS;console[a0_0x1f8383(0x28e)](a0_0x1f8383(0x293)+ENABLED_TOOLS[a0_0x1f8383(0x250)](',\x20'));const WORKSPACE_ROOT=process[a0_0x1f8383(0x2a9)][a0_0x1f8383(0x22b)]||process[a0_0x1f8383(0x2a9)][a0_0x1f8383(0x1a3)]||process[a0_0x1f8383(0x19d)](),ENABLE_WORKSPACE_MODE=process['env'][a0_0x1f8383(0x2a1)]!==a0_0x1f8383(0x280),MORPH_API_KEY=getCliArg(a0_0x1f8383(0x213))??process['env']['MORPH_API_KEY'],MORPH_API_URL=process[a0_0x1f8383(0x2a9)][a0_0x1f8383(0x1c0)],MORPH_WARP_GREP_TIMEOUT=process[a0_0x1f8383(0x2a9)]['MORPH_WARP_GREP_TIMEOUT']?parseInt(process[a0_0x1f8383(0x2a9)][a0_0x1f8383(0x248)],0xa):undefined;MORPH_API_KEY&&!MORPH_API_KEY[a0_0x1f8383(0x1bd)](a0_0x1f8383(0x193))&&!MORPH_API_KEY[a0_0x1f8383(0x1bd)](a0_0x1f8383(0x287))&&console['error'](a0_0x1f8383(0x1a4));async function reportMorphError(_0x20a05d){const _0x531954=a0_0x1f8383;try{await a0_0x436e9f['post']('https://morphllm.com/api/error-report',{..._0x20a05d,'timestamp':new Date()[_0x531954(0x29f)](),'source':_0x20a05d[_0x531954(0x26c)]||_0x531954(0x2a4)},{'timeout':0x1388,'headers':{'Content-Type':_0x531954(0x282),'Authorization':'Bearer\x20'+MORPH_API_KEY}});}catch{}}args[a0_0x1f8383(0x269)]===0x0&&!ENABLE_WORKSPACE_MODE&&(console[a0_0x1f8383(0x28e)](a0_0x1f8383(0x274)),console[a0_0x1f8383(0x28e)](a0_0x1f8383(0x1b4)),console['error'](a0_0x1f8383(0x281)),console[a0_0x1f8383(0x28e)](a0_0x1f8383(0x28f)),console[a0_0x1f8383(0x28e)](a0_0x1f8383(0x1a6)),console[a0_0x1f8383(0x28e)](a0_0x1f8383(0x1e5)));function normalizePath(_0x43b8c0){return a0_0x59b14c['normalize'](_0x43b8c0);}function expandHome(_0x59173c){const _0x445111=a0_0x1f8383;if(_0x59173c[_0x445111(0x1bd)]('~/')||_0x59173c==='~')return a0_0x59b14c['join'](a0_0x490833[_0x445111(0x200)](),_0x59173c[_0x445111(0x220)](0x1));return _0x59173c;}let allowedDirectories=await Promise[a0_0x1f8383(0x1b3)](args[a0_0x1f8383(0x1d2)](async _0x4a31d2=>{const _0x4fccc1=a0_0x1f8383,_0x49efa6=expandHome(_0x4a31d2),_0x4ab0da=a0_0x59b14c[_0x4fccc1(0x272)](_0x49efa6);try{const _0x176b56=await a0_0x41cac1['realpath'](_0x4ab0da);return normalizePath(_0x176b56);}catch(_0x4a2052){return normalizePath(_0x4ab0da);}}));if(ENABLE_WORKSPACE_MODE&&args['length']===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x1f8383(0x1a7)](workspaceDir),console[a0_0x1f8383(0x28e)]('Workspace\x20mode\x20enabled:\x20Using\x20'+workspaceDir+a0_0x1f8383(0x197)));}catch(a0_0x4e8d1b){console[a0_0x1f8383(0x28e)](a0_0x1f8383(0x202)+a0_0x4e8d1b);}async function detectWorkspaceRoot(_0x18e996){const _0x573e3f=a0_0x1f8383;let _0x1d90a4=a0_0x59b14c[_0x573e3f(0x272)](_0x18e996);const _0x5d76f1=[_0x573e3f(0x285),_0x573e3f(0x2a0),_0x573e3f(0x271),_0x573e3f(0x1d5),_0x573e3f(0x25c),'go.mod',_0x573e3f(0x1a2),_0x573e3f(0x1b8),_0x573e3f(0x244)];while(_0x1d90a4!==a0_0x59b14c['dirname'](_0x1d90a4)){for(const _0x3e8260 of _0x5d76f1){const _0x1bd6ba=a0_0x59b14c[_0x573e3f(0x250)](_0x1d90a4,_0x3e8260);try{return await a0_0x41cac1[_0x573e3f(0x1b1)](_0x1bd6ba),normalizePath(_0x1d90a4);}catch{}}_0x1d90a4=a0_0x59b14c['dirname'](_0x1d90a4);}return normalizePath(_0x18e996);}await Promise['all'](args[a0_0x1f8383(0x1d2)](async _0x15efe6=>{const _0x3fdcc2=a0_0x1f8383;try{const _0x3e91c5=await a0_0x41cac1['stat'](expandHome(_0x15efe6));!_0x3e91c5[_0x3fdcc2(0x226)]()&&(console[_0x3fdcc2(0x28e)](_0x3fdcc2(0x286)+_0x15efe6+_0x3fdcc2(0x253)),process[_0x3fdcc2(0x1d9)](0x1));}catch(_0x79a507){console[_0x3fdcc2(0x28e)](_0x3fdcc2(0x222)+_0x15efe6+':',_0x79a507),process[_0x3fdcc2(0x1d9)](0x1);}}));async function validatePath(_0x587462){const _0x158185=a0_0x1f8383,_0x10d591=expandHome(_0x587462),_0x4b4213=a0_0x59b14c[_0x158185(0x272)](_0x10d591);try{const _0x5eccd8=await a0_0x41cac1['realpath'](_0x4b4213);return _0x5eccd8;}catch(_0x2f3869){if(_0x2f3869[_0x158185(0x260)]===_0x158185(0x22e)){const _0x413d55=a0_0x59b14c[_0x158185(0x1ef)](_0x4b4213);try{const _0x58cb4a=await a0_0x41cac1[_0x158185(0x27f)](_0x413d55);return a0_0x59b14c[_0x158185(0x250)](_0x58cb4a,a0_0x59b14c[_0x158185(0x195)](_0x4b4213));}catch{throw new Error('Parent\x20directory\x20does\x20not\x20exist:\x20'+_0x413d55);}}throw _0x2f3869;}}const MorphEditFileArgsSchema=z[a0_0x1f8383(0x191)]({'path':z[a0_0x1f8383(0x1dd)](),'code_edit':z[a0_0x1f8383(0x1dd)]()[a0_0x1f8383(0x1dc)](a0_0x1f8383(0x243)),'instruction':z[a0_0x1f8383(0x1dd)]()[a0_0x1f8383(0x1dc)](a0_0x1f8383(0x297)),'dryRun':z[a0_0x1f8383(0x1ba)]()[a0_0x1f8383(0x1f1)](![])['describe']('Preview\x20changes\x20without\x20applying\x20them.')}),WarpGrepArgsSchema=z['object']({'search_string':z[a0_0x1f8383(0x1dd)]()[a0_0x1f8383(0x1dc)](a0_0x1f8383(0x27d)),'repo_path':z[a0_0x1f8383(0x1dd)]()[a0_0x1f8383(0x1dc)](a0_0x1f8383(0x1f9)),'query_type':z[a0_0x1f8383(0x263)]([a0_0x1f8383(0x1f1),a0_0x1f8383(0x292)])[a0_0x1f8383(0x284)]()[a0_0x1f8383(0x1dc)](a0_0x1f8383(0x20e))}),WarpGrepGitHubArgsSchema=z[a0_0x1f8383(0x191)]({'search_string':z[a0_0x1f8383(0x1dd)]()[a0_0x1f8383(0x1dc)](a0_0x1f8383(0x27d)),'github_url':z['string']()[a0_0x1f8383(0x284)]()[a0_0x1f8383(0x1dc)](a0_0x1f8383(0x1e2)),'owner_repo':z[a0_0x1f8383(0x1dd)]()[a0_0x1f8383(0x284)]()['describe'](a0_0x1f8383(0x21a)),'branch':z[a0_0x1f8383(0x1dd)]()[a0_0x1f8383(0x284)]()[a0_0x1f8383(0x1dc)]('Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)')}),CodebaseSearchArgsSchema=z[a0_0x1f8383(0x191)]({'query':z[a0_0x1f8383(0x1dd)]()[a0_0x1f8383(0x1dc)](a0_0x1f8383(0x24b)),'repoId':z['string']()[a0_0x1f8383(0x1dc)](a0_0x1f8383(0x1f8)),'branch':z[a0_0x1f8383(0x1dd)]()['optional']()[a0_0x1f8383(0x1dc)](a0_0x1f8383(0x1f7)),'commitHash':z[a0_0x1f8383(0x1dd)]()[a0_0x1f8383(0x284)]()['describe']('Specific\x20commit\x20hash\x20to\x20search'),'targetDirectories':z['array'](z[a0_0x1f8383(0x1dd)]())[a0_0x1f8383(0x1f1)]([])[a0_0x1f8383(0x1dc)]('Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all'),'limit':z[a0_0x1f8383(0x20f)]()[a0_0x1f8383(0x284)]()['default'](0xa)[a0_0x1f8383(0x1dc)](a0_0x1f8383(0x221))}),server=new Server({'name':a0_0x1f8383(0x1cc),'version':a0_0x1f8383(0x1c7)},{'capabilities':{'tools':{}}});server[a0_0x1f8383(0x1d3)](ListToolsRequestSchema,async()=>{const _0xd5f4d4=a0_0x1f8383,_0x5cdce8=[{'name':_0xd5f4d4(0x210),'description':_0xd5f4d4(0x23c)+'⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a'+_0xd5f4d4(0x21b)+'IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a'+_0xd5f4d4(0x262)+_0xd5f4d4(0x295)+_0xd5f4d4(0x21e)+'-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a'+_0xd5f4d4(0x1fc)+'Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a'+_0xd5f4d4(0x1f3)+_0xd5f4d4(0x228)+_0xd5f4d4(0x1ab)+_0xd5f4d4(0x240)+_0xd5f4d4(0x20b)+'Rules:\x0a'+_0xd5f4d4(0x21f)+_0xd5f4d4(0x1e1)+_0xd5f4d4(0x2ac)+_0xd5f4d4(0x296)+_0xd5f4d4(0x224)+_0xd5f4d4(0x1d7)+_0xd5f4d4(0x1bb),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':_0xd5f4d4(0x27e),'description':_0xd5f4d4(0x1b0)+_0xd5f4d4(0x255)+_0xd5f4d4(0x208)+_0xd5f4d4(0x2a5)+_0xd5f4d4(0x245)+'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'+_0xd5f4d4(0x24c)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':GITHUB_SEARCH_TOOL_NAME,'description':GITHUB_SEARCH_DESCRIPTION,'inputSchema':zodToJsonSchema(WarpGrepGitHubArgsSchema),'requiresApiKey':!![]},{'name':_0xd5f4d4(0x24f),'description':'**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a'+_0xd5f4d4(0x20d)+_0xd5f4d4(0x1f5)+_0xd5f4d4(0x262)+'-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a'+_0xd5f4d4(0x2a8)+_0xd5f4d4(0x1c2)+'-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a'+'Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20'+_0xd5f4d4(0x261)+_0xd5f4d4(0x1b7),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x4ab8b0=_0x5cdce8['filter'](_0x52df27=>{const _0x161880=_0xd5f4d4;if(!ENABLED_TOOLS['includes'](_0x52df27['name']))return![];if(_0x161880(0x279)in _0x52df27&&_0x52df27[_0x161880(0x279)]&&!MORPH_API_KEY)return console[_0x161880(0x28e)](_0x161880(0x1bc)+_0x52df27[_0x161880(0x24e)]+_0x161880(0x1c6)),![];return!![];});return{'tools':_0x4ab8b0[_0xd5f4d4(0x1d2)](_0x54a475=>({'name':_0x54a475[_0xd5f4d4(0x24e)],'description':_0x54a475[_0xd5f4d4(0x227)],'inputSchema':_0x54a475[_0xd5f4d4(0x25a)]}))};}),server[a0_0x1f8383(0x1d3)](CallToolRequestSchema,async _0x37a752=>{const _0x1b4e68=a0_0x1f8383;try{const {name:_0x305adc,arguments:_0x55427b}=_0x37a752[_0x1b4e68(0x1cf)];switch(_0x305adc){case _0x1b4e68(0x210):{const _0x217260=MorphEditFileArgsSchema[_0x1b4e68(0x190)](_0x55427b);if(!_0x217260[_0x1b4e68(0x23d)])throw new Error(_0x1b4e68(0x26d)+_0x217260[_0x1b4e68(0x28e)]);const _0x18849d=await validatePath(_0x217260[_0x1b4e68(0x231)][_0x1b4e68(0x2ad)]);let _0x5b1df5=null,_0x3f6b7c=!![],_0xb803eb=null;try{_0x5b1df5=await a0_0x41cac1[_0x1b4e68(0x1c3)](_0x18849d,_0x1b4e68(0x1af));}catch(_0x362913){const _0x3a5973=_0x362913['code'];_0x3a5973==='ENOENT'?(_0x3f6b7c=![],_0x5b1df5=''):(_0xb803eb=_0x1b4e68(0x1ff)+(_0x3a5973||_0x1b4e68(0x2ab))+_0x1b4e68(0x1b5)+(_0x362913 instanceof Error?_0x362913[_0x1b4e68(0x291)]:String(_0x362913)),console[_0x1b4e68(0x28e)](_0x1b4e68(0x1bc)+_0xb803eb));}let _0x5d4834;try{const _0x269db9=MORPH_API_KEY;if(!_0x269db9)throw new Error(_0x1b4e68(0x236));const _0x5df2f6=a0_0x59b14c[_0x1b4e68(0x1ef)](_0x18849d),_0x34cbc9=a0_0x59b14c[_0x1b4e68(0x195)](_0x18849d),_0x6ed28c=await executeEditFile({'target_filepath':_0x34cbc9,'code_edit':_0x217260[_0x1b4e68(0x231)]['code_edit'],'instructions':_0x217260[_0x1b4e68(0x231)][_0x1b4e68(0x29e)]},{'morphApiKey':_0x269db9,'morphApiUrl':MORPH_API_URL,'baseDir':_0x5df2f6,'autoWrite':!_0x217260[_0x1b4e68(0x231)][_0x1b4e68(0x21d)],'generateUdiff':![],'debug':![]});_0x5d4834=_0x6ed28c[_0x1b4e68(0x1e7)];if(!_0x6ed28c[_0x1b4e68(0x23d)])throw new Error(_0x6ed28c[_0x1b4e68(0x28e)]||_0x1b4e68(0x251));const _0x397acb=_0x6ed28c[_0x1b4e68(0x23f)],_0xdc687c=_0x1b4e68(0x19b)+_0x397acb[_0x1b4e68(0x1e3)]+_0x1b4e68(0x19f)+_0x397acb['linesRemoved']+',\x20modified\x20'+_0x397acb[_0x1b4e68(0x1aa)];if(_0x217260[_0x1b4e68(0x231)][_0x1b4e68(0x21d)])return{'content':[{'type':_0x1b4e68(0x28a),'text':_0x1b4e68(0x1eb)+(_0x3f6b7c?'':'\x20(new\x20file)')+':\x20'+_0x217260[_0x1b4e68(0x231)][_0x1b4e68(0x29e)]+'.\x20Changes:\x20'+_0xdc687c+_0x1b4e68(0x1ee)+_0x217260['data'][_0x1b4e68(0x2ad)]+'.'}]};return{'content':[{'type':_0x1b4e68(0x28a),'text':'Morph\x20Edit\x20'+(_0x3f6b7c?'Applied':'Created\x20File')+':\x20'+_0x217260[_0x1b4e68(0x231)][_0x1b4e68(0x29e)]+_0x1b4e68(0x288)+_0xdc687c+_0x1b4e68(0x1ee)+_0x217260['data'][_0x1b4e68(0x2ad)]+'.'}]};}catch(_0x3a7cca){const _0x37c6fa=_0x3a7cca instanceof Error?_0x3a7cca[_0x1b4e68(0x291)]:String(_0x3a7cca);return reportMorphError({'error_message':_0x37c6fa,'error_type':_0x3a7cca instanceof Error?_0x3a7cca[_0x1b4e68(0x234)][_0x1b4e68(0x24e)]:'UnknownError','context':{'tool':_0x1b4e68(0x210),'completion_id':_0x5d4834,'file_path':_0x217260[_0x1b4e68(0x231)][_0x1b4e68(0x2ad)],'validated_path':_0x18849d,'instruction':_0x217260[_0x1b4e68(0x231)][_0x1b4e68(0x29e)],'model':_0x1b4e68(0x2a7),'dry_run':_0x217260[_0x1b4e68(0x231)]['dryRun'],'file_exists':_0x3f6b7c,'file_read_error':_0xb803eb,'file_readable':_0x5b1df5!==null,'request_content':{'path':_0x217260['data'][_0x1b4e68(0x2ad)],'code_edit':_0x217260[_0x1b4e68(0x231)]['code_edit'],'instruction':_0x217260[_0x1b4e68(0x231)][_0x1b4e68(0x29e)],'original_code':_0x5b1df5!==null?_0x5b1df5['length']>0xc350?_0x5b1df5['substring'](0x0,0xc350)+_0x1b4e68(0x215)+_0x5b1df5[_0x1b4e68(0x269)]+'\x20chars)':_0x5b1df5:_0x1b4e68(0x241)+(_0xb803eb||_0x1b4e68(0x299))+']','original_code_length':_0x5b1df5?.[_0x1b4e68(0x269)]??0x0,'model':_0x1b4e68(0x2a7),'dry_run':_0x217260[_0x1b4e68(0x231)][_0x1b4e68(0x21d)]}},'stack_trace':_0x3a7cca instanceof Error?_0x3a7cca[_0x1b4e68(0x28c)]:undefined,'source':_0x1b4e68(0x2a4)})[_0x1b4e68(0x217)](()=>{}),{'content':[{'type':_0x1b4e68(0x28a),'text':'❌\x20Morph\x20Edit\x20Failed:\x20'+_0x37c6fa}],'isError':!![]};}}case _0x1b4e68(0x27e):{const _0x474cec=WarpGrepArgsSchema[_0x1b4e68(0x190)](_0x55427b);if(!_0x474cec[_0x1b4e68(0x23d)])return{'content':[{'type':_0x1b4e68(0x28a),'text':_0x1b4e68(0x203)+_0x474cec[_0x1b4e68(0x28e)]}],'isError':!![]};const _0x3db202=_0x316714=>{const _0x500647=_0x1b4e68,_0xf8f343=[];for(const _0x1ec788 of _0x316714||[]){const _0x2c4448=_0x1ec788[_0x500647(0x1b2)],_0x2be555=_0x1ec788['content'];if(_0x2c4448==='assistant'&&_0x2be555){const _0x1275ca=_0x2be555[_0x500647(0x1ec)]('\x0a')[_0x500647(0x1d4)](_0x2fb3c5=>_0x2fb3c5[_0x500647(0x20a)]());for(const _0x331568 of _0x1275ca){const _0x37d730=_0x331568[_0x500647(0x214)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x37d730){_0xf8f343[_0x500647(0x1a7)]('grep\x20\x27'+_0x37d730[0x1]+'\x27\x20'+_0x37d730[0x2]);continue;}const _0x1002b5=_0x331568[_0x500647(0x214)](/^read\s+(.+)$/);if(_0x1002b5){_0xf8f343[_0x500647(0x1a7)]('read\x20'+_0x1002b5[0x1]);continue;}const _0x304c93=_0x331568[_0x500647(0x214)](/^list_directory\s+(.+)$/);if(_0x304c93){_0xf8f343['push']('list_directory\x20'+_0x304c93[0x1]);continue;}}}}return _0xf8f343;},_0x5a8065=_0x12e1d4=>{const _0x2f61c3=_0x1b4e68,_0x1370cb=[];if(!_0x12e1d4||!Array['isArray'](_0x12e1d4))return _0x1370cb;const _0x4e26c2=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':_0x2f61c3(0x1ea),'tool':_0x2f61c3(0x268)},{'pattern':/\[PATH ERROR\]/,'error_type':_0x2f61c3(0x198),'tool':_0x2f61c3(0x268)},{'pattern':/\[READ ERROR\]/,'error_type':'ReadError','tool':'read'},{'pattern':/\[UNREADABLE FILE\]/,'error_type':_0x2f61c3(0x22c),'tool':'read'},{'pattern':/\[RIPGREP ERROR\]/,'error_type':_0x2f61c3(0x218),'tool':_0x2f61c3(0x290)},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x2f61c3(0x24d),'tool':_0x2f61c3(0x290)},{'pattern':/\[BINARY FILE\]/,'error_type':_0x2f61c3(0x22c),'tool':_0x2f61c3(0x268)},{'pattern':/\[SYMLINK\]/,'error_type':_0x2f61c3(0x22f),'tool':'read'},{'pattern':/not a text file/,'error_type':_0x2f61c3(0x22c),'tool':'read'},{'pattern':/symbolic link/,'error_type':'SymlinkError','tool':_0x2f61c3(0x268)},{'pattern':/Error reading file:/,'error_type':_0x2f61c3(0x1ed),'tool':_0x2f61c3(0x268)},{'pattern':/status="error"/,'error_type':_0x2f61c3(0x212),'tool':_0x2f61c3(0x2ab)}];let _0x129dd7=0x0;for(const _0x5d958c of _0x12e1d4){if(_0x5d958c[_0x2f61c3(0x1b2)]===_0x2f61c3(0x1c4)){_0x129dd7++;const _0x575070=_0x5d958c[_0x2f61c3(0x2a6)];if(!_0x575070||typeof _0x575070!==_0x2f61c3(0x1dd))continue;for(const {pattern:_0x4db972,error_type:_0x4acb31,tool:_0x49ec05}of _0x4e26c2){const _0x2a629b=_0x575070[_0x2f61c3(0x214)](new RegExp(_0x4db972[_0x2f61c3(0x26c)],'g'));if(_0x2a629b)for(const _0x439dfb of _0x2a629b){const _0x50c849=_0x575070[_0x2f61c3(0x1a0)](_0x439dfb),_0x13cfe8=_0x575070['substring'](_0x50c849,Math[_0x2f61c3(0x257)](_0x50c849+0xc8,_0x575070['length']));_0x1370cb[_0x2f61c3(0x1a7)]({'tool':_0x49ec05,'error_type':_0x4acb31,'error_message':_0x13cfe8[_0x2f61c3(0x1ec)]('\x0a')[0x0],'turn':_0x129dd7});}}}}return _0x1370cb;};try{const _0x422766=a0_0x59b14c[_0x1b4e68(0x272)](_0x474cec['data'][_0x1b4e68(0x1c9)]),_0x1ad61f=_0x474cec[_0x1b4e68(0x231)][_0x1b4e68(0x259)],_0x14f72f=_0x1ad61f===_0x1b4e68(0x292)?{'allowNames':[_0x1b4e68(0x292)]}:undefined,_0x15b8a2=new LocalRipgrepProvider(_0x422766,undefined,_0x14f72f),_0x30d1c1=await runWarpGrep({'query':_0x474cec['data']['search_string'],'repoRoot':_0x422766,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x15b8a2,'query_type':_0x1ad61f}),_0x972c1=_0x5a8065(_0x30d1c1[_0x1b4e68(0x1ca)]);_0x972c1[_0x1b4e68(0x269)]>0x0&&reportMorphError({'error_message':_0x1b4e68(0x26a)+_0x972c1[_0x1b4e68(0x269)]+_0x1b4e68(0x23e),'error_type':_0x1b4e68(0x1f4),'level':_0x1b4e68(0x1d1),'tool':_0x1b4e68(0x27e),'context':{'repo_path':_0x474cec['data'][_0x1b4e68(0x1c9)],'query':_0x474cec[_0x1b4e68(0x231)][_0x1b4e68(0x273)],'model':'morph-warp-grep-v1-1111v0','termination_reason':_0x30d1c1[_0x1b4e68(0x18f)],'sub_tool_errors':_0x972c1,'timings':_0x30d1c1[_0x1b4e68(0x266)],'tool_calls':_0x3db202(_0x30d1c1['messages']),'messages':_0x30d1c1[_0x1b4e68(0x1ca)]?.[_0x1b4e68(0x1d2)](_0x28f843=>({'role':_0x28f843['role'],'content':_0x28f843[_0x1b4e68(0x2a6)]}))},'source':'mcp-filesystem'})[_0x1b4e68(0x217)](()=>{});let _0x4eb1ee='';if(_0x30d1c1[_0x1b4e68(0x18f)]===_0x1b4e68(0x1f0)&&_0x30d1c1[_0x1b4e68(0x1c8)]?.[_0x1b4e68(0x26e)]?.['files']){const _0x2fb14c=_0x30d1c1[_0x1b4e68(0x1c8)][_0x1b4e68(0x26e)][_0x1b4e68(0x1fe)];if(_0x2fb14c['length']===0x0)return _0x4eb1ee=_0x30d1c1[_0x1b4e68(0x1c8)]['payload']||_0x1b4e68(0x2aa),{'content':[{'type':_0x1b4e68(0x28a),'text':_0x4eb1ee}]};const _0x39dbb0=[],_0x5208b9=[_0x1b4e68(0x1da)];for(const _0x117b6a of _0x30d1c1[_0x1b4e68(0x1ca)]){const _0x3c4a17=_0x117b6a[_0x1b4e68(0x1b2)],_0x2c96c1=_0x117b6a[_0x1b4e68(0x2a6)];if(_0x3c4a17===_0x1b4e68(0x204)&&_0x2c96c1){const _0x410487=_0x2c96c1[_0x1b4e68(0x1ec)]('\x0a')[_0x1b4e68(0x1d4)](_0x57a1ad=>_0x57a1ad[_0x1b4e68(0x20a)]());for(const _0x48515d of _0x410487){const _0x3e4719=_0x48515d['match'](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x3e4719){_0x5208b9[_0x1b4e68(0x1a7)](_0x1b4e68(0x201)+_0x3e4719[0x1]+_0x1b4e68(0x1e4)+_0x3e4719[0x2]+'`');continue;}const _0x2ed798=_0x48515d[_0x1b4e68(0x214)](/^read\s+(.+)$/);if(_0x2ed798){_0x5208b9[_0x1b4e68(0x1a7)](_0x1b4e68(0x265)+_0x2ed798[0x1]+'`');continue;}const _0x4806ed=_0x48515d[_0x1b4e68(0x214)](/^list_directory\s+(.+)$/);if(_0x4806ed){_0x5208b9[_0x1b4e68(0x1a7)](_0x1b4e68(0x1a9)+_0x4806ed[0x1]+'`');continue;}}}}_0x39dbb0[_0x1b4e68(0x1a7)](_0x5208b9['join']('\x0a'));const _0x1c7a92=['',_0x1b4e68(0x238)];for(const _0xf38ddc of _0x2fb14c){if(_0xf38ddc[_0x1b4e68(0x2a2)]==='*')_0x1c7a92[_0x1b4e68(0x1a7)]('-\x20'+_0xf38ddc[_0x1b4e68(0x2ad)]+':*');else{if(Array[_0x1b4e68(0x237)](_0xf38ddc[_0x1b4e68(0x2a2)])){const _0x3354b2=_0xf38ddc[_0x1b4e68(0x2a2)][_0x1b4e68(0x1d2)](([_0x24e8b1,_0x399c26])=>{if(_0x24e8b1===_0x399c26)return''+_0x24e8b1;return _0x24e8b1+'-'+_0x399c26;});_0x1c7a92[_0x1b4e68(0x1a7)]('-\x20'+_0xf38ddc[_0x1b4e68(0x2ad)]+':'+_0x3354b2['join'](','));}else _0x1c7a92[_0x1b4e68(0x1a7)]('-\x20'+_0xf38ddc[_0x1b4e68(0x2ad)]+':*');}}_0x1c7a92[_0x1b4e68(0x1a7)](''),_0x39dbb0['push'](_0x1c7a92[_0x1b4e68(0x250)]('\x0a')),_0x39dbb0[_0x1b4e68(0x1a7)](_0x1b4e68(0x26b));const _0x4009f0=[];for(const _0x16ce98 of _0x2fb14c){let _0x211afa=a0_0x59b14c[_0x1b4e68(0x272)](_0x474cec['data'][_0x1b4e68(0x1c9)],_0x16ce98[_0x1b4e68(0x2ad)]),_0x371a09=null,_0x374a39=null;try{_0x371a09=await a0_0x41cac1['readFile'](_0x211afa,{'encoding':_0x1b4e68(0x1af)});}catch(_0x16d876){const _0x2b3d02=fixPathRepetition(_0x211afa);if(_0x2b3d02)try{_0x371a09=await a0_0x41cac1[_0x1b4e68(0x1c3)](_0x2b3d02,{'encoding':_0x1b4e68(0x1af)}),_0x211afa=_0x2b3d02;}catch{_0x374a39=_0x16d876 instanceof Error?_0x16d876:new Error(String(_0x16d876));}else _0x374a39=_0x16d876 instanceof Error?_0x16d876:new Error(String(_0x16d876));}if(_0x371a09!==null){const _0xfec1=_0x371a09[_0x1b4e68(0x1ec)](/\r?\n/),_0x462712=[_0x1b4e68(0x247)+_0x16ce98[_0x1b4e68(0x2ad)]+'\x22>'];if(_0x16ce98['lines']==='*'||!Array[_0x1b4e68(0x237)](_0x16ce98[_0x1b4e68(0x2a2)]))for(let _0x458d2d=0x1;_0x458d2d<=_0xfec1[_0x1b4e68(0x269)];_0x458d2d++){const _0x95ce0e=_0xfec1[_0x458d2d-0x1];_0x462712['push'](_0x458d2d+'|\x20'+_0x95ce0e);}else for(const [_0x46aeae,_0x48d814]of _0x16ce98[_0x1b4e68(0x2a2)]){_0x462712[_0x1b4e68(0x269)]>0x1&&_0x462712[_0x1b4e68(0x1a7)]('');for(let _0x33b1cc=_0x46aeae;_0x33b1cc<=_0x48d814&&_0x33b1cc<=_0xfec1['length'];_0x33b1cc++){const _0x2c8e23=_0xfec1[_0x33b1cc-0x1];_0x462712[_0x1b4e68(0x1a7)](_0x33b1cc+'|\x20'+_0x2c8e23);}}_0x462712[_0x1b4e68(0x1a7)]('</file>'),_0x4009f0[_0x1b4e68(0x1a7)](_0x462712[_0x1b4e68(0x250)]('\x0a'));}else _0x4009f0[_0x1b4e68(0x1a7)](_0x1b4e68(0x247)+_0x16ce98[_0x1b4e68(0x2ad)]+'\x22>\x0aError\x20reading\x20file:\x20'+(_0x374a39?.[_0x1b4e68(0x291)]||'Unknown\x20error')+'\x0a</file>');}_0x39dbb0[_0x1b4e68(0x1a7)](_0x4009f0[_0x1b4e68(0x250)]('\x0a\x0a')),_0x4eb1ee=_0x39dbb0[_0x1b4e68(0x250)]('\x0a');const _0x2065c5=_0x30d1c1[_0x1b4e68(0x206)]?.[_0x1b4e68(0x1d4)](_0x3cb8ba=>_0x3cb8ba[_0x1b4e68(0x291)]?.[_0x1b4e68(0x1bd)](_0x1b4e68(0x21c)))||[];if(_0x2065c5[_0x1b4e68(0x269)]>0x0){const _0x525140=_0x2065c5['map'](_0x426c82=>_0x426c82[_0x1b4e68(0x291)])['join'](';\x20');reportMorphError({'error_message':_0x525140,'error_type':_0x1b4e68(0x267),'context':{'tool':_0x1b4e68(0x27e),'repo_path':_0x474cec['data'][_0x1b4e68(0x1c9)],'query':_0x474cec[_0x1b4e68(0x231)]['search_string'],'model':_0x1b4e68(0x233),'termination_reason':_0x1b4e68(0x298),'error_count':_0x2065c5[_0x1b4e68(0x269)],'is_timeout':![],'timings':_0x30d1c1['timings'],'files_attempted':_0x2fb14c['map'](_0x191457=>({'path':_0x191457[_0x1b4e68(0x2ad)],'lines':_0x191457[_0x1b4e68(0x2a2)]})),'tool_calls':_0x3db202(_0x30d1c1[_0x1b4e68(0x1ca)]),'messages':_0x30d1c1[_0x1b4e68(0x1ca)]?.[_0x1b4e68(0x1d2)](_0x27652c=>({'role':_0x27652c[_0x1b4e68(0x1b2)],'content':_0x27652c['content']})),'request_content':{'query':_0x474cec[_0x1b4e68(0x231)][_0x1b4e68(0x273)],'repo_path':_0x474cec['data'][_0x1b4e68(0x1c9)],'repoRoot':a0_0x59b14c[_0x1b4e68(0x272)](_0x474cec[_0x1b4e68(0x231)][_0x1b4e68(0x1c9)]),'model':_0x1b4e68(0x233)}},'source':'mcp-filesystem'})[_0x1b4e68(0x217)](()=>{});}}else{if(_0x30d1c1['terminationReason']===_0x1b4e68(0x1a5)&&_0x30d1c1['errors'][_0x1b4e68(0x269)]>0x0){const _0x3e8ed9=_0x30d1c1['errors'][_0x1b4e68(0x1d2)](_0x167ae3=>_0x167ae3[_0x1b4e68(0x291)])[_0x1b4e68(0x250)](';\x20');_0x4eb1ee=_0x1b4e68(0x286)+_0x3e8ed9;const _0x256fd4=_0x3e8ed9[_0x1b4e68(0x225)]()[_0x1b4e68(0x235)]('timeout')||_0x3e8ed9['toLowerCase']()[_0x1b4e68(0x235)]('timed\x20out')||_0x3e8ed9[_0x1b4e68(0x225)]()[_0x1b4e68(0x235)](_0x1b4e68(0x1e9)),_0x56b2e7=_0x30d1c1['finish']?.[_0x1b4e68(0x26e)]?.[_0x1b4e68(0x1fe)],_0xe3ba2c=_0x30d1c1[_0x1b4e68(0x206)][0x0];reportMorphError({'error_message':_0x3e8ed9,'error_type':_0x256fd4?_0x1b4e68(0x1c1):_0xe3ba2c?.[_0x1b4e68(0x234)]?.[_0x1b4e68(0x24e)]||_0x1b4e68(0x27c),'context':{'tool':_0x1b4e68(0x27e),'repo_path':_0x474cec[_0x1b4e68(0x231)]['repo_path'],'query':_0x474cec['data'][_0x1b4e68(0x273)],'model':'morph-warp-grep-v1-1111v0','termination_reason':_0x30d1c1[_0x1b4e68(0x18f)],'error_count':_0x30d1c1[_0x1b4e68(0x206)][_0x1b4e68(0x269)],'is_timeout':_0x256fd4,'timings':_0x30d1c1[_0x1b4e68(0x266)],'files_attempted':_0x56b2e7?.['map'](_0x155f2a=>({'path':_0x155f2a[_0x1b4e68(0x2ad)],'lines':_0x155f2a['lines']})),'tool_calls':_0x3db202(_0x30d1c1[_0x1b4e68(0x1ca)]),'messages':_0x30d1c1[_0x1b4e68(0x1ca)]?.['map'](_0x2634da=>({'role':_0x2634da[_0x1b4e68(0x1b2)],'content':_0x2634da[_0x1b4e68(0x2a6)]})),'request_content':{'query':_0x474cec[_0x1b4e68(0x231)][_0x1b4e68(0x273)],'repo_path':_0x474cec['data'][_0x1b4e68(0x1c9)],'repoRoot':a0_0x59b14c[_0x1b4e68(0x272)](_0x474cec['data'][_0x1b4e68(0x1c9)]),'model':_0x1b4e68(0x233)}},'stack_trace':_0xe3ba2c?.[_0x1b4e68(0x28c)]||undefined,'source':_0x1b4e68(0x2a4)})[_0x1b4e68(0x217)](()=>{});}else _0x4eb1ee=_0x1b4e68(0x1fb);}return{'content':[{'type':'text','text':_0x4eb1ee}]};}catch(_0x2acdef){const _0x2c9b5e=_0x2acdef instanceof Error?_0x2acdef[_0x1b4e68(0x291)]:String(_0x2acdef),_0xea0919=_0x2c9b5e[_0x1b4e68(0x225)]()[_0x1b4e68(0x235)](_0x1b4e68(0x1f2))||_0x2c9b5e[_0x1b4e68(0x225)]()[_0x1b4e68(0x235)](_0x1b4e68(0x28b))||_0x2c9b5e[_0x1b4e68(0x225)]()[_0x1b4e68(0x235)](_0x1b4e68(0x1e9))||_0x2acdef instanceof Error&&_0x2acdef[_0x1b4e68(0x24e)]==='TimeoutError';return reportMorphError({'error_message':_0x2c9b5e,'error_type':_0xea0919?'TimeoutError':_0x2acdef instanceof Error?_0x2acdef[_0x1b4e68(0x234)]['name']:'UnknownError','context':{'tool':'warpgrep_codebase_search','repo_path':_0x474cec[_0x1b4e68(0x231)][_0x1b4e68(0x1c9)],'query':_0x474cec[_0x1b4e68(0x231)][_0x1b4e68(0x273)],'model':_0x1b4e68(0x233),'is_timeout':_0xea0919,'exception_phase':_0x1b4e68(0x1cb),'request_content':{'query':_0x474cec[_0x1b4e68(0x231)][_0x1b4e68(0x273)],'repo_path':_0x474cec[_0x1b4e68(0x231)]['repo_path'],'repoRoot':a0_0x59b14c[_0x1b4e68(0x272)](_0x474cec[_0x1b4e68(0x231)][_0x1b4e68(0x1c9)]),'model':_0x1b4e68(0x233)}},'stack_trace':_0x2acdef instanceof Error?_0x2acdef[_0x1b4e68(0x28c)]:undefined,'source':_0x1b4e68(0x2a4)})[_0x1b4e68(0x217)](()=>{}),{'content':[{'type':_0x1b4e68(0x28a),'text':_0x1b4e68(0x211)+_0x2c9b5e}],'isError':![]};}}case _0x1b4e68(0x2a3):{const _0x56b48a=WarpGrepGitHubArgsSchema['safeParse'](_0x55427b);if(!_0x56b48a[_0x1b4e68(0x23d)])return{'content':[{'type':_0x1b4e68(0x28a),'text':'Invalid\x20arguments:\x20'+_0x56b48a['error']}],'isError':!![]};const _0x1b5408=_0x56b48a[_0x1b4e68(0x231)]['github_url']||_0x56b48a[_0x1b4e68(0x231)][_0x1b4e68(0x29d)];if(!_0x1b5408)return{'content':[{'type':_0x1b4e68(0x28a),'text':_0x1b4e68(0x1e8)}],'isError':!![]};const _0x4590f4=MORPH_API_KEY;if(!_0x4590f4)throw new Error('MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.');const _0x3d5b3e=Date[_0x1b4e68(0x1a1)]();console[_0x1b4e68(0x28e)](_0x1b4e68(0x254)+_0x1b5408+_0x1b4e68(0x230)+_0x56b48a[_0x1b4e68(0x231)]['search_string']+'\x22');try{const _0x3512aa=new WarpGrepClient({'morphApiKey':_0x4590f4,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0x367e21=await _0x3512aa[_0x1b4e68(0x1d6)]({'query':_0x56b48a[_0x1b4e68(0x231)][_0x1b4e68(0x273)],'github':_0x1b5408,'branch':_0x56b48a[_0x1b4e68(0x231)][_0x1b4e68(0x1bf)]}),_0x3fd533=Date[_0x1b4e68(0x1a1)]()-_0x3d5b3e;console[_0x1b4e68(0x28e)](_0x1b4e68(0x1cd)+_0x3fd533+'ms.\x20Success:\x20'+_0x367e21[_0x1b4e68(0x23d)]);const _0x437802=formatResult(_0x367e21);return{'content':[{'type':_0x1b4e68(0x28a),'text':_0x437802}]};}catch(_0x15caee){const _0x14c047=Date[_0x1b4e68(0x1a1)]()-_0x3d5b3e,_0xac5a0=_0x15caee instanceof Error?_0x15caee[_0x1b4e68(0x291)]:String(_0x15caee);return console[_0x1b4e68(0x28e)](_0x1b4e68(0x196)+_0x14c047+_0x1b4e68(0x199),_0xac5a0),reportMorphError({'error_message':_0xac5a0,'error_type':_0x15caee instanceof Error?_0x15caee[_0x1b4e68(0x234)][_0x1b4e68(0x24e)]:_0x1b4e68(0x275),'context':{'tool':'warpgrep_github_search','github_url':_0x1b5408,'search_string':_0x56b48a[_0x1b4e68(0x231)][_0x1b4e68(0x273)],'branch':_0x56b48a[_0x1b4e68(0x231)]['branch']},'stack_trace':_0x15caee instanceof Error?_0x15caee[_0x1b4e68(0x28c)]:undefined,'source':_0x1b4e68(0x2a4),'tool':_0x1b4e68(0x2a3),'latency_ms':_0x14c047})[_0x1b4e68(0x217)](()=>{}),{'content':[{'type':_0x1b4e68(0x28a),'text':_0x1b4e68(0x29b)+_0xac5a0}],'isError':![]};}}case _0x1b4e68(0x24f):{const _0x54350a=CodebaseSearchArgsSchema[_0x1b4e68(0x190)](_0x55427b);if(!_0x54350a[_0x1b4e68(0x23d)])return{'content':[{'type':_0x1b4e68(0x28a),'text':_0x1b4e68(0x203)+_0x54350a['error']}],'isError':!![]};try{const _0x28d93d=MORPH_API_KEY;if(!_0x28d93d)throw new Error(_0x1b4e68(0x1ae));const _0xe0c9ef=_0x54350a[_0x1b4e68(0x231)][_0x1b4e68(0x194)],_0x574c46=await executeCodebaseSearch({'query':_0x54350a['data'][_0x1b4e68(0x27a)],'target_directories':_0xe0c9ef,'limit':_0x54350a['data'][_0x1b4e68(0x246)]},{'apiKey':_0x28d93d,'repoId':_0x54350a['data'][_0x1b4e68(0x1ad)],'branch':_0x54350a[_0x1b4e68(0x231)]['branch'],'commitHash':_0x54350a[_0x1b4e68(0x231)]['commitHash'],'debug':![]});if(!_0x574c46['success'])return{'content':[{'type':'text','text':_0x1b4e68(0x25f)+_0x574c46[_0x1b4e68(0x28e)]}],'isError':!![]};const _0x493adf=_0x574c46[_0x1b4e68(0x256)]['length']===0x0?'No\x20results\x20found\x20for\x20query:\x20\x22'+_0x54350a[_0x1b4e68(0x231)][_0x1b4e68(0x27a)]+'\x22':'Found\x20'+_0x574c46[_0x1b4e68(0x256)]['length']+_0x1b4e68(0x29a)+_0x574c46[_0x1b4e68(0x29c)][_0x1b4e68(0x192)]+'ms:\x0a\x0a'+_0x574c46[_0x1b4e68(0x256)][_0x1b4e68(0x1d2)]((_0x1b0bbb,_0x44da56)=>_0x44da56+0x1+'.\x20'+_0x1b0bbb[_0x1b4e68(0x19e)]+'\x20('+(_0x1b0bbb[_0x1b4e68(0x25b)]*0x64)['toFixed'](0x1)+_0x1b4e68(0x24a)+(_0x1b4e68(0x1e0)+_0x1b0bbb[_0x1b4e68(0x205)]+'-'+_0x1b0bbb['endLine']+'\x0a')+(_0x1b4e68(0x23a)+_0x1b0bbb[_0x1b4e68(0x2a6)]['substring'](0x0,0xc8)+(_0x1b0bbb[_0x1b4e68(0x2a6)][_0x1b4e68(0x269)]>0xc8?_0x1b4e68(0x252):'')+'\x0a'))[_0x1b4e68(0x250)]('\x0a');return{'content':[{'type':_0x1b4e68(0x28a),'text':_0x493adf}]};}catch(_0x24de63){const _0x51c5b7=_0x24de63 instanceof Error?_0x24de63['message']:String(_0x24de63);return reportMorphError({'error_message':_0x51c5b7,'error_type':_0x24de63 instanceof Error?_0x24de63[_0x1b4e68(0x234)][_0x1b4e68(0x24e)]:'UnknownError','context':{'tool':_0x1b4e68(0x24f),'query':_0x54350a[_0x1b4e68(0x231)][_0x1b4e68(0x27a)],'repo_id':_0x54350a[_0x1b4e68(0x231)]['repoId'],'target_directories':_0x54350a[_0x1b4e68(0x231)][_0x1b4e68(0x194)]},'stack_trace':_0x24de63 instanceof Error?_0x24de63[_0x1b4e68(0x28c)]:undefined,'source':_0x1b4e68(0x2a4)})['catch'](()=>{}),{'content':[{'type':_0x1b4e68(0x28a),'text':_0x1b4e68(0x286)+_0x51c5b7}],'isError':!![]};}}default:throw new Error(_0x1b4e68(0x223)+_0x305adc);}}catch(_0x3c635a){const _0x5b7af0=_0x3c635a instanceof Error?_0x3c635a[_0x1b4e68(0x291)]:String(_0x3c635a);return reportMorphError({'error_message':_0x5b7af0,'error_type':_0x3c635a instanceof Error?_0x3c635a[_0x1b4e68(0x234)][_0x1b4e68(0x24e)]:'UnknownError','context':{'tool':name,'arguments':args?JSON['stringify'](args)[_0x1b4e68(0x242)](0x0,0x1f4):undefined,'mcp_server_version':'0.2.0'},'stack_trace':_0x3c635a instanceof Error?_0x3c635a[_0x1b4e68(0x28c)]:undefined,'source':_0x1b4e68(0x2a4)})[_0x1b4e68(0x217)](()=>{}),{'content':[{'type':_0x1b4e68(0x28a),'text':_0x1b4e68(0x286)+_0x5b7af0}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x445d5a){const _0x5bfc27=a0_0x1f8383,_0x3a2c29=await getValidRootDirectories(_0x445d5a);if(_0x3a2c29[_0x5bfc27(0x269)]>0x0)allowedDirectories=[..._0x3a2c29],console[_0x5bfc27(0x28e)]('Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20'+_0x3a2c29[_0x5bfc27(0x269)]+'\x20valid\x20directories');else{console[_0x5bfc27(0x28e)](_0x5bfc27(0x270));if(ENABLE_WORKSPACE_MODE)try{const _0x553d72=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x553d72&&(allowedDirectories=[_0x553d72],console[_0x5bfc27(0x28e)]('Fallback:\x20Using\x20workspace\x20root\x20'+_0x553d72));}catch(_0x537d60){console['error'](_0x5bfc27(0x25e)+_0x537d60);}}}server[a0_0x1f8383(0x1f6)](RootsListChangedNotificationSchema,async()=>{const _0x56a453=a0_0x1f8383;try{const _0x5225b3=await server['listRoots']();_0x5225b3&&_0x56a453(0x1fd)in _0x5225b3&&await updateAllowedDirectoriesFromRoots(_0x5225b3[_0x56a453(0x1fd)]);}catch(_0x307349){console[_0x56a453(0x28e)]('Failed\x20to\x20request\x20roots\x20from\x20client:',_0x307349 instanceof Error?_0x307349[_0x56a453(0x291)]:String(_0x307349));}}),server[a0_0x1f8383(0x216)]=async()=>{const _0x5eb64d=a0_0x1f8383,_0x305734=server[_0x5eb64d(0x258)]();if(_0x305734?.[_0x5eb64d(0x1fd)])try{const _0x56eb96=await server[_0x5eb64d(0x22d)]();_0x56eb96&&_0x5eb64d(0x1fd)in _0x56eb96?await updateAllowedDirectoriesFromRoots(_0x56eb96['roots']):console[_0x5eb64d(0x28e)](_0x5eb64d(0x1df));}catch(_0x59a34b){console[_0x5eb64d(0x28e)](_0x5eb64d(0x22a),_0x59a34b instanceof Error?_0x59a34b[_0x5eb64d(0x291)]:String(_0x59a34b));}else{if(allowedDirectories[_0x5eb64d(0x269)]>0x0)console['error'](_0x5eb64d(0x249),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console[_0x5eb64d(0x28e)](_0x5eb64d(0x19c));else throw new Error(_0x5eb64d(0x239));}}};async function runServer(){const _0x4e6308=a0_0x1f8383,_0x2ac8b7=new StdioServerTransport();await server[_0x4e6308(0x1be)](_0x2ac8b7),console[_0x4e6308(0x28e)]('Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio'),allowedDirectories[_0x4e6308(0x269)]===0x0&&console[_0x4e6308(0x28e)](_0x4e6308(0x20c));}runServer()[a0_0x1f8383(0x217)](_0x554ce7=>{const _0x34391a=a0_0x1f8383;console[_0x34391a(0x28e)]('Fatal\x20error\x20running\x20server:',_0x554ce7),process[_0x34391a(0x1d9)](0x1);});
@@ -1 +1 @@
1
- (function(_0xcdeafb,_0x7ed588){const _0x3793a9=a1_0x44c2,_0x1e85f6=_0xcdeafb();while(!![]){try{const _0x5e8030=parseInt(_0x3793a9(0x133))/0x1*(parseInt(_0x3793a9(0x136))/0x2)+-parseInt(_0x3793a9(0x131))/0x3*(-parseInt(_0x3793a9(0x13f))/0x4)+-parseInt(_0x3793a9(0x12b))/0x5+parseInt(_0x3793a9(0x12d))/0x6+-parseInt(_0x3793a9(0x12f))/0x7*(-parseInt(_0x3793a9(0x137))/0x8)+-parseInt(_0x3793a9(0x138))/0x9+parseInt(_0x3793a9(0x130))/0xa;if(_0x5e8030===_0x7ed588)break;else _0x1e85f6['push'](_0x1e85f6['shift']());}catch(_0x32eee5){_0x1e85f6['push'](_0x1e85f6['shift']());}}}(a1_0x4e1a,0x300c6));function a1_0x4e1a(){const _0x385345=['charAt','268KZFdbl','8NTMAYd','1539027xPxTHA','join','slice','match','toUpperCase','startsWith','substring','8gVNwmT','normalize','1965575XfHdKK','test','567072gNVCTf','replace','1250200Adnyfz','640520yVOHNu','202887WvXITU','trim','2153YssRGW','homedir'];a1_0x4e1a=function(){return _0x385345;};return a1_0x4e1a();}import a1_0x38561e from'path';function a1_0x44c2(_0x4b63d4,_0x42cdb3){_0x4b63d4=_0x4b63d4-0x12a;const _0x4e1aef=a1_0x4e1a();let _0x44c23e=_0x4e1aef[_0x4b63d4];return _0x44c23e;}import a1_0x2a2f98 from'os';export function convertToWindowsPath(_0x551622){const _0x2bc2b2=a1_0x44c2;if(_0x551622['startsWith']('/mnt/')){const _0x5e7452=_0x551622[_0x2bc2b2(0x135)](0x5)[_0x2bc2b2(0x13c)](),_0x4a267d=_0x551622[_0x2bc2b2(0x13a)](0x6)[_0x2bc2b2(0x12e)](/\//g,'\x5c');return _0x5e7452+':'+_0x4a267d;}if(_0x551622['match'](/^\/[a-zA-Z]\//)){const _0x53795=_0x551622[_0x2bc2b2(0x135)](0x1)[_0x2bc2b2(0x13c)](),_0x557c18=_0x551622[_0x2bc2b2(0x13a)](0x2)[_0x2bc2b2(0x12e)](/\//g,'\x5c');return _0x53795+':'+_0x557c18;}if(_0x551622[_0x2bc2b2(0x13b)](/^[a-zA-Z]:/))return _0x551622[_0x2bc2b2(0x12e)](/\//g,'\x5c');return _0x551622;}export function normalizePath(_0x561fc2){const _0x8d7522=a1_0x44c2;_0x561fc2=_0x561fc2[_0x8d7522(0x132)]()[_0x8d7522(0x12e)](/^["']|["']$/g,'');const _0xbfc284=_0x561fc2[_0x8d7522(0x13d)]('/')&&!_0x561fc2[_0x8d7522(0x13b)](/^\/mnt\/[a-z]\//i)&&!_0x561fc2['match'](/^\/[a-zA-Z]\//);if(_0xbfc284)return _0x561fc2[_0x8d7522(0x12e)](/\/+/g,'/')[_0x8d7522(0x12e)](/\/+$/,'');_0x561fc2=convertToWindowsPath(_0x561fc2);if(_0x561fc2[_0x8d7522(0x13d)]('\x5c\x5c')){let _0x93ddec=_0x561fc2;_0x93ddec=_0x93ddec[_0x8d7522(0x12e)](/^\\{2,}/,'\x5c\x5c');const _0x388758=_0x93ddec[_0x8d7522(0x13e)](0x2)['replace'](/\\\\/g,'\x5c');_0x561fc2='\x5c\x5c'+_0x388758;}else _0x561fc2=_0x561fc2[_0x8d7522(0x12e)](/\\\\/g,'\x5c');let _0x1faac0=a1_0x38561e[_0x8d7522(0x12a)](_0x561fc2);_0x561fc2[_0x8d7522(0x13d)]('\x5c\x5c')&&!_0x1faac0[_0x8d7522(0x13d)]('\x5c\x5c')&&(_0x1faac0='\x5c'+_0x1faac0);if(_0x1faac0[_0x8d7522(0x13b)](/^[a-zA-Z]:/)){let _0x524f74=_0x1faac0[_0x8d7522(0x12e)](/\//g,'\x5c');return/^[a-z]:/[_0x8d7522(0x12c)](_0x524f74)&&(_0x524f74=_0x524f74[_0x8d7522(0x135)](0x0)[_0x8d7522(0x13c)]()+_0x524f74['slice'](0x1)),_0x524f74;}return _0x1faac0[_0x8d7522(0x12e)](/\//g,'\x5c');}export function expandHome(_0x5a5e4e){const _0x4a9287=a1_0x44c2;if(_0x5a5e4e['startsWith']('~/')||_0x5a5e4e==='~')return a1_0x38561e[_0x4a9287(0x139)](a1_0x2a2f98[_0x4a9287(0x134)](),_0x5a5e4e['slice'](0x1));return _0x5a5e4e;}
1
+ (function(_0x44a0b5,_0x26c23){const _0xc4caec=a1_0x6d19,_0x5ac67a=_0x44a0b5();while(!![]){try{const _0x430103=-parseInt(_0xc4caec(0x167))/0x1+-parseInt(_0xc4caec(0x16f))/0x2+parseInt(_0xc4caec(0x171))/0x3*(parseInt(_0xc4caec(0x16c))/0x4)+-parseInt(_0xc4caec(0x161))/0x5*(-parseInt(_0xc4caec(0x166))/0x6)+-parseInt(_0xc4caec(0x16a))/0x7*(parseInt(_0xc4caec(0x162))/0x8)+-parseInt(_0xc4caec(0x16e))/0x9*(-parseInt(_0xc4caec(0x163))/0xa)+parseInt(_0xc4caec(0x16b))/0xb;if(_0x430103===_0x26c23)break;else _0x5ac67a['push'](_0x5ac67a['shift']());}catch(_0x58acc0){_0x5ac67a['push'](_0x5ac67a['shift']());}}}(a1_0x38a8,0x35022));function a1_0x6d19(_0x32b636,_0x11f712){_0x32b636=_0x32b636-0x15f;const _0x38a8d6=a1_0x38a8();let _0x6d1905=_0x38a8d6[_0x32b636];return _0x6d1905;}import a1_0x2b2a83 from'path';function a1_0x38a8(){const _0xee645b=['201914QczYXk','replace','1893mDMyGK','/mnt/','charAt','test','startsWith','match','join','11410yRqQcF','17384LcUmlC','10pLwJXO','normalize','substring','408SOxtdw','324716jiOnNr','toUpperCase','trim','1239QpCAEi','4694327dLwaSi','2736LqGmCk','slice','124911YqeJzo'];a1_0x38a8=function(){return _0xee645b;};return a1_0x38a8();}import a1_0x29c392 from'os';export function convertToWindowsPath(_0x232426){const _0x5edd47=a1_0x6d19;if(_0x232426['startsWith'](_0x5edd47(0x172))){const _0x32c29f=_0x232426[_0x5edd47(0x173)](0x5)[_0x5edd47(0x168)](),_0xf095ef=_0x232426[_0x5edd47(0x16d)](0x6)['replace'](/\//g,'\x5c');return _0x32c29f+':'+_0xf095ef;}if(_0x232426[_0x5edd47(0x15f)](/^\/[a-zA-Z]\//)){const _0x2cd1c9=_0x232426[_0x5edd47(0x173)](0x1)[_0x5edd47(0x168)](),_0x48bd35=_0x232426[_0x5edd47(0x16d)](0x2)[_0x5edd47(0x170)](/\//g,'\x5c');return _0x2cd1c9+':'+_0x48bd35;}if(_0x232426['match'](/^[a-zA-Z]:/))return _0x232426[_0x5edd47(0x170)](/\//g,'\x5c');return _0x232426;}export function normalizePath(_0x3180ec){const _0x22a2f3=a1_0x6d19;_0x3180ec=_0x3180ec[_0x22a2f3(0x169)]()['replace'](/^["']|["']$/g,'');const _0x53069e=_0x3180ec['startsWith']('/')&&!_0x3180ec[_0x22a2f3(0x15f)](/^\/mnt\/[a-z]\//i)&&!_0x3180ec[_0x22a2f3(0x15f)](/^\/[a-zA-Z]\//);if(_0x53069e)return _0x3180ec[_0x22a2f3(0x170)](/\/+/g,'/')[_0x22a2f3(0x170)](/\/+$/,'');_0x3180ec=convertToWindowsPath(_0x3180ec);if(_0x3180ec[_0x22a2f3(0x175)]('\x5c\x5c')){let _0x5b3ad1=_0x3180ec;_0x5b3ad1=_0x5b3ad1[_0x22a2f3(0x170)](/^\\{2,}/,'\x5c\x5c');const _0x551d52=_0x5b3ad1[_0x22a2f3(0x165)](0x2)['replace'](/\\\\/g,'\x5c');_0x3180ec='\x5c\x5c'+_0x551d52;}else _0x3180ec=_0x3180ec[_0x22a2f3(0x170)](/\\\\/g,'\x5c');let _0x43d5ee=a1_0x2b2a83[_0x22a2f3(0x164)](_0x3180ec);_0x3180ec[_0x22a2f3(0x175)]('\x5c\x5c')&&!_0x43d5ee['startsWith']('\x5c\x5c')&&(_0x43d5ee='\x5c'+_0x43d5ee);if(_0x43d5ee[_0x22a2f3(0x15f)](/^[a-zA-Z]:/)){let _0x2b41ac=_0x43d5ee[_0x22a2f3(0x170)](/\//g,'\x5c');return/^[a-z]:/[_0x22a2f3(0x174)](_0x2b41ac)&&(_0x2b41ac=_0x2b41ac['charAt'](0x0)[_0x22a2f3(0x168)]()+_0x2b41ac['slice'](0x1)),_0x2b41ac;}return _0x43d5ee[_0x22a2f3(0x170)](/\//g,'\x5c');}export function expandHome(_0x408bd2){const _0x56ad94=a1_0x6d19;if(_0x408bd2[_0x56ad94(0x175)]('~/')||_0x408bd2==='~')return a1_0x2b2a83[_0x56ad94(0x160)](a1_0x29c392['homedir'](),_0x408bd2[_0x56ad94(0x16d)](0x1));return _0x408bd2;}
@@ -1 +1 @@
1
- function a2_0x4017(){const _0x49bbe9=['some','3272248nljPaN','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','sep','571541SBwrJf','Path\x20must\x20be\x20absolute\x20after\x20normalization','9045248HdbEme','357039hGHUMA','string','isArray','5KouDGN','133114TdIpAu','isAbsolute','931840TuFrNN','normalize','6089604wIRyka','length','includes','startsWith'];a2_0x4017=function(){return _0x49bbe9;};return a2_0x4017();}(function(_0x1bf5e8,_0x16e16e){const _0x14ea95=a2_0x417c,_0x340f88=_0x1bf5e8();while(!![]){try{const _0x4aecd9=-parseInt(_0x14ea95(0x1bf))/0x1+-parseInt(_0x14ea95(0x1c6))/0x2+parseInt(_0x14ea95(0x1c2))/0x3+parseInt(_0x14ea95(0x1bc))/0x4*(parseInt(_0x14ea95(0x1c5))/0x5)+-parseInt(_0x14ea95(0x1b7))/0x6+parseInt(_0x14ea95(0x1c8))/0x7+parseInt(_0x14ea95(0x1c1))/0x8;if(_0x4aecd9===_0x16e16e)break;else _0x340f88['push'](_0x340f88['shift']());}catch(_0x18ff84){_0x340f88['push'](_0x340f88['shift']());}}}(a2_0x4017,0x85beb));function a2_0x417c(_0x1dabd5,_0x4a18d2){_0x1dabd5=_0x1dabd5-0x1b6;const _0x4017cc=a2_0x4017();let _0x417cfe=_0x4017cc[_0x1dabd5];return _0x417cfe;}import a2_0x89292f from'path';export function isPathWithinAllowedDirectories(_0x483144,_0x5d2a37){const _0x581b6f=a2_0x417c;if(typeof _0x483144!=='string'||!Array[_0x581b6f(0x1c4)](_0x5d2a37))return![];if(!_0x483144||_0x5d2a37[_0x581b6f(0x1b8)]===0x0)return![];if(_0x483144[_0x581b6f(0x1b9)]('\x00'))return![];let _0x2524c2;try{_0x2524c2=a2_0x89292f['resolve'](a2_0x89292f[_0x581b6f(0x1b6)](_0x483144));}catch{return![];}if(!a2_0x89292f[_0x581b6f(0x1c7)](_0x2524c2))throw new Error(_0x581b6f(0x1c0));return _0x5d2a37[_0x581b6f(0x1bb)](_0x529ed3=>{const _0x390a6a=_0x581b6f;if(typeof _0x529ed3!==_0x390a6a(0x1c3)||!_0x529ed3)return![];if(_0x529ed3[_0x390a6a(0x1b9)]('\x00'))return![];let _0x43ac9a;try{_0x43ac9a=a2_0x89292f['resolve'](a2_0x89292f['normalize'](_0x529ed3));}catch{return![];}if(!a2_0x89292f[_0x390a6a(0x1c7)](_0x43ac9a))throw new Error(_0x390a6a(0x1bd));if(_0x2524c2===_0x43ac9a)return!![];if(_0x43ac9a===a2_0x89292f['sep'])return _0x2524c2[_0x390a6a(0x1ba)](a2_0x89292f[_0x390a6a(0x1be)]);return _0x2524c2[_0x390a6a(0x1ba)](_0x43ac9a+a2_0x89292f['sep']);});}
1
+ (function(_0x5cce2c,_0x3c519c){const _0x5b0bf3=a2_0x6f4b,_0x57a7fb=_0x5cce2c();while(!![]){try{const _0x3536e1=parseInt(_0x5b0bf3(0xc2))/0x1*(parseInt(_0x5b0bf3(0xc8))/0x2)+-parseInt(_0x5b0bf3(0xc9))/0x3*(parseInt(_0x5b0bf3(0xd8))/0x4)+parseInt(_0x5b0bf3(0xc7))/0x5*(parseInt(_0x5b0bf3(0xcf))/0x6)+-parseInt(_0x5b0bf3(0xd7))/0x7*(parseInt(_0x5b0bf3(0xd9))/0x8)+parseInt(_0x5b0bf3(0xcb))/0x9*(-parseInt(_0x5b0bf3(0xce))/0xa)+-parseInt(_0x5b0bf3(0xc4))/0xb*(-parseInt(_0x5b0bf3(0xd0))/0xc)+-parseInt(_0x5b0bf3(0xd2))/0xd*(-parseInt(_0x5b0bf3(0xd5))/0xe);if(_0x3536e1===_0x3c519c)break;else _0x57a7fb['push'](_0x57a7fb['shift']());}catch(_0x1d6dd3){_0x57a7fb['push'](_0x57a7fb['shift']());}}}(a2_0x3d46,0xb6cc6));function a2_0x6f4b(_0x3a8749,_0x439b0b){_0x3a8749=_0x3a8749-0xc2;const _0x3d4666=a2_0x3d46();let _0x6f4baf=_0x3d4666[_0x3a8749];return _0x6f4baf;}function a2_0x3d46(){const _0x296697=['isArray','283735LUOaqF','2BBXaSi','6qxFKZT','normalize','32598CEkAkZ','sep','includes','1370COUbOc','42CFPfts','2184PVDcii','length','260MzgGEr','startsWith','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','975352FBMFMn','string','7CavzrL','1426004FatavP','11912176SNtqUe','285749IRzRkM','resolve','82841Bwjrfy','isAbsolute'];a2_0x3d46=function(){return _0x296697;};return a2_0x3d46();}import a2_0x55faa8 from'path';export function isPathWithinAllowedDirectories(_0x5493f2,_0x3289c5){const _0x128cd0=a2_0x6f4b;if(typeof _0x5493f2!==_0x128cd0(0xd6)||!Array[_0x128cd0(0xc6)](_0x3289c5))return![];if(!_0x5493f2||_0x3289c5[_0x128cd0(0xd1)]===0x0)return![];if(_0x5493f2[_0x128cd0(0xcd)]('\x00'))return![];let _0x5ed99a;try{_0x5ed99a=a2_0x55faa8[_0x128cd0(0xc3)](a2_0x55faa8[_0x128cd0(0xca)](_0x5493f2));}catch{return![];}if(!a2_0x55faa8[_0x128cd0(0xc5)](_0x5ed99a))throw new Error('Path\x20must\x20be\x20absolute\x20after\x20normalization');return _0x3289c5['some'](_0x3217af=>{const _0x1932a7=_0x128cd0;if(typeof _0x3217af!==_0x1932a7(0xd6)||!_0x3217af)return![];if(_0x3217af[_0x1932a7(0xcd)]('\x00'))return![];let _0x4bee8f;try{_0x4bee8f=a2_0x55faa8[_0x1932a7(0xc3)](a2_0x55faa8['normalize'](_0x3217af));}catch{return![];}if(!a2_0x55faa8[_0x1932a7(0xc5)](_0x4bee8f))throw new Error(_0x1932a7(0xd4));if(_0x5ed99a===_0x4bee8f)return!![];if(_0x4bee8f===a2_0x55faa8[_0x1932a7(0xcc)])return _0x5ed99a['startsWith'](a2_0x55faa8['sep']);return _0x5ed99a[_0x1932a7(0xd3)](_0x4bee8f+a2_0x55faa8[_0x1932a7(0xcc)]);});}
@@ -1 +1 @@
1
- (function(_0x3be589,_0x3e68a6){const _0x27ed58=a3_0x15ca,_0x84c50d=_0x3be589();while(!![]){try{const _0x4f79c0=parseInt(_0x27ed58(0x1e9))/0x1*(-parseInt(_0x27ed58(0x1d6))/0x2)+-parseInt(_0x27ed58(0x1e0))/0x3+-parseInt(_0x27ed58(0x1d5))/0x4*(-parseInt(_0x27ed58(0x1d8))/0x5)+parseInt(_0x27ed58(0x1e5))/0x6+-parseInt(_0x27ed58(0x1eb))/0x7+parseInt(_0x27ed58(0x1ee))/0x8+-parseInt(_0x27ed58(0x1e3))/0x9*(-parseInt(_0x27ed58(0x1da))/0xa);if(_0x4f79c0===_0x3e68a6)break;else _0x84c50d['push'](_0x84c50d['shift']());}catch(_0x10e319){_0x84c50d['push'](_0x84c50d['shift']());}}}(a3_0x229c,0x2ce83));import{promises as a3_0x24df6e}from'fs';import a3_0x6efa96 from'path';import a3_0x120efa from'os';import{normalizePath}from'./path-utils.js';function a3_0x229c(){const _0x233d73=['95754fmBLUH','startsWith','realpath','Skipping\x20invalid\x20directory:\x20','1DDpXIt','non-directory\x20root','911337oIgiEx','homedir','stat','394528KRrwvH','69104xIIfxN','612526EmAXwv','slice','95cVaJuH','file://','160670nrXFDo','Skipping\x20','message','resolve','push','\x20due\x20to\x20error:\x20','813609SatKQw','uri','invalid\x20path\x20or\x20inaccessible','279QZHCBk','error'];a3_0x229c=function(){return _0x233d73;};return a3_0x229c();}async function parseRootUri(_0x339908){const _0xb9aef6=a3_0x15ca;try{const _0xb1b5ef=_0x339908[_0xb9aef6(0x1e6)](_0xb9aef6(0x1d9))?_0x339908[_0xb9aef6(0x1d7)](0x7):_0x339908,_0x2e387f=_0xb1b5ef[_0xb9aef6(0x1e6)]('~/')||_0xb1b5ef==='~'?a3_0x6efa96['join'](a3_0x120efa[_0xb9aef6(0x1ec)](),_0xb1b5ef[_0xb9aef6(0x1d7)](0x1)):_0xb1b5ef,_0x47d024=a3_0x6efa96[_0xb9aef6(0x1dd)](_0x2e387f),_0x4743c0=await a3_0x24df6e[_0xb9aef6(0x1e7)](_0x47d024);return normalizePath(_0x4743c0);}catch{return null;}}function formatDirectoryError(_0x4fb0ca,_0x40df6f,_0xd73fbc){const _0x268118=a3_0x15ca;if(_0xd73fbc)return _0x268118(0x1db)+_0xd73fbc+':\x20'+_0x4fb0ca;const _0x434b40=_0x40df6f instanceof Error?_0x40df6f[_0x268118(0x1dc)]:String(_0x40df6f);return _0x268118(0x1e8)+_0x4fb0ca+_0x268118(0x1df)+_0x434b40;}function a3_0x15ca(_0x503d5c,_0x31a8ab){_0x503d5c=_0x503d5c-0x1d5;const _0x229c92=a3_0x229c();let _0x15cace=_0x229c92[_0x503d5c];return _0x15cace;}export async function getValidRootDirectories(_0x2a3359){const _0x1925f4=a3_0x15ca,_0x5c3e39=[];for(const _0x3930e0 of _0x2a3359){const _0x43c838=await parseRootUri(_0x3930e0[_0x1925f4(0x1e1)]);if(!_0x43c838){console['error'](formatDirectoryError(_0x3930e0[_0x1925f4(0x1e1)],undefined,_0x1925f4(0x1e2)));continue;}try{const _0x352265=await a3_0x24df6e[_0x1925f4(0x1ed)](_0x43c838);_0x352265['isDirectory']()?_0x5c3e39[_0x1925f4(0x1de)](_0x43c838):console['error'](formatDirectoryError(_0x43c838,undefined,_0x1925f4(0x1ea)));}catch(_0x382257){console[_0x1925f4(0x1e4)](formatDirectoryError(_0x43c838,_0x382257));}}return _0x5c3e39;}
1
+ (function(_0x2698d0,_0x500b82){const _0x366455=a3_0x1547,_0x503fe6=_0x2698d0();while(!![]){try{const _0x3e86e9=parseInt(_0x366455(0x19e))/0x1*(parseInt(_0x366455(0x1a0))/0x2)+-parseInt(_0x366455(0x19b))/0x3*(-parseInt(_0x366455(0x195))/0x4)+parseInt(_0x366455(0x18e))/0x5*(-parseInt(_0x366455(0x18f))/0x6)+parseInt(_0x366455(0x192))/0x7*(-parseInt(_0x366455(0x19d))/0x8)+-parseInt(_0x366455(0x1a3))/0x9+parseInt(_0x366455(0x1a6))/0xa+parseInt(_0x366455(0x198))/0xb*(parseInt(_0x366455(0x196))/0xc);if(_0x3e86e9===_0x500b82)break;else _0x503fe6['push'](_0x503fe6['shift']());}catch(_0x38fbd7){_0x503fe6['push'](_0x503fe6['shift']());}}}(a3_0x9886,0x81a19));function a3_0x1547(_0x1df7c7,_0x4be11d){_0x1df7c7=_0x1df7c7-0x18d;const _0x98868c=a3_0x9886();let _0x1547f1=_0x98868c[_0x1df7c7];return _0x1547f1;}import{promises as a3_0x37f859}from'fs';import a3_0x452f61 from'path';import a3_0xbeb12f from'os';import{normalizePath}from'./path-utils.js';async function parseRootUri(_0x58f219){const _0x4ec631=a3_0x1547;try{const _0x17bccb=_0x58f219['startsWith'](_0x4ec631(0x1a1))?_0x58f219[_0x4ec631(0x18d)](0x7):_0x58f219,_0x3e72ab=_0x17bccb[_0x4ec631(0x1a7)]('~/')||_0x17bccb==='~'?a3_0x452f61['join'](a3_0xbeb12f[_0x4ec631(0x19c)](),_0x17bccb['slice'](0x1)):_0x17bccb,_0xee50c8=a3_0x452f61[_0x4ec631(0x190)](_0x3e72ab),_0x111966=await a3_0x37f859[_0x4ec631(0x1a4)](_0xee50c8);return normalizePath(_0x111966);}catch{return null;}}function a3_0x9886(){const _0x63f6b=['uri','414JonVEe','homedir','5491088ZnOXpm','1AbzXoE','non-directory\x20root','2101186lhMNXW','file://','error','5225751qNPNex','realpath','invalid\x20path\x20or\x20inaccessible','830540jVYYIN','startsWith','Skipping\x20','slice','15aTXsjp','895836rPJkNW','resolve','Skipping\x20invalid\x20directory:\x20','7QZFzHP','\x20due\x20to\x20error:\x20','stat','17012tBNvFB','6304212gzTTzW','isDirectory','11nTMYvg','push'];a3_0x9886=function(){return _0x63f6b;};return a3_0x9886();}function formatDirectoryError(_0x1a1f91,_0x4a1219,_0x4ba62f){const _0x4727ac=a3_0x1547;if(_0x4ba62f)return _0x4727ac(0x1a8)+_0x4ba62f+':\x20'+_0x1a1f91;const _0x45e0ef=_0x4a1219 instanceof Error?_0x4a1219['message']:String(_0x4a1219);return _0x4727ac(0x191)+_0x1a1f91+_0x4727ac(0x193)+_0x45e0ef;}export async function getValidRootDirectories(_0x4d65dd){const _0x5eb0c1=a3_0x1547,_0x1bd33f=[];for(const _0x4231eb of _0x4d65dd){const _0x5e5acf=await parseRootUri(_0x4231eb['uri']);if(!_0x5e5acf){console[_0x5eb0c1(0x1a2)](formatDirectoryError(_0x4231eb[_0x5eb0c1(0x19a)],undefined,_0x5eb0c1(0x1a5)));continue;}try{const _0x3df140=await a3_0x37f859[_0x5eb0c1(0x194)](_0x5e5acf);_0x3df140[_0x5eb0c1(0x197)]()?_0x1bd33f[_0x5eb0c1(0x199)](_0x5e5acf):console[_0x5eb0c1(0x1a2)](formatDirectoryError(_0x5e5acf,undefined,_0x5eb0c1(0x19f)));}catch(_0x40c795){console['error'](formatDirectoryError(_0x5e5acf,_0x40c795));}}return _0x1bd33f;}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morphllm/morphmcp",
3
- "version": "0.8.108",
3
+ "version": "0.8.110",
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.126",
38
+ "@morphllm/morphsdk": "0.2.127",
39
39
  "@vscode/ripgrep": "^1.15.14",
40
40
  "axios": "^1.6.0",
41
41
  "chalk": "^5.3.0",