🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@morphllm/morphmcp

Package Overview
Dependencies
Maintainers
1
Versions
184
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@morphllm/morphmcp - npm Package Compare versions

Comparing version
0.8.198
to
0.8.199
+1
-1
dist/index.js
#!/usr/bin/env node
const a0_0x2ac932=a0_0x177c;(function(_0x2a74a4,_0x149084){const _0x4fe2b1=a0_0x177c,_0xbad8d1=_0x2a74a4();while(!![]){try{const _0x1e51c6=parseInt(_0x4fe2b1(0xb3))/0x1+parseInt(_0x4fe2b1(0x118))/0x2+-parseInt(_0x4fe2b1(0x1bd))/0x3*(-parseInt(_0x4fe2b1(0x110))/0x4)+-parseInt(_0x4fe2b1(0x1a3))/0x5+parseInt(_0x4fe2b1(0x165))/0x6+parseInt(_0x4fe2b1(0xbb))/0x7+-parseInt(_0x4fe2b1(0xe2))/0x8*(parseInt(_0x4fe2b1(0x171))/0x9);if(_0x1e51c6===_0x149084)break;else _0xbad8d1['push'](_0xbad8d1['shift']());}catch(_0x5462a1){_0xbad8d1['push'](_0xbad8d1['shift']());}}}(a0_0x4775,0x77710));import{Server}from'@modelcontextprotocol/sdk/server/index.js';function a0_0x177c(_0x1e6898,_0x16a8f9){_0x1e6898=_0x1e6898-0xb1;const _0x477527=a0_0x4775();let _0x177ccd=_0x477527[_0x1e6898];return _0x177ccd;}import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import{CallToolRequestSchema,ListToolsRequestSchema,RootsListChangedNotificationSchema}from'@modelcontextprotocol/sdk/types.js';import a0_0x55b4eb from'fs/promises';import a0_0x2c7b75 from'path';import a0_0x196792 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{logger}from'./logger.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{compactFileContexts}from'@morphllm/morphsdk/tools/compact';import a0_0x171e51 from'axios';function a0_0x4775(){const _0x285d6d=['Relevant\x20context\x20found:','catch','1675408fzxjbj','messages','../package.json','Invalid\x20Morph\x20API\x20key\x20format.\x20API\x20keys\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27.\x20Please\x20visit\x20https://morphllm.com\x20to\x20get\x20a\x20valid\x20API\x20key.','MORPH_WARP_GREP_TIMEOUT','ms.\x20Success:\x20','SymlinkError','target_file','file_path','Invalid\x20arguments:\x20','finish','error','instruction','edit','\x0aExamples:','\x22.\x20Known\x20tools:\x20','tsconfig.json','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','SubToolError','isDirectory','Tool\x20','\x0a</file>','\x22>\x0a','success','pattern','Unknown\x20error','linesRemoved','warn','-\x20Read\x20file\x20`','realpath','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','array','.\x20Path:\x20','dryRun','optional','file_read_complete','toLowerCase','substring','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','map','trim','Repository\x20owner/repo\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.','lines','tool_call_error','string','filter','warp_grep_complete','-\x20For\x20deletions:\x20show\x20context\x20before\x20and\x20after,\x20omit\x20the\x20deleted\x20lines\x0a','constructor','debug','CODEBASE_SEARCH','glob\x20\x27','list_directory\x20','\x0a...\x20(truncated,\x20total:\x20','[github_codebase_search]\x20Failed\x20in\x20','grep\x20\x27','path','tool_call_id','Morph\x20Edit\x20','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','GITHUB_CODEBASE_SEARCH','stack','read\x20','terminationReason','EDIT_FILE','Parent\x20directory\x20does\x20not\x20exist:\x20','RipgrepNotAvailable','.vscode','Unknown\x20tool:\x20','etimedout','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','grep','Cargo.toml','BinaryFile','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','\x20\x20morph-mcp','Authentication\x20failed:\x20Your\x20Morph\x20API\x20key\x20is\x20invalid\x20or\x20has\x20been\x20revoked.\x20Please\x20visit\x20https://morphllm.com\x20to\x20get\x20a\x20valid\x20API\x20key,\x20then\x20update\x20your\x20MCP\x20configuration.','1865742opTQEL','FileNotFound','Error:\x20','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','normalize','search_type','Please\x20provide\x20github\x20search\x20url\x20or\x20owner/repo\x20id','API\x20error\x20(auth/rate-limit)','\x20-\x20','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','MCP','1395IOvGrh','https://morphllm.com/api/error-report','stringify','roots','now','timeout','Here\x20is\x20the\x20content\x20of\x20files:\x0a','GitHub\x20search\x20failed:\x20','tool_call_complete','min','-\x20Batch\x20multiple\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','argv','includes','file','0.2.0','setRequestHandler','role','push','metadata','-\x20instruction:\x20Brief\x20first-person\x20description\x20of\x20what\x20you\x27re\x20changing\x0a','arguments','slice','Failed\x20to\x20read\x20file:\x20','some','application/json','Applied','sk-','length','timings','searchGitHub','errors','parse','github_search_start','list_directory','ENABLE_WORKSPACE_MODE','morph-v3-fast','resolve','dirname','name','unknown','morph-','params','timed\x20out','api-key','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','exit','edit_file','node_modules','join','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','2912605dDbusd','ReadError','every','isArray','Repository\x20identifier','completed','\x27\x20in\x20`','path_validation_start','Use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code\x20blocks.\x20Include\x20just\x20enough\x20surrounding\x20context\x20to\x20locate\x20each\x20edit\x20precisely.\x0a\x0a','[could\x20not\x20read\x20file:\x20','--api-key=','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','UnknownError','access','-\x20code_edit:\x20Only\x20the\x20changed\x20lines\x20with\x20//\x20...\x20existing\x20code\x20...\x20markers\x0a\x0a','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.','floor','Search\x20type\x20hint.\x20Use\x20\x27node_modules\x27\x20when\x20searching\x20inside\x20node_modules\x20or\x20other\x20dependency\x20directories\x20that\x20are\x20normally\x20excluded.','morph-warp-grep-v2.1','Fatal\x20error\x20running\x20server:','ms:','Morph\x20Edit\x20Preview','tool_call_received','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','object','go.mod','3qGiUVG','warp_grep_start','command','Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)','requiresApiKey','number','Disabled\x20tools:\x20','code_edit','--version','-\x20Grepped\x20\x27','startsWith','File\x20read\x20error:','composer.json','Specific\x20commit\x20hash\x20to\x20search','--help','.\x20Changes:\x20','ENOENT','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','`\x20in\x20`','basename','split','codebase_search','WORKSPACE_ROOT','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','No\x20Morph\x20API\x20key\x20configured.\x20Please\x20visit\x20https://morphllm.com\x20to\x20get\x20an\x20API\x20key,\x20then\x20set\x20MORPH_API_KEY\x20in\x20your\x20MCP\x20configuration.','Warning:\x20DISABLED_TOOLS\x20contains\x20unknown\x20tool\x20\x22','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.\x20','status','added\x20','Morph\x20FastApply\x20failed\x20without\x20error\x20message','data','path_validation_resolved','951421TkoewQ','TimeoutError','listRoots','Failed\x20to\x20request\x20roots\x20from\x20client:','-\x20Preserve\x20exact\x20indentation\x0a','api_request_start','\x0aOptions:','WarpGrep\x20sub-tool\x20errors:\x20','6665701BgmcFB','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','morph-mcp','utf-8','morph-v3-large','linesAdded','search_string','user','log','changes','\x20is\x20not\x20a\x20directory','description','mcp-filesystem','assistant','Rate\x20limited:\x20You\x27ve\x20exceeded\x20your\x20Morph\x20API\x20usage\x20limits.\x20Please\x20visit\x20https://morphllm.com\x20to\x20check\x20your\x20plan\x20and\x20purchase\x20additional\x20credits.','unknown\x20error','turns','\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo','tool_calls','connect','FileReadError','indexOf','describe','github_url','MORPH_API_KEY','❌\x20Morph\x20Edit\x20Failed:\x20','cwd','PathError','Max\x20results\x20to\x20return','owner_repo','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','env','runWarpGrep_call','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.','false','compaction_failed','instructions','\x20(new\x20file)','126520tihFZF','Error\x20accessing\x20directory\x20','post','Workspace\x20mode\x20enabled:\x20Using\x20','grep_search','DISABLED_TOOLS','-\x20ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20for\x20unchanged\x20sections\x20(omitting\x20this\x20marker\x20will\x20cause\x20deletions)\x0a','all','path_validation_failed','content','readFile','\x20valid\x20directories','RipgrepError','Fallback:\x20Using\x20workspace\x20root\x20','setNotificationHandler','Warning:\x20','code','<file\x20path=\x22','-\x20path:\x20Absolute\x20file\x20path\x20to\x20edit\x0a','function','text','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES.**\x20Fast,\x20accurate,\x20and\x20prevents\x20context\x20pollution.\x20Especially\x20useful\x20when\x20making\x20multiple\x20edits\x20in\x20one\x20file:\x20describe\x20all\x20changes\x20in\x20a\x20single\x20call\x20and\x20the\x20semantic\x20edit\x20applies\x20them\x20all\x20at\x20once,\x20more\x20accurately\x20and\x20faster\x20than\x20sequential\x20edits.\x20Unlike\x20search-and-replace\x20or\x20patch\x20edits\x20which\x20do\x20narrow\x20edits\x20one\x20at\x20a\x20time,\x20with\x20this\x20tool\x20you\x20should\x20do\x20all\x20your\x20code\x20changes\x20in\x20one\x20go\x20separated\x20by\x20`//\x20...\x20existing\x20code\x20...`\x20markers.\x20This\x20saves\x20tokens\x20and\x20improves\x20performance\x20because\x20you\x20do\x20not\x20need\x20to\x20reread\x20files\x20before\x20edits.\x20All\x20three\x20parameters\x20are\x20required.\x0a\x0a','Rules:\x0a','terminated','WarpGrepError','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','size','file_read_failed','\x20chars)','glob','sep','has','files','MORPH_LARGE_APPLY','default','getClientCapabilities','pyproject.toml','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','new_string','read','branch','ToolException','repo_path','linesModified','message','\x20disabled\x20via\x20DISABLED_TOOLS','1883012ikbvHy','WHEN\x20TO\x20USE\x20vs\x20native\x20edit/patch\x20tools:\x20prefer\x20this\x20tool\x20for\x20large\x20files,\x20multiple\x20or\x20scattered\x20edits,\x20refactors,\x20and\x20whitespace-sensitive\x20changes.\x20A\x20single\x20tiny\x20exact-string\x20replacement\x20can\x20use\x20the\x20native\x20edit/patch\x20tool.\x20If\x20this\x20tool\x20errors\x20or\x20times\x20out,\x20fall\x20back\x20to\x20native\x20edit\x20with\x20exact\x20string\x20matching.\x0a\x0a','response','No\x20relevant\x20code\x20found\x20for\x20the\x20query.','inputSchema','source'];a0_0x4775=function(){return _0x285d6d;};return a0_0x4775();}import{KNOWN_TOOL_NAMES,TOOL_NAMES}from'./tool-definitions.js';function fixPathRepetition(_0x21e6aa){const _0xb25807=a0_0x177c,_0x44a6d4=_0x21e6aa[_0xb25807(0x1d1)](a0_0x2c7b75[_0xb25807(0x100)])[_0xb25807(0x145)](Boolean);if(_0x44a6d4[_0xb25807(0x18c)]<0x2)return null;for(let _0x26aac1=Math[_0xb25807(0x1b3)](_0x44a6d4[_0xb25807(0x18c)]/0x2);_0x26aac1>=0x1;_0x26aac1--){for(let _0x546543=0x0;_0x546543<=_0x44a6d4[_0xb25807(0x18c)]-0x2*_0x26aac1;_0x546543++){const _0x561ae5=_0x44a6d4[_0xb25807(0x186)](_0x546543,_0x546543+_0x26aac1),_0x411a8d=_0x44a6d4['slice'](_0x546543+_0x26aac1,_0x546543+0x2*_0x26aac1);if(_0x561ae5[_0xb25807(0x1a5)]((_0x4883a9,_0x5c6a5f)=>_0x4883a9===_0x411a8d[_0x5c6a5f])){const _0x57617b=[..._0x44a6d4[_0xb25807(0x186)](0x0,_0x546543),..._0x44a6d4[_0xb25807(0x186)](_0x546543+_0x26aac1)];return a0_0x2c7b75[_0xb25807(0x100)]+_0x57617b['join'](a0_0x2c7b75[_0xb25807(0x100)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x286ad7=a0_0x177c;try{const _0x4e135a=require(_0x286ad7(0x11a));return _0x4e135a['version']??'unknown';}catch(_0x3df5a6){return logMcpStderr(_0x286ad7(0xda),_0x3df5a6),_0x286ad7(0x198);}}function printHelp(){const _0x259104=a0_0x177c;console['log']('@morphllm/morphmcp\x20'+getPackageVersion()),console['log'](_0x259104(0x15e)),console['log'](_0x259104(0xb9)),console[_0x259104(0xc3)]('\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)'),console[_0x259104(0xc3)](_0x259104(0x1ce)),console[_0x259104(0xc3)](_0x259104(0x16e)),console['log'](_0x259104(0x126)),console[_0x259104(0xc3)](_0x259104(0x163)),console[_0x259104(0xc3)](_0x259104(0xcc));}const cliArgs=process[a0_0x2ac932(0x17c)][a0_0x2ac932(0x186)](0x2),VERSION_FLAGS=new Set([a0_0x2ac932(0x1c5),'-v','-V']),HELP_FLAGS=new Set([a0_0x2ac932(0x1cb),'-h']);cliArgs[a0_0x2ac932(0x188)](_0x4330ae=>VERSION_FLAGS[a0_0x2ac932(0x101)](_0x4330ae))&&(console[a0_0x2ac932(0xc3)]('@morphllm/morphmcp\x20'+getPackageVersion()),process['exit'](0x0));cliArgs[a0_0x2ac932(0x188)](_0x52730f=>HELP_FLAGS[a0_0x2ac932(0x101)](_0x52730f))&&(printHelp(),process['exit'](0x0));function getCliArg(_0x25e1dc){const _0x3ae069=a0_0x2ac932;for(let _0x319ec0=0x0;_0x319ec0<cliArgs[_0x3ae069(0x18c)];_0x319ec0++){const _0x3a3e00=cliArgs[_0x319ec0];if(_0x3a3e00[_0x3ae069(0x1c7)]('--'+_0x25e1dc+'='))return _0x3a3e00[_0x3ae069(0x186)](('--'+_0x25e1dc+'=')[_0x3ae069(0x18c)]);if(_0x3a3e00==='--'+_0x25e1dc&&_0x319ec0+0x1<cliArgs[_0x3ae069(0x18c)])return cliArgs[_0x319ec0+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs[a0_0x2ac932(0x18c)];i++){const arg=cliArgs[i];if(VERSION_FLAGS[a0_0x2ac932(0x101)](arg)||HELP_FLAGS[a0_0x2ac932(0x101)](arg))continue;if(arg[a0_0x2ac932(0x1c7)](a0_0x2ac932(0x1ad)))continue;if(arg==='--api-key'){i++;continue;}args[a0_0x2ac932(0x182)](arg);}const WORKSPACE_ROOT=process['env'][a0_0x2ac932(0x1d3)]||process['env']['PWD']||process[a0_0x2ac932(0xd5)](),ENABLE_WORKSPACE_MODE=process[a0_0x2ac932(0xdb)][a0_0x2ac932(0x193)]!=='false',MORPH_API_KEY=getCliArg(a0_0x2ac932(0x19c))??process['env'][a0_0x2ac932(0xd3)],MORPH_API_URL=process[a0_0x2ac932(0xdb)]['MORPH_API_URL'],MORPH_LARGE_APPLY=process['env'][a0_0x2ac932(0x103)]!==a0_0x2ac932(0xde),MORPH_WARP_GREP_TIMEOUT=process[a0_0x2ac932(0xdb)][a0_0x2ac932(0x11c)]?parseInt(process[a0_0x2ac932(0xdb)][a0_0x2ac932(0x11c)],0xa):undefined,OPERATING_SYSTEM_TYPE=getOperatingSystemType(),DEFAULT_DISABLED_TOOLS=new Set(),DISABLED_TOOLS=process['env']['DISABLED_TOOLS']?new Set(process[a0_0x2ac932(0xdb)][a0_0x2ac932(0xe7)][a0_0x2ac932(0x1d1)](',')['map'](_0x15e00c=>_0x15e00c[a0_0x2ac932(0x140)]())['filter'](_0x1cca38=>_0x1cca38['length']>0x0)):DEFAULT_DISABLED_TOOLS;if(DISABLED_TOOLS[a0_0x2ac932(0xfc)]>0x0){for(const tool of DISABLED_TOOLS){!KNOWN_TOOL_NAMES[a0_0x2ac932(0x101)](tool)&&console['error'](a0_0x2ac932(0x1d6)+tool+a0_0x2ac932(0x127)+[...KNOWN_TOOL_NAMES][a0_0x2ac932(0x1a1)](',\x20'));}console[a0_0x2ac932(0x123)](a0_0x2ac932(0x1c3)+[...DISABLED_TOOLS][a0_0x2ac932(0x1a1)](',\x20'));}MORPH_API_KEY&&!MORPH_API_KEY[a0_0x2ac932(0x1c7)](a0_0x2ac932(0x18b))&&!MORPH_API_KEY[a0_0x2ac932(0x1c7)](a0_0x2ac932(0x199))&&logMcpStderr(a0_0x2ac932(0x16f));async function reportMorphError(_0x148777){const _0x551005=a0_0x2ac932;try{await a0_0x171e51[_0x551005(0xe4)](_0x551005(0x172),{..._0x148777,'timestamp':new Date()['toISOString'](),'source':_0x148777[_0x551005(0x115)]||_0x551005(0xc7),'os_type':OPERATING_SYSTEM_TYPE,'context':{'os_type':OPERATING_SYSTEM_TYPE,..._0x148777['context']}},{'timeout':0x1388,'headers':{'Content-Type':_0x551005(0x189),'Authorization':'Bearer\x20'+MORPH_API_KEY}});}catch{}}function extractStatusCode(_0x3e758d,_0x4848fb){const _0x26b370=a0_0x2ac932;if(_0x3e758d&&typeof _0x3e758d===_0x26b370(0x1bb)&&_0x26b370(0x1d8)in _0x3e758d)return _0x3e758d[_0x26b370(0x1d8)];if(_0x3e758d&&typeof _0x3e758d==='object'&&_0x26b370(0x112)in _0x3e758d)return _0x3e758d[_0x26b370(0x112)]?.[_0x26b370(0x1d8)];const _0x1fd41b=_0x4848fb['match'](/\b(401|429)\b/);return _0x1fd41b?parseInt(_0x1fd41b[0x1],0xa):null;}function handleMorphAPIError(_0x23cd25){const _0x357195=a0_0x2ac932,_0x39c941=_0x23cd25 instanceof Error?_0x23cd25[_0x357195(0x10e)]:String(_0x23cd25),_0x3f89f6=extractStatusCode(_0x23cd25,_0x39c941);switch(_0x3f89f6){case 0x191:return{'content':[{'type':_0x357195(0xf6),'text':_0x357195(0x164)}],'isError':!![]};case 0x1ad:return{'content':[{'type':'text','text':_0x357195(0xc9)}],'isError':!![]};default:return null;}}args[a0_0x2ac932(0x18c)]===0x0&&!ENABLE_WORKSPACE_MODE&&(logMcpStderr(a0_0x2ac932(0x107)),logMcpStderr('Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:'),logMcpStderr(a0_0x2ac932(0x136)),logMcpStderr(a0_0x2ac932(0xd9)),logMcpStderr(a0_0x2ac932(0x13e)),logMcpStderr('At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.'));function normalizePath(_0x351c36){const _0x58334e=a0_0x2ac932;return a0_0x2c7b75[_0x58334e(0x169)](_0x351c36);}function expandHome(_0x4f7e05){const _0x4cba93=a0_0x2ac932;if(_0x4f7e05[_0x4cba93(0x1c7)]('~/')||_0x4f7e05==='~')return a0_0x2c7b75[_0x4cba93(0x1a1)](a0_0x196792['homedir'](),_0x4f7e05['slice'](0x1));return _0x4f7e05;}let allowedDirectories=await Promise[a0_0x2ac932(0xe9)](args[a0_0x2ac932(0x13f)](async _0x178ebb=>{const _0x470898=a0_0x2ac932,_0x13340f=expandHome(_0x178ebb),_0x105762=a0_0x2c7b75[_0x470898(0x195)](_0x13340f);try{const _0x1fe7b2=await a0_0x55b4eb['realpath'](_0x105762);return normalizePath(_0x1fe7b2);}catch(_0x167d53){return normalizePath(_0x105762);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x2ac932(0x18c)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x2ac932(0x182)](workspaceDir),logMcpStderr(a0_0x2ac932(0xe5)+workspaceDir+'\x20as\x20allowed\x20directory'));}catch(a0_0xfd6ea9){logMcpStderr('Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20'+a0_0xfd6ea9);}async function detectWorkspaceRoot(_0xfb1806){const _0x598b76=a0_0x2ac932;let _0x128b54=a0_0x2c7b75[_0x598b76(0x195)](_0xfb1806);const _0x2d8c51=['.git',_0x598b76(0x15b),'package.json',_0x598b76(0x160),_0x598b76(0x106),_0x598b76(0x1bc),'.cursor',_0x598b76(0x128),_0x598b76(0x1c9)];while(_0x128b54!==a0_0x2c7b75[_0x598b76(0x196)](_0x128b54)){for(const _0xb8f25 of _0x2d8c51){const _0x3365d4=a0_0x2c7b75[_0x598b76(0x1a1)](_0x128b54,_0xb8f25);try{return await a0_0x55b4eb[_0x598b76(0x1b0)](_0x3365d4),normalizePath(_0x128b54);}catch{}}_0x128b54=a0_0x2c7b75['dirname'](_0x128b54);}return normalizePath(_0xfb1806);}await Promise[a0_0x2ac932(0xe9)](args[a0_0x2ac932(0x13f)](async _0x44f106=>{const _0x505f3a=a0_0x2ac932;try{const _0x2b9ae2=await a0_0x55b4eb['stat'](expandHome(_0x44f106));!_0x2b9ae2[_0x505f3a(0x12b)]()&&(logMcpStderr('Error:\x20'+_0x44f106+_0x505f3a(0xc5)),process[_0x505f3a(0x19e)](0x1));}catch(_0x3fc709){logMcpStderr(_0x505f3a(0xe3)+_0x44f106+':',_0x3fc709),process[_0x505f3a(0x19e)](0x1);}}));async function validatePath(_0x6333c7){const _0x4dddd2=a0_0x2ac932,_0x6d9dab=expandHome(_0x6333c7),_0x271605=a0_0x2c7b75['resolve'](_0x6d9dab);logger[_0x4dddd2(0x149)](_0x4dddd2(0x170),_0x4dddd2(0x1aa),{'raw_path':_0x6333c7,'absolute':_0x271605});try{const _0x17c72a=await a0_0x55b4eb[_0x4dddd2(0x135)](_0x271605);return logger[_0x4dddd2(0x149)]('MCP',_0x4dddd2(0xb2),{'resolved':_0x17c72a,'symlink':_0x17c72a!==_0x271605}),_0x17c72a;}catch(_0x5a6be1){if(_0x5a6be1[_0x4dddd2(0xf2)]==='ENOENT'){const _0x58125a=a0_0x2c7b75[_0x4dddd2(0x196)](_0x271605);try{const _0x1766b3=await a0_0x55b4eb[_0x4dddd2(0x135)](_0x58125a),_0x5169b9=a0_0x2c7b75[_0x4dddd2(0x1a1)](_0x1766b3,a0_0x2c7b75[_0x4dddd2(0x1d0)](_0x271605));return logger[_0x4dddd2(0x149)](_0x4dddd2(0x170),_0x4dddd2(0xb2),{'resolved':_0x5169b9,'new_file':!![]}),_0x5169b9;}catch{logger[_0x4dddd2(0x123)](_0x4dddd2(0x170),_0x4dddd2(0xea),{'raw_path':_0x6333c7,'error':_0x4dddd2(0x159)+_0x58125a});throw new Error(_0x4dddd2(0x159)+_0x58125a);}}logger[_0x4dddd2(0x123)](_0x4dddd2(0x170),_0x4dddd2(0xea),{'raw_path':_0x6333c7,'error':_0x5a6be1['message']});throw _0x5a6be1;}}const MorphEditFileArgsSchema=z[a0_0x2ac932(0x1bb)]({'path':z[a0_0x2ac932(0x144)](),'code_edit':z[a0_0x2ac932(0x144)]()[a0_0x2ac932(0xd1)]('Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.'),'instruction':z['string']()[a0_0x2ac932(0xd1)](a0_0x2ac932(0x1ba)),'dryRun':z['boolean']()['default'](![])[a0_0x2ac932(0xd1)]('Preview\x20changes\x20without\x20applying\x20them.')}),CODEBASE_SEARCH_QUERY_DESCRIPTION=a0_0x2ac932(0x1b2),WarpGrepArgsSchema=z[a0_0x2ac932(0x1bb)]({'search_string':z[a0_0x2ac932(0x144)]()[a0_0x2ac932(0xd1)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repo_path':z[a0_0x2ac932(0x144)]()[a0_0x2ac932(0xd1)]('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['enum'](['default','node_modules'])[a0_0x2ac932(0x13a)]()[a0_0x2ac932(0xd1)](a0_0x2ac932(0x1b4))}),WarpGrepGitHubArgsSchema=z[a0_0x2ac932(0x1bb)]({'search_string':z[a0_0x2ac932(0x144)]()[a0_0x2ac932(0xd1)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'github_url':z[a0_0x2ac932(0x144)]()['optional']()['describe'](a0_0x2ac932(0xdd)),'owner_repo':z[a0_0x2ac932(0x144)]()[a0_0x2ac932(0x13a)]()['describe'](a0_0x2ac932(0x141)),'branch':z[a0_0x2ac932(0x144)]()[a0_0x2ac932(0x13a)]()[a0_0x2ac932(0xd1)](a0_0x2ac932(0x1c0))}),CodebaseSearchArgsSchema=z['object']({'query':z['string']()[a0_0x2ac932(0xd1)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repoId':z[a0_0x2ac932(0x144)]()[a0_0x2ac932(0xd1)](a0_0x2ac932(0x1a7)),'branch':z['string']()[a0_0x2ac932(0x13a)]()[a0_0x2ac932(0xd1)](a0_0x2ac932(0x168)),'commitHash':z[a0_0x2ac932(0x144)]()['optional']()[a0_0x2ac932(0xd1)](a0_0x2ac932(0x1ca)),'targetDirectories':z[a0_0x2ac932(0x137)](z[a0_0x2ac932(0x144)]())[a0_0x2ac932(0x104)]([])[a0_0x2ac932(0xd1)]('Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all'),'limit':z[a0_0x2ac932(0x1c2)]()[a0_0x2ac932(0x13a)]()['default'](0xa)[a0_0x2ac932(0xd1)](a0_0x2ac932(0xd7))}),server=new Server({'name':a0_0x2ac932(0xbd),'version':a0_0x2ac932(0x17f)},{'capabilities':{'tools':{}}});server[a0_0x2ac932(0x180)](ListToolsRequestSchema,async()=>{const _0x45938d=a0_0x2ac932,_0x3d87ce=[{'name':TOOL_NAMES[_0x45938d(0x158)],'description':_0x45938d(0xf7)+_0x45938d(0x111)+'Parameters:\x0a'+_0x45938d(0xf4)+_0x45938d(0x184)+_0x45938d(0x1b1)+_0x45938d(0x1ab)+'Example\x20format:\x0a'+'//\x20...\x20existing\x20code\x20...\x0aFIRST_EDIT\x0a//\x20...\x20existing\x20code\x20...\x0aSECOND_EDIT\x0a//\x20...\x20existing\x20code\x20...\x0a\x0a'+_0x45938d(0xf8)+_0x45938d(0xe8)+_0x45938d(0xb7)+_0x45938d(0x147)+_0x45938d(0x17b),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':TOOL_NAMES[_0x45938d(0x14a)],'description':_0x45938d(0xfb)+CODEBASE_SEARCH_QUERY_DESCRIPTION+'\x20'+'Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20toolin\x20its\x20search.\x20'+_0x45938d(0x1d7)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':GITHUB_SEARCH_TOOL_NAME,'description':GITHUB_SEARCH_DESCRIPTION,'inputSchema':zodToJsonSchema(WarpGrepGitHubArgsSchema),'requiresApiKey':!![]}],_0x2f2d8e=_0x3d87ce[_0x45938d(0x145)](_0x22b286=>{const _0x26fe2d=_0x45938d;if(DISABLED_TOOLS['has'](_0x22b286[_0x26fe2d(0x197)]))return console[_0x26fe2d(0x123)](_0x26fe2d(0x12c)+_0x22b286[_0x26fe2d(0x197)]+_0x26fe2d(0x10f)),![];if(_0x26fe2d(0x1c1)in _0x22b286&&_0x22b286[_0x26fe2d(0x1c1)]&&!MORPH_API_KEY)return logMcpStderr(_0x26fe2d(0xf1)+_0x22b286[_0x26fe2d(0x197)]+_0x26fe2d(0x1d4)),![];return!![];});return{'tools':_0x2f2d8e['map'](_0x2dd1c9=>({'name':_0x2dd1c9[_0x45938d(0x197)],'description':_0x2dd1c9[_0x45938d(0xc6)],'inputSchema':_0x2dd1c9[_0x45938d(0x114)]}))};}),server[a0_0x2ac932(0x180)](CallToolRequestSchema,async _0x20cec6=>{const _0x5af0a9=a0_0x2ac932,{name:_0x389c4f,arguments:_0x1b4d4e}=_0x20cec6[_0x5af0a9(0x19a)],_0x1e5f29=Date[_0x5af0a9(0x175)]();logger[_0x5af0a9(0x149)](_0x5af0a9(0x170),_0x5af0a9(0x1b9),{'tool':_0x389c4f,'args':_0x389c4f===_0x5af0a9(0x19f)?{'path':_0x1b4d4e?.[_0x5af0a9(0x150)],'instruction':_0x1b4d4e?.['instruction']||_0x1b4d4e?.[_0x5af0a9(0xe0)],'dryRun':_0x1b4d4e?.[_0x5af0a9(0x139)]}:_0x1b4d4e});try{if(!MORPH_API_KEY)return{'content':[{'type':_0x5af0a9(0xf6),'text':_0x5af0a9(0x1d5)}],'isError':!![]};if(!MORPH_API_KEY[_0x5af0a9(0x1c7)](_0x5af0a9(0x18b))&&!MORPH_API_KEY['startsWith'](_0x5af0a9(0x199)))return{'content':[{'type':'text','text':_0x5af0a9(0x11b)}],'isError':!![]};if(DISABLED_TOOLS[_0x5af0a9(0x101)](_0x389c4f))return{'content':[{'type':_0x5af0a9(0xf6),'text':'Tool\x20\x22'+_0x389c4f+'\x22\x20is\x20disabled\x20via\x20the\x20DISABLED_TOOLS\x20environment\x20variable\x20in\x20your\x20MCP\x20configuration.\x20Please\x20use\x20an\x20alternative\x20approach.'}],'isError':![]};switch(_0x389c4f){case TOOL_NAMES['EDIT_FILE']:{let _0xe83d1c=_0x1b4d4e;if(_0xe83d1c&&typeof _0xe83d1c==='object'){if(!(_0x5af0a9(0x150)in _0xe83d1c)){const _0x1d5a2b=_0xe83d1c[_0x5af0a9(0x11f)]??_0xe83d1c['filePath']??_0xe83d1c['target_filepath']??_0xe83d1c[_0x5af0a9(0x120)]??_0xe83d1c[_0x5af0a9(0x17e)];if(_0x1d5a2b)_0xe83d1c={..._0xe83d1c,'path':_0x1d5a2b};}_0x5af0a9(0xe0)in _0xe83d1c&&!(_0x5af0a9(0x124)in _0xe83d1c)&&(_0xe83d1c={..._0xe83d1c,'instruction':_0xe83d1c[_0x5af0a9(0xe0)]});if(!('code_edit'in _0xe83d1c)){const _0x35638e=_0xe83d1c['code']??_0xe83d1c[_0x5af0a9(0x108)]??_0xe83d1c[_0x5af0a9(0xeb)]??_0xe83d1c[_0x5af0a9(0x125)];if(_0x35638e)_0xe83d1c={..._0xe83d1c,'code_edit':_0x35638e};}}const _0x41c5ef=MorphEditFileArgsSchema['safeParse'](_0xe83d1c);if(!_0x41c5ef[_0x5af0a9(0x12f)])throw new Error('Invalid\x20arguments\x20for\x20morph_edit_file:\x20'+_0x41c5ef['error']);const _0x388cf3=await validatePath(_0x41c5ef[_0x5af0a9(0xb1)][_0x5af0a9(0x150)]);let _0x3d44b3=null,_0x56a3c1=!![],_0x33e636=null;try{_0x3d44b3=await a0_0x55b4eb[_0x5af0a9(0xec)](_0x388cf3,_0x5af0a9(0xbe)),logger[_0x5af0a9(0x149)](_0x5af0a9(0x170),_0x5af0a9(0x13b),{'path':_0x388cf3,'size_bytes':_0x3d44b3['length']});}catch(_0x145283){const _0x57c057=_0x145283[_0x5af0a9(0xf2)];_0x57c057===_0x5af0a9(0x1cd)?(_0x56a3c1=![],_0x3d44b3='',logger[_0x5af0a9(0x149)](_0x5af0a9(0x170),_0x5af0a9(0x13b),{'path':_0x388cf3,'exists':![]})):(_0x33e636=_0x5af0a9(0x187)+(_0x57c057||_0x5af0a9(0x198))+_0x5af0a9(0x16d)+(_0x145283 instanceof Error?_0x145283['message']:String(_0x145283)),logger[_0x5af0a9(0x123)](_0x5af0a9(0x170),_0x5af0a9(0xfd),{'path':_0x388cf3,'error':_0x33e636}),logMcpStderr('Warning:\x20'+_0x33e636));}let _0x4bb4ac;try{const _0x54a054=MORPH_API_KEY;if(!_0x54a054)throw new Error('MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.');const _0x156018=a0_0x2c7b75[_0x5af0a9(0x196)](_0x388cf3),_0x1233e1=a0_0x2c7b75[_0x5af0a9(0x1d0)](_0x388cf3);logger[_0x5af0a9(0x149)](_0x5af0a9(0x170),_0x5af0a9(0xb8),{'model':_0x5af0a9(0x194),'path':_0x41c5ef[_0x5af0a9(0xb1)][_0x5af0a9(0x150)],'instruction_len':_0x41c5ef['data'][_0x5af0a9(0x124)]['length'],'code_edit_len':_0x41c5ef['data']['code_edit'][_0x5af0a9(0x18c)],'original_code_len':_0x3d44b3?.[_0x5af0a9(0x18c)]??0x0,'dry_run':_0x41c5ef['data'][_0x5af0a9(0x139)]});const _0x336619=Date[_0x5af0a9(0x175)](),_0x3ba8ab=await executeEditFile({'target_filepath':_0x1233e1,'code_edit':_0x41c5ef[_0x5af0a9(0xb1)][_0x5af0a9(0x1c4)],'instruction':_0x41c5ef['data'][_0x5af0a9(0x124)]},{'morphApiKey':_0x54a054,'morphApiUrl':MORPH_API_URL,'large':MORPH_LARGE_APPLY,'baseDir':_0x156018,'autoWrite':!_0x41c5ef[_0x5af0a9(0xb1)][_0x5af0a9(0x139)],'generateUdiff':![],'debug':![]}),_0x25302a=Date[_0x5af0a9(0x175)]()-_0x336619;_0x4bb4ac=_0x3ba8ab['completionId'];if(!_0x3ba8ab[_0x5af0a9(0x12f)])throw new Error(_0x3ba8ab[_0x5af0a9(0x123)]||_0x5af0a9(0x1da));const _0x2872a3=_0x3ba8ab[_0x5af0a9(0xc4)],_0x8015d4=_0x5af0a9(0x1d9)+_0x2872a3[_0x5af0a9(0xc0)]+',\x20removed\x20'+_0x2872a3[_0x5af0a9(0x132)]+',\x20modified\x20'+_0x2872a3[_0x5af0a9(0x10d)];logger[_0x5af0a9(0x149)](_0x5af0a9(0x170),_0x5af0a9(0x179),{'tool':_0x5af0a9(0x19f),'success':!![],'latency_ms':Date[_0x5af0a9(0x175)]()-_0x1e5f29,'edit_latency_ms':_0x25302a,'changes':{'added':_0x2872a3['linesAdded'],'removed':_0x2872a3['linesRemoved'],'modified':_0x2872a3[_0x5af0a9(0x10d)]},'completion_id':_0x4bb4ac});if(_0x41c5ef[_0x5af0a9(0xb1)][_0x5af0a9(0x139)])return{'content':[{'type':_0x5af0a9(0xf6),'text':_0x5af0a9(0x1b8)+(_0x56a3c1?'':_0x5af0a9(0xe1))+':\x20'+_0x41c5ef['data']['instruction']+_0x5af0a9(0x1cc)+_0x8015d4+'.\x20Path:\x20'+_0x41c5ef['data'][_0x5af0a9(0x150)]+'.'}]};return{'content':[{'type':_0x5af0a9(0xf6),'text':_0x5af0a9(0x152)+(_0x56a3c1?_0x5af0a9(0x18a):'Created\x20File')+':\x20'+_0x41c5ef[_0x5af0a9(0xb1)]['instruction']+'.\x20Changes:\x20'+_0x8015d4+_0x5af0a9(0x138)+_0x41c5ef[_0x5af0a9(0xb1)][_0x5af0a9(0x150)]+'.'}]};}catch(_0x2e8f63){const _0x7bf9c9=handleMorphAPIError(_0x2e8f63);if(_0x7bf9c9)return logger[_0x5af0a9(0x123)]('MCP',_0x5af0a9(0x143),{'tool':_0x5af0a9(0x19f),'error':_0x5af0a9(0x16c),'latency_ms':Date['now']()-_0x1e5f29}),_0x7bf9c9;const _0x1dc5d4=_0x2e8f63 instanceof Error?_0x2e8f63[_0x5af0a9(0x10e)]:String(_0x2e8f63);return logger[_0x5af0a9(0x123)](_0x5af0a9(0x170),_0x5af0a9(0x143),{'tool':_0x5af0a9(0x19f),'error':_0x1dc5d4,'path':_0x41c5ef[_0x5af0a9(0xb1)]['path'],'validated_path':_0x388cf3,'latency_ms':Date['now']()-_0x1e5f29,'stack':_0x2e8f63 instanceof Error?_0x2e8f63[_0x5af0a9(0x155)]:undefined}),reportMorphError({'error_message':_0x1dc5d4,'error_type':_0x2e8f63 instanceof Error?_0x2e8f63[_0x5af0a9(0x148)][_0x5af0a9(0x197)]:_0x5af0a9(0x1af),'context':{'tool':_0x5af0a9(0x19f),'completion_id':_0x4bb4ac,'file_path':_0x41c5ef[_0x5af0a9(0xb1)][_0x5af0a9(0x150)],'validated_path':_0x388cf3,'instruction':_0x41c5ef[_0x5af0a9(0xb1)][_0x5af0a9(0x124)],'model':MORPH_LARGE_APPLY?'morph-v3-large':_0x5af0a9(0x194),'dry_run':_0x41c5ef[_0x5af0a9(0xb1)][_0x5af0a9(0x139)],'file_exists':_0x56a3c1,'file_read_error':_0x33e636,'file_readable':_0x3d44b3!==null,'request_content':{'path':_0x41c5ef[_0x5af0a9(0xb1)][_0x5af0a9(0x150)],'code_edit':_0x41c5ef[_0x5af0a9(0xb1)][_0x5af0a9(0x1c4)],'instruction':_0x41c5ef['data']['instruction'],'original_code':_0x3d44b3!==null?_0x3d44b3[_0x5af0a9(0x18c)]>0xc350?_0x3d44b3['substring'](0x0,0xc350)+_0x5af0a9(0x14d)+_0x3d44b3[_0x5af0a9(0x18c)]+_0x5af0a9(0xfe):_0x3d44b3:_0x5af0a9(0x1ac)+(_0x33e636||_0x5af0a9(0xca))+']','original_code_length':_0x3d44b3?.[_0x5af0a9(0x18c)]??0x0,'model':MORPH_LARGE_APPLY?_0x5af0a9(0xbf):_0x5af0a9(0x194),'dry_run':_0x41c5ef[_0x5af0a9(0xb1)]['dryRun']}},'stack_trace':_0x2e8f63 instanceof Error?_0x2e8f63[_0x5af0a9(0x155)]:undefined,'source':_0x5af0a9(0xc7)})['catch'](()=>{}),{'content':[{'type':_0x5af0a9(0xf6),'text':_0x5af0a9(0xd4)+_0x1dc5d4}],'isError':!![]};}}case TOOL_NAMES[_0x5af0a9(0x14a)]:{const _0x2dfda2=WarpGrepArgsSchema['safeParse'](_0x1b4d4e);if(!_0x2dfda2[_0x5af0a9(0x12f)])return{'content':[{'type':_0x5af0a9(0xf6),'text':_0x5af0a9(0x121)+_0x2dfda2[_0x5af0a9(0x123)]}],'isError':!![]};const _0x2bea43=_0x3e2d1b=>{const _0x272241=_0x5af0a9,_0x5b61cb=[];for(const _0x226a9f of _0x3e2d1b||[]){if(_0x226a9f['role']===_0x272241(0xc8)&&Array['isArray'](_0x226a9f[_0x272241(0xcd)]))for(const _0x36837a of _0x226a9f[_0x272241(0xcd)]){try{const _0x2c7bb1=_0x36837a[_0x272241(0xf5)]?.[_0x272241(0x197)],_0xdef17d=JSON[_0x272241(0x190)](_0x36837a[_0x272241(0xf5)]?.[_0x272241(0x185)]||'{}');if(_0x2c7bb1===_0x272241(0xe6))_0x5b61cb['push'](_0x272241(0x14f)+_0xdef17d['pattern']+'\x27\x20'+(_0xdef17d['path']||'.'));else{if(_0x2c7bb1===_0x272241(0x109))_0x5b61cb[_0x272241(0x182)](_0x272241(0x156)+_0xdef17d[_0x272241(0x150)]);else{if(_0x2c7bb1===_0x272241(0x192))_0x5b61cb[_0x272241(0x182)](_0x272241(0x14c)+(_0xdef17d[_0x272241(0x1bf)]||'.'));else{if(_0x2c7bb1==='glob')_0x5b61cb[_0x272241(0x182)](_0x272241(0x14b)+_0xdef17d[_0x272241(0x130)]+'\x27\x20'+(_0xdef17d[_0x272241(0x150)]||'.'));else _0x2c7bb1===_0x272241(0x122)&&_0x5b61cb['push'](_0x272241(0x122));}}}}catch{}}}return _0x5b61cb;},_0x4e1e45=_0xe1e70d=>{const _0x37e2d3=_0x5af0a9,_0x15a6f3=[];if(!_0xe1e70d||!Array['isArray'](_0xe1e70d))return _0x15a6f3;const _0x5b47e6=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':_0x37e2d3(0x166),'tool':_0x37e2d3(0x109)},{'pattern':/\[PATH ERROR\]/,'error_type':_0x37e2d3(0xd6),'tool':_0x37e2d3(0x109)},{'pattern':/\[READ ERROR\]/,'error_type':_0x37e2d3(0x1a4),'tool':_0x37e2d3(0x109)},{'pattern':/\[UNREADABLE FILE\]/,'error_type':'BinaryFile','tool':'read'},{'pattern':/\[RIPGREP ERROR\]/,'error_type':_0x37e2d3(0xee),'tool':'grep'},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x37e2d3(0x15a),'tool':_0x37e2d3(0x15f)},{'pattern':/\[BINARY FILE\]/,'error_type':_0x37e2d3(0x161),'tool':_0x37e2d3(0x109)},{'pattern':/\[SYMLINK\]/,'error_type':'SymlinkError','tool':_0x37e2d3(0x109)},{'pattern':/not a text file/,'error_type':_0x37e2d3(0x161),'tool':_0x37e2d3(0x109)},{'pattern':/symbolic link/,'error_type':_0x37e2d3(0x11e),'tool':_0x37e2d3(0x109)},{'pattern':/Error reading file:/,'error_type':'ReadError','tool':_0x37e2d3(0x109)},{'pattern':/status="error"/,'error_type':_0x37e2d3(0x10b),'tool':_0x37e2d3(0x198)}];let _0x39c477=0x0;for(const _0x12b573 of _0xe1e70d){_0x12b573[_0x37e2d3(0x181)]===_0x37e2d3(0xc8)&&Array[_0x37e2d3(0x1a6)](_0x12b573[_0x37e2d3(0xcd)])&&_0x39c477++;const _0x37a92f=_0x12b573[_0x37e2d3(0xeb)];if((_0x12b573['role']==='tool'||_0x12b573[_0x37e2d3(0x181)]===_0x37e2d3(0xc2))&&_0x37a92f&&typeof _0x37a92f===_0x37e2d3(0x144))for(const {pattern:_0x350563,error_type:_0x27727f,tool:_0x205bab}of _0x5b47e6){const _0x11a548=_0x37a92f['match'](new RegExp(_0x350563[_0x37e2d3(0x115)],'g'));if(_0x11a548)for(const _0x56bc8e of _0x11a548){const _0x377555=_0x37a92f[_0x37e2d3(0xd0)](_0x56bc8e),_0x75ca46=_0x37a92f[_0x37e2d3(0x13d)](_0x377555,Math[_0x37e2d3(0x17a)](_0x377555+0xc8,_0x37a92f[_0x37e2d3(0x18c)]));_0x15a6f3[_0x37e2d3(0x182)]({'tool':_0x205bab,'error_type':_0x27727f,'error_message':_0x75ca46[_0x37e2d3(0x1d1)]('\x0a')[0x0],'turn':_0x39c477});}}}return _0x15a6f3;};try{const _0x5b9526=a0_0x2c7b75[_0x5af0a9(0x195)](_0x2dfda2[_0x5af0a9(0xb1)][_0x5af0a9(0x10c)]),_0x538659=_0x2dfda2[_0x5af0a9(0xb1)][_0x5af0a9(0x16a)],_0x480697=_0x538659===_0x5af0a9(0x1a0)?{'allowNames':[_0x5af0a9(0x1a0)]}:undefined,_0x518052=new LocalRipgrepProvider(_0x5b9526,undefined,_0x480697);logger[_0x5af0a9(0x149)](_0x5af0a9(0x170),'provider_created',{'type':'LocalRipgrepProvider','repo_root':_0x5b9526,'search_type':_0x538659||_0x5af0a9(0x104)}),logger['debug']('MCP',_0x5af0a9(0x1be),{'query':_0x2dfda2[_0x5af0a9(0xb1)][_0x5af0a9(0xc1)],'repo_root':_0x5b9526,'timeout_ms':MORPH_WARP_GREP_TIMEOUT});const _0x12af8f=Date[_0x5af0a9(0x175)](),_0x50f9d4=await runWarpGrep({'searchTerm':_0x2dfda2[_0x5af0a9(0xb1)]['search_string'],'repoRoot':_0x5b9526,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x518052,'search_type':_0x538659}),_0x23083a=Date[_0x5af0a9(0x175)]()-_0x12af8f,_0xbb602f=_0x50f9d4[_0x5af0a9(0x122)]?.[_0x5af0a9(0x183)]?.['files']?.[_0x5af0a9(0x18c)]??0x0;logger[_0x5af0a9(0x149)](_0x5af0a9(0x170),_0x5af0a9(0x146),{'termination':_0x50f9d4[_0x5af0a9(0x157)],'turns':_0x50f9d4[_0x5af0a9(0x18d)]?.[_0x5af0a9(0xcb)]??0x0,'files_found':_0xbb602f,'latency_ms':_0x23083a});const _0x3ec97f=_0x4e1e45(_0x50f9d4[_0x5af0a9(0x119)]);_0x3ec97f['length']>0x0&&reportMorphError({'error_message':_0x5af0a9(0xba)+_0x3ec97f[_0x5af0a9(0x18c)]+'\x20error(s)','error_type':_0x5af0a9(0x12a),'level':_0x5af0a9(0x133),'tool':_0x5af0a9(0x1d2),'context':{'repo_path':_0x2dfda2[_0x5af0a9(0xb1)][_0x5af0a9(0x10c)],'query':_0x2dfda2[_0x5af0a9(0xb1)][_0x5af0a9(0xc1)],'model':'morph-warp-grep-v2.1','termination_reason':_0x50f9d4[_0x5af0a9(0x157)],'sub_tool_errors':_0x3ec97f,'timings':_0x50f9d4[_0x5af0a9(0x18d)],'tool_calls':_0x2bea43(_0x50f9d4[_0x5af0a9(0x119)]),'messages':_0x50f9d4['messages']?.[_0x5af0a9(0x13f)](_0x51b759=>({'role':_0x51b759[_0x5af0a9(0x181)],'content':_0x51b759[_0x5af0a9(0xeb)],..._0x51b759['tool_calls']?{'tool_calls':_0x51b759['tool_calls']['length']}:{},..._0x51b759[_0x5af0a9(0x151)]?{'tool_call_id':_0x51b759[_0x5af0a9(0x151)]}:{}}))},'source':_0x5af0a9(0xc7)})[_0x5af0a9(0x117)](()=>{});let _0x52cbfc='';if(_0x50f9d4[_0x5af0a9(0x157)]===_0x5af0a9(0x1a8)&&_0x50f9d4['finish']?.[_0x5af0a9(0x183)]?.[_0x5af0a9(0x102)]){const _0x557094=_0x50f9d4[_0x5af0a9(0x122)]['metadata'][_0x5af0a9(0x102)];if(_0x557094[_0x5af0a9(0x18c)]===0x0)return _0x52cbfc=_0x50f9d4['finish']['payload']||_0x5af0a9(0x113),{'content':[{'type':_0x5af0a9(0xf6),'text':_0x52cbfc}]};const _0x2ff245=[],_0xe8a887=[_0x5af0a9(0x1ae)];for(const _0x1b30c4 of _0x50f9d4[_0x5af0a9(0x119)]){if(_0x1b30c4[_0x5af0a9(0x181)]===_0x5af0a9(0xc8)&&Array[_0x5af0a9(0x1a6)](_0x1b30c4[_0x5af0a9(0xcd)]))for(const _0x2ae9c4 of _0x1b30c4[_0x5af0a9(0xcd)]){try{const _0x3c1ff6=_0x2ae9c4[_0x5af0a9(0xf5)]?.[_0x5af0a9(0x197)],_0x881cc8=JSON[_0x5af0a9(0x190)](_0x2ae9c4[_0x5af0a9(0xf5)]?.[_0x5af0a9(0x185)]||'{}');if(_0x3c1ff6===_0x5af0a9(0xe6))_0xe8a887[_0x5af0a9(0x182)](_0x5af0a9(0x1c6)+_0x881cc8[_0x5af0a9(0x130)]+_0x5af0a9(0x1a9)+(_0x881cc8[_0x5af0a9(0x150)]||'.')+'`');else{if(_0x3c1ff6===_0x5af0a9(0x109))_0xe8a887[_0x5af0a9(0x182)](_0x5af0a9(0x134)+_0x881cc8[_0x5af0a9(0x150)]+'`');else{if(_0x3c1ff6===_0x5af0a9(0x192))_0xe8a887[_0x5af0a9(0x182)]('-\x20Listed\x20directory\x20`'+(_0x881cc8[_0x5af0a9(0x1bf)]||'.')+'`');else _0x3c1ff6===_0x5af0a9(0xff)&&_0xe8a887[_0x5af0a9(0x182)]('-\x20Glob\x20search\x20`'+_0x881cc8[_0x5af0a9(0x130)]+_0x5af0a9(0x1cf)+(_0x881cc8['path']||'.')+'`');}}}catch{}}}_0x2ff245['push'](_0xe8a887['join']('\x0a'));const _0x1d5857=['',_0x5af0a9(0x116)];for(const _0xc928b of _0x557094){if(_0xc928b[_0x5af0a9(0x142)]==='*')_0x1d5857[_0x5af0a9(0x182)]('-\x20'+_0xc928b[_0x5af0a9(0x150)]+':*');else{if(Array[_0x5af0a9(0x1a6)](_0xc928b[_0x5af0a9(0x142)])){const _0x1abba9=_0xc928b['lines'][_0x5af0a9(0x13f)](([_0x5085ca,_0x467bdb])=>{if(_0x5085ca===_0x467bdb)return''+_0x5085ca;return _0x5085ca+'-'+_0x467bdb;});_0x1d5857[_0x5af0a9(0x182)]('-\x20'+_0xc928b['path']+':'+_0x1abba9[_0x5af0a9(0x1a1)](','));}else _0x1d5857['push']('-\x20'+_0xc928b[_0x5af0a9(0x150)]+':*');}}_0x1d5857['push'](''),_0x2ff245[_0x5af0a9(0x182)](_0x1d5857['join']('\x0a')),_0x2ff245[_0x5af0a9(0x182)](_0x5af0a9(0x177));const _0x2441a4=[],_0x547a81=[];for(const _0x27632c of _0x557094){let _0xad8c24=a0_0x2c7b75[_0x5af0a9(0x195)](_0x2dfda2['data'][_0x5af0a9(0x10c)],_0x27632c['path']),_0x1ab83f=null,_0x10339a=null;try{_0x1ab83f=await a0_0x55b4eb[_0x5af0a9(0xec)](_0xad8c24,{'encoding':_0x5af0a9(0xbe)});}catch(_0x298767){const _0x1a96df=fixPathRepetition(_0xad8c24);if(_0x1a96df)try{_0x1ab83f=await a0_0x55b4eb[_0x5af0a9(0xec)](_0x1a96df,{'encoding':_0x5af0a9(0xbe)}),_0xad8c24=_0x1a96df;}catch{_0x10339a=_0x298767 instanceof Error?_0x298767:new Error(String(_0x298767));}else _0x10339a=_0x298767 instanceof Error?_0x298767:new Error(String(_0x298767));}if(_0x1ab83f!==null){const _0x3ef333=_0x1ab83f[_0x5af0a9(0x1d1)](/\r?\n/),_0x48f261=[];if(_0x27632c['lines']==='*'||!Array[_0x5af0a9(0x1a6)](_0x27632c[_0x5af0a9(0x142)]))for(let _0x7c7133=0x1;_0x7c7133<=_0x3ef333[_0x5af0a9(0x18c)];_0x7c7133++){const _0x253941=_0x3ef333[_0x7c7133-0x1];_0x48f261['push'](_0x7c7133+'|\x20'+_0x253941);}else for(const [_0x306035,_0x3c13d1]of _0x27632c[_0x5af0a9(0x142)]){_0x48f261['length']>0x0&&_0x48f261['push']('');for(let _0x2af3a8=_0x306035;_0x2af3a8<=_0x3c13d1&&_0x2af3a8<=_0x3ef333[_0x5af0a9(0x18c)];_0x2af3a8++){const _0x48340c=_0x3ef333[_0x2af3a8-0x1];_0x48f261[_0x5af0a9(0x182)](_0x2af3a8+'|\x20'+_0x48340c);}}_0x547a81['push']({'path':_0x27632c[_0x5af0a9(0x150)],'content':_0x48f261[_0x5af0a9(0x1a1)]('\x0a')});}else _0x2441a4['push'](_0x5af0a9(0xf3)+_0x27632c[_0x5af0a9(0x150)]+'\x22>\x0aError\x20reading\x20file:\x20'+(_0x10339a?.[_0x5af0a9(0x10e)]||_0x5af0a9(0x131))+_0x5af0a9(0x12d));}try{const _0x1a1ca3=await compactFileContexts(_0x547a81,_0x2dfda2['data'][_0x5af0a9(0xc1)],MORPH_API_KEY,MORPH_API_URL);for(const _0x3f2486 of _0x1a1ca3){_0x2441a4[_0x5af0a9(0x182)](_0x5af0a9(0xf3)+_0x3f2486[_0x5af0a9(0x150)]+_0x5af0a9(0x12e)+_0x3f2486[_0x5af0a9(0xeb)]+_0x5af0a9(0x12d));}}catch(_0x55d7da){logger['warn'](_0x5af0a9(0x170),_0x5af0a9(0xdf),{'error':_0x55d7da instanceof Error?_0x55d7da[_0x5af0a9(0x10e)]:String(_0x55d7da),'files_count':_0x547a81[_0x5af0a9(0x18c)]});for(const _0x478032 of _0x547a81){_0x2441a4[_0x5af0a9(0x182)](_0x5af0a9(0xf3)+_0x478032[_0x5af0a9(0x150)]+_0x5af0a9(0x12e)+_0x478032[_0x5af0a9(0xeb)]+'\x0a</file>');}}_0x2ff245[_0x5af0a9(0x182)](_0x2441a4[_0x5af0a9(0x1a1)]('\x0a\x0a')),_0x52cbfc=_0x2ff245[_0x5af0a9(0x1a1)]('\x0a');const _0x5c190f=_0x50f9d4['errors']?.['filter'](_0x30e98a=>_0x30e98a[_0x5af0a9(0x10e)]?.['startsWith'](_0x5af0a9(0x1c8)))||[];if(_0x5c190f[_0x5af0a9(0x18c)]>0x0){const _0x589616=_0x5c190f[_0x5af0a9(0x13f)](_0x186382=>_0x186382[_0x5af0a9(0x10e)])['join'](';\x20');reportMorphError({'error_message':_0x589616,'error_type':_0x5af0a9(0xcf),'context':{'tool':'codebase_search','repo_path':_0x2dfda2['data']['repo_path'],'query':_0x2dfda2[_0x5af0a9(0xb1)][_0x5af0a9(0xc1)],'model':_0x5af0a9(0x1b5),'termination_reason':'completed_with_file_errors','error_count':_0x5c190f[_0x5af0a9(0x18c)],'is_timeout':![],'timings':_0x50f9d4[_0x5af0a9(0x18d)],'files_attempted':_0x557094[_0x5af0a9(0x13f)](_0x58e787=>({'path':_0x58e787[_0x5af0a9(0x150)],'lines':_0x58e787['lines']})),'tool_calls':_0x2bea43(_0x50f9d4[_0x5af0a9(0x119)]),'messages':_0x50f9d4[_0x5af0a9(0x119)]?.[_0x5af0a9(0x13f)](_0x543c46=>({'role':_0x543c46['role'],'content':_0x543c46[_0x5af0a9(0xeb)],..._0x543c46[_0x5af0a9(0xcd)]?{'tool_calls':_0x543c46[_0x5af0a9(0xcd)][_0x5af0a9(0x18c)]}:{},..._0x543c46[_0x5af0a9(0x151)]?{'tool_call_id':_0x543c46['tool_call_id']}:{}})),'request_content':{'query':_0x2dfda2['data'][_0x5af0a9(0xc1)],'repo_path':_0x2dfda2[_0x5af0a9(0xb1)][_0x5af0a9(0x10c)],'repoRoot':a0_0x2c7b75[_0x5af0a9(0x195)](_0x2dfda2['data'][_0x5af0a9(0x10c)]),'model':'morph-warp-grep-v2.1'}},'source':_0x5af0a9(0xc7)})[_0x5af0a9(0x117)](()=>{});}}else{if(_0x50f9d4[_0x5af0a9(0x157)]===_0x5af0a9(0xf9)&&_0x50f9d4[_0x5af0a9(0x18f)][_0x5af0a9(0x18c)]>0x0){const _0xecbe3f=_0x50f9d4[_0x5af0a9(0x18f)][_0x5af0a9(0x13f)](_0x1b097f=>_0x1b097f['message'])[_0x5af0a9(0x1a1)](';\x20');_0x52cbfc=_0x5af0a9(0x167)+_0xecbe3f;const _0x410650=_0xecbe3f[_0x5af0a9(0x13c)]()[_0x5af0a9(0x17d)](_0x5af0a9(0x176))||_0xecbe3f[_0x5af0a9(0x13c)]()[_0x5af0a9(0x17d)](_0x5af0a9(0x19b))||_0xecbe3f[_0x5af0a9(0x13c)]()['includes'](_0x5af0a9(0x15d)),_0x478f4e=_0x50f9d4['finish']?.['metadata']?.[_0x5af0a9(0x102)],_0x12f36f=_0x50f9d4[_0x5af0a9(0x18f)][0x0];reportMorphError({'error_message':_0xecbe3f,'error_type':_0x410650?_0x5af0a9(0xb4):_0x12f36f?.['constructor']?.[_0x5af0a9(0x197)]||_0x5af0a9(0xfa),'context':{'tool':'codebase_search','repo_path':_0x2dfda2['data'][_0x5af0a9(0x10c)],'query':_0x2dfda2[_0x5af0a9(0xb1)][_0x5af0a9(0xc1)],'model':_0x5af0a9(0x1b5),'termination_reason':_0x50f9d4[_0x5af0a9(0x157)],'error_count':_0x50f9d4[_0x5af0a9(0x18f)][_0x5af0a9(0x18c)],'is_timeout':_0x410650,'timings':_0x50f9d4[_0x5af0a9(0x18d)],'files_attempted':_0x478f4e?.[_0x5af0a9(0x13f)](_0x19f447=>({'path':_0x19f447['path'],'lines':_0x19f447[_0x5af0a9(0x142)]})),'tool_calls':_0x2bea43(_0x50f9d4['messages']),'messages':_0x50f9d4['messages']?.[_0x5af0a9(0x13f)](_0x14b041=>({'role':_0x14b041[_0x5af0a9(0x181)],'content':_0x14b041[_0x5af0a9(0xeb)],..._0x14b041['tool_calls']?{'tool_calls':_0x14b041[_0x5af0a9(0xcd)][_0x5af0a9(0x18c)]}:{},..._0x14b041['tool_call_id']?{'tool_call_id':_0x14b041[_0x5af0a9(0x151)]}:{}})),'request_content':{'query':_0x2dfda2['data'][_0x5af0a9(0xc1)],'repo_path':_0x2dfda2['data']['repo_path'],'repoRoot':a0_0x2c7b75[_0x5af0a9(0x195)](_0x2dfda2[_0x5af0a9(0xb1)][_0x5af0a9(0x10c)]),'model':_0x5af0a9(0x1b5)}},'stack_trace':_0x12f36f?.['stack']||undefined,'source':_0x5af0a9(0xc7)})[_0x5af0a9(0x117)](()=>{});}else _0x52cbfc=_0x5af0a9(0x162);}return{'content':[{'type':'text','text':_0x52cbfc}]};}catch(_0x1abd89){const _0x13d4a2=handleMorphAPIError(_0x1abd89);if(_0x13d4a2)return logger[_0x5af0a9(0x123)](_0x5af0a9(0x170),_0x5af0a9(0x143),{'tool':_0x5af0a9(0x1d2),'error':'API\x20error\x20(auth/rate-limit)','latency_ms':Date['now']()-_0x1e5f29}),_0x13d4a2;const _0x28dc14=_0x1abd89 instanceof Error?_0x1abd89[_0x5af0a9(0x10e)]:String(_0x1abd89);logger['error'](_0x5af0a9(0x170),_0x5af0a9(0x143),{'tool':_0x5af0a9(0x1d2),'error':_0x28dc14,'repo_path':_0x2dfda2[_0x5af0a9(0xb1)][_0x5af0a9(0x10c)],'query':_0x2dfda2[_0x5af0a9(0xb1)]['search_string'],'latency_ms':Date[_0x5af0a9(0x175)]()-_0x1e5f29});const _0x3328bc=_0x28dc14['toLowerCase']()[_0x5af0a9(0x17d)](_0x5af0a9(0x176))||_0x28dc14[_0x5af0a9(0x13c)]()[_0x5af0a9(0x17d)]('timed\x20out')||_0x28dc14[_0x5af0a9(0x13c)]()[_0x5af0a9(0x17d)](_0x5af0a9(0x15d))||_0x1abd89 instanceof Error&&_0x1abd89['name']===_0x5af0a9(0xb4);return reportMorphError({'error_message':_0x28dc14,'error_type':_0x3328bc?_0x5af0a9(0xb4):_0x1abd89 instanceof Error?_0x1abd89[_0x5af0a9(0x148)][_0x5af0a9(0x197)]:_0x5af0a9(0x1af),'context':{'tool':'codebase_search','repo_path':_0x2dfda2[_0x5af0a9(0xb1)][_0x5af0a9(0x10c)],'query':_0x2dfda2[_0x5af0a9(0xb1)][_0x5af0a9(0xc1)],'model':'morph-warp-grep-v2.1','is_timeout':_0x3328bc,'exception_phase':_0x5af0a9(0xdc),'request_content':{'query':_0x2dfda2[_0x5af0a9(0xb1)][_0x5af0a9(0xc1)],'repo_path':_0x2dfda2['data']['repo_path'],'repoRoot':a0_0x2c7b75[_0x5af0a9(0x195)](_0x2dfda2[_0x5af0a9(0xb1)][_0x5af0a9(0x10c)]),'model':_0x5af0a9(0x1b5)}},'stack_trace':_0x1abd89 instanceof Error?_0x1abd89[_0x5af0a9(0x155)]:undefined,'source':'mcp-filesystem'})['catch'](()=>{}),{'content':[{'type':_0x5af0a9(0xf6),'text':'Error\x20running\x20fast\x20context\x20search:\x20'+_0x28dc14}],'isError':![]};}}case TOOL_NAMES[_0x5af0a9(0x154)]:{const _0x327261=WarpGrepGitHubArgsSchema['safeParse'](_0x1b4d4e);if(!_0x327261[_0x5af0a9(0x12f)])return{'content':[{'type':_0x5af0a9(0xf6),'text':_0x5af0a9(0x121)+_0x327261[_0x5af0a9(0x123)]}],'isError':!![]};const _0x1b7105=_0x327261[_0x5af0a9(0xb1)][_0x5af0a9(0xd2)]||_0x327261['data'][_0x5af0a9(0xd8)];if(!_0x1b7105)return{'content':[{'type':'text','text':_0x5af0a9(0x16b)}],'isError':!![]};const _0x1288c8=MORPH_API_KEY;if(!_0x1288c8)throw new Error(_0x5af0a9(0x19d));const _0x37345a=Date['now']();logger[_0x5af0a9(0x149)](_0x5af0a9(0x170),_0x5af0a9(0x191),{'identifier':_0x1b7105,'query':_0x327261[_0x5af0a9(0xb1)][_0x5af0a9(0xc1)],'branch':_0x327261[_0x5af0a9(0xb1)]['branch']});try{const _0xb2db6e=new WarpGrepClient({'morphApiKey':_0x1288c8,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0x5d659c=await _0xb2db6e[_0x5af0a9(0x18e)]({'searchTerm':_0x327261[_0x5af0a9(0xb1)][_0x5af0a9(0xc1)],'github':_0x1b7105,'branch':_0x327261[_0x5af0a9(0xb1)][_0x5af0a9(0x10a)]}),_0x392f8e=Date[_0x5af0a9(0x175)]()-_0x37345a;logMcpStderr('[github_codebase_search]\x20Done\x20in\x20'+_0x392f8e+_0x5af0a9(0x11d)+_0x5d659c[_0x5af0a9(0x12f)]);const _0x4baaf1=formatResult(_0x5d659c);return{'content':[{'type':_0x5af0a9(0xf6),'text':_0x4baaf1}]};}catch(_0x2c4524){const _0x4e9e4f=handleMorphAPIError(_0x2c4524);if(_0x4e9e4f)return _0x4e9e4f;const _0x5f496b=Date[_0x5af0a9(0x175)]()-_0x37345a,_0x50eb05=_0x2c4524 instanceof Error?_0x2c4524['message']:String(_0x2c4524);return logMcpStderr(_0x5af0a9(0x14e)+_0x5f496b+_0x5af0a9(0x1b7),_0x50eb05),reportMorphError({'error_message':_0x50eb05,'error_type':_0x2c4524 instanceof Error?_0x2c4524[_0x5af0a9(0x148)][_0x5af0a9(0x197)]:_0x5af0a9(0x1af),'context':{'tool':'github_codebase_search','github_url':_0x1b7105,'search_string':_0x327261[_0x5af0a9(0xb1)]['search_string'],'branch':_0x327261['data'][_0x5af0a9(0x10a)]},'stack_trace':_0x2c4524 instanceof Error?_0x2c4524['stack']:undefined,'source':'mcp-filesystem','tool':'github_codebase_search','latency_ms':_0x5f496b})[_0x5af0a9(0x117)](()=>{}),{'content':[{'type':'text','text':_0x5af0a9(0x178)+_0x50eb05}],'isError':![]};}}default:throw new Error(_0x5af0a9(0x15c)+_0x389c4f);}}catch(_0x5772c5){const _0x9d49f2=_0x5772c5 instanceof Error?_0x5772c5['message']:String(_0x5772c5);return reportMorphError({'error_message':_0x9d49f2,'error_type':_0x5772c5 instanceof Error?_0x5772c5['constructor']['name']:_0x5af0a9(0x1af),'context':{'tool':_0x389c4f,'arguments':_0x1b4d4e?JSON[_0x5af0a9(0x173)](_0x1b4d4e)[_0x5af0a9(0x13d)](0x0,0x1f4):undefined,'mcp_server_version':_0x5af0a9(0x17f)},'stack_trace':_0x5772c5 instanceof Error?_0x5772c5['stack']:undefined,'source':_0x5af0a9(0xc7)})[_0x5af0a9(0x117)](()=>{}),{'content':[{'type':_0x5af0a9(0xf6),'text':'Error:\x20'+_0x9d49f2}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x184ef2){const _0x1ef223=a0_0x2ac932,_0x30e5a5=await getValidRootDirectories(_0x184ef2);if(_0x30e5a5['length']>0x0)allowedDirectories=[..._0x30e5a5],logMcpStderr(_0x1ef223(0xbc)+_0x30e5a5[_0x1ef223(0x18c)]+_0x1ef223(0xed));else{logMcpStderr('No\x20valid\x20root\x20directories\x20provided\x20by\x20client');if(ENABLE_WORKSPACE_MODE)try{const _0x48241d=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x48241d&&(allowedDirectories=[_0x48241d],logMcpStderr(_0x1ef223(0xef)+_0x48241d));}catch(_0x31b95b){logMcpStderr('Warning:\x20Workspace\x20fallback\x20failed:\x20'+_0x31b95b);}}}server[a0_0x2ac932(0xf0)](RootsListChangedNotificationSchema,async()=>{const _0x38620=a0_0x2ac932;try{const _0x1849af=await server[_0x38620(0xb5)]();_0x1849af&&_0x38620(0x174)in _0x1849af&&await updateAllowedDirectoriesFromRoots(_0x1849af['roots']);}catch(_0x5a8b58){logMcpStderr(_0x38620(0xb6),_0x5a8b58 instanceof Error?_0x5a8b58[_0x38620(0x10e)]:String(_0x5a8b58));}}),server['oninitialized']=async()=>{const _0x3dc6a1=a0_0x2ac932,_0xc6d802=server[_0x3dc6a1(0x105)]();if(_0xc6d802?.[_0x3dc6a1(0x174)])try{const _0x24ff20=await server[_0x3dc6a1(0xb5)]();_0x24ff20&&_0x3dc6a1(0x174)in _0x24ff20?await updateAllowedDirectoriesFromRoots(_0x24ff20['roots']):logMcpStderr(_0x3dc6a1(0x1a2));}catch(_0x37a9b0){logMcpStderr(_0x3dc6a1(0x129),_0x37a9b0 instanceof Error?_0x37a9b0[_0x3dc6a1(0x10e)]:String(_0x37a9b0));}else{if(allowedDirectories[_0x3dc6a1(0x18c)]>0x0)logMcpStderr(_0x3dc6a1(0x153),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)logMcpStderr('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode');else throw new Error('Server\x20cannot\x20operate:\x20No\x20allowed\x20directories\x20available.\x20Server\x20was\x20started\x20without\x20command-line\x20directories\x20and\x20client\x20either\x20does\x20not\x20support\x20MCP\x20roots\x20protocol\x20or\x20provided\x20empty\x20roots.\x20Please\x20either:\x201)\x20Start\x20server\x20with\x20directory\x20arguments,\x202)\x20Use\x20a\x20client\x20that\x20supports\x20MCP\x20roots\x20protocol\x20and\x20provides\x20valid\x20root\x20directories,\x20or\x203)\x20Enable\x20workspace\x20mode\x20with\x20ENABLE_WORKSPACE_MODE=true.');}}};async function runServer(){const _0x84796=a0_0x2ac932,_0x17cbba=new StdioServerTransport();await server[_0x84796(0xce)](_0x17cbba),logMcpStderr('Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio'),allowedDirectories['length']===0x0&&logMcpStderr('Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol');}runServer()['catch'](_0x163675=>{const _0x43292c=a0_0x2ac932;logMcpStderr(_0x43292c(0x1b6),_0x163675),process[_0x43292c(0x19e)](0x1);});
const a0_0x104249=a0_0x312c;(function(_0x1eceda,_0x5aac8f){const _0x5c2fae=a0_0x312c,_0x3e36b6=_0x1eceda();while(!![]){try{const _0x375da5=-parseInt(_0x5c2fae(0x106))/0x1+parseInt(_0x5c2fae(0x167))/0x2*(parseInt(_0x5c2fae(0xa8))/0x3)+-parseInt(_0x5c2fae(0xf3))/0x4*(-parseInt(_0x5c2fae(0xbc))/0x5)+parseInt(_0x5c2fae(0xec))/0x6+-parseInt(_0x5c2fae(0x18b))/0x7+-parseInt(_0x5c2fae(0x182))/0x8+parseInt(_0x5c2fae(0x19e))/0x9;if(_0x375da5===_0x5aac8f)break;else _0x3e36b6['push'](_0x3e36b6['shift']());}catch(_0x19d695){_0x3e36b6['push'](_0x3e36b6['shift']());}}}(a0_0x12a6,0x4777e));import{Server}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';function a0_0x312c(_0x3ac145,_0x2c3cb2){_0x3ac145=_0x3ac145-0x86;const _0x12a6b9=a0_0x12a6();let _0x312c24=_0x12a6b9[_0x3ac145];return _0x312c24;}import{CallToolRequestSchema,ListToolsRequestSchema,RootsListChangedNotificationSchema}from'@modelcontextprotocol/sdk/types.js';import a0_0x1abd9e from'fs/promises';import a0_0x2f511b from'path';import a0_0x3c7415 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{logger}from'./logger.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{compactFileContexts}from'@morphllm/morphsdk/tools/compact';import a0_0x41924f from'axios';import{KNOWN_TOOL_NAMES,TOOL_NAMES}from'./tool-definitions.js';function fixPathRepetition(_0x234501){const _0x1c2a5a=a0_0x312c,_0x1adb29=_0x234501['split'](a0_0x2f511b['sep'])[_0x1c2a5a(0x108)](Boolean);if(_0x1adb29[_0x1c2a5a(0x14d)]<0x2)return null;for(let _0x1a9aa3=Math[_0x1c2a5a(0x169)](_0x1adb29[_0x1c2a5a(0x14d)]/0x2);_0x1a9aa3>=0x1;_0x1a9aa3--){for(let _0x149d0a=0x0;_0x149d0a<=_0x1adb29[_0x1c2a5a(0x14d)]-0x2*_0x1a9aa3;_0x149d0a++){const _0x330b97=_0x1adb29['slice'](_0x149d0a,_0x149d0a+_0x1a9aa3),_0x3ebdc5=_0x1adb29[_0x1c2a5a(0x149)](_0x149d0a+_0x1a9aa3,_0x149d0a+0x2*_0x1a9aa3);if(_0x330b97[_0x1c2a5a(0xdc)]((_0x396202,_0x709ccb)=>_0x396202===_0x3ebdc5[_0x709ccb])){const _0x26ffee=[..._0x1adb29['slice'](0x0,_0x149d0a),..._0x1adb29[_0x1c2a5a(0x149)](_0x149d0a+_0x1a9aa3)];return a0_0x2f511b['sep']+_0x26ffee['join'](a0_0x2f511b[_0x1c2a5a(0x1a3)]);}}}return null;}const require=createRequire(import.meta.url);function getPackageVersion(){const _0x47ab60=a0_0x312c;try{const _0x52b525=require(_0x47ab60(0xba));return _0x52b525[_0x47ab60(0xf0)]??_0x47ab60(0x191);}catch(_0x18db0b){return logMcpStderr(_0x47ab60(0x174),_0x18db0b),_0x47ab60(0x191);}}function printHelp(){const _0x5a97b7=a0_0x312c;console[_0x5a97b7(0x197)](_0x5a97b7(0x1a1)+getPackageVersion()),console[_0x5a97b7(0x197)](_0x5a97b7(0x121)),console['log'](_0x5a97b7(0x10c)),console[_0x5a97b7(0x197)](_0x5a97b7(0xd0)),console['log'](_0x5a97b7(0x188)),console[_0x5a97b7(0x197)](_0x5a97b7(0xfe)),console[_0x5a97b7(0x197)]('\x0aExamples:'),console[_0x5a97b7(0x197)]('\x20\x20morph-mcp'),console[_0x5a97b7(0x197)](_0x5a97b7(0xb9));}const cliArgs=process[a0_0x104249(0xee)]['slice'](0x2),VERSION_FLAGS=new Set([a0_0x104249(0x11c),'-v','-V']),HELP_FLAGS=new Set([a0_0x104249(0x14c),'-h']);cliArgs['some'](_0x565ae2=>VERSION_FLAGS['has'](_0x565ae2))&&(console['log'](a0_0x104249(0x1a1)+getPackageVersion()),process[a0_0x104249(0x168)](0x0));cliArgs[a0_0x104249(0x102)](_0xe4394a=>HELP_FLAGS[a0_0x104249(0x99)](_0xe4394a))&&(printHelp(),process[a0_0x104249(0x168)](0x0));function a0_0x12a6(){const _0x85255b=['Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','tool_call_received','repo_path','map','arguments','added\x20','path_validation_failed','tsconfig.json','Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio','Failed\x20to\x20request\x20roots\x20from\x20client:','utf-8','Tool\x20','[could\x20not\x20read\x20file:\x20','number','parse','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','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES.**\x20Fast,\x20accurate,\x20and\x20prevents\x20context\x20pollution.\x20Especially\x20useful\x20when\x20making\x20multiple\x20edits\x20in\x20one\x20file:\x20describe\x20all\x20changes\x20in\x20a\x20single\x20call\x20and\x20the\x20semantic\x20edit\x20applies\x20them\x20all\x20at\x20once,\x20more\x20accurately\x20and\x20faster\x20than\x20sequential\x20edits.\x20Unlike\x20search-and-replace\x20or\x20patch\x20edits\x20which\x20do\x20narrow\x20edits\x20one\x20at\x20a\x20time,\x20with\x20this\x20tool\x20you\x20should\x20do\x20all\x20your\x20code\x20changes\x20in\x20one\x20go\x20separated\x20by\x20`//\x20...\x20existing\x20code\x20...`\x20markers.\x20This\x20saves\x20tokens\x20and\x20improves\x20performance\x20because\x20you\x20do\x20not\x20need\x20to\x20reread\x20files\x20before\x20edits.\x20All\x20three\x20parameters\x20are\x20required.\x0a\x0a','payload','Fatal\x20error\x20running\x20server:','<file\x20path=\x22','PWD','array','\x20error(s)','\x0a</file>','[github_codebase_search]\x20Done\x20in\x20','slice','connect','pyproject.toml','--help','length','path','terminated','dirname','mcp-filesystem','now','size','Error\x20running\x20fast\x20context\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.','roots','isDirectory','linesRemoved','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','changes','search_string','tool_call_complete','warp_grep_complete','Error\x20accessing\x20directory\x20','morph-v3-large','.vscode','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.','completionId','optional','target_filepath','tool_calls','min','62102CqEGKh','exit','floor','package.json','file_read_complete','errors','string','edit_file','metadata','path_validation_start','Repository\x20identifier','SubToolError','\x0a...\x20(truncated,\x20total:\x20','Warning:\x20Unable\x20to\x20determine\x20package\x20version:','listRoots','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','WarpGrepError','catch','messages','ENOENT','glob','code_edit','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','Rules:\x0a','Fallback:\x20Using\x20workspace\x20root\x20','target_file','UnknownError','3609016QzkOeJ','MORPH_LARGE_APPLY','unknown\x20error','.\x20Path:\x20','timings','terminationReason','\x20\x20-h,\x20--help\x20\x20\x20\x20\x20\x20\x20Show\x20this\x20help\x20message\x20and\x20exit','TimeoutError','realpath','3826606cyxmFc','instruction','error','-\x20Listed\x20directory\x20`','\x22>\x0aError\x20reading\x20file:\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','unknown','join','-\x20Grepped\x20\x27','substring','Use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code\x20blocks.\x20Include\x20just\x20enough\x20surrounding\x20context\x20to\x20locate\x20each\x20edit\x20precisely.\x0a\x0a','function','log','code','owner_repo','Bearer\x20','\x20-\x20','enum','startsWith','13407948RYiHse','includes','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','@morphllm/morphmcp\x20','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','sep','pattern','-\x20ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20for\x20unchanged\x20sections\x20(omitting\x20this\x20marker\x20will\x20cause\x20deletions)\x0a','github_codebase_search','Authentication\x20failed:\x20Your\x20Morph\x20API\x20key\x20is\x20invalid\x20or\x20has\x20been\x20revoked.\x20Please\x20visit\x20https://morphllm.com\x20to\x20get\x20a\x20valid\x20API\x20key,\x20then\x20update\x20your\x20MCP\x20configuration.','.\x20Changes:\x20','SymlinkError','context','EDIT_FILE','`\x20in\x20`','oninitialized','WarpGrep\x20sub-tool\x20errors:\x20','boolean','normalize','FileNotFound','toLowerCase','linesModified','grep','push','-\x20code_edit:\x20Only\x20the\x20changed\x20lines\x20with\x20//\x20...\x20existing\x20code\x20...\x20markers\x0a\x0a','Please\x20provide\x20github\x20search\x20url\x20or\x20owner/repo\x20id','\x22.\x20Known\x20tools:\x20','object','default','files','grep_search','ReadError','Failed\x20to\x20read\x20file:\x20','has','BinaryFile','grep\x20\x27','all','Cargo.toml','env','Error:\x20','Applied','instructions','toISOString','finish','warn','tool_call_error','response','morph-warp-grep-v2.1','3peBoKE','requiresApiKey','Morph\x20FastApply\x20failed\x20without\x20error\x20message','DISABLED_TOOLS','morph-mcp','\x20chars)','WHEN\x20TO\x20USE\x20vs\x20native\x20edit/patch\x20tools:\x20prefer\x20this\x20tool\x20for\x20large\x20files,\x20multiple\x20or\x20scattered\x20edits,\x20refactors,\x20and\x20whitespace-sensitive\x20changes.\x20A\x20single\x20tiny\x20exact-string\x20replacement\x20can\x20use\x20the\x20native\x20edit/patch\x20tool.\x20If\x20this\x20tool\x20errors\x20or\x20times\x20out,\x20fall\x20back\x20to\x20native\x20edit\x20with\x20exact\x20string\x20matching.\x0a\x0a','Invalid\x20arguments:\x20','description','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','Branch\x20to\x20search\x20(defaults\x20to\x20repo\x27s\x20default\x20branch)','text','content','source','cwd','runWarpGrep_call','Example\x20format:\x0a','\x20\x20morph-mcp\x20--api-key\x20sk-xxx\x20~/repo','../package.json','node_modules','8830IjSBwq','RipgrepNotAvailable','dryRun','Morph\x20Edit\x20Preview','compaction_failed','searchGitHub','0.2.0','command','-\x20For\x20deletions:\x20show\x20context\x20before\x20and\x20after,\x20omit\x20the\x20deleted\x20lines\x0a','isArray','-\x20path:\x20Absolute\x20file\x20path\x20to\x20edit\x0a','Specific\x20commit\x20hash\x20to\x20search','\x20valid\x20directories','turns','match','etimedout','warp_grep_start','homedir','MORPH_WARP_GREP_TIMEOUT','data','\x20\x20--api-key\x20<key>\x20\x20Morph\x20API\x20key\x20(takes\x20priority\x20over\x20MORPH_API_KEY\x20env\x20var)','Invalid\x20arguments\x20for\x20morph_edit_file:\x20','resolve','\x27\x20in\x20`','sk-','basename','stack','success','safeParse','split','\x22>\x0a','Warning:\x20DISABLED_TOOLS\x20contains\x20unknown\x20tool\x20\x22','every','constructor','https://morphllm.com/api/error-report','Repository\x20owner/repo\x20shorthand\x20(e.g.\x20\x27vercel/next.js\x27).\x20You\x20must\x20provide\x20either\x20github_url\x20or\x20owner_repo.','inputSchema','github_search_start','ToolException','list_directory','codebase_search','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','Warning:\x20Workspace\x20fallback\x20failed:\x20','Disabled\x20tools:\x20','path_validation_resolved','Rate\x20limited:\x20You\x27ve\x20exceeded\x20your\x20Morph\x20API\x20usage\x20limits.\x20Please\x20visit\x20https://morphllm.com\x20to\x20check\x20your\x20plan\x20and\x20purchase\x20additional\x20credits.','setRequestHandler','PathError','328998Xnfmgl','//\x20...\x20existing\x20code\x20...\x0aFIRST_EDIT\x0a//\x20...\x20existing\x20code\x20...\x0aSECOND_EDIT\x0a//\x20...\x20existing\x20code\x20...\x0a\x0a','argv','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','version','list_directory\x20','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','392ldZGby','Here\x20is\x20the\x20content\x20of\x20files:\x0a','timeout','getClientCapabilities','stat','filePath','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','describe','readFile','MCP','morph-','\x20\x20-v,\x20--version\x20\x20\x20\x20Print\x20version\x20and\x20exit','API\x20error\x20(auth/rate-limit)','Max\x20results\x20to\x20return','Workspace\x20mode\x20enabled:\x20Using\x20','some','debug','Created\x20File','-\x20instruction:\x20Brief\x20first-person\x20description\x20of\x20what\x20you\x27re\x20changing\x0a','458205qzvSRD','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','filter','read','assistant','status','\x0aOptions:','branch','setNotificationHandler','LocalRipgrepProvider','Relevant\x20context\x20found:','name','Parent\x20directory\x20does\x20not\x20exist:\x20','MORPH_API_URL','GitHub\x20search\x20failed:\x20','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.\x20','trim','[github_codebase_search]\x20Failed\x20in\x20','tool_call_id','-\x20Glob\x20search\x20`','No\x20Morph\x20API\x20key\x20configured.\x20Please\x20visit\x20https://morphllm.com\x20to\x20get\x20an\x20API\x20key,\x20then\x20set\x20MORPH_API_KEY\x20in\x20your\x20MCP\x20configuration.','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','--version','\x20disabled\x20via\x20DISABLED_TOOLS','CODEBASE_SEARCH','user','File\x20read\x20error:','\x0aUsage:\x20morph-mcp\x20[options]\x20[allowed-directory\x20...]','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','ENABLE_WORKSPACE_MODE','\x20is\x20not\x20a\x20directory','--api-key','-\x20Batch\x20multiple\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','message','go.mod','Unknown\x20tool:\x20','role','-\x20Preserve\x20exact\x20indentation\x0a','RipgrepError','MORPH_API_KEY','lines'];a0_0x12a6=function(){return _0x85255b;};return a0_0x12a6();}function getCliArg(_0x3fafd3){const _0x4862f1=a0_0x104249;for(let _0x4b9021=0x0;_0x4b9021<cliArgs['length'];_0x4b9021++){const _0x4ae5f6=cliArgs[_0x4b9021];if(_0x4ae5f6[_0x4862f1(0x19d)]('--'+_0x3fafd3+'='))return _0x4ae5f6['slice'](('--'+_0x3fafd3+'=')[_0x4862f1(0x14d)]);if(_0x4ae5f6==='--'+_0x3fafd3&&_0x4b9021+0x1<cliArgs[_0x4862f1(0x14d)])return cliArgs[_0x4b9021+0x1];}return undefined;}const args=[];for(let i=0x0;i<cliArgs['length'];i++){const arg=cliArgs[i];if(VERSION_FLAGS[a0_0x104249(0x99)](arg)||HELP_FLAGS['has'](arg))continue;if(arg['startsWith']('--api-key='))continue;if(arg===a0_0x104249(0x126)){i++;continue;}args[a0_0x104249(0x8f)](arg);}const WORKSPACE_ROOT=process[a0_0x104249(0x9e)]['WORKSPACE_ROOT']||process[a0_0x104249(0x9e)][a0_0x104249(0x144)]||process[a0_0x104249(0xb6)](),ENABLE_WORKSPACE_MODE=process['env'][a0_0x104249(0x124)]!=='false',MORPH_API_KEY=getCliArg('api-key')??process[a0_0x104249(0x9e)][a0_0x104249(0x12e)],MORPH_API_URL=process[a0_0x104249(0x9e)][a0_0x104249(0x113)],MORPH_LARGE_APPLY=process[a0_0x104249(0x9e)][a0_0x104249(0x183)]!=='false',MORPH_WARP_GREP_TIMEOUT=process[a0_0x104249(0x9e)]['MORPH_WARP_GREP_TIMEOUT']?parseInt(process[a0_0x104249(0x9e)][a0_0x104249(0xce)],0xa):undefined,OPERATING_SYSTEM_TYPE=getOperatingSystemType(),DEFAULT_DISABLED_TOOLS=new Set(),DISABLED_TOOLS=process['env'][a0_0x104249(0xab)]?new Set(process[a0_0x104249(0x9e)][a0_0x104249(0xab)][a0_0x104249(0xd9)](',')[a0_0x104249(0x133)](_0x28de8f=>_0x28de8f[a0_0x104249(0x116)]())[a0_0x104249(0x108)](_0x2350be=>_0x2350be[a0_0x104249(0x14d)]>0x0)):DEFAULT_DISABLED_TOOLS;if(DISABLED_TOOLS[a0_0x104249(0x153)]>0x0){for(const tool of DISABLED_TOOLS){!KNOWN_TOOL_NAMES[a0_0x104249(0x99)](tool)&&console[a0_0x104249(0x18d)](a0_0x104249(0xdb)+tool+a0_0x104249(0x92)+[...KNOWN_TOOL_NAMES][a0_0x104249(0x192)](',\x20'));}console[a0_0x104249(0x18d)](a0_0x104249(0xe7)+[...DISABLED_TOOLS]['join'](',\x20'));}MORPH_API_KEY&&!MORPH_API_KEY[a0_0x104249(0x19d)](a0_0x104249(0xd4))&&!MORPH_API_KEY[a0_0x104249(0x19d)](a0_0x104249(0xfd))&&logMcpStderr('Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27');async function reportMorphError(_0x558865){const _0x350f1f=a0_0x104249;try{await a0_0x41924f['post'](_0x350f1f(0xde),{..._0x558865,'timestamp':new Date()[_0x350f1f(0xa2)](),'source':_0x558865[_0x350f1f(0xb5)]||_0x350f1f(0x151),'os_type':OPERATING_SYSTEM_TYPE,'context':{'os_type':OPERATING_SYSTEM_TYPE,..._0x558865[_0x350f1f(0x1aa)]}},{'timeout':0x1388,'headers':{'Content-Type':'application/json','Authorization':_0x350f1f(0x19a)+MORPH_API_KEY}});}catch{}}function extractStatusCode(_0x1f9ea5,_0x316269){const _0x49c92d=a0_0x104249;if(_0x1f9ea5&&typeof _0x1f9ea5===_0x49c92d(0x93)&&_0x49c92d(0x10b)in _0x1f9ea5)return _0x1f9ea5['status'];if(_0x1f9ea5&&typeof _0x1f9ea5===_0x49c92d(0x93)&&_0x49c92d(0xa6)in _0x1f9ea5)return _0x1f9ea5[_0x49c92d(0xa6)]?.[_0x49c92d(0x10b)];const _0x40c65d=_0x316269[_0x49c92d(0xca)](/\b(401|429)\b/);return _0x40c65d?parseInt(_0x40c65d[0x1],0xa):null;}function handleMorphAPIError(_0x42cf88){const _0x11cf49=a0_0x104249,_0x25557a=_0x42cf88 instanceof Error?_0x42cf88['message']:String(_0x42cf88),_0x13743b=extractStatusCode(_0x42cf88,_0x25557a);switch(_0x13743b){case 0x191:return{'content':[{'type':_0x11cf49(0xb3),'text':_0x11cf49(0x1a7)}],'isError':!![]};case 0x1ad:return{'content':[{'type':'text','text':_0x11cf49(0xe9)}],'isError':!![]};default:return null;}}args['length']===0x0&&!ENABLE_WORKSPACE_MODE&&(logMcpStderr('Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]'),logMcpStderr('Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:'),logMcpStderr(a0_0x104249(0xf9)),logMcpStderr('\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)'),logMcpStderr(a0_0x104249(0x107)),logMcpStderr('At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.'));function normalizePath(_0x1f3333){const _0x386186=a0_0x104249;return a0_0x2f511b[_0x386186(0x8a)](_0x1f3333);}function expandHome(_0x3d58fb){const _0x485624=a0_0x104249;if(_0x3d58fb[_0x485624(0x19d)]('~/')||_0x3d58fb==='~')return a0_0x2f511b[_0x485624(0x192)](a0_0x3c7415[_0x485624(0xcd)](),_0x3d58fb[_0x485624(0x149)](0x1));return _0x3d58fb;}let allowedDirectories=await Promise[a0_0x104249(0x9c)](args[a0_0x104249(0x133)](async _0x2e1364=>{const _0x4e895a=a0_0x104249,_0x55be25=expandHome(_0x2e1364),_0x3d7ecf=a0_0x2f511b[_0x4e895a(0xd2)](_0x55be25);try{const _0x504010=await a0_0x1abd9e['realpath'](_0x3d7ecf);return normalizePath(_0x504010);}catch(_0x184ef9){return normalizePath(_0x3d7ecf);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x104249(0x14d)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories['push'](workspaceDir),logMcpStderr(a0_0x104249(0x101)+workspaceDir+'\x20as\x20allowed\x20directory'));}catch(a0_0x29a207){logMcpStderr(a0_0x104249(0x176)+a0_0x29a207);}async function detectWorkspaceRoot(_0x5a78b7){const _0x173952=a0_0x104249;let _0x161089=a0_0x2f511b[_0x173952(0xd2)](_0x5a78b7);const _0x52a083=['.git',_0x173952(0x160),_0x173952(0x16a),_0x173952(0x9d),_0x173952(0x14b),_0x173952(0x129),'.cursor',_0x173952(0x137),'composer.json'];while(_0x161089!==a0_0x2f511b[_0x173952(0x150)](_0x161089)){for(const _0x471170 of _0x52a083){const _0x3f72bb=a0_0x2f511b[_0x173952(0x192)](_0x161089,_0x471170);try{return await a0_0x1abd9e['access'](_0x3f72bb),normalizePath(_0x161089);}catch{}}_0x161089=a0_0x2f511b[_0x173952(0x150)](_0x161089);}return normalizePath(_0x5a78b7);}await Promise[a0_0x104249(0x9c)](args[a0_0x104249(0x133)](async _0x5a8802=>{const _0x5077a5=a0_0x104249;try{const _0x37185b=await a0_0x1abd9e[_0x5077a5(0xf7)](expandHome(_0x5a8802));!_0x37185b[_0x5077a5(0x157)]()&&(logMcpStderr(_0x5077a5(0x9f)+_0x5a8802+_0x5077a5(0x125)),process['exit'](0x1));}catch(_0x43ec71){logMcpStderr(_0x5077a5(0x15e)+_0x5a8802+':',_0x43ec71),process[_0x5077a5(0x168)](0x1);}}));async function validatePath(_0x3d73a6){const _0x396587=a0_0x104249,_0x263077=expandHome(_0x3d73a6),_0x2fc694=a0_0x2f511b[_0x396587(0xd2)](_0x263077);logger['debug'](_0x396587(0xfc),_0x396587(0x170),{'raw_path':_0x3d73a6,'absolute':_0x2fc694});try{const _0x38a541=await a0_0x1abd9e[_0x396587(0x18a)](_0x2fc694);return logger['debug']('MCP','path_validation_resolved',{'resolved':_0x38a541,'symlink':_0x38a541!==_0x2fc694}),_0x38a541;}catch(_0x2776cd){if(_0x2776cd[_0x396587(0x198)]===_0x396587(0x17a)){const _0x4522da=a0_0x2f511b[_0x396587(0x150)](_0x2fc694);try{const _0x142aad=await a0_0x1abd9e[_0x396587(0x18a)](_0x4522da),_0x32e4ed=a0_0x2f511b['join'](_0x142aad,a0_0x2f511b['basename'](_0x2fc694));return logger[_0x396587(0x103)]('MCP',_0x396587(0xe8),{'resolved':_0x32e4ed,'new_file':!![]}),_0x32e4ed;}catch{logger[_0x396587(0x18d)](_0x396587(0xfc),_0x396587(0x136),{'raw_path':_0x3d73a6,'error':_0x396587(0x112)+_0x4522da});throw new Error(_0x396587(0x112)+_0x4522da);}}logger[_0x396587(0x18d)](_0x396587(0xfc),'path_validation_failed',{'raw_path':_0x3d73a6,'error':_0x2776cd[_0x396587(0x128)]});throw _0x2776cd;}}const MorphEditFileArgsSchema=z['object']({'path':z[a0_0x104249(0x16d)](),'code_edit':z[a0_0x104249(0x16d)]()[a0_0x104249(0xfa)](a0_0x104249(0x1a2)),'instruction':z[a0_0x104249(0x16d)]()[a0_0x104249(0xfa)](a0_0x104249(0x11b)),'dryRun':z[a0_0x104249(0x89)]()[a0_0x104249(0x94)](![])['describe']('Preview\x20changes\x20without\x20applying\x20them.')}),CODEBASE_SEARCH_QUERY_DESCRIPTION='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.',WarpGrepArgsSchema=z[a0_0x104249(0x93)]({'search_string':z['string']()[a0_0x104249(0xfa)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repo_path':z[a0_0x104249(0x16d)]()[a0_0x104249(0xfa)](a0_0x104249(0x13f)),'search_type':z[a0_0x104249(0x19c)]([a0_0x104249(0x94),'node_modules'])['optional']()[a0_0x104249(0xfa)]('Search\x20type\x20hint.\x20Use\x20\x27node_modules\x27\x20when\x20searching\x20inside\x20node_modules\x20or\x20other\x20dependency\x20directories\x20that\x20are\x20normally\x20excluded.')}),WarpGrepGitHubArgsSchema=z[a0_0x104249(0x93)]({'search_string':z[a0_0x104249(0x16d)]()[a0_0x104249(0xfa)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'github_url':z[a0_0x104249(0x16d)]()[a0_0x104249(0x163)]()[a0_0x104249(0xfa)](a0_0x104249(0x161)),'owner_repo':z[a0_0x104249(0x16d)]()[a0_0x104249(0x163)]()['describe'](a0_0x104249(0xdf)),'branch':z[a0_0x104249(0x16d)]()['optional']()[a0_0x104249(0xfa)](a0_0x104249(0xb2))}),CodebaseSearchArgsSchema=z[a0_0x104249(0x93)]({'query':z[a0_0x104249(0x16d)]()[a0_0x104249(0xfa)](CODEBASE_SEARCH_QUERY_DESCRIPTION),'repoId':z[a0_0x104249(0x16d)]()[a0_0x104249(0xfa)](a0_0x104249(0x171)),'branch':z[a0_0x104249(0x16d)]()[a0_0x104249(0x163)]()[a0_0x104249(0xfa)](a0_0x104249(0x17d)),'commitHash':z['string']()['optional']()['describe'](a0_0x104249(0xc7)),'targetDirectories':z[a0_0x104249(0x145)](z[a0_0x104249(0x16d)]())['default']([])[a0_0x104249(0xfa)](a0_0x104249(0x1a0)),'limit':z[a0_0x104249(0x13d)]()[a0_0x104249(0x163)]()[a0_0x104249(0x94)](0xa)[a0_0x104249(0xfa)](a0_0x104249(0x100))}),server=new Server({'name':a0_0x104249(0xac),'version':a0_0x104249(0xc2)},{'capabilities':{'tools':{}}});server['setRequestHandler'](ListToolsRequestSchema,async()=>{const _0x376169=a0_0x104249,_0x8ee404=[{'name':TOOL_NAMES[_0x376169(0x1ab)],'description':_0x376169(0x140)+_0x376169(0xae)+'Parameters:\x0a'+_0x376169(0xc6)+_0x376169(0x105)+_0x376169(0x90)+_0x376169(0x195)+_0x376169(0xb8)+_0x376169(0xed)+_0x376169(0x17e)+_0x376169(0x1a5)+_0x376169(0x12c)+_0x376169(0xc4)+_0x376169(0x127),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':TOOL_NAMES[_0x376169(0x11e)],'description':_0x376169(0x190)+CODEBASE_SEARCH_QUERY_DESCRIPTION+'\x20'+'Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20toolin\x20its\x20search.\x20'+_0x376169(0x115)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':GITHUB_SEARCH_TOOL_NAME,'description':GITHUB_SEARCH_DESCRIPTION,'inputSchema':zodToJsonSchema(WarpGrepGitHubArgsSchema),'requiresApiKey':!![]}],_0x5dde74=_0x8ee404[_0x376169(0x108)](_0x46d642=>{const _0x4f2b65=_0x376169;if(DISABLED_TOOLS[_0x4f2b65(0x99)](_0x46d642[_0x4f2b65(0x111)]))return console[_0x4f2b65(0x18d)](_0x4f2b65(0x13b)+_0x46d642[_0x4f2b65(0x111)]+_0x4f2b65(0x11d)),![];if(_0x4f2b65(0xa9)in _0x46d642&&_0x46d642['requiresApiKey']&&!MORPH_API_KEY)return logMcpStderr('Warning:\x20'+_0x46d642[_0x4f2b65(0x111)]+_0x4f2b65(0xb1)),![];return!![];});return{'tools':_0x5dde74[_0x376169(0x133)](_0x12e647=>({'name':_0x12e647[_0x376169(0x111)],'description':_0x12e647[_0x376169(0xb0)],'inputSchema':_0x12e647[_0x376169(0xe0)]}))};}),server[a0_0x104249(0xea)](CallToolRequestSchema,async _0xf33704=>{const _0xa94536=a0_0x104249,{name:_0x43da34,arguments:_0x3d9cdd}=_0xf33704['params'],_0x307c28=Date[_0xa94536(0x152)]();logger['debug'](_0xa94536(0xfc),_0xa94536(0x131),{'tool':_0x43da34,'args':_0x43da34==='edit_file'?{'path':_0x3d9cdd?.[_0xa94536(0x14e)],'instruction':_0x3d9cdd?.[_0xa94536(0x18c)]||_0x3d9cdd?.[_0xa94536(0xa1)],'dryRun':_0x3d9cdd?.[_0xa94536(0xbe)]}:_0x3d9cdd});try{if(!MORPH_API_KEY)return{'content':[{'type':_0xa94536(0xb3),'text':_0xa94536(0x11a)}],'isError':!![]};if(!MORPH_API_KEY[_0xa94536(0x19d)](_0xa94536(0xd4))&&!MORPH_API_KEY[_0xa94536(0x19d)]('morph-'))return{'content':[{'type':_0xa94536(0xb3),'text':'Invalid\x20Morph\x20API\x20key\x20format.\x20API\x20keys\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27.\x20Please\x20visit\x20https://morphllm.com\x20to\x20get\x20a\x20valid\x20API\x20key.'}],'isError':!![]};if(DISABLED_TOOLS[_0xa94536(0x99)](_0x43da34))return{'content':[{'type':'text','text':'Tool\x20\x22'+_0x43da34+'\x22\x20is\x20disabled\x20via\x20the\x20DISABLED_TOOLS\x20environment\x20variable\x20in\x20your\x20MCP\x20configuration.\x20Please\x20use\x20an\x20alternative\x20approach.'}],'isError':![]};switch(_0x43da34){case TOOL_NAMES['EDIT_FILE']:{let _0x3a1a7b=_0x3d9cdd;if(_0x3a1a7b&&typeof _0x3a1a7b==='object'){if(!(_0xa94536(0x14e)in _0x3a1a7b)){const _0xf7f7bd=_0x3a1a7b[_0xa94536(0x180)]??_0x3a1a7b[_0xa94536(0xf8)]??_0x3a1a7b[_0xa94536(0x164)]??_0x3a1a7b['file_path']??_0x3a1a7b['file'];if(_0xf7f7bd)_0x3a1a7b={..._0x3a1a7b,'path':_0xf7f7bd};}_0xa94536(0xa1)in _0x3a1a7b&&!('instruction'in _0x3a1a7b)&&(_0x3a1a7b={..._0x3a1a7b,'instruction':_0x3a1a7b['instructions']});if(!(_0xa94536(0x17c)in _0x3a1a7b)){const _0x4a56a=_0x3a1a7b[_0xa94536(0x198)]??_0x3a1a7b['new_string']??_0x3a1a7b[_0xa94536(0xb4)]??_0x3a1a7b['edit'];if(_0x4a56a)_0x3a1a7b={..._0x3a1a7b,'code_edit':_0x4a56a};}}const _0x2cbebd=MorphEditFileArgsSchema[_0xa94536(0xd8)](_0x3a1a7b);if(!_0x2cbebd[_0xa94536(0xd7)])throw new Error(_0xa94536(0xd1)+_0x2cbebd['error']);const _0x30b8f1=await validatePath(_0x2cbebd[_0xa94536(0xcf)]['path']);let _0x56a6b7=null,_0x325eab=!![],_0x4b0f6=null;try{_0x56a6b7=await a0_0x1abd9e[_0xa94536(0xfb)](_0x30b8f1,_0xa94536(0x13a)),logger['debug'](_0xa94536(0xfc),'file_read_complete',{'path':_0x30b8f1,'size_bytes':_0x56a6b7[_0xa94536(0x14d)]});}catch(_0xc27ea0){const _0x577776=_0xc27ea0['code'];_0x577776===_0xa94536(0x17a)?(_0x325eab=![],_0x56a6b7='',logger[_0xa94536(0x103)]('MCP',_0xa94536(0x16b),{'path':_0x30b8f1,'exists':![]})):(_0x4b0f6=_0xa94536(0x98)+(_0x577776||_0xa94536(0x191))+_0xa94536(0x19b)+(_0xc27ea0 instanceof Error?_0xc27ea0[_0xa94536(0x128)]:String(_0xc27ea0)),logger[_0xa94536(0x18d)](_0xa94536(0xfc),'file_read_failed',{'path':_0x30b8f1,'error':_0x4b0f6}),logMcpStderr('Warning:\x20'+_0x4b0f6));}let _0x7c0788;try{const _0x1b86e7=MORPH_API_KEY;if(!_0x1b86e7)throw new Error(_0xa94536(0x123));const _0x4eea07=a0_0x2f511b[_0xa94536(0x150)](_0x30b8f1),_0x4f9aca=a0_0x2f511b[_0xa94536(0xd5)](_0x30b8f1);logger[_0xa94536(0x103)]('MCP','api_request_start',{'model':'morph-v3-fast','path':_0x2cbebd['data'][_0xa94536(0x14e)],'instruction_len':_0x2cbebd[_0xa94536(0xcf)]['instruction'][_0xa94536(0x14d)],'code_edit_len':_0x2cbebd['data'][_0xa94536(0x17c)][_0xa94536(0x14d)],'original_code_len':_0x56a6b7?.[_0xa94536(0x14d)]??0x0,'dry_run':_0x2cbebd[_0xa94536(0xcf)][_0xa94536(0xbe)]});const _0x57d63e=Date[_0xa94536(0x152)](),_0x5d60ee=await executeEditFile({'target_filepath':_0x4f9aca,'code_edit':_0x2cbebd[_0xa94536(0xcf)][_0xa94536(0x17c)],'instruction':_0x2cbebd[_0xa94536(0xcf)][_0xa94536(0x18c)]},{'morphApiKey':_0x1b86e7,'morphApiUrl':MORPH_API_URL,'large':MORPH_LARGE_APPLY,'baseDir':_0x4eea07,'autoWrite':!_0x2cbebd['data']['dryRun'],'generateUdiff':![],'debug':![]}),_0x2c3bf1=Date[_0xa94536(0x152)]()-_0x57d63e;_0x7c0788=_0x5d60ee[_0xa94536(0x162)];if(!_0x5d60ee[_0xa94536(0xd7)])throw new Error(_0x5d60ee[_0xa94536(0x18d)]||_0xa94536(0xaa));const _0x2e8f96=_0x5d60ee[_0xa94536(0x15a)],_0x51d82b=_0xa94536(0x135)+_0x2e8f96['linesAdded']+',\x20removed\x20'+_0x2e8f96[_0xa94536(0x158)]+',\x20modified\x20'+_0x2e8f96[_0xa94536(0x8d)];logger['debug'](_0xa94536(0xfc),_0xa94536(0x15c),{'tool':_0xa94536(0x16e),'success':!![],'latency_ms':Date[_0xa94536(0x152)]()-_0x307c28,'edit_latency_ms':_0x2c3bf1,'changes':{'added':_0x2e8f96['linesAdded'],'removed':_0x2e8f96[_0xa94536(0x158)],'modified':_0x2e8f96[_0xa94536(0x8d)]},'completion_id':_0x7c0788});if(_0x2cbebd['data']['dryRun'])return{'content':[{'type':'text','text':_0xa94536(0xbf)+(_0x325eab?'':'\x20(new\x20file)')+':\x20'+_0x2cbebd[_0xa94536(0xcf)][_0xa94536(0x18c)]+_0xa94536(0x1a8)+_0x51d82b+'.\x20Path:\x20'+_0x2cbebd['data'][_0xa94536(0x14e)]+'.'}]};return{'content':[{'type':'text','text':'Morph\x20Edit\x20'+(_0x325eab?_0xa94536(0xa0):_0xa94536(0x104))+':\x20'+_0x2cbebd[_0xa94536(0xcf)][_0xa94536(0x18c)]+'.\x20Changes:\x20'+_0x51d82b+_0xa94536(0x185)+_0x2cbebd['data'][_0xa94536(0x14e)]+'.'}]};}catch(_0x51b2dc){const _0x44c2ea=handleMorphAPIError(_0x51b2dc);if(_0x44c2ea)return logger[_0xa94536(0x18d)](_0xa94536(0xfc),_0xa94536(0xa5),{'tool':_0xa94536(0x16e),'error':'API\x20error\x20(auth/rate-limit)','latency_ms':Date[_0xa94536(0x152)]()-_0x307c28}),_0x44c2ea;const _0x28f106=_0x51b2dc instanceof Error?_0x51b2dc[_0xa94536(0x128)]:String(_0x51b2dc);return logger[_0xa94536(0x18d)](_0xa94536(0xfc),'tool_call_error',{'tool':'edit_file','error':_0x28f106,'path':_0x2cbebd[_0xa94536(0xcf)][_0xa94536(0x14e)],'validated_path':_0x30b8f1,'latency_ms':Date['now']()-_0x307c28,'stack':_0x51b2dc instanceof Error?_0x51b2dc[_0xa94536(0xd6)]:undefined}),reportMorphError({'error_message':_0x28f106,'error_type':_0x51b2dc instanceof Error?_0x51b2dc[_0xa94536(0xdd)][_0xa94536(0x111)]:'UnknownError','context':{'tool':_0xa94536(0x16e),'completion_id':_0x7c0788,'file_path':_0x2cbebd[_0xa94536(0xcf)]['path'],'validated_path':_0x30b8f1,'instruction':_0x2cbebd[_0xa94536(0xcf)]['instruction'],'model':MORPH_LARGE_APPLY?'morph-v3-large':'morph-v3-fast','dry_run':_0x2cbebd[_0xa94536(0xcf)][_0xa94536(0xbe)],'file_exists':_0x325eab,'file_read_error':_0x4b0f6,'file_readable':_0x56a6b7!==null,'request_content':{'path':_0x2cbebd[_0xa94536(0xcf)][_0xa94536(0x14e)],'code_edit':_0x2cbebd[_0xa94536(0xcf)][_0xa94536(0x17c)],'instruction':_0x2cbebd[_0xa94536(0xcf)][_0xa94536(0x18c)],'original_code':_0x56a6b7!==null?_0x56a6b7[_0xa94536(0x14d)]>0xc350?_0x56a6b7[_0xa94536(0x194)](0x0,0xc350)+_0xa94536(0x173)+_0x56a6b7[_0xa94536(0x14d)]+_0xa94536(0xad):_0x56a6b7:_0xa94536(0x13c)+(_0x4b0f6||_0xa94536(0x184))+']','original_code_length':_0x56a6b7?.[_0xa94536(0x14d)]??0x0,'model':MORPH_LARGE_APPLY?_0xa94536(0x15f):'morph-v3-fast','dry_run':_0x2cbebd[_0xa94536(0xcf)][_0xa94536(0xbe)]}},'stack_trace':_0x51b2dc instanceof Error?_0x51b2dc[_0xa94536(0xd6)]:undefined,'source':'mcp-filesystem'})[_0xa94536(0x178)](()=>{}),{'content':[{'type':_0xa94536(0xb3),'text':'❌\x20Morph\x20Edit\x20Failed:\x20'+_0x28f106}],'isError':!![]};}}case TOOL_NAMES[_0xa94536(0x11e)]:{const _0x31fb29=WarpGrepArgsSchema[_0xa94536(0xd8)](_0x3d9cdd);if(!_0x31fb29[_0xa94536(0xd7)])return{'content':[{'type':_0xa94536(0xb3),'text':_0xa94536(0xaf)+_0x31fb29[_0xa94536(0x18d)]}],'isError':!![]};const _0x4c8f01=_0x4d9d3f=>{const _0x1197a4=_0xa94536,_0x93fe58=[];for(const _0x1b7f1f of _0x4d9d3f||[]){if(_0x1b7f1f[_0x1197a4(0x12b)]===_0x1197a4(0x10a)&&Array[_0x1197a4(0xc5)](_0x1b7f1f[_0x1197a4(0x165)]))for(const _0x583fed of _0x1b7f1f[_0x1197a4(0x165)]){try{const _0x292830=_0x583fed[_0x1197a4(0x196)]?.[_0x1197a4(0x111)],_0x478073=JSON[_0x1197a4(0x13e)](_0x583fed[_0x1197a4(0x196)]?.[_0x1197a4(0x134)]||'{}');if(_0x292830===_0x1197a4(0x96))_0x93fe58[_0x1197a4(0x8f)](_0x1197a4(0x9b)+_0x478073[_0x1197a4(0x1a4)]+'\x27\x20'+(_0x478073[_0x1197a4(0x14e)]||'.'));else{if(_0x292830===_0x1197a4(0x109))_0x93fe58['push']('read\x20'+_0x478073['path']);else{if(_0x292830===_0x1197a4(0xe3))_0x93fe58[_0x1197a4(0x8f)](_0x1197a4(0xf1)+(_0x478073[_0x1197a4(0xc3)]||'.'));else{if(_0x292830===_0x1197a4(0x17b))_0x93fe58[_0x1197a4(0x8f)]('glob\x20\x27'+_0x478073[_0x1197a4(0x1a4)]+'\x27\x20'+(_0x478073['path']||'.'));else _0x292830===_0x1197a4(0xa3)&&_0x93fe58[_0x1197a4(0x8f)]('finish');}}}}catch{}}}return _0x93fe58;},_0x1b08f2=_0x27e4c4=>{const _0x2351a0=_0xa94536,_0xa27665=[];if(!_0x27e4c4||!Array['isArray'](_0x27e4c4))return _0xa27665;const _0x490a05=[{'pattern':/\[FILE NOT FOUND\]/,'error_type':_0x2351a0(0x8b),'tool':_0x2351a0(0x109)},{'pattern':/\[PATH ERROR\]/,'error_type':_0x2351a0(0xeb),'tool':'read'},{'pattern':/\[READ ERROR\]/,'error_type':'ReadError','tool':'read'},{'pattern':/\[UNREADABLE FILE\]/,'error_type':_0x2351a0(0x9a),'tool':_0x2351a0(0x109)},{'pattern':/\[RIPGREP ERROR\]/,'error_type':_0x2351a0(0x12d),'tool':_0x2351a0(0x8e)},{'pattern':/\[RIPGREP NOT AVAILABLE\]/,'error_type':_0x2351a0(0xbd),'tool':_0x2351a0(0x8e)},{'pattern':/\[BINARY FILE\]/,'error_type':_0x2351a0(0x9a),'tool':_0x2351a0(0x109)},{'pattern':/\[SYMLINK\]/,'error_type':_0x2351a0(0x1a9),'tool':_0x2351a0(0x109)},{'pattern':/not a text file/,'error_type':_0x2351a0(0x9a),'tool':_0x2351a0(0x109)},{'pattern':/symbolic link/,'error_type':_0x2351a0(0x1a9),'tool':_0x2351a0(0x109)},{'pattern':/Error reading file:/,'error_type':_0x2351a0(0x97),'tool':_0x2351a0(0x109)},{'pattern':/status="error"/,'error_type':_0x2351a0(0xe2),'tool':_0x2351a0(0x191)}];let _0xbc974=0x0;for(const _0x3f21b2 of _0x27e4c4){_0x3f21b2[_0x2351a0(0x12b)]===_0x2351a0(0x10a)&&Array[_0x2351a0(0xc5)](_0x3f21b2[_0x2351a0(0x165)])&&_0xbc974++;const _0x2dec93=_0x3f21b2[_0x2351a0(0xb4)];if((_0x3f21b2['role']==='tool'||_0x3f21b2[_0x2351a0(0x12b)]===_0x2351a0(0x11f))&&_0x2dec93&&typeof _0x2dec93==='string')for(const {pattern:_0x1bc4ef,error_type:_0x57e58b,tool:_0x17af61}of _0x490a05){const _0x5c0d33=_0x2dec93['match'](new RegExp(_0x1bc4ef[_0x2351a0(0xb5)],'g'));if(_0x5c0d33)for(const _0x4ffc12 of _0x5c0d33){const _0x1d9c0f=_0x2dec93['indexOf'](_0x4ffc12),_0x6d8c60=_0x2dec93[_0x2351a0(0x194)](_0x1d9c0f,Math[_0x2351a0(0x166)](_0x1d9c0f+0xc8,_0x2dec93['length']));_0xa27665[_0x2351a0(0x8f)]({'tool':_0x17af61,'error_type':_0x57e58b,'error_message':_0x6d8c60[_0x2351a0(0xd9)]('\x0a')[0x0],'turn':_0xbc974});}}}return _0xa27665;};try{const _0x557e6e=a0_0x2f511b[_0xa94536(0xd2)](_0x31fb29[_0xa94536(0xcf)][_0xa94536(0x132)]),_0x136493=_0x31fb29[_0xa94536(0xcf)]['search_type'],_0x219c9a=_0x136493===_0xa94536(0xbb)?{'allowNames':['node_modules']}:undefined,_0x1496a=new LocalRipgrepProvider(_0x557e6e,undefined,_0x219c9a);logger['debug'](_0xa94536(0xfc),'provider_created',{'type':_0xa94536(0x10f),'repo_root':_0x557e6e,'search_type':_0x136493||_0xa94536(0x94)}),logger[_0xa94536(0x103)](_0xa94536(0xfc),_0xa94536(0xcc),{'query':_0x31fb29['data'][_0xa94536(0x15b)],'repo_root':_0x557e6e,'timeout_ms':MORPH_WARP_GREP_TIMEOUT});const _0x233740=Date[_0xa94536(0x152)](),_0xd48d15=await runWarpGrep({'searchTerm':_0x31fb29[_0xa94536(0xcf)][_0xa94536(0x15b)],'repoRoot':_0x557e6e,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x1496a,'search_type':_0x136493}),_0x420555=Date[_0xa94536(0x152)]()-_0x233740,_0x3452d4=_0xd48d15[_0xa94536(0xa3)]?.[_0xa94536(0x16f)]?.[_0xa94536(0x95)]?.[_0xa94536(0x14d)]??0x0;logger[_0xa94536(0x103)]('MCP',_0xa94536(0x15d),{'termination':_0xd48d15[_0xa94536(0x187)],'turns':_0xd48d15['timings']?.[_0xa94536(0xc9)]??0x0,'files_found':_0x3452d4,'latency_ms':_0x420555});const _0x3cc472=_0x1b08f2(_0xd48d15[_0xa94536(0x179)]);_0x3cc472[_0xa94536(0x14d)]>0x0&&reportMorphError({'error_message':_0xa94536(0x88)+_0x3cc472[_0xa94536(0x14d)]+_0xa94536(0x146),'error_type':_0xa94536(0x172),'level':_0xa94536(0xa4),'tool':_0xa94536(0xe4),'context':{'repo_path':_0x31fb29[_0xa94536(0xcf)][_0xa94536(0x132)],'query':_0x31fb29['data'][_0xa94536(0x15b)],'model':_0xa94536(0xa7),'termination_reason':_0xd48d15[_0xa94536(0x187)],'sub_tool_errors':_0x3cc472,'timings':_0xd48d15[_0xa94536(0x186)],'tool_calls':_0x4c8f01(_0xd48d15[_0xa94536(0x179)]),'messages':_0xd48d15['messages']?.[_0xa94536(0x133)](_0x5aa8a6=>({'role':_0x5aa8a6[_0xa94536(0x12b)],'content':_0x5aa8a6[_0xa94536(0xb4)],..._0x5aa8a6['tool_calls']?{'tool_calls':_0x5aa8a6['tool_calls'][_0xa94536(0x14d)]}:{},..._0x5aa8a6[_0xa94536(0x118)]?{'tool_call_id':_0x5aa8a6[_0xa94536(0x118)]}:{}}))},'source':_0xa94536(0x151)})[_0xa94536(0x178)](()=>{});let _0x58438a='';if(_0xd48d15['terminationReason']==='completed'&&_0xd48d15[_0xa94536(0xa3)]?.[_0xa94536(0x16f)]?.['files']){const _0x559c73=_0xd48d15[_0xa94536(0xa3)][_0xa94536(0x16f)]['files'];if(_0x559c73[_0xa94536(0x14d)]===0x0)return _0x58438a=_0xd48d15[_0xa94536(0xa3)][_0xa94536(0x141)]||'No\x20relevant\x20code\x20found\x20for\x20the\x20query.',{'content':[{'type':_0xa94536(0xb3),'text':_0x58438a}]};const _0x2962d4=[],_0x479fcb=['Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:'];for(const _0x2953c8 of _0xd48d15[_0xa94536(0x179)]){if(_0x2953c8[_0xa94536(0x12b)]===_0xa94536(0x10a)&&Array['isArray'](_0x2953c8['tool_calls']))for(const _0x355a99 of _0x2953c8[_0xa94536(0x165)]){try{const _0x297e25=_0x355a99[_0xa94536(0x196)]?.[_0xa94536(0x111)],_0x2cb15a=JSON['parse'](_0x355a99['function']?.[_0xa94536(0x134)]||'{}');if(_0x297e25===_0xa94536(0x96))_0x479fcb[_0xa94536(0x8f)](_0xa94536(0x193)+_0x2cb15a[_0xa94536(0x1a4)]+_0xa94536(0xd3)+(_0x2cb15a[_0xa94536(0x14e)]||'.')+'`');else{if(_0x297e25===_0xa94536(0x109))_0x479fcb['push']('-\x20Read\x20file\x20`'+_0x2cb15a[_0xa94536(0x14e)]+'`');else{if(_0x297e25===_0xa94536(0xe3))_0x479fcb['push'](_0xa94536(0x18e)+(_0x2cb15a[_0xa94536(0xc3)]||'.')+'`');else _0x297e25===_0xa94536(0x17b)&&_0x479fcb[_0xa94536(0x8f)](_0xa94536(0x119)+_0x2cb15a[_0xa94536(0x1a4)]+_0xa94536(0x86)+(_0x2cb15a['path']||'.')+'`');}}}catch{}}}_0x2962d4[_0xa94536(0x8f)](_0x479fcb[_0xa94536(0x192)]('\x0a'));const _0x4abbfe=['',_0xa94536(0x110)];for(const _0x10a154 of _0x559c73){if(_0x10a154[_0xa94536(0x12f)]==='*')_0x4abbfe[_0xa94536(0x8f)]('-\x20'+_0x10a154[_0xa94536(0x14e)]+':*');else{if(Array[_0xa94536(0xc5)](_0x10a154['lines'])){const _0x22ac3c=_0x10a154['lines'][_0xa94536(0x133)](([_0x18d6b5,_0x1a946e])=>{if(_0x18d6b5===_0x1a946e)return''+_0x18d6b5;return _0x18d6b5+'-'+_0x1a946e;});_0x4abbfe[_0xa94536(0x8f)]('-\x20'+_0x10a154['path']+':'+_0x22ac3c[_0xa94536(0x192)](','));}else _0x4abbfe[_0xa94536(0x8f)]('-\x20'+_0x10a154[_0xa94536(0x14e)]+':*');}}_0x4abbfe[_0xa94536(0x8f)](''),_0x2962d4[_0xa94536(0x8f)](_0x4abbfe[_0xa94536(0x192)]('\x0a')),_0x2962d4[_0xa94536(0x8f)](_0xa94536(0xf4));const _0x1a917e=[],_0x361587=[];for(const _0xfb75b0 of _0x559c73){let _0x13a360=a0_0x2f511b['resolve'](_0x31fb29[_0xa94536(0xcf)][_0xa94536(0x132)],_0xfb75b0[_0xa94536(0x14e)]),_0x1a6e23=null,_0x40eec7=null;try{_0x1a6e23=await a0_0x1abd9e[_0xa94536(0xfb)](_0x13a360,{'encoding':_0xa94536(0x13a)});}catch(_0x23f2dc){const _0x45941e=fixPathRepetition(_0x13a360);if(_0x45941e)try{_0x1a6e23=await a0_0x1abd9e['readFile'](_0x45941e,{'encoding':'utf-8'}),_0x13a360=_0x45941e;}catch{_0x40eec7=_0x23f2dc instanceof Error?_0x23f2dc:new Error(String(_0x23f2dc));}else _0x40eec7=_0x23f2dc instanceof Error?_0x23f2dc:new Error(String(_0x23f2dc));}if(_0x1a6e23!==null){const _0x304834=_0x1a6e23['split'](/\r?\n/),_0x5bb039=[];if(_0xfb75b0[_0xa94536(0x12f)]==='*'||!Array[_0xa94536(0xc5)](_0xfb75b0[_0xa94536(0x12f)]))for(let _0x192584=0x1;_0x192584<=_0x304834[_0xa94536(0x14d)];_0x192584++){const _0x3f60b1=_0x304834[_0x192584-0x1];_0x5bb039[_0xa94536(0x8f)](_0x192584+'|\x20'+_0x3f60b1);}else for(const [_0x1fb372,_0x270b61]of _0xfb75b0['lines']){_0x5bb039['length']>0x0&&_0x5bb039[_0xa94536(0x8f)]('');for(let _0x221f85=_0x1fb372;_0x221f85<=_0x270b61&&_0x221f85<=_0x304834['length'];_0x221f85++){const _0x34d1c7=_0x304834[_0x221f85-0x1];_0x5bb039[_0xa94536(0x8f)](_0x221f85+'|\x20'+_0x34d1c7);}}_0x361587[_0xa94536(0x8f)]({'path':_0xfb75b0['path'],'content':_0x5bb039[_0xa94536(0x192)]('\x0a')});}else _0x1a917e['push']('<file\x20path=\x22'+_0xfb75b0['path']+_0xa94536(0x18f)+(_0x40eec7?.[_0xa94536(0x128)]||'Unknown\x20error')+_0xa94536(0x147));}try{const _0x5a1a32=await compactFileContexts(_0x361587,_0x31fb29[_0xa94536(0xcf)][_0xa94536(0x15b)],MORPH_API_KEY,MORPH_API_URL);for(const _0x3587a4 of _0x5a1a32){_0x1a917e['push']('<file\x20path=\x22'+_0x3587a4[_0xa94536(0x14e)]+_0xa94536(0xda)+_0x3587a4['content']+'\x0a</file>');}}catch(_0x2ed781){logger[_0xa94536(0xa4)]('MCP',_0xa94536(0xc0),{'error':_0x2ed781 instanceof Error?_0x2ed781[_0xa94536(0x128)]:String(_0x2ed781),'files_count':_0x361587[_0xa94536(0x14d)]});for(const _0x3de63a of _0x361587){_0x1a917e['push'](_0xa94536(0x143)+_0x3de63a['path']+_0xa94536(0xda)+_0x3de63a[_0xa94536(0xb4)]+_0xa94536(0x147));}}_0x2962d4[_0xa94536(0x8f)](_0x1a917e[_0xa94536(0x192)]('\x0a\x0a')),_0x58438a=_0x2962d4['join']('\x0a');const _0x20f7ec=_0xd48d15['errors']?.[_0xa94536(0x108)](_0x223519=>_0x223519[_0xa94536(0x128)]?.[_0xa94536(0x19d)](_0xa94536(0x120)))||[];if(_0x20f7ec[_0xa94536(0x14d)]>0x0){const _0xbe9167=_0x20f7ec[_0xa94536(0x133)](_0x24b6a2=>_0x24b6a2['message'])[_0xa94536(0x192)](';\x20');reportMorphError({'error_message':_0xbe9167,'error_type':'FileReadError','context':{'tool':_0xa94536(0xe4),'repo_path':_0x31fb29[_0xa94536(0xcf)][_0xa94536(0x132)],'query':_0x31fb29['data'][_0xa94536(0x15b)],'model':_0xa94536(0xa7),'termination_reason':'completed_with_file_errors','error_count':_0x20f7ec['length'],'is_timeout':![],'timings':_0xd48d15['timings'],'files_attempted':_0x559c73['map'](_0x332802=>({'path':_0x332802['path'],'lines':_0x332802[_0xa94536(0x12f)]})),'tool_calls':_0x4c8f01(_0xd48d15[_0xa94536(0x179)]),'messages':_0xd48d15[_0xa94536(0x179)]?.['map'](_0x4daf5d=>({'role':_0x4daf5d[_0xa94536(0x12b)],'content':_0x4daf5d[_0xa94536(0xb4)],..._0x4daf5d[_0xa94536(0x165)]?{'tool_calls':_0x4daf5d[_0xa94536(0x165)][_0xa94536(0x14d)]}:{},..._0x4daf5d[_0xa94536(0x118)]?{'tool_call_id':_0x4daf5d['tool_call_id']}:{}})),'request_content':{'query':_0x31fb29[_0xa94536(0xcf)]['search_string'],'repo_path':_0x31fb29[_0xa94536(0xcf)][_0xa94536(0x132)],'repoRoot':a0_0x2f511b[_0xa94536(0xd2)](_0x31fb29['data'][_0xa94536(0x132)]),'model':_0xa94536(0xa7)}},'source':_0xa94536(0x151)})[_0xa94536(0x178)](()=>{});}}else{if(_0xd48d15[_0xa94536(0x187)]===_0xa94536(0x14f)&&_0xd48d15[_0xa94536(0x16c)][_0xa94536(0x14d)]>0x0){const _0x2224a9=_0xd48d15[_0xa94536(0x16c)][_0xa94536(0x133)](_0x1f6571=>_0x1f6571[_0xa94536(0x128)])[_0xa94536(0x192)](';\x20');_0x58438a=_0xa94536(0x9f)+_0x2224a9;const _0x3dde7c=_0x2224a9[_0xa94536(0x8c)]()[_0xa94536(0x19f)](_0xa94536(0xf5))||_0x2224a9[_0xa94536(0x8c)]()[_0xa94536(0x19f)]('timed\x20out')||_0x2224a9[_0xa94536(0x8c)]()[_0xa94536(0x19f)]('etimedout'),_0x23d00f=_0xd48d15[_0xa94536(0xa3)]?.['metadata']?.[_0xa94536(0x95)],_0x27cf72=_0xd48d15['errors'][0x0];reportMorphError({'error_message':_0x2224a9,'error_type':_0x3dde7c?'TimeoutError':_0x27cf72?.[_0xa94536(0xdd)]?.[_0xa94536(0x111)]||_0xa94536(0x177),'context':{'tool':'codebase_search','repo_path':_0x31fb29[_0xa94536(0xcf)][_0xa94536(0x132)],'query':_0x31fb29['data'][_0xa94536(0x15b)],'model':_0xa94536(0xa7),'termination_reason':_0xd48d15['terminationReason'],'error_count':_0xd48d15[_0xa94536(0x16c)][_0xa94536(0x14d)],'is_timeout':_0x3dde7c,'timings':_0xd48d15[_0xa94536(0x186)],'files_attempted':_0x23d00f?.[_0xa94536(0x133)](_0x28ac3a=>({'path':_0x28ac3a[_0xa94536(0x14e)],'lines':_0x28ac3a[_0xa94536(0x12f)]})),'tool_calls':_0x4c8f01(_0xd48d15[_0xa94536(0x179)]),'messages':_0xd48d15['messages']?.[_0xa94536(0x133)](_0x335766=>({'role':_0x335766[_0xa94536(0x12b)],'content':_0x335766[_0xa94536(0xb4)],..._0x335766['tool_calls']?{'tool_calls':_0x335766[_0xa94536(0x165)][_0xa94536(0x14d)]}:{},..._0x335766[_0xa94536(0x118)]?{'tool_call_id':_0x335766[_0xa94536(0x118)]}:{}})),'request_content':{'query':_0x31fb29[_0xa94536(0xcf)][_0xa94536(0x15b)],'repo_path':_0x31fb29[_0xa94536(0xcf)]['repo_path'],'repoRoot':a0_0x2f511b['resolve'](_0x31fb29[_0xa94536(0xcf)][_0xa94536(0x132)]),'model':'morph-warp-grep-v2.1'}},'stack_trace':_0x27cf72?.[_0xa94536(0xd6)]||undefined,'source':_0xa94536(0x151)})[_0xa94536(0x178)](()=>{});}else _0x58438a=_0xa94536(0xf2);}return{'content':[{'type':'text','text':_0x58438a}]};}catch(_0x150559){const _0x14973d=handleMorphAPIError(_0x150559);if(_0x14973d)return logger[_0xa94536(0x18d)]('MCP',_0xa94536(0xa5),{'tool':_0xa94536(0xe4),'error':_0xa94536(0xff),'latency_ms':Date['now']()-_0x307c28}),_0x14973d;const _0x93e522=_0x150559 instanceof Error?_0x150559[_0xa94536(0x128)]:String(_0x150559);logger[_0xa94536(0x18d)]('MCP',_0xa94536(0xa5),{'tool':_0xa94536(0xe4),'error':_0x93e522,'repo_path':_0x31fb29[_0xa94536(0xcf)][_0xa94536(0x132)],'query':_0x31fb29['data'][_0xa94536(0x15b)],'latency_ms':Date[_0xa94536(0x152)]()-_0x307c28});const _0x5870c0=_0x93e522[_0xa94536(0x8c)]()['includes'](_0xa94536(0xf5))||_0x93e522['toLowerCase']()['includes']('timed\x20out')||_0x93e522['toLowerCase']()['includes'](_0xa94536(0xcb))||_0x150559 instanceof Error&&_0x150559['name']===_0xa94536(0x189);return reportMorphError({'error_message':_0x93e522,'error_type':_0x5870c0?'TimeoutError':_0x150559 instanceof Error?_0x150559[_0xa94536(0xdd)]['name']:_0xa94536(0x181),'context':{'tool':_0xa94536(0xe4),'repo_path':_0x31fb29[_0xa94536(0xcf)][_0xa94536(0x132)],'query':_0x31fb29[_0xa94536(0xcf)][_0xa94536(0x15b)],'model':_0xa94536(0xa7),'is_timeout':_0x5870c0,'exception_phase':_0xa94536(0xb7),'request_content':{'query':_0x31fb29[_0xa94536(0xcf)][_0xa94536(0x15b)],'repo_path':_0x31fb29['data'][_0xa94536(0x132)],'repoRoot':a0_0x2f511b[_0xa94536(0xd2)](_0x31fb29['data'][_0xa94536(0x132)]),'model':_0xa94536(0xa7)}},'stack_trace':_0x150559 instanceof Error?_0x150559[_0xa94536(0xd6)]:undefined,'source':_0xa94536(0x151)})[_0xa94536(0x178)](()=>{}),{'content':[{'type':_0xa94536(0xb3),'text':_0xa94536(0x154)+_0x93e522}],'isError':![]};}}case TOOL_NAMES['GITHUB_CODEBASE_SEARCH']:{const _0x51666b=WarpGrepGitHubArgsSchema[_0xa94536(0xd8)](_0x3d9cdd);if(!_0x51666b['success'])return{'content':[{'type':_0xa94536(0xb3),'text':_0xa94536(0xaf)+_0x51666b['error']}],'isError':!![]};const _0x373134=_0x51666b[_0xa94536(0xcf)]['github_url']||_0x51666b[_0xa94536(0xcf)][_0xa94536(0x199)];if(!_0x373134)return{'content':[{'type':_0xa94536(0xb3),'text':_0xa94536(0x91)}],'isError':!![]};const _0x54ec8f=MORPH_API_KEY;if(!_0x54ec8f)throw new Error(_0xa94536(0x123));const _0x304fc9=Date[_0xa94536(0x152)]();logger[_0xa94536(0x103)](_0xa94536(0xfc),_0xa94536(0xe1),{'identifier':_0x373134,'query':_0x51666b[_0xa94536(0xcf)][_0xa94536(0x15b)],'branch':_0x51666b[_0xa94536(0xcf)][_0xa94536(0x10d)]});try{const _0x5b9440=new WarpGrepClient({'morphApiKey':_0x54ec8f,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT}),_0x3079e0=await _0x5b9440[_0xa94536(0xc1)]({'searchTerm':_0x51666b['data'][_0xa94536(0x15b)],'github':_0x373134,'branch':_0x51666b['data'][_0xa94536(0x10d)]}),_0xd8cce0=Date[_0xa94536(0x152)]()-_0x304fc9;logMcpStderr(_0xa94536(0x148)+_0xd8cce0+'ms.\x20Success:\x20'+_0x3079e0[_0xa94536(0xd7)]);const _0x3c4c3d=formatResult(_0x3079e0);return{'content':[{'type':_0xa94536(0xb3),'text':_0x3c4c3d}]};}catch(_0x1a7e36){const _0x11841b=handleMorphAPIError(_0x1a7e36);if(_0x11841b)return _0x11841b;const _0x2ea1dc=Date['now']()-_0x304fc9,_0x470d9a=_0x1a7e36 instanceof Error?_0x1a7e36['message']:String(_0x1a7e36);return logMcpStderr(_0xa94536(0x117)+_0x2ea1dc+'ms:',_0x470d9a),reportMorphError({'error_message':_0x470d9a,'error_type':_0x1a7e36 instanceof Error?_0x1a7e36[_0xa94536(0xdd)][_0xa94536(0x111)]:'UnknownError','context':{'tool':_0xa94536(0x1a6),'github_url':_0x373134,'search_string':_0x51666b[_0xa94536(0xcf)][_0xa94536(0x15b)],'branch':_0x51666b['data'][_0xa94536(0x10d)]},'stack_trace':_0x1a7e36 instanceof Error?_0x1a7e36[_0xa94536(0xd6)]:undefined,'source':_0xa94536(0x151),'tool':_0xa94536(0x1a6),'latency_ms':_0x2ea1dc})[_0xa94536(0x178)](()=>{}),{'content':[{'type':_0xa94536(0xb3),'text':_0xa94536(0x114)+_0x470d9a}],'isError':![]};}}default:throw new Error(_0xa94536(0x12a)+_0x43da34);}}catch(_0x3a6aa3){const _0x2d1639=_0x3a6aa3 instanceof Error?_0x3a6aa3[_0xa94536(0x128)]:String(_0x3a6aa3);return reportMorphError({'error_message':_0x2d1639,'error_type':_0x3a6aa3 instanceof Error?_0x3a6aa3[_0xa94536(0xdd)][_0xa94536(0x111)]:_0xa94536(0x181),'context':{'tool':_0x43da34,'arguments':_0x3d9cdd?JSON['stringify'](_0x3d9cdd)[_0xa94536(0x194)](0x0,0x1f4):undefined,'mcp_server_version':'0.2.0'},'stack_trace':_0x3a6aa3 instanceof Error?_0x3a6aa3[_0xa94536(0xd6)]:undefined,'source':_0xa94536(0x151)})[_0xa94536(0x178)](()=>{}),{'content':[{'type':_0xa94536(0xb3),'text':'Error:\x20'+_0x2d1639}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x4975f2){const _0x4107d9=a0_0x104249,_0x3db85e=await getValidRootDirectories(_0x4975f2);if(_0x3db85e[_0x4107d9(0x14d)]>0x0)allowedDirectories=[..._0x3db85e],logMcpStderr(_0x4107d9(0x122)+_0x3db85e['length']+_0x4107d9(0xc8));else{logMcpStderr('No\x20valid\x20root\x20directories\x20provided\x20by\x20client');if(ENABLE_WORKSPACE_MODE)try{const _0x187736=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x187736&&(allowedDirectories=[_0x187736],logMcpStderr(_0x4107d9(0x17f)+_0x187736));}catch(_0x3f2b26){logMcpStderr(_0x4107d9(0xe6)+_0x3f2b26);}}}server[a0_0x104249(0x10e)](RootsListChangedNotificationSchema,async()=>{const _0x363f50=a0_0x104249;try{const _0x399e4b=await server[_0x363f50(0x175)]();_0x399e4b&&'roots'in _0x399e4b&&await updateAllowedDirectoriesFromRoots(_0x399e4b[_0x363f50(0x156)]);}catch(_0x1d7890){logMcpStderr(_0x363f50(0x139),_0x1d7890 instanceof Error?_0x1d7890[_0x363f50(0x128)]:String(_0x1d7890));}}),server[a0_0x104249(0x87)]=async()=>{const _0x10845e=a0_0x104249,_0x1eb1fc=server[_0x10845e(0xf6)]();if(_0x1eb1fc?.[_0x10845e(0x156)])try{const _0x54f3ac=await server[_0x10845e(0x175)]();_0x54f3ac&&_0x10845e(0x156)in _0x54f3ac?await updateAllowedDirectoriesFromRoots(_0x54f3ac[_0x10845e(0x156)]):logMcpStderr(_0x10845e(0x159));}catch(_0x3f1c70){logMcpStderr(_0x10845e(0x130),_0x3f1c70 instanceof Error?_0x3f1c70[_0x10845e(0x128)]:String(_0x3f1c70));}else{if(allowedDirectories[_0x10845e(0x14d)]>0x0)logMcpStderr(_0x10845e(0xef),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)logMcpStderr('Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode');else throw new Error(_0x10845e(0x155));}}};async function runServer(){const _0x272889=a0_0x104249,_0x3351e1=new StdioServerTransport();await server[_0x272889(0x14a)](_0x3351e1),logMcpStderr(_0x272889(0x138)),allowedDirectories['length']===0x0&&logMcpStderr(_0x272889(0xe5));}runServer()[a0_0x104249(0x178)](_0x472fae=>{const _0x3c5083=a0_0x104249;logMcpStderr(_0x3c5083(0x142),_0x472fae),process[_0x3c5083(0x168)](0x1);});

@@ -1,1 +0,1 @@

var a1_0x25572f=a1_0x58db;(function(_0x20e0f2,_0x1ec248){var _0x5b8f74=a1_0x58db,_0x461b25=_0x20e0f2();while(!![]){try{var _0x84de43=parseInt(_0x5b8f74(0x9b))/0x1*(-parseInt(_0x5b8f74(0xa0))/0x2)+parseInt(_0x5b8f74(0x9c))/0x3+-parseInt(_0x5b8f74(0xab))/0x4+-parseInt(_0x5b8f74(0xa5))/0x5*(parseInt(_0x5b8f74(0x9f))/0x6)+parseInt(_0x5b8f74(0xa7))/0x7*(parseInt(_0x5b8f74(0xae))/0x8)+parseInt(_0x5b8f74(0xa1))/0x9*(parseInt(_0x5b8f74(0xaa))/0xa)+parseInt(_0x5b8f74(0xa3))/0xb*(parseInt(_0x5b8f74(0xa8))/0xc);if(_0x84de43===_0x1ec248)break;else _0x461b25['push'](_0x461b25['shift']());}catch(_0x554cf1){_0x461b25['push'](_0x461b25['shift']());}}}(a1_0x2772,0xa3a7a));function a1_0x58db(_0x31bc5b,_0x54bbfc){_0x31bc5b=_0x31bc5b-0x9a;var _0x2772f9=a1_0x2772();var _0x58dbd4=_0x2772f9[_0x31bc5b];return _0x58dbd4;}import a1_0x32a9e2 from'os';import{logger}from'./logger.js';export function getOperatingSystemType(_0x16ef7a=a1_0x32a9e2['platform']()){var _0x551e9a=a1_0x58db;switch(_0x16ef7a){case'darwin':return _0x551e9a(0x9d);case _0x551e9a(0xa6):return'Windows';case _0x551e9a(0xa9):return _0x551e9a(0xac);default:return _0x551e9a(0x9a);}}export function formatMcpLogMessage(_0x473a57,_0x45fc91=a1_0x32a9e2[a1_0x25572f(0x9e)]()){var _0x714f5b=a1_0x25572f;return _0x714f5b(0xa2)+getOperatingSystemType(_0x45fc91)+']\x20'+_0x473a57;}export function logMcpStderr(_0x3bd369,..._0x540adf){var _0x5a6ea4=a1_0x25572f;console['error'](formatMcpLogMessage(_0x3bd369),..._0x540adf),logger['info'](_0x5a6ea4(0xaf),_0x3bd369,_0x540adf[_0x5a6ea4(0xad)]?{'args':_0x540adf[_0x5a6ea4(0xa4)](_0x18cfa7=>String(_0x18cfa7))}:undefined);}function a1_0x2772(){var _0x34406e=['length','24wWmvlU','MCP','Unknown','4UaLWXT','1314498mYahSF','macOS','platform','6yYERGQ','107414SaGwUJ','12033wiRuuE','[os=','2558952HcbkDN','map','4122010MbAapJ','win32','1520785xckAan','72vRCWDl','linux','2770jPdnFY','4586048OiYvxc','Linux'];a1_0x2772=function(){return _0x34406e;};return a1_0x2772();}
var a1_0x3643c1=a1_0x3562;function a1_0x192a(){var _0x4c6e65=['[os=','342764SVFTji','2230254txxqmo','win32','length','1768VHAAYQ','error','info','darwin','map','184ekXgxV','7DnSAzO','6361470TxuOje','10020328iaqBUK','macOS','Linux','platform','linux','390NSwyhB','335403fKYoNO','2198220cbjzhT','Unknown'];a1_0x192a=function(){return _0x4c6e65;};return a1_0x192a();}(function(_0x13bc15,_0x23cbfd){var _0x27aede=a1_0x3562,_0x24ac7f=_0x13bc15();while(!![]){try{var _0x22352d=parseInt(_0x27aede(0x1f4))/0x1*(-parseInt(_0x27aede(0x1ef))/0x2)+-parseInt(_0x27aede(0x1ec))/0x3+-parseInt(_0x27aede(0x1eb))/0x4+parseInt(_0x27aede(0x1f6))/0x5+parseInt(_0x27aede(0x1e8))/0x6+-parseInt(_0x27aede(0x1f5))/0x7*(parseInt(_0x27aede(0x1e1))/0x8)+-parseInt(_0x27aede(0x1e7))/0x9*(-parseInt(_0x27aede(0x1e6))/0xa);if(_0x22352d===_0x23cbfd)break;else _0x24ac7f['push'](_0x24ac7f['shift']());}catch(_0x396917){_0x24ac7f['push'](_0x24ac7f['shift']());}}}(a1_0x192a,0xcef9b));import a1_0x3035c8 from'os';import{logger}from'./logger.js';export function getOperatingSystemType(_0x3a462a=a1_0x3035c8[a1_0x3643c1(0x1e4)]()){var _0x1e6803=a1_0x3643c1;switch(_0x3a462a){case _0x1e6803(0x1f2):return _0x1e6803(0x1e2);case _0x1e6803(0x1ed):return'Windows';case _0x1e6803(0x1e5):return _0x1e6803(0x1e3);default:return _0x1e6803(0x1e9);}}export function formatMcpLogMessage(_0x2d1d6e,_0x1077e8=a1_0x3035c8[a1_0x3643c1(0x1e4)]()){var _0x467777=a1_0x3643c1;return _0x467777(0x1ea)+getOperatingSystemType(_0x1077e8)+']\x20'+_0x2d1d6e;}function a1_0x3562(_0xaa71bc,_0xbb0b24){_0xaa71bc=_0xaa71bc-0x1e1;var _0x192a8c=a1_0x192a();var _0x3562c9=_0x192a8c[_0xaa71bc];return _0x3562c9;}export function logMcpStderr(_0x54d674,..._0x26fc15){var _0x10699a=a1_0x3643c1;console[_0x10699a(0x1f0)](formatMcpLogMessage(_0x54d674),..._0x26fc15),logger[_0x10699a(0x1f1)]('MCP',_0x54d674,_0x26fc15[_0x10699a(0x1ee)]?{'args':_0x26fc15[_0x10699a(0x1f3)](_0x5ccdd1=>String(_0x5ccdd1))}:undefined);}

@@ -1,1 +0,1 @@

const a2_0x5ef648=a2_0x3abc;(function(_0x3906e4,_0xacd8ca){const _0x4c2e02=a2_0x3abc,_0x540823=_0x3906e4();while(!![]){try{const _0x31ab0b=-parseInt(_0x4c2e02(0x12b))/0x1*(-parseInt(_0x4c2e02(0x122))/0x2)+parseInt(_0x4c2e02(0x11f))/0x3+-parseInt(_0x4c2e02(0x120))/0x4+-parseInt(_0x4c2e02(0x12a))/0x5+parseInt(_0x4c2e02(0x12d))/0x6*(parseInt(_0x4c2e02(0x11c))/0x7)+-parseInt(_0x4c2e02(0x124))/0x8*(parseInt(_0x4c2e02(0x119))/0x9)+-parseInt(_0x4c2e02(0x12c))/0xa*(-parseInt(_0x4c2e02(0x11e))/0xb);if(_0x31ab0b===_0xacd8ca)break;else _0x540823['push'](_0x540823['shift']());}catch(_0x14359c){_0x540823['push'](_0x540823['shift']());}}}(a2_0x3c3c,0x9323c));function a2_0x3abc(_0x1c46fb,_0x185d2c){_0x1c46fb=_0x1c46fb-0x118;const _0x3c3cb4=a2_0x3c3c();let _0x3abcdd=_0x3c3cb4[_0x1c46fb];return _0x3abcdd;}import{createWriteStream}from'fs';function a2_0x3c3c(){const _0x4d1380=['459tsHKVQ','warn','env','35nXaqLB','MORPH_LOG_FILE','22OCHlWb','1520544PyJVgD','4793676tOyIGM','enabled','40mtAgBg','info','44296UckYRa','error','stringify','_log',']\x20[','fileStream','4308645tfnsIK','51631FXDHpm','1098430kEXscB','1423278PFdTqL','MORPH_DEBUG','debug','toUpperCase'];a2_0x3c3c=function(){return _0x4d1380;};return a2_0x3c3c();}class MorphLogger{[a2_0x5ef648(0x121)];[a2_0x5ef648(0x129)];constructor(){const _0x556e1e=a2_0x5ef648;this[_0x556e1e(0x121)]=process[_0x556e1e(0x11b)][_0x556e1e(0x12e)]==='1'||!!process[_0x556e1e(0x11b)][_0x556e1e(0x11d)];const _0x437508=process['env'][_0x556e1e(0x11d)];this[_0x556e1e(0x129)]=_0x437508?createWriteStream(_0x437508,{'flags':'a'}):null;}[a2_0x5ef648(0x12f)](_0x28020d,_0x400878,_0x1cdd5e){const _0x1edbc6=a2_0x5ef648;this[_0x1edbc6(0x127)]('debug',_0x28020d,_0x400878,_0x1cdd5e);}[a2_0x5ef648(0x123)](_0x5a3d77,_0x46954c,_0x530187){const _0x1f49bc=a2_0x5ef648;this[_0x1f49bc(0x127)](_0x1f49bc(0x123),_0x5a3d77,_0x46954c,_0x530187);}[a2_0x5ef648(0x11a)](_0x519ec6,_0x1e47a3,_0x4424d3){const _0x23540f=a2_0x5ef648;this['_log'](_0x23540f(0x11a),_0x519ec6,_0x1e47a3,_0x4424d3);}[a2_0x5ef648(0x125)](_0x3408e5,_0x500dab,_0xd782f6){const _0x4c7aeb=a2_0x5ef648;this[_0x4c7aeb(0x127)](_0x4c7aeb(0x125),_0x3408e5,_0x500dab,_0xd782f6);}['enable'](){const _0x2223dc=a2_0x5ef648;this[_0x2223dc(0x121)]=!![];}get['isEnabled'](){const _0x1e4fdc=a2_0x5ef648;return this[_0x1e4fdc(0x121)];}['_log'](_0x5c81b5,_0x5f33d0,_0x4ee116,_0x4ce049){const _0x283c28=a2_0x5ef648;if(_0x5c81b5!==_0x283c28(0x125)&&!this['enabled'])return;const _0x2b6bab=new Date()['toISOString'](),_0x281ed5='['+_0x2b6bab+_0x283c28(0x128)+_0x5c81b5[_0x283c28(0x118)]()+_0x283c28(0x128)+_0x5f33d0+']';console[_0x283c28(0x125)](_0x4ce049?_0x281ed5+'\x20'+_0x4ee116+'\x20'+JSON[_0x283c28(0x126)](_0x4ce049):_0x281ed5+'\x20'+_0x4ee116),this[_0x283c28(0x129)]?.['write'](JSON[_0x283c28(0x126)]({'ts':_0x2b6bab,'level':_0x5c81b5,'component':_0x5f33d0,'msg':_0x4ee116,..._0x4ce049&&{'data':_0x4ce049}})+'\x0a');}}export const logger=new MorphLogger();
const a2_0x1513c0=a2_0x1dae;(function(_0x2a8c32,_0x51f7c4){const _0x4f1b70=a2_0x1dae,_0x14a49d=_0x2a8c32();while(!![]){try{const _0x27dfba=-parseInt(_0x4f1b70(0x104))/0x1+parseInt(_0x4f1b70(0x10c))/0x2*(parseInt(_0x4f1b70(0x10f))/0x3)+-parseInt(_0x4f1b70(0x112))/0x4*(parseInt(_0x4f1b70(0x102))/0x5)+-parseInt(_0x4f1b70(0x100))/0x6*(-parseInt(_0x4f1b70(0x101))/0x7)+parseInt(_0x4f1b70(0x116))/0x8*(parseInt(_0x4f1b70(0x107))/0x9)+parseInt(_0x4f1b70(0xff))/0xa+-parseInt(_0x4f1b70(0x105))/0xb;if(_0x27dfba===_0x51f7c4)break;else _0x14a49d['push'](_0x14a49d['shift']());}catch(_0x24ff84){_0x14a49d['push'](_0x14a49d['shift']());}}}(a2_0x5bc8,0xca72e));import{createWriteStream}from'fs';class MorphLogger{['enabled'];[a2_0x1513c0(0x103)];constructor(){const _0x2b606d=a2_0x1513c0;this['enabled']=process[_0x2b606d(0x10e)][_0x2b606d(0x113)]==='1'||!!process['env']['MORPH_LOG_FILE'];const _0x2b1a3d=process[_0x2b606d(0x10e)]['MORPH_LOG_FILE'];this[_0x2b606d(0x103)]=_0x2b1a3d?createWriteStream(_0x2b1a3d,{'flags':'a'}):null;}['debug'](_0x5b267f,_0x2d75d2,_0x1d2211){const _0x2b051d=a2_0x1513c0;this['_log'](_0x2b051d(0x115),_0x5b267f,_0x2d75d2,_0x1d2211);}[a2_0x1513c0(0x111)](_0x520070,_0x197181,_0x219128){const _0x3d74cf=a2_0x1513c0;this['_log'](_0x3d74cf(0x111),_0x520070,_0x197181,_0x219128);}['warn'](_0x370617,_0x227d10,_0xf0df9d){this['_log']('warn',_0x370617,_0x227d10,_0xf0df9d);}['error'](_0x26fd5e,_0x38d3ce,_0x3abdbd){const _0x234f2d=a2_0x1513c0;this[_0x234f2d(0x10d)]('error',_0x26fd5e,_0x38d3ce,_0x3abdbd);}[a2_0x1513c0(0x114)](){const _0x3664fb=a2_0x1513c0;this[_0x3664fb(0x108)]=!![];}get['isEnabled'](){const _0x5d20d9=a2_0x1513c0;return this[_0x5d20d9(0x108)];}[a2_0x1513c0(0x10d)](_0x24c4ce,_0x26a74c,_0x32bd9b,_0x41201c){const _0x22679b=a2_0x1513c0;if(_0x24c4ce!==_0x22679b(0x110)&&!this[_0x22679b(0x108)])return;const _0x6fe2e5=new Date()[_0x22679b(0x106)](),_0x3bd9ce='['+_0x6fe2e5+_0x22679b(0x10a)+_0x24c4ce[_0x22679b(0x109)]()+']\x20['+_0x26a74c+']';console[_0x22679b(0x110)](_0x41201c?_0x3bd9ce+'\x20'+_0x32bd9b+'\x20'+JSON[_0x22679b(0x117)](_0x41201c):_0x3bd9ce+'\x20'+_0x32bd9b),this['fileStream']?.[_0x22679b(0x10b)](JSON[_0x22679b(0x117)]({'ts':_0x6fe2e5,'level':_0x24c4ce,'component':_0x26a74c,'msg':_0x32bd9b,..._0x41201c&&{'data':_0x41201c}})+'\x0a');}}function a2_0x1dae(_0x4482a5,_0x139cd0){_0x4482a5=_0x4482a5-0xff;const _0x5bc89a=a2_0x5bc8();let _0x1dae19=_0x5bc89a[_0x4482a5];return _0x1dae19;}function a2_0x5bc8(){const _0x4d6ceb=['write','26966zramDS','_log','env','177tKauhO','error','info','152868jaJPdy','MORPH_DEBUG','enable','debug','592024RGoBjp','stringify','10515660lAXZAP','6ZIyNpk','6035743tCFexT','20gVwaeG','fileStream','432746YuViHF','25635610YWtvvH','toISOString','126hcDUpn','enabled','toUpperCase',']\x20['];a2_0x5bc8=function(){return _0x4d6ceb;};return a2_0x5bc8();}export const logger=new MorphLogger();

@@ -1,1 +0,1 @@

(function(_0x385000,_0x4009d1){const _0x54d14e=a3_0x2049,_0x10d544=_0x385000();while(!![]){try{const _0x57aa81=parseInt(_0x54d14e(0x138))/0x1+-parseInt(_0x54d14e(0x134))/0x2*(parseInt(_0x54d14e(0x13b))/0x3)+parseInt(_0x54d14e(0x140))/0x4+-parseInt(_0x54d14e(0x146))/0x5*(-parseInt(_0x54d14e(0x13e))/0x6)+parseInt(_0x54d14e(0x148))/0x7+-parseInt(_0x54d14e(0x142))/0x8*(parseInt(_0x54d14e(0x145))/0x9)+-parseInt(_0x54d14e(0x141))/0xa;if(_0x57aa81===_0x4009d1)break;else _0x10d544['push'](_0x10d544['shift']());}catch(_0x1bccc0){_0x10d544['push'](_0x10d544['shift']());}}}(a3_0x37d9,0x57e40));function a3_0x2049(_0x4abe37,_0x1e2017){_0x4abe37=_0x4abe37-0x134;const _0x37d9ee=a3_0x37d9();let _0x2049d6=_0x37d9ee[_0x4abe37];return _0x2049d6;}import a3_0x3cf26f from'path';import a3_0x285a75 from'os';export function convertToWindowsPath(_0x470ba1){const _0x28f307=a3_0x2049;if(_0x470ba1[_0x28f307(0x13d)]('/mnt/')){const _0x9b8a01=_0x470ba1[_0x28f307(0x13c)](0x5)[_0x28f307(0x13f)](),_0xd16d9a=_0x470ba1[_0x28f307(0x13a)](0x6)['replace'](/\//g,'\x5c');return _0x9b8a01+':'+_0xd16d9a;}if(_0x470ba1[_0x28f307(0x137)](/^\/[a-zA-Z]\//)){const _0x548842=_0x470ba1[_0x28f307(0x13c)](0x1)[_0x28f307(0x13f)](),_0x55beff=_0x470ba1[_0x28f307(0x13a)](0x2)[_0x28f307(0x147)](/\//g,'\x5c');return _0x548842+':'+_0x55beff;}if(_0x470ba1[_0x28f307(0x137)](/^[a-zA-Z]:/))return _0x470ba1[_0x28f307(0x147)](/\//g,'\x5c');return _0x470ba1;}export function normalizePath(_0x34dbac){const _0x245ea8=a3_0x2049;_0x34dbac=_0x34dbac[_0x245ea8(0x136)]()[_0x245ea8(0x147)](/^["']|["']$/g,'');const _0x50df74=_0x34dbac['startsWith']('/')&&!_0x34dbac['match'](/^\/mnt\/[a-z]\//i)&&!_0x34dbac[_0x245ea8(0x137)](/^\/[a-zA-Z]\//);if(_0x50df74)return _0x34dbac['replace'](/\/+/g,'/')[_0x245ea8(0x147)](/\/+$/,'');_0x34dbac=convertToWindowsPath(_0x34dbac);if(_0x34dbac[_0x245ea8(0x13d)]('\x5c\x5c')){let _0x106225=_0x34dbac;_0x106225=_0x106225['replace'](/^\\{2,}/,'\x5c\x5c');const _0x3f8290=_0x106225[_0x245ea8(0x143)](0x2)['replace'](/\\\\/g,'\x5c');_0x34dbac='\x5c\x5c'+_0x3f8290;}else _0x34dbac=_0x34dbac[_0x245ea8(0x147)](/\\\\/g,'\x5c');let _0x4b929f=a3_0x3cf26f[_0x245ea8(0x135)](_0x34dbac);_0x34dbac[_0x245ea8(0x13d)]('\x5c\x5c')&&!_0x4b929f[_0x245ea8(0x13d)]('\x5c\x5c')&&(_0x4b929f='\x5c'+_0x4b929f);if(_0x4b929f[_0x245ea8(0x137)](/^[a-zA-Z]:/)){let _0xb277e2=_0x4b929f[_0x245ea8(0x147)](/\//g,'\x5c');return/^[a-z]:/['test'](_0xb277e2)&&(_0xb277e2=_0xb277e2[_0x245ea8(0x13c)](0x0)[_0x245ea8(0x13f)]()+_0xb277e2[_0x245ea8(0x13a)](0x1)),_0xb277e2;}return _0x4b929f[_0x245ea8(0x147)](/\//g,'\x5c');}export function expandHome(_0x7f9a4b){const _0xa4ffd3=a3_0x2049;if(_0x7f9a4b[_0xa4ffd3(0x13d)]('~/')||_0x7f9a4b==='~')return a3_0x3cf26f[_0xa4ffd3(0x139)](a3_0x285a75[_0xa4ffd3(0x144)](),_0x7f9a4b[_0xa4ffd3(0x13a)](0x1));return _0x7f9a4b;}function a3_0x37d9(){const _0x27a2f9=['14312BWEoBR','substring','homedir','1899NowaPj','15Hurfau','replace','3406424EJJdhM','218238FnMSbF','normalize','trim','match','233233umPfMa','join','slice','12YuvjeJ','charAt','startsWith','1356132PwRWoQ','toUpperCase','2694168iVWfwr','8975180DUsaSw'];a3_0x37d9=function(){return _0x27a2f9;};return a3_0x37d9();}
function a3_0x597a(){const _0x24bbb5=['/mnt/','homedir','match','70ESgwvS','1092655eNBJfK','675485wJcWUB','normalize','slice','554554GDuhTM','charAt','3629709zRioqG','test','startsWith','88dXKPEP','275639eqKHTj','16dfAKZS','replace','26562324KTKwAX','103332IHqyrK','2UAhxtq','6XooihJ','toUpperCase','substring'];a3_0x597a=function(){return _0x24bbb5;};return a3_0x597a();}function a3_0x4c46(_0x2cd8a1,_0x3d5d74){_0x2cd8a1=_0x2cd8a1-0x16d;const _0x597a39=a3_0x597a();let _0x4c4622=_0x597a39[_0x2cd8a1];return _0x4c4622;}(function(_0x1b2d52,_0x7d438f){const _0x1c2dab=a3_0x4c46,_0x311aaf=_0x1b2d52();while(!![]){try{const _0x3142c6=-parseInt(_0x1c2dab(0x178))/0x1*(-parseInt(_0x1c2dab(0x170))/0x2)+-parseInt(_0x1c2dab(0x16f))/0x3*(-parseInt(_0x1c2dab(0x181))/0x4)+-parseInt(_0x1c2dab(0x179))/0x5+parseInt(_0x1c2dab(0x171))/0x6*(-parseInt(_0x1c2dab(0x182))/0x7)+parseInt(_0x1c2dab(0x183))/0x8*(parseInt(_0x1c2dab(0x17e))/0x9)+parseInt(_0x1c2dab(0x177))/0xa*(parseInt(_0x1c2dab(0x17c))/0xb)+-parseInt(_0x1c2dab(0x16e))/0xc;if(_0x3142c6===_0x7d438f)break;else _0x311aaf['push'](_0x311aaf['shift']());}catch(_0x4323d8){_0x311aaf['push'](_0x311aaf['shift']());}}}(a3_0x597a,0x97d62));import a3_0x2bdf57 from'path';import a3_0x1f553f from'os';export function convertToWindowsPath(_0x2b0af1){const _0x286253=a3_0x4c46;if(_0x2b0af1[_0x286253(0x180)](_0x286253(0x174))){const _0x6ed610=_0x2b0af1[_0x286253(0x17d)](0x5)[_0x286253(0x172)](),_0x48f9c2=_0x2b0af1['slice'](0x6)[_0x286253(0x16d)](/\//g,'\x5c');return _0x6ed610+':'+_0x48f9c2;}if(_0x2b0af1[_0x286253(0x176)](/^\/[a-zA-Z]\//)){const _0x23da02=_0x2b0af1['charAt'](0x1)[_0x286253(0x172)](),_0x3c8050=_0x2b0af1[_0x286253(0x17b)](0x2)[_0x286253(0x16d)](/\//g,'\x5c');return _0x23da02+':'+_0x3c8050;}if(_0x2b0af1['match'](/^[a-zA-Z]:/))return _0x2b0af1[_0x286253(0x16d)](/\//g,'\x5c');return _0x2b0af1;}export function normalizePath(_0x2bd468){const _0x3286d2=a3_0x4c46;_0x2bd468=_0x2bd468['trim']()[_0x3286d2(0x16d)](/^["']|["']$/g,'');const _0x3bcb14=_0x2bd468['startsWith']('/')&&!_0x2bd468[_0x3286d2(0x176)](/^\/mnt\/[a-z]\//i)&&!_0x2bd468[_0x3286d2(0x176)](/^\/[a-zA-Z]\//);if(_0x3bcb14)return _0x2bd468[_0x3286d2(0x16d)](/\/+/g,'/')['replace'](/\/+$/,'');_0x2bd468=convertToWindowsPath(_0x2bd468);if(_0x2bd468['startsWith']('\x5c\x5c')){let _0x13ddec=_0x2bd468;_0x13ddec=_0x13ddec[_0x3286d2(0x16d)](/^\\{2,}/,'\x5c\x5c');const _0x55cf21=_0x13ddec[_0x3286d2(0x173)](0x2)[_0x3286d2(0x16d)](/\\\\/g,'\x5c');_0x2bd468='\x5c\x5c'+_0x55cf21;}else _0x2bd468=_0x2bd468[_0x3286d2(0x16d)](/\\\\/g,'\x5c');let _0x57f938=a3_0x2bdf57[_0x3286d2(0x17a)](_0x2bd468);_0x2bd468['startsWith']('\x5c\x5c')&&!_0x57f938[_0x3286d2(0x180)]('\x5c\x5c')&&(_0x57f938='\x5c'+_0x57f938);if(_0x57f938[_0x3286d2(0x176)](/^[a-zA-Z]:/)){let _0x36a374=_0x57f938['replace'](/\//g,'\x5c');return/^[a-z]:/[_0x3286d2(0x17f)](_0x36a374)&&(_0x36a374=_0x36a374['charAt'](0x0)[_0x3286d2(0x172)]()+_0x36a374['slice'](0x1)),_0x36a374;}return _0x57f938[_0x3286d2(0x16d)](/\//g,'\x5c');}export function expandHome(_0x4c0cf3){const _0x4d38ee=a3_0x4c46;if(_0x4c0cf3['startsWith']('~/')||_0x4c0cf3==='~')return a3_0x2bdf57['join'](a3_0x1f553f[_0x4d38ee(0x175)](),_0x4c0cf3[_0x4d38ee(0x17b)](0x1));return _0x4c0cf3;}

@@ -1,1 +0,1 @@

(function(_0x1d1c86,_0x440f6f){const _0x528e7a=a4_0x33eb,_0x4fdd57=_0x1d1c86();while(!![]){try{const _0x35f518=-parseInt(_0x528e7a(0xbd))/0x1+parseInt(_0x528e7a(0xbe))/0x2*(-parseInt(_0x528e7a(0xcf))/0x3)+parseInt(_0x528e7a(0xbb))/0x4+parseInt(_0x528e7a(0xbf))/0x5*(-parseInt(_0x528e7a(0xc4))/0x6)+parseInt(_0x528e7a(0xc9))/0x7+-parseInt(_0x528e7a(0xc2))/0x8*(parseInt(_0x528e7a(0xc6))/0x9)+-parseInt(_0x528e7a(0xcd))/0xa*(-parseInt(_0x528e7a(0xc0))/0xb);if(_0x35f518===_0x440f6f)break;else _0x4fdd57['push'](_0x4fdd57['shift']());}catch(_0x46656d){_0x4fdd57['push'](_0x4fdd57['shift']());}}}(a4_0x29b5,0x8b2f3));import a4_0x2517d4 from'path';function a4_0x29b5(){const _0x456ff8=['127816WCwYxd','isArray','678800CgxKbj','2UdpBKY','41185YfbhqQ','143jZJdSn','includes','879896teMOoY','startsWith','6pavEiw','sep','81IeELNo','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','isAbsolute','706538jJxnpF','string','normalize','some','2334110nAhzYE','length','2760636karzrq','resolve','Path\x20must\x20be\x20absolute\x20after\x20normalization'];a4_0x29b5=function(){return _0x456ff8;};return a4_0x29b5();}function a4_0x33eb(_0x3e0365,_0x28aed4){_0x3e0365=_0x3e0365-0xb9;const _0x29b5fd=a4_0x29b5();let _0x33eb71=_0x29b5fd[_0x3e0365];return _0x33eb71;}export function isPathWithinAllowedDirectories(_0x5b061c,_0x24149d){const _0x4ebc65=a4_0x33eb;if(typeof _0x5b061c!==_0x4ebc65(0xca)||!Array[_0x4ebc65(0xbc)](_0x24149d))return![];if(!_0x5b061c||_0x24149d[_0x4ebc65(0xce)]===0x0)return![];if(_0x5b061c['includes']('\x00'))return![];let _0x2e6e8e;try{_0x2e6e8e=a4_0x2517d4[_0x4ebc65(0xb9)](a4_0x2517d4[_0x4ebc65(0xcb)](_0x5b061c));}catch{return![];}if(!a4_0x2517d4[_0x4ebc65(0xc8)](_0x2e6e8e))throw new Error(_0x4ebc65(0xba));return _0x24149d[_0x4ebc65(0xcc)](_0xcf852b=>{const _0xd4e390=_0x4ebc65;if(typeof _0xcf852b!==_0xd4e390(0xca)||!_0xcf852b)return![];if(_0xcf852b[_0xd4e390(0xc1)]('\x00'))return![];let _0x28a1cb;try{_0x28a1cb=a4_0x2517d4[_0xd4e390(0xb9)](a4_0x2517d4['normalize'](_0xcf852b));}catch{return![];}if(!a4_0x2517d4[_0xd4e390(0xc8)](_0x28a1cb))throw new Error(_0xd4e390(0xc7));if(_0x2e6e8e===_0x28a1cb)return!![];if(_0x28a1cb===a4_0x2517d4[_0xd4e390(0xc5)])return _0x2e6e8e['startsWith'](a4_0x2517d4[_0xd4e390(0xc5)]);return _0x2e6e8e[_0xd4e390(0xc3)](_0x28a1cb+a4_0x2517d4[_0xd4e390(0xc5)]);});}
function a4_0x4266(){const _0x361fc3=['Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','isAbsolute','3TWSLkk','some','startsWith','sep','1247121ypmOek','14KqNjZd','30dCppVW','resolve','2996056FqFASX','normalize','845TFqxHZ','Path\x20must\x20be\x20absolute\x20after\x20normalization','1508691NrZjFl','string','1667236zVvNde','659374SQuwaz','includes','8442MrrZGd','9150625dYfEDi','length'];a4_0x4266=function(){return _0x361fc3;};return a4_0x4266();}(function(_0xa0a6e6,_0x1e1757){const _0x2eb3a8=a4_0x4eb3,_0x5fa6a5=_0xa0a6e6();while(!![]){try{const _0x4b4ea0=-parseInt(_0x2eb3a8(0xfd))/0x1*(-parseInt(_0x2eb3a8(0x10c))/0x2)+parseInt(_0x2eb3a8(0x109))/0x3+-parseInt(_0x2eb3a8(0x10b))/0x4+parseInt(_0x2eb3a8(0x107))/0x5*(-parseInt(_0x2eb3a8(0xf8))/0x6)+parseInt(_0x2eb3a8(0x102))/0x7*(-parseInt(_0x2eb3a8(0x105))/0x8)+parseInt(_0x2eb3a8(0x101))/0x9*(-parseInt(_0x2eb3a8(0x103))/0xa)+parseInt(_0x2eb3a8(0xf9))/0xb;if(_0x4b4ea0===_0x1e1757)break;else _0x5fa6a5['push'](_0x5fa6a5['shift']());}catch(_0x1b6b68){_0x5fa6a5['push'](_0x5fa6a5['shift']());}}}(a4_0x4266,0x7b2c8));function a4_0x4eb3(_0x5ec8c2,_0x2b43a9){_0x5ec8c2=_0x5ec8c2-0xf8;const _0x4266dc=a4_0x4266();let _0x4eb37b=_0x4266dc[_0x5ec8c2];return _0x4eb37b;}import a4_0x5eb2ab from'path';export function isPathWithinAllowedDirectories(_0x14b201,_0x22c31e){const _0x4afed1=a4_0x4eb3;if(typeof _0x14b201!==_0x4afed1(0x10a)||!Array['isArray'](_0x22c31e))return![];if(!_0x14b201||_0x22c31e[_0x4afed1(0xfa)]===0x0)return![];if(_0x14b201[_0x4afed1(0x10d)]('\x00'))return![];let _0x80dec3;try{_0x80dec3=a4_0x5eb2ab[_0x4afed1(0x104)](a4_0x5eb2ab[_0x4afed1(0x106)](_0x14b201));}catch{return![];}if(!a4_0x5eb2ab['isAbsolute'](_0x80dec3))throw new Error(_0x4afed1(0x108));return _0x22c31e[_0x4afed1(0xfe)](_0x211a1a=>{const _0x27a345=_0x4afed1;if(typeof _0x211a1a!==_0x27a345(0x10a)||!_0x211a1a)return![];if(_0x211a1a[_0x27a345(0x10d)]('\x00'))return![];let _0x56a8ee;try{_0x56a8ee=a4_0x5eb2ab[_0x27a345(0x104)](a4_0x5eb2ab[_0x27a345(0x106)](_0x211a1a));}catch{return![];}if(!a4_0x5eb2ab[_0x27a345(0xfc)](_0x56a8ee))throw new Error(_0x27a345(0xfb));if(_0x80dec3===_0x56a8ee)return!![];if(_0x56a8ee===a4_0x5eb2ab[_0x27a345(0x100)])return _0x80dec3[_0x27a345(0xff)](a4_0x5eb2ab[_0x27a345(0x100)]);return _0x80dec3[_0x27a345(0xff)](_0x56a8ee+a4_0x5eb2ab[_0x27a345(0x100)]);});}

@@ -1,1 +0,1 @@

function a5_0x42ef(){const _0x3eb26c=['Skipping\x20invalid\x20directory:\x20','49IaWnZJ','3912612NbGvMb','file://','30LkgUzt','homedir','367008HFACKm','startsWith','realpath','join','5FsBEnj','slice','push','91oqJkHv','message','4458eOVtXL','\x20due\x20to\x20error:\x20','101056QzuDXX','803198crezGJ','Skipping\x20','245697FqtIoB','isDirectory','9uBuDnM','stat','invalid\x20path\x20or\x20inaccessible','resolve','99018JgQSra'];a5_0x42ef=function(){return _0x3eb26c;};return a5_0x42ef();}(function(_0x294ac1,_0x144332){const _0x3eaa3d=a5_0x1908,_0x5c923b=_0x294ac1();while(!![]){try{const _0x358e35=parseInt(_0x3eaa3d(0x140))/0x1*(-parseInt(_0x3eaa3d(0x142))/0x2)+parseInt(_0x3eaa3d(0x147))/0x3+parseInt(_0x3eaa3d(0x144))/0x4*(-parseInt(_0x3eaa3d(0x13d))/0x5)+-parseInt(_0x3eaa3d(0x14d))/0x6*(-parseInt(_0x3eaa3d(0x14f))/0x7)+parseInt(_0x3eaa3d(0x139))/0x8*(parseInt(_0x3eaa3d(0x149))/0x9)+-parseInt(_0x3eaa3d(0x152))/0xa*(parseInt(_0x3eaa3d(0x145))/0xb)+parseInt(_0x3eaa3d(0x150))/0xc;if(_0x358e35===_0x144332)break;else _0x5c923b['push'](_0x5c923b['shift']());}catch(_0x42286){_0x5c923b['push'](_0x5c923b['shift']());}}}(a5_0x42ef,0x1dd4e));import{promises as a5_0x4c93e6}from'fs';import a5_0x21dd6c from'path';import a5_0x1d98e3 from'os';import{normalizePath}from'./path-utils.js';function a5_0x1908(_0x513d5a,_0x1df194){_0x513d5a=_0x513d5a-0x139;const _0x42efba=a5_0x42ef();let _0x1908bb=_0x42efba[_0x513d5a];return _0x1908bb;}import{logMcpStderr}from'./log-utils.js';async function parseRootUri(_0x37bd31){const _0x41be71=a5_0x1908;try{const _0x2cdb37=_0x37bd31[_0x41be71(0x13a)](_0x41be71(0x151))?_0x37bd31[_0x41be71(0x13e)](0x7):_0x37bd31,_0x10c9a7=_0x2cdb37[_0x41be71(0x13a)]('~/')||_0x2cdb37==='~'?a5_0x21dd6c[_0x41be71(0x13c)](a5_0x1d98e3[_0x41be71(0x153)](),_0x2cdb37[_0x41be71(0x13e)](0x1)):_0x2cdb37,_0x442e62=a5_0x21dd6c[_0x41be71(0x14c)](_0x10c9a7),_0x473201=await a5_0x4c93e6[_0x41be71(0x13b)](_0x442e62);return normalizePath(_0x473201);}catch{return null;}}function formatDirectoryError(_0x4d789b,_0x4ce226,_0x2e505d){const _0x20a996=a5_0x1908;if(_0x2e505d)return _0x20a996(0x146)+_0x2e505d+':\x20'+_0x4d789b;const _0x20e0d2=_0x4ce226 instanceof Error?_0x4ce226[_0x20a996(0x141)]:String(_0x4ce226);return _0x20a996(0x14e)+_0x4d789b+_0x20a996(0x143)+_0x20e0d2;}export async function getValidRootDirectories(_0x1e3e7d){const _0x571811=a5_0x1908,_0x1e099b=[];for(const _0x2f1a13 of _0x1e3e7d){const _0x1747ef=await parseRootUri(_0x2f1a13['uri']);if(!_0x1747ef){logMcpStderr(formatDirectoryError(_0x2f1a13['uri'],undefined,_0x571811(0x14b)));continue;}try{const _0x51c7cd=await a5_0x4c93e6[_0x571811(0x14a)](_0x1747ef);_0x51c7cd[_0x571811(0x148)]()?_0x1e099b[_0x571811(0x13f)](_0x1747ef):logMcpStderr(formatDirectoryError(_0x1747ef,undefined,'non-directory\x20root'));}catch(_0x451a03){logMcpStderr(formatDirectoryError(_0x1747ef,_0x451a03));}}return _0x1e099b;}
(function(_0x121cb3,_0x5e714a){const _0x57c85d=a5_0x43c6,_0x3e5959=_0x121cb3();while(!![]){try{const _0x2d1bd5=-parseInt(_0x57c85d(0x207))/0x1+parseInt(_0x57c85d(0x1fe))/0x2*(parseInt(_0x57c85d(0x1fa))/0x3)+parseInt(_0x57c85d(0x206))/0x4*(-parseInt(_0x57c85d(0x1ff))/0x5)+-parseInt(_0x57c85d(0x208))/0x6*(-parseInt(_0x57c85d(0x1f9))/0x7)+parseInt(_0x57c85d(0x209))/0x8+parseInt(_0x57c85d(0x1f3))/0x9*(parseInt(_0x57c85d(0x1fb))/0xa)+-parseInt(_0x57c85d(0x205))/0xb*(parseInt(_0x57c85d(0x1f7))/0xc);if(_0x2d1bd5===_0x5e714a)break;else _0x3e5959['push'](_0x3e5959['shift']());}catch(_0x375d8f){_0x3e5959['push'](_0x3e5959['shift']());}}}(a5_0x1c5f,0xb1e40));function a5_0x43c6(_0x3fc424,_0x504710){_0x3fc424=_0x3fc424-0x1f2;const _0x1c5fe=a5_0x1c5f();let _0x43c6fe=_0x1c5fe[_0x3fc424];return _0x43c6fe;}import{promises as a5_0x5c5257}from'fs';import a5_0x528ebe from'path';import a5_0xca0716 from'os';import{normalizePath}from'./path-utils.js';import{logMcpStderr}from'./log-utils.js';async function parseRootUri(_0x4c42dc){const _0x84f0d3=a5_0x43c6;try{const _0x14d6bd=_0x4c42dc[_0x84f0d3(0x201)](_0x84f0d3(0x1f2))?_0x4c42dc[_0x84f0d3(0x203)](0x7):_0x4c42dc,_0x136494=_0x14d6bd[_0x84f0d3(0x201)]('~/')||_0x14d6bd==='~'?a5_0x528ebe[_0x84f0d3(0x1f8)](a5_0xca0716[_0x84f0d3(0x1f5)](),_0x14d6bd[_0x84f0d3(0x203)](0x1)):_0x14d6bd,_0x34c3ce=a5_0x528ebe[_0x84f0d3(0x200)](_0x136494),_0x3a3b88=await a5_0x5c5257['realpath'](_0x34c3ce);return normalizePath(_0x3a3b88);}catch{return null;}}function formatDirectoryError(_0x28ce4e,_0x3a78c8,_0x2827d0){const _0x129003=a5_0x43c6;if(_0x2827d0)return'Skipping\x20'+_0x2827d0+':\x20'+_0x28ce4e;const _0x5cf2d0=_0x3a78c8 instanceof Error?_0x3a78c8['message']:String(_0x3a78c8);return _0x129003(0x1fd)+_0x28ce4e+'\x20due\x20to\x20error:\x20'+_0x5cf2d0;}function a5_0x1c5f(){const _0x4343ec=['Skipping\x20invalid\x20directory:\x20','2cyiAeO','79105lpECHH','resolve','startsWith','non-directory\x20root','slice','stat','33LLcQIE','28GHIHwL','501319ANlJSt','78GrSnPe','11114072JAHqZO','file://','99NesWbL','push','homedir','uri','8911476iRVUXZ','join','167937NTHWkL','3028596gIITrO','779910XYgnCe','isDirectory'];a5_0x1c5f=function(){return _0x4343ec;};return a5_0x1c5f();}export async function getValidRootDirectories(_0x5ce7ae){const _0x27e4b9=a5_0x43c6,_0x2ab7b8=[];for(const _0x5c1cf4 of _0x5ce7ae){const _0x13aabe=await parseRootUri(_0x5c1cf4[_0x27e4b9(0x1f6)]);if(!_0x13aabe){logMcpStderr(formatDirectoryError(_0x5c1cf4[_0x27e4b9(0x1f6)],undefined,'invalid\x20path\x20or\x20inaccessible'));continue;}try{const _0x27156e=await a5_0x5c5257[_0x27e4b9(0x204)](_0x13aabe);_0x27156e[_0x27e4b9(0x1fc)]()?_0x2ab7b8[_0x27e4b9(0x1f4)](_0x13aabe):logMcpStderr(formatDirectoryError(_0x13aabe,undefined,_0x27e4b9(0x202)));}catch(_0x4d841c){logMcpStderr(formatDirectoryError(_0x13aabe,_0x4d841c));}}return _0x2ab7b8;}

@@ -1,1 +0,1 @@

const a6_0x4091e0=a6_0x9390;(function(_0x137e25,_0x299813){const _0x27b24b=a6_0x9390,_0x13a416=_0x137e25();while(!![]){try{const _0x182e04=-parseInt(_0x27b24b(0x172))/0x1*(parseInt(_0x27b24b(0x173))/0x2)+parseInt(_0x27b24b(0x170))/0x3*(-parseInt(_0x27b24b(0x176))/0x4)+-parseInt(_0x27b24b(0x16f))/0x5+parseInt(_0x27b24b(0x171))/0x6+-parseInt(_0x27b24b(0x17a))/0x7*(-parseInt(_0x27b24b(0x17b))/0x8)+parseInt(_0x27b24b(0x16e))/0x9*(parseInt(_0x27b24b(0x174))/0xa)+-parseInt(_0x27b24b(0x177))/0xb*(parseInt(_0x27b24b(0x179))/0xc);if(_0x182e04===_0x299813)break;else _0x13a416['push'](_0x13a416['shift']());}catch(_0x5a9098){_0x13a416['push'](_0x13a416['shift']());}}}(a6_0x4ad1,0x46648));export const TOOL_NAMES={'EDIT_FILE':a6_0x4091e0(0x178),'CODEBASE_SEARCH':a6_0x4091e0(0x16d),'GITHUB_CODEBASE_SEARCH':a6_0x4091e0(0x16c)};export const ALL_TOOL_NAMES=Object[a6_0x4091e0(0x175)](TOOL_NAMES);function a6_0x9390(_0x2892e1,_0x1fb98d){_0x2892e1=_0x2892e1-0x16c;const _0x4ad114=a6_0x4ad1();let _0x93902c=_0x4ad114[_0x2892e1];return _0x93902c;}function a6_0x4ad1(){const _0x43c8d2=['3154188KRXFcj','4702xSRliq','92DbqWlQ','465470ATNUDH','values','4MPEOSu','821249QgCKdJ','edit_file','36XJoCef','14aVBqBY','1616656YRxtkj','github_codebase_search','codebase_search','18gLbUaG','470660ckhzpm','600681vRgYTo'];a6_0x4ad1=function(){return _0x43c8d2;};return a6_0x4ad1();}export const KNOWN_TOOL_NAMES=new Set(ALL_TOOL_NAMES);
const a6_0x2b4d14=a6_0x5251;function a6_0x5251(_0xc7671a,_0x37ad9a){_0xc7671a=_0xc7671a-0xde;const _0x2ec54b=a6_0x2ec5();let _0x5251cf=_0x2ec54b[_0xc7671a];return _0x5251cf;}(function(_0x1df86f,_0x1d776e){const _0x17251d=a6_0x5251,_0x3eb4a7=_0x1df86f();while(!![]){try{const _0x2b6137=parseInt(_0x17251d(0xe2))/0x1*(-parseInt(_0x17251d(0xe8))/0x2)+parseInt(_0x17251d(0xdf))/0x3*(parseInt(_0x17251d(0xe3))/0x4)+-parseInt(_0x17251d(0xe0))/0x5+-parseInt(_0x17251d(0xe1))/0x6*(parseInt(_0x17251d(0xe7))/0x7)+-parseInt(_0x17251d(0xe4))/0x8+-parseInt(_0x17251d(0xe6))/0x9+parseInt(_0x17251d(0xe5))/0xa;if(_0x2b6137===_0x1d776e)break;else _0x3eb4a7['push'](_0x3eb4a7['shift']());}catch(_0x5c2d2a){_0x3eb4a7['push'](_0x3eb4a7['shift']());}}}(a6_0x2ec5,0x5d100));export const TOOL_NAMES={'EDIT_FILE':a6_0x2b4d14(0xde),'CODEBASE_SEARCH':a6_0x2b4d14(0xe9),'GITHUB_CODEBASE_SEARCH':'github_codebase_search'};function a6_0x2ec5(){const _0x2721c8=['edit_file','16971jCLuaH','582505gAdyui','6lehLBA','3386wKVzBr','424AhlZDU','4480160ZuNluc','17324030DCGzvZ','5946471IUVEPC','929663EEFggy','284qjOYnS','codebase_search'];a6_0x2ec5=function(){return _0x2721c8;};return a6_0x2ec5();}export const ALL_TOOL_NAMES=Object['values'](TOOL_NAMES);export const KNOWN_TOOL_NAMES=new Set(ALL_TOOL_NAMES);
{
"name": "@morphllm/morphmcp",
"version": "0.8.198",
"version": "0.8.199",
"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,0 +5,0 @@ "license": "MIT",