@morphllm/morphmcp 0.8.100 → 0.8.102
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 +1 -1
- package/dist/path-utils.js +1 -1
- package/dist/path-validation.js +1 -1
- package/dist/roots-utils.js +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const a0_0x48d522=a0_0x3cf5;(function(_0x349615,_0x320cb2){const _0x1f8097=a0_0x3cf5,_0x4ab4bb=_0x349615();while(!![]){try{const _0x190d91=-parseInt(_0x1f8097(0x1b7))/0x1*(-parseInt(_0x1f8097(0x19f))/0x2)+-parseInt(_0x1f8097(0x17d))/0x3+-parseInt(_0x1f8097(0x196))/0x4+parseInt(_0x1f8097(0x262))/0x5+-parseInt(_0x1f8097(0x192))/0x6+parseInt(_0x1f8097(0x245))/0x7*(parseInt(_0x1f8097(0x264))/0x8)+parseInt(_0x1f8097(0x220))/0x9;if(_0x190d91===_0x320cb2)break;else _0x4ab4bb['push'](_0x4ab4bb['shift']());}catch(_0x4d79da){_0x4ab4bb['push'](_0x4ab4bb['shift']());}}}(a0_0x5e9f,0xa94d1));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_0x585095 from'fs/promises';import a0_0x276367 from'path';import a0_0x3962ef 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_0x2cabc8 from'axios';function fixPathRepetition(_0x12e73b){const _0x2b54dc=a0_0x3cf5,_0x586b94=_0x12e73b['split'](a0_0x276367[_0x2b54dc(0x1d0)])[_0x2b54dc(0x1c8)](Boolean);if(_0x586b94[_0x2b54dc(0x24b)]<0x2)return null;for(let _0x480c90=Math[_0x2b54dc(0x203)](_0x586b94[_0x2b54dc(0x24b)]/0x2);_0x480c90>=0x1;_0x480c90--){for(let _0x40eb4a=0x0;_0x40eb4a<=_0x586b94[_0x2b54dc(0x24b)]-0x2*_0x480c90;_0x40eb4a++){const _0x56fcaf=_0x586b94[_0x2b54dc(0x26c)](_0x40eb4a,_0x40eb4a+_0x480c90),_0x102fee=_0x586b94['slice'](_0x40eb4a+_0x480c90,_0x40eb4a+0x2*_0x480c90);if(_0x56fcaf['every']((_0x375ed2,_0x7c4675)=>_0x375ed2===_0x102fee[_0x7c4675])){const _0x35499d=[..._0x586b94[_0x2b54dc(0x26c)](0x0,_0x40eb4a),..._0x586b94[_0x2b54dc(0x26c)](_0x40eb4a+_0x480c90)];return a0_0x276367[_0x2b54dc(0x1d0)]+_0x35499d['join'](a0_0x276367[_0x2b54dc(0x1d0)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x16f8e1=a0_0x3cf5;try{const _0x553b44=require(_0x16f8e1(0x1b6));return _0x553b44[_0x16f8e1(0x258)]??_0x16f8e1(0x231);}catch(_0x180672){return console[_0x16f8e1(0x22f)](_0x16f8e1(0x1cc),_0x180672),'unknown';}}function printHelp(){const _0x44243b=a0_0x3cf5;console['log'](_0x44243b(0x1f9)+getPackageVersion()),console[_0x44243b(0x246)](_0x44243b(0x23c)),console[_0x44243b(0x246)](_0x44243b(0x234)),console[_0x44243b(0x246)](_0x44243b(0x1ad)),console['log'](_0x44243b(0x191)),console['log'](_0x44243b(0x1b2)),console[_0x44243b(0x246)](_0x44243b(0x1bd)),console[_0x44243b(0x246)](_0x44243b(0x17b)),console[_0x44243b(0x246)]('\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo');}const cliArgs=process[a0_0x48d522(0x1fc)][a0_0x48d522(0x26c)](0x2),VERSION_FLAGS=new Set([a0_0x48d522(0x1f4),'-v','-V']),HELP_FLAGS=new Set([a0_0x48d522(0x247),'-h']);cliArgs['some'](_0x52a9ee=>VERSION_FLAGS[a0_0x48d522(0x1a2)](_0x52a9ee))&&(console[a0_0x48d522(0x246)](a0_0x48d522(0x1f9)+getPackageVersion()),process[a0_0x48d522(0x183)](0x0));cliArgs[a0_0x48d522(0x1a4)](_0xdad9b7=>HELP_FLAGS['has'](_0xdad9b7))&&(printHelp(),process[a0_0x48d522(0x183)](0x0));function getCliArg(_0x5b1ec3){const _0x4047e0=a0_0x48d522;for(let _0x372fcf=0x0;_0x372fcf<cliArgs[_0x4047e0(0x24b)];_0x372fcf++){const _0x367f1a=cliArgs[_0x372fcf];if(_0x367f1a[_0x4047e0(0x1c2)]('--'+_0x5b1ec3+'='))return _0x367f1a['slice'](('--'+_0x5b1ec3+'=')[_0x4047e0(0x24b)]);if(_0x367f1a==='--'+_0x5b1ec3&&_0x372fcf+0x1<cliArgs[_0x4047e0(0x24b)])return cliArgs[_0x372fcf+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs[a0_0x48d522(0x24b)];i++){const arg=cliArgs[i];if(VERSION_FLAGS['has'](arg)||HELP_FLAGS[a0_0x48d522(0x1a2)](arg))continue;if(arg[a0_0x48d522(0x1c2)](a0_0x48d522(0x177)))continue;if(arg===a0_0x48d522(0x238)){i++;continue;}args['push'](arg);}const ALL_TOOLS=[a0_0x48d522(0x270),a0_0x48d522(0x1de),a0_0x48d522(0x1be)],DEFAULT_TOOLS=[a0_0x48d522(0x270),a0_0x48d522(0x1de)],ENABLED_TOOLS=process[a0_0x48d522(0x1d2)][a0_0x48d522(0x25c)]?process[a0_0x48d522(0x1d2)][a0_0x48d522(0x25c)]==='all'?ALL_TOOLS:process[a0_0x48d522(0x1d2)][a0_0x48d522(0x25c)][a0_0x48d522(0x199)](',')[a0_0x48d522(0x1ef)](_0x3d84dc=>_0x3d84dc[a0_0x48d522(0x213)]()):DEFAULT_TOOLS;console[a0_0x48d522(0x22f)](a0_0x48d522(0x1c3)+ENABLED_TOOLS[a0_0x48d522(0x244)](',\x20'));const WORKSPACE_ROOT=process['env'][a0_0x48d522(0x25a)]||process[a0_0x48d522(0x1d2)][a0_0x48d522(0x215)]||process[a0_0x48d522(0x1c7)](),ENABLE_WORKSPACE_MODE=process[a0_0x48d522(0x1d2)][a0_0x48d522(0x22b)]!=='false',MORPH_API_KEY=getCliArg(a0_0x48d522(0x20a))??process['env'][a0_0x48d522(0x17f)],MORPH_API_URL=process[a0_0x48d522(0x1d2)]['MORPH_API_URL'],MORPH_WARP_GREP_TIMEOUT=process[a0_0x48d522(0x1d2)]['MORPH_WARP_GREP_TIMEOUT']?parseInt(process[a0_0x48d522(0x1d2)][a0_0x48d522(0x216)],0xa):undefined;function a0_0x3cf5(_0x2da077,_0x53faac){_0x2da077=_0x2da077-0x175;const _0x5e9fa5=a0_0x5e9f();let _0x3cf52d=_0x5e9fa5[_0x2da077];return _0x3cf52d;}MORPH_API_KEY&&!MORPH_API_KEY[a0_0x48d522(0x1c2)]('sk-')&&!MORPH_API_KEY[a0_0x48d522(0x1c2)](a0_0x48d522(0x271))&&console['error']('Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27');async function reportMorphError(_0x4fa78e){const _0x86f9c4=a0_0x48d522;try{await a0_0x2cabc8[_0x86f9c4(0x255)](_0x86f9c4(0x1a0),{..._0x4fa78e,'timestamp':new Date()[_0x86f9c4(0x1ac)](),'source':_0x4fa78e[_0x86f9c4(0x1e6)]||_0x86f9c4(0x1af)},{'timeout':0x1388,'headers':{'Content-Type':_0x86f9c4(0x18e),'Authorization':'Bearer\x20'+MORPH_API_KEY}});}catch{}}args[a0_0x48d522(0x24b)]===0x0&&!ENABLE_WORKSPACE_MODE&&(console[a0_0x48d522(0x22f)]('Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]'),console[a0_0x48d522(0x22f)](a0_0x48d522(0x1a3)),console[a0_0x48d522(0x22f)](a0_0x48d522(0x17c)),console[a0_0x48d522(0x22f)](a0_0x48d522(0x24c)),console[a0_0x48d522(0x22f)](a0_0x48d522(0x24f)),console['error']('At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.'));function normalizePath(_0x54e9e0){return a0_0x276367['normalize'](_0x54e9e0);}function expandHome(_0x5a5745){const _0x3aa190=a0_0x48d522;if(_0x5a5745[_0x3aa190(0x1c2)]('~/')||_0x5a5745==='~')return a0_0x276367['join'](a0_0x3962ef[_0x3aa190(0x259)](),_0x5a5745[_0x3aa190(0x26c)](0x1));return _0x5a5745;}let allowedDirectories=await Promise[a0_0x48d522(0x24d)](args['map'](async _0x2af032=>{const _0x43b917=a0_0x48d522,_0x3b08f5=expandHome(_0x2af032),_0x446a12=a0_0x276367['resolve'](_0x3b08f5);try{const _0x20bea3=await a0_0x585095[_0x43b917(0x1db)](_0x446a12);return normalizePath(_0x20bea3);}catch(_0x38dee4){return normalizePath(_0x446a12);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x48d522(0x24b)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x48d522(0x186)](workspaceDir),console[a0_0x48d522(0x22f)](a0_0x48d522(0x22c)+workspaceDir+'\x20as\x20allowed\x20directory'));}catch(a0_0x2f0e76){console[a0_0x48d522(0x22f)](a0_0x48d522(0x1e7)+a0_0x2f0e76);}async function detectWorkspaceRoot(_0x52d560){const _0x569fc9=a0_0x48d522;let _0x4cf6c5=a0_0x276367[_0x569fc9(0x22e)](_0x52d560);const _0x54292f=[_0x569fc9(0x181),_0x569fc9(0x26a),_0x569fc9(0x223),_0x569fc9(0x25e),_0x569fc9(0x190),_0x569fc9(0x1e0),_0x569fc9(0x1f5),_0x569fc9(0x1a1),_0x569fc9(0x1a9)];while(_0x4cf6c5!==a0_0x276367['dirname'](_0x4cf6c5)){for(const _0x370312 of _0x54292f){const _0x2f9b23=a0_0x276367[_0x569fc9(0x244)](_0x4cf6c5,_0x370312);try{return await a0_0x585095[_0x569fc9(0x236)](_0x2f9b23),normalizePath(_0x4cf6c5);}catch{}}_0x4cf6c5=a0_0x276367[_0x569fc9(0x23a)](_0x4cf6c5);}return normalizePath(_0x52d560);}await Promise[a0_0x48d522(0x24d)](args['map'](async _0x245beb=>{const _0x43853b=a0_0x48d522;try{const _0x7e0858=await a0_0x585095[_0x43853b(0x1c0)](expandHome(_0x245beb));!_0x7e0858[_0x43853b(0x1eb)]()&&(console['error']('Error:\x20'+_0x245beb+'\x20is\x20not\x20a\x20directory'),process['exit'](0x1));}catch(_0x346799){console[_0x43853b(0x22f)](_0x43853b(0x21d)+_0x245beb+':',_0x346799),process['exit'](0x1);}}));async function validatePath(_0x256c97){const _0x52788a=a0_0x48d522,_0x49153c=expandHome(_0x256c97),_0x49e94c=a0_0x276367[_0x52788a(0x22e)](_0x49153c);try{const _0x3e0b88=await a0_0x585095[_0x52788a(0x1db)](_0x49e94c);return _0x3e0b88;}catch(_0x1ecf35){if(_0x1ecf35[_0x52788a(0x230)]==='ENOENT'){const _0x4bee3e=a0_0x276367[_0x52788a(0x23a)](_0x49e94c);try{const _0x231ebc=await a0_0x585095[_0x52788a(0x1db)](_0x4bee3e);return a0_0x276367[_0x52788a(0x244)](_0x231ebc,a0_0x276367['basename'](_0x49e94c));}catch{throw new Error('Parent\x20directory\x20does\x20not\x20exist:\x20'+_0x4bee3e);}}throw _0x1ecf35;}}function a0_0x5e9f(){const _0x8e8966=['\x20(new\x20file)','startsWith','Enabled\x20tools:\x20','roots','params','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','cwd','filter','constructor','\x20chars)','message','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','timed\x20out','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','Benefits:\x0a','sep','Preview\x20changes\x20without\x20applying\x20them.','env','Morph\x20Edit\x20Preview','text','files','role','FileReadError','number','Failed\x20to\x20request\x20roots\x20from\x20client:',',\x20modified\x20','realpath','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','Warning:\x20Workspace\x20fallback\x20failed:\x20','warpgrep_codebase_search','Rules:\x0a','go.mod','⚡\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','Unknown\x20tool:\x20','source','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','\x20valid\x20directories','timeout','payload','isDirectory','\x20-\x20','includes','linesRemoved','map','read','\x27\x20in\x20`','success','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','--version','.cursor','etimedout','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','runWarpGrep_call','@morphllm/morphmcp\x20','unknown\x20error','match','argv','oninitialized','Specific\x20commit\x20hash\x20to\x20search','PathError','connect','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','floor','stack','ENOENT','search_string','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','code_edit','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','api-key','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',',\x20removed\x20','safeParse','lines','utf-8','path','morph-warp-grep-v1-1111v0','repoId','trim','stats','PWD','MORPH_WARP_GREP_TIMEOUT','Error:\x20','completed','Warning:\x20','object','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','string','Error\x20accessing\x20directory\x20','list_directory\x20','Morph\x20Edit\x20','15156756NtijKt','Created\x20File','toLowerCase','package.json','-\x20Grepped\x20\x27','TimeoutError','assistant','completionId','UnknownError','.\x20Changes:\x20','Fallback:\x20Using\x20workspace\x20root\x20','ENABLE_WORKSPACE_MODE','Workspace\x20mode\x20enabled:\x20Using\x20','finish','resolve','error','code','unknown','commitHash','boolean','\x0aOptions:','readFile','access','0.2.0','--api-key','read\x20','dirname','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','added\x20','default','name','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','Max\x20results\x20to\x20return','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','join','44884MDbEYR','log','--help','inputSchema','content','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','length','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','all','data','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','listRoots','Invalid\x20arguments:\x20','BinaryFile','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','isArray','post','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','<file\x20path=\x22','version','homedir','WORKSPACE_ROOT','-\x20Read\x20file\x20`','ENABLED_TOOLS','For\x20deletions:\x0a','Cargo.toml','requiresApiKey','substring','timings','2501475kEZoHl','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','40aGBRVW','setRequestHandler','Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20','A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20','morph-v3-fast','setNotificationHandler','.vscode','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','slice','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.','errors','edit_file','morph-','terminationReason','getClientCapabilities','--api-key=','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','instruction','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','\x20\x20morph-mcp','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','2554806cAhnPz','-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a','MORPH_API_KEY','describe','.git','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','exit','metadata','limit','push','FileNotFound','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','changes','**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a','Here\x20is\x20the\x20content\x20of\x20files:\x0a','dryRun','Fatal\x20error\x20running\x20server:','application/json','ms:\x0a\x0a','pyproject.toml','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','1955994fsLRGF','WarpGrepError','array','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','4790868kPkURg','SymlinkError','repo_path','split','-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a','</file>','results','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','WarpGrep\x20sub-tool\x20errors:\x20','284112DDThxj','https://morphllm.com/api/error-report','tsconfig.json','has','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','some','.\x20Path:\x20','Repository\x20identifier','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','messages','composer.json','catch','SubToolError','toISOString','\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)','startLine','mcp-filesystem','grep','optional','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','Error\x20running\x20fast\x20context\x20search:\x20','Unknown\x20error','../package.json','6VTvrgK','%\x20match)\x0a','min','targetDirectories','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20','\x0aExamples:','codebase_search','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','stat'];a0_0x5e9f=function(){return _0x8e8966;};return a0_0x5e9f();}const MorphEditFileArgsSchema=z[a0_0x48d522(0x21a)]({'path':z['string'](),'code_edit':z[a0_0x48d522(0x21c)]()[a0_0x48d522(0x180)](a0_0x48d522(0x1ce)),'instruction':z[a0_0x48d522(0x21c)]()[a0_0x48d522(0x180)](a0_0x48d522(0x1e4)),'dryRun':z[a0_0x48d522(0x233)]()[a0_0x48d522(0x23e)](![])[a0_0x48d522(0x180)](a0_0x48d522(0x1d1))}),WarpGrepArgsSchema=z[a0_0x48d522(0x21a)]({'search_string':z[a0_0x48d522(0x21c)]()[a0_0x48d522(0x180)]('Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for'),'repo_path':z[a0_0x48d522(0x21c)]()[a0_0x48d522(0x180)]('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_0x48d522(0x21a)]({'query':z[a0_0x48d522(0x21c)]()[a0_0x48d522(0x180)]('Natural\x20language\x20query\x20to\x20search\x20for\x20code'),'repoId':z[a0_0x48d522(0x21c)]()[a0_0x48d522(0x180)](a0_0x48d522(0x1a6)),'branch':z['string']()['optional']()['describe'](a0_0x48d522(0x202)),'commitHash':z[a0_0x48d522(0x21c)]()[a0_0x48d522(0x1b1)]()[a0_0x48d522(0x180)](a0_0x48d522(0x1fe)),'targetDirectories':z[a0_0x48d522(0x194)](z[a0_0x48d522(0x21c)]())[a0_0x48d522(0x23e)]([])['describe']('Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all'),'limit':z[a0_0x48d522(0x1d8)]()[a0_0x48d522(0x1b1)]()[a0_0x48d522(0x23e)](0xa)['describe'](a0_0x48d522(0x242))}),server=new Server({'name':'morph-mcp','version':a0_0x48d522(0x237)},{'capabilities':{'tools':{}}});server['setRequestHandler'](ListToolsRequestSchema,async()=>{const _0x1c85af=a0_0x48d522,_0x2e71c9=[{'name':'edit_file','description':_0x1c85af(0x1b3)+_0x1c85af(0x1f3)+_0x1c85af(0x253)+_0x1c85af(0x21b)+'Benefits:\x0a'+'-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a'+'-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a'+_0x1c85af(0x195)+_0x1c85af(0x1bf)+_0x1c85af(0x1dc)+_0x1c85af(0x1e2)+'Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a'+_0x1c85af(0x25d)+_0x1c85af(0x17a)+'-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a'+_0x1c85af(0x1df)+_0x1c85af(0x201)+'-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a'+_0x1c85af(0x178)+'-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a'+'-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a'+_0x1c85af(0x26b)+_0x1c85af(0x20b),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':'warpgrep_codebase_search','description':_0x1c85af(0x267)+_0x1c85af(0x1a7)+_0x1c85af(0x188)+_0x1c85af(0x1bc)+_0x1c85af(0x26e)+_0x1c85af(0x182)+_0x1c85af(0x1bb)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':_0x1c85af(0x1be),'description':_0x1c85af(0x18a)+_0x1c85af(0x1e1)+'🎯\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a'+_0x1c85af(0x1cf)+_0x1c85af(0x17e)+'-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a'+_0x1c85af(0x1e3)+_0x1c85af(0x19a)+_0x1c85af(0x266)+'Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20'+_0x1c85af(0x209),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x4d3ba5=_0x2e71c9[_0x1c85af(0x1c8)](_0x48596f=>{const _0x103e93=_0x1c85af;if(!ENABLED_TOOLS[_0x103e93(0x1ed)](_0x48596f[_0x103e93(0x23f)]))return![];if(_0x103e93(0x25f)in _0x48596f&&_0x48596f['requiresApiKey']&&!MORPH_API_KEY)return console['error'](_0x103e93(0x219)+_0x48596f['name']+_0x103e93(0x26d)),![];return!![];});return{'tools':_0x4d3ba5[_0x1c85af(0x1ef)](_0x33d534=>({'name':_0x33d534[_0x1c85af(0x23f)],'description':_0x33d534['description'],'inputSchema':_0x33d534[_0x1c85af(0x248)]}))};}),server[a0_0x48d522(0x265)](CallToolRequestSchema,async _0x968d61=>{const _0x2c9379=a0_0x48d522;try{const {name:_0x592c9f,arguments:_0x35f3cf}=_0x968d61[_0x2c9379(0x1c5)];switch(_0x592c9f){case _0x2c9379(0x270):{const _0x5753a1=MorphEditFileArgsSchema['safeParse'](_0x35f3cf);if(!_0x5753a1[_0x2c9379(0x1f2)])throw new Error(_0x2c9379(0x1c6)+_0x5753a1['error']);const _0x2ede63=await validatePath(_0x5753a1[_0x2c9379(0x24e)][_0x2c9379(0x210)]);let _0x74810a=null,_0x4a72da=!![],_0x316b8d=null;try{_0x74810a=await a0_0x585095[_0x2c9379(0x235)](_0x2ede63,_0x2c9379(0x20f));}catch(_0x329b58){const _0xf70450=_0x329b58[_0x2c9379(0x230)];_0xf70450===_0x2c9379(0x205)?(_0x4a72da=![],_0x74810a=''):(_0x316b8d='Failed\x20to\x20read\x20file:\x20'+(_0xf70450||_0x2c9379(0x231))+_0x2c9379(0x1ec)+(_0x329b58 instanceof Error?_0x329b58[_0x2c9379(0x1cb)]:String(_0x329b58)),console[_0x2c9379(0x22f)](_0x2c9379(0x219)+_0x316b8d));}let _0x596209;try{const _0x30b021=MORPH_API_KEY;if(!_0x30b021)throw new Error(_0x2c9379(0x24a));const _0x376a8b=a0_0x276367['dirname'](_0x2ede63),_0x55ec9e=a0_0x276367['basename'](_0x2ede63),_0x57089e=await executeEditFile({'target_filepath':_0x55ec9e,'code_edit':_0x5753a1[_0x2c9379(0x24e)]['code_edit'],'instructions':_0x5753a1['data'][_0x2c9379(0x179)]},{'morphApiKey':_0x30b021,'morphApiUrl':MORPH_API_URL,'baseDir':_0x376a8b,'autoWrite':!_0x5753a1['data'][_0x2c9379(0x18c)],'generateUdiff':![],'debug':![]});_0x596209=_0x57089e[_0x2c9379(0x227)];if(!_0x57089e[_0x2c9379(0x1f2)])throw new Error(_0x57089e['error']||'Morph\x20FastApply\x20failed\x20without\x20error\x20message');const _0x29a3f7=_0x57089e[_0x2c9379(0x189)],_0x2d7966=_0x2c9379(0x23d)+_0x29a3f7['linesAdded']+_0x2c9379(0x20c)+_0x29a3f7[_0x2c9379(0x1ee)]+_0x2c9379(0x1da)+_0x29a3f7['linesModified'];if(_0x5753a1[_0x2c9379(0x24e)][_0x2c9379(0x18c)])return{'content':[{'type':'text','text':_0x2c9379(0x1d3)+(_0x4a72da?'':_0x2c9379(0x1c1))+':\x20'+_0x5753a1[_0x2c9379(0x24e)][_0x2c9379(0x179)]+'.\x20Changes:\x20'+_0x2d7966+_0x2c9379(0x1a5)+_0x5753a1[_0x2c9379(0x24e)][_0x2c9379(0x210)]+'.'}]};return{'content':[{'type':'text','text':_0x2c9379(0x21f)+(_0x4a72da?'Applied':_0x2c9379(0x221))+':\x20'+_0x5753a1[_0x2c9379(0x24e)]['instruction']+_0x2c9379(0x229)+_0x2d7966+_0x2c9379(0x1a5)+_0x5753a1[_0x2c9379(0x24e)][_0x2c9379(0x210)]+'.'}]};}catch(_0x53a240){const _0xfa1d22=_0x53a240 instanceof Error?_0x53a240[_0x2c9379(0x1cb)]:String(_0x53a240);return reportMorphError({'error_message':_0xfa1d22,'error_type':_0x53a240 instanceof Error?_0x53a240[_0x2c9379(0x1c9)]['name']:_0x2c9379(0x228),'context':{'tool':_0x2c9379(0x270),'completion_id':_0x596209,'file_path':_0x5753a1[_0x2c9379(0x24e)][_0x2c9379(0x210)],'validated_path':_0x2ede63,'instruction':_0x5753a1['data'][_0x2c9379(0x179)],'model':_0x2c9379(0x268),'dry_run':_0x5753a1[_0x2c9379(0x24e)][_0x2c9379(0x18c)],'file_exists':_0x4a72da,'file_read_error':_0x316b8d,'file_readable':_0x74810a!==null,'request_content':{'path':_0x5753a1[_0x2c9379(0x24e)]['path'],'code_edit':_0x5753a1[_0x2c9379(0x24e)][_0x2c9379(0x208)],'instruction':_0x5753a1[_0x2c9379(0x24e)][_0x2c9379(0x179)],'original_code':_0x74810a!==null?_0x74810a[_0x2c9379(0x24b)]>0xc350?_0x74810a[_0x2c9379(0x260)](0x0,0xc350)+'\x0a...\x20(truncated,\x20total:\x20'+_0x74810a['length']+_0x2c9379(0x1ca):_0x74810a:'[could\x20not\x20read\x20file:\x20'+(_0x316b8d||_0x2c9379(0x1fa))+']','original_code_length':_0x74810a?.['length']??0x0,'model':_0x2c9379(0x268),'dry_run':_0x5753a1[_0x2c9379(0x24e)][_0x2c9379(0x18c)]}},'stack_trace':_0x53a240 instanceof Error?_0x53a240[_0x2c9379(0x204)]:undefined,'source':'mcp-filesystem'})[_0x2c9379(0x1aa)](()=>{}),{'content':[{'type':'text','text':'❌\x20Morph\x20Edit\x20Failed:\x20'+_0xfa1d22}],'isError':!![]};}}case _0x2c9379(0x1de):{const _0x39e517=WarpGrepArgsSchema['safeParse'](_0x35f3cf);if(!_0x39e517[_0x2c9379(0x1f2)])return{'content':[{'type':'text','text':'Invalid\x20arguments:\x20'+_0x39e517['error']}],'isError':!![]};const _0x1ab702=_0x2e0081=>{const _0x272f6f=_0x2c9379,_0x3f4148=[];for(const _0x49dfd4 of _0x2e0081||[]){const _0x4e82f2=_0x49dfd4[_0x272f6f(0x1d6)],_0x2627e8=_0x49dfd4[_0x272f6f(0x249)];if(_0x4e82f2==='assistant'&&_0x2627e8){const _0x45f399=_0x2627e8[_0x272f6f(0x199)]('\x0a')[_0x272f6f(0x1c8)](_0x1d0ed6=>_0x1d0ed6[_0x272f6f(0x213)]());for(const _0x5618f7 of _0x45f399){const _0x4953e5=_0x5618f7['match'](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x4953e5){_0x3f4148[_0x272f6f(0x186)]('grep\x20\x27'+_0x4953e5[0x1]+'\x27\x20'+_0x4953e5[0x2]);continue;}const _0x349c80=_0x5618f7[_0x272f6f(0x1fb)](/^read\s+(.+)$/);if(_0x349c80){_0x3f4148['push'](_0x272f6f(0x239)+_0x349c80[0x1]);continue;}const _0x20067d=_0x5618f7['match'](/^list_directory\s+(.+)$/);if(_0x20067d){_0x3f4148[_0x272f6f(0x186)](_0x272f6f(0x21e)+_0x20067d[0x1]);continue;}}}}return _0x3f4148;},_0x21617d=_0x1eadff=>{const _0x4786a9=_0x2c9379,_0x112da2=[];if(!_0x1eadff||!Array['isArray'](_0x1eadff))return _0x112da2;const _0x4122a4=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':_0x4786a9(0x187),'tool':'read'},{'pattern':/\[PATH ERROR\]/,'error_type':_0x4786a9(0x1ff),'tool':_0x4786a9(0x1f0)},{'pattern':/\[READ ERROR\]/,'error_type':'ReadError','tool':_0x4786a9(0x1f0)},{'pattern':/\[UNREADABLE FILE\]/,'error_type':_0x4786a9(0x252),'tool':'read'},{'pattern':/\[RIPGREP ERROR\]/,'error_type':'RipgrepError','tool':_0x4786a9(0x1b0)},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':'RipgrepNotAvailable','tool':_0x4786a9(0x1b0)},{'pattern':/\[BINARY FILE\]/,'error_type':_0x4786a9(0x252),'tool':_0x4786a9(0x1f0)},{'pattern':/\[SYMLINK\]/,'error_type':'SymlinkError','tool':'read'},{'pattern':/not a text file/,'error_type':_0x4786a9(0x252),'tool':_0x4786a9(0x1f0)},{'pattern':/symbolic link/,'error_type':_0x4786a9(0x197),'tool':_0x4786a9(0x1f0)},{'pattern':/Error reading file:/,'error_type':'ReadError','tool':'read'},{'pattern':/status="error"/,'error_type':'ToolException','tool':_0x4786a9(0x231)}];let _0xce0a8b=0x0;for(const _0x1c7693 of _0x1eadff){if(_0x1c7693[_0x4786a9(0x1d6)]==='user'){_0xce0a8b++;const _0x143eff=_0x1c7693[_0x4786a9(0x249)];if(!_0x143eff||typeof _0x143eff!==_0x4786a9(0x21c))continue;for(const {pattern:_0x17a21c,error_type:_0x4c473d,tool:_0xf28e4b}of _0x4122a4){const _0x18c96d=_0x143eff[_0x4786a9(0x1fb)](new RegExp(_0x17a21c[_0x4786a9(0x1e6)],'g'));if(_0x18c96d)for(const _0x5e26be of _0x18c96d){const _0x373a99=_0x143eff['indexOf'](_0x5e26be),_0x5321a4=_0x143eff[_0x4786a9(0x260)](_0x373a99,Math[_0x4786a9(0x1b9)](_0x373a99+0xc8,_0x143eff[_0x4786a9(0x24b)]));_0x112da2[_0x4786a9(0x186)]({'tool':_0xf28e4b,'error_type':_0x4c473d,'error_message':_0x5321a4[_0x4786a9(0x199)]('\x0a')[0x0],'turn':_0xce0a8b});}}}}return _0x112da2;};try{const _0xd1526=a0_0x276367[_0x2c9379(0x22e)](_0x39e517[_0x2c9379(0x24e)][_0x2c9379(0x198)]),_0x16df24=new LocalRipgrepProvider(_0xd1526),_0xa35e84=await runWarpGrep({'query':_0x39e517[_0x2c9379(0x24e)]['search_string'],'repoRoot':_0xd1526,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x16df24}),_0x353b65=_0x21617d(_0xa35e84[_0x2c9379(0x1a8)]);_0x353b65[_0x2c9379(0x24b)]>0x0&&reportMorphError({'error_message':_0x2c9379(0x19e)+_0x353b65[_0x2c9379(0x24b)]+'\x20error(s)','error_type':_0x2c9379(0x1ab),'level':'warn','tool':_0x2c9379(0x1de),'context':{'repo_path':_0x39e517[_0x2c9379(0x24e)][_0x2c9379(0x198)],'query':_0x39e517['data'][_0x2c9379(0x206)],'model':'morph-warp-grep-v1-1111v0','termination_reason':_0xa35e84[_0x2c9379(0x175)],'sub_tool_errors':_0x353b65,'timings':_0xa35e84[_0x2c9379(0x261)],'tool_calls':_0x1ab702(_0xa35e84['messages']),'messages':_0xa35e84[_0x2c9379(0x1a8)]?.['map'](_0x1e4751=>({'role':_0x1e4751[_0x2c9379(0x1d6)],'content':_0x1e4751[_0x2c9379(0x249)]}))},'source':'mcp-filesystem'})[_0x2c9379(0x1aa)](()=>{});let _0x571c77='';if(_0xa35e84['terminationReason']===_0x2c9379(0x218)&&_0xa35e84[_0x2c9379(0x22d)]?.[_0x2c9379(0x184)]?.[_0x2c9379(0x1d5)]){const _0x19731d=_0xa35e84[_0x2c9379(0x22d)][_0x2c9379(0x184)]['files'];if(_0x19731d[_0x2c9379(0x24b)]===0x0)return _0x571c77=_0xa35e84[_0x2c9379(0x22d)][_0x2c9379(0x1ea)]||'No\x20relevant\x20code\x20found\x20for\x20the\x20query.',{'content':[{'type':_0x2c9379(0x1d4),'text':_0x571c77}]};const _0x13c0a2=[],_0x1dff10=[_0x2c9379(0x263)];for(const _0x406b02 of _0xa35e84['messages']){const _0x328983=_0x406b02[_0x2c9379(0x1d6)],_0x4f7304=_0x406b02[_0x2c9379(0x249)];if(_0x328983===_0x2c9379(0x226)&&_0x4f7304){const _0x511481=_0x4f7304[_0x2c9379(0x199)]('\x0a')[_0x2c9379(0x1c8)](_0x2a1cc1=>_0x2a1cc1['trim']());for(const _0x569277 of _0x511481){const _0x4789b3=_0x569277[_0x2c9379(0x1fb)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x4789b3){_0x1dff10['push'](_0x2c9379(0x224)+_0x4789b3[0x1]+_0x2c9379(0x1f1)+_0x4789b3[0x2]+'`');continue;}const _0x54a57b=_0x569277['match'](/^read\s+(.+)$/);if(_0x54a57b){_0x1dff10[_0x2c9379(0x186)](_0x2c9379(0x25b)+_0x54a57b[0x1]+'`');continue;}const _0x29e9a3=_0x569277[_0x2c9379(0x1fb)](/^list_directory\s+(.+)$/);if(_0x29e9a3){_0x1dff10[_0x2c9379(0x186)]('-\x20Listed\x20directory\x20`'+_0x29e9a3[0x1]+'`');continue;}}}}_0x13c0a2[_0x2c9379(0x186)](_0x1dff10[_0x2c9379(0x244)]('\x0a'));const _0x5d0bfc=['','Relevant\x20context\x20found:'];for(const _0xf331c6 of _0x19731d){if(_0xf331c6[_0x2c9379(0x20e)]==='*')_0x5d0bfc['push']('-\x20'+_0xf331c6[_0x2c9379(0x210)]+':*');else{if(Array[_0x2c9379(0x254)](_0xf331c6[_0x2c9379(0x20e)])){const _0x50f602=_0xf331c6['lines'][_0x2c9379(0x1ef)](([_0x15cae8,_0x315f6c])=>{if(_0x15cae8===_0x315f6c)return''+_0x15cae8;return _0x15cae8+'-'+_0x315f6c;});_0x5d0bfc[_0x2c9379(0x186)]('-\x20'+_0xf331c6[_0x2c9379(0x210)]+':'+_0x50f602[_0x2c9379(0x244)](','));}else _0x5d0bfc[_0x2c9379(0x186)]('-\x20'+_0xf331c6[_0x2c9379(0x210)]+':*');}}_0x5d0bfc[_0x2c9379(0x186)](''),_0x13c0a2[_0x2c9379(0x186)](_0x5d0bfc[_0x2c9379(0x244)]('\x0a')),_0x13c0a2[_0x2c9379(0x186)](_0x2c9379(0x18b));const _0x2f6e34=[];for(const _0x236928 of _0x19731d){let _0x400fba=a0_0x276367[_0x2c9379(0x22e)](_0x39e517[_0x2c9379(0x24e)][_0x2c9379(0x198)],_0x236928[_0x2c9379(0x210)]),_0x2b2f70=null,_0x5e6ff2=null;try{_0x2b2f70=await a0_0x585095[_0x2c9379(0x235)](_0x400fba,{'encoding':_0x2c9379(0x20f)});}catch(_0x914db5){const _0x4be599=fixPathRepetition(_0x400fba);if(_0x4be599)try{_0x2b2f70=await a0_0x585095['readFile'](_0x4be599,{'encoding':_0x2c9379(0x20f)}),_0x400fba=_0x4be599;}catch{_0x5e6ff2=_0x914db5 instanceof Error?_0x914db5:new Error(String(_0x914db5));}else _0x5e6ff2=_0x914db5 instanceof Error?_0x914db5:new Error(String(_0x914db5));}if(_0x2b2f70!==null){const _0xba4adf=_0x2b2f70['split'](/\r?\n/),_0x21f43d=[_0x2c9379(0x257)+_0x236928[_0x2c9379(0x210)]+'\x22>'];if(_0x236928[_0x2c9379(0x20e)]==='*'||!Array[_0x2c9379(0x254)](_0x236928[_0x2c9379(0x20e)]))for(let _0x5e77ef=0x1;_0x5e77ef<=_0xba4adf['length'];_0x5e77ef++){const _0x3b2b41=_0xba4adf[_0x5e77ef-0x1];_0x21f43d[_0x2c9379(0x186)](_0x5e77ef+'|\x20'+_0x3b2b41);}else for(const [_0x39d39e,_0x4fb2df]of _0x236928[_0x2c9379(0x20e)]){_0x21f43d[_0x2c9379(0x24b)]>0x1&&_0x21f43d[_0x2c9379(0x186)]('');for(let _0x465253=_0x39d39e;_0x465253<=_0x4fb2df&&_0x465253<=_0xba4adf[_0x2c9379(0x24b)];_0x465253++){const _0x109a6a=_0xba4adf[_0x465253-0x1];_0x21f43d[_0x2c9379(0x186)](_0x465253+'|\x20'+_0x109a6a);}}_0x21f43d[_0x2c9379(0x186)](_0x2c9379(0x19b)),_0x2f6e34[_0x2c9379(0x186)](_0x21f43d[_0x2c9379(0x244)]('\x0a'));}else _0x2f6e34[_0x2c9379(0x186)](_0x2c9379(0x257)+_0x236928[_0x2c9379(0x210)]+'\x22>\x0aError\x20reading\x20file:\x20'+(_0x5e6ff2?.[_0x2c9379(0x1cb)]||_0x2c9379(0x1b5))+'\x0a</file>');}_0x13c0a2[_0x2c9379(0x186)](_0x2f6e34[_0x2c9379(0x244)]('\x0a\x0a')),_0x571c77=_0x13c0a2['join']('\x0a');const _0x29164b=_0xa35e84['errors']?.['filter'](_0x38389f=>_0x38389f[_0x2c9379(0x1cb)]?.['startsWith']('File\x20read\x20error:'))||[];if(_0x29164b[_0x2c9379(0x24b)]>0x0){const _0x19b263=_0x29164b[_0x2c9379(0x1ef)](_0x420bd7=>_0x420bd7[_0x2c9379(0x1cb)])[_0x2c9379(0x244)](';\x20');reportMorphError({'error_message':_0x19b263,'error_type':_0x2c9379(0x1d7),'context':{'tool':_0x2c9379(0x1de),'repo_path':_0x39e517[_0x2c9379(0x24e)]['repo_path'],'query':_0x39e517[_0x2c9379(0x24e)][_0x2c9379(0x206)],'model':_0x2c9379(0x211),'termination_reason':'completed_with_file_errors','error_count':_0x29164b['length'],'is_timeout':![],'timings':_0xa35e84['timings'],'files_attempted':_0x19731d[_0x2c9379(0x1ef)](_0x395b2e=>({'path':_0x395b2e[_0x2c9379(0x210)],'lines':_0x395b2e[_0x2c9379(0x20e)]})),'tool_calls':_0x1ab702(_0xa35e84[_0x2c9379(0x1a8)]),'messages':_0xa35e84[_0x2c9379(0x1a8)]?.[_0x2c9379(0x1ef)](_0x53163c=>({'role':_0x53163c[_0x2c9379(0x1d6)],'content':_0x53163c[_0x2c9379(0x249)]})),'request_content':{'query':_0x39e517[_0x2c9379(0x24e)][_0x2c9379(0x206)],'repo_path':_0x39e517[_0x2c9379(0x24e)][_0x2c9379(0x198)],'repoRoot':a0_0x276367[_0x2c9379(0x22e)](_0x39e517['data'][_0x2c9379(0x198)]),'model':'morph-warp-grep-v1-1111v0'}},'source':_0x2c9379(0x1af)})[_0x2c9379(0x1aa)](()=>{});}}else{if(_0xa35e84[_0x2c9379(0x175)]==='terminated'&&_0xa35e84[_0x2c9379(0x26f)][_0x2c9379(0x24b)]>0x0){const _0x243588=_0xa35e84['errors'][_0x2c9379(0x1ef)](_0x4555f9=>_0x4555f9[_0x2c9379(0x1cb)])[_0x2c9379(0x244)](';\x20');_0x571c77=_0x2c9379(0x217)+_0x243588;const _0x49a17d=_0x243588[_0x2c9379(0x222)]()[_0x2c9379(0x1ed)](_0x2c9379(0x1e9))||_0x243588[_0x2c9379(0x222)]()[_0x2c9379(0x1ed)](_0x2c9379(0x1cd))||_0x243588[_0x2c9379(0x222)]()['includes']('etimedout'),_0x381a62=_0xa35e84['finish']?.['metadata']?.[_0x2c9379(0x1d5)],_0x1faf87=_0xa35e84['errors'][0x0];reportMorphError({'error_message':_0x243588,'error_type':_0x49a17d?_0x2c9379(0x225):_0x1faf87?.[_0x2c9379(0x1c9)]?.['name']||_0x2c9379(0x193),'context':{'tool':_0x2c9379(0x1de),'repo_path':_0x39e517[_0x2c9379(0x24e)][_0x2c9379(0x198)],'query':_0x39e517['data'][_0x2c9379(0x206)],'model':'morph-warp-grep-v1-1111v0','termination_reason':_0xa35e84[_0x2c9379(0x175)],'error_count':_0xa35e84[_0x2c9379(0x26f)][_0x2c9379(0x24b)],'is_timeout':_0x49a17d,'timings':_0xa35e84['timings'],'files_attempted':_0x381a62?.[_0x2c9379(0x1ef)](_0x2a509d=>({'path':_0x2a509d[_0x2c9379(0x210)],'lines':_0x2a509d[_0x2c9379(0x20e)]})),'tool_calls':_0x1ab702(_0xa35e84[_0x2c9379(0x1a8)]),'messages':_0xa35e84[_0x2c9379(0x1a8)]?.[_0x2c9379(0x1ef)](_0x467693=>({'role':_0x467693['role'],'content':_0x467693[_0x2c9379(0x249)]})),'request_content':{'query':_0x39e517[_0x2c9379(0x24e)][_0x2c9379(0x206)],'repo_path':_0x39e517[_0x2c9379(0x24e)]['repo_path'],'repoRoot':a0_0x276367[_0x2c9379(0x22e)](_0x39e517['data'][_0x2c9379(0x198)]),'model':_0x2c9379(0x211)}},'stack_trace':_0x1faf87?.[_0x2c9379(0x204)]||undefined,'source':_0x2c9379(0x1af)})[_0x2c9379(0x1aa)](()=>{});}else _0x571c77=_0x2c9379(0x256);}return{'content':[{'type':_0x2c9379(0x1d4),'text':_0x571c77}]};}catch(_0x4e75b5){const _0x4db08f=_0x4e75b5 instanceof Error?_0x4e75b5[_0x2c9379(0x1cb)]:String(_0x4e75b5),_0x5ce31f=_0x4db08f['toLowerCase']()[_0x2c9379(0x1ed)](_0x2c9379(0x1e9))||_0x4db08f[_0x2c9379(0x222)]()[_0x2c9379(0x1ed)]('timed\x20out')||_0x4db08f['toLowerCase']()[_0x2c9379(0x1ed)](_0x2c9379(0x1f6))||_0x4e75b5 instanceof Error&&_0x4e75b5['name']==='TimeoutError';return reportMorphError({'error_message':_0x4db08f,'error_type':_0x5ce31f?_0x2c9379(0x225):_0x4e75b5 instanceof Error?_0x4e75b5[_0x2c9379(0x1c9)][_0x2c9379(0x23f)]:_0x2c9379(0x228),'context':{'tool':_0x2c9379(0x1de),'repo_path':_0x39e517[_0x2c9379(0x24e)][_0x2c9379(0x198)],'query':_0x39e517[_0x2c9379(0x24e)][_0x2c9379(0x206)],'model':'morph-warp-grep-v1-1111v0','is_timeout':_0x5ce31f,'exception_phase':_0x2c9379(0x1f8),'request_content':{'query':_0x39e517[_0x2c9379(0x24e)][_0x2c9379(0x206)],'repo_path':_0x39e517[_0x2c9379(0x24e)][_0x2c9379(0x198)],'repoRoot':a0_0x276367[_0x2c9379(0x22e)](_0x39e517[_0x2c9379(0x24e)][_0x2c9379(0x198)]),'model':_0x2c9379(0x211)}},'stack_trace':_0x4e75b5 instanceof Error?_0x4e75b5['stack']:undefined,'source':_0x2c9379(0x1af)})[_0x2c9379(0x1aa)](()=>{}),{'content':[{'type':_0x2c9379(0x1d4),'text':_0x2c9379(0x1b4)+_0x4db08f}],'isError':![]};}}case _0x2c9379(0x1be):{const _0x193a21=CodebaseSearchArgsSchema[_0x2c9379(0x20d)](_0x35f3cf);if(!_0x193a21[_0x2c9379(0x1f2)])return{'content':[{'type':_0x2c9379(0x1d4),'text':_0x2c9379(0x251)+_0x193a21[_0x2c9379(0x22f)]}],'isError':!![]};try{const _0x31e8df=MORPH_API_KEY;if(!_0x31e8df)throw new Error('MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.');const _0x553e88=_0x193a21['data']['targetDirectories'],_0x16520d=await executeCodebaseSearch({'query':_0x193a21[_0x2c9379(0x24e)]['query'],'target_directories':_0x553e88,'limit':_0x193a21['data'][_0x2c9379(0x185)]},{'apiKey':_0x31e8df,'repoId':_0x193a21[_0x2c9379(0x24e)][_0x2c9379(0x212)],'branch':_0x193a21[_0x2c9379(0x24e)]['branch'],'commitHash':_0x193a21[_0x2c9379(0x24e)][_0x2c9379(0x232)],'debug':![]});if(!_0x16520d[_0x2c9379(0x1f2)])return{'content':[{'type':_0x2c9379(0x1d4),'text':'Search\x20failed:\x20'+_0x16520d[_0x2c9379(0x22f)]}],'isError':!![]};const _0xe8acb6=_0x16520d[_0x2c9379(0x19c)][_0x2c9379(0x24b)]===0x0?'No\x20results\x20found\x20for\x20query:\x20\x22'+_0x193a21['data']['query']+'\x22':'Found\x20'+_0x16520d[_0x2c9379(0x19c)]['length']+'\x20results\x20in\x20'+_0x16520d[_0x2c9379(0x214)]['searchTimeMs']+_0x2c9379(0x18f)+_0x16520d[_0x2c9379(0x19c)][_0x2c9379(0x1ef)]((_0x3df90c,_0x3b4e27)=>_0x3b4e27+0x1+'.\x20'+_0x3df90c['filepath']+'\x20('+(_0x3df90c['rerankScore']*0x64)['toFixed'](0x1)+_0x2c9379(0x1b8)+('\x20\x20\x20Lines\x20'+_0x3df90c[_0x2c9379(0x1ae)]+'-'+_0x3df90c['endLine']+'\x0a')+('\x20\x20\x20'+_0x3df90c[_0x2c9379(0x249)][_0x2c9379(0x260)](0x0,0xc8)+(_0x3df90c[_0x2c9379(0x249)][_0x2c9379(0x24b)]>0xc8?'...':'')+'\x0a'))['join']('\x0a');return{'content':[{'type':_0x2c9379(0x1d4),'text':_0xe8acb6}]};}catch(_0x4a150a){const _0xc19b50=_0x4a150a instanceof Error?_0x4a150a[_0x2c9379(0x1cb)]:String(_0x4a150a);return reportMorphError({'error_message':_0xc19b50,'error_type':_0x4a150a instanceof Error?_0x4a150a[_0x2c9379(0x1c9)][_0x2c9379(0x23f)]:_0x2c9379(0x228),'context':{'tool':_0x2c9379(0x1be),'query':_0x193a21[_0x2c9379(0x24e)]['query'],'repo_id':_0x193a21[_0x2c9379(0x24e)][_0x2c9379(0x212)],'target_directories':_0x193a21[_0x2c9379(0x24e)][_0x2c9379(0x1ba)]},'stack_trace':_0x4a150a instanceof Error?_0x4a150a[_0x2c9379(0x204)]:undefined,'source':_0x2c9379(0x1af)})['catch'](()=>{}),{'content':[{'type':_0x2c9379(0x1d4),'text':_0x2c9379(0x217)+_0xc19b50}],'isError':!![]};}}default:throw new Error(_0x2c9379(0x1e5)+_0x592c9f);}}catch(_0x4ba6c6){const _0x2bd9d2=_0x4ba6c6 instanceof Error?_0x4ba6c6[_0x2c9379(0x1cb)]:String(_0x4ba6c6);return reportMorphError({'error_message':_0x2bd9d2,'error_type':_0x4ba6c6 instanceof Error?_0x4ba6c6[_0x2c9379(0x1c9)][_0x2c9379(0x23f)]:_0x2c9379(0x228),'context':{'tool':name,'arguments':args?JSON['stringify'](args)[_0x2c9379(0x260)](0x0,0x1f4):undefined,'mcp_server_version':_0x2c9379(0x237)},'stack_trace':_0x4ba6c6 instanceof Error?_0x4ba6c6[_0x2c9379(0x204)]:undefined,'source':_0x2c9379(0x1af)})[_0x2c9379(0x1aa)](()=>{}),{'content':[{'type':_0x2c9379(0x1d4),'text':_0x2c9379(0x217)+_0x2bd9d2}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x5701ee){const _0x101a46=a0_0x48d522,_0x2e504e=await getValidRootDirectories(_0x5701ee);if(_0x2e504e[_0x101a46(0x24b)]>0x0)allowedDirectories=[..._0x2e504e],console['error'](_0x101a46(0x243)+_0x2e504e[_0x101a46(0x24b)]+_0x101a46(0x1e8));else{console[_0x101a46(0x22f)]('No\x20valid\x20root\x20directories\x20provided\x20by\x20client');if(ENABLE_WORKSPACE_MODE)try{const _0xe65ac8=await detectWorkspaceRoot(WORKSPACE_ROOT);_0xe65ac8&&(allowedDirectories=[_0xe65ac8],console[_0x101a46(0x22f)](_0x101a46(0x22a)+_0xe65ac8));}catch(_0x1d7661){console[_0x101a46(0x22f)](_0x101a46(0x1dd)+_0x1d7661);}}}server[a0_0x48d522(0x269)](RootsListChangedNotificationSchema,async()=>{const _0x20dc7c=a0_0x48d522;try{const _0xf83616=await server[_0x20dc7c(0x250)]();_0xf83616&&_0x20dc7c(0x1c4)in _0xf83616&&await updateAllowedDirectoriesFromRoots(_0xf83616[_0x20dc7c(0x1c4)]);}catch(_0x20f7a0){console[_0x20dc7c(0x22f)](_0x20dc7c(0x1d9),_0x20f7a0 instanceof Error?_0x20f7a0['message']:String(_0x20f7a0));}}),server[a0_0x48d522(0x1fd)]=async()=>{const _0x305e47=a0_0x48d522,_0x5dcedb=server[_0x305e47(0x176)]();if(_0x5dcedb?.['roots'])try{const _0x5a7c0e=await server['listRoots']();_0x5a7c0e&&_0x305e47(0x1c4)in _0x5a7c0e?await updateAllowedDirectoriesFromRoots(_0x5a7c0e[_0x305e47(0x1c4)]):console['error'](_0x305e47(0x23b));}catch(_0x3832e2){console[_0x305e47(0x22f)](_0x305e47(0x19d),_0x3832e2 instanceof Error?_0x3832e2[_0x305e47(0x1cb)]:String(_0x3832e2));}else{if(allowedDirectories[_0x305e47(0x24b)]>0x0)console[_0x305e47(0x22f)](_0x305e47(0x240),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console['error'](_0x305e47(0x207));else throw new Error('Server\x20cannot\x20operate:\x20No\x20allowed\x20directories\x20available.\x20Server\x20was\x20started\x20without\x20command-line\x20directories\x20and\x20client\x20either\x20does\x20not\x20support\x20MCP\x20roots\x20protocol\x20or\x20provided\x20empty\x20roots.\x20Please\x20either:\x201)\x20Start\x20server\x20with\x20directory\x20arguments,\x202)\x20Use\x20a\x20client\x20that\x20supports\x20MCP\x20roots\x20protocol\x20and\x20provides\x20valid\x20root\x20directories,\x20or\x203)\x20Enable\x20workspace\x20mode\x20with\x20ENABLE_WORKSPACE_MODE=true.');}}};async function runServer(){const _0x210daf=a0_0x48d522,_0x28212a=new StdioServerTransport();await server[_0x210daf(0x200)](_0x28212a),console[_0x210daf(0x22f)](_0x210daf(0x241)),allowedDirectories['length']===0x0&&console['error'](_0x210daf(0x1f7));}runServer()[a0_0x48d522(0x1aa)](_0x14768c=>{const _0x54dcfc=a0_0x48d522;console[_0x54dcfc(0x22f)](_0x54dcfc(0x18d),_0x14768c),process[_0x54dcfc(0x183)](0x1);});
|
|
2
|
+
const a0_0x3a1ec5=a0_0x2b2d;(function(_0xbf6812,_0x7c4ab8){const _0xb712ab=a0_0x2b2d,_0xc1e7aa=_0xbf6812();while(!![]){try{const _0x515a67=parseInt(_0xb712ab(0x127))/0x1+parseInt(_0xb712ab(0x132))/0x2*(parseInt(_0xb712ab(0x19c))/0x3)+parseInt(_0xb712ab(0x16c))/0x4*(parseInt(_0xb712ab(0x145))/0x5)+parseInt(_0xb712ab(0x103))/0x6*(parseInt(_0xb712ab(0xb7))/0x7)+parseInt(_0xb712ab(0xc9))/0x8*(-parseInt(_0xb712ab(0x115))/0x9)+parseInt(_0xb712ab(0x14e))/0xa+-parseInt(_0xb712ab(0x90))/0xb;if(_0x515a67===_0x7c4ab8)break;else _0xc1e7aa['push'](_0xc1e7aa['shift']());}catch(_0x4e4ba0){_0xc1e7aa['push'](_0xc1e7aa['shift']());}}}(a0_0x26fd,0x5a929));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_0x1f3199 from'fs/promises';import a0_0x43b453 from'path';import a0_0x234c11 from'os';import{createRequire}from'module';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';function a0_0x26fd(){const _0x53407e=['225279NcOOzk','edit_file','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','mcp-filesystem','-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a','MORPH_WARP_GREP_TIMEOUT','changes','terminationReason','basename','list_directory\x20','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','rerankScore','query','toISOString','Unknown\x20tool:\x20','--api-key=','metadata','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','linesRemoved','11941281oWBnsH','endLine','Max\x20results\x20to\x20return','morph-warp-grep-v1-1111v0','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.','ENOENT','FileReadError','access','morph-v3-fast','toLowerCase','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','error','-\x20Read\x20file\x20`','RipgrepNotAvailable','\x0a</file>','now','--help','default','completed','@morphllm/morphmcp\x20','-\x20Grepped\x20\x27','</file>','-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a','\x0a...\x20(truncated,\x20total:\x20','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','indexOf','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','Parent\x20directory\x20does\x20not\x20exist:\x20','setRequestHandler','.git','resolve','length','object',',\x20modified\x20','source','\x20error(s)','log','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','terminated','1714188ncMzqD','\x20\x20\x20','TimeoutError','Fatal\x20error\x20running\x20server:','**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','min','UnknownError','code','\x20results\x20in\x20','repo_path','targetDirectories','Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for','-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a','name','BinaryFile','19928LLebko','startLine','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','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','includes','\x20chars)','etimedout','homedir','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)','morph-mcp','ENABLED_TOOLS','all','substring','PathError','every','results','grep','connect','GitHub\x20search\x20failed:\x20','roots','[warpgrep_github_search]\x20Done\x20in\x20','argv','stats','branch','Morph\x20Edit\x20Preview','Bearer\x20','https://morphllm.com/api/error-report','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','path','FileNotFound','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','data','text','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','isArray','code_edit','.\x20Path:\x20','github_url','limit','optional','join','finish','cwd','user','oninitialized','payload','[warpgrep_github_search]\x20Failed\x20in\x20','string','ToolException','success','.\x20Changes:\x20','Unknown\x20error','SubToolError','number','RipgrepError','Rules:\x0a','params','12rmEESD','timeout','stack','\x20(new\x20file)','Error\x20running\x20fast\x20context\x20search:\x20','\x20as\x20allowed\x20directory','searchTimeMs','realpath','GitHub\x20repository\x20URL\x20or\x20\x27owner/repo\x27\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27\x20or\x20\x27https://github.com/vercel/next.js\x27)','safeParse','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','added\x20','\x20\x20morph-mcp','inputSchema','slice','tsconfig.json','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','\x27\x20in\x20`','1044zTCSBl','match','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','Enabled\x20tools:\x20','Benefits:\x0a','read','split','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','\x22>\x0aError\x20reading\x20file:\x20','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','ReadError','\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo','push','boolean','env','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','Invalid\x20arguments:\x20','467455iEFDOv','catch','instruction','Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','Failed\x20to\x20request\x20roots\x20from\x20client:','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','Relevant\x20context\x20found:','go.mod','readFile','filepath','2ZtJMQD','errors','startsWith','exit','PWD','message','ms.\x20Success:\x20','dryRun','--version','search_string','0.2.0','constructor','repoId','filter','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','version','Applied','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','linesModified','2544165AgdnOf','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','getClientCapabilities','🎯\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','messages','\x20-\x20','commitHash','\x0aExamples:','2043630cvFttg','describe','timings','toFixed','warpgrep_codebase_search','ENABLE_WORKSPACE_MODE','\x20\x20\x20Lines\x20','A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','../package.json','unknown','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','trim','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','For\x20deletions:\x0a','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','files','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','MORPH_API_URL','No\x20results\x20found\x20for\x20query:\x20\x22','\x0aOptions:','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','Found\x20','warpgrep_github_search','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','application/json','\x20for:\x20\x22','WORKSPACE_ROOT','4fLtZHf','pyproject.toml','has',',\x20removed\x20','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','Error:\x20','Search\x20failed:\x20','codebase_search','<file\x20path=\x22','content','-\x20Listed\x20directory\x20`','stat','Fallback:\x20Using\x20workspace\x20root\x20','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','sk-','Preview\x20changes\x20without\x20applying\x20them.','warn','timed\x20out','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','Warning:\x20','lines','%\x20match)\x0a','.vscode','stringify','map','package.json','WarpGrepError','Warning:\x20Workspace\x20fallback\x20failed:\x20','sep','assistant','runWarpGrep_call','ms:','File\x20read\x20error:','grep\x20\x27','Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','Natural\x20language\x20query\x20to\x20search\x20for\x20code','Repository\x20identifier','\x20valid\x20directories','utf-8','Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20','ms:\x0a\x0a','Workspace\x20mode\x20enabled:\x20Using\x20','dirname','role','Error\x20accessing\x20directory\x20'];a0_0x26fd=function(){return _0x53407e;};return a0_0x26fd();}import{getValidRootDirectories}from'./roots-utils.js';import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider,GITHUB_SEARCH_TOOL_NAME,GITHUB_SEARCH_DESCRIPTION}from'@morphllm/morphsdk/tools/warp-grep';import{WarpGrepClient,formatResult}from'@morphllm/morphsdk/tools/warp-grep/client';import{executeCodebaseSearch}from'@morphllm/morphsdk/tools/codebase-search';import a0_0x31caeb from'axios';function fixPathRepetition(_0x1832c4){const _0x5a48c7=a0_0x2b2d,_0x4028fa=_0x1832c4[_0x5a48c7(0x11b)](a0_0x43b453[_0x5a48c7(0x189)])[_0x5a48c7(0x13f)](Boolean);if(_0x4028fa[_0x5a48c7(0xaf)]<0x2)return null;for(let _0x76a232=Math['floor'](_0x4028fa['length']/0x2);_0x76a232>=0x1;_0x76a232--){for(let _0x32c173=0x0;_0x32c173<=_0x4028fa[_0x5a48c7(0xaf)]-0x2*_0x76a232;_0x32c173++){const _0xefe60=_0x4028fa[_0x5a48c7(0x111)](_0x32c173,_0x32c173+_0x76a232),_0x1c3e54=_0x4028fa['slice'](_0x32c173+_0x76a232,_0x32c173+0x2*_0x76a232);if(_0xefe60[_0x5a48c7(0xd8)]((_0x4e4851,_0x3257b8)=>_0x4e4851===_0x1c3e54[_0x3257b8])){const _0x360370=[..._0x4028fa['slice'](0x0,_0x32c173),..._0x4028fa[_0x5a48c7(0x111)](_0x32c173+_0x76a232)];return a0_0x43b453[_0x5a48c7(0x189)]+_0x360370[_0x5a48c7(0xf2)](a0_0x43b453[_0x5a48c7(0x189)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x211718=a0_0x2b2d;try{const _0x418fb6=require(_0x211718(0x158));return _0x418fb6[_0x211718(0x141)]??_0x211718(0x159);}catch(_0x798712){return console['error'](_0x211718(0x15f),_0x798712),_0x211718(0x159);}}function a0_0x2b2d(_0x2d47d6,_0x4521b8){_0x2d47d6=_0x2d47d6-0x85;const _0x26fde2=a0_0x26fd();let _0x2b2dee=_0x26fde2[_0x2d47d6];return _0x2b2dee;}function printHelp(){const _0x71cbdd=a0_0x2b2d;console[_0x71cbdd(0xb4)](_0x71cbdd(0xa3)+getPackageVersion()),console['log'](_0x71cbdd(0x8e)),console[_0x71cbdd(0xb4)](_0x71cbdd(0x164)),console[_0x71cbdd(0xb4)](_0x71cbdd(0xd2)),console[_0x71cbdd(0xb4)](_0x71cbdd(0x9a)),console['log'](_0x71cbdd(0x15a)),console[_0x71cbdd(0xb4)](_0x71cbdd(0x14d)),console[_0x71cbdd(0xb4)](_0x71cbdd(0x10f)),console['log'](_0x71cbdd(0x120));}const cliArgs=process[a0_0x3a1ec5(0xdf)][a0_0x3a1ec5(0x111)](0x2),VERSION_FLAGS=new Set([a0_0x3a1ec5(0x13a),'-v','-V']),HELP_FLAGS=new Set([a0_0x3a1ec5(0xa0),'-h']);cliArgs['some'](_0x13b1ee=>VERSION_FLAGS[a0_0x3a1ec5(0x16e)](_0x13b1ee))&&(console['log'](a0_0x3a1ec5(0xa3)+getPackageVersion()),process[a0_0x3a1ec5(0x135)](0x0));cliArgs['some'](_0x1b62e8=>HELP_FLAGS[a0_0x3a1ec5(0x16e)](_0x1b62e8))&&(printHelp(),process[a0_0x3a1ec5(0x135)](0x0));function getCliArg(_0x4b2b3b){const _0x4152b7=a0_0x3a1ec5;for(let _0x8f1794=0x0;_0x8f1794<cliArgs[_0x4152b7(0xaf)];_0x8f1794++){const _0x350552=cliArgs[_0x8f1794];if(_0x350552['startsWith']('--'+_0x4b2b3b+'='))return _0x350552[_0x4152b7(0x111)](('--'+_0x4b2b3b+'=')[_0x4152b7(0xaf)]);if(_0x350552==='--'+_0x4b2b3b&&_0x8f1794+0x1<cliArgs[_0x4152b7(0xaf)])return cliArgs[_0x8f1794+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs[a0_0x3a1ec5(0xaf)];i++){const arg=cliArgs[i];if(VERSION_FLAGS[a0_0x3a1ec5(0x16e)](arg)||HELP_FLAGS[a0_0x3a1ec5(0x16e)](arg))continue;if(arg[a0_0x3a1ec5(0x134)](a0_0x3a1ec5(0x8c)))continue;if(arg==='--api-key'){i++;continue;}args[a0_0x3a1ec5(0x121)](arg);}const ALL_TOOLS=[a0_0x3a1ec5(0x19d),a0_0x3a1ec5(0x152),a0_0x3a1ec5(0x167),a0_0x3a1ec5(0x173)],DEFAULT_TOOLS=[a0_0x3a1ec5(0x19d),a0_0x3a1ec5(0x152)],ENABLED_TOOLS=process[a0_0x3a1ec5(0x123)]['ENABLED_TOOLS']?process[a0_0x3a1ec5(0x123)]['ENABLED_TOOLS']===a0_0x3a1ec5(0xd5)?ALL_TOOLS:process[a0_0x3a1ec5(0x123)][a0_0x3a1ec5(0xd4)]['split'](',')[a0_0x3a1ec5(0x185)](_0x3ffc58=>_0x3ffc58[a0_0x3a1ec5(0x15b)]()):DEFAULT_TOOLS;console[a0_0x3a1ec5(0x9b)](a0_0x3a1ec5(0x118)+ENABLED_TOOLS[a0_0x3a1ec5(0xf2)](',\x20'));const WORKSPACE_ROOT=process['env'][a0_0x3a1ec5(0x16b)]||process['env'][a0_0x3a1ec5(0x136)]||process[a0_0x3a1ec5(0xf4)](),ENABLE_WORKSPACE_MODE=process[a0_0x3a1ec5(0x123)][a0_0x3a1ec5(0x153)]!=='false',MORPH_API_KEY=getCliArg('api-key')??process[a0_0x3a1ec5(0x123)]['MORPH_API_KEY'],MORPH_API_URL=process[a0_0x3a1ec5(0x123)][a0_0x3a1ec5(0x162)],MORPH_WARP_GREP_TIMEOUT=process[a0_0x3a1ec5(0x123)][a0_0x3a1ec5(0x1a1)]?parseInt(process[a0_0x3a1ec5(0x123)][a0_0x3a1ec5(0x1a1)],0xa):undefined;MORPH_API_KEY&&!MORPH_API_KEY[a0_0x3a1ec5(0x134)](a0_0x3a1ec5(0x17b))&&!MORPH_API_KEY['startsWith']('morph-')&&console[a0_0x3a1ec5(0x9b)](a0_0x3a1ec5(0x12b));async function reportMorphError(_0x1031d8){const _0x89900e=a0_0x3a1ec5;try{await a0_0x31caeb['post'](_0x89900e(0xe4),{..._0x1031d8,'timestamp':new Date()[_0x89900e(0x8a)](),'source':_0x1031d8[_0x89900e(0xb2)]||_0x89900e(0x19f)},{'timeout':0x1388,'headers':{'Content-Type':_0x89900e(0x169),'Authorization':_0x89900e(0xe3)+MORPH_API_KEY}});}catch{}}args[a0_0x3a1ec5(0xaf)]===0x0&&!ENABLE_WORKSPACE_MODE&&(console['error'](a0_0x3a1ec5(0x15c)),console[a0_0x3a1ec5(0x9b)]('Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:'),console[a0_0x3a1ec5(0x9b)](a0_0x3a1ec5(0x124)),console[a0_0x3a1ec5(0x9b)](a0_0x3a1ec5(0x17a)),console[a0_0x3a1ec5(0x9b)](a0_0x3a1ec5(0x161)),console[a0_0x3a1ec5(0x9b)](a0_0x3a1ec5(0xc5)));function normalizePath(_0x239590){return a0_0x43b453['normalize'](_0x239590);}function expandHome(_0x28653a){const _0x259bd2=a0_0x3a1ec5;if(_0x28653a[_0x259bd2(0x134)]('~/')||_0x28653a==='~')return a0_0x43b453[_0x259bd2(0xf2)](a0_0x234c11[_0x259bd2(0xd0)](),_0x28653a[_0x259bd2(0x111)](0x1));return _0x28653a;}let allowedDirectories=await Promise['all'](args[a0_0x3a1ec5(0x185)](async _0x3bf6ff=>{const _0x56ddf0=a0_0x3a1ec5,_0x241495=expandHome(_0x3bf6ff),_0x188035=a0_0x43b453['resolve'](_0x241495);try{const _0x117ca8=await a0_0x1f3199[_0x56ddf0(0x10a)](_0x188035);return normalizePath(_0x117ca8);}catch(_0x3f6170){return normalizePath(_0x188035);}}));if(ENABLE_WORKSPACE_MODE&&args['length']===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x3a1ec5(0x121)](workspaceDir),console['error'](a0_0x3a1ec5(0x198)+workspaceDir+a0_0x3a1ec5(0x108)));}catch(a0_0x5a76c8){console[a0_0x3a1ec5(0x9b)]('Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20'+a0_0x5a76c8);}async function detectWorkspaceRoot(_0x229532){const _0x39bafd=a0_0x3a1ec5;let _0x587b8a=a0_0x43b453['resolve'](_0x229532);const _0x55e145=[_0x39bafd(0xad),_0x39bafd(0x183),_0x39bafd(0x186),'Cargo.toml',_0x39bafd(0x16d),_0x39bafd(0x12f),'.cursor',_0x39bafd(0x112),'composer.json'];while(_0x587b8a!==a0_0x43b453['dirname'](_0x587b8a)){for(const _0x21aaf6 of _0x55e145){const _0x559b26=a0_0x43b453[_0x39bafd(0xf2)](_0x587b8a,_0x21aaf6);try{return await a0_0x1f3199[_0x39bafd(0x97)](_0x559b26),normalizePath(_0x587b8a);}catch{}}_0x587b8a=a0_0x43b453[_0x39bafd(0x199)](_0x587b8a);}return normalizePath(_0x229532);}await Promise[a0_0x3a1ec5(0xd5)](args[a0_0x3a1ec5(0x185)](async _0x239423=>{const _0x29d7ad=a0_0x3a1ec5;try{const _0x46a098=await a0_0x1f3199[_0x29d7ad(0x177)](expandHome(_0x239423));!_0x46a098['isDirectory']()&&(console[_0x29d7ad(0x9b)](_0x29d7ad(0x171)+_0x239423+'\x20is\x20not\x20a\x20directory'),process['exit'](0x1));}catch(_0x3a004d){console[_0x29d7ad(0x9b)](_0x29d7ad(0x19b)+_0x239423+':',_0x3a004d),process[_0x29d7ad(0x135)](0x1);}}));async function validatePath(_0xf11971){const _0x5f10dc=a0_0x3a1ec5,_0x380b58=expandHome(_0xf11971),_0x2fe3b3=a0_0x43b453[_0x5f10dc(0xae)](_0x380b58);try{const _0x34255c=await a0_0x1f3199[_0x5f10dc(0x10a)](_0x2fe3b3);return _0x34255c;}catch(_0x278951){if(_0x278951[_0x5f10dc(0xbf)]===_0x5f10dc(0x95)){const _0x3e0ec4=a0_0x43b453[_0x5f10dc(0x199)](_0x2fe3b3);try{const _0x6c40f3=await a0_0x1f3199[_0x5f10dc(0x10a)](_0x3e0ec4);return a0_0x43b453['join'](_0x6c40f3,a0_0x43b453[_0x5f10dc(0x85)](_0x2fe3b3));}catch{throw new Error(_0x5f10dc(0xab)+_0x3e0ec4);}}throw _0x278951;}}const MorphEditFileArgsSchema=z[a0_0x3a1ec5(0xb0)]({'path':z[a0_0x3a1ec5(0xf9)](),'code_edit':z['string']()[a0_0x3a1ec5(0x14f)](a0_0x3a1ec5(0x113)),'instruction':z[a0_0x3a1ec5(0xf9)]()[a0_0x3a1ec5(0x14f)](a0_0x3a1ec5(0xa8)),'dryRun':z[a0_0x3a1ec5(0x122)]()[a0_0x3a1ec5(0xa1)](![])[a0_0x3a1ec5(0x14f)](a0_0x3a1ec5(0x17c))}),WarpGrepArgsSchema=z['object']({'search_string':z[a0_0x3a1ec5(0xf9)]()['describe'](a0_0x3a1ec5(0xc3)),'repo_path':z['string']()[a0_0x3a1ec5(0x14f)](a0_0x3a1ec5(0xcc))}),WarpGrepGitHubArgsSchema=z[a0_0x3a1ec5(0xb0)]({'search_string':z['string']()['describe']('Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for'),'github_url':z[a0_0x3a1ec5(0xf9)]()[a0_0x3a1ec5(0x14f)](a0_0x3a1ec5(0x10b)),'branch':z[a0_0x3a1ec5(0xf9)]()[a0_0x3a1ec5(0xf1)]()[a0_0x3a1ec5(0x14f)](a0_0x3a1ec5(0x12a))}),CodebaseSearchArgsSchema=z[a0_0x3a1ec5(0xb0)]({'query':z[a0_0x3a1ec5(0xf9)]()['describe'](a0_0x3a1ec5(0x192)),'repoId':z[a0_0x3a1ec5(0xf9)]()[a0_0x3a1ec5(0x14f)](a0_0x3a1ec5(0x193)),'branch':z['string']()[a0_0x3a1ec5(0xf1)]()['describe'](a0_0x3a1ec5(0x168)),'commitHash':z[a0_0x3a1ec5(0xf9)]()[a0_0x3a1ec5(0xf1)]()['describe']('Specific\x20commit\x20hash\x20to\x20search'),'targetDirectories':z['array'](z[a0_0x3a1ec5(0xf9)]())[a0_0x3a1ec5(0xa1)]([])[a0_0x3a1ec5(0x14f)](a0_0x3a1ec5(0x11e)),'limit':z[a0_0x3a1ec5(0xff)]()['optional']()[a0_0x3a1ec5(0xa1)](0xa)[a0_0x3a1ec5(0x14f)](a0_0x3a1ec5(0x92))}),server=new Server({'name':a0_0x3a1ec5(0xd3),'version':a0_0x3a1ec5(0x13c)},{'capabilities':{'tools':{}}});server[a0_0x3a1ec5(0xac)](ListToolsRequestSchema,async()=>{const _0x38a727=a0_0x3a1ec5,_0x571e8a=[{'name':_0x38a727(0x19d),'description':_0x38a727(0x179)+_0x38a727(0x149)+_0x38a727(0x156)+_0x38a727(0x190)+_0x38a727(0x119)+'-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a'+_0x38a727(0x140)+_0x38a727(0x191)+_0x38a727(0x143)+_0x38a727(0x170)+_0x38a727(0x125)+_0x38a727(0xe8)+_0x38a727(0x15d)+_0x38a727(0x165)+'-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a'+_0x38a727(0x101)+'-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a'+_0x38a727(0x146)+_0x38a727(0x17f)+'-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a'+'-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a'+_0x38a727(0xbc)+_0x38a727(0x10d),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':'warpgrep_codebase_search','description':_0x38a727(0x155)+_0x38a727(0x11c)+'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'+'Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20'+'You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.'+'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'+_0x38a727(0x19e)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':GITHUB_SEARCH_TOOL_NAME,'description':GITHUB_SEARCH_DESCRIPTION,'inputSchema':zodToJsonSchema(WarpGrepGitHubArgsSchema),'requiresApiKey':!![]},{'name':_0x38a727(0x173),'description':_0x38a727(0xbb)+'⚡\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a'+_0x38a727(0x148)+_0x38a727(0x119)+_0x38a727(0xc4)+_0x38a727(0x1a0)+_0x38a727(0xa6)+_0x38a727(0xc6)+_0x38a727(0x18f)+_0x38a727(0x196)+_0x38a727(0xb5),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x18dfa6=_0x571e8a[_0x38a727(0x13f)](_0x85cc6a=>{const _0x538b1a=_0x38a727;if(!ENABLED_TOOLS[_0x538b1a(0xcd)](_0x85cc6a[_0x538b1a(0xc7)]))return![];if('requiresApiKey'in _0x85cc6a&&_0x85cc6a['requiresApiKey']&&!MORPH_API_KEY)return console[_0x538b1a(0x9b)]('Warning:\x20'+_0x85cc6a['name']+_0x538b1a(0xeb)),![];return!![];});return{'tools':_0x18dfa6[_0x38a727(0x185)](_0x4e75df=>({'name':_0x4e75df['name'],'description':_0x4e75df['description'],'inputSchema':_0x4e75df[_0x38a727(0x110)]}))};}),server[a0_0x3a1ec5(0xac)](CallToolRequestSchema,async _0x5c7384=>{const _0x4e6dd6=a0_0x3a1ec5;try{const {name:_0x24e3c8,arguments:_0x1d4119}=_0x5c7384[_0x4e6dd6(0x102)];switch(_0x24e3c8){case _0x4e6dd6(0x19d):{const _0x6b7472=MorphEditFileArgsSchema[_0x4e6dd6(0x10c)](_0x1d4119);if(!_0x6b7472[_0x4e6dd6(0xfb)])throw new Error(_0x4e6dd6(0xe5)+_0x6b7472[_0x4e6dd6(0x9b)]);const _0x2bd5d3=await validatePath(_0x6b7472[_0x4e6dd6(0xe9)][_0x4e6dd6(0xe6)]);let _0x6b3308=null,_0x443714=!![],_0x311f4b=null;try{_0x6b3308=await a0_0x1f3199[_0x4e6dd6(0x130)](_0x2bd5d3,_0x4e6dd6(0x195));}catch(_0x4f17ea){const _0x23d76a=_0x4f17ea[_0x4e6dd6(0xbf)];_0x23d76a===_0x4e6dd6(0x95)?(_0x443714=![],_0x6b3308=''):(_0x311f4b='Failed\x20to\x20read\x20file:\x20'+(_0x23d76a||_0x4e6dd6(0x159))+_0x4e6dd6(0x14b)+(_0x4f17ea instanceof Error?_0x4f17ea[_0x4e6dd6(0x137)]:String(_0x4f17ea)),console['error'](_0x4e6dd6(0x180)+_0x311f4b));}let _0x29ccda;try{const _0x497cd0=MORPH_API_KEY;if(!_0x497cd0)throw new Error('MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.');const _0x5db368=a0_0x43b453[_0x4e6dd6(0x199)](_0x2bd5d3),_0xd638b1=a0_0x43b453['basename'](_0x2bd5d3),_0x446dc0=await executeEditFile({'target_filepath':_0xd638b1,'code_edit':_0x6b7472[_0x4e6dd6(0xe9)][_0x4e6dd6(0xed)],'instructions':_0x6b7472['data'][_0x4e6dd6(0x129)]},{'morphApiKey':_0x497cd0,'morphApiUrl':MORPH_API_URL,'baseDir':_0x5db368,'autoWrite':!_0x6b7472[_0x4e6dd6(0xe9)][_0x4e6dd6(0x139)],'generateUdiff':![],'debug':![]});_0x29ccda=_0x446dc0['completionId'];if(!_0x446dc0[_0x4e6dd6(0xfb)])throw new Error(_0x446dc0[_0x4e6dd6(0x9b)]||'Morph\x20FastApply\x20failed\x20without\x20error\x20message');const _0x1823ec=_0x446dc0[_0x4e6dd6(0x1a2)],_0x15bad7=_0x4e6dd6(0x10e)+_0x1823ec['linesAdded']+_0x4e6dd6(0x16f)+_0x1823ec[_0x4e6dd6(0x8f)]+_0x4e6dd6(0xb1)+_0x1823ec[_0x4e6dd6(0x144)];if(_0x6b7472[_0x4e6dd6(0xe9)][_0x4e6dd6(0x139)])return{'content':[{'type':_0x4e6dd6(0xea),'text':_0x4e6dd6(0xe2)+(_0x443714?'':_0x4e6dd6(0x106))+':\x20'+_0x6b7472['data'][_0x4e6dd6(0x129)]+'.\x20Changes:\x20'+_0x15bad7+'.\x20Path:\x20'+_0x6b7472[_0x4e6dd6(0xe9)][_0x4e6dd6(0xe6)]+'.'}]};return{'content':[{'type':_0x4e6dd6(0xea),'text':'Morph\x20Edit\x20'+(_0x443714?_0x4e6dd6(0x142):'Created\x20File')+':\x20'+_0x6b7472['data'][_0x4e6dd6(0x129)]+_0x4e6dd6(0xfc)+_0x15bad7+_0x4e6dd6(0xee)+_0x6b7472[_0x4e6dd6(0xe9)][_0x4e6dd6(0xe6)]+'.'}]};}catch(_0x360f30){const _0x207030=_0x360f30 instanceof Error?_0x360f30[_0x4e6dd6(0x137)]:String(_0x360f30);return reportMorphError({'error_message':_0x207030,'error_type':_0x360f30 instanceof Error?_0x360f30['constructor']['name']:_0x4e6dd6(0xbe),'context':{'tool':_0x4e6dd6(0x19d),'completion_id':_0x29ccda,'file_path':_0x6b7472[_0x4e6dd6(0xe9)][_0x4e6dd6(0xe6)],'validated_path':_0x2bd5d3,'instruction':_0x6b7472[_0x4e6dd6(0xe9)][_0x4e6dd6(0x129)],'model':_0x4e6dd6(0x98),'dry_run':_0x6b7472['data'][_0x4e6dd6(0x139)],'file_exists':_0x443714,'file_read_error':_0x311f4b,'file_readable':_0x6b3308!==null,'request_content':{'path':_0x6b7472[_0x4e6dd6(0xe9)][_0x4e6dd6(0xe6)],'code_edit':_0x6b7472[_0x4e6dd6(0xe9)][_0x4e6dd6(0xed)],'instruction':_0x6b7472[_0x4e6dd6(0xe9)][_0x4e6dd6(0x129)],'original_code':_0x6b3308!==null?_0x6b3308[_0x4e6dd6(0xaf)]>0xc350?_0x6b3308['substring'](0x0,0xc350)+_0x4e6dd6(0xa7)+_0x6b3308[_0x4e6dd6(0xaf)]+_0x4e6dd6(0xce):_0x6b3308:'[could\x20not\x20read\x20file:\x20'+(_0x311f4b||'unknown\x20error')+']','original_code_length':_0x6b3308?.['length']??0x0,'model':_0x4e6dd6(0x98),'dry_run':_0x6b7472[_0x4e6dd6(0xe9)][_0x4e6dd6(0x139)]}},'stack_trace':_0x360f30 instanceof Error?_0x360f30[_0x4e6dd6(0x105)]:undefined,'source':_0x4e6dd6(0x19f)})['catch'](()=>{}),{'content':[{'type':_0x4e6dd6(0xea),'text':'❌\x20Morph\x20Edit\x20Failed:\x20'+_0x207030}],'isError':!![]};}}case _0x4e6dd6(0x152):{const _0x429ab7=WarpGrepArgsSchema[_0x4e6dd6(0x10c)](_0x1d4119);if(!_0x429ab7[_0x4e6dd6(0xfb)])return{'content':[{'type':_0x4e6dd6(0xea),'text':'Invalid\x20arguments:\x20'+_0x429ab7['error']}],'isError':!![]};const _0x488806=_0xa1245d=>{const _0x1c5760=_0x4e6dd6,_0x74cb30=[];for(const _0x1102f7 of _0xa1245d||[]){const _0x15bf1b=_0x1102f7[_0x1c5760(0x19a)],_0x830479=_0x1102f7[_0x1c5760(0x175)];if(_0x15bf1b===_0x1c5760(0x18a)&&_0x830479){const _0x443134=_0x830479['split']('\x0a')['filter'](_0x403d97=>_0x403d97[_0x1c5760(0x15b)]());for(const _0x3f112f of _0x443134){const _0x3fd58f=_0x3f112f[_0x1c5760(0x116)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x3fd58f){_0x74cb30['push'](_0x1c5760(0x18e)+_0x3fd58f[0x1]+'\x27\x20'+_0x3fd58f[0x2]);continue;}const _0x485ce7=_0x3f112f[_0x1c5760(0x116)](/^read\s+(.+)$/);if(_0x485ce7){_0x74cb30[_0x1c5760(0x121)]('read\x20'+_0x485ce7[0x1]);continue;}const _0x579bfe=_0x3f112f['match'](/^list_directory\s+(.+)$/);if(_0x579bfe){_0x74cb30[_0x1c5760(0x121)](_0x1c5760(0x86)+_0x579bfe[0x1]);continue;}}}}return _0x74cb30;},_0x2dfbec=_0x237bc9=>{const _0x23ad93=_0x4e6dd6,_0x37b582=[];if(!_0x237bc9||!Array[_0x23ad93(0xec)](_0x237bc9))return _0x37b582;const _0x1f9d79=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':_0x23ad93(0xe7),'tool':_0x23ad93(0x11a)},{'pattern':/\[PATH ERROR\]/,'error_type':_0x23ad93(0xd7),'tool':'read'},{'pattern':/\[READ ERROR\]/,'error_type':_0x23ad93(0x11f),'tool':_0x23ad93(0x11a)},{'pattern':/\[UNREADABLE FILE\]/,'error_type':_0x23ad93(0xc8),'tool':_0x23ad93(0x11a)},{'pattern':/\[RIPGREP ERROR\]/,'error_type':_0x23ad93(0x100),'tool':_0x23ad93(0xda)},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x23ad93(0x9d),'tool':_0x23ad93(0xda)},{'pattern':/\[BINARY FILE\]/,'error_type':_0x23ad93(0xc8),'tool':_0x23ad93(0x11a)},{'pattern':/\[SYMLINK\]/,'error_type':'SymlinkError','tool':_0x23ad93(0x11a)},{'pattern':/not a text file/,'error_type':_0x23ad93(0xc8),'tool':_0x23ad93(0x11a)},{'pattern':/symbolic link/,'error_type':'SymlinkError','tool':_0x23ad93(0x11a)},{'pattern':/Error reading file:/,'error_type':'ReadError','tool':_0x23ad93(0x11a)},{'pattern':/status="error"/,'error_type':_0x23ad93(0xfa),'tool':_0x23ad93(0x159)}];let _0xd61132=0x0;for(const _0x37cc08 of _0x237bc9){if(_0x37cc08[_0x23ad93(0x19a)]===_0x23ad93(0xf5)){_0xd61132++;const _0xc058f0=_0x37cc08[_0x23ad93(0x175)];if(!_0xc058f0||typeof _0xc058f0!=='string')continue;for(const {pattern:_0x39f10d,error_type:_0x1193fd,tool:_0x463f73}of _0x1f9d79){const _0x3637d2=_0xc058f0[_0x23ad93(0x116)](new RegExp(_0x39f10d[_0x23ad93(0xb2)],'g'));if(_0x3637d2)for(const _0x1c801d of _0x3637d2){const _0x3e31a4=_0xc058f0[_0x23ad93(0xa9)](_0x1c801d),_0x1d3595=_0xc058f0[_0x23ad93(0xd6)](_0x3e31a4,Math[_0x23ad93(0xbd)](_0x3e31a4+0xc8,_0xc058f0[_0x23ad93(0xaf)]));_0x37b582[_0x23ad93(0x121)]({'tool':_0x463f73,'error_type':_0x1193fd,'error_message':_0x1d3595['split']('\x0a')[0x0],'turn':_0xd61132});}}}}return _0x37b582;};try{const _0x11d593=a0_0x43b453['resolve'](_0x429ab7[_0x4e6dd6(0xe9)][_0x4e6dd6(0xc1)]),_0x5c705c=new LocalRipgrepProvider(_0x11d593),_0x20f6ab=await runWarpGrep({'query':_0x429ab7['data'][_0x4e6dd6(0x13b)],'repoRoot':_0x11d593,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x5c705c}),_0x11dee1=_0x2dfbec(_0x20f6ab['messages']);_0x11dee1[_0x4e6dd6(0xaf)]>0x0&&reportMorphError({'error_message':'WarpGrep\x20sub-tool\x20errors:\x20'+_0x11dee1['length']+_0x4e6dd6(0xb3),'error_type':_0x4e6dd6(0xfe),'level':_0x4e6dd6(0x17d),'tool':_0x4e6dd6(0x152),'context':{'repo_path':_0x429ab7[_0x4e6dd6(0xe9)]['repo_path'],'query':_0x429ab7[_0x4e6dd6(0xe9)]['search_string'],'model':_0x4e6dd6(0x93),'termination_reason':_0x20f6ab[_0x4e6dd6(0x1a3)],'sub_tool_errors':_0x11dee1,'timings':_0x20f6ab[_0x4e6dd6(0x150)],'tool_calls':_0x488806(_0x20f6ab['messages']),'messages':_0x20f6ab[_0x4e6dd6(0x14a)]?.[_0x4e6dd6(0x185)](_0x168c8f=>({'role':_0x168c8f[_0x4e6dd6(0x19a)],'content':_0x168c8f[_0x4e6dd6(0x175)]}))},'source':_0x4e6dd6(0x19f)})[_0x4e6dd6(0x128)](()=>{});let _0x54d9e9='';if(_0x20f6ab[_0x4e6dd6(0x1a3)]===_0x4e6dd6(0xa2)&&_0x20f6ab[_0x4e6dd6(0xf3)]?.['metadata']?.[_0x4e6dd6(0x160)]){const _0x2c606d=_0x20f6ab['finish'][_0x4e6dd6(0x8d)][_0x4e6dd6(0x160)];if(_0x2c606d['length']===0x0)return _0x54d9e9=_0x20f6ab['finish'][_0x4e6dd6(0xf7)]||'No\x20relevant\x20code\x20found\x20for\x20the\x20query.',{'content':[{'type':_0x4e6dd6(0xea),'text':_0x54d9e9}]};const _0x4024c6=[],_0x2d76e6=['Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:'];for(const _0x5309e7 of _0x20f6ab[_0x4e6dd6(0x14a)]){const _0x3b8757=_0x5309e7[_0x4e6dd6(0x19a)],_0x213f9a=_0x5309e7[_0x4e6dd6(0x175)];if(_0x3b8757==='assistant'&&_0x213f9a){const _0x4aa24c=_0x213f9a[_0x4e6dd6(0x11b)]('\x0a')['filter'](_0x56ad4a=>_0x56ad4a['trim']());for(const _0x3f0cd2 of _0x4aa24c){const _0x544ee3=_0x3f0cd2[_0x4e6dd6(0x116)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x544ee3){_0x2d76e6[_0x4e6dd6(0x121)](_0x4e6dd6(0xa4)+_0x544ee3[0x1]+_0x4e6dd6(0x114)+_0x544ee3[0x2]+'`');continue;}const _0x591cc4=_0x3f0cd2[_0x4e6dd6(0x116)](/^read\s+(.+)$/);if(_0x591cc4){_0x2d76e6[_0x4e6dd6(0x121)](_0x4e6dd6(0x9c)+_0x591cc4[0x1]+'`');continue;}const _0x28d383=_0x3f0cd2[_0x4e6dd6(0x116)](/^list_directory\s+(.+)$/);if(_0x28d383){_0x2d76e6[_0x4e6dd6(0x121)](_0x4e6dd6(0x176)+_0x28d383[0x1]+'`');continue;}}}}_0x4024c6[_0x4e6dd6(0x121)](_0x2d76e6[_0x4e6dd6(0xf2)]('\x0a'));const _0x4e2458=['',_0x4e6dd6(0x12e)];for(const _0x5d34f7 of _0x2c606d){if(_0x5d34f7['lines']==='*')_0x4e2458[_0x4e6dd6(0x121)]('-\x20'+_0x5d34f7[_0x4e6dd6(0xe6)]+':*');else{if(Array[_0x4e6dd6(0xec)](_0x5d34f7[_0x4e6dd6(0x181)])){const _0x52179d=_0x5d34f7[_0x4e6dd6(0x181)][_0x4e6dd6(0x185)](([_0xd99b36,_0x169a09])=>{if(_0xd99b36===_0x169a09)return''+_0xd99b36;return _0xd99b36+'-'+_0x169a09;});_0x4e2458[_0x4e6dd6(0x121)]('-\x20'+_0x5d34f7['path']+':'+_0x52179d[_0x4e6dd6(0xf2)](','));}else _0x4e2458[_0x4e6dd6(0x121)]('-\x20'+_0x5d34f7[_0x4e6dd6(0xe6)]+':*');}}_0x4e2458[_0x4e6dd6(0x121)](''),_0x4024c6[_0x4e6dd6(0x121)](_0x4e2458[_0x4e6dd6(0xf2)]('\x0a')),_0x4024c6[_0x4e6dd6(0x121)]('Here\x20is\x20the\x20content\x20of\x20files:\x0a');const _0x1c77e7=[];for(const _0x4634a5 of _0x2c606d){let _0x2a5bf8=a0_0x43b453[_0x4e6dd6(0xae)](_0x429ab7['data']['repo_path'],_0x4634a5[_0x4e6dd6(0xe6)]),_0x1e9aa3=null,_0x3c1772=null;try{_0x1e9aa3=await a0_0x1f3199['readFile'](_0x2a5bf8,{'encoding':'utf-8'});}catch(_0x1b07b7){const _0x1003e1=fixPathRepetition(_0x2a5bf8);if(_0x1003e1)try{_0x1e9aa3=await a0_0x1f3199['readFile'](_0x1003e1,{'encoding':'utf-8'}),_0x2a5bf8=_0x1003e1;}catch{_0x3c1772=_0x1b07b7 instanceof Error?_0x1b07b7:new Error(String(_0x1b07b7));}else _0x3c1772=_0x1b07b7 instanceof Error?_0x1b07b7:new Error(String(_0x1b07b7));}if(_0x1e9aa3!==null){const _0x46cc48=_0x1e9aa3[_0x4e6dd6(0x11b)](/\r?\n/),_0x1a6dbc=['<file\x20path=\x22'+_0x4634a5['path']+'\x22>'];if(_0x4634a5['lines']==='*'||!Array[_0x4e6dd6(0xec)](_0x4634a5['lines']))for(let _0x4865a3=0x1;_0x4865a3<=_0x46cc48[_0x4e6dd6(0xaf)];_0x4865a3++){const _0x28b730=_0x46cc48[_0x4865a3-0x1];_0x1a6dbc[_0x4e6dd6(0x121)](_0x4865a3+'|\x20'+_0x28b730);}else for(const [_0x35dbad,_0x4320ee]of _0x4634a5[_0x4e6dd6(0x181)]){_0x1a6dbc[_0x4e6dd6(0xaf)]>0x1&&_0x1a6dbc[_0x4e6dd6(0x121)]('');for(let _0x229ba9=_0x35dbad;_0x229ba9<=_0x4320ee&&_0x229ba9<=_0x46cc48[_0x4e6dd6(0xaf)];_0x229ba9++){const _0x5831e6=_0x46cc48[_0x229ba9-0x1];_0x1a6dbc[_0x4e6dd6(0x121)](_0x229ba9+'|\x20'+_0x5831e6);}}_0x1a6dbc[_0x4e6dd6(0x121)](_0x4e6dd6(0xa5)),_0x1c77e7[_0x4e6dd6(0x121)](_0x1a6dbc[_0x4e6dd6(0xf2)]('\x0a'));}else _0x1c77e7[_0x4e6dd6(0x121)](_0x4e6dd6(0x174)+_0x4634a5['path']+_0x4e6dd6(0x11d)+(_0x3c1772?.[_0x4e6dd6(0x137)]||_0x4e6dd6(0xfd))+_0x4e6dd6(0x9e));}_0x4024c6[_0x4e6dd6(0x121)](_0x1c77e7[_0x4e6dd6(0xf2)]('\x0a\x0a')),_0x54d9e9=_0x4024c6['join']('\x0a');const _0x5ec156=_0x20f6ab[_0x4e6dd6(0x133)]?.[_0x4e6dd6(0x13f)](_0x2fd5c6=>_0x2fd5c6[_0x4e6dd6(0x137)]?.[_0x4e6dd6(0x134)](_0x4e6dd6(0x18d)))||[];if(_0x5ec156[_0x4e6dd6(0xaf)]>0x0){const _0x57368d=_0x5ec156[_0x4e6dd6(0x185)](_0x44ef28=>_0x44ef28[_0x4e6dd6(0x137)])[_0x4e6dd6(0xf2)](';\x20');reportMorphError({'error_message':_0x57368d,'error_type':_0x4e6dd6(0x96),'context':{'tool':_0x4e6dd6(0x152),'repo_path':_0x429ab7[_0x4e6dd6(0xe9)][_0x4e6dd6(0xc1)],'query':_0x429ab7[_0x4e6dd6(0xe9)][_0x4e6dd6(0x13b)],'model':_0x4e6dd6(0x93),'termination_reason':'completed_with_file_errors','error_count':_0x5ec156[_0x4e6dd6(0xaf)],'is_timeout':![],'timings':_0x20f6ab[_0x4e6dd6(0x150)],'files_attempted':_0x2c606d[_0x4e6dd6(0x185)](_0x35f3ed=>({'path':_0x35f3ed[_0x4e6dd6(0xe6)],'lines':_0x35f3ed[_0x4e6dd6(0x181)]})),'tool_calls':_0x488806(_0x20f6ab['messages']),'messages':_0x20f6ab[_0x4e6dd6(0x14a)]?.[_0x4e6dd6(0x185)](_0x2696f1=>({'role':_0x2696f1[_0x4e6dd6(0x19a)],'content':_0x2696f1[_0x4e6dd6(0x175)]})),'request_content':{'query':_0x429ab7[_0x4e6dd6(0xe9)][_0x4e6dd6(0x13b)],'repo_path':_0x429ab7[_0x4e6dd6(0xe9)][_0x4e6dd6(0xc1)],'repoRoot':a0_0x43b453['resolve'](_0x429ab7['data'][_0x4e6dd6(0xc1)]),'model':'morph-warp-grep-v1-1111v0'}},'source':_0x4e6dd6(0x19f)})[_0x4e6dd6(0x128)](()=>{});}}else{if(_0x20f6ab['terminationReason']===_0x4e6dd6(0xb6)&&_0x20f6ab[_0x4e6dd6(0x133)][_0x4e6dd6(0xaf)]>0x0){const _0x222d6a=_0x20f6ab[_0x4e6dd6(0x133)][_0x4e6dd6(0x185)](_0x5b8bf0=>_0x5b8bf0['message'])[_0x4e6dd6(0xf2)](';\x20');_0x54d9e9=_0x4e6dd6(0x171)+_0x222d6a;const _0x1f19dd=_0x222d6a[_0x4e6dd6(0x99)]()[_0x4e6dd6(0xcd)](_0x4e6dd6(0x104))||_0x222d6a[_0x4e6dd6(0x99)]()[_0x4e6dd6(0xcd)](_0x4e6dd6(0x17e))||_0x222d6a[_0x4e6dd6(0x99)]()[_0x4e6dd6(0xcd)](_0x4e6dd6(0xcf)),_0x42e161=_0x20f6ab[_0x4e6dd6(0xf3)]?.[_0x4e6dd6(0x8d)]?.['files'],_0x9c03f9=_0x20f6ab['errors'][0x0];reportMorphError({'error_message':_0x222d6a,'error_type':_0x1f19dd?_0x4e6dd6(0xb9):_0x9c03f9?.['constructor']?.[_0x4e6dd6(0xc7)]||_0x4e6dd6(0x187),'context':{'tool':_0x4e6dd6(0x152),'repo_path':_0x429ab7[_0x4e6dd6(0xe9)][_0x4e6dd6(0xc1)],'query':_0x429ab7[_0x4e6dd6(0xe9)][_0x4e6dd6(0x13b)],'model':_0x4e6dd6(0x93),'termination_reason':_0x20f6ab['terminationReason'],'error_count':_0x20f6ab[_0x4e6dd6(0x133)]['length'],'is_timeout':_0x1f19dd,'timings':_0x20f6ab[_0x4e6dd6(0x150)],'files_attempted':_0x42e161?.[_0x4e6dd6(0x185)](_0x476c5a=>({'path':_0x476c5a['path'],'lines':_0x476c5a[_0x4e6dd6(0x181)]})),'tool_calls':_0x488806(_0x20f6ab[_0x4e6dd6(0x14a)]),'messages':_0x20f6ab[_0x4e6dd6(0x14a)]?.[_0x4e6dd6(0x185)](_0x248596=>({'role':_0x248596[_0x4e6dd6(0x19a)],'content':_0x248596[_0x4e6dd6(0x175)]})),'request_content':{'query':_0x429ab7[_0x4e6dd6(0xe9)][_0x4e6dd6(0x13b)],'repo_path':_0x429ab7['data'][_0x4e6dd6(0xc1)],'repoRoot':a0_0x43b453['resolve'](_0x429ab7['data'][_0x4e6dd6(0xc1)]),'model':_0x4e6dd6(0x93)}},'stack_trace':_0x9c03f9?.[_0x4e6dd6(0x105)]||undefined,'source':_0x4e6dd6(0x19f)})[_0x4e6dd6(0x128)](()=>{});}else _0x54d9e9=_0x4e6dd6(0xcb);}return{'content':[{'type':_0x4e6dd6(0xea),'text':_0x54d9e9}]};}catch(_0x468569){const _0x390948=_0x468569 instanceof Error?_0x468569['message']:String(_0x468569),_0x22dc29=_0x390948['toLowerCase']()[_0x4e6dd6(0xcd)](_0x4e6dd6(0x104))||_0x390948[_0x4e6dd6(0x99)]()['includes'](_0x4e6dd6(0x17e))||_0x390948['toLowerCase']()[_0x4e6dd6(0xcd)](_0x4e6dd6(0xcf))||_0x468569 instanceof Error&&_0x468569[_0x4e6dd6(0xc7)]===_0x4e6dd6(0xb9);return reportMorphError({'error_message':_0x390948,'error_type':_0x22dc29?_0x4e6dd6(0xb9):_0x468569 instanceof Error?_0x468569['constructor']['name']:_0x4e6dd6(0xbe),'context':{'tool':'warpgrep_codebase_search','repo_path':_0x429ab7['data'][_0x4e6dd6(0xc1)],'query':_0x429ab7[_0x4e6dd6(0xe9)]['search_string'],'model':_0x4e6dd6(0x93),'is_timeout':_0x22dc29,'exception_phase':_0x4e6dd6(0x18b),'request_content':{'query':_0x429ab7[_0x4e6dd6(0xe9)]['search_string'],'repo_path':_0x429ab7['data']['repo_path'],'repoRoot':a0_0x43b453[_0x4e6dd6(0xae)](_0x429ab7['data'][_0x4e6dd6(0xc1)]),'model':_0x4e6dd6(0x93)}},'stack_trace':_0x468569 instanceof Error?_0x468569[_0x4e6dd6(0x105)]:undefined,'source':_0x4e6dd6(0x19f)})['catch'](()=>{}),{'content':[{'type':_0x4e6dd6(0xea),'text':_0x4e6dd6(0x107)+_0x390948}],'isError':![]};}}case _0x4e6dd6(0x167):{const _0x2f3f73=WarpGrepGitHubArgsSchema[_0x4e6dd6(0x10c)](_0x1d4119);if(!_0x2f3f73[_0x4e6dd6(0xfb)])return{'content':[{'type':'text','text':_0x4e6dd6(0x126)+_0x2f3f73[_0x4e6dd6(0x9b)]}],'isError':!![]};const _0x2ec53c=MORPH_API_KEY;if(!_0x2ec53c)throw new Error(_0x4e6dd6(0x12d));const _0x5efe6e=Date[_0x4e6dd6(0x9f)]();console['error']('[warpgrep_github_search]\x20Searching\x20'+_0x2f3f73[_0x4e6dd6(0xe9)][_0x4e6dd6(0xef)]+_0x4e6dd6(0x16a)+_0x2f3f73[_0x4e6dd6(0xe9)][_0x4e6dd6(0x13b)]+'\x22');try{const _0x41164b=new WarpGrepClient({'morphApiKey':_0x2ec53c,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0x3b3c43=await _0x41164b['searchGitHub']({'query':_0x2f3f73[_0x4e6dd6(0xe9)][_0x4e6dd6(0x13b)],'github':_0x2f3f73['data'][_0x4e6dd6(0xef)],'branch':_0x2f3f73[_0x4e6dd6(0xe9)][_0x4e6dd6(0xe1)]}),_0x23d3d6=Date[_0x4e6dd6(0x9f)]()-_0x5efe6e;console[_0x4e6dd6(0x9b)](_0x4e6dd6(0xde)+_0x23d3d6+_0x4e6dd6(0x138)+_0x3b3c43[_0x4e6dd6(0xfb)]);const _0x53a99d=formatResult(_0x3b3c43);return{'content':[{'type':'text','text':_0x53a99d}]};}catch(_0x4b58c2){const _0x55d222=Date[_0x4e6dd6(0x9f)]()-_0x5efe6e,_0x234974=_0x4b58c2 instanceof Error?_0x4b58c2[_0x4e6dd6(0x137)]:String(_0x4b58c2);return console[_0x4e6dd6(0x9b)](_0x4e6dd6(0xf8)+_0x55d222+_0x4e6dd6(0x18c),_0x234974),reportMorphError({'error_message':_0x234974,'error_type':_0x4b58c2 instanceof Error?_0x4b58c2[_0x4e6dd6(0x13d)][_0x4e6dd6(0xc7)]:'UnknownError','context':{'tool':'warpgrep_github_search','github_url':_0x2f3f73[_0x4e6dd6(0xe9)][_0x4e6dd6(0xef)],'search_string':_0x2f3f73[_0x4e6dd6(0xe9)][_0x4e6dd6(0x13b)],'branch':_0x2f3f73[_0x4e6dd6(0xe9)][_0x4e6dd6(0xe1)]},'stack_trace':_0x4b58c2 instanceof Error?_0x4b58c2[_0x4e6dd6(0x105)]:undefined,'source':_0x4e6dd6(0x19f),'tool':_0x4e6dd6(0x167),'latency_ms':_0x55d222})[_0x4e6dd6(0x128)](()=>{}),{'content':[{'type':'text','text':_0x4e6dd6(0xdc)+_0x234974}],'isError':![]};}}case'codebase_search':{const _0x36d8fd=CodebaseSearchArgsSchema[_0x4e6dd6(0x10c)](_0x1d4119);if(!_0x36d8fd[_0x4e6dd6(0xfb)])return{'content':[{'type':_0x4e6dd6(0xea),'text':_0x4e6dd6(0x126)+_0x36d8fd['error']}],'isError':!![]};try{const _0x30d4f0=MORPH_API_KEY;if(!_0x30d4f0)throw new Error(_0x4e6dd6(0x15e));const _0x18d7d9=_0x36d8fd[_0x4e6dd6(0xe9)][_0x4e6dd6(0xc2)],_0x34c030=await executeCodebaseSearch({'query':_0x36d8fd['data']['query'],'target_directories':_0x18d7d9,'limit':_0x36d8fd[_0x4e6dd6(0xe9)][_0x4e6dd6(0xf0)]},{'apiKey':_0x30d4f0,'repoId':_0x36d8fd[_0x4e6dd6(0xe9)][_0x4e6dd6(0x13e)],'branch':_0x36d8fd[_0x4e6dd6(0xe9)][_0x4e6dd6(0xe1)],'commitHash':_0x36d8fd[_0x4e6dd6(0xe9)][_0x4e6dd6(0x14c)],'debug':![]});if(!_0x34c030[_0x4e6dd6(0xfb)])return{'content':[{'type':_0x4e6dd6(0xea),'text':_0x4e6dd6(0x172)+_0x34c030['error']}],'isError':!![]};const _0x1ed2fe=_0x34c030['results']['length']===0x0?_0x4e6dd6(0x163)+_0x36d8fd['data'][_0x4e6dd6(0x89)]+'\x22':_0x4e6dd6(0x166)+_0x34c030[_0x4e6dd6(0xd9)]['length']+_0x4e6dd6(0xc0)+_0x34c030[_0x4e6dd6(0xe0)][_0x4e6dd6(0x109)]+_0x4e6dd6(0x197)+_0x34c030['results'][_0x4e6dd6(0x185)]((_0x257e69,_0x4ccf27)=>_0x4ccf27+0x1+'.\x20'+_0x257e69[_0x4e6dd6(0x131)]+'\x20('+(_0x257e69[_0x4e6dd6(0x88)]*0x64)[_0x4e6dd6(0x151)](0x1)+_0x4e6dd6(0x182)+(_0x4e6dd6(0x154)+_0x257e69[_0x4e6dd6(0xca)]+'-'+_0x257e69[_0x4e6dd6(0x91)]+'\x0a')+(_0x4e6dd6(0xb8)+_0x257e69['content'][_0x4e6dd6(0xd6)](0x0,0xc8)+(_0x257e69['content'][_0x4e6dd6(0xaf)]>0xc8?'...':'')+'\x0a'))[_0x4e6dd6(0xf2)]('\x0a');return{'content':[{'type':'text','text':_0x1ed2fe}]};}catch(_0x18a9f7){const _0x4d4861=_0x18a9f7 instanceof Error?_0x18a9f7['message']:String(_0x18a9f7);return reportMorphError({'error_message':_0x4d4861,'error_type':_0x18a9f7 instanceof Error?_0x18a9f7[_0x4e6dd6(0x13d)]['name']:_0x4e6dd6(0xbe),'context':{'tool':_0x4e6dd6(0x173),'query':_0x36d8fd[_0x4e6dd6(0xe9)][_0x4e6dd6(0x89)],'repo_id':_0x36d8fd[_0x4e6dd6(0xe9)]['repoId'],'target_directories':_0x36d8fd['data'][_0x4e6dd6(0xc2)]},'stack_trace':_0x18a9f7 instanceof Error?_0x18a9f7[_0x4e6dd6(0x105)]:undefined,'source':'mcp-filesystem'})[_0x4e6dd6(0x128)](()=>{}),{'content':[{'type':_0x4e6dd6(0xea),'text':_0x4e6dd6(0x171)+_0x4d4861}],'isError':!![]};}}default:throw new Error(_0x4e6dd6(0x8b)+_0x24e3c8);}}catch(_0xfe1a4e){const _0x34c6ed=_0xfe1a4e instanceof Error?_0xfe1a4e[_0x4e6dd6(0x137)]:String(_0xfe1a4e);return reportMorphError({'error_message':_0x34c6ed,'error_type':_0xfe1a4e instanceof Error?_0xfe1a4e['constructor'][_0x4e6dd6(0xc7)]:_0x4e6dd6(0xbe),'context':{'tool':name,'arguments':args?JSON[_0x4e6dd6(0x184)](args)[_0x4e6dd6(0xd6)](0x0,0x1f4):undefined,'mcp_server_version':_0x4e6dd6(0x13c)},'stack_trace':_0xfe1a4e instanceof Error?_0xfe1a4e[_0x4e6dd6(0x105)]:undefined,'source':_0x4e6dd6(0x19f)})[_0x4e6dd6(0x128)](()=>{}),{'content':[{'type':_0x4e6dd6(0xea),'text':_0x4e6dd6(0x171)+_0x34c6ed}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x1a5761){const _0x2c1b23=a0_0x3a1ec5,_0x108602=await getValidRootDirectories(_0x1a5761);if(_0x108602[_0x2c1b23(0xaf)]>0x0)allowedDirectories=[..._0x108602],console['error']('Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20'+_0x108602[_0x2c1b23(0xaf)]+_0x2c1b23(0x194));else{console[_0x2c1b23(0x9b)](_0x2c1b23(0x157));if(ENABLE_WORKSPACE_MODE)try{const _0x3d5e64=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x3d5e64&&(allowedDirectories=[_0x3d5e64],console[_0x2c1b23(0x9b)](_0x2c1b23(0x178)+_0x3d5e64));}catch(_0x74036){console[_0x2c1b23(0x9b)](_0x2c1b23(0x188)+_0x74036);}}}server['setNotificationHandler'](RootsListChangedNotificationSchema,async()=>{const _0x472c71=a0_0x3a1ec5;try{const _0x5d53c3=await server['listRoots']();_0x5d53c3&&_0x472c71(0xdd)in _0x5d53c3&&await updateAllowedDirectoriesFromRoots(_0x5d53c3[_0x472c71(0xdd)]);}catch(_0x3db2ad){console[_0x472c71(0x9b)](_0x472c71(0x12c),_0x3db2ad instanceof Error?_0x3db2ad['message']:String(_0x3db2ad));}}),server[a0_0x3a1ec5(0xf6)]=async()=>{const _0x1dd6cf=a0_0x3a1ec5,_0x7cb429=server[_0x1dd6cf(0x147)]();if(_0x7cb429?.[_0x1dd6cf(0xdd)])try{const _0x2d900b=await server['listRoots']();_0x2d900b&&_0x1dd6cf(0xdd)in _0x2d900b?await updateAllowedDirectoriesFromRoots(_0x2d900b[_0x1dd6cf(0xdd)]):console[_0x1dd6cf(0x9b)](_0x1dd6cf(0x117));}catch(_0x595dda){console[_0x1dd6cf(0x9b)](_0x1dd6cf(0xaa),_0x595dda instanceof Error?_0x595dda[_0x1dd6cf(0x137)]:String(_0x595dda));}else{if(allowedDirectories[_0x1dd6cf(0xaf)]>0x0)console[_0x1dd6cf(0x9b)](_0x1dd6cf(0x87),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console[_0x1dd6cf(0x9b)]('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode');else throw new Error(_0x1dd6cf(0x94));}}};async function runServer(){const _0x5cb16a=a0_0x3a1ec5,_0x5a495e=new StdioServerTransport();await server[_0x5cb16a(0xdb)](_0x5a495e),console[_0x5cb16a(0x9b)](_0x5cb16a(0xd1)),allowedDirectories['length']===0x0&&console[_0x5cb16a(0x9b)]('Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol');}runServer()[a0_0x3a1ec5(0x128)](_0x105d8b=>{const _0x45c81b=a0_0x3a1ec5;console[_0x45c81b(0x9b)](_0x45c81b(0xba),_0x105d8b),process[_0x45c81b(0x135)](0x1);});
|
package/dist/path-utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x299d05,_0x9e93d9){const _0x5b72e3=a1_0x388d,_0x3f3709=_0x299d05();while(!![]){try{const _0x5f5189=parseInt(_0x5b72e3(0x125))/0x1+-parseInt(_0x5b72e3(0x11f))/0x2*(parseInt(_0x5b72e3(0x133))/0x3)+parseInt(_0x5b72e3(0x12e))/0x4*(parseInt(_0x5b72e3(0x11e))/0x5)+parseInt(_0x5b72e3(0x131))/0x6+-parseInt(_0x5b72e3(0x123))/0x7+-parseInt(_0x5b72e3(0x126))/0x8+-parseInt(_0x5b72e3(0x122))/0x9*(-parseInt(_0x5b72e3(0x127))/0xa);if(_0x5f5189===_0x9e93d9)break;else _0x3f3709['push'](_0x3f3709['shift']());}catch(_0x5c84e2){_0x3f3709['push'](_0x3f3709['shift']());}}}(a1_0x2671,0x97b81));import a1_0x6316d9 from'path';import a1_0x42adc4 from'os';function a1_0x388d(_0x33552d,_0x4dccf8){_0x33552d=_0x33552d-0x11d;const _0x26715f=a1_0x2671();let _0x388dad=_0x26715f[_0x33552d];return _0x388dad;}export function convertToWindowsPath(_0x1be0af){const _0x1b01b9=a1_0x388d;if(_0x1be0af[_0x1b01b9(0x12a)](_0x1b01b9(0x128))){const _0x2fb398=_0x1be0af[_0x1b01b9(0x130)](0x5)[_0x1b01b9(0x12c)](),_0x12e876=_0x1be0af['slice'](0x6)[_0x1b01b9(0x11d)](/\//g,'\x5c');return _0x2fb398+':'+_0x12e876;}if(_0x1be0af[_0x1b01b9(0x12d)](/^\/[a-zA-Z]\//)){const _0x20296f=_0x1be0af[_0x1b01b9(0x130)](0x1)[_0x1b01b9(0x12c)](),_0x5a3efe=_0x1be0af[_0x1b01b9(0x12f)](0x2)[_0x1b01b9(0x11d)](/\//g,'\x5c');return _0x20296f+':'+_0x5a3efe;}if(_0x1be0af[_0x1b01b9(0x12d)](/^[a-zA-Z]:/))return _0x1be0af['replace'](/\//g,'\x5c');return _0x1be0af;}export function normalizePath(_0xc38ff1){const _0x38e130=a1_0x388d;_0xc38ff1=_0xc38ff1[_0x38e130(0x121)]()[_0x38e130(0x11d)](/^["']|["']$/g,'');const _0x161c4f=_0xc38ff1[_0x38e130(0x12a)]('/')&&!_0xc38ff1[_0x38e130(0x12d)](/^\/mnt\/[a-z]\//i)&&!_0xc38ff1['match'](/^\/[a-zA-Z]\//);if(_0x161c4f)return _0xc38ff1[_0x38e130(0x11d)](/\/+/g,'/')[_0x38e130(0x11d)](/\/+$/,'');_0xc38ff1=convertToWindowsPath(_0xc38ff1);if(_0xc38ff1[_0x38e130(0x12a)]('\x5c\x5c')){let _0x50edd4=_0xc38ff1;_0x50edd4=_0x50edd4[_0x38e130(0x11d)](/^\\{2,}/,'\x5c\x5c');const _0x3cde1c=_0x50edd4[_0x38e130(0x129)](0x2)[_0x38e130(0x11d)](/\\\\/g,'\x5c');_0xc38ff1='\x5c\x5c'+_0x3cde1c;}else _0xc38ff1=_0xc38ff1[_0x38e130(0x11d)](/\\\\/g,'\x5c');let _0x3e0558=a1_0x6316d9[_0x38e130(0x120)](_0xc38ff1);_0xc38ff1[_0x38e130(0x12a)]('\x5c\x5c')&&!_0x3e0558['startsWith']('\x5c\x5c')&&(_0x3e0558='\x5c'+_0x3e0558);if(_0x3e0558[_0x38e130(0x12d)](/^[a-zA-Z]:/)){let _0x348ac5=_0x3e0558[_0x38e130(0x11d)](/\//g,'\x5c');return/^[a-z]:/[_0x38e130(0x12b)](_0x348ac5)&&(_0x348ac5=_0x348ac5['charAt'](0x0)[_0x38e130(0x12c)]()+_0x348ac5[_0x38e130(0x12f)](0x1)),_0x348ac5;}return _0x3e0558[_0x38e130(0x11d)](/\//g,'\x5c');}export function expandHome(_0x527885){const _0x156acd=a1_0x388d;if(_0x527885[_0x156acd(0x12a)]('~/')||_0x527885==='~')return a1_0x6316d9[_0x156acd(0x124)](a1_0x42adc4[_0x156acd(0x132)](),_0x527885[_0x156acd(0x12f)](0x1));return _0x527885;}function a1_0x2671(){const _0x14c6eb=['50qRVpUz','/mnt/','substring','startsWith','test','toUpperCase','match','4ckIYIN','slice','charAt','3061152NOBxZh','homedir','2914683HVOCcZ','replace','1420890PmMndE','2NVWWmQ','normalize','trim','1165131uVkpkf','1345225ouKeKR','join','1222115bbHKdT','7028824FBxAnZ'];a1_0x2671=function(){return _0x14c6eb;};return a1_0x2671();}
|
package/dist/path-validation.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a2_0x1c6f(_0x475e15,_0x44b31d){_0x475e15=_0x475e15-0x1a5;const _0x4985b8=a2_0x4985();let _0x1c6f11=_0x4985b8[_0x475e15];return _0x1c6f11;}(function(_0x3d750e,_0x3679f7){const _0x14bdba=a2_0x1c6f,_0x1a5629=_0x3d750e();while(!![]){try{const _0x282e18=-parseInt(_0x14bdba(0x1bb))/0x1*(parseInt(_0x14bdba(0x1af))/0x2)+parseInt(_0x14bdba(0x1ba))/0x3+parseInt(_0x14bdba(0x1aa))/0x4+-parseInt(_0x14bdba(0x1b7))/0x5*(parseInt(_0x14bdba(0x1ac))/0x6)+parseInt(_0x14bdba(0x1a6))/0x7+-parseInt(_0x14bdba(0x1ad))/0x8*(parseInt(_0x14bdba(0x1b1))/0x9)+parseInt(_0x14bdba(0x1ab))/0xa*(-parseInt(_0x14bdba(0x1b4))/0xb);if(_0x282e18===_0x3679f7)break;else _0x1a5629['push'](_0x1a5629['shift']());}catch(_0x20e49b){_0x1a5629['push'](_0x1a5629['shift']());}}}(a2_0x4985,0xafe44));import a2_0x3f69ac from'path';function a2_0x4985(){const _0xaed62e=['263LItrod','some','9767296bGKyEU','isArray','startsWith','length','3031820qrqyAH','30yqIOyn','17454BPrsHq','61672AvnbpD','resolve','5896oidXCV','string','378JJzXMJ','includes','Path\x20must\x20be\x20absolute\x20after\x20normalization','1715043fTFeyo','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','isAbsolute','1655Ypcynu','normalize','sep','3290667mIqrXb'];a2_0x4985=function(){return _0xaed62e;};return a2_0x4985();}export function isPathWithinAllowedDirectories(_0x2192ad,_0x5bb7d8){const _0xf2bc4=a2_0x1c6f;if(typeof _0x2192ad!=='string'||!Array[_0xf2bc4(0x1a7)](_0x5bb7d8))return![];if(!_0x2192ad||_0x5bb7d8[_0xf2bc4(0x1a9)]===0x0)return![];if(_0x2192ad[_0xf2bc4(0x1b2)]('\x00'))return![];let _0x1c492c;try{_0x1c492c=a2_0x3f69ac['resolve'](a2_0x3f69ac[_0xf2bc4(0x1b8)](_0x2192ad));}catch{return![];}if(!a2_0x3f69ac['isAbsolute'](_0x1c492c))throw new Error(_0xf2bc4(0x1b3));return _0x5bb7d8[_0xf2bc4(0x1a5)](_0x10ecae=>{const _0x887802=_0xf2bc4;if(typeof _0x10ecae!==_0x887802(0x1b0)||!_0x10ecae)return![];if(_0x10ecae[_0x887802(0x1b2)]('\x00'))return![];let _0x3df24d;try{_0x3df24d=a2_0x3f69ac[_0x887802(0x1ae)](a2_0x3f69ac[_0x887802(0x1b8)](_0x10ecae));}catch{return![];}if(!a2_0x3f69ac[_0x887802(0x1b6)](_0x3df24d))throw new Error(_0x887802(0x1b5));if(_0x1c492c===_0x3df24d)return!![];if(_0x3df24d===a2_0x3f69ac[_0x887802(0x1b9)])return _0x1c492c[_0x887802(0x1a8)](a2_0x3f69ac[_0x887802(0x1b9)]);return _0x1c492c['startsWith'](_0x3df24d+a2_0x3f69ac[_0x887802(0x1b9)]);});}
|
package/dist/roots-utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x425ed9,_0x8f32ed){const _0x2b9495=a3_0x169e,_0x4dd387=_0x425ed9();while(!![]){try{const _0x4b0d61=-parseInt(_0x2b9495(0x1aa))/0x1*(-parseInt(_0x2b9495(0x1a2))/0x2)+parseInt(_0x2b9495(0x1a1))/0x3+parseInt(_0x2b9495(0x1b1))/0x4+parseInt(_0x2b9495(0x1ac))/0x5+parseInt(_0x2b9495(0x1a0))/0x6*(-parseInt(_0x2b9495(0x1a7))/0x7)+-parseInt(_0x2b9495(0x1a9))/0x8*(-parseInt(_0x2b9495(0x1ab))/0x9)+-parseInt(_0x2b9495(0x1b2))/0xa;if(_0x4b0d61===_0x8f32ed)break;else _0x4dd387['push'](_0x4dd387['shift']());}catch(_0x374318){_0x4dd387['push'](_0x4dd387['shift']());}}}(a3_0x3162,0x87726));import{promises as a3_0x1f2a91}from'fs';function a3_0x3162(){const _0x209567=['uri','homedir','push','resolve','4221052WvcxBT','18546130wyqHDJ','isDirectory','realpath','Skipping\x20invalid\x20directory:\x20','non-directory\x20root','error','85716MeurWy','678129UYKqaG','167880BWoczh','Skipping\x20','file://','stat','startsWith','21HYucOA','slice','3112Mexril','1UUJyrF','5229msuzlO','4305030pvbMet'];a3_0x3162=function(){return _0x209567;};return a3_0x3162();}import a3_0x5df8c9 from'path';import a3_0x14f906 from'os';import{normalizePath}from'./path-utils.js';async function parseRootUri(_0x24c8bb){const _0x491be4=a3_0x169e;try{const _0x2d6d71=_0x24c8bb[_0x491be4(0x1a6)](_0x491be4(0x1a4))?_0x24c8bb[_0x491be4(0x1a8)](0x7):_0x24c8bb,_0x37f03c=_0x2d6d71[_0x491be4(0x1a6)]('~/')||_0x2d6d71==='~'?a3_0x5df8c9['join'](a3_0x14f906[_0x491be4(0x1ae)](),_0x2d6d71[_0x491be4(0x1a8)](0x1)):_0x2d6d71,_0x425c16=a3_0x5df8c9[_0x491be4(0x1b0)](_0x37f03c),_0x1fdeeb=await a3_0x1f2a91[_0x491be4(0x1b4)](_0x425c16);return normalizePath(_0x1fdeeb);}catch{return null;}}function formatDirectoryError(_0x3b8377,_0x20e3cc,_0x226bfc){const _0x4cceef=a3_0x169e;if(_0x226bfc)return _0x4cceef(0x1a3)+_0x226bfc+':\x20'+_0x3b8377;const _0xb9cfa4=_0x20e3cc instanceof Error?_0x20e3cc['message']:String(_0x20e3cc);return _0x4cceef(0x1b5)+_0x3b8377+'\x20due\x20to\x20error:\x20'+_0xb9cfa4;}function a3_0x169e(_0x2b86d6,_0x1c48ce){_0x2b86d6=_0x2b86d6-0x19e;const _0x316221=a3_0x3162();let _0x169e31=_0x316221[_0x2b86d6];return _0x169e31;}export async function getValidRootDirectories(_0x209a87){const _0x6a3b11=a3_0x169e,_0x4406c1=[];for(const _0x56054d of _0x209a87){const _0x1e9710=await parseRootUri(_0x56054d[_0x6a3b11(0x1ad)]);if(!_0x1e9710){console[_0x6a3b11(0x19f)](formatDirectoryError(_0x56054d[_0x6a3b11(0x1ad)],undefined,'invalid\x20path\x20or\x20inaccessible'));continue;}try{const _0x3ba3d1=await a3_0x1f2a91[_0x6a3b11(0x1a5)](_0x1e9710);_0x3ba3d1[_0x6a3b11(0x1b3)]()?_0x4406c1[_0x6a3b11(0x1af)](_0x1e9710):console['error'](formatDirectoryError(_0x1e9710,undefined,_0x6a3b11(0x19e)));}catch(_0x53e185){console[_0x6a3b11(0x19f)](formatDirectoryError(_0x1e9710,_0x53e185));}}return _0x4406c1;}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morphllm/morphmcp",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.102",
|
|
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.
|
|
38
|
+
"@morphllm/morphsdk": "0.2.122",
|
|
39
39
|
"@vscode/ripgrep": "^1.15.14",
|
|
40
40
|
"axios": "^1.6.0",
|
|
41
41
|
"chalk": "^5.3.0",
|