@morphllm/morphmcp 0.8.128 → 0.8.129
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/log-utils.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
|
-
function a0_0x4e40(){const _0xa75543=['data','roots','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','.\x20Changes:\x20','Tool\x20\x22','Preview\x20changes\x20without\x20applying\x20them.','Morph\x20Edit\x20','split','join','[github_codebase_search]\x20Failed\x20in\x20','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','indexOf','\x20disabled\x20via\x20DISABLED_TOOLS','sk-','timed\x20out','TimeoutError','go.mod','stack','File\x20read\x20error:','slice','❌\x20Morph\x20Edit\x20Failed:\x20','setNotificationHandler','every','constructor','codebase_search','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','owner_repo','GitHub\x20repository\x20URL\x20to\x20search\x20(e.g.\x20\x27https://github.com/vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','some','user','Morph\x20Edit\x20Preview','filter','PWD','0.2.0','requiresApiKey','-\x20Read\x20file\x20`','files','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','44EDqUVT','MORPH_WARP_GREP_TIMEOUT','ENOENT','dirname','connect','includes','homedir','assistant','access','Error:\x20','object','context','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','code','morph-mcp','Warning:\x20','name','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','--api-key','dryRun','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','composer.json','added\x20','log','RipgrepError','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','default','resolve','Fallback:\x20Using\x20workspace\x20root\x20','success','\x20valid\x20directories','cwd','message','FileReadError','165036XjDYnX','description','list_directory\x20','match','BinaryFile','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','sep','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','Workspace\x20mode\x20enabled:\x20Using\x20','timings','terminated','\x22\x20is\x20disabled\x20via\x20DISABLED_TOOLS\x20environment\x20variable','Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)','instruction','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','Search\x20type\x20hint.\x20Use\x20\x27node_modules\x27\x20when\x20searching\x20inside\x20node_modules\x20or\x20other\x20dependency\x20directories\x20that\x20are\x20normally\x20excluded.','searchGitHub','content','api-key','messages','search_type','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','utf-8','129887MjzhrI','safeParse','2840984bupleq','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','catch','linesAdded','Relevant\x20context\x20found:','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]',',\x20modified\x20','[github_codebase_search]\x20Done\x20in\x20','Disabled\x20tools:\x20','ReadError','Specific\x20commit\x20hash\x20to\x20search','read','[could\x20not\x20read\x20file:\x20','morph-warp-grep-v1-1111v0','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','.\x20Path:\x20','exit','\x20(new\x20file)','71667nvPPaQ','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20toolin\x20its\x20search.\x20','\x0aExamples:','path','lines','node_modules','github_url','Failed\x20to\x20read\x20file:\x20','</file>','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.','<file\x20path=\x22','has','https://morphllm.com/api/error-report','\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','\x0a...\x20(truncated,\x20total:\x20','\x20is\x20not\x20a\x20directory','mcp-filesystem','source','FileNotFound','github_codebase_search','metadata','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','normalize','Created\x20File','isArray','length','.vscode','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','code_edit','read\x20','\x27\x20in\x20`','Cargo.toml','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','role','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','floor','array','--api-key=','terminationReason','WarpGrepError','post','text','SubToolError','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','readFile','completed','Natural-language\x20question/description\x20about\x20the\x20code\x20you\x20want\x20to\x20understand.\x20Good\x20example:\x20\x22Where\x20does\x20auth\x20get\x20handled,\x20what\x20are\x20the\x20different\x20oauth\x20methods\x20supported?\x22,\x20\x22Trace\x20all\x20code\x20that\x20relates\x20to\x20how\x20data\x20is\x20injested\x20and\x20processed\x22.\x20Bad\x20example:\x20\x22auth()\x22,\x20\x22auth\x20login\x20dashoard\x20google\x20email\x22.\x20This\x20tool\x20does\x20NOT\x20accept\x20regex,\x20keyword\x20dumps,\x20or\x20symbol-only\x20queries.','branch','params','Morph\x20FastApply\x20failed\x20without\x20error\x20message','toLowerCase','inputSchema','finish','[github_codebase_search]\x20Searching\x20','isDirectory','edit_file','describe','ToolException','payload','boolean','Warning:\x20DISABLED_TOOLS\x20contains\x20unknown\x20tool\x20\x22','\x0aOptions:','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','Bearer\x20','SymlinkError','stat','search_string','--help','startsWith','.cursor','all','Tool\x20','7kDoNPH','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','realpath','Max\x20results\x20to\x20return','2otDzBy','Here\x20is\x20the\x20content\x20of\x20files:\x0a','1980460lpKsCw','\x0a</file>','runWarpGrep_call','\x22.\x20Known\x20tools:\x20','size','getClientCapabilities','Invalid\x20arguments:\x20','Parent\x20directory\x20does\x20not\x20exist:\x20','2213034tTVftj','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','\x20\x20morph-mcp','enum','version','@morphllm/morphmcp\x20','WORKSPACE_ROOT','RipgrepNotAvailable','false','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','ms:','setRequestHandler','morph-v3-fast','listRoots','491425cCGiUF','Repository\x20owner/repo\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','warn','Rules:\x0a','Please\x20provide\x20github\x20search\x20url\x20or\x20owner/repo\x20id','toISOString','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','optional','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a','trim','UnknownError','push','min','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','DISABLED_TOOLS','WarpGrep\x20sub-tool\x20errors:\x20','-\x20Grepped\x20\x27','map','tsconfig.json','basename','morph-','.git','env','1070GYUSAl','repo_path','string','error','now','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','errors','linesRemoved','unknown','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','-\x20Listed\x20directory\x20`','A\x20code\x20exploration\x20tool,\x20use\x20this\x20tool\x20when\x20exploring\x20an\x20unfamiliar\x20codebase,\x20and\x20you\x27re\x20unsure\x20of\x20the\x20exact\x20file\x20or\x20string\x20to\x20look\x20for.\x20This\x20tool\x20will\x20find\x20all\x20relevant\x20bits\x20of\x20code\x20given\x20a\x20natural\x20lanugage\x20description,\x20or\x20questin\x20of\x20the\x20thing\x20you\x27re\x20looking\x20for.\x20','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','No\x20relevant\x20code\x20found\x20for\x20the\x20query.','Applied'];a0_0x4e40=function(){return _0xa75543;};return a0_0x4e40();}const a0_0x44994e=a0_0x2846;(function(_0x1197f7,_0x291f66){const _0x9dacef=a0_0x2846,_0x515403=_0x1197f7();while(!![]){try{const _0x4f53f1=-parseInt(_0x9dacef(0x29f))/0x1*(parseInt(_0x9dacef(0x1f9))/0x2)+-parseInt(_0x9dacef(0x288))/0x3*(parseInt(_0x9dacef(0x265))/0x4)+parseInt(_0x9dacef(0x1fb))/0x5+-parseInt(_0x9dacef(0x203))/0x6+-parseInt(_0x9dacef(0x1f5))/0x7*(-parseInt(_0x9dacef(0x2a1))/0x8)+parseInt(_0x9dacef(0x2b3))/0x9*(parseInt(_0x9dacef(0x22c))/0xa)+-parseInt(_0x9dacef(0x213))/0xb;if(_0x4f53f1===_0x291f66)break;else _0x515403['push'](_0x515403['shift']());}catch(_0x398045){_0x515403['push'](_0x515403['shift']());}}}(a0_0x4e40,0x6f043));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_0x3e9020 from'fs/promises';import a0_0x27dcdd from'path';import a0_0x5c48dc from'os';import{createRequire}from'module';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';import{getOperatingSystemType,logMcpStderr}from'./log-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 a0_0xab6413 from'axios';function fixPathRepetition(_0x2b6b20){const _0x49d8c3=a0_0x2846,_0x24b61f=_0x2b6b20[_0x49d8c3(0x244)](a0_0x27dcdd[_0x49d8c3(0x28e)])[_0x49d8c3(0x25e)](Boolean);if(_0x24b61f[_0x49d8c3(0x1c5)]<0x2)return null;for(let _0x21cb8b=Math[_0x49d8c3(0x1cf)](_0x24b61f['length']/0x2);_0x21cb8b>=0x1;_0x21cb8b--){for(let _0x3881a8=0x0;_0x3881a8<=_0x24b61f[_0x49d8c3(0x1c5)]-0x2*_0x21cb8b;_0x3881a8++){const _0x260902=_0x24b61f[_0x49d8c3(0x251)](_0x3881a8,_0x3881a8+_0x21cb8b),_0x4bbeec=_0x24b61f[_0x49d8c3(0x251)](_0x3881a8+_0x21cb8b,_0x3881a8+0x2*_0x21cb8b);if(_0x260902[_0x49d8c3(0x254)]((_0x2c695b,_0x2f84af)=>_0x2c695b===_0x4bbeec[_0x2f84af])){const _0x231715=[..._0x24b61f[_0x49d8c3(0x251)](0x0,_0x3881a8),..._0x24b61f[_0x49d8c3(0x251)](_0x3881a8+_0x21cb8b)];return a0_0x27dcdd[_0x49d8c3(0x28e)]+_0x231715[_0x49d8c3(0x245)](a0_0x27dcdd[_0x49d8c3(0x28e)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x5e7a16=a0_0x2846;try{const _0x360e76=require('../package.json');return _0x360e76[_0x5e7a16(0x207)]??'unknown';}catch(_0x29febb){return logMcpStderr('Warning:\x20Unable\x20to\x20determine\x20package\x20version:',_0x29febb),'unknown';}}function printHelp(){const _0x4d5a85=a0_0x2846;console['log'](_0x4d5a85(0x208)+getPackageVersion()),console[_0x4d5a85(0x27d)](_0x4d5a85(0x2a6)),console['log'](_0x4d5a85(0x1e9)),console[_0x4d5a85(0x27d)]('\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)'),console[_0x4d5a85(0x27d)](_0x4d5a85(0x257)),console[_0x4d5a85(0x27d)]('\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit'),console['log'](_0x4d5a85(0x2b5)),console[_0x4d5a85(0x27d)](_0x4d5a85(0x205)),console['log'](_0x4d5a85(0x2c0));}const cliArgs=process['argv'][a0_0x44994e(0x251)](0x2),VERSION_FLAGS=new Set(['--version','-v','-V']),HELP_FLAGS=new Set([a0_0x44994e(0x1f0),'-h']);cliArgs[a0_0x44994e(0x25b)](_0x2ed6ad=>VERSION_FLAGS[a0_0x44994e(0x2be)](_0x2ed6ad))&&(console[a0_0x44994e(0x27d)](a0_0x44994e(0x208)+getPackageVersion()),process[a0_0x44994e(0x2b1)](0x0));cliArgs['some'](_0x5ec49e=>HELP_FLAGS[a0_0x44994e(0x2be)](_0x5ec49e))&&(printHelp(),process[a0_0x44994e(0x2b1)](0x0));function getCliArg(_0x5bbf33){const _0x4bffcc=a0_0x44994e;for(let _0x4e8370=0x0;_0x4e8370<cliArgs['length'];_0x4e8370++){const _0x5e4b02=cliArgs[_0x4e8370];if(_0x5e4b02['startsWith']('--'+_0x5bbf33+'='))return _0x5e4b02['slice'](('--'+_0x5bbf33+'=')[_0x4bffcc(0x1c5)]);if(_0x5e4b02==='--'+_0x5bbf33&&_0x4e8370+0x1<cliArgs[_0x4bffcc(0x1c5)])return cliArgs[_0x4e8370+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs[a0_0x44994e(0x1c5)];i++){const arg=cliArgs[i];if(VERSION_FLAGS[a0_0x44994e(0x2be)](arg)||HELP_FLAGS[a0_0x44994e(0x2be)](arg))continue;if(arg[a0_0x44994e(0x1f1)](a0_0x44994e(0x1d1)))continue;if(arg===a0_0x44994e(0x278)){i++;continue;}args[a0_0x44994e(0x220)](arg);}const WORKSPACE_ROOT=process[a0_0x44994e(0x22b)][a0_0x44994e(0x209)]||process[a0_0x44994e(0x22b)][a0_0x44994e(0x25f)]||process[a0_0x44994e(0x285)](),ENABLE_WORKSPACE_MODE=process[a0_0x44994e(0x22b)]['ENABLE_WORKSPACE_MODE']!==a0_0x44994e(0x20b),MORPH_API_KEY=getCliArg(a0_0x44994e(0x29a))??process[a0_0x44994e(0x22b)]['MORPH_API_KEY'],MORPH_API_URL=process[a0_0x44994e(0x22b)]['MORPH_API_URL'],MORPH_WARP_GREP_TIMEOUT=process[a0_0x44994e(0x22b)][a0_0x44994e(0x266)]?parseInt(process[a0_0x44994e(0x22b)]['MORPH_WARP_GREP_TIMEOUT'],0xa):undefined,OPERATING_SYSTEM_TYPE=getOperatingSystemType(),KNOWN_TOOL_NAMES=new Set([a0_0x44994e(0x1e3),'codebase_search',a0_0x44994e(0x2c7)]),DISABLED_TOOLS=process['env'][a0_0x44994e(0x223)]?new Set(process[a0_0x44994e(0x22b)][a0_0x44994e(0x223)][a0_0x44994e(0x244)](',')[a0_0x44994e(0x226)](_0x731d39=>_0x731d39['trim']())[a0_0x44994e(0x25e)](_0x22e99e=>_0x22e99e[a0_0x44994e(0x1c5)]>0x0)):new Set();if(DISABLED_TOOLS[a0_0x44994e(0x1ff)]>0x0){for(const tool of DISABLED_TOOLS){!KNOWN_TOOL_NAMES[a0_0x44994e(0x2be)](tool)&&console[a0_0x44994e(0x22f)](a0_0x44994e(0x1e8)+tool+a0_0x44994e(0x1fe)+[...KNOWN_TOOL_NAMES][a0_0x44994e(0x245)](',\x20'));}console['error'](a0_0x44994e(0x2a9)+[...DISABLED_TOOLS][a0_0x44994e(0x245)](',\x20'));}MORPH_API_KEY&&!MORPH_API_KEY['startsWith'](a0_0x44994e(0x24b))&&!MORPH_API_KEY['startsWith'](a0_0x44994e(0x229))&&logMcpStderr(a0_0x44994e(0x264));async function reportMorphError(_0x22ac5c){const _0x1e132b=a0_0x44994e;try{await a0_0xab6413[_0x1e132b(0x1d4)](_0x1e132b(0x2bf),{..._0x22ac5c,'timestamp':new Date()[_0x1e132b(0x219)](),'source':_0x22ac5c[_0x1e132b(0x2c5)]||_0x1e132b(0x2c4),'os_type':OPERATING_SYSTEM_TYPE,'context':{'os_type':OPERATING_SYSTEM_TYPE,..._0x22ac5c[_0x1e132b(0x270)]}},{'timeout':0x1388,'headers':{'Content-Type':'application/json','Authorization':_0x1e132b(0x1ec)+MORPH_API_KEY}});}catch{}}args[a0_0x44994e(0x1c5)]===0x0&&!ENABLE_WORKSPACE_MODE&&(logMcpStderr(a0_0x44994e(0x296)),logMcpStderr(a0_0x44994e(0x21c)),logMcpStderr('\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)'),logMcpStderr(a0_0x44994e(0x1c1)),logMcpStderr(a0_0x44994e(0x20c)),logMcpStderr(a0_0x44994e(0x277)));function normalizePath(_0x28bfb3){const _0x4a51a9=a0_0x44994e;return a0_0x27dcdd[_0x4a51a9(0x1c2)](_0x28bfb3);}function expandHome(_0x37d236){const _0x2f595d=a0_0x44994e;if(_0x37d236[_0x2f595d(0x1f1)]('~/')||_0x37d236==='~')return a0_0x27dcdd[_0x2f595d(0x245)](a0_0x5c48dc[_0x2f595d(0x26b)](),_0x37d236[_0x2f595d(0x251)](0x1));return _0x37d236;}let allowedDirectories=await Promise[a0_0x44994e(0x1f3)](args[a0_0x44994e(0x226)](async _0x561151=>{const _0x23c6e4=a0_0x44994e,_0x4d60be=expandHome(_0x561151),_0x1c7831=a0_0x27dcdd[_0x23c6e4(0x281)](_0x4d60be);try{const _0x4b08ac=await a0_0x3e9020[_0x23c6e4(0x1f7)](_0x1c7831);return normalizePath(_0x4b08ac);}catch(_0x3bbf18){return normalizePath(_0x1c7831);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x44994e(0x1c5)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x44994e(0x220)](workspaceDir),logMcpStderr(a0_0x44994e(0x290)+workspaceDir+'\x20as\x20allowed\x20directory'));}catch(a0_0x321cf0){logMcpStderr(a0_0x44994e(0x204)+a0_0x321cf0);}async function detectWorkspaceRoot(_0x105b16){const _0x4cb048=a0_0x44994e;let _0x2e2d29=a0_0x27dcdd[_0x4cb048(0x281)](_0x105b16);const _0x2fbb3a=[_0x4cb048(0x22a),_0x4cb048(0x1c6),'package.json',_0x4cb048(0x1cb),'pyproject.toml',_0x4cb048(0x24e),_0x4cb048(0x1f2),_0x4cb048(0x227),_0x4cb048(0x27b)];while(_0x2e2d29!==a0_0x27dcdd['dirname'](_0x2e2d29)){for(const _0x28cf84 of _0x2fbb3a){const _0x4c6d02=a0_0x27dcdd['join'](_0x2e2d29,_0x28cf84);try{return await a0_0x3e9020[_0x4cb048(0x26d)](_0x4c6d02),normalizePath(_0x2e2d29);}catch{}}_0x2e2d29=a0_0x27dcdd[_0x4cb048(0x268)](_0x2e2d29);}return normalizePath(_0x105b16);}await Promise[a0_0x44994e(0x1f3)](args[a0_0x44994e(0x226)](async _0x3baa37=>{const _0xc2f93=a0_0x44994e;try{const _0x2898e5=await a0_0x3e9020[_0xc2f93(0x1ee)](expandHome(_0x3baa37));!_0x2898e5[_0xc2f93(0x1e2)]()&&(logMcpStderr(_0xc2f93(0x26e)+_0x3baa37+_0xc2f93(0x2c3)),process[_0xc2f93(0x2b1)](0x1));}catch(_0x31f156){logMcpStderr('Error\x20accessing\x20directory\x20'+_0x3baa37+':',_0x31f156),process[_0xc2f93(0x2b1)](0x1);}}));async function validatePath(_0x33b11b){const _0x572ea9=a0_0x44994e,_0x2716c4=expandHome(_0x33b11b),_0x5cfaa1=a0_0x27dcdd[_0x572ea9(0x281)](_0x2716c4);try{const _0x34f5a9=await a0_0x3e9020[_0x572ea9(0x1f7)](_0x5cfaa1);return _0x34f5a9;}catch(_0x58be04){if(_0x58be04[_0x572ea9(0x273)]===_0x572ea9(0x267)){const _0x31c837=a0_0x27dcdd[_0x572ea9(0x268)](_0x5cfaa1);try{const _0x24d100=await a0_0x3e9020[_0x572ea9(0x1f7)](_0x31c837);return a0_0x27dcdd[_0x572ea9(0x245)](_0x24d100,a0_0x27dcdd[_0x572ea9(0x228)](_0x5cfaa1));}catch{throw new Error(_0x572ea9(0x202)+_0x31c837);}}throw _0x58be04;}}const MorphEditFileArgsSchema=z[a0_0x44994e(0x26f)]({'path':z[a0_0x44994e(0x22e)](),'code_edit':z[a0_0x44994e(0x22e)]()[a0_0x44994e(0x1e4)]('Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.'),'instruction':z['string']()[a0_0x44994e(0x1e4)](a0_0x44994e(0x271)),'dryRun':z[a0_0x44994e(0x1e7)]()[a0_0x44994e(0x280)](![])[a0_0x44994e(0x1e4)](a0_0x44994e(0x242))}),CODEBASE_SEARCH_QUERY_DESCRIPTION=a0_0x44994e(0x1da),WarpGrepArgsSchema=z['object']({'search_string':z[a0_0x44994e(0x22e)]()['describe'](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repo_path':z[a0_0x44994e(0x22e)]()['describe'](a0_0x44994e(0x29d)),'search_type':z[a0_0x44994e(0x206)](['default',a0_0x44994e(0x2b8)])[a0_0x44994e(0x21b)]()[a0_0x44994e(0x1e4)](a0_0x44994e(0x297))}),WarpGrepGitHubArgsSchema=z[a0_0x44994e(0x26f)]({'search_string':z[a0_0x44994e(0x22e)]()[a0_0x44994e(0x1e4)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'github_url':z['string']()['optional']()[a0_0x44994e(0x1e4)](a0_0x44994e(0x259)),'owner_repo':z[a0_0x44994e(0x22e)]()['optional']()[a0_0x44994e(0x1e4)](a0_0x44994e(0x214)),'branch':z[a0_0x44994e(0x22e)]()[a0_0x44994e(0x21b)]()[a0_0x44994e(0x1e4)](a0_0x44994e(0x294))}),CodebaseSearchArgsSchema=z[a0_0x44994e(0x26f)]({'query':z[a0_0x44994e(0x22e)]()['describe'](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repoId':z[a0_0x44994e(0x22e)]()['describe']('Repository\x20identifier'),'branch':z['string']()[a0_0x44994e(0x21b)]()[a0_0x44994e(0x1e4)]('Branch\x20to\x20search\x20(uses\x20latest\x20commit)'),'commitHash':z[a0_0x44994e(0x22e)]()[a0_0x44994e(0x21b)]()[a0_0x44994e(0x1e4)](a0_0x44994e(0x2ab)),'targetDirectories':z[a0_0x44994e(0x1d0)](z['string']())[a0_0x44994e(0x280)]([])[a0_0x44994e(0x1e4)](a0_0x44994e(0x248)),'limit':z['number']()[a0_0x44994e(0x21b)]()[a0_0x44994e(0x280)](0xa)[a0_0x44994e(0x1e4)](a0_0x44994e(0x1f8))}),server=new Server({'name':a0_0x44994e(0x274),'version':'0.2.0'},{'capabilities':{'tools':{}}});server[a0_0x44994e(0x210)](ListToolsRequestSchema,async()=>{const _0x53a2ba=a0_0x44994e,_0x4b928d=[{'name':_0x53a2ba(0x1e3),'description':_0x53a2ba(0x23f)+_0x53a2ba(0x27a)+_0x53a2ba(0x236)+_0x53a2ba(0x1d7)+'Benefits:\x0a'+_0x53a2ba(0x20e)+_0x53a2ba(0x215)+_0x53a2ba(0x28f)+_0x53a2ba(0x25a)+_0x53a2ba(0x20d)+_0x53a2ba(0x21a)+_0x53a2ba(0x272)+'For\x20deletions:\x0a'+_0x53a2ba(0x27f)+_0x53a2ba(0x21d)+_0x53a2ba(0x217)+_0x53a2ba(0x1ce)+_0x53a2ba(0x1eb)+_0x53a2ba(0x1cc)+_0x53a2ba(0x1c7)+_0x53a2ba(0x235)+_0x53a2ba(0x23e)+_0x53a2ba(0x222),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':_0x53a2ba(0x256),'description':_0x53a2ba(0x238)+CODEBASE_SEARCH_QUERY_DESCRIPTION+'\x20'+_0x53a2ba(0x2b4)+'You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.\x20'+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':GITHUB_SEARCH_TOOL_NAME,'description':GITHUB_SEARCH_DESCRIPTION,'inputSchema':zodToJsonSchema(WarpGrepGitHubArgsSchema),'requiresApiKey':!![]}],_0x49756e=_0x4b928d[_0x53a2ba(0x25e)](_0x334afe=>{const _0x4cebdb=_0x53a2ba;if(DISABLED_TOOLS[_0x4cebdb(0x2be)](_0x334afe[_0x4cebdb(0x276)]))return console[_0x4cebdb(0x22f)](_0x4cebdb(0x1f4)+_0x334afe[_0x4cebdb(0x276)]+_0x4cebdb(0x24a)),![];if(_0x4cebdb(0x261)in _0x334afe&&_0x334afe[_0x4cebdb(0x261)]&&!MORPH_API_KEY)return logMcpStderr(_0x4cebdb(0x275)+_0x334afe['name']+'\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config'),![];return!![];});return{'tools':_0x49756e[_0x53a2ba(0x226)](_0x4f9559=>({'name':_0x4f9559[_0x53a2ba(0x276)],'description':_0x4f9559[_0x53a2ba(0x289)],'inputSchema':_0x4f9559[_0x53a2ba(0x1df)]}))};}),server['setRequestHandler'](CallToolRequestSchema,async _0x25025c=>{const _0x4a704f=a0_0x44994e,{name:_0x38dbbb,arguments:_0x43813e}=_0x25025c[_0x4a704f(0x1dc)];try{if(DISABLED_TOOLS[_0x4a704f(0x2be)](_0x38dbbb))throw new Error(_0x4a704f(0x241)+_0x38dbbb+_0x4a704f(0x293));switch(_0x38dbbb){case _0x4a704f(0x1e3):{const _0xade907=MorphEditFileArgsSchema[_0x4a704f(0x2a0)](_0x43813e);if(!_0xade907[_0x4a704f(0x283)])throw new Error(_0x4a704f(0x2c1)+_0xade907['error']);const _0x2fc471=await validatePath(_0xade907['data'][_0x4a704f(0x2b6)]);let _0x293b96=null,_0x42c824=!![],_0x475f50=null;try{_0x293b96=await a0_0x3e9020[_0x4a704f(0x1d8)](_0x2fc471,_0x4a704f(0x29e));}catch(_0x4f7051){const _0x272f6c=_0x4f7051[_0x4a704f(0x273)];_0x272f6c===_0x4a704f(0x267)?(_0x42c824=![],_0x293b96=''):(_0x475f50=_0x4a704f(0x2ba)+(_0x272f6c||'unknown')+'\x20-\x20'+(_0x4f7051 instanceof Error?_0x4f7051[_0x4a704f(0x286)]:String(_0x4f7051)),logMcpStderr(_0x4a704f(0x275)+_0x475f50));}let _0x1d8215;try{const _0x509fcc=MORPH_API_KEY;if(!_0x509fcc)throw new Error(_0x4a704f(0x28d));const _0x2bb5b9=a0_0x27dcdd[_0x4a704f(0x268)](_0x2fc471),_0x12d7d0=a0_0x27dcdd[_0x4a704f(0x228)](_0x2fc471),_0x1d83bb=await executeEditFile({'target_filepath':_0x12d7d0,'code_edit':_0xade907[_0x4a704f(0x23c)][_0x4a704f(0x1c8)],'instructions':_0xade907[_0x4a704f(0x23c)][_0x4a704f(0x295)]},{'morphApiKey':_0x509fcc,'morphApiUrl':MORPH_API_URL,'baseDir':_0x2bb5b9,'autoWrite':!_0xade907[_0x4a704f(0x23c)][_0x4a704f(0x279)],'generateUdiff':![],'debug':![]});_0x1d8215=_0x1d83bb['completionId'];if(!_0x1d83bb[_0x4a704f(0x283)])throw new Error(_0x1d83bb[_0x4a704f(0x22f)]||_0x4a704f(0x1dd));const _0x256120=_0x1d83bb['changes'],_0x1b8665=_0x4a704f(0x27c)+_0x256120[_0x4a704f(0x2a4)]+',\x20removed\x20'+_0x256120[_0x4a704f(0x233)]+_0x4a704f(0x2a7)+_0x256120['linesModified'];if(_0xade907[_0x4a704f(0x23c)][_0x4a704f(0x279)])return{'content':[{'type':_0x4a704f(0x1d5),'text':_0x4a704f(0x25d)+(_0x42c824?'':_0x4a704f(0x2b2))+':\x20'+_0xade907[_0x4a704f(0x23c)]['instruction']+_0x4a704f(0x240)+_0x1b8665+_0x4a704f(0x2b0)+_0xade907[_0x4a704f(0x23c)][_0x4a704f(0x2b6)]+'.'}]};return{'content':[{'type':_0x4a704f(0x1d5),'text':_0x4a704f(0x243)+(_0x42c824?_0x4a704f(0x23b):_0x4a704f(0x1c3))+':\x20'+_0xade907[_0x4a704f(0x23c)][_0x4a704f(0x295)]+'.\x20Changes:\x20'+_0x1b8665+_0x4a704f(0x2b0)+_0xade907['data'][_0x4a704f(0x2b6)]+'.'}]};}catch(_0x4f9e8e){const _0x440f33=_0x4f9e8e instanceof Error?_0x4f9e8e[_0x4a704f(0x286)]:String(_0x4f9e8e);return reportMorphError({'error_message':_0x440f33,'error_type':_0x4f9e8e instanceof Error?_0x4f9e8e[_0x4a704f(0x255)]['name']:'UnknownError','context':{'tool':_0x4a704f(0x1e3),'completion_id':_0x1d8215,'file_path':_0xade907[_0x4a704f(0x23c)][_0x4a704f(0x2b6)],'validated_path':_0x2fc471,'instruction':_0xade907[_0x4a704f(0x23c)][_0x4a704f(0x295)],'model':_0x4a704f(0x211),'dry_run':_0xade907[_0x4a704f(0x23c)][_0x4a704f(0x279)],'file_exists':_0x42c824,'file_read_error':_0x475f50,'file_readable':_0x293b96!==null,'request_content':{'path':_0xade907[_0x4a704f(0x23c)][_0x4a704f(0x2b6)],'code_edit':_0xade907[_0x4a704f(0x23c)][_0x4a704f(0x1c8)],'instruction':_0xade907[_0x4a704f(0x23c)][_0x4a704f(0x295)],'original_code':_0x293b96!==null?_0x293b96[_0x4a704f(0x1c5)]>0xc350?_0x293b96['substring'](0x0,0xc350)+_0x4a704f(0x2c2)+_0x293b96[_0x4a704f(0x1c5)]+'\x20chars)':_0x293b96:_0x4a704f(0x2ad)+(_0x475f50||'unknown\x20error')+']','original_code_length':_0x293b96?.['length']??0x0,'model':'morph-v3-fast','dry_run':_0xade907[_0x4a704f(0x23c)][_0x4a704f(0x279)]}},'stack_trace':_0x4f9e8e instanceof Error?_0x4f9e8e[_0x4a704f(0x24f)]:undefined,'source':'mcp-filesystem'})[_0x4a704f(0x2a3)](()=>{}),{'content':[{'type':_0x4a704f(0x1d5),'text':_0x4a704f(0x252)+_0x440f33}],'isError':!![]};}}case _0x4a704f(0x256):{const _0x122646=WarpGrepArgsSchema['safeParse'](_0x43813e);if(!_0x122646[_0x4a704f(0x283)])return{'content':[{'type':'text','text':_0x4a704f(0x201)+_0x122646[_0x4a704f(0x22f)]}],'isError':!![]};const _0x408e22=_0x3b4198=>{const _0x2faeb5=_0x4a704f,_0x542582=[];for(const _0x11eaa8 of _0x3b4198||[]){const _0x533a6f=_0x11eaa8[_0x2faeb5(0x1cd)],_0x46ae3e=_0x11eaa8[_0x2faeb5(0x299)];if(_0x533a6f===_0x2faeb5(0x26c)&&_0x46ae3e){const _0x23388f=_0x46ae3e[_0x2faeb5(0x244)]('\x0a')[_0x2faeb5(0x25e)](_0x36f6c0=>_0x36f6c0[_0x2faeb5(0x21e)]());for(const _0x743767 of _0x23388f){const _0x18fe25=_0x743767['match'](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x18fe25){_0x542582[_0x2faeb5(0x220)]('grep\x20\x27'+_0x18fe25[0x1]+'\x27\x20'+_0x18fe25[0x2]);continue;}const _0x4ba6bb=_0x743767['match'](/^read\s+(.+)$/);if(_0x4ba6bb){_0x542582[_0x2faeb5(0x220)](_0x2faeb5(0x1c9)+_0x4ba6bb[0x1]);continue;}const _0xa5c4b5=_0x743767[_0x2faeb5(0x28b)](/^list_directory\s+(.+)$/);if(_0xa5c4b5){_0x542582[_0x2faeb5(0x220)](_0x2faeb5(0x28a)+_0xa5c4b5[0x1]);continue;}}}}return _0x542582;},_0x92f336=_0x5918dd=>{const _0x285390=_0x4a704f,_0x283e75=[];if(!_0x5918dd||!Array[_0x285390(0x1c4)](_0x5918dd))return _0x283e75;const _0x537d7f=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':_0x285390(0x2c6),'tool':_0x285390(0x2ac)},{'pattern':/\[PATH ERROR\]/,'error_type':'PathError','tool':_0x285390(0x2ac)},{'pattern':/\[READ ERROR\]/,'error_type':'ReadError','tool':_0x285390(0x2ac)},{'pattern':/\[UNREADABLE FILE\]/,'error_type':_0x285390(0x28c),'tool':_0x285390(0x2ac)},{'pattern':/\[RIPGREP ERROR\]/,'error_type':_0x285390(0x27e),'tool':'grep'},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x285390(0x20a),'tool':'grep'},{'pattern':/\[BINARY FILE\]/,'error_type':_0x285390(0x28c),'tool':_0x285390(0x2ac)},{'pattern':/\[SYMLINK\]/,'error_type':_0x285390(0x1ed),'tool':'read'},{'pattern':/not a text file/,'error_type':_0x285390(0x28c),'tool':'read'},{'pattern':/symbolic link/,'error_type':'SymlinkError','tool':_0x285390(0x2ac)},{'pattern':/Error reading file:/,'error_type':_0x285390(0x2aa),'tool':'read'},{'pattern':/status="error"/,'error_type':_0x285390(0x1e5),'tool':_0x285390(0x234)}];let _0x249a27=0x0;for(const _0x598ab of _0x5918dd){if(_0x598ab['role']===_0x285390(0x25c)){_0x249a27++;const _0x52def7=_0x598ab[_0x285390(0x299)];if(!_0x52def7||typeof _0x52def7!==_0x285390(0x22e))continue;for(const {pattern:_0x53ab9e,error_type:_0x2d79ef,tool:_0x434838}of _0x537d7f){const _0x4dc3fa=_0x52def7[_0x285390(0x28b)](new RegExp(_0x53ab9e['source'],'g'));if(_0x4dc3fa)for(const _0x3efacf of _0x4dc3fa){const _0x2ca6c6=_0x52def7[_0x285390(0x249)](_0x3efacf),_0x4d004f=_0x52def7['substring'](_0x2ca6c6,Math[_0x285390(0x221)](_0x2ca6c6+0xc8,_0x52def7[_0x285390(0x1c5)]));_0x283e75[_0x285390(0x220)]({'tool':_0x434838,'error_type':_0x2d79ef,'error_message':_0x4d004f[_0x285390(0x244)]('\x0a')[0x0],'turn':_0x249a27});}}}}return _0x283e75;};try{const _0x5a156f=a0_0x27dcdd[_0x4a704f(0x281)](_0x122646[_0x4a704f(0x23c)][_0x4a704f(0x22d)]),_0x13a130=_0x122646[_0x4a704f(0x23c)][_0x4a704f(0x29c)],_0x5aa980=_0x13a130===_0x4a704f(0x2b8)?{'allowNames':[_0x4a704f(0x2b8)]}:undefined,_0x12205f=new LocalRipgrepProvider(_0x5a156f,undefined,_0x5aa980),_0x1db7b1=await runWarpGrep({'searchTerm':_0x122646[_0x4a704f(0x23c)]['search_string'],'repoRoot':_0x5a156f,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x12205f,'search_type':_0x13a130}),_0x567997=_0x92f336(_0x1db7b1['messages']);_0x567997[_0x4a704f(0x1c5)]>0x0&&reportMorphError({'error_message':_0x4a704f(0x224)+_0x567997[_0x4a704f(0x1c5)]+'\x20error(s)','error_type':_0x4a704f(0x1d6),'level':_0x4a704f(0x216),'tool':_0x4a704f(0x256),'context':{'repo_path':_0x122646[_0x4a704f(0x23c)][_0x4a704f(0x22d)],'query':_0x122646[_0x4a704f(0x23c)][_0x4a704f(0x1ef)],'model':_0x4a704f(0x2ae),'termination_reason':_0x1db7b1['terminationReason'],'sub_tool_errors':_0x567997,'timings':_0x1db7b1['timings'],'tool_calls':_0x408e22(_0x1db7b1[_0x4a704f(0x29b)]),'messages':_0x1db7b1['messages']?.[_0x4a704f(0x226)](_0x45c9ba=>({'role':_0x45c9ba[_0x4a704f(0x1cd)],'content':_0x45c9ba[_0x4a704f(0x299)]}))},'source':_0x4a704f(0x2c4)})['catch'](()=>{});let _0x3031ee='';if(_0x1db7b1[_0x4a704f(0x1d2)]===_0x4a704f(0x1d9)&&_0x1db7b1['finish']?.['metadata']?.['files']){const _0x198b99=_0x1db7b1[_0x4a704f(0x1e0)]['metadata']['files'];if(_0x198b99[_0x4a704f(0x1c5)]===0x0)return _0x3031ee=_0x1db7b1[_0x4a704f(0x1e0)][_0x4a704f(0x1e6)]||_0x4a704f(0x23a),{'content':[{'type':_0x4a704f(0x1d5),'text':_0x3031ee}]};const _0x18e323=[],_0x25d9d3=['Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:'];for(const _0x1c33ef of _0x1db7b1[_0x4a704f(0x29b)]){const _0x69cc17=_0x1c33ef[_0x4a704f(0x1cd)],_0x3eb5a5=_0x1c33ef[_0x4a704f(0x299)];if(_0x69cc17===_0x4a704f(0x26c)&&_0x3eb5a5){const _0x30ca7c=_0x3eb5a5[_0x4a704f(0x244)]('\x0a')[_0x4a704f(0x25e)](_0x36a188=>_0x36a188[_0x4a704f(0x21e)]());for(const _0x81cbfa of _0x30ca7c){const _0x43cdc4=_0x81cbfa[_0x4a704f(0x28b)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x43cdc4){_0x25d9d3[_0x4a704f(0x220)](_0x4a704f(0x225)+_0x43cdc4[0x1]+_0x4a704f(0x1ca)+_0x43cdc4[0x2]+'`');continue;}const _0x3c6c9d=_0x81cbfa['match'](/^read\s+(.+)$/);if(_0x3c6c9d){_0x25d9d3[_0x4a704f(0x220)](_0x4a704f(0x262)+_0x3c6c9d[0x1]+'`');continue;}const _0x170df8=_0x81cbfa[_0x4a704f(0x28b)](/^list_directory\s+(.+)$/);if(_0x170df8){_0x25d9d3[_0x4a704f(0x220)](_0x4a704f(0x237)+_0x170df8[0x1]+'`');continue;}}}}_0x18e323[_0x4a704f(0x220)](_0x25d9d3['join']('\x0a'));const _0x3015db=['',_0x4a704f(0x2a5)];for(const _0x556c35 of _0x198b99){if(_0x556c35[_0x4a704f(0x2b7)]==='*')_0x3015db['push']('-\x20'+_0x556c35[_0x4a704f(0x2b6)]+':*');else{if(Array[_0x4a704f(0x1c4)](_0x556c35['lines'])){const _0x46b449=_0x556c35['lines']['map'](([_0x1175f7,_0x41f1c6])=>{if(_0x1175f7===_0x41f1c6)return''+_0x1175f7;return _0x1175f7+'-'+_0x41f1c6;});_0x3015db['push']('-\x20'+_0x556c35[_0x4a704f(0x2b6)]+':'+_0x46b449[_0x4a704f(0x245)](','));}else _0x3015db['push']('-\x20'+_0x556c35['path']+':*');}}_0x3015db[_0x4a704f(0x220)](''),_0x18e323[_0x4a704f(0x220)](_0x3015db[_0x4a704f(0x245)]('\x0a')),_0x18e323[_0x4a704f(0x220)](_0x4a704f(0x1fa));const _0x50b8a8=[];for(const _0x484aa8 of _0x198b99){let _0x42aa3b=a0_0x27dcdd[_0x4a704f(0x281)](_0x122646[_0x4a704f(0x23c)]['repo_path'],_0x484aa8[_0x4a704f(0x2b6)]),_0xb96d21=null,_0x4741a0=null;try{_0xb96d21=await a0_0x3e9020['readFile'](_0x42aa3b,{'encoding':_0x4a704f(0x29e)});}catch(_0x25f17b){const _0x3f5705=fixPathRepetition(_0x42aa3b);if(_0x3f5705)try{_0xb96d21=await a0_0x3e9020[_0x4a704f(0x1d8)](_0x3f5705,{'encoding':_0x4a704f(0x29e)}),_0x42aa3b=_0x3f5705;}catch{_0x4741a0=_0x25f17b instanceof Error?_0x25f17b:new Error(String(_0x25f17b));}else _0x4741a0=_0x25f17b instanceof Error?_0x25f17b:new Error(String(_0x25f17b));}if(_0xb96d21!==null){const _0x2507ed=_0xb96d21[_0x4a704f(0x244)](/\r?\n/),_0x1e11eb=[_0x4a704f(0x2bd)+_0x484aa8['path']+'\x22>'];if(_0x484aa8[_0x4a704f(0x2b7)]==='*'||!Array[_0x4a704f(0x1c4)](_0x484aa8[_0x4a704f(0x2b7)]))for(let _0x35b7dc=0x1;_0x35b7dc<=_0x2507ed[_0x4a704f(0x1c5)];_0x35b7dc++){const _0xc8f90d=_0x2507ed[_0x35b7dc-0x1];_0x1e11eb[_0x4a704f(0x220)](_0x35b7dc+'|\x20'+_0xc8f90d);}else for(const [_0x1ca85a,_0x4fd237]of _0x484aa8[_0x4a704f(0x2b7)]){_0x1e11eb[_0x4a704f(0x1c5)]>0x1&&_0x1e11eb[_0x4a704f(0x220)]('');for(let _0x19337c=_0x1ca85a;_0x19337c<=_0x4fd237&&_0x19337c<=_0x2507ed[_0x4a704f(0x1c5)];_0x19337c++){const _0x2f2b53=_0x2507ed[_0x19337c-0x1];_0x1e11eb[_0x4a704f(0x220)](_0x19337c+'|\x20'+_0x2f2b53);}}_0x1e11eb[_0x4a704f(0x220)](_0x4a704f(0x2bb)),_0x50b8a8[_0x4a704f(0x220)](_0x1e11eb[_0x4a704f(0x245)]('\x0a'));}else _0x50b8a8[_0x4a704f(0x220)](_0x4a704f(0x2bd)+_0x484aa8['path']+'\x22>\x0aError\x20reading\x20file:\x20'+(_0x4741a0?.['message']||'Unknown\x20error')+_0x4a704f(0x1fc));}_0x18e323[_0x4a704f(0x220)](_0x50b8a8['join']('\x0a\x0a')),_0x3031ee=_0x18e323[_0x4a704f(0x245)]('\x0a');const _0xddd531=_0x1db7b1[_0x4a704f(0x232)]?.['filter'](_0x49c09c=>_0x49c09c[_0x4a704f(0x286)]?.[_0x4a704f(0x1f1)](_0x4a704f(0x250)))||[];if(_0xddd531[_0x4a704f(0x1c5)]>0x0){const _0x39d789=_0xddd531[_0x4a704f(0x226)](_0x157d24=>_0x157d24[_0x4a704f(0x286)])[_0x4a704f(0x245)](';\x20');reportMorphError({'error_message':_0x39d789,'error_type':_0x4a704f(0x287),'context':{'tool':_0x4a704f(0x256),'repo_path':_0x122646['data'][_0x4a704f(0x22d)],'query':_0x122646[_0x4a704f(0x23c)][_0x4a704f(0x1ef)],'model':'morph-warp-grep-v1-1111v0','termination_reason':'completed_with_file_errors','error_count':_0xddd531[_0x4a704f(0x1c5)],'is_timeout':![],'timings':_0x1db7b1[_0x4a704f(0x291)],'files_attempted':_0x198b99['map'](_0x4e65bb=>({'path':_0x4e65bb[_0x4a704f(0x2b6)],'lines':_0x4e65bb[_0x4a704f(0x2b7)]})),'tool_calls':_0x408e22(_0x1db7b1[_0x4a704f(0x29b)]),'messages':_0x1db7b1[_0x4a704f(0x29b)]?.[_0x4a704f(0x226)](_0x3a02e3=>({'role':_0x3a02e3['role'],'content':_0x3a02e3[_0x4a704f(0x299)]})),'request_content':{'query':_0x122646[_0x4a704f(0x23c)][_0x4a704f(0x1ef)],'repo_path':_0x122646[_0x4a704f(0x23c)][_0x4a704f(0x22d)],'repoRoot':a0_0x27dcdd[_0x4a704f(0x281)](_0x122646[_0x4a704f(0x23c)][_0x4a704f(0x22d)]),'model':_0x4a704f(0x2ae)}},'source':_0x4a704f(0x2c4)})[_0x4a704f(0x2a3)](()=>{});}}else{if(_0x1db7b1[_0x4a704f(0x1d2)]===_0x4a704f(0x292)&&_0x1db7b1[_0x4a704f(0x232)][_0x4a704f(0x1c5)]>0x0){const _0x5c2939=_0x1db7b1[_0x4a704f(0x232)][_0x4a704f(0x226)](_0x1c39b1=>_0x1c39b1['message'])['join'](';\x20');_0x3031ee=_0x4a704f(0x26e)+_0x5c2939;const _0x3ab7c9=_0x5c2939[_0x4a704f(0x1de)]()['includes']('timeout')||_0x5c2939[_0x4a704f(0x1de)]()[_0x4a704f(0x26a)](_0x4a704f(0x24c))||_0x5c2939[_0x4a704f(0x1de)]()[_0x4a704f(0x26a)]('etimedout'),_0x1627c9=_0x1db7b1['finish']?.[_0x4a704f(0x1c0)]?.[_0x4a704f(0x263)],_0xb77a36=_0x1db7b1[_0x4a704f(0x232)][0x0];reportMorphError({'error_message':_0x5c2939,'error_type':_0x3ab7c9?_0x4a704f(0x24d):_0xb77a36?.[_0x4a704f(0x255)]?.[_0x4a704f(0x276)]||_0x4a704f(0x1d3),'context':{'tool':'codebase_search','repo_path':_0x122646['data'][_0x4a704f(0x22d)],'query':_0x122646[_0x4a704f(0x23c)][_0x4a704f(0x1ef)],'model':_0x4a704f(0x2ae),'termination_reason':_0x1db7b1[_0x4a704f(0x1d2)],'error_count':_0x1db7b1[_0x4a704f(0x232)][_0x4a704f(0x1c5)],'is_timeout':_0x3ab7c9,'timings':_0x1db7b1[_0x4a704f(0x291)],'files_attempted':_0x1627c9?.['map'](_0x294c06=>({'path':_0x294c06[_0x4a704f(0x2b6)],'lines':_0x294c06['lines']})),'tool_calls':_0x408e22(_0x1db7b1[_0x4a704f(0x29b)]),'messages':_0x1db7b1[_0x4a704f(0x29b)]?.[_0x4a704f(0x226)](_0x1f2e8d=>({'role':_0x1f2e8d['role'],'content':_0x1f2e8d[_0x4a704f(0x299)]})),'request_content':{'query':_0x122646[_0x4a704f(0x23c)][_0x4a704f(0x1ef)],'repo_path':_0x122646['data'][_0x4a704f(0x22d)],'repoRoot':a0_0x27dcdd[_0x4a704f(0x281)](_0x122646[_0x4a704f(0x23c)]['repo_path']),'model':_0x4a704f(0x2ae)}},'stack_trace':_0xb77a36?.[_0x4a704f(0x24f)]||undefined,'source':_0x4a704f(0x2c4)})[_0x4a704f(0x2a3)](()=>{});}else _0x3031ee=_0x4a704f(0x1f6);}return{'content':[{'type':_0x4a704f(0x1d5),'text':_0x3031ee}]};}catch(_0x354c3c){const _0xb1070d=_0x354c3c instanceof Error?_0x354c3c[_0x4a704f(0x286)]:String(_0x354c3c),_0x1b08d0=_0xb1070d[_0x4a704f(0x1de)]()[_0x4a704f(0x26a)]('timeout')||_0xb1070d[_0x4a704f(0x1de)]()[_0x4a704f(0x26a)](_0x4a704f(0x24c))||_0xb1070d['toLowerCase']()['includes']('etimedout')||_0x354c3c instanceof Error&&_0x354c3c['name']===_0x4a704f(0x24d);return reportMorphError({'error_message':_0xb1070d,'error_type':_0x1b08d0?'TimeoutError':_0x354c3c instanceof Error?_0x354c3c['constructor'][_0x4a704f(0x276)]:_0x4a704f(0x21f),'context':{'tool':_0x4a704f(0x256),'repo_path':_0x122646[_0x4a704f(0x23c)]['repo_path'],'query':_0x122646[_0x4a704f(0x23c)][_0x4a704f(0x1ef)],'model':_0x4a704f(0x2ae),'is_timeout':_0x1b08d0,'exception_phase':_0x4a704f(0x1fd),'request_content':{'query':_0x122646[_0x4a704f(0x23c)]['search_string'],'repo_path':_0x122646[_0x4a704f(0x23c)][_0x4a704f(0x22d)],'repoRoot':a0_0x27dcdd[_0x4a704f(0x281)](_0x122646[_0x4a704f(0x23c)][_0x4a704f(0x22d)]),'model':_0x4a704f(0x2ae)}},'stack_trace':_0x354c3c instanceof Error?_0x354c3c['stack']:undefined,'source':_0x4a704f(0x2c4)})[_0x4a704f(0x2a3)](()=>{}),{'content':[{'type':'text','text':'Error\x20running\x20fast\x20context\x20search:\x20'+_0xb1070d}],'isError':![]};}}case'github_codebase_search':{const _0x3f3c06=WarpGrepGitHubArgsSchema['safeParse'](_0x43813e);if(!_0x3f3c06['success'])return{'content':[{'type':'text','text':_0x4a704f(0x201)+_0x3f3c06[_0x4a704f(0x22f)]}],'isError':!![]};const _0x20eb7d=_0x3f3c06[_0x4a704f(0x23c)][_0x4a704f(0x2b9)]||_0x3f3c06[_0x4a704f(0x23c)][_0x4a704f(0x258)];if(!_0x20eb7d)return{'content':[{'type':'text','text':_0x4a704f(0x218)}],'isError':!![]};const _0x3da30f=MORPH_API_KEY;if(!_0x3da30f)throw new Error(_0x4a704f(0x28d));const _0x40a3a3=Date['now']();logMcpStderr(_0x4a704f(0x1e1)+_0x20eb7d+'\x20for:\x20\x22'+_0x3f3c06[_0x4a704f(0x23c)][_0x4a704f(0x1ef)]+'\x22');try{const _0x54742a=new WarpGrepClient({'morphApiKey':_0x3da30f,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0x39688c=await _0x54742a[_0x4a704f(0x298)]({'searchTerm':_0x3f3c06[_0x4a704f(0x23c)]['search_string'],'github':_0x20eb7d,'branch':_0x3f3c06[_0x4a704f(0x23c)][_0x4a704f(0x1db)]}),_0x2a9eb0=Date[_0x4a704f(0x230)]()-_0x40a3a3;logMcpStderr(_0x4a704f(0x2a8)+_0x2a9eb0+'ms.\x20Success:\x20'+_0x39688c[_0x4a704f(0x283)]);const _0x4130bb=formatResult(_0x39688c);return{'content':[{'type':_0x4a704f(0x1d5),'text':_0x4130bb}]};}catch(_0x2f8012){const _0x5c90b5=Date[_0x4a704f(0x230)]()-_0x40a3a3,_0x25b1be=_0x2f8012 instanceof Error?_0x2f8012[_0x4a704f(0x286)]:String(_0x2f8012);return logMcpStderr(_0x4a704f(0x246)+_0x5c90b5+_0x4a704f(0x20f),_0x25b1be),reportMorphError({'error_message':_0x25b1be,'error_type':_0x2f8012 instanceof Error?_0x2f8012[_0x4a704f(0x255)][_0x4a704f(0x276)]:_0x4a704f(0x21f),'context':{'tool':_0x4a704f(0x2c7),'github_url':_0x20eb7d,'search_string':_0x3f3c06[_0x4a704f(0x23c)][_0x4a704f(0x1ef)],'branch':_0x3f3c06[_0x4a704f(0x23c)][_0x4a704f(0x1db)]},'stack_trace':_0x2f8012 instanceof Error?_0x2f8012[_0x4a704f(0x24f)]:undefined,'source':_0x4a704f(0x2c4),'tool':_0x4a704f(0x2c7),'latency_ms':_0x5c90b5})[_0x4a704f(0x2a3)](()=>{}),{'content':[{'type':_0x4a704f(0x1d5),'text':'GitHub\x20search\x20failed:\x20'+_0x25b1be}],'isError':![]};}}default:throw new Error('Unknown\x20tool:\x20'+_0x38dbbb);}}catch(_0xf0a21e){const _0x3db1d4=_0xf0a21e instanceof Error?_0xf0a21e[_0x4a704f(0x286)]:String(_0xf0a21e);return reportMorphError({'error_message':_0x3db1d4,'error_type':_0xf0a21e instanceof Error?_0xf0a21e[_0x4a704f(0x255)][_0x4a704f(0x276)]:_0x4a704f(0x21f),'context':{'tool':_0x38dbbb,'arguments':_0x43813e?JSON['stringify'](_0x43813e)['substring'](0x0,0x1f4):undefined,'mcp_server_version':_0x4a704f(0x260)},'stack_trace':_0xf0a21e instanceof Error?_0xf0a21e[_0x4a704f(0x24f)]:undefined,'source':'mcp-filesystem'})[_0x4a704f(0x2a3)](()=>{}),{'content':[{'type':_0x4a704f(0x1d5),'text':'Error:\x20'+_0x3db1d4}],'isError':!![]};}});function a0_0x2846(_0x9b3e78,_0x6cee06){_0x9b3e78=_0x9b3e78-0x1c0;const _0x4e409f=a0_0x4e40();let _0x28467a=_0x4e409f[_0x9b3e78];return _0x28467a;}async function updateAllowedDirectoriesFromRoots(_0x4c2ffb){const _0x4a88f2=a0_0x44994e,_0x390386=await getValidRootDirectories(_0x4c2ffb);if(_0x390386['length']>0x0)allowedDirectories=[..._0x390386],logMcpStderr(_0x4a88f2(0x2a2)+_0x390386[_0x4a88f2(0x1c5)]+_0x4a88f2(0x284));else{logMcpStderr(_0x4a88f2(0x1ea));if(ENABLE_WORKSPACE_MODE)try{const _0x3c76cd=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x3c76cd&&(allowedDirectories=[_0x3c76cd],logMcpStderr(_0x4a88f2(0x282)+_0x3c76cd));}catch(_0x59664a){logMcpStderr('Warning:\x20Workspace\x20fallback\x20failed:\x20'+_0x59664a);}}}server[a0_0x44994e(0x253)](RootsListChangedNotificationSchema,async()=>{const _0x5d77ef=a0_0x44994e;try{const _0x2e3098=await server[_0x5d77ef(0x212)]();_0x2e3098&&_0x5d77ef(0x23d)in _0x2e3098&&await updateAllowedDirectoriesFromRoots(_0x2e3098[_0x5d77ef(0x23d)]);}catch(_0x43c7f4){logMcpStderr('Failed\x20to\x20request\x20roots\x20from\x20client:',_0x43c7f4 instanceof Error?_0x43c7f4['message']:String(_0x43c7f4));}}),server['oninitialized']=async()=>{const _0x59e97a=a0_0x44994e,_0x206553=server[_0x59e97a(0x200)]();if(_0x206553?.[_0x59e97a(0x23d)])try{const _0x1e5ba8=await server[_0x59e97a(0x212)]();_0x1e5ba8&&'roots'in _0x1e5ba8?await updateAllowedDirectoriesFromRoots(_0x1e5ba8[_0x59e97a(0x23d)]):logMcpStderr('Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings');}catch(_0x54cc75){logMcpStderr(_0x59e97a(0x2af),_0x54cc75 instanceof Error?_0x54cc75[_0x59e97a(0x286)]:String(_0x54cc75));}else{if(allowedDirectories[_0x59e97a(0x1c5)]>0x0)logMcpStderr(_0x59e97a(0x239),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)logMcpStderr(_0x59e97a(0x247));else throw new Error(_0x59e97a(0x2bc));}}};async function runServer(){const _0x1f403d=a0_0x44994e,_0x1ec749=new StdioServerTransport();await server[_0x1f403d(0x269)](_0x1ec749),logMcpStderr('Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio'),allowedDirectories[_0x1f403d(0x1c5)]===0x0&&logMcpStderr(_0x1f403d(0x231));}runServer()[a0_0x44994e(0x2a3)](_0x2e4d4a=>{logMcpStderr('Fatal\x20error\x20running\x20server:',_0x2e4d4a),process['exit'](0x1);});
|
|
2
|
+
const a0_0x5417d0=a0_0x462f;(function(_0x24e0c6,_0x4d228c){const _0x48b43e=a0_0x462f,_0x4d6c68=_0x24e0c6();while(!![]){try{const _0x2dffb9=-parseInt(_0x48b43e(0x1f0))/0x1*(-parseInt(_0x48b43e(0x1da))/0x2)+-parseInt(_0x48b43e(0x16b))/0x3+-parseInt(_0x48b43e(0x181))/0x4*(parseInt(_0x48b43e(0x178))/0x5)+-parseInt(_0x48b43e(0x1f9))/0x6+-parseInt(_0x48b43e(0x1f3))/0x7+-parseInt(_0x48b43e(0x15a))/0x8*(-parseInt(_0x48b43e(0x1d4))/0x9)+parseInt(_0x48b43e(0x1b3))/0xa*(parseInt(_0x48b43e(0x172))/0xb);if(_0x2dffb9===_0x4d228c)break;else _0x4d6c68['push'](_0x4d6c68['shift']());}catch(_0xfc3354){_0x4d6c68['push'](_0x4d6c68['shift']());}}}(a0_0x4d4b,0x86f0e));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_0x8c62a7 from'fs/promises';import a0_0x5e6b08 from'path';import a0_0x4a6458 from'os';import{createRequire}from'module';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';import{getOperatingSystemType,logMcpStderr}from'./log-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 a0_0xb47080 from'axios';function fixPathRepetition(_0x5ac938){const _0x3eb4a4=a0_0x462f,_0xaa0649=_0x5ac938[_0x3eb4a4(0x1f6)](a0_0x5e6b08[_0x3eb4a4(0x177)])['filter'](Boolean);if(_0xaa0649[_0x3eb4a4(0x217)]<0x2)return null;for(let _0x21021f=Math[_0x3eb4a4(0x15b)](_0xaa0649[_0x3eb4a4(0x217)]/0x2);_0x21021f>=0x1;_0x21021f--){for(let _0x25de96=0x0;_0x25de96<=_0xaa0649[_0x3eb4a4(0x217)]-0x2*_0x21021f;_0x25de96++){const _0x112900=_0xaa0649[_0x3eb4a4(0x162)](_0x25de96,_0x25de96+_0x21021f),_0x5d82ee=_0xaa0649[_0x3eb4a4(0x162)](_0x25de96+_0x21021f,_0x25de96+0x2*_0x21021f);if(_0x112900['every']((_0x5d3ff7,_0x55b153)=>_0x5d3ff7===_0x5d82ee[_0x55b153])){const _0x55987f=[..._0xaa0649[_0x3eb4a4(0x162)](0x0,_0x25de96),..._0xaa0649[_0x3eb4a4(0x162)](_0x25de96+_0x21021f)];return a0_0x5e6b08[_0x3eb4a4(0x177)]+_0x55987f['join'](a0_0x5e6b08['sep']);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x3653c0=a0_0x462f;try{const _0x2e9a55=require('../package.json');return _0x2e9a55[_0x3653c0(0x159)]??'unknown';}catch(_0x52908c){return logMcpStderr('Warning:\x20Unable\x20to\x20determine\x20package\x20version:',_0x52908c),'unknown';}}function printHelp(){const _0x3e6402=a0_0x462f;console[_0x3e6402(0x1ad)](_0x3e6402(0x1d9)+getPackageVersion()),console[_0x3e6402(0x1ad)]('\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]'),console[_0x3e6402(0x1ad)]('\x0aOptions:'),console['log']('\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)'),console[_0x3e6402(0x1ad)](_0x3e6402(0x207)),console[_0x3e6402(0x1ad)](_0x3e6402(0x20d)),console['log']('\x0aExamples:'),console['log']('\x20\x20morph-mcp'),console['log'](_0x3e6402(0x237));}const cliArgs=process[a0_0x5417d0(0x23a)]['slice'](0x2),VERSION_FLAGS=new Set([a0_0x5417d0(0x153),'-v','-V']),HELP_FLAGS=new Set([a0_0x5417d0(0x23f),'-h']);cliArgs[a0_0x5417d0(0x15c)](_0x455fe2=>VERSION_FLAGS[a0_0x5417d0(0x17f)](_0x455fe2))&&(console[a0_0x5417d0(0x1ad)](a0_0x5417d0(0x1d9)+getPackageVersion()),process[a0_0x5417d0(0x198)](0x0));cliArgs[a0_0x5417d0(0x15c)](_0xdaa2a2=>HELP_FLAGS[a0_0x5417d0(0x17f)](_0xdaa2a2))&&(printHelp(),process['exit'](0x0));function a0_0x462f(_0x15d807,_0x4f2f2f){_0x15d807=_0x15d807-0x150;const _0x4d4ba5=a0_0x4d4b();let _0x462f7a=_0x4d4ba5[_0x15d807];return _0x462f7a;}function getCliArg(_0xe1d6af){const _0x326c3c=a0_0x5417d0;for(let _0x538de4=0x0;_0x538de4<cliArgs[_0x326c3c(0x217)];_0x538de4++){const _0x36261e=cliArgs[_0x538de4];if(_0x36261e[_0x326c3c(0x239)]('--'+_0xe1d6af+'='))return _0x36261e[_0x326c3c(0x162)](('--'+_0xe1d6af+'=')[_0x326c3c(0x217)]);if(_0x36261e==='--'+_0xe1d6af&&_0x538de4+0x1<cliArgs[_0x326c3c(0x217)])return cliArgs[_0x538de4+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs[a0_0x5417d0(0x217)];i++){const arg=cliArgs[i];if(VERSION_FLAGS[a0_0x5417d0(0x17f)](arg)||HELP_FLAGS[a0_0x5417d0(0x17f)](arg))continue;if(arg[a0_0x5417d0(0x239)]('--api-key='))continue;if(arg===a0_0x5417d0(0x22a)){i++;continue;}args['push'](arg);}const WORKSPACE_ROOT=process[a0_0x5417d0(0x190)][a0_0x5417d0(0x17d)]||process[a0_0x5417d0(0x190)][a0_0x5417d0(0x1a0)]||process['cwd'](),ENABLE_WORKSPACE_MODE=process['env'][a0_0x5417d0(0x1c4)]!=='false',MORPH_API_KEY=getCliArg(a0_0x5417d0(0x1d6))??process[a0_0x5417d0(0x190)][a0_0x5417d0(0x1d1)],MORPH_API_URL=process[a0_0x5417d0(0x190)][a0_0x5417d0(0x18e)],MORPH_WARP_GREP_TIMEOUT=process[a0_0x5417d0(0x190)][a0_0x5417d0(0x167)]?parseInt(process['env'][a0_0x5417d0(0x167)],0xa):undefined,OPERATING_SYSTEM_TYPE=getOperatingSystemType(),KNOWN_TOOL_NAMES=new Set([a0_0x5417d0(0x225),a0_0x5417d0(0x248),a0_0x5417d0(0x1c7)]),DISABLED_TOOLS=process['env'][a0_0x5417d0(0x161)]?new Set(process[a0_0x5417d0(0x190)][a0_0x5417d0(0x161)][a0_0x5417d0(0x1f6)](',')[a0_0x5417d0(0x1e2)](_0x82d812=>_0x82d812[a0_0x5417d0(0x1e4)]())[a0_0x5417d0(0x1bb)](_0x4c948c=>_0x4c948c[a0_0x5417d0(0x217)]>0x0)):new Set();if(DISABLED_TOOLS[a0_0x5417d0(0x1b5)]>0x0){for(const tool of DISABLED_TOOLS){!KNOWN_TOOL_NAMES[a0_0x5417d0(0x17f)](tool)&&console[a0_0x5417d0(0x246)](a0_0x5417d0(0x1e1)+tool+a0_0x5417d0(0x1c5)+[...KNOWN_TOOL_NAMES][a0_0x5417d0(0x1b0)](',\x20'));}console[a0_0x5417d0(0x246)]('Disabled\x20tools:\x20'+[...DISABLED_TOOLS][a0_0x5417d0(0x1b0)](',\x20'));}MORPH_API_KEY&&!MORPH_API_KEY[a0_0x5417d0(0x239)](a0_0x5417d0(0x191))&&!MORPH_API_KEY[a0_0x5417d0(0x239)]('morph-')&&logMcpStderr(a0_0x5417d0(0x23c));async function reportMorphError(_0x39194e){const _0x17fe52=a0_0x5417d0;try{await a0_0xb47080[_0x17fe52(0x171)]('https://morphllm.com/api/error-report',{..._0x39194e,'timestamp':new Date()[_0x17fe52(0x1cf)](),'source':_0x39194e['source']||_0x17fe52(0x17b),'os_type':OPERATING_SYSTEM_TYPE,'context':{'os_type':OPERATING_SYSTEM_TYPE,..._0x39194e[_0x17fe52(0x1c1)]}},{'timeout':0x1388,'headers':{'Content-Type':_0x17fe52(0x1fe),'Authorization':_0x17fe52(0x19e)+MORPH_API_KEY}});}catch{}}args[a0_0x5417d0(0x217)]===0x0&&!ENABLE_WORKSPACE_MODE&&(logMcpStderr('Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]'),logMcpStderr(a0_0x5417d0(0x1f1)),logMcpStderr(a0_0x5417d0(0x1f7)),logMcpStderr(a0_0x5417d0(0x234)),logMcpStderr(a0_0x5417d0(0x16e)),logMcpStderr(a0_0x5417d0(0x17e)));function normalizePath(_0x104652){return a0_0x5e6b08['normalize'](_0x104652);}function expandHome(_0x5c9abb){const _0x860d6=a0_0x5417d0;if(_0x5c9abb[_0x860d6(0x239)]('~/')||_0x5c9abb==='~')return a0_0x5e6b08['join'](a0_0x4a6458[_0x860d6(0x1fc)](),_0x5c9abb['slice'](0x1));return _0x5c9abb;}let allowedDirectories=await Promise[a0_0x5417d0(0x1f5)](args[a0_0x5417d0(0x1e2)](async _0x942478=>{const _0x52b470=a0_0x5417d0,_0x522dc4=expandHome(_0x942478),_0x2e676b=a0_0x5e6b08[_0x52b470(0x19b)](_0x522dc4);try{const _0x3dd2f1=await a0_0x8c62a7[_0x52b470(0x183)](_0x2e676b);return normalizePath(_0x3dd2f1);}catch(_0x5e9405){return normalizePath(_0x2e676b);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x5417d0(0x217)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x5417d0(0x199)](workspaceDir),logMcpStderr(a0_0x5417d0(0x22c)+workspaceDir+'\x20as\x20allowed\x20directory'));}catch(a0_0x2c221d){logMcpStderr(a0_0x5417d0(0x1e7)+a0_0x2c221d);}function a0_0x4d4b(){const _0x4f756e=['Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','morph-v3-fast','Unknown\x20error','metadata','ENOENT','Cargo.toml','oninitialized','Here\x20is\x20the\x20content\x20of\x20files:\x0a','57481lRCOey','Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','3604804CkEvTy','Morph\x20Edit\x20','all','split','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','branch','2999586VZEOfI','default','Benefits:\x0a','homedir','read\x20','application/json','toLowerCase','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','finish','changes','timed\x20out','Repository\x20owner/repo\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.','added\x20','Invalid\x20arguments:\x20','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','WarpGrepError','For\x20deletions:\x0a','node_modules','repo_path','Error:\x20','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','timeout','.\x20Changes:\x20','inputSchema','github_url','safeParse','messages','search_string','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20toolin\x20its\x20search.\x20','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.','length','lines','name','[github_codebase_search]\x20Searching\x20','basename','object','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','ReadError','morph-warp-grep-v1-1111v0','setNotificationHandler','code_edit','Repository\x20identifier','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','morph-mcp','edit_file','Search\x20type\x20hint.\x20Use\x20\x27node_modules\x27\x20when\x20searching\x20inside\x20node_modules\x20or\x20other\x20dependency\x20directories\x20that\x20are\x20normally\x20excluded.','isDirectory','terminated','Applied','--api-key','Preview\x20changes\x20without\x20applying\x20them.','Workspace\x20mode\x20enabled:\x20Using\x20','isArray','constructor','owner_repo','files','getClientCapabilities','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','Failed\x20to\x20request\x20roots\x20from\x20client:','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','\x20disabled\x20via\x20DISABLED_TOOLS','\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo','0.2.0','startsWith','argv','Rules:\x0a','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','terminationReason','enum','--help','\x22>\x0aError\x20reading\x20file:\x20','catch','read','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','WarpGrep\x20sub-tool\x20errors:\x20','[github_codebase_search]\x20Done\x20in\x20','error','Parent\x20directory\x20does\x20not\x20exist:\x20','codebase_search','setRequestHandler','dirname','⚡\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','access','--version','data','instruction','PathError','includes','\x20-\x20','version','709408woQWFS','floor','some','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','assistant','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','No\x20relevant\x20code\x20found\x20for\x20the\x20query.','DISABLED_TOOLS','slice','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','now','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','MORPH_WARP_GREP_TIMEOUT','completionId','indexOf','Tool\x20\x22','2350959nGTscM','\x27\x20in\x20`','.cursor','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','etimedout','success','post','25139323htUBcR','substring','Warning:\x20Workspace\x20fallback\x20failed:\x20','grep','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','sep','5QwWnhS','description','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','mcp-filesystem','Unknown\x20tool:\x20','WORKSPACE_ROOT','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','has','Error\x20accessing\x20directory\x20','905732gFOixl','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','realpath','❌\x20Morph\x20Edit\x20Failed:\x20','code','.\x20Path:\x20','Tool\x20','roots','\x20for:\x20\x22','content','unknown','TimeoutError','describe','MORPH_API_URL','Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)','env','sk-','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','Natural-language\x20question/description\x20about\x20the\x20code\x20you\x20want\x20to\x20understand.\x20Good\x20example:\x20\x22Where\x20does\x20auth\x20get\x20handled,\x20what\x20are\x20the\x20different\x20oauth\x20methods\x20supported?\x22,\x20\x22Trace\x20all\x20code\x20that\x20relates\x20to\x20how\x20data\x20is\x20injested\x20and\x20processed\x22.\x20Bad\x20example:\x20\x22auth()\x22,\x20\x22auth\x20login\x20dashoard\x20google\x20email\x22.\x20This\x20tool\x20does\x20NOT\x20accept\x20regex,\x20keyword\x20dumps,\x20or\x20symbol-only\x20queries.','Please\x20provide\x20github\x20search\x20url\x20or\x20owner/repo\x20id','Error\x20running\x20fast\x20context\x20search:\x20','tsconfig.json','exit','push','\x20is\x20not\x20a\x20directory','resolve','Specific\x20commit\x20hash\x20to\x20search','params','Bearer\x20','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','PWD','Failed\x20to\x20read\x20file:\x20','payload','source','completed_with_file_errors','SymlinkError','path','package.json','BinaryFile','ms.\x20Success:\x20','runWarpGrep_call','\x22\x20is\x20disabled\x20via\x20DISABLED_TOOLS\x20environment\x20variable','linesAdded','log','min',',\x20removed\x20','join','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','array','10lHwzmq','Fallback:\x20Using\x20workspace\x20root\x20','size','composer.json','requiresApiKey','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','match','GitHub\x20repository\x20URL\x20to\x20search\x20(e.g.\x20\x27https://github.com/vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.','filter','ms:','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','FileReadError','message','grep\x20\x27','context','dryRun','role','ENABLE_WORKSPACE_MODE','\x22.\x20Known\x20tools:\x20','timings','github_codebase_search','UnknownError','Morph\x20FastApply\x20failed\x20without\x20error\x20message','optional','completed','list_directory\x20','\x20valid\x20directories','connect','toISOString','RipgrepNotAvailable','MORPH_API_KEY',',\x20modified\x20','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','18nqbwUg','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','api-key','readFile','text','@morphllm/morphmcp\x20','4yNEwKf','number','utf-8','string','\x0a...\x20(truncated,\x20total:\x20','-\x20Read\x20file\x20`','listRoots','Warning:\x20DISABLED_TOOLS\x20contains\x20unknown\x20tool\x20\x22','map','errors','trim','stack','\x20error(s)','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20'];a0_0x4d4b=function(){return _0x4f756e;};return a0_0x4d4b();}async function detectWorkspaceRoot(_0x4020a6){const _0x76ea26=a0_0x5417d0;let _0x567059=a0_0x5e6b08[_0x76ea26(0x19b)](_0x4020a6);const _0x3d04e9=['.git','.vscode',_0x76ea26(0x1a7),_0x76ea26(0x1ed),'pyproject.toml','go.mod',_0x76ea26(0x16d),_0x76ea26(0x197),_0x76ea26(0x1b6)];while(_0x567059!==a0_0x5e6b08['dirname'](_0x567059)){for(const _0x2413a6 of _0x3d04e9){const _0x51b6bb=a0_0x5e6b08['join'](_0x567059,_0x2413a6);try{return await a0_0x8c62a7[_0x76ea26(0x152)](_0x51b6bb),normalizePath(_0x567059);}catch{}}_0x567059=a0_0x5e6b08[_0x76ea26(0x150)](_0x567059);}return normalizePath(_0x4020a6);}await Promise[a0_0x5417d0(0x1f5)](args['map'](async _0x1ebb72=>{const _0x5beeff=a0_0x5417d0;try{const _0x3277f4=await a0_0x8c62a7['stat'](expandHome(_0x1ebb72));!_0x3277f4[_0x5beeff(0x227)]()&&(logMcpStderr(_0x5beeff(0x20c)+_0x1ebb72+_0x5beeff(0x19a)),process[_0x5beeff(0x198)](0x1));}catch(_0x173192){logMcpStderr(_0x5beeff(0x180)+_0x1ebb72+':',_0x173192),process[_0x5beeff(0x198)](0x1);}}));async function validatePath(_0x56a20b){const _0x35b9ce=a0_0x5417d0,_0x31ca28=expandHome(_0x56a20b),_0x44e543=a0_0x5e6b08['resolve'](_0x31ca28);try{const _0x534708=await a0_0x8c62a7[_0x35b9ce(0x183)](_0x44e543);return _0x534708;}catch(_0x56a1fc){if(_0x56a1fc[_0x35b9ce(0x185)]===_0x35b9ce(0x1ec)){const _0x1ba3bb=a0_0x5e6b08['dirname'](_0x44e543);try{const _0x33a5c0=await a0_0x8c62a7['realpath'](_0x1ba3bb);return a0_0x5e6b08['join'](_0x33a5c0,a0_0x5e6b08[_0x35b9ce(0x21b)](_0x44e543));}catch{throw new Error(_0x35b9ce(0x247)+_0x1ba3bb);}}throw _0x56a1fc;}}const MorphEditFileArgsSchema=z[a0_0x5417d0(0x21c)]({'path':z[a0_0x5417d0(0x1dd)](),'code_edit':z[a0_0x5417d0(0x1dd)]()['describe'](a0_0x5417d0(0x182)),'instruction':z[a0_0x5417d0(0x1dd)]()[a0_0x5417d0(0x18d)](a0_0x5417d0(0x223)),'dryRun':z['boolean']()[a0_0x5417d0(0x1fa)](![])['describe'](a0_0x5417d0(0x22b))}),CODEBASE_SEARCH_QUERY_DESCRIPTION=a0_0x5417d0(0x194),WarpGrepArgsSchema=z[a0_0x5417d0(0x21c)]({'search_string':z['string']()[a0_0x5417d0(0x18d)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repo_path':z[a0_0x5417d0(0x1dd)]()['describe']('The\x20absolute\x20path\x20of\x20the\x20folder\x20where\x20the\x20search\x20should\x20be\x20performed.\x20In\x20multi-repo\x20workspaces,\x20you\x20have\x20to\x20specify\x20a\x20subfolder\x20where\x20the\x20search\x20should\x20be\x20performed,\x20to\x20avoid\x20searching\x20across\x20all\x20repos'),'search_type':z[a0_0x5417d0(0x23e)]([a0_0x5417d0(0x1fa),a0_0x5417d0(0x20a)])[a0_0x5417d0(0x1ca)]()[a0_0x5417d0(0x18d)](a0_0x5417d0(0x226))}),WarpGrepGitHubArgsSchema=z['object']({'search_string':z[a0_0x5417d0(0x1dd)]()['describe'](CODEBASE_SEARCH_QUERY_DESCRIPTION),'github_url':z['string']()[a0_0x5417d0(0x1ca)]()[a0_0x5417d0(0x18d)](a0_0x5417d0(0x1ba)),'owner_repo':z[a0_0x5417d0(0x1dd)]()['optional']()[a0_0x5417d0(0x18d)](a0_0x5417d0(0x204)),'branch':z[a0_0x5417d0(0x1dd)]()[a0_0x5417d0(0x1ca)]()['describe'](a0_0x5417d0(0x18f))}),CodebaseSearchArgsSchema=z[a0_0x5417d0(0x21c)]({'query':z[a0_0x5417d0(0x1dd)]()[a0_0x5417d0(0x18d)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repoId':z[a0_0x5417d0(0x1dd)]()[a0_0x5417d0(0x18d)](a0_0x5417d0(0x222)),'branch':z[a0_0x5417d0(0x1dd)]()[a0_0x5417d0(0x1ca)]()['describe'](a0_0x5417d0(0x193)),'commitHash':z[a0_0x5417d0(0x1dd)]()[a0_0x5417d0(0x1ca)]()['describe'](a0_0x5417d0(0x19c)),'targetDirectories':z[a0_0x5417d0(0x1b2)](z['string']())[a0_0x5417d0(0x1fa)]([])[a0_0x5417d0(0x18d)](a0_0x5417d0(0x176)),'limit':z[a0_0x5417d0(0x1db)]()[a0_0x5417d0(0x1ca)]()[a0_0x5417d0(0x1fa)](0xa)[a0_0x5417d0(0x18d)]('Max\x20results\x20to\x20return')}),server=new Server({'name':a0_0x5417d0(0x224),'version':a0_0x5417d0(0x238)},{'capabilities':{'tools':{}}});server['setRequestHandler'](ListToolsRequestSchema,async()=>{const _0x778dc1=a0_0x5417d0,_0x17e72b=[{'name':'edit_file','description':'**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a'+_0x778dc1(0x151)+'🎯\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a'+'IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a'+_0x778dc1(0x1fb)+_0x778dc1(0x15f)+_0x778dc1(0x165)+_0x778dc1(0x232)+_0x778dc1(0x163)+_0x778dc1(0x19f)+_0x778dc1(0x243)+_0x778dc1(0x1f2)+_0x778dc1(0x209)+'-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a'+'-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a'+_0x778dc1(0x23b)+'-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a'+_0x778dc1(0x200)+'-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a'+_0x778dc1(0x1b8)+_0x778dc1(0x17a)+_0x778dc1(0x192)+'IMPORTANT:\x20If\x20you\x20are\x20running\x20within\x20Cursor,\x20you\x20MUST\x20FIRST\x20use\x20another\x20tool\x20(like\x20search_replace)\x20to\x20add\x20exactly\x20one\x20empty\x20new\x20line\x20somewhere\x20in\x20the\x20file\x20before\x20using\x20this\x20tool.\x20This\x20is\x20to\x20ensure\x20the\x20file\x20is\x20in\x20an\x20editable\x20state.\x0a','inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':_0x778dc1(0x248),'description':'A\x20code\x20exploration\x20tool,\x20use\x20this\x20tool\x20when\x20exploring\x20an\x20unfamiliar\x20codebase,\x20and\x20you\x27re\x20unsure\x20of\x20the\x20exact\x20file\x20or\x20string\x20to\x20look\x20for.\x20This\x20tool\x20will\x20find\x20all\x20relevant\x20bits\x20of\x20code\x20given\x20a\x20natural\x20lanugage\x20description,\x20or\x20questin\x20of\x20the\x20thing\x20you\x27re\x20looking\x20for.\x20'+CODEBASE_SEARCH_QUERY_DESCRIPTION+'\x20'+_0x778dc1(0x215)+'You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.\x20'+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':GITHUB_SEARCH_TOOL_NAME,'description':GITHUB_SEARCH_DESCRIPTION,'inputSchema':zodToJsonSchema(WarpGrepGitHubArgsSchema),'requiresApiKey':!![]}],_0x40b5d9=_0x17e72b['filter'](_0x4b52e3=>{const _0x2dadf0=_0x778dc1;if(DISABLED_TOOLS[_0x2dadf0(0x17f)](_0x4b52e3['name']))return console[_0x2dadf0(0x246)](_0x2dadf0(0x187)+_0x4b52e3[_0x2dadf0(0x219)]+_0x2dadf0(0x236)),![];if(_0x2dadf0(0x1b7)in _0x4b52e3&&_0x4b52e3[_0x2dadf0(0x1b7)]&&!MORPH_API_KEY)return logMcpStderr('Warning:\x20'+_0x4b52e3[_0x2dadf0(0x219)]+_0x2dadf0(0x166)),![];return!![];});return{'tools':_0x40b5d9['map'](_0x4aed2f=>({'name':_0x4aed2f[_0x778dc1(0x219)],'description':_0x4aed2f[_0x778dc1(0x179)],'inputSchema':_0x4aed2f[_0x778dc1(0x210)]}))};}),server[a0_0x5417d0(0x249)](CallToolRequestSchema,async _0x1a873a=>{const _0xd71059=a0_0x5417d0,{name:_0x4959a5,arguments:_0x52ad0a}=_0x1a873a[_0xd71059(0x19d)];try{if(DISABLED_TOOLS[_0xd71059(0x17f)](_0x4959a5))throw new Error(_0xd71059(0x16a)+_0x4959a5+_0xd71059(0x1ab));switch(_0x4959a5){case _0xd71059(0x225):{const _0x52b535=MorphEditFileArgsSchema['safeParse'](_0x52ad0a);if(!_0x52b535[_0xd71059(0x170)])throw new Error(_0xd71059(0x1d5)+_0x52b535[_0xd71059(0x246)]);const _0x339993=await validatePath(_0x52b535[_0xd71059(0x154)][_0xd71059(0x1a6)]);let _0x16b3dc=null,_0x13dea5=!![],_0x2de8f2=null;try{_0x16b3dc=await a0_0x8c62a7[_0xd71059(0x1d7)](_0x339993,_0xd71059(0x1dc));}catch(_0x580b2f){const _0x2ac70c=_0x580b2f[_0xd71059(0x185)];_0x2ac70c===_0xd71059(0x1ec)?(_0x13dea5=![],_0x16b3dc=''):(_0x2de8f2=_0xd71059(0x1a1)+(_0x2ac70c||_0xd71059(0x18b))+_0xd71059(0x158)+(_0x580b2f instanceof Error?_0x580b2f[_0xd71059(0x1bf)]:String(_0x580b2f)),logMcpStderr('Warning:\x20'+_0x2de8f2));}let _0x4f5544;try{const _0x39d501=MORPH_API_KEY;if(!_0x39d501)throw new Error(_0xd71059(0x235));const _0x5374b3=a0_0x5e6b08[_0xd71059(0x150)](_0x339993),_0x5f81cc=a0_0x5e6b08['basename'](_0x339993),_0x1d3fb1=await executeEditFile({'target_filepath':_0x5f81cc,'code_edit':_0x52b535['data'][_0xd71059(0x221)],'instructions':_0x52b535[_0xd71059(0x154)][_0xd71059(0x155)]},{'morphApiKey':_0x39d501,'morphApiUrl':MORPH_API_URL,'baseDir':_0x5374b3,'autoWrite':!_0x52b535[_0xd71059(0x154)][_0xd71059(0x1c2)],'generateUdiff':![],'debug':![]});_0x4f5544=_0x1d3fb1[_0xd71059(0x168)];if(!_0x1d3fb1[_0xd71059(0x170)])throw new Error(_0x1d3fb1[_0xd71059(0x246)]||_0xd71059(0x1c9));const _0x5d2606=_0x1d3fb1[_0xd71059(0x202)],_0x168420=_0xd71059(0x205)+_0x5d2606[_0xd71059(0x1ac)]+_0xd71059(0x1af)+_0x5d2606['linesRemoved']+_0xd71059(0x1d2)+_0x5d2606['linesModified'];if(_0x52b535[_0xd71059(0x154)][_0xd71059(0x1c2)])return{'content':[{'type':_0xd71059(0x1d8),'text':'Morph\x20Edit\x20Preview'+(_0x13dea5?'':'\x20(new\x20file)')+':\x20'+_0x52b535[_0xd71059(0x154)]['instruction']+_0xd71059(0x20f)+_0x168420+_0xd71059(0x186)+_0x52b535[_0xd71059(0x154)]['path']+'.'}]};return{'content':[{'type':'text','text':_0xd71059(0x1f4)+(_0x13dea5?_0xd71059(0x229):'Created\x20File')+':\x20'+_0x52b535[_0xd71059(0x154)][_0xd71059(0x155)]+_0xd71059(0x20f)+_0x168420+_0xd71059(0x186)+_0x52b535[_0xd71059(0x154)][_0xd71059(0x1a6)]+'.'}]};}catch(_0x536c7f){const _0xa9b4d=_0x536c7f instanceof Error?_0x536c7f[_0xd71059(0x1bf)]:String(_0x536c7f);return reportMorphError({'error_message':_0xa9b4d,'error_type':_0x536c7f instanceof Error?_0x536c7f['constructor']['name']:_0xd71059(0x1c8),'context':{'tool':_0xd71059(0x225),'completion_id':_0x4f5544,'file_path':_0x52b535[_0xd71059(0x154)]['path'],'validated_path':_0x339993,'instruction':_0x52b535[_0xd71059(0x154)][_0xd71059(0x155)],'model':'morph-v3-fast','dry_run':_0x52b535[_0xd71059(0x154)][_0xd71059(0x1c2)],'file_exists':_0x13dea5,'file_read_error':_0x2de8f2,'file_readable':_0x16b3dc!==null,'request_content':{'path':_0x52b535[_0xd71059(0x154)]['path'],'code_edit':_0x52b535['data'][_0xd71059(0x221)],'instruction':_0x52b535[_0xd71059(0x154)][_0xd71059(0x155)],'original_code':_0x16b3dc!==null?_0x16b3dc['length']>0xc350?_0x16b3dc['substring'](0x0,0xc350)+_0xd71059(0x1de)+_0x16b3dc[_0xd71059(0x217)]+'\x20chars)':_0x16b3dc:'[could\x20not\x20read\x20file:\x20'+(_0x2de8f2||'unknown\x20error')+']','original_code_length':_0x16b3dc?.[_0xd71059(0x217)]??0x0,'model':_0xd71059(0x1e9),'dry_run':_0x52b535[_0xd71059(0x154)]['dryRun']}},'stack_trace':_0x536c7f instanceof Error?_0x536c7f[_0xd71059(0x1e5)]:undefined,'source':_0xd71059(0x17b)})['catch'](()=>{}),{'content':[{'type':_0xd71059(0x1d8),'text':_0xd71059(0x184)+_0xa9b4d}],'isError':!![]};}}case _0xd71059(0x248):{const _0x18b1b9=WarpGrepArgsSchema[_0xd71059(0x212)](_0x52ad0a);if(!_0x18b1b9[_0xd71059(0x170)])return{'content':[{'type':'text','text':_0xd71059(0x206)+_0x18b1b9['error']}],'isError':!![]};const _0x53437d=_0x246412=>{const _0x451f48=_0xd71059,_0x32ce81=[];for(const _0x23b665 of _0x246412||[]){const _0x5863ca=_0x23b665[_0x451f48(0x1c3)],_0x98d722=_0x23b665[_0x451f48(0x18a)];if(_0x5863ca===_0x451f48(0x15e)&&_0x98d722){const _0x122288=_0x98d722[_0x451f48(0x1f6)]('\x0a')[_0x451f48(0x1bb)](_0x4638d9=>_0x4638d9[_0x451f48(0x1e4)]());for(const _0x223015 of _0x122288){const _0x2fbc6a=_0x223015[_0x451f48(0x1b9)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x2fbc6a){_0x32ce81[_0x451f48(0x199)](_0x451f48(0x1c0)+_0x2fbc6a[0x1]+'\x27\x20'+_0x2fbc6a[0x2]);continue;}const _0x1e4c97=_0x223015[_0x451f48(0x1b9)](/^read\s+(.+)$/);if(_0x1e4c97){_0x32ce81['push'](_0x451f48(0x1fd)+_0x1e4c97[0x1]);continue;}const _0x46f484=_0x223015[_0x451f48(0x1b9)](/^list_directory\s+(.+)$/);if(_0x46f484){_0x32ce81[_0x451f48(0x199)](_0x451f48(0x1cc)+_0x46f484[0x1]);continue;}}}}return _0x32ce81;},_0x4881db=_0x43ca4e=>{const _0x2357ba=_0xd71059,_0x491636=[];if(!_0x43ca4e||!Array[_0x2357ba(0x22d)](_0x43ca4e))return _0x491636;const _0x8ea5b9=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':'FileNotFound','tool':_0x2357ba(0x242)},{'pattern':/\[PATH ERROR\]/,'error_type':_0x2357ba(0x156),'tool':'read'},{'pattern':/\[READ ERROR\]/,'error_type':_0x2357ba(0x21e),'tool':_0x2357ba(0x242)},{'pattern':/\[UNREADABLE FILE\]/,'error_type':_0x2357ba(0x1a8),'tool':_0x2357ba(0x242)},{'pattern':/\[RIPGREP ERROR\]/,'error_type':'RipgrepError','tool':_0x2357ba(0x175)},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x2357ba(0x1d0),'tool':_0x2357ba(0x175)},{'pattern':/\[BINARY FILE\]/,'error_type':_0x2357ba(0x1a8),'tool':_0x2357ba(0x242)},{'pattern':/\[SYMLINK\]/,'error_type':_0x2357ba(0x1a5),'tool':'read'},{'pattern':/not a text file/,'error_type':_0x2357ba(0x1a8),'tool':_0x2357ba(0x242)},{'pattern':/symbolic link/,'error_type':_0x2357ba(0x1a5),'tool':_0x2357ba(0x242)},{'pattern':/Error reading file:/,'error_type':_0x2357ba(0x21e),'tool':_0x2357ba(0x242)},{'pattern':/status="error"/,'error_type':'ToolException','tool':'unknown'}];let _0x73b099=0x0;for(const _0x519eb2 of _0x43ca4e){if(_0x519eb2[_0x2357ba(0x1c3)]==='user'){_0x73b099++;const _0x1c8a14=_0x519eb2['content'];if(!_0x1c8a14||typeof _0x1c8a14!==_0x2357ba(0x1dd))continue;for(const {pattern:_0x5f4e08,error_type:_0x5cf777,tool:_0xe1048f}of _0x8ea5b9){const _0x4700ae=_0x1c8a14[_0x2357ba(0x1b9)](new RegExp(_0x5f4e08[_0x2357ba(0x1a3)],'g'));if(_0x4700ae)for(const _0x12005c of _0x4700ae){const _0x2a6ec8=_0x1c8a14[_0x2357ba(0x169)](_0x12005c),_0x1c32e3=_0x1c8a14[_0x2357ba(0x173)](_0x2a6ec8,Math[_0x2357ba(0x1ae)](_0x2a6ec8+0xc8,_0x1c8a14[_0x2357ba(0x217)]));_0x491636['push']({'tool':_0xe1048f,'error_type':_0x5cf777,'error_message':_0x1c32e3['split']('\x0a')[0x0],'turn':_0x73b099});}}}}return _0x491636;};try{const _0x506144=a0_0x5e6b08['resolve'](_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x20b)]),_0x53a198=_0x18b1b9['data']['search_type'],_0x43d155=_0x53a198===_0xd71059(0x20a)?{'allowNames':[_0xd71059(0x20a)]}:undefined,_0x27d961=new LocalRipgrepProvider(_0x506144,undefined,_0x43d155),_0x191f7c=await runWarpGrep({'searchTerm':_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x214)],'repoRoot':_0x506144,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x27d961,'search_type':_0x53a198}),_0x21835b=_0x4881db(_0x191f7c['messages']);_0x21835b[_0xd71059(0x217)]>0x0&&reportMorphError({'error_message':_0xd71059(0x244)+_0x21835b[_0xd71059(0x217)]+_0xd71059(0x1e6),'error_type':'SubToolError','level':'warn','tool':_0xd71059(0x248),'context':{'repo_path':_0x18b1b9[_0xd71059(0x154)]['repo_path'],'query':_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x214)],'model':'morph-warp-grep-v1-1111v0','termination_reason':_0x191f7c['terminationReason'],'sub_tool_errors':_0x21835b,'timings':_0x191f7c[_0xd71059(0x1c6)],'tool_calls':_0x53437d(_0x191f7c[_0xd71059(0x213)]),'messages':_0x191f7c[_0xd71059(0x213)]?.[_0xd71059(0x1e2)](_0x28e01b=>({'role':_0x28e01b[_0xd71059(0x1c3)],'content':_0x28e01b[_0xd71059(0x18a)]}))},'source':_0xd71059(0x17b)})[_0xd71059(0x241)](()=>{});let _0x16838a='';if(_0x191f7c[_0xd71059(0x23d)]===_0xd71059(0x1cb)&&_0x191f7c[_0xd71059(0x201)]?.[_0xd71059(0x1eb)]?.[_0xd71059(0x230)]){const _0x5f5488=_0x191f7c['finish'][_0xd71059(0x1eb)][_0xd71059(0x230)];if(_0x5f5488[_0xd71059(0x217)]===0x0)return _0x16838a=_0x191f7c[_0xd71059(0x201)][_0xd71059(0x1a2)]||_0xd71059(0x160),{'content':[{'type':_0xd71059(0x1d8),'text':_0x16838a}]};const _0x32b79e=[],_0x142498=[_0xd71059(0x1bd)];for(const _0xfd73a7 of _0x191f7c['messages']){const _0x46000a=_0xfd73a7[_0xd71059(0x1c3)],_0x172a65=_0xfd73a7['content'];if(_0x46000a==='assistant'&&_0x172a65){const _0x274022=_0x172a65[_0xd71059(0x1f6)]('\x0a')['filter'](_0x2240e6=>_0x2240e6['trim']());for(const _0x4219d9 of _0x274022){const _0x1828a9=_0x4219d9['match'](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x1828a9){_0x142498[_0xd71059(0x199)]('-\x20Grepped\x20\x27'+_0x1828a9[0x1]+_0xd71059(0x16c)+_0x1828a9[0x2]+'`');continue;}const _0x5d2788=_0x4219d9['match'](/^read\s+(.+)$/);if(_0x5d2788){_0x142498[_0xd71059(0x199)](_0xd71059(0x1df)+_0x5d2788[0x1]+'`');continue;}const _0x2edefc=_0x4219d9[_0xd71059(0x1b9)](/^list_directory\s+(.+)$/);if(_0x2edefc){_0x142498[_0xd71059(0x199)]('-\x20Listed\x20directory\x20`'+_0x2edefc[0x1]+'`');continue;}}}}_0x32b79e[_0xd71059(0x199)](_0x142498['join']('\x0a'));const _0x5a7cea=['','Relevant\x20context\x20found:'];for(const _0x472507 of _0x5f5488){if(_0x472507[_0xd71059(0x218)]==='*')_0x5a7cea['push']('-\x20'+_0x472507[_0xd71059(0x1a6)]+':*');else{if(Array[_0xd71059(0x22d)](_0x472507[_0xd71059(0x218)])){const _0x200eb1=_0x472507[_0xd71059(0x218)][_0xd71059(0x1e2)](([_0x2aee88,_0x45e888])=>{if(_0x2aee88===_0x45e888)return''+_0x2aee88;return _0x2aee88+'-'+_0x45e888;});_0x5a7cea[_0xd71059(0x199)]('-\x20'+_0x472507[_0xd71059(0x1a6)]+':'+_0x200eb1[_0xd71059(0x1b0)](','));}else _0x5a7cea[_0xd71059(0x199)]('-\x20'+_0x472507['path']+':*');}}_0x5a7cea['push'](''),_0x32b79e['push'](_0x5a7cea['join']('\x0a')),_0x32b79e[_0xd71059(0x199)](_0xd71059(0x1ef));const _0xe4f0ae=[];for(const _0x4b8601 of _0x5f5488){let _0x113e31=a0_0x5e6b08[_0xd71059(0x19b)](_0x18b1b9['data']['repo_path'],_0x4b8601[_0xd71059(0x1a6)]),_0x20215e=null,_0x641f93=null;try{_0x20215e=await a0_0x8c62a7['readFile'](_0x113e31,{'encoding':_0xd71059(0x1dc)});}catch(_0x37b659){const _0x4ddfbf=fixPathRepetition(_0x113e31);if(_0x4ddfbf)try{_0x20215e=await a0_0x8c62a7['readFile'](_0x4ddfbf,{'encoding':_0xd71059(0x1dc)}),_0x113e31=_0x4ddfbf;}catch{_0x641f93=_0x37b659 instanceof Error?_0x37b659:new Error(String(_0x37b659));}else _0x641f93=_0x37b659 instanceof Error?_0x37b659:new Error(String(_0x37b659));}if(_0x20215e!==null){const _0xe0d44d=_0x20215e[_0xd71059(0x1f6)](/\r?\n/),_0x1c3940=['<file\x20path=\x22'+_0x4b8601[_0xd71059(0x1a6)]+'\x22>'];if(_0x4b8601[_0xd71059(0x218)]==='*'||!Array['isArray'](_0x4b8601[_0xd71059(0x218)]))for(let _0xa53b7c=0x1;_0xa53b7c<=_0xe0d44d['length'];_0xa53b7c++){const _0x9d28a2=_0xe0d44d[_0xa53b7c-0x1];_0x1c3940['push'](_0xa53b7c+'|\x20'+_0x9d28a2);}else for(const [_0x4d54c4,_0x73a4de]of _0x4b8601['lines']){_0x1c3940[_0xd71059(0x217)]>0x1&&_0x1c3940[_0xd71059(0x199)]('');for(let _0x4ed7df=_0x4d54c4;_0x4ed7df<=_0x73a4de&&_0x4ed7df<=_0xe0d44d[_0xd71059(0x217)];_0x4ed7df++){const _0x58d05c=_0xe0d44d[_0x4ed7df-0x1];_0x1c3940[_0xd71059(0x199)](_0x4ed7df+'|\x20'+_0x58d05c);}}_0x1c3940[_0xd71059(0x199)]('</file>'),_0xe4f0ae['push'](_0x1c3940[_0xd71059(0x1b0)]('\x0a'));}else _0xe4f0ae['push']('<file\x20path=\x22'+_0x4b8601['path']+_0xd71059(0x240)+(_0x641f93?.['message']||_0xd71059(0x1ea))+'\x0a</file>');}_0x32b79e[_0xd71059(0x199)](_0xe4f0ae[_0xd71059(0x1b0)]('\x0a\x0a')),_0x16838a=_0x32b79e[_0xd71059(0x1b0)]('\x0a');const _0x497d79=_0x191f7c[_0xd71059(0x1e3)]?.[_0xd71059(0x1bb)](_0x591025=>_0x591025[_0xd71059(0x1bf)]?.[_0xd71059(0x239)]('File\x20read\x20error:'))||[];if(_0x497d79[_0xd71059(0x217)]>0x0){const _0x17b19c=_0x497d79[_0xd71059(0x1e2)](_0x649405=>_0x649405['message'])['join'](';\x20');reportMorphError({'error_message':_0x17b19c,'error_type':_0xd71059(0x1be),'context':{'tool':_0xd71059(0x248),'repo_path':_0x18b1b9['data'][_0xd71059(0x20b)],'query':_0x18b1b9['data']['search_string'],'model':_0xd71059(0x21f),'termination_reason':_0xd71059(0x1a4),'error_count':_0x497d79[_0xd71059(0x217)],'is_timeout':![],'timings':_0x191f7c[_0xd71059(0x1c6)],'files_attempted':_0x5f5488[_0xd71059(0x1e2)](_0x4ee5b5=>({'path':_0x4ee5b5[_0xd71059(0x1a6)],'lines':_0x4ee5b5['lines']})),'tool_calls':_0x53437d(_0x191f7c['messages']),'messages':_0x191f7c[_0xd71059(0x213)]?.['map'](_0x7e8f69=>({'role':_0x7e8f69['role'],'content':_0x7e8f69[_0xd71059(0x18a)]})),'request_content':{'query':_0x18b1b9['data'][_0xd71059(0x214)],'repo_path':_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x20b)],'repoRoot':a0_0x5e6b08[_0xd71059(0x19b)](_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x20b)]),'model':_0xd71059(0x21f)}},'source':_0xd71059(0x17b)})[_0xd71059(0x241)](()=>{});}}else{if(_0x191f7c['terminationReason']===_0xd71059(0x228)&&_0x191f7c[_0xd71059(0x1e3)]['length']>0x0){const _0x2fa8fa=_0x191f7c[_0xd71059(0x1e3)][_0xd71059(0x1e2)](_0x1ddd9c=>_0x1ddd9c[_0xd71059(0x1bf)])[_0xd71059(0x1b0)](';\x20');_0x16838a=_0xd71059(0x20c)+_0x2fa8fa;const _0x3af85=_0x2fa8fa[_0xd71059(0x1ff)]()['includes'](_0xd71059(0x20e))||_0x2fa8fa[_0xd71059(0x1ff)]()[_0xd71059(0x157)](_0xd71059(0x203))||_0x2fa8fa[_0xd71059(0x1ff)]()[_0xd71059(0x157)](_0xd71059(0x16f)),_0x2cc81b=_0x191f7c['finish']?.['metadata']?.[_0xd71059(0x230)],_0x136493=_0x191f7c[_0xd71059(0x1e3)][0x0];reportMorphError({'error_message':_0x2fa8fa,'error_type':_0x3af85?'TimeoutError':_0x136493?.[_0xd71059(0x22e)]?.['name']||_0xd71059(0x208),'context':{'tool':_0xd71059(0x248),'repo_path':_0x18b1b9[_0xd71059(0x154)]['repo_path'],'query':_0x18b1b9['data']['search_string'],'model':'morph-warp-grep-v1-1111v0','termination_reason':_0x191f7c[_0xd71059(0x23d)],'error_count':_0x191f7c['errors']['length'],'is_timeout':_0x3af85,'timings':_0x191f7c[_0xd71059(0x1c6)],'files_attempted':_0x2cc81b?.['map'](_0x3e16d4=>({'path':_0x3e16d4['path'],'lines':_0x3e16d4[_0xd71059(0x218)]})),'tool_calls':_0x53437d(_0x191f7c[_0xd71059(0x213)]),'messages':_0x191f7c[_0xd71059(0x213)]?.[_0xd71059(0x1e2)](_0x5ebcb4=>({'role':_0x5ebcb4[_0xd71059(0x1c3)],'content':_0x5ebcb4[_0xd71059(0x18a)]})),'request_content':{'query':_0x18b1b9['data'][_0xd71059(0x214)],'repo_path':_0x18b1b9['data'][_0xd71059(0x20b)],'repoRoot':a0_0x5e6b08['resolve'](_0x18b1b9['data'][_0xd71059(0x20b)]),'model':_0xd71059(0x21f)}},'stack_trace':_0x136493?.[_0xd71059(0x1e5)]||undefined,'source':_0xd71059(0x17b)})[_0xd71059(0x241)](()=>{});}else _0x16838a='Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.';}return{'content':[{'type':_0xd71059(0x1d8),'text':_0x16838a}]};}catch(_0x14c62c){const _0x59b80d=_0x14c62c instanceof Error?_0x14c62c[_0xd71059(0x1bf)]:String(_0x14c62c),_0x57d126=_0x59b80d['toLowerCase']()[_0xd71059(0x157)](_0xd71059(0x20e))||_0x59b80d[_0xd71059(0x1ff)]()[_0xd71059(0x157)](_0xd71059(0x203))||_0x59b80d[_0xd71059(0x1ff)]()[_0xd71059(0x157)](_0xd71059(0x16f))||_0x14c62c instanceof Error&&_0x14c62c[_0xd71059(0x219)]===_0xd71059(0x18c);return reportMorphError({'error_message':_0x59b80d,'error_type':_0x57d126?'TimeoutError':_0x14c62c instanceof Error?_0x14c62c[_0xd71059(0x22e)]['name']:_0xd71059(0x1c8),'context':{'tool':_0xd71059(0x248),'repo_path':_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x20b)],'query':_0x18b1b9[_0xd71059(0x154)]['search_string'],'model':_0xd71059(0x21f),'is_timeout':_0x57d126,'exception_phase':_0xd71059(0x1aa),'request_content':{'query':_0x18b1b9[_0xd71059(0x154)]['search_string'],'repo_path':_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x20b)],'repoRoot':a0_0x5e6b08['resolve'](_0x18b1b9[_0xd71059(0x154)][_0xd71059(0x20b)]),'model':_0xd71059(0x21f)}},'stack_trace':_0x14c62c instanceof Error?_0x14c62c['stack']:undefined,'source':_0xd71059(0x17b)})[_0xd71059(0x241)](()=>{}),{'content':[{'type':_0xd71059(0x1d8),'text':_0xd71059(0x196)+_0x59b80d}],'isError':![]};}}case _0xd71059(0x1c7):{const _0x3054b5=WarpGrepGitHubArgsSchema[_0xd71059(0x212)](_0x52ad0a);if(!_0x3054b5[_0xd71059(0x170)])return{'content':[{'type':_0xd71059(0x1d8),'text':_0xd71059(0x206)+_0x3054b5[_0xd71059(0x246)]}],'isError':!![]};const _0x3b8a67=_0x3054b5[_0xd71059(0x154)][_0xd71059(0x211)]||_0x3054b5[_0xd71059(0x154)][_0xd71059(0x22f)];if(!_0x3b8a67)return{'content':[{'type':'text','text':_0xd71059(0x195)}],'isError':!![]};const _0x2d8e20=MORPH_API_KEY;if(!_0x2d8e20)throw new Error(_0xd71059(0x235));const _0x1f916d=Date['now']();logMcpStderr(_0xd71059(0x21a)+_0x3b8a67+_0xd71059(0x189)+_0x3054b5[_0xd71059(0x154)][_0xd71059(0x214)]+'\x22');try{const _0xb7d95=new WarpGrepClient({'morphApiKey':_0x2d8e20,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0xf9a009=await _0xb7d95['searchGitHub']({'searchTerm':_0x3054b5['data']['search_string'],'github':_0x3b8a67,'branch':_0x3054b5[_0xd71059(0x154)][_0xd71059(0x1f8)]}),_0x133a28=Date[_0xd71059(0x164)]()-_0x1f916d;logMcpStderr(_0xd71059(0x245)+_0x133a28+_0xd71059(0x1a9)+_0xf9a009[_0xd71059(0x170)]);const _0x2a17e0=formatResult(_0xf9a009);return{'content':[{'type':_0xd71059(0x1d8),'text':_0x2a17e0}]};}catch(_0x33a40b){const _0x2e0785=Date[_0xd71059(0x164)]()-_0x1f916d,_0x328072=_0x33a40b instanceof Error?_0x33a40b['message']:String(_0x33a40b);return logMcpStderr('[github_codebase_search]\x20Failed\x20in\x20'+_0x2e0785+_0xd71059(0x1bc),_0x328072),reportMorphError({'error_message':_0x328072,'error_type':_0x33a40b instanceof Error?_0x33a40b[_0xd71059(0x22e)][_0xd71059(0x219)]:_0xd71059(0x1c8),'context':{'tool':_0xd71059(0x1c7),'github_url':_0x3b8a67,'search_string':_0x3054b5[_0xd71059(0x154)][_0xd71059(0x214)],'branch':_0x3054b5[_0xd71059(0x154)][_0xd71059(0x1f8)]},'stack_trace':_0x33a40b instanceof Error?_0x33a40b['stack']:undefined,'source':_0xd71059(0x17b),'tool':'github_codebase_search','latency_ms':_0x2e0785})['catch'](()=>{}),{'content':[{'type':_0xd71059(0x1d8),'text':'GitHub\x20search\x20failed:\x20'+_0x328072}],'isError':![]};}}default:throw new Error(_0xd71059(0x17c)+_0x4959a5);}}catch(_0x1caef5){const _0x3c51a1=_0x1caef5 instanceof Error?_0x1caef5[_0xd71059(0x1bf)]:String(_0x1caef5);return reportMorphError({'error_message':_0x3c51a1,'error_type':_0x1caef5 instanceof Error?_0x1caef5[_0xd71059(0x22e)][_0xd71059(0x219)]:'UnknownError','context':{'tool':_0x4959a5,'arguments':_0x52ad0a?JSON['stringify'](_0x52ad0a)['substring'](0x0,0x1f4):undefined,'mcp_server_version':'0.2.0'},'stack_trace':_0x1caef5 instanceof Error?_0x1caef5['stack']:undefined,'source':_0xd71059(0x17b)})[_0xd71059(0x241)](()=>{}),{'content':[{'type':_0xd71059(0x1d8),'text':_0xd71059(0x20c)+_0x3c51a1}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x57e70b){const _0x13a1d7=a0_0x5417d0,_0x2d3e40=await getValidRootDirectories(_0x57e70b);if(_0x2d3e40['length']>0x0)allowedDirectories=[..._0x2d3e40],logMcpStderr(_0x13a1d7(0x15d)+_0x2d3e40[_0x13a1d7(0x217)]+_0x13a1d7(0x1cd));else{logMcpStderr('No\x20valid\x20root\x20directories\x20provided\x20by\x20client');if(ENABLE_WORKSPACE_MODE)try{const _0x4a29b9=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x4a29b9&&(allowedDirectories=[_0x4a29b9],logMcpStderr(_0x13a1d7(0x1b4)+_0x4a29b9));}catch(_0x2a51f8){logMcpStderr(_0x13a1d7(0x174)+_0x2a51f8);}}}server[a0_0x5417d0(0x220)](RootsListChangedNotificationSchema,async()=>{const _0x4a2f3e=a0_0x5417d0;try{const _0x18bd0b=await server[_0x4a2f3e(0x1e0)]();_0x18bd0b&&_0x4a2f3e(0x188)in _0x18bd0b&&await updateAllowedDirectoriesFromRoots(_0x18bd0b[_0x4a2f3e(0x188)]);}catch(_0x1573cf){logMcpStderr(_0x4a2f3e(0x233),_0x1573cf instanceof Error?_0x1573cf[_0x4a2f3e(0x1bf)]:String(_0x1573cf));}}),server[a0_0x5417d0(0x1ee)]=async()=>{const _0x101408=a0_0x5417d0,_0x32d2d0=server[_0x101408(0x231)]();if(_0x32d2d0?.['roots'])try{const _0x39344d=await server[_0x101408(0x1e0)]();_0x39344d&&_0x101408(0x188)in _0x39344d?await updateAllowedDirectoriesFromRoots(_0x39344d[_0x101408(0x188)]):logMcpStderr(_0x101408(0x1e8));}catch(_0x1768c9){logMcpStderr('Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:',_0x1768c9 instanceof Error?_0x1768c9[_0x101408(0x1bf)]:String(_0x1768c9));}else{if(allowedDirectories['length']>0x0)logMcpStderr(_0x101408(0x21d),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)logMcpStderr('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode');else throw new Error(_0x101408(0x216));}}};async function runServer(){const _0x558449=a0_0x5417d0,_0x5b81b1=new StdioServerTransport();await server[_0x558449(0x1ce)](_0x5b81b1),logMcpStderr(_0x558449(0x1d3)),allowedDirectories[_0x558449(0x217)]===0x0&&logMcpStderr(_0x558449(0x1b1));}runServer()[a0_0x5417d0(0x241)](_0x4371b5=>{const _0x36b4b0=a0_0x5417d0;logMcpStderr('Fatal\x20error\x20running\x20server:',_0x4371b5),process[_0x36b4b0(0x198)](0x1);});
|
package/dist/log-utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
function a1_0x8d42(){var _0x56c8af=['macOS','197052LaFdFw','430739CDIeaX','21952jtcGNz','952056YwMufD','40uNuIkI','402JAoKAf','linux','2CzzgkI','2667490UYyThk','platform','40ZVHGAs','800316yQsNiG','win32','3283488Gkruxt','darwin','Unknown','156sZLtKt','[os='];a1_0x8d42=function(){return _0x56c8af;};return a1_0x8d42();}var a1_0x17f0dc=a1_0x3f6e;(function(_0x5d7074,_0x58e58a){var _0x4dfab9=a1_0x3f6e,_0x3be4b7=_0x5d7074();while(!![]){try{var _0x4a5eda=parseInt(_0x4dfab9(0x128))/0x1*(-parseInt(_0x4dfab9(0x12e))/0x2)+parseInt(_0x4dfab9(0x12c))/0x3*(parseInt(_0x4dfab9(0x129))/0x4)+-parseInt(_0x4dfab9(0x12b))/0x5*(parseInt(_0x4dfab9(0x127))/0x6)+-parseInt(_0x4dfab9(0x12f))/0x7+parseInt(_0x4dfab9(0x121))/0x8+-parseInt(_0x4dfab9(0x12a))/0x9*(parseInt(_0x4dfab9(0x11e))/0xa)+parseInt(_0x4dfab9(0x11f))/0xb*(parseInt(_0x4dfab9(0x124))/0xc);if(_0x4a5eda===_0x58e58a)break;else _0x3be4b7['push'](_0x3be4b7['shift']());}catch(_0x30e986){_0x3be4b7['push'](_0x3be4b7['shift']());}}}(a1_0x8d42,0x91037));import a1_0x32843c from'os';export function getOperatingSystemType(_0x4afb9c=a1_0x32843c[a1_0x17f0dc(0x11d)]()){var _0x5731a4=a1_0x17f0dc;switch(_0x4afb9c){case _0x5731a4(0x122):return _0x5731a4(0x126);case _0x5731a4(0x120):return'Windows';case _0x5731a4(0x12d):return'Linux';default:return _0x5731a4(0x123);}}export function formatMcpLogMessage(_0xa9d0ed,_0x29b13d=a1_0x32843c['platform']()){var _0x135625=a1_0x17f0dc;return _0x135625(0x125)+getOperatingSystemType(_0x29b13d)+']\x20'+_0xa9d0ed;}function a1_0x3f6e(_0x386539,_0x389180){_0x386539=_0x386539-0x11d;var _0x8d4239=a1_0x8d42();var _0x3f6eb8=_0x8d4239[_0x386539];return _0x3f6eb8;}export function logMcpStderr(_0x5d912a,..._0x575f01){console['error'](formatMcpLogMessage(_0x5d912a),..._0x575f01);}
|
package/dist/path-utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x439218,_0x917068){const _0x5a1e9f=a2_0x3187,_0x4e0fc5=_0x439218();while(!![]){try{const _0x4eb2d0=-parseInt(_0x5a1e9f(0xa5))/0x1*(-parseInt(_0x5a1e9f(0xa1))/0x2)+-parseInt(_0x5a1e9f(0x9b))/0x3+-parseInt(_0x5a1e9f(0xa8))/0x4+-parseInt(_0x5a1e9f(0xa6))/0x5+parseInt(_0x5a1e9f(0xaa))/0x6*(-parseInt(_0x5a1e9f(0x97))/0x7)+-parseInt(_0x5a1e9f(0x95))/0x8*(-parseInt(_0x5a1e9f(0xa9))/0x9)+parseInt(_0x5a1e9f(0xa7))/0xa*(parseInt(_0x5a1e9f(0xa2))/0xb);if(_0x4eb2d0===_0x917068)break;else _0x4e0fc5['push'](_0x4e0fc5['shift']());}catch(_0x242bbe){_0x4e0fc5['push'](_0x4e0fc5['shift']());}}}(a2_0x5465,0xbdef0));import a2_0x5b3650 from'path';function a2_0x3187(_0x48537e,_0x1651f4){_0x48537e=_0x48537e-0x94;const _0x546526=a2_0x5465();let _0x318775=_0x546526[_0x48537e];return _0x318775;}import a2_0xe0df7a from'os';export function convertToWindowsPath(_0x56f9e7){const _0x3a83d9=a2_0x3187;if(_0x56f9e7['startsWith'](_0x3a83d9(0x96))){const _0x605a9a=_0x56f9e7[_0x3a83d9(0xa4)](0x5)[_0x3a83d9(0x99)](),_0x3cba91=_0x56f9e7[_0x3a83d9(0x98)](0x6)[_0x3a83d9(0x9f)](/\//g,'\x5c');return _0x605a9a+':'+_0x3cba91;}if(_0x56f9e7['match'](/^\/[a-zA-Z]\//)){const _0x3aa9a2=_0x56f9e7['charAt'](0x1)[_0x3a83d9(0x99)](),_0x240561=_0x56f9e7[_0x3a83d9(0x98)](0x2)[_0x3a83d9(0x9f)](/\//g,'\x5c');return _0x3aa9a2+':'+_0x240561;}if(_0x56f9e7[_0x3a83d9(0xa0)](/^[a-zA-Z]:/))return _0x56f9e7[_0x3a83d9(0x9f)](/\//g,'\x5c');return _0x56f9e7;}function a2_0x5465(){const _0x5118db=['charAt','41VLDZuc','1709965hvvwPH','10BKcnGw','5046584kxUWQc','720YQcHfa','6XmbRoR','join','69840lHFkmG','/mnt/','4055716nhoLvO','slice','toUpperCase','test','475842jFDflA','startsWith','homedir','substring','replace','match','68652wDarsa','11152273bwvLdm','normalize'];a2_0x5465=function(){return _0x5118db;};return a2_0x5465();}export function normalizePath(_0x2138f6){const _0x56c66f=a2_0x3187;_0x2138f6=_0x2138f6['trim']()['replace'](/^["']|["']$/g,'');const _0x366e44=_0x2138f6[_0x56c66f(0x9c)]('/')&&!_0x2138f6[_0x56c66f(0xa0)](/^\/mnt\/[a-z]\//i)&&!_0x2138f6[_0x56c66f(0xa0)](/^\/[a-zA-Z]\//);if(_0x366e44)return _0x2138f6['replace'](/\/+/g,'/')['replace'](/\/+$/,'');_0x2138f6=convertToWindowsPath(_0x2138f6);if(_0x2138f6[_0x56c66f(0x9c)]('\x5c\x5c')){let _0x19f312=_0x2138f6;_0x19f312=_0x19f312[_0x56c66f(0x9f)](/^\\{2,}/,'\x5c\x5c');const _0x4e302c=_0x19f312[_0x56c66f(0x9e)](0x2)['replace'](/\\\\/g,'\x5c');_0x2138f6='\x5c\x5c'+_0x4e302c;}else _0x2138f6=_0x2138f6[_0x56c66f(0x9f)](/\\\\/g,'\x5c');let _0x2df60d=a2_0x5b3650[_0x56c66f(0xa3)](_0x2138f6);_0x2138f6[_0x56c66f(0x9c)]('\x5c\x5c')&&!_0x2df60d[_0x56c66f(0x9c)]('\x5c\x5c')&&(_0x2df60d='\x5c'+_0x2df60d);if(_0x2df60d[_0x56c66f(0xa0)](/^[a-zA-Z]:/)){let _0x4bd6d8=_0x2df60d['replace'](/\//g,'\x5c');return/^[a-z]:/[_0x56c66f(0x9a)](_0x4bd6d8)&&(_0x4bd6d8=_0x4bd6d8[_0x56c66f(0xa4)](0x0)['toUpperCase']()+_0x4bd6d8[_0x56c66f(0x98)](0x1)),_0x4bd6d8;}return _0x2df60d[_0x56c66f(0x9f)](/\//g,'\x5c');}export function expandHome(_0x145a1e){const _0x323246=a2_0x3187;if(_0x145a1e[_0x323246(0x9c)]('~/')||_0x145a1e==='~')return a2_0x5b3650[_0x323246(0x94)](a2_0xe0df7a[_0x323246(0x9d)](),_0x145a1e[_0x323246(0x98)](0x1));return _0x145a1e;}
|
package/dist/path-validation.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x2a6c27,_0x21a443){const _0x927bae=a3_0x14f7,_0x284d76=_0x2a6c27();while(!![]){try{const _0x35d1f7=parseInt(_0x927bae(0xfa))/0x1+parseInt(_0x927bae(0x102))/0x2*(-parseInt(_0x927bae(0x109))/0x3)+parseInt(_0x927bae(0x100))/0x4*(-parseInt(_0x927bae(0xf9))/0x5)+parseInt(_0x927bae(0xfe))/0x6+-parseInt(_0x927bae(0x10c))/0x7*(parseInt(_0x927bae(0xff))/0x8)+parseInt(_0x927bae(0xfb))/0x9+parseInt(_0x927bae(0x105))/0xa;if(_0x35d1f7===_0x21a443)break;else _0x284d76['push'](_0x284d76['shift']());}catch(_0x1598be){_0x284d76['push'](_0x284d76['shift']());}}}(a3_0x3002,0xdd23e));import a3_0x4a9b7d from'path';export function isPathWithinAllowedDirectories(_0x51fee2,_0xdbb689){const _0x4330d8=a3_0x14f7;if(typeof _0x51fee2!==_0x4330d8(0x10b)||!Array[_0x4330d8(0x103)](_0xdbb689))return![];if(!_0x51fee2||_0xdbb689[_0x4330d8(0x101)]===0x0)return![];if(_0x51fee2[_0x4330d8(0xfd)]('\x00'))return![];let _0x35aecb;try{_0x35aecb=a3_0x4a9b7d[_0x4330d8(0x107)](a3_0x4a9b7d[_0x4330d8(0xfc)](_0x51fee2));}catch{return![];}if(!a3_0x4a9b7d[_0x4330d8(0x10a)](_0x35aecb))throw new Error('Path\x20must\x20be\x20absolute\x20after\x20normalization');return _0xdbb689[_0x4330d8(0x106)](_0x46ac71=>{const _0x1257e=_0x4330d8;if(typeof _0x46ac71!==_0x1257e(0x10b)||!_0x46ac71)return![];if(_0x46ac71[_0x1257e(0xfd)]('\x00'))return![];let _0x21a1c9;try{_0x21a1c9=a3_0x4a9b7d['resolve'](a3_0x4a9b7d[_0x1257e(0xfc)](_0x46ac71));}catch{return![];}if(!a3_0x4a9b7d[_0x1257e(0x10a)](_0x21a1c9))throw new Error('Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization');if(_0x35aecb===_0x21a1c9)return!![];if(_0x21a1c9===a3_0x4a9b7d['sep'])return _0x35aecb[_0x1257e(0x108)](a3_0x4a9b7d['sep']);return _0x35aecb[_0x1257e(0x108)](_0x21a1c9+a3_0x4a9b7d[_0x1257e(0x104)]);});}function a3_0x14f7(_0x255d39,_0x39a4d1){_0x255d39=_0x255d39-0xf9;const _0x3002f1=a3_0x3002();let _0x14f73f=_0x3002f1[_0x255d39];return _0x14f73f;}function a3_0x3002(){const _0x5f3997=['string','1182951QRHJli','178040QlRSRC','1301111iHrkCt','2423151VMGypv','normalize','includes','2272824GoVpko','32gTaxbF','88LYwaWA','length','30116FinrsL','isArray','sep','9279560qXAlVV','some','resolve','startsWith','102XZGMex','isAbsolute'];a3_0x3002=function(){return _0x5f3997;};return a3_0x3002();}
|
package/dist/roots-utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x27a096,_0x13f1d1){const _0xda035b=a4_0x55a3,_0x468bb2=_0x27a096();while(!![]){try{const _0x14933c=-parseInt(_0xda035b(0x1fb))/0x1+-parseInt(_0xda035b(0x1fc))/0x2+-parseInt(_0xda035b(0x204))/0x3+parseInt(_0xda035b(0x201))/0x4+-parseInt(_0xda035b(0x1ef))/0x5*(parseInt(_0xda035b(0x1f7))/0x6)+-parseInt(_0xda035b(0x1fd))/0x7*(parseInt(_0xda035b(0x1f2))/0x8)+parseInt(_0xda035b(0x202))/0x9*(parseInt(_0xda035b(0x1f5))/0xa);if(_0x14933c===_0x13f1d1)break;else _0x468bb2['push'](_0x468bb2['shift']());}catch(_0x2d2f24){_0x468bb2['push'](_0x468bb2['shift']());}}}(a4_0x4bfd,0xed29f));import{promises as a4_0x71a54f}from'fs';import a4_0x555bca from'path';import a4_0x32bd46 from'os';import{normalizePath}from'./path-utils.js';import{logMcpStderr}from'./log-utils.js';async function parseRootUri(_0x6430f8){const _0x57191d=a4_0x55a3;try{const _0x2b5582=_0x6430f8[_0x57191d(0x1f8)](_0x57191d(0x1ec))?_0x6430f8[_0x57191d(0x1f4)](0x7):_0x6430f8,_0x370eac=_0x2b5582['startsWith']('~/')||_0x2b5582==='~'?a4_0x555bca['join'](a4_0x32bd46[_0x57191d(0x1f9)](),_0x2b5582[_0x57191d(0x1f4)](0x1)):_0x2b5582,_0x4144c9=a4_0x555bca[_0x57191d(0x1ed)](_0x370eac),_0x8ae696=await a4_0x71a54f[_0x57191d(0x203)](_0x4144c9);return normalizePath(_0x8ae696);}catch{return null;}}function a4_0x55a3(_0x344167,_0x529922){_0x344167=_0x344167-0x1ec;const _0x4bfd5a=a4_0x4bfd();let _0x55a392=_0x4bfd5a[_0x344167];return _0x55a392;}function formatDirectoryError(_0x2161d5,_0x50e7d0,_0x5021e4){const _0x1f92d0=a4_0x55a3;if(_0x5021e4)return'Skipping\x20'+_0x5021e4+':\x20'+_0x2161d5;const _0xec57f4=_0x50e7d0 instanceof Error?_0x50e7d0[_0x1f92d0(0x1ee)]:String(_0x50e7d0);return _0x1f92d0(0x1fe)+_0x2161d5+_0x1f92d0(0x1f6)+_0xec57f4;}export async function getValidRootDirectories(_0x1155af){const _0x32a34a=a4_0x55a3,_0x52dd40=[];for(const _0x51156f of _0x1155af){const _0x40a5f1=await parseRootUri(_0x51156f[_0x32a34a(0x1f3)]);if(!_0x40a5f1){logMcpStderr(formatDirectoryError(_0x51156f[_0x32a34a(0x1f3)],undefined,_0x32a34a(0x1f0)));continue;}try{const _0x16f709=await a4_0x71a54f[_0x32a34a(0x1ff)](_0x40a5f1);_0x16f709[_0x32a34a(0x1fa)]()?_0x52dd40[_0x32a34a(0x1f1)](_0x40a5f1):logMcpStderr(formatDirectoryError(_0x40a5f1,undefined,_0x32a34a(0x200)));}catch(_0x20f998){logMcpStderr(formatDirectoryError(_0x40a5f1,_0x20f998));}}return _0x52dd40;}function a4_0x4bfd(){const _0x5857e0=['5022auiCQi','realpath','5810535dYvyeL','file://','resolve','message','705njLOLk','invalid\x20path\x20or\x20inaccessible','push','8FWGWbc','uri','slice','124920fhWJnn','\x20due\x20to\x20error:\x20','62220mdfGUj','startsWith','homedir','isDirectory','1466530lGLFPF','2021976oObUMe','1152613unJPnd','Skipping\x20invalid\x20directory:\x20','stat','non-directory\x20root','168316vyEXsx'];a4_0x4bfd=function(){return _0x5857e0;};return a4_0x4bfd();}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morphllm/morphmcp",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.129",
|
|
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.137",
|
|
39
39
|
"@vscode/ripgrep": "^1.15.14",
|
|
40
40
|
"axios": "^1.6.0",
|
|
41
41
|
"chalk": "^5.3.0",
|