@morphllm/morphmcp 0.8.112 → 0.8.113

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_0x4ac72e=a0_0x56fe;(function(_0x50136e,_0x8a271c){const _0x461440=a0_0x56fe,_0x2c2d1d=_0x50136e();while(!![]){try{const _0x18e2a1=parseInt(_0x461440(0x2e2))/0x1+parseInt(_0x461440(0x2f1))/0x2*(-parseInt(_0x461440(0x214))/0x3)+-parseInt(_0x461440(0x2d1))/0x4*(-parseInt(_0x461440(0x23a))/0x5)+-parseInt(_0x461440(0x2df))/0x6*(-parseInt(_0x461440(0x2bc))/0x7)+parseInt(_0x461440(0x256))/0x8+-parseInt(_0x461440(0x1f3))/0x9+-parseInt(_0x461440(0x2f2))/0xa;if(_0x18e2a1===_0x8a271c)break;else _0x2c2d1d['push'](_0x2c2d1d['shift']());}catch(_0x2169a6){_0x2c2d1d['push'](_0x2c2d1d['shift']());}}}(a0_0x77c6,0xede1d));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_0x269482 from'fs/promises';import a0_0x17d018 from'path';import a0_0x2b8454 from'os';function a0_0x77c6(){const _0x2e1264=['filter','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','added\x20','%\x20match)\x0a','Error\x20accessing\x20directory\x20','pyproject.toml','Repository\x20owner/repo\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.','Search\x20failed:\x20','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','FileNotFound','https://morphllm.com/api/error-report','Failed\x20to\x20read\x20file:\x20','Repository\x20identifier','\x20-\x20','warpgrep_codebase_search','ENOENT','@morphllm/morphmcp\x20','optional','\x20\x20\x20','assistant','search_string','.\x20Path:\x20','Specific\x20commit\x20hash\x20to\x20search','tsconfig.json','resolve','map','RipgrepNotAvailable','user','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','messages','Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)','github_url','\x20\x20\x20Lines\x20','sep','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','Error:\x20','Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20','name','Benefits:\x0a','Created\x20File','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','edit_file','[could\x20not\x20read\x20file:\x20','MORPH_WARP_GREP_TIMEOUT','catch','push','\x20\x20morph-mcp','join','limit','default','\x20valid\x20directories','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','UnknownError','Applied','stats','slice','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a','stack','safeParse','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','Fatal\x20error\x20running\x20server:','readFile','min','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','Natural\x20language\x20query\x20to\x20search\x20for\x20code','grep','Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20','text','.\x20Changes:\x20','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.','composer.json','searchGitHub','completed','0.2.0','search_type','code_edit','.git','\x27\x20in\x20`','\x20for:\x20\x22','code','[warpgrep_github_search]\x20Failed\x20in\x20','isDirectory','Search\x20type\x20hint.\x20Use\x20\x27node_modules\x27\x20when\x20searching\x20inside\x20node_modules\x20or\x20other\x20dependency\x20directories\x20that\x20are\x20normally\x20excluded.','number','runWarpGrep_call','-\x20Grepped\x20\x27','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','etimedout','WarpGrep\x20sub-tool\x20errors:\x20','</file>','\x20is\x20not\x20a\x20directory','setNotificationHandler','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','\x0aOptions:','completionId','unknown\x20error','213521jAuBrH','warpgrep_github_search','morph-','realpath','indexOf','Workspace\x20mode\x20enabled:\x20Using\x20','string','WORKSPACE_ROOT','false','argv','setRequestHandler','codebase_search','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','success','-\x20Listed\x20directory\x20`','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','Failed\x20to\x20request\x20roots\x20from\x20client:','basename','listRoots','\x20error(s)','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','1455864cyLJlL','startsWith','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','Please\x20provide\x20github\x20search\x20url\x20or\x20owner/repo\x20id','MORPH_API_KEY','files','getClientCapabilities','repo_path','sk-','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.','split','includes','ms.\x20Success:\x20','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','246LjDhOv','Warning:\x20Workspace\x20fallback\x20failed:\x20','Bearer\x20','1876719YNiXUd','floor','timed\x20out','[warpgrep_github_search]\x20Done\x20in\x20','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','constructor','trim','\x20results\x20in\x20','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','some','\x20as\x20allowed\x20directory','File\x20read\x20error:','content','read','808yyJKFo','30589720ePHGTx','errors','env','path','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','--help','terminationReason','has','morph-v3-fast','instruction','stringify','post','describe','finish','data','Morph\x20Edit\x20Preview','description','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','lines','role','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','-\x20Read\x20file\x20`','node_modules','owner_repo','linesAdded','timeout','Fallback:\x20Using\x20workspace\x20root\x20','terminated','params','Found\x20','dryRun','TimeoutError','requiresApiKey','**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a','SymlinkError','2448369EUvFmd','api-key','substring','ToolException','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','branch','WarpGrepError','searchTimeMs','warn','linesModified','oninitialized','No\x20results\x20found\x20for\x20query:\x20\x22','A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20','stat','now','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','\x0aExamples:','boolean','utf-8','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','array','timings','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','connect','SubToolError','--version','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','query','.cursor','Relevant\x20context\x20found:','7302cmTirN','Unknown\x20tool:\x20','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','Enabled\x20tools:\x20','-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','message','Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for','normalize','BinaryFile','[warpgrep_github_search]\x20Searching\x20','match','dirname','roots','Morph\x20Edit\x20','morph-warp-grep-v1-1111v0','FileReadError','\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)','exit','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','isArray',',\x20modified\x20','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','go.mod','ENABLED_TOOLS','every','-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a','ReadError','length','unknown','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','error','enum','ms:','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','application/json','Parent\x20directory\x20does\x20not\x20exist:\x20','10wtyMaX','<file\x20path=\x22','\x22>\x0aError\x20reading\x20file:\x20','ms:\x0a\x0a','ENABLE_WORKSPACE_MODE','No\x20relevant\x20code\x20found\x20for\x20the\x20query.','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','results','mcp-filesystem','\x0a</file>','🎯\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a','toISOString','morph-mcp','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','access','Invalid\x20arguments:\x20','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','RipgrepError','source','Preview\x20changes\x20without\x20applying\x20them.','Warning:\x20','toLowerCase','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','toFixed','Morph\x20FastApply\x20failed\x20without\x20error\x20message','metadata','all','...','11467520lwcwpd','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','Unknown\x20error','log'];a0_0x77c6=function(){return _0x2e1264;};return a0_0x77c6();}import{createRequire}from'module';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider,GITHUB_SEARCH_TOOL_NAME,GITHUB_SEARCH_DESCRIPTION}from'@morphllm/morphsdk/tools/warp-grep';import{WarpGrepClient,formatResult}from'@morphllm/morphsdk/tools/warp-grep/client';import{executeCodebaseSearch}from'@morphllm/morphsdk/tools/codebase-search';import a0_0x135a0b from'axios';function fixPathRepetition(_0x120945){const _0x4e7940=a0_0x56fe,_0x3b6bed=_0x120945[_0x4e7940(0x2db)](a0_0x17d018[_0x4e7940(0x27c)])[_0x4e7940(0x25a)](Boolean);if(_0x3b6bed['length']<0x2)return null;for(let _0x1e216a=Math[_0x4e7940(0x2e3)](_0x3b6bed[_0x4e7940(0x230)]/0x2);_0x1e216a>=0x1;_0x1e216a--){for(let _0xea0f54=0x0;_0xea0f54<=_0x3b6bed[_0x4e7940(0x230)]-0x2*_0x1e216a;_0xea0f54++){const _0x130b73=_0x3b6bed[_0x4e7940(0x292)](_0xea0f54,_0xea0f54+_0x1e216a),_0x119ead=_0x3b6bed[_0x4e7940(0x292)](_0xea0f54+_0x1e216a,_0xea0f54+0x2*_0x1e216a);if(_0x130b73[_0x4e7940(0x22d)]((_0x2af965,_0x2639bd)=>_0x2af965===_0x119ead[_0x2639bd])){const _0x593e91=[..._0x3b6bed[_0x4e7940(0x292)](0x0,_0xea0f54),..._0x3b6bed[_0x4e7940(0x292)](_0xea0f54+_0x1e216a)];return a0_0x17d018['sep']+_0x593e91['join'](a0_0x17d018['sep']);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x457b5e=a0_0x56fe;try{const _0x27d1fa=require('../package.json');return _0x27d1fa['version']??_0x457b5e(0x231);}catch(_0x527673){return console['error'](_0x457b5e(0x1d3),_0x527673),_0x457b5e(0x231);}}function printHelp(){const _0x28ac8c=a0_0x56fe;console[_0x28ac8c(0x259)](_0x28ac8c(0x26b)+getPackageVersion()),console[_0x28ac8c(0x259)](_0x28ac8c(0x29b)),console[_0x28ac8c(0x259)](_0x28ac8c(0x2b9)),console[_0x28ac8c(0x259)](_0x28ac8c(0x225)),console[_0x28ac8c(0x259)](_0x28ac8c(0x24a)),console['log'](_0x28ac8c(0x2ea)),console[_0x28ac8c(0x259)](_0x28ac8c(0x205)),console[_0x28ac8c(0x259)](_0x28ac8c(0x289)),console[_0x28ac8c(0x259)]('\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo');}const cliArgs=process[a0_0x4ac72e(0x2c5)][a0_0x4ac72e(0x292)](0x2),VERSION_FLAGS=new Set([a0_0x4ac72e(0x20f),'-v','-V']),HELP_FLAGS=new Set([a0_0x4ac72e(0x1d5),'-h']);cliArgs[a0_0x4ac72e(0x2ec)](_0x136126=>VERSION_FLAGS[a0_0x4ac72e(0x1d7)](_0x136126))&&(console[a0_0x4ac72e(0x259)](a0_0x4ac72e(0x26b)+getPackageVersion()),process['exit'](0x0));cliArgs[a0_0x4ac72e(0x2ec)](_0x536bc4=>HELP_FLAGS['has'](_0x536bc4))&&(printHelp(),process['exit'](0x0));function getCliArg(_0x5af946){const _0x1b5610=a0_0x4ac72e;for(let _0x58bd9f=0x0;_0x58bd9f<cliArgs['length'];_0x58bd9f++){const _0x26b9ba=cliArgs[_0x58bd9f];if(_0x26b9ba[_0x1b5610(0x2d2)]('--'+_0x5af946+'='))return _0x26b9ba[_0x1b5610(0x292)](('--'+_0x5af946+'=')[_0x1b5610(0x230)]);if(_0x26b9ba==='--'+_0x5af946&&_0x58bd9f+0x1<cliArgs['length'])return cliArgs[_0x58bd9f+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs[a0_0x4ac72e(0x230)];i++){const arg=cliArgs[i];if(VERSION_FLAGS[a0_0x4ac72e(0x1d7)](arg)||HELP_FLAGS[a0_0x4ac72e(0x1d7)](arg))continue;if(arg[a0_0x4ac72e(0x2d2)]('--api-key='))continue;if(arg==='--api-key'){i++;continue;}args['push'](arg);}const ALL_TOOLS=['edit_file',a0_0x4ac72e(0x269),a0_0x4ac72e(0x2bd),a0_0x4ac72e(0x2c7)],DEFAULT_TOOLS=['edit_file',a0_0x4ac72e(0x269),a0_0x4ac72e(0x2bd)],ENABLED_TOOLS=process[a0_0x4ac72e(0x2f4)][a0_0x4ac72e(0x22c)]?process[a0_0x4ac72e(0x2f4)][a0_0x4ac72e(0x22c)]===a0_0x4ac72e(0x254)?ALL_TOOLS:process[a0_0x4ac72e(0x2f4)][a0_0x4ac72e(0x22c)][a0_0x4ac72e(0x2db)](',')[a0_0x4ac72e(0x274)](_0x32c9dd=>_0x32c9dd[a0_0x4ac72e(0x2e8)]()):DEFAULT_TOOLS;console['error'](a0_0x4ac72e(0x217)+ENABLED_TOOLS[a0_0x4ac72e(0x28a)](',\x20'));const WORKSPACE_ROOT=process[a0_0x4ac72e(0x2f4)][a0_0x4ac72e(0x2c3)]||process['env']['PWD']||process['cwd'](),ENABLE_WORKSPACE_MODE=process[a0_0x4ac72e(0x2f4)][a0_0x4ac72e(0x23e)]!==a0_0x4ac72e(0x2c4),MORPH_API_KEY=getCliArg(a0_0x4ac72e(0x1f4))??process[a0_0x4ac72e(0x2f4)][a0_0x4ac72e(0x2d5)],MORPH_API_URL=process['env']['MORPH_API_URL'],MORPH_WARP_GREP_TIMEOUT=process[a0_0x4ac72e(0x2f4)][a0_0x4ac72e(0x286)]?parseInt(process['env'][a0_0x4ac72e(0x286)],0xa):undefined;MORPH_API_KEY&&!MORPH_API_KEY[a0_0x4ac72e(0x2d2)](a0_0x4ac72e(0x2d9))&&!MORPH_API_KEY[a0_0x4ac72e(0x2d2)](a0_0x4ac72e(0x2be))&&console['error'](a0_0x4ac72e(0x1d4));async function reportMorphError(_0x26ecc5){const _0x19b599=a0_0x4ac72e;try{await a0_0x135a0b[_0x19b599(0x1db)](_0x19b599(0x265),{..._0x26ecc5,'timestamp':new Date()[_0x19b599(0x245)](),'source':_0x26ecc5[_0x19b599(0x24c)]||_0x19b599(0x242)},{'timeout':0x1388,'headers':{'Content-Type':_0x19b599(0x238),'Authorization':_0x19b599(0x2e1)+MORPH_API_KEY}});}catch{}}args['length']===0x0&&!ENABLE_WORKSPACE_MODE&&(console[a0_0x4ac72e(0x234)](a0_0x4ac72e(0x203)),console[a0_0x4ac72e(0x234)](a0_0x4ac72e(0x2b2)),console['error'](a0_0x4ac72e(0x2cb)),console[a0_0x4ac72e(0x234)](a0_0x4ac72e(0x227)),console['error']('\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)'),console[a0_0x4ac72e(0x234)](a0_0x4ac72e(0x250)));function normalizePath(_0x12d422){const _0x10035a=a0_0x4ac72e;return a0_0x17d018[_0x10035a(0x21c)](_0x12d422);}function expandHome(_0x5c2fa1){const _0x28d848=a0_0x4ac72e;if(_0x5c2fa1[_0x28d848(0x2d2)]('~/')||_0x5c2fa1==='~')return a0_0x17d018[_0x28d848(0x28a)](a0_0x2b8454['homedir'](),_0x5c2fa1['slice'](0x1));return _0x5c2fa1;}let allowedDirectories=await Promise[a0_0x4ac72e(0x254)](args['map'](async _0x3699e9=>{const _0x27ac03=a0_0x4ac72e,_0x4581b6=expandHome(_0x3699e9),_0x584808=a0_0x17d018[_0x27ac03(0x273)](_0x4581b6);try{const _0x131dc2=await a0_0x269482[_0x27ac03(0x2bf)](_0x584808);return normalizePath(_0x131dc2);}catch(_0x5dd7d8){return normalizePath(_0x584808);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x4ac72e(0x230)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x4ac72e(0x288)](workspaceDir),console[a0_0x4ac72e(0x234)](a0_0x4ac72e(0x2c1)+workspaceDir+a0_0x4ac72e(0x2ed)));}catch(a0_0x506c85){console['error'](a0_0x4ac72e(0x293)+a0_0x506c85);}async function detectWorkspaceRoot(_0x5e7dd8){const _0x28bbc3=a0_0x4ac72e;let _0x3b64ab=a0_0x17d018[_0x28bbc3(0x273)](_0x5e7dd8);const _0x58b864=[_0x28bbc3(0x2a8),'.vscode','package.json','Cargo.toml',_0x28bbc3(0x25f),_0x28bbc3(0x22b),_0x28bbc3(0x212),_0x28bbc3(0x272),_0x28bbc3(0x2a2)];while(_0x3b64ab!==a0_0x17d018['dirname'](_0x3b64ab)){for(const _0x4f0b55 of _0x58b864){const _0x420add=a0_0x17d018[_0x28bbc3(0x28a)](_0x3b64ab,_0x4f0b55);try{return await a0_0x269482[_0x28bbc3(0x248)](_0x420add),normalizePath(_0x3b64ab);}catch{}}_0x3b64ab=a0_0x17d018[_0x28bbc3(0x220)](_0x3b64ab);}return normalizePath(_0x5e7dd8);}await Promise[a0_0x4ac72e(0x254)](args[a0_0x4ac72e(0x274)](async _0x5cee3d=>{const _0x59ff77=a0_0x4ac72e;try{const _0x383de5=await a0_0x269482[_0x59ff77(0x201)](expandHome(_0x5cee3d));!_0x383de5[_0x59ff77(0x2ad)]()&&(console[_0x59ff77(0x234)](_0x59ff77(0x27e)+_0x5cee3d+_0x59ff77(0x2b6)),process['exit'](0x1));}catch(_0x539dbb){console['error'](_0x59ff77(0x25e)+_0x5cee3d+':',_0x539dbb),process[_0x59ff77(0x226)](0x1);}}));async function validatePath(_0x157617){const _0x53e3a4=a0_0x4ac72e,_0x1a47f1=expandHome(_0x157617),_0x5f0313=a0_0x17d018[_0x53e3a4(0x273)](_0x1a47f1);try{const _0x4c2230=await a0_0x269482[_0x53e3a4(0x2bf)](_0x5f0313);return _0x4c2230;}catch(_0x8bab32){if(_0x8bab32['code']===_0x53e3a4(0x26a)){const _0x30757a=a0_0x17d018[_0x53e3a4(0x220)](_0x5f0313);try{const _0x388b1c=await a0_0x269482[_0x53e3a4(0x2bf)](_0x30757a);return a0_0x17d018[_0x53e3a4(0x28a)](_0x388b1c,a0_0x17d018[_0x53e3a4(0x2cd)](_0x5f0313));}catch{throw new Error(_0x53e3a4(0x239)+_0x30757a);}}throw _0x8bab32;}}const MorphEditFileArgsSchema=z['object']({'path':z[a0_0x4ac72e(0x2c2)](),'code_edit':z['string']()[a0_0x4ac72e(0x1dc)](a0_0x4ac72e(0x28e)),'instruction':z[a0_0x4ac72e(0x2c2)]()[a0_0x4ac72e(0x1dc)](a0_0x4ac72e(0x233)),'dryRun':z[a0_0x4ac72e(0x206)]()[a0_0x4ac72e(0x28c)](![])[a0_0x4ac72e(0x1dc)](a0_0x4ac72e(0x24d))}),WarpGrepArgsSchema=z['object']({'search_string':z[a0_0x4ac72e(0x2c2)]()['describe'](a0_0x4ac72e(0x21b)),'repo_path':z['string']()['describe']('The\x20absolute\x20path\x20of\x20the\x20folder\x20where\x20the\x20search\x20should\x20be\x20performed.\x20In\x20multi-repo\x20workspaces,\x20you\x20have\x20to\x20specify\x20a\x20subfolder\x20where\x20the\x20search\x20should\x20be\x20performed,\x20to\x20avoid\x20searching\x20across\x20all\x20repos'),'search_type':z[a0_0x4ac72e(0x235)]([a0_0x4ac72e(0x28c),a0_0x4ac72e(0x1e6)])[a0_0x4ac72e(0x26c)]()['describe'](a0_0x4ac72e(0x2ae))}),WarpGrepGitHubArgsSchema=z['object']({'search_string':z['string']()[a0_0x4ac72e(0x1dc)]('Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for'),'github_url':z[a0_0x4ac72e(0x2c2)]()[a0_0x4ac72e(0x26c)]()[a0_0x4ac72e(0x1dc)]('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.'),'owner_repo':z['string']()[a0_0x4ac72e(0x26c)]()[a0_0x4ac72e(0x1dc)](a0_0x4ac72e(0x260)),'branch':z['string']()[a0_0x4ac72e(0x26c)]()[a0_0x4ac72e(0x1dc)](a0_0x4ac72e(0x279))}),CodebaseSearchArgsSchema=z['object']({'query':z['string']()[a0_0x4ac72e(0x1dc)](a0_0x4ac72e(0x29c)),'repoId':z[a0_0x4ac72e(0x2c2)]()[a0_0x4ac72e(0x1dc)](a0_0x4ac72e(0x267)),'branch':z[a0_0x4ac72e(0x2c2)]()[a0_0x4ac72e(0x26c)]()[a0_0x4ac72e(0x1dc)](a0_0x4ac72e(0x1f8)),'commitHash':z[a0_0x4ac72e(0x2c2)]()[a0_0x4ac72e(0x26c)]()[a0_0x4ac72e(0x1dc)](a0_0x4ac72e(0x271)),'targetDirectories':z[a0_0x4ac72e(0x20a)](z[a0_0x4ac72e(0x2c2)]())[a0_0x4ac72e(0x28c)]([])[a0_0x4ac72e(0x1dc)](a0_0x4ac72e(0x210)),'limit':z[a0_0x4ac72e(0x2af)]()['optional']()[a0_0x4ac72e(0x28c)](0xa)[a0_0x4ac72e(0x1dc)]('Max\x20results\x20to\x20return')}),server=new Server({'name':a0_0x4ac72e(0x246),'version':a0_0x4ac72e(0x2a5)},{'capabilities':{'tools':{}}});server['setRequestHandler'](ListToolsRequestSchema,async()=>{const _0x31dc57=a0_0x4ac72e,_0x4fd9a7=[{'name':_0x31dc57(0x284),'description':'**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a'+_0x31dc57(0x2de)+_0x31dc57(0x22a)+_0x31dc57(0x263)+_0x31dc57(0x281)+_0x31dc57(0x247)+'-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a'+_0x31dc57(0x2d0)+'-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a'+_0x31dc57(0x240)+_0x31dc57(0x2c8)+_0x31dc57(0x2e6)+'For\x20deletions:\x0a'+_0x31dc57(0x232)+'-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a'+'Rules:\x0a'+_0x31dc57(0x1e1)+_0x31dc57(0x283)+'-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a'+_0x31dc57(0x209)+_0x31dc57(0x237)+_0x31dc57(0x2eb)+'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':'warpgrep_codebase_search','description':_0x31dc57(0x200)+_0x31dc57(0x1e4)+_0x31dc57(0x2d3)+'Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20'+_0x31dc57(0x2a1)+_0x31dc57(0x25b)+_0x31dc57(0x277)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':GITHUB_SEARCH_TOOL_NAME,'description':GITHUB_SEARCH_DESCRIPTION,'inputSchema':zodToJsonSchema(WarpGrepGitHubArgsSchema),'requiresApiKey':!![]},{'name':_0x31dc57(0x2c7),'description':_0x31dc57(0x1f1)+'⚡\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a'+_0x31dc57(0x244)+_0x31dc57(0x281)+_0x31dc57(0x294)+'-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a'+_0x31dc57(0x218)+_0x31dc57(0x22e)+_0x31dc57(0x29e)+_0x31dc57(0x27f)+_0x31dc57(0x208),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x415800=_0x4fd9a7[_0x31dc57(0x25a)](_0x7f5bee=>{const _0x6d31e9=_0x31dc57;if(!ENABLED_TOOLS[_0x6d31e9(0x2dc)](_0x7f5bee[_0x6d31e9(0x280)]))return![];if('requiresApiKey'in _0x7f5bee&&_0x7f5bee[_0x6d31e9(0x1f0)]&&!MORPH_API_KEY)return console[_0x6d31e9(0x234)]('Warning:\x20'+_0x7f5bee[_0x6d31e9(0x280)]+'\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config'),![];return!![];});return{'tools':_0x415800[_0x31dc57(0x274)](_0x527311=>({'name':_0x527311[_0x31dc57(0x280)],'description':_0x527311[_0x31dc57(0x1e0)],'inputSchema':_0x527311['inputSchema']}))};}),server[a0_0x4ac72e(0x2c6)](CallToolRequestSchema,async _0x44359d=>{const _0x33c473=a0_0x4ac72e;try{const {name:_0xa3bb73,arguments:_0x3ffd1a}=_0x44359d[_0x33c473(0x1ec)];switch(_0xa3bb73){case'edit_file':{const _0x349eca=MorphEditFileArgsSchema[_0x33c473(0x296)](_0x3ffd1a);if(!_0x349eca[_0x33c473(0x2c9)])throw new Error(_0x33c473(0x204)+_0x349eca[_0x33c473(0x234)]);const _0x141479=await validatePath(_0x349eca['data'][_0x33c473(0x1d2)]);let _0x5d131c=null,_0xc7ebb8=!![],_0x543d92=null;try{_0x5d131c=await a0_0x269482['readFile'](_0x141479,_0x33c473(0x207));}catch(_0x5546ba){const _0x45bca9=_0x5546ba[_0x33c473(0x2ab)];_0x45bca9===_0x33c473(0x26a)?(_0xc7ebb8=![],_0x5d131c=''):(_0x543d92=_0x33c473(0x266)+(_0x45bca9||_0x33c473(0x231))+_0x33c473(0x268)+(_0x5546ba instanceof Error?_0x5546ba[_0x33c473(0x21a)]:String(_0x5546ba)),console[_0x33c473(0x234)](_0x33c473(0x24e)+_0x543d92));}let _0x213ded;try{const _0x351b0f=MORPH_API_KEY;if(!_0x351b0f)throw new Error(_0x33c473(0x262));const _0xb1732f=a0_0x17d018['dirname'](_0x141479),_0x5df8b6=a0_0x17d018[_0x33c473(0x2cd)](_0x141479),_0x3c8c57=await executeEditFile({'target_filepath':_0x5df8b6,'code_edit':_0x349eca[_0x33c473(0x1de)][_0x33c473(0x2a7)],'instructions':_0x349eca[_0x33c473(0x1de)][_0x33c473(0x1d9)]},{'morphApiKey':_0x351b0f,'morphApiUrl':MORPH_API_URL,'baseDir':_0xb1732f,'autoWrite':!_0x349eca[_0x33c473(0x1de)][_0x33c473(0x1ee)],'generateUdiff':![],'debug':![]});_0x213ded=_0x3c8c57[_0x33c473(0x2ba)];if(!_0x3c8c57['success'])throw new Error(_0x3c8c57[_0x33c473(0x234)]||_0x33c473(0x252));const _0x32f310=_0x3c8c57['changes'],_0x3d65bb=_0x33c473(0x25c)+_0x32f310[_0x33c473(0x1e8)]+',\x20removed\x20'+_0x32f310['linesRemoved']+_0x33c473(0x229)+_0x32f310[_0x33c473(0x1fd)];if(_0x349eca[_0x33c473(0x1de)]['dryRun'])return{'content':[{'type':'text','text':_0x33c473(0x1df)+(_0xc7ebb8?'':'\x20(new\x20file)')+':\x20'+_0x349eca[_0x33c473(0x1de)][_0x33c473(0x1d9)]+_0x33c473(0x2a0)+_0x3d65bb+'.\x20Path:\x20'+_0x349eca[_0x33c473(0x1de)][_0x33c473(0x1d2)]+'.'}]};return{'content':[{'type':'text','text':_0x33c473(0x222)+(_0xc7ebb8?_0x33c473(0x290):_0x33c473(0x282))+':\x20'+_0x349eca[_0x33c473(0x1de)]['instruction']+_0x33c473(0x2a0)+_0x3d65bb+_0x33c473(0x270)+_0x349eca[_0x33c473(0x1de)][_0x33c473(0x1d2)]+'.'}]};}catch(_0xc467e0){const _0x24cefa=_0xc467e0 instanceof Error?_0xc467e0['message']:String(_0xc467e0);return reportMorphError({'error_message':_0x24cefa,'error_type':_0xc467e0 instanceof Error?_0xc467e0['constructor'][_0x33c473(0x280)]:_0x33c473(0x28f),'context':{'tool':_0x33c473(0x284),'completion_id':_0x213ded,'file_path':_0x349eca[_0x33c473(0x1de)][_0x33c473(0x1d2)],'validated_path':_0x141479,'instruction':_0x349eca['data'][_0x33c473(0x1d9)],'model':_0x33c473(0x1d8),'dry_run':_0x349eca[_0x33c473(0x1de)]['dryRun'],'file_exists':_0xc7ebb8,'file_read_error':_0x543d92,'file_readable':_0x5d131c!==null,'request_content':{'path':_0x349eca[_0x33c473(0x1de)]['path'],'code_edit':_0x349eca[_0x33c473(0x1de)][_0x33c473(0x2a7)],'instruction':_0x349eca[_0x33c473(0x1de)][_0x33c473(0x1d9)],'original_code':_0x5d131c!==null?_0x5d131c[_0x33c473(0x230)]>0xc350?_0x5d131c[_0x33c473(0x1f5)](0x0,0xc350)+'\x0a...\x20(truncated,\x20total:\x20'+_0x5d131c['length']+'\x20chars)':_0x5d131c:_0x33c473(0x285)+(_0x543d92||_0x33c473(0x2bb))+']','original_code_length':_0x5d131c?.['length']??0x0,'model':'morph-v3-fast','dry_run':_0x349eca[_0x33c473(0x1de)][_0x33c473(0x1ee)]}},'stack_trace':_0xc467e0 instanceof Error?_0xc467e0[_0x33c473(0x295)]:undefined,'source':'mcp-filesystem'})[_0x33c473(0x287)](()=>{}),{'content':[{'type':_0x33c473(0x29f),'text':'❌\x20Morph\x20Edit\x20Failed:\x20'+_0x24cefa}],'isError':!![]};}}case _0x33c473(0x269):{const _0x1cc8f6=WarpGrepArgsSchema[_0x33c473(0x296)](_0x3ffd1a);if(!_0x1cc8f6[_0x33c473(0x2c9)])return{'content':[{'type':_0x33c473(0x29f),'text':_0x33c473(0x249)+_0x1cc8f6[_0x33c473(0x234)]}],'isError':!![]};const _0x2741d1=_0x107c8c=>{const _0x46b719=_0x33c473,_0x4488b8=[];for(const _0xc641fc of _0x107c8c||[]){const _0x133931=_0xc641fc[_0x46b719(0x1e3)],_0x6fa72f=_0xc641fc[_0x46b719(0x2ef)];if(_0x133931===_0x46b719(0x26e)&&_0x6fa72f){const _0x23e98d=_0x6fa72f[_0x46b719(0x2db)]('\x0a')[_0x46b719(0x25a)](_0x31000c=>_0x31000c[_0x46b719(0x2e8)]());for(const _0x2912ad of _0x23e98d){const _0x4c50ed=_0x2912ad['match'](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x4c50ed){_0x4488b8[_0x46b719(0x288)]('grep\x20\x27'+_0x4c50ed[0x1]+'\x27\x20'+_0x4c50ed[0x2]);continue;}const _0x1f5e76=_0x2912ad[_0x46b719(0x21f)](/^read\s+(.+)$/);if(_0x1f5e76){_0x4488b8[_0x46b719(0x288)]('read\x20'+_0x1f5e76[0x1]);continue;}const _0x44dd7b=_0x2912ad[_0x46b719(0x21f)](/^list_directory\s+(.+)$/);if(_0x44dd7b){_0x4488b8[_0x46b719(0x288)]('list_directory\x20'+_0x44dd7b[0x1]);continue;}}}}return _0x4488b8;},_0x2c506a=_0x54cc9f=>{const _0x18fa40=_0x33c473,_0x2c4f30=[];if(!_0x54cc9f||!Array[_0x18fa40(0x228)](_0x54cc9f))return _0x2c4f30;const _0x19a2cc=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':_0x18fa40(0x264),'tool':_0x18fa40(0x2f0)},{'pattern':/\[PATH ERROR\]/,'error_type':'PathError','tool':_0x18fa40(0x2f0)},{'pattern':/\[READ ERROR\]/,'error_type':'ReadError','tool':_0x18fa40(0x2f0)},{'pattern':/\[UNREADABLE FILE\]/,'error_type':_0x18fa40(0x21d),'tool':_0x18fa40(0x2f0)},{'pattern':/\[RIPGREP ERROR\]/,'error_type':_0x18fa40(0x24b),'tool':'grep'},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x18fa40(0x275),'tool':_0x18fa40(0x29d)},{'pattern':/\[BINARY FILE\]/,'error_type':_0x18fa40(0x21d),'tool':'read'},{'pattern':/\[SYMLINK\]/,'error_type':_0x18fa40(0x1f2),'tool':_0x18fa40(0x2f0)},{'pattern':/not a text file/,'error_type':_0x18fa40(0x21d),'tool':_0x18fa40(0x2f0)},{'pattern':/symbolic link/,'error_type':_0x18fa40(0x1f2),'tool':_0x18fa40(0x2f0)},{'pattern':/Error reading file:/,'error_type':_0x18fa40(0x22f),'tool':_0x18fa40(0x2f0)},{'pattern':/status="error"/,'error_type':_0x18fa40(0x1f6),'tool':_0x18fa40(0x231)}];let _0x35c6f1=0x0;for(const _0x20104a of _0x54cc9f){if(_0x20104a[_0x18fa40(0x1e3)]===_0x18fa40(0x276)){_0x35c6f1++;const _0x4b37ec=_0x20104a['content'];if(!_0x4b37ec||typeof _0x4b37ec!=='string')continue;for(const {pattern:_0x58a4d5,error_type:_0x3555c,tool:_0x26817f}of _0x19a2cc){const _0xc8b778=_0x4b37ec['match'](new RegExp(_0x58a4d5[_0x18fa40(0x24c)],'g'));if(_0xc8b778)for(const _0x5a6f6f of _0xc8b778){const _0x1641d0=_0x4b37ec[_0x18fa40(0x2c0)](_0x5a6f6f),_0x23af91=_0x4b37ec[_0x18fa40(0x1f5)](_0x1641d0,Math[_0x18fa40(0x29a)](_0x1641d0+0xc8,_0x4b37ec[_0x18fa40(0x230)]));_0x2c4f30[_0x18fa40(0x288)]({'tool':_0x26817f,'error_type':_0x3555c,'error_message':_0x23af91[_0x18fa40(0x2db)]('\x0a')[0x0],'turn':_0x35c6f1});}}}}return _0x2c4f30;};try{const _0x18a529=a0_0x17d018['resolve'](_0x1cc8f6[_0x33c473(0x1de)]['repo_path']),_0x1765b3=_0x1cc8f6['data'][_0x33c473(0x2a6)],_0x37b086=_0x1765b3===_0x33c473(0x1e6)?{'allowNames':['node_modules']}:undefined,_0x137a68=new LocalRipgrepProvider(_0x18a529,undefined,_0x37b086),_0x3e0695=await runWarpGrep({'query':_0x1cc8f6[_0x33c473(0x1de)][_0x33c473(0x26f)],'repoRoot':_0x18a529,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x137a68,'search_type':_0x1765b3}),_0x32f028=_0x2c506a(_0x3e0695[_0x33c473(0x278)]);_0x32f028[_0x33c473(0x230)]>0x0&&reportMorphError({'error_message':_0x33c473(0x2b4)+_0x32f028[_0x33c473(0x230)]+_0x33c473(0x2cf),'error_type':_0x33c473(0x20e),'level':_0x33c473(0x1fc),'tool':_0x33c473(0x269),'context':{'repo_path':_0x1cc8f6[_0x33c473(0x1de)]['repo_path'],'query':_0x1cc8f6[_0x33c473(0x1de)][_0x33c473(0x26f)],'model':_0x33c473(0x223),'termination_reason':_0x3e0695['terminationReason'],'sub_tool_errors':_0x32f028,'timings':_0x3e0695[_0x33c473(0x20b)],'tool_calls':_0x2741d1(_0x3e0695[_0x33c473(0x278)]),'messages':_0x3e0695[_0x33c473(0x278)]?.[_0x33c473(0x274)](_0x474700=>({'role':_0x474700['role'],'content':_0x474700[_0x33c473(0x2ef)]}))},'source':_0x33c473(0x242)})[_0x33c473(0x287)](()=>{});let _0x338fd7='';if(_0x3e0695[_0x33c473(0x1d6)]===_0x33c473(0x2a4)&&_0x3e0695[_0x33c473(0x1dd)]?.[_0x33c473(0x253)]?.[_0x33c473(0x2d6)]){const _0x25d10b=_0x3e0695[_0x33c473(0x1dd)][_0x33c473(0x253)][_0x33c473(0x2d6)];if(_0x25d10b[_0x33c473(0x230)]===0x0)return _0x338fd7=_0x3e0695[_0x33c473(0x1dd)]['payload']||_0x33c473(0x23f),{'content':[{'type':_0x33c473(0x29f),'text':_0x338fd7}]};const _0x188a2e=[],_0x4f8db3=[_0x33c473(0x20c)];for(const _0x52ece2 of _0x3e0695[_0x33c473(0x278)]){const _0x5eb73a=_0x52ece2[_0x33c473(0x1e3)],_0x332a0a=_0x52ece2[_0x33c473(0x2ef)];if(_0x5eb73a===_0x33c473(0x26e)&&_0x332a0a){const _0x3ba5b7=_0x332a0a[_0x33c473(0x2db)]('\x0a')['filter'](_0x44caa7=>_0x44caa7[_0x33c473(0x2e8)]());for(const _0x38cbdf of _0x3ba5b7){const _0x360baa=_0x38cbdf[_0x33c473(0x21f)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x360baa){_0x4f8db3[_0x33c473(0x288)](_0x33c473(0x2b1)+_0x360baa[0x1]+_0x33c473(0x2a9)+_0x360baa[0x2]+'`');continue;}const _0x2864ee=_0x38cbdf[_0x33c473(0x21f)](/^read\s+(.+)$/);if(_0x2864ee){_0x4f8db3[_0x33c473(0x288)](_0x33c473(0x1e5)+_0x2864ee[0x1]+'`');continue;}const _0xb8dd02=_0x38cbdf[_0x33c473(0x21f)](/^list_directory\s+(.+)$/);if(_0xb8dd02){_0x4f8db3[_0x33c473(0x288)](_0x33c473(0x2ca)+_0xb8dd02[0x1]+'`');continue;}}}}_0x188a2e[_0x33c473(0x288)](_0x4f8db3[_0x33c473(0x28a)]('\x0a'));const _0xaccf19=['',_0x33c473(0x213)];for(const _0xc6808b of _0x25d10b){if(_0xc6808b['lines']==='*')_0xaccf19['push']('-\x20'+_0xc6808b[_0x33c473(0x1d2)]+':*');else{if(Array[_0x33c473(0x228)](_0xc6808b[_0x33c473(0x1e2)])){const _0x3a8bc0=_0xc6808b[_0x33c473(0x1e2)][_0x33c473(0x274)](([_0x5783aa,_0x5f4fde])=>{if(_0x5783aa===_0x5f4fde)return''+_0x5783aa;return _0x5783aa+'-'+_0x5f4fde;});_0xaccf19['push']('-\x20'+_0xc6808b['path']+':'+_0x3a8bc0[_0x33c473(0x28a)](','));}else _0xaccf19[_0x33c473(0x288)]('-\x20'+_0xc6808b[_0x33c473(0x1d2)]+':*');}}_0xaccf19[_0x33c473(0x288)](''),_0x188a2e[_0x33c473(0x288)](_0xaccf19[_0x33c473(0x28a)]('\x0a')),_0x188a2e[_0x33c473(0x288)]('Here\x20is\x20the\x20content\x20of\x20files:\x0a');const _0x59d634=[];for(const _0x186f74 of _0x25d10b){let _0x14320a=a0_0x17d018[_0x33c473(0x273)](_0x1cc8f6[_0x33c473(0x1de)]['repo_path'],_0x186f74['path']),_0x4dee22=null,_0xdf8456=null;try{_0x4dee22=await a0_0x269482[_0x33c473(0x299)](_0x14320a,{'encoding':_0x33c473(0x207)});}catch(_0x271bdf){const _0x3b8add=fixPathRepetition(_0x14320a);if(_0x3b8add)try{_0x4dee22=await a0_0x269482['readFile'](_0x3b8add,{'encoding':_0x33c473(0x207)}),_0x14320a=_0x3b8add;}catch{_0xdf8456=_0x271bdf instanceof Error?_0x271bdf:new Error(String(_0x271bdf));}else _0xdf8456=_0x271bdf instanceof Error?_0x271bdf:new Error(String(_0x271bdf));}if(_0x4dee22!==null){const _0x63ef95=_0x4dee22['split'](/\r?\n/),_0x32ee69=['<file\x20path=\x22'+_0x186f74[_0x33c473(0x1d2)]+'\x22>'];if(_0x186f74[_0x33c473(0x1e2)]==='*'||!Array[_0x33c473(0x228)](_0x186f74[_0x33c473(0x1e2)]))for(let _0x3d4f3a=0x1;_0x3d4f3a<=_0x63ef95['length'];_0x3d4f3a++){const _0x16cc61=_0x63ef95[_0x3d4f3a-0x1];_0x32ee69[_0x33c473(0x288)](_0x3d4f3a+'|\x20'+_0x16cc61);}else for(const [_0xe7506e,_0x400b7c]of _0x186f74[_0x33c473(0x1e2)]){_0x32ee69[_0x33c473(0x230)]>0x1&&_0x32ee69['push']('');for(let _0x3898c6=_0xe7506e;_0x3898c6<=_0x400b7c&&_0x3898c6<=_0x63ef95[_0x33c473(0x230)];_0x3898c6++){const _0x299dc9=_0x63ef95[_0x3898c6-0x1];_0x32ee69['push'](_0x3898c6+'|\x20'+_0x299dc9);}}_0x32ee69[_0x33c473(0x288)](_0x33c473(0x2b5)),_0x59d634[_0x33c473(0x288)](_0x32ee69[_0x33c473(0x28a)]('\x0a'));}else _0x59d634['push'](_0x33c473(0x23b)+_0x186f74[_0x33c473(0x1d2)]+_0x33c473(0x23c)+(_0xdf8456?.[_0x33c473(0x21a)]||_0x33c473(0x258))+_0x33c473(0x243));}_0x188a2e[_0x33c473(0x288)](_0x59d634[_0x33c473(0x28a)]('\x0a\x0a')),_0x338fd7=_0x188a2e[_0x33c473(0x28a)]('\x0a');const _0x34db4b=_0x3e0695['errors']?.[_0x33c473(0x25a)](_0x476d8b=>_0x476d8b[_0x33c473(0x21a)]?.[_0x33c473(0x2d2)](_0x33c473(0x2ee)))||[];if(_0x34db4b[_0x33c473(0x230)]>0x0){const _0x178ff2=_0x34db4b[_0x33c473(0x274)](_0x74646f=>_0x74646f['message'])[_0x33c473(0x28a)](';\x20');reportMorphError({'error_message':_0x178ff2,'error_type':_0x33c473(0x224),'context':{'tool':_0x33c473(0x269),'repo_path':_0x1cc8f6[_0x33c473(0x1de)][_0x33c473(0x2d8)],'query':_0x1cc8f6[_0x33c473(0x1de)][_0x33c473(0x26f)],'model':_0x33c473(0x223),'termination_reason':'completed_with_file_errors','error_count':_0x34db4b[_0x33c473(0x230)],'is_timeout':![],'timings':_0x3e0695[_0x33c473(0x20b)],'files_attempted':_0x25d10b[_0x33c473(0x274)](_0x44b7ed=>({'path':_0x44b7ed[_0x33c473(0x1d2)],'lines':_0x44b7ed[_0x33c473(0x1e2)]})),'tool_calls':_0x2741d1(_0x3e0695[_0x33c473(0x278)]),'messages':_0x3e0695[_0x33c473(0x278)]?.['map'](_0x5d5986=>({'role':_0x5d5986['role'],'content':_0x5d5986[_0x33c473(0x2ef)]})),'request_content':{'query':_0x1cc8f6[_0x33c473(0x1de)]['search_string'],'repo_path':_0x1cc8f6[_0x33c473(0x1de)]['repo_path'],'repoRoot':a0_0x17d018['resolve'](_0x1cc8f6[_0x33c473(0x1de)][_0x33c473(0x2d8)]),'model':_0x33c473(0x223)}},'source':_0x33c473(0x242)})['catch'](()=>{});}}else{if(_0x3e0695[_0x33c473(0x1d6)]===_0x33c473(0x1eb)&&_0x3e0695[_0x33c473(0x2f3)]['length']>0x0){const _0x5e864f=_0x3e0695[_0x33c473(0x2f3)][_0x33c473(0x274)](_0x408063=>_0x408063['message'])[_0x33c473(0x28a)](';\x20');_0x338fd7=_0x33c473(0x27e)+_0x5e864f;const _0x5e0c27=_0x5e864f[_0x33c473(0x24f)]()[_0x33c473(0x2dc)](_0x33c473(0x1e9))||_0x5e864f[_0x33c473(0x24f)]()[_0x33c473(0x2dc)](_0x33c473(0x2e4))||_0x5e864f[_0x33c473(0x24f)]()['includes'](_0x33c473(0x2b3)),_0x532771=_0x3e0695[_0x33c473(0x1dd)]?.[_0x33c473(0x253)]?.['files'],_0x9997b7=_0x3e0695[_0x33c473(0x2f3)][0x0];reportMorphError({'error_message':_0x5e864f,'error_type':_0x5e0c27?_0x33c473(0x1ef):_0x9997b7?.[_0x33c473(0x2e7)]?.[_0x33c473(0x280)]||_0x33c473(0x1fa),'context':{'tool':_0x33c473(0x269),'repo_path':_0x1cc8f6[_0x33c473(0x1de)]['repo_path'],'query':_0x1cc8f6[_0x33c473(0x1de)][_0x33c473(0x26f)],'model':_0x33c473(0x223),'termination_reason':_0x3e0695['terminationReason'],'error_count':_0x3e0695[_0x33c473(0x2f3)][_0x33c473(0x230)],'is_timeout':_0x5e0c27,'timings':_0x3e0695[_0x33c473(0x20b)],'files_attempted':_0x532771?.[_0x33c473(0x274)](_0x3d63df=>({'path':_0x3d63df[_0x33c473(0x1d2)],'lines':_0x3d63df[_0x33c473(0x1e2)]})),'tool_calls':_0x2741d1(_0x3e0695[_0x33c473(0x278)]),'messages':_0x3e0695[_0x33c473(0x278)]?.[_0x33c473(0x274)](_0x68a7c2=>({'role':_0x68a7c2[_0x33c473(0x1e3)],'content':_0x68a7c2[_0x33c473(0x2ef)]})),'request_content':{'query':_0x1cc8f6[_0x33c473(0x1de)][_0x33c473(0x26f)],'repo_path':_0x1cc8f6[_0x33c473(0x1de)]['repo_path'],'repoRoot':a0_0x17d018['resolve'](_0x1cc8f6[_0x33c473(0x1de)][_0x33c473(0x2d8)]),'model':_0x33c473(0x223)}},'stack_trace':_0x9997b7?.[_0x33c473(0x295)]||undefined,'source':_0x33c473(0x242)})[_0x33c473(0x287)](()=>{});}else _0x338fd7=_0x33c473(0x1f7);}return{'content':[{'type':_0x33c473(0x29f),'text':_0x338fd7}]};}catch(_0x428c44){const _0x13488b=_0x428c44 instanceof Error?_0x428c44[_0x33c473(0x21a)]:String(_0x428c44),_0x3a85b8=_0x13488b[_0x33c473(0x24f)]()[_0x33c473(0x2dc)](_0x33c473(0x1e9))||_0x13488b[_0x33c473(0x24f)]()[_0x33c473(0x2dc)](_0x33c473(0x2e4))||_0x13488b[_0x33c473(0x24f)]()[_0x33c473(0x2dc)](_0x33c473(0x2b3))||_0x428c44 instanceof Error&&_0x428c44['name']===_0x33c473(0x1ef);return reportMorphError({'error_message':_0x13488b,'error_type':_0x3a85b8?_0x33c473(0x1ef):_0x428c44 instanceof Error?_0x428c44[_0x33c473(0x2e7)][_0x33c473(0x280)]:_0x33c473(0x28f),'context':{'tool':_0x33c473(0x269),'repo_path':_0x1cc8f6[_0x33c473(0x1de)][_0x33c473(0x2d8)],'query':_0x1cc8f6[_0x33c473(0x1de)][_0x33c473(0x26f)],'model':_0x33c473(0x223),'is_timeout':_0x3a85b8,'exception_phase':_0x33c473(0x2b0),'request_content':{'query':_0x1cc8f6[_0x33c473(0x1de)][_0x33c473(0x26f)],'repo_path':_0x1cc8f6[_0x33c473(0x1de)][_0x33c473(0x2d8)],'repoRoot':a0_0x17d018['resolve'](_0x1cc8f6[_0x33c473(0x1de)][_0x33c473(0x2d8)]),'model':'morph-warp-grep-v1-1111v0'}},'stack_trace':_0x428c44 instanceof Error?_0x428c44['stack']:undefined,'source':'mcp-filesystem'})[_0x33c473(0x287)](()=>{}),{'content':[{'type':'text','text':'Error\x20running\x20fast\x20context\x20search:\x20'+_0x13488b}],'isError':![]};}}case _0x33c473(0x2bd):{const _0x58e8af=WarpGrepGitHubArgsSchema[_0x33c473(0x296)](_0x3ffd1a);if(!_0x58e8af[_0x33c473(0x2c9)])return{'content':[{'type':_0x33c473(0x29f),'text':'Invalid\x20arguments:\x20'+_0x58e8af[_0x33c473(0x234)]}],'isError':!![]};const _0x212f9c=_0x58e8af[_0x33c473(0x1de)][_0x33c473(0x27a)]||_0x58e8af[_0x33c473(0x1de)][_0x33c473(0x1e7)];if(!_0x212f9c)return{'content':[{'type':'text','text':_0x33c473(0x2d4)}],'isError':!![]};const _0x51291a=MORPH_API_KEY;if(!_0x51291a)throw new Error(_0x33c473(0x262));const _0x12ecc1=Date[_0x33c473(0x202)]();console['error'](_0x33c473(0x21e)+_0x212f9c+_0x33c473(0x2aa)+_0x58e8af[_0x33c473(0x1de)][_0x33c473(0x26f)]+'\x22');try{const _0x367047=new WarpGrepClient({'morphApiKey':_0x51291a,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0x3e7690=await _0x367047[_0x33c473(0x2a3)]({'query':_0x58e8af['data'][_0x33c473(0x26f)],'github':_0x212f9c,'branch':_0x58e8af['data'][_0x33c473(0x1f9)]}),_0x4abcb2=Date[_0x33c473(0x202)]()-_0x12ecc1;console[_0x33c473(0x234)](_0x33c473(0x2e5)+_0x4abcb2+_0x33c473(0x2dd)+_0x3e7690['success']);const _0x5e341b=formatResult(_0x3e7690);return{'content':[{'type':_0x33c473(0x29f),'text':_0x5e341b}]};}catch(_0x2da1de){const _0x24c703=Date['now']()-_0x12ecc1,_0x33a713=_0x2da1de instanceof Error?_0x2da1de[_0x33c473(0x21a)]:String(_0x2da1de);return console['error'](_0x33c473(0x2ac)+_0x24c703+_0x33c473(0x236),_0x33a713),reportMorphError({'error_message':_0x33a713,'error_type':_0x2da1de instanceof Error?_0x2da1de[_0x33c473(0x2e7)]['name']:'UnknownError','context':{'tool':'warpgrep_github_search','github_url':_0x212f9c,'search_string':_0x58e8af[_0x33c473(0x1de)][_0x33c473(0x26f)],'branch':_0x58e8af['data'][_0x33c473(0x1f9)]},'stack_trace':_0x2da1de instanceof Error?_0x2da1de[_0x33c473(0x295)]:undefined,'source':_0x33c473(0x242),'tool':'warpgrep_github_search','latency_ms':_0x24c703})[_0x33c473(0x287)](()=>{}),{'content':[{'type':_0x33c473(0x29f),'text':'GitHub\x20search\x20failed:\x20'+_0x33a713}],'isError':![]};}}case _0x33c473(0x2c7):{const _0x4af9e9=CodebaseSearchArgsSchema[_0x33c473(0x296)](_0x3ffd1a);if(!_0x4af9e9[_0x33c473(0x2c9)])return{'content':[{'type':'text','text':_0x33c473(0x249)+_0x4af9e9['error']}],'isError':!![]};try{const _0x39746e=MORPH_API_KEY;if(!_0x39746e)throw new Error(_0x33c473(0x2da));const _0x27dbd4=_0x4af9e9[_0x33c473(0x1de)]['targetDirectories'],_0x439138=await executeCodebaseSearch({'query':_0x4af9e9[_0x33c473(0x1de)][_0x33c473(0x211)],'target_directories':_0x27dbd4,'limit':_0x4af9e9[_0x33c473(0x1de)][_0x33c473(0x28b)]},{'apiKey':_0x39746e,'repoId':_0x4af9e9[_0x33c473(0x1de)]['repoId'],'branch':_0x4af9e9[_0x33c473(0x1de)][_0x33c473(0x1f9)],'commitHash':_0x4af9e9[_0x33c473(0x1de)]['commitHash'],'debug':![]});if(!_0x439138[_0x33c473(0x2c9)])return{'content':[{'type':_0x33c473(0x29f),'text':_0x33c473(0x261)+_0x439138[_0x33c473(0x234)]}],'isError':!![]};const _0x107760=_0x439138[_0x33c473(0x241)][_0x33c473(0x230)]===0x0?_0x33c473(0x1ff)+_0x4af9e9[_0x33c473(0x1de)][_0x33c473(0x211)]+'\x22':_0x33c473(0x1ed)+_0x439138[_0x33c473(0x241)]['length']+_0x33c473(0x2e9)+_0x439138[_0x33c473(0x291)][_0x33c473(0x1fb)]+_0x33c473(0x23d)+_0x439138[_0x33c473(0x241)][_0x33c473(0x274)]((_0x26e058,_0x16f992)=>_0x16f992+0x1+'.\x20'+_0x26e058['filepath']+'\x20('+(_0x26e058['rerankScore']*0x64)[_0x33c473(0x251)](0x1)+_0x33c473(0x25d)+(_0x33c473(0x27b)+_0x26e058['startLine']+'-'+_0x26e058['endLine']+'\x0a')+(_0x33c473(0x26d)+_0x26e058[_0x33c473(0x2ef)][_0x33c473(0x1f5)](0x0,0xc8)+(_0x26e058[_0x33c473(0x2ef)][_0x33c473(0x230)]>0xc8?_0x33c473(0x255):'')+'\x0a'))[_0x33c473(0x28a)]('\x0a');return{'content':[{'type':_0x33c473(0x29f),'text':_0x107760}]};}catch(_0x2fa775){const _0x5d4642=_0x2fa775 instanceof Error?_0x2fa775['message']:String(_0x2fa775);return reportMorphError({'error_message':_0x5d4642,'error_type':_0x2fa775 instanceof Error?_0x2fa775['constructor'][_0x33c473(0x280)]:_0x33c473(0x28f),'context':{'tool':'codebase_search','query':_0x4af9e9['data'][_0x33c473(0x211)],'repo_id':_0x4af9e9[_0x33c473(0x1de)]['repoId'],'target_directories':_0x4af9e9[_0x33c473(0x1de)]['targetDirectories']},'stack_trace':_0x2fa775 instanceof Error?_0x2fa775['stack']:undefined,'source':_0x33c473(0x242)})[_0x33c473(0x287)](()=>{}),{'content':[{'type':_0x33c473(0x29f),'text':_0x33c473(0x27e)+_0x5d4642}],'isError':!![]};}}default:throw new Error(_0x33c473(0x215)+_0xa3bb73);}}catch(_0x25d71f){const _0x40f6c8=_0x25d71f instanceof Error?_0x25d71f['message']:String(_0x25d71f);return reportMorphError({'error_message':_0x40f6c8,'error_type':_0x25d71f instanceof Error?_0x25d71f[_0x33c473(0x2e7)][_0x33c473(0x280)]:'UnknownError','context':{'tool':name,'arguments':args?JSON[_0x33c473(0x1da)](args)[_0x33c473(0x1f5)](0x0,0x1f4):undefined,'mcp_server_version':'0.2.0'},'stack_trace':_0x25d71f instanceof Error?_0x25d71f[_0x33c473(0x295)]:undefined,'source':'mcp-filesystem'})[_0x33c473(0x287)](()=>{}),{'content':[{'type':_0x33c473(0x29f),'text':_0x33c473(0x27e)+_0x40f6c8}],'isError':!![]};}});function a0_0x56fe(_0x5f5dc4,_0x458b18){_0x5f5dc4=_0x5f5dc4-0x1d2;const _0x77c66=a0_0x77c6();let _0x56fe22=_0x77c66[_0x5f5dc4];return _0x56fe22;}async function updateAllowedDirectoriesFromRoots(_0x4171e8){const _0x4c75ab=a0_0x4ac72e,_0x34d5aa=await getValidRootDirectories(_0x4171e8);if(_0x34d5aa[_0x4c75ab(0x230)]>0x0)allowedDirectories=[..._0x34d5aa],console['error'](_0x4c75ab(0x297)+_0x34d5aa['length']+_0x4c75ab(0x28d));else{console[_0x4c75ab(0x234)](_0x4c75ab(0x27d));if(ENABLE_WORKSPACE_MODE)try{const _0x44a2b5=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x44a2b5&&(allowedDirectories=[_0x44a2b5],console[_0x4c75ab(0x234)](_0x4c75ab(0x1ea)+_0x44a2b5));}catch(_0x4d9c0d){console[_0x4c75ab(0x234)](_0x4c75ab(0x2e0)+_0x4d9c0d);}}}server[a0_0x4ac72e(0x2b7)](RootsListChangedNotificationSchema,async()=>{const _0x50d0c9=a0_0x4ac72e;try{const _0x3e45cb=await server[_0x50d0c9(0x2ce)]();_0x3e45cb&&_0x50d0c9(0x221)in _0x3e45cb&&await updateAllowedDirectoriesFromRoots(_0x3e45cb[_0x50d0c9(0x221)]);}catch(_0x56ba1b){console[_0x50d0c9(0x234)](_0x50d0c9(0x2cc),_0x56ba1b instanceof Error?_0x56ba1b[_0x50d0c9(0x21a)]:String(_0x56ba1b));}}),server[a0_0x4ac72e(0x1fe)]=async()=>{const _0x324672=a0_0x4ac72e,_0x4c0b78=server[_0x324672(0x2d7)]();if(_0x4c0b78?.['roots'])try{const _0x2b9abf=await server[_0x324672(0x2ce)]();_0x2b9abf&&_0x324672(0x221)in _0x2b9abf?await updateAllowedDirectoriesFromRoots(_0x2b9abf[_0x324672(0x221)]):console[_0x324672(0x234)](_0x324672(0x2b8));}catch(_0x38fc53){console['error'](_0x324672(0x257),_0x38fc53 instanceof Error?_0x38fc53['message']:String(_0x38fc53));}else{if(allowedDirectories[_0x324672(0x230)]>0x0)console[_0x324672(0x234)]('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:',allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console[_0x324672(0x234)](_0x324672(0x216));else throw new Error('Server\x20cannot\x20operate:\x20No\x20allowed\x20directories\x20available.\x20Server\x20was\x20started\x20without\x20command-line\x20directories\x20and\x20client\x20either\x20does\x20not\x20support\x20MCP\x20roots\x20protocol\x20or\x20provided\x20empty\x20roots.\x20Please\x20either:\x201)\x20Start\x20server\x20with\x20directory\x20arguments,\x202)\x20Use\x20a\x20client\x20that\x20supports\x20MCP\x20roots\x20protocol\x20and\x20provides\x20valid\x20root\x20directories,\x20or\x203)\x20Enable\x20workspace\x20mode\x20with\x20ENABLE_WORKSPACE_MODE=true.');}}};async function runServer(){const _0xdf596a=a0_0x4ac72e,_0x46c1ca=new StdioServerTransport();await server[_0xdf596a(0x20d)](_0x46c1ca),console[_0xdf596a(0x234)](_0xdf596a(0x219)),allowedDirectories[_0xdf596a(0x230)]===0x0&&console[_0xdf596a(0x234)]('Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol');}runServer()[a0_0x4ac72e(0x287)](_0x315b2e=>{const _0x1d0fb4=a0_0x4ac72e;console[_0x1d0fb4(0x234)](_0x1d0fb4(0x298),_0x315b2e),process[_0x1d0fb4(0x226)](0x1);});
2
+ const a0_0x44d8d0=a0_0x2993;(function(_0x293a22,_0x1dc8c5){const _0x2a989e=a0_0x2993,_0x1af41f=_0x293a22();while(!![]){try{const _0x3d69f1=parseInt(_0x2a989e(0x199))/0x1*(parseInt(_0x2a989e(0x1d0))/0x2)+-parseInt(_0x2a989e(0x23e))/0x3*(parseInt(_0x2a989e(0x251))/0x4)+parseInt(_0x2a989e(0x245))/0x5*(-parseInt(_0x2a989e(0x279))/0x6)+-parseInt(_0x2a989e(0x265))/0x7*(parseInt(_0x2a989e(0x24c))/0x8)+parseInt(_0x2a989e(0x242))/0x9*(parseInt(_0x2a989e(0x1eb))/0xa)+parseInt(_0x2a989e(0x207))/0xb+parseInt(_0x2a989e(0x1fb))/0xc*(parseInt(_0x2a989e(0x253))/0xd);if(_0x3d69f1===_0x1dc8c5)break;else _0x1af41f['push'](_0x1af41f['shift']());}catch(_0x34431c){_0x1af41f['push'](_0x1af41f['shift']());}}}(a0_0x4d2c,0x2f54c));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_0x5d9aab from'fs/promises';import a0_0x5cf1e3 from'path';import a0_0x330205 from'os';import{createRequire}from'module';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider,GITHUB_SEARCH_TOOL_NAME,GITHUB_SEARCH_DESCRIPTION}from'@morphllm/morphsdk/tools/warp-grep';import{WarpGrepClient,formatResult}from'@morphllm/morphsdk/tools/warp-grep/client';import{executeCodebaseSearch}from'@morphllm/morphsdk/tools/codebase-search';import a0_0x589aab from'axios';function fixPathRepetition(_0x400420){const _0x161b76=a0_0x2993,_0x4069c5=_0x400420[_0x161b76(0x217)](a0_0x5cf1e3[_0x161b76(0x26f)])[_0x161b76(0x1a9)](Boolean);if(_0x4069c5[_0x161b76(0x1b9)]<0x2)return null;for(let _0x4c0867=Math['floor'](_0x4069c5[_0x161b76(0x1b9)]/0x2);_0x4c0867>=0x1;_0x4c0867--){for(let _0x43353f=0x0;_0x43353f<=_0x4069c5[_0x161b76(0x1b9)]-0x2*_0x4c0867;_0x43353f++){const _0x2f1e2b=_0x4069c5['slice'](_0x43353f,_0x43353f+_0x4c0867),_0x8efc4c=_0x4069c5[_0x161b76(0x1ae)](_0x43353f+_0x4c0867,_0x43353f+0x2*_0x4c0867);if(_0x2f1e2b['every']((_0x23eeb2,_0x29ffac)=>_0x23eeb2===_0x8efc4c[_0x29ffac])){const _0x38453b=[..._0x4069c5[_0x161b76(0x1ae)](0x0,_0x43353f),..._0x4069c5[_0x161b76(0x1ae)](_0x43353f+_0x4c0867)];return a0_0x5cf1e3[_0x161b76(0x26f)]+_0x38453b[_0x161b76(0x1da)](a0_0x5cf1e3[_0x161b76(0x26f)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x5ad6e0=a0_0x2993;try{const _0x241ca6=require(_0x5ad6e0(0x249));return _0x241ca6['version']??'unknown';}catch(_0x24b017){return console['error'](_0x5ad6e0(0x263),_0x24b017),'unknown';}}function printHelp(){const _0x2b764c=a0_0x2993;console[_0x2b764c(0x1f7)]('@morphllm/morphmcp\x20'+getPackageVersion()),console['log']('\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]'),console[_0x2b764c(0x1f7)](_0x2b764c(0x244)),console['log']('\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)'),console[_0x2b764c(0x1f7)](_0x2b764c(0x174)),console[_0x2b764c(0x1f7)]('\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit'),console['log'](_0x2b764c(0x23a)),console[_0x2b764c(0x1f7)]('\x20\x20morph-mcp'),console[_0x2b764c(0x1f7)]('\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo');}const cliArgs=process[a0_0x44d8d0(0x184)][a0_0x44d8d0(0x1ae)](0x2),VERSION_FLAGS=new Set([a0_0x44d8d0(0x22b),'-v','-V']),HELP_FLAGS=new Set([a0_0x44d8d0(0x211),'-h']);function a0_0x4d2c(){const _0x4a7252=['data','repo_path','Failed\x20to\x20request\x20roots\x20from\x20client:','code','listRoots','edit_file','env','searchTimeMs','@morphllm/morphmcp\x20','6CKpKrl','ToolException','match','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.','Here\x20is\x20the\x20content\x20of\x20files:\x0a','messages','role','.cursor','describe','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','some','Max\x20results\x20to\x20return','ms:\x0a\x0a',',\x20removed\x20','\x20results\x20in\x20','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','includes','mcp-filesystem','trim','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','[warpgrep_github_search]\x20Failed\x20in\x20','-\x20Grepped\x20\x27','Relevant\x20context\x20found:','search_type','exit','linesRemoved','false','array','\x20is\x20not\x20a\x20directory','terminationReason','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20','MORPH_WARP_GREP_TIMEOUT','unknown\x20error','files','argv','\x0a</file>','.\x20Path:\x20','assistant','Warning:\x20Workspace\x20fallback\x20failed:\x20',',\x20modified\x20','filepath','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','runWarpGrep_call','content','\x22>\x0aError\x20reading\x20file:\x20','requiresApiKey','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','endLine','access','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','has','Warning:\x20','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','sk-','No\x20relevant\x20code\x20found\x20for\x20the\x20query.','1307jwTmlW','timings','Error:\x20','read','instruction','substring','basename','all','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','MORPH_API_KEY','utf-8','homedir','tsconfig.json','list_directory\x20','constructor','filter','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','query','repoId','FileNotFound','slice','unknown','Found\x20','Search\x20type\x20hint.\x20Use\x20\x27node_modules\x27\x20when\x20searching\x20inside\x20node_modules\x20or\x20other\x20dependency\x20directories\x20that\x20are\x20normally\x20excluded.','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20','setNotificationHandler','-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a','changes','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','morph-','length','⚡\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a','UnknownError','-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a','startsWith','timed\x20out','Enabled\x20tools:\x20','Error\x20accessing\x20directory\x20','BinaryFile','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','\x20-\x20','--api-key=','indexOf','source','\x20error(s)','-\x20Listed\x20directory\x20`','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','completed_with_file_errors','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20','warn','Preview\x20changes\x20without\x20applying\x20them.','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','94FWjsWv','name','ENABLED_TOOLS','params','ms.\x20Success:\x20','**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','WarpGrepError','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','TimeoutError','join','%\x20match)\x0a','object','commitHash','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','terminated','No\x20results\x20found\x20for\x20query:\x20\x22','normalize','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','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.','morph-v3-fast','dirname','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','Morph\x20FastApply\x20failed\x20without\x20error\x20message','codebase_search','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','WarpGrep\x20sub-tool\x20errors:\x20','20fqUKQA','inputSchema','stack','node_modules','\x27\x20in\x20`','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','stringify','\x20as\x20allowed\x20directory','roots','catch','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','readFile','log','default','dryRun','linesModified','12eIDdbd','RipgrepNotAvailable','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','isArray','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','realpath','optional','Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20','toISOString','Parent\x20directory\x20does\x20not\x20exist:\x20','morph-warp-grep-v1-1111v0','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','3168462ENsiAU','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.','[warpgrep_github_search]\x20Done\x20in\x20','grep\x20\x27','code_edit','errors','.\x20Changes:\x20','Invalid\x20arguments:\x20','</file>','SubToolError','--help','boolean','Fallback:\x20Using\x20workspace\x20root\x20','Benefits:\x0a','text','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','split','grep','ReadError','\x20\x20\x20Lines\x20','\x0a...\x20(truncated,\x20total:\x20','GitHub\x20search\x20failed:\x20','api-key','limit','Repository\x20identifier','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','metadata','success','Applied','ms:','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','composer.json','Search\x20failed:\x20','warpgrep_codebase_search','finish','push','--version','MORPH_API_URL','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','<file\x20path=\x22','RipgrepError','description','oninitialized','github_url','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','[warpgrep_github_search]\x20Searching\x20','message','cwd','map','lines','-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a','\x0aExamples:','warpgrep_github_search','error','search_string','327tfxLTV','results','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','Created\x20File','612297phZMsc','...','\x0aOptions:','1573235dSjGpG','Workspace\x20mode\x20enabled:\x20Using\x20','number','targetDirectories','../package.json','Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for','FileReadError','16EuNldM','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','stat','isDirectory','timeout','16TuPFCz','string','3278886lBDrAt','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','WORKSPACE_ROOT','stats','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','ENOENT','setRequestHandler','Please\x20provide\x20github\x20search\x20url\x20or\x20owner/repo\x20id','owner_repo','safeParse','toLowerCase','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','Fatal\x20error\x20running\x20server:','branch','path','enum','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','now','800828nixdEd','toFixed','resolve','etimedout','\x20\x20\x20','0.2.0','-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','SymlinkError','startLine','sep'];a0_0x4d2c=function(){return _0x4a7252;};return a0_0x4d2c();}cliArgs[a0_0x44d8d0(0x283)](_0x2ce406=>VERSION_FLAGS[a0_0x44d8d0(0x194)](_0x2ce406))&&(console[a0_0x44d8d0(0x1f7)](a0_0x44d8d0(0x278)+getPackageVersion()),process[a0_0x44d8d0(0x179)](0x0));function a0_0x2993(_0x15ee43,_0x425bbe){_0x15ee43=_0x15ee43-0x16c;const _0x4d2c74=a0_0x4d2c();let _0x2993d6=_0x4d2c74[_0x15ee43];return _0x2993d6;}cliArgs[a0_0x44d8d0(0x283)](_0x265c28=>HELP_FLAGS[a0_0x44d8d0(0x194)](_0x265c28))&&(printHelp(),process[a0_0x44d8d0(0x179)](0x0));function getCliArg(_0x1b91fd){const _0x5deab5=a0_0x44d8d0;for(let _0x698f71=0x0;_0x698f71<cliArgs[_0x5deab5(0x1b9)];_0x698f71++){const _0x34ca2e=cliArgs[_0x698f71];if(_0x34ca2e[_0x5deab5(0x1bd)]('--'+_0x1b91fd+'='))return _0x34ca2e['slice'](('--'+_0x1b91fd+'=')[_0x5deab5(0x1b9)]);if(_0x34ca2e==='--'+_0x1b91fd&&_0x698f71+0x1<cliArgs[_0x5deab5(0x1b9)])return cliArgs[_0x698f71+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs['length'];i++){const arg=cliArgs[i];if(VERSION_FLAGS[a0_0x44d8d0(0x194)](arg)||HELP_FLAGS[a0_0x44d8d0(0x194)](arg))continue;if(arg[a0_0x44d8d0(0x1bd)](a0_0x44d8d0(0x1c4)))continue;if(arg==='--api-key'){i++;continue;}args['push'](arg);}const ALL_TOOLS=[a0_0x44d8d0(0x275),'warpgrep_codebase_search',a0_0x44d8d0(0x23b),a0_0x44d8d0(0x1e8)],DEFAULT_TOOLS=[a0_0x44d8d0(0x275),a0_0x44d8d0(0x228),a0_0x44d8d0(0x23b)],ENABLED_TOOLS=process[a0_0x44d8d0(0x276)][a0_0x44d8d0(0x1d2)]?process[a0_0x44d8d0(0x276)]['ENABLED_TOOLS']==='all'?ALL_TOOLS:process[a0_0x44d8d0(0x276)]['ENABLED_TOOLS'][a0_0x44d8d0(0x217)](',')['map'](_0x36dc93=>_0x36dc93[a0_0x44d8d0(0x173)]()):DEFAULT_TOOLS;console['error'](a0_0x44d8d0(0x1bf)+ENABLED_TOOLS['join'](',\x20'));const WORKSPACE_ROOT=process[a0_0x44d8d0(0x276)][a0_0x44d8d0(0x255)]||process['env']['PWD']||process[a0_0x44d8d0(0x236)](),ENABLE_WORKSPACE_MODE=process[a0_0x44d8d0(0x276)]['ENABLE_WORKSPACE_MODE']!==a0_0x44d8d0(0x17b),MORPH_API_KEY=getCliArg(a0_0x44d8d0(0x21d))??process[a0_0x44d8d0(0x276)][a0_0x44d8d0(0x1a3)],MORPH_API_URL=process[a0_0x44d8d0(0x276)][a0_0x44d8d0(0x22c)],MORPH_WARP_GREP_TIMEOUT=process[a0_0x44d8d0(0x276)][a0_0x44d8d0(0x181)]?parseInt(process[a0_0x44d8d0(0x276)][a0_0x44d8d0(0x181)],0xa):undefined;MORPH_API_KEY&&!MORPH_API_KEY[a0_0x44d8d0(0x1bd)](a0_0x44d8d0(0x197))&&!MORPH_API_KEY[a0_0x44d8d0(0x1bd)](a0_0x44d8d0(0x1b8))&&console[a0_0x44d8d0(0x23c)](a0_0x44d8d0(0x1a2));async function reportMorphError(_0x5c9991){const _0x2005f7=a0_0x44d8d0;try{await a0_0x589aab['post']('https://morphllm.com/api/error-report',{..._0x5c9991,'timestamp':new Date()[_0x2005f7(0x203)](),'source':_0x5c9991[_0x2005f7(0x1c6)]||_0x2005f7(0x172)},{'timeout':0x1388,'headers':{'Content-Type':'application/json','Authorization':'Bearer\x20'+MORPH_API_KEY}});}catch{}}args[a0_0x44d8d0(0x1b9)]===0x0&&!ENABLE_WORKSPACE_MODE&&(console['error']('Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]'),console['error'](a0_0x44d8d0(0x1d8)),console[a0_0x44d8d0(0x23c)](a0_0x44d8d0(0x1a1)),console[a0_0x44d8d0(0x23c)](a0_0x44d8d0(0x1e2)),console[a0_0x44d8d0(0x23c)](a0_0x44d8d0(0x17f)),console[a0_0x44d8d0(0x23c)](a0_0x44d8d0(0x16e)));function normalizePath(_0x1755ac){const _0x3a169e=a0_0x44d8d0;return a0_0x5cf1e3[_0x3a169e(0x1e1)](_0x1755ac);}function expandHome(_0x9895d0){const _0x4503db=a0_0x44d8d0;if(_0x9895d0[_0x4503db(0x1bd)]('~/')||_0x9895d0==='~')return a0_0x5cf1e3[_0x4503db(0x1da)](a0_0x330205[_0x4503db(0x1a5)](),_0x9895d0[_0x4503db(0x1ae)](0x1));return _0x9895d0;}let allowedDirectories=await Promise[a0_0x44d8d0(0x1a0)](args[a0_0x44d8d0(0x237)](async _0x3e7ae5=>{const _0x465c54=a0_0x44d8d0,_0x4f9090=expandHome(_0x3e7ae5),_0x1f17a2=a0_0x5cf1e3[_0x465c54(0x267)](_0x4f9090);try{const _0x3a0e6b=await a0_0x5d9aab[_0x465c54(0x200)](_0x1f17a2);return normalizePath(_0x3a0e6b);}catch(_0x16782c){return normalizePath(_0x1f17a2);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x44d8d0(0x1b9)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x44d8d0(0x22a)](workspaceDir),console['error'](a0_0x44d8d0(0x246)+workspaceDir+a0_0x44d8d0(0x1f2)));}catch(a0_0x629689){console['error'](a0_0x44d8d0(0x225)+a0_0x629689);}async function detectWorkspaceRoot(_0x41f393){const _0x986b12=a0_0x44d8d0;let _0x5b535d=a0_0x5cf1e3[_0x986b12(0x267)](_0x41f393);const _0x14e2bf=['.git','.vscode','package.json','Cargo.toml','pyproject.toml','go.mod',_0x986b12(0x280),_0x986b12(0x1a6),_0x986b12(0x226)];while(_0x5b535d!==a0_0x5cf1e3[_0x986b12(0x1e5)](_0x5b535d)){for(const _0x314678 of _0x14e2bf){const _0x8cbbf3=a0_0x5cf1e3[_0x986b12(0x1da)](_0x5b535d,_0x314678);try{return await a0_0x5d9aab[_0x986b12(0x192)](_0x8cbbf3),normalizePath(_0x5b535d);}catch{}}_0x5b535d=a0_0x5cf1e3[_0x986b12(0x1e5)](_0x5b535d);}return normalizePath(_0x41f393);}await Promise['all'](args[a0_0x44d8d0(0x237)](async _0x45c617=>{const _0x5ecaca=a0_0x44d8d0;try{const _0x468a27=await a0_0x5d9aab[_0x5ecaca(0x24e)](expandHome(_0x45c617));!_0x468a27[_0x5ecaca(0x24f)]()&&(console[_0x5ecaca(0x23c)](_0x5ecaca(0x19b)+_0x45c617+_0x5ecaca(0x17d)),process[_0x5ecaca(0x179)](0x1));}catch(_0x6bcc0a){console[_0x5ecaca(0x23c)](_0x5ecaca(0x1c0)+_0x45c617+':',_0x6bcc0a),process['exit'](0x1);}}));async function validatePath(_0x1c1ab4){const _0x352cf3=a0_0x44d8d0,_0x321b8a=expandHome(_0x1c1ab4),_0xf082c1=a0_0x5cf1e3[_0x352cf3(0x267)](_0x321b8a);try{const _0x34cb9d=await a0_0x5d9aab[_0x352cf3(0x200)](_0xf082c1);return _0x34cb9d;}catch(_0x3619dc){if(_0x3619dc[_0x352cf3(0x273)]===_0x352cf3(0x258)){const _0x542f14=a0_0x5cf1e3[_0x352cf3(0x1e5)](_0xf082c1);try{const _0x22adeb=await a0_0x5d9aab[_0x352cf3(0x200)](_0x542f14);return a0_0x5cf1e3['join'](_0x22adeb,a0_0x5cf1e3[_0x352cf3(0x19f)](_0xf082c1));}catch{throw new Error(_0x352cf3(0x204)+_0x542f14);}}throw _0x3619dc;}}const MorphEditFileArgsSchema=z['object']({'path':z[a0_0x44d8d0(0x252)](),'code_edit':z['string']()['describe'](a0_0x44d8d0(0x170)),'instruction':z[a0_0x44d8d0(0x252)]()[a0_0x44d8d0(0x281)]('A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.'),'dryRun':z[a0_0x44d8d0(0x212)]()['default'](![])[a0_0x44d8d0(0x281)](a0_0x44d8d0(0x1cd))}),WarpGrepArgsSchema=z[a0_0x44d8d0(0x1dc)]({'search_string':z[a0_0x44d8d0(0x252)]()[a0_0x44d8d0(0x281)]('Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for'),'repo_path':z[a0_0x44d8d0(0x252)]()[a0_0x44d8d0(0x281)](a0_0x44d8d0(0x1c2)),'search_type':z[a0_0x44d8d0(0x262)]([a0_0x44d8d0(0x1f8),a0_0x44d8d0(0x1ee)])[a0_0x44d8d0(0x201)]()[a0_0x44d8d0(0x281)](a0_0x44d8d0(0x1b1))}),WarpGrepGitHubArgsSchema=z[a0_0x44d8d0(0x1dc)]({'search_string':z['string']()['describe'](a0_0x44d8d0(0x24a)),'github_url':z[a0_0x44d8d0(0x252)]()[a0_0x44d8d0(0x201)]()[a0_0x44d8d0(0x281)](a0_0x44d8d0(0x208)),'owner_repo':z[a0_0x44d8d0(0x252)]()['optional']()[a0_0x44d8d0(0x281)]('Repository\x20owner/repo\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.'),'branch':z['string']()['optional']()[a0_0x44d8d0(0x281)]('Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)')}),CodebaseSearchArgsSchema=z[a0_0x44d8d0(0x1dc)]({'query':z[a0_0x44d8d0(0x252)]()[a0_0x44d8d0(0x281)]('Natural\x20language\x20query\x20to\x20search\x20for\x20code'),'repoId':z[a0_0x44d8d0(0x252)]()[a0_0x44d8d0(0x281)](a0_0x44d8d0(0x21f)),'branch':z['string']()[a0_0x44d8d0(0x201)]()[a0_0x44d8d0(0x281)](a0_0x44d8d0(0x282)),'commitHash':z[a0_0x44d8d0(0x252)]()[a0_0x44d8d0(0x201)]()[a0_0x44d8d0(0x281)]('Specific\x20commit\x20hash\x20to\x20search'),'targetDirectories':z[a0_0x44d8d0(0x17c)](z[a0_0x44d8d0(0x252)]())[a0_0x44d8d0(0x1f8)]([])[a0_0x44d8d0(0x281)](a0_0x44d8d0(0x24d)),'limit':z[a0_0x44d8d0(0x247)]()[a0_0x44d8d0(0x201)]()[a0_0x44d8d0(0x1f8)](0xa)[a0_0x44d8d0(0x281)](a0_0x44d8d0(0x284))}),server=new Server({'name':'morph-mcp','version':a0_0x44d8d0(0x26a)},{'capabilities':{'tools':{}}});server[a0_0x44d8d0(0x259)](ListToolsRequestSchema,async()=>{const _0x232afd=a0_0x44d8d0,_0x3c269a=[{'name':_0x232afd(0x275),'description':_0x232afd(0x1ce)+_0x232afd(0x25e)+'🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a'+_0x232afd(0x1f0)+_0x232afd(0x214)+_0x232afd(0x26c)+_0x232afd(0x1de)+'-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a'+'-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a'+_0x232afd(0x1b7)+_0x232afd(0x16d)+_0x232afd(0x254)+'For\x20deletions:\x0a'+_0x232afd(0x1d6)+'-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a'+'Rules:\x0a'+_0x232afd(0x220)+_0x232afd(0x1fd)+_0x232afd(0x1b2)+_0x232afd(0x1ff)+'-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a'+_0x232afd(0x1cf)+_0x232afd(0x1f5),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':_0x232afd(0x228),'description':_0x232afd(0x1b3)+_0x232afd(0x216)+'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'+_0x232afd(0x1cb)+_0x232afd(0x27c)+'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'+_0x232afd(0x1e9)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':GITHUB_SEARCH_TOOL_NAME,'description':GITHUB_SEARCH_DESCRIPTION,'inputSchema':zodToJsonSchema(WarpGrepGitHubArgsSchema),'requiresApiKey':!![]},{'name':_0x232afd(0x1e8),'description':_0x232afd(0x1d5)+_0x232afd(0x1ba)+'🎯\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a'+_0x232afd(0x214)+_0x232afd(0x1bc)+_0x232afd(0x239)+_0x232afd(0x1b5)+_0x232afd(0x26b)+_0x232afd(0x202)+_0x232afd(0x180)+_0x232afd(0x193),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x18bea8=_0x3c269a[_0x232afd(0x1a9)](_0x22ebf5=>{const _0x103a3a=_0x232afd;if(!ENABLED_TOOLS[_0x103a3a(0x171)](_0x22ebf5[_0x103a3a(0x1d1)]))return![];if(_0x103a3a(0x18f)in _0x22ebf5&&_0x22ebf5[_0x103a3a(0x18f)]&&!MORPH_API_KEY)return console[_0x103a3a(0x23c)](_0x103a3a(0x195)+_0x22ebf5[_0x103a3a(0x1d1)]+_0x103a3a(0x22d)),![];return!![];});return{'tools':_0x18bea8[_0x232afd(0x237)](_0x383b4f=>({'name':_0x383b4f[_0x232afd(0x1d1)],'description':_0x383b4f[_0x232afd(0x230)],'inputSchema':_0x383b4f[_0x232afd(0x1ec)]}))};}),server[a0_0x44d8d0(0x259)](CallToolRequestSchema,async _0x56f4df=>{const _0x1d315f=a0_0x44d8d0;try{const {name:_0x3751d1,arguments:_0x20b5d4}=_0x56f4df[_0x1d315f(0x1d3)];switch(_0x3751d1){case _0x1d315f(0x275):{const _0x57417b=MorphEditFileArgsSchema[_0x1d315f(0x25c)](_0x20b5d4);if(!_0x57417b[_0x1d315f(0x222)])throw new Error(_0x1d315f(0x1c9)+_0x57417b[_0x1d315f(0x23c)]);const _0x1c9574=await validatePath(_0x57417b['data'][_0x1d315f(0x261)]);let _0x20e9d5=null,_0x147608=!![],_0x250918=null;try{_0x20e9d5=await a0_0x5d9aab['readFile'](_0x1c9574,_0x1d315f(0x1a4));}catch(_0x26598e){const _0x28430b=_0x26598e[_0x1d315f(0x273)];_0x28430b==='ENOENT'?(_0x147608=![],_0x20e9d5=''):(_0x250918='Failed\x20to\x20read\x20file:\x20'+(_0x28430b||_0x1d315f(0x1af))+_0x1d315f(0x1c3)+(_0x26598e instanceof Error?_0x26598e[_0x1d315f(0x235)]:String(_0x26598e)),console[_0x1d315f(0x23c)]('Warning:\x20'+_0x250918));}let _0x21120e;try{const _0x147304=MORPH_API_KEY;if(!_0x147304)throw new Error(_0x1d315f(0x196));const _0x364054=a0_0x5cf1e3[_0x1d315f(0x1e5)](_0x1c9574),_0x9f3d3=a0_0x5cf1e3[_0x1d315f(0x19f)](_0x1c9574),_0x3092b3=await executeEditFile({'target_filepath':_0x9f3d3,'code_edit':_0x57417b[_0x1d315f(0x270)][_0x1d315f(0x20b)],'instructions':_0x57417b['data'][_0x1d315f(0x19d)]},{'morphApiKey':_0x147304,'morphApiUrl':MORPH_API_URL,'baseDir':_0x364054,'autoWrite':!_0x57417b[_0x1d315f(0x270)]['dryRun'],'generateUdiff':![],'debug':![]});_0x21120e=_0x3092b3['completionId'];if(!_0x3092b3[_0x1d315f(0x222)])throw new Error(_0x3092b3['error']||_0x1d315f(0x1e7));const _0x3fafd2=_0x3092b3[_0x1d315f(0x1b6)],_0x421f9c='added\x20'+_0x3fafd2['linesAdded']+_0x1d315f(0x286)+_0x3fafd2[_0x1d315f(0x17a)]+_0x1d315f(0x189)+_0x3fafd2[_0x1d315f(0x1fa)];if(_0x57417b[_0x1d315f(0x270)]['dryRun'])return{'content':[{'type':'text','text':'Morph\x20Edit\x20Preview'+(_0x147608?'':'\x20(new\x20file)')+':\x20'+_0x57417b[_0x1d315f(0x270)][_0x1d315f(0x19d)]+_0x1d315f(0x20d)+_0x421f9c+'.\x20Path:\x20'+_0x57417b[_0x1d315f(0x270)]['path']+'.'}]};return{'content':[{'type':_0x1d315f(0x215),'text':'Morph\x20Edit\x20'+(_0x147608?_0x1d315f(0x223):_0x1d315f(0x241))+':\x20'+_0x57417b[_0x1d315f(0x270)][_0x1d315f(0x19d)]+'.\x20Changes:\x20'+_0x421f9c+_0x1d315f(0x186)+_0x57417b[_0x1d315f(0x270)][_0x1d315f(0x261)]+'.'}]};}catch(_0x2717ce){const _0x586bcf=_0x2717ce instanceof Error?_0x2717ce[_0x1d315f(0x235)]:String(_0x2717ce);return reportMorphError({'error_message':_0x586bcf,'error_type':_0x2717ce instanceof Error?_0x2717ce[_0x1d315f(0x1a8)][_0x1d315f(0x1d1)]:_0x1d315f(0x1bb),'context':{'tool':'edit_file','completion_id':_0x21120e,'file_path':_0x57417b[_0x1d315f(0x270)][_0x1d315f(0x261)],'validated_path':_0x1c9574,'instruction':_0x57417b[_0x1d315f(0x270)]['instruction'],'model':_0x1d315f(0x1e4),'dry_run':_0x57417b[_0x1d315f(0x270)][_0x1d315f(0x1f9)],'file_exists':_0x147608,'file_read_error':_0x250918,'file_readable':_0x20e9d5!==null,'request_content':{'path':_0x57417b['data'][_0x1d315f(0x261)],'code_edit':_0x57417b['data'][_0x1d315f(0x20b)],'instruction':_0x57417b[_0x1d315f(0x270)][_0x1d315f(0x19d)],'original_code':_0x20e9d5!==null?_0x20e9d5[_0x1d315f(0x1b9)]>0xc350?_0x20e9d5[_0x1d315f(0x19e)](0x0,0xc350)+_0x1d315f(0x21b)+_0x20e9d5[_0x1d315f(0x1b9)]+'\x20chars)':_0x20e9d5:'[could\x20not\x20read\x20file:\x20'+(_0x250918||_0x1d315f(0x182))+']','original_code_length':_0x20e9d5?.[_0x1d315f(0x1b9)]??0x0,'model':_0x1d315f(0x1e4),'dry_run':_0x57417b['data'][_0x1d315f(0x1f9)]}},'stack_trace':_0x2717ce instanceof Error?_0x2717ce[_0x1d315f(0x1ed)]:undefined,'source':_0x1d315f(0x172)})[_0x1d315f(0x1f4)](()=>{}),{'content':[{'type':_0x1d315f(0x215),'text':'❌\x20Morph\x20Edit\x20Failed:\x20'+_0x586bcf}],'isError':!![]};}}case _0x1d315f(0x228):{const _0x2c63cb=WarpGrepArgsSchema[_0x1d315f(0x25c)](_0x20b5d4);if(!_0x2c63cb[_0x1d315f(0x222)])return{'content':[{'type':'text','text':_0x1d315f(0x20e)+_0x2c63cb[_0x1d315f(0x23c)]}],'isError':!![]};const _0x26b13d=_0x7c9ada=>{const _0x120158=_0x1d315f,_0x5a658d=[];for(const _0x53945a of _0x7c9ada||[]){const _0x20f707=_0x53945a['role'],_0x384229=_0x53945a[_0x120158(0x18d)];if(_0x20f707===_0x120158(0x187)&&_0x384229){const _0xfc3d9a=_0x384229[_0x120158(0x217)]('\x0a')[_0x120158(0x1a9)](_0x3b151c=>_0x3b151c['trim']());for(const _0x2c2c7a of _0xfc3d9a){const _0x1bf659=_0x2c2c7a[_0x120158(0x27b)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x1bf659){_0x5a658d[_0x120158(0x22a)](_0x120158(0x20a)+_0x1bf659[0x1]+'\x27\x20'+_0x1bf659[0x2]);continue;}const _0x3bf66f=_0x2c2c7a[_0x120158(0x27b)](/^read\s+(.+)$/);if(_0x3bf66f){_0x5a658d[_0x120158(0x22a)]('read\x20'+_0x3bf66f[0x1]);continue;}const _0x378bf8=_0x2c2c7a[_0x120158(0x27b)](/^list_directory\s+(.+)$/);if(_0x378bf8){_0x5a658d['push'](_0x120158(0x1a7)+_0x378bf8[0x1]);continue;}}}}return _0x5a658d;},_0x11a43f=_0x166ef1=>{const _0x3ef158=_0x1d315f,_0x4f3566=[];if(!_0x166ef1||!Array[_0x3ef158(0x1fe)](_0x166ef1))return _0x4f3566;const _0x1cb60f=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':_0x3ef158(0x1ad),'tool':_0x3ef158(0x19c)},{'pattern':/\[PATH ERROR\]/,'error_type':'PathError','tool':_0x3ef158(0x19c)},{'pattern':/\[READ ERROR\]/,'error_type':_0x3ef158(0x219),'tool':_0x3ef158(0x19c)},{'pattern':/\[UNREADABLE FILE\]/,'error_type':_0x3ef158(0x1c1),'tool':_0x3ef158(0x19c)},{'pattern':/\[RIPGREP ERROR\]/,'error_type':_0x3ef158(0x22f),'tool':_0x3ef158(0x218)},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x3ef158(0x1fc),'tool':_0x3ef158(0x218)},{'pattern':/\[BINARY FILE\]/,'error_type':'BinaryFile','tool':'read'},{'pattern':/\[SYMLINK\]/,'error_type':_0x3ef158(0x26d),'tool':'read'},{'pattern':/not a text file/,'error_type':'BinaryFile','tool':'read'},{'pattern':/symbolic link/,'error_type':_0x3ef158(0x26d),'tool':_0x3ef158(0x19c)},{'pattern':/Error reading file:/,'error_type':_0x3ef158(0x219),'tool':'read'},{'pattern':/status="error"/,'error_type':_0x3ef158(0x27a),'tool':'unknown'}];let _0x10c783=0x0;for(const _0x4e2d9f of _0x166ef1){if(_0x4e2d9f[_0x3ef158(0x27f)]==='user'){_0x10c783++;const _0x3e95cc=_0x4e2d9f[_0x3ef158(0x18d)];if(!_0x3e95cc||typeof _0x3e95cc!=='string')continue;for(const {pattern:_0x56437e,error_type:_0x273d35,tool:_0x5e695b}of _0x1cb60f){const _0x1c1f9b=_0x3e95cc['match'](new RegExp(_0x56437e['source'],'g'));if(_0x1c1f9b)for(const _0x43d683 of _0x1c1f9b){const _0x477b3a=_0x3e95cc[_0x3ef158(0x1c5)](_0x43d683),_0x3bfbb4=_0x3e95cc[_0x3ef158(0x19e)](_0x477b3a,Math['min'](_0x477b3a+0xc8,_0x3e95cc[_0x3ef158(0x1b9)]));_0x4f3566['push']({'tool':_0x5e695b,'error_type':_0x273d35,'error_message':_0x3bfbb4[_0x3ef158(0x217)]('\x0a')[0x0],'turn':_0x10c783});}}}}return _0x4f3566;};try{const _0x18af82=a0_0x5cf1e3['resolve'](_0x2c63cb[_0x1d315f(0x270)][_0x1d315f(0x271)]),_0x1a0f78=_0x2c63cb[_0x1d315f(0x270)][_0x1d315f(0x178)],_0xad8975=_0x1a0f78==='node_modules'?{'allowNames':[_0x1d315f(0x1ee)]}:undefined,_0x2a8866=new LocalRipgrepProvider(_0x18af82,undefined,_0xad8975),_0x1c36d8=await runWarpGrep({'query':_0x2c63cb[_0x1d315f(0x270)]['search_string'],'repoRoot':_0x18af82,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x2a8866,'search_type':_0x1a0f78}),_0x4e8ee6=_0x11a43f(_0x1c36d8[_0x1d315f(0x27e)]);_0x4e8ee6[_0x1d315f(0x1b9)]>0x0&&reportMorphError({'error_message':_0x1d315f(0x1ea)+_0x4e8ee6[_0x1d315f(0x1b9)]+_0x1d315f(0x1c7),'error_type':_0x1d315f(0x210),'level':_0x1d315f(0x1cc),'tool':_0x1d315f(0x228),'context':{'repo_path':_0x2c63cb['data'][_0x1d315f(0x271)],'query':_0x2c63cb[_0x1d315f(0x270)][_0x1d315f(0x23d)],'model':_0x1d315f(0x205),'termination_reason':_0x1c36d8[_0x1d315f(0x17e)],'sub_tool_errors':_0x4e8ee6,'timings':_0x1c36d8['timings'],'tool_calls':_0x26b13d(_0x1c36d8['messages']),'messages':_0x1c36d8[_0x1d315f(0x27e)]?.['map'](_0x2ac1b3=>({'role':_0x2ac1b3[_0x1d315f(0x27f)],'content':_0x2ac1b3[_0x1d315f(0x18d)]}))},'source':_0x1d315f(0x172)})[_0x1d315f(0x1f4)](()=>{});let _0x4633dd='';if(_0x1c36d8[_0x1d315f(0x17e)]==='completed'&&_0x1c36d8[_0x1d315f(0x229)]?.[_0x1d315f(0x221)]?.['files']){const _0x499f32=_0x1c36d8[_0x1d315f(0x229)][_0x1d315f(0x221)][_0x1d315f(0x183)];if(_0x499f32[_0x1d315f(0x1b9)]===0x0)return _0x4633dd=_0x1c36d8[_0x1d315f(0x229)]['payload']||_0x1d315f(0x198),{'content':[{'type':'text','text':_0x4633dd}]};const _0x3561d4=[],_0x41d24c=[_0x1d315f(0x206)];for(const _0x1fbb6f of _0x1c36d8[_0x1d315f(0x27e)]){const _0x5e37d7=_0x1fbb6f['role'],_0xf1d2e1=_0x1fbb6f[_0x1d315f(0x18d)];if(_0x5e37d7===_0x1d315f(0x187)&&_0xf1d2e1){const _0x425f9d=_0xf1d2e1[_0x1d315f(0x217)]('\x0a')['filter'](_0x3457f5=>_0x3457f5[_0x1d315f(0x173)]());for(const _0x404bbd of _0x425f9d){const _0x279507=_0x404bbd[_0x1d315f(0x27b)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x279507){_0x41d24c[_0x1d315f(0x22a)](_0x1d315f(0x176)+_0x279507[0x1]+_0x1d315f(0x1ef)+_0x279507[0x2]+'`');continue;}const _0x131855=_0x404bbd['match'](/^read\s+(.+)$/);if(_0x131855){_0x41d24c[_0x1d315f(0x22a)]('-\x20Read\x20file\x20`'+_0x131855[0x1]+'`');continue;}const _0x1965dd=_0x404bbd[_0x1d315f(0x27b)](/^list_directory\s+(.+)$/);if(_0x1965dd){_0x41d24c[_0x1d315f(0x22a)](_0x1d315f(0x1c8)+_0x1965dd[0x1]+'`');continue;}}}}_0x3561d4['push'](_0x41d24c[_0x1d315f(0x1da)]('\x0a'));const _0x445dcf=['',_0x1d315f(0x177)];for(const _0x43f348 of _0x499f32){if(_0x43f348[_0x1d315f(0x238)]==='*')_0x445dcf['push']('-\x20'+_0x43f348[_0x1d315f(0x261)]+':*');else{if(Array['isArray'](_0x43f348[_0x1d315f(0x238)])){const _0x301aaa=_0x43f348['lines']['map'](([_0x5b4f64,_0x3c0fd2])=>{if(_0x5b4f64===_0x3c0fd2)return''+_0x5b4f64;return _0x5b4f64+'-'+_0x3c0fd2;});_0x445dcf[_0x1d315f(0x22a)]('-\x20'+_0x43f348['path']+':'+_0x301aaa[_0x1d315f(0x1da)](','));}else _0x445dcf['push']('-\x20'+_0x43f348['path']+':*');}}_0x445dcf[_0x1d315f(0x22a)](''),_0x3561d4[_0x1d315f(0x22a)](_0x445dcf[_0x1d315f(0x1da)]('\x0a')),_0x3561d4[_0x1d315f(0x22a)](_0x1d315f(0x27d));const _0x47646e=[];for(const _0x1b9344 of _0x499f32){let _0x322229=a0_0x5cf1e3['resolve'](_0x2c63cb['data'][_0x1d315f(0x271)],_0x1b9344[_0x1d315f(0x261)]),_0x767d1=null,_0x3ed6cf=null;try{_0x767d1=await a0_0x5d9aab[_0x1d315f(0x1f6)](_0x322229,{'encoding':_0x1d315f(0x1a4)});}catch(_0x2a1251){const _0x2b2dda=fixPathRepetition(_0x322229);if(_0x2b2dda)try{_0x767d1=await a0_0x5d9aab[_0x1d315f(0x1f6)](_0x2b2dda,{'encoding':_0x1d315f(0x1a4)}),_0x322229=_0x2b2dda;}catch{_0x3ed6cf=_0x2a1251 instanceof Error?_0x2a1251:new Error(String(_0x2a1251));}else _0x3ed6cf=_0x2a1251 instanceof Error?_0x2a1251:new Error(String(_0x2a1251));}if(_0x767d1!==null){const _0x3fe998=_0x767d1[_0x1d315f(0x217)](/\r?\n/),_0xd01e67=[_0x1d315f(0x22e)+_0x1b9344[_0x1d315f(0x261)]+'\x22>'];if(_0x1b9344['lines']==='*'||!Array[_0x1d315f(0x1fe)](_0x1b9344[_0x1d315f(0x238)]))for(let _0x5bdcfb=0x1;_0x5bdcfb<=_0x3fe998[_0x1d315f(0x1b9)];_0x5bdcfb++){const _0x1af790=_0x3fe998[_0x5bdcfb-0x1];_0xd01e67[_0x1d315f(0x22a)](_0x5bdcfb+'|\x20'+_0x1af790);}else for(const [_0x135481,_0x430293]of _0x1b9344[_0x1d315f(0x238)]){_0xd01e67['length']>0x1&&_0xd01e67[_0x1d315f(0x22a)]('');for(let _0x1fc3f3=_0x135481;_0x1fc3f3<=_0x430293&&_0x1fc3f3<=_0x3fe998['length'];_0x1fc3f3++){const _0x5ab899=_0x3fe998[_0x1fc3f3-0x1];_0xd01e67[_0x1d315f(0x22a)](_0x1fc3f3+'|\x20'+_0x5ab899);}}_0xd01e67[_0x1d315f(0x22a)](_0x1d315f(0x20f)),_0x47646e['push'](_0xd01e67['join']('\x0a'));}else _0x47646e[_0x1d315f(0x22a)]('<file\x20path=\x22'+_0x1b9344['path']+_0x1d315f(0x18e)+(_0x3ed6cf?.[_0x1d315f(0x235)]||'Unknown\x20error')+_0x1d315f(0x185));}_0x3561d4[_0x1d315f(0x22a)](_0x47646e[_0x1d315f(0x1da)]('\x0a\x0a')),_0x4633dd=_0x3561d4[_0x1d315f(0x1da)]('\x0a');const _0x53dae3=_0x1c36d8['errors']?.[_0x1d315f(0x1a9)](_0x217e66=>_0x217e66[_0x1d315f(0x235)]?.[_0x1d315f(0x1bd)]('File\x20read\x20error:'))||[];if(_0x53dae3[_0x1d315f(0x1b9)]>0x0){const _0x5a08d3=_0x53dae3[_0x1d315f(0x237)](_0x4dbe3c=>_0x4dbe3c[_0x1d315f(0x235)])[_0x1d315f(0x1da)](';\x20');reportMorphError({'error_message':_0x5a08d3,'error_type':_0x1d315f(0x24b),'context':{'tool':'warpgrep_codebase_search','repo_path':_0x2c63cb[_0x1d315f(0x270)][_0x1d315f(0x271)],'query':_0x2c63cb[_0x1d315f(0x270)][_0x1d315f(0x23d)],'model':_0x1d315f(0x205),'termination_reason':_0x1d315f(0x1ca),'error_count':_0x53dae3[_0x1d315f(0x1b9)],'is_timeout':![],'timings':_0x1c36d8[_0x1d315f(0x19a)],'files_attempted':_0x499f32[_0x1d315f(0x237)](_0x211258=>({'path':_0x211258[_0x1d315f(0x261)],'lines':_0x211258[_0x1d315f(0x238)]})),'tool_calls':_0x26b13d(_0x1c36d8[_0x1d315f(0x27e)]),'messages':_0x1c36d8['messages']?.[_0x1d315f(0x237)](_0x399f04=>({'role':_0x399f04[_0x1d315f(0x27f)],'content':_0x399f04[_0x1d315f(0x18d)]})),'request_content':{'query':_0x2c63cb[_0x1d315f(0x270)][_0x1d315f(0x23d)],'repo_path':_0x2c63cb[_0x1d315f(0x270)][_0x1d315f(0x271)],'repoRoot':a0_0x5cf1e3['resolve'](_0x2c63cb[_0x1d315f(0x270)][_0x1d315f(0x271)]),'model':_0x1d315f(0x205)}},'source':_0x1d315f(0x172)})['catch'](()=>{});}}else{if(_0x1c36d8[_0x1d315f(0x17e)]===_0x1d315f(0x1df)&&_0x1c36d8[_0x1d315f(0x20c)][_0x1d315f(0x1b9)]>0x0){const _0x321a35=_0x1c36d8['errors'][_0x1d315f(0x237)](_0x22c366=>_0x22c366[_0x1d315f(0x235)])['join'](';\x20');_0x4633dd=_0x1d315f(0x19b)+_0x321a35;const _0xedc351=_0x321a35[_0x1d315f(0x25d)]()['includes'](_0x1d315f(0x250))||_0x321a35['toLowerCase']()['includes'](_0x1d315f(0x1be))||_0x321a35[_0x1d315f(0x25d)]()[_0x1d315f(0x171)](_0x1d315f(0x268)),_0x4ca353=_0x1c36d8['finish']?.['metadata']?.[_0x1d315f(0x183)],_0x165ba7=_0x1c36d8[_0x1d315f(0x20c)][0x0];reportMorphError({'error_message':_0x321a35,'error_type':_0xedc351?_0x1d315f(0x1d9):_0x165ba7?.[_0x1d315f(0x1a8)]?.[_0x1d315f(0x1d1)]||_0x1d315f(0x1d7),'context':{'tool':'warpgrep_codebase_search','repo_path':_0x2c63cb[_0x1d315f(0x270)][_0x1d315f(0x271)],'query':_0x2c63cb[_0x1d315f(0x270)][_0x1d315f(0x23d)],'model':_0x1d315f(0x205),'termination_reason':_0x1c36d8[_0x1d315f(0x17e)],'error_count':_0x1c36d8[_0x1d315f(0x20c)][_0x1d315f(0x1b9)],'is_timeout':_0xedc351,'timings':_0x1c36d8[_0x1d315f(0x19a)],'files_attempted':_0x4ca353?.[_0x1d315f(0x237)](_0x45c70b=>({'path':_0x45c70b['path'],'lines':_0x45c70b[_0x1d315f(0x238)]})),'tool_calls':_0x26b13d(_0x1c36d8[_0x1d315f(0x27e)]),'messages':_0x1c36d8[_0x1d315f(0x27e)]?.[_0x1d315f(0x237)](_0x556d99=>({'role':_0x556d99[_0x1d315f(0x27f)],'content':_0x556d99['content']})),'request_content':{'query':_0x2c63cb[_0x1d315f(0x270)][_0x1d315f(0x23d)],'repo_path':_0x2c63cb[_0x1d315f(0x270)][_0x1d315f(0x271)],'repoRoot':a0_0x5cf1e3[_0x1d315f(0x267)](_0x2c63cb[_0x1d315f(0x270)]['repo_path']),'model':'morph-warp-grep-v1-1111v0'}},'stack_trace':_0x165ba7?.[_0x1d315f(0x1ed)]||undefined,'source':_0x1d315f(0x172)})[_0x1d315f(0x1f4)](()=>{});}else _0x4633dd=_0x1d315f(0x233);}return{'content':[{'type':_0x1d315f(0x215),'text':_0x4633dd}]};}catch(_0xcfee5c){const _0xfc68e=_0xcfee5c instanceof Error?_0xcfee5c[_0x1d315f(0x235)]:String(_0xcfee5c),_0x28debd=_0xfc68e[_0x1d315f(0x25d)]()['includes']('timeout')||_0xfc68e['toLowerCase']()['includes'](_0x1d315f(0x1be))||_0xfc68e[_0x1d315f(0x25d)]()[_0x1d315f(0x171)](_0x1d315f(0x268))||_0xcfee5c instanceof Error&&_0xcfee5c[_0x1d315f(0x1d1)]===_0x1d315f(0x1d9);return reportMorphError({'error_message':_0xfc68e,'error_type':_0x28debd?_0x1d315f(0x1d9):_0xcfee5c instanceof Error?_0xcfee5c[_0x1d315f(0x1a8)][_0x1d315f(0x1d1)]:_0x1d315f(0x1bb),'context':{'tool':_0x1d315f(0x228),'repo_path':_0x2c63cb['data']['repo_path'],'query':_0x2c63cb[_0x1d315f(0x270)][_0x1d315f(0x23d)],'model':_0x1d315f(0x205),'is_timeout':_0x28debd,'exception_phase':_0x1d315f(0x18c),'request_content':{'query':_0x2c63cb[_0x1d315f(0x270)][_0x1d315f(0x23d)],'repo_path':_0x2c63cb[_0x1d315f(0x270)][_0x1d315f(0x271)],'repoRoot':a0_0x5cf1e3['resolve'](_0x2c63cb[_0x1d315f(0x270)]['repo_path']),'model':_0x1d315f(0x205)}},'stack_trace':_0xcfee5c instanceof Error?_0xcfee5c[_0x1d315f(0x1ed)]:undefined,'source':'mcp-filesystem'})['catch'](()=>{}),{'content':[{'type':_0x1d315f(0x215),'text':'Error\x20running\x20fast\x20context\x20search:\x20'+_0xfc68e}],'isError':![]};}}case _0x1d315f(0x23b):{const _0x1ed06b=WarpGrepGitHubArgsSchema[_0x1d315f(0x25c)](_0x20b5d4);if(!_0x1ed06b[_0x1d315f(0x222)])return{'content':[{'type':_0x1d315f(0x215),'text':_0x1d315f(0x20e)+_0x1ed06b['error']}],'isError':!![]};const _0x8c9884=_0x1ed06b['data'][_0x1d315f(0x232)]||_0x1ed06b['data'][_0x1d315f(0x25b)];if(!_0x8c9884)return{'content':[{'type':_0x1d315f(0x215),'text':_0x1d315f(0x25a)}],'isError':!![]};const _0x54f09e=MORPH_API_KEY;if(!_0x54f09e)throw new Error(_0x1d315f(0x196));const _0x402e73=Date[_0x1d315f(0x264)]();console[_0x1d315f(0x23c)](_0x1d315f(0x234)+_0x8c9884+'\x20for:\x20\x22'+_0x1ed06b['data']['search_string']+'\x22');try{const _0x4b7c5d=new WarpGrepClient({'morphApiKey':_0x54f09e,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0x71cd5f=await _0x4b7c5d['searchGitHub']({'query':_0x1ed06b[_0x1d315f(0x270)][_0x1d315f(0x23d)],'github':_0x8c9884,'branch':_0x1ed06b['data'][_0x1d315f(0x260)]}),_0xbe7ce4=Date[_0x1d315f(0x264)]()-_0x402e73;console[_0x1d315f(0x23c)](_0x1d315f(0x209)+_0xbe7ce4+_0x1d315f(0x1d4)+_0x71cd5f[_0x1d315f(0x222)]);const _0x41d8d2=formatResult(_0x71cd5f);return{'content':[{'type':'text','text':_0x41d8d2}]};}catch(_0x20ea3b){const _0x340562=Date['now']()-_0x402e73,_0x3a046d=_0x20ea3b instanceof Error?_0x20ea3b[_0x1d315f(0x235)]:String(_0x20ea3b);return console[_0x1d315f(0x23c)](_0x1d315f(0x175)+_0x340562+_0x1d315f(0x224),_0x3a046d),reportMorphError({'error_message':_0x3a046d,'error_type':_0x20ea3b instanceof Error?_0x20ea3b[_0x1d315f(0x1a8)][_0x1d315f(0x1d1)]:'UnknownError','context':{'tool':_0x1d315f(0x23b),'github_url':_0x8c9884,'search_string':_0x1ed06b['data'][_0x1d315f(0x23d)],'branch':_0x1ed06b[_0x1d315f(0x270)][_0x1d315f(0x260)]},'stack_trace':_0x20ea3b instanceof Error?_0x20ea3b[_0x1d315f(0x1ed)]:undefined,'source':_0x1d315f(0x172),'tool':'warpgrep_github_search','latency_ms':_0x340562})['catch'](()=>{}),{'content':[{'type':_0x1d315f(0x215),'text':_0x1d315f(0x21c)+_0x3a046d}],'isError':![]};}}case _0x1d315f(0x1e8):{const _0x5e7da7=CodebaseSearchArgsSchema[_0x1d315f(0x25c)](_0x20b5d4);if(!_0x5e7da7[_0x1d315f(0x222)])return{'content':[{'type':_0x1d315f(0x215),'text':_0x1d315f(0x20e)+_0x5e7da7[_0x1d315f(0x23c)]}],'isError':!![]};try{const _0x32b847=MORPH_API_KEY;if(!_0x32b847)throw new Error('MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.');const _0x27439a=_0x5e7da7[_0x1d315f(0x270)][_0x1d315f(0x248)],_0x13e209=await executeCodebaseSearch({'query':_0x5e7da7['data'][_0x1d315f(0x1ab)],'target_directories':_0x27439a,'limit':_0x5e7da7['data'][_0x1d315f(0x21e)]},{'apiKey':_0x32b847,'repoId':_0x5e7da7[_0x1d315f(0x270)][_0x1d315f(0x1ac)],'branch':_0x5e7da7[_0x1d315f(0x270)][_0x1d315f(0x260)],'commitHash':_0x5e7da7[_0x1d315f(0x270)][_0x1d315f(0x1dd)],'debug':![]});if(!_0x13e209['success'])return{'content':[{'type':_0x1d315f(0x215),'text':_0x1d315f(0x227)+_0x13e209[_0x1d315f(0x23c)]}],'isError':!![]};const _0x2e5c89=_0x13e209[_0x1d315f(0x23f)][_0x1d315f(0x1b9)]===0x0?_0x1d315f(0x1e0)+_0x5e7da7[_0x1d315f(0x270)][_0x1d315f(0x1ab)]+'\x22':_0x1d315f(0x1b0)+_0x13e209[_0x1d315f(0x23f)]['length']+_0x1d315f(0x16c)+_0x13e209[_0x1d315f(0x256)][_0x1d315f(0x277)]+_0x1d315f(0x285)+_0x13e209[_0x1d315f(0x23f)][_0x1d315f(0x237)]((_0x292756,_0x531d79)=>_0x531d79+0x1+'.\x20'+_0x292756[_0x1d315f(0x18a)]+'\x20('+(_0x292756['rerankScore']*0x64)[_0x1d315f(0x266)](0x1)+_0x1d315f(0x1db)+(_0x1d315f(0x21a)+_0x292756[_0x1d315f(0x26e)]+'-'+_0x292756[_0x1d315f(0x191)]+'\x0a')+(_0x1d315f(0x269)+_0x292756['content']['substring'](0x0,0xc8)+(_0x292756['content'][_0x1d315f(0x1b9)]>0xc8?_0x1d315f(0x243):'')+'\x0a'))[_0x1d315f(0x1da)]('\x0a');return{'content':[{'type':'text','text':_0x2e5c89}]};}catch(_0x1d8da4){const _0x4c72b3=_0x1d8da4 instanceof Error?_0x1d8da4[_0x1d315f(0x235)]:String(_0x1d8da4);return reportMorphError({'error_message':_0x4c72b3,'error_type':_0x1d8da4 instanceof Error?_0x1d8da4[_0x1d315f(0x1a8)][_0x1d315f(0x1d1)]:_0x1d315f(0x1bb),'context':{'tool':_0x1d315f(0x1e8),'query':_0x5e7da7['data']['query'],'repo_id':_0x5e7da7[_0x1d315f(0x270)][_0x1d315f(0x1ac)],'target_directories':_0x5e7da7['data']['targetDirectories']},'stack_trace':_0x1d8da4 instanceof Error?_0x1d8da4['stack']:undefined,'source':_0x1d315f(0x172)})['catch'](()=>{}),{'content':[{'type':_0x1d315f(0x215),'text':_0x1d315f(0x19b)+_0x4c72b3}],'isError':!![]};}}default:throw new Error('Unknown\x20tool:\x20'+_0x3751d1);}}catch(_0x406b2c){const _0x2673b6=_0x406b2c instanceof Error?_0x406b2c[_0x1d315f(0x235)]:String(_0x406b2c);return reportMorphError({'error_message':_0x2673b6,'error_type':_0x406b2c instanceof Error?_0x406b2c[_0x1d315f(0x1a8)][_0x1d315f(0x1d1)]:_0x1d315f(0x1bb),'context':{'tool':name,'arguments':args?JSON[_0x1d315f(0x1f1)](args)[_0x1d315f(0x19e)](0x0,0x1f4):undefined,'mcp_server_version':'0.2.0'},'stack_trace':_0x406b2c instanceof Error?_0x406b2c[_0x1d315f(0x1ed)]:undefined,'source':_0x1d315f(0x172)})[_0x1d315f(0x1f4)](()=>{}),{'content':[{'type':_0x1d315f(0x215),'text':_0x1d315f(0x19b)+_0x2673b6}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x417a5c){const _0x2288c5=a0_0x44d8d0,_0x39236c=await getValidRootDirectories(_0x417a5c);if(_0x39236c['length']>0x0)allowedDirectories=[..._0x39236c],console['error'](_0x2288c5(0x257)+_0x39236c[_0x2288c5(0x1b9)]+'\x20valid\x20directories');else{console['error'](_0x2288c5(0x240));if(ENABLE_WORKSPACE_MODE)try{const _0x3f0e38=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x3f0e38&&(allowedDirectories=[_0x3f0e38],console[_0x2288c5(0x23c)](_0x2288c5(0x213)+_0x3f0e38));}catch(_0x4d0d59){console[_0x2288c5(0x23c)](_0x2288c5(0x188)+_0x4d0d59);}}}server[a0_0x44d8d0(0x1b4)](RootsListChangedNotificationSchema,async()=>{const _0x50f300=a0_0x44d8d0;try{const _0x1fd9c2=await server[_0x50f300(0x274)]();_0x1fd9c2&&_0x50f300(0x1f3)in _0x1fd9c2&&await updateAllowedDirectoriesFromRoots(_0x1fd9c2[_0x50f300(0x1f3)]);}catch(_0x3e3ad3){console['error'](_0x50f300(0x272),_0x3e3ad3 instanceof Error?_0x3e3ad3[_0x50f300(0x235)]:String(_0x3e3ad3));}}),server[a0_0x44d8d0(0x231)]=async()=>{const _0xd8db98=a0_0x44d8d0,_0x4a3aa2=server['getClientCapabilities']();if(_0x4a3aa2?.['roots'])try{const _0x3f07d7=await server[_0xd8db98(0x274)]();_0x3f07d7&&_0xd8db98(0x1f3)in _0x3f07d7?await updateAllowedDirectoriesFromRoots(_0x3f07d7[_0xd8db98(0x1f3)]):console[_0xd8db98(0x23c)]('Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings');}catch(_0x12ceab){console[_0xd8db98(0x23c)](_0xd8db98(0x1e6),_0x12ceab instanceof Error?_0x12ceab['message']:String(_0x12ceab));}else{if(allowedDirectories[_0xd8db98(0x1b9)]>0x0)console['error'](_0xd8db98(0x1aa),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console[_0xd8db98(0x23c)](_0xd8db98(0x190));else throw new Error(_0xd8db98(0x1e3));}}};async function runServer(){const _0x8e3a92=a0_0x44d8d0,_0x589801=new StdioServerTransport();await server['connect'](_0x589801),console['error'](_0x8e3a92(0x18b)),allowedDirectories[_0x8e3a92(0x1b9)]===0x0&&console[_0x8e3a92(0x23c)](_0x8e3a92(0x16f));}runServer()[a0_0x44d8d0(0x1f4)](_0x5934b6=>{const _0x3c08ec=a0_0x44d8d0;console[_0x3c08ec(0x23c)](_0x3c08ec(0x25f),_0x5934b6),process[_0x3c08ec(0x179)](0x1);});
@@ -1 +1 @@
1
- (function(_0x31624f,_0x51baf0){const _0x2b8065=a1_0x53e8,_0x18d0a7=_0x31624f();while(!![]){try{const _0x4fc60f=-parseInt(_0x2b8065(0xa2))/0x1+parseInt(_0x2b8065(0xad))/0x2+parseInt(_0x2b8065(0xae))/0x3+parseInt(_0x2b8065(0xa6))/0x4*(parseInt(_0x2b8065(0xa8))/0x5)+-parseInt(_0x2b8065(0xb2))/0x6+parseInt(_0x2b8065(0xb3))/0x7*(parseInt(_0x2b8065(0xaf))/0x8)+parseInt(_0x2b8065(0xaa))/0x9*(-parseInt(_0x2b8065(0xa4))/0xa);if(_0x4fc60f===_0x51baf0)break;else _0x18d0a7['push'](_0x18d0a7['shift']());}catch(_0x1d8ab3){_0x18d0a7['push'](_0x18d0a7['shift']());}}}(a1_0x7d94,0xd7cbe));function a1_0x53e8(_0x1ee4ad,_0x1ddab7){_0x1ee4ad=_0x1ee4ad-0x9f;const _0x7d94a6=a1_0x7d94();let _0x53e8e2=_0x7d94a6[_0x1ee4ad];return _0x53e8e2;}import a1_0x5e4552 from'path';import a1_0x1290de from'os';function a1_0x7d94(){const _0x44c8ef=['4535765WvLPoA','slice','391554fGmwek','match','trim','104496ioUKOr','3194400EoGMxr','712rTEkFk','join','normalize','2059332QESYjE','9303anDYjZ','toUpperCase','substring','replace','test','homedir','610816dhKEuh','charAt','70iRPKmy','/mnt/','4efEgzD','startsWith'];a1_0x7d94=function(){return _0x44c8ef;};return a1_0x7d94();}export function convertToWindowsPath(_0x118854){const _0x564ee3=a1_0x53e8;if(_0x118854[_0x564ee3(0xa7)](_0x564ee3(0xa5))){const _0x3f992f=_0x118854[_0x564ee3(0xa3)](0x5)['toUpperCase'](),_0x317b05=_0x118854[_0x564ee3(0xa9)](0x6)[_0x564ee3(0x9f)](/\//g,'\x5c');return _0x3f992f+':'+_0x317b05;}if(_0x118854['match'](/^\/[a-zA-Z]\//)){const _0x306681=_0x118854[_0x564ee3(0xa3)](0x1)[_0x564ee3(0xb4)](),_0x57f162=_0x118854[_0x564ee3(0xa9)](0x2)[_0x564ee3(0x9f)](/\//g,'\x5c');return _0x306681+':'+_0x57f162;}if(_0x118854['match'](/^[a-zA-Z]:/))return _0x118854[_0x564ee3(0x9f)](/\//g,'\x5c');return _0x118854;}export function normalizePath(_0x388dbb){const _0x44c1a8=a1_0x53e8;_0x388dbb=_0x388dbb[_0x44c1a8(0xac)]()['replace'](/^["']|["']$/g,'');const _0x1139ac=_0x388dbb[_0x44c1a8(0xa7)]('/')&&!_0x388dbb[_0x44c1a8(0xab)](/^\/mnt\/[a-z]\//i)&&!_0x388dbb[_0x44c1a8(0xab)](/^\/[a-zA-Z]\//);if(_0x1139ac)return _0x388dbb['replace'](/\/+/g,'/')[_0x44c1a8(0x9f)](/\/+$/,'');_0x388dbb=convertToWindowsPath(_0x388dbb);if(_0x388dbb[_0x44c1a8(0xa7)]('\x5c\x5c')){let _0x4c80d7=_0x388dbb;_0x4c80d7=_0x4c80d7[_0x44c1a8(0x9f)](/^\\{2,}/,'\x5c\x5c');const _0x2ed849=_0x4c80d7[_0x44c1a8(0xb5)](0x2)[_0x44c1a8(0x9f)](/\\\\/g,'\x5c');_0x388dbb='\x5c\x5c'+_0x2ed849;}else _0x388dbb=_0x388dbb[_0x44c1a8(0x9f)](/\\\\/g,'\x5c');let _0x45fd43=a1_0x5e4552[_0x44c1a8(0xb1)](_0x388dbb);_0x388dbb[_0x44c1a8(0xa7)]('\x5c\x5c')&&!_0x45fd43[_0x44c1a8(0xa7)]('\x5c\x5c')&&(_0x45fd43='\x5c'+_0x45fd43);if(_0x45fd43[_0x44c1a8(0xab)](/^[a-zA-Z]:/)){let _0x58c956=_0x45fd43[_0x44c1a8(0x9f)](/\//g,'\x5c');return/^[a-z]:/[_0x44c1a8(0xa0)](_0x58c956)&&(_0x58c956=_0x58c956['charAt'](0x0)[_0x44c1a8(0xb4)]()+_0x58c956['slice'](0x1)),_0x58c956;}return _0x45fd43['replace'](/\//g,'\x5c');}export function expandHome(_0x35df53){const _0x3fa7a8=a1_0x53e8;if(_0x35df53[_0x3fa7a8(0xa7)]('~/')||_0x35df53==='~')return a1_0x5e4552[_0x3fa7a8(0xb0)](a1_0x1290de[_0x3fa7a8(0xa1)](),_0x35df53[_0x3fa7a8(0xa9)](0x1));return _0x35df53;}
1
+ (function(_0x3873ab,_0x435481){const _0x3f9efb=a1_0x1795,_0x39e3e8=_0x3873ab();while(!![]){try{const _0x39c711=parseInt(_0x3f9efb(0x18d))/0x1*(parseInt(_0x3f9efb(0x193))/0x2)+parseInt(_0x3f9efb(0x18b))/0x3*(-parseInt(_0x3f9efb(0x187))/0x4)+-parseInt(_0x3f9efb(0x17f))/0x5+-parseInt(_0x3f9efb(0x188))/0x6*(parseInt(_0x3f9efb(0x184))/0x7)+parseInt(_0x3f9efb(0x195))/0x8*(parseInt(_0x3f9efb(0x18f))/0x9)+parseInt(_0x3f9efb(0x18e))/0xa+parseInt(_0x3f9efb(0x185))/0xb*(parseInt(_0x3f9efb(0x192))/0xc);if(_0x39c711===_0x435481)break;else _0x39e3e8['push'](_0x39e3e8['shift']());}catch(_0x29fab7){_0x39e3e8['push'](_0x39e3e8['shift']());}}}(a1_0x4518,0x90c08));function a1_0x4518(){const _0x287cd5=['5869932lsrsRb','2sVZJSv','charAt','2205640fDfAWo','4112305RTWiCi','slice','toUpperCase','match','normalize','43967MyVmuy','11ruNnIP','trim','1034972fUiTtC','36hYxSgF','replace','startsWith','3wGwzAo','test','39397hOmkdT','804160LGuXZg','36ujZgVT','homedir','/mnt/'];a1_0x4518=function(){return _0x287cd5;};return a1_0x4518();}import a1_0x2a7101 from'path';import a1_0x549372 from'os';export function convertToWindowsPath(_0x2416f2){const _0x24b086=a1_0x1795;if(_0x2416f2['startsWith'](_0x24b086(0x191))){const _0x480d92=_0x2416f2['charAt'](0x5)[_0x24b086(0x181)](),_0x59b4b2=_0x2416f2['slice'](0x6)[_0x24b086(0x189)](/\//g,'\x5c');return _0x480d92+':'+_0x59b4b2;}if(_0x2416f2[_0x24b086(0x182)](/^\/[a-zA-Z]\//)){const _0x52f077=_0x2416f2[_0x24b086(0x194)](0x1)['toUpperCase'](),_0x1e57c4=_0x2416f2[_0x24b086(0x180)](0x2)[_0x24b086(0x189)](/\//g,'\x5c');return _0x52f077+':'+_0x1e57c4;}if(_0x2416f2[_0x24b086(0x182)](/^[a-zA-Z]:/))return _0x2416f2[_0x24b086(0x189)](/\//g,'\x5c');return _0x2416f2;}function a1_0x1795(_0x299448,_0x26595e){_0x299448=_0x299448-0x17f;const _0x451821=a1_0x4518();let _0x17953f=_0x451821[_0x299448];return _0x17953f;}export function normalizePath(_0xe833f6){const _0x34cb69=a1_0x1795;_0xe833f6=_0xe833f6[_0x34cb69(0x186)]()[_0x34cb69(0x189)](/^["']|["']$/g,'');const _0x11f13a=_0xe833f6[_0x34cb69(0x18a)]('/')&&!_0xe833f6[_0x34cb69(0x182)](/^\/mnt\/[a-z]\//i)&&!_0xe833f6[_0x34cb69(0x182)](/^\/[a-zA-Z]\//);if(_0x11f13a)return _0xe833f6[_0x34cb69(0x189)](/\/+/g,'/')[_0x34cb69(0x189)](/\/+$/,'');_0xe833f6=convertToWindowsPath(_0xe833f6);if(_0xe833f6['startsWith']('\x5c\x5c')){let _0x10d306=_0xe833f6;_0x10d306=_0x10d306['replace'](/^\\{2,}/,'\x5c\x5c');const _0x37f8c3=_0x10d306['substring'](0x2)[_0x34cb69(0x189)](/\\\\/g,'\x5c');_0xe833f6='\x5c\x5c'+_0x37f8c3;}else _0xe833f6=_0xe833f6['replace'](/\\\\/g,'\x5c');let _0x10ec63=a1_0x2a7101[_0x34cb69(0x183)](_0xe833f6);_0xe833f6[_0x34cb69(0x18a)]('\x5c\x5c')&&!_0x10ec63['startsWith']('\x5c\x5c')&&(_0x10ec63='\x5c'+_0x10ec63);if(_0x10ec63[_0x34cb69(0x182)](/^[a-zA-Z]:/)){let _0x45737a=_0x10ec63[_0x34cb69(0x189)](/\//g,'\x5c');return/^[a-z]:/[_0x34cb69(0x18c)](_0x45737a)&&(_0x45737a=_0x45737a['charAt'](0x0)[_0x34cb69(0x181)]()+_0x45737a[_0x34cb69(0x180)](0x1)),_0x45737a;}return _0x10ec63[_0x34cb69(0x189)](/\//g,'\x5c');}export function expandHome(_0x5262ed){const _0x368864=a1_0x1795;if(_0x5262ed[_0x368864(0x18a)]('~/')||_0x5262ed==='~')return a1_0x2a7101['join'](a1_0x549372[_0x368864(0x190)](),_0x5262ed[_0x368864(0x180)](0x1));return _0x5262ed;}
@@ -1 +1 @@
1
- function a2_0x2f21(_0x1062ec,_0x4027ea){_0x1062ec=_0x1062ec-0x9b;const _0x415bf9=a2_0x415b();let _0x2f21ce=_0x415bf9[_0x1062ec];return _0x2f21ce;}function a2_0x415b(){const _0x45c8e3=['includes','sep','9ickqYx','44GHHTLW','isArray','21hPMjUe','464560BsDZkm','41964JzhPgL','136526rdjWCX','637624MuJucE','length','129133LAoiKz','resolve','3312309bePQNW','normalize','startsWith','10ffnxNL','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','isAbsolute','string','386598lzfoMD'];a2_0x415b=function(){return _0x45c8e3;};return a2_0x415b();}(function(_0x50e80d,_0x51621b){const _0x2150f1=a2_0x2f21,_0x2617f5=_0x50e80d();while(!![]){try{const _0x1b89f5=-parseInt(_0x2150f1(0xab))/0x1+-parseInt(_0x2150f1(0xa8))/0x2+-parseInt(_0x2150f1(0xa7))/0x3*(parseInt(_0x2150f1(0xa3))/0x4)+parseInt(_0x2150f1(0xa6))/0x5+parseInt(_0x2150f1(0x9f))/0x6*(parseInt(_0x2150f1(0xa5))/0x7)+parseInt(_0x2150f1(0xa9))/0x8*(-parseInt(_0x2150f1(0xa2))/0x9)+parseInt(_0x2150f1(0x9b))/0xa*(parseInt(_0x2150f1(0xad))/0xb);if(_0x1b89f5===_0x51621b)break;else _0x2617f5['push'](_0x2617f5['shift']());}catch(_0x8df46b){_0x2617f5['push'](_0x2617f5['shift']());}}}(a2_0x415b,0x262cb));import a2_0x50d175 from'path';export function isPathWithinAllowedDirectories(_0x204ea7,_0x378ba4){const _0x3874d6=a2_0x2f21;if(typeof _0x204ea7!=='string'||!Array[_0x3874d6(0xa4)](_0x378ba4))return![];if(!_0x204ea7||_0x378ba4[_0x3874d6(0xaa)]===0x0)return![];if(_0x204ea7[_0x3874d6(0xa0)]('\x00'))return![];let _0x4d432b;try{_0x4d432b=a2_0x50d175[_0x3874d6(0xac)](a2_0x50d175[_0x3874d6(0xae)](_0x204ea7));}catch{return![];}if(!a2_0x50d175[_0x3874d6(0x9d)](_0x4d432b))throw new Error('Path\x20must\x20be\x20absolute\x20after\x20normalization');return _0x378ba4['some'](_0x7c69ea=>{const _0x60909f=_0x3874d6;if(typeof _0x7c69ea!==_0x60909f(0x9e)||!_0x7c69ea)return![];if(_0x7c69ea[_0x60909f(0xa0)]('\x00'))return![];let _0x1b1f5d;try{_0x1b1f5d=a2_0x50d175['resolve'](a2_0x50d175['normalize'](_0x7c69ea));}catch{return![];}if(!a2_0x50d175['isAbsolute'](_0x1b1f5d))throw new Error(_0x60909f(0x9c));if(_0x4d432b===_0x1b1f5d)return!![];if(_0x1b1f5d===a2_0x50d175[_0x60909f(0xa1)])return _0x4d432b[_0x60909f(0xaf)](a2_0x50d175[_0x60909f(0xa1)]);return _0x4d432b[_0x60909f(0xaf)](_0x1b1f5d+a2_0x50d175[_0x60909f(0xa1)]);});}
1
+ (function(_0x15909c,_0x57c843){const _0x3cb07c=a2_0x2046,_0x5789fe=_0x15909c();while(!![]){try{const _0x14e0ee=parseInt(_0x3cb07c(0xb8))/0x1+-parseInt(_0x3cb07c(0xbd))/0x2+-parseInt(_0x3cb07c(0xbc))/0x3+parseInt(_0x3cb07c(0xb5))/0x4*(parseInt(_0x3cb07c(0xb4))/0x5)+-parseInt(_0x3cb07c(0xb6))/0x6+-parseInt(_0x3cb07c(0xbe))/0x7+parseInt(_0x3cb07c(0xba))/0x8*(parseInt(_0x3cb07c(0xaf))/0x9);if(_0x14e0ee===_0x57c843)break;else _0x5789fe['push'](_0x5789fe['shift']());}catch(_0x300b14){_0x5789fe['push'](_0x5789fe['shift']());}}}(a2_0xa896,0xa3884));function a2_0xa896(){const _0x35f808=['692934WQbfOH','string','223701bYsZSD','normalize','824wCzikQ','includes','3836913geDgSu','2429532Eegpst','9202088nwBYuN','isAbsolute','startsWith','319122nqtjiz','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','length','sep','isArray','188885FbHFAQ','76DwJugK'];a2_0xa896=function(){return _0x35f808;};return a2_0xa896();}function a2_0x2046(_0xb5fdbd,_0x2ff443){_0xb5fdbd=_0xb5fdbd-0xae;const _0xa896c4=a2_0xa896();let _0x204634=_0xa896c4[_0xb5fdbd];return _0x204634;}import a2_0x4809fe from'path';export function isPathWithinAllowedDirectories(_0x2837cc,_0x1b7bc0){const _0x4162c4=a2_0x2046;if(typeof _0x2837cc!==_0x4162c4(0xb7)||!Array[_0x4162c4(0xb3)](_0x1b7bc0))return![];if(!_0x2837cc||_0x1b7bc0[_0x4162c4(0xb1)]===0x0)return![];if(_0x2837cc[_0x4162c4(0xbb)]('\x00'))return![];let _0x5c6267;try{_0x5c6267=a2_0x4809fe['resolve'](a2_0x4809fe[_0x4162c4(0xb9)](_0x2837cc));}catch{return![];}if(!a2_0x4809fe['isAbsolute'](_0x5c6267))throw new Error('Path\x20must\x20be\x20absolute\x20after\x20normalization');return _0x1b7bc0['some'](_0x54165b=>{const _0x3ee730=_0x4162c4;if(typeof _0x54165b!==_0x3ee730(0xb7)||!_0x54165b)return![];if(_0x54165b[_0x3ee730(0xbb)]('\x00'))return![];let _0x1fcbef;try{_0x1fcbef=a2_0x4809fe['resolve'](a2_0x4809fe[_0x3ee730(0xb9)](_0x54165b));}catch{return![];}if(!a2_0x4809fe[_0x3ee730(0xbf)](_0x1fcbef))throw new Error(_0x3ee730(0xb0));if(_0x5c6267===_0x1fcbef)return!![];if(_0x1fcbef===a2_0x4809fe[_0x3ee730(0xb2)])return _0x5c6267[_0x3ee730(0xae)](a2_0x4809fe[_0x3ee730(0xb2)]);return _0x5c6267[_0x3ee730(0xae)](_0x1fcbef+a2_0x4809fe['sep']);});}
@@ -1 +1 @@
1
- (function(_0x5981f5,_0x2a6bfd){const _0x254d2b=a3_0x582a,_0x55c509=_0x5981f5();while(!![]){try{const _0x55c9fe=-parseInt(_0x254d2b(0x1a9))/0x1+-parseInt(_0x254d2b(0x1b5))/0x2+-parseInt(_0x254d2b(0x1aa))/0x3*(-parseInt(_0x254d2b(0x1b6))/0x4)+parseInt(_0x254d2b(0x1b8))/0x5+-parseInt(_0x254d2b(0x1b2))/0x6+-parseInt(_0x254d2b(0x1ae))/0x7+parseInt(_0x254d2b(0x1bf))/0x8;if(_0x55c9fe===_0x2a6bfd)break;else _0x55c509['push'](_0x55c509['shift']());}catch(_0x5728c4){_0x55c509['push'](_0x55c509['shift']());}}}(a3_0x1755,0x88ca2));function a3_0x582a(_0x6f2006,_0x175dbc){_0x6f2006=_0x6f2006-0x1a9;const _0x175557=a3_0x1755();let _0x582ae6=_0x175557[_0x6f2006];return _0x582ae6;}function a3_0x1755(){const _0x3f7f68=['message','4737610IOmoZY','stat','error','\x20due\x20to\x20error:\x20','realpath','file://','resolve','4984368bBkFVJ','989652CDXwea','57rZWfru','Skipping\x20','uri','isDirectory','1443498BVyPjW','startsWith','invalid\x20path\x20or\x20inaccessible','slice','4521240PFRhZD','join','Skipping\x20invalid\x20directory:\x20','304882qJVgih','229804EFTVEU'];a3_0x1755=function(){return _0x3f7f68;};return a3_0x1755();}import{promises as a3_0x455aeb}from'fs';import a3_0x5152b2 from'path';import a3_0x57fec9 from'os';import{normalizePath}from'./path-utils.js';async function parseRootUri(_0x510396){const _0x4558d0=a3_0x582a;try{const _0x4a72a9=_0x510396['startsWith'](_0x4558d0(0x1bd))?_0x510396[_0x4558d0(0x1b1)](0x7):_0x510396,_0x37fb0b=_0x4a72a9[_0x4558d0(0x1af)]('~/')||_0x4a72a9==='~'?a3_0x5152b2[_0x4558d0(0x1b3)](a3_0x57fec9['homedir'](),_0x4a72a9[_0x4558d0(0x1b1)](0x1)):_0x4a72a9,_0x4cc163=a3_0x5152b2[_0x4558d0(0x1be)](_0x37fb0b),_0x2b7641=await a3_0x455aeb[_0x4558d0(0x1bc)](_0x4cc163);return normalizePath(_0x2b7641);}catch{return null;}}function formatDirectoryError(_0x483e6f,_0x37a9eb,_0x282e38){const _0x578e0f=a3_0x582a;if(_0x282e38)return _0x578e0f(0x1ab)+_0x282e38+':\x20'+_0x483e6f;const _0x574216=_0x37a9eb instanceof Error?_0x37a9eb[_0x578e0f(0x1b7)]:String(_0x37a9eb);return _0x578e0f(0x1b4)+_0x483e6f+_0x578e0f(0x1bb)+_0x574216;}export async function getValidRootDirectories(_0x553947){const _0x32847f=a3_0x582a,_0x2eb1e0=[];for(const _0x1c9dd9 of _0x553947){const _0x247957=await parseRootUri(_0x1c9dd9[_0x32847f(0x1ac)]);if(!_0x247957){console[_0x32847f(0x1ba)](formatDirectoryError(_0x1c9dd9[_0x32847f(0x1ac)],undefined,_0x32847f(0x1b0)));continue;}try{const _0x4a8f7e=await a3_0x455aeb[_0x32847f(0x1b9)](_0x247957);_0x4a8f7e[_0x32847f(0x1ad)]()?_0x2eb1e0['push'](_0x247957):console['error'](formatDirectoryError(_0x247957,undefined,'non-directory\x20root'));}catch(_0x524e0a){console[_0x32847f(0x1ba)](formatDirectoryError(_0x247957,_0x524e0a));}}return _0x2eb1e0;}
1
+ (function(_0x44e1ec,_0x5087f1){const _0x3da91c=a3_0x129c,_0xff9981=_0x44e1ec();while(!![]){try{const _0x463d4a=-parseInt(_0x3da91c(0x14c))/0x1+-parseInt(_0x3da91c(0x13c))/0x2+parseInt(_0x3da91c(0x14e))/0x3+parseInt(_0x3da91c(0x141))/0x4*(parseInt(_0x3da91c(0x14f))/0x5)+parseInt(_0x3da91c(0x148))/0x6*(parseInt(_0x3da91c(0x13f))/0x7)+-parseInt(_0x3da91c(0x150))/0x8+parseInt(_0x3da91c(0x146))/0x9;if(_0x463d4a===_0x5087f1)break;else _0xff9981['push'](_0xff9981['shift']());}catch(_0x21c95){_0xff9981['push'](_0xff9981['shift']());}}}(a3_0x20aa,0xdeedf));import{promises as a3_0x16c9a4}from'fs';import a3_0x8842e4 from'path';import a3_0x3f7d26 from'os';function a3_0x20aa(){const _0x572f82=['Skipping\x20invalid\x20directory:\x20','resolve','startsWith','push','22764015gEDfxx','realpath','1386918bNvQrx','Skipping\x20','\x20due\x20to\x20error:\x20','homedir','1402777KMVPVK','slice','484773uCuyNK','45ZdvfvK','8817240OoJOrZ','uri','3440070tNDUWL','isDirectory','non-directory\x20root','49jWUhUz','error','368484WKqBWC'];a3_0x20aa=function(){return _0x572f82;};return a3_0x20aa();}import{normalizePath}from'./path-utils.js';async function parseRootUri(_0x2b6920){const _0x381924=a3_0x129c;try{const _0x3f3f58=_0x2b6920['startsWith']('file://')?_0x2b6920[_0x381924(0x14d)](0x7):_0x2b6920,_0x51595d=_0x3f3f58[_0x381924(0x144)]('~/')||_0x3f3f58==='~'?a3_0x8842e4['join'](a3_0x3f7d26[_0x381924(0x14b)](),_0x3f3f58[_0x381924(0x14d)](0x1)):_0x3f3f58,_0x5998e1=a3_0x8842e4[_0x381924(0x143)](_0x51595d),_0x4f782c=await a3_0x16c9a4[_0x381924(0x147)](_0x5998e1);return normalizePath(_0x4f782c);}catch{return null;}}function formatDirectoryError(_0x4989d4,_0x511237,_0x40fd71){const _0x93c43c=a3_0x129c;if(_0x40fd71)return _0x93c43c(0x149)+_0x40fd71+':\x20'+_0x4989d4;const _0x534646=_0x511237 instanceof Error?_0x511237['message']:String(_0x511237);return _0x93c43c(0x142)+_0x4989d4+_0x93c43c(0x14a)+_0x534646;}function a3_0x129c(_0xd94c0d,_0x3e1cc8){_0xd94c0d=_0xd94c0d-0x13c;const _0x20aa34=a3_0x20aa();let _0x129c7c=_0x20aa34[_0xd94c0d];return _0x129c7c;}export async function getValidRootDirectories(_0x251a98){const _0x107c0e=a3_0x129c,_0x3b0b67=[];for(const _0x29efa2 of _0x251a98){const _0x3811e3=await parseRootUri(_0x29efa2[_0x107c0e(0x151)]);if(!_0x3811e3){console['error'](formatDirectoryError(_0x29efa2[_0x107c0e(0x151)],undefined,'invalid\x20path\x20or\x20inaccessible'));continue;}try{const _0x2fdb30=await a3_0x16c9a4['stat'](_0x3811e3);_0x2fdb30[_0x107c0e(0x13d)]()?_0x3b0b67[_0x107c0e(0x145)](_0x3811e3):console[_0x107c0e(0x140)](formatDirectoryError(_0x3811e3,undefined,_0x107c0e(0x13e)));}catch(_0x5d1401){console[_0x107c0e(0x140)](formatDirectoryError(_0x3811e3,_0x5d1401));}}return _0x3b0b67;}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morphllm/morphmcp",
3
- "version": "0.8.112",
3
+ "version": "0.8.113",
4
4
  "description": "Fast & accurate MCP server with AI-powered file editing and intelligent code search. Prevents context pollution and saves time for a better user experience.",
5
5
  "license": "MIT",
6
6
  "author": "Morph (https://morphllm.com)",
@@ -35,7 +35,7 @@
35
35
  "dependencies": {
36
36
  "@google/generative-ai": "^0.21.0",
37
37
  "@modelcontextprotocol/sdk": "^1.12.3",
38
- "@morphllm/morphsdk": "0.2.128",
38
+ "@morphllm/morphsdk": "0.2.129",
39
39
  "@vscode/ripgrep": "^1.15.14",
40
40
  "axios": "^1.6.0",
41
41
  "chalk": "^5.3.0",