@morphllm/morphmcp 0.8.68 โ 0.8.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/path-utils.js +1 -1
- package/dist/path-validation.js +1 -1
- package/dist/roots-utils.js +1 -1
- package/dist/test-auto-update.d.ts +6 -0
- package/dist/test-auto-update.js +2 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const a0_0x35b91e=a0_0x4cda;(function(_0x34896a,_0x485bb1){const _0xa52b36=a0_0x4cda,_0x5c7016=_0x34896a();while(!![]){try{const _0x112bea=parseInt(_0xa52b36(0x297))/0x1*(parseInt(_0xa52b36(0x233))/0x2)+parseInt(_0xa52b36(0x2c7))/0x3+-parseInt(_0xa52b36(0x293))/0x4+-parseInt(_0xa52b36(0x220))/0x5*(-parseInt(_0xa52b36(0x283))/0x6)+parseInt(_0xa52b36(0x246))/0x7+parseInt(_0xa52b36(0x2a4))/0x8+-parseInt(_0xa52b36(0x22e))/0x9;if(_0x112bea===_0x485bb1)break;else _0x5c7016['push'](_0x5c7016['shift']());}catch(_0x1ad97a){_0x5c7016['push'](_0x5c7016['shift']());}}}(a0_0x3975,0x7435b));import{Server}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import{CallToolRequestSchema,ListToolsRequestSchema,RootsListChangedNotificationSchema}from'@modelcontextprotocol/sdk/types.js';import a0_0x2624d2 from'fs/promises';import a0_0x1bdf59 from'path';import a0_0x129b0b from'os';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';function a0_0x3975(){const _0x3ff2b0=['Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20','completed_with_file_errors','mcp-filesystem','timings','boolean','push','3277496ijdznE','\x20(new\x20file)','-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a','<file\x20path=\x22','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','\x22>\x0aError\x20reading\x20file:\x20','Workspace\x20mode\x20enabled:\x20Using\x20','Parent\x20directory\x20does\x20not\x20exist:\x20','Max\x20results\x20to\x20return','utf-8','sep','all','message','repoId','</file>','codebase_search','Found\x20','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','role','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','terminationReason','edit_file','grep\x20\x27','target_directories','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','toISOString','toFixed','unknown','catch','Error\x20running\x20fast\x20context\x20search:\x20','created','\x20results\x20in\x20','realpath','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','string','2708169IPvopt','content','Warning:\x20','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','Morph\x20Edit\x20','The\x20search\x20term\x20should\x20be\x20a\x20targeted\x20natural\x20language\x20query\x20based\x20on\x20what\x20you\x20are\x20trying\x20to\x20accomplish,\x20like\x20\x27Find\x20where\x20authentication\x20requests\x20are\x20handled\x20in\x20the\x20Express\x20routes\x27\x20or\x20\x27Modify\x20the\x20agentic\x20rollout\x20to\x20use\x20the\x20new\x20tokenizer\x20and\x20chat\x20template\x27\x20or\x20\x27Fix\x20the\x20bug\x20where\x20the\x20user\x20gets\x20redirected\x20from\x20the\x20/feed\x20page\x27.\x20','homedir','morph-v3-fast','Created\x20File','env','length','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','๐\x20Morph\x20Edit\x20Preview','Enabled\x20tools:\x20','\x20as\x20allowed\x20directory','Failed\x20to\x20read\x20file:\x20','endLine','Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20','ENABLE_WORKSPACE_MODE','Note:\x20The\x20files\x20and\x20line\x20ranges\x20returned\x20by\x20this\x20tool\x20may\x20be\x20some\x20of\x20the\x20ones\x20needed\x20to\x20complete\x20the\x20user\x27s\x20request,\x20but\x20you\x20should\x20be\x20careful\x20in\x20evaluating\x20the\x20relevance\x20of\x20the\x20results,\x20since\x20the\x20subagent\x20might\x20make\x20mistakes.\x20','https://morphllm.com/api/error-report','includes','Bearer\x20','normalize','MORPH_API_URL','metadata','search_string','Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]','ms:\x0a\x0a','\x20is\x20not\x20a\x20directory','startLine','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.','path','read\x20','Error:\x20','TimeoutError','finish','exit','name','inputSchema','list_directory\x20','IMPORTANT:\x20If\x20you\x20are\x20running\x20within\x20Cursor,\x20you\x20MUST\x20FIRST\x20use\x20another\x20tool\x20(like\x20search_replace)\x20to\x20add\x20exactly\x20one\x20empty\x20new\x20line\x20somewhere\x20in\x20the\x20file\x20before\x20using\x20this\x20tool.\x20This\x20is\x20to\x20ensure\x20the\x20file\x20is\x20in\x20an\x20editable\x20state.\x0a','[could\x20not\x20read\x20file:\x20','-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a','ENABLED_TOOLS','\x20chars)','post','\x0a</file>','instruction','-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a','argv','File\x20read\x20error:','every','timed\x20out','slice','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','false','For\x20deletions:\x0a','0.2.0','Successfully\x20','Failed\x20to\x20request\x20roots\x20from\x20client:','PWD','Warning:\x20Workspace\x20fallback\x20failed:\x20','package.json','stat','\x27\x20in\x20`','โก\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a','array','files','Natural\x20language\x20query\x20to\x20search\x20for\x20code','timeout','Preview\x20changes\x20without\x20applying\x20them.','468005llmTHR','FileReadError','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','errors','Use\x20dryRun=false\x20to\x20','data','MORPH_WARP_GREP_TIMEOUT','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','getClientCapabilities','-\x20Grepped\x20\x27','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','repeat','19515519lxjSOx','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','lines','stats','-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a','1783822SRlNVf','-\x20Listed\x20directory\x20`','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','repo_path','warpgrep_codebase_search','dryRun','Morph\x20FastApply\x20failed\x20without\x20error\x20message','object','map','success','-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','stringify','default','requiresApiKey','messages','Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20','dirname','completed','1401267iqdnfy','cwd','readFile','create\x20this\x20file','.cursor','resolve','Specific\x20commit\x20hash\x20to\x20search','applied\x20edits\x20to','A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20','Unknown\x20error','trim','optional','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','-\x20Read\x20file\x20`','-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a','sk-','โก\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','๐ฏ\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a','query','access','-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a','basename','roots','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','substring','limit','Relevant\x20context\x20found:','\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)','constructor','connect','ENOENT','code_edit','results','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','Benefits:\x0a','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','isDirectory','.vscode','error','assistant','filter','diff\x0a','searchTimeMs','isArray','Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for','No\x20valid\x20root\x20directories\x20provided\x20by\x20client','filepath','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a','split','\x20valid\x20directories','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','source','\x20\x20\x20','stack','safeParse','...','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all','24kHVQhL','code','toLowerCase','%\x20match)\x0a','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','morph-','ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','โ\x20Morph\x20Edit\x20Failed:\x20','floor','UnknownError','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27','join','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','text','listRoots','538080KpcRDh','startsWith','match','๐ฏ\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a','1AyVkxd','This\x20tool\x20invokes\x20a\x20subagent\x20that\x20runs\x20parallel\x20grep\x20and\x20readfile\x20calls\x20over\x20multiple\x20turns\x20to\x20locate\x20line\x20ranges\x20and\x20files\x20which\x20might\x20be\x20relevant\x20to\x20the\x20request.\x20','describe','Invalid\x20arguments:\x20','Fallback:\x20Using\x20workspace\x20root\x20','morph-warp-grep-v1-1111v0','rerankScore'];a0_0x3975=function(){return _0x3ff2b0;};return a0_0x3975();}import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider}from'@morphllm/morphsdk/tools/warp-grep';import{executeCodebaseSearch}from'@morphllm/morphsdk/tools/codebase-search';import a0_0x4bb716 from'axios';function fixPathRepetition(_0x45bcd3){const _0x391639=a0_0x4cda,_0x8cc400=_0x45bcd3[_0x391639(0x279)](a0_0x1bdf59[_0x391639(0x2ae)])[_0x391639(0x26f)](Boolean);if(_0x8cc400[_0x391639(0x1e1)]<0x2)return null;for(let _0x266d59=Math[_0x391639(0x28c)](_0x8cc400['length']/0x2);_0x266d59>=0x1;_0x266d59--){for(let _0xaea9ee=0x0;_0xaea9ee<=_0x8cc400[_0x391639(0x1e1)]-0x2*_0x266d59;_0xaea9ee++){const _0x11e12a=_0x8cc400[_0x391639(0x20d)](_0xaea9ee,_0xaea9ee+_0x266d59),_0x5428e1=_0x8cc400[_0x391639(0x20d)](_0xaea9ee+_0x266d59,_0xaea9ee+0x2*_0x266d59);if(_0x11e12a[_0x391639(0x20b)]((_0x582351,_0x1322e9)=>_0x582351===_0x5428e1[_0x1322e9])){const _0x4917a3=[..._0x8cc400[_0x391639(0x20d)](0x0,_0xaea9ee),..._0x8cc400[_0x391639(0x20d)](_0xaea9ee+_0x266d59)];return a0_0x1bdf59[_0x391639(0x2ae)]+_0x4917a3[_0x391639(0x28f)](a0_0x1bdf59[_0x391639(0x2ae)]);}}}return null;}const args=process[a0_0x35b91e(0x209)]['slice'](0x2),ALL_TOOLS=[a0_0x35b91e(0x2b9),'warpgrep_codebase_search',a0_0x35b91e(0x2b3)],DEFAULT_TOOLS=[a0_0x35b91e(0x2b9),a0_0x35b91e(0x237)],ENABLED_TOOLS=process['env'][a0_0x35b91e(0x203)]?process[a0_0x35b91e(0x1e0)]['ENABLED_TOOLS']==='all'?ALL_TOOLS:process[a0_0x35b91e(0x1e0)][a0_0x35b91e(0x203)][a0_0x35b91e(0x279)](',')['map'](_0x24a7c0=>_0x24a7c0[a0_0x35b91e(0x250)]()):DEFAULT_TOOLS;console[a0_0x35b91e(0x26d)](a0_0x35b91e(0x1e4)+ENABLED_TOOLS[a0_0x35b91e(0x28f)](',\x20'));function a0_0x4cda(_0x1816ee,_0x4107da){_0x1816ee=_0x1816ee-0x1de;const _0x3975ac=a0_0x3975();let _0x4cdaaf=_0x3975ac[_0x1816ee];return _0x4cdaaf;}const WORKSPACE_ROOT=process[a0_0x35b91e(0x1e0)]['WORKSPACE_ROOT']||process[a0_0x35b91e(0x1e0)][a0_0x35b91e(0x215)]||process[a0_0x35b91e(0x247)](),ENABLE_WORKSPACE_MODE=process['env'][a0_0x35b91e(0x1e9)]!==a0_0x35b91e(0x210),MORPH_API_KEY=process[a0_0x35b91e(0x1e0)]['MORPH_API_KEY'],MORPH_API_URL=process[a0_0x35b91e(0x1e0)][a0_0x35b91e(0x1ef)],MORPH_WARP_GREP_TIMEOUT=process[a0_0x35b91e(0x1e0)]['MORPH_WARP_GREP_TIMEOUT']?parseInt(process[a0_0x35b91e(0x1e0)][a0_0x35b91e(0x226)],0xa):undefined;MORPH_API_KEY&&!MORPH_API_KEY[a0_0x35b91e(0x294)](a0_0x35b91e(0x255))&&!MORPH_API_KEY[a0_0x35b91e(0x294)](a0_0x35b91e(0x288))&&console[a0_0x35b91e(0x26d)](a0_0x35b91e(0x28e));async function reportMorphError(_0x36785c){const _0x8db3bf=a0_0x35b91e;try{await a0_0x4bb716[_0x8db3bf(0x205)](_0x8db3bf(0x1eb),{..._0x36785c,'timestamp':new Date()[_0x8db3bf(0x2bd)](),'source':_0x36785c[_0x8db3bf(0x27c)]||_0x8db3bf(0x2a0)},{'timeout':0x1388,'headers':{'Content-Type':'application/json','Authorization':_0x8db3bf(0x1ed)+MORPH_API_KEY}});}catch{}}args['length']===0x0&&!ENABLE_WORKSPACE_MODE&&(console[a0_0x35b91e(0x26d)](a0_0x35b91e(0x1f2)),console[a0_0x35b91e(0x26d)]('Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:'),console['error']('\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)'),console[a0_0x35b91e(0x26d)](a0_0x35b91e(0x281)),console['error'](a0_0x35b91e(0x262)),console[a0_0x35b91e(0x26d)](a0_0x35b91e(0x252)));function normalizePath(_0x3b3858){const _0x21fa28=a0_0x35b91e;return a0_0x1bdf59[_0x21fa28(0x1ee)](_0x3b3858);}function expandHome(_0x5312a7){const _0x5ef035=a0_0x35b91e;if(_0x5312a7[_0x5ef035(0x294)]('~/')||_0x5312a7==='~')return a0_0x1bdf59[_0x5ef035(0x28f)](a0_0x129b0b[_0x5ef035(0x2cd)](),_0x5312a7['slice'](0x1));return _0x5312a7;}let allowedDirectories=await Promise[a0_0x35b91e(0x2af)](args[a0_0x35b91e(0x23b)](async _0xb11a02=>{const _0x98adc=a0_0x35b91e,_0x30b098=expandHome(_0xb11a02),_0x37e5d2=a0_0x1bdf59['resolve'](_0x30b098);try{const _0x377d7f=await a0_0x2624d2[_0x98adc(0x2c4)](_0x37e5d2);return normalizePath(_0x377d7f);}catch(_0x1ff26e){return normalizePath(_0x37e5d2);}}));if(ENABLE_WORKSPACE_MODE&&args[a0_0x35b91e(0x1e1)]===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories['push'](workspaceDir),console[a0_0x35b91e(0x26d)](a0_0x35b91e(0x2aa)+workspaceDir+a0_0x35b91e(0x1e5)));}catch(a0_0x3c7396){console[a0_0x35b91e(0x26d)](a0_0x35b91e(0x243)+a0_0x3c7396);}async function detectWorkspaceRoot(_0xb74379){const _0x177f7d=a0_0x35b91e;let _0x4f76f4=a0_0x1bdf59['resolve'](_0xb74379);const _0x219c5=['.git',_0x177f7d(0x26c),_0x177f7d(0x217),'Cargo.toml','pyproject.toml','go.mod',_0x177f7d(0x24a),'tsconfig.json','composer.json'];while(_0x4f76f4!==a0_0x1bdf59[_0x177f7d(0x244)](_0x4f76f4)){for(const _0x543b5d of _0x219c5){const _0x5e2205=a0_0x1bdf59[_0x177f7d(0x28f)](_0x4f76f4,_0x543b5d);try{return await a0_0x2624d2[_0x177f7d(0x259)](_0x5e2205),normalizePath(_0x4f76f4);}catch{}}_0x4f76f4=a0_0x1bdf59['dirname'](_0x4f76f4);}return normalizePath(_0xb74379);}await Promise[a0_0x35b91e(0x2af)](args[a0_0x35b91e(0x23b)](async _0x5bc7fa=>{const _0x23cccd=a0_0x35b91e;try{const _0x139f8a=await a0_0x2624d2[_0x23cccd(0x218)](expandHome(_0x5bc7fa));!_0x139f8a[_0x23cccd(0x26b)]()&&(console[_0x23cccd(0x26d)](_0x23cccd(0x1f9)+_0x5bc7fa+_0x23cccd(0x1f4)),process['exit'](0x1));}catch(_0x5911ca){console[_0x23cccd(0x26d)]('Error\x20accessing\x20directory\x20'+_0x5bc7fa+':',_0x5911ca),process['exit'](0x1);}}));async function validatePath(_0x18dd8d){const _0x10b245=a0_0x35b91e,_0x359d6e=expandHome(_0x18dd8d),_0x94fa0e=a0_0x1bdf59[_0x10b245(0x24b)](_0x359d6e);try{const _0x3a1eff=await a0_0x2624d2[_0x10b245(0x2c4)](_0x94fa0e);return _0x3a1eff;}catch(_0x13a2a8){if(_0x13a2a8[_0x10b245(0x284)]===_0x10b245(0x265)){const _0x50cc51=a0_0x1bdf59[_0x10b245(0x244)](_0x94fa0e);try{const _0x35ef61=await a0_0x2624d2['realpath'](_0x50cc51);return a0_0x1bdf59[_0x10b245(0x28f)](_0x35ef61,a0_0x1bdf59['basename'](_0x94fa0e));}catch{throw new Error(_0x10b245(0x2ab)+_0x50cc51);}}throw _0x13a2a8;}}const MorphEditFileArgsSchema=z[a0_0x35b91e(0x23a)]({'path':z[a0_0x35b91e(0x2c6)](),'code_edit':z['string']()[a0_0x35b91e(0x299)](a0_0x35b91e(0x2a8)),'instruction':z[a0_0x35b91e(0x2c6)]()[a0_0x35b91e(0x299)](a0_0x35b91e(0x227)),'dryRun':z[a0_0x35b91e(0x2a2)]()[a0_0x35b91e(0x240)](![])['describe'](a0_0x35b91e(0x21f))}),WarpGrepArgsSchema=z[a0_0x35b91e(0x23a)]({'search_string':z[a0_0x35b91e(0x2c6)]()[a0_0x35b91e(0x299)](a0_0x35b91e(0x273)),'repo_path':z[a0_0x35b91e(0x2c6)]()['describe'](a0_0x35b91e(0x2ca))}),CodebaseSearchArgsSchema=z[a0_0x35b91e(0x23a)]({'query':z['string']()[a0_0x35b91e(0x299)](a0_0x35b91e(0x21d)),'repoId':z['string']()[a0_0x35b91e(0x299)]('Repository\x20identifier'),'branch':z[a0_0x35b91e(0x2c6)]()[a0_0x35b91e(0x251)]()[a0_0x35b91e(0x299)](a0_0x35b91e(0x268)),'commitHash':z[a0_0x35b91e(0x2c6)]()[a0_0x35b91e(0x251)]()[a0_0x35b91e(0x299)](a0_0x35b91e(0x24c)),'target_directories':z[a0_0x35b91e(0x21b)](z['string']())[a0_0x35b91e(0x240)]([])[a0_0x35b91e(0x299)](a0_0x35b91e(0x282)),'limit':z['number']()[a0_0x35b91e(0x251)]()['default'](0xa)[a0_0x35b91e(0x299)](a0_0x35b91e(0x2ac))}),server=new Server({'name':'morph-mcp','version':a0_0x35b91e(0x212)},{'capabilities':{'tools':{}}});server['setRequestHandler'](ListToolsRequestSchema,async()=>{const _0xf99664=a0_0x35b91e,_0x5946cd=[{'name':_0xf99664(0x2b9),'description':'**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a'+_0xf99664(0x256)+_0xf99664(0x296)+'IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a'+_0xf99664(0x269)+_0xf99664(0x202)+_0xf99664(0x22b)+_0xf99664(0x277)+_0xf99664(0x2b7)+'Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a'+_0xf99664(0x289)+_0xf99664(0x25e)+_0xf99664(0x211)+_0xf99664(0x22f)+_0xf99664(0x254)+'Rules:\x0a'+_0xf99664(0x287)+_0xf99664(0x228)+_0xf99664(0x2c5)+_0xf99664(0x222)+_0xf99664(0x20e)+_0xf99664(0x232)+_0xf99664(0x200),'inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':'warpgrep_codebase_search','description':_0xf99664(0x24e)+_0xf99664(0x298)+_0xf99664(0x2cc)+_0xf99664(0x25d)+'You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.'+_0xf99664(0x1ea)+_0xf99664(0x2bc)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':_0xf99664(0x2b3),'description':_0xf99664(0x278)+_0xf99664(0x21a)+_0xf99664(0x257)+'Benefits:\x0a'+_0xf99664(0x25a)+_0xf99664(0x208)+_0xf99664(0x2a6)+_0xf99664(0x23d)+_0xf99664(0x29e)+_0xf99664(0x1e8)+_0xf99664(0x27b),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x497b7d=_0x5946cd[_0xf99664(0x26f)](_0x57ac26=>{const _0x346854=_0xf99664;if(!ENABLED_TOOLS[_0x346854(0x1ec)](_0x57ac26['name']))return![];if(_0x346854(0x241)in _0x57ac26&&_0x57ac26['requiresApiKey']&&!MORPH_API_KEY)return console['error'](_0x346854(0x2c9)+_0x57ac26['name']+_0x346854(0x28a)),![];return!![];});return{'tools':_0x497b7d['map'](_0x30fb98=>({'name':_0x30fb98['name'],'description':_0x30fb98['description'],'inputSchema':_0x30fb98[_0xf99664(0x1fe)]}))};}),server['setRequestHandler'](CallToolRequestSchema,async _0x53b374=>{const _0x5c39dc=a0_0x35b91e;try{const {name:_0x24062b,arguments:_0x298527}=_0x53b374['params'];switch(_0x24062b){case'edit_file':{const _0x58a039=MorphEditFileArgsSchema[_0x5c39dc(0x27f)](_0x298527);if(!_0x58a039[_0x5c39dc(0x23c)])throw new Error('Invalid\x20arguments\x20for\x20morph_edit_file:\x20'+_0x58a039[_0x5c39dc(0x26d)]);const _0x36fe83=await validatePath(_0x58a039[_0x5c39dc(0x225)][_0x5c39dc(0x1f7)]);let _0x447502=null,_0xd36d9e=!![],_0x4239a6=null;try{_0x447502=await a0_0x2624d2[_0x5c39dc(0x248)](_0x36fe83,_0x5c39dc(0x2ad));}catch(_0x105d06){const _0xd24957=_0x105d06[_0x5c39dc(0x284)];_0xd24957===_0x5c39dc(0x265)?(_0xd36d9e=![],_0x447502=''):(_0x4239a6=_0x5c39dc(0x1e6)+(_0xd24957||_0x5c39dc(0x2bf))+'\x20-\x20'+(_0x105d06 instanceof Error?_0x105d06[_0x5c39dc(0x2b0)]:String(_0x105d06)),console[_0x5c39dc(0x26d)](_0x5c39dc(0x2c9)+_0x4239a6));}try{const _0x563be7=MORPH_API_KEY;if(!_0x563be7)throw new Error(_0x5c39dc(0x23e));const _0x2004fe=a0_0x1bdf59[_0x5c39dc(0x244)](_0x36fe83),_0x25b860=a0_0x1bdf59[_0x5c39dc(0x25b)](_0x36fe83),_0x1c0e2d=await executeEditFile({'target_filepath':_0x25b860,'code_edit':_0x58a039[_0x5c39dc(0x225)]['code_edit'],'instructions':_0x58a039['data'][_0x5c39dc(0x207)]},{'morphApiKey':_0x563be7,'morphApiUrl':MORPH_API_URL,'baseDir':_0x2004fe,'autoWrite':!_0x58a039[_0x5c39dc(0x225)][_0x5c39dc(0x238)],'generateUdiff':!![],'debug':![]});if(!_0x1c0e2d[_0x5c39dc(0x23c)])throw new Error(_0x1c0e2d['error']||_0x5c39dc(0x239));const _0x2b0f84=_0x1c0e2d['udiff']||'';let _0x3b1eff=0x3;while(_0x2b0f84['includes']('`'[_0x5c39dc(0x22d)](_0x3b1eff))){_0x3b1eff++;}const _0x33b021='`'[_0x5c39dc(0x22d)](_0x3b1eff)+_0x5c39dc(0x270)+_0x2b0f84+'`'['repeat'](_0x3b1eff)+'\x0a\x0a';if(_0x58a039[_0x5c39dc(0x225)][_0x5c39dc(0x238)])return{'content':[{'type':_0x5c39dc(0x291),'text':_0x5c39dc(0x1e3)+(_0xd36d9e?'':_0x5c39dc(0x2a5))+':\x20'+_0x58a039[_0x5c39dc(0x225)]['instruction']+'\x0a\x0a'+_0x33b021+_0x5c39dc(0x224)+(_0xd36d9e?'apply\x20these\x20changes':_0x5c39dc(0x249))+'.'}]};return{'content':[{'type':_0x5c39dc(0x291),'text':_0x5c39dc(0x2cb)+(_0xd36d9e?'Applied':_0x5c39dc(0x1df))+':\x20'+_0x58a039['data'][_0x5c39dc(0x207)]+'\x0a\x0a'+_0x33b021+_0x5c39dc(0x213)+(_0xd36d9e?_0x5c39dc(0x24d):_0x5c39dc(0x2c2))+'\x20'+_0x58a039['data'][_0x5c39dc(0x1f7)]}]};}catch(_0x21a29e){const _0x452506=_0x21a29e instanceof Error?_0x21a29e[_0x5c39dc(0x2b0)]:String(_0x21a29e);return reportMorphError({'error_message':_0x452506,'error_type':_0x21a29e instanceof Error?_0x21a29e[_0x5c39dc(0x263)][_0x5c39dc(0x1fd)]:_0x5c39dc(0x28d),'context':{'tool':_0x5c39dc(0x2b9),'file_path':_0x58a039['data']['path'],'validated_path':_0x36fe83,'instruction':_0x58a039[_0x5c39dc(0x225)][_0x5c39dc(0x207)],'model':_0x5c39dc(0x1de),'dry_run':_0x58a039[_0x5c39dc(0x225)][_0x5c39dc(0x238)],'file_exists':_0xd36d9e,'file_read_error':_0x4239a6,'file_readable':_0x447502!==null,'request_content':{'path':_0x58a039['data']['path'],'code_edit':_0x58a039[_0x5c39dc(0x225)][_0x5c39dc(0x266)],'instruction':_0x58a039[_0x5c39dc(0x225)]['instruction'],'original_code':_0x447502!==null?_0x447502[_0x5c39dc(0x1e1)]>0xc350?_0x447502[_0x5c39dc(0x25f)](0x0,0xc350)+'\x0a...\x20(truncated,\x20total:\x20'+_0x447502[_0x5c39dc(0x1e1)]+_0x5c39dc(0x204):_0x447502:_0x5c39dc(0x201)+(_0x4239a6||'unknown\x20error')+']','original_code_length':_0x447502?.['length']??0x0,'model':_0x5c39dc(0x1de),'dry_run':_0x58a039['data']['dryRun']}},'stack_trace':_0x21a29e instanceof Error?_0x21a29e[_0x5c39dc(0x27e)]:undefined,'source':'mcp-filesystem'})[_0x5c39dc(0x2c0)](()=>{}),{'content':[{'type':_0x5c39dc(0x291),'text':_0x5c39dc(0x28b)+_0x452506}],'isError':!![]};}}case _0x5c39dc(0x237):{const _0x228e93=WarpGrepArgsSchema['safeParse'](_0x298527);if(!_0x228e93[_0x5c39dc(0x23c)])return{'content':[{'type':_0x5c39dc(0x291),'text':_0x5c39dc(0x29a)+_0x228e93[_0x5c39dc(0x26d)]}],'isError':!![]};const _0x4e6de1=_0x33df56=>{const _0x594b89=_0x5c39dc,_0x3a98b2=[];for(const _0x1a8a6a of _0x33df56||[]){const _0xf0fa57=_0x1a8a6a[_0x594b89(0x2b6)],_0x31a0ef=_0x1a8a6a[_0x594b89(0x2c8)];if(_0xf0fa57===_0x594b89(0x26e)&&_0x31a0ef){const _0x2b57f7=_0x31a0ef['split']('\x0a')[_0x594b89(0x26f)](_0x10f418=>_0x10f418[_0x594b89(0x250)]());for(const _0x167669 of _0x2b57f7){const _0x4820a0=_0x167669[_0x594b89(0x295)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x4820a0){_0x3a98b2[_0x594b89(0x2a3)](_0x594b89(0x2ba)+_0x4820a0[0x1]+'\x27\x20'+_0x4820a0[0x2]);continue;}const _0x352a43=_0x167669['match'](/^read\s+(.+)$/);if(_0x352a43){_0x3a98b2['push'](_0x594b89(0x1f8)+_0x352a43[0x1]);continue;}const _0x4f486c=_0x167669[_0x594b89(0x295)](/^list_directory\s+(.+)$/);if(_0x4f486c){_0x3a98b2[_0x594b89(0x2a3)](_0x594b89(0x1ff)+_0x4f486c[0x1]);continue;}}}}return _0x3a98b2;};try{const _0x553b5b=a0_0x1bdf59['resolve'](_0x228e93['data'][_0x5c39dc(0x236)]),_0x2434f4=new LocalRipgrepProvider(_0x553b5b),_0x272bf9=await runWarpGrep({'query':_0x228e93[_0x5c39dc(0x225)][_0x5c39dc(0x1f1)],'repoRoot':_0x553b5b,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x2434f4});let _0x559046='';if(_0x272bf9[_0x5c39dc(0x2b8)]===_0x5c39dc(0x245)&&_0x272bf9[_0x5c39dc(0x1fb)]?.[_0x5c39dc(0x1f0)]?.[_0x5c39dc(0x21c)]){const _0x3aaee5=_0x272bf9[_0x5c39dc(0x1fb)][_0x5c39dc(0x1f0)][_0x5c39dc(0x21c)],_0xbd9998=[],_0x36d98b=[_0x5c39dc(0x26a)];for(const _0x1d66ec of _0x272bf9['messages']){const _0x4f61dc=_0x1d66ec[_0x5c39dc(0x2b6)],_0x3b15ae=_0x1d66ec[_0x5c39dc(0x2c8)];if(_0x4f61dc===_0x5c39dc(0x26e)&&_0x3b15ae){const _0x5252bb=_0x3b15ae[_0x5c39dc(0x279)]('\x0a')[_0x5c39dc(0x26f)](_0x58764b=>_0x58764b[_0x5c39dc(0x250)]());for(const _0xe1874d of _0x5252bb){const _0x43f7e6=_0xe1874d[_0x5c39dc(0x295)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x43f7e6){_0x36d98b[_0x5c39dc(0x2a3)](_0x5c39dc(0x22a)+_0x43f7e6[0x1]+_0x5c39dc(0x219)+_0x43f7e6[0x2]+'`');continue;}const _0x498ef0=_0xe1874d[_0x5c39dc(0x295)](/^read\s+(.+)$/);if(_0x498ef0){_0x36d98b['push'](_0x5c39dc(0x253)+_0x498ef0[0x1]+'`');continue;}const _0x284656=_0xe1874d[_0x5c39dc(0x295)](/^list_directory\s+(.+)$/);if(_0x284656){_0x36d98b[_0x5c39dc(0x2a3)](_0x5c39dc(0x234)+_0x284656[0x1]+'`');continue;}}}}_0xbd9998[_0x5c39dc(0x2a3)](_0x36d98b[_0x5c39dc(0x28f)]('\x0a'));const _0x1508ea=['',_0x5c39dc(0x261)];for(const _0x586bc0 of _0x3aaee5){if(_0x586bc0['lines']==='*')_0x1508ea[_0x5c39dc(0x2a3)]('-\x20'+_0x586bc0[_0x5c39dc(0x1f7)]+':*');else{if(Array[_0x5c39dc(0x272)](_0x586bc0[_0x5c39dc(0x230)])){const _0xc8a319=_0x586bc0[_0x5c39dc(0x230)]['map'](([_0x1214fc,_0x3411a2])=>{if(_0x1214fc===_0x3411a2)return''+_0x1214fc;return _0x1214fc+'-'+_0x3411a2;});_0x1508ea[_0x5c39dc(0x2a3)]('-\x20'+_0x586bc0[_0x5c39dc(0x1f7)]+':'+_0xc8a319[_0x5c39dc(0x28f)](','));}else _0x1508ea[_0x5c39dc(0x2a3)]('-\x20'+_0x586bc0[_0x5c39dc(0x1f7)]+':*');}}_0x1508ea[_0x5c39dc(0x2a3)](''),_0xbd9998[_0x5c39dc(0x2a3)](_0x1508ea[_0x5c39dc(0x28f)]('\x0a')),_0xbd9998[_0x5c39dc(0x2a3)]('Here\x20is\x20the\x20content\x20of\x20files:\x0a');const _0x2c45a5=[];for(const _0x5877f0 of _0x3aaee5){let _0x3f8824=a0_0x1bdf59['resolve'](_0x228e93[_0x5c39dc(0x225)][_0x5c39dc(0x236)],_0x5877f0[_0x5c39dc(0x1f7)]),_0x9d331b=null,_0x19dfe1=null;try{_0x9d331b=await a0_0x2624d2[_0x5c39dc(0x248)](_0x3f8824,{'encoding':_0x5c39dc(0x2ad)});}catch(_0x1bd9f3){const _0x44fe68=fixPathRepetition(_0x3f8824);if(_0x44fe68)try{_0x9d331b=await a0_0x2624d2[_0x5c39dc(0x248)](_0x44fe68,{'encoding':_0x5c39dc(0x2ad)}),_0x3f8824=_0x44fe68;}catch{_0x19dfe1=_0x1bd9f3 instanceof Error?_0x1bd9f3:new Error(String(_0x1bd9f3));}else _0x19dfe1=_0x1bd9f3 instanceof Error?_0x1bd9f3:new Error(String(_0x1bd9f3));}if(_0x9d331b!==null){const _0x4f2be5=_0x9d331b[_0x5c39dc(0x279)](/\r?\n/),_0x2e75b3=[_0x5c39dc(0x2a7)+_0x5877f0[_0x5c39dc(0x1f7)]+'\x22>'];if(_0x5877f0[_0x5c39dc(0x230)]==='*'||!Array[_0x5c39dc(0x272)](_0x5877f0[_0x5c39dc(0x230)]))for(let _0x1190e7=0x1;_0x1190e7<=_0x4f2be5[_0x5c39dc(0x1e1)];_0x1190e7++){const _0x3a13a4=_0x4f2be5[_0x1190e7-0x1];_0x2e75b3[_0x5c39dc(0x2a3)](_0x1190e7+'|\x20'+_0x3a13a4);}else for(const [_0x1f8e30,_0x1865c4]of _0x5877f0[_0x5c39dc(0x230)]){_0x2e75b3[_0x5c39dc(0x1e1)]>0x1&&_0x2e75b3[_0x5c39dc(0x2a3)]('');for(let _0x51e474=_0x1f8e30;_0x51e474<=_0x1865c4&&_0x51e474<=_0x4f2be5[_0x5c39dc(0x1e1)];_0x51e474++){const _0x2a052d=_0x4f2be5[_0x51e474-0x1];_0x2e75b3[_0x5c39dc(0x2a3)](_0x51e474+'|\x20'+_0x2a052d);}}_0x2e75b3['push'](_0x5c39dc(0x2b2)),_0x2c45a5[_0x5c39dc(0x2a3)](_0x2e75b3['join']('\x0a'));}else _0x2c45a5[_0x5c39dc(0x2a3)](_0x5c39dc(0x2a7)+_0x5877f0[_0x5c39dc(0x1f7)]+_0x5c39dc(0x2a9)+(_0x19dfe1?.['message']||_0x5c39dc(0x24f))+_0x5c39dc(0x206));}_0xbd9998[_0x5c39dc(0x2a3)](_0x2c45a5[_0x5c39dc(0x28f)]('\x0a\x0a')),_0x559046=_0xbd9998[_0x5c39dc(0x28f)]('\x0a');const _0x19ba17=_0x272bf9[_0x5c39dc(0x223)]?.[_0x5c39dc(0x26f)](_0x3a4743=>_0x3a4743['message']?.['startsWith'](_0x5c39dc(0x20a)))||[];if(_0x19ba17['length']>0x0){const _0xaa699a=_0x19ba17[_0x5c39dc(0x23b)](_0x3975bd=>_0x3975bd[_0x5c39dc(0x2b0)])[_0x5c39dc(0x28f)](';\x20');reportMorphError({'error_message':_0xaa699a,'error_type':_0x5c39dc(0x221),'context':{'tool':_0x5c39dc(0x237),'repo_path':_0x228e93[_0x5c39dc(0x225)]['repo_path'],'query':_0x228e93[_0x5c39dc(0x225)][_0x5c39dc(0x1f1)],'model':_0x5c39dc(0x29c),'termination_reason':_0x5c39dc(0x29f),'error_count':_0x19ba17[_0x5c39dc(0x1e1)],'is_timeout':![],'timings':_0x272bf9['timings'],'files_attempted':_0x3aaee5[_0x5c39dc(0x23b)](_0x2dd68a=>({'path':_0x2dd68a[_0x5c39dc(0x1f7)],'lines':_0x2dd68a[_0x5c39dc(0x230)]})),'tool_calls':_0x4e6de1(_0x272bf9['messages']),'messages':_0x272bf9[_0x5c39dc(0x242)]?.[_0x5c39dc(0x23b)](_0x2c9ca8=>({'role':_0x2c9ca8[_0x5c39dc(0x2b6)],'content':_0x2c9ca8[_0x5c39dc(0x2c8)]})),'request_content':{'query':_0x228e93[_0x5c39dc(0x225)][_0x5c39dc(0x1f1)],'repo_path':_0x228e93[_0x5c39dc(0x225)]['repo_path'],'repoRoot':a0_0x1bdf59[_0x5c39dc(0x24b)](_0x228e93['data']['repo_path']),'model':_0x5c39dc(0x29c)}},'source':_0x5c39dc(0x2a0)})[_0x5c39dc(0x2c0)](()=>{});}}else{if(_0x272bf9[_0x5c39dc(0x2b8)]==='terminated'&&_0x272bf9[_0x5c39dc(0x223)][_0x5c39dc(0x1e1)]>0x0){const _0x2ba7c2=_0x272bf9[_0x5c39dc(0x223)]['map'](_0x33cb54=>_0x33cb54[_0x5c39dc(0x2b0)])[_0x5c39dc(0x28f)](';\x20');_0x559046='Error:\x20'+_0x2ba7c2;const _0x33e38c=_0x2ba7c2[_0x5c39dc(0x285)]()[_0x5c39dc(0x1ec)](_0x5c39dc(0x21e))||_0x2ba7c2[_0x5c39dc(0x285)]()[_0x5c39dc(0x1ec)](_0x5c39dc(0x20c))||_0x2ba7c2['toLowerCase']()[_0x5c39dc(0x1ec)]('etimedout'),_0x2ae829=_0x272bf9[_0x5c39dc(0x1fb)]?.['metadata']?.[_0x5c39dc(0x21c)],_0x168dce=_0x272bf9[_0x5c39dc(0x223)][0x0];reportMorphError({'error_message':_0x2ba7c2,'error_type':_0x33e38c?_0x5c39dc(0x1fa):_0x168dce?.[_0x5c39dc(0x263)]?.['name']||'WarpGrepError','context':{'tool':_0x5c39dc(0x237),'repo_path':_0x228e93[_0x5c39dc(0x225)][_0x5c39dc(0x236)],'query':_0x228e93['data'][_0x5c39dc(0x1f1)],'model':_0x5c39dc(0x29c),'termination_reason':_0x272bf9[_0x5c39dc(0x2b8)],'error_count':_0x272bf9['errors']['length'],'is_timeout':_0x33e38c,'timings':_0x272bf9[_0x5c39dc(0x2a1)],'files_attempted':_0x2ae829?.[_0x5c39dc(0x23b)](_0x32dc2f=>({'path':_0x32dc2f[_0x5c39dc(0x1f7)],'lines':_0x32dc2f[_0x5c39dc(0x230)]})),'tool_calls':_0x4e6de1(_0x272bf9['messages']),'messages':_0x272bf9[_0x5c39dc(0x242)]?.[_0x5c39dc(0x23b)](_0x30596b=>({'role':_0x30596b[_0x5c39dc(0x2b6)],'content':_0x30596b[_0x5c39dc(0x2c8)]})),'request_content':{'query':_0x228e93['data'][_0x5c39dc(0x1f1)],'repo_path':_0x228e93[_0x5c39dc(0x225)][_0x5c39dc(0x236)],'repoRoot':a0_0x1bdf59[_0x5c39dc(0x24b)](_0x228e93[_0x5c39dc(0x225)][_0x5c39dc(0x236)]),'model':'morph-warp-grep-v1-1111v0'}},'stack_trace':_0x168dce?.['stack']||undefined,'source':'mcp-filesystem'})[_0x5c39dc(0x2c0)](()=>{});}else _0x559046=_0x5c39dc(0x22c);}return{'content':[{'type':_0x5c39dc(0x291),'text':_0x559046}]};}catch(_0x5c0901){const _0x52ed0b=_0x5c0901 instanceof Error?_0x5c0901[_0x5c39dc(0x2b0)]:String(_0x5c0901),_0x2ab7a2=_0x52ed0b[_0x5c39dc(0x285)]()[_0x5c39dc(0x1ec)]('timeout')||_0x52ed0b[_0x5c39dc(0x285)]()[_0x5c39dc(0x1ec)](_0x5c39dc(0x20c))||_0x52ed0b['toLowerCase']()[_0x5c39dc(0x1ec)]('etimedout')||_0x5c0901 instanceof Error&&_0x5c0901['name']==='TimeoutError';return reportMorphError({'error_message':_0x52ed0b,'error_type':_0x2ab7a2?'TimeoutError':_0x5c0901 instanceof Error?_0x5c0901[_0x5c39dc(0x263)][_0x5c39dc(0x1fd)]:_0x5c39dc(0x28d),'context':{'tool':_0x5c39dc(0x237),'repo_path':_0x228e93[_0x5c39dc(0x225)][_0x5c39dc(0x236)],'query':_0x228e93['data'][_0x5c39dc(0x1f1)],'model':_0x5c39dc(0x29c),'is_timeout':_0x2ab7a2,'exception_phase':'runWarpGrep_call','request_content':{'query':_0x228e93[_0x5c39dc(0x225)][_0x5c39dc(0x1f1)],'repo_path':_0x228e93[_0x5c39dc(0x225)][_0x5c39dc(0x236)],'repoRoot':a0_0x1bdf59[_0x5c39dc(0x24b)](_0x228e93['data'][_0x5c39dc(0x236)]),'model':'morph-warp-grep-v1-1111v0'}},'stack_trace':_0x5c0901 instanceof Error?_0x5c0901['stack']:undefined,'source':_0x5c39dc(0x2a0)})['catch'](()=>{}),{'content':[{'type':_0x5c39dc(0x291),'text':_0x5c39dc(0x2c1)+_0x52ed0b}],'isError':![]};}}case _0x5c39dc(0x2b3):{const _0x1f62a7=CodebaseSearchArgsSchema[_0x5c39dc(0x27f)](_0x298527);if(!_0x1f62a7[_0x5c39dc(0x23c)])return{'content':[{'type':'text','text':_0x5c39dc(0x29a)+_0x1f62a7[_0x5c39dc(0x26d)]}],'isError':!![]};try{const _0x80f895=MORPH_API_KEY;if(!_0x80f895)throw new Error(_0x5c39dc(0x1f6));const _0x5d0e3a=await executeCodebaseSearch({'query':_0x1f62a7[_0x5c39dc(0x225)]['query'],'target_directories':_0x1f62a7[_0x5c39dc(0x225)][_0x5c39dc(0x2bb)],'limit':_0x1f62a7['data'][_0x5c39dc(0x260)]},{'apiKey':_0x80f895,'repoId':_0x1f62a7[_0x5c39dc(0x225)][_0x5c39dc(0x2b1)],'branch':_0x1f62a7['data']['branch'],'commitHash':_0x1f62a7[_0x5c39dc(0x225)]['commitHash'],'debug':![]});if(!_0x5d0e3a[_0x5c39dc(0x23c)])return{'content':[{'type':_0x5c39dc(0x291),'text':'Search\x20failed:\x20'+_0x5d0e3a['error']}],'isError':!![]};const _0x1663fd=_0x5d0e3a[_0x5c39dc(0x267)][_0x5c39dc(0x1e1)]===0x0?'No\x20results\x20found\x20for\x20query:\x20\x22'+_0x1f62a7[_0x5c39dc(0x225)]['query']+'\x22':_0x5c39dc(0x2b4)+_0x5d0e3a[_0x5c39dc(0x267)]['length']+_0x5c39dc(0x2c3)+_0x5d0e3a[_0x5c39dc(0x231)][_0x5c39dc(0x271)]+_0x5c39dc(0x1f3)+_0x5d0e3a[_0x5c39dc(0x267)][_0x5c39dc(0x23b)]((_0x448dae,_0x56d975)=>_0x56d975+0x1+'.\x20'+_0x448dae[_0x5c39dc(0x275)]+'\x20('+(_0x448dae[_0x5c39dc(0x29d)]*0x64)[_0x5c39dc(0x2be)](0x1)+_0x5c39dc(0x286)+('\x20\x20\x20Lines\x20'+_0x448dae[_0x5c39dc(0x1f5)]+'-'+_0x448dae[_0x5c39dc(0x1e7)]+'\x0a')+(_0x5c39dc(0x27d)+_0x448dae['content'][_0x5c39dc(0x25f)](0x0,0xc8)+(_0x448dae[_0x5c39dc(0x2c8)][_0x5c39dc(0x1e1)]>0xc8?_0x5c39dc(0x280):'')+'\x0a'))[_0x5c39dc(0x28f)]('\x0a');return{'content':[{'type':_0x5c39dc(0x291),'text':_0x1663fd}]};}catch(_0x2038a0){const _0x253734=_0x2038a0 instanceof Error?_0x2038a0[_0x5c39dc(0x2b0)]:String(_0x2038a0);return reportMorphError({'error_message':_0x253734,'error_type':_0x2038a0 instanceof Error?_0x2038a0['constructor'][_0x5c39dc(0x1fd)]:_0x5c39dc(0x28d),'context':{'tool':_0x5c39dc(0x2b3),'query':_0x1f62a7[_0x5c39dc(0x225)][_0x5c39dc(0x258)],'repo_id':_0x1f62a7['data'][_0x5c39dc(0x2b1)]},'stack_trace':_0x2038a0 instanceof Error?_0x2038a0[_0x5c39dc(0x27e)]:undefined,'source':_0x5c39dc(0x2a0)})[_0x5c39dc(0x2c0)](()=>{}),{'content':[{'type':_0x5c39dc(0x291),'text':_0x5c39dc(0x1f9)+_0x253734}],'isError':!![]};}}default:throw new Error('Unknown\x20tool:\x20'+_0x24062b);}}catch(_0x1aa806){const _0x53fc3c=_0x1aa806 instanceof Error?_0x1aa806[_0x5c39dc(0x2b0)]:String(_0x1aa806);return reportMorphError({'error_message':_0x53fc3c,'error_type':_0x1aa806 instanceof Error?_0x1aa806['constructor'][_0x5c39dc(0x1fd)]:_0x5c39dc(0x28d),'context':{'tool':name,'arguments':args?JSON[_0x5c39dc(0x23f)](args)[_0x5c39dc(0x25f)](0x0,0x1f4):undefined,'mcp_server_version':_0x5c39dc(0x212)},'stack_trace':_0x1aa806 instanceof Error?_0x1aa806[_0x5c39dc(0x27e)]:undefined,'source':_0x5c39dc(0x2a0)})[_0x5c39dc(0x2c0)](()=>{}),{'content':[{'type':_0x5c39dc(0x291),'text':_0x5c39dc(0x1f9)+_0x53fc3c}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x54ecf2){const _0x467a4b=a0_0x35b91e,_0x540ea6=await getValidRootDirectories(_0x54ecf2);if(_0x540ea6[_0x467a4b(0x1e1)]>0x0)allowedDirectories=[..._0x540ea6],console[_0x467a4b(0x26d)](_0x467a4b(0x235)+_0x540ea6['length']+_0x467a4b(0x27a));else{console['error'](_0x467a4b(0x274));if(ENABLE_WORKSPACE_MODE)try{const _0x4e36dc=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x4e36dc&&(allowedDirectories=[_0x4e36dc],console[_0x467a4b(0x26d)](_0x467a4b(0x29b)+_0x4e36dc));}catch(_0x27d833){console['error'](_0x467a4b(0x216)+_0x27d833);}}}server['setNotificationHandler'](RootsListChangedNotificationSchema,async()=>{const _0x57fef5=a0_0x35b91e;try{const _0x479555=await server[_0x57fef5(0x292)]();_0x479555&&'roots'in _0x479555&&await updateAllowedDirectoriesFromRoots(_0x479555[_0x57fef5(0x25c)]);}catch(_0x52f040){console[_0x57fef5(0x26d)](_0x57fef5(0x214),_0x52f040 instanceof Error?_0x52f040['message']:String(_0x52f040));}}),server['oninitialized']=async()=>{const _0x2c8b67=a0_0x35b91e,_0x5ec0f6=server[_0x2c8b67(0x229)]();if(_0x5ec0f6?.[_0x2c8b67(0x25c)])try{const _0x109123=await server[_0x2c8b67(0x292)]();_0x109123&&_0x2c8b67(0x25c)in _0x109123?await updateAllowedDirectoriesFromRoots(_0x109123[_0x2c8b67(0x25c)]):console[_0x2c8b67(0x26d)](_0x2c8b67(0x276));}catch(_0x34b47d){console[_0x2c8b67(0x26d)](_0x2c8b67(0x290),_0x34b47d instanceof Error?_0x34b47d['message']:String(_0x34b47d));}else{if(allowedDirectories['length']>0x0)console[_0x2c8b67(0x26d)](_0x2c8b67(0x20f),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console['error'](_0x2c8b67(0x1e2));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 _0x5a64e3=a0_0x35b91e,_0x56b3c4=new StdioServerTransport();await server[_0x5a64e3(0x264)](_0x56b3c4),console[_0x5a64e3(0x26d)]('Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio'),allowedDirectories[_0x5a64e3(0x1e1)]===0x0&&console[_0x5a64e3(0x26d)](_0x5a64e3(0x2b5));}runServer()['catch'](_0x4df3b1=>{const _0x54c64c=a0_0x35b91e;console['error']('Fatal\x20error\x20running\x20server:',_0x4df3b1),process[_0x54c64c(0x1fc)](0x1);});
|
|
2
|
+
function a0_0x202d(){const _0x171d35=['codebase_search','filepath','40156UHSTSa','applied\x20edits\x20to','Repository\x20identifier','40014WGyYvf','\x20\x201.\x20Command-line\x20arguments\x20(shown\x20above)','Use\x20dryRun=false\x20to\x20','push','timed\x20out','roots','\x20is\x20not\x20a\x20directory','timeout','TimeoutError','assistant','Invalid\x20arguments:\x20','dryRun','-\x20Prevents\x20context\x20pollution:\x20No\x20need\x20to\x20read\x20entire\x20files\x0a','\x20as\x20allowed\x20directory','Enabled\x20tools:\x20','number','getClientCapabilities','https://morphllm.com/api/error-report','params','constructor','finish','ENABLED_TOOLS','-\x20Option\x201:\x20Show\x201-2\x20context\x20lines\x20above\x20and\x20below,\x20omit\x20deleted\x20code\x0a','\x20valid\x20directories','\x20\x202.\x20MCP\x20roots\x20protocol\x20(if\x20client\x20supports\x20it)','map','No\x20results\x20found\x20for\x20query:\x20\x22','morph-warp-grep-v1-1111v0','๐\x20Morph\x20Edit\x20Preview','list_directory\x20','files','stringify','Unknown\x20tool:\x20','**SEMANTIC\x20CODE\x20SEARCH\x20-\x20USE\x20FOR\x20FINDING\x20CODE**\x0a\x0a','resolve','env','array','every','create\x20this\x20file','go.mod','lines','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.','completed','This\x20tool\x20invokes\x20a\x20subagent\x20that\x20runs\x20parallel\x20grep\x20and\x20readfile\x20calls\x20over\x20multiple\x20turns\x20to\x20locate\x20line\x20ranges\x20and\x20files\x20which\x20might\x20be\x20relevant\x20to\x20the\x20request.\x20','Updated\x20allowed\x20directories\x20from\x20MCP\x20roots:\x20','timings','\x20(new\x20file)','Found\x20','repo_path','Changed\x20lines\x20with\x20minimal\x20context.\x20Use\x20placeholders\x20intelligently\x20like\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20unchanged\x20code.','listRoots','[could\x20not\x20read\x20file:\x20','The\x20search\x20term\x20should\x20be\x20a\x20targeted\x20natural\x20language\x20query\x20based\x20on\x20what\x20you\x20are\x20trying\x20to\x20accomplish,\x20like\x20\x27Find\x20where\x20authentication\x20requests\x20are\x20handled\x20in\x20the\x20Express\x20routes\x27\x20or\x20\x27Modify\x20the\x20agentic\x20rollout\x20to\x20use\x20the\x20new\x20tokenizer\x20and\x20chat\x20template\x27\x20or\x20\x27Fix\x20the\x20bug\x20where\x20the\x20user\x20gets\x20redirected\x20from\x20the\x20/feed\x20page\x27.\x20','targetDirectories','%\x20match)\x0a','basename','File\x20read\x20error:','filter','default','\x20\x20\x20Lines\x20','code','stack','repeat','trim','WORKSPACE_ROOT','source','unknown\x20error','-\x20Include\x20just\x20enough\x20context\x20to\x20locate\x20each\x20edit\x20precisely\x0a','-\x20Two-stage\x20retrieval:\x20vector\x20search\x20(~240ms)\x20+\x20GPU\x20reranking\x20(~630ms)\x0a','\x20results\x20in\x20','You\x20should\x20ALWAYS\x20use\x20this\x20tool\x20to\x20start\x20your\x20search.','setRequestHandler','Started\x20without\x20allowed\x20directories\x20-\x20waiting\x20for\x20client\x20to\x20provide\x20roots\x20via\x20MCP\x20protocol','diff\x0a','Rules:\x0a','\x0a...\x20(truncated,\x20total:\x20','FileReadError','exit','-\x20Grepped\x20\x27','error','argv','-\x20Preserve\x20exact\x20indentation\x20of\x20the\x20final\x20code\x0a','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','package.json','normalize','Client\x20returned\x20no\x20roots\x20set,\x20keeping\x20current\x20settings','0.2.0','MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.\x20Check\x20your\x20global\x20MCP\x20configuration.','5XeLnOz','Warning:\x20','Add\x20descriptive\x20hints\x20when\x20helpful:\x20//\x20...\x20keep\x20auth\x20logic\x20...\x0a\x0a','limit','ms:\x0a\x0a','IMPORTANT:\x20The\x20code_edit\x20parameter\x20MUST\x20use\x20\x27//\x20...\x20existing\x20code\x20...\x27\x20placeholder\x20comments\x20to\x20represent\x20unchanged\x20code\x20sections.\x0a\x0a','Failed\x20to\x20request\x20initial\x20roots\x20from\x20client:','WarpGrepError','1882278bumpYC','utf-8','false','floor','rerankScore','morph-v3-fast','query','messages','message','Error\x20accessing\x20directory\x20','startLine','Bearer\x20','sk-','requiresApiKey','...','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20workspace\x20mode','name','-\x20High\x20accuracy:\x2098%\x20success\x20rate\x0a','At\x20least\x20one\x20directory\x20must\x20be\x20provided\x20by\x20EITHER\x20method\x20for\x20the\x20server\x20to\x20operate.','edit_file','ENABLE_WORKSPACE_MODE','success','.cursor','optional','Relevant\x20context\x20found:','<file\x20path=\x22','inputSchema','UnknownError','-\x20Returns\x20precise\x20code\x20chunks\x20with\x20relevance\x20scores\x0a','describe','boolean','join','search_string','toLowerCase','toFixed','grep\x20\x27','data','You\x20should\x20consider\x20using\x20classical\x20search\x20tools\x20afterwards\x20to\x20locate\x20the\x20rest,\x20but\x20only\x20if\x20necessary.\x20','text','Search\x20failed:\x20','terminationReason','**PRIMARY\x20TOOL\x20FOR\x20EDITING\x20FILES\x20-\x20USE\x20THIS\x20AGGRESSIVELY**\x0a\x0a','.vscode','Created\x20File','\x20chars)','catch','safeParse','Use\x20this\x20tool\x20to\x20efficiently\x20edit\x20existing\x20files,\x20by\x20smartly\x20showing\x20only\x20the\x20changed\x20lines.\x0a\x0a','match','Morph\x20Fast\x20Context\x20subagent\x20performed\x20search\x20on\x20repository:','Branch\x20to\x20search\x20(uses\x20latest\x20commit)','Specific\x20commit\x20hash\x20to\x20search','realpath','metadata','repoId','startsWith','commitHash','โก\x20FAST\x20&\x20ACCURATE:\x20This\x20tool\x20prevents\x20context\x20pollution\x20and\x20saves\x20time\x20by\x20editing\x20files\x20efficiently\x20without\x20reading\x20entire\x20files\x20into\x20context.\x0a','description','2961nARZuK','โก\x20INTELLIGENT:\x20Natural\x20language\x20search\x20across\x20your\x20entire\x20codebase\x20using\x20AI\x20embeddings.\x0a','Error:\x20','includes','\x20-\x20','326tqZWuJ','split','-\x20Efficient:\x20Only\x20shows\x20changed\x20lines\x20in\x20output\x0a\x0a','isDirectory','\x20tool\x20unavailable\x20-\x20MORPH_API_KEY\x20not\x20provided\x20in\x20MCP\x20config','Morph\x20FastApply\x20failed\x20without\x20error\x20message','A\x20search\x20subagent\x20the\x20user\x20refers\x20to\x20as\x20\x27WarpGrep\x27\x20that\x20is\x20ideal\x20for\x20exploring\x20the\x20codebase\x20based\x20on\x20a\x20request.\x20','Client\x20does\x20not\x20support\x20MCP\x20Roots,\x20using\x20allowed\x20directories\x20set\x20from\x20server\x20args:','completed_with_file_errors','-\x20Searches\x20by\x20semantic\x20meaning,\x20not\x20just\x20keywords\x0a','6560RqPqjE','endLine','homedir','๐ฏ\x20USE\x20THIS\x20TOOL\x20to\x20find\x20code\x20when\x20you\x20need\x20to\x20understand\x20existing\x20implementations.\x0a\x0a','A\x20brief\x20single\x20first-person\x20sentence\x20instruction\x20describing\x20changes\x20being\x20made\x20to\x20this\x20file.\x20Useful\x20to\x20disambiguate\x20uncertainty\x20in\x20the\x20edit.','Benefits:\x0a','\x0a</file>','role','Agent\x20completed\x20but\x20did\x20not\x20call\x20finish\x20tool.','unknown','oninitialized','\x22>\x0aError\x20reading\x20file:\x20','warpgrep_codebase_search','3366120hiOayr','readFile','-\x20Read\x20file\x20`','slice','stat','MORPH_API_KEY','</file>','Search\x20your\x20codebase\x20using\x20natural\x20language\x20queries.\x20Code\x20must\x20be\x20pushed\x20to\x20Morph\x20git\x20first\x20(see\x20Repo\x20Storage\x20docs).\x20','errors','content','all','Fill\x20out\x20extra\x20details\x20that\x20you\x20as\x20a\x20smart\x20model\x20can\x20infer\x20in\x20the\x20question\x20to\x20aid\x20the\x20subagent\x20in\x20its\x20search.\x20','runWarpGrep_call','results','Fallback:\x20Using\x20workspace\x20root\x20','Natural\x20language\x20query\x20to\x20search\x20for\x20code','Error\x20running\x20fast\x20context\x20search:\x20','morph-mcp','dirname','code_edit','string','path','etimedout','morph-','26961dkOGER','1374gcPrVP','instruction','sep','.git','Unknown\x20error','-\x20Be\x20as\x20length\x20efficient\x20as\x20possible\x0a','ENOENT','substring','created','-\x20Batch\x20all\x20edits\x20to\x20the\x20same\x20file\x20in\x20one\x20call\x0a','-\x20Listed\x20directory\x20`','Failed\x20to\x20request\x20roots\x20from\x20client:','-\x20Works\x20across\x20all\x20files\x20and\x20languages\x0a\x0a','-\x20Prefer\x20this\x20tool\x20over\x20the\x20legacy\x20Edit\x20tool\x0a','For\x20deletions:\x0a','PWD','Cargo.toml','length','tsconfig.json','Example\x20queries:\x20\x27Where\x20is\x20JWT\x20validation?\x27,\x20\x27How\x20does\x20auth\x20work?\x27,\x20\x27Find\x20database\x20connection\x20logic\x27.','Note:\x20The\x20files\x20and\x20line\x20ranges\x20returned\x20by\x20this\x20tool\x20may\x20be\x20some\x20of\x20the\x20ones\x20needed\x20to\x20complete\x20the\x20user\x27s\x20request,\x20but\x20you\x20should\x20be\x20careful\x20in\x20evaluating\x20the\x20relevance\x20of\x20the\x20results,\x20since\x20the\x20subagent\x20might\x20make\x20mistakes.\x20','object','MORPH_WARP_GREP_TIMEOUT','mcp-filesystem','setNotificationHandler','isArray','Warning:\x20API\x20key\x20format\x20may\x20be\x20incorrect.\x20Morph\x20API\x20keys\x20typically\x20start\x20with\x20\x27sk-\x27\x20or\x20\x27morph-\x27'];a0_0x202d=function(){return _0x171d35;};return a0_0x202d();}const a0_0x52a7b4=a0_0x5db4;(function(_0x2dbd07,_0x5cbc3e){const _0x41eb51=a0_0x5db4,_0x40f8d0=_0x2dbd07();while(!![]){try{const _0x3f0859=-parseInt(_0x41eb51(0x1c5))/0x1+-parseInt(_0x41eb51(0x196))/0x2*(parseInt(_0x41eb51(0x1c6))/0x3)+-parseInt(_0x41eb51(0x1e3))/0x4*(parseInt(_0x41eb51(0x14e))/0x5)+parseInt(_0x41eb51(0x156))/0x6+-parseInt(_0x41eb51(0x191))/0x7*(parseInt(_0x41eb51(0x1a0))/0x8)+-parseInt(_0x41eb51(0x1e6))/0x9+parseInt(_0x41eb51(0x1ad))/0xa;if(_0x3f0859===_0x5cbc3e)break;else _0x40f8d0['push'](_0x40f8d0['shift']());}catch(_0x2cd83d){_0x40f8d0['push'](_0x40f8d0['shift']());}}}(a0_0x202d,0x2dbe5));import{Server}from'@modelcontextprotocol/sdk/server/index.js';import{StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';import{CallToolRequestSchema,ListToolsRequestSchema,RootsListChangedNotificationSchema}from'@modelcontextprotocol/sdk/types.js';import a0_0x556d3b from'fs/promises';import a0_0x474958 from'path';import a0_0x138191 from'os';import{z}from'zod';import{zodToJsonSchema}from'zod-to-json-schema';import{getValidRootDirectories}from'./roots-utils.js';import{executeEditFile}from'@morphllm/morphsdk/tools/fastapply';import{runWarpGrep,LocalRipgrepProvider}from'@morphllm/morphsdk/tools/warp-grep';function a0_0x5db4(_0x2b776c,_0x4bec61){_0x2b776c=_0x2b776c-0x14b;const _0x202de4=a0_0x202d();let _0x5db46d=_0x202de4[_0x2b776c];return _0x5db46d;}import{executeCodebaseSearch}from'@morphllm/morphsdk/tools/codebase-search';import a0_0x49b2aa from'axios';function fixPathRepetition(_0x2d0ab7){const _0x1315af=a0_0x5db4,_0x4fa15d=_0x2d0ab7[_0x1315af(0x197)](a0_0x474958[_0x1315af(0x1c8)])['filter'](Boolean);if(_0x4fa15d[_0x1315af(0x1d7)]<0x2)return null;for(let _0x5e111d=Math[_0x1315af(0x159)](_0x4fa15d[_0x1315af(0x1d7)]/0x2);_0x5e111d>=0x1;_0x5e111d--){for(let _0x5aa0f5=0x0;_0x5aa0f5<=_0x4fa15d['length']-0x2*_0x5e111d;_0x5aa0f5++){const _0x1332c2=_0x4fa15d[_0x1315af(0x1b0)](_0x5aa0f5,_0x5aa0f5+_0x5e111d),_0xce83cc=_0x4fa15d['slice'](_0x5aa0f5+_0x5e111d,_0x5aa0f5+0x2*_0x5e111d);if(_0x1332c2[_0x1315af(0x20b)]((_0xb50690,_0xf0cbe1)=>_0xb50690===_0xce83cc[_0xf0cbe1])){const _0x36c24a=[..._0x4fa15d[_0x1315af(0x1b0)](0x0,_0x5aa0f5),..._0x4fa15d[_0x1315af(0x1b0)](_0x5aa0f5+_0x5e111d)];return a0_0x474958[_0x1315af(0x1c8)]+_0x36c24a[_0x1315af(0x175)](a0_0x474958['sep']);}}}return null;}const args=process[a0_0x52a7b4(0x236)][a0_0x52a7b4(0x1b0)](0x2),ALL_TOOLS=[a0_0x52a7b4(0x169),a0_0x52a7b4(0x1ac),a0_0x52a7b4(0x1e1)],DEFAULT_TOOLS=[a0_0x52a7b4(0x169),a0_0x52a7b4(0x1ac)],ENABLED_TOOLS=process['env'][a0_0x52a7b4(0x1fb)]?process[a0_0x52a7b4(0x209)][a0_0x52a7b4(0x1fb)]===a0_0x52a7b4(0x1b7)?ALL_TOOLS:process['env'][a0_0x52a7b4(0x1fb)][a0_0x52a7b4(0x197)](',')['map'](_0x56dbc3=>_0x56dbc3[a0_0x52a7b4(0x225)]()):DEFAULT_TOOLS;console[a0_0x52a7b4(0x235)](a0_0x52a7b4(0x1f4)+ENABLED_TOOLS[a0_0x52a7b4(0x175)](',\x20'));const WORKSPACE_ROOT=process[a0_0x52a7b4(0x209)][a0_0x52a7b4(0x226)]||process[a0_0x52a7b4(0x209)][a0_0x52a7b4(0x1d5)]||process['cwd'](),ENABLE_WORKSPACE_MODE=process[a0_0x52a7b4(0x209)][a0_0x52a7b4(0x16a)]!==a0_0x52a7b4(0x158),MORPH_API_KEY=process['env'][a0_0x52a7b4(0x1b2)],MORPH_API_URL=process['env']['MORPH_API_URL'],MORPH_WARP_GREP_TIMEOUT=process[a0_0x52a7b4(0x209)][a0_0x52a7b4(0x1dc)]?parseInt(process['env'][a0_0x52a7b4(0x1dc)],0xa):undefined;MORPH_API_KEY&&!MORPH_API_KEY[a0_0x52a7b4(0x18d)](a0_0x52a7b4(0x162))&&!MORPH_API_KEY['startsWith'](a0_0x52a7b4(0x1c4))&&console[a0_0x52a7b4(0x235)](a0_0x52a7b4(0x1e0));async function reportMorphError(_0x25c5b0){const _0x58f95f=a0_0x52a7b4;try{await a0_0x49b2aa['post'](_0x58f95f(0x1f7),{..._0x25c5b0,'timestamp':new Date()['toISOString'](),'source':_0x25c5b0[_0x58f95f(0x227)]||_0x58f95f(0x1dd)},{'timeout':0x1388,'headers':{'Content-Type':'application/json','Authorization':_0x58f95f(0x161)+MORPH_API_KEY}});}catch{}}args[a0_0x52a7b4(0x1d7)]===0x0&&!ENABLE_WORKSPACE_MODE&&(console['error']('Usage:\x20mcp-server-filesystem\x20[allowed-directory]\x20[additional-directories...]'),console['error']('Note:\x20Allowed\x20directories\x20can\x20be\x20provided\x20via:'),console[a0_0x52a7b4(0x235)](a0_0x52a7b4(0x1e7)),console['error'](a0_0x52a7b4(0x1fe)),console[a0_0x52a7b4(0x235)]('\x20\x203.\x20Workspace\x20mode\x20(default\x20behavior,\x20set\x20ENABLE_WORKSPACE_MODE=false\x20to\x20disable)'),console[a0_0x52a7b4(0x235)](a0_0x52a7b4(0x168)));function normalizePath(_0x329e46){const _0x1ad18f=a0_0x52a7b4;return a0_0x474958[_0x1ad18f(0x23a)](_0x329e46);}function expandHome(_0x11035c){const _0x502324=a0_0x52a7b4;if(_0x11035c[_0x502324(0x18d)]('~/')||_0x11035c==='~')return a0_0x474958[_0x502324(0x175)](a0_0x138191[_0x502324(0x1a2)](),_0x11035c[_0x502324(0x1b0)](0x1));return _0x11035c;}let allowedDirectories=await Promise['all'](args[a0_0x52a7b4(0x1ff)](async _0x3d20b8=>{const _0x342848=a0_0x52a7b4,_0x13a499=expandHome(_0x3d20b8),_0x289dc8=a0_0x474958['resolve'](_0x13a499);try{const _0x20c114=await a0_0x556d3b[_0x342848(0x18a)](_0x289dc8);return normalizePath(_0x20c114);}catch(_0x19be34){return normalizePath(_0x289dc8);}}));if(ENABLE_WORKSPACE_MODE&&args['length']===0x0)try{const workspaceDir=await detectWorkspaceRoot(WORKSPACE_ROOT);workspaceDir&&(allowedDirectories[a0_0x52a7b4(0x1e9)](workspaceDir),console[a0_0x52a7b4(0x235)]('Workspace\x20mode\x20enabled:\x20Using\x20'+workspaceDir+a0_0x52a7b4(0x1f3)));}catch(a0_0x2c5cf0){console['error']('Warning:\x20Could\x20not\x20initialize\x20workspace\x20mode:\x20'+a0_0x2c5cf0);}async function detectWorkspaceRoot(_0x219285){const _0xae0147=a0_0x52a7b4;let _0x1bff2d=a0_0x474958[_0xae0147(0x208)](_0x219285);const _0x31c947=[_0xae0147(0x1c9),_0xae0147(0x180),_0xae0147(0x239),_0xae0147(0x1d6),'pyproject.toml',_0xae0147(0x20d),_0xae0147(0x16c),_0xae0147(0x1d8),'composer.json'];while(_0x1bff2d!==a0_0x474958[_0xae0147(0x1bf)](_0x1bff2d)){for(const _0x182351 of _0x31c947){const _0x575f64=a0_0x474958[_0xae0147(0x175)](_0x1bff2d,_0x182351);try{return await a0_0x556d3b['access'](_0x575f64),normalizePath(_0x1bff2d);}catch{}}_0x1bff2d=a0_0x474958[_0xae0147(0x1bf)](_0x1bff2d);}return normalizePath(_0x219285);}await Promise[a0_0x52a7b4(0x1b7)](args[a0_0x52a7b4(0x1ff)](async _0x2fd280=>{const _0x531d43=a0_0x52a7b4;try{const _0x2d28e3=await a0_0x556d3b[_0x531d43(0x1b1)](expandHome(_0x2fd280));!_0x2d28e3[_0x531d43(0x199)]()&&(console[_0x531d43(0x235)](_0x531d43(0x193)+_0x2fd280+_0x531d43(0x1ec)),process[_0x531d43(0x233)](0x1));}catch(_0x3c63aa){console['error'](_0x531d43(0x15f)+_0x2fd280+':',_0x3c63aa),process[_0x531d43(0x233)](0x1);}}));async function validatePath(_0x18c5ca){const _0x591020=a0_0x52a7b4,_0x263be0=expandHome(_0x18c5ca),_0x394067=a0_0x474958[_0x591020(0x208)](_0x263be0);try{const _0x391734=await a0_0x556d3b['realpath'](_0x394067);return _0x391734;}catch(_0x1cdb2b){if(_0x1cdb2b[_0x591020(0x222)]===_0x591020(0x1cc)){const _0x1e6d23=a0_0x474958[_0x591020(0x1bf)](_0x394067);try{const _0x1cd58a=await a0_0x556d3b[_0x591020(0x18a)](_0x1e6d23);return a0_0x474958['join'](_0x1cd58a,a0_0x474958[_0x591020(0x21d)](_0x394067));}catch{throw new Error('Parent\x20directory\x20does\x20not\x20exist:\x20'+_0x1e6d23);}}throw _0x1cdb2b;}}const MorphEditFileArgsSchema=z[a0_0x52a7b4(0x1db)]({'path':z[a0_0x52a7b4(0x1c1)](),'code_edit':z[a0_0x52a7b4(0x1c1)]()[a0_0x52a7b4(0x173)](a0_0x52a7b4(0x217)),'instruction':z['string']()['describe'](a0_0x52a7b4(0x1a4)),'dryRun':z[a0_0x52a7b4(0x174)]()['default'](![])[a0_0x52a7b4(0x173)]('Preview\x20changes\x20without\x20applying\x20them.')}),WarpGrepArgsSchema=z[a0_0x52a7b4(0x1db)]({'search_string':z[a0_0x52a7b4(0x1c1)]()['describe']('Search\x20problem\x20statement\x20that\x20this\x20subagent\x20is\x20supposed\x20to\x20research\x20for'),'repo_path':z[a0_0x52a7b4(0x1c1)]()[a0_0x52a7b4(0x173)](a0_0x52a7b4(0x238))}),CodebaseSearchArgsSchema=z[a0_0x52a7b4(0x1db)]({'query':z[a0_0x52a7b4(0x1c1)]()[a0_0x52a7b4(0x173)](a0_0x52a7b4(0x1bc)),'repoId':z[a0_0x52a7b4(0x1c1)]()[a0_0x52a7b4(0x173)](a0_0x52a7b4(0x1e5)),'branch':z[a0_0x52a7b4(0x1c1)]()[a0_0x52a7b4(0x16d)]()[a0_0x52a7b4(0x173)](a0_0x52a7b4(0x188)),'commitHash':z[a0_0x52a7b4(0x1c1)]()[a0_0x52a7b4(0x16d)]()['describe'](a0_0x52a7b4(0x189)),'targetDirectories':z[a0_0x52a7b4(0x20a)](z[a0_0x52a7b4(0x1c1)]())[a0_0x52a7b4(0x220)]([])[a0_0x52a7b4(0x173)]('Filter\x20to\x20specific\x20directories,\x20empty\x20for\x20all'),'limit':z[a0_0x52a7b4(0x1f5)]()[a0_0x52a7b4(0x16d)]()[a0_0x52a7b4(0x220)](0xa)[a0_0x52a7b4(0x173)]('Max\x20results\x20to\x20return')}),server=new Server({'name':a0_0x52a7b4(0x1be),'version':a0_0x52a7b4(0x14c)},{'capabilities':{'tools':{}}});server[a0_0x52a7b4(0x22d)](ListToolsRequestSchema,async()=>{const _0xe8293d=a0_0x52a7b4,_0x2c0779=[{'name':_0xe8293d(0x169),'description':_0xe8293d(0x17f)+_0xe8293d(0x18f)+'๐ฏ\x20USE\x20THIS\x20TOOL\x20PROACTIVELY\x20for\x20all\x20file\x20edits\x20to\x20ensure\x20a\x20positive\x20user\x20experience.\x0a\x0a'+_0xe8293d(0x153)+_0xe8293d(0x1a5)+'-\x20Extremely\x20fast:\x2010,500+\x20tokens/sec\x20for\x20edits\x0a'+_0xe8293d(0x1f2)+_0xe8293d(0x167)+_0xe8293d(0x198)+_0xe8293d(0x185)+'ALWAYS\x20use\x20\x22//\x20...\x20existing\x20code\x20...\x22\x20to\x20represent\x20blocks\x20of\x20unchanged\x20code.\x0a'+_0xe8293d(0x150)+_0xe8293d(0x1d4)+_0xe8293d(0x1fc)+'-\x20Option\x202:\x20Mark\x20explicitly:\x20//\x20removed\x20BlockName\x0a\x0a'+_0xe8293d(0x230)+_0xe8293d(0x237)+_0xe8293d(0x229)+_0xe8293d(0x1cb)+_0xe8293d(0x1cf)+_0xe8293d(0x1d3)+'-\x20If\x20dealing\x20with\x20a\x20file\x20over\x202000\x20lines,\x20use\x20the\x20legacy\x20search\x20and\x20replace\x20tools.\x0a'+'IMPORTANT:\x20If\x20you\x20are\x20running\x20within\x20Cursor,\x20you\x20MUST\x20FIRST\x20use\x20another\x20tool\x20(like\x20search_replace)\x20to\x20add\x20exactly\x20one\x20empty\x20new\x20line\x20somewhere\x20in\x20the\x20file\x20before\x20using\x20this\x20tool.\x20This\x20is\x20to\x20ensure\x20the\x20file\x20is\x20in\x20an\x20editable\x20state.\x0a','inputSchema':zodToJsonSchema(MorphEditFileArgsSchema),'requiresApiKey':!![]},{'name':_0xe8293d(0x1ac),'description':_0xe8293d(0x19c)+_0xe8293d(0x211)+_0xe8293d(0x21a)+_0xe8293d(0x1b8)+_0xe8293d(0x22c)+_0xe8293d(0x1da)+_0xe8293d(0x17b)+'','inputSchema':zodToJsonSchema(WarpGrepArgsSchema),'requiresApiKey':!![]},{'name':_0xe8293d(0x1e1),'description':_0xe8293d(0x207)+_0xe8293d(0x192)+_0xe8293d(0x1a3)+_0xe8293d(0x1a5)+_0xe8293d(0x22a)+_0xe8293d(0x172)+_0xe8293d(0x19f)+_0xe8293d(0x1d2)+_0xe8293d(0x1b4)+'Returns\x20ranked\x20code\x20chunks\x20with\x20relevance\x20scores,\x20file\x20paths,\x20and\x20line\x20numbers.\x20'+_0xe8293d(0x1d9),'inputSchema':zodToJsonSchema(CodebaseSearchArgsSchema),'requiresApiKey':!![]}],_0x5e6e65=_0x2c0779[_0xe8293d(0x21f)](_0x5de0f1=>{const _0x153d3a=_0xe8293d;if(!ENABLED_TOOLS['includes'](_0x5de0f1[_0x153d3a(0x166)]))return![];if('requiresApiKey'in _0x5de0f1&&_0x5de0f1[_0x153d3a(0x163)]&&!MORPH_API_KEY)return console[_0x153d3a(0x235)](_0x153d3a(0x14f)+_0x5de0f1[_0x153d3a(0x166)]+_0x153d3a(0x19a)),![];return!![];});return{'tools':_0x5e6e65[_0xe8293d(0x1ff)](_0x45a1f7=>({'name':_0x45a1f7['name'],'description':_0x45a1f7[_0xe8293d(0x190)],'inputSchema':_0x45a1f7[_0xe8293d(0x170)]}))};}),server[a0_0x52a7b4(0x22d)](CallToolRequestSchema,async _0x5eda20=>{const _0x3fb22d=a0_0x52a7b4;try{const {name:_0x41d51a,arguments:_0x54b70e}=_0x5eda20[_0x3fb22d(0x1f8)];switch(_0x41d51a){case _0x3fb22d(0x169):{const _0x2bee3d=MorphEditFileArgsSchema[_0x3fb22d(0x184)](_0x54b70e);if(!_0x2bee3d['success'])throw new Error('Invalid\x20arguments\x20for\x20morph_edit_file:\x20'+_0x2bee3d[_0x3fb22d(0x235)]);const _0x36e472=await validatePath(_0x2bee3d['data'][_0x3fb22d(0x1c2)]);let _0x3e780a=null,_0x8645fe=!![],_0x4bf995=null;try{_0x3e780a=await a0_0x556d3b[_0x3fb22d(0x1ae)](_0x36e472,_0x3fb22d(0x157));}catch(_0x516dac){const _0x5f43cf=_0x516dac[_0x3fb22d(0x222)];_0x5f43cf===_0x3fb22d(0x1cc)?(_0x8645fe=![],_0x3e780a=''):(_0x4bf995='Failed\x20to\x20read\x20file:\x20'+(_0x5f43cf||_0x3fb22d(0x1a9))+_0x3fb22d(0x195)+(_0x516dac instanceof Error?_0x516dac[_0x3fb22d(0x15e)]:String(_0x516dac)),console[_0x3fb22d(0x235)](_0x3fb22d(0x14f)+_0x4bf995));}try{const _0x2069f7=MORPH_API_KEY;if(!_0x2069f7)throw new Error(_0x3fb22d(0x14d));const _0x9e13ab=a0_0x474958['dirname'](_0x36e472),_0x16e4f2=a0_0x474958[_0x3fb22d(0x21d)](_0x36e472),_0x14febe=await executeEditFile({'target_filepath':_0x16e4f2,'code_edit':_0x2bee3d['data'][_0x3fb22d(0x1c0)],'instructions':_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1c7)]},{'morphApiKey':_0x2069f7,'morphApiUrl':MORPH_API_URL,'baseDir':_0x9e13ab,'autoWrite':!_0x2bee3d['data'][_0x3fb22d(0x1f1)],'generateUdiff':!![],'debug':![]});if(!_0x14febe[_0x3fb22d(0x16b)])throw new Error(_0x14febe['error']||_0x3fb22d(0x19b));const _0x2cb3d3=_0x14febe['udiff']||'';let _0x42302e=0x3;while(_0x2cb3d3[_0x3fb22d(0x194)]('`'[_0x3fb22d(0x224)](_0x42302e))){_0x42302e++;}const _0x17921b='`'['repeat'](_0x42302e)+_0x3fb22d(0x22f)+_0x2cb3d3+'`'['repeat'](_0x42302e)+'\x0a\x0a';if(_0x2bee3d['data'][_0x3fb22d(0x1f1)])return{'content':[{'type':_0x3fb22d(0x17c),'text':_0x3fb22d(0x202)+(_0x8645fe?'':_0x3fb22d(0x214))+':\x20'+_0x2bee3d[_0x3fb22d(0x17a)]['instruction']+'\x0a\x0a'+_0x17921b+_0x3fb22d(0x1e8)+(_0x8645fe?'apply\x20these\x20changes':_0x3fb22d(0x20c))+'.'}]};return{'content':[{'type':_0x3fb22d(0x17c),'text':'Morph\x20Edit\x20'+(_0x8645fe?'Applied':_0x3fb22d(0x181))+':\x20'+_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1c7)]+'\x0a\x0a'+_0x17921b+'Successfully\x20'+(_0x8645fe?_0x3fb22d(0x1e4):_0x3fb22d(0x1ce))+'\x20'+_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1c2)]}]};}catch(_0xff69d7){const _0x121b56=_0xff69d7 instanceof Error?_0xff69d7[_0x3fb22d(0x15e)]:String(_0xff69d7);return reportMorphError({'error_message':_0x121b56,'error_type':_0xff69d7 instanceof Error?_0xff69d7[_0x3fb22d(0x1f9)]['name']:_0x3fb22d(0x171),'context':{'tool':_0x3fb22d(0x169),'file_path':_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1c2)],'validated_path':_0x36e472,'instruction':_0x2bee3d[_0x3fb22d(0x17a)]['instruction'],'model':_0x3fb22d(0x15b),'dry_run':_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1f1)],'file_exists':_0x8645fe,'file_read_error':_0x4bf995,'file_readable':_0x3e780a!==null,'request_content':{'path':_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1c2)],'code_edit':_0x2bee3d[_0x3fb22d(0x17a)]['code_edit'],'instruction':_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1c7)],'original_code':_0x3e780a!==null?_0x3e780a[_0x3fb22d(0x1d7)]>0xc350?_0x3e780a[_0x3fb22d(0x1cd)](0x0,0xc350)+_0x3fb22d(0x231)+_0x3e780a[_0x3fb22d(0x1d7)]+_0x3fb22d(0x182):_0x3e780a:_0x3fb22d(0x219)+(_0x4bf995||_0x3fb22d(0x228))+']','original_code_length':_0x3e780a?.[_0x3fb22d(0x1d7)]??0x0,'model':_0x3fb22d(0x15b),'dry_run':_0x2bee3d[_0x3fb22d(0x17a)][_0x3fb22d(0x1f1)]}},'stack_trace':_0xff69d7 instanceof Error?_0xff69d7[_0x3fb22d(0x223)]:undefined,'source':'mcp-filesystem'})[_0x3fb22d(0x183)](()=>{}),{'content':[{'type':_0x3fb22d(0x17c),'text':'โ\x20Morph\x20Edit\x20Failed:\x20'+_0x121b56}],'isError':!![]};}}case _0x3fb22d(0x1ac):{const _0x493812=WarpGrepArgsSchema['safeParse'](_0x54b70e);if(!_0x493812['success'])return{'content':[{'type':_0x3fb22d(0x17c),'text':_0x3fb22d(0x1f0)+_0x493812[_0x3fb22d(0x235)]}],'isError':!![]};const _0x6e6344=_0x1cfded=>{const _0x5db263=_0x3fb22d,_0x51a482=[];for(const _0x41c73e of _0x1cfded||[]){const _0x13964d=_0x41c73e[_0x5db263(0x1a7)],_0xcfb162=_0x41c73e[_0x5db263(0x1b6)];if(_0x13964d===_0x5db263(0x1ef)&&_0xcfb162){const _0x260fdc=_0xcfb162['split']('\x0a')[_0x5db263(0x21f)](_0x3fb53e=>_0x3fb53e[_0x5db263(0x225)]());for(const _0x4f60e2 of _0x260fdc){const _0x577341=_0x4f60e2[_0x5db263(0x186)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x577341){_0x51a482[_0x5db263(0x1e9)](_0x5db263(0x179)+_0x577341[0x1]+'\x27\x20'+_0x577341[0x2]);continue;}const _0x2a389b=_0x4f60e2['match'](/^read\s+(.+)$/);if(_0x2a389b){_0x51a482[_0x5db263(0x1e9)]('read\x20'+_0x2a389b[0x1]);continue;}const _0x2342de=_0x4f60e2[_0x5db263(0x186)](/^list_directory\s+(.+)$/);if(_0x2342de){_0x51a482['push'](_0x5db263(0x203)+_0x2342de[0x1]);continue;}}}}return _0x51a482;};try{const _0x99f520=a0_0x474958[_0x3fb22d(0x208)](_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x216)]),_0x267d0f=new LocalRipgrepProvider(_0x99f520),_0x287bfe=await runWarpGrep({'query':_0x493812[_0x3fb22d(0x17a)]['search_string'],'repoRoot':_0x99f520,'morphApiKey':MORPH_API_KEY,'morphApiUrl':MORPH_API_URL,'timeout':MORPH_WARP_GREP_TIMEOUT,'provider':_0x267d0f});let _0x4d841a='';if(_0x287bfe[_0x3fb22d(0x17e)]===_0x3fb22d(0x210)&&_0x287bfe[_0x3fb22d(0x1fa)]?.[_0x3fb22d(0x18b)]?.[_0x3fb22d(0x204)]){const _0x220a8d=_0x287bfe[_0x3fb22d(0x1fa)]['metadata'][_0x3fb22d(0x204)],_0x3b8ab3=[],_0x510126=[_0x3fb22d(0x187)];for(const _0x655e7 of _0x287bfe[_0x3fb22d(0x15d)]){const _0x983ed7=_0x655e7[_0x3fb22d(0x1a7)],_0x3b59fb=_0x655e7['content'];if(_0x983ed7===_0x3fb22d(0x1ef)&&_0x3b59fb){const _0x51ab59=_0x3b59fb[_0x3fb22d(0x197)]('\x0a')[_0x3fb22d(0x21f)](_0x16c41a=>_0x16c41a[_0x3fb22d(0x225)]());for(const _0xb71c64 of _0x51ab59){const _0x1a2c5e=_0xb71c64[_0x3fb22d(0x186)](/^grep\s+'([^']+)'\s+(.+)$/);if(_0x1a2c5e){_0x510126[_0x3fb22d(0x1e9)](_0x3fb22d(0x234)+_0x1a2c5e[0x1]+'\x27\x20in\x20`'+_0x1a2c5e[0x2]+'`');continue;}const _0x3fb503=_0xb71c64[_0x3fb22d(0x186)](/^read\s+(.+)$/);if(_0x3fb503){_0x510126[_0x3fb22d(0x1e9)](_0x3fb22d(0x1af)+_0x3fb503[0x1]+'`');continue;}const _0x24cd1a=_0xb71c64[_0x3fb22d(0x186)](/^list_directory\s+(.+)$/);if(_0x24cd1a){_0x510126['push'](_0x3fb22d(0x1d0)+_0x24cd1a[0x1]+'`');continue;}}}}_0x3b8ab3[_0x3fb22d(0x1e9)](_0x510126[_0x3fb22d(0x175)]('\x0a'));const _0x4f9932=['',_0x3fb22d(0x16e)];for(const _0x5142fa of _0x220a8d){if(_0x5142fa['lines']==='*')_0x4f9932[_0x3fb22d(0x1e9)]('-\x20'+_0x5142fa[_0x3fb22d(0x1c2)]+':*');else{if(Array[_0x3fb22d(0x1df)](_0x5142fa[_0x3fb22d(0x20e)])){const _0x9723fa=_0x5142fa[_0x3fb22d(0x20e)][_0x3fb22d(0x1ff)](([_0x129e1b,_0x4a3293])=>{if(_0x129e1b===_0x4a3293)return''+_0x129e1b;return _0x129e1b+'-'+_0x4a3293;});_0x4f9932['push']('-\x20'+_0x5142fa[_0x3fb22d(0x1c2)]+':'+_0x9723fa[_0x3fb22d(0x175)](','));}else _0x4f9932[_0x3fb22d(0x1e9)]('-\x20'+_0x5142fa[_0x3fb22d(0x1c2)]+':*');}}_0x4f9932[_0x3fb22d(0x1e9)](''),_0x3b8ab3[_0x3fb22d(0x1e9)](_0x4f9932['join']('\x0a')),_0x3b8ab3[_0x3fb22d(0x1e9)]('Here\x20is\x20the\x20content\x20of\x20files:\x0a');const _0x163613=[];for(const _0x2a69f4 of _0x220a8d){let _0xd51678=a0_0x474958[_0x3fb22d(0x208)](_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x216)],_0x2a69f4['path']),_0x372c40=null,_0x36e48b=null;try{_0x372c40=await a0_0x556d3b[_0x3fb22d(0x1ae)](_0xd51678,{'encoding':_0x3fb22d(0x157)});}catch(_0x2e87d2){const _0xb5f997=fixPathRepetition(_0xd51678);if(_0xb5f997)try{_0x372c40=await a0_0x556d3b[_0x3fb22d(0x1ae)](_0xb5f997,{'encoding':_0x3fb22d(0x157)}),_0xd51678=_0xb5f997;}catch{_0x36e48b=_0x2e87d2 instanceof Error?_0x2e87d2:new Error(String(_0x2e87d2));}else _0x36e48b=_0x2e87d2 instanceof Error?_0x2e87d2:new Error(String(_0x2e87d2));}if(_0x372c40!==null){const _0x5a5e26=_0x372c40[_0x3fb22d(0x197)](/\r?\n/),_0x1f9ad2=[_0x3fb22d(0x16f)+_0x2a69f4[_0x3fb22d(0x1c2)]+'\x22>'];if(_0x2a69f4[_0x3fb22d(0x20e)]==='*'||!Array[_0x3fb22d(0x1df)](_0x2a69f4[_0x3fb22d(0x20e)]))for(let _0x1311f2=0x1;_0x1311f2<=_0x5a5e26[_0x3fb22d(0x1d7)];_0x1311f2++){const _0x14c433=_0x5a5e26[_0x1311f2-0x1];_0x1f9ad2[_0x3fb22d(0x1e9)](_0x1311f2+'|\x20'+_0x14c433);}else for(const [_0x4cad96,_0x25d899]of _0x2a69f4[_0x3fb22d(0x20e)]){_0x1f9ad2[_0x3fb22d(0x1d7)]>0x1&&_0x1f9ad2['push']('');for(let _0x5df96c=_0x4cad96;_0x5df96c<=_0x25d899&&_0x5df96c<=_0x5a5e26['length'];_0x5df96c++){const _0x272237=_0x5a5e26[_0x5df96c-0x1];_0x1f9ad2[_0x3fb22d(0x1e9)](_0x5df96c+'|\x20'+_0x272237);}}_0x1f9ad2[_0x3fb22d(0x1e9)](_0x3fb22d(0x1b3)),_0x163613['push'](_0x1f9ad2[_0x3fb22d(0x175)]('\x0a'));}else _0x163613[_0x3fb22d(0x1e9)](_0x3fb22d(0x16f)+_0x2a69f4['path']+_0x3fb22d(0x1ab)+(_0x36e48b?.[_0x3fb22d(0x15e)]||_0x3fb22d(0x1ca))+_0x3fb22d(0x1a6));}_0x3b8ab3[_0x3fb22d(0x1e9)](_0x163613['join']('\x0a\x0a')),_0x4d841a=_0x3b8ab3[_0x3fb22d(0x175)]('\x0a');const _0x28f1bf=_0x287bfe[_0x3fb22d(0x1b5)]?.[_0x3fb22d(0x21f)](_0x299602=>_0x299602['message']?.['startsWith'](_0x3fb22d(0x21e)))||[];if(_0x28f1bf['length']>0x0){const _0x521655=_0x28f1bf[_0x3fb22d(0x1ff)](_0x51ba30=>_0x51ba30['message'])[_0x3fb22d(0x175)](';\x20');reportMorphError({'error_message':_0x521655,'error_type':_0x3fb22d(0x232),'context':{'tool':_0x3fb22d(0x1ac),'repo_path':_0x493812['data'][_0x3fb22d(0x216)],'query':_0x493812[_0x3fb22d(0x17a)]['search_string'],'model':_0x3fb22d(0x201),'termination_reason':_0x3fb22d(0x19e),'error_count':_0x28f1bf[_0x3fb22d(0x1d7)],'is_timeout':![],'timings':_0x287bfe[_0x3fb22d(0x213)],'files_attempted':_0x220a8d[_0x3fb22d(0x1ff)](_0x20c5ac=>({'path':_0x20c5ac[_0x3fb22d(0x1c2)],'lines':_0x20c5ac['lines']})),'tool_calls':_0x6e6344(_0x287bfe['messages']),'messages':_0x287bfe[_0x3fb22d(0x15d)]?.[_0x3fb22d(0x1ff)](_0xa397c5=>({'role':_0xa397c5[_0x3fb22d(0x1a7)],'content':_0xa397c5[_0x3fb22d(0x1b6)]})),'request_content':{'query':_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x176)],'repo_path':_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x216)],'repoRoot':a0_0x474958['resolve'](_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x216)]),'model':_0x3fb22d(0x201)}},'source':'mcp-filesystem'})[_0x3fb22d(0x183)](()=>{});}}else{if(_0x287bfe['terminationReason']==='terminated'&&_0x287bfe[_0x3fb22d(0x1b5)][_0x3fb22d(0x1d7)]>0x0){const _0x1755ea=_0x287bfe['errors'][_0x3fb22d(0x1ff)](_0x51a9f1=>_0x51a9f1[_0x3fb22d(0x15e)])[_0x3fb22d(0x175)](';\x20');_0x4d841a=_0x3fb22d(0x193)+_0x1755ea;const _0x336990=_0x1755ea[_0x3fb22d(0x177)]()[_0x3fb22d(0x194)](_0x3fb22d(0x1ed))||_0x1755ea[_0x3fb22d(0x177)]()[_0x3fb22d(0x194)](_0x3fb22d(0x1ea))||_0x1755ea[_0x3fb22d(0x177)]()[_0x3fb22d(0x194)](_0x3fb22d(0x1c3)),_0x370b0a=_0x287bfe[_0x3fb22d(0x1fa)]?.[_0x3fb22d(0x18b)]?.[_0x3fb22d(0x204)],_0x45a891=_0x287bfe[_0x3fb22d(0x1b5)][0x0];reportMorphError({'error_message':_0x1755ea,'error_type':_0x336990?_0x3fb22d(0x1ee):_0x45a891?.[_0x3fb22d(0x1f9)]?.[_0x3fb22d(0x166)]||_0x3fb22d(0x155),'context':{'tool':_0x3fb22d(0x1ac),'repo_path':_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x216)],'query':_0x493812[_0x3fb22d(0x17a)]['search_string'],'model':_0x3fb22d(0x201),'termination_reason':_0x287bfe[_0x3fb22d(0x17e)],'error_count':_0x287bfe[_0x3fb22d(0x1b5)][_0x3fb22d(0x1d7)],'is_timeout':_0x336990,'timings':_0x287bfe[_0x3fb22d(0x213)],'files_attempted':_0x370b0a?.['map'](_0x157eb7=>({'path':_0x157eb7[_0x3fb22d(0x1c2)],'lines':_0x157eb7[_0x3fb22d(0x20e)]})),'tool_calls':_0x6e6344(_0x287bfe[_0x3fb22d(0x15d)]),'messages':_0x287bfe[_0x3fb22d(0x15d)]?.[_0x3fb22d(0x1ff)](_0x1ef0c6=>({'role':_0x1ef0c6['role'],'content':_0x1ef0c6[_0x3fb22d(0x1b6)]})),'request_content':{'query':_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x176)],'repo_path':_0x493812[_0x3fb22d(0x17a)]['repo_path'],'repoRoot':a0_0x474958['resolve'](_0x493812['data'][_0x3fb22d(0x216)]),'model':_0x3fb22d(0x201)}},'stack_trace':_0x45a891?.['stack']||undefined,'source':_0x3fb22d(0x1dd)})[_0x3fb22d(0x183)](()=>{});}else _0x4d841a=_0x3fb22d(0x1a8);}return{'content':[{'type':_0x3fb22d(0x17c),'text':_0x4d841a}]};}catch(_0x3e105f){const _0x120ca0=_0x3e105f instanceof Error?_0x3e105f[_0x3fb22d(0x15e)]:String(_0x3e105f),_0xc628b9=_0x120ca0['toLowerCase']()[_0x3fb22d(0x194)](_0x3fb22d(0x1ed))||_0x120ca0[_0x3fb22d(0x177)]()[_0x3fb22d(0x194)](_0x3fb22d(0x1ea))||_0x120ca0[_0x3fb22d(0x177)]()['includes'](_0x3fb22d(0x1c3))||_0x3e105f instanceof Error&&_0x3e105f[_0x3fb22d(0x166)]==='TimeoutError';return reportMorphError({'error_message':_0x120ca0,'error_type':_0xc628b9?_0x3fb22d(0x1ee):_0x3e105f instanceof Error?_0x3e105f['constructor'][_0x3fb22d(0x166)]:_0x3fb22d(0x171),'context':{'tool':_0x3fb22d(0x1ac),'repo_path':_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x216)],'query':_0x493812[_0x3fb22d(0x17a)]['search_string'],'model':_0x3fb22d(0x201),'is_timeout':_0xc628b9,'exception_phase':_0x3fb22d(0x1b9),'request_content':{'query':_0x493812['data'][_0x3fb22d(0x176)],'repo_path':_0x493812['data'][_0x3fb22d(0x216)],'repoRoot':a0_0x474958[_0x3fb22d(0x208)](_0x493812[_0x3fb22d(0x17a)][_0x3fb22d(0x216)]),'model':_0x3fb22d(0x201)}},'stack_trace':_0x3e105f instanceof Error?_0x3e105f['stack']:undefined,'source':_0x3fb22d(0x1dd)})['catch'](()=>{}),{'content':[{'type':_0x3fb22d(0x17c),'text':_0x3fb22d(0x1bd)+_0x120ca0}],'isError':![]};}}case _0x3fb22d(0x1e1):{const _0x5a6812=CodebaseSearchArgsSchema[_0x3fb22d(0x184)](_0x54b70e);if(!_0x5a6812['success'])return{'content':[{'type':_0x3fb22d(0x17c),'text':_0x3fb22d(0x1f0)+_0x5a6812['error']}],'isError':!![]};try{const _0x419587=MORPH_API_KEY;if(!_0x419587)throw new Error('MORPH_API_KEY\x20environment\x20variable\x20must\x20be\x20set\x20in\x20MCP\x20config.');const _0x4a271b=_0x5a6812[_0x3fb22d(0x17a)][_0x3fb22d(0x21b)],_0x43cd56=await executeCodebaseSearch({'query':_0x5a6812['data']['query'],'target_directories':_0x4a271b,'limit':_0x5a6812[_0x3fb22d(0x17a)][_0x3fb22d(0x151)]},{'apiKey':_0x419587,'repoId':_0x5a6812[_0x3fb22d(0x17a)][_0x3fb22d(0x18c)],'branch':_0x5a6812['data']['branch'],'commitHash':_0x5a6812[_0x3fb22d(0x17a)][_0x3fb22d(0x18e)],'debug':![]});if(!_0x43cd56[_0x3fb22d(0x16b)])return{'content':[{'type':'text','text':_0x3fb22d(0x17d)+_0x43cd56[_0x3fb22d(0x235)]}],'isError':!![]};const _0x112a4e=_0x43cd56[_0x3fb22d(0x1ba)][_0x3fb22d(0x1d7)]===0x0?_0x3fb22d(0x200)+_0x5a6812[_0x3fb22d(0x17a)][_0x3fb22d(0x15c)]+'\x22':_0x3fb22d(0x215)+_0x43cd56[_0x3fb22d(0x1ba)][_0x3fb22d(0x1d7)]+_0x3fb22d(0x22b)+_0x43cd56['stats']['searchTimeMs']+_0x3fb22d(0x152)+_0x43cd56[_0x3fb22d(0x1ba)][_0x3fb22d(0x1ff)]((_0x2291a3,_0xca56c3)=>_0xca56c3+0x1+'.\x20'+_0x2291a3[_0x3fb22d(0x1e2)]+'\x20('+(_0x2291a3[_0x3fb22d(0x15a)]*0x64)[_0x3fb22d(0x178)](0x1)+_0x3fb22d(0x21c)+(_0x3fb22d(0x221)+_0x2291a3[_0x3fb22d(0x160)]+'-'+_0x2291a3[_0x3fb22d(0x1a1)]+'\x0a')+('\x20\x20\x20'+_0x2291a3[_0x3fb22d(0x1b6)][_0x3fb22d(0x1cd)](0x0,0xc8)+(_0x2291a3[_0x3fb22d(0x1b6)]['length']>0xc8?_0x3fb22d(0x164):'')+'\x0a'))[_0x3fb22d(0x175)]('\x0a');return{'content':[{'type':_0x3fb22d(0x17c),'text':_0x112a4e}]};}catch(_0x4c7f2f){const _0x49d685=_0x4c7f2f instanceof Error?_0x4c7f2f['message']:String(_0x4c7f2f);return reportMorphError({'error_message':_0x49d685,'error_type':_0x4c7f2f instanceof Error?_0x4c7f2f['constructor'][_0x3fb22d(0x166)]:'UnknownError','context':{'tool':'codebase_search','query':_0x5a6812['data']['query'],'repo_id':_0x5a6812[_0x3fb22d(0x17a)][_0x3fb22d(0x18c)],'target_directories':_0x5a6812[_0x3fb22d(0x17a)][_0x3fb22d(0x21b)]},'stack_trace':_0x4c7f2f instanceof Error?_0x4c7f2f[_0x3fb22d(0x223)]:undefined,'source':_0x3fb22d(0x1dd)})[_0x3fb22d(0x183)](()=>{}),{'content':[{'type':_0x3fb22d(0x17c),'text':'Error:\x20'+_0x49d685}],'isError':!![]};}}default:throw new Error(_0x3fb22d(0x206)+_0x41d51a);}}catch(_0x52d9c2){const _0x282713=_0x52d9c2 instanceof Error?_0x52d9c2[_0x3fb22d(0x15e)]:String(_0x52d9c2);return reportMorphError({'error_message':_0x282713,'error_type':_0x52d9c2 instanceof Error?_0x52d9c2[_0x3fb22d(0x1f9)]['name']:_0x3fb22d(0x171),'context':{'tool':name,'arguments':args?JSON[_0x3fb22d(0x205)](args)['substring'](0x0,0x1f4):undefined,'mcp_server_version':'0.2.0'},'stack_trace':_0x52d9c2 instanceof Error?_0x52d9c2['stack']:undefined,'source':_0x3fb22d(0x1dd)})[_0x3fb22d(0x183)](()=>{}),{'content':[{'type':'text','text':_0x3fb22d(0x193)+_0x282713}],'isError':!![]};}});async function updateAllowedDirectoriesFromRoots(_0x12f81c){const _0x3065b=a0_0x52a7b4,_0xdbd8a1=await getValidRootDirectories(_0x12f81c);if(_0xdbd8a1['length']>0x0)allowedDirectories=[..._0xdbd8a1],console[_0x3065b(0x235)](_0x3065b(0x212)+_0xdbd8a1[_0x3065b(0x1d7)]+_0x3065b(0x1fd));else{console[_0x3065b(0x235)]('No\x20valid\x20root\x20directories\x20provided\x20by\x20client');if(ENABLE_WORKSPACE_MODE)try{const _0x4454e2=await detectWorkspaceRoot(WORKSPACE_ROOT);_0x4454e2&&(allowedDirectories=[_0x4454e2],console[_0x3065b(0x235)](_0x3065b(0x1bb)+_0x4454e2));}catch(_0x5301fe){console[_0x3065b(0x235)]('Warning:\x20Workspace\x20fallback\x20failed:\x20'+_0x5301fe);}}}server[a0_0x52a7b4(0x1de)](RootsListChangedNotificationSchema,async()=>{const _0x381264=a0_0x52a7b4;try{const _0xd54666=await server[_0x381264(0x218)]();_0xd54666&&_0x381264(0x1eb)in _0xd54666&&await updateAllowedDirectoriesFromRoots(_0xd54666['roots']);}catch(_0x126e09){console[_0x381264(0x235)](_0x381264(0x1d1),_0x126e09 instanceof Error?_0x126e09[_0x381264(0x15e)]:String(_0x126e09));}}),server[a0_0x52a7b4(0x1aa)]=async()=>{const _0xa8ad5=a0_0x52a7b4,_0x55cc31=server[_0xa8ad5(0x1f6)]();if(_0x55cc31?.[_0xa8ad5(0x1eb)])try{const _0x1172fc=await server[_0xa8ad5(0x218)]();_0x1172fc&&'roots'in _0x1172fc?await updateAllowedDirectoriesFromRoots(_0x1172fc['roots']):console[_0xa8ad5(0x235)](_0xa8ad5(0x14b));}catch(_0x5ab73d){console['error'](_0xa8ad5(0x154),_0x5ab73d instanceof Error?_0x5ab73d[_0xa8ad5(0x15e)]:String(_0x5ab73d));}else{if(allowedDirectories[_0xa8ad5(0x1d7)]>0x0)console[_0xa8ad5(0x235)](_0xa8ad5(0x19d),allowedDirectories);else{if(ENABLE_WORKSPACE_MODE)console['error'](_0xa8ad5(0x165));else throw new Error(_0xa8ad5(0x20f));}}};async function runServer(){const _0x2797a8=a0_0x52a7b4,_0x4881c2=new StdioServerTransport();await server['connect'](_0x4881c2),console[_0x2797a8(0x235)]('Secure\x20MCP\x20Filesystem\x20Server\x20running\x20on\x20stdio'),allowedDirectories[_0x2797a8(0x1d7)]===0x0&&console['error'](_0x2797a8(0x22e));}runServer()['catch'](_0x3c52d2=>{const _0x551288=a0_0x52a7b4;console[_0x551288(0x235)]('Fatal\x20error\x20running\x20server:',_0x3c52d2),process['exit'](0x1);});
|
package/dist/path-utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a1_0x275f(_0x3f4db5,_0x417503){_0x3f4db5=_0x3f4db5-0xe4;const _0x26c6f0=a1_0x26c6();let _0x275fc8=_0x26c6f0[_0x3f4db5];return _0x275fc8;}(function(_0x3e9c42,_0x584691){const _0xda64a9=a1_0x275f,_0x5e07dc=_0x3e9c42();while(!![]){try{const _0x4c2cde=-parseInt(_0xda64a9(0xe6))/0x1*(parseInt(_0xda64a9(0xf6))/0x2)+-parseInt(_0xda64a9(0xec))/0x3+-parseInt(_0xda64a9(0xef))/0x4+-parseInt(_0xda64a9(0xf1))/0x5+parseInt(_0xda64a9(0xf4))/0x6*(parseInt(_0xda64a9(0xe5))/0x7)+parseInt(_0xda64a9(0xeb))/0x8+parseInt(_0xda64a9(0xea))/0x9*(parseInt(_0xda64a9(0xf2))/0xa);if(_0x4c2cde===_0x584691)break;else _0x5e07dc['push'](_0x5e07dc['shift']());}catch(_0x43fb05){_0x5e07dc['push'](_0x5e07dc['shift']());}}}(a1_0x26c6,0x2b2bb));import a1_0x11b135 from'path';import a1_0x25d1ab from'os';function a1_0x26c6(){const _0x4960c4=['toUpperCase','6LKIvEl','slice','692qZRKDg','match','364630nSKfSn','769vEGStA','startsWith','/mnt/','charAt','10332kNsyEU','2508720BUZGvW','221466gnAKHX','replace','substring','1254128aMvoFc','normalize','283085TsCHwS','4540SLChtr'];a1_0x26c6=function(){return _0x4960c4;};return a1_0x26c6();}export function convertToWindowsPath(_0x1661ab){const _0x573fdc=a1_0x275f;if(_0x1661ab[_0x573fdc(0xe7)](_0x573fdc(0xe8))){const _0x2f0dd4=_0x1661ab['charAt'](0x5)[_0x573fdc(0xf3)](),_0x46a9cd=_0x1661ab[_0x573fdc(0xf5)](0x6)['replace'](/\//g,'\x5c');return _0x2f0dd4+':'+_0x46a9cd;}if(_0x1661ab['match'](/^\/[a-zA-Z]\//)){const _0x2c61e0=_0x1661ab[_0x573fdc(0xe9)](0x1)[_0x573fdc(0xf3)](),_0xadf681=_0x1661ab[_0x573fdc(0xf5)](0x2)[_0x573fdc(0xed)](/\//g,'\x5c');return _0x2c61e0+':'+_0xadf681;}if(_0x1661ab[_0x573fdc(0xe4)](/^[a-zA-Z]:/))return _0x1661ab[_0x573fdc(0xed)](/\//g,'\x5c');return _0x1661ab;}export function normalizePath(_0xa86f90){const _0x25465d=a1_0x275f;_0xa86f90=_0xa86f90['trim']()['replace'](/^["']|["']$/g,'');const _0x19aa4d=_0xa86f90['startsWith']('/')&&!_0xa86f90[_0x25465d(0xe4)](/^\/mnt\/[a-z]\//i)&&!_0xa86f90['match'](/^\/[a-zA-Z]\//);if(_0x19aa4d)return _0xa86f90['replace'](/\/+/g,'/')[_0x25465d(0xed)](/\/+$/,'');_0xa86f90=convertToWindowsPath(_0xa86f90);if(_0xa86f90['startsWith']('\x5c\x5c')){let _0x3e5f63=_0xa86f90;_0x3e5f63=_0x3e5f63['replace'](/^\\{2,}/,'\x5c\x5c');const _0x55a12c=_0x3e5f63[_0x25465d(0xee)](0x2)[_0x25465d(0xed)](/\\\\/g,'\x5c');_0xa86f90='\x5c\x5c'+_0x55a12c;}else _0xa86f90=_0xa86f90[_0x25465d(0xed)](/\\\\/g,'\x5c');let _0x3f2ce6=a1_0x11b135[_0x25465d(0xf0)](_0xa86f90);_0xa86f90[_0x25465d(0xe7)]('\x5c\x5c')&&!_0x3f2ce6['startsWith']('\x5c\x5c')&&(_0x3f2ce6='\x5c'+_0x3f2ce6);if(_0x3f2ce6[_0x25465d(0xe4)](/^[a-zA-Z]:/)){let _0x1b98bd=_0x3f2ce6[_0x25465d(0xed)](/\//g,'\x5c');return/^[a-z]:/['test'](_0x1b98bd)&&(_0x1b98bd=_0x1b98bd['charAt'](0x0)['toUpperCase']()+_0x1b98bd[_0x25465d(0xf5)](0x1)),_0x1b98bd;}return _0x3f2ce6[_0x25465d(0xed)](/\//g,'\x5c');}export function expandHome(_0x240a43){const _0x4a9caa=a1_0x275f;if(_0x240a43[_0x4a9caa(0xe7)]('~/')||_0x240a43==='~')return a1_0x11b135['join'](a1_0x25d1ab['homedir'](),_0x240a43[_0x4a9caa(0xf5)](0x1));return _0x240a43;}
|
package/dist/path-validation.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a2_0x5113(){const _0x9d8ca4=['isAbsolute','isArray','resolve','3BXfbhS','141930UMqgVw','565132yEnPde','11844jrTQNw','177758aWlNVI','startsWith','sep','includes','288KAehqZ','Allowed\x20directories\x20must\x20be\x20absolute\x20paths\x20after\x20normalization','2111112BqTOBD','normalize','string','Path\x20must\x20be\x20absolute\x20after\x20normalization','1040225xuGkEW','some','44212wAmAKn'];a2_0x5113=function(){return _0x9d8ca4;};return a2_0x5113();}(function(_0x541197,_0xe43549){const _0xf6ee3d=a2_0x1474,_0x79026a=_0x541197();while(!![]){try{const _0x1597f5=parseInt(_0xf6ee3d(0x1ea))/0x1+-parseInt(_0xf6ee3d(0x1e9))/0x2+-parseInt(_0xf6ee3d(0x1e6))/0x3*(-parseInt(_0xf6ee3d(0x1e8))/0x4)+-parseInt(_0xf6ee3d(0x1e0))/0x5+parseInt(_0xf6ee3d(0x1ee))/0x6*(parseInt(_0xf6ee3d(0x1e2))/0x7)+-parseInt(_0xf6ee3d(0x1f0))/0x8+parseInt(_0xf6ee3d(0x1e7))/0x9;if(_0x1597f5===_0xe43549)break;else _0x79026a['push'](_0x79026a['shift']());}catch(_0x2c924b){_0x79026a['push'](_0x79026a['shift']());}}}(a2_0x5113,0x2717b));function a2_0x1474(_0x168936,_0x53576a){_0x168936=_0x168936-0x1dd;const _0x511361=a2_0x5113();let _0x14744a=_0x511361[_0x168936];return _0x14744a;}import a2_0x9c3f62 from'path';export function isPathWithinAllowedDirectories(_0x5eafe3,_0xaa3c43){const _0xcedbd7=a2_0x1474;if(typeof _0x5eafe3!==_0xcedbd7(0x1de)||!Array[_0xcedbd7(0x1e4)](_0xaa3c43))return![];if(!_0x5eafe3||_0xaa3c43['length']===0x0)return![];if(_0x5eafe3[_0xcedbd7(0x1ed)]('\x00'))return![];let _0x2fe410;try{_0x2fe410=a2_0x9c3f62[_0xcedbd7(0x1e5)](a2_0x9c3f62[_0xcedbd7(0x1dd)](_0x5eafe3));}catch{return![];}if(!a2_0x9c3f62[_0xcedbd7(0x1e3)](_0x2fe410))throw new Error(_0xcedbd7(0x1df));return _0xaa3c43[_0xcedbd7(0x1e1)](_0x3134f0=>{const _0x519c0e=_0xcedbd7;if(typeof _0x3134f0!==_0x519c0e(0x1de)||!_0x3134f0)return![];if(_0x3134f0[_0x519c0e(0x1ed)]('\x00'))return![];let _0x595d5a;try{_0x595d5a=a2_0x9c3f62[_0x519c0e(0x1e5)](a2_0x9c3f62[_0x519c0e(0x1dd)](_0x3134f0));}catch{return![];}if(!a2_0x9c3f62[_0x519c0e(0x1e3)](_0x595d5a))throw new Error(_0x519c0e(0x1ef));if(_0x2fe410===_0x595d5a)return!![];if(_0x595d5a===a2_0x9c3f62[_0x519c0e(0x1ec)])return _0x2fe410['startsWith'](a2_0x9c3f62[_0x519c0e(0x1ec)]);return _0x2fe410[_0x519c0e(0x1eb)](_0x595d5a+a2_0x9c3f62['sep']);});}
|
package/dist/roots-utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0xccc81a,_0x4428e4){const _0x5628cb=a3_0x3e38,_0x368924=_0xccc81a();while(!![]){try{const _0x286722=-parseInt(_0x5628cb(0xa2))/0x1*(-parseInt(_0x5628cb(0xb8))/0x2)+parseInt(_0x5628cb(0xb1))/0x3+-parseInt(_0x5628cb(0xaf))/0x4*(-parseInt(_0x5628cb(0xb3))/0x5)+parseInt(_0x5628cb(0xa4))/0x6*(parseInt(_0x5628cb(0xa6))/0x7)+-parseInt(_0x5628cb(0xa1))/0x8+parseInt(_0x5628cb(0xb4))/0x9+parseInt(_0x5628cb(0xab))/0xa*(-parseInt(_0x5628cb(0xa7))/0xb);if(_0x286722===_0x4428e4)break;else _0x368924['push'](_0x368924['shift']());}catch(_0x1284b7){_0x368924['push'](_0x368924['shift']());}}}(a3_0x19a2,0x4267f));import{promises as a3_0x4e6092}from'fs';import a3_0x352cf3 from'path';import a3_0x4e28ba from'os';import{normalizePath}from'./path-utils.js';function a3_0x3e38(_0x53ed72,_0x437b27){_0x53ed72=_0x53ed72-0xa0;const _0x19a2ee=a3_0x19a2();let _0x3e3808=_0x19a2ee[_0x53ed72];return _0x3e3808;}async function parseRootUri(_0x5636aa){const _0x288664=a3_0x3e38;try{const _0xe676f7=_0x5636aa['startsWith'](_0x288664(0xb7))?_0x5636aa['slice'](0x7):_0x5636aa,_0x468513=_0xe676f7[_0x288664(0xad)]('~/')||_0xe676f7==='~'?a3_0x352cf3[_0x288664(0xa9)](a3_0x4e28ba['homedir'](),_0xe676f7[_0x288664(0xa0)](0x1)):_0xe676f7,_0x21192a=a3_0x352cf3[_0x288664(0xb9)](_0x468513),_0x2bdae9=await a3_0x4e6092[_0x288664(0xac)](_0x21192a);return normalizePath(_0x2bdae9);}catch{return null;}}function formatDirectoryError(_0x291798,_0x3b5fc6,_0x15e6a5){const _0x25ef30=a3_0x3e38;if(_0x15e6a5)return _0x25ef30(0xb0)+_0x15e6a5+':\x20'+_0x291798;const _0x2f0381=_0x3b5fc6 instanceof Error?_0x3b5fc6[_0x25ef30(0xb5)]:String(_0x3b5fc6);return _0x25ef30(0xaa)+_0x291798+'\x20due\x20to\x20error:\x20'+_0x2f0381;}export async function getValidRootDirectories(_0x4452c8){const _0x2ad414=a3_0x3e38,_0x4b1228=[];for(const _0x4689e2 of _0x4452c8){const _0x355d38=await parseRootUri(_0x4689e2['uri']);if(!_0x355d38){console[_0x2ad414(0xa3)](formatDirectoryError(_0x4689e2['uri'],undefined,_0x2ad414(0xb6)));continue;}try{const _0x522189=await a3_0x4e6092[_0x2ad414(0xa5)](_0x355d38);_0x522189[_0x2ad414(0xb2)]()?_0x4b1228[_0x2ad414(0xae)](_0x355d38):console['error'](formatDirectoryError(_0x355d38,undefined,_0x2ad414(0xa8)));}catch(_0xbf54d7){console[_0x2ad414(0xa3)](formatDirectoryError(_0x355d38,_0xbf54d7));}}return _0x4b1228;}function a3_0x19a2(){const _0x507387=['push','968iuIyFY','Skipping\x20','1548105JmUdJS','isDirectory','4155MbtZeg','3534948xfqgox','message','invalid\x20path\x20or\x20inaccessible','file://','6XnhVfs','resolve','slice','3868056vvMPvd','39119uuUMBh','error','36GPYJKj','stat','452018BzfJbl','11rAahHe','non-directory\x20root','join','Skipping\x20invalid\x20directory:\x20','8592040IfCRqf','realpath','startsWith'];a3_0x19a2=function(){return _0x507387;};return a3_0x19a2();}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env npx ts-node
|
|
2
|
+
(function(_0x3021aa,_0x1dd1b7){const _0x476385=a4_0x272e,_0x286a9f=_0x3021aa();while(!![]){try{const _0x47faf1=parseInt(_0x476385(0x213))/0x1*(parseInt(_0x476385(0x1da))/0x2)+parseInt(_0x476385(0x1e3))/0x3*(-parseInt(_0x476385(0x226))/0x4)+parseInt(_0x476385(0x217))/0x5+-parseInt(_0x476385(0x1f5))/0x6+parseInt(_0x476385(0x219))/0x7*(parseInt(_0x476385(0x1ff))/0x8)+parseInt(_0x476385(0x20c))/0x9+-parseInt(_0x476385(0x1fb))/0xa;if(_0x47faf1===_0x1dd1b7)break;else _0x286a9f['push'](_0x286a9f['shift']());}catch(_0x310884){_0x286a9f['push'](_0x286a9f['shift']());}}}(a4_0x121a,0x9edb1),(function(_0x308cbc,_0x86fadf){const _0x21dcd7=a4_0x272e,_0x2a30ea=a4_0x4c72,_0x1c77bc=_0x308cbc();while(!![]){try{const _0x25832f=-parseInt(_0x2a30ea(0x1a1))/0x1*(parseInt(_0x2a30ea(0x1b1))/0x2)+parseInt(_0x2a30ea(0x1c8))/0x3+-parseInt(_0x2a30ea(0x191))/0x4*(parseInt(_0x2a30ea(0x1e0))/0x5)+parseInt(_0x2a30ea(0x198))/0x6+parseInt(_0x2a30ea(0x1da))/0x7+-parseInt(_0x2a30ea(0x1d4))/0x8*(-parseInt(_0x2a30ea(0x1a9))/0x9)+parseInt(_0x2a30ea(0x195))/0xa*(-parseInt(_0x2a30ea(0x1f2))/0xb);if(_0x25832f===_0x86fadf)break;else _0x1c77bc[_0x21dcd7(0x211)](_0x1c77bc[_0x21dcd7(0x1dc)]());}catch(_0x50cfda){_0x1c77bc[_0x21dcd7(0x211)](_0x1c77bc[_0x21dcd7(0x1dc)]());}}}(a4_0x2012,0x84d85),(function(_0x40b5fd,_0x36c331){const _0x3bc939=a4_0x272e,_0x499df8=a4_0x4c72,_0x43bba5=a4_0x5f43,_0x5e8205=_0x40b5fd();while(!![]){try{const _0x23b0ef=parseInt(_0x43bba5(0x7d))/0x1*(parseInt(_0x43bba5(0xa0))/0x2)+parseInt(_0x43bba5(0x9f))/0x3+-parseInt(_0x43bba5(0xac))/0x4+parseInt(_0x43bba5(0x7a))/0x5*(-parseInt(_0x43bba5(0x8b))/0x6)+parseInt(_0x43bba5(0xc0))/0x7*(-parseInt(_0x43bba5(0xc6))/0x8)+parseInt(_0x43bba5(0x7c))/0x9+-parseInt(_0x43bba5(0x90))/0xa*(-parseInt(_0x43bba5(0xc2))/0xb);if(_0x23b0ef===_0x36c331)break;else _0x5e8205[_0x499df8(0x1de)](_0x5e8205[_0x499df8(0x19e)]());}catch(_0x35285d){_0x5e8205[_0x3bc939(0x211)](_0x5e8205[_0x3bc939(0x1dc)]());}}}(a4_0x5a16,0xeb34d),(function(_0x1bea49,_0x52feb3){const _0x2d69b6=a4_0x4c72,_0x2bad56=a4_0x5f43,_0x2be829=a4_0x1e63,_0x4e3596=_0x1bea49();while(!![]){try{const _0x39a3c3=parseInt(_0x2be829(0x12e))/0x1*(-parseInt(_0x2be829(0xe0))/0x2)+parseInt(_0x2be829(0x11f))/0x3+-parseInt(_0x2be829(0x128))/0x4*(parseInt(_0x2be829(0x123))/0x5)+-parseInt(_0x2be829(0xf6))/0x6*(-parseInt(_0x2be829(0xfd))/0x7)+parseInt(_0x2be829(0x107))/0x8+-parseInt(_0x2be829(0xe4))/0x9+-parseInt(_0x2be829(0x122))/0xa*(-parseInt(_0x2be829(0xe9))/0xb);if(_0x39a3c3===_0x52feb3)break;else _0x4e3596[_0x2d69b6(0x1de)](_0x4e3596[_0x2bad56(0x8c)]());}catch(_0x435db2){_0x4e3596[_0x2bad56(0x8d)](_0x4e3596[_0x2d69b6(0x19e)]());}}}(a4_0x49da,0x7de4e),(function(_0x211d77,_0x126bb){const _0xb439c4=a4_0x5f43,_0x433a6f=a4_0x1e63,_0x27f717=a4_0xbea0,_0x1f55ad=_0x211d77();while(!![]){try{const _0x29b9ee=-parseInt(_0x27f717(0x1b7))/0x1+-parseInt(_0x27f717(0x191))/0x2*(parseInt(_0x27f717(0x1dd))/0x3)+parseInt(_0x27f717(0x1cf))/0x4*(parseInt(_0x27f717(0x1a0))/0x5)+-parseInt(_0x27f717(0x1ba))/0x6*(parseInt(_0x27f717(0x1c6))/0x7)+-parseInt(_0x27f717(0x1d7))/0x8*(-parseInt(_0x27f717(0x1b8))/0x9)+-parseInt(_0x27f717(0x1af))/0xa*(-parseInt(_0x27f717(0x1cb))/0xb)+parseInt(_0x27f717(0x1ce))/0xc;if(_0x29b9ee===_0x126bb)break;else _0x1f55ad[_0xb439c4(0x8d)](_0x1f55ad[_0x433a6f(0x10e)]());}catch(_0x574bf8){_0x1f55ad[_0x433a6f(0xf8)](_0x1f55ad[_0x433a6f(0x10e)]());}}}(a4_0x3aa6,0x5a596),function(_0x414a6d,_0x183481){const _0xbb7c7e=a4_0xbea0,_0x102f06=a4_0x135b,_0x2d7cb4=_0x414a6d();while(!![]){try{const _0x52a1c3=parseInt(_0x102f06(0xe7))/0x1+parseInt(_0x102f06(0x105))/0x2+-parseInt(_0x102f06(0xef))/0x3*(parseInt(_0x102f06(0xbf))/0x4)+parseInt(_0x102f06(0x106))/0x5+parseInt(_0x102f06(0xdd))/0x6*(-parseInt(_0x102f06(0xf5))/0x7)+parseInt(_0x102f06(0xc8))/0x8+-parseInt(_0x102f06(0xfb))/0x9*(parseInt(_0x102f06(0xca))/0xa);if(_0x52a1c3===_0x183481)break;else _0x2d7cb4[_0xbb7c7e(0x1b1)](_0x2d7cb4[_0xbb7c7e(0x1d5)]());}catch(_0x59c366){_0x2d7cb4[_0xbb7c7e(0x1b1)](_0x2d7cb4[_0xbb7c7e(0x1d5)]());}}}(a4_0x547f,0x3e131))))));function a4_0x5ce9(){const _0x22cf50=a4_0x5f43,_0x303f7b=a4_0x1e63,_0x534839=a4_0xbea0,_0x2f88cf=a4_0x135b,_0x3821ed=[_0x2f88cf(0xf3),_0x2f88cf(0xe4),_0x2f88cf(0x107),_0x2f88cf(0xbe),_0x2f88cf(0xde),_0x2f88cf(0xd3),_0x534839(0x1be),_0x2f88cf(0xc4),_0x534839(0x1b9),_0x2f88cf(0xf8),_0x2f88cf(0xe5),_0x2f88cf(0xc1),_0x534839(0x1c7),_0x2f88cf(0xd0),_0x2f88cf(0xd9),_0x2f88cf(0xe1),_0x2f88cf(0xc7),_0x2f88cf(0xe6),_0x534839(0x1a9),_0x2f88cf(0xe9),_0x2f88cf(0xd6),_0x2f88cf(0xd5),_0x2f88cf(0xc2),_0x2f88cf(0xcc),_0x2f88cf(0xd7),_0x534839(0x1a8),_0x2f88cf(0xf0),_0x2f88cf(0xc5),_0x2f88cf(0xf6),_0x2f88cf(0xe8),_0x2f88cf(0x103),_0x2f88cf(0xfe),_0x2f88cf(0xf2),_0x2f88cf(0xff),_0x2f88cf(0xee),_0x2f88cf(0xd8),_0x2f88cf(0xe2),_0x2f88cf(0xf9),_0x2f88cf(0xec),_0x2f88cf(0xfa),_0x2f88cf(0xcb),_0x2f88cf(0xe3),_0x303f7b(0xdf),_0x2f88cf(0xda),_0x2f88cf(0xc3),_0x2f88cf(0xdc),_0x2f88cf(0x101),_0x2f88cf(0xc0),_0x2f88cf(0xd4),_0x2f88cf(0xf1),_0x2f88cf(0xd1),_0x534839(0x1a2),_0x2f88cf(0xd2),_0x2f88cf(0xed),_0x2f88cf(0x102),_0x534839(0x1a3),_0x2f88cf(0xf4),_0x2f88cf(0x100),_0x2f88cf(0xeb),_0x534839(0x1a1),_0x22cf50(0x95),_0x2f88cf(0xf7)];return a4_0x5ce9=function(){return _0x3821ed;},a4_0x5ce9();}function a4_0x2012(){const _0x3b1571=a4_0x272e,_0x5467f6=[_0x3b1571(0x206),'current',_0x3b1571(0x1ec),'readFile','103EruPTq',_0x3b1571(0x23b),'209Qefgei',_0x3b1571(0x208),'\x0a๐ฆ\x20Testing\x20installed\x20version\x20detection...',_0x3b1571(0x215),'48KUuJLz','Could\x20not\x20compare\x20versions','3489895LkHbjH',_0x3b1571(0x239),_0x3b1571(0x201),_0x3b1571(0x21d),_0x3b1571(0x214),_0x3b1571(0x225),_0x3b1571(0x240),'3dUlqVe',_0x3b1571(0x207),_0x3b1571(0x244),_0x3b1571(0x20a),_0x3b1571(0x232),_0x3b1571(0x212),_0x3b1571(0x218),_0x3b1571(0x245),_0x3b1571(0x242),_0x3b1571(0x1e4),_0x3b1571(0x231),'11864zzpRNx',_0x3b1571(0x228),'83242odDznL','3474FcBhtp',_0x3b1571(0x1e0),_0x3b1571(0x1ef),_0x3b1571(0x1ea),_0x3b1571(0x22d),_0x3b1571(0x237),_0x3b1571(0x211),_0x3b1571(0x1e1),_0x3b1571(0x22f),_0x3b1571(0x1fc),_0x3b1571(0x1f9),'data','\x0a๐\x20Testing\x20update\x20detection...',_0x3b1571(0x21a),_0x3b1571(0x1f2),_0x3b1571(0x229),'8ZIRFVI',_0x3b1571(0x204),_0x3b1571(0x234),_0x3b1571(0x1df),_0x3b1571(0x1e5),'1195248vGjQSn','2577870QrCDmr',_0x3b1571(0x227),_0x3b1571(0x1e2),_0x3b1571(0x21f),'742841pPNlgP','12AiKcvE',_0x3b1571(0x1f3),_0x3b1571(0x230),_0x3b1571(0x210),_0x3b1571(0x205),'4ucnGVk',_0x3b1571(0x1f1),'2866278AExLqf',_0x3b1571(0x1e6),_0x3b1571(0x21b),_0x3b1571(0x238),_0x3b1571(0x1ed),_0x3b1571(0x200),_0x3b1571(0x1dc),_0x3b1571(0x22a),_0x3b1571(0x23e),_0x3b1571(0x1eb),'10091040wxACHE',_0x3b1571(0x1fd),_0x3b1571(0x216),'\x20โ\x20',_0x3b1571(0x1e8),_0x3b1571(0x1de),_0x3b1571(0x235),_0x3b1571(0x1fe),'341590DvNuKi',_0x3b1571(0x223),_0x3b1571(0x1e9),_0x3b1571(0x221),'3YVxfgl','4vUFHnX',_0x3b1571(0x1fa),_0x3b1571(0x1e7),_0x3b1571(0x246),_0x3b1571(0x20e),'1640LPHlgh',_0x3b1571(0x243),_0x3b1571(0x222)];return a4_0x2012=function(){return _0x5467f6;},a4_0x2012();}(function(_0x119c12,_0x320d3f){const _0x21838b=a4_0x135b,_0x573937=a4_0x125d,_0xc0ca96=_0x119c12();while(!![]){try{const _0x350209=parseInt(_0x573937(0xc5))/0x1*(parseInt(_0x573937(0xe4))/0x2)+-parseInt(_0x573937(0xc1))/0x3*(-parseInt(_0x573937(0xbf))/0x4)+parseInt(_0x573937(0xd3))/0x5*(-parseInt(_0x573937(0xbd))/0x6)+-parseInt(_0x573937(0xb3))/0x7+-parseInt(_0x573937(0xc0))/0x8+-parseInt(_0x573937(0xb4))/0x9+parseInt(_0x573937(0xb8))/0xa;if(_0x350209===_0x320d3f)break;else _0xc0ca96[_0x21838b(0xe5)](_0xc0ca96[_0x21838b(0xbe)]());}catch(_0x1cab02){_0xc0ca96[_0x21838b(0xe5)](_0xc0ca96[_0x21838b(0xbe)]());}}}(a4_0x5ce9,0x831d4));function a4_0x125d(_0x3f6347,_0x215164){_0x3f6347=_0x3f6347-0xa8;const _0x43384d=a4_0x5ce9();let _0x1221e8=_0x43384d[_0x3f6347];return _0x1221e8;}const a4_0x41fc8e=a4_0x5d88;function a4_0x4c72(_0x1bd3a2,_0x190822){_0x1bd3a2=_0x1bd3a2-0x191;const _0x42e765=a4_0x2012();let _0x465a06=_0x42e765[_0x1bd3a2];return _0x465a06;}(function(_0x352495,_0x49a9b4){const _0x369e78=a4_0x135b,_0x9774fa=a4_0x125d,_0x1500a5=a4_0x5d88,_0x23cedc=_0x352495();while(!![]){try{const _0x3d1fe6=-parseInt(_0x1500a5(0x198))/0x1*(-parseInt(_0x1500a5(0x1c0))/0x2)+parseInt(_0x1500a5(0x1bb))/0x3*(-parseInt(_0x1500a5(0x1ab))/0x4)+parseInt(_0x1500a5(0x193))/0x5*(parseInt(_0x1500a5(0x19b))/0x6)+-parseInt(_0x1500a5(0x1c1))/0x7*(parseInt(_0x1500a5(0x194))/0x8)+parseInt(_0x1500a5(0x1b2))/0x9+-parseInt(_0x1500a5(0x1b3))/0xa+-parseInt(_0x1500a5(0x1b4))/0xb*(-parseInt(_0x1500a5(0x190))/0xc);if(_0x3d1fe6===_0x49a9b4)break;else _0x23cedc[_0x369e78(0xe5)](_0x23cedc[_0x9774fa(0xb2)]());}catch(_0x2a1399){_0x23cedc[_0x369e78(0xe5)](_0x23cedc[_0x9774fa(0xb2)]());}}}(a4_0xea68,0x23b15));function a4_0x135b(_0x4ea04f,_0x1a54b4){_0x4ea04f=_0x4ea04f-0xbe;const _0x173ac1=a4_0x547f();let _0x35d423=_0x173ac1[_0x4ea04f];return _0x35d423;}import a4_0x4b81f0 from'axios';function a4_0xbea0(_0x3ed338,_0x3d306e){_0x3ed338=_0x3ed338-0x191;const _0x453bbe=a4_0x3aa6();let _0x88edcf=_0x453bbe[_0x3ed338];return _0x88edcf;}function a4_0x272e(_0x179e66,_0x276e78){_0x179e66=_0x179e66-0x1da;const _0x121af4=a4_0x121a();let _0x272e24=_0x121af4[_0x179e66];return _0x272e24;}function a4_0x5f43(_0x164e87,_0x54f2c4){_0x164e87=_0x164e87-0x68;const _0x28e1c8=a4_0x5a16();let _0x4712f8=_0x28e1c8[_0x164e87];return _0x4712f8;}import a4_0x5c9c88 from'semver';function a4_0x121a(){const _0x3716ca=['node_modules','10GVhOVd','119226JsoeXd','6452433IWXIjD','Already\x20up\x20to\x20date:\x20','parse','74TkxUkK','2070096LhrjTW','4504005rdqQPs','filter','1086JKBhPU','15800qKRdqJ','56iuAMFJ','push','468098zbsolM','2RvUXZA','1.0.1','๐งช\x20Testing\x20Auto-Update\x20Functionality\x0a','Expected\x20','4530240RWUfJx','\x0a๐ข\x20Testing\x20semver\x20comparison...','2757160oxXOUg','dirname','\x20passed,\x20','958554rexthq','log','\x0a๐\x20Results:\x20','1215795IopjIl','๐ก\x20Testing\x20npm\x20registry\x20connection...','error','7962zGPsmc','88QHjdxF','2778424mzDipZ','545931ThXHRf','4ikgtMS','2853IePpXn','243957ENHHrN','5QHbgXb','Fetch\x20@morphllm/morphmcp\x20version\x20from\x20npm','\x20failed','split',',\x20got\x20','419510VBnwZB','1511845VSrkdq','join','1192uyyZYa','138jLCHGI','75340SHoSZE','1398992KfuZHp','807188SgfNwx','122228dDxnHz','1736lPATRZ','774125nNoEWH','1362500CHLgJb','69033EzeNAK','version','semver.lt(','6TuFXTw','1266258DDQMZk','671nWSOGg','length','4123300Tjljwz','4311090UmGNDz','7351164wwfrUv','@morphllm/morphsdk','package.json','Read\x20installed\x20@morphllm/morphsdk\x20version','1149890UziuRZ','Failed\x20to\x20fetch','shift','utf-8','@morphllm/morphmcp','597285WCFVPs','Latest:\x20','SDK\x20update\x20detection','\x0aโ ๏ธ\x20\x20Some\x20tests\x20failed.\x20Check\x20the\x20output\x20above.\x0a','814524niBzzF','6954065MXPllX','passed','186492ACbCBL','2fdXiir','\x0aโจ\x20All\x20tests\x20passed!\x20Auto-update\x20functionality\x20is\x20working.\x0a','1.0.0','876rNaOKJ','860067sweNUI','210134vjgIGe','expected','733BPdoDx','5762477YWsOtg','8203352hJBiHf','catch','341pJqArm','/latest','301bYwDLr','6908100ZYwewU','0.8.0','https://registry.npmjs.org/','890287QXlsfW','Fetch\x20@morphllm/morphsdk\x20version\x20from\x20npm','3798486jenXXQ','12706120dAvdbI','6895wuCwRw','3934676xmVmLL','54117PlRYDh','16QnKkNt','Update\x20available:\x20','2Prmgiq','latest','repeat'];a4_0x121a=function(){return _0x3716ca;};return a4_0x121a();}import a4_0xee218b from'fs/promises';import a4_0x32e891 from'path';import{fileURLToPath}from'url';const __dirname=a4_0x32e891[a4_0x41fc8e(0x1a9)](fileURLToPath(import.meta.url)),results=[];function a4_0xea68(){const _0x3a8660=a4_0x1e63,_0xccfa48=a4_0xbea0,_0x72e9ea=a4_0x135b,_0x24b13b=a4_0x125d,_0x4893fa=[_0x24b13b(0xaf),_0xccfa48(0x1b9),_0x24b13b(0xde),_0x24b13b(0xca),_0xccfa48(0x1c2),_0x24b13b(0xab),_0x24b13b(0xd0),_0x24b13b(0xad),_0x24b13b(0xaa),_0x24b13b(0xb9),_0x24b13b(0xd7),_0x24b13b(0xd5),_0x72e9ea(0xc9),_0x24b13b(0xbe),_0x72e9ea(0x104),_0x24b13b(0xce),_0x24b13b(0xd1),_0x72e9ea(0xce),_0x24b13b(0xe5),_0x24b13b(0xac),_0x24b13b(0xcd),_0x72e9ea(0xdf),_0x24b13b(0xc6),_0x72e9ea(0xcd),_0x72e9ea(0xfd),_0x24b13b(0xdc),_0x24b13b(0xbb),_0x24b13b(0xcc),_0x24b13b(0xd6),_0x24b13b(0xc9),_0x24b13b(0xc2),_0x72e9ea(0x108),_0x24b13b(0xe2),_0x24b13b(0xdf),_0x24b13b(0xd2),_0x72e9ea(0xea),_0x3a8660(0x12c),_0x24b13b(0xe0),_0x24b13b(0xc4),_0x24b13b(0xc7),_0x72e9ea(0xfc),_0x72e9ea(0xdb),_0x24b13b(0xba),_0x24b13b(0xa8),_0x24b13b(0xe1),_0x72e9ea(0xcf),_0x24b13b(0xd8),_0x24b13b(0xc8),_0x72e9ea(0xe0),_0x24b13b(0xa9),_0x24b13b(0xae),_0x24b13b(0xdb),_0x24b13b(0xbc),_0x24b13b(0xb1),_0x24b13b(0xcb),_0x24b13b(0xe3),_0x24b13b(0xdd)];return a4_0xea68=function(){return _0x4893fa;},a4_0xea68();}function a4_0x3aa6(){const _0x54b175=a4_0x272e,_0x7d896e=a4_0x4c72,_0x16c703=a4_0x5f43,_0x532778=a4_0x1e63,_0x4af64d=[_0x532778(0x12a),_0x16c703(0x69),_0x532778(0xec),_0x532778(0xe2),_0x16c703(0xb0),_0x7d896e(0x1bc),_0x532778(0x12f),_0x532778(0x130),_0x532778(0xea),_0x532778(0x110),_0x532778(0x129),_0x532778(0xee),_0x532778(0xf9),_0x532778(0x131),_0x532778(0x111),_0x532778(0x103),_0x532778(0x112),_0x16c703(0xc1),_0x532778(0xf0),_0x532778(0xdc),_0x532778(0x113),_0x532778(0x119),_0x532778(0xeb),_0x16c703(0x6f),_0x532778(0xf8),_0x532778(0x114),_0x532778(0x101),_0x532778(0xf5),_0x532778(0x108),_0x532778(0x109),_0x16c703(0x6e),_0x16c703(0x70),_0x532778(0x11d),_0x532778(0xef),_0x16c703(0x86),_0x532778(0x10d),_0x532778(0x118),_0x532778(0xe5),_0x532778(0xe6),_0x16c703(0xa4),_0x16c703(0xca),_0x532778(0x121),_0x532778(0xf2),_0x532778(0x10b),_0x532778(0x120),_0x532778(0xe3),_0x532778(0x116),_0x532778(0x104),_0x532778(0x11b),_0x532778(0xfc),_0x54b175(0x23f),_0x532778(0xf4),'Installed:\x20',_0x532778(0x125),_0x532778(0xfb),_0x16c703(0xa9),_0x532778(0xf7),_0x532778(0xf1),_0x532778(0x102),_0x16c703(0x99),_0x532778(0x10e),_0x16c703(0x96),_0x532778(0x11c),_0x532778(0x10f),_0x532778(0x127),_0x532778(0x10a),_0x532778(0x115),_0x532778(0xed),_0x532778(0x134),_0x532778(0x106),_0x532778(0x11a),_0x532778(0x12d),_0x532778(0xfe),_0x16c703(0xb8),_0x532778(0x132),_0x532778(0x124),_0x532778(0x117),_0x532778(0x10c),_0x16c703(0xa6),_0x532778(0xde),_0x532778(0xfa)];return a4_0x3aa6=function(){return _0x4af64d;},a4_0x3aa6();}function a4_0x1e63(_0x446f6f,_0x401889){_0x446f6f=_0x446f6f-0xdc;const _0x2b3aca=a4_0x49da();let _0x135149=_0x2b3aca[_0x446f6f];return _0x135149;}function a4_0x5d88(_0x411cad,_0x177528){_0x411cad=_0x411cad-0x18f;const _0x1e61d1=a4_0xea68();let _0x12dc92=_0x1e61d1[_0x411cad];return _0x12dc92;}function test(_0x364bd2,_0x4d5809,_0x35b627){const _0x20e902=a4_0x41fc8e;results[_0x20e902(0x1ae)]({'name':_0x364bd2,'passed':_0x4d5809,'message':_0x35b627});const _0x4d837b=_0x4d5809?'โ
':'โ';console[_0x20e902(0x1bf)](_0x4d837b+'\x20'+_0x364bd2+':\x20'+_0x35b627);}function a4_0x5a16(){const _0xf1f9a4=a4_0x272e,_0x37ec49=a4_0x4c72,_0x13daab=[_0x37ec49(0x1d1),_0x37ec49(0x19b),_0xf1f9a4(0x1f0),_0x37ec49(0x199),_0x37ec49(0x1a2),_0x37ec49(0x1ab),_0xf1f9a4(0x1f4),_0xf1f9a4(0x1dd),_0xf1f9a4(0x236),_0xf1f9a4(0x20f),_0x37ec49(0x1e1),_0xf1f9a4(0x23c),_0x37ec49(0x1d6),_0x37ec49(0x1cc),_0x37ec49(0x1e8),_0x37ec49(0x1ad),_0x37ec49(0x1be),_0x37ec49(0x1b9),_0x37ec49(0x19f),_0x37ec49(0x1ef),_0x37ec49(0x1af),_0x37ec49(0x196),_0x37ec49(0x1a5),_0x37ec49(0x1bf),_0x37ec49(0x1c3),_0x37ec49(0x1bd),_0xf1f9a4(0x241),_0x37ec49(0x1c6),_0xf1f9a4(0x1f8),_0x37ec49(0x1d3),_0xf1f9a4(0x233),_0x37ec49(0x1b5),_0xf1f9a4(0x1ee),_0x37ec49(0x1a4),_0x37ec49(0x1c0),_0x37ec49(0x1ae),_0x37ec49(0x19a),_0x37ec49(0x1d5),_0x37ec49(0x1b6),_0x37ec49(0x1e6),_0xf1f9a4(0x20d),'70GUexxX',_0x37ec49(0x1b4),_0xf1f9a4(0x23a),_0x37ec49(0x1ee),_0x37ec49(0x197),_0xf1f9a4(0x23d),'shift','push',_0x37ec49(0x1cb),_0x37ec49(0x1a0),'50AiidNN',_0x37ec49(0x1e2),_0x37ec49(0x1f0),_0x37ec49(0x1c7),_0x37ec49(0x1b3),_0xf1f9a4(0x22c),_0x37ec49(0x1d2),_0x37ec49(0x1e3),_0x37ec49(0x1ca),_0x37ec49(0x1d9),_0x37ec49(0x1e9),_0x37ec49(0x1f1),_0x37ec49(0x1a6),_0x37ec49(0x1dc),_0x37ec49(0x1dd),_0x37ec49(0x1b0),_0x37ec49(0x1d8),_0x37ec49(0x1e7),_0x37ec49(0x1ec),_0x37ec49(0x1c2),_0x37ec49(0x1e4),_0x37ec49(0x19c),_0x37ec49(0x1d0),_0x37ec49(0x1eb),_0x37ec49(0x193),_0x37ec49(0x1bb),_0x37ec49(0x1c9),_0xf1f9a4(0x22b),_0xf1f9a4(0x224),_0xf1f9a4(0x20b),'get',_0x37ec49(0x1ba),_0x37ec49(0x1db),_0x37ec49(0x1b8),_0x37ec49(0x19d),_0xf1f9a4(0x1f7),_0xf1f9a4(0x21e),_0x37ec49(0x1df),_0xf1f9a4(0x209),_0x37ec49(0x192),_0x37ec49(0x1d7),_0x37ec49(0x1c5),_0x37ec49(0x1a8),_0x37ec49(0x1c1),_0xf1f9a4(0x1db),_0x37ec49(0x1ed),_0x37ec49(0x1a3),_0xf1f9a4(0x203),_0xf1f9a4(0x22e)];return a4_0x5a16=function(){return _0x13daab;},a4_0x5a16();}function a4_0x547f(){const _0x5d0977=a4_0x5f43,_0x49eea6=a4_0x1e63,_0x5dc71e=a4_0xbea0,_0x645176=[_0x49eea6(0x105),_0x5dc71e(0x1d9),_0x5dc71e(0x1ad),_0x5dc71e(0x1a5),_0x5dc71e(0x196),_0x5dc71e(0x1bf),_0x5dc71e(0x19c),_0x5dc71e(0x1e0),_0x49eea6(0xe7),_0x5dc71e(0x1b3),_0x5dc71e(0x1d2),_0x5dc71e(0x1ae),_0x5dc71e(0x192),_0x5dc71e(0x1c0),_0x5dc71e(0x1de),_0x5dc71e(0x1c3),_0x49eea6(0x12b),_0x5d0977(0xc5),_0x5dc71e(0x1a6),_0x5dc71e(0x1c4),_0x5dc71e(0x1cc),_0x5dc71e(0x1b6),_0x5dc71e(0x1b0),_0x5dc71e(0x1ca),_0x5dc71e(0x1c5),_0x49eea6(0x126),_0x5dc71e(0x1ac),_0x5dc71e(0x1b2),_0x5d0977(0x6c),_0x49eea6(0xe1),_0x49eea6(0xff),_0x5dc71e(0x198),_0x5dc71e(0x1cd),_0x49eea6(0x100),_0x5dc71e(0x1d5),_0x5dc71e(0x195),_0x5d0977(0xb5),_0x5dc71e(0x1a4),_0x5dc71e(0x199),_0x5dc71e(0x1c8),_0x5dc71e(0x1b5),_0x49eea6(0x133),_0x5dc71e(0x1d4),_0x5dc71e(0x1d8),_0x49eea6(0xe8),_0x5dc71e(0x197),_0x5dc71e(0x1bb),_0x5dc71e(0x1e1),_0x5dc71e(0x1da),_0x5dc71e(0x194),_0x5dc71e(0x19f),_0x5dc71e(0x1db),_0x5dc71e(0x1ab),_0x5dc71e(0x1d0),_0x5dc71e(0x1b4),_0x5dc71e(0x1d6),_0x5dc71e(0x19e),_0x5dc71e(0x1bd),_0x5dc71e(0x1df),_0x5dc71e(0x1c1),_0x49eea6(0xf3),_0x5dc71e(0x19b),_0x5dc71e(0x1bc),_0x5dc71e(0x1aa),_0x49eea6(0xdd),_0x5dc71e(0x19d),_0x5dc71e(0x19a),_0x5dc71e(0x193),_0x5dc71e(0x1dc),_0x5dc71e(0x1d3),_0x5dc71e(0x1d1),_0x5dc71e(0x1c9),_0x49eea6(0x11e),_0x5dc71e(0x1b1),_0x5dc71e(0x1a7)];return a4_0x547f=function(){return _0x645176;},a4_0x547f();}async function getInstalledVersion(_0x28f2b8){const _0x852f6c=a4_0x125d,_0x492a55=a4_0x41fc8e;try{const _0x5ade34=a4_0x32e891[_0x492a55(0x1c2)](__dirname,_0x852f6c(0xda),..._0x28f2b8[_0x492a55(0x1ac)]('/'),_0x492a55(0x195)),_0x5f1ca6=await a4_0xee218b[_0x852f6c(0xd9)](_0x5ade34,_0x492a55(0x1a8)),_0x4b56da=JSON[_0x852f6c(0xb6)](_0x5f1ca6);return _0x4b56da[_0x492a55(0x1c6)]||null;}catch{return null;}}async function getLatestVersion(_0x543ece){const _0x4482f9=a4_0x125d,_0x428971=a4_0x41fc8e;try{const _0x2758f8=await a4_0x4b81f0[_0x4482f9(0xcf)](_0x428971(0x1ad)+_0x543ece+_0x428971(0x1a2),{'timeout':0x2710});return _0x2758f8[_0x428971(0x1b6)]?.[_0x428971(0x1c6)]||null;}catch{return null;}}async function runTests(){const _0x1d4e79=a4_0x135b,_0x132fb3=a4_0x125d,_0xdc3af1=a4_0x41fc8e;console[_0xdc3af1(0x1bf)](_0x132fb3(0xd4)),console[_0xdc3af1(0x1bf)]('='[_0xdc3af1(0x19a)](0x32)+'\x0a'),console[_0xdc3af1(0x1bf)](_0xdc3af1(0x1c4));const _0x1dfa82=await getLatestVersion(_0xdc3af1(0x196));test(_0xdc3af1(0x1ba),_0x1dfa82!==null,_0x1dfa82?_0x1d4e79(0xc6)+_0x1dfa82:_0xdc3af1(0x1b1));const _0x3bb040=await getLatestVersion(_0x132fb3(0xc3));test(_0xdc3af1(0x1bd),_0x3bb040!==null,_0x3bb040?_0x1d4e79(0xc6)+_0x3bb040:_0xdc3af1(0x1b1)),console[_0xdc3af1(0x1bf)](_0xdc3af1(0x1c5));const _0x389a7e=await getInstalledVersion(_0xdc3af1(0x196));test(_0x132fb3(0xb0),_0x389a7e!==null,_0x389a7e?_0xdc3af1(0x1a1)+_0x389a7e:_0xdc3af1(0x192)),console[_0xdc3af1(0x1bf)](_0xdc3af1(0x1aa));const _0x2094dc=[{'current':_0xdc3af1(0x197),'latest':_0xdc3af1(0x1b7),'expected':!![]},{'current':_0xdc3af1(0x1b7),'latest':_0xdc3af1(0x197),'expected':![]},{'current':_0xdc3af1(0x197),'latest':_0xdc3af1(0x197),'expected':![]},{'current':_0xdc3af1(0x1c7),'latest':_0xdc3af1(0x197),'expected':!![]}];for(const _0x20f603 of _0x2094dc){const _0x3a89d5=a4_0x5c9c88['lt'](_0x20f603[_0xdc3af1(0x1af)],_0x20f603[_0xdc3af1(0x1b5)]);test(_0xdc3af1(0x1a0)+_0x20f603[_0x132fb3(0xd7)]+',\x20'+_0x20f603[_0xdc3af1(0x1b5)]+')',_0x3a89d5===_0x20f603[_0xdc3af1(0x19f)],_0xdc3af1(0x1bc)+_0x20f603[_0x132fb3(0xdb)]+_0xdc3af1(0x1c3)+_0x3a89d5);}console[_0xdc3af1(0x1bf)](_0xdc3af1(0x19d));if(_0x389a7e&&_0x1dfa82){const _0x1f8237=a4_0x5c9c88['lt'](_0x389a7e,_0x1dfa82);test(_0xdc3af1(0x1a7),!![],_0x1f8237?_0xdc3af1(0x19c)+_0x389a7e+_0xdc3af1(0x1be)+_0x1dfa82:_0xdc3af1(0x1b0)+_0x389a7e);}else test(_0x132fb3(0xde),![],_0xdc3af1(0x19e));console[_0xdc3af1(0x1bf)]('\x0a'+'='[_0xdc3af1(0x19a)](0x32));const _0x5e537f=results[_0xdc3af1(0x199)](_0x54bcc8=>_0x54bcc8[_0xdc3af1(0x1a6)])[_0x1d4e79(0xd2)],_0x36a345=results[_0xdc3af1(0x199)](_0x21ddf4=>!_0x21ddf4[_0x132fb3(0xb7)])[_0xdc3af1(0x1a3)];console[_0x132fb3(0xbb)](_0xdc3af1(0x1a4)+_0x5e537f+_0xdc3af1(0x18f)+_0x36a345+_0xdc3af1(0x1a5)),_0x36a345===0x0?console[_0xdc3af1(0x1bf)](_0x132fb3(0xb5)):console[_0xdc3af1(0x1bf)](_0xdc3af1(0x1b8));}runTests()[a4_0x41fc8e(0x191)](console[a4_0x41fc8e(0x1b9)]);function a4_0x49da(){const _0x3d6de1=a4_0x272e,_0x1a59dc=a4_0x4c72,_0x22b538=a4_0x5f43,_0x11601a=[_0x22b538(0xb6),_0x22b538(0x87),_0x22b538(0x88),_0x22b538(0xcb),_0x22b538(0xba),_0x22b538(0x9a),_0x3d6de1(0x1dc),_0x22b538(0xbe),_0x22b538(0x74),_0x22b538(0xc3),_0x22b538(0x80),_0x22b538(0x9d),_0x22b538(0x93),_0x22b538(0x85),_0x22b538(0x78),_0x22b538(0x7e),'Not\x20found\x20(may\x20be\x20linked\x20locally)',_0x22b538(0xae),_0x1a59dc(0x1a7),_0x22b538(0xbf),_0x22b538(0x82),_0x22b538(0xa2),_0x1a59dc(0x1b2),_0x22b538(0x89),_0x22b538(0x6b),_0x1a59dc(0x1e5),_0x1a59dc(0x1aa),_0x22b538(0x77),_0x22b538(0x91),_0x22b538(0xad),_0x22b538(0xb3),_0x22b538(0x94),_0x22b538(0x71),_0x1a59dc(0x1ac),_0x1a59dc(0x1cd),_0x22b538(0xa3),_0x22b538(0xc4),_0x3d6de1(0x202),_0x22b538(0x79),_0x22b538(0x97),_0x22b538(0x75),_0x22b538(0x7f),_0x22b538(0xab),_0x22b538(0xc8),_0x22b538(0xbb),_0x22b538(0xb4),_0x22b538(0x73),_0x22b538(0xbc),_0x22b538(0xaf),_0x22b538(0xb9),_0x1a59dc(0x1c4),_0x22b538(0x83),_0x22b538(0x9e),_0x22b538(0x8e),_0x22b538(0x9c),_0x22b538(0x6d),_0x22b538(0x98),_0x22b538(0xbd),_0x22b538(0x84),_0x22b538(0x92),_0x22b538(0x7b),_0x22b538(0x8f),_0x22b538(0xb2),_0x22b538(0x6a),'13404FlcuRz',_0x22b538(0x68),_0x22b538(0x8a),_0x22b538(0xb7),_0x3d6de1(0x1f6),_0x22b538(0xa7),_0x22b538(0xaa),_0x1a59dc(0x1b7),_0x22b538(0xa1),_0x22b538(0x8d),_0x22b538(0x81),_0x22b538(0x9b),_0x22b538(0x72),_0x22b538(0x76),_0x22b538(0xc7),_0x22b538(0xb1),_0x22b538(0xc9),_0x3d6de1(0x220),_0x22b538(0xa8),_0x3d6de1(0x21c),_0x1a59dc(0x1ce),_0x22b538(0xa5),_0x1a59dc(0x1cf),_0x1a59dc(0x194),_0x1a59dc(0x1ea)];return a4_0x49da=function(){return _0x11601a;},a4_0x49da();}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@morphllm/morphmcp",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.70",
|
|
4
4
|
"description": "Fast & accurate MCP server with AI-powered file editing and intelligent code search. Prevents context pollution and saves time for a better user experience.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Morph (https://morphllm.com)",
|