m8-framework-mcp 1.0.6 → 1.0.7

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.
Files changed (2) hide show
  1. package/build/index.js +5 -5
  2. package/package.json +1 -1
package/build/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
- import{McpServer as ts}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as ss}from"@modelcontextprotocol/sdk/server/stdio.js";import{z as d}from"zod";import{fileURLToPath as os}from"url";import{dirname as ns,join as Be}from"path";import{existsSync as rs}from"fs";import*as I from"path";import*as j from"fs";import*as G from"path";function Ke(t){try{return j.readFileSync(t,"utf-8")}catch(e){return console.error(`[Parser] \u8BFB\u53D6\u6587\u4EF6\u5931\u8D25: ${t}`,e),""}}function $(t){let e=[];try{if(!j.existsSync(t))return console.error(`[Parser] \u76EE\u5F55\u4E0D\u5B58\u5728: ${t}`),e;let s=j.readdirSync(t,{withFileTypes:!0});for(let o of s){let n=G.join(t,o.name);o.isDirectory()?e.push(...$(n)):o.isFile()&&o.name.endsWith(".md")&&e.push(n)}}catch(s){console.error(`[Parser] \u626B\u63CF\u76EE\u5F55\u5931\u8D25: ${t}`,s)}return e}function Ye(t){let e=[];for(let s of t){if(/^\|[\s\-:]+\|$/.test(s.trim()))continue;let o=s.split("|").map(n=>n.trim()).filter(n=>n!=="");o.length>0&&e.push(o)}return e}function b(t){let e=Ke(t),s=[],o="",n=e.split(`
2
+ import{McpServer as ts}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as ss}from"@modelcontextprotocol/sdk/server/stdio.js";import{z as d}from"zod";import{fileURLToPath as os}from"url";import{dirname as ns,join as Be}from"path";import{existsSync as rs}from"fs";import*as P from"path";import*as j from"fs";import*as G from"path";function Ke(t){try{return j.readFileSync(t,"utf-8")}catch(e){return console.error(`[Parser] \u8BFB\u53D6\u6587\u4EF6\u5931\u8D25: ${t}`,e),""}}function $(t){let e=[];try{if(!j.existsSync(t))return console.error(`[Parser] \u76EE\u5F55\u4E0D\u5B58\u5728: ${t}`),e;let s=j.readdirSync(t,{withFileTypes:!0});for(let o of s){let n=G.join(t,o.name);o.isDirectory()?e.push(...$(n)):o.isFile()&&o.name.endsWith(".md")&&e.push(n)}}catch(s){console.error(`[Parser] \u626B\u63CF\u76EE\u5F55\u5931\u8D25: ${t}`,s)}return e}function Ye(t){let e=[];for(let s of t){if(/^\|[\s\-:]+\|$/.test(s.trim()))continue;let o=s.split("|").map(n=>n.trim()).filter(n=>n!=="");o.length>0&&e.push(o)}return e}function b(t){let e=Ke(t),s=[],o="",n=e.split(`
3
3
  `),r=0;for(;r<n.length;){let a=n[r],i=a.match(/^(#{1,6})\s+(.+)$/);if(i){let l=i[1].length,c=i[2].trim();l===1&&!o&&(o=c),s.push({type:"heading",level:l,content:c}),r++;continue}if(a.startsWith("```")){let l=a.slice(3).trim(),c=[];for(r++;r<n.length&&!n[r].startsWith("```");)c.push(n[r]),r++;s.push({type:"code",content:c.join(`
4
4
  `),language:l||"text"}),r++;continue}if(a.startsWith("|")){let l=[a];for(r++;r<n.length&&n[r].startsWith("|");)l.push(n[r]),r++;let c=Ye(l);s.push({type:"table",content:l.join(`
5
5
  `),rows:c});continue}if(/^[\-\*\+]\s/.test(a)||/^\d+\.\s/.test(a)){let l=[a];for(r++;r<n.length&&(/^[\-\*\+]\s/.test(n[r])||/^\d+\.\s/.test(n[r])||/^\s+/.test(n[r]));)l.push(n[r]),r++;s.push({type:"list",content:l.join(`
6
6
  `)});continue}if(a.trim()){let l=[a];for(r++;r<n.length&&n[r].trim()&&!n[r].startsWith("#")&&!n[r].startsWith("```")&&!n[r].startsWith("|");)l.push(n[r]),r++;s.push({type:"paragraph",content:l.join(`
7
- `)});continue}r++}return{filePath:t,title:o,nodes:s,rawContent:e}}function A(t,e,s){let o=[],n=!1,r=0;for(let a of t){if(a.type==="heading"){if(a.content.toLowerCase().includes(e.toLowerCase())){if(!s||a.level===s){n=!0,r=a.level;continue}}else if(n&&a.level<=r)break}n&&o.push(a)}return o}function Y(){return{ejsH5:!1,ejsMiniProgram:!1,h5:!1,dingtalk:!1,wechat:!1,alipay:!1}}function Ze(t){let e=t.replace(".md","").replace(/^\d+-/,""),s=e.match(/^([a-zA-Z\-]+)(.*)$/);return s?{name:s[1].toLowerCase(),displayName:s[2]||s[1]}:{name:e.toLowerCase(),displayName:e}}function Xe(t){let e=t.split(I.sep);for(let s of e)if(s.includes("\u7EC4\u4EF6")||s.includes("UI"))return s.replace(/^\d+-/,"");return"\u5176\u4ED6"}function K(t){let e=[];if(t.length<2)return e;let s=t[0].map(i=>i.toLowerCase()),o=s.findIndex(i=>i.includes("\u53C2\u6570")||i.includes("name")||i.includes("\u5C5E\u6027")),n=s.findIndex(i=>i.includes("\u7C7B\u578B")||i.includes("type")),r=s.findIndex(i=>i.includes("\u9ED8\u8BA4")||i.includes("default")),a=s.findIndex(i=>i.includes("\u8BF4\u660E")||i.includes("\u63CF\u8FF0")||i.includes("description"));for(let i=1;i<t.length;i++){let l=t[i],c={name:o>=0&&l[o]?l[o].trim():"",type:n>=0&&l[n]?l[n].trim():"any",description:a>=0&&l[a]?l[a].trim():""};r>=0&&l[r]&&(c.default=l[r].trim()),c.name&&e.push(c)}return e}function Qe(t){let e=[];if(t.length<2)return e;let s=t[0].map(a=>a.toLowerCase()),o=s.findIndex(a=>a.includes("\u4E8B\u4EF6")||a.includes("name")||a.includes("\u540D")),n=s.findIndex(a=>a.includes("\u8BF4\u660E")||a.includes("\u63CF\u8FF0")),r=s.findIndex(a=>a.includes("\u53C2\u6570")||a.includes("\u56DE\u8C03"));for(let a=1;a<t.length;a++){let i=t[a],l={name:o>=0&&i[o]?i[o].trim():"",description:n>=0&&i[n]?i[n].trim():""};r>=0&&i[r]&&(l.params=i[r].trim()),l.name&&e.push(l)}return e}function qe(t){let e=Y();if(t.length<2)return e;let s=t[0].map(r=>r.toLowerCase()),o=t[1],n=[{keywords:["ejs","h5 \u5E94\u7528","h5\u5E94\u7528"],key:"ejsH5"},{keywords:["\u65B0\u70B9\u5C0F\u7A0B\u5E8F","ejs\u5C0F\u7A0B\u5E8F"],key:"ejsMiniProgram"},{keywords:["h5"],key:"h5"},{keywords:["\u9489\u9489"],key:"dingtalk"},{keywords:["\u5FAE\u4FE1"],key:"wechat"},{keywords:["\u652F\u4ED8\u5B9D"],key:"alipay"},{keywords:["weex"],key:"weex"}];for(let r=0;r<s.length&&r<o.length;r++){let a=s[r],i=o[r].trim().toLowerCase();for(let{keywords:l,key:c}of n)if(l.some(u=>a.includes(u))){i==="\u652F\u6301"||i==="\u662F"||i==="true"||i==="yes"?e[c]=!0:i==="\u4E0D\u652F\u6301"||i==="\u5426"||i==="false"||i==="no"?e[c]=!1:i&&(e[c]=o[r].trim());break}}return e}function et(t){let e=[],s="",o;for(let n of t)n.type==="heading"&&(s=n.content,n.content.includes("M8.3")||n.content.includes("vue2")?o="M8.3":(n.content.includes("M8.4")||n.content.includes("vue3"))&&(o="M8.4")),n.type==="code"&&n.language&&["html","vue","js","javascript","typescript"].includes(n.language.toLowerCase())&&e.push({title:s,code:n.content,language:n.language,frameworkVersion:o});return e}function tt(t){try{let e=b(t),s=I.basename(t),{name:o,displayName:n}=Ze(s),r=Xe(t),a="";for(let m of e.nodes)if(m.type==="paragraph"){a=m.content.split(`
8
- `)[0];break}let i=[],l=A(e.nodes,"props");for(let m of l)if(m.type==="table"&&m.rows){i=K(m.rows);break}if(i.length===0){let m=A(e.nodes,"api");for(let g of m)if(g.type==="table"&&g.rows){i=K(g.rows);break}}let c=[],u=A(e.nodes,"events");for(let m of u)if(m.type==="table"&&m.rows){c=Qe(m.rows);break}let p=Y();for(let m of e.nodes)if(m.type==="table"&&m.rows&&m.rows.length>=2){let g=m.rows[0].join(" ").toLowerCase();if(g.includes("\u5E73\u53F0")||g.includes("ejs")||g.includes("\u5FAE\u4FE1")){p=qe(m.rows);break}}let f=et(e.nodes);return{name:o,displayName:n||e.title||o,description:a||e.title,category:r,props:i,events:c,examples:f,platformSupport:p,filePath:t}}catch(e){return console.error(`[ComponentParser] \u89E3\u6790\u7EC4\u4EF6\u6587\u6863\u5931\u8D25: ${t}`,e),null}}function Z(t){let e=[],s=$(t);for(let o of s)if(o.includes("UI\u7EC4\u4EF6")||o.includes("009-")){let n=tt(o);n&&e.push(n)}return e}import*as S from"path";function Q(){return{ejsH5:!1,ejsMiniProgram:!1,h5:!1,dingtalk:!1,wechat:!1,alipay:!1}}function st(t){let s=S.basename(t,".md").match(/api_(\w+)/);if(s)return s[1];let n=S.basename(S.dirname(t)).match(/api_(\w+)/);return n?n[1]:"unknown"}function q(t){let e=[];if(t.length<2)return e;let s=t[0].map(i=>i.toLowerCase()),o=s.findIndex(i=>i.includes("\u53C2\u6570")||i.includes("name")),n=s.findIndex(i=>i.includes("\u7C7B\u578B")||i.includes("type")),r=s.findIndex(i=>i.includes("\u8BF4\u660E")||i.includes("\u63CF\u8FF0")),a=s.findIndex(i=>i.includes("\u5E73\u53F0")||i.includes("\u5DEE\u5F02"));for(let i=1;i<t.length;i++){let l=t[i],c={name:o>=0&&l[o]?l[o].trim():"",type:n>=0&&l[n]?l[n].trim():"any",description:r>=0&&l[r]?l[r].trim():""};a>=0&&l[a]&&(c.platformNote=l[a].trim()),(c.description.includes("\u5FC5\u586B")||c.description.includes("required"))&&(c.required=!0),c.name&&e.push(c)}return e}function ot(t){if(t.length<2)return;let e=q(t);if(e.length!==0)return{type:"object",description:"\u8FD4\u56DE\u503C\u5BF9\u8C61",fields:e}}function nt(t){let e=Q();if(t.length<2)return e;let s=t[0].map(r=>r.toLowerCase()),o=t[1],n=[{keywords:["ejs\uFF08h5 \u5E94\u7528","ejs\uFF08h5\u5E94\u7528","ejs(h5"],key:"ejsH5"},{keywords:["\u65B0\u70B9\u5C0F\u7A0B\u5E8F","ejs\uFF08\u65B0\u70B9"],key:"ejsMiniProgram"},{keywords:["h5"],key:"h5"},{keywords:["\u9489\u9489"],key:"dingtalk"},{keywords:["\u5FAE\u4FE1"],key:"wechat"},{keywords:["\u652F\u4ED8\u5B9D"],key:"alipay"},{keywords:["weex"],key:"weex"}];for(let r=0;r<s.length&&r<o.length;r++){let a=s[r],i=o[r].trim().toLowerCase();for(let{keywords:l,key:c}of n)if(l.some(u=>a.includes(u))){i==="\u652F\u6301"||i.includes("\u652F\u6301")?e[c]=!0:i==="\u4E0D\u652F\u6301"||i.includes("\u4E0D\u652F\u6301")?e[c]=!1:i&&(e[c]=o[r].trim());break}}return e}function rt(t){let e=[/支持版本[::]\s*[`><=]*\s*([\d.]+)/,/版本\s*[`><=]*\s*([\d.]+)\s*开始支持/,/ejs\s*[><=]+\s*([\d.]+[a-z]*)/i,/v([\d.]+)\s*版本/];for(let s of e){let o=t.match(s);if(o)return o[1]}}function at(t){let e=[];try{let s=b(t),o=st(t),n=null,r="",a=[];for(let i of s.nodes)i.type==="heading"&&i.level===2?(n&&n.name&&(X(n,a),e.push(n)),n={module:o,name:i.content.replace(/[`*]/g,"").trim(),description:"",params:[],examples:[],platformSupport:Q(),filePath:t},a=[],r=""):i.type==="heading"&&i.level===3&&n?r=i.content.toLowerCase():n&&(a.push({...i,_section:r}),i.type==="paragraph"&&!n.description&&(n.description=i.content.split(`
7
+ `)});continue}r++}return{filePath:t,title:o,nodes:s,rawContent:e}}function I(t,e,s){let o=[],n=!1,r=0;for(let a of t){if(a.type==="heading"){if(a.content.toLowerCase().includes(e.toLowerCase())){if(!s||a.level===s){n=!0,r=a.level;continue}}else if(n&&a.level<=r)break}n&&o.push(a)}return o}function Y(){return{ejsH5:!1,ejsMiniProgram:!1,h5:!1,dingtalk:!1,wechat:!1,alipay:!1}}function Ze(t){let e=t.replace(".md","").replace(/^\d+-/,""),s=e.match(/^([a-zA-Z\-]+)(.*)$/);return s?{name:s[1].toLowerCase(),displayName:s[2]||s[1]}:{name:e.toLowerCase(),displayName:e}}function Xe(t){let e=t.split(P.sep);for(let s of e)if(s.includes("\u7EC4\u4EF6")||s.includes("UI"))return s.replace(/^\d+-/,"");return"\u5176\u4ED6"}function K(t){let e=[];if(t.length<2)return e;let s=t[0].map(i=>i.toLowerCase()),o=s.findIndex(i=>i.includes("\u53C2\u6570")||i.includes("name")||i.includes("\u5C5E\u6027")),n=s.findIndex(i=>i.includes("\u7C7B\u578B")||i.includes("type")),r=s.findIndex(i=>i.includes("\u9ED8\u8BA4")||i.includes("default")),a=s.findIndex(i=>i.includes("\u8BF4\u660E")||i.includes("\u63CF\u8FF0")||i.includes("description"));for(let i=1;i<t.length;i++){let l=t[i],c={name:o>=0&&l[o]?l[o].trim():"",type:n>=0&&l[n]?l[n].trim():"any",description:a>=0&&l[a]?l[a].trim():""};r>=0&&l[r]&&(c.default=l[r].trim()),c.name&&e.push(c)}return e}function Qe(t){let e=[];if(t.length<2)return e;let s=t[0].map(a=>a.toLowerCase()),o=s.findIndex(a=>a.includes("\u4E8B\u4EF6")||a.includes("name")||a.includes("\u540D")),n=s.findIndex(a=>a.includes("\u8BF4\u660E")||a.includes("\u63CF\u8FF0")),r=s.findIndex(a=>a.includes("\u53C2\u6570")||a.includes("\u56DE\u8C03"));for(let a=1;a<t.length;a++){let i=t[a],l={name:o>=0&&i[o]?i[o].trim():"",description:n>=0&&i[n]?i[n].trim():""};r>=0&&i[r]&&(l.params=i[r].trim()),l.name&&e.push(l)}return e}function qe(t){let e=Y();if(t.length<2)return e;let s=t[0].map(r=>r.toLowerCase()),o=t[1],n=[{keywords:["ejs","h5 \u5E94\u7528","h5\u5E94\u7528"],key:"ejsH5"},{keywords:["\u65B0\u70B9\u5C0F\u7A0B\u5E8F","ejs\u5C0F\u7A0B\u5E8F"],key:"ejsMiniProgram"},{keywords:["h5"],key:"h5"},{keywords:["\u9489\u9489"],key:"dingtalk"},{keywords:["\u5FAE\u4FE1"],key:"wechat"},{keywords:["\u652F\u4ED8\u5B9D"],key:"alipay"},{keywords:["weex"],key:"weex"}];for(let r=0;r<s.length&&r<o.length;r++){let a=s[r],i=o[r].trim().toLowerCase();for(let{keywords:l,key:c}of n)if(l.some(u=>a.includes(u))){i==="\u652F\u6301"||i==="\u662F"||i==="true"||i==="yes"?e[c]=!0:i==="\u4E0D\u652F\u6301"||i==="\u5426"||i==="false"||i==="no"?e[c]=!1:i&&(e[c]=o[r].trim());break}}return e}function et(t){let e=[],s="",o;for(let n of t)n.type==="heading"&&(s=n.content,n.content.includes("M8.3")||n.content.includes("vue2")?o="M8.3":(n.content.includes("M8.4")||n.content.includes("vue3"))&&(o="M8.4")),n.type==="code"&&n.language&&["html","vue","js","javascript","typescript"].includes(n.language.toLowerCase())&&e.push({title:s,code:n.content,language:n.language,frameworkVersion:o});return e}function tt(t){try{let e=b(t),s=P.basename(t),{name:o,displayName:n}=Ze(s),r=Xe(t),a="";for(let m of e.nodes)if(m.type==="paragraph"){a=m.content.split(`
8
+ `)[0];break}let i=[],l=I(e.nodes,"props");for(let m of l)if(m.type==="table"&&m.rows){i=K(m.rows);break}if(i.length===0){let m=I(e.nodes,"api");for(let g of m)if(g.type==="table"&&g.rows){i=K(g.rows);break}}let c=[],u=I(e.nodes,"events");for(let m of u)if(m.type==="table"&&m.rows){c=Qe(m.rows);break}let p=Y();for(let m of e.nodes)if(m.type==="table"&&m.rows&&m.rows.length>=2){let g=m.rows[0].join(" ").toLowerCase();if(g.includes("\u5E73\u53F0")||g.includes("ejs")||g.includes("\u5FAE\u4FE1")){p=qe(m.rows);break}}let f=et(e.nodes);return{name:o,displayName:n||e.title||o,description:a||e.title,category:r,props:i,events:c,examples:f,platformSupport:p,filePath:t}}catch(e){return console.error(`[ComponentParser] \u89E3\u6790\u7EC4\u4EF6\u6587\u6863\u5931\u8D25: ${t}`,e),null}}function Z(t){let e=[],s=$(t),o=["UI\u7EC4\u4EF6","\u5185\u7F6E\u7EC4\u4EF6","EPUI\u7EC4\u4EF6","009-","017-","018-"];console.error(`[ComponentParser] \u626B\u63CF\u5230 ${s.length} \u4E2A Markdown \u6587\u4EF6`);for(let n of s)if(o.some(a=>n.includes(a))){let a=P.basename(n);if(a.includes("\u4E0B\u8F7D")||a.includes("\u4F7F\u7528\u8BF4\u660E")||a.includes("\u6982\u8FF0"))continue;let i=tt(n);i&&(e.push(i),console.error(`[ComponentParser] \u89E3\u6790\u7EC4\u4EF6: ${i.name} (${i.displayName})`))}return console.error(`[ComponentParser] \u5171\u89E3\u6790 ${e.length} \u4E2A\u7EC4\u4EF6`),e}import*as S from"path";function Q(){return{ejsH5:!1,ejsMiniProgram:!1,h5:!1,dingtalk:!1,wechat:!1,alipay:!1}}function st(t){let s=S.basename(t,".md").match(/api_(\w+)/);if(s)return s[1];let n=S.basename(S.dirname(t)).match(/api_(\w+)/);return n?n[1]:"unknown"}function q(t){let e=[];if(t.length<2)return e;let s=t[0].map(i=>i.toLowerCase()),o=s.findIndex(i=>i.includes("\u53C2\u6570")||i.includes("name")),n=s.findIndex(i=>i.includes("\u7C7B\u578B")||i.includes("type")),r=s.findIndex(i=>i.includes("\u8BF4\u660E")||i.includes("\u63CF\u8FF0")),a=s.findIndex(i=>i.includes("\u5E73\u53F0")||i.includes("\u5DEE\u5F02"));for(let i=1;i<t.length;i++){let l=t[i],c={name:o>=0&&l[o]?l[o].trim():"",type:n>=0&&l[n]?l[n].trim():"any",description:r>=0&&l[r]?l[r].trim():""};a>=0&&l[a]&&(c.platformNote=l[a].trim()),(c.description.includes("\u5FC5\u586B")||c.description.includes("required"))&&(c.required=!0),c.name&&e.push(c)}return e}function ot(t){if(t.length<2)return;let e=q(t);if(e.length!==0)return{type:"object",description:"\u8FD4\u56DE\u503C\u5BF9\u8C61",fields:e}}function nt(t){let e=Q();if(t.length<2)return e;let s=t[0].map(r=>r.toLowerCase()),o=t[1],n=[{keywords:["ejs\uFF08h5 \u5E94\u7528","ejs\uFF08h5\u5E94\u7528","ejs(h5"],key:"ejsH5"},{keywords:["\u65B0\u70B9\u5C0F\u7A0B\u5E8F","ejs\uFF08\u65B0\u70B9"],key:"ejsMiniProgram"},{keywords:["h5"],key:"h5"},{keywords:["\u9489\u9489"],key:"dingtalk"},{keywords:["\u5FAE\u4FE1"],key:"wechat"},{keywords:["\u652F\u4ED8\u5B9D"],key:"alipay"},{keywords:["weex"],key:"weex"}];for(let r=0;r<s.length&&r<o.length;r++){let a=s[r],i=o[r].trim().toLowerCase();for(let{keywords:l,key:c}of n)if(l.some(u=>a.includes(u))){i==="\u652F\u6301"||i.includes("\u652F\u6301")?e[c]=!0:i==="\u4E0D\u652F\u6301"||i.includes("\u4E0D\u652F\u6301")?e[c]=!1:i&&(e[c]=o[r].trim());break}}return e}function rt(t){let e=[/支持版本[::]\s*[`><=]*\s*([\d.]+)/,/版本\s*[`><=]*\s*([\d.]+)\s*开始支持/,/ejs\s*[><=]+\s*([\d.]+[a-z]*)/i,/v([\d.]+)\s*版本/];for(let s of e){let o=t.match(s);if(o)return o[1]}}function at(t){let e=[];try{let s=b(t),o=st(t),n=null,r="",a=[];for(let i of s.nodes)i.type==="heading"&&i.level===2?(n&&n.name&&(X(n,a),e.push(n)),n={module:o,name:i.content.replace(/[`*]/g,"").trim(),description:"",params:[],examples:[],platformSupport:Q(),filePath:t},a=[],r=""):i.type==="heading"&&i.level===3&&n?r=i.content.toLowerCase():n&&(a.push({...i,_section:r}),i.type==="paragraph"&&!n.description&&(n.description=i.content.split(`
9
9
  `)[0]));n&&n.name&&(X(n,a),e.push(n))}catch(s){console.error(`[EjsApiParser] \u89E3\u6790 API \u6587\u6863\u5931\u8D25: ${t}`,s)}return e}function X(t,e){for(let s of e){let o=s._section||"";if(s.type==="table"&&s.rows){let n=s.rows[0]?.join(" ").toLowerCase()||"";n.includes("\u5E73\u53F0")||n.includes("ejs")||n.includes("\u5FAE\u4FE1")?t.platformSupport=nt(s.rows):o.includes("\u53C2\u6570")||n.includes("\u53C2\u6570")||n.includes("\u7C7B\u578B")?t.params=q(s.rows):(o.includes("\u8FD4\u56DE")||n.includes("\u8FD4\u56DE"))&&(t.returns=ot(s.rows))}if(s.type==="code"&&s.language&&["js","javascript"].includes(s.language.toLowerCase())&&t.examples.push({title:o||"\u4F7F\u7528\u793A\u4F8B",code:s.content,language:s.language}),s.type==="paragraph"){let n=rt(s.content);n&&!t.minVersion&&(t.minVersion=n)}}}function ee(t){let e=[],s=$(t);for(let o of s){let n=S.basename(o);if(n.startsWith("api_")&&n.endsWith(".md")){let r=at(o);e.push(...r)}}return e}function se(){return{ejsH5:!1,ejsMiniProgram:!1,h5:!1,dingtalk:!1,wechat:!1,alipay:!1}}function it(t){let s=t.replace(/\\/g,"/").match(/\/(\d{3})-(.+?)[\/]/);if(s&&s[2]){let o=s[2],n={\u6838\u5FC3\u901A\u7528Util:"\u6838\u5FC3\u901A\u7528Util",Util\u5DE5\u5177\u96C6:"Util\u5DE5\u5177\u96C6",UI\u7EC4\u4EF6:"UI\u7EC4\u4EF6",\u5178\u578B\u6848\u4F8B:"\u5178\u578B\u6848\u4F8B",\u89C4\u8303\u4E0E\u6A21\u5F0F:"\u89C4\u8303\u4E0E\u6A21\u5F0F",\u5185\u7F6E\u7EC4\u4EF6:"\u5185\u7F6E\u7EC4\u4EF6",EPUI\u7EC4\u4EF6:"EPUI\u7EC4\u4EF6",\u5DE5\u7A0B\u5316:"\u5DE5\u7A0B\u5316",Mock\u7684\u4F7F\u7528:"Mock\u7684\u4F7F\u7528",\u5E38\u89C1\u95EE\u9898:"\u5E38\u89C1\u95EE\u9898",\u9875\u9762\u5F00\u53D1:"\u9875\u9762\u5F00\u53D1"};if(o in n)return n[o]}return"\u5176\u4ED6"}function D(t){let e=[];if(t.length<2)return e;let s=t[0].map(l=>l.toLowerCase()),o=s.findIndex(l=>l.includes("\u53C2\u6570")||l.includes("name")),n=s.findIndex(l=>l.includes("\u7C7B\u578B")||l.includes("type")),r=s.findIndex(l=>l.includes("\u8BF4\u660E")||l.includes("\u63CF\u8FF0")),a=s.findIndex(l=>l.includes("\u5E73\u53F0")||l.includes("\u5DEE\u5F02")),i=s.findIndex(l=>l.includes("\u9ED8\u8BA4"));for(let l=1;l<t.length;l++){let c=t[l],u={name:o>=0&&c[o]?c[o].trim().replace(/`/g,""):"",type:n>=0&&c[n]?c[n].trim():"any",description:r>=0&&c[r]?c[r].trim():""};a>=0&&c[a]&&(u.platformNote=c[a].trim()),i>=0&&c[i]&&(u.default=c[i].trim()),(u.description.includes("\u5FC5\u586B")||u.description.includes("required"))&&(u.required=!0),u.name&&e.push(u)}return e}function lt(t){if(t.length<2)return;let e=D(t);if(e.length!==0)return{type:"object",description:"\u8FD4\u56DE\u503C\u5BF9\u8C61",fields:e}}function ct(t){let e=se();if(t.length<2)return e;let s=t[0].map(r=>r.toLowerCase()),o=t[1],n=[{keywords:["h5","ejs h5","ejs\uFF08h5"],key:"h5"},{keywords:["\u65B0\u70B9\u5C0F\u7A0B\u5E8F","ejs\u5C0F\u7A0B\u5E8F"],key:"ejsMiniProgram"},{keywords:["\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F","\u5FAE\u4FE1"],key:"wechat"},{keywords:["\u652F\u4ED8\u5B9D\u5C0F\u7A0B\u5E8F","\u652F\u4ED8\u5B9D"],key:"alipay"},{keywords:["\u9489\u9489"],key:"dingtalk"},{keywords:["weex"],key:"weex"}];for(let r=0;r<s.length&&r<o.length;r++){let a=s[r],i=o[r].trim();for(let{keywords:l,key:c}of n)if(l.some(u=>a.includes(u))){i==="\u221A"||i==="\u2713"||i.includes("\u652F\u6301")?e[c]=!0:i==="x"||i==="\xD7"||i.includes("\u4E0D\u652F\u6301")?e[c]=!1:i&&(e[c]=i);break}}return e}function ut(t){let e=[/`?v?([\d.]+)`?\s*版本/,/版本\s*`?v?([\d.]+)`?/,/`v([\d.]+[a-z\-\.]*)`/i];for(let s of e){let o=t.match(s);if(o)return o[1]}}function pt(t){return{isM84:t.includes("::: ifdef M84")||t.includes("ifdef M84"),isM83:t.includes("::: ifdef M83")||t.includes("ifdef M83")}}function dt(t){let e=[];try{let s=b(t),o=it(t),n=null,r="",a=[],i="";for(let l of s.nodes){if(l.type==="heading"&&l.level===1){i=l.content;continue}if(l.type==="heading"&&(l.level===2||l.level===3)){let c=l.content.replace(/[`*()]/g,"").trim();if((l.content.includes("(")||/^[a-z]/.test(c)||c.includes("Util."))&&l.level<=3){n&&n.name&&(te(n,a),e.push(n));let p=c;p.includes("(")&&(p=p.split("(")[0].trim()),p.includes("Util.")&&(p=p.replace("Util.","")),n={name:p,fullName:`Util.${p}`,category:o,description:"",params:[],examples:[],platformSupport:se(),filePath:t,usageScenario:i},a=[],r=""}else r=c.toLowerCase()}else n&&(a.push({...l,_section:r}),l.type==="paragraph"&&!n.description&&(n.description=l.content.split(`
10
10
  `)[0]))}n&&n.name&&(te(n,a),e.push(n))}catch(s){console.error(`[UtilParser] \u89E3\u6790 Util \u6587\u6863\u5931\u8D25: ${t}`,s)}return e}function te(t,e){for(let s of e){let o=s._section||"";if(s.type==="table"&&s.rows){let n=s.rows[0]?.join(" ").toLowerCase()||"";n.includes("h5")||n.includes("\u5C0F\u7A0B\u5E8F")||n.includes("\u5FAE\u4FE1")?s.rows.length===2?t.platformSupport=ct(s.rows):(o.includes("\u53C2\u6570")||n.includes("\u53C2\u6570")||n.includes("\u7C7B\u578B"))&&(t.params=D(s.rows)):o.includes("\u53C2\u6570")||n.includes("\u53C2\u6570")||n.includes("\u7C7B\u578B")?t.params=D(s.rows):(o.includes("\u8FD4\u56DE")||n.includes("\u8FD4\u56DE"))&&(t.returns=lt(s.rows))}if(s.type==="code"&&s.language&&["js","javascript","ts","typescript","html","vue"].includes(s.language.toLowerCase())){let n={title:o||"\u4F7F\u7528\u793A\u4F8B",code:s.content,language:s.language},r=pt(s.content);r.isM84?n.frameworkVersion="M8.4":r.isM83&&(n.frameworkVersion="M8.3"),t.examples.push(n)}if(s.type==="paragraph"){let n=ut(s.content);n&&!t.version&&(t.version=n)}}}function oe(t){let e=[],s=$(t),o=["005-\u6838\u5FC3\u901A\u7528Util","006-Util\u5DE5\u5177\u96C6","015-\u5DE5\u7A0B\u5316","012-Mock\u7684\u4F7F\u7528","014-\u5E38\u89C1\u95EE\u9898","001-\u9875\u9762\u5F00\u53D1","003-\u5178\u578B\u6848\u4F8B","002-\u89C4\u8303\u4E0E\u6A21\u5F0F","017-\u5185\u7F6E\u7EC4\u4EF6","011-vuex\u4E0Erouter\u7684\u4F7F\u7528"];for(let n of s){let r=n.replace(/\\/g,"/");if(o.some(a=>r.includes(a))){let a=dt(n);e.push(...a)}}return e}function ne(t){let e=[t.name.toLowerCase(),t.fullName.toLowerCase()],s={ajax:["\u8BF7\u6C42","\u63A5\u53E3","http","request","fetch","post","get","\u8C03\u7528\u63A5\u53E3"],upload:["\u4E0A\u4F20","\u6587\u4EF6\u4E0A\u4F20","\u56FE\u7247\u4E0A\u4F20","file"],ajaxAll:["\u5E76\u53D1\u8BF7\u6C42","\u591A\u4E2A\u8BF7\u6C42","promise.all"],date:["\u65E5\u671F","\u65F6\u95F4","time","format"],string:["\u5B57\u7B26\u4E32","str","text"],storage:["\u5B58\u50A8","\u7F13\u5B58","cache","localstorage"],base64:["\u7F16\u7801","\u89E3\u7801","encode","decode"],sha1:["\u52A0\u5BC6","hash","\u7B7E\u540D"],sha256:["\u52A0\u5BC6","hash","\u7B7E\u540D"],cookie:["cookie","\u4F1A\u8BDD"]};if(s[t.name.toLowerCase()]&&e.push(...s[t.name.toLowerCase()]),t.filePath&&(t.filePath.includes("string.md")||t.filePath.includes("Util.string"))&&e.push("validation","\u6821\u9A8C","\u6B63\u5219","regular","check","validate"),t.description){let o=t.description.replace(/[,。、;:""''()【】]/g," ").split(/\s+/).filter(n=>n.length>=2);e.push(...o.slice(0,5))}return[...new Set(e)]}var T={\u6309\u94AE:["button","\u70B9\u51FB","\u63D0\u4EA4","\u786E\u8BA4"],\u70B9\u51FB:["button","\u6309\u94AE","click"],\u8F93\u5165\u6846:["input","field","\u6587\u672C\u6846","\u8F93\u5165","textarea"],\u8F93\u5165:["input","field","\u8F93\u5165\u6846"],\u6587\u672C\u6846:["input","field","\u8F93\u5165\u6846","textarea"],\u9009\u62E9\u5668:["picker","select","\u4E0B\u62C9","\u9009\u62E9"],\u9009\u62E9:["picker","select","\u9009\u62E9\u5668","radio","checkbox"],\u4E0B\u62C9:["picker","select","\u9009\u62E9\u5668","dropdown"],\u5355\u9009:["radio","\u5355\u9009\u6846"],\u591A\u9009:["checkbox","\u590D\u9009\u6846","\u591A\u9009\u6846"],\u5F39\u7A97:["dialog","popup","modal","\u5BF9\u8BDD\u6846","\u5F39\u51FA\u5C42"],\u5BF9\u8BDD\u6846:["dialog","\u5F39\u7A97","modal"],\u5F39\u51FA\u5C42:["popup","\u5F39\u7A97","dialog"],\u5217\u8868:["list","cell","\u8868\u683C","table"],\u8868\u683C:["table","list","\u5217\u8868"],\u5355\u5143\u683C:["cell","\u5217\u8868\u9879"],\u8868\u5355:["form","\u63D0\u4EA4","\u8F93\u5165"],\u63D0\u4EA4:["submit","form","\u8868\u5355"],\u65E5\u671F:["date","calendar","\u65F6\u95F4","\u65E5\u5386","datepicker"],\u65F6\u95F4:["time","date","\u65E5\u671F","timepicker"],\u65E5\u5386:["calendar","date","\u65E5\u671F"],\u4E0A\u4F20:["upload","uploader","\u6587\u4EF6"],\u6587\u4EF6:["file","upload","\u4E0A\u4F20"],\u56FE\u7247:["image","img","\u56FE\u50CF","\u7167\u7247","picture"],\u52A0\u8F7D:["loading","spinner","\u7B49\u5F85"],\u7B49\u5F85:["loading","waiting","\u52A0\u8F7D"],\u63D0\u793A:["toast","notify","message","\u6D88\u606F","alert"],\u6D88\u606F:["message","notify","\u63D0\u793A","toast"],\u901A\u77E5:["notify","notification","\u6D88\u606F"],\u5BFC\u822A:["nav","header","tabbar","\u6807\u7B7E\u680F","navigation"],\u6807\u7B7E\u680F:["tabbar","tab","\u5BFC\u822A"],\u6807\u7B7E\u9875:["tab","tabs","\u6807\u7B7E"],\u5237\u65B0:["refresh","minirefresh","\u4E0B\u62C9\u5237\u65B0"],\u4E0B\u62C9\u5237\u65B0:["minirefresh","refresh","\u5237\u65B0"],\u8BF7\u6C42:["ajax","http","fetch","\u63A5\u53E3","request"],\u63A5\u53E3:["api","ajax","\u8BF7\u6C42","http"],\u641C\u7D22:["search","\u67E5\u627E","\u67E5\u8BE2"],\u5F00\u5173:["switch","\u5207\u6362"],\u6ED1\u5757:["slider","\u6ED1\u52A8"],\u8FDB\u5EA6:["progress","\u8FDB\u5EA6\u6761"],\u8BC4\u5206:["rate","\u661F\u7EA7","\u8BC4\u4EF7"],\u6B65\u9AA4:["steps","\u6B65\u9AA4\u6761"],\u6298\u53E0:["collapse","\u5C55\u5F00"],\u6807\u7B7E:["tag","\u6807\u8BB0"],\u5FBD\u6807:["badge","\u89D2\u6807"],\u7A7A\u72B6\u6001:["empty","\u65E0\u6570\u636E"],\u9AA8\u67B6\u5C4F:["skeleton","\u52A0\u8F7D\u5360\u4F4D"]};function E(t){let e=t.toLowerCase(),s=new Set([e]);if(T[t])for(let o of T[t])s.add(o.toLowerCase());for(let[o,n]of Object.entries(T))if(n.some(r=>r.toLowerCase()===e)){s.add(o.toLowerCase());for(let r of n)s.add(r.toLowerCase())}return Array.from(s)}function ft(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function mt(t,e,s){let o=t.toLowerCase(),n=e.toLowerCase(),r=s?.toLowerCase()||"";if(n===o||r===o)return 100;try{let l=new RegExp(`\\b${ft(o)}\\b`,"i");if(l.test(n)||l.test(r))return 95}catch{}if(n.startsWith(o)||r.startsWith(o))return 85;if(n.includes(o)||r.includes(o))return 75;let a=E(t);for(let l of a)if(l!==o){if(n===l||r===l)return 65;if(n.includes(l)||r.includes(l))return 60}let i=0;for(let l of o)(n.includes(l)||r.includes(l))&&i++;return Math.min(55,Math.floor(i/o.length*55))}async function ae(t,e){console.error("[Index] \u5F00\u59CB\u6784\u5EFA\u7D22\u5F15..."),console.error(`[Index] EJS \u6587\u6863\u8DEF\u5F84: ${t}`),console.error(`[Index] M8 \u6587\u6863\u8DEF\u5F84: ${e}`);let s=Z(e);console.error(`[Index] \u89E3\u6790\u5230 ${s.length} \u4E2A\u7EC4\u4EF6`);let o=ee(t);console.error(`[Index] \u89E3\u6790\u5230 ${o.length} \u4E2A API`);let n=oe(e);console.error(`[Index] \u89E3\u6790\u5230 ${n.length} \u4E2A Util \u65B9\u6CD5`);let r={components:new Map,ejsApis:new Map,utilMethods:new Map,standards:new Map,keywords:new Map,categories:new Map,buildTime:new Date};for(let a of s){let i=`component:${a.name}`;r.components.set(a.name,a);let l=re(a.name,a.displayName,a.description);for(let u of l){let p=r.keywords.get(u)||[];p.push(i),r.keywords.set(u,p)}let c=r.categories.get(a.category)||[];c.push(i),r.categories.set(a.category,c)}for(let a of o){let i=`api:${a.module}.${a.name}`;r.ejsApis.set(`${a.module}.${a.name}`,a);let l=re(a.name,a.module,a.description);for(let u of l){let p=r.keywords.get(u)||[];p.push(i),r.keywords.set(u,p)}let c=r.categories.get(`module:${a.module}`)||[];c.push(i),r.categories.set(`module:${a.module}`,c)}for(let a of n){let i=`util:${a.name}`;r.utilMethods.set(a.name.toLowerCase(),a);let l=ne(a);for(let u of l){let p=r.keywords.get(u)||[];p.push(i),r.keywords.set(u,p)}let c=r.categories.get(`util:${a.category}`)||[];c.push(i),r.categories.set(`util:${a.category}`,c)}return console.error(`[Index] \u7D22\u5F15\u6784\u5EFA\u5B8C\u6210\uFF0C\u5173\u952E\u8BCD\u6570: ${r.keywords.size}`),r}function re(...t){let e=new Set;for(let s of t){if(!s)continue;let o=s.toLowerCase();e.add(o);let n=o.split(/[\s\-_,.,。、;:""''()【】]+/);for(let a of n)a.length>=2&&e.add(a);let r=s.match(/[\u4e00-\u9fa5]+/g);if(r)for(let a of r){e.add(a);for(let i of a)e.add(i)}}return Array.from(e)}function x(t,e,s,o){return mt(t,e,o)}function V(t,e){let o={ejsh5:"ejsH5",ejs:"ejsH5",ejsminiprogram:"ejsMiniProgram",h5:"h5",dingtalk:"dingtalk",wechat:"wechat",alipay:"alipay",weex:"weex"}[e.toLowerCase()];if(!o)return!0;let n=t[o];return n===!0||typeof n=="string"&&n.length>0}function O(t,e,s={}){let o=[],n=e.toLowerCase(),a=s.enableSynonyms!==!1?E(e):[n];for(let[i,l]of t.components){if(s.category&&l.category!==s.category||s.platform&&!V(l.platformSupport,s.platform))continue;let c=0;c=Math.max(c,x(e,i,!0,l.displayName));for(let u of a)if(u!==n){let p=x(u,i,!0,l.displayName);c=Math.max(c,Math.min(p,65))}for(let u of a)if(l.description.toLowerCase().includes(u)){c=Math.max(c,50);break}for(let u of a)if(t.keywords.get(u)?.includes(`component:${i}`)){c=Math.max(c,55);break}c>0&&o.push({type:"component",id:`component:${i}`,name:i,displayName:l.displayName,description:l.description,score:c,platformSupport:l.platformSupport,category:l.category})}return o.sort((i,l)=>l.score-i.score),s.limit?o.slice(0,s.limit):o}function F(t,e,s={}){let o=[],n=e.toLowerCase(),a=s.enableSynonyms!==!1?E(e):[n];for(let[i,l]of t.ejsApis){if(s.module&&l.module!==s.module||s.platform&&!V(l.platformSupport,s.platform))continue;let c=0,u=`ejs.${l.module}.${l.name}`;c=Math.max(c,x(e,l.name,!0,u)),c=Math.max(c,x(e,`${l.module}.${l.name}`,!0)),l.module.toLowerCase()===n&&(c=Math.max(c,80));for(let p of a)if(p!==n){let f=x(p,l.name,!0,u);c=Math.max(c,Math.min(f,65))}for(let p of a)if(l.description.toLowerCase().includes(p)){c=Math.max(c,50);break}for(let p of a)if(t.keywords.get(p)?.includes(`api:${i}`)){c=Math.max(c,55);break}c>0&&o.push({type:"ejsApi",id:`api:${i}`,name:l.name,displayName:u,description:l.description,score:c,platformSupport:l.platformSupport,category:l.module})}return o.sort((i,l)=>l.score-i.score),s.limit?o.slice(0,s.limit):o}function _(t,e,s={}){let o=[],n=e.toLowerCase(),r=["ajax","\u8BF7\u6C42","http","request","fetch","post","get","\u63A5\u53E3","\u8C03\u7528\u63A5\u53E3"],a=["\u4E0A\u4F20","upload","\u6587\u4EF6\u4E0A\u4F20","\u56FE\u7247\u4E0A\u4F20"],i=r.some(c=>n.includes(c)),l=a.some(c=>n.includes(c));for(let[c,u]of t.utilMethods){if(s.category&&u.category!==s.category||s.platform&&!V(u.platformSupport,s.platform))continue;let p=0;p=Math.max(p,x(e,c,!0)),p=Math.max(p,x(e,u.fullName,!0)),u.description.toLowerCase().includes(n)&&(p=Math.max(p,50)),t.keywords.get(n)?.includes(`util:${c}`)&&(p=Math.max(p,60)),i&&c==="ajax"&&(p=Math.max(p,95)),l&&c==="upload"&&(p=Math.max(p,95)),p>0&&o.push({type:"util",id:`util:${c}`,name:u.name,displayName:u.fullName,description:u.description,score:p,platformSupport:u.platformSupport,category:u.category})}return o.sort((c,u)=>u.score-c.score),s.limit?o.slice(0,s.limit):o}function ie(t,e,s={}){let o=O(t,e,s),n=F(t,e,s),a=[..._(t,e,s),...o,...n];return a.sort((i,l)=>l.score-i.score),s.limit?a.slice(0,s.limit):a}function le(t,e,s={}){return!e||e.trim().length===0?[]:O(t,e.trim(),{...s,limit:s.limit||20})}function ce(t,e,s={}){return!e||e.trim().length===0?[]:F(t,e.trim(),{...s,limit:s.limit||20})}function ue(t,e){if(!e||e.trim().length===0)return{found:!1,error:"\u8BF7\u63D0\u4F9B\u7EC4\u4EF6\u540D\u79F0"};let s=e.toLowerCase().trim(),o=t.components.get(s);if(o)return{found:!0,component:o};let n=[];for(let[r,a]of t.components)(r.includes(s)||s.includes(r)||a.displayName.toLowerCase().includes(s))&&n.push(r);return{found:!1,error:`\u672A\u627E\u5230\u7EC4\u4EF6: ${e}`,suggestions:n.slice(0,5)}}function pe(t,e,s){if(!e||!s)return{found:!1,error:"\u8BF7\u63D0\u4F9B\u6A21\u5757\u540D\u548C API \u540D\u79F0"};let o=`${e.toLowerCase()}.${s.toLowerCase()}`,n=t.ejsApis.get(o);if(n){let a=[];for(let[i,l]of t.ejsApis)l.module===n.module&&i!==o&&a.push(l.name);return{found:!0,api:n,relatedApis:a.slice(0,5)}}let r=[];for(let[a,i]of t.ejsApis)(a.includes(s.toLowerCase())||i.name.toLowerCase().includes(s.toLowerCase()))&&r.push(`${i.module}.${i.name}`);return{found:!1,error:`\u672A\u627E\u5230 API: ejs.${e}.${s}`,suggestions:r.slice(0,5)}}var de={ajax:{components:[],apis:[],utils:["ajax"]},\u8BF7\u6C42:{components:[],apis:[],utils:["ajax"]},http:{components:[],apis:[],utils:["ajax"]},\u63A5\u53E3:{components:[],apis:[],utils:["ajax"]},\u8C03\u7528\u63A5\u53E3:{components:[],apis:[],utils:["ajax"]},fetch:{components:[],apis:[],utils:["ajax"]},post:{components:[],apis:[],utils:["ajax"]},get\u8BF7\u6C42:{components:[],apis:[],utils:["ajax"]},\u8868\u5355:{components:["form","field","input"],apis:[],utils:[]},\u8F93\u5165:{components:["field","input","textarea"],apis:[],utils:[]},\u9009\u62E9:{components:["picker","select","radio","checkbox"],apis:["ui.select"],utils:[]},\u65E5\u671F:{components:["datepicker","calendar"],apis:["ui.pickDate","ui.pickDateTime"],utils:["date"]},\u65F6\u95F4:{components:["datepicker"],apis:["ui.pickTime","ui.pickDateTime"],utils:["date"]},\u4E0A\u4F20:{components:["uploader"],apis:[],utils:["upload"]},\u6587\u4EF6:{components:["uploader"],apis:["io.chooseFile","io.downloadFile"],utils:["upload"]},\u6587\u4EF6\u4E0A\u4F20:{components:["uploader"],apis:[],utils:["upload"]},\u56FE\u7247\u4E0A\u4F20:{components:["uploader"],apis:["io.chooseImage"],utils:["upload"]},\u5217\u8868:{components:["cell","minirefresh"],apis:[],utils:[]},\u4E0B\u62C9\u5237\u65B0:{components:["minirefresh"],apis:[],utils:[]},\u52A0\u8F7D\u66F4\u591A:{components:["minirefresh"],apis:[],utils:[]},\u5F39\u7A97:{components:["dialog","popup"],apis:["ui.alert","ui.confirm"],utils:[]},\u63D0\u793A:{components:["toast","notify"],apis:["ui.toast","ui.alert"],utils:[]},\u786E\u8BA4:{components:["dialog"],apis:["ui.confirm"],utils:[]},\u52A0\u8F7D:{components:["loading"],apis:["ui.showWaiting","ui.closeWaiting"],utils:[]},\u5BFC\u822A:{components:["header","tabbar","tab"],apis:["navigator.push","navigator.pop"],utils:[]},\u6807\u7B7E\u9875:{components:["tab"],apis:[],utils:[]},\u5E95\u90E8\u680F:{components:["tabbar"],apis:[],utils:[]},\u62CD\u7167:{components:[],apis:["device.camera","io.chooseImage"],utils:[]},\u626B\u7801:{components:[],apis:["device.scan"],utils:[]},\u5B9A\u4F4D:{components:["amap"],apis:["device.getLocation"],utils:[]},\u5730\u56FE:{components:["amap"],apis:["device.getLocation"],utils:[]},\u7535\u8BDD:{components:[],apis:["device.callPhone"],utils:[]},\u5206\u4EAB:{components:[],apis:["device.sendTo"],utils:[]},\u5B58\u50A8:{components:[],apis:["storage.setItem","storage.getItem"],utils:["storage"]},\u7F13\u5B58:{components:[],apis:["storage.setItem","storage.getItem","storage.clear"],utils:["storage"]},\u65E5\u671F\u683C\u5F0F:{components:[],apis:[],utils:["date"]},\u5B57\u7B26\u4E32:{components:[],apis:[],utils:["string"]},\u52A0\u5BC6:{components:[],apis:[],utils:["sha1","sha256","base64"]},\u7F16\u7801:{components:[],apis:[],utils:["base64","charset"]},\u56FE\u7247:{components:["image","imagepreview"],apis:["io.chooseImage"],utils:[]},\u8F6E\u64AD:{components:["swipe"],apis:[],utils:[]},\u6B65\u9AA4:{components:["steps"],apis:[],utils:[]},\u8FDB\u5EA6:{components:["progress","circle"],apis:[],utils:[]},\u8BC4\u5206:{components:["rate"],apis:[],utils:[]},\u641C\u7D22:{components:["search"],apis:[],utils:[]},\u5F00\u5173:{components:["switch"],apis:[],utils:[]},\u6ED1\u5757:{components:["slider"],apis:[],utils:[]},\u6298\u53E0:{components:["collapse"],apis:[],utils:[]},\u6807\u7B7E:{components:["tag"],apis:[],utils:[]},\u5FBD\u6807:{components:["badge"],apis:[],utils:[]},\u7A7A\u72B6\u6001:{components:["empty"],apis:[],utils:[]},\u9AA8\u67B6\u5C4F:{components:["skeleton"],apis:[],utils:[]}},gt={ajax:"\u63A8\u8350\u4F7F\u7528 Util.ajax \u8FDB\u884C HTTP \u8BF7\u6C42\uFF0C\u5B83\u662F M8 \u6846\u67B6\u5BF9 axios \u7684\u5C01\u88C5\uFF0C\u652F\u6301\u81EA\u52A8\u4EE3\u7406\u3001token \u5904\u7406\u3001\u8BF7\u6C42\u53D6\u6D88\u7B49\u529F\u80FD\u3002",upload:"\u63A8\u8350\u4F7F\u7528 Util.upload \u8FDB\u884C\u6587\u4EF6\u4E0A\u4F20\uFF0C\u652F\u6301\u8DE8\u7AEF\uFF08H5\u3001\u5FAE\u4FE1\u3001\u652F\u4ED8\u5B9D\u5C0F\u7A0B\u5E8F\uFF09\uFF0C\u4F7F\u7528 filePath \u65B9\u5F0F\u53EF\u5B9E\u73B0\u6700\u4F73\u517C\u5BB9\u6027\u3002",date:"Util.date \u63D0\u4F9B\u65E5\u671F\u683C\u5F0F\u5316\u548C\u5904\u7406\u529F\u80FD\uFF0C\u652F\u6301\u591A\u79CD\u683C\u5F0F\u8F6C\u6362\u3002",storage:"Util.storage \u63D0\u4F9B\u672C\u5730\u5B58\u50A8\u529F\u80FD\uFF0C\u662F\u5BF9 localStorage \u7684\u5C01\u88C5\uFF0C\u652F\u6301\u8DE8\u7AEF\u4F7F\u7528\u3002",string:"Util.string \u63D0\u4F9B\u5B57\u7B26\u4E32\u5904\u7406\u5DE5\u5177\u65B9\u6CD5\u3002",base64:"Util.base64 \u63D0\u4F9B Base64 \u7F16\u7801\u89E3\u7801\u529F\u80FD\u3002",sha1:"Util.sha1 \u63D0\u4F9B SHA1 \u52A0\u5BC6\u529F\u80FD\u3002",sha256:"Util.sha256 \u63D0\u4F9B SHA256 \u52A0\u5BC6\u529F\u80FD\u3002"};function ht(t){let e=[],s=t.toLowerCase();for(let o of Object.keys(de))s.includes(o)&&e.push(o);return e}function H(t,e){if(!e)return!0;let o={ejsh5:"ejsH5",ejs:"ejsH5",h5:"h5",wechat:"wechat",alipay:"alipay",dingtalk:"dingtalk"}[e.toLowerCase()];if(!o)return!0;let n=t[o];return n===!0||typeof n=="string"&&n.length>0}function fe(t,e,s){let o=[],n=[],r=[],a=new Set,i=new Set,l=new Set,c=ht(e);for(let p of c){let f=de[p];if(f){for(let m of f.utils||[]){if(l.has(m))continue;let g=t.utilMethods?.get(m.toLowerCase());g&&H(g.platformSupport,s)&&(l.add(m),r.push({type:"util",name:g.name,displayName:g.fullName,description:g.description,reason:`\u5339\u914D\u9700\u6C42\u5173\u952E\u8BCD: ${p}`,score:95,platformSupport:g.platformSupport,usageTip:gt[m.toLowerCase()]}))}for(let m of f.components){if(a.has(m))continue;let g=t.components.get(m);g&&H(g.platformSupport,s)&&(a.add(m),o.push({type:"component",name:m,displayName:g.displayName,description:g.description,reason:`\u5339\u914D\u9700\u6C42\u5173\u952E\u8BCD: ${p}`,score:80,platformSupport:g.platformSupport}))}for(let m of f.apis){if(i.has(m))continue;let[g,L]=m.split("."),h=t.ejsApis.get(`${g}.${L}`);h&&H(h.platformSupport,s)&&(i.add(m),n.push({type:"ejsApi",name:h.name,displayName:`ejs.${h.module}.${h.name}`,description:h.description,reason:`\u5339\u914D\u9700\u6C42\u5173\u952E\u8BCD: ${p}`,score:70,platformSupport:h.platformSupport}))}}}if(o.length<3||n.length<2){let p=ie(t,e,{limit:10,platform:s});for(let f of p)if(f.type==="component"&&!a.has(f.name)){if(o.length<5){a.add(f.name);let m=t.components.get(f.name);m&&o.push({type:"component",name:f.name,displayName:m.displayName,description:m.description,reason:"\u6839\u636E\u9700\u6C42\u63CF\u8FF0\u641C\u7D22\u5339\u914D",score:f.score,platformSupport:m.platformSupport})}}else if(f.type==="ejsApi"&&!i.has(f.name)&&n.length<5){let m=f.id.replace("api:","");i.add(f.name);let g=t.ejsApis.get(m);g&&n.push({type:"ejsApi",name:g.name,displayName:`ejs.${g.module}.${g.name}`,description:g.description,reason:"\u6839\u636E\u9700\u6C42\u63CF\u8FF0\u641C\u7D22\u5339\u914D",score:f.score,platformSupport:g.platformSupport})}}r.sort((p,f)=>f.score-p.score),o.sort((p,f)=>f.score-p.score),n.sort((p,f)=>f.score-p.score);let u="";if(r.length>0||o.length>0||n.length>0){if(u=`\u6839\u636E\u60A8\u7684\u9700\u6C42"${e}"\uFF0C\u63A8\u8350\u4EE5\u4E0B\u65B9\u6848\uFF1A
11
11
 
@@ -1677,11 +1677,11 @@ export default {
1677
1677
  ${i}
1678
1678
 
1679
1679
  **\u53C2\u8003\u6587\u6863\uFF1A** 012-Mock\u7684\u4F7F\u7528/Mock\u7684\u4F7F\u7528.md`,frameworkVersion:e}}function _e(t,e){let s=e.toLowerCase(),o=t.components.get(s);return{type:"component",name:e,found:!!o,docPath:o?.filePath,description:o?`${o.displayName}: ${o.description}`:`\u7EC4\u4EF6 "${e}" \u672A\u5728\u6587\u6863\u4E2D\u627E\u5230`}}function He(t,e){let s=e.toLowerCase();s.startsWith("ejs.")&&(s=s.substring(4));let o=t.ejsApis.get(s);return{type:"api",name:e,found:!!o,docPath:o?.filePath,description:o?`ejs.${o.module}.${o.name}: ${o.description}`:`API "${e}" \u672A\u5728\u6587\u6863\u4E2D\u627E\u5230`}}function We(t,e){let s=e.toLowerCase();s.startsWith("util.")&&(s=s.substring(5));let o=t.utilMethods?.get(s);return{type:"util",name:e,found:!!o,docPath:o?.filePath,description:o?`${o.fullName}: ${o.description}`:`Util \u65B9\u6CD5 "${e}" \u672A\u5728\u6587\u6863\u4E2D\u627E\u5230`}}function qt(t){let e=[],s=[],o=[],n=t.matchAll(/<(em-[\w-]+|ne-[\w-]+|van-[\w-]+)/g);for(let i of n){let c=i[1].replace(/^(em-|ne-|van-)/,"").replace(/-/g,"");e.includes(c)||e.push(c)}let r=t.matchAll(/ejs\.(\w+)\.(\w+)/g);for(let i of r){let l=`${i[1]}.${i[2]}`;s.includes(l)||s.push(l)}let a=t.matchAll(/Util\.(\w+)(?:\.|[\s(])/g);for(let i of a){let l=i[1];o.includes(l)||o.push(l)}return{components:e,apis:s,utils:o}}function es(t,e){let{components:s,apis:o,utils:n}=qt(e),r=[],a=[];for(let i of s){let l=_e(t,i);r.push(l),l.found||a.push(`\u7EC4\u4EF6: ${i}`)}for(let i of o){let l=He(t,i);r.push(l),l.found||a.push(`API: ejs.${i}`)}for(let i of n){let l=We(t,i);r.push(l),l.found||a.push(`Util: Util.${i}`)}return{references:r,allFound:a.length===0,missingItems:a}}function ze(t,e){let s=[],o=[],n=[],r=e.options?.frameworkVersion||"M8.4",a=null;try{switch(e.type){case"router":{let f={moduleName:e.options?.moduleName||e.name,pages:e.options?.pages||[{name:"index",title:"\u9996\u9875"}],autoSubPackages:e.options?.autoSubPackages,isFirstModule:e.options?.isFirstModule};a=N(f,r),n.push({type:"pattern",name:"router.js \u89C4\u8303",found:!0,docPath:"011-vuex\u4E0Erouter\u7684\u4F7F\u7528/router\u7684\u4F7F\u7528.md",description:"\u53C2\u7167 M8 \u6846\u67B6 router.js \u89C4\u8303\u751F\u6210"});break}case"store":{let f=e.options?.moduleName||e.name;a=Fe(f,r),n.push({type:"pattern",name:"store.js \u89C4\u8303",found:!0,docPath:"011-vuex\u4E0Erouter\u7684\u4F7F\u7528/vuex\u7684\u4F7F\u7528.md",description:"\u53C2\u7167 M8 \u6846\u67B6 Vuex \u89C4\u8303\u751F\u6210"});break}case"mock":{let f={moduleName:e.options?.moduleName||e.name,apis:e.options?.apis||[{methodUrl:"/rest/mock/test",description:"\u6D4B\u8BD5\u63A5\u53E3"}]};a=R(f,r),n.push({type:"pattern",name:"mock.js \u89C4\u8303",found:!0,docPath:"012-Mock\u7684\u4F7F\u7528/Mock\u7684\u4F7F\u7528.md",description:"\u53C2\u7167 M8 \u6846\u67B6 Mock \u89C4\u8303\u751F\u6210\uFF0C\u4F7F\u7528 @mock \u522B\u540D\u5F15\u7528"});break}case"component":{let f=_e(t,e.name);if(n.push(f),!f.found)return o.push(`\u7EC4\u4EF6 "${e.name}" \u672A\u5728\u6587\u6863\u4E2D\u627E\u5230\uFF0C\u65E0\u6CD5\u751F\u6210\u4EE3\u7801\u3002\u8BF7\u5148\u4F7F\u7528 search_component \u5DE5\u5177\u67E5\u8BE2\u53EF\u7528\u7EC4\u4EF6\u3002`),{success:!1,validation:{valid:!1,errors:[],warnings:[],suggestions:[]},validationReport:`\u274C \u7EC4\u4EF6 "${e.name}" \u4E0D\u5B58\u5728\u4E8E\u6587\u6863\u4E2D`,documentReferences:n,warnings:s,errors:o};a=w(t,{type:"component",name:e.name,options:{frameworkVersion:r,platform:e.options?.platform}});break}case"ejsApi":{let f=He(t,e.name);if(n.push(f),!f.found)return o.push(`API "${e.name}" \u672A\u5728\u6587\u6863\u4E2D\u627E\u5230\uFF0C\u65E0\u6CD5\u751F\u6210\u4EE3\u7801\u3002\u8BF7\u5148\u4F7F\u7528 search_ejs_api \u5DE5\u5177\u67E5\u8BE2\u53EF\u7528 API\u3002`),{success:!1,validation:{valid:!1,errors:[],warnings:[],suggestions:[]},validationReport:`\u274C API "${e.name}" \u4E0D\u5B58\u5728\u4E8E\u6587\u6863\u4E2D`,documentReferences:n,warnings:s,errors:o};a=w(t,{type:"ejsApi",name:e.name,options:{frameworkVersion:r,platform:e.options?.platform}});break}case"util":{let f=We(t,e.name);n.push(f);let m=["ajax","upload"],g=e.name.toLowerCase().replace("util.","");if(!f.found&&!m.includes(g))return o.push(`Util \u65B9\u6CD5 "${e.name}" \u672A\u5728\u6587\u6863\u4E2D\u627E\u5230\uFF0C\u65E0\u6CD5\u751F\u6210\u4EE3\u7801\u3002\u8BF7\u5148\u4F7F\u7528 search_util \u5DE5\u5177\u67E5\u8BE2\u53EF\u7528\u65B9\u6CD5\u3002`),{success:!1,validation:{valid:!1,errors:[],warnings:[],suggestions:[]},validationReport:`\u274C Util \u65B9\u6CD5 "${e.name}" \u4E0D\u5B58\u5728\u4E8E\u6587\u6863\u4E2D`,documentReferences:n,warnings:s,errors:o};a=w(t,{type:"util",name:e.name,options:{frameworkVersion:r}});break}default:a=w(t,{type:e.type,name:e.name,options:{frameworkVersion:r,platform:e.options?.platform}})}if(!a)return o.push("\u4EE3\u7801\u751F\u6210\u5931\u8D25"),{success:!1,validation:{valid:!1,errors:[],warnings:[],suggestions:[]},validationReport:"\u274C \u4EE3\u7801\u751F\u6210\u5931\u8D25",documentReferences:n,warnings:s,errors:o};let i=a.script||xe(a),l=es(t,i);if(n.push(...l.references),!l.allFound)for(let f of l.missingItems)s.push(`\u4EE3\u7801\u4E2D\u4F7F\u7528\u4E86\u672A\u5728\u6587\u6863\u4E2D\u627E\u5230\u7684 ${f}\uFF0C\u8BF7\u786E\u8BA4\u662F\u5426\u6B63\u786E`);let c="vue";e.type==="router"?c="router":e.type==="mock"?c="mock":e.type==="store"?c="javascript":i.includes("<template>")||i.includes("<script")?c="vue":c="javascript";let u=Ve(i,{codeType:c,frameworkVersion:r,isRefactoring:e.options?.isRefactoring}),p=Oe(u);for(let f of u.warnings)s.push(`[${f.ruleId}] ${f.message}`);for(let f of u.errors)o.push(`[${f.ruleId}] ${f.message}`);return{success:u.valid,code:a,formattedCode:i,validation:u,validationReport:p,documentReferences:n,warnings:s,errors:o}}catch(i){return o.push(`\u751F\u6210\u8FC7\u7A0B\u51FA\u9519: ${i instanceof Error?i.message:String(i)}`),{success:!1,validation:{valid:!1,errors:[],warnings:[],suggestions:[]},validationReport:`\u274C \u751F\u6210\u8FC7\u7A0B\u51FA\u9519: ${i}`,documentReferences:n,warnings:s,errors:o}}}function Je(t){let e=[];if(t.success?e.push("## \u2705 \u4EE3\u7801\u751F\u6210\u6210\u529F"):e.push("## \u274C \u4EE3\u7801\u751F\u6210\u5931\u8D25\u6216\u6709\u9519\u8BEF"),e.push(""),t.documentReferences.length>0){e.push("### \u{1F4DA} \u6587\u6863\u5F15\u7528");for(let s of t.documentReferences){let o=s.found?"\u2713":"\u2717";e.push(`- [${o}] ${s.type}: ${s.name}`),s.docPath&&e.push(` - \u6587\u6863: ${s.docPath}`),s.description&&e.push(` - ${s.description}`)}e.push("")}if(e.push("### \u{1F50D} \u89C4\u8303\u9A8C\u8BC1"),e.push(t.validationReport),e.push(""),t.warnings.length>0){e.push("### \u26A0\uFE0F \u8B66\u544A");for(let s of t.warnings)e.push(`- ${s}`);e.push("")}if(t.errors.length>0){e.push("### \u274C \u9519\u8BEF");for(let s of t.errors)e.push(`- ${s}`);e.push("")}return t.formattedCode&&(e.push("### \u{1F4DD} \u751F\u6210\u7684\u4EE3\u7801"),e.push(""),e.push("```vue"),e.push(t.formattedCode),e.push("```")),e.join(`
1680
- `)}var v=null,P=new Map,as=os(import.meta.url),is=ns(as),ls=Be(is,"..");function Ge(t,e,s){if(process.env[t])return process.env[t];let o=Be(ls,"docs",e);return rs(o)?o:s}var cs=Ge("EJS_DOC_PATH","ejs-doc","ejs-doc"),us=Ge("M8_DOC_PATH","m8mpdoc-develop","m8mpdoc-develop");async function ps(){console.error("[M8 MCP] \u6B63\u5728\u521D\u59CB\u5316\u6587\u6863\u7D22\u5F15...");try{v=await ae(cs,us),console.error(`[M8 MCP] \u7D22\u5F15\u6784\u5EFA\u5B8C\u6210: ${v.components.size} \u4E2A\u7EC4\u4EF6, ${v.ejsApis.size} \u4E2A API, ${v.utilMethods.size} \u4E2A Util \u65B9\u6CD5`),P=Ue(),v.standards=P,console.error(`[M8 MCP] \u52A0\u8F7D\u4E86 ${P.size} \u4E2A\u7F16\u7801\u89C4\u8303`)}catch(t){console.error("[M8 MCP] \u7D22\u5F15\u6784\u5EFA\u5931\u8D25:",t),v={components:new Map,ejsApis:new Map,utilMethods:new Map,standards:new Map,keywords:new Map,categories:new Map,buildTime:new Date}}}function y(){if(!v)throw new Error("\u6587\u6863\u7D22\u5F15\u5C1A\u672A\u521D\u59CB\u5316");return v}function ds(){let t=new ts({name:"M8FrameworkMCP",version:"1.0.0"});return t.tool("search_component","\u641C\u7D22 M8 \u6846\u67B6 UI \u7EC4\u4EF6\uFF0C\u652F\u6301\u6309\u540D\u79F0\u6216\u529F\u80FD\u63CF\u8FF0\u641C\u7D22",{query:d.string().describe("\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5982\u7EC4\u4EF6\u540D\u79F0\u6216\u529F\u80FD\u63CF\u8FF0"),category:d.string().optional().describe('\u53EF\u9009\u7684\u5206\u7C7B\u8FC7\u6EE4\uFF0C\u5982"\u8868\u5355\u7EC4\u4EF6"\u3001"\u53CD\u9988\u7EC4\u4EF6"'),platform:d.string().optional().describe('\u53EF\u9009\u7684\u5E73\u53F0\u8FC7\u6EE4\uFF0C\u5982"wechat"\u3001"alipay"')},async({query:e,category:s,platform:o})=>{let n=le(y(),e,{category:s,platform:o});return{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}),t.tool("search_ejs_api","\u641C\u7D22 EJS \u539F\u751F API\uFF0C\u652F\u6301\u6309\u6A21\u5757\u6216\u529F\u80FD\u63CF\u8FF0\u641C\u7D22",{query:d.string().describe("\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5982 API \u540D\u79F0\u6216\u529F\u80FD\u63CF\u8FF0"),module:d.string().optional().describe('\u53EF\u9009\u7684\u6A21\u5757\u8FC7\u6EE4\uFF0C\u5982"ui"\u3001"device"\u3001"storage"')},async({query:e,module:s})=>{let o=ce(y(),e,{module:s});return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("get_component_detail","\u83B7\u53D6 M8 \u6846\u67B6 UI \u7EC4\u4EF6\u7684\u5B8C\u6574\u6587\u6863\uFF0C\u5305\u62EC Props\u3001Events\u3001\u793A\u4F8B\u4EE3\u7801",{name:d.string().describe('\u7EC4\u4EF6\u540D\u79F0\uFF0C\u5982"button"\u3001"form"\u3001"picker"')},async({name:e})=>{let s=ue(y(),e);return{content:[{type:"text",text:JSON.stringify(s,null,2)}]}}),t.tool("get_api_detail","\u83B7\u53D6 EJS API \u7684\u5B8C\u6574\u6587\u6863\uFF0C\u5305\u62EC\u53C2\u6570\u3001\u8FD4\u56DE\u503C\u3001\u5E73\u53F0\u5DEE\u5F02",{module:d.string().describe('\u6A21\u5757\u540D\uFF0C\u5982"ui"\u3001"device"'),name:d.string().describe('API \u540D\u79F0\uFF0C\u5982"toast"\u3001"alert"')},async({module:e,name:s})=>{let o=pe(y(),e,s);return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("recommend","\u6839\u636E\u9700\u6C42\u63CF\u8FF0\u667A\u80FD\u63A8\u8350\u5408\u9002\u7684\u7EC4\u4EF6\u548C API",{requirement:d.string().describe('\u9700\u6C42\u63CF\u8FF0\uFF0C\u5982"\u5B9E\u73B0\u4E00\u4E2A\u5E26\u65E5\u671F\u9009\u62E9\u7684\u8868\u5355"'),platform:d.string().optional().describe('\u76EE\u6807\u5E73\u53F0\uFF0C\u5982"wechat"\u3001"h5"')},async({requirement:e,platform:s})=>{let o=fe(y(),e,s);return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("generate_code","\u751F\u6210\u7B26\u5408 M8 \u6846\u67B6\u89C4\u8303\u7684\u4EE3\u7801\uFF0C\u652F\u6301 M8.3(Vue2) \u548C M8.4(Vue3)",{type:d.enum(["component","ejsApi","pattern"]).describe("\u751F\u6210\u7C7B\u578B"),name:d.string().describe("\u7EC4\u4EF6/API/\u6A21\u5F0F\u540D\u79F0"),frameworkVersion:d.enum(["M8.3","M8.4"]).describe("\u6846\u67B6\u7248\u672C\uFF0CM8.3=Vue2, M8.4=Vue3"),platform:d.string().optional().describe("\u76EE\u6807\u5E73\u53F0\uFF0C\u7528\u4E8E\u751F\u6210\u6761\u4EF6\u7F16\u8BD1\u4EE3\u7801")},async({type:e,name:s,frameworkVersion:o,platform:n})=>{let r=w(y(),{type:e,name:s,options:{frameworkVersion:o,platform:n}});return{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}),t.tool("check_compatibility","\u68C0\u67E5\u7EC4\u4EF6\u6216 API \u5728\u76EE\u6807\u5E73\u53F0\u7684\u517C\u5BB9\u6027",{items:d.array(d.string()).describe("\u8981\u68C0\u67E5\u7684\u7EC4\u4EF6\u6216 API \u5217\u8868"),targetPlatforms:d.array(d.string()).describe('\u76EE\u6807\u5E73\u53F0\u5217\u8868\uFF0C\u5982["wechat", "alipay", "h5"]')},async({items:e,targetPlatforms:s})=>{let o=je(y(),e,s);return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("get_pattern","\u83B7\u53D6\u5E38\u89C1\u573A\u666F\u7684\u5B9E\u73B0\u6A21\u5F0F\uFF0C\u5982\u5217\u8868\u8BE6\u60C5\u3001\u8868\u5355\u63D0\u4EA4",{scenario:d.string().describe('\u573A\u666F\u540D\u79F0\uFF0C\u5982"\u5217\u8868\u8BE6\u60C5"\u3001"\u8868\u5355\u63D0\u4EA4"'),frameworkVersion:d.enum(["M8.3","M8.4"]).optional().describe("\u6846\u67B6\u7248\u672C\uFF0C\u4E0D\u6307\u5B9A\u5219\u8FD4\u56DE\u4E24\u4E2A\u7248\u672C")},async({scenario:e,frameworkVersion:s})=>{let o=Ce(e,s);return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("search_util","\u641C\u7D22 M8 \u6846\u67B6 Util \u5DE5\u5177\u65B9\u6CD5\uFF0C\u5982 Util.ajax\u3001Util.upload \u7B49",{query:d.string().describe('\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5982"ajax"\u3001"\u8BF7\u6C42"\u3001"\u4E0A\u4F20"'),category:d.string().optional().describe('\u53EF\u9009\u7684\u5206\u7C7B\u8FC7\u6EE4\uFF0C\u5982"\u6838\u5FC3\u901A\u7528Util"\u3001"Util\u5DE5\u5177\u96C6"')},async({query:e,category:s})=>{let o=Pe(y(),e,{category:s});return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("get_util_detail","\u83B7\u53D6 Util \u5DE5\u5177\u65B9\u6CD5\u7684\u5B8C\u6574\u6587\u6863\uFF0C\u5305\u62EC\u53C2\u6570\u3001\u8FD4\u56DE\u503C\u3001\u4EE3\u7801\u793A\u4F8B",{name:d.string().describe('\u65B9\u6CD5\u540D\uFF0C\u5982"ajax"\u6216"Util.ajax"')},async({name:e})=>{let s=Ae(y(),e),o=JSON.stringify(s,null,2);return s.found&&s.method&&(o+=`
1680
+ `)}var v=null,A=new Map,as=os(import.meta.url),is=ns(as),ls=Be(is,"..");function Ge(t,e,s){if(process.env[t])return process.env[t];let o=Be(ls,"docs",e);return rs(o)?o:s}var cs=Ge("EJS_DOC_PATH","ejs-doc","ejs-doc"),us=Ge("M8_DOC_PATH","m8mpdoc-develop","m8mpdoc-develop");async function ps(){console.error("[M8 MCP] \u6B63\u5728\u521D\u59CB\u5316\u6587\u6863\u7D22\u5F15...");try{v=await ae(cs,us),console.error(`[M8 MCP] \u7D22\u5F15\u6784\u5EFA\u5B8C\u6210: ${v.components.size} \u4E2A\u7EC4\u4EF6, ${v.ejsApis.size} \u4E2A API, ${v.utilMethods.size} \u4E2A Util \u65B9\u6CD5`),A=Ue(),v.standards=A,console.error(`[M8 MCP] \u52A0\u8F7D\u4E86 ${A.size} \u4E2A\u7F16\u7801\u89C4\u8303`)}catch(t){console.error("[M8 MCP] \u7D22\u5F15\u6784\u5EFA\u5931\u8D25:",t),v={components:new Map,ejsApis:new Map,utilMethods:new Map,standards:new Map,keywords:new Map,categories:new Map,buildTime:new Date}}}function y(){if(!v)throw new Error("\u6587\u6863\u7D22\u5F15\u5C1A\u672A\u521D\u59CB\u5316");return v}function ds(){let t=new ts({name:"M8FrameworkMCP",version:"1.0.0"});return t.tool("search_component","\u641C\u7D22 M8 \u6846\u67B6 UI \u7EC4\u4EF6\uFF0C\u652F\u6301\u6309\u540D\u79F0\u6216\u529F\u80FD\u63CF\u8FF0\u641C\u7D22",{query:d.string().describe("\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5982\u7EC4\u4EF6\u540D\u79F0\u6216\u529F\u80FD\u63CF\u8FF0"),category:d.string().optional().describe('\u53EF\u9009\u7684\u5206\u7C7B\u8FC7\u6EE4\uFF0C\u5982"\u8868\u5355\u7EC4\u4EF6"\u3001"\u53CD\u9988\u7EC4\u4EF6"'),platform:d.string().optional().describe('\u53EF\u9009\u7684\u5E73\u53F0\u8FC7\u6EE4\uFF0C\u5982"wechat"\u3001"alipay"')},async({query:e,category:s,platform:o})=>{let n=le(y(),e,{category:s,platform:o});return{content:[{type:"text",text:JSON.stringify(n,null,2)}]}}),t.tool("search_ejs_api","\u641C\u7D22 EJS \u539F\u751F API\uFF0C\u652F\u6301\u6309\u6A21\u5757\u6216\u529F\u80FD\u63CF\u8FF0\u641C\u7D22",{query:d.string().describe("\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5982 API \u540D\u79F0\u6216\u529F\u80FD\u63CF\u8FF0"),module:d.string().optional().describe('\u53EF\u9009\u7684\u6A21\u5757\u8FC7\u6EE4\uFF0C\u5982"ui"\u3001"device"\u3001"storage"')},async({query:e,module:s})=>{let o=ce(y(),e,{module:s});return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("get_component_detail","\u83B7\u53D6 M8 \u6846\u67B6 UI \u7EC4\u4EF6\u7684\u5B8C\u6574\u6587\u6863\uFF0C\u5305\u62EC Props\u3001Events\u3001\u793A\u4F8B\u4EE3\u7801",{name:d.string().describe('\u7EC4\u4EF6\u540D\u79F0\uFF0C\u5982"button"\u3001"form"\u3001"picker"')},async({name:e})=>{let s=ue(y(),e);return{content:[{type:"text",text:JSON.stringify(s,null,2)}]}}),t.tool("get_api_detail","\u83B7\u53D6 EJS API \u7684\u5B8C\u6574\u6587\u6863\uFF0C\u5305\u62EC\u53C2\u6570\u3001\u8FD4\u56DE\u503C\u3001\u5E73\u53F0\u5DEE\u5F02",{module:d.string().describe('\u6A21\u5757\u540D\uFF0C\u5982"ui"\u3001"device"'),name:d.string().describe('API \u540D\u79F0\uFF0C\u5982"toast"\u3001"alert"')},async({module:e,name:s})=>{let o=pe(y(),e,s);return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("recommend","\u6839\u636E\u9700\u6C42\u63CF\u8FF0\u667A\u80FD\u63A8\u8350\u5408\u9002\u7684\u7EC4\u4EF6\u548C API",{requirement:d.string().describe('\u9700\u6C42\u63CF\u8FF0\uFF0C\u5982"\u5B9E\u73B0\u4E00\u4E2A\u5E26\u65E5\u671F\u9009\u62E9\u7684\u8868\u5355"'),platform:d.string().optional().describe('\u76EE\u6807\u5E73\u53F0\uFF0C\u5982"wechat"\u3001"h5"')},async({requirement:e,platform:s})=>{let o=fe(y(),e,s);return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("generate_code","\u751F\u6210\u7B26\u5408 M8 \u6846\u67B6\u89C4\u8303\u7684\u4EE3\u7801\uFF0C\u652F\u6301 M8.3(Vue2) \u548C M8.4(Vue3)",{type:d.enum(["component","ejsApi","pattern"]).describe("\u751F\u6210\u7C7B\u578B"),name:d.string().describe("\u7EC4\u4EF6/API/\u6A21\u5F0F\u540D\u79F0"),frameworkVersion:d.enum(["M8.3","M8.4"]).describe("\u6846\u67B6\u7248\u672C\uFF0CM8.3=Vue2, M8.4=Vue3"),platform:d.string().optional().describe("\u76EE\u6807\u5E73\u53F0\uFF0C\u7528\u4E8E\u751F\u6210\u6761\u4EF6\u7F16\u8BD1\u4EE3\u7801")},async({type:e,name:s,frameworkVersion:o,platform:n})=>{let r=w(y(),{type:e,name:s,options:{frameworkVersion:o,platform:n}});return{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}),t.tool("check_compatibility","\u68C0\u67E5\u7EC4\u4EF6\u6216 API \u5728\u76EE\u6807\u5E73\u53F0\u7684\u517C\u5BB9\u6027",{items:d.array(d.string()).describe("\u8981\u68C0\u67E5\u7684\u7EC4\u4EF6\u6216 API \u5217\u8868"),targetPlatforms:d.array(d.string()).describe('\u76EE\u6807\u5E73\u53F0\u5217\u8868\uFF0C\u5982["wechat", "alipay", "h5"]')},async({items:e,targetPlatforms:s})=>{let o=je(y(),e,s);return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("get_pattern","\u83B7\u53D6\u5E38\u89C1\u573A\u666F\u7684\u5B9E\u73B0\u6A21\u5F0F\uFF0C\u5982\u5217\u8868\u8BE6\u60C5\u3001\u8868\u5355\u63D0\u4EA4",{scenario:d.string().describe('\u573A\u666F\u540D\u79F0\uFF0C\u5982"\u5217\u8868\u8BE6\u60C5"\u3001"\u8868\u5355\u63D0\u4EA4"'),frameworkVersion:d.enum(["M8.3","M8.4"]).optional().describe("\u6846\u67B6\u7248\u672C\uFF0C\u4E0D\u6307\u5B9A\u5219\u8FD4\u56DE\u4E24\u4E2A\u7248\u672C")},async({scenario:e,frameworkVersion:s})=>{let o=Ce(e,s);return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("search_util","\u641C\u7D22 M8 \u6846\u67B6 Util \u5DE5\u5177\u65B9\u6CD5\uFF0C\u5982 Util.ajax\u3001Util.upload \u7B49",{query:d.string().describe('\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5982"ajax"\u3001"\u8BF7\u6C42"\u3001"\u4E0A\u4F20"'),category:d.string().optional().describe('\u53EF\u9009\u7684\u5206\u7C7B\u8FC7\u6EE4\uFF0C\u5982"\u6838\u5FC3\u901A\u7528Util"\u3001"Util\u5DE5\u5177\u96C6"')},async({query:e,category:s})=>{let o=Pe(y(),e,{category:s});return{content:[{type:"text",text:JSON.stringify(o,null,2)}]}}),t.tool("get_util_detail","\u83B7\u53D6 Util \u5DE5\u5177\u65B9\u6CD5\u7684\u5B8C\u6574\u6587\u6863\uFF0C\u5305\u62EC\u53C2\u6570\u3001\u8FD4\u56DE\u503C\u3001\u4EE3\u7801\u793A\u4F8B",{name:d.string().describe('\u65B9\u6CD5\u540D\uFF0C\u5982"ajax"\u6216"Util.ajax"')},async({name:e})=>{let s=Ae(y(),e),o=JSON.stringify(s,null,2);return s.found&&s.method&&(o+=`
1681
1681
 
1682
1682
  ---
1683
1683
 
1684
- `+Ie(s.method)),{content:[{type:"text",text:o}]}}),t.tool("get_standard","\u83B7\u53D6\u7F16\u7801\u89C4\u8303\u6587\u6863\uFF0C\u652F\u6301\u6309\u5206\u7C7B\u6216 ID \u67E5\u8BE2",{id:d.string().optional().describe('\u89C4\u8303 ID\uFF0C\u5982"vue-style"\u3001"css-style"'),category:d.enum(["css","vue","javascript","typescript","naming","project","git"]).optional().describe("\u89C4\u8303\u5206\u7C7B")},async({id:e,category:s})=>{let o=De(P,{id:e,category:s}),n=JSON.stringify(o,null,2);return o.found&&o.markdown&&(n=o.markdown),{content:[{type:"text",text:n}]}}),t.tool("list_standards","\u5217\u51FA\u6240\u6709\u53EF\u7528\u7684\u7F16\u7801\u89C4\u8303",{category:d.enum(["css","vue","javascript","typescript","naming","project","git"]).optional().describe("\u53EF\u9009\u7684\u5206\u7C7B\u8FC7\u6EE4")},async({category:e})=>{let s=Te(P,e);return{content:[{type:"text",text:Ee(s)}]}}),t.tool("generate_validated_code","\u751F\u6210\u7B26\u5408 M8 \u6846\u67B6\u89C4\u8303\u7684\u4EE3\u7801\uFF0C\u5E26\u89C4\u8303\u9A8C\u8BC1\u548C\u6587\u6863\u5F15\u7528\u68C0\u67E5\u3002\u652F\u6301\u751F\u6210 router.js\u3001mock.js\u3001store.js\u3001\u7EC4\u4EF6\u4EE3\u7801\u7B49\u3002\u751F\u6210\u524D\u4F1A\u68C0\u67E5\u7EC4\u4EF6/\u65B9\u6CD5\u662F\u5426\u5B58\u5728\u4E8E\u6587\u6863\u4E2D\uFF0C\u751F\u6210\u540E\u4F1A\u8FDB\u884C\u89C4\u8303\u6821\u9A8C\u3002",{type:d.enum(["component","ejsApi","util","router","mock","store","pattern"]).describe("\u751F\u6210\u7C7B\u578B\uFF1Acomponent=\u7EC4\u4EF6\u4EE3\u7801, ejsApi=EJS API\u8C03\u7528, util=Util\u65B9\u6CD5, router=router.js, mock=mock.js, store=store.js"),name:d.string().describe("\u540D\u79F0\uFF1A\u7EC4\u4EF6\u540D/API\u540D/\u6A21\u5757\u540D"),frameworkVersion:d.enum(["M8.3","M8.4"]).default("M8.4").describe("\u6846\u67B6\u7248\u672C\uFF0CM8.3=Vue2, M8.4=Vue3"),moduleName:d.string().optional().describe("\u6A21\u5757\u540D\u79F0\uFF08\u7528\u4E8E router/mock/store \u751F\u6210\uFF09"),pages:d.array(d.object({name:d.string().describe("\u9875\u9762\u540D\u79F0\uFF08\u4E0D\u542B\u540E\u7F00\uFF09"),title:d.string().describe("\u9875\u9762\u6807\u9898"),isHome:d.boolean().optional().describe("\u662F\u5426\u4E3A\u9996\u9875")})).optional().describe("\u9875\u9762\u5217\u8868\uFF08\u7528\u4E8E router \u751F\u6210\uFF09"),apis:d.array(d.object({methodUrl:d.string().describe("\u63A5\u53E3\u5730\u5740"),description:d.string().optional().describe("\u63A5\u53E3\u63CF\u8FF0"),inputFields:d.array(d.object({name:d.string(),type:d.string(),description:d.string().optional()})).optional().describe("\u5165\u53C2\u5B57\u6BB5"),outputFields:d.array(d.object({name:d.string(),type:d.string(),mockRule:d.string().optional(),description:d.string().optional()})).optional().describe("\u51FA\u53C2\u5B57\u6BB5")})).optional().describe("\u63A5\u53E3\u914D\u7F6E\uFF08\u7528\u4E8E mock \u751F\u6210\uFF09"),autoSubPackages:d.boolean().optional().describe("\u662F\u5426\u81EA\u52A8\u5206\u5305\uFF08\u7528\u4E8E router \u751F\u6210\uFF0Cv8.3.1+\uFF09"),isFirstModule:d.boolean().optional().describe("\u662F\u5426\u4E3A\u9996\u9875\u6A21\u5757\uFF08\u7528\u4E8E router \u751F\u6210\uFF0Cv8.3.1+\uFF09"),isRefactoring:d.boolean().optional().describe("\u662F\u5426\u4E3A\u91CD\u6784\u9875\u9762\uFF08\u91CD\u6784\u9875\u9762\u4E0D\u5E94\u6DFB\u52A0\u5BFC\u822A\u680F\uFF09"),platform:d.string().optional().describe("\u76EE\u6807\u5E73\u53F0\uFF0C\u7528\u4E8E\u751F\u6210\u6761\u4EF6\u7F16\u8BD1\u4EE3\u7801")},async({type:e,name:s,frameworkVersion:o,moduleName:n,pages:r,apis:a,autoSubPackages:i,isFirstModule:l,isRefactoring:c,platform:u})=>{let p=ze(y(),{type:e,name:s,options:{frameworkVersion:o,moduleName:n,pages:r,apis:a,autoSubPackages:i,isFirstModule:l,isRefactoring:c,platform:u}});return{content:[{type:"text",text:Je(p)}]}}),t.tool("generate_router","\u751F\u6210\u6A21\u5757\u7684 router.js \u6587\u4EF6\uFF0C\u4E25\u683C\u9075\u5FAA M8 \u6846\u67B6 011-vuex\u4E0Erouter\u7684\u4F7F\u7528 \u6587\u6863\u89C4\u8303",{moduleName:d.string().describe('\u6A21\u5757\u540D\u79F0\uFF0C\u5982 "index"\u3001"user"'),pages:d.array(d.object({name:d.string().describe("\u9875\u9762\u540D\u79F0\uFF08\u4E0D\u542B\u540E\u7F00\uFF0C\u6846\u67B6\u4F1A\u81EA\u52A8\u5BFB\u627E\u9875\u9762\u8D44\u6E90\uFF09"),title:d.string().describe("\u9875\u9762\u6807\u9898\uFF08\u5BF9\u5E94 style.navigationBarTitleText\uFF09"),isHome:d.boolean().optional().describe("\u662F\u5426\u4E3A\u9996\u9875")})).describe("\u9875\u9762\u5217\u8868"),autoSubPackages:d.boolean().optional().describe("\u662F\u5426\u81EA\u52A8\u5206\u5305\u5904\u7406\uFF08v8.3.1+\uFF0C\u5F00\u542F\u540E\u8DEF\u7531\u4FE1\u606F\u4F1A\u914D\u7F6E\u5230 subPackages\uFF09"),isFirstModule:d.boolean().optional().describe("\u662F\u5426\u4E3A\u9996\u9875\u6A21\u5757\uFF08v8.3.1+\uFF0C\u5F00\u542F\u540E\u8DEF\u7531\u4FE1\u606F\u4F1A\u653E\u5728 pages \u6570\u7EC4\u7B2C\u4E00\u4E2A\u4F4D\u7F6E\uFF09"),frameworkVersion:d.enum(["M8.3","M8.4"]).default("M8.4").describe("\u6846\u67B6\u7248\u672C")},async({moduleName:e,pages:s,autoSubPackages:o,isFirstModule:n,frameworkVersion:r})=>{let a=N({moduleName:e,pages:s,autoSubPackages:o,isFirstModule:n},r);return{content:[{type:"text",text:`## router.js \u751F\u6210\u7ED3\u679C
1684
+ `+Ie(s.method)),{content:[{type:"text",text:o}]}}),t.tool("get_standard","\u83B7\u53D6\u7F16\u7801\u89C4\u8303\u6587\u6863\uFF0C\u652F\u6301\u6309\u5206\u7C7B\u6216 ID \u67E5\u8BE2",{id:d.string().optional().describe('\u89C4\u8303 ID\uFF0C\u5982"vue-style"\u3001"css-style"'),category:d.enum(["css","vue","javascript","typescript","naming","project","git"]).optional().describe("\u89C4\u8303\u5206\u7C7B")},async({id:e,category:s})=>{let o=De(A,{id:e,category:s}),n=JSON.stringify(o,null,2);return o.found&&o.markdown&&(n=o.markdown),{content:[{type:"text",text:n}]}}),t.tool("list_standards","\u5217\u51FA\u6240\u6709\u53EF\u7528\u7684\u7F16\u7801\u89C4\u8303",{category:d.enum(["css","vue","javascript","typescript","naming","project","git"]).optional().describe("\u53EF\u9009\u7684\u5206\u7C7B\u8FC7\u6EE4")},async({category:e})=>{let s=Te(A,e);return{content:[{type:"text",text:Ee(s)}]}}),t.tool("generate_validated_code","\u751F\u6210\u7B26\u5408 M8 \u6846\u67B6\u89C4\u8303\u7684\u4EE3\u7801\uFF0C\u5E26\u89C4\u8303\u9A8C\u8BC1\u548C\u6587\u6863\u5F15\u7528\u68C0\u67E5\u3002\u652F\u6301\u751F\u6210 router.js\u3001mock.js\u3001store.js\u3001\u7EC4\u4EF6\u4EE3\u7801\u7B49\u3002\u751F\u6210\u524D\u4F1A\u68C0\u67E5\u7EC4\u4EF6/\u65B9\u6CD5\u662F\u5426\u5B58\u5728\u4E8E\u6587\u6863\u4E2D\uFF0C\u751F\u6210\u540E\u4F1A\u8FDB\u884C\u89C4\u8303\u6821\u9A8C\u3002",{type:d.enum(["component","ejsApi","util","router","mock","store","pattern"]).describe("\u751F\u6210\u7C7B\u578B\uFF1Acomponent=\u7EC4\u4EF6\u4EE3\u7801, ejsApi=EJS API\u8C03\u7528, util=Util\u65B9\u6CD5, router=router.js, mock=mock.js, store=store.js"),name:d.string().describe("\u540D\u79F0\uFF1A\u7EC4\u4EF6\u540D/API\u540D/\u6A21\u5757\u540D"),frameworkVersion:d.enum(["M8.3","M8.4"]).default("M8.4").describe("\u6846\u67B6\u7248\u672C\uFF0CM8.3=Vue2, M8.4=Vue3"),moduleName:d.string().optional().describe("\u6A21\u5757\u540D\u79F0\uFF08\u7528\u4E8E router/mock/store \u751F\u6210\uFF09"),pages:d.array(d.object({name:d.string().describe("\u9875\u9762\u540D\u79F0\uFF08\u4E0D\u542B\u540E\u7F00\uFF09"),title:d.string().describe("\u9875\u9762\u6807\u9898"),isHome:d.boolean().optional().describe("\u662F\u5426\u4E3A\u9996\u9875")})).optional().describe("\u9875\u9762\u5217\u8868\uFF08\u7528\u4E8E router \u751F\u6210\uFF09"),apis:d.array(d.object({methodUrl:d.string().describe("\u63A5\u53E3\u5730\u5740"),description:d.string().optional().describe("\u63A5\u53E3\u63CF\u8FF0"),inputFields:d.array(d.object({name:d.string(),type:d.string(),description:d.string().optional()})).optional().describe("\u5165\u53C2\u5B57\u6BB5"),outputFields:d.array(d.object({name:d.string(),type:d.string(),mockRule:d.string().optional(),description:d.string().optional()})).optional().describe("\u51FA\u53C2\u5B57\u6BB5")})).optional().describe("\u63A5\u53E3\u914D\u7F6E\uFF08\u7528\u4E8E mock \u751F\u6210\uFF09"),autoSubPackages:d.boolean().optional().describe("\u662F\u5426\u81EA\u52A8\u5206\u5305\uFF08\u7528\u4E8E router \u751F\u6210\uFF0Cv8.3.1+\uFF09"),isFirstModule:d.boolean().optional().describe("\u662F\u5426\u4E3A\u9996\u9875\u6A21\u5757\uFF08\u7528\u4E8E router \u751F\u6210\uFF0Cv8.3.1+\uFF09"),isRefactoring:d.boolean().optional().describe("\u662F\u5426\u4E3A\u91CD\u6784\u9875\u9762\uFF08\u91CD\u6784\u9875\u9762\u4E0D\u5E94\u6DFB\u52A0\u5BFC\u822A\u680F\uFF09"),platform:d.string().optional().describe("\u76EE\u6807\u5E73\u53F0\uFF0C\u7528\u4E8E\u751F\u6210\u6761\u4EF6\u7F16\u8BD1\u4EE3\u7801")},async({type:e,name:s,frameworkVersion:o,moduleName:n,pages:r,apis:a,autoSubPackages:i,isFirstModule:l,isRefactoring:c,platform:u})=>{let p=ze(y(),{type:e,name:s,options:{frameworkVersion:o,moduleName:n,pages:r,apis:a,autoSubPackages:i,isFirstModule:l,isRefactoring:c,platform:u}});return{content:[{type:"text",text:Je(p)}]}}),t.tool("generate_router","\u751F\u6210\u6A21\u5757\u7684 router.js \u6587\u4EF6\uFF0C\u4E25\u683C\u9075\u5FAA M8 \u6846\u67B6 011-vuex\u4E0Erouter\u7684\u4F7F\u7528 \u6587\u6863\u89C4\u8303",{moduleName:d.string().describe('\u6A21\u5757\u540D\u79F0\uFF0C\u5982 "index"\u3001"user"'),pages:d.array(d.object({name:d.string().describe("\u9875\u9762\u540D\u79F0\uFF08\u4E0D\u542B\u540E\u7F00\uFF0C\u6846\u67B6\u4F1A\u81EA\u52A8\u5BFB\u627E\u9875\u9762\u8D44\u6E90\uFF09"),title:d.string().describe("\u9875\u9762\u6807\u9898\uFF08\u5BF9\u5E94 style.navigationBarTitleText\uFF09"),isHome:d.boolean().optional().describe("\u662F\u5426\u4E3A\u9996\u9875")})).describe("\u9875\u9762\u5217\u8868"),autoSubPackages:d.boolean().optional().describe("\u662F\u5426\u81EA\u52A8\u5206\u5305\u5904\u7406\uFF08v8.3.1+\uFF0C\u5F00\u542F\u540E\u8DEF\u7531\u4FE1\u606F\u4F1A\u914D\u7F6E\u5230 subPackages\uFF09"),isFirstModule:d.boolean().optional().describe("\u662F\u5426\u4E3A\u9996\u9875\u6A21\u5757\uFF08v8.3.1+\uFF0C\u5F00\u542F\u540E\u8DEF\u7531\u4FE1\u606F\u4F1A\u653E\u5728 pages \u6570\u7EC4\u7B2C\u4E00\u4E2A\u4F4D\u7F6E\uFF09"),frameworkVersion:d.enum(["M8.3","M8.4"]).default("M8.4").describe("\u6846\u67B6\u7248\u672C")},async({moduleName:e,pages:s,autoSubPackages:o,isFirstModule:n,frameworkVersion:r})=>{let a=N({moduleName:e,pages:s,autoSubPackages:o,isFirstModule:n},r);return{content:[{type:"text",text:`## router.js \u751F\u6210\u7ED3\u679C
1685
1685
 
1686
1686
  **\u6587\u4EF6\u4F4D\u7F6E:** \`src/pages/${e}/router.js\`
1687
1687
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "m8-framework-mcp",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "M8 框架文档助手 MCP Server - 智能搜索组件、API 并生成代码",
5
5
  "type": "module",
6
6
  "main": "build/index.js",