@morphllm/morphmcp 0.8.108 → 0.8.109

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_0x5ef1d8=a0_0x1c3c;(function(_0x228206,_0x24d480){const _0xa13ecd=a0_0x1c3c,_0x45da02=_0x228206();while(!![]){try{const _0x2a3dbd=-parseInt(_0xa13ecd(0x2bb))/0x1*(-parseInt(_0xa13ecd(0x278))/0x2)+parseInt(_0xa13ecd(0x26f))/0x3+-parseInt(_0xa13ecd(0x2ba))/0x4+parseInt(_0xa13ecd(0x265))/0x5+parseInt(_0xa13ecd(0x1e8))/0x6*(parseInt(_0xa13ecd(0x266))/0x7)+parseInt(_0xa13ecd(0x219))/0x8+parseInt(_0xa13ecd(0x23b))/0x9;if(_0x2a3dbd===_0x24d480)break;else _0x45da02['push'](_0x45da02['shift']());}catch(_0x25bca4){_0x45da02['push'](_0x45da02['shift']());}}}(a0_0x2039,0x995d1));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_0x4ce217 from'fs/promises';import a0_0x5d50c6 from'path';import a0_0x3b9010 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';function a0_0x1c3c(_0x8bb9c,_0x20b97e){_0x8bb9c=_0x8bb9c-0x1a7;const _0x2039b1=a0_0x2039();let _0x1c3c31=_0x2039b1[_0x8bb9c];return _0x1c3c31;}import a0_0x19a3cd from'axios';function fixPathRepetition(_0x4d1fd3){const _0x8348e3=a0_0x1c3c,_0x3a6688=_0x4d1fd3['split'](a0_0x5d50c6[_0x8348e3(0x2b3)])[_0x8348e3(0x226)](Boolean);if(_0x3a6688[_0x8348e3(0x2c1)]<0x2)return null;for(let _0x388850=Math['floor'](_0x3a6688[_0x8348e3(0x2c1)]/0x2);_0x388850>=0x1;_0x388850--){for(let _0x1299d1=0x0;_0x1299d1<=_0x3a6688[_0x8348e3(0x2c1)]-0x2*_0x388850;_0x1299d1++){const _0x4c72b4=_0x3a6688[_0x8348e3(0x25a)](_0x1299d1,_0x1299d1+_0x388850),_0x50a867=_0x3a6688[_0x8348e3(0x25a)](_0x1299d1+_0x388850,_0x1299d1+0x2*_0x388850);if(_0x4c72b4[_0x8348e3(0x1cc)]((_0x173d84,_0x88afbb)=>_0x173d84===_0x50a867[_0x88afbb])){const _0x208535=[..._0x3a6688['slice'](0x0,_0x1299d1),..._0x3a6688[_0x8348e3(0x25a)](_0x1299d1+_0x388850)];return a0_0x5d50c6[_0x8348e3(0x2b3)]+_0x208535[_0x8348e3(0x299)](a0_0x5d50c6[_0x8348e3(0x2b3)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x20580d=a0_0x1c3c;try{const _0x49d85b=require(_0x20580d(0x1f3));return _0x49d85b[_0x20580d(0x284)]??'unknown';}catch(_0x4babe9){return console[_0x20580d(0x237)](_0x20580d(0x2bf),_0x4babe9),_0x20580d(0x2a6);}}function printHelp(){const _0x4f02ef=a0_0x1c3c;console[_0x4f02ef(0x234)](_0x4f02ef(0x1ec)+getPackageVersion()),console[_0x4f02ef(0x234)](_0x4f02ef(0x1f0)),console[_0x4f02ef(0x234)](_0x4f02ef(0x279)),console[_0x4f02ef(0x234)](_0x4f02ef(0x205)),console['log'](_0x4f02ef(0x1a7)),console[_0x4f02ef(0x234)](_0x4f02ef(0x1e7)),console['log']('\x0aExamples:'),console[_0x4f02ef(0x234)]('\x20\x20morph-mcp'),console[_0x4f02ef(0x234)](_0x4f02ef(0x24f));}const cliArgs=process['argv']['slice'](0x2),VERSION_FLAGS=new Set([a0_0x5ef1d8(0x1f4),'-v','-V']),HELP_FLAGS=new Set(['--help','-h']);cliArgs['some'](_0x5d7ed6=>VERSION_FLAGS['has'](_0x5d7ed6))&&(console[a0_0x5ef1d8(0x234)](a0_0x5ef1d8(0x1ec)+getPackageVersion()),process[a0_0x5ef1d8(0x1e3)](0x0));cliArgs[a0_0x5ef1d8(0x1b3)](_0x457fdc=>HELP_FLAGS[a0_0x5ef1d8(0x2a8)](_0x457fdc))&&(printHelp(),process[a0_0x5ef1d8(0x1e3)](0x0));function getCliArg(_0x2cb745){const _0x2c4e9d=a0_0x5ef1d8;for(let _0x1653bf=0x0;_0x1653bf<cliArgs[_0x2c4e9d(0x2c1)];_0x1653bf++){const _0x2a3e7d=cliArgs[_0x1653bf];if(_0x2a3e7d[_0x2c4e9d(0x2b5)]('--'+_0x2cb745+'='))return _0x2a3e7d['slice'](('--'+_0x2cb745+'=')[_0x2c4e9d(0x2c1)]);if(_0x2a3e7d==='--'+_0x2cb745&&_0x1653bf+0x1<cliArgs['length'])return cliArgs[_0x1653bf+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs['length'];i++){const arg=cliArgs[i];if(VERSION_FLAGS['has'](arg)||HELP_FLAGS[a0_0x5ef1d8(0x2a8)](arg))continue;if(arg[a0_0x5ef1d8(0x2b5)]('--api-key='))continue;if(arg==='--api-key'){i++;continue;}args[a0_0x5ef1d8(0x1c6)](arg);}const ALL_TOOLS=[a0_0x5ef1d8(0x258),a0_0x5ef1d8(0x2bc),a0_0x5ef1d8(0x281),a0_0x5ef1d8(0x216)],DEFAULT_TOOLS=[a0_0x5ef1d8(0x258),'warpgrep_codebase_search',a0_0x5ef1d8(0x281)],ENABLED_TOOLS=process['env'][a0_0x5ef1d8(0x23d)]?process[a0_0x5ef1d8(0x1b1)]['ENABLED_TOOLS']===a0_0x5ef1d8(0x273)?ALL_TOOLS:process[a0_0x5ef1d8(0x1b1)]['ENABLED_TOOLS'][a0_0x5ef1d8(0x1f7)](',')[a0_0x5ef1d8(0x1f1)](_0x50aa18=>_0x50aa18['trim']()):DEFAULT_TOOLS;console['error'](a0_0x5ef1d8(0x21b)+ENABLED_TOOLS['join'](',\x20'));const WORKSPACE_ROOT=process[a0_0x5ef1d8(0x1b1)][a0_0x5ef1d8(0x26a)]||process['env'][a0_0x5ef1d8(0x2c4)]||process['cwd'](),ENABLE_WORKSPACE_MODE=process['env']['ENABLE_WORKSPACE_MODE']!==a0_0x5ef1d8(0x238),MORPH_API_KEY=getCliArg(a0_0x5ef1d8(0x1c2))??process[a0_0x5ef1d8(0x1b1)][a0_0x5ef1d8(0x247)],MORPH_API_URL=process[a0_0x5ef1d8(0x1b1)][a0_0x5ef1d8(0x282)],MORPH_WARP_GREP_TIMEOUT=process[a0_0x5ef1d8(0x1b1)][a0_0x5ef1d8(0x27b)]?parseInt(process[a0_0x5ef1d8(0x1b1)][a0_0x5ef1d8(0x27b)],0xa):undefined;MORPH_API_KEY&&!MORPH_API_KEY[a0_0x5ef1d8(0x2b5)](a0_0x5ef1d8(0x235))&&!MORPH_API_KEY[a0_0x5ef1d8(0x2b5)]('morph-')&&console[a0_0x5ef1d8(0x237)](a0_0x5ef1d8(0x217));async function reportMorphError(_0x4c9737){const _0x3441b2=a0_0x5ef1d8;try{await a0_0x19a3cd[_0x3441b2(0x1e6)](_0x3441b2(0x2b8),{..._0x4c9737,'timestamp':new Date()[_0x3441b2(0x1c5)](),'source':_0x4c9737[_0x3441b2(0x268)]||_0x3441b2(0x1ae)},{'timeout':0x1388,'headers':{'Content-Type':_0x3441b2(0x1fd),'Authorization':_0x3441b2(0x25f)+MORPH_API_KEY}});}catch{}}args['length']===0x0&&!ENABLE_WORKSPACE_MODE&&(console[a0_0x5ef1d8(0x237)](a0_0x5ef1d8(0x249)),console['error'](a0_0x5ef1d8(0x1fb)),console['error'](a0_0x5ef1d8(0x29b)),console['error'](a0_0x5ef1d8(0x1cd)),console[a0_0x5ef1d8(0x237)](a0_0x5ef1d8(0x269)),console['error'](a0_0x5ef1d8(0x1d5)));function normalizePath(_0x240521){const _0x4356b0=a0_0x5ef1d8;return a0_0x5d50c6[_0x4356b0(0x1c3)](_0x240521);}function expandHome(_0x1858d3){const _0x35fff7=a0_0x5ef1d8;if(_0x1858d3[_0x35fff7(0x2b5)]('~/')||_0x1858d3==='~')return a0_0x5d50c6[_0x35fff7(0x299)](a0_0x3b9010[_0x35fff7(0x27a)](),_0x1858d3[_0x35fff7(0x25a)](0x1));return _0x1858d3;}let allowedDirectories=await Promise[a0_0x5ef1d8(0x273)](args[a0_0x5ef1d8(0x1f1)](async _0x22f5e4=>{const _0x1edad5=a0_0x5ef1d8,_0x10e06a=expandHome(_0x22f5e4),_0xdfc0ab=a0_0x5d50c6['resolve'](_0x10e06a);try{const _0x3398f2=await a0_0x4ce217[_0x1edad5(0x2b1)](_0xdfc0ab);return normalizePath(_0x3398f2);}catch(_0x3932e1){return normalizePath(_0xdfc0ab);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x5ef1d8(0x2c1)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories['push'](workspaceDir),console[a0_0x5ef1d8(0x237)](a0_0x5ef1d8(0x1ef)+workspaceDir+a0_0x5ef1d8(0x241)));}catch(a0_0x45c4a2){console['error'](a0_0x5ef1d8(0x2bd)+a0_0x45c4a2);}async function detectWorkspaceRoot(_0x44e943){const _0x6352d8=a0_0x5ef1d8;let _0x2a48d2=a0_0x5d50c6['resolve'](_0x44e943);const _0x3dd57b=[_0x6352d8(0x1b7),_0x6352d8(0x1d8),_0x6352d8(0x275),'Cargo.toml',_0x6352d8(0x1dc),_0x6352d8(0x1dd),_0x6352d8(0x223),_0x6352d8(0x23a),'composer.json'];while(_0x2a48d2!==a0_0x5d50c6[_0x6352d8(0x295)](_0x2a48d2)){for(const _0x4c88a4 of _0x3dd57b){const _0x3b3908=a0_0x5d50c6[_0x6352d8(0x299)](_0x2a48d2,_0x4c88a4);try{return await a0_0x4ce217[_0x6352d8(0x285)](_0x3b3908),normalizePath(_0x2a48d2);}catch{}}_0x2a48d2=a0_0x5d50c6[_0x6352d8(0x295)](_0x2a48d2);}return normalizePath(_0x44e943);}await Promise['all'](args[a0_0x5ef1d8(0x1f1)](async _0x365c26=>{const _0x127020=a0_0x5ef1d8;try{const _0x59fdc6=await a0_0x4ce217[_0x127020(0x20a)](expandHome(_0x365c26));!_0x59fdc6[_0x127020(0x1e9)]()&&(console[_0x127020(0x237)](_0x127020(0x29f)+_0x365c26+_0x127020(0x1c0)),process[_0x127020(0x1e3)](0x1));}catch(_0x3babb4){console[_0x127020(0x237)](_0x127020(0x248)+_0x365c26+':',_0x3babb4),process[_0x127020(0x1e3)](0x1);}}));function a0_0x2039(){const _0x1ea68d=['every','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','\x27\x20in\x20`','.\x20Path:\x20','object','setRequestHandler','\x20chars)','ENOENT','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','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','timings','.vscode','\x20valid\x20directories','constructor','string','pyproject.toml','go.mod','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','completed_with_file_errors','Unknown\x20tool:\x20','results','exit','unknown\x20error','description','post','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','12hOcFfs','isDirectory','assistant','errors','@morphllm/morphmcp\x20','read','message','Workspace\x20mode\x20enabled:\x20Using\x20','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','map','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','../package.json','--version','SubToolError','Fatal\x20error\x20running\x20server:','split','Failed\x20to\x20read\x20file:\x20','rerankScore','\x22>\x0aError\x20reading\x20file:\x20','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','inputSchema','application/json','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','query_type','listRoots','path','[warpgrep_github_search]\x20Failed\x20in\x20','completionId','repoId','\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)',',\x20removed\x20','\x20(new\x20file)','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','warn','stat','Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','Warning:\x20','morph-v3-fast','-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a','role','oninitialized','-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a','Here\x20is\x20the\x20content\x20of\x20files:\x0a','lines','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','codebase_search','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','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','1379584pEkYuI','content','Enabled\x20tools:\x20','Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','ms:\x0a\x0a','roots','morph-warp-grep-v1-1111v0','SymlinkError','.cursor','-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a','Please\x20provide\x20github\x20search\x20url\x20or\x20owner/repo\x20id','filter','etimedout','grep','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','match','Morph\x20Edit\x20Preview','stack','requiresApiKey','resolve','UnknownError','name','Rules:\x0a','instruction','log','sk-','dryRun','error','false','\x20error(s)','tsconfig.json','1797579CVuyWR','\x0a</file>','ENABLED_TOOLS','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','enum','.\x20Changes:\x20','\x20as\x20allowed\x20directory','toFixed','ReadError','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','indexOf','isArray','MORPH_API_KEY','Error\x20accessing\x20directory\x20','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','toLowerCase','Search\x20failed:\x20','params','GitHub\x20search\x20failed:\x20','\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo','Max\x20results\x20to\x20return','payload','limit','Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for','Failed\x20to\x20request\x20roots\x20from\x20client:','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','basename','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.','edit_file','readFile','slice','Morph\x20FastApply\x20failed\x20without\x20error\x20message','No\x20results\x20found\x20for\x20query:\x20\x22','targetDirectories','Morph\x20Edit\x20','Bearer\x20','FileReadError','finish','terminated','text','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','1735925AJaDqw','741503bxIcYc','substring','source','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','WORKSPACE_ROOT',',\x20modified\x20','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','branch','catch','724989lfCaKP','Relevant\x20context\x20found:','morph-mcp','ms:','all','messages','package.json','Warning:\x20Workspace\x20fallback\x20failed:\x20','linesAdded','593372fVFGOU','\x0aOptions:','homedir','MORPH_WARP_GREP_TIMEOUT','trim','setNotificationHandler','-\x20Grepped\x20\x27','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','FileNotFound','warpgrep_github_search','MORPH_API_URL','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','version','access','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','...','Specific\x20commit\x20hash\x20to\x20search','query','RipgrepNotAvailable','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','Fallback:\x20Using\x20workspace\x20root\x20','read\x20','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','node_modules','now','timed\x20out','Benefits:\x0a','Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20','terminationReason','dirname','Repository\x20identifier','files','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','join','array','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','describe','\x20\x20\x20','BinaryFile','Error:\x20','File\x20read\x20error:','repo_path','\x20for:\x20\x22','runWarpGrep_call','[could\x20not\x20read\x20file:\x20','success','unknown','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','has','code','stringify','</file>','search_string','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','Natural\x20language\x20query\x20to\x20search\x20for\x20code','includes','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','realpath','optional','sep','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','startsWith','added\x20','safeParse','https://morphllm.com/api/error-report','⚡\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a','4552320BTsKIA','2HWFSda','warpgrep_codebase_search','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','searchGitHub','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','WarpGrep\x20sub-tool\x20errors:\x20','length','number','commitHash','PWD','🎯\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a','Created\x20File','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','TimeoutError','ToolException','\x20results\x20in\x20','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','metadata','stats','WarpGrepError','<file\x20path=\x22','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','mcp-filesystem','Unknown\x20error','❌\x20Morph\x20Edit\x20Failed:\x20','env','RipgrepError','some','PathError','getClientCapabilities','completed','.git','data','Invalid\x20arguments:\x20','-\x20Listed\x20directory\x20`','timeout','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.','min','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','default','\x20is\x20not\x20a\x20directory','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','api-key','normalize','utf-8','toISOString','push','Parent\x20directory\x20does\x20not\x20exist:\x20','%\x20match)\x0a','github_url','-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a','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'];a0_0x2039=function(){return _0x1ea68d;};return a0_0x2039();}async function validatePath(_0x113caa){const _0x2fbf5a=a0_0x5ef1d8,_0x290110=expandHome(_0x113caa),_0x54caf8=a0_0x5d50c6[_0x2fbf5a(0x22f)](_0x290110);try{const _0x20a702=await a0_0x4ce217['realpath'](_0x54caf8);return _0x20a702;}catch(_0x6bc8d4){if(_0x6bc8d4[_0x2fbf5a(0x2a9)]===_0x2fbf5a(0x1d3)){const _0x433dca=a0_0x5d50c6['dirname'](_0x54caf8);try{const _0x1f45ae=await a0_0x4ce217[_0x2fbf5a(0x2b1)](_0x433dca);return a0_0x5d50c6[_0x2fbf5a(0x299)](_0x1f45ae,a0_0x5d50c6[_0x2fbf5a(0x256)](_0x54caf8));}catch{throw new Error(_0x2fbf5a(0x1c7)+_0x433dca);}}throw _0x6bc8d4;}}const MorphEditFileArgsSchema=z['object']({'path':z[a0_0x5ef1d8(0x1db)](),'code_edit':z[a0_0x5ef1d8(0x1db)]()['describe'](a0_0x5ef1d8(0x1d6)),'instruction':z[a0_0x5ef1d8(0x1db)]()[a0_0x5ef1d8(0x29c)](a0_0x5ef1d8(0x1f2)),'dryRun':z['boolean']()[a0_0x5ef1d8(0x1bf)](![])[a0_0x5ef1d8(0x29c)]('Preview\x20changes\x20without\x20applying\x20them.')}),WarpGrepArgsSchema=z['object']({'search_string':z[a0_0x5ef1d8(0x1db)]()['describe'](a0_0x5ef1d8(0x253)),'repo_path':z[a0_0x5ef1d8(0x1db)]()[a0_0x5ef1d8(0x29c)](a0_0x5ef1d8(0x1d4)),'query_type':z[a0_0x5ef1d8(0x23f)]([a0_0x5ef1d8(0x1bf),a0_0x5ef1d8(0x28f)])[a0_0x5ef1d8(0x2b2)]()['describe']('Query\x20type\x20hint.\x20Use\x20\x27node_modules\x27\x20when\x20searching\x20inside\x20node_modules\x20or\x20other\x20dependency\x20directories\x20that\x20are\x20normally\x20excluded.')}),WarpGrepGitHubArgsSchema=z['object']({'search_string':z[a0_0x5ef1d8(0x1db)]()[a0_0x5ef1d8(0x29c)](a0_0x5ef1d8(0x253)),'github_url':z[a0_0x5ef1d8(0x1db)]()[a0_0x5ef1d8(0x2b2)]()[a0_0x5ef1d8(0x29c)](a0_0x5ef1d8(0x1bc)),'owner_repo':z[a0_0x5ef1d8(0x1db)]()['optional']()['describe']('Repository\x20owner/repo\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.'),'branch':z[a0_0x5ef1d8(0x1db)]()[a0_0x5ef1d8(0x2b2)]()[a0_0x5ef1d8(0x29c)](a0_0x5ef1d8(0x21c))}),CodebaseSearchArgsSchema=z[a0_0x5ef1d8(0x1d0)]({'query':z[a0_0x5ef1d8(0x1db)]()[a0_0x5ef1d8(0x29c)](a0_0x5ef1d8(0x2ae)),'repoId':z['string']()[a0_0x5ef1d8(0x29c)](a0_0x5ef1d8(0x296)),'branch':z['string']()[a0_0x5ef1d8(0x2b2)]()['describe'](a0_0x5ef1d8(0x24a)),'commitHash':z['string']()[a0_0x5ef1d8(0x2b2)]()[a0_0x5ef1d8(0x29c)](a0_0x5ef1d8(0x288)),'targetDirectories':z[a0_0x5ef1d8(0x29a)](z[a0_0x5ef1d8(0x1db)]())[a0_0x5ef1d8(0x1bf)]([])[a0_0x5ef1d8(0x29c)](a0_0x5ef1d8(0x286)),'limit':z[a0_0x5ef1d8(0x2c2)]()[a0_0x5ef1d8(0x2b2)]()[a0_0x5ef1d8(0x1bf)](0xa)[a0_0x5ef1d8(0x29c)](a0_0x5ef1d8(0x250))}),server=new Server({'name':a0_0x5ef1d8(0x271),'version':'0.2.0'},{'capabilities':{'tools':{}}});server[a0_0x5ef1d8(0x1d1)](ListToolsRequestSchema,async()=>{const _0x9ef3a0=a0_0x5ef1d8,_0x56ab73=[{'name':'edit_file','description':_0x9ef3a0(0x1be)+_0x9ef3a0(0x1df)+'🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a'+_0x9ef3a0(0x27f)+_0x9ef3a0(0x292)+_0x9ef3a0(0x255)+'-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a'+_0x9ef3a0(0x21d)+_0x9ef3a0(0x208)+_0x9ef3a0(0x1de)+_0x9ef3a0(0x2b4)+_0x9ef3a0(0x1fe)+'For\x20deletions:\x0a'+_0x9ef3a0(0x283)+_0x9ef3a0(0x1ca)+_0x9ef3a0(0x232)+'-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a'+_0x9ef3a0(0x22a)+_0x9ef3a0(0x2ad)+_0x9ef3a0(0x23e)+_0x9ef3a0(0x298)+'-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a'+_0x9ef3a0(0x28b),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':_0x9ef3a0(0x2bc),'description':'A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20'+_0x9ef3a0(0x1cb)+_0x9ef3a0(0x218)+'Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20'+'You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.'+_0x9ef3a0(0x215)+_0x9ef3a0(0x1a8)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':GITHUB_SEARCH_TOOL_NAME,'description':GITHUB_SEARCH_DESCRIPTION,'inputSchema':zodToJsonSchema(WarpGrepGitHubArgsSchema),'requiresApiKey':!![]},{'name':_0x9ef3a0(0x216),'description':'**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a'+_0x9ef3a0(0x2b9)+_0x9ef3a0(0x2c5)+_0x9ef3a0(0x292)+_0x9ef3a0(0x20f)+_0x9ef3a0(0x224)+'-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a'+_0x9ef3a0(0x212)+_0x9ef3a0(0x20b)+_0x9ef3a0(0x293)+_0x9ef3a0(0x1ad),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x1fbfd0=_0x56ab73[_0x9ef3a0(0x226)](_0x3fb40f=>{const _0x535217=_0x9ef3a0;if(!ENABLED_TOOLS[_0x535217(0x2af)](_0x3fb40f[_0x535217(0x231)]))return![];if(_0x535217(0x22e)in _0x3fb40f&&_0x3fb40f['requiresApiKey']&&!MORPH_API_KEY)return console[_0x535217(0x237)]('Warning:\x20'+_0x3fb40f[_0x535217(0x231)]+_0x535217(0x28e)),![];return!![];});return{'tools':_0x1fbfd0[_0x9ef3a0(0x1f1)](_0xa0de98=>({'name':_0xa0de98['name'],'description':_0xa0de98[_0x9ef3a0(0x1e5)],'inputSchema':_0xa0de98[_0x9ef3a0(0x1fc)]}))};}),server[a0_0x5ef1d8(0x1d1)](CallToolRequestSchema,async _0x537ea0=>{const _0x3717ce=a0_0x5ef1d8;try{const {name:_0x2b3512,arguments:_0x55511b}=_0x537ea0[_0x3717ce(0x24d)];switch(_0x2b3512){case _0x3717ce(0x258):{const _0x425172=MorphEditFileArgsSchema[_0x3717ce(0x2b7)](_0x55511b);if(!_0x425172[_0x3717ce(0x2a5)])throw new Error(_0x3717ce(0x1c1)+_0x425172[_0x3717ce(0x237)]);const _0x347bc0=await validatePath(_0x425172[_0x3717ce(0x1b8)][_0x3717ce(0x201)]);let _0x5b77c2=null,_0x5411d1=!![],_0x450cbc=null;try{_0x5b77c2=await a0_0x4ce217['readFile'](_0x347bc0,_0x3717ce(0x1c4));}catch(_0x3ec849){const _0x104551=_0x3ec849[_0x3717ce(0x2a9)];_0x104551==='ENOENT'?(_0x5411d1=![],_0x5b77c2=''):(_0x450cbc=_0x3717ce(0x1f8)+(_0x104551||_0x3717ce(0x2a6))+'\x20-\x20'+(_0x3ec849 instanceof Error?_0x3ec849[_0x3717ce(0x1ee)]:String(_0x3ec849)),console['error'](_0x3717ce(0x20d)+_0x450cbc));}let _0x1ace39;try{const _0x1065c0=MORPH_API_KEY;if(!_0x1065c0)throw new Error(_0x3717ce(0x229));const _0x27b3a9=a0_0x5d50c6['dirname'](_0x347bc0),_0x45aa1f=a0_0x5d50c6[_0x3717ce(0x256)](_0x347bc0),_0x1dbdd3=await executeEditFile({'target_filepath':_0x45aa1f,'code_edit':_0x425172[_0x3717ce(0x1b8)]['code_edit'],'instructions':_0x425172['data'][_0x3717ce(0x233)]},{'morphApiKey':_0x1065c0,'morphApiUrl':MORPH_API_URL,'baseDir':_0x27b3a9,'autoWrite':!_0x425172[_0x3717ce(0x1b8)]['dryRun'],'generateUdiff':![],'debug':![]});_0x1ace39=_0x1dbdd3[_0x3717ce(0x203)];if(!_0x1dbdd3[_0x3717ce(0x2a5)])throw new Error(_0x1dbdd3[_0x3717ce(0x237)]||_0x3717ce(0x25b));const _0x1567e4=_0x1dbdd3['changes'],_0x44c738=_0x3717ce(0x2b6)+_0x1567e4[_0x3717ce(0x277)]+_0x3717ce(0x206)+_0x1567e4['linesRemoved']+_0x3717ce(0x26b)+_0x1567e4['linesModified'];if(_0x425172[_0x3717ce(0x1b8)]['dryRun'])return{'content':[{'type':_0x3717ce(0x263),'text':_0x3717ce(0x22c)+(_0x5411d1?'':_0x3717ce(0x207))+':\x20'+_0x425172[_0x3717ce(0x1b8)][_0x3717ce(0x233)]+'.\x20Changes:\x20'+_0x44c738+_0x3717ce(0x1cf)+_0x425172['data'][_0x3717ce(0x201)]+'.'}]};return{'content':[{'type':_0x3717ce(0x263),'text':_0x3717ce(0x25e)+(_0x5411d1?'Applied':_0x3717ce(0x2c6))+':\x20'+_0x425172[_0x3717ce(0x1b8)][_0x3717ce(0x233)]+_0x3717ce(0x240)+_0x44c738+'.\x20Path:\x20'+_0x425172['data']['path']+'.'}]};}catch(_0x508f61){const _0x5b6d25=_0x508f61 instanceof Error?_0x508f61[_0x3717ce(0x1ee)]:String(_0x508f61);return reportMorphError({'error_message':_0x5b6d25,'error_type':_0x508f61 instanceof Error?_0x508f61[_0x3717ce(0x1da)][_0x3717ce(0x231)]:_0x3717ce(0x230),'context':{'tool':_0x3717ce(0x258),'completion_id':_0x1ace39,'file_path':_0x425172[_0x3717ce(0x1b8)][_0x3717ce(0x201)],'validated_path':_0x347bc0,'instruction':_0x425172[_0x3717ce(0x1b8)][_0x3717ce(0x233)],'model':_0x3717ce(0x20e),'dry_run':_0x425172[_0x3717ce(0x1b8)][_0x3717ce(0x236)],'file_exists':_0x5411d1,'file_read_error':_0x450cbc,'file_readable':_0x5b77c2!==null,'request_content':{'path':_0x425172[_0x3717ce(0x1b8)][_0x3717ce(0x201)],'code_edit':_0x425172['data']['code_edit'],'instruction':_0x425172[_0x3717ce(0x1b8)]['instruction'],'original_code':_0x5b77c2!==null?_0x5b77c2[_0x3717ce(0x2c1)]>0xc350?_0x5b77c2[_0x3717ce(0x267)](0x0,0xc350)+'\x0a...\x20(truncated,\x20total:\x20'+_0x5b77c2['length']+_0x3717ce(0x1d2):_0x5b77c2:_0x3717ce(0x2a4)+(_0x450cbc||_0x3717ce(0x1e4))+']','original_code_length':_0x5b77c2?.[_0x3717ce(0x2c1)]??0x0,'model':_0x3717ce(0x20e),'dry_run':_0x425172[_0x3717ce(0x1b8)][_0x3717ce(0x236)]}},'stack_trace':_0x508f61 instanceof Error?_0x508f61[_0x3717ce(0x22d)]:undefined,'source':'mcp-filesystem'})[_0x3717ce(0x26e)](()=>{}),{'content':[{'type':'text','text':_0x3717ce(0x1b0)+_0x5b6d25}],'isError':!![]};}}case _0x3717ce(0x2bc):{const _0x14a260=WarpGrepArgsSchema[_0x3717ce(0x2b7)](_0x55511b);if(!_0x14a260[_0x3717ce(0x2a5)])return{'content':[{'type':_0x3717ce(0x263),'text':'Invalid\x20arguments:\x20'+_0x14a260['error']}],'isError':!![]};const _0xfaf413=_0x3ff138=>{const _0x1300e8=_0x3717ce,_0x1a4aca=[];for(const _0x3bb036 of _0x3ff138||[]){const _0x5c46b6=_0x3bb036[_0x1300e8(0x210)],_0x211fc7=_0x3bb036[_0x1300e8(0x21a)];if(_0x5c46b6===_0x1300e8(0x1ea)&&_0x211fc7){const _0x29b166=_0x211fc7[_0x1300e8(0x1f7)]('\x0a')['filter'](_0x1f68c1=>_0x1f68c1[_0x1300e8(0x27c)]());for(const _0x4d474e of _0x29b166){const _0xacf422=_0x4d474e[_0x1300e8(0x22b)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0xacf422){_0x1a4aca[_0x1300e8(0x1c6)]('grep\x20\x27'+_0xacf422[0x1]+'\x27\x20'+_0xacf422[0x2]);continue;}const _0x2084a5=_0x4d474e[_0x1300e8(0x22b)](/^read\s+(.+)$/);if(_0x2084a5){_0x1a4aca[_0x1300e8(0x1c6)](_0x1300e8(0x28d)+_0x2084a5[0x1]);continue;}const _0x58149c=_0x4d474e[_0x1300e8(0x22b)](/^list_directory\s+(.+)$/);if(_0x58149c){_0x1a4aca[_0x1300e8(0x1c6)]('list_directory\x20'+_0x58149c[0x1]);continue;}}}}return _0x1a4aca;},_0xc636fc=_0x39e8d0=>{const _0x2b433e=_0x3717ce,_0x452500=[];if(!_0x39e8d0||!Array[_0x2b433e(0x246)](_0x39e8d0))return _0x452500;const _0x121438=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':_0x2b433e(0x280),'tool':_0x2b433e(0x1ed)},{'pattern':/\[PATH ERROR\]/,'error_type':_0x2b433e(0x1b4),'tool':_0x2b433e(0x1ed)},{'pattern':/\[READ ERROR\]/,'error_type':'ReadError','tool':'read'},{'pattern':/\[UNREADABLE FILE\]/,'error_type':_0x2b433e(0x29e),'tool':'read'},{'pattern':/\[RIPGREP ERROR\]/,'error_type':_0x2b433e(0x1b2),'tool':_0x2b433e(0x228)},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x2b433e(0x28a),'tool':_0x2b433e(0x228)},{'pattern':/\[BINARY FILE\]/,'error_type':_0x2b433e(0x29e),'tool':_0x2b433e(0x1ed)},{'pattern':/\[SYMLINK\]/,'error_type':_0x2b433e(0x222),'tool':'read'},{'pattern':/not a text file/,'error_type':_0x2b433e(0x29e),'tool':_0x2b433e(0x1ed)},{'pattern':/symbolic link/,'error_type':_0x2b433e(0x222),'tool':_0x2b433e(0x1ed)},{'pattern':/Error reading file:/,'error_type':_0x2b433e(0x243),'tool':_0x2b433e(0x1ed)},{'pattern':/status="error"/,'error_type':_0x2b433e(0x2c9),'tool':_0x2b433e(0x2a6)}];let _0x1df4a8=0x0;for(const _0x3d3bdc of _0x39e8d0){if(_0x3d3bdc[_0x2b433e(0x210)]==='user'){_0x1df4a8++;const _0x3bc3f4=_0x3d3bdc['content'];if(!_0x3bc3f4||typeof _0x3bc3f4!==_0x2b433e(0x1db))continue;for(const {pattern:_0x394c02,error_type:_0x5c8f59,tool:_0x2fcec8}of _0x121438){const _0x4571f1=_0x3bc3f4[_0x2b433e(0x22b)](new RegExp(_0x394c02[_0x2b433e(0x268)],'g'));if(_0x4571f1)for(const _0x12e125 of _0x4571f1){const _0x3c27fe=_0x3bc3f4[_0x2b433e(0x245)](_0x12e125),_0x285734=_0x3bc3f4['substring'](_0x3c27fe,Math[_0x2b433e(0x1bd)](_0x3c27fe+0xc8,_0x3bc3f4[_0x2b433e(0x2c1)]));_0x452500['push']({'tool':_0x2fcec8,'error_type':_0x5c8f59,'error_message':_0x285734['split']('\x0a')[0x0],'turn':_0x1df4a8});}}}}return _0x452500;};try{const _0x5d480e=a0_0x5d50c6[_0x3717ce(0x22f)](_0x14a260[_0x3717ce(0x1b8)][_0x3717ce(0x2a1)]),_0x2d21e1=_0x14a260[_0x3717ce(0x1b8)][_0x3717ce(0x1ff)],_0x3c1db8=_0x2d21e1==='node_modules'?{'allowNames':['node_modules']}:undefined,_0x44b006=new LocalRipgrepProvider(_0x5d480e,undefined,_0x3c1db8),_0x414302=await runWarpGrep({'query':_0x14a260['data']['search_string'],'repoRoot':_0x5d480e,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x44b006,'query_type':_0x2d21e1}),_0x4c911e=_0xc636fc(_0x414302[_0x3717ce(0x274)]);_0x4c911e['length']>0x0&&reportMorphError({'error_message':_0x3717ce(0x2c0)+_0x4c911e[_0x3717ce(0x2c1)]+_0x3717ce(0x239),'error_type':_0x3717ce(0x1f5),'level':_0x3717ce(0x209),'tool':'warpgrep_codebase_search','context':{'repo_path':_0x14a260['data'][_0x3717ce(0x2a1)],'query':_0x14a260[_0x3717ce(0x1b8)][_0x3717ce(0x2ac)],'model':'morph-warp-grep-v1-1111v0','termination_reason':_0x414302['terminationReason'],'sub_tool_errors':_0x4c911e,'timings':_0x414302[_0x3717ce(0x1d7)],'tool_calls':_0xfaf413(_0x414302[_0x3717ce(0x274)]),'messages':_0x414302[_0x3717ce(0x274)]?.['map'](_0x45b0da=>({'role':_0x45b0da[_0x3717ce(0x210)],'content':_0x45b0da['content']}))},'source':_0x3717ce(0x1ae)})[_0x3717ce(0x26e)](()=>{});let _0x1d3f9a='';if(_0x414302[_0x3717ce(0x294)]===_0x3717ce(0x1b6)&&_0x414302[_0x3717ce(0x261)]?.[_0x3717ce(0x1a9)]?.[_0x3717ce(0x297)]){const _0x35e69e=_0x414302[_0x3717ce(0x261)]['metadata'][_0x3717ce(0x297)];if(_0x35e69e['length']===0x0)return _0x1d3f9a=_0x414302[_0x3717ce(0x261)][_0x3717ce(0x251)]||'No\x20relevant\x20code\x20found\x20for\x20the\x20query.',{'content':[{'type':_0x3717ce(0x263),'text':_0x1d3f9a}]};const _0x2a76f4=[],_0x1c8e41=[_0x3717ce(0x20c)];for(const _0x32a762 of _0x414302['messages']){const _0x511d4e=_0x32a762[_0x3717ce(0x210)],_0x35b758=_0x32a762[_0x3717ce(0x21a)];if(_0x511d4e==='assistant'&&_0x35b758){const _0x12ac8a=_0x35b758['split']('\x0a')[_0x3717ce(0x226)](_0x25a28c=>_0x25a28c[_0x3717ce(0x27c)]());for(const _0x1a7523 of _0x12ac8a){const _0x1fcce7=_0x1a7523[_0x3717ce(0x22b)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x1fcce7){_0x1c8e41['push'](_0x3717ce(0x27e)+_0x1fcce7[0x1]+_0x3717ce(0x1ce)+_0x1fcce7[0x2]+'`');continue;}const _0x18b52e=_0x1a7523[_0x3717ce(0x22b)](/^read\s+(.+)$/);if(_0x18b52e){_0x1c8e41[_0x3717ce(0x1c6)]('-\x20Read\x20file\x20`'+_0x18b52e[0x1]+'`');continue;}const _0x21f023=_0x1a7523[_0x3717ce(0x22b)](/^list_directory\s+(.+)$/);if(_0x21f023){_0x1c8e41[_0x3717ce(0x1c6)](_0x3717ce(0x1ba)+_0x21f023[0x1]+'`');continue;}}}}_0x2a76f4[_0x3717ce(0x1c6)](_0x1c8e41['join']('\x0a'));const _0x558168=['',_0x3717ce(0x270)];for(const _0x26cc40 of _0x35e69e){if(_0x26cc40[_0x3717ce(0x214)]==='*')_0x558168[_0x3717ce(0x1c6)]('-\x20'+_0x26cc40[_0x3717ce(0x201)]+':*');else{if(Array[_0x3717ce(0x246)](_0x26cc40['lines'])){const _0x47e323=_0x26cc40['lines'][_0x3717ce(0x1f1)](([_0x4b2cb8,_0x40c383])=>{if(_0x4b2cb8===_0x40c383)return''+_0x4b2cb8;return _0x4b2cb8+'-'+_0x40c383;});_0x558168[_0x3717ce(0x1c6)]('-\x20'+_0x26cc40['path']+':'+_0x47e323[_0x3717ce(0x299)](','));}else _0x558168[_0x3717ce(0x1c6)]('-\x20'+_0x26cc40[_0x3717ce(0x201)]+':*');}}_0x558168['push'](''),_0x2a76f4[_0x3717ce(0x1c6)](_0x558168[_0x3717ce(0x299)]('\x0a')),_0x2a76f4[_0x3717ce(0x1c6)](_0x3717ce(0x213));const _0x285bca=[];for(const _0x1010d1 of _0x35e69e){let _0x41419f=a0_0x5d50c6[_0x3717ce(0x22f)](_0x14a260[_0x3717ce(0x1b8)][_0x3717ce(0x2a1)],_0x1010d1['path']),_0x13f321=null,_0x142c50=null;try{_0x13f321=await a0_0x4ce217[_0x3717ce(0x259)](_0x41419f,{'encoding':_0x3717ce(0x1c4)});}catch(_0x57c56d){const _0x33e49f=fixPathRepetition(_0x41419f);if(_0x33e49f)try{_0x13f321=await a0_0x4ce217[_0x3717ce(0x259)](_0x33e49f,{'encoding':'utf-8'}),_0x41419f=_0x33e49f;}catch{_0x142c50=_0x57c56d instanceof Error?_0x57c56d:new Error(String(_0x57c56d));}else _0x142c50=_0x57c56d instanceof Error?_0x57c56d:new Error(String(_0x57c56d));}if(_0x13f321!==null){const _0x56b655=_0x13f321[_0x3717ce(0x1f7)](/\r?\n/),_0x3d3b0f=['<file\x20path=\x22'+_0x1010d1[_0x3717ce(0x201)]+'\x22>'];if(_0x1010d1[_0x3717ce(0x214)]==='*'||!Array[_0x3717ce(0x246)](_0x1010d1[_0x3717ce(0x214)]))for(let _0x3c05f2=0x1;_0x3c05f2<=_0x56b655[_0x3717ce(0x2c1)];_0x3c05f2++){const _0x3c5913=_0x56b655[_0x3c05f2-0x1];_0x3d3b0f[_0x3717ce(0x1c6)](_0x3c05f2+'|\x20'+_0x3c5913);}else for(const [_0x201e1f,_0x18eb54]of _0x1010d1[_0x3717ce(0x214)]){_0x3d3b0f['length']>0x1&&_0x3d3b0f['push']('');for(let _0x10e838=_0x201e1f;_0x10e838<=_0x18eb54&&_0x10e838<=_0x56b655[_0x3717ce(0x2c1)];_0x10e838++){const _0x2ff84a=_0x56b655[_0x10e838-0x1];_0x3d3b0f[_0x3717ce(0x1c6)](_0x10e838+'|\x20'+_0x2ff84a);}}_0x3d3b0f[_0x3717ce(0x1c6)](_0x3717ce(0x2ab)),_0x285bca['push'](_0x3d3b0f['join']('\x0a'));}else _0x285bca[_0x3717ce(0x1c6)](_0x3717ce(0x1ac)+_0x1010d1[_0x3717ce(0x201)]+_0x3717ce(0x1fa)+(_0x142c50?.[_0x3717ce(0x1ee)]||_0x3717ce(0x1af))+_0x3717ce(0x23c));}_0x2a76f4['push'](_0x285bca[_0x3717ce(0x299)]('\x0a\x0a')),_0x1d3f9a=_0x2a76f4['join']('\x0a');const _0x22e1cf=_0x414302[_0x3717ce(0x1eb)]?.['filter'](_0xa2bcfd=>_0xa2bcfd['message']?.[_0x3717ce(0x2b5)](_0x3717ce(0x2a0)))||[];if(_0x22e1cf[_0x3717ce(0x2c1)]>0x0){const _0x1f8fd1=_0x22e1cf[_0x3717ce(0x1f1)](_0x256814=>_0x256814[_0x3717ce(0x1ee)])[_0x3717ce(0x299)](';\x20');reportMorphError({'error_message':_0x1f8fd1,'error_type':_0x3717ce(0x260),'context':{'tool':_0x3717ce(0x2bc),'repo_path':_0x14a260['data']['repo_path'],'query':_0x14a260[_0x3717ce(0x1b8)]['search_string'],'model':'morph-warp-grep-v1-1111v0','termination_reason':_0x3717ce(0x1e0),'error_count':_0x22e1cf[_0x3717ce(0x2c1)],'is_timeout':![],'timings':_0x414302['timings'],'files_attempted':_0x35e69e[_0x3717ce(0x1f1)](_0x50b603=>({'path':_0x50b603[_0x3717ce(0x201)],'lines':_0x50b603[_0x3717ce(0x214)]})),'tool_calls':_0xfaf413(_0x414302['messages']),'messages':_0x414302[_0x3717ce(0x274)]?.['map'](_0x3d47b6=>({'role':_0x3d47b6[_0x3717ce(0x210)],'content':_0x3d47b6['content']})),'request_content':{'query':_0x14a260[_0x3717ce(0x1b8)][_0x3717ce(0x2ac)],'repo_path':_0x14a260['data'][_0x3717ce(0x2a1)],'repoRoot':a0_0x5d50c6[_0x3717ce(0x22f)](_0x14a260[_0x3717ce(0x1b8)]['repo_path']),'model':'morph-warp-grep-v1-1111v0'}},'source':_0x3717ce(0x1ae)})['catch'](()=>{});}}else{if(_0x414302[_0x3717ce(0x294)]===_0x3717ce(0x262)&&_0x414302['errors'][_0x3717ce(0x2c1)]>0x0){const _0x10b627=_0x414302[_0x3717ce(0x1eb)]['map'](_0x283b93=>_0x283b93[_0x3717ce(0x1ee)])['join'](';\x20');_0x1d3f9a=_0x3717ce(0x29f)+_0x10b627;const _0xbd4dbb=_0x10b627[_0x3717ce(0x24b)]()['includes'](_0x3717ce(0x1bb))||_0x10b627[_0x3717ce(0x24b)]()[_0x3717ce(0x2af)](_0x3717ce(0x291))||_0x10b627[_0x3717ce(0x24b)]()[_0x3717ce(0x2af)](_0x3717ce(0x227)),_0x2467a5=_0x414302[_0x3717ce(0x261)]?.[_0x3717ce(0x1a9)]?.['files'],_0x46cf04=_0x414302['errors'][0x0];reportMorphError({'error_message':_0x10b627,'error_type':_0xbd4dbb?_0x3717ce(0x2c8):_0x46cf04?.[_0x3717ce(0x1da)]?.['name']||_0x3717ce(0x1ab),'context':{'tool':_0x3717ce(0x2bc),'repo_path':_0x14a260['data']['repo_path'],'query':_0x14a260[_0x3717ce(0x1b8)][_0x3717ce(0x2ac)],'model':_0x3717ce(0x221),'termination_reason':_0x414302[_0x3717ce(0x294)],'error_count':_0x414302['errors']['length'],'is_timeout':_0xbd4dbb,'timings':_0x414302[_0x3717ce(0x1d7)],'files_attempted':_0x2467a5?.['map'](_0x31ab36=>({'path':_0x31ab36[_0x3717ce(0x201)],'lines':_0x31ab36['lines']})),'tool_calls':_0xfaf413(_0x414302[_0x3717ce(0x274)]),'messages':_0x414302[_0x3717ce(0x274)]?.[_0x3717ce(0x1f1)](_0x3bacd8=>({'role':_0x3bacd8['role'],'content':_0x3bacd8[_0x3717ce(0x21a)]})),'request_content':{'query':_0x14a260[_0x3717ce(0x1b8)][_0x3717ce(0x2ac)],'repo_path':_0x14a260[_0x3717ce(0x1b8)][_0x3717ce(0x2a1)],'repoRoot':a0_0x5d50c6['resolve'](_0x14a260[_0x3717ce(0x1b8)][_0x3717ce(0x2a1)]),'model':_0x3717ce(0x221)}},'stack_trace':_0x46cf04?.[_0x3717ce(0x22d)]||undefined,'source':_0x3717ce(0x1ae)})[_0x3717ce(0x26e)](()=>{});}else _0x1d3f9a='Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.';}return{'content':[{'type':_0x3717ce(0x263),'text':_0x1d3f9a}]};}catch(_0x258832){const _0x5160e3=_0x258832 instanceof Error?_0x258832['message']:String(_0x258832),_0x3b662f=_0x5160e3['toLowerCase']()['includes'](_0x3717ce(0x1bb))||_0x5160e3[_0x3717ce(0x24b)]()[_0x3717ce(0x2af)](_0x3717ce(0x291))||_0x5160e3['toLowerCase']()[_0x3717ce(0x2af)](_0x3717ce(0x227))||_0x258832 instanceof Error&&_0x258832[_0x3717ce(0x231)]==='TimeoutError';return reportMorphError({'error_message':_0x5160e3,'error_type':_0x3b662f?_0x3717ce(0x2c8):_0x258832 instanceof Error?_0x258832[_0x3717ce(0x1da)]['name']:'UnknownError','context':{'tool':_0x3717ce(0x2bc),'repo_path':_0x14a260[_0x3717ce(0x1b8)][_0x3717ce(0x2a1)],'query':_0x14a260['data']['search_string'],'model':_0x3717ce(0x221),'is_timeout':_0x3b662f,'exception_phase':_0x3717ce(0x2a3),'request_content':{'query':_0x14a260[_0x3717ce(0x1b8)][_0x3717ce(0x2ac)],'repo_path':_0x14a260[_0x3717ce(0x1b8)]['repo_path'],'repoRoot':a0_0x5d50c6[_0x3717ce(0x22f)](_0x14a260[_0x3717ce(0x1b8)][_0x3717ce(0x2a1)]),'model':_0x3717ce(0x221)}},'stack_trace':_0x258832 instanceof Error?_0x258832['stack']:undefined,'source':_0x3717ce(0x1ae)})['catch'](()=>{}),{'content':[{'type':_0x3717ce(0x263),'text':'Error\x20running\x20fast\x20context\x20search:\x20'+_0x5160e3}],'isError':![]};}}case _0x3717ce(0x281):{const _0x3ae9b2=WarpGrepGitHubArgsSchema[_0x3717ce(0x2b7)](_0x55511b);if(!_0x3ae9b2[_0x3717ce(0x2a5)])return{'content':[{'type':_0x3717ce(0x263),'text':_0x3717ce(0x1b9)+_0x3ae9b2['error']}],'isError':!![]};const _0x3a5120=_0x3ae9b2[_0x3717ce(0x1b8)][_0x3717ce(0x1c9)]||_0x3ae9b2['data']['owner_repo'];if(!_0x3a5120)return{'content':[{'type':_0x3717ce(0x263),'text':_0x3717ce(0x225)}],'isError':!![]};const _0x3a784c=MORPH_API_KEY;if(!_0x3a784c)throw new Error(_0x3717ce(0x229));const _0x56d3a5=Date[_0x3717ce(0x290)]();console[_0x3717ce(0x237)]('[warpgrep_github_search]\x20Searching\x20'+_0x3a5120+_0x3717ce(0x2a2)+_0x3ae9b2[_0x3717ce(0x1b8)][_0x3717ce(0x2ac)]+'\x22');try{const _0x4e2cde=new WarpGrepClient({'morphApiKey':_0x3a784c,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0x248cbb=await _0x4e2cde[_0x3717ce(0x2be)]({'query':_0x3ae9b2['data']['search_string'],'github':_0x3a5120,'branch':_0x3ae9b2[_0x3717ce(0x1b8)][_0x3717ce(0x26d)]}),_0x32e3d9=Date[_0x3717ce(0x290)]()-_0x56d3a5;console[_0x3717ce(0x237)]('[warpgrep_github_search]\x20Done\x20in\x20'+_0x32e3d9+'ms.\x20Success:\x20'+_0x248cbb[_0x3717ce(0x2a5)]);const _0x322607=formatResult(_0x248cbb);return{'content':[{'type':'text','text':_0x322607}]};}catch(_0xb62c98){const _0x1269c6=Date[_0x3717ce(0x290)]()-_0x56d3a5,_0x352f65=_0xb62c98 instanceof Error?_0xb62c98[_0x3717ce(0x1ee)]:String(_0xb62c98);return console[_0x3717ce(0x237)](_0x3717ce(0x202)+_0x1269c6+_0x3717ce(0x272),_0x352f65),reportMorphError({'error_message':_0x352f65,'error_type':_0xb62c98 instanceof Error?_0xb62c98[_0x3717ce(0x1da)][_0x3717ce(0x231)]:'UnknownError','context':{'tool':_0x3717ce(0x281),'github_url':_0x3a5120,'search_string':_0x3ae9b2[_0x3717ce(0x1b8)][_0x3717ce(0x2ac)],'branch':_0x3ae9b2[_0x3717ce(0x1b8)]['branch']},'stack_trace':_0xb62c98 instanceof Error?_0xb62c98[_0x3717ce(0x22d)]:undefined,'source':_0x3717ce(0x1ae),'tool':_0x3717ce(0x281),'latency_ms':_0x1269c6})[_0x3717ce(0x26e)](()=>{}),{'content':[{'type':_0x3717ce(0x263),'text':_0x3717ce(0x24e)+_0x352f65}],'isError':![]};}}case'codebase_search':{const _0x5ba5c=CodebaseSearchArgsSchema[_0x3717ce(0x2b7)](_0x55511b);if(!_0x5ba5c[_0x3717ce(0x2a5)])return{'content':[{'type':_0x3717ce(0x263),'text':'Invalid\x20arguments:\x20'+_0x5ba5c[_0x3717ce(0x237)]}],'isError':!![]};try{const _0x73254b=MORPH_API_KEY;if(!_0x73254b)throw new Error('MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.');const _0x4818ea=_0x5ba5c[_0x3717ce(0x1b8)][_0x3717ce(0x25d)],_0x4c4d51=await executeCodebaseSearch({'query':_0x5ba5c['data'][_0x3717ce(0x289)],'target_directories':_0x4818ea,'limit':_0x5ba5c[_0x3717ce(0x1b8)][_0x3717ce(0x252)]},{'apiKey':_0x73254b,'repoId':_0x5ba5c[_0x3717ce(0x1b8)][_0x3717ce(0x204)],'branch':_0x5ba5c[_0x3717ce(0x1b8)][_0x3717ce(0x26d)],'commitHash':_0x5ba5c[_0x3717ce(0x1b8)][_0x3717ce(0x2c3)],'debug':![]});if(!_0x4c4d51[_0x3717ce(0x2a5)])return{'content':[{'type':'text','text':_0x3717ce(0x24c)+_0x4c4d51[_0x3717ce(0x237)]}],'isError':!![]};const _0x482f64=_0x4c4d51['results'][_0x3717ce(0x2c1)]===0x0?_0x3717ce(0x25c)+_0x5ba5c[_0x3717ce(0x1b8)][_0x3717ce(0x289)]+'\x22':'Found\x20'+_0x4c4d51[_0x3717ce(0x1e2)]['length']+_0x3717ce(0x2ca)+_0x4c4d51[_0x3717ce(0x1aa)]['searchTimeMs']+_0x3717ce(0x21f)+_0x4c4d51[_0x3717ce(0x1e2)]['map']((_0x41272a,_0x1b70ca)=>_0x1b70ca+0x1+'.\x20'+_0x41272a['filepath']+'\x20('+(_0x41272a[_0x3717ce(0x1f9)]*0x64)[_0x3717ce(0x242)](0x1)+_0x3717ce(0x1c8)+('\x20\x20\x20Lines\x20'+_0x41272a['startLine']+'-'+_0x41272a['endLine']+'\x0a')+(_0x3717ce(0x29d)+_0x41272a['content'][_0x3717ce(0x267)](0x0,0xc8)+(_0x41272a[_0x3717ce(0x21a)][_0x3717ce(0x2c1)]>0xc8?_0x3717ce(0x287):'')+'\x0a'))[_0x3717ce(0x299)]('\x0a');return{'content':[{'type':_0x3717ce(0x263),'text':_0x482f64}]};}catch(_0x25422e){const _0x512f1b=_0x25422e instanceof Error?_0x25422e['message']:String(_0x25422e);return reportMorphError({'error_message':_0x512f1b,'error_type':_0x25422e instanceof Error?_0x25422e[_0x3717ce(0x1da)][_0x3717ce(0x231)]:_0x3717ce(0x230),'context':{'tool':_0x3717ce(0x216),'query':_0x5ba5c[_0x3717ce(0x1b8)]['query'],'repo_id':_0x5ba5c[_0x3717ce(0x1b8)][_0x3717ce(0x204)],'target_directories':_0x5ba5c[_0x3717ce(0x1b8)][_0x3717ce(0x25d)]},'stack_trace':_0x25422e instanceof Error?_0x25422e[_0x3717ce(0x22d)]:undefined,'source':_0x3717ce(0x1ae)})[_0x3717ce(0x26e)](()=>{}),{'content':[{'type':'text','text':_0x3717ce(0x29f)+_0x512f1b}],'isError':!![]};}}default:throw new Error(_0x3717ce(0x1e1)+_0x2b3512);}}catch(_0x142a30){const _0x10aa4c=_0x142a30 instanceof Error?_0x142a30[_0x3717ce(0x1ee)]:String(_0x142a30);return reportMorphError({'error_message':_0x10aa4c,'error_type':_0x142a30 instanceof Error?_0x142a30['constructor'][_0x3717ce(0x231)]:'UnknownError','context':{'tool':name,'arguments':args?JSON[_0x3717ce(0x2aa)](args)[_0x3717ce(0x267)](0x0,0x1f4):undefined,'mcp_server_version':'0.2.0'},'stack_trace':_0x142a30 instanceof Error?_0x142a30[_0x3717ce(0x22d)]:undefined,'source':_0x3717ce(0x1ae)})[_0x3717ce(0x26e)](()=>{}),{'content':[{'type':'text','text':_0x3717ce(0x29f)+_0x10aa4c}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x35144d){const _0x244df1=a0_0x5ef1d8,_0x3964d3=await getValidRootDirectories(_0x35144d);if(_0x3964d3['length']>0x0)allowedDirectories=[..._0x3964d3],console[_0x244df1(0x237)](_0x244df1(0x244)+_0x3964d3['length']+_0x244df1(0x1d9));else{console[_0x244df1(0x237)](_0x244df1(0x264));if(ENABLE_WORKSPACE_MODE)try{const _0x3882c4=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x3882c4&&(allowedDirectories=[_0x3882c4],console['error'](_0x244df1(0x28c)+_0x3882c4));}catch(_0x13af98){console[_0x244df1(0x237)](_0x244df1(0x276)+_0x13af98);}}}server[a0_0x5ef1d8(0x27d)](RootsListChangedNotificationSchema,async()=>{const _0x218695=a0_0x5ef1d8;try{const _0x2a22b6=await server[_0x218695(0x200)]();_0x2a22b6&&'roots'in _0x2a22b6&&await updateAllowedDirectoriesFromRoots(_0x2a22b6[_0x218695(0x220)]);}catch(_0x4d3663){console[_0x218695(0x237)](_0x218695(0x254),_0x4d3663 instanceof Error?_0x4d3663[_0x218695(0x1ee)]:String(_0x4d3663));}}),server[a0_0x5ef1d8(0x211)]=async()=>{const _0x2d123c=a0_0x5ef1d8,_0x73209e=server[_0x2d123c(0x1b5)]();if(_0x73209e?.[_0x2d123c(0x220)])try{const _0xa4e45f=await server[_0x2d123c(0x200)]();_0xa4e45f&&_0x2d123c(0x220)in _0xa4e45f?await updateAllowedDirectoriesFromRoots(_0xa4e45f[_0x2d123c(0x220)]):console[_0x2d123c(0x237)](_0x2d123c(0x2a7));}catch(_0x30b687){console[_0x2d123c(0x237)](_0x2d123c(0x2c7),_0x30b687 instanceof Error?_0x30b687[_0x2d123c(0x1ee)]:String(_0x30b687));}else{if(allowedDirectories[_0x2d123c(0x2c1)]>0x0)console[_0x2d123c(0x237)](_0x2d123c(0x2b0),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console[_0x2d123c(0x237)](_0x2d123c(0x26c));else throw new Error(_0x2d123c(0x257));}}};async function runServer(){const _0x2c5526=a0_0x5ef1d8,_0x2db193=new StdioServerTransport();await server['connect'](_0x2db193),console[_0x2c5526(0x237)](_0x2c5526(0x21e)),allowedDirectories[_0x2c5526(0x2c1)]===0x0&&console['error']('Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol');}runServer()[a0_0x5ef1d8(0x26e)](_0x1fcfe2=>{const _0x3f5dd6=a0_0x5ef1d8;console['error'](_0x3f5dd6(0x1f6),_0x1fcfe2),process[_0x3f5dd6(0x1e3)](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(_0xd6baf6,_0x5bcfde){const _0x5c04fe=a1_0x50a2,_0x11a709=_0xd6baf6();while(!![]){try{const _0x5ced53=parseInt(_0x5c04fe(0x1b1))/0x1+parseInt(_0x5c04fe(0x1b0))/0x2*(parseInt(_0x5c04fe(0x1b8))/0x3)+-parseInt(_0x5c04fe(0x1aa))/0x4*(-parseInt(_0x5c04fe(0x1ba))/0x5)+-parseInt(_0x5c04fe(0x1ad))/0x6+parseInt(_0x5c04fe(0x1b5))/0x7*(-parseInt(_0x5c04fe(0x1b4))/0x8)+parseInt(_0x5c04fe(0x1ac))/0x9*(parseInt(_0x5c04fe(0x1a9))/0xa)+-parseInt(_0x5c04fe(0x1b9))/0xb;if(_0x5ced53===_0x5bcfde)break;else _0x11a709['push'](_0x11a709['shift']());}catch(_0xc1e466){_0x11a709['push'](_0x11a709['shift']());}}}(a1_0x305e,0x849fd));import a1_0x1dd414 from'path';import a1_0x1aedd4 from'os';function a1_0x50a2(_0x45214f,_0x3b9e21){_0x45214f=_0x45214f-0x1a9;const _0x305e7e=a1_0x305e();let _0x50a2ff=_0x305e7e[_0x45214f];return _0x50a2ff;}export function convertToWindowsPath(_0xafbf71){const _0x2115ec=a1_0x50a2;if(_0xafbf71[_0x2115ec(0x1bb)](_0x2115ec(0x1bc))){const _0x4a444a=_0xafbf71[_0x2115ec(0x1b6)](0x5)['toUpperCase'](),_0xfd5cb=_0xafbf71['slice'](0x6)[_0x2115ec(0x1b2)](/\//g,'\x5c');return _0x4a444a+':'+_0xfd5cb;}if(_0xafbf71['match'](/^\/[a-zA-Z]\//)){const _0x57b9b2=_0xafbf71[_0x2115ec(0x1b6)](0x1)['toUpperCase'](),_0x31c1bc=_0xafbf71[_0x2115ec(0x1ae)](0x2)[_0x2115ec(0x1b2)](/\//g,'\x5c');return _0x57b9b2+':'+_0x31c1bc;}if(_0xafbf71[_0x2115ec(0x1b3)](/^[a-zA-Z]:/))return _0xafbf71[_0x2115ec(0x1b2)](/\//g,'\x5c');return _0xafbf71;}function a1_0x305e(){const _0x17c9ca=['25ZNalbE','startsWith','/mnt/','1489630duIwdB','715408RZzkfe','homedir','63PJDcuR','2240520mqQjoX','slice','join','552HXWsQS','901921lybwWs','replace','match','8cZaCLb','2300592IMEnAm','charAt','substring','5538IGCwzr','23134243VXAeZM'];a1_0x305e=function(){return _0x17c9ca;};return a1_0x305e();}export function normalizePath(_0x3bc87f){const _0x526b6c=a1_0x50a2;_0x3bc87f=_0x3bc87f['trim']()[_0x526b6c(0x1b2)](/^["']|["']$/g,'');const _0x478205=_0x3bc87f[_0x526b6c(0x1bb)]('/')&&!_0x3bc87f[_0x526b6c(0x1b3)](/^\/mnt\/[a-z]\//i)&&!_0x3bc87f['match'](/^\/[a-zA-Z]\//);if(_0x478205)return _0x3bc87f['replace'](/\/+/g,'/')['replace'](/\/+$/,'');_0x3bc87f=convertToWindowsPath(_0x3bc87f);if(_0x3bc87f[_0x526b6c(0x1bb)]('\x5c\x5c')){let _0x37cf66=_0x3bc87f;_0x37cf66=_0x37cf66[_0x526b6c(0x1b2)](/^\\{2,}/,'\x5c\x5c');const _0x225525=_0x37cf66[_0x526b6c(0x1b7)](0x2)['replace'](/\\\\/g,'\x5c');_0x3bc87f='\x5c\x5c'+_0x225525;}else _0x3bc87f=_0x3bc87f['replace'](/\\\\/g,'\x5c');let _0x406b7b=a1_0x1dd414['normalize'](_0x3bc87f);_0x3bc87f[_0x526b6c(0x1bb)]('\x5c\x5c')&&!_0x406b7b['startsWith']('\x5c\x5c')&&(_0x406b7b='\x5c'+_0x406b7b);if(_0x406b7b[_0x526b6c(0x1b3)](/^[a-zA-Z]:/)){let _0x3bd789=_0x406b7b['replace'](/\//g,'\x5c');return/^[a-z]:/['test'](_0x3bd789)&&(_0x3bd789=_0x3bd789[_0x526b6c(0x1b6)](0x0)['toUpperCase']()+_0x3bd789[_0x526b6c(0x1ae)](0x1)),_0x3bd789;}return _0x406b7b[_0x526b6c(0x1b2)](/\//g,'\x5c');}export function expandHome(_0x258c05){const _0x688118=a1_0x50a2;if(_0x258c05[_0x688118(0x1bb)]('~/')||_0x258c05==='~')return a1_0x1dd414[_0x688118(0x1af)](a1_0x1aedd4[_0x688118(0x1ab)](),_0x258c05[_0x688118(0x1ae)](0x1));return _0x258c05;}
@@ -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 a2_0xef47(){const _0x399031=['2421ppPaIA','7199918qaJyvR','28iAFxHY','1479386VavQFl','includes','23480SfUbhi','12rOBwKq','resolve','338225BPOitp','isAbsolute','startsWith','15379056vGREDn','24qAqJPG','sep','1259568NbBiLV','normalize','string','Path\x20must\x20be\x20absolute\x20after\x20normalization','some','1KKZhNz','413766ONHFQS'];a2_0xef47=function(){return _0x399031;};return a2_0xef47();}(function(_0x5311cc,_0x59158d){const _0x3b9ab1=a2_0xecf1,_0x4147a5=_0x5311cc();while(!![]){try{const _0x1cf0b4=parseInt(_0x3b9ab1(0x196))/0x1*(-parseInt(_0x3b9ab1(0x186))/0x2)+-parseInt(_0x3b9ab1(0x182))/0x3*(parseInt(_0x3b9ab1(0x18f))/0x4)+parseInt(_0x3b9ab1(0x18b))/0x5*(parseInt(_0x3b9ab1(0x189))/0x6)+-parseInt(_0x3b9ab1(0x185))/0x7*(-parseInt(_0x3b9ab1(0x191))/0x8)+-parseInt(_0x3b9ab1(0x183))/0x9*(-parseInt(_0x3b9ab1(0x188))/0xa)+-parseInt(_0x3b9ab1(0x184))/0xb+parseInt(_0x3b9ab1(0x18e))/0xc;if(_0x1cf0b4===_0x59158d)break;else _0x4147a5['push'](_0x4147a5['shift']());}catch(_0x448c45){_0x4147a5['push'](_0x4147a5['shift']());}}}(a2_0xef47,0x6f73f));function a2_0xecf1(_0x30253e,_0x29bb60){_0x30253e=_0x30253e-0x182;const _0xef479a=a2_0xef47();let _0xecf129=_0xef479a[_0x30253e];return _0xecf129;}import a2_0x372267 from'path';export function isPathWithinAllowedDirectories(_0x4e398a,_0x5ed23c){const _0x33a2aa=a2_0xecf1;if(typeof _0x4e398a!==_0x33a2aa(0x193)||!Array['isArray'](_0x5ed23c))return![];if(!_0x4e398a||_0x5ed23c['length']===0x0)return![];if(_0x4e398a[_0x33a2aa(0x187)]('\x00'))return![];let _0x50bc4c;try{_0x50bc4c=a2_0x372267[_0x33a2aa(0x18a)](a2_0x372267[_0x33a2aa(0x192)](_0x4e398a));}catch{return![];}if(!a2_0x372267[_0x33a2aa(0x18c)](_0x50bc4c))throw new Error(_0x33a2aa(0x194));return _0x5ed23c[_0x33a2aa(0x195)](_0x1a43c8=>{const _0x288cd7=_0x33a2aa;if(typeof _0x1a43c8!=='string'||!_0x1a43c8)return![];if(_0x1a43c8[_0x288cd7(0x187)]('\x00'))return![];let _0x5d9fb0;try{_0x5d9fb0=a2_0x372267[_0x288cd7(0x18a)](a2_0x372267[_0x288cd7(0x192)](_0x1a43c8));}catch{return![];}if(!a2_0x372267[_0x288cd7(0x18c)](_0x5d9fb0))throw new Error('Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization');if(_0x50bc4c===_0x5d9fb0)return!![];if(_0x5d9fb0===a2_0x372267['sep'])return _0x50bc4c[_0x288cd7(0x18d)](a2_0x372267['sep']);return _0x50bc4c[_0x288cd7(0x18d)](_0x5d9fb0+a2_0x372267[_0x288cd7(0x190)]);});}
@@ -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(_0x10d65f,_0x4b610d){const _0x2c8f86=a3_0x1f49,_0x29eba1=_0x10d65f();while(!![]){try{const _0x54b393=-parseInt(_0x2c8f86(0xfc))/0x1+parseInt(_0x2c8f86(0x103))/0x2*(-parseInt(_0x2c8f86(0xfd))/0x3)+-parseInt(_0x2c8f86(0x10b))/0x4+parseInt(_0x2c8f86(0xff))/0x5*(parseInt(_0x2c8f86(0x108))/0x6)+parseInt(_0x2c8f86(0x10c))/0x7+parseInt(_0x2c8f86(0x109))/0x8+parseInt(_0x2c8f86(0x107))/0x9*(parseInt(_0x2c8f86(0x10d))/0xa);if(_0x54b393===_0x4b610d)break;else _0x29eba1['push'](_0x29eba1['shift']());}catch(_0x26aadc){_0x29eba1['push'](_0x29eba1['shift']());}}}(a3_0x3dd3,0x6b1c7));import{promises as a3_0x1f1b9a}from'fs';import a3_0x3ca997 from'path';import a3_0x4dbb89 from'os';import{normalizePath}from'./path-utils.js';async function parseRootUri(_0x34647b){const _0x252532=a3_0x1f49;try{const _0x1575f5=_0x34647b['startsWith']('file://')?_0x34647b[_0x252532(0x10e)](0x7):_0x34647b,_0x118269=_0x1575f5[_0x252532(0xfa)]('~/')||_0x1575f5==='~'?a3_0x3ca997[_0x252532(0x100)](a3_0x4dbb89[_0x252532(0x101)](),_0x1575f5[_0x252532(0x10e)](0x1)):_0x1575f5,_0x37fd0d=a3_0x3ca997[_0x252532(0xfb)](_0x118269),_0x301a4f=await a3_0x1f1b9a['realpath'](_0x37fd0d);return normalizePath(_0x301a4f);}catch{return null;}}function formatDirectoryError(_0x302aae,_0x2345b2,_0x5354f9){const _0x1fc786=a3_0x1f49;if(_0x5354f9)return _0x1fc786(0x10f)+_0x5354f9+':\x20'+_0x302aae;const _0x5cf042=_0x2345b2 instanceof Error?_0x2345b2['message']:String(_0x2345b2);return _0x1fc786(0xf9)+_0x302aae+_0x1fc786(0x106)+_0x5cf042;}export async function getValidRootDirectories(_0x13cb60){const _0x498b2f=a3_0x1f49,_0x5f538b=[];for(const _0x298034 of _0x13cb60){const _0x28501e=await parseRootUri(_0x298034[_0x498b2f(0x102)]);if(!_0x28501e){console[_0x498b2f(0x104)](formatDirectoryError(_0x298034[_0x498b2f(0x102)],undefined,_0x498b2f(0xfe)));continue;}try{const _0x404adf=await a3_0x1f1b9a[_0x498b2f(0x105)](_0x28501e);_0x404adf[_0x498b2f(0x10a)]()?_0x5f538b['push'](_0x28501e):console[_0x498b2f(0x104)](formatDirectoryError(_0x28501e,undefined,_0x498b2f(0x110)));}catch(_0x949565){console[_0x498b2f(0x104)](formatDirectoryError(_0x28501e,_0x949565));}}return _0x5f538b;}function a3_0x1f49(_0x5693f2,_0x443d56){_0x5693f2=_0x5693f2-0xf9;const _0x3dd350=a3_0x3dd3();let _0x1f49ac=_0x3dd350[_0x5693f2];return _0x1f49ac;}function a3_0x3dd3(){const _0x4e3c5c=['68465EQcrze','join','homedir','uri','70424YriEBu','error','stat','\x20due\x20to\x20error:\x20','108auDxNC','126sDEuRa','2279224wRghQt','isDirectory','2138584KeCJLG','2845472wINKFq','682530PhIKhh','slice','Skipping\x20','non-directory\x20root','Skipping\x20invalid\x20directory:\x20','startsWith','resolve','155587qhuNjW','57JDHQGN','invalid\x20path\x20or\x20inaccessible'];a3_0x3dd3=function(){return _0x4e3c5c;};return a3_0x3dd3();}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morphllm/morphmcp",
3
- "version": "0.8.108",
3
+ "version": "0.8.109",
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)",