@morphllm/morphmcp 0.8.93 → 0.8.95

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const a0_0x37d1ec=a0_0x37af;function a0_0x2c14(){const _0x9f43c=['❌\x20Morph\x20Edit\x20Failed:\x20','linesRemoved','Morph\x20Edit\x20Preview','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','19304OzsXAH','morph-mcp','--api-key=','boolean','runWarpGrep_call','list_directory\x20','code','Enabled\x20tools:\x20','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','cwd','realpath','-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a','repo_path','427FHzxCD','length','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','source','\x20results\x20in\x20','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','codebase_search','--help','read\x20','completed_with_file_errors','completed','**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a','\x0a</file>','sep','56284mZNxeX','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','PWD','Morph\x20FastApply\x20failed\x20without\x20error\x20message','Invalid\x20arguments:\x20','timed\x20out','every','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','[could\x20not\x20read\x20file:\x20','morph-','string','11170toOLqK','resolve','slice','filter','UnknownError','dryRun','normalize','-\x20Read\x20file\x20`','role','composer.json','WORKSPACE_ROOT','edit_file','files','Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20','has','pyproject.toml','\x20\x20morph-mcp','...','\x20chars)','changes','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','\x20as\x20allowed\x20directory','startsWith','terminated','success','lines','🎯\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a','Error\x20running\x20fast\x20context\x20search:\x20','https://morphllm.com/api/error-report','timeout','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','isArray','Warning:\x20Workspace\x20fallback\x20failed:\x20','Applied','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','3177ggasxa',',\x20modified\x20','.vscode','ENOENT','MORPH_API_KEY','listRoots','stat','-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','unknown','<file\x20path=\x22','assistant','substring','getClientCapabilities','0.2.0','go.mod','tsconfig.json','map','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','%\x20match)\x0a','stringify','Created\x20File','text','oninitialized','\x20-\x20','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','Failed\x20to\x20request\x20roots\x20from\x20client:','metadata','finish','search_string','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.','ENABLED_TOOLS','Fallback:\x20Using\x20workspace\x20root\x20','setRequestHandler','includes','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','Unknown\x20error','connect','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','\x20(new\x20file)','Bearer\x20','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','MORPH_API_URL','MORPH_WARP_GREP_TIMEOUT','-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','ENABLE_WORKSPACE_MODE','\x0aExamples:','results','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.','Workspace\x20mode\x20enabled:\x20Using\x20','98208dvROrM','morph-v3-fast','code_edit','description','A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20','\x20is\x20not\x20a\x20directory','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20','added\x20','.cursor','readFile','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','messages','post','Rules:\x0a','FileReadError','Fatal\x20error\x20running\x20server:','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','linesModified','basename','roots','--version','Search\x20failed:\x20','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','\x20\x20\x20','constructor','toFixed','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','setNotificationHandler','safeParse','instruction','utf-8','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','limit','@morphllm/morphmcp\x20','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','\x0a...\x20(truncated,\x20total:\x20','Parent\x20directory\x20does\x20not\x20exist:\x20','morph-warp-grep-v1-1111v0','terminationReason','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','targetDirectories','toLowerCase','unknown\x20error','Repository\x20identifier','3272JolQhj','join','completionId','Morph\x20Edit\x20','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','ms:\x0a\x0a','query','name','version','warpgrep_codebase_search','Natural\x20language\x20query\x20to\x20search\x20for\x20code','all','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','stack','message','content','exit','39oQGCxO','optional','error','describe','repoId','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','Error\x20accessing\x20directory\x20','false','catch','958026sbkgGs','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','package.json','path','\x0aOptions:','\x22>\x0aError\x20reading\x20file:\x20','.\x20Path:\x20','filepath','1046805aQUVnL','branch','For\x20deletions:\x0a','\x20valid\x20directories','Warning:\x20','timings','--api-key','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','File\x20read\x20error:','Error:\x20','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','etimedout','data','-\x20Grepped\x20\x27','searchTimeMs','.\x20Changes:\x20','This\x20tool\x20invokes\x20a\x20subagent\x20that\x20runs\x20parallel\x20grep\x20and\x20readfile\x20calls\x20over\x20multiple\x20turns\x20to\x20locate\x20line\x20ranges\x20and\x20files\x20which\x20might\x20be\x20relevant\x20to\x20the\x20request.\x20','dirname','Benefits:\x0a','default','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','TimeoutError','mcp-filesystem','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','log','Failed\x20to\x20read\x20file:\x20','Found\x20','object','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','env','trim','application/json','errors','requiresApiKey','toISOString','params','split','match','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','push'];a0_0x2c14=function(){return _0x9f43c;};return a0_0x2c14();}(function(_0x2883c5,_0x45ea03){const _0x48c634=a0_0x37af,_0x5f1cec=_0x2883c5();while(!![]){try{const _0x2958ae=parseInt(_0x48c634(0x1fa))/0x1+-parseInt(_0x48c634(0x17d))/0x2+parseInt(_0x48c634(0x1bb))/0x3*(-parseInt(_0x48c634(0x215))/0x4)+-parseInt(_0x48c634(0x1cc))/0x5+parseInt(_0x48c634(0x1c4))/0x6+parseInt(_0x48c634(0x207))/0x7*(-parseInt(_0x48c634(0x1a9))/0x8)+-parseInt(_0x48c634(0x247))/0x9*(-parseInt(_0x48c634(0x221))/0xa);if(_0x2958ae===_0x45ea03)break;else _0x5f1cec['push'](_0x5f1cec['shift']());}catch(_0x8bd16){_0x5f1cec['push'](_0x5f1cec['shift']());}}}(a0_0x2c14,0x1a1bb));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';function a0_0x37af(_0x1e4ea2,_0x59c9e9){_0x1e4ea2=_0x1e4ea2-0x16e;const _0x2c1440=a0_0x2c14();let _0x37af63=_0x2c1440[_0x1e4ea2];return _0x37af63;}import a0_0x2beab0 from'fs/promises';import a0_0x3b446b from'path';import a0_0x1f32e3 from'os';import{createRequire}from'module';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider}from'@morphllm/morphsdk/tools/warp-grep';import{executeCodebaseSearch}from'@morphllm/morphsdk/tools/codebase-search';import a0_0x3adbd5 from'axios';function fixPathRepetition(_0x53ae00){const _0x46df14=a0_0x37af,_0x112e38=_0x53ae00[_0x46df14(0x1f2)](a0_0x3b446b[_0x46df14(0x214)])[_0x46df14(0x224)](Boolean);if(_0x112e38[_0x46df14(0x208)]<0x2)return null;for(let _0x494092=Math['floor'](_0x112e38[_0x46df14(0x208)]/0x2);_0x494092>=0x1;_0x494092--){for(let _0x1be3f5=0x0;_0x1be3f5<=_0x112e38[_0x46df14(0x208)]-0x2*_0x494092;_0x1be3f5++){const _0x596b16=_0x112e38[_0x46df14(0x223)](_0x1be3f5,_0x1be3f5+_0x494092),_0x4577d9=_0x112e38['slice'](_0x1be3f5+_0x494092,_0x1be3f5+0x2*_0x494092);if(_0x596b16[_0x46df14(0x21b)]((_0x47769d,_0x17027e)=>_0x47769d===_0x4577d9[_0x17027e])){const _0x5f42c4=[..._0x112e38[_0x46df14(0x223)](0x0,_0x1be3f5),..._0x112e38['slice'](_0x1be3f5+_0x494092)];return a0_0x3b446b[_0x46df14(0x214)]+_0x5f42c4[_0x46df14(0x1aa)](a0_0x3b446b[_0x46df14(0x214)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x5cba7e=a0_0x37af;try{const _0x4bd0c6=require('../package.json');return _0x4bd0c6[_0x5cba7e(0x1b2)]??'unknown';}catch(_0x4e11ea){return console[_0x5cba7e(0x1bd)](_0x5cba7e(0x24f),_0x4e11ea),_0x5cba7e(0x250);}}function printHelp(){const _0x2cee3=a0_0x37af;console[_0x2cee3(0x1e5)]('@morphllm/morphmcp\x20'+getPackageVersion()),console[_0x2cee3(0x1e5)](_0x2cee3(0x193)),console[_0x2cee3(0x1e5)](_0x2cee3(0x1c8)),console['log']('\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)'),console[_0x2cee3(0x1e5)](_0x2cee3(0x21d)),console['log'](_0x2cee3(0x187)),console[_0x2cee3(0x1e5)](_0x2cee3(0x179)),console[_0x2cee3(0x1e5)](_0x2cee3(0x231)),console[_0x2cee3(0x1e5)]('\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo');}const cliArgs=process['argv'][a0_0x37d1ec(0x223)](0x2),VERSION_FLAGS=new Set([a0_0x37d1ec(0x191),'-v','-V']),HELP_FLAGS=new Set([a0_0x37d1ec(0x20e),'-h']);cliArgs['some'](_0x55e316=>VERSION_FLAGS[a0_0x37d1ec(0x22f)](_0x55e316))&&(console[a0_0x37d1ec(0x1e5)](a0_0x37d1ec(0x19e)+getPackageVersion()),process[a0_0x37d1ec(0x1ba)](0x0));cliArgs['some'](_0x581e80=>HELP_FLAGS[a0_0x37d1ec(0x22f)](_0x581e80))&&(printHelp(),process[a0_0x37d1ec(0x1ba)](0x0));function getCliArg(_0xdfc30e){const _0x3551f6=a0_0x37d1ec;for(let _0x2858c5=0x0;_0x2858c5<cliArgs[_0x3551f6(0x208)];_0x2858c5++){const _0x50ae7b=cliArgs[_0x2858c5];if(_0x50ae7b[_0x3551f6(0x23a)]('--'+_0xdfc30e+'='))return _0x50ae7b[_0x3551f6(0x223)](('--'+_0xdfc30e+'=')[_0x3551f6(0x208)]);if(_0x50ae7b==='--'+_0xdfc30e&&_0x2858c5+0x1<cliArgs[_0x3551f6(0x208)])return cliArgs[_0x2858c5+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs['length'];i++){const arg=cliArgs[i];if(VERSION_FLAGS['has'](arg)||HELP_FLAGS[a0_0x37d1ec(0x22f)](arg))continue;if(arg['startsWith'](a0_0x37d1ec(0x1fc)))continue;if(arg===a0_0x37d1ec(0x1d2)){i++;continue;}args['push'](arg);}const ALL_TOOLS=[a0_0x37d1ec(0x22c),'warpgrep_codebase_search',a0_0x37d1ec(0x20d)],DEFAULT_TOOLS=[a0_0x37d1ec(0x22c),a0_0x37d1ec(0x1b3)],ENABLED_TOOLS=process[a0_0x37d1ec(0x1eb)]['ENABLED_TOOLS']?process[a0_0x37d1ec(0x1eb)]['ENABLED_TOOLS']==='all'?ALL_TOOLS:process[a0_0x37d1ec(0x1eb)][a0_0x37d1ec(0x266)][a0_0x37d1ec(0x1f2)](',')[a0_0x37d1ec(0x258)](_0x41ae9a=>_0x41ae9a[a0_0x37d1ec(0x1ec)]()):DEFAULT_TOOLS;console[a0_0x37d1ec(0x1bd)](a0_0x37d1ec(0x201)+ENABLED_TOOLS[a0_0x37d1ec(0x1aa)](',\x20'));const WORKSPACE_ROOT=process[a0_0x37d1ec(0x1eb)][a0_0x37d1ec(0x22b)]||process[a0_0x37d1ec(0x1eb)][a0_0x37d1ec(0x217)]||process[a0_0x37d1ec(0x203)](),ENABLE_WORKSPACE_MODE=process[a0_0x37d1ec(0x1eb)][a0_0x37d1ec(0x178)]!==a0_0x37d1ec(0x1c2),MORPH_API_KEY=getCliArg('api-key')??process[a0_0x37d1ec(0x1eb)][a0_0x37d1ec(0x24b)],MORPH_API_URL=process['env'][a0_0x37d1ec(0x174)],MORPH_WARP_GREP_TIMEOUT=process[a0_0x37d1ec(0x1eb)][a0_0x37d1ec(0x175)]?parseInt(process['env'][a0_0x37d1ec(0x175)],0xa):undefined;MORPH_API_KEY&&!MORPH_API_KEY[a0_0x37d1ec(0x23a)]('sk-')&&!MORPH_API_KEY[a0_0x37d1ec(0x23a)](a0_0x37d1ec(0x21f))&&console[a0_0x37d1ec(0x1bd)](a0_0x37d1ec(0x1d3));async function reportMorphError(_0xacb371){const _0x208ec6=a0_0x37d1ec;try{await a0_0x3adbd5[_0x208ec6(0x189)](_0x208ec6(0x240),{..._0xacb371,'timestamp':new Date()[_0x208ec6(0x1f0)](),'source':_0xacb371[_0x208ec6(0x20a)]||_0x208ec6(0x1e3)},{'timeout':0x1388,'headers':{'Content-Type':_0x208ec6(0x1ed),'Authorization':_0x208ec6(0x172)+MORPH_API_KEY}});}catch{}}args[a0_0x37d1ec(0x208)]===0x0&&!ENABLE_WORKSPACE_MODE&&(console['error'](a0_0x37d1ec(0x173)),console['error'](a0_0x37d1ec(0x235)),console[a0_0x37d1ec(0x1bd)](a0_0x37d1ec(0x170)),console[a0_0x37d1ec(0x1bd)](a0_0x37d1ec(0x1f4)),console[a0_0x37d1ec(0x1bd)](a0_0x37d1ec(0x209)),console['error']('At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.'));function normalizePath(_0x1f2b45){const _0x496b8b=a0_0x37d1ec;return a0_0x3b446b[_0x496b8b(0x227)](_0x1f2b45);}function expandHome(_0x34c9a1){const _0x104850=a0_0x37d1ec;if(_0x34c9a1[_0x104850(0x23a)]('~/')||_0x34c9a1==='~')return a0_0x3b446b[_0x104850(0x1aa)](a0_0x1f32e3['homedir'](),_0x34c9a1[_0x104850(0x223)](0x1));return _0x34c9a1;}let allowedDirectories=await Promise['all'](args[a0_0x37d1ec(0x258)](async _0x8beb19=>{const _0x362332=expandHome(_0x8beb19),_0x2eedd4=a0_0x3b446b['resolve'](_0x362332);try{const _0x415281=await a0_0x2beab0['realpath'](_0x2eedd4);return normalizePath(_0x415281);}catch(_0x4a1940){return normalizePath(_0x2eedd4);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x37d1ec(0x208)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x37d1ec(0x1f5)](workspaceDir),console['error'](a0_0x37d1ec(0x17c)+workspaceDir+a0_0x37d1ec(0x239)));}catch(a0_0x172c63){console['error'](a0_0x37d1ec(0x21c)+a0_0x172c63);}async function detectWorkspaceRoot(_0x24fa49){const _0x503788=a0_0x37d1ec;let _0x1c39dd=a0_0x3b446b[_0x503788(0x222)](_0x24fa49);const _0x536314=['.git',_0x503788(0x249),_0x503788(0x1c6),'Cargo.toml',_0x503788(0x230),_0x503788(0x256),_0x503788(0x185),_0x503788(0x257),_0x503788(0x22a)];while(_0x1c39dd!==a0_0x3b446b[_0x503788(0x1dd)](_0x1c39dd)){for(const _0x2a7a3f of _0x536314){const _0x4fc5b5=a0_0x3b446b[_0x503788(0x1aa)](_0x1c39dd,_0x2a7a3f);try{return await a0_0x2beab0['access'](_0x4fc5b5),normalizePath(_0x1c39dd);}catch{}}_0x1c39dd=a0_0x3b446b[_0x503788(0x1dd)](_0x1c39dd);}return normalizePath(_0x24fa49);}await Promise[a0_0x37d1ec(0x1b5)](args[a0_0x37d1ec(0x258)](async _0x421224=>{const _0x16950a=a0_0x37d1ec;try{const _0x203415=await a0_0x2beab0[_0x16950a(0x24d)](expandHome(_0x421224));!_0x203415['isDirectory']()&&(console[_0x16950a(0x1bd)](_0x16950a(0x1d5)+_0x421224+_0x16950a(0x182)),process[_0x16950a(0x1ba)](0x1));}catch(_0x4add2c){console[_0x16950a(0x1bd)](_0x16950a(0x1c1)+_0x421224+':',_0x4add2c),process['exit'](0x1);}}));async function validatePath(_0x1b195d){const _0x492da7=a0_0x37d1ec,_0x20e298=expandHome(_0x1b195d),_0x2f0ad3=a0_0x3b446b[_0x492da7(0x222)](_0x20e298);try{const _0x3caf80=await a0_0x2beab0[_0x492da7(0x204)](_0x2f0ad3);return _0x3caf80;}catch(_0x1be6f9){if(_0x1be6f9['code']===_0x492da7(0x24a)){const _0x575f5b=a0_0x3b446b[_0x492da7(0x1dd)](_0x2f0ad3);try{const _0x14eeed=await a0_0x2beab0[_0x492da7(0x204)](_0x575f5b);return a0_0x3b446b[_0x492da7(0x1aa)](_0x14eeed,a0_0x3b446b[_0x492da7(0x18f)](_0x2f0ad3));}catch{throw new Error(_0x492da7(0x1a1)+_0x575f5b);}}throw _0x1be6f9;}}const MorphEditFileArgsSchema=z[a0_0x37d1ec(0x1e8)]({'path':z[a0_0x37d1ec(0x220)](),'code_edit':z['string']()['describe']('Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.'),'instruction':z[a0_0x37d1ec(0x220)]()[a0_0x37d1ec(0x1be)]('A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.'),'dryRun':z[a0_0x37d1ec(0x1fd)]()[a0_0x37d1ec(0x1df)](![])[a0_0x37d1ec(0x1be)]('Preview\x20changes\x20without\x20applying\x20them.')}),WarpGrepArgsSchema=z[a0_0x37d1ec(0x1e8)]({'search_string':z[a0_0x37d1ec(0x220)]()[a0_0x37d1ec(0x1be)]('Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for'),'repo_path':z[a0_0x37d1ec(0x220)]()[a0_0x37d1ec(0x1be)]('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')}),CodebaseSearchArgsSchema=z[a0_0x37d1ec(0x1e8)]({'query':z[a0_0x37d1ec(0x220)]()['describe'](a0_0x37d1ec(0x1b4)),'repoId':z[a0_0x37d1ec(0x220)]()['describe'](a0_0x37d1ec(0x1a8)),'branch':z[a0_0x37d1ec(0x220)]()[a0_0x37d1ec(0x1bc)]()['describe'](a0_0x37d1ec(0x1c5)),'commitHash':z[a0_0x37d1ec(0x220)]()[a0_0x37d1ec(0x1bc)]()[a0_0x37d1ec(0x1be)]('Specific\x20commit\x20hash\x20to\x20search'),'targetDirectories':z['array'](z[a0_0x37d1ec(0x220)]())['default']([])[a0_0x37d1ec(0x1be)](a0_0x37d1ec(0x216)),'limit':z['number']()[a0_0x37d1ec(0x1bc)]()[a0_0x37d1ec(0x1df)](0xa)[a0_0x37d1ec(0x1be)]('Max\x20results\x20to\x20return')}),server=new Server({'name':a0_0x37d1ec(0x1fb),'version':'0.2.0'},{'capabilities':{'tools':{}}});server[a0_0x37d1ec(0x268)](ListToolsRequestSchema,async()=>{const _0x4fa1f3=a0_0x37d1ec,_0x539fbd=[{'name':'edit_file','description':'**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a'+_0x4fa1f3(0x202)+_0x4fa1f3(0x260)+'IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a'+_0x4fa1f3(0x1de)+_0x4fa1f3(0x1ea)+'-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a'+_0x4fa1f3(0x1a4)+_0x4fa1f3(0x1e4)+'Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a'+_0x4fa1f3(0x242)+_0x4fa1f3(0x1ae)+_0x4fa1f3(0x1ce)+_0x4fa1f3(0x246)+_0x4fa1f3(0x205)+_0x4fa1f3(0x18a)+_0x4fa1f3(0x1e0)+_0x4fa1f3(0x1d6)+'-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a'+_0x4fa1f3(0x1c0)+_0x4fa1f3(0x177)+_0x4fa1f3(0x1f9)+'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':_0x4fa1f3(0x1b3),'description':_0x4fa1f3(0x181)+_0x4fa1f3(0x1dc)+_0x4fa1f3(0x19f)+_0x4fa1f3(0x183)+_0x4fa1f3(0x17b)+_0x4fa1f3(0x1b6)+_0x4fa1f3(0x1e9)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':'codebase_search','description':_0x4fa1f3(0x212)+'⚡\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a'+_0x4fa1f3(0x23e)+'Benefits:\x0a'+_0x4fa1f3(0x176)+'-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a'+_0x4fa1f3(0x24e)+_0x4fa1f3(0x237)+'Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20'+_0x4fa1f3(0x22e)+_0x4fa1f3(0x197),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x5b2e32=_0x539fbd['filter'](_0x552aa5=>{const _0x2bb951=_0x4fa1f3;if(!ENABLED_TOOLS[_0x2bb951(0x269)](_0x552aa5[_0x2bb951(0x1b1)]))return![];if(_0x2bb951(0x1ef)in _0x552aa5&&_0x552aa5[_0x2bb951(0x1ef)]&&!MORPH_API_KEY)return console[_0x2bb951(0x1bd)](_0x2bb951(0x1d0)+_0x552aa5[_0x2bb951(0x1b1)]+_0x2bb951(0x18d)),![];return!![];});return{'tools':_0x5b2e32[_0x4fa1f3(0x258)](_0x3ff35f=>({'name':_0x3ff35f[_0x4fa1f3(0x1b1)],'description':_0x3ff35f[_0x4fa1f3(0x180)],'inputSchema':_0x3ff35f['inputSchema']}))};}),server[a0_0x37d1ec(0x268)](CallToolRequestSchema,async _0x132dc5=>{const _0xcb4b32=a0_0x37d1ec;try{const {name:_0x1499cf,arguments:_0x18ad1d}=_0x132dc5[_0xcb4b32(0x1f1)];switch(_0x1499cf){case _0xcb4b32(0x22c):{const _0x192e97=MorphEditFileArgsSchema[_0xcb4b32(0x199)](_0x18ad1d);if(!_0x192e97[_0xcb4b32(0x23c)])throw new Error(_0xcb4b32(0x26a)+_0x192e97[_0xcb4b32(0x1bd)]);const _0xb0a3f=await validatePath(_0x192e97[_0xcb4b32(0x1d8)][_0xcb4b32(0x1c7)]);let _0x1609c2=null,_0x12cfc9=!![],_0x5b20ec=null;try{_0x1609c2=await a0_0x2beab0[_0xcb4b32(0x186)](_0xb0a3f,'utf-8');}catch(_0x6f4723){const _0x2b75c6=_0x6f4723[_0xcb4b32(0x200)];_0x2b75c6===_0xcb4b32(0x24a)?(_0x12cfc9=![],_0x1609c2=''):(_0x5b20ec=_0xcb4b32(0x1e6)+(_0x2b75c6||_0xcb4b32(0x250))+_0xcb4b32(0x25f)+(_0x6f4723 instanceof Error?_0x6f4723['message']:String(_0x6f4723)),console[_0xcb4b32(0x1bd)](_0xcb4b32(0x1d0)+_0x5b20ec));}let _0xca9ce7;try{const _0x4436ac=MORPH_API_KEY;if(!_0x4436ac)throw new Error(_0xcb4b32(0x238));const _0x17748a=a0_0x3b446b[_0xcb4b32(0x1dd)](_0xb0a3f),_0x62c4da=a0_0x3b446b[_0xcb4b32(0x18f)](_0xb0a3f),_0x57d5c0=await executeEditFile({'target_filepath':_0x62c4da,'code_edit':_0x192e97[_0xcb4b32(0x1d8)][_0xcb4b32(0x17f)],'instructions':_0x192e97[_0xcb4b32(0x1d8)][_0xcb4b32(0x19a)]},{'morphApiKey':_0x4436ac,'morphApiUrl':MORPH_API_URL,'baseDir':_0x17748a,'autoWrite':!_0x192e97[_0xcb4b32(0x1d8)][_0xcb4b32(0x226)],'generateUdiff':![],'debug':![]});_0xca9ce7=_0x57d5c0[_0xcb4b32(0x1ab)];if(!_0x57d5c0['success'])throw new Error(_0x57d5c0['error']||_0xcb4b32(0x218));const _0x4dc88e=_0x57d5c0[_0xcb4b32(0x234)],_0x3d3dfa=_0xcb4b32(0x184)+_0x4dc88e['linesAdded']+',\x20removed\x20'+_0x4dc88e[_0xcb4b32(0x1f7)]+_0xcb4b32(0x248)+_0x4dc88e[_0xcb4b32(0x18e)];if(_0x192e97[_0xcb4b32(0x1d8)][_0xcb4b32(0x226)])return{'content':[{'type':_0xcb4b32(0x25d),'text':_0xcb4b32(0x1f8)+(_0x12cfc9?'':_0xcb4b32(0x171))+':\x20'+_0x192e97[_0xcb4b32(0x1d8)][_0xcb4b32(0x19a)]+_0xcb4b32(0x1db)+_0x3d3dfa+_0xcb4b32(0x1ca)+_0x192e97[_0xcb4b32(0x1d8)][_0xcb4b32(0x1c7)]+'.'}]};return{'content':[{'type':_0xcb4b32(0x25d),'text':_0xcb4b32(0x1ac)+(_0x12cfc9?_0xcb4b32(0x245):_0xcb4b32(0x25c))+':\x20'+_0x192e97['data'][_0xcb4b32(0x19a)]+_0xcb4b32(0x1db)+_0x3d3dfa+_0xcb4b32(0x1ca)+_0x192e97[_0xcb4b32(0x1d8)]['path']+'.'}]};}catch(_0x4cc459){const _0x12193d=_0x4cc459 instanceof Error?_0x4cc459[_0xcb4b32(0x1b8)]:String(_0x4cc459);return reportMorphError({'error_message':_0x12193d,'error_type':_0x4cc459 instanceof Error?_0x4cc459[_0xcb4b32(0x195)]['name']:'UnknownError','context':{'tool':_0xcb4b32(0x22c),'completion_id':_0xca9ce7,'file_path':_0x192e97[_0xcb4b32(0x1d8)][_0xcb4b32(0x1c7)],'validated_path':_0xb0a3f,'instruction':_0x192e97[_0xcb4b32(0x1d8)][_0xcb4b32(0x19a)],'model':_0xcb4b32(0x17e),'dry_run':_0x192e97['data'][_0xcb4b32(0x226)],'file_exists':_0x12cfc9,'file_read_error':_0x5b20ec,'file_readable':_0x1609c2!==null,'request_content':{'path':_0x192e97[_0xcb4b32(0x1d8)][_0xcb4b32(0x1c7)],'code_edit':_0x192e97[_0xcb4b32(0x1d8)][_0xcb4b32(0x17f)],'instruction':_0x192e97[_0xcb4b32(0x1d8)][_0xcb4b32(0x19a)],'original_code':_0x1609c2!==null?_0x1609c2[_0xcb4b32(0x208)]>0xc350?_0x1609c2[_0xcb4b32(0x253)](0x0,0xc350)+_0xcb4b32(0x1a0)+_0x1609c2[_0xcb4b32(0x208)]+_0xcb4b32(0x233):_0x1609c2:_0xcb4b32(0x21e)+(_0x5b20ec||_0xcb4b32(0x1a7))+']','original_code_length':_0x1609c2?.[_0xcb4b32(0x208)]??0x0,'model':_0xcb4b32(0x17e),'dry_run':_0x192e97[_0xcb4b32(0x1d8)][_0xcb4b32(0x226)]}},'stack_trace':_0x4cc459 instanceof Error?_0x4cc459[_0xcb4b32(0x1b7)]:undefined,'source':_0xcb4b32(0x1e3)})[_0xcb4b32(0x1c3)](()=>{}),{'content':[{'type':'text','text':_0xcb4b32(0x1f6)+_0x12193d}],'isError':!![]};}}case _0xcb4b32(0x1b3):{const _0x34df24=WarpGrepArgsSchema['safeParse'](_0x18ad1d);if(!_0x34df24[_0xcb4b32(0x23c)])return{'content':[{'type':_0xcb4b32(0x25d),'text':'Invalid\x20arguments:\x20'+_0x34df24['error']}],'isError':!![]};const _0x465941=_0x258487=>{const _0x7804e3=_0xcb4b32,_0x43588e=[];for(const _0x2ed6e1 of _0x258487||[]){const _0x127090=_0x2ed6e1[_0x7804e3(0x229)],_0x509808=_0x2ed6e1[_0x7804e3(0x1b9)];if(_0x127090===_0x7804e3(0x252)&&_0x509808){const _0xb3efef=_0x509808[_0x7804e3(0x1f2)]('\x0a')[_0x7804e3(0x224)](_0x1cfa56=>_0x1cfa56[_0x7804e3(0x1ec)]());for(const _0x5b16d2 of _0xb3efef){const _0x29cb78=_0x5b16d2['match'](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x29cb78){_0x43588e[_0x7804e3(0x1f5)]('grep\x20\x27'+_0x29cb78[0x1]+'\x27\x20'+_0x29cb78[0x2]);continue;}const _0x55d248=_0x5b16d2[_0x7804e3(0x1f3)](/^read\s+(.+)$/);if(_0x55d248){_0x43588e[_0x7804e3(0x1f5)](_0x7804e3(0x20f)+_0x55d248[0x1]);continue;}const _0x266863=_0x5b16d2[_0x7804e3(0x1f3)](/^list_directory\s+(.+)$/);if(_0x266863){_0x43588e[_0x7804e3(0x1f5)](_0x7804e3(0x1ff)+_0x266863[0x1]);continue;}}}}return _0x43588e;};try{const _0xb4bef0=a0_0x3b446b[_0xcb4b32(0x222)](_0x34df24[_0xcb4b32(0x1d8)]['repo_path']),_0x1b89fc=new LocalRipgrepProvider(_0xb4bef0),_0x2c10f1=await runWarpGrep({'query':_0x34df24[_0xcb4b32(0x1d8)][_0xcb4b32(0x264)],'repoRoot':_0xb4bef0,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x1b89fc});let _0xa1adb8='';if(_0x2c10f1[_0xcb4b32(0x1a3)]===_0xcb4b32(0x211)&&_0x2c10f1['finish']?.[_0xcb4b32(0x262)]?.[_0xcb4b32(0x22d)]){const _0x1ee65e=_0x2c10f1[_0xcb4b32(0x263)][_0xcb4b32(0x262)][_0xcb4b32(0x22d)],_0x167ecf=[],_0x3b79f2=['Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:'];for(const _0x518916 of _0x2c10f1[_0xcb4b32(0x188)]){const _0xaacbb0=_0x518916['role'],_0x52b1cf=_0x518916[_0xcb4b32(0x1b9)];if(_0xaacbb0===_0xcb4b32(0x252)&&_0x52b1cf){const _0x3f6f96=_0x52b1cf['split']('\x0a')[_0xcb4b32(0x224)](_0x25f98b=>_0x25f98b[_0xcb4b32(0x1ec)]());for(const _0x1bc60a of _0x3f6f96){const _0x5700ff=_0x1bc60a[_0xcb4b32(0x1f3)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x5700ff){_0x3b79f2[_0xcb4b32(0x1f5)](_0xcb4b32(0x1d9)+_0x5700ff[0x1]+'\x27\x20in\x20`'+_0x5700ff[0x2]+'`');continue;}const _0x42489b=_0x1bc60a[_0xcb4b32(0x1f3)](/^read\s+(.+)$/);if(_0x42489b){_0x3b79f2[_0xcb4b32(0x1f5)](_0xcb4b32(0x228)+_0x42489b[0x1]+'`');continue;}const _0x422aa9=_0x1bc60a['match'](/^list_directory\s+(.+)$/);if(_0x422aa9){_0x3b79f2[_0xcb4b32(0x1f5)]('-\x20Listed\x20directory\x20`'+_0x422aa9[0x1]+'`');continue;}}}}_0x167ecf[_0xcb4b32(0x1f5)](_0x3b79f2[_0xcb4b32(0x1aa)]('\x0a'));const _0x5ad4b1=['','Relevant\x20context\x20found:'];for(const _0x1a3378 of _0x1ee65e){if(_0x1a3378['lines']==='*')_0x5ad4b1['push']('-\x20'+_0x1a3378['path']+':*');else{if(Array['isArray'](_0x1a3378[_0xcb4b32(0x23d)])){const _0x510770=_0x1a3378[_0xcb4b32(0x23d)]['map'](([_0x178d5c,_0x43c986])=>{if(_0x178d5c===_0x43c986)return''+_0x178d5c;return _0x178d5c+'-'+_0x43c986;});_0x5ad4b1['push']('-\x20'+_0x1a3378[_0xcb4b32(0x1c7)]+':'+_0x510770[_0xcb4b32(0x1aa)](','));}else _0x5ad4b1['push']('-\x20'+_0x1a3378[_0xcb4b32(0x1c7)]+':*');}}_0x5ad4b1['push'](''),_0x167ecf['push'](_0x5ad4b1['join']('\x0a')),_0x167ecf[_0xcb4b32(0x1f5)]('Here\x20is\x20the\x20content\x20of\x20files:\x0a');const _0x43bfc0=[];for(const _0x2629f9 of _0x1ee65e){let _0x18decf=a0_0x3b446b['resolve'](_0x34df24['data'][_0xcb4b32(0x206)],_0x2629f9['path']),_0x5b53f3=null,_0x3fb9a7=null;try{_0x5b53f3=await a0_0x2beab0[_0xcb4b32(0x186)](_0x18decf,{'encoding':_0xcb4b32(0x19b)});}catch(_0x25fce9){const _0x2efe71=fixPathRepetition(_0x18decf);if(_0x2efe71)try{_0x5b53f3=await a0_0x2beab0[_0xcb4b32(0x186)](_0x2efe71,{'encoding':_0xcb4b32(0x19b)}),_0x18decf=_0x2efe71;}catch{_0x3fb9a7=_0x25fce9 instanceof Error?_0x25fce9:new Error(String(_0x25fce9));}else _0x3fb9a7=_0x25fce9 instanceof Error?_0x25fce9:new Error(String(_0x25fce9));}if(_0x5b53f3!==null){const _0x43f292=_0x5b53f3['split'](/\r?\n/),_0x4404cd=[_0xcb4b32(0x251)+_0x2629f9[_0xcb4b32(0x1c7)]+'\x22>'];if(_0x2629f9['lines']==='*'||!Array[_0xcb4b32(0x243)](_0x2629f9[_0xcb4b32(0x23d)]))for(let _0x281c57=0x1;_0x281c57<=_0x43f292[_0xcb4b32(0x208)];_0x281c57++){const _0x3b52d2=_0x43f292[_0x281c57-0x1];_0x4404cd[_0xcb4b32(0x1f5)](_0x281c57+'|\x20'+_0x3b52d2);}else for(const [_0x2c60c3,_0x1b9817]of _0x2629f9['lines']){_0x4404cd[_0xcb4b32(0x208)]>0x1&&_0x4404cd[_0xcb4b32(0x1f5)]('');for(let _0x1020ff=_0x2c60c3;_0x1020ff<=_0x1b9817&&_0x1020ff<=_0x43f292[_0xcb4b32(0x208)];_0x1020ff++){const _0x424ee6=_0x43f292[_0x1020ff-0x1];_0x4404cd[_0xcb4b32(0x1f5)](_0x1020ff+'|\x20'+_0x424ee6);}}_0x4404cd[_0xcb4b32(0x1f5)]('</file>'),_0x43bfc0[_0xcb4b32(0x1f5)](_0x4404cd['join']('\x0a'));}else _0x43bfc0[_0xcb4b32(0x1f5)]('<file\x20path=\x22'+_0x2629f9[_0xcb4b32(0x1c7)]+_0xcb4b32(0x1c9)+(_0x3fb9a7?.[_0xcb4b32(0x1b8)]||_0xcb4b32(0x16e))+_0xcb4b32(0x213));}_0x167ecf[_0xcb4b32(0x1f5)](_0x43bfc0['join']('\x0a\x0a')),_0xa1adb8=_0x167ecf[_0xcb4b32(0x1aa)]('\x0a');const _0x57e827=_0x2c10f1[_0xcb4b32(0x1ee)]?.[_0xcb4b32(0x224)](_0x3d8a68=>_0x3d8a68['message']?.[_0xcb4b32(0x23a)](_0xcb4b32(0x1d4)))||[];if(_0x57e827[_0xcb4b32(0x208)]>0x0){const _0x4f28c9=_0x57e827[_0xcb4b32(0x258)](_0x239b6f=>_0x239b6f[_0xcb4b32(0x1b8)])['join'](';\x20');reportMorphError({'error_message':_0x4f28c9,'error_type':_0xcb4b32(0x18b),'context':{'tool':'warpgrep_codebase_search','repo_path':_0x34df24['data'][_0xcb4b32(0x206)],'query':_0x34df24['data'][_0xcb4b32(0x264)],'model':_0xcb4b32(0x1a2),'termination_reason':_0xcb4b32(0x210),'error_count':_0x57e827[_0xcb4b32(0x208)],'is_timeout':![],'timings':_0x2c10f1[_0xcb4b32(0x1d1)],'files_attempted':_0x1ee65e[_0xcb4b32(0x258)](_0x1acd47=>({'path':_0x1acd47[_0xcb4b32(0x1c7)],'lines':_0x1acd47[_0xcb4b32(0x23d)]})),'tool_calls':_0x465941(_0x2c10f1['messages']),'messages':_0x2c10f1[_0xcb4b32(0x188)]?.[_0xcb4b32(0x258)](_0x445144=>({'role':_0x445144[_0xcb4b32(0x229)],'content':_0x445144[_0xcb4b32(0x1b9)]})),'request_content':{'query':_0x34df24[_0xcb4b32(0x1d8)][_0xcb4b32(0x264)],'repo_path':_0x34df24[_0xcb4b32(0x1d8)]['repo_path'],'repoRoot':a0_0x3b446b[_0xcb4b32(0x222)](_0x34df24[_0xcb4b32(0x1d8)][_0xcb4b32(0x206)]),'model':_0xcb4b32(0x1a2)}},'source':'mcp-filesystem'})[_0xcb4b32(0x1c3)](()=>{});}}else{if(_0x2c10f1[_0xcb4b32(0x1a3)]===_0xcb4b32(0x23b)&&_0x2c10f1[_0xcb4b32(0x1ee)]['length']>0x0){const _0x5844fa=_0x2c10f1[_0xcb4b32(0x1ee)]['map'](_0x4a919f=>_0x4a919f[_0xcb4b32(0x1b8)])[_0xcb4b32(0x1aa)](';\x20');_0xa1adb8=_0xcb4b32(0x1d5)+_0x5844fa;const _0x3c9f6e=_0x5844fa[_0xcb4b32(0x1a6)]()[_0xcb4b32(0x269)](_0xcb4b32(0x241))||_0x5844fa[_0xcb4b32(0x1a6)]()[_0xcb4b32(0x269)](_0xcb4b32(0x21a))||_0x5844fa[_0xcb4b32(0x1a6)]()[_0xcb4b32(0x269)](_0xcb4b32(0x1d7)),_0x1f0761=_0x2c10f1[_0xcb4b32(0x263)]?.[_0xcb4b32(0x262)]?.[_0xcb4b32(0x22d)],_0x535ec6=_0x2c10f1['errors'][0x0];reportMorphError({'error_message':_0x5844fa,'error_type':_0x3c9f6e?_0xcb4b32(0x1e2):_0x535ec6?.[_0xcb4b32(0x195)]?.['name']||'WarpGrepError','context':{'tool':_0xcb4b32(0x1b3),'repo_path':_0x34df24[_0xcb4b32(0x1d8)]['repo_path'],'query':_0x34df24[_0xcb4b32(0x1d8)][_0xcb4b32(0x264)],'model':_0xcb4b32(0x1a2),'termination_reason':_0x2c10f1[_0xcb4b32(0x1a3)],'error_count':_0x2c10f1['errors']['length'],'is_timeout':_0x3c9f6e,'timings':_0x2c10f1['timings'],'files_attempted':_0x1f0761?.[_0xcb4b32(0x258)](_0x46007e=>({'path':_0x46007e[_0xcb4b32(0x1c7)],'lines':_0x46007e['lines']})),'tool_calls':_0x465941(_0x2c10f1[_0xcb4b32(0x188)]),'messages':_0x2c10f1[_0xcb4b32(0x188)]?.[_0xcb4b32(0x258)](_0x335324=>({'role':_0x335324['role'],'content':_0x335324['content']})),'request_content':{'query':_0x34df24[_0xcb4b32(0x1d8)][_0xcb4b32(0x264)],'repo_path':_0x34df24[_0xcb4b32(0x1d8)][_0xcb4b32(0x206)],'repoRoot':a0_0x3b446b[_0xcb4b32(0x222)](_0x34df24['data'][_0xcb4b32(0x206)]),'model':_0xcb4b32(0x1a2)}},'stack_trace':_0x535ec6?.[_0xcb4b32(0x1b7)]||undefined,'source':_0xcb4b32(0x1e3)})[_0xcb4b32(0x1c3)](()=>{});}else _0xa1adb8=_0xcb4b32(0x236);}return{'content':[{'type':'text','text':_0xa1adb8}]};}catch(_0x2ad713){const _0x459715=_0x2ad713 instanceof Error?_0x2ad713[_0xcb4b32(0x1b8)]:String(_0x2ad713),_0x50ef39=_0x459715[_0xcb4b32(0x1a6)]()[_0xcb4b32(0x269)](_0xcb4b32(0x241))||_0x459715[_0xcb4b32(0x1a6)]()[_0xcb4b32(0x269)](_0xcb4b32(0x21a))||_0x459715[_0xcb4b32(0x1a6)]()[_0xcb4b32(0x269)](_0xcb4b32(0x1d7))||_0x2ad713 instanceof Error&&_0x2ad713['name']===_0xcb4b32(0x1e2);return reportMorphError({'error_message':_0x459715,'error_type':_0x50ef39?'TimeoutError':_0x2ad713 instanceof Error?_0x2ad713[_0xcb4b32(0x195)][_0xcb4b32(0x1b1)]:_0xcb4b32(0x225),'context':{'tool':'warpgrep_codebase_search','repo_path':_0x34df24[_0xcb4b32(0x1d8)][_0xcb4b32(0x206)],'query':_0x34df24[_0xcb4b32(0x1d8)][_0xcb4b32(0x264)],'model':_0xcb4b32(0x1a2),'is_timeout':_0x50ef39,'exception_phase':_0xcb4b32(0x1fe),'request_content':{'query':_0x34df24[_0xcb4b32(0x1d8)][_0xcb4b32(0x264)],'repo_path':_0x34df24[_0xcb4b32(0x1d8)][_0xcb4b32(0x206)],'repoRoot':a0_0x3b446b[_0xcb4b32(0x222)](_0x34df24[_0xcb4b32(0x1d8)][_0xcb4b32(0x206)]),'model':'morph-warp-grep-v1-1111v0'}},'stack_trace':_0x2ad713 instanceof Error?_0x2ad713['stack']:undefined,'source':_0xcb4b32(0x1e3)})[_0xcb4b32(0x1c3)](()=>{}),{'content':[{'type':_0xcb4b32(0x25d),'text':_0xcb4b32(0x23f)+_0x459715}],'isError':![]};}}case _0xcb4b32(0x20d):{const _0x324570=CodebaseSearchArgsSchema['safeParse'](_0x18ad1d);if(!_0x324570['success'])return{'content':[{'type':_0xcb4b32(0x25d),'text':_0xcb4b32(0x219)+_0x324570[_0xcb4b32(0x1bd)]}],'isError':!![]};try{const _0x22050a=MORPH_API_KEY;if(!_0x22050a)throw new Error('MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.');const _0x7954e7=_0x324570['data'][_0xcb4b32(0x1a5)],_0xf86188=await executeCodebaseSearch({'query':_0x324570[_0xcb4b32(0x1d8)][_0xcb4b32(0x1b0)],'target_directories':_0x7954e7,'limit':_0x324570[_0xcb4b32(0x1d8)][_0xcb4b32(0x19d)]},{'apiKey':_0x22050a,'repoId':_0x324570['data'][_0xcb4b32(0x1bf)],'branch':_0x324570['data'][_0xcb4b32(0x1cd)],'commitHash':_0x324570['data']['commitHash'],'debug':![]});if(!_0xf86188[_0xcb4b32(0x23c)])return{'content':[{'type':_0xcb4b32(0x25d),'text':_0xcb4b32(0x192)+_0xf86188[_0xcb4b32(0x1bd)]}],'isError':!![]};const _0x19f84d=_0xf86188['results'][_0xcb4b32(0x208)]===0x0?'No\x20results\x20found\x20for\x20query:\x20\x22'+_0x324570['data'][_0xcb4b32(0x1b0)]+'\x22':_0xcb4b32(0x1e7)+_0xf86188[_0xcb4b32(0x17a)][_0xcb4b32(0x208)]+_0xcb4b32(0x20b)+_0xf86188['stats'][_0xcb4b32(0x1da)]+_0xcb4b32(0x1af)+_0xf86188[_0xcb4b32(0x17a)][_0xcb4b32(0x258)]((_0x2639b4,_0x27ea6b)=>_0x27ea6b+0x1+'.\x20'+_0x2639b4[_0xcb4b32(0x1cb)]+'\x20('+(_0x2639b4['rerankScore']*0x64)[_0xcb4b32(0x196)](0x1)+_0xcb4b32(0x25a)+('\x20\x20\x20Lines\x20'+_0x2639b4['startLine']+'-'+_0x2639b4['endLine']+'\x0a')+(_0xcb4b32(0x194)+_0x2639b4[_0xcb4b32(0x1b9)][_0xcb4b32(0x253)](0x0,0xc8)+(_0x2639b4[_0xcb4b32(0x1b9)][_0xcb4b32(0x208)]>0xc8?_0xcb4b32(0x232):'')+'\x0a'))['join']('\x0a');return{'content':[{'type':_0xcb4b32(0x25d),'text':_0x19f84d}]};}catch(_0x1d4faa){const _0x17850b=_0x1d4faa instanceof Error?_0x1d4faa[_0xcb4b32(0x1b8)]:String(_0x1d4faa);return reportMorphError({'error_message':_0x17850b,'error_type':_0x1d4faa instanceof Error?_0x1d4faa[_0xcb4b32(0x195)][_0xcb4b32(0x1b1)]:_0xcb4b32(0x225),'context':{'tool':'codebase_search','query':_0x324570[_0xcb4b32(0x1d8)][_0xcb4b32(0x1b0)],'repo_id':_0x324570['data'][_0xcb4b32(0x1bf)],'target_directories':_0x324570[_0xcb4b32(0x1d8)]['targetDirectories']},'stack_trace':_0x1d4faa instanceof Error?_0x1d4faa[_0xcb4b32(0x1b7)]:undefined,'source':_0xcb4b32(0x1e3)})['catch'](()=>{}),{'content':[{'type':_0xcb4b32(0x25d),'text':_0xcb4b32(0x1d5)+_0x17850b}],'isError':!![]};}}default:throw new Error('Unknown\x20tool:\x20'+_0x1499cf);}}catch(_0xcde12d){const _0x59382a=_0xcde12d instanceof Error?_0xcde12d['message']:String(_0xcde12d);return reportMorphError({'error_message':_0x59382a,'error_type':_0xcde12d instanceof Error?_0xcde12d[_0xcb4b32(0x195)][_0xcb4b32(0x1b1)]:_0xcb4b32(0x225),'context':{'tool':name,'arguments':args?JSON[_0xcb4b32(0x25b)](args)[_0xcb4b32(0x253)](0x0,0x1f4):undefined,'mcp_server_version':_0xcb4b32(0x255)},'stack_trace':_0xcde12d instanceof Error?_0xcde12d['stack']:undefined,'source':_0xcb4b32(0x1e3)})[_0xcb4b32(0x1c3)](()=>{}),{'content':[{'type':_0xcb4b32(0x25d),'text':_0xcb4b32(0x1d5)+_0x59382a}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x3c12ff){const _0x4766ea=a0_0x37d1ec,_0x8c2cf1=await getValidRootDirectories(_0x3c12ff);if(_0x8c2cf1[_0x4766ea(0x208)]>0x0)allowedDirectories=[..._0x8c2cf1],console['error'](_0x4766ea(0x1e1)+_0x8c2cf1[_0x4766ea(0x208)]+_0x4766ea(0x1cf));else{console[_0x4766ea(0x1bd)](_0x4766ea(0x1ad));if(ENABLE_WORKSPACE_MODE)try{const _0x117cb0=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x117cb0&&(allowedDirectories=[_0x117cb0],console[_0x4766ea(0x1bd)](_0x4766ea(0x267)+_0x117cb0));}catch(_0x1e7d98){console[_0x4766ea(0x1bd)](_0x4766ea(0x244)+_0x1e7d98);}}}server[a0_0x37d1ec(0x198)](RootsListChangedNotificationSchema,async()=>{const _0x4021f8=a0_0x37d1ec;try{const _0xb7cd28=await server[_0x4021f8(0x24c)]();_0xb7cd28&&_0x4021f8(0x190)in _0xb7cd28&&await updateAllowedDirectoriesFromRoots(_0xb7cd28[_0x4021f8(0x190)]);}catch(_0x9f761f){console[_0x4021f8(0x1bd)](_0x4021f8(0x261),_0x9f761f instanceof Error?_0x9f761f[_0x4021f8(0x1b8)]:String(_0x9f761f));}}),server[a0_0x37d1ec(0x25e)]=async()=>{const _0x39076e=a0_0x37d1ec,_0x137a36=server[_0x39076e(0x254)]();if(_0x137a36?.[_0x39076e(0x190)])try{const _0x43f9ad=await server['listRoots']();_0x43f9ad&&_0x39076e(0x190)in _0x43f9ad?await updateAllowedDirectoriesFromRoots(_0x43f9ad['roots']):console[_0x39076e(0x1bd)]('Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings');}catch(_0x38daf4){console[_0x39076e(0x1bd)](_0x39076e(0x20c),_0x38daf4 instanceof Error?_0x38daf4[_0x39076e(0x1b8)]:String(_0x38daf4));}else{if(allowedDirectories[_0x39076e(0x208)]>0x0)console[_0x39076e(0x1bd)]('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:',allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console[_0x39076e(0x1bd)](_0x39076e(0x259));else throw new Error(_0x39076e(0x265));}}};async function runServer(){const _0xb4ea4d=a0_0x37d1ec,_0x5589fd=new StdioServerTransport();await server[_0xb4ea4d(0x16f)](_0x5589fd),console[_0xb4ea4d(0x1bd)](_0xb4ea4d(0x19c)),allowedDirectories['length']===0x0&&console['error']('Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol');}runServer()['catch'](_0x8f55f5=>{const _0x4dd68f=a0_0x37d1ec;console[_0x4dd68f(0x1bd)](_0x4dd68f(0x18c),_0x8f55f5),process[_0x4dd68f(0x1ba)](0x1);});
2
+ const a0_0x262993=a0_0x5764;(function(_0x81fd82,_0x163594){const _0x3bffd8=a0_0x5764,_0x7aa363=_0x81fd82();while(!![]){try{const _0x42da3f=-parseInt(_0x3bffd8(0x1b1))/0x1*(parseInt(_0x3bffd8(0x26f))/0x2)+-parseInt(_0x3bffd8(0x23f))/0x3*(-parseInt(_0x3bffd8(0x212))/0x4)+-parseInt(_0x3bffd8(0x21b))/0x5+parseInt(_0x3bffd8(0x273))/0x6+-parseInt(_0x3bffd8(0x285))/0x7+-parseInt(_0x3bffd8(0x1ee))/0x8+parseInt(_0x3bffd8(0x264))/0x9;if(_0x42da3f===_0x163594)break;else _0x7aa363['push'](_0x7aa363['shift']());}catch(_0x31d417){_0x7aa363['push'](_0x7aa363['shift']());}}}(a0_0x362e,0x38da2));import{Server}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import{CallToolRequestSchema,ListToolsRequestSchema,RootsListChangedNotificationSchema}from'@modelcontextprotocol/sdk/types.js';import a0_0x123ae7 from'fs/promises';function a0_0x5764(_0x1daab3,_0x50e803){_0x1daab3=_0x1daab3-0x1a0;const _0x362e64=a0_0x362e();let _0x5764fc=_0x362e64[_0x1daab3];return _0x5764fc;}import a0_0x2e743c from'path';import a0_0x42cf31 from'os';import{createRequire}from'module';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider}from'@morphllm/morphsdk/tools/warp-grep';import{executeCodebaseSearch}from'@morphllm/morphsdk/tools/codebase-search';import a0_0x5251d0 from'axios';function fixPathRepetition(_0x457989){const _0x3d4ef4=a0_0x5764,_0x1061c8=_0x457989[_0x3d4ef4(0x288)](a0_0x2e743c[_0x3d4ef4(0x1bc)])['filter'](Boolean);if(_0x1061c8[_0x3d4ef4(0x224)]<0x2)return null;for(let _0x2cd9f1=Math[_0x3d4ef4(0x21a)](_0x1061c8[_0x3d4ef4(0x224)]/0x2);_0x2cd9f1>=0x1;_0x2cd9f1--){for(let _0x54f975=0x0;_0x54f975<=_0x1061c8[_0x3d4ef4(0x224)]-0x2*_0x2cd9f1;_0x54f975++){const _0x32e39c=_0x1061c8[_0x3d4ef4(0x1bf)](_0x54f975,_0x54f975+_0x2cd9f1),_0x8c45d0=_0x1061c8[_0x3d4ef4(0x1bf)](_0x54f975+_0x2cd9f1,_0x54f975+0x2*_0x2cd9f1);if(_0x32e39c['every']((_0x2e21ea,_0x370bab)=>_0x2e21ea===_0x8c45d0[_0x370bab])){const _0x3f4eb3=[..._0x1061c8[_0x3d4ef4(0x1bf)](0x0,_0x54f975),..._0x1061c8['slice'](_0x54f975+_0x2cd9f1)];return a0_0x2e743c[_0x3d4ef4(0x1bc)]+_0x3f4eb3[_0x3d4ef4(0x221)](a0_0x2e743c[_0x3d4ef4(0x1bc)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x2292bd=a0_0x5764;try{const _0x19d286=require(_0x2292bd(0x1a0));return _0x19d286[_0x2292bd(0x217)]??_0x2292bd(0x24c);}catch(_0x233181){return console[_0x2292bd(0x260)]('Warning:\x20Unable\x20to\x20determine\x20package\x20version:',_0x233181),'unknown';}}function printHelp(){const _0x49bc1f=a0_0x5764;console[_0x49bc1f(0x23e)](_0x49bc1f(0x22c)+getPackageVersion()),console['log'](_0x49bc1f(0x26c)),console[_0x49bc1f(0x23e)](_0x49bc1f(0x1a3)),console[_0x49bc1f(0x23e)](_0x49bc1f(0x245)),console[_0x49bc1f(0x23e)](_0x49bc1f(0x1dc)),console[_0x49bc1f(0x23e)]('\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit'),console['log'](_0x49bc1f(0x1fc)),console['log']('\x20\x20morph-mcp'),console['log'](_0x49bc1f(0x259));}const cliArgs=process[a0_0x262993(0x1e3)]['slice'](0x2),VERSION_FLAGS=new Set([a0_0x262993(0x23d),'-v','-V']),HELP_FLAGS=new Set(['--help','-h']);cliArgs[a0_0x262993(0x1af)](_0x156aaf=>VERSION_FLAGS['has'](_0x156aaf))&&(console[a0_0x262993(0x23e)](a0_0x262993(0x22c)+getPackageVersion()),process[a0_0x262993(0x291)](0x0));cliArgs[a0_0x262993(0x1af)](_0x22c140=>HELP_FLAGS[a0_0x262993(0x27d)](_0x22c140))&&(printHelp(),process['exit'](0x0));function getCliArg(_0x1e8d20){const _0x2b823c=a0_0x262993;for(let _0x49ad12=0x0;_0x49ad12<cliArgs[_0x2b823c(0x224)];_0x49ad12++){const _0x17bb67=cliArgs[_0x49ad12];if(_0x17bb67[_0x2b823c(0x1c1)]('--'+_0x1e8d20+'='))return _0x17bb67[_0x2b823c(0x1bf)](('--'+_0x1e8d20+'=')[_0x2b823c(0x224)]);if(_0x17bb67==='--'+_0x1e8d20&&_0x49ad12+0x1<cliArgs[_0x2b823c(0x224)])return cliArgs[_0x49ad12+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs[a0_0x262993(0x224)];i++){const arg=cliArgs[i];if(VERSION_FLAGS['has'](arg)||HELP_FLAGS[a0_0x262993(0x27d)](arg))continue;if(arg['startsWith'](a0_0x262993(0x233)))continue;if(arg==='--api-key'){i++;continue;}args[a0_0x262993(0x295)](arg);}const ALL_TOOLS=[a0_0x262993(0x28b),a0_0x262993(0x206),a0_0x262993(0x1c5)],DEFAULT_TOOLS=[a0_0x262993(0x28b),'warpgrep_codebase_search'],ENABLED_TOOLS=process[a0_0x262993(0x1dd)][a0_0x262993(0x1f7)]?process[a0_0x262993(0x1dd)][a0_0x262993(0x1f7)]===a0_0x262993(0x22a)?ALL_TOOLS:process[a0_0x262993(0x1dd)][a0_0x262993(0x1f7)][a0_0x262993(0x288)](',')['map'](_0x5c0595=>_0x5c0595[a0_0x262993(0x214)]()):DEFAULT_TOOLS;console[a0_0x262993(0x260)](a0_0x262993(0x2a1)+ENABLED_TOOLS[a0_0x262993(0x221)](',\x20'));const WORKSPACE_ROOT=process[a0_0x262993(0x1dd)][a0_0x262993(0x1d8)]||process['env']['PWD']||process[a0_0x262993(0x228)](),ENABLE_WORKSPACE_MODE=process[a0_0x262993(0x1dd)][a0_0x262993(0x21c)]!=='false',MORPH_API_KEY=getCliArg(a0_0x262993(0x253))??process[a0_0x262993(0x1dd)][a0_0x262993(0x250)],MORPH_API_URL=process[a0_0x262993(0x1dd)][a0_0x262993(0x24d)],MORPH_WARP_GREP_TIMEOUT=process['env'][a0_0x262993(0x1e9)]?parseInt(process[a0_0x262993(0x1dd)][a0_0x262993(0x1e9)],0xa):undefined;MORPH_API_KEY&&!MORPH_API_KEY[a0_0x262993(0x1c1)](a0_0x262993(0x1c3))&&!MORPH_API_KEY[a0_0x262993(0x1c1)](a0_0x262993(0x22e))&&console[a0_0x262993(0x260)](a0_0x262993(0x1b2));async function reportMorphError(_0xe4f8e0){const _0x422129=a0_0x262993;try{await a0_0x5251d0[_0x422129(0x281)]('https://morphllm.com/api/error-report',{..._0xe4f8e0,'timestamp':new Date()['toISOString'](),'source':_0xe4f8e0[_0x422129(0x271)]||_0x422129(0x24f)},{'timeout':0x1388,'headers':{'Content-Type':_0x422129(0x1bd),'Authorization':_0x422129(0x29e)+MORPH_API_KEY}});}catch{}}args[a0_0x262993(0x224)]===0x0&&!ENABLE_WORKSPACE_MODE&&(console[a0_0x262993(0x260)](a0_0x262993(0x2a0)),console[a0_0x262993(0x260)](a0_0x262993(0x1c2)),console[a0_0x262993(0x260)](a0_0x262993(0x272)),console[a0_0x262993(0x260)](a0_0x262993(0x261)),console['error'](a0_0x262993(0x263)),console[a0_0x262993(0x260)](a0_0x262993(0x1cc)));function normalizePath(_0xd852f7){const _0x53d961=a0_0x262993;return a0_0x2e743c[_0x53d961(0x202)](_0xd852f7);}function expandHome(_0x5e7ef4){const _0x182e79=a0_0x262993;if(_0x5e7ef4[_0x182e79(0x1c1)]('~/')||_0x5e7ef4==='~')return a0_0x2e743c['join'](a0_0x42cf31[_0x182e79(0x1bb)](),_0x5e7ef4[_0x182e79(0x1bf)](0x1));return _0x5e7ef4;}let allowedDirectories=await Promise[a0_0x262993(0x22a)](args[a0_0x262993(0x1cd)](async _0x12635a=>{const _0x3a84a5=expandHome(_0x12635a),_0x473d26=a0_0x2e743c['resolve'](_0x3a84a5);try{const _0x4c62b9=await a0_0x123ae7['realpath'](_0x473d26);return normalizePath(_0x4c62b9);}catch(_0x29c3f3){return normalizePath(_0x473d26);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x262993(0x224)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x262993(0x295)](workspaceDir),console['error'](a0_0x262993(0x277)+workspaceDir+a0_0x262993(0x25f)));}catch(a0_0x571cf2){console[a0_0x262993(0x260)](a0_0x262993(0x242)+a0_0x571cf2);}function a0_0x362e(){const _0x1fdea4=['match','oninitialized','files','ms:\x0a\x0a','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','Note:\x20The\x20files\x20and\x20line\x20ranges\x20returned\x20by\x20this\x20tool\x20may\x20be\x20some\x20of\x20the\x20ones\x20needed\x20to\x20complete\x20the\x20user\x27s\x20request,\x20but\x20you\x20should\x20be\x20careful\x20in\x20evaluating\x20the\x20relevance\x20of\x20the\x20results,\x20since\x20the\x20subagent\x20might\x20make\x20mistakes.\x20','morph-v3-fast','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','WORKSPACE_ROOT','isArray','dirname','-\x20Read\x20file\x20`','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','env','.\x20Changes:\x20','-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','Server\x20cannot\x20operate:\x20No\x20allowed\x20directories\x20available.\x20Server\x20was\x20started\x20without\x20command-line\x20directories\x20and\x20client\x20either\x20does\x20not\x20support\x20MCP\x20roots\x20protocol\x20or\x20provided\x20empty\x20roots.\x20Please\x20either:\x201)\x20Start\x20server\x20with\x20directory\x20arguments,\x202)\x20Use\x20a\x20client\x20that\x20supports\x20MCP\x20roots\x20protocol\x20and\x20provides\x20valid\x20root\x20directories,\x20or\x203)\x20Enable\x20workspace\x20mode\x20with\x20ENABLE_WORKSPACE_MODE=true.','success','argv','\x20(new\x20file)','rerankScore','[could\x20not\x20read\x20file:\x20','File\x20read\x20error:','No\x20results\x20found\x20for\x20query:\x20\x22','MORPH_WARP_GREP_TIMEOUT','query','Fallback:\x20Using\x20workspace\x20root\x20','messages','message','1513216qcRmgg','constructor','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20','Error:\x20','text','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','\x20results\x20in\x20','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','Cargo.toml','ENABLED_TOOLS','string','</file>','listRoots','object','\x0aExamples:','inputSchema','🎯\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a','Error\x20running\x20fast\x20context\x20search:\x20','targetDirectories','endLine','normalize','resolve','terminationReason','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','warpgrep_codebase_search','The\x20absolute\x20path\x20of\x20the\x20folder\x20where\x20the\x20search\x20should\x20be\x20performed.\x20In\x20multi-repo\x20workspaces,\x20you\x20have\x20to\x20specify\x20a\x20subfolder\x20where\x20the\x20search\x20should\x20be\x20performed,\x20to\x20avoid\x20searching\x20across\x20all\x20repos','0.2.0','stack','dryRun','WarpGrepError','completed','number','Invalid\x20arguments:\x20','Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20','basename','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','64ZCkefO','The\x20search\x20term\x20should\x20be\x20a\x20targeted\x20natural\x20language\x20query\x20based\x20on\x20what\x20you\x20are\x20trying\x20to\x20accomplish,\x20like\x20\x27Find\x20where\x20authentication\x20requests\x20are\x20handled\x20in\x20the\x20Express\x20routes\x27\x20or\x20\x27Modify\x20the\x20agentic\x20rollout\x20to\x20use\x20the\x20new\x20tokenizer\x20and\x20chat\x20template\x27\x20or\x20\x27Fix\x20the\x20bug\x20where\x20the\x20user\x20gets\x20redirected\x20from\x20the\x20/feed\x20page\x27.\x20','trim','Repository\x20identifier','branch','version','search_string','-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a','floor','1062815rTjpaU','ENABLE_WORKSPACE_MODE','Max\x20results\x20to\x20return','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','instruction','roots','join','\x20\x20\x20','access','length','requiresApiKey','readFile','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','cwd','toFixed','all','Fatal\x20error\x20running\x20server:','@morphllm/morphmcp\x20','-\x20Grepped\x20\x27','morph-','Parent\x20directory\x20does\x20not\x20exist:\x20','Failed\x20to\x20request\x20roots\x20from\x20client:','\x20-\x20','lines','--api-key=','metadata','grep\x20\x27','data','\x20is\x20not\x20a\x20directory','changes','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','\x0a...\x20(truncated,\x20total:\x20','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','--version','log','18699zfEDle','describe','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.','\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)','<file\x20path=\x22','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','.\x20Path:\x20','content','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','unknown','MORPH_API_URL','TimeoutError','mcp-filesystem','MORPH_API_KEY','repoId','timings','api-key','❌\x20Morph\x20Edit\x20Failed:\x20','This\x20tool\x20invokes\x20a\x20subagent\x20that\x20runs\x20parallel\x20grep\x20and\x20readfile\x20calls\x20over\x20multiple\x20turns\x20to\x20locate\x20line\x20ranges\x20and\x20files\x20which\x20might\x20be\x20relevant\x20to\x20the\x20request.\x20','name',',\x20removed\x20','errors','\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo','...','package.json','\x20\x20\x20Lines\x20','etimedout','Morph\x20Edit\x20Preview','\x20as\x20allowed\x20directory','error','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','go.mod','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','6452910sNmjVQ','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','Rules:\x0a','ENOENT','\x22>\x0aError\x20reading\x20file:\x20','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','77208kDokVE','**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a','source','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','2598966FFaOQX','results','timeout','Found\x20','Workspace\x20mode\x20enabled:\x20Using\x20','catch','%\x20match)\x0a','startLine','morph-mcp','-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a','has','commitHash','timed\x20out','terminated','post','stringify','IMPORTANT:\x20If\x20you\x20are\x20running\x20within\x20Cursor,\x20you\x20MUST\x20FIRST\x20use\x20another\x20tool\x20(like\x20search_replace)\x20to\x20add\x20exactly\x20one\x20empty\x20new\x20line\x20somewhere\x20in\x20the\x20file\x20before\x20using\x20this\x20tool.\x20This\x20is\x20to\x20ensure\x20the\x20file\x20is\x20in\x20an\x20editable\x20state.\x0a','morph-warp-grep-v1-1111v0','2685718rYFaIr','pyproject.toml','Warning:\x20','split','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for','edit_file','setRequestHandler','role','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','\x20valid\x20directories','substring','exit','.cursor','list_directory\x20','getClientCapabilities','push','tsconfig.json','linesRemoved','read\x20','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','searchTimeMs','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','filepath',',\x20modified\x20','Bearer\x20','code','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','Enabled\x20tools:\x20','FileReadError','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','../package.json','stats','safeParse','\x0aOptions:','utf-8','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','finish','path','Preview\x20changes\x20without\x20applying\x20them.','.vscode','Warning:\x20Workspace\x20fallback\x20failed:\x20','setNotificationHandler','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','optional','.git','some','Search\x20failed:\x20','6kBnLNm','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','UnknownError','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','repo_path','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','completionId','Failed\x20to\x20read\x20file:\x20','realpath','Applied','homedir','sep','application/json','default','slice','Benefits:\x0a','startsWith','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','sk-','\x0a</file>','codebase_search','For\x20deletions:\x0a','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.','filter','includes','unknown\x20error','\x27\x20in\x20`','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','map','toLowerCase'];a0_0x362e=function(){return _0x1fdea4;};return a0_0x362e();}async function detectWorkspaceRoot(_0xca4e4a){const _0x57a993=a0_0x262993;let _0x1925bb=a0_0x2e743c[_0x57a993(0x203)](_0xca4e4a);const _0x27ae36=[_0x57a993(0x1ae),_0x57a993(0x1a9),_0x57a993(0x25b),_0x57a993(0x1f6),_0x57a993(0x286),_0x57a993(0x262),_0x57a993(0x292),_0x57a993(0x296),'composer.json'];while(_0x1925bb!==a0_0x2e743c[_0x57a993(0x1da)](_0x1925bb)){for(const _0x2ff376 of _0x27ae36){const _0xe02bb3=a0_0x2e743c[_0x57a993(0x221)](_0x1925bb,_0x2ff376);try{return await a0_0x123ae7[_0x57a993(0x223)](_0xe02bb3),normalizePath(_0x1925bb);}catch{}}_0x1925bb=a0_0x2e743c['dirname'](_0x1925bb);}return normalizePath(_0xca4e4a);}await Promise[a0_0x262993(0x22a)](args[a0_0x262993(0x1cd)](async _0x3f01ce=>{const _0xfdd69e=a0_0x262993;try{const _0x3b2e5d=await a0_0x123ae7['stat'](expandHome(_0x3f01ce));!_0x3b2e5d['isDirectory']()&&(console[_0xfdd69e(0x260)](_0xfdd69e(0x1f1)+_0x3f01ce+_0xfdd69e(0x237)),process[_0xfdd69e(0x291)](0x1));}catch(_0x3f721d){console[_0xfdd69e(0x260)]('Error\x20accessing\x20directory\x20'+_0x3f01ce+':',_0x3f721d),process['exit'](0x1);}}));async function validatePath(_0x1fe496){const _0x2cf6e9=a0_0x262993,_0x35f096=expandHome(_0x1fe496),_0x41f9b2=a0_0x2e743c[_0x2cf6e9(0x203)](_0x35f096);try{const _0x309256=await a0_0x123ae7[_0x2cf6e9(0x1b9)](_0x41f9b2);return _0x309256;}catch(_0x5270cc){if(_0x5270cc['code']===_0x2cf6e9(0x268)){const _0x1d7bca=a0_0x2e743c[_0x2cf6e9(0x1da)](_0x41f9b2);try{const _0x152dd7=await a0_0x123ae7[_0x2cf6e9(0x1b9)](_0x1d7bca);return a0_0x2e743c[_0x2cf6e9(0x221)](_0x152dd7,a0_0x2e743c[_0x2cf6e9(0x210)](_0x41f9b2));}catch{throw new Error(_0x2cf6e9(0x22f)+_0x1d7bca);}}throw _0x5270cc;}}const MorphEditFileArgsSchema=z['object']({'path':z['string'](),'code_edit':z[a0_0x262993(0x1f8)]()[a0_0x262993(0x240)](a0_0x262993(0x1b4)),'instruction':z[a0_0x262993(0x1f8)]()[a0_0x262993(0x240)](a0_0x262993(0x247)),'dryRun':z['boolean']()[a0_0x262993(0x1be)](![])[a0_0x262993(0x240)](a0_0x262993(0x1a8))}),WarpGrepArgsSchema=z[a0_0x262993(0x1fb)]({'search_string':z[a0_0x262993(0x1f8)]()[a0_0x262993(0x240)](a0_0x262993(0x28a)),'repo_path':z['string']()[a0_0x262993(0x240)](a0_0x262993(0x207))}),CodebaseSearchArgsSchema=z[a0_0x262993(0x1fb)]({'query':z[a0_0x262993(0x1f8)]()['describe']('Natural\x20language\x20query\x20to\x20search\x20for\x20code'),'repoId':z[a0_0x262993(0x1f8)]()['describe'](a0_0x262993(0x215)),'branch':z[a0_0x262993(0x1f8)]()[a0_0x262993(0x1ad)]()['describe'](a0_0x262993(0x1d3)),'commitHash':z['string']()[a0_0x262993(0x1ad)]()[a0_0x262993(0x240)]('Specific\x20commit\x20hash\x20to\x20search'),'targetDirectories':z['array'](z[a0_0x262993(0x1f8)]())[a0_0x262993(0x1be)]([])[a0_0x262993(0x240)]('Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all'),'limit':z[a0_0x262993(0x20d)]()[a0_0x262993(0x1ad)]()[a0_0x262993(0x1be)](0xa)[a0_0x262993(0x240)](a0_0x262993(0x21d))}),server=new Server({'name':a0_0x262993(0x27b),'version':a0_0x262993(0x208)},{'capabilities':{'tools':{}}});server['setRequestHandler'](ListToolsRequestSchema,async()=>{const _0x5e31df=a0_0x262993,_0x3286ea=[{'name':_0x5e31df(0x28b),'description':_0x5e31df(0x243)+_0x5e31df(0x23c)+_0x5e31df(0x1d6)+_0x5e31df(0x24b)+_0x5e31df(0x1c0)+_0x5e31df(0x227)+_0x5e31df(0x23b)+_0x5e31df(0x1e0)+'-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a'+_0x5e31df(0x239)+_0x5e31df(0x289)+'Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a'+_0x5e31df(0x1c6)+_0x5e31df(0x211)+_0x5e31df(0x1df)+_0x5e31df(0x267)+_0x5e31df(0x1f5)+_0x5e31df(0x299)+_0x5e31df(0x1b6)+_0x5e31df(0x1ac)+_0x5e31df(0x265)+_0x5e31df(0x26a)+_0x5e31df(0x283),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':_0x5e31df(0x206),'description':'A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20'+_0x5e31df(0x255)+_0x5e31df(0x213)+_0x5e31df(0x1f0)+_0x5e31df(0x244)+_0x5e31df(0x1d4)+_0x5e31df(0x28e)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':'codebase_search','description':_0x5e31df(0x270)+'⚡\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a'+_0x5e31df(0x1fe)+_0x5e31df(0x1c0)+_0x5e31df(0x219)+_0x5e31df(0x27c)+'-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a'+'-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a'+_0x5e31df(0x20f)+_0x5e31df(0x26b)+_0x5e31df(0x1f3),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x140e26=_0x3286ea[_0x5e31df(0x1c8)](_0x27a0ea=>{const _0x567dea=_0x5e31df;if(!ENABLED_TOOLS['includes'](_0x27a0ea[_0x567dea(0x256)]))return![];if(_0x567dea(0x225)in _0x27a0ea&&_0x27a0ea[_0x567dea(0x225)]&&!MORPH_API_KEY)return console[_0x567dea(0x260)]('Warning:\x20'+_0x27a0ea[_0x567dea(0x256)]+_0x567dea(0x1a5)),![];return!![];});return{'tools':_0x140e26[_0x5e31df(0x1cd)](_0x3a2a8c=>({'name':_0x3a2a8c['name'],'description':_0x3a2a8c['description'],'inputSchema':_0x3a2a8c[_0x5e31df(0x1fd)]}))};}),server[a0_0x262993(0x28c)](CallToolRequestSchema,async _0x2bf400=>{const _0x25f991=a0_0x262993;try{const {name:_0x169cd3,arguments:_0x2e170b}=_0x2bf400['params'];switch(_0x169cd3){case _0x25f991(0x28b):{const _0x1380e5=MorphEditFileArgsSchema[_0x25f991(0x1a2)](_0x2e170b);if(!_0x1380e5[_0x25f991(0x1e2)])throw new Error(_0x25f991(0x21e)+_0x1380e5[_0x25f991(0x260)]);const _0x453fdf=await validatePath(_0x1380e5[_0x25f991(0x236)][_0x25f991(0x1a7)]);let _0x53d05e=null,_0x2a3dae=!![],_0xa2bdae=null;try{_0x53d05e=await a0_0x123ae7[_0x25f991(0x226)](_0x453fdf,_0x25f991(0x1a4));}catch(_0x4a78a2){const _0x915f76=_0x4a78a2[_0x25f991(0x29f)];_0x915f76==='ENOENT'?(_0x2a3dae=![],_0x53d05e=''):(_0xa2bdae=_0x25f991(0x1b8)+(_0x915f76||_0x25f991(0x24c))+_0x25f991(0x231)+(_0x4a78a2 instanceof Error?_0x4a78a2['message']:String(_0x4a78a2)),console[_0x25f991(0x260)](_0x25f991(0x287)+_0xa2bdae));}let _0x3fe102;try{const _0x1db340=MORPH_API_KEY;if(!_0x1db340)throw new Error(_0x25f991(0x1d7));const _0x55c833=a0_0x2e743c['dirname'](_0x453fdf),_0x92832a=a0_0x2e743c['basename'](_0x453fdf),_0x5ba6ab=await executeEditFile({'target_filepath':_0x92832a,'code_edit':_0x1380e5[_0x25f991(0x236)]['code_edit'],'instructions':_0x1380e5[_0x25f991(0x236)][_0x25f991(0x21f)]},{'morphApiKey':_0x1db340,'morphApiUrl':MORPH_API_URL,'baseDir':_0x55c833,'autoWrite':!_0x1380e5[_0x25f991(0x236)]['dryRun'],'generateUdiff':![],'debug':![]});_0x3fe102=_0x5ba6ab[_0x25f991(0x1b7)];if(!_0x5ba6ab[_0x25f991(0x1e2)])throw new Error(_0x5ba6ab[_0x25f991(0x260)]||'Morph\x20FastApply\x20failed\x20without\x20error\x20message');const _0x37450c=_0x5ba6ab[_0x25f991(0x238)],_0x301da0='added\x20'+_0x37450c['linesAdded']+_0x25f991(0x257)+_0x37450c[_0x25f991(0x297)]+_0x25f991(0x29d)+_0x37450c['linesModified'];if(_0x1380e5[_0x25f991(0x236)][_0x25f991(0x20a)])return{'content':[{'type':_0x25f991(0x1f2),'text':_0x25f991(0x25e)+(_0x2a3dae?'':_0x25f991(0x1e4))+':\x20'+_0x1380e5['data']['instruction']+_0x25f991(0x1de)+_0x301da0+_0x25f991(0x249)+_0x1380e5[_0x25f991(0x236)][_0x25f991(0x1a7)]+'.'}]};return{'content':[{'type':_0x25f991(0x1f2),'text':'Morph\x20Edit\x20'+(_0x2a3dae?_0x25f991(0x1ba):'Created\x20File')+':\x20'+_0x1380e5[_0x25f991(0x236)][_0x25f991(0x21f)]+_0x25f991(0x1de)+_0x301da0+_0x25f991(0x249)+_0x1380e5[_0x25f991(0x236)][_0x25f991(0x1a7)]+'.'}]};}catch(_0x3a52fb){const _0x51cb5f=_0x3a52fb instanceof Error?_0x3a52fb['message']:String(_0x3a52fb);return reportMorphError({'error_message':_0x51cb5f,'error_type':_0x3a52fb instanceof Error?_0x3a52fb['constructor'][_0x25f991(0x256)]:_0x25f991(0x1b3),'context':{'tool':_0x25f991(0x28b),'completion_id':_0x3fe102,'file_path':_0x1380e5[_0x25f991(0x236)][_0x25f991(0x1a7)],'validated_path':_0x453fdf,'instruction':_0x1380e5['data'][_0x25f991(0x21f)],'model':_0x25f991(0x1d5),'dry_run':_0x1380e5[_0x25f991(0x236)]['dryRun'],'file_exists':_0x2a3dae,'file_read_error':_0xa2bdae,'file_readable':_0x53d05e!==null,'request_content':{'path':_0x1380e5[_0x25f991(0x236)][_0x25f991(0x1a7)],'code_edit':_0x1380e5[_0x25f991(0x236)]['code_edit'],'instruction':_0x1380e5[_0x25f991(0x236)][_0x25f991(0x21f)],'original_code':_0x53d05e!==null?_0x53d05e[_0x25f991(0x224)]>0xc350?_0x53d05e[_0x25f991(0x290)](0x0,0xc350)+_0x25f991(0x23a)+_0x53d05e[_0x25f991(0x224)]+'\x20chars)':_0x53d05e:_0x25f991(0x1e6)+(_0xa2bdae||_0x25f991(0x1ca))+']','original_code_length':_0x53d05e?.['length']??0x0,'model':_0x25f991(0x1d5),'dry_run':_0x1380e5[_0x25f991(0x236)]['dryRun']}},'stack_trace':_0x3a52fb instanceof Error?_0x3a52fb[_0x25f991(0x209)]:undefined,'source':'mcp-filesystem'})['catch'](()=>{}),{'content':[{'type':_0x25f991(0x1f2),'text':_0x25f991(0x254)+_0x51cb5f}],'isError':!![]};}}case _0x25f991(0x206):{const _0x264843=WarpGrepArgsSchema['safeParse'](_0x2e170b);if(!_0x264843[_0x25f991(0x1e2)])return{'content':[{'type':_0x25f991(0x1f2),'text':_0x25f991(0x20e)+_0x264843[_0x25f991(0x260)]}],'isError':!![]};const _0x5e416e=_0x17c940=>{const _0x57f488=_0x25f991,_0x596192=[];for(const _0x2fb0c5 of _0x17c940||[]){const _0x1b34a6=_0x2fb0c5[_0x57f488(0x28d)],_0x112e7e=_0x2fb0c5['content'];if(_0x1b34a6==='assistant'&&_0x112e7e){const _0xc66222=_0x112e7e[_0x57f488(0x288)]('\x0a')[_0x57f488(0x1c8)](_0x5cb07b=>_0x5cb07b['trim']());for(const _0x10fd26 of _0xc66222){const _0x28b858=_0x10fd26[_0x57f488(0x1cf)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x28b858){_0x596192[_0x57f488(0x295)](_0x57f488(0x235)+_0x28b858[0x1]+'\x27\x20'+_0x28b858[0x2]);continue;}const _0x2b8c88=_0x10fd26[_0x57f488(0x1cf)](/^read\s+(.+)$/);if(_0x2b8c88){_0x596192[_0x57f488(0x295)](_0x57f488(0x298)+_0x2b8c88[0x1]);continue;}const _0x3a211e=_0x10fd26[_0x57f488(0x1cf)](/^list_directory\s+(.+)$/);if(_0x3a211e){_0x596192[_0x57f488(0x295)](_0x57f488(0x293)+_0x3a211e[0x1]);continue;}}}}return _0x596192;};try{const _0x22c332=a0_0x2e743c[_0x25f991(0x203)](_0x264843[_0x25f991(0x236)][_0x25f991(0x1b5)]),_0x625b19=new LocalRipgrepProvider(_0x22c332),_0x43fe85=await runWarpGrep({'query':_0x264843['data'][_0x25f991(0x218)],'repoRoot':_0x22c332,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x625b19});let _0x411a9a='';if(_0x43fe85[_0x25f991(0x204)]===_0x25f991(0x20c)&&_0x43fe85['finish']?.[_0x25f991(0x234)]?.['files']){const _0x517af2=_0x43fe85['finish'][_0x25f991(0x234)][_0x25f991(0x1d1)],_0x2842c6=[],_0x161c36=[_0x25f991(0x266)];for(const _0x550390 of _0x43fe85['messages']){const _0x2b524a=_0x550390[_0x25f991(0x28d)],_0x3a846d=_0x550390['content'];if(_0x2b524a==='assistant'&&_0x3a846d){const _0x170eb8=_0x3a846d[_0x25f991(0x288)]('\x0a')[_0x25f991(0x1c8)](_0x201801=>_0x201801['trim']());for(const _0x48d0f4 of _0x170eb8){const _0x3c33d8=_0x48d0f4[_0x25f991(0x1cf)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x3c33d8){_0x161c36[_0x25f991(0x295)](_0x25f991(0x22d)+_0x3c33d8[0x1]+_0x25f991(0x1cb)+_0x3c33d8[0x2]+'`');continue;}const _0x36eb07=_0x48d0f4[_0x25f991(0x1cf)](/^read\s+(.+)$/);if(_0x36eb07){_0x161c36[_0x25f991(0x295)](_0x25f991(0x1db)+_0x36eb07[0x1]+'`');continue;}const _0x337458=_0x48d0f4[_0x25f991(0x1cf)](/^list_directory\s+(.+)$/);if(_0x337458){_0x161c36['push']('-\x20Listed\x20directory\x20`'+_0x337458[0x1]+'`');continue;}}}}_0x2842c6[_0x25f991(0x295)](_0x161c36[_0x25f991(0x221)]('\x0a'));const _0x21b5cb=['','Relevant\x20context\x20found:'];for(const _0x585268 of _0x517af2){if(_0x585268[_0x25f991(0x232)]==='*')_0x21b5cb[_0x25f991(0x295)]('-\x20'+_0x585268[_0x25f991(0x1a7)]+':*');else{if(Array['isArray'](_0x585268[_0x25f991(0x232)])){const _0x2eea30=_0x585268[_0x25f991(0x232)][_0x25f991(0x1cd)](([_0x47615f,_0x17b6ac])=>{if(_0x47615f===_0x17b6ac)return''+_0x47615f;return _0x47615f+'-'+_0x17b6ac;});_0x21b5cb['push']('-\x20'+_0x585268[_0x25f991(0x1a7)]+':'+_0x2eea30[_0x25f991(0x221)](','));}else _0x21b5cb[_0x25f991(0x295)]('-\x20'+_0x585268['path']+':*');}}_0x21b5cb[_0x25f991(0x295)](''),_0x2842c6[_0x25f991(0x295)](_0x21b5cb['join']('\x0a')),_0x2842c6[_0x25f991(0x295)]('Here\x20is\x20the\x20content\x20of\x20files:\x0a');const _0x2d7ab8=[];for(const _0x32a2af of _0x517af2){let _0x4c77f7=a0_0x2e743c[_0x25f991(0x203)](_0x264843[_0x25f991(0x236)][_0x25f991(0x1b5)],_0x32a2af[_0x25f991(0x1a7)]),_0x4cc715=null,_0x37e172=null;try{_0x4cc715=await a0_0x123ae7[_0x25f991(0x226)](_0x4c77f7,{'encoding':_0x25f991(0x1a4)});}catch(_0x1ec232){const _0x482d6a=fixPathRepetition(_0x4c77f7);if(_0x482d6a)try{_0x4cc715=await a0_0x123ae7[_0x25f991(0x226)](_0x482d6a,{'encoding':'utf-8'}),_0x4c77f7=_0x482d6a;}catch{_0x37e172=_0x1ec232 instanceof Error?_0x1ec232:new Error(String(_0x1ec232));}else _0x37e172=_0x1ec232 instanceof Error?_0x1ec232:new Error(String(_0x1ec232));}if(_0x4cc715!==null){const _0x276fae=_0x4cc715[_0x25f991(0x288)](/\r?\n/),_0x51a8ec=[_0x25f991(0x246)+_0x32a2af['path']+'\x22>'];if(_0x32a2af[_0x25f991(0x232)]==='*'||!Array[_0x25f991(0x1d9)](_0x32a2af[_0x25f991(0x232)]))for(let _0x404c3d=0x1;_0x404c3d<=_0x276fae[_0x25f991(0x224)];_0x404c3d++){const _0x53ad4c=_0x276fae[_0x404c3d-0x1];_0x51a8ec['push'](_0x404c3d+'|\x20'+_0x53ad4c);}else for(const [_0x50e270,_0x48f7b5]of _0x32a2af['lines']){_0x51a8ec[_0x25f991(0x224)]>0x1&&_0x51a8ec['push']('');for(let _0x52d7de=_0x50e270;_0x52d7de<=_0x48f7b5&&_0x52d7de<=_0x276fae[_0x25f991(0x224)];_0x52d7de++){const _0x47f8d5=_0x276fae[_0x52d7de-0x1];_0x51a8ec[_0x25f991(0x295)](_0x52d7de+'|\x20'+_0x47f8d5);}}_0x51a8ec[_0x25f991(0x295)](_0x25f991(0x1f9)),_0x2d7ab8['push'](_0x51a8ec['join']('\x0a'));}else _0x2d7ab8['push'](_0x25f991(0x246)+_0x32a2af[_0x25f991(0x1a7)]+_0x25f991(0x269)+(_0x37e172?.[_0x25f991(0x1ed)]||'Unknown\x20error')+_0x25f991(0x1c4));}_0x2842c6['push'](_0x2d7ab8['join']('\x0a\x0a')),_0x411a9a=_0x2842c6['join']('\x0a');const _0x548bfe=_0x43fe85['errors']?.[_0x25f991(0x1c8)](_0x1844cf=>_0x1844cf[_0x25f991(0x1ed)]?.[_0x25f991(0x1c1)](_0x25f991(0x1e7)))||[];if(_0x548bfe['length']>0x0){const _0x312e76=_0x548bfe[_0x25f991(0x1cd)](_0x373ab6=>_0x373ab6[_0x25f991(0x1ed)])[_0x25f991(0x221)](';\x20');reportMorphError({'error_message':_0x312e76,'error_type':_0x25f991(0x2a2),'context':{'tool':_0x25f991(0x206),'repo_path':_0x264843[_0x25f991(0x236)][_0x25f991(0x1b5)],'query':_0x264843[_0x25f991(0x236)][_0x25f991(0x218)],'model':_0x25f991(0x284),'termination_reason':'completed_with_file_errors','error_count':_0x548bfe[_0x25f991(0x224)],'is_timeout':![],'timings':_0x43fe85[_0x25f991(0x252)],'files_attempted':_0x517af2[_0x25f991(0x1cd)](_0x5b6d00=>({'path':_0x5b6d00['path'],'lines':_0x5b6d00['lines']})),'tool_calls':_0x5e416e(_0x43fe85['messages']),'messages':_0x43fe85['messages']?.[_0x25f991(0x1cd)](_0x4461d8=>({'role':_0x4461d8[_0x25f991(0x28d)],'content':_0x4461d8[_0x25f991(0x24a)]})),'request_content':{'query':_0x264843[_0x25f991(0x236)][_0x25f991(0x218)],'repo_path':_0x264843['data'][_0x25f991(0x1b5)],'repoRoot':a0_0x2e743c[_0x25f991(0x203)](_0x264843['data'][_0x25f991(0x1b5)]),'model':_0x25f991(0x284)}},'source':_0x25f991(0x24f)})[_0x25f991(0x278)](()=>{});}}else{if(_0x43fe85[_0x25f991(0x204)]===_0x25f991(0x280)&&_0x43fe85['errors'][_0x25f991(0x224)]>0x0){const _0x4c3105=_0x43fe85[_0x25f991(0x258)][_0x25f991(0x1cd)](_0x14f648=>_0x14f648[_0x25f991(0x1ed)])[_0x25f991(0x221)](';\x20');_0x411a9a=_0x25f991(0x1f1)+_0x4c3105;const _0x1ef4cf=_0x4c3105[_0x25f991(0x1ce)]()[_0x25f991(0x1c9)](_0x25f991(0x275))||_0x4c3105[_0x25f991(0x1ce)]()[_0x25f991(0x1c9)](_0x25f991(0x27f))||_0x4c3105[_0x25f991(0x1ce)]()[_0x25f991(0x1c9)](_0x25f991(0x25d)),_0x26c0f1=_0x43fe85[_0x25f991(0x1a6)]?.['metadata']?.[_0x25f991(0x1d1)],_0x4fa723=_0x43fe85['errors'][0x0];reportMorphError({'error_message':_0x4c3105,'error_type':_0x1ef4cf?_0x25f991(0x24e):_0x4fa723?.[_0x25f991(0x1ef)]?.[_0x25f991(0x256)]||_0x25f991(0x20b),'context':{'tool':_0x25f991(0x206),'repo_path':_0x264843[_0x25f991(0x236)][_0x25f991(0x1b5)],'query':_0x264843[_0x25f991(0x236)][_0x25f991(0x218)],'model':'morph-warp-grep-v1-1111v0','termination_reason':_0x43fe85['terminationReason'],'error_count':_0x43fe85['errors'][_0x25f991(0x224)],'is_timeout':_0x1ef4cf,'timings':_0x43fe85[_0x25f991(0x252)],'files_attempted':_0x26c0f1?.[_0x25f991(0x1cd)](_0x3e3eeb=>({'path':_0x3e3eeb[_0x25f991(0x1a7)],'lines':_0x3e3eeb[_0x25f991(0x232)]})),'tool_calls':_0x5e416e(_0x43fe85[_0x25f991(0x1ec)]),'messages':_0x43fe85[_0x25f991(0x1ec)]?.[_0x25f991(0x1cd)](_0x4d30fd=>({'role':_0x4d30fd[_0x25f991(0x28d)],'content':_0x4d30fd[_0x25f991(0x24a)]})),'request_content':{'query':_0x264843[_0x25f991(0x236)][_0x25f991(0x218)],'repo_path':_0x264843[_0x25f991(0x236)][_0x25f991(0x1b5)],'repoRoot':a0_0x2e743c[_0x25f991(0x203)](_0x264843['data'][_0x25f991(0x1b5)]),'model':_0x25f991(0x284)}},'stack_trace':_0x4fa723?.[_0x25f991(0x209)]||undefined,'source':_0x25f991(0x24f)})[_0x25f991(0x278)](()=>{});}else _0x411a9a='Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.';}return{'content':[{'type':_0x25f991(0x1f2),'text':_0x411a9a}]};}catch(_0xafccf4){const _0xa8e689=_0xafccf4 instanceof Error?_0xafccf4[_0x25f991(0x1ed)]:String(_0xafccf4),_0x3c7b20=_0xa8e689['toLowerCase']()[_0x25f991(0x1c9)]('timeout')||_0xa8e689[_0x25f991(0x1ce)]()[_0x25f991(0x1c9)](_0x25f991(0x27f))||_0xa8e689[_0x25f991(0x1ce)]()[_0x25f991(0x1c9)]('etimedout')||_0xafccf4 instanceof Error&&_0xafccf4[_0x25f991(0x256)]===_0x25f991(0x24e);return reportMorphError({'error_message':_0xa8e689,'error_type':_0x3c7b20?_0x25f991(0x24e):_0xafccf4 instanceof Error?_0xafccf4[_0x25f991(0x1ef)][_0x25f991(0x256)]:_0x25f991(0x1b3),'context':{'tool':_0x25f991(0x206),'repo_path':_0x264843['data'][_0x25f991(0x1b5)],'query':_0x264843[_0x25f991(0x236)][_0x25f991(0x218)],'model':_0x25f991(0x284),'is_timeout':_0x3c7b20,'exception_phase':'runWarpGrep_call','request_content':{'query':_0x264843[_0x25f991(0x236)][_0x25f991(0x218)],'repo_path':_0x264843[_0x25f991(0x236)][_0x25f991(0x1b5)],'repoRoot':a0_0x2e743c['resolve'](_0x264843[_0x25f991(0x236)][_0x25f991(0x1b5)]),'model':_0x25f991(0x284)}},'stack_trace':_0xafccf4 instanceof Error?_0xafccf4['stack']:undefined,'source':'mcp-filesystem'})[_0x25f991(0x278)](()=>{}),{'content':[{'type':_0x25f991(0x1f2),'text':_0x25f991(0x1ff)+_0xa8e689}],'isError':![]};}}case _0x25f991(0x1c5):{const _0x552436=CodebaseSearchArgsSchema[_0x25f991(0x1a2)](_0x2e170b);if(!_0x552436[_0x25f991(0x1e2)])return{'content':[{'type':_0x25f991(0x1f2),'text':_0x25f991(0x20e)+_0x552436[_0x25f991(0x260)]}],'isError':!![]};try{const _0x16bdb1=MORPH_API_KEY;if(!_0x16bdb1)throw new Error(_0x25f991(0x1c7));const _0x15e383=_0x552436[_0x25f991(0x236)][_0x25f991(0x200)],_0x4359a3=await executeCodebaseSearch({'query':_0x552436['data'][_0x25f991(0x1ea)],'target_directories':_0x15e383,'limit':_0x552436[_0x25f991(0x236)]['limit']},{'apiKey':_0x16bdb1,'repoId':_0x552436[_0x25f991(0x236)][_0x25f991(0x251)],'branch':_0x552436[_0x25f991(0x236)][_0x25f991(0x216)],'commitHash':_0x552436[_0x25f991(0x236)][_0x25f991(0x27e)],'debug':![]});if(!_0x4359a3['success'])return{'content':[{'type':_0x25f991(0x1f2),'text':_0x25f991(0x1b0)+_0x4359a3[_0x25f991(0x260)]}],'isError':!![]};const _0x19cf4c=_0x4359a3[_0x25f991(0x274)][_0x25f991(0x224)]===0x0?_0x25f991(0x1e8)+_0x552436[_0x25f991(0x236)][_0x25f991(0x1ea)]+'\x22':_0x25f991(0x276)+_0x4359a3[_0x25f991(0x274)][_0x25f991(0x224)]+_0x25f991(0x1f4)+_0x4359a3[_0x25f991(0x1a1)][_0x25f991(0x29a)]+_0x25f991(0x1d2)+_0x4359a3[_0x25f991(0x274)][_0x25f991(0x1cd)]((_0x326972,_0x58295e)=>_0x58295e+0x1+'.\x20'+_0x326972[_0x25f991(0x29c)]+'\x20('+(_0x326972[_0x25f991(0x1e5)]*0x64)[_0x25f991(0x229)](0x1)+_0x25f991(0x279)+(_0x25f991(0x25c)+_0x326972[_0x25f991(0x27a)]+'-'+_0x326972[_0x25f991(0x201)]+'\x0a')+(_0x25f991(0x222)+_0x326972[_0x25f991(0x24a)][_0x25f991(0x290)](0x0,0xc8)+(_0x326972['content'][_0x25f991(0x224)]>0xc8?_0x25f991(0x25a):'')+'\x0a'))[_0x25f991(0x221)]('\x0a');return{'content':[{'type':_0x25f991(0x1f2),'text':_0x19cf4c}]};}catch(_0x43b2d4){const _0x3a1fac=_0x43b2d4 instanceof Error?_0x43b2d4[_0x25f991(0x1ed)]:String(_0x43b2d4);return reportMorphError({'error_message':_0x3a1fac,'error_type':_0x43b2d4 instanceof Error?_0x43b2d4[_0x25f991(0x1ef)][_0x25f991(0x256)]:_0x25f991(0x1b3),'context':{'tool':_0x25f991(0x1c5),'query':_0x552436[_0x25f991(0x236)][_0x25f991(0x1ea)],'repo_id':_0x552436[_0x25f991(0x236)][_0x25f991(0x251)],'target_directories':_0x552436['data'][_0x25f991(0x200)]},'stack_trace':_0x43b2d4 instanceof Error?_0x43b2d4[_0x25f991(0x209)]:undefined,'source':_0x25f991(0x24f)})[_0x25f991(0x278)](()=>{}),{'content':[{'type':'text','text':_0x25f991(0x1f1)+_0x3a1fac}],'isError':!![]};}}default:throw new Error('Unknown\x20tool:\x20'+_0x169cd3);}}catch(_0x1c8908){const _0x4c2652=_0x1c8908 instanceof Error?_0x1c8908[_0x25f991(0x1ed)]:String(_0x1c8908);return reportMorphError({'error_message':_0x4c2652,'error_type':_0x1c8908 instanceof Error?_0x1c8908[_0x25f991(0x1ef)]['name']:_0x25f991(0x1b3),'context':{'tool':name,'arguments':args?JSON[_0x25f991(0x282)](args)[_0x25f991(0x290)](0x0,0x1f4):undefined,'mcp_server_version':'0.2.0'},'stack_trace':_0x1c8908 instanceof Error?_0x1c8908[_0x25f991(0x209)]:undefined,'source':_0x25f991(0x24f)})['catch'](()=>{}),{'content':[{'type':'text','text':_0x25f991(0x1f1)+_0x4c2652}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x5c14f9){const _0x412f64=a0_0x262993,_0x3e5f9b=await getValidRootDirectories(_0x5c14f9);if(_0x3e5f9b[_0x412f64(0x224)]>0x0)allowedDirectories=[..._0x3e5f9b],console[_0x412f64(0x260)](_0x412f64(0x29b)+_0x3e5f9b[_0x412f64(0x224)]+_0x412f64(0x28f));else{console[_0x412f64(0x260)](_0x412f64(0x248));if(ENABLE_WORKSPACE_MODE)try{const _0x1bc3ef=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x1bc3ef&&(allowedDirectories=[_0x1bc3ef],console['error'](_0x412f64(0x1eb)+_0x1bc3ef));}catch(_0x6b8ea5){console['error'](_0x412f64(0x1aa)+_0x6b8ea5);}}}server[a0_0x262993(0x1ab)](RootsListChangedNotificationSchema,async()=>{const _0x506154=a0_0x262993;try{const _0x1b3389=await server[_0x506154(0x1fa)]();_0x1b3389&&_0x506154(0x220)in _0x1b3389&&await updateAllowedDirectoriesFromRoots(_0x1b3389[_0x506154(0x220)]);}catch(_0x535d49){console['error'](_0x506154(0x230),_0x535d49 instanceof Error?_0x535d49[_0x506154(0x1ed)]:String(_0x535d49));}}),server[a0_0x262993(0x1d0)]=async()=>{const _0xc24abd=a0_0x262993,_0x5e07ad=server[_0xc24abd(0x294)]();if(_0x5e07ad?.[_0xc24abd(0x220)])try{const _0x29cba4=await server[_0xc24abd(0x1fa)]();_0x29cba4&&'roots'in _0x29cba4?await updateAllowedDirectoriesFromRoots(_0x29cba4[_0xc24abd(0x220)]):console['error'](_0xc24abd(0x2a3));}catch(_0xbd1443){console[_0xc24abd(0x260)](_0xc24abd(0x26d),_0xbd1443 instanceof Error?_0xbd1443['message']:String(_0xbd1443));}else{if(allowedDirectories[_0xc24abd(0x224)]>0x0)console[_0xc24abd(0x260)](_0xc24abd(0x26e),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console['error']('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode');else throw new Error(_0xc24abd(0x1e1));}}};async function runServer(){const _0x3a7b45=a0_0x262993,_0x35ea6c=new StdioServerTransport();await server['connect'](_0x35ea6c),console['error'](_0x3a7b45(0x241)),allowedDirectories[_0x3a7b45(0x224)]===0x0&&console[_0x3a7b45(0x260)](_0x3a7b45(0x205));}runServer()['catch'](_0x4c853f=>{const _0xa894df=a0_0x262993;console[_0xa894df(0x260)](_0xa894df(0x22b),_0x4c853f),process[_0xa894df(0x291)](0x1);});
@@ -1 +1 @@
1
- function a1_0x4043(_0x1dcdee,_0x3004f2){_0x1dcdee=_0x1dcdee-0x7e;const _0x76e9bf=a1_0x76e9();let _0x4043d2=_0x76e9bf[_0x1dcdee];return _0x4043d2;}(function(_0x55371f,_0x20c515){const _0x3a3ba9=a1_0x4043,_0x427cff=_0x55371f();while(!![]){try{const _0x2414ad=parseInt(_0x3a3ba9(0x80))/0x1+parseInt(_0x3a3ba9(0x91))/0x2*(parseInt(_0x3a3ba9(0x8f))/0x3)+-parseInt(_0x3a3ba9(0x87))/0x4*(-parseInt(_0x3a3ba9(0x82))/0x5)+parseInt(_0x3a3ba9(0x86))/0x6*(-parseInt(_0x3a3ba9(0x89))/0x7)+-parseInt(_0x3a3ba9(0x7f))/0x8+parseInt(_0x3a3ba9(0x83))/0x9+-parseInt(_0x3a3ba9(0x81))/0xa*(parseInt(_0x3a3ba9(0x85))/0xb);if(_0x2414ad===_0x20c515)break;else _0x427cff['push'](_0x427cff['shift']());}catch(_0x14f62a){_0x427cff['push'](_0x427cff['shift']());}}}(a1_0x76e9,0x5e42d));import a1_0x5eaad4 from'path';function a1_0x76e9(){const _0x14f157=['match','homedir','join','replace','test','4511072bsJyoN','560740EmhQug','8964750pTdpta','360595RJmauY','1457604VcSzit','substring','11LaTgXQ','132sURbwY','36DJfEIq','charAt','75271GuhPBq','slice','/mnt/','normalize','startsWith','trim','5217ePoYtO','toUpperCase','818vUemYq'];a1_0x76e9=function(){return _0x14f157;};return a1_0x76e9();}import a1_0x21e192 from'os';export function convertToWindowsPath(_0x245c89){const _0x7d543e=a1_0x4043;if(_0x245c89[_0x7d543e(0x8d)](_0x7d543e(0x8b))){const _0x34b654=_0x245c89[_0x7d543e(0x88)](0x5)[_0x7d543e(0x90)](),_0x54e578=_0x245c89[_0x7d543e(0x8a)](0x6)[_0x7d543e(0x95)](/\//g,'\x5c');return _0x34b654+':'+_0x54e578;}if(_0x245c89[_0x7d543e(0x92)](/^\/[a-zA-Z]\//)){const _0x40b5f0=_0x245c89[_0x7d543e(0x88)](0x1)[_0x7d543e(0x90)](),_0x58eee8=_0x245c89['slice'](0x2)[_0x7d543e(0x95)](/\//g,'\x5c');return _0x40b5f0+':'+_0x58eee8;}if(_0x245c89[_0x7d543e(0x92)](/^[a-zA-Z]:/))return _0x245c89['replace'](/\//g,'\x5c');return _0x245c89;}export function normalizePath(_0x515d23){const _0x130a6c=a1_0x4043;_0x515d23=_0x515d23[_0x130a6c(0x8e)]()[_0x130a6c(0x95)](/^["']|["']$/g,'');const _0x32e4d7=_0x515d23[_0x130a6c(0x8d)]('/')&&!_0x515d23[_0x130a6c(0x92)](/^\/mnt\/[a-z]\//i)&&!_0x515d23['match'](/^\/[a-zA-Z]\//);if(_0x32e4d7)return _0x515d23[_0x130a6c(0x95)](/\/+/g,'/')[_0x130a6c(0x95)](/\/+$/,'');_0x515d23=convertToWindowsPath(_0x515d23);if(_0x515d23[_0x130a6c(0x8d)]('\x5c\x5c')){let _0x497e4c=_0x515d23;_0x497e4c=_0x497e4c['replace'](/^\\{2,}/,'\x5c\x5c');const _0x444f5f=_0x497e4c[_0x130a6c(0x84)](0x2)[_0x130a6c(0x95)](/\\\\/g,'\x5c');_0x515d23='\x5c\x5c'+_0x444f5f;}else _0x515d23=_0x515d23[_0x130a6c(0x95)](/\\\\/g,'\x5c');let _0x179bea=a1_0x5eaad4[_0x130a6c(0x8c)](_0x515d23);_0x515d23['startsWith']('\x5c\x5c')&&!_0x179bea[_0x130a6c(0x8d)]('\x5c\x5c')&&(_0x179bea='\x5c'+_0x179bea);if(_0x179bea['match'](/^[a-zA-Z]:/)){let _0x3f6784=_0x179bea[_0x130a6c(0x95)](/\//g,'\x5c');return/^[a-z]:/[_0x130a6c(0x7e)](_0x3f6784)&&(_0x3f6784=_0x3f6784[_0x130a6c(0x88)](0x0)[_0x130a6c(0x90)]()+_0x3f6784[_0x130a6c(0x8a)](0x1)),_0x3f6784;}return _0x179bea['replace'](/\//g,'\x5c');}export function expandHome(_0x4d7c79){const _0x14c621=a1_0x4043;if(_0x4d7c79[_0x14c621(0x8d)]('~/')||_0x4d7c79==='~')return a1_0x5eaad4[_0x14c621(0x94)](a1_0x21e192[_0x14c621(0x93)](),_0x4d7c79['slice'](0x1));return _0x4d7c79;}
1
+ (function(_0x51bcbe,_0x4fbc79){const _0x2686b0=a1_0x1d3a,_0x357c63=_0x51bcbe();while(!![]){try{const _0x413807=-parseInt(_0x2686b0(0x188))/0x1*(-parseInt(_0x2686b0(0x18f))/0x2)+parseInt(_0x2686b0(0x193))/0x3*(parseInt(_0x2686b0(0x18c))/0x4)+parseInt(_0x2686b0(0x199))/0x5*(parseInt(_0x2686b0(0x187))/0x6)+-parseInt(_0x2686b0(0x18e))/0x7*(-parseInt(_0x2686b0(0x196))/0x8)+-parseInt(_0x2686b0(0x191))/0x9+parseInt(_0x2686b0(0x184))/0xa*(-parseInt(_0x2686b0(0x19b))/0xb)+parseInt(_0x2686b0(0x19a))/0xc*(-parseInt(_0x2686b0(0x18a))/0xd);if(_0x413807===_0x4fbc79)break;else _0x357c63['push'](_0x357c63['shift']());}catch(_0x5d917b){_0x357c63['push'](_0x357c63['shift']());}}}(a1_0x12b7,0xdffe8));import a1_0x4e3728 from'path';function a1_0x12b7(){const _0xdc8827=['test','1515527QWTiBN','substring','864148Oexmda','match','11888821hrIAgu','26ejaoGb','replace','7077249ySquDc','/mnt/','24UMVnXm','slice','charAt','8nebiXo','join','toUpperCase','7343545FgEpbh','372nROYxe','121iYqeYo','997290wuRaxs','startsWith','trim','6ZEvVpH','116877TtNWaQ'];a1_0x12b7=function(){return _0xdc8827;};return a1_0x12b7();}import a1_0x23191c from'os';export function convertToWindowsPath(_0x3b5de5){const _0x266eb6=a1_0x1d3a;if(_0x3b5de5[_0x266eb6(0x185)](_0x266eb6(0x192))){const _0x5b3f96=_0x3b5de5[_0x266eb6(0x195)](0x5)[_0x266eb6(0x198)](),_0x5ef7c9=_0x3b5de5[_0x266eb6(0x194)](0x6)[_0x266eb6(0x190)](/\//g,'\x5c');return _0x5b3f96+':'+_0x5ef7c9;}if(_0x3b5de5[_0x266eb6(0x18d)](/^\/[a-zA-Z]\//)){const _0x562215=_0x3b5de5[_0x266eb6(0x195)](0x1)['toUpperCase'](),_0x15282c=_0x3b5de5[_0x266eb6(0x194)](0x2)[_0x266eb6(0x190)](/\//g,'\x5c');return _0x562215+':'+_0x15282c;}if(_0x3b5de5[_0x266eb6(0x18d)](/^[a-zA-Z]:/))return _0x3b5de5['replace'](/\//g,'\x5c');return _0x3b5de5;}function a1_0x1d3a(_0x42588a,_0x58b7df){_0x42588a=_0x42588a-0x184;const _0x12b70d=a1_0x12b7();let _0x1d3a74=_0x12b70d[_0x42588a];return _0x1d3a74;}export function normalizePath(_0x45a09e){const _0x1b5bd3=a1_0x1d3a;_0x45a09e=_0x45a09e[_0x1b5bd3(0x186)]()[_0x1b5bd3(0x190)](/^["']|["']$/g,'');const _0x253bf8=_0x45a09e[_0x1b5bd3(0x185)]('/')&&!_0x45a09e[_0x1b5bd3(0x18d)](/^\/mnt\/[a-z]\//i)&&!_0x45a09e['match'](/^\/[a-zA-Z]\//);if(_0x253bf8)return _0x45a09e[_0x1b5bd3(0x190)](/\/+/g,'/')[_0x1b5bd3(0x190)](/\/+$/,'');_0x45a09e=convertToWindowsPath(_0x45a09e);if(_0x45a09e[_0x1b5bd3(0x185)]('\x5c\x5c')){let _0x417617=_0x45a09e;_0x417617=_0x417617[_0x1b5bd3(0x190)](/^\\{2,}/,'\x5c\x5c');const _0x34b1be=_0x417617[_0x1b5bd3(0x18b)](0x2)[_0x1b5bd3(0x190)](/\\\\/g,'\x5c');_0x45a09e='\x5c\x5c'+_0x34b1be;}else _0x45a09e=_0x45a09e[_0x1b5bd3(0x190)](/\\\\/g,'\x5c');let _0x31a21a=a1_0x4e3728['normalize'](_0x45a09e);_0x45a09e[_0x1b5bd3(0x185)]('\x5c\x5c')&&!_0x31a21a[_0x1b5bd3(0x185)]('\x5c\x5c')&&(_0x31a21a='\x5c'+_0x31a21a);if(_0x31a21a['match'](/^[a-zA-Z]:/)){let _0x4c0369=_0x31a21a['replace'](/\//g,'\x5c');return/^[a-z]:/[_0x1b5bd3(0x189)](_0x4c0369)&&(_0x4c0369=_0x4c0369[_0x1b5bd3(0x195)](0x0)[_0x1b5bd3(0x198)]()+_0x4c0369[_0x1b5bd3(0x194)](0x1)),_0x4c0369;}return _0x31a21a[_0x1b5bd3(0x190)](/\//g,'\x5c');}export function expandHome(_0x68a000){const _0x158f4c=a1_0x1d3a;if(_0x68a000['startsWith']('~/')||_0x68a000==='~')return a1_0x4e3728[_0x158f4c(0x197)](a1_0x23191c['homedir'](),_0x68a000[_0x158f4c(0x194)](0x1));return _0x68a000;}
@@ -1 +1 @@
1
- (function(_0x481c92,_0x1604dc){const _0x53d56d=a2_0xaa04,_0x4deb80=_0x481c92();while(!![]){try{const _0x1a099c=parseInt(_0x53d56d(0xd4))/0x1+-parseInt(_0x53d56d(0xde))/0x2+-parseInt(_0x53d56d(0xe4))/0x3*(-parseInt(_0x53d56d(0xe1))/0x4)+parseInt(_0x53d56d(0xd3))/0x5*(parseInt(_0x53d56d(0xdc))/0x6)+parseInt(_0x53d56d(0xd2))/0x7*(parseInt(_0x53d56d(0xe3))/0x8)+-parseInt(_0x53d56d(0xe2))/0x9*(-parseInt(_0x53d56d(0xdf))/0xa)+-parseInt(_0x53d56d(0xd5))/0xb;if(_0x1a099c===_0x1604dc)break;else _0x4deb80['push'](_0x4deb80['shift']());}catch(_0x5e32fc){_0x4deb80['push'](_0x4deb80['shift']());}}}(a2_0x3bae,0x9a705));import a2_0x184f5d from'path';function a2_0x3bae(){const _0x5659e6=['10TsoqTg','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','2279188fGLqnb','10201671ngSqgz','1096mdbqbk','3YKfMOQ','20881frjusL','7710IzvxzO','83070JdoPZo','24162028afFTqf','resolve','some','sep','normalize','string','length','3582kbRHqd','isAbsolute','573004skHrrt'];a2_0x3bae=function(){return _0x5659e6;};return a2_0x3bae();}function a2_0xaa04(_0x1926e6,_0x38c7ce){_0x1926e6=_0x1926e6-0xd2;const _0x3bae3d=a2_0x3bae();let _0xaa04d0=_0x3bae3d[_0x1926e6];return _0xaa04d0;}export function isPathWithinAllowedDirectories(_0x3549e8,_0x339a52){const _0x165795=a2_0xaa04;if(typeof _0x3549e8!==_0x165795(0xda)||!Array['isArray'](_0x339a52))return![];if(!_0x3549e8||_0x339a52[_0x165795(0xdb)]===0x0)return![];if(_0x3549e8['includes']('\x00'))return![];let _0x24584c;try{_0x24584c=a2_0x184f5d[_0x165795(0xd6)](a2_0x184f5d[_0x165795(0xd9)](_0x3549e8));}catch{return![];}if(!a2_0x184f5d[_0x165795(0xdd)](_0x24584c))throw new Error('Path\x20must\x20be\x20absolute\x20after\x20normalization');return _0x339a52[_0x165795(0xd7)](_0x30d9cd=>{const _0x6cf110=_0x165795;if(typeof _0x30d9cd!==_0x6cf110(0xda)||!_0x30d9cd)return![];if(_0x30d9cd['includes']('\x00'))return![];let _0x222c76;try{_0x222c76=a2_0x184f5d[_0x6cf110(0xd6)](a2_0x184f5d[_0x6cf110(0xd9)](_0x30d9cd));}catch{return![];}if(!a2_0x184f5d['isAbsolute'](_0x222c76))throw new Error(_0x6cf110(0xe0));if(_0x24584c===_0x222c76)return!![];if(_0x222c76===a2_0x184f5d[_0x6cf110(0xd8)])return _0x24584c['startsWith'](a2_0x184f5d['sep']);return _0x24584c['startsWith'](_0x222c76+a2_0x184f5d[_0x6cf110(0xd8)]);});}
1
+ (function(_0x419c95,_0x2324b1){const _0xc149fd=a2_0x10a9,_0xf167c8=_0x419c95();while(!![]){try{const _0x323a74=parseInt(_0xc149fd(0x149))/0x1*(parseInt(_0xc149fd(0x152))/0x2)+parseInt(_0xc149fd(0x150))/0x3+-parseInt(_0xc149fd(0x14b))/0x4+-parseInt(_0xc149fd(0x155))/0x5*(-parseInt(_0xc149fd(0x151))/0x6)+-parseInt(_0xc149fd(0x141))/0x7*(parseInt(_0xc149fd(0x144))/0x8)+-parseInt(_0xc149fd(0x153))/0x9+parseInt(_0xc149fd(0x147))/0xa*(parseInt(_0xc149fd(0x14a))/0xb);if(_0x323a74===_0x2324b1)break;else _0xf167c8['push'](_0xf167c8['shift']());}catch(_0x16e9d2){_0xf167c8['push'](_0xf167c8['shift']());}}}(a2_0x2b5c,0xa5ae7));function a2_0x10a9(_0x5a7fde,_0x3d3083){_0x5a7fde=_0x5a7fde-0x13f;const _0x2b5ca1=a2_0x2b5c();let _0x10a932=_0x2b5ca1[_0x5a7fde];return _0x10a932;}import a2_0xc83251 from'path';export function isPathWithinAllowedDirectories(_0x4f3e62,_0xb8fa3e){const _0x3b0bc6=a2_0x10a9;if(typeof _0x4f3e62!==_0x3b0bc6(0x146)||!Array[_0x3b0bc6(0x14f)](_0xb8fa3e))return![];if(!_0x4f3e62||_0xb8fa3e[_0x3b0bc6(0x145)]===0x0)return![];if(_0x4f3e62[_0x3b0bc6(0x140)]('\x00'))return![];let _0x254b8f;try{_0x254b8f=a2_0xc83251[_0x3b0bc6(0x143)](a2_0xc83251[_0x3b0bc6(0x14e)](_0x4f3e62));}catch{return![];}if(!a2_0xc83251[_0x3b0bc6(0x148)](_0x254b8f))throw new Error(_0x3b0bc6(0x142));return _0xb8fa3e[_0x3b0bc6(0x14c)](_0x32e3a3=>{const _0x58b1e8=_0x3b0bc6;if(typeof _0x32e3a3!=='string'||!_0x32e3a3)return![];if(_0x32e3a3[_0x58b1e8(0x140)]('\x00'))return![];let _0x3aa9b7;try{_0x3aa9b7=a2_0xc83251[_0x58b1e8(0x143)](a2_0xc83251['normalize'](_0x32e3a3));}catch{return![];}if(!a2_0xc83251['isAbsolute'](_0x3aa9b7))throw new Error(_0x58b1e8(0x14d));if(_0x254b8f===_0x3aa9b7)return!![];if(_0x3aa9b7===a2_0xc83251[_0x58b1e8(0x13f)])return _0x254b8f[_0x58b1e8(0x154)](a2_0xc83251[_0x58b1e8(0x13f)]);return _0x254b8f[_0x58b1e8(0x154)](_0x3aa9b7+a2_0xc83251['sep']);});}function a2_0x2b5c(){const _0x14a45d=['702376oadZBM','3441537TuIulV','4792088UcmeKo','some','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','normalize','isArray','1604658nmsrYd','48798YGCRde','2ARHzyp','11880369iOtYlz','startsWith','165OdPXsN','sep','includes','434371LYOQfr','Path\x20must\x20be\x20absolute\x20after\x20normalization','resolve','24NvPORU','length','string','60YhWDsV','isAbsolute'];a2_0x2b5c=function(){return _0x14a45d;};return a2_0x2b5c();}
@@ -1 +1 @@
1
- (function(_0x232a0f,_0x203100){const _0x279e89=a3_0xfffe,_0x4cda67=_0x232a0f();while(!![]){try{const _0x199efc=-parseInt(_0x279e89(0x1e5))/0x1*(parseInt(_0x279e89(0x1e4))/0x2)+parseInt(_0x279e89(0x1ec))/0x3*(parseInt(_0x279e89(0x1e8))/0x4)+-parseInt(_0x279e89(0x1ea))/0x5+-parseInt(_0x279e89(0x1e3))/0x6*(parseInt(_0x279e89(0x1dc))/0x7)+parseInt(_0x279e89(0x1d8))/0x8+parseInt(_0x279e89(0x1da))/0x9*(parseInt(_0x279e89(0x1dd))/0xa)+parseInt(_0x279e89(0x1de))/0xb*(parseInt(_0x279e89(0x1db))/0xc);if(_0x199efc===_0x203100)break;else _0x4cda67['push'](_0x4cda67['shift']());}catch(_0x15a2c4){_0x4cda67['push'](_0x4cda67['shift']());}}}(a3_0x5c45,0x9bbcf));function a3_0xfffe(_0x2ee9c6,_0x41470a){_0x2ee9c6=_0x2ee9c6-0x1d8;const _0x5c4543=a3_0x5c45();let _0xfffe5c=_0x5c4543[_0x2ee9c6];return _0xfffe5c;}import{promises as a3_0x2a6b67}from'fs';import a3_0x531e55 from'path';import a3_0x42b388 from'os';import{normalizePath}from'./path-utils.js';async function parseRootUri(_0x2f6394){const _0x9de13=a3_0xfffe;try{const _0x28497c=_0x2f6394[_0x9de13(0x1f1)](_0x9de13(0x1e0))?_0x2f6394[_0x9de13(0x1df)](0x7):_0x2f6394,_0x59fe3d=_0x28497c[_0x9de13(0x1f1)]('~/')||_0x28497c==='~'?a3_0x531e55[_0x9de13(0x1ef)](a3_0x42b388[_0x9de13(0x1e6)](),_0x28497c[_0x9de13(0x1df)](0x1)):_0x28497c,_0x19ba78=a3_0x531e55[_0x9de13(0x1f0)](_0x59fe3d),_0x153ec2=await a3_0x2a6b67[_0x9de13(0x1e9)](_0x19ba78);return normalizePath(_0x153ec2);}catch{return null;}}function formatDirectoryError(_0x56fc02,_0x1d6c43,_0xc56ab){const _0xba926b=a3_0xfffe;if(_0xc56ab)return'Skipping\x20'+_0xc56ab+':\x20'+_0x56fc02;const _0x4a923b=_0x1d6c43 instanceof Error?_0x1d6c43[_0xba926b(0x1e1)]:String(_0x1d6c43);return _0xba926b(0x1d9)+_0x56fc02+'\x20due\x20to\x20error:\x20'+_0x4a923b;}function a3_0x5c45(){const _0x3adbef=['6523704ZToOSO','60XvpKzv','1889867gmLHfL','10WxNXpG','65637RLZeeh','slice','file://','message','isDirectory','6KrEUeL','2pbtZHu','654147qxDsol','homedir','stat','905864fgqFUC','realpath','3412195mBcgFs','uri','6ohCXDs','non-directory\x20root','error','join','resolve','startsWith','8294776ecXSdY','Skipping\x20invalid\x20directory:\x20'];a3_0x5c45=function(){return _0x3adbef;};return a3_0x5c45();}export async function getValidRootDirectories(_0x102bde){const _0x16115b=a3_0xfffe,_0x5e3d47=[];for(const _0x41aba2 of _0x102bde){const _0x482632=await parseRootUri(_0x41aba2[_0x16115b(0x1eb)]);if(!_0x482632){console['error'](formatDirectoryError(_0x41aba2[_0x16115b(0x1eb)],undefined,'invalid\x20path\x20or\x20inaccessible'));continue;}try{const _0x38c231=await a3_0x2a6b67[_0x16115b(0x1e7)](_0x482632);_0x38c231[_0x16115b(0x1e2)]()?_0x5e3d47['push'](_0x482632):console[_0x16115b(0x1ee)](formatDirectoryError(_0x482632,undefined,_0x16115b(0x1ed)));}catch(_0x2a8f5b){console[_0x16115b(0x1ee)](formatDirectoryError(_0x482632,_0x2a8f5b));}}return _0x5e3d47;}
1
+ (function(_0x2d48e8,_0x1965da){const _0x3ae534=a3_0x533e,_0x2e3af3=_0x2d48e8();while(!![]){try{const _0x5ebdd5=parseInt(_0x3ae534(0x82))/0x1*(parseInt(_0x3ae534(0x87))/0x2)+-parseInt(_0x3ae534(0x88))/0x3+-parseInt(_0x3ae534(0x7f))/0x4*(-parseInt(_0x3ae534(0x6f))/0x5)+-parseInt(_0x3ae534(0x76))/0x6+parseInt(_0x3ae534(0x71))/0x7+-parseInt(_0x3ae534(0x75))/0x8+parseInt(_0x3ae534(0x85))/0x9*(parseInt(_0x3ae534(0x72))/0xa);if(_0x5ebdd5===_0x1965da)break;else _0x2e3af3['push'](_0x2e3af3['shift']());}catch(_0x2d8fbe){_0x2e3af3['push'](_0x2e3af3['shift']());}}}(a3_0x4a7b,0x851ba));import{promises as a3_0x1e8bb5}from'fs';import a3_0x4208d0 from'path';function a3_0x533e(_0x284ca6,_0x508ca4){_0x284ca6=_0x284ca6-0x6e;const _0x4a7ba2=a3_0x4a7b();let _0x533e3b=_0x4a7ba2[_0x284ca6];return _0x533e3b;}import a3_0x4685cd from'os';import{normalizePath}from'./path-utils.js';async function parseRootUri(_0x304a42){const _0x389cb4=a3_0x533e;try{const _0x1095cf=_0x304a42[_0x389cb4(0x86)](_0x389cb4(0x78))?_0x304a42[_0x389cb4(0x7a)](0x7):_0x304a42,_0x1a425b=_0x1095cf[_0x389cb4(0x86)]('~/')||_0x1095cf==='~'?a3_0x4208d0[_0x389cb4(0x77)](a3_0x4685cd[_0x389cb4(0x83)](),_0x1095cf['slice'](0x1)):_0x1095cf,_0x3c2241=a3_0x4208d0[_0x389cb4(0x79)](_0x1a425b),_0x235435=await a3_0x1e8bb5[_0x389cb4(0x81)](_0x3c2241);return normalizePath(_0x235435);}catch{return null;}}function formatDirectoryError(_0x19aa8f,_0x57e9cf,_0x2e54bf){const _0x5b9805=a3_0x533e;if(_0x2e54bf)return _0x5b9805(0x74)+_0x2e54bf+':\x20'+_0x19aa8f;const _0x2b187b=_0x57e9cf instanceof Error?_0x57e9cf[_0x5b9805(0x7d)]:String(_0x57e9cf);return _0x5b9805(0x70)+_0x19aa8f+_0x5b9805(0x80)+_0x2b187b;}function a3_0x4a7b(){const _0x211ce7=['2704400qcxQpQ','non-directory\x20root','Skipping\x20','6699512MBDBeO','2772852wSRygW','join','file://','resolve','slice','isDirectory','error','message','push','12OhjoKl','\x20due\x20to\x20error:\x20','realpath','534811tcjCHE','homedir','invalid\x20path\x20or\x20inaccessible','36tRJdnN','startsWith','2PUibHC','1609044xHsoTQ','uri','605395NdsQUK','Skipping\x20invalid\x20directory:\x20','2809317oUZaQt'];a3_0x4a7b=function(){return _0x211ce7;};return a3_0x4a7b();}export async function getValidRootDirectories(_0x15c8c8){const _0x19ebac=a3_0x533e,_0x5a6c12=[];for(const _0x23c256 of _0x15c8c8){const _0x1f6073=await parseRootUri(_0x23c256[_0x19ebac(0x6e)]);if(!_0x1f6073){console[_0x19ebac(0x7c)](formatDirectoryError(_0x23c256[_0x19ebac(0x6e)],undefined,_0x19ebac(0x84)));continue;}try{const _0x2644b2=await a3_0x1e8bb5['stat'](_0x1f6073);_0x2644b2[_0x19ebac(0x7b)]()?_0x5a6c12[_0x19ebac(0x7e)](_0x1f6073):console['error'](formatDirectoryError(_0x1f6073,undefined,_0x19ebac(0x73)));}catch(_0x86465a){console[_0x19ebac(0x7c)](formatDirectoryError(_0x1f6073,_0x86465a));}}return _0x5a6c12;}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morphllm/morphmcp",
3
- "version": "0.8.93",
3
+ "version": "0.8.95",
4
4
  "description": "Fast & accurate MCP server with AI-powered file editing and intelligent code search. Prevents context pollution and saves time for a better user experience.",
5
5
  "license": "MIT",
6
6
  "author": "Morph (https://morphllm.com)",
@@ -35,7 +35,7 @@
35
35
  "dependencies": {
36
36
  "@google/generative-ai": "^0.21.0",
37
37
  "@modelcontextprotocol/sdk": "^1.12.3",
38
- "@morphllm/morphsdk": "0.2.115",
38
+ "@morphllm/morphsdk": "0.2.117",
39
39
  "@vscode/ripgrep": "^1.15.14",
40
40
  "axios": "^1.6.0",
41
41
  "chalk": "^5.3.0",