best-review 0.6.1 → 0.6.2

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/dist/best-review.cjs +180 -180
  2. package/package.json +1 -1
@@ -1,39 +1,39 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var $v=Object.create;var Du=Object.defineProperty;var Pv=Object.getOwnPropertyDescriptor;var Bv=Object.getOwnPropertyNames;var Ov=Object.getPrototypeOf,Lv=Object.prototype.hasOwnProperty;var ie=(e,t)=>()=>(e&&(t=e(e=0)),t);var _=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),hi=(e,t)=>{for(var r in t)Du(e,r,{get:t[r],enumerable:!0})},Nv=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Bv(t))!Lv.call(e,i)&&i!==r&&Du(e,i,{get:()=>t[i],enumerable:!(s=Pv(t,i))||s.enumerable});return e};var bt=(e,t,r)=>(r=e!=null?$v(Ov(e)):{},Nv(t||!e||!e.__esModule?Du(r,"default",{value:e,enumerable:!0}):r,e));var th={};hi(th,{kCancel:()=>Qd,prompt:()=>eh});function rE(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function sE(){if(Pd)return Au;Pd=1;let e="\x1B",t=`${e}[`,r="\x07",s={to(o,a){return a?`${t}${a+1};${o+1}H`:`${t}${o+1}G`},move(o,a){let u="";return o<0?u+=`${t}${-o}D`:o>0&&(u+=`${t}${o}C`),a<0?u+=`${t}${-a}A`:a>0&&(u+=`${t}${a}B`),u},up:(o=1)=>`${t}${o}A`,down:(o=1)=>`${t}${o}B`,forward:(o=1)=>`${t}${o}C`,backward:(o=1)=>`${t}${o}D`,nextLine:(o=1)=>`${t}E`.repeat(o),prevLine:(o=1)=>`${t}F`.repeat(o),left:`${t}G`,hide:`${t}?25l`,show:`${t}?25h`,save:`${e}7`,restore:`${e}8`},i={up:(o=1)=>`${t}S`.repeat(o),down:(o=1)=>`${t}T`.repeat(o)},n={screen:`${t}2J`,up:(o=1)=>`${t}1J`.repeat(o),down:(o=1)=>`${t}J`.repeat(o),line:`${t}2K`,lineEnd:`${t}K`,lineStart:`${t}1K`,lines(o){let a="";for(let u=0;u<o;u++)a+=this.line+(u<o-1?s.up():"");return o&&(a+=s.left),a}};return Au={cursor:s,scroll:i,erase:n,beep:r},Au}function iE(){if(Bd)return Gn.exports;Bd=1;let e=process||{},t=e.argv||[],r=e.env||{},s=!(r.NO_COLOR||t.includes("--no-color"))&&(!!r.FORCE_COLOR||t.includes("--color")||e.platform==="win32"||(e.stdout||{}).isTTY&&r.TERM!=="dumb"||!!r.CI),i=(a,u,l=a)=>c=>{let f=""+c,h=f.indexOf(u,a.length);return~h?a+n(f,u,l,h)+u:a+f+u},n=(a,u,l,c)=>{let f="",h=0;do f+=a.substring(h,c)+l,h=c+u.length,c=a.indexOf(u,h);while(~c);return f+a.substring(h)},o=(a=s)=>{let u=a?i:()=>String;return{isColorSupported:a,reset:u("\x1B[0m","\x1B[0m"),bold:u("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:u("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:u("\x1B[3m","\x1B[23m"),underline:u("\x1B[4m","\x1B[24m"),inverse:u("\x1B[7m","\x1B[27m"),hidden:u("\x1B[8m","\x1B[28m"),strikethrough:u("\x1B[9m","\x1B[29m"),black:u("\x1B[30m","\x1B[39m"),red:u("\x1B[31m","\x1B[39m"),green:u("\x1B[32m","\x1B[39m"),yellow:u("\x1B[33m","\x1B[39m"),blue:u("\x1B[34m","\x1B[39m"),magenta:u("\x1B[35m","\x1B[39m"),cyan:u("\x1B[36m","\x1B[39m"),white:u("\x1B[37m","\x1B[39m"),gray:u("\x1B[90m","\x1B[39m"),bgBlack:u("\x1B[40m","\x1B[49m"),bgRed:u("\x1B[41m","\x1B[49m"),bgGreen:u("\x1B[42m","\x1B[49m"),bgYellow:u("\x1B[43m","\x1B[49m"),bgBlue:u("\x1B[44m","\x1B[49m"),bgMagenta:u("\x1B[45m","\x1B[49m"),bgCyan:u("\x1B[46m","\x1B[49m"),bgWhite:u("\x1B[47m","\x1B[49m"),blackBright:u("\x1B[90m","\x1B[39m"),redBright:u("\x1B[91m","\x1B[39m"),greenBright:u("\x1B[92m","\x1B[39m"),yellowBright:u("\x1B[93m","\x1B[39m"),blueBright:u("\x1B[94m","\x1B[39m"),magentaBright:u("\x1B[95m","\x1B[39m"),cyanBright:u("\x1B[96m","\x1B[39m"),whiteBright:u("\x1B[97m","\x1B[39m"),bgBlackBright:u("\x1B[100m","\x1B[49m"),bgRedBright:u("\x1B[101m","\x1B[49m"),bgGreenBright:u("\x1B[102m","\x1B[49m"),bgYellowBright:u("\x1B[103m","\x1B[49m"),bgBlueBright:u("\x1B[104m","\x1B[49m"),bgMagentaBright:u("\x1B[105m","\x1B[49m"),bgCyanBright:u("\x1B[106m","\x1B[49m"),bgWhiteBright:u("\x1B[107m","\x1B[49m")}};return Gn.exports=o(),Gn.exports.createColors=o,Gn.exports}function oE({onlyFirst:e=!1}={}){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}function Hd(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(aE,"")}function zd(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function mi(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=Hd(e),e.length===0))return 0;e=e.replace(fE()," ");let r=t.ambiguousIsNarrow?1:2,s=0;for(let i of e){let n=i.codePointAt(0);if(!(n<=31||n>=127&&n<=159||n>=768&&n<=879))switch(lE.eastAsianWidth(i)){case"F":case"W":s+=2;break;case"A":s+=r;break;default:s+=1}}return s}function pE(){let e=new Map;for(let[t,r]of Object.entries(ne)){for(let[s,i]of Object.entries(r))ne[s]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[s]=ne[s],e.set(i[0],i[1]);Object.defineProperty(ne,t,{value:r,enumerable:!1})}return Object.defineProperty(ne,"codes",{value:e,enumerable:!1}),ne.color.close="\x1B[39m",ne.bgColor.close="\x1B[49m",ne.color.ansi=Od(),ne.color.ansi256=Ld(),ne.color.ansi16m=Nd(),ne.bgColor.ansi=Od(Ru),ne.bgColor.ansi256=Ld(Ru),ne.bgColor.ansi16m=Nd(Ru),Object.defineProperties(ne,{rgbToAnsi256:{value:(t,r,s)=>t===r&&r===s?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(s/255*5),enumerable:!1},hexToRgb:{value:t=>{let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[s]=r;s.length===3&&(s=[...s].map(n=>n+n).join(""));let i=Number.parseInt(s,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>ne.rgbToAnsi256(...ne.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value:t=>{if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,s,i;if(t>=232)r=((t-232)*10+8)/255,s=r,i=r;else{t-=16;let a=t%36;r=Math.floor(t/36)/5,s=Math.floor(a/6)/5,i=a%6/5}let n=Math.max(r,s,i)*2;if(n===0)return 30;let o=30+(Math.round(i)<<2|Math.round(s)<<1|Math.round(r));return n===2&&(o+=60),o},enumerable:!1},rgbToAnsi:{value:(t,r,s)=>ne.ansi256ToAnsi(ne.rgbToAnsi256(t,r,s)),enumerable:!1},hexToAnsi:{value:t=>ne.ansi256ToAnsi(ne.hexToAnsi256(t)),enumerable:!1}}),ne}function qd(e,t,r){return String(e).normalize().replace(/\r\n/g,`
2
+ "use strict";var Lv=Object.create;var Du=Object.defineProperty;var Nv=Object.getOwnPropertyDescriptor;var Mv=Object.getOwnPropertyNames;var jv=Object.getPrototypeOf,qv=Object.prototype.hasOwnProperty;var ie=(e,t)=>()=>(e&&(t=e(e=0)),t);var _=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),pi=(e,t)=>{for(var r in t)Du(e,r,{get:t[r],enumerable:!0})},Uv=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Mv(t))!qv.call(e,i)&&i!==r&&Du(e,i,{get:()=>t[i],enumerable:!(s=Nv(t,i))||s.enumerable});return e};var bt=(e,t,r)=>(r=e!=null?Lv(jv(e)):{},Uv(t||!e||!e.__esModule?Du(r,"default",{value:e,enumerable:!0}):r,e));var rh={};pi(rh,{kCancel:()=>eh,prompt:()=>th});function oE(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function aE(){if(Bd)return Au;Bd=1;let e="\x1B",t=`${e}[`,r="\x07",s={to(o,a){return a?`${t}${a+1};${o+1}H`:`${t}${o+1}G`},move(o,a){let u="";return o<0?u+=`${t}${-o}D`:o>0&&(u+=`${t}${o}C`),a<0?u+=`${t}${-a}A`:a>0&&(u+=`${t}${a}B`),u},up:(o=1)=>`${t}${o}A`,down:(o=1)=>`${t}${o}B`,forward:(o=1)=>`${t}${o}C`,backward:(o=1)=>`${t}${o}D`,nextLine:(o=1)=>`${t}E`.repeat(o),prevLine:(o=1)=>`${t}F`.repeat(o),left:`${t}G`,hide:`${t}?25l`,show:`${t}?25h`,save:`${e}7`,restore:`${e}8`},i={up:(o=1)=>`${t}S`.repeat(o),down:(o=1)=>`${t}T`.repeat(o)},n={screen:`${t}2J`,up:(o=1)=>`${t}1J`.repeat(o),down:(o=1)=>`${t}J`.repeat(o),line:`${t}2K`,lineEnd:`${t}K`,lineStart:`${t}1K`,lines(o){let a="";for(let u=0;u<o;u++)a+=this.line+(u<o-1?s.up():"");return o&&(a+=s.left),a}};return Au={cursor:s,scroll:i,erase:n,beep:r},Au}function uE(){if(Od)return Gn.exports;Od=1;let e=process||{},t=e.argv||[],r=e.env||{},s=!(r.NO_COLOR||t.includes("--no-color"))&&(!!r.FORCE_COLOR||t.includes("--color")||e.platform==="win32"||(e.stdout||{}).isTTY&&r.TERM!=="dumb"||!!r.CI),i=(a,u,l=a)=>c=>{let f=""+c,h=f.indexOf(u,a.length);return~h?a+n(f,u,l,h)+u:a+f+u},n=(a,u,l,c)=>{let f="",h=0;do f+=a.substring(h,c)+l,h=c+u.length,c=a.indexOf(u,h);while(~c);return f+a.substring(h)},o=(a=s)=>{let u=a?i:()=>String;return{isColorSupported:a,reset:u("\x1B[0m","\x1B[0m"),bold:u("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:u("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:u("\x1B[3m","\x1B[23m"),underline:u("\x1B[4m","\x1B[24m"),inverse:u("\x1B[7m","\x1B[27m"),hidden:u("\x1B[8m","\x1B[28m"),strikethrough:u("\x1B[9m","\x1B[29m"),black:u("\x1B[30m","\x1B[39m"),red:u("\x1B[31m","\x1B[39m"),green:u("\x1B[32m","\x1B[39m"),yellow:u("\x1B[33m","\x1B[39m"),blue:u("\x1B[34m","\x1B[39m"),magenta:u("\x1B[35m","\x1B[39m"),cyan:u("\x1B[36m","\x1B[39m"),white:u("\x1B[37m","\x1B[39m"),gray:u("\x1B[90m","\x1B[39m"),bgBlack:u("\x1B[40m","\x1B[49m"),bgRed:u("\x1B[41m","\x1B[49m"),bgGreen:u("\x1B[42m","\x1B[49m"),bgYellow:u("\x1B[43m","\x1B[49m"),bgBlue:u("\x1B[44m","\x1B[49m"),bgMagenta:u("\x1B[45m","\x1B[49m"),bgCyan:u("\x1B[46m","\x1B[49m"),bgWhite:u("\x1B[47m","\x1B[49m"),blackBright:u("\x1B[90m","\x1B[39m"),redBright:u("\x1B[91m","\x1B[39m"),greenBright:u("\x1B[92m","\x1B[39m"),yellowBright:u("\x1B[93m","\x1B[39m"),blueBright:u("\x1B[94m","\x1B[39m"),magentaBright:u("\x1B[95m","\x1B[39m"),cyanBright:u("\x1B[96m","\x1B[39m"),whiteBright:u("\x1B[97m","\x1B[39m"),bgBlackBright:u("\x1B[100m","\x1B[49m"),bgRedBright:u("\x1B[101m","\x1B[49m"),bgGreenBright:u("\x1B[102m","\x1B[49m"),bgYellowBright:u("\x1B[103m","\x1B[49m"),bgBlueBright:u("\x1B[104m","\x1B[49m"),bgMagentaBright:u("\x1B[105m","\x1B[49m"),bgCyanBright:u("\x1B[106m","\x1B[49m"),bgWhiteBright:u("\x1B[107m","\x1B[49m")}};return Gn.exports=o(),Gn.exports.createColors=o,Gn.exports}function cE({onlyFirst:e=!1}={}){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}function zd(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(fE,"")}function Jd(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function gi(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=zd(e),e.length===0))return 0;e=e.replace(mE()," ");let r=t.ambiguousIsNarrow?1:2,s=0;for(let i of e){let n=i.codePointAt(0);if(!(n<=31||n>=127&&n<=159||n>=768&&n<=879))switch(hE.eastAsianWidth(i)){case"F":case"W":s+=2;break;case"A":s+=r;break;default:s+=1}}return s}function yE(){let e=new Map;for(let[t,r]of Object.entries(ne)){for(let[s,i]of Object.entries(r))ne[s]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},r[s]=ne[s],e.set(i[0],i[1]);Object.defineProperty(ne,t,{value:r,enumerable:!1})}return Object.defineProperty(ne,"codes",{value:e,enumerable:!1}),ne.color.close="\x1B[39m",ne.bgColor.close="\x1B[49m",ne.color.ansi=Ld(),ne.color.ansi256=Nd(),ne.color.ansi16m=Md(),ne.bgColor.ansi=Ld(Ru),ne.bgColor.ansi256=Nd(Ru),ne.bgColor.ansi16m=Md(Ru),Object.defineProperties(ne,{rgbToAnsi256:{value:(t,r,s)=>t===r&&r===s?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(s/255*5),enumerable:!1},hexToRgb:{value:t=>{let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[s]=r;s.length===3&&(s=[...s].map(n=>n+n).join(""));let i=Number.parseInt(s,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>ne.rgbToAnsi256(...ne.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value:t=>{if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,s,i;if(t>=232)r=((t-232)*10+8)/255,s=r,i=r;else{t-=16;let a=t%36;r=Math.floor(t/36)/5,s=Math.floor(a/6)/5,i=a%6/5}let n=Math.max(r,s,i)*2;if(n===0)return 30;let o=30+(Math.round(i)<<2|Math.round(s)<<1|Math.round(r));return n===2&&(o+=60),o},enumerable:!1},rgbToAnsi:{value:(t,r,s)=>ne.ansi256ToAnsi(ne.rgbToAnsi256(t,r,s)),enumerable:!1},hexToAnsi:{value:t=>ne.ansi256ToAnsi(ne.hexToAnsi256(t)),enumerable:!1}}),ne}function Ud(e,t,r){return String(e).normalize().replace(/\r\n/g,`
3
3
  `).split(`
4
- `).map(s=>bE(s,t,r)).join(`
5
- `)}function Xd(e,t){if(typeof e=="string")return Wn.aliases.get(e)===t;for(let r of e)if(r!==void 0&&Xd(r,t))return!0;return!1}function EE(e,t){if(e===t)return;let r=e.split(`
4
+ `).map(s=>FE(s,t,r)).join(`
5
+ `)}function Qd(e,t){if(typeof e=="string")return Wn.aliases.get(e)===t;for(let r of e)if(r!==void 0&&Qd(r,t))return!0;return!1}function xE(e,t){if(e===t)return;let r=e.split(`
6
6
  `),s=t.split(`
7
- `),i=[];for(let n=0;n<Math.max(r.length,s.length);n++)r[n]!==s[n]&&i.push(n);return i}function Vn(e,t){let r=e;r.isTTY&&r.setRawMode(t)}function IE(){return ke.default.platform!=="win32"?ke.default.env.TERM!=="linux":!!ke.default.env.CI||!!ke.default.env.WT_SESSION||!!ke.default.env.TERMINUS_SUBLIME||ke.default.env.ConEmuTask==="{cmd::Cmder}"||ke.default.env.TERM_PROGRAM==="Terminus-Sublime"||ke.default.env.TERM_PROGRAM==="vscode"||ke.default.env.TERM==="xterm-256color"||ke.default.env.TERM==="alacritty"||ke.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}async function eh(e,t={}){let r=s=>{if(typeof s!="symbol"||s.toString()!=="Symbol(clack:cancel)")return s;switch(t.cancel){case"reject":{let i=new Error("Prompt cancelled.");throw i.name="ConsolaPromptCancelledError",Error.captureStackTrace&&Error.captureStackTrace(i,eh),i}case"undefined":return;case"null":return null;case"symbol":return Qd;default:case"default":return t.default??t.initial}};if(!t.type||t.type==="text")return await NE({message:e,defaultValue:t.default,placeholder:t.placeholder,initialValue:t.initial}).then(r);if(t.type==="confirm")return await ME({message:e,initialValue:t.initial}).then(r);if(t.type==="select")return await jE({message:e,options:t.options.map(s=>typeof s=="string"?{value:s,label:s}:s),initialValue:t.initial}).then(r);if(t.type==="multiselect")return await qE({message:e,options:t.options.map(s=>typeof s=="string"?{value:s,label:s}:s),required:t.required,initialValues:t.initial}).then(r);throw new Error(`Unknown prompt type: ${t.type}`)}var yB,ke,Iu,Kd,Au,Pd,ut,Gn,Bd,nE,A,aE,Jd,uE,lE,cE,fE,Ru,Od,Ld,Nd,ne,dE,hE,mE,Kn,gE,Lu,Yd,DE,Zd,Nu,Md,jd,yE,ku,wE,bE,vE,Wn,Ud,CE,FE,Ve,hs,_u,SE,xE,Gd,AE,RE,kE,Vd,Tu,$u,_E,lt,TE,$E,PE,BE,te,ps,Pu,Bu,OE,Wd,LE,Hn,Ou,NE,ME,jE,qE,Qd,rh=ie(()=>{yB=require("node:util"),ke=bt(require("node:process"),1),Iu=bt(require("node:readline"),1),Kd=require("node:tty");ut=sE(),Gn={exports:{}};nE=iE(),A=rE(nE);aE=oE();Jd={exports:{}};(function(e){var t={};e.exports=t,t.eastAsianWidth=function(s){var i=s.charCodeAt(0),n=s.length==2?s.charCodeAt(1):0,o=i;return 55296<=i&&i<=56319&&56320<=n&&n<=57343&&(i&=1023,n&=1023,o=i<<10|n,o+=65536),o==12288||65281<=o&&o<=65376||65504<=o&&o<=65510?"F":o==8361||65377<=o&&o<=65470||65474<=o&&o<=65479||65482<=o&&o<=65487||65490<=o&&o<=65495||65498<=o&&o<=65500||65512<=o&&o<=65518?"H":4352<=o&&o<=4447||4515<=o&&o<=4519||4602<=o&&o<=4607||9001<=o&&o<=9002||11904<=o&&o<=11929||11931<=o&&o<=12019||12032<=o&&o<=12245||12272<=o&&o<=12283||12289<=o&&o<=12350||12353<=o&&o<=12438||12441<=o&&o<=12543||12549<=o&&o<=12589||12593<=o&&o<=12686||12688<=o&&o<=12730||12736<=o&&o<=12771||12784<=o&&o<=12830||12832<=o&&o<=12871||12880<=o&&o<=13054||13056<=o&&o<=19903||19968<=o&&o<=42124||42128<=o&&o<=42182||43360<=o&&o<=43388||44032<=o&&o<=55203||55216<=o&&o<=55238||55243<=o&&o<=55291||63744<=o&&o<=64255||65040<=o&&o<=65049||65072<=o&&o<=65106||65108<=o&&o<=65126||65128<=o&&o<=65131||110592<=o&&o<=110593||127488<=o&&o<=127490||127504<=o&&o<=127546||127552<=o&&o<=127560||127568<=o&&o<=127569||131072<=o&&o<=194367||177984<=o&&o<=196605||196608<=o&&o<=262141?"W":32<=o&&o<=126||162<=o&&o<=163||165<=o&&o<=166||o==172||o==175||10214<=o&&o<=10221||10629<=o&&o<=10630?"Na":o==161||o==164||167<=o&&o<=168||o==170||173<=o&&o<=174||176<=o&&o<=180||182<=o&&o<=186||188<=o&&o<=191||o==198||o==208||215<=o&&o<=216||222<=o&&o<=225||o==230||232<=o&&o<=234||236<=o&&o<=237||o==240||242<=o&&o<=243||247<=o&&o<=250||o==252||o==254||o==257||o==273||o==275||o==283||294<=o&&o<=295||o==299||305<=o&&o<=307||o==312||319<=o&&o<=322||o==324||328<=o&&o<=331||o==333||338<=o&&o<=339||358<=o&&o<=359||o==363||o==462||o==464||o==466||o==468||o==470||o==472||o==474||o==476||o==593||o==609||o==708||o==711||713<=o&&o<=715||o==717||o==720||728<=o&&o<=731||o==733||o==735||768<=o&&o<=879||913<=o&&o<=929||931<=o&&o<=937||945<=o&&o<=961||963<=o&&o<=969||o==1025||1040<=o&&o<=1103||o==1105||o==8208||8211<=o&&o<=8214||8216<=o&&o<=8217||8220<=o&&o<=8221||8224<=o&&o<=8226||8228<=o&&o<=8231||o==8240||8242<=o&&o<=8243||o==8245||o==8251||o==8254||o==8308||o==8319||8321<=o&&o<=8324||o==8364||o==8451||o==8453||o==8457||o==8467||o==8470||8481<=o&&o<=8482||o==8486||o==8491||8531<=o&&o<=8532||8539<=o&&o<=8542||8544<=o&&o<=8555||8560<=o&&o<=8569||o==8585||8592<=o&&o<=8601||8632<=o&&o<=8633||o==8658||o==8660||o==8679||o==8704||8706<=o&&o<=8707||8711<=o&&o<=8712||o==8715||o==8719||o==8721||o==8725||o==8730||8733<=o&&o<=8736||o==8739||o==8741||8743<=o&&o<=8748||o==8750||8756<=o&&o<=8759||8764<=o&&o<=8765||o==8776||o==8780||o==8786||8800<=o&&o<=8801||8804<=o&&o<=8807||8810<=o&&o<=8811||8814<=o&&o<=8815||8834<=o&&o<=8835||8838<=o&&o<=8839||o==8853||o==8857||o==8869||o==8895||o==8978||9312<=o&&o<=9449||9451<=o&&o<=9547||9552<=o&&o<=9587||9600<=o&&o<=9615||9618<=o&&o<=9621||9632<=o&&o<=9633||9635<=o&&o<=9641||9650<=o&&o<=9651||9654<=o&&o<=9655||9660<=o&&o<=9661||9664<=o&&o<=9665||9670<=o&&o<=9672||o==9675||9678<=o&&o<=9681||9698<=o&&o<=9701||o==9711||9733<=o&&o<=9734||o==9737||9742<=o&&o<=9743||9748<=o&&o<=9749||o==9756||o==9758||o==9792||o==9794||9824<=o&&o<=9825||9827<=o&&o<=9829||9831<=o&&o<=9834||9836<=o&&o<=9837||o==9839||9886<=o&&o<=9887||9918<=o&&o<=9919||9924<=o&&o<=9933||9935<=o&&o<=9953||o==9955||9960<=o&&o<=9983||o==10045||o==10071||10102<=o&&o<=10111||11093<=o&&o<=11097||12872<=o&&o<=12879||57344<=o&&o<=63743||65024<=o&&o<=65039||o==65533||127232<=o&&o<=127242||127248<=o&&o<=127277||127280<=o&&o<=127337||127344<=o&&o<=127386||917760<=o&&o<=917999||983040<=o&&o<=1048573||1048576<=o&&o<=1114109?"A":"N"},t.characterLength=function(s){var i=this.eastAsianWidth(s);return i=="F"||i=="W"||i=="A"?2:1};function r(s){return s.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}t.length=function(s){for(var i=r(s),n=0,o=0;o<i.length;o++)n=n+this.characterLength(i[o]);return n},t.slice=function(s,i,n){textLen=t.length(s),i=i||0,n=n||1,i<0&&(i=textLen+i),n<0&&(n=textLen+n);for(var o="",a=0,u=r(s),l=0;l<u.length;l++){var c=u[l],f=t.length(c);if(a>=i-(f==2?1:0))if(a+f<=n)o+=c;else break;a+=f}return o}})(Jd);uE=Jd.exports,lE=zd(uE),cE=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},fE=zd(cE);Ru=10,Od=(e=0)=>t=>`\x1B[${t+e}m`,Ld=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Nd=(e=0)=>(t,r,s)=>`\x1B[${38+e};2;${t};${r};${s}m`,ne={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(ne.modifier);dE=Object.keys(ne.color),hE=Object.keys(ne.bgColor);[...dE,...hE];mE=pE(),Kn=new Set(["\x1B","\x9B"]),gE=39,Lu="\x07",Yd="[",DE="]",Zd="m",Nu=`${DE}8;;`,Md=e=>`${Kn.values().next().value}${Yd}${e}${Zd}`,jd=e=>`${Kn.values().next().value}${Nu}${e}${Lu}`,yE=e=>e.split(" ").map(t=>mi(t)),ku=(e,t,r)=>{let s=[...t],i=!1,n=!1,o=mi(Hd(e[e.length-1]));for(let[a,u]of s.entries()){let l=mi(u);if(o+l<=r?e[e.length-1]+=u:(e.push(u),o=0),Kn.has(u)&&(i=!0,n=s.slice(a+1).join("").startsWith(Nu)),i){n?u===Lu&&(i=!1,n=!1):u===Zd&&(i=!1);continue}o+=l,o===r&&a<s.length-1&&(e.push(""),o=0)}!o&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},wE=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(mi(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},bE=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let s="",i,n,o=yE(e),a=[""];for(let[l,c]of e.split(" ").entries()){r.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let f=mi(a[a.length-1]);if(l!==0&&(f>=t&&(r.wordWrap===!1||r.trim===!1)&&(a.push(""),f=0),(f>0||r.trim===!1)&&(a[a.length-1]+=" ",f++)),r.hard&&o[l]>t){let h=t-f,p=1+Math.floor((o[l]-h-1)/t);Math.floor((o[l]-1)/t)<p&&a.push(""),ku(a,c,t);continue}if(f+o[l]>t&&f>0&&o[l]>0){if(r.wordWrap===!1&&f<t){ku(a,c,t);continue}a.push("")}if(f+o[l]>t&&r.wordWrap===!1){ku(a,c,t);continue}a[a.length-1]+=c}r.trim!==!1&&(a=a.map(l=>wE(l)));let u=[...a.join(`
8
- `)];for(let[l,c]of u.entries()){if(s+=c,Kn.has(c)){let{groups:h}=new RegExp(`(?:\\${Yd}(?<code>\\d+)m|\\${Nu}(?<uri>.*)${Lu})`).exec(u.slice(l).join(""))||{groups:{}};if(h.code!==void 0){let p=Number.parseFloat(h.code);i=p===gE?void 0:p}else h.uri!==void 0&&(n=h.uri.length===0?void 0:h.uri)}let f=mE.codes.get(Number(i));u[l+1]===`
9
- `?(n&&(s+=jd("")),i&&f&&(s+=Md(f))):c===`
10
- `&&(i&&f&&(s+=Md(i)),n&&(s+=jd(n)))}return s};vE=["up","down","left","right","space","enter","cancel"],Wn={actions:new Set(vE),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]])};globalThis.process.platform.startsWith("win");Ud=Symbol("clack:cancel");CE=Object.defineProperty,FE=(e,t,r)=>t in e?CE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ve=(e,t,r)=>(FE(e,typeof t!="symbol"?t+"":t,r),r),hs=class{constructor(t,r=!0){Ve(this,"input"),Ve(this,"output"),Ve(this,"_abortSignal"),Ve(this,"rl"),Ve(this,"opts"),Ve(this,"_render"),Ve(this,"_track",!1),Ve(this,"_prevFrame",""),Ve(this,"_subscribers",new Map),Ve(this,"_cursor",0),Ve(this,"state","initial"),Ve(this,"error",""),Ve(this,"value");let{input:s=ke.stdin,output:i=ke.stdout,render:n,signal:o,...a}=t;this.opts=a,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=n.bind(this),this._track=r,this._abortSignal=o,this.input=s,this.output=i}unsubscribe(){this._subscribers.clear()}setSubscriber(t,r){let s=this._subscribers.get(t)??[];s.push(r),this._subscribers.set(t,s)}on(t,r){this.setSubscriber(t,{cb:r})}once(t,r){this.setSubscriber(t,{cb:r,once:!0})}emit(t,...r){let s=this._subscribers.get(t)??[],i=[];for(let n of s)n.cb(...r),n.once&&i.push(()=>s.splice(s.indexOf(n),1));for(let n of i)n()}prompt(){return new Promise((t,r)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),t(Ud);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let s=new Kd.WriteStream(0);s._write=(i,n,o)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),o()},this.input.pipe(s),this.rl=Iu.default.createInterface({input:this.input,output:s,tabSize:2,prompt:"",escapeCodeTimeout:50}),Iu.default.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),Vn(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(ut.cursor.show),this.output.off("resize",this.render),Vn(this.input,!1),t(this.value)}),this.once("cancel",()=>{this.output.write(ut.cursor.show),this.output.off("resize",this.render),Vn(this.input,!1),t(Ud)})})}onKeypress(t,r){if(this.state==="error"&&(this.state="active"),r?.name&&(!this._track&&Wn.aliases.has(r.name)&&this.emit("cursor",Wn.aliases.get(r.name)),Wn.actions.has(r.name)&&this.emit("cursor",r.name)),t&&(t.toLowerCase()==="y"||t.toLowerCase()==="n")&&this.emit("confirm",t.toLowerCase()==="y"),t===" "&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),t&&this.emit("key",t.toLowerCase()),r?.name==="return"){if(this.opts.validate){let s=this.opts.validate(this.value);s&&(this.error=s instanceof Error?s.message:s,this.state="error",this.rl?.write(this.value))}this.state!=="error"&&(this.state="submit")}Xd([t,r?.name,r?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
11
- `),Vn(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let t=qd(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
12
- `).length-1;this.output.write(ut.cursor.move(-999,t*-1))}render(){let t=qd(this._render(this)??"",process.stdout.columns,{hard:!0});if(t!==this._prevFrame){if(this.state==="initial")this.output.write(ut.cursor.hide);else{let r=EE(this._prevFrame,t);if(this.restoreCursor(),r&&r?.length===1){let s=r[0];this.output.write(ut.cursor.move(0,s)),this.output.write(ut.erase.lines(1));let i=t.split(`
7
+ `),i=[];for(let n=0;n<Math.max(r.length,s.length);n++)r[n]!==s[n]&&i.push(n);return i}function Vn(e,t){let r=e;r.isTTY&&r.setRawMode(t)}function PE(){return Ie.default.platform!=="win32"?Ie.default.env.TERM!=="linux":!!Ie.default.env.CI||!!Ie.default.env.WT_SESSION||!!Ie.default.env.TERMINUS_SUBLIME||Ie.default.env.ConEmuTask==="{cmd::Cmder}"||Ie.default.env.TERM_PROGRAM==="Terminus-Sublime"||Ie.default.env.TERM_PROGRAM==="vscode"||Ie.default.env.TERM==="xterm-256color"||Ie.default.env.TERM==="alacritty"||Ie.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}async function th(e,t={}){let r=s=>{if(typeof s!="symbol"||s.toString()!=="Symbol(clack:cancel)")return s;switch(t.cancel){case"reject":{let i=new Error("Prompt cancelled.");throw i.name="ConsolaPromptCancelledError",Error.captureStackTrace&&Error.captureStackTrace(i,th),i}case"undefined":return;case"null":return null;case"symbol":return eh;default:case"default":return t.default??t.initial}};if(!t.type||t.type==="text")return await UE({message:e,defaultValue:t.default,placeholder:t.placeholder,initialValue:t.initial}).then(r);if(t.type==="confirm")return await GE({message:e,initialValue:t.initial}).then(r);if(t.type==="select")return await VE({message:e,options:t.options.map(s=>typeof s=="string"?{value:s,label:s}:s),initialValue:t.initial}).then(r);if(t.type==="multiselect")return await WE({message:e,options:t.options.map(s=>typeof s=="string"?{value:s,label:s}:s),required:t.required,initialValues:t.initial}).then(r);throw new Error(`Unknown prompt type: ${t.type}`)}var FB,Ie,Iu,Kd,Au,Bd,ut,Gn,Od,lE,A,fE,Yd,dE,hE,pE,mE,Ru,Ld,Nd,Md,ne,gE,DE,wE,Hn,bE,Lu,Zd,vE,Xd,Nu,jd,qd,EE,ku,CE,FE,SE,Wn,Gd,AE,RE,We,hs,_u,kE,IE,Vd,_E,TE,$E,Wd,Tu,$u,BE,lt,OE,LE,NE,ME,te,ps,Pu,Bu,jE,Hd,qE,Kn,Ou,UE,GE,VE,WE,eh,sh=ie(()=>{FB=require("node:util"),Ie=bt(require("node:process"),1),Iu=bt(require("node:readline"),1),Kd=require("node:tty");ut=aE(),Gn={exports:{}};lE=uE(),A=oE(lE);fE=cE();Yd={exports:{}};(function(e){var t={};e.exports=t,t.eastAsianWidth=function(s){var i=s.charCodeAt(0),n=s.length==2?s.charCodeAt(1):0,o=i;return 55296<=i&&i<=56319&&56320<=n&&n<=57343&&(i&=1023,n&=1023,o=i<<10|n,o+=65536),o==12288||65281<=o&&o<=65376||65504<=o&&o<=65510?"F":o==8361||65377<=o&&o<=65470||65474<=o&&o<=65479||65482<=o&&o<=65487||65490<=o&&o<=65495||65498<=o&&o<=65500||65512<=o&&o<=65518?"H":4352<=o&&o<=4447||4515<=o&&o<=4519||4602<=o&&o<=4607||9001<=o&&o<=9002||11904<=o&&o<=11929||11931<=o&&o<=12019||12032<=o&&o<=12245||12272<=o&&o<=12283||12289<=o&&o<=12350||12353<=o&&o<=12438||12441<=o&&o<=12543||12549<=o&&o<=12589||12593<=o&&o<=12686||12688<=o&&o<=12730||12736<=o&&o<=12771||12784<=o&&o<=12830||12832<=o&&o<=12871||12880<=o&&o<=13054||13056<=o&&o<=19903||19968<=o&&o<=42124||42128<=o&&o<=42182||43360<=o&&o<=43388||44032<=o&&o<=55203||55216<=o&&o<=55238||55243<=o&&o<=55291||63744<=o&&o<=64255||65040<=o&&o<=65049||65072<=o&&o<=65106||65108<=o&&o<=65126||65128<=o&&o<=65131||110592<=o&&o<=110593||127488<=o&&o<=127490||127504<=o&&o<=127546||127552<=o&&o<=127560||127568<=o&&o<=127569||131072<=o&&o<=194367||177984<=o&&o<=196605||196608<=o&&o<=262141?"W":32<=o&&o<=126||162<=o&&o<=163||165<=o&&o<=166||o==172||o==175||10214<=o&&o<=10221||10629<=o&&o<=10630?"Na":o==161||o==164||167<=o&&o<=168||o==170||173<=o&&o<=174||176<=o&&o<=180||182<=o&&o<=186||188<=o&&o<=191||o==198||o==208||215<=o&&o<=216||222<=o&&o<=225||o==230||232<=o&&o<=234||236<=o&&o<=237||o==240||242<=o&&o<=243||247<=o&&o<=250||o==252||o==254||o==257||o==273||o==275||o==283||294<=o&&o<=295||o==299||305<=o&&o<=307||o==312||319<=o&&o<=322||o==324||328<=o&&o<=331||o==333||338<=o&&o<=339||358<=o&&o<=359||o==363||o==462||o==464||o==466||o==468||o==470||o==472||o==474||o==476||o==593||o==609||o==708||o==711||713<=o&&o<=715||o==717||o==720||728<=o&&o<=731||o==733||o==735||768<=o&&o<=879||913<=o&&o<=929||931<=o&&o<=937||945<=o&&o<=961||963<=o&&o<=969||o==1025||1040<=o&&o<=1103||o==1105||o==8208||8211<=o&&o<=8214||8216<=o&&o<=8217||8220<=o&&o<=8221||8224<=o&&o<=8226||8228<=o&&o<=8231||o==8240||8242<=o&&o<=8243||o==8245||o==8251||o==8254||o==8308||o==8319||8321<=o&&o<=8324||o==8364||o==8451||o==8453||o==8457||o==8467||o==8470||8481<=o&&o<=8482||o==8486||o==8491||8531<=o&&o<=8532||8539<=o&&o<=8542||8544<=o&&o<=8555||8560<=o&&o<=8569||o==8585||8592<=o&&o<=8601||8632<=o&&o<=8633||o==8658||o==8660||o==8679||o==8704||8706<=o&&o<=8707||8711<=o&&o<=8712||o==8715||o==8719||o==8721||o==8725||o==8730||8733<=o&&o<=8736||o==8739||o==8741||8743<=o&&o<=8748||o==8750||8756<=o&&o<=8759||8764<=o&&o<=8765||o==8776||o==8780||o==8786||8800<=o&&o<=8801||8804<=o&&o<=8807||8810<=o&&o<=8811||8814<=o&&o<=8815||8834<=o&&o<=8835||8838<=o&&o<=8839||o==8853||o==8857||o==8869||o==8895||o==8978||9312<=o&&o<=9449||9451<=o&&o<=9547||9552<=o&&o<=9587||9600<=o&&o<=9615||9618<=o&&o<=9621||9632<=o&&o<=9633||9635<=o&&o<=9641||9650<=o&&o<=9651||9654<=o&&o<=9655||9660<=o&&o<=9661||9664<=o&&o<=9665||9670<=o&&o<=9672||o==9675||9678<=o&&o<=9681||9698<=o&&o<=9701||o==9711||9733<=o&&o<=9734||o==9737||9742<=o&&o<=9743||9748<=o&&o<=9749||o==9756||o==9758||o==9792||o==9794||9824<=o&&o<=9825||9827<=o&&o<=9829||9831<=o&&o<=9834||9836<=o&&o<=9837||o==9839||9886<=o&&o<=9887||9918<=o&&o<=9919||9924<=o&&o<=9933||9935<=o&&o<=9953||o==9955||9960<=o&&o<=9983||o==10045||o==10071||10102<=o&&o<=10111||11093<=o&&o<=11097||12872<=o&&o<=12879||57344<=o&&o<=63743||65024<=o&&o<=65039||o==65533||127232<=o&&o<=127242||127248<=o&&o<=127277||127280<=o&&o<=127337||127344<=o&&o<=127386||917760<=o&&o<=917999||983040<=o&&o<=1048573||1048576<=o&&o<=1114109?"A":"N"},t.characterLength=function(s){var i=this.eastAsianWidth(s);return i=="F"||i=="W"||i=="A"?2:1};function r(s){return s.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}t.length=function(s){for(var i=r(s),n=0,o=0;o<i.length;o++)n=n+this.characterLength(i[o]);return n},t.slice=function(s,i,n){textLen=t.length(s),i=i||0,n=n||1,i<0&&(i=textLen+i),n<0&&(n=textLen+n);for(var o="",a=0,u=r(s),l=0;l<u.length;l++){var c=u[l],f=t.length(c);if(a>=i-(f==2?1:0))if(a+f<=n)o+=c;else break;a+=f}return o}})(Yd);dE=Yd.exports,hE=Jd(dE),pE=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},mE=Jd(pE);Ru=10,Ld=(e=0)=>t=>`\x1B[${t+e}m`,Nd=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Md=(e=0)=>(t,r,s)=>`\x1B[${38+e};2;${t};${r};${s}m`,ne={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(ne.modifier);gE=Object.keys(ne.color),DE=Object.keys(ne.bgColor);[...gE,...DE];wE=yE(),Hn=new Set(["\x1B","\x9B"]),bE=39,Lu="\x07",Zd="[",vE="]",Xd="m",Nu=`${vE}8;;`,jd=e=>`${Hn.values().next().value}${Zd}${e}${Xd}`,qd=e=>`${Hn.values().next().value}${Nu}${e}${Lu}`,EE=e=>e.split(" ").map(t=>gi(t)),ku=(e,t,r)=>{let s=[...t],i=!1,n=!1,o=gi(zd(e[e.length-1]));for(let[a,u]of s.entries()){let l=gi(u);if(o+l<=r?e[e.length-1]+=u:(e.push(u),o=0),Hn.has(u)&&(i=!0,n=s.slice(a+1).join("").startsWith(Nu)),i){n?u===Lu&&(i=!1,n=!1):u===Xd&&(i=!1);continue}o+=l,o===r&&a<s.length-1&&(e.push(""),o=0)}!o&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},CE=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(gi(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},FE=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let s="",i,n,o=EE(e),a=[""];for(let[l,c]of e.split(" ").entries()){r.trim!==!1&&(a[a.length-1]=a[a.length-1].trimStart());let f=gi(a[a.length-1]);if(l!==0&&(f>=t&&(r.wordWrap===!1||r.trim===!1)&&(a.push(""),f=0),(f>0||r.trim===!1)&&(a[a.length-1]+=" ",f++)),r.hard&&o[l]>t){let h=t-f,p=1+Math.floor((o[l]-h-1)/t);Math.floor((o[l]-1)/t)<p&&a.push(""),ku(a,c,t);continue}if(f+o[l]>t&&f>0&&o[l]>0){if(r.wordWrap===!1&&f<t){ku(a,c,t);continue}a.push("")}if(f+o[l]>t&&r.wordWrap===!1){ku(a,c,t);continue}a[a.length-1]+=c}r.trim!==!1&&(a=a.map(l=>CE(l)));let u=[...a.join(`
8
+ `)];for(let[l,c]of u.entries()){if(s+=c,Hn.has(c)){let{groups:h}=new RegExp(`(?:\\${Zd}(?<code>\\d+)m|\\${Nu}(?<uri>.*)${Lu})`).exec(u.slice(l).join(""))||{groups:{}};if(h.code!==void 0){let p=Number.parseFloat(h.code);i=p===bE?void 0:p}else h.uri!==void 0&&(n=h.uri.length===0?void 0:h.uri)}let f=wE.codes.get(Number(i));u[l+1]===`
9
+ `?(n&&(s+=qd("")),i&&f&&(s+=jd(f))):c===`
10
+ `&&(i&&f&&(s+=jd(i)),n&&(s+=qd(n)))}return s};SE=["up","down","left","right","space","enter","cancel"],Wn={actions:new Set(SE),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["","cancel"],["escape","cancel"]])};globalThis.process.platform.startsWith("win");Gd=Symbol("clack:cancel");AE=Object.defineProperty,RE=(e,t,r)=>t in e?AE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,We=(e,t,r)=>(RE(e,typeof t!="symbol"?t+"":t,r),r),hs=class{constructor(t,r=!0){We(this,"input"),We(this,"output"),We(this,"_abortSignal"),We(this,"rl"),We(this,"opts"),We(this,"_render"),We(this,"_track",!1),We(this,"_prevFrame",""),We(this,"_subscribers",new Map),We(this,"_cursor",0),We(this,"state","initial"),We(this,"error",""),We(this,"value");let{input:s=Ie.stdin,output:i=Ie.stdout,render:n,signal:o,...a}=t;this.opts=a,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=n.bind(this),this._track=r,this._abortSignal=o,this.input=s,this.output=i}unsubscribe(){this._subscribers.clear()}setSubscriber(t,r){let s=this._subscribers.get(t)??[];s.push(r),this._subscribers.set(t,s)}on(t,r){this.setSubscriber(t,{cb:r})}once(t,r){this.setSubscriber(t,{cb:r,once:!0})}emit(t,...r){let s=this._subscribers.get(t)??[],i=[];for(let n of s)n.cb(...r),n.once&&i.push(()=>s.splice(s.indexOf(n),1));for(let n of i)n()}prompt(){return new Promise((t,r)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),t(Gd);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let s=new Kd.WriteStream(0);s._write=(i,n,o)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),o()},this.input.pipe(s),this.rl=Iu.default.createInterface({input:this.input,output:s,tabSize:2,prompt:"",escapeCodeTimeout:50}),Iu.default.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),Vn(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(ut.cursor.show),this.output.off("resize",this.render),Vn(this.input,!1),t(this.value)}),this.once("cancel",()=>{this.output.write(ut.cursor.show),this.output.off("resize",this.render),Vn(this.input,!1),t(Gd)})})}onKeypress(t,r){if(this.state==="error"&&(this.state="active"),r?.name&&(!this._track&&Wn.aliases.has(r.name)&&this.emit("cursor",Wn.aliases.get(r.name)),Wn.actions.has(r.name)&&this.emit("cursor",r.name)),t&&(t.toLowerCase()==="y"||t.toLowerCase()==="n")&&this.emit("confirm",t.toLowerCase()==="y"),t===" "&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),t&&this.emit("key",t.toLowerCase()),r?.name==="return"){if(this.opts.validate){let s=this.opts.validate(this.value);s&&(this.error=s instanceof Error?s.message:s,this.state="error",this.rl?.write(this.value))}this.state!=="error"&&(this.state="submit")}Qd([t,r?.name,r?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
11
+ `),Vn(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let t=Ud(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
12
+ `).length-1;this.output.write(ut.cursor.move(-999,t*-1))}render(){let t=Ud(this._render(this)??"",process.stdout.columns,{hard:!0});if(t!==this._prevFrame){if(this.state==="initial")this.output.write(ut.cursor.hide);else{let r=xE(this._prevFrame,t);if(this.restoreCursor(),r&&r?.length===1){let s=r[0];this.output.write(ut.cursor.move(0,s)),this.output.write(ut.erase.lines(1));let i=t.split(`
13
13
  `);this.output.write(i[s]),this._prevFrame=t,this.output.write(ut.cursor.move(0,i.length-s-1));return}if(r&&r?.length>1){let s=r[0];this.output.write(ut.cursor.move(0,s)),this.output.write(ut.erase.down());let i=t.split(`
14
14
  `).slice(s);this.output.write(i.join(`
15
- `)),this._prevFrame=t;return}this.output.write(ut.erase.down())}this.output.write(t),this.state==="initial"&&(this.state="active"),this._prevFrame=t}}},_u=class extends hs{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(t){super(t,!1),this.value=!!t.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",r=>{this.output.write(ut.cursor.move(0,-1)),this.value=r,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}},SE=Object.defineProperty,xE=(e,t,r)=>t in e?SE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Gd=(e,t,r)=>(xE(e,typeof t!="symbol"?t+"":t,r),r),AE=class extends hs{constructor(e){super(e,!1),Gd(this,"options"),Gd(this,"cursor",0),this.options=e.options,this.value=[...e.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:t})=>t===e.cursorAt),0),this.on("key",t=>{t==="a"&&this.toggleAll()}),this.on("cursor",t=>{switch(t){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let e=this.value.length===this.options.length;this.value=e?[]:this.options.map(t=>t.value)}toggleValue(){let e=this.value.includes(this._value);this.value=e?this.value.filter(t=>t!==this._value):[...this.value,this._value]}},RE=Object.defineProperty,kE=(e,t,r)=>t in e?RE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Vd=(e,t,r)=>(kE(e,typeof t!="symbol"?t+"":t,r),r),Tu=class extends hs{constructor(t){super(t,!1),Vd(this,"options"),Vd(this,"cursor",0),this.options=t.options,this.cursor=this.options.findIndex(({value:r})=>r===t.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",r=>{switch(r){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}},$u=class extends hs{get valueWithCursor(){if(this.state==="submit")return this.value;if(this.cursor>=this.value.length)return`${this.value}\u2588`;let t=this.value.slice(0,this.cursor),[r,...s]=this.value.slice(this.cursor);return`${t}${A.inverse(r)}${s.join("")}`}get cursor(){return this._cursor}constructor(t){super(t),this.on("finalize",()=>{this.value||(this.value=t.defaultValue)})}};_E=IE(),lt=(e,t)=>_E?e:t,TE=lt("\u276F",">"),$E=lt("\u25A0","x"),PE=lt("\u25B2","x"),BE=lt("\u2714","\u221A"),te=lt(""),ps=lt(""),Pu=lt("\u25CF",">"),Bu=lt("\u25CB"," "),OE=lt("\u25FB","[\u2022]"),Wd=lt("\u25FC","[+]"),LE=lt("\u25FB","[ ]"),Hn=e=>{switch(e){case"initial":case"active":return A.cyan(TE);case"cancel":return A.red($E);case"error":return A.yellow(PE);case"submit":return A.green(BE)}},Ou=e=>{let{cursor:t,options:r,style:s}=e,i=e.maxItems??Number.POSITIVE_INFINITY,n=Math.max(process.stdout.rows-4,0),o=Math.min(n,Math.max(i,5)),a=0;t>=a+o-3?a=Math.max(Math.min(t-o+3,r.length-o),0):t<a+2&&(a=Math.max(t-2,0));let u=o<r.length&&a>0,l=o<r.length&&a+o<r.length;return r.slice(a,a+o).map((c,f,h)=>{let p=f===0&&u,m=f===h.length-1&&l;return p||m?A.dim("..."):s(c,f+a===t)})},NE=e=>new $u({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,render(){let t=`${A.gray(te)}
16
- ${Hn(this.state)} ${e.message}
15
+ `)),this._prevFrame=t;return}this.output.write(ut.erase.down())}this.output.write(t),this.state==="initial"&&(this.state="active"),this._prevFrame=t}}},_u=class extends hs{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(t){super(t,!1),this.value=!!t.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",r=>{this.output.write(ut.cursor.move(0,-1)),this.value=r,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}},kE=Object.defineProperty,IE=(e,t,r)=>t in e?kE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Vd=(e,t,r)=>(IE(e,typeof t!="symbol"?t+"":t,r),r),_E=class extends hs{constructor(e){super(e,!1),Vd(this,"options"),Vd(this,"cursor",0),this.options=e.options,this.value=[...e.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:t})=>t===e.cursorAt),0),this.on("key",t=>{t==="a"&&this.toggleAll()}),this.on("cursor",t=>{switch(t){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let e=this.value.length===this.options.length;this.value=e?[]:this.options.map(t=>t.value)}toggleValue(){let e=this.value.includes(this._value);this.value=e?this.value.filter(t=>t!==this._value):[...this.value,this._value]}},TE=Object.defineProperty,$E=(e,t,r)=>t in e?TE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Wd=(e,t,r)=>($E(e,typeof t!="symbol"?t+"":t,r),r),Tu=class extends hs{constructor(t){super(t,!1),Wd(this,"options"),Wd(this,"cursor",0),this.options=t.options,this.cursor=this.options.findIndex(({value:r})=>r===t.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",r=>{switch(r){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}},$u=class extends hs{get valueWithCursor(){if(this.state==="submit")return this.value;if(this.cursor>=this.value.length)return`${this.value}\u2588`;let t=this.value.slice(0,this.cursor),[r,...s]=this.value.slice(this.cursor);return`${t}${A.inverse(r)}${s.join("")}`}get cursor(){return this._cursor}constructor(t){super(t),this.on("finalize",()=>{this.value||(this.value=t.defaultValue)})}};BE=PE(),lt=(e,t)=>BE?e:t,OE=lt("\u276F",">"),LE=lt("\u25A0","x"),NE=lt("\u25B2","x"),ME=lt("\u2714","\u221A"),te=lt(""),ps=lt(""),Pu=lt("\u25CF",">"),Bu=lt("\u25CB"," "),jE=lt("\u25FB","[\u2022]"),Hd=lt("\u25FC","[+]"),qE=lt("\u25FB","[ ]"),Kn=e=>{switch(e){case"initial":case"active":return A.cyan(OE);case"cancel":return A.red(LE);case"error":return A.yellow(NE);case"submit":return A.green(ME)}},Ou=e=>{let{cursor:t,options:r,style:s}=e,i=e.maxItems??Number.POSITIVE_INFINITY,n=Math.max(process.stdout.rows-4,0),o=Math.min(n,Math.max(i,5)),a=0;t>=a+o-3?a=Math.max(Math.min(t-o+3,r.length-o),0):t<a+2&&(a=Math.max(t-2,0));let u=o<r.length&&a>0,l=o<r.length&&a+o<r.length;return r.slice(a,a+o).map((c,f,h)=>{let p=f===0&&u,m=f===h.length-1&&l;return p||m?A.dim("..."):s(c,f+a===t)})},UE=e=>new $u({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,render(){let t=`${A.gray(te)}
16
+ ${Kn(this.state)} ${e.message}
17
17
  `,r=e.placeholder?A.inverse(e.placeholder[0])+A.dim(e.placeholder.slice(1)):A.inverse(A.hidden("_")),s=this.value?this.valueWithCursor:r;switch(this.state){case"error":return`${t.trim()}
18
18
  ${A.yellow(te)} ${s}
19
19
  ${A.yellow(ps)} ${A.yellow(this.error)}
20
20
  `;case"submit":return`${t}${A.gray(te)} ${A.dim(this.value||e.placeholder)}`;case"cancel":return`${t}${A.gray(te)} ${A.strikethrough(A.dim(this.value??""))}${this.value?.trim()?`
21
21
  ${A.gray(te)}`:""}`;default:return`${t}${A.cyan(te)} ${s}
22
22
  ${A.cyan(ps)}
23
- `}}}).prompt(),ME=e=>{let t=e.active??"Yes",r=e.inactive??"No";return new _u({active:t,inactive:r,initialValue:e.initialValue??!0,render(){let s=`${A.gray(te)}
24
- ${Hn(this.state)} ${e.message}
23
+ `}}}).prompt(),GE=e=>{let t=e.active??"Yes",r=e.inactive??"No";return new _u({active:t,inactive:r,initialValue:e.initialValue??!0,render(){let s=`${A.gray(te)}
24
+ ${Kn(this.state)} ${e.message}
25
25
  `,i=this.value?t:r;switch(this.state){case"submit":return`${s}${A.gray(te)} ${A.dim(i)}`;case"cancel":return`${s}${A.gray(te)} ${A.strikethrough(A.dim(i))}
26
26
  ${A.gray(te)}`;default:return`${s}${A.cyan(te)} ${this.value?`${A.green(Pu)} ${t}`:`${A.dim(Bu)} ${A.dim(t)}`} ${A.dim("/")} ${this.value?`${A.dim(Bu)} ${A.dim(r)}`:`${A.green(Pu)} ${r}`}
27
27
  ${A.cyan(ps)}
28
- `}}}).prompt()},jE=e=>{let t=(r,s)=>{let i=r.label??String(r.value);switch(s){case"selected":return`${A.dim(i)}`;case"active":return`${A.green(Pu)} ${i} ${r.hint?A.dim(`(${r.hint})`):""}`;case"cancelled":return`${A.strikethrough(A.dim(i))}`;default:return`${A.dim(Bu)} ${A.dim(i)}`}};return new Tu({options:e.options,initialValue:e.initialValue,render(){let r=`${A.gray(te)}
29
- ${Hn(this.state)} ${e.message}
28
+ `}}}).prompt()},VE=e=>{let t=(r,s)=>{let i=r.label??String(r.value);switch(s){case"selected":return`${A.dim(i)}`;case"active":return`${A.green(Pu)} ${i} ${r.hint?A.dim(`(${r.hint})`):""}`;case"cancelled":return`${A.strikethrough(A.dim(i))}`;default:return`${A.dim(Bu)} ${A.dim(i)}`}};return new Tu({options:e.options,initialValue:e.initialValue,render(){let r=`${A.gray(te)}
29
+ ${Kn(this.state)} ${e.message}
30
30
  `;switch(this.state){case"submit":return`${r}${A.gray(te)} ${t(this.options[this.cursor],"selected")}`;case"cancel":return`${r}${A.gray(te)} ${t(this.options[this.cursor],"cancelled")}
31
31
  ${A.gray(te)}`;default:return`${r}${A.cyan(te)} ${Ou({cursor:this.cursor,options:this.options,maxItems:e.maxItems,style:(s,i)=>t(s,i?"active":"inactive")}).join(`
32
32
  ${A.cyan(te)} `)}
33
33
  ${A.cyan(ps)}
34
- `}}}).prompt()},qE=e=>{let t=(r,s)=>{let i=r.label??String(r.value);return s==="active"?`${A.cyan(OE)} ${i} ${r.hint?A.dim(`(${r.hint})`):""}`:s==="selected"?`${A.green(Wd)} ${A.dim(i)}`:s==="cancelled"?`${A.strikethrough(A.dim(i))}`:s==="active-selected"?`${A.green(Wd)} ${i} ${r.hint?A.dim(`(${r.hint})`):""}`:s==="submitted"?`${A.dim(i)}`:`${A.dim(LE)} ${A.dim(i)}`};return new AE({options:e.options,initialValues:e.initialValues,required:e.required??!0,cursorAt:e.cursorAt,validate(r){if(this.required&&r.length===0)return`Please select at least one option.
34
+ `}}}).prompt()},WE=e=>{let t=(r,s)=>{let i=r.label??String(r.value);return s==="active"?`${A.cyan(jE)} ${i} ${r.hint?A.dim(`(${r.hint})`):""}`:s==="selected"?`${A.green(Hd)} ${A.dim(i)}`:s==="cancelled"?`${A.strikethrough(A.dim(i))}`:s==="active-selected"?`${A.green(Hd)} ${i} ${r.hint?A.dim(`(${r.hint})`):""}`:s==="submitted"?`${A.dim(i)}`:`${A.dim(qE)} ${A.dim(i)}`};return new _E({options:e.options,initialValues:e.initialValues,required:e.required??!0,cursorAt:e.cursorAt,validate(r){if(this.required&&r.length===0)return`Please select at least one option.
35
35
  ${A.reset(A.dim(`Press ${A.gray(A.bgWhite(A.inverse(" space ")))} to select, ${A.gray(A.bgWhite(A.inverse(" enter ")))} to submit`))}`},render(){let r=`${A.gray(te)}
36
- ${Hn(this.state)} ${e.message}
36
+ ${Kn(this.state)} ${e.message}
37
37
  `,s=(i,n)=>{let o=this.value.includes(i.value);return n&&o?t(i,"active-selected"):o?t(i,"selected"):t(i,n?"active":"inactive")};switch(this.state){case"submit":return`${r}${A.gray(te)} ${this.options.filter(({value:i})=>this.value.includes(i)).map(i=>t(i,"submitted")).join(A.dim(", "))||A.dim("none")}`;case"cancel":{let i=this.options.filter(({value:n})=>this.value.includes(n)).map(n=>t(n,"cancelled")).join(A.dim(", "));return`${r}${A.gray(te)} ${i.trim()?`${i}
38
38
  ${A.gray(te)}`:""}`}case"error":{let i=this.error.split(`
39
39
  `).map((n,o)=>o===0?`${A.yellow(ps)} ${A.yellow(n)}`:` ${n}`).join(`
@@ -43,83 +43,83 @@ ${i}
43
43
  `}default:return`${r}${A.cyan(te)} ${Ou({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:s}).join(`
44
44
  ${A.cyan(te)} `)}
45
45
  ${A.cyan(ps)}
46
- `}}}).prompt()};`${A.gray(te)}`;Qd=Symbol.for("cancel")});function hh(){process.stdout.write("\x1B[?25h")}function Di(e){if(!e)return"-";if(e.startsWith("embedded:"))return e;let t=(0,dh.homedir)(),r=process.cwd();return e.startsWith(t)?"~"+e.slice(t.length):e.startsWith(r)?"."+e.slice(r.length):e}var dh,P,Yn,d,Zn,UC,Ds,M=ie(()=>{"use strict";dh=require("node:os"),P={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",gray:"\x1B[90m"},Yn=new Set;process.on("SIGINT",()=>{for(let e of Yn)e.stop();hh(),console.log(`
47
- ${P.yellow}!${P.reset} Interrupted - shutting down gracefully`),process.exit(130)});process.on("SIGTERM",()=>{for(let e of Yn)e.stop();hh(),console.log(`
46
+ `}}}).prompt()};`${A.gray(te)}`;eh=Symbol.for("cancel")});function ph(){process.stdout.write("\x1B[?25h")}function yi(e){if(!e)return"-";if(e.startsWith("embedded:"))return e;let t=(0,hh.homedir)(),r=process.cwd();return e.startsWith(t)?"~"+e.slice(t.length):e.startsWith(r)?"."+e.slice(r.length):e}var hh,P,Yn,d,Zn,HC,Ds,M=ie(()=>{"use strict";hh=require("node:os"),P={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",gray:"\x1B[90m"},Yn=new Set;process.on("SIGINT",()=>{for(let e of Yn)e.stop();ph(),console.log(`
47
+ ${P.yellow}!${P.reset} Interrupted - shutting down gracefully`),process.exit(130)});process.on("SIGTERM",()=>{for(let e of Yn)e.stop();ph(),console.log(`
48
48
  ${P.yellow}!${P.reset} Terminated - shutting down gracefully`),process.exit(143)});d={success:e=>{console.log(`${P.green}\u2713${P.reset} ${e}`)},error:(e,t)=>{let r=t?`${e} ${t}`:e;console.error(`${P.red}\u2717${P.reset} ${r}`)},warn:(e,t)=>{let r=t?`${e} ${t}`:e;console.warn(`${P.yellow}!${P.reset} ${r}`)},info:e=>{console.log(`${P.blue}\u25CB${P.reset} ${e}`)},debug:e=>{process.env.DEBUG&&console.log(`${P.gray}\xB7${P.reset} ${e}`)},plain:e=>{console.log(e)},load:e=>console.log(`${P.cyan}\u25B8${P.reset} ${e}`),match:e=>console.log(`${P.magenta}\u25C6${P.reset} ${e}`),execute:e=>console.log(`${P.blue}\u203A${P.reset} ${e}`),agent:e=>console.log(`${P.cyan}\u25C9${P.reset} ${e}`),done:e=>console.log(`${P.green}\u2713${P.reset} ${e}`),analyze:e=>console.log(`${P.blue}\u25CB${P.reset} ${e}`),run:e=>console.log(`${P.green}\u25B6${P.reset} ${e}`),stats:e=>console.log(` ${e}`),rocket:e=>console.log(`${P.magenta}\u25B2${P.reset} ${e}`),robot:e=>console.log(`${P.cyan}\u25C9${P.reset} ${e}`),chart:e=>console.log(`${P.blue}\u25A0${P.reset} ${e}`),file:e=>console.log(`${P.gray}\u25C7${P.reset} ${e}`),sync:e=>console.log(`${P.cyan}\u21BB${P.reset} ${e}`),lightning:e=>console.log(`${P.yellow}\u26A1${P.reset} ${e}`),sparkles:e=>console.log(`${P.magenta}\u2726${P.reset} ${e}`),logo:()=>{console.log(`
49
49
  ${P.bold}best-review${P.reset}
50
50
  Multi-agent code review
51
- `)},separator:(e="=",t=80)=>{console.log(e.repeat(t))},newline:()=>console.log()};Zn=class{frames=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];intervalId=null;frameIndex=0;message;isSpinning=!1;constructor(t){this.message=t}start(){this.isSpinning||(this.isSpinning=!0,Yn.add(this),this.frameIndex=0,process.stdout.write("\x1B[?25l"),this.intervalId=setInterval(()=>{let t=this.frames[this.frameIndex];process.stdout.write(`\r${P.cyan}${t}${P.reset} ${this.message}`),this.frameIndex=(this.frameIndex+1)%this.frames.length},80))}update(t){this.message=t}succeed(t){this.stop();let r=t||this.message;console.log(`${P.green}\u2713${P.reset} ${r}`)}fail(t){this.stop();let r=t||this.message;console.log(`${P.red}\u2717${P.reset} ${r}`)}warn(t){this.stop();let r=t||this.message;console.log(`${P.yellow}!${P.reset} ${r}`)}stop(){this.isSpinning&&(Yn.delete(this),this.isSpinning=!1,this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null),process.stdout.write("\r\x1B[K"),process.stdout.write("\x1B[?25h"))}},UC=10,Ds=class{tasks=new Map;taskOrder=[];intervalId=null;frames=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];frameIndex=0;linesWritten=0;isActive=!1;isDirty=!0;exitHandler=null;addTask(t,r,s,i,n,o){let a={id:t,label:r,status:"pending",detail:o,totalBatches:s,completedBatches:0,fileCount:i,ruleCount:n};this.tasks.set(t,a),this.taskOrder.push(t)}start(){this.isActive||(this.isActive=!0,process.stdout.write("\x1B[?25l"),this.exitHandler=()=>{process.stdout.write("\x1B[?25h")},process.on("exit",this.exitHandler),this.render(),this.intervalId=setInterval(()=>{this.frameIndex=(this.frameIndex+1)%this.frames.length;let t=[...this.tasks.values()].some(r=>r.status==="running");(this.isDirty||t)&&(this.render(),this.isDirty=!1)},80))}startTask(t){let r=this.tasks.get(t);r&&r.status!=="running"&&(r.startTime=Date.now(),r.status="running",this.isDirty=!0)}completeBatch(t){let r=this.tasks.get(t);r&&(r.completedBatches++,this.isDirty=!0,r.completedBatches>=r.totalBatches&&(r.status="done",r.startTime&&(r.duration=Date.now()-r.startTime)))}failTask(t){let r=this.tasks.get(t);r&&(r.status="error",this.isDirty=!0,r.startTime&&(r.duration=Date.now()-r.startTime))}getEstimatedTotal(t){return t.fileCount*t.ruleCount*UC*1e3}calculateProgress(t){if(t.status==="done")return 1;if(t.status==="error")return t.completedBatches/Math.max(1,t.totalBatches);if(t.status!=="running"||!t.startTime)return 0;let r=Date.now()-t.startTime,s=this.getEstimatedTotal(t),i=r/s,n=t.completedBatches/Math.max(1,t.totalBatches);return Math.min(.95,Math.max(i,n))}formatProgressBar(t,r=40){let s=Math.round(t*r),i=r-s;return"\u2588".repeat(s)+"\u2591".repeat(i)}render(){this.linesWritten>0&&process.stdout.write(`\x1B[${this.linesWritten}A`);let t=[],r=this.taskOrder.length;for(let s=0;s<this.taskOrder.length;s++){let i=this.taskOrder[s],n=this.tasks.get(i);if(!n)continue;let o=this.formatTaskLine(n,s+1,r);t.push(...o)}for(let s of t)process.stdout.write(`\x1B[K${s}
52
- `);this.linesWritten=t.length}formatTaskLine(t,r,s){let i=`[${r}/${s}]`.padEnd(7),n,o;switch(t.status){case"pending":n=P.gray,o="\u25CB";break;case"running":n=P.cyan,o=this.frames[this.frameIndex]??"\u280B";break;case"done":n=P.green,o="\u2713";break;case"error":n=P.red,o="\u2717";break}let a=this.calculateProgress(t),u=this.formatProgressBar(a),l=`${n}${u}${P.reset} ${o}`,c="";t.status==="running"&&t.startTime?c=`${((Date.now()-t.startTime)/1e3).toFixed(1)}s`:t.duration!==void 0&&(c=`${(t.duration/1e3).toFixed(1)}s`);let f=t.detail&&t.status!=="pending"?` ${P.dim}| ${t.detail}${P.reset}`:"",h=` ${P.dim}${i}${P.reset} ${t.label}${f}`,p=` ${l} ${c.padEnd(6)}`;return[h,p]}stop(){this.isActive&&(this.isActive=!1,this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null),this.exitHandler&&(process.removeListener("exit",this.exitHandler),this.exitHandler=null),this.render(),process.stdout.write("\x1B[?25h"))}}});var Sp={};hi(Sp,{Glob:()=>or,Ignore:()=>tl,escape:()=>il,glob:()=>Ze,globIterate:()=>cl,globIterateSync:()=>Ii,globStream:()=>ul,globStreamSync:()=>ki,globSync:()=>ll,hasMagic:()=>wp,iterate:()=>Cp,iterateSync:()=>Ep,stream:()=>vp,streamSync:()=>bp,sync:()=>Fp,unescape:()=>Br});function Ku(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function tF(e){return e.replace(JC,Oh).replace(YC,Lh).replace(ZC,rl).replace(XC,Nh).replace(QC,Mh)}function rF(e){return e.replace(VC,"\\").replace(WC,"{").replace(KC,"}").replace(HC,",").replace(zC,".")}function jh(e){if(!e)return[""];let t=[],r=Bh("{","}",e);if(!r)return e.split(",");let{pre:s,body:i,post:n}=r,o=s.split(",");o[o.length-1]+="{"+i+"}";let a=jh(n);return n.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function sF(e,t={}){if(!e)return[];let{max:r=eF}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),Fi(tF(e),r,!0).map(rF)}function iF(e){return"{"+e+"}"}function nF(e){return/^-?0\d/.test(e)}function oF(e,t){return e<=t}function aF(e,t){return e>=t}function Fi(e,t,r){let s=[],i=Bh("{","}",e);if(!i)return[e];let n=i.pre,o=i.post.length?Fi(i.post,t,!1):[""];if(/\$$/.test(i.pre))for(let a=0;a<o.length&&a<t;a++){let u=n+"{"+i.body+"}"+o[a];s.push(u)}else{let a=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),u=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),l=a||u,c=i.body.indexOf(",")>=0;if(!l&&!c)return i.post.match(/,(?!,).*\}/)?(e=i.pre+"{"+i.body+rl+i.post,Fi(e,t,!0)):[e];let f;if(l)f=i.body.split(/\.\./);else if(f=jh(i.body),f.length===1&&f[0]!==void 0&&(f=Fi(f[0],t,!1).map(iF),f.length===1))return o.map(p=>i.pre+f[0]+p);let h;if(l&&f[0]!==void 0&&f[1]!==void 0){let p=Ku(f[0]),m=Ku(f[1]),g=Math.max(f[0].length,f[1].length),D=f.length===3&&f[2]!==void 0?Math.abs(Ku(f[2])):1,b=oF;m<p&&(D*=-1,b=aF);let w=f.some(nF);h=[];for(let v=p;b(v,m);v+=D){let E;if(u)E=String.fromCharCode(v),E==="\\"&&(E="");else if(E=String(v),w){let C=g-E.length;if(C>0){let x=new Array(C+1).join("0");v<0?E="-"+x+E.slice(1):E=x+E}}h.push(E)}}else{h=[];for(let p=0;p<f.length;p++)h.push.apply(h,Fi(f[p],t,!1))}for(let p=0;p<h.length;p++)for(let m=0;m<o.length&&s.length<t;m++){let g=n+h[p]+o[m];(!r||l||g)&&s.push(g)}}return s}function ki(e,t={}){return new or(e,t).streamSync()}function ul(e,t={}){return new or(e,t).stream()}function ll(e,t={}){return new or(e,t).walkSync()}async function Ph(e,t={}){return new or(e,t).walk()}function Ii(e,t={}){return new or(e,t).iterateSync()}function cl(e,t={}){return new or(e,t).iterate()}var Kh,bs,Zh,Ft,zF,nr,ho,nl,Xh,Bh,ph,GC,Oh,Lh,rl,Nh,Mh,VC,WC,KC,HC,zC,JC,YC,ZC,XC,QC,eF,uo,uF,yi,lF,mh,cF,Br,fF,gh,dF,Xn,hF,pF,mF,gF,sl,Dh,yh,qh,il,Pe,DF,yF,wF,bF,vF,EF,CF,FF,SF,xF,AF,RF,kF,IF,_F,TF,$F,PF,Uh,Gh,Vh,wh,BF,$e,OF,LF,NF,MF,jF,ze,qF,Wh,UF,GF,bh,VF,ir,WF,Hh,el,zh,lo,vh,KF,sr,Jh,oo,HF,fo,Eh,JF,YF,ZF,Lt,Nt,rr,Qn,wi,eo,Ch,to,Fh,ft,ys,ye,bi,ws,we,Te,be,Hu,ro,Ie,le,zu,Ju,Sh,Yu,Et,Zu,so,vi,$r,We,Ei,XF,QF,eS,tS,Qh,rS,sS,iS,co,nS,xi,ep,tp,oS,aS,Ye,rp,sp,Ct,ip,np,Pr,op,Je,Ci,Xu,xh,Ai,dt,io,ao,Ah,uS,Qu,Rh,Ri,kh,no,Ih,lS,ap,Le,up,cp,dp,ol,al,hp,UB,cS,fS,dS,hS,pp,pS,tl,mS,gS,DS,_h,yS,yp,Th,$h,wS,or,wp,bp,vp,Ep,Cp,Fp,Ze,_i=ie(()=>{Kh=require("node:url"),bs=require("node:path"),Zh=require("node:url"),Ft=require("fs"),zF=bt(require("node:fs"),1),nr=require("node:fs/promises"),ho=require("node:events"),nl=bt(require("node:stream"),1),Xh=require("node:string_decoder"),Bh=(e,t,r)=>{let s=e instanceof RegExp?ph(e,r):e,i=t instanceof RegExp?ph(t,r):t,n=s!==null&&i!=null&&GC(s,i,r);return n&&{start:n[0],end:n[1],pre:r.slice(0,n[0]),body:r.slice(n[0]+s.length,n[1]),post:r.slice(n[1]+i.length)}},ph=(e,t)=>{let r=t.match(e);return r?r[0]:null},GC=(e,t,r)=>{let s,i,n,o,a,u=r.indexOf(e),l=r.indexOf(t,u+1),c=u;if(u>=0&&l>0){if(e===t)return[u,l];for(s=[],n=r.length;c>=0&&!a;){if(c===u)s.push(c),u=r.indexOf(e,c+1);else if(s.length===1){let f=s.pop();f!==void 0&&(a=[f,l])}else i=s.pop(),i!==void 0&&i<n&&(n=i,o=l),l=r.indexOf(t,c+1);c=u<l&&u>=0?u:l}s.length&&o!==void 0&&(a=[n,o])}return a},Oh="\0SLASH"+Math.random()+"\0",Lh="\0OPEN"+Math.random()+"\0",rl="\0CLOSE"+Math.random()+"\0",Nh="\0COMMA"+Math.random()+"\0",Mh="\0PERIOD"+Math.random()+"\0",VC=new RegExp(Oh,"g"),WC=new RegExp(Lh,"g"),KC=new RegExp(rl,"g"),HC=new RegExp(Nh,"g"),zC=new RegExp(Mh,"g"),JC=/\\\\/g,YC=/\\{/g,ZC=/\\}/g,XC=/\\,/g,QC=/\\./g,eF=1e5;uo=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>65536)throw new TypeError("pattern is too long")},uF={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},yi=e=>e.replace(/[[\]\\-]/g,"\\$&"),lF=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),mh=e=>e.join(""),cF=(e,t)=>{let r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let s=[],i=[],n=r+1,o=!1,a=!1,u=!1,l=!1,c=r,f="";e:for(;n<e.length;){let m=e.charAt(n);if((m==="!"||m==="^")&&n===r+1){l=!0,n++;continue}if(m==="]"&&o&&!u){c=n+1;break}if(o=!0,m==="\\"&&!u){u=!0,n++;continue}if(m==="["&&!u){for(let[g,[D,b,w]]of Object.entries(uF))if(e.startsWith(g,n)){if(f)return["$.",!1,e.length-r,!0];n+=g.length,w?i.push(D):s.push(D),a=a||b;continue e}}if(u=!1,f){m>f?s.push(yi(f)+"-"+yi(m)):m===f&&s.push(yi(m)),f="",n++;continue}if(e.startsWith("-]",n+1)){s.push(yi(m+"-")),n+=2;continue}if(e.startsWith("-",n+1)){f=m,n+=2;continue}s.push(yi(m)),n++}if(c<n)return["",!1,0,!1];if(!s.length&&!i.length)return["$.",!1,e.length-r,!0];if(i.length===0&&s.length===1&&/^\\?.$/.test(s[0])&&!l){let m=s[0].length===2?s[0].slice(-1):s[0];return[lF(m),!1,c-r,!1]}let h="["+(l?"^":"")+mh(s)+"]",p="["+(l?"":"^")+mh(i)+"]";return[s.length&&i.length?"("+h+"|"+p+")":s.length?h:p,a,c-r,!0]},Br=(e,{windowsPathsNoEscape:t=!1,magicalBraces:r=!0}={})=>r?t?e.replace(/\[([^\/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1"):t?e.replace(/\[([^\/\\{}])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\{}])\]/g,"$1$2").replace(/\\([^\/{}])/g,"$1"),fF=new Set(["!","?","+","*","@"]),gh=e=>fF.has(e),dF="(?!(?:^|/)\\.\\.?(?:$|/))",Xn="(?!\\.)",hF=new Set(["[","."]),pF=new Set(["..","."]),mF=new Set("().*{}+?[]^$\\!"),gF=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),sl="[^/]",Dh=sl+"*?",yh=sl+"+?",qh=class Ke{type;#e;#r;#n=!1;#i=[];#o;#b;#D;#c=!1;#a;#d;#f=!1;constructor(t,r,s={}){this.type=t,t&&(this.#r=!0),this.#o=r,this.#e=this.#o?this.#o.#e:this,this.#a=this.#e===this?s:this.#e.#a,this.#D=this.#e===this?[]:this.#e.#D,t==="!"&&!this.#e.#c&&this.#D.push(this),this.#b=this.#o?this.#o.#i.length:0}get hasMagic(){if(this.#r!==void 0)return this.#r;for(let t of this.#i)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#r=!0;return this.#r}toString(){return this.#d!==void 0?this.#d:this.type?this.#d=this.type+"("+this.#i.map(t=>String(t)).join("|")+")":this.#d=this.#i.map(t=>String(t)).join("")}#u(){if(this!==this.#e)throw new Error("should only call on root");if(this.#c)return this;this.toString(),this.#c=!0;let t;for(;t=this.#D.pop();){if(t.type!=="!")continue;let r=t,s=r.#o;for(;s;){for(let i=r.#b+1;!s.type&&i<s.#i.length;i++)for(let n of t.#i){if(typeof n=="string")throw new Error("string part in extglob AST??");n.copyIn(s.#i[i])}r=s,s=r.#o}}return this}push(...t){for(let r of t)if(r!==""){if(typeof r!="string"&&!(r instanceof Ke&&r.#o===this))throw new Error("invalid part: "+r);this.#i.push(r)}}toJSON(){let t=this.type===null?this.#i.slice().map(r=>typeof r=="string"?r:r.toJSON()):[this.type,...this.#i.map(r=>r.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#c&&this.#o?.type==="!")&&t.push({}),t}isStart(){if(this.#e===this)return!0;if(!this.#o?.isStart())return!1;if(this.#b===0)return!0;let t=this.#o;for(let r=0;r<this.#b;r++){let s=t.#i[r];if(!(s instanceof Ke&&s.type==="!"))return!1}return!0}isEnd(){if(this.#e===this||this.#o?.type==="!")return!0;if(!this.#o?.isEnd())return!1;if(!this.type)return this.#o?.isEnd();let t=this.#o?this.#o.#i.length:0;return this.#b===t-1}copyIn(t){typeof t=="string"?this.push(t):this.push(t.clone(this))}clone(t){let r=new Ke(this.type,t);for(let s of this.#i)r.copyIn(s);return r}static#s(t,r,s,i){let n=!1,o=!1,a=-1,u=!1;if(r.type===null){let p=s,m="";for(;p<t.length;){let g=t.charAt(p++);if(n||g==="\\"){n=!n,m+=g;continue}if(o){p===a+1?(g==="^"||g==="!")&&(u=!0):g==="]"&&!(p===a+2&&u)&&(o=!1),m+=g;continue}else if(g==="["){o=!0,a=p,u=!1,m+=g;continue}if(!i.noext&&gh(g)&&t.charAt(p)==="("){r.push(m),m="";let D=new Ke(g,r);p=Ke.#s(t,D,p,i),r.push(D);continue}m+=g}return r.push(m),p}let l=s+1,c=new Ke(null,r),f=[],h="";for(;l<t.length;){let p=t.charAt(l++);if(n||p==="\\"){n=!n,h+=p;continue}if(o){l===a+1?(p==="^"||p==="!")&&(u=!0):p==="]"&&!(l===a+2&&u)&&(o=!1),h+=p;continue}else if(p==="["){o=!0,a=l,u=!1,h+=p;continue}if(gh(p)&&t.charAt(l)==="("){c.push(h),h="";let m=new Ke(p,c);c.push(m),l=Ke.#s(t,m,l,i);continue}if(p==="|"){c.push(h),h="",f.push(c),c=new Ke(null,r);continue}if(p===")")return h===""&&r.#i.length===0&&(r.#f=!0),c.push(h),h="",r.push(...f,c),l;h+=p}return r.type=null,r.#r=void 0,r.#i=[t.substring(s-1)],l}static fromGlob(t,r={}){let s=new Ke(null,void 0,r);return Ke.#s(t,s,0,r),s}toMMPattern(){if(this!==this.#e)return this.#e.toMMPattern();let t=this.toString(),[r,s,i,n]=this.toRegExpSource();if(!(i||this.#r||this.#a.nocase&&!this.#a.nocaseMagicOnly&&t.toUpperCase()!==t.toLowerCase()))return s;let o=(this.#a.nocase?"i":"")+(n?"u":"");return Object.assign(new RegExp(`^${r}$`,o),{_src:r,_glob:t})}get options(){return this.#a}toRegExpSource(t){let r=t??!!this.#a.dot;if(this.#e===this&&this.#u(),!this.type){let u=this.isStart()&&this.isEnd()&&!this.#i.some(h=>typeof h!="string"),l=this.#i.map(h=>{let[p,m,g,D]=typeof h=="string"?Ke.#v(h,this.#r,u):h.toRegExpSource(t);return this.#r=this.#r||g,this.#n=this.#n||D,p}).join(""),c="";if(this.isStart()&&typeof this.#i[0]=="string"&&!(this.#i.length===1&&pF.has(this.#i[0]))){let h=hF,p=r&&h.has(l.charAt(0))||l.startsWith("\\.")&&h.has(l.charAt(2))||l.startsWith("\\.\\.")&&h.has(l.charAt(4)),m=!r&&!t&&h.has(l.charAt(0));c=p?dF:m?Xn:""}let f="";return this.isEnd()&&this.#e.#c&&this.#o?.type==="!"&&(f="(?:$|\\/)"),[c+l+f,Br(l),this.#r=!!this.#r,this.#n]}let s=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",n=this.#h(r);if(this.isStart()&&this.isEnd()&&!n&&this.type!=="!"){let u=this.toString();return this.#i=[u],this.type=null,this.#r=void 0,[u,Br(this.toString()),!1,!1]}let o=!s||t||r||!Xn?"":this.#h(!0);o===n&&(o=""),o&&(n=`(?:${n})(?:${o})*?`);let a="";if(this.type==="!"&&this.#f)a=(this.isStart()&&!r?Xn:"")+yh;else{let u=this.type==="!"?"))"+(this.isStart()&&!r&&!t?Xn:"")+Dh+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+n+u}return[a,Br(n),this.#r=!!this.#r,this.#n]}#h(t){return this.#i.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[s,i,n,o]=r.toRegExpSource(t);return this.#n=this.#n||o,s}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#v(t,r,s=!1){let i=!1,n="",o=!1,a=!1;for(let u=0;u<t.length;u++){let l=t.charAt(u);if(i){i=!1,n+=(mF.has(l)?"\\":"")+l;continue}if(l==="*"){if(a)continue;a=!0,n+=s&&/^[*]+$/.test(t)?yh:Dh,r=!0;continue}else a=!1;if(l==="\\"){u===t.length-1?n+="\\\\":i=!0;continue}if(l==="["){let[c,f,h,p]=cF(t,u);if(h){n+=c,o=o||f,u+=h-1,r=r||p;continue}}if(l==="?"){n+=sl,r=!0;continue}n+=gF(l)}return[n,Br(t),!!r,o]}},il=(e,{windowsPathsNoEscape:t=!1,magicalBraces:r=!1}={})=>r?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&"),Pe=(e,t,r={})=>(uo(t),!r.nocomment&&t.charAt(0)==="#"?!1:new ir(t,r).match(e)),DF=/^\*+([^+@!?\*\[\(]*)$/,yF=e=>t=>!t.startsWith(".")&&t.endsWith(e),wF=e=>t=>t.endsWith(e),bF=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),vF=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),EF=/^\*+\.\*+$/,CF=e=>!e.startsWith(".")&&e.includes("."),FF=e=>e!=="."&&e!==".."&&e.includes("."),SF=/^\.\*+$/,xF=e=>e!=="."&&e!==".."&&e.startsWith("."),AF=/^\*+$/,RF=e=>e.length!==0&&!e.startsWith("."),kF=e=>e.length!==0&&e!=="."&&e!=="..",IF=/^\?+([^+@!?\*\[\(]*)?$/,_F=([e,t=""])=>{let r=Uh([e]);return t?(t=t.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(t)):r},TF=([e,t=""])=>{let r=Gh([e]);return t?(t=t.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(t)):r},$F=([e,t=""])=>{let r=Gh([e]);return t?s=>r(s)&&s.endsWith(t):r},PF=([e,t=""])=>{let r=Uh([e]);return t?s=>r(s)&&s.endsWith(t):r},Uh=([e])=>{let t=e.length;return r=>r.length===t&&!r.startsWith(".")},Gh=([e])=>{let t=e.length;return r=>r.length===t&&r!=="."&&r!==".."},Vh=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",wh={win32:{sep:"\\"},posix:{sep:"/"}},BF=Vh==="win32"?wh.win32.sep:wh.posix.sep;Pe.sep=BF;$e=Symbol("globstar **");Pe.GLOBSTAR=$e;OF="[^/]",LF=OF+"*?",NF="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",MF="(?:(?!(?:\\/|^)\\.).)*?",jF=(e,t={})=>r=>Pe(r,e,t);Pe.filter=jF;ze=(e,t={})=>Object.assign({},e,t),qF=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return Pe;let t=Pe;return Object.assign((r,s,i={})=>t(r,s,ze(e,i)),{Minimatch:class extends t.Minimatch{constructor(r,s={}){super(r,ze(e,s))}static defaults(r){return t.defaults(ze(e,r)).Minimatch}},AST:class extends t.AST{constructor(r,s,i={}){super(r,s,ze(e,i))}static fromGlob(r,s={}){return t.AST.fromGlob(r,ze(e,s))}},unescape:(r,s={})=>t.unescape(r,ze(e,s)),escape:(r,s={})=>t.escape(r,ze(e,s)),filter:(r,s={})=>t.filter(r,ze(e,s)),defaults:r=>t.defaults(ze(e,r)),makeRe:(r,s={})=>t.makeRe(r,ze(e,s)),braceExpand:(r,s={})=>t.braceExpand(r,ze(e,s)),match:(r,s,i={})=>t.match(r,s,ze(e,i)),sep:t.sep,GLOBSTAR:$e})};Pe.defaults=qF;Wh=(e,t={})=>(uo(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:sF(e,{max:t.braceExpandMax}));Pe.braceExpand=Wh;UF=(e,t={})=>new ir(e,t).makeRe();Pe.makeRe=UF;GF=(e,t,r={})=>{let s=new ir(t,r);return e=e.filter(i=>s.match(i)),s.options.nonull&&!e.length&&e.push(t),e};Pe.match=GF;bh=/[?*]|[+@!]\(.*?\)|\[|\]/,VF=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),ir=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(e,t={}){uo(e),t=t||{},this.options=t,this.pattern=e,this.platform=t.platform||Vh,this.isWindows=this.platform==="win32";let r="allowWindowsEscape";this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t[r]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!t.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!t.nonegate,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=t.windowsNoMagicRoot!==void 0?t.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let e of this.set)for(let t of e)if(typeof t!="string")return!0;return!1}debug(...e){}make(){let e=this.pattern,t=this.options;if(!t.nocomment&&e.charAt(0)==="#"){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],t.debug&&(this.debug=(...i)=>console.error(...i)),this.debug(this.pattern,this.globSet);let r=this.globSet.map(i=>this.slashSplit(i));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let s=this.globParts.map((i,n,o)=>{if(this.isWindows&&this.windowsNoMagicRoot){let a=i[0]===""&&i[1]===""&&(i[2]==="?"||!bh.test(i[2]))&&!bh.test(i[3]),u=/^[a-z]:/i.test(i[0]);if(a)return[...i.slice(0,4),...i.slice(4).map(l=>this.parse(l))];if(u)return[i[0],...i.slice(1).map(l=>this.parse(l))]}return i.map(a=>this.parse(a))});if(this.debug(this.pattern,s),this.set=s.filter(i=>i.indexOf(!1)===-1),this.isWindows)for(let i=0;i<this.set.length;i++){let n=this.set[i];n[0]===""&&n[1]===""&&this.globParts[i][2]==="?"&&typeof n[3]=="string"&&/^[a-z]:$/i.test(n[3])&&(n[2]="?")}this.debug(this.pattern,this.set)}preprocess(e){if(this.options.noglobstar)for(let r=0;r<e.length;r++)for(let s=0;s<e[r].length;s++)e[r][s]==="**"&&(e[r][s]="*");let{optimizationLevel:t=1}=this.options;return t>=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):t>=1?e=this.levelOneOptimize(e):e=this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(t=>{let r=-1;for(;(r=t.indexOf("**",r+1))!==-1;){let s=r;for(;t[s+1]==="**";)s++;s!==r&&t.splice(r,s-r)}return t})}levelOneOptimize(e){return e.map(t=>(t=t.reduce((r,s)=>{let i=r[r.length-1];return s==="**"&&i==="**"?r:s===".."&&i&&i!==".."&&i!=="."&&i!=="**"?(r.pop(),r):(r.push(s),r)},[]),t.length===0?[""]:t))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let t=!1;do{if(t=!1,!this.preserveMultipleSlashes){for(let s=1;s<e.length-1;s++){let i=e[s];s===1&&i===""&&e[0]===""||(i==="."||i==="")&&(t=!0,e.splice(s,1),s--)}e[0]==="."&&e.length===2&&(e[1]==="."||e[1]==="")&&(t=!0,e.pop())}let r=0;for(;(r=e.indexOf("..",r+1))!==-1;){let s=e[r-1];s&&s!=="."&&s!==".."&&s!=="**"&&(t=!0,e.splice(r-1,2),r-=2)}}while(t);return e.length===0?[""]:e}firstPhasePreProcess(e){let t=!1;do{t=!1;for(let r of e){let s=-1;for(;(s=r.indexOf("**",s+1))!==-1;){let n=s;for(;r[n+1]==="**";)n++;n>s&&r.splice(s+1,n-s);let o=r[s+1],a=r[s+2],u=r[s+3];if(o!==".."||!a||a==="."||a===".."||!u||u==="."||u==="..")continue;t=!0,r.splice(s,1);let l=r.slice(0);l[s]="**",e.push(l),s--}if(!this.preserveMultipleSlashes){for(let n=1;n<r.length-1;n++){let o=r[n];n===1&&o===""&&r[0]===""||(o==="."||o==="")&&(t=!0,r.splice(n,1),n--)}r[0]==="."&&r.length===2&&(r[1]==="."||r[1]==="")&&(t=!0,r.pop())}let i=0;for(;(i=r.indexOf("..",i+1))!==-1;){let n=r[i-1];if(n&&n!=="."&&n!==".."&&n!=="**"){t=!0;let o=i===1&&r[i+1]==="**"?["."]:[];r.splice(i-1,2,...o),r.length===0&&r.push(""),i-=2}}}}while(t);return e}secondPhasePreProcess(e){for(let t=0;t<e.length-1;t++)for(let r=t+1;r<e.length;r++){let s=this.partsMatch(e[t],e[r],!this.preserveMultipleSlashes);if(s){e[t]=[],e[r]=s;break}}return e.filter(t=>t.length)}partsMatch(e,t,r=!1){let s=0,i=0,n=[],o="";for(;s<e.length&&i<t.length;)if(e[s]===t[i])n.push(o==="b"?t[i]:e[s]),s++,i++;else if(r&&e[s]==="**"&&t[i]===e[s+1])n.push(e[s]),s++;else if(r&&t[i]==="**"&&e[s]===t[i+1])n.push(t[i]),i++;else if(e[s]==="*"&&t[i]&&(this.options.dot||!t[i].startsWith("."))&&t[i]!=="**"){if(o==="b")return!1;o="a",n.push(e[s]),s++,i++}else if(t[i]==="*"&&e[s]&&(this.options.dot||!e[s].startsWith("."))&&e[s]!=="**"){if(o==="a")return!1;o="b",n.push(t[i]),s++,i++}else return!1;return e.length===t.length&&n}parseNegate(){if(this.nonegate)return;let e=this.pattern,t=!1,r=0;for(let s=0;s<e.length&&e.charAt(s)==="!";s++)t=!t,r++;r&&(this.pattern=e.slice(r)),this.negate=t}matchOne(e,t,r=!1){let s=this.options;if(this.isWindows){let m=typeof e[0]=="string"&&/^[a-z]:$/i.test(e[0]),g=!m&&e[0]===""&&e[1]===""&&e[2]==="?"&&/^[a-z]:$/i.test(e[3]),D=typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0]),b=!D&&t[0]===""&&t[1]===""&&t[2]==="?"&&typeof t[3]=="string"&&/^[a-z]:$/i.test(t[3]),w=g?3:m?0:void 0,v=b?3:D?0:void 0;if(typeof w=="number"&&typeof v=="number"){let[E,C]=[e[w],t[v]];E.toLowerCase()===C.toLowerCase()&&(t[v]=E,v>w?t=t.slice(v):w>v&&(e=e.slice(w)))}}let{optimizationLevel:i=1}=this.options;i>=2&&(e=this.levelTwoFileOptimize(e)),this.debug("matchOne",this,{file:e,pattern:t}),this.debug("matchOne",e.length,t.length);for(var n=0,o=0,a=e.length,u=t.length;n<a&&o<u;n++,o++){this.debug("matchOne loop");var l=t[o],c=e[n];if(this.debug(t,l,c),l===!1)return!1;if(l===$e){this.debug("GLOBSTAR",[t,l,c]);var f=n,h=o+1;if(h===u){for(this.debug("** at the end");n<a;n++)if(e[n]==="."||e[n]===".."||!s.dot&&e[n].charAt(0)===".")return!1;return!0}for(;f<a;){var p=e[f];if(this.debug(`
51
+ `)},separator:(e="=",t=80)=>{console.log(e.repeat(t))},newline:()=>console.log()};Zn=class{frames=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];intervalId=null;frameIndex=0;message;isSpinning=!1;constructor(t){this.message=t}start(){this.isSpinning||(this.isSpinning=!0,Yn.add(this),this.frameIndex=0,process.stdout.write("\x1B[?25l"),this.intervalId=setInterval(()=>{let t=this.frames[this.frameIndex];process.stdout.write(`\r${P.cyan}${t}${P.reset} ${this.message}`),this.frameIndex=(this.frameIndex+1)%this.frames.length},80))}update(t){this.message=t}succeed(t){this.stop();let r=t||this.message;console.log(`${P.green}\u2713${P.reset} ${r}`)}fail(t){this.stop();let r=t||this.message;console.log(`${P.red}\u2717${P.reset} ${r}`)}warn(t){this.stop();let r=t||this.message;console.log(`${P.yellow}!${P.reset} ${r}`)}stop(){this.isSpinning&&(Yn.delete(this),this.isSpinning=!1,this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null),process.stdout.write("\r\x1B[K"),process.stdout.write("\x1B[?25h"))}},HC=10,Ds=class{tasks=new Map;taskOrder=[];intervalId=null;frames=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];frameIndex=0;linesWritten=0;isActive=!1;isDirty=!0;exitHandler=null;addTask(t,r,s,i,n,o){let a={id:t,label:r,status:"pending",detail:o,totalBatches:s,completedBatches:0,fileCount:i,ruleCount:n};this.tasks.set(t,a),this.taskOrder.push(t)}start(){this.isActive||(this.isActive=!0,process.stdout.write("\x1B[?25l"),this.exitHandler=()=>{process.stdout.write("\x1B[?25h")},process.on("exit",this.exitHandler),this.render(),this.intervalId=setInterval(()=>{this.frameIndex=(this.frameIndex+1)%this.frames.length;let t=[...this.tasks.values()].some(r=>r.status==="running");(this.isDirty||t)&&(this.render(),this.isDirty=!1)},80))}startTask(t){let r=this.tasks.get(t);r&&r.status!=="running"&&(r.startTime=Date.now(),r.status="running",this.isDirty=!0)}completeBatch(t){let r=this.tasks.get(t);r&&(r.completedBatches++,this.isDirty=!0,r.completedBatches>=r.totalBatches&&(r.status="done",r.startTime&&(r.duration=Date.now()-r.startTime)))}failTask(t){let r=this.tasks.get(t);r&&(r.status="error",this.isDirty=!0,r.startTime&&(r.duration=Date.now()-r.startTime))}getEstimatedTotal(t){return t.fileCount*t.ruleCount*HC*1e3}calculateProgress(t){if(t.status==="done")return 1;if(t.status==="error")return t.completedBatches/Math.max(1,t.totalBatches);if(t.status!=="running"||!t.startTime)return 0;let r=Date.now()-t.startTime,s=this.getEstimatedTotal(t),i=r/s,n=t.completedBatches/Math.max(1,t.totalBatches);return Math.min(.95,Math.max(i,n))}formatProgressBar(t,r=40){let s=Math.round(t*r),i=r-s;return"\u2588".repeat(s)+"\u2591".repeat(i)}render(){this.linesWritten>0&&process.stdout.write(`\x1B[${this.linesWritten}A`);let t=[],r=this.taskOrder.length;for(let s=0;s<this.taskOrder.length;s++){let i=this.taskOrder[s],n=this.tasks.get(i);if(!n)continue;let o=this.formatTaskLine(n,s+1,r);t.push(...o)}for(let s of t)process.stdout.write(`\x1B[K${s}
52
+ `);this.linesWritten=t.length}formatTaskLine(t,r,s){let i=`[${r}/${s}]`.padEnd(7),n,o;switch(t.status){case"pending":n=P.gray,o="\u25CB";break;case"running":n=P.cyan,o=this.frames[this.frameIndex]??"\u280B";break;case"done":n=P.green,o="\u2713";break;case"error":n=P.red,o="\u2717";break}let a=this.calculateProgress(t),u=this.formatProgressBar(a),l=`${n}${u}${P.reset} ${o}`,c="";t.status==="running"&&t.startTime?c=`${((Date.now()-t.startTime)/1e3).toFixed(1)}s`:t.duration!==void 0&&(c=`${(t.duration/1e3).toFixed(1)}s`);let f=t.detail&&t.status!=="pending"?` ${P.dim}| ${t.detail}${P.reset}`:"",h=` ${P.dim}${i}${P.reset} ${t.label}${f}`,p=` ${l} ${c.padEnd(6)}`;return[h,p]}stop(){this.isActive&&(this.isActive=!1,this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null),this.exitHandler&&(process.removeListener("exit",this.exitHandler),this.exitHandler=null),this.render(),process.stdout.write("\x1B[?25h"))}}});var xp={};pi(xp,{Glob:()=>ar,Ignore:()=>tl,escape:()=>il,glob:()=>Xe,globIterate:()=>cl,globIterateSync:()=>_i,globStream:()=>ul,globStreamSync:()=>Ii,globSync:()=>ll,hasMagic:()=>bp,iterate:()=>Fp,iterateSync:()=>Cp,stream:()=>Ep,streamSync:()=>vp,sync:()=>Sp,unescape:()=>Br});function Hu(e){return isNaN(e)?e.charCodeAt(0):parseInt(e,10)}function nF(e){return e.replace(QC,Lh).replace(eF,Nh).replace(tF,rl).replace(rF,Mh).replace(sF,jh)}function oF(e){return e.replace(zC,"\\").replace(JC,"{").replace(YC,"}").replace(ZC,",").replace(XC,".")}function qh(e){if(!e)return[""];let t=[],r=Oh("{","}",e);if(!r)return e.split(",");let{pre:s,body:i,post:n}=r,o=s.split(",");o[o.length-1]+="{"+i+"}";let a=qh(n);return n.length&&(o[o.length-1]+=a.shift(),o.push.apply(o,a)),t.push.apply(t,o),t}function aF(e,t={}){if(!e)return[];let{max:r=iF}=t;return e.slice(0,2)==="{}"&&(e="\\{\\}"+e.slice(2)),Si(nF(e),r,!0).map(oF)}function uF(e){return"{"+e+"}"}function lF(e){return/^-?0\d/.test(e)}function cF(e,t){return e<=t}function fF(e,t){return e>=t}function Si(e,t,r){let s=[],i=Oh("{","}",e);if(!i)return[e];let n=i.pre,o=i.post.length?Si(i.post,t,!1):[""];if(/\$$/.test(i.pre))for(let a=0;a<o.length&&a<t;a++){let u=n+"{"+i.body+"}"+o[a];s.push(u)}else{let a=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),u=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),l=a||u,c=i.body.indexOf(",")>=0;if(!l&&!c)return i.post.match(/,(?!,).*\}/)?(e=i.pre+"{"+i.body+rl+i.post,Si(e,t,!0)):[e];let f;if(l)f=i.body.split(/\.\./);else if(f=qh(i.body),f.length===1&&f[0]!==void 0&&(f=Si(f[0],t,!1).map(uF),f.length===1))return o.map(p=>i.pre+f[0]+p);let h;if(l&&f[0]!==void 0&&f[1]!==void 0){let p=Hu(f[0]),m=Hu(f[1]),g=Math.max(f[0].length,f[1].length),D=f.length===3&&f[2]!==void 0?Math.abs(Hu(f[2])):1,b=cF;m<p&&(D*=-1,b=fF);let w=f.some(lF);h=[];for(let v=p;b(v,m);v+=D){let E;if(u)E=String.fromCharCode(v),E==="\\"&&(E="");else if(E=String(v),w){let C=g-E.length;if(C>0){let x=new Array(C+1).join("0");v<0?E="-"+x+E.slice(1):E=x+E}}h.push(E)}}else{h=[];for(let p=0;p<f.length;p++)h.push.apply(h,Si(f[p],t,!1))}for(let p=0;p<h.length;p++)for(let m=0;m<o.length&&s.length<t;m++){let g=n+h[p]+o[m];(!r||l||g)&&s.push(g)}}return s}function Ii(e,t={}){return new ar(e,t).streamSync()}function ul(e,t={}){return new ar(e,t).stream()}function ll(e,t={}){return new ar(e,t).walkSync()}async function Bh(e,t={}){return new ar(e,t).walk()}function _i(e,t={}){return new ar(e,t).iterateSync()}function cl(e,t={}){return new ar(e,t).iterate()}var Kh,bs,Xh,Ft,XF,or,ho,nl,Qh,Oh,mh,KC,Lh,Nh,rl,Mh,jh,zC,JC,YC,ZC,XC,QC,eF,tF,rF,sF,iF,uo,dF,wi,hF,gh,pF,Br,mF,Dh,gF,Xn,DF,yF,wF,bF,sl,yh,wh,Uh,il,Be,vF,EF,CF,FF,SF,xF,AF,RF,kF,IF,_F,TF,$F,PF,BF,OF,LF,NF,Gh,Vh,Wh,bh,MF,Pe,jF,qF,UF,GF,VF,Je,WF,Hh,HF,KF,vh,zF,nr,JF,zh,el,Jh,lo,Eh,YF,ir,Yh,oo,ZF,fo,Ch,QF,eS,tS,Lt,Nt,sr,Qn,bi,eo,Fh,to,Sh,ft,ys,we,vi,ws,be,$e,ve,Ku,ro,_e,le,zu,Ju,xh,Yu,Et,Zu,so,Ei,$r,He,Ci,rS,sS,iS,nS,ep,oS,aS,uS,co,lS,Ai,tp,rp,cS,fS,Ze,sp,ip,Ct,np,op,Pr,ap,Ye,Fi,Xu,Ah,Ri,dt,io,ao,Rh,dS,Qu,kh,ki,Ih,no,_h,hS,up,Ne,lp,fp,hp,ol,al,pp,zB,pS,mS,gS,DS,mp,yS,tl,wS,bS,vS,Th,ES,wp,$h,Ph,CS,ar,bp,vp,Ep,Cp,Fp,Sp,Xe,Ti=ie(()=>{Kh=require("node:url"),bs=require("node:path"),Xh=require("node:url"),Ft=require("fs"),XF=bt(require("node:fs"),1),or=require("node:fs/promises"),ho=require("node:events"),nl=bt(require("node:stream"),1),Qh=require("node:string_decoder"),Oh=(e,t,r)=>{let s=e instanceof RegExp?mh(e,r):e,i=t instanceof RegExp?mh(t,r):t,n=s!==null&&i!=null&&KC(s,i,r);return n&&{start:n[0],end:n[1],pre:r.slice(0,n[0]),body:r.slice(n[0]+s.length,n[1]),post:r.slice(n[1]+i.length)}},mh=(e,t)=>{let r=t.match(e);return r?r[0]:null},KC=(e,t,r)=>{let s,i,n,o,a,u=r.indexOf(e),l=r.indexOf(t,u+1),c=u;if(u>=0&&l>0){if(e===t)return[u,l];for(s=[],n=r.length;c>=0&&!a;){if(c===u)s.push(c),u=r.indexOf(e,c+1);else if(s.length===1){let f=s.pop();f!==void 0&&(a=[f,l])}else i=s.pop(),i!==void 0&&i<n&&(n=i,o=l),l=r.indexOf(t,c+1);c=u<l&&u>=0?u:l}s.length&&o!==void 0&&(a=[n,o])}return a},Lh="\0SLASH"+Math.random()+"\0",Nh="\0OPEN"+Math.random()+"\0",rl="\0CLOSE"+Math.random()+"\0",Mh="\0COMMA"+Math.random()+"\0",jh="\0PERIOD"+Math.random()+"\0",zC=new RegExp(Lh,"g"),JC=new RegExp(Nh,"g"),YC=new RegExp(rl,"g"),ZC=new RegExp(Mh,"g"),XC=new RegExp(jh,"g"),QC=/\\\\/g,eF=/\\{/g,tF=/\\}/g,rF=/\\,/g,sF=/\\./g,iF=1e5;uo=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>65536)throw new TypeError("pattern is too long")},dF={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},wi=e=>e.replace(/[[\]\\-]/g,"\\$&"),hF=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),gh=e=>e.join(""),pF=(e,t)=>{let r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let s=[],i=[],n=r+1,o=!1,a=!1,u=!1,l=!1,c=r,f="";e:for(;n<e.length;){let m=e.charAt(n);if((m==="!"||m==="^")&&n===r+1){l=!0,n++;continue}if(m==="]"&&o&&!u){c=n+1;break}if(o=!0,m==="\\"&&!u){u=!0,n++;continue}if(m==="["&&!u){for(let[g,[D,b,w]]of Object.entries(dF))if(e.startsWith(g,n)){if(f)return["$.",!1,e.length-r,!0];n+=g.length,w?i.push(D):s.push(D),a=a||b;continue e}}if(u=!1,f){m>f?s.push(wi(f)+"-"+wi(m)):m===f&&s.push(wi(m)),f="",n++;continue}if(e.startsWith("-]",n+1)){s.push(wi(m+"-")),n+=2;continue}if(e.startsWith("-",n+1)){f=m,n+=2;continue}s.push(wi(m)),n++}if(c<n)return["",!1,0,!1];if(!s.length&&!i.length)return["$.",!1,e.length-r,!0];if(i.length===0&&s.length===1&&/^\\?.$/.test(s[0])&&!l){let m=s[0].length===2?s[0].slice(-1):s[0];return[hF(m),!1,c-r,!1]}let h="["+(l?"^":"")+gh(s)+"]",p="["+(l?"":"^")+gh(i)+"]";return[s.length&&i.length?"("+h+"|"+p+")":s.length?h:p,a,c-r,!0]},Br=(e,{windowsPathsNoEscape:t=!1,magicalBraces:r=!0}={})=>r?t?e.replace(/\[([^\/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1"):t?e.replace(/\[([^\/\\{}])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\{}])\]/g,"$1$2").replace(/\\([^\/{}])/g,"$1"),mF=new Set(["!","?","+","*","@"]),Dh=e=>mF.has(e),gF="(?!(?:^|/)\\.\\.?(?:$|/))",Xn="(?!\\.)",DF=new Set(["[","."]),yF=new Set(["..","."]),wF=new Set("().*{}+?[]^$\\!"),bF=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),sl="[^/]",yh=sl+"*?",wh=sl+"+?",Uh=class Ke{type;#e;#r;#n=!1;#i=[];#o;#b;#D;#c=!1;#a;#d;#f=!1;constructor(t,r,s={}){this.type=t,t&&(this.#r=!0),this.#o=r,this.#e=this.#o?this.#o.#e:this,this.#a=this.#e===this?s:this.#e.#a,this.#D=this.#e===this?[]:this.#e.#D,t==="!"&&!this.#e.#c&&this.#D.push(this),this.#b=this.#o?this.#o.#i.length:0}get hasMagic(){if(this.#r!==void 0)return this.#r;for(let t of this.#i)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#r=!0;return this.#r}toString(){return this.#d!==void 0?this.#d:this.type?this.#d=this.type+"("+this.#i.map(t=>String(t)).join("|")+")":this.#d=this.#i.map(t=>String(t)).join("")}#u(){if(this!==this.#e)throw new Error("should only call on root");if(this.#c)return this;this.toString(),this.#c=!0;let t;for(;t=this.#D.pop();){if(t.type!=="!")continue;let r=t,s=r.#o;for(;s;){for(let i=r.#b+1;!s.type&&i<s.#i.length;i++)for(let n of t.#i){if(typeof n=="string")throw new Error("string part in extglob AST??");n.copyIn(s.#i[i])}r=s,s=r.#o}}return this}push(...t){for(let r of t)if(r!==""){if(typeof r!="string"&&!(r instanceof Ke&&r.#o===this))throw new Error("invalid part: "+r);this.#i.push(r)}}toJSON(){let t=this.type===null?this.#i.slice().map(r=>typeof r=="string"?r:r.toJSON()):[this.type,...this.#i.map(r=>r.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#c&&this.#o?.type==="!")&&t.push({}),t}isStart(){if(this.#e===this)return!0;if(!this.#o?.isStart())return!1;if(this.#b===0)return!0;let t=this.#o;for(let r=0;r<this.#b;r++){let s=t.#i[r];if(!(s instanceof Ke&&s.type==="!"))return!1}return!0}isEnd(){if(this.#e===this||this.#o?.type==="!")return!0;if(!this.#o?.isEnd())return!1;if(!this.type)return this.#o?.isEnd();let t=this.#o?this.#o.#i.length:0;return this.#b===t-1}copyIn(t){typeof t=="string"?this.push(t):this.push(t.clone(this))}clone(t){let r=new Ke(this.type,t);for(let s of this.#i)r.copyIn(s);return r}static#s(t,r,s,i){let n=!1,o=!1,a=-1,u=!1;if(r.type===null){let p=s,m="";for(;p<t.length;){let g=t.charAt(p++);if(n||g==="\\"){n=!n,m+=g;continue}if(o){p===a+1?(g==="^"||g==="!")&&(u=!0):g==="]"&&!(p===a+2&&u)&&(o=!1),m+=g;continue}else if(g==="["){o=!0,a=p,u=!1,m+=g;continue}if(!i.noext&&Dh(g)&&t.charAt(p)==="("){r.push(m),m="";let D=new Ke(g,r);p=Ke.#s(t,D,p,i),r.push(D);continue}m+=g}return r.push(m),p}let l=s+1,c=new Ke(null,r),f=[],h="";for(;l<t.length;){let p=t.charAt(l++);if(n||p==="\\"){n=!n,h+=p;continue}if(o){l===a+1?(p==="^"||p==="!")&&(u=!0):p==="]"&&!(l===a+2&&u)&&(o=!1),h+=p;continue}else if(p==="["){o=!0,a=l,u=!1,h+=p;continue}if(Dh(p)&&t.charAt(l)==="("){c.push(h),h="";let m=new Ke(p,c);c.push(m),l=Ke.#s(t,m,l,i);continue}if(p==="|"){c.push(h),h="",f.push(c),c=new Ke(null,r);continue}if(p===")")return h===""&&r.#i.length===0&&(r.#f=!0),c.push(h),h="",r.push(...f,c),l;h+=p}return r.type=null,r.#r=void 0,r.#i=[t.substring(s-1)],l}static fromGlob(t,r={}){let s=new Ke(null,void 0,r);return Ke.#s(t,s,0,r),s}toMMPattern(){if(this!==this.#e)return this.#e.toMMPattern();let t=this.toString(),[r,s,i,n]=this.toRegExpSource();if(!(i||this.#r||this.#a.nocase&&!this.#a.nocaseMagicOnly&&t.toUpperCase()!==t.toLowerCase()))return s;let o=(this.#a.nocase?"i":"")+(n?"u":"");return Object.assign(new RegExp(`^${r}$`,o),{_src:r,_glob:t})}get options(){return this.#a}toRegExpSource(t){let r=t??!!this.#a.dot;if(this.#e===this&&this.#u(),!this.type){let u=this.isStart()&&this.isEnd()&&!this.#i.some(h=>typeof h!="string"),l=this.#i.map(h=>{let[p,m,g,D]=typeof h=="string"?Ke.#v(h,this.#r,u):h.toRegExpSource(t);return this.#r=this.#r||g,this.#n=this.#n||D,p}).join(""),c="";if(this.isStart()&&typeof this.#i[0]=="string"&&!(this.#i.length===1&&yF.has(this.#i[0]))){let h=DF,p=r&&h.has(l.charAt(0))||l.startsWith("\\.")&&h.has(l.charAt(2))||l.startsWith("\\.\\.")&&h.has(l.charAt(4)),m=!r&&!t&&h.has(l.charAt(0));c=p?gF:m?Xn:""}let f="";return this.isEnd()&&this.#e.#c&&this.#o?.type==="!"&&(f="(?:$|\\/)"),[c+l+f,Br(l),this.#r=!!this.#r,this.#n]}let s=this.type==="*"||this.type==="+",i=this.type==="!"?"(?:(?!(?:":"(?:",n=this.#h(r);if(this.isStart()&&this.isEnd()&&!n&&this.type!=="!"){let u=this.toString();return this.#i=[u],this.type=null,this.#r=void 0,[u,Br(this.toString()),!1,!1]}let o=!s||t||r||!Xn?"":this.#h(!0);o===n&&(o=""),o&&(n=`(?:${n})(?:${o})*?`);let a="";if(this.type==="!"&&this.#f)a=(this.isStart()&&!r?Xn:"")+wh;else{let u=this.type==="!"?"))"+(this.isStart()&&!r&&!t?Xn:"")+yh+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&o?")":this.type==="*"&&o?")?":`)${this.type}`;a=i+n+u}return[a,Br(n),this.#r=!!this.#r,this.#n]}#h(t){return this.#i.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[s,i,n,o]=r.toRegExpSource(t);return this.#n=this.#n||o,s}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#v(t,r,s=!1){let i=!1,n="",o=!1,a=!1;for(let u=0;u<t.length;u++){let l=t.charAt(u);if(i){i=!1,n+=(wF.has(l)?"\\":"")+l;continue}if(l==="*"){if(a)continue;a=!0,n+=s&&/^[*]+$/.test(t)?wh:yh,r=!0;continue}else a=!1;if(l==="\\"){u===t.length-1?n+="\\\\":i=!0;continue}if(l==="["){let[c,f,h,p]=pF(t,u);if(h){n+=c,o=o||f,u+=h-1,r=r||p;continue}}if(l==="?"){n+=sl,r=!0;continue}n+=bF(l)}return[n,Br(t),!!r,o]}},il=(e,{windowsPathsNoEscape:t=!1,magicalBraces:r=!1}={})=>r?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&"),Be=(e,t,r={})=>(uo(t),!r.nocomment&&t.charAt(0)==="#"?!1:new nr(t,r).match(e)),vF=/^\*+([^+@!?\*\[\(]*)$/,EF=e=>t=>!t.startsWith(".")&&t.endsWith(e),CF=e=>t=>t.endsWith(e),FF=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),SF=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),xF=/^\*+\.\*+$/,AF=e=>!e.startsWith(".")&&e.includes("."),RF=e=>e!=="."&&e!==".."&&e.includes("."),kF=/^\.\*+$/,IF=e=>e!=="."&&e!==".."&&e.startsWith("."),_F=/^\*+$/,TF=e=>e.length!==0&&!e.startsWith("."),$F=e=>e.length!==0&&e!=="."&&e!=="..",PF=/^\?+([^+@!?\*\[\(]*)?$/,BF=([e,t=""])=>{let r=Gh([e]);return t?(t=t.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(t)):r},OF=([e,t=""])=>{let r=Vh([e]);return t?(t=t.toLowerCase(),s=>r(s)&&s.toLowerCase().endsWith(t)):r},LF=([e,t=""])=>{let r=Vh([e]);return t?s=>r(s)&&s.endsWith(t):r},NF=([e,t=""])=>{let r=Gh([e]);return t?s=>r(s)&&s.endsWith(t):r},Gh=([e])=>{let t=e.length;return r=>r.length===t&&!r.startsWith(".")},Vh=([e])=>{let t=e.length;return r=>r.length===t&&r!=="."&&r!==".."},Wh=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",bh={win32:{sep:"\\"},posix:{sep:"/"}},MF=Wh==="win32"?bh.win32.sep:bh.posix.sep;Be.sep=MF;Pe=Symbol("globstar **");Be.GLOBSTAR=Pe;jF="[^/]",qF=jF+"*?",UF="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",GF="(?:(?!(?:\\/|^)\\.).)*?",VF=(e,t={})=>r=>Be(r,e,t);Be.filter=VF;Je=(e,t={})=>Object.assign({},e,t),WF=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return Be;let t=Be;return Object.assign((r,s,i={})=>t(r,s,Je(e,i)),{Minimatch:class extends t.Minimatch{constructor(r,s={}){super(r,Je(e,s))}static defaults(r){return t.defaults(Je(e,r)).Minimatch}},AST:class extends t.AST{constructor(r,s,i={}){super(r,s,Je(e,i))}static fromGlob(r,s={}){return t.AST.fromGlob(r,Je(e,s))}},unescape:(r,s={})=>t.unescape(r,Je(e,s)),escape:(r,s={})=>t.escape(r,Je(e,s)),filter:(r,s={})=>t.filter(r,Je(e,s)),defaults:r=>t.defaults(Je(e,r)),makeRe:(r,s={})=>t.makeRe(r,Je(e,s)),braceExpand:(r,s={})=>t.braceExpand(r,Je(e,s)),match:(r,s,i={})=>t.match(r,s,Je(e,i)),sep:t.sep,GLOBSTAR:Pe})};Be.defaults=WF;Hh=(e,t={})=>(uo(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:aF(e,{max:t.braceExpandMax}));Be.braceExpand=Hh;HF=(e,t={})=>new nr(e,t).makeRe();Be.makeRe=HF;KF=(e,t,r={})=>{let s=new nr(t,r);return e=e.filter(i=>s.match(i)),s.options.nonull&&!e.length&&e.push(t),e};Be.match=KF;vh=/[?*]|[+@!]\(.*?\)|\[|\]/,zF=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),nr=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(e,t={}){uo(e),t=t||{},this.options=t,this.pattern=e,this.platform=t.platform||Wh,this.isWindows=this.platform==="win32";let r="allowWindowsEscape";this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t[r]===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!t.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!t.nonegate,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=t.windowsNoMagicRoot!==void 0?t.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let e of this.set)for(let t of e)if(typeof t!="string")return!0;return!1}debug(...e){}make(){let e=this.pattern,t=this.options;if(!t.nocomment&&e.charAt(0)==="#"){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],t.debug&&(this.debug=(...i)=>console.error(...i)),this.debug(this.pattern,this.globSet);let r=this.globSet.map(i=>this.slashSplit(i));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let s=this.globParts.map((i,n,o)=>{if(this.isWindows&&this.windowsNoMagicRoot){let a=i[0]===""&&i[1]===""&&(i[2]==="?"||!vh.test(i[2]))&&!vh.test(i[3]),u=/^[a-z]:/i.test(i[0]);if(a)return[...i.slice(0,4),...i.slice(4).map(l=>this.parse(l))];if(u)return[i[0],...i.slice(1).map(l=>this.parse(l))]}return i.map(a=>this.parse(a))});if(this.debug(this.pattern,s),this.set=s.filter(i=>i.indexOf(!1)===-1),this.isWindows)for(let i=0;i<this.set.length;i++){let n=this.set[i];n[0]===""&&n[1]===""&&this.globParts[i][2]==="?"&&typeof n[3]=="string"&&/^[a-z]:$/i.test(n[3])&&(n[2]="?")}this.debug(this.pattern,this.set)}preprocess(e){if(this.options.noglobstar)for(let r=0;r<e.length;r++)for(let s=0;s<e[r].length;s++)e[r][s]==="**"&&(e[r][s]="*");let{optimizationLevel:t=1}=this.options;return t>=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):t>=1?e=this.levelOneOptimize(e):e=this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(t=>{let r=-1;for(;(r=t.indexOf("**",r+1))!==-1;){let s=r;for(;t[s+1]==="**";)s++;s!==r&&t.splice(r,s-r)}return t})}levelOneOptimize(e){return e.map(t=>(t=t.reduce((r,s)=>{let i=r[r.length-1];return s==="**"&&i==="**"?r:s===".."&&i&&i!==".."&&i!=="."&&i!=="**"?(r.pop(),r):(r.push(s),r)},[]),t.length===0?[""]:t))}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let t=!1;do{if(t=!1,!this.preserveMultipleSlashes){for(let s=1;s<e.length-1;s++){let i=e[s];s===1&&i===""&&e[0]===""||(i==="."||i==="")&&(t=!0,e.splice(s,1),s--)}e[0]==="."&&e.length===2&&(e[1]==="."||e[1]==="")&&(t=!0,e.pop())}let r=0;for(;(r=e.indexOf("..",r+1))!==-1;){let s=e[r-1];s&&s!=="."&&s!==".."&&s!=="**"&&(t=!0,e.splice(r-1,2),r-=2)}}while(t);return e.length===0?[""]:e}firstPhasePreProcess(e){let t=!1;do{t=!1;for(let r of e){let s=-1;for(;(s=r.indexOf("**",s+1))!==-1;){let n=s;for(;r[n+1]==="**";)n++;n>s&&r.splice(s+1,n-s);let o=r[s+1],a=r[s+2],u=r[s+3];if(o!==".."||!a||a==="."||a===".."||!u||u==="."||u==="..")continue;t=!0,r.splice(s,1);let l=r.slice(0);l[s]="**",e.push(l),s--}if(!this.preserveMultipleSlashes){for(let n=1;n<r.length-1;n++){let o=r[n];n===1&&o===""&&r[0]===""||(o==="."||o==="")&&(t=!0,r.splice(n,1),n--)}r[0]==="."&&r.length===2&&(r[1]==="."||r[1]==="")&&(t=!0,r.pop())}let i=0;for(;(i=r.indexOf("..",i+1))!==-1;){let n=r[i-1];if(n&&n!=="."&&n!==".."&&n!=="**"){t=!0;let o=i===1&&r[i+1]==="**"?["."]:[];r.splice(i-1,2,...o),r.length===0&&r.push(""),i-=2}}}}while(t);return e}secondPhasePreProcess(e){for(let t=0;t<e.length-1;t++)for(let r=t+1;r<e.length;r++){let s=this.partsMatch(e[t],e[r],!this.preserveMultipleSlashes);if(s){e[t]=[],e[r]=s;break}}return e.filter(t=>t.length)}partsMatch(e,t,r=!1){let s=0,i=0,n=[],o="";for(;s<e.length&&i<t.length;)if(e[s]===t[i])n.push(o==="b"?t[i]:e[s]),s++,i++;else if(r&&e[s]==="**"&&t[i]===e[s+1])n.push(e[s]),s++;else if(r&&t[i]==="**"&&e[s]===t[i+1])n.push(t[i]),i++;else if(e[s]==="*"&&t[i]&&(this.options.dot||!t[i].startsWith("."))&&t[i]!=="**"){if(o==="b")return!1;o="a",n.push(e[s]),s++,i++}else if(t[i]==="*"&&e[s]&&(this.options.dot||!e[s].startsWith("."))&&e[s]!=="**"){if(o==="a")return!1;o="b",n.push(t[i]),s++,i++}else return!1;return e.length===t.length&&n}parseNegate(){if(this.nonegate)return;let e=this.pattern,t=!1,r=0;for(let s=0;s<e.length&&e.charAt(s)==="!";s++)t=!t,r++;r&&(this.pattern=e.slice(r)),this.negate=t}matchOne(e,t,r=!1){let s=this.options;if(this.isWindows){let m=typeof e[0]=="string"&&/^[a-z]:$/i.test(e[0]),g=!m&&e[0]===""&&e[1]===""&&e[2]==="?"&&/^[a-z]:$/i.test(e[3]),D=typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0]),b=!D&&t[0]===""&&t[1]===""&&t[2]==="?"&&typeof t[3]=="string"&&/^[a-z]:$/i.test(t[3]),w=g?3:m?0:void 0,v=b?3:D?0:void 0;if(typeof w=="number"&&typeof v=="number"){let[E,C]=[e[w],t[v]];E.toLowerCase()===C.toLowerCase()&&(t[v]=E,v>w?t=t.slice(v):w>v&&(e=e.slice(w)))}}let{optimizationLevel:i=1}=this.options;i>=2&&(e=this.levelTwoFileOptimize(e)),this.debug("matchOne",this,{file:e,pattern:t}),this.debug("matchOne",e.length,t.length);for(var n=0,o=0,a=e.length,u=t.length;n<a&&o<u;n++,o++){this.debug("matchOne loop");var l=t[o],c=e[n];if(this.debug(t,l,c),l===!1)return!1;if(l===Pe){this.debug("GLOBSTAR",[t,l,c]);var f=n,h=o+1;if(h===u){for(this.debug("** at the end");n<a;n++)if(e[n]==="."||e[n]===".."||!s.dot&&e[n].charAt(0)===".")return!1;return!0}for(;f<a;){var p=e[f];if(this.debug(`
53
53
  globstar while`,e,f,t,h,p),this.matchOne(e.slice(f),t.slice(h),r))return this.debug("globstar found match!",f,a,p),!0;if(p==="."||p===".."||!s.dot&&p.charAt(0)==="."){this.debug("dot detected!",e,f,t,h);break}this.debug("globstar swallow a segment, and continue"),f++}return!!(r&&(this.debug(`
54
- >>> no match, partial?`,e,f,t,h),f===a))}let m;if(typeof l=="string"?(m=c===l,this.debug("string match",l,c,m)):(m=l.test(c),this.debug("pattern match",l,c,m)),!m)return!1}if(n===a&&o===u)return!0;if(n===a)return r;if(o===u)return n===a-1&&e[n]==="";throw new Error("wtf?")}braceExpand(){return Wh(this.pattern,this.options)}parse(e){uo(e);let t=this.options;if(e==="**")return $e;if(e==="")return"";let r,s=null;(r=e.match(AF))?s=t.dot?kF:RF:(r=e.match(DF))?s=(t.nocase?t.dot?vF:bF:t.dot?wF:yF)(r[1]):(r=e.match(IF))?s=(t.nocase?t.dot?TF:_F:t.dot?$F:PF)(r):(r=e.match(EF))?s=t.dot?FF:CF:(r=e.match(SF))&&(s=xF);let i=qh.fromGlob(e,this.options).toMMPattern();return s&&typeof i=="object"&&Reflect.defineProperty(i,"test",{value:s}),i}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let t=this.options,r=t.noglobstar?LF:t.dot?NF:MF,s=new Set(t.nocase?["i"]:[]),i=e.map(a=>{let u=a.map(c=>{if(c instanceof RegExp)for(let f of c.flags.split(""))s.add(f);return typeof c=="string"?VF(c):c===$e?$e:c._src});u.forEach((c,f)=>{let h=u[f+1],p=u[f-1];c!==$e||p===$e||(p===void 0?h!==void 0&&h!==$e?u[f+1]="(?:\\/|"+r+"\\/)?"+h:u[f]=r:h===void 0?u[f-1]=p+"(?:\\/|\\/"+r+")?":h!==$e&&(u[f-1]=p+"(?:\\/|\\/"+r+"\\/)"+h,u[f+1]=$e))});let l=u.filter(c=>c!==$e);if(this.partial&&l.length>=1){let c=[];for(let f=1;f<=l.length;f++)c.push(l.slice(0,f).join("/"));return"(?:"+c.join("|")+")"}return l.join("/")}).join("|"),[n,o]=e.length>1?["(?:",")"]:["",""];i="^"+n+i+o+"$",this.partial&&(i="^(?:\\/|"+n+i.slice(1,-1)+o+")$"),this.negate&&(i="^(?!"+i+").+$");try{this.regexp=new RegExp(i,[...s].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(e)?["",...e.split(/\/+/)]:e.split(/\/+/)}match(e,t=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&t)return!0;let r=this.options;this.isWindows&&(e=e.split("\\").join("/"));let s=this.slashSplit(e);this.debug(this.pattern,"split",s);let i=this.set;this.debug(this.pattern,"set",i);let n=s[s.length-1];if(!n)for(let o=s.length-2;!n&&o>=0;o--)n=s[o];for(let o=0;o<i.length;o++){let a=i[o],u=s;if(r.matchBase&&a.length===1&&(u=[n]),this.matchOne(u,a,t))return r.flipNegate?!0:!this.negate}return r.flipNegate?!1:this.negate}static defaults(e){return Pe.defaults(e).Minimatch}};Pe.AST=qh;Pe.Minimatch=ir;Pe.escape=il;Pe.unescape=Br;WF=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,Hh=new Set,el=typeof process=="object"&&process?process:{},zh=(e,t,r,s)=>{typeof el.emitWarning=="function"?el.emitWarning(e,t,r,s):console.error(`[${r}] ${t}: ${e}`)},lo=globalThis.AbortController,vh=globalThis.AbortSignal;if(typeof lo>"u"){vh=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(r,s){this._onabort.push(s)}},lo=class{constructor(){t()}signal=new vh;abort(r){if(!this.signal.aborted){this.signal.reason=r,this.signal.aborted=!0;for(let s of this.signal._onabort)s(r);this.signal.onabort?.(r)}}};let e=el.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{e&&(e=!1,zh("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}KF=e=>!Hh.has(e),sr=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),Jh=e=>sr(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?oo:null:null,oo=class extends Array{constructor(e){super(e),this.fill(0)}},HF=class Si{heap;length;static#e=!1;static create(t){let r=Jh(t);if(!r)return[];Si.#e=!0;let s=new Si(t,r);return Si.#e=!1,s}constructor(t,r){if(!Si.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new r(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},fo=class Yh{#e;#r;#n;#i;#o;#b;#D;#c;get perf(){return this.#c}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#a;#d;#f;#u;#s;#h;#v;#w;#p;#R;#m;#F;#S;#g;#y;#E;#x;#t;#P;static unsafeExposeInternals(t){return{starts:t.#S,ttls:t.#g,autopurgeTimers:t.#y,sizes:t.#F,keyMap:t.#f,keyList:t.#u,valList:t.#s,next:t.#h,prev:t.#v,get head(){return t.#w},get tail(){return t.#p},free:t.#R,isBackgroundFetch:r=>t.#l(r),backgroundFetch:(r,s,i,n)=>t.#U(r,s,i,n),moveToTail:r=>t.#O(r),indexes:r=>t.#I(r),rindexes:r=>t.#_(r),isStale:r=>t.#C(r)}}get max(){return this.#e}get maxSize(){return this.#r}get calculatedSize(){return this.#d}get size(){return this.#a}get fetchMethod(){return this.#b}get memoMethod(){return this.#D}get dispose(){return this.#n}get onInsert(){return this.#i}get disposeAfter(){return this.#o}constructor(t){let{max:r=0,ttl:s,ttlResolution:i=1,ttlAutopurge:n,updateAgeOnGet:o,updateAgeOnHas:a,allowStale:u,dispose:l,onInsert:c,disposeAfter:f,noDisposeOnSet:h,noUpdateTTL:p,maxSize:m=0,maxEntrySize:g=0,sizeCalculation:D,fetchMethod:b,memoMethod:w,noDeleteOnFetchRejection:v,noDeleteOnStaleGet:E,allowStaleOnFetchRejection:C,allowStaleOnFetchAbort:x,ignoreFetchAbort:$,perf:F}=t;if(F!==void 0&&typeof F?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(this.#c=F??WF,r!==0&&!sr(r))throw new TypeError("max option must be a nonnegative integer");let R=r?Jh(r):Array;if(!R)throw new Error("invalid max value: "+r);if(this.#e=r,this.#r=m,this.maxEntrySize=g||this.#r,this.sizeCalculation=D,this.sizeCalculation){if(!this.#r&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(w!==void 0&&typeof w!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#D=w,b!==void 0&&typeof b!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#b=b,this.#x=!!b,this.#f=new Map,this.#u=new Array(r).fill(void 0),this.#s=new Array(r).fill(void 0),this.#h=new R(r),this.#v=new R(r),this.#w=0,this.#p=0,this.#R=HF.create(r),this.#a=0,this.#d=0,typeof l=="function"&&(this.#n=l),typeof c=="function"&&(this.#i=c),typeof f=="function"?(this.#o=f,this.#m=[]):(this.#o=void 0,this.#m=void 0),this.#E=!!this.#n,this.#P=!!this.#i,this.#t=!!this.#o,this.noDisposeOnSet=!!h,this.noUpdateTTL=!!p,this.noDeleteOnFetchRejection=!!v,this.allowStaleOnFetchRejection=!!C,this.allowStaleOnFetchAbort=!!x,this.ignoreFetchAbort=!!$,this.maxEntrySize!==0){if(this.#r!==0&&!sr(this.#r))throw new TypeError("maxSize must be a positive integer if specified");if(!sr(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#V()}if(this.allowStale=!!u,this.noDeleteOnStaleGet=!!E,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!a,this.ttlResolution=sr(i)||i===0?i:1,this.ttlAutopurge=!!n,this.ttl=s||0,this.ttl){if(!sr(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#T()}if(this.#e===0&&this.ttl===0&&this.#r===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#e&&!this.#r){let W="LRU_CACHE_UNBOUNDED";KF(W)&&(Hh.add(W),zh("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",W,Yh))}}getRemainingTTL(t){return this.#f.has(t)?1/0:0}#T(){let t=new oo(this.#e),r=new oo(this.#e);this.#g=t,this.#S=r;let s=this.ttlAutopurge?new Array(this.#e):void 0;this.#y=s,this.#N=(o,a,u=this.#c.now())=>{if(r[o]=a!==0?u:0,t[o]=a,s?.[o]&&(clearTimeout(s[o]),s[o]=void 0),a!==0&&s){let l=setTimeout(()=>{this.#C(o)&&this.#k(this.#u[o],"expire")},a+1);l.unref&&l.unref(),s[o]=l}},this.#A=o=>{r[o]=t[o]!==0?this.#c.now():0},this.#$=(o,a)=>{if(t[a]){let u=t[a],l=r[a];if(!u||!l)return;o.ttl=u,o.start=l,o.now=i||n();let c=o.now-l;o.remainingTTL=u-c}};let i=0,n=()=>{let o=this.#c.now();if(this.ttlResolution>0){i=o;let a=setTimeout(()=>i=0,this.ttlResolution);a.unref&&a.unref()}return o};this.getRemainingTTL=o=>{let a=this.#f.get(o);if(a===void 0)return 0;let u=t[a],l=r[a];if(!u||!l)return 1/0;let c=(i||n())-l;return u-c},this.#C=o=>{let a=r[o],u=t[o];return!!u&&!!a&&(i||n())-a>u}}#A=()=>{};#$=()=>{};#N=()=>{};#C=()=>!1;#V(){let t=new oo(this.#e);this.#d=0,this.#F=t,this.#L=r=>{this.#d-=t[r],t[r]=0},this.#M=(r,s,i,n)=>{if(this.#l(s))return 0;if(!sr(i))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(i=n(s,r),!sr(i))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return i},this.#B=(r,s,i)=>{if(t[r]=s,this.#r){let n=this.#r-t[r];for(;this.#d>n;)this.#q(!0)}this.#d+=t[r],i&&(i.entrySize=s,i.totalCalculatedSize=this.#d)}}#L=t=>{};#B=(t,r,s)=>{};#M=(t,r,s,i)=>{if(s||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#I({allowStale:t=this.allowStale}={}){if(this.#a)for(let r=this.#p;!(!this.#j(r)||((t||!this.#C(r))&&(yield r),r===this.#w));)r=this.#v[r]}*#_({allowStale:t=this.allowStale}={}){if(this.#a)for(let r=this.#w;!(!this.#j(r)||((t||!this.#C(r))&&(yield r),r===this.#p));)r=this.#h[r]}#j(t){return t!==void 0&&this.#f.get(this.#u[t])===t}*entries(){for(let t of this.#I())this.#s[t]!==void 0&&this.#u[t]!==void 0&&!this.#l(this.#s[t])&&(yield[this.#u[t],this.#s[t]])}*rentries(){for(let t of this.#_())this.#s[t]!==void 0&&this.#u[t]!==void 0&&!this.#l(this.#s[t])&&(yield[this.#u[t],this.#s[t]])}*keys(){for(let t of this.#I()){let r=this.#u[t];r!==void 0&&!this.#l(this.#s[t])&&(yield r)}}*rkeys(){for(let t of this.#_()){let r=this.#u[t];r!==void 0&&!this.#l(this.#s[t])&&(yield r)}}*values(){for(let t of this.#I())this.#s[t]!==void 0&&!this.#l(this.#s[t])&&(yield this.#s[t])}*rvalues(){for(let t of this.#_())this.#s[t]!==void 0&&!this.#l(this.#s[t])&&(yield this.#s[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,r={}){for(let s of this.#I()){let i=this.#s[s],n=this.#l(i)?i.__staleWhileFetching:i;if(n!==void 0&&t(n,this.#u[s],this))return this.get(this.#u[s],r)}}forEach(t,r=this){for(let s of this.#I()){let i=this.#s[s],n=this.#l(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(r,n,this.#u[s],this)}}rforEach(t,r=this){for(let s of this.#_()){let i=this.#s[s],n=this.#l(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(r,n,this.#u[s],this)}}purgeStale(){let t=!1;for(let r of this.#_({allowStale:!0}))this.#C(r)&&(this.#k(this.#u[r],"expire"),t=!0);return t}info(t){let r=this.#f.get(t);if(r===void 0)return;let s=this.#s[r],i=this.#l(s)?s.__staleWhileFetching:s;if(i===void 0)return;let n={value:i};if(this.#g&&this.#S){let o=this.#g[r],a=this.#S[r];if(o&&a){let u=o-(this.#c.now()-a);n.ttl=u,n.start=Date.now()}}return this.#F&&(n.size=this.#F[r]),n}dump(){let t=[];for(let r of this.#I({allowStale:!0})){let s=this.#u[r],i=this.#s[r],n=this.#l(i)?i.__staleWhileFetching:i;if(n===void 0||s===void 0)continue;let o={value:n};if(this.#g&&this.#S){o.ttl=this.#g[r];let a=this.#c.now()-this.#S[r];o.start=Math.floor(Date.now()-a)}this.#F&&(o.size=this.#F[r]),t.unshift([s,o])}return t}load(t){this.clear();for(let[r,s]of t){if(s.start){let i=Date.now()-s.start;s.start=this.#c.now()-i}this.set(r,s.value,s)}}set(t,r,s={}){if(r===void 0)return this.delete(t),this;let{ttl:i=this.ttl,start:n,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:a=this.sizeCalculation,status:u}=s,{noUpdateTTL:l=this.noUpdateTTL}=s,c=this.#M(t,r,s.size||0,a);if(this.maxEntrySize&&c>this.maxEntrySize)return u&&(u.set="miss",u.maxEntrySizeExceeded=!0),this.#k(t,"set"),this;let f=this.#a===0?void 0:this.#f.get(t);if(f===void 0)f=this.#a===0?this.#p:this.#R.length!==0?this.#R.pop():this.#a===this.#e?this.#q(!1):this.#a,this.#u[f]=t,this.#s[f]=r,this.#f.set(t,f),this.#h[this.#p]=f,this.#v[f]=this.#p,this.#p=f,this.#a++,this.#B(f,c,u),u&&(u.set="add"),l=!1,this.#P&&this.#i?.(r,t,"add");else{this.#O(f);let h=this.#s[f];if(r!==h){if(this.#x&&this.#l(h)){h.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:p}=h;p!==void 0&&!o&&(this.#E&&this.#n?.(p,t,"set"),this.#t&&this.#m?.push([p,t,"set"]))}else o||(this.#E&&this.#n?.(h,t,"set"),this.#t&&this.#m?.push([h,t,"set"]));if(this.#L(f),this.#B(f,c,u),this.#s[f]=r,u){u.set="replace";let p=h&&this.#l(h)?h.__staleWhileFetching:h;p!==void 0&&(u.oldValue=p)}}else u&&(u.set="update");this.#P&&this.onInsert?.(r,t,r===h?"update":"replace")}if(i!==0&&!this.#g&&this.#T(),this.#g&&(l||this.#N(f,i,n),u&&this.#$(u,f)),!o&&this.#t&&this.#m){let h=this.#m,p;for(;p=h?.shift();)this.#o?.(...p)}return this}pop(){try{for(;this.#a;){let t=this.#s[this.#w];if(this.#q(!0),this.#l(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#t&&this.#m){let t=this.#m,r;for(;r=t?.shift();)this.#o?.(...r)}}}#q(t){let r=this.#w,s=this.#u[r],i=this.#s[r];return this.#x&&this.#l(i)?i.__abortController.abort(new Error("evicted")):(this.#E||this.#t)&&(this.#E&&this.#n?.(i,s,"evict"),this.#t&&this.#m?.push([i,s,"evict"])),this.#L(r),this.#y?.[r]&&(clearTimeout(this.#y[r]),this.#y[r]=void 0),t&&(this.#u[r]=void 0,this.#s[r]=void 0,this.#R.push(r)),this.#a===1?(this.#w=this.#p=0,this.#R.length=0):this.#w=this.#h[r],this.#f.delete(s),this.#a--,r}has(t,r={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:i}=r,n=this.#f.get(t);if(n!==void 0){let o=this.#s[n];if(this.#l(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#C(n))i&&(i.has="stale",this.#$(i,n));else return s&&this.#A(n),i&&(i.has="hit",this.#$(i,n)),!0}else i&&(i.has="miss");return!1}peek(t,r={}){let{allowStale:s=this.allowStale}=r,i=this.#f.get(t);if(i===void 0||!s&&this.#C(i))return;let n=this.#s[i];return this.#l(n)?n.__staleWhileFetching:n}#U(t,r,s,i){let n=r===void 0?void 0:this.#s[r];if(this.#l(n))return n;let o=new lo,{signal:a}=s;a?.addEventListener("abort",()=>o.abort(a.reason),{signal:o.signal});let u={signal:o.signal,options:s,context:i},l=(g,D=!1)=>{let{aborted:b}=o.signal,w=s.ignoreFetchAbort&&g!==void 0,v=s.ignoreFetchAbort||!!(s.allowStaleOnFetchAbort&&g!==void 0);if(s.status&&(b&&!D?(s.status.fetchAborted=!0,s.status.fetchError=o.signal.reason,w&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),b&&!w&&!D)return f(o.signal.reason,v);let E=p,C=this.#s[r];return(C===p||w&&D&&C===void 0)&&(g===void 0?E.__staleWhileFetching!==void 0?this.#s[r]=E.__staleWhileFetching:this.#k(t,"fetch"):(s.status&&(s.status.fetchUpdated=!0),this.set(t,g,u.options))),g},c=g=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=g),f(g,!1)),f=(g,D)=>{let{aborted:b}=o.signal,w=b&&s.allowStaleOnFetchAbort,v=w||s.allowStaleOnFetchRejection,E=v||s.noDeleteOnFetchRejection,C=p;if(this.#s[r]===p&&(!E||!D&&C.__staleWhileFetching===void 0?this.#k(t,"fetch"):w||(this.#s[r]=C.__staleWhileFetching)),v)return s.status&&C.__staleWhileFetching!==void 0&&(s.status.returnedStale=!0),C.__staleWhileFetching;if(C.__returned===C)throw g},h=(g,D)=>{let b=this.#b?.(t,n,u);b&&b instanceof Promise&&b.then(w=>g(w===void 0?void 0:w),D),o.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(g(void 0),s.allowStaleOnFetchAbort&&(g=w=>l(w,!0)))})};s.status&&(s.status.fetchDispatched=!0);let p=new Promise(h).then(l,c),m=Object.assign(p,{__abortController:o,__staleWhileFetching:n,__returned:void 0});return r===void 0?(this.set(t,m,{...u.options,status:void 0}),r=this.#f.get(t)):this.#s[r]=m,m}#l(t){if(!this.#x)return!1;let r=t;return!!r&&r instanceof Promise&&r.hasOwnProperty("__staleWhileFetching")&&r.__abortController instanceof lo}async fetch(t,r={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:a=this.noDisposeOnSet,size:u=0,sizeCalculation:l=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:h=this.allowStaleOnFetchRejection,ignoreFetchAbort:p=this.ignoreFetchAbort,allowStaleOnFetchAbort:m=this.allowStaleOnFetchAbort,context:g,forceRefresh:D=!1,status:b,signal:w}=r;if(!this.#x)return b&&(b.fetch="get"),this.get(t,{allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,status:b});let v={allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,ttl:o,noDisposeOnSet:a,size:u,sizeCalculation:l,noUpdateTTL:c,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:h,allowStaleOnFetchAbort:m,ignoreFetchAbort:p,status:b,signal:w},E=this.#f.get(t);if(E===void 0){b&&(b.fetch="miss");let C=this.#U(t,E,v,g);return C.__returned=C}else{let C=this.#s[E];if(this.#l(C)){let R=s&&C.__staleWhileFetching!==void 0;return b&&(b.fetch="inflight",R&&(b.returnedStale=!0)),R?C.__staleWhileFetching:C.__returned=C}let x=this.#C(E);if(!D&&!x)return b&&(b.fetch="hit"),this.#O(E),i&&this.#A(E),b&&this.#$(b,E),C;let $=this.#U(t,E,v,g),F=$.__staleWhileFetching!==void 0&&s;return b&&(b.fetch=x?"stale":"refresh",F&&x&&(b.returnedStale=!0)),F?$.__staleWhileFetching:$.__returned=$}}async forceFetch(t,r={}){let s=await this.fetch(t,r);if(s===void 0)throw new Error("fetch() returned undefined");return s}memo(t,r={}){let s=this.#D;if(!s)throw new Error("no memoMethod provided to constructor");let{context:i,forceRefresh:n,...o}=r,a=this.get(t,o);if(!n&&a!==void 0)return a;let u=s(t,a,{options:o,context:i});return this.set(t,u,o),u}get(t,r={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:o}=r,a=this.#f.get(t);if(a!==void 0){let u=this.#s[a],l=this.#l(u);return o&&this.#$(o,a),this.#C(a)?(o&&(o.get="stale"),l?(o&&s&&u.__staleWhileFetching!==void 0&&(o.returnedStale=!0),s?u.__staleWhileFetching:void 0):(n||this.#k(t,"expire"),o&&s&&(o.returnedStale=!0),s?u:void 0)):(o&&(o.get="hit"),l?u.__staleWhileFetching:(this.#O(a),i&&this.#A(a),u))}else o&&(o.get="miss")}#G(t,r){this.#v[r]=t,this.#h[t]=r}#O(t){t!==this.#p&&(t===this.#w?this.#w=this.#h[t]:this.#G(this.#v[t],this.#h[t]),this.#G(this.#p,t),this.#p=t)}delete(t){return this.#k(t,"delete")}#k(t,r){let s=!1;if(this.#a!==0){let i=this.#f.get(t);if(i!==void 0)if(this.#y?.[i]&&(clearTimeout(this.#y?.[i]),this.#y[i]=void 0),s=!0,this.#a===1)this.#W(r);else{this.#L(i);let n=this.#s[i];if(this.#l(n)?n.__abortController.abort(new Error("deleted")):(this.#E||this.#t)&&(this.#E&&this.#n?.(n,t,r),this.#t&&this.#m?.push([n,t,r])),this.#f.delete(t),this.#u[i]=void 0,this.#s[i]=void 0,i===this.#p)this.#p=this.#v[i];else if(i===this.#w)this.#w=this.#h[i];else{let o=this.#v[i];this.#h[o]=this.#h[i];let a=this.#h[i];this.#v[a]=this.#v[i]}this.#a--,this.#R.push(i)}}if(this.#t&&this.#m?.length){let i=this.#m,n;for(;n=i?.shift();)this.#o?.(...n)}return s}clear(){return this.#W("delete")}#W(t){for(let r of this.#_({allowStale:!0})){let s=this.#s[r];if(this.#l(s))s.__abortController.abort(new Error("deleted"));else{let i=this.#u[r];this.#E&&this.#n?.(s,i,t),this.#t&&this.#m?.push([s,i,t])}}if(this.#f.clear(),this.#s.fill(void 0),this.#u.fill(void 0),this.#g&&this.#S){this.#g.fill(0),this.#S.fill(0);for(let r of this.#y??[])r!==void 0&&clearTimeout(r);this.#y?.fill(void 0)}if(this.#F&&this.#F.fill(0),this.#w=0,this.#p=0,this.#R.length=0,this.#d=0,this.#a=0,this.#t&&this.#m){let r=this.#m,s;for(;s=r?.shift();)this.#o?.(...s)}}},Eh=typeof process=="object"&&process?process:{stdout:null,stderr:null},JF=e=>!!e&&typeof e=="object"&&(e instanceof co||e instanceof nl.default||YF(e)||ZF(e)),YF=e=>!!e&&typeof e=="object"&&e instanceof ho.EventEmitter&&typeof e.pipe=="function"&&e.pipe!==nl.default.Writable.prototype.pipe,ZF=e=>!!e&&typeof e=="object"&&e instanceof ho.EventEmitter&&typeof e.write=="function"&&typeof e.end=="function",Lt=Symbol("EOF"),Nt=Symbol("maybeEmitEnd"),rr=Symbol("emittedEnd"),Qn=Symbol("emittingEnd"),wi=Symbol("emittedError"),eo=Symbol("closed"),Ch=Symbol("read"),to=Symbol("flush"),Fh=Symbol("flushChunk"),ft=Symbol("encoding"),ys=Symbol("decoder"),ye=Symbol("flowing"),bi=Symbol("paused"),ws=Symbol("resume"),we=Symbol("buffer"),Te=Symbol("pipes"),be=Symbol("bufferLength"),Hu=Symbol("bufferPush"),ro=Symbol("bufferShift"),Ie=Symbol("objectMode"),le=Symbol("destroyed"),zu=Symbol("error"),Ju=Symbol("emitData"),Sh=Symbol("emitEnd"),Yu=Symbol("emitEnd2"),Et=Symbol("async"),Zu=Symbol("abort"),so=Symbol("aborted"),vi=Symbol("signal"),$r=Symbol("dataListeners"),We=Symbol("discarded"),Ei=e=>Promise.resolve().then(e),XF=e=>e(),QF=e=>e==="end"||e==="finish"||e==="prefinish",eS=e=>e instanceof ArrayBuffer||!!e&&typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,tS=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),Qh=class{src;dest;opts;ondrain;constructor(e,t,r){this.src=e,this.dest=t,this.opts=r,this.ondrain=()=>e[ws](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(e){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},rS=class extends Qh{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,r){super(e,t,r),this.proxyErrors=s=>this.dest.emit("error",s),e.on("error",this.proxyErrors)}},sS=e=>!!e.objectMode,iS=e=>!e.objectMode&&!!e.encoding&&e.encoding!=="buffer",co=class extends ho.EventEmitter{[ye]=!1;[bi]=!1;[Te]=[];[we]=[];[Ie];[ft];[Et];[ys];[Lt]=!1;[rr]=!1;[Qn]=!1;[eo]=!1;[wi]=null;[be]=0;[le]=!1;[vi];[so]=!1;[$r]=0;[We]=!1;writable=!0;readable=!0;constructor(...e){let t=e[0]||{};if(super(),t.objectMode&&typeof t.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");sS(t)?(this[Ie]=!0,this[ft]=null):iS(t)?(this[ft]=t.encoding,this[Ie]=!1):(this[Ie]=!1,this[ft]=null),this[Et]=!!t.async,this[ys]=this[ft]?new Xh.StringDecoder(this[ft]):null,t&&t.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[we]}),t&&t.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[Te]});let{signal:r}=t;r&&(this[vi]=r,r.aborted?this[Zu]():r.addEventListener("abort",()=>this[Zu]()))}get bufferLength(){return this[be]}get encoding(){return this[ft]}set encoding(e){throw new Error("Encoding must be set at instantiation time")}setEncoding(e){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[Ie]}set objectMode(e){throw new Error("objectMode must be set at instantiation time")}get async(){return this[Et]}set async(e){this[Et]=this[Et]||!!e}[Zu](){this[so]=!0,this.emit("abort",this[vi]?.reason),this.destroy(this[vi]?.reason)}get aborted(){return this[so]}set aborted(e){}write(e,t,r){if(this[so])return!1;if(this[Lt])throw new Error("write after end");if(this[le])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(r=t,t="utf8"),t||(t="utf8");let s=this[Et]?Ei:XF;if(!this[Ie]&&!Buffer.isBuffer(e)){if(tS(e))e=Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if(eS(e))e=Buffer.from(e);else if(typeof e!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[Ie]?(this[ye]&&this[be]!==0&&this[to](!0),this[ye]?this.emit("data",e):this[Hu](e),this[be]!==0&&this.emit("readable"),r&&s(r),this[ye]):e.length?(typeof e=="string"&&!(t===this[ft]&&!this[ys]?.lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[ft]&&(e=this[ys].write(e)),this[ye]&&this[be]!==0&&this[to](!0),this[ye]?this.emit("data",e):this[Hu](e),this[be]!==0&&this.emit("readable"),r&&s(r),this[ye]):(this[be]!==0&&this.emit("readable"),r&&s(r),this[ye])}read(e){if(this[le])return null;if(this[We]=!1,this[be]===0||e===0||e&&e>this[be])return this[Nt](),null;this[Ie]&&(e=null),this[we].length>1&&!this[Ie]&&(this[we]=[this[ft]?this[we].join(""):Buffer.concat(this[we],this[be])]);let t=this[Ch](e||null,this[we][0]);return this[Nt](),t}[Ch](e,t){if(this[Ie])this[ro]();else{let r=t;e===r.length||e===null?this[ro]():typeof r=="string"?(this[we][0]=r.slice(e),t=r.slice(0,e),this[be]-=e):(this[we][0]=r.subarray(e),t=r.subarray(0,e),this[be]-=e)}return this.emit("data",t),!this[we].length&&!this[Lt]&&this.emit("drain"),t}end(e,t,r){return typeof e=="function"&&(r=e,e=void 0),typeof t=="function"&&(r=t,t="utf8"),e!==void 0&&this.write(e,t),r&&this.once("end",r),this[Lt]=!0,this.writable=!1,(this[ye]||!this[bi])&&this[Nt](),this}[ws](){this[le]||(!this[$r]&&!this[Te].length&&(this[We]=!0),this[bi]=!1,this[ye]=!0,this.emit("resume"),this[we].length?this[to]():this[Lt]?this[Nt]():this.emit("drain"))}resume(){return this[ws]()}pause(){this[ye]=!1,this[bi]=!0,this[We]=!1}get destroyed(){return this[le]}get flowing(){return this[ye]}get paused(){return this[bi]}[Hu](e){this[Ie]?this[be]+=1:this[be]+=e.length,this[we].push(e)}[ro](){return this[Ie]?this[be]-=1:this[be]-=this[we][0].length,this[we].shift()}[to](e=!1){do;while(this[Fh](this[ro]())&&this[we].length);!e&&!this[we].length&&!this[Lt]&&this.emit("drain")}[Fh](e){return this.emit("data",e),this[ye]}pipe(e,t){if(this[le])return e;this[We]=!1;let r=this[rr];return t=t||{},e===Eh.stdout||e===Eh.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,r?t.end&&e.end():(this[Te].push(t.proxyErrors?new rS(this,e,t):new Qh(this,e,t)),this[Et]?Ei(()=>this[ws]()):this[ws]()),e}unpipe(e){let t=this[Te].find(r=>r.dest===e);t&&(this[Te].length===1?(this[ye]&&this[$r]===0&&(this[ye]=!1),this[Te]=[]):this[Te].splice(this[Te].indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let r=super.on(e,t);if(e==="data")this[We]=!1,this[$r]++,!this[Te].length&&!this[ye]&&this[ws]();else if(e==="readable"&&this[be]!==0)super.emit("readable");else if(QF(e)&&this[rr])super.emit(e),this.removeAllListeners(e);else if(e==="error"&&this[wi]){let s=t;this[Et]?Ei(()=>s.call(this,this[wi])):s.call(this,this[wi])}return r}removeListener(e,t){return this.off(e,t)}off(e,t){let r=super.off(e,t);return e==="data"&&(this[$r]=this.listeners("data").length,this[$r]===0&&!this[We]&&!this[Te].length&&(this[ye]=!1)),r}removeAllListeners(e){let t=super.removeAllListeners(e);return(e==="data"||e===void 0)&&(this[$r]=0,!this[We]&&!this[Te].length&&(this[ye]=!1)),t}get emittedEnd(){return this[rr]}[Nt](){!this[Qn]&&!this[rr]&&!this[le]&&this[we].length===0&&this[Lt]&&(this[Qn]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[eo]&&this.emit("close"),this[Qn]=!1)}emit(e,...t){let r=t[0];if(e!=="error"&&e!=="close"&&e!==le&&this[le])return!1;if(e==="data")return!this[Ie]&&!r?!1:this[Et]?(Ei(()=>this[Ju](r)),!0):this[Ju](r);if(e==="end")return this[Sh]();if(e==="close"){if(this[eo]=!0,!this[rr]&&!this[le])return!1;let i=super.emit("close");return this.removeAllListeners("close"),i}else if(e==="error"){this[wi]=r,super.emit(zu,r);let i=!this[vi]||this.listeners("error").length?super.emit("error",r):!1;return this[Nt](),i}else if(e==="resume"){let i=super.emit("resume");return this[Nt](),i}else if(e==="finish"||e==="prefinish"){let i=super.emit(e);return this.removeAllListeners(e),i}let s=super.emit(e,...t);return this[Nt](),s}[Ju](e){for(let r of this[Te])r.dest.write(e)===!1&&this.pause();let t=this[We]?!1:super.emit("data",e);return this[Nt](),t}[Sh](){return this[rr]?!1:(this[rr]=!0,this.readable=!1,this[Et]?(Ei(()=>this[Yu]()),!0):this[Yu]())}[Yu](){if(this[ys]){let t=this[ys].end();if(t){for(let r of this[Te])r.dest.write(t);this[We]||super.emit("data",t)}}for(let t of this[Te])t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}async collect(){let e=Object.assign([],{dataLength:0});this[Ie]||(e.dataLength=0);let t=this.promise();return this.on("data",r=>{e.push(r),this[Ie]||(e.dataLength+=r.length)}),await t,e}async concat(){if(this[Ie])throw new Error("cannot concat in objectMode");let e=await this.collect();return this[ft]?e.join(""):Buffer.concat(e,e.dataLength)}async promise(){return new Promise((e,t)=>{this.on(le,()=>t(new Error("stream destroyed"))),this.on("error",r=>t(r)),this.on("end",()=>e())})}[Symbol.asyncIterator](){this[We]=!1;let e=!1,t=async()=>(this.pause(),e=!0,{value:void 0,done:!0});return{next:()=>{if(e)return t();let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Lt])return t();let s,i,n=l=>{this.off("data",o),this.off("end",a),this.off(le,u),t(),i(l)},o=l=>{this.off("error",n),this.off("end",a),this.off(le,u),this.pause(),s({value:l,done:!!this[Lt]})},a=()=>{this.off("error",n),this.off("data",o),this.off(le,u),t(),s({done:!0,value:void 0})},u=()=>n(new Error("stream destroyed"));return new Promise((l,c)=>{i=c,s=l,this.once(le,u),this.once("error",n),this.once("end",a),this.once("data",o)})},throw:t,return:t,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[We]=!1;let e=!1,t=()=>(this.pause(),this.off(zu,t),this.off(le,t),this.off("end",t),e=!0,{done:!0,value:void 0}),r=()=>{if(e)return t();let s=this.read();return s===null?t():{done:!1,value:s}};return this.once("end",t),this.once(zu,t),this.once(le,t),{next:r,throw:t,return:t,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(e){if(this[le])return e?this.emit("error",e):this.emit(le),this;this[le]=!0,this[We]=!0,this[we].length=0,this[be]=0;let t=this;return typeof t.close=="function"&&!this[eo]&&t.close(),e?this.emit("error",e):this.emit(le),this}static get isStream(){return JF}},nS=Ft.realpathSync.native,xi={lstatSync:Ft.lstatSync,readdir:Ft.readdir,readdirSync:Ft.readdirSync,readlinkSync:Ft.readlinkSync,realpathSync:nS,promises:{lstat:nr.lstat,readdir:nr.readdir,readlink:nr.readlink,realpath:nr.realpath}},ep=e=>!e||e===xi||e===zF?xi:{...xi,...e,promises:{...xi.promises,...e.promises||{}}},tp=/^\\\\\?\\([a-z]:)\\?$/i,oS=e=>e.replace(/\//g,"\\").replace(tp,"$1\\"),aS=/[\\\/]/,Ye=0,rp=1,sp=2,Ct=4,ip=6,np=8,Pr=10,op=12,Je=15,Ci=~Je,Xu=16,xh=32,Ai=64,dt=128,io=256,ao=512,Ah=Ai|dt|ao,uS=1023,Qu=e=>e.isFile()?np:e.isDirectory()?Ct:e.isSymbolicLink()?Pr:e.isCharacterDevice()?sp:e.isBlockDevice()?ip:e.isSocket()?op:e.isFIFO()?rp:Ye,Rh=new fo({max:2**12}),Ri=e=>{let t=Rh.get(e);if(t)return t;let r=e.normalize("NFKD");return Rh.set(e,r),r},kh=new fo({max:2**12}),no=e=>{let t=kh.get(e);if(t)return t;let r=Ri(e.toLowerCase());return kh.set(e,r),r},Ih=class extends fo{constructor(){super({max:256})}},lS=class extends fo{constructor(e=16*1024){super({maxSize:e,sizeCalculation:t=>t.length+1})}},ap=Symbol("PathScurry setAsCwd"),Le=class{name;root;roots;parent;nocase;isCWD=!1;#e;#r;get dev(){return this.#r}#n;get mode(){return this.#n}#i;get nlink(){return this.#i}#o;get uid(){return this.#o}#b;get gid(){return this.#b}#D;get rdev(){return this.#D}#c;get blksize(){return this.#c}#a;get ino(){return this.#a}#d;get size(){return this.#d}#f;get blocks(){return this.#f}#u;get atimeMs(){return this.#u}#s;get mtimeMs(){return this.#s}#h;get ctimeMs(){return this.#h}#v;get birthtimeMs(){return this.#v}#w;get atime(){return this.#w}#p;get mtime(){return this.#p}#R;get ctime(){return this.#R}#m;get birthtime(){return this.#m}#F;#S;#g;#y;#E;#x;#t;#P;#T;#A;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(e,t=Ye,r,s,i,n,o){this.name=e,this.#F=i?no(e):Ri(e),this.#t=t&uS,this.nocase=i,this.roots=s,this.root=r||this,this.#P=n,this.#g=o.fullpath,this.#E=o.relative,this.#x=o.relativePosix,this.parent=o.parent,this.parent?this.#e=this.parent.#e:this.#e=ep(o.fs)}depth(){return this.#S!==void 0?this.#S:this.parent?this.#S=this.parent.depth()+1:this.#S=0}childrenCache(){return this.#P}resolve(e){if(!e)return this;let t=this.getRootString(e),r=e.substring(t.length).split(this.splitSep);return t?this.getRoot(t).#$(r):this.#$(r)}#$(e){let t=this;for(let r of e)t=t.child(r);return t}children(){let e=this.#P.get(this);if(e)return e;let t=Object.assign([],{provisional:0});return this.#P.set(this,t),this.#t&=~Xu,t}child(e,t){if(e===""||e===".")return this;if(e==="..")return this.parent||this;let r=this.children(),s=this.nocase?no(e):Ri(e);for(let a of r)if(a.#F===s)return a;let i=this.parent?this.sep:"",n=this.#g?this.#g+i+e:void 0,o=this.newChild(e,Ye,{...t,parent:this,fullpath:n});return this.canReaddir()||(o.#t|=dt),r.push(o),o}relative(){if(this.isCWD)return"";if(this.#E!==void 0)return this.#E;let e=this.name,t=this.parent;if(!t)return this.#E=this.name;let r=t.relative();return r+(!r||!t.parent?"":this.sep)+e}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#x!==void 0)return this.#x;let e=this.name,t=this.parent;if(!t)return this.#x=this.fullpathPosix();let r=t.relativePosix();return r+(!r||!t.parent?"":"/")+e}fullpath(){if(this.#g!==void 0)return this.#g;let e=this.name,t=this.parent;if(!t)return this.#g=this.name;let r=t.fullpath()+(t.parent?this.sep:"")+e;return this.#g=r}fullpathPosix(){if(this.#y!==void 0)return this.#y;if(this.sep==="/")return this.#y=this.fullpath();if(!this.parent){let s=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(s)?this.#y=`//?/${s}`:this.#y=s}let e=this.parent,t=e.fullpathPosix(),r=t+(!t||!e.parent?"":"/")+this.name;return this.#y=r}isUnknown(){return(this.#t&Je)===Ye}isType(e){return this[`is${e}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#t&Je)===np}isDirectory(){return(this.#t&Je)===Ct}isCharacterDevice(){return(this.#t&Je)===sp}isBlockDevice(){return(this.#t&Je)===ip}isFIFO(){return(this.#t&Je)===rp}isSocket(){return(this.#t&Je)===op}isSymbolicLink(){return(this.#t&Pr)===Pr}lstatCached(){return this.#t&xh?this:void 0}readlinkCached(){return this.#T}realpathCached(){return this.#A}readdirCached(){let e=this.children();return e.slice(0,e.provisional)}canReadlink(){if(this.#T)return!0;if(!this.parent)return!1;let e=this.#t&Je;return!(e!==Ye&&e!==Pr||this.#t&io||this.#t&dt)}calledReaddir(){return!!(this.#t&Xu)}isENOENT(){return!!(this.#t&dt)}isNamed(e){return this.nocase?this.#F===no(e):this.#F===Ri(e)}async readlink(){let e=this.#T;if(e)return e;if(this.canReadlink()&&this.parent)try{let t=await this.#e.promises.readlink(this.fullpath()),r=(await this.parent.realpath())?.resolve(t);if(r)return this.#T=r}catch(t){this.#_(t.code);return}}readlinkSync(){let e=this.#T;if(e)return e;if(this.canReadlink()&&this.parent)try{let t=this.#e.readlinkSync(this.fullpath()),r=this.parent.realpathSync()?.resolve(t);if(r)return this.#T=r}catch(t){this.#_(t.code);return}}#N(e){this.#t|=Xu;for(let t=e.provisional;t<e.length;t++){let r=e[t];r&&r.#C()}}#C(){this.#t&dt||(this.#t=(this.#t|dt)&Ci,this.#V())}#V(){let e=this.children();e.provisional=0;for(let t of e)t.#C()}#L(){this.#t|=ao,this.#B()}#B(){if(this.#t&Ai)return;let e=this.#t;(e&Je)===Ct&&(e&=Ci),this.#t=e|Ai,this.#V()}#M(e=""){e==="ENOTDIR"||e==="EPERM"?this.#B():e==="ENOENT"?this.#C():this.children().provisional=0}#I(e=""){e==="ENOTDIR"?this.parent.#B():e==="ENOENT"&&this.#C()}#_(e=""){let t=this.#t;t|=io,e==="ENOENT"&&(t|=dt),(e==="EINVAL"||e==="UNKNOWN")&&(t&=Ci),this.#t=t,e==="ENOTDIR"&&this.parent&&this.parent.#B()}#j(e,t){return this.#U(e,t)||this.#q(e,t)}#q(e,t){let r=Qu(e),s=this.newChild(e.name,r,{parent:this}),i=s.#t&Je;return i!==Ct&&i!==Pr&&i!==Ye&&(s.#t|=Ai),t.unshift(s),t.provisional++,s}#U(e,t){for(let r=t.provisional;r<t.length;r++){let s=t[r];if((this.nocase?no(e.name):Ri(e.name))===s.#F)return this.#l(e,s,r,t)}}#l(e,t,r,s){let i=t.name;return t.#t=t.#t&Ci|Qu(e),i!==e.name&&(t.name=e.name),r!==s.provisional&&(r===s.length-1?s.pop():s.splice(r,1),s.unshift(t)),s.provisional++,t}async lstat(){if((this.#t&dt)===0)try{return this.#G(await this.#e.promises.lstat(this.fullpath())),this}catch(e){this.#I(e.code)}}lstatSync(){if((this.#t&dt)===0)try{return this.#G(this.#e.lstatSync(this.fullpath())),this}catch(e){this.#I(e.code)}}#G(e){let{atime:t,atimeMs:r,birthtime:s,birthtimeMs:i,blksize:n,blocks:o,ctime:a,ctimeMs:u,dev:l,gid:c,ino:f,mode:h,mtime:p,mtimeMs:m,nlink:g,rdev:D,size:b,uid:w}=e;this.#w=t,this.#u=r,this.#m=s,this.#v=i,this.#c=n,this.#f=o,this.#R=a,this.#h=u,this.#r=l,this.#b=c,this.#a=f,this.#n=h,this.#p=p,this.#s=m,this.#i=g,this.#D=D,this.#d=b,this.#o=w;let v=Qu(e);this.#t=this.#t&Ci|v|xh,v!==Ye&&v!==Ct&&v!==Pr&&(this.#t|=Ai)}#O=[];#k=!1;#W(e){this.#k=!1;let t=this.#O.slice();this.#O.length=0,t.forEach(r=>r(null,e))}readdirCB(e,t=!1){if(!this.canReaddir()){t?e(null,[]):queueMicrotask(()=>e(null,[]));return}let r=this.children();if(this.calledReaddir()){let i=r.slice(0,r.provisional);t?e(null,i):queueMicrotask(()=>e(null,i));return}if(this.#O.push(e),this.#k)return;this.#k=!0;let s=this.fullpath();this.#e.readdir(s,{withFileTypes:!0},(i,n)=>{if(i)this.#M(i.code),r.provisional=0;else{for(let o of n)this.#j(o,r);this.#N(r)}this.#W(r.slice(0,r.provisional))})}#K;async readdir(){if(!this.canReaddir())return[];let e=this.children();if(this.calledReaddir())return e.slice(0,e.provisional);let t=this.fullpath();if(this.#K)await this.#K;else{let r=()=>{};this.#K=new Promise(s=>r=s);try{for(let s of await this.#e.promises.readdir(t,{withFileTypes:!0}))this.#j(s,e);this.#N(e)}catch(s){this.#M(s.code),e.provisional=0}this.#K=void 0,r()}return e.slice(0,e.provisional)}readdirSync(){if(!this.canReaddir())return[];let e=this.children();if(this.calledReaddir())return e.slice(0,e.provisional);let t=this.fullpath();try{for(let r of this.#e.readdirSync(t,{withFileTypes:!0}))this.#j(r,e);this.#N(e)}catch(r){this.#M(r.code),e.provisional=0}return e.slice(0,e.provisional)}canReaddir(){if(this.#t&Ah)return!1;let e=Je&this.#t;return e===Ye||e===Ct||e===Pr}shouldWalk(e,t){return(this.#t&Ct)===Ct&&!(this.#t&Ah)&&!e.has(this)&&(!t||t(this))}async realpath(){if(this.#A)return this.#A;if(!((ao|io|dt)&this.#t))try{let e=await this.#e.promises.realpath(this.fullpath());return this.#A=this.resolve(e)}catch{this.#L()}}realpathSync(){if(this.#A)return this.#A;if(!((ao|io|dt)&this.#t))try{let e=this.#e.realpathSync(this.fullpath());return this.#A=this.resolve(e)}catch{this.#L()}}[ap](e){if(e===this)return;e.isCWD=!1,this.isCWD=!0;let t=new Set([]),r=[],s=this;for(;s&&s.parent;)t.add(s),s.#E=r.join(this.sep),s.#x=r.join("/"),s=s.parent,r.push("..");for(s=e;s&&s.parent&&!t.has(s);)s.#E=void 0,s.#x=void 0,s=s.parent}},up=class lp extends Le{sep="\\";splitSep=aS;constructor(t,r=Ye,s,i,n,o,a){super(t,r,s,i,n,o,a)}newChild(t,r=Ye,s={}){return new lp(t,r,this.root,this.roots,this.nocase,this.childrenCache(),s)}getRootString(t){return bs.win32.parse(t).root}getRoot(t){if(t=oS(t.toUpperCase()),t===this.root.name)return this.root;for(let[r,s]of Object.entries(this.roots))if(this.sameRoot(t,r))return this.roots[t]=s;return this.roots[t]=new ol(t,this).root}sameRoot(t,r=this.root.name){return t=t.toUpperCase().replace(/\//g,"\\").replace(tp,"$1\\"),t===r}},cp=class fp extends Le{splitSep="/";sep="/";constructor(t,r=Ye,s,i,n,o,a){super(t,r,s,i,n,o,a)}getRootString(t){return t.startsWith("/")?"/":""}getRoot(t){return this.root}newChild(t,r=Ye,s={}){return new fp(t,r,this.root,this.roots,this.nocase,this.childrenCache(),s)}},dp=class{root;rootPath;roots;cwd;#e;#r;#n;nocase;#i;constructor(e=process.cwd(),t,r,{nocase:s,childrenCacheSize:i=16*1024,fs:n=xi}={}){this.#i=ep(n),(e instanceof URL||e.startsWith("file://"))&&(e=(0,Zh.fileURLToPath)(e));let o=t.resolve(e);this.roots=Object.create(null),this.rootPath=this.parseRootPath(o),this.#e=new Ih,this.#r=new Ih,this.#n=new lS(i);let a=o.substring(this.rootPath.length).split(r);if(a.length===1&&!a[0]&&a.pop(),s===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=s,this.root=this.newRoot(this.#i),this.roots[this.rootPath]=this.root;let u=this.root,l=a.length-1,c=t.sep,f=this.rootPath,h=!1;for(let p of a){let m=l--;u=u.child(p,{relative:new Array(m).fill("..").join(c),relativePosix:new Array(m).fill("..").join("/"),fullpath:f+=(h?"":c)+p}),h=!0}this.cwd=u}depth(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.depth()}childrenCache(){return this.#n}resolve(...e){let t="";for(let i=e.length-1;i>=0;i--){let n=e[i];if(!(!n||n===".")&&(t=t?`${n}/${t}`:n,this.isAbsolute(n)))break}let r=this.#e.get(t);if(r!==void 0)return r;let s=this.cwd.resolve(t).fullpath();return this.#e.set(t,s),s}resolvePosix(...e){let t="";for(let i=e.length-1;i>=0;i--){let n=e[i];if(!(!n||n===".")&&(t=t?`${n}/${t}`:n,this.isAbsolute(n)))break}let r=this.#r.get(t);if(r!==void 0)return r;let s=this.cwd.resolve(t).fullpathPosix();return this.#r.set(t,s),s}relative(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.relative()}relativePosix(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.relativePosix()}basename(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.name}dirname(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),(e.parent||e).fullpath()}async readdir(e=this.cwd,t={withFileTypes:!0}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd);let{withFileTypes:r}=t;if(e.canReaddir()){let s=await e.readdir();return r?s:s.map(i=>i.name)}else return[]}readdirSync(e=this.cwd,t={withFileTypes:!0}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd);let{withFileTypes:r=!0}=t;return e.canReaddir()?r?e.readdirSync():e.readdirSync().map(s=>s.name):[]}async lstat(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.lstat()}lstatSync(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.lstatSync()}async readlink(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e.withFileTypes,e=this.cwd);let r=await e.readlink();return t?r:r?.fullpath()}readlinkSync(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e.withFileTypes,e=this.cwd);let r=e.readlinkSync();return t?r:r?.fullpath()}async realpath(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e.withFileTypes,e=this.cwd);let r=await e.realpath();return t?r:r?.fullpath()}realpathSync(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e.withFileTypes,e=this.cwd);let r=e.realpathSync();return t?r:r?.fullpath()}async walk(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=[];(!i||i(e))&&o.push(r?e:e.fullpath());let a=new Set,u=(c,f)=>{a.add(c),c.readdirCB((h,p)=>{if(h)return f(h);let m=p.length;if(!m)return f();let g=()=>{--m===0&&f()};for(let D of p)(!i||i(D))&&o.push(r?D:D.fullpath()),s&&D.isSymbolicLink()?D.realpath().then(b=>b?.isUnknown()?b.lstat():b).then(b=>b?.shouldWalk(a,n)?u(b,g):g()):D.shouldWalk(a,n)?u(D,g):g()},!0)},l=e;return new Promise((c,f)=>{u(l,h=>{if(h)return f(h);c(o)})})}walkSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=[];(!i||i(e))&&o.push(r?e:e.fullpath());let a=new Set([e]);for(let u of a){let l=u.readdirSync();for(let c of l){(!i||i(c))&&o.push(r?c:c.fullpath());let f=c;if(c.isSymbolicLink()){if(!(s&&(f=c.realpathSync())))continue;f.isUnknown()&&f.lstatSync()}f.shouldWalk(a,n)&&a.add(f)}}return o}[Symbol.asyncIterator](){return this.iterate()}iterate(e=this.cwd,t={}){return typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd),this.stream(e,t)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t;(!i||i(e))&&(yield r?e:e.fullpath());let o=new Set([e]);for(let a of o){let u=a.readdirSync();for(let l of u){(!i||i(l))&&(yield r?l:l.fullpath());let c=l;if(l.isSymbolicLink()){if(!(s&&(c=l.realpathSync())))continue;c.isUnknown()&&c.lstatSync()}c.shouldWalk(o,n)&&o.add(c)}}}stream(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=new co({objectMode:!0});(!i||i(e))&&o.write(r?e:e.fullpath());let a=new Set,u=[e],l=0,c=()=>{let f=!1;for(;!f;){let h=u.shift();if(!h){l===0&&o.end();return}l++,a.add(h);let p=(g,D,b=!1)=>{if(g)return o.emit("error",g);if(s&&!b){let w=[];for(let v of D)v.isSymbolicLink()&&w.push(v.realpath().then(E=>E?.isUnknown()?E.lstat():E));if(w.length){Promise.all(w).then(()=>p(null,D,!0));return}}for(let w of D)w&&(!i||i(w))&&(o.write(r?w:w.fullpath())||(f=!0));l--;for(let w of D){let v=w.realpathCached()||w;v.shouldWalk(a,n)&&u.push(v)}f&&!o.flowing?o.once("drain",c):m||c()},m=!0;h.readdirCB(p,!0),m=!1}};return c(),o}streamSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Le||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=new co({objectMode:!0}),a=new Set;(!i||i(e))&&o.write(r?e:e.fullpath());let u=[e],l=0,c=()=>{let f=!1;for(;!f;){let h=u.shift();if(!h){l===0&&o.end();return}l++,a.add(h);let p=h.readdirSync();for(let m of p)(!i||i(m))&&(o.write(r?m:m.fullpath())||(f=!0));l--;for(let m of p){let g=m;if(m.isSymbolicLink()){if(!(s&&(g=m.realpathSync())))continue;g.isUnknown()&&g.lstatSync()}g.shouldWalk(a,n)&&u.push(g)}}f&&!o.flowing&&o.once("drain",c)};return c(),o}chdir(e=this.cwd){let t=this.cwd;this.cwd=typeof e=="string"?this.cwd.resolve(e):e,this.cwd[ap](t)}},ol=class extends dp{sep="\\";constructor(e=process.cwd(),t={}){let{nocase:r=!0}=t;super(e,bs.win32,"\\",{...t,nocase:r}),this.nocase=r;for(let s=this.cwd;s;s=s.parent)s.nocase=this.nocase}parseRootPath(e){return bs.win32.parse(e).root.toUpperCase()}newRoot(e){return new up(this.rootPath,Ct,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")||e.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(e)}},al=class extends dp{sep="/";constructor(e=process.cwd(),t={}){let{nocase:r=!1}=t;super(e,bs.posix,"/",{...t,nocase:r}),this.nocase=r}parseRootPath(e){return"/"}newRoot(e){return new cp(this.rootPath,Ct,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")}},hp=class extends al{constructor(e=process.cwd(),t={}){let{nocase:r=!0}=t;super(e,{...t,nocase:r})}},UB=process.platform==="win32"?up:cp,cS=process.platform==="win32"?ol:process.platform==="darwin"?hp:al,fS=e=>e.length>=1,dS=e=>e.length>=1,hS=Symbol.for("nodejs.util.inspect.custom"),pp=class mp{#e;#r;#n;length;#i;#o;#b;#D;#c;#a;#d=!0;constructor(t,r,s,i){if(!fS(t))throw new TypeError("empty pattern list");if(!dS(r))throw new TypeError("empty glob list");if(r.length!==t.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=t.length,s<0||s>=this.length)throw new TypeError("index out of range");if(this.#e=t,this.#r=r,this.#n=s,this.#i=i,this.#n===0){if(this.isUNC()){let[n,o,a,u,...l]=this.#e,[c,f,h,p,...m]=this.#r;l[0]===""&&(l.shift(),m.shift());let g=[n,o,a,u,""].join("/"),D=[c,f,h,p,""].join("/");this.#e=[g,...l],this.#r=[D,...m],this.length=this.#e.length}else if(this.isDrive()||this.isAbsolute()){let[n,...o]=this.#e,[a,...u]=this.#r;o[0]===""&&(o.shift(),u.shift());let l=n+"/",c=a+"/";this.#e=[l,...o],this.#r=[c,...u],this.length=this.#e.length}}}[hS](){return"Pattern <"+this.#r.slice(this.#n).join("/")+">"}pattern(){return this.#e[this.#n]}isString(){return typeof this.#e[this.#n]=="string"}isGlobstar(){return this.#e[this.#n]===$e}isRegExp(){return this.#e[this.#n]instanceof RegExp}globString(){return this.#b=this.#b||(this.#n===0?this.isAbsolute()?this.#r[0]+this.#r.slice(1).join("/"):this.#r.join("/"):this.#r.slice(this.#n).join("/"))}hasMore(){return this.length>this.#n+1}rest(){return this.#o!==void 0?this.#o:this.hasMore()?(this.#o=new mp(this.#e,this.#r,this.#n+1,this.#i),this.#o.#a=this.#a,this.#o.#c=this.#c,this.#o.#D=this.#D,this.#o):this.#o=null}isUNC(){let t=this.#e;return this.#c!==void 0?this.#c:this.#c=this.#i==="win32"&&this.#n===0&&t[0]===""&&t[1]===""&&typeof t[2]=="string"&&!!t[2]&&typeof t[3]=="string"&&!!t[3]}isDrive(){let t=this.#e;return this.#D!==void 0?this.#D:this.#D=this.#i==="win32"&&this.#n===0&&this.length>1&&typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0])}isAbsolute(){let t=this.#e;return this.#a!==void 0?this.#a:this.#a=t[0]===""&&t.length>1||this.isDrive()||this.isUNC()}root(){let t=this.#e[0];return typeof t=="string"&&this.isAbsolute()&&this.#n===0?t:""}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#d)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#d?!1:(this.#d=!1,!0)}},pS=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",tl=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(e,{nobrace:t,nocase:r,noext:s,noglobstar:i,platform:n=pS}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=n,this.mmopts={dot:!0,nobrace:t,nocase:r,noext:s,noglobstar:i,optimizationLevel:2,platform:n,nocomment:!0,nonegate:!0};for(let o of e)this.add(o)}add(e){let t=new ir(e,this.mmopts);for(let r=0;r<t.set.length;r++){let s=t.set[r],i=t.globParts[r];if(!s||!i)throw new Error("invalid pattern object");for(;s[0]==="."&&i[0]===".";)s.shift(),i.shift();let n=new pp(s,i,0,this.platform),o=new ir(n.globString(),this.mmopts),a=i[i.length-1]==="**",u=n.isAbsolute();u?this.absolute.push(o):this.relative.push(o),a&&(u?this.absoluteChildren.push(o):this.relativeChildren.push(o))}}ignored(e){let t=e.fullpath(),r=`${t}/`,s=e.relative()||".",i=`${s}/`;for(let n of this.relative)if(n.match(s)||n.match(i))return!0;for(let n of this.absolute)if(n.match(t)||n.match(r))return!0;return!1}childrenIgnored(e){let t=e.fullpath()+"/",r=(e.relative()||".")+"/";for(let s of this.relativeChildren)if(s.match(r))return!0;for(let s of this.absoluteChildren)if(s.match(t))return!0;return!1}},mS=class gp{store;constructor(t=new Map){this.store=t}copy(){return new gp(new Map(this.store))}hasWalked(t,r){return this.store.get(t.fullpath())?.has(r.globString())}storeWalked(t,r){let s=t.fullpath(),i=this.store.get(s);i?i.add(r.globString()):this.store.set(s,new Set([r.globString()]))}},gS=class{store=new Map;add(e,t,r){let s=(t?2:0)|(r?1:0),i=this.store.get(e);this.store.set(e,i===void 0?s:s&i)}entries(){return[...this.store.entries()].map(([e,t])=>[e,!!(t&2),!!(t&1)])}},DS=class{store=new Map;add(e,t){if(!e.canReaddir())return;let r=this.store.get(e);r?r.find(s=>s.globString()===t.globString())||r.push(t):this.store.set(e,[t])}get(e){let t=this.store.get(e);if(!t)throw new Error("attempting to walk unknown path");return t}entries(){return this.keys().map(e=>[e,this.store.get(e)])}keys(){return[...this.store.keys()].filter(e=>e.canReaddir())}},_h=class Dp{hasWalkedCache;matches=new gS;subwalks=new DS;patterns;follow;dot;opts;constructor(t,r){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=r?r.copy():new mS}processPatterns(t,r){this.patterns=r;let s=r.map(i=>[t,i]);for(let[i,n]of s){this.hasWalkedCache.storeWalked(i,n);let o=n.root(),a=n.isAbsolute()&&this.opts.absolute!==!1;if(o){i=i.resolve(o==="/"&&this.opts.root!==void 0?this.opts.root:o);let f=n.rest();if(f)n=f;else{this.matches.add(i,!0,!1);continue}}if(i.isENOENT())continue;let u,l,c=!1;for(;typeof(u=n.pattern())=="string"&&(l=n.rest());)i=i.resolve(u),n=l,c=!0;if(u=n.pattern(),l=n.rest(),c){if(this.hasWalkedCache.hasWalked(i,n))continue;this.hasWalkedCache.storeWalked(i,n)}if(typeof u=="string"){let f=u===".."||u===""||u===".";this.matches.add(i.resolve(u),a,f);continue}else if(u===$e){(!i.isSymbolicLink()||this.follow||n.checkFollowGlobstar())&&this.subwalks.add(i,n);let f=l?.pattern(),h=l?.rest();if(!l||(f===""||f===".")&&!h)this.matches.add(i,a,f===""||f===".");else if(f===".."){let p=i.parent||i;h?this.hasWalkedCache.hasWalked(p,h)||this.subwalks.add(p,h):this.matches.add(p,a,!0)}}else u instanceof RegExp&&this.subwalks.add(i,n)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new Dp(this.opts,this.hasWalkedCache)}filterEntries(t,r){let s=this.subwalks.get(t),i=this.child();for(let n of r)for(let o of s){let a=o.isAbsolute(),u=o.pattern(),l=o.rest();u===$e?i.testGlobstar(n,o,l,a):u instanceof RegExp?i.testRegExp(n,u,l,a):i.testString(n,u,l,a)}return i}testGlobstar(t,r,s,i){if((this.dot||!t.name.startsWith("."))&&(r.hasMore()||this.matches.add(t,i,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,r):t.isSymbolicLink()&&(s&&r.checkFollowGlobstar()?this.subwalks.add(t,s):r.markFollowGlobstar()&&this.subwalks.add(t,r)))),s){let n=s.pattern();if(typeof n=="string"&&n!==".."&&n!==""&&n!==".")this.testString(t,n,s.rest(),i);else if(n===".."){let o=t.parent||t;this.subwalks.add(o,s)}else n instanceof RegExp&&this.testRegExp(t,n,s.rest(),i)}}testRegExp(t,r,s,i){r.test(t.name)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}testString(t,r,s,i){t.isNamed(r)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}},yS=(e,t)=>typeof e=="string"?new tl([e],t):Array.isArray(e)?new tl(e,t):e,yp=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#e=[];#r;#n;signal;maxDepth;includeChildMatches;constructor(e,t,r){if(this.patterns=e,this.path=t,this.opts=r,this.#n=!r.posix&&r.platform==="win32"?"\\":"/",this.includeChildMatches=r.includeChildMatches!==!1,(r.ignore||!this.includeChildMatches)&&(this.#r=yS(r.ignore??[],r),!this.includeChildMatches&&typeof this.#r.add!="function")){let s="cannot ignore child matches, ignore lacks add() method.";throw new Error(s)}this.maxDepth=r.maxDepth||1/0,r.signal&&(this.signal=r.signal,this.signal.addEventListener("abort",()=>{this.#e.length=0}))}#i(e){return this.seen.has(e)||!!this.#r?.ignored?.(e)}#o(e){return!!this.#r?.childrenIgnored?.(e)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let e;for(;!this.paused&&(e=this.#e.shift());)e()}onResume(e){this.signal?.aborted||(this.paused?this.#e.push(e):e())}async matchCheck(e,t){if(t&&this.opts.nodir)return;let r;if(this.opts.realpath){if(r=e.realpathCached()||await e.realpath(),!r)return;e=r}let s=e.isUnknown()||this.opts.stat?await e.lstat():e;if(this.opts.follow&&this.opts.nodir&&s?.isSymbolicLink()){let i=await s.realpath();i&&(i.isUnknown()||this.opts.stat)&&await i.lstat()}return this.matchCheckTest(s,t)}matchCheckTest(e,t){return e&&(this.maxDepth===1/0||e.depth()<=this.maxDepth)&&(!t||e.canReaddir())&&(!this.opts.nodir||!e.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!e.isSymbolicLink()||!e.realpathCached()?.isDirectory())&&!this.#i(e)?e:void 0}matchCheckSync(e,t){if(t&&this.opts.nodir)return;let r;if(this.opts.realpath){if(r=e.realpathCached()||e.realpathSync(),!r)return;e=r}let s=e.isUnknown()||this.opts.stat?e.lstatSync():e;if(this.opts.follow&&this.opts.nodir&&s?.isSymbolicLink()){let i=s.realpathSync();i&&(i?.isUnknown()||this.opts.stat)&&i.lstatSync()}return this.matchCheckTest(s,t)}matchFinish(e,t){if(this.#i(e))return;if(!this.includeChildMatches&&this.#r?.add){let i=`${e.relativePosix()}/**`;this.#r.add(i)}let r=this.opts.absolute===void 0?t:this.opts.absolute;this.seen.add(e);let s=this.opts.mark&&e.isDirectory()?this.#n:"";if(this.opts.withFileTypes)this.matchEmit(e);else if(r){let i=this.opts.posix?e.fullpathPosix():e.fullpath();this.matchEmit(i+s)}else{let i=this.opts.posix?e.relativePosix():e.relative(),n=this.opts.dotRelative&&!i.startsWith(".."+this.#n)?"."+this.#n:"";this.matchEmit(i?n+i+s:"."+s)}}async match(e,t,r){let s=await this.matchCheck(e,r);s&&this.matchFinish(s,t)}matchSync(e,t,r){let s=this.matchCheckSync(e,r);s&&this.matchFinish(s,t)}walkCB(e,t,r){this.signal?.aborted&&r(),this.walkCB2(e,t,new _h(this.opts),r)}walkCB2(e,t,r,s){if(this.#o(e))return s();if(this.signal?.aborted&&s(),this.paused){this.onResume(()=>this.walkCB2(e,t,r,s));return}r.processPatterns(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||(i++,this.match(o,a,u).then(()=>n()));for(let o of r.subwalkTargets()){if(this.maxDepth!==1/0&&o.depth()>=this.maxDepth)continue;i++;let a=o.readdirCached();o.calledReaddir()?this.walkCB3(o,a,r,n):o.readdirCB((u,l)=>this.walkCB3(o,l,r,n),!0)}n()}walkCB3(e,t,r,s){r=r.filterEntries(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||(i++,this.match(o,a,u).then(()=>n()));for(let[o,a]of r.subwalks.entries())i++,this.walkCB2(o,a,r.child(),n);n()}walkCBSync(e,t,r){this.signal?.aborted&&r(),this.walkCB2Sync(e,t,new _h(this.opts),r)}walkCB2Sync(e,t,r,s){if(this.#o(e))return s();if(this.signal?.aborted&&s(),this.paused){this.onResume(()=>this.walkCB2Sync(e,t,r,s));return}r.processPatterns(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||this.matchSync(o,a,u);for(let o of r.subwalkTargets()){if(this.maxDepth!==1/0&&o.depth()>=this.maxDepth)continue;i++;let a=o.readdirSync();this.walkCB3Sync(o,a,r,n)}n()}walkCB3Sync(e,t,r,s){r=r.filterEntries(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||this.matchSync(o,a,u);for(let[o,a]of r.subwalks.entries())i++,this.walkCB2Sync(o,a,r.child(),n);n()}},Th=class extends yp{matches=new Set;constructor(e,t,r){super(e,t,r)}matchEmit(e){this.matches.add(e)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((e,t)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?t(this.signal.reason):e(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}},$h=class extends yp{results;constructor(e,t,r){super(e,t,r),this.results=new co({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(e){this.results.write(e),this.results.flowing||this.pause()}stream(){let e=this.path;return e.isUnknown()?e.lstat().then(()=>{this.walkCB(e,this.patterns,()=>this.results.end())}):this.walkCB(e,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}},wS=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",or=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(e,t){if(!t)throw new TypeError("glob options required");if(this.withFileTypes=!!t.withFileTypes,this.signal=t.signal,this.follow=!!t.follow,this.dot=!!t.dot,this.dotRelative=!!t.dotRelative,this.nodir=!!t.nodir,this.mark=!!t.mark,t.cwd?(t.cwd instanceof URL||t.cwd.startsWith("file://"))&&(t.cwd=(0,Kh.fileURLToPath)(t.cwd)):this.cwd="",this.cwd=t.cwd||"",this.root=t.root,this.magicalBraces=!!t.magicalBraces,this.nobrace=!!t.nobrace,this.noext=!!t.noext,this.realpath=!!t.realpath,this.absolute=t.absolute,this.includeChildMatches=t.includeChildMatches!==!1,this.noglobstar=!!t.noglobstar,this.matchBase=!!t.matchBase,this.maxDepth=typeof t.maxDepth=="number"?t.maxDepth:1/0,this.stat=!!t.stat,this.ignore=t.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof e=="string"&&(e=[e]),this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(e=e.map(a=>a.replace(/\\/g,"/"))),this.matchBase){if(t.noglobstar)throw new TypeError("base matching requires globstar");e=e.map(a=>a.includes("/")?a:`./**/${a}`)}if(this.pattern=e,this.platform=t.platform||wS,this.opts={...t,platform:this.platform},t.scurry){if(this.scurry=t.scurry,t.nocase!==void 0&&t.nocase!==t.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let a=t.platform==="win32"?ol:t.platform==="darwin"?hp:t.platform?al:cS;this.scurry=new a(this.cwd,{nocase:t.nocase,fs:t.fs})}this.nocase=this.scurry.nocase;let r=this.platform==="darwin"||this.platform==="win32",s={braceExpandMax:1e4,...t,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:r,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},i=this.pattern.map(a=>new ir(a,s)),[n,o]=i.reduce((a,u)=>(a[0].push(...u.set),a[1].push(...u.globParts),a),[[],[]]);this.patterns=n.map((a,u)=>{let l=o[u];if(!l)throw new Error("invalid pattern object");return new pp(a,l,0,this.platform)})}async walk(){return[...await new Th(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new Th(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new $h(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new $h(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}},wp=(e,t={})=>{Array.isArray(e)||(e=[e]);for(let r of e)if(new ir(r,t).hasMagic())return!0;return!1};bp=ki,vp=Object.assign(ul,{sync:ki}),Ep=Ii,Cp=Object.assign(cl,{sync:Ii}),Fp=Object.assign(ll,{stream:ki,iterate:Ii}),Ze=Object.assign(Ph,{glob:Ph,globSync:ll,sync:Fp,globStream:ul,stream:vp,globStreamSync:ki,streamSync:bp,globIterate:cl,iterate:Cp,globIterateSync:Ii,iterateSync:Ep,Glob:or,hasMagic:wp,escape:il,unescape:Br});Ze.glob=Ze});var Z=_(Se=>{"use strict";var fl=Symbol.for("yaml.alias"),xp=Symbol.for("yaml.document"),po=Symbol.for("yaml.map"),Ap=Symbol.for("yaml.pair"),dl=Symbol.for("yaml.scalar"),mo=Symbol.for("yaml.seq"),Mt=Symbol.for("yaml.node.type"),bS=e=>!!e&&typeof e=="object"&&e[Mt]===fl,vS=e=>!!e&&typeof e=="object"&&e[Mt]===xp,ES=e=>!!e&&typeof e=="object"&&e[Mt]===po,CS=e=>!!e&&typeof e=="object"&&e[Mt]===Ap,Rp=e=>!!e&&typeof e=="object"&&e[Mt]===dl,FS=e=>!!e&&typeof e=="object"&&e[Mt]===mo;function kp(e){if(e&&typeof e=="object")switch(e[Mt]){case po:case mo:return!0}return!1}function SS(e){if(e&&typeof e=="object")switch(e[Mt]){case fl:case po:case dl:case mo:return!0}return!1}var xS=e=>(Rp(e)||kp(e))&&!!e.anchor;Se.ALIAS=fl;Se.DOC=xp;Se.MAP=po;Se.NODE_TYPE=Mt;Se.PAIR=Ap;Se.SCALAR=dl;Se.SEQ=mo;Se.hasAnchor=xS;Se.isAlias=bS;Se.isCollection=kp;Se.isDocument=vS;Se.isMap=ES;Se.isNode=SS;Se.isPair=CS;Se.isScalar=Rp;Se.isSeq=FS});var Ti=_(hl=>{"use strict";var pe=Z(),Ne=Symbol("break visit"),Ip=Symbol("skip children"),St=Symbol("remove node");function go(e,t){let r=_p(t);pe.isDocument(e)?vs(null,e.contents,r,Object.freeze([e]))===St&&(e.contents=null):vs(null,e,r,Object.freeze([]))}go.BREAK=Ne;go.SKIP=Ip;go.REMOVE=St;function vs(e,t,r,s){let i=Tp(e,t,r,s);if(pe.isNode(i)||pe.isPair(i))return $p(e,s,i),vs(e,i,r,s);if(typeof i!="symbol"){if(pe.isCollection(t)){s=Object.freeze(s.concat(t));for(let n=0;n<t.items.length;++n){let o=vs(n,t.items[n],r,s);if(typeof o=="number")n=o-1;else{if(o===Ne)return Ne;o===St&&(t.items.splice(n,1),n-=1)}}}else if(pe.isPair(t)){s=Object.freeze(s.concat(t));let n=vs("key",t.key,r,s);if(n===Ne)return Ne;n===St&&(t.key=null);let o=vs("value",t.value,r,s);if(o===Ne)return Ne;o===St&&(t.value=null)}}return i}async function Do(e,t){let r=_p(t);pe.isDocument(e)?await Es(null,e.contents,r,Object.freeze([e]))===St&&(e.contents=null):await Es(null,e,r,Object.freeze([]))}Do.BREAK=Ne;Do.SKIP=Ip;Do.REMOVE=St;async function Es(e,t,r,s){let i=await Tp(e,t,r,s);if(pe.isNode(i)||pe.isPair(i))return $p(e,s,i),Es(e,i,r,s);if(typeof i!="symbol"){if(pe.isCollection(t)){s=Object.freeze(s.concat(t));for(let n=0;n<t.items.length;++n){let o=await Es(n,t.items[n],r,s);if(typeof o=="number")n=o-1;else{if(o===Ne)return Ne;o===St&&(t.items.splice(n,1),n-=1)}}}else if(pe.isPair(t)){s=Object.freeze(s.concat(t));let n=await Es("key",t.key,r,s);if(n===Ne)return Ne;n===St&&(t.key=null);let o=await Es("value",t.value,r,s);if(o===Ne)return Ne;o===St&&(t.value=null)}}return i}function _p(e){return typeof e=="object"&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function Tp(e,t,r,s){if(typeof r=="function")return r(e,t,s);if(pe.isMap(t))return r.Map?.(e,t,s);if(pe.isSeq(t))return r.Seq?.(e,t,s);if(pe.isPair(t))return r.Pair?.(e,t,s);if(pe.isScalar(t))return r.Scalar?.(e,t,s);if(pe.isAlias(t))return r.Alias?.(e,t,s)}function $p(e,t,r){let s=t[t.length-1];if(pe.isCollection(s))s.items[e]=r;else if(pe.isPair(s))e==="key"?s.key=r:s.value=r;else if(pe.isDocument(s))s.contents=r;else{let i=pe.isAlias(s)?"alias":"scalar";throw new Error(`Cannot replace node with ${i} parent`)}}hl.visit=go;hl.visitAsync=Do});var pl=_(Bp=>{"use strict";var Pp=Z(),AS=Ti(),RS={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},kS=e=>e.replace(/[!,[\]{}]/g,t=>RS[t]),$i=class e{constructor(t,r){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,r)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,r){this.atNextDocument&&(this.yaml={explicit:e.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},e.defaultTags),this.atNextDocument=!1);let s=t.trim().split(/[ \t]+/),i=s.shift();switch(i){case"%TAG":{if(s.length!==2&&(r(0,"%TAG directive should contain exactly two parts"),s.length<2))return!1;let[n,o]=s;return this.tags[n]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,s.length!==1)return r(0,"%YAML directive should contain exactly one part"),!1;let[n]=s;if(n==="1.1"||n==="1.2")return this.yaml.version=n,!0;{let o=/^\d+\.\d+$/.test(n);return r(6,`Unsupported YAML version ${n}`,o),!1}}default:return r(0,`Unknown directive ${i}`,!0),!1}}tagName(t,r){if(t==="!")return"!";if(t[0]!=="!")return r(`Not a valid tag: ${t}`),null;if(t[1]==="<"){let o=t.slice(2,-1);return o==="!"||o==="!!"?(r(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&r("Verbatim tags must end with a >"),o)}let[,s,i]=t.match(/^(.*!)([^!]*)$/s);i||r(`The ${t} tag has no suffix`);let n=this.tags[s];if(n)try{return n+decodeURIComponent(i)}catch(o){return r(String(o)),null}return s==="!"?t:(r(`Could not resolve tag: ${t}`),null)}tagString(t){for(let[r,s]of Object.entries(this.tags))if(t.startsWith(s))return r+kS(t.substring(s.length));return t[0]==="!"?t:`!<${t}>`}toString(t){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],s=Object.entries(this.tags),i;if(t&&s.length>0&&Pp.isNode(t.contents)){let n={};AS.visit(t.contents,(o,a)=>{Pp.isNode(a)&&a.tag&&(n[a.tag]=!0)}),i=Object.keys(n)}else i=[];for(let[n,o]of s)n==="!!"&&o==="tag:yaml.org,2002:"||(!t||i.some(a=>a.startsWith(o)))&&r.push(`%TAG ${n} ${o}`);return r.join(`
55
- `)}};$i.defaultYaml={explicit:!1,version:"1.2"};$i.defaultTags={"!!":"tag:yaml.org,2002:"};Bp.Directives=$i});var yo=_(Pi=>{"use strict";var Op=Z(),IS=Ti();function _S(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let r=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(r)}return!0}function Lp(e){let t=new Set;return IS.visit(e,{Value(r,s){s.anchor&&t.add(s.anchor)}}),t}function Np(e,t){for(let r=1;;++r){let s=`${e}${r}`;if(!t.has(s))return s}}function TS(e,t){let r=[],s=new Map,i=null;return{onAnchor:n=>{r.push(n),i??(i=Lp(e));let o=Np(t,i);return i.add(o),o},setAnchors:()=>{for(let n of r){let o=s.get(n);if(typeof o=="object"&&o.anchor&&(Op.isScalar(o.node)||Op.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=n,a}}},sourceObjects:s}}Pi.anchorIsValid=_S;Pi.anchorNames=Lp;Pi.createNodeAnchors=TS;Pi.findNewAnchor=Np});var ml=_(Mp=>{"use strict";function Bi(e,t,r,s){if(s&&typeof s=="object")if(Array.isArray(s))for(let i=0,n=s.length;i<n;++i){let o=s[i],a=Bi(e,s,String(i),o);a===void 0?delete s[i]:a!==o&&(s[i]=a)}else if(s instanceof Map)for(let i of Array.from(s.keys())){let n=s.get(i),o=Bi(e,s,i,n);o===void 0?s.delete(i):o!==n&&s.set(i,o)}else if(s instanceof Set)for(let i of Array.from(s)){let n=Bi(e,s,i,i);n===void 0?s.delete(i):n!==i&&(s.delete(i),s.add(n))}else for(let[i,n]of Object.entries(s)){let o=Bi(e,s,i,n);o===void 0?delete s[i]:o!==n&&(s[i]=o)}return e.call(t,r,s)}Mp.applyReviver=Bi});var ar=_(qp=>{"use strict";var $S=Z();function jp(e,t,r){if(Array.isArray(e))return e.map((s,i)=>jp(s,String(i),r));if(e&&typeof e.toJSON=="function"){if(!r||!$S.hasAnchor(e))return e.toJSON(t,r);let s={aliasCount:0,count:1,res:void 0};r.anchors.set(e,s),r.onCreate=n=>{s.res=n,delete r.onCreate};let i=e.toJSON(t,r);return r.onCreate&&r.onCreate(i),i}return typeof e=="bigint"&&!r?.keep?Number(e):e}qp.toJS=jp});var wo=_(Gp=>{"use strict";var PS=ml(),Up=Z(),BS=ar(),gl=class{constructor(t){Object.defineProperty(this,Up.NODE_TYPE,{value:t})}clone(){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(t.range=this.range.slice()),t}toJS(t,{mapAsMap:r,maxAliasCount:s,onAnchor:i,reviver:n}={}){if(!Up.isDocument(t))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:t,keep:!0,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},a=BS.toJS(this,"",o);if(typeof i=="function")for(let{count:u,res:l}of o.anchors.values())i(l,u);return typeof n=="function"?PS.applyReviver(n,{"":a},"",a):a}};Gp.NodeBase=gl});var Oi=_(Vp=>{"use strict";var OS=yo(),LS=Ti(),Cs=Z(),NS=wo(),MS=ar(),Dl=class extends NS.NodeBase{constructor(t){super(Cs.ALIAS),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(t,r){let s;r?.aliasResolveCache?s=r.aliasResolveCache:(s=[],LS.visit(t,{Node:(n,o)=>{(Cs.isAlias(o)||Cs.hasAnchor(o))&&s.push(o)}}),r&&(r.aliasResolveCache=s));let i;for(let n of s){if(n===this)break;n.anchor===this.source&&(i=n)}return i}toJSON(t,r){if(!r)return{source:this.source};let{anchors:s,doc:i,maxAliasCount:n}=r,o=this.resolve(i,r);if(!o){let u=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(u)}let a=s.get(o);if(a||(MS.toJS(o,null,r),a=s.get(o)),a?.res===void 0){let u="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(u)}if(n>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=bo(i,o,s)),a.count*a.aliasCount>n)){let u="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(u)}return a.res}toString(t,r,s){let i=`*${this.source}`;if(t){if(OS.anchorIsValid(this.source),t.options.verifyAliasOrder&&!t.anchors.has(this.source)){let n=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(n)}if(t.implicitKey)return`${i} `}return i}};function bo(e,t,r){if(Cs.isAlias(t)){let s=t.resolve(e),i=r&&s&&r.get(s);return i?i.count*i.aliasCount:0}else if(Cs.isCollection(t)){let s=0;for(let i of t.items){let n=bo(e,i,r);n>s&&(s=n)}return s}else if(Cs.isPair(t)){let s=bo(e,t.key,r),i=bo(e,t.value,r);return Math.max(s,i)}return 1}Vp.Alias=Dl});var de=_(yl=>{"use strict";var jS=Z(),qS=wo(),US=ar(),GS=e=>!e||typeof e!="function"&&typeof e!="object",ur=class extends qS.NodeBase{constructor(t){super(jS.SCALAR),this.value=t}toJSON(t,r){return r?.keep?this.value:US.toJS(this.value,t,r)}toString(){return String(this.value)}};ur.BLOCK_FOLDED="BLOCK_FOLDED";ur.BLOCK_LITERAL="BLOCK_LITERAL";ur.PLAIN="PLAIN";ur.QUOTE_DOUBLE="QUOTE_DOUBLE";ur.QUOTE_SINGLE="QUOTE_SINGLE";yl.Scalar=ur;yl.isScalarValue=GS});var Li=_(Kp=>{"use strict";var VS=Oi(),Or=Z(),Wp=de(),WS="tag:yaml.org,2002:";function KS(e,t,r){if(t){let s=r.filter(n=>n.tag===t),i=s.find(n=>!n.format)??s[0];if(!i)throw new Error(`Tag ${t} not found`);return i}return r.find(s=>s.identify?.(e)&&!s.format)}function HS(e,t,r){if(Or.isDocument(e)&&(e=e.contents),Or.isNode(e))return e;if(Or.isPair(e)){let f=r.schema[Or.MAP].createNode?.(r.schema,null,r);return f.items.push(e),f}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<"u"&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:s,onAnchor:i,onTagObj:n,schema:o,sourceObjects:a}=r,u;if(s&&e&&typeof e=="object"){if(u=a.get(e),u)return u.anchor??(u.anchor=i(e)),new VS.Alias(u.anchor);u={anchor:null,node:null},a.set(e,u)}t?.startsWith("!!")&&(t=WS+t.slice(2));let l=KS(e,t,o.tags);if(!l){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){let f=new Wp.Scalar(e);return u&&(u.node=f),f}l=e instanceof Map?o[Or.MAP]:Symbol.iterator in Object(e)?o[Or.SEQ]:o[Or.MAP]}n&&(n(l),delete r.onTagObj);let c=l?.createNode?l.createNode(r.schema,e,r):typeof l?.nodeClass?.from=="function"?l.nodeClass.from(r.schema,e,r):new Wp.Scalar(e);return t?c.tag=t:l.default||(c.tag=l.tag),u&&(u.node=c),c}Kp.createNode=HS});var Eo=_(vo=>{"use strict";var zS=Li(),xt=Z(),JS=wo();function wl(e,t,r){let s=r;for(let i=t.length-1;i>=0;--i){let n=t[i];if(typeof n=="number"&&Number.isInteger(n)&&n>=0){let o=[];o[n]=s,s=o}else s=new Map([[n,s]])}return zS.createNode(s,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}var Hp=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done,bl=class extends JS.NodeBase{constructor(t,r){super(t),Object.defineProperty(this,"schema",{value:r,configurable:!0,enumerable:!1,writable:!0})}clone(t){let r=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(r.schema=t),r.items=r.items.map(s=>xt.isNode(s)||xt.isPair(s)?s.clone(t):s),this.range&&(r.range=this.range.slice()),r}addIn(t,r){if(Hp(t))this.add(r);else{let[s,...i]=t,n=this.get(s,!0);if(xt.isCollection(n))n.addIn(i,r);else if(n===void 0&&this.schema)this.set(s,wl(this.schema,i,r));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${i}`)}}deleteIn(t){let[r,...s]=t;if(s.length===0)return this.delete(r);let i=this.get(r,!0);if(xt.isCollection(i))return i.deleteIn(s);throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`)}getIn(t,r){let[s,...i]=t,n=this.get(s,!0);return i.length===0?!r&&xt.isScalar(n)?n.value:n:xt.isCollection(n)?n.getIn(i,r):void 0}hasAllNullValues(t){return this.items.every(r=>{if(!xt.isPair(r))return!1;let s=r.value;return s==null||t&&xt.isScalar(s)&&s.value==null&&!s.commentBefore&&!s.comment&&!s.tag})}hasIn(t){let[r,...s]=t;if(s.length===0)return this.has(r);let i=this.get(r,!0);return xt.isCollection(i)?i.hasIn(s):!1}setIn(t,r){let[s,...i]=t;if(i.length===0)this.set(s,r);else{let n=this.get(s,!0);if(xt.isCollection(n))n.setIn(i,r);else if(n===void 0&&this.schema)this.set(s,wl(this.schema,i,r));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${i}`)}}};vo.Collection=bl;vo.collectionFromPath=wl;vo.isEmptyPath=Hp});var Ni=_(Co=>{"use strict";var YS=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function vl(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var ZS=(e,t,r)=>e.endsWith(`
54
+ >>> no match, partial?`,e,f,t,h),f===a))}let m;if(typeof l=="string"?(m=c===l,this.debug("string match",l,c,m)):(m=l.test(c),this.debug("pattern match",l,c,m)),!m)return!1}if(n===a&&o===u)return!0;if(n===a)return r;if(o===u)return n===a-1&&e[n]==="";throw new Error("wtf?")}braceExpand(){return Hh(this.pattern,this.options)}parse(e){uo(e);let t=this.options;if(e==="**")return Pe;if(e==="")return"";let r,s=null;(r=e.match(_F))?s=t.dot?$F:TF:(r=e.match(vF))?s=(t.nocase?t.dot?SF:FF:t.dot?CF:EF)(r[1]):(r=e.match(PF))?s=(t.nocase?t.dot?OF:BF:t.dot?LF:NF)(r):(r=e.match(xF))?s=t.dot?RF:AF:(r=e.match(kF))&&(s=IF);let i=Uh.fromGlob(e,this.options).toMMPattern();return s&&typeof i=="object"&&Reflect.defineProperty(i,"test",{value:s}),i}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let t=this.options,r=t.noglobstar?qF:t.dot?UF:GF,s=new Set(t.nocase?["i"]:[]),i=e.map(a=>{let u=a.map(c=>{if(c instanceof RegExp)for(let f of c.flags.split(""))s.add(f);return typeof c=="string"?zF(c):c===Pe?Pe:c._src});u.forEach((c,f)=>{let h=u[f+1],p=u[f-1];c!==Pe||p===Pe||(p===void 0?h!==void 0&&h!==Pe?u[f+1]="(?:\\/|"+r+"\\/)?"+h:u[f]=r:h===void 0?u[f-1]=p+"(?:\\/|\\/"+r+")?":h!==Pe&&(u[f-1]=p+"(?:\\/|\\/"+r+"\\/)"+h,u[f+1]=Pe))});let l=u.filter(c=>c!==Pe);if(this.partial&&l.length>=1){let c=[];for(let f=1;f<=l.length;f++)c.push(l.slice(0,f).join("/"));return"(?:"+c.join("|")+")"}return l.join("/")}).join("|"),[n,o]=e.length>1?["(?:",")"]:["",""];i="^"+n+i+o+"$",this.partial&&(i="^(?:\\/|"+n+i.slice(1,-1)+o+")$"),this.negate&&(i="^(?!"+i+").+$");try{this.regexp=new RegExp(i,[...s].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(e)?["",...e.split(/\/+/)]:e.split(/\/+/)}match(e,t=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&t)return!0;let r=this.options;this.isWindows&&(e=e.split("\\").join("/"));let s=this.slashSplit(e);this.debug(this.pattern,"split",s);let i=this.set;this.debug(this.pattern,"set",i);let n=s[s.length-1];if(!n)for(let o=s.length-2;!n&&o>=0;o--)n=s[o];for(let o=0;o<i.length;o++){let a=i[o],u=s;if(r.matchBase&&a.length===1&&(u=[n]),this.matchOne(u,a,t))return r.flipNegate?!0:!this.negate}return r.flipNegate?!1:this.negate}static defaults(e){return Be.defaults(e).Minimatch}};Be.AST=Uh;Be.Minimatch=nr;Be.escape=il;Be.unescape=Br;JF=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,zh=new Set,el=typeof process=="object"&&process?process:{},Jh=(e,t,r,s)=>{typeof el.emitWarning=="function"?el.emitWarning(e,t,r,s):console.error(`[${r}] ${t}: ${e}`)},lo=globalThis.AbortController,Eh=globalThis.AbortSignal;if(typeof lo>"u"){Eh=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(r,s){this._onabort.push(s)}},lo=class{constructor(){t()}signal=new Eh;abort(r){if(!this.signal.aborted){this.signal.reason=r,this.signal.aborted=!0;for(let s of this.signal._onabort)s(r);this.signal.onabort?.(r)}}};let e=el.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{e&&(e=!1,Jh("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}YF=e=>!zh.has(e),ir=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),Yh=e=>ir(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?oo:null:null,oo=class extends Array{constructor(e){super(e),this.fill(0)}},ZF=class xi{heap;length;static#e=!1;static create(t){let r=Yh(t);if(!r)return[];xi.#e=!0;let s=new xi(t,r);return xi.#e=!1,s}constructor(t,r){if(!xi.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new r(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},fo=class Zh{#e;#r;#n;#i;#o;#b;#D;#c;get perf(){return this.#c}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#a;#d;#f;#u;#s;#h;#v;#w;#p;#R;#m;#F;#S;#g;#y;#E;#x;#t;#P;static unsafeExposeInternals(t){return{starts:t.#S,ttls:t.#g,autopurgeTimers:t.#y,sizes:t.#F,keyMap:t.#f,keyList:t.#u,valList:t.#s,next:t.#h,prev:t.#v,get head(){return t.#w},get tail(){return t.#p},free:t.#R,isBackgroundFetch:r=>t.#l(r),backgroundFetch:(r,s,i,n)=>t.#U(r,s,i,n),moveToTail:r=>t.#O(r),indexes:r=>t.#I(r),rindexes:r=>t.#_(r),isStale:r=>t.#C(r)}}get max(){return this.#e}get maxSize(){return this.#r}get calculatedSize(){return this.#d}get size(){return this.#a}get fetchMethod(){return this.#b}get memoMethod(){return this.#D}get dispose(){return this.#n}get onInsert(){return this.#i}get disposeAfter(){return this.#o}constructor(t){let{max:r=0,ttl:s,ttlResolution:i=1,ttlAutopurge:n,updateAgeOnGet:o,updateAgeOnHas:a,allowStale:u,dispose:l,onInsert:c,disposeAfter:f,noDisposeOnSet:h,noUpdateTTL:p,maxSize:m=0,maxEntrySize:g=0,sizeCalculation:D,fetchMethod:b,memoMethod:w,noDeleteOnFetchRejection:v,noDeleteOnStaleGet:E,allowStaleOnFetchRejection:C,allowStaleOnFetchAbort:x,ignoreFetchAbort:$,perf:F}=t;if(F!==void 0&&typeof F?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(this.#c=F??JF,r!==0&&!ir(r))throw new TypeError("max option must be a nonnegative integer");let R=r?Yh(r):Array;if(!R)throw new Error("invalid max value: "+r);if(this.#e=r,this.#r=m,this.maxEntrySize=g||this.#r,this.sizeCalculation=D,this.sizeCalculation){if(!this.#r&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(w!==void 0&&typeof w!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#D=w,b!==void 0&&typeof b!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#b=b,this.#x=!!b,this.#f=new Map,this.#u=new Array(r).fill(void 0),this.#s=new Array(r).fill(void 0),this.#h=new R(r),this.#v=new R(r),this.#w=0,this.#p=0,this.#R=ZF.create(r),this.#a=0,this.#d=0,typeof l=="function"&&(this.#n=l),typeof c=="function"&&(this.#i=c),typeof f=="function"?(this.#o=f,this.#m=[]):(this.#o=void 0,this.#m=void 0),this.#E=!!this.#n,this.#P=!!this.#i,this.#t=!!this.#o,this.noDisposeOnSet=!!h,this.noUpdateTTL=!!p,this.noDeleteOnFetchRejection=!!v,this.allowStaleOnFetchRejection=!!C,this.allowStaleOnFetchAbort=!!x,this.ignoreFetchAbort=!!$,this.maxEntrySize!==0){if(this.#r!==0&&!ir(this.#r))throw new TypeError("maxSize must be a positive integer if specified");if(!ir(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#V()}if(this.allowStale=!!u,this.noDeleteOnStaleGet=!!E,this.updateAgeOnGet=!!o,this.updateAgeOnHas=!!a,this.ttlResolution=ir(i)||i===0?i:1,this.ttlAutopurge=!!n,this.ttl=s||0,this.ttl){if(!ir(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#T()}if(this.#e===0&&this.ttl===0&&this.#r===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#e&&!this.#r){let W="LRU_CACHE_UNBOUNDED";YF(W)&&(zh.add(W),Jh("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",W,Zh))}}getRemainingTTL(t){return this.#f.has(t)?1/0:0}#T(){let t=new oo(this.#e),r=new oo(this.#e);this.#g=t,this.#S=r;let s=this.ttlAutopurge?new Array(this.#e):void 0;this.#y=s,this.#N=(o,a,u=this.#c.now())=>{if(r[o]=a!==0?u:0,t[o]=a,s?.[o]&&(clearTimeout(s[o]),s[o]=void 0),a!==0&&s){let l=setTimeout(()=>{this.#C(o)&&this.#k(this.#u[o],"expire")},a+1);l.unref&&l.unref(),s[o]=l}},this.#A=o=>{r[o]=t[o]!==0?this.#c.now():0},this.#$=(o,a)=>{if(t[a]){let u=t[a],l=r[a];if(!u||!l)return;o.ttl=u,o.start=l,o.now=i||n();let c=o.now-l;o.remainingTTL=u-c}};let i=0,n=()=>{let o=this.#c.now();if(this.ttlResolution>0){i=o;let a=setTimeout(()=>i=0,this.ttlResolution);a.unref&&a.unref()}return o};this.getRemainingTTL=o=>{let a=this.#f.get(o);if(a===void 0)return 0;let u=t[a],l=r[a];if(!u||!l)return 1/0;let c=(i||n())-l;return u-c},this.#C=o=>{let a=r[o],u=t[o];return!!u&&!!a&&(i||n())-a>u}}#A=()=>{};#$=()=>{};#N=()=>{};#C=()=>!1;#V(){let t=new oo(this.#e);this.#d=0,this.#F=t,this.#L=r=>{this.#d-=t[r],t[r]=0},this.#M=(r,s,i,n)=>{if(this.#l(s))return 0;if(!ir(i))if(n){if(typeof n!="function")throw new TypeError("sizeCalculation must be a function");if(i=n(s,r),!ir(i))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return i},this.#B=(r,s,i)=>{if(t[r]=s,this.#r){let n=this.#r-t[r];for(;this.#d>n;)this.#q(!0)}this.#d+=t[r],i&&(i.entrySize=s,i.totalCalculatedSize=this.#d)}}#L=t=>{};#B=(t,r,s)=>{};#M=(t,r,s,i)=>{if(s||i)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#I({allowStale:t=this.allowStale}={}){if(this.#a)for(let r=this.#p;!(!this.#j(r)||((t||!this.#C(r))&&(yield r),r===this.#w));)r=this.#v[r]}*#_({allowStale:t=this.allowStale}={}){if(this.#a)for(let r=this.#w;!(!this.#j(r)||((t||!this.#C(r))&&(yield r),r===this.#p));)r=this.#h[r]}#j(t){return t!==void 0&&this.#f.get(this.#u[t])===t}*entries(){for(let t of this.#I())this.#s[t]!==void 0&&this.#u[t]!==void 0&&!this.#l(this.#s[t])&&(yield[this.#u[t],this.#s[t]])}*rentries(){for(let t of this.#_())this.#s[t]!==void 0&&this.#u[t]!==void 0&&!this.#l(this.#s[t])&&(yield[this.#u[t],this.#s[t]])}*keys(){for(let t of this.#I()){let r=this.#u[t];r!==void 0&&!this.#l(this.#s[t])&&(yield r)}}*rkeys(){for(let t of this.#_()){let r=this.#u[t];r!==void 0&&!this.#l(this.#s[t])&&(yield r)}}*values(){for(let t of this.#I())this.#s[t]!==void 0&&!this.#l(this.#s[t])&&(yield this.#s[t])}*rvalues(){for(let t of this.#_())this.#s[t]!==void 0&&!this.#l(this.#s[t])&&(yield this.#s[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,r={}){for(let s of this.#I()){let i=this.#s[s],n=this.#l(i)?i.__staleWhileFetching:i;if(n!==void 0&&t(n,this.#u[s],this))return this.get(this.#u[s],r)}}forEach(t,r=this){for(let s of this.#I()){let i=this.#s[s],n=this.#l(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(r,n,this.#u[s],this)}}rforEach(t,r=this){for(let s of this.#_()){let i=this.#s[s],n=this.#l(i)?i.__staleWhileFetching:i;n!==void 0&&t.call(r,n,this.#u[s],this)}}purgeStale(){let t=!1;for(let r of this.#_({allowStale:!0}))this.#C(r)&&(this.#k(this.#u[r],"expire"),t=!0);return t}info(t){let r=this.#f.get(t);if(r===void 0)return;let s=this.#s[r],i=this.#l(s)?s.__staleWhileFetching:s;if(i===void 0)return;let n={value:i};if(this.#g&&this.#S){let o=this.#g[r],a=this.#S[r];if(o&&a){let u=o-(this.#c.now()-a);n.ttl=u,n.start=Date.now()}}return this.#F&&(n.size=this.#F[r]),n}dump(){let t=[];for(let r of this.#I({allowStale:!0})){let s=this.#u[r],i=this.#s[r],n=this.#l(i)?i.__staleWhileFetching:i;if(n===void 0||s===void 0)continue;let o={value:n};if(this.#g&&this.#S){o.ttl=this.#g[r];let a=this.#c.now()-this.#S[r];o.start=Math.floor(Date.now()-a)}this.#F&&(o.size=this.#F[r]),t.unshift([s,o])}return t}load(t){this.clear();for(let[r,s]of t){if(s.start){let i=Date.now()-s.start;s.start=this.#c.now()-i}this.set(r,s.value,s)}}set(t,r,s={}){if(r===void 0)return this.delete(t),this;let{ttl:i=this.ttl,start:n,noDisposeOnSet:o=this.noDisposeOnSet,sizeCalculation:a=this.sizeCalculation,status:u}=s,{noUpdateTTL:l=this.noUpdateTTL}=s,c=this.#M(t,r,s.size||0,a);if(this.maxEntrySize&&c>this.maxEntrySize)return u&&(u.set="miss",u.maxEntrySizeExceeded=!0),this.#k(t,"set"),this;let f=this.#a===0?void 0:this.#f.get(t);if(f===void 0)f=this.#a===0?this.#p:this.#R.length!==0?this.#R.pop():this.#a===this.#e?this.#q(!1):this.#a,this.#u[f]=t,this.#s[f]=r,this.#f.set(t,f),this.#h[this.#p]=f,this.#v[f]=this.#p,this.#p=f,this.#a++,this.#B(f,c,u),u&&(u.set="add"),l=!1,this.#P&&this.#i?.(r,t,"add");else{this.#O(f);let h=this.#s[f];if(r!==h){if(this.#x&&this.#l(h)){h.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:p}=h;p!==void 0&&!o&&(this.#E&&this.#n?.(p,t,"set"),this.#t&&this.#m?.push([p,t,"set"]))}else o||(this.#E&&this.#n?.(h,t,"set"),this.#t&&this.#m?.push([h,t,"set"]));if(this.#L(f),this.#B(f,c,u),this.#s[f]=r,u){u.set="replace";let p=h&&this.#l(h)?h.__staleWhileFetching:h;p!==void 0&&(u.oldValue=p)}}else u&&(u.set="update");this.#P&&this.onInsert?.(r,t,r===h?"update":"replace")}if(i!==0&&!this.#g&&this.#T(),this.#g&&(l||this.#N(f,i,n),u&&this.#$(u,f)),!o&&this.#t&&this.#m){let h=this.#m,p;for(;p=h?.shift();)this.#o?.(...p)}return this}pop(){try{for(;this.#a;){let t=this.#s[this.#w];if(this.#q(!0),this.#l(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#t&&this.#m){let t=this.#m,r;for(;r=t?.shift();)this.#o?.(...r)}}}#q(t){let r=this.#w,s=this.#u[r],i=this.#s[r];return this.#x&&this.#l(i)?i.__abortController.abort(new Error("evicted")):(this.#E||this.#t)&&(this.#E&&this.#n?.(i,s,"evict"),this.#t&&this.#m?.push([i,s,"evict"])),this.#L(r),this.#y?.[r]&&(clearTimeout(this.#y[r]),this.#y[r]=void 0),t&&(this.#u[r]=void 0,this.#s[r]=void 0,this.#R.push(r)),this.#a===1?(this.#w=this.#p=0,this.#R.length=0):this.#w=this.#h[r],this.#f.delete(s),this.#a--,r}has(t,r={}){let{updateAgeOnHas:s=this.updateAgeOnHas,status:i}=r,n=this.#f.get(t);if(n!==void 0){let o=this.#s[n];if(this.#l(o)&&o.__staleWhileFetching===void 0)return!1;if(this.#C(n))i&&(i.has="stale",this.#$(i,n));else return s&&this.#A(n),i&&(i.has="hit",this.#$(i,n)),!0}else i&&(i.has="miss");return!1}peek(t,r={}){let{allowStale:s=this.allowStale}=r,i=this.#f.get(t);if(i===void 0||!s&&this.#C(i))return;let n=this.#s[i];return this.#l(n)?n.__staleWhileFetching:n}#U(t,r,s,i){let n=r===void 0?void 0:this.#s[r];if(this.#l(n))return n;let o=new lo,{signal:a}=s;a?.addEventListener("abort",()=>o.abort(a.reason),{signal:o.signal});let u={signal:o.signal,options:s,context:i},l=(g,D=!1)=>{let{aborted:b}=o.signal,w=s.ignoreFetchAbort&&g!==void 0,v=s.ignoreFetchAbort||!!(s.allowStaleOnFetchAbort&&g!==void 0);if(s.status&&(b&&!D?(s.status.fetchAborted=!0,s.status.fetchError=o.signal.reason,w&&(s.status.fetchAbortIgnored=!0)):s.status.fetchResolved=!0),b&&!w&&!D)return f(o.signal.reason,v);let E=p,C=this.#s[r];return(C===p||w&&D&&C===void 0)&&(g===void 0?E.__staleWhileFetching!==void 0?this.#s[r]=E.__staleWhileFetching:this.#k(t,"fetch"):(s.status&&(s.status.fetchUpdated=!0),this.set(t,g,u.options))),g},c=g=>(s.status&&(s.status.fetchRejected=!0,s.status.fetchError=g),f(g,!1)),f=(g,D)=>{let{aborted:b}=o.signal,w=b&&s.allowStaleOnFetchAbort,v=w||s.allowStaleOnFetchRejection,E=v||s.noDeleteOnFetchRejection,C=p;if(this.#s[r]===p&&(!E||!D&&C.__staleWhileFetching===void 0?this.#k(t,"fetch"):w||(this.#s[r]=C.__staleWhileFetching)),v)return s.status&&C.__staleWhileFetching!==void 0&&(s.status.returnedStale=!0),C.__staleWhileFetching;if(C.__returned===C)throw g},h=(g,D)=>{let b=this.#b?.(t,n,u);b&&b instanceof Promise&&b.then(w=>g(w===void 0?void 0:w),D),o.signal.addEventListener("abort",()=>{(!s.ignoreFetchAbort||s.allowStaleOnFetchAbort)&&(g(void 0),s.allowStaleOnFetchAbort&&(g=w=>l(w,!0)))})};s.status&&(s.status.fetchDispatched=!0);let p=new Promise(h).then(l,c),m=Object.assign(p,{__abortController:o,__staleWhileFetching:n,__returned:void 0});return r===void 0?(this.set(t,m,{...u.options,status:void 0}),r=this.#f.get(t)):this.#s[r]=m,m}#l(t){if(!this.#x)return!1;let r=t;return!!r&&r instanceof Promise&&r.hasOwnProperty("__staleWhileFetching")&&r.__abortController instanceof lo}async fetch(t,r={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,ttl:o=this.ttl,noDisposeOnSet:a=this.noDisposeOnSet,size:u=0,sizeCalculation:l=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:h=this.allowStaleOnFetchRejection,ignoreFetchAbort:p=this.ignoreFetchAbort,allowStaleOnFetchAbort:m=this.allowStaleOnFetchAbort,context:g,forceRefresh:D=!1,status:b,signal:w}=r;if(!this.#x)return b&&(b.fetch="get"),this.get(t,{allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,status:b});let v={allowStale:s,updateAgeOnGet:i,noDeleteOnStaleGet:n,ttl:o,noDisposeOnSet:a,size:u,sizeCalculation:l,noUpdateTTL:c,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:h,allowStaleOnFetchAbort:m,ignoreFetchAbort:p,status:b,signal:w},E=this.#f.get(t);if(E===void 0){b&&(b.fetch="miss");let C=this.#U(t,E,v,g);return C.__returned=C}else{let C=this.#s[E];if(this.#l(C)){let R=s&&C.__staleWhileFetching!==void 0;return b&&(b.fetch="inflight",R&&(b.returnedStale=!0)),R?C.__staleWhileFetching:C.__returned=C}let x=this.#C(E);if(!D&&!x)return b&&(b.fetch="hit"),this.#O(E),i&&this.#A(E),b&&this.#$(b,E),C;let $=this.#U(t,E,v,g),F=$.__staleWhileFetching!==void 0&&s;return b&&(b.fetch=x?"stale":"refresh",F&&x&&(b.returnedStale=!0)),F?$.__staleWhileFetching:$.__returned=$}}async forceFetch(t,r={}){let s=await this.fetch(t,r);if(s===void 0)throw new Error("fetch() returned undefined");return s}memo(t,r={}){let s=this.#D;if(!s)throw new Error("no memoMethod provided to constructor");let{context:i,forceRefresh:n,...o}=r,a=this.get(t,o);if(!n&&a!==void 0)return a;let u=s(t,a,{options:o,context:i});return this.set(t,u,o),u}get(t,r={}){let{allowStale:s=this.allowStale,updateAgeOnGet:i=this.updateAgeOnGet,noDeleteOnStaleGet:n=this.noDeleteOnStaleGet,status:o}=r,a=this.#f.get(t);if(a!==void 0){let u=this.#s[a],l=this.#l(u);return o&&this.#$(o,a),this.#C(a)?(o&&(o.get="stale"),l?(o&&s&&u.__staleWhileFetching!==void 0&&(o.returnedStale=!0),s?u.__staleWhileFetching:void 0):(n||this.#k(t,"expire"),o&&s&&(o.returnedStale=!0),s?u:void 0)):(o&&(o.get="hit"),l?u.__staleWhileFetching:(this.#O(a),i&&this.#A(a),u))}else o&&(o.get="miss")}#G(t,r){this.#v[r]=t,this.#h[t]=r}#O(t){t!==this.#p&&(t===this.#w?this.#w=this.#h[t]:this.#G(this.#v[t],this.#h[t]),this.#G(this.#p,t),this.#p=t)}delete(t){return this.#k(t,"delete")}#k(t,r){let s=!1;if(this.#a!==0){let i=this.#f.get(t);if(i!==void 0)if(this.#y?.[i]&&(clearTimeout(this.#y?.[i]),this.#y[i]=void 0),s=!0,this.#a===1)this.#W(r);else{this.#L(i);let n=this.#s[i];if(this.#l(n)?n.__abortController.abort(new Error("deleted")):(this.#E||this.#t)&&(this.#E&&this.#n?.(n,t,r),this.#t&&this.#m?.push([n,t,r])),this.#f.delete(t),this.#u[i]=void 0,this.#s[i]=void 0,i===this.#p)this.#p=this.#v[i];else if(i===this.#w)this.#w=this.#h[i];else{let o=this.#v[i];this.#h[o]=this.#h[i];let a=this.#h[i];this.#v[a]=this.#v[i]}this.#a--,this.#R.push(i)}}if(this.#t&&this.#m?.length){let i=this.#m,n;for(;n=i?.shift();)this.#o?.(...n)}return s}clear(){return this.#W("delete")}#W(t){for(let r of this.#_({allowStale:!0})){let s=this.#s[r];if(this.#l(s))s.__abortController.abort(new Error("deleted"));else{let i=this.#u[r];this.#E&&this.#n?.(s,i,t),this.#t&&this.#m?.push([s,i,t])}}if(this.#f.clear(),this.#s.fill(void 0),this.#u.fill(void 0),this.#g&&this.#S){this.#g.fill(0),this.#S.fill(0);for(let r of this.#y??[])r!==void 0&&clearTimeout(r);this.#y?.fill(void 0)}if(this.#F&&this.#F.fill(0),this.#w=0,this.#p=0,this.#R.length=0,this.#d=0,this.#a=0,this.#t&&this.#m){let r=this.#m,s;for(;s=r?.shift();)this.#o?.(...s)}}},Ch=typeof process=="object"&&process?process:{stdout:null,stderr:null},QF=e=>!!e&&typeof e=="object"&&(e instanceof co||e instanceof nl.default||eS(e)||tS(e)),eS=e=>!!e&&typeof e=="object"&&e instanceof ho.EventEmitter&&typeof e.pipe=="function"&&e.pipe!==nl.default.Writable.prototype.pipe,tS=e=>!!e&&typeof e=="object"&&e instanceof ho.EventEmitter&&typeof e.write=="function"&&typeof e.end=="function",Lt=Symbol("EOF"),Nt=Symbol("maybeEmitEnd"),sr=Symbol("emittedEnd"),Qn=Symbol("emittingEnd"),bi=Symbol("emittedError"),eo=Symbol("closed"),Fh=Symbol("read"),to=Symbol("flush"),Sh=Symbol("flushChunk"),ft=Symbol("encoding"),ys=Symbol("decoder"),we=Symbol("flowing"),vi=Symbol("paused"),ws=Symbol("resume"),be=Symbol("buffer"),$e=Symbol("pipes"),ve=Symbol("bufferLength"),Ku=Symbol("bufferPush"),ro=Symbol("bufferShift"),_e=Symbol("objectMode"),le=Symbol("destroyed"),zu=Symbol("error"),Ju=Symbol("emitData"),xh=Symbol("emitEnd"),Yu=Symbol("emitEnd2"),Et=Symbol("async"),Zu=Symbol("abort"),so=Symbol("aborted"),Ei=Symbol("signal"),$r=Symbol("dataListeners"),He=Symbol("discarded"),Ci=e=>Promise.resolve().then(e),rS=e=>e(),sS=e=>e==="end"||e==="finish"||e==="prefinish",iS=e=>e instanceof ArrayBuffer||!!e&&typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,nS=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),ep=class{src;dest;opts;ondrain;constructor(e,t,r){this.src=e,this.dest=t,this.opts=r,this.ondrain=()=>e[ws](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(e){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},oS=class extends ep{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,t,r){super(e,t,r),this.proxyErrors=s=>this.dest.emit("error",s),e.on("error",this.proxyErrors)}},aS=e=>!!e.objectMode,uS=e=>!e.objectMode&&!!e.encoding&&e.encoding!=="buffer",co=class extends ho.EventEmitter{[we]=!1;[vi]=!1;[$e]=[];[be]=[];[_e];[ft];[Et];[ys];[Lt]=!1;[sr]=!1;[Qn]=!1;[eo]=!1;[bi]=null;[ve]=0;[le]=!1;[Ei];[so]=!1;[$r]=0;[He]=!1;writable=!0;readable=!0;constructor(...e){let t=e[0]||{};if(super(),t.objectMode&&typeof t.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");aS(t)?(this[_e]=!0,this[ft]=null):uS(t)?(this[ft]=t.encoding,this[_e]=!1):(this[_e]=!1,this[ft]=null),this[Et]=!!t.async,this[ys]=this[ft]?new Qh.StringDecoder(this[ft]):null,t&&t.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[be]}),t&&t.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[$e]});let{signal:r}=t;r&&(this[Ei]=r,r.aborted?this[Zu]():r.addEventListener("abort",()=>this[Zu]()))}get bufferLength(){return this[ve]}get encoding(){return this[ft]}set encoding(e){throw new Error("Encoding must be set at instantiation time")}setEncoding(e){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[_e]}set objectMode(e){throw new Error("objectMode must be set at instantiation time")}get async(){return this[Et]}set async(e){this[Et]=this[Et]||!!e}[Zu](){this[so]=!0,this.emit("abort",this[Ei]?.reason),this.destroy(this[Ei]?.reason)}get aborted(){return this[so]}set aborted(e){}write(e,t,r){if(this[so])return!1;if(this[Lt])throw new Error("write after end");if(this[le])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof t=="function"&&(r=t,t="utf8"),t||(t="utf8");let s=this[Et]?Ci:rS;if(!this[_e]&&!Buffer.isBuffer(e)){if(nS(e))e=Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if(iS(e))e=Buffer.from(e);else if(typeof e!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[_e]?(this[we]&&this[ve]!==0&&this[to](!0),this[we]?this.emit("data",e):this[Ku](e),this[ve]!==0&&this.emit("readable"),r&&s(r),this[we]):e.length?(typeof e=="string"&&!(t===this[ft]&&!this[ys]?.lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[ft]&&(e=this[ys].write(e)),this[we]&&this[ve]!==0&&this[to](!0),this[we]?this.emit("data",e):this[Ku](e),this[ve]!==0&&this.emit("readable"),r&&s(r),this[we]):(this[ve]!==0&&this.emit("readable"),r&&s(r),this[we])}read(e){if(this[le])return null;if(this[He]=!1,this[ve]===0||e===0||e&&e>this[ve])return this[Nt](),null;this[_e]&&(e=null),this[be].length>1&&!this[_e]&&(this[be]=[this[ft]?this[be].join(""):Buffer.concat(this[be],this[ve])]);let t=this[Fh](e||null,this[be][0]);return this[Nt](),t}[Fh](e,t){if(this[_e])this[ro]();else{let r=t;e===r.length||e===null?this[ro]():typeof r=="string"?(this[be][0]=r.slice(e),t=r.slice(0,e),this[ve]-=e):(this[be][0]=r.subarray(e),t=r.subarray(0,e),this[ve]-=e)}return this.emit("data",t),!this[be].length&&!this[Lt]&&this.emit("drain"),t}end(e,t,r){return typeof e=="function"&&(r=e,e=void 0),typeof t=="function"&&(r=t,t="utf8"),e!==void 0&&this.write(e,t),r&&this.once("end",r),this[Lt]=!0,this.writable=!1,(this[we]||!this[vi])&&this[Nt](),this}[ws](){this[le]||(!this[$r]&&!this[$e].length&&(this[He]=!0),this[vi]=!1,this[we]=!0,this.emit("resume"),this[be].length?this[to]():this[Lt]?this[Nt]():this.emit("drain"))}resume(){return this[ws]()}pause(){this[we]=!1,this[vi]=!0,this[He]=!1}get destroyed(){return this[le]}get flowing(){return this[we]}get paused(){return this[vi]}[Ku](e){this[_e]?this[ve]+=1:this[ve]+=e.length,this[be].push(e)}[ro](){return this[_e]?this[ve]-=1:this[ve]-=this[be][0].length,this[be].shift()}[to](e=!1){do;while(this[Sh](this[ro]())&&this[be].length);!e&&!this[be].length&&!this[Lt]&&this.emit("drain")}[Sh](e){return this.emit("data",e),this[we]}pipe(e,t){if(this[le])return e;this[He]=!1;let r=this[sr];return t=t||{},e===Ch.stdout||e===Ch.stderr?t.end=!1:t.end=t.end!==!1,t.proxyErrors=!!t.proxyErrors,r?t.end&&e.end():(this[$e].push(t.proxyErrors?new oS(this,e,t):new ep(this,e,t)),this[Et]?Ci(()=>this[ws]()):this[ws]()),e}unpipe(e){let t=this[$e].find(r=>r.dest===e);t&&(this[$e].length===1?(this[we]&&this[$r]===0&&(this[we]=!1),this[$e]=[]):this[$e].splice(this[$e].indexOf(t),1),t.unpipe())}addListener(e,t){return this.on(e,t)}on(e,t){let r=super.on(e,t);if(e==="data")this[He]=!1,this[$r]++,!this[$e].length&&!this[we]&&this[ws]();else if(e==="readable"&&this[ve]!==0)super.emit("readable");else if(sS(e)&&this[sr])super.emit(e),this.removeAllListeners(e);else if(e==="error"&&this[bi]){let s=t;this[Et]?Ci(()=>s.call(this,this[bi])):s.call(this,this[bi])}return r}removeListener(e,t){return this.off(e,t)}off(e,t){let r=super.off(e,t);return e==="data"&&(this[$r]=this.listeners("data").length,this[$r]===0&&!this[He]&&!this[$e].length&&(this[we]=!1)),r}removeAllListeners(e){let t=super.removeAllListeners(e);return(e==="data"||e===void 0)&&(this[$r]=0,!this[He]&&!this[$e].length&&(this[we]=!1)),t}get emittedEnd(){return this[sr]}[Nt](){!this[Qn]&&!this[sr]&&!this[le]&&this[be].length===0&&this[Lt]&&(this[Qn]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[eo]&&this.emit("close"),this[Qn]=!1)}emit(e,...t){let r=t[0];if(e!=="error"&&e!=="close"&&e!==le&&this[le])return!1;if(e==="data")return!this[_e]&&!r?!1:this[Et]?(Ci(()=>this[Ju](r)),!0):this[Ju](r);if(e==="end")return this[xh]();if(e==="close"){if(this[eo]=!0,!this[sr]&&!this[le])return!1;let i=super.emit("close");return this.removeAllListeners("close"),i}else if(e==="error"){this[bi]=r,super.emit(zu,r);let i=!this[Ei]||this.listeners("error").length?super.emit("error",r):!1;return this[Nt](),i}else if(e==="resume"){let i=super.emit("resume");return this[Nt](),i}else if(e==="finish"||e==="prefinish"){let i=super.emit(e);return this.removeAllListeners(e),i}let s=super.emit(e,...t);return this[Nt](),s}[Ju](e){for(let r of this[$e])r.dest.write(e)===!1&&this.pause();let t=this[He]?!1:super.emit("data",e);return this[Nt](),t}[xh](){return this[sr]?!1:(this[sr]=!0,this.readable=!1,this[Et]?(Ci(()=>this[Yu]()),!0):this[Yu]())}[Yu](){if(this[ys]){let t=this[ys].end();if(t){for(let r of this[$e])r.dest.write(t);this[He]||super.emit("data",t)}}for(let t of this[$e])t.end();let e=super.emit("end");return this.removeAllListeners("end"),e}async collect(){let e=Object.assign([],{dataLength:0});this[_e]||(e.dataLength=0);let t=this.promise();return this.on("data",r=>{e.push(r),this[_e]||(e.dataLength+=r.length)}),await t,e}async concat(){if(this[_e])throw new Error("cannot concat in objectMode");let e=await this.collect();return this[ft]?e.join(""):Buffer.concat(e,e.dataLength)}async promise(){return new Promise((e,t)=>{this.on(le,()=>t(new Error("stream destroyed"))),this.on("error",r=>t(r)),this.on("end",()=>e())})}[Symbol.asyncIterator](){this[He]=!1;let e=!1,t=async()=>(this.pause(),e=!0,{value:void 0,done:!0});return{next:()=>{if(e)return t();let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Lt])return t();let s,i,n=l=>{this.off("data",o),this.off("end",a),this.off(le,u),t(),i(l)},o=l=>{this.off("error",n),this.off("end",a),this.off(le,u),this.pause(),s({value:l,done:!!this[Lt]})},a=()=>{this.off("error",n),this.off("data",o),this.off(le,u),t(),s({done:!0,value:void 0})},u=()=>n(new Error("stream destroyed"));return new Promise((l,c)=>{i=c,s=l,this.once(le,u),this.once("error",n),this.once("end",a),this.once("data",o)})},throw:t,return:t,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[He]=!1;let e=!1,t=()=>(this.pause(),this.off(zu,t),this.off(le,t),this.off("end",t),e=!0,{done:!0,value:void 0}),r=()=>{if(e)return t();let s=this.read();return s===null?t():{done:!1,value:s}};return this.once("end",t),this.once(zu,t),this.once(le,t),{next:r,throw:t,return:t,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(e){if(this[le])return e?this.emit("error",e):this.emit(le),this;this[le]=!0,this[He]=!0,this[be].length=0,this[ve]=0;let t=this;return typeof t.close=="function"&&!this[eo]&&t.close(),e?this.emit("error",e):this.emit(le),this}static get isStream(){return QF}},lS=Ft.realpathSync.native,Ai={lstatSync:Ft.lstatSync,readdir:Ft.readdir,readdirSync:Ft.readdirSync,readlinkSync:Ft.readlinkSync,realpathSync:lS,promises:{lstat:or.lstat,readdir:or.readdir,readlink:or.readlink,realpath:or.realpath}},tp=e=>!e||e===Ai||e===XF?Ai:{...Ai,...e,promises:{...Ai.promises,...e.promises||{}}},rp=/^\\\\\?\\([a-z]:)\\?$/i,cS=e=>e.replace(/\//g,"\\").replace(rp,"$1\\"),fS=/[\\\/]/,Ze=0,sp=1,ip=2,Ct=4,np=6,op=8,Pr=10,ap=12,Ye=15,Fi=~Ye,Xu=16,Ah=32,Ri=64,dt=128,io=256,ao=512,Rh=Ri|dt|ao,dS=1023,Qu=e=>e.isFile()?op:e.isDirectory()?Ct:e.isSymbolicLink()?Pr:e.isCharacterDevice()?ip:e.isBlockDevice()?np:e.isSocket()?ap:e.isFIFO()?sp:Ze,kh=new fo({max:2**12}),ki=e=>{let t=kh.get(e);if(t)return t;let r=e.normalize("NFKD");return kh.set(e,r),r},Ih=new fo({max:2**12}),no=e=>{let t=Ih.get(e);if(t)return t;let r=ki(e.toLowerCase());return Ih.set(e,r),r},_h=class extends fo{constructor(){super({max:256})}},hS=class extends fo{constructor(e=16*1024){super({maxSize:e,sizeCalculation:t=>t.length+1})}},up=Symbol("PathScurry setAsCwd"),Ne=class{name;root;roots;parent;nocase;isCWD=!1;#e;#r;get dev(){return this.#r}#n;get mode(){return this.#n}#i;get nlink(){return this.#i}#o;get uid(){return this.#o}#b;get gid(){return this.#b}#D;get rdev(){return this.#D}#c;get blksize(){return this.#c}#a;get ino(){return this.#a}#d;get size(){return this.#d}#f;get blocks(){return this.#f}#u;get atimeMs(){return this.#u}#s;get mtimeMs(){return this.#s}#h;get ctimeMs(){return this.#h}#v;get birthtimeMs(){return this.#v}#w;get atime(){return this.#w}#p;get mtime(){return this.#p}#R;get ctime(){return this.#R}#m;get birthtime(){return this.#m}#F;#S;#g;#y;#E;#x;#t;#P;#T;#A;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(e,t=Ze,r,s,i,n,o){this.name=e,this.#F=i?no(e):ki(e),this.#t=t&dS,this.nocase=i,this.roots=s,this.root=r||this,this.#P=n,this.#g=o.fullpath,this.#E=o.relative,this.#x=o.relativePosix,this.parent=o.parent,this.parent?this.#e=this.parent.#e:this.#e=tp(o.fs)}depth(){return this.#S!==void 0?this.#S:this.parent?this.#S=this.parent.depth()+1:this.#S=0}childrenCache(){return this.#P}resolve(e){if(!e)return this;let t=this.getRootString(e),r=e.substring(t.length).split(this.splitSep);return t?this.getRoot(t).#$(r):this.#$(r)}#$(e){let t=this;for(let r of e)t=t.child(r);return t}children(){let e=this.#P.get(this);if(e)return e;let t=Object.assign([],{provisional:0});return this.#P.set(this,t),this.#t&=~Xu,t}child(e,t){if(e===""||e===".")return this;if(e==="..")return this.parent||this;let r=this.children(),s=this.nocase?no(e):ki(e);for(let a of r)if(a.#F===s)return a;let i=this.parent?this.sep:"",n=this.#g?this.#g+i+e:void 0,o=this.newChild(e,Ze,{...t,parent:this,fullpath:n});return this.canReaddir()||(o.#t|=dt),r.push(o),o}relative(){if(this.isCWD)return"";if(this.#E!==void 0)return this.#E;let e=this.name,t=this.parent;if(!t)return this.#E=this.name;let r=t.relative();return r+(!r||!t.parent?"":this.sep)+e}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#x!==void 0)return this.#x;let e=this.name,t=this.parent;if(!t)return this.#x=this.fullpathPosix();let r=t.relativePosix();return r+(!r||!t.parent?"":"/")+e}fullpath(){if(this.#g!==void 0)return this.#g;let e=this.name,t=this.parent;if(!t)return this.#g=this.name;let r=t.fullpath()+(t.parent?this.sep:"")+e;return this.#g=r}fullpathPosix(){if(this.#y!==void 0)return this.#y;if(this.sep==="/")return this.#y=this.fullpath();if(!this.parent){let s=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(s)?this.#y=`//?/${s}`:this.#y=s}let e=this.parent,t=e.fullpathPosix(),r=t+(!t||!e.parent?"":"/")+this.name;return this.#y=r}isUnknown(){return(this.#t&Ye)===Ze}isType(e){return this[`is${e}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#t&Ye)===op}isDirectory(){return(this.#t&Ye)===Ct}isCharacterDevice(){return(this.#t&Ye)===ip}isBlockDevice(){return(this.#t&Ye)===np}isFIFO(){return(this.#t&Ye)===sp}isSocket(){return(this.#t&Ye)===ap}isSymbolicLink(){return(this.#t&Pr)===Pr}lstatCached(){return this.#t&Ah?this:void 0}readlinkCached(){return this.#T}realpathCached(){return this.#A}readdirCached(){let e=this.children();return e.slice(0,e.provisional)}canReadlink(){if(this.#T)return!0;if(!this.parent)return!1;let e=this.#t&Ye;return!(e!==Ze&&e!==Pr||this.#t&io||this.#t&dt)}calledReaddir(){return!!(this.#t&Xu)}isENOENT(){return!!(this.#t&dt)}isNamed(e){return this.nocase?this.#F===no(e):this.#F===ki(e)}async readlink(){let e=this.#T;if(e)return e;if(this.canReadlink()&&this.parent)try{let t=await this.#e.promises.readlink(this.fullpath()),r=(await this.parent.realpath())?.resolve(t);if(r)return this.#T=r}catch(t){this.#_(t.code);return}}readlinkSync(){let e=this.#T;if(e)return e;if(this.canReadlink()&&this.parent)try{let t=this.#e.readlinkSync(this.fullpath()),r=this.parent.realpathSync()?.resolve(t);if(r)return this.#T=r}catch(t){this.#_(t.code);return}}#N(e){this.#t|=Xu;for(let t=e.provisional;t<e.length;t++){let r=e[t];r&&r.#C()}}#C(){this.#t&dt||(this.#t=(this.#t|dt)&Fi,this.#V())}#V(){let e=this.children();e.provisional=0;for(let t of e)t.#C()}#L(){this.#t|=ao,this.#B()}#B(){if(this.#t&Ri)return;let e=this.#t;(e&Ye)===Ct&&(e&=Fi),this.#t=e|Ri,this.#V()}#M(e=""){e==="ENOTDIR"||e==="EPERM"?this.#B():e==="ENOENT"?this.#C():this.children().provisional=0}#I(e=""){e==="ENOTDIR"?this.parent.#B():e==="ENOENT"&&this.#C()}#_(e=""){let t=this.#t;t|=io,e==="ENOENT"&&(t|=dt),(e==="EINVAL"||e==="UNKNOWN")&&(t&=Fi),this.#t=t,e==="ENOTDIR"&&this.parent&&this.parent.#B()}#j(e,t){return this.#U(e,t)||this.#q(e,t)}#q(e,t){let r=Qu(e),s=this.newChild(e.name,r,{parent:this}),i=s.#t&Ye;return i!==Ct&&i!==Pr&&i!==Ze&&(s.#t|=Ri),t.unshift(s),t.provisional++,s}#U(e,t){for(let r=t.provisional;r<t.length;r++){let s=t[r];if((this.nocase?no(e.name):ki(e.name))===s.#F)return this.#l(e,s,r,t)}}#l(e,t,r,s){let i=t.name;return t.#t=t.#t&Fi|Qu(e),i!==e.name&&(t.name=e.name),r!==s.provisional&&(r===s.length-1?s.pop():s.splice(r,1),s.unshift(t)),s.provisional++,t}async lstat(){if((this.#t&dt)===0)try{return this.#G(await this.#e.promises.lstat(this.fullpath())),this}catch(e){this.#I(e.code)}}lstatSync(){if((this.#t&dt)===0)try{return this.#G(this.#e.lstatSync(this.fullpath())),this}catch(e){this.#I(e.code)}}#G(e){let{atime:t,atimeMs:r,birthtime:s,birthtimeMs:i,blksize:n,blocks:o,ctime:a,ctimeMs:u,dev:l,gid:c,ino:f,mode:h,mtime:p,mtimeMs:m,nlink:g,rdev:D,size:b,uid:w}=e;this.#w=t,this.#u=r,this.#m=s,this.#v=i,this.#c=n,this.#f=o,this.#R=a,this.#h=u,this.#r=l,this.#b=c,this.#a=f,this.#n=h,this.#p=p,this.#s=m,this.#i=g,this.#D=D,this.#d=b,this.#o=w;let v=Qu(e);this.#t=this.#t&Fi|v|Ah,v!==Ze&&v!==Ct&&v!==Pr&&(this.#t|=Ri)}#O=[];#k=!1;#W(e){this.#k=!1;let t=this.#O.slice();this.#O.length=0,t.forEach(r=>r(null,e))}readdirCB(e,t=!1){if(!this.canReaddir()){t?e(null,[]):queueMicrotask(()=>e(null,[]));return}let r=this.children();if(this.calledReaddir()){let i=r.slice(0,r.provisional);t?e(null,i):queueMicrotask(()=>e(null,i));return}if(this.#O.push(e),this.#k)return;this.#k=!0;let s=this.fullpath();this.#e.readdir(s,{withFileTypes:!0},(i,n)=>{if(i)this.#M(i.code),r.provisional=0;else{for(let o of n)this.#j(o,r);this.#N(r)}this.#W(r.slice(0,r.provisional))})}#H;async readdir(){if(!this.canReaddir())return[];let e=this.children();if(this.calledReaddir())return e.slice(0,e.provisional);let t=this.fullpath();if(this.#H)await this.#H;else{let r=()=>{};this.#H=new Promise(s=>r=s);try{for(let s of await this.#e.promises.readdir(t,{withFileTypes:!0}))this.#j(s,e);this.#N(e)}catch(s){this.#M(s.code),e.provisional=0}this.#H=void 0,r()}return e.slice(0,e.provisional)}readdirSync(){if(!this.canReaddir())return[];let e=this.children();if(this.calledReaddir())return e.slice(0,e.provisional);let t=this.fullpath();try{for(let r of this.#e.readdirSync(t,{withFileTypes:!0}))this.#j(r,e);this.#N(e)}catch(r){this.#M(r.code),e.provisional=0}return e.slice(0,e.provisional)}canReaddir(){if(this.#t&Rh)return!1;let e=Ye&this.#t;return e===Ze||e===Ct||e===Pr}shouldWalk(e,t){return(this.#t&Ct)===Ct&&!(this.#t&Rh)&&!e.has(this)&&(!t||t(this))}async realpath(){if(this.#A)return this.#A;if(!((ao|io|dt)&this.#t))try{let e=await this.#e.promises.realpath(this.fullpath());return this.#A=this.resolve(e)}catch{this.#L()}}realpathSync(){if(this.#A)return this.#A;if(!((ao|io|dt)&this.#t))try{let e=this.#e.realpathSync(this.fullpath());return this.#A=this.resolve(e)}catch{this.#L()}}[up](e){if(e===this)return;e.isCWD=!1,this.isCWD=!0;let t=new Set([]),r=[],s=this;for(;s&&s.parent;)t.add(s),s.#E=r.join(this.sep),s.#x=r.join("/"),s=s.parent,r.push("..");for(s=e;s&&s.parent&&!t.has(s);)s.#E=void 0,s.#x=void 0,s=s.parent}},lp=class cp extends Ne{sep="\\";splitSep=fS;constructor(t,r=Ze,s,i,n,o,a){super(t,r,s,i,n,o,a)}newChild(t,r=Ze,s={}){return new cp(t,r,this.root,this.roots,this.nocase,this.childrenCache(),s)}getRootString(t){return bs.win32.parse(t).root}getRoot(t){if(t=cS(t.toUpperCase()),t===this.root.name)return this.root;for(let[r,s]of Object.entries(this.roots))if(this.sameRoot(t,r))return this.roots[t]=s;return this.roots[t]=new ol(t,this).root}sameRoot(t,r=this.root.name){return t=t.toUpperCase().replace(/\//g,"\\").replace(rp,"$1\\"),t===r}},fp=class dp extends Ne{splitSep="/";sep="/";constructor(t,r=Ze,s,i,n,o,a){super(t,r,s,i,n,o,a)}getRootString(t){return t.startsWith("/")?"/":""}getRoot(t){return this.root}newChild(t,r=Ze,s={}){return new dp(t,r,this.root,this.roots,this.nocase,this.childrenCache(),s)}},hp=class{root;rootPath;roots;cwd;#e;#r;#n;nocase;#i;constructor(e=process.cwd(),t,r,{nocase:s,childrenCacheSize:i=16*1024,fs:n=Ai}={}){this.#i=tp(n),(e instanceof URL||e.startsWith("file://"))&&(e=(0,Xh.fileURLToPath)(e));let o=t.resolve(e);this.roots=Object.create(null),this.rootPath=this.parseRootPath(o),this.#e=new _h,this.#r=new _h,this.#n=new hS(i);let a=o.substring(this.rootPath.length).split(r);if(a.length===1&&!a[0]&&a.pop(),s===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=s,this.root=this.newRoot(this.#i),this.roots[this.rootPath]=this.root;let u=this.root,l=a.length-1,c=t.sep,f=this.rootPath,h=!1;for(let p of a){let m=l--;u=u.child(p,{relative:new Array(m).fill("..").join(c),relativePosix:new Array(m).fill("..").join("/"),fullpath:f+=(h?"":c)+p}),h=!0}this.cwd=u}depth(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.depth()}childrenCache(){return this.#n}resolve(...e){let t="";for(let i=e.length-1;i>=0;i--){let n=e[i];if(!(!n||n===".")&&(t=t?`${n}/${t}`:n,this.isAbsolute(n)))break}let r=this.#e.get(t);if(r!==void 0)return r;let s=this.cwd.resolve(t).fullpath();return this.#e.set(t,s),s}resolvePosix(...e){let t="";for(let i=e.length-1;i>=0;i--){let n=e[i];if(!(!n||n===".")&&(t=t?`${n}/${t}`:n,this.isAbsolute(n)))break}let r=this.#r.get(t);if(r!==void 0)return r;let s=this.cwd.resolve(t).fullpathPosix();return this.#r.set(t,s),s}relative(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.relative()}relativePosix(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.relativePosix()}basename(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.name}dirname(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),(e.parent||e).fullpath()}async readdir(e=this.cwd,t={withFileTypes:!0}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd);let{withFileTypes:r}=t;if(e.canReaddir()){let s=await e.readdir();return r?s:s.map(i=>i.name)}else return[]}readdirSync(e=this.cwd,t={withFileTypes:!0}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd);let{withFileTypes:r=!0}=t;return e.canReaddir()?r?e.readdirSync():e.readdirSync().map(s=>s.name):[]}async lstat(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.lstat()}lstatSync(e=this.cwd){return typeof e=="string"&&(e=this.cwd.resolve(e)),e.lstatSync()}async readlink(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e.withFileTypes,e=this.cwd);let r=await e.readlink();return t?r:r?.fullpath()}readlinkSync(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e.withFileTypes,e=this.cwd);let r=e.readlinkSync();return t?r:r?.fullpath()}async realpath(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e.withFileTypes,e=this.cwd);let r=await e.realpath();return t?r:r?.fullpath()}realpathSync(e=this.cwd,{withFileTypes:t}={withFileTypes:!1}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e.withFileTypes,e=this.cwd);let r=e.realpathSync();return t?r:r?.fullpath()}async walk(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=[];(!i||i(e))&&o.push(r?e:e.fullpath());let a=new Set,u=(c,f)=>{a.add(c),c.readdirCB((h,p)=>{if(h)return f(h);let m=p.length;if(!m)return f();let g=()=>{--m===0&&f()};for(let D of p)(!i||i(D))&&o.push(r?D:D.fullpath()),s&&D.isSymbolicLink()?D.realpath().then(b=>b?.isUnknown()?b.lstat():b).then(b=>b?.shouldWalk(a,n)?u(b,g):g()):D.shouldWalk(a,n)?u(D,g):g()},!0)},l=e;return new Promise((c,f)=>{u(l,h=>{if(h)return f(h);c(o)})})}walkSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=[];(!i||i(e))&&o.push(r?e:e.fullpath());let a=new Set([e]);for(let u of a){let l=u.readdirSync();for(let c of l){(!i||i(c))&&o.push(r?c:c.fullpath());let f=c;if(c.isSymbolicLink()){if(!(s&&(f=c.realpathSync())))continue;f.isUnknown()&&f.lstatSync()}f.shouldWalk(a,n)&&a.add(f)}}return o}[Symbol.asyncIterator](){return this.iterate()}iterate(e=this.cwd,t={}){return typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd),this.stream(e,t)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t;(!i||i(e))&&(yield r?e:e.fullpath());let o=new Set([e]);for(let a of o){let u=a.readdirSync();for(let l of u){(!i||i(l))&&(yield r?l:l.fullpath());let c=l;if(l.isSymbolicLink()){if(!(s&&(c=l.realpathSync())))continue;c.isUnknown()&&c.lstatSync()}c.shouldWalk(o,n)&&o.add(c)}}}stream(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=new co({objectMode:!0});(!i||i(e))&&o.write(r?e:e.fullpath());let a=new Set,u=[e],l=0,c=()=>{let f=!1;for(;!f;){let h=u.shift();if(!h){l===0&&o.end();return}l++,a.add(h);let p=(g,D,b=!1)=>{if(g)return o.emit("error",g);if(s&&!b){let w=[];for(let v of D)v.isSymbolicLink()&&w.push(v.realpath().then(E=>E?.isUnknown()?E.lstat():E));if(w.length){Promise.all(w).then(()=>p(null,D,!0));return}}for(let w of D)w&&(!i||i(w))&&(o.write(r?w:w.fullpath())||(f=!0));l--;for(let w of D){let v=w.realpathCached()||w;v.shouldWalk(a,n)&&u.push(v)}f&&!o.flowing?o.once("drain",c):m||c()},m=!0;h.readdirCB(p,!0),m=!1}};return c(),o}streamSync(e=this.cwd,t={}){typeof e=="string"?e=this.cwd.resolve(e):e instanceof Ne||(t=e,e=this.cwd);let{withFileTypes:r=!0,follow:s=!1,filter:i,walkFilter:n}=t,o=new co({objectMode:!0}),a=new Set;(!i||i(e))&&o.write(r?e:e.fullpath());let u=[e],l=0,c=()=>{let f=!1;for(;!f;){let h=u.shift();if(!h){l===0&&o.end();return}l++,a.add(h);let p=h.readdirSync();for(let m of p)(!i||i(m))&&(o.write(r?m:m.fullpath())||(f=!0));l--;for(let m of p){let g=m;if(m.isSymbolicLink()){if(!(s&&(g=m.realpathSync())))continue;g.isUnknown()&&g.lstatSync()}g.shouldWalk(a,n)&&u.push(g)}}f&&!o.flowing&&o.once("drain",c)};return c(),o}chdir(e=this.cwd){let t=this.cwd;this.cwd=typeof e=="string"?this.cwd.resolve(e):e,this.cwd[up](t)}},ol=class extends hp{sep="\\";constructor(e=process.cwd(),t={}){let{nocase:r=!0}=t;super(e,bs.win32,"\\",{...t,nocase:r}),this.nocase=r;for(let s=this.cwd;s;s=s.parent)s.nocase=this.nocase}parseRootPath(e){return bs.win32.parse(e).root.toUpperCase()}newRoot(e){return new lp(this.rootPath,Ct,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")||e.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(e)}},al=class extends hp{sep="/";constructor(e=process.cwd(),t={}){let{nocase:r=!1}=t;super(e,bs.posix,"/",{...t,nocase:r}),this.nocase=r}parseRootPath(e){return"/"}newRoot(e){return new fp(this.rootPath,Ct,void 0,this.roots,this.nocase,this.childrenCache(),{fs:e})}isAbsolute(e){return e.startsWith("/")}},pp=class extends al{constructor(e=process.cwd(),t={}){let{nocase:r=!0}=t;super(e,{...t,nocase:r})}},zB=process.platform==="win32"?lp:fp,pS=process.platform==="win32"?ol:process.platform==="darwin"?pp:al,mS=e=>e.length>=1,gS=e=>e.length>=1,DS=Symbol.for("nodejs.util.inspect.custom"),mp=class gp{#e;#r;#n;length;#i;#o;#b;#D;#c;#a;#d=!0;constructor(t,r,s,i){if(!mS(t))throw new TypeError("empty pattern list");if(!gS(r))throw new TypeError("empty glob list");if(r.length!==t.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=t.length,s<0||s>=this.length)throw new TypeError("index out of range");if(this.#e=t,this.#r=r,this.#n=s,this.#i=i,this.#n===0){if(this.isUNC()){let[n,o,a,u,...l]=this.#e,[c,f,h,p,...m]=this.#r;l[0]===""&&(l.shift(),m.shift());let g=[n,o,a,u,""].join("/"),D=[c,f,h,p,""].join("/");this.#e=[g,...l],this.#r=[D,...m],this.length=this.#e.length}else if(this.isDrive()||this.isAbsolute()){let[n,...o]=this.#e,[a,...u]=this.#r;o[0]===""&&(o.shift(),u.shift());let l=n+"/",c=a+"/";this.#e=[l,...o],this.#r=[c,...u],this.length=this.#e.length}}}[DS](){return"Pattern <"+this.#r.slice(this.#n).join("/")+">"}pattern(){return this.#e[this.#n]}isString(){return typeof this.#e[this.#n]=="string"}isGlobstar(){return this.#e[this.#n]===Pe}isRegExp(){return this.#e[this.#n]instanceof RegExp}globString(){return this.#b=this.#b||(this.#n===0?this.isAbsolute()?this.#r[0]+this.#r.slice(1).join("/"):this.#r.join("/"):this.#r.slice(this.#n).join("/"))}hasMore(){return this.length>this.#n+1}rest(){return this.#o!==void 0?this.#o:this.hasMore()?(this.#o=new gp(this.#e,this.#r,this.#n+1,this.#i),this.#o.#a=this.#a,this.#o.#c=this.#c,this.#o.#D=this.#D,this.#o):this.#o=null}isUNC(){let t=this.#e;return this.#c!==void 0?this.#c:this.#c=this.#i==="win32"&&this.#n===0&&t[0]===""&&t[1]===""&&typeof t[2]=="string"&&!!t[2]&&typeof t[3]=="string"&&!!t[3]}isDrive(){let t=this.#e;return this.#D!==void 0?this.#D:this.#D=this.#i==="win32"&&this.#n===0&&this.length>1&&typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0])}isAbsolute(){let t=this.#e;return this.#a!==void 0?this.#a:this.#a=t[0]===""&&t.length>1||this.isDrive()||this.isUNC()}root(){let t=this.#e[0];return typeof t=="string"&&this.isAbsolute()&&this.#n===0?t:""}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#d)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#d?!1:(this.#d=!1,!0)}},yS=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",tl=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(e,{nobrace:t,nocase:r,noext:s,noglobstar:i,platform:n=yS}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=n,this.mmopts={dot:!0,nobrace:t,nocase:r,noext:s,noglobstar:i,optimizationLevel:2,platform:n,nocomment:!0,nonegate:!0};for(let o of e)this.add(o)}add(e){let t=new nr(e,this.mmopts);for(let r=0;r<t.set.length;r++){let s=t.set[r],i=t.globParts[r];if(!s||!i)throw new Error("invalid pattern object");for(;s[0]==="."&&i[0]===".";)s.shift(),i.shift();let n=new mp(s,i,0,this.platform),o=new nr(n.globString(),this.mmopts),a=i[i.length-1]==="**",u=n.isAbsolute();u?this.absolute.push(o):this.relative.push(o),a&&(u?this.absoluteChildren.push(o):this.relativeChildren.push(o))}}ignored(e){let t=e.fullpath(),r=`${t}/`,s=e.relative()||".",i=`${s}/`;for(let n of this.relative)if(n.match(s)||n.match(i))return!0;for(let n of this.absolute)if(n.match(t)||n.match(r))return!0;return!1}childrenIgnored(e){let t=e.fullpath()+"/",r=(e.relative()||".")+"/";for(let s of this.relativeChildren)if(s.match(r))return!0;for(let s of this.absoluteChildren)if(s.match(t))return!0;return!1}},wS=class Dp{store;constructor(t=new Map){this.store=t}copy(){return new Dp(new Map(this.store))}hasWalked(t,r){return this.store.get(t.fullpath())?.has(r.globString())}storeWalked(t,r){let s=t.fullpath(),i=this.store.get(s);i?i.add(r.globString()):this.store.set(s,new Set([r.globString()]))}},bS=class{store=new Map;add(e,t,r){let s=(t?2:0)|(r?1:0),i=this.store.get(e);this.store.set(e,i===void 0?s:s&i)}entries(){return[...this.store.entries()].map(([e,t])=>[e,!!(t&2),!!(t&1)])}},vS=class{store=new Map;add(e,t){if(!e.canReaddir())return;let r=this.store.get(e);r?r.find(s=>s.globString()===t.globString())||r.push(t):this.store.set(e,[t])}get(e){let t=this.store.get(e);if(!t)throw new Error("attempting to walk unknown path");return t}entries(){return this.keys().map(e=>[e,this.store.get(e)])}keys(){return[...this.store.keys()].filter(e=>e.canReaddir())}},Th=class yp{hasWalkedCache;matches=new bS;subwalks=new vS;patterns;follow;dot;opts;constructor(t,r){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=r?r.copy():new wS}processPatterns(t,r){this.patterns=r;let s=r.map(i=>[t,i]);for(let[i,n]of s){this.hasWalkedCache.storeWalked(i,n);let o=n.root(),a=n.isAbsolute()&&this.opts.absolute!==!1;if(o){i=i.resolve(o==="/"&&this.opts.root!==void 0?this.opts.root:o);let f=n.rest();if(f)n=f;else{this.matches.add(i,!0,!1);continue}}if(i.isENOENT())continue;let u,l,c=!1;for(;typeof(u=n.pattern())=="string"&&(l=n.rest());)i=i.resolve(u),n=l,c=!0;if(u=n.pattern(),l=n.rest(),c){if(this.hasWalkedCache.hasWalked(i,n))continue;this.hasWalkedCache.storeWalked(i,n)}if(typeof u=="string"){let f=u===".."||u===""||u===".";this.matches.add(i.resolve(u),a,f);continue}else if(u===Pe){(!i.isSymbolicLink()||this.follow||n.checkFollowGlobstar())&&this.subwalks.add(i,n);let f=l?.pattern(),h=l?.rest();if(!l||(f===""||f===".")&&!h)this.matches.add(i,a,f===""||f===".");else if(f===".."){let p=i.parent||i;h?this.hasWalkedCache.hasWalked(p,h)||this.subwalks.add(p,h):this.matches.add(p,a,!0)}}else u instanceof RegExp&&this.subwalks.add(i,n)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new yp(this.opts,this.hasWalkedCache)}filterEntries(t,r){let s=this.subwalks.get(t),i=this.child();for(let n of r)for(let o of s){let a=o.isAbsolute(),u=o.pattern(),l=o.rest();u===Pe?i.testGlobstar(n,o,l,a):u instanceof RegExp?i.testRegExp(n,u,l,a):i.testString(n,u,l,a)}return i}testGlobstar(t,r,s,i){if((this.dot||!t.name.startsWith("."))&&(r.hasMore()||this.matches.add(t,i,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,r):t.isSymbolicLink()&&(s&&r.checkFollowGlobstar()?this.subwalks.add(t,s):r.markFollowGlobstar()&&this.subwalks.add(t,r)))),s){let n=s.pattern();if(typeof n=="string"&&n!==".."&&n!==""&&n!==".")this.testString(t,n,s.rest(),i);else if(n===".."){let o=t.parent||t;this.subwalks.add(o,s)}else n instanceof RegExp&&this.testRegExp(t,n,s.rest(),i)}}testRegExp(t,r,s,i){r.test(t.name)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}testString(t,r,s,i){t.isNamed(r)&&(s?this.subwalks.add(t,s):this.matches.add(t,i,!1))}},ES=(e,t)=>typeof e=="string"?new tl([e],t):Array.isArray(e)?new tl(e,t):e,wp=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#e=[];#r;#n;signal;maxDepth;includeChildMatches;constructor(e,t,r){if(this.patterns=e,this.path=t,this.opts=r,this.#n=!r.posix&&r.platform==="win32"?"\\":"/",this.includeChildMatches=r.includeChildMatches!==!1,(r.ignore||!this.includeChildMatches)&&(this.#r=ES(r.ignore??[],r),!this.includeChildMatches&&typeof this.#r.add!="function")){let s="cannot ignore child matches, ignore lacks add() method.";throw new Error(s)}this.maxDepth=r.maxDepth||1/0,r.signal&&(this.signal=r.signal,this.signal.addEventListener("abort",()=>{this.#e.length=0}))}#i(e){return this.seen.has(e)||!!this.#r?.ignored?.(e)}#o(e){return!!this.#r?.childrenIgnored?.(e)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let e;for(;!this.paused&&(e=this.#e.shift());)e()}onResume(e){this.signal?.aborted||(this.paused?this.#e.push(e):e())}async matchCheck(e,t){if(t&&this.opts.nodir)return;let r;if(this.opts.realpath){if(r=e.realpathCached()||await e.realpath(),!r)return;e=r}let s=e.isUnknown()||this.opts.stat?await e.lstat():e;if(this.opts.follow&&this.opts.nodir&&s?.isSymbolicLink()){let i=await s.realpath();i&&(i.isUnknown()||this.opts.stat)&&await i.lstat()}return this.matchCheckTest(s,t)}matchCheckTest(e,t){return e&&(this.maxDepth===1/0||e.depth()<=this.maxDepth)&&(!t||e.canReaddir())&&(!this.opts.nodir||!e.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!e.isSymbolicLink()||!e.realpathCached()?.isDirectory())&&!this.#i(e)?e:void 0}matchCheckSync(e,t){if(t&&this.opts.nodir)return;let r;if(this.opts.realpath){if(r=e.realpathCached()||e.realpathSync(),!r)return;e=r}let s=e.isUnknown()||this.opts.stat?e.lstatSync():e;if(this.opts.follow&&this.opts.nodir&&s?.isSymbolicLink()){let i=s.realpathSync();i&&(i?.isUnknown()||this.opts.stat)&&i.lstatSync()}return this.matchCheckTest(s,t)}matchFinish(e,t){if(this.#i(e))return;if(!this.includeChildMatches&&this.#r?.add){let i=`${e.relativePosix()}/**`;this.#r.add(i)}let r=this.opts.absolute===void 0?t:this.opts.absolute;this.seen.add(e);let s=this.opts.mark&&e.isDirectory()?this.#n:"";if(this.opts.withFileTypes)this.matchEmit(e);else if(r){let i=this.opts.posix?e.fullpathPosix():e.fullpath();this.matchEmit(i+s)}else{let i=this.opts.posix?e.relativePosix():e.relative(),n=this.opts.dotRelative&&!i.startsWith(".."+this.#n)?"."+this.#n:"";this.matchEmit(i?n+i+s:"."+s)}}async match(e,t,r){let s=await this.matchCheck(e,r);s&&this.matchFinish(s,t)}matchSync(e,t,r){let s=this.matchCheckSync(e,r);s&&this.matchFinish(s,t)}walkCB(e,t,r){this.signal?.aborted&&r(),this.walkCB2(e,t,new Th(this.opts),r)}walkCB2(e,t,r,s){if(this.#o(e))return s();if(this.signal?.aborted&&s(),this.paused){this.onResume(()=>this.walkCB2(e,t,r,s));return}r.processPatterns(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||(i++,this.match(o,a,u).then(()=>n()));for(let o of r.subwalkTargets()){if(this.maxDepth!==1/0&&o.depth()>=this.maxDepth)continue;i++;let a=o.readdirCached();o.calledReaddir()?this.walkCB3(o,a,r,n):o.readdirCB((u,l)=>this.walkCB3(o,l,r,n),!0)}n()}walkCB3(e,t,r,s){r=r.filterEntries(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||(i++,this.match(o,a,u).then(()=>n()));for(let[o,a]of r.subwalks.entries())i++,this.walkCB2(o,a,r.child(),n);n()}walkCBSync(e,t,r){this.signal?.aborted&&r(),this.walkCB2Sync(e,t,new Th(this.opts),r)}walkCB2Sync(e,t,r,s){if(this.#o(e))return s();if(this.signal?.aborted&&s(),this.paused){this.onResume(()=>this.walkCB2Sync(e,t,r,s));return}r.processPatterns(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||this.matchSync(o,a,u);for(let o of r.subwalkTargets()){if(this.maxDepth!==1/0&&o.depth()>=this.maxDepth)continue;i++;let a=o.readdirSync();this.walkCB3Sync(o,a,r,n)}n()}walkCB3Sync(e,t,r,s){r=r.filterEntries(e,t);let i=1,n=()=>{--i===0&&s()};for(let[o,a,u]of r.matches.entries())this.#i(o)||this.matchSync(o,a,u);for(let[o,a]of r.subwalks.entries())i++,this.walkCB2Sync(o,a,r.child(),n);n()}},$h=class extends wp{matches=new Set;constructor(e,t,r){super(e,t,r)}matchEmit(e){this.matches.add(e)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((e,t)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?t(this.signal.reason):e(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}},Ph=class extends wp{results;constructor(e,t,r){super(e,t,r),this.results=new co({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(e){this.results.write(e),this.results.flowing||this.pause()}stream(){let e=this.path;return e.isUnknown()?e.lstat().then(()=>{this.walkCB(e,this.patterns,()=>this.results.end())}):this.walkCB(e,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}},CS=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",ar=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(e,t){if(!t)throw new TypeError("glob options required");if(this.withFileTypes=!!t.withFileTypes,this.signal=t.signal,this.follow=!!t.follow,this.dot=!!t.dot,this.dotRelative=!!t.dotRelative,this.nodir=!!t.nodir,this.mark=!!t.mark,t.cwd?(t.cwd instanceof URL||t.cwd.startsWith("file://"))&&(t.cwd=(0,Kh.fileURLToPath)(t.cwd)):this.cwd="",this.cwd=t.cwd||"",this.root=t.root,this.magicalBraces=!!t.magicalBraces,this.nobrace=!!t.nobrace,this.noext=!!t.noext,this.realpath=!!t.realpath,this.absolute=t.absolute,this.includeChildMatches=t.includeChildMatches!==!1,this.noglobstar=!!t.noglobstar,this.matchBase=!!t.matchBase,this.maxDepth=typeof t.maxDepth=="number"?t.maxDepth:1/0,this.stat=!!t.stat,this.ignore=t.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof e=="string"&&(e=[e]),this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||t.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(e=e.map(a=>a.replace(/\\/g,"/"))),this.matchBase){if(t.noglobstar)throw new TypeError("base matching requires globstar");e=e.map(a=>a.includes("/")?a:`./**/${a}`)}if(this.pattern=e,this.platform=t.platform||CS,this.opts={...t,platform:this.platform},t.scurry){if(this.scurry=t.scurry,t.nocase!==void 0&&t.nocase!==t.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let a=t.platform==="win32"?ol:t.platform==="darwin"?pp:t.platform?al:pS;this.scurry=new a(this.cwd,{nocase:t.nocase,fs:t.fs})}this.nocase=this.scurry.nocase;let r=this.platform==="darwin"||this.platform==="win32",s={braceExpandMax:1e4,...t,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:r,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},i=this.pattern.map(a=>new nr(a,s)),[n,o]=i.reduce((a,u)=>(a[0].push(...u.set),a[1].push(...u.globParts),a),[[],[]]);this.patterns=n.map((a,u)=>{let l=o[u];if(!l)throw new Error("invalid pattern object");return new mp(a,l,0,this.platform)})}async walk(){return[...await new $h(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new $h(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new Ph(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new Ph(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}},bp=(e,t={})=>{Array.isArray(e)||(e=[e]);for(let r of e)if(new nr(r,t).hasMagic())return!0;return!1};vp=Ii,Ep=Object.assign(ul,{sync:Ii}),Cp=_i,Fp=Object.assign(cl,{sync:_i}),Sp=Object.assign(ll,{stream:Ii,iterate:_i}),Xe=Object.assign(Bh,{glob:Bh,globSync:ll,sync:Sp,globStream:ul,stream:Ep,globStreamSync:Ii,streamSync:vp,globIterate:cl,iterate:Fp,globIterateSync:_i,iterateSync:Cp,Glob:ar,hasMagic:bp,escape:il,unescape:Br});Xe.glob=Xe});var Z=_(xe=>{"use strict";var fl=Symbol.for("yaml.alias"),Ap=Symbol.for("yaml.document"),po=Symbol.for("yaml.map"),Rp=Symbol.for("yaml.pair"),dl=Symbol.for("yaml.scalar"),mo=Symbol.for("yaml.seq"),Mt=Symbol.for("yaml.node.type"),FS=e=>!!e&&typeof e=="object"&&e[Mt]===fl,SS=e=>!!e&&typeof e=="object"&&e[Mt]===Ap,xS=e=>!!e&&typeof e=="object"&&e[Mt]===po,AS=e=>!!e&&typeof e=="object"&&e[Mt]===Rp,kp=e=>!!e&&typeof e=="object"&&e[Mt]===dl,RS=e=>!!e&&typeof e=="object"&&e[Mt]===mo;function Ip(e){if(e&&typeof e=="object")switch(e[Mt]){case po:case mo:return!0}return!1}function kS(e){if(e&&typeof e=="object")switch(e[Mt]){case fl:case po:case dl:case mo:return!0}return!1}var IS=e=>(kp(e)||Ip(e))&&!!e.anchor;xe.ALIAS=fl;xe.DOC=Ap;xe.MAP=po;xe.NODE_TYPE=Mt;xe.PAIR=Rp;xe.SCALAR=dl;xe.SEQ=mo;xe.hasAnchor=IS;xe.isAlias=FS;xe.isCollection=Ip;xe.isDocument=SS;xe.isMap=xS;xe.isNode=kS;xe.isPair=AS;xe.isScalar=kp;xe.isSeq=RS});var $i=_(hl=>{"use strict";var me=Z(),Me=Symbol("break visit"),_p=Symbol("skip children"),St=Symbol("remove node");function go(e,t){let r=Tp(t);me.isDocument(e)?vs(null,e.contents,r,Object.freeze([e]))===St&&(e.contents=null):vs(null,e,r,Object.freeze([]))}go.BREAK=Me;go.SKIP=_p;go.REMOVE=St;function vs(e,t,r,s){let i=$p(e,t,r,s);if(me.isNode(i)||me.isPair(i))return Pp(e,s,i),vs(e,i,r,s);if(typeof i!="symbol"){if(me.isCollection(t)){s=Object.freeze(s.concat(t));for(let n=0;n<t.items.length;++n){let o=vs(n,t.items[n],r,s);if(typeof o=="number")n=o-1;else{if(o===Me)return Me;o===St&&(t.items.splice(n,1),n-=1)}}}else if(me.isPair(t)){s=Object.freeze(s.concat(t));let n=vs("key",t.key,r,s);if(n===Me)return Me;n===St&&(t.key=null);let o=vs("value",t.value,r,s);if(o===Me)return Me;o===St&&(t.value=null)}}return i}async function Do(e,t){let r=Tp(t);me.isDocument(e)?await Es(null,e.contents,r,Object.freeze([e]))===St&&(e.contents=null):await Es(null,e,r,Object.freeze([]))}Do.BREAK=Me;Do.SKIP=_p;Do.REMOVE=St;async function Es(e,t,r,s){let i=await $p(e,t,r,s);if(me.isNode(i)||me.isPair(i))return Pp(e,s,i),Es(e,i,r,s);if(typeof i!="symbol"){if(me.isCollection(t)){s=Object.freeze(s.concat(t));for(let n=0;n<t.items.length;++n){let o=await Es(n,t.items[n],r,s);if(typeof o=="number")n=o-1;else{if(o===Me)return Me;o===St&&(t.items.splice(n,1),n-=1)}}}else if(me.isPair(t)){s=Object.freeze(s.concat(t));let n=await Es("key",t.key,r,s);if(n===Me)return Me;n===St&&(t.key=null);let o=await Es("value",t.value,r,s);if(o===Me)return Me;o===St&&(t.value=null)}}return i}function Tp(e){return typeof e=="object"&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function $p(e,t,r,s){if(typeof r=="function")return r(e,t,s);if(me.isMap(t))return r.Map?.(e,t,s);if(me.isSeq(t))return r.Seq?.(e,t,s);if(me.isPair(t))return r.Pair?.(e,t,s);if(me.isScalar(t))return r.Scalar?.(e,t,s);if(me.isAlias(t))return r.Alias?.(e,t,s)}function Pp(e,t,r){let s=t[t.length-1];if(me.isCollection(s))s.items[e]=r;else if(me.isPair(s))e==="key"?s.key=r:s.value=r;else if(me.isDocument(s))s.contents=r;else{let i=me.isAlias(s)?"alias":"scalar";throw new Error(`Cannot replace node with ${i} parent`)}}hl.visit=go;hl.visitAsync=Do});var pl=_(Op=>{"use strict";var Bp=Z(),_S=$i(),TS={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},$S=e=>e.replace(/[!,[\]{}]/g,t=>TS[t]),Pi=class e{constructor(t,r){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,r)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,r){this.atNextDocument&&(this.yaml={explicit:e.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},e.defaultTags),this.atNextDocument=!1);let s=t.trim().split(/[ \t]+/),i=s.shift();switch(i){case"%TAG":{if(s.length!==2&&(r(0,"%TAG directive should contain exactly two parts"),s.length<2))return!1;let[n,o]=s;return this.tags[n]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,s.length!==1)return r(0,"%YAML directive should contain exactly one part"),!1;let[n]=s;if(n==="1.1"||n==="1.2")return this.yaml.version=n,!0;{let o=/^\d+\.\d+$/.test(n);return r(6,`Unsupported YAML version ${n}`,o),!1}}default:return r(0,`Unknown directive ${i}`,!0),!1}}tagName(t,r){if(t==="!")return"!";if(t[0]!=="!")return r(`Not a valid tag: ${t}`),null;if(t[1]==="<"){let o=t.slice(2,-1);return o==="!"||o==="!!"?(r(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&r("Verbatim tags must end with a >"),o)}let[,s,i]=t.match(/^(.*!)([^!]*)$/s);i||r(`The ${t} tag has no suffix`);let n=this.tags[s];if(n)try{return n+decodeURIComponent(i)}catch(o){return r(String(o)),null}return s==="!"?t:(r(`Could not resolve tag: ${t}`),null)}tagString(t){for(let[r,s]of Object.entries(this.tags))if(t.startsWith(s))return r+$S(t.substring(s.length));return t[0]==="!"?t:`!<${t}>`}toString(t){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],s=Object.entries(this.tags),i;if(t&&s.length>0&&Bp.isNode(t.contents)){let n={};_S.visit(t.contents,(o,a)=>{Bp.isNode(a)&&a.tag&&(n[a.tag]=!0)}),i=Object.keys(n)}else i=[];for(let[n,o]of s)n==="!!"&&o==="tag:yaml.org,2002:"||(!t||i.some(a=>a.startsWith(o)))&&r.push(`%TAG ${n} ${o}`);return r.join(`
55
+ `)}};Pi.defaultYaml={explicit:!1,version:"1.2"};Pi.defaultTags={"!!":"tag:yaml.org,2002:"};Op.Directives=Pi});var yo=_(Bi=>{"use strict";var Lp=Z(),PS=$i();function BS(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let r=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(r)}return!0}function Np(e){let t=new Set;return PS.visit(e,{Value(r,s){s.anchor&&t.add(s.anchor)}}),t}function Mp(e,t){for(let r=1;;++r){let s=`${e}${r}`;if(!t.has(s))return s}}function OS(e,t){let r=[],s=new Map,i=null;return{onAnchor:n=>{r.push(n),i??(i=Np(e));let o=Mp(t,i);return i.add(o),o},setAnchors:()=>{for(let n of r){let o=s.get(n);if(typeof o=="object"&&o.anchor&&(Lp.isScalar(o.node)||Lp.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=n,a}}},sourceObjects:s}}Bi.anchorIsValid=BS;Bi.anchorNames=Np;Bi.createNodeAnchors=OS;Bi.findNewAnchor=Mp});var ml=_(jp=>{"use strict";function Oi(e,t,r,s){if(s&&typeof s=="object")if(Array.isArray(s))for(let i=0,n=s.length;i<n;++i){let o=s[i],a=Oi(e,s,String(i),o);a===void 0?delete s[i]:a!==o&&(s[i]=a)}else if(s instanceof Map)for(let i of Array.from(s.keys())){let n=s.get(i),o=Oi(e,s,i,n);o===void 0?s.delete(i):o!==n&&s.set(i,o)}else if(s instanceof Set)for(let i of Array.from(s)){let n=Oi(e,s,i,i);n===void 0?s.delete(i):n!==i&&(s.delete(i),s.add(n))}else for(let[i,n]of Object.entries(s)){let o=Oi(e,s,i,n);o===void 0?delete s[i]:o!==n&&(s[i]=o)}return e.call(t,r,s)}jp.applyReviver=Oi});var ur=_(Up=>{"use strict";var LS=Z();function qp(e,t,r){if(Array.isArray(e))return e.map((s,i)=>qp(s,String(i),r));if(e&&typeof e.toJSON=="function"){if(!r||!LS.hasAnchor(e))return e.toJSON(t,r);let s={aliasCount:0,count:1,res:void 0};r.anchors.set(e,s),r.onCreate=n=>{s.res=n,delete r.onCreate};let i=e.toJSON(t,r);return r.onCreate&&r.onCreate(i),i}return typeof e=="bigint"&&!r?.keep?Number(e):e}Up.toJS=qp});var wo=_(Vp=>{"use strict";var NS=ml(),Gp=Z(),MS=ur(),gl=class{constructor(t){Object.defineProperty(this,Gp.NODE_TYPE,{value:t})}clone(){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(t.range=this.range.slice()),t}toJS(t,{mapAsMap:r,maxAliasCount:s,onAnchor:i,reviver:n}={}){if(!Gp.isDocument(t))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:t,keep:!0,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},a=MS.toJS(this,"",o);if(typeof i=="function")for(let{count:u,res:l}of o.anchors.values())i(l,u);return typeof n=="function"?NS.applyReviver(n,{"":a},"",a):a}};Vp.NodeBase=gl});var Li=_(Wp=>{"use strict";var jS=yo(),qS=$i(),Cs=Z(),US=wo(),GS=ur(),Dl=class extends US.NodeBase{constructor(t){super(Cs.ALIAS),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(t,r){let s;r?.aliasResolveCache?s=r.aliasResolveCache:(s=[],qS.visit(t,{Node:(n,o)=>{(Cs.isAlias(o)||Cs.hasAnchor(o))&&s.push(o)}}),r&&(r.aliasResolveCache=s));let i;for(let n of s){if(n===this)break;n.anchor===this.source&&(i=n)}return i}toJSON(t,r){if(!r)return{source:this.source};let{anchors:s,doc:i,maxAliasCount:n}=r,o=this.resolve(i,r);if(!o){let u=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(u)}let a=s.get(o);if(a||(GS.toJS(o,null,r),a=s.get(o)),a?.res===void 0){let u="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(u)}if(n>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=bo(i,o,s)),a.count*a.aliasCount>n)){let u="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(u)}return a.res}toString(t,r,s){let i=`*${this.source}`;if(t){if(jS.anchorIsValid(this.source),t.options.verifyAliasOrder&&!t.anchors.has(this.source)){let n=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(n)}if(t.implicitKey)return`${i} `}return i}};function bo(e,t,r){if(Cs.isAlias(t)){let s=t.resolve(e),i=r&&s&&r.get(s);return i?i.count*i.aliasCount:0}else if(Cs.isCollection(t)){let s=0;for(let i of t.items){let n=bo(e,i,r);n>s&&(s=n)}return s}else if(Cs.isPair(t)){let s=bo(e,t.key,r),i=bo(e,t.value,r);return Math.max(s,i)}return 1}Wp.Alias=Dl});var he=_(yl=>{"use strict";var VS=Z(),WS=wo(),HS=ur(),KS=e=>!e||typeof e!="function"&&typeof e!="object",lr=class extends WS.NodeBase{constructor(t){super(VS.SCALAR),this.value=t}toJSON(t,r){return r?.keep?this.value:HS.toJS(this.value,t,r)}toString(){return String(this.value)}};lr.BLOCK_FOLDED="BLOCK_FOLDED";lr.BLOCK_LITERAL="BLOCK_LITERAL";lr.PLAIN="PLAIN";lr.QUOTE_DOUBLE="QUOTE_DOUBLE";lr.QUOTE_SINGLE="QUOTE_SINGLE";yl.Scalar=lr;yl.isScalarValue=KS});var Ni=_(Kp=>{"use strict";var zS=Li(),Or=Z(),Hp=he(),JS="tag:yaml.org,2002:";function YS(e,t,r){if(t){let s=r.filter(n=>n.tag===t),i=s.find(n=>!n.format)??s[0];if(!i)throw new Error(`Tag ${t} not found`);return i}return r.find(s=>s.identify?.(e)&&!s.format)}function ZS(e,t,r){if(Or.isDocument(e)&&(e=e.contents),Or.isNode(e))return e;if(Or.isPair(e)){let f=r.schema[Or.MAP].createNode?.(r.schema,null,r);return f.items.push(e),f}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<"u"&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:s,onAnchor:i,onTagObj:n,schema:o,sourceObjects:a}=r,u;if(s&&e&&typeof e=="object"){if(u=a.get(e),u)return u.anchor??(u.anchor=i(e)),new zS.Alias(u.anchor);u={anchor:null,node:null},a.set(e,u)}t?.startsWith("!!")&&(t=JS+t.slice(2));let l=YS(e,t,o.tags);if(!l){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){let f=new Hp.Scalar(e);return u&&(u.node=f),f}l=e instanceof Map?o[Or.MAP]:Symbol.iterator in Object(e)?o[Or.SEQ]:o[Or.MAP]}n&&(n(l),delete r.onTagObj);let c=l?.createNode?l.createNode(r.schema,e,r):typeof l?.nodeClass?.from=="function"?l.nodeClass.from(r.schema,e,r):new Hp.Scalar(e);return t?c.tag=t:l.default||(c.tag=l.tag),u&&(u.node=c),c}Kp.createNode=ZS});var Eo=_(vo=>{"use strict";var XS=Ni(),xt=Z(),QS=wo();function wl(e,t,r){let s=r;for(let i=t.length-1;i>=0;--i){let n=t[i];if(typeof n=="number"&&Number.isInteger(n)&&n>=0){let o=[];o[n]=s,s=o}else s=new Map([[n,s]])}return XS.createNode(s,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}var zp=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done,bl=class extends QS.NodeBase{constructor(t,r){super(t),Object.defineProperty(this,"schema",{value:r,configurable:!0,enumerable:!1,writable:!0})}clone(t){let r=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(r.schema=t),r.items=r.items.map(s=>xt.isNode(s)||xt.isPair(s)?s.clone(t):s),this.range&&(r.range=this.range.slice()),r}addIn(t,r){if(zp(t))this.add(r);else{let[s,...i]=t,n=this.get(s,!0);if(xt.isCollection(n))n.addIn(i,r);else if(n===void 0&&this.schema)this.set(s,wl(this.schema,i,r));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${i}`)}}deleteIn(t){let[r,...s]=t;if(s.length===0)return this.delete(r);let i=this.get(r,!0);if(xt.isCollection(i))return i.deleteIn(s);throw new Error(`Expected YAML collection at ${r}. Remaining path: ${s}`)}getIn(t,r){let[s,...i]=t,n=this.get(s,!0);return i.length===0?!r&&xt.isScalar(n)?n.value:n:xt.isCollection(n)?n.getIn(i,r):void 0}hasAllNullValues(t){return this.items.every(r=>{if(!xt.isPair(r))return!1;let s=r.value;return s==null||t&&xt.isScalar(s)&&s.value==null&&!s.commentBefore&&!s.comment&&!s.tag})}hasIn(t){let[r,...s]=t;if(s.length===0)return this.has(r);let i=this.get(r,!0);return xt.isCollection(i)?i.hasIn(s):!1}setIn(t,r){let[s,...i]=t;if(i.length===0)this.set(s,r);else{let n=this.get(s,!0);if(xt.isCollection(n))n.setIn(i,r);else if(n===void 0&&this.schema)this.set(s,wl(this.schema,i,r));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${i}`)}}};vo.Collection=bl;vo.collectionFromPath=wl;vo.isEmptyPath=zp});var Mi=_(Co=>{"use strict";var ex=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function vl(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var tx=(e,t,r)=>e.endsWith(`
56
56
  `)?vl(r,t):r.includes(`
57
57
  `)?`
58
- `+vl(r,t):(e.endsWith(" ")?"":" ")+r;Co.indentComment=vl;Co.lineComment=ZS;Co.stringifyComment=YS});var Jp=_(Mi=>{"use strict";var XS="flow",El="block",Fo="quoted";function QS(e,t,r="flow",{indentAtStart:s,lineWidth:i=80,minContentWidth:n=20,onFold:o,onOverflow:a}={}){if(!i||i<0)return e;i<n&&(n=0);let u=Math.max(1+n,1+i-t.length);if(e.length<=u)return e;let l=[],c={},f=i-t.length;typeof s=="number"&&(s>i-Math.max(2,n)?l.push(0):f=i-s);let h,p,m=!1,g=-1,D=-1,b=-1;r===El&&(g=zp(e,g,t.length),g!==-1&&(f=g+u));for(let v;v=e[g+=1];){if(r===Fo&&v==="\\"){switch(D=g,e[g+1]){case"x":g+=3;break;case"u":g+=5;break;case"U":g+=9;break;default:g+=1}b=g}if(v===`
59
- `)r===El&&(g=zp(e,g,t.length)),f=g+t.length+u,h=void 0;else{if(v===" "&&p&&p!==" "&&p!==`
58
+ `+vl(r,t):(e.endsWith(" ")?"":" ")+r;Co.indentComment=vl;Co.lineComment=tx;Co.stringifyComment=ex});var Yp=_(ji=>{"use strict";var rx="flow",El="block",Fo="quoted";function sx(e,t,r="flow",{indentAtStart:s,lineWidth:i=80,minContentWidth:n=20,onFold:o,onOverflow:a}={}){if(!i||i<0)return e;i<n&&(n=0);let u=Math.max(1+n,1+i-t.length);if(e.length<=u)return e;let l=[],c={},f=i-t.length;typeof s=="number"&&(s>i-Math.max(2,n)?l.push(0):f=i-s);let h,p,m=!1,g=-1,D=-1,b=-1;r===El&&(g=Jp(e,g,t.length),g!==-1&&(f=g+u));for(let v;v=e[g+=1];){if(r===Fo&&v==="\\"){switch(D=g,e[g+1]){case"x":g+=3;break;case"u":g+=5;break;case"U":g+=9;break;default:g+=1}b=g}if(v===`
59
+ `)r===El&&(g=Jp(e,g,t.length)),f=g+t.length+u,h=void 0;else{if(v===" "&&p&&p!==" "&&p!==`
60
60
  `&&p!==" "){let E=e[g+1];E&&E!==" "&&E!==`
61
61
  `&&E!==" "&&(h=g)}if(g>=f)if(h)l.push(h),f=h+u,h=void 0;else if(r===Fo){for(;p===" "||p===" ";)p=v,v=e[g+=1],m=!0;let E=g>b+1?g-2:D-1;if(c[E])return e;l.push(E),c[E]=!0,f=E+u,h=void 0}else m=!0}p=v}if(m&&a&&a(),l.length===0)return e;o&&o();let w=e.slice(0,l[0]);for(let v=0;v<l.length;++v){let E=l[v],C=l[v+1]||e.length;E===0?w=`
62
62
  ${t}${e.slice(0,C)}`:(r===Fo&&c[E]&&(w+=`${e[E]}\\`),w+=`
63
- ${t}${e.slice(E+1,C)}`)}return w}function zp(e,t,r){let s=t,i=t+1,n=e[i];for(;n===" "||n===" ";)if(t<i+r)n=e[++t];else{do n=e[++t];while(n&&n!==`
64
- `);s=t,i=t+1,n=e[i]}return s}Mi.FOLD_BLOCK=El;Mi.FOLD_FLOW=XS;Mi.FOLD_QUOTED=Fo;Mi.foldFlowLines=QS});var qi=_(Yp=>{"use strict";var ht=de(),lr=Jp(),xo=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),Ao=e=>/^(%|---|\.\.\.)/m.test(e);function ex(e,t,r){if(!t||t<0)return!1;let s=t-r,i=e.length;if(i<=s)return!1;for(let n=0,o=0;n<i;++n)if(e[n]===`
65
- `){if(n-o>s)return!0;if(o=n+1,i-o<=s)return!1}return!0}function ji(e,t){let r=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return r;let{implicitKey:s}=t,i=t.options.doubleQuotedMinMultiLineLength,n=t.indent||(Ao(e)?" ":""),o="",a=0;for(let u=0,l=r[u];l;l=r[++u])if(l===" "&&r[u+1]==="\\"&&r[u+2]==="n"&&(o+=r.slice(a,u)+"\\ ",u+=1,a=u,l="\\"),l==="\\")switch(r[u+1]){case"u":{o+=r.slice(a,u);let c=r.substr(u+2,4);switch(c){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:c.substr(0,2)==="00"?o+="\\x"+c.substr(2):o+=r.substr(u,6)}u+=5,a=u+1}break;case"n":if(s||r[u+2]==='"'||r.length<i)u+=1;else{for(o+=r.slice(a,u)+`
63
+ ${t}${e.slice(E+1,C)}`)}return w}function Jp(e,t,r){let s=t,i=t+1,n=e[i];for(;n===" "||n===" ";)if(t<i+r)n=e[++t];else{do n=e[++t];while(n&&n!==`
64
+ `);s=t,i=t+1,n=e[i]}return s}ji.FOLD_BLOCK=El;ji.FOLD_FLOW=rx;ji.FOLD_QUOTED=Fo;ji.foldFlowLines=sx});var Ui=_(Zp=>{"use strict";var ht=he(),cr=Yp(),xo=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),Ao=e=>/^(%|---|\.\.\.)/m.test(e);function ix(e,t,r){if(!t||t<0)return!1;let s=t-r,i=e.length;if(i<=s)return!1;for(let n=0,o=0;n<i;++n)if(e[n]===`
65
+ `){if(n-o>s)return!0;if(o=n+1,i-o<=s)return!1}return!0}function qi(e,t){let r=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return r;let{implicitKey:s}=t,i=t.options.doubleQuotedMinMultiLineLength,n=t.indent||(Ao(e)?" ":""),o="",a=0;for(let u=0,l=r[u];l;l=r[++u])if(l===" "&&r[u+1]==="\\"&&r[u+2]==="n"&&(o+=r.slice(a,u)+"\\ ",u+=1,a=u,l="\\"),l==="\\")switch(r[u+1]){case"u":{o+=r.slice(a,u);let c=r.substr(u+2,4);switch(c){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:c.substr(0,2)==="00"?o+="\\x"+c.substr(2):o+=r.substr(u,6)}u+=5,a=u+1}break;case"n":if(s||r[u+2]==='"'||r.length<i)u+=1;else{for(o+=r.slice(a,u)+`
66
66
 
67
67
  `;r[u+2]==="\\"&&r[u+3]==="n"&&r[u+4]!=='"';)o+=`
68
- `,u+=2;o+=n,r[u+2]===" "&&(o+="\\"),u+=1,a=u+1}break;default:u+=1}return o=a?o+r.slice(a):r,s?o:lr.foldFlowLines(o,n,lr.FOLD_QUOTED,xo(t,!1))}function Cl(e,t){if(t.options.singleQuote===!1||t.implicitKey&&e.includes(`
69
- `)||/[ \t]\n|\n[ \t]/.test(e))return ji(e,t);let r=t.indent||(Ao(e)?" ":""),s="'"+e.replace(/'/g,"''").replace(/\n+/g,`$&
70
- ${r}`)+"'";return t.implicitKey?s:lr.foldFlowLines(s,r,lr.FOLD_FLOW,xo(t,!1))}function Fs(e,t){let{singleQuote:r}=t.options,s;if(r===!1)s=ji;else{let i=e.includes('"'),n=e.includes("'");i&&!n?s=Cl:n&&!i?s=ji:s=r?Cl:ji}return s(e,t)}var Fl;try{Fl=new RegExp(`(^|(?<!
68
+ `,u+=2;o+=n,r[u+2]===" "&&(o+="\\"),u+=1,a=u+1}break;default:u+=1}return o=a?o+r.slice(a):r,s?o:cr.foldFlowLines(o,n,cr.FOLD_QUOTED,xo(t,!1))}function Cl(e,t){if(t.options.singleQuote===!1||t.implicitKey&&e.includes(`
69
+ `)||/[ \t]\n|\n[ \t]/.test(e))return qi(e,t);let r=t.indent||(Ao(e)?" ":""),s="'"+e.replace(/'/g,"''").replace(/\n+/g,`$&
70
+ ${r}`)+"'";return t.implicitKey?s:cr.foldFlowLines(s,r,cr.FOLD_FLOW,xo(t,!1))}function Fs(e,t){let{singleQuote:r}=t.options,s;if(r===!1)s=qi;else{let i=e.includes('"'),n=e.includes("'");i&&!n?s=Cl:n&&!i?s=qi:s=r?Cl:qi}return s(e,t)}var Fl;try{Fl=new RegExp(`(^|(?<!
71
71
  ))
72
72
  +(?!
73
- |$)`,"g")}catch{Fl=/\n+(?!\n|$)/g}function So({comment:e,type:t,value:r},s,i,n){let{blockQuote:o,commentString:a,lineWidth:u}=s.options;if(!o||/\n[\t ]+$/.test(r))return Fs(r,s);let l=s.indent||(s.forceBlockIndent||Ao(r)?" ":""),c=o==="literal"?!0:o==="folded"||t===ht.Scalar.BLOCK_FOLDED?!1:t===ht.Scalar.BLOCK_LITERAL?!0:!ex(r,u,l.length);if(!r)return c?`|
73
+ |$)`,"g")}catch{Fl=/\n+(?!\n|$)/g}function So({comment:e,type:t,value:r},s,i,n){let{blockQuote:o,commentString:a,lineWidth:u}=s.options;if(!o||/\n[\t ]+$/.test(r))return Fs(r,s);let l=s.indent||(s.forceBlockIndent||Ao(r)?" ":""),c=o==="literal"?!0:o==="folded"||t===ht.Scalar.BLOCK_FOLDED?!1:t===ht.Scalar.BLOCK_LITERAL?!0:!ix(r,u,l.length);if(!r)return c?`|
74
74
  `:`>
75
75
  `;let f,h;for(h=r.length;h>0;--h){let C=r[h-1];if(C!==`
76
76
  `&&C!==" "&&C!==" ")break}let p=r.substring(h),m=p.indexOf(`
77
77
  `);m===-1?f="-":r===p||m!==p.length-1?(f="+",n&&n()):f="",p&&(r=r.slice(0,-p.length),p[p.length-1]===`
78
78
  `&&(p=p.slice(0,-1)),p=p.replace(Fl,`$&${l}`));let g=!1,D,b=-1;for(D=0;D<r.length;++D){let C=r[D];if(C===" ")g=!0;else if(C===`
79
79
  `)b=D;else break}let w=r.substring(0,b<D?b+1:D);w&&(r=r.substring(w.length),w=w.replace(/\n+/g,`$&${l}`));let E=(g?l?"2":"1":"")+f;if(e&&(E+=" "+a(e.replace(/ ?[\r\n]+/g," ")),i&&i()),!c){let C=r.replace(/\n+/g,`
80
- $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),x=!1,$=xo(s,!0);o!=="folded"&&t!==ht.Scalar.BLOCK_FOLDED&&($.onOverflow=()=>{x=!0});let F=lr.foldFlowLines(`${w}${C}${p}`,l,lr.FOLD_BLOCK,$);if(!x)return`>${E}
80
+ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),x=!1,$=xo(s,!0);o!=="folded"&&t!==ht.Scalar.BLOCK_FOLDED&&($.onOverflow=()=>{x=!0});let F=cr.foldFlowLines(`${w}${C}${p}`,l,cr.FOLD_BLOCK,$);if(!x)return`>${E}
81
81
  ${l}${F}`}return r=r.replace(/\n+/g,`$&${l}`),`|${E}
82
- ${l}${w}${r}${p}`}function tx(e,t,r,s){let{type:i,value:n}=e,{actualString:o,implicitKey:a,indent:u,indentStep:l,inFlow:c}=t;if(a&&n.includes(`
82
+ ${l}${w}${r}${p}`}function nx(e,t,r,s){let{type:i,value:n}=e,{actualString:o,implicitKey:a,indent:u,indentStep:l,inFlow:c}=t;if(a&&n.includes(`
83
83
  `)||c&&/[[\]{},]/.test(n))return Fs(n,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(n))return a||c||!n.includes(`
84
84
  `)?Fs(n,t):So(e,t,r,s);if(!a&&!c&&i!==ht.Scalar.PLAIN&&n.includes(`
85
85
  `))return So(e,t,r,s);if(Ao(n)){if(u==="")return t.forceBlockIndent=!0,So(e,t,r,s);if(a&&u===l)return Fs(n,t)}let f=n.replace(/\n+/g,`$&
86
- ${u}`);if(o){let h=g=>g.default&&g.tag!=="tag:yaml.org,2002:str"&&g.test?.test(f),{compat:p,tags:m}=t.doc.schema;if(m.some(h)||p?.some(h))return Fs(n,t)}return a?f:lr.foldFlowLines(f,u,lr.FOLD_FLOW,xo(t,!1))}function rx(e,t,r,s){let{implicitKey:i,inFlow:n}=t,o=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)}),{type:a}=e;a!==ht.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=ht.Scalar.QUOTE_DOUBLE);let u=c=>{switch(c){case ht.Scalar.BLOCK_FOLDED:case ht.Scalar.BLOCK_LITERAL:return i||n?Fs(o.value,t):So(o,t,r,s);case ht.Scalar.QUOTE_DOUBLE:return ji(o.value,t);case ht.Scalar.QUOTE_SINGLE:return Cl(o.value,t);case ht.Scalar.PLAIN:return tx(o,t,r,s);default:return null}},l=u(a);if(l===null){let{defaultKeyType:c,defaultStringType:f}=t.options,h=i&&c||f;if(l=u(h),l===null)throw new Error(`Unsupported default string type ${h}`)}return l}Yp.stringifyString=rx});var Ui=_(Sl=>{"use strict";var sx=yo(),cr=Z(),ix=Ni(),nx=qi();function ox(e,t){let r=Object.assign({blockQuote:!0,commentString:ix.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},e.schema.toStringOptions,t),s;switch(r.collectionStyle){case"block":s=!1;break;case"flow":s=!0;break;default:s=null}return{anchors:new Set,doc:e,flowCollectionPadding:r.flowCollectionPadding?" ":"",indent:"",indentStep:typeof r.indent=="number"?" ".repeat(r.indent):" ",inFlow:s,options:r}}function ax(e,t){if(t.tag){let i=e.filter(n=>n.tag===t.tag);if(i.length>0)return i.find(n=>n.format===t.format)??i[0]}let r,s;if(cr.isScalar(t)){s=t.value;let i=e.filter(n=>n.identify?.(s));if(i.length>1){let n=i.filter(o=>o.test);n.length>0&&(i=n)}r=i.find(n=>n.format===t.format)??i.find(n=>!n.format)}else s=t,r=e.find(i=>i.nodeClass&&s instanceof i.nodeClass);if(!r){let i=s?.constructor?.name??(s===null?"null":typeof s);throw new Error(`Tag not resolved for ${i} value`)}return r}function ux(e,t,{anchors:r,doc:s}){if(!s.directives)return"";let i=[],n=(cr.isScalar(e)||cr.isCollection(e))&&e.anchor;n&&sx.anchorIsValid(n)&&(r.add(n),i.push(`&${n}`));let o=e.tag??(t.default?null:t.tag);return o&&i.push(s.directives.tagString(o)),i.join(" ")}function lx(e,t,r,s){if(cr.isPair(e))return e.toString(t,r,s);if(cr.isAlias(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw new TypeError("Cannot stringify circular structure without alias nodes");t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i,n=cr.isNode(e)?e:t.doc.createNode(e,{onTagObj:u=>i=u});i??(i=ax(t.doc.schema.tags,n));let o=ux(n,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);let a=typeof i.stringify=="function"?i.stringify(n,t,r,s):cr.isScalar(n)?nx.stringifyString(n,t,r,s):n.toString(t,r,s);return o?cr.isScalar(n)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
87
- ${t.indent}${a}`:a}Sl.createStringifyContext=ox;Sl.stringify=lx});var em=_(Qp=>{"use strict";var jt=Z(),Zp=de(),Xp=Ui(),Gi=Ni();function cx({key:e,value:t},r,s,i){let{allNullValues:n,doc:o,indent:a,indentStep:u,options:{commentString:l,indentSeq:c,simpleKeys:f}}=r,h=jt.isNode(e)&&e.comment||null;if(f){if(h)throw new Error("With simple keys, key nodes cannot have comments");if(jt.isCollection(e)||!jt.isNode(e)&&typeof e=="object"){let $="With simple keys, collection cannot be used as a key value";throw new Error($)}}let p=!f&&(!e||h&&t==null&&!r.inFlow||jt.isCollection(e)||(jt.isScalar(e)?e.type===Zp.Scalar.BLOCK_FOLDED||e.type===Zp.Scalar.BLOCK_LITERAL:typeof e=="object"));r=Object.assign({},r,{allNullValues:!1,implicitKey:!p&&(f||!n),indent:a+u});let m=!1,g=!1,D=Xp.stringify(e,r,()=>m=!0,()=>g=!0);if(!p&&!r.inFlow&&D.length>1024){if(f)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(r.inFlow){if(n||t==null)return m&&s&&s(),D===""?"?":p?`? ${D}`:D}else if(n&&!f||t==null&&p)return D=`? ${D}`,h&&!m?D+=Gi.lineComment(D,r.indent,l(h)):g&&i&&i(),D;m&&(h=null),p?(h&&(D+=Gi.lineComment(D,r.indent,l(h))),D=`? ${D}
88
- ${a}:`):(D=`${D}:`,h&&(D+=Gi.lineComment(D,r.indent,l(h))));let b,w,v;jt.isNode(t)?(b=!!t.spaceBefore,w=t.commentBefore,v=t.comment):(b=!1,w=null,v=null,t&&typeof t=="object"&&(t=o.createNode(t))),r.implicitKey=!1,!p&&!h&&jt.isScalar(t)&&(r.indentAtStart=D.length+1),g=!1,!c&&u.length>=2&&!r.inFlow&&!p&&jt.isSeq(t)&&!t.flow&&!t.tag&&!t.anchor&&(r.indent=r.indent.substring(2));let E=!1,C=Xp.stringify(t,r,()=>E=!0,()=>g=!0),x=" ";if(h||b||w){if(x=b?`
86
+ ${u}`);if(o){let h=g=>g.default&&g.tag!=="tag:yaml.org,2002:str"&&g.test?.test(f),{compat:p,tags:m}=t.doc.schema;if(m.some(h)||p?.some(h))return Fs(n,t)}return a?f:cr.foldFlowLines(f,u,cr.FOLD_FLOW,xo(t,!1))}function ox(e,t,r,s){let{implicitKey:i,inFlow:n}=t,o=typeof e.value=="string"?e:Object.assign({},e,{value:String(e.value)}),{type:a}=e;a!==ht.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=ht.Scalar.QUOTE_DOUBLE);let u=c=>{switch(c){case ht.Scalar.BLOCK_FOLDED:case ht.Scalar.BLOCK_LITERAL:return i||n?Fs(o.value,t):So(o,t,r,s);case ht.Scalar.QUOTE_DOUBLE:return qi(o.value,t);case ht.Scalar.QUOTE_SINGLE:return Cl(o.value,t);case ht.Scalar.PLAIN:return nx(o,t,r,s);default:return null}},l=u(a);if(l===null){let{defaultKeyType:c,defaultStringType:f}=t.options,h=i&&c||f;if(l=u(h),l===null)throw new Error(`Unsupported default string type ${h}`)}return l}Zp.stringifyString=ox});var Gi=_(Sl=>{"use strict";var ax=yo(),fr=Z(),ux=Mi(),lx=Ui();function cx(e,t){let r=Object.assign({blockQuote:!0,commentString:ux.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},e.schema.toStringOptions,t),s;switch(r.collectionStyle){case"block":s=!1;break;case"flow":s=!0;break;default:s=null}return{anchors:new Set,doc:e,flowCollectionPadding:r.flowCollectionPadding?" ":"",indent:"",indentStep:typeof r.indent=="number"?" ".repeat(r.indent):" ",inFlow:s,options:r}}function fx(e,t){if(t.tag){let i=e.filter(n=>n.tag===t.tag);if(i.length>0)return i.find(n=>n.format===t.format)??i[0]}let r,s;if(fr.isScalar(t)){s=t.value;let i=e.filter(n=>n.identify?.(s));if(i.length>1){let n=i.filter(o=>o.test);n.length>0&&(i=n)}r=i.find(n=>n.format===t.format)??i.find(n=>!n.format)}else s=t,r=e.find(i=>i.nodeClass&&s instanceof i.nodeClass);if(!r){let i=s?.constructor?.name??(s===null?"null":typeof s);throw new Error(`Tag not resolved for ${i} value`)}return r}function dx(e,t,{anchors:r,doc:s}){if(!s.directives)return"";let i=[],n=(fr.isScalar(e)||fr.isCollection(e))&&e.anchor;n&&ax.anchorIsValid(n)&&(r.add(n),i.push(`&${n}`));let o=e.tag??(t.default?null:t.tag);return o&&i.push(s.directives.tagString(o)),i.join(" ")}function hx(e,t,r,s){if(fr.isPair(e))return e.toString(t,r,s);if(fr.isAlias(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw new TypeError("Cannot stringify circular structure without alias nodes");t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i,n=fr.isNode(e)?e:t.doc.createNode(e,{onTagObj:u=>i=u});i??(i=fx(t.doc.schema.tags,n));let o=dx(n,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);let a=typeof i.stringify=="function"?i.stringify(n,t,r,s):fr.isScalar(n)?lx.stringifyString(n,t,r,s):n.toString(t,r,s);return o?fr.isScalar(n)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
87
+ ${t.indent}${a}`:a}Sl.createStringifyContext=cx;Sl.stringify=hx});var tm=_(em=>{"use strict";var jt=Z(),Xp=he(),Qp=Gi(),Vi=Mi();function px({key:e,value:t},r,s,i){let{allNullValues:n,doc:o,indent:a,indentStep:u,options:{commentString:l,indentSeq:c,simpleKeys:f}}=r,h=jt.isNode(e)&&e.comment||null;if(f){if(h)throw new Error("With simple keys, key nodes cannot have comments");if(jt.isCollection(e)||!jt.isNode(e)&&typeof e=="object"){let $="With simple keys, collection cannot be used as a key value";throw new Error($)}}let p=!f&&(!e||h&&t==null&&!r.inFlow||jt.isCollection(e)||(jt.isScalar(e)?e.type===Xp.Scalar.BLOCK_FOLDED||e.type===Xp.Scalar.BLOCK_LITERAL:typeof e=="object"));r=Object.assign({},r,{allNullValues:!1,implicitKey:!p&&(f||!n),indent:a+u});let m=!1,g=!1,D=Qp.stringify(e,r,()=>m=!0,()=>g=!0);if(!p&&!r.inFlow&&D.length>1024){if(f)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");p=!0}if(r.inFlow){if(n||t==null)return m&&s&&s(),D===""?"?":p?`? ${D}`:D}else if(n&&!f||t==null&&p)return D=`? ${D}`,h&&!m?D+=Vi.lineComment(D,r.indent,l(h)):g&&i&&i(),D;m&&(h=null),p?(h&&(D+=Vi.lineComment(D,r.indent,l(h))),D=`? ${D}
88
+ ${a}:`):(D=`${D}:`,h&&(D+=Vi.lineComment(D,r.indent,l(h))));let b,w,v;jt.isNode(t)?(b=!!t.spaceBefore,w=t.commentBefore,v=t.comment):(b=!1,w=null,v=null,t&&typeof t=="object"&&(t=o.createNode(t))),r.implicitKey=!1,!p&&!h&&jt.isScalar(t)&&(r.indentAtStart=D.length+1),g=!1,!c&&u.length>=2&&!r.inFlow&&!p&&jt.isSeq(t)&&!t.flow&&!t.tag&&!t.anchor&&(r.indent=r.indent.substring(2));let E=!1,C=Qp.stringify(t,r,()=>E=!0,()=>g=!0),x=" ";if(h||b||w){if(x=b?`
89
89
  `:"",w){let $=l(w);x+=`
90
- ${Gi.indentComment($,r.indent)}`}C===""&&!r.inFlow?x===`
90
+ ${Vi.indentComment($,r.indent)}`}C===""&&!r.inFlow?x===`
91
91
  `&&v&&(x=`
92
92
 
93
93
  `):x+=`
94
94
  ${r.indent}`}else if(!p&&jt.isCollection(t)){let $=C[0],F=C.indexOf(`
95
- `),R=F!==-1,W=r.inFlow??t.flow??t.items.length===0;if(R||!W){let ae=!1;if(R&&($==="&"||$==="!")){let H=C.indexOf(" ");$==="&"&&H!==-1&&H<F&&C[H+1]==="!"&&(H=C.indexOf(" ",H+1)),(H===-1||F<H)&&(ae=!0)}ae||(x=`
95
+ `),R=F!==-1,W=r.inFlow??t.flow??t.items.length===0;if(R||!W){let ae=!1;if(R&&($==="&"||$==="!")){let K=C.indexOf(" ");$==="&"&&K!==-1&&K<F&&C[K+1]==="!"&&(K=C.indexOf(" ",K+1)),(K===-1||F<K)&&(ae=!0)}ae||(x=`
96
96
  ${r.indent}`)}}else(C===""||C[0]===`
97
- `)&&(x="");return D+=x+C,r.inFlow?E&&s&&s():v&&!E?D+=Gi.lineComment(D,r.indent,l(v)):g&&i&&i(),D}Qp.stringifyPair=cx});var Al=_(xl=>{"use strict";var tm=require("process");function fx(e,...t){e==="debug"&&console.log(...t)}function dx(e,t){(e==="debug"||e==="warn")&&(typeof tm.emitWarning=="function"?tm.emitWarning(t):console.warn(t))}xl.debug=fx;xl.warn=dx});var _o=_(Io=>{"use strict";var Vi=Z(),rm=de(),Ro="<<",ko={identify:e=>e===Ro||typeof e=="symbol"&&e.description===Ro,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new rm.Scalar(Symbol(Ro)),{addToJSMap:sm}),stringify:()=>Ro},hx=(e,t)=>(ko.identify(t)||Vi.isScalar(t)&&(!t.type||t.type===rm.Scalar.PLAIN)&&ko.identify(t.value))&&e?.doc.schema.tags.some(r=>r.tag===ko.tag&&r.default);function sm(e,t,r){if(r=e&&Vi.isAlias(r)?r.resolve(e.doc):r,Vi.isSeq(r))for(let s of r.items)Rl(e,t,s);else if(Array.isArray(r))for(let s of r)Rl(e,t,s);else Rl(e,t,r)}function Rl(e,t,r){let s=e&&Vi.isAlias(r)?r.resolve(e.doc):r;if(!Vi.isMap(s))throw new Error("Merge sources must be maps or map aliases");let i=s.toJSON(null,e,Map);for(let[n,o]of i)t instanceof Map?t.has(n)||t.set(n,o):t instanceof Set?t.add(n):Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{value:o,writable:!0,enumerable:!0,configurable:!0});return t}Io.addMergeToJSMap=sm;Io.isMergeKey=hx;Io.merge=ko});var Il=_(om=>{"use strict";var px=Al(),im=_o(),mx=Ui(),nm=Z(),kl=ar();function gx(e,t,{key:r,value:s}){if(nm.isNode(r)&&r.addToJSMap)r.addToJSMap(e,t,s);else if(im.isMergeKey(e,r))im.addMergeToJSMap(e,t,s);else{let i=kl.toJS(r,"",e);if(t instanceof Map)t.set(i,kl.toJS(s,i,e));else if(t instanceof Set)t.add(i);else{let n=Dx(r,i,e),o=kl.toJS(s,n,e);n in t?Object.defineProperty(t,n,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[n]=o}}return t}function Dx(e,t,r){if(t===null)return"";if(typeof t!="object")return String(t);if(nm.isNode(e)&&r?.doc){let s=mx.createStringifyContext(r.doc,{});s.anchors=new Set;for(let n of r.anchors.keys())s.anchors.add(n.anchor);s.inFlow=!0,s.inStringifyKey=!0;let i=e.toString(s);if(!r.mapKeyWarned){let n=JSON.stringify(i);n.length>40&&(n=n.substring(0,36)+'..."'),px.warn(r.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${n}. Set mapAsMap: true to use object keys.`),r.mapKeyWarned=!0}return i}return JSON.stringify(t)}om.addPairToJSMap=gx});var fr=_(_l=>{"use strict";var am=Li(),yx=em(),wx=Il(),To=Z();function bx(e,t,r){let s=am.createNode(e,void 0,r),i=am.createNode(t,void 0,r);return new $o(s,i)}var $o=class e{constructor(t,r=null){Object.defineProperty(this,To.NODE_TYPE,{value:To.PAIR}),this.key=t,this.value=r}clone(t){let{key:r,value:s}=this;return To.isNode(r)&&(r=r.clone(t)),To.isNode(s)&&(s=s.clone(t)),new e(r,s)}toJSON(t,r){let s=r?.mapAsMap?new Map:{};return wx.addPairToJSMap(r,s,this)}toString(t,r,s){return t?.doc?yx.stringifyPair(this,t,r,s):JSON.stringify(this)}};_l.Pair=$o;_l.createPair=bx});var Tl=_(lm=>{"use strict";var Lr=Z(),um=Ui(),Po=Ni();function vx(e,t,r){return(t.inFlow??e.flow?Cx:Ex)(e,t,r)}function Ex({comment:e,items:t},r,{blockItemPrefix:s,flowChars:i,itemIndent:n,onChompKeep:o,onComment:a}){let{indent:u,options:{commentString:l}}=r,c=Object.assign({},r,{indent:n,type:null}),f=!1,h=[];for(let m=0;m<t.length;++m){let g=t[m],D=null;if(Lr.isNode(g))!f&&g.spaceBefore&&h.push(""),Bo(r,h,g.commentBefore,f),g.comment&&(D=g.comment);else if(Lr.isPair(g)){let w=Lr.isNode(g.key)?g.key:null;w&&(!f&&w.spaceBefore&&h.push(""),Bo(r,h,w.commentBefore,f))}f=!1;let b=um.stringify(g,c,()=>D=null,()=>f=!0);D&&(b+=Po.lineComment(b,n,l(D))),f&&D&&(f=!1),h.push(s+b)}let p;if(h.length===0)p=i.start+i.end;else{p=h[0];for(let m=1;m<h.length;++m){let g=h[m];p+=g?`
97
+ `)&&(x="");return D+=x+C,r.inFlow?E&&s&&s():v&&!E?D+=Vi.lineComment(D,r.indent,l(v)):g&&i&&i(),D}em.stringifyPair=px});var Al=_(xl=>{"use strict";var rm=require("process");function mx(e,...t){e==="debug"&&console.log(...t)}function gx(e,t){(e==="debug"||e==="warn")&&(typeof rm.emitWarning=="function"?rm.emitWarning(t):console.warn(t))}xl.debug=mx;xl.warn=gx});var _o=_(Io=>{"use strict";var Wi=Z(),sm=he(),Ro="<<",ko={identify:e=>e===Ro||typeof e=="symbol"&&e.description===Ro,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new sm.Scalar(Symbol(Ro)),{addToJSMap:im}),stringify:()=>Ro},Dx=(e,t)=>(ko.identify(t)||Wi.isScalar(t)&&(!t.type||t.type===sm.Scalar.PLAIN)&&ko.identify(t.value))&&e?.doc.schema.tags.some(r=>r.tag===ko.tag&&r.default);function im(e,t,r){if(r=e&&Wi.isAlias(r)?r.resolve(e.doc):r,Wi.isSeq(r))for(let s of r.items)Rl(e,t,s);else if(Array.isArray(r))for(let s of r)Rl(e,t,s);else Rl(e,t,r)}function Rl(e,t,r){let s=e&&Wi.isAlias(r)?r.resolve(e.doc):r;if(!Wi.isMap(s))throw new Error("Merge sources must be maps or map aliases");let i=s.toJSON(null,e,Map);for(let[n,o]of i)t instanceof Map?t.has(n)||t.set(n,o):t instanceof Set?t.add(n):Object.prototype.hasOwnProperty.call(t,n)||Object.defineProperty(t,n,{value:o,writable:!0,enumerable:!0,configurable:!0});return t}Io.addMergeToJSMap=im;Io.isMergeKey=Dx;Io.merge=ko});var Il=_(am=>{"use strict";var yx=Al(),nm=_o(),wx=Gi(),om=Z(),kl=ur();function bx(e,t,{key:r,value:s}){if(om.isNode(r)&&r.addToJSMap)r.addToJSMap(e,t,s);else if(nm.isMergeKey(e,r))nm.addMergeToJSMap(e,t,s);else{let i=kl.toJS(r,"",e);if(t instanceof Map)t.set(i,kl.toJS(s,i,e));else if(t instanceof Set)t.add(i);else{let n=vx(r,i,e),o=kl.toJS(s,n,e);n in t?Object.defineProperty(t,n,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[n]=o}}return t}function vx(e,t,r){if(t===null)return"";if(typeof t!="object")return String(t);if(om.isNode(e)&&r?.doc){let s=wx.createStringifyContext(r.doc,{});s.anchors=new Set;for(let n of r.anchors.keys())s.anchors.add(n.anchor);s.inFlow=!0,s.inStringifyKey=!0;let i=e.toString(s);if(!r.mapKeyWarned){let n=JSON.stringify(i);n.length>40&&(n=n.substring(0,36)+'..."'),yx.warn(r.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${n}. Set mapAsMap: true to use object keys.`),r.mapKeyWarned=!0}return i}return JSON.stringify(t)}am.addPairToJSMap=bx});var dr=_(_l=>{"use strict";var um=Ni(),Ex=tm(),Cx=Il(),To=Z();function Fx(e,t,r){let s=um.createNode(e,void 0,r),i=um.createNode(t,void 0,r);return new $o(s,i)}var $o=class e{constructor(t,r=null){Object.defineProperty(this,To.NODE_TYPE,{value:To.PAIR}),this.key=t,this.value=r}clone(t){let{key:r,value:s}=this;return To.isNode(r)&&(r=r.clone(t)),To.isNode(s)&&(s=s.clone(t)),new e(r,s)}toJSON(t,r){let s=r?.mapAsMap?new Map:{};return Cx.addPairToJSMap(r,s,this)}toString(t,r,s){return t?.doc?Ex.stringifyPair(this,t,r,s):JSON.stringify(this)}};_l.Pair=$o;_l.createPair=Fx});var Tl=_(cm=>{"use strict";var Lr=Z(),lm=Gi(),Po=Mi();function Sx(e,t,r){return(t.inFlow??e.flow?Ax:xx)(e,t,r)}function xx({comment:e,items:t},r,{blockItemPrefix:s,flowChars:i,itemIndent:n,onChompKeep:o,onComment:a}){let{indent:u,options:{commentString:l}}=r,c=Object.assign({},r,{indent:n,type:null}),f=!1,h=[];for(let m=0;m<t.length;++m){let g=t[m],D=null;if(Lr.isNode(g))!f&&g.spaceBefore&&h.push(""),Bo(r,h,g.commentBefore,f),g.comment&&(D=g.comment);else if(Lr.isPair(g)){let w=Lr.isNode(g.key)?g.key:null;w&&(!f&&w.spaceBefore&&h.push(""),Bo(r,h,w.commentBefore,f))}f=!1;let b=lm.stringify(g,c,()=>D=null,()=>f=!0);D&&(b+=Po.lineComment(b,n,l(D))),f&&D&&(f=!1),h.push(s+b)}let p;if(h.length===0)p=i.start+i.end;else{p=h[0];for(let m=1;m<h.length;++m){let g=h[m];p+=g?`
98
98
  ${u}${g}`:`
99
99
  `}}return e?(p+=`
100
- `+Po.indentComment(l(e),u),a&&a()):f&&o&&o(),p}function Cx({items:e},t,{flowChars:r,itemIndent:s}){let{indent:i,indentStep:n,flowCollectionPadding:o,options:{commentString:a}}=t;s+=n;let u=Object.assign({},t,{indent:s,inFlow:!0,type:null}),l=!1,c=0,f=[];for(let m=0;m<e.length;++m){let g=e[m],D=null;if(Lr.isNode(g))g.spaceBefore&&f.push(""),Bo(t,f,g.commentBefore,!1),g.comment&&(D=g.comment);else if(Lr.isPair(g)){let w=Lr.isNode(g.key)?g.key:null;w&&(w.spaceBefore&&f.push(""),Bo(t,f,w.commentBefore,!1),w.comment&&(l=!0));let v=Lr.isNode(g.value)?g.value:null;v?(v.comment&&(D=v.comment),v.commentBefore&&(l=!0)):g.value==null&&w?.comment&&(D=w.comment)}D&&(l=!0);let b=um.stringify(g,u,()=>D=null);l||(l=f.length>c||b.includes(`
100
+ `+Po.indentComment(l(e),u),a&&a()):f&&o&&o(),p}function Ax({items:e},t,{flowChars:r,itemIndent:s}){let{indent:i,indentStep:n,flowCollectionPadding:o,options:{commentString:a}}=t;s+=n;let u=Object.assign({},t,{indent:s,inFlow:!0,type:null}),l=!1,c=0,f=[];for(let m=0;m<e.length;++m){let g=e[m],D=null;if(Lr.isNode(g))g.spaceBefore&&f.push(""),Bo(t,f,g.commentBefore,!1),g.comment&&(D=g.comment);else if(Lr.isPair(g)){let w=Lr.isNode(g.key)?g.key:null;w&&(w.spaceBefore&&f.push(""),Bo(t,f,w.commentBefore,!1),w.comment&&(l=!0));let v=Lr.isNode(g.value)?g.value:null;v?(v.comment&&(D=v.comment),v.commentBefore&&(l=!0)):g.value==null&&w?.comment&&(D=w.comment)}D&&(l=!0);let b=lm.stringify(g,u,()=>D=null);l||(l=f.length>c||b.includes(`
101
101
  `)),m<e.length-1?b+=",":t.options.trailingComma&&(t.options.lineWidth>0&&(l||(l=f.reduce((w,v)=>w+v.length+2,2)+(b.length+2)>t.options.lineWidth)),l&&(b+=",")),D&&(b+=Po.lineComment(b,s,a(D))),f.push(b),c=f.length}let{start:h,end:p}=r;if(f.length===0)return h+p;if(!l){let m=f.reduce((g,D)=>g+D.length+2,2);l=t.options.lineWidth>0&&m>t.options.lineWidth}if(l){let m=h;for(let g of f)m+=g?`
102
102
  ${n}${i}${g}`:`
103
103
  `;return`${m}
104
- ${i}${p}`}else return`${h}${o}${f.join(" ")}${o}${p}`}function Bo({indent:e,options:{commentString:t}},r,s,i){if(s&&i&&(s=s.replace(/^\n+/,"")),s){let n=Po.indentComment(t(s),e);r.push(n.trimStart())}}lm.stringifyCollection=vx});var hr=_(Pl=>{"use strict";var Fx=Tl(),Sx=Il(),xx=Eo(),dr=Z(),Oo=fr(),Ax=de();function Wi(e,t){let r=dr.isScalar(t)?t.value:t;for(let s of e)if(dr.isPair(s)&&(s.key===t||s.key===r||dr.isScalar(s.key)&&s.key.value===r))return s}var $l=class extends xx.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(t){super(dr.MAP,t),this.items=[]}static from(t,r,s){let{keepUndefined:i,replacer:n}=s,o=new this(t),a=(u,l)=>{if(typeof n=="function")l=n.call(r,u,l);else if(Array.isArray(n)&&!n.includes(u))return;(l!==void 0||i)&&o.items.push(Oo.createPair(u,l,s))};if(r instanceof Map)for(let[u,l]of r)a(u,l);else if(r&&typeof r=="object")for(let u of Object.keys(r))a(u,r[u]);return typeof t.sortMapEntries=="function"&&o.items.sort(t.sortMapEntries),o}add(t,r){let s;dr.isPair(t)?s=t:!t||typeof t!="object"||!("key"in t)?s=new Oo.Pair(t,t?.value):s=new Oo.Pair(t.key,t.value);let i=Wi(this.items,s.key),n=this.schema?.sortMapEntries;if(i){if(!r)throw new Error(`Key ${s.key} already set`);dr.isScalar(i.value)&&Ax.isScalarValue(s.value)?i.value.value=s.value:i.value=s.value}else if(n){let o=this.items.findIndex(a=>n(s,a)<0);o===-1?this.items.push(s):this.items.splice(o,0,s)}else this.items.push(s)}delete(t){let r=Wi(this.items,t);return r?this.items.splice(this.items.indexOf(r),1).length>0:!1}get(t,r){let i=Wi(this.items,t)?.value;return(!r&&dr.isScalar(i)?i.value:i)??void 0}has(t){return!!Wi(this.items,t)}set(t,r){this.add(new Oo.Pair(t,r),!0)}toJSON(t,r,s){let i=s?new s:r?.mapAsMap?new Map:{};r?.onCreate&&r.onCreate(i);for(let n of this.items)Sx.addPairToJSMap(r,i,n);return i}toString(t,r,s){if(!t)return JSON.stringify(this);for(let i of this.items)if(!dr.isPair(i))throw new Error(`Map items must all be pairs; found ${JSON.stringify(i)} instead`);return!t.allNullValues&&this.hasAllNullValues(!1)&&(t=Object.assign({},t,{allNullValues:!0})),Fx.stringifyCollection(this,t,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:t.indent||"",onChompKeep:s,onComment:r})}};Pl.YAMLMap=$l;Pl.findPair=Wi});var Ss=_(fm=>{"use strict";var Rx=Z(),cm=hr(),kx={collection:"map",default:!0,nodeClass:cm.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(e,t){return Rx.isMap(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,r)=>cm.YAMLMap.from(e,t,r)};fm.map=kx});var pr=_(dm=>{"use strict";var Ix=Li(),_x=Tl(),Tx=Eo(),No=Z(),$x=de(),Px=ar(),Bl=class extends Tx.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(t){super(No.SEQ,t),this.items=[]}add(t){this.items.push(t)}delete(t){let r=Lo(t);return typeof r!="number"?!1:this.items.splice(r,1).length>0}get(t,r){let s=Lo(t);if(typeof s!="number")return;let i=this.items[s];return!r&&No.isScalar(i)?i.value:i}has(t){let r=Lo(t);return typeof r=="number"&&r<this.items.length}set(t,r){let s=Lo(t);if(typeof s!="number")throw new Error(`Expected a valid index, not ${t}.`);let i=this.items[s];No.isScalar(i)&&$x.isScalarValue(r)?i.value=r:this.items[s]=r}toJSON(t,r){let s=[];r?.onCreate&&r.onCreate(s);let i=0;for(let n of this.items)s.push(Px.toJS(n,String(i++),r));return s}toString(t,r,s){return t?_x.stringifyCollection(this,t,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(t.indent||"")+" ",onChompKeep:s,onComment:r}):JSON.stringify(this)}static from(t,r,s){let{replacer:i}=s,n=new this(t);if(r&&Symbol.iterator in Object(r)){let o=0;for(let a of r){if(typeof i=="function"){let u=r instanceof Set?a:String(o++);a=i.call(r,u,a)}n.items.push(Ix.createNode(a,void 0,s))}}return n}};function Lo(e){let t=No.isScalar(e)?e.value:e;return t&&typeof t=="string"&&(t=Number(t)),typeof t=="number"&&Number.isInteger(t)&&t>=0?t:null}dm.YAMLSeq=Bl});var xs=_(pm=>{"use strict";var Bx=Z(),hm=pr(),Ox={collection:"seq",default:!0,nodeClass:hm.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(e,t){return Bx.isSeq(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,r)=>hm.YAMLSeq.from(e,t,r)};pm.seq=Ox});var Ki=_(mm=>{"use strict";var Lx=qi(),Nx={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,r,s){return t=Object.assign({actualString:!0},t),Lx.stringifyString(e,t,r,s)}};mm.string=Nx});var Mo=_(ym=>{"use strict";var gm=de(),Dm={identify:e=>e==null,createNode:()=>new gm.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new gm.Scalar(null),stringify:({source:e},t)=>typeof e=="string"&&Dm.test.test(e)?e:t.options.nullStr};ym.nullTag=Dm});var Ol=_(bm=>{"use strict";var Mx=de(),wm={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Mx.Scalar(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},r){if(e&&wm.test.test(e)){let s=e[0]==="t"||e[0]==="T";if(t===s)return e}return t?r.options.trueStr:r.options.falseStr}};bm.boolTag=wm});var As=_(vm=>{"use strict";function jx({format:e,minFractionDigits:t,tag:r,value:s}){if(typeof s=="bigint")return String(s);let i=typeof s=="number"?s:Number(s);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let n=Object.is(s,-0)?"-0":JSON.stringify(s);if(!e&&t&&(!r||r==="tag:yaml.org,2002:float")&&/^\d/.test(n)){let o=n.indexOf(".");o<0&&(o=n.length,n+=".");let a=t-(n.length-o-1);for(;a-- >0;)n+="0"}return n}vm.stringifyNumber=jx});var Nl=_(jo=>{"use strict";var qx=de(),Ll=As(),Ux={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Ll.stringifyNumber},Gx={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():Ll.stringifyNumber(e)}},Vx={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let t=new qx.Scalar(parseFloat(e)),r=e.indexOf(".");return r!==-1&&e[e.length-1]==="0"&&(t.minFractionDigits=e.length-r-1),t},stringify:Ll.stringifyNumber};jo.float=Vx;jo.floatExp=Gx;jo.floatNaN=Ux});var jl=_(Uo=>{"use strict";var Em=As(),qo=e=>typeof e=="bigint"||Number.isInteger(e),Ml=(e,t,r,{intAsBigInt:s})=>s?BigInt(e):parseInt(e.substring(t),r);function Cm(e,t,r){let{value:s}=e;return qo(s)&&s>=0?r+s.toString(t):Em.stringifyNumber(e)}var Wx={identify:e=>qo(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,r)=>Ml(e,2,8,r),stringify:e=>Cm(e,8,"0o")},Kx={identify:qo,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,r)=>Ml(e,0,10,r),stringify:Em.stringifyNumber},Hx={identify:e=>qo(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,r)=>Ml(e,2,16,r),stringify:e=>Cm(e,16,"0x")};Uo.int=Kx;Uo.intHex=Hx;Uo.intOct=Wx});var Sm=_(Fm=>{"use strict";var zx=Ss(),Jx=Mo(),Yx=xs(),Zx=Ki(),Xx=Ol(),ql=Nl(),Ul=jl(),Qx=[zx.map,Yx.seq,Zx.string,Jx.nullTag,Xx.boolTag,Ul.intOct,Ul.int,Ul.intHex,ql.floatNaN,ql.floatExp,ql.float];Fm.schema=Qx});var Rm=_(Am=>{"use strict";var e2=de(),t2=Ss(),r2=xs();function xm(e){return typeof e=="bigint"||Number.isInteger(e)}var Go=({value:e})=>JSON.stringify(e),s2=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:Go},{identify:e=>e==null,createNode:()=>new e2.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Go},{identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:e=>e==="true",stringify:Go},{identify:xm,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:r})=>r?BigInt(e):parseInt(e,10),stringify:({value:e})=>xm(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:Go}],i2={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},n2=[t2.map,r2.seq].concat(s2,i2);Am.schema=n2});var Vl=_(km=>{"use strict";var Hi=require("buffer"),Gl=de(),o2=qi(),a2={identify:e=>e instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof Hi.Buffer=="function")return Hi.Buffer.from(e,"base64");if(typeof atob=="function"){let r=atob(e.replace(/[\n\r]/g,"")),s=new Uint8Array(r.length);for(let i=0;i<r.length;++i)s[i]=r.charCodeAt(i);return s}else return t("This environment does not support reading binary tags; either Buffer or atob is required"),e},stringify({comment:e,type:t,value:r},s,i,n){if(!r)return"";let o=r,a;if(typeof Hi.Buffer=="function")a=o instanceof Hi.Buffer?o.toString("base64"):Hi.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let u="";for(let l=0;l<o.length;++l)u+=String.fromCharCode(o[l]);a=btoa(u)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(t??(t=Gl.Scalar.BLOCK_LITERAL),t!==Gl.Scalar.QUOTE_DOUBLE){let u=Math.max(s.options.lineWidth-s.indent.length,s.options.minContentWidth),l=Math.ceil(a.length/u),c=new Array(l);for(let f=0,h=0;f<l;++f,h+=u)c[f]=a.substr(h,u);a=c.join(t===Gl.Scalar.BLOCK_LITERAL?`
105
- `:" ")}return o2.stringifyString({comment:e,type:t,value:a},s,i,n)}};km.binary=a2});var Ko=_(Wo=>{"use strict";var Vo=Z(),Wl=fr(),u2=de(),l2=pr();function Im(e,t){if(Vo.isSeq(e))for(let r=0;r<e.items.length;++r){let s=e.items[r];if(!Vo.isPair(s)){if(Vo.isMap(s)){s.items.length>1&&t("Each pair must have its own sequence indicator");let i=s.items[0]||new Wl.Pair(new u2.Scalar(null));if(s.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${s.commentBefore}
104
+ ${i}${p}`}else return`${h}${o}${f.join(" ")}${o}${p}`}function Bo({indent:e,options:{commentString:t}},r,s,i){if(s&&i&&(s=s.replace(/^\n+/,"")),s){let n=Po.indentComment(t(s),e);r.push(n.trimStart())}}cm.stringifyCollection=Sx});var pr=_(Pl=>{"use strict";var Rx=Tl(),kx=Il(),Ix=Eo(),hr=Z(),Oo=dr(),_x=he();function Hi(e,t){let r=hr.isScalar(t)?t.value:t;for(let s of e)if(hr.isPair(s)&&(s.key===t||s.key===r||hr.isScalar(s.key)&&s.key.value===r))return s}var $l=class extends Ix.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(t){super(hr.MAP,t),this.items=[]}static from(t,r,s){let{keepUndefined:i,replacer:n}=s,o=new this(t),a=(u,l)=>{if(typeof n=="function")l=n.call(r,u,l);else if(Array.isArray(n)&&!n.includes(u))return;(l!==void 0||i)&&o.items.push(Oo.createPair(u,l,s))};if(r instanceof Map)for(let[u,l]of r)a(u,l);else if(r&&typeof r=="object")for(let u of Object.keys(r))a(u,r[u]);return typeof t.sortMapEntries=="function"&&o.items.sort(t.sortMapEntries),o}add(t,r){let s;hr.isPair(t)?s=t:!t||typeof t!="object"||!("key"in t)?s=new Oo.Pair(t,t?.value):s=new Oo.Pair(t.key,t.value);let i=Hi(this.items,s.key),n=this.schema?.sortMapEntries;if(i){if(!r)throw new Error(`Key ${s.key} already set`);hr.isScalar(i.value)&&_x.isScalarValue(s.value)?i.value.value=s.value:i.value=s.value}else if(n){let o=this.items.findIndex(a=>n(s,a)<0);o===-1?this.items.push(s):this.items.splice(o,0,s)}else this.items.push(s)}delete(t){let r=Hi(this.items,t);return r?this.items.splice(this.items.indexOf(r),1).length>0:!1}get(t,r){let i=Hi(this.items,t)?.value;return(!r&&hr.isScalar(i)?i.value:i)??void 0}has(t){return!!Hi(this.items,t)}set(t,r){this.add(new Oo.Pair(t,r),!0)}toJSON(t,r,s){let i=s?new s:r?.mapAsMap?new Map:{};r?.onCreate&&r.onCreate(i);for(let n of this.items)kx.addPairToJSMap(r,i,n);return i}toString(t,r,s){if(!t)return JSON.stringify(this);for(let i of this.items)if(!hr.isPair(i))throw new Error(`Map items must all be pairs; found ${JSON.stringify(i)} instead`);return!t.allNullValues&&this.hasAllNullValues(!1)&&(t=Object.assign({},t,{allNullValues:!0})),Rx.stringifyCollection(this,t,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:t.indent||"",onChompKeep:s,onComment:r})}};Pl.YAMLMap=$l;Pl.findPair=Hi});var Ss=_(dm=>{"use strict";var Tx=Z(),fm=pr(),$x={collection:"map",default:!0,nodeClass:fm.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(e,t){return Tx.isMap(e)||t("Expected a mapping for this tag"),e},createNode:(e,t,r)=>fm.YAMLMap.from(e,t,r)};dm.map=$x});var mr=_(hm=>{"use strict";var Px=Ni(),Bx=Tl(),Ox=Eo(),No=Z(),Lx=he(),Nx=ur(),Bl=class extends Ox.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(t){super(No.SEQ,t),this.items=[]}add(t){this.items.push(t)}delete(t){let r=Lo(t);return typeof r!="number"?!1:this.items.splice(r,1).length>0}get(t,r){let s=Lo(t);if(typeof s!="number")return;let i=this.items[s];return!r&&No.isScalar(i)?i.value:i}has(t){let r=Lo(t);return typeof r=="number"&&r<this.items.length}set(t,r){let s=Lo(t);if(typeof s!="number")throw new Error(`Expected a valid index, not ${t}.`);let i=this.items[s];No.isScalar(i)&&Lx.isScalarValue(r)?i.value=r:this.items[s]=r}toJSON(t,r){let s=[];r?.onCreate&&r.onCreate(s);let i=0;for(let n of this.items)s.push(Nx.toJS(n,String(i++),r));return s}toString(t,r,s){return t?Bx.stringifyCollection(this,t,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(t.indent||"")+" ",onChompKeep:s,onComment:r}):JSON.stringify(this)}static from(t,r,s){let{replacer:i}=s,n=new this(t);if(r&&Symbol.iterator in Object(r)){let o=0;for(let a of r){if(typeof i=="function"){let u=r instanceof Set?a:String(o++);a=i.call(r,u,a)}n.items.push(Px.createNode(a,void 0,s))}}return n}};function Lo(e){let t=No.isScalar(e)?e.value:e;return t&&typeof t=="string"&&(t=Number(t)),typeof t=="number"&&Number.isInteger(t)&&t>=0?t:null}hm.YAMLSeq=Bl});var xs=_(mm=>{"use strict";var Mx=Z(),pm=mr(),jx={collection:"seq",default:!0,nodeClass:pm.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(e,t){return Mx.isSeq(e)||t("Expected a sequence for this tag"),e},createNode:(e,t,r)=>pm.YAMLSeq.from(e,t,r)};mm.seq=jx});var Ki=_(gm=>{"use strict";var qx=Ui(),Ux={identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,r,s){return t=Object.assign({actualString:!0},t),qx.stringifyString(e,t,r,s)}};gm.string=Ux});var Mo=_(wm=>{"use strict";var Dm=he(),ym={identify:e=>e==null,createNode:()=>new Dm.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Dm.Scalar(null),stringify:({source:e},t)=>typeof e=="string"&&ym.test.test(e)?e:t.options.nullStr};wm.nullTag=ym});var Ol=_(vm=>{"use strict";var Gx=he(),bm={identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Gx.Scalar(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},r){if(e&&bm.test.test(e)){let s=e[0]==="t"||e[0]==="T";if(t===s)return e}return t?r.options.trueStr:r.options.falseStr}};vm.boolTag=bm});var As=_(Em=>{"use strict";function Vx({format:e,minFractionDigits:t,tag:r,value:s}){if(typeof s=="bigint")return String(s);let i=typeof s=="number"?s:Number(s);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let n=Object.is(s,-0)?"-0":JSON.stringify(s);if(!e&&t&&(!r||r==="tag:yaml.org,2002:float")&&/^\d/.test(n)){let o=n.indexOf(".");o<0&&(o=n.length,n+=".");let a=t-(n.length-o-1);for(;a-- >0;)n+="0"}return n}Em.stringifyNumber=Vx});var Nl=_(jo=>{"use strict";var Wx=he(),Ll=As(),Hx={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Ll.stringifyNumber},Kx={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():Ll.stringifyNumber(e)}},zx={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let t=new Wx.Scalar(parseFloat(e)),r=e.indexOf(".");return r!==-1&&e[e.length-1]==="0"&&(t.minFractionDigits=e.length-r-1),t},stringify:Ll.stringifyNumber};jo.float=zx;jo.floatExp=Kx;jo.floatNaN=Hx});var jl=_(Uo=>{"use strict";var Cm=As(),qo=e=>typeof e=="bigint"||Number.isInteger(e),Ml=(e,t,r,{intAsBigInt:s})=>s?BigInt(e):parseInt(e.substring(t),r);function Fm(e,t,r){let{value:s}=e;return qo(s)&&s>=0?r+s.toString(t):Cm.stringifyNumber(e)}var Jx={identify:e=>qo(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,r)=>Ml(e,2,8,r),stringify:e=>Fm(e,8,"0o")},Yx={identify:qo,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,r)=>Ml(e,0,10,r),stringify:Cm.stringifyNumber},Zx={identify:e=>qo(e)&&e>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,r)=>Ml(e,2,16,r),stringify:e=>Fm(e,16,"0x")};Uo.int=Yx;Uo.intHex=Zx;Uo.intOct=Jx});var xm=_(Sm=>{"use strict";var Xx=Ss(),Qx=Mo(),e2=xs(),t2=Ki(),r2=Ol(),ql=Nl(),Ul=jl(),s2=[Xx.map,e2.seq,t2.string,Qx.nullTag,r2.boolTag,Ul.intOct,Ul.int,Ul.intHex,ql.floatNaN,ql.floatExp,ql.float];Sm.schema=s2});var km=_(Rm=>{"use strict";var i2=he(),n2=Ss(),o2=xs();function Am(e){return typeof e=="bigint"||Number.isInteger(e)}var Go=({value:e})=>JSON.stringify(e),a2=[{identify:e=>typeof e=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:Go},{identify:e=>e==null,createNode:()=>new i2.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Go},{identify:e=>typeof e=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:e=>e==="true",stringify:Go},{identify:Am,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:r})=>r?BigInt(e):parseInt(e,10),stringify:({value:e})=>Am(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:Go}],u2={default:!0,tag:"",test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}},l2=[n2.map,o2.seq].concat(a2,u2);Rm.schema=l2});var Vl=_(Im=>{"use strict";var zi=require("buffer"),Gl=he(),c2=Ui(),f2={identify:e=>e instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof zi.Buffer=="function")return zi.Buffer.from(e,"base64");if(typeof atob=="function"){let r=atob(e.replace(/[\n\r]/g,"")),s=new Uint8Array(r.length);for(let i=0;i<r.length;++i)s[i]=r.charCodeAt(i);return s}else return t("This environment does not support reading binary tags; either Buffer or atob is required"),e},stringify({comment:e,type:t,value:r},s,i,n){if(!r)return"";let o=r,a;if(typeof zi.Buffer=="function")a=o instanceof zi.Buffer?o.toString("base64"):zi.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let u="";for(let l=0;l<o.length;++l)u+=String.fromCharCode(o[l]);a=btoa(u)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(t??(t=Gl.Scalar.BLOCK_LITERAL),t!==Gl.Scalar.QUOTE_DOUBLE){let u=Math.max(s.options.lineWidth-s.indent.length,s.options.minContentWidth),l=Math.ceil(a.length/u),c=new Array(l);for(let f=0,h=0;f<l;++f,h+=u)c[f]=a.substr(h,u);a=c.join(t===Gl.Scalar.BLOCK_LITERAL?`
105
+ `:" ")}return c2.stringifyString({comment:e,type:t,value:a},s,i,n)}};Im.binary=f2});var Ho=_(Wo=>{"use strict";var Vo=Z(),Wl=dr(),d2=he(),h2=mr();function _m(e,t){if(Vo.isSeq(e))for(let r=0;r<e.items.length;++r){let s=e.items[r];if(!Vo.isPair(s)){if(Vo.isMap(s)){s.items.length>1&&t("Each pair must have its own sequence indicator");let i=s.items[0]||new Wl.Pair(new d2.Scalar(null));if(s.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${s.commentBefore}
106
106
  ${i.key.commentBefore}`:s.commentBefore),s.comment){let n=i.value??i.key;n.comment=n.comment?`${s.comment}
107
- ${n.comment}`:s.comment}s=i}e.items[r]=Vo.isPair(s)?s:new Wl.Pair(s)}}else t("Expected a sequence for this tag");return e}function _m(e,t,r){let{replacer:s}=r,i=new l2.YAMLSeq(e);i.tag="tag:yaml.org,2002:pairs";let n=0;if(t&&Symbol.iterator in Object(t))for(let o of t){typeof s=="function"&&(o=s.call(t,String(n++),o));let a,u;if(Array.isArray(o))if(o.length===2)a=o[0],u=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],u=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;i.items.push(Wl.createPair(a,u,r))}return i}var c2={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Im,createNode:_m};Wo.createPairs=_m;Wo.pairs=c2;Wo.resolvePairs=Im});var zl=_(Hl=>{"use strict";var Tm=Z(),Kl=ar(),zi=hr(),f2=pr(),$m=Ko(),Nr=class e extends f2.YAMLSeq{constructor(){super(),this.add=zi.YAMLMap.prototype.add.bind(this),this.delete=zi.YAMLMap.prototype.delete.bind(this),this.get=zi.YAMLMap.prototype.get.bind(this),this.has=zi.YAMLMap.prototype.has.bind(this),this.set=zi.YAMLMap.prototype.set.bind(this),this.tag=e.tag}toJSON(t,r){if(!r)return super.toJSON(t);let s=new Map;r?.onCreate&&r.onCreate(s);for(let i of this.items){let n,o;if(Tm.isPair(i)?(n=Kl.toJS(i.key,"",r),o=Kl.toJS(i.value,n,r)):n=Kl.toJS(i,"",r),s.has(n))throw new Error("Ordered maps must not include duplicate keys");s.set(n,o)}return s}static from(t,r,s){let i=$m.createPairs(t,r,s),n=new this;return n.items=i.items,n}};Nr.tag="tag:yaml.org,2002:omap";var d2={collection:"seq",identify:e=>e instanceof Map,nodeClass:Nr,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){let r=$m.resolvePairs(e,t),s=[];for(let{key:i}of r.items)Tm.isScalar(i)&&(s.includes(i.value)?t(`Ordered maps must not include duplicate keys: ${i.value}`):s.push(i.value));return Object.assign(new Nr,r)},createNode:(e,t,r)=>Nr.from(e,t,r)};Hl.YAMLOMap=Nr;Hl.omap=d2});var Nm=_(Jl=>{"use strict";var Pm=de();function Bm({value:e,source:t},r){return t&&(e?Om:Lm).test.test(t)?t:e?r.options.trueStr:r.options.falseStr}var Om={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Pm.Scalar(!0),stringify:Bm},Lm={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Pm.Scalar(!1),stringify:Bm};Jl.falseTag=Lm;Jl.trueTag=Om});var Mm=_(Ho=>{"use strict";var h2=de(),Yl=As(),p2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Yl.stringifyNumber},m2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():Yl.stringifyNumber(e)}},g2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let t=new h2.Scalar(parseFloat(e.replace(/_/g,""))),r=e.indexOf(".");if(r!==-1){let s=e.substring(r+1).replace(/_/g,"");s[s.length-1]==="0"&&(t.minFractionDigits=s.length)}return t},stringify:Yl.stringifyNumber};Ho.float=g2;Ho.floatExp=m2;Ho.floatNaN=p2});var qm=_(Yi=>{"use strict";var jm=As(),Ji=e=>typeof e=="bigint"||Number.isInteger(e);function zo(e,t,r,{intAsBigInt:s}){let i=e[0];if((i==="-"||i==="+")&&(t+=1),e=e.substring(t).replace(/_/g,""),s){switch(r){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}let o=BigInt(e);return i==="-"?BigInt(-1)*o:o}let n=parseInt(e,r);return i==="-"?-1*n:n}function Zl(e,t,r){let{value:s}=e;if(Ji(s)){let i=s.toString(t);return s<0?"-"+r+i.substr(1):r+i}return jm.stringifyNumber(e)}var D2={identify:Ji,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,r)=>zo(e,2,2,r),stringify:e=>Zl(e,2,"0b")},y2={identify:Ji,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,r)=>zo(e,1,8,r),stringify:e=>Zl(e,8,"0")},w2={identify:Ji,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,r)=>zo(e,0,10,r),stringify:jm.stringifyNumber},b2={identify:Ji,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,r)=>zo(e,2,16,r),stringify:e=>Zl(e,16,"0x")};Yi.int=w2;Yi.intBin=D2;Yi.intHex=b2;Yi.intOct=y2});var Ql=_(Xl=>{"use strict";var Zo=Z(),Jo=fr(),Yo=hr(),Mr=class e extends Yo.YAMLMap{constructor(t){super(t),this.tag=e.tag}add(t){let r;Zo.isPair(t)?r=t:t&&typeof t=="object"&&"key"in t&&"value"in t&&t.value===null?r=new Jo.Pair(t.key,null):r=new Jo.Pair(t,null),Yo.findPair(this.items,r.key)||this.items.push(r)}get(t,r){let s=Yo.findPair(this.items,t);return!r&&Zo.isPair(s)?Zo.isScalar(s.key)?s.key.value:s.key:s}set(t,r){if(typeof r!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof r}`);let s=Yo.findPair(this.items,t);s&&!r?this.items.splice(this.items.indexOf(s),1):!s&&r&&this.items.push(new Jo.Pair(t))}toJSON(t,r){return super.toJSON(t,r,Set)}toString(t,r,s){if(!t)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},t,{allNullValues:!0}),r,s);throw new Error("Set items must all have null values")}static from(t,r,s){let{replacer:i}=s,n=new this(t);if(r&&Symbol.iterator in Object(r))for(let o of r)typeof i=="function"&&(o=i.call(r,o,o)),n.items.push(Jo.createPair(o,null,s));return n}};Mr.tag="tag:yaml.org,2002:set";var v2={collection:"map",identify:e=>e instanceof Set,nodeClass:Mr,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,r)=>Mr.from(e,t,r),resolve(e,t){if(Zo.isMap(e)){if(e.hasAllNullValues(!0))return Object.assign(new Mr,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};Xl.YAMLSet=Mr;Xl.set=v2});var tc=_(Xo=>{"use strict";var E2=As();function ec(e,t){let r=e[0],s=r==="-"||r==="+"?e.substring(1):e,i=o=>t?BigInt(o):Number(o),n=s.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return r==="-"?i(-1)*n:n}function Um(e){let{value:t}=e,r=o=>o;if(typeof t=="bigint")r=o=>BigInt(o);else if(isNaN(t)||!isFinite(t))return E2.stringifyNumber(e);let s="";t<0&&(s="-",t*=r(-1));let i=r(60),n=[t%i];return t<60?n.unshift(0):(t=(t-n[0])/i,n.unshift(t%i),t>=60&&(t=(t-n[0])/i,n.unshift(t))),s+n.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var C2={identify:e=>typeof e=="bigint"||Number.isInteger(e),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:r})=>ec(e,r),stringify:Um},F2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>ec(e,!1),stringify:Um},Gm={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(e){let t=e.match(Gm.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,r,s,i,n,o,a]=t.map(Number),u=t[7]?Number((t[7]+"00").substr(1,3)):0,l=Date.UTC(r,s-1,i,n||0,o||0,a||0,u),c=t[8];if(c&&c!=="Z"){let f=ec(c,!1);Math.abs(f)<30&&(f*=60),l-=6e4*f}return new Date(l)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};Xo.floatTime=F2;Xo.intTime=C2;Xo.timestamp=Gm});var Km=_(Wm=>{"use strict";var S2=Ss(),x2=Mo(),A2=xs(),R2=Ki(),k2=Vl(),Vm=Nm(),rc=Mm(),Qo=qm(),I2=_o(),_2=zl(),T2=Ko(),$2=Ql(),sc=tc(),P2=[S2.map,A2.seq,R2.string,x2.nullTag,Vm.trueTag,Vm.falseTag,Qo.intBin,Qo.intOct,Qo.int,Qo.intHex,rc.floatNaN,rc.floatExp,rc.float,k2.binary,I2.merge,_2.omap,T2.pairs,$2.set,sc.intTime,sc.floatTime,sc.timestamp];Wm.schema=P2});var rg=_(oc=>{"use strict";var Ym=Ss(),B2=Mo(),Zm=xs(),O2=Ki(),L2=Ol(),ic=Nl(),nc=jl(),N2=Sm(),M2=Rm(),Xm=Vl(),Zi=_o(),Qm=zl(),eg=Ko(),Hm=Km(),tg=Ql(),ea=tc(),zm=new Map([["core",N2.schema],["failsafe",[Ym.map,Zm.seq,O2.string]],["json",M2.schema],["yaml11",Hm.schema],["yaml-1.1",Hm.schema]]),Jm={binary:Xm.binary,bool:L2.boolTag,float:ic.float,floatExp:ic.floatExp,floatNaN:ic.floatNaN,floatTime:ea.floatTime,int:nc.int,intHex:nc.intHex,intOct:nc.intOct,intTime:ea.intTime,map:Ym.map,merge:Zi.merge,null:B2.nullTag,omap:Qm.omap,pairs:eg.pairs,seq:Zm.seq,set:tg.set,timestamp:ea.timestamp},j2={"tag:yaml.org,2002:binary":Xm.binary,"tag:yaml.org,2002:merge":Zi.merge,"tag:yaml.org,2002:omap":Qm.omap,"tag:yaml.org,2002:pairs":eg.pairs,"tag:yaml.org,2002:set":tg.set,"tag:yaml.org,2002:timestamp":ea.timestamp};function q2(e,t,r){let s=zm.get(t);if(s&&!e)return r&&!s.includes(Zi.merge)?s.concat(Zi.merge):s.slice();let i=s;if(!i)if(Array.isArray(e))i=[];else{let n=Array.from(zm.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${n} or define customTags array`)}if(Array.isArray(e))for(let n of e)i=i.concat(n);else typeof e=="function"&&(i=e(i.slice()));return r&&(i=i.concat(Zi.merge)),i.reduce((n,o)=>{let a=typeof o=="string"?Jm[o]:o;if(!a){let u=JSON.stringify(o),l=Object.keys(Jm).map(c=>JSON.stringify(c)).join(", ");throw new Error(`Unknown custom tag ${u}; use one of ${l}`)}return n.includes(a)||n.push(a),n},[])}oc.coreKnownTags=j2;oc.getTags=q2});var lc=_(sg=>{"use strict";var ac=Z(),U2=Ss(),G2=xs(),V2=Ki(),ta=rg(),W2=(e,t)=>e.key<t.key?-1:e.key>t.key?1:0,uc=class e{constructor({compat:t,customTags:r,merge:s,resolveKnownTags:i,schema:n,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(t)?ta.getTags(t,"compat"):t?ta.getTags(null,t):null,this.name=typeof n=="string"&&n||"core",this.knownTags=i?ta.coreKnownTags:{},this.tags=ta.getTags(r,this.name,s),this.toStringOptions=a??null,Object.defineProperty(this,ac.MAP,{value:U2.map}),Object.defineProperty(this,ac.SCALAR,{value:V2.string}),Object.defineProperty(this,ac.SEQ,{value:G2.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?W2:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}};sg.Schema=uc});var ng=_(ig=>{"use strict";var K2=Z(),cc=Ui(),Xi=Ni();function H2(e,t){let r=[],s=t.directives===!0;if(t.directives!==!1&&e.directives){let u=e.directives.toString(e);u?(r.push(u),s=!0):e.directives.docStart&&(s=!0)}s&&r.push("---");let i=cc.createStringifyContext(e,t),{commentString:n}=i.options;if(e.commentBefore){r.length!==1&&r.unshift("");let u=n(e.commentBefore);r.unshift(Xi.indentComment(u,""))}let o=!1,a=null;if(e.contents){if(K2.isNode(e.contents)){if(e.contents.spaceBefore&&s&&r.push(""),e.contents.commentBefore){let c=n(e.contents.commentBefore);r.push(Xi.indentComment(c,""))}i.forceBlockIndent=!!e.comment,a=e.contents.comment}let u=a?void 0:()=>o=!0,l=cc.stringify(e.contents,i,()=>a=null,u);a&&(l+=Xi.lineComment(l,"",n(a))),(l[0]==="|"||l[0]===">")&&r[r.length-1]==="---"?r[r.length-1]=`--- ${l}`:r.push(l)}else r.push(cc.stringify(e.contents,i));if(e.directives?.docEnd)if(e.comment){let u=n(e.comment);u.includes(`
108
- `)?(r.push("..."),r.push(Xi.indentComment(u,""))):r.push(`... ${u}`)}else r.push("...");else{let u=e.comment;u&&o&&(u=u.replace(/^\n+/,"")),u&&((!o||a)&&r[r.length-1]!==""&&r.push(""),r.push(Xi.indentComment(n(u),"")))}return r.join(`
107
+ ${n.comment}`:s.comment}s=i}e.items[r]=Vo.isPair(s)?s:new Wl.Pair(s)}}else t("Expected a sequence for this tag");return e}function Tm(e,t,r){let{replacer:s}=r,i=new h2.YAMLSeq(e);i.tag="tag:yaml.org,2002:pairs";let n=0;if(t&&Symbol.iterator in Object(t))for(let o of t){typeof s=="function"&&(o=s.call(t,String(n++),o));let a,u;if(Array.isArray(o))if(o.length===2)a=o[0],u=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],u=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;i.items.push(Wl.createPair(a,u,r))}return i}var p2={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:_m,createNode:Tm};Wo.createPairs=Tm;Wo.pairs=p2;Wo.resolvePairs=_m});var zl=_(Kl=>{"use strict";var $m=Z(),Hl=ur(),Ji=pr(),m2=mr(),Pm=Ho(),Nr=class e extends m2.YAMLSeq{constructor(){super(),this.add=Ji.YAMLMap.prototype.add.bind(this),this.delete=Ji.YAMLMap.prototype.delete.bind(this),this.get=Ji.YAMLMap.prototype.get.bind(this),this.has=Ji.YAMLMap.prototype.has.bind(this),this.set=Ji.YAMLMap.prototype.set.bind(this),this.tag=e.tag}toJSON(t,r){if(!r)return super.toJSON(t);let s=new Map;r?.onCreate&&r.onCreate(s);for(let i of this.items){let n,o;if($m.isPair(i)?(n=Hl.toJS(i.key,"",r),o=Hl.toJS(i.value,n,r)):n=Hl.toJS(i,"",r),s.has(n))throw new Error("Ordered maps must not include duplicate keys");s.set(n,o)}return s}static from(t,r,s){let i=Pm.createPairs(t,r,s),n=new this;return n.items=i.items,n}};Nr.tag="tag:yaml.org,2002:omap";var g2={collection:"seq",identify:e=>e instanceof Map,nodeClass:Nr,default:!1,tag:"tag:yaml.org,2002:omap",resolve(e,t){let r=Pm.resolvePairs(e,t),s=[];for(let{key:i}of r.items)$m.isScalar(i)&&(s.includes(i.value)?t(`Ordered maps must not include duplicate keys: ${i.value}`):s.push(i.value));return Object.assign(new Nr,r)},createNode:(e,t,r)=>Nr.from(e,t,r)};Kl.YAMLOMap=Nr;Kl.omap=g2});var Mm=_(Jl=>{"use strict";var Bm=he();function Om({value:e,source:t},r){return t&&(e?Lm:Nm).test.test(t)?t:e?r.options.trueStr:r.options.falseStr}var Lm={identify:e=>e===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Bm.Scalar(!0),stringify:Om},Nm={identify:e=>e===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Bm.Scalar(!1),stringify:Om};Jl.falseTag=Nm;Jl.trueTag=Lm});var jm=_(Ko=>{"use strict";var D2=he(),Yl=As(),y2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Yl.stringifyNumber},w2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():Yl.stringifyNumber(e)}},b2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let t=new D2.Scalar(parseFloat(e.replace(/_/g,""))),r=e.indexOf(".");if(r!==-1){let s=e.substring(r+1).replace(/_/g,"");s[s.length-1]==="0"&&(t.minFractionDigits=s.length)}return t},stringify:Yl.stringifyNumber};Ko.float=b2;Ko.floatExp=w2;Ko.floatNaN=y2});var Um=_(Zi=>{"use strict";var qm=As(),Yi=e=>typeof e=="bigint"||Number.isInteger(e);function zo(e,t,r,{intAsBigInt:s}){let i=e[0];if((i==="-"||i==="+")&&(t+=1),e=e.substring(t).replace(/_/g,""),s){switch(r){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}let o=BigInt(e);return i==="-"?BigInt(-1)*o:o}let n=parseInt(e,r);return i==="-"?-1*n:n}function Zl(e,t,r){let{value:s}=e;if(Yi(s)){let i=s.toString(t);return s<0?"-"+r+i.substr(1):r+i}return qm.stringifyNumber(e)}var v2={identify:Yi,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,r)=>zo(e,2,2,r),stringify:e=>Zl(e,2,"0b")},E2={identify:Yi,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,r)=>zo(e,1,8,r),stringify:e=>Zl(e,8,"0")},C2={identify:Yi,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,r)=>zo(e,0,10,r),stringify:qm.stringifyNumber},F2={identify:Yi,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,r)=>zo(e,2,16,r),stringify:e=>Zl(e,16,"0x")};Zi.int=C2;Zi.intBin=v2;Zi.intHex=F2;Zi.intOct=E2});var Ql=_(Xl=>{"use strict";var Zo=Z(),Jo=dr(),Yo=pr(),Mr=class e extends Yo.YAMLMap{constructor(t){super(t),this.tag=e.tag}add(t){let r;Zo.isPair(t)?r=t:t&&typeof t=="object"&&"key"in t&&"value"in t&&t.value===null?r=new Jo.Pair(t.key,null):r=new Jo.Pair(t,null),Yo.findPair(this.items,r.key)||this.items.push(r)}get(t,r){let s=Yo.findPair(this.items,t);return!r&&Zo.isPair(s)?Zo.isScalar(s.key)?s.key.value:s.key:s}set(t,r){if(typeof r!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof r}`);let s=Yo.findPair(this.items,t);s&&!r?this.items.splice(this.items.indexOf(s),1):!s&&r&&this.items.push(new Jo.Pair(t))}toJSON(t,r){return super.toJSON(t,r,Set)}toString(t,r,s){if(!t)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},t,{allNullValues:!0}),r,s);throw new Error("Set items must all have null values")}static from(t,r,s){let{replacer:i}=s,n=new this(t);if(r&&Symbol.iterator in Object(r))for(let o of r)typeof i=="function"&&(o=i.call(r,o,o)),n.items.push(Jo.createPair(o,null,s));return n}};Mr.tag="tag:yaml.org,2002:set";var S2={collection:"map",identify:e=>e instanceof Set,nodeClass:Mr,default:!1,tag:"tag:yaml.org,2002:set",createNode:(e,t,r)=>Mr.from(e,t,r),resolve(e,t){if(Zo.isMap(e)){if(e.hasAllNullValues(!0))return Object.assign(new Mr,e);t("Set items must all have null values")}else t("Expected a mapping for this tag");return e}};Xl.YAMLSet=Mr;Xl.set=S2});var tc=_(Xo=>{"use strict";var x2=As();function ec(e,t){let r=e[0],s=r==="-"||r==="+"?e.substring(1):e,i=o=>t?BigInt(o):Number(o),n=s.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return r==="-"?i(-1)*n:n}function Gm(e){let{value:t}=e,r=o=>o;if(typeof t=="bigint")r=o=>BigInt(o);else if(isNaN(t)||!isFinite(t))return x2.stringifyNumber(e);let s="";t<0&&(s="-",t*=r(-1));let i=r(60),n=[t%i];return t<60?n.unshift(0):(t=(t-n[0])/i,n.unshift(t%i),t>=60&&(t=(t-n[0])/i,n.unshift(t))),s+n.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var A2={identify:e=>typeof e=="bigint"||Number.isInteger(e),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:r})=>ec(e,r),stringify:Gm},R2={identify:e=>typeof e=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>ec(e,!1),stringify:Gm},Vm={identify:e=>e instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(e){let t=e.match(Vm.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,r,s,i,n,o,a]=t.map(Number),u=t[7]?Number((t[7]+"00").substr(1,3)):0,l=Date.UTC(r,s-1,i,n||0,o||0,a||0,u),c=t[8];if(c&&c!=="Z"){let f=ec(c,!1);Math.abs(f)<30&&(f*=60),l-=6e4*f}return new Date(l)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};Xo.floatTime=R2;Xo.intTime=A2;Xo.timestamp=Vm});var Km=_(Hm=>{"use strict";var k2=Ss(),I2=Mo(),_2=xs(),T2=Ki(),$2=Vl(),Wm=Mm(),rc=jm(),Qo=Um(),P2=_o(),B2=zl(),O2=Ho(),L2=Ql(),sc=tc(),N2=[k2.map,_2.seq,T2.string,I2.nullTag,Wm.trueTag,Wm.falseTag,Qo.intBin,Qo.intOct,Qo.int,Qo.intHex,rc.floatNaN,rc.floatExp,rc.float,$2.binary,P2.merge,B2.omap,O2.pairs,L2.set,sc.intTime,sc.floatTime,sc.timestamp];Hm.schema=N2});var sg=_(oc=>{"use strict";var Zm=Ss(),M2=Mo(),Xm=xs(),j2=Ki(),q2=Ol(),ic=Nl(),nc=jl(),U2=xm(),G2=km(),Qm=Vl(),Xi=_o(),eg=zl(),tg=Ho(),zm=Km(),rg=Ql(),ea=tc(),Jm=new Map([["core",U2.schema],["failsafe",[Zm.map,Xm.seq,j2.string]],["json",G2.schema],["yaml11",zm.schema],["yaml-1.1",zm.schema]]),Ym={binary:Qm.binary,bool:q2.boolTag,float:ic.float,floatExp:ic.floatExp,floatNaN:ic.floatNaN,floatTime:ea.floatTime,int:nc.int,intHex:nc.intHex,intOct:nc.intOct,intTime:ea.intTime,map:Zm.map,merge:Xi.merge,null:M2.nullTag,omap:eg.omap,pairs:tg.pairs,seq:Xm.seq,set:rg.set,timestamp:ea.timestamp},V2={"tag:yaml.org,2002:binary":Qm.binary,"tag:yaml.org,2002:merge":Xi.merge,"tag:yaml.org,2002:omap":eg.omap,"tag:yaml.org,2002:pairs":tg.pairs,"tag:yaml.org,2002:set":rg.set,"tag:yaml.org,2002:timestamp":ea.timestamp};function W2(e,t,r){let s=Jm.get(t);if(s&&!e)return r&&!s.includes(Xi.merge)?s.concat(Xi.merge):s.slice();let i=s;if(!i)if(Array.isArray(e))i=[];else{let n=Array.from(Jm.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${n} or define customTags array`)}if(Array.isArray(e))for(let n of e)i=i.concat(n);else typeof e=="function"&&(i=e(i.slice()));return r&&(i=i.concat(Xi.merge)),i.reduce((n,o)=>{let a=typeof o=="string"?Ym[o]:o;if(!a){let u=JSON.stringify(o),l=Object.keys(Ym).map(c=>JSON.stringify(c)).join(", ");throw new Error(`Unknown custom tag ${u}; use one of ${l}`)}return n.includes(a)||n.push(a),n},[])}oc.coreKnownTags=V2;oc.getTags=W2});var lc=_(ig=>{"use strict";var ac=Z(),H2=Ss(),K2=xs(),z2=Ki(),ta=sg(),J2=(e,t)=>e.key<t.key?-1:e.key>t.key?1:0,uc=class e{constructor({compat:t,customTags:r,merge:s,resolveKnownTags:i,schema:n,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(t)?ta.getTags(t,"compat"):t?ta.getTags(null,t):null,this.name=typeof n=="string"&&n||"core",this.knownTags=i?ta.coreKnownTags:{},this.tags=ta.getTags(r,this.name,s),this.toStringOptions=a??null,Object.defineProperty(this,ac.MAP,{value:H2.map}),Object.defineProperty(this,ac.SCALAR,{value:z2.string}),Object.defineProperty(this,ac.SEQ,{value:K2.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?J2:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}};ig.Schema=uc});var og=_(ng=>{"use strict";var Y2=Z(),cc=Gi(),Qi=Mi();function Z2(e,t){let r=[],s=t.directives===!0;if(t.directives!==!1&&e.directives){let u=e.directives.toString(e);u?(r.push(u),s=!0):e.directives.docStart&&(s=!0)}s&&r.push("---");let i=cc.createStringifyContext(e,t),{commentString:n}=i.options;if(e.commentBefore){r.length!==1&&r.unshift("");let u=n(e.commentBefore);r.unshift(Qi.indentComment(u,""))}let o=!1,a=null;if(e.contents){if(Y2.isNode(e.contents)){if(e.contents.spaceBefore&&s&&r.push(""),e.contents.commentBefore){let c=n(e.contents.commentBefore);r.push(Qi.indentComment(c,""))}i.forceBlockIndent=!!e.comment,a=e.contents.comment}let u=a?void 0:()=>o=!0,l=cc.stringify(e.contents,i,()=>a=null,u);a&&(l+=Qi.lineComment(l,"",n(a))),(l[0]==="|"||l[0]===">")&&r[r.length-1]==="---"?r[r.length-1]=`--- ${l}`:r.push(l)}else r.push(cc.stringify(e.contents,i));if(e.directives?.docEnd)if(e.comment){let u=n(e.comment);u.includes(`
108
+ `)?(r.push("..."),r.push(Qi.indentComment(u,""))):r.push(`... ${u}`)}else r.push("...");else{let u=e.comment;u&&o&&(u=u.replace(/^\n+/,"")),u&&((!o||a)&&r[r.length-1]!==""&&r.push(""),r.push(Qi.indentComment(n(u),"")))}return r.join(`
109
109
  `)+`
110
- `}ig.stringifyDocument=H2});var Qi=_(og=>{"use strict";var z2=Oi(),Rs=Eo(),Xe=Z(),J2=fr(),Y2=ar(),Z2=lc(),X2=ng(),fc=yo(),Q2=ml(),e1=Li(),dc=pl(),hc=class e{constructor(t,r,s){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Xe.NODE_TYPE,{value:Xe.DOC});let i=null;typeof r=="function"||Array.isArray(r)?i=r:s===void 0&&r&&(s=r,r=void 0);let n=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},s);this.options=n;let{version:o}=n;s?._directives?(this.directives=s._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new dc.Directives({version:o}),this.setSchema(o,s),this.contents=t===void 0?null:this.createNode(t,i,s)}clone(){let t=Object.create(e.prototype,{[Xe.NODE_TYPE]:{value:Xe.DOC}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=Xe.isNode(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){ks(this.contents)&&this.contents.add(t)}addIn(t,r){ks(this.contents)&&this.contents.addIn(t,r)}createAlias(t,r){if(!t.anchor){let s=fc.anchorNames(this);t.anchor=!r||s.has(r)?fc.findNewAnchor(r||"a",s):r}return new z2.Alias(t.anchor)}createNode(t,r,s){let i;if(typeof r=="function")t=r.call({"":t},"",t),i=r;else if(Array.isArray(r)){let D=w=>typeof w=="number"||w instanceof String||w instanceof Number,b=r.filter(D).map(String);b.length>0&&(r=r.concat(b)),i=r}else s===void 0&&r&&(s=r,r=void 0);let{aliasDuplicateObjects:n,anchorPrefix:o,flow:a,keepUndefined:u,onTagObj:l,tag:c}=s??{},{onAnchor:f,setAnchors:h,sourceObjects:p}=fc.createNodeAnchors(this,o||"a"),m={aliasDuplicateObjects:n??!0,keepUndefined:u??!1,onAnchor:f,onTagObj:l,replacer:i,schema:this.schema,sourceObjects:p},g=e1.createNode(t,c,m);return a&&Xe.isCollection(g)&&(g.flow=!0),h(),g}createPair(t,r,s={}){let i=this.createNode(t,null,s),n=this.createNode(r,null,s);return new J2.Pair(i,n)}delete(t){return ks(this.contents)?this.contents.delete(t):!1}deleteIn(t){return Rs.isEmptyPath(t)?this.contents==null?!1:(this.contents=null,!0):ks(this.contents)?this.contents.deleteIn(t):!1}get(t,r){return Xe.isCollection(this.contents)?this.contents.get(t,r):void 0}getIn(t,r){return Rs.isEmptyPath(t)?!r&&Xe.isScalar(this.contents)?this.contents.value:this.contents:Xe.isCollection(this.contents)?this.contents.getIn(t,r):void 0}has(t){return Xe.isCollection(this.contents)?this.contents.has(t):!1}hasIn(t){return Rs.isEmptyPath(t)?this.contents!==void 0:Xe.isCollection(this.contents)?this.contents.hasIn(t):!1}set(t,r){this.contents==null?this.contents=Rs.collectionFromPath(this.schema,[t],r):ks(this.contents)&&this.contents.set(t,r)}setIn(t,r){Rs.isEmptyPath(t)?this.contents=r:this.contents==null?this.contents=Rs.collectionFromPath(this.schema,Array.from(t),r):ks(this.contents)&&this.contents.setIn(t,r)}setSchema(t,r={}){typeof t=="number"&&(t=String(t));let s;switch(t){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new dc.Directives({version:"1.1"}),s={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=t:this.directives=new dc.Directives({version:t}),s={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,s=null;break;default:{let i=JSON.stringify(t);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${i}`)}}if(r.schema instanceof Object)this.schema=r.schema;else if(s)this.schema=new Z2.Schema(Object.assign(s,r));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:t,jsonArg:r,mapAsMap:s,maxAliasCount:i,onAnchor:n,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!t,mapAsMap:s===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},u=Y2.toJS(this.contents,r??"",a);if(typeof n=="function")for(let{count:l,res:c}of a.anchors.values())n(c,l);return typeof o=="function"?Q2.applyReviver(o,{"":u},"",u):u}toJSON(t,r){return this.toJS({json:!0,jsonArg:t,mapAsMap:!1,onAnchor:r})}toString(t={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in t&&(!Number.isInteger(t.indent)||Number(t.indent)<=0)){let r=JSON.stringify(t.indent);throw new Error(`"indent" option must be a positive integer, not ${r}`)}return X2.stringifyDocument(this,t)}};function ks(e){if(Xe.isCollection(e))return!0;throw new Error("Expected a YAML collection as document contents")}og.Document=hc});var rn=_(tn=>{"use strict";var en=class extends Error{constructor(t,r,s,i){super(),this.name=t,this.code=s,this.message=i,this.pos=r}},pc=class extends en{constructor(t,r,s){super("YAMLParseError",t,r,s)}},mc=class extends en{constructor(t,r,s){super("YAMLWarning",t,r,s)}},t1=(e,t)=>r=>{if(r.pos[0]===-1)return;r.linePos=r.pos.map(a=>t.linePos(a));let{line:s,col:i}=r.linePos[0];r.message+=` at line ${s}, column ${i}`;let n=i-1,o=e.substring(t.lineStarts[s-1],t.lineStarts[s]).replace(/[\n\r]+$/,"");if(n>=60&&o.length>80){let a=Math.min(n-39,o.length-79);o="\u2026"+o.substring(a),n-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),s>1&&/^ *$/.test(o.substring(0,n))){let a=e.substring(t.lineStarts[s-2],t.lineStarts[s-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
110
+ `}ng.stringifyDocument=Z2});var en=_(ag=>{"use strict";var X2=Li(),Rs=Eo(),Qe=Z(),Q2=dr(),e1=ur(),t1=lc(),r1=og(),fc=yo(),s1=ml(),i1=Ni(),dc=pl(),hc=class e{constructor(t,r,s){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Qe.NODE_TYPE,{value:Qe.DOC});let i=null;typeof r=="function"||Array.isArray(r)?i=r:s===void 0&&r&&(s=r,r=void 0);let n=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},s);this.options=n;let{version:o}=n;s?._directives?(this.directives=s._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new dc.Directives({version:o}),this.setSchema(o,s),this.contents=t===void 0?null:this.createNode(t,i,s)}clone(){let t=Object.create(e.prototype,{[Qe.NODE_TYPE]:{value:Qe.DOC}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=Qe.isNode(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){ks(this.contents)&&this.contents.add(t)}addIn(t,r){ks(this.contents)&&this.contents.addIn(t,r)}createAlias(t,r){if(!t.anchor){let s=fc.anchorNames(this);t.anchor=!r||s.has(r)?fc.findNewAnchor(r||"a",s):r}return new X2.Alias(t.anchor)}createNode(t,r,s){let i;if(typeof r=="function")t=r.call({"":t},"",t),i=r;else if(Array.isArray(r)){let D=w=>typeof w=="number"||w instanceof String||w instanceof Number,b=r.filter(D).map(String);b.length>0&&(r=r.concat(b)),i=r}else s===void 0&&r&&(s=r,r=void 0);let{aliasDuplicateObjects:n,anchorPrefix:o,flow:a,keepUndefined:u,onTagObj:l,tag:c}=s??{},{onAnchor:f,setAnchors:h,sourceObjects:p}=fc.createNodeAnchors(this,o||"a"),m={aliasDuplicateObjects:n??!0,keepUndefined:u??!1,onAnchor:f,onTagObj:l,replacer:i,schema:this.schema,sourceObjects:p},g=i1.createNode(t,c,m);return a&&Qe.isCollection(g)&&(g.flow=!0),h(),g}createPair(t,r,s={}){let i=this.createNode(t,null,s),n=this.createNode(r,null,s);return new Q2.Pair(i,n)}delete(t){return ks(this.contents)?this.contents.delete(t):!1}deleteIn(t){return Rs.isEmptyPath(t)?this.contents==null?!1:(this.contents=null,!0):ks(this.contents)?this.contents.deleteIn(t):!1}get(t,r){return Qe.isCollection(this.contents)?this.contents.get(t,r):void 0}getIn(t,r){return Rs.isEmptyPath(t)?!r&&Qe.isScalar(this.contents)?this.contents.value:this.contents:Qe.isCollection(this.contents)?this.contents.getIn(t,r):void 0}has(t){return Qe.isCollection(this.contents)?this.contents.has(t):!1}hasIn(t){return Rs.isEmptyPath(t)?this.contents!==void 0:Qe.isCollection(this.contents)?this.contents.hasIn(t):!1}set(t,r){this.contents==null?this.contents=Rs.collectionFromPath(this.schema,[t],r):ks(this.contents)&&this.contents.set(t,r)}setIn(t,r){Rs.isEmptyPath(t)?this.contents=r:this.contents==null?this.contents=Rs.collectionFromPath(this.schema,Array.from(t),r):ks(this.contents)&&this.contents.setIn(t,r)}setSchema(t,r={}){typeof t=="number"&&(t=String(t));let s;switch(t){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new dc.Directives({version:"1.1"}),s={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=t:this.directives=new dc.Directives({version:t}),s={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,s=null;break;default:{let i=JSON.stringify(t);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${i}`)}}if(r.schema instanceof Object)this.schema=r.schema;else if(s)this.schema=new t1.Schema(Object.assign(s,r));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:t,jsonArg:r,mapAsMap:s,maxAliasCount:i,onAnchor:n,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!t,mapAsMap:s===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},u=e1.toJS(this.contents,r??"",a);if(typeof n=="function")for(let{count:l,res:c}of a.anchors.values())n(c,l);return typeof o=="function"?s1.applyReviver(o,{"":u},"",u):u}toJSON(t,r){return this.toJS({json:!0,jsonArg:t,mapAsMap:!1,onAnchor:r})}toString(t={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in t&&(!Number.isInteger(t.indent)||Number(t.indent)<=0)){let r=JSON.stringify(t.indent);throw new Error(`"indent" option must be a positive integer, not ${r}`)}return r1.stringifyDocument(this,t)}};function ks(e){if(Qe.isCollection(e))return!0;throw new Error("Expected a YAML collection as document contents")}ag.Document=hc});var sn=_(rn=>{"use strict";var tn=class extends Error{constructor(t,r,s,i){super(),this.name=t,this.code=s,this.message=i,this.pos=r}},pc=class extends tn{constructor(t,r,s){super("YAMLParseError",t,r,s)}},mc=class extends tn{constructor(t,r,s){super("YAMLWarning",t,r,s)}},n1=(e,t)=>r=>{if(r.pos[0]===-1)return;r.linePos=r.pos.map(a=>t.linePos(a));let{line:s,col:i}=r.linePos[0];r.message+=` at line ${s}, column ${i}`;let n=i-1,o=e.substring(t.lineStarts[s-1],t.lineStarts[s]).replace(/[\n\r]+$/,"");if(n>=60&&o.length>80){let a=Math.min(n-39,o.length-79);o="\u2026"+o.substring(a),n-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),s>1&&/^ *$/.test(o.substring(0,n))){let a=e.substring(t.lineStarts[s-2],t.lineStarts[s-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
111
111
  `),o=a+o}if(/[^ ]/.test(o)){let a=1,u=r.linePos[1];u?.line===s&&u.col>i&&(a=Math.max(1,Math.min(u.col-i,80-n)));let l=" ".repeat(n)+"^".repeat(a);r.message+=`:
112
112
 
113
113
  ${o}
114
114
  ${l}
115
- `}};tn.YAMLError=en;tn.YAMLParseError=pc;tn.YAMLWarning=mc;tn.prettifyError=t1});var sn=_(ag=>{"use strict";function r1(e,{flow:t,indicator:r,next:s,offset:i,onError:n,parentIndent:o,startOnNewline:a}){let u=!1,l=a,c=a,f="",h="",p=!1,m=!1,g=null,D=null,b=null,w=null,v=null,E=null,C=null;for(let F of e)switch(m&&(F.type!=="space"&&F.type!=="newline"&&F.type!=="comma"&&n(F.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m=!1),g&&(l&&F.type!=="comment"&&F.type!=="newline"&&n(g,"TAB_AS_INDENT","Tabs are not allowed as indentation"),g=null),F.type){case"space":!t&&(r!=="doc-start"||s?.type!=="flow-collection")&&F.source.includes(" ")&&(g=F),c=!0;break;case"comment":{c||n(F,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let R=F.source.substring(1)||" ";f?f+=h+R:f=R,h="",l=!1;break}case"newline":l?f?f+=F.source:(!E||r!=="seq-item-ind")&&(u=!0):h+=F.source,l=!0,p=!0,(D||b)&&(w=F),c=!0;break;case"anchor":D&&n(F,"MULTIPLE_ANCHORS","A node can have at most one anchor"),F.source.endsWith(":")&&n(F.offset+F.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),D=F,C??(C=F.offset),l=!1,c=!1,m=!0;break;case"tag":{b&&n(F,"MULTIPLE_TAGS","A node can have at most one tag"),b=F,C??(C=F.offset),l=!1,c=!1,m=!0;break}case r:(D||b)&&n(F,"BAD_PROP_ORDER",`Anchors and tags must be after the ${F.source} indicator`),E&&n(F,"UNEXPECTED_TOKEN",`Unexpected ${F.source} in ${t??"collection"}`),E=F,l=r==="seq-item-ind"||r==="explicit-key-ind",c=!1;break;case"comma":if(t){v&&n(F,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),v=F,l=!1,c=!1;break}default:n(F,"UNEXPECTED_TOKEN",`Unexpected ${F.type} token`),l=!1,c=!1}let x=e[e.length-1],$=x?x.offset+x.source.length:i;return m&&s&&s.type!=="space"&&s.type!=="newline"&&s.type!=="comma"&&(s.type!=="scalar"||s.source!=="")&&n(s.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g&&(l&&g.indent<=o||s?.type==="block-map"||s?.type==="block-seq")&&n(g,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:v,found:E,spaceBefore:u,comment:f,hasNewline:p,anchor:D,tag:b,newlineAfterProp:w,end:$,start:C??$}}ag.resolveProps=r1});var ra=_(ug=>{"use strict";function gc(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes(`
116
- `))return!0;if(e.end){for(let t of e.end)if(t.type==="newline")return!0}return!1;case"flow-collection":for(let t of e.items){for(let r of t.start)if(r.type==="newline")return!0;if(t.sep){for(let r of t.sep)if(r.type==="newline")return!0}if(gc(t.key)||gc(t.value))return!0}return!1;default:return!0}}ug.containsNewline=gc});var Dc=_(lg=>{"use strict";var s1=ra();function i1(e,t,r){if(t?.type==="flow-collection"){let s=t.end[0];s.indent===e&&(s.source==="]"||s.source==="}")&&s1.containsNewline(t)&&r(s,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}lg.flowIndentCheck=i1});var yc=_(fg=>{"use strict";var cg=Z();function n1(e,t,r){let{uniqueKeys:s}=e.options;if(s===!1)return!1;let i=typeof s=="function"?s:(n,o)=>n===o||cg.isScalar(n)&&cg.isScalar(o)&&n.value===o.value;return t.some(n=>i(n.key,r))}fg.mapIncludes=n1});var Dg=_(gg=>{"use strict";var dg=fr(),o1=hr(),hg=sn(),a1=ra(),pg=Dc(),u1=yc(),mg="All mapping items must start at the same column";function l1({composeNode:e,composeEmptyNode:t},r,s,i,n){let o=n?.nodeClass??o1.YAMLMap,a=new o(r.schema);r.atRoot&&(r.atRoot=!1);let u=s.offset,l=null;for(let c of s.items){let{start:f,key:h,sep:p,value:m}=c,g=hg.resolveProps(f,{indicator:"explicit-key-ind",next:h??p?.[0],offset:u,onError:i,parentIndent:s.indent,startOnNewline:!0}),D=!g.found;if(D){if(h&&(h.type==="block-seq"?i(u,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in h&&h.indent!==s.indent&&i(u,"BAD_INDENT",mg)),!g.anchor&&!g.tag&&!p){l=g.end,g.comment&&(a.comment?a.comment+=`
117
- `+g.comment:a.comment=g.comment);continue}(g.newlineAfterProp||a1.containsNewline(h))&&i(h??f[f.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else g.found?.indent!==s.indent&&i(u,"BAD_INDENT",mg);r.atKey=!0;let b=g.end,w=h?e(r,h,g,i):t(r,b,f,null,g,i);r.schema.compat&&pg.flowIndentCheck(s.indent,h,i),r.atKey=!1,u1.mapIncludes(r,a.items,w)&&i(b,"DUPLICATE_KEY","Map keys must be unique");let v=hg.resolveProps(p??[],{indicator:"map-value-ind",next:m,offset:w.range[2],onError:i,parentIndent:s.indent,startOnNewline:!h||h.type==="block-scalar"});if(u=v.end,v.found){D&&(m?.type==="block-map"&&!v.hasNewline&&i(u,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),r.options.strict&&g.start<v.found.offset-1024&&i(w.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let E=m?e(r,m,v,i):t(r,u,p,null,v,i);r.schema.compat&&pg.flowIndentCheck(s.indent,m,i),u=E.range[2];let C=new dg.Pair(w,E);r.options.keepSourceTokens&&(C.srcToken=c),a.items.push(C)}else{D&&i(w.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),v.comment&&(w.comment?w.comment+=`
118
- `+v.comment:w.comment=v.comment);let E=new dg.Pair(w);r.options.keepSourceTokens&&(E.srcToken=c),a.items.push(E)}}return l&&l<u&&i(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[s.offset,u,l??u],a}gg.resolveBlockMap=l1});var wg=_(yg=>{"use strict";var c1=pr(),f1=sn(),d1=Dc();function h1({composeNode:e,composeEmptyNode:t},r,s,i,n){let o=n?.nodeClass??c1.YAMLSeq,a=new o(r.schema);r.atRoot&&(r.atRoot=!1),r.atKey&&(r.atKey=!1);let u=s.offset,l=null;for(let{start:c,value:f}of s.items){let h=f1.resolveProps(c,{indicator:"seq-item-ind",next:f,offset:u,onError:i,parentIndent:s.indent,startOnNewline:!0});if(!h.found)if(h.anchor||h.tag||f)f?.type==="block-seq"?i(h.end,"BAD_INDENT","All sequence items must start at the same column"):i(u,"MISSING_CHAR","Sequence item without - indicator");else{l=h.end,h.comment&&(a.comment=h.comment);continue}let p=f?e(r,f,h,i):t(r,h.end,c,null,h,i);r.schema.compat&&d1.flowIndentCheck(s.indent,f,i),u=p.range[2],a.items.push(p)}return a.range=[s.offset,u,l??u],a}yg.resolveBlockSeq=h1});var Is=_(bg=>{"use strict";function p1(e,t,r,s){let i="";if(e){let n=!1,o="";for(let a of e){let{source:u,type:l}=a;switch(l){case"space":n=!0;break;case"comment":{r&&!n&&s(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let c=u.substring(1)||" ";i?i+=o+c:i=c,o="";break}case"newline":i&&(o+=u),n=!0;break;default:s(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`)}t+=u.length}}return{comment:i,offset:t}}bg.resolveEnd=p1});var Fg=_(Cg=>{"use strict";var m1=Z(),g1=fr(),vg=hr(),D1=pr(),y1=Is(),Eg=sn(),w1=ra(),b1=yc(),wc="Block collections are not allowed within flow collections",bc=e=>e&&(e.type==="block-map"||e.type==="block-seq");function v1({composeNode:e,composeEmptyNode:t},r,s,i,n){let o=s.start.source==="{",a=o?"flow map":"flow sequence",u=n?.nodeClass??(o?vg.YAMLMap:D1.YAMLSeq),l=new u(r.schema);l.flow=!0;let c=r.atRoot;c&&(r.atRoot=!1),r.atKey&&(r.atKey=!1);let f=s.offset+s.start.source.length;for(let D=0;D<s.items.length;++D){let b=s.items[D],{start:w,key:v,sep:E,value:C}=b,x=Eg.resolveProps(w,{flow:a,indicator:"explicit-key-ind",next:v??E?.[0],offset:f,onError:i,parentIndent:s.indent,startOnNewline:!1});if(!x.found){if(!x.anchor&&!x.tag&&!E&&!C){D===0&&x.comma?i(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):D<s.items.length-1&&i(x.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),x.comment&&(l.comment?l.comment+=`
119
- `+x.comment:l.comment=x.comment),f=x.end;continue}!o&&r.options.strict&&w1.containsNewline(v)&&i(v,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(D===0)x.comma&&i(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(x.comma||i(x.start,"MISSING_CHAR",`Missing , between ${a} items`),x.comment){let $="";e:for(let F of w)switch(F.type){case"comma":case"space":break;case"comment":$=F.source.substring(1);break e;default:break e}if($){let F=l.items[l.items.length-1];m1.isPair(F)&&(F=F.value??F.key),F.comment?F.comment+=`
120
- `+$:F.comment=$,x.comment=x.comment.substring($.length+1)}}if(!o&&!E&&!x.found){let $=C?e(r,C,x,i):t(r,x.end,E,null,x,i);l.items.push($),f=$.range[2],bc(C)&&i($.range,"BLOCK_IN_FLOW",wc)}else{r.atKey=!0;let $=x.end,F=v?e(r,v,x,i):t(r,$,w,null,x,i);bc(v)&&i(F.range,"BLOCK_IN_FLOW",wc),r.atKey=!1;let R=Eg.resolveProps(E??[],{flow:a,indicator:"map-value-ind",next:C,offset:F.range[2],onError:i,parentIndent:s.indent,startOnNewline:!1});if(R.found){if(!o&&!x.found&&r.options.strict){if(E)for(let H of E){if(H===R.found)break;if(H.type==="newline"){i(H,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}x.start<R.found.offset-1024&&i(R.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else C&&("source"in C&&C.source?.[0]===":"?i(C,"MISSING_CHAR",`Missing space after : in ${a}`):i(R.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let W=C?e(r,C,R,i):R.found?t(r,R.end,E,null,R,i):null;W?bc(C)&&i(W.range,"BLOCK_IN_FLOW",wc):R.comment&&(F.comment?F.comment+=`
121
- `+R.comment:F.comment=R.comment);let ae=new g1.Pair(F,W);if(r.options.keepSourceTokens&&(ae.srcToken=b),o){let H=l;b1.mapIncludes(r,H.items,F)&&i($,"DUPLICATE_KEY","Map keys must be unique"),H.items.push(ae)}else{let H=new vg.YAMLMap(r.schema);H.flow=!0,H.items.push(ae);let I=(W??F).range;H.range=[F.range[0],I[1],I[2]],l.items.push(H)}f=W?W.range[2]:R.end}}let h=o?"}":"]",[p,...m]=s.end,g=f;if(p?.source===h)g=p.offset+p.source.length;else{let D=a[0].toUpperCase()+a.substring(1),b=c?`${D} must end with a ${h}`:`${D} in block collection must be sufficiently indented and end with a ${h}`;i(f,c?"MISSING_CHAR":"BAD_INDENT",b),p&&p.source.length!==1&&m.unshift(p)}if(m.length>0){let D=y1.resolveEnd(m,g,r.options.strict,i);D.comment&&(l.comment?l.comment+=`
122
- `+D.comment:l.comment=D.comment),l.range=[s.offset,g,D.offset]}else l.range=[s.offset,g,g];return l}Cg.resolveFlowCollection=v1});var xg=_(Sg=>{"use strict";var E1=Z(),C1=de(),F1=hr(),S1=pr(),x1=Dg(),A1=wg(),R1=Fg();function vc(e,t,r,s,i,n){let o=r.type==="block-map"?x1.resolveBlockMap(e,t,r,s,n):r.type==="block-seq"?A1.resolveBlockSeq(e,t,r,s,n):R1.resolveFlowCollection(e,t,r,s,n),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function k1(e,t,r,s,i){let n=s.tag,o=n?t.directives.tagName(n.source,h=>i(n,"TAG_RESOLVE_FAILED",h)):null;if(r.type==="block-seq"){let{anchor:h,newlineAfterProp:p}=s,m=h&&n?h.offset>n.offset?h:n:h??n;m&&(!p||p.offset<m.offset)&&i(m,"MISSING_CHAR","Missing newline after block sequence props")}let a=r.type==="block-map"?"map":r.type==="block-seq"?"seq":r.start.source==="{"?"map":"seq";if(!n||!o||o==="!"||o===F1.YAMLMap.tagName&&a==="map"||o===S1.YAMLSeq.tagName&&a==="seq")return vc(e,t,r,i,o);let u=t.schema.tags.find(h=>h.tag===o&&h.collection===a);if(!u){let h=t.schema.knownTags[o];if(h?.collection===a)t.schema.tags.push(Object.assign({},h,{default:!1})),u=h;else return h?i(n,"BAD_COLLECTION_TYPE",`${h.tag} used for ${a} collection, but expects ${h.collection??"scalar"}`,!0):i(n,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),vc(e,t,r,i,o)}let l=vc(e,t,r,i,o,u),c=u.resolve?.(l,h=>i(n,"TAG_RESOLVE_FAILED",h),t.options)??l,f=E1.isNode(c)?c:new C1.Scalar(c);return f.range=l.range,f.tag=o,u?.format&&(f.format=u.format),f}Sg.composeCollection=k1});var Cc=_(Ag=>{"use strict";var Ec=de();function I1(e,t,r){let s=t.offset,i=_1(t,e.options.strict,r);if(!i)return{value:"",type:null,comment:"",range:[s,s,s]};let n=i.mode===">"?Ec.Scalar.BLOCK_FOLDED:Ec.Scalar.BLOCK_LITERAL,o=t.source?T1(t.source):[],a=o.length;for(let g=o.length-1;g>=0;--g){let D=o[g][1];if(D===""||D==="\r")a=g;else break}if(a===0){let g=i.chomp==="+"&&o.length>0?`
115
+ `}};rn.YAMLError=tn;rn.YAMLParseError=pc;rn.YAMLWarning=mc;rn.prettifyError=n1});var nn=_(ug=>{"use strict";function o1(e,{flow:t,indicator:r,next:s,offset:i,onError:n,parentIndent:o,startOnNewline:a}){let u=!1,l=a,c=a,f="",h="",p=!1,m=!1,g=null,D=null,b=null,w=null,v=null,E=null,C=null;for(let F of e)switch(m&&(F.type!=="space"&&F.type!=="newline"&&F.type!=="comma"&&n(F.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m=!1),g&&(l&&F.type!=="comment"&&F.type!=="newline"&&n(g,"TAB_AS_INDENT","Tabs are not allowed as indentation"),g=null),F.type){case"space":!t&&(r!=="doc-start"||s?.type!=="flow-collection")&&F.source.includes(" ")&&(g=F),c=!0;break;case"comment":{c||n(F,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let R=F.source.substring(1)||" ";f?f+=h+R:f=R,h="",l=!1;break}case"newline":l?f?f+=F.source:(!E||r!=="seq-item-ind")&&(u=!0):h+=F.source,l=!0,p=!0,(D||b)&&(w=F),c=!0;break;case"anchor":D&&n(F,"MULTIPLE_ANCHORS","A node can have at most one anchor"),F.source.endsWith(":")&&n(F.offset+F.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),D=F,C??(C=F.offset),l=!1,c=!1,m=!0;break;case"tag":{b&&n(F,"MULTIPLE_TAGS","A node can have at most one tag"),b=F,C??(C=F.offset),l=!1,c=!1,m=!0;break}case r:(D||b)&&n(F,"BAD_PROP_ORDER",`Anchors and tags must be after the ${F.source} indicator`),E&&n(F,"UNEXPECTED_TOKEN",`Unexpected ${F.source} in ${t??"collection"}`),E=F,l=r==="seq-item-ind"||r==="explicit-key-ind",c=!1;break;case"comma":if(t){v&&n(F,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),v=F,l=!1,c=!1;break}default:n(F,"UNEXPECTED_TOKEN",`Unexpected ${F.type} token`),l=!1,c=!1}let x=e[e.length-1],$=x?x.offset+x.source.length:i;return m&&s&&s.type!=="space"&&s.type!=="newline"&&s.type!=="comma"&&(s.type!=="scalar"||s.source!=="")&&n(s.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g&&(l&&g.indent<=o||s?.type==="block-map"||s?.type==="block-seq")&&n(g,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:v,found:E,spaceBefore:u,comment:f,hasNewline:p,anchor:D,tag:b,newlineAfterProp:w,end:$,start:C??$}}ug.resolveProps=o1});var ra=_(lg=>{"use strict";function gc(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes(`
116
+ `))return!0;if(e.end){for(let t of e.end)if(t.type==="newline")return!0}return!1;case"flow-collection":for(let t of e.items){for(let r of t.start)if(r.type==="newline")return!0;if(t.sep){for(let r of t.sep)if(r.type==="newline")return!0}if(gc(t.key)||gc(t.value))return!0}return!1;default:return!0}}lg.containsNewline=gc});var Dc=_(cg=>{"use strict";var a1=ra();function u1(e,t,r){if(t?.type==="flow-collection"){let s=t.end[0];s.indent===e&&(s.source==="]"||s.source==="}")&&a1.containsNewline(t)&&r(s,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}cg.flowIndentCheck=u1});var yc=_(dg=>{"use strict";var fg=Z();function l1(e,t,r){let{uniqueKeys:s}=e.options;if(s===!1)return!1;let i=typeof s=="function"?s:(n,o)=>n===o||fg.isScalar(n)&&fg.isScalar(o)&&n.value===o.value;return t.some(n=>i(n.key,r))}dg.mapIncludes=l1});var yg=_(Dg=>{"use strict";var hg=dr(),c1=pr(),pg=nn(),f1=ra(),mg=Dc(),d1=yc(),gg="All mapping items must start at the same column";function h1({composeNode:e,composeEmptyNode:t},r,s,i,n){let o=n?.nodeClass??c1.YAMLMap,a=new o(r.schema);r.atRoot&&(r.atRoot=!1);let u=s.offset,l=null;for(let c of s.items){let{start:f,key:h,sep:p,value:m}=c,g=pg.resolveProps(f,{indicator:"explicit-key-ind",next:h??p?.[0],offset:u,onError:i,parentIndent:s.indent,startOnNewline:!0}),D=!g.found;if(D){if(h&&(h.type==="block-seq"?i(u,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in h&&h.indent!==s.indent&&i(u,"BAD_INDENT",gg)),!g.anchor&&!g.tag&&!p){l=g.end,g.comment&&(a.comment?a.comment+=`
117
+ `+g.comment:a.comment=g.comment);continue}(g.newlineAfterProp||f1.containsNewline(h))&&i(h??f[f.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else g.found?.indent!==s.indent&&i(u,"BAD_INDENT",gg);r.atKey=!0;let b=g.end,w=h?e(r,h,g,i):t(r,b,f,null,g,i);r.schema.compat&&mg.flowIndentCheck(s.indent,h,i),r.atKey=!1,d1.mapIncludes(r,a.items,w)&&i(b,"DUPLICATE_KEY","Map keys must be unique");let v=pg.resolveProps(p??[],{indicator:"map-value-ind",next:m,offset:w.range[2],onError:i,parentIndent:s.indent,startOnNewline:!h||h.type==="block-scalar"});if(u=v.end,v.found){D&&(m?.type==="block-map"&&!v.hasNewline&&i(u,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),r.options.strict&&g.start<v.found.offset-1024&&i(w.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let E=m?e(r,m,v,i):t(r,u,p,null,v,i);r.schema.compat&&mg.flowIndentCheck(s.indent,m,i),u=E.range[2];let C=new hg.Pair(w,E);r.options.keepSourceTokens&&(C.srcToken=c),a.items.push(C)}else{D&&i(w.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),v.comment&&(w.comment?w.comment+=`
118
+ `+v.comment:w.comment=v.comment);let E=new hg.Pair(w);r.options.keepSourceTokens&&(E.srcToken=c),a.items.push(E)}}return l&&l<u&&i(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[s.offset,u,l??u],a}Dg.resolveBlockMap=h1});var bg=_(wg=>{"use strict";var p1=mr(),m1=nn(),g1=Dc();function D1({composeNode:e,composeEmptyNode:t},r,s,i,n){let o=n?.nodeClass??p1.YAMLSeq,a=new o(r.schema);r.atRoot&&(r.atRoot=!1),r.atKey&&(r.atKey=!1);let u=s.offset,l=null;for(let{start:c,value:f}of s.items){let h=m1.resolveProps(c,{indicator:"seq-item-ind",next:f,offset:u,onError:i,parentIndent:s.indent,startOnNewline:!0});if(!h.found)if(h.anchor||h.tag||f)f?.type==="block-seq"?i(h.end,"BAD_INDENT","All sequence items must start at the same column"):i(u,"MISSING_CHAR","Sequence item without - indicator");else{l=h.end,h.comment&&(a.comment=h.comment);continue}let p=f?e(r,f,h,i):t(r,h.end,c,null,h,i);r.schema.compat&&g1.flowIndentCheck(s.indent,f,i),u=p.range[2],a.items.push(p)}return a.range=[s.offset,u,l??u],a}wg.resolveBlockSeq=D1});var Is=_(vg=>{"use strict";function y1(e,t,r,s){let i="";if(e){let n=!1,o="";for(let a of e){let{source:u,type:l}=a;switch(l){case"space":n=!0;break;case"comment":{r&&!n&&s(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let c=u.substring(1)||" ";i?i+=o+c:i=c,o="";break}case"newline":i&&(o+=u),n=!0;break;default:s(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`)}t+=u.length}}return{comment:i,offset:t}}vg.resolveEnd=y1});var Sg=_(Fg=>{"use strict";var w1=Z(),b1=dr(),Eg=pr(),v1=mr(),E1=Is(),Cg=nn(),C1=ra(),F1=yc(),wc="Block collections are not allowed within flow collections",bc=e=>e&&(e.type==="block-map"||e.type==="block-seq");function S1({composeNode:e,composeEmptyNode:t},r,s,i,n){let o=s.start.source==="{",a=o?"flow map":"flow sequence",u=n?.nodeClass??(o?Eg.YAMLMap:v1.YAMLSeq),l=new u(r.schema);l.flow=!0;let c=r.atRoot;c&&(r.atRoot=!1),r.atKey&&(r.atKey=!1);let f=s.offset+s.start.source.length;for(let D=0;D<s.items.length;++D){let b=s.items[D],{start:w,key:v,sep:E,value:C}=b,x=Cg.resolveProps(w,{flow:a,indicator:"explicit-key-ind",next:v??E?.[0],offset:f,onError:i,parentIndent:s.indent,startOnNewline:!1});if(!x.found){if(!x.anchor&&!x.tag&&!E&&!C){D===0&&x.comma?i(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):D<s.items.length-1&&i(x.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),x.comment&&(l.comment?l.comment+=`
119
+ `+x.comment:l.comment=x.comment),f=x.end;continue}!o&&r.options.strict&&C1.containsNewline(v)&&i(v,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(D===0)x.comma&&i(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(x.comma||i(x.start,"MISSING_CHAR",`Missing , between ${a} items`),x.comment){let $="";e:for(let F of w)switch(F.type){case"comma":case"space":break;case"comment":$=F.source.substring(1);break e;default:break e}if($){let F=l.items[l.items.length-1];w1.isPair(F)&&(F=F.value??F.key),F.comment?F.comment+=`
120
+ `+$:F.comment=$,x.comment=x.comment.substring($.length+1)}}if(!o&&!E&&!x.found){let $=C?e(r,C,x,i):t(r,x.end,E,null,x,i);l.items.push($),f=$.range[2],bc(C)&&i($.range,"BLOCK_IN_FLOW",wc)}else{r.atKey=!0;let $=x.end,F=v?e(r,v,x,i):t(r,$,w,null,x,i);bc(v)&&i(F.range,"BLOCK_IN_FLOW",wc),r.atKey=!1;let R=Cg.resolveProps(E??[],{flow:a,indicator:"map-value-ind",next:C,offset:F.range[2],onError:i,parentIndent:s.indent,startOnNewline:!1});if(R.found){if(!o&&!x.found&&r.options.strict){if(E)for(let K of E){if(K===R.found)break;if(K.type==="newline"){i(K,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}x.start<R.found.offset-1024&&i(R.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else C&&("source"in C&&C.source?.[0]===":"?i(C,"MISSING_CHAR",`Missing space after : in ${a}`):i(R.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let W=C?e(r,C,R,i):R.found?t(r,R.end,E,null,R,i):null;W?bc(C)&&i(W.range,"BLOCK_IN_FLOW",wc):R.comment&&(F.comment?F.comment+=`
121
+ `+R.comment:F.comment=R.comment);let ae=new b1.Pair(F,W);if(r.options.keepSourceTokens&&(ae.srcToken=b),o){let K=l;F1.mapIncludes(r,K.items,F)&&i($,"DUPLICATE_KEY","Map keys must be unique"),K.items.push(ae)}else{let K=new Eg.YAMLMap(r.schema);K.flow=!0,K.items.push(ae);let I=(W??F).range;K.range=[F.range[0],I[1],I[2]],l.items.push(K)}f=W?W.range[2]:R.end}}let h=o?"}":"]",[p,...m]=s.end,g=f;if(p?.source===h)g=p.offset+p.source.length;else{let D=a[0].toUpperCase()+a.substring(1),b=c?`${D} must end with a ${h}`:`${D} in block collection must be sufficiently indented and end with a ${h}`;i(f,c?"MISSING_CHAR":"BAD_INDENT",b),p&&p.source.length!==1&&m.unshift(p)}if(m.length>0){let D=E1.resolveEnd(m,g,r.options.strict,i);D.comment&&(l.comment?l.comment+=`
122
+ `+D.comment:l.comment=D.comment),l.range=[s.offset,g,D.offset]}else l.range=[s.offset,g,g];return l}Fg.resolveFlowCollection=S1});var Ag=_(xg=>{"use strict";var x1=Z(),A1=he(),R1=pr(),k1=mr(),I1=yg(),_1=bg(),T1=Sg();function vc(e,t,r,s,i,n){let o=r.type==="block-map"?I1.resolveBlockMap(e,t,r,s,n):r.type==="block-seq"?_1.resolveBlockSeq(e,t,r,s,n):T1.resolveFlowCollection(e,t,r,s,n),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function $1(e,t,r,s,i){let n=s.tag,o=n?t.directives.tagName(n.source,h=>i(n,"TAG_RESOLVE_FAILED",h)):null;if(r.type==="block-seq"){let{anchor:h,newlineAfterProp:p}=s,m=h&&n?h.offset>n.offset?h:n:h??n;m&&(!p||p.offset<m.offset)&&i(m,"MISSING_CHAR","Missing newline after block sequence props")}let a=r.type==="block-map"?"map":r.type==="block-seq"?"seq":r.start.source==="{"?"map":"seq";if(!n||!o||o==="!"||o===R1.YAMLMap.tagName&&a==="map"||o===k1.YAMLSeq.tagName&&a==="seq")return vc(e,t,r,i,o);let u=t.schema.tags.find(h=>h.tag===o&&h.collection===a);if(!u){let h=t.schema.knownTags[o];if(h?.collection===a)t.schema.tags.push(Object.assign({},h,{default:!1})),u=h;else return h?i(n,"BAD_COLLECTION_TYPE",`${h.tag} used for ${a} collection, but expects ${h.collection??"scalar"}`,!0):i(n,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),vc(e,t,r,i,o)}let l=vc(e,t,r,i,o,u),c=u.resolve?.(l,h=>i(n,"TAG_RESOLVE_FAILED",h),t.options)??l,f=x1.isNode(c)?c:new A1.Scalar(c);return f.range=l.range,f.tag=o,u?.format&&(f.format=u.format),f}xg.composeCollection=$1});var Cc=_(Rg=>{"use strict";var Ec=he();function P1(e,t,r){let s=t.offset,i=B1(t,e.options.strict,r);if(!i)return{value:"",type:null,comment:"",range:[s,s,s]};let n=i.mode===">"?Ec.Scalar.BLOCK_FOLDED:Ec.Scalar.BLOCK_LITERAL,o=t.source?O1(t.source):[],a=o.length;for(let g=o.length-1;g>=0;--g){let D=o[g][1];if(D===""||D==="\r")a=g;else break}if(a===0){let g=i.chomp==="+"&&o.length>0?`
123
123
  `.repeat(Math.max(1,o.length-1)):"",D=s+i.length;return t.source&&(D+=t.source.length),{value:g,type:n,comment:i.comment,range:[s,D,D]}}let u=t.indent+i.indent,l=t.offset+i.length,c=0;for(let g=0;g<a;++g){let[D,b]=o[g];if(b===""||b==="\r")i.indent===0&&D.length>u&&(u=D.length);else{D.length<u&&r(l+D.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),i.indent===0&&(u=D.length),c=g,u===0&&!e.atRoot&&r(l,"BAD_INDENT","Block scalar values in collections must be indented");break}l+=D.length+b.length+1}for(let g=o.length-1;g>=a;--g)o[g][0].length>u&&(a=g+1);let f="",h="",p=!1;for(let g=0;g<c;++g)f+=o[g][0].slice(u)+`
124
124
  `;for(let g=c;g<a;++g){let[D,b]=o[g];l+=D.length+b.length+1;let w=b[b.length-1]==="\r";if(w&&(b=b.slice(0,-1)),b&&D.length<u){let E=`Block scalar lines must not be less indented than their ${i.indent?"explicit indentation indicator":"first line"}`;r(l-b.length-(w?2:1),"BAD_INDENT",E),D=""}n===Ec.Scalar.BLOCK_LITERAL?(f+=h+D.slice(u)+b,h=`
125
125
  `):D.length>u||b[0]===" "?(h===" "?h=`
@@ -134,68 +134,68 @@ ${l}
134
134
  `+o[g][0].slice(u);f[f.length-1]!==`
135
135
  `&&(f+=`
136
136
  `);break;default:f+=`
137
- `}let m=s+i.length+t.source.length;return{value:f,type:n,comment:i.comment,range:[s,m,m]}}function _1({offset:e,props:t},r,s){if(t[0].type!=="block-scalar-header")return s(t[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:i}=t[0],n=i[0],o=0,a="",u=-1;for(let h=1;h<i.length;++h){let p=i[h];if(!a&&(p==="-"||p==="+"))a=p;else{let m=Number(p);!o&&m?o=m:u===-1&&(u=e+h)}}u!==-1&&s(u,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${i}`);let l=!1,c="",f=i.length;for(let h=1;h<t.length;++h){let p=t[h];switch(p.type){case"space":l=!0;case"newline":f+=p.source.length;break;case"comment":r&&!l&&s(p,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),f+=p.source.length,c=p.source.substring(1);break;case"error":s(p,"UNEXPECTED_TOKEN",p.message),f+=p.source.length;break;default:{let m=`Unexpected token in block scalar header: ${p.type}`;s(p,"UNEXPECTED_TOKEN",m);let g=p.source;g&&typeof g=="string"&&(f+=g.length)}}}return{mode:n,indent:o,chomp:a,comment:c,length:f}}function T1(e){let t=e.split(/\n( *)/),r=t[0],s=r.match(/^( *)/),n=[s?.[1]?[s[1],r.slice(s[1].length)]:["",r]];for(let o=1;o<t.length;o+=2)n.push([t[o],t[o+1]]);return n}Ag.resolveBlockScalar=I1});var Sc=_(kg=>{"use strict";var Fc=de(),$1=Is();function P1(e,t,r){let{offset:s,type:i,source:n,end:o}=e,a,u,l=(h,p,m)=>r(s+h,p,m);switch(i){case"scalar":a=Fc.Scalar.PLAIN,u=B1(n,l);break;case"single-quoted-scalar":a=Fc.Scalar.QUOTE_SINGLE,u=O1(n,l);break;case"double-quoted-scalar":a=Fc.Scalar.QUOTE_DOUBLE,u=L1(n,l);break;default:return r(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[s,s+n.length,s+n.length]}}let c=s+n.length,f=$1.resolveEnd(o,c,t,r);return{value:u,type:a,comment:f.comment,range:[s,c,f.offset]}}function B1(e,t){let r="";switch(e[0]){case" ":r="a tab character";break;case",":r="flow indicator character ,";break;case"%":r="directive indicator character %";break;case"|":case">":{r=`block scalar indicator ${e[0]}`;break}case"@":case"`":{r=`reserved character ${e[0]}`;break}}return r&&t(0,"BAD_SCALAR_START",`Plain value cannot start with ${r}`),Rg(e)}function O1(e,t){return(e[e.length-1]!=="'"||e.length===1)&&t(e.length,"MISSING_CHAR","Missing closing 'quote"),Rg(e.slice(1,-1)).replace(/''/g,"'")}function Rg(e){let t,r;try{t=new RegExp(`(.*?)(?<![ ])[ ]*\r?
137
+ `}let m=s+i.length+t.source.length;return{value:f,type:n,comment:i.comment,range:[s,m,m]}}function B1({offset:e,props:t},r,s){if(t[0].type!=="block-scalar-header")return s(t[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:i}=t[0],n=i[0],o=0,a="",u=-1;for(let h=1;h<i.length;++h){let p=i[h];if(!a&&(p==="-"||p==="+"))a=p;else{let m=Number(p);!o&&m?o=m:u===-1&&(u=e+h)}}u!==-1&&s(u,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${i}`);let l=!1,c="",f=i.length;for(let h=1;h<t.length;++h){let p=t[h];switch(p.type){case"space":l=!0;case"newline":f+=p.source.length;break;case"comment":r&&!l&&s(p,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),f+=p.source.length,c=p.source.substring(1);break;case"error":s(p,"UNEXPECTED_TOKEN",p.message),f+=p.source.length;break;default:{let m=`Unexpected token in block scalar header: ${p.type}`;s(p,"UNEXPECTED_TOKEN",m);let g=p.source;g&&typeof g=="string"&&(f+=g.length)}}}return{mode:n,indent:o,chomp:a,comment:c,length:f}}function O1(e){let t=e.split(/\n( *)/),r=t[0],s=r.match(/^( *)/),n=[s?.[1]?[s[1],r.slice(s[1].length)]:["",r]];for(let o=1;o<t.length;o+=2)n.push([t[o],t[o+1]]);return n}Rg.resolveBlockScalar=P1});var Sc=_(Ig=>{"use strict";var Fc=he(),L1=Is();function N1(e,t,r){let{offset:s,type:i,source:n,end:o}=e,a,u,l=(h,p,m)=>r(s+h,p,m);switch(i){case"scalar":a=Fc.Scalar.PLAIN,u=M1(n,l);break;case"single-quoted-scalar":a=Fc.Scalar.QUOTE_SINGLE,u=j1(n,l);break;case"double-quoted-scalar":a=Fc.Scalar.QUOTE_DOUBLE,u=q1(n,l);break;default:return r(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[s,s+n.length,s+n.length]}}let c=s+n.length,f=L1.resolveEnd(o,c,t,r);return{value:u,type:a,comment:f.comment,range:[s,c,f.offset]}}function M1(e,t){let r="";switch(e[0]){case" ":r="a tab character";break;case",":r="flow indicator character ,";break;case"%":r="directive indicator character %";break;case"|":case">":{r=`block scalar indicator ${e[0]}`;break}case"@":case"`":{r=`reserved character ${e[0]}`;break}}return r&&t(0,"BAD_SCALAR_START",`Plain value cannot start with ${r}`),kg(e)}function j1(e,t){return(e[e.length-1]!=="'"||e.length===1)&&t(e.length,"MISSING_CHAR","Missing closing 'quote"),kg(e.slice(1,-1)).replace(/''/g,"'")}function kg(e){let t,r;try{t=new RegExp(`(.*?)(?<![ ])[ ]*\r?
138
138
  `,"sy"),r=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
139
139
  `,"sy")}catch{t=/(.*?)[ \t]*\r?\n/sy,r=/[ \t]*(.*?)[ \t]*\r?\n/sy}let s=t.exec(e);if(!s)return e;let i=s[1],n=" ",o=t.lastIndex;for(r.lastIndex=o;s=r.exec(e);)s[1]===""?n===`
140
140
  `?i+=n:n=`
141
- `:(i+=n+s[1],n=" "),o=r.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,s=a.exec(e),i+n+(s?.[1]??"")}function L1(e,t){let r="";for(let s=1;s<e.length-1;++s){let i=e[s];if(!(i==="\r"&&e[s+1]===`
141
+ `:(i+=n+s[1],n=" "),o=r.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,s=a.exec(e),i+n+(s?.[1]??"")}function q1(e,t){let r="";for(let s=1;s<e.length-1;++s){let i=e[s];if(!(i==="\r"&&e[s+1]===`
142
142
  `))if(i===`
143
- `){let{fold:n,offset:o}=N1(e,s);r+=n,s=o}else if(i==="\\"){let n=e[++s],o=M1[n];if(o)r+=o;else if(n===`
143
+ `){let{fold:n,offset:o}=U1(e,s);r+=n,s=o}else if(i==="\\"){let n=e[++s],o=G1[n];if(o)r+=o;else if(n===`
144
144
  `)for(n=e[s+1];n===" "||n===" ";)n=e[++s+1];else if(n==="\r"&&e[s+1]===`
145
- `)for(n=e[++s+1];n===" "||n===" ";)n=e[++s+1];else if(n==="x"||n==="u"||n==="U"){let a={x:2,u:4,U:8}[n];r+=j1(e,s+1,a,t),s+=a}else{let a=e.substr(s-1,2);t(s-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),r+=a}}else if(i===" "||i===" "){let n=s,o=e[s+1];for(;o===" "||o===" ";)o=e[++s+1];o!==`
145
+ `)for(n=e[++s+1];n===" "||n===" ";)n=e[++s+1];else if(n==="x"||n==="u"||n==="U"){let a={x:2,u:4,U:8}[n];r+=V1(e,s+1,a,t),s+=a}else{let a=e.substr(s-1,2);t(s-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),r+=a}}else if(i===" "||i===" "){let n=s,o=e[s+1];for(;o===" "||o===" ";)o=e[++s+1];o!==`
146
146
  `&&!(o==="\r"&&e[s+2]===`
147
- `)&&(r+=s>n?e.slice(n,s+1):i)}else r+=i}return(e[e.length-1]!=='"'||e.length===1)&&t(e.length,"MISSING_CHAR",'Missing closing "quote'),r}function N1(e,t){let r="",s=e[t+1];for(;(s===" "||s===" "||s===`
147
+ `)&&(r+=s>n?e.slice(n,s+1):i)}else r+=i}return(e[e.length-1]!=='"'||e.length===1)&&t(e.length,"MISSING_CHAR",'Missing closing "quote'),r}function U1(e,t){let r="",s=e[t+1];for(;(s===" "||s===" "||s===`
148
148
  `||s==="\r")&&!(s==="\r"&&e[t+2]!==`
149
149
  `);)s===`
150
150
  `&&(r+=`
151
- `),t+=1,s=e[t+1];return r||(r=" "),{fold:r,offset:t}}var M1={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
152
- `,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function j1(e,t,r,s){let i=e.substr(t,r),o=i.length===r&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;if(isNaN(o)){let a=e.substr(t-2,r+2);return s(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}kg.resolveFlowScalar=P1});var Tg=_(_g=>{"use strict";var jr=Z(),Ig=de(),q1=Cc(),U1=Sc();function G1(e,t,r,s){let{value:i,type:n,comment:o,range:a}=t.type==="block-scalar"?q1.resolveBlockScalar(e,t,s):U1.resolveFlowScalar(t,e.options.strict,s),u=r?e.directives.tagName(r.source,f=>s(r,"TAG_RESOLVE_FAILED",f)):null,l;e.options.stringKeys&&e.atKey?l=e.schema[jr.SCALAR]:u?l=V1(e.schema,i,u,r,s):t.type==="scalar"?l=W1(e,i,t,s):l=e.schema[jr.SCALAR];let c;try{let f=l.resolve(i,h=>s(r??t,"TAG_RESOLVE_FAILED",h),e.options);c=jr.isScalar(f)?f:new Ig.Scalar(f)}catch(f){let h=f instanceof Error?f.message:String(f);s(r??t,"TAG_RESOLVE_FAILED",h),c=new Ig.Scalar(i)}return c.range=a,c.source=i,n&&(c.type=n),u&&(c.tag=u),l.format&&(c.format=l.format),o&&(c.comment=o),c}function V1(e,t,r,s,i){if(r==="!")return e[jr.SCALAR];let n=[];for(let a of e.tags)if(!a.collection&&a.tag===r)if(a.default&&a.test)n.push(a);else return a;for(let a of n)if(a.test?.test(t))return a;let o=e.knownTags[r];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${r}`,r!=="tag:yaml.org,2002:str"),e[jr.SCALAR])}function W1({atKey:e,directives:t,schema:r},s,i,n){let o=r.tags.find(a=>(a.default===!0||e&&a.default==="key")&&a.test?.test(s))||r[jr.SCALAR];if(r.compat){let a=r.compat.find(u=>u.default&&u.test?.test(s))??r[jr.SCALAR];if(o.tag!==a.tag){let u=t.tagString(o.tag),l=t.tagString(a.tag),c=`Value may be parsed as either ${u} or ${l}`;n(i,"TAG_RESOLVE_FAILED",c,!0)}}return o}_g.composeScalar=G1});var Pg=_($g=>{"use strict";function K1(e,t,r){if(t){r??(r=t.length);for(let s=r-1;s>=0;--s){let i=t[s];switch(i.type){case"space":case"comment":case"newline":e-=i.source.length;continue}for(i=t[++s];i?.type==="space";)e+=i.source.length,i=t[++s];break}}return e}$g.emptyScalarPosition=K1});var Lg=_(Ac=>{"use strict";var H1=Oi(),z1=Z(),J1=xg(),Bg=Tg(),Y1=Is(),Z1=Pg(),X1={composeNode:Og,composeEmptyNode:xc};function Og(e,t,r,s){let i=e.atKey,{spaceBefore:n,comment:o,anchor:a,tag:u}=r,l,c=!0;switch(t.type){case"alias":l=Q1(e,t,s),(a||u)&&s(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=Bg.composeScalar(e,t,u,s),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{l=J1.composeCollection(X1,e,t,r,s),a&&(l.anchor=a.source.substring(1))}catch(f){let h=f instanceof Error?f.message:String(f);s(t,"RESOURCE_EXHAUSTION",h)}break;default:{let f=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;s(t,"UNEXPECTED_TOKEN",f),c=!1}}return l??(l=xc(e,t.offset,void 0,null,r,s)),a&&l.anchor===""&&s(a,"BAD_ALIAS","Anchor cannot be an empty string"),i&&e.options.stringKeys&&(!z1.isScalar(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&s(u??t,"NON_STRING_KEY","With stringKeys, all keys must be strings"),n&&(l.spaceBefore=!0),o&&(t.type==="scalar"&&t.source===""?l.comment=o:l.commentBefore=o),e.options.keepSourceTokens&&c&&(l.srcToken=t),l}function xc(e,t,r,s,{spaceBefore:i,comment:n,anchor:o,tag:a,end:u},l){let c={type:"scalar",offset:Z1.emptyScalarPosition(t,r,s),indent:-1,source:""},f=Bg.composeScalar(e,c,a,l);return o&&(f.anchor=o.source.substring(1),f.anchor===""&&l(o,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(f.spaceBefore=!0),n&&(f.comment=n,f.range[2]=u),f}function Q1({options:e},{offset:t,source:r,end:s},i){let n=new H1.Alias(r.substring(1));n.source===""&&i(t,"BAD_ALIAS","Alias cannot be an empty string"),n.source.endsWith(":")&&i(t+r.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=t+r.length,a=Y1.resolveEnd(s,o,e.strict,i);return n.range=[t,o,a.offset],a.comment&&(n.comment=a.comment),n}Ac.composeEmptyNode=xc;Ac.composeNode=Og});var jg=_(Mg=>{"use strict";var eA=Qi(),Ng=Lg(),tA=Is(),rA=sn();function sA(e,t,{offset:r,start:s,value:i,end:n},o){let a=Object.assign({_directives:t},e),u=new eA.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:u.directives,options:u.options,schema:u.schema},c=rA.resolveProps(s,{indicator:"doc-start",next:i??n?.[0],offset:r,onError:o,parentIndent:0,startOnNewline:!0});c.found&&(u.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!c.hasNewline&&o(c.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),u.contents=i?Ng.composeNode(l,i,c,o):Ng.composeEmptyNode(l,c.end,s,null,c,o);let f=u.contents.range[2],h=tA.resolveEnd(n,f,!1,o);return h.comment&&(u.comment=h.comment),u.range=[r,f,h.offset],u}Mg.composeDoc=sA});var kc=_(Gg=>{"use strict";var iA=require("process"),nA=pl(),oA=Qi(),nn=rn(),qg=Z(),aA=jg(),uA=Is();function on(e){if(typeof e=="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:r}=e;return[t,t+(typeof r=="string"?r.length:1)]}function Ug(e){let t="",r=!1,s=!1;for(let i=0;i<e.length;++i){let n=e[i];switch(n[0]){case"#":t+=(t===""?"":s?`
151
+ `),t+=1,s=e[t+1];return r||(r=" "),{fold:r,offset:t}}var G1={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
152
+ `,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function V1(e,t,r,s){let i=e.substr(t,r),o=i.length===r&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;if(isNaN(o)){let a=e.substr(t-2,r+2);return s(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}Ig.resolveFlowScalar=N1});var $g=_(Tg=>{"use strict";var jr=Z(),_g=he(),W1=Cc(),H1=Sc();function K1(e,t,r,s){let{value:i,type:n,comment:o,range:a}=t.type==="block-scalar"?W1.resolveBlockScalar(e,t,s):H1.resolveFlowScalar(t,e.options.strict,s),u=r?e.directives.tagName(r.source,f=>s(r,"TAG_RESOLVE_FAILED",f)):null,l;e.options.stringKeys&&e.atKey?l=e.schema[jr.SCALAR]:u?l=z1(e.schema,i,u,r,s):t.type==="scalar"?l=J1(e,i,t,s):l=e.schema[jr.SCALAR];let c;try{let f=l.resolve(i,h=>s(r??t,"TAG_RESOLVE_FAILED",h),e.options);c=jr.isScalar(f)?f:new _g.Scalar(f)}catch(f){let h=f instanceof Error?f.message:String(f);s(r??t,"TAG_RESOLVE_FAILED",h),c=new _g.Scalar(i)}return c.range=a,c.source=i,n&&(c.type=n),u&&(c.tag=u),l.format&&(c.format=l.format),o&&(c.comment=o),c}function z1(e,t,r,s,i){if(r==="!")return e[jr.SCALAR];let n=[];for(let a of e.tags)if(!a.collection&&a.tag===r)if(a.default&&a.test)n.push(a);else return a;for(let a of n)if(a.test?.test(t))return a;let o=e.knownTags[r];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${r}`,r!=="tag:yaml.org,2002:str"),e[jr.SCALAR])}function J1({atKey:e,directives:t,schema:r},s,i,n){let o=r.tags.find(a=>(a.default===!0||e&&a.default==="key")&&a.test?.test(s))||r[jr.SCALAR];if(r.compat){let a=r.compat.find(u=>u.default&&u.test?.test(s))??r[jr.SCALAR];if(o.tag!==a.tag){let u=t.tagString(o.tag),l=t.tagString(a.tag),c=`Value may be parsed as either ${u} or ${l}`;n(i,"TAG_RESOLVE_FAILED",c,!0)}}return o}Tg.composeScalar=K1});var Bg=_(Pg=>{"use strict";function Y1(e,t,r){if(t){r??(r=t.length);for(let s=r-1;s>=0;--s){let i=t[s];switch(i.type){case"space":case"comment":case"newline":e-=i.source.length;continue}for(i=t[++s];i?.type==="space";)e+=i.source.length,i=t[++s];break}}return e}Pg.emptyScalarPosition=Y1});var Ng=_(Ac=>{"use strict";var Z1=Li(),X1=Z(),Q1=Ag(),Og=$g(),eA=Is(),tA=Bg(),rA={composeNode:Lg,composeEmptyNode:xc};function Lg(e,t,r,s){let i=e.atKey,{spaceBefore:n,comment:o,anchor:a,tag:u}=r,l,c=!0;switch(t.type){case"alias":l=sA(e,t,s),(a||u)&&s(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":l=Og.composeScalar(e,t,u,s),a&&(l.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{l=Q1.composeCollection(rA,e,t,r,s),a&&(l.anchor=a.source.substring(1))}catch(f){let h=f instanceof Error?f.message:String(f);s(t,"RESOURCE_EXHAUSTION",h)}break;default:{let f=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;s(t,"UNEXPECTED_TOKEN",f),c=!1}}return l??(l=xc(e,t.offset,void 0,null,r,s)),a&&l.anchor===""&&s(a,"BAD_ALIAS","Anchor cannot be an empty string"),i&&e.options.stringKeys&&(!X1.isScalar(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&s(u??t,"NON_STRING_KEY","With stringKeys, all keys must be strings"),n&&(l.spaceBefore=!0),o&&(t.type==="scalar"&&t.source===""?l.comment=o:l.commentBefore=o),e.options.keepSourceTokens&&c&&(l.srcToken=t),l}function xc(e,t,r,s,{spaceBefore:i,comment:n,anchor:o,tag:a,end:u},l){let c={type:"scalar",offset:tA.emptyScalarPosition(t,r,s),indent:-1,source:""},f=Og.composeScalar(e,c,a,l);return o&&(f.anchor=o.source.substring(1),f.anchor===""&&l(o,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(f.spaceBefore=!0),n&&(f.comment=n,f.range[2]=u),f}function sA({options:e},{offset:t,source:r,end:s},i){let n=new Z1.Alias(r.substring(1));n.source===""&&i(t,"BAD_ALIAS","Alias cannot be an empty string"),n.source.endsWith(":")&&i(t+r.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=t+r.length,a=eA.resolveEnd(s,o,e.strict,i);return n.range=[t,o,a.offset],a.comment&&(n.comment=a.comment),n}Ac.composeEmptyNode=xc;Ac.composeNode=Lg});var qg=_(jg=>{"use strict";var iA=en(),Mg=Ng(),nA=Is(),oA=nn();function aA(e,t,{offset:r,start:s,value:i,end:n},o){let a=Object.assign({_directives:t},e),u=new iA.Document(void 0,a),l={atKey:!1,atRoot:!0,directives:u.directives,options:u.options,schema:u.schema},c=oA.resolveProps(s,{indicator:"doc-start",next:i??n?.[0],offset:r,onError:o,parentIndent:0,startOnNewline:!0});c.found&&(u.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!c.hasNewline&&o(c.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),u.contents=i?Mg.composeNode(l,i,c,o):Mg.composeEmptyNode(l,c.end,s,null,c,o);let f=u.contents.range[2],h=nA.resolveEnd(n,f,!1,o);return h.comment&&(u.comment=h.comment),u.range=[r,f,h.offset],u}jg.composeDoc=aA});var kc=_(Vg=>{"use strict";var uA=require("process"),lA=pl(),cA=en(),on=sn(),Ug=Z(),fA=qg(),dA=Is();function an(e){if(typeof e=="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:r}=e;return[t,t+(typeof r=="string"?r.length:1)]}function Gg(e){let t="",r=!1,s=!1;for(let i=0;i<e.length;++i){let n=e[i];switch(n[0]){case"#":t+=(t===""?"":s?`
153
153
 
154
154
  `:`
155
- `)+(n.substring(1)||" "),r=!0,s=!1;break;case"%":e[i+1]?.[0]!=="#"&&(i+=1),r=!1;break;default:r||(s=!0),r=!1}}return{comment:t,afterEmptyLine:s}}var Rc=class{constructor(t={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(r,s,i,n)=>{let o=on(r);n?this.warnings.push(new nn.YAMLWarning(o,s,i)):this.errors.push(new nn.YAMLParseError(o,s,i))},this.directives=new nA.Directives({version:t.version||"1.2"}),this.options=t}decorate(t,r){let{comment:s,afterEmptyLine:i}=Ug(this.prelude);if(s){let n=t.contents;if(r)t.comment=t.comment?`${t.comment}
156
- ${s}`:s;else if(i||t.directives.docStart||!n)t.commentBefore=s;else if(qg.isCollection(n)&&!n.flow&&n.items.length>0){let o=n.items[0];qg.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${s}
155
+ `)+(n.substring(1)||" "),r=!0,s=!1;break;case"%":e[i+1]?.[0]!=="#"&&(i+=1),r=!1;break;default:r||(s=!0),r=!1}}return{comment:t,afterEmptyLine:s}}var Rc=class{constructor(t={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(r,s,i,n)=>{let o=an(r);n?this.warnings.push(new on.YAMLWarning(o,s,i)):this.errors.push(new on.YAMLParseError(o,s,i))},this.directives=new lA.Directives({version:t.version||"1.2"}),this.options=t}decorate(t,r){let{comment:s,afterEmptyLine:i}=Gg(this.prelude);if(s){let n=t.contents;if(r)t.comment=t.comment?`${t.comment}
156
+ ${s}`:s;else if(i||t.directives.docStart||!n)t.commentBefore=s;else if(Ug.isCollection(n)&&!n.flow&&n.items.length>0){let o=n.items[0];Ug.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${s}
157
157
  ${a}`:s}else{let o=n.commentBefore;n.commentBefore=o?`${s}
158
- ${o}`:s}}r?(Array.prototype.push.apply(t.errors,this.errors),Array.prototype.push.apply(t.warnings,this.warnings)):(t.errors=this.errors,t.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Ug(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(t,r=!1,s=-1){for(let i of t)yield*this.next(i);yield*this.end(r,s)}*next(t){switch(iA.env.LOG_STREAM&&console.dir(t,{depth:null}),t.type){case"directive":this.directives.add(t.source,(r,s,i)=>{let n=on(t);n[0]+=r,this.onError(n,"BAD_DIRECTIVE",s,i)}),this.prelude.push(t.source),this.atDirectives=!0;break;case"document":{let r=aA.composeDoc(this.options,this.directives,t,this.onError);this.atDirectives&&!r.directives.docStart&&this.onError(t,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(r,!1),this.doc&&(yield this.doc),this.doc=r,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(t.source);break;case"error":{let r=t.source?`${t.message}: ${JSON.stringify(t.source)}`:t.message,s=new nn.YAMLParseError(on(t),"UNEXPECTED_TOKEN",r);this.atDirectives||!this.doc?this.errors.push(s):this.doc.errors.push(s);break}case"doc-end":{if(!this.doc){let s="Unexpected doc-end without preceding document";this.errors.push(new nn.YAMLParseError(on(t),"UNEXPECTED_TOKEN",s));break}this.doc.directives.docEnd=!0;let r=uA.resolveEnd(t.end,t.offset+t.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),r.comment){let s=this.doc.comment;this.doc.comment=s?`${s}
159
- ${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.push(new nn.YAMLParseError(on(t),"UNEXPECTED_TOKEN",`Unsupported token ${t.type}`))}}*end(t=!1,r=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(t){let s=Object.assign({_directives:this.directives},this.options),i=new oA.Document(void 0,s);this.atDirectives&&this.onError(r,"MISSING_CHAR","Missing directives-end indicator line"),i.range=[0,r,r],this.decorate(i,!1),yield i}}};Gg.Composer=Rc});var Kg=_(sa=>{"use strict";var lA=Cc(),cA=Sc(),fA=rn(),Vg=qi();function dA(e,t=!0,r){if(e){let s=(i,n,o)=>{let a=typeof i=="number"?i:Array.isArray(i)?i[0]:i.offset;if(r)r(a,n,o);else throw new fA.YAMLParseError([a,a+1],n,o)};switch(e.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return cA.resolveFlowScalar(e,t,s);case"block-scalar":return lA.resolveBlockScalar({options:{strict:t}},e,s)}}return null}function hA(e,t){let{implicitKey:r=!1,indent:s,inFlow:i=!1,offset:n=-1,type:o="PLAIN"}=t,a=Vg.stringifyString({type:o,value:e},{implicitKey:r,indent:s>0?" ".repeat(s):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}}),u=t.end??[{type:"newline",offset:-1,indent:s,source:`
158
+ ${o}`:s}}r?(Array.prototype.push.apply(t.errors,this.errors),Array.prototype.push.apply(t.warnings,this.warnings)):(t.errors=this.errors,t.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Gg(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(t,r=!1,s=-1){for(let i of t)yield*this.next(i);yield*this.end(r,s)}*next(t){switch(uA.env.LOG_STREAM&&console.dir(t,{depth:null}),t.type){case"directive":this.directives.add(t.source,(r,s,i)=>{let n=an(t);n[0]+=r,this.onError(n,"BAD_DIRECTIVE",s,i)}),this.prelude.push(t.source),this.atDirectives=!0;break;case"document":{let r=fA.composeDoc(this.options,this.directives,t,this.onError);this.atDirectives&&!r.directives.docStart&&this.onError(t,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(r,!1),this.doc&&(yield this.doc),this.doc=r,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(t.source);break;case"error":{let r=t.source?`${t.message}: ${JSON.stringify(t.source)}`:t.message,s=new on.YAMLParseError(an(t),"UNEXPECTED_TOKEN",r);this.atDirectives||!this.doc?this.errors.push(s):this.doc.errors.push(s);break}case"doc-end":{if(!this.doc){let s="Unexpected doc-end without preceding document";this.errors.push(new on.YAMLParseError(an(t),"UNEXPECTED_TOKEN",s));break}this.doc.directives.docEnd=!0;let r=dA.resolveEnd(t.end,t.offset+t.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),r.comment){let s=this.doc.comment;this.doc.comment=s?`${s}
159
+ ${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.push(new on.YAMLParseError(an(t),"UNEXPECTED_TOKEN",`Unsupported token ${t.type}`))}}*end(t=!1,r=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(t){let s=Object.assign({_directives:this.directives},this.options),i=new cA.Document(void 0,s);this.atDirectives&&this.onError(r,"MISSING_CHAR","Missing directives-end indicator line"),i.range=[0,r,r],this.decorate(i,!1),yield i}}};Vg.Composer=Rc});var Kg=_(sa=>{"use strict";var hA=Cc(),pA=Sc(),mA=sn(),Wg=Ui();function gA(e,t=!0,r){if(e){let s=(i,n,o)=>{let a=typeof i=="number"?i:Array.isArray(i)?i[0]:i.offset;if(r)r(a,n,o);else throw new mA.YAMLParseError([a,a+1],n,o)};switch(e.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return pA.resolveFlowScalar(e,t,s);case"block-scalar":return hA.resolveBlockScalar({options:{strict:t}},e,s)}}return null}function DA(e,t){let{implicitKey:r=!1,indent:s,inFlow:i=!1,offset:n=-1,type:o="PLAIN"}=t,a=Wg.stringifyString({type:o,value:e},{implicitKey:r,indent:s>0?" ".repeat(s):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}}),u=t.end??[{type:"newline",offset:-1,indent:s,source:`
160
160
  `}];switch(a[0]){case"|":case">":{let l=a.indexOf(`
161
161
  `),c=a.substring(0,l),f=a.substring(l+1)+`
162
- `,h=[{type:"block-scalar-header",offset:n,indent:s,source:c}];return Wg(h,u)||h.push({type:"newline",offset:-1,indent:s,source:`
163
- `}),{type:"block-scalar",offset:n,indent:s,props:h,source:f}}case'"':return{type:"double-quoted-scalar",offset:n,indent:s,source:a,end:u};case"'":return{type:"single-quoted-scalar",offset:n,indent:s,source:a,end:u};default:return{type:"scalar",offset:n,indent:s,source:a,end:u}}}function pA(e,t,r={}){let{afterKey:s=!1,implicitKey:i=!1,inFlow:n=!1,type:o}=r,a="indent"in e?e.indent:null;if(s&&typeof a=="number"&&(a+=2),!o)switch(e.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let l=e.props[0];if(l.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=l.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let u=Vg.stringifyString({type:o,value:t},{implicitKey:i||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:n,options:{blockQuote:!0,lineWidth:-1}});switch(u[0]){case"|":case">":mA(e,u);break;case'"':Ic(e,u,"double-quoted-scalar");break;case"'":Ic(e,u,"single-quoted-scalar");break;default:Ic(e,u,"scalar")}}function mA(e,t){let r=t.indexOf(`
162
+ `,h=[{type:"block-scalar-header",offset:n,indent:s,source:c}];return Hg(h,u)||h.push({type:"newline",offset:-1,indent:s,source:`
163
+ `}),{type:"block-scalar",offset:n,indent:s,props:h,source:f}}case'"':return{type:"double-quoted-scalar",offset:n,indent:s,source:a,end:u};case"'":return{type:"single-quoted-scalar",offset:n,indent:s,source:a,end:u};default:return{type:"scalar",offset:n,indent:s,source:a,end:u}}}function yA(e,t,r={}){let{afterKey:s=!1,implicitKey:i=!1,inFlow:n=!1,type:o}=r,a="indent"in e?e.indent:null;if(s&&typeof a=="number"&&(a+=2),!o)switch(e.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let l=e.props[0];if(l.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=l.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let u=Wg.stringifyString({type:o,value:t},{implicitKey:i||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:n,options:{blockQuote:!0,lineWidth:-1}});switch(u[0]){case"|":case">":wA(e,u);break;case'"':Ic(e,u,"double-quoted-scalar");break;case"'":Ic(e,u,"single-quoted-scalar");break;default:Ic(e,u,"scalar")}}function wA(e,t){let r=t.indexOf(`
164
164
  `),s=t.substring(0,r),i=t.substring(r+1)+`
165
- `;if(e.type==="block-scalar"){let n=e.props[0];if(n.type!=="block-scalar-header")throw new Error("Invalid block scalar header");n.source=s,e.source=i}else{let{offset:n}=e,o="indent"in e?e.indent:-1,a=[{type:"block-scalar-header",offset:n,indent:o,source:s}];Wg(a,"end"in e?e.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
166
- `});for(let u of Object.keys(e))u!=="type"&&u!=="offset"&&delete e[u];Object.assign(e,{type:"block-scalar",indent:o,props:a,source:i})}}function Wg(e,t){if(t)for(let r of t)switch(r.type){case"space":case"comment":e.push(r);break;case"newline":return e.push(r),!0}return!1}function Ic(e,t,r){switch(e.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":e.type=r,e.source=t;break;case"block-scalar":{let s=e.props.slice(1),i=t.length;e.props[0].type==="block-scalar-header"&&(i-=e.props[0].source.length);for(let n of s)n.offset+=i;delete e.props,Object.assign(e,{type:r,source:t,end:s});break}case"block-map":case"block-seq":{let i={type:"newline",offset:e.offset+t.length,indent:e.indent,source:`
167
- `};delete e.items,Object.assign(e,{type:r,source:t,end:[i]});break}default:{let s="indent"in e?e.indent:-1,i="end"in e&&Array.isArray(e.end)?e.end.filter(n=>n.type==="space"||n.type==="comment"||n.type==="newline"):[];for(let n of Object.keys(e))n!=="type"&&n!=="offset"&&delete e[n];Object.assign(e,{type:r,indent:s,source:t,end:i})}}}sa.createScalarToken=hA;sa.resolveAsScalar=dA;sa.setScalarValue=pA});var zg=_(Hg=>{"use strict";var gA=e=>"type"in e?na(e):ia(e);function na(e){switch(e.type){case"block-scalar":{let t="";for(let r of e.props)t+=na(r);return t+e.source}case"block-map":case"block-seq":{let t="";for(let r of e.items)t+=ia(r);return t}case"flow-collection":{let t=e.start.source;for(let r of e.items)t+=ia(r);for(let r of e.end)t+=r.source;return t}case"document":{let t=ia(e);if(e.end)for(let r of e.end)t+=r.source;return t}default:{let t=e.source;if("end"in e&&e.end)for(let r of e.end)t+=r.source;return t}}}function ia({start:e,key:t,sep:r,value:s}){let i="";for(let n of e)i+=n.source;if(t&&(i+=na(t)),r)for(let n of r)i+=n.source;return s&&(i+=na(s)),i}Hg.stringify=gA});var Xg=_(Zg=>{"use strict";var _c=Symbol("break visit"),DA=Symbol("skip children"),Jg=Symbol("remove item");function qr(e,t){"type"in e&&e.type==="document"&&(e={start:e.start,value:e.value}),Yg(Object.freeze([]),e,t)}qr.BREAK=_c;qr.SKIP=DA;qr.REMOVE=Jg;qr.itemAtPath=(e,t)=>{let r=e;for(let[s,i]of t){let n=r?.[s];if(n&&"items"in n)r=n.items[i];else return}return r};qr.parentCollection=(e,t)=>{let r=qr.itemAtPath(e,t.slice(0,-1)),s=t[t.length-1][0],i=r?.[s];if(i&&"items"in i)return i;throw new Error("Parent collection not found")};function Yg(e,t,r){let s=r(t,e);if(typeof s=="symbol")return s;for(let i of["key","value"]){let n=t[i];if(n&&"items"in n){for(let o=0;o<n.items.length;++o){let a=Yg(Object.freeze(e.concat([[i,o]])),n.items[o],r);if(typeof a=="number")o=a-1;else{if(a===_c)return _c;a===Jg&&(n.items.splice(o,1),o-=1)}}typeof s=="function"&&i==="key"&&(s=s(t,e))}}return typeof s=="function"?s(t,e):s}Zg.visit=qr});var oa=_(Me=>{"use strict";var Tc=Kg(),yA=zg(),wA=Xg(),$c="\uFEFF",Pc="",Bc="",Oc="",bA=e=>!!e&&"items"in e,vA=e=>!!e&&(e.type==="scalar"||e.type==="single-quoted-scalar"||e.type==="double-quoted-scalar"||e.type==="block-scalar");function EA(e){switch(e){case $c:return"<BOM>";case Pc:return"<DOC>";case Bc:return"<FLOW_END>";case Oc:return"<SCALAR>";default:return JSON.stringify(e)}}function CA(e){switch(e){case $c:return"byte-order-mark";case Pc:return"doc-mode";case Bc:return"flow-error-end";case Oc:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
165
+ `;if(e.type==="block-scalar"){let n=e.props[0];if(n.type!=="block-scalar-header")throw new Error("Invalid block scalar header");n.source=s,e.source=i}else{let{offset:n}=e,o="indent"in e?e.indent:-1,a=[{type:"block-scalar-header",offset:n,indent:o,source:s}];Hg(a,"end"in e?e.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
166
+ `});for(let u of Object.keys(e))u!=="type"&&u!=="offset"&&delete e[u];Object.assign(e,{type:"block-scalar",indent:o,props:a,source:i})}}function Hg(e,t){if(t)for(let r of t)switch(r.type){case"space":case"comment":e.push(r);break;case"newline":return e.push(r),!0}return!1}function Ic(e,t,r){switch(e.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":e.type=r,e.source=t;break;case"block-scalar":{let s=e.props.slice(1),i=t.length;e.props[0].type==="block-scalar-header"&&(i-=e.props[0].source.length);for(let n of s)n.offset+=i;delete e.props,Object.assign(e,{type:r,source:t,end:s});break}case"block-map":case"block-seq":{let i={type:"newline",offset:e.offset+t.length,indent:e.indent,source:`
167
+ `};delete e.items,Object.assign(e,{type:r,source:t,end:[i]});break}default:{let s="indent"in e?e.indent:-1,i="end"in e&&Array.isArray(e.end)?e.end.filter(n=>n.type==="space"||n.type==="comment"||n.type==="newline"):[];for(let n of Object.keys(e))n!=="type"&&n!=="offset"&&delete e[n];Object.assign(e,{type:r,indent:s,source:t,end:i})}}}sa.createScalarToken=DA;sa.resolveAsScalar=gA;sa.setScalarValue=yA});var Jg=_(zg=>{"use strict";var bA=e=>"type"in e?na(e):ia(e);function na(e){switch(e.type){case"block-scalar":{let t="";for(let r of e.props)t+=na(r);return t+e.source}case"block-map":case"block-seq":{let t="";for(let r of e.items)t+=ia(r);return t}case"flow-collection":{let t=e.start.source;for(let r of e.items)t+=ia(r);for(let r of e.end)t+=r.source;return t}case"document":{let t=ia(e);if(e.end)for(let r of e.end)t+=r.source;return t}default:{let t=e.source;if("end"in e&&e.end)for(let r of e.end)t+=r.source;return t}}}function ia({start:e,key:t,sep:r,value:s}){let i="";for(let n of e)i+=n.source;if(t&&(i+=na(t)),r)for(let n of r)i+=n.source;return s&&(i+=na(s)),i}zg.stringify=bA});var Qg=_(Xg=>{"use strict";var _c=Symbol("break visit"),vA=Symbol("skip children"),Yg=Symbol("remove item");function qr(e,t){"type"in e&&e.type==="document"&&(e={start:e.start,value:e.value}),Zg(Object.freeze([]),e,t)}qr.BREAK=_c;qr.SKIP=vA;qr.REMOVE=Yg;qr.itemAtPath=(e,t)=>{let r=e;for(let[s,i]of t){let n=r?.[s];if(n&&"items"in n)r=n.items[i];else return}return r};qr.parentCollection=(e,t)=>{let r=qr.itemAtPath(e,t.slice(0,-1)),s=t[t.length-1][0],i=r?.[s];if(i&&"items"in i)return i;throw new Error("Parent collection not found")};function Zg(e,t,r){let s=r(t,e);if(typeof s=="symbol")return s;for(let i of["key","value"]){let n=t[i];if(n&&"items"in n){for(let o=0;o<n.items.length;++o){let a=Zg(Object.freeze(e.concat([[i,o]])),n.items[o],r);if(typeof a=="number")o=a-1;else{if(a===_c)return _c;a===Yg&&(n.items.splice(o,1),o-=1)}}typeof s=="function"&&i==="key"&&(s=s(t,e))}}return typeof s=="function"?s(t,e):s}Xg.visit=qr});var oa=_(je=>{"use strict";var Tc=Kg(),EA=Jg(),CA=Qg(),$c="\uFEFF",Pc="",Bc="",Oc="",FA=e=>!!e&&"items"in e,SA=e=>!!e&&(e.type==="scalar"||e.type==="single-quoted-scalar"||e.type==="double-quoted-scalar"||e.type==="block-scalar");function xA(e){switch(e){case $c:return"<BOM>";case Pc:return"<DOC>";case Bc:return"<FLOW_END>";case Oc:return"<SCALAR>";default:return JSON.stringify(e)}}function AA(e){switch(e){case $c:return"byte-order-mark";case Pc:return"doc-mode";case Bc:return"flow-error-end";case Oc:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
168
168
  `:case`\r
169
- `:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}Me.createScalarToken=Tc.createScalarToken;Me.resolveAsScalar=Tc.resolveAsScalar;Me.setScalarValue=Tc.setScalarValue;Me.stringify=yA.stringify;Me.visit=wA.visit;Me.BOM=$c;Me.DOCUMENT=Pc;Me.FLOW_END=Bc;Me.SCALAR=Oc;Me.isCollection=bA;Me.isScalar=vA;Me.prettyToken=EA;Me.tokenType=CA});var Mc=_(eD=>{"use strict";var an=oa();function pt(e){switch(e){case void 0:case" ":case`
170
- `:case"\r":case" ":return!0;default:return!1}}var Qg=new Set("0123456789ABCDEFabcdef"),FA=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),aa=new Set(",[]{}"),SA=new Set(` ,[]{}
171
- \r `),Lc=e=>!e||SA.has(e),Nc=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(t,r=!1){if(t){if(typeof t!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+t:t,this.lineEndPos=null}this.atEnd=!r;let s=this.next??"stream";for(;s&&(r||this.hasChars(1));)s=yield*this.parseNext(s)}atLineEnd(){let t=this.pos,r=this.buffer[t];for(;r===" "||r===" ";)r=this.buffer[++t];return!r||r==="#"||r===`
169
+ `:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}je.createScalarToken=Tc.createScalarToken;je.resolveAsScalar=Tc.resolveAsScalar;je.setScalarValue=Tc.setScalarValue;je.stringify=EA.stringify;je.visit=CA.visit;je.BOM=$c;je.DOCUMENT=Pc;je.FLOW_END=Bc;je.SCALAR=Oc;je.isCollection=FA;je.isScalar=SA;je.prettyToken=xA;je.tokenType=AA});var Mc=_(tD=>{"use strict";var un=oa();function pt(e){switch(e){case void 0:case" ":case`
170
+ `:case"\r":case" ":return!0;default:return!1}}var eD=new Set("0123456789ABCDEFabcdef"),RA=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),aa=new Set(",[]{}"),kA=new Set(` ,[]{}
171
+ \r `),Lc=e=>!e||kA.has(e),Nc=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(t,r=!1){if(t){if(typeof t!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+t:t,this.lineEndPos=null}this.atEnd=!r;let s=this.next??"stream";for(;s&&(r||this.hasChars(1));)s=yield*this.parseNext(s)}atLineEnd(){let t=this.pos,r=this.buffer[t];for(;r===" "||r===" ";)r=this.buffer[++t];return!r||r==="#"||r===`
172
172
  `?!0:r==="\r"?this.buffer[t+1]===`
173
173
  `:!1}charAt(t){return this.buffer[this.pos+t]}continueScalar(t){let r=this.buffer[t];if(this.indentNext>0){let s=0;for(;r===" ";)r=this.buffer[++s+t];if(r==="\r"){let i=this.buffer[s+t+1];if(i===`
174
174
  `||!i&&!this.atEnd)return t+s+1}return r===`
175
175
  `||s>=this.indentNext||!r&&!this.atEnd?t+s:-1}if(r==="-"||r==="."){let s=this.buffer.substr(t,3);if((s==="---"||s==="...")&&pt(this.buffer[t+3]))return-1}return t}getLine(){let t=this.lineEndPos;return(typeof t!="number"||t!==-1&&t<this.pos)&&(t=this.buffer.indexOf(`
176
- `,this.pos),this.lineEndPos=t),t===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[t-1]==="\r"&&(t-=1),this.buffer.substring(this.pos,t))}hasChars(t){return this.pos+t<=this.buffer.length}setNext(t){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=t,null}peek(t){return this.buffer.substr(this.pos,t)}*parseNext(t){switch(t){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let t=this.getLine();if(t===null)return this.setNext("stream");if(t[0]===an.BOM&&(yield*this.pushCount(1),t=t.substring(1)),t[0]==="%"){let r=t.length,s=t.indexOf("#");for(;s!==-1;){let n=t[s-1];if(n===" "||n===" "){r=s-1;break}else s=t.indexOf("#",s+1)}for(;;){let n=t[r-1];if(n===" "||n===" ")r-=1;else break}let i=(yield*this.pushCount(r))+(yield*this.pushSpaces(!0));return yield*this.pushCount(t.length-i),this.pushNewline(),"stream"}if(this.atLineEnd()){let r=yield*this.pushSpaces(!0);return yield*this.pushCount(t.length-r),yield*this.pushNewline(),"stream"}return yield an.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let t=this.charAt(0);if(!t&&!this.atEnd)return this.setNext("line-start");if(t==="-"||t==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let r=this.peek(3);if((r==="---"||r==="...")&&pt(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,r==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!pt(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[t,r]=this.peek(2);if(!r&&!this.atEnd)return this.setNext("block-start");if((t==="-"||t==="?"||t===":")&&pt(r)){let s=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=s,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let t=this.getLine();if(t===null)return this.setNext("doc");let r=yield*this.pushIndicators();switch(t[r]){case"#":yield*this.pushCount(t.length-r);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(Lc),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return r+=yield*this.parseBlockScalarHeader(),r+=yield*this.pushSpaces(!0),yield*this.pushCount(t.length-r),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let t,r,s=-1;do t=yield*this.pushNewline(),t>0?(r=yield*this.pushSpaces(!1),this.indentValue=s=r):r=0,r+=yield*this.pushSpaces(!0);while(t+r>0);let i=this.getLine();if(i===null)return this.setNext("flow");if((s!==-1&&s<this.indentNext&&i[0]!=="#"||s===0&&(i.startsWith("---")||i.startsWith("..."))&&pt(i[3]))&&!(s===this.indentNext-1&&this.flowLevel===1&&(i[0]==="]"||i[0]==="}")))return this.flowLevel=0,yield an.FLOW_END,yield*this.parseLineStart();let n=0;for(;i[n]===",";)n+=yield*this.pushCount(1),n+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(n+=yield*this.pushIndicators(),i[n]){case void 0:return"flow";case"#":return yield*this.pushCount(i.length-n),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(Lc),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||pt(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let t=this.charAt(0),r=this.buffer.indexOf(t,this.pos+1);if(t==="'")for(;r!==-1&&this.buffer[r+1]==="'";)r=this.buffer.indexOf("'",r+2);else for(;r!==-1;){let n=0;for(;this.buffer[r-1-n]==="\\";)n+=1;if(n%2===0)break;r=this.buffer.indexOf('"',r+1)}let s=this.buffer.substring(0,r),i=s.indexOf(`
176
+ `,this.pos),this.lineEndPos=t),t===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[t-1]==="\r"&&(t-=1),this.buffer.substring(this.pos,t))}hasChars(t){return this.pos+t<=this.buffer.length}setNext(t){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=t,null}peek(t){return this.buffer.substr(this.pos,t)}*parseNext(t){switch(t){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let t=this.getLine();if(t===null)return this.setNext("stream");if(t[0]===un.BOM&&(yield*this.pushCount(1),t=t.substring(1)),t[0]==="%"){let r=t.length,s=t.indexOf("#");for(;s!==-1;){let n=t[s-1];if(n===" "||n===" "){r=s-1;break}else s=t.indexOf("#",s+1)}for(;;){let n=t[r-1];if(n===" "||n===" ")r-=1;else break}let i=(yield*this.pushCount(r))+(yield*this.pushSpaces(!0));return yield*this.pushCount(t.length-i),this.pushNewline(),"stream"}if(this.atLineEnd()){let r=yield*this.pushSpaces(!0);return yield*this.pushCount(t.length-r),yield*this.pushNewline(),"stream"}return yield un.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let t=this.charAt(0);if(!t&&!this.atEnd)return this.setNext("line-start");if(t==="-"||t==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let r=this.peek(3);if((r==="---"||r==="...")&&pt(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,r==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!pt(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[t,r]=this.peek(2);if(!r&&!this.atEnd)return this.setNext("block-start");if((t==="-"||t==="?"||t===":")&&pt(r)){let s=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=s,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let t=this.getLine();if(t===null)return this.setNext("doc");let r=yield*this.pushIndicators();switch(t[r]){case"#":yield*this.pushCount(t.length-r);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(Lc),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return r+=yield*this.parseBlockScalarHeader(),r+=yield*this.pushSpaces(!0),yield*this.pushCount(t.length-r),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let t,r,s=-1;do t=yield*this.pushNewline(),t>0?(r=yield*this.pushSpaces(!1),this.indentValue=s=r):r=0,r+=yield*this.pushSpaces(!0);while(t+r>0);let i=this.getLine();if(i===null)return this.setNext("flow");if((s!==-1&&s<this.indentNext&&i[0]!=="#"||s===0&&(i.startsWith("---")||i.startsWith("..."))&&pt(i[3]))&&!(s===this.indentNext-1&&this.flowLevel===1&&(i[0]==="]"||i[0]==="}")))return this.flowLevel=0,yield un.FLOW_END,yield*this.parseLineStart();let n=0;for(;i[n]===",";)n+=yield*this.pushCount(1),n+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(n+=yield*this.pushIndicators(),i[n]){case void 0:return"flow";case"#":return yield*this.pushCount(i.length-n),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(Lc),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||pt(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let t=this.charAt(0),r=this.buffer.indexOf(t,this.pos+1);if(t==="'")for(;r!==-1&&this.buffer[r+1]==="'";)r=this.buffer.indexOf("'",r+2);else for(;r!==-1;){let n=0;for(;this.buffer[r-1-n]==="\\";)n+=1;if(n%2===0)break;r=this.buffer.indexOf('"',r+1)}let s=this.buffer.substring(0,r),i=s.indexOf(`
177
177
  `,this.pos);if(i!==-1){for(;i!==-1;){let n=this.continueScalar(i+1);if(n===-1)break;i=s.indexOf(`
178
178
  `,n)}i!==-1&&(r=i-(s[i-1]==="\r"?2:1))}if(r===-1){if(!this.atEnd)return this.setNext("quoted-scalar");r=this.buffer.length}return yield*this.pushToIndex(r+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let t=this.pos;for(;;){let r=this.buffer[++t];if(r==="+")this.blockScalarKeep=!0;else if(r>"0"&&r<="9")this.blockScalarIndent=Number(r)-1;else if(r!=="-")break}return yield*this.pushUntil(r=>pt(r)||r==="#")}*parseBlockScalar(){let t=this.pos-1,r=0,s;e:for(let n=this.pos;s=this.buffer[n];++n)switch(s){case" ":r+=1;break;case`
179
179
  `:t=n,r=0;break;case"\r":{let o=this.buffer[n+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
180
180
  `)break}default:break e}if(!s&&!this.atEnd)return this.setNext("block-scalar");if(r>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=r:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let n=this.continueScalar(t+1);if(n===-1)break;t=this.buffer.indexOf(`
181
181
  `,n)}while(t!==-1);if(t===-1){if(!this.atEnd)return this.setNext("block-scalar");t=this.buffer.length}}let i=t+1;for(s=this.buffer[i];s===" ";)s=this.buffer[++i];if(s===" "){for(;s===" "||s===" "||s==="\r"||s===`
182
182
  `;)s=this.buffer[++i];t=i-1}else if(!this.blockScalarKeep)do{let n=t-1,o=this.buffer[n];o==="\r"&&(o=this.buffer[--n]);let a=n;for(;o===" ";)o=this.buffer[--n];if(o===`
183
- `&&n>=this.pos&&n+1+r>a)t=n;else break}while(!0);return yield an.SCALAR,yield*this.pushToIndex(t+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let t=this.flowLevel>0,r=this.pos-1,s=this.pos-1,i;for(;i=this.buffer[++s];)if(i===":"){let n=this.buffer[s+1];if(pt(n)||t&&aa.has(n))break;r=s}else if(pt(i)){let n=this.buffer[s+1];if(i==="\r"&&(n===`
183
+ `&&n>=this.pos&&n+1+r>a)t=n;else break}while(!0);return yield un.SCALAR,yield*this.pushToIndex(t+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let t=this.flowLevel>0,r=this.pos-1,s=this.pos-1,i;for(;i=this.buffer[++s];)if(i===":"){let n=this.buffer[s+1];if(pt(n)||t&&aa.has(n))break;r=s}else if(pt(i)){let n=this.buffer[s+1];if(i==="\r"&&(n===`
184
184
  `?(s+=1,i=`
185
185
  `,n=this.buffer[s+1]):r=s),n==="#"||t&&aa.has(n))break;if(i===`
186
- `){let o=this.continueScalar(s+1);if(o===-1)break;s=Math.max(s,o-2)}}else{if(t&&aa.has(i))break;r=s}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield an.SCALAR,yield*this.pushToIndex(r+1,!0),t?"flow":"doc")}*pushCount(t){return t>0?(yield this.buffer.substr(this.pos,t),this.pos+=t,t):0}*pushToIndex(t,r){let s=this.buffer.slice(this.pos,t);return s?(yield s,this.pos+=s.length,s.length):(r&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(Lc))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let t=this.flowLevel>0,r=this.charAt(1);if(pt(r)||t&&aa.has(r))return t?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let t=this.pos+2,r=this.buffer[t];for(;!pt(r)&&r!==">";)r=this.buffer[++t];return yield*this.pushToIndex(r===">"?t+1:t,!1)}else{let t=this.pos+1,r=this.buffer[t];for(;r;)if(FA.has(r))r=this.buffer[++t];else if(r==="%"&&Qg.has(this.buffer[t+1])&&Qg.has(this.buffer[t+2]))r=this.buffer[t+=3];else break;return yield*this.pushToIndex(t,!1)}}*pushNewline(){let t=this.buffer[this.pos];return t===`
186
+ `){let o=this.continueScalar(s+1);if(o===-1)break;s=Math.max(s,o-2)}}else{if(t&&aa.has(i))break;r=s}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield un.SCALAR,yield*this.pushToIndex(r+1,!0),t?"flow":"doc")}*pushCount(t){return t>0?(yield this.buffer.substr(this.pos,t),this.pos+=t,t):0}*pushToIndex(t,r){let s=this.buffer.slice(this.pos,t);return s?(yield s,this.pos+=s.length,s.length):(r&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(Lc))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let t=this.flowLevel>0,r=this.charAt(1);if(pt(r)||t&&aa.has(r))return t?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let t=this.pos+2,r=this.buffer[t];for(;!pt(r)&&r!==">";)r=this.buffer[++t];return yield*this.pushToIndex(r===">"?t+1:t,!1)}else{let t=this.pos+1,r=this.buffer[t];for(;r;)if(RA.has(r))r=this.buffer[++t];else if(r==="%"&&eD.has(this.buffer[t+1])&&eD.has(this.buffer[t+2]))r=this.buffer[t+=3];else break;return yield*this.pushToIndex(t,!1)}}*pushNewline(){let t=this.buffer[this.pos];return t===`
187
187
  `?yield*this.pushCount(1):t==="\r"&&this.charAt(1)===`
188
- `?yield*this.pushCount(2):0}*pushSpaces(t){let r=this.pos-1,s;do s=this.buffer[++r];while(s===" "||t&&s===" ");let i=r-this.pos;return i>0&&(yield this.buffer.substr(this.pos,i),this.pos=r),i}*pushUntil(t){let r=this.pos,s=this.buffer[r];for(;!t(s);)s=this.buffer[++r];return yield*this.pushToIndex(r,!1)}};eD.Lexer=Nc});var qc=_(tD=>{"use strict";var jc=class{constructor(){this.lineStarts=[],this.addNewLine=t=>this.lineStarts.push(t),this.linePos=t=>{let r=0,s=this.lineStarts.length;for(;r<s;){let n=r+s>>1;this.lineStarts[n]<t?r=n+1:s=n}if(this.lineStarts[r]===t)return{line:r+1,col:1};if(r===0)return{line:0,col:t};let i=this.lineStarts[r-1];return{line:r,col:t-i+1}}}};tD.LineCounter=jc});var Gc=_(oD=>{"use strict";var xA=require("process"),rD=oa(),AA=Mc();function mr(e,t){for(let r=0;r<e.length;++r)if(e[r].type===t)return!0;return!1}function sD(e){for(let t=0;t<e.length;++t)switch(e[t].type){case"space":case"comment":case"newline":break;default:return t}return-1}function nD(e){switch(e?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function ua(e){switch(e.type){case"document":return e.start;case"block-map":{let t=e.items[e.items.length-1];return t.sep??t.start}case"block-seq":return e.items[e.items.length-1].start;default:return[]}}function _s(e){if(e.length===0)return[];let t=e.length;e:for(;--t>=0;)switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;e[++t]?.type==="space";);return e.splice(t,e.length)}function iD(e){if(e.start.type==="flow-seq-start")for(let t of e.items)t.sep&&!t.value&&!mr(t.start,"explicit-key-ind")&&!mr(t.sep,"map-value-ind")&&(t.key&&(t.value=t.key),delete t.key,nD(t.value)?t.value.end?Array.prototype.push.apply(t.value.end,t.sep):t.value.end=t.sep:Array.prototype.push.apply(t.start,t.sep),delete t.sep)}var Uc=class{constructor(t){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new AA.Lexer,this.onNewLine=t}*parse(t,r=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let s of this.lexer.lex(t,r))yield*this.next(s);r||(yield*this.end())}*next(t){if(this.source=t,xA.env.LOG_TOKENS&&console.log("|",rD.prettyToken(t)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=t.length;return}let r=rD.tokenType(t);if(r)if(r==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=r,yield*this.step(),r){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+t.length);break;case"space":this.atNewLine&&t[0]===" "&&(this.indent+=t.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=t.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=t.length}else{let s=`Not a YAML token: ${t}`;yield*this.pop({type:"error",offset:this.offset,message:s,source:t}),this.offset+=t.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let t=this.peek(1);if(this.type==="doc-end"&&t?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!t)return yield*this.stream();switch(t.type){case"document":return yield*this.document(t);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(t);case"block-scalar":return yield*this.blockScalar(t);case"block-map":return yield*this.blockMap(t);case"block-seq":return yield*this.blockSequence(t);case"flow-collection":return yield*this.flowCollection(t);case"doc-end":return yield*this.documentEnd(t)}yield*this.pop()}peek(t){return this.stack[this.stack.length-t]}*pop(t){let r=t??this.stack.pop();if(!r)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield r;else{let s=this.peek(1);switch(r.type==="block-scalar"?r.indent="indent"in s?s.indent:0:r.type==="flow-collection"&&s.type==="document"&&(r.indent=0),r.type==="flow-collection"&&iD(r),s.type){case"document":s.value=r;break;case"block-scalar":s.props.push(r);break;case"block-map":{let i=s.items[s.items.length-1];if(i.value){s.items.push({start:[],key:r,sep:[]}),this.onKeyLine=!0;return}else if(i.sep)i.value=r;else{Object.assign(i,{key:r,sep:[]}),this.onKeyLine=!i.explicitKey;return}break}case"block-seq":{let i=s.items[s.items.length-1];i.value?s.items.push({start:[],value:r}):i.value=r;break}case"flow-collection":{let i=s.items[s.items.length-1];!i||i.value?s.items.push({start:[],key:r,sep:[]}):i.sep?i.value=r:Object.assign(i,{key:r,sep:[]});return}default:yield*this.pop(),yield*this.pop(r)}if((s.type==="document"||s.type==="block-map"||s.type==="block-seq")&&(r.type==="block-map"||r.type==="block-seq")){let i=r.items[r.items.length-1];i&&!i.sep&&!i.value&&i.start.length>0&&sD(i.start)===-1&&(r.indent===0||i.start.every(n=>n.type!=="comment"||n.indent<r.indent))&&(s.type==="document"?s.end=i.start:s.items.push({start:i.start}),r.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let t={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&t.start.push(this.sourceToken),this.stack.push(t);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(t){if(t.value)return yield*this.lineEnd(t);switch(this.type){case"doc-start":{sD(t.start)!==-1?(yield*this.pop(),yield*this.step()):t.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":t.start.push(this.sourceToken);return}let r=this.startBlockValue(t);r?this.stack.push(r):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(t){if(this.type==="map-value-ind"){let r=ua(this.peek(2)),s=_s(r),i;t.end?(i=t.end,i.push(this.sourceToken),delete t.end):i=[this.sourceToken];let n={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:s,key:t,sep:i}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=n}else yield*this.lineEnd(t)}*blockScalar(t){switch(this.type){case"space":case"comment":case"newline":t.props.push(this.sourceToken);return;case"scalar":if(t.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let r=this.source.indexOf(`
188
+ `?yield*this.pushCount(2):0}*pushSpaces(t){let r=this.pos-1,s;do s=this.buffer[++r];while(s===" "||t&&s===" ");let i=r-this.pos;return i>0&&(yield this.buffer.substr(this.pos,i),this.pos=r),i}*pushUntil(t){let r=this.pos,s=this.buffer[r];for(;!t(s);)s=this.buffer[++r];return yield*this.pushToIndex(r,!1)}};tD.Lexer=Nc});var qc=_(rD=>{"use strict";var jc=class{constructor(){this.lineStarts=[],this.addNewLine=t=>this.lineStarts.push(t),this.linePos=t=>{let r=0,s=this.lineStarts.length;for(;r<s;){let n=r+s>>1;this.lineStarts[n]<t?r=n+1:s=n}if(this.lineStarts[r]===t)return{line:r+1,col:1};if(r===0)return{line:0,col:t};let i=this.lineStarts[r-1];return{line:r,col:t-i+1}}}};rD.LineCounter=jc});var Gc=_(aD=>{"use strict";var IA=require("process"),sD=oa(),_A=Mc();function gr(e,t){for(let r=0;r<e.length;++r)if(e[r].type===t)return!0;return!1}function iD(e){for(let t=0;t<e.length;++t)switch(e[t].type){case"space":case"comment":case"newline":break;default:return t}return-1}function oD(e){switch(e?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function ua(e){switch(e.type){case"document":return e.start;case"block-map":{let t=e.items[e.items.length-1];return t.sep??t.start}case"block-seq":return e.items[e.items.length-1].start;default:return[]}}function _s(e){if(e.length===0)return[];let t=e.length;e:for(;--t>=0;)switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;e[++t]?.type==="space";);return e.splice(t,e.length)}function nD(e){if(e.start.type==="flow-seq-start")for(let t of e.items)t.sep&&!t.value&&!gr(t.start,"explicit-key-ind")&&!gr(t.sep,"map-value-ind")&&(t.key&&(t.value=t.key),delete t.key,oD(t.value)?t.value.end?Array.prototype.push.apply(t.value.end,t.sep):t.value.end=t.sep:Array.prototype.push.apply(t.start,t.sep),delete t.sep)}var Uc=class{constructor(t){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new _A.Lexer,this.onNewLine=t}*parse(t,r=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let s of this.lexer.lex(t,r))yield*this.next(s);r||(yield*this.end())}*next(t){if(this.source=t,IA.env.LOG_TOKENS&&console.log("|",sD.prettyToken(t)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=t.length;return}let r=sD.tokenType(t);if(r)if(r==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=r,yield*this.step(),r){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+t.length);break;case"space":this.atNewLine&&t[0]===" "&&(this.indent+=t.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=t.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=t.length}else{let s=`Not a YAML token: ${t}`;yield*this.pop({type:"error",offset:this.offset,message:s,source:t}),this.offset+=t.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let t=this.peek(1);if(this.type==="doc-end"&&t?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!t)return yield*this.stream();switch(t.type){case"document":return yield*this.document(t);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(t);case"block-scalar":return yield*this.blockScalar(t);case"block-map":return yield*this.blockMap(t);case"block-seq":return yield*this.blockSequence(t);case"flow-collection":return yield*this.flowCollection(t);case"doc-end":return yield*this.documentEnd(t)}yield*this.pop()}peek(t){return this.stack[this.stack.length-t]}*pop(t){let r=t??this.stack.pop();if(!r)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield r;else{let s=this.peek(1);switch(r.type==="block-scalar"?r.indent="indent"in s?s.indent:0:r.type==="flow-collection"&&s.type==="document"&&(r.indent=0),r.type==="flow-collection"&&nD(r),s.type){case"document":s.value=r;break;case"block-scalar":s.props.push(r);break;case"block-map":{let i=s.items[s.items.length-1];if(i.value){s.items.push({start:[],key:r,sep:[]}),this.onKeyLine=!0;return}else if(i.sep)i.value=r;else{Object.assign(i,{key:r,sep:[]}),this.onKeyLine=!i.explicitKey;return}break}case"block-seq":{let i=s.items[s.items.length-1];i.value?s.items.push({start:[],value:r}):i.value=r;break}case"flow-collection":{let i=s.items[s.items.length-1];!i||i.value?s.items.push({start:[],key:r,sep:[]}):i.sep?i.value=r:Object.assign(i,{key:r,sep:[]});return}default:yield*this.pop(),yield*this.pop(r)}if((s.type==="document"||s.type==="block-map"||s.type==="block-seq")&&(r.type==="block-map"||r.type==="block-seq")){let i=r.items[r.items.length-1];i&&!i.sep&&!i.value&&i.start.length>0&&iD(i.start)===-1&&(r.indent===0||i.start.every(n=>n.type!=="comment"||n.indent<r.indent))&&(s.type==="document"?s.end=i.start:s.items.push({start:i.start}),r.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let t={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&t.start.push(this.sourceToken),this.stack.push(t);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(t){if(t.value)return yield*this.lineEnd(t);switch(this.type){case"doc-start":{iD(t.start)!==-1?(yield*this.pop(),yield*this.step()):t.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":t.start.push(this.sourceToken);return}let r=this.startBlockValue(t);r?this.stack.push(r):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(t){if(this.type==="map-value-ind"){let r=ua(this.peek(2)),s=_s(r),i;t.end?(i=t.end,i.push(this.sourceToken),delete t.end):i=[this.sourceToken];let n={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:s,key:t,sep:i}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=n}else yield*this.lineEnd(t)}*blockScalar(t){switch(this.type){case"space":case"comment":case"newline":t.props.push(this.sourceToken);return;case"scalar":if(t.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let r=this.source.indexOf(`
189
189
  `)+1;for(;r!==0;)this.onNewLine(this.offset+r),r=this.source.indexOf(`
190
- `,r)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(t){let r=t.items[t.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,r.value){let s="end"in r.value?r.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"space":case"comment":if(r.value)t.items.push({start:[this.sourceToken]});else if(r.sep)r.sep.push(this.sourceToken);else{if(this.atIndentedComment(r.start,t.indent)){let i=t.items[t.items.length-2]?.value?.end;if(Array.isArray(i)){Array.prototype.push.apply(i,r.start),i.push(this.sourceToken),t.items.pop();return}}r.start.push(this.sourceToken)}return}if(this.indent>=t.indent){let s=!this.onKeyLine&&this.indent===t.indent,i=s&&(r.sep||r.explicitKey)&&this.type!=="seq-item-ind",n=[];if(i&&r.sep&&!r.value){let o=[];for(let a=0;a<r.sep.length;++a){let u=r.sep[a];switch(u.type){case"newline":o.push(a);break;case"space":break;case"comment":u.indent>t.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(n=r.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":i||r.value?(n.push(this.sourceToken),t.items.push({start:n}),this.onKeyLine=!0):r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"explicit-key-ind":!r.sep&&!r.explicitKey?(r.start.push(this.sourceToken),r.explicitKey=!0):i||r.value?(n.push(this.sourceToken),t.items.push({start:n,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(r.explicitKey)if(r.sep)if(r.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(mr(r.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]});else if(nD(r.key)&&!mr(r.sep,"newline")){let o=_s(r.start),a=r.key,u=r.sep;u.push(this.sourceToken),delete r.key,delete r.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:u}]})}else n.length>0?r.sep=r.sep.concat(n,this.sourceToken):r.sep.push(this.sourceToken);else if(mr(r.start,"newline"))Object.assign(r,{key:null,sep:[this.sourceToken]});else{let o=_s(r.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else r.sep?r.value||i?t.items.push({start:n,key:null,sep:[this.sourceToken]}):mr(r.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):r.sep.push(this.sourceToken):Object.assign(r,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);i||r.value?(t.items.push({start:n,key:o,sep:[]}),this.onKeyLine=!0):r.sep?this.stack.push(o):(Object.assign(r,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(t);if(o){if(o.type==="block-seq"){if(!r.explicitKey&&r.sep&&!mr(r.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else s&&t.items.push({start:n});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){let r=t.items[t.items.length-1];switch(this.type){case"newline":if(r.value){let s="end"in r.value?r.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else r.start.push(this.sourceToken);return;case"space":case"comment":if(r.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(r.start,t.indent)){let i=t.items[t.items.length-2]?.value?.end;if(Array.isArray(i)){Array.prototype.push.apply(i,r.start),i.push(this.sourceToken),t.items.pop();return}}r.start.push(this.sourceToken)}return;case"anchor":case"tag":if(r.value||this.indent<=t.indent)break;r.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;r.value||mr(r.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):r.start.push(this.sourceToken);return}if(this.indent>t.indent){let s=this.startBlockValue(t);if(s){this.stack.push(s);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){let r=t.items[t.items.length-1];if(this.type==="flow-error-end"){let s;do yield*this.pop(),s=this.peek(1);while(s?.type==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!r||r.sep?t.items.push({start:[this.sourceToken]}):r.start.push(this.sourceToken);return;case"map-value-ind":!r||r.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):r.sep?r.sep.push(this.sourceToken):Object.assign(r,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!r||r.value?t.items.push({start:[this.sourceToken]}):r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let i=this.flowScalar(this.type);!r||r.value?t.items.push({start:[],key:i,sep:[]}):r.sep?this.stack.push(i):Object.assign(r,{key:i,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}let s=this.startBlockValue(t);s?this.stack.push(s):(yield*this.pop(),yield*this.step())}else{let s=this.peek(2);if(s.type==="block-map"&&(this.type==="map-value-ind"&&s.indent===t.indent||this.type==="newline"&&!s.items[s.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&s.type!=="flow-collection"){let i=ua(s),n=_s(i);iD(t);let o=t.end.splice(1,t.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:n,key:t,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(t)}}flowScalar(t){if(this.onNewLine){let r=this.source.indexOf(`
190
+ `,r)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(t){let r=t.items[t.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,r.value){let s="end"in r.value?r.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"space":case"comment":if(r.value)t.items.push({start:[this.sourceToken]});else if(r.sep)r.sep.push(this.sourceToken);else{if(this.atIndentedComment(r.start,t.indent)){let i=t.items[t.items.length-2]?.value?.end;if(Array.isArray(i)){Array.prototype.push.apply(i,r.start),i.push(this.sourceToken),t.items.pop();return}}r.start.push(this.sourceToken)}return}if(this.indent>=t.indent){let s=!this.onKeyLine&&this.indent===t.indent,i=s&&(r.sep||r.explicitKey)&&this.type!=="seq-item-ind",n=[];if(i&&r.sep&&!r.value){let o=[];for(let a=0;a<r.sep.length;++a){let u=r.sep[a];switch(u.type){case"newline":o.push(a);break;case"space":break;case"comment":u.indent>t.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(n=r.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":i||r.value?(n.push(this.sourceToken),t.items.push({start:n}),this.onKeyLine=!0):r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"explicit-key-ind":!r.sep&&!r.explicitKey?(r.start.push(this.sourceToken),r.explicitKey=!0):i||r.value?(n.push(this.sourceToken),t.items.push({start:n,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(r.explicitKey)if(r.sep)if(r.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(gr(r.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]});else if(oD(r.key)&&!gr(r.sep,"newline")){let o=_s(r.start),a=r.key,u=r.sep;u.push(this.sourceToken),delete r.key,delete r.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:u}]})}else n.length>0?r.sep=r.sep.concat(n,this.sourceToken):r.sep.push(this.sourceToken);else if(gr(r.start,"newline"))Object.assign(r,{key:null,sep:[this.sourceToken]});else{let o=_s(r.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else r.sep?r.value||i?t.items.push({start:n,key:null,sep:[this.sourceToken]}):gr(r.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):r.sep.push(this.sourceToken):Object.assign(r,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);i||r.value?(t.items.push({start:n,key:o,sep:[]}),this.onKeyLine=!0):r.sep?this.stack.push(o):(Object.assign(r,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(t);if(o){if(o.type==="block-seq"){if(!r.explicitKey&&r.sep&&!gr(r.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else s&&t.items.push({start:n});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){let r=t.items[t.items.length-1];switch(this.type){case"newline":if(r.value){let s="end"in r.value?r.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else r.start.push(this.sourceToken);return;case"space":case"comment":if(r.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(r.start,t.indent)){let i=t.items[t.items.length-2]?.value?.end;if(Array.isArray(i)){Array.prototype.push.apply(i,r.start),i.push(this.sourceToken),t.items.pop();return}}r.start.push(this.sourceToken)}return;case"anchor":case"tag":if(r.value||this.indent<=t.indent)break;r.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;r.value||gr(r.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):r.start.push(this.sourceToken);return}if(this.indent>t.indent){let s=this.startBlockValue(t);if(s){this.stack.push(s);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){let r=t.items[t.items.length-1];if(this.type==="flow-error-end"){let s;do yield*this.pop(),s=this.peek(1);while(s?.type==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!r||r.sep?t.items.push({start:[this.sourceToken]}):r.start.push(this.sourceToken);return;case"map-value-ind":!r||r.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):r.sep?r.sep.push(this.sourceToken):Object.assign(r,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!r||r.value?t.items.push({start:[this.sourceToken]}):r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let i=this.flowScalar(this.type);!r||r.value?t.items.push({start:[],key:i,sep:[]}):r.sep?this.stack.push(i):Object.assign(r,{key:i,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}let s=this.startBlockValue(t);s?this.stack.push(s):(yield*this.pop(),yield*this.step())}else{let s=this.peek(2);if(s.type==="block-map"&&(this.type==="map-value-ind"&&s.indent===t.indent||this.type==="newline"&&!s.items[s.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&s.type!=="flow-collection"){let i=ua(s),n=_s(i);nD(t);let o=t.end.splice(1,t.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:n,key:t,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(t)}}flowScalar(t){if(this.onNewLine){let r=this.source.indexOf(`
191
191
  `)+1;for(;r!==0;)this.onNewLine(this.offset+r),r=this.source.indexOf(`
192
- `,r)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let r=ua(t),s=_s(r);return s.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let r=ua(t),s=_s(r);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,r){return this.type!=="comment"||this.indent<=r?!1:t.every(s=>s.type==="newline"||s.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};oD.Parser=Uc});var fD=_(ln=>{"use strict";var aD=kc(),RA=Qi(),un=rn(),kA=Al(),IA=Z(),_A=qc(),uD=Gc();function lD(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new _A.LineCounter||null,prettyErrors:t}}function TA(e,t={}){let{lineCounter:r,prettyErrors:s}=lD(t),i=new uD.Parser(r?.addNewLine),n=new aD.Composer(t),o=Array.from(n.compose(i.parse(e)));if(s&&r)for(let a of o)a.errors.forEach(un.prettifyError(e,r)),a.warnings.forEach(un.prettifyError(e,r));return o.length>0?o:Object.assign([],{empty:!0},n.streamInfo())}function cD(e,t={}){let{lineCounter:r,prettyErrors:s}=lD(t),i=new uD.Parser(r?.addNewLine),n=new aD.Composer(t),o=null;for(let a of n.compose(i.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new un.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return s&&r&&(o.errors.forEach(un.prettifyError(e,r)),o.warnings.forEach(un.prettifyError(e,r))),o}function $A(e,t,r){let s;typeof t=="function"?s=t:r===void 0&&t&&typeof t=="object"&&(r=t);let i=cD(e,r);if(!i)return null;if(i.warnings.forEach(n=>kA.warn(i.options.logLevel,n)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:s},r))}function PA(e,t,r){let s=null;if(typeof t=="function"||Array.isArray(t)?s=t:r===void 0&&t&&(r=t),typeof r=="string"&&(r=r.length),typeof r=="number"){let i=Math.round(r);r=i<1?void 0:i>8?{indent:8}:{indent:i}}if(e===void 0){let{keepUndefined:i}=r??t??{};if(!i)return}return IA.isDocument(e)&&!s?e.toString(r):new RA.Document(e,s,r).toString(r)}ln.parse=$A;ln.parseAllDocuments=TA;ln.parseDocument=cD;ln.stringify=PA});var Wc=_(X=>{"use strict";var BA=kc(),OA=Qi(),LA=lc(),Vc=rn(),NA=Oi(),gr=Z(),MA=fr(),jA=de(),qA=hr(),UA=pr(),GA=oa(),VA=Mc(),WA=qc(),KA=Gc(),la=fD(),dD=Ti();X.Composer=BA.Composer;X.Document=OA.Document;X.Schema=LA.Schema;X.YAMLError=Vc.YAMLError;X.YAMLParseError=Vc.YAMLParseError;X.YAMLWarning=Vc.YAMLWarning;X.Alias=NA.Alias;X.isAlias=gr.isAlias;X.isCollection=gr.isCollection;X.isDocument=gr.isDocument;X.isMap=gr.isMap;X.isNode=gr.isNode;X.isPair=gr.isPair;X.isScalar=gr.isScalar;X.isSeq=gr.isSeq;X.Pair=MA.Pair;X.Scalar=jA.Scalar;X.YAMLMap=qA.YAMLMap;X.YAMLSeq=UA.YAMLSeq;X.CST=GA;X.Lexer=VA.Lexer;X.LineCounter=WA.LineCounter;X.Parser=KA.Parser;X.parse=la.parse;X.parseAllDocuments=la.parseAllDocuments;X.parseDocument=la.parseDocument;X.stringify=la.stringify;X.visit=dD.visit;X.visitAsync=dD.visitAsync});function HA(){if(typeof __dirname<"u")return __dirname;let e=process.argv[1];return e?(0,mt.dirname)((0,mt.resolve)(e)):process.cwd()}function Hc(){if(ca)return ca;let e=(0,mt.join)(Kc,"defaults");return ca=[e,(0,mt.join)(Kc,"..","src","defaults"),(0,mt.join)(Kc,"..","dist","defaults"),(0,mt.join)(process.cwd(),"src","defaults"),(0,mt.join)(process.cwd(),"dist","defaults")].find(r=>(0,hD.existsSync)(r))??e,ca}function fa(...e){return(0,mt.join)(Hc(),...e)}var hD,mt,Kc,ca,da=ie(()=>{"use strict";hD=require("node:fs"),mt=require("node:path");Kc=HA()});var K,zc,T,At,cn=ie(()=>{(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function r(i){throw new Error}e.assertNever=r,e.arrayToEnum=i=>{let n={};for(let o of i)n[o]=o;return n},e.getValidEnumValues=i=>{let n=e.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of n)o[a]=i[a];return e.objectValues(o)},e.objectValues=i=>e.objectKeys(i).map(function(n){return i[n]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let n=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&n.push(o);return n},e.find=(i,n)=>{for(let o of i)if(n(o))return o},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function s(i,n=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(n)}e.joinValues=s,e.jsonStringifyReplacer=(i,n)=>typeof n=="bigint"?n.toString():n})(K||(K={}));(function(e){e.mergeShapes=(t,r)=>({...t,...r})})(zc||(zc={}));T=K.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),At=e=>{switch(typeof e){case"undefined":return T.undefined;case"string":return T.string;case"number":return Number.isNaN(e)?T.nan:T.number;case"boolean":return T.boolean;case"function":return T.function;case"bigint":return T.bigint;case"symbol":return T.symbol;case"object":return Array.isArray(e)?T.array:e===null?T.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?T.promise:typeof Map<"u"&&e instanceof Map?T.map:typeof Set<"u"&&e instanceof Set?T.set:typeof Date<"u"&&e instanceof Date?T.date:T.object;default:return T.unknown}}});var S,zA,ve,ha=ie(()=>{cn();S=K.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),zA=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),ve=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=s=>{this.issues=[...this.issues,s]},this.addIssues=(s=[])=>{this.issues=[...this.issues,...s]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=t}format(t){let r=t||function(n){return n.message},s={_errors:[]},i=n=>{for(let o of n.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)s._errors.push(r(o));else{let a=s,u=0;for(;u<o.path.length;){let l=o.path[u];u===o.path.length-1?(a[l]=a[l]||{_errors:[]},a[l]._errors.push(r(o))):a[l]=a[l]||{_errors:[]},a=a[l],u++}}};return i(this),s}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,K.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=r=>r.message){let r={},s=[];for(let i of this.issues)if(i.path.length>0){let n=i.path[0];r[n]=r[n]||[],r[n].push(t(i))}else s.push(t(i));return{formErrors:s,fieldErrors:r}}get formErrors(){return this.flatten()}};ve.create=e=>new ve(e)});var JA,qt,Jc=ie(()=>{ha();cn();JA=(e,t)=>{let r;switch(e.code){case S.invalid_type:e.received===T.undefined?r="Required":r=`Expected ${e.expected}, received ${e.received}`;break;case S.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(e.expected,K.jsonStringifyReplacer)}`;break;case S.unrecognized_keys:r=`Unrecognized key(s) in object: ${K.joinValues(e.keys,", ")}`;break;case S.invalid_union:r="Invalid input";break;case S.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${K.joinValues(e.options)}`;break;case S.invalid_enum_value:r=`Invalid enum value. Expected ${K.joinValues(e.options)}, received '${e.received}'`;break;case S.invalid_arguments:r="Invalid function arguments";break;case S.invalid_return_type:r="Invalid function return type";break;case S.invalid_date:r="Invalid date";break;case S.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(r=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?r=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?r=`Invalid input: must end with "${e.validation.endsWith}"`:K.assertNever(e.validation):e.validation!=="regex"?r=`Invalid ${e.validation}`:r="Invalid";break;case S.too_small:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:r="Invalid input";break;case S.too_big:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?r=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:r="Invalid input";break;case S.custom:r="Invalid input";break;case S.invalid_intersection_types:r="Intersection results could not be merged";break;case S.not_multiple_of:r=`Number must be a multiple of ${e.multipleOf}`;break;case S.not_finite:r="Number must be finite";break;default:r=t.defaultError,K.assertNever(e)}return{message:r}},qt=JA});function YA(e){pD=e}function Ts(){return pD}var pD,pa=ie(()=>{Jc();pD=qt});function k(e,t){let r=Ts(),s=fn({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,r,r===qt?void 0:qt].filter(i=>!!i)});e.common.issues.push(s)}var fn,ZA,xe,O,Ur,_e,ma,ga,Dr,$s,Yc=ie(()=>{pa();Jc();fn=e=>{let{data:t,path:r,errorMaps:s,issueData:i}=e,n=[...r,...i.path||[]],o={...i,path:n};if(i.message!==void 0)return{...i,path:n,message:i.message};let a="",u=s.filter(l=>!!l).slice().reverse();for(let l of u)a=l(o,{data:t,defaultError:a}).message;return{...i,path:n,message:a}},ZA=[];xe=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,r){let s=[];for(let i of r){if(i.status==="aborted")return O;i.status==="dirty"&&t.dirty(),s.push(i.value)}return{status:t.value,value:s}}static async mergeObjectAsync(t,r){let s=[];for(let i of r){let n=await i.key,o=await i.value;s.push({key:n,value:o})}return e.mergeObjectSync(t,s)}static mergeObjectSync(t,r){let s={};for(let i of r){let{key:n,value:o}=i;if(n.status==="aborted"||o.status==="aborted")return O;n.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),n.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(s[n.value]=o.value)}return{status:t.value,value:s}}},O=Object.freeze({status:"aborted"}),Ur=e=>({status:"dirty",value:e}),_e=e=>({status:"valid",value:e}),ma=e=>e.status==="aborted",ga=e=>e.status==="dirty",Dr=e=>e.status==="valid",$s=e=>typeof Promise<"u"&&e instanceof Promise});var mD=ie(()=>{});var B,gD=ie(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(B||(B={}))});function q(e){if(!e)return{};let{errorMap:t,invalid_type_error:r,required_error:s,description:i}=e;if(t&&(r||s))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(o,a)=>{let{message:u}=e;return o.code==="invalid_enum_value"?{message:u??a.defaultError}:typeof a.data>"u"?{message:u??s??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:u??r??a.defaultError}},description:i}}function bD(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let r=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${r}`}function pR(e){return new RegExp(`^${bD(e)}$`)}function vD(e){let t=`${wD}T${bD(e)}`,r=[];return r.push(e.local?"Z?":"Z"),e.offset&&r.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${r.join("|")})`,new RegExp(`^${t}$`)}function mR(e,t){return!!((t==="v4"||!t)&&aR.test(e)||(t==="v6"||!t)&&lR.test(e))}function gR(e,t){if(!sR.test(e))return!1;try{let[r]=e.split(".");if(!r)return!1;let s=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),i=JSON.parse(atob(s));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function DR(e,t){return!!((t==="v4"||!t)&&uR.test(e)||(t==="v6"||!t)&&cR.test(e))}function yR(e,t){let r=(e.toString().split(".")[1]||"").length,s=(t.toString().split(".")[1]||"").length,i=r>s?r:s,n=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return n%o/10**i}function Ps(e){if(e instanceof je){let t={};for(let r in e.shape){let s=e.shape[r];t[r]=Qe.create(Ps(s))}return new je({...e._def,shape:()=>t})}else return e instanceof Vt?new Vt({...e._def,type:Ps(e.element)}):e instanceof Qe?Qe.create(Ps(e.unwrap())):e instanceof kt?kt.create(Ps(e.unwrap())):e instanceof Rt?Rt.create(e.items.map(t=>Ps(t))):e}function Xc(e,t){let r=At(e),s=At(t);if(e===t)return{valid:!0,data:e};if(r===T.object&&s===T.object){let i=K.objectKeys(t),n=K.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of n){let u=Xc(e[a],t[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===T.array&&s===T.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let n=0;n<e.length;n++){let o=e[n],a=t[n],u=Xc(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===T.date&&s===T.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}function ED(e,t){return new Qr({values:e,typeName:N.ZodEnum,...q(t)})}function yD(e,t){let r=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof r=="string"?{message:r}:r}function CD(e,t={},r){return e?wr.create().superRefine((s,i)=>{let n=e(s);if(n instanceof Promise)return n.then(o=>{if(!o){let a=yD(t,s),u=a.fatal??r??!0;i.addIssue({code:"custom",...a,fatal:u})}});if(!n){let o=yD(t,s),a=o.fatal??r??!0;i.addIssue({code:"custom",...o,fatal:a})}}):wr.create()}var et,DD,V,XA,QA,eR,tR,rR,sR,iR,nR,oR,Zc,aR,uR,lR,cR,fR,dR,wD,hR,yr,Gr,Vr,Wr,Kr,Bs,Hr,zr,wr,Gt,gt,Os,Vt,je,Jr,Ut,Da,Yr,Rt,ya,Ls,Ns,wa,Zr,Xr,Qr,es,br,tt,Qe,kt,ts,rs,Ms,wR,dn,hn,ss,bR,N,vR,FD,SD,ER,CR,xD,FR,SR,xR,AR,RR,kR,IR,_R,TR,$R,PR,BR,OR,LR,NR,MR,jR,qR,UR,GR,VR,WR,KR,HR,zR,JR,YR,ZR,XR,QR,ek,tk,rk,sk,AD=ie(()=>{ha();pa();gD();Yc();cn();et=class{constructor(t,r,s,i){this._cachedPath=[],this.parent=t,this.data=r,this._path=s,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},DD=(e,t)=>{if(Dr(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new ve(e.common.issues);return this._error=r,this._error}}};V=class{get description(){return this._def.description}_getType(t){return At(t.data)}_getOrReturnCtx(t,r){return r||{common:t.parent.common,data:t.data,parsedType:At(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new xe,ctx:{common:t.parent.common,data:t.data,parsedType:At(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let r=this._parse(t);if($s(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(t){let r=this._parse(t);return Promise.resolve(r)}parse(t,r){let s=this.safeParse(t,r);if(s.success)return s.data;throw s.error}safeParse(t,r){let s={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:At(t)},i=this._parseSync({data:t,path:s.path,parent:s});return DD(s,i)}"~validate"(t){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:At(t)};if(!this["~standard"].async)try{let s=this._parseSync({data:t,path:[],parent:r});return Dr(s)?{value:s.value}:{issues:r.common.issues}}catch(s){s?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:r}).then(s=>Dr(s)?{value:s.value}:{issues:r.common.issues})}async parseAsync(t,r){let s=await this.safeParseAsync(t,r);if(s.success)return s.data;throw s.error}async safeParseAsync(t,r){let s={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:At(t)},i=this._parse({data:t,path:s.path,parent:s}),n=await($s(i)?i:Promise.resolve(i));return DD(s,n)}refine(t,r){let s=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,n)=>{let o=t(i),a=()=>n.addIssue({code:S.custom,...s(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,r){return this._refinement((s,i)=>t(s)?!0:(i.addIssue(typeof r=="function"?r(s,i):r),!1))}_refinement(t){return new tt({schema:this,typeName:N.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return Qe.create(this,this._def)}nullable(){return kt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Vt.create(this)}promise(){return br.create(this,this._def)}or(t){return Jr.create([this,t],this._def)}and(t){return Yr.create(this,t,this._def)}transform(t){return new tt({...q(this._def),schema:this,typeName:N.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let r=typeof t=="function"?t:()=>t;return new ts({...q(this._def),innerType:this,defaultValue:r,typeName:N.ZodDefault})}brand(){return new dn({typeName:N.ZodBranded,type:this,...q(this._def)})}catch(t){let r=typeof t=="function"?t:()=>t;return new rs({...q(this._def),innerType:this,catchValue:r,typeName:N.ZodCatch})}describe(t){let r=this.constructor;return new r({...this._def,description:t})}pipe(t){return hn.create(this,t)}readonly(){return ss.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},XA=/^c[^\s-]{8,}$/i,QA=/^[0-9a-z]+$/,eR=/^[0-9A-HJKMNP-TV-Z]{26}$/i,tR=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,rR=/^[a-z0-9_-]{21}$/i,sR=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,iR=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,nR=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,oR="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",aR=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,uR=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,lR=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,cR=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,fR=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,dR=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,wD="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",hR=new RegExp(`^${wD}$`);yr=class e extends V{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==T.string){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_type,expected:T.string,received:n.parsedType}),O}let s=new xe,i;for(let n of this._def.checks)if(n.kind==="min")t.data.length<n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),s.dirty());else if(n.kind==="max")t.data.length>n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),s.dirty());else if(n.kind==="length"){let o=t.data.length>n.value,a=t.data.length<n.value;(o||a)&&(i=this._getOrReturnCtx(t,i),o?k(i,{code:S.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}):a&&k(i,{code:S.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}),s.dirty())}else if(n.kind==="email")nR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"email",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="emoji")Zc||(Zc=new RegExp(oR,"u")),Zc.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"emoji",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="uuid")tR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"uuid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="nanoid")rR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"nanoid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="cuid")XA.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"cuid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="cuid2")QA.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"cuid2",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="ulid")eR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"ulid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="url")try{new URL(t.data)}catch{i=this._getOrReturnCtx(t,i),k(i,{validation:"url",code:S.invalid_string,message:n.message}),s.dirty()}else n.kind==="regex"?(n.regex.lastIndex=0,n.regex.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"regex",code:S.invalid_string,message:n.message}),s.dirty())):n.kind==="trim"?t.data=t.data.trim():n.kind==="includes"?t.data.includes(n.value,n.position)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:{includes:n.value,position:n.position},message:n.message}),s.dirty()):n.kind==="toLowerCase"?t.data=t.data.toLowerCase():n.kind==="toUpperCase"?t.data=t.data.toUpperCase():n.kind==="startsWith"?t.data.startsWith(n.value)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:{startsWith:n.value},message:n.message}),s.dirty()):n.kind==="endsWith"?t.data.endsWith(n.value)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:{endsWith:n.value},message:n.message}),s.dirty()):n.kind==="datetime"?vD(n).test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:"datetime",message:n.message}),s.dirty()):n.kind==="date"?hR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:"date",message:n.message}),s.dirty()):n.kind==="time"?pR(n).test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:"time",message:n.message}),s.dirty()):n.kind==="duration"?iR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"duration",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="ip"?mR(t.data,n.version)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"ip",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="jwt"?gR(t.data,n.alg)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"jwt",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="cidr"?DR(t.data,n.version)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"cidr",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="base64"?fR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"base64",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="base64url"?dR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"base64url",code:S.invalid_string,message:n.message}),s.dirty()):K.assertNever(n);return{status:s.value,value:t.data}}_regex(t,r,s){return this.refinement(i=>t.test(i),{validation:r,code:S.invalid_string,...B.errToObj(s)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...B.errToObj(t)})}url(t){return this._addCheck({kind:"url",...B.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...B.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...B.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...B.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...B.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...B.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...B.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...B.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...B.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...B.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...B.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...B.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...B.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...B.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...B.errToObj(t)})}regex(t,r){return this._addCheck({kind:"regex",regex:t,...B.errToObj(r)})}includes(t,r){return this._addCheck({kind:"includes",value:t,position:r?.position,...B.errToObj(r?.message)})}startsWith(t,r){return this._addCheck({kind:"startsWith",value:t,...B.errToObj(r)})}endsWith(t,r){return this._addCheck({kind:"endsWith",value:t,...B.errToObj(r)})}min(t,r){return this._addCheck({kind:"min",value:t,...B.errToObj(r)})}max(t,r){return this._addCheck({kind:"max",value:t,...B.errToObj(r)})}length(t,r){return this._addCheck({kind:"length",value:t,...B.errToObj(r)})}nonempty(t){return this.min(1,B.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxLength(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}};yr.create=e=>new yr({checks:[],typeName:N.ZodString,coerce:e?.coerce??!1,...q(e)});Gr=class e extends V{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==T.number){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_type,expected:T.number,received:n.parsedType}),O}let s,i=new xe;for(let n of this._def.checks)n.kind==="int"?K.isInteger(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:S.invalid_type,expected:"integer",received:"float",message:n.message}),i.dirty()):n.kind==="min"?(n.inclusive?t.data<n.value:t.data<=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_small,minimum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),i.dirty()):n.kind==="max"?(n.inclusive?t.data>n.value:t.data>=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),i.dirty()):n.kind==="multipleOf"?yR(t.data,n.value)!==0&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.not_multiple_of,multipleOf:n.value,message:n.message}),i.dirty()):n.kind==="finite"?Number.isFinite(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:S.not_finite,message:n.message}),i.dirty()):K.assertNever(n);return{status:i.value,value:t.data}}gte(t,r){return this.setLimit("min",t,!0,B.toString(r))}gt(t,r){return this.setLimit("min",t,!1,B.toString(r))}lte(t,r){return this.setLimit("max",t,!0,B.toString(r))}lt(t,r){return this.setLimit("max",t,!1,B.toString(r))}setLimit(t,r,s,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:s,message:B.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:B.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:B.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:B.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:B.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:B.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:B.toString(r)})}finite(t){return this._addCheck({kind:"finite",message:B.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:B.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:B.toString(t)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&K.isInteger(t.value))}get isFinite(){let t=null,r=null;for(let s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf")return!0;s.kind==="min"?(r===null||s.value>r)&&(r=s.value):s.kind==="max"&&(t===null||s.value<t)&&(t=s.value)}return Number.isFinite(r)&&Number.isFinite(t)}};Gr.create=e=>new Gr({checks:[],typeName:N.ZodNumber,coerce:e?.coerce||!1,...q(e)});Vr=class e extends V{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==T.bigint)return this._getInvalidInput(t);let s,i=new xe;for(let n of this._def.checks)n.kind==="min"?(n.inclusive?t.data<n.value:t.data<=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_small,type:"bigint",minimum:n.value,inclusive:n.inclusive,message:n.message}),i.dirty()):n.kind==="max"?(n.inclusive?t.data>n.value:t.data>=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),i.dirty()):n.kind==="multipleOf"?t.data%n.value!==BigInt(0)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.not_multiple_of,multipleOf:n.value,message:n.message}),i.dirty()):K.assertNever(n);return{status:i.value,value:t.data}}_getInvalidInput(t){let r=this._getOrReturnCtx(t);return k(r,{code:S.invalid_type,expected:T.bigint,received:r.parsedType}),O}gte(t,r){return this.setLimit("min",t,!0,B.toString(r))}gt(t,r){return this.setLimit("min",t,!1,B.toString(r))}lte(t,r){return this.setLimit("max",t,!0,B.toString(r))}lt(t,r){return this.setLimit("max",t,!1,B.toString(r))}setLimit(t,r,s,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:s,message:B.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:B.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:B.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:B.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:B.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:B.toString(r)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}};Vr.create=e=>new Vr({checks:[],typeName:N.ZodBigInt,coerce:e?.coerce??!1,...q(e)});Wr=class extends V{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==T.boolean){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.boolean,received:s.parsedType}),O}return _e(t.data)}};Wr.create=e=>new Wr({typeName:N.ZodBoolean,coerce:e?.coerce||!1,...q(e)});Kr=class e extends V{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==T.date){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_type,expected:T.date,received:n.parsedType}),O}if(Number.isNaN(t.data.getTime())){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_date}),O}let s=new xe,i;for(let n of this._def.checks)n.kind==="min"?t.data.getTime()<n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_small,message:n.message,inclusive:!0,exact:!1,minimum:n.value,type:"date"}),s.dirty()):n.kind==="max"?t.data.getTime()>n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),s.dirty()):K.assertNever(n);return{status:s.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,r){return this._addCheck({kind:"min",value:t.getTime(),message:B.toString(r)})}max(t,r){return this._addCheck({kind:"max",value:t.getTime(),message:B.toString(r)})}get minDate(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t!=null?new Date(t):null}};Kr.create=e=>new Kr({checks:[],coerce:e?.coerce||!1,typeName:N.ZodDate,...q(e)});Bs=class extends V{_parse(t){if(this._getType(t)!==T.symbol){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.symbol,received:s.parsedType}),O}return _e(t.data)}};Bs.create=e=>new Bs({typeName:N.ZodSymbol,...q(e)});Hr=class extends V{_parse(t){if(this._getType(t)!==T.undefined){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.undefined,received:s.parsedType}),O}return _e(t.data)}};Hr.create=e=>new Hr({typeName:N.ZodUndefined,...q(e)});zr=class extends V{_parse(t){if(this._getType(t)!==T.null){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.null,received:s.parsedType}),O}return _e(t.data)}};zr.create=e=>new zr({typeName:N.ZodNull,...q(e)});wr=class extends V{constructor(){super(...arguments),this._any=!0}_parse(t){return _e(t.data)}};wr.create=e=>new wr({typeName:N.ZodAny,...q(e)});Gt=class extends V{constructor(){super(...arguments),this._unknown=!0}_parse(t){return _e(t.data)}};Gt.create=e=>new Gt({typeName:N.ZodUnknown,...q(e)});gt=class extends V{_parse(t){let r=this._getOrReturnCtx(t);return k(r,{code:S.invalid_type,expected:T.never,received:r.parsedType}),O}};gt.create=e=>new gt({typeName:N.ZodNever,...q(e)});Os=class extends V{_parse(t){if(this._getType(t)!==T.undefined){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.void,received:s.parsedType}),O}return _e(t.data)}};Os.create=e=>new Os({typeName:N.ZodVoid,...q(e)});Vt=class e extends V{_parse(t){let{ctx:r,status:s}=this._processInputParams(t),i=this._def;if(r.parsedType!==T.array)return k(r,{code:S.invalid_type,expected:T.array,received:r.parsedType}),O;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(k(r,{code:o?S.too_big:S.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),s.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(k(r,{code:S.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),s.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(k(r,{code:S.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),s.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new et(r,o,r.path,a)))).then(o=>xe.mergeArray(s,o));let n=[...r.data].map((o,a)=>i.type._parseSync(new et(r,o,r.path,a)));return xe.mergeArray(s,n)}get element(){return this._def.type}min(t,r){return new e({...this._def,minLength:{value:t,message:B.toString(r)}})}max(t,r){return new e({...this._def,maxLength:{value:t,message:B.toString(r)}})}length(t,r){return new e({...this._def,exactLength:{value:t,message:B.toString(r)}})}nonempty(t){return this.min(1,t)}};Vt.create=(e,t)=>new Vt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:N.ZodArray,...q(t)});je=class e extends V{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),r=K.objectKeys(t);return this._cached={shape:t,keys:r},this._cached}_parse(t){if(this._getType(t)!==T.object){let l=this._getOrReturnCtx(t);return k(l,{code:S.invalid_type,expected:T.object,received:l.parsedType}),O}let{status:s,ctx:i}=this._processInputParams(t),{shape:n,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof gt&&this._def.unknownKeys==="strip"))for(let l in i.data)o.includes(l)||a.push(l);let u=[];for(let l of o){let c=n[l],f=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new et(i,f,i.path,l)),alwaysSet:l in i.data})}if(this._def.catchall instanceof gt){let l=this._def.unknownKeys;if(l==="passthrough")for(let c of a)u.push({key:{status:"valid",value:c},value:{status:"valid",value:i.data[c]}});else if(l==="strict")a.length>0&&(k(i,{code:S.unrecognized_keys,keys:a}),s.dirty());else if(l!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let l=this._def.catchall;for(let c of a){let f=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new et(i,f,i.path,c)),alwaysSet:c in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let l=[];for(let c of u){let f=await c.key,h=await c.value;l.push({key:f,value:h,alwaysSet:c.alwaysSet})}return l}).then(l=>xe.mergeObjectSync(s,l)):xe.mergeObjectSync(s,u)}get shape(){return this._def.shape()}strict(t){return B.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(r,s)=>{let i=this._def.errorMap?.(r,s).message??s.defaultError;return r.code==="unrecognized_keys"?{message:B.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:N.ZodObject})}setKey(t,r){return this.augment({[t]:r})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let r={};for(let s of K.objectKeys(t))t[s]&&this.shape[s]&&(r[s]=this.shape[s]);return new e({...this._def,shape:()=>r})}omit(t){let r={};for(let s of K.objectKeys(this.shape))t[s]||(r[s]=this.shape[s]);return new e({...this._def,shape:()=>r})}deepPartial(){return Ps(this)}partial(t){let r={};for(let s of K.objectKeys(this.shape)){let i=this.shape[s];t&&!t[s]?r[s]=i:r[s]=i.optional()}return new e({...this._def,shape:()=>r})}required(t){let r={};for(let s of K.objectKeys(this.shape))if(t&&!t[s])r[s]=this.shape[s];else{let n=this.shape[s];for(;n instanceof Qe;)n=n._def.innerType;r[s]=n}return new e({...this._def,shape:()=>r})}keyof(){return ED(K.objectKeys(this.shape))}};je.create=(e,t)=>new je({shape:()=>e,unknownKeys:"strip",catchall:gt.create(),typeName:N.ZodObject,...q(t)});je.strictCreate=(e,t)=>new je({shape:()=>e,unknownKeys:"strict",catchall:gt.create(),typeName:N.ZodObject,...q(t)});je.lazycreate=(e,t)=>new je({shape:e,unknownKeys:"strip",catchall:gt.create(),typeName:N.ZodObject,...q(t)});Jr=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s=this._def.options;function i(n){for(let a of n)if(a.result.status==="valid")return a.result;for(let a of n)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=n.map(a=>new ve(a.ctx.common.issues));return k(r,{code:S.invalid_union,unionErrors:o}),O}if(r.common.async)return Promise.all(s.map(async n=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await n._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let n,o=[];for(let u of s){let l={...r,common:{...r.common,issues:[]},parent:null},c=u._parseSync({data:r.data,path:r.path,parent:l});if(c.status==="valid")return c;c.status==="dirty"&&!n&&(n={result:c,ctx:l}),l.common.issues.length&&o.push(l.common.issues)}if(n)return r.common.issues.push(...n.ctx.common.issues),n.result;let a=o.map(u=>new ve(u));return k(r,{code:S.invalid_union,unionErrors:a}),O}}get options(){return this._def.options}};Jr.create=(e,t)=>new Jr({options:e,typeName:N.ZodUnion,...q(t)});Ut=e=>e instanceof Zr?Ut(e.schema):e instanceof tt?Ut(e.innerType()):e instanceof Xr?[e.value]:e instanceof Qr?e.options:e instanceof es?K.objectValues(e.enum):e instanceof ts?Ut(e._def.innerType):e instanceof Hr?[void 0]:e instanceof zr?[null]:e instanceof Qe?[void 0,...Ut(e.unwrap())]:e instanceof kt?[null,...Ut(e.unwrap())]:e instanceof dn||e instanceof ss?Ut(e.unwrap()):e instanceof rs?Ut(e._def.innerType):[],Da=class e extends V{_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==T.object)return k(r,{code:S.invalid_type,expected:T.object,received:r.parsedType}),O;let s=this.discriminator,i=r.data[s],n=this.optionsMap.get(i);return n?r.common.async?n._parseAsync({data:r.data,path:r.path,parent:r}):n._parseSync({data:r.data,path:r.path,parent:r}):(k(r,{code:S.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[s]}),O)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,r,s){let i=new Map;for(let n of r){let o=Ut(n.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);i.set(a,n)}}return new e({typeName:N.ZodDiscriminatedUnion,discriminator:t,options:r,optionsMap:i,...q(s)})}};Yr=class extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t),i=(n,o)=>{if(ma(n)||ma(o))return O;let a=Xc(n.value,o.value);return a.valid?((ga(n)||ga(o))&&r.dirty(),{status:r.value,value:a.data}):(k(s,{code:S.invalid_intersection_types}),O)};return s.common.async?Promise.all([this._def.left._parseAsync({data:s.data,path:s.path,parent:s}),this._def.right._parseAsync({data:s.data,path:s.path,parent:s})]).then(([n,o])=>i(n,o)):i(this._def.left._parseSync({data:s.data,path:s.path,parent:s}),this._def.right._parseSync({data:s.data,path:s.path,parent:s}))}};Yr.create=(e,t,r)=>new Yr({left:e,right:t,typeName:N.ZodIntersection,...q(r)});Rt=class e extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.array)return k(s,{code:S.invalid_type,expected:T.array,received:s.parsedType}),O;if(s.data.length<this._def.items.length)return k(s,{code:S.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),O;!this._def.rest&&s.data.length>this._def.items.length&&(k(s,{code:S.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let n=[...s.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new et(s,o,s.path,a)):null}).filter(o=>!!o);return s.common.async?Promise.all(n).then(o=>xe.mergeArray(r,o)):xe.mergeArray(r,n)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Rt.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Rt({items:e,typeName:N.ZodTuple,rest:null,...q(t)})};ya=class e extends V{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.object)return k(s,{code:S.invalid_type,expected:T.object,received:s.parsedType}),O;let i=[],n=this._def.keyType,o=this._def.valueType;for(let a in s.data)i.push({key:n._parse(new et(s,a,s.path,a)),value:o._parse(new et(s,s.data[a],s.path,a)),alwaysSet:a in s.data});return s.common.async?xe.mergeObjectAsync(r,i):xe.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(t,r,s){return r instanceof V?new e({keyType:t,valueType:r,typeName:N.ZodRecord,...q(s)}):new e({keyType:yr.create(),valueType:t,typeName:N.ZodRecord,...q(r)})}},Ls=class extends V{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.map)return k(s,{code:S.invalid_type,expected:T.map,received:s.parsedType}),O;let i=this._def.keyType,n=this._def.valueType,o=[...s.data.entries()].map(([a,u],l)=>({key:i._parse(new et(s,a,s.path,[l,"key"])),value:n._parse(new et(s,u,s.path,[l,"value"]))}));if(s.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let l=await u.key,c=await u.value;if(l.status==="aborted"||c.status==="aborted")return O;(l.status==="dirty"||c.status==="dirty")&&r.dirty(),a.set(l.value,c.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let l=u.key,c=u.value;if(l.status==="aborted"||c.status==="aborted")return O;(l.status==="dirty"||c.status==="dirty")&&r.dirty(),a.set(l.value,c.value)}return{status:r.value,value:a}}}};Ls.create=(e,t,r)=>new Ls({valueType:t,keyType:e,typeName:N.ZodMap,...q(r)});Ns=class e extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.set)return k(s,{code:S.invalid_type,expected:T.set,received:s.parsedType}),O;let i=this._def;i.minSize!==null&&s.data.size<i.minSize.value&&(k(s,{code:S.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&s.data.size>i.maxSize.value&&(k(s,{code:S.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let n=this._def.valueType;function o(u){let l=new Set;for(let c of u){if(c.status==="aborted")return O;c.status==="dirty"&&r.dirty(),l.add(c.value)}return{status:r.value,value:l}}let a=[...s.data.values()].map((u,l)=>n._parse(new et(s,u,s.path,l)));return s.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(t,r){return new e({...this._def,minSize:{value:t,message:B.toString(r)}})}max(t,r){return new e({...this._def,maxSize:{value:t,message:B.toString(r)}})}size(t,r){return this.min(t,r).max(t,r)}nonempty(t){return this.min(1,t)}};Ns.create=(e,t)=>new Ns({valueType:e,minSize:null,maxSize:null,typeName:N.ZodSet,...q(t)});wa=class e extends V{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==T.function)return k(r,{code:S.invalid_type,expected:T.function,received:r.parsedType}),O;function s(a,u){return fn({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ts(),qt].filter(l=>!!l),issueData:{code:S.invalid_arguments,argumentsError:u}})}function i(a,u){return fn({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ts(),qt].filter(l=>!!l),issueData:{code:S.invalid_return_type,returnTypeError:u}})}let n={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof br){let a=this;return _e(async function(...u){let l=new ve([]),c=await a._def.args.parseAsync(u,n).catch(p=>{throw l.addIssue(s(u,p)),l}),f=await Reflect.apply(o,this,c);return await a._def.returns._def.type.parseAsync(f,n).catch(p=>{throw l.addIssue(i(f,p)),l})})}else{let a=this;return _e(function(...u){let l=a._def.args.safeParse(u,n);if(!l.success)throw new ve([s(u,l.error)]);let c=Reflect.apply(o,this,l.data),f=a._def.returns.safeParse(c,n);if(!f.success)throw new ve([i(c,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Rt.create(t).rest(Gt.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,r,s){return new e({args:t||Rt.create([]).rest(Gt.create()),returns:r||Gt.create(),typeName:N.ZodFunction,...q(s)})}},Zr=class extends V{get schema(){return this._def.getter()}_parse(t){let{ctx:r}=this._processInputParams(t);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Zr.create=(e,t)=>new Zr({getter:e,typeName:N.ZodLazy,...q(t)});Xr=class extends V{_parse(t){if(t.data!==this._def.value){let r=this._getOrReturnCtx(t);return k(r,{received:r.data,code:S.invalid_literal,expected:this._def.value}),O}return{status:"valid",value:t.data}}get value(){return this._def.value}};Xr.create=(e,t)=>new Xr({value:e,typeName:N.ZodLiteral,...q(t)});Qr=class e extends V{_parse(t){if(typeof t.data!="string"){let r=this._getOrReturnCtx(t),s=this._def.values;return k(r,{expected:K.joinValues(s),received:r.parsedType,code:S.invalid_type}),O}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let r=this._getOrReturnCtx(t),s=this._def.values;return k(r,{received:r.data,code:S.invalid_enum_value,options:s}),O}return _e(t.data)}get options(){return this._def.values}get enum(){let t={};for(let r of this._def.values)t[r]=r;return t}get Values(){let t={};for(let r of this._def.values)t[r]=r;return t}get Enum(){let t={};for(let r of this._def.values)t[r]=r;return t}extract(t,r=this._def){return e.create(t,{...this._def,...r})}exclude(t,r=this._def){return e.create(this.options.filter(s=>!t.includes(s)),{...this._def,...r})}};Qr.create=ED;es=class extends V{_parse(t){let r=K.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(t);if(s.parsedType!==T.string&&s.parsedType!==T.number){let i=K.objectValues(r);return k(s,{expected:K.joinValues(i),received:s.parsedType,code:S.invalid_type}),O}if(this._cache||(this._cache=new Set(K.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=K.objectValues(r);return k(s,{received:s.data,code:S.invalid_enum_value,options:i}),O}return _e(t.data)}get enum(){return this._def.values}};es.create=(e,t)=>new es({values:e,typeName:N.ZodNativeEnum,...q(t)});br=class extends V{unwrap(){return this._def.type}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==T.promise&&r.common.async===!1)return k(r,{code:S.invalid_type,expected:T.promise,received:r.parsedType}),O;let s=r.parsedType===T.promise?r.data:Promise.resolve(r.data);return _e(s.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};br.create=(e,t)=>new br({type:e,typeName:N.ZodPromise,...q(t)});tt=class extends V{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===N.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:r,ctx:s}=this._processInputParams(t),i=this._def.effect||null,n={addIssue:o=>{k(s,o),o.fatal?r.abort():r.dirty()},get path(){return s.path}};if(n.addIssue=n.addIssue.bind(n),i.type==="preprocess"){let o=i.transform(s.data,n);if(s.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return O;let u=await this._def.schema._parseAsync({data:a,path:s.path,parent:s});return u.status==="aborted"?O:u.status==="dirty"?Ur(u.value):r.value==="dirty"?Ur(u.value):u});{if(r.value==="aborted")return O;let a=this._def.schema._parseSync({data:o,path:s.path,parent:s});return a.status==="aborted"?O:a.status==="dirty"?Ur(a.value):r.value==="dirty"?Ur(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,n);if(s.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(s.common.async===!1){let a=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return a.status==="aborted"?O:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(a=>a.status==="aborted"?O:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(s.common.async===!1){let o=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!Dr(o))return O;let a=i.transform(o.value,n);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(o=>Dr(o)?Promise.resolve(i.transform(o.value,n)).then(a=>({status:r.value,value:a})):O);K.assertNever(i)}};tt.create=(e,t,r)=>new tt({schema:e,typeName:N.ZodEffects,effect:t,...q(r)});tt.createWithPreprocess=(e,t,r)=>new tt({schema:t,effect:{type:"preprocess",transform:e},typeName:N.ZodEffects,...q(r)});Qe=class extends V{_parse(t){return this._getType(t)===T.undefined?_e(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Qe.create=(e,t)=>new Qe({innerType:e,typeName:N.ZodOptional,...q(t)});kt=class extends V{_parse(t){return this._getType(t)===T.null?_e(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};kt.create=(e,t)=>new kt({innerType:e,typeName:N.ZodNullable,...q(t)});ts=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s=r.data;return r.parsedType===T.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};ts.create=(e,t)=>new ts({innerType:e,typeName:N.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...q(t)});rs=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:s.data,path:s.path,parent:{...s}});return $s(i)?i.then(n=>({status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new ve(s.common.issues)},input:s.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new ve(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}};rs.create=(e,t)=>new rs({innerType:e,typeName:N.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...q(t)});Ms=class extends V{_parse(t){if(this._getType(t)!==T.nan){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.nan,received:s.parsedType}),O}return{status:"valid",value:t.data}}};Ms.create=e=>new Ms({typeName:N.ZodNaN,...q(e)});wR=Symbol("zod_brand"),dn=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s=r.data;return this._def.type._parse({data:s,path:r.path,parent:r})}unwrap(){return this._def.type}},hn=class e extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.common.async)return(async()=>{let n=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return n.status==="aborted"?O:n.status==="dirty"?(r.dirty(),Ur(n.value)):this._def.out._parseAsync({data:n.value,path:s.path,parent:s})})();{let i=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return i.status==="aborted"?O:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:s.path,parent:s})}}static create(t,r){return new e({in:t,out:r,typeName:N.ZodPipeline})}},ss=class extends V{_parse(t){let r=this._def.innerType._parse(t),s=i=>(Dr(i)&&(i.value=Object.freeze(i.value)),i);return $s(r)?r.then(i=>s(i)):s(r)}unwrap(){return this._def.innerType}};ss.create=(e,t)=>new ss({innerType:e,typeName:N.ZodReadonly,...q(t)});bR={object:je.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(N||(N={}));vR=(e,t={message:`Input not instance of ${e.name}`})=>CD(r=>r instanceof e,t),FD=yr.create,SD=Gr.create,ER=Ms.create,CR=Vr.create,xD=Wr.create,FR=Kr.create,SR=Bs.create,xR=Hr.create,AR=zr.create,RR=wr.create,kR=Gt.create,IR=gt.create,_R=Os.create,TR=Vt.create,$R=je.create,PR=je.strictCreate,BR=Jr.create,OR=Da.create,LR=Yr.create,NR=Rt.create,MR=ya.create,jR=Ls.create,qR=Ns.create,UR=wa.create,GR=Zr.create,VR=Xr.create,WR=Qr.create,KR=es.create,HR=br.create,zR=tt.create,JR=Qe.create,YR=kt.create,ZR=tt.createWithPreprocess,XR=hn.create,QR=()=>FD().optional(),ek=()=>SD().optional(),tk=()=>xD().optional(),rk={string:(e=>yr.create({...e,coerce:!0})),number:(e=>Gr.create({...e,coerce:!0})),boolean:(e=>Wr.create({...e,coerce:!0})),bigint:(e=>Vr.create({...e,coerce:!0})),date:(e=>Kr.create({...e,coerce:!0}))},sk=O});var y={};hi(y,{BRAND:()=>wR,DIRTY:()=>Ur,EMPTY_PATH:()=>ZA,INVALID:()=>O,NEVER:()=>sk,OK:()=>_e,ParseStatus:()=>xe,Schema:()=>V,ZodAny:()=>wr,ZodArray:()=>Vt,ZodBigInt:()=>Vr,ZodBoolean:()=>Wr,ZodBranded:()=>dn,ZodCatch:()=>rs,ZodDate:()=>Kr,ZodDefault:()=>ts,ZodDiscriminatedUnion:()=>Da,ZodEffects:()=>tt,ZodEnum:()=>Qr,ZodError:()=>ve,ZodFirstPartyTypeKind:()=>N,ZodFunction:()=>wa,ZodIntersection:()=>Yr,ZodIssueCode:()=>S,ZodLazy:()=>Zr,ZodLiteral:()=>Xr,ZodMap:()=>Ls,ZodNaN:()=>Ms,ZodNativeEnum:()=>es,ZodNever:()=>gt,ZodNull:()=>zr,ZodNullable:()=>kt,ZodNumber:()=>Gr,ZodObject:()=>je,ZodOptional:()=>Qe,ZodParsedType:()=>T,ZodPipeline:()=>hn,ZodPromise:()=>br,ZodReadonly:()=>ss,ZodRecord:()=>ya,ZodSchema:()=>V,ZodSet:()=>Ns,ZodString:()=>yr,ZodSymbol:()=>Bs,ZodTransformer:()=>tt,ZodTuple:()=>Rt,ZodType:()=>V,ZodUndefined:()=>Hr,ZodUnion:()=>Jr,ZodUnknown:()=>Gt,ZodVoid:()=>Os,addIssueToContext:()=>k,any:()=>RR,array:()=>TR,bigint:()=>CR,boolean:()=>xD,coerce:()=>rk,custom:()=>CD,date:()=>FR,datetimeRegex:()=>vD,defaultErrorMap:()=>qt,discriminatedUnion:()=>OR,effect:()=>zR,enum:()=>WR,function:()=>UR,getErrorMap:()=>Ts,getParsedType:()=>At,instanceof:()=>vR,intersection:()=>LR,isAborted:()=>ma,isAsync:()=>$s,isDirty:()=>ga,isValid:()=>Dr,late:()=>bR,lazy:()=>GR,literal:()=>VR,makeIssue:()=>fn,map:()=>jR,nan:()=>ER,nativeEnum:()=>KR,never:()=>IR,null:()=>AR,nullable:()=>YR,number:()=>SD,object:()=>$R,objectUtil:()=>zc,oboolean:()=>tk,onumber:()=>ek,optional:()=>JR,ostring:()=>QR,pipeline:()=>XR,preprocess:()=>ZR,promise:()=>HR,quotelessJson:()=>zA,record:()=>MR,set:()=>qR,setErrorMap:()=>YA,strictObject:()=>PR,string:()=>FD,symbol:()=>SR,transformer:()=>zR,tuple:()=>NR,undefined:()=>xR,union:()=>BR,unknown:()=>kR,util:()=>K,void:()=>_R});var Qc=ie(()=>{pa();Yc();mD();cn();AD();ha()});var vr=ie(()=>{Qc();Qc()});async function Dt(e,t){let r=pn.get(e);if(r!==void 0)return r.value;let s=await t();return pn.set(e,{value:s,timestamp:Date.now()}),s}function ba(e){pn.delete(e)}function RD(e){for(let t of pn.keys())t.startsWith(e)&&pn.delete(t)}var pn,qe,js=ie(()=>{"use strict";pn=new Map;qe={CONFIG:"config",INSTRUCTIONS:"instructions",OUTPUT_FORMAT:"prompt:output-format",VALIDATION_PROMPT:"prompt:validation",GIT_STATUS:"git:status",SKILLS:"skills"}});function $D(e){return{...TD[e]}}function tf(e){return e==="openai"?"openai":"deepseek"}function PD(e){return e==="openai"?Ae:me}function ik(e,t){return e===Ae?"openai":e===me?"deepseek":tf(t.PLATFORM)}function nk(e){let t={};for(let r of e.split(`
193
- `)){let s=r.trim();if(!s||s.startsWith("#"))continue;let i=s.indexOf("=");if(i===-1)continue;let n=s.slice(0,i).trim();n.startsWith("export ")&&(n=n.slice(7).trim());let o=s.slice(i+1).trim();(o.startsWith('"')&&o.endsWith('"')||o.startsWith("'")&&o.endsWith("'"))&&(o=o.slice(1,-1)),n&&!(n in process.env)&&(process.env[n]=o)}return t}function va(e){if(!kD){kD=!0;try{let t=(0,_D.join)(e||process.cwd(),".env"),r=(0,ID.readFileSync)(t,"utf-8");nk(r)}catch{}}}function Ue(e={}){va();let t=e.env??process.env,r=e.executorOverride||e.config?.executor,s=r===Ae||r===me?ik(r,t):tf(e.settings?.platform||e.config?.llm?.platform||t.PLATFORM),i=TD[s];return{platform:s,executor:r||PD(s),baseUrl:e.settings?.baseUrl||e.config?.llm?.baseUrl||t.BASE_URL||i.baseUrl,apiKey:e.settings?.apiKey||e.config?.llm?.apiKey||t.API_KEY||"",model:e.modelOverride||e.settings?.model||e.config?.llm?.model||t.MODEL||i.model}}function Us(e){return Ue({config:e})}function BD(){return va(),PD(tf(process.env.PLATFORM))}var ID,_D,Ae,me,qs,Er,ef,TD,kD,Ge=ie(()=>{"use strict";ID=require("node:fs"),_D=require("node:path"),Ae="openai-compatible-api",me="deepseek-api",qs=me,Er=1800,ef=0,TD={deepseek:{baseUrl:"https://api.deepseek.com",model:"deepseek-v4-flash"},openai:{baseUrl:"https://api.openai.com/v1",model:"gpt-5.4-mini"}};kD=!1});function mn(){return process.env.BEST_REVIEW_CONFIG_DIR||(0,Ea.join)((0,ND.homedir)(),".best-review")}function yt(...e){return(0,Ea.join)(mn(),...e)}function gn(){return yt("config.json")}function Dk(){return yt("instructions.md")}function Dn(){return nf.parse({})}async function Ca(e){try{return await(0,rt.access)(e),!0}catch(t){if(t instanceof Error&&"code"in t&&t.code==="ENOENT")return!1;throw t}}async function wk(e){if(!await Ca(e))return null;let r=await(0,rt.readFile)(e,"utf-8");try{return JSON.parse(r)}catch(s){let i=s instanceof SyntaxError?s.message:String(s);throw new Error(`\u914D\u7F6E\u6587\u4EF6 JSON \u65E0\u6548 ${e}\uFF1A${i}`,{cause:s})}}function sf(e){return e==="opencode-cli"?qs:e}function bk(e){if(!e)return;let t={};for(let[r,s]of Object.entries(e)){let i=sf(r);typeof i=="string"&&(t[i]={...t[i],...s})}return t}function vk(e){return{...e,...sf(e.executor)!==void 0&&{executor:sf(e.executor)},executors:bk(e.executors)}}function Ek(e,t){let r=vk(t);return{...e,...r.extends!==void 0&&{extends:r.extends},...r.excludePatterns!==void 0&&{excludePatterns:r.excludePatterns},...r.concurrency!==void 0&&{concurrency:r.concurrency},...r.executor!==void 0&&{executor:r.executor},llm:r.llm?{...e.llm,...r.llm}:e.llm,gitlab:r.gitlab?{...e.gitlab,...r.gitlab}:e.gitlab,executors:r.executors?Ck(e.executors,r.executors):e.executors,agents:r.agents?rf(e.agents,r.agents):e.agents,rules:r.rules?rf(e.rules,r.rules):e.rules,skills:r.skills?rf(e.skills,r.skills):e.skills,workflows:r.workflows??e.workflows,reporting:r.reporting?{...e.reporting,...r.reporting}:e.reporting,qualityScore:r.qualityScore?{...e.qualityScore,...r.qualityScore,weights:{...e.qualityScore.weights,...r.qualityScore.weights},categoryWeights:{...e.qualityScore.categoryWeights,...r.qualityScore.categoryWeights}}:e.qualityScore,output:r.output?{...e.output,...r.output}:e.output}}async function oe(e){let t=qe.CONFIG;return Dt(t,async()=>{let r=Dn(),s=await wk(gn());return s&&(r=nf.parse(Ek(r,s))),r})}async function Fa(e){try{await(0,rt.mkdir)(mn(),{recursive:!0}),await(0,rt.writeFile)(gn(),JSON.stringify(nf.parse(e),null,2)),Sa()}catch(t){throw new Error(`\u4FDD\u5B58\u5168\u5C40\u914D\u7F6E\u5931\u8D25\uFF1A${t}`)}}function Ck(e,t){let r={...e};for(let[s,i]of Object.entries(t))r[s]={...r[s],...i,review:i.review?{...r[s]?.review,...i.review}:r[s]?.review,validation:i.validation?{...r[s]?.validation,...i.validation}:r[s]?.validation};return r}function rf(e,t){let r={...e};for(let[s,i]of Object.entries(t))r[s]={...r[s],...i};return r}function Cr(){return gn()}function of(e){return(0,Ea.join)(e,yk)}async function af(){return Ca(gn())}async function MD(e){return Ca(of(e))}function Sa(){RD(qe.CONFIG),ba(qe.INSTRUCTIONS)}async function xa(){return Dt(qe.INSTRUCTIONS,async()=>{try{let e=Dk();return await Ca(e)?await(0,rt.readFile)(e,"utf-8"):""}catch{return""}})}async function jD(e,t,r){let s=gn(),i={};try{let o=await(0,rt.readFile)(s,"utf-8");i=JSON.parse(o)}catch{}let n=Array.isArray(i.extends)?i.extends.filter(o=>typeof o=="string"):[];i.extends=n,n.includes(e)||n.push(e),await(0,rt.mkdir)(mn(),{recursive:!0}),await(0,rt.writeFile)(s,JSON.stringify(i,null,2)),Sa()}var Ea,ND,rt,OD,ok,LD,ak,uk,lk,ck,fk,dk,hk,pk,mk,gk,nf,yk,Ee=ie(()=>{"use strict";vr();Ea=require("path"),ND=require("os"),rt=require("node:fs/promises");js();Ge();OD=y.object({model:y.string().optional()}).strict(),ok=y.object({review:y.array(OD).optional(),validation:y.array(OD).optional()}),LD=y.object({model:y.string().optional(),timeout:y.number().positive().optional(),concurrency:y.number().min(1).max(10).optional(),batchSize:y.number().min(1).max(50).optional(),readinessPing:y.boolean().optional()}).strict(),ak=y.object({review:LD.optional(),validation:LD.optional()}).strict(),uk=y.object({platform:y.enum(["deepseek","openai"]).optional(),baseUrl:y.string().min(1).optional(),apiKey:y.string().optional(),model:y.string().min(1).optional()}).strict().default({}),lk=y.object({token:y.string().optional(),uploadEnabled:y.boolean().default(!1)}).passthrough().default({}),ck=y.object({enabled:y.boolean().optional(),url:y.string().url().optional(),token:y.string().optional(),localDir:y.string().default(()=>yt("reports")),includeDiffs:y.boolean().default(!1),failOnError:y.boolean().default(!1),historyEnabled:y.boolean().default(!1),historyRemote:y.string().optional(),historyBranch:y.string().optional()}).default({}),fk=y.object({critical:y.number().nonnegative().default(40),high:y.number().nonnegative().default(15),medium:y.number().nonnegative().default(6),low:y.number().nonnegative().default(2)}).strict().default({}),dk=y.object({security:y.number().positive().default(1.2),bug:y.number().positive().default(1),performance:y.number().positive().default(.8),quality:y.number().positive().default(.7),style:y.number().positive().default(.4),docs:y.number().positive().default(.3)}).strict().default({}),hk=y.object({base:y.number().positive().default(100),min:y.number().min(0).default(0),weights:fk,categoryWeights:dk}).superRefine((e,t)=>{e.min>e.base&&t.addIssue({code:y.ZodIssueCode.custom,path:["min"],message:"qualityScore.min \u4E0D\u80FD\u5927\u4E8E qualityScore.base"})}).default({}),pk=y.object({enabled:y.boolean().optional(),model:y.string().optional(),timeout:y.number().positive().optional()}),mk=y.object({enabled:y.boolean().optional(),agent:y.string().optional()}),gk=y.object({enabled:y.boolean().optional()}).strict(),nf=y.object({extends:y.array(y.string()).default([]),excludePatterns:y.array(y.string()).default(["*.min.js","*.min.css","*.map","*.d.ts","dist/**","docs/**","*.md","build/**","out/**",".next/**","coverage/**","node_modules/**","vendor/**","*.generated.*","*.bundle.js"]),concurrency:y.number().min(1).max(10).default(2),executor:y.string().default(()=>BD()),llm:uk,gitlab:lk,executors:y.record(y.string(),ak).default({}),agents:y.record(y.string(),pk).default({}),rules:y.record(y.string(),mk).default({}),skills:y.record(y.string(),gk).default({}),workflows:ok.optional(),reporting:ck,qualityScore:hk,output:y.object({colorize:y.boolean().default(!0),verbose:y.boolean().default(!1),format:y.enum(["terminal","markdown","json"]).default("terminal")}).default({})}).superRefine((e,t)=>{let r=[Ae,me];r.includes(e.executor)||t.addIssue({code:y.ZodIssueCode.custom,path:["executor"],message:`\u53EA\u652F\u6301\u6A21\u578B API executor\uFF1A${r.join(", ")}\u3002`});for(let s of Object.keys(e.executors))r.includes(s)||t.addIssue({code:y.ZodIssueCode.custom,path:["executors",s],message:`\u4E0D\u652F\u6301\u7684 executor\uFF1A${s}\u3002\u53EF\u7528\uFF1A${r.join(", ")}\u3002`})});yk=".best-review.json"});function Aa(e){if(!e||typeof e!="string")return null;let t=e.lastIndexOf("#"),r,s;if(t!==-1){if(r=e.slice(0,t),s=e.slice(t+1),!s||s.includes("..")||s.includes("\0"))return null}else r=e;return Ak(r)?{url:r,ref:s}:null}function Ak(e){return Fk.test(e)||Sk.test(e)||xk.test(e)}function uf(e){let t=e.url;return t=t.replace(/^https?:\/\//,""),t=t.replace(/^git@/,""),t=t.replace(/^ssh:\/\//,""),t=t.replace(/\.git$/,""),t=t.replace(/[/:@]/g,"--"),e.ref&&(t=`${t}@${e.ref}`),t}function Ra(e){let t=e.url;return t.startsWith("git@")?t=t.replace(/^git@[^:]+:/,""):t=t.replace(/^https?:\/\/[^/]+\//,""),t=t.replace(/\.git$/,""),t}var Fk,Sk,xk,lf=ie(()=>{"use strict";Fk=/^https?:\/\/.+/,Sk=/^git@.+:.+/,xk=/^ssh:\/\/.+/});function yn(){return yt("extends")}function wn(){return yt("extends.lock.json")}function UD(e){return(0,qD.join)(yn(),uf(e))}function cf(e,t){return{ref:e,refString:t,localPath:UD(e)}}var qD,ka=ie(()=>{"use strict";qD=require("node:path");lf();Ee()});function Ik(){return wn()+".lock"}async function _k(){let e=Ik(),t=Date.now();for(;;)try{return await(0,Be.mkdir)(e),async()=>{try{await(0,Be.rm)(e,{recursive:!0,force:!0})}catch{}}}catch(r){if(r.code==="EEXIST"){if(Date.now()-t>Rk){await(0,Be.rm)(e,{recursive:!0,force:!0});continue}await new Promise(s=>setTimeout(s,kk));continue}throw r}}async function VD(e){let t=await _k();try{return await e()}finally{await t()}}function Tk(){return{version:1,updated:new Date().toISOString(),packages:{}}}async function Wt(){let e=wn();try{await(0,Be.access)(e);let t=await(0,Be.readFile)(e,"utf-8"),r=JSON.parse(t);if(r.version!==1)throw new Error(`Unsupported lock file version: ${r.version}`);return r}catch(t){if(t.code==="ENOENT")return Tk();throw t}}async function WD(e){let t=wn();await(0,Be.mkdir)((0,GD.dirname)(t),{recursive:!0}),e.updated=new Date().toISOString();let r=t+".tmp."+process.pid;await(0,Be.writeFile)(r,JSON.stringify(e,null,2),"utf-8"),await(0,Be.rename)(r,t)}async function KD(e){return(await Wt()).packages[e]||null}async function ff(e,t){await VD(async()=>{let r=await Wt();r.packages[e]=t,await WD(r)})}async function df(e){await VD(async()=>{let t=await Wt();delete t.packages[e],await WD(t)})}async function Ia(e){let t=await KD(e);if(!t)return!1;try{return await(0,Be.access)(t.path),!0}catch{return!1}}var Be,GD,Rk,kk,hf=ie(()=>{"use strict";Be=require("node:fs/promises"),GD=require("node:path");ka();Rk=1e4,kk=100});function _a(e){let t=(0,st.resolve)(yn()),r=(0,st.resolve)(e),s=(0,st.relative)(t,r);if(s.startsWith("..")||(0,st.resolve)(t,s)!==r)throw new Error("Invalid extend path: path traversal detected");let i=s.split(/[/\\]/);for(let n of i)if(n==="."||n===".."||n.includes("\0"))throw new Error("Invalid extend path: suspicious path component")}async function pf(e){let{ref:t,localPath:r}=e;_a(r),await(0,Fr.mkdir)(yn(),{recursive:!0}),await(0,Fr.rm)(r,{recursive:!0,force:!0});let s=["clone","--depth","1"];t.ref&&s.push("--branch",t.ref),s.push(t.url,r);try{await HD("git",s,{timeout:6e4})}catch(n){let o=n instanceof Error?n.message:String(n);throw o.includes("not found")||o.includes("does not exist")?new Error(`Repository or ref not found: ${t.url}${t.ref?`#${t.ref}`:""}`):o.includes("Authentication failed")||o.includes("Permission denied")?new Error(`Authentication failed for: ${t.url}`):new Error(`Git clone failed: ${o}`)}let{stdout:i}=await HD("git",["rev-parse","HEAD"],{cwd:r});return await(0,Fr.rm)((0,st.join)(r,".git"),{recursive:!0,force:!0}),i.trim()}async function mf(e){let t={agents:[],rules:[]},r=(0,st.join)(e,"agents");try{let i=await Ze("*.md",{cwd:r});for(let n of i){let o=await zD((0,st.join)(r,n));o&&t.agents.push(o)}}catch{}let s=(0,st.join)(e,"rules");try{let i=await Ze("**/*.md",{cwd:s});for(let n of i){let o=await zD((0,st.join)(s,n));o&&t.rules.push(o)}}catch{}return t}async function zD(e){try{let t=await(0,Fr.readFile)(e,"utf-8");if(!t.startsWith("---"))return null;let r=t.indexOf("---",3);if(r===-1)return null;let i=t.slice(3,r).match(/^name:\s*(.+)$/m);return i&&i[1]?i[1].trim().replace(/^["']|["']$/g,""):null}catch{return null}}async function gf(e){_a(e),await(0,Fr.rm)(e,{recursive:!0,force:!0})}var Fr,st,JD,YD,HD,Df=ie(()=>{"use strict";Fr=require("node:fs/promises"),st=require("node:path"),JD=require("node:child_process"),YD=require("node:util");ka();_i();HD=(0,YD.promisify)(JD.execFile)});var yf={};hi(yf,{getInstalledExtendPaths:()=>bn,loadAgentsFromExtends:()=>ZD,loadFromExtends:()=>QD,scanRuleRefsFromExtends:()=>XD});async function bn(e){let t=await Wt(),r=[];for(let s of e){let i=t.packages[s];i?(_a(i.path),r.push(i.path)):d.warn(`Extension not installed: ${s}. Run 'best-review extends install'`)}return r}async function ZD(e){let t=await bn(e),r=[];for(let s of t){let i=(0,Ta.join)(s,"agents");try{let n=await vn(i);r.push(...n.map(o=>({...o,source:"extends"})))}catch{}}return r}async function XD(e){let t=await bn(e),r=[];for(let s of t){let i=(0,Ta.join)(s,"rules");try{let n=await Gs(i,"extends");r.push(...n)}catch{}}return r}async function QD(e,t,r){let s=await bn(r),i=[];for(let n of s){let o=(0,Ta.join)(n,e);try{let a=await t(o);i.push(a)}catch{i.push([])}}return i}var Ta,$a=ie(()=>{"use strict";Ta=require("node:path");wf();Vs();hf();Df();M()});function is(e){if(!e||e.trim()==="")return{frontmatter:{},body:""};if(!e.startsWith("---"))return{frontmatter:{},body:e};let t=e.indexOf("---",3);if(t===-1)throw new Error("Invalid frontmatter: missing closing delimiter ---");let r=e.slice(3,t).trim(),s=e.slice(t+3).trim();if(!r)return{frontmatter:{},body:s};let i;try{i=ey.default.parse(r)}catch(n){throw new Error(`Invalid YAML in frontmatter: ${n instanceof Error?n.message:String(n)}`)}return{frontmatter:i,body:s}}function Pa(e,t){try{let{frontmatter:r,body:s}=is(e),i=t(r,s);return i?[i]:[]}catch(r){return d.error("Failed to parse markdown:",r),[]}}async function En(e,t){try{let r=await(0,bf.readFile)(e,"utf-8");return t?Pa(r,t):is(r)}catch(r){throw r instanceof Error?new Error(`Failed to load markdown file "${e}": ${r.message}`):new Error(`Failed to load markdown file "${e}": Unknown error`)}}async function ty(e,t,r){try{let s=await Ze("**/*.md",{cwd:e});if(s.length===0)return[];let i=[];for(let o of s){let a=(0,Ws.join)(e,o);try{let u=await En(a,t);i.push(...u)}catch(u){d.error(`Error processing file ${o}:`,u)}}let n=r?r(i):i;return d.info(`Loaded ${n.length} items from ${s.length} files in ${e} (recursive)`),n}catch{return[]}}function ry(...e){let t=new Map;for(let r of e)for(let s of r)t.set(s.name,s);return Array.from(t.values())}function Ba(e){return{defaults:(0,Ws.join)(Hc(),e),user:(0,Ws.join)(mn(),e)}}async function sy(e,t,r){let s=Ba(e),[i,n]=await Promise.all([t(s.defaults),t(s.user)]);return ry(i,n)}async function Gs(e,t){try{let r=await Ze("**/*.md",{cwd:e}),s=await Promise.all(r.map(async n=>{let o=(0,Ws.join)(e,n);try{let a=await(0,bf.readFile)(o,"utf-8");return{filePath:o,content:a}}catch{return null}})),i=[];for(let n of s)if(n)try{let{frontmatter:o}=is(n.content),a=o.name,u=o.description,l=o.agent,c=o.patterns,f=o.version;typeof a=="string"&&typeof l=="string"&&Array.isArray(c)&&c.length>0&&i.push({name:a,description:typeof u=="string"?u:"",path:n.filePath,patterns:c.filter(h=>typeof h=="string"),agent:l,source:t,...typeof f=="string"||typeof f=="number"?{version:String(f)}:{}})}catch{}return i}catch{return[]}}async function iy(e){let t=Ba("rules"),[r,s]=await Promise.all([Gs(t.defaults,"defaults"),Gs(t.user,"user")]),i=new Map;for(let n of[...r,...s])i.set(n.name,n);return Array.from(i.values())}async function ny(e,t,r,s){let i=Ba(e),{loadFromExtends:n}=await Promise.resolve().then(()=>($a(),yf)),[o,a,u]=await Promise.all([t(i.defaults),n(e,t,s),t(i.user)]);return ry(o,...a,u)}async function oy(e,t){let r=Ba("rules"),{scanRuleRefsFromExtends:s}=await Promise.resolve().then(()=>($a(),yf)),[i,n,o]=await Promise.all([Gs(r.defaults,"defaults"),s(t),Gs(r.user,"user")]),a=new Map;for(let u of[...i,...n,...o])a.set(u.name,u);return Array.from(a.values())}var bf,Ws,ey,Vs=ie(()=>{"use strict";M();_i();bf=require("node:fs/promises"),Ws=require("node:path"),ey=bt(Wc(),1);da();Ee()});function $k(e,t){let r=e.name;if(typeof r!="string")return null;let s=t.trim();if(!s)return null;let i=e.executorSettings&&typeof e.executorSettings=="object"&&!Array.isArray(e.executorSettings)?e.executorSettings:void 0,n=e.stage==="validation"?"validation":"review",o=typeof e.version=="string"||typeof e.version=="number"?String(e.version):void 0;return{name:r,description:typeof e.description=="string"?e.description:"",systemPrompt:s,enabled:typeof e.enabled=="boolean"?e.enabled:!0,order:typeof e.order=="number"?e.order:0,...o&&{version:o},...typeof e.executor=="string"&&{executor:e.executor},stage:n,...i&&{executorSettings:i}}}async function vn(e){let{glob:t}=await Promise.resolve().then(()=>(_i(),Sp)),{join:r}=await import("node:path");try{let s=await t("*.md",{cwd:e}),i=[],n=[],o=await Promise.all(s.map(async a=>{let u=r(e,a);try{return{agents:(await En(u,$k)).map(c=>({...c,path:u})),failed:null}}catch(l){return d.error(`Error loading agent from ${a}:`,l),{agents:[],failed:a}}}));return i.push(...o.flatMap(a=>a.agents)),n.push(...o.map(a=>a.failed).filter(a=>a!==null)),n.length>0&&d.warn(`Loaded ${i.length}/${s.length} agents, ${n.length} failed: ${n.join(", ")}`),i}catch(s){if(s.code==="ENOENT")return[];throw s}}var wf=ie(()=>{"use strict";Vs();M()});var Oy={};hi(Oy,{expandBraces:()=>Af,loadRuleFromRef:()=>Sf,loadRuleMarkdown:()=>oI,loadRuleRefs:()=>Tt,loadRules:()=>lI,loadRulesFromDirectoryRecursive:()=>aI,loadRulesFromRefs:()=>$y,matchAndLoadRules:()=>xf,matchPattern:()=>Ar,matchRuleRefs:()=>By,matchRules:()=>cI,parseRuleMarkdown:()=>Ty,parseSingleRule:()=>uI});function Ff(e,t){let r=e.name,s=e.agent,i=e.patterns,n=t.trim(),o=typeof e.version=="string"||typeof e.version=="number"?String(e.version):void 0;return typeof r!="string"||typeof s!="string"||!Array.isArray(i)||i.length===0||!n?null:{name:r,description:typeof e.description=="string"?e.description:"",patterns:i.filter(u=>typeof u=="string"),agent:s,prompt:n,...o&&{version:o}}}function Ty(e){return Pa(e,Ff)}async function oI(e){try{return await En(e,Ff)}catch(t){return d.error(`Error loading rule markdown from ${e}:`,t),[]}}async function aI(e){return ty(e,Ff)}function uI(e){let t=Ty(e);return t.length>0?t[0]??null:null}async function Tt(e){let t=e||process.cwd(),r=await oe(t);return(r.extends.length>0?await oy(t,r.extends):await iy(t)).map(i=>{let n=r.rules[i.name]||{};return{...i,agent:n.agent??i.agent,_enabled:n.enabled??!0}}).filter(i=>i._enabled!==!1).map(({_enabled:i,...n})=>n)}async function Sf(e){try{let t=await(0,_y.readFile)(e.path,"utf-8"),{body:r}=is(t);return{name:e.name,description:e.description,patterns:e.patterns,agent:e.agent,prompt:r.trim(),...e.version&&{version:e.version},source:e.source,path:e.path}}catch(t){return d.error(`\u52A0\u8F7D\u89C4\u5219\u5931\u8D25 ${e.path}\uFF1A`,t),null}}async function $y(e){return(await Promise.all(e.map(Sf))).filter(r=>r!==null)}async function lI(e){let t=await Tt(e);return $y(t)}function Py(e,t,r){let s=new Map(r.map(n=>[n.name,n])),i=[];for(let n of e){let o=s.get(n.agent);if(!o){d.warn(`\u89C4\u5219\u5F15\u7528\u4E86\u4E0D\u5B58\u5728\u7684 Agent\uFF1A"${n.agent}"`);continue}let a=t.filter(u=>n.patterns.some(l=>Ar(u.file,l))).map(u=>u.file);a.length!==0&&i.push({item:n,files:a,agent:o})}return i}function By(e,t,r){return Py(e,t,r).map(({item:s,...i})=>({ref:s,...i}))}async function xf(e,t,r){let s=By(e,t,r);return(await Promise.all(s.map(async({ref:n,files:o,agent:a})=>{let u=await Sf(n);return u?{rule:u,files:o,agent:a}:null}))).filter(n=>n!==null)}function cI(e,t,r){return Py(e,t,r).map(({item:s,...i})=>({rule:s,...i}))}function Af(e){let t=e.match(fI);if(!t||t.index===void 0||!t[1])return[e];let r=t[1].split(",").map(o=>o.trim()),s=e.substring(0,t.index),i=e.substring(t.index+t[0].length),n=[];for(let o of r){let a=s+o+i;n.push(...Af(a))}return n}function Ar(e,t){return Af(t).some(s=>dI(e,s))}function dI(e,t){let r=t.replace(/\*\*/g,"\0DOUBLESTAR\0").replace(/\*/g,"\0STAR\0").replace(/\?/g,"\0QUESTION\0");r=r.replace(/[.+^${}()|[\]\\]/g,"\\$&"),r=r.replace(/\x00DOUBLESTAR\x00\//g,"(?:.*\\/)?").replace(/\x00DOUBLESTAR\x00/g,".*").replace(/\x00STAR\x00/g,"[^/]*").replace(/\x00QUESTION\x00/g,".");let s=Iy.get(r);return s||(s=new RegExp(`^${r}$`),Iy.set(r,s)),s.test(e)}var _y,fI,Iy,Rr=ie(()=>{"use strict";Vs();_y=require("node:fs/promises");M();Ee();fI=/\{([^}]+)\}/;Iy=new Map});var Fe={silent:Number.NEGATIVE_INFINITY,fatal:0,error:0,warn:1,log:2,info:3,success:3,fail:3,ready:3,start:3,box:3,debug:4,trace:5,verbose:Number.POSITIVE_INFINITY},vu={silent:{level:-1},fatal:{level:Fe.fatal},error:{level:Fe.error},warn:{level:Fe.warn},log:{level:Fe.log},info:{level:Fe.info},success:{level:Fe.success},fail:{level:Fe.fail},ready:{level:Fe.info},start:{level:Fe.info},box:{level:Fe.info},debug:{level:Fe.debug},trace:{level:Fe.trace},verbose:{level:Fe.verbose}};function yu(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)==="[object Module]":!0}function Eu(e,t,r=".",s){if(!yu(t))return Eu(e,{},r,s);let i=Object.assign({},t);for(let n in e){if(n==="__proto__"||n==="constructor")continue;let o=e[n];o!=null&&(s&&s(i,n,o,r)||(Array.isArray(o)&&Array.isArray(i[n])?i[n]=[...o,...i[n]]:yu(o)&&yu(i[n])?i[n]=Eu(o,i[n],(r?`${r}.`:"")+n.toString(),s):i[n]=o))}return i}function Mv(e){return(...t)=>t.reduce((r,s)=>Eu(r,s,"",e),{})}var jv=Mv();function qv(e){return Object.prototype.toString.call(e)==="[object Object]"}function Uv(e){return!(!qv(e)||!e.message&&!e.args||e.stack)}var wu=!1,Sd=[],De=class e{options;_lastLog;_mockFn;constructor(t={}){let r=t.types||vu;this.options=jv({...t,defaults:{...t.defaults},level:bu(t.level,r),reporters:[...t.reporters||[]]},{types:vu,throttle:1e3,throttleMin:5,formatOptions:{date:!0,colors:!1,compact:!0}});for(let s in r){let i={type:s,...this.options.defaults,...r[s]};this[s]=this._wrapLogFn(i),this[s].raw=this._wrapLogFn(i,!0)}this.options.mockFn&&this.mockTypes(),this._lastLog={}}get level(){return this.options.level}set level(t){this.options.level=bu(t,this.options.types,this.options.level)}prompt(t,r){if(!this.options.prompt)throw new Error("prompt is not supported!");return this.options.prompt(t,r)}create(t){let r=new e({...this.options,...t});return this._mockFn&&r.mockTypes(this._mockFn),r}withDefaults(t){return this.create({...this.options,defaults:{...this.options.defaults,...t}})}withTag(t){return this.withDefaults({tag:this.options.defaults.tag?this.options.defaults.tag+":"+t:t})}addReporter(t){return this.options.reporters.push(t),this}removeReporter(t){if(t){let r=this.options.reporters.indexOf(t);if(r!==-1)return this.options.reporters.splice(r,1)}else this.options.reporters.splice(0);return this}setReporters(t){return this.options.reporters=Array.isArray(t)?t:[t],this}wrapAll(){this.wrapConsole(),this.wrapStd()}restoreAll(){this.restoreConsole(),this.restoreStd()}wrapConsole(){for(let t in this.options.types)console["__"+t]||(console["__"+t]=console[t]),console[t]=this[t].raw}restoreConsole(){for(let t in this.options.types)console["__"+t]&&(console[t]=console["__"+t],delete console["__"+t])}wrapStd(){this._wrapStream(this.options.stdout,"log"),this._wrapStream(this.options.stderr,"log")}_wrapStream(t,r){t&&(t.__write||(t.__write=t.write),t.write=s=>{this[r].raw(String(s).trim())})}restoreStd(){this._restoreStream(this.options.stdout),this._restoreStream(this.options.stderr)}_restoreStream(t){t&&t.__write&&(t.write=t.__write,delete t.__write)}pauseLogs(){wu=!0}resumeLogs(){wu=!1;let t=Sd.splice(0);for(let r of t)r[0]._logFn(r[1],r[2])}mockTypes(t){let r=t||this.options.mockFn;if(this._mockFn=r,typeof r=="function")for(let s in this.options.types)this[s]=r(s,this.options.types[s])||this[s],this[s].raw=this[s]}_wrapLogFn(t,r){return(...s)=>{if(wu){Sd.push([this,t,s,r]);return}return this._logFn(t,s,r)}}_logFn(t,r,s){if((t.level||0)>this.level)return!1;let i={date:new Date,args:[],...t,level:bu(t.level,this.options.types)};!s&&r.length===1&&Uv(r[0])?Object.assign(i,r[0]):i.args=[...r],i.message&&(i.args.unshift(i.message),delete i.message),i.additional&&(Array.isArray(i.additional)||(i.additional=i.additional.split(`
192
+ `,r)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let r=ua(t),s=_s(r);return s.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let r=ua(t),s=_s(r);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,r){return this.type!=="comment"||this.indent<=r?!1:t.every(s=>s.type==="newline"||s.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};aD.Parser=Uc});var dD=_(cn=>{"use strict";var uD=kc(),TA=en(),ln=sn(),$A=Al(),PA=Z(),BA=qc(),lD=Gc();function cD(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new BA.LineCounter||null,prettyErrors:t}}function OA(e,t={}){let{lineCounter:r,prettyErrors:s}=cD(t),i=new lD.Parser(r?.addNewLine),n=new uD.Composer(t),o=Array.from(n.compose(i.parse(e)));if(s&&r)for(let a of o)a.errors.forEach(ln.prettifyError(e,r)),a.warnings.forEach(ln.prettifyError(e,r));return o.length>0?o:Object.assign([],{empty:!0},n.streamInfo())}function fD(e,t={}){let{lineCounter:r,prettyErrors:s}=cD(t),i=new lD.Parser(r?.addNewLine),n=new uD.Composer(t),o=null;for(let a of n.compose(i.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new ln.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return s&&r&&(o.errors.forEach(ln.prettifyError(e,r)),o.warnings.forEach(ln.prettifyError(e,r))),o}function LA(e,t,r){let s;typeof t=="function"?s=t:r===void 0&&t&&typeof t=="object"&&(r=t);let i=fD(e,r);if(!i)return null;if(i.warnings.forEach(n=>$A.warn(i.options.logLevel,n)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:s},r))}function NA(e,t,r){let s=null;if(typeof t=="function"||Array.isArray(t)?s=t:r===void 0&&t&&(r=t),typeof r=="string"&&(r=r.length),typeof r=="number"){let i=Math.round(r);r=i<1?void 0:i>8?{indent:8}:{indent:i}}if(e===void 0){let{keepUndefined:i}=r??t??{};if(!i)return}return PA.isDocument(e)&&!s?e.toString(r):new TA.Document(e,s,r).toString(r)}cn.parse=LA;cn.parseAllDocuments=OA;cn.parseDocument=fD;cn.stringify=NA});var Wc=_(X=>{"use strict";var MA=kc(),jA=en(),qA=lc(),Vc=sn(),UA=Li(),Dr=Z(),GA=dr(),VA=he(),WA=pr(),HA=mr(),KA=oa(),zA=Mc(),JA=qc(),YA=Gc(),la=dD(),hD=$i();X.Composer=MA.Composer;X.Document=jA.Document;X.Schema=qA.Schema;X.YAMLError=Vc.YAMLError;X.YAMLParseError=Vc.YAMLParseError;X.YAMLWarning=Vc.YAMLWarning;X.Alias=UA.Alias;X.isAlias=Dr.isAlias;X.isCollection=Dr.isCollection;X.isDocument=Dr.isDocument;X.isMap=Dr.isMap;X.isNode=Dr.isNode;X.isPair=Dr.isPair;X.isScalar=Dr.isScalar;X.isSeq=Dr.isSeq;X.Pair=GA.Pair;X.Scalar=VA.Scalar;X.YAMLMap=WA.YAMLMap;X.YAMLSeq=HA.YAMLSeq;X.CST=KA;X.Lexer=zA.Lexer;X.LineCounter=JA.LineCounter;X.Parser=YA.Parser;X.parse=la.parse;X.parseAllDocuments=la.parseAllDocuments;X.parseDocument=la.parseDocument;X.stringify=la.stringify;X.visit=hD.visit;X.visitAsync=hD.visitAsync});function ZA(){if(typeof __dirname<"u")return __dirname;let e=process.argv[1];return e?(0,mt.dirname)((0,mt.resolve)(e)):process.cwd()}function Kc(){if(ca)return ca;let e=(0,mt.join)(Hc,"defaults");return ca=[e,(0,mt.join)(Hc,"..","src","defaults"),(0,mt.join)(Hc,"..","dist","defaults"),(0,mt.join)(process.cwd(),"src","defaults"),(0,mt.join)(process.cwd(),"dist","defaults")].find(r=>(0,pD.existsSync)(r))??e,ca}function fa(...e){return(0,mt.join)(Kc(),...e)}var pD,mt,Hc,ca,da=ie(()=>{"use strict";pD=require("node:fs"),mt=require("node:path");Hc=ZA()});var H,zc,T,At,fn=ie(()=>{(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function r(i){throw new Error}e.assertNever=r,e.arrayToEnum=i=>{let n={};for(let o of i)n[o]=o;return n},e.getValidEnumValues=i=>{let n=e.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(let a of n)o[a]=i[a];return e.objectValues(o)},e.objectValues=i=>e.objectKeys(i).map(function(n){return i[n]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let n=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&n.push(o);return n},e.find=(i,n)=>{for(let o of i)if(n(o))return o},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function s(i,n=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(n)}e.joinValues=s,e.jsonStringifyReplacer=(i,n)=>typeof n=="bigint"?n.toString():n})(H||(H={}));(function(e){e.mergeShapes=(t,r)=>({...t,...r})})(zc||(zc={}));T=H.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),At=e=>{switch(typeof e){case"undefined":return T.undefined;case"string":return T.string;case"number":return Number.isNaN(e)?T.nan:T.number;case"boolean":return T.boolean;case"function":return T.function;case"bigint":return T.bigint;case"symbol":return T.symbol;case"object":return Array.isArray(e)?T.array:e===null?T.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?T.promise:typeof Map<"u"&&e instanceof Map?T.map:typeof Set<"u"&&e instanceof Set?T.set:typeof Date<"u"&&e instanceof Date?T.date:T.object;default:return T.unknown}}});var S,XA,Ee,ha=ie(()=>{fn();S=H.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),XA=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),Ee=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=s=>{this.issues=[...this.issues,s]},this.addIssues=(s=[])=>{this.issues=[...this.issues,...s]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name="ZodError",this.issues=t}format(t){let r=t||function(n){return n.message},s={_errors:[]},i=n=>{for(let o of n.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)s._errors.push(r(o));else{let a=s,u=0;for(;u<o.path.length;){let l=o.path[u];u===o.path.length-1?(a[l]=a[l]||{_errors:[]},a[l]._errors.push(r(o))):a[l]=a[l]||{_errors:[]},a=a[l],u++}}};return i(this),s}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,H.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=r=>r.message){let r={},s=[];for(let i of this.issues)if(i.path.length>0){let n=i.path[0];r[n]=r[n]||[],r[n].push(t(i))}else s.push(t(i));return{formErrors:s,fieldErrors:r}}get formErrors(){return this.flatten()}};Ee.create=e=>new Ee(e)});var QA,qt,Jc=ie(()=>{ha();fn();QA=(e,t)=>{let r;switch(e.code){case S.invalid_type:e.received===T.undefined?r="Required":r=`Expected ${e.expected}, received ${e.received}`;break;case S.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(e.expected,H.jsonStringifyReplacer)}`;break;case S.unrecognized_keys:r=`Unrecognized key(s) in object: ${H.joinValues(e.keys,", ")}`;break;case S.invalid_union:r="Invalid input";break;case S.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${H.joinValues(e.options)}`;break;case S.invalid_enum_value:r=`Invalid enum value. Expected ${H.joinValues(e.options)}, received '${e.received}'`;break;case S.invalid_arguments:r="Invalid function arguments";break;case S.invalid_return_type:r="Invalid function return type";break;case S.invalid_date:r="Invalid date";break;case S.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(r=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(r=`${r} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?r=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?r=`Invalid input: must end with "${e.validation.endsWith}"`:H.assertNever(e.validation):e.validation!=="regex"?r=`Invalid ${e.validation}`:r="Invalid";break;case S.too_small:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?r=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:r="Invalid input";break;case S.too_big:e.type==="array"?r=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?r=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?r=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?r=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?r=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:r="Invalid input";break;case S.custom:r="Invalid input";break;case S.invalid_intersection_types:r="Intersection results could not be merged";break;case S.not_multiple_of:r=`Number must be a multiple of ${e.multipleOf}`;break;case S.not_finite:r="Number must be finite";break;default:r=t.defaultError,H.assertNever(e)}return{message:r}},qt=QA});function eR(e){mD=e}function Ts(){return mD}var mD,pa=ie(()=>{Jc();mD=qt});function k(e,t){let r=Ts(),s=dn({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,r,r===qt?void 0:qt].filter(i=>!!i)});e.common.issues.push(s)}var dn,tR,Ae,O,Ur,Te,ma,ga,yr,$s,Yc=ie(()=>{pa();Jc();dn=e=>{let{data:t,path:r,errorMaps:s,issueData:i}=e,n=[...r,...i.path||[]],o={...i,path:n};if(i.message!==void 0)return{...i,path:n,message:i.message};let a="",u=s.filter(l=>!!l).slice().reverse();for(let l of u)a=l(o,{data:t,defaultError:a}).message;return{...i,path:n,message:a}},tR=[];Ae=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,r){let s=[];for(let i of r){if(i.status==="aborted")return O;i.status==="dirty"&&t.dirty(),s.push(i.value)}return{status:t.value,value:s}}static async mergeObjectAsync(t,r){let s=[];for(let i of r){let n=await i.key,o=await i.value;s.push({key:n,value:o})}return e.mergeObjectSync(t,s)}static mergeObjectSync(t,r){let s={};for(let i of r){let{key:n,value:o}=i;if(n.status==="aborted"||o.status==="aborted")return O;n.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),n.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(s[n.value]=o.value)}return{status:t.value,value:s}}},O=Object.freeze({status:"aborted"}),Ur=e=>({status:"dirty",value:e}),Te=e=>({status:"valid",value:e}),ma=e=>e.status==="aborted",ga=e=>e.status==="dirty",yr=e=>e.status==="valid",$s=e=>typeof Promise<"u"&&e instanceof Promise});var gD=ie(()=>{});var B,DD=ie(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(B||(B={}))});function q(e){if(!e)return{};let{errorMap:t,invalid_type_error:r,required_error:s,description:i}=e;if(t&&(r||s))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(o,a)=>{let{message:u}=e;return o.code==="invalid_enum_value"?{message:u??a.defaultError}:typeof a.data>"u"?{message:u??s??a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:u??r??a.defaultError}},description:i}}function vD(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let r=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${r}`}function yR(e){return new RegExp(`^${vD(e)}$`)}function ED(e){let t=`${bD}T${vD(e)}`,r=[];return r.push(e.local?"Z?":"Z"),e.offset&&r.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${r.join("|")})`,new RegExp(`^${t}$`)}function wR(e,t){return!!((t==="v4"||!t)&&fR.test(e)||(t==="v6"||!t)&&hR.test(e))}function bR(e,t){if(!aR.test(e))return!1;try{let[r]=e.split(".");if(!r)return!1;let s=r.replace(/-/g,"+").replace(/_/g,"/").padEnd(r.length+(4-r.length%4)%4,"="),i=JSON.parse(atob(s));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function vR(e,t){return!!((t==="v4"||!t)&&dR.test(e)||(t==="v6"||!t)&&pR.test(e))}function ER(e,t){let r=(e.toString().split(".")[1]||"").length,s=(t.toString().split(".")[1]||"").length,i=r>s?r:s,n=Number.parseInt(e.toFixed(i).replace(".","")),o=Number.parseInt(t.toFixed(i).replace(".",""));return n%o/10**i}function Ps(e){if(e instanceof qe){let t={};for(let r in e.shape){let s=e.shape[r];t[r]=et.create(Ps(s))}return new qe({...e._def,shape:()=>t})}else return e instanceof Vt?new Vt({...e._def,type:Ps(e.element)}):e instanceof et?et.create(Ps(e.unwrap())):e instanceof kt?kt.create(Ps(e.unwrap())):e instanceof Rt?Rt.create(e.items.map(t=>Ps(t))):e}function Xc(e,t){let r=At(e),s=At(t);if(e===t)return{valid:!0,data:e};if(r===T.object&&s===T.object){let i=H.objectKeys(t),n=H.objectKeys(e).filter(a=>i.indexOf(a)!==-1),o={...e,...t};for(let a of n){let u=Xc(e[a],t[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(r===T.array&&s===T.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let n=0;n<e.length;n++){let o=e[n],a=t[n],u=Xc(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return r===T.date&&s===T.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}function CD(e,t){return new Qr({values:e,typeName:N.ZodEnum,...q(t)})}function wD(e,t){let r=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof r=="string"?{message:r}:r}function FD(e,t={},r){return e?br.create().superRefine((s,i)=>{let n=e(s);if(n instanceof Promise)return n.then(o=>{if(!o){let a=wD(t,s),u=a.fatal??r??!0;i.addIssue({code:"custom",...a,fatal:u})}});if(!n){let o=wD(t,s),a=o.fatal??r??!0;i.addIssue({code:"custom",...o,fatal:a})}}):br.create()}var tt,yD,V,rR,sR,iR,nR,oR,aR,uR,lR,cR,Zc,fR,dR,hR,pR,mR,gR,bD,DR,wr,Gr,Vr,Wr,Hr,Bs,Kr,zr,br,Gt,gt,Os,Vt,qe,Jr,Ut,Da,Yr,Rt,ya,Ls,Ns,wa,Zr,Xr,Qr,es,vr,rt,et,kt,ts,rs,Ms,CR,hn,pn,ss,FR,N,SR,SD,xD,xR,AR,AD,RR,kR,IR,_R,TR,$R,PR,BR,OR,LR,NR,MR,jR,qR,UR,GR,VR,WR,HR,KR,zR,JR,YR,ZR,XR,QR,ek,tk,rk,sk,ik,nk,ok,ak,RD=ie(()=>{ha();pa();DD();Yc();fn();tt=class{constructor(t,r,s,i){this._cachedPath=[],this.parent=t,this.data=r,this._path=s,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},yD=(e,t)=>{if(yr(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let r=new Ee(e.common.issues);return this._error=r,this._error}}};V=class{get description(){return this._def.description}_getType(t){return At(t.data)}_getOrReturnCtx(t,r){return r||{common:t.parent.common,data:t.data,parsedType:At(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Ae,ctx:{common:t.parent.common,data:t.data,parsedType:At(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let r=this._parse(t);if($s(r))throw new Error("Synchronous parse encountered promise.");return r}_parseAsync(t){let r=this._parse(t);return Promise.resolve(r)}parse(t,r){let s=this.safeParse(t,r);if(s.success)return s.data;throw s.error}safeParse(t,r){let s={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:At(t)},i=this._parseSync({data:t,path:s.path,parent:s});return yD(s,i)}"~validate"(t){let r={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:At(t)};if(!this["~standard"].async)try{let s=this._parseSync({data:t,path:[],parent:r});return yr(s)?{value:s.value}:{issues:r.common.issues}}catch(s){s?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:r}).then(s=>yr(s)?{value:s.value}:{issues:r.common.issues})}async parseAsync(t,r){let s=await this.safeParseAsync(t,r);if(s.success)return s.data;throw s.error}async safeParseAsync(t,r){let s={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:At(t)},i=this._parse({data:t,path:s.path,parent:s}),n=await($s(i)?i:Promise.resolve(i));return yD(s,n)}refine(t,r){let s=i=>typeof r=="string"||typeof r>"u"?{message:r}:typeof r=="function"?r(i):r;return this._refinement((i,n)=>{let o=t(i),a=()=>n.addIssue({code:S.custom,...s(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(t,r){return this._refinement((s,i)=>t(s)?!0:(i.addIssue(typeof r=="function"?r(s,i):r),!1))}_refinement(t){return new rt({schema:this,typeName:N.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:r=>this["~validate"](r)}}optional(){return et.create(this,this._def)}nullable(){return kt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Vt.create(this)}promise(){return vr.create(this,this._def)}or(t){return Jr.create([this,t],this._def)}and(t){return Yr.create(this,t,this._def)}transform(t){return new rt({...q(this._def),schema:this,typeName:N.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let r=typeof t=="function"?t:()=>t;return new ts({...q(this._def),innerType:this,defaultValue:r,typeName:N.ZodDefault})}brand(){return new hn({typeName:N.ZodBranded,type:this,...q(this._def)})}catch(t){let r=typeof t=="function"?t:()=>t;return new rs({...q(this._def),innerType:this,catchValue:r,typeName:N.ZodCatch})}describe(t){let r=this.constructor;return new r({...this._def,description:t})}pipe(t){return pn.create(this,t)}readonly(){return ss.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},rR=/^c[^\s-]{8,}$/i,sR=/^[0-9a-z]+$/,iR=/^[0-9A-HJKMNP-TV-Z]{26}$/i,nR=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,oR=/^[a-z0-9_-]{21}$/i,aR=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,uR=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,lR=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,cR="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",fR=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,dR=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,hR=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,pR=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,mR=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,gR=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,bD="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",DR=new RegExp(`^${bD}$`);wr=class e extends V{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==T.string){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_type,expected:T.string,received:n.parsedType}),O}let s=new Ae,i;for(let n of this._def.checks)if(n.kind==="min")t.data.length<n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),s.dirty());else if(n.kind==="max")t.data.length>n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),s.dirty());else if(n.kind==="length"){let o=t.data.length>n.value,a=t.data.length<n.value;(o||a)&&(i=this._getOrReturnCtx(t,i),o?k(i,{code:S.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}):a&&k(i,{code:S.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}),s.dirty())}else if(n.kind==="email")lR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"email",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="emoji")Zc||(Zc=new RegExp(cR,"u")),Zc.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"emoji",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="uuid")nR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"uuid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="nanoid")oR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"nanoid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="cuid")rR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"cuid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="cuid2")sR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"cuid2",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="ulid")iR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"ulid",code:S.invalid_string,message:n.message}),s.dirty());else if(n.kind==="url")try{new URL(t.data)}catch{i=this._getOrReturnCtx(t,i),k(i,{validation:"url",code:S.invalid_string,message:n.message}),s.dirty()}else n.kind==="regex"?(n.regex.lastIndex=0,n.regex.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"regex",code:S.invalid_string,message:n.message}),s.dirty())):n.kind==="trim"?t.data=t.data.trim():n.kind==="includes"?t.data.includes(n.value,n.position)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:{includes:n.value,position:n.position},message:n.message}),s.dirty()):n.kind==="toLowerCase"?t.data=t.data.toLowerCase():n.kind==="toUpperCase"?t.data=t.data.toUpperCase():n.kind==="startsWith"?t.data.startsWith(n.value)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:{startsWith:n.value},message:n.message}),s.dirty()):n.kind==="endsWith"?t.data.endsWith(n.value)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:{endsWith:n.value},message:n.message}),s.dirty()):n.kind==="datetime"?ED(n).test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:"datetime",message:n.message}),s.dirty()):n.kind==="date"?DR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:"date",message:n.message}),s.dirty()):n.kind==="time"?yR(n).test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{code:S.invalid_string,validation:"time",message:n.message}),s.dirty()):n.kind==="duration"?uR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"duration",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="ip"?wR(t.data,n.version)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"ip",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="jwt"?bR(t.data,n.alg)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"jwt",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="cidr"?vR(t.data,n.version)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"cidr",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="base64"?mR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"base64",code:S.invalid_string,message:n.message}),s.dirty()):n.kind==="base64url"?gR.test(t.data)||(i=this._getOrReturnCtx(t,i),k(i,{validation:"base64url",code:S.invalid_string,message:n.message}),s.dirty()):H.assertNever(n);return{status:s.value,value:t.data}}_regex(t,r,s){return this.refinement(i=>t.test(i),{validation:r,code:S.invalid_string,...B.errToObj(s)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...B.errToObj(t)})}url(t){return this._addCheck({kind:"url",...B.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...B.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...B.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...B.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...B.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...B.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...B.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...B.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...B.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...B.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...B.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...B.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...B.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...B.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...B.errToObj(t)})}regex(t,r){return this._addCheck({kind:"regex",regex:t,...B.errToObj(r)})}includes(t,r){return this._addCheck({kind:"includes",value:t,position:r?.position,...B.errToObj(r?.message)})}startsWith(t,r){return this._addCheck({kind:"startsWith",value:t,...B.errToObj(r)})}endsWith(t,r){return this._addCheck({kind:"endsWith",value:t,...B.errToObj(r)})}min(t,r){return this._addCheck({kind:"min",value:t,...B.errToObj(r)})}max(t,r){return this._addCheck({kind:"max",value:t,...B.errToObj(r)})}length(t,r){return this._addCheck({kind:"length",value:t,...B.errToObj(r)})}nonempty(t){return this.min(1,B.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxLength(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}};wr.create=e=>new wr({checks:[],typeName:N.ZodString,coerce:e?.coerce??!1,...q(e)});Gr=class e extends V{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==T.number){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_type,expected:T.number,received:n.parsedType}),O}let s,i=new Ae;for(let n of this._def.checks)n.kind==="int"?H.isInteger(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:S.invalid_type,expected:"integer",received:"float",message:n.message}),i.dirty()):n.kind==="min"?(n.inclusive?t.data<n.value:t.data<=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_small,minimum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),i.dirty()):n.kind==="max"?(n.inclusive?t.data>n.value:t.data>=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),i.dirty()):n.kind==="multipleOf"?ER(t.data,n.value)!==0&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.not_multiple_of,multipleOf:n.value,message:n.message}),i.dirty()):n.kind==="finite"?Number.isFinite(t.data)||(s=this._getOrReturnCtx(t,s),k(s,{code:S.not_finite,message:n.message}),i.dirty()):H.assertNever(n);return{status:i.value,value:t.data}}gte(t,r){return this.setLimit("min",t,!0,B.toString(r))}gt(t,r){return this.setLimit("min",t,!1,B.toString(r))}lte(t,r){return this.setLimit("max",t,!0,B.toString(r))}lt(t,r){return this.setLimit("max",t,!1,B.toString(r))}setLimit(t,r,s,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:s,message:B.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:B.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:B.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:B.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:B.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:B.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:B.toString(r)})}finite(t){return this._addCheck({kind:"finite",message:B.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:B.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:B.toString(t)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&H.isInteger(t.value))}get isFinite(){let t=null,r=null;for(let s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf")return!0;s.kind==="min"?(r===null||s.value>r)&&(r=s.value):s.kind==="max"&&(t===null||s.value<t)&&(t=s.value)}return Number.isFinite(r)&&Number.isFinite(t)}};Gr.create=e=>new Gr({checks:[],typeName:N.ZodNumber,coerce:e?.coerce||!1,...q(e)});Vr=class e extends V{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==T.bigint)return this._getInvalidInput(t);let s,i=new Ae;for(let n of this._def.checks)n.kind==="min"?(n.inclusive?t.data<n.value:t.data<=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_small,type:"bigint",minimum:n.value,inclusive:n.inclusive,message:n.message}),i.dirty()):n.kind==="max"?(n.inclusive?t.data>n.value:t.data>=n.value)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),i.dirty()):n.kind==="multipleOf"?t.data%n.value!==BigInt(0)&&(s=this._getOrReturnCtx(t,s),k(s,{code:S.not_multiple_of,multipleOf:n.value,message:n.message}),i.dirty()):H.assertNever(n);return{status:i.value,value:t.data}}_getInvalidInput(t){let r=this._getOrReturnCtx(t);return k(r,{code:S.invalid_type,expected:T.bigint,received:r.parsedType}),O}gte(t,r){return this.setLimit("min",t,!0,B.toString(r))}gt(t,r){return this.setLimit("min",t,!1,B.toString(r))}lte(t,r){return this.setLimit("max",t,!0,B.toString(r))}lt(t,r){return this.setLimit("max",t,!1,B.toString(r))}setLimit(t,r,s,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:s,message:B.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:B.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:B.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:B.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:B.toString(t)})}multipleOf(t,r){return this._addCheck({kind:"multipleOf",value:t,message:B.toString(r)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t}};Vr.create=e=>new Vr({checks:[],typeName:N.ZodBigInt,coerce:e?.coerce??!1,...q(e)});Wr=class extends V{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==T.boolean){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.boolean,received:s.parsedType}),O}return Te(t.data)}};Wr.create=e=>new Wr({typeName:N.ZodBoolean,coerce:e?.coerce||!1,...q(e)});Hr=class e extends V{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==T.date){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_type,expected:T.date,received:n.parsedType}),O}if(Number.isNaN(t.data.getTime())){let n=this._getOrReturnCtx(t);return k(n,{code:S.invalid_date}),O}let s=new Ae,i;for(let n of this._def.checks)n.kind==="min"?t.data.getTime()<n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_small,message:n.message,inclusive:!0,exact:!1,minimum:n.value,type:"date"}),s.dirty()):n.kind==="max"?t.data.getTime()>n.value&&(i=this._getOrReturnCtx(t,i),k(i,{code:S.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),s.dirty()):H.assertNever(n);return{status:s.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,r){return this._addCheck({kind:"min",value:t.getTime(),message:B.toString(r)})}max(t,r){return this._addCheck({kind:"max",value:t.getTime(),message:B.toString(r)})}get minDate(){let t=null;for(let r of this._def.checks)r.kind==="min"&&(t===null||r.value>t)&&(t=r.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let r of this._def.checks)r.kind==="max"&&(t===null||r.value<t)&&(t=r.value);return t!=null?new Date(t):null}};Hr.create=e=>new Hr({checks:[],coerce:e?.coerce||!1,typeName:N.ZodDate,...q(e)});Bs=class extends V{_parse(t){if(this._getType(t)!==T.symbol){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.symbol,received:s.parsedType}),O}return Te(t.data)}};Bs.create=e=>new Bs({typeName:N.ZodSymbol,...q(e)});Kr=class extends V{_parse(t){if(this._getType(t)!==T.undefined){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.undefined,received:s.parsedType}),O}return Te(t.data)}};Kr.create=e=>new Kr({typeName:N.ZodUndefined,...q(e)});zr=class extends V{_parse(t){if(this._getType(t)!==T.null){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.null,received:s.parsedType}),O}return Te(t.data)}};zr.create=e=>new zr({typeName:N.ZodNull,...q(e)});br=class extends V{constructor(){super(...arguments),this._any=!0}_parse(t){return Te(t.data)}};br.create=e=>new br({typeName:N.ZodAny,...q(e)});Gt=class extends V{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Te(t.data)}};Gt.create=e=>new Gt({typeName:N.ZodUnknown,...q(e)});gt=class extends V{_parse(t){let r=this._getOrReturnCtx(t);return k(r,{code:S.invalid_type,expected:T.never,received:r.parsedType}),O}};gt.create=e=>new gt({typeName:N.ZodNever,...q(e)});Os=class extends V{_parse(t){if(this._getType(t)!==T.undefined){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.void,received:s.parsedType}),O}return Te(t.data)}};Os.create=e=>new Os({typeName:N.ZodVoid,...q(e)});Vt=class e extends V{_parse(t){let{ctx:r,status:s}=this._processInputParams(t),i=this._def;if(r.parsedType!==T.array)return k(r,{code:S.invalid_type,expected:T.array,received:r.parsedType}),O;if(i.exactLength!==null){let o=r.data.length>i.exactLength.value,a=r.data.length<i.exactLength.value;(o||a)&&(k(r,{code:o?S.too_big:S.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),s.dirty())}if(i.minLength!==null&&r.data.length<i.minLength.value&&(k(r,{code:S.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),s.dirty()),i.maxLength!==null&&r.data.length>i.maxLength.value&&(k(r,{code:S.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),s.dirty()),r.common.async)return Promise.all([...r.data].map((o,a)=>i.type._parseAsync(new tt(r,o,r.path,a)))).then(o=>Ae.mergeArray(s,o));let n=[...r.data].map((o,a)=>i.type._parseSync(new tt(r,o,r.path,a)));return Ae.mergeArray(s,n)}get element(){return this._def.type}min(t,r){return new e({...this._def,minLength:{value:t,message:B.toString(r)}})}max(t,r){return new e({...this._def,maxLength:{value:t,message:B.toString(r)}})}length(t,r){return new e({...this._def,exactLength:{value:t,message:B.toString(r)}})}nonempty(t){return this.min(1,t)}};Vt.create=(e,t)=>new Vt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:N.ZodArray,...q(t)});qe=class e extends V{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),r=H.objectKeys(t);return this._cached={shape:t,keys:r},this._cached}_parse(t){if(this._getType(t)!==T.object){let l=this._getOrReturnCtx(t);return k(l,{code:S.invalid_type,expected:T.object,received:l.parsedType}),O}let{status:s,ctx:i}=this._processInputParams(t),{shape:n,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof gt&&this._def.unknownKeys==="strip"))for(let l in i.data)o.includes(l)||a.push(l);let u=[];for(let l of o){let c=n[l],f=i.data[l];u.push({key:{status:"valid",value:l},value:c._parse(new tt(i,f,i.path,l)),alwaysSet:l in i.data})}if(this._def.catchall instanceof gt){let l=this._def.unknownKeys;if(l==="passthrough")for(let c of a)u.push({key:{status:"valid",value:c},value:{status:"valid",value:i.data[c]}});else if(l==="strict")a.length>0&&(k(i,{code:S.unrecognized_keys,keys:a}),s.dirty());else if(l!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let l=this._def.catchall;for(let c of a){let f=i.data[c];u.push({key:{status:"valid",value:c},value:l._parse(new tt(i,f,i.path,c)),alwaysSet:c in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let l=[];for(let c of u){let f=await c.key,h=await c.value;l.push({key:f,value:h,alwaysSet:c.alwaysSet})}return l}).then(l=>Ae.mergeObjectSync(s,l)):Ae.mergeObjectSync(s,u)}get shape(){return this._def.shape()}strict(t){return B.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(r,s)=>{let i=this._def.errorMap?.(r,s).message??s.defaultError;return r.code==="unrecognized_keys"?{message:B.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:N.ZodObject})}setKey(t,r){return this.augment({[t]:r})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let r={};for(let s of H.objectKeys(t))t[s]&&this.shape[s]&&(r[s]=this.shape[s]);return new e({...this._def,shape:()=>r})}omit(t){let r={};for(let s of H.objectKeys(this.shape))t[s]||(r[s]=this.shape[s]);return new e({...this._def,shape:()=>r})}deepPartial(){return Ps(this)}partial(t){let r={};for(let s of H.objectKeys(this.shape)){let i=this.shape[s];t&&!t[s]?r[s]=i:r[s]=i.optional()}return new e({...this._def,shape:()=>r})}required(t){let r={};for(let s of H.objectKeys(this.shape))if(t&&!t[s])r[s]=this.shape[s];else{let n=this.shape[s];for(;n instanceof et;)n=n._def.innerType;r[s]=n}return new e({...this._def,shape:()=>r})}keyof(){return CD(H.objectKeys(this.shape))}};qe.create=(e,t)=>new qe({shape:()=>e,unknownKeys:"strip",catchall:gt.create(),typeName:N.ZodObject,...q(t)});qe.strictCreate=(e,t)=>new qe({shape:()=>e,unknownKeys:"strict",catchall:gt.create(),typeName:N.ZodObject,...q(t)});qe.lazycreate=(e,t)=>new qe({shape:e,unknownKeys:"strip",catchall:gt.create(),typeName:N.ZodObject,...q(t)});Jr=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s=this._def.options;function i(n){for(let a of n)if(a.result.status==="valid")return a.result;for(let a of n)if(a.result.status==="dirty")return r.common.issues.push(...a.ctx.common.issues),a.result;let o=n.map(a=>new Ee(a.ctx.common.issues));return k(r,{code:S.invalid_union,unionErrors:o}),O}if(r.common.async)return Promise.all(s.map(async n=>{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await n._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(i);{let n,o=[];for(let u of s){let l={...r,common:{...r.common,issues:[]},parent:null},c=u._parseSync({data:r.data,path:r.path,parent:l});if(c.status==="valid")return c;c.status==="dirty"&&!n&&(n={result:c,ctx:l}),l.common.issues.length&&o.push(l.common.issues)}if(n)return r.common.issues.push(...n.ctx.common.issues),n.result;let a=o.map(u=>new Ee(u));return k(r,{code:S.invalid_union,unionErrors:a}),O}}get options(){return this._def.options}};Jr.create=(e,t)=>new Jr({options:e,typeName:N.ZodUnion,...q(t)});Ut=e=>e instanceof Zr?Ut(e.schema):e instanceof rt?Ut(e.innerType()):e instanceof Xr?[e.value]:e instanceof Qr?e.options:e instanceof es?H.objectValues(e.enum):e instanceof ts?Ut(e._def.innerType):e instanceof Kr?[void 0]:e instanceof zr?[null]:e instanceof et?[void 0,...Ut(e.unwrap())]:e instanceof kt?[null,...Ut(e.unwrap())]:e instanceof hn||e instanceof ss?Ut(e.unwrap()):e instanceof rs?Ut(e._def.innerType):[],Da=class e extends V{_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==T.object)return k(r,{code:S.invalid_type,expected:T.object,received:r.parsedType}),O;let s=this.discriminator,i=r.data[s],n=this.optionsMap.get(i);return n?r.common.async?n._parseAsync({data:r.data,path:r.path,parent:r}):n._parseSync({data:r.data,path:r.path,parent:r}):(k(r,{code:S.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[s]}),O)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,r,s){let i=new Map;for(let n of r){let o=Ut(n.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of o){if(i.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);i.set(a,n)}}return new e({typeName:N.ZodDiscriminatedUnion,discriminator:t,options:r,optionsMap:i,...q(s)})}};Yr=class extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t),i=(n,o)=>{if(ma(n)||ma(o))return O;let a=Xc(n.value,o.value);return a.valid?((ga(n)||ga(o))&&r.dirty(),{status:r.value,value:a.data}):(k(s,{code:S.invalid_intersection_types}),O)};return s.common.async?Promise.all([this._def.left._parseAsync({data:s.data,path:s.path,parent:s}),this._def.right._parseAsync({data:s.data,path:s.path,parent:s})]).then(([n,o])=>i(n,o)):i(this._def.left._parseSync({data:s.data,path:s.path,parent:s}),this._def.right._parseSync({data:s.data,path:s.path,parent:s}))}};Yr.create=(e,t,r)=>new Yr({left:e,right:t,typeName:N.ZodIntersection,...q(r)});Rt=class e extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.array)return k(s,{code:S.invalid_type,expected:T.array,received:s.parsedType}),O;if(s.data.length<this._def.items.length)return k(s,{code:S.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),O;!this._def.rest&&s.data.length>this._def.items.length&&(k(s,{code:S.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),r.dirty());let n=[...s.data].map((o,a)=>{let u=this._def.items[a]||this._def.rest;return u?u._parse(new tt(s,o,s.path,a)):null}).filter(o=>!!o);return s.common.async?Promise.all(n).then(o=>Ae.mergeArray(r,o)):Ae.mergeArray(r,n)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Rt.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Rt({items:e,typeName:N.ZodTuple,rest:null,...q(t)})};ya=class e extends V{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.object)return k(s,{code:S.invalid_type,expected:T.object,received:s.parsedType}),O;let i=[],n=this._def.keyType,o=this._def.valueType;for(let a in s.data)i.push({key:n._parse(new tt(s,a,s.path,a)),value:o._parse(new tt(s,s.data[a],s.path,a)),alwaysSet:a in s.data});return s.common.async?Ae.mergeObjectAsync(r,i):Ae.mergeObjectSync(r,i)}get element(){return this._def.valueType}static create(t,r,s){return r instanceof V?new e({keyType:t,valueType:r,typeName:N.ZodRecord,...q(s)}):new e({keyType:wr.create(),valueType:t,typeName:N.ZodRecord,...q(r)})}},Ls=class extends V{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.map)return k(s,{code:S.invalid_type,expected:T.map,received:s.parsedType}),O;let i=this._def.keyType,n=this._def.valueType,o=[...s.data.entries()].map(([a,u],l)=>({key:i._parse(new tt(s,a,s.path,[l,"key"])),value:n._parse(new tt(s,u,s.path,[l,"value"]))}));if(s.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let u of o){let l=await u.key,c=await u.value;if(l.status==="aborted"||c.status==="aborted")return O;(l.status==="dirty"||c.status==="dirty")&&r.dirty(),a.set(l.value,c.value)}return{status:r.value,value:a}})}else{let a=new Map;for(let u of o){let l=u.key,c=u.value;if(l.status==="aborted"||c.status==="aborted")return O;(l.status==="dirty"||c.status==="dirty")&&r.dirty(),a.set(l.value,c.value)}return{status:r.value,value:a}}}};Ls.create=(e,t,r)=>new Ls({valueType:t,keyType:e,typeName:N.ZodMap,...q(r)});Ns=class e extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.parsedType!==T.set)return k(s,{code:S.invalid_type,expected:T.set,received:s.parsedType}),O;let i=this._def;i.minSize!==null&&s.data.size<i.minSize.value&&(k(s,{code:S.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),r.dirty()),i.maxSize!==null&&s.data.size>i.maxSize.value&&(k(s,{code:S.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),r.dirty());let n=this._def.valueType;function o(u){let l=new Set;for(let c of u){if(c.status==="aborted")return O;c.status==="dirty"&&r.dirty(),l.add(c.value)}return{status:r.value,value:l}}let a=[...s.data.values()].map((u,l)=>n._parse(new tt(s,u,s.path,l)));return s.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(t,r){return new e({...this._def,minSize:{value:t,message:B.toString(r)}})}max(t,r){return new e({...this._def,maxSize:{value:t,message:B.toString(r)}})}size(t,r){return this.min(t,r).max(t,r)}nonempty(t){return this.min(1,t)}};Ns.create=(e,t)=>new Ns({valueType:e,minSize:null,maxSize:null,typeName:N.ZodSet,...q(t)});wa=class e extends V{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==T.function)return k(r,{code:S.invalid_type,expected:T.function,received:r.parsedType}),O;function s(a,u){return dn({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ts(),qt].filter(l=>!!l),issueData:{code:S.invalid_arguments,argumentsError:u}})}function i(a,u){return dn({data:a,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,Ts(),qt].filter(l=>!!l),issueData:{code:S.invalid_return_type,returnTypeError:u}})}let n={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof vr){let a=this;return Te(async function(...u){let l=new Ee([]),c=await a._def.args.parseAsync(u,n).catch(p=>{throw l.addIssue(s(u,p)),l}),f=await Reflect.apply(o,this,c);return await a._def.returns._def.type.parseAsync(f,n).catch(p=>{throw l.addIssue(i(f,p)),l})})}else{let a=this;return Te(function(...u){let l=a._def.args.safeParse(u,n);if(!l.success)throw new Ee([s(u,l.error)]);let c=Reflect.apply(o,this,l.data),f=a._def.returns.safeParse(c,n);if(!f.success)throw new Ee([i(c,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Rt.create(t).rest(Gt.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,r,s){return new e({args:t||Rt.create([]).rest(Gt.create()),returns:r||Gt.create(),typeName:N.ZodFunction,...q(s)})}},Zr=class extends V{get schema(){return this._def.getter()}_parse(t){let{ctx:r}=this._processInputParams(t);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Zr.create=(e,t)=>new Zr({getter:e,typeName:N.ZodLazy,...q(t)});Xr=class extends V{_parse(t){if(t.data!==this._def.value){let r=this._getOrReturnCtx(t);return k(r,{received:r.data,code:S.invalid_literal,expected:this._def.value}),O}return{status:"valid",value:t.data}}get value(){return this._def.value}};Xr.create=(e,t)=>new Xr({value:e,typeName:N.ZodLiteral,...q(t)});Qr=class e extends V{_parse(t){if(typeof t.data!="string"){let r=this._getOrReturnCtx(t),s=this._def.values;return k(r,{expected:H.joinValues(s),received:r.parsedType,code:S.invalid_type}),O}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let r=this._getOrReturnCtx(t),s=this._def.values;return k(r,{received:r.data,code:S.invalid_enum_value,options:s}),O}return Te(t.data)}get options(){return this._def.values}get enum(){let t={};for(let r of this._def.values)t[r]=r;return t}get Values(){let t={};for(let r of this._def.values)t[r]=r;return t}get Enum(){let t={};for(let r of this._def.values)t[r]=r;return t}extract(t,r=this._def){return e.create(t,{...this._def,...r})}exclude(t,r=this._def){return e.create(this.options.filter(s=>!t.includes(s)),{...this._def,...r})}};Qr.create=CD;es=class extends V{_parse(t){let r=H.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(t);if(s.parsedType!==T.string&&s.parsedType!==T.number){let i=H.objectValues(r);return k(s,{expected:H.joinValues(i),received:s.parsedType,code:S.invalid_type}),O}if(this._cache||(this._cache=new Set(H.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=H.objectValues(r);return k(s,{received:s.data,code:S.invalid_enum_value,options:i}),O}return Te(t.data)}get enum(){return this._def.values}};es.create=(e,t)=>new es({values:e,typeName:N.ZodNativeEnum,...q(t)});vr=class extends V{unwrap(){return this._def.type}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==T.promise&&r.common.async===!1)return k(r,{code:S.invalid_type,expected:T.promise,received:r.parsedType}),O;let s=r.parsedType===T.promise?r.data:Promise.resolve(r.data);return Te(s.then(i=>this._def.type.parseAsync(i,{path:r.path,errorMap:r.common.contextualErrorMap})))}};vr.create=(e,t)=>new vr({type:e,typeName:N.ZodPromise,...q(t)});rt=class extends V{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===N.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:r,ctx:s}=this._processInputParams(t),i=this._def.effect||null,n={addIssue:o=>{k(s,o),o.fatal?r.abort():r.dirty()},get path(){return s.path}};if(n.addIssue=n.addIssue.bind(n),i.type==="preprocess"){let o=i.transform(s.data,n);if(s.common.async)return Promise.resolve(o).then(async a=>{if(r.value==="aborted")return O;let u=await this._def.schema._parseAsync({data:a,path:s.path,parent:s});return u.status==="aborted"?O:u.status==="dirty"?Ur(u.value):r.value==="dirty"?Ur(u.value):u});{if(r.value==="aborted")return O;let a=this._def.schema._parseSync({data:o,path:s.path,parent:s});return a.status==="aborted"?O:a.status==="dirty"?Ur(a.value):r.value==="dirty"?Ur(a.value):a}}if(i.type==="refinement"){let o=a=>{let u=i.refinement(a,n);if(s.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(s.common.async===!1){let a=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return a.status==="aborted"?O:(a.status==="dirty"&&r.dirty(),o(a.value),{status:r.value,value:a.value})}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(a=>a.status==="aborted"?O:(a.status==="dirty"&&r.dirty(),o(a.value).then(()=>({status:r.value,value:a.value}))))}if(i.type==="transform")if(s.common.async===!1){let o=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!yr(o))return O;let a=i.transform(o.value,n);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:r.value,value:a}}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(o=>yr(o)?Promise.resolve(i.transform(o.value,n)).then(a=>({status:r.value,value:a})):O);H.assertNever(i)}};rt.create=(e,t,r)=>new rt({schema:e,typeName:N.ZodEffects,effect:t,...q(r)});rt.createWithPreprocess=(e,t,r)=>new rt({schema:t,effect:{type:"preprocess",transform:e},typeName:N.ZodEffects,...q(r)});et=class extends V{_parse(t){return this._getType(t)===T.undefined?Te(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};et.create=(e,t)=>new et({innerType:e,typeName:N.ZodOptional,...q(t)});kt=class extends V{_parse(t){return this._getType(t)===T.null?Te(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};kt.create=(e,t)=>new kt({innerType:e,typeName:N.ZodNullable,...q(t)});ts=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s=r.data;return r.parsedType===T.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};ts.create=(e,t)=>new ts({innerType:e,typeName:N.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...q(t)});rs=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s={...r,common:{...r.common,issues:[]}},i=this._def.innerType._parse({data:s.data,path:s.path,parent:{...s}});return $s(i)?i.then(n=>({status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new Ee(s.common.issues)},input:s.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Ee(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}};rs.create=(e,t)=>new rs({innerType:e,typeName:N.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...q(t)});Ms=class extends V{_parse(t){if(this._getType(t)!==T.nan){let s=this._getOrReturnCtx(t);return k(s,{code:S.invalid_type,expected:T.nan,received:s.parsedType}),O}return{status:"valid",value:t.data}}};Ms.create=e=>new Ms({typeName:N.ZodNaN,...q(e)});CR=Symbol("zod_brand"),hn=class extends V{_parse(t){let{ctx:r}=this._processInputParams(t),s=r.data;return this._def.type._parse({data:s,path:r.path,parent:r})}unwrap(){return this._def.type}},pn=class e extends V{_parse(t){let{status:r,ctx:s}=this._processInputParams(t);if(s.common.async)return(async()=>{let n=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return n.status==="aborted"?O:n.status==="dirty"?(r.dirty(),Ur(n.value)):this._def.out._parseAsync({data:n.value,path:s.path,parent:s})})();{let i=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return i.status==="aborted"?O:i.status==="dirty"?(r.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:s.path,parent:s})}}static create(t,r){return new e({in:t,out:r,typeName:N.ZodPipeline})}},ss=class extends V{_parse(t){let r=this._def.innerType._parse(t),s=i=>(yr(i)&&(i.value=Object.freeze(i.value)),i);return $s(r)?r.then(i=>s(i)):s(r)}unwrap(){return this._def.innerType}};ss.create=(e,t)=>new ss({innerType:e,typeName:N.ZodReadonly,...q(t)});FR={object:qe.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(N||(N={}));SR=(e,t={message:`Input not instance of ${e.name}`})=>FD(r=>r instanceof e,t),SD=wr.create,xD=Gr.create,xR=Ms.create,AR=Vr.create,AD=Wr.create,RR=Hr.create,kR=Bs.create,IR=Kr.create,_R=zr.create,TR=br.create,$R=Gt.create,PR=gt.create,BR=Os.create,OR=Vt.create,LR=qe.create,NR=qe.strictCreate,MR=Jr.create,jR=Da.create,qR=Yr.create,UR=Rt.create,GR=ya.create,VR=Ls.create,WR=Ns.create,HR=wa.create,KR=Zr.create,zR=Xr.create,JR=Qr.create,YR=es.create,ZR=vr.create,XR=rt.create,QR=et.create,ek=kt.create,tk=rt.createWithPreprocess,rk=pn.create,sk=()=>SD().optional(),ik=()=>xD().optional(),nk=()=>AD().optional(),ok={string:(e=>wr.create({...e,coerce:!0})),number:(e=>Gr.create({...e,coerce:!0})),boolean:(e=>Wr.create({...e,coerce:!0})),bigint:(e=>Vr.create({...e,coerce:!0})),date:(e=>Hr.create({...e,coerce:!0}))},ak=O});var y={};pi(y,{BRAND:()=>CR,DIRTY:()=>Ur,EMPTY_PATH:()=>tR,INVALID:()=>O,NEVER:()=>ak,OK:()=>Te,ParseStatus:()=>Ae,Schema:()=>V,ZodAny:()=>br,ZodArray:()=>Vt,ZodBigInt:()=>Vr,ZodBoolean:()=>Wr,ZodBranded:()=>hn,ZodCatch:()=>rs,ZodDate:()=>Hr,ZodDefault:()=>ts,ZodDiscriminatedUnion:()=>Da,ZodEffects:()=>rt,ZodEnum:()=>Qr,ZodError:()=>Ee,ZodFirstPartyTypeKind:()=>N,ZodFunction:()=>wa,ZodIntersection:()=>Yr,ZodIssueCode:()=>S,ZodLazy:()=>Zr,ZodLiteral:()=>Xr,ZodMap:()=>Ls,ZodNaN:()=>Ms,ZodNativeEnum:()=>es,ZodNever:()=>gt,ZodNull:()=>zr,ZodNullable:()=>kt,ZodNumber:()=>Gr,ZodObject:()=>qe,ZodOptional:()=>et,ZodParsedType:()=>T,ZodPipeline:()=>pn,ZodPromise:()=>vr,ZodReadonly:()=>ss,ZodRecord:()=>ya,ZodSchema:()=>V,ZodSet:()=>Ns,ZodString:()=>wr,ZodSymbol:()=>Bs,ZodTransformer:()=>rt,ZodTuple:()=>Rt,ZodType:()=>V,ZodUndefined:()=>Kr,ZodUnion:()=>Jr,ZodUnknown:()=>Gt,ZodVoid:()=>Os,addIssueToContext:()=>k,any:()=>TR,array:()=>OR,bigint:()=>AR,boolean:()=>AD,coerce:()=>ok,custom:()=>FD,date:()=>RR,datetimeRegex:()=>ED,defaultErrorMap:()=>qt,discriminatedUnion:()=>jR,effect:()=>XR,enum:()=>JR,function:()=>HR,getErrorMap:()=>Ts,getParsedType:()=>At,instanceof:()=>SR,intersection:()=>qR,isAborted:()=>ma,isAsync:()=>$s,isDirty:()=>ga,isValid:()=>yr,late:()=>FR,lazy:()=>KR,literal:()=>zR,makeIssue:()=>dn,map:()=>VR,nan:()=>xR,nativeEnum:()=>YR,never:()=>PR,null:()=>_R,nullable:()=>ek,number:()=>xD,object:()=>LR,objectUtil:()=>zc,oboolean:()=>nk,onumber:()=>ik,optional:()=>QR,ostring:()=>sk,pipeline:()=>rk,preprocess:()=>tk,promise:()=>ZR,quotelessJson:()=>XA,record:()=>GR,set:()=>WR,setErrorMap:()=>eR,strictObject:()=>NR,string:()=>SD,symbol:()=>kR,transformer:()=>XR,tuple:()=>UR,undefined:()=>IR,union:()=>MR,unknown:()=>$R,util:()=>H,void:()=>BR});var Qc=ie(()=>{pa();Yc();gD();fn();RD();ha()});var Wt=ie(()=>{Qc();Qc()});async function Dt(e,t){let r=mn.get(e);if(r!==void 0)return r.value;let s=await t();return mn.set(e,{value:s,timestamp:Date.now()}),s}function ba(e){mn.delete(e)}function kD(e){for(let t of mn.keys())t.startsWith(e)&&mn.delete(t)}var mn,Ue,js=ie(()=>{"use strict";mn=new Map;Ue={CONFIG:"config",INSTRUCTIONS:"instructions",OUTPUT_FORMAT:"prompt:output-format",VALIDATION_PROMPT:"prompt:validation",GIT_STATUS:"git:status",SKILLS:"skills"}});function PD(e){return{...$D[e]}}function tf(e){return e==="openai"?"openai":"deepseek"}function BD(e){return e==="openai"?Re:ge}function uk(e,t){return e===Re?"openai":e===ge?"deepseek":tf(t.PLATFORM)}function lk(e){let t={};for(let r of e.split(`
193
+ `)){let s=r.trim();if(!s||s.startsWith("#"))continue;let i=s.indexOf("=");if(i===-1)continue;let n=s.slice(0,i).trim();n.startsWith("export ")&&(n=n.slice(7).trim());let o=s.slice(i+1).trim();(o.startsWith('"')&&o.endsWith('"')||o.startsWith("'")&&o.endsWith("'"))&&(o=o.slice(1,-1)),n&&!(n in process.env)&&(process.env[n]=o)}return t}function va(e){if(!ID){ID=!0;try{let t=(0,TD.join)(e||process.cwd(),".env"),r=(0,_D.readFileSync)(t,"utf-8");lk(r)}catch{}}}function Ge(e={}){va();let t=e.env??process.env,r=e.executorOverride||e.config?.executor,s=r===Re||r===ge?uk(r,t):tf(e.settings?.platform||e.config?.llm?.platform||t.PLATFORM),i=$D[s];return{platform:s,executor:r||BD(s),baseUrl:e.settings?.baseUrl||e.config?.llm?.baseUrl||t.BASE_URL||i.baseUrl,apiKey:e.settings?.apiKey||e.config?.llm?.apiKey||t.API_KEY||"",model:e.modelOverride||e.settings?.model||e.config?.llm?.model||t.MODEL||i.model}}function Us(e){return Ge({config:e})}function OD(){return va(),BD(tf(process.env.PLATFORM))}var _D,TD,Re,ge,qs,Er,ef,$D,ID,Ve=ie(()=>{"use strict";_D=require("node:fs"),TD=require("node:path"),Re="openai-compatible-api",ge="deepseek-api",qs=ge,Er=1800,ef=0,$D={deepseek:{baseUrl:"https://api.deepseek.com",model:"deepseek-v4-flash"},openai:{baseUrl:"https://api.openai.com/v1",model:"gpt-5.4-mini"}};ID=!1});function gn(){return process.env.BEST_REVIEW_CONFIG_DIR||(0,Ea.join)((0,MD.homedir)(),".best-review")}function yt(...e){return(0,Ea.join)(gn(),...e)}function Dn(){return yt("config.json")}function vk(){return yt("instructions.md")}function yn(){return nf.parse({})}async function Ca(e){try{return await(0,st.access)(e),!0}catch(t){if(t instanceof Error&&"code"in t&&t.code==="ENOENT")return!1;throw t}}async function Ck(e){if(!await Ca(e))return null;let r=await(0,st.readFile)(e,"utf-8");try{return JSON.parse(r)}catch(s){let i=s instanceof SyntaxError?s.message:String(s);throw new Error(`\u914D\u7F6E\u6587\u4EF6 JSON \u65E0\u6548 ${e}\uFF1A${i}`,{cause:s})}}function sf(e){return e==="opencode-cli"?qs:e}function Fk(e){if(!e)return;let t={};for(let[r,s]of Object.entries(e)){let i=sf(r);typeof i=="string"&&(t[i]={...t[i],...s})}return t}function Sk(e){return{...e,...sf(e.executor)!==void 0&&{executor:sf(e.executor)},executors:Fk(e.executors)}}function xk(e,t){let r=Sk(t);return{...e,...r.extends!==void 0&&{extends:r.extends},...r.excludePatterns!==void 0&&{excludePatterns:r.excludePatterns},...r.concurrency!==void 0&&{concurrency:r.concurrency},...r.executor!==void 0&&{executor:r.executor},llm:r.llm?{...e.llm,...r.llm}:e.llm,gitlab:r.gitlab?{...e.gitlab,...r.gitlab}:e.gitlab,executors:r.executors?Ak(e.executors,r.executors):e.executors,agents:r.agents?rf(e.agents,r.agents):e.agents,rules:r.rules?rf(e.rules,r.rules):e.rules,skills:r.skills?rf(e.skills,r.skills):e.skills,workflows:r.workflows??e.workflows,reporting:r.reporting?{...e.reporting,...r.reporting}:e.reporting,qualityScore:r.qualityScore?{...e.qualityScore,...r.qualityScore,weights:{...e.qualityScore.weights,...r.qualityScore.weights},categoryWeights:{...e.qualityScore.categoryWeights,...r.qualityScore.categoryWeights}}:e.qualityScore,output:r.output?{...e.output,...r.output}:e.output}}async function oe(e){let t=Ue.CONFIG;return Dt(t,async()=>{let r=yn(),s=await Ck(Dn());return s&&(r=nf.parse(xk(r,s))),r})}async function Fa(e){try{await(0,st.mkdir)(gn(),{recursive:!0}),await(0,st.writeFile)(Dn(),JSON.stringify(nf.parse(e),null,2)),Sa()}catch(t){throw new Error(`\u4FDD\u5B58\u5168\u5C40\u914D\u7F6E\u5931\u8D25\uFF1A${t}`)}}function Ak(e,t){let r={...e};for(let[s,i]of Object.entries(t))r[s]={...r[s],...i,review:i.review?{...r[s]?.review,...i.review}:r[s]?.review,validation:i.validation?{...r[s]?.validation,...i.validation}:r[s]?.validation};return r}function rf(e,t){let r={...e};for(let[s,i]of Object.entries(t))r[s]={...r[s],...i};return r}function Cr(){return Dn()}function of(e){return(0,Ea.join)(e,Ek)}async function af(){return Ca(Dn())}async function jD(e){return Ca(of(e))}function Sa(){kD(Ue.CONFIG),ba(Ue.INSTRUCTIONS)}async function xa(){return Dt(Ue.INSTRUCTIONS,async()=>{try{let e=vk();return await Ca(e)?await(0,st.readFile)(e,"utf-8"):""}catch{return""}})}async function qD(e,t,r){let s=Dn(),i={};try{let o=await(0,st.readFile)(s,"utf-8");i=JSON.parse(o)}catch{}let n=Array.isArray(i.extends)?i.extends.filter(o=>typeof o=="string"):[];i.extends=n,n.includes(e)||n.push(e),await(0,st.mkdir)(gn(),{recursive:!0}),await(0,st.writeFile)(s,JSON.stringify(i,null,2)),Sa()}var Ea,MD,st,LD,ck,ND,fk,dk,hk,pk,mk,gk,Dk,yk,wk,bk,nf,Ek,Ce=ie(()=>{"use strict";Wt();Ea=require("path"),MD=require("os"),st=require("node:fs/promises");js();Ve();LD=y.object({model:y.string().optional()}).strict(),ck=y.object({review:y.array(LD).optional(),validation:y.array(LD).optional()}),ND=y.object({model:y.string().optional(),timeout:y.number().positive().optional(),concurrency:y.number().min(1).max(10).optional(),batchSize:y.number().min(1).max(50).optional(),readinessPing:y.boolean().optional()}).strict(),fk=y.object({review:ND.optional(),validation:ND.optional()}).strict(),dk=y.object({platform:y.enum(["deepseek","openai"]).optional(),baseUrl:y.string().min(1).optional(),apiKey:y.string().optional(),model:y.string().min(1).optional()}).strict().default({}),hk=y.object({token:y.string().optional(),uploadEnabled:y.boolean().default(!1)}).passthrough().default({}),pk=y.object({enabled:y.boolean().optional(),url:y.string().url().optional(),token:y.string().optional(),localDir:y.string().default(()=>yt("reports")),includeDiffs:y.boolean().default(!1),failOnError:y.boolean().default(!1),historyEnabled:y.boolean().default(!1),historyRemote:y.string().optional(),historyBranch:y.string().optional()}).default({}),mk=y.object({critical:y.number().nonnegative().default(40),high:y.number().nonnegative().default(15),medium:y.number().nonnegative().default(6),low:y.number().nonnegative().default(2)}).strict().default({}),gk=y.object({security:y.number().positive().default(1.2),bug:y.number().positive().default(1),performance:y.number().positive().default(.8),quality:y.number().positive().default(.7),style:y.number().positive().default(.4),docs:y.number().positive().default(.3)}).strict().default({}),Dk=y.object({base:y.number().positive().default(100),min:y.number().min(0).default(0),weights:mk,categoryWeights:gk}).superRefine((e,t)=>{e.min>e.base&&t.addIssue({code:y.ZodIssueCode.custom,path:["min"],message:"qualityScore.min \u4E0D\u80FD\u5927\u4E8E qualityScore.base"})}).default({}),yk=y.object({enabled:y.boolean().optional(),model:y.string().optional(),timeout:y.number().positive().optional()}),wk=y.object({enabled:y.boolean().optional(),agent:y.string().optional()}),bk=y.object({enabled:y.boolean().optional()}).strict(),nf=y.object({extends:y.array(y.string()).default([]),excludePatterns:y.array(y.string()).default(["*.min.js","*.min.css","*.map","*.d.ts","dist/**","docs/**","*.md","build/**","out/**",".next/**","coverage/**","node_modules/**","vendor/**","*.generated.*","*.bundle.js"]),concurrency:y.number().min(1).max(10).default(2),executor:y.string().default(()=>OD()),llm:dk,gitlab:hk,executors:y.record(y.string(),fk).default({}),agents:y.record(y.string(),yk).default({}),rules:y.record(y.string(),wk).default({}),skills:y.record(y.string(),bk).default({}),workflows:ck.optional(),reporting:pk,qualityScore:Dk,output:y.object({colorize:y.boolean().default(!0),verbose:y.boolean().default(!1),format:y.enum(["terminal","markdown","json"]).default("terminal")}).default({})}).superRefine((e,t)=>{let r=[Re,ge];r.includes(e.executor)||t.addIssue({code:y.ZodIssueCode.custom,path:["executor"],message:`\u53EA\u652F\u6301\u6A21\u578B API executor\uFF1A${r.join(", ")}\u3002`});for(let s of Object.keys(e.executors))r.includes(s)||t.addIssue({code:y.ZodIssueCode.custom,path:["executors",s],message:`\u4E0D\u652F\u6301\u7684 executor\uFF1A${s}\u3002\u53EF\u7528\uFF1A${r.join(", ")}\u3002`})});Ek=".best-review.json"});function Aa(e){if(!e||typeof e!="string")return null;let t=e.lastIndexOf("#"),r,s;if(t!==-1){if(r=e.slice(0,t),s=e.slice(t+1),!s||s.includes("..")||s.includes("\0"))return null}else r=e;return _k(r)?{url:r,ref:s}:null}function _k(e){return Rk.test(e)||kk.test(e)||Ik.test(e)}function uf(e){let t=e.url;return t=t.replace(/^https?:\/\//,""),t=t.replace(/^git@/,""),t=t.replace(/^ssh:\/\//,""),t=t.replace(/\.git$/,""),t=t.replace(/[/:@]/g,"--"),e.ref&&(t=`${t}@${e.ref}`),t}function Ra(e){let t=e.url;return t.startsWith("git@")?t=t.replace(/^git@[^:]+:/,""):t=t.replace(/^https?:\/\/[^/]+\//,""),t=t.replace(/\.git$/,""),t}var Rk,kk,Ik,lf=ie(()=>{"use strict";Rk=/^https?:\/\/.+/,kk=/^git@.+:.+/,Ik=/^ssh:\/\/.+/});function wn(){return yt("extends")}function bn(){return yt("extends.lock.json")}function GD(e){return(0,UD.join)(wn(),uf(e))}function cf(e,t){return{ref:e,refString:t,localPath:GD(e)}}var UD,ka=ie(()=>{"use strict";UD=require("node:path");lf();Ce()});function Pk(){return bn()+".lock"}async function Bk(){let e=Pk(),t=Date.now();for(;;)try{return await(0,Oe.mkdir)(e),async()=>{try{await(0,Oe.rm)(e,{recursive:!0,force:!0})}catch{}}}catch(r){if(r.code==="EEXIST"){if(Date.now()-t>Tk){await(0,Oe.rm)(e,{recursive:!0,force:!0});continue}await new Promise(s=>setTimeout(s,$k));continue}throw r}}async function WD(e){let t=await Bk();try{return await e()}finally{await t()}}function Ok(){return{version:1,updated:new Date().toISOString(),packages:{}}}async function Ht(){let e=bn();try{await(0,Oe.access)(e);let t=await(0,Oe.readFile)(e,"utf-8"),r=JSON.parse(t);if(r.version!==1)throw new Error(`Unsupported lock file version: ${r.version}`);return r}catch(t){if(t.code==="ENOENT")return Ok();throw t}}async function HD(e){let t=bn();await(0,Oe.mkdir)((0,VD.dirname)(t),{recursive:!0}),e.updated=new Date().toISOString();let r=t+".tmp."+process.pid;await(0,Oe.writeFile)(r,JSON.stringify(e,null,2),"utf-8"),await(0,Oe.rename)(r,t)}async function KD(e){return(await Ht()).packages[e]||null}async function ff(e,t){await WD(async()=>{let r=await Ht();r.packages[e]=t,await HD(r)})}async function df(e){await WD(async()=>{let t=await Ht();delete t.packages[e],await HD(t)})}async function Ia(e){let t=await KD(e);if(!t)return!1;try{return await(0,Oe.access)(t.path),!0}catch{return!1}}var Oe,VD,Tk,$k,hf=ie(()=>{"use strict";Oe=require("node:fs/promises"),VD=require("node:path");ka();Tk=1e4,$k=100});function _a(e){let t=(0,it.resolve)(wn()),r=(0,it.resolve)(e),s=(0,it.relative)(t,r);if(s.startsWith("..")||(0,it.resolve)(t,s)!==r)throw new Error("Invalid extend path: path traversal detected");let i=s.split(/[/\\]/);for(let n of i)if(n==="."||n===".."||n.includes("\0"))throw new Error("Invalid extend path: suspicious path component")}async function pf(e){let{ref:t,localPath:r}=e;_a(r),await(0,Fr.mkdir)(wn(),{recursive:!0}),await(0,Fr.rm)(r,{recursive:!0,force:!0});let s=["clone","--depth","1"];t.ref&&s.push("--branch",t.ref),s.push(t.url,r);try{await zD("git",s,{timeout:6e4})}catch(n){let o=n instanceof Error?n.message:String(n);throw o.includes("not found")||o.includes("does not exist")?new Error(`Repository or ref not found: ${t.url}${t.ref?`#${t.ref}`:""}`):o.includes("Authentication failed")||o.includes("Permission denied")?new Error(`Authentication failed for: ${t.url}`):new Error(`Git clone failed: ${o}`)}let{stdout:i}=await zD("git",["rev-parse","HEAD"],{cwd:r});return await(0,Fr.rm)((0,it.join)(r,".git"),{recursive:!0,force:!0}),i.trim()}async function mf(e){let t={agents:[],rules:[]},r=(0,it.join)(e,"agents");try{let i=await Xe("*.md",{cwd:r});for(let n of i){let o=await JD((0,it.join)(r,n));o&&t.agents.push(o)}}catch{}let s=(0,it.join)(e,"rules");try{let i=await Xe("**/*.md",{cwd:s});for(let n of i){let o=await JD((0,it.join)(s,n));o&&t.rules.push(o)}}catch{}return t}async function JD(e){try{let t=await(0,Fr.readFile)(e,"utf-8");if(!t.startsWith("---"))return null;let r=t.indexOf("---",3);if(r===-1)return null;let i=t.slice(3,r).match(/^name:\s*(.+)$/m);return i&&i[1]?i[1].trim().replace(/^["']|["']$/g,""):null}catch{return null}}async function gf(e){_a(e),await(0,Fr.rm)(e,{recursive:!0,force:!0})}var Fr,it,YD,ZD,zD,Df=ie(()=>{"use strict";Fr=require("node:fs/promises"),it=require("node:path"),YD=require("node:child_process"),ZD=require("node:util");ka();Ti();zD=(0,ZD.promisify)(YD.execFile)});var yf={};pi(yf,{getInstalledExtendPaths:()=>vn,loadAgentsFromExtends:()=>XD,loadFromExtends:()=>ey,scanRuleRefsFromExtends:()=>QD});async function vn(e){let t=await Ht(),r=[];for(let s of e){let i=t.packages[s];i?(_a(i.path),r.push(i.path)):d.warn(`Extension not installed: ${s}. Run 'best-review extends install'`)}return r}async function XD(e){let t=await vn(e),r=[];for(let s of t){let i=(0,Ta.join)(s,"agents");try{let n=await En(i);r.push(...n.map(o=>({...o,source:"extends"})))}catch{}}return r}async function QD(e){let t=await vn(e),r=[];for(let s of t){let i=(0,Ta.join)(s,"rules");try{let n=await Gs(i,"extends");r.push(...n)}catch{}}return r}async function ey(e,t,r){let s=await vn(r),i=[];for(let n of s){let o=(0,Ta.join)(n,e);try{let a=await t(o);i.push(a)}catch{i.push([])}}return i}var Ta,$a=ie(()=>{"use strict";Ta=require("node:path");wf();Vs();hf();Df();M()});function is(e){if(!e||e.trim()==="")return{frontmatter:{},body:""};if(!e.startsWith("---"))return{frontmatter:{},body:e};let t=e.indexOf("---",3);if(t===-1)throw new Error("Invalid frontmatter: missing closing delimiter ---");let r=e.slice(3,t).trim(),s=e.slice(t+3).trim();if(!r)return{frontmatter:{},body:s};let i;try{i=ty.default.parse(r)}catch(n){throw new Error(`Invalid YAML in frontmatter: ${n instanceof Error?n.message:String(n)}`)}return{frontmatter:i,body:s}}function Pa(e,t){try{let{frontmatter:r,body:s}=is(e),i=t(r,s);return i?[i]:[]}catch(r){return d.error("Failed to parse markdown:",r),[]}}async function Cn(e,t){try{let r=await(0,bf.readFile)(e,"utf-8");return t?Pa(r,t):is(r)}catch(r){throw r instanceof Error?new Error(`Failed to load markdown file "${e}": ${r.message}`):new Error(`Failed to load markdown file "${e}": Unknown error`)}}async function ry(e,t,r){try{let s=await Xe("**/*.md",{cwd:e});if(s.length===0)return[];let i=[];for(let o of s){let a=(0,Ws.join)(e,o);try{let u=await Cn(a,t);i.push(...u)}catch(u){d.error(`Error processing file ${o}:`,u)}}let n=r?r(i):i;return d.info(`Loaded ${n.length} items from ${s.length} files in ${e} (recursive)`),n}catch{return[]}}function sy(...e){let t=new Map;for(let r of e)for(let s of r)t.set(s.name,s);return Array.from(t.values())}function Ba(e){return{defaults:(0,Ws.join)(Kc(),e),user:(0,Ws.join)(gn(),e)}}async function iy(e,t,r){let s=Ba(e),[i,n]=await Promise.all([t(s.defaults),t(s.user)]);return sy(i,n)}async function Gs(e,t){try{let r=await Xe("**/*.md",{cwd:e}),s=await Promise.all(r.map(async n=>{let o=(0,Ws.join)(e,n);try{let a=await(0,bf.readFile)(o,"utf-8");return{filePath:o,content:a}}catch{return null}})),i=[];for(let n of s)if(n)try{let{frontmatter:o}=is(n.content),a=o.name,u=o.description,l=o.agent,c=o.patterns,f=o.version;typeof a=="string"&&typeof l=="string"&&Array.isArray(c)&&c.length>0&&i.push({name:a,description:typeof u=="string"?u:"",path:n.filePath,patterns:c.filter(h=>typeof h=="string"),agent:l,source:t,...typeof f=="string"||typeof f=="number"?{version:String(f)}:{}})}catch{}return i}catch{return[]}}async function ny(e){let t=Ba("rules"),[r,s]=await Promise.all([Gs(t.defaults,"defaults"),Gs(t.user,"user")]),i=new Map;for(let n of[...r,...s])i.set(n.name,n);return Array.from(i.values())}async function oy(e,t,r,s){let i=Ba(e),{loadFromExtends:n}=await Promise.resolve().then(()=>($a(),yf)),[o,a,u]=await Promise.all([t(i.defaults),n(e,t,s),t(i.user)]);return sy(o,...a,u)}async function ay(e,t){let r=Ba("rules"),{scanRuleRefsFromExtends:s}=await Promise.resolve().then(()=>($a(),yf)),[i,n,o]=await Promise.all([Gs(r.defaults,"defaults"),s(t),Gs(r.user,"user")]),a=new Map;for(let u of[...i,...n,...o])a.set(u.name,u);return Array.from(a.values())}var bf,Ws,ty,Vs=ie(()=>{"use strict";M();Ti();bf=require("node:fs/promises"),Ws=require("node:path"),ty=bt(Wc(),1);da();Ce()});function Lk(e,t){let r=e.name;if(typeof r!="string")return null;let s=t.trim();if(!s)return null;let i=e.executorSettings&&typeof e.executorSettings=="object"&&!Array.isArray(e.executorSettings)?e.executorSettings:void 0,n=e.stage==="validation"?"validation":"review",o=typeof e.version=="string"||typeof e.version=="number"?String(e.version):void 0;return{name:r,description:typeof e.description=="string"?e.description:"",systemPrompt:s,enabled:typeof e.enabled=="boolean"?e.enabled:!0,order:typeof e.order=="number"?e.order:0,...o&&{version:o},...typeof e.executor=="string"&&{executor:e.executor},stage:n,...i&&{executorSettings:i}}}async function En(e){let{glob:t}=await Promise.resolve().then(()=>(Ti(),xp)),{join:r}=await import("node:path");try{let s=await t("*.md",{cwd:e}),i=[],n=[],o=await Promise.all(s.map(async a=>{let u=r(e,a);try{return{agents:(await Cn(u,Lk)).map(c=>({...c,path:u})),failed:null}}catch(l){return d.error(`Error loading agent from ${a}:`,l),{agents:[],failed:a}}}));return i.push(...o.flatMap(a=>a.agents)),n.push(...o.map(a=>a.failed).filter(a=>a!==null)),n.length>0&&d.warn(`Loaded ${i.length}/${s.length} agents, ${n.length} failed: ${n.join(", ")}`),i}catch(s){if(s.code==="ENOENT")return[];throw s}}var wf=ie(()=>{"use strict";Vs();M()});var Ly={};pi(Ly,{expandBraces:()=>Af,loadRuleFromRef:()=>Sf,loadRuleMarkdown:()=>cI,loadRuleRefs:()=>Tt,loadRules:()=>hI,loadRulesFromDirectoryRecursive:()=>fI,loadRulesFromRefs:()=>Py,matchAndLoadRules:()=>xf,matchPattern:()=>Ar,matchRuleRefs:()=>Oy,matchRules:()=>pI,parseRuleMarkdown:()=>$y,parseSingleRule:()=>dI});function Ff(e,t){let r=e.name,s=e.agent,i=e.patterns,n=t.trim(),o=typeof e.version=="string"||typeof e.version=="number"?String(e.version):void 0;return typeof r!="string"||typeof s!="string"||!Array.isArray(i)||i.length===0||!n?null:{name:r,description:typeof e.description=="string"?e.description:"",patterns:i.filter(u=>typeof u=="string"),agent:s,prompt:n,...o&&{version:o}}}function $y(e){return Pa(e,Ff)}async function cI(e){try{return await Cn(e,Ff)}catch(t){return d.error(`Error loading rule markdown from ${e}:`,t),[]}}async function fI(e){return ry(e,Ff)}function dI(e){let t=$y(e);return t.length>0?t[0]??null:null}async function Tt(e){let t=e||process.cwd(),r=await oe(t);return(r.extends.length>0?await ay(t,r.extends):await ny(t)).map(i=>{let n=r.rules[i.name]||{};return{...i,agent:n.agent??i.agent,_enabled:n.enabled??!0}}).filter(i=>i._enabled!==!1).map(({_enabled:i,...n})=>n)}async function Sf(e){try{let t=await(0,Ty.readFile)(e.path,"utf-8"),{body:r}=is(t);return{name:e.name,description:e.description,patterns:e.patterns,agent:e.agent,prompt:r.trim(),...e.version&&{version:e.version},source:e.source,path:e.path}}catch(t){return d.error(`\u52A0\u8F7D\u89C4\u5219\u5931\u8D25 ${e.path}\uFF1A`,t),null}}async function Py(e){return(await Promise.all(e.map(Sf))).filter(r=>r!==null)}async function hI(e){let t=await Tt(e);return Py(t)}function By(e,t,r){let s=new Map(r.map(n=>[n.name,n])),i=[];for(let n of e){let o=s.get(n.agent);if(!o){d.warn(`\u89C4\u5219\u5F15\u7528\u4E86\u4E0D\u5B58\u5728\u7684 Agent\uFF1A"${n.agent}"`);continue}let a=t.filter(u=>n.patterns.some(l=>Ar(u.file,l))).map(u=>u.file);a.length!==0&&i.push({item:n,files:a,agent:o})}return i}function Oy(e,t,r){return By(e,t,r).map(({item:s,...i})=>({ref:s,...i}))}async function xf(e,t,r){let s=Oy(e,t,r);return(await Promise.all(s.map(async({ref:n,files:o,agent:a})=>{let u=await Sf(n);return u?{rule:u,files:o,agent:a}:null}))).filter(n=>n!==null)}function pI(e,t,r){return By(e,t,r).map(({item:s,...i})=>({rule:s,...i}))}function Af(e){let t=e.match(mI);if(!t||t.index===void 0||!t[1])return[e];let r=t[1].split(",").map(o=>o.trim()),s=e.substring(0,t.index),i=e.substring(t.index+t[0].length),n=[];for(let o of r){let a=s+o+i;n.push(...Af(a))}return n}function Ar(e,t){return Af(t).some(s=>gI(e,s))}function gI(e,t){let r=t.replace(/\*\*/g,"\0DOUBLESTAR\0").replace(/\*/g,"\0STAR\0").replace(/\?/g,"\0QUESTION\0");r=r.replace(/[.+^${}()|[\]\\]/g,"\\$&"),r=r.replace(/\x00DOUBLESTAR\x00\//g,"(?:.*\\/)?").replace(/\x00DOUBLESTAR\x00/g,".*").replace(/\x00STAR\x00/g,"[^/]*").replace(/\x00QUESTION\x00/g,".");let s=_y.get(r);return s||(s=new RegExp(`^${r}$`),_y.set(r,s)),s.test(e)}var Ty,mI,_y,Rr=ie(()=>{"use strict";Vs();Ty=require("node:fs/promises");M();Ce();mI=/\{([^}]+)\}/;_y=new Map});var Se={silent:Number.NEGATIVE_INFINITY,fatal:0,error:0,warn:1,log:2,info:3,success:3,fail:3,ready:3,start:3,box:3,debug:4,trace:5,verbose:Number.POSITIVE_INFINITY},vu={silent:{level:-1},fatal:{level:Se.fatal},error:{level:Se.error},warn:{level:Se.warn},log:{level:Se.log},info:{level:Se.info},success:{level:Se.success},fail:{level:Se.fail},ready:{level:Se.info},start:{level:Se.info},box:{level:Se.info},debug:{level:Se.debug},trace:{level:Se.trace},verbose:{level:Se.verbose}};function yu(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)==="[object Module]":!0}function Eu(e,t,r=".",s){if(!yu(t))return Eu(e,{},r,s);let i=Object.assign({},t);for(let n in e){if(n==="__proto__"||n==="constructor")continue;let o=e[n];o!=null&&(s&&s(i,n,o,r)||(Array.isArray(o)&&Array.isArray(i[n])?i[n]=[...o,...i[n]]:yu(o)&&yu(i[n])?i[n]=Eu(o,i[n],(r?`${r}.`:"")+n.toString(),s):i[n]=o))}return i}function Gv(e){return(...t)=>t.reduce((r,s)=>Eu(r,s,"",e),{})}var Vv=Gv();function Wv(e){return Object.prototype.toString.call(e)==="[object Object]"}function Hv(e){return!(!Wv(e)||!e.message&&!e.args||e.stack)}var wu=!1,xd=[],ye=class e{options;_lastLog;_mockFn;constructor(t={}){let r=t.types||vu;this.options=Vv({...t,defaults:{...t.defaults},level:bu(t.level,r),reporters:[...t.reporters||[]]},{types:vu,throttle:1e3,throttleMin:5,formatOptions:{date:!0,colors:!1,compact:!0}});for(let s in r){let i={type:s,...this.options.defaults,...r[s]};this[s]=this._wrapLogFn(i),this[s].raw=this._wrapLogFn(i,!0)}this.options.mockFn&&this.mockTypes(),this._lastLog={}}get level(){return this.options.level}set level(t){this.options.level=bu(t,this.options.types,this.options.level)}prompt(t,r){if(!this.options.prompt)throw new Error("prompt is not supported!");return this.options.prompt(t,r)}create(t){let r=new e({...this.options,...t});return this._mockFn&&r.mockTypes(this._mockFn),r}withDefaults(t){return this.create({...this.options,defaults:{...this.options.defaults,...t}})}withTag(t){return this.withDefaults({tag:this.options.defaults.tag?this.options.defaults.tag+":"+t:t})}addReporter(t){return this.options.reporters.push(t),this}removeReporter(t){if(t){let r=this.options.reporters.indexOf(t);if(r!==-1)return this.options.reporters.splice(r,1)}else this.options.reporters.splice(0);return this}setReporters(t){return this.options.reporters=Array.isArray(t)?t:[t],this}wrapAll(){this.wrapConsole(),this.wrapStd()}restoreAll(){this.restoreConsole(),this.restoreStd()}wrapConsole(){for(let t in this.options.types)console["__"+t]||(console["__"+t]=console[t]),console[t]=this[t].raw}restoreConsole(){for(let t in this.options.types)console["__"+t]&&(console[t]=console["__"+t],delete console["__"+t])}wrapStd(){this._wrapStream(this.options.stdout,"log"),this._wrapStream(this.options.stderr,"log")}_wrapStream(t,r){t&&(t.__write||(t.__write=t.write),t.write=s=>{this[r].raw(String(s).trim())})}restoreStd(){this._restoreStream(this.options.stdout),this._restoreStream(this.options.stderr)}_restoreStream(t){t&&t.__write&&(t.write=t.__write,delete t.__write)}pauseLogs(){wu=!0}resumeLogs(){wu=!1;let t=xd.splice(0);for(let r of t)r[0]._logFn(r[1],r[2])}mockTypes(t){let r=t||this.options.mockFn;if(this._mockFn=r,typeof r=="function")for(let s in this.options.types)this[s]=r(s,this.options.types[s])||this[s],this[s].raw=this[s]}_wrapLogFn(t,r){return(...s)=>{if(wu){xd.push([this,t,s,r]);return}return this._logFn(t,s,r)}}_logFn(t,r,s){if((t.level||0)>this.level)return!1;let i={date:new Date,args:[],...t,level:bu(t.level,this.options.types)};!s&&r.length===1&&Hv(r[0])?Object.assign(i,r[0]):i.args=[...r],i.message&&(i.args.unshift(i.message),delete i.message),i.additional&&(Array.isArray(i.additional)||(i.additional=i.additional.split(`
194
194
  `)),i.args.push(`
195
195
  `+i.additional.join(`
196
- `)),delete i.additional),i.type=typeof i.type=="string"?i.type.toLowerCase():"log",i.tag=typeof i.tag=="string"?i.tag:"";let n=(a=!1)=>{let u=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&u>0){let l=[...this._lastLog.object.args];u>1&&l.push(`(repeated ${u} times)`),this._log({...this._lastLog.object,args:l}),this._lastLog.count=1}a&&(this._lastLog.object=i,this._log(i))};clearTimeout(this._lastLog.timeout);let o=this._lastLog.time&&i.date?i.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=i.date,o<this.options.throttle)try{let a=JSON.stringify([i.type,i.tag,i.args]),u=this._lastLog.serialized===a;if(this._lastLog.serialized=a,u&&(this._lastLog.count=(this._lastLog.count||0)+1,this._lastLog.count>this.options.throttleMin)){this._lastLog.timeout=setTimeout(n,this.options.throttle);return}}catch{}n(!0)}_log(t){for(let r of this.options.reporters)r.log(t,{options:this.options})}};function bu(e,t={},r=3){return e===void 0?r:typeof e=="number"?e:t[e]&&t[e].level!==void 0?t[e].level:r}De.prototype.add=De.prototype.addReporter;De.prototype.remove=De.prototype.removeReporter;De.prototype.clear=De.prototype.removeReporter;De.prototype.withScope=De.prototype.withTag;De.prototype.mock=De.prototype.mockTypes;De.prototype.pause=De.prototype.pauseLogs;De.prototype.resume=De.prototype.resumeLogs;function xd(e={}){return new De(e)}var Fu=require("node:util"),Ad=require("node:path");function Su(e,t){let r=process.cwd()+Ad.sep;return e.split(`
196
+ `)),delete i.additional),i.type=typeof i.type=="string"?i.type.toLowerCase():"log",i.tag=typeof i.tag=="string"?i.tag:"";let n=(a=!1)=>{let u=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&u>0){let l=[...this._lastLog.object.args];u>1&&l.push(`(repeated ${u} times)`),this._log({...this._lastLog.object,args:l}),this._lastLog.count=1}a&&(this._lastLog.object=i,this._log(i))};clearTimeout(this._lastLog.timeout);let o=this._lastLog.time&&i.date?i.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=i.date,o<this.options.throttle)try{let a=JSON.stringify([i.type,i.tag,i.args]),u=this._lastLog.serialized===a;if(this._lastLog.serialized=a,u&&(this._lastLog.count=(this._lastLog.count||0)+1,this._lastLog.count>this.options.throttleMin)){this._lastLog.timeout=setTimeout(n,this.options.throttle);return}}catch{}n(!0)}_log(t){for(let r of this.options.reporters)r.log(t,{options:this.options})}};function bu(e,t={},r=3){return e===void 0?r:typeof e=="number"?e:t[e]&&t[e].level!==void 0?t[e].level:r}ye.prototype.add=ye.prototype.addReporter;ye.prototype.remove=ye.prototype.removeReporter;ye.prototype.clear=ye.prototype.removeReporter;ye.prototype.withScope=ye.prototype.withTag;ye.prototype.mock=ye.prototype.mockTypes;ye.prototype.pause=ye.prototype.pauseLogs;ye.prototype.resume=ye.prototype.resumeLogs;function Ad(e={}){return new ye(e)}var Fu=require("node:util"),Rd=require("node:path");function Su(e,t){let r=process.cwd()+Rd.sep;return e.split(`
197
197
  `).splice(t.split(`
198
- `).length).map(i=>i.trim().replace("file://","").replace(r,""))}function Gv(e,t){return(t.__write||t.write).call(t,e)}var Cu=e=>e?`[${e}]`:"",pi=class{formatStack(t,r,s){let i=" ".repeat((s?.errorLevel||0)+1);return i+Su(t,r).join(`
198
+ `).length).map(i=>i.trim().replace("file://","").replace(r,""))}function Kv(e,t){return(t.__write||t.write).call(t,e)}var Cu=e=>e?`[${e}]`:"",mi=class{formatStack(t,r,s){let i=" ".repeat((s?.errorLevel||0)+1);return i+Su(t,r).join(`
199
199
  ${i}`)}formatError(t,r){let s=t.message??(0,Fu.formatWithOptions)(r,t),i=t.stack?this.formatStack(t.stack,s,r):"",n=r?.errorLevel||0,o=n>0?`${" ".repeat(n)}[cause]: `:"",a=t.cause?`
200
200
 
201
201
  `+this.formatError(t.cause,{...r,errorLevel:n+1}):"";return o+s+`
@@ -203,32 +203,32 @@ ${i}`)}formatError(t,r){let s=t.message??(0,Fu.formatWithOptions)(r,t),i=t.stack
203
203
  `+[Cu(t.tag),t.title&&t.title,...s.split(`
204
204
  `)].filter(Boolean).map(i=>" > "+i).join(`
205
205
  `)+`
206
- `:this.filterAndJoin([Cu(t.type),Cu(t.tag),s])}log(t,r){let s=this.formatLogObj(t,{columns:r.options.stdout.columns||0,...r.options.formatOptions});return Gv(s+`
207
- `,t.level<2?r.options.stderr||process.stderr:r.options.stdout||process.stdout)}};var Mu=bt(require("node:process"),1);var Un=bt(require("node:tty"),1),{env:Qt={},argv:Id=[],platform:Vv=""}=typeof process>"u"?{}:process,Wv="NO_COLOR"in Qt||Id.includes("--no-color"),Kv="FORCE_COLOR"in Qt||Id.includes("--color"),Hv=Vv==="win32",_d=Qt.TERM==="dumb",zv=Un&&Un.isatty&&Un.isatty(1)&&Qt.TERM&&!_d,Jv="CI"in Qt&&("GITHUB_ACTIONS"in Qt||"GITLAB_CI"in Qt||"CIRCLECI"in Qt),Yv=!Wv&&(Kv||Hv&&!_d||zv||Jv);function Td(e,t,r,s,i=t.slice(0,Math.max(0,e))+s,n=t.slice(Math.max(0,e+r.length)),o=n.indexOf(r)){return i+(o<0?n:Td(o,n,r,s))}function Zv(e,t,r,s,i){return e<0?r+t+s:r+Td(e,t,s,i)+s}function Xv(e,t,r=e,s=e.length+1){return i=>i||!(i===""||i===void 0)?Zv((""+i).indexOf(t,s),i,e,t,r):""}function G(e,t,r){return Xv(`\x1B[${e}m`,`\x1B[${t}m`,r)}var Rd={reset:G(0,0),bold:G(1,22,"\x1B[22m\x1B[1m"),dim:G(2,22,"\x1B[22m\x1B[2m"),italic:G(3,23),underline:G(4,24),inverse:G(7,27),hidden:G(8,28),strikethrough:G(9,29),black:G(30,39),red:G(31,39),green:G(32,39),yellow:G(33,39),blue:G(34,39),magenta:G(35,39),cyan:G(36,39),white:G(37,39),gray:G(90,39),bgBlack:G(40,49),bgRed:G(41,49),bgGreen:G(42,49),bgYellow:G(43,49),bgBlue:G(44,49),bgMagenta:G(45,49),bgCyan:G(46,49),bgWhite:G(47,49),blackBright:G(90,39),redBright:G(91,39),greenBright:G(92,39),yellowBright:G(93,39),blueBright:G(94,39),magentaBright:G(95,39),cyanBright:G(96,39),whiteBright:G(97,39),bgBlackBright:G(100,49),bgRedBright:G(101,49),bgGreenBright:G(102,49),bgYellowBright:G(103,49),bgBlueBright:G(104,49),bgMagentaBright:G(105,49),bgCyanBright:G(106,49),bgWhiteBright:G(107,49)};function Qv(e=Yv){return e?Rd:Object.fromEntries(Object.keys(Rd).map(t=>[t,String]))}var ee=Qv();function $d(e,t="reset"){return ee[e]||ee[t]}var eE=[String.raw`[\u001B\u009B][[\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\d\/#&.:=?%@~_]+)*|[a-zA-Z\d]+(?:;[-a-zA-Z\d\/#&.:=?%@~_]*)*)?\u0007)`,String.raw`(?:(?:\d{1,4}(?:;\d{0,4})*)?[\dA-PR-TZcf-nq-uy=><~]))`].join("|");function Ot(e){return e.replace(new RegExp(eE,"g"),"")}var kd={solid:{tl:"\u250C",tr:"\u2510",bl:"\u2514",br:"\u2518",h:"\u2500",v:"\u2502"},double:{tl:"\u2554",tr:"\u2557",bl:"\u255A",br:"\u255D",h:"\u2550",v:"\u2551"},doubleSingle:{tl:"\u2553",tr:"\u2556",bl:"\u2559",br:"\u255C",h:"\u2500",v:"\u2551"},doubleSingleRounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2500",v:"\u2551"},singleThick:{tl:"\u250F",tr:"\u2513",bl:"\u2517",br:"\u251B",h:"\u2501",v:"\u2503"},singleDouble:{tl:"\u2552",tr:"\u2555",bl:"\u2558",br:"\u255B",h:"\u2550",v:"\u2502"},singleDoubleRounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2550",v:"\u2502"},rounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2500",v:"\u2502"}},tE={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1};function xu(e,t={}){let r={...t,style:{...tE,...t.style}},s=e.split(`
208
- `),i=[],n=$d(r.style.borderColor),o={...typeof r.style.borderStyle=="string"?kd[r.style.borderStyle]||kd.solid:r.style.borderStyle};if(n)for(let p in o)o[p]=n(o[p]);let a=r.style.padding%2===0?r.style.padding:r.style.padding+1,u=s.length+a,l=Math.max(...s.map(p=>Ot(p).length),r.title?Ot(r.title).length:0)+a,c=l+a,f=r.style.marginLeft>0?" ".repeat(r.style.marginLeft):"";if(r.style.marginTop>0&&i.push("".repeat(r.style.marginTop)),r.title){let p=n?n(r.title):r.title,m=o.h.repeat(Math.floor((l-Ot(r.title).length)/2)),g=o.h.repeat(l-Ot(r.title).length-Ot(m).length+a);i.push(`${f}${o.tl}${m}${p}${g}${o.tr}`)}else i.push(`${f}${o.tl}${o.h.repeat(c)}${o.tr}`);let h=r.style.valign==="center"?Math.floor((u-s.length)/2):r.style.valign==="top"?u-s.length-a:u-s.length;for(let p=0;p<u;p++)if(p<h||p>=h+s.length)i.push(`${f}${o.v}${" ".repeat(c)}${o.v}`);else{let m=s[p-h],g=" ".repeat(a),D=" ".repeat(l-Ot(m).length);i.push(`${f}${o.v}${g}${m}${D}${o.v}`)}return i.push(`${f}${o.bl}${o.h.repeat(c)}${o.br}`),r.style.marginBottom>0&&i.push("".repeat(r.style.marginBottom)),i.join(`
209
- `)}var CB=require("node:util"),FB=require("node:path"),SB=require("node:tty"),xC={},Jn=Object.create(null),gi=e=>globalThis.process?.env||xC.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?Jn:globalThis),er=new Proxy(Jn,{get(e,t){return gi()[t]??Jn[t]},has(e,t){let r=gi();return t in r||t in Jn},set(e,t,r){let s=gi(!0);return s[t]=r,!0},deleteProperty(e,t){if(!t)return!1;let r=gi(!0);return delete r[t],!0},ownKeys(){let e=gi(!0);return Object.keys(e)}}),UE=typeof process<"u"&&process.env&&process.env.NODE_ENV||"",GE=[["APPVEYOR"],["AWS_AMPLIFY","AWS_APP_ID",{ci:!0}],["AZURE_PIPELINES","SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"],["AZURE_STATIC","INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN"],["APPCIRCLE","AC_APPCIRCLE"],["BAMBOO","bamboo_planKey"],["BITBUCKET","BITBUCKET_COMMIT"],["BITRISE","BITRISE_IO"],["BUDDY","BUDDY_WORKSPACE_ID"],["BUILDKITE"],["CIRCLE","CIRCLECI"],["CIRRUS","CIRRUS_CI"],["CLOUDFLARE_PAGES","CF_PAGES",{ci:!0}],["CODEBUILD","CODEBUILD_BUILD_ARN"],["CODEFRESH","CF_BUILD_ID"],["DRONE"],["DRONE","DRONE_BUILD_EVENT"],["DSARI"],["GITHUB_ACTIONS"],["GITLAB","GITLAB_CI"],["GITLAB","CI_MERGE_REQUEST_ID"],["GOCD","GO_PIPELINE_LABEL"],["LAYERCI"],["HUDSON","HUDSON_URL"],["JENKINS","JENKINS_URL"],["MAGNUM"],["NETLIFY"],["NETLIFY","NETLIFY_LOCAL",{ci:!1}],["NEVERCODE"],["RENDER"],["SAIL","SAILCI"],["SEMAPHORE"],["SCREWDRIVER"],["SHIPPABLE"],["SOLANO","TDDIUM"],["STRIDER"],["TEAMCITY","TEAMCITY_VERSION"],["TRAVIS"],["VERCEL","NOW_BUILDER"],["VERCEL","VERCEL",{ci:!1}],["VERCEL","VERCEL_ENV",{ci:!1}],["APPCENTER","APPCENTER_BUILD_ID"],["CODESANDBOX","CODESANDBOX_SSE",{ci:!1}],["CODESANDBOX","CODESANDBOX_HOST",{ci:!1}],["STACKBLITZ"],["STORMKIT"],["CLEAVR"],["ZEABUR"],["CODESPHERE","CODESPHERE_APP_ID",{ci:!0}],["RAILWAY","RAILWAY_PROJECT_ID"],["RAILWAY","RAILWAY_SERVICE_ID"],["DENO-DEPLOY","DENO_DEPLOYMENT_ID"],["FIREBASE_APP_HOSTING","FIREBASE_APP_HOSTING",{ci:!0}]];function VE(){if(globalThis.process?.env)for(let e of GE){let t=e[1]||e[0];if(globalThis.process?.env[t])return{name:e[0].toLowerCase(),...e[2]}}return globalThis.process?.env?.SHELL==="/bin/jsh"&&globalThis.process?.versions?.webcontainer?{name:"stackblitz",ci:!1}:{name:"",ci:!1}}var oh=VE();oh.name;function Tr(e){return e?e!=="false":!1}var WE=globalThis.process?.platform||"",qu=Tr(er.CI)||oh.ci!==!1,ah=Tr(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),KE=Tr(er.DEBUG),Uu=UE==="test"||Tr(er.TEST);Tr(er.MINIMAL);var HE=/^win/i.test(WE);!Tr(er.NO_COLOR)&&(Tr(er.FORCE_COLOR)||(ah||HE)&&er.TERM);var zE=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(zE?.split(".")[0]);var JE=globalThis.process||Object.create(null),sh={versions:{}};new Proxy(JE,{get(e,t){if(t==="env")return er;if(t in e)return e[t];if(t in sh)return sh[t]}});var YE=globalThis.process?.release?.name==="node",ZE=!!globalThis.Bun||!!globalThis.process?.versions?.bun,XE=!!globalThis.Deno,QE=!!globalThis.fastly,eC=!!globalThis.Netlify,tC=!!globalThis.EdgeRuntime,rC=globalThis.navigator?.userAgent==="Cloudflare-Workers",sC=[[eC,"netlify"],[tC,"edge-light"],[rC,"workerd"],[QE,"fastly"],[XE,"deno"],[ZE,"bun"],[YE,"node"]];function iC(){let e=sC.find(t=>t[0]);if(e)return{name:e[1]}}var nC=iC();nC?.name;function oC({onlyFirst:e=!1}={}){let r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}var aC=oC();function uC(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(aC,"")}function lC(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function cC(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function fC(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}function dC(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function hC(e,{ambiguousAsWide:t=!1}={}){return dC(e),cC(e)||fC(e)||t&&lC(e)?2:1}var pC=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g,mC=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:e=>e.split("")},gC=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function DC(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:r=!0,countAnsiEscapeCodes:s=!1}=t;if(s||(e=uC(e)),e.length===0)return 0;let i=0,n={ambiguousAsWide:!r};for(let{segment:o}of mC.segment(e)){let a=o.codePointAt(0);if(!(a<=31||a>=127&&a<=159)&&!(a>=8203&&a<=8207||a===65279)&&!(a>=768&&a<=879||a>=6832&&a<=6911||a>=7616&&a<=7679||a>=8400&&a<=8447||a>=65056&&a<=65071)&&!(a>=55296&&a<=57343)&&!(a>=65024&&a<=65039)&&!gC.test(o)){if(pC().test(o)){i+=2;continue}i+=hC(a,n)}}return i}function yC(){let{env:e}=Mu.default,{TERM:t,TERM_PROGRAM:r}=e;return Mu.default.platform!=="win32"?t!=="linux":!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask==="{cmd::Cmder}"||r==="Terminus-Sublime"||r==="vscode"||t==="xterm-256color"||t==="alacritty"||t==="rxvt-unicode"||t==="rxvt-unicode-256color"||e.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var wC={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},bC={0:"red",1:"yellow"},vC=yC(),vt=(e,t)=>vC?e:t,ih={error:vt("\u2716","\xD7"),fatal:vt("\u2716","\xD7"),ready:vt("\u2714","\u221A"),warn:vt("\u26A0","\u203C"),info:vt("\u2139","i"),success:vt("\u2714","\u221A"),debug:vt("\u2699","D"),trace:vt("\u2192","\u2192"),fail:vt("\u2716","\xD7"),start:vt("\u25D0","o"),log:""};function nh(e){return!(typeof Intl=="object")||!Intl.Segmenter?Ot(e).length:DC(e)}var ju=class extends pi{formatStack(t,r,s){let i=" ".repeat((s?.errorLevel||0)+1);return`
206
+ `:this.filterAndJoin([Cu(t.type),Cu(t.tag),s])}log(t,r){let s=this.formatLogObj(t,{columns:r.options.stdout.columns||0,...r.options.formatOptions});return Kv(s+`
207
+ `,t.level<2?r.options.stderr||process.stderr:r.options.stdout||process.stdout)}};var Mu=bt(require("node:process"),1);var Un=bt(require("node:tty"),1),{env:er={},argv:_d=[],platform:zv=""}=typeof process>"u"?{}:process,Jv="NO_COLOR"in er||_d.includes("--no-color"),Yv="FORCE_COLOR"in er||_d.includes("--color"),Zv=zv==="win32",Td=er.TERM==="dumb",Xv=Un&&Un.isatty&&Un.isatty(1)&&er.TERM&&!Td,Qv="CI"in er&&("GITHUB_ACTIONS"in er||"GITLAB_CI"in er||"CIRCLECI"in er),eE=!Jv&&(Yv||Zv&&!Td||Xv||Qv);function $d(e,t,r,s,i=t.slice(0,Math.max(0,e))+s,n=t.slice(Math.max(0,e+r.length)),o=n.indexOf(r)){return i+(o<0?n:$d(o,n,r,s))}function tE(e,t,r,s,i){return e<0?r+t+s:r+$d(e,t,s,i)+s}function rE(e,t,r=e,s=e.length+1){return i=>i||!(i===""||i===void 0)?tE((""+i).indexOf(t,s),i,e,t,r):""}function G(e,t,r){return rE(`\x1B[${e}m`,`\x1B[${t}m`,r)}var kd={reset:G(0,0),bold:G(1,22,"\x1B[22m\x1B[1m"),dim:G(2,22,"\x1B[22m\x1B[2m"),italic:G(3,23),underline:G(4,24),inverse:G(7,27),hidden:G(8,28),strikethrough:G(9,29),black:G(30,39),red:G(31,39),green:G(32,39),yellow:G(33,39),blue:G(34,39),magenta:G(35,39),cyan:G(36,39),white:G(37,39),gray:G(90,39),bgBlack:G(40,49),bgRed:G(41,49),bgGreen:G(42,49),bgYellow:G(43,49),bgBlue:G(44,49),bgMagenta:G(45,49),bgCyan:G(46,49),bgWhite:G(47,49),blackBright:G(90,39),redBright:G(91,39),greenBright:G(92,39),yellowBright:G(93,39),blueBright:G(94,39),magentaBright:G(95,39),cyanBright:G(96,39),whiteBright:G(97,39),bgBlackBright:G(100,49),bgRedBright:G(101,49),bgGreenBright:G(102,49),bgYellowBright:G(103,49),bgBlueBright:G(104,49),bgMagentaBright:G(105,49),bgCyanBright:G(106,49),bgWhiteBright:G(107,49)};function sE(e=eE){return e?kd:Object.fromEntries(Object.keys(kd).map(t=>[t,String]))}var ee=sE();function Pd(e,t="reset"){return ee[e]||ee[t]}var iE=[String.raw`[\u001B\u009B][[\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\d\/#&.:=?%@~_]+)*|[a-zA-Z\d]+(?:;[-a-zA-Z\d\/#&.:=?%@~_]*)*)?\u0007)`,String.raw`(?:(?:\d{1,4}(?:;\d{0,4})*)?[\dA-PR-TZcf-nq-uy=><~]))`].join("|");function Ot(e){return e.replace(new RegExp(iE,"g"),"")}var Id={solid:{tl:"\u250C",tr:"\u2510",bl:"\u2514",br:"\u2518",h:"\u2500",v:"\u2502"},double:{tl:"\u2554",tr:"\u2557",bl:"\u255A",br:"\u255D",h:"\u2550",v:"\u2551"},doubleSingle:{tl:"\u2553",tr:"\u2556",bl:"\u2559",br:"\u255C",h:"\u2500",v:"\u2551"},doubleSingleRounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2500",v:"\u2551"},singleThick:{tl:"\u250F",tr:"\u2513",bl:"\u2517",br:"\u251B",h:"\u2501",v:"\u2503"},singleDouble:{tl:"\u2552",tr:"\u2555",bl:"\u2558",br:"\u255B",h:"\u2550",v:"\u2502"},singleDoubleRounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2550",v:"\u2502"},rounded:{tl:"\u256D",tr:"\u256E",bl:"\u2570",br:"\u256F",h:"\u2500",v:"\u2502"}},nE={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1};function xu(e,t={}){let r={...t,style:{...nE,...t.style}},s=e.split(`
208
+ `),i=[],n=Pd(r.style.borderColor),o={...typeof r.style.borderStyle=="string"?Id[r.style.borderStyle]||Id.solid:r.style.borderStyle};if(n)for(let p in o)o[p]=n(o[p]);let a=r.style.padding%2===0?r.style.padding:r.style.padding+1,u=s.length+a,l=Math.max(...s.map(p=>Ot(p).length),r.title?Ot(r.title).length:0)+a,c=l+a,f=r.style.marginLeft>0?" ".repeat(r.style.marginLeft):"";if(r.style.marginTop>0&&i.push("".repeat(r.style.marginTop)),r.title){let p=n?n(r.title):r.title,m=o.h.repeat(Math.floor((l-Ot(r.title).length)/2)),g=o.h.repeat(l-Ot(r.title).length-Ot(m).length+a);i.push(`${f}${o.tl}${m}${p}${g}${o.tr}`)}else i.push(`${f}${o.tl}${o.h.repeat(c)}${o.tr}`);let h=r.style.valign==="center"?Math.floor((u-s.length)/2):r.style.valign==="top"?u-s.length-a:u-s.length;for(let p=0;p<u;p++)if(p<h||p>=h+s.length)i.push(`${f}${o.v}${" ".repeat(c)}${o.v}`);else{let m=s[p-h],g=" ".repeat(a),D=" ".repeat(l-Ot(m).length);i.push(`${f}${o.v}${g}${m}${D}${o.v}`)}return i.push(`${f}${o.bl}${o.h.repeat(c)}${o.br}`),r.style.marginBottom>0&&i.push("".repeat(r.style.marginBottom)),i.join(`
209
+ `)}var kB=require("node:util"),IB=require("node:path"),_B=require("node:tty"),IC={},Jn=Object.create(null),Di=e=>globalThis.process?.env||IC.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?Jn:globalThis),tr=new Proxy(Jn,{get(e,t){return Di()[t]??Jn[t]},has(e,t){let r=Di();return t in r||t in Jn},set(e,t,r){let s=Di(!0);return s[t]=r,!0},deleteProperty(e,t){if(!t)return!1;let r=Di(!0);return delete r[t],!0},ownKeys(){let e=Di(!0);return Object.keys(e)}}),HE=typeof process<"u"&&process.env&&process.env.NODE_ENV||"",KE=[["APPVEYOR"],["AWS_AMPLIFY","AWS_APP_ID",{ci:!0}],["AZURE_PIPELINES","SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"],["AZURE_STATIC","INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN"],["APPCIRCLE","AC_APPCIRCLE"],["BAMBOO","bamboo_planKey"],["BITBUCKET","BITBUCKET_COMMIT"],["BITRISE","BITRISE_IO"],["BUDDY","BUDDY_WORKSPACE_ID"],["BUILDKITE"],["CIRCLE","CIRCLECI"],["CIRRUS","CIRRUS_CI"],["CLOUDFLARE_PAGES","CF_PAGES",{ci:!0}],["CODEBUILD","CODEBUILD_BUILD_ARN"],["CODEFRESH","CF_BUILD_ID"],["DRONE"],["DRONE","DRONE_BUILD_EVENT"],["DSARI"],["GITHUB_ACTIONS"],["GITLAB","GITLAB_CI"],["GITLAB","CI_MERGE_REQUEST_ID"],["GOCD","GO_PIPELINE_LABEL"],["LAYERCI"],["HUDSON","HUDSON_URL"],["JENKINS","JENKINS_URL"],["MAGNUM"],["NETLIFY"],["NETLIFY","NETLIFY_LOCAL",{ci:!1}],["NEVERCODE"],["RENDER"],["SAIL","SAILCI"],["SEMAPHORE"],["SCREWDRIVER"],["SHIPPABLE"],["SOLANO","TDDIUM"],["STRIDER"],["TEAMCITY","TEAMCITY_VERSION"],["TRAVIS"],["VERCEL","NOW_BUILDER"],["VERCEL","VERCEL",{ci:!1}],["VERCEL","VERCEL_ENV",{ci:!1}],["APPCENTER","APPCENTER_BUILD_ID"],["CODESANDBOX","CODESANDBOX_SSE",{ci:!1}],["CODESANDBOX","CODESANDBOX_HOST",{ci:!1}],["STACKBLITZ"],["STORMKIT"],["CLEAVR"],["ZEABUR"],["CODESPHERE","CODESPHERE_APP_ID",{ci:!0}],["RAILWAY","RAILWAY_PROJECT_ID"],["RAILWAY","RAILWAY_SERVICE_ID"],["DENO-DEPLOY","DENO_DEPLOYMENT_ID"],["FIREBASE_APP_HOSTING","FIREBASE_APP_HOSTING",{ci:!0}]];function zE(){if(globalThis.process?.env)for(let e of KE){let t=e[1]||e[0];if(globalThis.process?.env[t])return{name:e[0].toLowerCase(),...e[2]}}return globalThis.process?.env?.SHELL==="/bin/jsh"&&globalThis.process?.versions?.webcontainer?{name:"stackblitz",ci:!1}:{name:"",ci:!1}}var ah=zE();ah.name;function Tr(e){return e?e!=="false":!1}var JE=globalThis.process?.platform||"",qu=Tr(tr.CI)||ah.ci!==!1,uh=Tr(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),YE=Tr(tr.DEBUG),Uu=HE==="test"||Tr(tr.TEST);Tr(tr.MINIMAL);var ZE=/^win/i.test(JE);!Tr(tr.NO_COLOR)&&(Tr(tr.FORCE_COLOR)||(uh||ZE)&&tr.TERM);var XE=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(XE?.split(".")[0]);var QE=globalThis.process||Object.create(null),ih={versions:{}};new Proxy(QE,{get(e,t){if(t==="env")return tr;if(t in e)return e[t];if(t in ih)return ih[t]}});var eC=globalThis.process?.release?.name==="node",tC=!!globalThis.Bun||!!globalThis.process?.versions?.bun,rC=!!globalThis.Deno,sC=!!globalThis.fastly,iC=!!globalThis.Netlify,nC=!!globalThis.EdgeRuntime,oC=globalThis.navigator?.userAgent==="Cloudflare-Workers",aC=[[iC,"netlify"],[nC,"edge-light"],[oC,"workerd"],[sC,"fastly"],[rC,"deno"],[tC,"bun"],[eC,"node"]];function uC(){let e=aC.find(t=>t[0]);if(e)return{name:e[1]}}var lC=uC();lC?.name;function cC({onlyFirst:e=!1}={}){let r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}var fC=cC();function dC(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(fC,"")}function hC(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function pC(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function mC(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}function gC(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function DC(e,{ambiguousAsWide:t=!1}={}){return gC(e),pC(e)||mC(e)||t&&hC(e)?2:1}var yC=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g,wC=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:e=>e.split("")},bC=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function vC(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:r=!0,countAnsiEscapeCodes:s=!1}=t;if(s||(e=dC(e)),e.length===0)return 0;let i=0,n={ambiguousAsWide:!r};for(let{segment:o}of wC.segment(e)){let a=o.codePointAt(0);if(!(a<=31||a>=127&&a<=159)&&!(a>=8203&&a<=8207||a===65279)&&!(a>=768&&a<=879||a>=6832&&a<=6911||a>=7616&&a<=7679||a>=8400&&a<=8447||a>=65056&&a<=65071)&&!(a>=55296&&a<=57343)&&!(a>=65024&&a<=65039)&&!bC.test(o)){if(yC().test(o)){i+=2;continue}i+=DC(a,n)}}return i}function EC(){let{env:e}=Mu.default,{TERM:t,TERM_PROGRAM:r}=e;return Mu.default.platform!=="win32"?t!=="linux":!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask==="{cmd::Cmder}"||r==="Terminus-Sublime"||r==="vscode"||t==="xterm-256color"||t==="alacritty"||t==="rxvt-unicode"||t==="rxvt-unicode-256color"||e.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var CC={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},FC={0:"red",1:"yellow"},SC=EC(),vt=(e,t)=>SC?e:t,nh={error:vt("\u2716","\xD7"),fatal:vt("\u2716","\xD7"),ready:vt("\u2714","\u221A"),warn:vt("\u26A0","\u203C"),info:vt("\u2139","i"),success:vt("\u2714","\u221A"),debug:vt("\u2699","D"),trace:vt("\u2192","\u2192"),fail:vt("\u2716","\xD7"),start:vt("\u25D0","o"),log:""};function oh(e){return!(typeof Intl=="object")||!Intl.Segmenter?Ot(e).length:vC(e)}var ju=class extends mi{formatStack(t,r,s){let i=" ".repeat((s?.errorLevel||0)+1);return`
210
210
  ${i}`+Su(t,r).map(n=>" "+n.replace(/^at +/,o=>ee.gray(o)).replace(/\((.+)\)/,(o,a)=>`(${ee.cyan(a)})`)).join(`
211
- ${i}`)}formatType(t,r,s){let i=wC[t.type]||bC[t.level]||"gray";if(r)return CC(i)(ee.black(` ${t.type.toUpperCase()} `));let n=typeof ih[t.type]=="string"?ih[t.type]:t.icon||t.type;return n?EC(i)(n):""}formatLogObj(t,r){let[s,...i]=this.formatArgs(t.args,r).split(`
211
+ ${i}`)}formatType(t,r,s){let i=CC[t.type]||FC[t.level]||"gray";if(r)return AC(i)(ee.black(` ${t.type.toUpperCase()} `));let n=typeof nh[t.type]=="string"?nh[t.type]:t.icon||t.type;return n?xC(i)(n):""}formatLogObj(t,r){let[s,...i]=this.formatArgs(t.args,r).split(`
212
212
  `);if(t.type==="box")return xu(zn(s+(i.length>0?`
213
213
  `+i.join(`
214
- `):"")),{title:t.title?zn(t.title):void 0,style:t.style});let n=this.formatDate(t.date,r),o=n&&ee.gray(n),a=t.badge??t.level<2,u=this.formatType(t,a,r),l=t.tag?ee.gray(t.tag):"",c,f=this.filterAndJoin([u,zn(s)]),h=this.filterAndJoin(r.columns?[l,o]:[l]),p=(r.columns||0)-nh(f)-nh(h)-2;if(c=p>0&&(r.columns||0)>=80?f+" ".repeat(p)+h:(h?`${ee.gray(`[${h}]`)} `:"")+f,c+=zn(i.length>0?`
214
+ `):"")),{title:t.title?zn(t.title):void 0,style:t.style});let n=this.formatDate(t.date,r),o=n&&ee.gray(n),a=t.badge??t.level<2,u=this.formatType(t,a,r),l=t.tag?ee.gray(t.tag):"",c,f=this.filterAndJoin([u,zn(s)]),h=this.filterAndJoin(r.columns?[l,o]:[l]),p=(r.columns||0)-oh(f)-oh(h)-2;if(c=p>0&&(r.columns||0)>=80?f+" ".repeat(p)+h:(h?`${ee.gray(`[${h}]`)} `:"")+f,c+=zn(i.length>0?`
215
215
  `+i.join(`
216
216
  `):""),t.type==="trace"){let m=new Error("Trace: "+t.message);c+=this.formatStack(m.stack||"",m.message)}return a?`
217
217
  `+c+`
218
- `:c}};function zn(e){return e.replace(/`([^`]+)`/gm,(t,r)=>ee.cyan(r)).replace(/\s+_([^_]+)_\s+/gm,(t,r)=>` ${ee.underline(r)} `)}function EC(e="white"){return ee[e]||ee.white}function CC(e="bgWhite"){return ee[`bg${e[0].toUpperCase()}${e.slice(1)}`]||ee.bgWhite}function FC(e={}){let t=SC();return process.env.CONSOLA_LEVEL&&(t=Number.parseInt(process.env.CONSOLA_LEVEL)??t),xd({level:t,defaults:{level:t},stdout:process.stdout,stderr:process.stderr,prompt:(...s)=>Promise.resolve().then(()=>(rh(),th)).then(i=>i.prompt(...s)),reporters:e.reporters||[e.fancy??!(qu||Uu)?new ju:new pi],...e})}function SC(){return KE?Fe.debug:Uu?Fe.warn:Fe.info}var ms=FC();var PB=require("node:tty");function AC(e){return Array.isArray(e)?e:e===void 0?[]:[e]}function Gu(e,t=""){let r=[];for(let s of e)for(let[i,n]of s.entries())r[i]=Math.max(r[i]||0,n.length);return e.map(s=>s.map((i,n)=>t+i[n===0?"padStart":"padEnd"](r[n])).join(" ")).join(`
219
- `)}function ct(e){return typeof e=="function"?e():e}var tr=class extends Error{constructor(t,r){super(t),this.code=r,this.name="CLIError"}},RC=/\d/,kC=["-","_","/","."];function IC(e=""){if(!RC.test(e))return e!==e.toLowerCase()}function uh(e,t){let r=t??kC,s=[];if(!e||typeof e!="string")return s;let i="",n,o;for(let a of e){let u=r.includes(a);if(u===!0){s.push(i),i="",n=void 0;continue}let l=IC(a);if(o===!1){if(n===!1&&l===!0){s.push(i),i=a,n=l;continue}if(n===!0&&l===!1&&i.length>1){let c=i.at(-1);s.push(i.slice(0,Math.max(0,i.length-1))),i=c+a,n=l;continue}}i+=a,n=l,o=u}return s.push(i),s}function _C(e){return e?e[0].toUpperCase()+e.slice(1):""}function TC(e){return e?e[0].toLowerCase()+e.slice(1):""}function $C(e,t){return e?(Array.isArray(e)?e:uh(e)).map(r=>_C(t?.normalize?r.toLowerCase():r)).join(""):""}function PC(e,t){return TC($C(e||"",t))}function BC(e,t){return e?(Array.isArray(e)?e:uh(e)).map(r=>r.toLowerCase()).join(t??"-"):""}function Vu(e){return e==null?[]:Array.isArray(e)?e:[e]}function OC(e,t,r,s){let i,n=e[t],o=~s.string.indexOf(t)?r==null||r===!0?"":String(r):typeof r=="boolean"?r:~s.boolean.indexOf(t)?r==="false"?!1:r==="true"||(e._.push((i=+r,i*0===0?i:r)),!!r):(i=+r,i*0===0?i:r);e[t]=n==null?o:Array.isArray(n)?n.concat(o):[n,o]}function LC(e=[],t={}){let r,s,i,n,o,a={_:[]},u=0,l=0,c=0,f=e.length,h=t.alias!==void 0,p=t.unknown!==void 0,m=t.default!==void 0;if(t.alias=t.alias||{},t.string=Vu(t.string),t.boolean=Vu(t.boolean),h)for(r in t.alias)for(s=t.alias[r]=Vu(t.alias[r]),u=0;u<s.length;u++)(t.alias[s[u]]=s.concat(r)).splice(u,1);for(u=t.boolean.length;u-- >0;)for(s=t.alias[t.boolean[u]]||[],l=s.length;l-- >0;)t.boolean.push(s[l]);for(u=t.string.length;u-- >0;)for(s=t.alias[t.string[u]]||[],l=s.length;l-- >0;)t.string.push(s[l]);if(m){for(r in t.default)if(n=typeof t.default[r],s=t.alias[r]=t.alias[r]||[],t[n]!==void 0)for(t[n].push(r),u=0;u<s.length;u++)t[n].push(s[u])}let g=p?Object.keys(t.alias):[];for(u=0;u<f;u++){if(i=e[u],i==="--"){a._=a._.concat(e.slice(++u));break}for(l=0;l<i.length&&i.charCodeAt(l)===45;l++);if(l===0)a._.push(i);else if(i.substring(l,l+3)==="no-"){if(n=i.slice(Math.max(0,l+3)),p&&!~g.indexOf(n))return t.unknown(i);a[n]=!1}else{for(c=l+1;c<i.length&&i.charCodeAt(c)!==61;c++);for(n=i.substring(l,c),o=i.slice(Math.max(0,++c))||u+1===f||(""+e[u+1]).charCodeAt(0)===45||e[++u],s=l===2?[n]:n,c=0;c<s.length;c++){if(n=s[c],p&&!~g.indexOf(n))return t.unknown("-".repeat(l)+n);OC(a,n,c+1<s.length||o,t)}}}if(m)for(r in t.default)a[r]===void 0&&(a[r]=t.default[r]);if(h)for(r in a)for(s=t.alias[r]||[];s.length>0;)a[s.shift()]=a[r];return a}function NC(e,t){let r={boolean:[],string:[],mixed:[],alias:{},default:{}},s=lh(t);for(let a of s)a.type!=="positional"&&(a.type==="string"?r.string.push(a.name):a.type==="boolean"&&r.boolean.push(a.name),a.default!==void 0&&(r.default[a.name]=a.default),a.alias&&(r.alias[a.name]=a.alias));let i=LC(e,r),[...n]=i._,o=new Proxy(i,{get(a,u){return a[u]??a[PC(u)]??a[BC(u)]}});for(let[,a]of s.entries())if(a.type==="positional"){let u=n.shift();if(u!==void 0)o[a.name]=u;else{if(a.default===void 0&&a.required!==!1)throw new tr(`Missing required positional argument: ${a.name.toUpperCase()}`,"EARG");o[a.name]=a.default}}else if(a.required&&o[a.name]===void 0)throw new tr(`Missing required argument: --${a.name}`,"EARG");return o}function lh(e){let t=[];for(let[r,s]of Object.entries(e||{}))t.push({...s,name:r,alias:AC(s.alias)});return t}async function ch(e,t){let r=await ct(e.args||{}),s=NC(t.rawArgs,r),i={rawArgs:t.rawArgs,args:s,data:t.data,cmd:e};typeof e.setup=="function"&&await e.setup(i);let n;try{let o=await ct(e.subCommands);if(o&&Object.keys(o).length>0){let a=t.rawArgs.findIndex(l=>!l.startsWith("-")),u=t.rawArgs[a];if(u){if(!o[u])throw new tr(`Unknown command \`${u}\``,"E_UNKNOWN_COMMAND");let l=await ct(o[u]);l&&await ch(l,{rawArgs:t.rawArgs.slice(a+1)})}else if(!e.run)throw new tr("No command specified.","E_NO_COMMAND")}typeof e.run=="function"&&(n=await e.run(i))}finally{typeof e.cleanup=="function"&&await e.cleanup(i)}return{result:n}}async function Wu(e,t,r){let s=await ct(e.subCommands);if(s&&Object.keys(s).length>0){let i=t.findIndex(a=>!a.startsWith("-")),n=t[i],o=await ct(s[n]);if(o)return Wu(o,t.slice(i+1),e)}return[e,r]}async function MC(e,t){try{ms.log(await jC(e,t)+`
220
- `)}catch(r){ms.error(r)}}async function jC(e,t){let r=await ct(e.meta||{}),s=lh(await ct(e.args||{})),i=await ct(t?.meta||{}),n=`${i.name?`${i.name} `:""}`+(r.name||process.argv[1]),o=[],a=[],u=[],l=[];for(let p of s)if(p.type==="positional"){let m=p.name.toUpperCase(),g=p.required!==!1&&p.default===void 0,D=p.default?`="${p.default}"`:"";a.push(["`"+m+D+"`",p.description||"",p.valueHint?`<${p.valueHint}>`:""]),l.push(g?`<${m}>`:`[${m}]`)}else{let m=p.required===!0&&p.default===void 0,g=(p.type==="boolean"&&p.default===!0?[...(p.alias||[]).map(D=>`--no-${D}`),`--no-${p.name}`].join(", "):[...(p.alias||[]).map(D=>`-${D}`),`--${p.name}`].join(", "))+(p.type==="string"&&(p.valueHint||p.default)?`=${p.valueHint?`<${p.valueHint}>`:`"${p.default||""}"`}`:"");o.push(["`"+g+(m?" (required)":"")+"`",p.description||""]),m&&l.push(g)}if(e.subCommands){let p=[],m=await ct(e.subCommands);for(let[g,D]of Object.entries(m)){let b=await ct(D),w=await ct(b?.meta);u.push([`\`${g}\``,w?.description||""]),p.push(g)}l.push(p.join("|"))}let c=[],f=r.version||i.version;c.push(ee.gray(`${r.description} (${n+(f?` v${f}`:"")})`),"");let h=o.length>0||a.length>0;return c.push(`${ee.underline(ee.bold("USAGE"))} \`${n}${h?" [OPTIONS]":""} ${l.join(" ")}\``,""),a.length>0&&(c.push(ee.underline(ee.bold("ARGUMENTS")),""),c.push(Gu(a," ")),c.push("")),o.length>0&&(c.push(ee.underline(ee.bold("OPTIONS")),""),c.push(Gu(o," ")),c.push("")),u.length>0&&(c.push(ee.underline(ee.bold("COMMANDS")),""),c.push(Gu(u," ")),c.push("",`Use \`${n} <command> --help\` for more information about a command.`)),c.filter(p=>typeof p=="string").join(`
221
- `)}async function fh(e,t={}){let r=t.rawArgs||process.argv.slice(2),s=t.showUsage||MC;try{if(r.includes("--help")||r.includes("-h"))await s(...await Wu(e,r)),process.exit(0);else if(r.length===1&&r[0]==="--version"){let i=typeof e.meta=="function"?await e.meta():await e.meta;if(!i?.version)throw new tr("No version specified","E_NO_VERSION");ms.log(i.version)}else await ch(e,{rawArgs:r})}catch(i){let n=i instanceof tr;n||ms.error(i,`
222
- `),n&&await s(...await Wu(e,r)),ms.error(i.message),process.exit(1)}}var gs={name:"best-review",version:"0.6.1",description:"AI-powered code review CLI for git changes",author:"Jericho Ding",license:"MIT",type:"module",bin:{"best-review":"dist/best-review.cjs",br:"dist/best-review.cjs"},files:["dist/best-review.cjs","dist/defaults","src/defaults"],scripts:{dev:"npx tsx ./bin/best-review.ts",build:"node build.mjs","link:local":"npm run build && npm link","link:publish":"npm run build && npm link",link:"npm link",unlink:"npm unlink",test:"vitest run","test:watch":"vitest","ts-check":"tsc --noEmit",lint:"eslint .","lint:fix":"eslint . --fix",format:"prettier --write .","format:check":"prettier --check .",prepublishOnly:"npm run build",prepare:"husky"},keywords:["code-review","ai","cli","git","diff","llm","openai-compatible","deepseek","pull-request"],engines:{node:">=18.0.0"},os:["darwin","linux","win32"],cpu:["x64","arm64"],devDependencies:{"@eslint/js":"^9.39.2","@types/node":"^22.15.21","@typescript-eslint/eslint-plugin":"^8.52.0","@typescript-eslint/parser":"^8.52.0",esbuild:"^0.25.0",eslint:"^9.39.2","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4",husky:"^9.1.0","lint-staged":"^15.5.0",prettier:"^3.7.4",tsx:"^4.19.0",vitest:"^3.1.0"},"lint-staged":{"*.{ts,tsx,js,jsx}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},peerDependencies:{typescript:"^5"},dependencies:{citty:"^0.1.6",diff:"^8.0.2",glob:"^13.0.0",yaml:"^2.8.2",zod:"^3.22.4"}};wf();Vs();Ee();Ge();async function He(e){let t=typeof e=="string"?{projectPath:e}:e||{},r=t.projectPath||process.cwd(),s=await oe(r),i=s.extends.length>0?await ny("agents",vn,r,s.extends):await sy("agents",vn,r),n=t.executorOverride||s.executor,o=s.executors[n]||{},a=t.modelOverride;return i.map(u=>{let l=u.stage||"review",c=o[l]||{},f=a??(typeof c.model=="string"?c.model:void 0),h={...Ue({executorOverride:n,modelOverride:f,config:s}),...c,...f&&{model:f}},p=s.agents[u.name]||{};return{...u,executor:u.executor||n,executorSettings:{...h,...u.executorSettings,...p.model&&{model:p.model},...p.timeout&&{timeout:p.timeout},...a&&{model:a}},enabled:p.enabled??u.enabled}}).filter(u=>u.enabled!==!1)}M();function Pk(e){return!e||Object.keys(e).length===0?"-":Object.entries(e).map(([t,r])=>`${t}=${r}`).join(", ")}async function ay(){let e=await He(process.cwd());if(d.robot("\u53EF\u7528 Agent"),d.newline(),e.length===0){d.plain("\u6CA1\u6709\u914D\u7F6E Agent");return}for(let t of e){let r=t.enabled?"\u25CF":"\u25CB",s=t.stage||"review",i=Di(t.path);d.plain(`${r} ${t.name} (${s})`),d.plain(` \u6267\u884C\u5668\uFF1A${t.executor}`),t.executorSettings&&Object.keys(t.executorSettings).length>0&&d.plain(` \u8BBE\u7F6E\uFF1A${Pk(t.executorSettings)}`),d.plain(` \u8DEF\u5F84\uFF1A${i}`),d.newline()}}async function uy(e){let r=(await He(process.cwd())).find(s=>s.name===e);if(r||(d.error(`Agent \u4E0D\u5B58\u5728\uFF1A${e}`),process.exit(1)),d.robot(`Agent\uFF1A${r.name}`),d.newline(),d.plain(`\u8BF4\u660E\uFF1A${r.description}`),d.plain(`\u542F\u7528\uFF1A${r.enabled?"\u662F":"\u5426"}`),d.plain(`\u987A\u5E8F\uFF1A${r.order}`),d.plain(`\u9636\u6BB5\uFF1A${r.stage||"review"}`),d.plain(`\u6267\u884C\u5668\uFF1A${r.executor}`),d.plain(`\u8DEF\u5F84\uFF1A${Di(r.path)}`),r.executorSettings&&Object.keys(r.executorSettings).length>0){d.newline(),d.plain("\u6267\u884C\u5668\u8BBE\u7F6E\uFF1A");for(let[s,i]of Object.entries(r.executorSettings))d.plain(` ${s}: ${i}`)}d.newline(),d.plain("\u7CFB\u7EDF Prompt\uFF1A"),d.separator("\u2500"),d.plain(r.systemPrompt||"\uFF08\u65E0 prompt\uFF09"),d.separator("\u2500")}var ly={meta:{name:"agents",description:`\u5217\u51FA Agent\uFF0C\u6216\u67E5\u770B\u67D0\u4E2A Agent \u7684\u8BE6\u60C5
218
+ `:c}};function zn(e){return e.replace(/`([^`]+)`/gm,(t,r)=>ee.cyan(r)).replace(/\s+_([^_]+)_\s+/gm,(t,r)=>` ${ee.underline(r)} `)}function xC(e="white"){return ee[e]||ee.white}function AC(e="bgWhite"){return ee[`bg${e[0].toUpperCase()}${e.slice(1)}`]||ee.bgWhite}function RC(e={}){let t=kC();return process.env.CONSOLA_LEVEL&&(t=Number.parseInt(process.env.CONSOLA_LEVEL)??t),Ad({level:t,defaults:{level:t},stdout:process.stdout,stderr:process.stderr,prompt:(...s)=>Promise.resolve().then(()=>(sh(),rh)).then(i=>i.prompt(...s)),reporters:e.reporters||[e.fancy??!(qu||Uu)?new ju:new mi],...e})}function kC(){return YE?Se.debug:Uu?Se.warn:Se.info}var ms=RC();var jB=require("node:tty");function _C(e){return Array.isArray(e)?e:e===void 0?[]:[e]}function Gu(e,t=""){let r=[];for(let s of e)for(let[i,n]of s.entries())r[i]=Math.max(r[i]||0,n.length);return e.map(s=>s.map((i,n)=>t+i[n===0?"padStart":"padEnd"](r[n])).join(" ")).join(`
219
+ `)}function ct(e){return typeof e=="function"?e():e}var rr=class extends Error{constructor(t,r){super(t),this.code=r,this.name="CLIError"}},TC=/\d/,$C=["-","_","/","."];function PC(e=""){if(!TC.test(e))return e!==e.toLowerCase()}function lh(e,t){let r=t??$C,s=[];if(!e||typeof e!="string")return s;let i="",n,o;for(let a of e){let u=r.includes(a);if(u===!0){s.push(i),i="",n=void 0;continue}let l=PC(a);if(o===!1){if(n===!1&&l===!0){s.push(i),i=a,n=l;continue}if(n===!0&&l===!1&&i.length>1){let c=i.at(-1);s.push(i.slice(0,Math.max(0,i.length-1))),i=c+a,n=l;continue}}i+=a,n=l,o=u}return s.push(i),s}function BC(e){return e?e[0].toUpperCase()+e.slice(1):""}function OC(e){return e?e[0].toLowerCase()+e.slice(1):""}function LC(e,t){return e?(Array.isArray(e)?e:lh(e)).map(r=>BC(t?.normalize?r.toLowerCase():r)).join(""):""}function NC(e,t){return OC(LC(e||"",t))}function MC(e,t){return e?(Array.isArray(e)?e:lh(e)).map(r=>r.toLowerCase()).join(t??"-"):""}function Vu(e){return e==null?[]:Array.isArray(e)?e:[e]}function jC(e,t,r,s){let i,n=e[t],o=~s.string.indexOf(t)?r==null||r===!0?"":String(r):typeof r=="boolean"?r:~s.boolean.indexOf(t)?r==="false"?!1:r==="true"||(e._.push((i=+r,i*0===0?i:r)),!!r):(i=+r,i*0===0?i:r);e[t]=n==null?o:Array.isArray(n)?n.concat(o):[n,o]}function qC(e=[],t={}){let r,s,i,n,o,a={_:[]},u=0,l=0,c=0,f=e.length,h=t.alias!==void 0,p=t.unknown!==void 0,m=t.default!==void 0;if(t.alias=t.alias||{},t.string=Vu(t.string),t.boolean=Vu(t.boolean),h)for(r in t.alias)for(s=t.alias[r]=Vu(t.alias[r]),u=0;u<s.length;u++)(t.alias[s[u]]=s.concat(r)).splice(u,1);for(u=t.boolean.length;u-- >0;)for(s=t.alias[t.boolean[u]]||[],l=s.length;l-- >0;)t.boolean.push(s[l]);for(u=t.string.length;u-- >0;)for(s=t.alias[t.string[u]]||[],l=s.length;l-- >0;)t.string.push(s[l]);if(m){for(r in t.default)if(n=typeof t.default[r],s=t.alias[r]=t.alias[r]||[],t[n]!==void 0)for(t[n].push(r),u=0;u<s.length;u++)t[n].push(s[u])}let g=p?Object.keys(t.alias):[];for(u=0;u<f;u++){if(i=e[u],i==="--"){a._=a._.concat(e.slice(++u));break}for(l=0;l<i.length&&i.charCodeAt(l)===45;l++);if(l===0)a._.push(i);else if(i.substring(l,l+3)==="no-"){if(n=i.slice(Math.max(0,l+3)),p&&!~g.indexOf(n))return t.unknown(i);a[n]=!1}else{for(c=l+1;c<i.length&&i.charCodeAt(c)!==61;c++);for(n=i.substring(l,c),o=i.slice(Math.max(0,++c))||u+1===f||(""+e[u+1]).charCodeAt(0)===45||e[++u],s=l===2?[n]:n,c=0;c<s.length;c++){if(n=s[c],p&&!~g.indexOf(n))return t.unknown("-".repeat(l)+n);jC(a,n,c+1<s.length||o,t)}}}if(m)for(r in t.default)a[r]===void 0&&(a[r]=t.default[r]);if(h)for(r in a)for(s=t.alias[r]||[];s.length>0;)a[s.shift()]=a[r];return a}function UC(e,t){let r={boolean:[],string:[],mixed:[],alias:{},default:{}},s=ch(t);for(let a of s)a.type!=="positional"&&(a.type==="string"?r.string.push(a.name):a.type==="boolean"&&r.boolean.push(a.name),a.default!==void 0&&(r.default[a.name]=a.default),a.alias&&(r.alias[a.name]=a.alias));let i=qC(e,r),[...n]=i._,o=new Proxy(i,{get(a,u){return a[u]??a[NC(u)]??a[MC(u)]}});for(let[,a]of s.entries())if(a.type==="positional"){let u=n.shift();if(u!==void 0)o[a.name]=u;else{if(a.default===void 0&&a.required!==!1)throw new rr(`Missing required positional argument: ${a.name.toUpperCase()}`,"EARG");o[a.name]=a.default}}else if(a.required&&o[a.name]===void 0)throw new rr(`Missing required argument: --${a.name}`,"EARG");return o}function ch(e){let t=[];for(let[r,s]of Object.entries(e||{}))t.push({...s,name:r,alias:_C(s.alias)});return t}async function fh(e,t){let r=await ct(e.args||{}),s=UC(t.rawArgs,r),i={rawArgs:t.rawArgs,args:s,data:t.data,cmd:e};typeof e.setup=="function"&&await e.setup(i);let n;try{let o=await ct(e.subCommands);if(o&&Object.keys(o).length>0){let a=t.rawArgs.findIndex(l=>!l.startsWith("-")),u=t.rawArgs[a];if(u){if(!o[u])throw new rr(`Unknown command \`${u}\``,"E_UNKNOWN_COMMAND");let l=await ct(o[u]);l&&await fh(l,{rawArgs:t.rawArgs.slice(a+1)})}else if(!e.run)throw new rr("No command specified.","E_NO_COMMAND")}typeof e.run=="function"&&(n=await e.run(i))}finally{typeof e.cleanup=="function"&&await e.cleanup(i)}return{result:n}}async function Wu(e,t,r){let s=await ct(e.subCommands);if(s&&Object.keys(s).length>0){let i=t.findIndex(a=>!a.startsWith("-")),n=t[i],o=await ct(s[n]);if(o)return Wu(o,t.slice(i+1),e)}return[e,r]}async function GC(e,t){try{ms.log(await VC(e,t)+`
220
+ `)}catch(r){ms.error(r)}}async function VC(e,t){let r=await ct(e.meta||{}),s=ch(await ct(e.args||{})),i=await ct(t?.meta||{}),n=`${i.name?`${i.name} `:""}`+(r.name||process.argv[1]),o=[],a=[],u=[],l=[];for(let p of s)if(p.type==="positional"){let m=p.name.toUpperCase(),g=p.required!==!1&&p.default===void 0,D=p.default?`="${p.default}"`:"";a.push(["`"+m+D+"`",p.description||"",p.valueHint?`<${p.valueHint}>`:""]),l.push(g?`<${m}>`:`[${m}]`)}else{let m=p.required===!0&&p.default===void 0,g=(p.type==="boolean"&&p.default===!0?[...(p.alias||[]).map(D=>`--no-${D}`),`--no-${p.name}`].join(", "):[...(p.alias||[]).map(D=>`-${D}`),`--${p.name}`].join(", "))+(p.type==="string"&&(p.valueHint||p.default)?`=${p.valueHint?`<${p.valueHint}>`:`"${p.default||""}"`}`:"");o.push(["`"+g+(m?" (required)":"")+"`",p.description||""]),m&&l.push(g)}if(e.subCommands){let p=[],m=await ct(e.subCommands);for(let[g,D]of Object.entries(m)){let b=await ct(D),w=await ct(b?.meta);u.push([`\`${g}\``,w?.description||""]),p.push(g)}l.push(p.join("|"))}let c=[],f=r.version||i.version;c.push(ee.gray(`${r.description} (${n+(f?` v${f}`:"")})`),"");let h=o.length>0||a.length>0;return c.push(`${ee.underline(ee.bold("USAGE"))} \`${n}${h?" [OPTIONS]":""} ${l.join(" ")}\``,""),a.length>0&&(c.push(ee.underline(ee.bold("ARGUMENTS")),""),c.push(Gu(a," ")),c.push("")),o.length>0&&(c.push(ee.underline(ee.bold("OPTIONS")),""),c.push(Gu(o," ")),c.push("")),u.length>0&&(c.push(ee.underline(ee.bold("COMMANDS")),""),c.push(Gu(u," ")),c.push("",`Use \`${n} <command> --help\` for more information about a command.`)),c.filter(p=>typeof p=="string").join(`
221
+ `)}async function dh(e,t={}){let r=t.rawArgs||process.argv.slice(2),s=t.showUsage||GC;try{if(r.includes("--help")||r.includes("-h"))await s(...await Wu(e,r)),process.exit(0);else if(r.length===1&&r[0]==="--version"){let i=typeof e.meta=="function"?await e.meta():await e.meta;if(!i?.version)throw new rr("No version specified","E_NO_VERSION");ms.log(i.version)}else await fh(e,{rawArgs:r})}catch(i){let n=i instanceof rr;n||ms.error(i,`
222
+ `),n&&await s(...await Wu(e,r)),ms.error(i.message),process.exit(1)}}var gs={name:"best-review",version:"0.6.2",description:"AI-powered code review CLI for git changes",author:"Jericho Ding",license:"MIT",type:"module",bin:{"best-review":"dist/best-review.cjs",br:"dist/best-review.cjs"},files:["dist/best-review.cjs","dist/defaults","src/defaults"],scripts:{dev:"npx tsx ./bin/best-review.ts",build:"node build.mjs","link:local":"npm run build && npm link","link:publish":"npm run build && npm link",link:"npm link",unlink:"npm unlink",test:"vitest run","test:watch":"vitest","ts-check":"tsc --noEmit",lint:"eslint .","lint:fix":"eslint . --fix",format:"prettier --write .","format:check":"prettier --check .",prepublishOnly:"npm run build",prepare:"husky"},keywords:["code-review","ai","cli","git","diff","llm","openai-compatible","deepseek","pull-request"],engines:{node:">=18.0.0"},os:["darwin","linux","win32"],cpu:["x64","arm64"],devDependencies:{"@eslint/js":"^9.39.2","@types/node":"^22.15.21","@typescript-eslint/eslint-plugin":"^8.52.0","@typescript-eslint/parser":"^8.52.0",esbuild:"^0.25.0",eslint:"^9.39.2","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4",husky:"^9.1.0","lint-staged":"^15.5.0",prettier:"^3.7.4",tsx:"^4.19.0",vitest:"^3.1.0"},"lint-staged":{"*.{ts,tsx,js,jsx}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},peerDependencies:{typescript:"^5"},dependencies:{citty:"^0.1.6",diff:"^8.0.2",glob:"^13.0.0",yaml:"^2.8.2",zod:"^3.22.4"}};wf();Vs();Ce();Ve();async function ze(e){let t=typeof e=="string"?{projectPath:e}:e||{},r=t.projectPath||process.cwd(),s=await oe(r),i=s.extends.length>0?await oy("agents",En,r,s.extends):await iy("agents",En,r),n=t.executorOverride||s.executor,o=s.executors[n]||{},a=t.modelOverride;return i.map(u=>{let l=u.stage||"review",c=o[l]||{},f=a??(typeof c.model=="string"?c.model:void 0),h={...Ge({executorOverride:n,modelOverride:f,config:s}),...c,...f&&{model:f}},p=s.agents[u.name]||{};return{...u,executor:u.executor||n,executorSettings:{...h,...u.executorSettings,...p.model&&{model:p.model},...p.timeout&&{timeout:p.timeout},...a&&{model:a}},enabled:p.enabled??u.enabled}}).filter(u=>u.enabled!==!1)}M();function Nk(e){return!e||Object.keys(e).length===0?"-":Object.entries(e).map(([t,r])=>`${t}=${r}`).join(", ")}async function uy(){let e=await ze(process.cwd());if(d.robot("\u53EF\u7528 Agent"),d.newline(),e.length===0){d.plain("\u6CA1\u6709\u914D\u7F6E Agent");return}for(let t of e){let r=t.enabled?"\u25CF":"\u25CB",s=t.stage||"review",i=yi(t.path);d.plain(`${r} ${t.name} (${s})`),d.plain(` \u6267\u884C\u5668\uFF1A${t.executor}`),t.executorSettings&&Object.keys(t.executorSettings).length>0&&d.plain(` \u8BBE\u7F6E\uFF1A${Nk(t.executorSettings)}`),d.plain(` \u8DEF\u5F84\uFF1A${i}`),d.newline()}}async function ly(e){let r=(await ze(process.cwd())).find(s=>s.name===e);if(r||(d.error(`Agent \u4E0D\u5B58\u5728\uFF1A${e}`),process.exit(1)),d.robot(`Agent\uFF1A${r.name}`),d.newline(),d.plain(`\u8BF4\u660E\uFF1A${r.description}`),d.plain(`\u542F\u7528\uFF1A${r.enabled?"\u662F":"\u5426"}`),d.plain(`\u987A\u5E8F\uFF1A${r.order}`),d.plain(`\u9636\u6BB5\uFF1A${r.stage||"review"}`),d.plain(`\u6267\u884C\u5668\uFF1A${r.executor}`),d.plain(`\u8DEF\u5F84\uFF1A${yi(r.path)}`),r.executorSettings&&Object.keys(r.executorSettings).length>0){d.newline(),d.plain("\u6267\u884C\u5668\u8BBE\u7F6E\uFF1A");for(let[s,i]of Object.entries(r.executorSettings))d.plain(` ${s}: ${i}`)}d.newline(),d.plain("\u7CFB\u7EDF Prompt\uFF1A"),d.separator("\u2500"),d.plain(r.systemPrompt||"\uFF08\u65E0 prompt\uFF09"),d.separator("\u2500")}var cy={meta:{name:"agents",description:`\u5217\u51FA Agent\uFF0C\u6216\u67E5\u770B\u67D0\u4E2A Agent \u7684\u8BE6\u60C5
223
223
 
224
224
  Examples:
225
225
  best-review agents # \u5217\u51FA\u6240\u6709 Agent
226
226
  best-review agents validation # \u67E5\u770B validation Agent \u8BE6\u60C5
227
- best-review agents general # \u67E5\u770B general Agent \u8BE6\u60C5`},args:{name:{type:"positional",description:"Agent \u540D\u79F0\uFF08\u53EF\u9009\uFF1B\u4F20\u5165\u540E\u5C55\u793A\u8BE6\u60C5\uFF09",required:!1}},run:async({args:e})=>{e.name?await uy(e.name):await ay()}};var cy=require("node:child_process");Ee();M();Ge();function Bk(e){if(!e||typeof e!="object")return e;let t=JSON.parse(JSON.stringify(e));return t.llm?.apiKey&&(t.llm.apiKey="********"),t.gitlab?.token&&(t.gitlab.token="********"),t}async function fy(e){let t=e||process.cwd(),r=await oe(t),s=Us(r),i=Cr(),n=of(t),o=await af(),a=await MD(t);d.plain(`\u914D\u7F6E
227
+ best-review agents general # \u67E5\u770B general Agent \u8BE6\u60C5`},args:{name:{type:"positional",description:"Agent \u540D\u79F0\uFF08\u53EF\u9009\uFF1B\u4F20\u5165\u540E\u5C55\u793A\u8BE6\u60C5\uFF09",required:!1}},run:async({args:e})=>{e.name?await ly(e.name):await uy()}};var fy=require("node:child_process");Ce();M();Ve();function Mk(e){if(!e||typeof e!="object")return e;let t=JSON.parse(JSON.stringify(e));return t.llm?.apiKey&&(t.llm.apiKey="********"),t.gitlab?.token&&(t.gitlab.token="********"),t}async function dy(e){let t=e||process.cwd(),r=await oe(t),s=Us(r),i=Cr(),n=of(t),o=await af(),a=await jD(t);d.plain(`\u914D\u7F6E
228
228
  `),d.plain(`\u5168\u5C40\uFF1A${i}${o?"":"\uFF08\u672A\u627E\u5230\uFF09"}`),d.plain(`\u9879\u76EE\uFF1A${n}${a?"\uFF08\u5DF2\u5F03\u7528\uFF0C\u4E0D\u518D\u9ED8\u8BA4\u8BFB\u53D6\uFF09":"\uFF08\u672A\u627E\u5230\uFF09"}`),d.plain(`
229
229
  \u5F53\u524D\u5E73\u53F0\uFF1A${s.platform}`),d.plain(`Base URL\uFF1A${s.baseUrl}`),d.plain(`\u6A21\u578B\uFF1A${s.model}`),d.plain(`API Key\uFF1A${s.apiKey?"\u5DF2\u8BBE\u7F6E":"\u672A\u8BBE\u7F6E"}`),d.plain(`
230
230
  \u5408\u5E76\u540E\u7684\u914D\u7F6E\uFF1A
231
- `),d.plain(JSON.stringify(Bk(r),null,2))}async function dy(e){let t=process.env.EDITOR||"nano",r;r=Cr(),await af()||(d.warn("\u7528\u6237\u7EA7\u914D\u7F6E\u4E0D\u5B58\u5728\uFF0C\u6B63\u5728\u7528\u9ED8\u8BA4\u503C\u521B\u5EFA..."),await Fa(Dn())),d.info(`\u6B63\u5728\u7528 ${t} \u6253\u5F00 ${r}...`);let i=(0,cy.spawnSync)(t,[r],{stdio:"inherit"});i.error&&(d.error(`\u6253\u5F00\u7F16\u8F91\u5668\u5931\u8D25\uFF1A${i.error.message}`),process.exit(1))}Ee();vr();js();M();var my=require("node:fs/promises");da();var Ok=3,hy=1e3;async function py(e){return new Promise(t=>setTimeout(t,e))}async function It(e,t,r=Ok){let s;for(let i=0;i<r;i++)try{let n=await fetch(e,t);if(n.ok||n.status>=400&&n.status<500&&n.status!==429)return n;if(s=new Error(`HTTP ${n.status}`),i<r-1){let o=hy*Math.pow(2,i);process.env.DEBUG&&d.plain(`\u23F3 Retry ${i+1}/${r-1} after ${o}ms (${n.status})`),await py(o)}}catch(n){if(s=n instanceof Error?n:new Error(String(n)),i<r-1){let o=hy*Math.pow(2,i);process.env.DEBUG&&d.plain(`\u23F3 Retry ${i+1}/${r-1} after ${o}ms (${s.message})`),await py(o)}}throw s||new Error("Max retries exceeded")}var Lk=`# Output Format
231
+ `),d.plain(JSON.stringify(Mk(r),null,2))}async function hy(e){let t=process.env.EDITOR||"nano",r;r=Cr(),await af()||(d.warn("\u7528\u6237\u7EA7\u914D\u7F6E\u4E0D\u5B58\u5728\uFF0C\u6B63\u5728\u7528\u9ED8\u8BA4\u503C\u521B\u5EFA..."),await Fa(yn())),d.info(`\u6B63\u5728\u7528 ${t} \u6253\u5F00 ${r}...`);let i=(0,fy.spawnSync)(t,[r],{stdio:"inherit"});i.error&&(d.error(`\u6253\u5F00\u7F16\u8F91\u5668\u5931\u8D25\uFF1A${i.error.message}`),process.exit(1))}Ce();Wt();js();M();var gy=require("node:fs/promises");da();var jk=3,py=1e3;async function my(e){return new Promise(t=>setTimeout(t,e))}async function It(e,t,r=jk){let s;for(let i=0;i<r;i++)try{let n=await fetch(e,t);if(n.ok||n.status>=400&&n.status<500&&n.status!==429)return n;if(s=new Error(`HTTP ${n.status}`),i<r-1){let o=py*Math.pow(2,i);process.env.DEBUG&&d.plain(`\u23F3 Retry ${i+1}/${r-1} after ${o}ms (${n.status})`),await my(o)}}catch(n){if(s=n instanceof Error?n:new Error(String(n)),i<r-1){let o=py*Math.pow(2,i);process.env.DEBUG&&d.plain(`\u23F3 Retry ${i+1}/${r-1} after ${o}ms (${s.message})`),await my(o)}}throw s||new Error("Max retries exceeded")}var qk=`# Output Format
232
232
 
233
233
  Return your findings as a **JSON array** wrapped in \`<json>...</json>\` XML tags:
234
234
 
@@ -261,98 +261,98 @@ Rules:
261
261
  - docs findings are allowed only when they would mislead implementation, usage, or debugging.
262
262
  - Do not output generic advice like "consider refactoring", "optimize this", "rename for consistency", or "add some documentation".
263
263
  - If the evidence is weak or the fix is vague, downgrade the severity or omit the finding.
264
- `;async function Oa(){return Dt(qe.OUTPUT_FORMAT,async()=>{try{let e=fa("prompts","output-format.md");return await(0,my.readFile)(e,"utf-8")}catch{return Lk}})}function Ks(e,t,r){let s=r.trim().length>0,i=["# Execution Constraints","",s?"- \u53EA\u5BA1\u67E5\u672C prompt \u4E2D\u9644\u5E26\u7684 diff\u3001\u5168\u6587\u4E0A\u4E0B\u6587\u3001\u4F9D\u8D56\u4E0A\u4E0B\u6587\u3001\u89C4\u5219\u548C\u8F93\u51FA\u683C\u5F0F\uFF0C\u4E0D\u8981\u4E3B\u52A8\u505A\u5168\u4ED3\u626B\u63CF\u3002":"- \u53EA\u57FA\u4E8E\u672C prompt \u4E2D\u9644\u5E26\u7684\u4E0A\u4E0B\u6587\u548C\u8F93\u51FA\u8981\u6C42\u4F5C\u7B54\uFF0C\u4E0D\u8981\u4E3B\u52A8\u505A\u5168\u4ED3\u626B\u63CF\u3002","- \u4E0D\u8981\u8FD0\u884C bash\u3001\u6D4B\u8BD5\u3001\u6784\u5EFA\u3001\u5B89\u88C5\u547D\u4EE4\u6216\u8054\u7F51\u67E5\u8BE2\uFF1B\u4E0D\u8981\u5047\u8BBE\u53EF\u4EE5\u8BFB\u53D6\u672A\u63D0\u4F9B\u7684\u4ED3\u5E93\u6587\u4EF6\u3002","- \u6BCF\u6761\u95EE\u9898\u90FD\u5FC5\u987B\u80FD\u88AB evidence \u5B57\u6BB5\u76F4\u63A5\u652F\u6491\uFF1B\u6CA1\u6709\u53EF\u8FBE\u8DEF\u5F84\u6216\u653B\u51FB\u8DEF\u5F84\u65F6\u4E0D\u8981\u8F93\u51FA high/critical\u3002",s?"- \u8F93\u51FA\u5FC5\u987B\u53EA\u5305\u542B\u8981\u6C42\u7684 JSON\uFF0C\u4E0D\u8981\u8F93\u51FA\u601D\u8003\u8FC7\u7A0B\u3001\u603B\u7ED3\u6216\u989D\u5916 Markdown\u3002":"- \u8F93\u51FA\u5FC5\u987B\u53EA\u5305\u542B\u672C prompt \u8981\u6C42\u7684\u6700\u7EC8\u5185\u5BB9\uFF0C\u4E0D\u8981\u8F93\u51FA\u601D\u8003\u8FC7\u7A0B\u3001\u603B\u7ED3\u6216\u989D\u5916 Markdown\u3002"].join(`
264
+ `;async function Oa(){return Dt(Ue.OUTPUT_FORMAT,async()=>{try{let e=fa("prompts","output-format.md");return await(0,gy.readFile)(e,"utf-8")}catch{return qk}})}function Hs(e,t,r){let s=r.trim().length>0,i=["# Execution Constraints","",s?"- \u53EA\u5BA1\u67E5\u672C prompt \u4E2D\u9644\u5E26\u7684 diff\u3001\u5168\u6587\u4E0A\u4E0B\u6587\u3001\u4F9D\u8D56\u4E0A\u4E0B\u6587\u3001\u89C4\u5219\u548C\u8F93\u51FA\u683C\u5F0F\uFF0C\u4E0D\u8981\u4E3B\u52A8\u505A\u5168\u4ED3\u626B\u63CF\u3002":"- \u53EA\u57FA\u4E8E\u672C prompt \u4E2D\u9644\u5E26\u7684\u4E0A\u4E0B\u6587\u548C\u8F93\u51FA\u8981\u6C42\u4F5C\u7B54\uFF0C\u4E0D\u8981\u4E3B\u52A8\u505A\u5168\u4ED3\u626B\u63CF\u3002","- \u4E0D\u8981\u8FD0\u884C bash\u3001\u6D4B\u8BD5\u3001\u6784\u5EFA\u3001\u5B89\u88C5\u547D\u4EE4\u6216\u8054\u7F51\u67E5\u8BE2\uFF1B\u4E0D\u8981\u5047\u8BBE\u53EF\u4EE5\u8BFB\u53D6\u672A\u63D0\u4F9B\u7684\u4ED3\u5E93\u6587\u4EF6\u3002","- \u6BCF\u6761\u95EE\u9898\u90FD\u5FC5\u987B\u80FD\u88AB evidence \u5B57\u6BB5\u76F4\u63A5\u652F\u6491\uFF1B\u6CA1\u6709\u53EF\u8FBE\u8DEF\u5F84\u6216\u653B\u51FB\u8DEF\u5F84\u65F6\u4E0D\u8981\u8F93\u51FA high/critical\u3002",s?"- \u8F93\u51FA\u5FC5\u987B\u53EA\u5305\u542B\u8981\u6C42\u7684 JSON\uFF0C\u4E0D\u8981\u8F93\u51FA\u601D\u8003\u8FC7\u7A0B\u3001\u603B\u7ED3\u6216\u989D\u5916 Markdown\u3002":"- \u8F93\u51FA\u5FC5\u987B\u53EA\u5305\u542B\u672C prompt \u8981\u6C42\u7684\u6700\u7EC8\u5185\u5BB9\uFF0C\u4E0D\u8981\u8F93\u51FA\u601D\u8003\u8FC7\u7A0B\u3001\u603B\u7ED3\u6216\u989D\u5916 Markdown\u3002"].join(`
265
265
  `);return[e,i,`# Input:
266
266
  ${t}`,r.trim()||null].filter(Boolean).join(`
267
267
 
268
- `)}function Hs(e,t,r,s,i,n,o,a){return{agent:e.agent.name,executor:e.executor.name,success:t,output:r,error:s,duration:i,prompt:n,usage:o,cacheHit:a}}function gy(e){let t=e,r=qk(e);if(r)t=r;else{let s=Dy(e);s&&(t=s)}try{let s=JSON.parse(t);return Array.isArray(s)?s:Array.isArray(s.issues)?s.issues:null}catch{return jk(t)}}function La(e,t=1){if(e==null)return t;let r=typeof e=="number"?e:parseInt(String(e).trim(),10);return!isNaN(r)&&r>0?r:t}function Nk(e){return e.lineStart!==void 0?La(e.lineStart,0):e.line!==void 0?La(e.line,0):e.lineNumber!==void 0?La(e.lineNumber,0):1}function Mk(e,t){let r=e.file||e.path||"",s=Nk(e),i=La(e.lineEnd,s),n=e.category||e.type||"quality",o=e.shortDescription||e.short||e.message||e.issue||e.title||e.problem||"",a=e.fullDescription||e.description||e.detail||e.details||e.explanation||o,u=e.suggestion||e.fix||e.recommendation||e.remediation||e.solution,l=e.evidence,c;if(typeof e.confidence=="number")c=e.confidence;else if(typeof e.confidence=="string"){let f=parseInt(e.confidence,10);c=isNaN(f)?void 0:f}return{file:r,lineStart:s,lineEnd:i,severity:e.severity||"medium",category:n,shortDescription:o,fullDescription:a,suggestion:u,agent:t??e.agent??"unknown",rule:e.rule,evidence:l,confidence:c}}function jk(e){let t=e.match(/\[[\s\S]*\]/);if(!t)return null;try{let r=JSON.parse(t[0]);return Array.isArray(r)?r:null}catch{return null}}function Dy(e){return e.match(/<json>\s*([\s\S]*?)\s*<\/json>/)?.[1]?.trim()??null}function qk(e){try{let t=JSON.parse(e);if(t.type==="result"&&typeof t.result=="string"){let r=t.result,s=Dy(r);if(s)return s;let i=r.match(/```json\s*([\s\S]*?)```/);if(i)return i[1]?.trim()??r;let n=r.matchAll(/```(?:\w*)?\s*([\s\S]*?)```/g);for(let o of n){let a=o[1]?.trim();if(a?.startsWith("[")||a?.startsWith("{"))return a}return r}}catch(t){process.env.DEBUG&&console.warn("extractCliResult JSON parse failed:",t)}return null}function yy(e,t){try{let r=gy(e);return Array.isArray(r)?r.map(s=>Mk(s,t)).filter(s=>s.file&&(s.shortDescription||s.fullDescription)&&s.lineStart>0):[]}catch{return[]}}function wy(e){return Array.isArray(gy(e))}function _t(e){return Math.ceil(e.length/4)}function by(){return"simple (1 token \u2248 4 chars)"}Ge();var Uk=10,vy=y.object({model:y.string().optional(),timeout:y.number().positive().optional(),temperature:y.number().min(0).max(2).optional(),maxTokens:y.number().positive().optional(),readinessPing:y.boolean().optional()});function Gk(e){let t=e.replace(/\/+$/,"");return t.endsWith("/chat/completions")?t:`${t}/chat/completions`}async function Ey(e){let t=new AbortController,r=setTimeout(()=>t.abort(),e.timeoutSeconds*1e3);try{let s=await It(Gk(e.baseUrl),{method:"POST",headers:{Authorization:`Bearer ${e.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify(e.payload),signal:t.signal},2),i=await s.text(),n;try{n=i?JSON.parse(i):void 0}catch{throw new Error(`\u6A21\u578B\u670D\u52A1\u8FD4\u56DE\u4E86\u4E0D\u53EF\u89E3\u6790 JSON\uFF1A${i.slice(0,300)}`)}if(!s.ok){let c=n?.error?.message||i||`HTTP ${s.status}`;throw new Error(`\u6A21\u578B\u670D\u52A1\u8BF7\u6C42\u5931\u8D25\uFF08${s.status}\uFF09\uFF1A${c}`)}let o=n?.choices?.[0]?.message?.content?.trim();if(!o)throw new Error("\u6A21\u578B\u670D\u52A1\u6CA1\u6709\u8FD4\u56DE assistant \u6587\u672C");let a=n?.usage?.prompt_tokens,u=n?.usage?.completion_tokens,l=n?.usage?.total_tokens;return{content:o,usage:typeof a=="number"||typeof u=="number"||typeof l=="number"?{promptTokens:a??0,completionTokens:u??0,totalTokens:l??(a??0)+(u??0),estimated:!1}:void 0}}catch(s){throw s instanceof Error&&s.name==="AbortError"?new Error(`\u6A21\u578B\u670D\u52A1\u8BF7\u6C42\u8D85\u65F6\uFF08${e.timeoutSeconds}s\uFF09`):s}finally{clearTimeout(r)}}function Cy(e){return typeof e?.timeout=="number"&&e.timeout>0?e.timeout:Er}function Vk(e){return Math.min(Cy(e),Uk)}function Wk(e){return typeof e?.temperature=="number"?e.temperature:ef}function Kk(e){if(typeof e?.maxTokens=="number"&&e.maxTokens>0)return e.maxTokens}function Hk(e){return e.readinessPing===!0||process.env.BEST_REVIEW_API_READINESS_PING?.toLowerCase()==="true"}function zk(e){return e==="deepseek"?{thinking:{type:"disabled"}}:{}}async function Jk(e,t){if(!t.enabled)return{ready:!1,reason:`\u6267\u884C\u5668\u5DF2\u7981\u7528\uFF1A${t.name}`,hint:"\u8BF7\u68C0\u67E5\u6267\u884C\u5668\u914D\u7F6E\u3002",suggestions:["\u542F\u7528\u8BE5\u6267\u884C\u5668\uFF0C\u6216\u79FB\u9664\u7981\u7528\u5B83\u7684\u672C\u5730\u914D\u7F6E\u540E\u91CD\u8BD5\u3002"]};let r=Ue({executorOverride:t.name,modelOverride:t.model,settings:t});if(!r.model)return{ready:!1,reason:`\u672A\u914D\u7F6E\u6A21\u578B\uFF1A${t.name}`,hint:"\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.model\u3002",suggestions:["\u8FD0\u884C best-review init \u91CD\u65B0\u8BBE\u7F6E\u6A21\u578B\u670D\u52A1\u914D\u7F6E\u3002"]};if(!r.apiKey)return{ready:!1,reason:"\u672A\u627E\u5230 API Key",hint:"\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.apiKey\u3002",suggestions:["\u8FD0\u884C best-review init \u91CD\u65B0\u8BBE\u7F6E API Key\u3002"]};if(Hk(t))try{await Ey({baseUrl:r.baseUrl,apiKey:r.apiKey,timeoutSeconds:Vk(t),payload:{model:r.model,messages:[{role:"system",content:"best-review readiness check. Reply with a short plain-text acknowledgement."},{role:"user",content:"ping"}],temperature:0,max_tokens:8,...zk(r.platform)}})}catch(s){return{ready:!1,reason:`\u6A21\u578B\u670D\u52A1\u8054\u901A\u5931\u8D25\uFF1A${s instanceof Error?s.message:String(s)}`,hint:"\u8BF7\u68C0\u67E5 ~/.best-review/config.json \u4E2D\u7684 llm.platform\u3001llm.baseUrl\u3001llm.apiKey \u548C llm.model \u662F\u5426\u5339\u914D\u5F53\u524D\u6A21\u578B\u670D\u52A1\u3002",suggestions:["\u8FD0\u884C best-review config \u67E5\u770B\u5F53\u524D\u5E73\u53F0\u914D\u7F6E\u3002","\u8FD0\u884C best-review doctor \u91CD\u65B0\u68C0\u67E5\u662F\u5426\u53EF\u4EE5\u76F4\u63A5\u6267\u884C review\u3002"]}}return{ready:!0}}async function Yk(e,t){let r=Date.now(),s=t.outputMode==="text"?"":await Oa(),i=Ks(t.systemPrompt,t.input,s),n=t.executor,o=Ue({executorOverride:t.executor.name,modelOverride:t.modelOverride||(typeof n.model=="string"?n.model:void 0),settings:t.executor});if(!o.model)return Hs(t,!1,"","\u672A\u914D\u7F6E\u6A21\u578B\u3002\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.model\u3002",Date.now()-r,i);if(!o.apiKey)return Hs(t,!1,"","\u672A\u627E\u5230 API Key\u3002\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.apiKey\u3002",Date.now()-r,i);let a=Cy(n),u=Wk(n),l=Kk(n);try{let c=t.outputMode==="text"?"\u4F60\u662F best-review \u7684\u53EA\u8BFB\u6267\u884C\u5668\u3002\u53EA\u57FA\u4E8E\u7528\u6237\u63D0\u4F9B\u7684 prompt \u8F93\u51FA\u8981\u6C42\u7684\u6700\u7EC8\u5185\u5BB9\uFF0C\u4E0D\u8981\u89E3\u91CA\u8FC7\u7A0B\u3002":"\u4F60\u662F best-review \u7684\u53EA\u8BFB\u4EE3\u7801\u5BA1\u67E5\u6267\u884C\u5668\u3002\u53EA\u57FA\u4E8E\u7528\u6237\u63D0\u4F9B\u7684 prompt \u8F93\u51FA\u8981\u6C42\u7684 JSON\uFF0C\u4E0D\u8981\u89E3\u91CA\u8FC7\u7A0B\u3002",f=await Ey({baseUrl:o.baseUrl,apiKey:o.apiKey,timeoutSeconds:a,payload:{model:o.model,messages:[{role:"system",content:c},{role:"user",content:i}],temperature:u,max_tokens:l}}),h=f.content,p=_t(i),m=_t(h),g=f.usage??{promptTokens:p,completionTokens:m,totalTokens:p+m,estimated:!0};return t.outputMode!=="text"&&!wy(h)?Hs(t,!1,h,"\u6A21\u578B\u6CA1\u6709\u8FD4\u56DE\u53EF\u89E3\u6790\u7684\u5BA1\u67E5 JSON",Date.now()-r,i,g):Hs(t,!0,h,void 0,Date.now()-r,i,g)}catch(c){let f=c instanceof Error?c.message:String(c);return Hs(t,!1,"",`\u6A21\u578B\u670D\u52A1\u8C03\u7528\u5931\u8D25\uFF1A${f}`,Date.now()-r,i)}}function Fy(e){return{name:e.name,description:e.description,type:"api",enabled:!0,execute:t=>Yk(e,t),getInfo:()=>({name:e.name,description:e.description,type:"api",baseUrl:e.baseUrl,apiKey:e.apiKey,model:e.model,timeout:e.timeout,temperature:e.temperature,maxTokens:e.maxTokens,readinessPing:e.readinessPing,provider:e.provider,enabled:!0}),settingsSchema:vy,checkReady:t=>Jk(e,t),applySettings:t=>{let r=vy.safeParse(t),s=r.success?r.data:{},i=typeof t.model=="string"?t.model:void 0,n=Ue({executorOverride:e.name,modelOverride:i,settings:{baseUrl:typeof t.baseUrl=="string"?t.baseUrl:void 0,apiKey:typeof t.apiKey=="string"?t.apiKey:void 0,model:i}});return{name:e.name,description:e.description,type:"api",baseUrl:n.baseUrl,apiKey:n.apiKey,model:n.model,timeout:s.timeout??e.timeout,temperature:s.temperature??e.temperature??ef,maxTokens:s.maxTokens??e.maxTokens,readinessPing:s.readinessPing??e.readinessPing,provider:e.provider,enabled:!0}}}}var vf=Fy({name:Ae,description:"OpenAI Chat Completions \u517C\u5BB9 API",provider:"openai-compatible"}),Ef=Fy({name:me,description:"DeepSeek Chat Completions API",provider:"deepseek"});var ns=new Map([[vf.name,vf],[Ef.name,Ef]]);function zs(e){return ns.get(e)}function Zk(){return[...ns.values()]}function Xk(e){let t=ns.get(e.name);t&&(t.enabled=e.enabled)}async function Qk(e){let t=ns.get(e.executor.name);if(!t){let r=[...ns.keys()].join(", ");throw new Error(`\u672A\u627E\u5230\u6267\u884C\u5668\uFF1A${e.executor.name}\u3002\u53EF\u7528\u6267\u884C\u5668\uFF1A${r}`)}if(!e.executor.enabled)throw new Error(`\u6267\u884C\u5668\u5DF2\u7981\u7528\uFF1A${e.executor.name}`);if(e.modelOverride&&t.applySettings){let r=t.applySettings({...e.executor,model:e.modelOverride});return t.execute({...e,executor:r})}return t.execute(e)}async function Cf(e,t={}){let r=ns.get(e);if(!r){let n=[...ns.keys()].join(", ");return{executor:e,ready:!1,reason:`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${e}`,hint:`\u53EF\u7528\u6267\u884C\u5668\uFF1A${n}`,suggestions:[`\u628A\u914D\u7F6E\u6216\u547D\u4EE4\u884C\u53C2\u6570\u4E2D\u7684 executor \u6539\u4E3A ${n||"\u5DF2\u6CE8\u518C\u6267\u884C\u5668"}\u3002`,"\u8FD0\u884C best-review executors \u67E5\u770B\u5F53\u524D\u53EF\u7528\u6267\u884C\u5668\u3002"]}}let s=r.applySettings?r.applySettings(t):r.getInfo();if(!s.enabled&&!r.checkReady)return{executor:e,ready:!1,reason:`\u6267\u884C\u5668\u5DF2\u7981\u7528\uFF1A${e}`,hint:"\u8BF7\u68C0\u67E5\u6267\u884C\u5668\u914D\u7F6E\u3002",suggestions:["\u542F\u7528\u8BE5\u6267\u884C\u5668\uFF0C\u6216\u79FB\u9664\u7981\u7528\u5B83\u7684\u672C\u5730\u914D\u7F6E\u540E\u91CD\u8BD5\u3002"]};if(!r.checkReady)return{executor:e,ready:!0};let i=await r.checkReady(s);return{executor:e,...i}}var ge={get:zs,listExecutors(){return Zk().map(e=>e.getInfo())},registerExecutor:Xk,executeAgent:Qk,checkExecutorReadiness:Cf};async function Js(){return ge.listExecutors()}Ge();function Sr(e,t,r=e.executor,s={}){let i=e.executors[r]?.review??{},n=t??(typeof i.model=="string"?i.model:void 0);return{...Ue({executorOverride:r,modelOverride:n,config:e}),...typeof i.timeout=="number"&&{timeout:i.timeout},...typeof i.concurrency=="number"&&{concurrency:i.concurrency},...typeof i.batchSize=="number"&&{batchSize:i.batchSize},...(s.requirePing||i.readinessPing===!0)&&{readinessPing:!0}}}async function xr(e,t={}){let r=t.executorOverride||e.executor,i=await(t.check??Cf)(r,Sr(e,t.modelOverride,r,{requirePing:t.requirePing}));return{ok:i.ready,checks:[{executor:r,readiness:i}],message:i.ready?void 0:`${r} \u4E0D\u53EF\u7528`}}M();async function eI(e,t={}){let r=t.executorOverride||e.executor,s=Sr(e,t.modelOverride,r,{requirePing:!0}),i=await xr(e,{executorOverride:r,modelOverride:t.modelOverride,requirePing:!0,check:t.check});return{ok:i.ok,canReview:i.ok,executor:r,platform:s.platform,baseUrl:s.baseUrl,model:s.model,apiKeySet:!!s.apiKey,checks:i.checks,message:i.message}}function tI(e){for(let t of e.filter(r=>!r.readiness.ready))d.error(`${t.executor} \u4E0D\u53EF\u7528\uFF1A${t.readiness.reason||"\u672A\u7ED9\u51FA\u5931\u8D25\u539F\u56E0"}`),t.readiness.hint&&d.info(t.readiness.hint),t.readiness.suggestions&&t.readiness.suggestions.length>0&&(d.info("\u5EFA\u8BAE\u5904\u7406\uFF1A"),t.readiness.suggestions.forEach((r,s)=>{d.plain(` ${s+1}. ${r}`)}))}function rI(e){d.plain(`best-review doctor
269
- `),d.plain(`\u5E73\u53F0\uFF1A${e.platform}`),d.plain(`\u6267\u884C\u5668\uFF1A${e.executor}`),d.plain(`Base URL\uFF1A${e.baseUrl}`),d.plain(`\u6A21\u578B\uFF1A${e.model||"\u672A\u8BBE\u7F6E"}`),d.plain(`API Key\uFF1A${e.apiKeySet?"\u5DF2\u8BBE\u7F6E":"\u672A\u8BBE\u7F6E"}`),d.newline(),e.ok?d.success("\u5F53\u524D\u914D\u7F6E\u53EF\u4EE5\u76F4\u63A5\u6267\u884C review"):(d.error("\u5F53\u524D\u914D\u7F6E\u8FD8\u4E0D\u80FD\u6267\u884C review"),tI(e.checks))}async function Ys(e){let t=e.projectPath||process.cwd(),r=await oe(t),s=await eI(r,{executorOverride:e.executor,modelOverride:e.model});return e.json?d.plain(JSON.stringify(s,null,2)):rI(s),process.exitCode=s.ok?0:1,s}var Sy={meta:{name:"config",description:"\u7BA1\u7406\u914D\u7F6E"},run:async()=>{await Ys({})},subCommands:{show:{meta:{description:"\u663E\u793A\u5408\u5E76\u540E\u7684\u914D\u7F6E\uFF08\u9ED8\u8BA4\u503C + \u5168\u5C40 + \u9879\u76EE\uFF09"},run:async()=>{await fy()}},edit:{meta:{description:"\u4F7F\u7528 $EDITOR \u7F16\u8F91\u914D\u7F6E"},args:{global:{type:"boolean",description:"\u7F16\u8F91\u5168\u5C40\u914D\u7F6E\uFF08~/.best-review/config.json\uFF09",alias:"g"}},run:async({args:e})=>{await dy({global:e.global})}}}};var xy={meta:{name:"doctor",description:"\u68C0\u67E5\u5F53\u524D\u914D\u7F6E\u662F\u5426\u53EF\u4EE5\u76F4\u63A5\u6267\u884C review"},args:{json:{type:"boolean",description:"\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u8BCA\u65AD\u7ED3\u679C"},executor:{type:"string",description:"\u4E34\u65F6\u8986\u76D6\u6267\u884C\u5668\uFF08openai-compatible-api \u6216 deepseek-api\uFF09"},model:{type:"string",description:"\u4E34\u65F6\u8986\u76D6\u6A21\u578B"}},run:async({args:e})=>{await Ys({json:e.json,executor:e.executor,model:e.model})}};Ee();M();Ge();function sI(e){return e.model}function iI(e){if(e)return e.length<=8?"********":`${e.slice(0,4)}...${e.slice(-4)}`}function nI(e){let t=zs(e);if(!t?.settingsSchema)return[];let r=t.settingsSchema;return"shape"in r&&typeof r.shape=="object"?Object.keys(r.shape):[]}async function Ay(){let e=await oe(process.cwd()),t=e.executor,r=e.executors[t]||{},s=Ue({executorOverride:t,config:e});d.plain(`\u6267\u884C\u5668\uFF1A\x1B[36m${t}\x1B[0m`),d.plain(`\u5E73\u53F0\uFF1A${s.platform}`),d.plain(`Base URL\uFF1A${s.baseUrl}`),d.plain(`\u6A21\u578B\uFF1A${s.model}`),d.newline(),d.plain("\u9636\u6BB5\uFF1A");let i=["review","validation"];for(let n of i){let o=r[n],a=[];o?.model&&a.push(`model=${o.model}`),o?.concurrency&&a.push(`concurrency=${o.concurrency}`),o?.batchSize&&a.push(`batchSize=${o.batchSize}`),o?.timeout&&a.push(`timeout=${o.timeout}`);let u=a.length>0?` (${a.join(", ")})`:"";d.plain(` ${n.padEnd(12)} \u2192 ${t}${u}`)}d.newline()}async function Ry(e){let t=zs(e),r=await Js(),s=t?t.applySettings?.({...Ue({executorOverride:e,config:await oe(process.cwd())})})||t.getInfo():void 0;if(!s){d.error(`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${e}`),d.newline(),d.plain("\u53EF\u7528\u6267\u884C\u5668\uFF1A");for(let n of r)d.plain(` \u2022 ${n.name}`);process.exit(1)}if(d.robot(`\u6267\u884C\u5668\uFF1A${s.name}`),d.newline(),d.plain(`\u7C7B\u578B\uFF1A${s.type}`),d.plain(`\u8BF4\u660E\uFF1A${s.description}`),s.type==="api"){d.plain(`Base URL\uFF1A${s.baseUrl||"\uFF08\u672A\u914D\u7F6E\uFF09"}`),d.plain("API Key\uFF1A\u7528\u6237\u7EA7 config.json \u4E2D\u7684 llm.apiKey\uFF08\u517C\u5BB9 API_KEY \u73AF\u5883\u53D8\u91CF\uFF09");let n=iI(s.apiKey);n&&d.plain(`API Key\uFF1A${n}`);let o=sI(s);o&&d.plain(`\u6A21\u578B\uFF1A${o}`),s.maxTokens&&d.plain(`maxTokens\uFF1A${s.maxTokens}`),d.plain(`\u9ED8\u8BA4\u8054\u901A ping\uFF1A${s.readinessPing?"\u5F00\u542F":"\u5173\u95ED"}`),d.plain(`\u6E29\u5EA6\uFF1A${s.temperature??0}`),d.plain(`\u8D85\u65F6\uFF1A${s.timeout||Er}s`)}let i=nI(e);if(i.length>0){d.newline(),d.plain("\u9636\u6BB5\u914D\u7F6E\u5B57\u6BB5\uFF08config.executors.<executor>.<stage>\uFF09\uFF1A");for(let n of i)d.plain(` \u2022 ${n}`)}}var ky={meta:{name:"executors",description:`\u5217\u51FA\u6267\u884C\u5668\uFF0C\u6216\u67E5\u770B\u67D0\u4E2A\u6267\u884C\u5668\u7684\u8BE6\u60C5
268
+ `)}function Ks(e,t,r,s,i,n,o,a){return{agent:e.agent.name,executor:e.executor.name,success:t,output:r,error:s,duration:i,prompt:n,usage:o,cacheHit:a}}function Dy(e){let t=e,r=Wk(e);if(r)t=r;else{let s=yy(e);s&&(t=s)}try{let s=JSON.parse(t);return Array.isArray(s)?s:Array.isArray(s.issues)?s.issues:null}catch{return Vk(t)}}function La(e,t=1){if(e==null)return t;let r=typeof e=="number"?e:parseInt(String(e).trim(),10);return!isNaN(r)&&r>0?r:t}function Uk(e){return e.lineStart!==void 0?La(e.lineStart,0):e.line!==void 0?La(e.line,0):e.lineNumber!==void 0?La(e.lineNumber,0):1}function Gk(e,t){let r=e.file||e.path||"",s=Uk(e),i=La(e.lineEnd,s),n=e.category||e.type||"quality",o=e.shortDescription||e.short||e.message||e.issue||e.title||e.problem||"",a=e.fullDescription||e.description||e.detail||e.details||e.explanation||o,u=e.suggestion||e.fix||e.recommendation||e.remediation||e.solution,l=e.evidence,c;if(typeof e.confidence=="number")c=e.confidence;else if(typeof e.confidence=="string"){let f=parseInt(e.confidence,10);c=isNaN(f)?void 0:f}return{file:r,lineStart:s,lineEnd:i,severity:e.severity||"medium",category:n,shortDescription:o,fullDescription:a,suggestion:u,agent:t??e.agent??"unknown",rule:e.rule,evidence:l,confidence:c}}function Vk(e){let t=e.match(/\[[\s\S]*\]/);if(!t)return null;try{let r=JSON.parse(t[0]);return Array.isArray(r)?r:null}catch{return null}}function yy(e){return e.match(/<json>\s*([\s\S]*?)\s*<\/json>/)?.[1]?.trim()??null}function Wk(e){try{let t=JSON.parse(e);if(t.type==="result"&&typeof t.result=="string"){let r=t.result,s=yy(r);if(s)return s;let i=r.match(/```json\s*([\s\S]*?)```/);if(i)return i[1]?.trim()??r;let n=r.matchAll(/```(?:\w*)?\s*([\s\S]*?)```/g);for(let o of n){let a=o[1]?.trim();if(a?.startsWith("[")||a?.startsWith("{"))return a}return r}}catch(t){process.env.DEBUG&&console.warn("extractCliResult JSON parse failed:",t)}return null}function wy(e,t){try{let r=Dy(e);return Array.isArray(r)?r.map(s=>Gk(s,t)).filter(s=>s.file&&(s.shortDescription||s.fullDescription)&&s.lineStart>0):[]}catch{return[]}}function by(e){return Array.isArray(Dy(e))}function _t(e){return Math.ceil(e.length/4)}function vy(){return"simple (1 token \u2248 4 chars)"}Ve();var Hk=10,Ey=y.object({model:y.string().optional(),timeout:y.number().positive().optional(),temperature:y.number().min(0).max(2).optional(),maxTokens:y.number().positive().optional(),readinessPing:y.boolean().optional()});function Kk(e){let t=e.replace(/\/+$/,"");return t.endsWith("/chat/completions")?t:`${t}/chat/completions`}async function Cy(e){let t=new AbortController,r=setTimeout(()=>t.abort(),e.timeoutSeconds*1e3);try{let s=await It(Kk(e.baseUrl),{method:"POST",headers:{Authorization:`Bearer ${e.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify(e.payload),signal:t.signal},2),i=await s.text(),n;try{n=i?JSON.parse(i):void 0}catch{throw new Error(`\u6A21\u578B\u670D\u52A1\u8FD4\u56DE\u4E86\u4E0D\u53EF\u89E3\u6790 JSON\uFF1A${i.slice(0,300)}`)}if(!s.ok){let c=n?.error?.message||i||`HTTP ${s.status}`;throw new Error(`\u6A21\u578B\u670D\u52A1\u8BF7\u6C42\u5931\u8D25\uFF08${s.status}\uFF09\uFF1A${c}`)}let o=n?.choices?.[0]?.message?.content?.trim();if(!o)throw new Error("\u6A21\u578B\u670D\u52A1\u6CA1\u6709\u8FD4\u56DE assistant \u6587\u672C");let a=n?.usage?.prompt_tokens,u=n?.usage?.completion_tokens,l=n?.usage?.total_tokens;return{content:o,usage:typeof a=="number"||typeof u=="number"||typeof l=="number"?{promptTokens:a??0,completionTokens:u??0,totalTokens:l??(a??0)+(u??0),estimated:!1}:void 0}}catch(s){throw s instanceof Error&&s.name==="AbortError"?new Error(`\u6A21\u578B\u670D\u52A1\u8BF7\u6C42\u8D85\u65F6\uFF08${e.timeoutSeconds}s\uFF09`):s}finally{clearTimeout(r)}}function Fy(e){return typeof e?.timeout=="number"&&e.timeout>0?e.timeout:Er}function zk(e){return Math.min(Fy(e),Hk)}function Jk(e){return typeof e?.temperature=="number"?e.temperature:ef}function Yk(e){if(typeof e?.maxTokens=="number"&&e.maxTokens>0)return e.maxTokens}function Zk(e){return e.readinessPing===!0||process.env.BEST_REVIEW_API_READINESS_PING?.toLowerCase()==="true"}function Xk(e){return e==="deepseek"?{thinking:{type:"disabled"}}:{}}async function Qk(e,t){if(!t.enabled)return{ready:!1,reason:`\u6267\u884C\u5668\u5DF2\u7981\u7528\uFF1A${t.name}`,hint:"\u8BF7\u68C0\u67E5\u6267\u884C\u5668\u914D\u7F6E\u3002",suggestions:["\u542F\u7528\u8BE5\u6267\u884C\u5668\uFF0C\u6216\u79FB\u9664\u7981\u7528\u5B83\u7684\u672C\u5730\u914D\u7F6E\u540E\u91CD\u8BD5\u3002"]};let r=Ge({executorOverride:t.name,modelOverride:t.model,settings:t});if(!r.model)return{ready:!1,reason:`\u672A\u914D\u7F6E\u6A21\u578B\uFF1A${t.name}`,hint:"\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.model\u3002",suggestions:["\u8FD0\u884C best-review init \u91CD\u65B0\u8BBE\u7F6E\u6A21\u578B\u670D\u52A1\u914D\u7F6E\u3002"]};if(!r.apiKey)return{ready:!1,reason:"\u672A\u627E\u5230 API Key",hint:"\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.apiKey\u3002",suggestions:["\u8FD0\u884C best-review init \u91CD\u65B0\u8BBE\u7F6E API Key\u3002"]};if(Zk(t))try{await Cy({baseUrl:r.baseUrl,apiKey:r.apiKey,timeoutSeconds:zk(t),payload:{model:r.model,messages:[{role:"system",content:"best-review readiness check. Reply with a short plain-text acknowledgement."},{role:"user",content:"ping"}],temperature:0,max_tokens:8,...Xk(r.platform)}})}catch(s){return{ready:!1,reason:`\u6A21\u578B\u670D\u52A1\u8054\u901A\u5931\u8D25\uFF1A${s instanceof Error?s.message:String(s)}`,hint:"\u8BF7\u68C0\u67E5 ~/.best-review/config.json \u4E2D\u7684 llm.platform\u3001llm.baseUrl\u3001llm.apiKey \u548C llm.model \u662F\u5426\u5339\u914D\u5F53\u524D\u6A21\u578B\u670D\u52A1\u3002",suggestions:["\u8FD0\u884C best-review config \u67E5\u770B\u5F53\u524D\u5E73\u53F0\u914D\u7F6E\u3002","\u8FD0\u884C best-review doctor \u91CD\u65B0\u68C0\u67E5\u662F\u5426\u53EF\u4EE5\u76F4\u63A5\u6267\u884C review\u3002"]}}return{ready:!0}}async function eI(e,t){let r=Date.now(),s=t.outputMode==="text"?"":await Oa(),i=Hs(t.systemPrompt,t.input,s),n=t.executor,o=Ge({executorOverride:t.executor.name,modelOverride:t.modelOverride||(typeof n.model=="string"?n.model:void 0),settings:t.executor});if(!o.model)return Ks(t,!1,"","\u672A\u914D\u7F6E\u6A21\u578B\u3002\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.model\u3002",Date.now()-r,i);if(!o.apiKey)return Ks(t,!1,"","\u672A\u627E\u5230 API Key\u3002\u8BF7\u5728 ~/.best-review/config.json \u4E2D\u8BBE\u7F6E llm.apiKey\u3002",Date.now()-r,i);let a=Fy(n),u=Jk(n),l=Yk(n);try{let c=t.outputMode==="text"?"\u4F60\u662F best-review \u7684\u53EA\u8BFB\u6267\u884C\u5668\u3002\u53EA\u57FA\u4E8E\u7528\u6237\u63D0\u4F9B\u7684 prompt \u8F93\u51FA\u8981\u6C42\u7684\u6700\u7EC8\u5185\u5BB9\uFF0C\u4E0D\u8981\u89E3\u91CA\u8FC7\u7A0B\u3002":"\u4F60\u662F best-review \u7684\u53EA\u8BFB\u4EE3\u7801\u5BA1\u67E5\u6267\u884C\u5668\u3002\u53EA\u57FA\u4E8E\u7528\u6237\u63D0\u4F9B\u7684 prompt \u8F93\u51FA\u8981\u6C42\u7684 JSON\uFF0C\u4E0D\u8981\u89E3\u91CA\u8FC7\u7A0B\u3002",f=await Cy({baseUrl:o.baseUrl,apiKey:o.apiKey,timeoutSeconds:a,payload:{model:o.model,messages:[{role:"system",content:c},{role:"user",content:i}],temperature:u,max_tokens:l}}),h=f.content,p=_t(i),m=_t(h),g=f.usage??{promptTokens:p,completionTokens:m,totalTokens:p+m,estimated:!0};return t.outputMode!=="text"&&!by(h)?Ks(t,!1,h,"\u6A21\u578B\u6CA1\u6709\u8FD4\u56DE\u53EF\u89E3\u6790\u7684\u5BA1\u67E5 JSON",Date.now()-r,i,g):Ks(t,!0,h,void 0,Date.now()-r,i,g)}catch(c){let f=c instanceof Error?c.message:String(c);return Ks(t,!1,"",`\u6A21\u578B\u670D\u52A1\u8C03\u7528\u5931\u8D25\uFF1A${f}`,Date.now()-r,i)}}function Sy(e){return{name:e.name,description:e.description,type:"api",enabled:!0,execute:t=>eI(e,t),getInfo:()=>({name:e.name,description:e.description,type:"api",baseUrl:e.baseUrl,apiKey:e.apiKey,model:e.model,timeout:e.timeout,temperature:e.temperature,maxTokens:e.maxTokens,readinessPing:e.readinessPing,provider:e.provider,enabled:!0}),settingsSchema:Ey,checkReady:t=>Qk(e,t),applySettings:t=>{let r=Ey.safeParse(t),s=r.success?r.data:{},i=typeof t.model=="string"?t.model:void 0,n=Ge({executorOverride:e.name,modelOverride:i,settings:{baseUrl:typeof t.baseUrl=="string"?t.baseUrl:void 0,apiKey:typeof t.apiKey=="string"?t.apiKey:void 0,model:i}});return{name:e.name,description:e.description,type:"api",baseUrl:n.baseUrl,apiKey:n.apiKey,model:n.model,timeout:s.timeout??e.timeout,temperature:s.temperature??e.temperature??ef,maxTokens:s.maxTokens??e.maxTokens,readinessPing:s.readinessPing??e.readinessPing,provider:e.provider,enabled:!0}}}}var vf=Sy({name:Re,description:"OpenAI Chat Completions \u517C\u5BB9 API",provider:"openai-compatible"}),Ef=Sy({name:ge,description:"DeepSeek Chat Completions API",provider:"deepseek"});var ns=new Map([[vf.name,vf],[Ef.name,Ef]]);function zs(e){return ns.get(e)}function tI(){return[...ns.values()]}function rI(e){let t=ns.get(e.name);t&&(t.enabled=e.enabled)}async function sI(e){let t=ns.get(e.executor.name);if(!t){let r=[...ns.keys()].join(", ");throw new Error(`\u672A\u627E\u5230\u6267\u884C\u5668\uFF1A${e.executor.name}\u3002\u53EF\u7528\u6267\u884C\u5668\uFF1A${r}`)}if(!e.executor.enabled)throw new Error(`\u6267\u884C\u5668\u5DF2\u7981\u7528\uFF1A${e.executor.name}`);if(e.modelOverride&&t.applySettings){let r=t.applySettings({...e.executor,model:e.modelOverride});return t.execute({...e,executor:r})}return t.execute(e)}async function Cf(e,t={}){let r=ns.get(e);if(!r){let n=[...ns.keys()].join(", ");return{executor:e,ready:!1,reason:`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${e}`,hint:`\u53EF\u7528\u6267\u884C\u5668\uFF1A${n}`,suggestions:[`\u628A\u914D\u7F6E\u6216\u547D\u4EE4\u884C\u53C2\u6570\u4E2D\u7684 executor \u6539\u4E3A ${n||"\u5DF2\u6CE8\u518C\u6267\u884C\u5668"}\u3002`,"\u8FD0\u884C best-review executors \u67E5\u770B\u5F53\u524D\u53EF\u7528\u6267\u884C\u5668\u3002"]}}let s=r.applySettings?r.applySettings(t):r.getInfo();if(!s.enabled&&!r.checkReady)return{executor:e,ready:!1,reason:`\u6267\u884C\u5668\u5DF2\u7981\u7528\uFF1A${e}`,hint:"\u8BF7\u68C0\u67E5\u6267\u884C\u5668\u914D\u7F6E\u3002",suggestions:["\u542F\u7528\u8BE5\u6267\u884C\u5668\uFF0C\u6216\u79FB\u9664\u7981\u7528\u5B83\u7684\u672C\u5730\u914D\u7F6E\u540E\u91CD\u8BD5\u3002"]};if(!r.checkReady)return{executor:e,ready:!0};let i=await r.checkReady(s);return{executor:e,...i}}var De={get:zs,listExecutors(){return tI().map(e=>e.getInfo())},registerExecutor:rI,executeAgent:sI,checkExecutorReadiness:Cf};async function Js(){return De.listExecutors()}Ve();function Sr(e,t,r=e.executor,s={}){let i=e.executors[r]?.review??{},n=t??(typeof i.model=="string"?i.model:void 0);return{...Ge({executorOverride:r,modelOverride:n,config:e}),...typeof i.timeout=="number"&&{timeout:i.timeout},...typeof i.concurrency=="number"&&{concurrency:i.concurrency},...typeof i.batchSize=="number"&&{batchSize:i.batchSize},...(s.requirePing||i.readinessPing===!0)&&{readinessPing:!0}}}async function xr(e,t={}){let r=t.executorOverride||e.executor,i=await(t.check??Cf)(r,Sr(e,t.modelOverride,r,{requirePing:t.requirePing}));return{ok:i.ready,checks:[{executor:r,readiness:i}],message:i.ready?void 0:`${r} \u4E0D\u53EF\u7528`}}M();async function iI(e,t={}){let r=t.executorOverride||e.executor,s=Sr(e,t.modelOverride,r,{requirePing:!0}),i=await xr(e,{executorOverride:r,modelOverride:t.modelOverride,requirePing:!0,check:t.check});return{ok:i.ok,canReview:i.ok,executor:r,platform:s.platform,baseUrl:s.baseUrl,model:s.model,apiKeySet:!!s.apiKey,checks:i.checks,message:i.message}}function nI(e){for(let t of e.filter(r=>!r.readiness.ready))d.error(`${t.executor} \u4E0D\u53EF\u7528\uFF1A${t.readiness.reason||"\u672A\u7ED9\u51FA\u5931\u8D25\u539F\u56E0"}`),t.readiness.hint&&d.info(t.readiness.hint),t.readiness.suggestions&&t.readiness.suggestions.length>0&&(d.info("\u5EFA\u8BAE\u5904\u7406\uFF1A"),t.readiness.suggestions.forEach((r,s)=>{d.plain(` ${s+1}. ${r}`)}))}function oI(e){d.plain(`best-review doctor
269
+ `),d.plain(`\u5E73\u53F0\uFF1A${e.platform}`),d.plain(`\u6267\u884C\u5668\uFF1A${e.executor}`),d.plain(`Base URL\uFF1A${e.baseUrl}`),d.plain(`\u6A21\u578B\uFF1A${e.model||"\u672A\u8BBE\u7F6E"}`),d.plain(`API Key\uFF1A${e.apiKeySet?"\u5DF2\u8BBE\u7F6E":"\u672A\u8BBE\u7F6E"}`),d.newline(),e.ok?d.success("\u5F53\u524D\u914D\u7F6E\u53EF\u4EE5\u76F4\u63A5\u6267\u884C review"):(d.error("\u5F53\u524D\u914D\u7F6E\u8FD8\u4E0D\u80FD\u6267\u884C review"),nI(e.checks))}async function Ys(e){let t=e.projectPath||process.cwd(),r=await oe(t),s=await iI(r,{executorOverride:e.executor,modelOverride:e.model});return e.json?d.plain(JSON.stringify(s,null,2)):oI(s),process.exitCode=s.ok?0:1,s}var xy={meta:{name:"config",description:"\u7BA1\u7406\u914D\u7F6E"},run:async()=>{await Ys({})},subCommands:{show:{meta:{description:"\u663E\u793A\u5408\u5E76\u540E\u7684\u914D\u7F6E\uFF08\u9ED8\u8BA4\u503C + \u5168\u5C40 + \u9879\u76EE\uFF09"},run:async()=>{await dy()}},edit:{meta:{description:"\u4F7F\u7528 $EDITOR \u7F16\u8F91\u914D\u7F6E"},args:{global:{type:"boolean",description:"\u7F16\u8F91\u5168\u5C40\u914D\u7F6E\uFF08~/.best-review/config.json\uFF09",alias:"g"}},run:async({args:e})=>{await hy({global:e.global})}}}};var Ay={meta:{name:"doctor",description:"\u68C0\u67E5\u5F53\u524D\u914D\u7F6E\u662F\u5426\u53EF\u4EE5\u76F4\u63A5\u6267\u884C review"},args:{json:{type:"boolean",description:"\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u8BCA\u65AD\u7ED3\u679C"},executor:{type:"string",description:"\u4E34\u65F6\u8986\u76D6\u6267\u884C\u5668\uFF08openai-compatible-api \u6216 deepseek-api\uFF09"},model:{type:"string",description:"\u4E34\u65F6\u8986\u76D6\u6A21\u578B"}},run:async({args:e})=>{await Ys({json:e.json,executor:e.executor,model:e.model})}};Ce();M();Ve();function aI(e){return e.model}function uI(e){if(e)return e.length<=8?"********":`${e.slice(0,4)}...${e.slice(-4)}`}function lI(e){let t=zs(e);if(!t?.settingsSchema)return[];let r=t.settingsSchema;return"shape"in r&&typeof r.shape=="object"?Object.keys(r.shape):[]}async function Ry(){let e=await oe(process.cwd()),t=e.executor,r=e.executors[t]||{},s=Ge({executorOverride:t,config:e});d.plain(`\u6267\u884C\u5668\uFF1A\x1B[36m${t}\x1B[0m`),d.plain(`\u5E73\u53F0\uFF1A${s.platform}`),d.plain(`Base URL\uFF1A${s.baseUrl}`),d.plain(`\u6A21\u578B\uFF1A${s.model}`),d.newline(),d.plain("\u9636\u6BB5\uFF1A");let i=["review","validation"];for(let n of i){let o=r[n],a=[];o?.model&&a.push(`model=${o.model}`),o?.concurrency&&a.push(`concurrency=${o.concurrency}`),o?.batchSize&&a.push(`batchSize=${o.batchSize}`),o?.timeout&&a.push(`timeout=${o.timeout}`);let u=a.length>0?` (${a.join(", ")})`:"";d.plain(` ${n.padEnd(12)} \u2192 ${t}${u}`)}d.newline()}async function ky(e){let t=zs(e),r=await Js(),s=t?t.applySettings?.({...Ge({executorOverride:e,config:await oe(process.cwd())})})||t.getInfo():void 0;if(!s){d.error(`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${e}`),d.newline(),d.plain("\u53EF\u7528\u6267\u884C\u5668\uFF1A");for(let n of r)d.plain(` \u2022 ${n.name}`);process.exit(1)}if(d.robot(`\u6267\u884C\u5668\uFF1A${s.name}`),d.newline(),d.plain(`\u7C7B\u578B\uFF1A${s.type}`),d.plain(`\u8BF4\u660E\uFF1A${s.description}`),s.type==="api"){d.plain(`Base URL\uFF1A${s.baseUrl||"\uFF08\u672A\u914D\u7F6E\uFF09"}`),d.plain("API Key\uFF1A\u7528\u6237\u7EA7 config.json \u4E2D\u7684 llm.apiKey\uFF08\u517C\u5BB9 API_KEY \u73AF\u5883\u53D8\u91CF\uFF09");let n=uI(s.apiKey);n&&d.plain(`API Key\uFF1A${n}`);let o=aI(s);o&&d.plain(`\u6A21\u578B\uFF1A${o}`),s.maxTokens&&d.plain(`maxTokens\uFF1A${s.maxTokens}`),d.plain(`\u9ED8\u8BA4\u8054\u901A ping\uFF1A${s.readinessPing?"\u5F00\u542F":"\u5173\u95ED"}`),d.plain(`\u6E29\u5EA6\uFF1A${s.temperature??0}`),d.plain(`\u8D85\u65F6\uFF1A${s.timeout||Er}s`)}let i=lI(e);if(i.length>0){d.newline(),d.plain("\u9636\u6BB5\u914D\u7F6E\u5B57\u6BB5\uFF08config.executors.<executor>.<stage>\uFF09\uFF1A");for(let n of i)d.plain(` \u2022 ${n}`)}}var Iy={meta:{name:"executors",description:`\u5217\u51FA\u6267\u884C\u5668\uFF0C\u6216\u67E5\u770B\u67D0\u4E2A\u6267\u884C\u5668\u7684\u8BE6\u60C5
270
270
 
271
271
  Examples:
272
272
  best-review executors # \u5217\u51FA\u6240\u6709\u6267\u884C\u5668
273
- best-review executors deepseek-api # \u67E5\u770B DeepSeek \u6267\u884C\u5668\u8BE6\u60C5`},args:{name:{type:"positional",description:"\u6267\u884C\u5668\u540D\u79F0\uFF08\u53EF\u9009\uFF1B\u4F20\u5165\u540E\u5C55\u793A\u8BE6\u60C5\uFF09",required:!1}},run:async({args:e})=>{e.name?await Ry(e.name):await Ay()}};var nb=require("node:fs/promises"),ob=require("node:path");Ee();M();Rr();M();function Ly(){return{id:"load-rules",name:"Load Rules",description:"\u52A0\u8F7D\u5339\u914D\u89C4\u5219\u548C Agent",enabled:!0,order:0,execute:async e=>{let t=Date.now(),[r,s]=await Promise.all([Tt(),e.agents&&e.agents.length>0?Promise.resolve(e.agents):He()]);if(e.ruleFilter&&e.ruleFilter.length>0){let i=new Set(e.ruleFilter);r=r.filter(n=>i.has(n.name))}if(e.excludeRules&&e.excludeRules.length>0){let i=new Set(e.excludeRules);r=r.filter(n=>!i.has(n.name))}if(e.agentFilter&&e.agentFilter.length>0){let i=new Set(e.agentFilter);s=s.filter(n=>i.has(n.name))}if(e.excludeAgents&&e.excludeAgents.length>0){let i=new Set(e.excludeAgents);s=s.filter(n=>!i.has(n.name))}return e.ruleRefs=r,e.agents=s,e.quiet||d.sync(`\u5DF2\u52A0\u8F7D ${r.length} \u6761\u89C4\u5219\uFF0C${s.length} \u4E2A Agent`),{stageId:"load-rules",stageName:"Load Rules",success:!0,duration:Date.now()-t}}}}Rr();var Rf=/(^|\/)(auth|oauth|login|session|permission|rbac|acl|token|secret|credential|crypto|security|middleware|passport|jwt|key|cert|env)(\/|\.|-|_)/i,kf=/\b(auth|authorize|permission|token|secret|password|credential|jwt|cookie|session|csrf|xss|sql|eval|exec|crypto|encrypt|decrypt|apiKey|privateKey)\b/i,Ny=/(^|\/)(cache|queue|worker|job|batch|performance|perf|database|db|query|repository|store|index|search|stream)(\/|\.|-|_)/i,My=/\b(Promise\.all|Promise\.allSettled|readFileSync|writeFileSync|execSync|spawnSync|cache|memo|query\s*\(|select\s*\(|insert\s*\(|update\s*\(|delete\s*\(|findMany|findAll|pagination|paginate|offset|cursor|stream|buffer|nested\s+loop|O\(n\^2\))\b/i,jy=/(^|\/)(config|types?|schemas?|api|routes?|controllers?|services?|interfaces?|contracts?|registry|shared|common|package\.json|tsconfig|eslint|prettier)(\/|\.|-|_)/i,qy=/\b(export\s+(interface|type|class|function|const)|interface\s+\w+|type\s+\w+\s*=|class\s+\w+|enum\s+\w+|z\.object|defineCommand|ConfigSchema|schema|option|flag|public\s+API|breaking)\b/i,Uy=/\b(parseInt|parseFloat|Number\s*\(|isNaN|z\.|zod|schema|validate|validation|args|argv|option|config|env)\b/i,Na={"code-security":4,"config-security":4,"code-performance":4,"code-general":3,"code-consistency":3};function hI(e){return e.reduce((t,r)=>t+r.additions+r.deletions,0)}function pI(e){return e.length>10||hI(e)>600}function mI(e){return new Map(e.map(t=>[t.file,t]))}function If(e,t,r,s){return r.test(e)||!!(t&&s.test(t.diff))}function Gy(e,t,r,s){let i=t?t.additions+t.deletions:0,n=Math.min(i,300);return r?.test(e)&&(n+=1e3),t&&s?.test(t.diff)&&(n+=500),n}function Cn(e,t,r,s,i){if(!r||e.files.length<=r)return e;let n=[...e.files].sort((u,l)=>{let c=Gy(l,t.get(l),s,i)-Gy(u,t.get(u),s,i);return c===0?u.localeCompare(l):c}),o=n.slice(0,r),a=n.slice(r);return{files:o,skipped:[...e.skipped,...a]}}function gI(e,t){let r=e.find(s=>s.rule.name==="code-bugs")??e.find(s=>s.agent.name==="bug-hunter")??e.find(s=>s.rule.name==="code-general")??e.find(s=>s.agent.name==="general")??e.find(s=>s.rule.name==="code-consistency")??e.find(s=>s.agent.name==="consistency-check")??e.find(s=>s.rule.name==="config-security");return!r||r.files.length===0?null:{...r,files:t.filter(s=>r.files.includes(s))}}function DI(e,t,r){let s=e.rule.name,i=e.agent.name,n=pI(t);if(s==="code-security"){let o=Ma(e.files,r,(a,u)=>If(a,u,Rf,kf));return n?Cn(o,r,Na[s],Rf,kf):o}if(s==="config-security"&&n)return Cn({files:e.files,skipped:[]},r,Na[s],Rf,kf);if(s==="code-performance"){let o=Ma(e.files,r,(a,u)=>If(a,u,Ny,My));return n?Cn(o,r,Na[s],Ny,My):o}if(s==="code-consistency"&&n){let o=Ma(e.files,r,(a,u)=>If(a,u,jy,qy));return Cn(o,r,Na[s],jy,qy)}if((s.includes("validation")||i==="general")&&e.rule.source!=="defaults"&&n){let o=Ma(e.files,r,(a,u)=>!!(u&&Uy.test(u.diff)));return Cn(o,r,4,void 0,Uy)}return{files:e.files,skipped:[]}}function yI(e,t){let r=new Set(t.files);for(let s=e.length-1;s>=0;s-=1){let i=e[s];!i||i.rule!==t.rule.name||i.agent!==t.agent.name||(i.files=i.files.filter(n=>!r.has(n)),i.files.length===0&&e.splice(s,1))}}function wI(e,t,r,s){let i=s.map(l=>l.file),n=new Set(e.flatMap(l=>l.files)),o=i.filter(l=>!n.has(l));if(o.length===0)return;let a=gI(r,o);if(!a||a.files.length===0)return;let u=e.find(l=>l.rule.name===a.rule.name&&l.agent.name===a.agent.name);if(u){let l=new Set([...u.files,...a.files]);u.files=i.filter(c=>l.has(c))}else e.push(a);yI(t,a)}function Ma(e,t,r){let s=[],i=[];for(let n of e)r(n,t.get(n))?s.push(n):i.push(n);return{files:s,skipped:i}}function Vy(e,t,r={}){if(r.explicitRuleOrAgentFilter||process.env.BEST_REVIEW_DISABLE_SMART_ROUTING==="true")return{matched:e,skipped:[]};let s=mI(t),i=[],n=[];for(let o of e){let a=DI(o,t,s);a.files.length>0&&i.push({...o,files:a.files}),a.skipped.length>0&&n.push({rule:o.rule.name,agent:o.agent.name,files:a.skipped,reason:"\u9ED8\u8BA4\u89C4\u5219\u76F8\u5173\u6027\u4E0D\u8DB3\uFF0C\u5DF2\u8DF3\u8FC7\u4EE5\u51CF\u5C11\u65E0\u6548 Agent \u8C03\u7528"})}return wI(i,n,e,t),{matched:i,skipped:n}}M();function Wy(){return{id:"match-rules",name:"Match Rules",description:"\u5C06\u89C4\u5219\u5339\u914D\u5230\u6587\u4EF6",enabled:!0,order:1,execute:async e=>{let t=Date.now(),r=e.ruleRefs??[],s=e.agents??[],i=await xf(r,e.diffs,s),n=Vy(i,e.diffs,{explicitRuleOrAgentFilter:!!(e.ruleFilter&&e.ruleFilter.length>0)||!!(e.agentFilter&&e.agentFilter.length>0)});e.matchedRules=n.matched;let o=e.diffs.length,a=new Set(n.matched.flatMap(f=>f.files)),u=e.diffs.map(f=>f.file).filter(f=>!a.has(f)),l=o-u.length,c=o===0?1:l/o;if(!e.quiet){d.sync(`\u5DF2\u5339\u914D ${n.matched.length} \u6761\u89C4\u5219`);for(let f of n.matched)d.plain(` ${f.rule.name}\uFF1A${f.files.length} \u4E2A\u6587\u4EF6 \u2192 ${f.agent.name}`);if(n.skipped.length>0){let f=n.skipped.reduce((h,p)=>h+p.files.length,0);d.info(`\u667A\u80FD\u8DEF\u7531\u5DF2\u8DF3\u8FC7 ${n.skipped.length} \u6761\u4F4E\u76F8\u5173\u89C4\u5219\u547D\u4E2D\uFF08${f} \u4E2A\u6587\u4EF6\u547D\u4E2D\uFF09\uFF0C\u53EF\u7528 BEST_REVIEW_DISABLE_SMART_ROUTING=true \u5173\u95ED`)}}return{stageId:"match-rules",stageName:"Match Rules",success:!0,duration:Date.now()-t,output:{matchedRules:n.matched.length,skippedRuleMatches:n.skipped.length,skippedFiles:n.skipped.reduce((f,h)=>f+h.files.length,0),totalDiffFiles:o,coveredFiles:l,uncoveredFiles:u,coverageRate:c}}}}}function Kt(e){if(e<1)throw new Error("Concurrency must be at least 1");let t=[],r=0,s=()=>{r--,t.length>0&&t.shift()?.()};return i=>new Promise((n,o)=>{let a=async()=>{r++;try{let u=await i();n(u)}catch(u){o(u)}finally{s()}};r<e?a():t.push(a)})}function Ht(){return{requests:0,modelCalls:0,cachedCalls:0,promptTokens:0,completionTokens:0,totalTokens:0,savedTokens:0,estimated:!1}}function kr(e,t,r={}){let s={...e,requests:e.requests+1};return r.cacheHit?(s.cachedCalls+=1,s.savedTokens+=t?.totalTokens??0,s):(s.modelCalls+=1,t?(s.promptTokens+=t.promptTokens,s.completionTokens+=t.completionTokens,s.totalTokens+=t.totalTokens,s.estimated=s.estimated||t.estimated,s):(s.estimated=!0,s))}function Fn(e){let t=Ht();for(let r of e)r&&(t={requests:t.requests+r.requests,modelCalls:t.modelCalls+r.modelCalls,cachedCalls:t.cachedCalls+r.cachedCalls,promptTokens:t.promptTokens+r.promptTokens,completionTokens:t.completionTokens+r.completionTokens,totalTokens:t.totalTokens+r.totalTokens,savedTokens:t.savedTokens+r.savedTokens,estimated:t.estimated||r.estimated});return t}function Ky(e){return Fn(e.map(t=>t.usage))}M();var bI="tech-doc-requirements",vI=14e3;function EI(e,t=vI){if(e.length<=t)return[e];let r=[],s=0;for(;s<e.length;){let i=Math.min(s+t,e.length);if(i<e.length){let n=e.lastIndexOf(`
273
+ best-review executors deepseek-api # \u67E5\u770B DeepSeek \u6267\u884C\u5668\u8BE6\u60C5`},args:{name:{type:"positional",description:"\u6267\u884C\u5668\u540D\u79F0\uFF08\u53EF\u9009\uFF1B\u4F20\u5165\u540E\u5C55\u793A\u8BE6\u60C5\uFF09",required:!1}},run:async({args:e})=>{e.name?await ky(e.name):await Ry()}};var ob=require("node:fs/promises"),ab=require("node:path");Ce();M();Rr();M();function Ny(){return{id:"load-rules",name:"Load Rules",description:"\u52A0\u8F7D\u5339\u914D\u89C4\u5219\u548C Agent",enabled:!0,order:0,execute:async e=>{let t=Date.now(),[r,s]=await Promise.all([Tt(),e.agents&&e.agents.length>0?Promise.resolve(e.agents):ze()]);if(e.ruleFilter&&e.ruleFilter.length>0){let i=new Set(e.ruleFilter);r=r.filter(n=>i.has(n.name))}if(e.excludeRules&&e.excludeRules.length>0){let i=new Set(e.excludeRules);r=r.filter(n=>!i.has(n.name))}if(e.agentFilter&&e.agentFilter.length>0){let i=new Set(e.agentFilter);s=s.filter(n=>i.has(n.name))}if(e.excludeAgents&&e.excludeAgents.length>0){let i=new Set(e.excludeAgents);s=s.filter(n=>!i.has(n.name))}return e.ruleRefs=r,e.agents=s,e.quiet||d.sync(`\u5DF2\u52A0\u8F7D ${r.length} \u6761\u89C4\u5219\uFF0C${s.length} \u4E2A Agent`),{stageId:"load-rules",stageName:"Load Rules",success:!0,duration:Date.now()-t}}}}Rr();var Rf=/(^|\/)(auth|oauth|login|session|permission|rbac|acl|token|secret|credential|crypto|security|middleware|passport|jwt|key|cert|env)(\/|\.|-|_)/i,kf=/\b(auth|authorize|permission|token|secret|password|credential|jwt|cookie|session|csrf|xss|sql|eval|exec|crypto|encrypt|decrypt|apiKey|privateKey)\b/i,My=/(^|\/)(cache|queue|worker|job|batch|performance|perf|database|db|query|repository|store|index|search|stream)(\/|\.|-|_)/i,jy=/\b(Promise\.all|Promise\.allSettled|readFileSync|writeFileSync|execSync|spawnSync|cache|memo|query\s*\(|select\s*\(|insert\s*\(|update\s*\(|delete\s*\(|findMany|findAll|pagination|paginate|offset|cursor|stream|buffer|nested\s+loop|O\(n\^2\))\b/i,qy=/(^|\/)(config|types?|schemas?|api|routes?|controllers?|services?|interfaces?|contracts?|registry|shared|common|package\.json|tsconfig|eslint|prettier)(\/|\.|-|_)/i,Uy=/\b(export\s+(interface|type|class|function|const)|interface\s+\w+|type\s+\w+\s*=|class\s+\w+|enum\s+\w+|z\.object|defineCommand|ConfigSchema|schema|option|flag|public\s+API|breaking)\b/i,Gy=/\b(parseInt|parseFloat|Number\s*\(|isNaN|z\.|zod|schema|validate|validation|args|argv|option|config|env)\b/i,Na={"code-security":4,"config-security":4,"code-performance":4,"code-general":3,"code-consistency":3};function DI(e){return e.reduce((t,r)=>t+r.additions+r.deletions,0)}function yI(e){return e.length>10||DI(e)>600}function wI(e){return new Map(e.map(t=>[t.file,t]))}function If(e,t,r,s){return r.test(e)||!!(t&&s.test(t.diff))}function Vy(e,t,r,s){let i=t?t.additions+t.deletions:0,n=Math.min(i,300);return r?.test(e)&&(n+=1e3),t&&s?.test(t.diff)&&(n+=500),n}function Fn(e,t,r,s,i){if(!r||e.files.length<=r)return e;let n=[...e.files].sort((u,l)=>{let c=Vy(l,t.get(l),s,i)-Vy(u,t.get(u),s,i);return c===0?u.localeCompare(l):c}),o=n.slice(0,r),a=n.slice(r);return{files:o,skipped:[...e.skipped,...a]}}function bI(e,t){let r=e.find(s=>s.rule.name==="code-bugs")??e.find(s=>s.agent.name==="bug-hunter")??e.find(s=>s.rule.name==="code-general")??e.find(s=>s.agent.name==="general")??e.find(s=>s.rule.name==="code-consistency")??e.find(s=>s.agent.name==="consistency-check")??e.find(s=>s.rule.name==="config-security");return!r||r.files.length===0?null:{...r,files:t.filter(s=>r.files.includes(s))}}function vI(e,t,r){let s=e.rule.name,i=e.agent.name,n=yI(t);if(s==="code-security"){let o=Ma(e.files,r,(a,u)=>If(a,u,Rf,kf));return n?Fn(o,r,Na[s],Rf,kf):o}if(s==="config-security"&&n)return Fn({files:e.files,skipped:[]},r,Na[s],Rf,kf);if(s==="code-performance"){let o=Ma(e.files,r,(a,u)=>If(a,u,My,jy));return n?Fn(o,r,Na[s],My,jy):o}if(s==="code-consistency"&&n){let o=Ma(e.files,r,(a,u)=>If(a,u,qy,Uy));return Fn(o,r,Na[s],qy,Uy)}if((s.includes("validation")||i==="general")&&e.rule.source!=="defaults"&&n){let o=Ma(e.files,r,(a,u)=>!!(u&&Gy.test(u.diff)));return Fn(o,r,4,void 0,Gy)}return{files:e.files,skipped:[]}}function EI(e,t){let r=new Set(t.files);for(let s=e.length-1;s>=0;s-=1){let i=e[s];!i||i.rule!==t.rule.name||i.agent!==t.agent.name||(i.files=i.files.filter(n=>!r.has(n)),i.files.length===0&&e.splice(s,1))}}function CI(e,t,r,s){let i=s.map(l=>l.file),n=new Set(e.flatMap(l=>l.files)),o=i.filter(l=>!n.has(l));if(o.length===0)return;let a=bI(r,o);if(!a||a.files.length===0)return;let u=e.find(l=>l.rule.name===a.rule.name&&l.agent.name===a.agent.name);if(u){let l=new Set([...u.files,...a.files]);u.files=i.filter(c=>l.has(c))}else e.push(a);EI(t,a)}function Ma(e,t,r){let s=[],i=[];for(let n of e)r(n,t.get(n))?s.push(n):i.push(n);return{files:s,skipped:i}}function Wy(e,t,r={}){if(r.explicitRuleOrAgentFilter||process.env.BEST_REVIEW_DISABLE_SMART_ROUTING==="true")return{matched:e,skipped:[]};let s=wI(t),i=[],n=[];for(let o of e){let a=vI(o,t,s);a.files.length>0&&i.push({...o,files:a.files}),a.skipped.length>0&&n.push({rule:o.rule.name,agent:o.agent.name,files:a.skipped,reason:"\u9ED8\u8BA4\u89C4\u5219\u76F8\u5173\u6027\u4E0D\u8DB3\uFF0C\u5DF2\u8DF3\u8FC7\u4EE5\u51CF\u5C11\u65E0\u6548 Agent \u8C03\u7528"})}return CI(i,n,e,t),{matched:i,skipped:n}}M();function Hy(){return{id:"match-rules",name:"Match Rules",description:"\u5C06\u89C4\u5219\u5339\u914D\u5230\u6587\u4EF6",enabled:!0,order:1,execute:async e=>{let t=Date.now(),r=e.ruleRefs??[],s=e.agents??[],i=await xf(r,e.diffs,s),n=Wy(i,e.diffs,{explicitRuleOrAgentFilter:!!(e.ruleFilter&&e.ruleFilter.length>0)||!!(e.agentFilter&&e.agentFilter.length>0)});e.matchedRules=n.matched;let o=e.diffs.length,a=new Set(n.matched.flatMap(f=>f.files)),u=e.diffs.map(f=>f.file).filter(f=>!a.has(f)),l=o-u.length,c=o===0?1:l/o;if(!e.quiet){d.sync(`\u5DF2\u5339\u914D ${n.matched.length} \u6761\u89C4\u5219`);for(let f of n.matched)d.plain(` ${f.rule.name}\uFF1A${f.files.length} \u4E2A\u6587\u4EF6 \u2192 ${f.agent.name}`);if(n.skipped.length>0){let f=n.skipped.reduce((h,p)=>h+p.files.length,0);d.info(`\u667A\u80FD\u8DEF\u7531\u5DF2\u8DF3\u8FC7 ${n.skipped.length} \u6761\u4F4E\u76F8\u5173\u89C4\u5219\u547D\u4E2D\uFF08${f} \u4E2A\u6587\u4EF6\u547D\u4E2D\uFF09\uFF0C\u53EF\u7528 BEST_REVIEW_DISABLE_SMART_ROUTING=true \u5173\u95ED`)}}return{stageId:"match-rules",stageName:"Match Rules",success:!0,duration:Date.now()-t,output:{matchedRules:n.matched.length,skippedRuleMatches:n.skipped.length,skippedFiles:n.skipped.reduce((f,h)=>f+h.files.length,0),totalDiffFiles:o,coveredFiles:l,uncoveredFiles:u,coverageRate:c}}}}}function Kt(e){if(e<1)throw new Error("Concurrency must be at least 1");let t=[],r=0,s=()=>{r--,t.length>0&&t.shift()?.()};return i=>new Promise((n,o)=>{let a=async()=>{r++;try{let u=await i();n(u)}catch(u){o(u)}finally{s()}};r<e?a():t.push(a)})}function zt(){return{requests:0,modelCalls:0,cachedCalls:0,promptTokens:0,completionTokens:0,totalTokens:0,savedTokens:0,estimated:!1}}function kr(e,t,r={}){let s={...e,requests:e.requests+1};return r.cacheHit?(s.cachedCalls+=1,s.savedTokens+=t?.totalTokens??0,s):(s.modelCalls+=1,t?(s.promptTokens+=t.promptTokens,s.completionTokens+=t.completionTokens,s.totalTokens+=t.totalTokens,s.estimated=s.estimated||t.estimated,s):(s.estimated=!0,s))}function Sn(e){let t=zt();for(let r of e)r&&(t={requests:t.requests+r.requests,modelCalls:t.modelCalls+r.modelCalls,cachedCalls:t.cachedCalls+r.cachedCalls,promptTokens:t.promptTokens+r.promptTokens,completionTokens:t.completionTokens+r.completionTokens,totalTokens:t.totalTokens+r.totalTokens,savedTokens:t.savedTokens+r.savedTokens,estimated:t.estimated||r.estimated});return t}function Ky(e){return Sn(e.map(t=>t.usage))}M();var FI="tech-doc-requirements",SI=14e3;function xI(e,t=SI){if(e.length<=t)return[e];let r=[],s=0;for(;s<e.length;){let i=Math.min(s+t,e.length);if(i<e.length){let n=e.lastIndexOf(`
274
274
 
275
- `,i);n>s+Math.floor(t*.5)&&(i=n+2)}r.push(e.slice(s,i)),s=i}return r}function CI(e){let r=e.match(/<json>\s*([\s\S]*?)\s*<\/json>/i)?.[1]??e.trim(),s=JSON.parse(r);if(!Array.isArray(s.requirements))throw new Error("\u6280\u672F\u6587\u6863\u5F85\u529E\u70B9\u62BD\u53D6\u8F93\u51FA\u7F3A\u5C11 requirements \u6570\u7EC4");return s}function FI(e){return e==="must"||e==="should"||e==="nice-to-have"?e:"should"}function Hy(e){return Array.isArray(e)?e.map(t=>String(t).trim()).filter(Boolean):[]}function SI(e,t){let r=typeof e.title=="string"?e.title.trim():"",s=typeof e.description=="string"?e.description.trim():"";if(!r&&!s)return null;let i=typeof e.sourceLocation=="string"?e.sourceLocation:typeof e.source_location=="string"?e.source_location:void 0,n=typeof e.sourceQuote=="string"?e.sourceQuote:typeof e.source_quote=="string"?e.source_quote:void 0,o=[...Hy(e.acceptanceSignals),...Hy(e.acceptance_signals)];return{id:typeof e.id=="string"&&e.id.trim()?e.id.trim():`TD-${t+1}`,title:r||s.slice(0,50),description:s||r,acceptanceSignals:o,...i&&{sourceLocation:i},...n&&{sourceQuote:n},priority:FI(e.priority)}}function xI(e){let t=new Set,r=[];for(let s of e){let i=`${s.title}
276
- ${s.description}`.toLowerCase().replace(/\s+/g," ");t.has(i)||(t.add(i),r.push(s))}return r}function AI(e,t,r){return["# Tech Document Requirement Extraction","",`Chunk: ${t+1}/${r}`,"","\u8BF7\u4ECE\u4E0B\u9762\u6280\u672F\u6587\u6863\u7247\u6BB5\u4E2D\u62BD\u53D6\u6240\u6709\u53EF\u9A8C\u6536\u5F85\u529E\u70B9\u3002","\u5FC5\u987B\u8986\u76D6 checkbox\u3001TODO\u3001\u9A8C\u6536\u6807\u51C6\u3001\u4EE5\u53CA\u201C\u5FC5\u987B/\u9700\u8981/\u5E94\u5F53/\u4E0D\u5F97/\u9700\u652F\u6301\u201D\u7B49\u5F3A\u7EA6\u675F\u9700\u6C42\u3002","\u4E0D\u8981\u62BD\u53D6\u7EAF\u80CC\u666F\u3001\u613F\u666F\u3001\u53EF\u9009\u8BA8\u8BBA\u6216\u65E0\u6CD5\u901A\u8FC7\u4EE3\u7801 diff \u9A8C\u8BC1\u7684\u63CF\u8FF0\u3002","","\u53EA\u8FD4\u56DE <json>...</json> \u5305\u88F9\u7684\u5BF9\u8C61\uFF0C\u683C\u5F0F\uFF1A",'<json>{"requirements":[{"id":"REQ-1","title":"...","description":"...","acceptanceSignals":["..."],"sourceLocation":"...","sourceQuote":"...","priority":"must|should|nice-to-have"}]}</json>',"","# Document Chunk",e].join(`
277
- `)}function RI(){return{name:bI,description:"\u4ECE\u6280\u672F\u6587\u6863\u4E2D\u62BD\u53D6\u53EF\u9A8C\u6536\u5F85\u529E\u70B9",systemPrompt:"\u4F60\u662F best-review \u7684\u6280\u672F\u6587\u6863\u5F85\u529E\u70B9\u62BD\u53D6 Agent\u3002\u4F60\u53EA\u8D1F\u8D23\u4ECE\u6587\u6863\u4E2D\u5B8C\u6574\u62BD\u53D6\u53EF\u901A\u8FC7\u4EE3\u7801 diff \u9A8C\u6536\u7684\u8981\u6C42\uFF0C\u4E0D\u8BC4\u5BA1\u4EE3\u7801\u3002",enabled:!0,order:1,stage:"review"}}function zy(){return{id:"tech-doc-requirements",name:"Tech Doc Requirements",description:"\u62BD\u53D6\u6280\u672F\u6587\u6863\u4E2D\u7684\u53EF\u9A8C\u6536\u5F85\u529E\u70B9",enabled:!0,order:1.5,execute:async e=>{let t=Date.now();if(!e.techDoc)return{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!0,duration:Date.now()-t,output:{skipped:!0}};if(!e.config)return{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!1,duration:Date.now()-t,error:"Pipeline \u4E0A\u4E0B\u6587\u4E2D\u7684 config \u5C1A\u672A\u521D\u59CB\u5316"};let r=e.config.executor,s=ge.get(r);if(!s)return{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!1,duration:Date.now()-t,error:`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${r}`};let i=EI(e.techDoc.rawContent),n=RI(),o=Sr(e.config,e.modelOverride,r),a=s.applySettings?s.applySettings(o):s.getInfo(),u=Ht(),l=Kt(e.concurrency),c=await Promise.all(i.map((p,m)=>l(async()=>{let g={agent:n,executor:a,input:AI(p,m,i.length),systemPrompt:n.systemPrompt,verbose:e.verbose,quiet:e.quiet,stream:e.stream,cwd:e.metadata.repository,modelOverride:e.modelOverride,outputMode:"text"};return ge.executeAgent(g)}))),f=c.find(p=>!p.success);if(f)return{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!1,duration:Date.now()-t,error:f.error||"\u6280\u672F\u6587\u6863\u5F85\u529E\u70B9\u62BD\u53D6\u5931\u8D25"};let h=xI(c.flatMap((p,m)=>(u=kr(u,p.usage),CI(p.output).requirements.map((D,b)=>SI(D,m*1e3+b)).filter(D=>D!==null))));return e.techDoc.requirements=h,e.techDoc.coverage={assessedRequirementIds:[],unmappedRequirements:[]},e.usage=Fn([e.usage,u]),e.quiet||d.info(`\u6280\u672F\u6587\u6863\u5F85\u529E\u70B9\uFF1A\u62BD\u53D6 ${h.length} \u6761\u53EF\u9A8C\u6536\u8981\u6C42`),{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!0,duration:Date.now()-t,output:{totalRequirements:h.length,chunks:i.length}}}}}var ja=class{items=new Map;register(t){this.items.set(t.name,t)}get(t){return this.items.get(t)}list(){return Array.from(this.items.values())}remove(t){this.items.delete(t)}clear(){this.items.clear()}count(){return this.items.size}};var _f=class extends ja{listEnabled(){return this.list().filter(t=>t.enabled)}enable(t){let r=this.get(t);r&&(r.enabled=!0)}disable(t){let r=this.get(t);r&&(r.enabled=!1)}setExecutor(t,r){let s=this.get(t);s&&(s.executor=r)}countEnabled(){return this.list().filter(t=>t.enabled).length}},Zs=new _f;Ee();function kI(e){let t=`File: ${e.file}
278
- ${e.diff}`;return _t(t)}var Jy=36e3,Yy=20;function II(){let e=process.env.BEST_REVIEW_BATCH_TOKENS,t=e?parseInt(e,10):Jy,r=process.env.BEST_REVIEW_MAX_FILES_PER_BATCH,s=r?parseInt(r,10):Yy;return{maxTokensPerBatch:isNaN(t)?Jy:t,maxFilesPerBatch:isNaN(s)||s<1?Yy:s}}function Sn(e,t,r,s){let i=r||II(),n=[],o=_t(t),a=i.maxTokensPerBatch-o-1e3,u=p=>s?.(p),l=p=>{let m=u(p);return m===void 0?p.reduce((g,D)=>g+kI(D),0):_t(m)},c=p=>{let m=u(p);return{diffs:p,tokenCount:(m===void 0?l(p):_t(m))+o,batchIndex:n.length,...m!==void 0&&{input:m}}},f=[],h=0;for(let p of e){let m=l([p]);if(m>a){f.length>0&&(n.push(c(f)),f=[],h=0),n.push(c([p]));continue}let g=[...f,p];((s?l(g):h+m)>a||f.length>=i.maxFilesPerBatch)&&f.length>0&&(n.push(c(f)),f=[],h=0),f.push(p),h=s?l(f):h+m}return f.length>0&&n.push(c(f)),n}function Zy(e,t=!1){let r=e.diffs.length,s=e.tokenCount.toLocaleString();if(t){let i=e.diffs.map(n=>` ${n.file}`).join(`
275
+ `,i);n>s+Math.floor(t*.5)&&(i=n+2)}r.push(e.slice(s,i)),s=i}return r}function AI(e){let r=e.match(/<json>\s*([\s\S]*?)\s*<\/json>/i)?.[1]??e.trim(),s=JSON.parse(r);if(!Array.isArray(s.requirements))throw new Error("\u6280\u672F\u6587\u6863\u5F85\u529E\u70B9\u62BD\u53D6\u8F93\u51FA\u7F3A\u5C11 requirements \u6570\u7EC4");return s}function RI(e){return e==="must"||e==="should"||e==="nice-to-have"?e:"should"}function zy(e){return Array.isArray(e)?e.map(t=>String(t).trim()).filter(Boolean):[]}function kI(e,t){let r=typeof e.title=="string"?e.title.trim():"",s=typeof e.description=="string"?e.description.trim():"";if(!r&&!s)return null;let i=typeof e.sourceLocation=="string"?e.sourceLocation:typeof e.source_location=="string"?e.source_location:void 0,n=typeof e.sourceQuote=="string"?e.sourceQuote:typeof e.source_quote=="string"?e.source_quote:void 0,o=[...zy(e.acceptanceSignals),...zy(e.acceptance_signals)];return{id:typeof e.id=="string"&&e.id.trim()?e.id.trim():`TD-${t+1}`,title:r||s.slice(0,50),description:s||r,acceptanceSignals:o,...i&&{sourceLocation:i},...n&&{sourceQuote:n},priority:RI(e.priority)}}function II(e){let t=new Set,r=[];for(let s of e){let i=`${s.title}
276
+ ${s.description}`.toLowerCase().replace(/\s+/g," ");t.has(i)||(t.add(i),r.push(s))}return r}function _I(e,t,r){return["# Tech Document Requirement Extraction","",`Chunk: ${t+1}/${r}`,"","\u8BF7\u4ECE\u4E0B\u9762\u6280\u672F\u6587\u6863\u7247\u6BB5\u4E2D\u62BD\u53D6\u6240\u6709\u53EF\u9A8C\u6536\u5F85\u529E\u70B9\u3002","\u5FC5\u987B\u8986\u76D6 checkbox\u3001TODO\u3001\u9A8C\u6536\u6807\u51C6\u3001\u4EE5\u53CA\u201C\u5FC5\u987B/\u9700\u8981/\u5E94\u5F53/\u4E0D\u5F97/\u9700\u652F\u6301\u201D\u7B49\u5F3A\u7EA6\u675F\u9700\u6C42\u3002","\u4E0D\u8981\u62BD\u53D6\u7EAF\u80CC\u666F\u3001\u613F\u666F\u3001\u53EF\u9009\u8BA8\u8BBA\u6216\u65E0\u6CD5\u901A\u8FC7\u4EE3\u7801 diff \u9A8C\u8BC1\u7684\u63CF\u8FF0\u3002","","\u53EA\u8FD4\u56DE <json>...</json> \u5305\u88F9\u7684\u5BF9\u8C61\uFF0C\u683C\u5F0F\uFF1A",'<json>{"requirements":[{"id":"REQ-1","title":"...","description":"...","acceptanceSignals":["..."],"sourceLocation":"...","sourceQuote":"...","priority":"must|should|nice-to-have"}]}</json>',"","# Document Chunk",e].join(`
277
+ `)}function TI(){return{name:FI,description:"\u4ECE\u6280\u672F\u6587\u6863\u4E2D\u62BD\u53D6\u53EF\u9A8C\u6536\u5F85\u529E\u70B9",systemPrompt:"\u4F60\u662F best-review \u7684\u6280\u672F\u6587\u6863\u5F85\u529E\u70B9\u62BD\u53D6 Agent\u3002\u4F60\u53EA\u8D1F\u8D23\u4ECE\u6587\u6863\u4E2D\u5B8C\u6574\u62BD\u53D6\u53EF\u901A\u8FC7\u4EE3\u7801 diff \u9A8C\u6536\u7684\u8981\u6C42\uFF0C\u4E0D\u8BC4\u5BA1\u4EE3\u7801\u3002",enabled:!0,order:1,stage:"review"}}function Jy(){return{id:"tech-doc-requirements",name:"Tech Doc Requirements",description:"\u62BD\u53D6\u6280\u672F\u6587\u6863\u4E2D\u7684\u53EF\u9A8C\u6536\u5F85\u529E\u70B9",enabled:!0,order:1.5,execute:async e=>{let t=Date.now();if(!e.techDoc)return{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!0,duration:Date.now()-t,output:{skipped:!0}};if(!e.config)return{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!1,duration:Date.now()-t,error:"Pipeline \u4E0A\u4E0B\u6587\u4E2D\u7684 config \u5C1A\u672A\u521D\u59CB\u5316"};let r=e.config.executor,s=De.get(r);if(!s)return{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!1,duration:Date.now()-t,error:`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${r}`};let i=xI(e.techDoc.rawContent),n=TI(),o=Sr(e.config,e.modelOverride,r),a=s.applySettings?s.applySettings(o):s.getInfo(),u=zt(),l=Kt(e.concurrency),c=await Promise.all(i.map((p,m)=>l(async()=>{let g={agent:n,executor:a,input:_I(p,m,i.length),systemPrompt:n.systemPrompt,verbose:e.verbose,quiet:e.quiet,stream:e.stream,cwd:e.metadata.repository,modelOverride:e.modelOverride,outputMode:"text"};return De.executeAgent(g)}))),f=c.find(p=>!p.success);if(f)return{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!1,duration:Date.now()-t,error:f.error||"\u6280\u672F\u6587\u6863\u5F85\u529E\u70B9\u62BD\u53D6\u5931\u8D25"};let h=II(c.flatMap((p,m)=>(u=kr(u,p.usage),AI(p.output).requirements.map((D,b)=>kI(D,m*1e3+b)).filter(D=>D!==null))));return e.techDoc.requirements=h,e.techDoc.coverage={assessedRequirementIds:[],unmappedRequirements:[]},e.usage=Sn([e.usage,u]),e.quiet||d.info(`\u6280\u672F\u6587\u6863\u5F85\u529E\u70B9\uFF1A\u62BD\u53D6 ${h.length} \u6761\u53EF\u9A8C\u6536\u8981\u6C42`),{stageId:"tech-doc-requirements",stageName:"Tech Doc Requirements",success:!0,duration:Date.now()-t,output:{totalRequirements:h.length,chunks:i.length}}}}}var ja=class{items=new Map;register(t){this.items.set(t.name,t)}get(t){return this.items.get(t)}list(){return Array.from(this.items.values())}remove(t){this.items.delete(t)}clear(){this.items.clear()}count(){return this.items.size}};var _f=class extends ja{listEnabled(){return this.list().filter(t=>t.enabled)}enable(t){let r=this.get(t);r&&(r.enabled=!0)}disable(t){let r=this.get(t);r&&(r.enabled=!1)}setExecutor(t,r){let s=this.get(t);s&&(s.executor=r)}countEnabled(){return this.list().filter(t=>t.enabled).length}},Zs=new _f;Ce();function $I(e){let t=`File: ${e.file}
278
+ ${e.diff}`;return _t(t)}var Yy=36e3,Zy=20;function PI(){let e=process.env.BEST_REVIEW_BATCH_TOKENS,t=e?parseInt(e,10):Yy,r=process.env.BEST_REVIEW_MAX_FILES_PER_BATCH,s=r?parseInt(r,10):Zy;return{maxTokensPerBatch:isNaN(t)?Yy:t,maxFilesPerBatch:isNaN(s)||s<1?Zy:s}}function xn(e,t,r,s){let i=r||PI(),n=[],o=_t(t),a=i.maxTokensPerBatch-o-1e3,u=p=>s?.(p),l=p=>{let m=u(p);return m===void 0?p.reduce((g,D)=>g+$I(D),0):_t(m)},c=p=>{let m=u(p);return{diffs:p,tokenCount:(m===void 0?l(p):_t(m))+o,batchIndex:n.length,...m!==void 0&&{input:m}}},f=[],h=0;for(let p of e){let m=l([p]);if(m>a){f.length>0&&(n.push(c(f)),f=[],h=0),n.push(c([p]));continue}let g=[...f,p];((s?l(g):h+m)>a||f.length>=i.maxFilesPerBatch)&&f.length>0&&(n.push(c(f)),f=[],h=0),f.push(p),h=s?l(f):h+m}return f.length>0&&n.push(c(f)),n}function Xy(e,t=!1){let r=e.diffs.length,s=e.tokenCount.toLocaleString();if(t){let i=e.diffs.map(n=>` ${n.file}`).join(`
279
279
  `);return`Batch ${e.batchIndex+1}: ${r} file(s), ~${s} tokens
280
280
  Files:
281
- ${i}`}return`Batch ${e.batchIndex+1}: ${r} file(s), ~${s} tokens`}_i();var qa=require("node:fs/promises"),it=require("node:path"),Xy=bt(Wc(),1);M();js();Vs();async function Tf(e){try{let{access:t}=await import("node:fs/promises");return await t(e),!0}catch{return!1}}async function Qy(e){let t=(0,it.join)(e,"skills");if(!await Tf(t))return[];try{return(await Ze("*/SKILL.md",{cwd:t})).map(i=>(0,it.join)(t,(0,it.dirname)(i)))}catch{return[]}}async function _I(e){let t=(0,it.join)(e,"agents","agent.yaml");if(await Tf(t))try{let s=await(0,qa.readFile)(t,"utf-8"),i=Xy.default.parse(s);if(!i||!i.interface)return;let n=i.interface,o=i.review_policy;return{displayName:String(n.display_name??""),shortDescription:String(n.short_description??""),defaultPrompt:String(n.default_prompt??""),reviewPolicy:o?{outputLanguage:o.output_language,outputFormat:o.output_format,autoFixLevels:o.auto_fix_levels,autoFixAction:o.auto_fix_action,suggestLevels:o.suggest_levels}:void 0}}catch{return}}async function TI(e){let t=(0,it.join)(e,"references");if(!await Tf(t))return[];try{let s=await Ze("*.md",{cwd:t});return(await Promise.all(s.map(async n=>{let o=(0,it.join)(t,n);try{let a=await(0,qa.readFile)(o,"utf-8");return{name:(0,it.basename)(n,".md"),path:o,content:a}}catch{return null}}))).filter(n=>n!==null)}catch{return[]}}async function e0(e){let t=(0,it.join)(e,"SKILL.md");try{let r=await(0,qa.readFile)(t,"utf-8"),{frontmatter:s,body:i}=is(r),n=typeof s.name=="string"?s.name:(0,it.basename)(e),o=typeof s.description=="string"?s.description:"",[a,u]=await Promise.all([TI(e),_I(e)]);return{name:n,description:o,enabled:!0,prompt:i.trim(),path:e,source:"project",references:a,agentConfig:u}}catch(r){return d.warn(`Failed to load skill from ${e}: ${r instanceof Error?r.message:String(r)}`),null}}async function $f(e,t){let r=`${qe.SKILLS}:${e}`,s=await Dt(r,async()=>{let i=await Qy(e);return i.length===0?[]:(await Promise.all(i.map(n=>e0(n)))).filter(n=>n!==null)});return t?.skills?s.map(i=>{let n=t.skills[i.name];return n?.enabled===void 0?i:{...i,enabled:n.enabled}}):s}function Xs(e){let t=e.filter(s=>s.enabled);if(t.length===0)return"";let r=[];for(let s of t){let i=[];i.push(`# Skill: ${s.name}`),s.description&&i.push(`> ${s.description}`),i.push(""),i.push(s.prompt);for(let n of s.references)i.push(""),i.push(`## Reference: ${n.name}`),i.push(""),i.push(n.content);r.push(i.join(`
281
+ ${i}`}return`Batch ${e.batchIndex+1}: ${r} file(s), ~${s} tokens`}Ti();var qa=require("node:fs/promises"),nt=require("node:path"),Qy=bt(Wc(),1);M();js();Vs();async function Tf(e){try{let{access:t}=await import("node:fs/promises");return await t(e),!0}catch{return!1}}async function e0(e){let t=(0,nt.join)(e,"skills");if(!await Tf(t))return[];try{return(await Xe("*/SKILL.md",{cwd:t})).map(i=>(0,nt.join)(t,(0,nt.dirname)(i)))}catch{return[]}}async function BI(e){let t=(0,nt.join)(e,"agents","agent.yaml");if(await Tf(t))try{let s=await(0,qa.readFile)(t,"utf-8"),i=Qy.default.parse(s);if(!i||!i.interface)return;let n=i.interface,o=i.review_policy;return{displayName:String(n.display_name??""),shortDescription:String(n.short_description??""),defaultPrompt:String(n.default_prompt??""),reviewPolicy:o?{outputLanguage:o.output_language,outputFormat:o.output_format,autoFixLevels:o.auto_fix_levels,autoFixAction:o.auto_fix_action,suggestLevels:o.suggest_levels}:void 0}}catch{return}}async function OI(e){let t=(0,nt.join)(e,"references");if(!await Tf(t))return[];try{let s=await Xe("*.md",{cwd:t});return(await Promise.all(s.map(async n=>{let o=(0,nt.join)(t,n);try{let a=await(0,qa.readFile)(o,"utf-8");return{name:(0,nt.basename)(n,".md"),path:o,content:a}}catch{return null}}))).filter(n=>n!==null)}catch{return[]}}async function t0(e){let t=(0,nt.join)(e,"SKILL.md");try{let r=await(0,qa.readFile)(t,"utf-8"),{frontmatter:s,body:i}=is(r),n=typeof s.name=="string"?s.name:(0,nt.basename)(e),o=typeof s.description=="string"?s.description:"",[a,u]=await Promise.all([OI(e),BI(e)]);return{name:n,description:o,enabled:!0,prompt:i.trim(),path:e,source:"project",references:a,agentConfig:u}}catch(r){return d.warn(`Failed to load skill from ${e}: ${r instanceof Error?r.message:String(r)}`),null}}async function $f(e,t){let r=`${Ue.SKILLS}:${e}`,s=await Dt(r,async()=>{let i=await e0(e);return i.length===0?[]:(await Promise.all(i.map(n=>t0(n)))).filter(n=>n!==null)});return t?.skills?s.map(i=>{let n=t.skills[i.name];return n?.enabled===void 0?i:{...i,enabled:n.enabled}}):s}function Xs(e){let t=e.filter(s=>s.enabled);if(t.length===0)return"";let r=[];for(let s of t){let i=[];i.push(`# Skill: ${s.name}`),s.description&&i.push(`> ${s.description}`),i.push(""),i.push(s.prompt);for(let n of s.references)i.push(""),i.push(`## Reference: ${n.name}`),i.push(""),i.push(n.content);r.push(i.join(`
282
282
  `))}return`## Skill-Enhanced Review Guidelines
283
283
 
284
284
  ${r.join(`
285
285
 
286
286
  `)}
287
287
 
288
- ## End Skill Guidelines`}M();var t0=require("node:crypto"),zt=require("node:fs/promises"),os=require("node:path");Ee();var Qs=1,r0=["cache","review"],s0=["cache","validation"];function Pf(e){return(0,t0.createHash)("sha256").update(e).digest("hex")}function Ua(){let e=process.env.BEST_REVIEW_CACHE;return e===void 0?process.env.BEST_REVIEW_DISABLE_CACHE!=="true":["1","true","yes","on"].includes(e.toLowerCase())}function i0(e){return Pf(JSON.stringify({version:Qs,...e}))}function n0(e){return Pf(JSON.stringify({version:Qs,...e}))}function $I(e){return yt(...e)}function PI(e){return e.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"repository"}function BI(e){return`${PI((0,os.basename)(e)||"repository")}-${Pf(e).slice(0,16)}`}function Ga(e,t,r){return(0,os.join)($I(t),BI(e),`${r}.json`)}async function o0(e,t){if(!Ua())return null;try{let r=await(0,zt.readFile)(Ga(e,r0,t),"utf-8"),s=JSON.parse(r);return s.version!==Qs||s.key!==t||!Array.isArray(s.issues)?null:s}catch{return null}}async function a0(e,t){if(!Ua())return;let r={...t,version:Qs,createdAt:Date.now()};try{let s=Ga(e,r0,t.key);await(0,zt.mkdir)((0,os.dirname)(s),{recursive:!0}),await(0,zt.writeFile)(s,`${JSON.stringify(r,null,2)}
289
- `,"utf-8")}catch{}}async function u0(e,t){if(!Ua())return null;try{let r=await(0,zt.readFile)(Ga(e,s0,t),"utf-8"),s=JSON.parse(r);return s.version!==Qs||s.key!==t||typeof s.success!="boolean"||!Array.isArray(s.validIds)||!Array.isArray(s.validatedIssues)||!Array.isArray(s.filteredIssues)?null:s}catch{return null}}async function Bf(e,t){if(!Ua())return;let r={...t,version:Qs,createdAt:Date.now()};try{let s=Ga(e,s0,t.key);await(0,zt.mkdir)((0,os.dirname)(s),{recursive:!0}),await(0,zt.writeFile)(s,`${JSON.stringify(r,null,2)}
290
- `,"utf-8")}catch{}}M();function l0(e,t){if(t<1)throw new Error("Chunk size must be at least 1");let r=[];for(let s=0;s<e.length;s+=t)r.push(e.slice(s,s+t));return r}function OI(e){let{label:t,batchIndex:r,totalBatches:s,itemCount:i,itemName:n="item"}=e;if(s===1)return i!==void 0?`${t} (${i} ${n}${i!==1?"s":""})...`:`${t}...`;let o=`batch ${r+1}/${s}`;return i!==void 0?`${t} (${o}, ${i} ${n}${i!==1?"s":""})...`:`${t} (${o})...`}function Va(e){let t=e.filter(s=>!!s);if(t.length===0)return;let r=[...new Set(t)];return r.length===1&&t.length>1?`${r[0]} (${t.length} batches)`:r.join("; ")}async function Wa(e,t,r,s,i){let n=Date.now(),o=OI(e),a=t?null:new Zn(o);try{a?.start();let u=await r(),l=Date.now()-n;if(u.success){let c=s?s(u.data,l):`${e.label} (${l}ms)`;a?.succeed(c)}else{let c=i?i(u.error||"Unknown error"):`${e.label}: ${u.error}`;a?.fail(c)}return{...u,duration:l}}catch(u){let l=Date.now()-n,c=u instanceof Error?u.message:String(u),f=i?i(c):`${e.label}: ${c}`;return a?.fail(f),{success:!1,data:void 0,error:c,duration:l}}finally{a?.stop()}}function c0(e){return e.every(t=>t.success)}function f0(e){return e.filter(t=>!t.success)}M();function Of(e){return e==="changed-file"?2e4:12e3}function Ir(e,t,r=Of(t)){if(e.length<=r)return e;let s=`
291
- ... \u5DF2\u622A\u65AD ${t} \u4E0A\u4E0B\u6587\uFF0C\u539F\u59CB\u957F\u5EA6 ${e.length} \u5B57\u7B26 ...`,i=Math.max(0,r-s.length);return i===0?`${e.slice(0,r)}${s}`:`${e.slice(0,i)}${s}`}function Ha(e){return["## GitLab Merge Request \u8F93\u51FA\u7EA6\u675F","- \u672C\u6B21\u8F93\u5165\u6765\u81EA GitLab Merge Request \u8FDC\u7A0B diff\u3002",`- \u6700\u7EC8\u8F93\u51FA\u7684 issue.file \u53EA\u80FD\u662F\u8FD9\u4E9B MR \u53D8\u66F4\u6587\u4EF6\u4E4B\u4E00\uFF1A${e.join(", ")}`,"- prompt \u4E2D\u51FA\u73B0\u7684 dependency context \u53EA\u53EF\u4F5C\u4E3A\u63A8\u7406\u4E0A\u4E0B\u6587\uFF0C\u7EDD\u5BF9\u4E0D\u80FD\u4F5C\u4E3A\u6700\u7EC8 issue.file\u3002","- \u5982\u679C\u95EE\u9898\u6210\u56E0\u53D1\u751F\u5728\u4F9D\u8D56\u6587\u4EF6\uFF0C\u8BF7\u5728 evidence \u6216 fullDescription \u4E2D\u8BF4\u660E\uFF0C\u5E76\u628A issue \u4ECD\u7136\u951A\u5B9A\u5230\u5BF9\u5E94\u7684 MR \u53D8\u66F4\u6587\u4EF6\u3002"].join(`
292
- `)}function xn(){return["## \u8D44\u6DF1\u5DE5\u7A0B\u5E08\u5BA1\u67E5\u6807\u51C6","- \u5FC5\u987B\u9010\u4E2A\u8986\u76D6\u8F93\u5165\u4E2D\u7684\u6BCF\u4E2A `File:` block\uFF1B\u5982\u679C\u67D0\u4E2A\u6587\u4EF6\u6CA1\u6709\u95EE\u9898\uFF0C\u4E5F\u8981\u5148\u5B8C\u6210\u5BA1\u67E5\u5224\u65AD\u518D\u7EE7\u7EED\u4E0B\u4E00\u4E2A\u6587\u4EF6\u3002","- \u7ED3\u5408 Full File Context \u548C Dependency Context \u63A8\u65AD\u672C\u6B21 diff \u7684\u771F\u5B9E\u6267\u884C\u8DEF\u5F84\u3001\u8C03\u7528\u65B9\u5F71\u54CD\u548C\u8DE8\u6587\u4EF6\u5951\u7EA6\u53D8\u5316\u3002","- \u4EE5\u8D44\u6DF1\u5F00\u53D1\u5DE5\u7A0B\u5E08\u7684\u5408\u5E76\u95E8\u69DB\u505A\u5224\u65AD\uFF0C\u4E0D\u8F93\u51FA\u6CDB\u6CDB\u7684\u4EE3\u7801\u5EFA\u8BAE\u3002","- \u6BCF\u6761\u95EE\u9898\u90FD\u5FC5\u987B\u540C\u65F6\u8BF4\u660E\uFF1A\u5931\u6548\u6A21\u5F0F\u3001\u771F\u5B9E\u5F71\u54CD\u3001\u4EE3\u7801\u8BC1\u636E\u3001\u5177\u4F53\u4FEE\u6CD5\u3002","- \u6CA1\u6709\u5F53\u524D\u53EF\u89C2\u5BDF\u7684\u5931\u8D25\u8DEF\u5F84\u3001\u9519\u8BEF\u7ED3\u679C\u3001\u8BEF\u5BFC\u98CE\u9669\u6216\u7EF4\u62A4\u98CE\u9669\u65F6\uFF0C\u4E0D\u8981\u62A5\u95EE\u9898\u3002","- medium/low \u4E0D\u662F\u653E\u5BBD\u6807\u51C6\uFF1B\u5F71\u54CD\u9762\u53EF\u4EE5\u66F4\u5C0F\uFF0C\u4F46\u8BBA\u8BC1\u5F3A\u5EA6\u5FC5\u987B\u548C high \u4E00\u6837\u624E\u5B9E\u3002","- style \u53EA\u6709\u5728\u4F1A\u9020\u6210\u7406\u89E3\u504F\u5DEE\u3001\u8BEF\u7528\u98CE\u9669\u3001\u7EF4\u62A4\u6210\u672C\u4E0A\u5347\u6216\u56E2\u961F\u7EA6\u5B9A\u5931\u6548\u65F6\u624D\u4FDD\u7559\u3002","- docs \u53EA\u6709\u5728\u4F1A\u5BFC\u81F4\u9519\u8BEF\u4F7F\u7528\u3001\u9519\u8BEF\u5B9E\u73B0\u3001\u63A5\u53E3\u5951\u7EA6\u8BEF\u89E3\u6216\u6392\u969C\u8BEF\u5BFC\u65F6\u624D\u4FDD\u7559\u3002","- \u7981\u6B62\u8F93\u51FA\u8FD9\u7C7B\u7ED3\u8BBA\uFF1A\u5EFA\u8BAE\u4F18\u5316\u4E00\u4E0B\u3001\u6700\u597D\u91CD\u6784\u3001\u547D\u540D\u4E0D\u7EDF\u4E00\u3001\u53EF\u4EE5\u8865\u5145\u6587\u6863\u3001\u957F\u671F\u7EF4\u62A4\u4F1A\u66F4\u597D\u3002","- \u5982\u679C\u4E0D\u80FD\u660E\u786E\u8BF4\u51FA\u201C\u73B0\u5728\u4F1A\u600E\u4E48\u9519\u3001\u8C01\u4F1A\u53D7\u5F71\u54CD\u3001\u5E94\u8BE5\u5177\u4F53\u6539\u54EA\u91CC\u201D\uFF0C\u5C31\u4E0D\u8981\u8F93\u51FA\u8BE5\u95EE\u9898\u3002"].join(`
293
- `)}function LI(e){return["# Repository Context",`Base path: ${e.metadata.repository}`,"All file paths below are relative to this directory.","Use only the diff and context included in this prompt; paths are relative to the base path.",e.metadata.baseRef?`Base ref: ${e.metadata.baseRef}`:null,e.metadata.headRef?`Head ref: ${e.metadata.headRef}`:null].filter(Boolean).join(`
294
- `)}function NI(e,t){let r=e.map(s=>{let i=t.get(s.file);return i?`- ${s.file}: rule="${i}"`:null}).filter(Boolean);return r.length>0?`
288
+ ## End Skill Guidelines`}M();var r0=require("node:crypto"),Jt=require("node:fs/promises"),os=require("node:path");Ce();var Qs=1,s0=["cache","review"],i0=["cache","validation"];function Pf(e){return(0,r0.createHash)("sha256").update(e).digest("hex")}function Ua(){let e=process.env.BEST_REVIEW_CACHE;return e===void 0?process.env.BEST_REVIEW_DISABLE_CACHE!=="true":["1","true","yes","on"].includes(e.toLowerCase())}function n0(e){return Pf(JSON.stringify({version:Qs,...e}))}function o0(e){return Pf(JSON.stringify({version:Qs,...e}))}function LI(e){return yt(...e)}function NI(e){return e.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||"repository"}function MI(e){return`${NI((0,os.basename)(e)||"repository")}-${Pf(e).slice(0,16)}`}function Ga(e,t,r){return(0,os.join)(LI(t),MI(e),`${r}.json`)}async function a0(e,t){if(!Ua())return null;try{let r=await(0,Jt.readFile)(Ga(e,s0,t),"utf-8"),s=JSON.parse(r);return s.version!==Qs||s.key!==t||!Array.isArray(s.issues)?null:s}catch{return null}}async function u0(e,t){if(!Ua())return;let r={...t,version:Qs,createdAt:Date.now()};try{let s=Ga(e,s0,t.key);await(0,Jt.mkdir)((0,os.dirname)(s),{recursive:!0}),await(0,Jt.writeFile)(s,`${JSON.stringify(r,null,2)}
289
+ `,"utf-8")}catch{}}async function l0(e,t){if(!Ua())return null;try{let r=await(0,Jt.readFile)(Ga(e,i0,t),"utf-8"),s=JSON.parse(r);return s.version!==Qs||s.key!==t||typeof s.success!="boolean"||!Array.isArray(s.validIds)||!Array.isArray(s.validatedIssues)||!Array.isArray(s.filteredIssues)?null:s}catch{return null}}async function Bf(e,t){if(!Ua())return;let r={...t,version:Qs,createdAt:Date.now()};try{let s=Ga(e,i0,t.key);await(0,Jt.mkdir)((0,os.dirname)(s),{recursive:!0}),await(0,Jt.writeFile)(s,`${JSON.stringify(r,null,2)}
290
+ `,"utf-8")}catch{}}M();function c0(e,t){if(t<1)throw new Error("Chunk size must be at least 1");let r=[];for(let s=0;s<e.length;s+=t)r.push(e.slice(s,s+t));return r}function jI(e){let{label:t,batchIndex:r,totalBatches:s,itemCount:i,itemName:n="item"}=e;if(s===1)return i!==void 0?`${t} (${i} ${n}${i!==1?"s":""})...`:`${t}...`;let o=`batch ${r+1}/${s}`;return i!==void 0?`${t} (${o}, ${i} ${n}${i!==1?"s":""})...`:`${t} (${o})...`}function Va(e){let t=e.filter(s=>!!s);if(t.length===0)return;let r=[...new Set(t)];return r.length===1&&t.length>1?`${r[0]} (${t.length} batches)`:r.join("; ")}async function Wa(e,t,r,s,i){let n=Date.now(),o=jI(e),a=t?null:new Zn(o);try{a?.start();let u=await r(),l=Date.now()-n;if(u.success){let c=s?s(u.data,l):`${e.label} (${l}ms)`;a?.succeed(c)}else{let c=i?i(u.error||"Unknown error"):`${e.label}: ${u.error}`;a?.fail(c)}return{...u,duration:l}}catch(u){let l=Date.now()-n,c=u instanceof Error?u.message:String(u),f=i?i(c):`${e.label}: ${c}`;return a?.fail(f),{success:!1,data:void 0,error:c,duration:l}}finally{a?.stop()}}function f0(e){return e.every(t=>t.success)}function d0(e){return e.filter(t=>!t.success)}M();function Of(e){return e==="changed-file"?2e4:12e3}function Ir(e,t,r=Of(t)){if(e.length<=r)return e;let s=`
291
+ ... \u5DF2\u622A\u65AD ${t} \u4E0A\u4E0B\u6587\uFF0C\u539F\u59CB\u957F\u5EA6 ${e.length} \u5B57\u7B26 ...`,i=Math.max(0,r-s.length);return i===0?`${e.slice(0,r)}${s}`:`${e.slice(0,i)}${s}`}function Ka(e){return["## GitLab Merge Request \u8F93\u51FA\u7EA6\u675F","- \u672C\u6B21\u8F93\u5165\u6765\u81EA GitLab Merge Request \u8FDC\u7A0B diff\u3002",`- \u6700\u7EC8\u8F93\u51FA\u7684 issue.file \u53EA\u80FD\u662F\u8FD9\u4E9B MR \u53D8\u66F4\u6587\u4EF6\u4E4B\u4E00\uFF1A${e.join(", ")}`,"- prompt \u4E2D\u51FA\u73B0\u7684 dependency context \u53EA\u53EF\u4F5C\u4E3A\u63A8\u7406\u4E0A\u4E0B\u6587\uFF0C\u7EDD\u5BF9\u4E0D\u80FD\u4F5C\u4E3A\u6700\u7EC8 issue.file\u3002","- \u5982\u679C\u95EE\u9898\u6210\u56E0\u53D1\u751F\u5728\u4F9D\u8D56\u6587\u4EF6\uFF0C\u8BF7\u5728 evidence \u6216 fullDescription \u4E2D\u8BF4\u660E\uFF0C\u5E76\u628A issue \u4ECD\u7136\u951A\u5B9A\u5230\u5BF9\u5E94\u7684 MR \u53D8\u66F4\u6587\u4EF6\u3002"].join(`
292
+ `)}function An(){return["## \u8D44\u6DF1\u5DE5\u7A0B\u5E08\u5BA1\u67E5\u6807\u51C6","- \u5FC5\u987B\u9010\u4E2A\u8986\u76D6\u8F93\u5165\u4E2D\u7684\u6BCF\u4E2A `File:` block\uFF1B\u5982\u679C\u67D0\u4E2A\u6587\u4EF6\u6CA1\u6709\u95EE\u9898\uFF0C\u4E5F\u8981\u5148\u5B8C\u6210\u5BA1\u67E5\u5224\u65AD\u518D\u7EE7\u7EED\u4E0B\u4E00\u4E2A\u6587\u4EF6\u3002","- \u7ED3\u5408 Full File Context \u548C Dependency Context \u63A8\u65AD\u672C\u6B21 diff \u7684\u771F\u5B9E\u6267\u884C\u8DEF\u5F84\u3001\u8C03\u7528\u65B9\u5F71\u54CD\u548C\u8DE8\u6587\u4EF6\u5951\u7EA6\u53D8\u5316\u3002","- \u4EE5\u8D44\u6DF1\u5F00\u53D1\u5DE5\u7A0B\u5E08\u7684\u5408\u5E76\u95E8\u69DB\u505A\u5224\u65AD\uFF0C\u4E0D\u8F93\u51FA\u6CDB\u6CDB\u7684\u4EE3\u7801\u5EFA\u8BAE\u3002","- \u6BCF\u6761\u95EE\u9898\u90FD\u5FC5\u987B\u540C\u65F6\u8BF4\u660E\uFF1A\u5931\u6548\u6A21\u5F0F\u3001\u771F\u5B9E\u5F71\u54CD\u3001\u4EE3\u7801\u8BC1\u636E\u3001\u5177\u4F53\u4FEE\u6CD5\u3002","- \u6CA1\u6709\u5F53\u524D\u53EF\u89C2\u5BDF\u7684\u5931\u8D25\u8DEF\u5F84\u3001\u9519\u8BEF\u7ED3\u679C\u3001\u8BEF\u5BFC\u98CE\u9669\u6216\u7EF4\u62A4\u98CE\u9669\u65F6\uFF0C\u4E0D\u8981\u62A5\u95EE\u9898\u3002","- medium/low \u4E0D\u662F\u653E\u5BBD\u6807\u51C6\uFF1B\u5F71\u54CD\u9762\u53EF\u4EE5\u66F4\u5C0F\uFF0C\u4F46\u8BBA\u8BC1\u5F3A\u5EA6\u5FC5\u987B\u548C high \u4E00\u6837\u624E\u5B9E\u3002","- style \u53EA\u6709\u5728\u4F1A\u9020\u6210\u7406\u89E3\u504F\u5DEE\u3001\u8BEF\u7528\u98CE\u9669\u3001\u7EF4\u62A4\u6210\u672C\u4E0A\u5347\u6216\u56E2\u961F\u7EA6\u5B9A\u5931\u6548\u65F6\u624D\u4FDD\u7559\u3002","- docs \u53EA\u6709\u5728\u4F1A\u5BFC\u81F4\u9519\u8BEF\u4F7F\u7528\u3001\u9519\u8BEF\u5B9E\u73B0\u3001\u63A5\u53E3\u5951\u7EA6\u8BEF\u89E3\u6216\u6392\u969C\u8BEF\u5BFC\u65F6\u624D\u4FDD\u7559\u3002","- \u7981\u6B62\u8F93\u51FA\u8FD9\u7C7B\u7ED3\u8BBA\uFF1A\u5EFA\u8BAE\u4F18\u5316\u4E00\u4E0B\u3001\u6700\u597D\u91CD\u6784\u3001\u547D\u540D\u4E0D\u7EDF\u4E00\u3001\u53EF\u4EE5\u8865\u5145\u6587\u6863\u3001\u957F\u671F\u7EF4\u62A4\u4F1A\u66F4\u597D\u3002","- \u5982\u679C\u4E0D\u80FD\u660E\u786E\u8BF4\u51FA\u201C\u73B0\u5728\u4F1A\u600E\u4E48\u9519\u3001\u8C01\u4F1A\u53D7\u5F71\u54CD\u3001\u5E94\u8BE5\u5177\u4F53\u6539\u54EA\u91CC\u201D\uFF0C\u5C31\u4E0D\u8981\u8F93\u51FA\u8BE5\u95EE\u9898\u3002"].join(`
293
+ `)}function qI(e){return["# Repository Context",`Base path: ${e.metadata.repository}`,"All file paths below are relative to this directory.","Use only the diff and context included in this prompt; paths are relative to the base path.",e.metadata.baseRef?`Base ref: ${e.metadata.baseRef}`:null,e.metadata.headRef?`Head ref: ${e.metadata.headRef}`:null].filter(Boolean).join(`
294
+ `)}function UI(e,t){let r=e.map(s=>{let i=t.get(s.file);return i?`- ${s.file}: rule="${i}"`:null}).filter(Boolean);return r.length>0?`
295
295
 
296
296
  # File-Rule Mappings
297
297
 
298
298
  Each file was matched by a specific rule. Include the rule name in the "rule" field of each issue:
299
299
  ${r.join(`
300
- `)}`:""}function d0(e){return Ir(e.content,e.role,Of(e.role))}function Ka(e,t){return e.role==="changed-file"?t.has(e.file):!e.relatedFiles||e.relatedFiles.length===0?!0:e.relatedFiles.some(r=>t.has(r))}function Lf(e,t){if(!t||t.length===0)return"";let r=new Set;for(let o of e)r.add(o.file),o.oldPath&&r.add(o.oldPath),o.newPath&&r.add(o.newPath);let s=t.filter(o=>o.role==="changed-file"&&Ka(o,r)),i=t.filter(o=>o.role==="dependency"&&Ka(o,r)),n=[];return s.length>0&&n.push("# Full File Context","",...s.flatMap(o=>[`File: ${o.file}`,`Source: ${o.source}@${o.ref}`,d0(o),""])),i.length>0&&n.push("# Dependency Context","",...i.flatMap(o=>[`File: ${o.file}`,`Source: ${o.source}@${o.ref}`,o.relatedFiles&&o.relatedFiles.length>0?`Related to: ${o.relatedFiles.join(", ")}`:"Related to: unknown",d0(o),""])),n.length>0?`
300
+ `)}`:""}function h0(e){return Ir(e.content,e.role,Of(e.role))}function Ha(e,t){return e.role==="changed-file"?t.has(e.file):!e.relatedFiles||e.relatedFiles.length===0?!0:e.relatedFiles.some(r=>t.has(r))}function Lf(e,t){if(!t||t.length===0)return"";let r=new Set;for(let o of e)r.add(o.file),o.oldPath&&r.add(o.oldPath),o.newPath&&r.add(o.newPath);let s=t.filter(o=>o.role==="changed-file"&&Ha(o,r)),i=t.filter(o=>o.role==="dependency"&&Ha(o,r)),n=[];return s.length>0&&n.push("# Full File Context","",...s.flatMap(o=>[`File: ${o.file}`,`Source: ${o.source}@${o.ref}`,h0(o),""])),i.length>0&&n.push("# Dependency Context","",...i.flatMap(o=>[`File: ${o.file}`,`Source: ${o.source}@${o.ref}`,o.relatedFiles&&o.relatedFiles.length>0?`Related to: ${o.relatedFiles.join(", ")}`:"Related to: unknown",h0(o),""])),n.length>0?`
301
301
 
302
302
  ${n.join(`
303
- `)}`:""}function as(e,t,r){return`${LI(r)}${NI(e,t)}
303
+ `)}`:""}function as(e,t,r){return`${qI(r)}${UI(e,t)}
304
304
 
305
305
  ${e.map(s=>`File: ${s.file}
306
306
  ${s.diff}`).join(`
307
307
 
308
- `)}${Lf(e,r.supplementalContextFiles)}`}function h0(e,t,r){let s=new Map;for(let a of e)s.set(a.rule.name,a);let i=Array.from(s.keys()).join(", "),n=["\u4F60\u662F best-review \u7684\u5FEB\u901F\u5408\u5E76\u4EE3\u7801\u5BA1\u67E5 Agent\u3002\u8BF7\u5728\u4E00\u6B21\u6A21\u578B\u8C03\u7528\u4E2D\u5B8C\u6210\u7F3A\u9677\u3001\u5B89\u5168\u3001\u6027\u80FD\u3001\u901A\u7528\u8D28\u91CF\u548C\u4E00\u81F4\u6027\u5BA1\u67E5\uFF0C\u907F\u514D\u91CD\u590D\u5206\u6790\u3002","","## \u5BA1\u67E5\u4F18\u5148\u7EA7","","1. \u9996\u5148\u627E\u4F1A\u5BFC\u81F4\u9519\u8BEF\u7ED3\u679C\u3001\u5D29\u6E83\u3001\u6570\u636E\u635F\u574F\u3001\u8D8A\u6743\u3001\u654F\u611F\u4FE1\u606F\u6CC4\u9732\u6216\u5173\u952E\u94FE\u8DEF\u4E0D\u53EF\u7528\u7684\u771F\u5B9E\u95EE\u9898\u3002","2. \u5176\u6B21\u627E\u6709\u660E\u786E\u8BC1\u636E\u7684\u9AD8\u98CE\u9669\u6027\u80FD\u9000\u5316\u3001\u914D\u7F6E\u9519\u8BEF\u3001\u516C\u5171\u63A5\u53E3\u4E0D\u517C\u5BB9\u548C\u7EF4\u62A4\u6027\u95EE\u9898\u3002","3. \u4E2D\u4F4E\u98CE\u9669\u4E5F\u8981\u6536\u96C6\uFF0C\u4F46\u5FC5\u987B\u50CF\u8D44\u6DF1\u5DE5\u7A0B\u5E08\u4E00\u6837\u5199\u6E05\u5931\u6548\u6A21\u5F0F\u3001\u771F\u5B9E\u5F71\u54CD\u548C\u5177\u4F53\u4FEE\u6CD5\uFF0C\u4E0D\u8F93\u51FA\u6CDB\u6CDB\u5EFA\u8BAE\u3002","","## \u4E25\u91CD\u7EA7\u522B\u7EA6\u675F","","- critical\uFF1A\u53EA\u7528\u4E8E\u8BC1\u636E\u660E\u786E\u3001\u5F71\u54CD\u4E25\u91CD\u3001\u53EF\u8FBE\u8DEF\u5F84\u6E05\u695A\u7684\u95EE\u9898\u3002","- high\uFF1A\u5FC5\u987B\u7ED9\u51FA\u63A8\u8350\u5199\u6CD5\u6216\u5177\u4F53\u4FEE\u590D\u65B9\u6848\uFF0C\u4E0D\u80FD\u53EA\u4E0B\u5224\u65AD\u3002","- medium/low\uFF1A\u53EA\u4FDD\u7559\u771F\u5B9E\u3001\u53EF\u590D\u8FF0\u5931\u6548\u6A21\u5F0F\u7684\u95EE\u9898\uFF0C\u4E0D\u7528\u6765\u51D1\u6570\u91CF\u3002","- style/docs\uFF1A\u53EA\u6709\u5728\u4F1A\u8BEF\u5BFC\u5B9E\u73B0\u3001\u8BEF\u5BFC\u4F7F\u7528\u3001\u7834\u574F\u7EA6\u5B9A\u6216\u5E26\u6765\u771F\u5B9E\u7EF4\u62A4\u98CE\u9669\u65F6\u624D\u4FDD\u7559\u3002","","## \u8F93\u51FA\u7EA6\u675F","","- \u9010\u4E2A\u8986\u76D6\u8F93\u5165\u4E2D\u7684\u6BCF\u4E2A `File:` block\uFF1B\u7ED3\u5408\u672C\u6B21 diff\u3001Full File Context \u548C Dependency Context \u5224\u65AD\u3002","- \u4E0D\u8981\u8C03\u7528\u4EFB\u4F55\u5DE5\u5177\uFF0C\u4E0D\u8981\u8BFB\u53D6\u4ED3\u5E93\u6587\u4EF6\uFF0C\u4E0D\u8981\u8FD0\u884C\u547D\u4EE4\u3001\u5168\u4ED3\u641C\u7D22\u6216\u8054\u7F51\uFF1B\u4E0A\u4E0B\u6587\u4E0D\u8DB3\u65F6\u76F4\u63A5\u4E0D\u62A5\u3002","- \u6BCF\u6761\u95EE\u9898\u5FC5\u987B\u6709\u6587\u4EF6\u3001\u884C\u53F7\u3001\u8BC1\u636E\u3001\u771F\u5B9E\u5F71\u54CD\u548C\u5177\u4F53\u5EFA\u8BAE\u3002","- \u6BCF\u6761\u95EE\u9898\u5FC5\u987B\u8F93\u51FA\u6574\u6570 confidence\uFF1B\u65E0\u6CD5\u7ED9\u51FA confidence >= 70 \u65F6\u4E0D\u8981\u62A5\u544A\u3002","- critical/high \u5FC5\u987B\u540C\u65F6\u6709\u7CBE\u51C6\u8BC1\u636E\u3001\u53EF\u8FBE\u8DEF\u5F84\u548C\u5177\u4F53\u4FEE\u590D\u5199\u6CD5\uFF1B\u7F3A\u4E00\u9879\u5C31\u964D\u7EA7\u6216\u4E0D\u62A5\u3002","- medium/low \u4E5F\u5FC5\u987B\u8BF4\u660E\u201D\u73B0\u5728\u4F1A\u600E\u4E48\u9519\u201D\u6216\u201D\u4F1A\u8BEF\u5BFC\u8C01\u201D\uFF0C\u5426\u5219\u4E0D\u62A5\u3002","- \u4E0D\u8981\u8F93\u51FA\u201D\u5EFA\u8BAE\u4F18\u5316\u4E00\u4E0B\u201D\u201D\u5EFA\u8BAE\u91CD\u6784\u201D\u201D\u547D\u540D\u4E0D\u7EDF\u4E00\u201D\u201D\u8865\u5145\u6587\u6863\u5373\u53EF\u201D\u8FD9\u7C7B\u6CDB\u7ED3\u8BBA\u3002","- \u8F93\u51FA\u5B8C\u6574 <json>...</json> \u540E\u7ACB\u5373\u505C\u6B62\u3002"].join(`
309
- `),o=r?Xs(r):"";return[n,o||null,xn(),i?`\u547D\u4E2D\u7684\u89C4\u5219\uFF1A${i}`:null,t].filter(Boolean).join(`
308
+ `)}${Lf(e,r.supplementalContextFiles)}`}function p0(e,t,r){let s=new Map;for(let a of e)s.set(a.rule.name,a);let i=Array.from(s.keys()).join(", "),n=["\u4F60\u662F best-review \u7684\u5FEB\u901F\u5408\u5E76\u4EE3\u7801\u5BA1\u67E5 Agent\u3002\u8BF7\u5728\u4E00\u6B21\u6A21\u578B\u8C03\u7528\u4E2D\u5B8C\u6210\u7F3A\u9677\u3001\u5B89\u5168\u3001\u6027\u80FD\u3001\u901A\u7528\u8D28\u91CF\u548C\u4E00\u81F4\u6027\u5BA1\u67E5\uFF0C\u907F\u514D\u91CD\u590D\u5206\u6790\u3002","","## \u5BA1\u67E5\u4F18\u5148\u7EA7","","1. \u9996\u5148\u627E\u4F1A\u5BFC\u81F4\u9519\u8BEF\u7ED3\u679C\u3001\u5D29\u6E83\u3001\u6570\u636E\u635F\u574F\u3001\u8D8A\u6743\u3001\u654F\u611F\u4FE1\u606F\u6CC4\u9732\u6216\u5173\u952E\u94FE\u8DEF\u4E0D\u53EF\u7528\u7684\u771F\u5B9E\u95EE\u9898\u3002","2. \u5176\u6B21\u627E\u6709\u660E\u786E\u8BC1\u636E\u7684\u9AD8\u98CE\u9669\u6027\u80FD\u9000\u5316\u3001\u914D\u7F6E\u9519\u8BEF\u3001\u516C\u5171\u63A5\u53E3\u4E0D\u517C\u5BB9\u548C\u7EF4\u62A4\u6027\u95EE\u9898\u3002","3. \u4E2D\u4F4E\u98CE\u9669\u4E5F\u8981\u6536\u96C6\uFF0C\u4F46\u5FC5\u987B\u50CF\u8D44\u6DF1\u5DE5\u7A0B\u5E08\u4E00\u6837\u5199\u6E05\u5931\u6548\u6A21\u5F0F\u3001\u771F\u5B9E\u5F71\u54CD\u548C\u5177\u4F53\u4FEE\u6CD5\uFF0C\u4E0D\u8F93\u51FA\u6CDB\u6CDB\u5EFA\u8BAE\u3002","","## \u4E25\u91CD\u7EA7\u522B\u7EA6\u675F","","- critical\uFF1A\u53EA\u7528\u4E8E\u8BC1\u636E\u660E\u786E\u3001\u5F71\u54CD\u4E25\u91CD\u3001\u53EF\u8FBE\u8DEF\u5F84\u6E05\u695A\u7684\u95EE\u9898\u3002","- high\uFF1A\u5FC5\u987B\u7ED9\u51FA\u63A8\u8350\u5199\u6CD5\u6216\u5177\u4F53\u4FEE\u590D\u65B9\u6848\uFF0C\u4E0D\u80FD\u53EA\u4E0B\u5224\u65AD\u3002","- medium/low\uFF1A\u53EA\u4FDD\u7559\u771F\u5B9E\u3001\u53EF\u590D\u8FF0\u5931\u6548\u6A21\u5F0F\u7684\u95EE\u9898\uFF0C\u4E0D\u7528\u6765\u51D1\u6570\u91CF\u3002","- style/docs\uFF1A\u53EA\u6709\u5728\u4F1A\u8BEF\u5BFC\u5B9E\u73B0\u3001\u8BEF\u5BFC\u4F7F\u7528\u3001\u7834\u574F\u7EA6\u5B9A\u6216\u5E26\u6765\u771F\u5B9E\u7EF4\u62A4\u98CE\u9669\u65F6\u624D\u4FDD\u7559\u3002","","## \u8F93\u51FA\u7EA6\u675F","","- \u9010\u4E2A\u8986\u76D6\u8F93\u5165\u4E2D\u7684\u6BCF\u4E2A `File:` block\uFF1B\u7ED3\u5408\u672C\u6B21 diff\u3001Full File Context \u548C Dependency Context \u5224\u65AD\u3002","- \u4E0D\u8981\u8C03\u7528\u4EFB\u4F55\u5DE5\u5177\uFF0C\u4E0D\u8981\u8BFB\u53D6\u4ED3\u5E93\u6587\u4EF6\uFF0C\u4E0D\u8981\u8FD0\u884C\u547D\u4EE4\u3001\u5168\u4ED3\u641C\u7D22\u6216\u8054\u7F51\uFF1B\u4E0A\u4E0B\u6587\u4E0D\u8DB3\u65F6\u76F4\u63A5\u4E0D\u62A5\u3002","- \u6BCF\u6761\u95EE\u9898\u5FC5\u987B\u6709\u6587\u4EF6\u3001\u884C\u53F7\u3001\u8BC1\u636E\u3001\u771F\u5B9E\u5F71\u54CD\u548C\u5177\u4F53\u5EFA\u8BAE\u3002","- \u6BCF\u6761\u95EE\u9898\u5FC5\u987B\u8F93\u51FA\u6574\u6570 confidence\uFF1B\u65E0\u6CD5\u7ED9\u51FA confidence >= 70 \u65F6\u4E0D\u8981\u62A5\u544A\u3002","- critical/high \u5FC5\u987B\u540C\u65F6\u6709\u7CBE\u51C6\u8BC1\u636E\u3001\u53EF\u8FBE\u8DEF\u5F84\u548C\u5177\u4F53\u4FEE\u590D\u5199\u6CD5\uFF1B\u7F3A\u4E00\u9879\u5C31\u964D\u7EA7\u6216\u4E0D\u62A5\u3002","- medium/low \u4E5F\u5FC5\u987B\u8BF4\u660E\u201D\u73B0\u5728\u4F1A\u600E\u4E48\u9519\u201D\u6216\u201D\u4F1A\u8BEF\u5BFC\u8C01\u201D\uFF0C\u5426\u5219\u4E0D\u62A5\u3002","- \u4E0D\u8981\u8F93\u51FA\u201D\u5EFA\u8BAE\u4F18\u5316\u4E00\u4E0B\u201D\u201D\u5EFA\u8BAE\u91CD\u6784\u201D\u201D\u547D\u540D\u4E0D\u7EDF\u4E00\u201D\u201D\u8865\u5145\u6587\u6863\u5373\u53EF\u201D\u8FD9\u7C7B\u6CDB\u7ED3\u8BBA\u3002","- \u8F93\u51FA\u5B8C\u6574 <json>...</json> \u540E\u7ACB\u5373\u505C\u6B62\u3002"].join(`
309
+ `),o=r?Xs(r):"";return[n,o||null,An(),i?`\u547D\u4E2D\u7684\u89C4\u5219\uFF1A${i}`:null,t].filter(Boolean).join(`
310
310
 
311
- `)}function us(e,t,r){return{agent:e.name,executor:t,success:!1,output:"",error:r,duration:0,issues:[]}}async function Nf(e,t,r,s,i,n,o){let{batches:a,systemPrompt:u,fileToRule:l}=r,c=_t(u),f=await Promise.all(a.map(h=>MI(h,a,e,t,u,c,l,s,i,n,o)));return jI(f,e,a)}async function MI(e,t,r,s,i,n,o,a,u,l,c){return u(async()=>{let f=c||r.name;e.batchIndex===0&&l?.startTask(f);let h=e.input??as(e.diffs,o,a);if(a.verbose&&!a.quiet){let D=e.tokenCount-n,b=e.diffs.map(v=>`File: ${v.file} <diff ${v.diff.length} chars>`).join(`
311
+ `)}function us(e,t,r){return{agent:e.name,executor:t,success:!1,output:"",error:r,duration:0,issues:[]}}async function Nf(e,t,r,s,i,n,o){let{batches:a,systemPrompt:u,fileToRule:l}=r,c=_t(u),f=await Promise.all(a.map(h=>GI(h,a,e,t,u,c,l,s,i,n,o)));return VI(f,e,a)}async function GI(e,t,r,s,i,n,o,a,u,l,c){return u(async()=>{let f=c||r.name;e.batchIndex===0&&l?.startTask(f);let h=e.input??as(e.diffs,o,a);if(a.verbose&&!a.quiet){let D=e.tokenCount-n,b=e.diffs.map(v=>`File: ${v.file} <diff ${v.diff.length} chars>`).join(`
312
312
  `),w=`${i}
313
313
 
314
314
  # Input:
315
- ${b}`;d.newline(),d.plain(`${r.name} \u7684 prompt\uFF08batch ${e.batchIndex+1}/${t.length}\uFF09\uFF1A`),d.plain(` Tokens\uFF1A${e.tokenCount.toLocaleString()}\uFF08\u7EA6 ${n.toLocaleString()} system + ${D.toLocaleString()} input\uFF09`),d.plain("\u2500".repeat(80)),d.plain(w),d.plain("\u2500".repeat(80)),d.newline()}let p=r.executorSettings&&s.applySettings?s.applySettings(r.executorSettings):s.getInfo(),m={agent:r,executor:p,input:h,systemPrompt:i,verbose:a.verbose,quiet:a.quiet,stream:a.stream,cwd:a.metadata.repository,modelOverride:a.modelOverride},g=async()=>{let D=await Oa(),b=Ks(i,h,D),w=i0({agent:r.name,executor:p.name,model:p.model,baseUrl:p.baseUrl,temperature:p.temperature,maxTokens:p.maxTokens,systemPrompt:i,prompt:b}),v=await o0(a.metadata.repository,w);if(v)return{success:!0,data:v.issues,usage:v.usage,cacheHit:!0};let E=await ge.executeAgent(m),C=yy(E.output,r.name);return E.success&&await a0(a.metadata.repository,{key:w,agent:r.name,executor:p.name,model:p.model,output:E.output,issues:C,usage:E.usage}),{success:E.success,data:C,error:E.error,usage:E.usage,cacheHit:E.cacheHit}};if(l){let D=Date.now();try{let b=await g(),w=Date.now()-D;return b.success?l.completeBatch(f):l.failTask(f),{...b,duration:w}}catch(b){let w=Date.now()-D,v=b instanceof Error?b.message:String(b);return l.failTask(f),{success:!1,data:[],error:v,duration:w}}}return Wa({label:r.name,batchIndex:e.batchIndex,totalBatches:t.length},a.quiet??!1,g,(D,b)=>t.length>1?`${r.name} (batch ${e.batchIndex+1}/${t.length}, ${b}ms)`:`${r.name} (${b}ms)`,D=>t.length>1?`${r.name} (batch ${e.batchIndex+1}/${t.length}): ${D}`:`${r.name}: ${D}`)})}function jI(e,t,r){let s=[],i=0,n=Ht();for(let u of e)s.push(...u.data),i+=u.duration||0,n=kr(n,u.usage,{cacheHit:u.cacheHit});let o=e.every(u=>u.success),a=Va(e.map(u=>u.error));return{agent:t.name,executor:t.executor||"unknown",success:o,output:`\u5DF2\u5904\u7406 ${r.length} \u4E2A batch\uFF0C\u53D1\u73B0 ${s.length} \u4E2A\u95EE\u9898`,duration:i,issues:s,error:a,usage:n}}function qI(){let e=process.env.BEST_REVIEW_DIFF_CONTEXT_LINES;if(!e)return 1;let t=Number.parseInt(e,10);return Number.isNaN(t)||t<0?1:t}function UI(){let e=process.env.BEST_REVIEW_MAX_DIFF_CHARS_PER_FILE;if(!e)return 6e4;let t=Number.parseInt(e,10);return Number.isNaN(t)||t<1e3?6e4:t}function GI(e){return e.startsWith("+")&&!e.startsWith("+++")||e.startsWith("-")&&!e.startsWith("---")}function VI(e){return e.startsWith("diff --git ")||e.startsWith("Index: ")||e.startsWith("===")||e.startsWith("--- ")||e.startsWith("+++ ")||e.startsWith("rename ")||e.startsWith("similarity index ")||e.startsWith("new file mode ")||e.startsWith("deleted file mode ")}function WI(e,t,r){let s=t.map((u,l)=>GI(u)?l:-1).filter(u=>u>=0);if(s.length===0)return[e];let i=new Set;for(let u of s)for(let l=-r;l<=r;l+=1){let c=u+l;c>=0&&c<t.length&&i.add(c)}let n=[e],o=Array.from(i).sort((u,l)=>u-l),a=-1;for(let u of o)a>=0&&u-a>1&&n.push(`... \u7701\u7565 ${u-a-1} \u884C\u672A\u53D8\u66F4\u4E0A\u4E0B\u6587 ...`),n.push(t[u]??""),a=u;return n}function KI(e,t){let r=[],s=0;for(let i of e){let n=s+i.length+1;if(n>t){r.push(`... \u5DF2\u8FBE\u5230\u5355\u6587\u4EF6 diff \u8F93\u5165\u4E0A\u9650 ${t} \u5B57\u7B26\uFF0C\u540E\u7EED\u5185\u5BB9\u7701\u7565 ...`);break}r.push(i),s=n}return r}function HI(e,t={}){if(process.env.BEST_REVIEW_FULL_DIFF==="true")return e;let r=t.contextLines??qI(),s=t.maxCharsPerFile??UI(),i=e.split(`
316
- `),n=["# compacted diff: \u4EC5\u4FDD\u7559\u53D8\u66F4\u884C\u3001hunk \u884C\u53F7\u548C\u5C11\u91CF\u4E0A\u4E0B\u6587\uFF1B\u8BBE\u7F6E BEST_REVIEW_FULL_DIFF=true \u53EF\u4F7F\u7528\u5B8C\u6574 diff"],o=null,a=[],u=()=>{o&&(n.push(...WI(o,a,r)),o=null,a=[])};for(let l of i){if(l.startsWith("@@")){u(),o=l;continue}if(o){a.push(l);continue}VI(l)&&n.push(l)}return u(),KI(n,s).join(`
317
- `)}function p0(e,t={}){return{...e,diff:HI(e.diff,t)}}Rr();var za="code-review-expert",m0=`skill:${za}`,zI="tech-doc-compliance",g0="tech-doc-compliance",JI=new Set(["code-quality-checklist","security-checklist","solid-checklist","stack-best-practices","typescript-react-best-practices"]),YI=/(?:^|[\s`'"((])((?:\.{0,2}\/)?(?:[A-Za-z0-9_.@-]+\/)+[A-Za-z0-9_.@-]+\.(?:ts|tsx|js|jsx|mjs|cjs|mts|cts|vue|svelte|kt|sh|sql|toml|ini|tf|hcl|xml|json|ya?ml|md|css|scss|html|py|go|java|rb|rs|php|swift)|[A-Za-z0-9_.@-]+\.(?:ts|tsx|js|jsx|mjs|cjs|mts|cts|vue|svelte|kt|sh|sql|toml|ini|tf|hcl|xml|json|ya?ml|md|css|scss|html|py|go|java|rb|rs|php|swift))(?=$|[\s`'",:;).,。;、)])/g;function Ja(e){return e.map(t=>p0(t))}function ZI(e){let t=e?.find(r=>r.name===za&&r.enabled);if(t)return{...t,references:t.references.filter(r=>JI.has(r.name))}}function D0(e){return(e??[]).filter(t=>t.name!==za)}function y0(e){let t=new Map,r=new Map,s=new Set;for(let i of e)for(let n of i.files){s.add(n);let a=i.rule.patterns.find(l=>Ar(n,l))?.length??0,u=r.get(n)??0;a>u&&(t.set(n,i.rule.name),r.set(n,a))}return{fileToRule:t,matchedFileSet:s}}function w0(e){return new Set([e.file,e.oldPath,e.newPath].filter(t=>!!t))}function XI(e,t){let r=w0(e);return t.supplementalContextFiles?.some(s=>s.role==="changed-file"&&r.has(s.file))??!1}function QI(e,t){let r=w0(e);return t.supplementalContextFiles?.some(s=>s.role!=="dependency"?!1:!s.relatedFiles||s.relatedFiles.length===0?!0:s.relatedFiles.some(i=>r.has(i)))??!1}function e_(e,t){let r=e.status==="renamed"&&(e.oldPath||e.newPath)?`, rename=${e.oldPath??"unknown"}->${e.newPath??e.file}`:"";return[`- ${e.file}: status=${e.status}`,r,`, fullFileContext=${XI(e,t)?"yes":"no"}`,`, dependencyContext=${QI(e,t)?"yes":"no"}`].join("")}function t_(e,t){return["# Skill Review Coverage Checklist","","\u8FD9\u4E2A batch \u5C5E\u4E8E code-review-expert \u6574\u4F53\u5BA1\u67E5 pass\u3002\u8F93\u51FA\u524D\u5FC5\u987B\u9010\u4E2A\u5B8C\u6210\u4E0B\u5217 diff \u6587\u4EF6\u7684\u5BA1\u67E5\u5224\u65AD\uFF1B\u6CA1\u6709\u95EE\u9898\u7684\u6587\u4EF6\u4E0D\u8981\u8F93\u51FA\u5360\u4F4D\u9879\u3002",`issue.file \u53EA\u80FD\u662F\u672C\u6E05\u5355\u4E2D\u7684 diff \u6587\u4EF6\uFF1A${e.map(s=>s.file).join(", ")}`,"Dependency Context \u53EA\u80FD\u4F5C\u4E3A\u8BC1\u636E\u548C\u8C03\u7528\u94FE\u4E0A\u4E0B\u6587\uFF1B\u5982\u679C\u95EE\u9898\u6839\u56E0\u5728\u4F9D\u8D56\u6587\u4EF6\uFF0C\u6700\u7EC8 issue \u4ECD\u5FC5\u987B\u951A\u5B9A\u5230\u89E6\u53D1\u98CE\u9669\u7684 diff \u6587\u4EF6\u3002","",...e.map(s=>e_(s,t))].join(`
318
- `)}function r_(e,t,r){return`${t_(e,r)}
315
+ ${b}`;d.newline(),d.plain(`${r.name} \u7684 prompt\uFF08batch ${e.batchIndex+1}/${t.length}\uFF09\uFF1A`),d.plain(` Tokens\uFF1A${e.tokenCount.toLocaleString()}\uFF08\u7EA6 ${n.toLocaleString()} system + ${D.toLocaleString()} input\uFF09`),d.plain("\u2500".repeat(80)),d.plain(w),d.plain("\u2500".repeat(80)),d.newline()}let p=r.executorSettings&&s.applySettings?s.applySettings(r.executorSettings):s.getInfo(),m={agent:r,executor:p,input:h,systemPrompt:i,verbose:a.verbose,quiet:a.quiet,stream:a.stream,cwd:a.metadata.repository,modelOverride:a.modelOverride},g=async()=>{let D=await Oa(),b=Hs(i,h,D),w=n0({agent:r.name,executor:p.name,model:p.model,baseUrl:p.baseUrl,temperature:p.temperature,maxTokens:p.maxTokens,systemPrompt:i,prompt:b}),v=await a0(a.metadata.repository,w);if(v)return{success:!0,data:v.issues,usage:v.usage,cacheHit:!0};let E=await De.executeAgent(m),C=wy(E.output,r.name);return E.success&&await u0(a.metadata.repository,{key:w,agent:r.name,executor:p.name,model:p.model,output:E.output,issues:C,usage:E.usage}),{success:E.success,data:C,error:E.error,usage:E.usage,cacheHit:E.cacheHit}};if(l){let D=Date.now();try{let b=await g(),w=Date.now()-D;return b.success?l.completeBatch(f):l.failTask(f),{...b,duration:w}}catch(b){let w=Date.now()-D,v=b instanceof Error?b.message:String(b);return l.failTask(f),{success:!1,data:[],error:v,duration:w}}}return Wa({label:r.name,batchIndex:e.batchIndex,totalBatches:t.length},a.quiet??!1,g,(D,b)=>t.length>1?`${r.name} (batch ${e.batchIndex+1}/${t.length}, ${b}ms)`:`${r.name} (${b}ms)`,D=>t.length>1?`${r.name} (batch ${e.batchIndex+1}/${t.length}): ${D}`:`${r.name}: ${D}`)})}function VI(e,t,r){let s=[],i=0,n=zt();for(let u of e)s.push(...u.data),i+=u.duration||0,n=kr(n,u.usage,{cacheHit:u.cacheHit});let o=e.every(u=>u.success),a=Va(e.map(u=>u.error));return{agent:t.name,executor:t.executor||"unknown",success:o,output:`\u5DF2\u5904\u7406 ${r.length} \u4E2A batch\uFF0C\u53D1\u73B0 ${s.length} \u4E2A\u95EE\u9898`,duration:i,issues:s,error:a,usage:n}}function WI(){let e=process.env.BEST_REVIEW_DIFF_CONTEXT_LINES;if(!e)return 1;let t=Number.parseInt(e,10);return Number.isNaN(t)||t<0?1:t}function HI(){let e=process.env.BEST_REVIEW_MAX_DIFF_CHARS_PER_FILE;if(!e)return 6e4;let t=Number.parseInt(e,10);return Number.isNaN(t)||t<1e3?6e4:t}function KI(e){return e.startsWith("+")&&!e.startsWith("+++")||e.startsWith("-")&&!e.startsWith("---")}function zI(e){return e.startsWith("diff --git ")||e.startsWith("Index: ")||e.startsWith("===")||e.startsWith("--- ")||e.startsWith("+++ ")||e.startsWith("rename ")||e.startsWith("similarity index ")||e.startsWith("new file mode ")||e.startsWith("deleted file mode ")}function JI(e,t,r){let s=t.map((u,l)=>KI(u)?l:-1).filter(u=>u>=0);if(s.length===0)return[e];let i=new Set;for(let u of s)for(let l=-r;l<=r;l+=1){let c=u+l;c>=0&&c<t.length&&i.add(c)}let n=[e],o=Array.from(i).sort((u,l)=>u-l),a=-1;for(let u of o)a>=0&&u-a>1&&n.push(`... \u7701\u7565 ${u-a-1} \u884C\u672A\u53D8\u66F4\u4E0A\u4E0B\u6587 ...`),n.push(t[u]??""),a=u;return n}function YI(e,t){let r=[],s=0;for(let i of e){let n=s+i.length+1;if(n>t){r.push(`... \u5DF2\u8FBE\u5230\u5355\u6587\u4EF6 diff \u8F93\u5165\u4E0A\u9650 ${t} \u5B57\u7B26\uFF0C\u540E\u7EED\u5185\u5BB9\u7701\u7565 ...`);break}r.push(i),s=n}return r}function ZI(e,t={}){if(process.env.BEST_REVIEW_FULL_DIFF==="true")return e;let r=t.contextLines??WI(),s=t.maxCharsPerFile??HI(),i=e.split(`
316
+ `),n=["# compacted diff: \u4EC5\u4FDD\u7559\u53D8\u66F4\u884C\u3001hunk \u884C\u53F7\u548C\u5C11\u91CF\u4E0A\u4E0B\u6587\uFF1B\u8BBE\u7F6E BEST_REVIEW_FULL_DIFF=true \u53EF\u4F7F\u7528\u5B8C\u6574 diff"],o=null,a=[],u=()=>{o&&(n.push(...JI(o,a,r)),o=null,a=[])};for(let l of i){if(l.startsWith("@@")){u(),o=l;continue}if(o){a.push(l);continue}zI(l)&&n.push(l)}return u(),YI(n,s).join(`
317
+ `)}function m0(e,t={}){return{...e,diff:ZI(e.diff,t)}}Rr();var za="code-review-expert",g0=`skill:${za}`,XI="tech-doc-compliance",D0="tech-doc-compliance",QI=new Set(["code-quality-checklist","security-checklist","solid-checklist","stack-best-practices","typescript-react-best-practices"]),e_=/(?:^|[\s`'"((])((?:\.{0,2}\/)?(?:[A-Za-z0-9_.@-]+\/)+[A-Za-z0-9_.@-]+\.(?:ts|tsx|js|jsx|mjs|cjs|mts|cts|vue|svelte|kt|sh|sql|toml|ini|tf|hcl|xml|json|ya?ml|md|css|scss|html|py|go|java|rb|rs|php|swift)|[A-Za-z0-9_.@-]+\.(?:ts|tsx|js|jsx|mjs|cjs|mts|cts|vue|svelte|kt|sh|sql|toml|ini|tf|hcl|xml|json|ya?ml|md|css|scss|html|py|go|java|rb|rs|php|swift))(?=$|[\s`'",:;).,。;、)])/g;function Ja(e){return e.map(t=>m0(t))}function t_(e){let t=e?.find(r=>r.name===za&&r.enabled);if(t)return{...t,references:t.references.filter(r=>QI.has(r.name))}}function y0(e){return(e??[]).filter(t=>t.name!==za)}function w0(e){let t=new Map,r=new Map,s=new Set;for(let i of e)for(let n of i.files){s.add(n);let a=i.rule.patterns.find(l=>Ar(n,l))?.length??0,u=r.get(n)??0;a>u&&(t.set(n,i.rule.name),r.set(n,a))}return{fileToRule:t,matchedFileSet:s}}function b0(e){return new Set([e.file,e.oldPath,e.newPath].filter(t=>!!t))}function r_(e,t){let r=b0(e);return t.supplementalContextFiles?.some(s=>s.role==="changed-file"&&r.has(s.file))??!1}function s_(e,t){let r=b0(e);return t.supplementalContextFiles?.some(s=>s.role!=="dependency"?!1:!s.relatedFiles||s.relatedFiles.length===0?!0:s.relatedFiles.some(i=>r.has(i)))??!1}function i_(e,t){let r=e.status==="renamed"&&(e.oldPath||e.newPath)?`, rename=${e.oldPath??"unknown"}->${e.newPath??e.file}`:"";return[`- ${e.file}: status=${e.status}`,r,`, fullFileContext=${r_(e,t)?"yes":"no"}`,`, dependencyContext=${s_(e,t)?"yes":"no"}`].join("")}function n_(e,t){return["# Skill Review Coverage Checklist","","\u8FD9\u4E2A batch \u5C5E\u4E8E code-review-expert \u6574\u4F53\u5BA1\u67E5 pass\u3002\u8F93\u51FA\u524D\u5FC5\u987B\u9010\u4E2A\u5B8C\u6210\u4E0B\u5217 diff \u6587\u4EF6\u7684\u5BA1\u67E5\u5224\u65AD\uFF1B\u6CA1\u6709\u95EE\u9898\u7684\u6587\u4EF6\u4E0D\u8981\u8F93\u51FA\u5360\u4F4D\u9879\u3002",`issue.file \u53EA\u80FD\u662F\u672C\u6E05\u5355\u4E2D\u7684 diff \u6587\u4EF6\uFF1A${e.map(s=>s.file).join(", ")}`,"Dependency Context \u53EA\u80FD\u4F5C\u4E3A\u8BC1\u636E\u548C\u8C03\u7528\u94FE\u4E0A\u4E0B\u6587\uFF1B\u5982\u679C\u95EE\u9898\u6839\u56E0\u5728\u4F9D\u8D56\u6587\u4EF6\uFF0C\u6700\u7EC8 issue \u4ECD\u5FC5\u987B\u951A\u5B9A\u5230\u89E6\u53D1\u98CE\u9669\u7684 diff \u6587\u4EF6\u3002","",...e.map(s=>i_(s,t))].join(`
318
+ `)}function o_(e,t,r){return`${n_(e,r)}
319
319
 
320
- ${as(e,t,r)}`}function s_(e){let t=e.techDoc?.requirements??[];return["# Tech Doc Requirements","",`Source: ${e.techDoc?.source??"unknown"}`,e.techDoc?.title?`Title: ${e.techDoc.title}`:null,"",...t.map(r=>[`## ${r.id}: ${r.title}`,`Priority: ${r.priority}`,`Description: ${r.description}`,r.acceptanceSignals.length>0?`Acceptance signals: ${r.acceptanceSignals.join("; ")}`:null,r.sourceLocation?`Source location: ${r.sourceLocation}`:null,r.sourceQuote?`Source quote: ${r.sourceQuote}`:null].filter(Boolean).join(`
320
+ ${as(e,t,r)}`}function a_(e){let t=e.techDoc?.requirements??[];return["# Tech Doc Requirements","",`Source: ${e.techDoc?.source??"unknown"}`,e.techDoc?.title?`Title: ${e.techDoc.title}`:null,"",...t.map(r=>[`## ${r.id}: ${r.title}`,`Priority: ${r.priority}`,`Description: ${r.description}`,r.acceptanceSignals.length>0?`Acceptance signals: ${r.acceptanceSignals.join("; ")}`:null,r.sourceLocation?`Source location: ${r.sourceLocation}`:null,r.sourceQuote?`Source quote: ${r.sourceQuote}`:null].filter(Boolean).join(`
321
321
  `))].filter(Boolean).join(`
322
- `)}function i_(e,t,r){return[s_(r),"","# Tech Doc Compliance Instructions","","- \u5FC5\u987B\u9010\u6761\u8BC4\u4F30\u4E0A\u9762\u7684\u6BCF\u4E2A requirement \u662F\u5426\u5DF2\u7531\u5F53\u524D diff \u6216\u4E0A\u4E0B\u6587\u6EE1\u8DB3\u3002","- \u53EA\u62A5\u544A\u672A\u5B8C\u6210\u3001\u505A\u9519\u3001\u9057\u6F0F\u9A8C\u6536\u6807\u51C6\u6216\u5B9E\u73B0\u4E0E\u6587\u6863\u8981\u6C42\u4E0D\u4E00\u81F4\u7684\u95EE\u9898\u3002","- \u5DF2\u5B8C\u6210\u7684 requirement \u4E0D\u8981\u8F93\u51FA Issue\u3002","- \u627E\u4E0D\u5230\u76F8\u5173 diff \u6587\u4EF6\u65F6\u4E0D\u8981\u8F93\u51FA Issue\uFF0C\u4E5F\u4E0D\u8981\u4F2A\u9020 file/lineStart/lineEnd\u3002","- \u8F93\u51FA Issue \u65F6 rule \u5FC5\u987B\u4F7F\u7528 tech-doc-compliance\u3002","",as(e,t,r)].join(`
323
- `)}function b0(e){return e.replace(/^[ab]\//,"").replace(/^\.\//,"").replace(/^\.\.\//,"").toLowerCase()}function n_(e){let t=[e.title,e.description,...e.acceptanceSignals,e.sourceLocation,e.sourceQuote].filter(Boolean).join(`
324
- `),r=new Set;for(let s of t.matchAll(YI)){let i=s[1];i&&r.add(b0(i))}return[...r]}function o_(e){let t=e.techDoc?.requirements??[];if(t.length===0)return[];let r=new Set;for(let s of e.diffs)for(let i of[s.file,s.oldPath,s.newPath])i&&r.add(b0(i));return t.filter(s=>{let i=n_(s);return i.length===0?!1:!i.some(n=>[...r].some(o=>o===n||o.endsWith(`/${n}`)))})}async function v0(e,t,r){let s=new Map;for(let i of e){let n=t.matchedRules?.filter(m=>m.agent.name===i.name)||[];if(n.length===0)continue;let{fileToRule:o,matchedFileSet:a}=y0(n),u=Ja(t.diffs.filter(m=>a.has(m.file))),l=i.systemPrompt,c=n.map(m=>m.rule.prompt).filter(Boolean).join(`
322
+ `)}function u_(e,t,r){return[a_(r),"","# Tech Doc Compliance Instructions","","- \u5FC5\u987B\u9010\u6761\u8BC4\u4F30\u4E0A\u9762\u7684\u6BCF\u4E2A requirement \u662F\u5426\u5DF2\u7531\u5F53\u524D diff \u6216\u4E0A\u4E0B\u6587\u6EE1\u8DB3\u3002","- \u53EA\u62A5\u544A\u672A\u5B8C\u6210\u3001\u505A\u9519\u3001\u9057\u6F0F\u9A8C\u6536\u6807\u51C6\u6216\u5B9E\u73B0\u4E0E\u6587\u6863\u8981\u6C42\u4E0D\u4E00\u81F4\u7684\u95EE\u9898\u3002","- \u5DF2\u5B8C\u6210\u7684 requirement \u4E0D\u8981\u8F93\u51FA Issue\u3002","- \u627E\u4E0D\u5230\u76F8\u5173 diff \u6587\u4EF6\u65F6\u4E0D\u8981\u8F93\u51FA Issue\uFF0C\u4E5F\u4E0D\u8981\u4F2A\u9020 file/lineStart/lineEnd\u3002","- \u8F93\u51FA Issue \u65F6 rule \u5FC5\u987B\u4F7F\u7528 tech-doc-compliance\u3002","",as(e,t,r)].join(`
323
+ `)}function v0(e){return e.replace(/^[ab]\//,"").replace(/^\.\//,"").replace(/^\.\.\//,"").toLowerCase()}function l_(e){let t=[e.title,e.description,...e.acceptanceSignals,e.sourceLocation,e.sourceQuote].filter(Boolean).join(`
324
+ `),r=new Set;for(let s of t.matchAll(e_)){let i=s[1];i&&r.add(v0(i))}return[...r]}function c_(e){let t=e.techDoc?.requirements??[];if(t.length===0)return[];let r=new Set;for(let s of e.diffs)for(let i of[s.file,s.oldPath,s.newPath])i&&r.add(v0(i));return t.filter(s=>{let i=l_(s);return i.length===0?!1:!i.some(n=>[...r].some(o=>o===n||o.endsWith(`/${n}`)))})}async function E0(e,t,r){let s=new Map;for(let i of e){let n=t.matchedRules?.filter(m=>m.agent.name===i.name)||[];if(n.length===0)continue;let{fileToRule:o,matchedFileSet:a}=w0(n),u=Ja(t.diffs.filter(m=>a.has(m.file))),l=i.systemPrompt,c=n.map(m=>m.rule.prompt).filter(Boolean).join(`
325
325
 
326
326
  `);c&&(l=`${l}
327
327
 
328
328
  ${c}`),r&&(l=`${l}
329
329
 
330
- ${r}`);let f=D0(t.skills);if(f.length>0){let m=Xs(f);m&&(l=`${l}
330
+ ${r}`);let f=y0(t.skills);if(f.length>0){let m=Xs(f);m&&(l=`${l}
331
331
 
332
332
  ${m}`)}l=`${l}
333
333
 
334
- ${xn()}`,t.metadata.reviewTarget?.kind==="gitlab-mr"&&(l=`${l}
334
+ ${An()}`,t.metadata.reviewTarget?.kind==="gitlab-mr"&&(l=`${l}
335
335
 
336
- ${Ha(u.map(m=>m.file))}`);let h=Sn(u,l,void 0,m=>as(m,o,t)),p=n.map(m=>m.rule.name);s.set(i.name,{batches:h,files:u.length,rules:n.length,ruleNames:p,systemPrompt:l,fileToRule:o})}return s}function E0(e,t){let r=ZI(e.skills);if(!r||e.diffs.length===0)return null;let s=Ja(e.diffs),i=new Map(s.map(a=>[a.file,m0])),n=["\u4F60\u662F best-review \u7684\u6574\u4F53\u4EE3\u7801\u5BA1\u67E5 Skill Agent\u3002\u8BF7\u628A\u6240\u6709\u8F93\u5165\u6587\u4EF6\u4F5C\u4E3A\u4E00\u4E2A\u6574\u4F53\u5BA1\u67E5\uFF0C\u91CD\u70B9\u68C0\u67E5\u8DE8\u6587\u4EF6\u5951\u7EA6\u3001\u67B6\u6784\u4E00\u81F4\u6027\u3001\u5B89\u5168\u3001\u6027\u80FD\u3001\u5220\u9664\u98CE\u9669\u548C\u771F\u5B9E\u8FD0\u884C\u65F6\u5931\u6548\u8DEF\u5F84\u3002",Xs([r]),xn(),e.metadata.reviewTarget?.kind==="gitlab-mr"?Ha(s.map(a=>a.file)):null,t].filter(Boolean).join(`
336
+ ${Ka(u.map(m=>m.file))}`);let h=xn(u,l,void 0,m=>as(m,o,t)),p=n.map(m=>m.rule.name);s.set(i.name,{batches:h,files:u.length,rules:n.length,ruleNames:p,systemPrompt:l,fileToRule:o})}return s}function C0(e,t){let r=t_(e.skills);if(!r||e.diffs.length===0)return null;let s=Ja(e.diffs),i=new Map(s.map(a=>[a.file,g0])),n=["\u4F60\u662F best-review \u7684\u6574\u4F53\u4EE3\u7801\u5BA1\u67E5 Skill Agent\u3002\u8BF7\u628A\u6240\u6709\u8F93\u5165\u6587\u4EF6\u4F5C\u4E3A\u4E00\u4E2A\u6574\u4F53\u5BA1\u67E5\uFF0C\u91CD\u70B9\u68C0\u67E5\u8DE8\u6587\u4EF6\u5951\u7EA6\u3001\u67B6\u6784\u4E00\u81F4\u6027\u3001\u5B89\u5168\u3001\u6027\u80FD\u3001\u5220\u9664\u98CE\u9669\u548C\u771F\u5B9E\u8FD0\u884C\u65F6\u5931\u6548\u8DEF\u5F84\u3002",Xs([r]),An(),e.metadata.reviewTarget?.kind==="gitlab-mr"?Ka(s.map(a=>a.file)):null,t].filter(Boolean).join(`
337
337
 
338
- `),o=Sn(s,n,void 0,a=>r_(a,i,e));return{agent:{name:za,description:r.description||"\u6574\u4F53\u4EE3\u7801\u5BA1\u67E5 Skill",systemPrompt:n,enabled:!0,order:900,stage:"review"},batchInfo:{batches:o,files:s.length,rules:1,ruleNames:[m0],systemPrompt:n,fileToRule:i}}}function C0(e){let t=e.techDoc?.requirements??[];if(t.length===0||e.diffs.length===0)return null;let r=Ja(e.diffs),s=new Map(r.map(o=>[o.file,g0])),i=["\u4F60\u662F best-review \u7684\u6280\u672F\u6587\u6863\u5B8C\u6210\u5EA6\u5BA1\u67E5 Agent\u3002\u4F60\u7684\u4EFB\u52A1\u662F\u628A\u6280\u672F\u6587\u6863\u4E2D\u7684\u53EF\u9A8C\u6536\u5F85\u529E\u70B9\u9010\u6761\u5BF9\u7167\u672C\u6B21 diff\uFF0C\u627E\u51FA\u672A\u5B8C\u6210\u3001\u505A\u9519\u6216\u9057\u6F0F\u7684\u8981\u6C42\u3002",xn(),e.metadata.reviewTarget?.kind==="gitlab-mr"?Ha(r.map(o=>o.file)):null,"\u8F93\u51FA\u7EA6\u675F\uFF1A\u53EA\u8F93\u51FA\u73B0\u6709 Issue JSON\u3002rule \u5FC5\u987B\u662F tech-doc-compliance\u3002file/lineStart/lineEnd \u5FC5\u987B\u951A\u5B9A\u5230\u6700\u76F8\u5173\u7684 diff \u6587\u4EF6\u548C\u53D8\u66F4\u884C\u3002"].filter(Boolean).join(`
338
+ `),o=xn(s,n,void 0,a=>o_(a,i,e));return{agent:{name:za,description:r.description||"\u6574\u4F53\u4EE3\u7801\u5BA1\u67E5 Skill",systemPrompt:n,enabled:!0,order:900,stage:"review"},batchInfo:{batches:o,files:s.length,rules:1,ruleNames:[g0],systemPrompt:n,fileToRule:i}}}function F0(e){let t=e.techDoc?.requirements??[];if(t.length===0||e.diffs.length===0)return null;let r=Ja(e.diffs),s=new Map(r.map(o=>[o.file,D0])),i=["\u4F60\u662F best-review \u7684\u6280\u672F\u6587\u6863\u5B8C\u6210\u5EA6\u5BA1\u67E5 Agent\u3002\u4F60\u7684\u4EFB\u52A1\u662F\u628A\u6280\u672F\u6587\u6863\u4E2D\u7684\u53EF\u9A8C\u6536\u5F85\u529E\u70B9\u9010\u6761\u5BF9\u7167\u672C\u6B21 diff\uFF0C\u627E\u51FA\u672A\u5B8C\u6210\u3001\u505A\u9519\u6216\u9057\u6F0F\u7684\u8981\u6C42\u3002",An(),e.metadata.reviewTarget?.kind==="gitlab-mr"?Ka(r.map(o=>o.file)):null,"\u8F93\u51FA\u7EA6\u675F\uFF1A\u53EA\u8F93\u51FA\u73B0\u6709 Issue JSON\u3002rule \u5FC5\u987B\u662F tech-doc-compliance\u3002file/lineStart/lineEnd \u5FC5\u987B\u951A\u5B9A\u5230\u6700\u76F8\u5173\u7684 diff \u6587\u4EF6\u548C\u53D8\u66F4\u884C\u3002"].filter(Boolean).join(`
339
339
 
340
- `),n=Sn(r,i,void 0,o=>i_(o,s,e));return e.techDoc.coverage={assessedRequirementIds:t.map(o=>o.id),unmappedRequirements:o_(e)},{agent:{name:zI,description:"\u6280\u672F\u6587\u6863\u5B8C\u6210\u5EA6\u5BA1\u67E5 Agent",systemPrompt:i,enabled:!0,order:901,stage:"review"},batchInfo:{batches:n,files:r.length,rules:t.length,ruleNames:[g0],systemPrompt:i,fileToRule:s}}}function F0(e,t,r){return!(process.env.BEST_REVIEW_MULTI_AGENT==="false")||t&&t.length>0||e.agentFilter&&e.agentFilter.length>0||e.ruleFilter&&e.ruleFilter.length>0?!1:r.length>1}function S0(e,t,r){let s=t.matchedRules??[];if(s.length===0)return null;let{fileToRule:i,matchedFileSet:n}=y0(s),o=Ja(t.diffs.filter(f=>n.has(f.file)));if(o.length===0)return null;let a=e.find(f=>f.name==="general")??e.find(f=>f.name==="bug-hunter")??e[0];if(!a)return null;let u=h0(s,r,D0(t.skills)),l=Sn(o,u,void 0,f=>as(f,i,t)),c=Array.from(new Set(s.map(f=>f.rule.name)));return{agent:{...a,name:"general",description:"\u5408\u5E76\u4EE3\u7801\u5BA1\u67E5 Agent",systemPrompt:u,executorSettings:a.executorSettings},batchInfo:{batches:l,files:o.length,rules:c.length,ruleNames:c,systemPrompt:u,fileToRule:i}}}function a_(e,t){return!t||t.length===0?0:t.filter(r=>Ka(r,e)).length}function x0(e,t){return{...e,...t.executorSettings??{},model:e.model}}function A0(){return{id:"review",name:"Review",description:"\u8FD0\u884C\u4EE3\u7801\u5BA1\u67E5 Agent",enabled:!0,order:2,execute:async e=>{let t=Date.now();if(!e.config){let I="Pipeline \u4E0A\u4E0B\u6587\u4E2D\u7684 config \u5C1A\u672A\u521D\u59CB\u5316";return d.error(I),{stageId:"review",stageName:"Review",success:!1,duration:0,error:I}}let r=e.config,s=await xa();if(!e.skills)try{e.skills=await $f(e.metadata.repository,r)}catch(I){d.warn(`Failed to load skills: ${I instanceof Error?I.message:String(I)}`),e.skills=[]}let i=Sr(r,e.modelOverride,r.executor),n=i.concurrency??e.concurrency,o=Kt(n);e.verbose&&!e.quiet&&d.plain(`Token \u4F30\u7B97\u5668\uFF1A${by()}`);let a=Zs.listEnabled();if(a.length===0)return e.quiet||d.warn("\u6CA1\u6709\u627E\u5230\u5DF2\u542F\u7528\u7684 Agent"),{stageId:"review",stageName:"Review",success:!0,duration:Date.now()-t};let u=a.filter(I=>I.stage!=="validation"),l=r.workflows?.review,c=await v0(a,e,s),f=u.filter(I=>c.has(I.name)),h=u.filter(I=>!c.has(I.name)),p=!1;if(F0(e,l,f)){let I=S0(f,e,s);I&&(c=new Map([[I.agent.name,I.batchInfo]]),f=[I.agent],p=!0)}let m=E0(e,s);m&&(c.set(m.agent.name,m.batchInfo),f=[...f,m.agent]);let g=C0(e);g&&(c.set(g.agent.name,g.batchInfo),f=[...f,g.agent]);let D=0;for(let[,I]of c)D+=I.batches.length;if(!e.quiet){d.sync(`\u4EE3\u7801\u5BA1\u67E5\uFF1A${f.length} \u4E2A Agent\uFF08\u5171 ${D} \u4E2A batch\uFF09...`),p&&d.info("\u5FEB\u901F\u5408\u5E76\u5BA1\u67E5\uFF1ABEST_REVIEW_MULTI_AGENT=false \u5DF2\u542F\u7528\uFF0C\u591A\u4E2A\u4E13\u4E1A Agent \u88AB\u5408\u5E76\u4E3A 1 \u6B21\u6A21\u578B\u8C03\u7528\uFF1B\u53D6\u6D88\u8BE5\u73AF\u5883\u53D8\u91CF\u53EF\u6062\u590D\u9ED8\u8BA4\u591A Agent");for(let I of h)d.plain(` \u2022 ${I.name}\uFF1A\u5DF2\u8DF3\u8FC7\uFF08\u6CA1\u6709\u5339\u914D\u89C4\u5219\uFF09`)}let w=!e.quiet&&!e.stream&&!e.verbose?new Ds:void 0;if(w){if(l&&l.length>0)for(let I of f){let L=c.get(I.name);if(L)for(let[Q,re]of l.entries()){let z=re.model,J=[I.name,z||null].filter(Boolean).join(" / "),ce=`${I.name}-${Q}`,se=L.ruleNames.slice(0,3).join(", "),Y=`${L.files} \u4E2A\u6587\u4EF6 | ${se}${L.rules>3?"...":""}`;w.addTask(ce,J,L.batches.length,L.files,L.rules,Y)}}else for(let I of f){let L=c.get(I.name);if(L){let Q=L.ruleNames.slice(0,3).join(", "),re=`${L.files} \u4E2A\u6587\u4EF6 | ${Q}${L.rules>3?"...":""}`;w.addTask(I.name,I.name,L.batches.length,L.files,L.rules,re)}}w.start()}let v;try{if(l&&l.length>0){e.quiet||d.info(`Workflow \u6A21\u5F0F\uFF1A${f.length} \u4E2A Agent \xD7 ${l.length} \u6B21\u8FD0\u884C = ${f.length*l.length} \u6B21\u6267\u884C`);let I=[];for(let[L,Q]of l.entries()){let re=e.modelOverride||Q.model,z=r.executor,J=ge.get(z);if(!J){let se=ge.listExecutors().map(U=>U.name).join(", "),Y=`\u6267\u884C\u5668\u672A\u6CE8\u518C\uFF1A${z}\u3002\u53EF\u7528\u6267\u884C\u5668\uFF1A${se}`;e.quiet||d.error(Y);for(let U of f){let ue=us(U,z,Y);e.results.push(ue),I.push(ue)}continue}e.quiet||d.info(` Workflow \u8FD0\u884C ${L+1}/${l.length}\uFF1A${z}${re?`\uFF08\u6A21\u578B\uFF1A${re}\uFF09`:""}`);let ce=await Promise.all(f.map(async se=>{try{let Y=c.get(se.name);if(!Y){let qn=`\u672A\u627E\u5230 Agent \u7684 batch \u4FE1\u606F\uFF1A${se.name}`;e.quiet||d.warn(qn);let hu=us(se,z,qn);return e.results.push(hu),hu}let U={...e,modelOverride:re},ue=Sr(r,re,z),Re={...se,executor:z,executorSettings:x0(ue,se)},Xt=`${se.name}-${L}`,fs=await Nf(Re,J,Y,U,o,w,Xt);return e.issues.push(...fs.issues),e.results.push(fs),fs}catch(Y){let U=Y instanceof Error?Y.message:String(Y);e.quiet||d.error(`${se.name} (workflow: ${z}): ${U}`);let ue=us(se,z,U);return e.results.push(ue),ue}}));I.push(...ce)}v=I}else v=await Promise.all(f.map(async I=>{try{let L=r.executor,Q=ge.get(L);if(!Q){let J=ge.listExecutors().map(Y=>Y.name).join(", "),ce=`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${L}\u3002\u53EF\u7528\u6267\u884C\u5668\uFF1A${J}`;e.quiet||d.warn(ce);let se=us(I,L,ce);return e.results.push(se),se}let re=c.get(I.name);if(!re){let J=`\u672A\u627E\u5230 Agent \u7684 batch \u4FE1\u606F\uFF1A${I.name}`;e.quiet||d.warn(J);let ce=us(I,L,J);return e.results.push(ce),ce}!e.quiet&&e.verbose&&re.batches.forEach(J=>{d.plain(` ${Zy(J,!0)}`)});let z=await Nf({...I,executor:L,executorSettings:x0(i,I)},Q,re,e,o,w);return e.issues.push(...z.issues),e.results.push(z),z}catch(L){let Q=L instanceof Error?L.message:String(L);e.quiet||d.error(`${I.name}: ${Q}`);let re=us(I,r.executor,Q);return e.results.push(re),re}}))}finally{w?.stop()}let E=l&&l.length>0?f.length*l.length:f.length,C=v.filter(I=>I?.success).length,x=v.filter(I=>I&&!I.success),$=x.length;e.usage=Ky(e.results);let F=Date.now()-t,R=F>=1e3?`${(F/1e3).toFixed(1)}s`:`${F}ms`,W=Array.from(c.entries()).map(([I,L])=>({agent:I,batches:L.batches.map(Q=>{let re=new Set(Q.diffs.map(z=>z.file));return{batchIndex:Q.batchIndex,inputFiles:Q.diffs.length,contextFiles:a_(re,e.supplementalContextFiles),tokenCount:Q.tokenCount}})}));if(e.quiet||d.done(`Review \u5B8C\u6210\uFF1A${C}/${E} \u6B21\u6267\u884C\u6210\u529F\uFF08${R}\uFF09`),$>0&&!e.quiet)for(let I of x)d.warn(`Agent "${I?.agent}" \u6267\u884C\u5931\u8D25\uFF1A${I?.error||"\u6267\u884C\u5931\u8D25"}\uFF0C\u8BE5 Agent \u7684\u95EE\u9898\u5DF2\u6392\u9664`);let ae=C>0,H;return $>0&&(H=x.map(L=>`${L?.agent||"\u672A\u77E5 Agent"}\uFF1A${L?.error||"\u6267\u884C\u5931\u8D25"}`).filter(Boolean).join("; ")),!ae&&!H&&(H="\u6CA1\u6709\u4EFB\u4F55\u5BA1\u67E5 Agent \u5B8C\u6210\u6267\u884C\uFF0C\u8BF7\u68C0\u67E5\u6267\u884C\u5668\u914D\u7F6E\u3002"),{stageId:"review",stageName:"Review",success:ae,duration:F,error:H,output:{agents:f.length,executions:E,successfulExecutions:C,failedExecutions:$,totalBatches:D,batchInputs:W,techDoc:e.techDoc?{totalRequirements:e.techDoc.requirements?.length??0,assessedRequirementIds:e.techDoc.coverage?.assessedRequirementIds??[],unmappedRequirements:e.techDoc.coverage?.unmappedRequirements??[]}:void 0}}}}}M();function R0(){return{id:"aggregate-results",name:"Aggregate Results",description:"\u6C47\u603B\u5BA1\u67E5\u7ED3\u679C",enabled:!0,order:3,execute:async e=>{let t=Date.now(),r=e.results.filter(i=>i.success).length,s=e.results.filter(i=>!i.success).length;return e.issues=e.results.flatMap(i=>i.issues),e.quiet||d.sync(`\u7ED3\u679C\u6C47\u603B\uFF1A${r} \u4E2A\u6210\u529F\uFF0C${s} \u4E2A\u5931\u8D25\uFF0C\u6536\u96C6 ${e.issues.length} \u4E2A\u539F\u59CB\u95EE\u9898`),{stageId:"aggregate-results",stageName:"Aggregate Results",success:!0,duration:Date.now()-t,output:{totalIssues:e.issues.length,success:r,failed:s}}}}}M();function u_(e){return{...e}}function nt(e,t){let r={...t,issue:u_(t.issue)};e.issueAuditTrail=[...e.issueAuditTrail??[],r]}var l_=70,I0=new Set(["critical","high"]),c_=new Set(["style","docs"]),f_=[/^(?:建议|可以|考虑|最好|应该)\s*(?:优化|重构|改进|统一|清理|整理|完善|补充|检查|关注|处理)(?:一下)?[。!!]?$/u,/^(?:建议)?(?:优化一下|重构一下|统一一下|补充文档|加校验|加强校验|改进可读性|提高可维护性)[。!!]?$/u,/^(?:consider|maybe|suggest|recommend)\s+(?:refactoring|refactor|optimizing|optimize|improving|improve|cleaning up|clean up|documenting|document|adding validation|add validation)[.!]?$/i],d_=[/(?:改为|改成|替换为|删除|移除|新增|补充|拆分|提取|限制|缓存|回退到|提前返回|判空|短路|重命名|把.+改|将.+改|为.+添加|在.+(?:前|后))/u,/(?:replace|remove|add|split|extract|guard|return early|rename|update|document|change .+ to|use .+ instead|move .+ to|initialize .+ before)/i],h_=[/(?:可读性|维护性|一致性|优雅|更好|更清晰|更规范|长期维护会更好|可以优化|有优化空间|建议考虑|最好处理一下)/u,/(?:readability|maintainability|cleaner|more consistent|could be improved|might be better|nice to have)/i],p_=[/(?:导致|会让|会在|会把|会使|造成|触发|产生|引发|阻塞|绕过|覆盖|丢失|重复|泄露|崩溃|失败|死锁|误导|误用|混淆|不一致|无法|错误|错用|调用方)/u,/(?:cause|lead to|result in|break|fail|crash|leak|drop|duplicate|race|deadlock|mislead|confus|wrong|incorrect|caller|consumer|contract)/i];function Mf(e){return!!e?.trim()}function jf(e){let t=e.suggestion?.trim();return t?d_.some(r=>r.test(t))?!0:f_.some(r=>r.test(t))?!1:t.length>=14:!1}function qf(e){let t=[e.shortDescription,e.fullDescription,e.evidence].filter(Boolean).join(`
341
- `);return t.trim()?p_.some(r=>r.test(t))?!0:c_.has(e.category)?!1:!h_.some(r=>r.test(t)):!1}function m_(e){return I0.has(e.severity)?!Mf(e.evidence)||e.confidence===void 0||!jf(e)||!qf(e):!1}function g_(e){return I0.has(e.severity)?!1:!Mf(e.evidence)||e.confidence===void 0||!jf(e)||!qf(e)}function k0(e){let t=[];return Mf(e.evidence)||t.push("\u7F3A\u5C11\u8BC1\u636E"),e.confidence===void 0&&t.push("\u7F3A\u5C11 confidence"),jf(e)||t.push("\u7F3A\u5C11\u5177\u4F53\u4FEE\u590D\u5EFA\u8BAE"),qf(e)||t.push("\u5F71\u54CD\u63CF\u8FF0\u4E0D\u591F\u5177\u4F53"),t}function _0(){return{id:"confidence-filter",name:"Confidence Filter",description:"\u6309\u7F6E\u4FE1\u5EA6\u9608\u503C\u8FC7\u6EE4\u95EE\u9898",enabled:!0,order:3.5,execute:async e=>{let t=Date.now(),r=e.minConfidence??l_,s=e.issues,i=0,n=0,o=0,a=0,u=s.length,l=[];for(let p of s){if(m_(p)){o++,nt(e,{stageId:"confidence-filter",stageName:"Confidence Filter",action:"filtered",reason:`\u9AD8\u5371\u95EE\u9898\u672A\u8FBE\u5230\u8D44\u6DF1\u5DE5\u7A0B\u5E08\u95E8\u69DB\uFF1A${k0(p).join("\u3001")}`,issue:p});continue}if(g_(p)){a++,p.confidence===void 0&&n++,nt(e,{stageId:"confidence-filter",stageName:"Confidence Filter",action:"filtered",reason:`\u4E2D\u4F4E\u98CE\u9669\u95EE\u9898\u672A\u8FBE\u5230\u8D44\u6DF1\u5DE5\u7A0B\u5E08\u95E8\u69DB\uFF1A${k0(p).join("\u3001")}`,issue:p});continue}if(p.confidence===void 0){n++,nt(e,{stageId:"confidence-filter",stageName:"Confidence Filter",action:"filtered",reason:"\u7F3A\u5C11 confidence\uFF0C\u65E0\u6CD5\u901A\u8FC7\u7F6E\u4FE1\u5EA6\u8FC7\u6EE4",issue:p});continue}if(p.confidence>=r){l.push(p);continue}i++,nt(e,{stageId:"confidence-filter",stageName:"Confidence Filter",action:"filtered",reason:`\u7F6E\u4FE1\u5EA6 ${p.confidence}% \u4F4E\u4E8E\u9608\u503C ${r}%`,issue:p})}let c=l.length,f=i,h=f+o+a;return e.issues=l,e.quiet||(u>0&&d.sync(`\u7F6E\u4FE1\u5EA6\u8FC7\u6EE4\uFF08>=${r}%\uFF09\uFF1A\u4FDD\u7559 ${c} \u4E2A\uFF0C\u8FC7\u6EE4 ${h} \u4E2A`),n>0&&d.warn(`${n} \u4E2A\u95EE\u9898\u6CA1\u6709 confidence \u5B57\u6BB5\uFF0C\u5DF2\u6309\u8D44\u6DF1\u5DE5\u7A0B\u5E08\u95E8\u69DB\u8FC7\u6EE4`),o>0&&d.warn(`${o} \u4E2A\u9AD8\u5371\u95EE\u9898\u7F3A\u5C11\u8BC1\u636E\u3001\u4FEE\u590D\u5EFA\u8BAE\u6216 confidence\uFF0C\u5DF2\u8FC7\u6EE4`),a>0&&d.warn(`${a} \u4E2A\u4E2D\u4F4E\u98CE\u9669\u95EE\u9898\u7F3A\u5C11\u660E\u786E\u5F71\u54CD\u3001\u5177\u4F53\u4FEE\u6CD5\u3001\u8BC1\u636E\u6216 confidence\uFF0C\u5DF2\u8FC7\u6EE4`)),{stageId:"confidence-filter",stageName:"Confidence Filter",success:!0,duration:Date.now()-t,output:{totalBefore:u,totalAfter:c,filteredOut:h,confidenceFilteredOut:f,minConfidence:r,withoutConfidence:n,underSpecifiedHighRisk:o,underSpecifiedMediumLow:a}}}}}M();var D_=.6;function T0(e){let t=e.toLowerCase().replace(/[^\w\s]/g," ").split(/\s+/).filter(r=>r.length>2);return new Set(t)}function y_(e,t){if(e.size===0&&t.size===0)return 1;if(e.size===0||t.size===0)return 0;let r=0;for(let i of e)t.has(i)&&r++;let s=e.size+t.size-r;return r/s}function w_(e,t){if(e.file!==t.file||Math.min(Math.abs(e.lineStart-t.lineStart),Math.abs(e.lineEnd-t.lineEnd))>10)return!1;let s=T0(e.shortDescription),i=T0(t.shortDescription);return y_(s,i)>=D_}function $0(){return{id:"deduplication",name:"Deduplication",description:"\u79FB\u9664\u91CD\u590D\u7ED3\u679C\u548C\u95EE\u9898",enabled:!0,order:4,execute:async e=>{let t=Date.now(),r=e.issues,s=r.length,i=new Set,n=[];for(let c of r){let f=`${c.file}:${c.lineStart}:${c.lineEnd}`;if(i.has(f)){nt(e,{stageId:"deduplication",stageName:"Deduplication",action:"filtered",reason:"\u4E0E\u540C\u6587\u4EF6\u540C\u884C\u53F7\u7684\u95EE\u9898\u91CD\u590D",issue:c});continue}i.add(f),n.push(c)}let o=[];for(let c of n){let f=o.find(h=>w_(h,c));if(!f){o.push(c);continue}nt(e,{stageId:"deduplication",stageName:"Deduplication",action:"filtered",reason:`\u4E0E ${f.file}:${f.lineStart}-${f.lineEnd} \u7684\u95EE\u9898\u8BED\u4E49\u91CD\u590D`,issue:c})}e.issues=o;let a=s-n.length,u=n.length-o.length,l=a+u;if(l>0&&!e.quiet){let c=[];a>0&&c.push(`${a} \u4E2A\u6309\u4F4D\u7F6E\u53BB\u91CD`),u>0&&c.push(`${u} \u4E2A\u6309\u76F8\u4F3C\u5EA6\u53BB\u91CD`),d.sync(`\u5DF2\u79FB\u9664 ${l} \u4E2A\u91CD\u590D\u95EE\u9898\uFF08${c.join(", ")}\uFF09`)}return{stageId:"deduplication",stageName:"Deduplication",success:!0,duration:Date.now()-t,output:{totalBefore:s,totalAfter:o.length,removedByLocation:a,removedBySemantic:u}}}}}Ee();Ge();M();var B0=require("node:fs/promises");js();da();Ge();M();var P0={name:"validation",description:"\u590D\u6838\u5176\u4ED6 Agent \u53D1\u73B0\u7684\u95EE\u9898",systemPrompt:`You are a strict senior-level code review validation agent. Your task is to validate issues found by other agents and filter out false positives or generic advice.
340
+ `),n=xn(r,i,void 0,o=>u_(o,s,e));return e.techDoc.coverage={assessedRequirementIds:t.map(o=>o.id),unmappedRequirements:c_(e)},{agent:{name:XI,description:"\u6280\u672F\u6587\u6863\u5B8C\u6210\u5EA6\u5BA1\u67E5 Agent",systemPrompt:i,enabled:!0,order:901,stage:"review"},batchInfo:{batches:n,files:r.length,rules:t.length,ruleNames:[D0],systemPrompt:i,fileToRule:s}}}function S0(e,t,r){return!(process.env.BEST_REVIEW_MULTI_AGENT==="false")||t&&t.length>0||e.agentFilter&&e.agentFilter.length>0||e.ruleFilter&&e.ruleFilter.length>0?!1:r.length>1}function x0(e,t,r){let s=t.matchedRules??[];if(s.length===0)return null;let{fileToRule:i,matchedFileSet:n}=w0(s),o=Ja(t.diffs.filter(f=>n.has(f.file)));if(o.length===0)return null;let a=e.find(f=>f.name==="general")??e.find(f=>f.name==="bug-hunter")??e[0];if(!a)return null;let u=p0(s,r,y0(t.skills)),l=xn(o,u,void 0,f=>as(f,i,t)),c=Array.from(new Set(s.map(f=>f.rule.name)));return{agent:{...a,name:"general",description:"\u5408\u5E76\u4EE3\u7801\u5BA1\u67E5 Agent",systemPrompt:u,executorSettings:a.executorSettings},batchInfo:{batches:l,files:o.length,rules:c.length,ruleNames:c,systemPrompt:u,fileToRule:i}}}function f_(e,t){return!t||t.length===0?0:t.filter(r=>Ha(r,e)).length}function A0(e,t){return{...e,...t.executorSettings??{},model:e.model}}function R0(){return{id:"review",name:"Review",description:"\u8FD0\u884C\u4EE3\u7801\u5BA1\u67E5 Agent",enabled:!0,order:2,execute:async e=>{let t=Date.now();if(!e.config){let I="Pipeline \u4E0A\u4E0B\u6587\u4E2D\u7684 config \u5C1A\u672A\u521D\u59CB\u5316";return d.error(I),{stageId:"review",stageName:"Review",success:!1,duration:0,error:I}}let r=e.config,s=await xa();if(!e.skills)try{e.skills=await $f(e.metadata.repository,r)}catch(I){d.warn(`Failed to load skills: ${I instanceof Error?I.message:String(I)}`),e.skills=[]}let i=Sr(r,e.modelOverride,r.executor),n=i.concurrency??e.concurrency,o=Kt(n);e.verbose&&!e.quiet&&d.plain(`Token \u4F30\u7B97\u5668\uFF1A${vy()}`);let a=Zs.listEnabled();if(a.length===0)return e.quiet||d.warn("\u6CA1\u6709\u627E\u5230\u5DF2\u542F\u7528\u7684 Agent"),{stageId:"review",stageName:"Review",success:!0,duration:Date.now()-t};let u=a.filter(I=>I.stage!=="validation"),l=r.workflows?.review,c=await E0(a,e,s),f=u.filter(I=>c.has(I.name)),h=u.filter(I=>!c.has(I.name)),p=!1;if(S0(e,l,f)){let I=x0(f,e,s);I&&(c=new Map([[I.agent.name,I.batchInfo]]),f=[I.agent],p=!0)}let m=C0(e,s);m&&(c.set(m.agent.name,m.batchInfo),f=[...f,m.agent]);let g=F0(e);g&&(c.set(g.agent.name,g.batchInfo),f=[...f,g.agent]);let D=0;for(let[,I]of c)D+=I.batches.length;if(!e.quiet){d.sync(`\u4EE3\u7801\u5BA1\u67E5\uFF1A${f.length} \u4E2A Agent\uFF08\u5171 ${D} \u4E2A batch\uFF09...`),p&&d.info("\u5FEB\u901F\u5408\u5E76\u5BA1\u67E5\uFF1ABEST_REVIEW_MULTI_AGENT=false \u5DF2\u542F\u7528\uFF0C\u591A\u4E2A\u4E13\u4E1A Agent \u88AB\u5408\u5E76\u4E3A 1 \u6B21\u6A21\u578B\u8C03\u7528\uFF1B\u53D6\u6D88\u8BE5\u73AF\u5883\u53D8\u91CF\u53EF\u6062\u590D\u9ED8\u8BA4\u591A Agent");for(let I of h)d.plain(` \u2022 ${I.name}\uFF1A\u5DF2\u8DF3\u8FC7\uFF08\u6CA1\u6709\u5339\u914D\u89C4\u5219\uFF09`)}let w=!e.quiet&&!e.stream&&!e.verbose?new Ds:void 0;if(w){if(l&&l.length>0)for(let I of f){let L=c.get(I.name);if(L)for(let[Q,re]of l.entries()){let z=re.model,J=[I.name,z||null].filter(Boolean).join(" / "),fe=`${I.name}-${Q}`,se=L.ruleNames.slice(0,3).join(", "),Y=`${L.files} \u4E2A\u6587\u4EF6 | ${se}${L.rules>3?"...":""}`;w.addTask(fe,J,L.batches.length,L.files,L.rules,Y)}}else for(let I of f){let L=c.get(I.name);if(L){let Q=L.ruleNames.slice(0,3).join(", "),re=`${L.files} \u4E2A\u6587\u4EF6 | ${Q}${L.rules>3?"...":""}`;w.addTask(I.name,I.name,L.batches.length,L.files,L.rules,re)}}w.start()}let v;try{if(l&&l.length>0){e.quiet||d.info(`Workflow \u6A21\u5F0F\uFF1A${f.length} \u4E2A Agent \xD7 ${l.length} \u6B21\u8FD0\u884C = ${f.length*l.length} \u6B21\u6267\u884C`);let I=[];for(let[L,Q]of l.entries()){let re=e.modelOverride||Q.model,z=r.executor,J=De.get(z);if(!J){let se=De.listExecutors().map(U=>U.name).join(", "),Y=`\u6267\u884C\u5668\u672A\u6CE8\u518C\uFF1A${z}\u3002\u53EF\u7528\u6267\u884C\u5668\uFF1A${se}`;e.quiet||d.error(Y);for(let U of f){let ue=us(U,z,Y);e.results.push(ue),I.push(ue)}continue}e.quiet||d.info(` Workflow \u8FD0\u884C ${L+1}/${l.length}\uFF1A${z}${re?`\uFF08\u6A21\u578B\uFF1A${re}\uFF09`:""}`);let fe=await Promise.all(f.map(async se=>{try{let Y=c.get(se.name);if(!Y){let qn=`\u672A\u627E\u5230 Agent \u7684 batch \u4FE1\u606F\uFF1A${se.name}`;e.quiet||d.warn(qn);let hu=us(se,z,qn);return e.results.push(hu),hu}let U={...e,modelOverride:re},ue=Sr(r,re,z),ke={...se,executor:z,executorSettings:A0(ue,se)},Qt=`${se.name}-${L}`,fs=await Nf(ke,J,Y,U,o,w,Qt);return e.issues.push(...fs.issues),e.results.push(fs),fs}catch(Y){let U=Y instanceof Error?Y.message:String(Y);e.quiet||d.error(`${se.name} (workflow: ${z}): ${U}`);let ue=us(se,z,U);return e.results.push(ue),ue}}));I.push(...fe)}v=I}else v=await Promise.all(f.map(async I=>{try{let L=r.executor,Q=De.get(L);if(!Q){let J=De.listExecutors().map(Y=>Y.name).join(", "),fe=`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${L}\u3002\u53EF\u7528\u6267\u884C\u5668\uFF1A${J}`;e.quiet||d.warn(fe);let se=us(I,L,fe);return e.results.push(se),se}let re=c.get(I.name);if(!re){let J=`\u672A\u627E\u5230 Agent \u7684 batch \u4FE1\u606F\uFF1A${I.name}`;e.quiet||d.warn(J);let fe=us(I,L,J);return e.results.push(fe),fe}!e.quiet&&e.verbose&&re.batches.forEach(J=>{d.plain(` ${Xy(J,!0)}`)});let z=await Nf({...I,executor:L,executorSettings:A0(i,I)},Q,re,e,o,w);return e.issues.push(...z.issues),e.results.push(z),z}catch(L){let Q=L instanceof Error?L.message:String(L);e.quiet||d.error(`${I.name}: ${Q}`);let re=us(I,r.executor,Q);return e.results.push(re),re}}))}finally{w?.stop()}let E=l&&l.length>0?f.length*l.length:f.length,C=v.filter(I=>I?.success).length,x=v.filter(I=>I&&!I.success),$=x.length;e.usage=Ky(e.results);let F=Date.now()-t,R=F>=1e3?`${(F/1e3).toFixed(1)}s`:`${F}ms`,W=Array.from(c.entries()).map(([I,L])=>({agent:I,batches:L.batches.map(Q=>{let re=new Set(Q.diffs.map(z=>z.file));return{batchIndex:Q.batchIndex,inputFiles:Q.diffs.length,contextFiles:f_(re,e.supplementalContextFiles),tokenCount:Q.tokenCount}})}));if(e.quiet||d.done(`Review \u5B8C\u6210\uFF1A${C}/${E} \u6B21\u6267\u884C\u6210\u529F\uFF08${R}\uFF09`),$>0&&!e.quiet)for(let I of x)d.warn(`Agent "${I?.agent}" \u6267\u884C\u5931\u8D25\uFF1A${I?.error||"\u6267\u884C\u5931\u8D25"}\uFF0C\u8BE5 Agent \u7684\u95EE\u9898\u5DF2\u6392\u9664`);let ae=C>0,K;return $>0&&(K=x.map(L=>`${L?.agent||"\u672A\u77E5 Agent"}\uFF1A${L?.error||"\u6267\u884C\u5931\u8D25"}`).filter(Boolean).join("; ")),!ae&&!K&&(K="\u6CA1\u6709\u4EFB\u4F55\u5BA1\u67E5 Agent \u5B8C\u6210\u6267\u884C\uFF0C\u8BF7\u68C0\u67E5\u6267\u884C\u5668\u914D\u7F6E\u3002"),{stageId:"review",stageName:"Review",success:ae,duration:F,error:K,output:{agents:f.length,executions:E,successfulExecutions:C,failedExecutions:$,totalBatches:D,batchInputs:W,techDoc:e.techDoc?{totalRequirements:e.techDoc.requirements?.length??0,assessedRequirementIds:e.techDoc.coverage?.assessedRequirementIds??[],unmappedRequirements:e.techDoc.coverage?.unmappedRequirements??[]}:void 0}}}}}M();function k0(){return{id:"aggregate-results",name:"Aggregate Results",description:"\u6C47\u603B\u5BA1\u67E5\u7ED3\u679C",enabled:!0,order:3,execute:async e=>{let t=Date.now(),r=e.results.filter(i=>i.success).length,s=e.results.filter(i=>!i.success).length;return e.issues=e.results.flatMap(i=>i.issues),e.quiet||d.sync(`\u7ED3\u679C\u6C47\u603B\uFF1A${r} \u4E2A\u6210\u529F\uFF0C${s} \u4E2A\u5931\u8D25\uFF0C\u6536\u96C6 ${e.issues.length} \u4E2A\u539F\u59CB\u95EE\u9898`),{stageId:"aggregate-results",stageName:"Aggregate Results",success:!0,duration:Date.now()-t,output:{totalIssues:e.issues.length,success:r,failed:s}}}}}M();function d_(e){return{...e}}function ot(e,t){let r={...t,issue:d_(t.issue)};e.issueAuditTrail=[...e.issueAuditTrail??[],r]}var h_=70,_0=new Set(["critical","high"]),p_=new Set(["style","docs"]),m_=[/^(?:建议|可以|考虑|最好|应该)\s*(?:优化|重构|改进|统一|清理|整理|完善|补充|检查|关注|处理)(?:一下)?[。!!]?$/u,/^(?:建议)?(?:优化一下|重构一下|统一一下|补充文档|加校验|加强校验|改进可读性|提高可维护性)[。!!]?$/u,/^(?:consider|maybe|suggest|recommend)\s+(?:refactoring|refactor|optimizing|optimize|improving|improve|cleaning up|clean up|documenting|document|adding validation|add validation)[.!]?$/i],g_=[/(?:改为|改成|替换为|删除|移除|新增|补充|拆分|提取|限制|缓存|回退到|提前返回|判空|短路|重命名|把.+改|将.+改|为.+添加|在.+(?:前|后))/u,/(?:replace|remove|add|split|extract|guard|return early|rename|update|document|change .+ to|use .+ instead|move .+ to|initialize .+ before)/i],D_=[/(?:可读性|维护性|一致性|优雅|更好|更清晰|更规范|长期维护会更好|可以优化|有优化空间|建议考虑|最好处理一下)/u,/(?:readability|maintainability|cleaner|more consistent|could be improved|might be better|nice to have)/i],y_=[/(?:导致|会让|会在|会把|会使|造成|触发|产生|引发|阻塞|绕过|覆盖|丢失|重复|泄露|崩溃|失败|死锁|误导|误用|混淆|不一致|无法|错误|错用|调用方)/u,/(?:cause|lead to|result in|break|fail|crash|leak|drop|duplicate|race|deadlock|mislead|confus|wrong|incorrect|caller|consumer|contract)/i];function Mf(e){return!!e?.trim()}function jf(e){let t=e.suggestion?.trim();return t?g_.some(r=>r.test(t))?!0:m_.some(r=>r.test(t))?!1:t.length>=14:!1}function qf(e){let t=[e.shortDescription,e.fullDescription,e.evidence].filter(Boolean).join(`
341
+ `);return t.trim()?y_.some(r=>r.test(t))?!0:p_.has(e.category)?!1:!D_.some(r=>r.test(t)):!1}function w_(e){return _0.has(e.severity)?!Mf(e.evidence)||e.confidence===void 0||!jf(e)||!qf(e):!1}function b_(e){return _0.has(e.severity)?!1:!Mf(e.evidence)||e.confidence===void 0||!jf(e)||!qf(e)}function I0(e){let t=[];return Mf(e.evidence)||t.push("\u7F3A\u5C11\u8BC1\u636E"),e.confidence===void 0&&t.push("\u7F3A\u5C11 confidence"),jf(e)||t.push("\u7F3A\u5C11\u5177\u4F53\u4FEE\u590D\u5EFA\u8BAE"),qf(e)||t.push("\u5F71\u54CD\u63CF\u8FF0\u4E0D\u591F\u5177\u4F53"),t}function T0(){return{id:"confidence-filter",name:"Confidence Filter",description:"\u6309\u7F6E\u4FE1\u5EA6\u9608\u503C\u8FC7\u6EE4\u95EE\u9898",enabled:!0,order:3.5,execute:async e=>{let t=Date.now(),r=e.minConfidence??h_,s=e.issues,i=0,n=0,o=0,a=0,u=s.length,l=[];for(let p of s){if(w_(p)){o++,ot(e,{stageId:"confidence-filter",stageName:"Confidence Filter",action:"filtered",reason:`\u9AD8\u5371\u95EE\u9898\u672A\u8FBE\u5230\u8D44\u6DF1\u5DE5\u7A0B\u5E08\u95E8\u69DB\uFF1A${I0(p).join("\u3001")}`,issue:p});continue}if(b_(p)){a++,p.confidence===void 0&&n++,ot(e,{stageId:"confidence-filter",stageName:"Confidence Filter",action:"filtered",reason:`\u4E2D\u4F4E\u98CE\u9669\u95EE\u9898\u672A\u8FBE\u5230\u8D44\u6DF1\u5DE5\u7A0B\u5E08\u95E8\u69DB\uFF1A${I0(p).join("\u3001")}`,issue:p});continue}if(p.confidence===void 0){n++,ot(e,{stageId:"confidence-filter",stageName:"Confidence Filter",action:"filtered",reason:"\u7F3A\u5C11 confidence\uFF0C\u65E0\u6CD5\u901A\u8FC7\u7F6E\u4FE1\u5EA6\u8FC7\u6EE4",issue:p});continue}if(p.confidence>=r){l.push(p);continue}i++,ot(e,{stageId:"confidence-filter",stageName:"Confidence Filter",action:"filtered",reason:`\u7F6E\u4FE1\u5EA6 ${p.confidence}% \u4F4E\u4E8E\u9608\u503C ${r}%`,issue:p})}let c=l.length,f=i,h=f+o+a;return e.issues=l,e.quiet||(u>0&&d.sync(`\u7F6E\u4FE1\u5EA6\u8FC7\u6EE4\uFF08>=${r}%\uFF09\uFF1A\u4FDD\u7559 ${c} \u4E2A\uFF0C\u8FC7\u6EE4 ${h} \u4E2A`),n>0&&d.warn(`${n} \u4E2A\u95EE\u9898\u6CA1\u6709 confidence \u5B57\u6BB5\uFF0C\u5DF2\u6309\u8D44\u6DF1\u5DE5\u7A0B\u5E08\u95E8\u69DB\u8FC7\u6EE4`),o>0&&d.warn(`${o} \u4E2A\u9AD8\u5371\u95EE\u9898\u7F3A\u5C11\u8BC1\u636E\u3001\u4FEE\u590D\u5EFA\u8BAE\u6216 confidence\uFF0C\u5DF2\u8FC7\u6EE4`),a>0&&d.warn(`${a} \u4E2A\u4E2D\u4F4E\u98CE\u9669\u95EE\u9898\u7F3A\u5C11\u660E\u786E\u5F71\u54CD\u3001\u5177\u4F53\u4FEE\u6CD5\u3001\u8BC1\u636E\u6216 confidence\uFF0C\u5DF2\u8FC7\u6EE4`)),{stageId:"confidence-filter",stageName:"Confidence Filter",success:!0,duration:Date.now()-t,output:{totalBefore:u,totalAfter:c,filteredOut:h,confidenceFilteredOut:f,minConfidence:r,withoutConfidence:n,underSpecifiedHighRisk:o,underSpecifiedMediumLow:a}}}}}M();var v_=.6;function $0(e){let t=e.toLowerCase().replace(/[^\w\s]/g," ").split(/\s+/).filter(r=>r.length>2);return new Set(t)}function E_(e,t){if(e.size===0&&t.size===0)return 1;if(e.size===0||t.size===0)return 0;let r=0;for(let i of e)t.has(i)&&r++;let s=e.size+t.size-r;return r/s}function C_(e,t){if(e.file!==t.file||Math.min(Math.abs(e.lineStart-t.lineStart),Math.abs(e.lineEnd-t.lineEnd))>10)return!1;let s=$0(e.shortDescription),i=$0(t.shortDescription);return E_(s,i)>=v_}function P0(){return{id:"deduplication",name:"Deduplication",description:"\u79FB\u9664\u91CD\u590D\u7ED3\u679C\u548C\u95EE\u9898",enabled:!0,order:4,execute:async e=>{let t=Date.now(),r=e.issues,s=r.length,i=new Set,n=[];for(let c of r){let f=`${c.file}:${c.lineStart}:${c.lineEnd}`;if(i.has(f)){ot(e,{stageId:"deduplication",stageName:"Deduplication",action:"filtered",reason:"\u4E0E\u540C\u6587\u4EF6\u540C\u884C\u53F7\u7684\u95EE\u9898\u91CD\u590D",issue:c});continue}i.add(f),n.push(c)}let o=[];for(let c of n){let f=o.find(h=>C_(h,c));if(!f){o.push(c);continue}ot(e,{stageId:"deduplication",stageName:"Deduplication",action:"filtered",reason:`\u4E0E ${f.file}:${f.lineStart}-${f.lineEnd} \u7684\u95EE\u9898\u8BED\u4E49\u91CD\u590D`,issue:c})}e.issues=o;let a=s-n.length,u=n.length-o.length,l=a+u;if(l>0&&!e.quiet){let c=[];a>0&&c.push(`${a} \u4E2A\u6309\u4F4D\u7F6E\u53BB\u91CD`),u>0&&c.push(`${u} \u4E2A\u6309\u76F8\u4F3C\u5EA6\u53BB\u91CD`),d.sync(`\u5DF2\u79FB\u9664 ${l} \u4E2A\u91CD\u590D\u95EE\u9898\uFF08${c.join(", ")}\uFF09`)}return{stageId:"deduplication",stageName:"Deduplication",success:!0,duration:Date.now()-t,output:{totalBefore:s,totalAfter:o.length,removedByLocation:a,removedBySemantic:u}}}}}Ce();Ve();M();var O0=require("node:fs/promises");js();da();Ve();M();var B0={name:"validation",description:"\u590D\u6838\u5176\u4ED6 Agent \u53D1\u73B0\u7684\u95EE\u9898",systemPrompt:`You are a strict senior-level code review validation agent. Your task is to validate issues found by other agents and filter out false positives or generic advice.
342
342
 
343
343
  You may include your analysis and reasoning, but MUST include a JSON array of valid issues somewhere in your response.
344
- Be strict but fair. Keep medium/low findings only when they still explain a concrete failure mode, a real impact, direct evidence, and a specific fix. Filter generic refactor/style/docs advice.`,enabled:!0,order:999,executor:qs};async function O0(e){return Dt(qe.VALIDATION_PROMPT,async()=>{try{return(await He({projectPath:e})).find(s=>s.name==="validation"||s.stage==="validation")??P0}catch(t){return d.debug?.(`\u52A0\u8F7D\u9A8C\u8BC1 Agent \u5931\u8D25\uFF1A${t instanceof Error?t.message:String(t)}`),P0}})}async function L0(){try{let e=fa("prompts","validation-instructions.md");return await(0,B0.readFile)(e,"utf-8")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="ENOENT")d.warn("\u672A\u627E\u5230\u9A8C\u8BC1\u8BF4\u660E\u6587\u4EF6\uFF08defaults/prompts/validation-instructions.md\uFF09\uFF0C\u9A8C\u8BC1\u8D28\u91CF\u53EF\u80FD\u4E0B\u964D\u3002");else{let r=e instanceof Error?e.message:String(e);d.warn(`\u52A0\u8F7D\u9A8C\u8BC1\u8BF4\u660E\u5931\u8D25\uFF08defaults/prompts/validation-instructions.md\uFF09\uFF1A${r}`)}return""}}M();function N0(e,t,r){let s=e.executor||r,i=zs(s);if(!i)return t.quiet||d.warn(`\u9A8C\u8BC1\u6267\u884C\u5668 '${s}' \u4E0D\u5B58\u5728\uFF0C\u5C06\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5`),null;let n=e.executorSettings&&i.applySettings?i.applySettings(e.executorSettings):i.getInfo();return n.enabled?n:(t.quiet||d.warn(`\u9A8C\u8BC1\u6267\u884C\u5668 '${s}' \u5DF2\u7981\u7528\uFF0C\u5C06\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5`),null)}var V0=require("node:crypto");M();M();var Uf=`
345
- ...\uFF08diff \u8FC7\u957F\uFF0C\u5DF2\u622A\u65AD\uFF09...`,ei={FILE_EXACT_MATCH:40,FILE_PARTIAL_MATCH:30,LINE_OVERLAP:30,LINE_NEARBY:15,DESCRIPTION:30},Ya={MINIMUM_SCORE:40,LINE_TOLERANCE:5,LINE_EXTENDED_TOLERANCE:20};var ls="\u9A8C\u8BC1\u5668\u786E\u8BA4\u8BE5\u95EE\u9898\u6210\u7ACB\uFF0C\u4F46\u672A\u63D0\u4F9B\u539F\u56E0";function Gf(e){return e.replace(/\\/g,"/").replace(/^\.\//,"").toLowerCase()}function b_(e,t,r,s,i=Ya.LINE_TOLERANCE){return e<=s&&r<=t?!0:Math.abs(e-r)<=i||Math.abs(t-s)<=i||Math.abs(e-s)<=i||Math.abs(t-r)<=i}function v_(e,t,r){let s=0;if(!t.file)return 0;let i=r??Gf(e.file),n=Gf(t.file);if(i===n)s+=ei.FILE_EXACT_MATCH;else if(i.endsWith(n)||n.endsWith(i))s+=ei.FILE_PARTIAL_MATCH;else return 0;if(typeof t.lineStart=="number"){let o=t.lineEnd??t.lineStart;b_(e.lineStart,e.lineEnd,t.lineStart,o)?s+=ei.LINE_OVERLAP:Math.abs(e.lineStart-t.lineStart)<=Ya.LINE_EXTENDED_TOLERANCE&&(s+=ei.LINE_NEARBY)}if(t.shortDescription&&e.shortDescription){let a=new Set(e.shortDescription.toLowerCase().split(/\W+/).filter(f=>f.length>=3)),u=new Set(t.shortDescription.toLowerCase().split(/\W+/).filter(f=>f.length>=3)),c=[...a].filter(f=>u.has(f)).length/Math.max(a.size,u.size,1);s+=Math.round(c*ei.DESCRIPTION)}return s}function E_(e){let t=[],r=/<(json_output|json)>\s*([\s\S]*?)\s*<\/\1>/gi,s;for(;(s=r.exec(e))!==null;)s[2]&&t.push(s[2].trim());let i=/```(?:json)?\s*([\s\S]*?)```/gi,n;for(;(n=i.exec(e))!==null;)n[1]&&t.push(n[1].trim());let o=e.trim();return(o.startsWith("{")||o.startsWith("["))&&t.push(o),[...new Set(t)]}function j0(e,t){return typeof e=="number"?e:t}function C_(e,t){return typeof e=="string"&&e.trim()?e.trim():t}function M0(e){if(!Array.isArray(e))return null;let t=e.filter(r=>typeof r=="object"&&r!==null&&typeof r.id=="number").map(r=>({id:r.id,confidence:j0(r.confidence,100),reason:C_(r.reason,ls)}));return t.length>0||e.length===0?t:null}function F_(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="number").map(t=>({id:t.id,confidence:j0(t.confidence,0),reason:typeof t.reason=="string"&&t.reason?t.reason:"\u672A\u63D0\u4F9B\u539F\u56E0"})):[]}function S_(e){if(Array.isArray(e)){if(e.every(i=>typeof i=="number"))return{validatedIssues:e.map(i=>({id:i,confidence:100,reason:ls})),filteredIssues:[]};let s=M0(e);return s?{validatedIssues:s,filteredIssues:[]}:null}if(!e||typeof e!="object")return null;let t=e;if(t.issues===void 0&&t.filtered_issues===void 0&&t.valid_ids===void 0&&t.validIds===void 0)return null;let r=[];if(Array.isArray(t.valid_ids)&&t.valid_ids.every(s=>typeof s=="number"))r=t.valid_ids.map(s=>({id:s,confidence:100,reason:ls}));else if(Array.isArray(t.validIds)&&t.validIds.every(s=>typeof s=="number"))r=t.validIds.map(s=>({id:s,confidence:100,reason:ls}));else{let s=M0(t.issues);if(s===null&&Array.isArray(t.issues)&&t.issues.length>0)return null;r=s??[]}return{validatedIssues:r,filteredIssues:F_(t.filtered_issues)}}var x_=e=>{for(let t of E_(e))try{let r=S_(JSON.parse(t));if(r)return r}catch(r){d.debug?.(`\u89E3\u6790 JSON \u8F93\u51FA\u683C\u5F0F\u5931\u8D25\uFF1A${r instanceof Error?r.message:String(r)}`)}return null},A_=e=>{let t=e.match(/<valid-ids>\s*(\[[\s\S]*?\])\s*<\/valid-ids>/);if(!t?.[1])return null;try{let r=JSON.parse(t[1]);return!Array.isArray(r)||!r.every(i=>typeof i=="number")?null:{validatedIssues:r.map(i=>({id:i,confidence:100,reason:ls})),filteredIssues:[]}}catch(r){return d.debug?.(`\u89E3\u6790\u65E7\u7248 ID \u683C\u5F0F\u5931\u8D25\uFF1A${r instanceof Error?r.message:String(r)}`),null}},R_=e=>{let t=e.match(/\[\s*(\d+\s*(?:,\s*\d+\s*)*)\]/);if(!t?.[1])return null;try{let r=JSON.parse(`[${t[1]}]`);if(!Array.isArray(r))return null;let s=r.filter(n=>typeof n=="number");return s.length===0?null:{validatedIssues:s.map(n=>({id:n,confidence:100,reason:ls})),filteredIssues:[]}}catch(r){return d.debug?.(`\u89E3\u6790\u515C\u5E95\u6570\u7EC4\u683C\u5F0F\u5931\u8D25\uFF1A${r instanceof Error?r.message:String(r)}`),null}},k_=(e,t)=>{if(!t||t.length===0)return null;let r=e.match(/<json>\s*([\s\S]*?)\s*<\/json>/);if(!r?.[1])return null;try{let s=JSON.parse(r[1]);if(!Array.isArray(s)||s.length===0)return null;let i=new Map;for(let a of t)i.set(a.id,Gf(a.file));let n=new Set;for(let a of s){let u=null,l=0;for(let c of t){if(n.has(c.id))continue;let f=i.get(c.id),h=v_(c,a,f);h>l&&h>=Ya.MINIMUM_SCORE&&(l=h,u=c)}u&&n.add(u.id)}return n.size===0?null:{validatedIssues:Array.from(n).map(a=>({id:a,confidence:100,reason:ls})),filteredIssues:[]}}catch(s){return d.debug?.(`\u89E3\u6790\u6A21\u7CCA\u5339\u914D\u683C\u5F0F\u5931\u8D25\uFF1A${s instanceof Error?s.message:String(s)}`),null}};function q0(e,t){let r=[x_,A_,R_,k_];for(let s of r){let i=s(e,t);if(i!==null)return i}return null}M();function __(e){return e.map(t=>{let r=[`<issue id="${t.id}">`,`**[${t.severity.toUpperCase()}] ${t.category}** in \`${t.file}:${t.lineStart}-${t.lineEnd}\``,`Agent: ${t.agent}`,"",`**Problem:** ${t.shortDescription}`,"",t.fullDescription];return t.suggestion&&r.push("",`**Suggestion:** ${t.suggestion}`),r.push("</issue>"),r.join(`
344
+ Be strict but fair. Keep medium/low findings only when they still explain a concrete failure mode, a real impact, direct evidence, and a specific fix. Filter generic refactor/style/docs advice.`,enabled:!0,order:999,executor:qs};async function L0(e){return Dt(Ue.VALIDATION_PROMPT,async()=>{try{return(await ze({projectPath:e})).find(s=>s.name==="validation"||s.stage==="validation")??B0}catch(t){return d.debug?.(`\u52A0\u8F7D\u9A8C\u8BC1 Agent \u5931\u8D25\uFF1A${t instanceof Error?t.message:String(t)}`),B0}})}async function N0(){try{let e=fa("prompts","validation-instructions.md");return await(0,O0.readFile)(e,"utf-8")}catch(e){if(e instanceof Error&&"code"in e&&e.code==="ENOENT")d.warn("\u672A\u627E\u5230\u9A8C\u8BC1\u8BF4\u660E\u6587\u4EF6\uFF08defaults/prompts/validation-instructions.md\uFF09\uFF0C\u9A8C\u8BC1\u8D28\u91CF\u53EF\u80FD\u4E0B\u964D\u3002");else{let r=e instanceof Error?e.message:String(e);d.warn(`\u52A0\u8F7D\u9A8C\u8BC1\u8BF4\u660E\u5931\u8D25\uFF08defaults/prompts/validation-instructions.md\uFF09\uFF1A${r}`)}return""}}M();function M0(e,t,r){let s=e.executor||r,i=zs(s);if(!i)return t.quiet||d.warn(`\u9A8C\u8BC1\u6267\u884C\u5668 '${s}' \u4E0D\u5B58\u5728\uFF0C\u5C06\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5`),null;let n=e.executorSettings&&i.applySettings?i.applySettings(e.executorSettings):i.getInfo();return n.enabled?n:(t.quiet||d.warn(`\u9A8C\u8BC1\u6267\u884C\u5668 '${s}' \u5DF2\u7981\u7528\uFF0C\u5C06\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5`),null)}var W0=require("node:crypto");M();M();var Uf=`
345
+ ...\uFF08diff \u8FC7\u957F\uFF0C\u5DF2\u622A\u65AD\uFF09...`,ei={FILE_EXACT_MATCH:40,FILE_PARTIAL_MATCH:30,LINE_OVERLAP:30,LINE_NEARBY:15,DESCRIPTION:30},Ya={MINIMUM_SCORE:40,LINE_TOLERANCE:5,LINE_EXTENDED_TOLERANCE:20};var ls="\u9A8C\u8BC1\u5668\u786E\u8BA4\u8BE5\u95EE\u9898\u6210\u7ACB\uFF0C\u4F46\u672A\u63D0\u4F9B\u539F\u56E0";function Gf(e){return e.replace(/\\/g,"/").replace(/^\.\//,"").toLowerCase()}function F_(e,t,r,s,i=Ya.LINE_TOLERANCE){return e<=s&&r<=t?!0:Math.abs(e-r)<=i||Math.abs(t-s)<=i||Math.abs(e-s)<=i||Math.abs(t-r)<=i}function S_(e,t,r){let s=0;if(!t.file)return 0;let i=r??Gf(e.file),n=Gf(t.file);if(i===n)s+=ei.FILE_EXACT_MATCH;else if(i.endsWith(n)||n.endsWith(i))s+=ei.FILE_PARTIAL_MATCH;else return 0;if(typeof t.lineStart=="number"){let o=t.lineEnd??t.lineStart;F_(e.lineStart,e.lineEnd,t.lineStart,o)?s+=ei.LINE_OVERLAP:Math.abs(e.lineStart-t.lineStart)<=Ya.LINE_EXTENDED_TOLERANCE&&(s+=ei.LINE_NEARBY)}if(t.shortDescription&&e.shortDescription){let a=new Set(e.shortDescription.toLowerCase().split(/\W+/).filter(f=>f.length>=3)),u=new Set(t.shortDescription.toLowerCase().split(/\W+/).filter(f=>f.length>=3)),c=[...a].filter(f=>u.has(f)).length/Math.max(a.size,u.size,1);s+=Math.round(c*ei.DESCRIPTION)}return s}function x_(e){let t=[],r=/<(json_output|json)>\s*([\s\S]*?)\s*<\/\1>/gi,s;for(;(s=r.exec(e))!==null;)s[2]&&t.push(s[2].trim());let i=/```(?:json)?\s*([\s\S]*?)```/gi,n;for(;(n=i.exec(e))!==null;)n[1]&&t.push(n[1].trim());let o=e.trim();return(o.startsWith("{")||o.startsWith("["))&&t.push(o),[...new Set(t)]}function q0(e,t){return typeof e=="number"?e:t}function A_(e,t){return typeof e=="string"&&e.trim()?e.trim():t}function j0(e){if(!Array.isArray(e))return null;let t=e.filter(r=>typeof r=="object"&&r!==null&&typeof r.id=="number").map(r=>({id:r.id,confidence:q0(r.confidence,100),reason:A_(r.reason,ls)}));return t.length>0||e.length===0?t:null}function R_(e){return Array.isArray(e)?e.filter(t=>typeof t=="object"&&t!==null&&typeof t.id=="number").map(t=>({id:t.id,confidence:q0(t.confidence,0),reason:typeof t.reason=="string"&&t.reason?t.reason:"\u672A\u63D0\u4F9B\u539F\u56E0"})):[]}function k_(e){if(Array.isArray(e)){if(e.every(i=>typeof i=="number"))return{validatedIssues:e.map(i=>({id:i,confidence:100,reason:ls})),filteredIssues:[]};let s=j0(e);return s?{validatedIssues:s,filteredIssues:[]}:null}if(!e||typeof e!="object")return null;let t=e;if(t.issues===void 0&&t.filtered_issues===void 0&&t.valid_ids===void 0&&t.validIds===void 0)return null;let r=[];if(Array.isArray(t.valid_ids)&&t.valid_ids.every(s=>typeof s=="number"))r=t.valid_ids.map(s=>({id:s,confidence:100,reason:ls}));else if(Array.isArray(t.validIds)&&t.validIds.every(s=>typeof s=="number"))r=t.validIds.map(s=>({id:s,confidence:100,reason:ls}));else{let s=j0(t.issues);if(s===null&&Array.isArray(t.issues)&&t.issues.length>0)return null;r=s??[]}return{validatedIssues:r,filteredIssues:R_(t.filtered_issues)}}var I_=e=>{for(let t of x_(e))try{let r=k_(JSON.parse(t));if(r)return r}catch(r){d.debug?.(`\u89E3\u6790 JSON \u8F93\u51FA\u683C\u5F0F\u5931\u8D25\uFF1A${r instanceof Error?r.message:String(r)}`)}return null},__=e=>{let t=e.match(/<valid-ids>\s*(\[[\s\S]*?\])\s*<\/valid-ids>/);if(!t?.[1])return null;try{let r=JSON.parse(t[1]);return!Array.isArray(r)||!r.every(i=>typeof i=="number")?null:{validatedIssues:r.map(i=>({id:i,confidence:100,reason:ls})),filteredIssues:[]}}catch(r){return d.debug?.(`\u89E3\u6790\u65E7\u7248 ID \u683C\u5F0F\u5931\u8D25\uFF1A${r instanceof Error?r.message:String(r)}`),null}},T_=e=>{let t=e.match(/\[\s*(\d+\s*(?:,\s*\d+\s*)*)\]/);if(!t?.[1])return null;try{let r=JSON.parse(`[${t[1]}]`);if(!Array.isArray(r))return null;let s=r.filter(n=>typeof n=="number");return s.length===0?null:{validatedIssues:s.map(n=>({id:n,confidence:100,reason:ls})),filteredIssues:[]}}catch(r){return d.debug?.(`\u89E3\u6790\u515C\u5E95\u6570\u7EC4\u683C\u5F0F\u5931\u8D25\uFF1A${r instanceof Error?r.message:String(r)}`),null}},$_=(e,t)=>{if(!t||t.length===0)return null;let r=e.match(/<json>\s*([\s\S]*?)\s*<\/json>/);if(!r?.[1])return null;try{let s=JSON.parse(r[1]);if(!Array.isArray(s)||s.length===0)return null;let i=new Map;for(let a of t)i.set(a.id,Gf(a.file));let n=new Set;for(let a of s){let u=null,l=0;for(let c of t){if(n.has(c.id))continue;let f=i.get(c.id),h=S_(c,a,f);h>l&&h>=Ya.MINIMUM_SCORE&&(l=h,u=c)}u&&n.add(u.id)}return n.size===0?null:{validatedIssues:Array.from(n).map(a=>({id:a,confidence:100,reason:ls})),filteredIssues:[]}}catch(s){return d.debug?.(`\u89E3\u6790\u6A21\u7CCA\u5339\u914D\u683C\u5F0F\u5931\u8D25\uFF1A${s instanceof Error?s.message:String(s)}`),null}};function U0(e,t){let r=[I_,__,T_,$_];for(let s of r){let i=s(e,t);if(i!==null)return i}return null}M();function B_(e){return e.map(t=>{let r=[`<issue id="${t.id}">`,`**[${t.severity.toUpperCase()}] ${t.category}** in \`${t.file}:${t.lineStart}-${t.lineEnd}\``,`Agent: ${t.agent}`,"",`**Problem:** ${t.shortDescription}`,"",t.fullDescription];return t.suggestion&&r.push("",`**Suggestion:** ${t.suggestion}`),r.push("</issue>"),r.join(`
346
346
  `)}).join(`
347
347
 
348
- `)}function T_(e,t){return!t.techDoc?.requirements?.length||!e.some(s=>s.agent==="tech-doc-compliance"||s.rule==="tech-doc-compliance")?"":["","# Tech Doc Requirement Context","",`Source: ${t.techDoc.source}`,t.techDoc.title?`Title: ${t.techDoc.title}`:null,"",...t.techDoc.requirements.map(s=>[`## ${s.id}: ${s.title}`,`Priority: ${s.priority}`,`Description: ${s.description}`,s.acceptanceSignals.length>0?`Acceptance signals: ${s.acceptanceSignals.join("; ")}`:null,s.sourceLocation?`Source location: ${s.sourceLocation}`:null,s.sourceQuote?`Source quote: ${s.sourceQuote}`:null].filter(Boolean).join(`
348
+ `)}function O_(e,t){return!t.techDoc?.requirements?.length||!e.some(s=>s.agent==="tech-doc-compliance"||s.rule==="tech-doc-compliance")?"":["","# Tech Doc Requirement Context","",`Source: ${t.techDoc.source}`,t.techDoc.title?`Title: ${t.techDoc.title}`:null,"",...t.techDoc.requirements.map(s=>[`## ${s.id}: ${s.title}`,`Priority: ${s.priority}`,`Description: ${s.description}`,s.acceptanceSignals.length>0?`Acceptance signals: ${s.acceptanceSignals.join("; ")}`:null,s.sourceLocation?`Source location: ${s.sourceLocation}`:null,s.sourceQuote?`Source quote: ${s.sourceQuote}`:null].filter(Boolean).join(`
349
349
  `))].filter(Boolean).join(`
350
- `)}function $_(e,t){if(e.length<=t)return e;let r=Math.floor((t-Uf.length)/2),s=e.slice(0,r),i=e.slice(-r);return s+Uf+i}function U0(e,t,r,s,i){let n=__(e),o=t.metadata.repository,a=t.metadata.commitMessages?.length?["","## Commit Messages (IMPORTANT: Check these to understand change intent!)","These messages explain WHY the changes were made. Use them to identify INTENTIONAL trade-offs.","",...t.metadata.commitMessages.map((D,b)=>`### Commit ${b+1}:
350
+ `)}function L_(e,t){if(e.length<=t)return e;let r=Math.floor((t-Uf.length)/2),s=e.slice(0,r),i=e.slice(-r);return s+Uf+i}function G0(e,t,r,s,i){let n=B_(e),o=t.metadata.repository,a=t.metadata.commitMessages?.length?["","## Commit Messages (IMPORTANT: Check these to understand change intent!)","These messages explain WHY the changes were made. Use them to identify INTENTIONAL trade-offs.","",...t.metadata.commitMessages.map((D,b)=>`### Commit ${b+1}:
351
351
  ${D}`)].join(`
352
352
  `):null,u=["# Repository Context",`Base path: ${o}`,"All file paths below are relative to this directory.","Use only the issue payload, changed diffs, full file context, dependency context, project notes, and commit context included in this prompt.","","## Project Context Notes","- Project documentation or code comments may appear in the provided context when available.","- Treat explanatory comments and commit messages as evidence for intentional trade-offs.",t.metadata.baseRef?`Base ref: ${t.metadata.baseRef}`:null,t.metadata.headRef?`Head ref: ${t.metadata.headRef}`:null,a].filter(Boolean).join(`
353
- `),l=new Set(e.map(D=>D.file)),c=t.diffs.filter(D=>l.has(D.file)),f=c.length>0?["","## Changed Files (diffs for context)","These are the actual changes being reviewed. Use these to verify issues.","",...c.map(D=>{let b=$_(D.diff,2e3);return`File: ${D.file}
353
+ `),l=new Set(e.map(D=>D.file)),c=t.diffs.filter(D=>l.has(D.file)),f=c.length>0?["","## Changed Files (diffs for context)","These are the actual changes being reviewed. Use these to verify issues.","",...c.map(D=>{let b=L_(D.diff,2e3);return`File: ${D.file}
354
354
  ${b}`})].join(`
355
- `):"",h=Lf(c,t.supplementalContextFiles),p=T_(e,t),m=`${u}${f}${h}${p}
355
+ `):"",h=Lf(c,t.supplementalContextFiles),p=O_(e,t),m=`${u}${f}${h}${p}
356
356
 
357
357
  ${i}
358
358
 
@@ -360,15 +360,15 @@ ${i}
360
360
 
361
361
  ${n}`,g=r.systemPrompt;return s&&(g=`${g}
362
362
 
363
- ${s}`),{input:m,systemPrompt:g}}function G0(e,t,r,s,i,n){if(!e.verbose||e.quiet)return;let o=n>1;d.plain(`
364
- \u9A8C\u8BC1 prompt${o?`\uFF08batch ${i+1}/${n}\uFF09`:""}\uFF1A`),d.plain(` \u6267\u884C\u5668\uFF1A${t.name}`),d.plain(` \u5F85\u9A8C\u8BC1\u95EE\u9898\u6570\uFF1A${r.length}`),d.plain("\u2500".repeat(80)),d.plain(s.slice(0,2e3)+(s.length>2e3?"...":"")),d.plain("\u2500".repeat(80)),d.newline()}var P_="\u9A8C\u8BC1\u5668\u786E\u8BA4\u8BE5\u95EE\u9898\u6210\u7ACB\uFF0C\u4F46\u65E7\u7F13\u5B58\u672A\u8BB0\u5F55\u539F\u56E0";function B_(e,t){let r=e instanceof Error?e.message:String(e);return{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:r,duration:t}}function O_(e){let t=e.map(r=>r.id).sort((r,s)=>r-s).join(",");return(0,V0.createHash)("sha256").update(t).digest("hex")}function L_(e){return e.map(t=>({id:t.id,confidence:t.confidence,reason:typeof t.reason=="string"&&t.reason.trim()?t.reason.trim():P_}))}async function N_(e,t){let r=Date.now();try{let s=await e(),i=Date.now()-r;return s.success?t.completeBatch("validation"):t.failTask("validation"),{success:s.success,data:s.data,validatedIssues:s.validatedIssues,filteredIssues:s.filteredIssues,error:s.error,usage:s.usage,cacheHit:s.cacheHit,duration:i}}catch(s){let i=Date.now()-r;return t.failTask("validation"),B_(s,i)}}async function M_(e,t,r,s,i){let n=await Wa({label:"Validating",batchIndex:s,totalBatches:i,itemCount:r.length,itemName:"issue"},t.quiet??!1,async()=>{let o=await e();return{success:o.success,data:{validIds:o.data,validatedIssues:o.validatedIssues,filteredIssues:o.filteredIssues},error:o.error,usage:o.usage,cacheHit:o.cacheHit}},(o,a)=>i>1?`\u5DF2\u9A8C\u8BC1 batch ${s+1}/${i}\uFF08${o.validIds.length} \u4E2A\u6709\u6548\uFF0C${a}ms\uFF09`:`\u5DF2\u9A8C\u8BC1 ${o.validIds.length} \u4E2A\u95EE\u9898\uFF08${a}ms\uFF09`,o=>i>1?`\u9A8C\u8BC1\u5931\u8D25\uFF08batch ${s+1}\uFF09\uFF1A${o}`:`\u9A8C\u8BC1\u5931\u8D25\uFF1A${o}`);return{success:n.success,data:n.data?.validIds??[],validatedIssues:n.data?.validatedIssues??[],filteredIssues:n.data?.filteredIssues??[],error:n.error,usage:n.usage,cacheHit:n.cacheHit,duration:n.duration}}async function Vf(e){let{repository:t,cacheKey:r,validationAgent:s,executor:i,output:n,error:o,usage:a}=e;await Bf(t,{key:r,success:!1,agent:s.name,executor:i.name,model:i.model,output:n,validIds:[],validatedIssues:[],filteredIssues:[],error:o,usage:a})}async function W0(e,t,r,s,i,n,o,a,u){u&&t===0&&u.startTask("validation");let{input:l,systemPrompt:c}=U0(e,n,s,o,a),f={agent:s,executor:i,input:l,systemPrompt:c,verbose:n.verbose,quiet:n.quiet,cwd:n.metadata.repository,modelOverride:n.modelOverride,outputMode:"text"};G0(n,i,e,l,t,r);let h=async()=>{let p=Ks(c,l,""),m=n0({agent:s.name,executor:i.name,model:i.model,baseUrl:i.baseUrl,temperature:i.temperature,maxTokens:i.maxTokens,systemPrompt:c,prompt:p,issueBatchHash:O_(e)}),g=await u0(n.metadata.repository,m);if(g)return{success:g.success,data:g.validIds,validatedIssues:L_(g.validatedIssues),filteredIssues:g.filteredIssues,error:g.error,usage:g.usage,cacheHit:!0};let D=await ge.executeAgent(f);if(!D.success)return{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:D.error,usage:D.usage};await Vf({repository:n.metadata.repository,cacheKey:m,validationAgent:s,executor:i,output:D.output,error:"\u9A8C\u8BC1\u8F93\u51FA\u5C1A\u672A\u6210\u529F\u89E3\u6790",usage:D.usage});let b;try{b=q0(D.output,e)}catch(v){let E=v instanceof Error?v.message:String(v);return await Vf({repository:n.metadata.repository,cacheKey:m,validationAgent:s,executor:i,output:D.output,error:E,usage:D.usage}),{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:E,usage:D.usage}}if(!b){let v="\u9A8C\u8BC1\u8F93\u51FA\u65E0\u6CD5\u89E3\u6790\u4E3A\u7ED3\u6784\u5316\u7ED3\u679C";return await Vf({repository:n.metadata.repository,cacheKey:m,validationAgent:s,executor:i,output:D.output,error:v,usage:D.usage}),{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:v,usage:D.usage}}let w=b.validatedIssues.map(v=>v.id);return await Bf(n.metadata.repository,{key:m,success:!0,agent:s.name,executor:i.name,model:i.model,output:D.output,validIds:w,validatedIssues:b.validatedIssues,filteredIssues:b.filteredIssues,usage:D.usage}),{success:!0,data:w,validatedIssues:b.validatedIssues,filteredIssues:b.filteredIssues,usage:D.usage}};return u?N_(h,u):M_(h,n,e,t,r)}var q_="\u9A8C\u8BC1\u5668\u672A\u8FD4\u56DE\u8BE5\u95EE\u9898\u7684\u4FDD\u7559\u6216\u8FC7\u6EE4\u7ED3\u8BBA\uFF0C\u6309\u672A\u901A\u8FC7\u9A8C\u8BC1\u5904\u7406";function Kf(e,t,r,s){let i;return r==="low-confidence"?i=`\u9A8C\u8BC1\u7F6E\u4FE1\u5EA6\u8FC7\u4F4E\uFF08${t}%\uFF0C\u9608\u503C\uFF1A${s.threshold}%\uFF09`:i=`\u7F6E\u4FE1\u5EA6\u4E0B\u964D\u8FC7\u5927\uFF08${s.delta}\uFF0C\u539F\u59CB\uFF1A${s.originalConfidence}%\uFF0C\u9A8C\u8BC1\u540E\uFF1A${t}%\uFF09`,{id:e,confidence:t,reason:i}}function K0(e,t,r,s){return{id:e.id,status:t,confidence:r,reason:s,file:e.file,lineStart:e.lineStart,lineEnd:e.lineEnd,severity:e.severity,category:e.category,shortDescription:e.shortDescription,agent:e.agent,...e.rule&&{rule:e.rule}}}function H0(e,t,r){let s=new Set,i=[],n=new Map(e.map(h=>[h.id,h])),o=new Map(t.map(h=>[h.id,h])),a=new Set(r.map(h=>h.id));for(let h of t){if(a.has(h.id))continue;let m=n.get(h.id)?.confidence??100,g=h.confidence-m;h.confidence<50?i.push(Kf(h.id,h.confidence,"low-confidence",{threshold:50})):g<-40?i.push(Kf(h.id,h.confidence,"negative-delta",{delta:g,originalConfidence:m})):s.add(h.id)}let u=[...r,...i],l=new Set(u.map(h=>h.id));for(let h of e){if(s.has(h.id)||l.has(h.id))continue;let p=Kf(h.id,0,"low-confidence",{threshold:50});u.push({...p,reason:q_}),l.add(h.id)}let c=new Map(u.map(h=>[h.id,h])),f=e.map(h=>{let p=c.get(h.id);if(p)return K0(h,"filtered",p.confidence,p.reason);let m=o.get(h.id);return K0(h,"kept",m?.confidence??h.confidence??100,m?.reason??"\u9A8C\u8BC1\u5668\u786E\u8BA4\u8BE5\u95EE\u9898\u6210\u7ACB\uFF0C\u4F46\u672A\u63D0\u4F9B\u539F\u56E0")});return{finalValidIds:s,deltaFilteredIssues:i,mergedFilteredIssues:u,validationSummary:{total:e.length,keptCount:s.size,filteredCount:e.length-s.size,decisions:f},issueMap:n}}function G_(e,t=120){return e.length>t?`${e.slice(0,t-1)}\u2026`:e}function V_(e){return[`\u9A8C\u8BC1\u7ED3\u8BBA\uFF1A\u4FDD\u7559 ${e.keptCount}\uFF0C\u8FC7\u6EE4 ${e.filteredCount}`,...e.decisions.map(t=>{let r=t.status==="kept"?"\u2713":"\xD7",s=t.status==="kept"?"\u4FDD\u7559":"\u8FC7\u6EE4";return` ${r} [${t.id}] ${t.file}:${t.lineStart} ${s}\uFF08${t.confidence}%\uFF09\uFF1A${G_(t.reason)}`})]}function z0(){return{id:"validation",name:"Validation",description:"\u590D\u6838\u95EE\u9898\u5E76\u8FC7\u6EE4\u8BEF\u62A5",enabled:!0,order:5,execute:async e=>{let t=Date.now();if(e.skipValidation)return e.quiet||d.sync("\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5\uFF08--skip-validation\uFF09"),{stageId:"validation",stageName:"Validation",success:!0,duration:Date.now()-t};let r=e.issues;if(r.length===0)return e.quiet||d.sync("\u6CA1\u6709\u9700\u8981\u9A8C\u8BC1\u7684\u95EE\u9898"),{stageId:"validation",stageName:"Validation",success:!0,duration:Date.now()-t};let s=r.map((R,W)=>({...R,id:W+1}));if(!e.config){let R="Pipeline \u4E0A\u4E0B\u6587\u4E2D\u7684 config \u5C1A\u672A\u521D\u59CB\u5316";return d.error(R),{stageId:"validation",stageName:"Validation",success:!1,duration:0,error:R}}let i=e.config,[n,o,a]=await Promise.all([O0(e.metadata.repository),xa(),L0()]),u=i.workflows?.validation,l=i.executor,c=e.modelOverride;if(u&&u.length>0){let R=u[u.length-1];R&&(c=e.modelOverride||R.model),e.quiet||d.info(`Workflow \u6A21\u5F0F\uFF1A\u4F7F\u7528 ${l}${c?`\uFF08\u6A21\u578B\uFF1A${c}\uFF09`:""} \u6267\u884C\u9A8C\u8BC1`)}let f=l,p=(i.executors?.[f]||{}).validation||{},m=c??(typeof p.model=="string"?p.model:void 0),g={...Ue({executorOverride:f,modelOverride:m,config:i}),...p,...m&&{model:m}},D=g.batchSize??6,b=g.concurrency??e.concurrency,w={...n,executor:f,executorSettings:{...g,...n.executorSettings??{},model:g.model}},v=N0(w,e,f);if(!v)return{stageId:"validation",stageName:"Validation",success:!0,duration:Date.now()-t};let E=c?{...e,modelOverride:c}:e,C=l0(s,D),x=v.model;e.quiet||(d.sync(`\u6B63\u5728\u9A8C\u8BC1 ${r.length} \u4E2A\u95EE\u9898...`),e.verbose&&d.plain(` \u6267\u884C\u5668\uFF1A${v.name}${x?`\uFF08\u6A21\u578B\uFF1A${x}\uFF09`:""}`));let F=!e.quiet&&!e.stream&&!e.verbose?new Ds:void 0;F&&(F.addTask("validation","Validation",C.length,r.length,1,`${r.length} \u4E2A\u95EE\u9898`),F.start());try{let R,W=Kt(b);R=await Promise.all(C.map((U,ue)=>W(()=>W0(U,ue,C.length,w,v,E,o,a,F))));let ae=Ht();for(let U of R)ae=kr(ae,U.usage,{cacheHit:U.cacheHit});if(e.usage=Fn([e.usage,ae]),F?.stop(),!c0(R)){let U=f0(R),ue=Va(U.map(Re=>Re.error));return{stageId:"validation",stageName:"Validation",success:!1,duration:Date.now()-t,error:ue}}let H=R.flatMap(U=>U.validatedIssues),I=R.flatMap(U=>U.filteredIssues),{finalValidIds:L,deltaFilteredIssues:Q,mergedFilteredIssues:re,validationSummary:z,issueMap:J}=H0(s,H,I);for(let U of re){let ue=J.get(U.id);ue&&nt(e,{stageId:"validation",stageName:"Validation",action:"filtered",reason:U.reason,issue:ue})}e.issues=s.filter(U=>L.has(U.id)),e.validation=z;let ce=L.size,se=r.length-ce,Y=Date.now()-t;if(!e.quiet){let U=Q.length,ue=I.length;U>0?d.done(`\u9A8C\u8BC1\u5B8C\u6210\uFF1A${ce} \u4E2A\u6709\u6548\uFF0C${ue} \u4E2A\u88AB\u9A8C\u8BC1\u5668\u8FC7\u6EE4\uFF0C${U} \u4E2A\u56E0\u7F6E\u4FE1\u5EA6\u53D8\u5316\u8FC7\u6EE4\uFF08${Y}ms\uFF09`):d.done(`\u9A8C\u8BC1\u5B8C\u6210\uFF1A${ce} \u4E2A\u6709\u6548\uFF0C${se} \u4E2A\u88AB\u8FC7\u6EE4\uFF08${Y}ms\uFF09`),d.newline();for(let Re of V_(z))d.plain(Re);if(e.verbose&&re.length>0){d.newline(),d.plain("\u88AB\u8FC7\u6EE4\u7684\u95EE\u9898\uFF1A");for(let Re of re){let Xt=J.get(Re.id);Xt?d.plain(` [${Re.id}] ${Xt.file}:${Xt.lineStart} \u2014 ${Re.reason}`):d.plain(` [${Re.id}] \u2014 ${Re.reason}`)}}}return{stageId:"validation",stageName:"Validation",success:!0,duration:Y,output:{validCount:ce,filteredCount:se,filteredIssues:re,deltaFilteredCount:Q.length,decisions:z.decisions}}}catch(R){F?.stop();let W=R instanceof Error?R.message:String(R);return e.quiet||d.error(`\u9A8C\u8BC1\u9636\u6BB5\u9519\u8BEF\uFF1A${W}`),{stageId:"validation",stageName:"Validation",success:!1,duration:Date.now()-t,error:W}}}}}function W_(e){let t=new Set;for(let r of e.diffs)t.add(r.file),r.oldPath&&t.add(r.oldPath),r.newPath&&t.add(r.newPath);return t}function J0(){return{id:"gitlab-mr-issue-filter",name:"GitLab MR Issue Filter",description:"\u8FC7\u6EE4\u6389\u4E0D\u5C5E\u4E8E MR \u53D8\u66F4\u6587\u4EF6\u7684 issue",enabled:!0,order:7,execute:async e=>{let t=Date.now();if(e.metadata.reviewTarget?.kind!=="gitlab-mr")return{stageId:"gitlab-mr-issue-filter",stageName:"GitLab MR Issue Filter",success:!0,duration:Date.now()-t,output:{skipped:!0}};let r=W_(e),s=e.issues.length;e.issues=e.issues.filter(n=>r.has(n.file)?!0:(nt(e,{stageId:"gitlab-mr-issue-filter",stageName:"GitLab MR Issue Filter",action:"filtered",reason:`issue.file=${n.file} \u4E0D\u5C5E\u4E8E\u5F53\u524D MR \u53D8\u66F4\u6587\u4EF6`,issue:n}),!1));let i=s-e.issues.length;return{stageId:"gitlab-mr-issue-filter",stageName:"GitLab MR Issue Filter",success:!0,duration:Date.now()-t,output:{totalBefore:s,totalAfter:e.issues.length,filtered:i}}}}}var Q0=require("node:child_process"),ri=require("node:fs/promises"),$t=require("node:path");Ge();M();var K_=5,H_=6e4,Y0=3e4;function ew(e,t){let r=process.env[e];if(!r)return t;let s=Number.parseInt(r,10);return Number.isNaN(s)||s<1?t:s}function z_(e){let t=new Set,r=[];for(let s of e){let i=`${s.file}:${s.lineStart}:${s.lineEnd}:${s.severity}:${s.shortDescription}`;t.has(i)||(t.add(i),r.push(s))}return r}function tw(e){let t=new Set;for(let r of e.split(`
365
- `)){let s=r.match(/^diff --git a\/(.+?) b\/(.+)$/);s?.[1]&&t.add(s[1]),s?.[2]&&t.add(s[2])}return[...t]}function Hf(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function J_(e){let t=e.match(/<patch>\s*([\s\S]*?)\s*<\/patch>/i);if(t?.[1]?.trim())return t[1].trim();let r=e.match(/```(?:diff|patch)?\s*([\s\S]*?)```/i);if(r?.[1]?.includes("diff --git"))return r[1].trim();let s=e.indexOf("diff --git ");return s>=0?e.slice(s).trim():null}function zf(e,t){let r=(0,$t.resolve)(e,t),s=(0,$t.relative)(e,r);return!s||s.startsWith("..")||(0,$t.isAbsolute)(s)?null:r}function Y_(e){return e.trim().split(/\s+/)[0]?.replace(/^[ab]\//,"")??""}function Z_(e,t,r){if(/^GIT binary patch$/m.test(e)||/^Binary files /m.test(e))throw new Error("\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5305\u542B\u4E8C\u8FDB\u5236\u53D8\u66F4\uFF0C\u5DF2\u62D2\u7EDD\u5E94\u7528");if(/^(new file mode|deleted file mode|rename from|rename to|copy from|copy to) /m.test(e)||/^--- \/dev\/null$/m.test(e)||/^\+\+\+ \/dev\/null$/m.test(e))throw new Error("\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5305\u542B\u65B0\u589E\u3001\u5220\u9664\u3001\u91CD\u547D\u540D\u6216\u590D\u5236\u6587\u4EF6\uFF0C\u5DF2\u62D2\u7EDD\u5E94\u7528");let s=new Set(r.map(Hf)),i=tw(e).map(Hf);if(i.length===0)throw new Error("\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u6CA1\u6709\u58F0\u660E\u53EF\u4FEE\u6539\u6587\u4EF6");for(let n of i){if(!s.has(n))throw new Error(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u8BD5\u56FE\u4FEE\u6539\u975E\u76EE\u6807\u6587\u4EF6\uFF1A${n}`);if(!zf(t,n))throw new Error(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5305\u542B\u4E0D\u5B89\u5168\u8DEF\u5F84\uFF1A${n}`)}for(let n of e.split(`
366
- `)){if(!n.startsWith("--- ")&&!n.startsWith("+++ "))continue;let o=Y_(n.slice(4));if(!o||o==="/dev/null")continue;let a=Hf(o);if(!s.has(a))throw new Error(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u8BD5\u56FE\u4FEE\u6539\u975E\u76EE\u6807\u6587\u4EF6\uFF1A${a}`);if(!zf(t,a))throw new Error(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5305\u542B\u4E0D\u5B89\u5168\u8DEF\u5F84\uFF1A${a}`)}}function X_(e,t){return(0,$t.isAbsolute)(t)?t:(0,$t.resolve)(e,t)}async function Q_(e,t,r){let s=X_(e,t);return await(0,ri.mkdir)((0,$t.dirname)(s),{recursive:!0}),await(0,ri.writeFile)(s,r.endsWith(`
363
+ ${s}`),{input:m,systemPrompt:g}}function V0(e,t,r,s,i,n){if(!e.verbose||e.quiet)return;let o=n>1;d.plain(`
364
+ \u9A8C\u8BC1 prompt${o?`\uFF08batch ${i+1}/${n}\uFF09`:""}\uFF1A`),d.plain(` \u6267\u884C\u5668\uFF1A${t.name}`),d.plain(` \u5F85\u9A8C\u8BC1\u95EE\u9898\u6570\uFF1A${r.length}`),d.plain("\u2500".repeat(80)),d.plain(s.slice(0,2e3)+(s.length>2e3?"...":"")),d.plain("\u2500".repeat(80)),d.newline()}var N_="\u9A8C\u8BC1\u5668\u786E\u8BA4\u8BE5\u95EE\u9898\u6210\u7ACB\uFF0C\u4F46\u65E7\u7F13\u5B58\u672A\u8BB0\u5F55\u539F\u56E0";function M_(e,t){let r=e instanceof Error?e.message:String(e);return{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:r,duration:t}}function j_(e){let t=e.map(r=>r.id).sort((r,s)=>r-s).join(",");return(0,W0.createHash)("sha256").update(t).digest("hex")}function q_(e){return e.map(t=>({id:t.id,confidence:t.confidence,reason:typeof t.reason=="string"&&t.reason.trim()?t.reason.trim():N_}))}async function U_(e,t){let r=Date.now();try{let s=await e(),i=Date.now()-r;return s.success?t.completeBatch("validation"):t.failTask("validation"),{success:s.success,data:s.data,validatedIssues:s.validatedIssues,filteredIssues:s.filteredIssues,error:s.error,usage:s.usage,cacheHit:s.cacheHit,duration:i}}catch(s){let i=Date.now()-r;return t.failTask("validation"),M_(s,i)}}async function G_(e,t,r,s,i){let n=await Wa({label:"Validating",batchIndex:s,totalBatches:i,itemCount:r.length,itemName:"issue"},t.quiet??!1,async()=>{let o=await e();return{success:o.success,data:{validIds:o.data,validatedIssues:o.validatedIssues,filteredIssues:o.filteredIssues},error:o.error,usage:o.usage,cacheHit:o.cacheHit}},(o,a)=>i>1?`\u5DF2\u9A8C\u8BC1 batch ${s+1}/${i}\uFF08${o.validIds.length} \u4E2A\u6709\u6548\uFF0C${a}ms\uFF09`:`\u5DF2\u9A8C\u8BC1 ${o.validIds.length} \u4E2A\u95EE\u9898\uFF08${a}ms\uFF09`,o=>i>1?`\u9A8C\u8BC1\u5931\u8D25\uFF08batch ${s+1}\uFF09\uFF1A${o}`:`\u9A8C\u8BC1\u5931\u8D25\uFF1A${o}`);return{success:n.success,data:n.data?.validIds??[],validatedIssues:n.data?.validatedIssues??[],filteredIssues:n.data?.filteredIssues??[],error:n.error,usage:n.usage,cacheHit:n.cacheHit,duration:n.duration}}async function Vf(e){let{repository:t,cacheKey:r,validationAgent:s,executor:i,output:n,error:o,usage:a}=e;await Bf(t,{key:r,success:!1,agent:s.name,executor:i.name,model:i.model,output:n,validIds:[],validatedIssues:[],filteredIssues:[],error:o,usage:a})}async function H0(e,t,r,s,i,n,o,a,u){u&&t===0&&u.startTask("validation");let{input:l,systemPrompt:c}=G0(e,n,s,o,a),f={agent:s,executor:i,input:l,systemPrompt:c,verbose:n.verbose,quiet:n.quiet,cwd:n.metadata.repository,modelOverride:n.modelOverride,outputMode:"text"};V0(n,i,e,l,t,r);let h=async()=>{let p=Hs(c,l,""),m=o0({agent:s.name,executor:i.name,model:i.model,baseUrl:i.baseUrl,temperature:i.temperature,maxTokens:i.maxTokens,systemPrompt:c,prompt:p,issueBatchHash:j_(e)}),g=await l0(n.metadata.repository,m);if(g)return{success:g.success,data:g.validIds,validatedIssues:q_(g.validatedIssues),filteredIssues:g.filteredIssues,error:g.error,usage:g.usage,cacheHit:!0};let D=await De.executeAgent(f);if(!D.success)return{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:D.error,usage:D.usage};await Vf({repository:n.metadata.repository,cacheKey:m,validationAgent:s,executor:i,output:D.output,error:"\u9A8C\u8BC1\u8F93\u51FA\u5C1A\u672A\u6210\u529F\u89E3\u6790",usage:D.usage});let b;try{b=U0(D.output,e)}catch(v){let E=v instanceof Error?v.message:String(v);return await Vf({repository:n.metadata.repository,cacheKey:m,validationAgent:s,executor:i,output:D.output,error:E,usage:D.usage}),{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:E,usage:D.usage}}if(!b){let v="\u9A8C\u8BC1\u8F93\u51FA\u65E0\u6CD5\u89E3\u6790\u4E3A\u7ED3\u6784\u5316\u7ED3\u679C";return await Vf({repository:n.metadata.repository,cacheKey:m,validationAgent:s,executor:i,output:D.output,error:v,usage:D.usage}),{success:!1,data:[],validatedIssues:[],filteredIssues:[],error:v,usage:D.usage}}let w=b.validatedIssues.map(v=>v.id);return await Bf(n.metadata.repository,{key:m,success:!0,agent:s.name,executor:i.name,model:i.model,output:D.output,validIds:w,validatedIssues:b.validatedIssues,filteredIssues:b.filteredIssues,usage:D.usage}),{success:!0,data:w,validatedIssues:b.validatedIssues,filteredIssues:b.filteredIssues,usage:D.usage}};return u?U_(h,u):G_(h,n,e,t,r)}var W_="\u9A8C\u8BC1\u5668\u672A\u8FD4\u56DE\u8BE5\u95EE\u9898\u7684\u4FDD\u7559\u6216\u8FC7\u6EE4\u7ED3\u8BBA\uFF0C\u6309\u672A\u901A\u8FC7\u9A8C\u8BC1\u5904\u7406";function Hf(e,t,r,s){let i;return r==="low-confidence"?i=`\u9A8C\u8BC1\u7F6E\u4FE1\u5EA6\u8FC7\u4F4E\uFF08${t}%\uFF0C\u9608\u503C\uFF1A${s.threshold}%\uFF09`:i=`\u7F6E\u4FE1\u5EA6\u4E0B\u964D\u8FC7\u5927\uFF08${s.delta}\uFF0C\u539F\u59CB\uFF1A${s.originalConfidence}%\uFF0C\u9A8C\u8BC1\u540E\uFF1A${t}%\uFF09`,{id:e,confidence:t,reason:i}}function K0(e,t,r,s){return{id:e.id,status:t,confidence:r,reason:s,file:e.file,lineStart:e.lineStart,lineEnd:e.lineEnd,severity:e.severity,category:e.category,shortDescription:e.shortDescription,agent:e.agent,...e.rule&&{rule:e.rule}}}function z0(e,t,r){let s=new Set,i=[],n=new Map(e.map(h=>[h.id,h])),o=new Map(t.map(h=>[h.id,h])),a=new Set(r.map(h=>h.id));for(let h of t){if(a.has(h.id))continue;let m=n.get(h.id)?.confidence??100,g=h.confidence-m;h.confidence<50?i.push(Hf(h.id,h.confidence,"low-confidence",{threshold:50})):g<-40?i.push(Hf(h.id,h.confidence,"negative-delta",{delta:g,originalConfidence:m})):s.add(h.id)}let u=[...r,...i],l=new Set(u.map(h=>h.id));for(let h of e){if(s.has(h.id)||l.has(h.id))continue;let p=Hf(h.id,0,"low-confidence",{threshold:50});u.push({...p,reason:W_}),l.add(h.id)}let c=new Map(u.map(h=>[h.id,h])),f=e.map(h=>{let p=c.get(h.id);if(p)return K0(h,"filtered",p.confidence,p.reason);let m=o.get(h.id);return K0(h,"kept",m?.confidence??h.confidence??100,m?.reason??"\u9A8C\u8BC1\u5668\u786E\u8BA4\u8BE5\u95EE\u9898\u6210\u7ACB\uFF0C\u4F46\u672A\u63D0\u4F9B\u539F\u56E0")});return{finalValidIds:s,deltaFilteredIssues:i,mergedFilteredIssues:u,validationSummary:{total:e.length,keptCount:s.size,filteredCount:e.length-s.size,decisions:f},issueMap:n}}function K_(e,t=120){return e.length>t?`${e.slice(0,t-1)}\u2026`:e}function z_(e){return[`\u9A8C\u8BC1\u7ED3\u8BBA\uFF1A\u4FDD\u7559 ${e.keptCount}\uFF0C\u8FC7\u6EE4 ${e.filteredCount}`,...e.decisions.map(t=>{let r=t.status==="kept"?"\u2713":"\xD7",s=t.status==="kept"?"\u4FDD\u7559":"\u8FC7\u6EE4";return` ${r} [${t.id}] ${t.file}:${t.lineStart} ${s}\uFF08${t.confidence}%\uFF09\uFF1A${K_(t.reason)}`})]}function J0(){return{id:"validation",name:"Validation",description:"\u590D\u6838\u95EE\u9898\u5E76\u8FC7\u6EE4\u8BEF\u62A5",enabled:!0,order:5,execute:async e=>{let t=Date.now();if(e.skipValidation)return e.quiet||d.sync("\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5\uFF08--skip-validation\uFF09"),{stageId:"validation",stageName:"Validation",success:!0,duration:Date.now()-t};let r=e.issues;if(r.length===0)return e.quiet||d.sync("\u6CA1\u6709\u9700\u8981\u9A8C\u8BC1\u7684\u95EE\u9898"),{stageId:"validation",stageName:"Validation",success:!0,duration:Date.now()-t};let s=r.map((R,W)=>({...R,id:W+1}));if(!e.config){let R="Pipeline \u4E0A\u4E0B\u6587\u4E2D\u7684 config \u5C1A\u672A\u521D\u59CB\u5316";return d.error(R),{stageId:"validation",stageName:"Validation",success:!1,duration:0,error:R}}let i=e.config,[n,o,a]=await Promise.all([L0(e.metadata.repository),xa(),N0()]),u=i.workflows?.validation,l=i.executor,c=e.modelOverride;if(u&&u.length>0){let R=u[u.length-1];R&&(c=e.modelOverride||R.model),e.quiet||d.info(`Workflow \u6A21\u5F0F\uFF1A\u4F7F\u7528 ${l}${c?`\uFF08\u6A21\u578B\uFF1A${c}\uFF09`:""} \u6267\u884C\u9A8C\u8BC1`)}let f=l,p=(i.executors?.[f]||{}).validation||{},m=c??(typeof p.model=="string"?p.model:void 0),g={...Ge({executorOverride:f,modelOverride:m,config:i}),...p,...m&&{model:m}},D=g.batchSize??6,b=g.concurrency??e.concurrency,w={...n,executor:f,executorSettings:{...g,...n.executorSettings??{},model:g.model}},v=M0(w,e,f);if(!v)return{stageId:"validation",stageName:"Validation",success:!0,duration:Date.now()-t};let E=c?{...e,modelOverride:c}:e,C=c0(s,D),x=v.model;e.quiet||(d.sync(`\u6B63\u5728\u9A8C\u8BC1 ${r.length} \u4E2A\u95EE\u9898...`),e.verbose&&d.plain(` \u6267\u884C\u5668\uFF1A${v.name}${x?`\uFF08\u6A21\u578B\uFF1A${x}\uFF09`:""}`));let F=!e.quiet&&!e.stream&&!e.verbose?new Ds:void 0;F&&(F.addTask("validation","Validation",C.length,r.length,1,`${r.length} \u4E2A\u95EE\u9898`),F.start());try{let R,W=Kt(b);R=await Promise.all(C.map((U,ue)=>W(()=>H0(U,ue,C.length,w,v,E,o,a,F))));let ae=zt();for(let U of R)ae=kr(ae,U.usage,{cacheHit:U.cacheHit});if(e.usage=Sn([e.usage,ae]),F?.stop(),!f0(R)){let U=d0(R),ue=Va(U.map(ke=>ke.error));return{stageId:"validation",stageName:"Validation",success:!1,duration:Date.now()-t,error:ue}}let K=R.flatMap(U=>U.validatedIssues),I=R.flatMap(U=>U.filteredIssues),{finalValidIds:L,deltaFilteredIssues:Q,mergedFilteredIssues:re,validationSummary:z,issueMap:J}=z0(s,K,I);for(let U of re){let ue=J.get(U.id);ue&&ot(e,{stageId:"validation",stageName:"Validation",action:"filtered",reason:U.reason,issue:ue})}e.issues=s.filter(U=>L.has(U.id)),e.validation=z;let fe=L.size,se=r.length-fe,Y=Date.now()-t;if(!e.quiet){let U=Q.length,ue=I.length;U>0?d.done(`\u9A8C\u8BC1\u5B8C\u6210\uFF1A${fe} \u4E2A\u6709\u6548\uFF0C${ue} \u4E2A\u88AB\u9A8C\u8BC1\u5668\u8FC7\u6EE4\uFF0C${U} \u4E2A\u56E0\u7F6E\u4FE1\u5EA6\u53D8\u5316\u8FC7\u6EE4\uFF08${Y}ms\uFF09`):d.done(`\u9A8C\u8BC1\u5B8C\u6210\uFF1A${fe} \u4E2A\u6709\u6548\uFF0C${se} \u4E2A\u88AB\u8FC7\u6EE4\uFF08${Y}ms\uFF09`),d.newline();for(let ke of z_(z))d.plain(ke);if(e.verbose&&re.length>0){d.newline(),d.plain("\u88AB\u8FC7\u6EE4\u7684\u95EE\u9898\uFF1A");for(let ke of re){let Qt=J.get(ke.id);Qt?d.plain(` [${ke.id}] ${Qt.file}:${Qt.lineStart} \u2014 ${ke.reason}`):d.plain(` [${ke.id}] \u2014 ${ke.reason}`)}}}return{stageId:"validation",stageName:"Validation",success:!0,duration:Y,output:{validCount:fe,filteredCount:se,filteredIssues:re,deltaFilteredCount:Q.length,decisions:z.decisions}}}catch(R){F?.stop();let W=R instanceof Error?R.message:String(R);return e.quiet||d.error(`\u9A8C\u8BC1\u9636\u6BB5\u9519\u8BEF\uFF1A${W}`),{stageId:"validation",stageName:"Validation",success:!1,duration:Date.now()-t,error:W}}}}}function J_(e){let t=new Set;for(let r of e.diffs)t.add(r.file),r.oldPath&&t.add(r.oldPath),r.newPath&&t.add(r.newPath);return t}function Y0(){return{id:"gitlab-mr-issue-filter",name:"GitLab MR Issue Filter",description:"\u8FC7\u6EE4\u6389\u4E0D\u5C5E\u4E8E MR \u53D8\u66F4\u6587\u4EF6\u7684 issue",enabled:!0,order:7,execute:async e=>{let t=Date.now();if(e.metadata.reviewTarget?.kind!=="gitlab-mr")return{stageId:"gitlab-mr-issue-filter",stageName:"GitLab MR Issue Filter",success:!0,duration:Date.now()-t,output:{skipped:!0}};let r=J_(e),s=e.issues.length;e.issues=e.issues.filter(n=>r.has(n.file)?!0:(ot(e,{stageId:"gitlab-mr-issue-filter",stageName:"GitLab MR Issue Filter",action:"filtered",reason:`issue.file=${n.file} \u4E0D\u5C5E\u4E8E\u5F53\u524D MR \u53D8\u66F4\u6587\u4EF6`,issue:n}),!1));let i=s-e.issues.length;return{stageId:"gitlab-mr-issue-filter",stageName:"GitLab MR Issue Filter",success:!0,duration:Date.now()-t,output:{totalBefore:s,totalAfter:e.issues.length,filtered:i}}}}}var ew=require("node:child_process"),ri=require("node:fs/promises"),$t=require("node:path");Ve();M();var Y_=5,Z_=6e4,Z0=3e4;function tw(e,t){let r=process.env[e];if(!r)return t;let s=Number.parseInt(r,10);return Number.isNaN(s)||s<1?t:s}function X_(e){let t=new Set,r=[];for(let s of e){let i=`${s.file}:${s.lineStart}:${s.lineEnd}:${s.severity}:${s.shortDescription}`;t.has(i)||(t.add(i),r.push(s))}return r}function rw(e){let t=new Set;for(let r of e.split(`
365
+ `)){let s=r.match(/^diff --git a\/(.+?) b\/(.+)$/);s?.[1]&&t.add(s[1]),s?.[2]&&t.add(s[2])}return[...t]}function Kf(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function Q_(e){let t=e.match(/<patch>\s*([\s\S]*?)\s*<\/patch>/i);if(t?.[1]?.trim())return t[1].trim();let r=e.match(/```(?:diff|patch)?\s*([\s\S]*?)```/i);if(r?.[1]?.includes("diff --git"))return r[1].trim();let s=e.indexOf("diff --git ");return s>=0?e.slice(s).trim():null}function zf(e,t){let r=(0,$t.resolve)(e,t),s=(0,$t.relative)(e,r);return!s||s.startsWith("..")||(0,$t.isAbsolute)(s)?null:r}function eT(e){return e.trim().split(/\s+/)[0]?.replace(/^[ab]\//,"")??""}function tT(e,t,r){if(/^GIT binary patch$/m.test(e)||/^Binary files /m.test(e))throw new Error("\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5305\u542B\u4E8C\u8FDB\u5236\u53D8\u66F4\uFF0C\u5DF2\u62D2\u7EDD\u5E94\u7528");if(/^(new file mode|deleted file mode|rename from|rename to|copy from|copy to) /m.test(e)||/^--- \/dev\/null$/m.test(e)||/^\+\+\+ \/dev\/null$/m.test(e))throw new Error("\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5305\u542B\u65B0\u589E\u3001\u5220\u9664\u3001\u91CD\u547D\u540D\u6216\u590D\u5236\u6587\u4EF6\uFF0C\u5DF2\u62D2\u7EDD\u5E94\u7528");let s=new Set(r.map(Kf)),i=rw(e).map(Kf);if(i.length===0)throw new Error("\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u6CA1\u6709\u58F0\u660E\u53EF\u4FEE\u6539\u6587\u4EF6");for(let n of i){if(!s.has(n))throw new Error(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u8BD5\u56FE\u4FEE\u6539\u975E\u76EE\u6807\u6587\u4EF6\uFF1A${n}`);if(!zf(t,n))throw new Error(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5305\u542B\u4E0D\u5B89\u5168\u8DEF\u5F84\uFF1A${n}`)}for(let n of e.split(`
366
+ `)){if(!n.startsWith("--- ")&&!n.startsWith("+++ "))continue;let o=eT(n.slice(4));if(!o||o==="/dev/null")continue;let a=Kf(o);if(!s.has(a))throw new Error(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u8BD5\u56FE\u4FEE\u6539\u975E\u76EE\u6807\u6587\u4EF6\uFF1A${a}`);if(!zf(t,a))throw new Error(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5305\u542B\u4E0D\u5B89\u5168\u8DEF\u5F84\uFF1A${a}`)}}function rT(e,t){return(0,$t.isAbsolute)(t)?t:(0,$t.resolve)(e,t)}async function sT(e,t,r){let s=rT(e,t);return await(0,ri.mkdir)((0,$t.dirname)(s),{recursive:!0}),await(0,ri.writeFile)(s,r.endsWith(`
367
367
  `)?r:`${r}
368
- `,"utf-8"),s}async function eT(e,t){let r=ew("BEST_REVIEW_FIX_MAX_FILE_CHARS",H_),s=Array.from(new Set(t.map(n=>n.file))),i={};for(let n of s){let o=zf(e,n);if(o)try{let a=await(0,ri.readFile)(o,"utf-8");i[n]=a.length>r?`${a.slice(0,r)}
368
+ `,"utf-8"),s}async function iT(e,t){let r=tw("BEST_REVIEW_FIX_MAX_FILE_CHARS",Z_),s=Array.from(new Set(t.map(n=>n.file))),i={};for(let n of s){let o=zf(e,n);if(o)try{let a=await(0,ri.readFile)(o,"utf-8");i[n]=a.length>r?`${a.slice(0,r)}
369
369
 
370
370
  /* best-review: \u6587\u4EF6\u5185\u5BB9\u8D85\u8FC7 ${r} \u5B57\u7B26\uFF0C\u540E\u7EED\u5DF2\u7701\u7565 */
371
- `:a}catch(a){i[n]=`/* best-review: \u8BFB\u53D6\u6587\u4EF6\u5931\u8D25\uFF1A${a instanceof Error?a.message:String(a)} */`}}return i}function tT(e,t){let r=e.map((i,n)=>({id:n+1,file:i.file,lineStart:i.lineStart,lineEnd:i.lineEnd,severity:i.severity,category:i.category,shortDescription:i.shortDescription,fullDescription:i.fullDescription,evidence:i.evidence,suggestion:i.suggestion,rule:i.rule})),s=Object.entries(t).map(([i,n])=>`## ${i}
371
+ `:a}catch(a){i[n]=`/* best-review: \u8BFB\u53D6\u6587\u4EF6\u5931\u8D25\uFF1A${a instanceof Error?a.message:String(a)} */`}}return i}function nT(e,t){let r=e.map((i,n)=>({id:n+1,file:i.file,lineStart:i.lineStart,lineEnd:i.lineEnd,severity:i.severity,category:i.category,shortDescription:i.shortDescription,fullDescription:i.fullDescription,evidence:i.evidence,suggestion:i.suggestion,rule:i.rule})),s=Object.entries(t).map(([i,n])=>`## ${i}
372
372
 
373
373
  \`\`\`
374
374
  ${n}
@@ -380,7 +380,7 @@ ${JSON.stringify(r,null,2)}
380
380
 
381
381
  # Current File Contents
382
382
 
383
- ${s}`}function rT(){return`\u4F60\u662F best-review \u7684\u81EA\u52A8\u4FEE\u590D\u6267\u884C\u5668\u3002\u8BF7\u53EA\u4FEE\u590D\u8F93\u5165\u4E2D\u5217\u51FA\u7684\u4E25\u91CD\u98CE\u9669\uFF0C\u4E0D\u8981\u91CD\u6784\u65E0\u5173\u4EE3\u7801\u3002
383
+ ${s}`}function oT(){return`\u4F60\u662F best-review \u7684\u81EA\u52A8\u4FEE\u590D\u6267\u884C\u5668\u3002\u8BF7\u53EA\u4FEE\u590D\u8F93\u5165\u4E2D\u5217\u51FA\u7684\u4E25\u91CD\u98CE\u9669\uFF0C\u4E0D\u8981\u91CD\u6784\u65E0\u5173\u4EE3\u7801\u3002
384
384
 
385
385
  \u8981\u6C42\uFF1A
386
386
  - \u8F93\u51FA\u4E00\u4E2A\u53EF\u88AB git apply \u5E94\u7528\u7684 unified diff\u3002
@@ -388,55 +388,55 @@ ${s}`}function rT(){return`\u4F60\u662F best-review \u7684\u81EA\u52A8\u4FEE\u59
388
388
  - \u53EA\u4FEE\u6539\u548C\u76EE\u6807\u95EE\u9898\u76F4\u63A5\u76F8\u5173\u7684\u6700\u5C0F\u4EE3\u7801\u3002
389
389
  - \u4E0D\u8981\u65B0\u589E\u89E3\u91CA\u3001\u603B\u7ED3\u3001Markdown \u6807\u9898\u6216\u989D\u5916\u6587\u672C\u3002
390
390
  - \u5982\u679C\u65E0\u6CD5\u5B89\u5168\u4FEE\u590D\uFF0C\u8F93\u51FA <patch></patch>\u3002
391
- - \u5C06\u5B8C\u6574\u8865\u4E01\u5305\u88F9\u5728 <patch>...</patch> \u4E2D\u3002`}async function Z0(e,t,r){let s=["apply","--whitespace=nowarn","--recount"];r.checkOnly&&s.push("--check"),s.push("-"),await new Promise((i,n)=>{let o=(0,Q0.spawn)("git",s,{cwd:t}),a=[],u=setTimeout(()=>{o.kill(),n(new Error(`git apply \u5728 ${Y0/1e3}s \u540E\u8D85\u65F6`))},Y0);o.stderr.on("data",l=>a.push(Buffer.isBuffer(l)?l:Buffer.from(l))),o.on("error",l=>{clearTimeout(u),n(l)}),o.on("close",l=>{if(clearTimeout(u),l===0){i();return}n(new Error(Buffer.concat(a).toString("utf-8")||`git apply \u9000\u51FA\u7801 ${l}`))}),o.stdin.end(e.endsWith(`
391
+ - \u5C06\u5B8C\u6574\u8865\u4E01\u5305\u88F9\u5728 <patch>...</patch> \u4E2D\u3002`}async function X0(e,t,r){let s=["apply","--whitespace=nowarn","--recount"];r.checkOnly&&s.push("--check"),s.push("-"),await new Promise((i,n)=>{let o=(0,ew.spawn)("git",s,{cwd:t}),a=[],u=setTimeout(()=>{o.kill(),n(new Error(`git apply \u5728 ${Z0/1e3}s \u540E\u8D85\u65F6`))},Z0);o.stderr.on("data",l=>a.push(Buffer.isBuffer(l)?l:Buffer.from(l))),o.on("error",l=>{clearTimeout(u),n(l)}),o.on("close",l=>{if(clearTimeout(u),l===0){i();return}n(new Error(Buffer.concat(a).toString("utf-8")||`git apply \u9000\u51FA\u7801 ${l}`))}),o.stdin.end(e.endsWith(`
392
392
  `)?e:`${e}
393
- `)})}function ti(e,t={}){return{enabled:!!(e.fixSeverities&&e.fixSeverities.length>0),dryRun:!!e.fixDryRun,targetSeverities:e.fixSeverities??[],targetIssueCount:0,changedFiles:[],applied:!1,...t}}function X0(e){return/git apply|patch failed|补丁/i.test(e)?"\u5EFA\u8BAE\u5148\u7528 --fix-dry-run \u751F\u6210\u5E76\u6821\u9A8C\u8865\u4E01\uFF0C\u68C0\u67E5\u5DE5\u4F5C\u533A\u662F\u5426\u5DF2\u6709\u51B2\u7A81\u6216\u6587\u4EF6\u5DF2\u53D8\u66F4\uFF1B\u5FC5\u8981\u65F6\u6309\u5BA1\u67E5\u62A5\u544A\u4E2D\u7684\u4FEE\u590D\u5EFA\u8BAE\u624B\u52A8\u5904\u7406\u3002":/API|执行器|模型|key|baseUrl|timeout|超时/i.test(e)?"\u5EFA\u8BAE\u8FD0\u884C best-review init \u68C0\u67E5 API key\u3001baseUrl \u548C\u6A21\u578B\u914D\u7F6E\uFF0C\u6216\u7528 --executor/--model \u4E34\u65F6\u5207\u6362\u53EF\u7528\u6A21\u578B\u540E\u91CD\u8BD5\u3002":"\u5EFA\u8BAE\u5148\u7528 --fix-dry-run \u91CD\u8BD5\u67E5\u770B\u8865\u4E01\u662F\u5426\u53EF\u751F\u6210\uFF1B\u5982\u679C\u4ECD\u5931\u8D25\uFF0C\u8BF7\u5207\u6362\u66F4\u5F3A\u6A21\u578B\u6216\u6309\u62A5\u544A\u4E2D\u7684 suggestion \u624B\u52A8\u4FEE\u590D\u3002"}function sT(e){return e.fixDryRun?e.fixPatchFile?"dry-run \u5DF2\u5B8C\u6210\uFF0C\u5EFA\u8BAE\u68C0\u67E5\u8865\u4E01\u5185\u5BB9\uFF1B\u786E\u8BA4\u65E0\u8BEF\u540E\u53BB\u6389 --fix-dry-run \u91CD\u65B0\u8FD0\u884C\uFF0C\u6216\u624B\u52A8 git apply \u8865\u4E01\u6587\u4EF6\u3002":"dry-run \u5DF2\u5B8C\u6210\uFF0C\u5EFA\u8BAE\u68C0\u67E5 JSON/report \u4E2D\u7684 autofix.patch\uFF1B\u786E\u8BA4\u65E0\u8BEF\u540E\u53BB\u6389 --fix-dry-run \u91CD\u65B0\u8FD0\u884C\u3002":"\u5DF2\u5199\u5165\u4FEE\u590D\u8865\u4E01\uFF0C\u5EFA\u8BAE\u8FD0\u884C\u9879\u76EE\u6D4B\u8BD5\u5E76\u91CD\u65B0\u6267\u884C best-review review\uFF0C\u786E\u8BA4\u4E25\u91CD\u98CE\u9669\u5DF2\u6D88\u9664\u3002"}function rw(){return{id:"autofix",name:"Autofix",description:"\u6309\u9700\u4FEE\u590D\u4E25\u91CD\u98CE\u9669",enabled:!0,order:7,execute:async e=>{let t=Date.now();if(!e.fixSeverities||e.fixSeverities.length===0)return e.autofix=ti(e),{stageId:"autofix",stageName:"Autofix",success:!0,duration:Date.now()-t,output:e.autofix};if(e.skipValidation){let o="\u81EA\u52A8\u4FEE\u590D\u9700\u8981\u5148\u5B8C\u6210\u9A8C\u8BC1\u9636\u6BB5\uFF0C\u4E0D\u80FD\u4E0E --skip-validation \u540C\u65F6\u4F7F\u7528";return e.autofix=ti(e,{error:o,suggestion:"\u8BF7\u79FB\u9664 --skip-validation \u540E\u91CD\u8BD5\uFF1B\u5982\u679C\u53EA\u60F3\u9884\u89C8\u8865\u4E01\uFF0C\u53EF\u4F7F\u7528 --fix-dry-run\u3002"}),{stageId:"autofix",stageName:"Autofix",success:!1,duration:Date.now()-t,error:o,output:e.autofix}}let r=e.fixMaxIssues??ew("BEST_REVIEW_FIX_MAX_ISSUES",K_),s=new Set(e.fixSeverities),i=z_(e.issues.filter(o=>s.has(o.severity))).slice(0,r);if(i.length===0)return e.autofix=ti(e),e.quiet||d.info("\u81EA\u52A8\u4FEE\u590D\uFF1A\u6CA1\u6709\u547D\u4E2D\u6307\u5B9A\u4E25\u91CD\u7EA7\u522B\u7684\u95EE\u9898"),{stageId:"autofix",stageName:"Autofix",success:!0,duration:Date.now()-t,output:e.autofix};if(!e.config){let o="Pipeline \u4E0A\u4E0B\u6587\u4E2D\u7684 config \u5C1A\u672A\u521D\u59CB\u5316";return e.autofix=ti(e,{targetIssueCount:i.length,error:o,suggestion:X0(o)}),{stageId:"autofix",stageName:"Autofix",success:!1,duration:0,error:o}}e.quiet||d.sync(`\u81EA\u52A8\u4FEE\u590D\uFF1A\u51C6\u5907\u5904\u7406 ${i.length} \u4E2A ${e.fixSeverities.join(",")} \u95EE\u9898...`);let n;try{let o=e.config.executor,a=ge.get(o);if(!a)throw new Error(`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${o}`);let u={...Us(e.config),...e.config.executors[o]?.review??{}},l=a.applySettings?a.applySettings(u):a.getInfo(),c=await eT(e.metadata.repository,i),f={name:"autofix",description:"\u81EA\u52A8\u4FEE\u590D\u4E25\u91CD\u98CE\u9669",systemPrompt:rT(),enabled:!0,order:99,executor:o},h=await ge.executeAgent({agent:f,executor:l,input:tT(i,c),systemPrompt:f.systemPrompt,quiet:e.quiet,verbose:e.verbose,cwd:e.metadata.repository,modelOverride:e.modelOverride,outputMode:"text"});if(e.usage=kr(e.usage??Ht(),h.usage,{cacheHit:h.cacheHit}),!h.success)throw new Error(h.error||"\u6A21\u578B\u672A\u80FD\u751F\u6210\u4FEE\u590D\u8865\u4E01");let p=J_(h.output);if(!p)throw new Error("\u6A21\u578B\u6CA1\u6709\u8FD4\u56DE unified diff \u8865\u4E01");Z_(p,e.metadata.repository,i.map(g=>g.file)),n=e.fixPatchFile?await Q_(e.metadata.repository,e.fixPatchFile,p):void 0,await Z0(p,e.metadata.repository,{checkOnly:!0}),e.fixDryRun||await Z0(p,e.metadata.repository,{checkOnly:!1});let m=tw(p);if(e.autofix=ti(e,{targetIssueCount:i.length,changedFiles:m,applied:!e.fixDryRun,patch:p,...n&&{patchPath:n},suggestion:sT(e)}),!e.quiet){let g=e.fixDryRun?"\u8865\u4E01\u6821\u9A8C\u901A\u8FC7\uFF08\u672A\u5199\u5165\uFF09":"\u8865\u4E01\u5DF2\u5E94\u7528";d.success(`\u81EA\u52A8\u4FEE\u590D\uFF1A${g}\uFF0C\u5F71\u54CD ${m.length} \u4E2A\u6587\u4EF6`),n&&d.info(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5DF2\u4FDD\u5B58\uFF1A${n}`)}return{stageId:"autofix",stageName:"Autofix",success:!0,duration:Date.now()-t,output:e.autofix}}catch(o){let a=o instanceof Error?o.message:String(o);return e.autofix=ti(e,{targetIssueCount:i.length,error:a,...n&&{patchPath:n},suggestion:X0(a)}),{stageId:"autofix",stageName:"Autofix",success:!1,duration:Date.now()-t,error:`\u81EA\u52A8\u4FEE\u590D\u5931\u8D25\uFF1A${a}`,output:e.autofix}}}}}var pw=require("node:child_process"),Ce=require("node:fs/promises"),Oe=require("node:path"),Xa=require("node:crypto"),mw=require("node:util");M();var j={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m",green:"\x1B[32m",gray:"\x1B[90m"},iw=["critical","high","medium","low"],iT={critical:"\u4E25\u91CD",high:"\u9AD8",medium:"\u4E2D",low:"\u4F4E"},Rn={critical:"\u4E25\u91CD\u98CE\u9669",high:"\u9AD8\u98CE\u9669",medium:"\u4E2D\u98CE\u9669",low:"\u4F4E\u98CE\u9669"};function nT(e){switch(e){case"critical":return j.red;case"high":return j.yellow;case"medium":return j.blue;case"low":return j.cyan}}function oT(e){switch(e){case"critical":return"\u2717";case"high":return"\u26A0";case"medium":return"\u25CB";case"low":return"\u25C7"}}function aT(e){switch(e){case"security":return"\u{1F512}";case"performance":return"\u26A1";case"bug":return"\u2715";case"quality":return"\u2728";case"style":return"\u{1F3A8}";case"docs":return"\u{1F4DD}"}}function Jf(e){return iw.indexOf(e)}function Za(e){let t={critical:0,high:0,medium:0,low:0};for(let s of e)t[s.severity]+=1;return{overall:iw.find(s=>t[s]>0)??"none",counts:t,labels:Rn}}function nw(e){let t=Za(e);return t.overall==="none"?"\u98CE\u9669\u7ED3\u8BBA\uFF1A\u672A\u53D1\u73B0\u98CE\u9669":`\u98CE\u9669\u7ED3\u8BBA\uFF1A\u4E25\u91CD ${t.counts.critical}\uFF0C\u9AD8 ${t.counts.high}\uFF0C\u4E2D ${t.counts.medium}\uFF0C\u4F4E ${t.counts.low}\uFF1B\u6574\u4F53\u98CE\u9669\uFF1A${iT[t.overall]}`}function An(e){return[...e].sort((t,r)=>{let s=Jf(t.severity),i=Jf(r.severity);return s-i})}function uT(e,t=!1){let r=nT(e.severity),s=oT(e.severity),i=aT(e.category),n=[];return t?n.push(`${s} ${j.bold}${e.file}:${e.lineStart}${j.reset} - ${r}${e.shortDescription}${j.reset}`):(n.push(""),n.push(`${s} ${r}${j.bold}${Rn[e.severity]}${j.reset} ${i} ${j.dim}${e.category}${j.reset}`),n.push(`${j.bold}${e.file}${j.reset}:${j.cyan}${e.lineStart}${e.lineEnd!==e.lineStart?`-${e.lineEnd}`:""}${j.reset}`),n.push(""),n.push(`${j.bold}${e.shortDescription}${j.reset}`),e.fullDescription&&e.fullDescription!==e.shortDescription&&(n.push(""),n.push(`${j.dim}${e.fullDescription}${j.reset}`)),e.evidence&&(n.push(""),n.push(`${j.yellow}\u2192 \u9519\u8BEF\u70B9\uFF1A${j.reset}`),n.push(`${j.dim}${e.evidence}${j.reset}`)),e.suggestion&&(n.push(""),n.push(`${j.green}\u2192 \u5EFA\u8BAE\uFF1A${j.reset}`),n.push(`${j.dim}${e.suggestion}${j.reset}`)),n.push(""),n.push(`${j.gray}Agent\uFF1A${e.agent}${j.reset}`),e.rule&&n.push(`${j.gray}\u89C4\u5219\uFF1A${e.rule}${j.reset}`),e.confidence!==void 0&&n.push(`${j.gray}\u7F6E\u4FE1\u5EA6\uFF1A${e.confidence}%${j.reset}`),n.push(""),n.push(j.gray+"\u2500".repeat(80)+j.reset)),n.join(`
394
- `)}function ow(e){let t=new Map;for(let r of e){let s=t.get(r.file)||[];s.push(r),t.set(r.file,s)}return t}function sw(e){return Math.min(...e.map(t=>Jf(t.severity)))}function aw(e){if(e.length===0)return`${j.green}\u2713 \u6CA1\u6709\u53D1\u73B0\u95EE\u9898 \u{1F389}${j.reset}`;let t=ow(e),r=[];r.push(""),r.push(`${j.bold}\u5728 ${t.size} \u4E2A\u6587\u4EF6\u4E2D\u53D1\u73B0 ${e.length} \u4E2A\u95EE\u9898${j.reset}`),r.push("");let s=Array.from(t.entries()).sort(([,i],[,n])=>sw(i)-sw(n));for(let[i,n]of s){r.push(`${j.bold}${j.cyan}${i}${j.reset} ${j.dim}\uFF08${n.length} \u4E2A\u95EE\u9898\uFF09${j.reset}`),r.push("");let o=An(n);for(let a of o)r.push(uT(a,!1))}return r.join(`
395
- `)}function Yf(e,t,r,s,i,n,o,a,u,l,c){let f=e.filter(F=>F.severity==="critical").length,h=e.filter(F=>F.severity==="high").length,p=e.filter(F=>F.severity==="medium").length,m=e.filter(F=>F.severity==="low").length,g=Za(e),D=An(e),b=ow(D),w=Array.from(b.entries()).map(([F,R])=>({file:F,issueCount:R.length,issues:An(R)})),v=o?.qualityScore.score??null,E=o?.qualityScore.status??"valid",C=o?.qualityScore.reason,x=o?.rawIssues??e,$=o?.finalIssues??e;return{success:t,totalDuration:r,...l!==void 0&&{commandDuration:l},qualityScore:v,qualityScoreStatus:E,...C&&{qualityScoreReason:C},stats:{totalIssues:e.length,critical:f,high:h,medium:p,low:m,filesAnalyzed:n,agentsExecuted:s,agentsSucceeded:i,agentsFailed:s-i},riskSummary:g,reviewSummary:{agentExecutions:o?.agentExecutions??{total:s,succeeded:i,failed:s-i},findingCounts:o?.findingCounts??{raw:x.length,afterConfidence:$.length,afterValidation:$.length,final:$.length}},rawIssues:An(x),finalIssues:An($),issues:D,files:w,...a&&{autofix:a},...u&&{usage:u},...c&&{validation:c}}}function uw(e,t,r,s,i,n,o,a,u,l,c){return JSON.stringify(Yf(e,t,r,s,i,n,o,a,u,l,c),null,2)}function lw(e,t){let r=t?.qualityScore??{base:100,min:0,weights:{critical:40,high:15,medium:6,low:2},categoryWeights:{security:1.2,bug:1,performance:.8,quality:.7,style:.4,docs:.3}},s=e.reduce((i,n)=>{let o=r.weights[n.severity]??0,a=r.categoryWeights[n.category]??1;return i+o*a},0);return{score:Math.max(r.min,Math.round(r.base-s)),base:r.base,min:r.min,deductions:s,totalIssues:e.length,weights:{severity:r.weights,category:r.categoryWeights}}}function cw(e,t){return e.find(r=>r.stageId===t)}function lT(e,t){if(e===0)return"\u6CA1\u6709\u4EFB\u4F55 Agent \u6210\u529F\u6267\u884C";let r=t.find(s=>!s.success&&s.stageId!=="reporting");if(r)return`\u6838\u5FC3\u9636\u6BB5\u5931\u8D25\uFF1A${r.stageName}`}function si(e){let t=e.stageResults??[],r=e.results.flatMap(f=>f.issues),s=e.issues,i={total:e.results.length,succeeded:e.results.filter(f=>f.success).length,failed:e.results.filter(f=>!f.success).length},n=cw(t,"confidence-filter")?.output,a=cw(t,"validation")?.output,u={raw:r.length,afterConfidence:typeof n?.totalAfter=="number"?n.totalAfter:r.length,afterValidation:e.skipValidation===!0?null:typeof a?.validCount=="number"?a.validCount:s.length,final:s.length},l=lT(i.succeeded,t);if(l)return{agentExecutions:i,findingCounts:u,qualityScore:{status:"unknown",score:null,reason:l},rawIssues:r,finalIssues:s};let c=lw(s,e.config);return{agentExecutions:i,findingCounts:u,qualityScore:{status:"valid",score:c.score,details:c},rawIssues:r,finalIssues:s}}Ge();Ee();var fw="https://git.bestfulfill.tech/jericho/review-history.git",dw="review-log",cT="https://git.bestfulfill.tech",fT="glpat-DnwLvmjayV9mjwz2WucX";function kn(e=process.env){return e.GITLAB_HOST?.trim()||cT}function ii(e=process.env){return e.BEST_REVIEW_HISTORY_USER_TOKEN?.trim()||fT}var dT=(0,mw.promisify)(pw.execFile),hT="\u5DF2\u5F00\u542F\u5BA1\u67E5\u5386\u53F2\u5F52\u6863\uFF0C\u4F46\u672A\u914D\u7F6E BEST_REVIEW_HISTORY_REMOTE \u6216 reporting.historyRemote\u3002\u8BF7\u663E\u5F0F\u8BBE\u7F6E\u81EA\u5DF1\u7684\u5BA1\u67E5\u5386\u53F2\u4ED3\u5E93\u8FDC\u7A0B\u5730\u5740\u3002",pT="review-log",mT=6e4;function gT(e){return{critical:e.filter(t=>t.severity==="critical").length,high:e.filter(t=>t.severity==="high").length,medium:e.filter(t=>t.severity==="medium").length,low:e.filter(t=>t.severity==="low").length}}function DT(e){return{file:e.file,status:e.status,additions:e.additions,deletions:e.deletions,...e.hash&&{hash:e.hash}}}function yT(e){let t=e.config?.reporting??{},r=process.env.BEST_REVIEW_REPORT_URL||t.url,s=process.env.BEST_REVIEW_REPORT_TOKEN||t.token,i=process.env.BEST_REVIEW_REPORT_DIR||t.localDir||gw();return{enabled:!!process.env.BEST_REVIEW_REPORT_URL||t.enabled===!0,url:r,token:s,localDir:i,includeDiffs:process.env.BEST_REVIEW_REPORT_INCLUDE_DIFFS==="true"||t.includeDiffs,failOnError:process.env.BEST_REVIEW_REPORT_FAIL_ON_ERROR==="true"||t.failOnError,historyEnabled:t.historyEnabled===!0,historyRemote:t.historyRemote,historyBranch:t.historyBranch}}function gw(){return yt("reports")}function wT(e,t){return(0,Oe.isAbsolute)(t)?t:(0,Oe.join)(e.metadata.repository,t)}function In(e){return String(e).padStart(2,"0")}function Dw(e=new Date){return[e.getFullYear(),In(e.getMonth()+1),In(e.getDate()),In(e.getHours()),In(e.getMinutes()),In(e.getSeconds())].join("-")}function bT(e,t){return`${e}-${t.slice(0,8)}.json`}function vT(e){return e?["1","true","yes","on"].includes(e.trim().toLowerCase()):!1}function ET(e){if(Object.prototype.hasOwnProperty.call(process.env,e))return process.env[e]?.trim()??""}function CT(e){return process.env.BEST_REVIEW_HISTORY!==void 0?vT(process.env.BEST_REVIEW_HISTORY):e.historyEnabled===!0}function FT(e){let t=ET("BEST_REVIEW_HISTORY_REMOTE"),r=e.historyRemote?.trim(),s=t||r||(t===void 0?fw:"");if(!s?.trim())throw new Error(hT);return s.trim()}function ST(e){return process.env.BEST_REVIEW_HISTORY_BRANCH?.trim()||e.historyBranch?.trim()||dw||pT}function xT(e,t){return e.metadata.reviewTarget?.kind==="gitlab-mr"?!1:CT(t)}function AT(e){let t=e.trim(),r=(/^https?:\/\//i.test(t)?t:`https://${t}`).replace(/\/+$/,"");return/\/api\/v\d+$/i.test(r)?r:`${r}/api/v4`}function RT(e){let t=e.trim();if(!t)return{};try{let s=new URL(t),i=s.protocol==="ssh:"?s.pathname.replace(/^\/+/,""):s.pathname.slice(1);return{host:s.hostname,projectPath:i.replace(/\.git$/i,"").replace(/\/+$/,"")}}catch{}let r=t.match(/^(?:[^@]+@)?([^:]+):(.+)$/);return{host:r?.[1],projectPath:r?.[2]?.replace(/\.git$/i,"").replace(/\/+$/,"")}}async function Jt(e,t,r){let{stdout:s}=await dT("git",e,{cwd:t,timeout:mT,env:r?{...process.env,...r}:process.env});return s}async function kT(e,t,r,s){try{await Jt(["clone","--depth","1","--branch",t,e,r],void 0,s)}catch{await(0,Ce.rm)(r,{recursive:!0,force:!0}),await Jt(["clone","--depth","1",e,r],void 0,s),await Jt(["checkout","-B",t],r)}}async function IT(e){try{let t=(await Jt(["remote","get-url","origin"],e)).trim();return RT(t)}catch{return{}}}function _T(e){return(0,Oe.basename)(e)||"unknown-project"}async function TT(e){let t=process.env.GITLAB_PROJECT_PATH||process.env.CI_PROJECT_PATH;if(t?.trim())return{project:t.trim()};let r=await IT(e.metadata.repository);return r.projectPath?{project:r.projectPath,host:r.host}:{project:_T(e.metadata.repository),host:r.host}}async function $T(e,t){try{let r=await It(`${e}/user`,{headers:{"PRIVATE-TOKEN":t}});if(!r.ok)return null;let s=await r.json();return typeof s.username=="string"&&s.username.trim()?s.username.trim():typeof s.name=="string"&&s.name.trim()?s.name.trim():null}catch{return null}}function PT(){let e=kn()||process.env.CI_SERVER_URL||(process.env.CI_SERVER_HOST?`https://${process.env.CI_SERVER_HOST}`:void 0);return e?AT(e):null}function BT(){let e=kn()||process.env.CI_SERVER_URL||(process.env.CI_SERVER_HOST?`https://${process.env.CI_SERVER_HOST}`:void 0);if(!e)return null;try{return new URL(/^https?:\/\//i.test(e)?e:`https://${e}`).hostname}catch{return null}}function yw(){return ii()}async function OT(){let e=process.env.BEST_REVIEW_GITLAB_USER||process.env.GITLAB_USER_LOGIN||process.env.GITLAB_USER_NAME||process.env.GITLAB_USER_EMAIL;if(e?.trim())return e.trim();let t=yw();if(!t)return"unknown";let r=PT();return r&&await $T(r,t)||"unknown"}function LT(e){return/^[a-zA-Z0-9._-]+$/.test(e)}function NT(e,t){let r=process.env.BEST_REVIEW_HISTORY_GIT_TOKEN?.trim()||yw();if(!r)return;let s;try{s=new URL(e)}catch{return}if(!["http:","https:"].includes(s.protocol))return;let i=BT();return!i||s.hostname!==i?void 0:{username:process.env.BEST_REVIEW_HISTORY_GIT_USERNAME?.trim()||process.env.GITLAB_USER_LOGIN?.trim()||(LT(t)&&t!=="unknown"?t:void 0)||"oauth2",token:r}}async function MT(e,t){if(!xT(e,t))return null;let r=await TT(e),s=FT(t),i=await OT();return{remote:s,branch:ST(t),key:{project:r.project,gitlabUser:i},auth:NT(s,i)}}function hw(e,t){return e.trim().replace(/\.git$/i,"").replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||t}function jT(e,t){let r=e.project.split(/[\\/]+/).map((i,n)=>hw(i,`project-${n+1}`)).filter(Boolean),s=hw(e.gitlabUser,"unknown");return Oe.posix.join("projects",...r,s,t)}function qT(){return process.env.BEST_REVIEW_HISTORY_TMP_DIR||yt("tmp")}async function UT(e,t){if(!t)return;let r=(0,Oe.join)(e,`git-askpass-${(0,Xa.randomUUID)()}.sh`);return await(0,Ce.writeFile)(r,["#!/bin/sh",'case "$1" in','*Username*) printf "%s\\n" "$BEST_REVIEW_GIT_USERNAME" ;;','*Password*) printf "%s\\n" "$BEST_REVIEW_GIT_TOKEN" ;;','*) printf "\\n" ;;',"esac",""].join(`
396
- `),"utf-8"),await(0,Ce.chmod)(r,448),{env:{GIT_ASKPASS:r,GIT_TERMINAL_PROMPT:"0",BEST_REVIEW_GIT_USERNAME:t.username,BEST_REVIEW_GIT_TOKEN:t.token},cleanup:()=>(0,Ce.rm)(r,{force:!0})}}async function GT(e,t,r){let s=jT(t.key,r),i=qT();await(0,Ce.mkdir)(i,{recursive:!0});let n=await(0,Ce.mkdtemp)((0,Oe.join)(i,"review-history-")),o;try{o=await UT(i,t.auth),await kT(t.remote,t.branch,n,o?.env),await Jt(["config","user.name","best-review"],n),await Jt(["config","user.email","best-review@git.bestfulfill.tech"],n);let a=(0,Oe.join)(n,...s.split("/"));return await(0,Ce.mkdir)((0,Oe.dirname)(a),{recursive:!0}),await(0,Ce.writeFile)(a,`${JSON.stringify(e,null,2)}
397
- `,"utf-8"),await Jt(["add",s],n),await Jt(["commit","-m",`chore: add review report ${r}`],n),await Jt(["push","origin",`HEAD:${t.branch}`],n,o?.env),{historyUploaded:!0,historyPath:s}}finally{await(0,Ce.rm)(n,{recursive:!0,force:!0}),await o?.cleanup()}}async function VT(e,t,r){if(!r)return{historyUploaded:!1,historySkipped:!0};let s=(0,Oe.basename)(e);try{return await GT(t,r,s)}catch(i){return{historyUploaded:!1,historyError:i instanceof Error?i.message:String(i)}}}async function WT(e,t){if(!t.historyUploaded)return t;try{return await(0,Ce.unlink)(e),{...t,historyLocalDeleted:!0}}catch(r){return{...t,historyLocalDeleted:!1,historyCleanupError:r instanceof Error?r.message:String(r)}}}async function KT(e,t,r,s){let i=await VT(e,t,r);return s?WT(e,i):i}function HT(e,t){let r=si(e),s=r.finalIssues,i=gT(s),n=Za(s),o=e.results.filter(m=>m.success).length,a=e.diffs.reduce((m,g)=>m+g.additions,0),u=e.diffs.reduce((m,g)=>m+g.deletions,0),l=Dw(),c=(0,Xa.randomUUID)(),f=i.critical>0,h=e.config?.executor??qs,p=e.modelOverride??Us(e.config).model;return{schemaVersion:2,eventId:c,runId:c,tool:"best-review",toolVersion:gs.version,generatedAt:l,executor:h,...p&&{model:p},metadata:e.metadata,repository:e.metadata.repository,baseRef:e.metadata.baseRef,headRef:e.metadata.headRef,stats:{totalIssues:s.length,...i,filesAnalyzed:e.diffs.length,filesChanged:e.diffs.length,linesAdded:a,linesDeleted:u,agentsExecuted:e.results.length,agentsSucceeded:o,agentsFailed:e.results.length-o},riskSummary:n,qualityScore:r.qualityScore.score,qualityScoreStatus:r.qualityScore.status,...r.qualityScore.reason&&{qualityScoreReason:r.qualityScore.reason},ciBlocked:f,reviewSummary:{agentExecutions:r.agentExecutions,findingCounts:r.findingCounts},...e.usage&&{usage:e.usage},rawIssues:r.rawIssues,finalIssues:r.finalIssues,...e.autofix&&{autofix:e.autofix},issueAuditTrail:e.issueAuditTrail??[],stages:(e.stageResults??[]).map(m=>({stageId:m.stageId,stageName:m.stageName,success:m.success,duration:m.duration,...m.output!==void 0&&{output:m.output},...m.error&&{error:m.error}})),issues:s,agents:e.results.map(m=>({agent:m.agent,executor:m.executor,success:m.success,duration:m.duration,issueCount:m.issues.length,...m.usage&&{usage:m.usage},...m.error&&{error:m.error}})),diffs:t?e.diffs:e.diffs.map(DT)}}async function zT(e,t,r){let s=wT(e,t.localDir||gw()),i=typeof r.generatedAt=="string"?r.generatedAt:Dw(),n=typeof r.runId=="string"?r.runId:(0,Xa.randomUUID)(),o=(0,Oe.join)(s,bT(i,n));return await(0,Ce.mkdir)(s,{recursive:!0}),await(0,Ce.writeFile)(o,`${JSON.stringify(r,null,2)}
398
- `,"utf-8"),o}async function JT(e,t){if(!t.url)throw new Error("\u672A\u914D\u7F6E Reporting URL");let r={"Content-Type":"application/json"};t.token&&(r.Authorization=`Bearer ${t.token}`);let s=await It(t.url,{method:"POST",headers:r,body:JSON.stringify(e)});if(!s.ok){let i=await s.text();throw new Error(`\u62A5\u544A\u4E0A\u4F20\u5931\u8D25\uFF1A${s.status} - ${i}`)}}function ww(){return{id:"reporting",name:"Reporting",description:"\u5C06\u5BA1\u67E5\u62A5\u544A\u4FDD\u5B58\u5230\u672C\u5730\uFF0C\u5E76\u6309\u914D\u7F6E\u4E0A\u4F20\u5230\u6548\u80FD\u7CFB\u7EDF",enabled:!0,order:8,execute:async e=>{let t=Date.now(),r=yT(e),s=HT(e,r.includeDiffs??!1),i;try{i=await zT(e,r,s),e.quiet||d.success(`\u5BA1\u67E5\u62A5\u544A\u5DF2\u4FDD\u5B58\uFF1A${i}`)}catch(o){let a=o instanceof Error?o.message:String(o);return e.quiet||d.warn(`\u5BA1\u67E5\u62A5\u544A\u4FDD\u5B58\u5931\u8D25\uFF1A${a}`),{stageId:"reporting",stageName:"Reporting",success:!1,duration:Date.now()-t,error:`\u5BA1\u67E5\u62A5\u544A\u4FDD\u5B58\u5931\u8D25\uFF1A${a}`}}let n=async o=>{let a;try{a=await MT(e,r),a&&(s.historyKey=a.key)}catch(l){let c={historyUploaded:!1,historyError:l instanceof Error?l.message:String(l)};return e.quiet||d.warn(`\u5BA1\u67E5\u5386\u53F2\u4E0A\u4F20\u5931\u8D25\uFF1A${c.historyError}`),c}let u=await KT(i,s,a,o);return u.historyUploaded&&!e.quiet?d.success(`\u5BA1\u67E5\u62A5\u544A\u5DF2\u4E0A\u4F20\u5230\u5386\u53F2\u4ED3\u5E93\uFF1A${u.historyPath}`):u.historyError&&!e.quiet&&d.warn(`\u5BA1\u67E5\u5386\u53F2\u4E0A\u4F20\u5931\u8D25\uFF1A${u.historyError}`),u.historyCleanupError&&!e.quiet&&d.warn(`\u672C\u5730\u5BA1\u67E5\u62A5\u544A\u5220\u9664\u5931\u8D25\uFF1A${u.historyCleanupError}`),u};if(!r.enabled){let o=await n(!0);return{stageId:"reporting",stageName:"Reporting",success:!0,duration:Date.now()-t,output:{localPath:i,uploaded:!1,skippedUpload:!0,...o}}}if(!r.url){let o="Reporting \u5DF2\u542F\u7528\uFF0C\u4F46\u6CA1\u6709\u914D\u7F6E URL";return e.quiet||d.warn(o),{stageId:"reporting",stageName:"Reporting",success:r.failOnError!==!0,duration:Date.now()-t,output:{localPath:i,uploaded:!1,historyUploaded:!1,historySkipped:!0},error:o}}try{await JT(s,r),e.quiet||d.success("\u5BA1\u67E5\u62A5\u544A\u5DF2\u4E0A\u4F20");let o=await n(!0);return{stageId:"reporting",stageName:"Reporting",success:!0,duration:Date.now()-t,output:{localPath:i,uploaded:!0,...o}}}catch(o){let a=o instanceof Error?o.message:String(o);return e.quiet||d.warn(a),{stageId:"reporting",stageName:"Reporting",success:r.failOnError!==!0,duration:Date.now()-t,output:{localPath:i,uploaded:!1,historyUploaded:!1,historySkipped:!0},error:a}}}}}var qw=require("node:crypto");M();var _n=class{diff(t,r,s={}){let i;typeof s=="function"?(i=s,s={}):"callback"in s&&(i=s.callback);let n=this.castInput(t,s),o=this.castInput(r,s),a=this.removeEmpty(this.tokenize(n,s)),u=this.removeEmpty(this.tokenize(o,s));return this.diffWithOptionsObj(a,u,s,i)}diffWithOptionsObj(t,r,s,i){var n;let o=w=>{if(w=this.postProcess(w,s),i){setTimeout(function(){i(w)},0);return}else return w},a=r.length,u=t.length,l=1,c=a+u;s.maxEditLength!=null&&(c=Math.min(c,s.maxEditLength));let f=(n=s.timeout)!==null&&n!==void 0?n:1/0,h=Date.now()+f,p=[{oldPos:-1,lastComponent:void 0}],m=this.extractCommon(p[0],r,t,0,s);if(p[0].oldPos+1>=u&&m+1>=a)return o(this.buildValues(p[0].lastComponent,r,t));let g=-1/0,D=1/0,b=()=>{for(let w=Math.max(g,-l);w<=Math.min(D,l);w+=2){let v,E=p[w-1],C=p[w+1];E&&(p[w-1]=void 0);let x=!1;if(C){let F=C.oldPos-w;x=C&&0<=F&&F<a}let $=E&&E.oldPos+1<u;if(!x&&!$){p[w]=void 0;continue}if(!$||x&&E.oldPos<C.oldPos?v=this.addToPath(C,!0,!1,0,s):v=this.addToPath(E,!1,!0,1,s),m=this.extractCommon(v,r,t,w,s),v.oldPos+1>=u&&m+1>=a)return o(this.buildValues(v.lastComponent,r,t))||!0;p[w]=v,v.oldPos+1>=u&&(D=Math.min(D,w-1)),m+1>=a&&(g=Math.max(g,w+1))}l++};if(i)(function w(){setTimeout(function(){if(l>c||Date.now()>h)return i(void 0);b()||w()},0)})();else for(;l<=c&&Date.now()<=h;){let w=b();if(w)return w}}addToPath(t,r,s,i,n){let o=t.lastComponent;return o&&!n.oneChangePerToken&&o.added===r&&o.removed===s?{oldPos:t.oldPos+i,lastComponent:{count:o.count+1,added:r,removed:s,previousComponent:o.previousComponent}}:{oldPos:t.oldPos+i,lastComponent:{count:1,added:r,removed:s,previousComponent:o}}}extractCommon(t,r,s,i,n){let o=r.length,a=s.length,u=t.oldPos,l=u-i,c=0;for(;l+1<o&&u+1<a&&this.equals(s[u+1],r[l+1],n);)l++,u++,c++,n.oneChangePerToken&&(t.lastComponent={count:1,previousComponent:t.lastComponent,added:!1,removed:!1});return c&&!n.oneChangePerToken&&(t.lastComponent={count:c,previousComponent:t.lastComponent,added:!1,removed:!1}),t.oldPos=u,l}equals(t,r,s){return s.comparator?s.comparator(t,r):t===r||!!s.ignoreCase&&t.toLowerCase()===r.toLowerCase()}removeEmpty(t){let r=[];for(let s=0;s<t.length;s++)t[s]&&r.push(t[s]);return r}castInput(t,r){return t}tokenize(t,r){return Array.from(t)}join(t){return t.join("")}postProcess(t,r){return t}get useLongestToken(){return!1}buildValues(t,r,s){let i=[],n;for(;t;)i.push(t),n=t.previousComponent,delete t.previousComponent,t=n;i.reverse();let o=i.length,a=0,u=0,l=0;for(;a<o;a++){let c=i[a];if(c.removed)c.value=this.join(s.slice(l,l+c.count)),l+=c.count;else{if(!c.added&&this.useLongestToken){let f=r.slice(u,u+c.count);f=f.map(function(h,p){let m=s[l+p];return m.length>h.length?m:h}),c.value=this.join(f)}else c.value=this.join(r.slice(u,u+c.count));u+=c.count,c.added||(l+=c.count)}}return i}};var Zf=class extends _n{constructor(){super(...arguments),this.tokenize=ZT}equals(t,r,s){return s.ignoreWhitespace?((!s.newlineIsToken||!t.includes(`
393
+ `)})}function ti(e,t={}){return{enabled:!!(e.fixSeverities&&e.fixSeverities.length>0),dryRun:!!e.fixDryRun,targetSeverities:e.fixSeverities??[],targetIssueCount:0,changedFiles:[],applied:!1,...t}}function Q0(e){return/git apply|patch failed|补丁/i.test(e)?"\u5EFA\u8BAE\u5148\u7528 --fix-dry-run \u751F\u6210\u5E76\u6821\u9A8C\u8865\u4E01\uFF0C\u68C0\u67E5\u5DE5\u4F5C\u533A\u662F\u5426\u5DF2\u6709\u51B2\u7A81\u6216\u6587\u4EF6\u5DF2\u53D8\u66F4\uFF1B\u5FC5\u8981\u65F6\u6309\u5BA1\u67E5\u62A5\u544A\u4E2D\u7684\u4FEE\u590D\u5EFA\u8BAE\u624B\u52A8\u5904\u7406\u3002":/API|执行器|模型|key|baseUrl|timeout|超时/i.test(e)?"\u5EFA\u8BAE\u8FD0\u884C best-review init \u68C0\u67E5 API key\u3001baseUrl \u548C\u6A21\u578B\u914D\u7F6E\uFF0C\u6216\u7528 --executor/--model \u4E34\u65F6\u5207\u6362\u53EF\u7528\u6A21\u578B\u540E\u91CD\u8BD5\u3002":"\u5EFA\u8BAE\u5148\u7528 --fix-dry-run \u91CD\u8BD5\u67E5\u770B\u8865\u4E01\u662F\u5426\u53EF\u751F\u6210\uFF1B\u5982\u679C\u4ECD\u5931\u8D25\uFF0C\u8BF7\u5207\u6362\u66F4\u5F3A\u6A21\u578B\u6216\u6309\u62A5\u544A\u4E2D\u7684 suggestion \u624B\u52A8\u4FEE\u590D\u3002"}function aT(e){return e.fixDryRun?e.fixPatchFile?"dry-run \u5DF2\u5B8C\u6210\uFF0C\u5EFA\u8BAE\u68C0\u67E5\u8865\u4E01\u5185\u5BB9\uFF1B\u786E\u8BA4\u65E0\u8BEF\u540E\u53BB\u6389 --fix-dry-run \u91CD\u65B0\u8FD0\u884C\uFF0C\u6216\u624B\u52A8 git apply \u8865\u4E01\u6587\u4EF6\u3002":"dry-run \u5DF2\u5B8C\u6210\uFF0C\u5EFA\u8BAE\u68C0\u67E5 JSON/report \u4E2D\u7684 autofix.patch\uFF1B\u786E\u8BA4\u65E0\u8BEF\u540E\u53BB\u6389 --fix-dry-run \u91CD\u65B0\u8FD0\u884C\u3002":"\u5DF2\u5199\u5165\u4FEE\u590D\u8865\u4E01\uFF0C\u5EFA\u8BAE\u8FD0\u884C\u9879\u76EE\u6D4B\u8BD5\u5E76\u91CD\u65B0\u6267\u884C best-review review\uFF0C\u786E\u8BA4\u4E25\u91CD\u98CE\u9669\u5DF2\u6D88\u9664\u3002"}function sw(){return{id:"autofix",name:"Autofix",description:"\u6309\u9700\u4FEE\u590D\u4E25\u91CD\u98CE\u9669",enabled:!0,order:7,execute:async e=>{let t=Date.now();if(!e.fixSeverities||e.fixSeverities.length===0)return e.autofix=ti(e),{stageId:"autofix",stageName:"Autofix",success:!0,duration:Date.now()-t,output:e.autofix};if(e.skipValidation){let o="\u81EA\u52A8\u4FEE\u590D\u9700\u8981\u5148\u5B8C\u6210\u9A8C\u8BC1\u9636\u6BB5\uFF0C\u4E0D\u80FD\u4E0E --skip-validation \u540C\u65F6\u4F7F\u7528";return e.autofix=ti(e,{error:o,suggestion:"\u8BF7\u79FB\u9664 --skip-validation \u540E\u91CD\u8BD5\uFF1B\u5982\u679C\u53EA\u60F3\u9884\u89C8\u8865\u4E01\uFF0C\u53EF\u4F7F\u7528 --fix-dry-run\u3002"}),{stageId:"autofix",stageName:"Autofix",success:!1,duration:Date.now()-t,error:o,output:e.autofix}}let r=e.fixMaxIssues??tw("BEST_REVIEW_FIX_MAX_ISSUES",Y_),s=new Set(e.fixSeverities),i=X_(e.issues.filter(o=>s.has(o.severity))).slice(0,r);if(i.length===0)return e.autofix=ti(e),e.quiet||d.info("\u81EA\u52A8\u4FEE\u590D\uFF1A\u6CA1\u6709\u547D\u4E2D\u6307\u5B9A\u4E25\u91CD\u7EA7\u522B\u7684\u95EE\u9898"),{stageId:"autofix",stageName:"Autofix",success:!0,duration:Date.now()-t,output:e.autofix};if(!e.config){let o="Pipeline \u4E0A\u4E0B\u6587\u4E2D\u7684 config \u5C1A\u672A\u521D\u59CB\u5316";return e.autofix=ti(e,{targetIssueCount:i.length,error:o,suggestion:Q0(o)}),{stageId:"autofix",stageName:"Autofix",success:!1,duration:0,error:o}}e.quiet||d.sync(`\u81EA\u52A8\u4FEE\u590D\uFF1A\u51C6\u5907\u5904\u7406 ${i.length} \u4E2A ${e.fixSeverities.join(",")} \u95EE\u9898...`);let n;try{let o=e.config.executor,a=De.get(o);if(!a)throw new Error(`\u6267\u884C\u5668\u4E0D\u5B58\u5728\uFF1A${o}`);let u={...Us(e.config),...e.config.executors[o]?.review??{}},l=a.applySettings?a.applySettings(u):a.getInfo(),c=await iT(e.metadata.repository,i),f={name:"autofix",description:"\u81EA\u52A8\u4FEE\u590D\u4E25\u91CD\u98CE\u9669",systemPrompt:oT(),enabled:!0,order:99,executor:o},h=await De.executeAgent({agent:f,executor:l,input:nT(i,c),systemPrompt:f.systemPrompt,quiet:e.quiet,verbose:e.verbose,cwd:e.metadata.repository,modelOverride:e.modelOverride,outputMode:"text"});if(e.usage=kr(e.usage??zt(),h.usage,{cacheHit:h.cacheHit}),!h.success)throw new Error(h.error||"\u6A21\u578B\u672A\u80FD\u751F\u6210\u4FEE\u590D\u8865\u4E01");let p=Q_(h.output);if(!p)throw new Error("\u6A21\u578B\u6CA1\u6709\u8FD4\u56DE unified diff \u8865\u4E01");tT(p,e.metadata.repository,i.map(g=>g.file)),n=e.fixPatchFile?await sT(e.metadata.repository,e.fixPatchFile,p):void 0,await X0(p,e.metadata.repository,{checkOnly:!0}),e.fixDryRun||await X0(p,e.metadata.repository,{checkOnly:!1});let m=rw(p);if(e.autofix=ti(e,{targetIssueCount:i.length,changedFiles:m,applied:!e.fixDryRun,patch:p,...n&&{patchPath:n},suggestion:aT(e)}),!e.quiet){let g=e.fixDryRun?"\u8865\u4E01\u6821\u9A8C\u901A\u8FC7\uFF08\u672A\u5199\u5165\uFF09":"\u8865\u4E01\u5DF2\u5E94\u7528";d.success(`\u81EA\u52A8\u4FEE\u590D\uFF1A${g}\uFF0C\u5F71\u54CD ${m.length} \u4E2A\u6587\u4EF6`),n&&d.info(`\u81EA\u52A8\u4FEE\u590D\u8865\u4E01\u5DF2\u4FDD\u5B58\uFF1A${n}`)}return{stageId:"autofix",stageName:"Autofix",success:!0,duration:Date.now()-t,output:e.autofix}}catch(o){let a=o instanceof Error?o.message:String(o);return e.autofix=ti(e,{targetIssueCount:i.length,error:a,...n&&{patchPath:n},suggestion:Q0(a)}),{stageId:"autofix",stageName:"Autofix",success:!1,duration:Date.now()-t,error:`\u81EA\u52A8\u4FEE\u590D\u5931\u8D25\uFF1A${a}`,output:e.autofix}}}}}var mw=require("node:child_process"),Fe=require("node:fs/promises"),Le=require("node:path"),Xa=require("node:crypto"),gw=require("node:util");M();var j={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",yellow:"\x1B[33m",blue:"\x1B[34m",cyan:"\x1B[36m",green:"\x1B[32m",gray:"\x1B[90m"},nw=["critical","high","medium","low"],uT={critical:"\u4E25\u91CD",high:"\u9AD8",medium:"\u4E2D",low:"\u4F4E"},kn={critical:"\u4E25\u91CD\u98CE\u9669",high:"\u9AD8\u98CE\u9669",medium:"\u4E2D\u98CE\u9669",low:"\u4F4E\u98CE\u9669"};function lT(e){switch(e){case"critical":return j.red;case"high":return j.yellow;case"medium":return j.blue;case"low":return j.cyan}}function cT(e){switch(e){case"critical":return"\u2717";case"high":return"\u26A0";case"medium":return"\u25CB";case"low":return"\u25C7"}}function fT(e){switch(e){case"security":return"\u{1F512}";case"performance":return"\u26A1";case"bug":return"\u2715";case"quality":return"\u2728";case"style":return"\u{1F3A8}";case"docs":return"\u{1F4DD}"}}function Jf(e){return nw.indexOf(e)}function Za(e){let t={critical:0,high:0,medium:0,low:0};for(let s of e)t[s.severity]+=1;return{overall:nw.find(s=>t[s]>0)??"none",counts:t,labels:kn}}function ow(e){let t=Za(e);return t.overall==="none"?"\u98CE\u9669\u7ED3\u8BBA\uFF1A\u672A\u53D1\u73B0\u98CE\u9669":`\u98CE\u9669\u7ED3\u8BBA\uFF1A\u4E25\u91CD ${t.counts.critical}\uFF0C\u9AD8 ${t.counts.high}\uFF0C\u4E2D ${t.counts.medium}\uFF0C\u4F4E ${t.counts.low}\uFF1B\u6574\u4F53\u98CE\u9669\uFF1A${uT[t.overall]}`}function Rn(e){return[...e].sort((t,r)=>{let s=Jf(t.severity),i=Jf(r.severity);return s-i})}function dT(e,t=!1){let r=lT(e.severity),s=cT(e.severity),i=fT(e.category),n=[];return t?n.push(`${s} ${j.bold}${e.file}:${e.lineStart}${j.reset} - ${r}${e.shortDescription}${j.reset}`):(n.push(""),n.push(`${s} ${r}${j.bold}${kn[e.severity]}${j.reset} ${i} ${j.dim}${e.category}${j.reset}`),n.push(`${j.bold}${e.file}${j.reset}:${j.cyan}${e.lineStart}${e.lineEnd!==e.lineStart?`-${e.lineEnd}`:""}${j.reset}`),n.push(""),n.push(`${j.bold}${e.shortDescription}${j.reset}`),e.fullDescription&&e.fullDescription!==e.shortDescription&&(n.push(""),n.push(`${j.dim}${e.fullDescription}${j.reset}`)),e.evidence&&(n.push(""),n.push(`${j.yellow}\u2192 \u9519\u8BEF\u70B9\uFF1A${j.reset}`),n.push(`${j.dim}${e.evidence}${j.reset}`)),e.suggestion&&(n.push(""),n.push(`${j.green}\u2192 \u5EFA\u8BAE\uFF1A${j.reset}`),n.push(`${j.dim}${e.suggestion}${j.reset}`)),n.push(""),n.push(`${j.gray}Agent\uFF1A${e.agent}${j.reset}`),e.rule&&n.push(`${j.gray}\u89C4\u5219\uFF1A${e.rule}${j.reset}`),e.confidence!==void 0&&n.push(`${j.gray}\u7F6E\u4FE1\u5EA6\uFF1A${e.confidence}%${j.reset}`),n.push(""),n.push(j.gray+"\u2500".repeat(80)+j.reset)),n.join(`
394
+ `)}function aw(e){let t=new Map;for(let r of e){let s=t.get(r.file)||[];s.push(r),t.set(r.file,s)}return t}function iw(e){return Math.min(...e.map(t=>Jf(t.severity)))}function uw(e){if(e.length===0)return`${j.green}\u2713 \u6CA1\u6709\u53D1\u73B0\u95EE\u9898 \u{1F389}${j.reset}`;let t=aw(e),r=[];r.push(""),r.push(`${j.bold}\u5728 ${t.size} \u4E2A\u6587\u4EF6\u4E2D\u53D1\u73B0 ${e.length} \u4E2A\u95EE\u9898${j.reset}`),r.push("");let s=Array.from(t.entries()).sort(([,i],[,n])=>iw(i)-iw(n));for(let[i,n]of s){r.push(`${j.bold}${j.cyan}${i}${j.reset} ${j.dim}\uFF08${n.length} \u4E2A\u95EE\u9898\uFF09${j.reset}`),r.push("");let o=Rn(n);for(let a of o)r.push(dT(a,!1))}return r.join(`
395
+ `)}function Yf(e,t,r,s,i,n,o,a,u,l,c){let f=e.filter(F=>F.severity==="critical").length,h=e.filter(F=>F.severity==="high").length,p=e.filter(F=>F.severity==="medium").length,m=e.filter(F=>F.severity==="low").length,g=Za(e),D=Rn(e),b=aw(D),w=Array.from(b.entries()).map(([F,R])=>({file:F,issueCount:R.length,issues:Rn(R)})),v=o?.qualityScore.score??null,E=o?.qualityScore.status??"valid",C=o?.qualityScore.reason,x=o?.rawIssues??e,$=o?.finalIssues??e;return{success:t,totalDuration:r,...l!==void 0&&{commandDuration:l},qualityScore:v,qualityScoreStatus:E,...C&&{qualityScoreReason:C},stats:{totalIssues:e.length,critical:f,high:h,medium:p,low:m,filesAnalyzed:n,agentsExecuted:s,agentsSucceeded:i,agentsFailed:s-i},riskSummary:g,reviewSummary:{agentExecutions:o?.agentExecutions??{total:s,succeeded:i,failed:s-i},findingCounts:o?.findingCounts??{raw:x.length,afterConfidence:$.length,afterValidation:$.length,final:$.length}},rawIssues:Rn(x),finalIssues:Rn($),issues:D,files:w,...a&&{autofix:a},...u&&{usage:u},...c&&{validation:c}}}function lw(e,t,r,s,i,n,o,a,u,l,c){return JSON.stringify(Yf(e,t,r,s,i,n,o,a,u,l,c),null,2)}function cw(e,t){let r=t?.qualityScore??{base:100,min:0,weights:{critical:40,high:15,medium:6,low:2},categoryWeights:{security:1.2,bug:1,performance:.8,quality:.7,style:.4,docs:.3}},s=e.reduce((i,n)=>{let o=r.weights[n.severity]??0,a=r.categoryWeights[n.category]??1;return i+o*a},0);return{score:Math.max(r.min,Math.round(r.base-s)),base:r.base,min:r.min,deductions:s,totalIssues:e.length,weights:{severity:r.weights,category:r.categoryWeights}}}function fw(e,t){return e.find(r=>r.stageId===t)}function hT(e,t){if(e===0)return"\u6CA1\u6709\u4EFB\u4F55 Agent \u6210\u529F\u6267\u884C";let r=t.find(s=>!s.success&&s.stageId!=="reporting");if(r)return`\u6838\u5FC3\u9636\u6BB5\u5931\u8D25\uFF1A${r.stageName}`}function si(e){let t=e.stageResults??[],r=e.results.flatMap(f=>f.issues),s=e.issues,i={total:e.results.length,succeeded:e.results.filter(f=>f.success).length,failed:e.results.filter(f=>!f.success).length},n=fw(t,"confidence-filter")?.output,a=fw(t,"validation")?.output,u={raw:r.length,afterConfidence:typeof n?.totalAfter=="number"?n.totalAfter:r.length,afterValidation:e.skipValidation===!0?null:typeof a?.validCount=="number"?a.validCount:s.length,final:s.length},l=hT(i.succeeded,t);if(l)return{agentExecutions:i,findingCounts:u,qualityScore:{status:"unknown",score:null,reason:l},rawIssues:r,finalIssues:s};let c=cw(s,e.config);return{agentExecutions:i,findingCounts:u,qualityScore:{status:"valid",score:c.score,details:c},rawIssues:r,finalIssues:s}}Ve();Ce();var dw="https://git.bestfulfill.tech/jericho/review-history.git",hw="review-log",pT="https://git.bestfulfill.tech",mT="glpat-DnwLvmjayV9mjwz2WucX";function In(e=process.env){return e.GITLAB_HOST?.trim()||pT}function ii(e=process.env){return e.BEST_REVIEW_HISTORY_USER_TOKEN?.trim()||mT}var gT=(0,gw.promisify)(mw.execFile),DT="\u5DF2\u5F00\u542F\u5BA1\u67E5\u5386\u53F2\u5F52\u6863\uFF0C\u4F46\u672A\u914D\u7F6E BEST_REVIEW_HISTORY_REMOTE \u6216 reporting.historyRemote\u3002\u8BF7\u663E\u5F0F\u8BBE\u7F6E\u81EA\u5DF1\u7684\u5BA1\u67E5\u5386\u53F2\u4ED3\u5E93\u8FDC\u7A0B\u5730\u5740\u3002",yT="review-log",wT=6e4;function bT(e){return{critical:e.filter(t=>t.severity==="critical").length,high:e.filter(t=>t.severity==="high").length,medium:e.filter(t=>t.severity==="medium").length,low:e.filter(t=>t.severity==="low").length}}function vT(e){return{file:e.file,status:e.status,additions:e.additions,deletions:e.deletions,...e.hash&&{hash:e.hash}}}function ET(e){let t=e.config?.reporting??{},r=process.env.BEST_REVIEW_REPORT_URL||t.url,s=process.env.BEST_REVIEW_REPORT_TOKEN||t.token,i=process.env.BEST_REVIEW_REPORT_DIR||t.localDir||Dw();return{enabled:!!process.env.BEST_REVIEW_REPORT_URL||t.enabled===!0,url:r,token:s,localDir:i,includeDiffs:process.env.BEST_REVIEW_REPORT_INCLUDE_DIFFS==="true"||t.includeDiffs,failOnError:process.env.BEST_REVIEW_REPORT_FAIL_ON_ERROR==="true"||t.failOnError,historyEnabled:t.historyEnabled===!0,historyRemote:t.historyRemote,historyBranch:t.historyBranch}}function Dw(){return yt("reports")}function CT(e,t){return(0,Le.isAbsolute)(t)?t:(0,Le.join)(e.metadata.repository,t)}function _n(e){return String(e).padStart(2,"0")}function yw(e=new Date){return[e.getFullYear(),_n(e.getMonth()+1),_n(e.getDate()),_n(e.getHours()),_n(e.getMinutes()),_n(e.getSeconds())].join("-")}function FT(e,t){return`${e}-${t.slice(0,8)}.json`}function ST(e){return e?["1","true","yes","on"].includes(e.trim().toLowerCase()):!1}function xT(e){if(Object.prototype.hasOwnProperty.call(process.env,e))return process.env[e]?.trim()??""}function AT(e){return process.env.BEST_REVIEW_HISTORY!==void 0?ST(process.env.BEST_REVIEW_HISTORY):e.historyEnabled===!0}function RT(e){let t=xT("BEST_REVIEW_HISTORY_REMOTE"),r=e.historyRemote?.trim(),s=t||r||(t===void 0?dw:"");if(!s?.trim())throw new Error(DT);return s.trim()}function kT(e){return process.env.BEST_REVIEW_HISTORY_BRANCH?.trim()||e.historyBranch?.trim()||hw||yT}function IT(e,t){return e.metadata.reviewTarget?.kind==="gitlab-mr"?!1:AT(t)}function _T(e){let t=e.trim(),r=(/^https?:\/\//i.test(t)?t:`https://${t}`).replace(/\/+$/,"");return/\/api\/v\d+$/i.test(r)?r:`${r}/api/v4`}function TT(e){let t=e.trim();if(!t)return{};try{let s=new URL(t),i=s.protocol==="ssh:"?s.pathname.replace(/^\/+/,""):s.pathname.slice(1);return{host:s.hostname,projectPath:i.replace(/\.git$/i,"").replace(/\/+$/,"")}}catch{}let r=t.match(/^(?:[^@]+@)?([^:]+):(.+)$/);return{host:r?.[1],projectPath:r?.[2]?.replace(/\.git$/i,"").replace(/\/+$/,"")}}async function Yt(e,t,r){let{stdout:s}=await gT("git",e,{cwd:t,timeout:wT,env:r?{...process.env,...r}:process.env});return s}async function $T(e,t,r,s){try{await Yt(["clone","--depth","1","--branch",t,e,r],void 0,s)}catch{await(0,Fe.rm)(r,{recursive:!0,force:!0}),await Yt(["clone","--depth","1",e,r],void 0,s),await Yt(["checkout","-B",t],r)}}async function PT(e){try{let t=(await Yt(["remote","get-url","origin"],e)).trim();return TT(t)}catch{return{}}}function BT(e){return(0,Le.basename)(e)||"unknown-project"}async function OT(e){let t=process.env.GITLAB_PROJECT_PATH||process.env.CI_PROJECT_PATH;if(t?.trim())return{project:t.trim()};let r=await PT(e.metadata.repository);return r.projectPath?{project:r.projectPath,host:r.host}:{project:BT(e.metadata.repository),host:r.host}}async function LT(e,t){try{let r=await It(`${e}/user`,{headers:{"PRIVATE-TOKEN":t}});if(!r.ok)return null;let s=await r.json();return typeof s.username=="string"&&s.username.trim()?s.username.trim():typeof s.name=="string"&&s.name.trim()?s.name.trim():null}catch{return null}}function NT(){let e=In()||process.env.CI_SERVER_URL||(process.env.CI_SERVER_HOST?`https://${process.env.CI_SERVER_HOST}`:void 0);return e?_T(e):null}function MT(){let e=In()||process.env.CI_SERVER_URL||(process.env.CI_SERVER_HOST?`https://${process.env.CI_SERVER_HOST}`:void 0);if(!e)return null;try{return new URL(/^https?:\/\//i.test(e)?e:`https://${e}`).hostname}catch{return null}}function ww(){return ii()}async function jT(){let e=process.env.BEST_REVIEW_GITLAB_USER||process.env.GITLAB_USER_LOGIN||process.env.GITLAB_USER_NAME||process.env.GITLAB_USER_EMAIL;if(e?.trim())return e.trim();let t=ww();if(!t)return"unknown";let r=NT();return r&&await LT(r,t)||"unknown"}function qT(e){return/^[a-zA-Z0-9._-]+$/.test(e)}function UT(e,t){let r=process.env.BEST_REVIEW_HISTORY_GIT_TOKEN?.trim()||ww();if(!r)return;let s;try{s=new URL(e)}catch{return}if(!["http:","https:"].includes(s.protocol))return;let i=MT();return!i||s.hostname!==i?void 0:{username:process.env.BEST_REVIEW_HISTORY_GIT_USERNAME?.trim()||process.env.GITLAB_USER_LOGIN?.trim()||(qT(t)&&t!=="unknown"?t:void 0)||"oauth2",token:r}}async function GT(e,t){if(!IT(e,t))return null;let r=await OT(e),s=RT(t),i=await jT();return{remote:s,branch:kT(t),key:{project:r.project,gitlabUser:i},auth:UT(s,i)}}function pw(e,t){return e.trim().replace(/\.git$/i,"").replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"")||t}function VT(e,t){let r=e.project.split(/[\\/]+/).map((i,n)=>pw(i,`project-${n+1}`)).filter(Boolean),s=pw(e.gitlabUser,"unknown");return Le.posix.join("projects",...r,s,t)}function WT(){return process.env.BEST_REVIEW_HISTORY_TMP_DIR||yt("tmp")}async function HT(e,t){if(!t)return;let r=(0,Le.join)(e,`git-askpass-${(0,Xa.randomUUID)()}.sh`);return await(0,Fe.writeFile)(r,["#!/bin/sh",'case "$1" in','*Username*) printf "%s\\n" "$BEST_REVIEW_GIT_USERNAME" ;;','*Password*) printf "%s\\n" "$BEST_REVIEW_GIT_TOKEN" ;;','*) printf "\\n" ;;',"esac",""].join(`
396
+ `),"utf-8"),await(0,Fe.chmod)(r,448),{env:{GIT_ASKPASS:r,GIT_TERMINAL_PROMPT:"0",BEST_REVIEW_GIT_USERNAME:t.username,BEST_REVIEW_GIT_TOKEN:t.token},cleanup:()=>(0,Fe.rm)(r,{force:!0})}}async function KT(e,t,r){let s=VT(t.key,r),i=WT();await(0,Fe.mkdir)(i,{recursive:!0});let n=await(0,Fe.mkdtemp)((0,Le.join)(i,"review-history-")),o;try{o=await HT(i,t.auth),await $T(t.remote,t.branch,n,o?.env),await Yt(["config","user.name","best-review"],n),await Yt(["config","user.email","best-review@git.bestfulfill.tech"],n);let a=(0,Le.join)(n,...s.split("/"));return await(0,Fe.mkdir)((0,Le.dirname)(a),{recursive:!0}),await(0,Fe.writeFile)(a,`${JSON.stringify(e,null,2)}
397
+ `,"utf-8"),await Yt(["add",s],n),await Yt(["commit","-m",`chore: add review report ${r}`],n),await Yt(["push","origin",`HEAD:${t.branch}`],n,o?.env),{historyUploaded:!0,historyPath:s}}finally{await(0,Fe.rm)(n,{recursive:!0,force:!0}),await o?.cleanup()}}async function zT(e,t,r){if(!r)return{historyUploaded:!1,historySkipped:!0};let s=(0,Le.basename)(e);try{return await KT(t,r,s)}catch(i){return{historyUploaded:!1,historyError:i instanceof Error?i.message:String(i)}}}async function JT(e,t){if(!t.historyUploaded)return t;try{return await(0,Fe.unlink)(e),{...t,historyLocalDeleted:!0}}catch(r){return{...t,historyLocalDeleted:!1,historyCleanupError:r instanceof Error?r.message:String(r)}}}async function YT(e,t,r,s){let i=await zT(e,t,r);return s?JT(e,i):i}function ZT(e,t){let r=si(e),s=r.finalIssues,i=bT(s),n=Za(s),o=e.results.filter(m=>m.success).length,a=e.diffs.reduce((m,g)=>m+g.additions,0),u=e.diffs.reduce((m,g)=>m+g.deletions,0),l=yw(),c=(0,Xa.randomUUID)(),f=i.critical>0,h=e.config?.executor??qs,p=e.modelOverride??Us(e.config).model;return{schemaVersion:2,eventId:c,runId:c,tool:"best-review",toolVersion:gs.version,generatedAt:l,executor:h,...p&&{model:p},metadata:e.metadata,repository:e.metadata.repository,baseRef:e.metadata.baseRef,headRef:e.metadata.headRef,stats:{totalIssues:s.length,...i,filesAnalyzed:e.diffs.length,filesChanged:e.diffs.length,linesAdded:a,linesDeleted:u,agentsExecuted:e.results.length,agentsSucceeded:o,agentsFailed:e.results.length-o},riskSummary:n,qualityScore:r.qualityScore.score,qualityScoreStatus:r.qualityScore.status,...r.qualityScore.reason&&{qualityScoreReason:r.qualityScore.reason},ciBlocked:f,reviewSummary:{agentExecutions:r.agentExecutions,findingCounts:r.findingCounts},...e.usage&&{usage:e.usage},rawIssues:r.rawIssues,finalIssues:r.finalIssues,...e.autofix&&{autofix:e.autofix},issueAuditTrail:e.issueAuditTrail??[],stages:(e.stageResults??[]).map(m=>({stageId:m.stageId,stageName:m.stageName,success:m.success,duration:m.duration,...m.output!==void 0&&{output:m.output},...m.error&&{error:m.error}})),issues:s,agents:e.results.map(m=>({agent:m.agent,executor:m.executor,success:m.success,duration:m.duration,issueCount:m.issues.length,...m.usage&&{usage:m.usage},...m.error&&{error:m.error}})),diffs:t?e.diffs:e.diffs.map(vT)}}async function XT(e,t,r){let s=CT(e,t.localDir||Dw()),i=typeof r.generatedAt=="string"?r.generatedAt:yw(),n=typeof r.runId=="string"?r.runId:(0,Xa.randomUUID)(),o=(0,Le.join)(s,FT(i,n));return await(0,Fe.mkdir)(s,{recursive:!0}),await(0,Fe.writeFile)(o,`${JSON.stringify(r,null,2)}
398
+ `,"utf-8"),o}async function QT(e,t){if(!t.url)throw new Error("\u672A\u914D\u7F6E Reporting URL");let r={"Content-Type":"application/json"};t.token&&(r.Authorization=`Bearer ${t.token}`);let s=await It(t.url,{method:"POST",headers:r,body:JSON.stringify(e)});if(!s.ok){let i=await s.text();throw new Error(`\u62A5\u544A\u4E0A\u4F20\u5931\u8D25\uFF1A${s.status} - ${i}`)}}function bw(){return{id:"reporting",name:"Reporting",description:"\u5C06\u5BA1\u67E5\u62A5\u544A\u4FDD\u5B58\u5230\u672C\u5730\uFF0C\u5E76\u6309\u914D\u7F6E\u4E0A\u4F20\u5230\u6548\u80FD\u7CFB\u7EDF",enabled:!0,order:8,execute:async e=>{let t=Date.now(),r=ET(e),s=ZT(e,r.includeDiffs??!1),i;try{i=await XT(e,r,s),e.quiet||d.success(`\u5BA1\u67E5\u62A5\u544A\u5DF2\u4FDD\u5B58\uFF1A${i}`)}catch(o){let a=o instanceof Error?o.message:String(o);return e.quiet||d.warn(`\u5BA1\u67E5\u62A5\u544A\u4FDD\u5B58\u5931\u8D25\uFF1A${a}`),{stageId:"reporting",stageName:"Reporting",success:!1,duration:Date.now()-t,error:`\u5BA1\u67E5\u62A5\u544A\u4FDD\u5B58\u5931\u8D25\uFF1A${a}`}}let n=async o=>{let a;try{a=await GT(e,r),a&&(s.historyKey=a.key)}catch(l){let c={historyUploaded:!1,historyError:l instanceof Error?l.message:String(l)};return e.quiet||d.warn(`\u5BA1\u67E5\u5386\u53F2\u4E0A\u4F20\u5931\u8D25\uFF1A${c.historyError}`),c}let u=await YT(i,s,a,o);return u.historyUploaded&&!e.quiet?d.success(`\u5BA1\u67E5\u62A5\u544A\u5DF2\u4E0A\u4F20\u5230\u5386\u53F2\u4ED3\u5E93\uFF1A${u.historyPath}`):u.historyError&&!e.quiet&&d.warn(`\u5BA1\u67E5\u5386\u53F2\u4E0A\u4F20\u5931\u8D25\uFF1A${u.historyError}`),u.historyCleanupError&&!e.quiet&&d.warn(`\u672C\u5730\u5BA1\u67E5\u62A5\u544A\u5220\u9664\u5931\u8D25\uFF1A${u.historyCleanupError}`),u};if(!r.enabled){let o=await n(!0);return{stageId:"reporting",stageName:"Reporting",success:!0,duration:Date.now()-t,output:{localPath:i,uploaded:!1,skippedUpload:!0,...o}}}if(!r.url){let o="Reporting \u5DF2\u542F\u7528\uFF0C\u4F46\u6CA1\u6709\u914D\u7F6E URL";return e.quiet||d.warn(o),{stageId:"reporting",stageName:"Reporting",success:r.failOnError!==!0,duration:Date.now()-t,output:{localPath:i,uploaded:!1,historyUploaded:!1,historySkipped:!0},error:o}}try{await QT(s,r),e.quiet||d.success("\u5BA1\u67E5\u62A5\u544A\u5DF2\u4E0A\u4F20");let o=await n(!0);return{stageId:"reporting",stageName:"Reporting",success:!0,duration:Date.now()-t,output:{localPath:i,uploaded:!0,...o}}}catch(o){let a=o instanceof Error?o.message:String(o);return e.quiet||d.warn(a),{stageId:"reporting",stageName:"Reporting",success:r.failOnError!==!0,duration:Date.now()-t,output:{localPath:i,uploaded:!1,historyUploaded:!1,historySkipped:!0},error:a}}}}}var Uw=require("node:crypto");M();var Tn=class{diff(t,r,s={}){let i;typeof s=="function"?(i=s,s={}):"callback"in s&&(i=s.callback);let n=this.castInput(t,s),o=this.castInput(r,s),a=this.removeEmpty(this.tokenize(n,s)),u=this.removeEmpty(this.tokenize(o,s));return this.diffWithOptionsObj(a,u,s,i)}diffWithOptionsObj(t,r,s,i){var n;let o=w=>{if(w=this.postProcess(w,s),i){setTimeout(function(){i(w)},0);return}else return w},a=r.length,u=t.length,l=1,c=a+u;s.maxEditLength!=null&&(c=Math.min(c,s.maxEditLength));let f=(n=s.timeout)!==null&&n!==void 0?n:1/0,h=Date.now()+f,p=[{oldPos:-1,lastComponent:void 0}],m=this.extractCommon(p[0],r,t,0,s);if(p[0].oldPos+1>=u&&m+1>=a)return o(this.buildValues(p[0].lastComponent,r,t));let g=-1/0,D=1/0,b=()=>{for(let w=Math.max(g,-l);w<=Math.min(D,l);w+=2){let v,E=p[w-1],C=p[w+1];E&&(p[w-1]=void 0);let x=!1;if(C){let F=C.oldPos-w;x=C&&0<=F&&F<a}let $=E&&E.oldPos+1<u;if(!x&&!$){p[w]=void 0;continue}if(!$||x&&E.oldPos<C.oldPos?v=this.addToPath(C,!0,!1,0,s):v=this.addToPath(E,!1,!0,1,s),m=this.extractCommon(v,r,t,w,s),v.oldPos+1>=u&&m+1>=a)return o(this.buildValues(v.lastComponent,r,t))||!0;p[w]=v,v.oldPos+1>=u&&(D=Math.min(D,w-1)),m+1>=a&&(g=Math.max(g,w+1))}l++};if(i)(function w(){setTimeout(function(){if(l>c||Date.now()>h)return i(void 0);b()||w()},0)})();else for(;l<=c&&Date.now()<=h;){let w=b();if(w)return w}}addToPath(t,r,s,i,n){let o=t.lastComponent;return o&&!n.oneChangePerToken&&o.added===r&&o.removed===s?{oldPos:t.oldPos+i,lastComponent:{count:o.count+1,added:r,removed:s,previousComponent:o.previousComponent}}:{oldPos:t.oldPos+i,lastComponent:{count:1,added:r,removed:s,previousComponent:o}}}extractCommon(t,r,s,i,n){let o=r.length,a=s.length,u=t.oldPos,l=u-i,c=0;for(;l+1<o&&u+1<a&&this.equals(s[u+1],r[l+1],n);)l++,u++,c++,n.oneChangePerToken&&(t.lastComponent={count:1,previousComponent:t.lastComponent,added:!1,removed:!1});return c&&!n.oneChangePerToken&&(t.lastComponent={count:c,previousComponent:t.lastComponent,added:!1,removed:!1}),t.oldPos=u,l}equals(t,r,s){return s.comparator?s.comparator(t,r):t===r||!!s.ignoreCase&&t.toLowerCase()===r.toLowerCase()}removeEmpty(t){let r=[];for(let s=0;s<t.length;s++)t[s]&&r.push(t[s]);return r}castInput(t,r){return t}tokenize(t,r){return Array.from(t)}join(t){return t.join("")}postProcess(t,r){return t}get useLongestToken(){return!1}buildValues(t,r,s){let i=[],n;for(;t;)i.push(t),n=t.previousComponent,delete t.previousComponent,t=n;i.reverse();let o=i.length,a=0,u=0,l=0;for(;a<o;a++){let c=i[a];if(c.removed)c.value=this.join(s.slice(l,l+c.count)),l+=c.count;else{if(!c.added&&this.useLongestToken){let f=r.slice(u,u+c.count);f=f.map(function(h,p){let m=s[l+p];return m.length>h.length?m:h}),c.value=this.join(f)}else c.value=this.join(r.slice(u,u+c.count));u+=c.count,c.added||(l+=c.count)}}return i}};var Zf=class extends Tn{constructor(){super(...arguments),this.tokenize=t$}equals(t,r,s){return s.ignoreWhitespace?((!s.newlineIsToken||!t.includes(`
399
399
  `))&&(t=t.trim()),(!s.newlineIsToken||!r.includes(`
400
400
  `))&&(r=r.trim())):s.ignoreNewlineAtEof&&!s.newlineIsToken&&(t.endsWith(`
401
401
  `)&&(t=t.slice(0,-1)),r.endsWith(`
402
- `)&&(r=r.slice(0,-1))),super.equals(t,r,s)}},YT=new Zf;function Xf(e,t,r){return YT.diff(e,t,r)}function ZT(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,`
403
- `));let r=[],s=e.split(/(\n|\r\n)/);s[s.length-1]||s.pop();for(let i=0;i<s.length;i++){let n=s[i];i%2&&!t.newlineIsToken?r[r.length-1]+=n:r.push(n)}return r}var bw={includeIndex:!0,includeUnderline:!0,includeFileHeaders:!0};function Qf(e,t,r,s,i,n,o){let a;o?typeof o=="function"?a={callback:o}:a=o:a={},typeof a.context>"u"&&(a.context=4);let u=a.context;if(a.newlineIsToken)throw new Error("newlineIsToken may not be used with patch-generation functions, only with diffing functions");if(a.callback){let{callback:c}=a;Xf(r,s,Object.assign(Object.assign({},a),{callback:f=>{let h=l(f);c(h)}}))}else return l(Xf(r,s,a));function l(c){if(!c)return;c.push({value:"",lines:[]});function f(w){return w.map(function(v){return" "+v})}let h=[],p=0,m=0,g=[],D=1,b=1;for(let w=0;w<c.length;w++){let v=c[w],E=v.lines||XT(v.value);if(v.lines=E,v.added||v.removed){if(!p){let C=c[w-1];p=D,m=b,C&&(g=u>0?f(C.lines.slice(-u)):[],p-=g.length,m-=g.length)}for(let C of E)g.push((v.added?"+":"-")+C);v.added?b+=E.length:D+=E.length}else{if(p)if(E.length<=u*2&&w<c.length-2)for(let C of f(E))g.push(C);else{let C=Math.min(E.length,u);for(let $ of f(E.slice(0,C)))g.push($);let x={oldStart:p,oldLines:D-p+C,newStart:m,newLines:b-m+C,lines:g};h.push(x),p=0,m=0,g=[]}D+=E.length,b+=E.length}}for(let w of h)for(let v=0;v<w.lines.length;v++)w.lines[v].endsWith(`
404
- `)?w.lines[v]=w.lines[v].slice(0,-1):(w.lines.splice(v+1,0,"\"),v++);return{oldFileName:e,newFileName:t,oldHeader:i,newHeader:n,hunks:h}}}function Qa(e,t){if(t||(t=bw),Array.isArray(e)){if(e.length>1&&!t.includeFileHeaders)throw new Error("Cannot omit file headers on a multi-file patch. (The result would be unparseable; how would a tool trying to apply the patch know which changes are to which file?)");return e.map(s=>Qa(s,t)).join(`
402
+ `)&&(r=r.slice(0,-1))),super.equals(t,r,s)}},e$=new Zf;function Xf(e,t,r){return e$.diff(e,t,r)}function t$(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,`
403
+ `));let r=[],s=e.split(/(\n|\r\n)/);s[s.length-1]||s.pop();for(let i=0;i<s.length;i++){let n=s[i];i%2&&!t.newlineIsToken?r[r.length-1]+=n:r.push(n)}return r}var vw={includeIndex:!0,includeUnderline:!0,includeFileHeaders:!0};function Qf(e,t,r,s,i,n,o){let a;o?typeof o=="function"?a={callback:o}:a=o:a={},typeof a.context>"u"&&(a.context=4);let u=a.context;if(a.newlineIsToken)throw new Error("newlineIsToken may not be used with patch-generation functions, only with diffing functions");if(a.callback){let{callback:c}=a;Xf(r,s,Object.assign(Object.assign({},a),{callback:f=>{let h=l(f);c(h)}}))}else return l(Xf(r,s,a));function l(c){if(!c)return;c.push({value:"",lines:[]});function f(w){return w.map(function(v){return" "+v})}let h=[],p=0,m=0,g=[],D=1,b=1;for(let w=0;w<c.length;w++){let v=c[w],E=v.lines||r$(v.value);if(v.lines=E,v.added||v.removed){if(!p){let C=c[w-1];p=D,m=b,C&&(g=u>0?f(C.lines.slice(-u)):[],p-=g.length,m-=g.length)}for(let C of E)g.push((v.added?"+":"-")+C);v.added?b+=E.length:D+=E.length}else{if(p)if(E.length<=u*2&&w<c.length-2)for(let C of f(E))g.push(C);else{let C=Math.min(E.length,u);for(let $ of f(E.slice(0,C)))g.push($);let x={oldStart:p,oldLines:D-p+C,newStart:m,newLines:b-m+C,lines:g};h.push(x),p=0,m=0,g=[]}D+=E.length,b+=E.length}}for(let w of h)for(let v=0;v<w.lines.length;v++)w.lines[v].endsWith(`
404
+ `)?w.lines[v]=w.lines[v].slice(0,-1):(w.lines.splice(v+1,0,"\"),v++);return{oldFileName:e,newFileName:t,oldHeader:i,newHeader:n,hunks:h}}}function Qa(e,t){if(t||(t=vw),Array.isArray(e)){if(e.length>1&&!t.includeFileHeaders)throw new Error("Cannot omit file headers on a multi-file patch. (The result would be unparseable; how would a tool trying to apply the patch know which changes are to which file?)");return e.map(s=>Qa(s,t)).join(`
405
405
  `)}let r=[];t.includeIndex&&e.oldFileName==e.newFileName&&r.push("Index: "+e.oldFileName),t.includeUnderline&&r.push("==================================================================="),t.includeFileHeaders&&(r.push("--- "+e.oldFileName+(typeof e.oldHeader>"u"?"":" "+e.oldHeader)),r.push("+++ "+e.newFileName+(typeof e.newHeader>"u"?"":" "+e.newHeader)));for(let s=0;s<e.hunks.length;s++){let i=e.hunks[s];i.oldLines===0&&(i.oldStart-=1),i.newLines===0&&(i.newStart-=1),r.push("@@ -"+i.oldStart+","+i.oldLines+" +"+i.newStart+","+i.newLines+" @@");for(let n of i.lines)r.push(n)}return r.join(`
406
406
  `)+`
407
- `}function vw(e,t,r,s,i,n,o){if(typeof o=="function"&&(o={callback:o}),o?.callback){let{callback:a}=o;Qf(e,t,r,s,i,n,Object.assign(Object.assign({},o),{callback:u=>{a(u?Qa(u,o.headerOptions):void 0)}}))}else{let a=Qf(e,t,r,s,i,n,o);return a?Qa(a,o?.headerOptions):void 0}}function ni(e,t,r,s,i,n){return vw(e,e,t,r,s,i,n)}function XT(e){let t=e.endsWith(`
407
+ `}function Ew(e,t,r,s,i,n,o){if(typeof o=="function"&&(o={callback:o}),o?.callback){let{callback:a}=o;Qf(e,t,r,s,i,n,Object.assign(Object.assign({},o),{callback:u=>{a(u?Qa(u,o.headerOptions):void 0)}}))}else{let a=Qf(e,t,r,s,i,n,o);return a?Qa(a,o?.headerOptions):void 0}}function ni(e,t,r,s,i,n){return Ew(e,e,t,r,s,i,n)}function r$(e){let t=e.endsWith(`
408
408
  `),r=e.split(`
409
409
  `).map(s=>s+`
410
- `);return t?r.pop():r.push(r.pop().slice(0,-1)),r}var Cw=require("node:child_process"),Tn=require("node:fs/promises"),Fw=require("node:path");js();M();var Ew=3e4;async function he(e,t=process.cwd()){return new Promise((r,s)=>{let i=(0,Cw.spawn)("git",e,{cwd:t}),n=[],o=[];i.stdout.on("data",u=>n.push(u)),i.stderr.on("data",u=>o.push(u));let a=setTimeout(()=>{i.kill(),s(new Error(`git ${e[0]} \u5728 ${Ew/1e3}s \u540E\u8D85\u65F6`))},Ew);i.on("close",u=>{if(clearTimeout(a),u===0)r(Buffer.concat(n).toString("utf-8"));else{let l=Buffer.concat(o).toString("utf-8");s(new Error(`git ${e[0]} \u6267\u884C\u5931\u8D25\uFF1A${l||`\u9000\u51FA\u7801 ${u}`}`))}}),i.on("error",u=>{clearTimeout(a),s(u)})})}async function Sw(){try{let t=(await he(["rev-parse","--abbrev-ref","HEAD"])).trim();return t==="HEAD"?null:t}catch(e){return d.debug(`getCurrentBranch failed: ${e}`),null}}async function xw(){try{let s=(await he(["symbolic-ref","refs/remotes/origin/HEAD"])).trim().replace("refs/remotes/origin/","");if(s)return s}catch{}let e=["main","master","develop"];for(let t of e)try{return await he(["rev-parse","--verify",t]),t}catch{}return null}async function Aw(e){try{return await he(["rev-parse","--verify",e]),!0}catch{try{return await he(["rev-parse","--verify",`origin/${e}`]),!0}catch{return!1}}}async function Rw(){return(await he(["rev-parse","HEAD"])).trim()}async function ed(e){return(await he(["rev-parse",e])).trim()}async function $n(e){try{return await he(["rev-parse","--verify",`${e}^{commit}`]),!0}catch{return!1}}async function kw(e,t){try{return await he(["merge-base","--is-ancestor",e,t]),!0}catch{return!1}}async function Iw(e="origin"){try{return(await he(["remote","get-url",e])).trim()||null}catch{return null}}async function Pn(e,t){try{return await he(["show",`${e}:${t}`])}catch{return null}}async function _w(e){return(await he(["ls-tree","-r","--name-only",e])).split(`
411
- `).map(r=>r.trim()).filter(Boolean)}function e$(e){return e.trim().split(`
412
- `).filter(t=>t.length>=3).map(t=>({file:t.slice(3),index:t[0]??" ",worktree:t[1]??" "}))}async function Tw(){return Dt(qe.GIT_STATUS,async()=>{let e=await he(["status","--porcelain"]);return e$(e)})}function t$(){ba(qe.GIT_STATUS)}async function eu(){try{return await he(["rev-parse","--git-dir"]),!0}catch(e){return d.debug(`isGitRepository: not a git repo: ${e}`),!1}}async function r$(){try{return(await Tw()).map(t=>t.file)}catch(e){throw new Error(`\u83B7\u53D6\u53D8\u66F4\u6587\u4EF6\u5931\u8D25\uFF1A${e}`)}}async function s$(e){try{let t="",r="";try{t=await he(["show",`HEAD:${e}`])}catch{t=""}try{r=await(0,Tn.readFile)(e,"utf-8")}catch{r=""}return ni(e,t,r,"HEAD","\u5DE5\u4F5C\u533A")}catch(t){throw new Error(`\u83B7\u53D6 ${e} \u7684 diff \u5931\u8D25\uFF1A${t}`)}}async function i$(e){try{let r=(await Tw()).find(s=>s.file===e);return r?r.index==="A"||r.index==="?"||r.worktree==="?"?"added":r.index==="D"||r.worktree==="D"?"deleted":"modified":"modified"}catch(t){return d.debug(`getFileStatus failed for ${e}: ${t}`),"modified"}}function td(e){let t=e.split(`
413
- `),r=0,s=0;for(let i of t)i.startsWith("+")&&!i.startsWith("+++")?r++:i.startsWith("-")&&!i.startsWith("---")&&s++;return{additions:r,deletions:s}}async function $w(){t$();let e=await r$();return(await Promise.all(e.map(async r=>{try{let[s,i]=await Promise.all([s$(r),i$(r)]),{additions:n,deletions:o}=td(s);return{file:r,status:i,diff:s,additions:n,deletions:o}}catch(s){return d.debug(`getAllDiffs: skipping ${r}: ${s}`),null}}))).filter(r=>r!==null).filter(r=>r.diff.trim().length>0)}function Pw(e){return e.trim().split(`
414
- `).filter(t=>t.length>0).map(t=>{let[r,...s]=t.split(" "),i=s.join(" "),n="modified";return r==="A"?n="added":r==="D"?n="deleted":r?.startsWith("R")&&(n="modified"),{file:i,status:n}}).filter(t=>t.file)}async function Bw(){try{let e=await he(["diff","--name-status","HEAD~1","HEAD"]),t=Pw(e);return t.length===0?[]:(await Promise.all(t.map(async({file:s,status:i})=>{try{let n=await he(["diff","HEAD~1","HEAD","--",s]),{additions:o,deletions:a}=td(n),u=n.startsWith("diff --git")?n:ni(s,"","","HEAD~1","HEAD");return{file:s,status:i,diff:u,additions:o,deletions:a}}catch(n){return d.debug(`getLastCommitDiffs: skipping ${s}: ${n}`),null}}))).filter(s=>s!==null&&s.diff.trim().length>0)}catch(e){throw new Error(`\u83B7\u53D6\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4 diff \u5931\u8D25\uFF1A${e}`)}}async function Ow(e,t="HEAD"){try{return(await he(["log","--format=%B%n---COMMIT_SEPARATOR---",`${e}..${t}`])).split("---COMMIT_SEPARATOR---").map(s=>s.trim()).filter(s=>s.length>0)}catch(r){return d.debug(`getCommitMessages failed: ${r}`),[]}}async function rd(e,t="HEAD"){try{let r=await he(["diff","--name-status",e,t]),s=Pw(r);return s.length===0?[]:(await Promise.all(s.map(async({file:n,status:o})=>{try{let a=await he(["diff",e,t,"--",n]),{additions:u,deletions:l}=td(a),c=a.startsWith("diff --git")?a:ni(n,"","",e,t);return{file:n,status:o,diff:c,additions:u,deletions:l}}catch(a){return d.debug(`getCommitDiffs: skipping ${n}: ${a}`),null}}))).filter(n=>n!==null&&n.diff.trim().length>0)}catch(r){throw new Error(`\u83B7\u53D6 ${e} \u548C ${t} \u4E4B\u95F4\u7684 diff \u5931\u8D25\uFF1A${r}`)}}function Lw(e,t){let r=new Map(e.map(n=>[n.file,n])),s=[],i=[];for(let n of t){let o=r.get(n);o?s.push(o):i.push(n)}return{matched:s,unmatched:i}}async function n$(e){let t=(0,Fw.resolve)(process.cwd(),e);try{if(!(await(0,Tn.stat)(t)).isFile())return null;let s=await(0,Tn.readFile)(t,"utf-8"),i=ni(e,"",s,"/dev/null",e),n=i.split(`
415
- `).filter(o=>o.startsWith("+")&&!o.startsWith("+++")).length;return{file:e,status:"added",diff:i,additions:n,deletions:0}}catch(r){return d.debug(`createFullFileDiff failed for ${e}: ${r}`),null}}async function Nw(e){let t=await Promise.all(e.map(async i=>({file:i,diff:await n$(i)}))),r=[],s=[];for(let{file:i,diff:n}of t)n?r.push(n):s.push(i);return{diffs:r,notFound:s}}var o$=new Set(["1","true","yes","on"]),a$=new Set(["0","false","no","off",""]);function u$(e){if(e===void 0)return;let t=e.trim().toLowerCase();return o$.has(t)?!0:(a$.has(t),!1)}function Bn(e,t=process.env){let r=u$(t.BEST_REVIEW_GITLAB_ENABLED);return r!==void 0?r:e?.gitlab.uploadEnabled===!0}var Uw="<!-- best-review:",sd={critical:"\u{1F534} \u4E25\u91CD",high:"\u{1F7E0} \u9AD8",medium:"\u{1F7E1} \u4E2D",low:"\u{1F7E2} \u4F4E"},l$={security:"\u5B89\u5168",performance:"\u6027\u80FD",bug:"\u7F3A\u9677",quality:"\u8D28\u91CF",style:"\u98CE\u683C",docs:"\u6587\u6863"};function c$(e){let t=e.trim().replace(/\/+$/,"");return/\/api\/v\d+$/i.test(t)?t:`${t}/api/v4`}function f$(e){let t=process.env.GITLAB_TOKEN?.trim()||e.config?.gitlab.token?.trim(),r=e.metadata.reviewTarget;if(r)return t?{apiBaseUrl:r.apiBaseUrl.replace(/\/+$/,""),token:t,projectId:r.projectPath,mrIid:r.mrIid,reviewTarget:r}:(e.quiet||d.info("GitLab \u4E0A\u62A5\u5DF2\u8DF3\u8FC7\uFF1A\u7F3A\u5C11 GITLAB_TOKEN"),null);let s=kn(),i=process.env.GITLAB_PROJECT_ID||process.env.CI_PROJECT_ID,n=process.env.GITLAB_MR_IID||process.env.CI_MERGE_REQUEST_IID;if(!s||!t||!i||!n){if(!e.quiet){let o=[];s||o.push("GITLAB_HOST"),t||o.push("GITLAB_TOKEN"),i||o.push("GITLAB_PROJECT_ID"),n||o.push("GITLAB_MR_IID"),d.info(`GitLab \u4E0A\u62A5\u5DF2\u8DF3\u8FC7\uFF1A\u7F3A\u5C11 ${o.join(", ")}`)}return null}return{apiBaseUrl:c$(s),token:t,projectId:i,mrIid:n}}async function d$(e){if(e.metadata.reviewTarget?.diffVersion)return e.metadata.reviewTarget.diffVersion;let t=process.env.CI_MERGE_REQUEST_DIFF_BASE_SHA||process.env.CI_MERGE_REQUEST_TARGET_BRANCH_SHA,r=process.env.CI_COMMIT_SHA;if(t&&r){let s=process.env.CI_MERGE_REQUEST_TARGET_BRANCH_SHA||t;return{baseSha:t,startSha:r,headSha:s}}try{let s=e.metadata.headRef,i=e.metadata.baseRef;if(!s||!i)return null;let[n,o]=await Promise.all([Rw(),ed(i)]),a=await ed(s)||o;return!n||!o?null:{baseSha:o,startSha:n,headSha:a}}catch{return null}}function h$(e){let t=(0,qw.createHash)("sha1").update(e).digest("hex").slice(0,12);return`${Uw}hash=${t} -->`}function Mw(e,t){return`${h$(t)}
416
- ${e}`}function p$(e){return typeof e=="string"&&e.includes(Uw)}function m$(e){let t=sd[e.severity]||e.severity,r=l$[e.category]||e.category,s=[`\u{1F916} **best-review** \xB7 ${t} \xB7 \`${r}\``,"",`> ${e.shortDescription}`,""];return e.fullDescription&&e.fullDescription!==e.shortDescription&&s.push(e.fullDescription,""),e.evidence&&s.push(`**\u8BC1\u636E\uFF1A** ${e.evidence}`,""),e.suggestion&&s.push(`**\u5EFA\u8BAE\uFF1A** ${e.suggestion}`,""),e.rule&&s.push(`*rule: \`${e.rule}\` | agent: \`${e.agent}\`*`,""),s.join(`
417
- `)}async function id(e,t,r){try{let s=await It(`${e.apiBaseUrl}${t}`,{...r,headers:{"PRIVATE-TOKEN":e.token,"Content-Type":"application/json",...r?.headers||{}}},2);if(s.status>=400){let i=await s.text().catch(()=>"");return{ok:!1,error:`HTTP ${s.status}${i?`\uFF1A${i.slice(0,200)}`:""}`}}return s.status===204?{ok:!0}:{ok:!0,data:await s.json()}}catch(s){return{ok:!1,error:s instanceof Error?s.message:String(s)}}}async function g$(e){let t=await id(e,`/projects/${encodeURIComponent(e.projectId)}/merge_requests/${e.mrIid}/discussions`);return t.ok?{data:Array.isArray(t.data)?t.data:[]}:{data:[],error:t.error}}async function D$(e,t,r){let s=await id(e,`/projects/${encodeURIComponent(e.projectId)}/merge_requests/${e.mrIid}/discussions/${encodeURIComponent(t)}/notes/${encodeURIComponent(r)}`,{method:"DELETE"});return s.ok?{success:!0}:{success:!1,error:s.error}}async function y$(e){if(!e.reviewTarget)return{deleted:0,failed:0,errors:[]};let t=await g$(e);if(t.error)return{deleted:0,failed:1,errors:[`\u5217\u51FA\u73B0\u6709 discussions \u5931\u8D25\uFF1A${t.error}`]};let r=0,s=[],i=0,n=[];for(let a of t.data){let u=a.id;if(!(u===void 0||!Array.isArray(a.notes)))for(let l of a.notes){let c=l.id;c===void 0||!p$(l.body)||s.push(D$(e,String(u),String(c)).then(f=>({discussionId:String(u),noteId:String(c),result:f})))}}let o=await Promise.allSettled(s);for(let a of o){if(a.status==="rejected"){i++,n.push(`\u5220\u9664 discussion note \u5931\u8D25\uFF1A${a.reason instanceof Error?a.reason.message:String(a.reason)}`);continue}let{discussionId:u,noteId:l,result:c}=a.value;c.success?r++:(i++,n.push(`\u5220\u9664 discussion ${u} note ${l} \u5931\u8D25\uFF1A${c.error}`))}return{deleted:r,failed:i,errors:n}}async function jw(e,t,r){let s={body:t};r&&(s.position=r);let i=await id(e,`/projects/${encodeURIComponent(e.projectId)}/merge_requests/${e.mrIid}/discussions`,{method:"POST",body:JSON.stringify(s)});return i.ok?{success:!0}:{success:!1,error:i.error}}function w$(e,t){let r={};for(let i of e)r[i.severity]=(r[i.severity]||0)+1;let s=["## \u{1F916} best-review \u5BA1\u67E5\u7ED3\u679C","",`**${e.length} \u4E2A\u95EE\u9898** \u53D1\u73B0\u4E8E ${t.metadata.baseRef?`${t.metadata.baseRef}...${t.metadata.headRef||"HEAD"}`:"\u4EE3\u7801\u53D8\u66F4"}`,""];for(let[i,n]of Object.entries(r)){let o=sd[i]||i;s.push(`- ${o}\uFF1A${n} \u4E2A`)}s.push("","<details><summary>\u{1F4CB} \u95EE\u9898\u8BE6\u60C5\uFF08\u70B9\u51FB\u5C55\u5F00\uFF09</summary>","");for(let i=0;i<e.length;i++){let n=e[i],o=sd[n.severity]||n.severity;s.push(`### ${i+1}. ${o} \u2014 \`${n.file}:${n.lineStart}\``,"",n.shortDescription,""),n.suggestion&&s.push(`**\u5EFA\u8BAE\uFF1A** ${n.suggestion}`,""),s.push("---","")}return s.push("</details>","",`*\u5BA1\u67E5\u65F6\u95F4\uFF1A${new Date().toISOString()}*`),s.join(`
418
- `)}function b$(e){let t=new Map,r=new Map,s=e.oldPath||e.file,i=e.newPath||e.file,n=0,o=0,a=!1;for(let u of e.diff.split(`
419
- `)){let l=u.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);if(l?.[1]&&l[2]){n=Number.parseInt(l[1],10),o=Number.parseInt(l[2],10),a=!0;continue}if(!(!a||u.startsWith("\"))){if(u.startsWith("+")&&!u.startsWith("+++")){t.set(o,{oldPath:s,newPath:i,newLine:o}),o++;continue}if(u.startsWith("-")&&!u.startsWith("---")){r.set(n,{oldPath:s,newPath:i,oldLine:n}),n++;continue}if(u.startsWith(" ")){let c={oldPath:s,newPath:i,oldLine:n,newLine:o};r.set(n,c),t.set(o,c),n++,o++}}}return{byNewLine:t,byOldLine:r}}function tu(e,t,r){for(let s=t;s<=r;s++){let i=e.get(s);if(i)return i}}function v$(e,t,r){let s=b$(t),i=Math.max(e.lineStart,e.lineEnd),o=t.status==="deleted"||t.isDeletedFile?tu(s.byOldLine,e.lineStart,i)||tu(s.byNewLine,e.lineStart,i):tu(s.byNewLine,e.lineStart,i)||tu(s.byOldLine,e.lineStart,i);return!o||o.oldLine===void 0&&o.newLine===void 0?null:{base_sha:r.baseSha,start_sha:r.startSha,head_sha:r.headSha,position_type:"text",old_path:o.oldPath,new_path:o.newPath,...o.oldLine!==void 0?{old_line:o.oldLine}:{},...o.newLine!==void 0?{new_line:o.newLine}:{}}}function E$(e,t){return{base_sha:t.baseSha,start_sha:t.startSha,head_sha:t.headSha,position_type:"text",new_path:e.file,new_line:e.lineStart}}function C$(e,t){return t.find(r=>new Set([r.file,r.oldPath,r.newPath].filter(Boolean)).has(e.file))}function Gw(){return{id:"gitlab-reporting",name:"GitLab Reporting",description:"\u63A8\u9001\u5BA1\u67E5\u7ED3\u679C\u5230 GitLab MR",enabled:!0,order:9,execute:async e=>{let t=Date.now();if(!Bn(e.config))return e.quiet||d.info("GitLab \u4E0A\u62A5\u5DF2\u8DF3\u8FC7\uFF1Agitlab.uploadEnabled \u672A\u542F\u7528\u3002\u8BBE\u7F6E gitlab.uploadEnabled=true \u6216 BEST_REVIEW_GITLAB_ENABLED=true \u540E\u624D\u4F1A\u56DE\u8BC4 MR\u3002"),{stageId:"gitlab-reporting",stageName:"GitLab Reporting",success:!0,duration:Date.now()-t,output:{skipped:!0,reason:"gitlab.uploadEnabled \u672A\u542F\u7528"}};let s=f$(e);if(!s)return{stageId:"gitlab-reporting",stageName:"GitLab Reporting",success:!0,duration:Date.now()-t,output:{skipped:!0,reason:e.metadata.reviewTarget?"\u7F3A\u5C11 GitLab \u914D\u7F6E\uFF08GITLAB_TOKEN\uFF09":"\u7F3A\u5C11 GitLab \u914D\u7F6E\uFF08GITLAB_HOST/TOKEN/PROJECT_ID/MR_IID\uFF09"}};let i=e.issues;if(i.length===0)return e.quiet||d.info("GitLab \u4E0A\u62A5\uFF1A\u6CA1\u6709\u95EE\u9898\u9700\u8981\u63A8\u9001"),{stageId:"gitlab-reporting",stageName:"GitLab Reporting",success:!0,duration:Date.now()-t,output:{skipped:!0,reason:"\u65E0\u95EE\u9898"}};e.quiet||d.sync(`GitLab \u4E0A\u62A5\uFF1A\u6B63\u5728\u63A8\u9001 ${i.length} \u4E2A\u95EE\u9898...`);let n=await y$(s),o=await d$(e),a=0,u=n.failed,l=[...n.errors],c=[];if(o)for(let p of i){let m=C$(p,e.diffs),g=(m?v$(p,m,o):null)||(s.reviewTarget?null:E$(p,o));if(!g){c.push(p);continue}let D=Mw(m$(p),`${p.file}:${p.lineStart}:${p.shortDescription}:${p.agent}`),b=await jw(s,D,g);b.success?a++:(u++,l.push(`${p.file}:${p.lineStart} \u2014 ${b.error}`))}else c.push(...i);let f=!1;if(c.length>0){!e.quiet&&o&&d.info(`GitLab \u4E0A\u62A5\uFF1A${c.length} \u4E2A\u95EE\u9898\u65E0\u6CD5\u6620\u5C04\u5230 diff position\uFF0C\u6539\u4E3A summary`);let p=Mw(w$(c,e),`summary:${c.map(g=>`${g.file}:${g.lineStart}:${g.shortDescription}`).join("|")}`),m=await jw(s,p);m.success?(a++,f=!0):(u++,l.push(`summary discussion \u63A8\u9001\u5931\u8D25\uFF1A${m.error}`))}e.quiet||d.done(`GitLab \u4E0A\u62A5\u5B8C\u6210\uFF1A${a}/${a+u} \u6761\u8BC4\u8BBA\u5DF2\u63A8\u9001`);let h={pushed:a,failed:u,inline:o!==null,summary:f,cleanupDeleted:n.deleted,cleanupFailed:n.failed,summaryCount:c.length,...l.length>0?{errors:l.slice(0,10)}:{}};return{stageId:"gitlab-reporting",stageName:"GitLab Reporting",success:u===0,duration:Date.now()-t,output:h,...u>0?{error:`${u} \u6761 GitLab \u64CD\u4F5C\u5931\u8D25`}:{}}}}}function ru(){return[Ly(),Wy(),zy(),A0(),R0(),_0(),$0(),z0(),J0(),rw(),ww(),Gw()]}var oi=class{agents=[];executors=new Map;stages=[];constructor(t=[],r=[],s){this.agents=[...t].sort((i,n)=>i.order-n.order);for(let i of r)this.executors.set(i.name,i),ge.registerExecutor(i);for(let i of t)Zs.register(i);this.stages=s||ru()}addAgent(t){this.agents.push(t),this.agents.sort((r,s)=>r.order-s.order),Zs.register(t)}removeAgent(t){this.agents=this.agents.filter(r=>r.name!==t),Zs.remove(t)}getAgents(){return this.agents}getEnabledAgents(){return this.agents.filter(t=>t.enabled)}addExecutor(t){this.executors.set(t.name,t),ge.registerExecutor(t)}getExecutor(t){return this.executors.get(t)}async execute(t,r={}){let{verbose:s=!1,quiet:i=!1,concurrency:n=3,skipValidation:o=!1,stream:a=!1,baseRef:u,headRef:l,ruleFilter:c,excludeRules:f,agentFilter:h,excludeAgents:p,minConfidence:m,modelOverride:g,fixSeverities:D,fixDryRun:b=!1,fixMaxIssues:w,fixPatchFile:v,repositoryPath:E}=r,C=Date.now(),x=E||process.cwd(),$=r.config,F=r.commitMessages??[];r.commitMessages===void 0&&u&&l&&(F=await Ow(u,l),s&&F.length>0&&d.plain(`\u5DF2\u8BFB\u53D6 ${F.length} \u6761\u63D0\u4EA4\u4FE1\u606F\u4F5C\u4E3A\u4E0A\u4E0B\u6587`));let R={diffs:t,results:[],issues:[],metadata:{timestamp:Date.now(),repository:x,baseRef:u,headRef:l,commitMessages:F.length>0?F:void 0,...r.metadata??{}},verbose:s,quiet:i,stream:a,concurrency:n,agents:[...this.agents],supplementalContextFiles:r.supplementalContextFiles,techDoc:r.techDoc,ruleFilter:c,excludeRules:f,agentFilter:h,excludeAgents:p,skipValidation:o,minConfidence:m,modelOverride:g,fixSeverities:D,fixDryRun:b,fixMaxIssues:w,fixPatchFile:v,config:$},W=[],ae=!1;for(let I of this.stages)if(I.enabled&&!(ae&&I.id!=="reporting"))try{R.stageResults=[...W];let L=await I.execute(R);if(W.push(L),R.stageResults=[...W],!L.success&&(d.error(`\u9636\u6BB5 ${I.name} \u5931\u8D25\uFF1A${L.error}`),ae=!0,I.id==="reporting"))break}catch(L){let Q=L instanceof Error?L.message:String(L);if(d.error(`\u9636\u6BB5 ${I.name} \u5931\u8D25\uFF1A${Q}`),W.push({stageId:I.id,stageName:I.name,success:!1,duration:0,error:Q}),R.stageResults=[...W],ae=!0,I.id==="reporting")break}let H=Date.now()-C;return{success:W.every(I=>I.success),context:R,totalDuration:H,stages:W}}};var ai=require("node:fs/promises"),Kw=require("node:path");vr();var F$=y.enum(["critical","high","medium","low"]),S$=y.enum(["security","performance","bug","quality","style","docs"]),x$=y.object({file:y.string().min(1),status:y.enum(["modified","added","deleted","renamed"]),diff:y.string(),additions:y.number().nonnegative(),deletions:y.number().nonnegative(),hash:y.string().optional(),oldPath:y.string().optional(),newPath:y.string().optional(),isNewFile:y.boolean().optional(),isDeletedFile:y.boolean().optional(),isRenamedFile:y.boolean().optional()}).strict(),Vw=y.object({id:y.string().min(1),file:y.string().min(1),lineStart:y.number().positive(),lineEnd:y.number().positive(),severity:F$,category:S$,description:y.string().min(1),matchText:y.string().min(1).optional()}).strict(),A$=y.object({minPrecision:y.number().min(0).max(1).optional(),minRecall:y.number().min(0).max(1).optional(),maxDuplicateRate:y.number().min(0).max(1).optional()}).strict(),R$=y.object({file:y.string().min(1),content:y.string(),role:y.enum(["changed-file","dependency"]),source:y.enum(["gitlab-remote","local-git"]),ref:y.string().min(1),relatedFiles:y.array(y.string()).optional()}).strict(),k$=y.object({schemaVersion:y.literal(1),name:y.string().min(1),description:y.string().optional(),diffs:y.array(x$).min(1),expectedIssues:y.array(Vw),expectedFilteredIssues:y.array(Vw).default([]),thresholds:A$.optional(),commitMessages:y.array(y.string()).optional(),supplementalContextFiles:y.array(R$).optional()}).strict();function I$(e){return k$.parse(e)}async function Ww(e){let t=await(0,ai.readFile)(e,"utf-8");try{return I$(JSON.parse(t))}catch(r){let s=r instanceof Error?r.message:String(r);throw new Error(`\u8BC4\u6D4B fixture \u65E0\u6548 ${e}\uFF1A${s}`,{cause:r})}}async function Hw(e){if((await(0,ai.stat)(e)).isFile())return[await Ww(e)];let s=(await(0,ai.readdir)(e)).filter(n=>n.endsWith(".json")).sort((n,o)=>n.localeCompare(o));return(await Promise.all(s.map(n=>Ww((0,Kw.join)(e,n))))).sort((n,o)=>n.name.localeCompare(o.name))}function Zw(e,t,r,s,i){return e<=s&&r<=t?!0:Math.abs(e-r)<=i||Math.abs(t-s)<=i||Math.abs(e-s)<=i||Math.abs(t-r)<=i}function _$(e){return[e.shortDescription,e.fullDescription,e.suggestion,e.evidence,e.rule].filter(Boolean).join(`
420
- `).toLowerCase()}function zw(e){return new Set(e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").split(/\s+/).filter(t=>t.length>=3))}function T$(e,t){if(e.size===0&&t.size===0)return 1;if(e.size===0||t.size===0)return 0;let r=0;for(let i of e)t.has(i)&&r++;let s=e.size+t.size-r;return r/s}function su(e,t,r={}){let s=r.requireSeverity??!0;return!(e.file!==t.file||s&&e.severity!==t.severity||e.category!==t.category||!Zw(e.lineStart,e.lineEnd,t.lineStart,t.lineEnd,5)||t.matchText&&!_$(e).includes(t.matchText.toLowerCase()))}function $$(e,t){let r=new Set,s=[],i=[];for(let n of e){let o=t.findIndex((u,l)=>!r.has(l)&&su(u,n,{requireSeverity:!1}));if(o===-1){i.push(n),s.push({expected:n});continue}r.add(o);let a=t[o];s.push({expected:n,issue:a,...a.severity!==n.severity&&{severityMismatch:!0}})}return{matches:s,falseNegatives:i,matchedIssueIndexes:r}}function P$(e,t){return e.file!==t.file||e.category!==t.category||!Zw(e.lineStart,e.lineEnd,t.lineStart,t.lineEnd,10)?!1:T$(zw(e.shortDescription),zw(t.shortDescription))>=.6}function Jw(e){let t=[],r=0;for(let s of e){if(t.some(i=>P$(i,s))){r++;continue}t.push(s)}return r}function B$(e){let t=e?.find(s=>s.stageId==="validation")?.output;if(!t||typeof t!="object")return{};let r=t;return{validCount:typeof r.validCount=="number"?r.validCount:void 0,filteredCount:typeof r.filteredCount=="number"?r.filteredCount:void 0}}function Yw(e,t){return Number.isFinite(e)?Math.min(Math.max(e,0),t):0}function O$(e,t){let r=e.diffs.length,s=t?.find(i=>i.stageId==="match-rules")?.output;if(s&&typeof s=="object"){let i=s,n=typeof i.totalDiffFiles=="number"?i.totalDiffFiles:r,o=typeof i.coveredFiles=="number"?Yw(i.coveredFiles,n):Array.isArray(i.uncoveredFiles)?n-Yw(i.uncoveredFiles.length,n):0,a=n-o;return{totalFiles:n,coveredFiles:o,uncoveredFiles:a,coverageRate:ui(o,n,1)}}return{totalFiles:r,coveredFiles:r,uncoveredFiles:0,coverageRate:ui(r,r,1)}}function L$(e,t,r){return e.map(s=>{let i=t.find(o=>su(o,s,{requireSeverity:!1}));if(i)return{expected:s,status:"leaked",issue:i};let n=r?.map(o=>o.issue).find(o=>su(o,s,{requireSeverity:!1}));return n?{expected:s,status:"filtered",issue:n}:{expected:s,status:"absent"}})}function N$(e,t){return e.filter(r=>t?.some(s=>su(s.issue,r,{requireSeverity:!1}))).length}function ui(e,t,r){return t===0?r:e/t}function Xw(e,t){let r=t.context.results.flatMap(x=>x.issues),s=t.context.issues,{matches:i,falseNegatives:n,matchedIssueIndexes:o}=$$(e.expectedIssues,s),a=s.filter((x,$)=>!o.has($)),u=L$(e.expectedFilteredIssues,s,t.context.issueAuditTrail),l=N$(e.expectedFilteredIssues,t.context.issueAuditTrail),c=Jw(r),f=Jw(s),h=B$(t.context.stageResults??t.stages),p=h.validCount??0,m=h.filteredCount??0,g=p+m,D=O$(e,t.context.stageResults??t.stages),b=i.filter(x=>x.issue).length,w=a.length,v=i.filter(x=>x.severityMismatch).length,E=ui(b,b+w,1),C=ui(b,e.expectedIssues.length,1);return{fixtureName:e.name,pipelineSuccess:t.success,metrics:{expectedIssues:e.expectedIssues.length,finalIssues:s.length,rawIssues:r.length,truePositives:b,falsePositives:w,falseNegatives:n.length,severityMismatches:v,precision:E,recall:C,f1:E+C===0?0:2*E*C/(E+C),rawDuplicateCount:c,rawDuplicateRate:ui(c,r.length,0),finalDuplicateCount:f,finalDuplicateRate:ui(f,s.length,0),validationInputCount:g,validationKeptCount:p,validationFilteredCount:m,validationRetentionRate:g===0?null:p/g,reviewTotalFiles:D.totalFiles,reviewCoveredFiles:D.coveredFiles,reviewUncoveredFiles:D.uncoveredFiles,reviewCoverageRate:D.coverageRate,expectedFilteredIssues:e.expectedFilteredIssues.length,expectedFilteredObserved:l,expectedFilteredLeaked:u.filter(x=>x.status==="leaked").length,expectedFilteredAbsent:u.filter(x=>x.status==="absent").length},matchedExpectedIssues:i,falseNegativeExpectedIssues:n,falsePositiveIssues:a,expectedFilteredResults:u}}Rr();function Qw(e){return e||"unversioned"}async function eb(e){let[t,r]=await Promise.all([He({projectPath:e}),Tt(e)]);return{prompts:t.map(s=>({name:s.name,version:Qw(s.version),source:s.source,path:s.path})).sort((s,i)=>s.name.localeCompare(i.name)),rules:r.map(s=>({name:s.name,version:Qw(s.version),source:s.source,path:s.path})).sort((s,i)=>s.name.localeCompare(i.name))}}var M$=new Set(["load-rules","match-rules","review","aggregate-results","confidence-filter","deduplication","validation"]);function j$(){return{expectedIssues:0,finalIssues:0,rawIssues:0,truePositives:0,falsePositives:0,falseNegatives:0,severityMismatches:0,precision:1,recall:1,f1:1,rawDuplicateCount:0,rawDuplicateRate:0,finalDuplicateCount:0,finalDuplicateRate:0,validationInputCount:0,validationKeptCount:0,validationFilteredCount:0,validationRetentionRate:null,reviewTotalFiles:0,reviewCoveredFiles:0,reviewUncoveredFiles:0,reviewCoverageRate:1,expectedFilteredIssues:0,expectedFilteredObserved:0,expectedFilteredLeaked:0,expectedFilteredAbsent:0}}function On(e,t,r){return t===0?r:e/t}function q$(e){let t=j$();for(let r of e){let s=r.metrics;t.expectedIssues+=s.expectedIssues,t.finalIssues+=s.finalIssues,t.rawIssues+=s.rawIssues,t.truePositives+=s.truePositives,t.falsePositives+=s.falsePositives,t.falseNegatives+=s.falseNegatives,t.severityMismatches+=s.severityMismatches,t.rawDuplicateCount+=s.rawDuplicateCount,t.finalDuplicateCount+=s.finalDuplicateCount,t.validationInputCount+=s.validationInputCount,t.validationKeptCount+=s.validationKeptCount,t.validationFilteredCount+=s.validationFilteredCount,t.reviewTotalFiles+=s.reviewTotalFiles,t.reviewCoveredFiles+=s.reviewCoveredFiles,t.reviewUncoveredFiles+=s.reviewUncoveredFiles,t.expectedFilteredIssues+=s.expectedFilteredIssues,t.expectedFilteredObserved+=s.expectedFilteredObserved,t.expectedFilteredLeaked+=s.expectedFilteredLeaked,t.expectedFilteredAbsent+=s.expectedFilteredAbsent}return t.precision=On(t.truePositives,t.truePositives+t.falsePositives,1),t.recall=On(t.truePositives,t.expectedIssues,1),t.f1=t.precision+t.recall===0?0:2*t.precision*t.recall/(t.precision+t.recall),t.rawDuplicateRate=On(t.rawDuplicateCount,t.rawIssues,0),t.finalDuplicateRate=On(t.finalDuplicateCount,t.finalIssues,0),t.validationRetentionRate=t.validationInputCount===0?null:t.validationKeptCount/t.validationInputCount,t.reviewCoverageRate=On(t.reviewCoveredFiles,t.reviewTotalFiles,1),t}function tb(e,t,r){if(!t)return[];let s=[];return t.minPrecision!==void 0&&e.precision<t.minPrecision&&s.push(`${r}: precision ${e.precision.toFixed(3)} < ${t.minPrecision}`),t.minRecall!==void 0&&e.recall<t.minRecall&&s.push(`${r}: recall ${e.recall.toFixed(3)} < ${t.minRecall}`),t.maxDuplicateRate!==void 0&&e.rawDuplicateRate>t.maxDuplicateRate&&s.push(`${r}: duplicateRate ${e.rawDuplicateRate.toFixed(3)} > ${t.maxDuplicateRate}`),s}async function U$(e){let t=await xr(e.config,{executorOverride:e.executor,modelOverride:e.model});if(!t.ok)throw new Error(t.message||"\u6267\u884C\u5668\u914D\u7F6E\u6821\u9A8C\u5931\u8D25");let[r,s]=await Promise.all([Js(),He({projectPath:e.projectPath,executorOverride:e.executor,modelOverride:e.model})]),i=ru().filter(n=>M$.has(n.id));return async n=>new oi(s,r,i).execute(n.diffs,{quiet:!0,concurrency:e.config.concurrency,skipValidation:!1,stream:!1,ruleFilter:e.ruleFilter,agentFilter:e.agentFilter,minConfidence:e.confidence,modelOverride:e.model,config:e.config,repositoryPath:e.projectPath,commitMessages:n.commitMessages??[],supplementalContextFiles:n.supplementalContextFiles})}async function G$(e,t){if(e)return t();let r=process.env.BEST_REVIEW_CACHE;process.env.BEST_REVIEW_CACHE="false";try{return await t()}finally{r===void 0?delete process.env.BEST_REVIEW_CACHE:process.env.BEST_REVIEW_CACHE=r}}async function rb(e){let t=e.fixtures??(e.fixturePath?await Hw(e.fixturePath):[]);if(t.length===0)throw new Error("\u6CA1\u6709\u627E\u5230\u8BC4\u6D4B fixture");let r=await oe(e.projectPath),s=e.versions??await eb(e.projectPath),i=e.executeFixture??await U$({projectPath:e.projectPath,executor:e.executor,model:e.model,agentFilter:e.agentFilter,ruleFilter:e.ruleFilter,confidence:e.confidence,config:r});return G$(e.useCache,async()=>{let n=[],o=[];for(let u of t){let l=await i(u),c=Xw(u,l);n.push(c),o.push(...tb(c.metrics,u.thresholds,u.name)),c.pipelineSuccess||o.push(`${u.name}: pipeline failed`)}let a=q$(n);return o.push(...tb(a,e.thresholds,"summary")),{schemaVersion:1,generatedAt:new Date().toISOString(),projectPath:e.projectPath,passed:o.length===0,thresholdFailures:o,summary:{fixtures:t.length,metrics:a},fixtureResults:n,versions:s}})}M();var V$="evals/golden";function Yt(e){return e===null?"n/a":`${(e*100).toFixed(1)}%`}function sb(e){return e.length===0?"none":e.map(t=>`${t.name}@${t.version}`).join(", ")}function ib(e){if(Array.isArray(e))return e.length>0?e:void 0;let t=e?.split(",").map(r=>r.trim()).filter(Boolean);return t&&t.length>0?t:void 0}function nd(e,t){if(e===void 0||e==="")return;let r=typeof e=="number"?e:Number(e);if(!Number.isFinite(r)||r<0||r>1)throw new Error(`${t} \u5FC5\u987B\u5728 0-1 \u4E4B\u95F4`);return r}function W$(e){if(e===void 0||e==="")return;let t=typeof e=="number"?e:Number(e);if(!Number.isInteger(t)||t<0||t>100)throw new Error("confidence \u5FC5\u987B\u662F 0-100 \u4E4B\u95F4\u7684\u6574\u6570");return t}async function K$(e,t){let r=t||(0,ob.join)(e,V$);return await(0,nb.access)(r),r}function H$(e){let t={minPrecision:nd(e.minPrecision,"minPrecision"),minRecall:nd(e.minRecall,"minRecall"),maxDuplicateRate:nd(e.maxDuplicateRate,"maxDuplicateRate")};return Object.values(t).some(r=>r!==void 0)?t:void 0}function z$(e){let t=e.summary.metrics,r=["\u5BA1\u67E5\u8D28\u91CF\u8BC4\u6D4B",`status: ${e.passed?"pass":"fail"}`,`fixtures: ${e.summary.fixtures}`,`precision: ${Yt(t.precision)}`,`recall: ${Yt(t.recall)}`,`f1: ${Yt(t.f1)}`,`falsePositives: ${t.falsePositives}`,`falseNegatives: ${t.falseNegatives}`,`severityMismatches: ${t.severityMismatches}`,`duplicateRate: ${Yt(t.rawDuplicateRate)}`,`reviewCoverage: ${Yt(t.reviewCoverageRate)}`,`validationRetention: ${Yt(t.validationRetentionRate)}`,`expectedFiltered: observed ${t.expectedFilteredObserved}, leaked ${t.expectedFilteredLeaked}, absent ${t.expectedFilteredAbsent}`,"",`promptVersions: ${sb(e.versions.prompts)}`,`ruleVersions: ${sb(e.versions.rules)}`];if(e.thresholdFailures.length>0){r.push("","thresholdFailures:");for(let s of e.thresholdFailures)r.push(` - ${s}`)}r.push("","fixtures:");for(let s of e.fixtureResults)r.push(` - ${s.fixtureName}: precision ${Yt(s.metrics.precision)}, recall ${Yt(s.metrics.recall)}, FP ${s.metrics.falsePositives}, FN ${s.metrics.falseNegatives}, duplicateRate ${Yt(s.metrics.rawDuplicateRate)}`);return r.join(`
421
- `)}async function ab(e={}){let t=process.cwd(),r=await K$(t,e.fixturePath),s=H$(e),i={projectPath:t,fixturePath:r,executor:e.executor,model:e.model,agentFilter:ib(e.agent),ruleFilter:ib(e.rule),confidence:W$(e.confidence),useCache:e.useCache,thresholds:s},n=await rb(i);return e.json?console.log(JSON.stringify(n,null,2)):d.plain(z$(n)),n.passed||(process.exitCode=1),n}var ub={meta:{name:"eval",description:`\u8FD0\u884C\u5BA1\u67E5\u8D28\u91CF\u8BC4\u6D4B golden fixtures\uFF08\u5B9E\u65F6\u8C03\u7528\u6A21\u578B\uFF09
410
+ `);return t?r.pop():r.push(r.pop().slice(0,-1)),r}var Fw=require("node:child_process"),$n=require("node:fs/promises"),Sw=require("node:path");js();M();var Cw=3e4;async function pe(e,t=process.cwd()){return new Promise((r,s)=>{let i=(0,Fw.spawn)("git",e,{cwd:t}),n=[],o=[];i.stdout.on("data",u=>n.push(u)),i.stderr.on("data",u=>o.push(u));let a=setTimeout(()=>{i.kill(),s(new Error(`git ${e[0]} \u5728 ${Cw/1e3}s \u540E\u8D85\u65F6`))},Cw);i.on("close",u=>{if(clearTimeout(a),u===0)r(Buffer.concat(n).toString("utf-8"));else{let l=Buffer.concat(o).toString("utf-8");s(new Error(`git ${e[0]} \u6267\u884C\u5931\u8D25\uFF1A${l||`\u9000\u51FA\u7801 ${u}`}`))}}),i.on("error",u=>{clearTimeout(a),s(u)})})}async function xw(){try{let t=(await pe(["rev-parse","--abbrev-ref","HEAD"])).trim();return t==="HEAD"?null:t}catch(e){return d.debug(`getCurrentBranch failed: ${e}`),null}}async function Aw(){try{let s=(await pe(["symbolic-ref","refs/remotes/origin/HEAD"])).trim().replace("refs/remotes/origin/","");if(s)return s}catch{}let e=["main","master","develop"];for(let t of e)try{return await pe(["rev-parse","--verify",t]),t}catch{}return null}async function Rw(e){try{return await pe(["rev-parse","--verify",e]),!0}catch{try{return await pe(["rev-parse","--verify",`origin/${e}`]),!0}catch{return!1}}}async function kw(){return(await pe(["rev-parse","HEAD"])).trim()}async function ed(e){return(await pe(["rev-parse",e])).trim()}async function Pn(e){try{return await pe(["rev-parse","--verify",`${e}^{commit}`]),!0}catch{return!1}}async function Iw(e,t){try{return await pe(["merge-base","--is-ancestor",e,t]),!0}catch{return!1}}async function _w(e="origin"){try{return(await pe(["remote","get-url",e])).trim()||null}catch{return null}}async function Bn(e,t){try{return await pe(["show",`${e}:${t}`])}catch{return null}}async function Tw(e){return(await pe(["ls-tree","-r","--name-only",e])).split(`
411
+ `).map(r=>r.trim()).filter(Boolean)}function i$(e){return e.trim().split(`
412
+ `).filter(t=>t.length>=3).map(t=>({file:t.slice(3),index:t[0]??" ",worktree:t[1]??" "}))}async function $w(){return Dt(Ue.GIT_STATUS,async()=>{let e=await pe(["status","--porcelain"]);return i$(e)})}function n$(){ba(Ue.GIT_STATUS)}async function eu(){try{return await pe(["rev-parse","--git-dir"]),!0}catch(e){return d.debug(`isGitRepository: not a git repo: ${e}`),!1}}async function o$(){try{return(await $w()).map(t=>t.file)}catch(e){throw new Error(`\u83B7\u53D6\u53D8\u66F4\u6587\u4EF6\u5931\u8D25\uFF1A${e}`)}}async function a$(e){try{let t="",r="";try{t=await pe(["show",`HEAD:${e}`])}catch{t=""}try{r=await(0,$n.readFile)(e,"utf-8")}catch{r=""}return ni(e,t,r,"HEAD","\u5DE5\u4F5C\u533A")}catch(t){throw new Error(`\u83B7\u53D6 ${e} \u7684 diff \u5931\u8D25\uFF1A${t}`)}}async function u$(e){try{let r=(await $w()).find(s=>s.file===e);return r?r.index==="A"||r.index==="?"||r.worktree==="?"?"added":r.index==="D"||r.worktree==="D"?"deleted":"modified":"modified"}catch(t){return d.debug(`getFileStatus failed for ${e}: ${t}`),"modified"}}function td(e){let t=e.split(`
413
+ `),r=0,s=0;for(let i of t)i.startsWith("+")&&!i.startsWith("+++")?r++:i.startsWith("-")&&!i.startsWith("---")&&s++;return{additions:r,deletions:s}}async function Pw(){n$();let e=await o$();return(await Promise.all(e.map(async r=>{try{let[s,i]=await Promise.all([a$(r),u$(r)]),{additions:n,deletions:o}=td(s);return{file:r,status:i,diff:s,additions:n,deletions:o}}catch(s){return d.debug(`getAllDiffs: skipping ${r}: ${s}`),null}}))).filter(r=>r!==null).filter(r=>r.diff.trim().length>0)}function Bw(e){return e.trim().split(`
414
+ `).filter(t=>t.length>0).map(t=>{let[r,...s]=t.split(" "),i=s.join(" "),n="modified";return r==="A"?n="added":r==="D"?n="deleted":r?.startsWith("R")&&(n="modified"),{file:i,status:n}}).filter(t=>t.file)}async function Ow(){try{let e=await pe(["diff","--name-status","HEAD~1","HEAD"]),t=Bw(e);return t.length===0?[]:(await Promise.all(t.map(async({file:s,status:i})=>{try{let n=await pe(["diff","HEAD~1","HEAD","--",s]),{additions:o,deletions:a}=td(n),u=n.startsWith("diff --git")?n:ni(s,"","","HEAD~1","HEAD");return{file:s,status:i,diff:u,additions:o,deletions:a}}catch(n){return d.debug(`getLastCommitDiffs: skipping ${s}: ${n}`),null}}))).filter(s=>s!==null&&s.diff.trim().length>0)}catch(e){throw new Error(`\u83B7\u53D6\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4 diff \u5931\u8D25\uFF1A${e}`)}}async function Lw(e,t="HEAD"){try{return(await pe(["log","--format=%B%n---COMMIT_SEPARATOR---",`${e}..${t}`])).split("---COMMIT_SEPARATOR---").map(s=>s.trim()).filter(s=>s.length>0)}catch(r){return d.debug(`getCommitMessages failed: ${r}`),[]}}async function rd(e,t="HEAD"){try{let r=await pe(["diff","--name-status",e,t]),s=Bw(r);return s.length===0?[]:(await Promise.all(s.map(async({file:n,status:o})=>{try{let a=await pe(["diff",e,t,"--",n]),{additions:u,deletions:l}=td(a),c=a.startsWith("diff --git")?a:ni(n,"","",e,t);return{file:n,status:o,diff:c,additions:u,deletions:l}}catch(a){return d.debug(`getCommitDiffs: skipping ${n}: ${a}`),null}}))).filter(n=>n!==null&&n.diff.trim().length>0)}catch(r){throw new Error(`\u83B7\u53D6 ${e} \u548C ${t} \u4E4B\u95F4\u7684 diff \u5931\u8D25\uFF1A${r}`)}}function Nw(e,t){let r=new Map(e.map(n=>[n.file,n])),s=[],i=[];for(let n of t){let o=r.get(n);o?s.push(o):i.push(n)}return{matched:s,unmatched:i}}async function l$(e){let t=(0,Sw.resolve)(process.cwd(),e);try{if(!(await(0,$n.stat)(t)).isFile())return null;let s=await(0,$n.readFile)(t,"utf-8"),i=ni(e,"",s,"/dev/null",e),n=i.split(`
415
+ `).filter(o=>o.startsWith("+")&&!o.startsWith("+++")).length;return{file:e,status:"added",diff:i,additions:n,deletions:0}}catch(r){return d.debug(`createFullFileDiff failed for ${e}: ${r}`),null}}async function Mw(e){let t=await Promise.all(e.map(async i=>({file:i,diff:await l$(i)}))),r=[],s=[];for(let{file:i,diff:n}of t)n?r.push(n):s.push(i);return{diffs:r,notFound:s}}var c$=new Set(["1","true","yes","on"]),f$=new Set(["0","false","no","off",""]);function d$(e){if(e===void 0)return;let t=e.trim().toLowerCase();return c$.has(t)?!0:(f$.has(t),!1)}function On(e,t=process.env){let r=d$(t.BEST_REVIEW_GITLAB_ENABLED);return r!==void 0?r:e?.gitlab.uploadEnabled===!0}var Gw="<!-- best-review:",sd={critical:"\u{1F534} \u4E25\u91CD",high:"\u{1F7E0} \u9AD8",medium:"\u{1F7E1} \u4E2D",low:"\u{1F7E2} \u4F4E"},h$={security:"\u5B89\u5168",performance:"\u6027\u80FD",bug:"\u7F3A\u9677",quality:"\u8D28\u91CF",style:"\u98CE\u683C",docs:"\u6587\u6863"};function p$(e){let t=e.trim().replace(/\/+$/,"");return/\/api\/v\d+$/i.test(t)?t:`${t}/api/v4`}function m$(e){let t=process.env.GITLAB_TOKEN?.trim()||e.config?.gitlab.token?.trim(),r=e.metadata.reviewTarget;if(r)return t?{apiBaseUrl:r.apiBaseUrl.replace(/\/+$/,""),token:t,projectId:r.projectPath,mrIid:r.mrIid,reviewTarget:r}:(e.quiet||d.info("GitLab \u4E0A\u62A5\u5DF2\u8DF3\u8FC7\uFF1A\u7F3A\u5C11 GITLAB_TOKEN"),null);let s=In(),i=process.env.GITLAB_PROJECT_ID||process.env.CI_PROJECT_ID,n=process.env.GITLAB_MR_IID||process.env.CI_MERGE_REQUEST_IID;if(!s||!t||!i||!n){if(!e.quiet){let o=[];s||o.push("GITLAB_HOST"),t||o.push("GITLAB_TOKEN"),i||o.push("GITLAB_PROJECT_ID"),n||o.push("GITLAB_MR_IID"),d.info(`GitLab \u4E0A\u62A5\u5DF2\u8DF3\u8FC7\uFF1A\u7F3A\u5C11 ${o.join(", ")}`)}return null}return{apiBaseUrl:p$(s),token:t,projectId:i,mrIid:n}}async function g$(e){if(e.metadata.reviewTarget?.diffVersion)return e.metadata.reviewTarget.diffVersion;let t=process.env.CI_MERGE_REQUEST_DIFF_BASE_SHA||process.env.CI_MERGE_REQUEST_TARGET_BRANCH_SHA,r=process.env.CI_COMMIT_SHA;if(t&&r){let s=process.env.CI_MERGE_REQUEST_TARGET_BRANCH_SHA||t;return{baseSha:t,startSha:r,headSha:s}}try{let s=e.metadata.headRef,i=e.metadata.baseRef;if(!s||!i)return null;let[n,o]=await Promise.all([kw(),ed(i)]),a=await ed(s)||o;return!n||!o?null:{baseSha:o,startSha:n,headSha:a}}catch{return null}}function D$(e){let t=(0,Uw.createHash)("sha1").update(e).digest("hex").slice(0,12);return`${Gw}hash=${t} -->`}function jw(e,t){return`${D$(t)}
416
+ ${e}`}function y$(e){return typeof e=="string"&&e.includes(Gw)}function w$(e){let t=sd[e.severity]||e.severity,r=h$[e.category]||e.category,s=[`\u{1F916} **best-review** \xB7 ${t} \xB7 \`${r}\``,"",`> ${e.shortDescription}`,""];return e.fullDescription&&e.fullDescription!==e.shortDescription&&s.push(e.fullDescription,""),e.evidence&&s.push(`**\u8BC1\u636E\uFF1A** ${e.evidence}`,""),e.suggestion&&s.push(`**\u5EFA\u8BAE\uFF1A** ${e.suggestion}`,""),e.rule&&s.push(`*rule: \`${e.rule}\` | agent: \`${e.agent}\`*`,""),s.join(`
417
+ `)}async function id(e,t,r){try{let s=await It(`${e.apiBaseUrl}${t}`,{...r,headers:{"PRIVATE-TOKEN":e.token,"Content-Type":"application/json",...r?.headers||{}}},2);if(s.status>=400){let i=await s.text().catch(()=>"");return{ok:!1,error:`HTTP ${s.status}${i?`\uFF1A${i.slice(0,200)}`:""}`}}return s.status===204?{ok:!0}:{ok:!0,data:await s.json()}}catch(s){return{ok:!1,error:s instanceof Error?s.message:String(s)}}}async function b$(e){let t=await id(e,`/projects/${encodeURIComponent(e.projectId)}/merge_requests/${e.mrIid}/discussions`);return t.ok?{data:Array.isArray(t.data)?t.data:[]}:{data:[],error:t.error}}async function v$(e,t,r){let s=await id(e,`/projects/${encodeURIComponent(e.projectId)}/merge_requests/${e.mrIid}/discussions/${encodeURIComponent(t)}/notes/${encodeURIComponent(r)}`,{method:"DELETE"});return s.ok?{success:!0}:{success:!1,error:s.error}}async function E$(e){if(!e.reviewTarget)return{deleted:0,failed:0,errors:[]};let t=await b$(e);if(t.error)return{deleted:0,failed:1,errors:[`\u5217\u51FA\u73B0\u6709 discussions \u5931\u8D25\uFF1A${t.error}`]};let r=0,s=[],i=0,n=[];for(let a of t.data){let u=a.id;if(!(u===void 0||!Array.isArray(a.notes)))for(let l of a.notes){let c=l.id;c===void 0||!y$(l.body)||s.push(v$(e,String(u),String(c)).then(f=>({discussionId:String(u),noteId:String(c),result:f})))}}let o=await Promise.allSettled(s);for(let a of o){if(a.status==="rejected"){i++,n.push(`\u5220\u9664 discussion note \u5931\u8D25\uFF1A${a.reason instanceof Error?a.reason.message:String(a.reason)}`);continue}let{discussionId:u,noteId:l,result:c}=a.value;c.success?r++:(i++,n.push(`\u5220\u9664 discussion ${u} note ${l} \u5931\u8D25\uFF1A${c.error}`))}return{deleted:r,failed:i,errors:n}}async function qw(e,t,r){let s={body:t};r&&(s.position=r);let i=await id(e,`/projects/${encodeURIComponent(e.projectId)}/merge_requests/${e.mrIid}/discussions`,{method:"POST",body:JSON.stringify(s)});return i.ok?{success:!0}:{success:!1,error:i.error}}function C$(e,t){let r={};for(let i of e)r[i.severity]=(r[i.severity]||0)+1;let s=["## \u{1F916} best-review \u5BA1\u67E5\u7ED3\u679C","",`**${e.length} \u4E2A\u95EE\u9898** \u53D1\u73B0\u4E8E ${t.metadata.baseRef?`${t.metadata.baseRef}...${t.metadata.headRef||"HEAD"}`:"\u4EE3\u7801\u53D8\u66F4"}`,""];for(let[i,n]of Object.entries(r)){let o=sd[i]||i;s.push(`- ${o}\uFF1A${n} \u4E2A`)}s.push("","<details><summary>\u{1F4CB} \u95EE\u9898\u8BE6\u60C5\uFF08\u70B9\u51FB\u5C55\u5F00\uFF09</summary>","");for(let i=0;i<e.length;i++){let n=e[i],o=sd[n.severity]||n.severity;s.push(`### ${i+1}. ${o} \u2014 \`${n.file}:${n.lineStart}\``,"",n.shortDescription,""),n.suggestion&&s.push(`**\u5EFA\u8BAE\uFF1A** ${n.suggestion}`,""),s.push("---","")}return s.push("</details>","",`*\u5BA1\u67E5\u65F6\u95F4\uFF1A${new Date().toISOString()}*`),s.join(`
418
+ `)}function F$(e){let t=new Map,r=new Map,s=e.oldPath||e.file,i=e.newPath||e.file,n=0,o=0,a=!1;for(let u of e.diff.split(`
419
+ `)){let l=u.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);if(l?.[1]&&l[2]){n=Number.parseInt(l[1],10),o=Number.parseInt(l[2],10),a=!0;continue}if(!(!a||u.startsWith("\"))){if(u.startsWith("+")&&!u.startsWith("+++")){t.set(o,{oldPath:s,newPath:i,newLine:o}),o++;continue}if(u.startsWith("-")&&!u.startsWith("---")){r.set(n,{oldPath:s,newPath:i,oldLine:n}),n++;continue}if(u.startsWith(" ")){let c={oldPath:s,newPath:i,oldLine:n,newLine:o};r.set(n,c),t.set(o,c),n++,o++}}}return{byNewLine:t,byOldLine:r}}function tu(e,t,r){for(let s=t;s<=r;s++){let i=e.get(s);if(i)return i}}function S$(e,t,r){let s=F$(t),i=Math.max(e.lineStart,e.lineEnd),o=t.status==="deleted"||t.isDeletedFile?tu(s.byOldLine,e.lineStart,i)||tu(s.byNewLine,e.lineStart,i):tu(s.byNewLine,e.lineStart,i)||tu(s.byOldLine,e.lineStart,i);return!o||o.oldLine===void 0&&o.newLine===void 0?null:{base_sha:r.baseSha,start_sha:r.startSha,head_sha:r.headSha,position_type:"text",old_path:o.oldPath,new_path:o.newPath,...o.oldLine!==void 0?{old_line:o.oldLine}:{},...o.newLine!==void 0?{new_line:o.newLine}:{}}}function x$(e,t){return{base_sha:t.baseSha,start_sha:t.startSha,head_sha:t.headSha,position_type:"text",new_path:e.file,new_line:e.lineStart}}function A$(e,t){return t.find(r=>new Set([r.file,r.oldPath,r.newPath].filter(Boolean)).has(e.file))}function Vw(){return{id:"gitlab-reporting",name:"GitLab Reporting",description:"\u63A8\u9001\u5BA1\u67E5\u7ED3\u679C\u5230 GitLab MR",enabled:!0,order:9,execute:async e=>{let t=Date.now();if(!On(e.config))return e.quiet||d.info("GitLab \u4E0A\u62A5\u5DF2\u8DF3\u8FC7\uFF1Agitlab.uploadEnabled \u672A\u542F\u7528\u3002\u8BBE\u7F6E gitlab.uploadEnabled=true \u6216 BEST_REVIEW_GITLAB_ENABLED=true \u540E\u624D\u4F1A\u56DE\u8BC4 MR\u3002"),{stageId:"gitlab-reporting",stageName:"GitLab Reporting",success:!0,duration:Date.now()-t,output:{skipped:!0,reason:"gitlab.uploadEnabled \u672A\u542F\u7528"}};let s=m$(e);if(!s)return{stageId:"gitlab-reporting",stageName:"GitLab Reporting",success:!0,duration:Date.now()-t,output:{skipped:!0,reason:e.metadata.reviewTarget?"\u7F3A\u5C11 GitLab \u914D\u7F6E\uFF08GITLAB_TOKEN\uFF09":"\u7F3A\u5C11 GitLab \u914D\u7F6E\uFF08GITLAB_HOST/TOKEN/PROJECT_ID/MR_IID\uFF09"}};let i=e.issues;if(i.length===0)return e.quiet||d.info("GitLab \u4E0A\u62A5\uFF1A\u6CA1\u6709\u95EE\u9898\u9700\u8981\u63A8\u9001"),{stageId:"gitlab-reporting",stageName:"GitLab Reporting",success:!0,duration:Date.now()-t,output:{skipped:!0,reason:"\u65E0\u95EE\u9898"}};e.quiet||d.sync(`GitLab \u4E0A\u62A5\uFF1A\u6B63\u5728\u63A8\u9001 ${i.length} \u4E2A\u95EE\u9898...`);let n=await E$(s),o=await g$(e),a=0,u=n.failed,l=[...n.errors],c=[];if(o)for(let p of i){let m=A$(p,e.diffs),g=(m?S$(p,m,o):null)||(s.reviewTarget?null:x$(p,o));if(!g){c.push(p);continue}let D=jw(w$(p),`${p.file}:${p.lineStart}:${p.shortDescription}:${p.agent}`),b=await qw(s,D,g);b.success?a++:(u++,l.push(`${p.file}:${p.lineStart} \u2014 ${b.error}`))}else c.push(...i);let f=!1;if(c.length>0){!e.quiet&&o&&d.info(`GitLab \u4E0A\u62A5\uFF1A${c.length} \u4E2A\u95EE\u9898\u65E0\u6CD5\u6620\u5C04\u5230 diff position\uFF0C\u6539\u4E3A summary`);let p=jw(C$(c,e),`summary:${c.map(g=>`${g.file}:${g.lineStart}:${g.shortDescription}`).join("|")}`),m=await qw(s,p);m.success?(a++,f=!0):(u++,l.push(`summary discussion \u63A8\u9001\u5931\u8D25\uFF1A${m.error}`))}e.quiet||d.done(`GitLab \u4E0A\u62A5\u5B8C\u6210\uFF1A${a}/${a+u} \u6761\u8BC4\u8BBA\u5DF2\u63A8\u9001`);let h={pushed:a,failed:u,inline:o!==null,summary:f,cleanupDeleted:n.deleted,cleanupFailed:n.failed,summaryCount:c.length,...l.length>0?{errors:l.slice(0,10)}:{}};return{stageId:"gitlab-reporting",stageName:"GitLab Reporting",success:u===0,duration:Date.now()-t,output:h,...u>0?{error:`${u} \u6761 GitLab \u64CD\u4F5C\u5931\u8D25`}:{}}}}}function ru(){return[Ny(),Hy(),Jy(),R0(),k0(),T0(),P0(),J0(),Y0(),sw(),bw(),Vw()]}var oi=class{agents=[];executors=new Map;stages=[];constructor(t=[],r=[],s){this.agents=[...t].sort((i,n)=>i.order-n.order);for(let i of r)this.executors.set(i.name,i),De.registerExecutor(i);for(let i of t)Zs.register(i);this.stages=s||ru()}addAgent(t){this.agents.push(t),this.agents.sort((r,s)=>r.order-s.order),Zs.register(t)}removeAgent(t){this.agents=this.agents.filter(r=>r.name!==t),Zs.remove(t)}getAgents(){return this.agents}getEnabledAgents(){return this.agents.filter(t=>t.enabled)}addExecutor(t){this.executors.set(t.name,t),De.registerExecutor(t)}getExecutor(t){return this.executors.get(t)}async execute(t,r={}){let{verbose:s=!1,quiet:i=!1,concurrency:n=3,skipValidation:o=!1,stream:a=!1,baseRef:u,headRef:l,ruleFilter:c,excludeRules:f,agentFilter:h,excludeAgents:p,minConfidence:m,modelOverride:g,fixSeverities:D,fixDryRun:b=!1,fixMaxIssues:w,fixPatchFile:v,repositoryPath:E}=r,C=Date.now(),x=E||process.cwd(),$=r.config,F=r.commitMessages??[];r.commitMessages===void 0&&u&&l&&(F=await Lw(u,l),s&&F.length>0&&d.plain(`\u5DF2\u8BFB\u53D6 ${F.length} \u6761\u63D0\u4EA4\u4FE1\u606F\u4F5C\u4E3A\u4E0A\u4E0B\u6587`));let R={diffs:t,results:[],issues:[],metadata:{timestamp:Date.now(),repository:x,baseRef:u,headRef:l,commitMessages:F.length>0?F:void 0,...r.metadata??{}},verbose:s,quiet:i,stream:a,concurrency:n,agents:[...this.agents],supplementalContextFiles:r.supplementalContextFiles,techDoc:r.techDoc,ruleFilter:c,excludeRules:f,agentFilter:h,excludeAgents:p,skipValidation:o,minConfidence:m,modelOverride:g,fixSeverities:D,fixDryRun:b,fixMaxIssues:w,fixPatchFile:v,config:$},W=[],ae=!1;for(let I of this.stages)if(I.enabled&&!(ae&&I.id!=="reporting"))try{R.stageResults=[...W];let L=await I.execute(R);if(W.push(L),R.stageResults=[...W],!L.success&&(d.error(`\u9636\u6BB5 ${I.name} \u5931\u8D25\uFF1A${L.error}`),ae=!0,I.id==="reporting"))break}catch(L){let Q=L instanceof Error?L.message:String(L);if(d.error(`\u9636\u6BB5 ${I.name} \u5931\u8D25\uFF1A${Q}`),W.push({stageId:I.id,stageName:I.name,success:!1,duration:0,error:Q}),R.stageResults=[...W],ae=!0,I.id==="reporting")break}let K=Date.now()-C;return{success:W.every(I=>I.success),context:R,totalDuration:K,stages:W}}};var ai=require("node:fs/promises"),Kw=require("node:path");Wt();var R$=y.enum(["critical","high","medium","low"]),k$=y.enum(["security","performance","bug","quality","style","docs"]),I$=y.object({file:y.string().min(1),status:y.enum(["modified","added","deleted","renamed"]),diff:y.string(),additions:y.number().nonnegative(),deletions:y.number().nonnegative(),hash:y.string().optional(),oldPath:y.string().optional(),newPath:y.string().optional(),isNewFile:y.boolean().optional(),isDeletedFile:y.boolean().optional(),isRenamedFile:y.boolean().optional()}).strict(),Ww=y.object({id:y.string().min(1),file:y.string().min(1),lineStart:y.number().positive(),lineEnd:y.number().positive(),severity:R$,category:k$,description:y.string().min(1),matchText:y.string().min(1).optional()}).strict(),_$=y.object({minPrecision:y.number().min(0).max(1).optional(),minRecall:y.number().min(0).max(1).optional(),maxDuplicateRate:y.number().min(0).max(1).optional()}).strict(),T$=y.object({file:y.string().min(1),content:y.string(),role:y.enum(["changed-file","dependency"]),source:y.enum(["gitlab-remote","local-git"]),ref:y.string().min(1),relatedFiles:y.array(y.string()).optional()}).strict(),$$=y.object({schemaVersion:y.literal(1),name:y.string().min(1),description:y.string().optional(),diffs:y.array(I$).min(1),expectedIssues:y.array(Ww),expectedFilteredIssues:y.array(Ww).default([]),thresholds:_$.optional(),commitMessages:y.array(y.string()).optional(),supplementalContextFiles:y.array(T$).optional()}).strict();function P$(e){return $$.parse(e)}async function Hw(e){let t=await(0,ai.readFile)(e,"utf-8");try{return P$(JSON.parse(t))}catch(r){let s=r instanceof Error?r.message:String(r);throw new Error(`\u8BC4\u6D4B fixture \u65E0\u6548 ${e}\uFF1A${s}`,{cause:r})}}async function zw(e){if((await(0,ai.stat)(e)).isFile())return[await Hw(e)];let s=(await(0,ai.readdir)(e)).filter(n=>n.endsWith(".json")).sort((n,o)=>n.localeCompare(o));return(await Promise.all(s.map(n=>Hw((0,Kw.join)(e,n))))).sort((n,o)=>n.name.localeCompare(o.name))}function Xw(e,t,r,s,i){return e<=s&&r<=t?!0:Math.abs(e-r)<=i||Math.abs(t-s)<=i||Math.abs(e-s)<=i||Math.abs(t-r)<=i}function B$(e){return[e.shortDescription,e.fullDescription,e.suggestion,e.evidence,e.rule].filter(Boolean).join(`
420
+ `).toLowerCase()}function Jw(e){return new Set(e.toLowerCase().replace(/[^\p{L}\p{N}\s]/gu," ").split(/\s+/).filter(t=>t.length>=3))}function O$(e,t){if(e.size===0&&t.size===0)return 1;if(e.size===0||t.size===0)return 0;let r=0;for(let i of e)t.has(i)&&r++;let s=e.size+t.size-r;return r/s}function su(e,t,r={}){let s=r.requireSeverity??!0;return!(e.file!==t.file||s&&e.severity!==t.severity||e.category!==t.category||!Xw(e.lineStart,e.lineEnd,t.lineStart,t.lineEnd,5)||t.matchText&&!B$(e).includes(t.matchText.toLowerCase()))}function L$(e,t){let r=new Set,s=[],i=[];for(let n of e){let o=t.findIndex((u,l)=>!r.has(l)&&su(u,n,{requireSeverity:!1}));if(o===-1){i.push(n),s.push({expected:n});continue}r.add(o);let a=t[o];s.push({expected:n,issue:a,...a.severity!==n.severity&&{severityMismatch:!0}})}return{matches:s,falseNegatives:i,matchedIssueIndexes:r}}function N$(e,t){return e.file!==t.file||e.category!==t.category||!Xw(e.lineStart,e.lineEnd,t.lineStart,t.lineEnd,10)?!1:O$(Jw(e.shortDescription),Jw(t.shortDescription))>=.6}function Yw(e){let t=[],r=0;for(let s of e){if(t.some(i=>N$(i,s))){r++;continue}t.push(s)}return r}function M$(e){let t=e?.find(s=>s.stageId==="validation")?.output;if(!t||typeof t!="object")return{};let r=t;return{validCount:typeof r.validCount=="number"?r.validCount:void 0,filteredCount:typeof r.filteredCount=="number"?r.filteredCount:void 0}}function Zw(e,t){return Number.isFinite(e)?Math.min(Math.max(e,0),t):0}function j$(e,t){let r=e.diffs.length,s=t?.find(i=>i.stageId==="match-rules")?.output;if(s&&typeof s=="object"){let i=s,n=typeof i.totalDiffFiles=="number"?i.totalDiffFiles:r,o=typeof i.coveredFiles=="number"?Zw(i.coveredFiles,n):Array.isArray(i.uncoveredFiles)?n-Zw(i.uncoveredFiles.length,n):0,a=n-o;return{totalFiles:n,coveredFiles:o,uncoveredFiles:a,coverageRate:ui(o,n,1)}}return{totalFiles:r,coveredFiles:r,uncoveredFiles:0,coverageRate:ui(r,r,1)}}function q$(e,t,r){return e.map(s=>{let i=t.find(o=>su(o,s,{requireSeverity:!1}));if(i)return{expected:s,status:"leaked",issue:i};let n=r?.map(o=>o.issue).find(o=>su(o,s,{requireSeverity:!1}));return n?{expected:s,status:"filtered",issue:n}:{expected:s,status:"absent"}})}function U$(e,t){return e.filter(r=>t?.some(s=>su(s.issue,r,{requireSeverity:!1}))).length}function ui(e,t,r){return t===0?r:e/t}function Qw(e,t){let r=t.context.results.flatMap(x=>x.issues),s=t.context.issues,{matches:i,falseNegatives:n,matchedIssueIndexes:o}=L$(e.expectedIssues,s),a=s.filter((x,$)=>!o.has($)),u=q$(e.expectedFilteredIssues,s,t.context.issueAuditTrail),l=U$(e.expectedFilteredIssues,t.context.issueAuditTrail),c=Yw(r),f=Yw(s),h=M$(t.context.stageResults??t.stages),p=h.validCount??0,m=h.filteredCount??0,g=p+m,D=j$(e,t.context.stageResults??t.stages),b=i.filter(x=>x.issue).length,w=a.length,v=i.filter(x=>x.severityMismatch).length,E=ui(b,b+w,1),C=ui(b,e.expectedIssues.length,1);return{fixtureName:e.name,pipelineSuccess:t.success,metrics:{expectedIssues:e.expectedIssues.length,finalIssues:s.length,rawIssues:r.length,truePositives:b,falsePositives:w,falseNegatives:n.length,severityMismatches:v,precision:E,recall:C,f1:E+C===0?0:2*E*C/(E+C),rawDuplicateCount:c,rawDuplicateRate:ui(c,r.length,0),finalDuplicateCount:f,finalDuplicateRate:ui(f,s.length,0),validationInputCount:g,validationKeptCount:p,validationFilteredCount:m,validationRetentionRate:g===0?null:p/g,reviewTotalFiles:D.totalFiles,reviewCoveredFiles:D.coveredFiles,reviewUncoveredFiles:D.uncoveredFiles,reviewCoverageRate:D.coverageRate,expectedFilteredIssues:e.expectedFilteredIssues.length,expectedFilteredObserved:l,expectedFilteredLeaked:u.filter(x=>x.status==="leaked").length,expectedFilteredAbsent:u.filter(x=>x.status==="absent").length},matchedExpectedIssues:i,falseNegativeExpectedIssues:n,falsePositiveIssues:a,expectedFilteredResults:u}}Rr();function eb(e){return e||"unversioned"}async function tb(e){let[t,r]=await Promise.all([ze({projectPath:e}),Tt(e)]);return{prompts:t.map(s=>({name:s.name,version:eb(s.version),source:s.source,path:s.path})).sort((s,i)=>s.name.localeCompare(i.name)),rules:r.map(s=>({name:s.name,version:eb(s.version),source:s.source,path:s.path})).sort((s,i)=>s.name.localeCompare(i.name))}}var G$=new Set(["load-rules","match-rules","review","aggregate-results","confidence-filter","deduplication","validation"]);function V$(){return{expectedIssues:0,finalIssues:0,rawIssues:0,truePositives:0,falsePositives:0,falseNegatives:0,severityMismatches:0,precision:1,recall:1,f1:1,rawDuplicateCount:0,rawDuplicateRate:0,finalDuplicateCount:0,finalDuplicateRate:0,validationInputCount:0,validationKeptCount:0,validationFilteredCount:0,validationRetentionRate:null,reviewTotalFiles:0,reviewCoveredFiles:0,reviewUncoveredFiles:0,reviewCoverageRate:1,expectedFilteredIssues:0,expectedFilteredObserved:0,expectedFilteredLeaked:0,expectedFilteredAbsent:0}}function Ln(e,t,r){return t===0?r:e/t}function W$(e){let t=V$();for(let r of e){let s=r.metrics;t.expectedIssues+=s.expectedIssues,t.finalIssues+=s.finalIssues,t.rawIssues+=s.rawIssues,t.truePositives+=s.truePositives,t.falsePositives+=s.falsePositives,t.falseNegatives+=s.falseNegatives,t.severityMismatches+=s.severityMismatches,t.rawDuplicateCount+=s.rawDuplicateCount,t.finalDuplicateCount+=s.finalDuplicateCount,t.validationInputCount+=s.validationInputCount,t.validationKeptCount+=s.validationKeptCount,t.validationFilteredCount+=s.validationFilteredCount,t.reviewTotalFiles+=s.reviewTotalFiles,t.reviewCoveredFiles+=s.reviewCoveredFiles,t.reviewUncoveredFiles+=s.reviewUncoveredFiles,t.expectedFilteredIssues+=s.expectedFilteredIssues,t.expectedFilteredObserved+=s.expectedFilteredObserved,t.expectedFilteredLeaked+=s.expectedFilteredLeaked,t.expectedFilteredAbsent+=s.expectedFilteredAbsent}return t.precision=Ln(t.truePositives,t.truePositives+t.falsePositives,1),t.recall=Ln(t.truePositives,t.expectedIssues,1),t.f1=t.precision+t.recall===0?0:2*t.precision*t.recall/(t.precision+t.recall),t.rawDuplicateRate=Ln(t.rawDuplicateCount,t.rawIssues,0),t.finalDuplicateRate=Ln(t.finalDuplicateCount,t.finalIssues,0),t.validationRetentionRate=t.validationInputCount===0?null:t.validationKeptCount/t.validationInputCount,t.reviewCoverageRate=Ln(t.reviewCoveredFiles,t.reviewTotalFiles,1),t}function rb(e,t,r){if(!t)return[];let s=[];return t.minPrecision!==void 0&&e.precision<t.minPrecision&&s.push(`${r}: precision ${e.precision.toFixed(3)} < ${t.minPrecision}`),t.minRecall!==void 0&&e.recall<t.minRecall&&s.push(`${r}: recall ${e.recall.toFixed(3)} < ${t.minRecall}`),t.maxDuplicateRate!==void 0&&e.rawDuplicateRate>t.maxDuplicateRate&&s.push(`${r}: duplicateRate ${e.rawDuplicateRate.toFixed(3)} > ${t.maxDuplicateRate}`),s}async function H$(e){let t=await xr(e.config,{executorOverride:e.executor,modelOverride:e.model});if(!t.ok)throw new Error(t.message||"\u6267\u884C\u5668\u914D\u7F6E\u6821\u9A8C\u5931\u8D25");let[r,s]=await Promise.all([Js(),ze({projectPath:e.projectPath,executorOverride:e.executor,modelOverride:e.model})]),i=ru().filter(n=>G$.has(n.id));return async n=>new oi(s,r,i).execute(n.diffs,{quiet:!0,concurrency:e.config.concurrency,skipValidation:!1,stream:!1,ruleFilter:e.ruleFilter,agentFilter:e.agentFilter,minConfidence:e.confidence,modelOverride:e.model,config:e.config,repositoryPath:e.projectPath,commitMessages:n.commitMessages??[],supplementalContextFiles:n.supplementalContextFiles})}async function K$(e,t){if(e)return t();let r=process.env.BEST_REVIEW_CACHE;process.env.BEST_REVIEW_CACHE="false";try{return await t()}finally{r===void 0?delete process.env.BEST_REVIEW_CACHE:process.env.BEST_REVIEW_CACHE=r}}async function sb(e){let t=e.fixtures??(e.fixturePath?await zw(e.fixturePath):[]);if(t.length===0)throw new Error("\u6CA1\u6709\u627E\u5230\u8BC4\u6D4B fixture");let r=await oe(e.projectPath),s=e.versions??await tb(e.projectPath),i=e.executeFixture??await H$({projectPath:e.projectPath,executor:e.executor,model:e.model,agentFilter:e.agentFilter,ruleFilter:e.ruleFilter,confidence:e.confidence,config:r});return K$(e.useCache,async()=>{let n=[],o=[];for(let u of t){let l=await i(u),c=Qw(u,l);n.push(c),o.push(...rb(c.metrics,u.thresholds,u.name)),c.pipelineSuccess||o.push(`${u.name}: pipeline failed`)}let a=W$(n);return o.push(...rb(a,e.thresholds,"summary")),{schemaVersion:1,generatedAt:new Date().toISOString(),projectPath:e.projectPath,passed:o.length===0,thresholdFailures:o,summary:{fixtures:t.length,metrics:a},fixtureResults:n,versions:s}})}M();var z$="evals/golden";function Zt(e){return e===null?"n/a":`${(e*100).toFixed(1)}%`}function ib(e){return e.length===0?"none":e.map(t=>`${t.name}@${t.version}`).join(", ")}function nb(e){if(Array.isArray(e))return e.length>0?e:void 0;let t=e?.split(",").map(r=>r.trim()).filter(Boolean);return t&&t.length>0?t:void 0}function nd(e,t){if(e===void 0||e==="")return;let r=typeof e=="number"?e:Number(e);if(!Number.isFinite(r)||r<0||r>1)throw new Error(`${t} \u5FC5\u987B\u5728 0-1 \u4E4B\u95F4`);return r}function J$(e){if(e===void 0||e==="")return;let t=typeof e=="number"?e:Number(e);if(!Number.isInteger(t)||t<0||t>100)throw new Error("confidence \u5FC5\u987B\u662F 0-100 \u4E4B\u95F4\u7684\u6574\u6570");return t}async function Y$(e,t){let r=t||(0,ab.join)(e,z$);return await(0,ob.access)(r),r}function Z$(e){let t={minPrecision:nd(e.minPrecision,"minPrecision"),minRecall:nd(e.minRecall,"minRecall"),maxDuplicateRate:nd(e.maxDuplicateRate,"maxDuplicateRate")};return Object.values(t).some(r=>r!==void 0)?t:void 0}function X$(e){let t=e.summary.metrics,r=["\u5BA1\u67E5\u8D28\u91CF\u8BC4\u6D4B",`status: ${e.passed?"pass":"fail"}`,`fixtures: ${e.summary.fixtures}`,`precision: ${Zt(t.precision)}`,`recall: ${Zt(t.recall)}`,`f1: ${Zt(t.f1)}`,`falsePositives: ${t.falsePositives}`,`falseNegatives: ${t.falseNegatives}`,`severityMismatches: ${t.severityMismatches}`,`duplicateRate: ${Zt(t.rawDuplicateRate)}`,`reviewCoverage: ${Zt(t.reviewCoverageRate)}`,`validationRetention: ${Zt(t.validationRetentionRate)}`,`expectedFiltered: observed ${t.expectedFilteredObserved}, leaked ${t.expectedFilteredLeaked}, absent ${t.expectedFilteredAbsent}`,"",`promptVersions: ${ib(e.versions.prompts)}`,`ruleVersions: ${ib(e.versions.rules)}`];if(e.thresholdFailures.length>0){r.push("","thresholdFailures:");for(let s of e.thresholdFailures)r.push(` - ${s}`)}r.push("","fixtures:");for(let s of e.fixtureResults)r.push(` - ${s.fixtureName}: precision ${Zt(s.metrics.precision)}, recall ${Zt(s.metrics.recall)}, FP ${s.metrics.falsePositives}, FN ${s.metrics.falseNegatives}, duplicateRate ${Zt(s.metrics.rawDuplicateRate)}`);return r.join(`
421
+ `)}async function ub(e={}){let t=process.cwd(),r=await Y$(t,e.fixturePath),s=Z$(e),i={projectPath:t,fixturePath:r,executor:e.executor,model:e.model,agentFilter:nb(e.agent),ruleFilter:nb(e.rule),confidence:J$(e.confidence),useCache:e.useCache,thresholds:s},n=await sb(i);return e.json?console.log(JSON.stringify(n,null,2)):d.plain(X$(n)),n.passed||(process.exitCode=1),n}var lb={meta:{name:"eval",description:`\u8FD0\u884C\u5BA1\u67E5\u8D28\u91CF\u8BC4\u6D4B golden fixtures\uFF08\u5B9E\u65F6\u8C03\u7528\u6A21\u578B\uFF09
422
422
 
423
423
  Examples:
424
424
  best-review eval
425
425
  best-review eval evals/golden --json
426
- best-review eval --model gpt-5.4-mini --min-recall 0.9 --min-precision 0.75 --max-duplicate-rate 0.25`},args:{path:{type:"positional",required:!1,description:"fixture \u6587\u4EF6\u6216\u76EE\u5F55\uFF08\u9ED8\u8BA4 evals/golden\uFF09"},json:{type:"boolean",description:"\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u8BC4\u6D4B\u62A5\u544A"},executor:{type:"string",description:"\u8986\u76D6\u6267\u884C\u5668\uFF08openai-compatible-api \u6216 deepseek-api\uFF09"},model:{type:"string",description:"\u8986\u76D6\u6A21\u578B"},agent:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF09"},rule:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF09"},confidence:{type:"string",description:"\u6700\u5C0F\u7F6E\u4FE1\u5EA6\u9608\u503C 0-100"},"use-cache":{type:"boolean",description:"\u5141\u8BB8\u4F7F\u7528 review/validation \u7F13\u5B58\uFF08\u9ED8\u8BA4\u7981\u7528\uFF0C\u786E\u4FDD\u5B9E\u65F6\u8DD1\u6A21\u578B\uFF09"},"min-precision":{type:"string",description:"\u805A\u5408 precision \u95E8\u7981\u9608\u503C\uFF0C0-1"},"min-recall":{type:"string",description:"\u805A\u5408 recall \u95E8\u7981\u9608\u503C\uFF0C0-1"},"max-duplicate-rate":{type:"string",description:"\u805A\u5408\u539F\u59CB\u91CD\u590D\u7387\u4E0A\u9650\uFF0C0-1"}},run:async({args:e})=>{try{await ab({fixturePath:e.path,json:e.json,executor:e.executor,model:e.model,agent:e.agent,rule:e.rule,confidence:e.confidence,useCache:e["use-cache"],minPrecision:e["min-precision"],minRecall:e["min-recall"],maxDuplicateRate:e["max-duplicate-rate"]})}catch(t){let r=t instanceof Error?t.message:String(t);e.json?console.error(JSON.stringify({error:r})):console.error(r),process.exit(1)}}};Ee();M();lf();ka();hf();Df();$a();async function lb(e={}){let t=e.projectPath||process.cwd(),r;if(e.url?r=[e.url]:r=(await oe(t)).extends,r.length===0){d.info("\u6CA1\u6709\u914D\u7F6E extends\u3002\u53EF\u4EE5\u5728 ~/.best-review/config.json \u4E2D\u6DFB\u52A0\uFF1A"),d.info(' { "extends": ["https://github.com/owner/repo"] }'),d.info("\u4E5F\u53EF\u4EE5\u76F4\u63A5\u5B89\u88C5\uFF1Abest-review extends install https://github.com/owner/repo");return}d.info(`\u6B63\u5728\u5B89\u88C5 ${r.length} \u4E2A\u6269\u5C55...`),d.info("");let s=Kt(4),i=r.map(l=>s(async()=>{let c=Aa(l);if(!c)return d.error(`Git URL \u65E0\u6548\uFF1A${l}`),d.info(" \u671F\u671B\u683C\u5F0F\uFF1Ahttps://github.com/owner/repo \u6216 git@host:owner/repo"),d.info(" \u53EF\u9009 ref\uFF1Ahttps://github.com/owner/repo#v1.0"),{status:"error",displayRef:l};let f=Ra(c),h=c.ref?`${f}#${c.ref}`:f;if(!e.force&&await Ia(l))return d.info(` ${h} - \u5DF2\u5B89\u88C5`),{status:"skipped",displayRef:h};try{d.info(` ${h} - \u6B63\u5728 clone...`);let p=cf(c,l),m=await pf(p),g=await mf(p.localPath);return await ff(l,{url:c.url,ref:c.ref,resolvedRef:m,downloadedAt:new Date().toISOString(),path:p.localPath,agents:g.agents,rules:g.rules}),d.success(` ${h} - \u5DF2\u5B89\u88C5\uFF08${g.agents.length} \u4E2A Agent\uFF0C${g.rules.length} \u6761\u89C4\u5219\uFF09`),{status:"success",displayRef:h}}catch(p){let m=p instanceof Error?p.message:String(p);return d.error(` ${h} - \u5931\u8D25\uFF1A${m}`),{status:"error",displayRef:h,message:m}}})),n=await Promise.all(i),o=n.filter(l=>l.status==="success").length,a=n.filter(l=>l.status==="skipped").length,u=n.filter(l=>l.status==="error").length;e.url&&o>0&&(await jD(e.url,!!e.global,t),d.success("\u5DF2\u6DFB\u52A0\u5230\u7528\u6237\u7EA7\u914D\u7F6E")),d.info(""),d.info(`\u5B8C\u6210\uFF1A${o} \u4E2A\u5DF2\u5B89\u88C5\uFF0C${a} \u4E2A\u5DF2\u8DF3\u8FC7\uFF0C${u} \u4E2A\u5931\u8D25`)}async function cb(){let e=await Wt(),t=Object.entries(e.packages);if(t.length===0){d.info("\u5C1A\u672A\u5B89\u88C5 extends\u3002"),d.info("\u8FD0\u884C `best-review extends install` \u53EF\u6309\u914D\u7F6E\u5B89\u88C5\u3002");return}d.info(`\u5DF2\u5B89\u88C5 extends\uFF08${t.length}\uFF09\uFF1A`),d.info("");for(let[r,s]of t){let i=s.agents.length,n=s.rules.length,o=s.resolvedRef.slice(0,7);d.info(` ${r}`),d.info(` Commit\uFF1A${o}`),d.info(` Agent\uFF1A${i>0?s.agents.join(", "):"\uFF08\u65E0\uFF09"}`),d.info(` \u89C4\u5219\uFF1A${n>0?s.rules.join(", "):"\uFF08\u65E0\uFF09"}`),d.info(` \u4E0B\u8F7D\u65F6\u95F4\uFF1A${s.downloadedAt}`),d.info("")}}async function fb(e){let t=Aa(e);if(!t){d.error(`Git URL \u65E0\u6548\uFF1A${e}`);return}if(!await Ia(e)){d.error(`\u6269\u5C55\u5C1A\u672A\u5B89\u88C5\uFF1A${e}`);return}let s=(await Wt()).packages[e];if(s){await gf(s.path),await df(e);let i=Ra(t);d.success(`\u5DF2\u79FB\u9664\uFF1A${i}`)}}var db={meta:{name:"extends",description:`\u7BA1\u7406 extends\uFF08\u4ECE Git \u52A0\u8F7D\u5916\u90E8 Agent \u548C\u89C4\u5219\uFF09
426
+ best-review eval --model gpt-5.4-mini --min-recall 0.9 --min-precision 0.75 --max-duplicate-rate 0.25`},args:{path:{type:"positional",required:!1,description:"fixture \u6587\u4EF6\u6216\u76EE\u5F55\uFF08\u9ED8\u8BA4 evals/golden\uFF09"},json:{type:"boolean",description:"\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u8BC4\u6D4B\u62A5\u544A"},executor:{type:"string",description:"\u8986\u76D6\u6267\u884C\u5668\uFF08openai-compatible-api \u6216 deepseek-api\uFF09"},model:{type:"string",description:"\u8986\u76D6\u6A21\u578B"},agent:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF09"},rule:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF09"},confidence:{type:"string",description:"\u6700\u5C0F\u7F6E\u4FE1\u5EA6\u9608\u503C 0-100"},"use-cache":{type:"boolean",description:"\u5141\u8BB8\u4F7F\u7528 review/validation \u7F13\u5B58\uFF08\u9ED8\u8BA4\u7981\u7528\uFF0C\u786E\u4FDD\u5B9E\u65F6\u8DD1\u6A21\u578B\uFF09"},"min-precision":{type:"string",description:"\u805A\u5408 precision \u95E8\u7981\u9608\u503C\uFF0C0-1"},"min-recall":{type:"string",description:"\u805A\u5408 recall \u95E8\u7981\u9608\u503C\uFF0C0-1"},"max-duplicate-rate":{type:"string",description:"\u805A\u5408\u539F\u59CB\u91CD\u590D\u7387\u4E0A\u9650\uFF0C0-1"}},run:async({args:e})=>{try{await ub({fixturePath:e.path,json:e.json,executor:e.executor,model:e.model,agent:e.agent,rule:e.rule,confidence:e.confidence,useCache:e["use-cache"],minPrecision:e["min-precision"],minRecall:e["min-recall"],maxDuplicateRate:e["max-duplicate-rate"]})}catch(t){let r=t instanceof Error?t.message:String(t);e.json?console.error(JSON.stringify({error:r})):console.error(r),process.exit(1)}}};Ce();M();lf();ka();hf();Df();$a();async function cb(e={}){let t=e.projectPath||process.cwd(),r;if(e.url?r=[e.url]:r=(await oe(t)).extends,r.length===0){d.info("\u6CA1\u6709\u914D\u7F6E extends\u3002\u53EF\u4EE5\u5728 ~/.best-review/config.json \u4E2D\u6DFB\u52A0\uFF1A"),d.info(' { "extends": ["https://github.com/owner/repo"] }'),d.info("\u4E5F\u53EF\u4EE5\u76F4\u63A5\u5B89\u88C5\uFF1Abest-review extends install https://github.com/owner/repo");return}d.info(`\u6B63\u5728\u5B89\u88C5 ${r.length} \u4E2A\u6269\u5C55...`),d.info("");let s=Kt(4),i=r.map(l=>s(async()=>{let c=Aa(l);if(!c)return d.error(`Git URL \u65E0\u6548\uFF1A${l}`),d.info(" \u671F\u671B\u683C\u5F0F\uFF1Ahttps://github.com/owner/repo \u6216 git@host:owner/repo"),d.info(" \u53EF\u9009 ref\uFF1Ahttps://github.com/owner/repo#v1.0"),{status:"error",displayRef:l};let f=Ra(c),h=c.ref?`${f}#${c.ref}`:f;if(!e.force&&await Ia(l))return d.info(` ${h} - \u5DF2\u5B89\u88C5`),{status:"skipped",displayRef:h};try{d.info(` ${h} - \u6B63\u5728 clone...`);let p=cf(c,l),m=await pf(p),g=await mf(p.localPath);return await ff(l,{url:c.url,ref:c.ref,resolvedRef:m,downloadedAt:new Date().toISOString(),path:p.localPath,agents:g.agents,rules:g.rules}),d.success(` ${h} - \u5DF2\u5B89\u88C5\uFF08${g.agents.length} \u4E2A Agent\uFF0C${g.rules.length} \u6761\u89C4\u5219\uFF09`),{status:"success",displayRef:h}}catch(p){let m=p instanceof Error?p.message:String(p);return d.error(` ${h} - \u5931\u8D25\uFF1A${m}`),{status:"error",displayRef:h,message:m}}})),n=await Promise.all(i),o=n.filter(l=>l.status==="success").length,a=n.filter(l=>l.status==="skipped").length,u=n.filter(l=>l.status==="error").length;e.url&&o>0&&(await qD(e.url,!!e.global,t),d.success("\u5DF2\u6DFB\u52A0\u5230\u7528\u6237\u7EA7\u914D\u7F6E")),d.info(""),d.info(`\u5B8C\u6210\uFF1A${o} \u4E2A\u5DF2\u5B89\u88C5\uFF0C${a} \u4E2A\u5DF2\u8DF3\u8FC7\uFF0C${u} \u4E2A\u5931\u8D25`)}async function fb(){let e=await Ht(),t=Object.entries(e.packages);if(t.length===0){d.info("\u5C1A\u672A\u5B89\u88C5 extends\u3002"),d.info("\u8FD0\u884C `best-review extends install` \u53EF\u6309\u914D\u7F6E\u5B89\u88C5\u3002");return}d.info(`\u5DF2\u5B89\u88C5 extends\uFF08${t.length}\uFF09\uFF1A`),d.info("");for(let[r,s]of t){let i=s.agents.length,n=s.rules.length,o=s.resolvedRef.slice(0,7);d.info(` ${r}`),d.info(` Commit\uFF1A${o}`),d.info(` Agent\uFF1A${i>0?s.agents.join(", "):"\uFF08\u65E0\uFF09"}`),d.info(` \u89C4\u5219\uFF1A${n>0?s.rules.join(", "):"\uFF08\u65E0\uFF09"}`),d.info(` \u4E0B\u8F7D\u65F6\u95F4\uFF1A${s.downloadedAt}`),d.info("")}}async function db(e){let t=Aa(e);if(!t){d.error(`Git URL \u65E0\u6548\uFF1A${e}`);return}if(!await Ia(e)){d.error(`\u6269\u5C55\u5C1A\u672A\u5B89\u88C5\uFF1A${e}`);return}let s=(await Ht()).packages[e];if(s){await gf(s.path),await df(e);let i=Ra(t);d.success(`\u5DF2\u79FB\u9664\uFF1A${i}`)}}var hb={meta:{name:"extends",description:`\u7BA1\u7406 extends\uFF08\u4ECE Git \u52A0\u8F7D\u5916\u90E8 Agent \u548C\u89C4\u5219\uFF09
427
427
 
428
428
  Examples:
429
429
  best-review extends install # \u6309\u914D\u7F6E\u5B89\u88C5
430
430
  best-review extends install https://github.com/org/repo # \u5B89\u88C5\u6307\u5B9A URL
431
431
  best-review extends install --force # \u5F3A\u5236\u91CD\u65B0 clone
432
432
  best-review extends list # \u5217\u51FA\u5DF2\u5B89\u88C5\u9879
433
- best-review extends remove https://github.com/org/repo # \u79FB\u9664`},subCommands:{install:{meta:{description:"\u4ECE\u914D\u7F6E\u6216\u6307\u5B9A URL \u5B89\u88C5 extends"},args:{url:{type:"positional",description:"\u8981\u5B89\u88C5\u7684 Git URL\uFF08\u53EF\u9009\uFF1B\u672A\u63D0\u4F9B\u65F6\u8BFB\u53D6\u914D\u7F6E\uFF09",required:!1},force:{type:"boolean",description:"\u5373\u4F7F\u5DF2\u5B89\u88C5\u4E5F\u5F3A\u5236\u91CD\u65B0\u4E0B\u8F7D",alias:"f"},global:{type:"boolean",description:"\u517C\u5BB9\u65E7\u53C2\u6570\uFF1Bextends \u73B0\u5728\u59CB\u7EC8\u5199\u5165 ~/.best-review/config.json",alias:"g"}},run:async({args:e})=>{await lb({force:e.force,url:e.url,global:e.global})}},list:{meta:{description:"\u5217\u51FA\u5DF2\u5B89\u88C5\u7684 extends"},run:async()=>{await cb()}},remove:{meta:{description:"\u79FB\u9664\u5DF2\u5B89\u88C5\u7684 extend"},args:{ref:{type:"positional",description:"Git URL\uFF08\u4F8B\u5982 https://github.com/owner/repo\uFF09",required:!0}},run:async({args:e})=>{if(!e.ref)throw new Error("\u5FC5\u987B\u63D0\u4F9B extend \u5F15\u7528");await fb(e.ref)}}}};var ci=require("node:process"),wb=require("node:readline/promises");Ee();Ge();var iu=require("node:process"),li=require("node:fs/promises"),hb=require("node:path"),pb=require("node:readline/promises"),mb=require("node:stream");Ee();M();function od(e=process.env){return ii(e)?[]:["BEST_REVIEW_HISTORY_USER_TOKEN"]}function ad(e){return`\u7F3A\u5C11 GitLab \u914D\u7F6E\uFF1A${e.join(", ")}\u3002\u8BF7\u5148\u914D\u7F6E review-mr \u6240\u9700\u7684 GitLab \u8BFB\u53D6 token\u3002`}function Pt(e){let t=e?.trim();if(!(!t||t.toLowerCase()==="skip"))return t}async function gb(){let e=await oe();return Pt(e.gitlab?.token)}async function J$(e){let t=Pt(e);if(!t)throw new Error("GITLAB_TOKEN \u4E0D\u80FD\u4E3A\u7A7A\u3002");let r=Cr(),s={};try{s=JSON.parse(await(0,li.readFile)(r,"utf-8"))}catch{}let i=typeof s.gitlab=="object"&&s.gitlab!==null?s.gitlab:{};return s.gitlab={...i,token:t},await(0,li.mkdir)((0,hb.dirname)(r),{recursive:!0}),await(0,li.writeFile)(r,JSON.stringify(s,null,2)),Sa(),process.env.GITLAB_TOKEN=t,r}function Y$(e){let t=!1,r=new mb.Writable({write(s,i,n){t||e.write(s),n()}});return r.isTTY=e.isTTY,r.columns=e.columns,r.rows=e.rows,{output:r,setMuted:s=>{t=s}}}async function Z$(e,t={}){let r=t.input||iu.stdin,s=t.output||iu.stdout;s.write(`${e}: `);let i=Y$(s),n=(0,pb.createInterface)({input:r,output:i.output,terminal:!0});try{return i.setMuted(!0),(await n.question("")).trim()}finally{i.setMuted(!1),s.write(`
434
- `),n.close()}}async function ud(e){e.projectPath;let t=Cr(),r=await gb(),s=Pt(process.env.GITLAB_TOKEN),i=r||s,n=e.token,o=n!==void 0;if(n===void 0&&e.interactive){let u=i?"GITLAB_TOKEN\uFF08\u5DF2\u914D\u7F6E\uFF0C\u56DE\u8F66\u4FDD\u7559\uFF1B\u8F93\u5165\u65B0 token \u53EF\u66F4\u65B0\uFF1B\u8F93\u5165 skip \u8DF3\u8FC7\uFF09":"GITLAB_TOKEN\uFF08\u7528\u4E8E review-mr \u56DE\u8BC4 MR\uFF0C\u56DE\u8F66\u8DF3\u8FC7\uFF09";n=await(e.prompt||Z$)(u)}let a=Pt(n);return a?{configPath:await J$(a),gitLabTokenSet:!0}:o?{configPath:t,gitLabTokenSet:!1}:(i&&(process.env.GITLAB_TOKEN=i),{configPath:t,gitLabTokenSet:!!i})}async function ld(e){if(e.projectPath,Pt(process.env.GITLAB_TOKEN))return!0;let r=await gb();if(r)return process.env.GITLAB_TOKEN=r,!0;if(!e.interactive||e.json)return!1;d.warn("review-mr \u9700\u8981 GITLAB_TOKEN \u624D\u80FD\u56DE\u8BC4 GitLab MR\u3002");let s=await ud({projectPath:e.projectPath,interactive:!0,prompt:e.prompt});return s.gitLabTokenSet&&d.success(`GITLAB_TOKEN \u5DF2\u5199\u5165 ${s.configPath}`),s.gitLabTokenSet}M();function Db(e){let t=e?.trim().toLowerCase();if(t){if(["openai","openai-compatible",Ae].includes(t))return"openai";if(["deepseek",me].includes(t))return"deepseek"}}function X$(e){let t=e?.trim().toUpperCase();if(t)return t==="GITLAB_TOKEN"?"GITLAB_TOKEN":void 0}function Q$(e){return e==="openai"?Ae:me}async function nu(e,t){let r=(0,wb.createInterface)({input:ci.stdin,output:ci.stdout});try{let s=t?` (${t})`:"";return(await r.question(`${e}${s}: `)).trim()||t||""}finally{r.close()}}function eP(e,t){return{...e,executor:t,executors:{...e.executors,[Ae]:{...e.executors[Ae],review:{concurrency:2,...e.executors[Ae]?.review},validation:{timeout:Er,batchSize:10,concurrency:1,...e.executors[Ae]?.validation}},[me]:{...e.executors[me],review:{concurrency:2,...e.executors[me]?.review},validation:{timeout:Er,batchSize:10,concurrency:1,...e.executors[me]?.validation}}}}}async function bb(e={}){let t=e.projectPath||process.cwd(),r=e.interactive!==!1&&ci.stdin.isTTY&&ci.stdout.isTTY,s=X$(e.target);if(e.target&&!s){d.error("\u4E0D\u652F\u6301\u7684 init \u914D\u7F6E\u9879\u3002\u5F53\u524D\u4EC5\u652F\u6301 GITLAB_TOKEN\u3002"),process.exitCode=1;return}if(s==="GITLAB_TOKEN"){let g=await yb(t,e,r);return g.gitLabTokenSet?(d.success("GITLAB_TOKEN \u914D\u7F6E\u5B8C\u6210"),d.plain(`\u914D\u7F6E\uFF1A${g.configPath}`)):d.info("\u5DF2\u8DF3\u8FC7 GITLAB_TOKEN \u914D\u7F6E"),{configPath:g.configPath,platform:"deepseek",executor:me,baseUrl:"",model:"",apiKeySet:!1,gitLabTokenSet:g.gitLabTokenSet,gitLabConfigPath:g.configPath}}let i=Db(e.provider);if(e.provider&&!i){d.error("\u4E0D\u652F\u6301\u7684\u6A21\u578B\u670D\u52A1\u3002\u8BF7\u4F7F\u7528 openai \u6216 deepseek\u3002"),process.exitCode=1;return}if(!i&&r)for(;!i;)i=Db(await nu("\u9009\u62E9\u6A21\u578B\u670D\u52A1\uFF1Aopenai \u6216 deepseek","deepseek")),i||d.warn("\u8BF7\u8F93\u5165 openai \u6216 deepseek\u3002");i??="deepseek";let n=$D(i),o=e.baseUrl||(r?await nu("BASE_URL",n.baseUrl):n.baseUrl),a=e.apiKey||process.env.API_KEY||"";r&&(a=await nu("API_KEY",a));let u=e.model||(r?await nu("MODEL",n.model):n.model);if(!a){d.error("\u7F3A\u5C11 API_KEY\u3002\u8BF7\u91CD\u65B0\u8FD0\u884C best-review init \u5E76\u586B\u5199 API Key\u3002"),process.exitCode=1;return}let l=Q$(i),c=e.force?Dn():await oe(),f=eP(c,l);f.llm={platform:i,baseUrl:o,apiKey:a,model:u},await Fa(f);let h=Cr(),p=await yb(t,e,r),m={configPath:h,platform:i,executor:l,baseUrl:o,model:u,apiKeySet:!!a,gitLabTokenSet:p.gitLabTokenSet,gitLabConfigPath:p.configPath};return d.success("\u9879\u76EE\u521D\u59CB\u5316\u5B8C\u6210"),d.plain(`\u914D\u7F6E\uFF1A${h}`),d.plain(`\u5E73\u53F0\uFF1A${i}`),d.plain(`Base URL\uFF1A${o}`),d.plain(`\u6A21\u578B\uFF1A${u}`),d.plain(`API Key\uFF1A${m.apiKeySet?"\u5DF2\u5199\u5165\u7528\u6237\u7EA7 config.json":"\u672A\u8BBE\u7F6E"}`),d.plain(`GITLAB_TOKEN\uFF1A${m.gitLabTokenSet?`\u5DF2\u914D\u7F6E\uFF08${p.configPath}\uFF09`:"\u5DF2\u8DF3\u8FC7"}`),e.runDoctor!==!1&&await Ys({projectPath:t}),m}function yb(e,t,r){return ud({projectPath:e,token:t.gitLabToken,interactive:r})}var vb={meta:{name:"init",description:"\u521D\u59CB\u5316\u7528\u6237\u7EA7 best-review \u914D\u7F6E\u548C\u6A21\u578B\u670D\u52A1"},args:{target:{type:"positional",required:!1,description:"\u5355\u72EC\u914D\u7F6E\u67D0\u4E2A\u914D\u7F6E\u9879\uFF0C\u76EE\u524D\u652F\u6301 GITLAB_TOKEN"},force:{type:"boolean",description:"\u7528\u9ED8\u8BA4\u503C\u91CD\u5EFA\u7528\u6237\u7EA7 ~/.best-review/config.json",alias:"f"},provider:{type:"string",description:"\u6A21\u578B\u670D\u52A1\uFF1Aopenai \u6216 deepseek"},"base-url":{type:"string",description:"\u6A21\u578B\u670D\u52A1 Base URL"},"api-key":{type:"string",description:"\u6A21\u578B\u670D\u52A1 API Key\uFF0C\u4F1A\u5199\u5165\u7528\u6237\u7EA7 config.json"},"gitlab-token":{type:"string",description:"GitLab Personal Access Token\uFF0C\u4F1A\u5199\u5165\u7528\u6237\u7EA7 config.json \u7684 gitlab.token"},model:{type:"string",description:"\u6A21\u578B\u540D\u79F0\uFF0C\u4F8B\u5982 gpt-5.4-mini \u6216 deepseek-v4-flash"},"no-interactive":{type:"boolean",description:"\u7981\u7528\u4EA4\u4E92\u5F0F\u63D0\u95EE"},"skip-doctor":{type:"boolean",description:"\u521D\u59CB\u5316\u540E\u4E0D\u6267\u884C\u8054\u901A\u68C0\u67E5"}},run:async({args:e})=>{await bb({target:e.target,force:e.force,provider:e.provider,baseUrl:e["base-url"],apiKey:e["api-key"],gitLabToken:e["gitlab-token"],model:e.model,interactive:!e["no-interactive"],runDoctor:!e["skip-doctor"]})}};Rr();M();function tP(e){switch(e){case"defaults":return"\u25C6";case"extends":return"\u25C9";case"user":return"\u25C7";default:return"?"}}async function Eb(){let e=await Tt();if(e.length===0){d.warn("\u6CA1\u6709\u914D\u7F6E\u89C4\u5219");return}d.robot("\u89C4\u5219"),d.newline();for(let t of e){let r=tP(t.source),s=Di(t.path);d.plain(`${r} ${t.name}`),d.plain(` Agent\uFF1A${t.agent}`),d.plain(` \u6A21\u5F0F\uFF1A${t.patterns.join(", ")}`),d.plain(` \u8DEF\u5F84\uFF1A${s}`),d.newline()}d.plain("\u25C6 \u5185\u7F6E \u25C9 extends \u25C7 \u7528\u6237")}async function Cb(e){let{loadRuleFromRef:t}=await Promise.resolve().then(()=>(Rr(),Oy)),s=(await Tt()).find(n=>n.name===e);s||(d.error(`\u89C4\u5219\u4E0D\u5B58\u5728\uFF1A${e}`),process.exit(1));let i=await t(s);i||(d.error(`\u52A0\u8F7D\u89C4\u5219\u5185\u5BB9\u5931\u8D25\uFF1A${s.path}`),process.exit(1)),d.robot(`\u89C4\u5219\uFF1A${i.name}`),d.newline(),d.plain(`\u6765\u6E90\uFF1A${s.source}`),d.plain(`\u8DEF\u5F84\uFF1A${s.path}`),d.plain(`\u8BF4\u660E\uFF1A${i.description}`),d.plain(`\u6A21\u5F0F\uFF1A${i.patterns.join(", ")}`),d.plain(`Agent\uFF1A${i.agent}`),i.prompt&&(d.newline(),d.plain("Prompt\uFF1A"),d.separator("\u2500"),d.plain(i.prompt),d.separator("\u2500"))}async function Fb(e,t){let s=(await Tt()).find(o=>o.name===e);s||(d.error(`\u89C4\u5219\u4E0D\u5B58\u5728\uFF1A${e}`),process.exit(1)),d.robot(`\u6D4B\u8BD5\u89C4\u5219\uFF1A${s.name}`),d.plain(`\u6A21\u5F0F\uFF1A${s.patterns.join(", ")}`),d.newline();let i=[],n=[];for(let o of t)s.patterns.some(u=>Ar(o,u))?i.push(o):n.push(o);d.success(`\u547D\u4E2D ${i.length} \u4E2A\u6587\u4EF6\uFF1A`);for(let o of i)d.plain(` \u25CF ${o}`);if(n.length>0){d.newline(),d.plain(`\u672A\u547D\u4E2D ${n.length} \u4E2A\u6587\u4EF6\uFF1A`);for(let o of n)d.plain(` \u25CB ${o}`)}}var Sb={meta:{name:"rules",description:`\u5217\u51FA\u89C4\u5219\uFF0C\u6216\u67E5\u770B\u67D0\u6761\u89C4\u5219\u7684\u8BE6\u60C5
433
+ best-review extends remove https://github.com/org/repo # \u79FB\u9664`},subCommands:{install:{meta:{description:"\u4ECE\u914D\u7F6E\u6216\u6307\u5B9A URL \u5B89\u88C5 extends"},args:{url:{type:"positional",description:"\u8981\u5B89\u88C5\u7684 Git URL\uFF08\u53EF\u9009\uFF1B\u672A\u63D0\u4F9B\u65F6\u8BFB\u53D6\u914D\u7F6E\uFF09",required:!1},force:{type:"boolean",description:"\u5373\u4F7F\u5DF2\u5B89\u88C5\u4E5F\u5F3A\u5236\u91CD\u65B0\u4E0B\u8F7D",alias:"f"},global:{type:"boolean",description:"\u517C\u5BB9\u65E7\u53C2\u6570\uFF1Bextends \u73B0\u5728\u59CB\u7EC8\u5199\u5165 ~/.best-review/config.json",alias:"g"}},run:async({args:e})=>{await cb({force:e.force,url:e.url,global:e.global})}},list:{meta:{description:"\u5217\u51FA\u5DF2\u5B89\u88C5\u7684 extends"},run:async()=>{await fb()}},remove:{meta:{description:"\u79FB\u9664\u5DF2\u5B89\u88C5\u7684 extend"},args:{ref:{type:"positional",description:"Git URL\uFF08\u4F8B\u5982 https://github.com/owner/repo\uFF09",required:!0}},run:async({args:e})=>{if(!e.ref)throw new Error("\u5FC5\u987B\u63D0\u4F9B extend \u5F15\u7528");await db(e.ref)}}}};var ci=require("node:process"),bb=require("node:readline/promises");Ce();Ve();var iu=require("node:process"),li=require("node:fs/promises"),pb=require("node:path"),mb=require("node:readline/promises"),gb=require("node:stream");Ce();M();function od(e=process.env){return ii(e)?[]:["BEST_REVIEW_HISTORY_USER_TOKEN"]}function ad(e){return`\u7F3A\u5C11 GitLab \u914D\u7F6E\uFF1A${e.join(", ")}\u3002\u8BF7\u5148\u914D\u7F6E review-mr \u6240\u9700\u7684 GitLab \u8BFB\u53D6 token\u3002`}function Pt(e){let t=e?.trim();if(!(!t||t.toLowerCase()==="skip"))return t}async function Db(){let e=await oe();return Pt(e.gitlab?.token)}async function Q$(e){let t=Pt(e);if(!t)throw new Error("GITLAB_TOKEN \u4E0D\u80FD\u4E3A\u7A7A\u3002");let r=Cr(),s={};try{s=JSON.parse(await(0,li.readFile)(r,"utf-8"))}catch{}let i=typeof s.gitlab=="object"&&s.gitlab!==null?s.gitlab:{};return s.gitlab={...i,token:t},await(0,li.mkdir)((0,pb.dirname)(r),{recursive:!0}),await(0,li.writeFile)(r,JSON.stringify(s,null,2)),Sa(),process.env.GITLAB_TOKEN=t,r}function eP(e){let t=!1,r=new gb.Writable({write(s,i,n){t||e.write(s),n()}});return r.isTTY=e.isTTY,r.columns=e.columns,r.rows=e.rows,{output:r,setMuted:s=>{t=s}}}async function tP(e,t={}){let r=t.input||iu.stdin,s=t.output||iu.stdout;s.write(`${e}: `);let i=eP(s),n=(0,mb.createInterface)({input:r,output:i.output,terminal:!0});try{return i.setMuted(!0),(await n.question("")).trim()}finally{i.setMuted(!1),s.write(`
434
+ `),n.close()}}async function ud(e){e.projectPath;let t=Cr(),r=await Db(),s=Pt(process.env.GITLAB_TOKEN),i=r||s,n=e.token,o=n!==void 0;if(n===void 0&&e.interactive){let u=i?"GITLAB_TOKEN\uFF08\u5DF2\u914D\u7F6E\uFF0C\u56DE\u8F66\u4FDD\u7559\uFF1B\u8F93\u5165\u65B0 token \u53EF\u66F4\u65B0\uFF1B\u8F93\u5165 skip \u8DF3\u8FC7\uFF09":"GITLAB_TOKEN\uFF08\u7528\u4E8E review-mr \u56DE\u8BC4 MR\uFF0C\u56DE\u8F66\u8DF3\u8FC7\uFF09";n=await(e.prompt||tP)(u)}let a=Pt(n);return a?{configPath:await Q$(a),gitLabTokenSet:!0}:o?{configPath:t,gitLabTokenSet:!1}:(i&&(process.env.GITLAB_TOKEN=i),{configPath:t,gitLabTokenSet:!!i})}async function ld(e){if(e.projectPath,Pt(process.env.GITLAB_TOKEN))return!0;let r=await Db();if(r)return process.env.GITLAB_TOKEN=r,!0;if(!e.interactive||e.json)return!1;d.warn("review-mr \u9700\u8981 GITLAB_TOKEN \u624D\u80FD\u56DE\u8BC4 GitLab MR\u3002");let s=await ud({projectPath:e.projectPath,interactive:!0,prompt:e.prompt});return s.gitLabTokenSet&&d.success(`GITLAB_TOKEN \u5DF2\u5199\u5165 ${s.configPath}`),s.gitLabTokenSet}M();function yb(e){let t=e?.trim().toLowerCase();if(t){if(["openai","openai-compatible",Re].includes(t))return"openai";if(["deepseek",ge].includes(t))return"deepseek"}}function rP(e){let t=e?.trim().toUpperCase();if(t)return t==="GITLAB_TOKEN"?"GITLAB_TOKEN":void 0}function sP(e){return e==="openai"?Re:ge}async function nu(e,t){let r=(0,bb.createInterface)({input:ci.stdin,output:ci.stdout});try{let s=t?` (${t})`:"";return(await r.question(`${e}${s}: `)).trim()||t||""}finally{r.close()}}function iP(e,t){return{...e,executor:t,executors:{...e.executors,[Re]:{...e.executors[Re],review:{concurrency:2,...e.executors[Re]?.review},validation:{timeout:Er,batchSize:10,concurrency:1,...e.executors[Re]?.validation}},[ge]:{...e.executors[ge],review:{concurrency:2,...e.executors[ge]?.review},validation:{timeout:Er,batchSize:10,concurrency:1,...e.executors[ge]?.validation}}}}}async function vb(e={}){let t=e.projectPath||process.cwd(),r=e.interactive!==!1&&ci.stdin.isTTY&&ci.stdout.isTTY,s=rP(e.target);if(e.target&&!s){d.error("\u4E0D\u652F\u6301\u7684 init \u914D\u7F6E\u9879\u3002\u5F53\u524D\u4EC5\u652F\u6301 GITLAB_TOKEN\u3002"),process.exitCode=1;return}if(s==="GITLAB_TOKEN"){let g=await wb(t,e,r);return g.gitLabTokenSet?(d.success("GITLAB_TOKEN \u914D\u7F6E\u5B8C\u6210"),d.plain(`\u914D\u7F6E\uFF1A${g.configPath}`)):d.info("\u5DF2\u8DF3\u8FC7 GITLAB_TOKEN \u914D\u7F6E"),{configPath:g.configPath,platform:"deepseek",executor:ge,baseUrl:"",model:"",apiKeySet:!1,gitLabTokenSet:g.gitLabTokenSet,gitLabConfigPath:g.configPath}}let i=yb(e.provider);if(e.provider&&!i){d.error("\u4E0D\u652F\u6301\u7684\u6A21\u578B\u670D\u52A1\u3002\u8BF7\u4F7F\u7528 openai \u6216 deepseek\u3002"),process.exitCode=1;return}if(!i&&r)for(;!i;)i=yb(await nu("\u9009\u62E9\u6A21\u578B\u670D\u52A1\uFF1Aopenai \u6216 deepseek","deepseek")),i||d.warn("\u8BF7\u8F93\u5165 openai \u6216 deepseek\u3002");i??="deepseek";let n=PD(i),o=e.baseUrl||(r?await nu("BASE_URL",n.baseUrl):n.baseUrl),a=e.apiKey||process.env.API_KEY||"";r&&(a=await nu("API_KEY",a));let u=e.model||(r?await nu("MODEL",n.model):n.model);if(!a){d.error("\u7F3A\u5C11 API_KEY\u3002\u8BF7\u91CD\u65B0\u8FD0\u884C best-review init \u5E76\u586B\u5199 API Key\u3002"),process.exitCode=1;return}let l=sP(i),c=e.force?yn():await oe(),f=iP(c,l);f.llm={platform:i,baseUrl:o,apiKey:a,model:u},await Fa(f);let h=Cr(),p=await wb(t,e,r),m={configPath:h,platform:i,executor:l,baseUrl:o,model:u,apiKeySet:!!a,gitLabTokenSet:p.gitLabTokenSet,gitLabConfigPath:p.configPath};return d.success("\u9879\u76EE\u521D\u59CB\u5316\u5B8C\u6210"),d.plain(`\u914D\u7F6E\uFF1A${h}`),d.plain(`\u5E73\u53F0\uFF1A${i}`),d.plain(`Base URL\uFF1A${o}`),d.plain(`\u6A21\u578B\uFF1A${u}`),d.plain(`API Key\uFF1A${m.apiKeySet?"\u5DF2\u5199\u5165\u7528\u6237\u7EA7 config.json":"\u672A\u8BBE\u7F6E"}`),d.plain(`GITLAB_TOKEN\uFF1A${m.gitLabTokenSet?`\u5DF2\u914D\u7F6E\uFF08${p.configPath}\uFF09`:"\u5DF2\u8DF3\u8FC7"}`),e.runDoctor!==!1&&await Ys({projectPath:t}),m}function wb(e,t,r){return ud({projectPath:e,token:t.gitLabToken,interactive:r})}var Eb={meta:{name:"init",description:"\u521D\u59CB\u5316\u7528\u6237\u7EA7 best-review \u914D\u7F6E\u548C\u6A21\u578B\u670D\u52A1"},args:{target:{type:"positional",required:!1,description:"\u5355\u72EC\u914D\u7F6E\u67D0\u4E2A\u914D\u7F6E\u9879\uFF0C\u76EE\u524D\u652F\u6301 GITLAB_TOKEN"},force:{type:"boolean",description:"\u7528\u9ED8\u8BA4\u503C\u91CD\u5EFA\u7528\u6237\u7EA7 ~/.best-review/config.json",alias:"f"},provider:{type:"string",description:"\u6A21\u578B\u670D\u52A1\uFF1Aopenai \u6216 deepseek"},"base-url":{type:"string",description:"\u6A21\u578B\u670D\u52A1 Base URL"},"api-key":{type:"string",description:"\u6A21\u578B\u670D\u52A1 API Key\uFF0C\u4F1A\u5199\u5165\u7528\u6237\u7EA7 config.json"},"gitlab-token":{type:"string",description:"GitLab Personal Access Token\uFF0C\u4F1A\u5199\u5165\u7528\u6237\u7EA7 config.json \u7684 gitlab.token"},model:{type:"string",description:"\u6A21\u578B\u540D\u79F0\uFF0C\u4F8B\u5982 gpt-5.4-mini \u6216 deepseek-v4-flash"},"no-interactive":{type:"boolean",description:"\u7981\u7528\u4EA4\u4E92\u5F0F\u63D0\u95EE"},"skip-doctor":{type:"boolean",description:"\u521D\u59CB\u5316\u540E\u4E0D\u6267\u884C\u8054\u901A\u68C0\u67E5"}},run:async({args:e})=>{await vb({target:e.target,force:e.force,provider:e.provider,baseUrl:e["base-url"],apiKey:e["api-key"],gitLabToken:e["gitlab-token"],model:e.model,interactive:!e["no-interactive"],runDoctor:!e["skip-doctor"]})}};Rr();M();function nP(e){switch(e){case"defaults":return"\u25C6";case"extends":return"\u25C9";case"user":return"\u25C7";default:return"?"}}async function Cb(){let e=await Tt();if(e.length===0){d.warn("\u6CA1\u6709\u914D\u7F6E\u89C4\u5219");return}d.robot("\u89C4\u5219"),d.newline();for(let t of e){let r=nP(t.source),s=yi(t.path);d.plain(`${r} ${t.name}`),d.plain(` Agent\uFF1A${t.agent}`),d.plain(` \u6A21\u5F0F\uFF1A${t.patterns.join(", ")}`),d.plain(` \u8DEF\u5F84\uFF1A${s}`),d.newline()}d.plain("\u25C6 \u5185\u7F6E \u25C9 extends \u25C7 \u7528\u6237")}async function Fb(e){let{loadRuleFromRef:t}=await Promise.resolve().then(()=>(Rr(),Ly)),s=(await Tt()).find(n=>n.name===e);s||(d.error(`\u89C4\u5219\u4E0D\u5B58\u5728\uFF1A${e}`),process.exit(1));let i=await t(s);i||(d.error(`\u52A0\u8F7D\u89C4\u5219\u5185\u5BB9\u5931\u8D25\uFF1A${s.path}`),process.exit(1)),d.robot(`\u89C4\u5219\uFF1A${i.name}`),d.newline(),d.plain(`\u6765\u6E90\uFF1A${s.source}`),d.plain(`\u8DEF\u5F84\uFF1A${s.path}`),d.plain(`\u8BF4\u660E\uFF1A${i.description}`),d.plain(`\u6A21\u5F0F\uFF1A${i.patterns.join(", ")}`),d.plain(`Agent\uFF1A${i.agent}`),i.prompt&&(d.newline(),d.plain("Prompt\uFF1A"),d.separator("\u2500"),d.plain(i.prompt),d.separator("\u2500"))}async function Sb(e,t){let s=(await Tt()).find(o=>o.name===e);s||(d.error(`\u89C4\u5219\u4E0D\u5B58\u5728\uFF1A${e}`),process.exit(1)),d.robot(`\u6D4B\u8BD5\u89C4\u5219\uFF1A${s.name}`),d.plain(`\u6A21\u5F0F\uFF1A${s.patterns.join(", ")}`),d.newline();let i=[],n=[];for(let o of t)s.patterns.some(u=>Ar(o,u))?i.push(o):n.push(o);d.success(`\u547D\u4E2D ${i.length} \u4E2A\u6587\u4EF6\uFF1A`);for(let o of i)d.plain(` \u25CF ${o}`);if(n.length>0){d.newline(),d.plain(`\u672A\u547D\u4E2D ${n.length} \u4E2A\u6587\u4EF6\uFF1A`);for(let o of n)d.plain(` \u25CB ${o}`)}}var xb={meta:{name:"rules",description:`\u5217\u51FA\u89C4\u5219\uFF0C\u6216\u67E5\u770B\u67D0\u6761\u89C4\u5219\u7684\u8BE6\u60C5
435
435
 
436
436
  Examples:
437
437
  best-review rules # \u5217\u51FA\u6240\u6709\u89C4\u5219
438
438
  best-review rules code-security # \u67E5\u770B\u89C4\u5219\u8BE6\u60C5
439
- best-review rules test code-security src/*.ts # \u6D4B\u8BD5\u89C4\u5219\u5339\u914D`},args:{name:{type:"positional",description:'\u89C4\u5219\u540D\u79F0\uFF0C\u6216 "test" \u5B50\u547D\u4EE4',required:!1},rest:{type:"positional",description:"test \u7528\u6CD5\uFF1A<rule-name> <files...>",required:!1}},run:async({args:e})=>{if(e.name==="test"){let t=e._||[],r=t[0],s=t.slice(1);(!r||s.length===0)&&(console.error("\u7528\u6CD5\uFF1Abest-review rules test <rule-name> <files...>"),process.exit(1)),await Fb(r,s)}else e.name?await Cb(e.name):await Eb()}};var Bt=require("node:fs/promises"),xb=require("node:os"),fi=require("node:path"),Ab=require("node:child_process"),Rb=require("node:util");M();var rP=(0,Rb.promisify)(Ab.execFile),sP="best-review.md",iP="best-review-create-rule.md";async function kb(e){try{return await rP(e,["--version"]),!0}catch{return!1}}var nP=`---
439
+ best-review rules test code-security src/*.ts # \u6D4B\u8BD5\u89C4\u5219\u5339\u914D`},args:{name:{type:"positional",description:'\u89C4\u5219\u540D\u79F0\uFF0C\u6216 "test" \u5B50\u547D\u4EE4',required:!1},rest:{type:"positional",description:"test \u7528\u6CD5\uFF1A<rule-name> <files...>",required:!1}},run:async({args:e})=>{if(e.name==="test"){let t=e._||[],r=t[0],s=t.slice(1);(!r||s.length===0)&&(console.error("\u7528\u6CD5\uFF1Abest-review rules test <rule-name> <files...>"),process.exit(1)),await Sb(r,s)}else e.name?await Fb(e.name):await Cb()}};var Bt=require("node:fs/promises"),Ab=require("node:os"),fi=require("node:path"),Rb=require("node:child_process"),kb=require("node:util");M();var oP=(0,kb.promisify)(Rb.execFile),aP="best-review.md",uP="best-review-create-rule.md";async function Ib(e){try{return await oP(e,["--version"]),!0}catch{return!1}}var lP=`---
440
440
  description: \u4F7F\u7528 best-review \u8FD0\u884C AI \u4EE3\u7801\u5BA1\u67E5
441
441
  ---
442
442
 
@@ -501,7 +501,7 @@ best-review review $ARGUMENTS
501
501
  3. \u5173\u952E\u5EFA\u8BAE
502
502
 
503
503
  \u5982\u679C\u53D1\u73B0\u95EE\u9898\uFF0C\u4E3B\u52A8\u63D0\u51FA\u53EF\u4EE5\u7EE7\u7EED\u5E2E\u52A9\u4FEE\u590D\u3002
504
- `,oP=`---
504
+ `,cP=`---
505
505
  description: \u4EA4\u4E92\u5F0F\u521B\u5EFA\u65B0\u7684 best-review \u89C4\u5219
506
506
  ---
507
507
 
@@ -618,16 +618,16 @@ AI: \u5DF2\u521B\u5EFA <global-config-dir>/rules/zod-validation.md
618
618
 
619
619
  \u53EF\u4EE5\u8FD9\u6837\u6D4B\u8BD5\uFF1Abest-review review --rule zod-validation
620
620
  \`\`\`
621
- `,ou=[{filename:sP,template:nP,commandName:"/best-review"},{filename:iP,template:oP,commandName:"/best-review-create-rule"}];function cd(){let e=(0,xb.homedir)();return[{name:"Claude Code",path:(0,fi.join)(e,".claude","commands"),cliCommand:"claude",installUrl:"https://claude.ai/code"},{name:"Cursor Agent",path:(0,fi.join)(e,".cursor","commands"),cliCommand:"cursor-agent",installUrl:"https://cursor.com"}]}async function au(e){try{return await(0,Bt.access)(e),!0}catch{return!1}}async function Ib(e={}){let t=cd(),s=(await Promise.all(t.map(async n=>({target:n,available:await kb(n.cliCommand)})))).filter(n=>n.available).map(n=>n.target);if(s.length===0){d.error("\u6CA1\u6709\u627E\u5230\u53D7\u652F\u6301\u7684 CLI \u5DE5\u5177"),d.newline(),d.plain("best-review \u547D\u4EE4\u9700\u8981\u4EE5\u4E0B CLI \u5DE5\u5177\u4E4B\u4E00\uFF1A"),d.newline();for(let n of t)d.plain(` ${n.name} (${n.cliCommand})`),d.plain(` \u5B89\u88C5\uFF1A${n.installUrl}`);d.newline(),d.plain("\u5B89\u88C5\u540E\u8FD0\u884C\uFF1Abest-review setup-command");return}let i=0;for(let n of s){if(d.plain(`
622
- ${n.name}:`),!await au(n.path))try{await(0,Bt.mkdir)(n.path,{recursive:!0})}catch(o){d.error(` \u521B\u5EFA\u76EE\u5F55\u5931\u8D25\uFF1A${o.message}`);continue}for(let o of ou){let a=(0,fi.join)(n.path,o.filename);if(await au(a)&&!e.force)try{if(await(0,Bt.readFile)(a,"utf-8")===o.template){d.info(` ${o.commandName}\uFF1A\u5DF2\u5B89\u88C5\uFF08\u6700\u65B0\uFF09`);continue}d.warn(` ${o.commandName}\uFF1A\u5DF2\u5B58\u5728\uFF0C\u4F7F\u7528 --force \u8986\u76D6`);continue}catch(u){d.error(` ${o.commandName}\uFF1A\u8BFB\u53D6\u5931\u8D25\uFF1A${u.message}`);continue}try{await(0,Bt.writeFile)(a,o.template,"utf-8"),d.success(` ${o.commandName}\uFF1A\u5DF2\u5B89\u88C5`),i++}catch(u){d.error(` ${o.commandName}\uFF1A\u5B89\u88C5\u5931\u8D25\uFF1A${u.message}`)}}}if(i>0){d.newline();let n=ou.map(o=>o.commandName).join(", ");d.success(`\u5B8C\u6210\uFF01\u53EF\u7528\u547D\u4EE4\uFF1A${n}`)}}async function _b(){let e=cd(),t=0;for(let r of e){let s=0;for(let i of ou){let n=(0,fi.join)(r.path,i.filename);if(await au(n))try{await(0,Bt.unlink)(n),s===0&&d.plain(`
623
- ${r.name}:`),d.success(` ${i.commandName}\uFF1A\u5DF2\u79FB\u9664`),t++,s++}catch(o){d.error(` ${i.commandName}\uFF1A\u79FB\u9664\u5931\u8D25\uFF1A${o.message}`)}}}t===0?d.info("\u6CA1\u6709\u627E\u5230\u5DF2\u5B89\u88C5\u7684\u547D\u4EE4"):(d.newline(),d.success(`\u5DF2\u79FB\u9664 ${t} \u4E2A\u547D\u4EE4\u6587\u4EF6`))}async function Tb(){let e=cd();d.plain(`\u5B89\u88C5\u72B6\u6001
624
- `);let t=await Promise.all(e.map(async r=>{let s=await kb(r.cliCommand),i=await Promise.all(ou.map(async n=>{let o=(0,fi.join)(r.path,n.filename);return{cmdFile:n,commandPath:o,exists:await au(o)}}));return{target:r,cliAvailable:s,commandStatuses:i}}));for(let{target:r,cliAvailable:s,commandStatuses:i}of t){if(d.plain(`${r.name}:`),!s){d.plain(` \u672A\u627E\u5230 CLI\uFF08${r.cliCommand}\uFF09`),d.plain(` \u5B89\u88C5\uFF1A${r.installUrl}`),d.newline();continue}for(let{cmdFile:o,exists:a}of i)a?d.success(` ${o.commandName}\uFF1A\u5DF2\u5B89\u88C5`):d.warn(` ${o.commandName}\uFF1A\u672A\u5B89\u88C5`);i.every(o=>o.exists)||d.plain(" \u8FD0\u884C\uFF1Abest-review setup-command"),d.newline()}}var fd={meta:{name:"setup-command",description:`\u4E3A Claude Code\u3001Cursor Agent \u7B49\u5DE5\u5177\u5B89\u88C5 /best-review \u547D\u4EE4
621
+ `,ou=[{filename:aP,template:lP,commandName:"/best-review"},{filename:uP,template:cP,commandName:"/best-review-create-rule"}];function cd(){let e=(0,Ab.homedir)();return[{name:"Claude Code",path:(0,fi.join)(e,".claude","commands"),cliCommand:"claude",installUrl:"https://claude.ai/code"},{name:"Cursor Agent",path:(0,fi.join)(e,".cursor","commands"),cliCommand:"cursor-agent",installUrl:"https://cursor.com"}]}async function au(e){try{return await(0,Bt.access)(e),!0}catch{return!1}}async function _b(e={}){let t=cd(),s=(await Promise.all(t.map(async n=>({target:n,available:await Ib(n.cliCommand)})))).filter(n=>n.available).map(n=>n.target);if(s.length===0){d.error("\u6CA1\u6709\u627E\u5230\u53D7\u652F\u6301\u7684 CLI \u5DE5\u5177"),d.newline(),d.plain("best-review \u547D\u4EE4\u9700\u8981\u4EE5\u4E0B CLI \u5DE5\u5177\u4E4B\u4E00\uFF1A"),d.newline();for(let n of t)d.plain(` ${n.name} (${n.cliCommand})`),d.plain(` \u5B89\u88C5\uFF1A${n.installUrl}`);d.newline(),d.plain("\u5B89\u88C5\u540E\u8FD0\u884C\uFF1Abest-review setup-command");return}let i=0;for(let n of s){if(d.plain(`
622
+ ${n.name}:`),!await au(n.path))try{await(0,Bt.mkdir)(n.path,{recursive:!0})}catch(o){d.error(` \u521B\u5EFA\u76EE\u5F55\u5931\u8D25\uFF1A${o.message}`);continue}for(let o of ou){let a=(0,fi.join)(n.path,o.filename);if(await au(a)&&!e.force)try{if(await(0,Bt.readFile)(a,"utf-8")===o.template){d.info(` ${o.commandName}\uFF1A\u5DF2\u5B89\u88C5\uFF08\u6700\u65B0\uFF09`);continue}d.warn(` ${o.commandName}\uFF1A\u5DF2\u5B58\u5728\uFF0C\u4F7F\u7528 --force \u8986\u76D6`);continue}catch(u){d.error(` ${o.commandName}\uFF1A\u8BFB\u53D6\u5931\u8D25\uFF1A${u.message}`);continue}try{await(0,Bt.writeFile)(a,o.template,"utf-8"),d.success(` ${o.commandName}\uFF1A\u5DF2\u5B89\u88C5`),i++}catch(u){d.error(` ${o.commandName}\uFF1A\u5B89\u88C5\u5931\u8D25\uFF1A${u.message}`)}}}if(i>0){d.newline();let n=ou.map(o=>o.commandName).join(", ");d.success(`\u5B8C\u6210\uFF01\u53EF\u7528\u547D\u4EE4\uFF1A${n}`)}}async function Tb(){let e=cd(),t=0;for(let r of e){let s=0;for(let i of ou){let n=(0,fi.join)(r.path,i.filename);if(await au(n))try{await(0,Bt.unlink)(n),s===0&&d.plain(`
623
+ ${r.name}:`),d.success(` ${i.commandName}\uFF1A\u5DF2\u79FB\u9664`),t++,s++}catch(o){d.error(` ${i.commandName}\uFF1A\u79FB\u9664\u5931\u8D25\uFF1A${o.message}`)}}}t===0?d.info("\u6CA1\u6709\u627E\u5230\u5DF2\u5B89\u88C5\u7684\u547D\u4EE4"):(d.newline(),d.success(`\u5DF2\u79FB\u9664 ${t} \u4E2A\u547D\u4EE4\u6587\u4EF6`))}async function $b(){let e=cd();d.plain(`\u5B89\u88C5\u72B6\u6001
624
+ `);let t=await Promise.all(e.map(async r=>{let s=await Ib(r.cliCommand),i=await Promise.all(ou.map(async n=>{let o=(0,fi.join)(r.path,n.filename);return{cmdFile:n,commandPath:o,exists:await au(o)}}));return{target:r,cliAvailable:s,commandStatuses:i}}));for(let{target:r,cliAvailable:s,commandStatuses:i}of t){if(d.plain(`${r.name}:`),!s){d.plain(` \u672A\u627E\u5230 CLI\uFF08${r.cliCommand}\uFF09`),d.plain(` \u5B89\u88C5\uFF1A${r.installUrl}`),d.newline();continue}for(let{cmdFile:o,exists:a}of i)a?d.success(` ${o.commandName}\uFF1A\u5DF2\u5B89\u88C5`):d.warn(` ${o.commandName}\uFF1A\u672A\u5B89\u88C5`);i.every(o=>o.exists)||d.plain(" \u8FD0\u884C\uFF1Abest-review setup-command"),d.newline()}}var fd={meta:{name:"setup-command",description:`\u4E3A Claude Code\u3001Cursor Agent \u7B49\u5DE5\u5177\u5B89\u88C5 /best-review \u547D\u4EE4
625
625
 
626
626
  Examples:
627
627
  best-review setup-command # \u5B89\u88C5\u547D\u4EE4
628
628
  best-review setup-command --force # \u8986\u76D6\u5DF2\u6709\u547D\u4EE4
629
629
  best-review setup-command status # \u67E5\u770B\u5B89\u88C5\u72B6\u6001
630
- best-review setup-command remove # \u4ECE\u6240\u6709\u5DE5\u5177\u79FB\u9664\u547D\u4EE4`},args:{force:{type:"boolean",description:"\u8986\u76D6\u5DF2\u6709\u5B89\u88C5",alias:"f"}},subCommands:{status:{meta:{description:"\u67E5\u770B\u5B89\u88C5\u72B6\u6001"},run:async()=>{await Tb()}},remove:{meta:{description:"\u4ECE\u6240\u6709\u5DE5\u5177\u79FB\u9664 /best-review \u547D\u4EE4"},run:async()=>{await _b()}}},run:async({args:e,rawArgs:t})=>{let r=Object.keys(fd.subCommands||{});t.some(i=>r.includes(i))||await Ib({force:e.force})}};vr();M();vr();Ge();var aP="\u8BF7\u4F7F\u7528 <oldest>..<newest>\uFF0C\u4F8B\u5982 HEAD~3..HEAD\u3002";function uP(e){return`${e}^`}function hd(e){if(!e)return!0;let t=e.trim();if(t.includes("..."))return!1;let r=t.split("..");return r.length===2&&!!r[0]?.trim()&&!!r[1]?.trim()}function lP(e){if(!hd(e))throw new Error(`commit range \u683C\u5F0F\u65E0\u6548\uFF1A${e}\u3002${aP}`);let[t,r]=e.split("..").map(s=>s.trim());return{firstCommit:t,lastCommit:r}}async function dd(e,t){if(!await t.hasCommit(e))throw new Error(`commit \u4E0D\u5B58\u5728\u6216\u4E0D\u662F\u6709\u6548 ref\uFF1A${e}`)}async function $b(e,t){let r=uP(e);if(!await t.hasCommit(r))throw new Error(`\u65E0\u6CD5\u627E\u5230 commit \u7684\u7236\u63D0\u4EA4\uFF1A${e}\u3002\u6682\u4E0D\u652F\u6301\u5BA1\u67E5\u6839\u63D0\u4EA4\u3002`);return r}async function Pb(e,t){if(e.commit){let r=e.commit.trim();return await dd(r,t),{base:await $b(r,t),head:r,label:`commit ${r}`}}if(e.commitRange){let{firstCommit:r,lastCommit:s}=lP(e.commitRange);await dd(r,t),await dd(s,t);let i=await $b(r,t);if(!await t.isAncestor(r,s))throw new Error(`\u4E0D\u662F\u8FDE\u7EED commit \u8303\u56F4\uFF1A${r}..${s}`);return{base:i,head:s,label:`commit ${r}..${s}`}}return null}async function Bb(e,t){if(e.base&&!await t.hasCommit(e.base))throw new Error(`\u6BD4\u8F83\u8D77\u70B9\u4E0D\u5B58\u5728\u6216\u4E0D\u662F\u6709\u6548 ref\uFF1A${e.base}`);if(e.head&&!await t.hasCommit(e.head))throw new Error(`\u6BD4\u8F83\u7EC8\u70B9\u4E0D\u5B58\u5728\u6216\u4E0D\u662F\u6709\u6548 ref\uFF1A${e.head}`)}var uu=["critical","high","medium","low"];function Ob(e){if(e)return e.split(",").map(t=>t.trim())}function Lb(e){return e?e.split(",").map(r=>r.trim()).every(r=>uu.includes(r)):!0}function Nb(e){return e?e.split(",").map(t=>t.trim()).filter(t=>!uu.includes(t)):[]}function cP(e){if(e)return Number.parseInt(e,10)}function fP(e){return e?/^\d+$/.test(e)&&Number.parseInt(e,10)>0:!0}var ot=y.string().optional().transform(e=>{if(e)return e.split(",").map(t=>t.trim())}),Mb=y.string().optional().refine(e=>{if(!e)return!0;let t=parseInt(e,10);return!isNaN(t)&&!e.includes(".")},e=>({message:`\u7F6E\u4FE1\u5EA6\u65E0\u6548\uFF1A"${e}"\u3002\u5FC5\u987B\u662F 0-100 \u4E4B\u95F4\u7684\u6574\u6570\u3002`})).transform(e=>{if(e)return parseInt(e,10)}).refine(e=>e===void 0?!0:e>=0&&e<=100,e=>({message:`\u7F6E\u4FE1\u5EA6\u65E0\u6548\uFF1A${e}\u3002\u5FC5\u987B\u5728 0-100 \u4E4B\u95F4\u3002`})),jb=y.string().optional().refine(fP,e=>({message:`\u81EA\u52A8\u4FEE\u590D\u6570\u91CF\u65E0\u6548\uFF1A"${e}"\u3002\u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570\u3002`})).transform(cP),qb=y.string().optional().refine(Lb,e=>({message:`\u4E25\u91CD\u7EA7\u522B\u65E0\u6548\uFF1A${Nb(e).join(", ")}\u3002\u53EF\u9009\u503C\uFF1A${uu.join(", ")}`})).transform(Ob),Ub=y.string().optional().refine(Lb,e=>({message:`\u81EA\u52A8\u4FEE\u590D\u4E25\u91CD\u7EA7\u522B\u65E0\u6548\uFF1A${Nb(e).join(", ")}\u3002\u53EF\u9009\u503C\uFF1A${uu.join(", ")}`})).transform(Ob),Gb=y.string().optional().refine(e=>!e||[Ae,me].includes(e),{message:`\u4EC5\u652F\u6301 ${Ae} \u6216 ${me}`}),Vb=y.string().optional().refine(hd,e=>({message:`commit range \u683C\u5F0F\u65E0\u6548\uFF1A${e}\u3002\u8BF7\u4F7F\u7528 <oldest>..<newest>\uFF0C\u4F8B\u5982 HEAD~3..HEAD\u3002`})),dP=y.object({confidence:Mb,"fix-max-issues":jb,severity:qb,"fix-severity":Ub,agent:ot,"exclude-agent":ot,rule:ot,"exclude-rule":ot,files:ot,ignore:ot,base:y.string().optional(),head:y.string().optional(),branch:y.string().optional(),commit:y.string().optional(),"commit-range":Vb,executor:Gb,model:y.string().optional(),"fix-patch-file":y.string().optional(),"tech-doc":y.string().optional(),stream:y.boolean().optional(),verbose:y.boolean().optional(),json:y.boolean().optional(),"log-steps":y.boolean().optional(),"skip-validation":y.boolean().optional(),"fix-critical":y.boolean().optional(),"fix-dry-run":y.boolean().optional(),full:y.boolean().optional()}).refine(e=>!(e.full&&!e.files),{message:"--full \u9700\u8981\u540C\u65F6\u4F7F\u7528 --files \u6307\u5B9A\u8981\u5BA1\u67E5\u7684\u6587\u4EF6"}).refine(e=>!e.commit||!e.base&&!e.head&&!e.branch&&!e.full&&!e["commit-range"],{message:"--commit \u4E0D\u80FD\u4E0E --base\u3001--head\u3001--branch\u3001--full \u6216 --commit-range \u540C\u65F6\u4F7F\u7528"}).refine(e=>!e["commit-range"]||!e.base&&!e.head&&!e.branch&&!e.full&&!e.commit,{message:"--commit-range \u4E0D\u80FD\u4E0E --base\u3001--head\u3001--branch\u3001--full \u6216 --commit \u540C\u65F6\u4F7F\u7528"}).refine(e=>!(e.full&&(e.base||e.head||e.branch||e.commit||e["commit-range"])),{message:"--full \u4E0D\u80FD\u4E0E --base\u3001--head\u3001--branch\u3001--commit \u6216 --commit-range \u540C\u65F6\u4F7F\u7528"}).refine(e=>!(e.branch&&e.head),{message:"--branch \u4F1A\u81EA\u52A8\u4F5C\u4E3A\u6BD4\u8F83\u7EC8\u70B9\uFF0C\u4E0D\u80FD\u540C\u65F6\u4F7F\u7528 --head"}).refine(e=>!e.head||!!e.base,{message:"--head \u9700\u8981\u540C\u65F6\u6307\u5B9A --base"}),hP=y.object({url:y.string().url("MR \u94FE\u63A5\u65E0\u6548\u3002\u8BF7\u63D0\u4F9B\u5B8C\u6574\u7684 GitLab Merge Request URL\u3002"),confidence:Mb,severity:qb,agent:ot,"exclude-agent":ot,rule:ot,"exclude-rule":ot,executor:Gb,model:y.string().optional(),"tech-doc":y.string().optional(),stream:y.boolean().optional(),verbose:y.boolean().optional(),json:y.boolean().optional(),"log-steps":y.boolean().optional(),"skip-validation":y.boolean().optional(),base:y.string().optional(),head:y.string().optional(),branch:y.string().optional(),commit:y.string().optional(),"commit-range":Vb,files:ot,ignore:ot,full:y.boolean().optional(),"fix-critical":y.boolean().optional(),"fix-severity":Ub,"fix-dry-run":y.boolean().optional(),"fix-max-issues":jb,"fix-patch-file":y.string().optional()}).refine(e=>!e.base,{message:"--base \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.head,{message:"--head \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.branch,{message:"--branch \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.commit,{message:"--commit \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e["commit-range"],{message:"--commit-range \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.files||e.files.length===0,{message:"--files \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.full,{message:"--full \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e["fix-critical"]&&!e["fix-severity"]&&!e["fix-dry-run"]&&e["fix-max-issues"]===void 0&&!e["fix-patch-file"],{message:"--fix-* \u4E0D\u652F\u6301\u7528\u4E8E review-mr"});function Wb(e){return dP.parse(e)}function Kb(e){return hP.parse(e)}Ee();var Hb=require("node:fs/promises"),zb=require("node:path");var Zt=require("node:path"),pP=/(?:import\s+(?:type\s+)?(?:[^'"`]*?\s+from\s*)?["'](\.{1,2}\/[^"'`]+)["'])|(?:export\s+(?:\*|\{[^}]*\})\s+from\s*["'](\.{1,2}\/[^"'`]+)["'])|(?:require\(\s*["'](\.{1,2}\/[^"'`]+)["']\s*\))|(?:import\(\s*["'](\.{1,2}\/[^"'`]+)["']\s*\))/g,mP=[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"];function Ln(e){let t=[];for(let r of e.matchAll(pP)){let s=r[1]||r[2]||r[3]||r[4];s&&t.push(s)}return t}function lu(e,t){return Zt.posix.normalize(Zt.posix.join(Zt.posix.dirname(e),t))}function gP(e){let t=Zt.posix.normalize(e);return t!==".."&&!t.startsWith("../")&&!Zt.posix.isAbsolute(t)}function cu(e){let t=Zt.posix.normalize(e);if(!gP(t))return[];let r=new Set([t]);if(!Zt.posix.extname(t))for(let s of mP)r.add(`${t}${s}`),r.add(Zt.posix.join(t,`index${s}`));return[...r]}function pd(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}async function wP(e,t){try{return await(0,Hb.readFile)((0,zb.join)(e,t),"utf-8")}catch{return null}}async function Jb(e){let{repositoryPath:t,filePath:r,headRef:s,readFileAtRef:i}=e;return s?i(s,r):wP(t,r)}async function bP(e){let t=lu(e.fromFile,e.specifier),r=cu(t);for(let s of r){let i=await Jb({repositoryPath:e.repositoryPath,filePath:s,headRef:e.headRef,readFileAtRef:e.readFileAtRef});if(i!==null)return{file:s,content:i}}return null}async function Yb(e){let t=e.readFileAtRef??Pn,r=e.changedFileMaxChars??2e4,s=e.dependencyMaxChars??12e3,i=e.headRef??"worktree",n=new Set(e.diffs.map(u=>pd(u.file))),o=[],a=new Map;for(let u of e.diffs){if(u.isDeletedFile||u.status==="deleted")continue;let l=pd(u.newPath||u.file),c=await Jb({repositoryPath:e.repositoryPath,filePath:l,headRef:e.headRef,readFileAtRef:t});if(c===null)continue;e.fullMode||o.push({file:u.file,content:Ir(c,"changed-file",r),role:"changed-file",source:"local-git",ref:i,relatedFiles:[u.file]});let f=Ln(c);for(let h of f){let p=await bP({repositoryPath:e.repositoryPath,fromFile:l,specifier:h,headRef:e.headRef,readFileAtRef:t});if(!p||n.has(pd(p.file)))continue;let m=a.get(p.file);if(m){let g=new Set([...m.relatedFiles||[],u.file]);m.relatedFiles=[...g];continue}a.set(p.file,{file:p.file,content:Ir(p.content,"dependency",s),role:"dependency",source:"local-git",ref:i,relatedFiles:[u.file]})}}return[...o,...a.values()]}var Nn=require("node:path");Rr();var vP=new Set([".js",".jsx",".mjs",".cjs",".ts",".tsx",".mts",".cts",".py",".java",".kt",".kts",".go",".rs",".rb",".php",".swift",".scala",".cs",".c",".cc",".cpp",".cxx",".h",".hh",".hpp",".m",".mm",".sh",".bash",".zsh",".fish",".ps1",".sql",".vue",".svelte"]),EP=new Set([".json",".jsonc",".yaml",".yml",".toml",".ini",".cfg",".conf",".properties",".tf",".tfvars",".hcl",".xml"]),CP=new Set(["dockerfile","makefile","gnumakefile","justfile","procfile","jenkinsfile",".gitignore",".gitattributes",".editorconfig",".npmrc",".nvmrc",".yarnrc",".yarnrc.yml",".prettierignore",".prettierrc",".prettierrc.json",".prettierrc.yml",".prettierrc.yaml",".prettierrc.js",".prettierrc.cjs",".prettierrc.mjs",".prettierrc.toml",".eslintrc",".eslintrc.json",".eslintrc.yml",".eslintrc.yaml",".eslintrc.js",".eslintrc.cjs",".babelrc",".babelrc.json",".tool-versions"]),FP=[".env","dockerfile.",".env."];function md(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function SP(e){let t=md(e),r=(0,Nn.basename)(t).toLowerCase(),s=(0,Nn.extname)(r);return vP.has(s)||EP.has(s)||CP.has(r)?!0:FP.some(i=>r===i||r.startsWith(i))}function xP(e,t){let r=md(e),s=md(t.trim()),i=s.startsWith("/"),n=s.replace(/^\.\//,"").replace(/^\/+/,"").replace(/\/+$/,"");if(!n)return!1;let o=RP(n,i);return o.some(a=>Ar(r,a))?!0:o.some(a=>r===a||r.startsWith(`${a}/`))}function AP(e){return/[*?[\]{}]/.test(e)}function Zb(e){return(0,Nn.basename)(e).includes(".")}function RP(e,t){let r=new Set([e]),s=AP(e);return Zb(e)||r.add(`${e}/**`),t||(r.add(`**/${e}`),(!Zb(e)||!s)&&r.add(`**/${e}/**`)),Array.from(r)}function kP(e){return e.flatMap(t=>t.split(",")).map(t=>t.trim()).filter(Boolean)}function Xb(e,t=[]){let r=[],s=[],i=[],n=kP(t);for(let o of e){if(!SP(o.file)){s.push(o);continue}if(n.some(a=>xP(o.file,a))){i.push(o);continue}r.push(o)}return{included:r,skippedNonReviewable:s,skippedIgnored:i}}var Qb=require("node:fs/promises"),fu=require("node:path"),ev="https://open.feishu.cn";function tv(e){try{return new URL(e)}catch{return null}}function rv(e){return e.endsWith("feishu.cn")||e.endsWith("larksuite.com")}function IP(e){let t=tv(e);if(!t||!rv(t.hostname))throw new Error("\u4EC5\u652F\u6301\u98DE\u4E66\u65B0\u7248 docx \u94FE\u63A5\u6216\u672C\u5730 Markdown/\u6587\u672C\u6587\u4EF6");let r=t.pathname.match(/\/docx\/([^/?#]+)/);if(!r?.[1])throw new Error("\u4EC5\u652F\u6301\u98DE\u4E66\u65B0\u7248 docx \u94FE\u63A5\uFF08\u5F62\u5982 https://docs.feishu.cn/docx/<document_id>\uFF09");return decodeURIComponent(r[1])}async function sv(e,t){let r=await e.text(),s;try{s=JSON.parse(r)}catch(i){throw new Error(`${t} \u8FD4\u56DE\u4E86\u4E0D\u53EF\u89E3\u6790 JSON\uFF1A${r.slice(0,300)}`,{cause:i})}if(!e.ok)throw new Error(`${t} \u8BF7\u6C42\u5931\u8D25\uFF08${e.status}\uFF09\uFF1A${r.slice(0,300)}`);return s}async function _P(){let e=process.env.FEISHU_APP_ID,t=process.env.FEISHU_APP_SECRET;if(!e||!t)throw new Error("\u8BFB\u53D6\u98DE\u4E66\u6280\u672F\u6587\u6863\u9700\u8981\u8BBE\u7F6E FEISHU_APP_ID \u548C FEISHU_APP_SECRET\uFF1B\u4E5F\u53EF\u4EE5\u628A\u98DE\u4E66\u6587\u6863\u5BFC\u51FA/\u590D\u5236\u4E3A\u672C\u5730 Markdown \u540E\u4F7F\u7528 --tech-doc <path>\u3002");let r=await fetch(`${ev}/open-apis/auth/v3/tenant_access_token/internal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({app_id:e,app_secret:t})}),s=await sv(r,"\u98DE\u4E66 tenant_access_token");if(s.code!==0||!s.tenant_access_token)throw new Error(`\u83B7\u53D6\u98DE\u4E66 tenant_access_token \u5931\u8D25\uFF1A${s.msg||`code=${s.code}`}`);return s.tenant_access_token}async function TP(e){let t=IP(e),r=await _P(),s=await fetch(`${ev}/open-apis/docx/v1/documents/${encodeURIComponent(t)}/raw_content`,{method:"GET",headers:{Authorization:`Bearer ${r}`}}),i=await sv(s,"\u98DE\u4E66\u6587\u6863\u7EAF\u6587\u672C");if(i.code!==0)throw new Error(`\u8BFB\u53D6\u98DE\u4E66\u6587\u6863\u7EAF\u6587\u672C\u5931\u8D25\uFF1A${i.msg||`code=${i.code}`}`);let n=i.data?.content??i.data?.raw_content??"";if(!n.trim())throw new Error("\u98DE\u4E66\u6587\u6863\u7EAF\u6587\u672C\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u6267\u884C\u6280\u672F\u6587\u6863\u5BF9\u7167 review\u3002");return{source:e,type:"feishu-docx",title:t,rawContent:n}}async function iv(e,t=process.cwd()){let r=tv(e);if(r){if(rv(r.hostname))return TP(e);throw new Error("\u4EC5\u652F\u6301\u98DE\u4E66\u65B0\u7248 docx \u94FE\u63A5\u6216\u672C\u5730 Markdown/\u6587\u672C\u6587\u4EF6\u3002")}let s=(0,fu.resolve)(t,e),i=await(0,Qb.readFile)(s,"utf-8");if(!i.trim())throw new Error(`\u6280\u672F\u6587\u6863\u4E3A\u7A7A\uFF1A${e}`);return{source:e,type:"local-file",title:(0,fu.basename)(e),rawContent:i}}M();M();function ov(e){switch(e){case"modified":return"~";case"added":return"+";case"deleted":return"-";case"renamed":return"\u2192";default:return"\xB7"}}async function nv(e){let t=await $w();return t.length===0?(e||d.info("\u6CA1\u6709\u672A\u63D0\u4EA4\u53D8\u66F4\uFF0C\u6539\u4E3A\u5BA1\u67E5\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4..."),t=await Bw(),{diffs:t,sourceLabel:"\uFF08\u6700\u8FD1\u63D0\u4EA4\uFF09"}):{diffs:t,sourceLabel:"\uFF08\u672A\u63D0\u4EA4\u53D8\u66F4\uFF09"}}async function av(e){let{full:t,filesFilter:r,base:s,head:i,comparisonLabel:n,json:o}=e;if(t){(!r||r.length===0)&&(d.error("--full \u9700\u8981\u540C\u65F6\u6307\u5B9A --files"),process.exit(1)),o||d.info(`\u5B8C\u6574\u6587\u4EF6\u5BA1\u67E5\uFF1A${r.length} \u4E2A\u6587\u4EF6`);let{diffs:u,notFound:l}=await Nw(r);if(l.length>0&&!o)for(let c of l)d.warn(`\u6587\u4EF6\u4E0D\u5B58\u5728\uFF1A${c}`);return u.length===0&&(d.error("\u6CA1\u6709\u53EF\u8BFB\u53D6\u7684\u6587\u4EF6"),process.exit(1)),{diffs:u,sourceLabel:"\uFF08\u5B8C\u6574\u6587\u4EF6\uFF09"}}if(r&&r.length>0){let u,l;if(s){let h=i||"HEAD",p=n||`${s}...${h}`;o||d.info(`\u6BD4\u8F83 ${p}\uFF0C\u9650\u5B9A\u6587\u4EF6\uFF1A${r.join(", ")}`),u=await rd(s,h),l=` (${p})`}else{let h=await nv(o);u=h.diffs,l=h.sourceLabel}let{matched:c,unmatched:f}=Lw(u,r);if(f.length>0&&!o)for(let h of f)d.warn(`\u6CA1\u6709\u627E\u5230\u8BE5\u6587\u4EF6\u7684\u53D8\u66F4\uFF1A${h}`);return c.length===0?(d.success("\u6307\u5B9A\u6587\u4EF6\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u53D8\u66F4"),null):{diffs:c,sourceLabel:l}}if(s){let u=i||"HEAD",l=n||`${s}...${u}`;o||d.info(`\u6BD4\u8F83 ${l}`);let c=await rd(s,u);return c.length===0?(d.success("\u4E24\u4E2A ref \u4E4B\u95F4\u6CA1\u6709\u53D8\u66F4"),null):{diffs:c,sourceLabel:` (${l})`}}let a=await nv(o);return a.diffs.length===0?(d.success("\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u53D8\u66F4"),null):{diffs:a.diffs,sourceLabel:a.sourceLabel}}M();function $P(e){let t=e.checks.filter(r=>!r.readiness.ready);return{error:e.message||"\u6267\u884C\u5668\u4E0D\u53EF\u7528",executors:t.map(r=>({executor:r.executor,reason:r.readiness.reason,hint:r.readiness.hint,suggestions:r.readiness.suggestions??[]}))}}function PP(e){d.error(`${e.executor} \u4E0D\u53EF\u7528\uFF1A${e.readiness.reason||"\u672A\u7ED9\u51FA\u5931\u8D25\u539F\u56E0"}`),e.readiness.hint&&d.info(e.readiness.hint),e.readiness.suggestions&&e.readiness.suggestions.length>0&&(d.info("\u5EFA\u8BAE\u5904\u7406\uFF1A"),e.readiness.suggestions.forEach((t,r)=>{d.plain(` ${r+1}. ${t}`)}))}async function Mn(e){let{config:t,executorOverride:r,modelOverride:s,json:i,requirePing:n=!0}=e;i||d.robot(n?"\u6B63\u5728\u6821\u9A8C\u6A21\u578B\u670D\u52A1\u8054\u901A...":"\u6B63\u5728\u6821\u9A8C\u6267\u884C\u5668\u914D\u7F6E...");let o=await xr(t,{executorOverride:r,modelOverride:s,requirePing:n});if(!o.ok){if(i)console.error(JSON.stringify($P(o),null,2));else{d.error(o.message||"\u6267\u884C\u5668\u914D\u7F6E\u6821\u9A8C\u5931\u8D25");for(let a of o.checks.filter(u=>!u.readiness.ready))PP(a)}return process.exitCode=1,!1}if(!i){let a=o.checks[0]?.executor||t.executor;d.success(`\u6267\u884C\u5668\u914D\u7F6E\u6821\u9A8C\u901A\u8FC7\uFF1A${a}`)}return!0}M();function du(e){return e>=1e3?`${(e/1e3).toFixed(1)}s`:`${e}ms`}function BP(e,t,r){let s=["Review \u6B65\u9AA4\u8017\u65F6\uFF1A"];for(let i of e){let n=i.success?"\u2713":"\u2717",o=i.error?`\uFF0C\u5931\u8D25\uFF1A${i.error}`:"";s.push(` ${n} ${i.stageName}\uFF08${i.stageId}\uFF09\uFF1A${du(i.duration)}${o}`)}return s.push(` Pipeline \u603B\u8017\u65F6\uFF1A${du(t)}`),r!==void 0&&s.push(` Review \u547D\u4EE4\u603B\u8017\u65F6\uFF1A${du(r)}`),s}function uv(e){let{result:t,filteredDiffs:r,severityFilter:s,json:i,showStepTimings:n=!1,commandDuration:o}=e,a=t.context.issues,u=a.filter(m=>m.severity==="critical").length,l=a;if(s&&s.length>0&&(l=a.filter(m=>s.includes(m.severity))),!i&&t.context.autofix?.enabled){let m=t.context.autofix;d.newline(),m.error?d.warn(`\u81EA\u52A8\u4FEE\u590D\u5931\u8D25\uFF1A${m.error}`):m.targetIssueCount===0?d.info("\u81EA\u52A8\u4FEE\u590D\uFF1A\u6CA1\u6709\u9700\u8981\u5904\u7406\u7684\u76EE\u6807\u95EE\u9898"):m.dryRun?d.success(`\u81EA\u52A8\u4FEE\u590D\uFF1A\u8865\u4E01\u6821\u9A8C\u901A\u8FC7\uFF08dry-run\uFF09\uFF0C\u76EE\u6807 ${m.targetIssueCount} \u4E2A\u95EE\u9898\uFF0C\u5F71\u54CD ${m.changedFiles.length} \u4E2A\u6587\u4EF6`):d.success(`\u81EA\u52A8\u4FEE\u590D\uFF1A\u5DF2\u5E94\u7528\u8865\u4E01\uFF0C\u76EE\u6807 ${m.targetIssueCount} \u4E2A\u95EE\u9898\uFF0C\u4FEE\u6539 ${m.changedFiles.length} \u4E2A\u6587\u4EF6`),m.patchPath&&d.info(`\u8865\u4E01\u6587\u4EF6\uFF1A${m.patchPath}`),m.suggestion&&d.info(m.suggestion)}let c=t.context.results.filter(m=>m.success).length,f=si(t.context),h=f.agentExecutions.succeeded>0,p=f.findingCounts.afterValidation===null?"\u9A8C\u8BC1\u5DF2\u8DF3\u8FC7":String(f.findingCounts.afterValidation);if(i){let m=uw(l,t.success,t.totalDuration,t.context.results.length,c,r.length,f,t.context.autofix,t.context.usage,o,t.context.validation);console.log(m),(!t.success||u>0)&&(process.exitCode=1);return}if(d.separator(),t.success?d.success(`\u6D41\u6C34\u7EBF\u6267\u884C\u6210\u529F\uFF0C\u8017\u65F6 ${t.totalDuration}ms`):d.warn(`\u6D41\u6C34\u7EBF\u6267\u884C\u5B8C\u6210\uFF0C\u4F46\u5B58\u5728\u9519\u8BEF\uFF0C\u8017\u65F6 ${t.totalDuration}ms`),o!==void 0&&d.chart(`Review \u547D\u4EE4\u603B\u8017\u65F6\uFF1A${du(o)}`),n){d.newline();for(let m of BP(t.stages,t.totalDuration,o))d.plain(m)}if(d.chart(`${c}/${t.context.results.length} \u4E2A Agent \u6267\u884C\u6210\u529F`),t.context.usage&&t.context.usage.requests>0){let m=t.context.usage,g=m.estimated?"\uFF08\u542B\u4F30\u7B97\uFF09":"";d.chart(`\u6A21\u578B\u7528\u91CF${g}\uFF1A\u8C03\u7528 ${m.modelCalls} \u6B21\uFF0C\u7F13\u5B58 ${m.cachedCalls} \u6B21\uFF0Ctokens ${m.totalTokens.toLocaleString()}\uFF0C\u7F13\u5B58\u8282\u7701\u7EA6 ${m.savedTokens.toLocaleString()}`)}if(s&&s.length>0){let m=s.map(g=>Rn[g]).join(", ");d.info(`\u6309\u4E25\u91CD\u7EA7\u522B\u8FC7\u6EE4\uFF1A${m}`)}if(d.chart(h?nw(l):"\u98CE\u9669\u7ED3\u8BBA\uFF1A\u672A\u77E5\uFF08\u5BA1\u67E5\u672A\u5B8C\u6210\uFF09"),d.chart(`\u53D1\u73B0\u7EDF\u8BA1\uFF1A\u539F\u59CB ${f.findingCounts.raw} -> \u7F6E\u4FE1\u5EA6\u8FC7\u6EE4\u540E ${f.findingCounts.afterConfidence} -> \u9A8C\u8BC1\u540E ${p} -> \u6700\u7EC8\u8BA1\u5206 ${f.findingCounts.final}`),f.qualityScore.status==="valid"?d.chart(`\u8D28\u91CF\u8BC4\u5206\uFF1A${f.qualityScore.score}/${f.qualityScore.details?.base??100}`):d.chart(`\u8D28\u91CF\u8BC4\u5206\uFF1A\u672A\u77E5\uFF08${f.qualityScore.reason||"\u8BC4\u5206\u6761\u4EF6\u4E0D\u6210\u7ACB"}\uFF09`),l.length>0)d.newline(),console.log(aw(l));else if(d.newline(),!h)d.warn("\u5BA1\u67E5\u672A\u5B8C\u6210\uFF1A\u6CA1\u6709\u4EFB\u4F55 Agent \u6210\u529F\u6267\u884C\uFF0C\u4E0D\u80FD\u7ED9\u51FA\u201C\u672A\u53D1\u73B0\u95EE\u9898\u201D\u7684\u53EF\u4FE1\u7ED3\u8BBA");else if(!t.success)d.warn("\u5BA1\u67E5\u672A\u5B8C\u5168\u5B8C\u6210\uFF1A\u5F53\u524D\u6CA1\u6709\u53EF\u5C55\u793A\u95EE\u9898\uFF0C\u4F46\u6D41\u6C34\u7EBF\u5B58\u5728\u9519\u8BEF\uFF0C\u8BF7\u5148\u5904\u7406\u5931\u8D25\u539F\u56E0");else if(s&&s.length>0){let m=s.map(g=>Rn[g]).join(", ");d.success(`\u6CA1\u6709\u53D1\u73B0 ${m} \u7EA7\u522B\u7684\u95EE\u9898 \u{1F389}`)}else d.success("\u6CA1\u6709\u53D1\u73B0\u95EE\u9898 \u{1F389}");u>0&&(d.warn(`CI \u95E8\u7981\uFF1A\u672A\u901A\u8FC7\uFF0C\u5B58\u5728 ${u} \u4E2A\u4E25\u91CD\u98CE\u9669`),process.exitCode=1),t.success||(process.exitCode=1),d.newline()}function OP(e,t){let r=e instanceof Error?e.message:String(e);t?console.error(JSON.stringify({error:r})):d.error(r)}async function gd(e){let{projectPath:t,config:r,diffs:s,sourceLabel:i,verbose:n,json:o,stream:a,severityFilter:u,base:l,head:c,skipValidation:f,agentFilter:h,excludeAgents:p,ruleFilter:m,excludeRules:g,executor:D,model:b,confidence:w,ignore:v,fixSeverities:E=[],fixDryRun:C=!1,fixMaxIssues:x,fixPatchFile:$,full:F=!1,metadata:R,supplementalContextFiles:W,techDoc:ae,techDocSource:H,commitMessages:I,commandStartTimeMs:L,readinessChecked:Q=!1}=e,re=[...r.excludePatterns,...v??[]],z=Xb(s,re),J=z.included;if(J.length===0)return o||d.success("\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u4EE3\u7801\u6216\u914D\u7F6E\u53D8\u66F4"),null;let ce=J.reduce((fe,_r)=>fe+_r.additions,0),se=J.reduce((fe,_r)=>fe+_r.deletions,0),Y=ce+se,U=J.reduce((fe,_r)=>(fe[_r.status]=(fe[_r.status]||0)+1,fe),{}),ue=W??await Yb({repositoryPath:t,diffs:J,headRef:l?c||"HEAD":void 0,fullMode:F}),Re=ae??(H?await iv(H,t):void 0);if(!o){let fe=[];if(U.modified&&fe.push(`${U.modified} \u4E2A\u4FEE\u6539`),U.added&&fe.push(`${U.added} \u4E2A\u65B0\u589E`),U.deleted&&fe.push(`${U.deleted} \u4E2A\u5220\u9664`),U.renamed&&fe.push(`${U.renamed} \u4E2A\u91CD\u547D\u540D`),d.file(`${J.length} \u4E2A\u6587\u4EF6${i}\uFF1A${fe.join(", ")}`),d.plain(` ${Y} \u5904\u53D8\u66F4\uFF1A+${ce} -${se}`),n||J.length<=5){d.newline();for(let ds of J){let mu=ov(ds.status);d.plain(` ${mu} ${ds.file}: +${ds.additions} -${ds.deletions}`)}}if(z.skippedNonReviewable.length>0&&d.info(`\u5DF2\u81EA\u52A8\u8DF3\u8FC7 ${z.skippedNonReviewable.length} \u4E2A\u975E\u4EE3\u7801/\u914D\u7F6E\u6587\u4EF6`),z.skippedIgnored.length>0&&d.info(`\u5DF2\u5FFD\u7565 ${z.skippedIgnored.length} \u4E2A\u547D\u4E2D\u6392\u9664\u89C4\u5219\u7684\u6587\u4EF6`),v&&v.length>0&&d.info(`\u989D\u5916\u5FFD\u7565\uFF1A${v.join(", ")}`),ue&&ue.length>0){let ds=ue.filter(gu=>gu.role==="changed-file").length,mu=ue.filter(gu=>gu.role==="dependency").length;d.info(`\u8865\u5145\u4E0A\u4E0B\u6587\uFF1A\u53D8\u66F4\u6587\u4EF6\u5168\u6587 ${ds} \u4EFD\uFF0C\u4F9D\u8D56\u6587\u4EF6 ${mu} \u4EFD`)}Re&&d.info(`\u6280\u672F\u6587\u6863\uFF1A${Re.title||Re.source}`),d.newline(),d.robot("\u6B63\u5728\u52A0\u8F7D\u6267\u884C\u5668\u548C Agent...")}let Xt=await Js();if(o||d.success(`\u5DF2\u52A0\u8F7D ${Xt.length} \u4E2A\u6267\u884C\u5668\u5B9A\u4E49`),!Q&&!await Mn({config:r,executorOverride:D,modelOverride:b,json:o,requirePing:!0}))return null;let fs=await He({projectPath:t,executorOverride:D,modelOverride:b});D&&!o&&d.info(`\u4F7F\u7528\u6267\u884C\u5668\uFF1A${D}`),o||(h&&d.info(`Agent \u8FC7\u6EE4\uFF1A${h.join(", ")}`),p&&d.info(`\u6392\u9664 Agent\uFF1A${p.join(", ")}`),m&&d.info(`\u89C4\u5219\u8FC7\u6EE4\uFF1A${m.join(", ")}`),g&&d.info(`\u6392\u9664\u89C4\u5219\uFF1A${g.join(", ")}`));let qn=fs.filter(fe=>fe.enabled);o||(d.success(`\u5DF2\u52A0\u8F7D ${qn.length} \u4E2A\u53EF\u7528 Agent`),d.newline());let wt=await new oi(fs,Xt).execute(J,{verbose:n,quiet:o,concurrency:r.concurrency,skipValidation:f,stream:a,baseRef:l,headRef:c,agentFilter:h,excludeAgents:p,ruleFilter:m,excludeRules:g,minConfidence:w,modelOverride:b,fixSeverities:E,fixDryRun:C,fixMaxIssues:x,fixPatchFile:$,config:r,repositoryPath:t,metadata:R,supplementalContextFiles:ue,techDoc:Re,commitMessages:I}),pu=L===void 0?void 0:Date.now()-L,Fd=wt.context.issues,kv=u&&u.length>0?Fd.filter(fe=>u.includes(fe.severity)):Fd,Iv=wt.context.results.filter(fe=>fe.success).length,_v=si(wt.context),Tv=Yf(kv,wt.success,wt.totalDuration,wt.context.results.length,Iv,J.length,_v,wt.context.autofix,wt.context.usage,pu,wt.context.validation);return{result:wt,filteredDiffs:J,jsonOutput:Tv,...pu!==void 0&&{commandDuration:pu}}}async function Dd(e){let t=await gd(e);t&&uv({result:t.result,filteredDiffs:t.filteredDiffs,severityFilter:e.severityFilter,json:e.json,showStepTimings:e.logSteps,commandDuration:t.commandDuration})}async function lv(e){let t=Date.now(),{verbose:r=!1,json:s=!1,stream:i=!1,logSteps:n=!1,severity:o,base:a,head:u,branch:l,commit:c,commitRange:f,skipValidation:h=!1,agent:p,excludeAgent:m,rule:g,excludeRule:D,executor:b,model:w,confidence:v,files:E,full:C=!1,ignore:x,fixCritical:$=!1,fixSeverity:F,fixDryRun:R=!1,fixMaxIssues:W,fixPatchFile:ae,techDoc:H}=e,I=Array.from(new Set([...$?["critical"]:[],...F??[]]));s||d.logo();let L=process.cwd(),Q=await oe(L);if(!await Mn({config:Q,executorOverride:b,modelOverride:w,json:s,requirePing:!0}))return;C||await eu()||(s||d.error("\u5F53\u524D\u76EE\u5F55\u4E0D\u662F Git \u4ED3\u5E93"),process.exit(1));let z=a,J=u,ce;if(l!==void 0&&l!==""){let Y=l==="."?await Sw():l;Y||(s||(d.error("\u65E0\u6CD5\u786E\u5B9A\u5F53\u524D\u5206\u652F\uFF08\u53EF\u80FD\u5904\u4E8E detached HEAD\uFF09"),d.info("\u8BF7\u663E\u5F0F\u6307\u5B9A\u5206\u652F\uFF1Abest-review review --branch feature-auth")),process.exit(1));let U=a||await xw();U||(s||(d.error("\u65E0\u6CD5\u68C0\u6D4B\u9ED8\u8BA4\u5206\u652F\uFF08main/master/develop\uFF09"),d.info("\u8BF7\u663E\u5F0F\u6307\u5B9A --base\uFF1Abest-review review --branch --base main")),process.exit(1)),l!=="."&&!await Aw(l)&&(s||d.error(`\u5206\u652F\u4E0D\u5B58\u5728\uFF1A${l}`),process.exit(1)),Y===U?(s||d.warn(`\u5206\u652F "${Y}" \u5C31\u662F\u57FA\u51C6\u5206\u652F\uFF0C\u5C06\u6539\u4E3A\u5BA1\u67E5\u672A\u63D0\u4EA4\u53D8\u66F4`),z=void 0,J=void 0):(z=U,J=Y,s||d.info(`\u5BA1\u67E5 "${Y}" \u76F8\u5BF9 "${U}" \u7684\u53D8\u66F4`))}try{let Y=await Pb({commit:c,commitRange:f},{hasCommit:$n,isAncestor:kw});Y?(z=Y.base,J=Y.head,ce=Y.label,s||d.info(`\u5BA1\u67E5 ${Y.label}`)):z&&(J=J||"HEAD",await Bb({base:z,head:J},{hasCommit:$n}))}catch(Y){OP(Y,s),process.exit(1)}s||d.chart("\u6B63\u5728\u5206\u6790\u53D8\u66F4...");let se=await av({full:C,filesFilter:E,base:z,head:J,comparisonLabel:ce,json:s});se&&await Dd({projectPath:L,config:Q,diffs:se.diffs,sourceLabel:se.sourceLabel,verbose:r,json:s,stream:i,logSteps:n,severityFilter:o,base:z,head:J,skipValidation:h,agentFilter:p,excludeAgents:m,ruleFilter:g,excludeRules:D,executor:b,model:w,confidence:v,ignore:x,fixSeverities:I,fixDryRun:R,fixMaxIssues:W,fixPatchFile:ae,full:C,techDocSource:H,commandStartTimeMs:t,readinessChecked:!0})}var cv={meta:{name:"review",description:`\u5BA1\u67E5\u5F53\u524D\u4EE3\u7801\u53D8\u66F4
630
+ best-review setup-command remove # \u4ECE\u6240\u6709\u5DE5\u5177\u79FB\u9664\u547D\u4EE4`},args:{force:{type:"boolean",description:"\u8986\u76D6\u5DF2\u6709\u5B89\u88C5",alias:"f"}},subCommands:{status:{meta:{description:"\u67E5\u770B\u5B89\u88C5\u72B6\u6001"},run:async()=>{await $b()}},remove:{meta:{description:"\u4ECE\u6240\u6709\u5DE5\u5177\u79FB\u9664 /best-review \u547D\u4EE4"},run:async()=>{await Tb()}}},run:async({args:e,rawArgs:t})=>{let r=Object.keys(fd.subCommands||{});t.some(i=>r.includes(i))||await _b({force:e.force})}};Wt();M();Wt();Ve();var fP="\u8BF7\u4F7F\u7528 <oldest>..<newest>\uFF0C\u4F8B\u5982 HEAD~3..HEAD\u3002";function dP(e){return`${e}^`}function hd(e){if(!e)return!0;let t=e.trim();if(t.includes("..."))return!1;let r=t.split("..");return r.length===2&&!!r[0]?.trim()&&!!r[1]?.trim()}function hP(e){if(!hd(e))throw new Error(`commit range \u683C\u5F0F\u65E0\u6548\uFF1A${e}\u3002${fP}`);let[t,r]=e.split("..").map(s=>s.trim());return{firstCommit:t,lastCommit:r}}async function dd(e,t){if(!await t.hasCommit(e))throw new Error(`commit \u4E0D\u5B58\u5728\u6216\u4E0D\u662F\u6709\u6548 ref\uFF1A${e}`)}async function Pb(e,t){let r=dP(e);if(!await t.hasCommit(r))throw new Error(`\u65E0\u6CD5\u627E\u5230 commit \u7684\u7236\u63D0\u4EA4\uFF1A${e}\u3002\u6682\u4E0D\u652F\u6301\u5BA1\u67E5\u6839\u63D0\u4EA4\u3002`);return r}async function Bb(e,t){if(e.commit){let r=e.commit.trim();return await dd(r,t),{base:await Pb(r,t),head:r,label:`commit ${r}`}}if(e.commitRange){let{firstCommit:r,lastCommit:s}=hP(e.commitRange);await dd(r,t),await dd(s,t);let i=await Pb(r,t);if(!await t.isAncestor(r,s))throw new Error(`\u4E0D\u662F\u8FDE\u7EED commit \u8303\u56F4\uFF1A${r}..${s}`);return{base:i,head:s,label:`commit ${r}..${s}`}}return null}async function Ob(e,t){if(e.base&&!await t.hasCommit(e.base))throw new Error(`\u6BD4\u8F83\u8D77\u70B9\u4E0D\u5B58\u5728\u6216\u4E0D\u662F\u6709\u6548 ref\uFF1A${e.base}`);if(e.head&&!await t.hasCommit(e.head))throw new Error(`\u6BD4\u8F83\u7EC8\u70B9\u4E0D\u5B58\u5728\u6216\u4E0D\u662F\u6709\u6548 ref\uFF1A${e.head}`)}var uu=["critical","high","medium","low"];function Lb(e){if(e)return e.split(",").map(t=>t.trim())}function Nb(e){return e?e.split(",").map(r=>r.trim()).every(r=>uu.includes(r)):!0}function Mb(e){return e?e.split(",").map(t=>t.trim()).filter(t=>!uu.includes(t)):[]}function pP(e){if(e)return Number.parseInt(e,10)}function mP(e){return e?/^\d+$/.test(e)&&Number.parseInt(e,10)>0:!0}var at=y.string().optional().transform(e=>{if(e)return e.split(",").map(t=>t.trim())}),jb=y.string().optional().refine(e=>{if(!e)return!0;let t=parseInt(e,10);return!isNaN(t)&&!e.includes(".")},e=>({message:`\u7F6E\u4FE1\u5EA6\u65E0\u6548\uFF1A"${e}"\u3002\u5FC5\u987B\u662F 0-100 \u4E4B\u95F4\u7684\u6574\u6570\u3002`})).transform(e=>{if(e)return parseInt(e,10)}).refine(e=>e===void 0?!0:e>=0&&e<=100,e=>({message:`\u7F6E\u4FE1\u5EA6\u65E0\u6548\uFF1A${e}\u3002\u5FC5\u987B\u5728 0-100 \u4E4B\u95F4\u3002`})),qb=y.string().optional().refine(mP,e=>({message:`\u81EA\u52A8\u4FEE\u590D\u6570\u91CF\u65E0\u6548\uFF1A"${e}"\u3002\u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570\u3002`})).transform(pP),Ub=y.string().optional().refine(Nb,e=>({message:`\u4E25\u91CD\u7EA7\u522B\u65E0\u6548\uFF1A${Mb(e).join(", ")}\u3002\u53EF\u9009\u503C\uFF1A${uu.join(", ")}`})).transform(Lb),Gb=y.string().optional().refine(Nb,e=>({message:`\u81EA\u52A8\u4FEE\u590D\u4E25\u91CD\u7EA7\u522B\u65E0\u6548\uFF1A${Mb(e).join(", ")}\u3002\u53EF\u9009\u503C\uFF1A${uu.join(", ")}`})).transform(Lb),Vb=y.string().optional().refine(e=>!e||[Re,ge].includes(e),{message:`\u4EC5\u652F\u6301 ${Re} \u6216 ${ge}`}),Wb=y.string().optional().refine(hd,e=>({message:`commit range \u683C\u5F0F\u65E0\u6548\uFF1A${e}\u3002\u8BF7\u4F7F\u7528 <oldest>..<newest>\uFF0C\u4F8B\u5982 HEAD~3..HEAD\u3002`})),gP=y.object({confidence:jb,"fix-max-issues":qb,severity:Ub,"fix-severity":Gb,agent:at,"exclude-agent":at,rule:at,"exclude-rule":at,files:at,ignore:at,base:y.string().optional(),head:y.string().optional(),branch:y.string().optional(),commit:y.string().optional(),"commit-range":Wb,executor:Vb,model:y.string().optional(),"fix-patch-file":y.string().optional(),"tech-doc":y.string().optional(),stream:y.boolean().optional(),verbose:y.boolean().optional(),json:y.boolean().optional(),"log-steps":y.boolean().optional(),"skip-validation":y.boolean().optional(),"fix-critical":y.boolean().optional(),"fix-dry-run":y.boolean().optional(),full:y.boolean().optional()}).refine(e=>!(e.full&&!e.files),{message:"--full \u9700\u8981\u540C\u65F6\u4F7F\u7528 --files \u6307\u5B9A\u8981\u5BA1\u67E5\u7684\u6587\u4EF6"}).refine(e=>!e.commit||!e.base&&!e.head&&!e.branch&&!e.full&&!e["commit-range"],{message:"--commit \u4E0D\u80FD\u4E0E --base\u3001--head\u3001--branch\u3001--full \u6216 --commit-range \u540C\u65F6\u4F7F\u7528"}).refine(e=>!e["commit-range"]||!e.base&&!e.head&&!e.branch&&!e.full&&!e.commit,{message:"--commit-range \u4E0D\u80FD\u4E0E --base\u3001--head\u3001--branch\u3001--full \u6216 --commit \u540C\u65F6\u4F7F\u7528"}).refine(e=>!(e.full&&(e.base||e.head||e.branch||e.commit||e["commit-range"])),{message:"--full \u4E0D\u80FD\u4E0E --base\u3001--head\u3001--branch\u3001--commit \u6216 --commit-range \u540C\u65F6\u4F7F\u7528"}).refine(e=>!(e.branch&&e.head),{message:"--branch \u4F1A\u81EA\u52A8\u4F5C\u4E3A\u6BD4\u8F83\u7EC8\u70B9\uFF0C\u4E0D\u80FD\u540C\u65F6\u4F7F\u7528 --head"}).refine(e=>!e.head||!!e.base,{message:"--head \u9700\u8981\u540C\u65F6\u6307\u5B9A --base"}),DP=y.object({url:y.string().url("MR \u94FE\u63A5\u65E0\u6548\u3002\u8BF7\u63D0\u4F9B\u5B8C\u6574\u7684 GitLab Merge Request URL\u3002"),confidence:jb,severity:Ub,agent:at,"exclude-agent":at,rule:at,"exclude-rule":at,executor:Vb,model:y.string().optional(),"tech-doc":y.string().optional(),stream:y.boolean().optional(),verbose:y.boolean().optional(),json:y.boolean().optional(),"log-steps":y.boolean().optional(),"skip-validation":y.boolean().optional(),base:y.string().optional(),head:y.string().optional(),branch:y.string().optional(),commit:y.string().optional(),"commit-range":Wb,files:at,ignore:at,full:y.boolean().optional(),"fix-critical":y.boolean().optional(),"fix-severity":Gb,"fix-dry-run":y.boolean().optional(),"fix-max-issues":qb,"fix-patch-file":y.string().optional()}).refine(e=>!e.base,{message:"--base \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.head,{message:"--head \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.branch,{message:"--branch \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.commit,{message:"--commit \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e["commit-range"],{message:"--commit-range \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.files||e.files.length===0,{message:"--files \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e.full,{message:"--full \u4E0D\u652F\u6301\u7528\u4E8E review-mr"}).refine(e=>!e["fix-critical"]&&!e["fix-severity"]&&!e["fix-dry-run"]&&e["fix-max-issues"]===void 0&&!e["fix-patch-file"],{message:"--fix-* \u4E0D\u652F\u6301\u7528\u4E8E review-mr"});function Hb(e){return gP.parse(e)}function Kb(e){return DP.parse(e)}Ce();var zb=require("node:fs/promises"),Jb=require("node:path");var Xt=require("node:path"),yP=/(?:import\s+(?:type\s+)?(?:[^'"`]*?\s+from\s*)?["'](\.{1,2}\/[^"'`]+)["'])|(?:export\s+(?:\*|\{[^}]*\})\s+from\s*["'](\.{1,2}\/[^"'`]+)["'])|(?:require\(\s*["'](\.{1,2}\/[^"'`]+)["']\s*\))|(?:import\(\s*["'](\.{1,2}\/[^"'`]+)["']\s*\))/g,wP=[".ts",".tsx",".mts",".cts",".js",".jsx",".mjs",".cjs"];function Nn(e){let t=[];for(let r of e.matchAll(yP)){let s=r[1]||r[2]||r[3]||r[4];s&&t.push(s)}return t}function lu(e,t){return Xt.posix.normalize(Xt.posix.join(Xt.posix.dirname(e),t))}function bP(e){let t=Xt.posix.normalize(e);return t!==".."&&!t.startsWith("../")&&!Xt.posix.isAbsolute(t)}function cu(e){let t=Xt.posix.normalize(e);if(!bP(t))return[];let r=new Set([t]);if(!Xt.posix.extname(t))for(let s of wP)r.add(`${t}${s}`),r.add(Xt.posix.join(t,`index${s}`));return[...r]}function pd(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}async function CP(e,t){try{return await(0,zb.readFile)((0,Jb.join)(e,t),"utf-8")}catch{return null}}async function Yb(e){let{repositoryPath:t,filePath:r,headRef:s,readFileAtRef:i}=e;return s?i(s,r):CP(t,r)}async function FP(e){let t=lu(e.fromFile,e.specifier),r=cu(t);for(let s of r){let i=await Yb({repositoryPath:e.repositoryPath,filePath:s,headRef:e.headRef,readFileAtRef:e.readFileAtRef});if(i!==null)return{file:s,content:i}}return null}async function Zb(e){let t=e.readFileAtRef??Bn,r=e.changedFileMaxChars??2e4,s=e.dependencyMaxChars??12e3,i=e.headRef??"worktree",n=new Set(e.diffs.map(u=>pd(u.file))),o=[],a=new Map;for(let u of e.diffs){if(u.isDeletedFile||u.status==="deleted")continue;let l=pd(u.newPath||u.file),c=await Yb({repositoryPath:e.repositoryPath,filePath:l,headRef:e.headRef,readFileAtRef:t});if(c===null)continue;e.fullMode||o.push({file:u.file,content:Ir(c,"changed-file",r),role:"changed-file",source:"local-git",ref:i,relatedFiles:[u.file]});let f=Nn(c);for(let h of f){let p=await FP({repositoryPath:e.repositoryPath,fromFile:l,specifier:h,headRef:e.headRef,readFileAtRef:t});if(!p||n.has(pd(p.file)))continue;let m=a.get(p.file);if(m){let g=new Set([...m.relatedFiles||[],u.file]);m.relatedFiles=[...g];continue}a.set(p.file,{file:p.file,content:Ir(p.content,"dependency",s),role:"dependency",source:"local-git",ref:i,relatedFiles:[u.file]})}}return[...o,...a.values()]}var Mn=require("node:path");Rr();var SP=new Set([".js",".jsx",".mjs",".cjs",".ts",".tsx",".mts",".cts",".py",".java",".kt",".kts",".go",".rs",".rb",".php",".swift",".scala",".cs",".c",".cc",".cpp",".cxx",".h",".hh",".hpp",".m",".mm",".sh",".bash",".zsh",".fish",".ps1",".sql",".vue",".svelte"]),xP=new Set([".json",".jsonc",".yaml",".yml",".toml",".ini",".cfg",".conf",".properties",".tf",".tfvars",".hcl",".xml"]),AP=new Set(["dockerfile","makefile","gnumakefile","justfile","procfile","jenkinsfile",".gitignore",".gitattributes",".editorconfig",".npmrc",".nvmrc",".yarnrc",".yarnrc.yml",".prettierignore",".prettierrc",".prettierrc.json",".prettierrc.yml",".prettierrc.yaml",".prettierrc.js",".prettierrc.cjs",".prettierrc.mjs",".prettierrc.toml",".eslintrc",".eslintrc.json",".eslintrc.yml",".eslintrc.yaml",".eslintrc.js",".eslintrc.cjs",".babelrc",".babelrc.json",".tool-versions"]),RP=[".env","dockerfile.",".env."];function md(e){return e.replace(/\\/g,"/").replace(/^\.\//,"")}function kP(e){let t=md(e),r=(0,Mn.basename)(t).toLowerCase(),s=(0,Mn.extname)(r);return SP.has(s)||xP.has(s)||AP.has(r)?!0:RP.some(i=>r===i||r.startsWith(i))}function IP(e,t){let r=md(e),s=md(t.trim()),i=s.startsWith("/"),n=s.replace(/^\.\//,"").replace(/^\/+/,"").replace(/\/+$/,"");if(!n)return!1;let o=TP(n,i);return o.some(a=>Ar(r,a))?!0:o.some(a=>r===a||r.startsWith(`${a}/`))}function _P(e){return/[*?[\]{}]/.test(e)}function Xb(e){return(0,Mn.basename)(e).includes(".")}function TP(e,t){let r=new Set([e]),s=_P(e);return Xb(e)||r.add(`${e}/**`),t||(r.add(`**/${e}`),(!Xb(e)||!s)&&r.add(`**/${e}/**`)),Array.from(r)}function $P(e){return e.flatMap(t=>t.split(",")).map(t=>t.trim()).filter(Boolean)}function Qb(e,t=[]){let r=[],s=[],i=[],n=$P(t);for(let o of e){if(!kP(o.file)){s.push(o);continue}if(n.some(a=>IP(o.file,a))){i.push(o);continue}r.push(o)}return{included:r,skippedNonReviewable:s,skippedIgnored:i}}var ev=require("node:fs/promises"),fu=require("node:path"),tv="https://open.feishu.cn";function rv(e){try{return new URL(e)}catch{return null}}function sv(e){return e.endsWith("feishu.cn")||e.endsWith("larksuite.com")}function PP(e){let t=rv(e);if(!t||!sv(t.hostname))throw new Error("\u4EC5\u652F\u6301\u98DE\u4E66\u65B0\u7248 docx \u94FE\u63A5\u6216\u672C\u5730 Markdown/\u6587\u672C\u6587\u4EF6");let r=t.pathname.match(/\/docx\/([^/?#]+)/);if(!r?.[1])throw new Error("\u4EC5\u652F\u6301\u98DE\u4E66\u65B0\u7248 docx \u94FE\u63A5\uFF08\u5F62\u5982 https://docs.feishu.cn/docx/<document_id>\uFF09");return decodeURIComponent(r[1])}async function iv(e,t){let r=await e.text(),s;try{s=JSON.parse(r)}catch(i){throw new Error(`${t} \u8FD4\u56DE\u4E86\u4E0D\u53EF\u89E3\u6790 JSON\uFF1A${r.slice(0,300)}`,{cause:i})}if(!e.ok)throw new Error(`${t} \u8BF7\u6C42\u5931\u8D25\uFF08${e.status}\uFF09\uFF1A${r.slice(0,300)}`);return s}async function BP(){let e=process.env.FEISHU_APP_ID,t=process.env.FEISHU_APP_SECRET;if(!e||!t)throw new Error("\u8BFB\u53D6\u98DE\u4E66\u6280\u672F\u6587\u6863\u9700\u8981\u8BBE\u7F6E FEISHU_APP_ID \u548C FEISHU_APP_SECRET\uFF1B\u4E5F\u53EF\u4EE5\u628A\u98DE\u4E66\u6587\u6863\u5BFC\u51FA/\u590D\u5236\u4E3A\u672C\u5730 Markdown \u540E\u4F7F\u7528 --tech-doc <path>\u3002");let r=await fetch(`${tv}/open-apis/auth/v3/tenant_access_token/internal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({app_id:e,app_secret:t})}),s=await iv(r,"\u98DE\u4E66 tenant_access_token");if(s.code!==0||!s.tenant_access_token)throw new Error(`\u83B7\u53D6\u98DE\u4E66 tenant_access_token \u5931\u8D25\uFF1A${s.msg||`code=${s.code}`}`);return s.tenant_access_token}async function OP(e){let t=PP(e),r=await BP(),s=await fetch(`${tv}/open-apis/docx/v1/documents/${encodeURIComponent(t)}/raw_content`,{method:"GET",headers:{Authorization:`Bearer ${r}`}}),i=await iv(s,"\u98DE\u4E66\u6587\u6863\u7EAF\u6587\u672C");if(i.code!==0)throw new Error(`\u8BFB\u53D6\u98DE\u4E66\u6587\u6863\u7EAF\u6587\u672C\u5931\u8D25\uFF1A${i.msg||`code=${i.code}`}`);let n=i.data?.content??i.data?.raw_content??"";if(!n.trim())throw new Error("\u98DE\u4E66\u6587\u6863\u7EAF\u6587\u672C\u4E3A\u7A7A\uFF0C\u65E0\u6CD5\u6267\u884C\u6280\u672F\u6587\u6863\u5BF9\u7167 review\u3002");return{source:e,type:"feishu-docx",title:t,rawContent:n}}async function nv(e,t=process.cwd()){let r=rv(e);if(r){if(sv(r.hostname))return OP(e);throw new Error("\u4EC5\u652F\u6301\u98DE\u4E66\u65B0\u7248 docx \u94FE\u63A5\u6216\u672C\u5730 Markdown/\u6587\u672C\u6587\u4EF6\u3002")}let s=(0,fu.resolve)(t,e),i=await(0,ev.readFile)(s,"utf-8");if(!i.trim())throw new Error(`\u6280\u672F\u6587\u6863\u4E3A\u7A7A\uFF1A${e}`);return{source:e,type:"local-file",title:(0,fu.basename)(e),rawContent:i}}M();M();function av(e){switch(e){case"modified":return"~";case"added":return"+";case"deleted":return"-";case"renamed":return"\u2192";default:return"\xB7"}}async function ov(e){let t=await Pw();return t.length===0?(e||d.info("\u6CA1\u6709\u672A\u63D0\u4EA4\u53D8\u66F4\uFF0C\u6539\u4E3A\u5BA1\u67E5\u6700\u8FD1\u4E00\u6B21\u63D0\u4EA4..."),t=await Ow(),{diffs:t,sourceLabel:"\uFF08\u6700\u8FD1\u63D0\u4EA4\uFF09"}):{diffs:t,sourceLabel:"\uFF08\u672A\u63D0\u4EA4\u53D8\u66F4\uFF09"}}async function uv(e){let{full:t,filesFilter:r,base:s,head:i,comparisonLabel:n,json:o}=e;if(t){(!r||r.length===0)&&(d.error("--full \u9700\u8981\u540C\u65F6\u6307\u5B9A --files"),process.exit(1)),o||d.info(`\u5B8C\u6574\u6587\u4EF6\u5BA1\u67E5\uFF1A${r.length} \u4E2A\u6587\u4EF6`);let{diffs:u,notFound:l}=await Mw(r);if(l.length>0&&!o)for(let c of l)d.warn(`\u6587\u4EF6\u4E0D\u5B58\u5728\uFF1A${c}`);return u.length===0&&(d.error("\u6CA1\u6709\u53EF\u8BFB\u53D6\u7684\u6587\u4EF6"),process.exit(1)),{diffs:u,sourceLabel:"\uFF08\u5B8C\u6574\u6587\u4EF6\uFF09"}}if(r&&r.length>0){let u,l;if(s){let h=i||"HEAD",p=n||`${s}...${h}`;o||d.info(`\u6BD4\u8F83 ${p}\uFF0C\u9650\u5B9A\u6587\u4EF6\uFF1A${r.join(", ")}`),u=await rd(s,h),l=` (${p})`}else{let h=await ov(o);u=h.diffs,l=h.sourceLabel}let{matched:c,unmatched:f}=Nw(u,r);if(f.length>0&&!o)for(let h of f)d.warn(`\u6CA1\u6709\u627E\u5230\u8BE5\u6587\u4EF6\u7684\u53D8\u66F4\uFF1A${h}`);return c.length===0?(d.success("\u6307\u5B9A\u6587\u4EF6\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u53D8\u66F4"),null):{diffs:c,sourceLabel:l}}if(s){let u=i||"HEAD",l=n||`${s}...${u}`;o||d.info(`\u6BD4\u8F83 ${l}`);let c=await rd(s,u);return c.length===0?(d.success("\u4E24\u4E2A ref \u4E4B\u95F4\u6CA1\u6709\u53D8\u66F4"),null):{diffs:c,sourceLabel:` (${l})`}}let a=await ov(o);return a.diffs.length===0?(d.success("\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u53D8\u66F4"),null):{diffs:a.diffs,sourceLabel:a.sourceLabel}}M();function LP(e){let t=e.checks.filter(r=>!r.readiness.ready);return{error:e.message||"\u6267\u884C\u5668\u4E0D\u53EF\u7528",executors:t.map(r=>({executor:r.executor,reason:r.readiness.reason,hint:r.readiness.hint,suggestions:r.readiness.suggestions??[]}))}}function NP(e){d.error(`${e.executor} \u4E0D\u53EF\u7528\uFF1A${e.readiness.reason||"\u672A\u7ED9\u51FA\u5931\u8D25\u539F\u56E0"}`),e.readiness.hint&&d.info(e.readiness.hint),e.readiness.suggestions&&e.readiness.suggestions.length>0&&(d.info("\u5EFA\u8BAE\u5904\u7406\uFF1A"),e.readiness.suggestions.forEach((t,r)=>{d.plain(` ${r+1}. ${t}`)}))}async function jn(e){let{config:t,executorOverride:r,modelOverride:s,json:i,requirePing:n=!0}=e;i||d.robot(n?"\u6B63\u5728\u6821\u9A8C\u6A21\u578B\u670D\u52A1\u8054\u901A...":"\u6B63\u5728\u6821\u9A8C\u6267\u884C\u5668\u914D\u7F6E...");let o=await xr(t,{executorOverride:r,modelOverride:s,requirePing:n});if(!o.ok){if(i)console.error(JSON.stringify(LP(o),null,2));else{d.error(o.message||"\u6267\u884C\u5668\u914D\u7F6E\u6821\u9A8C\u5931\u8D25");for(let a of o.checks.filter(u=>!u.readiness.ready))NP(a)}return process.exitCode=1,!1}if(!i){let a=o.checks[0]?.executor||t.executor;d.success(`\u6267\u884C\u5668\u914D\u7F6E\u6821\u9A8C\u901A\u8FC7\uFF1A${a}`)}return!0}M();function du(e){return e>=1e3?`${(e/1e3).toFixed(1)}s`:`${e}ms`}function MP(e,t,r){let s=["Review \u6B65\u9AA4\u8017\u65F6\uFF1A"];for(let i of e){let n=i.success?"\u2713":"\u2717",o=i.error?`\uFF0C\u5931\u8D25\uFF1A${i.error}`:"";s.push(` ${n} ${i.stageName}\uFF08${i.stageId}\uFF09\uFF1A${du(i.duration)}${o}`)}return s.push(` Pipeline \u603B\u8017\u65F6\uFF1A${du(t)}`),r!==void 0&&s.push(` Review \u547D\u4EE4\u603B\u8017\u65F6\uFF1A${du(r)}`),s}function lv(e){let{result:t,filteredDiffs:r,severityFilter:s,json:i,showStepTimings:n=!1,commandDuration:o}=e,a=t.context.issues,u=a.filter(m=>m.severity==="critical").length,l=a;if(s&&s.length>0&&(l=a.filter(m=>s.includes(m.severity))),!i&&t.context.autofix?.enabled){let m=t.context.autofix;d.newline(),m.error?d.warn(`\u81EA\u52A8\u4FEE\u590D\u5931\u8D25\uFF1A${m.error}`):m.targetIssueCount===0?d.info("\u81EA\u52A8\u4FEE\u590D\uFF1A\u6CA1\u6709\u9700\u8981\u5904\u7406\u7684\u76EE\u6807\u95EE\u9898"):m.dryRun?d.success(`\u81EA\u52A8\u4FEE\u590D\uFF1A\u8865\u4E01\u6821\u9A8C\u901A\u8FC7\uFF08dry-run\uFF09\uFF0C\u76EE\u6807 ${m.targetIssueCount} \u4E2A\u95EE\u9898\uFF0C\u5F71\u54CD ${m.changedFiles.length} \u4E2A\u6587\u4EF6`):d.success(`\u81EA\u52A8\u4FEE\u590D\uFF1A\u5DF2\u5E94\u7528\u8865\u4E01\uFF0C\u76EE\u6807 ${m.targetIssueCount} \u4E2A\u95EE\u9898\uFF0C\u4FEE\u6539 ${m.changedFiles.length} \u4E2A\u6587\u4EF6`),m.patchPath&&d.info(`\u8865\u4E01\u6587\u4EF6\uFF1A${m.patchPath}`),m.suggestion&&d.info(m.suggestion)}let c=t.context.results.filter(m=>m.success).length,f=si(t.context),h=f.agentExecutions.succeeded>0,p=f.findingCounts.afterValidation===null?"\u9A8C\u8BC1\u5DF2\u8DF3\u8FC7":String(f.findingCounts.afterValidation);if(i){let m=lw(l,t.success,t.totalDuration,t.context.results.length,c,r.length,f,t.context.autofix,t.context.usage,o,t.context.validation);console.log(m),(!t.success||u>0)&&(process.exitCode=1);return}if(d.separator(),t.success?d.success(`\u6D41\u6C34\u7EBF\u6267\u884C\u6210\u529F\uFF0C\u8017\u65F6 ${t.totalDuration}ms`):d.warn(`\u6D41\u6C34\u7EBF\u6267\u884C\u5B8C\u6210\uFF0C\u4F46\u5B58\u5728\u9519\u8BEF\uFF0C\u8017\u65F6 ${t.totalDuration}ms`),o!==void 0&&d.chart(`Review \u547D\u4EE4\u603B\u8017\u65F6\uFF1A${du(o)}`),n){d.newline();for(let m of MP(t.stages,t.totalDuration,o))d.plain(m)}if(d.chart(`${c}/${t.context.results.length} \u4E2A Agent \u6267\u884C\u6210\u529F`),t.context.usage&&t.context.usage.requests>0){let m=t.context.usage,g=m.estimated?"\uFF08\u542B\u4F30\u7B97\uFF09":"";d.chart(`\u6A21\u578B\u7528\u91CF${g}\uFF1A\u8C03\u7528 ${m.modelCalls} \u6B21\uFF0C\u7F13\u5B58 ${m.cachedCalls} \u6B21\uFF0Ctokens ${m.totalTokens.toLocaleString()}\uFF0C\u7F13\u5B58\u8282\u7701\u7EA6 ${m.savedTokens.toLocaleString()}`)}if(s&&s.length>0){let m=s.map(g=>kn[g]).join(", ");d.info(`\u6309\u4E25\u91CD\u7EA7\u522B\u8FC7\u6EE4\uFF1A${m}`)}if(d.chart(h?ow(l):"\u98CE\u9669\u7ED3\u8BBA\uFF1A\u672A\u77E5\uFF08\u5BA1\u67E5\u672A\u5B8C\u6210\uFF09"),d.chart(`\u53D1\u73B0\u7EDF\u8BA1\uFF1A\u539F\u59CB ${f.findingCounts.raw} -> \u7F6E\u4FE1\u5EA6\u8FC7\u6EE4\u540E ${f.findingCounts.afterConfidence} -> \u9A8C\u8BC1\u540E ${p} -> \u6700\u7EC8\u8BA1\u5206 ${f.findingCounts.final}`),f.qualityScore.status==="valid"?d.chart(`\u8D28\u91CF\u8BC4\u5206\uFF1A${f.qualityScore.score}/${f.qualityScore.details?.base??100}`):d.chart(`\u8D28\u91CF\u8BC4\u5206\uFF1A\u672A\u77E5\uFF08${f.qualityScore.reason||"\u8BC4\u5206\u6761\u4EF6\u4E0D\u6210\u7ACB"}\uFF09`),l.length>0)d.newline(),console.log(uw(l));else if(d.newline(),!h)d.warn("\u5BA1\u67E5\u672A\u5B8C\u6210\uFF1A\u6CA1\u6709\u4EFB\u4F55 Agent \u6210\u529F\u6267\u884C\uFF0C\u4E0D\u80FD\u7ED9\u51FA\u201C\u672A\u53D1\u73B0\u95EE\u9898\u201D\u7684\u53EF\u4FE1\u7ED3\u8BBA");else if(!t.success)d.warn("\u5BA1\u67E5\u672A\u5B8C\u5168\u5B8C\u6210\uFF1A\u5F53\u524D\u6CA1\u6709\u53EF\u5C55\u793A\u95EE\u9898\uFF0C\u4F46\u6D41\u6C34\u7EBF\u5B58\u5728\u9519\u8BEF\uFF0C\u8BF7\u5148\u5904\u7406\u5931\u8D25\u539F\u56E0");else if(s&&s.length>0){let m=s.map(g=>kn[g]).join(", ");d.success(`\u6CA1\u6709\u53D1\u73B0 ${m} \u7EA7\u522B\u7684\u95EE\u9898 \u{1F389}`)}else d.success("\u6CA1\u6709\u53D1\u73B0\u95EE\u9898 \u{1F389}");u>0&&(d.warn(`CI \u95E8\u7981\uFF1A\u672A\u901A\u8FC7\uFF0C\u5B58\u5728 ${u} \u4E2A\u4E25\u91CD\u98CE\u9669`),process.exitCode=1),t.success||(process.exitCode=1),d.newline()}function jP(e,t){let r=e instanceof Error?e.message:String(e);t?console.error(JSON.stringify({error:r})):d.error(r)}async function gd(e){let{projectPath:t,config:r,diffs:s,sourceLabel:i,verbose:n,json:o,stream:a,severityFilter:u,base:l,head:c,skipValidation:f,agentFilter:h,excludeAgents:p,ruleFilter:m,excludeRules:g,executor:D,model:b,confidence:w,ignore:v,fixSeverities:E=[],fixDryRun:C=!1,fixMaxIssues:x,fixPatchFile:$,full:F=!1,metadata:R,supplementalContextFiles:W,techDoc:ae,techDocSource:K,commitMessages:I,commandStartTimeMs:L,readinessChecked:Q=!1}=e,re=[...r.excludePatterns,...v??[]],z=Qb(s,re),J=z.included;if(J.length===0)return o||d.success("\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u4EE3\u7801\u6216\u914D\u7F6E\u53D8\u66F4"),null;let fe=J.reduce((de,_r)=>de+_r.additions,0),se=J.reduce((de,_r)=>de+_r.deletions,0),Y=fe+se,U=J.reduce((de,_r)=>(de[_r.status]=(de[_r.status]||0)+1,de),{}),ue=W??await Zb({repositoryPath:t,diffs:J,headRef:l?c||"HEAD":void 0,fullMode:F}),ke=ae??(K?await nv(K,t):void 0);if(!o){let de=[];if(U.modified&&de.push(`${U.modified} \u4E2A\u4FEE\u6539`),U.added&&de.push(`${U.added} \u4E2A\u65B0\u589E`),U.deleted&&de.push(`${U.deleted} \u4E2A\u5220\u9664`),U.renamed&&de.push(`${U.renamed} \u4E2A\u91CD\u547D\u540D`),d.file(`${J.length} \u4E2A\u6587\u4EF6${i}\uFF1A${de.join(", ")}`),d.plain(` ${Y} \u5904\u53D8\u66F4\uFF1A+${fe} -${se}`),n||J.length<=5){d.newline();for(let ds of J){let mu=av(ds.status);d.plain(` ${mu} ${ds.file}: +${ds.additions} -${ds.deletions}`)}}if(z.skippedNonReviewable.length>0&&d.info(`\u5DF2\u81EA\u52A8\u8DF3\u8FC7 ${z.skippedNonReviewable.length} \u4E2A\u975E\u4EE3\u7801/\u914D\u7F6E\u6587\u4EF6`),z.skippedIgnored.length>0&&d.info(`\u5DF2\u5FFD\u7565 ${z.skippedIgnored.length} \u4E2A\u547D\u4E2D\u6392\u9664\u89C4\u5219\u7684\u6587\u4EF6`),v&&v.length>0&&d.info(`\u989D\u5916\u5FFD\u7565\uFF1A${v.join(", ")}`),ue&&ue.length>0){let ds=ue.filter(gu=>gu.role==="changed-file").length,mu=ue.filter(gu=>gu.role==="dependency").length;d.info(`\u8865\u5145\u4E0A\u4E0B\u6587\uFF1A\u53D8\u66F4\u6587\u4EF6\u5168\u6587 ${ds} \u4EFD\uFF0C\u4F9D\u8D56\u6587\u4EF6 ${mu} \u4EFD`)}ke&&d.info(`\u6280\u672F\u6587\u6863\uFF1A${ke.title||ke.source}`),d.newline(),d.robot("\u6B63\u5728\u52A0\u8F7D\u6267\u884C\u5668\u548C Agent...")}let Qt=await Js();if(o||d.success(`\u5DF2\u52A0\u8F7D ${Qt.length} \u4E2A\u6267\u884C\u5668\u5B9A\u4E49`),!Q&&!await jn({config:r,executorOverride:D,modelOverride:b,json:o,requirePing:!0}))return null;let fs=await ze({projectPath:t,executorOverride:D,modelOverride:b});D&&!o&&d.info(`\u4F7F\u7528\u6267\u884C\u5668\uFF1A${D}`),o||(h&&d.info(`Agent \u8FC7\u6EE4\uFF1A${h.join(", ")}`),p&&d.info(`\u6392\u9664 Agent\uFF1A${p.join(", ")}`),m&&d.info(`\u89C4\u5219\u8FC7\u6EE4\uFF1A${m.join(", ")}`),g&&d.info(`\u6392\u9664\u89C4\u5219\uFF1A${g.join(", ")}`));let qn=fs.filter(de=>de.enabled);o||(d.success(`\u5DF2\u52A0\u8F7D ${qn.length} \u4E2A\u53EF\u7528 Agent`),d.newline());let wt=await new oi(fs,Qt).execute(J,{verbose:n,quiet:o,concurrency:r.concurrency,skipValidation:f,stream:a,baseRef:l,headRef:c,agentFilter:h,excludeAgents:p,ruleFilter:m,excludeRules:g,minConfidence:w,modelOverride:b,fixSeverities:E,fixDryRun:C,fixMaxIssues:x,fixPatchFile:$,config:r,repositoryPath:t,metadata:R,supplementalContextFiles:ue,techDoc:ke,commitMessages:I}),pu=L===void 0?void 0:Date.now()-L,Sd=wt.context.issues,$v=u&&u.length>0?Sd.filter(de=>u.includes(de.severity)):Sd,Pv=wt.context.results.filter(de=>de.success).length,Bv=si(wt.context),Ov=Yf($v,wt.success,wt.totalDuration,wt.context.results.length,Pv,J.length,Bv,wt.context.autofix,wt.context.usage,pu,wt.context.validation);return{result:wt,filteredDiffs:J,jsonOutput:Ov,...pu!==void 0&&{commandDuration:pu}}}async function Dd(e){let t=await gd(e);t&&lv({result:t.result,filteredDiffs:t.filteredDiffs,severityFilter:e.severityFilter,json:e.json,showStepTimings:e.logSteps,commandDuration:t.commandDuration})}async function cv(e){let t=Date.now(),{verbose:r=!1,json:s=!1,stream:i=!1,logSteps:n=!1,severity:o,base:a,head:u,branch:l,commit:c,commitRange:f,skipValidation:h=!1,agent:p,excludeAgent:m,rule:g,excludeRule:D,executor:b,model:w,confidence:v,files:E,full:C=!1,ignore:x,fixCritical:$=!1,fixSeverity:F,fixDryRun:R=!1,fixMaxIssues:W,fixPatchFile:ae,techDoc:K}=e,I=Array.from(new Set([...$?["critical"]:[],...F??[]]));s||d.logo();let L=process.cwd(),Q=await oe(L);if(!await jn({config:Q,executorOverride:b,modelOverride:w,json:s,requirePing:!0}))return;C||await eu()||(s||d.error("\u5F53\u524D\u76EE\u5F55\u4E0D\u662F Git \u4ED3\u5E93"),process.exit(1));let z=a,J=u,fe;if(l!==void 0&&l!==""){let Y=l==="."?await xw():l;Y||(s||(d.error("\u65E0\u6CD5\u786E\u5B9A\u5F53\u524D\u5206\u652F\uFF08\u53EF\u80FD\u5904\u4E8E detached HEAD\uFF09"),d.info("\u8BF7\u663E\u5F0F\u6307\u5B9A\u5206\u652F\uFF1Abest-review review --branch feature-auth")),process.exit(1));let U=a||await Aw();U||(s||(d.error("\u65E0\u6CD5\u68C0\u6D4B\u9ED8\u8BA4\u5206\u652F\uFF08main/master/develop\uFF09"),d.info("\u8BF7\u663E\u5F0F\u6307\u5B9A --base\uFF1Abest-review review --branch --base main")),process.exit(1)),l!=="."&&!await Rw(l)&&(s||d.error(`\u5206\u652F\u4E0D\u5B58\u5728\uFF1A${l}`),process.exit(1)),Y===U?(s||d.warn(`\u5206\u652F "${Y}" \u5C31\u662F\u57FA\u51C6\u5206\u652F\uFF0C\u5C06\u6539\u4E3A\u5BA1\u67E5\u672A\u63D0\u4EA4\u53D8\u66F4`),z=void 0,J=void 0):(z=U,J=Y,s||d.info(`\u5BA1\u67E5 "${Y}" \u76F8\u5BF9 "${U}" \u7684\u53D8\u66F4`))}try{let Y=await Bb({commit:c,commitRange:f},{hasCommit:Pn,isAncestor:Iw});Y?(z=Y.base,J=Y.head,fe=Y.label,s||d.info(`\u5BA1\u67E5 ${Y.label}`)):z&&(J=J||"HEAD",await Ob({base:z,head:J},{hasCommit:Pn}))}catch(Y){jP(Y,s),process.exit(1)}s||d.chart("\u6B63\u5728\u5206\u6790\u53D8\u66F4...");let se=await uv({full:C,filesFilter:E,base:z,head:J,comparisonLabel:fe,json:s});se&&await Dd({projectPath:L,config:Q,diffs:se.diffs,sourceLabel:se.sourceLabel,verbose:r,json:s,stream:i,logSteps:n,severityFilter:o,base:z,head:J,skipValidation:h,agentFilter:p,excludeAgents:m,ruleFilter:g,excludeRules:D,executor:b,model:w,confidence:v,ignore:x,fixSeverities:I,fixDryRun:R,fixMaxIssues:W,fixPatchFile:ae,full:C,techDocSource:K,commandStartTimeMs:t,readinessChecked:!0})}var fv={meta:{name:"review",description:`\u5BA1\u67E5\u5F53\u524D\u4EE3\u7801\u53D8\u66F4
631
631
 
632
632
  Examples:
633
633
  best-review review \u5BA1\u67E5\u672A\u63D0\u4EA4\u53D8\u66F4
@@ -649,13 +649,13 @@ Examples:
649
649
  best-review review --log-steps \u8F93\u51FA\u8BE6\u7EC6\u6B65\u9AA4\u548C\u9636\u6BB5\u8017\u65F6
650
650
  best-review review --stream \u5C55\u793A\u6267\u884C\u5668\u652F\u6301\u7684\u6D41\u5F0F\u8F93\u51FA
651
651
  best-review review --executor deepseek-api \u4F7F\u7528 DeepSeek API \u6267\u884C\u5668
652
- best-review review --model deepseek-v4-flash \u8986\u76D6\u6240\u6709 Agent \u7684\u6A21\u578B`},args:{stream:{type:"boolean",description:"\u5C55\u793A\u6267\u884C\u5668\u652F\u6301\u7684\u6D41\u5F0F\u8F93\u51FA"},verbose:{type:"boolean",description:"\u5C55\u793A\u539F\u59CB JSON \u6D41"},json:{type:"boolean",description:"\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u7ED3\u679C"},"log-steps":{type:"boolean",description:"\u8F93\u51FA review \u547D\u4EE4\u8BE6\u7EC6\u6B65\u9AA4\u548C\u9636\u6BB5\u8017\u65F6\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09"},severity:{type:"string",description:"\u6309\u4E25\u91CD\u7EA7\u522B\u8FC7\u6EE4\u95EE\u9898\uFF08\u9017\u53F7\u5206\u9694\uFF1Acritical,high,medium,low\uFF09"},base:{type:"string",description:"\u6BD4\u8F83\u8D77\u70B9 commit/\u5206\u652F\uFF08\u4F8B\u5982 main\u3001HEAD~3\uFF09"},head:{type:"string",description:"\u6BD4\u8F83\u7EC8\u70B9 commit/\u5206\u652F\uFF08\u9ED8\u8BA4 HEAD\uFF09"},branch:{type:"string",description:'\u5BA1\u67E5\u5206\u652F\u76F8\u5BF9\u57FA\u51C6\u5206\u652F\u7684\u53D8\u66F4\uFF08\u81EA\u52A8\u68C0\u6D4B main\uFF09\uFF1B"." \u8868\u793A\u5F53\u524D\u5206\u652F'},commit:{type:"string",description:"\u5BA1\u67E5\u5355\u4E2A commit\uFF08\u7B49\u4EF7\u4E8E\u6BD4\u8F83 <commit>^ \u548C <commit>\uFF09"},"commit-range":{type:"string",description:"\u5BA1\u67E5\u8FDE\u7EED\u591A\u4E2A commit\uFF0C\u683C\u5F0F <oldest>..<newest>\uFF08\u5305\u542B\u4E24\u7AEF\uFF09"},"skip-validation":{type:"boolean",description:"\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5\uFF08\u76F4\u63A5\u5C55\u793A\u672A\u590D\u6838\u7684\u95EE\u9898\uFF09"},"fix-critical":{type:"boolean",description:"\u5BA1\u67E5\u540E\u81EA\u52A8\u4FEE\u590D critical \u7EA7\u4E25\u91CD\u98CE\u9669"},"fix-severity":{type:"string",description:"\u81EA\u52A8\u4FEE\u590D\u6307\u5B9A\u4E25\u91CD\u7EA7\u522B\uFF08\u9017\u53F7\u5206\u9694\uFF1Acritical,high,medium,low\uFF09"},"fix-dry-run":{type:"boolean",description:"\u53EA\u751F\u6210\u5E76\u6821\u9A8C\u4FEE\u590D\u8865\u4E01\uFF0C\u4E0D\u5199\u5165\u6587\u4EF6"},"fix-max-issues":{type:"string",description:"\u5355\u6B21\u81EA\u52A8\u4FEE\u590D\u6700\u591A\u5904\u7406\u7684\u95EE\u9898\u6570\uFF08\u9ED8\u8BA4 5\uFF09"},"fix-patch-file":{type:"string",description:"\u5C06\u81EA\u52A8\u4FEE\u590D\u751F\u6210\u7684 unified diff \u989D\u5916\u4FDD\u5B58\u5230\u6307\u5B9A\u6587\u4EF6"},agent:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF1Abug-hunter,security-scan\uFF09"},"exclude-agent":{type:"string",description:"\u6392\u9664\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF09"},rule:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF1Acode-security,code-bugs\uFF09"},"exclude-rule":{type:"string",description:"\u6392\u9664\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF09"},executor:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6267\u884C\u5668\uFF08openai-compatible-api \u6216 deepseek-api\uFF09"},model:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6A21\u578B\uFF08\u4F8B\u5982 gpt-5.4-mini \u6216 deepseek-v4-flash\uFF09"},confidence:{type:"string",description:"\u6700\u5C0F\u7F6E\u4FE1\u5EA6\u9608\u503C 0-100\uFF08\u9ED8\u8BA4 70\uFF09\uFF0C\u4F4E\u4E8E\u9608\u503C\u7684\u95EE\u9898\u4F1A\u88AB\u8FC7\u6EE4"},files:{type:"string",description:"\u53EA\u5BA1\u67E5\u6307\u5B9A\u6587\u4EF6\uFF08\u8DEF\u5F84\u7528\u9017\u53F7\u5206\u9694\uFF09"},ignore:{type:"string",description:"\u989D\u5916\u5FFD\u7565\u7684\u76EE\u5F55\u6216\u6587\u4EF6\uFF08\u9017\u53F7\u5206\u9694\uFF0C\u4F8B\u5982 dist,fixtures/**\uFF09"},full:{type:"boolean",description:"\u5BA1\u67E5\u5B8C\u6574\u6587\u4EF6\u5185\u5BB9\uFF0C\u4E0D\u4F9D\u8D56 Git diff\uFF08\u9700\u8981 --files\uFF09"},"tech-doc":{type:"string",description:"\u6280\u672F\u6587\u6863\u8DEF\u5F84\u6216\u98DE\u4E66 docx \u94FE\u63A5\uFF0C\u7528\u4E8E\u5BF9\u7167\u9A8C\u6536 diff"}},run:async({args:e})=>{try{let t=Wb(e);await lv({verbose:t.verbose,json:t.json,stream:t.stream,logSteps:t["log-steps"],severity:t.severity,base:t.base,head:t.head,branch:t.branch,commit:t.commit,commitRange:t["commit-range"],skipValidation:t["skip-validation"],agent:t.agent,excludeAgent:t["exclude-agent"],rule:t.rule,excludeRule:t["exclude-rule"],executor:t.executor,model:t.model,confidence:t.confidence,files:t.files,ignore:t.ignore,full:t.full,techDoc:t["tech-doc"],fixCritical:t["fix-critical"],fixSeverity:t["fix-severity"],fixDryRun:t["fix-dry-run"],fixMaxIssues:t["fix-max-issues"],fixPatchFile:t["fix-patch-file"]})}catch(t){if(t instanceof ve){let s=t.errors[0]?.message||"\u53C2\u6570\u65E0\u6548";e.json?console.error(JSON.stringify({error:s})):d.error(s),process.exit(1)}throw t}}};vr();M();Ee();function LP(e){let t=0,r=0;for(let s of e.split(`
653
- `))s.startsWith("+")&&!s.startsWith("+++")&&t++,s.startsWith("-")&&!s.startsWith("---")&&r++;return{additions:t,deletions:r}}function NP(e){return`${e.origin}/api/v4`}function MP(e){let t=new URL(e),r=t.pathname.replace(/\/+$/,""),s=r.match(/^\/(.+?)(?:\/-|)\/merge_requests\/(\d+)$/);if(!s?.[1]||!s[2])throw new Error("MR \u94FE\u63A5\u65E0\u6548\u3002\u8BF7\u63D0\u4F9B GitLab Merge Request \u9875\u9762 URL\u3002");return{host:t.hostname,projectPath:decodeURIComponent(s[1]),mrIid:s[2],apiBaseUrl:NP(t),webUrl:`${t.origin}${r}`}}function fv(e){let t=e?.trim()||process.env.GITLAB_TOKEN?.trim()||ii();if(!t)throw new Error("\u7F3A\u5C11 GITLAB_TOKEN \u6216 BEST_REVIEW_HISTORY_USER_TOKEN\uFF0C\u65E0\u6CD5\u8BFB\u53D6 GitLab Merge Request\u3002");return t}async function yd(e,t,r){let s=await It(`${e.apiBaseUrl}${t}`,{headers:{"PRIVATE-TOKEN":fv(r.readToken)}});if(!s.ok){let i=await s.text().catch(()=>"");throw new Error(`GitLab API \u8BF7\u6C42\u5931\u8D25\uFF1A${s.status}${i?` ${i.slice(0,200)}`:""}`)}return await s.json()}async function jP(e,t,r){let s=await It(`${e.apiBaseUrl}${t}`,{headers:{"PRIVATE-TOKEN":fv(r.readToken)}});if(!s.ok){let i=await s.text().catch(()=>"");throw new Error(`GitLab \u6587\u4EF6\u8BFB\u53D6\u5931\u8D25\uFF1A${s.status}${i?` ${i.slice(0,200)}`:""}`)}return await s.text()}function qP(e){return e.deleted_file?"deleted":e.new_file?"added":e.renamed_file?"renamed":"modified"}function UP(e){let t=e.old_path||e.new_path||"",r=e.new_path||e.old_path||"",s=e.deleted_file?t:r,i=e.diff||"",{additions:n,deletions:o}=LP(i);return{file:s,status:qP(e),diff:i,additions:n,deletions:o,oldPath:t,newPath:r,isNewFile:e.new_file===!0,isDeletedFile:e.deleted_file===!0,isRenamedFile:e.renamed_file===!0}}async function GP(e,t,r,s){let i=await Promise.all(r.map(async n=>{let o=n.isDeletedFile?n.oldPath||n.file:n.newPath||n.file,a=n.isDeletedFile?t.baseSha:t.headSha,u=encodeURIComponent(o),l=await jP(e,`/projects/${encodeURIComponent(e.projectPath)}/repository/files/${u}/raw?ref=${encodeURIComponent(a)}`,s);return[n.file,l]}));return Object.fromEntries(i)}async function wd(e,t={}){let r=MP(e),[s,i]=await Promise.all([yd(r,`/projects/${encodeURIComponent(r.projectPath)}/merge_requests/${r.mrIid}`,t),yd(r,`/projects/${encodeURIComponent(r.projectPath)}/merge_requests/${r.mrIid}/versions`,t)]),n=[...i].filter(c=>c.id&&c.base_commit_sha&&c.start_commit_sha&&c.head_commit_sha).sort((c,f)=>Number(f.id)-Number(c.id))[0];if(!n?.id||!n.base_commit_sha||!n.start_commit_sha||!n.head_commit_sha)throw new Error("GitLab Merge Request \u6CA1\u6709\u53EF\u7528\u7684 diff version\u3002");let o=await yd(r,`/projects/${encodeURIComponent(r.projectPath)}/merge_requests/${r.mrIid}/versions/${n.id}?unidiff=true`,t),a={id:String(o.id??n.id),baseSha:o.base_commit_sha||n.base_commit_sha,startSha:o.start_commit_sha||n.start_commit_sha,headSha:o.head_commit_sha||n.head_commit_sha},u=(o.diffs||[]).map(UP).filter(c=>c.file&&c.diff),l=await GP(r,a,u,t);return{target:r,mergeRequest:{iid:String(s.iid??r.mrIid),title:s.title||`MR !${r.mrIid}`,webUrl:s.web_url||r.webUrl},version:a,diffs:u,remoteFiles:l}}function bd(e){return e.trim().toLowerCase().replace(/:\d+$/,"")}function vd(e){return decodeURIComponent(e).trim().replace(/^\/+/,"").replace(/\.git$/i,"").replace(/\/+$/,"").toLowerCase()}function VP(e){let t=e.trim();if(!t)return null;try{let s=new URL(t),i=s.protocol==="ssh:"?s.pathname.replace(/^\/+/,""):s.pathname.slice(1);return{host:bd(s.hostname),projectPath:vd(i)}}catch{}let r=t.match(/^(?:[^@]+@)?([^:]+):(.+)$/);return!r?.[1]||!r[2]?null:{host:bd(r[1]),projectPath:vd(r[2])}}function WP(e,t,r){let s=VP(e);return s?s.host===bd(t)&&s.projectPath===vd(r):!1}async function KP(e,t,r,s){let i=lu(t,r),n=cu(i);if(s){let o=n.find(a=>s.has(a));return o?{file:o}:null}for(let o of n){let a=await Pn(e,o);if(a!==null)return{file:o,content:a}}return null}function HP(e,t,r,s){let i=[];for(let n of e){let o=t[n.file];typeof o=="string"&&i.push({file:n.file,content:Ir(o,"changed-file"),role:"changed-file",source:"gitlab-remote",ref:n.isDeletedFile?s:r,relatedFiles:[n.file]})}return i}async function Ed(e){let{reviewTarget:t,diffs:r,remoteFiles:s}=e,i=HP(r,s,t.diffVersion.headSha,t.diffVersion.baseSha);if(!await eu())return i;let o=await Iw("origin");if(!o||!WP(o,t.host,t.projectPath))return i;let a=t.diffVersion.headSha;if(!await $n(a))return i;let u=await _w(a).catch(()=>null),l=u&&u.length>0?new Set(u):null,c=new Set(r.map(h=>h.file)),f=new Map;for(let h of r){if(h.isDeletedFile)continue;let p=s[h.file];if(!p)continue;let m=Ln(p);for(let g of m){let D=await KP(a,h.newPath||h.file,g,l||void 0);if(!D||c.has(D.file))continue;let b=f.get(D.file);if(b){let v=new Set([...b.relatedFiles||[],h.file]);b.relatedFiles=[...v];continue}let w=D.content??await Pn(a,D.file);w!==null&&f.set(D.file,{file:D.file,content:Ir(w,"dependency"),role:"dependency",source:"local-git",ref:a,relatedFiles:[h.file]})}}return[...i,...f.values()]}M();function dv(e,t){t?console.error(JSON.stringify({error:e})):d.error(e),process.exitCode=1}async function hv(e){let t=Date.now(),{url:r,verbose:s=!1,json:i=!1,stream:n=!1,logSteps:o=!1,severity:a,skipValidation:u=!1,agent:l,excludeAgent:c,rule:f,excludeRule:h,executor:p,model:m,confidence:g,ignore:D,techDoc:b}=e;i||d.logo();let w=process.cwd(),v=await oe(w),E=od();if(E.length>0){let H=ad(E);dv(H,i);return}if(!(!Bn(v)||await ld({projectPath:w,interactive:process.stdin.isTTY&&process.stdout.isTTY,json:i}))){dv("\u7F3A\u5C11 GITLAB_TOKEN\u3002\u8BF7\u8FD0\u884C br init GITLAB_TOKEN \u5199\u5165\u7528\u6237\u7EA7\u914D\u7F6E\uFF0C\u6216\u5728\u5F53\u524D\u73AF\u5883\u4E2D\u5BFC\u51FA\u8BE5\u53D8\u91CF\u3002",i);return}if(!await Mn({config:v,executorOverride:p,modelOverride:m,json:i,requirePing:!0}))return;i||d.chart("\u6B63\u5728\u8BFB\u53D6 GitLab Merge Request...");let F=Pt(process.env.GITLAB_TOKEN)||Pt(v.gitlab.token),R=await wd(r,F?{readToken:F}:void 0),W={kind:"gitlab-mr",mrUrl:R.mergeRequest.webUrl,host:R.target.host,projectPath:R.target.projectPath,mrIid:R.target.mrIid,apiBaseUrl:R.target.apiBaseUrl,diffVersion:R.version},ae=await Ed({reviewTarget:W,diffs:R.diffs,remoteFiles:R.remoteFiles});i||d.info(`\u76EE\u6807 MR\uFF1A!${R.mergeRequest.iid} ${R.mergeRequest.title}`),await Dd({projectPath:w,config:v,diffs:R.diffs,sourceLabel:`\uFF08GitLab MR !${R.mergeRequest.iid}\uFF09`,verbose:s,json:i,stream:n,severityFilter:a,base:R.version.baseSha,head:R.version.headSha,skipValidation:u,agentFilter:l,excludeAgents:c,ruleFilter:f,excludeRules:h,executor:p,model:m,confidence:g,ignore:D,fixSeverities:[],metadata:{reviewTarget:W},supplementalContextFiles:ae,techDocSource:b,commitMessages:[],commandStartTimeMs:t,logSteps:o,readinessChecked:!0})}async function pv(e){let t=Date.now(),{url:r,verbose:s=!1,severity:i,skipValidation:n=!1,agent:o,excludeAgent:a,rule:u,excludeRule:l,executor:c,model:f,confidence:h,ignore:p,techDoc:m,logSteps:g=!1}=e,D=process.cwd(),b=await oe(D),w=od();if(w.length>0)throw new Error(ad(w));if(!(!Bn(b)||await ld({projectPath:D,interactive:!1,json:!0})))throw new Error("\u7F3A\u5C11 GITLAB_TOKEN\u3002\u8BF7\u8FD0\u884C br init GITLAB_TOKEN \u5199\u5165\u7528\u6237\u7EA7\u914D\u7F6E\uFF0C\u6216\u5728\u5F53\u524D\u73AF\u5883\u4E2D\u5BFC\u51FA\u8BE5\u53D8\u91CF\u3002");let C=await xr(b,{executorOverride:c,modelOverride:f,requirePing:!0});if(!C.ok)throw new Error(C.message||"\u6267\u884C\u5668\u914D\u7F6E\u6821\u9A8C\u5931\u8D25");let x=Pt(process.env.GITLAB_TOKEN)||Pt(b.gitlab.token),$=await wd(r,x?{readToken:x}:void 0),F={kind:"gitlab-mr",mrUrl:$.mergeRequest.webUrl,host:$.target.host,projectPath:$.target.projectPath,mrIid:$.target.mrIid,apiBaseUrl:$.target.apiBaseUrl,diffVersion:$.version},R=await Ed({reviewTarget:F,diffs:$.diffs,remoteFiles:$.remoteFiles});return(await gd({projectPath:D,config:b,diffs:$.diffs,sourceLabel:`\uFF08GitLab MR !${$.mergeRequest.iid}\uFF09`,verbose:s,json:!0,stream:!1,severityFilter:i,base:$.version.baseSha,head:$.version.headSha,skipValidation:n,agentFilter:o,excludeAgents:a,ruleFilter:u,excludeRules:l,executor:c,model:f,confidence:h,ignore:p,fixSeverities:[],metadata:{reviewTarget:F},supplementalContextFiles:R,techDocSource:m,commitMessages:[],commandStartTimeMs:t,logSteps:g,readinessChecked:!0}))?.jsonOutput??{success:!0,skipped:!0,message:"\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u4EE3\u7801\u6216\u914D\u7F6E\u53D8\u66F4"}}var mv={meta:{name:"review-mr",description:`\u5BA1\u67E5 GitLab Merge Request \u8FDC\u7A0B\u6539\u52A8\uFF0C\u5E76\u76F4\u63A5\u56DE\u8BC4\u5230 MR
652
+ best-review review --model deepseek-v4-flash \u8986\u76D6\u6240\u6709 Agent \u7684\u6A21\u578B`},args:{stream:{type:"boolean",description:"\u5C55\u793A\u6267\u884C\u5668\u652F\u6301\u7684\u6D41\u5F0F\u8F93\u51FA"},verbose:{type:"boolean",description:"\u5C55\u793A\u539F\u59CB JSON \u6D41"},json:{type:"boolean",description:"\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u7ED3\u679C"},"log-steps":{type:"boolean",description:"\u8F93\u51FA review \u547D\u4EE4\u8BE6\u7EC6\u6B65\u9AA4\u548C\u9636\u6BB5\u8017\u65F6\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09"},severity:{type:"string",description:"\u6309\u4E25\u91CD\u7EA7\u522B\u8FC7\u6EE4\u95EE\u9898\uFF08\u9017\u53F7\u5206\u9694\uFF1Acritical,high,medium,low\uFF09"},base:{type:"string",description:"\u6BD4\u8F83\u8D77\u70B9 commit/\u5206\u652F\uFF08\u4F8B\u5982 main\u3001HEAD~3\uFF09"},head:{type:"string",description:"\u6BD4\u8F83\u7EC8\u70B9 commit/\u5206\u652F\uFF08\u9ED8\u8BA4 HEAD\uFF09"},branch:{type:"string",description:'\u5BA1\u67E5\u5206\u652F\u76F8\u5BF9\u57FA\u51C6\u5206\u652F\u7684\u53D8\u66F4\uFF08\u81EA\u52A8\u68C0\u6D4B main\uFF09\uFF1B"." \u8868\u793A\u5F53\u524D\u5206\u652F'},commit:{type:"string",description:"\u5BA1\u67E5\u5355\u4E2A commit\uFF08\u7B49\u4EF7\u4E8E\u6BD4\u8F83 <commit>^ \u548C <commit>\uFF09"},"commit-range":{type:"string",description:"\u5BA1\u67E5\u8FDE\u7EED\u591A\u4E2A commit\uFF0C\u683C\u5F0F <oldest>..<newest>\uFF08\u5305\u542B\u4E24\u7AEF\uFF09"},"skip-validation":{type:"boolean",description:"\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5\uFF08\u76F4\u63A5\u5C55\u793A\u672A\u590D\u6838\u7684\u95EE\u9898\uFF09"},"fix-critical":{type:"boolean",description:"\u5BA1\u67E5\u540E\u81EA\u52A8\u4FEE\u590D critical \u7EA7\u4E25\u91CD\u98CE\u9669"},"fix-severity":{type:"string",description:"\u81EA\u52A8\u4FEE\u590D\u6307\u5B9A\u4E25\u91CD\u7EA7\u522B\uFF08\u9017\u53F7\u5206\u9694\uFF1Acritical,high,medium,low\uFF09"},"fix-dry-run":{type:"boolean",description:"\u53EA\u751F\u6210\u5E76\u6821\u9A8C\u4FEE\u590D\u8865\u4E01\uFF0C\u4E0D\u5199\u5165\u6587\u4EF6"},"fix-max-issues":{type:"string",description:"\u5355\u6B21\u81EA\u52A8\u4FEE\u590D\u6700\u591A\u5904\u7406\u7684\u95EE\u9898\u6570\uFF08\u9ED8\u8BA4 5\uFF09"},"fix-patch-file":{type:"string",description:"\u5C06\u81EA\u52A8\u4FEE\u590D\u751F\u6210\u7684 unified diff \u989D\u5916\u4FDD\u5B58\u5230\u6307\u5B9A\u6587\u4EF6"},agent:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF1Abug-hunter,security-scan\uFF09"},"exclude-agent":{type:"string",description:"\u6392\u9664\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF09"},rule:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF1Acode-security,code-bugs\uFF09"},"exclude-rule":{type:"string",description:"\u6392\u9664\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF09"},executor:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6267\u884C\u5668\uFF08openai-compatible-api \u6216 deepseek-api\uFF09"},model:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6A21\u578B\uFF08\u4F8B\u5982 gpt-5.4-mini \u6216 deepseek-v4-flash\uFF09"},confidence:{type:"string",description:"\u6700\u5C0F\u7F6E\u4FE1\u5EA6\u9608\u503C 0-100\uFF08\u9ED8\u8BA4 70\uFF09\uFF0C\u4F4E\u4E8E\u9608\u503C\u7684\u95EE\u9898\u4F1A\u88AB\u8FC7\u6EE4"},files:{type:"string",description:"\u53EA\u5BA1\u67E5\u6307\u5B9A\u6587\u4EF6\uFF08\u8DEF\u5F84\u7528\u9017\u53F7\u5206\u9694\uFF09"},ignore:{type:"string",description:"\u989D\u5916\u5FFD\u7565\u7684\u76EE\u5F55\u6216\u6587\u4EF6\uFF08\u9017\u53F7\u5206\u9694\uFF0C\u4F8B\u5982 dist,fixtures/**\uFF09"},full:{type:"boolean",description:"\u5BA1\u67E5\u5B8C\u6574\u6587\u4EF6\u5185\u5BB9\uFF0C\u4E0D\u4F9D\u8D56 Git diff\uFF08\u9700\u8981 --files\uFF09"},"tech-doc":{type:"string",description:"\u6280\u672F\u6587\u6863\u8DEF\u5F84\u6216\u98DE\u4E66 docx \u94FE\u63A5\uFF0C\u7528\u4E8E\u5BF9\u7167\u9A8C\u6536 diff"}},run:async({args:e})=>{try{let t=Hb(e);await cv({verbose:t.verbose,json:t.json,stream:t.stream,logSteps:t["log-steps"],severity:t.severity,base:t.base,head:t.head,branch:t.branch,commit:t.commit,commitRange:t["commit-range"],skipValidation:t["skip-validation"],agent:t.agent,excludeAgent:t["exclude-agent"],rule:t.rule,excludeRule:t["exclude-rule"],executor:t.executor,model:t.model,confidence:t.confidence,files:t.files,ignore:t.ignore,full:t.full,techDoc:t["tech-doc"],fixCritical:t["fix-critical"],fixSeverity:t["fix-severity"],fixDryRun:t["fix-dry-run"],fixMaxIssues:t["fix-max-issues"],fixPatchFile:t["fix-patch-file"]})}catch(t){if(t instanceof Ee){let s=t.errors[0]?.message||"\u53C2\u6570\u65E0\u6548";e.json?console.error(JSON.stringify({error:s})):d.error(s),process.exit(1)}throw t}}};Wt();M();Ce();function qP(e){let t=0,r=0;for(let s of e.split(`
653
+ `))s.startsWith("+")&&!s.startsWith("+++")&&t++,s.startsWith("-")&&!s.startsWith("---")&&r++;return{additions:t,deletions:r}}function UP(e){return`${e.origin}/api/v4`}function GP(e){let t=new URL(e),r=t.pathname.replace(/\/+$/,""),s=r.match(/^\/(.+?)(?:\/-|)\/merge_requests\/(\d+)$/);if(!s?.[1]||!s[2])throw new Error("MR \u94FE\u63A5\u65E0\u6548\u3002\u8BF7\u63D0\u4F9B GitLab Merge Request \u9875\u9762 URL\u3002");return{host:t.hostname,projectPath:decodeURIComponent(s[1]),mrIid:s[2],apiBaseUrl:UP(t),webUrl:`${t.origin}${r}`}}function dv(e){let t=e?.trim()||process.env.GITLAB_TOKEN?.trim()||ii();if(!t)throw new Error("\u7F3A\u5C11 GITLAB_TOKEN \u6216 BEST_REVIEW_HISTORY_USER_TOKEN\uFF0C\u65E0\u6CD5\u8BFB\u53D6 GitLab Merge Request\u3002");return t}async function yd(e,t,r){let s=await It(`${e.apiBaseUrl}${t}`,{headers:{"PRIVATE-TOKEN":dv(r.readToken)}});if(!s.ok){let i=await s.text().catch(()=>"");throw new Error(`GitLab API \u8BF7\u6C42\u5931\u8D25\uFF1A${s.status}${i?` ${i.slice(0,200)}`:""}`)}return await s.json()}async function VP(e,t,r){let s=await It(`${e.apiBaseUrl}${t}`,{headers:{"PRIVATE-TOKEN":dv(r.readToken)}});if(!s.ok){let i=await s.text().catch(()=>"");throw new Error(`GitLab \u6587\u4EF6\u8BFB\u53D6\u5931\u8D25\uFF1A${s.status}${i?` ${i.slice(0,200)}`:""}`)}return await s.text()}function WP(e){return e.deleted_file?"deleted":e.new_file?"added":e.renamed_file?"renamed":"modified"}function HP(e){let t=e.old_path||e.new_path||"",r=e.new_path||e.old_path||"",s=e.deleted_file?t:r,i=e.diff||"",{additions:n,deletions:o}=qP(i);return{file:s,status:WP(e),diff:i,additions:n,deletions:o,oldPath:t,newPath:r,isNewFile:e.new_file===!0,isDeletedFile:e.deleted_file===!0,isRenamedFile:e.renamed_file===!0}}async function KP(e,t,r,s){let i=await Promise.all(r.map(async n=>{let o=n.isDeletedFile?n.oldPath||n.file:n.newPath||n.file,a=n.isDeletedFile?t.baseSha:t.headSha,u=encodeURIComponent(o),l=await VP(e,`/projects/${encodeURIComponent(e.projectPath)}/repository/files/${u}/raw?ref=${encodeURIComponent(a)}`,s);return[n.file,l]}));return Object.fromEntries(i)}async function wd(e,t={}){let r=GP(e),[s,i]=await Promise.all([yd(r,`/projects/${encodeURIComponent(r.projectPath)}/merge_requests/${r.mrIid}`,t),yd(r,`/projects/${encodeURIComponent(r.projectPath)}/merge_requests/${r.mrIid}/versions`,t)]),n=[...i].filter(c=>c.id&&c.base_commit_sha&&c.start_commit_sha&&c.head_commit_sha).sort((c,f)=>Number(f.id)-Number(c.id))[0];if(!n?.id||!n.base_commit_sha||!n.start_commit_sha||!n.head_commit_sha)throw new Error("GitLab Merge Request \u6CA1\u6709\u53EF\u7528\u7684 diff version\u3002");let o=await yd(r,`/projects/${encodeURIComponent(r.projectPath)}/merge_requests/${r.mrIid}/versions/${n.id}?unidiff=true`,t),a={id:String(o.id??n.id),baseSha:o.base_commit_sha||n.base_commit_sha,startSha:o.start_commit_sha||n.start_commit_sha,headSha:o.head_commit_sha||n.head_commit_sha},u=(o.diffs||[]).map(HP).filter(c=>c.file&&c.diff),l=await KP(r,a,u,t);return{target:r,mergeRequest:{iid:String(s.iid??r.mrIid),title:s.title||`MR !${r.mrIid}`,webUrl:s.web_url||r.webUrl},version:a,diffs:u,remoteFiles:l}}function bd(e){return e.trim().toLowerCase().replace(/:\d+$/,"")}function vd(e){return decodeURIComponent(e).trim().replace(/^\/+/,"").replace(/\.git$/i,"").replace(/\/+$/,"").toLowerCase()}function zP(e){let t=e.trim();if(!t)return null;try{let s=new URL(t),i=s.protocol==="ssh:"?s.pathname.replace(/^\/+/,""):s.pathname.slice(1);return{host:bd(s.hostname),projectPath:vd(i)}}catch{}let r=t.match(/^(?:[^@]+@)?([^:]+):(.+)$/);return!r?.[1]||!r[2]?null:{host:bd(r[1]),projectPath:vd(r[2])}}function JP(e,t,r){let s=zP(e);return s?s.host===bd(t)&&s.projectPath===vd(r):!1}async function YP(e,t,r,s){let i=lu(t,r),n=cu(i);if(s){let o=n.find(a=>s.has(a));return o?{file:o}:null}for(let o of n){let a=await Bn(e,o);if(a!==null)return{file:o,content:a}}return null}function ZP(e,t,r,s){let i=[];for(let n of e){let o=t[n.file];typeof o=="string"&&i.push({file:n.file,content:Ir(o,"changed-file"),role:"changed-file",source:"gitlab-remote",ref:n.isDeletedFile?s:r,relatedFiles:[n.file]})}return i}async function Ed(e){let{reviewTarget:t,diffs:r,remoteFiles:s}=e,i=ZP(r,s,t.diffVersion.headSha,t.diffVersion.baseSha);if(!await eu())return i;let o=await _w("origin");if(!o||!JP(o,t.host,t.projectPath))return i;let a=t.diffVersion.headSha;if(!await Pn(a))return i;let u=await Tw(a).catch(()=>null),l=u&&u.length>0?new Set(u):null,c=new Set(r.map(h=>h.file)),f=new Map;for(let h of r){if(h.isDeletedFile)continue;let p=s[h.file];if(!p)continue;let m=Nn(p);for(let g of m){let D=await YP(a,h.newPath||h.file,g,l||void 0);if(!D||c.has(D.file))continue;let b=f.get(D.file);if(b){let v=new Set([...b.relatedFiles||[],h.file]);b.relatedFiles=[...v];continue}let w=D.content??await Bn(a,D.file);w!==null&&f.set(D.file,{file:D.file,content:Ir(w,"dependency"),role:"dependency",source:"local-git",ref:a,relatedFiles:[h.file]})}}return[...i,...f.values()]}M();function hv(e,t){t?console.error(JSON.stringify({error:e})):d.error(e),process.exitCode=1}async function pv(e){let t=Date.now(),{url:r,verbose:s=!1,json:i=!1,stream:n=!1,logSteps:o=!1,severity:a,skipValidation:u=!1,agent:l,excludeAgent:c,rule:f,excludeRule:h,executor:p,model:m,confidence:g,ignore:D,techDoc:b}=e;i||d.logo();let w=process.cwd(),v=await oe(w),E=od();if(E.length>0){let K=ad(E);hv(K,i);return}if(!(!On(v)||await ld({projectPath:w,interactive:process.stdin.isTTY&&process.stdout.isTTY,json:i}))){hv("\u7F3A\u5C11 GITLAB_TOKEN\u3002\u8BF7\u8FD0\u884C br init GITLAB_TOKEN \u5199\u5165\u7528\u6237\u7EA7\u914D\u7F6E\uFF0C\u6216\u5728\u5F53\u524D\u73AF\u5883\u4E2D\u5BFC\u51FA\u8BE5\u53D8\u91CF\u3002",i);return}if(!await jn({config:v,executorOverride:p,modelOverride:m,json:i,requirePing:!0}))return;i||d.chart("\u6B63\u5728\u8BFB\u53D6 GitLab Merge Request...");let F=Pt(process.env.GITLAB_TOKEN)||Pt(v.gitlab.token),R=await wd(r,F?{readToken:F}:void 0),W={kind:"gitlab-mr",mrUrl:R.mergeRequest.webUrl,host:R.target.host,projectPath:R.target.projectPath,mrIid:R.target.mrIid,apiBaseUrl:R.target.apiBaseUrl,diffVersion:R.version},ae=await Ed({reviewTarget:W,diffs:R.diffs,remoteFiles:R.remoteFiles});i||d.info(`\u76EE\u6807 MR\uFF1A!${R.mergeRequest.iid} ${R.mergeRequest.title}`),await Dd({projectPath:w,config:v,diffs:R.diffs,sourceLabel:`\uFF08GitLab MR !${R.mergeRequest.iid}\uFF09`,verbose:s,json:i,stream:n,severityFilter:a,base:R.version.baseSha,head:R.version.headSha,skipValidation:u,agentFilter:l,excludeAgents:c,ruleFilter:f,excludeRules:h,executor:p,model:m,confidence:g,ignore:D,fixSeverities:[],metadata:{reviewTarget:W},supplementalContextFiles:ae,techDocSource:b,commitMessages:[],commandStartTimeMs:t,logSteps:o,readinessChecked:!0})}async function mv(e){let t=Date.now(),{url:r,verbose:s=!1,severity:i,skipValidation:n=!1,agent:o,excludeAgent:a,rule:u,excludeRule:l,executor:c,model:f,confidence:h,ignore:p,techDoc:m,logSteps:g=!1}=e,D=process.cwd(),b=await oe(D),w=od();if(w.length>0)throw new Error(ad(w));if(!(!On(b)||await ld({projectPath:D,interactive:!1,json:!0})))throw new Error("\u7F3A\u5C11 GITLAB_TOKEN\u3002\u8BF7\u8FD0\u884C br init GITLAB_TOKEN \u5199\u5165\u7528\u6237\u7EA7\u914D\u7F6E\uFF0C\u6216\u5728\u5F53\u524D\u73AF\u5883\u4E2D\u5BFC\u51FA\u8BE5\u53D8\u91CF\u3002");let C=await xr(b,{executorOverride:c,modelOverride:f,requirePing:!0});if(!C.ok)throw new Error(C.message||"\u6267\u884C\u5668\u914D\u7F6E\u6821\u9A8C\u5931\u8D25");let x=Pt(process.env.GITLAB_TOKEN)||Pt(b.gitlab.token),$=await wd(r,x?{readToken:x}:void 0),F={kind:"gitlab-mr",mrUrl:$.mergeRequest.webUrl,host:$.target.host,projectPath:$.target.projectPath,mrIid:$.target.mrIid,apiBaseUrl:$.target.apiBaseUrl,diffVersion:$.version},R=await Ed({reviewTarget:F,diffs:$.diffs,remoteFiles:$.remoteFiles});return(await gd({projectPath:D,config:b,diffs:$.diffs,sourceLabel:`\uFF08GitLab MR !${$.mergeRequest.iid}\uFF09`,verbose:s,json:!0,stream:!1,severityFilter:i,base:$.version.baseSha,head:$.version.headSha,skipValidation:n,agentFilter:o,excludeAgents:a,ruleFilter:u,excludeRules:l,executor:c,model:f,confidence:h,ignore:p,fixSeverities:[],metadata:{reviewTarget:F},supplementalContextFiles:R,techDocSource:m,commitMessages:[],commandStartTimeMs:t,logSteps:g,readinessChecked:!0}))?.jsonOutput??{success:!0,skipped:!0,message:"\u6CA1\u6709\u53EF\u5BA1\u67E5\u7684\u4EE3\u7801\u6216\u914D\u7F6E\u53D8\u66F4"}}var gv={meta:{name:"review-mr",description:`\u5BA1\u67E5 GitLab Merge Request \u8FDC\u7A0B\u6539\u52A8\uFF0C\u5E76\u76F4\u63A5\u56DE\u8BC4\u5230 MR
654
654
 
655
655
  Examples:
656
656
  best-review review-mr https://gitlab.example.com/group/project/-/merge_requests/123
657
657
  best-review review-mr <mr-url> --agent security-scan
658
658
  best-review review-mr <mr-url> --tech-doc docs/tech-plan.md
659
659
  best-review review-mr <mr-url> --log-steps
660
- best-review review-mr <mr-url> --executor deepseek-api --model deepseek-chat`},args:{url:{type:"positional",required:!0,description:"GitLab Merge Request \u9875\u9762 URL"},stream:{type:"boolean",description:"\u5C55\u793A\u6267\u884C\u5668\u652F\u6301\u7684\u6D41\u5F0F\u8F93\u51FA"},verbose:{type:"boolean",description:"\u5C55\u793A\u539F\u59CB JSON \u6D41"},json:{type:"boolean",description:"\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u7ED3\u679C"},"log-steps":{type:"boolean",description:"\u8F93\u51FA review-mr \u547D\u4EE4\u8BE6\u7EC6\u6B65\u9AA4\u548C\u9636\u6BB5\u8017\u65F6\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09"},severity:{type:"string",description:"\u6309\u4E25\u91CD\u7EA7\u522B\u8FC7\u6EE4\u95EE\u9898\uFF08\u9017\u53F7\u5206\u9694\uFF1Acritical,high,medium,low\uFF09"},"skip-validation":{type:"boolean",description:"\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5\uFF08\u76F4\u63A5\u5C55\u793A\u672A\u590D\u6838\u7684\u95EE\u9898\uFF09"},agent:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF1Abug-hunter,security-scan\uFF09"},"exclude-agent":{type:"string",description:"\u6392\u9664\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF09"},rule:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF1Acode-security,code-bugs\uFF09"},"exclude-rule":{type:"string",description:"\u6392\u9664\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF09"},executor:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6267\u884C\u5668\uFF08openai-compatible-api \u6216 deepseek-api\uFF09"},model:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6A21\u578B\uFF08\u4F8B\u5982 gpt-5.4-mini \u6216 deepseek-chat\uFF09"},confidence:{type:"string",description:"\u6700\u5C0F\u7F6E\u4FE1\u5EA6\u9608\u503C 0-100\uFF08\u9ED8\u8BA4 70\uFF09\uFF0C\u4F4E\u4E8E\u9608\u503C\u7684\u95EE\u9898\u4F1A\u88AB\u8FC7\u6EE4"},ignore:{type:"string",description:"\u989D\u5916\u5FFD\u7565\u7684\u76EE\u5F55\u6216\u6587\u4EF6\uFF08\u9017\u53F7\u5206\u9694\uFF0C\u4F8B\u5982 dist,fixtures/**\uFF09"},"tech-doc":{type:"string",description:"\u6280\u672F\u6587\u6863\u8DEF\u5F84\u6216\u98DE\u4E66 docx \u94FE\u63A5\uFF0C\u7528\u4E8E\u5BF9\u7167\u9A8C\u6536 MR diff"}},run:async({args:e})=>{try{let t=Kb(e);await hv({url:t.url,verbose:t.verbose,json:t.json,stream:t.stream,logSteps:t["log-steps"],severity:t.severity,skipValidation:t["skip-validation"],agent:t.agent,excludeAgent:t["exclude-agent"],rule:t.rule,excludeRule:t["exclude-rule"],executor:t.executor,model:t.model,confidence:t.confidence,ignore:t.ignore,techDoc:t["tech-doc"]})}catch(t){if(t instanceof ve){let i=t.errors[0]?.message||"\u53C2\u6570\u65E0\u6548";e.json?console.error(JSON.stringify({error:i})):d.error(i),process.exit(1)}let r=t instanceof Error?t.message:String(t);e.json?console.error(JSON.stringify({error:r})):d.error(r),process.exit(1)}}};var gv=require("node:crypto"),jn=class extends Error{constructor(t="\u4EFB\u52A1\u961F\u5217\u5DF2\u6EE1"){super(t),this.name="ReviewJobStoreFullError"}};function di(e){return JSON.parse(JSON.stringify(e))}function zP(e){return e instanceof Error?e.message:String(e)}function Dv(e={}){let t=new Map,r=e.createId??gv.randomUUID,s=e.now??(()=>new Date),i=e.maxJobs,n=e.completedJobTtlMs;if(i!==void 0&&(!Number.isInteger(i)||i<=0))throw new Error("maxJobs \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570");if(n!==void 0&&(!Number.isInteger(n)||n<=0))throw new Error("completedJobTtlMs \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570");function o(){return s().toISOString()}function a(u){if(n!==void 0)for(let[l,c]of t){if(c.status!=="succeeded"&&c.status!=="failed"||!c.finishedAt)continue;let f=new Date(c.finishedAt).getTime();u.getTime()-f>n&&t.delete(l)}}return{create(u){let l=s();if(a(l),i!==void 0&&t.size>=i)throw new jn;let c=l.toISOString(),f={id:r(),status:"queued",request:u,createdAt:c,updatedAt:c};return t.set(f.id,f),di(f)},get(u){n!==void 0&&a(s());let l=t.get(u);return l?di(l):void 0},list(){return n!==void 0&&a(s()),Array.from(t.values()).map(di)},claimNextQueued(){let u=Array.from(t.values()).find(c=>c.status==="queued");if(!u)return;let l=o();return u.status="running",u.startedAt=l,u.updatedAt=l,di(u)},markSucceeded(u,l){let c=t.get(u);if(!c)return;let f=o();return c.status="succeeded",c.result=l,c.error=void 0,c.finishedAt=f,c.updatedAt=f,di(c)},markFailed(u,l){let c=t.get(u);if(!c)return;let f=o();return c.status="failed",c.error=zP(l),c.finishedAt=f,c.updatedAt=f,di(c)}}}function yv(e){let t=e.pollIntervalMs??1e3,r,s=!1;async function i(){let o=e.store.claimNextQueued();if(!o)return!1;try{let a=await e.runner(o.request);e.store.markSucceeded(o.id,a)}catch(a){e.store.markFailed(o.id,a)}return!0}async function n(){if(!s){s=!0;try{for(;await i(););}finally{s=!1}}}return{runOnce:i,start(){r||(r=setInterval(()=>{n()},t),r.unref?.(),n())},stop(){r&&(clearInterval(r),r=void 0)},isRunning(){return r!==void 0}}}var Ev=require("node:crypto"),Cv=require("node:http");vr();var JP=y.enum(["critical","high","medium","low"]),YP=y.object({severity:y.array(JP).optional(),skipValidation:y.boolean().optional(),agent:y.array(y.string().min(1)).optional(),excludeAgent:y.array(y.string().min(1)).optional(),rule:y.array(y.string().min(1)).optional(),excludeRule:y.array(y.string().min(1)).optional(),executor:y.string().min(1).optional(),model:y.string().min(1).optional(),confidence:y.number().int().min(0).max(100).optional(),ignore:y.array(y.string().min(1)).optional(),techDoc:y.string().min(1).optional(),logSteps:y.boolean().optional()}).strict(),wv=y.object({source:y.object({type:y.literal("gitlab-mr"),url:y.string().url()}).strict(),options:YP.default({})}).strict();var ZP=1024*1024;function at(e,t,r){e.writeHead(t,{"Content-Type":"application/json; charset=utf-8"}),e.end(`${JSON.stringify(r,null,2)}
661
- `)}async function XP(e){let t=[],r=0;for await(let i of e){let n=Buffer.isBuffer(i)?i:Buffer.from(i);if(r+=n.byteLength,r>ZP)throw new Error("\u8BF7\u6C42\u4F53\u8FC7\u5927");t.push(n)}let s=Buffer.concat(t).toString("utf-8").trim();return s?JSON.parse(s):{}}function bv(e){return{...e,links:{self:`/v1/reviews/${e.id}`}}}function vv(e){let t=e.trim().toLowerCase();if(!t)return"";try{return new URL(t).hostname.toLowerCase()}catch{return t.replace(/:\d+$/,"")}}function QP(e){return e==="/v1/reviews"||/^\/v1\/reviews\/[^/]+$/.test(e)}function eB(e){let t=e.headers.authorization;return t?t.match(/^Bearer\s+(.+)$/i)?.[1]?.trim():void 0}function tB(e,t){if(!e)return!1;let r=Buffer.from(e),s=Buffer.from(t);return r.byteLength!==s.byteLength?!1:(0,Ev.timingSafeEqual)(r,s)}function rB(e,t,r){return r?tB(eB(e),r)?!0:(at(t,401,{error:"\u672A\u6388\u6743"}),!1):(at(t,503,{error:"\u670D\u52A1\u9274\u6743\u672A\u914D\u7F6E"}),!1)}function sB(e,t){let r=new Set((t??[]).map(vv).filter(Boolean));if(r.size===0)return!1;let s=vv(new URL(e).hostname);return r.has(s)}function Fv(e){return(0,Cv.createServer)(async(t,r)=>{let s=new URL(t.url??"/","http://localhost");try{if(t.method==="GET"&&s.pathname==="/healthz"){at(r,200,{ok:!0});return}if(t.method==="GET"&&s.pathname==="/readyz"){let n=e.ready?e.ready():!0;at(r,n?200:503,{ready:n});return}if(QP(s.pathname)&&!rB(t,r,e.authToken))return;if(t.method==="POST"&&s.pathname==="/v1/reviews"){let n=await XP(t),o=wv.safeParse(n);if(!o.success){at(r,400,{error:"\u8BF7\u6C42\u4F53\u65E0\u6548",details:o.error.errors.map(u=>u.message)});return}if(!sB(o.data.source.url,e.allowedGitLabHosts)){at(r,400,{error:"GitLab host \u4E0D\u5728\u5141\u8BB8\u5217\u8868\u4E2D"});return}let a;try{a=e.store.create(o.data)}catch(u){if(u instanceof jn){at(r,429,{error:u.message});return}throw u}at(r,202,bv(a));return}let i=s.pathname.match(/^\/v1\/reviews\/([^/]+)$/);if(t.method==="GET"&&i?.[1]){let n=e.store.get(decodeURIComponent(i[1]));if(!n){at(r,404,{error:"\u4EFB\u52A1\u4E0D\u5B58\u5728"});return}at(r,200,bv(n));return}at(r,404,{error:"\u63A5\u53E3\u4E0D\u5B58\u5728"})}catch(i){at(r,400,{error:i instanceof Error?i.message:String(i)})}})}function iB(e={}){let t=e.runGitLabMrReviewJob??pv;return async r=>{if(r.source.type==="gitlab-mr")return t({url:r.source.url,json:!0,stream:!1,verbose:!1,logSteps:r.options.logSteps??!1,severity:r.options.severity,skipValidation:r.options.skipValidation,agent:r.options.agent,excludeAgent:r.options.excludeAgent,rule:r.options.rule,excludeRule:r.options.excludeRule,executor:r.options.executor,model:r.options.model,confidence:r.options.confidence,ignore:r.options.ignore,techDoc:r.options.techDoc});throw new Error(`\u4E0D\u652F\u6301\u7684 review source\uFF1A${r.source.type}`)}}var Sv=iB();M();var nB=200,oB=1440*60*1e3;function aB(e){let t=Number.parseInt(String(e??process.env.PORT??"3000"),10);if(!Number.isInteger(t)||t<=0||t>65535)throw new Error("\u7AEF\u53E3\u5FC5\u987B\u662F 1-65535 \u4E4B\u95F4\u7684\u6574\u6570");return t}function uB(e){return(e??"").split(",").map(t=>t.trim()).filter(Boolean)}function xv(e,t,r){if(e===void 0||e.trim()==="")return t;if(!/^\d+$/.test(e.trim()))throw new Error(`${r} \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570`);let s=Number.parseInt(e,10);if(!Number.isInteger(s)||s<=0)throw new Error(`${r} \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570`);return s}function lB(e=process.env){let t=e.BEST_REVIEW_SERVICE_TOKEN?.trim();if(!t)throw new Error("\u7F3A\u5C11 BEST_REVIEW_SERVICE_TOKEN\uFF0Cserve API \u5FC5\u987B\u914D\u7F6E Bearer token\u3002");let r=uB(e.BEST_REVIEW_GITLAB_ALLOWED_HOSTS);if(r.length===0)throw new Error("\u7F3A\u5C11 BEST_REVIEW_GITLAB_ALLOWED_HOSTS\uFF0Cserve API \u5FC5\u987B\u9650\u5236 GitLab host\u3002");return{authToken:t,allowedGitLabHosts:r,maxJobs:xv(e.BEST_REVIEW_MAX_JOBS,nB,"BEST_REVIEW_MAX_JOBS"),completedJobTtlMs:xv(e.BEST_REVIEW_COMPLETED_JOB_TTL_MS,oB,"BEST_REVIEW_COMPLETED_JOB_TTL_MS")}}var Av={meta:{name:"serve",description:"\u542F\u52A8 best-review HTTP \u670D\u52A1"},args:{host:{type:"string",description:"\u76D1\u542C\u5730\u5740\uFF08\u9ED8\u8BA4 0.0.0.0\uFF09"},port:{type:"string",description:"\u76D1\u542C\u7AEF\u53E3\uFF08\u9ED8\u8BA4 3000\uFF0C\u53EF\u7528 PORT \u8986\u76D6\uFF09"}},run:async({args:e})=>{let t=String(e.host??process.env.HOST??"0.0.0.0"),r=aB(e.port),s=lB(),i=Dv({maxJobs:s.maxJobs,completedJobTtlMs:s.completedJobTtlMs}),n=yv({store:i,runner:Sv}),o=Fv({store:i,ready:()=>n.isRunning(),authToken:s.authToken,allowedGitLabHosts:s.allowedGitLabHosts});n.start(),await new Promise(u=>{o.listen(r,t,u)}),d.success(`best-review \u670D\u52A1\u5DF2\u542F\u52A8\uFF1Ahttp://${t}:${r}`);let a=()=>{n.stop(),o.close(()=>{process.exit(0)})};process.once("SIGINT",a),process.once("SIGTERM",a)}};var Rv={meta:{name:"best-review",version:gs.version,description:"AI \u9A71\u52A8\u7684\u4EE3\u7801\u5BA1\u67E5 CLI"},subCommands:{init:vb,review:cv,"review-mr":mv,config:Sy,doctor:xy,agents:ly,executors:ky,eval:ub,rules:Sb,extends:db,serve:Av,"setup-command":fd}};M();Ge();va();var cs=process.argv.slice(2),cB={"-r":"review","-mr":"review-mr"},Cd=cs[0],fB=Cd?[cB[Cd]??Cd,...cs.slice(1)]:cs,dB=["-v","--version","-h","--help"],hB=cs.length===0||cs.some(e=>dB.includes(e));hB&&(d.logo(),(cs.includes("-v")||cs.includes("--version"))&&(d.plain(`v${gs.version}`),process.exit(0)));fh(Rv,{rawArgs:fB});
660
+ best-review review-mr <mr-url> --executor deepseek-api --model deepseek-chat`},args:{url:{type:"positional",required:!0,description:"GitLab Merge Request \u9875\u9762 URL"},stream:{type:"boolean",description:"\u5C55\u793A\u6267\u884C\u5668\u652F\u6301\u7684\u6D41\u5F0F\u8F93\u51FA"},verbose:{type:"boolean",description:"\u5C55\u793A\u539F\u59CB JSON \u6D41"},json:{type:"boolean",description:"\u4EE5 JSON \u683C\u5F0F\u8F93\u51FA\u7ED3\u679C"},"log-steps":{type:"boolean",description:"\u8F93\u51FA review-mr \u547D\u4EE4\u8BE6\u7EC6\u6B65\u9AA4\u548C\u9636\u6BB5\u8017\u65F6\uFF08\u9ED8\u8BA4\u5173\u95ED\uFF09"},severity:{type:"string",description:"\u6309\u4E25\u91CD\u7EA7\u522B\u8FC7\u6EE4\u95EE\u9898\uFF08\u9017\u53F7\u5206\u9694\uFF1Acritical,high,medium,low\uFF09"},"skip-validation":{type:"boolean",description:"\u8DF3\u8FC7\u9A8C\u8BC1\u9636\u6BB5\uFF08\u76F4\u63A5\u5C55\u793A\u672A\u590D\u6838\u7684\u95EE\u9898\uFF09"},agent:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF1Abug-hunter,security-scan\uFF09"},"exclude-agent":{type:"string",description:"\u6392\u9664\u6307\u5B9A Agent\uFF08\u9017\u53F7\u5206\u9694\uFF09"},rule:{type:"string",description:"\u53EA\u8FD0\u884C\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF1Acode-security,code-bugs\uFF09"},"exclude-rule":{type:"string",description:"\u6392\u9664\u6307\u5B9A\u89C4\u5219\uFF08\u9017\u53F7\u5206\u9694\uFF09"},executor:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6267\u884C\u5668\uFF08openai-compatible-api \u6216 deepseek-api\uFF09"},model:{type:"string",description:"\u8986\u76D6\u6240\u6709 Agent \u7684\u6A21\u578B\uFF08\u4F8B\u5982 gpt-5.4-mini \u6216 deepseek-chat\uFF09"},confidence:{type:"string",description:"\u6700\u5C0F\u7F6E\u4FE1\u5EA6\u9608\u503C 0-100\uFF08\u9ED8\u8BA4 70\uFF09\uFF0C\u4F4E\u4E8E\u9608\u503C\u7684\u95EE\u9898\u4F1A\u88AB\u8FC7\u6EE4"},ignore:{type:"string",description:"\u989D\u5916\u5FFD\u7565\u7684\u76EE\u5F55\u6216\u6587\u4EF6\uFF08\u9017\u53F7\u5206\u9694\uFF0C\u4F8B\u5982 dist,fixtures/**\uFF09"},"tech-doc":{type:"string",description:"\u6280\u672F\u6587\u6863\u8DEF\u5F84\u6216\u98DE\u4E66 docx \u94FE\u63A5\uFF0C\u7528\u4E8E\u5BF9\u7167\u9A8C\u6536 MR diff"}},run:async({args:e})=>{try{let t=Kb(e);await pv({url:t.url,verbose:t.verbose,json:t.json,stream:t.stream,logSteps:t["log-steps"],severity:t.severity,skipValidation:t["skip-validation"],agent:t.agent,excludeAgent:t["exclude-agent"],rule:t.rule,excludeRule:t["exclude-rule"],executor:t.executor,model:t.model,confidence:t.confidence,ignore:t.ignore,techDoc:t["tech-doc"]})}catch(t){if(t instanceof Ee){let i=t.errors[0]?.message||"\u53C2\u6570\u65E0\u6548";e.json?console.error(JSON.stringify({error:i})):d.error(i),process.exit(1)}let r=t instanceof Error?t.message:String(t);e.json?console.error(JSON.stringify({error:r})):d.error(r),process.exit(1)}}};var Dv=require("node:crypto"),hi=class extends Error{constructor(t="\u4EFB\u52A1\u961F\u5217\u5DF2\u6EE1"){super(t),this.name="ReviewJobStoreFullError"}};function di(e){return JSON.parse(JSON.stringify(e))}function XP(e){return e instanceof Error?e.message:String(e)}function yv(e={}){let t=new Map,r=e.createId??Dv.randomUUID,s=e.now??(()=>new Date),i=e.maxJobs,n=e.completedJobTtlMs;if(i!==void 0&&(!Number.isInteger(i)||i<=0))throw new Error("maxJobs \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570");if(n!==void 0&&(!Number.isInteger(n)||n<=0))throw new Error("completedJobTtlMs \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570");function o(){return s().toISOString()}function a(u){if(n!==void 0)for(let[l,c]of t){if(c.status!=="succeeded"&&c.status!=="failed"||!c.finishedAt)continue;let f=new Date(c.finishedAt).getTime();u.getTime()-f>n&&t.delete(l)}}return{create(u){let l=s();if(a(l),i!==void 0&&t.size>=i)throw new hi;let c=l.toISOString(),f={id:r(),status:"queued",request:u,createdAt:c,updatedAt:c};return t.set(f.id,f),di(f)},get(u){n!==void 0&&a(s());let l=t.get(u);return l?di(l):void 0},list(){return n!==void 0&&a(s()),Array.from(t.values()).map(di)},claimNextQueued(){let u=Array.from(t.values()).find(c=>c.status==="queued");if(!u)return;let l=o();return u.status="running",u.startedAt=l,u.updatedAt=l,di(u)},markSucceeded(u,l){let c=t.get(u);if(!c)return;let f=o();return c.status="succeeded",c.result=l,c.error=void 0,c.finishedAt=f,c.updatedAt=f,di(c)},markFailed(u,l){let c=t.get(u);if(!c)return;let f=o();return c.status="failed",c.error=XP(l),c.finishedAt=f,c.updatedAt=f,di(c)}}}function wv(e){let t=e.pollIntervalMs??1e3,r,s=!1;async function i(){let o=e.store.claimNextQueued();if(!o)return!1;try{let a=await e.runner(o.request);e.store.markSucceeded(o.id,a)}catch(a){e.store.markFailed(o.id,a)}return!0}async function n(){if(!s){s=!0;try{for(;await i(););}finally{s=!1}}}return{runOnce:i,start(){r||(r=setInterval(()=>{n()},t),r.unref?.(),n())},stop(){r&&(clearInterval(r),r=void 0)},isRunning(){return r!==void 0}}}var Fv=require("node:crypto"),Sv=require("node:http");Wt();Wt();var QP=y.enum(["critical","high","medium","low"]),eB=y.object({severity:y.array(QP).optional(),skipValidation:y.boolean().optional(),agent:y.array(y.string().min(1)).optional(),excludeAgent:y.array(y.string().min(1)).optional(),rule:y.array(y.string().min(1)).optional(),excludeRule:y.array(y.string().min(1)).optional(),executor:y.string().min(1).optional(),model:y.string().min(1).optional(),confidence:y.number().int().min(0).max(100).optional(),ignore:y.array(y.string().min(1)).optional(),techDoc:y.string().min(1).optional(),logSteps:y.boolean().optional()}).strict(),bv=y.object({source:y.object({type:y.literal("gitlab-mr"),url:y.string().url()}).strict(),options:eB.default({})}).strict();var tB=1024*1024,rB=new Set(["open","reopen","update"]),sB=y.object({object_kind:y.string().optional(),event_type:y.string().optional(),project:y.object({web_url:y.string().optional()}).passthrough().optional(),object_attributes:y.object({action:y.string().optional(),iid:y.union([y.string(),y.number()]).optional(),url:y.string().optional()}).passthrough().optional()}).passthrough();function ce(e,t,r){e.writeHead(t,{"Content-Type":"application/json; charset=utf-8"}),e.end(`${JSON.stringify(r,null,2)}
661
+ `)}async function vv(e){let t=[],r=0;for await(let i of e){let n=Buffer.isBuffer(i)?i:Buffer.from(i);if(r+=n.byteLength,r>tB)throw new Error("\u8BF7\u6C42\u4F53\u8FC7\u5927");t.push(n)}let s=Buffer.concat(t).toString("utf-8").trim();return s?JSON.parse(s):{}}function Cd(e){return{...e,links:{self:`/v1/reviews/${e.id}`}}}function Ev(e){let t=e.trim().toLowerCase();if(!t)return"";try{return new URL(t).hostname.toLowerCase()}catch{return t.replace(/:\d+$/,"")}}function iB(e){return e==="/v1/reviews"||/^\/v1\/reviews\/[^/]+$/.test(e)}function nB(e){let t=e.headers.authorization;return t?t.match(/^Bearer\s+(.+)$/i)?.[1]?.trim():void 0}function xv(e,t){let r=e.headers[t.toLowerCase()];return Array.isArray(r)?r[0]:r}function Av(e,t){if(!e)return!1;let r=Buffer.from(e),s=Buffer.from(t);return r.byteLength!==s.byteLength?!1:(0,Fv.timingSafeEqual)(r,s)}function oB(e,t,r){return r?Av(nB(e),r)?!0:(ce(t,401,{error:"\u672A\u6388\u6743"}),!1):(ce(t,503,{error:"\u670D\u52A1\u9274\u6743\u672A\u914D\u7F6E"}),!1)}function aB(e,t,r){return r?Av(xv(e,"x-gitlab-token")?.trim(),r)?!0:(ce(t,401,{error:"\u672A\u6388\u6743"}),!1):(ce(t,503,{error:"GitLab webhook \u9274\u6743\u672A\u914D\u7F6E"}),!1)}function Cv(e,t){let r=new Set((t??[]).map(Ev).filter(Boolean));if(r.size===0)return!1;let s=Ev(new URL(e).hostname);return r.has(s)}function uB(e,t){let r=xv(e,"x-gitlab-event")?.trim().toLowerCase();return r&&r!=="merge request hook"?!1:r==="merge request hook"||t.object_kind==="merge_request"||t.event_type==="merge_request"}function lB(e){let t=e.object_attributes?.url?.trim();if(t)return t;let r=e.project?.web_url?.trim().replace(/\/+$/,""),s=e.object_attributes?.iid,i=s===void 0?"":String(s).trim();if(!(!r||!i))return`${r}/-/merge_requests/${encodeURIComponent(i)}`}function Rv(e){return(0,Sv.createServer)(async(t,r)=>{let s=new URL(t.url??"/","http://localhost");try{if(t.method==="GET"&&s.pathname==="/healthz"){ce(r,200,{ok:!0});return}if(t.method==="GET"&&s.pathname==="/readyz"){let n=e.ready?e.ready():!0;ce(r,n?200:503,{ready:n});return}if(t.method==="POST"&&s.pathname==="/reviews/webhook"){if(!aB(t,r,e.gitLabWebhookToken))return;let n=await vv(t),o=sB.safeParse(n);if(!o.success){ce(r,400,{error:"GitLab webhook \u8BF7\u6C42\u4F53\u65E0\u6548",details:o.error.errors.map(c=>c.message)});return}if(!uB(t,o.data)){ce(r,202,{skipped:!0,reason:"\u975E merge_request \u4E8B\u4EF6"});return}let a=o.data.object_attributes?.action?.trim();if(!a||!rB.has(a)){ce(r,202,{skipped:!0,reason:"merge_request.action \u4E0D\u9700\u8981\u89E6\u53D1\u5BA1\u67E5"});return}let u=lB(o.data);if(!u){ce(r,400,{error:"GitLab webhook \u7F3A\u5C11 MR URL"});return}if(!Cv(u,e.allowedGitLabHosts)){ce(r,400,{error:"GitLab host \u4E0D\u5728\u5141\u8BB8\u5217\u8868\u4E2D"});return}let l;try{l=e.store.create({source:{type:"gitlab-mr",url:u},options:{}})}catch(c){if(c instanceof hi){ce(r,429,{error:c.message});return}throw c}ce(r,202,Cd(l));return}if(iB(s.pathname)&&!oB(t,r,e.authToken))return;if(t.method==="POST"&&s.pathname==="/v1/reviews"){let n=await vv(t),o=bv.safeParse(n);if(!o.success){ce(r,400,{error:"\u8BF7\u6C42\u4F53\u65E0\u6548",details:o.error.errors.map(u=>u.message)});return}if(!Cv(o.data.source.url,e.allowedGitLabHosts)){ce(r,400,{error:"GitLab host \u4E0D\u5728\u5141\u8BB8\u5217\u8868\u4E2D"});return}let a;try{a=e.store.create(o.data)}catch(u){if(u instanceof hi){ce(r,429,{error:u.message});return}throw u}ce(r,202,Cd(a));return}let i=s.pathname.match(/^\/v1\/reviews\/([^/]+)$/);if(t.method==="GET"&&i?.[1]){let n=e.store.get(decodeURIComponent(i[1]));if(!n){ce(r,404,{error:"\u4EFB\u52A1\u4E0D\u5B58\u5728"});return}ce(r,200,Cd(n));return}ce(r,404,{error:"\u63A5\u53E3\u4E0D\u5B58\u5728"})}catch(i){ce(r,400,{error:i instanceof Error?i.message:String(i)})}})}function cB(e={}){let t=e.runGitLabMrReviewJob??mv;return async r=>{if(r.source.type==="gitlab-mr")return t({url:r.source.url,json:!0,stream:!1,verbose:!1,logSteps:r.options.logSteps??!1,severity:r.options.severity,skipValidation:r.options.skipValidation,agent:r.options.agent,excludeAgent:r.options.excludeAgent,rule:r.options.rule,excludeRule:r.options.excludeRule,executor:r.options.executor,model:r.options.model,confidence:r.options.confidence,ignore:r.options.ignore,techDoc:r.options.techDoc});throw new Error(`\u4E0D\u652F\u6301\u7684 review source\uFF1A${r.source.type}`)}}var kv=cB();M();var fB=200,dB=1440*60*1e3;function hB(e){let t=Number.parseInt(String(e??process.env.PORT??"3000"),10);if(!Number.isInteger(t)||t<=0||t>65535)throw new Error("\u7AEF\u53E3\u5FC5\u987B\u662F 1-65535 \u4E4B\u95F4\u7684\u6574\u6570");return t}function pB(e){return(e??"").split(",").map(t=>t.trim()).filter(Boolean)}function Iv(e,t,r){if(e===void 0||e.trim()==="")return t;if(!/^\d+$/.test(e.trim()))throw new Error(`${r} \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570`);let s=Number.parseInt(e,10);if(!Number.isInteger(s)||s<=0)throw new Error(`${r} \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570`);return s}function mB(e=process.env){let t=e.BEST_REVIEW_SERVICE_TOKEN?.trim();if(!t)throw new Error("\u7F3A\u5C11 BEST_REVIEW_SERVICE_TOKEN\uFF0Cserve API \u5FC5\u987B\u914D\u7F6E Bearer token\u3002");let r=pB(e.BEST_REVIEW_GITLAB_ALLOWED_HOSTS);if(r.length===0)throw new Error("\u7F3A\u5C11 BEST_REVIEW_GITLAB_ALLOWED_HOSTS\uFF0Cserve API \u5FC5\u987B\u9650\u5236 GitLab host\u3002");return{authToken:t,gitLabWebhookToken:e.BEST_REVIEW_GITLAB_WEBHOOK_TOKEN?.trim()||void 0,allowedGitLabHosts:r,maxJobs:Iv(e.BEST_REVIEW_MAX_JOBS,fB,"BEST_REVIEW_MAX_JOBS"),completedJobTtlMs:Iv(e.BEST_REVIEW_COMPLETED_JOB_TTL_MS,dB,"BEST_REVIEW_COMPLETED_JOB_TTL_MS")}}var _v={meta:{name:"serve",description:"\u542F\u52A8 best-review HTTP \u670D\u52A1"},args:{host:{type:"string",description:"\u76D1\u542C\u5730\u5740\uFF08\u9ED8\u8BA4 0.0.0.0\uFF09"},port:{type:"string",description:"\u76D1\u542C\u7AEF\u53E3\uFF08\u9ED8\u8BA4 3000\uFF0C\u53EF\u7528 PORT \u8986\u76D6\uFF09"}},run:async({args:e})=>{let t=String(e.host??process.env.HOST??"0.0.0.0"),r=hB(e.port),s=mB(),i=yv({maxJobs:s.maxJobs,completedJobTtlMs:s.completedJobTtlMs}),n=wv({store:i,runner:kv}),o=Rv({store:i,ready:()=>n.isRunning(),authToken:s.authToken,gitLabWebhookToken:s.gitLabWebhookToken,allowedGitLabHosts:s.allowedGitLabHosts});n.start(),await new Promise(u=>{o.listen(r,t,u)}),d.success(`best-review \u670D\u52A1\u5DF2\u542F\u52A8\uFF1Ahttp://${t}:${r}`);let a=()=>{n.stop(),o.close(()=>{process.exit(0)})};process.once("SIGINT",a),process.once("SIGTERM",a)}};var Tv={meta:{name:"best-review",version:gs.version,description:"AI \u9A71\u52A8\u7684\u4EE3\u7801\u5BA1\u67E5 CLI"},subCommands:{init:Eb,review:fv,"review-mr":gv,config:xy,doctor:Ay,agents:cy,executors:Iy,eval:lb,rules:xb,extends:hb,serve:_v,"setup-command":fd}};M();Ve();va();var cs=process.argv.slice(2),gB={"-r":"review","-mr":"review-mr"},Fd=cs[0],DB=Fd?[gB[Fd]??Fd,...cs.slice(1)]:cs,yB=["-v","--version","-h","--help"],wB=cs.length===0||cs.some(e=>yB.includes(e));wB&&(d.logo(),(cs.includes("-v")||cs.includes("--version"))&&(d.plain(`v${gs.version}`),process.exit(0)));dh(Tv,{rawArgs:DB});